<?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>235563</bug_id>
          
          <creation_ts>2022-01-25 02:25:55 -0800</creation_ts>
          <short_desc>Update WebGL conformance test suite to 2022-01-12</short_desc>
          <delta_ts>2022-01-27 03:18:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>235631</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833641</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-25 02:25:55 -0800</bug_when>
    <thetext>Update WebGL conformance test suite to 2022-01-12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833692</commentid>
    <comment_count>1</comment_count>
      <attachid>449926</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-25 07:00:42 -0800</bug_when>
    <thetext>Created attachment 449926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834015</commentid>
    <comment_count>2</comment_count>
      <attachid>450005</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-26 01:31:42 -0800</bug_when>
    <thetext>Created attachment 450005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834154</commentid>
    <comment_count>3</comment_count>
      <attachid>450035</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-26 10:19:32 -0800</bug_when>
    <thetext>Created attachment 450035
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834438</commentid>
    <comment_count>4</comment_count>
      <attachid>450109</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-27 00:38:07 -0800</bug_when>
    <thetext>Created attachment 450109
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834472</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-27 03:17:45 -0800</bug_when>
    <thetext>Committed r288671 (246477@main): &lt;https://commits.webkit.org/246477@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450109.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834473</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-27 03:18:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/88124039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449926</attachid>
            <date>2022-01-25 07:00:42 -0800</date>
            <delta_ts>2022-01-26 01:31:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235563-20220125170039.patch</filename>
            <type>text/plain</type>
            <size>1992900</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDBhNThkZTg4NDdmN2NmOTBkN2E3ZTYyMmE1MTk2NmMx
ZDlkZWY5ZS4uMTQ5MDkwYjUwMDBiMDc5OWI4Yjg0NTc2MWEwOGQwMGIzNWQyMjEwMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIyLTAxLTI1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3Qgc3VpdGUgdG8gMjAyMi0wMS0x
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NTYz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZ1
bmN0aW9uYWxpdHkgdG8gVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHM6CisgICAgICAgICAtIENvcHkgaHR0cC1vbmx5IHRlc3RzIHRvIGh0dHAvdGVzdHMvd2ViZ2wK
KyAgICAgICAgIC0gQWRkIHRlbXBsYXRlIHRvIGpzLXRlc3QtcHJlLmpzCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVz
dC1wcmUtdGVtcGxhdGUuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5j
ZV90ZXN0c19saWIvbWFpbi5weToKKyAgICAgICAgKF9jb3B5X3RyZWUpOgorICAgICAgICAobWFp
bik6CisKIDIwMjItMDEtMjQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbmFtZSBWZWN0b3IgYW5kIEZpeGVkVmVjdG9yOjpmaW5kTWF0Y2hpbmcgdG8gZmluZElm
IHRvIG1hdGNoIHN0bCBuYW1pbmcuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVzdC1wcmUtdGVtcGxhdGUu
anMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0
c19saWIvanMtdGVzdC1wcmUtdGVtcGxhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZkNDJlNTMwYjZlMGY3
MWQ4NDY5ZmRiMGUyYzI0YjE0Nzk2MGQyMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9qcy10ZXN0LXBy
ZS10ZW1wbGF0ZS5qcwpAQCAtMCwwICsxLDUxOSBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLwor
CisoZnVuY3Rpb24oKSB7CisgIHZhciB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gZmFsc2U7CisK
KyAgdmFyIGluaXROb25LaHJvbm9zRnJhbWV3b3JrID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRl
c3RIYXJuZXNzSW5pdGlhbGl6ZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEhh
cm5lc3NJbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNv
ZGUgLS0gKi8KKworICAgIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhl
cmUuCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0
UnVubmVyOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMgY29u
c29sZSBvdXRwdXQuCisgICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRl
c3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2Fn
ZXMuCisgICAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdp
bmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisKKyAg
ICAgIC8vIFJBRiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhl
IHRlc3RzIHdpbGwKKyAgICAgIC8vIHVzZSBzZXRUaW1lb3V0IGluc3RlYWQuCisgICAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOworICAgICAgd2luZG93LndlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICAvKiAtLSBl
bmQgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0aW5n
SGFybmVzcyA9IGZ1bmN0aW9uKCkgeworICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKCk7Cisg
IH0KK30oKSk7CisKK2Z1bmN0aW9uIG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgewor
ICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICB9Cit9CisKK2Z1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNz
KHN1Y2Nlc3MsIG1zZykgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7
CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93
LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG5v
dGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RI
YXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlz
aGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5ub25LaHJv
bm9zRnJhbWV3b3JrTm90aWZ5RG9uZSkgeworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3Jr
Tm90aWZ5RG9uZSgpOworICB9Cit9CisKK2Z1bmN0aW9uIF9sb2dUb0NvbnNvbGUobXNnKQorewor
ICAgIGlmICh3aW5kb3cuY29uc29sZSkKKyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOwor
fQorCit2YXIgX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nID0gZmFsc2U7CisKK2Z1bmN0aW9uIGVu
YWJsZUpTVGVzdFByZVZlcmJvc2VMb2dnaW5nKCkKK3sKKyAgICBfanNUZXN0UHJlVmVyYm9zZUxv
Z2dpbmcgPSB0cnVlOworfQorCitmdW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCit7CisgICAgaW5p
dFRlc3RpbmdIYXJuZXNzKCk7CisgICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICBt
c2cgPSBkb2N1bWVudC50aXRsZTsKKyAgICB9CisgICAgLy8gRm9yIE1TSUUgNiBjb21wYXRpYmls
aXR5CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAg
c3Bhbi5pbm5lckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4iIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+
Ii48L3A+JzsKKyAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZGVzY3JpcHRpb24iKTsKKyAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkKKyAgICAgICAg
ZGVzY3JpcHRpb24ucmVwbGFjZUNoaWxkKHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpOwor
ICAgIGVsc2UKKyAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgaWYg
KF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKG1zZyk7
CisgICAgfQorfQorCitmdW5jdGlvbiBfYWRkU3Bhbihjb250ZW50cykKK3sKKyAgICB2YXIgc3Bh
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qg
c28gWEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQorICAgIHNwYW4uaW5uZXJIVE1MID0gY29udGVu
dHMgKyAnPGJyIC8+JzsKK30KKworZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIF9hZGRTcGFu
KG1zZyk7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfbG9n
VG9Db25zb2xlKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQpCit7
CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICIm
bHQ7Iik7Cit9CisKK2Z1bmN0aW9uIHRlc3RQYXNzZWQobXNnKQoreworICAgIHJlcG9ydFRlc3RS
ZXN1bHRzVG9IYXJuZXNzKHRydWUsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNs
YXNzPSJwYXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsK
KyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAgICAgIF9sb2dUb0NvbnNv
bGUoJ1BBU1MgJyArIG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykK
K3sKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhmYWxzZSwgbXNnKTsKKyAgICBfYWRk
U3BhbignPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1M
KG1zZykgKyAnPC9zcGFuPicpOworICAgIF9sb2dUb0NvbnNvbGUoJ0ZBSUwgJyArIG1zZyk7Cit9
CisKK2Z1bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9hLCBfYikKK3sKKyAgICB0cnkgeworICAgICAg
ICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2EubGVuZ3RoOyBpKyspCisgICAgICAgICAg
ICBpZiAoX2FbaV0gIT09IF9iW2ldKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9IGNhdGNoIChleCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVy
biB0cnVlOworfQorCitmdW5jdGlvbiBpc01pbnVzWmVybyhuKQoreworICAgIC8vIHRoZSBvbmx5
IHdheSB0byB0ZWxsIDAgZnJvbSAtMCBpbiBKUyBpcyB0aGUgZmFjdCB0aGF0IDEvLTAgaXMKKyAg
ICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0eQorICAgIHJldHVybiBuID09PSAwICYm
IDEvbiA8IDA7Cit9CisKK2Z1bmN0aW9uIGlzUmVzdWx0Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0
ZWQpCit7CisgICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIF9hY3R1YWwg
PT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0gKDEvX2V4cGVjdGVkKTsKKyAgICBpZiAo
X2FjdHVhbCA9PT0gX2V4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlw
ZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2V4cGVjdGVkKSkKKyAgICAgICAg
cmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVyIiAmJiBpc05hTihfYWN0dWFsKTsKKyAg
ICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkKKyAgICAgICAgcmV0dXJuIGFyZUFycmF5c0Vx
dWFsKF9hY3R1YWwsIF9leHBlY3RlZCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlv
biBzdHJpbmdpZnkodikKK3sKKyAgICBpZiAodiA9PT0gMCAmJiAxL3YgPCAwKQorICAgICAgICBy
ZXR1cm4gIi0wIjsKKyAgICBlbHNlIHJldHVybiAiIiArIHY7Cit9CisKK2Z1bmN0aW9uIGV2YWxB
bmRMb2coX2EpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAgZGVidWcoIldB
Uk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICAvLyBMb2cg
Zmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBz
eW5jIGV2ZW50LgorICBkZWJ1ZyhfYSk7CisKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2
ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJl
dyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJldHVybiBfYXY7Cit9CisKK2Z1bmN0aW9uIHNo
b3VsZEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8
fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZSgp
IGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFy
IF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9i
KTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVs
c2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkg
eworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCisgICAgICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2
KSArICIuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
IiArIF9idiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAi
IChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5v
dEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0
eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgp
IGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFy
IF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9i
KTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAg
ICBlbHNlIGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1
aWV0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90
IGJlICIgKyBfYnYgKyAiLiIpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hv
dWxkQmUoX2EsICJ0cnVlIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxk
QmUoX2EsICJmYWxzZSIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU5hTihfYSkgeyBzaG91bGRCZShf
YSwgIk5hTiIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJu
dWxsIik7IH0KKworZnVuY3Rpb24gc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGEsIGIpCit7CisgIHZh
ciB1bmV2YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFjZSgvIi9nLCAiXCIiKSArICciJzsKKyAg
c2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQorCitmdW5jdGlvbiBzaG91bGRFdmFsdWF0
ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgLy8gQSBnZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRv
ci4gICdhY3R1YWwnIHNob3VsZCBiZSBhIHN0cmluZyB0byBiZQorICAvLyBldmFsdWF0ZWQsIGFz
IGZvciBzaG91bGRCZSgpLiAnZXhwZWN0ZWQnIG1heSBiZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQor
ICAvLyB1c2VkIHdpdGhvdXQgYmVpbmcgZXZhbCdlZC4KKyAgaWYgKGV4cGVjdGVkID09IG51bGwp
IHsKKyAgICAvLyBEbyB0aGlzIGJlZm9yZSB0aGUgb2JqZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMg
b2YgdHlwZSAnb2JqZWN0Jy4KKyAgICBzaG91bGRCZU51bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gInVuZGVmaW5lZCIpIHsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7
CisgICAgLy8gQWxsIHRoaXMgZnVzcyBpcyB0byBhdm9pZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5n
IGZyb20gc2hvdWxkQmUoKS4KKyAgICB0cnkgeworICAgICAgYWN0dWFsVmFsdWUgPSBldmFsKGFj
dHVhbCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgdGVzdEZhaWxlZCgiRXZhbHVhdGluZyAi
ICsgYWN0dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9c
bi9nLCAiIikgKyAiJyIsCisgICAgICAgICAgICAgIiciICsgZXhwZWN0ZWQudG9TdHJpbmcoKS5y
ZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9
PSAib2JqZWN0IikgeworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwgKyAiID09ICciICsgZXhwZWN0
ZWQgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAic3RyaW5nIikgewor
ICAgIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBl
Y3RlZCA9PSAiYm9vbGVhbiIpIHsKKyAgICBzaG91bGRCZSgidHlwZW9mICIgKyBhY3R1YWwsICIn
Ym9vbGVhbiciKTsKKyAgICBpZiAoZXhwZWN0ZWQpCisgICAgICBzaG91bGRCZVRydWUoYWN0dWFs
KTsKKyAgICBlbHNlCisgICAgICBzaG91bGRCZUZhbHNlKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAo
dHlwZW9mIGV4cGVjdGVkID09ICJudW1iZXIiKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBzdHJp
bmdpZnkoZXhwZWN0ZWQpKTsKKyAgfSBlbHNlIHsKKyAgICBkZWJ1ZyhleHBlY3RlZCArICIgaXMg
dW5rbm93biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlVHJ1ZShhY3R1
YWwsICInIiAgK2V4cGVjdGVkLnRvU3RyaW5nKCkgKyAiJyIpOworICB9Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlTm9uWmVybyhfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAg
dHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0
aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIGJlIG5vbi16ZXJvLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVs
c2UgaWYgKF9hdiAhPSAwKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi16ZXJvLiIpOwor
ICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBXYXMgIiAr
IF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9uTnVsbChfYSkKK3sKKyAgdmFyIGV4Y2Vw
dGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPSBudWxsKQorICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzIG5vbi1udWxsLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlIG5vbi1udWxsLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVW5k
ZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAg
ICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOwor
ICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
dW5kZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKHR5
cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgdW5kZWZp
bmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5l
ZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZURlZmluZWQoX2EpCit7Cisg
IHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2Ep
OworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhj
ZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBUaHJldyBl
eGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPT0gdW5kZWZpbmVkKQor
ICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlv
biBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpIHsKKyAgICBpZiAodHlwZW9mIF9h
ICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldB
Uk46IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIp
OworCisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAg
IF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0g
ZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgICAgaWYgKGV4Y2VwdGlvbikK
KyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFRocmV3
IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1
bmRlZmluZWQiIHx8IF9hdiA8IF9idikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9h
diArICIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgPj0gIiAr
IF9iKTsKK30KKworZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2LCBtc2cpIHsKKyAgaWYgKHYpIHsKKyAg
ICB0ZXN0UGFzc2VkKG1zZyk7CisgIH0gZWxzZSB7CisgICAgdGVzdEZhaWxlZChtc2cpOworICB9
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsK
KyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIHZhciBfZXY7CisgIGlmIChfZSkKKyAg
ICAgIF9ldiA9ICBldmFsKF9lKTsKKworICBpZiAoZXhjZXB0aW9uKSB7CisgICAgaWYgKHR5cGVv
ZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0gX2V2KQorICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOworICAgIGVsc2UK
KyAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAi
dW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmlu
ZWQiKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9
PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyB1bmRlZmluZWQu
Iik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiAr
IF9hdiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpIHsKKyAg
ICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0g
ZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAg
IH0KKworICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKworICAgIGlmKF90eXBldiA9PT0g
TnVtYmVyKXsKKyAgICAgICAgaWYoX2F2IGluc3RhbmNlb2YgTnVtYmVyKXsKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9
CisgICAgICAgIGVsc2UgaWYodHlwZW9mKF9hdikgPT09ICdudW1iZXInKXsKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9
CisgICAgICAgIGVsc2V7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4g
aW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoX2F2
IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGlu
c3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChf
YSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfQorfQorCitmdW5j
dGlvbiBhc3NlcnRNc2coYXNzZXJ0aW9uLCBtc2cpIHsKKyAgICBpZiAoYXNzZXJ0aW9uKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQobXNnKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVk
KG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBnYygpIHsKKyAgICBpZiAod2luZG93LkdDQ29u
dHJvbGxlcikgeworICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh3aW5kb3cub3BlcmEgJiYgd2luZG93Lm9wZXJh
LmNvbGxlY3QpIHsKKyAgICAgICAgd2luZG93Lm9wZXJhLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5RdWVyeUludGVyZmFjZShD
b21wb25lbnRzLmludGVyZmFjZXMubnNJSW50ZXJmYWNlUmVxdWVzdG9yKQorICAgICAgICAgICAg
ICAuZ2V0SW50ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lET01XaW5kb3dVdGlscykK
KyAgICAgICAgICAgICAgLmdhcmJhZ2VDb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
IGNhdGNoKGUpIHt9CisKKyAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CisgICAgICAgIGlmIChuIDwg
MSkKKyAgICAgICAgICAgIHJldHVybiB7fTsKKyAgICAgICAgdmFyIHRlbXAgPSB7aTogImFiIiAr
IGkgKyAoaSAvIDEwMDAwMCl9OworICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICBnY1Jl
YyhuLTEpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAg
ICAgZ2NSZWMoMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICB2YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzY3JpcHQiKTsKKyAgdmFyIGJhc2VQYXRoID0gIiI7CisgIHZhciBleHBlY3RlZEJhc2UgPSAi
anMtdGVzdC1wcmUuanMiOworICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdzY3JpcHQnKTsKKyAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2Ny
aXB0c1tpXTsgaSsrKSB7CisgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgdmFyIGwgPSBz
cmMubGVuZ3RoOworICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9
PSBleHBlY3RlZEJhc2UpIHsKKyAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhw
ZWN0ZWRCYXNlLmxlbmd0aCk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXBpbG9ndWUu
c3JjID0gYmFzZVBhdGggKyAianMtdGVzdC1wb3N0LmpzIjsKKyAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlcGlsb2d1ZSk7Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9tYWluLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkK
aW5kZXggYzYxMDU2M2VmMTYxZTczNmNmYmJkNmY1YzFjYmE2NGQ3NTcyYjY0Ny4uNTlhMGM3Y2Yx
MmM1NzcyM2NlODdhNGUzOTA4ZGI2MjViZThhMjFmMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNf
bGliL21haW4ucHkKQEAgLTM0LDggKzM0LDggQEAKICAgIGNkIH4vdGVtcAogICAgZ2l0IGNsb25l
IGdpdDovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1dlYkdMLmdpdAogICAgbWtkaXIgYmFja3Vw
Ci0gICBtdiB+L1dlYktpdC9MYXlvdXRUZXN0cy93ZWJnbC97MS4wLngsMi4wLnkscmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXN9IGJhY2t1cAotICAgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMgfi90ZW1w
L1dlYkdMCisgICBtdiB+L1dlYktpdC9MYXlvdXRUZXN0cy97aHR0cC8sfXdlYmdsL3sxLjAueCwy
LjAueSxyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlc30gYmFja3VwCisgICB1cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMgLWMgfi90ZW1wL1dlYkdMCiAgICBydW4td2Via2l0LXRlc3RzIC0t
ZGVidWcgLS13ZWJnbCAtLW9yZGVyPXJhbmRvbSB3ZWJnbAogICAgcnVuLXdlYmtpdC10ZXN0cyAt
LXJlbGVhc2UgLS13ZWJnbCAtLW9yZGVyPXJhbmRvbSB3ZWJnbAogICAgY2hlY2stZm9yLWR1cGxp
Y2F0ZWQtcGxhdGZvcm0tdGVzdC1yZXN1bHRzIC1uIDI+JjEgfCBncmVwIHdlYmdsCkBAIC02NCw2
ICs2NCw4IEBAIF9sYXlvdXRfdGVzdHNfZGlyID0gUGF0aChfX2ZpbGVfXykucGFyZW50LnBhcmVu
dC5wYXJlbnQucGFyZW50LnBhcmVudCAvICJMYXlvdXRUCiAKIF91c2VfdmVyYm9zZV9vdXRwdXQg
PSBGYWxzZQogCitfY2xlYW5fdGFyZ2V0X2RpcnMgPSBGYWxzZQorCiBfSWdub3JlZEZpbGVuYW1l
TWF0Y2hlciA9IENhbGxhYmxlW1tQYXRoXSwgYm9vbF0KIAogCkBAIC04NCw3ICs4Niw3IEBAIGRl
ZiBfbWFrZV9pZ25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIocnVsZXM6IEl0ZXJhYmxlW1VuaW9u
W3N0ciwgVHVwbGVbc3RyXV1dKSAtCiAgICAgcmV0dXJuIG1hdGNoX3J1bGVzCiAKIAotX2NvbmZv
cm1hbmNlX3BhdHRlcm5zID0gX21ha2VfaWdub3JlX2ZubWF0Y2hfcnVsZV9tYXRjaGVyKAorX2Zp
bGVfcGF0dGVybnMgPSBfbWFrZV9pZ25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIoCiAgICAgWwog
ICAgICAgICAiLmdpdCIsCiAgICAgICAgICIqLnB5YyIsCkBAIC0xMDQsNiArMTA2LDMxIEBAIF9j
b25mb3JtYW5jZV9wYXR0ZXJucyA9IF9tYWtlX2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigK
ICAgICAgICAgIiovZGVxcC90ZW1wX2V4dGVybnMqIiwKICAgICAgICAgIiovZGVxcC90ZXN0LXdl
YmdsMi5qcyIsCiAgICAgICAgICIqL2RlcXAvdGVzdC13ZWJnbDIuc2giLAorICAgICAgICAiKi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bCIsCisgICAgICAgICIqL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0
bWwiLAorICAgICAgICAiKi9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIiwK
KyAgICAgICAgIiovbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCIsCisgICAgICAg
ICIqL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiLAorICAgIF0KKykKKwor
X2h0dHBfZmlsZV9wYXR0ZXJucyA9IF9tYWtlX2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigK
KyAgICBbCisgICAgICAgICIqIiwKKyAgICAgICAgKCIqL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIiwgKSwKKyAgICAgICAgKCIqL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiLCApLAorICAgICAgICAo
IiovbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCIsICksCisgICAgICAgICgi
Ki9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiwgKSwKKyAgICAgICAgKCIqL21v
cmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiLCApLAorICAgICAgICAoIiovbW9y
ZS91bml0LmNzcyIsICksCisgICAgICAgICgiKi9tb3JlL3VuaXQuanMiLCApLAorICAgICAgICAo
IiovbW9yZS91dGlsLmpzIiwgKSwKKyAgICAgICAgKCIqL2pzL2pzLXRlc3QtcG9zdC5qcyIsICks
CisgICAgICAgICgiKi9qcy9qcy10ZXN0LXByZS5qcyIsICksCisgICAgICAgICgiKi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIiwgKSwKKyAgICAgICAgKCIqL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyIsICksCisgICAgICAgICgiKi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIiwgKSwKKyAg
ICAgICAgKCIqL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBuZyIsICksCiAgICAg
XQogKQogCkBAIC0xMjAsNyArMTQ3LDcgQEAgZGVmIF9jb3B5X3RyZWUoc3JjOiBQYXRoLCBkc3Q6
IFBhdGgsIGlnbm9yZTogT3B0aW9uYWxbX0lnbm9yZWRGaWxlbmFtZU1hdGNoZXJdID0KICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIGlmIGlnbm9yZSBpcyBub3QgTm9uZSBhbmQgaWdub3JlKHNy
Y19uYW1lKToKICAgICAgICAgICAgICAgICBpZiBfdXNlX3ZlcmJvc2Vfb3V0cHV0OgotICAgICAg
ICAgICAgICAgICAgICBwcmludCgiSWdub3Jpbmc6ICVzIiAlIChzcmNfbmFtZSkpCisgICAgICAg
ICAgICAgICAgICAgIHByaW50KCJJZ25vcmluZzogJXMsIG1hdGNoZXMgaWdub3JlIGZpbHRlciIg
JSAoc3JjX25hbWUpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBpZiBf
dXNlX3ZlcmJvc2Vfb3V0cHV0OgogICAgICAgICAgICAgICAgIHByaW50KCJDb3B5aW5nOiAlcyAt
PiAlcyIgJSAoc3JjX25hbWUsIGRzdF9uYW1lKSkKQEAgLTE4Nyw2ICsyMTQsOCBAQCBkZWYgX2Nv
cHlfd2ViZ2xfdGVzdF9maWxlcygKICAgICB0YXJnZXRfZGlyOiBQYXRoLAogKToKICAgICB0YXJn
ZXRfdGVzdF9maWxlc19kaXIgPSB0YXJnZXRfZGlyIC8gInJlc291cmNlcyIgLyAid2ViZ2xfdGVz
dF9maWxlcyIKKyAgICBpZiBfY2xlYW5fdGFyZ2V0X2RpcnM6CisgICAgICAgIHNodXRpbC5ybXRy
ZWUodGFyZ2V0X3Rlc3RfZmlsZXNfZGlyKQogICAgIF9jb3B5X3RyZWUoc291cmNlX3Rlc3RzX2Rp
ciwgdGFyZ2V0X3Rlc3RfZmlsZXNfZGlyLCBzb3VyY2VfcGF0dGVybnMpCiAKIApAQCAtMjAzLDYg
KzIzMiw5IEBAIGRlZiBfZ2VuZXJhdGVfd2Via2l0X3dlYmdsX3Rlc3RzKAogICAgIHRhcmdldF9q
c190ZXN0X2hhcm5lc3MgPSB0YXJnZXRfZGlyIC8gInJlc291cmNlcyIgLyAid2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyIKICAgICB0YXJnZXRfanNfdGVzdF9oYXJuZXNzLnBhcmVudC5ta2Rp
cihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCiAgICAgc2h1dGlsLmNvcHlmaWxlKHNvdXJj
ZV9qc190ZXN0X2hhcm5lc3MsIHRhcmdldF9qc190ZXN0X2hhcm5lc3MpCisgICAgc291cmNlX2pz
X3Rlc3RfaGFybmVzcyA9IF90b29sX2RpciAvICJqcy10ZXN0LXByZS10ZW1wbGF0ZS5qcyIKKyAg
ICB0YXJnZXRfanNfdGVzdF9oYXJuZXNzID0gdGFyZ2V0X2RpciAvICJyZXNvdXJjZXMiIC8gImpz
LXRlc3QtcHJlLmpzIgorICAgIHNodXRpbC5jb3B5ZmlsZShzb3VyY2VfanNfdGVzdF9oYXJuZXNz
LCB0YXJnZXRfanNfdGVzdF9oYXJuZXNzKQogCiAgICAgdGVzdF90ZW1wbGF0ZSA9IChfdG9vbF9k
aXIgLyAid2ViZ2wtdGVzdC1kcml2ZXItdGVtcGxhdGUuaHRtbCIpLnJlYWRfdGV4dCgpCiAgICAg
ZXhwZWN0YXRpb25fdGVtcGxhdGUgPSAoX3Rvb2xfZGlyIC8gIndlYmdsLWV4cGVjdGF0aW9uLXRl
bXBsYXRlLnR4dCIpLnJlYWRfdGV4dCgpCkBAIC0yMTAsNiArMjQyLDkgQEAgZGVmIF9nZW5lcmF0
ZV93ZWJraXRfd2ViZ2xfdGVzdHMoCiAgICAgdGVzdHMgPSBfcGFyc2Vfd2ViZ2xfdGVzdHMoc291
cmNlX3Rlc3RzX2RpciwgKHNvdXJjZV90ZXN0c19kaXIgLyAiMDBfdGVzdF9saXN0LnR4dCIpLCBz
dWl0ZV92ZXJzaW9uLCBzdWl0ZV92ZXJzaW9uKQogCiAgICAgdGFyZ2V0X3Rlc3RzX2RpciA9IHRh
cmdldF9kaXIgLyB0YXJnZXRfdmVyc2lvbl9uYW1lCisgICAgaWYgX2NsZWFuX3RhcmdldF9kaXJz
OgorICAgICAgICBzaHV0aWwucm10cmVlKHRhcmdldF90ZXN0c19kaXIpCisKICAgICBmb3IgdGVz
dF9wYXRoIGluIF9maWx0ZXJfd2ViZ2xfdGVzdF9wYXRoc19mb3Jfc3VpdGVfdmVyc2lvbih0ZXN0
cywgc3VpdGVfdmVyc2lvbik6CiAgICAgICAgIHRhcmdldF90ZXN0ID0gdGFyZ2V0X3Rlc3RzX2Rp
ciAvIHRlc3RfcGF0aAogICAgICAgICB0YXJnZXRfdGVzdF9pbXBsID0gdGFyZ2V0X3Rlc3RfZmls
ZXNfZGlyIC8gdGVzdF9wYXRoCkBAIC0yNTIsNiArMjg3LDcgQEAgZGVmIF9maW5kX2V4cGVjdGF0
aW9uc19mb3JfcmVtb3ZlZF90ZXN0cyhsYXlvdXRfdGVzdHNfZGlyOiBQYXRoKToKIGRlZiBtYWlu
KCk6CiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249X19k
b2NfXywgZm9ybWF0dGVyX2NsYXNzPWFyZ3BhcnNlLlJhd1RleHRIZWxwRm9ybWF0dGVyKQogICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGhlbHA9InByaW50IHZlcmJvc2Ugb3V0cHV0LiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLWMiLCAiLS1jbGVhbi10YXJnZXQtZGlycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9
InJlbW92ZSBhbGwgZmlsZXMgZnJvbSB0YXJnZXQgc3ViZGlyZWN0b3JpZXMgYmVmb3JlIHVwZGF0
aW5nIHRoZW0uIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ3ZWJnbF9yZXBvc2l0b3J5Iiwg
aGVscD0icGF0aCB0byBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0IHJlcG9zaXRvcnkgcm9vdC4iKQog
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItbCIsCkBAIC0yNjMsMTQgKzI5OSwy
MyBAQCBkZWYgbWFpbigpOgogICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygpCiAgICAg
Z2xvYmFsIF91c2VfdmVyYm9zZV9vdXRwdXQKICAgICBfdXNlX3ZlcmJvc2Vfb3V0cHV0ID0gb3B0
aW9ucy52ZXJib3NlIG9yIEZhbHNlCisgICAgZ2xvYmFsIF9jbGVhbl90YXJnZXRfZGlycworICAg
IF9jbGVhbl90YXJnZXRfZGlycyA9IG9wdGlvbnMuY2xlYW5fdGFyZ2V0X2RpcnMgb3IgRmFsc2UK
ICAgICBzb3VyY2VfZGlyID0gUGF0aChvcHRpb25zLndlYmdsX3JlcG9zaXRvcnkpCiAgICAgdGFy
Z2V0X2RpciA9IFBhdGgob3B0aW9ucy5sYXlvdXRfdGVzdHNfZGlyKSAvICJ3ZWJnbCIKIAotICAg
IF9jb3B5X3dlYmdsX3Rlc3RfZmlsZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzb3VyY2VfcGF0dGVybnM9X2NvbmZvcm1hbmNlX3BhdHRlcm5zLCB0YXJn
ZXRfZGlyPXRhcmdldF9kaXIpCisgICAgX2NvcHlfd2ViZ2xfdGVzdF9maWxlcyhzb3VyY2VfdGVz
dHNfZGlyPXNvdXJjZV9kaXIgLyAic2RrIiAvICJ0ZXN0cyIsIHNvdXJjZV9wYXR0ZXJucz1fZmls
ZV9wYXR0ZXJucywgdGFyZ2V0X2Rpcj10YXJnZXRfZGlyKQogICAgIF9nZW5lcmF0ZV93ZWJraXRf
d2ViZ2xfdGVzdHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMi
LCBzdWl0ZV92ZXJzaW9uPVZlcnNpb24oIjEuMC40IiksIHVzZV93ZWJnbDJfY29udGV4dD1GYWxz
ZSwgdGFyZ2V0X2Rpcj10YXJnZXRfZGlyLCB0YXJnZXRfdmVyc2lvbl9uYW1lPSIxLjAueCIpCiAg
ICAgX2dlbmVyYXRlX3dlYmtpdF93ZWJnbF90ZXN0cyhzb3VyY2VfdGVzdHNfZGlyPXNvdXJjZV9k
aXIgLyAic2RrIiAvICJ0ZXN0cyIsIHN1aXRlX3ZlcnNpb249VmVyc2lvbigiMi4wLjEiKSwgdXNl
X3dlYmdsMl9jb250ZXh0PVRydWUsIHRhcmdldF9kaXI9dGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNp
b25fbmFtZT0iMi4wLnkiKQotICAgIGxheW91dF90ZXN0c19kaXIgPSBQYXRoKG9wdGlvbnMubGF5
b3V0X3Rlc3RzX2RpcikKIAorICAgIGlmIF91c2VfdmVyYm9zZV9vdXRwdXQ6CisgICAgICAgIHBy
aW50KCJVcGRhdGluZyBodHRwIHRlc3RzIikKKyAgICBodHRwX3RhcmdldF9kaXIgPSBQYXRoKG9w
dGlvbnMubGF5b3V0X3Rlc3RzX2RpcikgLyAiaHR0cCIgLyAidGVzdHMiIC8gIndlYmdsIgorICAg
IF9jb3B5X3dlYmdsX3Rlc3RfZmlsZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzb3VyY2VfcGF0dGVybnM9X2h0dHBfZmlsZV9wYXR0ZXJucywgdGFyZ2V0
X2Rpcj1odHRwX3RhcmdldF9kaXIpCisgICAgX2dlbmVyYXRlX3dlYmtpdF93ZWJnbF90ZXN0cyhz
b3VyY2VfdGVzdHNfZGlyPXNvdXJjZV9kaXIgLyAic2RrIiAvICJ0ZXN0cyIsIHN1aXRlX3ZlcnNp
b249VmVyc2lvbigiMS4wLjQiKSwgdXNlX3dlYmdsMl9jb250ZXh0PUZhbHNlLCB0YXJnZXRfZGly
PWh0dHBfdGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNpb25fbmFtZT0iMS4wLngiKQorICAgIF9nZW5l
cmF0ZV93ZWJraXRfd2ViZ2xfdGVzdHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzdWl0ZV92ZXJzaW9uPVZlcnNpb24oIjIuMC4xIiksIHVzZV93ZWJnbDJf
Y29udGV4dD1UcnVlLCB0YXJnZXRfZGlyPWh0dHBfdGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNpb25f
bmFtZT0iMi4wLnkiKQorCisgICAgbGF5b3V0X3Rlc3RzX2RpciA9IFBhdGgob3B0aW9ucy5sYXlv
dXRfdGVzdHNfZGlyKQogICAgIG9sZF9leHBlY3RhdGlvbnMgPSBfZmluZF9leHBlY3RhdGlvbnNf
Zm9yX3JlbW92ZWRfdGVzdHMobGF5b3V0X3Rlc3RzX2RpcikKICAgICBvbGRfZXhwZWN0YXRpb25z
ID0gW2UgZm9yIGUgaW4gb2xkX2V4cGVjdGF0aW9ucyBpZiAid2ViZ2wiIGluIHN0cihlKV0KICAg
ICBpZiBvbGRfZXhwZWN0YXRpb25zOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhiNDIwMzQ5M2ZmNmM0ZjY1OWQ5OTJhYWYz
OWJlNDJjNDg5YjJjMmMuLjI0NmUzMzZlNWM0N2ZjZGYyMGFmM2RkOWI2MTI0N2Y3ZTU5YWE5ZjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NTAgQEAKKzIwMjItMDEtMjUgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViR0wgY29uZm9ybWFuY2UgdGVz
dCBzdWl0ZSB0byAyMDIyLTAxLTEyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU1NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgV2ViR0wgdGVzdHN1aXRlIHRvIDIwMjItMDEtMTIgOWI1OGZk
MjQzZDM4ZjRiOWM3MmFiNmY3NWFkNzAxY2FmYzEzMTEzNy4KKworICAgICAgICBBZGRpdGlvbmFs
bHk6CisgICAgICAgIFRoZSBpbXBvcnQgc2NyaXB0IGNhbiBub3cgY2F0ZWdvcml6ZSB0ZXN0cyB0
byByZWd1bGFyIHRlc3RzIGFuZCBzbWFsbCBhbW91bnQgb2YgaHR0cAorICAgICAgICB0ZXN0czoK
KyAgICAgICAgIC0gUmVtb3ZlIG9sZCBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yLworICAgICAgICAg
LSBBZGQgbmV3IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLnggLyAyLjAueQorCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzLzN4My5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvYmx1ZS0xeDEuanBnOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL2J1Zy0zMjg4OC10ZXh0dXJlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIudmVydDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEucG5nOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYucG5nOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1kZWZhdWx0LWdhbW1hLnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5wbmc6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMi4wLnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5wbmc6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLnBuZzogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWc6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby5tcDQ6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby50aGVvcmEub2d2OiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8ud2VibXZwOC53ZWJtOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3BuZ2xpYi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ubXA0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3JlZC1ncmVlbi5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cmVkLWdyZWVuLnRoZW9yYS5vZ3Y6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cmVkLWdyZWVuLndlYm12cDgud2VibTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9yZWQtaW5kZXhlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21h
bGwtc3F1YXJlLXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9y
c3Bpbi1wcm9maWxlLmpwZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFs
bC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMt
cHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1
YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMu
anM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuanM6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC12aWRlby5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFk
ZXIudmVydDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanM6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmc6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy8wMF90ZXN0X2xpc3QudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLTJkLWZvcm1hdHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdl
dC10ZXgtcGFyYW1ldGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9n
bC1waXhlbHN0b3JlaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wt
dGV4aW1hZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pcG1hcC1m
Ym8uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1jYW52YXMtcmdiNTY1Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1jYW52YXMtcmdiYTU1NTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWltYWdlLWRhdGEtcmdiNTY1Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRh
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2NS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNDQ0
NC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNTU1MS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTQ0NDQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtdmlkZW8tcmdiYTU1NTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5k
aW5nLWJ1Z3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS13ZWJnbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZhbGlkLWRhdGEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLWJhZC1hcmdzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQt
Zm9ybWF0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1j
bGVhci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21w
bGV0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1mb3Jt
YXRzLXRlc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUt
aGQtZHBpLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW1p
cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC12
aWRlby5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtY3Vi
ZS1tYXBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNp
emUtbGltaXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUt
c2l6ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWIt
aW1hZ2UtY3ViZS1tYXBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanM6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3dlYmdsLXRl
c3QtaGFybmVzcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRN
TC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3Mu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50
eHQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwu
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eFN1YkltYWdlMkRIVE1MLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcy4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dW5pdC5jc3M6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5jc3MuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL3VuaXQuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dW5pdC5qcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qczogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS91dGlsLmpzLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJl
LmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9qcy9qcy10ZXN0LXByZS5qcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanM6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3M6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9vcGVuZ2xfbG9nby5qcGc6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcy4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9tdWx0aXNhbXBsZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDFfdG9fMDA4LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwMV90b18wMDguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQ6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18w
MjQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3Rv
XzAyNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBl
Y3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2LWV4cGVjdGVkLnR4
dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNTdfdG9fMDY0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0OiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNf
dG9fMDgwLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3
M190b18wODAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYt
ZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAg
ICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5
Ni5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wOTdfdG9fMTA0LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3Rl
ZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4LWV4cGVjdGVkLnR4dDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTI5X3RvXzEzNi1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMjlfdG9fMTM2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0OiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9f
MTUyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90
b18xNTIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50
eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1k
ZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1
bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1h
ZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1t
YXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwOV90b18wMTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAx
N190b18wMjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18w
NDAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODFfdG9fMDg4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wODlfdG9fMDk2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
OTdfdG9fMTA0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVf
dG9fMTEyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9f
MTIwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEyOV90b18xMzYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE0NV90b18xNTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE1M190b18xNjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE2MV90b18xNjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2
OV90b18xNzYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190
b18xNzgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1l
YnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZm
ZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFs
aWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1u
b3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJh
YmxlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sLgorICAgICAgICAqIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
LW9mZnNjcmVlbmNhbnZhcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9w
bmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0
ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9l
eHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFz
aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMv
cmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwt
c3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0
ZWQtYnktY29sb3JtYXNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1j
b2xvcm1hc2suaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
Z2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxl
L2RlZmF1bHRfZmJvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fNF9zYW1wbGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRp
c2FtcGxlL2Zib184X3NhbXBsZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhf
c2FtcGxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRl
eHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2lu
dGVyLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9j
b250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2NvbnRleHQvbWV0aG9kcy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Np
b24tYnB0Yy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tcmd0Yy5odG1s
OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvczN0Yy1hbmQtcmd0Yy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3Nl
ZC10ZXh0dXJlLXMzdGMtc3JnYi5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy5odG1s
OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvd2ViZ2wtd2ViY29kZWNzLXZpZGVvLWZyYW1lLmh0bWw6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2No
YXJhY3Rlci1zZXQuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9nbHNsL2NvbnN0cnVjdG9ycy9nbHNsLWNvbnN0cnVjdC12ZWMtbWF0
LWluZGV4Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ0dfRGF0YV9UeXBlc19mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0Q29tbWFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3Jy
ZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RD
b25zdEZvbGRpbmcyX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0
cnVjdF92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9W
MTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEw
MF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVsbF92ZXJ0LnZlcnQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jT3ZlcmxvYWRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2FkX3ZlcnQudmVydDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEZ1bmN0aW9uMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NvcnJlY3RNb2R1bGVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFy
c2UxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMl9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfdmVydC52ZXJ0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2VUZXN0MV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0UHJlcHJvY2VzczVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0
UHJlcHJvY2VzczhfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJv
Y2VzczlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfdmVydC52ZXJ0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTJfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9Db3JyZWN0U3dpenpsZTNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0
VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvRHVwbGljYXRlVmVy
c2lvbjFfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Z1bmN0aW9uUGFyYW1f
dmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9JbmNsdWRlX1ByZXByb2Nlc3Nvcl9EaXJl
Y3RpdmVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Mb3dfTGV2ZWxfQXNzZW1ibHlf
UmVzZXJ2ZWRfV29yZHNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFt
ZXRlcnNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3QzX2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0NF9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL1Blcm1pc3NpdmVfQ29uc3RhbnRfQ29udmVyc2lvbnNfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNzaXZlX1NjYWxhcl9WZWN0b3JfRXhwcmVzc2lvbnNfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXJuYXJ5T3BfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2FycmF5MTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTExX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxX2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYXJyYXkzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk0X2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk1X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYXJyYXk2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk3X2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk4X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYXJyYXk5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRl
MV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTJfdmVydC52ZXJ0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9hdHRyaWJ1dGVfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9icmVha19mcmFn
LmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDU3X3RvXzA2NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODlfdG9fMDk2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18x
MDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5
X3RvXzEzNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xNjFfdG9fMTY4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21t
YTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTJfdmVydC52ZXJ0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9jb21tYTNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9j
b21tZW50X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwxX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwyX2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29uc3RGdW5jX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3Ix
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IzX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9jb250aW51ZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlMTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTExX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMl9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RhdGFUeXBlMTNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTE5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUyX2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZGF0YVR5cGUzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0
YVR5cGU0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU1X2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5
cGU4X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU5X2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGVmYXVsdC5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
ZWZhdWx0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rvd2hpbGVfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9kdmVjMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2
ZWMzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzRfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9leHRlbnNpb24zX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb241X1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb242
X1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb243X1YxMDBfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb244X1YxMDBfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb245X1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mbG9hdDJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDNf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnJhZ21lbnRPbmx5Ml92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50
T25seTNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHk0X3ZlcnQu
dmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5X3ZlcnQudmVydDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2Z1bmN0aW9uMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAw
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24zX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb240X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnVuY3Rpb242X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb243X2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb244X2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
aHZlYzJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjM19mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2h2ZWM0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
aWRlbnRpZmllcjFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMl9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvaWYxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYy
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50MV9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9pbmNyZW1lbnQzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50
NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDZfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9pbnB1dC5ydW4udHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9t
YWluMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4yX3ZlcnQudmVydDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9t
YXRyaXhfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZl
cnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjEwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjNf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI0X2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcGFyc2VyNV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Bh
cnNlcjZfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3BhcnNlcjlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMF9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxMF9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvcHJlcHJvY2VzczJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9j
ZXNzM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M0X2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczZfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9wcmVwcm9jZXNzN19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Nj
b3BpbmcxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc2NvcGluZzJfZnJhZy5mcmFn
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3N0cnVjdDExX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDJfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9zdHJ1Y3QzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3Ry
dWN0NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDVfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3RydWN0N19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDhfZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvc3dpenpsZTFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxl
Ml9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUzX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdHlwZWNhc3RfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC91bmlmb3JtMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3VuaWZvcm1fZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nMV9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ZhcnlpbmcyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWlu
ZzNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdmVjdG9yX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
dmVyc2lvbjJfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1Yx
MDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5Ml9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC92ZXJ0ZXhfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTFfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC93aGlsZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL3Byb2dyYW0tdGVzdC5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlh
bGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0
LWdldC1jYWxscy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3ZpZGVvLXJvdGF0aW9uLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9kcy0yLmh0bWw6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L2V4dGVuc2lvbnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5odG1sOgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC10
ZXh0dXJlLW5vcm0xNi5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lv
bnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0YW5jZWQtYmFzZS12ZXJ0ZXgtYmFzZS1pbnN0YW5jZS5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9v
cC1jcmFzaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJvdy1tYWpvci1keW5hbWljLWluZGV4
aW5nLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1n
ZXQtZnJhZy1kYXRhLWxvY2F0aW9uLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5h
ZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMt
c3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQt
Y2FsbHMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZvcm1hdHMu
aHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2FtcGxlVGVzdHMuanM6CisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmlt
aXRpdmVSZXN0YXJ0VGVzdHMuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlv
bmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fOF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4
X3NhbXBsZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzOgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcG9zdC5qczoKKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qczoKKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVzc2Vk
LXRleHR1cmUtdXRpbHMuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvdGVzdHMvY29udGV4dC1tZXRob2RzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9leHQtY29sb3ItYnVmZmVyLWhh
bGYtZmxvYXQuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
anMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qczoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTNkLXdp
dGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qczoKKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12cDgu
d2VibToKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJj
ZXMvdmlkZW8tcm90YXRpb24tMC5tcDQ6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTAudnA5Lm1wNDoKKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRp
b24tMTgwLm1wNDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQ6CisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTI3MC5tcDQ6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3Zp
ZGVvLXJvdGF0aW9uLTI3MC52cDkubXA0OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi05MC5tcDQ6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9u
LTkwLnZwOS5tcDQ6CisKIDIwMjItMDEtMjUgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbY3NzLWdyaWRdIEZpeCBncmlkIHNob3J0aGFuZCBleHBhbnNpb24gb2YgaW5p
dGlhbCB2YWx1ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY0NWQzODFhMjVmNDE4YjFiZjE3ZTYy
Yjc2NzU2ZjJhNzg5YjE2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNP
TlNPTEUgTUVTU0FHRTogUHJvbW90ZWQgVVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2lt
Zy9vcGVuZ2xfbG9nby5qcGcgdG8gaHR0cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcKLUNPTlNPTEUgTUVT
U0FHRTogUHJvbW90ZWQgVVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xf
bG9nby5qcGcgdG8gaHR0cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczov
L3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcKLVRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgotCi1UZXN0OiByZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAotRkFJTAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAzODgzMjNj
YTYxNTA0NGU3YWNmZmZmMGYzYWEyYTdhYTFlZGNkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wt
dGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJyZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRl
c3Q6IDxhIGhyZWY9InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIj5yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDwv
YT4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBz
cmM9InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJh
bWU+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhYWNhODZlNzU0NzU1MDUxZTZj
YzU5OTZjOGVjZWZkMTg1NGFiNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxz
QmFkQXJncy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogUHJvbW90ZWQgVVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9v
cGVuZ2xfbG9nby5qcGcgdG8gaHR0cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcKLUNPTlNPTEUgTUVTU0FH
RTogUHJvbW90ZWQgVVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9n
by5qcGcgdG8gaHR0cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3
dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgotCi1UZXN0OiByZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCi1GQUlMCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZiZTcxM2EwN2MxNDQ1NzU1YWEwMTIwZTVj
YTQzOGVjZmM3YmI0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQaXhlbHNCYWRBcmdz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFk
QXJncy5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJl
c291cmNlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSJyZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1s
Ij5yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9y
ZWFkUGl4ZWxzQmFkQXJncy5odG1sPC9hPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxkaXYg
aWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlNjk2MTM5NjA1MTYzNjNiMzVk
NGQxNzE5OGM3ZmFjYmM3ZDI4ZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFk
QXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0KLQotLyoKLSoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KLQotVGVzdHMuc3RhcnRVbml0ID0g
ZnVuY3Rpb24gKCkgewotICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ds
Jyk7Ci0gIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOwotICBy
ZXR1cm4gW2dsXTsKLX0KLQotVGVzdHMudGVzdFJlYWRQaXhlbHMgPSBmdW5jdGlvbihnbCkgewot
ICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5l
Z2F0aXZlIHdpZHRoCi0gIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0
Y2ggdGhlIGRpbWVuc2lvbnMuCi0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAibmVnYXRpdmUgd2lk
dGgiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwtMSwxLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNz
ZXJ0U29tZUdMRXJyb3IoZ2wsICAibmVnYXRpdmUgaGVpZ2h0IiwKLSAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygwLDAsMSwtMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAg
ICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gIGFzc2VydE9rKCJuZWdhdGl2ZSB4IiwKLSAg
ICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygtMSwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gIGFzc2VydE9rKCJu
ZWdhdGl2ZSB5IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLC0xLDEsMSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7
Ci0gIGFzc2VydE9rKCJoZWlnaHQgPiBiYWNrYnVmZmVyIGhlaWdodCIsCi0gICAgICBmdW5jdGlv
bigpe2dsLnJlYWRQaXhlbHMoMCwwLDE2LDE3LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAot
ICAgICAgICAgIG5ldyBVaW50OEFycmF5KDE2KjE3KjQpKTt9KTsKLSAgYXNzZXJ0T2soIndpZHRo
ID4gYmFja2J1ZmZlciB3aWR0aCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCww
LDE3LDE2LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFy
cmF5KDE3KjE2KjQpKTt9KTsKLSAgYXNzZXJ0T2soIndpZHRoLCBoZWlnaHQgPSAwIiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDApKTt9KTsKLSAgLy8gd2UgY2FuJ3Qga25v
dyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAotICAv
LyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25z
LgotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgImJhZCBmb3JtYXQiLAotICAgICAgZnVuY3Rpb24o
KXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLkZMT0FULCBnbC5VTlNJR05FRF9CWVRFLAotICAg
ICAgICAgIG5ldyBVaW50OEFycmF5KDQqNCkpO30pOwotICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRo
aXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRoCi0gIC8vIG9yIGJl
Y2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVuc2lvbnMuCi0gIGFz
c2VydFNvbWVHTEVycm9yKGdsLCAiYmFkIHR5cGUiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFk
UGl4ZWxzKDAsMCwxLDEsIGdsLkFMUEhBLCBnbC5GTE9BVCwKLSAgICAgICAgICBuZXcgVWludDhB
cnJheSgxKjQpKTt9KTsKLX0KLQotVGVzdHMudGVzdFJlYWRQaXhlbHNTT1BJTUcgPSBmdW5jdGlv
bihnbCkgewotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIpOwotICAg
IHdoaWxlICghaW1nLmNvbXBsZXRlKSB7fQotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJl
KCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICAvLyBTT1Ag
ZmFpbHVyZQotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGhyb3cgYmVjYXVzZSBpbWcg
aXMgZnJvbSBhbm90aGVyIGRvbWFpbiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1n
KTt9KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBhc3Nl
cnRPaygiY2FudmFzIHN0aWxsIG9yaWdpbi1jbGVhbiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJl
YWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBu
ZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotfQotVGVz
dHMudGVzdFJlYWRQaXhlbHNTT1BDYW52YXMgPSBmdW5jdGlvbihnbCkgewotICAgIHZhciBpbWcg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIpOwotICAgIHdoaWxlICghaW1nLmNvbXBsZXRl
KSB7fQotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMiKTsKLSAgICBjLmdl
dENvbnRleHQoIjJkIikuZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gICAgYXNzZXJ0RmFpbCgiY2Fu
dmFzIHRocm93cyBiZWNhdXNlIG5vdCBvcmlnaW4gY2xlYW4iLAotICAgICAgZnVuY3Rpb24oKXtj
LmdldENvbnRleHQoIjJkIikuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpO30pOwotICAgIHZhciB0ZXgg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4KTsKLSAgICAvLyBTT1AgZmFpbHVyZQotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAi
dGhyb3cgYmVjYXVzZSBjYW52YXMgaXMgbm90IG9yaWdpbiBjbGVhbiIsCi0gICAgICBmdW5jdGlv
bigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYyk7fSk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
bnVsbCk7Ci0gICAgYXNzZXJ0T2soImNhbnZhcyBzdGlsbCBvcmlnaW4tY2xlYW4iLAotICAgICAg
ZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICAgIGdsLmRlbGV0ZVRleHR1
cmUodGV4KTsKLX0KLQotVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPjxib2R5PgotPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIx
NiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PC9j
YW52YXM+Ci08aW1nIGlkPSJpIiBzcmM9Imh0dHA6Ly93d3cub3BlbmdsLm9yZy9pbWcvb3Blbmds
X2xvZ28uanBnIj4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDlkZWZkNzgxYzkwZmJjZTMwN2U4MmY4MzhmMWFlZjIyOWQ5NWQyYWMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUy
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioK
LSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNj
cmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91
dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0
Ij4KLQotVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKLSAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0
KGdldEdMQ29udGV4dChjYW52YXMpKTsKLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRo
LGNhbnZhcy5oZWlnaHQpOwotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xl
YXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRp
c2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVw
ID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJF
X01BUCwgdGV4Q3ViZU1hcCk7Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24g
PSBmdW5jdGlvbihnbCwgdGV4LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1
cmUodGV4Q3ViZU1hcCk7Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wp
IHsKLSAgICBnbC5lbmFibGUoZ2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaScpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Mn
KTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2Uo
aW1nLDAsMCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1Q
X1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIHZhciBmID0gbmV3
IEZpbHRlcihnbCwgJ2lkZW50aXR5LWZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAg
Z2wuYmxlbmRGdW5jKGdsLk9ORSwgZ2wuWkVSTyk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVz
dHJveSgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVu
dGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wu
U1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAg
Zi5kZXN0cm95KCk7Ci0gICAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCi0gICAgICAgIGdsLlRFWFRV
UkVfMkQsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICAgICAg
Z2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVf
TUFQX1BPU0lUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwK
LSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgICAgICBnbC5URVhU
VVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKLSAgICBdOwotICAgIHZhbGlkX3RhcmdldHMuZm9yRWFj
aChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2Uy
RCh0LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICAg
ICAgYXNzZXJ0T2soZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIH0pOwotfQotCi1UZXN0cy50ZXN0VGV4
SW1hZ2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpMicpOwotICAgIHdoaWxlICghaW1nLmNvbXBsZXRlKSB7fQotICAgIHZh
ciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0gYy5nZXRD
b250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgYXNzZXJ0VGhy
b3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3Vs
ZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30p
OwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9y
aWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtn
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGMpO30pOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wpIHsKLX0K
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRl
eDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29v
cmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24g
PSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHkt
aGZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVy
dGV4OwotYXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9p
ZCBtYWluKCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwg
MC4wKTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+
Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
LXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOwot
Ci12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2ZWM0IGMgPSB0
ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29sb3IgPSBjOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+PGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIg
aGVpZ2h0PSIyNTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0
PSIyNTYiPjwvY2FudmFzPgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBz
cmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFF
QUNBWUFBQUJjY3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9H
RlZBNVZmQkd6YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERK
dDN2L2FFQkFVSEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUF3T3ZCa2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3
YWs4NVUzWHY1WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpv
U05GTytaTTFmMmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhH
WlFWdG1ONnA0TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5
Uk1wZlRXK3B5VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRM
L2l4Ym90UmxqNWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JE
S1A2Nnd5aldoWUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhm
UGxic2RjdWR0NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlVi
MTQ5VUY0RWpWU21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3Jk
anFFeXQvTm1XYTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2Nh
VHJKWEpnRWNpMHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJ
WGIrWFc1MnpGYTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJO
dUFXU202NWRLWUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNw
WmF2S29EVFgwVlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1
SmlUSlZEZ05FbGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRt
Qis1cCtXbDBGcGpyMmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3
dy9MOVdBV1NiREpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dq
KytWczJSNDV2ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxj
ekxDcFRrMlQzR1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1
a0E4dTFwY3ZSQWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5D
NlZQeEg5OG5ac3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RT
bDMya0pDZWpxeVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1Fs
YTZYTEZPeUFBb3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8y
cGxvTmtuM1ZmUFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4
UDVtZit1U0xQOGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9v
eFdiY1hBSGtXbE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJK
dHBycEwvWkp6Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2
ZG1mWFY0ZDJiM3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJO
aC9LODlJbU50SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStG
cE8rYVY2NS84RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVI
aTNNaVZRVnVLb1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZI
Vm90OFN1bkpZN04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxX
RnBQZWFSN28rZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMv
NThRQjk5WHFZbmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpj
djltNDhyUXJ4UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5
Sis1WXcwMTUrUWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1
TDREZGxjZnkzNkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFq
UWZuODF0dnJoLzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1Nr
SjVQTGtqSGUyZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdM
VEtLc3V5OGQ5cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5
Nm5xMzdQUmZsZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZm
cS9pNTdsVHgzMnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREds
NEJjRnFNVXUyMFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERj
bkpvTE5XeG1NMU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFt
bnNKaDFxb2hGcjF3WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjlu
ek45SzhPOTFOOGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1
Ny9wdStiNXBPWGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpN
SGRFbjJuV3FZNjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4
bHhtS2h2NDlHZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6
QlpCak5rcHhyazJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVX
Sk1kdGZISmpwcnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3Rs
U3AycGN0SHdZclphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJP
R1J3QmdPWk4yVjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1a
N0tpVkJ6MFhYeGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRU
bEZ2MGlwbXpEcmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3Qz
Nng5eXo0OVM4Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNs
U1ZaUXRId1FxWlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVK
dTZ2S3BGUDJtclRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVY
eVk3YW1XeW95WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hW
WUpuTmduWFIrK0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNu
eDM2VGQ5WU5acDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExa
RVVwTXROYzhtZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZu
aWJWWlhrU2VmdWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1
MDFqUC9BYWlhTm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0
clY0ejNXem50bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMv
S3d2ZytSZUI3Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9N
UjRMUFJsdkR6SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtI
ZHViQzcwbXgzemYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1u
ODMwd0JaS1hyWlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBC
UjJQdFFjWi9ZRG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29J
Rk91ZUE5Slg1TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1a
Tkc4WTFKbzNoaTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3
a1kyMUJHVzBMeGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2
WG9xeUxlSTlWaVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84
QnlUNWw5VDA5U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5
Sjd6U05UbmJXdjZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9z
VTM1cDF5bjlzVkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42
UndPL0gya0w4dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1
M0pheG1LaHRVUC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rj
b2lzMWJ4dmtXbmZHclJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpq
dDF3dis0aHB1RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1T
WExuV2NFeUdXdjB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkx
TS9sSDdBVkZyMHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5
cS9WUEFETXR6cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1
Zm5KZng5cHBub1YvdmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhm
cXAwMnZTcGcwNnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2Fi
KzdFWHd6K3d2TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxo
elpLOUYzcTJVa0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxR
SE1veWFoOWxtL2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0
VlhiYVU3VUJsOFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNp
SGc3aGxvQ2x1M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhu
L3UvUk5PKzgwRzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4
OUdvK0Zac2Rqb2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3
N1AxeE1PeDdQQmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9y
QzA0TzlZV21odU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2
OGRhUFkrSElqNFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81
RUEzTUxhMzY0TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0Qv
clpXRjBCYXNIVzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94
WmRJcm1XaGIzays5SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZN
Sm9XN0IydURVWUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBa
V2VPM2dKOFB2U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZX
ZjJ3dzRuODBHUEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2
bWJQZkgrelo3NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhj
Y0d3cjVIQTJIdjdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2Zr
SC9MYnRYTDJHV255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5
WE85cjl2aTM5MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQy
L3gzQXZnVjdkeXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlD
Vi9nOXRQSkVRdTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9ImkyIiBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvc3F1YXJlMTI4LnBuZyI+Ci0KLTwvYm9keT48
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkZjg4MDNi
NjIwYmMyMjE0MTYxNDIzMzcwM2FkMTAyOWJkNjg4ZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhTdWJJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KLQotVGVzdHMu
c3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZ2wnKTsKLSAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4
dChjYW52YXMpKTsKLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWln
aHQpOwotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2FibGUoZ2wuREVQ
VEhfVEVTVCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0gZnVuY3Rpb24o
Z2wpIHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3Vi
ZU1hcCk7Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihn
bCwgdGV4LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
bnVsbCk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1h
cCk7Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKLSAgICBnbC5l
bmFibGUoZ2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aScpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIg
Y3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0g
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdF
KTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9U
LCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICB2
YXIgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJh
ZycpOwotICAgIGdsLmJsZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOwotICAgIGYuYXBwbHkoKTsK
LSAgICBmLmRlc3Ryb3koKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGdsLnRleFN1YkltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7
Ci0gICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5
LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JD
X0FMUEhBKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0gICAgdmFyIHZhbGlk
X3RhcmdldHMgPSBbCi0gICAgICAgIGdsLlRFWFRVUkVfMkQsCi0gICAgICAgIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgICAgIGds
LlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01B
UF9QT1NJVElWRV9aLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKLSAg
ICBdOwotICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGFz
c2VydE9rKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAwLCBn
bC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgICAgICAgICBn
bC50ZXhTdWJJbWFnZTJEKHQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMp
OwotICAgICAgICB9KTsKLSAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKLSAgICAgICAgICAg
ICAgICBnbC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpOwotICAgICAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQodCwgMSwgMCwgMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCi1U
ZXN0cy50ZXN0VGV4SW1hZ2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOwotICAgIHdoaWxlICghaW1nLmNvbXBsZXRl
KSB7fQotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIg
Y3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0g
ICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2lu
IGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2Uy
RCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAg
ICBmdW5jdGlvbigpe2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9y
KGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4
Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIGFzc2Vy
dFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52
YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
Yyk7fSk7Ci19Ci0KLVRlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgewotfQotCi08L3Njcmlw
dD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0
ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVydGV4OwotYXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5
aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0
KFRleC5zLCAxLjAtVGV4LnQsIDAuMCwgMC4wKTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVy
dGV4LCAxLjApOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1oZmxpcC12ZXJ0
IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRy
aWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQot
ewotICAgIHRleENvb3JkMCA9IHZlYzQoMS4wLVRleC5zLCBUZXgudCwgMC4wLCAwLjApOwotICAg
IGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQg
aWQ9ImlkZW50aXR5LWZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7Ci0KLXVuaWZvcm0gc2FtcGxlcjJEIFRleHR1cmU7Ci0KLXZhcnlpbmcg
dmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHZlYzQgYyA9IHRleHR1cmUyRChU
ZXh0dXJlLCB0ZXhDb29yZDAuc3QpOwotICAgIGdsX0ZyYWdDb2xvciA9IGM7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD48Ym9keT4KLTxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1
NiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9j
YW52YXM+Ci08aW1nIGlkPSJpIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgIHNyYz0iZGF0YTpp
bWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFBQUVBQ0FZQUFBQmNj
cWhtQUFBVFZFbEVRVlI0bk8zZCtWUFVkNTdIY2YyYjlrOVkrejQ0K3FLN09ab0dGVkE1VmZCR3ph
aDljeHBOekdFT29SdWE1bEJFdWUvREs0Zlo3TWFwbVNtM01sc2h1OHhPZENwREp0M3YvYUVCQVVI
QU9NRzR6MGZWNTNmcVUvVjZmZDdmVC9lMzJiRURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdPdkJr
YXI3bCszK0d3QnNrOHhVclQwclRiOHZ4MlE0NWphbmx1N1lzV1Buc2dYZ1RlWXdhazg1VTNYdjVa
aU0zK1hiVWgvbDJkSUNCYzYwODBXWjF1cjkyYmFTSFJRQjhHYXlHZFVXdTFIem9TTkZPK1pNMWYy
Y2JUTE01MWxUNXdvYzVya0RPYmJaL1ZtMlNFbTIzVnZzeWpoVjVuSlFCc0NieEdaUVZ0bU42cDRN
by9ZUGRxTkdIS2xheVVyWEo5eldsRVNoMHhJdnpzbVlMM0haNTRwek1tNlZ1UnlSTXBmVFcrcHlV
QWJBbThCbVZOVm5HTlRUZHFQNnZ6T01HckduYU1TWnFwTnNrMTd5YktsUzZEVEwvaXhib3RSbGo1
ZmxPdWJMM0k2NU1wZmpWcm5iRWFsWUtJTlNsMzM1dlFHQTN3S2JVVzJ4R2RXUkRLUDY2d3lqV2hZ
THdKR2lGV2VhVHJKTkJuRmJVMlNQM1NUN3M2eFNtbXVYY3JjelVlNTJ4c3R6SGZQbGJzZGN1ZHQ1
cXl6WDNsS1dseGtzelhHZUs4bXhueXpKeVNqZVFSa0FyemViUVZsbE02cDdiVWIxNDlVRjRFalZT
bWFhVHJMUzllS3lwTWdlZTdvY3lMWkptZHNoRlhtWlVwSG5YRkVHQi9PekpzcmRqcUV5dC9ObVdh
NDlYSmJ0OUphNk1rNFZ1N2hFQkY1TE5yMnEzbVpRejlnTTZ1OVhGRUJxc2dDY2FUckpYSmdFY2kw
cHN0ZGhrdjNaTmluTlRaYkFvZndzT1pTZkpRZnpNcVU4ejVrb2R6c1NaYm1PZUlYYitYVzUyekZh
NW5MY0tuUFpJMlVMbDRqRmZLSUF2QjdNT3JYRlpsQkhiQWIxMXphaitrbUdVYk51QVdTbTY1ZEtZ
SGRHbWhSbFdxUTh6eUZIQ25MaytMNWNPVjZVSzBjS1hWSzVKMXNPNW1kS2hkc3BaYXZLb0RUWDBW
UGljaVRMSUh0RkdWQUl3Sy9OWWxCVzJmVHFYcHRCL2RobVNKNytMeXFBckhTOTVKaVRKVkRnTkVs
bFFaWjRLZ3VscnJwVTZxdExKWEJzdjV3dDN5TW45cnZsYUlGTERpOHZnMXhING1CKzVwK1dsMEZw
anIybEpNY1JMTTZ5bnl2T3pqaHhJSXQ3QStCWFk5R3I2cTBMNC85U0FhUm94TDd3L0w5V0FXU2JE
SkpyVFpGaWQ0WjRqeFpKVS8xeHVmSGhPZW0rZWs2aWwwL0xCNzRxYVR4VEpvR2orK1ZzMlI0NXZq
OVhqaFRreU9IZEM0OEpDMlZ3YUhmbW55cmN6bit2Y0RzbXluTHRReVU1R1RlTGN6TENwVGsyVDNH
VzdWaHhWc2FlN2Q0ZjRJMWwxcWt0Vm9NNllqT292cllhMUQ4c0ZvQjlXUUU0MTVrQTh1MXBjdlJB
am53VU9pTERMUUc1MTkwbzkyNDJ5bFJIblF5Ry9YTHo2bm1KWHFxV0QzeVYwbkM2VlB4SDk4blpz
dDF5ZkYrdUhDMTBTZFhlYkRtVW55eURxb0xzN3c3bFozNWI3bmI4c2N4dC83ZFNsMzJrSkNlanF5
UW40MHBKVGtiWkRpWUM0Tld6YUpWVlZyMnExMlpRUGJZYTFIOWZ1d0IwU3dXUWxhNlhMRk95QUFv
eVRmTFc0VDNTZnVXTTNMM1JJQS83TDh2RC9zdnlaZThsK2V6VzIzS3Z1MUVtTzJwbG9Oa24zVmZQ
U2V2YjFmSyt0MUlhejVSSjdjbGk4UjBwa3RPbCtYS3NLRmtHQnhmS29ISnYxbDhQNW1mK3VTTFA4
ZnZ5WE1kTW1kc1JLWGM1cW90ZEdRWGJ2Vi9BRzhXaVY5VmI5YW9acTE0MWF6T294V2JjWEFIa1ds
T2tKQzlEYWs4WHk2MVBMOGlEbm90TEJiQlVCSDJYNVl2YmwrUkJ6MFc1ZTZOQkp0cHJwTC9aSnpj
L09pL1hQM2hMV2k2ZWt2YzhoNld1dWtTOFZjL0tZUEVDOFdoaHpwT3FndXp2S3ZkbWZYVjRkMmIz
d2Z6TTl3L2xaVEVOQUsrQ1dhZXdXSFdxaUUydit0cXFWLzJ3MlFMSU5oa2tQMk5oL0s4OUltTnRJ
Zm1pOTlLejhQY2wxNWRMNjVKODBYdEpQci8xdHR5LzJTaDN1eHZrenZWNkdZK0ZwTythVjY1LzhE
dUpYRHdwVnp5SHBPN1VRaG1VNU12UklwZFU3YzJSUTd1ejVNUis5eCtPRmJudUhpM01pVlFWdUtv
UDc4NHUydTc5QTM3VExGcGxsVlduNnJYcVZZK3RldFdQR3hiQXNndkF2VTZUdkhWb3Q4U3VuSlk3
TitybHk3NjFnLzlsYjNKOXNXeDlmdnVTZkg3N2JYblFjMUh1ZFRmSVRGZWRqTFdGcFBlYVI3bytl
RXZDalNmbHlvVkRVbGRkS3NIakIrVEM0VUk1Vlp3blZRVTVpYmNxOW54MXVqUy81OFFCOTlYcVlu
ZjVEcVlCNE9WWWRNL0dmNnRlOVkvazgvL0dCZUN5R0tYRW5TRTExUWVrNTVQemN2OW00OHJRcnhQ
OEwyNWZraTl1dnkyZnIxcWYzYnFZbkF4dU5NaDBaNTJNUklOeSsxT1BYUC93ZDlKKzVZdzAxNStR
ZDg0ZmxKcVR4WExoY0lHY0xNNzcrVWhCenQ4dVZCYTJucXZjZS9ac3haNnk3ZDVMNERkbGNmeTM2
RlZmVy9TcUg2d0dsYXd1Z01XdkFUdlRsaFdBeVNCNUdhbHlkSCtPZkZSelJFYWpRZm44MXR2cmgv
NkZ3VjljRitXeld4Zmx3YTJMY3Ivbm90enJicFNaNi9VeTFWVW5reDIxTXR3U2tKNVBMa2pIZTJl
bHFmNjRYRDUzVUVJbkRpUXVIQzZZcnk3T216MVc1SHJZK0ZiRjRSMU1BOERtV0xUS0tzdXk4ZDlx
VUwrd0FKWi9DM0NQTTEzT0h0d3RiZStlbHVucjlmTEZ1c0YvUHZTZjMxbzcrQTk2bnEzN1BSZmxm
aytqM0wrWi9Gang3bzBHbWU2cWs0bjJHaGxxOFV2UHgrZWwvY29adVZaM1hDNmZxL2k1N2xUeDMy
cE9IbmdVT2xVYy9qUjRsRXRDWUNNV25hcmVvbGZOV1BTcVdhdEI5ZE9hQmJER2w0QmNGcU1VdTIw
U09uVkFibjU4VHU1Mk4yN3F0UDk4ZzlBL1dBejlRdkFYMTczRkV1aHVrTHZkRGNuSm9MTld4bU0x
TWhqeHk4MlB6a25uKzJjU3NYZFB6NGNiVDh4K0dLaDgrRkh3U08wT1NnQlltMW1uc0poMXFvaEZy
MXdZLzVYeFp3V3cvdGVBczlLVHZ3dHdaSCsyWEExVnlYQnJVQjcwWEZ6L3RGOW56TjlLOE85MU44
aTloZkF2cmpzM0d1VE9qWHFaWG5oRUdHK3ZrZEZvVUFiRC9wOTdQajcvdDU2cjU3L3B1K2I1cE9Y
ZDZxUGJ2ZGZBYThlaTNWVmwwYWw2TFhybFk0dE8rYU5GcjBwc3RnRDJPTkxsek1IZEVuMm5XcVk2
NitTemx4enpIeXdiODU4TC9UckJ2M3ZqV2ZnWDE4ejE1SnJ1cXBPcHpscVphQThseG1LaHY0OUdn
My9vRC9zKzN1NjlCbDQ3RnAyaTNxSlZ6VmgweWxtclR2bVRWWis4QUZ6NUhzRHpCWkJqTmtweHJr
MkNwdzVJOTBmbjVNNk5oaGVlOWxzT2Z2Zm1nMy9uK3JQd3oxeXZrNW11T3BsZVdKTWR0ZkhKanBy
dkpqdHFLQUJndWVUNHI0aVlkY3F2emJwZFAxajB5dmpxQXJDdjlTSlF1bDdjdGxTcDJwY3RId1ly
WmFnbElQZHZOcTUvMnIvZ1ltOVR3Yit4OWVCUGQ5WEpWSElTbUovcXJQMW11ck9HUndCZ09aTjJW
NVZGcCt5MWFCZkdmNTB5c1ZRQWEzd0hZTEVBc3RMMXN0dVJMcWNyOHFYMThpbVo3S2lWQnowWFh4
ajZqWi92TnhuODZ4c0hQL2tJVUNkVG5YWHg2YzdhdjB4MTFQUnM5MTREcngyVFRsRnYwaXBtekRy
bHJFV24vTW1pVjhsbUNpRGJiSkFEdVRZSm50d3ZONjcrVG1hdTF5ZER2bWJvdDM2eDl5ejQ5Uzha
L05yRk5UL2RWZnY3cWM2Nms5dTkxOEJyeGF4ZVBmNHI0aHNWZ0hQaDl3QnpyU2xTVlpRdEh3UXFa
VERpbDd2ZGpWczc3YmNZL0ptdEIxK21PbXNUa3gyMVQ2YTZha2UyZTYrQjE0NUp1NnZLcEZQMm1y
VEt4MmJ0cy9GLzhWdUFMeXFBM2ZZME9WMmVMeTJYVHNwRWU0M2NmOEd6L1RZRVh5WTdhbVd5b3lZ
KzFWSHovVlJuWGZOMjd6WHcybGthLzdYS1dZdFcrWk5GcDVUTkZFQzJ5U0Q3WFZZSm5OZ25YUisr
SmROZGRacys3WCtkNE5mS1pFZU5USGJVekU5MjFEeWE1UElQV0NsTnJiQ1l0Y254MzZUZDlZTlpw
NGhiZEtxTkMyQmgvSzhzekpMMy9ZZGxJT3lUT3pjYXR2d3gzc1kzK3I4bytETFpFVXBNdE5jOG1l
aGcvQWVlWTFMdnFqSnBsYjBtamVLeFdhdjQwYXhWSmxZWHdGcHZBbWFtNlNUZm5pYlZaWGtTZWZ1
a2pNVkNjcmQ3RXlQK2VxZjlsb0pmdTJId0p6cHFaS0s5UnNiYlEvSEo5dEQzazUwMWpQL0FhaWFO
b3Q2a1NZNy9acTNpSjdOT0tZc1hnQzhxZ0N5VFFmYmxXTVYvZko5MGZuQldKanRyVjR6M1d6bnRu
N3ZSdi81ODZMY2EvR2NyTkQvUkhubzAyYzc0RDZ5UXBsWllURnBGeEtSVkxJMy9Ld3ZnK1JlQjdD
bkozd0Z3V1ZMa2NHR1d2T2MvTFAzTlhwbTVYdi9MVC90TkJuOXlFOEVmVDRZL01SNExQUmx2RHpI
K0E2dVpOWXBLazNaWGIvckMrRy9TS2hLYkxZQzhqRFE1VlpZbjRZc25aTFF0S0hkdWJDNzBteDN6
ZjBud3g5dERNaDRMeVZnc0ZCK1BCYjhmYjJmOEI1NlRybEhVcDJzVjB5YU5ZbW44MzB3QlpLWHJa
VisyUlh6SDkwbkgrMmRsb3FNbVdRQ3Y0TFIvK2VDSGxvSy9FSDRaandYbngyUEJSMlB0UWNaL1lE
bVRScG1hcmxZMG1UUzd2a3JUS1A1cTBpcCtOdXVVWXRtZ0FCeXBXbkZaakhLb0lGT3VlQTlKWDVO
SHBydnFOaDM2elo3MnZ5VDRDK0ZQakxZRm40ekhnb3ovd0dvbXphN2Q2WnBkTVpORzhZMUpvM2hp
MWk0OC8yK2lBUEl5VXVWa3FWdWFHay9JU0RRb005ZGYzV20vTXZnMVd3NytXQ3drWTIxQkdXMEx4
a2ZiZ3QrUHhVS00vOEJxYVpwZHU5UFVpaWFUUnZHVlNhdjR5OUluQUJzVVFHYTZYb3F5TGVJOVZp
VHQ3NTJSOGZiUXFzQy80dE4raThFZmF3dkthRFFvSTlIQS9HaGI4SnV4S09NLzhCeVQ1bDlUMDlT
S1FMcEdNV1RTS3Y3VHJGVThOZXVVaWVVRllGdjFZeUNPVksza21KUGovN3ZlZzlKN3pTTlRuYld2
NkxSL0JjRmZXQ1BSUUh3a0d2akxTRFRBbTMvQWV0TFZ5anlUUnZtT1NhdVlOT3NVMzVwMXluOXNW
QUJ1VzZxY0xNMlZhdzNIWmJnMUlOTmRyK2EwWC9zei9LMEZmelFhbE5Gb0lIbjZSd08vSDJrTDh1
WWY4Q0ltemE1Q2syN1hlMmF0Y3NxaVU4YlhMWUFValdTbTY2UXd5eXplWTRVU3UzSmF4bUtodFVQ
L2kwLzdtaFdoWHhIOHR2V0NINVNSYUVCR280SEVTS3YveVdocmdNcy9ZRFBTZGNvaXMxYnh2a1du
ZkdyUksrTnJGWUE5UlN2WlpvTWMzT3VVZHp3SDVmYTFDekxSVWZOUFBlM0gxemp0MXd2KzRocHVE
Y1JIb29IdlI2SUJMditBelRMcmxFVm1uZktoUmFkOGFsM3o1OEMwNHJhbHlJbVNYTG5XY0V5R1d2
MHkyVmtyVTEzUGgvNmxUdnNOZ2orNlFmQkhXZ015M0JxUTRWYi8vSEJyNE5GSTFNL2xIN0FWRnIw
cVlOR3JIbHIxcXFjMmd5cSsvRTFBWjVwT0NyTk00amxhSUcxWFRzdG9XL0NmZDlxL1ZQQURNdHpx
VHd5MytKOE1NLzRETDJYbmloSXdxdUkybzFyc0tSckpOaG1rWXE5RExsK29rRnVmbkpmeDlwcG5v
Vi92Yy91dG52YXhOY2I4VFFVL0lNT3RmaGxxOGNlSFcvemZEMGNERjdaN0k0SGZxcDAydlNwZzA2
c2UyZ3pxcHhsR1RkeWVvcEZjYTRvY0wzSEpwL1ZIWlREaWs0bU96WTM0TDMzYWIrN0VYd3ord3ZM
TkQ3Y0VibzIwQmpLM2V4T0IzN0tkTnFNNllET29IMllZMVUrZGFicDRRYVpKTGh6Wks5RjNxMlVr
R3BDSkRVLzcwS3M3N1RjTXZsK0dXbnlKd1lqdnlWQkw0SjN0M2p6Z1RiRFRabFFITW95YWg5bG0v
ZE9LUGM3NHBmUGwwdlB4T1JtTGhYNmQwMzVUd1Y5WUVWOThzTVUvTlJEbThnOTRWWGJhVTdVQmw4
WDQ4RVNKNitrbjlVZCtIZ2g3RXVQdG9WZHoycmR0SnZRdkR2NWd4TGV3dkg4Y2lIZzdobG9DbHUz
ZU5PQk5zdE50U3czNGp4YzliSDJuZW5hb3hUYzMzaDZhSDR1RjR1UHR3Y1I0OG4vdS9STk8rODBH
M3lkREVkLy9ESVI5OXdiQ3ZzYnQzaXpnVGJUemFxZ3kwUFB4dWZCSU5CQWJidzg5R28rRlpzZGpv
Ym54OXREY2FDdzRQOW9XakkvRmdvbXhXQ0F4K2dwTysrRzF4dnhWd1IrTStHUXc3UDF4TU94N1BC
ajI5ZlpIdkZYYnZWSEFtMnJuNHByc3JLa2Q2d2lGUjl0RHNmSDJtdGhJTFBSb3JDMDRPOVlXbWh1
TmhlWkcyd0x6STlGZ2ZMUXRrQmlOQmhMUGhmNFhuUGFMYXlEaWs0R3dUd2JDM3Y4ZGFQWStISWo0
UHVwdjlqTCtBNytDbmN2WGVIdE43V2dzR0I2TmhXS2pzVkJzSkJwOE5Cb056bzVFQTNNTGEzNjRO
UkFmYWZVbmhwUHI1VTc3bGNHWGdiRDM3d05oejUvN203MGpBMkhQbVczZUUrRC9yWldGMEJhc0hX
NExoa2VpZ2RoSUxCUWJiZzA4R200TnpBNjMrT2VHVy94elE2MysrYUVXZjN5b3haZElybVdoYjNr
KzlJTkxvVjhLdnZRM2UrTUR6ZDRmK3BzOS85RWY5cllOUkh5T2JkNERBQXRXRk1Kb1c3QjJ1RFVZ
SG9vR1lrUFJRR3lveGY5b3FNVTNPeFR4elExRmZITkRMYjc1b1lndlBoanhKcFpXZU8zZ0o4UHZT
ZlEzZVg4YUNIdG4rNXU5TTMzTlhQNEJyN01WaFREY0dxZ2RidldIQjF2OXNjRldmMnd3NG44MEdQ
SE5Eb2E5YzRNUjM5eGcyRHMzRVBiT0Q0Uzk4WUd3SnpFUTlpVDZtNzNTMyt5VnZtYlBmSCt6Wjc2
dnlmTzB2OW43cDc1bWIyOS9NNWQvd0cvSmM0VXcxT0lQOTBmOHNjR0lQOVlmOGNjR3dyNUhBMkh2
N0VDemQyNmcyVHZYbHd4OXZLL1o4MjEvcytlLytwbzgzL1kzZVQ3cmEvWTBjZmtIL0xidFhMMkdX
bnkxQTJGZnVDL3NqZldIdmJIK1pzK2p2ckQzWm0rVFo2aTN5VFBXMSt5WjdHdnlYTzlyOXZpMzkw
OEg4TSt3b2hCNm03eGx0Njk1VHc2RWZlY0d3MTVmZjVQbm5iNW1UNkQzMm9VRDIveDNBdmdWN2R5
eFk4Zk9nU2F2dTcvSms5VjN6YXZlN2o4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNWL2c5dFBKRVF1
MVh2bVFBQUFBQkpSVTVFcmtKZ2dnPT0iPgotPGltZyBpZD0iaTIiIHNyYz0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlcy9zcXVhcmUxMjgucG5nIj4KLQotPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNzcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS91bml0LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc1OGI0M2Jk
OWRkZjBiZjFjMDJhZjVhNWY2MTY5NGZmODBlNTNjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5jc3MKKysr
IC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotVGVzdHMgZm9yIHRoZSBPcGVuR0wgRVMg
Mi4wIEhUTUwgQ2FudmFzIGNvbnRleHQKLQotQ29weXJpZ2h0IChDKSAyMDA5ICBJbG1hcmkgSGVp
a2tpbmVuIDxpbG1hcmkuaGVpa2tpbmVuQGdtYWlsLmNvbT4KLQotUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KLW9idGFpbmluZyBhIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi1maWxlcyAo
dGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Ci1yZXN0cmlj
dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwKLWNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsCi1jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUKLVNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg
Zm9sbG93aW5nCi1jb25kaXRpb25zOgotCi1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0KLVRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
Ci1PRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RAotTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ
UklHSFQKLUhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLAotV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCi1GUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT
T0ZUV0FSRSBPUiBUSEUgVVNFIE9SCi1PVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0K
LSovCi0ub2sgewotICBjb2xvcjogZ3JlZW47Ci19Ci0uZmFpbCB7Ci0gIGNvbG9yOiByZWQ7Ci19
Ci1jYW52YXMgewotICBkaXNwbGF5OiBub25lOwotfQotI3Rlc3Qtc3RhdHVzIHsKLSAgZm9udC1z
aXplOiBsYXJnZTsKLX0KLQotI3Rlc3QtbG9nIHsKLSAgcGFkZGluZy1sZWZ0OiAwLjVlbTsKLSAg
cGFkZGluZy1yaWdodDogMC41ZW07Ci0gIGJhY2tncm91bmQ6IHdoaXRlOwotICBjb2xvcjogYmxh
Y2s7Ci19Ci0jdGVzdC1sb2cgPiBkaXYgewotICBwYWRkaW5nLWJvdHRvbTogMC41ZW07Ci19Ci0j
dGVzdC1sb2cgaDIgewotICBmb250LXNpemU6IDFlbTsKLSAgbWFyZ2luLWJvdHRvbTogMGVtOwot
ICBwYWRkaW5nLXRvcDogMC41ZW07Ci19Ci0jdGVzdC1sb2cgaDMgewotICBmb250LXNpemU6IHNt
YWxsOwotICBtYXJnaW4tbGVmdDogMS41ZW07Ci0gIG1hcmdpbi1ib3R0b206IDBlbTsKLSAgbWFy
Z2luLXRvcDogMC41ZW07Ci19Ci0jdGVzdC1sb2cgcCB7Ci0gIG1hcmdpbi1sZWZ0OiA0ZW07Ci0g
IGZvbnQtc2l6ZTogc21hbGw7Ci0gIG1hcmdpbi10b3A6IDBlbTsKLSAgbWFyZ2luLWJvdHRvbTog
MC4yZW07Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3MDZiZTU1Yzc5YzY2YWE4MDRjZjY1NzljZGI5MDg4ZTQ1YTE5MDNlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91
bml0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTEwICswLDAgQEAKLS8qCi1Vbml0IHRlc3Rpbmcg
bGlicmFyeSBmb3IgdGhlIE9wZW5HTCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAotKi8KLQot
LyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0vKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUgLS0g
Ki8KLQotLy8gV2ViS2l0Ci1pZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cu
dGVzdFJ1bm5lcjsKLX0KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKLQotICAvLyBUaGUgV2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNvbXBh
cmVzIGNvbnNvbGUgb3V0cHV0LgotICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdM
IFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKLSAgLy8gd2UgdHVybiBvZmYgY29uc29sZSBtZXNzYWdl
cy4KLSAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07Ci0gIHdpbmRvdy5jb25z
b2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07Ci0KLSAgLy8gUkFGIGRvZXNuJ3Qgd29yayBpbiBM
YXlvdXRUZXN0cy4gRGlzYWJsZSBpdCBzbyB0aGUgdGVzdHMgd2lsbAotICAvLyB1c2Ugc2V0VGlt
ZW91dCBpbnN0ZWFkLgotICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVk
OwotICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOwotfQot
Ci1pZiAod2luZG93LmludGVybmFscykgewotICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Ci19Ci0KLS8qIC0tIGVuZCBwbGF0
Zm9ybSBzcGVjaWZpYyBjb2RlIC0tKi8KLVRlc3RzID0gewotICBhdXRvcnVuIDogdHJ1ZSwKLSAg
bWVzc2FnZSA6IG51bGwsCi0gIGRlbGF5IDogMCwKLQotICBzdGFydFVuaXQgOiBmdW5jdGlvbigp
eyByZXR1cm4gW107IH0sCi0gIHNldHVwIDogZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7
IH0sCi0gIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7fSwKLSAgZW5kVW5pdCA6IGZ1bmN0aW9uKCkg
e30KLX0KLQotdmFyIF9fdGVzdFN1Y2Nlc3NfXyA9IHRydWU7Ci12YXIgX190ZXN0RmFpbENvdW50
X18gPSAwOwotdmFyIF9fdGVzdExvZ19fOwotdmFyIF9fYmFja2xvZ19fID0gW107Ci0KLU9iamVj
dC50b1NvdXJjZSA9IGZ1bmN0aW9uKGEsIHNlZW4pewotICBpZiAoYSA9PSBudWxsKSByZXR1cm4g
Im51bGwiOwotICBpZiAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nKSByZXR1cm4gYSA/ICJ0cnVlIiA6
ICJmYWxzZSI7Ci0gIGlmICh0eXBlb2YgYSA9PSAnc3RyaW5nJykgcmV0dXJuICciJyArIGEucmVw
bGFjZSgvIi9nLCAnXFwiJykgKyAnIic7Ci0gIGlmIChhIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQp
IHJldHVybiBhLnRvU3RyaW5nKCk7Ci0gIGlmIChhLndpZHRoICYmIGEuaGVpZ2h0ICYmIGEuZGF0
YSkgcmV0dXJuICJbSW1hZ2VEYXRhXSI7Ci0gIGlmIChhIGluc3RhbmNlb2YgQXJyYXkpIHsKLSAg
ICBpZiAoIXNlZW4pIHNlZW4gPSBbXTsKLSAgICB2YXIgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOwot
ICAgIGlmIChpZHggIT0gLTEpIHJldHVybiAnIycrKGlkeCsxKSsnIyc7Ci0gICAgc2Vlbi51bnNo
aWZ0KGEpOwotICAgIHZhciBzcmNzID0gYS5tYXAoZnVuY3Rpb24obyl7IHJldHVybiBPYmplY3Qu
dG9Tb3VyY2UobyxzZWVuKSB9KTsKLSAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAgaWR4ID0gc2Vl
bi5pbmRleE9mKGEpOwotICAgIGlmIChpZHggIT0gLTEpIHByZWZpeCA9ICcjJysoaWR4KzEpKyc9
JzsKLSAgICByZXR1cm4gcHJlZml4ICsgJ1snICsgc3Jjcy5qb2luKCIsICIpICsgJ10nOwotICB9
Ci0gIGlmICh0eXBlb2YgYSA9PSAnb2JqZWN0JykgewotICAgIGlmICghc2Vlbikgc2VlbiA9IFtd
OwotICAgIHZhciBpZHggPSBzZWVuLmluZGV4T2YoYSk7Ci0gICAgaWYgKGlkeCAhPSAtMSkgcmV0
dXJuICcjJysoaWR4KzEpKycjJzsKLSAgICBzZWVuLnVuc2hpZnQoYSk7Ci0gICAgdmFyIG1lbWJl
cnMgPSBbXTsKLSAgICB2YXIgbmFtZTsKLSAgICB0cnkgewotICAgICAgZm9yICh2YXIgaSBpbiBh
KSB7Ci0gICAgICAgIGlmIChpLnNlYXJjaCgvXlthLXpBLVowLTldKyQvKSAhPSAtMSkKLSAgICAg
ICAgICBuYW1lID0gaTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIG5hbWUgPSAnIicgKyBpLnJl
cGxhY2UoLyIvZywgJ1xcIicpICsgJyInOwotICAgICAgICB2YXIgYWk7Ci0gICAgICAgIHRyeSB7
IGFpID0gYVtpXTsgfQotICAgICAgICBjYXRjaChlKSB7IGFpID0gJ251bGwgLypFUlJPUl9BQ0NF
U1NJTkcqLyc7IH0KLSAgICAgICAgdmFyIHMgPSBuYW1lICsgJzonICsgT2JqZWN0LnRvU291cmNl
KGFpLCBzZWVuKTsKLSAgICAgICAgbWVtYmVycy5wdXNoKHMpOwotICAgICAgfQotICAgIH0gY2F0
Y2ggKGUpIHt9Ci0gICAgdmFyIHByZWZpeCA9ICcnOwotICAgIGlkeCA9IHNlZW4uaW5kZXhPZihh
KTsKLSAgICBpZiAoaWR4ICE9IC0xKSBwcmVmaXggPSAnIycrKGlkeCsxKSsnPSc7Ci0gICAgcmV0
dXJuIHByZWZpeCArICd7JyArIG1lbWJlcnMuam9pbigiLCAiKSArICd9JwotICB9Ci0gIGlmICh0
eXBlb2YgYSA9PSAnZnVuY3Rpb24nKQotICAgIHJldHVybiAnKCcrYS50b1N0cmluZygpLnJlcGxh
Y2UoL1xuL2csICIgIikucmVwbGFjZSgvXHMrL2csICIgIikrJyknOwotICByZXR1cm4gYS50b1N0
cmluZygpOwotfQotCi1mdW5jdGlvbiBmb3JtYXRFcnJvcihlKSB7Ci0gIGlmICh3aW5kb3cuY29u
c29sZSkgY29uc29sZS5sb2coZSk7Ci0gIHZhciBwYXRoU2VncyA9IGxvY2F0aW9uLmhyZWYudG9T
dHJpbmcoKS5zcGxpdCgiLyIpOwotICB2YXIgY3VycmVudERvYyA9IGUubGluZU51bWJlciAhPSBu
dWxsID8gcGF0aFNlZ3NbcGF0aFNlZ3MubGVuZ3RoIC0gMV0gOiBudWxsOwotICB2YXIgdHJhY2Ug
PSAoZS5maWxlbmFtZSB8fCBjdXJyZW50RG9jKSArICI6IiArIGUubGluZU51bWJlciArIChlLnRy
YWNlID8gIlxuIitlLnRyYWNlIDogIiIpOwotICByZXR1cm4gZS5tZXNzYWdlICsgIlxuIiArIHRy
YWNlOwotfQotCi1mdW5jdGlvbiBydW5UZXN0cygpIHsKLSAgdmFyIGggPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKLSAgaWYgKGggPT0gbnVsbCkgewotICAgIGggPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMScpOwotICAgIGguaWQgPSAndGVzdC1zdGF0dXMnOwot
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCk7Ci0gIH0KLSAgaC50ZXh0Q29udGVudCA9
ICIiOwotICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtbG9nJyk7Ci0g
IGlmIChsb2cgPT0gbnVsbCkgewotICAgIGxvZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwotICAgIGxvZy5pZCA9ICd0ZXN0LWxvZyc7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChsb2cpOwotICB9Ci0gIHdoaWxlIChsb2cuY2hpbGROb2Rlcy5sZW5ndGggPiAwKQotICAg
IGxvZy5yZW1vdmVDaGlsZChsb2cuZmlyc3RDaGlsZCk7Ci0KLSAgdmFyIHNldHVwX2FyZ3MgPSBb
XTsKLQotICBpZiAoVGVzdHMuc3RhcnRVbml0ICE9IG51bGwpIHsKLSAgICBfX3Rlc3RMb2dfXyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRyeSB7Ci0gICAgICBzZXR1cF9h
cmdzID0gVGVzdHMuc3RhcnRVbml0KCk7Ci0gICAgICBpZiAoX190ZXN0TG9nX18uY2hpbGROb2Rl
cy5sZW5ndGggPiAwKQotICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOwotICAg
IH0gY2F0Y2goZSkgewotICAgICAgdGVzdEZhaWxlZCgic3RhcnRVbml0IiwgZm9ybWF0RXJyb3Io
ZSkpOwotICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKLSAgICAgIHByaW50VGVz
dFN0YXR1cygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgfQotCi0gIHZhciB0ZXN0c1J1biA9
IGZhbHNlOwotICB2YXIgYWxsVGVzdHNTdWNjZXNzZnVsID0gdHJ1ZTsKLQotICBmb3IgKHZhciBp
IGluIFRlc3RzKSB7Ci0gICAgaWYgKGkuc3Vic3RyaW5nKDAsNCkgIT0gInRlc3QiKSBjb250aW51
ZTsKLSAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
IF9fdGVzdFN1Y2Nlc3NfXyA9IHRydWU7Ci0gICAgdHJ5IHsKLSAgICAgIGRvVGVzdE5vdGlmeSAo
aSk7Ci0gICAgICB2YXIgYXJncyA9IHNldHVwX2FyZ3M7Ci0gICAgICBpZiAoVGVzdHMuc2V0dXAg
IT0gbnVsbCkKLSAgICAgICAgYXJncyA9IFRlc3RzLnNldHVwLmFwcGx5KFRlc3RzLCBzZXR1cF9h
cmdzKTsKLSAgICAgIFRlc3RzW2ldLmFwcGx5KFRlc3RzLCBhcmdzKTsKLSAgICAgIGlmIChUZXN0
cy50ZWFyZG93biAhPSBudWxsKQotICAgICAgICBUZXN0cy50ZWFyZG93bi5hcHBseShUZXN0cywg
YXJncyk7Ci0gICAgfQotICAgIGNhdGNoIChlKSB7Ci0gICAgICB0ZXN0RmFpbGVkKGksIGUubmFt
ZSwgZm9ybWF0RXJyb3IoZSkpOwotICAgIH0KLSAgICBpZiAoX190ZXN0U3VjY2Vzc19fID09IGZh
bHNlKSB7Ci0gICAgICArK19fdGVzdEZhaWxDb3VudF9fOwotICAgIH0KLSAgICB2YXIgaCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gyJyk7Ci0gICAgaC50ZXh0Q29udGVudCA9IGk7Ci0gICAg
X190ZXN0TG9nX18uaW5zZXJ0QmVmb3JlKGgsIF9fdGVzdExvZ19fLmZpcnN0Q2hpbGQpOwotICAg
IGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7Ci0gICAgYWxsVGVzdHNTdWNjZXNzZnVsID0g
YWxsVGVzdHNTdWNjZXNzZnVsICYmIF9fdGVzdFN1Y2Nlc3NfXyA9PSB0cnVlOwotICAgIHJlcG9y
dFRlc3RSZXN1bHRzVG9IYXJuZXNzKF9fdGVzdFN1Y2Nlc3NfXywgaSk7Ci0gICAgZG9UZXN0Tm90
aWZ5IChpKyItLSIrKF9fdGVzdFN1Y2Nlc3NfXz8iT0siOiJGQUlMIikpOwotICAgIHRlc3RzUnVu
ID0gdHJ1ZTsKLSAgfQotCi0gIHByaW50VGVzdFN0YXR1cyh0ZXN0c1J1bik7Ci0gIGlmIChUZXN0
cy5lbmRVbml0ICE9IG51bGwpIHsKLSAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIHRyeSB7Ci0gICAgICBUZXN0cy5lbmRVbml0LmFwcGx5KFRlc3Rz
LCBzZXR1cF9hcmdzKTsKLSAgICAgIGlmIChfX3Rlc3RMb2dfXy5jaGlsZE5vZGVzLmxlbmd0aCA+
IDApCi0gICAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7Ci0gICAgfSBjYXRjaChl
KSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJlbmRVbml0IiwgZS5uYW1lLCBmb3JtYXRFcnJvcihlKSk7
Ci0gICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOwotICAgIH0KLSAgfQotICBub3Rp
ZnlGaW5pc2hlZFRvSGFybmVzcyhhbGxUZXN0c1N1Y2Nlc3NmdWwsICJmaW5pc2hlZCB0ZXN0cyIp
OwotfQotCi1mdW5jdGlvbiBkb1Rlc3ROb3RpZnkobmFtZSkgewotICAvL3RyecKgewotICAvLyAg
dmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAvLyAgeGhyLm9wZW4oIkdFVCIsICJo
dHRwOi8vbG9jYWxob3N0Ojg4ODgvIituYW1lLCB0cnVlKTsKLSAgLy8gIHhoci5zZW5kKG51bGwp
OwotICAvL30gY2F0Y2goZSkge30KLX0KLQotZnVuY3Rpb24gdGVzdEZhaWxlZChhc3NlcnROYW1l
LCBuYW1lKSB7Ci0gIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gIHZh
ciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKLSAgdmFyIGQxID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwotICBoLmFwcGVuZENoaWxkKGQxKTsKLSAgZDEuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZBSUw6ICIpKTsKLSAgZDEuc3R5bGUuY29s
b3IgPSAicmVkIjsKLSAgaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKLSAg
ICAgIG5hbWU9PW51bGwgPyBhc3NlcnROYW1lIDogbmFtZSArICIgKGluICIgKyBhc3NlcnROYW1l
ICsgIikiKSk7Ci0gIGQuYXBwZW5kQ2hpbGQoaCk7Ci0gIHZhciBhcmdzID0gW10KLSAgZm9yICh2
YXIgaT0yOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgIHZhciBhID0gYXJndW1lbnRz
W2ldOwotICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwotICAgIHAuc3R5
bGUud2hpdGVTcGFjZSA9ICdwcmUnOwotICAgIHAudGV4dENvbnRlbnQgPSAoYSA9PSBudWxsKSA/
ICJudWxsIiA6Ci0gICAgICAgICAgICAgICAgICAgICh0eXBlb2YgYSA9PSAnYm9vbGVhbicgfHwg
dHlwZW9mIGEgPT0gJ3N0cmluZycpID8gYSA6IE9iamVjdC50b1NvdXJjZShhKTsKLSAgICBhcmdz
LnB1c2gocC50ZXh0Q29udGVudCk7Ci0gICAgZC5hcHBlbmRDaGlsZChwKTsKLSAgfQotICBfX3Rl
c3RMb2dfXy5hcHBlbmRDaGlsZChkKTsKLSAgX190ZXN0U3VjY2Vzc19fID0gZmFsc2U7Ci0gIGRv
VGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFyZ3MpLmpvaW4oIi0tIikpOwot
fQotCi1mdW5jdGlvbiB0ZXN0UGFzc2VkKGFzc2VydE5hbWUsIG5hbWUpIHsKLSAgdmFyIGQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdoMycpOwotICB2YXIgZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
Ci0gIGguYXBwZW5kQ2hpbGQoZDEpOwotICBkMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiUEFTUzogIikpOwotICBkMS5zdHlsZS5jb2xvciA9ICJncmVlbiI7Ci0gIGguYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoCi0gICAgICBuYW1lPT1udWxsID8gYXNz
ZXJ0TmFtZSA6IG5hbWUgKyAiIChpbiAiICsgYXNzZXJ0TmFtZSArICIpIikpOwotICBkLmFwcGVu
ZENoaWxkKGgpOwotICB2YXIgYXJncyA9IFtdCi0gIGZvciAodmFyIGk9MjsgaTxhcmd1bWVudHMu
bGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgYSA9IGFyZ3VtZW50c1tpXTsKLSAgICB2YXIgcCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgICBwLnN0eWxlLndoaXRlU3BhY2UgPSAncHJl
JzsKLSAgICBwLnRleHRDb250ZW50ID0gKGEgPT0gbnVsbCkgPyAibnVsbCIgOgotICAgICAgICAg
ICAgICAgICAgICAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiBhID09ICdzdHJpbmcn
KSA/IGEgOiBPYmplY3QudG9Tb3VyY2UoYSk7Ci0gICAgYXJncy5wdXNoKHAudGV4dENvbnRlbnQp
OwotICAgIGQuYXBwZW5kQ2hpbGQocCk7Ci0gIH0KLSAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQo
ZCk7Ci0gIGRvVGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFyZ3MpLmpvaW4o
Ii0tIikpOwotfQotCi1mdW5jdGlvbiBjaGVja1Rlc3RTdWNjZXNzKCkgewotICByZXR1cm4gX190
ZXN0RmFpbENvdW50X18gPT0gMDsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBmdW5jdGlvbigpewotICBmb3IgKHZhciBpPTA7IGk8X19iYWNrbG9nX18ubGVuZ3RoOyBpKysp
Ci0gICAgbG9nKF9fYmFja2xvZ19fW2ldKTsKLX0sIGZhbHNlKTsKLQotZnVuY3Rpb24gbG9nKG1z
ZykgewotICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgdmFyIGEgPSBb
XTsKLSAgZm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykKLSAgICBhLnB1c2go
YXJndW1lbnRzW2ldKTsKLSAgcC50ZXh0Q29udGVudCA9IGEuam9pbigiLCAiKTsKLSAgaWYgKCFf
X3Rlc3RMb2dfXykgewotICAgIGlmIChkb2N1bWVudC5ib2R5KQotICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChwKTsKLSAgICBlbHNlCi0gICAgICBfX2JhY2tsb2dfXy5wdXNoKG1zZyk7
Ci0gIH0gZWxzZSB7Ci0gICAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQocCk7Ci0gIH0KLX0KLQot
ZnVuY3Rpb24gcHJpbnRUZXN0U3RhdHVzKHRlc3RzUnVuKSB7Ci0gIHZhciBzdGF0dXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKLSAgaWYgKHRlc3RzUnVuKSB7Ci0g
ICAgc3RhdHVzLmNsYXNzTmFtZSA9IGNoZWNrVGVzdFN1Y2Nlc3MoKSA/ICdvaycgOiAnZmFpbCc7
Ci0gICAgc3RhdHVzLnRleHRDb250ZW50ID0gY2hlY2tUZXN0U3VjY2VzcygpID8gIlBBU1MiIDog
IkZBSUwiOwotICB9IGVsc2UgewotICAgIHN0YXR1cy5jbGFzc05hbWUgPSAnZmFpbCc7Ci0gICAg
c3RhdHVzLnRleHRDb250ZW50ID0gIk5PIFRFU1RTIEZPVU5EIjsKLSAgfQotfQotCi1mdW5jdGlv
biBhc3NlcnRGYWlsKG5hbWUsIGYpIHsKLSAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFt
ZSA9IG51bGw7IH0KLSAgdmFyIHIgPSBmYWxzZTsKLSAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsg
cj10cnVlOyB9Ci0gIGlmICghcikgewotICAgIHRlc3RGYWlsZWQoImFzc2VydEZhaWwiLCBuYW1l
LCBmKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNz
ZXJ0RmFpbCIsIG5hbWUsIGYpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0aW9u
IGFzc2VydE9rKG5hbWUsIGYpIHsKLSAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9
IG51bGw7IH0KLSAgdmFyIHIgPSBmYWxzZTsKLSAgdmFyIGVycjsKLSAgdHJ5IHsgZigpOyByPXRy
dWU7IH0gY2F0Y2goZSkgeyBlcnIgPSBlOyB9Ci0gIGlmICghcikgewotICAgIHRlc3RGYWlsZWQo
ImFzc2VydE9rIiwgbmFtZSwgZiwgZXJyLnRvU3RyaW5nKCkpOwotICAgIHJldHVybiBmYWxzZTsK
LSAgfSBlbHNlIHsKLSAgICB0ZXN0UGFzc2VkKCJhc3NlcnRPayIsIG5hbWUsIGYpOwotICAgIHJl
dHVybiB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydChuYW1lLCB2KSB7Ci0gIGlmICh2
ID09IG51bGwpIHsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIGlmICghdikgewotICAgIHRl
c3RGYWlsZWQoImFzc2VydCIsIG5hbWUsIHYpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNl
IHsKLSAgICB0ZXN0UGFzc2VkKCJhc3NlcnQiLCBuYW1lLCB2KTsKLSAgICByZXR1cm4gdHJ1ZTsK
LSAgfQotfQotCi1mdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShuYW1lLCB2LCBwKSB7Ci0gIGlmIChw
ID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gcDsgfQotICBpZiAodltwXSA9PSBu
dWxsKSB7Ci0gICAgdGVzdEZhaWxlZCgiYXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0UHJvcGVydHkiLCBu
YW1lKTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBjb21wYXJlKGEsYikg
ewotICBpZiAodHlwZW9mIGEgPT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT0gJ251bWJlcicpIHsK
LSAgICByZXR1cm4gYSA9PSBiOwotICB9IGVsc2UgewotICAgIHJldHVybiBPYmplY3QudG9Tb3Vy
Y2UoYSkgPT0gT2JqZWN0LnRvU291cmNlKGIpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEVx
dWFscyhuYW1lLCB2LCBwKSB7Ci0gIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBu
YW1lID0gbnVsbDsgfQotICBpZiAoIWNvbXBhcmUodiwgcCkpIHsKLSAgICB0ZXN0RmFpbGVkKCJh
c3NlcnRFcXVhbHMiLCBuYW1lLCB2LCBwKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0gZWxzZSB7
Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0gICAgcmV0dXJu
IHRydWU7Ci0gIH0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0QXJyYXlFcXVhbHMobmFtZSwgdiwgcCkg
ewotICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAg
aWYgKCF2KSB7Ci0gICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHM6IGZpcnN0IGFycmF5
IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAo
IXApIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsczogc2Vjb25kIGFycmF5IHVu
ZGVmaW5lZCIsIG5hbWUsIHYsIHApOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAodi5s
ZW5ndGggIT0gcC5sZW5ndGgpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFscyIs
IG5hbWUsIHYsIHApOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBmb3IgKHZhciBpaSA9IDA7
IGlpIDwgdi5sZW5ndGg7ICsraWkpIHsKLSAgICBpZiAodltpaV0gIT0gcFtpaV0pIHsKLSAgICAg
IHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0gICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICB9Ci0gIHRlc3RQYXNzZWQoImFzc2VydEFycmF5RXF1YWxzIiwg
bmFtZSwgdiwgcCk7Ci0gIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBhc3NlcnROb3RFcXVh
bHMobmFtZSwgdiwgcCkgewotICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFt
ZSA9IG51bGw7IH0KLSAgaWYgKGNvbXBhcmUodiwgcCkpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3Nl
cnROb3RFcXVhbHMiLCBuYW1lLCB2LCBwKQotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsK
LSAgICB0ZXN0UGFzc2VkKCJhc3NlcnROb3RFcXVhbHMiLCBuYW1lLCB2LCBwKQotICAgIHJldHVy
biB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHRpbWUoZWxlbWVudElkLCBmKSB7Ci0gICAgdmFy
IHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIHZhciB0MCA9IG5l
dyBEYXRlKCkuZ2V0VGltZSgpOwotICAgIGYoKTsKLSAgICB2YXIgdDEgPSBuZXcgRGF0ZSgpLmdl
dFRpbWUoKTsKLSAgICBzLnRleHRDb250ZW50ID0gJ0VsYXBzZWQ6ICcrKHQxLXQwKSsnIG1zJzsK
LX0KLQotZnVuY3Rpb24gcmFuZG9tRmxvYXQgKCkgewotICAgIC8vIG5vdGUgdGhhdCBpbiBmdXp6
LXRlc3RpbmcsIHRoaXMgY2FuIHVzZWQgYXMgdGhlIHNpemUgb2YgYSBidWZmZXIgdG8gYWxsb2Nh
dGUuCi0gICAgLy8gc28gaXQgc2hvdWxkbid0IHJldHVybiBhc3Ryb25vbWljIHZhbHVlcy4gVGhl
IG1heGltdW0gdmFsdWUgMTAwMDAwMDAgaXMgYWxyZWFkeSBxdWl0ZSBiaWcuCi0gICAgdmFyIGZh
YyA9IDEuMDsKLSAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7Ci0gICAgaWYgKHIgPCAwLjI1KQot
ICAgICAgICBmYWMgPSAxMDsKLSAgICBlbHNlIGlmIChyIDwgMC40KQotICAgICAgICBmYWMgPSAx
MDA7Ci0gICAgZWxzZSBpZiAociA8IDAuNSkKLSAgICAgICAgZmFjID0gMTAwMDsKLSAgICBlbHNl
IGlmIChyIDwgMC42KQotICAgICAgICBmYWMgPSAxMDAwMDA7Ci0gICAgZWxzZSBpZiAociA8IDAu
NykKLSAgICAgICAgZmFjID0gMTAwMDAwMDA7Ci0gICAgZWxzZSBpZiAociA8IDAuOCkKLSAgICAg
ICAgZmFjID0gTmFOOwotICAgIHJldHVybiAtMC41KmZhYyArIE1hdGgucmFuZG9tKCkgKiBmYWM7
Ci19Ci1mdW5jdGlvbiByYW5kb21GbG9hdEZyb21SYW5nZShsbywgaGkpIHsKLSAgdmFyIHIgPSBN
YXRoLnJhbmRvbSgpOwotICBpZiAociA8IDAuMDUpCi0gICAgcmV0dXJuIGxvOwotICBlbHNlIGlm
IChyID4gMC45NSkKLSAgICByZXR1cm4gaGk7Ci0gIGVsc2UKLSAgICByZXR1cm4gbG8gKyBNYXRo
LnJhbmRvbSgpKihoaS1sbyk7Ci19Ci1mdW5jdGlvbiByYW5kb21JbnQgKHN6KSB7Ci0gIGlmIChz
eiAhPSBudWxsKQotICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqc3opOwotICBl
bHNlCi0gICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXQoKSk7Ci19Ci1mdW5jdGlvbiBy
YW5kb21JbnRGcm9tUmFuZ2UobG8sIGhpKSB7Ci0gIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbUZs
b2F0RnJvbVJhbmdlKGxvLCBoaSkpOwotfQotZnVuY3Rpb24gcmFuZG9tTGVuZ3RoICgpIHsKLSAg
ICB2YXIgbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1Nik7Ci0gICAgaWYgKE1hdGgu
cmFuZG9tIDwgMC41KSBsID0gbCAvIDEwOwotICAgIGlmIChNYXRoLnJhbmRvbSA8IDAuMykgbCA9
IGwgLyAxMDsKLSAgICByZXR1cm4gbDsKLX0KLWZ1bmN0aW9uIHJhbmRvbVNtYWxsSW50QXJyYXkg
KCkgewotICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7Ci0gICAgdmFyIHMgPSBuZXcgQXJyYXko
bCk7Ci0gICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKLSAgICAgICAgc1tpXSA9IE1hdGguZmxv
b3IoTWF0aC5yYW5kb20oKSAqIDI1NiktMTsKLSAgICByZXR1cm4gczsKLX0KLWZ1bmN0aW9uIHJh
bmRvbUZsb2F0QXJyYXkgKCkgewotICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7Ci0gICAgdmFy
IHMgPSBuZXcgQXJyYXkobCk7Ci0gICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKLSAgICAgICAg
c1tpXSA9IHJhbmRvbUZsb2F0KCk7Ci0gICAgcmV0dXJuIHM7Ci19Ci1mdW5jdGlvbiByYW5kb21J
bnRBcnJheSAoKSB7Ci0gICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKLSAgICB2YXIgcyA9IG5l
dyBBcnJheShsKTsKLSAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQotICAgICAgICBzW2ldID0g
cmFuZG9tRmxvYXQoKTsKLSAgICByZXR1cm4gczsKLX0KLWZ1bmN0aW9uIHJhbmRvbU1peGVkQXJy
YXkgKCkgewotICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7Ci0gICAgdmFyIHMgPSBuZXcgQXJy
YXkobCk7Ci0gICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKLSAgICAgICAgc1tpXSA9IHJhbmRv
bU5vbkFycmF5KCk7Ci0gICAgcmV0dXJuIHM7Ci19Ci1mdW5jdGlvbiByYW5kb21BcnJheSAoKSB7
Ci0gICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOwotICAgIGlmIChyIDwgMC4zKQotICAgICAgICBy
ZXR1cm4gcmFuZG9tRmxvYXRBcnJheSgpOwotICAgIGVsc2UgaWYgKHIgPCAwLjYpCi0gICAgICAg
IHJldHVybiByYW5kb21JbnRBcnJheSgpOwotICAgIGVsc2UgaWYgKHIgPCAwLjgpCi0gICAgICAg
IHJldHVybiByYW5kb21TbWFsbEludEFycmF5KCk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4g
cmFuZG9tTWl4ZWRBcnJheSgpOwotfQotZnVuY3Rpb24gcmFuZG9tU3RyaW5nICgpIHsKLSAgICBy
ZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIHJhbmRvbVNtYWxsSW50QXJy
YXkoKSk7Ci19Ci1mdW5jdGlvbiByYW5kb21HTENvbnN0YW50ICgpIHsKLSAgICByZXR1cm4gR0xD
b25zdGFudHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogR0xDb25zdGFudHMubGVuZ3RoKV07
Ci19Ci0KLWZ1bmN0aW9uIHJhbmRvbU5vbkFycmF5KCkgewotICAgIHZhciByID0gTWF0aC5yYW5k
b20oKTsKLSAgICBpZiAociA8IDAuMjUpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRvbUZsb2F0KCk7
Ci0gICAgfSBlbHNlIGlmIChyIDwgMC42KSB7Ci0gICAgICAgIHJldHVybiByYW5kb21JbnQoKTsK
LSAgICB9IGVsc2UgaWYgKHIgPCAwLjcpIHsKLSAgICAgICAgcmV0dXJuIChyIDwgMC42NSk7Ci0g
ICAgfSBlbHNlIGlmIChyIDwgMC44NykgewotICAgICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7
Ci0gICAgfSBlbHNlIGlmIChyIDwgMC45OCkgewotICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25z
dGFudCgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KLQot
ZnVuY3Rpb24gZ2VuZXJhdGVSYW5kb21BcmcocG9zLCBjb3VudCkgewotICAgIGlmIChwb3MgPT0g
MCAmJiBNYXRoLnJhbmRvbSgpIDwgMC41KQotICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25zdGFu
dCgpOwotICAgIGlmIChwb3MgPT0gY291bnQtMSAmJiBNYXRoLnJhbmRvbSgpIDwgMC4yNSkKLSAg
ICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPCAwLjUpCi0gICAgICAgICAgICByZXR1cm4gcmFuZG9t
U3RyaW5nKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiByYW5kb21BcnJheSgp
OwotICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKLSAgICBpZiAociA8IDAuMjUpIHsKLSAgICAg
ICAgcmV0dXJuIHJhbmRvbUZsb2F0KCk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC42KSB7Ci0gICAg
ICAgIHJldHVybiByYW5kb21JbnQoKTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjcpIHsKLSAgICAg
ICAgcmV0dXJuIChyIDwgMC42NSk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC43NykgewotICAgICAg
ICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC44NCkgewotICAg
ICAgICByZXR1cm4gcmFuZG9tQXJyYXkoKTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjk4KSB7Ci0g
ICAgICAgIHJldHVybiByYW5kb21HTENvbnN0YW50KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
cmV0dXJuIG51bGw7Ci0gICAgfQotfQotCi0KLWZ1bmN0aW9uIGdlbmVyYXRlUmFuZG9tQXJncyhj
b3VudCkgewotICAgIHZhciBhcnIgPSBuZXcgQXJyYXkoY291bnQpOwotICAgIGZvciAodmFyIGk9
MDsgaTxjb3VudDsgaSsrKQotICAgICAgICBhcnJbaV0gPSBnZW5lcmF0ZVJhbmRvbUFyZyhpLCBj
b3VudCk7Ci0gICAgcmV0dXJuIGFycjsKLX0KLQotLy8gcWMgKGFyZzFnZW4sIGFyZzJnZW4sIC4u
LiwgcHJlZGljYXRlKQotLy8gcWMgKHJhbmRvbVN0cmluZywgcmFuZG9tSW50LCByYW5kb21JbnQs
IGZ1bmN0aW9uKHMsaSxqKXsgcy5zdWJzdHJpbmcoaSxqKSB9KQotZnVuY3Rpb24gcWMoKSB7Ci19
Ci0KLUdMQ29uc3RhbnRzID0gWwotMSwKLTB4MDAwMDAxMDAsCi0weDAwMDAwNDAwLAotMHgwMDAw
NDAwMCwKLTB4MDAwMCwKLTB4MDAwMSwKLTB4MDAwMiwKLTB4MDAwMywKLTB4MDAwNCwKLTB4MDAw
NSwKLTB4MDAwNiwKLTAsCi0xLAotMHgwMzAwLAotMHgwMzAxLAotMHgwMzAyLAotMHgwMzAzLAot
MHgwMzA0LAotMHgwMzA1LAotMHgwMzA2LAotMHgwMzA3LAotMHgwMzA4LAotMHg4MDA2LAotMHg4
MDA5LAotMHg4MDA5LAotMHg4ODNELAotMHg4MDBBLAotMHg4MDBCLAotMHg4MEM4LAotMHg4MEM5
LAotMHg4MENBLAotMHg4MENCLAotMHg4MDAxLAotMHg4MDAyLAotMHg4MDAzLAotMHg4MDA0LAot
MHg4MDA1LAotMHg4ODkyLAotMHg4ODkzLAotMHg4ODk0LAotMHg4ODk1LAotMHg4OEUwLAotMHg4
OEU0LAotMHg4OEU4LAotMHg4NzY0LAotMHg4NzY1LAotMHg4NjI2LAotMHgwNDA0LAotMHgwNDA1
LAotMHgwNDA4LAotMHgwREUxLAotMHgwQjQ0LAotMHgwQkUyLAotMHgwQkQwLAotMHgwQjkwLAot
MHgwQjcxLAotMHgwQzExLAotMHg4MDM3LAotMHg4MDlFLAotMHg4MEEwLAotMCwKLTB4MDUwMCwK
LTB4MDUwMSwKLTB4MDUwMiwKLTB4MDUwNSwKLTB4MDkwMCwKLTB4MDkwMSwKLTB4MEIyMSwKLTB4
ODQ2RCwKLTB4ODQ2RSwKLTB4MEI0NSwKLTB4MEI0NiwKLTB4MEI3MCwKLTB4MEI3MiwKLTB4MEI3
MywKLTB4MEI3NCwKLTB4MEI5MSwKLTB4MEI5MiwKLTB4MEI5NCwKLTB4MEI5NSwKLTB4MEI5NiwK
LTB4MEI5NywKLTB4MEI5MywKLTB4MEI5OCwKLTB4ODgwMCwKLTB4ODgwMSwKLTB4ODgwMiwKLTB4
ODgwMywKLTB4OENBMywKLTB4OENBNCwKLTB4OENBNSwKLTB4MEJBMiwKLTB4MEMxMCwKLTB4MEMy
MiwKLTB4MEMyMywKLTB4MENGNSwKLTB4MEQwNSwKLTB4MEQzMywKLTB4MEQzQSwKLTB4MEQ1MCwK
LTB4MEQ1MiwKLTB4MEQ1MywKLTB4MEQ1NCwKLTB4MEQ1NSwKLTB4MEQ1NiwKLTB4MEQ1NywKLTB4
MkEwMCwKLTB4ODAzOCwKLTB4ODA2OSwKLTB4ODBBOCwKLTB4ODBBOSwKLTB4ODBBQSwKLTB4ODBB
QiwKLTB4ODZBMiwKLTB4ODZBMywKLTB4MTEwMCwKLTB4MTEwMSwKLTB4MTEwMiwKLTB4ODE5MiwK
LTB4MTQwMCwKLTB4MTQwMSwKLTB4MTQwMiwKLTB4MTQwMywKLTB4MTQwNCwKLTB4MTQwNSwKLTB4
MTQwNiwKLTB4MTQwQywKLTB4MTkwMiwKLTB4MTkwNiwKLTB4MTkwNywKLTB4MTkwOCwKLTB4MTkw
OSwKLTB4MTkwQSwKLTB4ODAzMywKLTB4ODAzNCwKLTB4ODM2MywKLTB4OEIzMCwKLTB4OEIzMSwK
LTB4ODg2OSwKLTB4OERGQiwKLTB4OERGQywKLTB4OEI0RCwKLTB4OEI0QywKLTB4ODg3MiwKLTB4
OERGRCwKLTB4OEI0RiwKLTB4OEI4MCwKLTB4OEI4MiwKLTB4OEI4MywKLTB4OEI4NSwKLTB4OEI4
NiwKLTB4OEI4NywKLTB4OEI4OSwKLTB4OEI4QSwKLTB4OEI4QywKLTB4OEI4RCwKLTB4MDIwMCwK
LTB4MDIwMSwKLTB4MDIwMiwKLTB4MDIwMywKLTB4MDIwNCwKLTB4MDIwNSwKLTB4MDIwNiwKLTB4
MDIwNywKLTB4MUUwMCwKLTB4MUUwMSwKLTB4MUUwMiwKLTB4MUUwMywKLTB4MTUwQSwKLTB4ODUw
NywKLTB4ODUwOCwKLTB4MUYwMCwKLTB4MUYwMSwKLTB4MUYwMiwKLTB4MUYwMywKLTB4MjYwMCwK
LTB4MjYwMSwKLTB4MjcwMCwKLTB4MjcwMSwKLTB4MjcwMiwKLTB4MjcwMywKLTB4MjgwMCwKLTB4
MjgwMSwKLTB4MjgwMiwKLTB4MjgwMywKLTB4MTcwMiwKLTB4ODUxMywKLTB4ODUxNCwKLTB4ODUx
NSwKLTB4ODUxNiwKLTB4ODUxNywKLTB4ODUxOCwKLTB4ODUxOSwKLTB4ODUxQSwKLTB4ODUxQywK
LTB4ODRDMCwKLTB4ODRDMSwKLTB4ODRDMiwKLTB4ODRDMywKLTB4ODRDNCwKLTB4ODRDNSwKLTB4
ODRDNiwKLTB4ODRDNywKLTB4ODRDOCwKLTB4ODRDOSwKLTB4ODRDQSwKLTB4ODRDQiwKLTB4ODRD
QywKLTB4ODRDRCwKLTB4ODRDRSwKLTB4ODRDRiwKLTB4ODREMCwKLTB4ODREMSwKLTB4ODREMiwK
LTB4ODREMywKLTB4ODRENCwKLTB4ODRENSwKLTB4ODRENiwKLTB4ODRENywKLTB4ODREOCwKLTB4
ODREOSwKLTB4ODREQSwKLTB4ODREQiwKLTB4ODREQywKLTB4ODRERCwKLTB4ODRERSwKLTB4ODRE
RiwKLTB4ODRFMCwKLTB4MjkwMSwKLTB4ODEyRiwKLTB4ODM3MCwKLTB4OEI1MCwKLTB4OEI1MSwK
LTB4OEI1MiwKLTB4OEI1MywKLTB4OEI1NCwKLTB4OEI1NSwKLTB4OEI1NiwKLTB4OEI1NywKLTB4
OEI1OCwKLTB4OEI1OSwKLTB4OEI1QSwKLTB4OEI1QiwKLTB4OEI1QywKLTB4OEI1RSwKLTB4OEI2
MCwKLTB4ODYyMiwKLTB4ODYyMywKLTB4ODYyNCwKLTB4ODYyNSwKLTB4ODg2QSwKLTB4ODY0NSwK
LTB4ODg5RiwKLTB4OEI5QSwKLTB4OEI5QiwKLTB4OEI4MSwKLTB4OEI4NCwKLTB4OEI4OCwKLTB4
OERGQSwKLTB4OERGOCwKLTB4OERGOSwKLTB4OERGMCwKLTB4OERGMSwKLTB4OERGMiwKLTB4OERG
MywKLTB4OERGNCwKLTB4OERGNSwKLTB4OEQ0MCwKLTB4OEQ0MSwKLTB4ODA1NiwKLTB4ODA1NywK
LTB4OEQ2MiwKLTB4ODFBNSwKLTB4MTkwMSwKLTB4OEQ0OCwKLTB4OEQ0MiwKLTB4OEQ0MywKLTB4
OEQ0NCwKLTB4OEQ1MCwKLTB4OEQ1MSwKLTB4OEQ1MiwKLTB4OEQ1MywKLTB4OEQ1NCwKLTB4OEQ1
NSwKLTB4OENEMCwKLTB4OENEMSwKLTB4OENEMiwKLTB4OENEMywKLTB4OENFMCwKLTB4OEQwMCwK
LTB4OEQyMCwKLTAsCi0weDhDRDUsCi0weDhDRDYsCi0weDhDRDcsCi0weDhDRDksCi0weDhDREQs
Ci0weDhDQTYsCi0weDhDQTcsCi0weDg0RTgsCi0weDA1MDYsCi0weDgwOUQKLV07Ci0KLWZ1bmN0
aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgewotICBpZiAod2lu
ZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7Ci0gICAgd2luZG93LnBhcmVudC53ZWJnbFRl
c3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNz
LCBtc2cpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgewot
ICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7Ci0gICAgd2luZG93LnBhcmVu
dC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFt
ZSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gaW5pdFRlc3RzKCkgewotICBpZiAoVGVzdHMubWVzc2Fn
ZSAhPSBudWxsKSB7Ci0gICAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1t
ZXNzYWdlJyk7Ci0gICAgaWYgKGggPT0gbnVsbCkgewotICAgICAgaCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3AnKTsKLSAgICAgIGguaWQgPSAndGVzdC1tZXNzYWdlJzsKLSAgICAgIGRvY3Vt
ZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGgsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7Ci0gICAg
fQotICAgIGgudGV4dENvbnRlbnQgPSBUZXN0cy5tZXNzYWdlOwotICB9Ci0gIGlmIChUZXN0cy5h
dXRvcnVuKSB7Ci0gICAgcnVuVGVzdHMoKTsKLSAgfSBlbHNlIHsKLSAgICB2YXIgaCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXJ1bicpOwotICAgIGlmIChoID09IG51bGwpIHsKLSAg
ICAgIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwotICAgICAgaC50eXBlID0g
J3N1Ym1pdCc7Ci0gICAgICBoLnZhbHVlID0gIlJ1biB0ZXN0cyI7Ci0gICAgICBoLmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewotICAgICAgICBydW5UZXN0cygpOwotICAg
ICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgfSwgZmFsc2UpOwotICAgICAgaC5pZCA9
ICd0ZXN0LXJ1bic7Ci0gICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShoLCBkb2N1bWVu
dC5ib2R5LmZpcnN0Q2hpbGQpOwotICAgIH0KLSAgICBoLnRleHRDb250ZW50ID0gVGVzdHMubWVz
c2FnZTsKLSAgfQotCi19Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rp
b24oKXsKLSAgLy8gbGV0IHRoZSBicm93c2VyIGhvcGVmdWxseSBmaW5pc2ggdXBkYXRpbmcgdGhl
IGdsIGNhbnZhcyBzdXJmYWNlcyBpZiB3ZSBhcmUgZ2l2ZW4gYSBkZWxheQotICBpZiAoVGVzdHMu
ZGVsYXkpCi0gICAgc2V0VGltZW91dChpbml0VGVzdHMsIFRlc3RzLmRlbGF5KTsKLSAgZWxzZQot
ICAgIGluaXRUZXN0cygpCi19LCBmYWxzZSk7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzNjZjYWZlNWI0ZGE2OGQ3MmUwMWY3MTczM2NkNWNmNTMx
NWI4MmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUyICswLDAg
QEAKLS8qCi1VdGlsaXRpZXMgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFzIGNvbnRl
eHQKLSovCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotZnVuY3Rpb24gbG9hZFRleHR1cmUo
Z2wsIGVsZW0sIG1pcG1hcHMpIHsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBlbGVtKTsK
LSAgaWYgKG1pcG1hcHMgIT0gZmFsc2UpCi0gICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVS
RV8yRCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGlm
IChtaXBtYXBzKQotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7Ci0gIGVsc2UKLSAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElO
RUFSKTsKLSAgcmV0dXJuIHRleDsKLX0KLQotZnVuY3Rpb24gZ2V0U2hhZGVyKGdsLCBpZCkgewot
ICB2YXIgc2hhZGVyU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotICBpZiAo
IXNoYWRlclNjcmlwdCkgewotICAgIHRocm93KG5ldyBFcnJvcigiTm8gc2hhZGVyIGVsZW1lbnQg
d2l0aCBpZDogIitpZCkpOwotICB9Ci0KLSAgdmFyIHN0ciA9ICIiOwotICB2YXIgayA9IHNoYWRl
clNjcmlwdC5maXJzdENoaWxkOwotICB3aGlsZSAoaykgewotICAgIGlmIChrLm5vZGVUeXBlID09
IDMpCi0gICAgICBzdHIgKz0gay50ZXh0Q29udGVudDsKLSAgICBrID0gay5uZXh0U2libGluZzsK
LSAgfQotCi0gIHZhciBzaGFkZXI7Ci0gIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFk
ZXIveC1mcmFnbWVudCIpIHsKLSAgICBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01F
TlRfU0hBREVSKTsKLSAgfSBlbHNlIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIv
eC12ZXJ0ZXgiKSB7Ci0gICAgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFE
RVIpOwotICB9IGVsc2UgewotICAgIHRocm93KG5ldyBFcnJvcigiVW5rbm93biBzaGFkZXIgdHlw
ZSAiK3NoYWRlclNjcmlwdC50eXBlKSk7Ci0gIH0KLQotICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVy
LCBzdHIpOwotICBnbC5jb21waWxlU2hhZGVyKHNoYWRlcik7Ci0KLSAgaWYgKGdsLmdldFNoYWRl
clBhcmFtZXRlcihzaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSAhPSAxKSB7Ci0gICAgdmFyIGls
b2cgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHNo
YWRlcik7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJGYWlsZWQgdG8gY29tcGlsZSBzaGFkZXIgIitz
aGFkZXJTY3JpcHQuaWQgKyAiLCBTaGFkZXIgaW5mbyBsb2c6ICIgKyBpbG9nKSk7Ci0gIH0KLSAg
cmV0dXJuIHNoYWRlcjsKLX0KLQotZnVuY3Rpb24gbG9hZFNoYWRlckFycmF5KGdsLCBzaGFkZXJz
KSB7Ci0gIHZhciBpZCA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKLSAgdmFyIHNoYWRlck9ianMgPSBb
XTsKLSAgZm9yICh2YXIgaT0wOyBpPHNoYWRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICB0cnkgewot
ICAgICAgdmFyIHNoID0gZ2V0U2hhZGVyKGdsLCBzaGFkZXJzW2ldKTsKLSAgICAgIHNoYWRlck9i
anMucHVzaChzaCk7Ci0gICAgICBnbC5hdHRhY2hTaGFkZXIoaWQsIHNoKTsKLSAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICB2YXIgcHIgPSB7cHJvZ3JhbTogaWQsIHNoYWRlcnM6IHNoYWRlck9ianN9
OwotICAgICAgZGVsZXRlU2hhZGVyKGdsLCBwcik7Ci0gICAgICB0aHJvdyAoZSk7Ci0gICAgfQot
ICB9Ci0gIHZhciBwcm9nID0ge3Byb2dyYW06IGlkLCBzaGFkZXJzOiBzaGFkZXJPYmpzfTsKLSAg
Z2wubGlua1Byb2dyYW0oaWQpOwotICBnbC52YWxpZGF0ZVByb2dyYW0oaWQpOwotICBpZiAoZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihpZCwgZ2wuTElOS19TVEFUVVMpICE9IDEpIHsKLSAgICBkZWxl
dGVTaGFkZXIoZ2wscHJvZyk7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJGYWlsZWQgdG8gbGluayBz
aGFkZXIiKSk7Ci0gIH0KLSAgaWYgKGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoaWQsIGdsLlZBTElE
QVRFX1NUQVRVUykgIT0gMSkgewotICAgIGRlbGV0ZVNoYWRlcihnbCxwcm9nKTsKLSAgICB0aHJv
dyhuZXcgRXJyb3IoIkZhaWxlZCB0byB2YWxpZGF0ZSBzaGFkZXIiKSk7Ci0gIH0KLSAgcmV0dXJu
IHByb2c7Ci19Ci1mdW5jdGlvbiBsb2FkU2hhZGVyKGdsKSB7Ci0gIHZhciBzaCA9IFtdOwotICBm
b3IgKHZhciBpPTE7IGk8YXJndW1lbnRzLmxlbmd0aDsgKytpKQotICAgIHNoLnB1c2goYXJndW1l
bnRzW2ldKTsKLSAgcmV0dXJuIGxvYWRTaGFkZXJBcnJheShnbCwgc2gpOwotfQotCi1mdW5jdGlv
biBkZWxldGVTaGFkZXIoZ2wsIHNoKSB7Ci0gIGdsLnVzZVByb2dyYW0obnVsbCk7Ci0gIHNoLnNo
YWRlcnMuZm9yRWFjaChmdW5jdGlvbihzKXsKLSAgICBnbC5kZXRhY2hTaGFkZXIoc2gucHJvZ3Jh
bSwgcyk7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHMpOwotICB9KTsKLSAgZ2wuZGVsZXRlUHJvZ3Jh
bShzaC5wcm9ncmFtKTsKLX0KLQotZnVuY3Rpb24gZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZXJy
KSB7Ci0gIGlmIChlcnIgPT09IGN0eC5OT19FUlJPUikgewotICAgIHJldHVybiAiTk9fRVJST1Ii
OwotICB9Ci0gIGZvciAodmFyIG5hbWUgaW4gY3R4KSB7Ci0gICAgaWYgKGN0eFtuYW1lXSA9PT0g
ZXJyKSB7Ci0gICAgICByZXR1cm4gbmFtZTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIGVyci50b1N0
cmluZygpOwotfQotCi1mdW5jdGlvbiBjaGVja0Vycm9yKGdsLCBtc2cpIHsKLSAgdmFyIGUgPSBn
bC5nZXRFcnJvcigpOwotICBpZiAoZSAhPSBnbC5OT19FUlJPUikgewotICAgIGxvZygiRXJyb3Ig
IiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZSkgKyAiIGF0ICIgKyBtc2cpOwotICB9Ci0gIHJl
dHVybiBlOwotfQotCi1mdW5jdGlvbiB0aHJvd0Vycm9yKGdsLCBtc2cpIHsKLSAgdmFyIGUgPSBn
bC5nZXRFcnJvcigpOwotICBpZiAoZSAhPSAwKSB7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJFcnJv
ciAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlKSArICIgYXQgIiArIG1zZykpOwotICB9Ci19
Ci0KLU1hdGguY290ID0gZnVuY3Rpb24oeikgeyByZXR1cm4gMS4wIC8gTWF0aC50YW4oeik7IH0K
LQotLyoKLSAgTWF0cml4IHV0aWxpdGllcywgdXNpbmcgdGhlIE9wZW5HTCBlbGVtZW50IG9yZGVy
IHdoZXJlCi0gIHRoZSBsYXN0IDQgZWxlbWVudHMgYXJlIHRoZSB0cmFuc2xhdGlvbiBjb2x1bW4u
Ci0KLSAgVXNlcyBmbGF0IGFycmF5cyBhcyBtYXRyaWNlcyBmb3IgcGVyZm9ybWFuY2UuCi0KLSAg
TW9zdCBvcGVyYXRpb25zIGhhdmUgaW4tcGxhY2UgdmFyaWFudHMgdG8gYXZvaWQgYWxsb2NhdGlu
ZyB0ZW1wb3JhcnkgbWF0cmljZXMuCi0KLSAgTmFtaW5nIGxvZ2ljOgotICAgIE1hdHJpeC5tZXRo
b2Qgb3BlcmF0ZXMgb24gYSA0eDQgTWF0cml4IGFuZCByZXR1cm5zIGEgbmV3IE1hdHJpeC4KLSAg
ICBNYXRyaXgubWV0aG9kM3gzIG9wZXJhdGVzIG9uIGEgM3gzIE1hdHJpeCBhbmQgcmV0dXJucyBh
IG5ldyBNYXRyaXguIE5vdCBhbGwgb3BlcmF0aW9ucyBoYXZlIGEgM3gzIHZlcnNpb24gKGFzIDN4
MyBpcyB1c3VhbGx5IG9ubHkgdXNlZCBmb3IgdGhlIG5vcm1hbCBtYXRyaXg6IE1hdHJpeC50cmFu
c3Bvc2UzeDMoTWF0cml4LmludmVyc2VUbzN4MyhtYXQ0eDQpKSkKLSAgICBNYXRyaXgubWV0aG9k
WzN4M11JblBsYWNlKGFyZ3MsIHRhcmdldCkgc3RvcmVzIGl0cyByZXN1bHQgaW4gdGhlIHRhcmdl
dCBtYXRyaXguCi0KLSAgICBNYXRyaXguc2NhbGUoW3N4LCBzeSwgc3pdKSAtLSBub24tdW5pZm9y
bSBzY2FsZSBieSB2ZWN0b3IKLSAgICBNYXRyaXguc2NhbGUxKHMpICAgICAgICAgICAtLSB1bmlm
b3JtIHNjYWxlIGJ5IHNjYWxhcgotICAgIE1hdHJpeC5zY2FsZTMoc3gsIHN5LCBzeikgIC0tIG5v
bi11bmlmb3JtIHNjYWxlIGJ5IHNjYWxhcnMKLQotICAgIERpdHRvIGZvciB0cmFuc2xhdGUuCi0q
LwotTWF0cml4ID0gewotICBpZGVudGl0eSA6IFsKLSAgICAxLjAsIDAuMCwgMC4wLCAwLjAsCi0g
ICAgMC4wLCAxLjAsIDAuMCwgMC4wLAotICAgIDAuMCwgMC4wLCAxLjAsIDAuMCwKLSAgICAwLjAs
IDAuMCwgMC4wLCAxLjAKLSAgXSwKLQotICBuZXdJZGVudGl0eSA6IGZ1bmN0aW9uKCkgewotICAg
IHJldHVybiBbCi0gICAgICAxLjAsIDAuMCwgMC4wLCAwLjAsCi0gICAgICAwLjAsIDEuMCwgMC4w
LCAwLjAsCi0gICAgICAwLjAsIDAuMCwgMS4wLCAwLjAsCi0gICAgICAwLjAsIDAuMCwgMC4wLCAx
LjAKLSAgICBdOwotICB9LAotCi0gIG5ld0lkZW50aXR5M3gzIDogZnVuY3Rpb24oKSB7Ci0gICAg
cmV0dXJuIFsKLSAgICAgIDEuMCwgMC4wLCAwLjAsCi0gICAgICAwLjAsIDEuMCwgMC4wLAotICAg
ICAgMC4wLCAwLjAsIDEuMAotICAgIF07Ci0gIH0sCi0KLSAgY29weU1hdHJpeCA6IGZ1bmN0aW9u
KHNyYywgZHN0KSB7Ci0gICAgZm9yICh2YXIgaT0wOyBpPDE2OyBpKyspIGRzdFtpXSA9IHNyY1tp
XTsKLSAgICByZXR1cm4gZHN0OwotICB9LAotCi0gIHRvM3gzIDogZnVuY3Rpb24obSkgewotICAg
IHJldHVybiBbCi0gICAgICBtWzBdLCBtWzFdLCBtWzJdLAotICAgICAgbVs0XSwgbVs1XSwgbVs2
XSwKLSAgICAgIG1bOF0sIG1bOV0sIG1bMTBdCi0gICAgXTsKLSAgfSwKLQotICAvLyBvcnRob25v
cm1hbCBtYXRyaXggaW52ZXJzZQotICBpbnZlcnNlT04gOiBmdW5jdGlvbihtKSB7Ci0gICAgdmFy
IG4gPSB0aGlzLnRyYW5zcG9zZTR4NChtKTsKLSAgICB2YXIgdCA9IFttWzEyXSwgbVsxM10sIG1b
MTRdXTsKLSAgICBuWzNdID0gbls3XSA9IG5bMTFdID0gMDsKLSAgICBuWzEyXSA9IC1WZWMzLmRv
dChbblswXSwgbls0XSwgbls4XV0sIHQpOwotICAgIG5bMTNdID0gLVZlYzMuZG90KFtuWzFdLCBu
WzVdLCBuWzldXSwgdCk7Ci0gICAgblsxNF0gPSAtVmVjMy5kb3QoW25bMl0sIG5bNl0sIG5bMTBd
XSwgdCk7Ci0gICAgcmV0dXJuIG47Ci0gIH0sCi0KLSAgaW52ZXJzZVRvM3gzIDogZnVuY3Rpb24o
bSkgewotICAgIHJldHVybiB0aGlzLmludmVyc2U0eDR0bzN4M0luUGxhY2UobSwgdGhpcy5uZXdJ
ZGVudGl0eTN4MygpKTsKLSAgfSwKLQotICBpbnZlcnNlVG8zeDNJblBsYWNlIDogZnVuY3Rpb24o
bSxuKSB7Ci0gICAgdmFyIGExMSA9IG1bMTBdKm1bNV0tbVs2XSptWzldLAotICAgICAgICBhMjEg
PSAtbVsxMF0qbVsxXSttWzJdKm1bOV0sCi0gICAgICAgIGEzMSA9IG1bNl0qbVsxXS1tWzJdKm1b
NV0sCi0gICAgICAgIGExMiA9IC1tWzEwXSptWzRdK21bNl0qbVs4XSwKLSAgICAgICAgYTIyID0g
bVsxMF0qbVswXS1tWzJdKm1bOF0sCi0gICAgICAgIGEzMiA9IC1tWzZdKm1bMF0rbVsyXSptWzRd
LAotICAgICAgICBhMTMgPSBtWzldKm1bNF0tbVs1XSptWzhdLAotICAgICAgICBhMjMgPSAtbVs5
XSptWzBdK21bMV0qbVs4XSwKLSAgICAgICAgYTMzID0gbVs1XSptWzBdLW1bMV0qbVs0XTsKLSAg
ICB2YXIgZGV0ID0gbVswXSooYTExKSArIG1bMV0qKGExMikgKyBtWzJdKihhMTMpOwotICAgIGlm
IChkZXQgPT0gMCkgLy8gbm8gaW52ZXJzZQotICAgICAgcmV0dXJuIFsxLDAsMCwwLDEsMCwwLDAs
MV07Ci0gICAgdmFyIGlkZXQgPSAxIC8gZGV0OwotICAgIG5bMF0gPSBpZGV0KmExMTsKLSAgICBu
WzFdID0gaWRldCphMjE7Ci0gICAgblsyXSA9IGlkZXQqYTMxOwotICAgIG5bM10gPSBpZGV0KmEx
MjsKLSAgICBuWzRdID0gaWRldCphMjI7Ci0gICAgbls1XSA9IGlkZXQqYTMyOwotICAgIG5bNl0g
PSBpZGV0KmExMzsKLSAgICBuWzddID0gaWRldCphMjM7Ci0gICAgbls4XSA9IGlkZXQqYTMzOwot
ICAgIHJldHVybiBuOwotICB9LAotCi0gIGludmVyc2UzeDMgOiBmdW5jdGlvbihtKSB7Ci0gICAg
cmV0dXJuIHRoaXMuaW52ZXJzZTN4M0luUGxhY2UobSwgdGhpcy5uZXdJZGVudGl0eTN4MygpKTsK
LSAgfSwKLQotICBpbnZlcnNlM3gzSW5QbGFjZSA6IGZ1bmN0aW9uKG0sbikgewotICAgIHZhciBh
MTEgPSBtWzhdKm1bNF0tbVs1XSptWzddLAotICAgICAgICBhMjEgPSAtbVs4XSptWzFdK21bMl0q
bVs3XSwKLSAgICAgICAgYTMxID0gbVs1XSptWzFdLW1bMl0qbVs0XSwKLSAgICAgICAgYTEyID0g
LW1bOF0qbVszXSttWzVdKm1bNl0sCi0gICAgICAgIGEyMiA9IG1bOF0qbVswXS1tWzJdKm1bNl0s
Ci0gICAgICAgIGEzMiA9IC1tWzVdKm1bMF0rbVsyXSptWzNdLAotICAgICAgICBhMTMgPSBtWzdd
Km1bNF0tbVs0XSptWzhdLAotICAgICAgICBhMjMgPSAtbVs3XSptWzBdK21bMV0qbVs2XSwKLSAg
ICAgICAgYTMzID0gbVs0XSptWzBdLW1bMV0qbVszXTsKLSAgICB2YXIgZGV0ID0gbVswXSooYTEx
KSArIG1bMV0qKGExMikgKyBtWzJdKihhMTMpOwotICAgIGlmIChkZXQgPT0gMCkgLy8gbm8gaW52
ZXJzZQotICAgICAgcmV0dXJuIFsxLDAsMCwwLDEsMCwwLDAsMV07Ci0gICAgdmFyIGlkZXQgPSAx
IC8gZGV0OwotICAgIG5bMF0gPSBpZGV0KmExMTsKLSAgICBuWzFdID0gaWRldCphMjE7Ci0gICAg
blsyXSA9IGlkZXQqYTMxOwotICAgIG5bM10gPSBpZGV0KmExMjsKLSAgICBuWzRdID0gaWRldCph
MjI7Ci0gICAgbls1XSA9IGlkZXQqYTMyOwotICAgIG5bNl0gPSBpZGV0KmExMzsKLSAgICBuWzdd
ID0gaWRldCphMjM7Ci0gICAgbls4XSA9IGlkZXQqYTMzOwotICAgIHJldHVybiBuOwotICB9LAot
Ci0gIGZydXN0dW0gOiBmdW5jdGlvbiAobGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCB6bmVhciwg
emZhcikgewotICAgIHZhciBYID0gMip6bmVhci8ocmlnaHQtbGVmdCk7Ci0gICAgdmFyIFkgPSAy
KnpuZWFyLyh0b3AtYm90dG9tKTsKLSAgICB2YXIgQSA9IChyaWdodCtsZWZ0KS8ocmlnaHQtbGVm
dCk7Ci0gICAgdmFyIEIgPSAodG9wK2JvdHRvbSkvKHRvcC1ib3R0b20pOwotICAgIHZhciBDID0g
LSh6ZmFyK3puZWFyKS8oemZhci16bmVhcik7Ci0gICAgdmFyIEQgPSAtMip6ZmFyKnpuZWFyLyh6
ZmFyLXpuZWFyKTsKLQotICAgIHJldHVybiBbCi0gICAgICBYLCAwLCAwLCAwLAotICAgICAgMCwg
WSwgMCwgMCwKLSAgICAgIEEsIEIsIEMsIC0xLAotICAgICAgMCwgMCwgRCwgMAotICAgIF07Ci0g
fSwKLQotICBwZXJzcGVjdGl2ZSA6IGZ1bmN0aW9uIChmb3Z5LCBhc3BlY3QsIHpuZWFyLCB6ZmFy
KSB7Ci0gICAgdmFyIHltYXggPSB6bmVhciAqIE1hdGgudGFuKGZvdnkgKiBNYXRoLlBJIC8gMzYw
LjApOwotICAgIHZhciB5bWluID0gLXltYXg7Ci0gICAgdmFyIHhtaW4gPSB5bWluICogYXNwZWN0
OwotICAgIHZhciB4bWF4ID0geW1heCAqIGFzcGVjdDsKLQotICAgIHJldHVybiB0aGlzLmZydXN0
dW0oeG1pbiwgeG1heCwgeW1pbiwgeW1heCwgem5lYXIsIHpmYXIpOwotICB9LAotCi0gIG11bDR4
NCA6IGZ1bmN0aW9uIChhLGIpIHsKLSAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKGEsYix0
aGlzLm5ld0lkZW50aXR5KCkpOwotICB9LAotCi0gIG11bDR4NEluUGxhY2UgOiBmdW5jdGlvbiAo
YSwgYiwgYykgewotICAgICAgICBjWzBdID0gICBiWzBdICogYVswXSArCi0gICAgICAgICAgICAg
ICAgIGJbMCsxXSAqIGFbNF0gKwotICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzhdICsKLSAg
ICAgICAgICAgICAgICAgYlswKzNdICogYVsxMl07Ci0gICAgICAgIGNbMCsxXSA9IGJbMF0gKiBh
WzFdICsKLSAgICAgICAgICAgICAgICAgYlswKzFdICogYVs1XSArCi0gICAgICAgICAgICAgICAg
IGJbMCsyXSAqIGFbOV0gKwotICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzEzXTsKLSAgICAg
ICAgY1swKzJdID0gYlswXSAqIGFbMl0gKwotICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzZd
ICsKLSAgICAgICAgICAgICAgICAgYlswKzJdICogYVsxMF0gKwotICAgICAgICAgICAgICAgICBi
WzArM10gKiBhWzE0XTsKLSAgICAgICAgY1swKzNdID0gYlswXSAqIGFbM10gKwotICAgICAgICAg
ICAgICAgICBiWzArMV0gKiBhWzddICsKLSAgICAgICAgICAgICAgICAgYlswKzJdICogYVsxMV0g
KwotICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzE1XTsKLSAgICAgICAgY1s0XSA9ICAgYls0
XSAqIGFbMF0gKwotICAgICAgICAgICAgICAgICBiWzQrMV0gKiBhWzRdICsKLSAgICAgICAgICAg
ICAgICAgYls0KzJdICogYVs4XSArCi0gICAgICAgICAgICAgICAgIGJbNCszXSAqIGFbMTJdOwot
ICAgICAgICBjWzQrMV0gPSBiWzRdICogYVsxXSArCi0gICAgICAgICAgICAgICAgIGJbNCsxXSAq
IGFbNV0gKwotICAgICAgICAgICAgICAgICBiWzQrMl0gKiBhWzldICsKLSAgICAgICAgICAgICAg
ICAgYls0KzNdICogYVsxM107Ci0gICAgICAgIGNbNCsyXSA9IGJbNF0gKiBhWzJdICsKLSAgICAg
ICAgICAgICAgICAgYls0KzFdICogYVs2XSArCi0gICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFb
MTBdICsKLSAgICAgICAgICAgICAgICAgYls0KzNdICogYVsxNF07Ci0gICAgICAgIGNbNCszXSA9
IGJbNF0gKiBhWzNdICsKLSAgICAgICAgICAgICAgICAgYls0KzFdICogYVs3XSArCi0gICAgICAg
ICAgICAgICAgIGJbNCsyXSAqIGFbMTFdICsKLSAgICAgICAgICAgICAgICAgYls0KzNdICogYVsx
NV07Ci0gICAgICAgIGNbOF0gPSAgIGJbOF0gKiBhWzBdICsKLSAgICAgICAgICAgICAgICAgYls4
KzFdICogYVs0XSArCi0gICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbOF0gKwotICAgICAgICAg
ICAgICAgICBiWzgrM10gKiBhWzEyXTsKLSAgICAgICAgY1s4KzFdID0gYls4XSAqIGFbMV0gKwot
ICAgICAgICAgICAgICAgICBiWzgrMV0gKiBhWzVdICsKLSAgICAgICAgICAgICAgICAgYls4KzJd
ICogYVs5XSArCi0gICAgICAgICAgICAgICAgIGJbOCszXSAqIGFbMTNdOwotICAgICAgICBjWzgr
Ml0gPSBiWzhdICogYVsyXSArCi0gICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNl0gKwotICAg
ICAgICAgICAgICAgICBiWzgrMl0gKiBhWzEwXSArCi0gICAgICAgICAgICAgICAgIGJbOCszXSAq
IGFbMTRdOwotICAgICAgICBjWzgrM10gPSBiWzhdICogYVszXSArCi0gICAgICAgICAgICAgICAg
IGJbOCsxXSAqIGFbN10gKwotICAgICAgICAgICAgICAgICBiWzgrMl0gKiBhWzExXSArCi0gICAg
ICAgICAgICAgICAgIGJbOCszXSAqIGFbMTVdOwotICAgICAgICBjWzEyXSA9ICAgYlsxMl0gKiBh
WzBdICsKLSAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFbNF0gKwotICAgICAgICAgICAgICAg
ICBiWzEyKzJdICogYVs4XSArCi0gICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzEyXTsKLSAg
ICAgICAgY1sxMisxXSA9IGJbMTJdICogYVsxXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMV0g
KiBhWzVdICsKLSAgICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbOV0gKwotICAgICAgICAgICAg
ICAgICBiWzEyKzNdICogYVsxM107Ci0gICAgICAgIGNbMTIrMl0gPSBiWzEyXSAqIGFbMl0gKwot
ICAgICAgICAgICAgICAgICBiWzEyKzFdICogYVs2XSArCi0gICAgICAgICAgICAgICAgIGJbMTIr
Ml0gKiBhWzEwXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzE0XTsKLSAgICAgICAg
Y1sxMiszXSA9IGJbMTJdICogYVszXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzdd
ICsKLSAgICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbMTFdICsKLSAgICAgICAgICAgICAgICAg
YlsxMiszXSAqIGFbMTVdOwotICAgIHJldHVybiBjOwotICB9LAotCi0gIG11bHY0IDogZnVuY3Rp
b24gKGEsIHYpIHsKLSAgICBjID0gbmV3IEFycmF5KDQpOwotICAgIGZvciAodmFyIGk9MDsgaTw0
OyArK2kpIHsKLSAgICAgIHZhciB4ID0gMDsKLSAgICAgIGZvciAodmFyIGs9MDsgazw0OyArK2sp
Ci0gICAgICAgIHggKz0gdltrXSAqIGFbayo0K2ldOwotICAgICAgY1tpXSA9IHg7Ci0gICAgfQot
ICAgIHJldHVybiBjOwotICB9LAotCi0gIHJvdGF0ZSA6IGZ1bmN0aW9uIChhbmdsZSwgYXhpcykg
ewotICAgIGF4aXMgPSBWZWMzLm5vcm1hbGl6ZShheGlzKTsKLSAgICB2YXIgeD1heGlzWzBdLCB5
PWF4aXNbMV0sIHo9YXhpc1syXTsKLSAgICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKLSAgICB2
YXIgYzEgPSAxLWM7Ci0gICAgdmFyIHMgPSBNYXRoLnNpbihhbmdsZSk7Ci0gICAgcmV0dXJuIFsK
LSAgICAgIHgqeCpjMStjLCB5KngqYzEreipzLCB6KngqYzEteSpzLCAwLAotICAgICAgeCp5KmMx
LXoqcywgeSp5KmMxK2MsIHkqeipjMSt4KnMsIDAsCi0gICAgICB4KnoqYzEreSpzLCB5KnoqYzEt
eCpzLCB6KnoqYzErYywgMCwKLSAgICAgIDAsMCwwLDEKLSAgICBdOwotICB9LAotICByb3RhdGVJ
blBsYWNlIDogZnVuY3Rpb24oYW5nbGUsIGF4aXMsIG0pIHsKLSAgICBheGlzID0gVmVjMy5ub3Jt
YWxpemUoYXhpcyk7Ci0gICAgdmFyIHg9YXhpc1swXSwgeT1heGlzWzFdLCB6PWF4aXNbMl07Ci0g
ICAgdmFyIGMgPSBNYXRoLmNvcyhhbmdsZSk7Ci0gICAgdmFyIGMxID0gMS1jOwotICAgIHZhciBz
ID0gTWF0aC5zaW4oYW5nbGUpOwotICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJpeDsK
LSAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1wTWF0cml4MjsKLSAgICB0bXBNYXRyaXhbMF0g
PSB4KngqYzErYzsgdG1wTWF0cml4WzFdID0geSp4KmMxK3oqczsgdG1wTWF0cml4WzJdID0geip4
KmMxLXkqczsgdG1wTWF0cml4WzNdID0gMDsKLSAgICB0bXBNYXRyaXhbNF0gPSB4KnkqYzEteipz
OyB0bXBNYXRyaXhbNV0gPSB5KnkqYzErYzsgdG1wTWF0cml4WzZdID0geSp6KmMxK3gqczsgdG1w
TWF0cml4WzddID0gMDsKLSAgICB0bXBNYXRyaXhbOF0gPSB4KnoqYzEreSpzOyB0bXBNYXRyaXhb
OV0gPSB5KnoqYzEteCpzOyB0bXBNYXRyaXhbMTBdID0geip6KmMxK2M7IHRtcE1hdHJpeFsxMV0g
PSAwOwotICAgIHRtcE1hdHJpeFsxMl0gPSAwOyB0bXBNYXRyaXhbMTNdID0gMDsgdG1wTWF0cml4
WzE0XSA9IDA7IHRtcE1hdHJpeFsxNV0gPSAxOwotICAgIHRoaXMuY29weU1hdHJpeChtLCB0bXBN
YXRyaXgyKTsKLSAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJpeDIsIHRtcE1h
dHJpeCwgbSk7Ci0gIH0sCi0KLSAgc2NhbGUgOiBmdW5jdGlvbih2KSB7Ci0gICAgcmV0dXJuIFsK
LSAgICAgIHZbMF0sIDAsIDAsIDAsCi0gICAgICAwLCB2WzFdLCAwLCAwLAotICAgICAgMCwgMCwg
dlsyXSwgMCwKLSAgICAgIDAsIDAsIDAsIDEKLSAgICBdOwotICB9LAotICBzY2FsZTMgOiBmdW5j
dGlvbih4LHkseikgewotICAgIHJldHVybiBbCi0gICAgICB4LCAwLCAwLCAwLAotICAgICAgMCwg
eSwgMCwgMCwKLSAgICAgIDAsIDAsIHosIDAsCi0gICAgICAwLCAwLCAwLCAxCi0gICAgXTsKLSAg
fSwKLSAgc2NhbGUxIDogZnVuY3Rpb24ocykgewotICAgIHJldHVybiBbCi0gICAgICBzLCAwLCAw
LCAwLAotICAgICAgMCwgcywgMCwgMCwKLSAgICAgIDAsIDAsIHMsIDAsCi0gICAgICAwLCAwLCAw
LCAxCi0gICAgXTsKLSAgfSwKLSAgc2NhbGUzSW5QbGFjZSA6IGZ1bmN0aW9uKHgsIHksIHosIG0p
IHsKLSAgICB2YXIgdG1wTWF0cml4ID0gdGhpcy50bXBNYXRyaXg7Ci0gICAgdmFyIHRtcE1hdHJp
eDIgPSB0aGlzLnRtcE1hdHJpeDI7Ci0gICAgdG1wTWF0cml4WzBdID0geDsgdG1wTWF0cml4WzFd
ID0gMDsgdG1wTWF0cml4WzJdID0gMDsgdG1wTWF0cml4WzNdID0gMDsKLSAgICB0bXBNYXRyaXhb
NF0gPSAwOyB0bXBNYXRyaXhbNV0gPSB5OyB0bXBNYXRyaXhbNl0gPSAwOyB0bXBNYXRyaXhbN10g
PSAwOwotICAgIHRtcE1hdHJpeFs4XSA9IDA7IHRtcE1hdHJpeFs5XSA9IDA7IHRtcE1hdHJpeFsx
MF0gPSB6OyB0bXBNYXRyaXhbMTFdID0gMDsKLSAgICB0bXBNYXRyaXhbMTJdID0gMDsgdG1wTWF0
cml4WzEzXSA9IDA7IHRtcE1hdHJpeFsxNF0gPSAwOyB0bXBNYXRyaXhbMTVdID0gMTsKLSAgICB0
aGlzLmNvcHlNYXRyaXgobSwgdG1wTWF0cml4Mik7Ci0gICAgcmV0dXJuIHRoaXMubXVsNHg0SW5Q
bGFjZSh0bXBNYXRyaXgyLCB0bXBNYXRyaXgsIG0pOwotICB9LAotICBzY2FsZTFJblBsYWNlIDog
ZnVuY3Rpb24ocywgbSkgeyByZXR1cm4gdGhpcy5zY2FsZTNJblBsYWNlKHMsIHMsIHMsIG0pOyB9
LAotICBzY2FsZUluUGxhY2UgOiBmdW5jdGlvbihzLCBtKSB7IHJldHVybiB0aGlzLnNjYWxlM0lu
UGxhY2Uoc1swXSxzWzFdLHNbMl0sbSk7IH0sCi0KLSAgdHJhbnNsYXRlMyA6IGZ1bmN0aW9uKHgs
eSx6KSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAwLCAxLCAwLCAw
LAotICAgICAgMCwgMCwgMSwgMCwKLSAgICAgIHgsIHksIHosIDEKLSAgICBdOwotICB9LAotCi0g
IHRyYW5zbGF0ZSA6IGZ1bmN0aW9uKHYpIHsKLSAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUzKHZb
MF0sIHZbMV0sIHZbMl0pOwotICB9LAotICB0bXBNYXRyaXggOiBbMCwwLDAsMCwgMCwwLDAsMCwg
MCwwLDAsMCwgMCwwLDAsMF0sCi0gIHRtcE1hdHJpeDIgOiBbMCwwLDAsMCwgMCwwLDAsMCwgMCww
LDAsMCwgMCwwLDAsMF0sCi0gIHRyYW5zbGF0ZTNJblBsYWNlIDogZnVuY3Rpb24oeCx5LHosbSkg
ewotICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJpeDsKLSAgICB2YXIgdG1wTWF0cml4
MiA9IHRoaXMudG1wTWF0cml4MjsKLSAgICB0bXBNYXRyaXhbMF0gPSAxOyB0bXBNYXRyaXhbMV0g
PSAwOyB0bXBNYXRyaXhbMl0gPSAwOyB0bXBNYXRyaXhbM10gPSAwOwotICAgIHRtcE1hdHJpeFs0
XSA9IDA7IHRtcE1hdHJpeFs1XSA9IDE7IHRtcE1hdHJpeFs2XSA9IDA7IHRtcE1hdHJpeFs3XSA9
IDA7Ci0gICAgdG1wTWF0cml4WzhdID0gMDsgdG1wTWF0cml4WzldID0gMDsgdG1wTWF0cml4WzEw
XSA9IDE7IHRtcE1hdHJpeFsxMV0gPSAwOwotICAgIHRtcE1hdHJpeFsxMl0gPSB4OyB0bXBNYXRy
aXhbMTNdID0geTsgdG1wTWF0cml4WzE0XSA9IHo7IHRtcE1hdHJpeFsxNV0gPSAxOwotICAgIHRo
aXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKLSAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBs
YWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7Ci0gIH0sCi0gIHRyYW5zbGF0ZUluUGxhY2Ug
OiBmdW5jdGlvbih2LG0peyByZXR1cm4gdGhpcy50cmFuc2xhdGUzSW5QbGFjZSh2WzBdLCB2WzFd
LCB2WzJdLCBtKTsgfSwKLQotICBsb29rQXQgOiBmdW5jdGlvbiAoZXllLCBjZW50ZXIsIHVwKSB7
Ci0gICAgdmFyIHogPSBWZWMzLmRpcmVjdGlvbihleWUsIGNlbnRlcik7Ci0gICAgdmFyIHggPSBW
ZWMzLm5vcm1hbGl6ZUluUGxhY2UoVmVjMy5jcm9zcyh1cCwgeikpOwotICAgIHZhciB5ID0gVmVj
My5ub3JtYWxpemVJblBsYWNlKFZlYzMuY3Jvc3MoeiwgeCkpOwotCi0gICAgdmFyIG0gPSBbCi0g
ICAgICB4WzBdLCB5WzBdLCB6WzBdLCAwLAotICAgICAgeFsxXSwgeVsxXSwgelsxXSwgMCwKLSAg
ICAgIHhbMl0sIHlbMl0sIHpbMl0sIDAsCi0gICAgICAwLCAwLCAwLCAxCi0gICAgXTsKLQotICAg
IHZhciB0ID0gWwotICAgICAgMSwgMCwgMCwgMCwKLSAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAw
LCAwLCAxLCAwLAotICAgICAgLWV5ZVswXSwgLWV5ZVsxXSwgLWV5ZVsyXSwgMQotICAgIF07Ci0K
LSAgICByZXR1cm4gdGhpcy5tdWw0eDQobSx0KTsKLSAgfSwKLQotICB0cmFuc3Bvc2U0eDQgOiBm
dW5jdGlvbihtKSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIG1bMF0sIG1bNF0sIG1bOF0sIG1bMTJd
LAotICAgICAgbVsxXSwgbVs1XSwgbVs5XSwgbVsxM10sCi0gICAgICBtWzJdLCBtWzZdLCBtWzEw
XSwgbVsxNF0sCi0gICAgICBtWzNdLCBtWzddLCBtWzExXSwgbVsxNV0KLSAgICBdOwotICB9LAot
Ci0gIHRyYW5zcG9zZTR4NEluUGxhY2UgOiBmdW5jdGlvbihtKSB7Ci0gICAgdmFyIHRtcCA9IDAu
MDsKLSAgICB0bXAgPSBtWzFdOyBtWzFdID0gbVs0XTsgbVs0XSA9IHRtcDsKLSAgICB0bXAgPSBt
WzJdOyBtWzJdID0gbVs4XTsgbVs4XSA9IHRtcDsKLSAgICB0bXAgPSBtWzNdOyBtWzNdID0gbVsx
Ml07IG1bMTJdID0gdG1wOwotICAgIHRtcCA9IG1bNl07IG1bNl0gPSBtWzldOyBtWzldID0gdG1w
OwotICAgIHRtcCA9IG1bN107IG1bN10gPSBtWzEzXTsgbVsxM10gPSB0bXA7Ci0gICAgdG1wID0g
bVsxMV07IG1bMTFdID0gbVsxNF07IG1bMTRdID0gdG1wOwotICAgIHJldHVybiBtOwotICB9LAot
Ci0gIHRyYW5zcG9zZTN4MyA6IGZ1bmN0aW9uKG0pIHsKLSAgICByZXR1cm4gWwotICAgICAgbVsw
XSwgbVszXSwgbVs2XSwKLSAgICAgIG1bMV0sIG1bNF0sIG1bN10sCi0gICAgICBtWzJdLCBtWzVd
LCBtWzhdCi0gICAgXTsKLSAgfSwKLQotICB0cmFuc3Bvc2UzeDNJblBsYWNlIDogZnVuY3Rpb24o
bSkgewotICAgIHZhciB0bXAgPSAwLjA7Ci0gICAgdG1wID0gbVsxXTsgbVsxXSA9IG1bM107IG1b
M10gPSB0bXA7Ci0gICAgdG1wID0gbVsyXTsgbVsyXSA9IG1bNl07IG1bNl0gPSB0bXA7Ci0gICAg
dG1wID0gbVs1XTsgbVs1XSA9IG1bN107IG1bN10gPSB0bXA7Ci0gICAgcmV0dXJuIG07Ci0gIH0s
Ci19Ci0KLVZlYzMgPSB7Ci0gIG1ha2UgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFswLDAsMF07IH0s
Ci0gIGNvcHkgOiBmdW5jdGlvbih2KSB7IHJldHVybiBbdlswXSx2WzFdLHZbMl1dOyB9LAotCi0g
IGFkZCA6IGZ1bmN0aW9uICh1LHYpIHsKLSAgICByZXR1cm4gW3VbMF0rdlswXSwgdVsxXSt2WzFd
LCB1WzJdK3ZbMl1dOwotICB9LAotCi0gIHN1YiA6IGZ1bmN0aW9uICh1LHYpIHsKLSAgICByZXR1
cm4gW3VbMF0tdlswXSwgdVsxXS12WzFdLCB1WzJdLXZbMl1dOwotICB9LAotCi0gIG5lZ2F0ZSA6
IGZ1bmN0aW9uICh1KSB7Ci0gICAgcmV0dXJuIFstdVswXSwgLXVbMV0sIC11WzJdXTsKLSAgfSwK
LQotICBkaXJlY3Rpb24gOiBmdW5jdGlvbiAodSx2KSB7Ci0gICAgcmV0dXJuIHRoaXMubm9ybWFs
aXplSW5QbGFjZSh0aGlzLnN1Yih1LHYpKTsKLSAgfSwKLQotICBub3JtYWxpemVJblBsYWNlIDog
ZnVuY3Rpb24odikgewotICAgIHZhciBpbWFnID0gMS4wIC8gTWF0aC5zcXJ0KHZbMF0qdlswXSAr
IHZbMV0qdlsxXSArIHZbMl0qdlsyXSk7Ci0gICAgdlswXSAqPSBpbWFnOyB2WzFdICo9IGltYWc7
IHZbMl0gKj0gaW1hZzsKLSAgICByZXR1cm4gdjsKLSAgfSwKLQotICBub3JtYWxpemUgOiBmdW5j
dGlvbih2KSB7Ci0gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplSW5QbGFjZSh0aGlzLmNvcHkodikp
OwotICB9LAotCi0gIHNjYWxlIDogZnVuY3Rpb24oZiwgdikgewotICAgIHJldHVybiBbZip2WzBd
LCBmKnZbMV0sIGYqdlsyXV07Ci0gIH0sCi0KLSAgZG90IDogZnVuY3Rpb24odSx2KSB7Ci0gICAg
cmV0dXJuIHVbMF0qdlswXSArIHVbMV0qdlsxXSArIHVbMl0qdlsyXTsKLSAgfSwKLQotICBpbm5l
ciA6IGZ1bmN0aW9uKHUsdikgewotICAgIHJldHVybiBbdVswXSp2WzBdLCB1WzFdKnZbMV0sIHVb
Ml0qdlsyXV07Ci0gIH0sCi0KLSAgY3Jvc3MgOiBmdW5jdGlvbih1LHYpIHsKLSAgICByZXR1cm4g
WwotICAgICAgdVsxXSp2WzJdIC0gdVsyXSp2WzFdLAotICAgICAgdVsyXSp2WzBdIC0gdVswXSp2
WzJdLAotICAgICAgdVswXSp2WzFdIC0gdVsxXSp2WzBdCi0gICAgXTsKLSAgfQotfQotCi1TaGFk
ZXIgPSBmdW5jdGlvbihnbCl7Ci0gIHRoaXMuZ2wgPSBnbDsKLSAgdGhpcy5zaGFkZXJzID0gW107
Ci0gIHRoaXMudW5pZm9ybUxvY2F0aW9ucyA9IHt9OwotICB0aGlzLmF0dHJpYkxvY2F0aW9ucyA9
IHt9OwotICBmb3IgKHZhciBpPTE7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdGhp
cy5zaGFkZXJzLnB1c2goYXJndW1lbnRzW2ldKTsKLSAgfQotfQotU2hhZGVyLnByb3RvdHlwZSA9
IHsKLSAgaWQgOiBudWxsLAotICBnbCA6IG51bGwsCi0gIGNvbXBpbGVkIDogZmFsc2UsCi0gIHNo
YWRlciA6IG51bGwsCi0gIHNoYWRlcnMgOiBbXSwKLQotICBkZXN0cm95IDogZnVuY3Rpb24oKSB7
Ci0gICAgaWYgKHRoaXMuc2hhZGVyICE9IG51bGwpIGRlbGV0ZVNoYWRlcih0aGlzLmdsLCB0aGlz
LnNoYWRlcik7Ci0gIH0sCi0KLSAgY29tcGlsZSA6IGZ1bmN0aW9uKCkgewotICAgIHRoaXMuc2hh
ZGVyID0gbG9hZFNoYWRlckFycmF5KHRoaXMuZ2wsIHRoaXMuc2hhZGVycyk7Ci0gIH0sCi0KLSAg
dXNlIDogZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRoaXMuc2hhZGVyID09IG51bGwpCi0gICAgICB0
aGlzLmNvbXBpbGUoKTsKLSAgICB0aGlzLmdsLnVzZVByb2dyYW0odGhpcy5zaGFkZXIucHJvZ3Jh
bSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTFmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAg
dmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0xZnYobG9j
LCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTJmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7
Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0y
ZnYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTNmdiA6IGZ1bmN0aW9uKG5hbWUsIHZh
bHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVu
aWZvcm0zZnYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTRmdiA6IGZ1bmN0aW9uKG5h
bWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlz
LmdsLnVuaWZvcm00ZnYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTFmIDogZnVuY3Rp
b24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAg
IHRoaXMuZ2wudW5pZm9ybTFmKGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0yZiA6IGZ1
bmN0aW9uKG5hbWUsIHYxLHYyKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsK
LSAgICB0aGlzLmdsLnVuaWZvcm0yZihsb2MsIHYxLHYyKTsKLSAgfSwKLQotICB1bmlmb3JtM2Yg
OiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2MykgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0o
bmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtM2YobG9jLCB2MSx2Mix2Myk7Ci0gIH0sCi0KLSAg
dW5pZm9ybTRmIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMsdjQpIHsKLSAgICB2YXIgbG9jID0g
dGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTRmKGxvYywgdjEsIHYyLCB2
MywgdjQpOwotICB9LAotCi0gIHVuaWZvcm0xaXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewot
ICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMWl2
KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0yaXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1
ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlm
b3JtMml2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0zaXYgOiBmdW5jdGlvbihuYW1l
LCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5n
bC51bmlmb3JtM2l2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm00aXYgOiBmdW5jdGlv
bihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAg
dGhpcy5nbC51bmlmb3JtNGl2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0xaSA6IGZ1
bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsK
LSAgICB0aGlzLmdsLnVuaWZvcm0xaShsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3JtMmkg
OiBmdW5jdGlvbihuYW1lLCB2MSx2MikgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFt
ZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMmkobG9jLCB2MSx2Mik7Ci0gIH0sCi0KLSAgdW5pZm9y
bTNpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlm
b3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTNpKGxvYywgdjEsdjIsdjMpOwotICB9LAot
Ci0gIHVuaWZvcm00aSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzLHY0KSB7Ci0gICAgdmFyIGxv
YyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm00aShsb2MsIHYxLCB2
MiwgdjMsIHY0KTsKLSAgfSwKLQotICB1bmlmb3JtTWF0cml4NGZ2IDogZnVuY3Rpb24obmFtZSwg
dmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wu
dW5pZm9ybU1hdHJpeDRmdihsb2MsIGZhbHNlLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybU1h
dHJpeDNmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5p
Zm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm1NYXRyaXgzZnYobG9jLCBmYWxzZSwgdmFs
dWUpOwotICB9LAotCi0gIHVuaWZvcm1NYXRyaXgyZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkg
ewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3Jt
TWF0cml4MmZ2KGxvYywgZmFsc2UsIHZhbHVlKTsKLSAgfSwKLQotICBhdHRyaWIgOiBmdW5jdGlv
bihuYW1lKSB7Ci0gICAgaWYgKHRoaXMuYXR0cmliTG9jYXRpb25zW25hbWVdID09IG51bGwpIHsK
LSAgICAgIHZhciBsb2MgPSB0aGlzLmdsLmdldEF0dHJpYkxvY2F0aW9uKHRoaXMuc2hhZGVyLnBy
b2dyYW0sIG5hbWUpOwotICAgICAgdGhpcy5hdHRyaWJMb2NhdGlvbnNbbmFtZV0gPSBsb2M7Ci0g
ICAgfQotICAgIHJldHVybiB0aGlzLmF0dHJpYkxvY2F0aW9uc1tuYW1lXTsKLSAgfSwKLQotICB1
bmlmb3JtIDogZnVuY3Rpb24obmFtZSkgewotICAgIGlmICh0aGlzLnVuaWZvcm1Mb2NhdGlvbnNb
bmFtZV0gPT0gbnVsbCkgewotICAgICAgdmFyIGxvYyA9IHRoaXMuZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHRoaXMuc2hhZGVyLnByb2dyYW0sIG5hbWUpOwotICAgICAgdGhpcy51bmlmb3JtTG9jYXRp
b25zW25hbWVdID0gbG9jOwotICAgIH0KLSAgICByZXR1cm4gdGhpcy51bmlmb3JtTG9jYXRpb25z
W25hbWVdOwotICB9Ci19Ci1GaWx0ZXIgPSBmdW5jdGlvbihnbCwgc2hhZGVyKSB7Ci0gIFNoYWRl
ci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotfQotRmlsdGVyLnByb3RvdHlwZSA9IG5ldyBTaGFk
ZXIoKTsKLUZpbHRlci5wcm90b3R5cGUuYXBwbHkgPSBmdW5jdGlvbihpbml0KSB7Ci0gIHRoaXMu
dXNlKCk7Ci0gIHZhciB2YSA9IHRoaXMuYXR0cmliKCJWZXJ0ZXgiKTsKLSAgdmFyIHRhID0gdGhp
cy5hdHRyaWIoIlRleCIpOwotICB2YXIgdmJvID0gUXVhZC5nZXRDYWNoZWRWQk8odGhpcy5nbCk7
Ci0gIGlmIChpbml0KSBpbml0KHRoaXMpOwotICB2Ym8uZHJhdyh2YSwgbnVsbCwgdGEpOwotfQot
Ci0KLVZCTyA9IGZ1bmN0aW9uKGdsKSB7Ci0gIHRoaXMuZ2wgPSBnbDsKLSAgdGhpcy5kYXRhID0g
W107Ci0gIHRoaXMuZWxlbWVudHNWQk8gPSBudWxsOwotICBmb3IgKHZhciBpPTE7IGk8YXJndW1l
bnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgaWYgKGFyZ3VtZW50c1tpXS5lbGVtZW50cykKLSAgICAg
IHRoaXMuZWxlbWVudHMgPSBhcmd1bWVudHNbaV07Ci0gICAgZWxzZQotICAgICAgdGhpcy5kYXRh
LnB1c2goYXJndW1lbnRzW2ldKTsKLSAgfQotfQotCi1WQk8ucHJvdG90eXBlID0gewotICBpbml0
aWFsaXplZCA6IGZhbHNlLAotICBsZW5ndGggOiAwLAotICB2Ym9zIDogbnVsbCwKLSAgdHlwZSA6
ICdUUklBTkdMRVMnLAotICBlbGVtZW50c1ZCTyA6IG51bGwsCi0gIGVsZW1lbnRzIDogbnVsbCwK
LQotICBzZXREYXRhIDogZnVuY3Rpb24oKSB7Ci0gICAgdGhpcy5kZXN0cm95KCk7Ci0gICAgdGhp
cy5kYXRhID0gW107Ci0gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykg
ewotICAgICAgaWYgKGFyZ3VtZW50c1tpXS5lbGVtZW50cykKLSAgICAgICAgdGhpcy5lbGVtZW50
cyA9IGFyZ3VtZW50c1tpXTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5kYXRhLnB1c2goYXJn
dW1lbnRzW2ldKTsKLSAgICB9Ci0gIH0sCi0KLSAgZGVzdHJveSA6IGZ1bmN0aW9uKCkgewotICAg
IGlmICh0aGlzLnZib3MgIT0gbnVsbCkKLSAgICAgIGZvciAodmFyIGk9MDsgaTx0aGlzLnZib3Mu
bGVuZ3RoOyBpKyspCi0gICAgICAgIHRoaXMuZ2wuZGVsZXRlQnVmZmVyKHRoaXMudmJvc1tpXSk7
Ci0gICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkKLSAgICAgIHRoaXMuZ2wuZGVsZXRl
QnVmZmVyKHRoaXMuZWxlbWVudHNWQk8pOwotICAgIHRoaXMubGVuZ3RoID0gdGhpcy5lbGVtZW50
c0xlbmd0aCA9IDA7Ci0gICAgdGhpcy52Ym9zID0gdGhpcy5lbGVtZW50c1ZCTyA9IG51bGw7Ci0g
ICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlOwotICB9LAotCi0gIGluaXQgOiBmdW5jdGlvbigp
IHsKLSAgICB0aGlzLmRlc3Ryb3koKTsKLSAgICB2YXIgZ2wgPSB0aGlzLmdsOwotCi0gICAgZ2wu
Z2V0RXJyb3IoKTsKLSAgICB2YXIgdmJvcyA9IFtdOwotICAgIHZhciBsZW5ndGggPSAwOwotICAg
IGZvciAodmFyIGk9MDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspCi0gICAgICB2Ym9zLnB1c2go
Z2wuY3JlYXRlQnVmZmVyKCkpOwotICAgIGlmICh0aGlzLmVsZW1lbnRzICE9IG51bGwpCi0gICAg
ICB0aGlzLmVsZW1lbnRzVkJPID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gICAgdHJ5IHsKLSAgICAg
IHRocm93RXJyb3IoZ2wsICJnZW5CdWZmZXJzIik7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaTx0
aGlzLmRhdGEubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGFbaV07Ci0g
ICAgICAgIHZhciBkbGVuID0gTWF0aC5mbG9vcihkLmRhdGEubGVuZ3RoIC8gZC5zaXplKTsKLSAg
ICAgICAgaWYgKGkgPT0gMCB8fCBkbGVuIDwgbGVuZ3RoKQotICAgICAgICAgICAgbGVuZ3RoID0g
ZGxlbjsKLSAgICAgICAgaWYgKCFkLmZsb2F0QXJyYXkpCi0gICAgICAgICAgZC5mbG9hdEFycmF5
ID0gbmV3IEZsb2F0MzJBcnJheShkLmRhdGEpOwotICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgdmJvc1tpXSk7Ci0gICAgICAgIHRocm93RXJyb3IoZ2wsICJiaW5kQnVmZmVy
Iik7Ci0gICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkLmZsb2F0QXJyYXks
IGdsLlNUQVRJQ19EUkFXKTsKLSAgICAgICAgdGhyb3dFcnJvcihnbCwgImJ1ZmZlckRhdGEiKTsK
LSAgICAgIH0KLSAgICAgIGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKLSAgICAgICAg
dmFyIGQgPSB0aGlzLmVsZW1lbnRzOwotICAgICAgICB0aGlzLmVsZW1lbnRzTGVuZ3RoID0gZC5k
YXRhLmxlbmd0aDsKLSAgICAgICAgdGhpcy5lbGVtZW50c1R5cGUgPSBkLnR5cGUgPT0gZ2wuVU5T
SUdORURfQllURSA/IGQudHlwZSA6IGdsLlVOU0lHTkVEX1NIT1JUOwotICAgICAgICBnbC5iaW5k
QnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCB0aGlzLmVsZW1lbnRzVkJPKTsKLSAgICAg
ICAgdGhyb3dFcnJvcihnbCwgImJpbmRCdWZmZXIgRUxFTUVOVF9BUlJBWV9CVUZGRVIiKTsKLSAg
ICAgICAgaWYgKHRoaXMuZWxlbWVudHNUeXBlID09IGdsLlVOU0lHTkVEX1NIT1JUICYmICFkLnVz
aG9ydEFycmF5KSB7Ci0gICAgICAgICAgZC51c2hvcnRBcnJheSA9IG5ldyBVaW50MTZBcnJheShk
LmRhdGEpOwotICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IGQudXNob3J0QXJyYXksIGdsLlNUQVRJQ19EUkFXKTsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlz
LmVsZW1lbnRzVHlwZSA9PSBnbC5VTlNJR05FRF9CWVRFICYmICFkLnVieXRlQXJyYXkpIHsKLSAg
ICAgICAgICBkLnVieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShkLmRhdGEpOwotICAgICAgICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGQudWJ5dGVBcnJheSwgZ2wu
U1RBVElDX0RSQVcpOwotICAgICAgICB9Ci0gICAgICAgIHRocm93RXJyb3IoZ2wsICJidWZmZXJE
YXRhIEVMRU1FTlRfQVJSQVlfQlVGRkVSIik7Ci0gICAgICB9Ci0gICAgfSBjYXRjaChlKSB7Ci0g
ICAgICBmb3IgKHZhciBpPTA7IGk8dmJvcy5sZW5ndGg7IGkrKykKLSAgICAgICAgZ2wuZGVsZXRl
QnVmZmVyKHZib3NbaV0pOwotICAgICAgdGhyb3coZSk7Ci0gICAgfQotCi0gICAgZ2wuYmluZEJ1
ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOwotICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIG51bGwpOwotCi0gICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7Ci0gICAg
dGhpcy52Ym9zID0gdmJvczsKLQotICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwotICB9LAot
Ci0gIHVzZSA6IGZ1bmN0aW9uKCkgewotICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgdGhpcy5p
bml0KCk7Ci0gICAgdmFyIGdsID0gdGhpcy5nbDsKLSAgICBmb3IgKHZhciBpPTA7IGk8YXJndW1l
bnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBpZiAoYXJndW1lbnRzW2ldID09IG51bGwpIGNvbnRp
bnVlOwotICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRoaXMudmJvc1tpXSk7
Ci0gICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGFyZ3VtZW50c1tpXSwgdGhpcy5kYXRhW2ld
LnNpemUsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0gICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheShhcmd1bWVudHNbaV0pOwotICAgIH0KLSAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAh
PSBudWxsKSB7Ci0gICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCB0
aGlzLmVsZW1lbnRzVkJPKTsKLSAgICB9Ci0gIH0sCi0KLSAgZHJhdyA6IGZ1bmN0aW9uKCkgewot
ICAgIHZhciBhcmdzID0gW107Ci0gICAgdGhpcy51c2UuYXBwbHkodGhpcywgYXJndW1lbnRzKTsK
LSAgICB2YXIgZ2wgPSB0aGlzLmdsOwotICAgIGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwp
IHsKLSAgICAgIGdsLmRyYXdFbGVtZW50cyhnbFt0aGlzLnR5cGVdLCB0aGlzLmVsZW1lbnRzTGVu
Z3RoLCB0aGlzLmVsZW1lbnRzVHlwZSwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGdsLmRyYXdB
cnJheXMoZ2xbdGhpcy50eXBlXSwgMCwgdGhpcy5sZW5ndGgpOwotICAgIH0KLSAgfQotfQotCi1G
Qk8gPSBmdW5jdGlvbihnbCwgd2lkdGgsIGhlaWdodCwgdXNlX2RlcHRoKSB7Ci0gIHRoaXMuZ2wg
PSBnbDsKLSAgdGhpcy53aWR0aCA9IHdpZHRoOwotICB0aGlzLmhlaWdodCA9IGhlaWdodDsKLSAg
aWYgKHVzZV9kZXB0aCAhPSBudWxsKQotICAgIHRoaXMudXNlRGVwdGggPSB1c2VfZGVwdGg7Ci19
Ci1GQk8ucHJvdG90eXBlID0gewotICBpbml0aWFsaXplZCA6IGZhbHNlLAotICB1c2VEZXB0aCA6
IHRydWUsCi0gIGZibyA6IG51bGwsCi0gIHJibyA6IG51bGwsCi0gIHRleHR1cmUgOiBudWxsLAot
Ci0gIGRlc3Ryb3kgOiBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5mYm8pIHRoaXMuZ2wuZGVs
ZXRlRnJhbWVidWZmZXIodGhpcy5mYm8pOwotICAgIGlmICh0aGlzLnJibykgdGhpcy5nbC5kZWxl
dGVSZW5kZXJidWZmZXIodGhpcy5yYm8pOwotICAgIGlmICh0aGlzLnRleHR1cmUpIHRoaXMuZ2wu
ZGVsZXRlVGV4dHVyZSh0aGlzLnRleHR1cmUpOwotICB9LAotCi0gIGluaXQgOiBmdW5jdGlvbigp
IHsKLSAgICB2YXIgZ2wgPSB0aGlzLmdsOwotICAgIHZhciB3ID0gdGhpcy53aWR0aCwgaCA9IHRo
aXMuaGVpZ2h0OwotICAgIHZhciBmYm8gPSB0aGlzLmZibyAhPSBudWxsID8gdGhpcy5mYm8gOiBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotICAgIHZhciByYjsKLQotICAgIGdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQg
YmluZEZyYW1lYnVmZmVyIik7Ci0gICAgaWYgKHRoaXMudXNlRGVwdGgpIHsKLSAgICAgIHJiID0g
dGhpcy5yYm8gIT0gbnVsbCA/IHRoaXMucmJvIDogZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0g
ICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmIpOwotICAgICAgY2hl
Y2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmRSZW5kZXJidWZmZXIiKTsKLSAgICAgIGdsLnJlbmRl
cmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgdywg
aCk7Ci0gICAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgcmVuZGVyYnVmZmVyU3RvcmFnZSIp
OwotICAgIH0KLQotICAgIHZhciB0ZXggPSB0aGlzLnRleHR1cmUgIT0gbnVsbCA/IHRoaXMudGV4
dHVyZSA6IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXgpOwotICAgIHRyeSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIHcsIGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwot
ICAgIH0gY2F0Y2ggKGUpIHsgLy8gYXJnaCwgbm8gbnVsbCB0ZXh0dXJlIHN1cHBvcnQKLSAgICAg
IHZhciB0bXAgPSB0aGlzLmdldFRlbXBDYW52YXModyxoKTsKLSAgICAgIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdG1w
KTsKLSAgICB9Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVB
Uik7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9G
SUxURVIsIGdsLkxJTkVBUik7Ci0gICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IHRleCIpOwot
Ci0gICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOwotICAgIGNoZWNrRXJyb3IoZ2wsICJG
Qk8uaW5pdCBiaW5kIHRleCIpOwotCi0gICAgaWYgKHRoaXMudXNlRGVwdGgpIHsKLSAgICAgIGds
LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hN
RU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJiKTsKLSAgICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5p
dCBiaW5kIGRlcHRoIGJ1ZmZlciIpOwotICAgIH0KLQotICAgIHZhciBmYnN0YXQgPSBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICBpZiAoZmJzdGF0ICE9IGds
LkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAgICB2YXIgZ2x2OwotICAgICAgZm9yICh2YXIg
diBpbiBnbCkgewotICAgICAgICB0cnkgeyBnbHYgPSBnbFt2XTsgfSBjYXRjaCAoZSkgeyBnbHYg
PSBudWxsOyB9Ci0gICAgICAgIGlmIChnbHYgPT0gZmJzdGF0KSB7IGZic3RhdCA9IHY7IGJyZWFr
OyB9fQotICAgICAgICBsb2coIkZyYW1lYnVmZmVyIHN0YXR1czogIiArIGZic3RhdCk7Ci0gICAg
fQotICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBjaGVjayBmYm8iKTsKLQotICAgIHRoaXMu
ZmJvID0gZmJvOwotICAgIHRoaXMucmJvID0gcmI7Ci0gICAgdGhpcy50ZXh0dXJlID0gdGV4Owot
ICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwotICB9LAotCi0gIGdldFRlbXBDYW52YXMgOiBm
dW5jdGlvbih3LCBoKSB7Ci0gICAgaWYgKCFGQk8udGVtcENhbnZhcykgewotICAgICAgRkJPLnRl
bXBDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICB9Ci0gICAg
RkJPLnRlbXBDYW52YXMud2lkdGggPSB3OwotICAgIEZCTy50ZW1wQ2FudmFzLmhlaWdodCA9IGg7
Ci0gICAgcmV0dXJuIEZCTy50ZW1wQ2FudmFzOwotICB9LAotCi0gIHVzZSA6IGZ1bmN0aW9uKCkg
ewotICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgdGhpcy5pbml0KCk7Ci0gICAgdGhpcy5nbC5i
aW5kRnJhbWVidWZmZXIodGhpcy5nbC5GUkFNRUJVRkZFUiwgdGhpcy5mYm8pOwotICB9Ci19Ci0K
LWZ1bmN0aW9uIEdMRXJyb3IoZXJyLCBtc2csIGZpbGVOYW1lLCBsaW5lTnVtYmVyKSB7Ci0gIHRo
aXMubWVzc2FnZSA9IG1zZzsKLSAgdGhpcy5nbEVycm9yID0gZXJyOwotfQotCi1HTEVycm9yLnBy
b3RvdHlwZSA9IG5ldyBFcnJvcigpOwotCi1mdW5jdGlvbiBtYWtlR0xFcnJvcldyYXBwZXIoZ2ws
IGZuYW1lKSB7Ci0gIHJldHVybiAoZnVuY3Rpb24oKSB7Ci0gICAgdHJ5IHsKLSAgICAgIHZhciBy
diA9IGdsW2ZuYW1lXS5hcHBseShnbCwgYXJndW1lbnRzKTsKLSAgICAgIHZhciBlcnIgPSBnbC5n
ZXRFcnJvcigpOwotICAgICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAgICAgICB0aHJv
dyhuZXcgR0xFcnJvcigKLSAgICAgICAgICAgIGVyciwgIkdMIGVycm9yICIrZ2V0R0xFcnJvckFz
U3RyaW5nKGdsLCBlcnIpKyIgaW4gIitmbmFtZSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJ2
OwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIGlmIChlLmdsRXJyb3IgIT09IHVuZGVmaW5lZCkg
ewotICAgICAgICB0aHJvdyBlOwotICAgICAgfQotICAgICAgdGhyb3cobmV3IEVycm9yKCJUaHJl
dyAiICsgZS5uYW1lICsKLSAgICAgICAgICAgICAgICAgICAgICAiIGluICIgKyBmbmFtZSArICJc
biIgKwotICAgICAgICAgICAgICAgICAgICAgIGUubWVzc2FnZSArICJcbiIgKwotICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyKSk7Ci0gICAgfQotICB9KTsKLX0K
LQotZnVuY3Rpb24gd3JhcEdMQ29udGV4dChnbCkgewotICB2YXIgd3JhcCA9IHt9OwotICBmb3Ig
KHZhciBpIGluIGdsKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGlmICh0eXBlb2YgZ2xbaV0gPT0gJ2Z1
bmN0aW9uJykgewotICAgICAgICAgIHdyYXBbaV0gPSBtYWtlR0xFcnJvcldyYXBwZXIoZ2wsIGkp
OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB3cmFwW2ldID0gZ2xbaV07Ci0gICAgICB9Ci0g
ICAgfSBjYXRjaCAoZSkgewotICAgICAgLy8gbG9nKCJ3cmFwR0xDb250ZXh0OiBFcnJvciBhY2Nl
c3NpbmcgIiArIGkpOwotICAgIH0KLSAgfQotICB3cmFwLmdldEVycm9yID0gZnVuY3Rpb24oKXsg
cmV0dXJuIGdsLmdldEVycm9yKCk7IH07Ci0gIHJldHVybiB3cmFwOwotfQotCi1mdW5jdGlvbiBn
ZXRHTENvbnRleHQoY2FudmFzKSB7Ci0gIHJldHVybiBjYW52YXMuZ2V0Q29udGV4dChHTF9DT05U
RVhUX0lELCB7YW50aWFsaWFzOiBmYWxzZX0pOwotfQotCi0vLyBBc3NlcnQgdGhhdCBmIGdlbmVy
YXRlcyBhIHNwZWNpZmljIEdMIGVycm9yLgotZnVuY3Rpb24gYXNzZXJ0R0xFcnJvcihnbCwgZXJy
LCBuYW1lLCBmKSB7Ci0gIGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9
Ci0gIHZhciByID0gZmFsc2U7Ci0gIHZhciBnbEVyciA9IDA7Ci0gIHRyeSB7IGYoKTsgfSBjYXRj
aChlKSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IH0KLSAgaWYgKGdsRXJyICE9PSBlcnIp
IHsKLSAgICBpZiAoZ2xFcnIgPT09IHVuZGVmaW5lZCkgewotICAgICAgdGVzdEZhaWxlZCgiYXNz
ZXJ0R0xFcnJvcjogVU5FWFBFQ1RFRCBFWENFUFRJT04iLCBuYW1lLCBmKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogZXhwZWN0ZWQ6ICIgKyBnZXRHTEVy
cm9yQXNTdHJpbmcoZ2wsIGVycikgKwotICAgICAgICAgICAgICAgICAiIGFjdHVhbDogIiArIGdl
dEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi0vLyBBc3NlcnQgdGhhdCBmIGdlbmVy
YXRlcyBzb21lIEdMIGVycm9yLiBVc2VkIGluIHNpdHVhdGlvbnMgd2hlcmUgaXQncwotLy8gYW1i
aWdpb3VzIHdoaWNoIG9mIG11bHRpcGxlIHBvc3NpYmxlIGVycm9ycyB3aWxsIGJlIGdlbmVyYXRl
ZC4KLWZ1bmN0aW9uIGFzc2VydFNvbWVHTEVycm9yKGdsLCBuYW1lLCBmKSB7Ci0gIGlmIChmID09
IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIHZhciByID0gZmFsc2U7Ci0gIHZh
ciBnbEVyciA9IDA7Ci0gIHZhciBlcnIgPSAwOwotICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyBy
PXRydWU7IGdsRXJyID0gZS5nbEVycm9yOyB9Ci0gIGlmIChnbEVyciA9PT0gMCkgewotICAgIGlm
IChnbEVyciA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9y
OiBVTkVYUEVDVEVEIEVYQ0VQVElPTiIsIG5hbWUsIGYpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0
ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBleHBlY3RlZDogIiArIGdldEdMRXJyb3JBc1N0cmlu
ZyhnbCwgZXJyKSArCi0gICAgICAgICAgICAgICAgICIgYWN0dWFsOiAiICsgZ2V0R0xFcnJvckFz
U3RyaW5nKGdsLCBnbEVyciksIG5hbWUsIGYpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci0g
IH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8vIEFzc2VydCB0aGF0IGYgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiBidXQgZG9lcyBub3QgZ2VuZXJhdGUgYSBHTCBlcnJvci4KLWZ1bmN0aW9uIGFzc2VydFRo
cm93Tm9HTEVycm9yKGdsLCBuYW1lLCBmKSB7Ci0gIGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7
IG5hbWUgPSBudWxsOyB9Ci0gIHZhciByID0gZmFsc2U7Ci0gIHZhciBnbEVyciA9IHVuZGVmaW5l
ZDsKLSAgdmFyIGV4cDsKLSAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyBnbEVyciA9
IGUuZ2xFcnJvcjsgZXhwID0gZTt9Ci0gIGlmICghcikgewotICAgIHRlc3RGYWlsZWQoCi0gICAg
ICAiYXNzZXJ0VGhyb3dOb0dMRXJyb3I6IHNob3VsZCBoYXZlIHRocm93biBleGNlcHRpb24iLCBu
YW1lLCBmKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgaWYgKGdsRXJyICE9
PSB1bmRlZmluZWQpIHsKLSAgICAgIHRlc3RGYWlsZWQoCi0gICAgICAgICJhc3NlcnRUaHJvd05v
R0xFcnJvcjogc2hvdWxkIGJlIG5vIEdMIGVycm9yIGJ1dCBnZW5lcmF0ZWQ6ICIgKwotICAgICAg
ICBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7Ci0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICB9Ci0gIHRlc3RQYXNzZWQoImFzc2VydFRocm93Tm9HTEVycm9yIiwg
bmFtZSwgZik7Ci0gIHJldHVybiB0cnVlOwotfQotCi1RdWFkID0gewotICB2ZXJ0aWNlcyA6IFsK
LSAgICAtMSwtMSwwLAotICAgIDEsLTEsMCwKLSAgICAtMSwxLDAsCi0gICAgMSwtMSwwLAotICAg
IDEsMSwwLAotICAgIC0xLDEsMAotICBdLAotICBub3JtYWxzIDogWwotICAgIDAsMCwtMSwKLSAg
ICAwLDAsLTEsCi0gICAgMCwwLC0xLAotICAgIDAsMCwtMSwKLSAgICAwLDAsLTEsCi0gICAgMCww
LC0xCi0gIF0sCi0gIHRleGNvb3JkcyA6IFsKLSAgICAwLDAsCi0gICAgMSwwLAotICAgIDAsMSwK
LSAgICAxLDAsCi0gICAgMSwxLAotICAgIDAsMQotICBdLAotICBpbmRpY2VzIDogWzAsMSwyLDEs
NSwyXSwKLSAgbWFrZVZCTyA6IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0dXJuIG5ldyBWQk8oZ2ws
Ci0gICAgICAgIHtzaXplOjMsIGRhdGE6IFF1YWQudmVydGljZXN9LAotICAgICAgICB7c2l6ZToz
LCBkYXRhOiBRdWFkLm5vcm1hbHN9LAotICAgICAgICB7c2l6ZToyLCBkYXRhOiBRdWFkLnRleGNv
b3Jkc30KLSAgICApCi0gIH0sCi0gIGNhY2hlOiB7fSwKLSAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rp
b24oZ2wpIHsKLSAgICBpZiAoIXRoaXMuY2FjaGVbZ2xdKQotICAgICAgdGhpcy5jYWNoZVtnbF0g
PSB0aGlzLm1ha2VWQk8oZ2wpOwotICAgIHJldHVybiB0aGlzLmNhY2hlW2dsXTsKLSAgfQotfQot
Q3ViZSA9IHsKLSAgdmVydGljZXMgOiBbICAwLjUsIC0wLjUsICAwLjUsIC8vICtYCi0gICAgICAg
ICAgICAgICAgMC41LCAtMC41LCAtMC41LAotICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgLTAu
NSwKLSAgICAgICAgICAgICAgICAwLjUsICAwLjUsICAwLjUsCi0KLSAgICAgICAgICAgICAgICAw
LjUsICAwLjUsICAwLjUsIC8vICtZCi0gICAgICAgICAgICAgICAgMC41LCAgMC41LCAtMC41LAot
ICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgLTAuNSwg
IDAuNSwgIDAuNSwKLQotICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwgLy8gK1oKLSAg
ICAgICAgICAgICAgICAtMC41LCAgMC41LCAgMC41LAotICAgICAgICAgICAgICAgIC0wLjUsIC0w
LjUsICAwLjUsCi0gICAgICAgICAgICAgICAgMC41LCAtMC41LCAgMC41LAotCi0gICAgICAgICAg
ICAgICAgLTAuNSwgLTAuNSwgIDAuNSwgLy8gLVgKLSAgICAgICAgICAgICAgICAtMC41LCAgMC41
LCAgMC41LAotICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAg
ICAgLTAuNSwgLTAuNSwgLTAuNSwKLQotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUs
IC8vIC1ZCi0gICAgICAgICAgICAgICAgLTAuNSwgLTAuNSwgLTAuNSwKLSAgICAgICAgICAgICAg
ICAwLjUsIC0wLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgMC41LCAtMC41LCAgMC41LAotCi0g
ICAgICAgICAgICAgICAgLTAuNSwgLTAuNSwgLTAuNSwgLy8gLVoKLSAgICAgICAgICAgICAgICAt
MC41LCAgMC41LCAtMC41LAotICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgLTAuNSwKLSAgICAg
ICAgICAgICAgICAwLjUsIC0wLjUsIC0wLjUsCi0gICAgICBdLAotCi0gIG5vcm1hbHMgOiBbIDEs
IDAsIDAsCi0gICAgICAgICAgICAgIDEsIDAsIDAsCi0gICAgICAgICAgICAgIDEsIDAsIDAsCi0g
ICAgICAgICAgICAgIDEsIDAsIDAsCi0KLSAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAg
ICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgMCwg
MSwgMCwKLQotICAgICAgICAgICAgICAwLCAwLCAxLAotICAgICAgICAgICAgICAwLCAwLCAxLAot
ICAgICAgICAgICAgICAwLCAwLCAxLAotICAgICAgICAgICAgICAwLCAwLCAxLAotCi0gICAgICAg
ICAgICAgIC0xLCAwLCAwLAotICAgICAgICAgICAgICAtMSwgMCwgMCwKLSAgICAgICAgICAgICAg
LTEsIDAsIDAsCi0gICAgICAgICAgICAgIC0xLCAwLCAwLAotCi0gICAgICAgICAgICAgIDAsLTEs
IDAsCi0gICAgICAgICAgICAgIDAsLTEsIDAsCi0gICAgICAgICAgICAgIDAsLTEsIDAsCi0gICAg
ICAgICAgICAgIDAsLTEsIDAsCi0KLSAgICAgICAgICAgICAgMCwgMCwtMSwKLSAgICAgICAgICAg
ICAgMCwgMCwtMSwKLSAgICAgICAgICAgICAgMCwgMCwtMSwKLSAgICAgICAgICAgICAgMCwgMCwt
MQotICAgICAgXSwKLQotICBpbmRpY2VzIDogW10sCi0gIGNyZWF0ZSA6IGZ1bmN0aW9uKCl7Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2OyBpKyspIHsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNo
KGkqNCArIDApOwotICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMSk7Ci0gICAgICBDdWJl
LmluZGljZXMucHVzaChpKjQgKyAzKTsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDEp
OwotICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMik7Ci0gICAgICBDdWJlLmluZGljZXMu
cHVzaChpKjQgKyAzKTsKLSAgICB9Ci0gIH0sCi0KLSAgbWFrZVZCTyA6IGZ1bmN0aW9uKGdsKSB7
Ci0gICAgcmV0dXJuIG5ldyBWQk8oZ2wsCi0gICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUudmVy
dGljZXN9LAotICAgICAgICB7c2l6ZTozLCBkYXRhOiBDdWJlLm5vcm1hbHN9LAotICAgICAgICB7
ZWxlbWVudHM6IHRydWUsIGRhdGE6IEN1YmUuaW5kaWNlc30KLSAgICApCi0gIH0sCi0gIGNhY2hl
IDoge30sCi0gIGdldENhY2hlZFZCTyA6IGZ1bmN0aW9uKGdsKSB7Ci0gICAgaWYgKCF0aGlzLmNh
Y2hlW2dsXSkKLSAgICAgIHRoaXMuY2FjaGVbZ2xdID0gdGhpcy5tYWtlVkJPKGdsKTsKLSAgICBy
ZXR1cm4gdGhpcy5jYWNoZVtnbF07Ci0gIH0KLX0KLUN1YmUuY3JlYXRlKCk7Ci0KLVNwaGVyZSA9
IHsKLSAgdmVydGljZXMgOiBbXSwKLSAgbm9ybWFscyA6IFtdLAotICBpbmRpY2VzIDogW10sCi0g
IGNyZWF0ZSA6IGZ1bmN0aW9uKCl7Ci0gICAgdmFyIHIgPSAwLjc1OwotICAgIGZ1bmN0aW9uIHZl
cnQodGhldGEsIHBoaSkKLSAgICB7Ci0gICAgICB2YXIgciA9IDAuNzU7Ci0gICAgICB2YXIgeCwg
eSwgeiwgbngsIG55LCBuejsKLQotICAgICAgbnggPSBNYXRoLnNpbih0aGV0YSkgKiBNYXRoLmNv
cyhwaGkpOwotICAgICAgbnkgPSBNYXRoLnNpbihwaGkpOwotICAgICAgbnogPSBNYXRoLmNvcyh0
aGV0YSkgKiBNYXRoLmNvcyhwaGkpOwotICAgICAgU3BoZXJlLm5vcm1hbHMucHVzaChueCk7Ci0g
ICAgICBTcGhlcmUubm9ybWFscy5wdXNoKG55KTsKLSAgICAgIFNwaGVyZS5ub3JtYWxzLnB1c2go
bnopOwotCi0gICAgICB4ID0gciAqIE1hdGguc2luKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7Ci0g
ICAgICB5ID0gciAqIE1hdGguc2luKHBoaSk7Ci0gICAgICB6ID0gciAqIE1hdGguY29zKHRoZXRh
KSAqIE1hdGguY29zKHBoaSk7Ci0gICAgICBTcGhlcmUudmVydGljZXMucHVzaCh4KTsKLSAgICAg
IFNwaGVyZS52ZXJ0aWNlcy5wdXNoKHkpOwotICAgICAgU3BoZXJlLnZlcnRpY2VzLnB1c2goeik7
Ci0gICAgfQotICAgIGZvciAodmFyIHBoaSA9IC1NYXRoLlBJLzI7IHBoaSA8IE1hdGguUEkvMjsg
cGhpICs9IE1hdGguUEkvMjApIHsKLSAgICAgIHZhciBwaGkyID0gcGhpICsgTWF0aC5QSS8yMDsK
LSAgICAgIGZvciAodmFyIHRoZXRhID0gLU1hdGguUEkvMjsgdGhldGEgPD0gTWF0aC5QSS8yOyB0
aGV0YSArPSBNYXRoLlBJLzIwKSB7Ci0gICAgICAgIHZlcnQodGhldGEsIHBoaSk7Ci0gICAgICAg
IHZlcnQodGhldGEsIHBoaTIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi1TcGhlcmUuY3Jl
YXRlKCk7Ci0KLWluaXRHTF9DT05URVhUX0lEID0gZnVuY3Rpb24oKXsKLSAgdmFyIGMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgdmFyIGNvbnRleHROYW1lcyA9IFsnd2Vi
Z2wnLCAnZXhwZXJpbWVudGFsLXdlYmdsJ107Ci0gIEdMX0NPTlRFWFRfSUQgPSBudWxsOwotICBm
b3IgKHZhciBpPTA7IGk8Y29udGV4dE5hbWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdHJ5IHsKLSAg
ICAgIGlmIChjLmdldENvbnRleHQoY29udGV4dE5hbWVzW2ldKSkgewotICAgICAgICBHTF9DT05U
RVhUX0lEID0gY29udGV4dE5hbWVzW2ldOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9
IGNhdGNoIChlKSB7Ci0gICAgfQotICB9Ci0gIGlmICghR0xfQ09OVEVYVF9JRCkgewotICAgIGxv
ZygiTm8gV2ViR0wgY29udGV4dCBmb3VuZC4gVW5hYmxlIHRvIHJ1biB0ZXN0cy4iKTsKLSAgfQot
fQotCi1pbml0R0xfQ09OVEVYVF9JRCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvM3gzLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzLzN4My5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZjFlNzQ0N2EzYTlhY2E0MGE4MDM4M2I3NTUw
MDE3ODk5NDFlNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjgwNgp6Y21WPFMz
SkxYelApPGg7M0t8TGswMDBlMU5KTFRxMDAwOTMwMDA5QjBzc0kyKi05ZWwwMDAwOWE3YkJtMDAw
WFUKejAwMFhVMFJXbnU3eXRrWVBpYUYjUCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1v
eSlYSC0rXjdDcmFnCnpeZz5JQmZSc3liUVdYZHdRYkxQPjZwPHo+QXFmeWxoI3tmYjY7Wih2TU1W
U34kZUBTPWoqZnRnNjtVaDxpVkR+Vgp6PFJQTXRnUUpMdyVLUERhcWlmY0BfdlgkMXdid3I5dG47
MC0mai1LPTQzPGJVUThqPUpzWGB0UjtEZzcrI15LfkgKekshRk0qWn56YnB2dCVLMntVWlNZXzxs
UypEPFolTHo1b0d1KCtkYXl6KWhSTEZkVD5mNTkmZ2hUbWdXRDBsOypUCnpJNzxrQzZhWVlhanpY
cFlLdD0oOG90UCQ1MEg2Y19WOVI0LTt7WkBDMEFNRzc9RjxSeG8lb3IxMFJVVCtBciUzagp6a3BM
aFFXciMhb1hnZElgJnNLXj4wOVlecDZsUDFySVJNeCMwNUN+Y1c9SF9BdypiSi01RFQmWjJuK3gp
UUhYXnAKejAwZXNnVjh8bVFjbVJaJTAyRF5AUzNMMTZ0YE8lYzAwNE5Jdk9LdllJWW9oNjJyWTMz
UzY0MGBEOSVZMkQtPD9pCnowJTRqIUYyWkA0ODhVJTE1OCg2NjAwNXdvNiVwV3JeWmpfdjR6QUE1
SGpjSXFVb0dtdDJMQj5yViZuZWgmI1ExaQp6MDA3fjFlJG9DY0ZTOG5lSXxoSmx7LVAhQjFaWjlo
cG1xMClYMGlgSndFJj4kK0U/PiVfPGxTKk1XSytuKzFjZ2YKejxrKDhZTFIoP1ZTQUc2eCFlNzh3
e2NRUHVKcEF8ZDtKKUd7ZmloaXpNK0VyYiFwIXRjcjV3K2EzNH4oWT04czRHCnp3K3NMTDluJkpq
Tm4qS0pEaXFeVTVeO2AxbnZDLUByNlAkIWt9MVV7KCpJPVEtekB0QktIb0l9dXhkVTVkeXlAdQp6
VTFKMEdPRDdPbWJpbV5HMDA4cDRaXjZfazJtXnA8Z1c9RDJ8TDtIak4xIUREZk0hWE9hUjJ+Ykw/
a1gkJUNrU20KejJtazs/cG4pb3xLXnllSjclYWRCOUtpK0whMytGZ0hpU1lYI0tKLWxMSkRNbjlD
QmJPdGIjJSloUnZgWURxdF92CnpLcGl4fFFEfXlmYTFKaVFSayNqNGExWiluMiVmPHh5bnpWPkxD
NlJiVklrVXgwYitfK0JhUjNjblQ3WnYhQUp4Vwp6aXpGYiloIWp5R09PWjg1RjthP0RBWFB7bUA7
ITBfSWZxPEV4eyo3YDA1WEY3aFArMkhsITNCUUo9NkBmTCVGQ28KejhpWW9vMygjYkFGYEFEU3Bx
dFFndj5IOChIbGdSeHQ3czN9azNLYGtGdT4+LTJRJFFNRmZQVyFMYXtoMzM2bz5YCnp1X0NNdHRI
djZ6UjsmWk5pUz1YOHYzQ1IjZmtuVXhIVXhKPEFZbVJzTkxXbCpQU3tBT0FSSHQjNSF3a2kyP0s7
dAp6IVkzaz1zN3RnYXgpSiVyNy1CTHBoZ2U3fkJpMGcrNkU2XlpoKHA5VEJvY3szR0FGcl4wIWd1
P1JNSGFDTSQmRmwKekJrMyV1bj4wdW9CYV9NNldOV2VxSWd+NlFFNjljOW8jZXloR3ZwaU9BQFct
YW9uazw3cjEoP2ZDe29JNU4qVSE0Cno8dXY2Nld0Y0tTUmltMHgtS2UyZDVqQnJtTGFteztRbTt7
bXMxcjFHbm1Oc2I3RC1FYHQpaTlGOGZYYDJfaTMtXwp6Ymg7N1VsXiN4KSZ7eHZTPXx8fDc9bVll
MzM9TWBBZ1U1KHhDPmZnPTJOLTc9Y05uampPcnt5cml5Nm1NRmdHI2wKem5DRj1mblF2OENEeisr
bzZfTHNjbH1lUStsXlpIQVJIPj9fc0B8IyNScjZLTFJGQTElUSs9KlJSV25vTHNSYDdVCnp0NXZG
PFEwcjQwUSlqNj1zRTRYJnNCY3QxcTwmZmJpM1ZCMk92NnRAcSowKTtVKm8qU0FQWnZ8dnZAMmFZ
WW5UMAp6YiU4YStDYjctZ2UwRDBrbkVmNVFpI0A4VHAqY2V7Tjs2bHBRdUNCJUtMX0tPYXJtNWNQ
Nl84SXI8ZTE3aXJ5Nk8KekRkSCZgclpofnNGPWJxOXMrTzBRU2dTfkBRTDlKbXkqOTR4cj02eX5N
WX4hMWZldH4oTisoPD1NYHdARDEpYitwCnoqO0MhODNhMXVMSnYjTlNFfjt5Izg9PD5JY2ZXM0A/
d0Zwd1VWeHJWWj5RZFF6MzJLSWVKfWt+e2NaWkVeK3lhPwp6MkQxeiMySE9uSTcoQiVfYWM/e3dG
VVE7UVFBMXRCS3RyV3JtMF8zUmdwcys/SmZxYntqWWJjUVh+dGFSQjsjJHkKelpOe1N9MXx9Z1VP
SEp4Yz93VjNmeHV6K21KNGAhRiRJWjttcVJyTnNISmQjIypEfmp1PWJQNz8tP3Z+fGN2PnZCCnpz
SjZJZU53Vlp4cmRqVGB5bCNiQklhI0d4UmEjeE1NeTtLI0NEeXlHeVFkTVN4bFdUI3REZT9wIT81
d1QkK29HdAp6OEw7S3AySFVRLVpNSj0zWEpRdjt4NWNpKj92dVRmZVkkOyh7WEdXX2h1SUZSOWE8
ZkpiRl58NEkjeFF+biREYz0KektZaGpZbWd6NU5Ta0RtOCpmWm17NlUhO1lYYE5HPig/QDMpWFNz
OE9eTjVSeU9NPVRUbXAoMz04Xit6cHoycilDCnpePkpPe2RlWmZzbzNvcTM/V28oWT9sJGdlP3VY
bzslcnVgVm8+Pzw8KDhJXz47OEVxI0tNUzlnRmwqbmVlb3NTQgp6Zm9IWW5CUUlrd2t5b3dQdSh6
ZG1zYHB7PDdlNGtyYS1aV3E8MipPc0dUdkVWJXMwVGQkaFhUKyEqOEJuaDJLTWUKekJtWlJvZGpI
Vj9yK181Xlg5SjBXTDRqS1dgfWxmJUEtfDQ0SUBATFR2ZjFySGpHKHplNit3QEp0JUJ2anRzIVgw
Cno/MnhTP192ZV8tazxNdWpnOzBMeiozYnVHPTMkRyZlaGVwdGhsTiokS2FPeVNTUV5uV21vPDBN
KyhVRVVNRVhSUQp6TUJiWmNGOzYrS0VsTT5pS0JfS2lKbFokOUdgY149RUBvTkcpbVdXYU5vLTNU
SVc4KSRIZzBVYi1+OD9LaHZKPiQKejMqJm5pbUBtaihhQ3hFNSF0e2x3N081XjBFSU83ek9vJmM2
bDwrfGlEeVNCV0NHcnpAQzV7U3QhWDNoQUF9YFQ0CnooVExiWFRxKyg7QDw9TDhkWG5zc3lmdHx3
I1dTVFc8KyszPnNnUyUoNE5UcGVJLVZBcWJ8N3NzSnZ6TkhnT1pWdQp6YVlDdmdPX1Ixfj5TeUw9
Y0ZVfH5nfGh5fFppfX1zOStkfmxZcU9CNzF6OVokd25DPXBSOVl6NERoSU0+V21qZ3UKeiY1Nm82
bWFDcEMmRiMjeSVHOzFQb2JSOWk/R25OZztnWXRjaEQlcDE5YSFlUXRaRiYzSmFLdjMzZ1o8OER+
NDdFCnp0VVMxaXdrbURhUHBqPSRtIyUpakNWRVk0Zm5MR05nMkEtYFl3SFZEM2d2fTs+KWhBdlR+
QW1xUz5McmBgaTdrdwp6Sns1X0l0YHlyQm1sYzI1REJPN0U4OzVWb3puUj5XdzVoQWF4biQyfihx
YCVBLVl1UzY0d2tCeT05ZG1gNGNYZVgKejRjfUlAP2UrRlcrYkBeUkRCSFYod25NcTJ6ZFgzU1d2
OXVgJXt4Qy1xKlV9JmBjeVhWKCVyUlQqWjZNSD9pK2kmCnpfQjhDKCtnclQle1hXVVErZkBOb1Ax
Uj1BVyYyNnt2LWR4KWlLXi1ObWl1ajh0eGohbT9aKlNzMU57ZGg0en0wMQp6KVlUbypKeWNTVSkr
XzVyNCN5dzl7KztpNEVlJHBlUmdJais7djtaR2RGMUskM0UlZX40TGFJKGpDLXUlMmgkJlIKejlj
TFhjWUNAWHdubnMmYm4pX1F+VGU/cm9LR0R8ZC1nXjg7K2FDe3tHKDFeKE83bTM3WTEtKzYpMDFj
TiZ5MWF3CnpvcWN7VGBQXlhKcVBCYklXNnN9ZDR7el9mNU9tP3ZNZ05RRUpHP3YyVD1LWWReME0z
STZJWnhibnkpJXZaUiZMRAp6SnBQbEBQc2g4UXlQQkBLVHgrQFJkY0MhS1g3fWtFbztTfGpedTJs
VTdYUX1PbztmfDt6NExsK19yPkAxLXhsM3wKemF3cS1IJWUmY2tDK0BBaFByUDZCSzx6PTxMKjBr
ZktVQENYKnplcWJZUVQ0KF5VPlQjX1hkVDcmO0Y3MWp9Sm95CnprQ342bGg3RUA2bztXQF5JcFJO
WntwdEx0TChnUS1DWX40bXFXO1VTN1p4dm1ffEB5eiZlNTNCcF9sVFBsZlB8egp6clR5eF8+bHZA
eCM9XiFQelI3cXFGPCRnbWB8WkpaKzs8KUNxdSZvdDxhezgxREYwfnJ2R3I1WHJ+OHVgbGF2MWgK
ejFETnl0Vj4yej0wMDAwV1ZAT2c+MDA0Uj0wMDRsNDAwODtfMDA0bUwwMDRDYDAwOFA+MDAyNmUw
MDArbmwzJkZ9CnowMDAwWE5rbDxaYy1rei11PmstODIqVil5fEl1LWdqZkVLTDFCd0Z4MFJSNjMw
RFJSNGB7UGFJTDt3SCkwNypxbwpJTTZOPCRmK2t4dWlVMHJyCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvYmx1ZS0xeDEuanBnIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvYmx1ZS0xeDEuanBnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzBiYmIw
MjE5ZGI5MTAzNWQ4ZTM3ZDU2YTY1NDk4YzEwODUxYjZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDMxOQp6Y21leD08TnBIJjBXVVhDSHdII1ZNZ3xXY1djZEcmTEJfYyNITClaJE1X
SDtpQnR5YTcoPkZqTktUamMxIThiQWEKenw3YHxta1huaVckUGtKUTBCUWJ6ZkkqT2hmc3VpY25O
Zio+TnN5NlFrbiNUITIycjVuNypHS2hQKl85JlU2Y1cmCm03LSRUdFNgTSZjS3tRY2RweGsyTVZQ
KnRjIXp7PlAmKEsjT3t5fV5IfEM8MVpCXytOOQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL2J1Zy0zMjg4OC10ZXh0dXJlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2J1Zy0zMjg4OC10ZXh0dXJlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTc4Y2ZlNzk5NzliODUyMDJiZWMxOWI4YTQ1NGU2NjkzNjFlZThjYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKbGl0ZXJhbCAxMDA1MAp6Y21YQXZjUlpXbCtzN2tUP0FVdmNxSDM0NFIlfUlX
VXV0aCFkKTN+MVE9PTVJcyNjQktkbHByQEN+OEhpNihlWkcKel9OMmUoazMwQUlFM2YtcCpFIWV1
VDxfMEcoOXUjUUEhSHh+MDAxTn0pUmdvOTA0JlQ5enlgdkB7TjdjNCtReTZsCnpGTz1qQnswb2pr
ZzBqcEUzeTw1VHBaUWo2XzApN3F0P2dfNSRPYkU8cn5CWkA8MEBoVSZyJjBjQSE9TEI2QkF5PAp6
UV59bl54I3sldiNaeGB1V3AtY2xVVSpPYEpCbykoRTYrdEIyP3U8PldsREVSLTV1OWU+bF5OZFR4
e0x6aEE1Q3sKeiZhQXp6PmxFQkRYe3FrS28/cEs/e01HMEZhRGwhI0dGSmpjXyNzS3gyT2YmakAw
VXBZQGxXOCl4Mk1Jb1VsQF8zCnpfdE5hcVklVFQ5ND9OTkZ3bGFORGF4JDhVZkw1MWZ1WnZHRl5R
U0VQTGhzSiU+Z3JuY3M8SF8we1JWSnBVMGpAPAp6NXVGRnNIS0JJe1dURDhzZWZJO1lPTVE3T1dQ
eHtyMiM/cl4tQmJyeEcrUSo3e1JQRSlgQDkkTHpEQTgyeW5yc0UKemUyazJZUl94XjdZZ00zSFRV
K2FAPF53cEdVSXc+Sk19dXtQaW8hXzBzYDhYI3hoeXlTSVcoO0t1UXY0ZGJoSTgyCnpLQnB4YF41
bkBBUD5lIXgpKncyQjNFfX1MRD1SfXZsZkFiTHlgcm8hczwtZ0hTYXgmfD0jcFokWjFrRlRtKz8+
OQp6NzR3SVlqaF5laVByTlYtbnRrVXhYYTMkb2U4cHZNbEtPMGZWKTFre2tjeHU2KHBrK1ZYXyN8
TyV2NXd2N1hDKUoKekBvdj49KnA9flZII1kjakF7ZXxmKyllKV9XbTQ+JmBLRnEybT1wclBJO3ps
SFAqPEg9ejNPYSFlNUtEPVZqQHwpCnpZV3MjYk9TSWVCP2ZnQGRSPyVXcmJ1fSR2JXh5Ul5qfShv
TXhwdiF4K21xSVVQN3NqdGZwLWh+I3JQeyhaYDFWJQp6cWcoc3RaZjVVVG5VMz9gWVVeJkp4O0Bf
bE48dnIjUWpTeGlReSlMdEh0eT9kajx2fWdHT2huNVlCdTl1O3ZpdUUKejRKVzkyTFRwT3pIPD19
Q21BbkNLdmdvKE9RcHVAJi0mTjE2OTMxNHxJYz58cFcmOElzKUZ+PmJXNz9xPE53aCtFCnpmVUkl
KnJCOyZaYjlleFk9M0kwZyF2Q21jNXFYV01qfW5PO1dlR2FgdHw4Uihfd31vc1dkb19yVEJMaVF8
RVpDWAp6OF5YZlBuM1ZxJFpqWVZLPHw9KW1UeFprUDtDXiprejI5ZnM+OFgzZW1AbiM2WGdZeSRX
JFZ3dElnZXVIcD4ldEsKem1+Tn5VdWRlIXpgXyU8biVVPUlBcDlLPVkzY2R6MkJOPUh1IV96Z1VL
ZzN6eSFYdW1YSmkkWkpifilndEd2aiU+Cnpsa1VxWCtSdHZVM3M7Xk1xVk94OWhBI1JKSilwTUYo
UzYtRkdidTFfWWJoMyYoVXtsRT9ZOU1mQXJDdl8oPkdldQp6RVJxfTxAbnpOMzZ9KkluaHYrYEh3
YShPJmBAZzN4TVZHKFUoaDFuZSZ2Sl5ZK0tJZDNvPTdpdFY0WXZjJjM5TjIKeiNiej8jTjM7JDMr
JHNFOHhrPEFUPStsSWRNc0YkVHVvaERkcVdZZkBXdTQyMFVVYSM/cnhncXFaK0JHSXRyUXFQCnpi
VUx4KEBjJkV1Jn0tZV4qSCktY0RodmJ5SiVBaXM7bjs4LXN8OXJBVmw7VTtfVWJNIzg4ejdiK3VR
cDs9KVRaWgp6UzshYFopcCpWbU42V1glX1MlenFWKSZMMSpOZnpZRio8P3shYXBsWXJIbEk/Pndp
O1hgeHBidzY3Z3RhUDU4PCMKekUtNntvKlQtNlB8Rl9+e1l3U19jP2FXe2Q1JkIhPiNIVzBhTVBP
fikqMjNEfGMqeXJuZVoxKmk0O2oqO3Z3ZENgCnpmQ3NXWHFVOCRhclB8S0hGM1hAMHUhSjJlXkcl
VjtsYj5ecUxjWkhWdjVhe0x4byZnMysheTNxeUl5N0t2RFRLZQp6X005MnpFfWQoNmF8WjEjYGBz
Wk5PKkhQZXNsKGNPcU5zeCgzREtiPGJCS3E+Mz1KSXh7ayg2IXFnPUVJSyt0UGMKekVNZ045dmtU
dzlscCtsfFNPYFVeQz9WS2AyP2VqTC1yKk9tQENMPEdDayt6PSlaVHJpUnhUTWh2bDh7YWAxYGtj
Cno8UkVgam0tR3FPS3NpJitIMmppRDZFT09yPnNtd2I/UyZ5ISk2ZThNJnMqQC00WjdhbSk+aEpj
MUBCMlZvUitabwp6azcpRD5fU1EhKFh8aVUkSll+UGApfUp6e2RDUSs2d19BXiZ6SEEhV1kreV91
dTxLentwLTxNTXVSRFYzVT00REUKelE+IUtXJWQxYnRmV3B1alBse3B5OWhOdH1JO1YySChzczBP
S3wwe1NUOVghJklxfjNxNE5EK2MjczFQRGBLWS04Cno5VyVLVWg8dnt7QClpcyhrbE1vYk07OWND
bkM5Y0liZCVwYS1vVnt1UWRDcllpQyo9ZHtAISljZCgtTHhJUnU2YQp6akp4bmhaOH4qZG5yTSVQ
KXJIeURCSnxzM1YtVUphcSVtN3AkZEk/OSVCJXg5dn5ORUxxVyU7eipLTCo1SkF6aSkKemopJkxS
O141d2xXfCEmbGtATE5RMCVxYzVVKXAwfktMOF5tZyNPNWw/JGtCQXU2cmBTSkN5NHF7ZkFXZl5K
N0AhCnozaSpIM1M/eHF+WGs5QV87P1lSIVNMd0o+Nlo4Zk4/NFBRd3hOdyhrRjJ8OyY3RExPUUY2
TXB6KUxCdV5JV2o8KAp6REtvOClDWm19KT9fMkMpOUhSO01eaGs/ezxFdVB+OyU4Q3NyNCp0YCVF
TEBTZ0BnUE42S1BrOCZiSzAka2l4PmsKenFqU0xyWCl9SkUySTxAMDRRUTI8O3dBQVklQiV6NiQh
OGJwbD9rPUYpJCY4SG1GbCQ5IXwqS3gxYCshYUw2XmQzCnoqQFYyaUB3fGpLQzE2MUQ/Kk9fTTBW
KWdzTy1fPkshOzIxREdpMFVgaGJ9PTVTZXtrVz1hNUpjeyMtJn0yblc0UAp6VWlKdjZucTFeVEZH
ezdSUkNRa2pqMEU9WDUwblo5aHVXQXoxcG1MaGtGdGl7Q1NvY2ZSKVAxQCZAO05PayhyeHUKek1g
V2Qrb0o7cFchKnEmdFIweVpnKjIhKU5EVFJqWk9nbTElRWZ+NnhnNG8rTFpnWkx+VyZaR0t4dzwr
cTsqbGA1CnphY1dWaC1QViskYzI5I0p3PkAjKUQ3O2hGclJ+amFze1I2JjdFUjhkUGhreGdaR0tD
d2FxSHs0RV5GNyVkNnt1YAp6bF8mRCVtT19xTmpPcmdMNGNuJm12PEE7aiY2K3RRaD41Y2Eyd01y
Kz9OKDdlbWk2NU0hQGxVJlJ0YUQyXjNZTSoKejRpVGNxYFdje1QxKVg5Kzd0cjRQQE5MJTUwRn1C
Zy1iPSNYK0swPUY8VkZoZFA2VTtuQm5BRyRSZEozfGVxcEJ2CnpZMkUwTEFsYDZyQitpSk92QUF9
U2h1alY4USs9YG9xSHFGVW1iZ1B2SE5oeDVlZ0JXREgzc3wlMks8SStBI3p7bwp6R00kSDs1PXko
ZXF9blB5WCkzYEdWLUc5aEVOR2t0KmUzWTUlKmVhJlp4cXw8I0NiMFowWUxYcktgTyFPem8/SzEK
ekZ9eWFOQExxUztpPSpgdjhCUntOJHd7SEgqLUFrJlFXenQpQzxWSykzfFhoXjVLPWxGcFlec1lQ
MDtMO3haSSRNCnpTezFXKkRQODAydnFWSXRhcHJzbUxhXmN3VHI1TkMwPHArbkROOW8rOCkhaF5h
WTZCZCgqXyUjV1NMVm8qKl5MaQp6bGQxdjhtdkRXfjNoP1MrYG1CSUErYmc9ZEFybHcxJmdtfEM0
XlhWXi13eSMyUTZfRXZmUk5nPCQ5fTx3V3s+UysKekxlMk8mRHNuMH1uTzY4ZWFxbnEyOEp9Xj17
RU5AeHUwb1NCMERHbzcjODkoTFptWlAmO1EpJGZiIyF6WElrTmVPCnpieEQqbUpDeVFDRHByYXBR
PmlgSTlRfmJOeT56ZDVwNEleWHNyPi18OU98P0BXTk9XXk9Hcmp0bTdHezxtN0c/Sgp6PyFaMih0
JG02M3IxdWElKXxkTihnRG53OWYle3UzbUlnKWNgPEZpVkU2VUBrcFo5bXs9VD5fQTAjPz51SlIj
K3QKejEqdFEpJDNgcyViK15gTmNoYXVBK3p1eGBKTzlGUlFSWlErIUNNV20yZU1HPVA/NDU7S3Bu
IXJ2ZTY1O3l0MEAtCnptd3FhSVVxdH5PS1lSdVVnMjZoXkBUdXIreU5ZNitsTUNSUElCeGNJbU4o
eUBrWkdjTnBZN154JlhsWn10OGJkcAp6e0xMVWdKVUpTITtwN0Nod0JBMm9VJWpuWHRzMTBFRmZZ
ZihtcCVJNlEwP0BBKk0hRHA4WEw8ZEtNZFcpeFp5WCgKek87JWxmdXN+USEkJjlXajQ3azhQKXpx
KXApZGRNd1lwX0hkUChUNVZBRUVqTlk2YyhNP2s8TTJCTUpSbTt9Ul9mCnpEb1ojRV5Pc1JaOEBE
JTxnMzQoYzBLe1V3PEAlMnd6KHJzN00yZTRWVTB+KF8wOyFwPj9HTzN4eTtwdDJMLTd2Pgp6TXQj
QDkwR0UmVzRabCtRNzRlQUROMDY3aytPaypNYWRqTyNBNT8rTlkmdlI+ZWg+aFZUfUdybiE2JU4+
XzAkU2IKejVZfC05YmUxUFhGdmREYVNiKiUpcEhpRVNecDd2blRJQmtMVT1NUCUoaz9SYmk3Ri1E
V08hJlNgcGRuRi1VZFA4CnpQezUySHh5KShYYj80fikmOFEjTWgpUEJwald2WW9sWk5Na2x7b182
Vj9GQ1lKTmdSeU9UJUF9Xj16VGFVNld0egp6Vi1tRVgkQWgwSF42Xm1iQCtRcWllQzYhO2FLMXlO
d0tqPVpeJGV1OzxEcz5DandgTEx1UiY7bnItNll5MjhPPz8Kenp7dEd0RXUhZDxSSkNaJW95IT9C
VWY2Q2BtWSNpZVE8JFRwPDR1KnVNeDMhKT4+dXhORU9KMUpHMktlckorYkFoCnp0TWA1ZGQqYCph
dn1oazZwVT9SUkEqUiZsUytteD0qcFpKTGQ/SEthQmt6PXtWKyQ2VnNeKCF7OVIqQkFIJnFoZQp6
X2NSdEZqIU1CektpRW4+YStqOW5YKnp0Q2VaUylIIUN9SSlLbitnZElhUXZKZGVeaU9IcnZfcyRZ
WDhEYFFCQyQKekxMT21RKzIyVCN7T3RKO1peb3xzTVFwU01veUpKVDR3bFBtYClNU20pP2dJZCMz
Q08+UGdubTg1d3JWNS1MZ3c3CnpJNjxpWmUpM1k2ejlPMilMeDdRcGVBcypJPFljQW9XSWtCZHZJ
Myh3S2pTK3E1M34qVHQ1cSNEbnxvTTE0VkJmeAp6PjdDd2VVcyYkNVM+bng/MEJ1NDcmaGNmdmhh
OFc0e3gqOXs5M3poMTdJME98S1VTZE14O2w1RUs1NT8lZUV1PEkKenZwPWp3YX1qfiVCMHw/SG1N
RSg9MyllSz9gUX10MjIma09mKSZmOHtTSz05V3A1NzFtclg5PU40ITNeQDdsP3MtCnpsQTd3WTQt
VU4+N0dzNVp7cWIrdytsNlNeSXFLZDwpJDw1ZDhEYTZAdjspKmJAVU9YeF97Wnt5Nz99QzN1N0pK
SAp6M09AKyk0bkRJTSpWTlJ3eztXIVpmfnVXZTJSNnJYO3pncFo1JnRgYjRZb2V9aHtKR2Jgd0BM
JVNWdT1rZ14mT0gKelowcyNzKGlpQGhGbHcwU3Y0ZGZKJV50QldIIXcqVnRtVDBKYXhPVldmbkFQ
blQyQ2BuIWxYVlV5QD0zcmlkJExOCnpOampyYWN3ez5xMllaWGBBWGt0KmN2bk5Ib31jPmNoPmZZ
dlJsKUImUWM+YUk3ck9VcXZyUk08NCM2byMxVX5uNwp6V2ZaaXoxfkk2aE9LNCpfN3I3YEI2MU8x
YUZYcysxPCspTWRha2ZeKXJhRHl4KW8yNU5NNzNebV91U1hrKSl0a1oKelJJMTB3QFdEeWRwR0E0
dFY/ZFcxRm9IYG5RRllSSmJ7aik+SjlucU8hOH4hQkVVTERodDE8TH52JiYhQz08Ujd+CnorWFFz
OEhGTjRAYjxKOTNhSWEwa019KVBqSipeUkwrPHU3N3NOS3NRN0hfMWchRUJvfCpJNSRPVVJEOSRE
U2JsPgp6IyVaMGx4e2BIfWN3PGk2Y2FyNit8SyExR3hObjIxP05gUWlIYzNZSG5JTWkxM25TZnI7
Rig7SmgwbW04eTteeDAKejUme3BqU2ludkJtYURYTXBTIW9lfEp2MEZtZzFxTmtVWHgmV2w7SHFa
ejxhJWMkPXRaJmQ5PT48YVl2PEchSTtkCnpiYVojPXtgPmluV2drTjc9JH4rU1kqZzNuSTFxXiZS
R313bnQwXiheeHVmfjN5YlA4SmorKE9heW1uO3VNNX5pPgp6Um5vJWZ1N2cmOUhWPj4yM3V3KXQh
bWQzVSRVcG5UeGx5MyRTQXJXcWR3Jjl5bUM8JE9eaGM3UGFXPSg3VmBgKG0KentBP0F4KSV8WCtS
P05pVnRAZyljVE1CNDswSCVkdWY1cmQlS1A8aXZzPF41PUwwQGV8R1FrYCtVdmdnPThORWtLCnoz
dF5IVjA9OTxPZW9YJUNTai19bEpiPEdeT15yWXhNKWolO18lTztSU3RPdjhDMHZ6e2NwUGdCRDJB
WTEzLWpGeQp6c0ZDd0olfGw+aGI7WCk2R3U8Y2I+Mm8kcHRPVCY7NVRUV2ckTGtMPT9hcXBpQDFQ
JjN3ZENjclpMPDBaKTgxIXsKelBhZW8zQkpCJl5SYUBkLTI5RTBfdzJYMyprYkhvP1hjdU5DISZJ
JlJvWnNGVjI/bjhHI0llIWFIWD1HVi15SWNoCnpJcC1+cVk7fnpiMUE/YkxFa2EkNkkzb2t5NmN2
Nz5VaVVpIVZNbH1kIUdFaVdON0VCe1YqV01MPWtDYFc7PnRpPAp6cHg4VFdOQ3gtPWpleFRHcCRz
b2thYjtJSmNjaGJBdE5eKHtGIzUpR3JTRn4kPTh3ZEdlQjgwaXZnJGQ/Pl5HNHMKenZaWjcqQVRz
ZG1KdDYxMSVeYmwxbm1ibjxzUFI/NFQlMVl0emM8P3pKJF44K2t2eEpAYDNTLVV1ck9hdGArTTJB
Cnp2QEY0IzlxTUNrdUkzVmRYKlo9Wi1OelZ0Q0A8U1RoV2VpVzwqSDQpekJjUU9tcyYrdk0xNilD
YH19PSgmM087KQp6Nkh+Y2FRN3QrPUE5TEU/RWpHTE48UGo8MF8wQFpmeXlWRm9eV3ZwQ3FnSXZ8
cG96LXpBbEhTNlBiKXQpRWdAV0sKelo3RXcrcShsTE56azY3aXk0Py0kIW1nMzFfdWI/aEl8VzB7
WDYtUDEwemloYURAKHM9Z3Zme1dGMkQyR0ZKX2kyCnpsfFBmMUd1fFReSkYmNDlsPnotbj1uIThN
cyFRN3Z6SVJYPnpRNklKVHI5dmM+THJPZHUxWikrT3hKajhyazJ3fAp6bVV5X3k/NmcrX1B0TEA+
RENaYWZUckhDUj1mayNLPTs1bW9WYC1MMEQ5OyMpNXh9QStUb2oraHVRKUNgbWxXNkAKemZhMXQ8
TiElPFlHSE0lO2p2YWBNOWBJejJTSG5yPFJ+JmI4UWphVjdaa1N7OF9SYk9jXzE4bnM/XkxQZHt0
KXlVCnorOTxQMVFxNnQrI0p8Y35XbTdEYyFmXzhASWo9cWF2KEV9IWlVVm1wZyh4aH1LczNAPTZQ
RiFGI1h4MCFxNEUwbwp6dWhEZVVYJkNJOG41ZVB5WjQxWmM3PmFiSiRJKT9nWDdnQzA/QmtIY1Zf
X0xhPmN2NkZgX01saE43ZWBrYHA+MT8KelE/WnY5KmBubURQWjF6PzR2R1pHbXxkZVpZJiU/eTNy
SW5wbyZkbS0+bDlkTWIpRUVHTClzfVNUMyVrX3xIcTA1Cno4Rn1XaTYyVjBQMjc8QWAzaE5oN1F0
Y35OVFZIUUBHdmFBUD9jZT5tXlkzYERYSWZ1fnlJckN5MjF1SXcmMj8lQgp6XzU9P0tOV2JkLUFA
eVZaIT8oZFFDYytHR0h1Y3ZtVlMpVHwqMSRqZy0mdExRJWVRKl8rVl9TfEVGcGN+cUpRdjQKelBI
c1pLd1lyamcqJmFIYlZIX2E/Xm85N2A0Z0krX3dpS1lUI2NjOFI+WH1MO24rUEw/QUc8ZjFYaG4z
WTVhKnstCnorYFVmTk1Yczh1OSNzckdfQy05d0chaWFGSEw7NzdwJlkpJmBsfE9AeWVKUzQ2N0hw
QEBWcEtQaHpHYS13R0U0TQp6LXteRTFlJjJXZCQ5Pm5VPDlPXlopfj1jOGxlakRycVRjQ3JwKi1G
ayluWiFHcCV4OCM0d1NzMVpNPjNMe0lGd2oKek5lUVglR0IxYzduVE5tUGpocjkodWB2Yjl7dnth
d2prUDg8bE8xYz9fZWJCeC0tKSN4LUFHJFRXRz89PWNmKDtLCnpTIzVzTXVnRGtXV3FzVU9rV2B7
SEFkQEgrY3dYPz56emArPXZUNCpYcV9VYjJOVHZ5MVZ1TD9qeXpYVF5saCNJcwp6JFNMc3xNb3d+
T2NCM1VEeWgjPU9lSkB6R3Nren5+R31LN1F4M3I3O0wmVGM1VSRzbHdzI3lGVT81PVhmLXJBfXkK
emYhTlM8NGFJN1RLNX0xXmRoI2xLUjhnLVM7ciooXmA5SjxkWDYpdnVLPFQpNm9JSHdsNlB6QUE/
WGFgbm1jSHc/CnojbDhqfnQqeChUO005LVpzYV5OZmBqKiZJVlMkcW1VKFE/Ql44SC1idTEmWm9Q
QjklYU0jS0xeaFFpdmVIPW9sOwp6azRCc1hkSGw1b21oJHpVIX5xLVkmQ2h4aztFVFI4d1pqeX5W
SkMlN3VvaiN8cnMzb3J7Z1E3S3Q9JmtsI2Q8cjwKek56bG8xO2FWcHdeej1vYGtAdiZ4aUpHIXZl
NElVPFY5YkhZSCM0aSo0JVY7TkQ4JjFFdnlMO14qazdTdHYrODA2CnpwRE4mY1ZkNWtUIWZ3e2lI
UzhNY05QbEMmaTZXXyE3KT0jXm4jMXBXSCVZYzlMaXtPZSEleWlOaU9sKT5UVUU7WAp6ZnxoVWdQ
Xnt7cWF2NXB7cFBWUEtgJTQhNmU2bHBJbnE5THVaJUVCezIxKjE0ZGs/PDloP0NKKTFFZztDem11
V3MKejFyamtScShffGMwQCMmITZCUF4lUTZyUjA7MW1ea0NqMzxWP0tCZiU5cmYofiVMKWREPUx8
VEktYFEkeFl+VGdkCnohLV42aGMpYjdEeW5HTW1ZckJDaVhAUlNIRndEbzZ3fjNiK0hpKiYxbDVS
Yj5JZiRQPEdBKEAocm9YJmNOaUJybAp6JXBacXJ3K3pPenUodjNgMEwzem5SI0ZiOUM7VG5Udz19
dDVHIWlPOCFnbVdhRmQ9Pkc5QGM5K1BLMm4oJEhMaEsKek0tSExKKU1uIV5EJklLNGgjZUBqbkJ9
PSFIIzFuM219KT5PXnRAWn08ZnYjeVE4N20kNlk8SlIpUkB4NU9QPFU+CnpZRnhpSCNtX1J3fDgl
eD5VI19tPXYtcmJ2cmx5TFQ3bXE8XlV1PWR5dSFmPStJRHMza1pFSjdRYitvSiYwaDV6Twp6YVVB
NG9JP3hhekxWUFdgRWhkLU0lZkdtcD9CVV57MWJYMT9QPGx2Z2RZJH1KRV53di1EekJ4djdNMGhq
PV8wXmwKemx0UTFVO35wSFgoKnczcDM4c0ZCOD84Wk13bC1RPDJTWHA2bXx0YyhpTkM+cEpyRSVi
bll+fmwzVG9+N3QyYDxKCno1MWA+aSEqJDUyPXQ8VGJ5S21NQ0dvSylHYVhqdj9jSE15aF5GXiR+
UUN7PXR6Pmd4N3gmVjZzdnxSNTZQOFNUKgp6SyNiYW1hOFZGXl48XkcxUD9RX3dVNUpteGtsTVFm
WiQ3Sm1lSCtFZEglbj5aUCEwK1pgSkNJcz5pT0pvJUNzdm8KekRVaCt2V2wzZ0BadXljPEF9SHVm
KEc5MyY+WSg/OG1NcH5vX30jRU8hbVp5e0swRHphX1ZhNUdPeWxQI1BHYVNwCnpMRSlEckUpfmY2
KVQyZU1TVV9hVUwmPSlacXp2LXI1Z1F+MVBGeFVaSEQ0cWp2Umskd2U4QE5wbjV1YihSZSl7QQp6
Y0RhJGFSKTJxe3NTdXU0Y2V5QkpoaFZfTjJJZXxaN3pANWZTaFQhWklRWWt5QHokNFVSQGN8cFVq
P25URUx6K2sKelRgaFk7eyMzfDUtfnltKDRoPGx6RSNkP3hWMzBHMTMxdGo4YV5qNzsla2ghI1Ix
QVFGOVhDVVZqe0lxMnRXV0VzCnprS1pnQmF4aj5DXjdVWW5FQHhMVjdgVlptOSE8OHhOTyNEWlVw
VCNzRDRuZ09QVllDNlJLY1pWKj5lLXg9WF5IWgp6KVphbWRocXM3RVpzeG83YDBAVz8mSUN7P21z
QTs0WitFJj9uK2IwRHZVOFM5Q14wYE4lPmY5RUNqJEhMP3swUkIKentNR35GUm12KlFoeHwkRDR7
UHxlNEdxKTQ5R31NYkhvXmh5cjZXalhMK280P1k4YCl6JmE7VkY1KyRKKXpFPHEjCnpxSiY/cjQ3
MTJzIXBHPFpaP18tKUcoUm5yYSE+bEc9WUkzdz5RdEBpdWEpPCh3U2QxalJxO1I4dlMjfH1ndHRk
JAp6NWYkTDRgYTBDa2daN0pjNTJrWXR5al8oeksqOWtUa0VzRk57dzJuZHNTeSZHTk8tRFRCcyQ4
I1RtZ2BzRD41WWYKejheZEg7T3J4fnRiMUk1THVZV3Zze2BuYntZPUhzKHFTKyZaVnBDc1ZZMCVV
QEdnJUBVIX0wd0JYMllSTURDUXo+CnpILVA1LW1ldjR+SCp0Nzl5dFhHUkFYO0o+MTxlWUJyfjFp
XlFZO0omZzs+JVVHNTtHNF9VdlNjdmtqenNPTWsoQAp6P2YqeF9xYjZMVEI+ZzI5TVlobExUNzJ2
Q0YpblE4bHpaND5lUihnKmgjNSMmY25iUCN4WVZ5YDthVD1zWThRPyUKeiM+aTt1eUdQYTZ6aCVQ
RDdmRk9MY29LZXg1TWxmS047bXI8O1I2OCFERFJ6IzBac1dDOEclaCl0fWwjYnNeNjw/CnpZUjB1
SWZER1lRVys7NXRNLWtQSmdiU0IkZT5DOytMdC1RPnk+eHVlX2s+dmItSDN9RlhePzsxU04jeCVp
eV5ebAp6JkhxN0NpKElBcihNZHQqWDY5QTIkK2FYU2k+c3soanlUaFJHeTJ3UUtrdGVBYGk4NHNQ
OXtnVmllMip6Z2pnPlAKeilZUVBtPWQwYl4rbUZKV0ZqLW85MFh0P2BKYSEmKzV1UkFqLUVPbWgk
cUFDPVNtZ2x3LXxAOEpwMV5kanteSXt1CnpnX0hkYEdBZVBkU2x0KEx7PjhmZT5eZVdrQGR2JHRO
akZgQjBZZnJUdUhhfTNaSTlwWmJsQ20qNngqYG5gT2Y2Nwp6Zlc/cDRjSylHVlZCISN6MmB8QmB5
WjRUcD19NHJUSSNUNDlAU19XZzAkdEQpXyV+SHZMd0pfdnBoMUdsO0ErYX4Kem1kZitPcE9ndG8l
R3JhPGZsPFlLenVAYV4jT0syTko4YVRCP2IrKHcpXnNZWHQqJWRJNm5XLWdXd1ZQdCZkKlRICnpw
a3dVbDBZfS0hbCQ1cEZpaH0zZEMrRj1yNFomQXVzNUlIQHkjO149SUF8dUUkbDZ2U3IhP0I9R3pj
Ul5yVEArLQp6TiY9elktZU0tRXJuOHFmcTAtKUpAQmxTQj0mOVBQNHpzJE95Klg+R292ZDZGRnlO
aVIrVClqOEsheGhHe2VITnsKelA+c1MwIS1gYEFlUz9hQ2x7Pis5S2h3d1NzZSFBQ2xFPEJHPCo0
RFYqM1hGeCFeSiNgYTJEKGdrZXdta0liXiRHCnp6NnBMXiNsNzkwXn5zTWt3VjVwQzR8Jm9mSGl7
UVdWflAjYDlaNWVxcFlkQU4zdClTNGc8c0JSTC1NRTUoSHlvcwp6WCRyajFULX0wPTR8eFYwZGcp
YT5GfjhIQlgrV2VQKCh3TzZnNTxIKDdEJTltVlhTT3M7b3BFMXM9a2s0bTckTksKejBnYWtheklv
X3ZWSV9WcCNfZHdqOXB5R01PS0F8MGUrUDtOUHw7dWhsSSVeWDU4Z2xEX3wrNEgtdFZsZFNnYlF8
CnpeQk4rbWhaMiM0d0VISmw7SF96M1A7MmtDPkYzVjdpcDs2X0VVdHZuIyN4STFpNEJ1T01wSHQx
dyg0akRmeigoWAp6MlI5S2pPPVhTQDcpSTI4KVRgMXs4Q3lMUlZXcVpJRSVGQjRzUihgVlAzQCVq
UmpmbkFJdUQ7QCZofH5IaXh+WT4Kel5+IW48aj5MK0xASnRrPTVqcllSNTlsV1YhTW8zPWZASism
O25keCtgWl84eTR6P2woVXN6NGQzMlNSPil5bm1aCno4PzNQMl9CNGBBeG88NUlOMGAkXmkxaXUo
IWdxRmRCQX4qPShaI1AlYW51JHJ4ajc2fFNod1I1MGdiIz17MmdJZQp6ITw+SHBFVz4rRjFtQD1X
R2FHVV4/QTMpcnAoa3dfd1ItdG4rIy1JKkY1OzRvQj91bX5NU09NflBSezMzKCV1ZmMKemwjNXxP
WVglMj5aI0VBWDxVKVRVS3lofG9EZiFxa2FldyRPU3hFZW55VDg8cnQyMXFPR0ZLdWtBMiQkNDgr
KVViCnp7VlhfLWdYJiN8JlFOYWwjR2QxPjJAaUU1djRiM3FvYnp9KldnPzt6Q1E4aWR1PFcqa3U5
fjMzV0UtQ2lMSypHSgp6KUFIJTgha0p1JVJJb1p8MGdFXz9nT2dpc0Vua3oxemZuKDRWJVk8cE5k
NVN5bmNwMT1eV3clT0VzfjhiRXJeTy0KemQ0IXdSR0cwMERqdDZ+U2JpMD4ybEMhKllkTDdFOHxK
cStPeWkrIXJvbD14P3NtRD1sWFVnQFU7UDh1OE9WPFRXCnpMNEhAKlVqT21hV1UqKkZUb1h2NzQ8
ekJMc3pXbC0tITdEKztOUyhQWEVwQ0QkQWMoRUkhSEozOG4lPSFGUFNfSwp6Ukt4a2EmWkd5aSRO
N35mRFdnUjNzTmU9WmZlcGZyMmhjSyt5d3FSdUJyRklBPmBXSytKdjBeRjlnPkF6NHpZJlAKejA4
fiFKQW5rKyE2R312TihWcVUyYytHQUdAOT9AXmFSe1gxRHkpamhkVzJ7RUp7SDZmKEhfNWteTS0t
JnRyOU1tCnpGZiQ4dTBscHl8Xz0zYUctSEwkQGUpX1BDOVBUfnA1fXVLYT4+YXhFY3QhQlJnUG5+
SDJjTH5DMTNjKHElX1FwQwp6QWNeeGArQyNwXmxWRnA1dXApSGxqa3pZbUI2UjBBPXFEK3dhbi1P
YlROU2FJSWNLdmJ2cjRjV3greUJ8NyRSZEQKekhgbkFGQTR7ej5yQ1RnV1RyXmx0d1l6KVpLQnc/
SytCZX0+Z3dVZ25tYSNefTF2UzZvT1dnbXlGfkc/RW0+eUFsCnp0Iz9MKSMyMUcxWkFGOXg+RWZq
Q1R+bW8pNDg9VnI1ZlhRdiNCUTJEP0RzRVNpWUVJQyopOHl2dW5id0NjRF9Gawp6K0F1IyYkZHw9
ZWRCKmloTEE7NzFnVjZUQXlRQlMlKWhIc3BkY0Q2cns2dilhU2c/UHIzKDFUdjdsOyZHTUk5fFQK
el5RQGRpRyUjYSkrcXthMiY9VDIteUg+eF4pRmc5MlohTlVNbGp7V29zYE9aM0EtVHw9MiYrcXt8
Rn5EeU1hQmFWCnpRWkB1NFhFUVlOZ1JKTio4VV52c2pENW1JVG4ldFg+T3ZiJVU1djElPXhKYWJL
SHZGdk4xMDE3JEpmbksrcnYzJAp6bnpSPmthKE4yP3pgT2YqN2huPkpeeHk7LUFmMWdOKVljTyFP
aTNCZDhgeHRzYmtQWXRPR05sX0AqPVVuaTJIR2cKelhidWV4N219MVh2Pk5hVjRxTHhiJTV4WWxf
RWxwZzJWcCVqPHFhUVRINjJIXk88YEhIXkE+UFNMKElBWnU0b2tLCnpfO2xrUyhAK354JkFLNktp
Tzd0KyY0a1ExTHpaRjQodmBFfWpLNHlicD4+TXQ8IXR0ZDUrMVIxMU55QjBeb3drKAp6QmJ8KXBo
Zmo0YldjOyhYUihIUEVSeWRSKWN1WHpYKz58ay1waW0yOzBIUjF5Y3sxS3VpWG9+NDZWeXNYbnNk
b2oKem8odTJHc08qOXRkY2VTcF9GZTg1alJvckU+WF5RakRRUzJEQlheP30qdXpSVXVEKWtLS0l1
NTBsNGBOTUx1KV47Cno+cG0+PTJxRXAtPnJha05jYmZxeCMxLT5XT3VTMVBZYHxGTzMzfUBoMnMm
Zm0tNnhrekZJanVOdE1lbmRVaWArRwp6U2N+RzU3Sit9VkgrY1Y/WndeV00hS1AhTmRffTZCYn52
d0pEak1mKD5MZjtaKGNnQFkycGQjRXY1TDdWVm1ndiYKeldONWQ/bTxtYXlRSzBeYSk8KVMjXiR5
fCMmIXJyKTY7JHlzZys1SSZycT5YMm40ay18Kz5FUjUrNDxuaUxRaFloCnpoWG8rTXY5ZjA2REha
eWttLXwjd2xJJE5VYEliYkFIfFBVfmRoamFNQkVxXyhJQyFGWipNcEN7PmclUkVme0E0eAp6X3dS
QkdUZUlIU2dvMl9DeF4mfHVpeGtzJHpHU3xeMmkkSXslRHJ7SURIVVZBcFNAdE4zQ3VQJmgwdyhE
bFNrVkYKeiEzNDM+WjE3VU1YWXJJaWczZWxYdSp+R1FUQ0sydFl8eS1HQHJRIyNPZWhDX3VBMlpv
bT55eF43RFl6LWooV0FfCnowIVptODdvKjBye31qYiNPKU0/dGF3WiohRmJJLUQzNSV5WFIwdmF+
UHlXQGQmIyMqQkVVemNHbjJZWHt2VTMrWgp6IUt1Z1dWZUxTUCZfbCpeVClKOVZNKkhUbjw/amxf
JHh3eXQmNnJmKil1ZWw8WWh3dFFqWkZjQUoyQUgydEg3Z3sKemhlLWVLcHY2eHdqWiZ6Ul9BTHde
dT9YU19Ze2IyKyokNUorQD96WVhUKE9ZIUpDLW1zPzZHVDlqfnV3ZT1NckE8Cno+fnA7TilPcmtL
Jnc0REZEK0NSfW8zX3N0XkxxbmleTjNXR2s3YEpOe296WmtYYDVnVnFPUG09ZFJ8fUtUcH5sawp6
eVRpPVMpWVF+U1V3PSpxPE1KfndHUjhTaCEkU1AwM1pDYDZlRUN1X1B4QktVVzt0Yzw2OWFlKzVD
NWl5Z3QqY0AKejB1K0JCRUoke35yYSNaR1NtcGNrRV5vY3BIN3F+ZSgpYDVzJkZNIzw9akIyY1VM
KHphQFJGQ2I+SzQ2TE5LSm9JCnpCbWY4dW1Hd3g8RUokMyhxcXBrfSliP1ItbVJtLUhAbjdYZl8q
MmBSO1YkQUdoaGFKITE5ZS0rWT9PXmdtNj5gVgp6dGIjJVRDdTJVc3JffnhnZndBPSY4NW1Uc0RM
YD5VJDlCX15mYmc0Pno2V29Oe0NYdUs0Zil2JCZrX0BzWVhjVjsKeiNnUkF5Jjd+eF9wbENPPHVw
IWwtd1o+bTtDWkZ2Vkd6Qz1PMFN0ejlycTJ5OWloMDtaTGArPEtldHUoUExscEJDCnpwSU1SZV5Z
UVN8O3gyTj5vYj8qdkkpbTFhcDR6SGRMTmEoVTBPQjN5X319djYlJTd6QmtlYHE1RiFeQyZhZWlK
cgp6M3pQaip8NWVjNz9AWlVsZmdiWkMqbVZDZ3FhJjlGOHprZyhVTG1+U3cxQU41Vis9enFgN3tQ
c3xBVj56SmZZc08Kemh4QEEqYnxAZk1DZ0BAX0hhMiMpIStWJEkmRmswdV9+Qk1IOXsmPWRwYGo3
Pj89ZCR3bShBMTZpNWRgSWkwekJvCnpTQV94eElFOFBeYUojTVk4ISpZbGE5TWdyI3VeTX1JTz1x
eHQzME52I3BxXjlhcShtYShMOUA0ZD1GNylgMD8/dgp6Kn1xI3F0KiRGTV5TIUxNSmolfXRWTDR7
V1IlYitOYnZuRnVzd3lmRCNBSVpXRz13b09SUi0hRWImUnJzWD9AXkcKeiU+OUJXOEJyN3BXdCk8
Y0dXNzVISDxuLVRaJSU7RWc7UD5NIUwpQk44JDxBWT0wNkhRRyZHYlZ1V0c9YjlsWnN+CnpENWVD
P2NmUH44Q3BzJHhuM2pxdk1XdUdeR3ljWkZnQWBNKDBqb3cyblMmYUpRbVU3fjxJUHMqISg8YD9B
NH5gMwp6JipzT0NsSiQ2YVZDcF5wUlI5fEc8Y1BLWT5UOW1PZHckaTRuUHllYjJIUG1CendKSTR2
bGNPYXo7fW5IbjlrMTUKeitnVUVpMCN8Vnh3bVlCeDs8fHdfQlpnSUEkYyNxMC11SzRPUE9nIVB3
YytuSGRCIW97bDgjQiR6b25jdW4mUmhoCnpGWHlWYzlWWmEhMVRBTDc2aUdRdXFtIWtfeX5PRiZl
MkxuJXgkUzJ9KllPZ1BYbXR9RmkhcjJfVkNHPT0hOWllWQp6YFRNaT9rPEQ7U1ZhNTRpMVB2Y3ho
bEh0JWg1ZF8jdDVhbndDczBBSFZsSj40aks4ZkAhfVZ7bVV9KCNgRn10ZzIKelBhYzIjUUJeRE9L
dEd3RFM7V0NkJSpCLTNVJnN5Q3VBYT17Uz0pIWJnaGBCUEM0QjVtenl7JmJvRCg7bDZZc2krCnop
NGl1NnV1X21DcTR9SDsqOzBoQEtgXkMxYnhZfEQqKEczfEVncV4mIXFWfiMmfGZycUB+SjBrdEx5
QGU8dCFQMQp6d0lCa2YoP01RT3FpKldmYyRqYVFPeUprN2d9KWZUVVNwcFRmam0wVEVZP1lIRW5s
bU43fFZMfnNyPFZsX2Q7MXEKS3NaUE52XjhXeCh8NjFrJQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU4OTkxYjQ3NDE2NGYzY2U5N2NkZmRkMDI1OWJiNzZhMDY2NGVlN2UuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQKKysrIC9kZXYvbnVsbApAQCAt
MSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDA5IFRoZSBDaHJvbWl1bSBBdXRo
b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiBBUyBJUyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSovCi0KLXVuaWZvcm0gZmxvYXQgZnZhbDsKLXVuaWZvcm0gdmVjMiBmdmFsMjsK
LXVuaWZvcm0gdmVjMyBmdmFsMzsKLXVuaWZvcm0gdmVjNCBmdmFsNDsKLQotdm9pZCBtYWluKCkK
LXsKLSAgICBmbG9hdCBzdW0gPSBmdmFsCi0gICAgICAgICAgICArIGZ2YWwyWzBdICsgZnZhbDJb
MV0KLSAgICAgICAgICAgICsgZnZhbDNbMF0gKyBmdmFsM1sxXSArIGZ2YWwzWzJdCi0gICAgICAg
ICAgICArIGZ2YWw0WzBdICsgZnZhbDRbMV0gKyBmdmFsNFsyXSArIGZ2YWw0WzNdOwotICAgIGds
X1Bvc2l0aW9uID0gdmVjNChzdW0sIDAuMCwgMC4wLCAxLjApOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZyYWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRjZWRiZGVmY2Y2YzI4NGQ2N2E3OWU2OTM3MTA3ZmRiYTY3Y2RhOGIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZworKysgL2Rldi9udWxsCkBAIC0xLDMyICsw
LDAgQEAKLS8qCi1Db3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLWFyZSBtZXQ6Ci0xLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBUyBJUyBBTkQgQU5ZCi1FWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi1QVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi1FWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi1QUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLVBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotLy8gV29ya2Fyb3VuZCBm
b3Igbm9uLWNvbXBsaWFudCBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgKEZJWE1FKQotdmFyeWluZyBt
ZWRpdW1wIHZlYzMgdl9ub3JtYWw7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNCh2X25vcm1hbC8yLjArdmVjMygwLjUpLCAxKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEucG5nIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13aXRoLTEyOC1hbHBoYS5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4M2U1NWRlMjE5MGJiNjI2MTI1MTNj
M2U2ZGRlNjc0ZGYwMDJiNzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODEKemNt
ZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ3BhQGJhNCFePXVKKlpOWFNT
P05sQjQ3CmV5MH04NS0tZF9iPz5weERWQ21iQUFSVjVyZWxGe3I1fUUqb2dBPTZ5CgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni5wbmcgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDFlNDg2YjVhOTJlNDA1MTU4Y2YzOGY2ZGZiYjQ0NDQwZmRmYmQ2ZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA3OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlh
MHl+eVU8NUs1NyYrTDBxK3cpMUlnaz9kYmE0IV49dUoqWjAwSjQtI1IoIWsKYjl0O2U+M1lxX1hP
biVTP1JLVmNyPmdUZX5EV000ZktTZEo4CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2FtbWEucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2FtbWEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhNWE4OWJlYjcwOWI0ZjBjODc4NzcyNjZkYWYyODQxNjViMjFlYTFlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEyMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+
eVU8NUs1NyYrTDBxK3cpMUlnb1BsYmE0IStuM0o1NjAwYiMxREptfCkKekxlQTtKaG1XaGVefmwm
VjNJb0I7UGRBPmQmfihlUytrMGs3TlJOYk4odnozMDk9XnwpSlcpO2h0WUshIUBNJDlSClVLalZ1
bSZwPjgteTg1fVNiNHE5ZTBEN2IpPypJUyoKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvZ3JheS1yYW1wLWdhbW1hMC4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjM3Yzc5MmRhMDNiYTYzM2I3MDhhM2E4MDg2MDE3ZmU5MWUxZWI0My4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKbGl0ZXJhbCAxMzMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcm
K0wwcSt3KTFJZ255V2NsMzIrVXtEd0UyfHdmbTxsQV88CnpJRUdsOVBFS0s5YSNLKW41ZipZejdl
MEprKXZaVXltUWgkPmZfQUBlLT5qcjcmbn08I0BqQUxmKEVKT19sNFpwfgpncE0qQTZpcC1XX18l
eENFLS07PHVMRk9gZXk4NX1TYjRxOWUwSlNrRENqYkJkCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMS4wLnBuZyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQwY2VlYjA0NjUxNjhkMWFlMzIxOTA3MjBmZDg0NGIzYTFiZDliMGIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTMzCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55
VTw1SzU3JitMMHErdykxSWdueVdjbDMyK1V+RjRwXytuWi1rWjxHWgp6O3V2Q2FJeXJAYiR4VDdR
TU9lcj1VSEleRVJrdDEpVFNqNGwzRUtVPmVZMjlUSmlDMF8kTHJfe0xHdiN4T09fUH0KZ2VHPU1P
REtjQXo7blBJc2U9RFh1MSkwbT4+RlZkUSZNQmJAMDRTRnliTn5QVgoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTIuMC5wbmcgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEyLjAucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3M2ZjZjdiNDFiNmI0M2QyNzM1NDlmNmIxMDMwMDJkYWEyMjZlNGU2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEzMwp6Y21lQVNATj8ob2xIeWB1VkJx
IWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnbnlXY2wzMitWQ0hyMzVgMV9QJGhZeHkKemFTWDlJb3Qo
bko8ZmZxREF9cipiRWAwZDdzI31rWUV1KmwmMW5xdmB6RkEzRW8/U2xlPDheZH1wIXBZO0NDaUZ+
CmdKXyY4QzZxemw8QE0kOVJ6WkZ4U2czTSpgYm9GeXQ9YWtSezBORm4jbG1HdyMKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hNC4wLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDg3OGYxZTk2N2RjNGRkMjZkOGUzZTJiNWQ2Y2Q5ZTNi
ZDJlZjAwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMzMKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ255V2NsMzIrVjNUVU5XU2h6WTxsQV88CnpJ
RUdsOVBFS0s5YSNLKW41ZipZejdlMEprKXZaVXltUWgkPmZfQUBlLT5qcjcmbn08I0BqQUxmKEVK
T19sNFpwfgpncE0qQTZpcC1XX18leENFLS07PHVMRk9gZXk4NX1TYjRxOWUwTFI1OVJ7I0oyCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hOS4w
LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhNjllZDFmM2QzMTY4Y2UzNDYyZDE5MzIz
NGVjMzA5ZDc2ZTA3YzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTMzCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMyKztOODYtTkpfbUck
aFl4eQp6YVNYOUlvdChuSjxmZnFEQX1yKmJFYDBkN3MjfWtZRXUqbCYxbnF2YHpGQTNFbz9TbGU8
OF5kfXAhcFk7Q0NpRn4KZ0pfJjhDNnF6bDxATSQ5UnpaRnhTZzNNKmBib0Z5dD1ha1J7MFBHa2h6
V0BMTAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC5w
bmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhNWE4OWJlYjcwOWI0ZjBjODc4NzcyNjZkYWYyODQxNjViMjFl
YTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEyMwp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnb1BsYmE0IStuM0o1NjAwYiMxREptfCkKekxlQTtK
aG1XaGVefmwmVjNJb0I7UGRBPmQmfihlUytrMGs3TlJOYk4odnozMDk9XnwpSlcpO2h0WUshIUBN
JDlSClVLalZ1bSZwPjgteTg1fVNiNHE5ZTBEN2IpPypJUyoKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2ZjYjk2OTYwZTE0MmNjY2E0OWY0NDc1NWQ2Mjk0MzUyY2FmMGU0Mi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMzQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5PZHU9
KEJHPGFPODJ+QkgwKn1hSUFuZ0loWllRKHRLIVJsampfRSllCnp0ZVBROXI+KzZXUVRCOWs0QkB6
Kns2dThNLVF4IWllMzw9Xm90YXRxYlloPUI0Xkt7NmVWc0FUeEpWeztjbTlHRApRRFdHeCZQZ2cm
ZWJ4c0xRMEdVRF9GI3JHbgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L25vb3BVbmlmb3JtU2hhZGVyLmZyYWcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ub29w
VW5pZm9ybVNoYWRlci5mcmFnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmRmYzlm
MWQ0ZWQ4Mzc0YzEzMDUwMWE1MmFiMjU5OWEzNzlmNTJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25vb3BV
bmlmb3JtU2hhZGVyLmZyYWcKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChjKSAyMDA5IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
ICogZGlzdHJpYnV0aW9uLgotICogICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiBBUyBJUyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLXZvaWQg
bWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby5tcDQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ucG90LXZpZGVvLm1wNApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTlmNWY3NzRhNzgzYjQ1OTM4NTQ1MWI0YzVkZjIzODAwMWNiOWYx
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAzODIxNQp6Y21lSTVlUSpAejltbGBC
Y1kjWD9hMHdBJk5PM08+NUhaU3V1XzZPeF5XcUVkTEN+VU5BJj54KHlxUDxxO0BnSG4KejVVVnAt
OTZMfWIhRCVWOSVFMEpRYmhKSDxSZENTeSh5NnhQazMlfTBSLUd8Z01gPFZaYGg5TD12YlhORU5y
Y1IoCnp6aTBCeD8oO21tJnZYMGleTGMqSD98MXYkMD8xdCp5YCNDSXhuIXl+NHZXPmNGNEVLaEFo
NWNud2lhbW5McWtuPAp6NndxaFotZngqJCpWSSpkWUpXUzVCYzF2MVBYeD4qQEU/antVZnJlbExt
dmwoZWllaiYwWkA2SCYlKHd8MWdeRVAKemRIdTB3MWIrWjZxWUE7LW9AVH0tbVZjey10KFUwYDMp
K1k8dkwrbHxjLSQ0di0xflYoZD5SNF5FTGkpSVVKWSNqCno8KGlMeGlXaWFBe3VyP0o3JjQyQElF
PiN3JnVLPyFQaDxyMlZSM30hS3RLUHBGd1puQ1l7XkFuYF5nU2c4bjcjIQp6YFJhXmF1Q1JPTlN4
aFNKRHZkdj4jYkJPNkl8PiUoeWs7T1VuVD9UU0JLdVduN2lJRThgVD9VNmRmTTl8OSVzUW4Kem9T
U0Y8JThYRzQzaTY+fWRedDE5WXY4WjJhT0orIUgkUmFZNHUldDU9ZiY3fHI2QHcrNW4lSkFIN2BL
Wk8kNl9UCnojPT9XZzB4VDRtYHdzbCRWd2smMClvSXZ1ZWlta25sfHZ1RyZHTHdrNEhIOVAzLUg0
JFBxNC0yMHJ4aX1AWUolbQp6VHNQelJAd1d6PzZsYUdARldhZjdTdWVkYXl2VUNEKTZGU0lkfkB1
YGtsYCEzQk49NW8xNmY5OWdZfjltWEp6RFEKejQ7eypAdkxsKGZqPnczN008aSVDQkg0d0dOS1RP
PkdQPjlpJHFoUnFjX29mV3t4bkJxK3pkeT1GZGRQQ049S3lkCno4YkBUcEpWJkljJGBQNWcjMVNj
OD5XRXlqdFVJRjVCNVZmb3sqb0FaPTlWSDEla0xUckVqQDxkZEMtYyg3P241Zwp6VTB7b2F6JTRJ
QTgpWUh1SjJCcU5YS2VefXd+KSorN1JuIWl8SSZqZFgjamtCe3Q2ViNTMitncGNAWH5EMlM8SX0K
emt7YSYwQWhHZU4+Vm9Zc0NQODBucVZUO1BVRj1kSEwwZW03cGBabzZqM0IhUkpNKD8pYzU0KD04
XyhFPy0raDgtCnoxYFVLPmY/bFk0U1YleyoodUkrUTZXdzlxKi1UO142KU9+R0J+a2REOGl6T3A4
MjUxO2RlWCQ0NHhmY0s0bVZARAp6TnNkRFhHIz9NWUJzbVRwdndReDBINGcyNzdLfGdTPyYjYT1U
O2FqZUx8UVozWmUlUDJgZ2tEcHo+WkR9PH5IfioKekZpezVocnxLK31jeis2UT1wa2dFUWd3MilR
RlkjfXB5QytVYmAqZ3pDdTN9d0YhV0ZpMSNoVXFZN31oVCRDU0E1CnpNb2FYUWZoTGA/U3JPVmU8
bikhY3UrWmtGYmZPb2dMUjsjZiolQjRuZGV3N1pYajJvKEFjaD1DYmJPeG8wUThxagp6SE9fUko7
WkhMJEh4dkdzd29rSlZpYkt5ayV2b2R7eztRam4lN0x3Tm1UaUhTN0R3PnMmQCRpTyN0ZjUrRnFh
Y04KemxAWnspPVFPbkpiKF58ZV5TZUQ7NjdocFImVUY1Y0shJH0hZ0dpc2c/X08kJTg3Nk1iO1FW
WnRnJXtLdXNkd143Cno3MUFAU1JBK0tIUzJOYWBZQj13aVJTdE1VKVZDQWFNOG0+TD9ec0lqT2lA
fjI+RHkyeHJ2YX1jYCVzSkAoekdYWAp6SCFJIUYxfjU7O0tQOypCcmBsQGZFdE42Qk1DQ08yWiow
OG0mI3JLS1dhOVp7b0wlQGpiellyYHp7LTdoODMtMHEKemstZChmJCE0fnc+MFhFYklTWFlVejw8
PGFvanNGQndwajExa2AyPXtkRipoXkQkbk0wZHpQclNwMUUqZVZhcE5OCnorQF8zfEJfcHU4MkY9
fDlUbUxtJXVEflgrckdWNSYtOyUpQWY3dFFgSGkxb0c+amtJYTlRcT56KDRQMmhYSlllWAp6Nzdx
VmpJb3goWikyZmkmMGQzMDlsI2x5JXh9aEk4a3U/b2spPTZiYyNjVzVzQF5QMmw0KiFLRkR5QXpS
Y00hSWwKelAtVD9VZHAwZUclQUtjNS1Uc0dEaThCe2phZkdIcipWezNFNlo4Y0tfUiEldUdLa1J8
PkUpWWZBaVVTLWJWMVNyCno+RzRnKmN4STBhUWRNZW5gekZ0KHJfSUFmbSpgQXZKZlJHI3hINzJi
RXY3WkE0OVVQRVV+VVFna0U/R2IqWkBnKQp6cGZYeEA4bSpVZWxlQXslUys/ezJCczA+dEEhYEoq
KExaXnBeKzsrcytMN3F8elElNzF5M21lLUQoSlpmX1IhcyoKejR3UVdZS01TdWdYdV8zMW80ZitT
SkUye29vVkduSyRQVzQ8ZHdpMkBtPnc2VGFAekx6Q2VObWEpKUokd1VxK2txCnp7LStDVkU9UVpF
THRKUWNrRDNkR3dxQVlNN1otYDVFa2tHJStFUGpLYHRyaj1ER0ZgPHIpYCtmQ2JTN3tqd2U2UAp6
clFNYih2PFlvTythUz80VHhiKjhndGtHVmpzN3c1TnY4N1ZfMUtfek5tN1pOSThuU0w0bnE2dEJe
ZkVTckx4dXsKeksxbU9raCkwcm1OJjQ/NDtWS1NVWklrbGw/az14S0RQKjxIbW1VRiNMc3J7LXYw
JGpMeTNIP1orZnJIRUNBOVZKCnpBI0leOzBKX1oqLVI4bmdiZW1nYGQ5RjdWKzZGKmRPbFQ5QFF0
PEx4ME82dFRndHE/RW1MXyhhM3BTWmFkWjZXegp6Qih4MkhIbkgxO3dpTU9vSWMqZiRfKikySHtX
blJ7I0JMTVhnZl89X1hYbzxDdHUoUlFnZl5qVmtaMm5zY0FMOzkKenY8KCgqVnomdXhMZmNAYENV
JT85Q2JTSX1aRE98eFo5Pn4xKEtifTxIbGE7dTghWHp5WldHI3N3IXh4Sj5eN2xJCnpYZDVpciNC
TE1YZ3RrR1R0KDNwSCNVRFBEN3U8WWxVOSFqR05xT2FsWXRebTFhPklkV1VsekN9YVNJQT1acmJE
eAp6SHlednVAPzZqXlpAQjUtYklEMkU8bj9WSHM+fnh2dzNgYi0oUVg2TFp1MCYlNTRKcCMxVUpG
JHRFfmVfWUJ5NlIKemxRTmwxQ0NUZkQkMntKVEFkfEBmT2VVKVlIXkVKQ2I0KDErKXctTGNjM1VD
MTMyeHNeK19WZkpgfjhOZHJkOXk7Cno0WHRaeXhXeX1Ga0F7XiVUZlBrISZaJlkxXzE3Q3hCMjBH
MCZFNnh1X1VQKSp6QWY1UHleZmo3cVUofSU0KCtNKQp6aV8lb1I/JT1BJnQ2blk0bE1XP01FVWN9
R00hMSg+VE9XeWI3b3tieU43YSFtRTk9OUNuITBNezg0V2VBWVhgO3cKenpSbDtvb0lKQitaQjJi
a2NOdTd7dEV2NUJVdX5+dnl2ZGtmJWM2e0hzdkIkU1l0XkF5K1oqWntTOTIkKXdJTnh5CnpeVjFq
QiptP09pRXckPHg2O3l1YWBqJmRiLXBeVmJpTFJ7WXsqTlFrTmI8aGU+RFdAO3hAcnBkUmRBTVJD
eG0oUgp6KktrKmYzUipfbF4lWGAlNkR3Un1yP34mO0NLNjFWIWNyQD1AXzBfLTYhTy1UVFJEI3wp
Pm5TMj9gMCNYVDZ+elgKemR2RXpaT01gI3lAbTFJSWd4cDlwKn1TU2FiLS1xT2lgLVMtPV9TMDNS
cTl7e0E0UHJpVmNsREgzOXVfQih7QWVDCnpHSml4ZCYpTDl1Y1RqY2NXc0Q0VyRPeTsyR2t0Kmpk
Yno4LXVVcS0meF96WWwpYyl0e1hKN21OXkw2azReNypCSQp6eHxtR1M3eWw8dV87dSsmUzk/a09O
Yzs0TUMtPD9eZjQ8QFVyXjBvOFhNNnJFPF5PTn17JXZkQHs+cXx1UzB1V3MKemlHNUU2V2tWTHhS
e1ZnYlcrTzBVMCVicGMyN05pQFU3RElTci16VEY/Qj9zMW1yKHUpakN6b2tgYmYmZHohKTBPCnpW
X3hBQ2lFWTRHe19fNDwrTVZOT1FEUSlkRlNaVy04ej8qc2o0ej1hVk82WjdzMXZ5ODdlTWhPJUh6
T2YpLW1+Uwp6enxAfXRtbTB1alp2KUBFayNaOGE7dF5vX1hrZjt4eilaUzFYMSlvUzVBY1B9blM1
TEdpJExYN3oqWVlOdUN7MiQKej4lZzM2X2AydkIhMkV2IzMrU3BAel5fZGYoYUNZYFJBOStfejsq
UyYoKGg5QzBYT2l2WjtJMml2SnpOK0s0bGxNCnpnMDc1fXl2OXthZno/NkVrQVMrX2xvUC0kM3hF
YyRucnFrIUd9RT9nWDhwSWF7c140e1FDfE9UKDwjcGE4fFhzVwp6QEVMSUQ5bCQtVF9ueFBLSHJD
dHJBJU9qfikwTH01ZyRXZG0hbiZjezZzIWw7NnJLbVJFZT1xZ3J+SFpYNWY0cUwKemdlWEB+N0Uk
VWJaSW02OSE8NkhjUTxRKTRlcjhjRncwIXtqNGN5KkoqLUZfPGQ3QVBEPHNaRH44cyZWLTZ2fUsk
CnpIUlRUMHd8NCNkeHw7YipEd2pPYCtAQGNiRX4/em5jelArQDkkfV9rI1pOcn03ZWxBWk41Zig/
cF49fD9LS0g4NwplZjt6UEZEeCRDKktaWXVVTX56bTtVJmp7WGpSUzlaR1ctfEFGOSZHPQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8udGhlb3JhLm9n
diBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8udGhlb3JhLm9ndgpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ1ODY3OGZiZmQ4MTk5N2VlNWVmZjU0ZjhiNWU3
ZmJkODU1MjY0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNDYzMAp6Y21lSTRj
fDRSfHxIbG9vJWgobFJuNmVnd0VKYiNNKDlCcHVwfXw8dkZxU00pY0crNXArQGZTalFyc3ktQz0/
PH4KelQyeFl6dHh9WGtjUFk9Z1c+bk10Kz5jKHI9bFNkUmEoIVJweVBma251OS17aypFeUcwd3Qw
RzVHY1luTitGRXtFCno7JXVTamdWNkt2NCloYHMtNUhwXjR9PHVVelc5ZmxaWXNtSlUpRU4zcW04
WCYkdF58NU0rSkcyYH5yd2ZqMGdzUAp6MjJLV3FHNlRhIT5iTi1ZMng+PDR3O0hMZCg0QGRhUnxw
TlR6TWs8JTtKXzhTYHVVTz02aFF9Q0FHJGJiMG14e0oKeihETHR8MXRmLWt6Q2s0NHAhR0lrNncp
VGlVfmhNbHBBemsyeEgqM1BVZUpvckQlO2shUHBeeiFwdEdhVkc9JX5mCnp3ZkNsWVpQKnN6RFk/
aG5tRFpLU1lge3BXQ0BYNnpZcFNTNyVHIUFDNGZHfUxhVk4/X3BSK1hoR1BXfEBXQEpwegp6QCRl
djFOUy1QKilxM1IoRChWVj4hTSslRUVmcUVCVTA4M2tCXlZtSllfbTRpdz5IKCRCQl5NKXhvY2Aq
R199LS0Kem5pfDl5bihTSmE+fEFZXms0Vil5R2puOE0/aWVQT2tXcXdVIT0kPCo8NHxtUlU+VGI2
bEZPfDwoe0loJkB5Jjs3Cno/YnRJV3xJekVialYhKyQrN2JDSk9lXlAqaGMkY1hDMG5eO04kOGtX
WSFUWFA0em0+TU43ZFdPMyRRYzBxQ2k4OAp6RH1re3xGSHV1YXNERCZGT3p9dHlRSz5DOXYlMV4k
UHJLd1FnSl9qPjw5d2QrVzcjISpCO35BPndTO1dWYldfeVAKemdFeUtVNGVuTUc7Y1JpdSpFP3o9
ZyM/WXBUZX1ubSprWXNnRjI0STt0K0RZdk4/I3YkPWd0cj4zWGoodDkwVm1FCnpqfmhicFZuRDxy
Y3A7Qytxb0BAZ1BwaGFjcyQqIVpLPEtBY0d5KiplLV8mJCp1b3Nqfk9ecmhjNDYmbE93fX1ANgp6
cy1kQT97cGdDT1VKIXU/MFZLZW56O0gxaTVmaUk9cj9HSmVRJkBPfDBgeEpsOFAtdWx5dV5ET19j
OUhrVCY7XnQKemBodDM2UkQpSXM5VGRERnomc2lwbDlnWistIWQhMVZpSnRgVWshIUFye3gxZj1A
WCVsazAoO2dlNDN9V21VTyUqCno7PFNOKmZqJnc8TWhjMz03KE5nVF5yeFpmX29tTl9pa1ZlY1NJ
NDA2TWVDcCNVNj1yWnkyPWJ4e29YSj9ANUZ6WAp6cH0rXj1BRHZkUTdAQkJSUSFsaiU/aURsIUxo
b1cycUUkbWYpRiF4cnl1N15ue2B0KWFUM3wjYERAR3xpKU1TKCoKejtBdyQ/ciZhXyk4cV8yWiho
Qyt0Sl8zUXprOFdtK3JpSXdXeilXcSVHQllFPDd6b1M9VDN9KE1SeEU2YmZzRy07CnpkMXVnbT1Z
Y282TzYzPDxkJm9xQGkjOSNyNC1lPXh6SXNAckB4VW1iUUExTmpgc1c3KHdhKVVFTXsoQDhuJT1J
bAp6JG0lOW1vIyMkMUNEZVpqO2M0SFQ9JC1BOVFvKmQwaER8dCsrdjhxO0FZanNVSkdMQFJoSkRW
flI2bHZfOTA9dkQKekZ7JkFOV0JhdXlZRWd8SGVRdGlheTI8YkFgOTU1a21zd0xSLWFBZShZR3Ip
Zz1WNldXeHdkTE8zT2dJVVB2Q3Q7CnpYUHZhKEJyWTYjRzlaVD5hJmh8I2BCYilSPSFGI0gzanNW
ZU13QGU3Q1E7c15UckhXV0hMVDE+YUMzZn0obSZjewp6dlZHOUIlRG5Kc2dHTXMxUSo9PnVgLV84
aGQhSH0zd0B5RWpXNCt2MUlrRVkkcU1hTDBSTDViSExxPlBvc319QmAKenNlTFNGQTBaKmJlN0Mo
YWJwND59Pno2YHklI0xwRG5hfmg+blJ4dmhtaXh2Rk9wcEhCJnQ0biU9SlNxU1d0NFR0CnpFclZK
UlZeJmtQcmN2bUo2OVd4YT4jfXhwY1Y4eSotUGhuJDtNUSNzI356QFJyZjAwXko/VmI0Jj9QPUly
TT4tMwp6S2xXcnpBbzhJOTxRfER2V01mJmphIVNqRGdLXzImdzlBdGFsPX1Wc2YyN3tYKlp1NVh5
KmUydTlwflYxXn19MVUKenU+PHthTXp0NFRJPWF0VWFzS2ZzdCFKK3dMR2dsJT9FYX4hey1sTTYj
aTFyck1AY3NYMktxTl96OEFXU2JIYnF7Cno+YjFDTiNNT0smZyZuNT9mKWkmbGpxWU9xRG1MTEM2
WWVmPUpvdz9QS1JKMik0IyNlOUZVcUtocjl3YVkhX0hLVgp6JmVnUkV2JlMrWXdHSylAblBjXjVe
c0wrfWJKRklscz80NEIjMlRLPj5LeUI0OWkpNz8tO09KXmM8ZFV6enQ2cDkKejtZamoxJDdZN2x2
JiNHPDEzdnY1YSs/KikwdWUoQnUxTzgpSS1DeUloaXMqP1p1KUpXS2lUU35DXit5bVlQU1UkCnpk
I1JuQEQjYng3dUp2PWdPPXw2P1p2SmBTbUFyOCsrKlB3cW49NzEoTTY8ZzIhaHxIKTxPd0VJb1FB
VjwrR1REQAp6WjVzKjwxMVgpV2FaZy00dkp9MXYpYTFIJDZgPFlZPyFHTisoPlZFTUBiaVBybV8q
OGdlLV9TMHpHJC0tYDxaQEEKenVkJChBam05bU5eQj17Vz9DcndoLWdaX0Q1fk9oNCNhUncmQHNV
ezgrUih9eSpSWHZHNypCfjJfRE1nU2dPaG0oCnpgPW01O1M1PW1vTl88bn53VXpPIWhXZWkkd3M4
SDF1JDdVcl9gX3w0V3M9OVdhX19Xb1V9NldOYG0qPGlrbipvMgp6KkhUbHZoUChoKW88aXtyVXJD
PEUpND9PZUxeYmstI35wPlRAaXRjd0lWU3oxc2FOKjFHYVpiN0JWaFJ7eHk1XykKekNkYipKaCh2
azk7NjlBIz8pS3MhVnF+eXJ6Rm4yaE98UHJzVFAxVEFZRlQrVUtHaGtNTDBndDJ1PFQ4ZHZyUCok
CnpKV0V1JjZmUUNUJFdhM00qQTNDbUU0ckpwZjJ5Vl4/RFRxdFQka21vUV48SENiK0ZSJDhxPkpN
bTBXSENLRUNRNAp6bXgkJjt0Wj5BcjFJZ1V9QD9OJXgrWj90TVJ9JkN7Oy1ZO0gtbDJUTzxPP1VU
Y2B9RTRicVhrLVUpemRaOylZdE0KelRFRCN1UEJKO0xoUz5hc1c2Oy0pPmppN2lVKUghUHVIbm81
RU4qNXdLOG8zIXUzYygqQ01HaE50a1hLT1AoSGZDCnpTa2hobmZ2VXg1e14yIU9sUH0lVzZfP2dZ
cEEkTkNyJWJxSG0wSVZNbyVXV3hVVkBMVGFWZiordj9TOE0xbz4kUwp6NTtrM3I4eHh0e1FpJj9P
ZXV0fTxyTjc4PkwpeiNvNjZ1KyorYHh6VT5qKXYtUSQpd1JxbX5OZnBsKXI2SXlaZmkKemBfI1M/
IVk1WiNeIz0tT21wYy03KWEtcUVmVmYmPWUqM1B4JT0yfm54TXlkU1MkenJ5dWJoM0J4VjQ/RHRJ
R1dECnpvPER7YjQkOXAoeG0zfCRqKGYqRGdMWkM4S348a1M7aT5la1FPb0xUJT03YzE2fmI7RXd3
aD1xXkc1UXlqNHN2SQp6az1hQ2lBajhNJEJZayF6USlPK0xhemJDRl5HdU4hRX5FK3tRfU5EV0JL
eX5VRF9DPU9EXkBoSSt1Jjc3PVBGbjQKejlKMUd5JEFXcjxPX01GJlcoJUw8Wig3YV45M2lSfG1h
c3BmTH11THhQaiZkPHUqPUJReXIxa2diLVZBcmR7TkVxCno+eHwwSzgjfF9FPE1Rc24jNnZFT2Vs
MG9xUiM+akJzZm5xJXc8PFpYVWB+O09gWTsmV3E0WlkjVzl5NlgzKT5rdQp6RnhPfTE4O2tSSVBh
en5iP3xTcyNLRiV2Vyo8N2kjUHhGZ14/VlgkTG18fThPclV8PGV3Jk8lMSZ6MWBwXlI4U0cKemRL
VzFtP1hSN3VtMUspJStaSWBRc3AyYGxoSiVVaHB3PVZBdVhLRWhXcTQqSDhweEZNazg1PEh5O2cx
YGVkYTRRCnorUDEhb188U2NEcEpxbVVgQF5yM3dxXylFZ1RTSGNRVzU4eCtkfG8yUkJ5WW5JPT9x
UitaUGlCLUhEPVo/Sig0fQp6NXVUP1BOeXhuMGZ8R0xSbT01Qk9ASzJYRnh+ekc9OT1GU010djlC
K2J+TSVVUz4zIWZaZmV9RlFBYXVAR3hMPE0KeiFGKz0+aSFfPEUmaW1BTXtAejloMlZ2Wn42NnVK
VmRYPzxyZkowU24+fCRqRk9rS344ajg4PSE+Y0hPblQkKjxNCnpDXjkzMnc8V29HPGF9IyhfNUVm
S2B2cEohZGdxdmozbjZYc25LOENFNmRnVXRyNT9nUFNoLUQtU2RMUDJkYHtoSwp6RE1xWjJWQ2BE
WVZxKVlsKmBtVGJ1UzJNMz0qPm4hTFI2fVF7cVRZSW9rPHkxPG5zIyZfTFpHaWAtREhmOyVgU0cK
endXfT1reHd8N31sK3BhKSRKWmdDdCZVQGtMKXRqOWQoRk87KlI0I3N0RHNBKVgjUEBhJkc1ZGJJ
azlZQHFPRyloCnpJTDtjK2JFZnsybz1IQVI3V2AwSHRSbyRvXk9jeHVOcEFuUDdpb2V4ekZybWxC
aktGUG5wcF9BUkpEO1VCSStyaAp6dX19a0xxVCpHJSFNKHA/c1RWJmMtMUY/RXlqPHZ1PThlQVRe
WUg/KXEzeCl8RDlSPS1pZjd1TWlBanIzNTN5ZVkKejNhQFdmMiRMXjBkN29+YCVQPCV1R1QwO2Ff
fkFoSWB8PX5ScXUydy0/V1MjUTRoXkZkcSE1aVNGLUBuOEZhS0dxCnpJX3hDencmVTx1I2o9c29i
QWtqKVVJfktsb3k5Iz5HTzVFdik5Xih7T1p+TU9yXmptfkNPTz5fJk01Nz9lJWZJdAp6WWZnTVNt
cT09e2NYc3VxPWVuJHNRWklTTiQyKThsRkclMnAlWkJ0UXJwXzdRT2AydTkjWGx8RmFtVEAtPEtl
d2UKekNQT21odWFYOHEyUXJraWsxS1NrbEZSTko2JkQ9NDYrSlQoSmUrNHhDbXJSeFVVIXgySnJ4
aCg5R3s+REdqMFFjCnpaRmJ3dWk8clgxNSEwa090NGcyM3VjO0t6alFUb0NWYVk5SUEpNEt8P196
em4oZkVHZCZuPiYyWX1XPV9vditodAp6WjhEZCpkKGB0MV5ZPGVMYlQpJklJQUwyNlZGPXBra0hL
em41SVJkaVY/dGEkJDM+eCYpY2Z6TVUhJSV7SCFrNSoKemA9PVZfdUZYQ0JeOEJBdXt3YXhZbShW
WiRVKXF8cD1aXmVvelVCUWF3P3J0a3E4e3RZZXghMihYVkZJNGlIcUY+Cnp7RXZ4RHAlJVdpRCgr
PXViMz8tNkk8QVIyTWFjbFcjZkZndCNkcH1hO18qWWAwTDg3MU1KTHhTUiRMU0ZXPmAkKgp6ZWJX
KDdrLUBnWlQ7WkIrRVpQKmUkRX0pfTthS3IqT3ckb0RreS0hNFQlbSgpRThXV2lvTEFRMGN7Zl4r
eWpyJGcKelpLcWQ0T3xPMztEVU4mVztIbW9GdSEwWVVKJnY7WjE8QXc0dCUqS3xnamNLRT5way1k
bzlHZmdwYEBuJHVeXmR+CnorTE5VQWMpSSNlT0deNWI/cV47aE0ramlLb2JyLXdSbHIlbnpURTlq
eGU4XlA8I24zZDlzUWt4RGRtK2Z1SEgpKAp6TDckTiVid292SFppIUNkNUA5R2B4Nj92VFBwPkIx
QUcwTjkjbU1kVXRZYj4rQnpJY1dgPlJTeWRVb2VKJm9zUCoKeiskJkdjWElUeVdEWm5XWGgyTmJr
QENXV3B1Rl5pfDg3ciM4eE11Jms0ayk2Y1BsQTtkP1cxclpZdWZ5dWg5P0FBCnpZaiYlcXBLUzlW
MnlxX0QmRkVINTlYVDZOdSk+SFZRT1NxVlQxemhYYmhKTEJFaHEoJUB7JGNMJTxNS3VTeEtCOwp6
Q1ozVHQkc2RkfGJGY3tAKlZeY25NOWFyOG0kR2R7b3dxQn1AT0BmRzVhM3dCQnhhdEVFQWMmeiht
VEJjQiQyNEUKelUqYHtBMFg4a0xkIXdrQmQ3MGgkYVF4OWllNGdFVCtwR1R2aXt9dUsjcE42UEYw
XjRmMUk3T0NHO0cqcWA3b1YoCno4T0BuOUshIXR+SHElUndVaStXUnkkX3doRTN5WiZtSVluTnY/
Q1U2dzspSG5LfGJ6JWlIJHN6eT90X0omKlJHOwp6aSh6NiVgMkhObEgqYk54MHJvUyNjPn5WIzs4
M3BAJjFqVWdHTWJTJmk0U2Q+Q2RKSCNMPm5kWHh3anZjR0Q9YyQKelolR2tTdzZBZGVVSEkkNmN1
KEd6aH5JPT5hNE1xT3MhbyVAKztPZSQ/QHBLY2B+JWNeUTFocmhHWk1WOyNzWVhGCnowcFJWUGtn
TEI7VThESTlIOHNDRkgjYjlJWm9xeTxIX3dwWiR0ZV9AeHBqI0ZVcTx5NGFeKmNzYj98eVpSPWEw
ZQp6e2d7eFBWTi1CTVExK2EkeGpnPkFGUih4RnJlY1NPd011cUlYRTYhO0dnWHojdylvTmk9T1hq
eGBfe1U1N1FDIVoKelpWR3h1QUh3Uyh0NypsZ3hge3hhKEpKN15KZTswVnpsO1Mzezk2UkBTZ3t9
OHpiRmsyeV5fJUI+QmVYP0didXxPCnojPkdjbDxWNkMwZX1HalF2VGFRR1MxU0lmWGItNTJraEJK
KmZhcUhwXlUrPU8kREFMQDU2cj8pZ2BvO1ZeKmRaKQp6c1F4I0V7ZUs0NDlkdzlYMGY9Wl5USXNr
blIwSFN+KEMtUTRvUnR0dUU2Z05tc0QmYGgzZXU2VEZZM1F5X3k+V2gKejZKWlIpNz18JG5WfFc/
dVpGa1dqa198dm1leiU5OyhvaFlkUT9MV1kxJEU1OChoNGhPRmJ4PWxWR2E8cllZSDhJCnpWRTkp
OFF8R31MaEF8OWQ3ez41MiFaMypyayg+YTZDRmZRP1NzSlBsYlA2dEA3K0ElRFRVdWVRTjJNemoh
YHZZSwp6Xz9DPUBGI0hiJHJjUSkwM31ZQ15GcFN9NGd5RyRLUlBzPn54ZX14PTEpQkNPNE9NO0lQ
WCFOMWdLRj1he01nJmwKemg4OF55dm9LVSlzS1FXJXB9TEhxWUVPcXFCIUZTUnt+eEpLTClESz8h
M3p7LXZaZm9CUisjTGZRNUpme3p6NVFlCnpSX3gqYmhHRHZtRXt0SXEhIVUrbjNAOy1MSkpCSCRg
ZD50Sy1DR1lXNGI+bnpnI2J7YmchcjZYVEN0U15yVThSNgp6RUN9TEEwKHlvWCEqbTN1JlZ3LXdW
O0lJVGpOeFUzVk9LZ3QzSVBiTmV7bXN2WHtkKExEV0k5Mz5zMk9+Ul5YemoKemJmc2NnMWY9R0wq
WV89QWAwb1UhUEp9VEdWO0lJVGpOeFUzVk5XX2x0XnlGO1QpYk9vWHthOGNRPitGR3t2OGtjCnpt
UjhzdjE9RH4qeUl9fndKTGNufk1FflFqK1pZJk40OHNfUEYkYG1QOERWJTI5VXtkNUJEV150UGI+
e3AhXyMwSQp6RmJKd15Lcz96c2dgfEpQS3BoMGBgJGlYckRoeVFec3hWWlM1bVgmZCg7eF5UNjhi
WW1xTkxKQ09HRE00UDlYc2wKemk3THE3Pn1eZGl7YD8tMkFmNWRkbmVqSWFlPHZfP0I4KmBlISFV
K24zQDstTHlVLXlMMXQ2JSM3VCYheWhKKSE4CnpRYjF1cEtiWDArIW1eUHtTTCR3OThsO1dlVkBy
UXhfIWswR0MmQ3pwRiRgbEUjXyUlMnVzYTxoKEV4KCEpbX1fWAp6THA3WEV1QCklQ1UjdHZTVDB5
dTJyVThSPy0wTUpPK3xrb1MjcWhycW1edSV9RnBPYXMhIVUtSTVyKTAjNUdleTcKeklKX1QyU3NK
UShnSCU+aHAoK2N+VCU8TU0mJUdeZVl8JkZPM3F1dSNEaHlRXnM+PXRlJXRuSlcwN0NtdElnbXkm
Ckx5MFRGSitUKl9mNSpVOG8KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ucG90LXZpZGVvLndlYm12cDgud2VibSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25w
b3QtdmlkZW8ud2VibXZwOC53ZWJtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzI3
N2JkYWFjMWY0N2Y4MDNiYmU2OTY5MTNhNTNmYTI4NTQ4ZjU5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDUxMjQwCnpjbWVJNTROdyY0OE9Me3psTE1wU3BsVUVtTERaMmQ1dFI1PHNU
PiVwQ0xseUtBVnQ5X2Vud15kMChDNjYyZEZpZQp6KDl4c3tofVUzWmpIcmhNbDByITZoaFV2KEBU
MXlCNGZxdXJLUzVDYE1YdE49RjAkfEJlY3kya2JlWWNNT3JybiEKenh0eTs1SWN8VD9iOSptXyo1
dmFYYHIjUn1TPlF0K2l+cnBoXmRTIWZyd35oZWFeam9JTCQoT0lrUEpjUjklV3U2Cnp8SkpHbypZ
S1Aqcml0TllaJH0rVz8+cF9sIWwoa0ZDY0c/RE8jTm1hVUtVa2c7ZUYqZUZzZSs3ZjJ4K0ZiZXRI
Zwp6T3QrTj5lTlRTdVp1V29hdWNaNnxnTkkpek9taGhfZ2AzfEZvNDBQXm45KEUwanZ3aEM5anMy
UF9obFVvSnV+akQKemJHayFBXksodkJje1gycDx1X1lSbSY0RnNPRkFSVTdZallDezM3c3p6Xl5f
Z0BWTnIjVTdWWWl4TUk9Zmo1cCVuCnpoI2EzTEBQbl9WclNtUDtTKyZhVkhRRnFeZjJtLWJEZzhX
Q3tEdFNfbEM/NTNLMzZBamBOOG81JEM8Ty14anA9Rgp6ZjhORyUyQihhU3RyX1dDSW0+e1djZG1V
TFJGVFQ5XkckSzdiLUNGaUNkbGg2eko+cUplcmpOPUx6Nj9jTHlNdXcKenJRVU84PnlaY045NHtG
Zl8rUl8zSkpoaENHQ0F0JkZYcnlKY3gkWnYyZVdtfCl5N2pkKlN7Qi08aTVVaVFeZT9vCno0VTQ4
JG5jWUx6P29LSFdEOXhAcD0jdCprRllOQ0EtNl9kSzFnPig7MUhUdE9OfWomMElkQWVRT1glaSpU
O2J7Xwp6T2RTJWx7UWM0b21VIyQrUFgmeEYtRTsyenFYOGFnQ20jNUl1SFVSQXg0PiV3Qk13fVMq
Y1pEbEk7dTE7QG9NdlIKenVHTVpZOXVAejZuWjJmQFg0VURQKk1fVih2fWVUQm0oTShHSzNrbXFa
Sih5Q1c+Y3p0dUhGOUs8Q1V3MVJvd2dZCnpAeXlAYlVpJDBHKnMxPU4pXzElZmFMKFNsJVYqdmA4
OXdyRiRCdn03OUA4KDU4ZytCXjY/ZUI/Q3dyOX4kVDBYKwp6cDhzZ2NeK1Qxcj9UPTI+XkZPYmZK
TEM0OHRDUStXYE5DS0UhWGYqb1JQVT8hcXd9TXAtPGBDLXtfWlg9VTtKa3AKeiNRaiNzSVR8bDw/
d29zIVVuQSNhKjJobitFanF5PUkrO2xxRmxtTk5FNjg3WXpmNTxMPjJhQl5BPTRqWnNfJkQpCnol
fWU7SW4pQnZkSHgwSVk8QWVVcHtCdHNtQk9jNTklRzUtcjtXRzZoKTBIdzYmKHgzM21EcDgyMyVj
NStVRjhkPAp6XlVvUWIyPEphbjtMcGxiUG98QTVzX1Y8NzxDcnZ0TiFLZnMqaX5IKV5WbHojXmZI
cyQ9flYyaGdCTnRRT1N8ZTIKek9oNW0qZzJRfCFPPXI+JW5ZNDtZfEgtMHlYTjN+R3N2cDVUSGpH
Sl5Hd0hpQER0MStHZ1JYWElTTXtncT1SYTRfCnpLVlo9d2VWQjklbFNWVVgzWHw/dUQ2eStPJTl6
SnFWJHZycD5nWStRVnBrbmEoQTYmT3NeZEtSYE9nJmApMGxLMAp6bE9BS3pJdTxvSkczbjB+TzY7
b1BIUmlFekczajxESndtNXFSfUl6QiloX0wtcEBEdz5hfE5mTEZ6TCVvSSpVbkAKem5SRk1Fe3ow
THt0fnk8MDleMW1BJktedH1NNVFWJSg1dWVrb0ImP25mOTNAXkJsJjhJTHRjUE5rciR2KzxPUWV7
CnpjPnlYI1VWdXVHN1o1NDJ5UnNMYzlWPmVRRG4odl5OfDZeSlF9S0JneWcoTl90VHJ6fD9rYWN6
d2I5ZG83dHF3Vgp6ZilgTT9RNGUwQThfeCM3MyNoeD0xSDM+dD9rYWN6YnlwNEcxLWZ4cCEzKElu
KzZpOTN3Vy1lSFJzbWlCeVp+fGIKeiVSUGVeO0VtJm4kSTQhU058Nl8hUXNmMjVHJmwlKGZxcVlT
VGVjez5FZTtsNDxIQyQ0bSNhdFNIYUlqMUdoQn1RCnpSaXFrJiU9aGVkb1NpP3h3fkN1Qjd3aVhI
Q0lwXiRje0kjRD98eTNqKCY0IW14WT52SmpXT1NESk11bnYmaWQxQgp6KTJ+SVc0PzB+YGRFZTlX
XzRiY0hgQiNFUiteZXctZVl3WHdvKHphY0Z+e20yNiZDbDZfdkhAKy1PJjQ4RHNMPkEKenw3SDBj
eDd2JFVuPkt2djxra088SCMpdyFfdzJnXihjengxKT94aWt6cW9GbnFUZDt9PGxlQzZ1Xi0kcXg3
dTQ5CnpyazNCY0trU3tuKV8maTI9OzIjNmB7T15xLSl+Rm4jP1pzckhSbig0JGd8dmZ2WmJ9Ynsk
ek9DPDx5cCgmQ3pFUAp6O3xleHBBNj5rRVFNNnkpKmBpTkFafmJAYnhVXlF6ejJePTBRS00kfjI0
fmtxKm5oUWxSYFptK2BMP3NtPEVJLXUKemI4RTU9VStJNzE/RExNbyFfVUlAU2AmbSFGTCRmN29n
IWNOPnVDUlNYZGkkfChMUjlBNylibkFtLWhqdjZ6djAwCnpEY1QzMVFuVX1DcWN8I2dBQW91Kys2
U09ndj0yYX49KD9YdyNWJCh3ME1Od19iV3kmcEMhZ1E4Y3xWbitjfFZuKwp6Y3xWbitjfFZuK2N8
VlFIXkx8PHY8I3w4I1NUeWdhUWdtSFVyRCl6eXJlWVZSY3xVWnExNmBEXytzV3MqWkp3XykKemxE
NjEjMSRtdz9jN3BpNCphT1k7c1Q5cmdzVDlyZ3NUOXJnTU1gd3tAO3NrPEVTbCQyRFl8Wl9RRikk
RXJlWVZSCnpjfExUcDE2YERfJWdOYHJaQysyTVhrSmdIWGtKZ0hYa0pnRl4xUGwoKFkjKXkjNGdK
N2RnYCVnVVFlYXl4fH5ZVQp6eXEtK09FPXUheT13YilEQ3xgR3omdWBtMm89Vlg/bz1WWD9vPVZY
P289Vlg/bz1WWD9VWmxoPiVKWD5ZdjFsR28KenF3O2sobTc7ayhuVGxPPlBKa3xVPS1TMHVrb0Z6
Tz1RbWV5JlMlb1VGekYyej9QKnxBQTEwbHFQK31LKkVAS3s+CnokKXR5dl5jeU58LXdrcDdkITVD
QG1NP1p3ZGR+PHZQaj12V1FocllldCgpQGgyYkg0VDQ9UDJ3QTVAQlZLZDJQIwp6ZW8hZkxKUiY3
X1F7TWZjOVY8SD9EbipXbU58RUNzUT9aTkU/Z3c8UzE2XiEkSm1sKlVkQUVhbl9DLUlXSTNEdGAK
elpIfFhSNn57eE5pc1Bac1hMM0IwVi0/M2twXkQ/N1B7cnwoc010a3RKUlM2blpIfFhAZSVsPW5n
KHtBUkxLVmtECnpwXkQ/N1B7cnwoPjlhVz0lQ1U7JHAteyF+UF5qV35OTDFgMUlHenI2dkNaKzIm
VHFUcEF5YVRYP2VqO21pe04tVgp6KmhPJFc/UzBBPjxsUEl9WVozIUVvLVVtVWc1eXpsNWdkPH1e
SiNFQT5Ncil8OUxNOGgxO142fnlBJEFlKVpPSTQKekBwT1lkOWBlLStJMzlJVjxAZks5VXROT1o+
RykwPUkzOUp8PG9EOzArYV84RGE2RGFsRWQhMjYtOWBFUkg/JUlvCno5IzdacStKZlV6Y00lK3Ft
ZTx3YmMrXzE0JEQ/SHohU1NmTypoIThqQVBYRTFJM0RWflUxX2ZZVlVNVCN6Z0coIQp6a016enA5
cWpSRj1vYFdEc0p+fX08SShjPEJSQyMpN3Myc3AqK3A8WD5NbnhnKFh4eCtjK18xNCREP0h6IVNT
Zk8KeipoITlPa3tLS2lJMzkzM3xBK1ZFMG1sUTVOOSVoLWYjWHFzJmohYiU8P0JhcUpuQWxqPEkl
RTw7Q1IkczFqbk9nCno3czJ0VXk5a2EpJVB4WkJRRnBQRTlNN35RYTZJNjYhMH58Tmt3MkxtPyNK
YD12KEAzZlRKVD0yQUFmZHorZFlAYgp6MjJ+SUQ8QkBKPC0hMVAmNH58RnVgVmt6RG1lKEBpYytf
MTQkRD9IeiFTU2ZPMiMhYX5FYHNBeGNkP1RrJnJJPzIKenhaJDQ1OXNWcE14RjMoWW4+XmYpTjVs
OFd6Jik0TVU0LXspWTU2QEhfSVQ3P2dncVdEeTlrYSktOT5PYlQ2UGZ9CnprR2hOQ2MobSp5STM5
SHUhU1FJPk1RfVhvRV9SYVJpSGApdzFBOUVNI3srdmp1KlZiUSpUXn13S2dZcno1QTU7NAp6OT95
Vj82bXpXWlFESmY0Y3doY04mPCh4Y3JTaXMtYENwZExhalUmcHdRMGtyUEcwQCpjd2RXSEE5VDk3
X3cyZ14KenlZR0Y8ITExJnt3fjN6eTUxKlpgO1QjNFdrR2hOQ2MobEIoMkZJaUJBfityYHk5a2Ep
LU5qQ0ZKV0VhQmMpOzwxCno7e25HNWp0M2wxT1V+eCNHbF84cDg/dWlzLW9MMDVvKT0re05CdW47
X0lSez57Um9hbi05Pk9iVDZQZn1rR2hOQwp6YyhtKnlJMzlIdSFTUUk+TVF9WG9GODxlIVhKQXk+
R008eHU9b2dlXzc3NSZFVE9KRjFnTjVIenchTyYwWEpPSTcKejN5WFJpNzlDQWtHKm5+SklZRWk4
SkVnRE92bVQ0UiV2Z05oaCgjQUc3RzM/Wj12SllgSz9UeFI/aH1je3pPYDY8CnpBcWs4OUlWYEBJ
Z35mcWhTb0UrZEZ+QkIwa2YjWllVZSNGaVBRYz5lZE1wayNWe3c9ZmkjfUUqaE41I2QrI2ljMAp6
RHpOeGNCbzteM1YkbllkaT0jTyMyNHBFUUl6ez4kanEkP2JTUXsze28zSj5jOGpCTVh1b3pnNiNZ
dHUqRXtUJksKeiRZakp+dW9hN3d7anZCOzFyfm85aU56X2tTZSV4bSNFbUJEZm5NWFY3P3k+Xz4w
VmZqdXduNmE2QmNKd1Z7dkFKCno2MU5ZTDkleG9RN05nQnJvTmRIbnRRQ3VLeyNjdy1meU1ZcENH
S15TOXc/eX1pKkZgamFSRzxMIzRJYz5eMXxYYAp6OHkxKEVseFZ2eEo8emdoRUd8I0w7KTs0S0NZ
aUNnJTgxMykpfkNAbUpaRnZrZThZVmhVWH5la0Z4Xyk8JD1hdl8KcUBkKmN1dH47P2ZyfnIhckhZ
fHFYemQxU3VxZjZxanhZMn5nP0wpQSoqOW5XWit5NFFxSFE8XjYKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9wbmdsaWIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9wbmdsaWIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyYTliOTllMDg1
Y2E5ODAzMmI1NjViZWI3OGQ1ZTZjYThmNmVjMTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcG5nbGliLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMjA3ICswLDAgQEAKLS8qKgotKiBBIGhhbmR5IGNsYXNzIHRv
IGNhbGN1bGF0ZSBjb2xvciB2YWx1ZXMuCi0qCi0qIEB2ZXJzaW9uIDEuMAotKiBAYXV0aG9yIFJv
YmVydCBFaXNlbGUgPHJvYmVydEB4YXJnLm9yZz4KLSogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMp
IDIwMTAsIFJvYmVydCBFaXNlbGUKLSogQGxpbmsgaHR0cDovL3d3dy54YXJnLm9yZy8yMDEwLzAz
L2dlbmVyYXRlLWNsaWVudC1zaWRlLXBuZy1maWxlcy11c2luZy1qYXZhc2NyaXB0LwotKiBAbGlj
ZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocCBC
U0QgTGljZW5zZQotKgotKi8KLQotKGZ1bmN0aW9uKCkgewotCi0gICAgLy8gaGVscGVyIGZ1bmN0
aW9ucyBmb3IgdGhhdCBjdHgKLSAgICBmdW5jdGlvbiB3cml0ZShidWZmZXIsIG9mZnMpIHsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJndW1lbnRzW2ldLmxlbmd0aDsgaisrKSB7Ci0g
ICAgICAgICAgICAgICAgYnVmZmVyW29mZnMrK10gPSBhcmd1bWVudHNbaV0uY2hhckF0KGopOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYnl0ZTIodykg
ewotICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgodyA+PiA4KSAmIDI1NSwgdyAm
IDI1NSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYnl0ZTQodykgewotICAgICAgICByZXR1cm4g
U3RyaW5nLmZyb21DaGFyQ29kZSgodyA+PiAyNCkgJiAyNTUsICh3ID4+IDE2KSAmIDI1NSwgKHcg
Pj4gOCkgJiAyNTUsIHcgJiAyNTUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGJ5dGUybHNiKHcp
IHsKLSAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodyAmIDI1NSwgKHcgPj4gOCkg
JiAyNTUpOwotICAgIH0KLQotICAgIHdpbmRvdy5QTkdsaWIgPSBmdW5jdGlvbih3aWR0aCxoZWln
aHQsZGVwdGgpIHsKLQotICAgICAgICB0aGlzLndpZHRoICAgPSB3aWR0aDsKLSAgICAgICAgdGhp
cy5oZWlnaHQgID0gaGVpZ2h0OwotICAgICAgICB0aGlzLmRlcHRoICAgPSBkZXB0aDsKLQotICAg
ICAgICAvLyBwaXhlbCBkYXRhIGFuZCByb3cgZmlsdGVyIGlkZW50aWZpZXIgc2l6ZQotICAgICAg
ICB0aGlzLnBpeF9zaXplID0gaGVpZ2h0ICogKHdpZHRoICsgMSk7Ci0KLSAgICAgICAgLy8gZGVm
bGF0ZSBoZWFkZXIsIHBpeF9zaXplLCBibG9jayBoZWFkZXJzLCBhZGxlcjMyIGNoZWNrc3VtCi0g
ICAgICAgIHRoaXMuZGF0YV9zaXplID0gMiArIHRoaXMucGl4X3NpemUgKyA1ICogTWF0aC5mbG9v
cigoMHhmZmZlICsgdGhpcy5waXhfc2l6ZSkgLyAweGZmZmYpICsgNDsKLQotICAgICAgICAvLyBv
ZmZzZXRzIGFuZCBzaXplcyBvZiBQbmcgY2h1bmtzCi0gICAgICAgIHRoaXMuaWhkcl9vZmZzID0g
MDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJSERSIG9mZnNldCBhbmQg
c2l6ZQotICAgICAgICB0aGlzLmloZHJfc2l6ZSA9IDQgKyA0ICsgMTMgKyA0OwotICAgICAgICB0
aGlzLnBsdGVfb2ZmcyA9IHRoaXMuaWhkcl9vZmZzICsgdGhpcy5paGRyX3NpemU7ICAgIC8vIFBM
VEUgb2Zmc2V0IGFuZCBzaXplCi0gICAgICAgIHRoaXMucGx0ZV9zaXplID0gNCArIDQgKyAzICog
ZGVwdGggKyA0OwotICAgICAgICB0aGlzLnRybnNfb2ZmcyA9IHRoaXMucGx0ZV9vZmZzICsgdGhp
cy5wbHRlX3NpemU7ICAgIC8vIHRSTlMgb2Zmc2V0IGFuZCBzaXplCi0gICAgICAgIHRoaXMudHJu
c19zaXplID0gNCArIDQgKyBkZXB0aCArIDQ7Ci0gICAgICAgIHRoaXMuaWRhdF9vZmZzID0gdGhp
cy50cm5zX29mZnMgKyB0aGlzLnRybnNfc2l6ZTsgICAgLy8gSURBVCBvZmZzZXQgYW5kIHNpemUK
LSAgICAgICAgdGhpcy5pZGF0X3NpemUgPSA0ICsgNCArIHRoaXMuZGF0YV9zaXplICsgNDsKLSAg
ICAgICAgdGhpcy5pZW5kX29mZnMgPSB0aGlzLmlkYXRfb2ZmcyArIHRoaXMuaWRhdF9zaXplOyAg
ICAvLyBJRU5EIG9mZnNldCBhbmQgc2l6ZQotICAgICAgICB0aGlzLmllbmRfc2l6ZSA9IDQgKyA0
ICsgNDsKLSAgICAgICAgdGhpcy5idWZmZXJfc2l6ZSAgPSB0aGlzLmllbmRfb2ZmcyArIHRoaXMu
aWVuZF9zaXplOyAgICAvLyB0b3RhbCBQTkcgc2l6ZQotCi0gICAgICAgIHRoaXMuYnVmZmVyICA9
IG5ldyBBcnJheSgpOwotICAgICAgICB0aGlzLnBhbGV0dGUgPSBuZXcgT2JqZWN0KCk7Ci0gICAg
ICAgIHRoaXMucGluZGV4ICA9IDA7Ci0KLSAgICAgICAgdmFyIF9jcmMzMiA9IG5ldyBBcnJheSgp
OwotCi0gICAgICAgIC8vIGluaXRpYWxpemUgYnVmZmVyIHdpdGggemVybyBieXRlcwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYnVmZmVyX3NpemU7IGkrKykgewotICAgICAgICAg
ICAgdGhpcy5idWZmZXJbaV0gPSAiXHgwMCI7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBpbml0
aWFsaXplIG5vbi16ZXJvIGVsZW1lbnRzCi0gICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlz
LmloZHJfb2ZmcywgYnl0ZTQodGhpcy5paGRyX3NpemUgLSAxMiksICdJSERSJywgYnl0ZTQod2lk
dGgpLCBieXRlNChoZWlnaHQpLCAiXHgwOFx4MDMiKTsKLSAgICAgICAgd3JpdGUodGhpcy5idWZm
ZXIsIHRoaXMucGx0ZV9vZmZzLCBieXRlNCh0aGlzLnBsdGVfc2l6ZSAtIDEyKSwgJ1BMVEUnKTsK
LSAgICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMudHJuc19vZmZzLCBieXRlNCh0aGlzLnRy
bnNfc2l6ZSAtIDEyKSwgJ3RSTlMnKTsKLSAgICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMu
aWRhdF9vZmZzLCBieXRlNCh0aGlzLmlkYXRfc2l6ZSAtIDEyKSwgJ0lEQVQnKTsKLSAgICAgICAg
d3JpdGUodGhpcy5idWZmZXIsIHRoaXMuaWVuZF9vZmZzLCBieXRlNCh0aGlzLmllbmRfc2l6ZSAt
IDEyKSwgJ0lFTkQnKTsKLQotICAgICAgICAvLyBpbml0aWFsaXplIGRlZmxhdGUgaGVhZGVyCi0g
ICAgICAgIHZhciBoZWFkZXIgPSAoKDggKyAoNyA8PCA0KSkgPDwgOCkgfCAoMyA8PCA2KTsKLSAg
ICAgICAgaGVhZGVyKz0gMzEgLSAoaGVhZGVyICUgMzEpOwotCi0gICAgICAgIHdyaXRlKHRoaXMu
YnVmZmVyLCB0aGlzLmlkYXRfb2ZmcyArIDgsIGJ5dGUyKGhlYWRlcikpOwotCi0gICAgICAgIC8v
IGluaXRpYWxpemUgZGVmbGF0ZSBibG9jayBoZWFkZXJzCi0gICAgICAgIGZvciAodmFyIGkgPSAw
OyAoaSA8PCAxNikgLSAxIDwgdGhpcy5waXhfc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIg
c2l6ZSwgYml0czsKLSAgICAgICAgICAgIGlmIChpICsgMHhmZmZmIDwgdGhpcy5waXhfc2l6ZSkg
ewotICAgICAgICAgICAgICAgIHNpemUgPSAweGZmZmY7Ci0gICAgICAgICAgICAgICAgYml0cyA9
ICJceDAwIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSA9IHRo
aXMucGl4X3NpemUgLSAoaSA8PCAxNikgLSBpOwotICAgICAgICAgICAgICAgIGJpdHMgPSAiXHgw
MSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5p
ZGF0X29mZnMgKyA4ICsgMiArIChpIDw8IDE2KSArIChpIDw8IDIpLCBiaXRzLCBieXRlMmxzYihz
aXplKSwgYnl0ZTJsc2IofnNpemUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIENyZWF0ZSBj
cmMzMiBsb29rdXAgdGFibGUgKi8KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkr
KykgewotICAgICAgICAgICAgdmFyIGMgPSBpOwotICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7
IGogPCA4OyBqKyspIHsKLSAgICAgICAgICAgICAgICBpZiAoYyAmIDEpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYyA9IC0zMDY2NzQ5MTIgXiAoKGMgPj4gMSkgJiAweDdmZmZmZmZmKTsKLSAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjID0gKGMgPj4gMSkgJiAw
eDdmZmZmZmZmOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF9jcmMzMltpXSA9IGM7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjb21wdXRlIHRoZSBpbmRl
eCBpbnRvIGEgcG5nIGZvciBhIGdpdmVuIHBpeGVsCi0gICAgICAgIHRoaXMuaW5kZXggPSBmdW5j
dGlvbih4LHkpIHsKLSAgICAgICAgICAgIHZhciBpID0geSAqICh0aGlzLndpZHRoICsgMSkgKyB4
ICsgMTsKLSAgICAgICAgICAgIHZhciBqID0gdGhpcy5pZGF0X29mZnMgKyA4ICsgMiArIDUgKiBN
YXRoLmZsb29yKChpIC8gMHhmZmZmKSArIDEpICsgaTsKLSAgICAgICAgICAgIHJldHVybiBqOwot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gY29udmVydCBhIGNvbG9yIGFuZCBidWlsZCB1cCB0aGUg
cGFsZXR0ZQotICAgICAgICB0aGlzLmNvbG9yID0gZnVuY3Rpb24ocmVkLCBncmVlbiwgYmx1ZSwg
YWxwaGEpIHsKLQotICAgICAgICAgICAgYWxwaGEgPSBhbHBoYSA+PSAwID8gYWxwaGEgOiAyNTU7
Ci0gICAgICAgICAgICB2YXIgY29sb3IgPSAoKCgoKGFscGhhIDw8IDgpIHwgcmVkKSA8PCA4KSB8
IGdyZWVuKSA8PCA4KSB8IGJsdWU7Ci0KLSAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWxl
dHRlW2NvbG9yXSA9PSAidW5kZWZpbmVkIikgewotICAgICAgICAgICAgICAgIGlmICh0aGlzLnBp
bmRleCA9PSB0aGlzLmRlcHRoKSByZXR1cm4gIlx4MDAiOwotCi0gICAgICAgICAgICAgICAgdmFy
IG5keCA9IHRoaXMucGx0ZV9vZmZzICsgOCArIDMgKiB0aGlzLnBpbmRleDsKLQotICAgICAgICAg
ICAgICAgIHRoaXMuYnVmZmVyW25keCArIDBdID0gU3RyaW5nLmZyb21DaGFyQ29kZShyZWQpOwot
ICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW25keCArIDFdID0gU3RyaW5nLmZyb21DaGFyQ29k
ZShncmVlbik7Ci0gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbbmR4ICsgMl0gPSBTdHJpbmcu
ZnJvbUNoYXJDb2RlKGJsdWUpOwotICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMudHJu
c19vZmZzKzgrdGhpcy5waW5kZXhdID0gU3RyaW5nLmZyb21DaGFyQ29kZShhbHBoYSk7Ci0KLSAg
ICAgICAgICAgICAgICB0aGlzLnBhbGV0dGVbY29sb3JdID0gU3RyaW5nLmZyb21DaGFyQ29kZSh0
aGlzLnBpbmRleCsrKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0aGlzLnBh
bGV0dGVbY29sb3JdOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gb3V0cHV0IGEgUE5HIHN0cmlu
ZywgQmFzZTY0IGVuY29kZWQKLSAgICAgICAgdGhpcy5nZXRCYXNlNjQgPSBmdW5jdGlvbigpIHsK
LQotICAgICAgICAgICAgdmFyIHMgPSB0aGlzLmdldER1bXAoKTsKLQotICAgICAgICAgICAgdmFy
IGNoID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXowMTIzNDU2Nzg5Ky89IjsKLSAgICAgICAgICAgIHZhciBjMSwgYzIsIGMzLCBlMSwgZTIsIGUz
LCBlNDsKLSAgICAgICAgICAgIHZhciBsID0gcy5sZW5ndGg7Ci0gICAgICAgICAgICB2YXIgaSA9
IDA7Ci0gICAgICAgICAgICB2YXIgciA9ICIiOwotCi0gICAgICAgICAgICBkbyB7Ci0gICAgICAg
ICAgICAgICAgYzEgPSBzLmNoYXJDb2RlQXQoaSk7Ci0gICAgICAgICAgICAgICAgZTEgPSBjMSA+
PiAyOwotICAgICAgICAgICAgICAgIGMyID0gcy5jaGFyQ29kZUF0KGkrMSk7Ci0gICAgICAgICAg
ICAgICAgZTIgPSAoKGMxICYgMykgPDwgNCkgfCAoYzIgPj4gNCk7Ci0gICAgICAgICAgICAgICAg
YzMgPSBzLmNoYXJDb2RlQXQoaSsyKTsKLSAgICAgICAgICAgICAgICBpZiAobCA8IGkrMikgeyBl
MyA9IDY0OyB9IGVsc2UgeyBlMyA9ICgoYzIgJiAweGYpIDw8IDIpIHwgKGMzID4+IDYpOyB9Ci0g
ICAgICAgICAgICAgICAgaWYgKGwgPCBpKzMpIHsgZTQgPSA2NDsgfSBlbHNlIHsgZTQgPSBjMyAm
IDB4M2Y7IH0KLSAgICAgICAgICAgICAgICByKz0gY2guY2hhckF0KGUxKSArIGNoLmNoYXJBdChl
MikgKyBjaC5jaGFyQXQoZTMpICsgY2guY2hhckF0KGU0KTsKLSAgICAgICAgICAgIH0gd2hpbGUg
KChpKz0gMykgPCBsKTsKLSAgICAgICAgICAgIHJldHVybiByOwotICAgICAgICB9Ci0KLSAgICAg
ICAgLy8gb3V0cHV0IGEgUE5HIHN0cmluZwotICAgICAgICB0aGlzLmdldER1bXAgPSBmdW5jdGlv
bigpIHsKLQotICAgICAgICAgICAgLy8gY29tcHV0ZSBhZGxlcjMyIG9mIG91dHB1dCBwaXhlbHMg
KyByb3cgZmlsdGVyIGJ5dGVzCi0gICAgICAgICAgICB2YXIgQkFTRSA9IDY1NTIxOyAvKiBsYXJn
ZXN0IHByaW1lIHNtYWxsZXIgdGhhbiA2NTUzNiAqLwotICAgICAgICAgICAgdmFyIE5NQVggPSA1
NTUyOyAgLyogTk1BWCBpcyB0aGUgbGFyZ2VzdCBuIHN1Y2ggdGhhdCAyNTVuKG4rMSkvMiArIChu
KzEpKEJBU0UtMSkgPD0gMl4zMi0xICovCi0gICAgICAgICAgICB2YXIgczEgPSAxOwotICAgICAg
ICAgICAgdmFyIHMyID0gMDsKLSAgICAgICAgICAgIHZhciBuID0gTk1BWDsKLQotICAgICAgICAg
ICAgZm9yICh2YXIgeSA9IDA7IHkgPCB0aGlzLmhlaWdodDsgeSsrKSB7Ci0gICAgICAgICAgICAg
ICAgZm9yICh2YXIgeCA9IC0xOyB4IDwgdGhpcy53aWR0aDsgeCsrKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHMxKz0gdGhpcy5idWZmZXJbdGhpcy5pbmRleCh4LCB5KV0uY2hhckNvZGVBdCgwKTsK
LSAgICAgICAgICAgICAgICAgICAgczIrPSBzMTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChu
LT0gMSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgczElPSBCQVNFOwotICAgICAg
ICAgICAgICAgICAgICAgICAgczIlPSBCQVNFOwotICAgICAgICAgICAgICAgICAgICAgICAgbiA9
IE5NQVg7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBzMSU9IEJBU0U7Ci0gICAgICAgICAgICBzMiU9IEJBU0U7Ci0g
ICAgICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZGF0X29mZnMgKyB0aGlzLmlkYXRf
c2l6ZSAtIDgsIGJ5dGU0KChzMiA8PCAxNikgfCBzMSkpOwotCi0gICAgICAgICAgICAvLyBjb21w
dXRlIGNyYzMyIG9mIHRoZSBQTkcgY2h1bmtzCi0gICAgICAgICAgICBmdW5jdGlvbiBjcmMzMihw
bmcsIG9mZnMsIHNpemUpIHsKLSAgICAgICAgICAgICAgICB2YXIgY3JjID0gLTE7Ci0gICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDQ7IGkgPCBzaXplLTQ7IGkgKz0gMSkgewotICAgICAgICAg
ICAgICAgICAgICBjcmMgPSBfY3JjMzJbKGNyYyBeIHBuZ1tvZmZzK2ldLmNoYXJDb2RlQXQoMCkp
ICYgMHhmZl0gXiAoKGNyYyA+PiA4KSAmIDB4MDBmZmZmZmYpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB3cml0ZShwbmcsIG9mZnMrc2l6ZS00LCBieXRlNChjcmMgXiAtMSkp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjcmMzMih0aGlzLmJ1ZmZlciwgdGhpcy5p
aGRyX29mZnMsIHRoaXMuaWhkcl9zaXplKTsKLSAgICAgICAgICAgIGNyYzMyKHRoaXMuYnVmZmVy
LCB0aGlzLnBsdGVfb2ZmcywgdGhpcy5wbHRlX3NpemUpOwotICAgICAgICAgICAgY3JjMzIodGhp
cy5idWZmZXIsIHRoaXMudHJuc19vZmZzLCB0aGlzLnRybnNfc2l6ZSk7Ci0gICAgICAgICAgICBj
cmMzMih0aGlzLmJ1ZmZlciwgdGhpcy5pZGF0X29mZnMsIHRoaXMuaWRhdF9zaXplKTsKLSAgICAg
ICAgICAgIGNyYzMyKHRoaXMuYnVmZmVyLCB0aGlzLmllbmRfb2ZmcywgdGhpcy5pZW5kX3NpemUp
OwotCi0gICAgICAgICAgICAvLyBjb252ZXJ0IFBORyB0byBzdHJpbmcKLSAgICAgICAgICAgIHJl
dHVybiAiXDIxMVBOR1xyXG5cMDMyXG4iK3RoaXMuYnVmZmVyLmpvaW4oJycpOwotICAgICAgICB9
Ci0gICAgfQotCi19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cmVkLWdyZWVuLm1wNCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5tcDQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZDZkNTk2NTg5MDZkMjM1NjZmMWFhMTQ0
NDNjM2RjMWVhYjQ2MTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgOTIyMjUKemNt
ZUk1M3Y/OUs4T1FKSkd5QkxVSztEMlJBYzdXNHcyJX1MNWBrSnUzQUxzP3RWKVMmQjl3JVhZelBr
cEU9VSFRCnpSMXM+UzBwSFhJd2xvb3tjdT95UkQ2UGU0S0AyNHxLOVdZazkqfjFQaT09bXcoOUx9
RldxYXFgUEVYSjJ3fSh3Twp6fExufHZ6dShSYGNqaUFnM3U3IztxLXg+WnZialVBKTI/UVBgdUFD
cEAtb0kpVHVFaGRHMUczcHgtNDgmQzRQNEoKejYyO2VlNUEhdiZGcVY5ZEYmN3M/JGZObmhsZHFW
YG4zSExgUWE0fkZQYUpXK3V6djZESWphanNFeHRlSGpzWHVPCnp7QzQje2k/bC1uVUVlc0ooZnJv
Mm1zYWc5ZEg8RiM3dT4mVVJtdEZjUG4+O2E9WmU3VT05MUhveDZQaC14T3d4aQp6eWw/JF4odWBZ
IXdZP199eCU8UjdaIUxYY3tnJnNDbypkPnFeNS0zSVR0MFFlKWhDQ1pgMS1yYDt8S0hCQEFadXoK
eko/NmNJcDRNbGFRfHxpQilRPkxDJTVoIypkVT9xUUlnMVk2fExyZGBXfHN9bUozc0M0cipGQj5C
PD8hMj81a2xfCnp4d3JUR1MjQz1Ecm5tQX1qUXc1Q21XKmUyaCFeZWZXblVeTHppVG0+U3Y5Tz4j
S3FPeTh6JF5uU2VfQnN1c3piKQp6bHNLcW09aWxCPVV3RVNWP0p0YldAfitFWG8+aW04JUBAbj10
OGd+dnc0T1UkJnhZc3M4IV9APTtrdCVYN1h+amQKekY4VCZzYmZ4VH5uZ1BGWGJ4NkJ2aEdPK2E8
eX5RfFBJKl5ZdDVlJDUwYyYraHlFPFU0dTJgO0ZpRWoycEAzdUZACnpuPyQheDA9WE8xUCVJKi1X
YE1hSHhMTEhLJXA8QzFUJmtQdVQhS25hJT4tO3ZzUSt6JSVCY1RzcHNFVVdHM2B7JQp6P31+RSZS
fSlvP3MjJnc1UjEjRChGNGd7ejVMNjUqSDtZeWpJe3JzIShXWigoUUklQW9FfXtONnpYaShVS2N5
O1cKenNMSUZ4XkohQnhRJnNLJU1QaWxGcHhwcmpXVmR7ajNqPF8jdFNIeXU+VnlIWk43fmcxMTd3
ZjlFM0ROaz8rUj02CnpPMXJ2WHQjUSg+RT84QHZ5ZXE4TEMrYFl0Xn5HfGY3UjZlV24/KS1NalYx
XiEpZzIjPUNOQEFfSz5jcn5zKGRzXwp6WF82VkxeM2YhbnE3emh2ZkRNdnp8NUhZWHllcTJYS2ta
YSlmTzxFTHw3TlBue1pCKWM4TElPNVBiWEQyS3dVYHYKelo+Q0U5WilUI2RzRSs/TW4rJG1tUkgw
SStmPG9ucFlDKTxIJnk4bUVaa1FuWnJMJFomT3B5SnR2UnREcE9wcFdlCnp0fXNDa05WfEdxdHdD
djU1M0RzUD8rUjs7bXZARD0jIUlfO1ZYWXgpUzErdEo2dzgmeVhtanRXPylkSEBzUS1EVwp6Ymx6
aVREJGFYMnFGUnQ+ajdESW9fQ0V6NUhiN2xVSjVAN1A8XkhGayRfIU9HT2BeSFVIYkFCRUFCRDto
KXErRzwKemxNcTt7PDNDTkt3RS0kY15lOXgwczFfdlplKn42bHxJPG04NE4mUHc2QHwoWClxKnIl
SlU1eXFkdHVnQEFmR3pJCnp0VFEyMj5TJUN7Z0lRO3l2fSt2OUl1cXF4VlhaeW5VMTY7fnErTlpt
KX1HUj9LM0hve2N+QDkjRkxfczNZcCs8WQp6YmRHTkJKPU17S3UxJVZtRHhhYmdSMV8qbFIwfFJ2
cWEoMFhgPThRZTg9ejd8aGVHOXVZQylvRHY8TktLey08ZWwKekhiQUFiTmZhdGFSMHxTfnt8R0dW
ZSp9dUVxemFZQmY4LXJkek01UGA9bF5EYHMrJWZKZEB3VXJLTDRrYURpa1Y1CnpSMHxUTkRoTXBx
eyRES0M4STk9dUZoRVh7aiZsN2xLdShHazxyLWFLZlNmR3YzSXBWMVkxYVUoSEFVSnIwQmNRPQp6
Y1pJZDQlRGNpXlE+OSZsdSt9dGIqQzREbEV0Vj97KGRIZ2laQmVANVlpNm9HSDw/QmdscXc9eGtt
d0t7ZnUtOTIKel50czY+UkYwPz9CdWJNSlNnTTtVTEEzIVlQNTRCaWF6d1F0KE5QcndPU1MpTHNJ
bWJuXio7KWdCZFBfNzx8WlNzCnpSUXNQIXMlKEh0VFBnfmJCZFBfN19Ob1hoKSY4ZzFCc01eZWg7
PkZJYFhDSUQpOChVRjckQiN8aWdGRkVAaTBLbgp6a2FtclMwZGpgQ0UzQ0QqeWVxNz14M3Becio0
anRmSDNWenpCa3V9cD9KTXNKWXdhNyRsX0dqYGsxRWVpcHkweXsKelJyeFlIOVpsSyptOXx0QURv
MGNjNShPVSFFWStoKW5ucGBkNWR0PHklSHd8cDlhV2olN1M7WnpYPj98JCRfR182Cno7UytfKjUh
SGYzWCVZZlV3Znx9U3cqZXxgc1ZHI0FzMV9zfHN0e1BKe1pIcnJIYjdrPCo2SHZpaW0maz09NCl0
Uwp6RWNxTmBFLXIrU05BbzNnNExgTmkwVntjMnNPQH1We29kbDt4dFhgc3A4ZjJwR2JNVy0kfm0z
V3p2YU5IPzV4TFkKejghbnF0PCpNI29AYmJvX14qIzV6UyQxVTJsRHlSMXh5dmR4bHtSZkhTaHs/
RiRhOGVeIV49S1IreGw4NEE+K2FGCnp0c0JHQndnIWVZWUZtPHpvZ2NDOHpWKENCY2ZONHJ5VDx+
ZCE1SWhaKktLIWktZDxPfVpTfXNaNzk2X252QlJhTwp6WUNtZkohLXVVfnJ0aHB3cyU+akteKztS
V3hWKk5QSzVTZE5ec0NjJUE2dDdkQCNEUHlvOE50Ty0wUHAqO0B5NDIKejd8KjJJUUx8Rz1vdCU9
bkh9SiZ5bmUqSj1VbWFYPz5ZWEo/JipsJTw5Mm96NCheM0NyOD1BdHVgMENLblJ9UXs2CnpeaVNJ
IXNuaE9Vdkh2PytTPzZ3Qyo/Uk4xcFMtPHgmIzk/SEU7S2hAYHwyTlNIcTAxM1lncVJGPCN8ODk9
fHtpKgp6UnFwIUY+JS1TP049c1RRVV99I29XKGEtelhWdEtsNWZAazJFemc9O1AraGxjQCskdWVo
ZCgqYzxhK1dLaHF0WDgKejhPaT9NYnhwPl80WiZ8bFIqanx5empjRX5QcmNUOEA3bFU9bz4rWTl3
YVQ5SiZ6PzBkV3lwTj5yUyMxQS16fXdlCnplUnI4eSR8MipXODRBPndsSmJJZUlpPFd7VH1+TTwy
ZHY4XzxLPSpMeHdgUzlsUkw1UGZ0Jkl2R1l5JTVzUSNucwp6a1Z6QTtaR2NNUUUoKDwrc3MpTXVO
RSg1cStXI35HIXY/NXklOFd3Z2gteUtpM0ReaU0pJjhlYlcqZVo9TlFGWT4KemgteUtpaTNrV1Ip
JjVeVnI+YlZFcyEoWUh3d2JCPUE3SW5AS1N+dTVFbDlMZU1QUkErS2FLdz1SRjA/P0I7Jk1wCnoy
VFk2SVFWQXxoaXswSE14Wi10MTFBOFktaSM7LTRQTTgqWnFgWThWVU1Wa0Ztc2lIaTE/ITVGQHA4
ZXM7LXRKXwp6VHxPeDxTZUxJR0ZGSzRkY2FyTEVqT003Qm5KTmVGbG50WCRJaWd5Uz0lWmN7U2dR
UmAqXm11VFgtaD8rYXp3UXQKelFSMHJrUXRmfkdLUTMqNk4qQ053czJvdShOWXd1YkVZPCN9QHQ+
ZH4xWjxGJD1aNFh5aW83ZVR7WkJFYjROJlFWCno4dyE7cHNzKUx6NEkhfFVgKExheDhpS29GU25R
VnhhTlJJMF9JREhEOG9nang5RlgjWVZSMW1sJUxENVElNk5IVAp6VHxwQD9TWGFFMTdweUJAIz4p
JXEzZHdrUlZPXm5heWVNIXRjYnNhJihGYHs7UX11WlJiY3F8S2lpajJASV5hZk4KenNyRW1tNyR7
VlpzMV91OzspY0xkLUJjO1l2O2l2cEYkTX5pQmRQXzcmYlNkK3N7SyFnc3kwQlNZcmBtMWo7SXpT
CnorRWZ1KHN7SyNkdW5rYVlxKFklYE03MUUlVUtOMyorVyE/fG96Wk9BM3Y8bGBzakx5Xm5oRCl4
alJ2bmNtfUA0PQp6YypWaDdHZn5QNSo0MERHMylhO2AjPilybT5NNyZwZ0xVPGtAYDgyc2xKYkll
XzNGbHB2U0QrX3NXdSE5eE1yczYKeiopVi0jQVc5VnhFbDNuJkFoMTtYcDh8SWpEbzBjYzYyK0pa
RVkoZXdjQihjJnJIXjRvcD5qbUVBa242WnoqNm1oCnpgbnYlZXBpK3Y3TGdrMlJMODVGM2Z1LTky
dzVpJHZtQ3BaQnMyb3UoTlIrckV1dkdoPmNCKGMmSDNzZn03IzFoVgp6MWh7P303QUpLUjtFTEJE
NGZwKnBFS1pqNGY/O3Y4ajhfMkdsX0tMNmZPVnh2ZEJNNjtyTXpIV3NXTShjU1hZe2kKelJ9antm
KXtQZWg/JmdrRHsrbHV5YW1gU2JLbUxTSHhOVSQrZmpiSjdCZFBfNzVfYmZhPmFpZ08/bHdUQm9o
a35JCnpCZFBfNzVfYmZhWVg4JXdZNkRhWCspPTA7UTd1VDY0SSF7cGA9OTw4JUxiP3Z4VDg9eHFG
UnZYdE98anArVyZNPwp6V2RsX0ReYi1eK01ecDxed1JtbmMxck5mc0k5KTJpZz11a21Id211NkQ7
fW9CODhUaytGZkdvSUBgODJzbWh5c2kKel5fS0FwIU1nZyRjIWdrSGVXYmkjVTQ1bXpVfG9IP0B1
SX10Kyh8U3huMypVbXMhKFpjSzs4bzdZZVJJempaI0hLCnozbGh5Nkt3em8lS1Y/SEdSRjA/P0Jz
el5qVjV4NFoxbDB6cCljK197ajtJelMrRWZ1KHN7SyNkdW5rYkAoK15Sbwp6OThvUHVHJmMtXnJQ
fX1XLT1eOUNtQnhQKkRvMGNjUXBmKkFuSkFXc19iXntXM3VEUlc3O3x3VWdnbHhyITRQeUYKejhu
QldGTHY3fl4+LVFHIyZkdDI3X1V2YSpvaGpNI1B8b1Jge3cpVnFXb0pFSitpPTtHRHB6JnlmfG9a
WXQ/IysjCnomOVduRm1nSkA4JlJ0ZnFza0V1PzxpKzxOe3E1ZHlLVklee1EoSiFqVioyISlQMURZ
TkdXVyY1T2NecSVATD1uWQp6NkFuQ0chQUkzQG5BQUc0WDhweyYyQmhSaTIwblAtbFVlV0lhQnQr
IXtKdmxJRHx2M3ReZTJLWEMjVX0tPWc3QUEKemNWRDBQI0RSJWRKZXV7dWI1RCgjRm5zeXdnMmN2
bXt5SzhAUmJQTWVWZlAwfHI9NUx1JWAkZjdfKmJxdVFvTzVyCnpfX21wRTwmRGpib2NzT3BVUk9X
ZGMmMDlOZTg8WlptdSMrbFl+Uytka0JNcmQwWFp8b3c4T0olU2omaXV0RzcyeQp6KnMtdVlCZH1x
NnFfSFY2YD12WEV7Y3phRWptSkxeeztIdChpXnAxQHpDTHNHR0puekVVdTVqZyhYN1ZgRW4lcn4K
enJHXnl1aE84UCpQalI+SnQ4Z352dzRPVSQmeFlzczh9V0VqV2FLLSlPbXQ3Xm0kJk9Me2dkdVZJ
c1JuKmYmQXR7CnpBTTk8Xl9JJUwld1luP2NjeWhwZTw5WkRfQDh4Mj5kZD5eaEpNdilSeGB0QzEx
fWB1eXN1fHV9djhWJWlOIT1gSgp6SyVfNCE/YGktYzdJbihJIWRqaXV0YDFuTU9XTUB8WWp3cVBy
OHIkfFc4a0pib1lKUVcxRUJoa3MhJURUTTRAcy0KendJRVRQaj0tVyM2QGo4RTVtWiV6JG50Yks0
U31MOHNjeHo/ZS0oS1BSSDBJd2hDPTB0WUMpb3EwKWVIdnNTO0VoCnpwaSlNT0xnazJSTDg4NFgw
IXl8M1kzNyM9UC0mLSVMZ2syUkw4NFJ6ZnUtOTIzJmxGNEB3QHtEJFpxKjQ3WTR9Zwp6U1cmTFEp
ZD5TK2tGPXszMkZNPEhTNkhpOC1XQXNCbTNEUShUSH5aJFU5aT9UY35AQWdQdT47UT5XayR7NXh1
IWIKelJhPXhzNkVqb3c0fFMpPlN0d09Sdj47SkxrSEF2eHt8ZWZ2bnlEKE0kQENjJFd+ajsrSzUz
fTMwVj9mT1FLJWVJCnpFbDNvNkFoMS0yRCo3fWU4PSVyaWcraz9zWUMpcE8qJDZEdnstXlFaMkI+
czMzNUNpTClxK0c1OX0hcnB7bDdAOAp6R255djVWYjx4RlA5NURhPi01Sjs5Z1ZJcT5rUD1kIW1L
a08/ZHBORzJCbHArdS0yZndFMzdxTS1XQXB3RllXNHUKendUN2YheXxDNiRFTFJGWCVzcn53cUJO
U0FuWDBHQmJkSFd2TU1NaHtvJWtUSVJRc1F7UjFfKmxSMHxTYU8rc0wpCnpabUk7OzJCPFdQMjhH
SEkpcStINkc2R0FyfDAkeGcwVj5VK01XSiM7d0lJPlFLcUloSmA9NV5nWkdjTVNLTUl2Mgp6c3Mp
TXFBQXpPWHxDTmpkOXg1dkAqRlImc3c1KW4mU29pcUQ7dld2eD9AYXNBOHNfPE1Fel85KEZNMmNs
QVl8fSEKemUpTzV4QlBVfj91VEBuUiVAKTdCeT1yIzVyfXRsO20pN1FLRyVWWTAwZXQ/QT8tai0y
RCpmfGVgVl5OJnN5Ykp1Cnp1fWtaMVV6aHZvdmhiYFRAdz8yakZzUG1GPGpuYVRPV3hiUTxqfFNu
UW8qWEA3QWM9TT1oOT5TZCFoSV9vTE52VAp6UitUeGZYaW03YVNid1ZmK2h3IW5sIXluM2srUDA7
PigzUnBFNWFSbXBLeFdkeyhKcVZ6bmI4QCVGQGheJEw+SSsKej5kc1F9X19qekByMlJlVihBanMo
PF9eX2d1WVBOPHAjNzE5PjdSaDN6aGVEMXVzOU9kPnRAYiRAeHwzNktiZCpOCnp2JWhTPXlCJDUm
Y3I9SWpNT3ZoKTlncUdAZU57KXJiTT9uN2gyOyRXZnc9al9VSF9mRmRpfWUyPnNVaFBXQnRqTwp6
Ymd9K18+RTE1N3VaeW0pPihjWHNVRyhAYWRNSyhwVWxwJUl6dTBsPENTSVI1TiEleFFleTdKQkpj
dDh2XyNmS18KeipufipjalBsT0w3NWZXazI0ZmtvRj9MLU1XODszcSp6e1clbn0zUzJoWHloQk9i
dWhOMk4tKkFBWS0zelY0Qm08Cnp3MldKc2NJXmVHalQ8bGFObmdZbUQpanhCNylgX3cxI2tNXnNf
UEI+b1VpfXhXXncyRzFKPXpAcHw5NkBxKz5feAp6biVWdE9GKXkxciNAfmt4NzFndUMjcUFFQVVu
WXk2JVN9VXRFNyY8eUJ2cDN8Njx1R2cjQmt4PCpFdzhsMkUpYkEKemltR1FeK2lCZihvZ0xFNnFX
Vz4tcD89cUluKllZaFY9fjgtaX1DNU00aDRRcVlpa3FJRDYhVHRUMHVUKmA8TStKCnpTZGJybHZ+
S0pLU0g2eWw5aTR1Q3cpP00rVzZLfTtYYDE3aEh2aCkpeVNEZDtUZUMpRXUwY20xJW9JeiphcCZq
bAp6akQ8ZUtJMzhXbmAqYXpQXmN3Vmc9ZVhuJDFHezAyNVgtUDhhbGIqX05Cbj0+d1h2ZWtKYU56
WXxGfjt6UUsjNzcKenY4bSR6LStZaDNLOD1aZVM2VnFeKn1XTE1zZmUqQDsmXkRAdnk0MztfR19E
JGg9Wn0/ak9gY3V3SWxiNEUlcTRHCnpRcEo5NCRYMkYoPnc8WFFgWm5FdWgkYkhFJDVpP0BKeVA4
REtOWHhnWntEbk0hNEptJTtOak8reXF4I192NVYkMwp6UHUoeHtZQHl2R29fUXNeaEI/SChNcWBE
bm9YcnUtNm9eTVJ2cjBDTFJrST5pI1g5eWxuZmZ9IXZyX2N1UHVlWXgKTUZVM20yOzshSFIzNlRn
UjhVTyRRCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVu
LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwNWFjOWJhMWJiODQ0NGIwNDk1YjM0NjU0ZjBlYjRiZDQz
YjVhNDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTQ0CnpjbWVBU0BOPyhvbEh5
YHVWQnEhaWEwdnBeajZscjkhMn40NTl4RTFyMWQ0OylvZnlgZ2xYKGZgdSV0V3NJeDtZOQp6P0Mx
V0kkT19+dUJ6cHc7R0I4eEJGKSVjPUZmalpBM05eZjdVPz8/VVYwZXxseitnM2xma0NgciZhT1pr
cGFoPyUKbGkoYG1IYz1DXykzQHJhODg5NHFre3hgZHtMSU5ubTtPWGs7dmQkQD8yPj8lcEI1ZVF3
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLnRoZW9y
YS5vZ3YgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndgpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU0MzkxNWExMDgwYzhiYWM1ZGVkOGIxNjU1
NGJhZWMyOTBkMWM4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMDI5Mgp6Y21l
Rz9jfDZvPl91c0xPSE90dD0zeyNBeTNAWEhKT3g3dEghPkNjSiFOaWJ+TEFoO1g0TXtjR3NxQUlL
alMjSnQKeml8ams0alM3YGdtJiZ+QCpZRWt4PXc5OVR7QChaZl51Qi1uS0VMeU1KbSkjKkprTDRM
SW5Wd2JufHlzO0FwdkxzCnpzYHV+PHpaNWlGTS1YLX5TJCsoPDQ8el9pNERqPkMjTldgMXN6Ukgt
KEprJUVteU9sanhRRWJWaHhqcX0yR2Ehdgp6NVJmcDBnZGoybXYwLV9yNWQ7YW87TUdKeGtodmI+
Rkl2KipKUTxYZF5eJDxsSyFvaUxfRn1TTm1IXylZMWtENDAKei1YVkNuMkVudD51TVRxOUg9cShL
RkJzNGpBZGBWfVVWSGEyQU9wYUh5OVdEWjZiZG9gRmFGe3IlbWFPZCo2LWFECnohcV5qSD1vVEt0
dXQwfH5lSGVSSl44SnQhVSN0KUFCJi03TjUpODF9I3FjJVctfEN9PmBZYHZkPGE7Q357JXo7cwp6
OT5ROClJNkJOb041Tzc+ZztOcHk5X1J6PDdHe3YmaWNQYDM9LW9eJkp7T0gmZmt6dH44SlFjSTg1
XlRALVRYcFgKemRsPFdZPXMzNncrVGhSRGRIcDZFVForfUxVNGNPaVV0QGtOTCElWU90TXlyN2Qr
QDh4alpITmBIUD1tNCU2aSkhCnpuX0x+TlReKzI8U0RUdXpHUkZIRG5mUkV+KkJCY3xAfClmMilT
YXZDM3tiOHJifGxITHZNMkN+bDtpPm81fSlXTAp6Nk9CTzxmRXFyPzI5fit7YV8pUn5tLX5GY2VD
ekhCejR2flgrO3J0fVNQei1zIV9CaSE+fmEtNVAoajY9aU57OCYKekFQLXFDTyVsbnNYNVZudkx4
fkFfVkV7djJHRkc2VDVORD5LSTVOSUUrfjh5cmVQdjVqTl9DZ2xQd29qLSMwWD1LCnpaU0lvRUda
ezVRNDVQSDslUDFMVTkwJHkpVn56RTlOQnZFZUM3UWYpMzgoQ3xXQntZPyZRMWRxR0FlPl9gUiN1
Uwp6YiM9ZEJ0Z1hwQ0ohNyZNN1o8fGxDP0gqMiRZVGd1SmlzbXBTdllyYiFTRTstN2UyKmZAaU01
YzlBU09CeWJpUi0KenhZWEJROV88QldlU09eKzAjN2dSP1g4IV4xOFF1bipFKnVTejg3R1MwfFd7
SFU8NiZ4TU1Pckted2lhajtxJnR3CnpnRnlTcHNBTzA2bUBLYDJSakErPyM+PSg5WllaUVQoai1K
IUB0OHMqTkB6VDZlX0VfdE93JEopNXhYJF9lK24zawp6JWpzTUk3OzhGPWEkVj49R01BdDhTcFBK
VyNuNU1uTTR+bXVJI0xWOV5oaH4/aH1KVk9eez5ITjc4Q2hsXzNHN2wKemo3ITBDNylSdkMwPF94
cjlaZGFlITJkWkMtJmV3YjBQS3I2VUF9PG9gQlolYGp8cypLbUkyaGVmWDRYTCpjZ3VxCnoyMmZV
MylfUHhWMUE+blBGZyF7PyVMUWYlWGk7NEZofm1QZEQzc0dNbFMxTC1FdWRUazAlMEF8QVB+VnZR
NDJfagp6JEJZc1pMSTQ+K0xJXiQqNSNVaUckT1ZMaTRzRzhTYShNZkxTTDtAbVR+Xih0YjB8aXdl
bysya2FFSS0rcSYwTyUKeiNecjJvKXxZY1c0cEt9eiU5YCMqaWB9Vnp5PnckKjdycDl8UjNldmg8
SjB+bnQhdnwkOEpAPz5nO3QpbmtHKHxSCno/UWBRdUBVKyl2YF5zPH51e28tUGI7M2szS3hOSTVD
ZHF3S0JiSE9PbjdYemhANGVhVTY1aWdCbzR4djNYSzlmfQp6PzxCPmhTPldaK0U/MDhFRWZxdEl7
ZkNHalFOTlVUVC1QUXtsTW1YVDRiQlNPZXxmWDhVTHhgcWNLKjArTiRgPnkKem8zJlh4clpHJTQk
KT1RP0hPezFHPGhpe1RvY0NAaSRYUFN6bCM7dEUpK0VTIU1pZk19Sn4/KGheenBuO15VUGhHCno9
I3skNHNrS1E0PyVxcS1aQW8/floyRFRPPF84TEVAMlBKJnFeVHArKklJZU5hTWF9R2I0N097NUFX
NiNTUl9gZQp6YXBSVDlmYkcyQy1RTnoyKWtlU2l4T0hifihER0VMa1M0XjBeQmJ4STgjX0dwO0hM
QlBHPUhoQ0R8RVNtSDReJCMKej56WHZ8anw2YyEkLT0jN2VTWGcwNXRETWZ3WTZ9PnslajNQPUdl
YUotSV59flpGUH1sS319T00rbXdebzlyeVFSCnpSdTNGYlBpKUx4X3RCP1hIRyEtaE9gfjAjZWVG
MUxXRio/QV9WUk5OcEUrbFZean1ZUmhibUFFTl9PWlRlIzBKIwp6cEMyd2RWNWZEOChUSTk1dlNN
eGpmdD9hbHcyU1BROGZ1NUc8dlF6Y0pyXjduX2IkYnomO0dYfUpOWEh2dUNsc2cKenZsc1JTQ1FT
Qi1gIW9INSMrOUEpTjNnVG82NCFMNyoyYUR+bFhBQ3RSUXZ2JT1zcDQ4JF8rWWEtN2M4dV5jZDE+
CnptYUpWWnpXZjdDRD9zWT9xPCsoYG8jTypQYHFhI3lPZXBxZmZJZmFPbDdJRmZVfVF5aGdGel9e
RntiWW9mMEpWKwp6TEF5T2gpa156JEA3bTkyb0JhJEY5ejEwR1p3JDFyWHE5KDlQQlZ7Z3t1dHd5
U1ptUUd8OU93Slk7PT1VKWQkYkQKejwoPnM8WDxjJlJpa2U3MGlycEtEXiZmRFNyUVkhXkVBck59
Zjt2Pm1famx8eylCaGIrbGtMQCtoeExpPmR0S1ZICno9SXAxQGtBbz9aYVk2SUAoI1VSbDEjQTdw
M1ArcyRDZFJWWSljc0tUYE10WDU3V2VTeipCI31mNmZMcTtRNXd4Twp6PUJUfUI/U2FiMVRsUGN4
Y3dmekRWJCp4Y0cqOGxndjF4NmcmWjt5PTxDeXhSeDE/aUsjenIwfFpTP3ZiTERrWFAKem5DfF5k
V098OExXJDI2JkUzT1N1ZVRCSlZmN3VzPzd1VWk0PUp7YUpDSFdkRnpBJGBrWFRxTSo8NGdsZj96
UUZYCnojPCpRWVdaOHwzQ3RmYClDVWA5NzcwVCg/Z2VLLSUzeSUqV2h2TWBvcWQoJSt7OUI3Yz10
c2xVYV4wKH1lKWhZagp6dT5xWW1Vbnt5filrQ1daOWp3I0VTZHF9PElPPUtFYFVgWl5paTRWeWNS
ZSZeZXJyX2d4Vm1ud3taQSZ4XnwkJUcKemtYZkZfdzh8SUFPZFBIQnhGdEJMY3tOKUtCX34mJXdj
fTkzc0orc21hVDxmUDx3X3s+UGBmeCleSTl4fHJKKilOCnpWOyt6ejNNfFJBS2QrUDJZbjIhREBn
LUhnTEpEU2BZeVNPaFNpSWVsclN5alQ7LWg9S0M3KzBQfEs+YHJsNi1uKQp6TTh3LU1FNUlQYjsj
Tmh8QlgjQWAxZ3F2fV5KVX0wd3JIUSNnQy1sdGJDWkB7T1Fgc0hvcmJtKlhITX0lUHBRJkgKejcx
TklVK3FPOFpeSGFGJU48Ukx5KmokdElEUCpzaTA+JEVYXm5+KXY1MCNrdytkWSFLQXxuTShEXjhF
VVVAI3UtCnohOUFGYnhzNmFIS1NaPj5KPntleTd9OH5fZEVNS1o7cSZJbGk8RG96OTk5cU5KNj5z
ditnY08pezBMb0R8TVRYWgp6PVRrMFN3PGJSLUchaE5TOEArbnJRUVVAQiQ8OFdMLXxxQ1dgRDNe
TnlOZEZnQj1URj9jaThScSQxJkIjblo3SDMKenVRUFlQN1d3JG5mcFI3OUhtVnRSQzg7ajNJSndp
TGBQcWohN1omdD49SCFzTy1KODt1NnJBRTA/ZWgqWUJfKVlVCnpYTjtMeWZgUis0fERMej4hVWxW
X3hHdigwO35ncXElJmI3YXRNP1FMNnBRSTVyc01wdEYrViRmTXhDVWE9M2YtTQp6OCswX1NAbjls
dG1iVE56Zml4MjZ7aWMwcksoQzt0e2tESis/QVJHb3c7Z1lmT2J0dW90IW8xbD91MkprOXFiJVAK
ek9wYCFYLWtkPVlXX0MySlpSS2w/X3N2ZlptVFpRXkB3ZVo3dH1EdiplfWgxR156OW1IUG5GZjRa
bTMtT3F1SGxACnp3TEwkIzspPz5TUXRaVDUrUDd1S0UlfkEzXjcqUyo3Mmg2M1k0NVc8WnlyeUBB
fnprYXRTRW8lUVg/KUhOSGd0TAp6bHdYPHBNJiMrY3NSKz1fQ152T1lDKVE3VDZYVDtDKkpoSnBE
Z0UmX3E/fW9ET3paSE1Ye3NaYGhzWVlNPHw9UW0Kelg7O2tuV1lYPn15OFJjQGdgcjNgSlE0KzZt
ZkBJTiZ6M3lBJSNiPFh0fXUtJjdDYzVpREwrJEl3YDF2SkwtSjBDCnpXbFZmXj9SY1dvcXdBa3Qk
IXtqej4jVmVvcj0qPFFMO1FTR1RTUG1NdjdDOHN2d1V3SWppeTh7ek5tZXU9N3c9Ygp6UVNnYlg3
QlRoR0ppKlJLQ253KnFQcWYraGY4P0lOZU0lO0l6aWQtTiE/UjF4OFB4Kn55U0J7bHdaNUBFYShJ
NCEKek9INHs2d2I4KDFTMEh6blFueCtNMCZPcU9DQW5sPmYyayM0dWMlUEZPcm5UPl5sOU02YV8w
RnEjcVAwSnN9dn5nCnpNQjB8OE1fUllWQ3AhbVRudmRPNSo+UD0xPkhRMSZSKlp+Z202TnFwKkhJ
bEt0VVE+JHdCVk5POyZiQkt3bnd7YAp6e3dSSWgqK0hyYj9xWWV2QyQxfj5PTHMkRD40V2tYWnI5
VWpTQz1KKUgtMDc5PHpqVGZxfWFIZWFiaitkPTNHLWsKej4raGo1YzhGOSU2Uj0xbXJxa1pkMlVr
P0JMTE9wMmwoU1g1ODhsVj9xTHRZSFROSlBKNkg0OFdwNmxUYkpaVl85CnpoeDBpRzY/TEUkNlVQ
cCtrUFB4WXk/YmhVPEZDV15wTXZ2bVpfcDNkPEokZWdTdVlFWGhBNUFBWXV5YHVrbnV+fAp6JHEo
YzlNXmZFcXNCUn5vVnE+KXNiPGdxaj1XTVYxUkJRNm9RfWNDTyhpZWwkWFdVezFPMz9YPjIpVloj
YCVNQkYKelpGWGtzcFJfZ0l4YkBFUy1jcnFKM0dkaiNtRF9JVCg2KShZI2s1SylDbClhP3N3KkNe
NkZzVytlOTdjdzhgWXBoCnooP3pMdGoxYzZvSnNDTFpuQmc3c0ZuPzxnam4rMll8RXR9WVBUJl9i
RzJ9P0hRQVZuTXIlN1B4Zks1QH1uTDgyaAp6LWkxOXFQclI8cC1lYjU8I2pEP1Ztcl88aCRXMkVu
QjVJVFNXPlNHKnhDVVp8RzNRKHZrcENxeSRUI2BNXmBRS1YKemNWek9oVnp4dDxaKURnXjkkeHBj
WTNLZFRtWX1XR216aWE1RGdSe2p6SWB2akZFSUdNUkYyblMlNyVTP0R9QlgrCnp7NzJTT1Arez90
JCh7RkBMXzZ7eU9seXFIfEVySEFnZlFQS2o9MF8oMFk0fCVTe3Mjclg3YCs7TFhacHU8Jj47Ugp6
SiRVRWwrQHBnTDd3dTY4PEtXV002OG9NWDw3ej1eYHNNfUlnWUFJRkxZdysxSyMmbGAjdndDPE1+
Tj9RJlN8SmoKeiRoeFROd1pOc0FjJXgqTTdeez5LazE1UVYyZ0h8RmxOdn1WbmxKPk9feWk7LThi
eHV5I0MqK2doM1FAaXhUMThnCnpIcnhldVJ0TFRYOVZLbj95eDxJKEQyNktfbGt8IVVrfGB2XkFy
SUV7UDBAI31IYGMkUnFoKkxkJD04aE0yTzlKUgp6Rm54R1RTVGtRQS16X3glUDQ5UmIpbjJhTip7
azA5aStaPjBHOGVnSnl+Yys5bHZTPUtSI1ozSkt7eDdWcztCNHYKenpgP008IVBMTkVjVjU5Z2tY
OVhkfEolZks5Z1RvO3c5UHIlSUYxJk1eVkV6WjZkaFk0MFF0Wm4kPGEtQ1lMQGlPCnpBISErdHZu
eEUrSCRMLVhNJnxTNGJLPC16VV9KPSgtaytsZjUrKUJNYEcjfE5kRkJPWFgzQFchMiE0MDtBT2VW
Rwp6JVJZNX12SmJ8SkAqO2Moe3pPMmFVfFdJPj57K0hRRUtCPGtvMGdEYHQ7dWUhUm9mKUs0ZyZs
WTBmR3FmMkRZeDIKekVvVXNkPHlVcTBufDhgT3h0S2Nqe35PNV82flVWP3ohQSpaVTgoK1RxeyU1
ZEZEemBKUnlofkJVWHBKS1JFVyFjCnpoUipFQ29iNUUxJkslRHZNckhOYSRHY19lKUUxe192QVdE
QnZ2K3I/Sms0Zng7bzM1cWF4IWB7U3pWNWpuVDdtUAp6eExsVEtYPmxMbXNaM0B8SD49UD1KIVc1
flh6eyUqcGU/TkBiSyt0eDNZNmxMdnZqSXotVDMtPU4/QmRTK3ExanMKeiZCczhDXz5ydURTfXsq
aGBwcVlNeD5GNDEwbE4jQzc7cEx6el9gKXhEbVJ+dkw/MkVQQGpfdldGbFJKRVBELUUyCnohUWE2
WlhxLXMwQk5hIUhESm5YSkEoMUBLKEdWMFp2dj9MYFZ3SnQoRmMtM2UjcX07MGExISp8Ymd5KDZ3
O1JBJgp6Tm5AQUEpYTZFKl5eKjk/SzlhJHpMM2kmSFJUSmt9VyMkZTZnO2hmeWBoe1NFO3xscEoz
SmZhUj1halhHM1U3VkgKenJVISNua3JPR3RjO01iKnlKZVU1RT10fE1zRHNKT3BVPUY+T3grdzdO
SnxVN2U+S01RWnNfQ1QhO2duZz5gO25qCnome0RyaWVBal58NVdKanQlUTR3MjUjTiM+PHhDWGc1
QWVkdXZFUFNrSWohRCQ4b1F3YT4ocG5eSWIqdE0qMGZqTgp6N0VCamMxPHppRSgwKWFSPnVTJmJS
ZzhXclY9Izx5dWJRIy0+UzA+LTttMzF9KHMxYkZsPj9USW1VK0BzaGlfTC0KeihpNXtKWkFUODQj
I3pvPUltSD8wVUtIcDNXIyMxZkMwc35QeERifng4SkRDUnBVUkJTPGtzZnhaWSFJKl9Baz5QCnpE
K2VxWGtaZFZmK2l6QSo5YlNEc1NVZVI1UFAyUjt0JE0tazVNcnllY21OPSU/diYmUGNxX3JXUHoo
bnRzfEcyQwp6UjV2VD96aykke1hAUzZ8SyMmUnFIQzhfQjMrX0lWPERoMz5ITjxmbCQyT159Q2dl
b0F2IW9QRTt+YkE7eXU+bGYKekB1fGBsTWNEKFl0fmVFejgqNFlsRXpWS09xS0pZTUYrX3JTaS1k
QWpBbjZ0YXdwez9iO3A/fFQkOXx9RDdIWGRiCnohd0xoVCYkTXBGbHJVP19DO3poPz5tK0V9NFd8
Vil6fGJaWDB3Z3xOSClCflJaJmZGNmA9NDNpd15zailFI01JXwp6KUdmYlkzd1EoIXtnLVYwSH5S
YmtJe3JeYjA4QmZDSDI2fl89Mz97KCprJWFtN31sRERjSStgX2BfT3Qhe1p1IX4KenFpS3EhUWtm
JEN7Tm8qdDI0TXlXT3JgUldyJWFiKmlhMTUtZSpOTU9MMS1vcldRdz41SWx6Sjw+I3U3RndDZFI/
CnpwTkRqYlcocnZMTjl6KCVednU1eEVFfEhAMnZMWCkkK3I+eT11X1NuTUY9d0VjKygoZylRclBH
S3hfc3I1MWpVPwp6aDRFVHt1amIkOXs+MzFJdHFWY05mV2FYM2M3WV5zOGk4WFZ2NkJYTTNpXyFN
UHpib1AwTmd0QChgQWFIeH40d00KekFRQHEzbCNGV2NHaih9cG1SaVdueUt+eExMJSs+dzF+WVJx
VzRVU1A+Xyp3ViQ/emh2P3BmZUJHYS0qRjBGRDxCCnpjNDBXfHRObG1AKHF6OW9CblhYIz5jLTRj
JEhWaVVodilmYWFAK1A5dzluZU9wcXlOKClSZD13c2d2PH14fHV+Pgp6dHt5UGQleyF1flI4UE9t
MUBeVFNtZlpgckooYlEpaFVlKWY2Y3V5SkJ3U0ZvO05rLXxATF4kfjZ0SzgydU11RCMKelYwa0xW
QGx9PmgyYHA0ZkBua2MoVHJOMG8xbCZNeztaVE4zNCYwPG56YTFKNV4mQyFOJl9xVW93NTxhQ3R9
fE1QCnpmWTViRmlgSSkzTkh3Ukx3LThGVExKTnVtYjBMdlYhV1QrPCVNcnpNPV5LZC03I3w4bjRf
N0VvKUxXSzl2MzRqZAp6cGNzPTMzc1doPW09cTRGNytwWjI7RGpPZVFadytrMXNNfXRBX1VFVitu
elVrWGlzOF5CPlk0K09BYkAwM35uflgKekN+eD9WbGd6PGBpO2dxdE1MT1c9NiM4QGstV2lHb2VF
RCgyNl40Sys7QkhOUHR7d3ZKQTdAJDhMPEJfT00+fUQrCnp2eXEkfEZXZEBILTYlWDw9WDRUXm4y
d3lIQE48KiNNTz1TUTBncUc2e1VlXlJmRVRBPSZ4TDMlWXRRcTghXkBSYAp6Rk9fYzg7VFpVVyVq
SGZyUktzQiU0eUU0Kks/RzUlMTBlJDt5YU9OSzFgLWdvREZ9a31GNElHISYqWVdZZnJDeH0Kekp9
O3kzTkYyQ3gtOVo8fjVGS3phckBvIzMyKH13dyRPTSN2M3NyIVdIXkBMcVpuNlg+ZEEkRT48X0A5
NVZnJjEpCnpxb3Bvc1hRTklDRTI+dD1LfWI8QnFTa1R2PVU4eGBpOz9sfWFkYXJHUXIzQEZqdnx2
dHJCJiZjbGpfa0Y0fVpodgp6WFhjYVdmJnFfMntQSlBvTm54dGpAJHdvKXE4X2VsJGc4QVBJZmRl
SFNnam9KeTZJdnZYIz43bElsIW9TMDxKdmQKemFVNUBQUmM9RWZ6UyQjTXd6KX5zeVFGR1pEXmEk
aHNuNFVkTzJqKnt5dGVBRGVgbD8tYzRDPWZtM3UmXkZxQ2QtCnoxYChGc0hFU2dHKFo+OU96JUdH
Y0tMQyN+RmlFYE94ZDRWN1N4aVlaMk9SP3NyYCUpO2cqU1ZeWklEZEY2JjU3bwp6Q3dLeiplIypv
I0k/UTFLeFR6LWhRS3F0NHBhdCpaeH55O2pfYD9AYU5GK21gTipBYnQ+dyRjczF0NXpIbE5WWm0K
eldgS143MFhCSGAzWDtGeGZkVDFnU2R+b0M8cU1LSTl6WUZHNzA3QGczVFooPUEjREtxVT5pSXNG
THpyWWFmSmhMCnpHcnJVIzAwZncjJEZFbTg7MUt9U15Yb0I3Zmd1dHVnfDhsTHlBZ3NBZmkwViY9
eWdHNXZxcHJyeFhTVnotclZ6bgp6QWokaz5pbGQ9enEqa0dGS2BMPlgwKmcjWiZ9QihlTntXZUg9
bX41fTB6TnU5JUZTM2JoMDxYeWokdiVYaUlrPSYKelRRc05Wcn5CKldkUHs7bSkqNkIkUEtnUEw9
aFA4SUFheWo+MFJoRGIkNGJqOzVmVExpcEZaZ21melpnKURxNkRUCnolR2wqQGcwQFd8KEIrIUNR
JWZLZlJXK3VQUVYpWUlhamo7R2ZWNCZ1V3NWRSNxN2tBeDU4blEpYn1sR05KfHV5KAp6bD1xJF4y
dHdlTmhnQm9rKnFFfV5tdWhJREY8UlEjV3hPdkUzJTRjK2cxPDw+cjtxYFhJRUFvV3VFUmYpYzhX
bG4KejVhY0s+QlAtamZaaHgjcilGSks7KGxOZU9qMDg/OXUkMlFxcTlPMz40cVJmeDhHYD9fd2gm
eH4wc2RKVio4QmNwCnpRe0tYbDwpOUt6I1FSK3ZtVzJ6dz1vRmx2P19EUCNGfSVpblBqS1Y1QCFJ
dyklalhRSXcqKS02U3t1a3BvaXRlMAp6c2g/ZHZlUSE4cVkwdnhWdHEoNFR6U2UoR1U2YTRoUFc4
ISZDZ2xWNVE2ajRrPzVzY0R3a0RiV2xrT3Z6c3dUQXIKenFoWnRALUIrelFeMjY7XlhISlooSExR
dT1AI2JOO3B8IVIxOSVSakhpZ01VUkJ2U1J8UytudVJQfjdIKG04ZXw9CnohWlA9T3tnbzRBY0l0
K34rbyNUJTNKRk9iPSlZOTlmN3xxaWlPekleNTA4bCFKZGtfMHowWGEqa1goYExOeFZRKgp6KEM1
PEolOEghYDkjbitDejx9X2hDcGxIdHsqaTtpN2I4ZXshWnpadStvTUI1Xnc/QzBpKlZIfGUjZ0Jx
eFFUb0kKelcpbihXN2UmXzFHM2w3Sz9CLT10USZVO3NAMjgqMmpAPGVLdUI0RUliSD1TNzl6Tns1
YXQ5eDExRUVYcFVFc3teCnpvUTgmK3ZjRXZHdSYlaCNefGdHIXpJeWQ0eSZoeXtLWjRHIzNmJHA3
U1EpNWsqUEgzIztqc2xrPTw5PnFoZUJTagp6Yj8jZClZMTlaKHE4VWktWCk2ZXwhT3RZcFImMSpj
OXstbTVHX3w5QFE1aGZnSFFqIUVfey1KcCEmTVZLcXRlalYKekIoXmA/SXdCJU1tP21ESztHPWhr
ZGc+QyFvbWdePWhpeUR+JGFYOSlMVUpAaEt1RVZZLXxubk0kVCpJfiR7cXBUCnpRcm8oOXRKP2to
X2VUSjxyTWd1VjQocmg8WkUwSkk4NWBnTiV0PGtUaUxIZSZxZXA+OUVKKXI5MilwVFc7e1FtVwp6
SkhGaUN4XjtpeDB6ZTJvbCYoV0AldGslQnQ5Wkl3THk+fSF0UGY0O2xZJFo4Sj1DJjR5WUNyTjQ7
O34jeE5RfEIKem0kWn0ybytSalVZcEhFeiljMEdzUDQwUmxDNDsqenQpZypYWn16YFZlTUo0dW8l
X1JzWWdBRl5mdSt2ZyVGWHhfCno1PW15JDdpVXZHeXkoQldDKiRESSl0ZG5hYHdrOU49PHhxRDFS
fVdlQ3ApfnI7UCgreyhDZHM2U1RUUEdraHR7VQp6MHNxX0tsMH5acVJ1dExMVjdFa3l1bCNGJWJT
QihjUSRYWGBXJGhxU0dgfF80Zi1pKmEhPmlJUFI1MGomdjtUTC0KejBndGFwZHkjIXVrKl56aDQp
eFhXViFVOGlucU1FYjNxSjVjYkJgcGd6UlJ4UkJEPTduJitpKT0jczlSJngzKj9jCnpCQHJNekdL
Vj8jNTAkez5vQ29sS3RBSH5aYGpSVzdgKmx3dWAxNkh1Y1ZQdi1JbzB7ISltYCZOTSZSdk42cV50
Mwp6UFlXPz17P2lFRGZtK2tlalBFa0NWVVpDcnBlVT8xJl94YntXST1IO2ZhIyFqT1hUP0lSRV9L
QEhXYStgMEtYZzUKek1YbGk9Kn5RbDF8QSUwS2tIOT5EZzlXWiRQO2tzWis4PSZzIVBfP2YoMTNr
aERiMW1NbW1peEs4RyVwMy1KdWdOCnp8MWZnb1BiMDk4ejN5b1R6c21AN2tyODtrdFcyTksxaXxf
JUBNRlZUUjJlKWxweX5iMnNERnFKVmRUJVEhOXZ4TAp6MktzayhFbzcwa0J8eT1PSjFSJjJAUDlT
YGF8JTJvO1FgcFB3PlI7LWoydjVKMWJvU2RkfV96diVMNlA4WWg0N3EKeiomXzZWdVYofkdNd0pY
R15GekFmJnk3U0VIaj5rZSlXOCQlO2IrNGB7fT50MHBQaHlXbHd8S2VfZFQ1ITt3LVdUCmY1N3hV
KzVfMWNZNXJQVy1HeSlJazR5JmlEZ245Y1padio9dVA3fHR4CgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12cDgud2VibSBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFkOWQ2MDM4NTI3NDk4MDRhMjI4Yjg0MmY4YTU2N2I2MGE3MDE5MjguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjU3Nwp6Y21kVH1kc3RLVjg5cFokbDVtSEsx
KlBNclo0SCt9Nit7RkhmbE9UaVFMTmE8RGd7JiY5dSt+VCpyIVdRMnFkQyUKej4xP0IxYlBfOzE1
a2NsQ0gkaGV8VWZMbkx2Uk5vcjlBWEVQbj9xJkVafDgpaHJRdiprPzJyOUhvK1F0NnpCbGllCnot
fHhLN2QoTXxQT0dFPnpeVEkzdzdmekZ9MzQkZUBCKUNHVT84N349MlpWQmhBPFFIZ3d2bSF9OUhT
bX5nakhESwp6ayVxOXc2T29yPkhYQT9SOChCJFFtXzFzJndKTVEzYFg7UkxCI0J2WHtkMFV8cjQp
Q1pKK3pOKEJ0ZmFJZH1PdXsKel9NVyFnfEtwOFhSVy1sMkNje0R+MiRQJSlqWS0/PHl+ZX1TIV5f
aHZEKEdqMkE7JVNoK0M9UmRzS3ZLZT5ESzFvCnpPVy1OKGl0XjlBLWwqISNJYSkrdSZld2BFXzhn
NFElRz8mY0V5NmQweitERDJXVnFUbmA9TzQpdDBwMkUydVQ2Swp6cGYqMDVsQV4xPjUhV2gtQDZz
TEVpQnhoP2M8YG5XKFV1VlQmc09yfD1VMndIb3swUER0SysqJExAR3RkeUlYPmAKelpybF9lQjB1
ZnY9fD8/UmQ4fUZPPCo5dk9tX3pXTlFYfkFINVNVNihQaGduRGw3fClKezBLfmZWSHxFfHJYb3xP
Cnp6QCpHfHNVfE5oOS01elZYbSNrZU9SeyUjYyhgdDBJLSNZVCNqYTk+K2BiYGRyays5aDh5LUFX
cFJMIytpOzd2Qgp6K2B4I3BKWV9xJDU3Vkk1XjlhPnRqVFlPcmBYKjtka2wrd1AyWDgrWkBSRnFM
RzUxRjNpJDVaYnpaZX5mTFlqVFUKelpKeSVtaUBufXpjUmtuZ1lgdEJJeDJ5UDgmRn5NejhCNjJ4
MmRQdWg8OEZ4fmBIM0BreVVjZkZLTXBQT15QWHlJCno7YkpOIWZqTUYwSUw1SHRqQGU/aStrWjhN
YVRQQmxUMGw0cF98RjQmJmpRUWwwaHpQRnFJdGxAUyU1bmE9JFp2cwp6Xk1JIzFWOV5JeSVtKiNx
bjZ0fHhqOUx8TDB4KW5sMm5kNktMJHJZNER1TCQjYXhQITRtOXNxO3t8fk9sbTNTTWoKelZVRDct
T0tOUGJfc05Qfj1WcVFKZU4+I2dyOVlzWlZiTDwwWTJKNkl3Jj80UmIwZiQ1KG1uTlptS2BtS0Qw
PHNKCnp1czw4MihaQkJ4RDs/dnJLOXdWTmAkYVQ5aC1PTSEoQnloaVRYe2d0cWp5RmRRVXw3MEMr
aUNtIyt5flVuOzk9cAp6VFlyMXVkIUVaOXspKFhJOyUwbHZLZmI2NGVYWTdmSyVKUFkpTlV9I2Q4
WlA7MkxWJDZ6KnIwY3QwNz1KMVJUPT0KemhCYDZ8QXgwQWZkPE94RDc5ZSRHSXhSZE1uT2ZWPz0q
V3p0LUtMVVlZSGRmeUQyRXVHNVRMYWtPKUhrTWokeD1ICnolTjF6RiglTyEkKWpeMW5NKz1aVHZU
N0Vkajt0UXEtNiNuYldJTUpFeituNDgwQXhGTUk+Z1oxJlFNMS1XSUp8MAp6KVFhQUFPMld2SW1P
PCloNnR3VmtHPWdrckIlfEZYeCZKWjxmTlc8cDNAfHUpK1pvOztJZU9hfT5jfE8mVDB5cXMKejxV
KSpVVDBxYzdhQyMpM3dCdF9MeW03fXp1PTxzRjx9JGFnZE98VDJ4SWI7SmpzTkd0VEw7US15UFA/
flBMcEFuCno3MUsxPXlYa1A/P34tJmtOY3F5c3dHOXB4VXloM315aClCZmR6YT0rWGRNMDlMdERe
SHAmU2klcUdeI0I0ZHVNUAp6S2ooVXl5S1UhUitlUU1MP0YjfXZGM0R8cVVZUngjOXJATzBPVSYj
NHNoTFd+KCRmXlp1aTNENipmKiFJRCE9RTwKejx3XkpLK1BSYHYoQE5laUlnXy16UXhlPW81Q0dZ
Yjh3RHtTOComUkVNeHpjZSlSaGFfa2dFWSZAZjt1Xmghemt1Cno1V0hBUDFnKStqd3MhOFJ4SDR6
JSswN0pSTUReJEhuSmE9bClfKVcrPCRndlNsfDlhXk99WnNOeElZfWpFVWRYZgp6VlIxc1lVK00+
MEloT0cwQzBYeD9fKDE/ZC1ffk1Jb2pXXkxhUytsQmVVRHlAQmxYPkFeaW1+PnROWX5EUyZANnAK
ej1CMT45YD0wOyVJTVAmMjdYTXwoUFJxPzV5WXRuPGtGa2tTdENBSU9yZ1p2QGpvZDk9ZSM+PVBI
OG1MV0FVcENQCnpKTXViYyZqWjtDdlpGQiVVPk5mdUt5T0R3SiZnfVFqMnNBe3gxKjlVekR2cz5e
KSNNYnhPJHBFSFo8fDMtTDhAXwp6Zm95MVU2az9vKDBLRStqdWUmQ0ZJKTxVMUNUZ0lTRFAlKWEw
bU8pPDF4UChqR1p3QyVybHF2SVFXQjwrNE5hY18KejNeT2hTS3NHZGMyViZATFhzRCtkV0o5d25Q
JUM7SERoYWEqSXRHOz17UUFsaHNyZkhkcV9Tanl1d2J2ZW1eMG59CnokVilPNzM8MjUlZiMkYVht
SVgxaTI/OERDQ2RCd2IyTilfbG47XzclIXJnJlpjc0stVDZOR3VLMVUmP3Y1OXJ5KQp6SWFDWnBM
Y2Nab1lPNDBqe0xDQlFPaCZoQDgqYGJHcE1PPyleR0dRKGI9VFNVWmhtMV8pYkk1cGwyZkFRaU8t
aHMKelcjWT85WUQ5OXtkfGwqb0ozSSFWZjRLKnVUbkUlfGdIVkNyK3dYUk14US1ELWJab2UkOXY8
fUFUbHdyfFVieTNMCnowXz1uUztOUCsmX21Ga1JeQHAhb3pSTTlMX2VEOSF3O3NPb2UpODh9b3NO
M0ZicUMrKWM8KGw1QCF0d0lfUE0hcgp6YGtGSmUoYVpteUZneW9OOUdvIXRMWDd0eTA4QUspQVZ4
QztLblZqQXFoJHloc2V+YmtjNEczbzF8JnN7SGcpJDkKei17KCZLJjdRSm50flVZezM1OHtNNCRL
XnJDRzFPZHlJKjlfYStLSj0oMnE9NmtKa3VTJTQrPGhoY3tBVFE5OHJJCnpaT302RTY0RUBuX3Y2
U14jKGZ6WHk9blFXPSo4NX5kc3ctMF5abEVPQkVqaW56OFFnQz88V0tfaTl+IWhucFdsNgp6KlYq
djBgYiZsbXNDUExucVhjQ197JHhWX2dyZiQ/cEc8QVNIX3N5RW14RUQqSHNLPX5oUT8pUzZGITwm
YU1WRVcKelB4M2M3NUgmT3N0ZzghSFAhPCZSIUk9WFRefDVLQUtJI3R6IUJrXnpFckhjI1BaUmpL
NiNyejVVXmVGME83WG45Cno2WihvMkAxYVVlciNVNU4wYWFxdiVxZypCc2doQzlvRHpwbWx7aF9m
TzU2I20jRVlGJUdRTEhYajM/KW1PdHRNegp3R3Y8YGM2Ql9lcyRAe0JyckIqIy0xZEhOWGw8R2My
UjsyaVNzJHtpbFBLbnQ+bTh7JDZsLVFeSzNxYzg/ZGpKM2MKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtaW5kZXhlZC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9yZWQtaW5kZXhlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMx
ODhkMmQ3NWI0NzBkYjhmNzM4NjFjYTcxNTlmN2Y0ZDhlODIxMjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmxpdGVyYWwgMTY4CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeajNDVSYzP3gtPWhu
KWdhJW1GP2p1S3lWckJwLTJfMUckXzk5K0FaaQp6NEJXeVglKlpmbmpzI0Zwc2wrdisjNXE0Vkgj
TSg+IU1QfGt1X1FHYHAqKnVCTCY0cUNIJFdqalBhI3BrSCEtPD0Kek1ZJUlqSEc3R3R1UGdnKU1q
MF9IKFpqSngtOVJCT1BaITQhal9iKEBLc0ZOdDwwSGpBI3l9UT5yPm1kS0k7VnN0CkUwRlg1JXtR
dip9CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJl
LXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3Nt
YWxsLXNxdWFyZS13aXRoLWNpZS1yZ2ItcHJvZmlsZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGFhOGJmMzc3MTc5ZWI5YWJiNDQzNTE0YzczZTFjMWZiMDJlYzcxZTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODY4CnpjbVYtcTFEcEpiUCk8aDszS3xMazAwMGUx
TkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhZ
R0hGOVlQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2RjLXBPenplPllVNm88YlgKejFkQm91
eWJvfWZmfWxkRVpjYSZDTjxwTVZoYV84KmhBN2VgKys2PEBkPEBeZiNsX1hoKi0yMCtJUWE8OVBD
Xn1HCnp0eGg4TiFHWjdtaFFyfDt1LTJUbStwJCgpbG97PUhVRjhSJVQ3MDYkR09LS31HbDxLPT5H
eVg1dk9HKXBpR2E2Zgp6MWkpbXxYfWNaJSMhXzVwMUgxI3hWTiU4KlkjPSVfZyNtRjEkbXFCKkFn
JSRhNTQ7d0xKRHtGY3tzN2RZJTNweEcKel9KYV9fRDxEJXAyKkNvN1FSTmJsQ09KMCV0LUtpUHF4
OF9JcmZ1OEc4UmspPF9RJDEzTXkyWHlhanVKODRAQCF5Cnpze0hfe3dSIz1wYnpTfSZLTTIrQXZZ
I2N0dlR3dkVgZ0hhS1l3UCFaS0k3c0ZIZzJjVz5DSFViOF5OUmozKmtJbAp6elh1eGQqIVRkKypp
Tmt0e3JDPzYwMDFDa05LI0R6MEQ+XzkwRD5fOTBVc095MEIzXiQwQlo7VTBUPmVpMDZ7d2QKejAw
VkBGPHJgN30wMEZFP0xfdCh8K08kX2ttYz1qI2xYJXxFe2pZMXkwdy19eGFyeGUpeWNqU05mez1k
I0FmWj8+Cnp5QjdkWnhJVDtOZmlmdXFKaWpHQ2w3fUBDQ0lLTW1qe3hMdk5EfX1VTXdYaShuWk50
OEBqUmdGdnlNY3R2ZSQhWAp6LTIoXz9Scz0qaEx1XnslRFBgMz9SNSZKN2VeM0UqITk/Z1RnMTFa
KEFmUExNZyU1VUpqeEZuWj9KfV5UNjV8RkcKej4+VUxpQnNCSnpwJnZ4aHFDZyZYbjVBOE5tfXNB
Pjc/JnQqVSpSUEliOzViY0xhIUVuZldqTF9kdXBMMzZaPzlUCnpvRnpXV04mM3ZoNkY2bD9lM187
K3YyYCMzIVZ4cndCaFYlJHJkKD5BMmkoKk9CPDB2R0Y7UUdnISlrWnRXRyhvWAp6TkMqLVhoRVB6
YEhZWmcxb1JOSFJURlFaOEc2d3w7PlFoWDhDUiNCYT12NUNJIXF+Q0p1Mzh2NkwpXm99Y352SH0K
el9RKlhnYSFRZTZPcmFCYEVzaDlOaXNVVGJCdjRAIzE7MzxZWXJ+OCpnQFV3KWdjUzt9ZzxWdm0z
IT9UI0BaP0B1Cno7WUUqd0szNj5GJTZqcT1pRmBRdGg1YCM7XjNocCtIQXNzNEowQGwpOytOazQ8
QGF7REpNK3NTWk5QOT9yXyRNRwp1JmRNQ0ImflY/MEAyMyhLenAjfWdORSZLM3t7c01gbClIdGQ9
QFh5OzAwMDA8TU5VTW5MU1RZJSlOcD9RCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JtYXRjaC1wcm9maWxlLnBuZyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9ybWF0Y2gtcHJvZmls
ZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzNDU0ZWMwZGQ3Y2VkODhkODJj
ODJhZTdhNzJjODY5OTNkYTQzNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODcx
CnpjbVYtdDFETzFZUCk8aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVyeDAwMDA5
YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhZSEVCYWJQKjctWmJaPktMWipVKzxMcWl+TmEmS203
WS1Jb2RjLXBPenplPllVNm88Y0MKenBeOElQJGZtPFphVEtiOVBgOU01Ulp1OT1BPDVSSHApSXch
O3BZME10SXkjQklPO3BOaWk0dHlxbUxrKzkyfXdxCnpDbFVPbkBCRF90O3J5VWRiREQwZXZJeWhV
WHNfKWBLTTNYUTE2NWBLcGQwNnopOUQtbHEkKkFMaUdiLWQwXm83Twp6WH1UQGAjKGJQPDFBRzht
eShFdTgpUFVpKyRxYX1xej5ZP2wwZFdKXmBxKm9MeEM1K3k7Wkp9Uzc1KVpUKzdDaHkKej98fEwr
Z0FnaW5mRV5YUzBAeDxHRmFRbWVQNHV1b0Zta2hBdVM9KD1xQ180fGErOGQ2eHUzPkxYRyhXWChn
VFk3CnowOWFfSzZRdktrQ0xUenk/ZWcjVktgMEJHekpDMzhyXzQmP1ErQFdgZ31ERUhFX1lteFVe
ajs5Y0Ewcj1hNk4oTAp6bW9pKTNnUWEhMm03aHZRUWJZczlkU3c2cjAzYyZYUWNWQj1oWUExeWow
eWslXzcoc0Rnd0ZyfmIyfFY0Pns5PiQKekkrcCtkOVpVTjJXdFJXfDBqeDx4S34jOSF2e3klIyNW
YG55Yzszelp1V1FXJEN2aSkwYFFEX3c3JSZvb2tiZVJvCnpwOyQ0eTdYVlBXSzh4dnJHQVJOKXph
PkREaGN5eD0wVStwKTBPVzUtNjk1PVNtWVgxJXp4JVRCSmZQfmNqenFBcwp6Kk1uJT8wfDtZUTFW
bEdPWStCKGRXentgWUkzYHFvUHl1d29NQ2RNcHdAZVpzcGV1aWM0fFpMU0UkZSZqR08oYyUKejt8
M0okOVIoZEVIMT9SR0E0SmZpS3B1Nk5yQ29jTlhySFBXbW5keXQ7VXhpZSFnPEw7dU5Ib1EhVyV8
PVlNfnwqCnpgK0Fke0J8Z2VZYHBtPT1JQXVuQm5XaStjYnVhPEs1ajJNKiY/WTlQVHh5JkwrfCZ2
cjw9OERUUUN2JklZSW8qagp6RSU9czUyb2U7QVAqQnIwQ3NnXklrJGlBayU3SX1yMkwlZjFRJXJw
KFN9YDV5UlN6MSUqcztaflN7T1AqK3s0NnEKelJWSzZjJFVRQWBOfDlucnAlYkpuanRFblY8U2dE
S1ArPTRXem9jVnAhO0NiQWcwelEoNiQtQ35UfnduQnFWYDRiCno8WCYwZk1VUjYlUzNLditkaCF5
OWRecUBxMHQ7WEEoT0c+cE5RKFBBQ1QxdCVtKWAmN19qYjVEXlVFUF56O0labgp4KCVFTHQke2Vj
RGFObWpWcnhGI3Z1JDNmODhmckhHMHwyNnd5TT9DZDZRQlM5MDAyb3ZQREhMa1YxZ1d8YzhDQX4K
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0
aC1jb2xvcnNwaW4tcHJvZmlsZS5qcGcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFs
bC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5qcGcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE5MTg2OTY4ZmJkMDMzODVmZGUzZDI3OGNhODBhNWIxZDgxNjZhYzMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgOTE0NQp6Y21lRz5ZansmdHcpLVMpbDBJayZFbUZL
UU9icE1Gdzg9U25YUXRMUE51ZiVocX4reVJkLUZJK1E8SSFESWNaRFAKektAYig0YEQ2ZjwoUSY4
PHNQSylTan1jTXQ5WGtycm5mWWUhMm93PGd5YSttQztjQH03U1chNTQ/UzFtOXFWVWJWCnpHaz5O
Iy0oRnwhd2Jvdkg/WH1sX1dOK2FlO1I3YEdoSzl4bExgZikwTHVuOGFqITIoeWIlJW9weCF2ZW1n
cGROcwp6c2N9ZE83eklCPlU1eUZ9aip5U35tbl9+KyV9QzJnSyEhI0QoZjElSEQyQ3ZiZklvTyY3
IXs9SlppZXNNc0N4SG4KejJ1JlpHYFB1YFZrNXg2YmFYZ283PEtpa3V2cTd+ZTkxQ3o9TnlPLUFv
c0ZoI3Z7XitQWTxpdXxYYXA1VmBVRUFtCnpEK21aWkE8NjJXYEdobyF0RmEmPzg2ezJJRDlpNSRI
N1ZCKllGZDZqQnZlS1JSVV5zam1iOG9OJn17Z0VONXJwPwp6P0BMU3J1NWMyU2wwTE9NKz12cVgy
YkdaJDNmelRqM2gkd25zOHBkKTZlJnVKaWJ8Q3cjVTt3fDwpeCtOPEV0dHYKeiMjZEJTRE45TDhm
NWdKcUF2TEM/V0s3d1p2MU1nckU2ZDh0RGxzVWw2c3N0Jk0xay0tcSpOZF5ua2w4IU5UUV5xCnpO
PWtTaXgtQXVVUUZVTnRBdz8xeGpGU2Bzckp6dElSfT5ZT0tzYnpLUWI7MXJGdmxYUWZSYWlJQiF6
T0JxRUszQAp6MmN9WTVhTHFXbiZfM1Q9cTMmNEQkU1QpdGU0JjJ3bDx9VDdlMG9ELSNVNil6PmV9
WWhONno/QCM7Y3h1QCRQQlAKemJ1OXRjbzExdmtndU0lbnZZLUJEPDw1UG41Nj9EQ2VgeGJQRkZt
fCM7R0BzQlk9M00yVXh5WTNKTVZxdXNoNCpqCnpgMXFXOCl9bTA/ZWUwanooU1B2Uj1TbjF6ZlZC
bjBDYl9LOE5LQ2tmOSM7U3NiZl94fG5kTklMdT8yNTxfTUZ5Rgp6QGZ9STVTbkZzVz9AdD1lT3FG
Mis8a082QT9nYitATyRmTGFuMFdTUilgVn1qVjB6OTM7YXlaSkMyY0JFOVhqU3wKem9jZHR2VHU8
WWEkRFg9PT54PjYwKlkhTW1UdExGeGAzJCNiZSowUSghRWFsSUo7eXZaYCk+VCs+eU12bkpYcDIx
CnplWiY1M0g/Qz9sWn5MJDNnaFJxZmcpY1dwXmZmd1VzYyY9X09lRiZ9bWNUcktkRDQ/MmtENGhR
IW1+S0BDSDFCZQp6VVJrYjYtQ2FvM0lFSypoakdhVXpDeXAjaiZ5c1F4ZmREOHszdVpHOyNiam4r
T2hQT2UhWUlyTVo3PkwmMnRiJkYKemtmPTBlPEQtdmRER1pfQzFUWjZtciNna0lhfT1VOzd8SUM2
VlYrJHdOazc1dE9SfExqM3k9NmhmcHNJP1M2QmZnCnoqTlp2cndARS1uV2FTWTNjcmA5Y1p3RGF1
Mk53fWNJZlEwSG97Vyt4aW83VFN6aVBsY1B6cCozIzZxYkhnJU9ZMQp6MFBgYWJfI0R1YShCbStR
MFdBKEM0aDVrVTBjbTBoej54e0JQbm0+VSVkQ1lOOGFEcU1EY3ZuaGtFSjNKX343TVMKej1IcFZh
S3lzZTEtNENVN0omJktLcEBmNDN3Wk1gYztiSXwtPDF+ajJeNy1YQG97T2YtIzAqY1VFeUtzQSQm
ISg8CnpwR19gfCV0PUN0OHFyUTY7UUBJWldIfjdgSWBlZVBMa1RWd0EzPjZGaUV0PCFWYEhmKClH
Mml9Vzl7PEA0YSNHQAp6RFcwM2YjQEt8SFg5R1kkRWxjQlVURFZ2ZyN1VXRIakR9UzNgRnI8WW5v
Mn1rVCNIK3Zza0Mja15HOHpMJHErayYKekJKKVEwN0g/PC10PDI5dEorXy1+T3dNamAmKyYwdzFT
P2N6JFJtVnsrUEZsSUpyV0xPSlhKMXNlcytjb0hSUzt8Cno9dUpnPEsjTXhyMWIrJGZnJkZjbEBl
KklpITl9PTRvXnpGPXtgeSYyMjI/P0Z4ZnUzITV6b2N2clQ4UzkyQEszRAp6anpBIU5nSWVuMmNu
R0woJmBWJjUrckJQTj1Jaml0NDMkRWIpU1Zge0k2dnsoTD0waHkkWUJYMnhmY0wtVFZ+ZCoKekxg
YjtgPTxUUXFfVV9UJGVzczcwX31vOFd3PGkmSzRVUn4oMDVYTGB2Sy1rXzBHNTZxRWMrX2QxUkRl
ZytYTSQmCnoxSUEhT0w9fjVqUCQzNnVNaDJgPG9DRCZ7QiF8O0pYK3Q9b3lyWWZoPDJKMX1tYU9z
T2I5cyVRaSl5PlFhVj1lPQp6KTFue09iO3JIXytnTSlaVl99dThSaUZDektEODx3czh1Z0F4Xj9j
amdLWjFYP24kdUNKIyQ8OUotN0wtMGQ/SlYKenN2bWRUeH0pKFolWD9NYihNVCs1PiNrSzM8dTxA
RVMqdW5ONSZwSlhIOTBHKjdRMzVONGxjb30zXmh5KlF8O0g4CnpeZVVzaU1zSCtIajZ0SmZiVUtT
eFhWJlU8KXdJUCVHZDl8eU4rJmg2bWswIUg5JW48a0g3TTFwKTd8Um8+Wjw5fAp6Kkttb0RtYk9+
MFN7PFdobX0tIXlQQS1rey10T3ZIYSZrdDRsVEc+KTtXIWBXVmspZkIzcCppU3N8SCllUERKQmIK
endVX2koTWxqJmQlRWUpXkN5ZlhFU35rSykqJStTJCYoaGNkTH1AKHBGRFA0T2d6N0F0M2BlRkNJ
TT9tSWJjTXt3CnpNV2ZqIWxEdy1FeTc2NyhvV3UqYSoyNTtiUkttfT9JPkY0em5hMjJWRnozekAj
JG5DfnlJQS1gZEZoNVFDbzNBYQp6SVRFYXdod1RFa3RWe3Nwaj1GaCYyZUEhbFkxUm9sYyYhQCRL
ZGgkZFlURGRGPnVwQT4mMHdoM1MhX0M7REMqX3sKejtvI0Q1aWwrWmNqdTNANzQwdzYoV3JZS05U
YVpnY3oyTCllKUVpPjg/UXU0d1IlTTZBTXNfJTg4TytuPyg7RlIqCnpyVVZ4Wk19Uj9PbiZhVVp2
RDU5Z0hPNyo+SHxBIz5vd2FKe1dLQjM2dXNNeDd2Jm12KnRmbUlXKitBM3ZjR19Wdgp6KiEzMmp3
VnR1LUt7KitEbzBJZFdhNDJRITI1Pz0mbURMckdNJjhLWnJVTVZUNE9CcW1VT1oxfil3RWhnaD5M
T2IKekx7Y0o9ZnZJTS04bm08eVFkKGZpPHBnczQxK2ckVm5ATHhrM29VaUImVHhvTFZ5ZS1rVlRA
K1Q3UlhpJnRQZEstCnpZPThfamkkUD01Pm1idkIxS3B6NmZITzZFOWooI1I3UlhrT2slNnBkZkNo
VFpJPjtidiMkX1kkQT9wbyM9MGBlTAp6ejIwRTNuOzZEbXZLcE5fbGk1KTNheHR7cz1gdUo/Rz5p
bX1YakBhYm5+Zn1YaEc4KDAjMmJiWW9GI2MyeSYrdkUKejlTTDRQTTF7I3spRW0/RWs9QGpyRUdD
MS1wdEc4RTFWUlZRRyRUVFdQKC1LKXh7KCVUMz5zWF5PZHhhP0lzejFjCnpLcnZYMUlzJjFpZkl+
THtmQDkyamEydGpvNTczSUMxdGJDRHcpRWdjM34/KVphNHY+VzdhKncldH5KbUc7OT5+WQp6MHUo
N2BmP0ZgT2Z9SD9+ak1XSVpuWmF+MzM8RSRJRUNYIT9vZnpWfVJ0djZjd098Pm0xPFAyaU04LS1K
OUJaPUAKelo0aDRzQ3Z+d1V1ciEhN0ZyWFI7MCp5JnkpPnQlRjRZLUQ7SDhpODReJX5sc2ZkS3t+
K05ePFNVX2NnUDFWUkwmCnojfFZLMGFSNEMkaz88cG4tQ1dPRD55NVBDV0h2a1heLWMhRCF8cmde
K1pfaGxWWVQyTEwhNjRVISUwfWttWnRaaAp6WDB7YFpNWnprdz8lS1M1YVozMntsRSgoclg+I35k
KUJtemxTWDl+NyM9XndRVWtTZ3F5b3E4LUYzNUx6NlJiVDEKenYtUGB8Uz8jeDQmQmdGUGZ0PWxP
Wl44PlpJR2FlO3MpR3FHc3VHdlBjcjJ2aXhwYVo3a0tkez8+RnZ5XnlRQ1d+Cnp5OSlsais+am17
ZjE1V0pWJlJPVlJwVlowQG1XOXxTPyQqY28kJklgNEg8RGJqOUBmLTQhU09MU3tlUDBkU0tLOAp6
cWFHT2J6XkRnQ0pAOE5EZiFzfEI4LXRAbzd1PUh3TjIlbFJBRjtLYEdxMGc+aipERlNRMTd+JTgo
SmlBSDZNLWYKejNEMnkwKSM0PkxzcFJ8TnJEWXR2TCV7MiMqUG8ycm8we2dwNEd4TmwqUXBySUIp
QipfY1I7KlotbHhJM0dLPyR5Cno3V3Z9fGQ7XlNjUE54T25NZyVVM3NzSW1rQG99SjJjS318UTBI
WGxeSW1TYUd6OFR7XzVyMmlxdzBJbUteQyFUfAp6TFYzNl41OWlfYjh1LVk7I2d+JSVUenRgRVJM
eTIlaUxnSkZSSnB5T1NQR3NBTF80cX5EJGYzc0NkTDBoZmMtM0wKekpMQDYtcXB0Yz5qXjxtQigy
bn5Nc3lkWFRQMXlpPGJafXElXjNFS00rWCR+aUBDcWpWeGomV1lPan0xJGY2alhxCnp6ODxMSnRG
Wlh5ZFBQdUBPVlZ1MHRCSyEwQzBXTG1CNitYRUBRaiohNl8meFBAUk1Nc09hZD5QKig2dVUzSloj
KQp6I3FlR1p1Zmorc2g0ITtkVWBnYz8xeXpLS09DVX11RFpDM3l1fCpQRFFIcHtXVmBicXUqKXtT
Q0hCISkoYzRxU1UKenFXU2UjZDhnPG5jc2lDPmBQTkt6WTwlSkxHKCkwejt2MEw2KH5tVHBSLTlT
O3FfWlhJWUIxMDgmc2VaPChiWEAkCnp4JWNSJmZ4RyMyRTc/dUkqfTNuLUE2a05FUWBjSDt2bTAq
IV9sTWZUP1ZWbFNPTUM5UV9yNnY0S2soNFFrRjVYMgp6cW1PT2deMz5ETVl+QStLX0xxME9eNkcy
NS1yQyomYCM9MH5WRT0pRz87THZmcXJaTjk/MzJPY3BBRFYrZUU1cz0KeigwJS1sVF83emlDQDdI
MDNacjFNNjVnPjNYJkYqaSp5cWFgWilKeX5lKTs0ejwyQFVGU0x1c2huRFdMUk44PEVeCnpCUCRI
Pm9MJUwyb19YQGNYfnV+eUNSYnAzYXF7a1U0THI3WTBoP05BVVU/NU9gME5qX2VyV1NjXyhBKCZA
a00qYQp6dFZLYWZfRTlfY3FDSTxZVGxjRDhKb0MhJC19eitOK1BFYVZeIWBWO3pXUnFsZ0lgPjB5
V3l0eG8oQ1M9X1N6cmMKekokYD1WIX1Hd2NeRyteJVJ6UypBcnwhQXF3Vmk4cnI2a1NWPUxaRTso
USRGZF9MK08xYFJhVkFjU0hBaTBxcWRiCnp6aDNDdTleU2RCPk9jQ3wtfFJvSDlxdHxlPCs1RzN6
aUBVaWEmeClJYiZ+NlV4JX15ZCtqZWY5R18rNFpwVUdRPQp6dytDK2RWKmtaMjJTSXRxK34rXilf
YFpHSl44UjR+dD0/WUp6aChaSlRLJjhXYisqXzBQNn13IWYkMyNHXktJU3cKej40XnZLb04hXjth
QnRfKFV9UTxaPWI+OCNed1ZYI2A/bWh6O0NvfkdIeU11e1NrXlBSYUNQcylIZXRgZUV5TDlwCnpg
d3QmaFNtZUw5T25rYTJhRExoQTAoeEx8YC1JZ3VlMGNPSHxNfT9neTFMIykxQj40fmFnb0BxPT0r
dUpnSTw/Xwp6U30jdDJ8M1hofHgkQGpsYj1+MSpKRVVMVGBGIV89cEFHIW0mQGJRYlMrSDNeNlZ7
KCEtNzQlSTItPTcwNGhaTyEKel56ZFFIPUBWbFBwOG85Y15uRGxsekM4N3A/S0F0Z2JVKzZOSGd3
bDV0aD1sM3hlc24le0o0ZXBFOGQhU15XO31jCnpgcTcxREBBUChGY2M9RjVSYlRjekBfNnMoaGdY
IXBibk8wNV9TRHcpe1ExPVRHZnhRbjJITktoS2lCdSRwfGRCKAp6XmkldXpVVEY4JWNXJTQyY0lO
NyVnQiFVMFV0RXxxSVB9JHArR3BvfWY4dHhlOGBAcGhmQUgqKGZOcHVjQDU1N30KaXppZkhfanZF
SkZ4IUN2TDx6RjVxZE0oZXJjY0FxcmdSUU4/cTVsT0tVYlliYwoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxl
LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9y
c3Bpbi1wcm9maWxlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTkyMjYyNzM3
NjhlNTA5NWYyMzBhMzlkY2JjMzVkZjk3M2JkZWMxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
bGl0ZXJhbCA4NDEKemNtVi1QMUdmQiRQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJ
Mk5pZXJ4MDAwMDlhN2JCbTAwMXJ7CnowMDFyezBlR2M5Yl5yaFk3aW1MN1AqNy1aYlo+S0xaKlUr
PExxaX5OYSZLbTdZLUlvZGMtcE96eS1MR1MwN2xRUAp6ZzRqV2UxbkdET2FkSWV2O0hyVkBWNHgl
IWw1OTtIVm5DQntiSz8mPDNhO0pVMWlAIWVjaEA/SmY8QT5ISXkoZU8KejlSPCZISU1XOW9oJlJq
V3lSOGwhVz9JPWgrdFR2YElybUpQQnw1YTI5WSRyYkg1bHZ4V08pfHo4diRRMDIhTitHCnolanZ1
UGpycGloOGg4ZypNe3lafT1tTWktVTEkKHpmVDI3OzA1SnhQcjFsJVkyeTRGdzRDVUc7aHpZUWVP
bkVydgp6SXpHXz1XP3IxQ0d9K2czejFRMjJ5SyR6e3M0QXMzT3RQd2tkSXRiKUdlNXxjUT19Ukhp
e31UandodFF0aH4tSnMKeiFiYFpqZmJNSjRSPDI8MjlCdjwpbVM0bD5DKE1rYU4qKD10QXxBZzFL
JndaYFVBLVhpMDAwMFdWQE9nPjAwNFI9CnowMDRsNDAwNENgMDA4UD0wMDI2ZDAwMCtuMDA4O3sw
MDRtS3BsfTkqMDAwNTNOa2w8WmMtcGpBTjAhQWYyJE9pOwp6JkhiLXklPnBOSk9MNigkcWBWan41
YHZJXzB3QUdTRn1vSzRQYEV5ZT40N3BTMHpBSlpLJDM/dzUrKHM0PSNLIzgKelolN2pXNylGK3hB
ZXExV3ZoaDVpPmEmaFN1KEg+S1h4IyR7Vl4jITJIJCFZJTtWRVUrSnliWCpSRFZ6YmJpcVhFCnpF
YHFtQTUrSS19ZX14WnJVNStqNWQram8/cCVVVzs2em0tWjlWOWdObjR1cDsoNHMmZGIocDFIZHpm
Z1NzdS02agp6WkN+TGYwZD5OOCR3SUZkZXReT29NdGY/WkNLTE81bGJqXyElMVFkbiMxbEFXTXRx
czNHX2lGczBtMmI5aGE9RD8KekNaPTMhb0NuPDAzTUEjJkVpcUFDT1QlaCs9NDM3U21QaU5eNm95
YngoPjVubWBKOW5fYTlZWk5WS041PTNoR2wjCnplSXtCbDlxM2dMOHA3REkjamFXeUl6IXlVI0Nj
VUZ2LVplNkVwa2VjVm9hZUVxJURwSlE7T3MpLVh1X0E2YX5NZQp6Vns1flZHPStrK2hsQ1hodVoz
TXlxWUkrO01leVdhUz5aKkdnRmFWMD1nTkJXNXtZfmBfPVctdFUtSHBlZUtrbW0KemAjVUNQQypx
Z2h8Szt+fnhJNlI5QSNLMkxTZnxxMlgzb2tTcz9jIVhpU01UcDZ+Q35SQnVFLStIdmE8dnFMak9a
ClRycyklKTAwMDAwTmt2WFh1MG1qZjJkRzskCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzkyYjBhYzU3MDNmMzA2ODU2ZDIyOGYx
MzVmNGFjOTJmZjk3MzcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE5ODUKemNt
Vjt5MlJgX1RQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JC
bTAwMXJ7CnowMDFyezBlR2M5Yl5yaGNrNyt8Z1AqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlv
ZGMtcm1QWWMhTzM5MCYwNAp6N2BLV2ptbEMkZ0J9SXhNbW9YUjVGc05pQlFMP29SUVZpM35OVlpt
NkMjVEQ1bFA9cUJCaHJQb2kpPXwzPjR1VU0KekhrR1ZQdjIwM0dSSEZhQj08SmJwK3dEYz9ZJWlZ
UXRLYWBRJit+aUVeRXt2UHxERmRoSGx5NXlCNHElUTc9X0h3CnpRXj1ZPEN5MXExaU5Wa1UwM2J2
eG1yXnJrYztsYW8wZCFZYDBSVUNqbClGJm1tJTYxWFB8MGBMejNabXV3UjQ2eQp6O29vYkJTU25L
aDQwUWw4VmN+S3l6KnFga1QpYVo2MDJ0ezJiVkgtMDNWQExaS3Z4X1k1KFkzejA4RjZSTEt9ZWIK
ejk4bGQodjQhaytkUnNzfThCcENXV0slWVBtS21UMUEpOHtxKTd0fDJXYEcoYihRKUdiPVlkOWUl
JmVJSmB+Vm9pCno0WTgwUzBXdkphMHpeVXE3VEI8WDRjSzZUTEt0RVppZzIobjZBNiQqZnBBRDUy
TWJkVzEySk1EZ0F9b2xBcHtEOQp6Qk1jdzlwOVRPVWd1QHpnX2B3c3gqPmkkZVolXnhnJE5rNWNg
VCl9b1B9KFB0dXclY1NyWGNgU1k2KkVaN0VudDgKemBjZXNieV9iLV80MWllK1R2I2xqZ2UoQUhH
NjRXQTBQWC0zZXwtPmZvTlVRfF59c2pmSz1jd3xvSHhNVjUwcEx6CnpoVW95emhrIylxUF52Pm47
WjghJU8odndJclQ8ejYwN2pIanJMdnQkaWZYR21YVkJXZzYmbWBRdnhjVDxVRDU2eQp6Wm1LZz9T
RTg0IXBFYVVqPGFMQUZxdntNQmpwfmk+ZW87UVVrZC1yTHZxYCpaZlNJa2l4X1FtbWdCRyVKUFVD
dlUKenBSJHglamtVVHhWWVJpamI+JjMpQjwpR3JIVWdVcCtqK0xGPj1eYl9KRT5pcGVXLW8pV1JK
LXc5RT09UklXIyVDCnpJcXFAbmNBRG4mbFQofHNnTDkodUM1fCUzamtBSzImdU1vVjxLcFgqPXlK
JVYhbGojUXo7KSZaYSVKM1BaVSotaAp6eDBITDIrcypAVElNMG1kITFMay1AdUdRJnlqMCNIVUo8
WEJfbGpAOGNqMz9IdWkrbygqOWtOUTApYXdzU2tVNVgKej9pJTVtP2I9Q2tzZFpHMWFIMjN0Kng8
JUBPTEpGdGs5Tk4hQCk4d3oqbX5yNmpgeiY9dmhnfVNNS3E7KT5ZezFQCnpYPSZhOT8rNFNyX2le
LVRgRXU2YGVfdzZpbnxAbm8maHhrT0AwKFFfYTUhLU5Zez93fEFpPjs4IUtQbXMlYD0hawp6PlQ2
YnJSVllYNzZTZzNIYjtTTSFXc3hyeVN3c2EjWjxTUVY+UHpQPiZYTSZoWDJ1PGZBRyViWVBgN09R
QH1ma30Keml1eyRfUmhMKSRCe2kqQ3pScUMlbmRIelB2XkhNWTZ1O1NpT1ZfcnUrdD08NCtISmM+
R3AmOF50O355QWM/V1YxCno5bjh1OElybkpjQHlaaXpDa04kUTdYK001SSlEMVl2ckJlWTV7ZlRo
KDxfVEVGUjhHc08wQzhuTWF8PmlCPXcjNQp6emlsNGNsSiF2ZHNPaWF1UFZWIUw3ZGJ1QWVRWksj
MyR6OD0wJlVAYTMhZiZKNV57bTRXcT9JSHp9RXZ4Mztedm0KemZZfUhianMlSitMVy1zbmF7ZCh8
Kk1leih2X0U8O3FBayFDWGJUX0FCX1p7cFQtcHd4X00+dTFpQlU0KHVVQ210Cnp7TkIyUjVNb0xR
RihRUHhlYXVXSEM4ZEVRMDdQXnxiVlBMY3lvfXRHXlcldEBtc2lmYzA5LVhxazBpdj1Wb19ZSAp6
bnA0Uzlxdkw4QF41PV9vWGwpRDFkXkZKY1hJbTIpam0ka041bygtNGhDPkV4cyV6O0ZiSUA2K21w
ZjgtUkVufFgKej1vWFZRXlpNfnQ2VkJNQStqbHVQMj97KC17TiZMQU9JPXBuTlhsUlQlU041ZSp0
VF4/Xlh8VTE9OFN6PSlQY2ZtCnpsZiNsRDhPSlc9Ul4/VG1FWHZPO1NiQTE/anVmNkszY2xFVGRD
T0pQO19PbihZbmYkd0gmJk1hZSQlNU95fFV8OQp6KFhFWnUpcHRoUl57PzQqP18ldzxJIyZJWmhT
PGhVX200ZCZZaWUlcFkwKyNvez1AUjJlSC1AP18xTFo1e1IhMjwKemQrTnw+e21rVUtaa0l+ZV5Y
YFRoKkkod24rU1QqallqTGxyJi1ATVpPIz9ZWUtDN1pGJj16UDV3MXhOVSk4d0NPCnohb2FabGA8
anM2MjEwci02NEt7Uz1PNjh5LXQlWSt2PDJHMnw2UDlxK2k3SUNNSSNpeTAwMDBXVkBPZz4wMDRS
Pwp6MDA0bDYwMDAwMDAwNFpuMDAwM18wMEQoajAwMDAwMDAwMEFTMDxpczAwMDUzTmtsPFpjLXBq
QU4wIUFmMiRPaTsKeiZIYi15JT5wTkpPTDYoJHFgVmp+NWB2SV8wd0FHU0Z9b0s0UGBFeWU+NDdw
UzB6QUpaSyQzP3c1KyhzND0jSyM4CnpaJTdqVzcpRit4QWVxMVd2aGg1aT5hJmhTdShIPktYeCMk
e1ZeIyEySCQhWSU7VkVVK0p5YlgqUkRWemJiaXFYRQp6RWBxbUE1K0ktfWV9eFpyVTUrajVkK2pv
P3AlVVc7NnptLVo5VjlnTm40dXA7KDRzJmRiKHAxSGR6ZmdTc3UtNmoKelpDfkxmMGQ+Tjgkd0lG
ZGV0Xk9vTXRmP1pDS0xPNWxial8hJTFRZG4jMWxBV010cXMzR19pRnMwbTJiOWhhPUQ/CnpDWj0z
IW9DbjwwM01BIyZFaXFBQ09UJWgrPTQzN1NtUGlOXjZveWJ4KD41bm1gSjluX2E5WVpOVktONT0z
aEdsIwp6ZUl7Qmw5cTNnTDhwN0RJI2phV3lJeiF5VSNDY1VGdi1aZTZFcGtlY1ZvYWVFcSVEcEpR
O09zKS1YdV9BNmF+TWUKelZ7NX5WRz0raytobENYaHVaM015cVlJKztNZXlXYVM+WipHZ0ZhVjA9
Z05CVzV7WX5gXz1XLXRVLUhwZWVLa21tCnpgI1VDUEMqcWdofEs7fn54STZSOUEjSzJMU2Z8cTJY
M29rU3M/YyFYaVNNVHA2fkN+UkJ1RS0rSHZhPHZxTGpPWgpUcnMpJSkwMDAwME5rdlhYdTBtamZj
ZXxwXwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFy
ZS13aXRoLXNtcHRlLWMtcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9z
bWFsbC1zcXVhcmUtd2l0aC1zbXB0ZS1jLXByb2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyOTA0ZTg5NTIzNWM4ODVhMmZkYWFiMjQ2OTc1MWU4NzNhOWRmMjQzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDg3MQp6Y21WLXQxRE8xWVApPGg7M0t8TGswMDBl
MU5KTFRxMDAxaWgwMDFIZzBzc0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAwMXJ7MGVHYzliXnJo
WUhFQmFiUCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1wT3pKND9mMDZoT314CnoyVE8k
QEgwYihteCllZns7K2o0WEw4WjFHbDVFWGBgayticF43LWh9QTBjbDMwb0AlTzlRKit0MWl7SWw7
M2hhWgp6STBPayFCNnl+QSZ2M2JMIUJ9QFh0KileUWxTSGZqYzF5YVJGQmhNdnV0YmR9bzEtdyNv
TCtBaUFXNCYkcDl1SlAKeks+JDQwb2xkTEUtPjhPfSghZUxzaH5oajFWRlNVciZOUFRDenpSKz40
ZE1veylVZStNQGNAfFAhc21iKTYjZmRCCnolSnFCQFotNnkrSnMlN0pEPTZGb0VGRThIZk9lV3Ep
elNEKyVaNj4rKHV2WF9tVjtAbzw0Rz1la315P1Nzenk0Rgp6Zlp7Iz9EdWNiPXV2PjVRLT8qTUgz
d3U5NjBBZ2ljd3Z6QnZvcWhrbiohWD1lY058fkIpKn4jOyRgOytpVEBfWUcKeldtfigzU2ArVH56
V3tsN1AzaG08U2VwTzwwM2MmWFFjVkI9ZEw7az1mUCgtNF84MCZGZ3dYJjFjXkxvej14aEswCnpK
Y3xHVDgoNnpNaWs8KWYwang8eEt+Izkhdnt5JSMjVmBueWM7M3padVdRVyRDdmkpMGBRRF93NyUm
b29rYmVSbwp6cDskNHk3WFZQV0s4eHZyR0FSTil6YT5ERGhjeXg9MFUrcCkwT1c1LTY5NT1TbVlY
MSV6eCVUQkpmUH5janpxQXMKeipNbiU/MHw7WVExVmxHT1krQihkV3p7YFlJM2Bxb1B5dXdvTUNk
TXB3QGVac3BldWljNHxaTFNFJGUmakdPKGMlCno7fDNKJDlSKGRFSDE/UkdBNEpmaUtwdTZOckNv
Y05YckhQV21uZHl0O1V4aWUhZzxMO3VOSG9RIVclfD1ZTX58Kgp6YCtBZHtCfGdlWWBwbT09SUF1
bkJuV2krY2J1YTxLNWoyTSomP1k5UFR4eSZMK3wmdnI8PThEVFFDdiZJWUlvKmoKekUlPXM1Mm9l
O0FQKkJyMENzZ15JayRpQWslN0l9cjJMJWYxUSVycChTfWA1eVJTejElKnM7Wn5Te09QKit7NDZx
CnpSVks2YyRVUUFgTnw5bnJwJWJKbmp0RW5WPFNnREtQKz00V3pvY1ZwITtDYkFnMHpRKDYkLUN+
VH53bkJxVmA0Ygp6PFgmMGZNVVI2JVMzS3YrZGgheTlkXnFAcTB0O1hBKE9HPnBOUShQQUNUMXQl
bSlgJjdfamI1RF5VRVBeejtJWm4KeCglRUx0JHtlY0RhTm1qVnJ4RiN2dSQzZjg4ZnJIRzB8MjZ3
eU0/Q2Q2UUJTOTAwMm92UERITGtWMWc/Ulp+XzFUCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmls
ZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdi
LWllYzYxOTY2LTIuMS1wcm9maWxlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTAyMDFmMTEzZmRjOGU5NzFmYWExN2RiZmY4OTU0MTkyZWE4NjZmZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKbGl0ZXJhbCAzMjAxCnpjbVYtezQxVio4UCk8aDszS3xMazAwMGUxTkpMVHEwMDFp
aDAwMUhnMHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhoUGlhRiNQKjct
WmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2RjLW95KVhILSteN0NyYWcKel5nPklCZlJzeWJRV1hk
d1FiTFA+NnA8ej5BcWZ5bGgje2ZiNjtaKHZNTVZTfiRlQFM9aipmdGc2O1VoPGlWRH5WCno8UlBN
dGdRSkx3JUtQRGFxaWZjQF92WCQxd2J3cjl0bjswLSZqLUs9NDM8YlVROGo9SnNYYHRSO0RnNysj
Xkt+SAp6SyFGTSpafnpicHZ0JUsye1VaU1lfPGxTKkQ8WiVMejVvR3UoK2RheXopaFJMRmRUPmY1
OSZnaFRtZ1dEMGw7KlQKekk3PGtDNmFZWWFqelhwWUt0PSg4b3RQJDUwSDZjX1Y5UjQtO3taQEMw
QU1HNz1GPFJ4byVvcjEwUlVUK0FyJTNqCnprcExoUVdyIyFvWGdkSWAmc0tePjA5WV5wNmxQMXJJ
Uk14IzA1Q35jVz1IX0F3KmJKLTVEVCZaMm4reClRSFhecAp6MDBlc2dWOHxtUWNtUlolMDJEXkBT
M0wxNnRgTyVjMDA0Tkl2T0t2WUlZb2g2MnJZMzNTNjQwYEQ5JVkyRC08P2kKejAlNGohRjJaQDQ4
OFUlMTU4KDY2MDA1d282JXBXcl5aal92NHpBQTVIamNJcVVvR210MkxCPnJWJm5laCYjUTFpCnow
MDd+MWUkb0NjRlM4bmVJfGhKbHstUCFCMVpaOWhwbXEwKVgwaWBKd0UmPiQrRT8+JV88bFMqTVdL
K24rMWNnZgp6PGsoOFlMUig/VlNBRzZ4IWU3OHd7Y1FQdUpwQXxkO0opR3tmaWhpek0rRXJiIXAh
dGNyNXcrYTM0fihZPThzNEcKencrc0xMOW4mSmpObipLSkRpcV5VNV47YDFudkMtQHI2UCQha30x
VXsoKkk9US16QHRCS0hvSX11eGRVNWR5eUB1CnpVMUowR09EN09tYmltXkcwMDhwNFpeNl9rMm1e
cDxnVz1EMnxMO0hqTjEhRERmTSFYT2FSMn5iTD9rWCQlQ2tTbQp6Mm1rOz9wbilvfEteeWVKNyVh
ZEI5S2krTCEzK0ZnSGlTWVgjS0otbExKRE1uOUNCYk90YiMlKWhSdmBZRHF0X3YKektwaXh8UUR9
eWZhMUppUVJrI2o0YTFaKW4yJWY8eHluelY+TEM2UmJWSWtVeDBiK18rQmFSM2NuVDdadiFBSnhX
CnppekZiKWghanlHT09aODVGO2E/REFYUHttQDshMF9JZnE8RXh7KjdgMDVYRjdoUCsySGwhM0JR
Sj02QGZMJUZDbwp6OGlZb28zKCNiQUZgQURTcHF0UWd2Pkg4KEhsZ1J4dDdzM31rM0tga0Z1Pj4t
MlEkUU1GZlBXIUxhe2gzMzZvPlgKenVfQ010dEh2NnpSOyZaTmlTPVg4djNDUiNma25VeEhVeEo8
QVltUnNOTFdsKlBTe0FPQVJIdCM1IXdraTI/Szt0CnohWTNrPXM3dGdheClKJXI3LUJMcGhnZTd+
QmkwZys2RTZeWmgocDlUQm9jezNHQUZyXjAhZ3U/Uk1IYUNNJCZGbAp6QmszJXVuPjB1b0JhX002
V05XZXFJZ342UUU2OWM5byNleWhHdnBpT0FAVy1hb25rPDdyMSg/ZkN7b0k1TipVITQKejx1djY2
V3RjS1NSaW0weC1LZTJkNWpCcm1MYW17O1FtO3ttczFyMUdubU5zYjdELUVgdClpOUY4ZlhgMl9p
My1fCnpiaDs3VWxeI3gpJnt4dlM9fHx8Nz1tWWUzMz1NYEFnVTUoeEM+Zmc9Mk4tNz1jTm5qak9y
e3lyaXk2bU1GZ0cjbAp6bkNGPWZuUXY4Q0R6KytvNl9Mc2NsfWVRK2xeWkhBUkg+P19zQHwjI1Jy
NktMUkZBMSVRKz0qUlJXbm9Mc1JgN1UKenQ1dkY8UTByNDBRKWo2PXNFNFgmc0JjdDFxPCZmYmkz
VkIyT3Y2dEBxKjApO1UqbypTQVBadnx2dkAyYVlZblQwCnpiJThhK0NiNy1nZTBEMGtuRWY1UWkj
QDhUcCpjZXtOOzZscFF1Q0IlS0xfS09hcm01Y1A2XzhJcjxlMTdpcnk2Twp6RGRIJmByWmh+c0Y9
YnE5cytPMFFTZ1N+QFFMOUpteSo5NHhyPTZ5fk1ZfiExZmV0fihOKyg8PU1gd0BEMSliK3AKeio7
QyE4M2ExdUxKdiNOU0V+O3kjOD08PkljZlczQD93RnB3VVZ4clZaPlFkUXozMktJZUp9a357Y1pa
RV4reWE/CnoyRDF6IzJIT25JNyhCJV9hYz97d0ZVUTtRUUExdEJLdHJXcm0wXzNSZ3BzKz9KZnFi
e2pZYmNRWH50YVJCOyMkeQp6Wk57U30xfH1nVU9ISnhjP3dWM2Z4dXorbUo0YCFGJElaO21xUnJO
c0hKZCMjKkR+anU9YlA3Py0/dn58Y3Y+dkIKenNKNkllTndWWnhyZGpUYHlsI2JCSWEjR3hSYSN4
TU15O0sjQ0R5eUd5UWRNU3hsV1QjdERlP3AhPzV3VCQrb0d0Cno4TDtLcDJIVVEtWk1KPTNYSlF2
O3g1Y2kqP3Z1VGZlWSQ7KHtYR1dfaHVJRlI5YTxmSmJGXnw0SSN4UX5uJERjPQp6S1loalltZ3o1
TlNrRG04KmZabXs2VSE7WVhgTkc+KD9AMylYU3M4T15ONVJ5T009VFRtcCgzPTheK3pwejJyKUMK
el4+Sk97ZGVaZnNvM29xMz9XbyhZP2wkZ2U/dVhvOyVydWBWbz4/PDwoOElfPjs4RXEjS01TOWdG
bCpuZWVvc1NCCnpmb0hZbkJRSWt3a3lvd1B1KHpkbXNgcHs8N2U0a3JhLVpXcTwyKk9zR1R2RVYl
czBUZCRoWFQrISo4Qm5oMktNZQp6Qm1aUm9kakhWP3IrXzVeWDlKMFdMNGpLV2B9bGYlQS18NDRJ
QEBMVHZmMXJIakcoemU2K3dASnQlQnZqdHMhWDAKej8yeFM/X3ZlXy1rPE11amc7MEx6KjNidUc9
MyRHJmVoZXB0aGxOKiRLYU95U1NRXm5XbW88ME0rKFVFVU1FWFJRCnpNQmJaY0Y7NitLRWxNPmlL
Ql9LaUpsWiQ5R2BjXj1FQG9ORyltV1dhTm8tM1RJVzgpJEhnMFViLX44P0todko+JAp6Myombmlt
QG1qKGFDeEU1IXR7bHc3TzVeMEVJTzd6T28mYzZsPCt8aUR5U0JXQ0dyekBDNXtTdCFYM2hBQX1g
VDQKeihUTGJYVHErKDtAPD1MOGRYbnNzeWZ0fHcjV1NUVzwrKzM+c2dTJSg0TlRwZUktVkFxYnw3
c3NKdnpOSGdPWlZ1CnphWUN2Z09fUjF+PlN5TD1jRlV8fmd8aHl8Wml9fXM5K2R+bFlxT0I3MXo5
WiR3bkM9cFI5WXo0RGhJTT5XbWpndQp6JjU2bzZtYUNwQyZGIyN5JUc7MVBvYlI5aT9Hbk5nO2dZ
dGNoRCVwMTlhIWVRdFpGJjNKYUt2MzNnWjw4RH40N0UKenRVUzFpd2ttRGFQcGo9JG0jJSlqQ1ZF
WTRmbkxHTmcyQS1gWXdIVkQzZ3Z9Oz4paEF2VH5BbXFTPkxyYGBpN2t3CnpKezVfSXRgeXJCbWxj
MjVEQk83RTg7NVZvem5SPld3NWhBYXhuJDJ+KHFgJUEtWXVTNjR3a0J5PTlkbWA0Y1hlWAp6NGN9
SUA/ZStGVytiQF5SREJIVih3bk1xMnpkWDNTV3Y5dWAle3hDLXEqVX0mYGN5WFYoJXJSVCpaNk1I
P2kraSYKel9COEMoK2dyVCV7WFdVUStmQE5vUDFSPUFXJjI2e3YtZHgpaUteLU5taXVqOHR4aiFt
P1oqU3MxTntkaDR6fTAxCnopWVRvKkp5Y1NVKStfNXI0I3l3OXsrO2k0RWUkcGVSZ0lqKzt2O1pH
ZEYxSyQzRSVlfjRMYUkoakMtdSUyaCQmUgp6OWNMWGNZQ0BYd25ucyZibilfUX5UZT9yb0tHRHxk
LWdeODsrYUN7e0coMV4oTzdtMzdZMS0rNikwMWNOJnkxYXcKem9xY3tUYFBeWEpxUEJiSVc2c31k
NHt6X2Y1T20/dk1nTlFFSkc/djJUPUtZZF4wTTNJNklaeGJueSkldlpSJkxECnpKcFBsQFBzaDhR
eVBCQEtUeCtAUmRjQyFLWDd9a0VvO1N8al51MmxVN1hRfU9vO2Z8O3o0TGwrX3I+QDEteGwzfAp6
YXdxLUglZSZja0MrQEFoUHJQNkJLPHo9PEwqMGtmS1VAQ1gqemVxYllRVDQoXlU+VCNfWGRUNyY7
Rjcxan1Kb3kKemtDfjZsaDdFQDZvO1dAXklwUk5ae3B0THRMKGdRLUNZfjRtcVc7VVM3Wnh2bV98
QHl6JmU1M0JwX2xUUGxmUHx6CnpyVHl4Xz5sdkB4Iz1eIVB6UjdxcUY8JGdtYHxaSlorOzwpQ3F1
Jm90PGF7ODFERjB+cnZHcjVYcn44dWBsYXYxaAp6MUROeXRWPjJ6PTAwMDBXVkBPZz4wMDRSPTAw
NGw0MDA4O18wMDRtTDAwNENgMDA4UD4wMDI2ZTAwMCtubDMmRn0KejAwMDUzTmtsPFpjLXBqQU4w
IUFmMiRPaTsmSGIteSU+cE5KT0w2KCRxYFZqfjVgdklfMHdBR1NGfW9LNFBgRXllCno+NDdwUzB6
QUpaSyQzP3c1KyhzND0jSyM4WiU3alc3KUYreEFlcTFXdmhoNWk+YSZoU3UoSD5LWHgjJHtWXiMh
Mgp6SCQhWSU7VkVVK0p5YlgqUkRWemJiaXFYRUVgcW1BNStJLX1lfXhaclU1K2o1ZCtqbz9wJVVX
OzZ6bS1aOVY5Z04Kem40dXA7KDRzJmRiKHAxSGR6ZmdTc3UtNmpaQ35MZjBkPk44JHdJRmRldF5P
b010Zj9aQ0tMTzVsYmpfISUxUWRuCnojMWxBV010cXMzR19pRnMwbTJiOWhhPUQ/Q1o9MyFvQ248
MDNNQSMmRWlxQUNPVCVoKz00MzdTbVBpTl42b3lieAp6KD41bm1gSjluX2E5WVpOVktONT0zaEds
I2VJe0JsOXEzZ0w4cDdESSNqYVd5SXoheVUjQ2NVRnYtWmU2RXBrZWMKelZvYWVFcSVEcEpRO09z
KS1YdV9BNmF+TWVWezV+Vkc9K2sraGxDWGh1WjNNeXFZSSs7TWV5V2FTPloqR2dGYVYwCno9Z05C
VzV7WX5gXz1XLXRVLUhwZWVLa21tYCNVQ1BDKnFnaHxLO35+eEk2UjlBI0syTFNmfHEyWDNva1Nz
P2MhWApuaVNNVHA2fkN+UkJ1RS0rSHZhPHZxTGpPWnJzKSUpMDAwMDBOa3ZYWHUwbWpmPkQlWWIK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3Rl
eC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2N2M3OWY4NDhkOTZmOTRlOWY3NzE3ZWE2OWQzY2YyMzU3YzViODllLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8K
LQotZnVuY3Rpb24gZ2VuZXJhdGVUZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3Vl
KSB7Ci0gICAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIHZhciBnbCA9IG51bGw7Ci0g
ICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotCi0gICAgdmFyIGluaXQgPSBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25lKCk7
Ci0KLSAgICAgICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFn
ZTJEIGNvZGUgcGF0aHMgdGFraW5nIGNhbnZhcyBlbGVtZW50cyAoJyArIHBpeGVsRm9ybWF0ICsg
Jy8nICsgcGl4ZWxUeXBlICsgJyknKTsKLQotICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoImV4YW1wbGUiKTsKLQotICAgICAgICBpZiAoIXByb2xvZ3VlKGdsKSkgewotICAgICAgICAg
ICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0gICAgICAgIGds
LmNsZWFyQ29sb3IoMCwwLDAsMSk7Ci0gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0KLSAgICAg
ICAgdmFyIHRlc3RDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAg
ICAgICAgcnVuVGVzdCh0ZXN0Q2FudmFzKTsKLSAgICAgICAgLy9kb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHRlc3RDYW52YXMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldENhbnZhc1RvUmVk
R3JlZW4oY3R4KSB7Ci0gICAgICB2YXIgd2lkdGggPSBjdHguY2FudmFzLndpZHRoOwotICAgICAg
dmFyIGhlaWdodCA9IGN0eC5jYW52YXMuaGVpZ2h0OwotICAgICAgdmFyIGhhbGZIZWlnaHQgPSBN
YXRoLmZsb29yKGhlaWdodCAvIDIpOwotICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjZmYwMDAwIjsK
LSAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGFsZkhlaWdodCk7Ci0gICAgICBjdHgu
ZmlsbFN0eWxlID0gIiMwMGZmMDAiOwotICAgICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZIZWlnaHQs
IHdpZHRoLCBoZWlnaHQgLSBoYWxmSGVpZ2h0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkcmF3
VGV4dEluQ2FudmFzKGN0eCkgewotICAgICAgdmFyIHdpZHRoID0gY3R4LmNhbnZhcy53aWR0aDsK
LSAgICAgIHZhciBoZWlnaHQgPSBjdHguY2FudmFzLmhlaWdodDsKLSAgICAgIGN0eC5maWxsU3R5
bGUgPSAiI2ZmZmZmZiI7Ci0gICAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7
Ci0gICAgICBjdHguZm9udCA9ICcyMHB0IEFyaWFsJzsKLSAgICAgIGN0eC5maWxsU3R5bGUgPSAn
YmxhY2snOwotICAgICAgY3R4LnRleHRBbGlnbiA9ICJjZW50ZXIiOwotICAgICAgY3R4LnRleHRC
YXNlbGluZSA9ICJtaWRkbGUiOwotICAgICAgY3R4LmZpbGxUZXh0KCIxMjM0NTY3ODkwIiwgd2lk
dGggLyAyLCBoZWlnaHQgLyA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZXRDYW52YXNUbzI1
N3gyNTcoY3R4KSB7Ci0gICAgICBjdHguY2FudmFzLndpZHRoID0gMjU3OwotICAgICAgY3R4LmNh
bnZhcy5oZWlnaHQgPSAyNTc7Ci0gICAgICBzZXRDYW52YXNUb1JlZEdyZWVuKGN0eCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc2V0Q2FudmFzVG8xeDIoY3R4KSB7Ci0gICAgICBjdHguY2FudmFz
LndpZHRoID0gMTsKLSAgICAgIGN0eC5jYW52YXMuaGVpZ2h0ID0gMjsKLSAgICAgIHNldENhbnZh
c1RvUmVkR3JlZW4oY3R4KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5PbmVJdGVyYXRpb24o
Y2FudmFzLCB1c2VUZXhTdWJJbWFnZTJELCBmbGlwWSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBv
cHRfdGV4dHVyZSwgb3B0X2ZvbnRUZXN0KQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3Rpbmcg
JyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSAr
Ci0gICAgICAgICAgICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkgKyAnIGNhbnZhcyBzaXplOiAn
ICsgY2FudmFzLndpZHRoICsgJ3gnICsgY2FudmFzLmhlaWdodCArCi0gICAgICAgICAgICAgIChv
cHRfZm9udFRlc3QgPyAiIHdpdGggZm9udHMiIDogIiB3aXRoIHJlZC1ncmVlbiIpKTsKLSAgICAg
ICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwot
ICAgICAgICAvLyBEaXNhYmxlIGFueSB3cml0ZXMgdG8gdGhlIGFscGhhIGNoYW5uZWwKLSAgICAg
ICAgLy8gTm8gaWRlYSB3aHkgdGhpcyB3YXMgaGVyZS4gSWYgaXQncyBpbXBvcnRhbnQgcHV0IGl0
IGJhY2sgYW5kIGxlYXZlIGEgY29tbWVudCBhcyB0byB3aHkKLS8vICAgICAgICBnbC5jb2xvck1h
c2soMSwgMSwgMSwgMCk7Ci0gICAgICAgIGlmICghb3B0X3RleHR1cmUpIHsKLSAgICAgICAgICAg
IHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAgICAgLy8gQmluZCB0
aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgICAgICAgICAvLyBTZXQgdXAgdGV4dHVyZSBw
YXJhbWV0ZXJzCi0gICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgICAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
Ci0gICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIHRleHR1cmUgPSBvcHRfdGV4dHVyZTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAgICAg
ICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAgICAg
IGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFsc2Up
OwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9O
X1dFQkdMLCBnbC5OT05FKTsKLSAgICAgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0
ZXh0dXJlCi0gICAgICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICAvLyBJ
bml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAgICBnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICBnbFtwaXhlbEZvcm1h
dF0sIGdsW3BpeGVsVHlwZV0sIG51bGwpOwotICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIGNh
bnZhcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5
cGVdLCBjYW52YXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVz
Ci0gICAgICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDI1NSwgMCwgMjU1XSk7Ci0KLSAgICAgICAg
aWYgKG9wdF9mb250VGVzdCkgewotICAgICAgICAgICAgdmFyIHdpZHRoID0gZ2wuY2FudmFzLndp
ZHRoOwotICAgICAgICAgICAgdmFyIGhlaWdodCA9IGdsLmNhbnZhcy5oZWlnaHQ7Ci0gICAgICAg
ICAgICB2YXIgaGFsZkhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0gICAgICAgICAg
ICB2YXIgdG9wID0gZmxpcFkgPyAwIDogKGhlaWdodCAtIGhhbGZIZWlnaHQpOwotICAgICAgICAg
ICAgdmFyIGJvdHRvbSA9IGZsaXBZID8gKGhlaWdodCAtIGhhbGZIZWlnaHQpIDogMDsKLSAgICAg
ICAgICAgIC8vIGNoZWNrIGhhbGYgaXMgYSBzb2xpZCBjb2xvci4KLSAgICAgICAgICAgIHd0dS5j
aGVja0NhbnZhc1JlY3QoCi0gICAgICAgICAgICAgICAgICBnbCwgMCwgdG9wLCB3aWR0aCwgaGFs
ZkhlaWdodCwKLSAgICAgICAgICAgICAgICAgIFsyNTUsIDI1NSwgMjU1LCAyNTVdLAotICAgICAg
ICAgICAgICAgICAgInNob3VsZCBiZSB3aGl0ZSIpOwotICAgICAgICAgICAgLy8gY2hlY2sgb3Ro
ZXIgaGFsZiBpcyBub3QgYSBzb2xpZCBjb2xvci4KLSAgICAgICAgICAgIHd0dS5jaGVja0NhbnZh
c1JlY3RDb2xvcigKLSAgICAgICAgICAgICAgICAgIGdsLCAwLCBib3R0b20sIHdpZHRoLCBoYWxm
SGVpZ2h0LAotICAgICAgICAgICAgICAgICAgWzI1NSwgMjU1LCAyNTUsIDI1NV0sIDAsCi0gICAg
ICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiZm9udCBtaXNzaW5nIik7Ci0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
ICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImZvbnQgcmVu
ZGVyZXJlZCIpOwotICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIGRlYnVn
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIENoZWNrIGEgZmV3IHBpeGVscyBu
ZWFyIHRoZSB0b3AgYW5kIGJvdHRvbSBhbmQgbWFrZSBzdXJlIHRoZXkgaGF2ZQotICAgICAgICAg
ICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgotICAgICAgICAgICAgdmFyIHdpZHRoID0gZ2wuY2FudmFz
LndpZHRoOwotICAgICAgICAgICAgdmFyIGhlaWdodCA9IGdsLmNhbnZhcy5oZWlnaHQ7Ci0gICAg
ICAgICAgICB2YXIgaGFsZkhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0gICAgICAg
ICAgICBkZWJ1ZygiQ2hlY2tpbmcgYm90dG9tIik7Ci0gICAgICAgICAgICB3dHUuY2hlY2tDYW52
YXNSZWN0KGdsLCAwLCAwLCB3aWR0aCwgaGFsZkhlaWdodCwgYm90dG9tQ29sb3IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgYm90dG9tQ29sb3IpOwotICAg
ICAgICAgICAgZGVidWcoIkNoZWNraW5nIHRvcCIpOwotICAgICAgICAgICAgd3R1LmNoZWNrQ2Fu
dmFzUmVjdChnbCwgMCwgaGVpZ2h0IC0gaGFsZkhlaWdodCwgd2lkdGgsIGhhbGZIZWlnaHQsIHRv
cENvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hvdWxkQmUgIiArIHRv
cENvbG9yKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChmYWxzZSkgewotICAgICAgICAgIHZh
ciBtID0gbmV3IEltYWdlKCk7Ci0gICAgICAgICAgbS5zcmMgPSBnbC5jYW52YXMudG9EYXRhVVJM
KCk7Ci0gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChtKTsKLSAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhyIikpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgcmV0dXJuIHRleHR1cmU7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdChjYW52
YXMpCi0gICAgewotICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0g
ICAgICAgIHZhciByZWQgPSBbMjU1LCAwLCAwXTsKLSAgICAgICAgdmFyIGdyZWVuID0gWzAsIDI1
NSwgMF07Ci0KLSAgICAgICAgdmFyIGNvdW50ID0gNDsKLSAgICAgICAgdmFyIGNhc2VOZHggPSAw
OwotCi0gICAgICAgIHZhciBjYXNlcyA9IFsKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxp
cFk6IHRydWUsICB0b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiBmYWxzZSwgaW5pdDog
c2V0Q2FudmFzVG8xeDIgfSwKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IGZhbHNl
LCB0b3A6IGdyZWVuLCBib3R0b206IHJlZCwgICBmb250OiBmYWxzZSB9LAotICAgICAgICAgICAg
eyBzdWI6IHRydWUsICBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZv
bnQ6IGZhbHNlIH0sCi0gICAgICAgICAgICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiBmYWxzZSwgdG9w
OiBncmVlbiwgYm90dG9tOiByZWQsICAgZm9udDogZmFsc2UgfSwKLSAgICAgICAgICAgIHsgc3Vi
OiBmYWxzZSwgZmxpcFk6IHRydWUsICB0b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiBm
YWxzZSwgaW5pdDogc2V0Q2FudmFzVG8yNTd4MjU3IH0sCi0gICAgICAgICAgICB7IHN1YjogZmFs
c2UsIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAgZm9udDogZmFsc2Ug
fSwKLSAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IHRydWUsICB0b3A6IHJlZCwgICBi
b3R0b206IGdyZWVuLCBmb250OiBmYWxzZSB9LAotICAgICAgICAgICAgeyBzdWI6IHRydWUsICBm
bGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTogcmVkLCAgIGZvbnQ6IGZhbHNlIH0sCi0g
ICAgICAgICAgICB7IHN1YjogZmFsc2UsIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAgYm90dG9t
OiBncmVlbiwgZm9udDogdHJ1ZSwgaW5pdDogZHJhd1RleHRJbkNhbnZhcyB9LAotICAgICAgICAg
ICAgeyBzdWI6IGZhbHNlLCBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTogcmVkLCAg
IGZvbnQ6IHRydWUgfSwKLSAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IHRydWUsICB0
b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiB0cnVlIH0sCi0gICAgICAgICAgICB7IHN1
YjogdHJ1ZSwgIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAgZm9udDog
dHJ1ZSB9LAotICAgICAgICBdOwotCi0gICAgICAgIHZhciB0ZXh0dXJlOwotICAgICAgICBmdW5j
dGlvbiBydW5OZXh0VGVzdCgpIHsKLSAgICAgICAgICAgIHZhciBjID0gY2FzZXNbY2FzZU5keF07
Ci0gICAgICAgICAgICBpZiAoYy5pbml0KSB7Ci0gICAgICAgICAgICAgIGMuaW5pdChjdHgpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgdGV4dHVyZSA9IHJ1bk9uZUl0ZXJhdGlvbihjYW52
YXMsIGMuc3ViLCBjLmZsaXBZLCBjLnRvcCwgYy5ib3R0b20sIHRleHR1cmUsIGMuZm9udCk7Ci0g
ICAgICAgICAgICAvLyBmb3IgdGhlIGZpcnN0IDIgaXRlcmF0aW9ucyBhbHdheXMgbWFrZSBhIG5l
dyB0ZXh0dXJlLgotICAgICAgICAgICAgaWYgKGNvdW50ID4gMikgewotICAgICAgICAgICAgICB0
ZXh0dXJlID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgKytjYXNlTmR4
OwotICAgICAgICAgICAgaWYgKGNhc2VOZHggPT0gY2FzZXMubGVuZ3RoKSB7Ci0gICAgICAgICAg
ICAgICAgY2FzZU5keCA9IDA7Ci0gICAgICAgICAgICAgICAgLS1jb3VudDsKLSAgICAgICAgICAg
ICAgICBpZiAoIWNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0gICAgICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHd0dS53YWl0Rm9yQ29tcG9zaXRl
KGdsLCBydW5OZXh0VGVzdCk7Ci0gICAgICAgIH0KLSAgICAgICAgcnVuTmV4dFRlc3QoKTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gaW5pdDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY5NmE5MjIy
YzY1NzM4NDBkZDcwMjBmOGZjYjJlYjAxMjk3ODUyZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzUgKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi1mdW5jdGlvbiBnZW5lcmF0
ZVRlc3QocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcHJvbG9ndWUpIHsKLSAgICB2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci0gICAgdmFyIGdsID0gbnVsbDsKLSAgICB2YXIgdGV4dHVyZUxvYyA9
IG51bGw7Ci0gICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotICAgIHZhciBpbWFn
ZURhdGEgPSBudWxsOwotCi0gICAgdmFyIGluaXQgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgZGVzY3JpcHRp
b24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5n
IEltYWdlRGF0YSAoJyArIHBpeGVsRm9ybWF0ICsgJy8nICsgcGl4ZWxUeXBlICsgJyknKTsKLQot
ICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLQotICAgICAgICBp
ZiAoIXByb2xvZ3VlKGdsKSkgewotICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBU
ZXh0dXJlZFF1YWQoZ2wpOwotICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgICAg
ICBnbC5jbGVhckRlcHRoKDEpOwotICAgICAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKLQotICAg
ICAgICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsK
LQotICAgICAgICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4Y2Fu
dmFzIik7Ci0gICAgICAgIHZhciBjb250ZXh0MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIp
OwotICAgICAgICBpbWFnZURhdGEgPSBjb250ZXh0MmQuY3JlYXRlSW1hZ2VEYXRhKDEsIDIpOwot
ICAgICAgICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOwotICAgICAgICBkYXRhWzBdID0gMjU1
OwotICAgICAgICBkYXRhWzFdID0gMDsKLSAgICAgICAgZGF0YVsyXSA9IDA7Ci0gICAgICAgIGRh
dGFbM10gPSAyNTU7Ci0gICAgICAgIGRhdGFbNF0gPSAwOwotICAgICAgICBkYXRhWzVdID0gMjU1
OwotICAgICAgICBkYXRhWzZdID0gMDsKLSAgICAgICAgZGF0YVs3XSA9IDA7Ci0KLSAgICAgICAg
cnVuVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1bk9uZUl0ZXJhdGlvbih1c2VUZXhT
dWJJbWFnZTJELCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9y
KQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8g
J3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCi0gICAgICAgICAgICAgICcgd2l0aCBm
bGlwWT0nICsgZmxpcFkgKyAnIGFuZCBwcmVtdWx0aXBseUFscGhhPScgKyBwcmVtdWx0aXBseUFs
cGhhKTsKLSAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JV
RkZFUl9CSVQpOwotICAgICAgICAvLyBFbmFibGUgd3JpdGVzIHRvIHRoZSBSR0JBIGNoYW5uZWxz
Ci0gICAgICAgIGdsLmNvbG9yTWFzaygxLCAxLCAxLCAwKTsKLSAgICAgICAgdmFyIHRleHR1cmUg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4
dHVyZSB1bml0IDAKLSAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVy
ZSk7Ci0gICAgICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJF
U1QpOwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBw
YXJhbWV0ZXJzCi0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0ws
IGZsaXBZKTsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMLCBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgLy8gVXBsb2FkIHRoZSBpbWFn
ZSBpbnRvIHRoZSB0ZXh0dXJlCi0gICAgICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAg
ICAgICAgICAvLyBJbml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAg
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgMSwg
MiwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhl
bFR5cGVdLCBudWxsKTsKLSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgMCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBpbWFnZURhdGEpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgaW1h
Z2VEYXRhKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBs
ZXIgdG8gdGV4dHVyZSB1bml0IDAKLSAgICAgICAgZ2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIDAp
OwotICAgICAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKLSAgICAgICAgd3R1LmRyYXdRdWFkKGds
LCBbMCwgMCwgMCwgMjU1XSk7Ci0KLSAgICAgICAgLy8gQ2hlY2sgdGhlIHRvcCBwaXhlbCBhbmQg
Ym90dG9tIHBpeGVsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCi0gICAgICAgIC8vIHRoZSByaWdo
dCBjb2xvci4KLSAgICAgICAgZGVidWcoIkNoZWNraW5nIGJvdHRvbSBwaXhlbCIpOwotICAgICAg
ICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBib3R0b21Db2xvciwgInNob3Vs
ZEJlICIgKyBib3R0b21Db2xvcik7Ci0gICAgICAgIGRlYnVnKCJDaGVja2luZyB0b3AgcGl4ZWwi
KTsKLSAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMSwgMSwgMSwgdG9wQ29sb3Is
ICJzaG91bGRCZSAiICsgdG9wQ29sb3IpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KQotICAgIHsKLSAgICAgICAgdmFyIHJlZCA9IFsyNTUsIDAsIDAsIDI1NV07Ci0gICAgICAgIHZh
ciBncmVlbiA9IFswLCAyNTUsIDAsIDI1NV07Ci0gICAgICAgIHZhciByZWRQcmVtdWx0aXBseUFs
cGhhID0gWzI1NSwgMCwgMCwgMjU1XTsKLSAgICAgICAgdmFyIGdyZWVuUHJlbXVsdGlwbHlBbHBo
YSA9IFswLCAwLCAwLCAyNTVdOwotCi0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHJ1
ZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICByZWQsIGdyZWVuKTsKLSAgICAgICAg
cnVuT25lSXRlcmF0aW9uKGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBncmVlbiwgcmVkKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0cnVlLCB0
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5Q
cmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCBmYWxzZSwg
dHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwgcmVk
UHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0cnVlLCBm
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4pOwotICAgICAgICBydW5P
bmVJdGVyYXRpb24odHJ1ZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
Z3JlZW4sIHJlZCk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0cnVlLCB0cnVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0
aXBseUFscGhhKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIGZhbHNlLCB0cnVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0
aXBseUFscGhhKTsKLQotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
c2hvdWxkIGJlIG5vIGVycm9ycyIpOwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIGluaXQ7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE0ODhmMzZiZGU1ZTgwNjhlM2EwMmVlNDQz
N2IzODFlY2Q3YTFlMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWltYWdlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotZnVuY3Rpb24gZ2VuZXJhdGVUZXN0KHBpeGVsRm9ybWF0LCBwaXhl
bFR5cGUsIHBhdGhUb1Rlc3RSb290LCBwcm9sb2d1ZSkgewotICAgIHZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKLSAgICB2YXIgZ2wgPSBudWxsOwotICAgIHZhciB0ZXh0dXJlTG9jID0gbnVsbDsK
LSAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci0gICAgdmFyIGltZ0NhbnZhczsK
LSAgICB2YXIgcmVkID0gWzI1NSwgMCwgMF07Ci0gICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMF07
Ci0KLSAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGluaXRUZXN0aW5n
SGFybmVzc1dhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRl
eEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgaW1hZ2UgZWxlbWVu
dHMgKCcgKyBwaXhlbEZvcm1hdCArICcvJyArIHBpeGVsVHlwZSArICcpJyk7Ci0KLSAgICAgICAg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0KLSAgICAgICAgaWYgKCFwcm9s
b2d1ZShnbCkpIHsKLSAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRR
dWFkKGdsKTsKLQotICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgICAgICBnbC5j
bGVhckRlcHRoKDEpOwotCi0gICAgICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24ocHJvZ3JhbSwgInRleCIpOwotCi0gICAgICAgIHd0dS5sb2FkVGV4dHVyZShnbCwgcGF0aFRv
VGVzdFJvb3QgKyAiL3Jlc291cmNlcy9yZWQtZ3JlZW4ucG5nIiwgcnVuVGVzdCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKGltYWdlLCB1c2VUZXhTdWJJbWFnZTJELCBm
bGlwWSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yKQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3Rp
bmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQn
KSArCi0gICAgICAgICAgICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkpOwotICAgICAgICBnbC5j
bGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAg
IC8vIERpc2FibGUgYW55IHdyaXRlcyB0byB0aGUgYWxwaGEgY2hhbm5lbAotICAgICAgICBnbC5j
b2xvck1hc2soMSwgMSwgMSwgMCk7Ci0gICAgICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOwotICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0g
ICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgICAgICAv
LyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzCi0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGds
Lk5FQVJFU1QpOwotICAgICAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAg
ICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAg
ICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFs
c2UpOwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJT
SU9OX1dFQkdMLCBnbC5OT05FKTsKLSAgICAgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRo
ZSB0ZXh0dXJlCi0gICAgICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICAv
LyBJbml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgaW1hZ2Uud2lkdGgs
IGltYWdlLmhlaWdodCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xbcGl4ZWxGb3Jt
YXRdLCBnbFtwaXhlbFR5cGVdLCBudWxsKTsKLSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBp
bWFnZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5
cGVdLCBpbWFnZSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBQb2ludCB0aGUgdW5pZm9ybSBz
YW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9j
LCAwKTsKLSAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAgICAgIHd0dS5kcmF3UXVh
ZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotICAgICAgICAvLyBDaGVjayBhIGZldyBwaXhlbHMgbmVh
ciB0aGUgdG9wIGFuZCBib3R0b20gYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKLSAgICAgICAgLy8g
dGhlIHJpZ2h0IGNvbG9yLgotICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3Ju
ZXIiKTsKLSAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwgNCwgMiwgMiwgYm90dG9t
Q29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyBib3R0b21D
b2xvcik7Ci0gICAgICAgIGRlYnVnKCJDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lciIpOwotICAg
ICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0LCBnbC5jYW52YXMuaGVpZ2h0IC0gOCwgMiwg
MiwgdG9wQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyB0
b3BDb2xvcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdE9uSW1hZ2UoaW1hZ2UpIHsK
LSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCBmYWxzZSwgdHJ1ZSwgcmVkLCBncmVlbik7
Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwgZmFsc2UsIGZhbHNlLCBncmVlbiwgcmVk
KTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCB0cnVlLCB0cnVlLCByZWQsIGdyZWVu
KTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCB0cnVlLCBmYWxzZSwgZ3JlZW4sIHJl
ZCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdChpbWFnZSkKLSAgICB7Ci0gICAgICAg
IHJ1blRlc3RPbkltYWdlKGltYWdlKTsKLQotICAgICAgICBpbWdDYW52YXMgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgICAgICAgaW1nQ2FudmFzLndpZHRoID0gMTsKLSAg
ICAgICAgaW1nQ2FudmFzLmhlaWdodCA9IDI7Ci0gICAgICAgIHZhciBpbWdDdHggPSBpbWdDYW52
YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAgICAgdmFyIGltZ0RhdGEgPSBpbWdDdHguY3JlYXRl
SW1hZ2VEYXRhKDEsIDIpOwotICAgICAgICBpbWdEYXRhLmRhdGFbMF0gPSByZWRbMF07Ci0gICAg
ICAgIGltZ0RhdGEuZGF0YVsxXSA9IHJlZFsxXTsKLSAgICAgICAgaW1nRGF0YS5kYXRhWzJdID0g
cmVkWzJdOwotICAgICAgICBpbWdEYXRhLmRhdGFbM10gPSAyNTU7Ci0gICAgICAgIGltZ0RhdGEu
ZGF0YVs0XSA9IGdyZWVuWzBdOwotICAgICAgICBpbWdEYXRhLmRhdGFbNV0gPSBncmVlblsxXTsK
LSAgICAgICAgaW1nRGF0YS5kYXRhWzZdID0gZ3JlZW5bMl07Ci0gICAgICAgIGltZ0RhdGEuZGF0
YVs3XSA9IDI1NTsKLSAgICAgICAgaW1nQ3R4LnB1dEltYWdlRGF0YShpbWdEYXRhLCAwLCAwKTsK
LQotICAgICAgICAvLyBhcHBhcmVudGx5IEltYWdlIGlzIGRpZmZlcmVudCB0aGFuIDxpbWc+Lgot
ICAgICAgICB2YXIgbmV3SW1hZ2UgPSAgbmV3IEltYWdlKCk7Ci0gICAgICAgIG5ld0ltYWdlLm9u
bG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcnVuVGVzdDIobmV3SW1hZ2UpOwotICAg
ICAgICB9OwotICAgICAgICBuZXdJbWFnZS5zcmMgPSBpbWdDYW52YXMudG9EYXRhVVJMKCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdDIoaW1hZ2UpIHsKLSAgICAgICAgcnVuVGVzdE9u
SW1hZ2UoaW1hZ2UpOwotCi0gICAgICAgIHZhciBuZXdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOwotICAgICAgICBuZXdJbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIHJ1blRlc3QzKG5ld0ltYWdlKTsKLSAgICAgICAgfTsKLSAgICAgICAgbmV3SW1h
Z2Uuc3JjID0gaW1nQ2FudmFzLnRvRGF0YVVSTCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1
blRlc3QzKGltYWdlKSB7Ci0gICAgICAgIHJ1blRlc3RPbkltYWdlKGltYWdlKTsKLQotICAgICAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIp
OwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluaXQ7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLXZpZGVvLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGZmYmE1OTZkMjIxNzBmZGU2MjZjZjIxZWE1ZWI0NmVjNTcwMjc1Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs
IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRo
aXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0q
KiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0
aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwg
Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us
IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBw
ZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq
ZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk
ZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVy
aWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcg
QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFks
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0q
KiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM
SUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVU
SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMg
T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLy8g
VGhpcyBibG9jayBuZWVkcyB0byBiZSBvdXRzaWRlIHRoZSBvbmxvYWQgaGFuZGxlciBpbiBvcmRl
ciBmb3IgdGhpcwotLy8gdGVzdCB0byBydW4gcmVsaWFibHkgaW4gV2ViS2l0J3MgdGVzdCBoYXJu
ZXNzIChhdCBsZWFzdCB0aGUKLS8vIENocm9taXVtIHBvcnQpLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc0NDgKLWluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERv
bmUoKTsKLQotdmFyIG9sZCA9IGRlYnVnOwotdmFyIGRlYnVnID0gZnVuY3Rpb24obXNnKSB7Ci0g
IGNvbnNvbGUubG9nKG1zZyk7Ci0gIG9sZChtc2cpOwotfTsKLQotZnVuY3Rpb24gZ2VuZXJhdGVU
ZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3VlKSB7Ci0gICAgdmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwotICAgIHZhciBnbCA9IG51bGw7Ci0gICAgdmFyIHRleHR1cmVMb2MgPSBu
dWxsOwotICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLQotICAgIC8vIFRlc3Qg
ZWFjaCBmb3JtYXQgc2VwYXJhdGVseSBiZWNhdXNlIG1hbnkgYnJvd3NlcnMgaW1wbGVtZW50IGVh
Y2gKLSAgICAvLyBkaWZmZXJlbnRseS4gU29tZSBtaWdodCBiZSBHUFUgYWNjZWxlcmF0ZWQsIHNv
bWUgbWlnaHQgbm90LiBFdGMuLi4KLSAgICB2YXIgdmlkZW9zID0gWwotICAgICAgeyBzcmM6ICIu
Li9yZXNvdXJjZXMvcmVkLWdyZWVuLm1wNCIgICAgICAgICAsIHR5cGU6ICd2aWRlby9tcDQ7IGNv
ZGVjcz0iYXZjMS40MkUwMUUsIG1wNGEuNDAuMiInLCB9LAotICAgICAgeyBzcmM6ICIuLi9yZXNv
dXJjZXMvcmVkLWdyZWVuLndlYm12cDgud2VibSIsIHR5cGU6ICd2aWRlby93ZWJtOyBjb2RlY3M9
InZwOCwgdm9yYmlzIicsICAgICAgICAgICB9LAotICAgICAgeyBzcmM6ICIuLi9yZXNvdXJjZXMv
cmVkLWdyZWVuLnRoZW9yYS5vZ3YiLCAgIHR5cGU6ICd2aWRlby9vZ2c7IGNvZGVjcz0idGhlb3Jh
LCB2b3JiaXMiJywgICAgICAgICB9LAotICAgIF07Ci0KLSAgICB2YXIgdmlkZW9OZHggPSAwOwot
ICAgIHZhciB2aWRlbzsKLSAgICB2YXIgcnVuTmV4dFZpZGVvID0gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIGlmICh2aWRlb05keCA9PSB2aWRlb3MubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2aWRlby5y
ZW1vdmVFdmVudExpc3RlbmVyKCJwbGF5aW5nIiwgcnVuVGVzdCk7Ci0gICAgICAgICAgICBmaW5p
c2hUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGlu
Zm8gPSB2aWRlb3NbdmlkZW9OZHgrK107Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVi
dWcoInRlc3Rpbmc6ICIgKyBpbmZvLnR5cGUpOwotICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInZpZGVvIik7Ci0gICAgICAgIHZhciBjYW5QbGF5ID0gdHJ1ZTsKLSAgICAg
ICAgaWYgKCF2aWRlby5jYW5QbGF5VHlwZSkgewotICAgICAgICAgIHRlc3RGYWlsZWQoInZpZGVv
LmNhblBsYXlUeXBlIHJlcXVpcmVkIG1ldGhvZCBtaXNzaW5nIik7Ci0gICAgICAgICAgcnVuTmV4
dFRlc3QoKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZighdmlk
ZW8uY2FuUGxheVR5cGUoaW5mby50eXBlKS5yZXBsYWNlKC9uby8sICcnKSkgewotICAgICAgICAg
IGRlYnVnKGluZm8udHlwZSArICIgdW5zdXBwb3J0ZWQiKTsKLSAgICAgICAgICBydW5OZXh0Vmlk
ZW8oKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCh2aWRlbyk7Ci0gICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIo
Ci0gICAgICAgICAgICAicGxheWluZyIsIGZ1bmN0aW9uKCkgeyBydW5UZXN0KHZpZGVvKTsgfSwg
dHJ1ZSk7Ci0gICAgICAgIHZpZGVvLnR5cGUgPSBpbmZvLnR5cGU7Ci0gICAgICAgIHZpZGVvLnNy
YyA9IGluZm8uc3JjOwotICAgICAgICB2aWRlby5sb29wID0gdHJ1ZTsKLSAgICAgICAgdmlkZW8u
cGxheSgpOwotICAgIH0KLQotICAgIHZhciBpbml0ID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUg
cGF0aHMgdGFraW5nIHZpZGVvIGVsZW1lbnRzICgnICsgcGl4ZWxGb3JtYXQgKyAnLycgKyBwaXhl
bFR5cGUgKyAnKScpOwotCi0gICAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBs
ZSIpOwotCi0gICAgICAgIGlmICghcHJvbG9ndWUoZ2wpKSB7Ci0gICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLSAgICAgICAgZ2wuY2xlYXJDb2xv
cigwLDAsMCwxKTsKLSAgICAgICAgZ2wuY2xlYXJEZXB0aCgxKTsKLQotICAgICAgICB0ZXh0dXJl
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgICAgICAgcnVu
TmV4dFZpZGVvKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKHZpZGVv
RWxlbWVudCwgdXNlVGV4U3ViSW1hZ2UyRCwgZmxpcFksIHRvcENvbG9yLCBib3R0b21Db2xvcikK
LSAgICB7Ci0gICAgICAgIGRlYnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0
ZXhTdWJJbWFnZTJEJyA6ICd0ZXhJbWFnZTJEJykgKwotICAgICAgICAgICAgICAnIHdpdGggZmxp
cFk9JyArIGZsaXBZKTsKLSAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGds
LkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAgICAvLyBEaXNhYmxlIGFueSB3cml0ZXMgdG8gdGhl
IGFscGhhIGNoYW5uZWwKLSAgICAgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOwotICAgICAg
ICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAgICAgLy8gQmluZCB0aGUg
dGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXh0dXJlKTsKLSAgICAgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwot
ICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURH
RSk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9X
UkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgICAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUg
cGFyYW1ldGVycwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdM
LCBmbGlwWSk7Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9B
TFBIQV9XRUJHTCwgZmFsc2UpOwotICAgICAgICAvLyBVcGxvYWQgdGhlIHZpZGVvRWxlbWVudCBp
bnRvIHRoZSB0ZXh0dXJlCi0gICAgICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAg
ICAgICAvLyBJbml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnZpZGVvV2lkdGgsIHZpZGVvRWxlbWVu
dC52aWRlb0hlaWdodCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xbcGl4ZWxGb3Jt
YXRdLCBnbFtwaXhlbFR5cGVdLCBudWxsKTsKLSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCB2
aWRlb0VsZW1lbnQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsRm9ybWF0XSwgZ2xb
cGl4ZWxUeXBlXSwgdmlkZW9FbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBjID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gICAgICAgIGMud2lkdGggPSAxNjsK
LSAgICAgICAgYy5oZWlnaHQgPSAxNjsKLSAgICAgICAgYy5zdHlsZS5ib3JkZXIgPSAiMXB4IHNv
bGlkIGJsYWNrIjsKLSAgICAgICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAg
ICAgY3R4LmRyYXdJbWFnZSh2aWRlb0VsZW1lbnQsIDAsIDAsIDE2LCAxNik7Ci0gICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyk7Ci0KLSAgICAgICAgLy8gUG9pbnQgdGhlIHVuaWZv
cm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC51bmlmb3JtMWkodGV4dHVy
ZUxvYywgMCk7Ci0gICAgICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAgICAgICB3dHUuZHJh
d1F1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLSAgICAgICAgLy8gQ2hlY2sgYSBmZXcgcGl4ZWxz
IG5lYXIgdGhlIHRvcCBhbmQgYm90dG9tIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCi0gICAgICAg
IC8vIHRoZSByaWdodCBjb2xvci4KLSAgICAgICAgZGVidWcoIkNoZWNraW5nIGxvd2VyIGxlZnQg
Y29ybmVyIik7Ci0gICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDQsIDQsIDIsIDIsIGJv
dHRvbUNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgYm90
dG9tQ29sb3IpOwotICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsK
LSAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwgZ2wuY2FudmFzLmhlaWdodCAtIDgs
IDIsIDIsIHRvcENvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAi
ICsgdG9wQ29sb3IpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QodmlkZW9FbGVtZW50
KQotICAgIHsKLSAgICAgICAgdmFyIHJlZCA9IFsyNTUsIDAsIDBdOwotICAgICAgICB2YXIgZ3Jl
ZW4gPSBbMCwgMjU1LCAwXTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwg
ZmFsc2UsIHRydWUsIHJlZCwgZ3JlZW4pOwotICAgICAgICBydW5PbmVJdGVyYXRpb24odmlkZW9F
bGVtZW50LCBmYWxzZSwgZmFsc2UsIGdyZWVuLCByZWQpOwotICAgICAgICBydW5PbmVJdGVyYXRp
b24odmlkZW9FbGVtZW50LCB0cnVlLCB0cnVlLCByZWQsIGdyZWVuKTsKLSAgICAgICAgcnVuT25l
SXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgdHJ1ZSwgZmFsc2UsIGdyZWVuLCByZWQpOwotCi0gICAg
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3Jz
Iik7Ci0KLSAgICAgICAgcnVuTmV4dFZpZGVvKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluaXQ7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIu
dmVydCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTY4YmU4MTI5MDVhNDlhZjI5NmYwOGZhY2UxMjEx
ZmRlMDMxMWYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0CisrKyAvZGV2L251
bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLUNvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotYXJlIG1ldDoKLTEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFTIElTIEFORCBB
TlkKLUVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLVBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi1DT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLUVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLVBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotYXR0
cmlidXRlIHZlYzQgYV92ZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMyBhX25vcm1hbDsKLQotdW5pZm9y
bSBtZWRpdW1wIG1hdDQgdV9tb2RlbFZpZXdQcm9qTWF0cml4OwotCi12YXJ5aW5nIHZlYzMgdl9u
b3JtYWw7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgdl9ub3JtYWwgPSBhX25vcm1hbDsKLSAgICBn
bF9Qb3NpdGlvbiA9ICB1X21vZGVsVmlld1Byb2pNYXRyaXggKiBhX3ZlcnRleDsKLX0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNjIxMjJjOTA3Y2RlZTk1MzQ0NDQ5MTNkMzYxOGZjNzQyNTYw
ZmJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxOTk4ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0q
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoq
Ci0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLXZhciBXZWJHTFRlc3RV
dGlscyA9IChmdW5jdGlvbigpIHsKLSJ1c2Ugc3RyaWN0IjsKLQotLyoqCi0gKiBXcmFwcGVkIGxv
Z2dpbmcgZnVuY3Rpb24uCi0gKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGxv
Zy4KLSAqLwotdmFyIGxvZyA9IGZ1bmN0aW9uKG1zZykgewotICBpZiAod2luZG93LmNvbnNvbGUg
JiYgd2luZG93LmNvbnNvbGUubG9nKSB7Ci0gICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7Ci0g
IH0KLX07Ci0KLS8qKgotICogV3JhcHBlZCBsb2dnaW5nIGZ1bmN0aW9uLgotICogQHBhcmFtIHtz
dHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0byBsb2cuCi0gKi8KLXZhciBlcnJvciA9IGZ1bmN0aW9u
KG1zZykgewotICBpZiAod2luZG93LmNvbnNvbGUpIHsKLSAgICBpZiAod2luZG93LmNvbnNvbGUu
ZXJyb3IpIHsKLSAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yKG1zZyk7Ci0gICAgfQotICAgIGVs
c2UgaWYgKHdpbmRvdy5jb25zb2xlLmxvZykgewotICAgICAgd2luZG93LmNvbnNvbGUubG9nKG1z
Zyk7Ci0gICAgfQotICB9Ci19OwotCi0vKioKLSAqIFR1cm4gb2ZmIGFsbCBsb2dnaW5nLgotICov
Ci12YXIgbG9nZ2luZ09mZiA9IGZ1bmN0aW9uKCkgewotICBsb2cgPSBmdW5jdGlvbigpIHt9Owot
ICBlcnJvciA9IGZ1bmN0aW9uKCkge307Ci19OwotCi0vKioKLSAqIENvbnZlcnRzIGEgV2ViR0wg
ZW51bSB0byBhIHN0cmluZwotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xD
b250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgZW51bSB2YWx1ZS4K
LSAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGVudW0gYXMgYSBzdHJpbmcuCi0gKi8KLXZhciBnbEVu
dW1Ub1N0cmluZyA9IGZ1bmN0aW9uKGdsLCB2YWx1ZSkgewotICBmb3IgKHZhciBwIGluIGdsKSB7
Ci0gICAgaWYgKGdsW3BdID09IHZhbHVlKSB7Ci0gICAgICByZXR1cm4gcDsKLSAgICB9Ci0gIH0K
LSAgcmV0dXJuICIweCIgKyB2YWx1ZS50b1N0cmluZygxNik7Ci19OwotCi12YXIgbGFzdEVycm9y
ID0gIiI7Ci0KLS8qKgotICogUmV0dXJucyB0aGUgbGFzdCBjb21waWxlci9saW5rZXIgZXJyb3Iu
Ci0gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBsYXN0IGNvbXBpbGVyL2xpbmtlciBlcnJvci4KLSAq
LwotdmFyIGdldExhc3RFcnJvciA9IGZ1bmN0aW9uKCkgewotICByZXR1cm4gbGFzdEVycm9yOwot
fTsKLQotLyoqCi0gKiBXaGV0aGVyIGEgaGF5c3RhY2sgZW5kcyB3aXRoIGEgbmVlZGxlLgotICog
QHBhcmFtIHtzdHJpbmd9IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKLSAqIEBwYXJhbSB7c3Ry
aW5nfSBuZWVkbGUgU3RyaW5nIHRvIHNlYXJjaCBmb3IuCi0gKiBAcGFyYW0ge2Jvb2xlYW59IFRy
dWUgaWYgaGF5c3RhY2sgZW5kcyB3aXRoIG5lZWRsZS4KLSAqLwotdmFyIGVuZHNXaXRoID0gZnVu
Y3Rpb24oaGF5c3RhY2ssIG5lZWRsZSkgewotICByZXR1cm4gaGF5c3RhY2suc3Vic3RyKGhheXN0
YWNrLmxlbmd0aCAtIG5lZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Ci19OwotCi0vKioKLSAqIFdo
ZXRoZXIgYSBoYXlzdGFjayBzdGFydHMgd2l0aCBhIG5lZWRsZS4KLSAqIEBwYXJhbSB7c3RyaW5n
fSBoYXlzdGFjayBTdHJpbmcgdG8gc2VhcmNoCi0gKiBAcGFyYW0ge3N0cmluZ30gbmVlZGxlIFN0
cmluZyB0byBzZWFyY2ggZm9yLgotICogQHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhheXN0YWNr
IHN0YXJ0cyB3aXRoIG5lZWRsZS4KLSAqLwotdmFyIHN0YXJ0c1dpdGggPSBmdW5jdGlvbihoYXlz
dGFjaywgbmVlZGxlKSB7Ci0gIHJldHVybiBoYXlzdGFjay5zdWJzdHIoMCwgbmVlZGxlLmxlbmd0
aCkgPT09IG5lZWRsZTsKLX07Ci0KLS8qKgotICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmds
ZSB0ZXh0dXJlLgotICogQHR5cGUge3N0cmluZ30KLSAqLwotdmFyIHNpbXBsZVRleHR1cmVWZXJ0
ZXhTaGFkZXIgPSBbCi0gICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKLSAgJ2F0dHJpYnV0
ZSB2ZWMyIHRleENvb3JkMDsnLAotICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCi0gICd2b2lk
IG1haW4oKSB7JywKLSAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAotICAnICAgIHRl
eENvb3JkID0gdGV4Q29vcmQwOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIGZy
YWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0g
Ki8KLXZhciBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIgPSBbCi0gICdwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsnLAotICAndW5pZm9ybSBzYW1wbGVyMkQgdGV4OycsCi0gICd2YXJ5aW5nIHZl
YzIgdGV4Q29vcmQ7JywKLSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGdsX0ZyYWdEYXRhWzBd
ID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoq
Ci0gKiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCi0gKiBAdHlwZSB7c3Ry
aW5nfQotICovCi12YXIgbm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBbCi0gICdhdHRy
aWJ1dGUgdmVjNCB2UG9zaXRpb247JywKLSAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAotICAn
dm9pZCBtYWluKCkgeycsCi0gICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKLSAgJyAg
ICB0ZXhDb29yZCA9IHZQb3NpdGlvbi54eSAqIDAuNSArIDAuNTsnLAotICAnfSddLmpvaW4oJ1xu
Jyk7Ci0KLS8qKgotICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCi0gKiBA
dHlwZSB7c3RyaW5nfQotICovCi12YXIgc2ltcGxlQ29sb3JWZXJ0ZXhTaGFkZXIgPSBbCi0gICdh
dHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKLSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGds
X1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBB
IGZyYWdtZW50IHNoYWRlciBmb3IgYSB1bmlmb3JtIGNvbG9yLgotICogQHR5cGUge3N0cmluZ30K
LSAqLwotdmFyIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCi0gICdwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsnLAotICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKLSAgJ3ZvaWQgbWFpbigp
IHsnLAotICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAotICAnfSddLmpvaW4oJ1xu
Jyk7Ci0KLS8qKgotICogQSB2ZXJ0ZXggc2hhZGVyIGZvciB2ZXJ0ZXggY29sb3JzLgotICogQHR5
cGUge3N0cmluZ30KLSAqLwotdmFyIHNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyID0gWwot
ICAnYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCi0gICdhdHRyaWJ1dGUgdmVjNCBhX2NvbG9y
OycsCi0gICd2YXJ5aW5nIHZlYzQgdl9jb2xvcjsnLAotICAndm9pZCBtYWluKCkgeycsCi0gICcg
ICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKLSAgJyAgICB2X2NvbG9yID0gYV9jb2xvcjsn
LAotICAnfSddLmpvaW4oJ1xuJyk7Ci0KLS8qKgotICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIHZl
cnRleCBjb2xvcnMuCi0gKiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIgc2ltcGxlVmVydGV4Q29s
b3JGcmFnbWVudFNoYWRlciA9IFsKLSAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OycsCi0gICd2
YXJ5aW5nIHZlYzQgdl9jb2xvcjsnLAotICAndm9pZCBtYWluKCkgeycsCi0gICcgICAgZ2xfRnJh
Z0RhdGFbMF0gPSB2X2NvbG9yOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBDcmVh
dGVzIGEgc2ltcGxlIHRleHR1cmUgdmVydGV4IHNoYWRlci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcmV0dXJuIHshV2ViR0xTaGFk
ZXJ9Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBmdW5jdGlvbihn
bCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVy
LCBnbC5WRVJURVhfU0hBREVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0
dXJlIGZyYWdtZW50IHNoYWRlci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdl
YkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBz
ZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0
dXJuIGxvYWRTaGFkZXIoCi0gICAgICAgIGdsLCBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIs
IGdsLkZSQUdNRU5UX1NIQURFUik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSB0ZXh0dXJlIHZl
cnRleCBzaGFkZXIgdGhhdCBkb2Vzbid0IG5lZWQgdGV4Y29vcmRzLgotICogQHBhcmFtIHshV2Vi
R0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4geyFXZWJH
TFNoYWRlcn0KLSAqLwotdmFyIHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBm
dW5jdGlvbihnbCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBub1RleENvb3JkVGV4dHVy
ZVZlcnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMg
YSBzaW1wbGUgdmVydGV4IGNvbG9yIHZlcnRleCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7IVdlYkdMU2hh
ZGVyfQotICovCi12YXIgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciA9IGZ1bmN0
aW9uKGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZVZlcnRleENvbG9yVmVy
dGV4U2hhZGVyLCBnbC5WRVJURVhfU0hBREVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNp
bXBsZSB2ZXJ0ZXggY29sb3IgZnJhZ21lbnQgc2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xDb250
ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4geyFXZWJHTFNoYWRl
cn0KLSAqLwotdmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciA9IGZ1bmN0
aW9uKGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIoCi0gICAgICAgIGdsLCBzaW1wbGVWZXJ0
ZXhDb2xvckZyYWdtZW50U2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIpOwotfTsKLQotLyoqCi0g
KiBDcmVhdGVzIGEgc2ltcGxlIGNvbG9yIHZlcnRleCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7IVdlYkdM
U2hhZGVyfQotICovCi12YXIgc2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlciA9IGZ1bmN0aW9u
KGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZUNvbG9yVmVydGV4U2hhZGVy
LCBnbC5WRVJURVhfU0hBREVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSBjb2xv
ciBmcmFnbWVudCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJH
TENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12YXIgc2V0
dXBTaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4g
bG9hZFNoYWRlcigKLSAgICAgICAgZ2wsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIsIGdsLkZS
QUdNRU5UX1NIQURFUik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hl
cyBzaGFkZXJzLCBiaW5kcyBhdHRyaWIgbG9jYXRpb25zLCBsaW5rcyB0aGUKLSAqIHByb2dyYW0g
YW5kIGNhbGxzIHVzZVByb2dyYW0uCi0gKiBAcGFyYW0geyFBcnJheS48IVdlYkdMU2hhZGVyfHN0
cmluZz59IHNoYWRlcnMgVGhlIHNoYWRlcnMgdG8KLSAqICAgICAgICBhdHRhY2gsIG9yIHRoZSBz
b3VyY2UsIG9yIHRoZSBpZCBvZiBhIHNjcmlwdCB0byBnZXQKLSAqICAgICAgICB0aGUgc291cmNl
IGZyb20uCi0gKiBAcGFyYW0geyFBcnJheS48c3RyaW5nPn0gb3B0X2F0dHJpYnMgVGhlIGF0dHJp
YnMgbmFtZXMuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2xvY2F0aW9ucyBUaGUg
bG9jYXRpb25zIGZvciB0aGUgYXR0cmlicy4KLSAqLwotdmFyIHNldHVwUHJvZ3JhbSA9IGZ1bmN0
aW9uKGdsLCBzaGFkZXJzLCBvcHRfYXR0cmlicywgb3B0X2xvY2F0aW9ucykgewotICB2YXIgcmVh
bFNoYWRlcnMgPSBbXTsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gIHZh
ciBzaGFkZXJUeXBlID0gdW5kZWZpbmVkOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc2hhZGVy
cy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgc2hhZGVyID0gc2hhZGVyc1tpaV07Ci0gICAgaWYg
KHR5cGVvZiBzaGFkZXIgPT0gJ3N0cmluZycpIHsKLSAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoc2hhZGVyKTsKLSAgICAgIGlmIChlbGVtZW50KSB7Ci0gICAgICAg
IGlmIChlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtdmVydGV4IiAmJiBlbGVtZW50LnR5cGUg
IT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQotICAgICAgICAgIHNoYWRlclR5cGUgPSBpaSA/IGds
LkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRFWF9TSEFERVI7Ci0gICAgICAgIHNoYWRlciA9IGxv
YWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBzaGFkZXIsIHNoYWRlclR5cGUpOwotICAgICAgfSBlbHNl
IGlmIChlbmRzV2l0aChzaGFkZXIsICIudmVydCIpKSB7Ci0gICAgICAgIHNoYWRlciA9IGxvYWRT
aGFkZXJGcm9tRmlsZShnbCwgc2hhZGVyLCBnbC5WRVJURVhfU0hBREVSKTsKLSAgICAgIH0gZWxz
ZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLmZyYWciKSkgewotICAgICAgICBzaGFkZXIgPSBsb2Fk
U2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSKTsKLSAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXIoZ2wsIHNoYWRlciwgaWkgPyBnbC5G
UkFHTUVOVF9TSEFERVIgOiBnbC5WRVJURVhfU0hBREVSKTsKLSAgICAgIH0KLSAgICB9Ci0gICAg
Z2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRlcik7Ci0gIH0KLSAgaWYgKG9wdF9hdHRyaWJz
KSB7Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG9wdF9hdHRyaWJzLmxlbmd0aDsgKytpaSkg
ewotICAgICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKAotICAgICAgICAgIHByb2dyYW0sCi0gICAg
ICAgICAgb3B0X2xvY2F0aW9ucyA/IG9wdF9sb2NhdGlvbnNbaWldIDogaWksCi0gICAgICAgICAg
b3B0X2F0dHJpYnNbaWldKTsKLSAgICB9Ci0gIH0KLSAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7
Ci0KLSAgLy8gQ2hlY2sgdGhlIGxpbmsgc3RhdHVzCi0gIHZhciBsaW5rZWQgPSBnbC5nZXRQcm9n
cmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKTsKLSAgaWYgKCFsaW5rZWQpIHsK
LSAgICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKLSAgICAgIGxhc3RF
cnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChwcm9ncmFtKTsKLSAgICAgIGVycm9yKCJFcnJv
ciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGxhc3RFcnJvcik7Ci0KLSAgICAgIGdsLmRlbGV0ZVBy
b2dyYW0ocHJvZ3JhbSk7Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgfQotCi0gIGdsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEg
c2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhl
IFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9j
YXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJl
cn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBj
b29yZHMuCi0gKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVRl
eHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oCi0gICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBv
cHRfdGV4Y29vcmRMb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIHx8IDA7Ci0gIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3Jk
TG9jYXRpb24gfHwgMTsKLSAgdmFyIHZzID0gc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVy
KGdsKTsKLSAgdmFyIGZzID0gc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpOwot
ICBpZiAoIXZzIHx8ICFmcykgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBwcm9ncmFt
ID0gc2V0dXBQcm9ncmFtKAotICAgICAgZ2wsCi0gICAgICBbdnMsIGZzXSwKLSAgICAgIFsndlBv
c2l0aW9uJywgJ3RleENvb3JkMCddLAotICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRf
dGV4Y29vcmRMb2NhdGlvbl0pOwotICBpZiAoIXByb2dyYW0pIHsKLSAgICBnbC5kZWxldGVTaGFk
ZXIoZnMpOwotICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgZ2wudXNlUHJvZ3JhbShw
cm9ncmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1w
bGUgdGV4dHVyZSBwcm9ncmFtLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2Vi
R0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNl
dHVwTm9UZXhDb29yZFRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oZ2wpIHsKLSAgdmFyIHZzID0g
c2V0dXBOb1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlcihnbCk7Ci0gIHZhciBmcyA9IHNldHVw
U2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyKGdsKTsKLSAgaWYgKCF2cyB8fCAhZnMpIHsKLSAg
ICByZXR1cm4gbnVsbDsKLSAgfQotICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbSgKLSAgICAg
IGdsLAotICAgICAgW3ZzLCBmc10sCi0gICAgICBbJ3ZQb3NpdGlvbiddLAotICAgICAgWzBdKTsK
LSAgaWYgKCFwcm9ncmFtKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgICBnbC5kZWxl
dGVTaGFkZXIodnMpOwotICB9Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBw
cm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4K
LSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0g
KiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlv
biBmb3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24g
VGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCi0gKiBAcmV0dXJuIHtXZWJH
TFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24o
Ci0gICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikgewot
ICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7Ci0gIG9w
dF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3JkTG9jYXRpb24gfHwgMTsKLSAgdmFyIHZz
ID0gc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyKGdsKTsKLSAgdmFyIGZzID0gc2V0dXBT
aW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpOwotICBpZiAoIXZzIHx8ICFmcykgewotICAg
IHJldHVybiBudWxsOwotICB9Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBQcm9ncmFtKAotICAgICAg
Z2wsCi0gICAgICBbdnMsIGZzXSwKLSAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAot
ICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOwotICBp
ZiAoIXByb2dyYW0pIHsKLSAgICBnbC5kZWxldGVTaGFkZXIoZnMpOwotICAgIGdsLmRlbGV0ZVNo
YWRlcih2cyk7Ci0gIH0KLSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKLSAgcmV0dXJuIHByb2dy
YW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgdmVydGV4IGNvbG9yIHByb2dyYW0u
Ci0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgot
ICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRp
b24gZm9yIHBvc2l0aW9uLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF92ZXJ0ZXhDb2xvckxvY2F0
aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24KLSAqICAgICAgICBmb3IgdmVydGV4IGNvbG9ycy4KLSAq
IEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JQ
cm9ncmFtID0gZnVuY3Rpb24oCi0gICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdmVy
dGV4Q29sb3JMb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlv
bkxvY2F0aW9uIHx8IDA7Ci0gIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uID0gb3B0X3ZlcnRleENv
bG9yTG9jYXRpb24gfHwgMTsKLSAgdmFyIHZzID0gc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRl
eFNoYWRlcihnbCk7Ci0gIHZhciBmcyA9IHNldHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNo
YWRlcihnbCk7Ci0gIGlmICghdnMgfHwgIWZzKSB7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLSAg
dmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0oCi0gICAgICBnbCwKLSAgICAgIFt2cywgZnNdLAot
ICAgICAgWyd2UG9zaXRpb24nLCAnYV9jb2xvciddLAotICAgICAgW29wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdmVydGV4Q29sb3JMb2NhdGlvbl0pOwotICBpZiAoIXByb2dyYW0pIHsKLSAgICBn
bC5kZWxldGVTaGFkZXIoZnMpOwotICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgZ2wu
dXNlUHJvZ3JhbShwcm9ncmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENy
ZWF0ZXMgYSBzaW1wbGUgY29sb3IgcHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0
aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcmV0dXJu
IHtXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbSA9IGZ1bmN0
aW9uKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9
IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7Ci0gIHZhciB2cyA9IHNldHVwU2ltcGxlQ29sb3JW
ZXJ0ZXhTaGFkZXIoZ2wpOwotICB2YXIgZnMgPSBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRTaGFk
ZXIoZ2wpOwotICBpZiAoIXZzIHx8ICFmcykgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZh
ciBwcm9ncmFtID0gc2V0dXBQcm9ncmFtKAotICAgICAgZ2wsCi0gICAgICBbdnMsIGZzXSwKLSAg
ICAgIFsndlBvc2l0aW9uJ10sCi0gICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb25dKTsKLSAgaWYg
KCFwcm9ncmFtKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgICBnbC5kZWxldGVTaGFk
ZXIodnMpOwotICB9Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBwcm9ncmFt
OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4dHVyZWQgdW5pdCBxdWFk
IGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleCBhdHRyaWJzLgotICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvciB0ZXh0dXJlIGNvb3Jkcy4KLSAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+fSBU
aGUgYnVmZmVyIG9iamVjdHMgdGhhdCB3ZXJlCi0gKiAgICAgIGNyZWF0ZWQuCi0gKi8KLXZhciBz
ZXR1cFVuaXRRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4
Y29vcmRMb2NhdGlvbikgewotICByZXR1cm4gc2V0dXBVbml0UXVhZFdpdGhUZXhDb29yZHMoZ2ws
IFsgMC4wLCAwLjAgXSwgWyAxLjAsIDEuMCBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKLX07
Ci0KLS8qKgotICogQ3JlYXRlcyBidWZmZXJzIGZvciBhIHRleHR1cmVkIHVuaXQgcXVhZCB3aXRo
IHNwZWNpZmllZCBsb3dlciBsZWZ0Ci0gKiBhbmQgdXBwZXIgcmlnaHQgdGV4dHVyZSBjb29yZGlu
YXRlcywgYW5kIGF0dGFjaGVzIHRoZW0gdG8gdmVydGV4Ci0gKiBhdHRyaWJzLgotICogQHBhcmFt
IHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7
IUFycmF5LjxudW1iZXI+fSBsb3dlckxlZnRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0
ZXMgZm9yIHRoZSBsb3dlciBsZWZ0IGNvcm5lci4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+
fSB1cHBlclJpZ2h0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgdXBw
ZXIgcmlnaHQgY29ybmVyLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9u
IFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgotICogQHBhcmFtIHtudW1iZXJ9IG9w
dF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRz
LgotICogQHJldHVybiB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0
aGF0IHdlcmUKLSAqICAgICAgY3JlYXRlZC4KLSAqLwotdmFyIHNldHVwVW5pdFF1YWRXaXRoVGV4
Q29vcmRzID0gZnVuY3Rpb24oCi0gICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdo
dFRleENvb3JkcywKLSAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRp
b24pIHsKLSAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAw
OwotICBvcHRfdGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8IDE7Ci0g
IHZhciBvYmplY3RzID0gW107Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOwotICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAg
IDEuMCwgIDEuMCwgMC4wLAotICAgICAgLTEuMCwgIDEuMCwgMC4wLAotICAgICAgLTEuMCwgLTEu
MCwgMC4wLAotICAgICAgIDEuMCwgIDEuMCwgMC4wLAotICAgICAgLTEuMCwgLTEuMCwgMC4wLAot
ICAgICAgIDEuMCwgLTEuMCwgMC4wXSksIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkob3B0X3Bvc2l0aW9uTG9jYXRpb24pOwotICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKG9wdF9wb3NpdGlvbkxvY2F0aW9uLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwot
ICBvYmplY3RzLnB1c2godmVydGV4T2JqZWN0KTsKLQotICB2YXIgbGx4ID0gbG93ZXJMZWZ0VGV4
Q29vcmRzWzBdOwotICB2YXIgbGx5ID0gbG93ZXJMZWZ0VGV4Q29vcmRzWzFdOwotICB2YXIgdXJ4
ID0gdXBwZXJSaWdodFRleENvb3Jkc1swXTsKLSAgdmFyIHVyeSA9IHVwcGVyUmlnaHRUZXhDb29y
ZHNbMV07Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAgdXJ4LCB1cnksCi0g
ICAgICBsbHgsIHVyeSwKLSAgICAgIGxseCwgbGx5LAotICAgICAgdXJ4LCB1cnksCi0gICAgICBs
bHgsIGxseSwKLSAgICAgIHVyeCwgbGx5XSksIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkob3B0X3RleGNvb3JkTG9jYXRpb24pOwotICBnbC52ZXJ0ZXhBdHRy
aWJQb2ludGVyKG9wdF90ZXhjb29yZExvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDAp
OwotICBvYmplY3RzLnB1c2godmVydGV4T2JqZWN0KTsKLSAgcmV0dXJuIG9iamVjdHM7Ci19Owot
Ci0vKioKLSAqIENyZWF0ZXMgYSBwcm9ncmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSB0
ZXh0dXJlZCBxdWFkLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUg
YXR0cmliIGxvY2F0aW9uIGZvcgotICogICAgICAgIHBvc2l0aW9uLiBEZWZhdWx0ID0gMC4KLSAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvcgotICogICAgICAgIHRleHR1cmUgY29vcmRzLiBEZWZhdWx0ID0gMC4KLSAqIEByZXR1cm4g
eyFXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cFRleHR1cmVkUXVhZCA9IGZ1bmN0aW9uKAot
ICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKLSAg
dmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAotICAgICAgZ2wsIG9wdF9w
b3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHNldHVwVW5pdFF1YWQo
Z2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHJldHVy
biBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgcHJvZ3JhbSBhbmQgYnVmZmVycyBm
b3IgcmVuZGVyaW5nIGEgY29sb3IgcXVhZC4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wg
VGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9u
TG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcmV0dXJuIHsh
V2ViR0xQcm9ncmFtfQotICovCi12YXIgc2V0dXBDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgb3B0
X3Bvc2l0aW9uTG9jYXRpb24pIHsKLSAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRp
b25Mb2NhdGlvbiB8fCAwOwotICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFt
KGdsKTsKLSAgc2V0dXBVbml0UXVhZChnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24pOwotICByZXR1
cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMg
Zm9yIHJlbmRlcmluZyBhIHRleHR1cmVkIHF1YWQgd2l0aAotICogc3BlY2lmaWVkIGxvd2VyIGxl
ZnQgYW5kIHVwcGVyIHJpZ2h0IHRleHR1cmUgY29vcmRpbmF0ZXMuCi0gKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXku
PG51bWJlcj59IGxvd2VyTGVmdFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBmb3Ig
dGhlIGxvd2VyIGxlZnQgY29ybmVyLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IHVwcGVy
UmlnaHRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSB1cHBlciByaWdo
dCBjb3JuZXIuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0
dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNv
b3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCi0gKiBA
cmV0dXJuIHshV2ViR0xQcm9ncmFtfQotICovCi12YXIgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4
Q29vcmRzID0gZnVuY3Rpb24oCi0gICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdo
dFRleENvb3JkcywKLSAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRp
b24pIHsKLSAgdmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAotICAgICAg
Z2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHNldHVw
VW5pdFF1YWRXaXRoVGV4Q29vcmRzKGdsLCBsb3dlckxlZnRUZXhDb29yZHMsIHVwcGVyUmlnaHRU
ZXhDb29yZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoq
Ci0gKiBDcmVhdGVzIGEgdW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiBy
ZXNvbHV0aW9uLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0
IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFRoZSByZXNvbHV0aW9uIG9mIHRo
ZSBtZXNoIGdyaWQsCi0gKiAgICAgZXhwcmVzc2VkIGluIHRoZSBudW1iZXIgb2YgcXVhZHMgYWNy
b3NzIGFuZCBkb3duLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRo
ZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgotICovCi12YXIgc2V0dXBRdWFkID0gZnVu
Y3Rpb24gKAotICAgIGdsLCBncmlkUmVzLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X2ZsaXBP
ZGRUcmlhbmdsZXMpIHsKLSAgcmV0dXJuIHNldHVwUXVhZFdpdGhPcHRpb25zKGdsLAotICAgIHsg
Z3JpZFJlczogZ3JpZFJlcywKLSAgICAgIHBvc2l0aW9uTG9jYXRpb246IG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLAotICAgICAgZmxpcE9kZFRyaWFuZ2xlczogb3B0X2ZsaXBPZGRUcmlhbmdsZXMKLSAg
ICB9KTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHF1YWQgd2l0aCB2YXJpb3VzIG9wdGlvbnMu
Ci0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgot
ICogQHBhcmFtIHshT2JqZWN0KSBvcHRpb25zIFRoZSBvcHRpb25zLiBTZWUgYmVsb3cuCi0gKiBA
cmV0dXJuIHshQXJyYXkuPFdlYkdMQnVmZmVyPn0gVGhlIGNyZWF0ZWQgYnVmZmVycy4KLSAqICAg
ICBbcG9zaXRpb25zLCA8Y29sb3JzPiwgaW5kaWNlc10KLSAqCi0gKiBPcHRpb25zOgotICogICBn
cmlkUmVzOiBudW1iZXIgb2YgcXVhZHMgYWNyb3NzIGFuZCBkb3duIGdyaWQuCi0gKiAgIHBvc2l0
aW9uTG9jYXRpb246IGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24KLSAqICAgZmxpcE9kZFRy
aWFuZ2xlczogcmV2ZXJzZSBvcmRlciBvZiB2ZXJ0aWNlcyBvZiBldmVyeSBvdGhlcgotICogICAg
ICAgdHJpYW5nbGUKLSAqICAgcG9zaXRpb25PZmZzZXQ6IG9mZnNldCBhZGRlZCB0byBlYWNoIHZl
cnRleAotICogICBwb3NpdGlvbk11bHQ6IG11bHRpcGllciBmb3IgZWFjaCB2ZXJ0ZXgKLSAqICAg
Y29sb3JMb2NhdGlvbjogYXR0cmliIGxvY2F0aW9uIGZvciB2ZXJ0ZXggY29sb3JzLiBJZgotICog
ICAgICB1bmRlZmluZWQgbm8gdmVydGV4IGNvbG9ycyB3aWxsIGJlIGNyZWF0ZWQuCi0gKi8KLXZh
ciBzZXR1cFF1YWRXaXRoT3B0aW9ucyA9IGZ1bmN0aW9uIChnbCwgb3B0aW9ucykgewotICB2YXIg
cG9zaXRpb25Mb2NhdGlvbiA9IG9wdGlvbnMucG9zaXRpb25Mb2NhdGlvbiB8fCAwOwotICB2YXIg
b2JqZWN0cyA9IFtdOwotCi0gIHZhciBncmlkUmVzID0gb3B0aW9ucy5ncmlkUmVzIHx8IDE7Ci0g
IHZhciBwb3NpdGlvbk9mZnNldCA9IG9wdGlvbnMucG9zaXRpb25PZmZzZXQgfHwgMDsKLSAgdmFy
IHBvc2l0aW9uTXVsdCA9IG9wdGlvbnMucG9zaXRpb25NdWx0IHx8IDE7Ci0gIHZhciB2ZXJ0c0Fj
cm9zcyA9IGdyaWRSZXMgKyAxOwotICB2YXIgbnVtVmVydHMgPSB2ZXJ0c0Fjcm9zcyAqIHZlcnRz
QWNyb3NzOwotICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShudW1WZXJ0cyAqIDMp
OwotICB2YXIgaW5kaWNlcyA9IG5ldyBVaW50MTZBcnJheSg2ICogZ3JpZFJlcyAqIGdyaWRSZXMp
OwotICB2YXIgcG9mZnNldCA9IDA7Ci0KLSAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVz
OyArK3l5KSB7Ci0gICAgZm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVzOyArK3h4KSB7Ci0g
ICAgICBwb3NpdGlvbnNbcG9mZnNldCArIDBdID0gKC0xICsgMiAqIHh4IC8gZ3JpZFJlcykgKiBw
b3NpdGlvbk11bHQgKyBwb3NpdGlvbk9mZnNldDsKLSAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsg
MV0gPSAoLTEgKyAyICogeXkgLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zm
c2V0OwotICAgICAgcG9zaXRpb25zW3BvZmZzZXQgKyAyXSA9IDA7Ci0KLSAgICAgIHBvZmZzZXQg
Kz0gMzsKLSAgICB9Ci0gIH0KLQotICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWYpOwotICBnbC5idWZmZXJEYXRhKGdsLkFS
UkFZX0JVRkZFUiwgcG9zaXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRpb24pOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KHBvc2l0aW9uTG9jYXRpb24sIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0gIG9iamVjdHMu
cHVzaChidWYpOwotCi0gIGlmIChvcHRpb25zLmNvbG9yTG9jYXRpb24gIT09IHVuZGVmaW5lZCkg
ewotICAgIHZhciBjb2xvcnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogNCk7Ci0gICAg
Zm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVzOyArK3l5KSB7Ci0gICAgICBmb3IgKHZhciB4
eCA9IDA7IHh4IDw9IGdyaWRSZXM7ICsreHgpIHsKLSAgICAgICAgaWYgKG9wdGlvbnMuY29sb3Ig
IT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSBvcHRpb25z
LmNvbG9yWzBdOwotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMV0gPSBvcHRpb25zLmNvbG9y
WzFdOwotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMl0gPSBvcHRpb25zLmNvbG9yWzJdOwot
ICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgM10gPSBvcHRpb25zLmNvbG9yWzNdOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSB4eCAvIGdyaWRSZXM7
Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAxXSA9IHl5IC8gZ3JpZFJlczsKLSAgICAgICAg
ICBjb2xvcnNbcG9mZnNldCArIDJdID0gKHh4IC8gZ3JpZFJlcykgKiAoeXkgLyBncmlkUmVzKTsK
LSAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDNdID0gKHl5ICUgMikgKiAwLjUgKyAwLjU7Ci0g
ICAgICAgIH0KLSAgICAgICAgcG9mZnNldCArPSA0OwotICAgICAgfQotICAgIH0KLQotICAgIHZh
ciBidWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JV
RkZFUiwgYnVmKTsKLSAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JzLCBn
bC5TVEFUSUNfRFJBVyk7Ci0gICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkob3B0aW9ucy5j
b2xvckxvY2F0aW9uKTsKLSAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdGlvbnMuY29sb3JM
b2NhdGlvbiwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICBvYmplY3RzLnB1c2goYnVm
KTsKLSAgfQotCi0gIHZhciB0YmFzZSA9IDA7Ci0gIGZvciAodmFyIHl5ID0gMDsgeXkgPCBncmlk
UmVzOyArK3l5KSB7Ci0gICAgdmFyIGluZGV4ID0geXkgKiB2ZXJ0c0Fjcm9zczsKLSAgICBmb3Ig
KHZhciB4eCA9IDA7IHh4IDwgZ3JpZFJlczsgKyt4eCkgewotICAgICAgaW5kaWNlc1t0YmFzZSAr
IDBdID0gaW5kZXggKyAwOwotICAgICAgaW5kaWNlc1t0YmFzZSArIDFdID0gaW5kZXggKyAxOwot
ICAgICAgaW5kaWNlc1t0YmFzZSArIDJdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsKLSAgICAgIGlu
ZGljZXNbdGJhc2UgKyAzXSA9IGluZGV4ICsgdmVydHNBY3Jvc3M7Ci0gICAgICBpbmRpY2VzW3Ri
YXNlICsgNF0gPSBpbmRleCArIDE7Ci0gICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCAr
IHZlcnRzQWNyb3NzICsgMTsKLQotICAgICAgaWYgKG9wdGlvbnMuZmxpcE9kZFRyaWFuZ2xlcykg
ewotICAgICAgICBpbmRpY2VzW3RiYXNlICsgNF0gPSBpbmRleCArIHZlcnRzQWNyb3NzICsgMTsK
LSAgICAgICAgaW5kaWNlc1t0YmFzZSArIDVdID0gaW5kZXggKyAxOwotICAgICAgfQotCi0gICAg
ICBpbmRleCArPSAxOwotICAgICAgdGJhc2UgKz0gNjsKLSAgICB9Ci0gIH0KLQotICB2YXIgYnVm
ID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIGJ1Zik7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGlu
ZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKLSAgb2JqZWN0cy5wdXNoKGJ1Zik7Ci0KLSAgcmV0dXJu
IG9iamVjdHM7Ci19OwotCi0vKioKLSAqIEZpbGxzIHRoZSBnaXZlbiB0ZXh0dXJlIHdpdGggYSBz
b2xpZCBjb2xvcgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0
IHRvIHVzZS4KLSAqIEBwYXJhbSB7IVdlYkdMVGV4dHVyZX0gdGV4IFRoZSB0ZXh0dXJlIHRvIGZp
bGwuCi0gKiBAcGFyYW0ge251bWJlcn0gd2lkdGggVGhlIHdpZHRoIG9mIHRoZSB0ZXh0dXJlIHRv
IGNyZWF0ZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdGV4
dHVyZSB0byBjcmVhdGUuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNv
bG9yIHRvIGZpbGwgd2l0aC4gQSA0IGVsZW1lbnQgYXJyYXkKLSAqICAgICAgICB3aGVyZSBlYWNo
IGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgotICogQHBhcmFtIHtudW1iZXJ9IG9w
dF9sZXZlbCBUaGUgbGV2ZWwgb2YgdGhlIHRleHR1cmUgdG8gZmlsbC4gRGVmYXVsdCA9IDAuCi0g
Ki8KLXZhciBmaWxsVGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNv
bG9yLCBvcHRfbGV2ZWwpIHsKLSAgb3B0X2xldmVsID0gb3B0X2xldmVsIHx8IDA7Ci0gIHZhciBu
dW1QaXhlbHMgPSB3aWR0aCAqIGhlaWdodDsKLSAgdmFyIHNpemUgPSBudW1QaXhlbHMgKiA0Owot
ICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkg
PCBudW1QaXhlbHM7ICsraWkpIHsKLSAgICB2YXIgb2ZmID0gaWkgKiA0OwotICAgIGJ1ZltvZmYg
KyAwXSA9IGNvbG9yWzBdOwotICAgIGJ1ZltvZmYgKyAxXSA9IGNvbG9yWzFdOwotICAgIGJ1Zltv
ZmYgKyAyXSA9IGNvbG9yWzJdOwotICAgIGJ1ZltvZmYgKyAzXSA9IGNvbG9yWzNdOwotICB9Ci0g
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLnRleEltYWdlMkQoCi0g
ICAgICBnbC5URVhUVVJFXzJELCBvcHRfbGV2ZWwsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAs
Ci0gICAgICBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICB9OwotCi0vKioKLSAq
IENyZWF0ZXMgYSB0ZXh0dXJlcyBhbmQgZmlsbHMgaXQgd2l0aCBhIHNvbGlkIGNvbG9yCi0gKiBA
cGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBh
cmFtIHtudW1iZXJ9IHdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCi0g
KiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IFRoZSBoZWlnaHQgb2YgdGhlIHRleHR1cmUgdG8gY3Jl
YXRlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxs
IHdpdGguIEEgNCBlbGVtZW50IGFycmF5Ci0gKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlz
IGluIHRoZSByYW5nZSAwIHRvIDI1NS4KLSAqIEByZXR1cm4geyFXZWJHTFRleHR1cmV9Ci0gKi8K
LXZhciBjcmVhdGVDb2xvcmVkVGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCBj
b2xvcikgewotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBmaWxsVGV4dHVyZShn
bCwgdGV4LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcik7Ci0gIHJldHVybiB0ZXg7Ci19OwotCi12YXIg
dWJ5dGVUb0Zsb2F0ID0gZnVuY3Rpb24oYykgewotICByZXR1cm4gYyAvIDI1NTsKLX07Ci0KLXZh
ciB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yID0gZnVuY3Rpb24oY29sb3IpIHsKLSAgdmFyIGZsb2F0
Q29sb3IgPSBbXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9yLmxlbmd0aDsgKytpaSkg
ewotICAgIGZsb2F0Q29sb3JbaWldID0gdWJ5dGVUb0Zsb2F0KGNvbG9yW2lpXSk7Ci0gIH0KLSAg
cmV0dXJuIGZsb2F0Q29sb3I7Ci19OwotCi0vKioKLSAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlm
b3JtIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gdG8gY29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj4gY29sb3IgNCBlbGVtZW50IGFycmF5IG9mIDAtMSBjb2xvcgotICogICAgICBjb21wb25l
bnRzLgotICovCi12YXIgc2V0RmxvYXREcmF3Q29sb3IgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsK
LSAgdmFyIHByb2dyYW0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKTsKLSAg
dmFyIGNvbG9yTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfY29s
b3IiKTsKLSAgZ2wudW5pZm9ybTRmdihjb2xvckxvY2F0aW9uLCBjb2xvcik7Ci19OwotCi0vKioK
LSAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlmb3JtIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gdG8g
Y29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8g
dXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj4gY29sb3IgNCBlbGVtZW50IGFycmF5IG9m
IDAtMjU1IGNvbG9yCi0gKiAgICAgIGNvbXBvbmVudHMuCi0gKi8KLXZhciBzZXRVQnl0ZURyYXdD
b2xvciA9IGZ1bmN0aW9uKGdsLCBjb2xvcikgewotICBzZXRGbG9hdERyYXdDb2xvcihnbCwgdWJ5
dGVDb2xvclRvRmxvYXRDb2xvcihjb2xvcikpOwotfTsKLQotLyoqCi0gKiBEcmF3cyBhIHByZXZp
b3VzbHkgc2V0dXAgcXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAotICogICAgICAgIGVsZW1l
bnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCi0gKiAgICAg
ICAgMS4KLSAqLwotdmFyIGRyYXdGbG9hdENvbG9yUXVhZCA9IGZ1bmN0aW9uKGdsLCBjb2xvcikg
ewotICB2YXIgcHJvZ3JhbSA9IGdsLmdldFBhcmFtZXRlcihnbC5DVVJSRU5UX1BST0dSQU0pOwot
ICB2YXIgY29sb3JMb2NhdGlvbiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidV9j
b2xvciIpOwotICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jYXRpb24sIGNvbG9yKTsKLSAgZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotfTsKLQotCi0vKioKLSAqIERyYXdzIGEgcHJl
dmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBnaXZlbiBjb2xvci4KLSAqIEBwYXJhbSB7IVdlYkdM
Q29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFBcnJheS48
bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGRyYXcgd2l0aC4gQSA0Ci0gKiAgICAgICAgZWxl
bWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KLSAqICAg
ICAgICAyNTUuCi0gKi8KLXZhciBkcmF3VUJ5dGVDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgY29s
b3IpIHsKLSAgZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNv
bG9yKSk7Ci19OwotCi0vKioKLSAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkLgotICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBw
YXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIg
d2l0aCBiZWZvcmUKLSAqICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KLSAqICAgICAgICAyNTUuIERlZmF1bHQg
WzI1NSwgMjU1LCAyNTUsIDI1NV0KLSAqLwotdmFyIGRyYXdRdWFkID0gZnVuY3Rpb24oZ2wsIG9w
dF9jb2xvcikgewotICBvcHRfY29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1
NV07Ci0gIGdsLmNsZWFyQ29sb3IoCi0gICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCi0gICAgICBv
cHRfY29sb3JbMV0gLyAyNTUsCi0gICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCi0gICAgICBvcHRf
Y29sb3JbM10gLyAyNTUpOwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7Ci0gIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLX07
Ci0KLS8qKgotICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQuCi0gKiBAcGFyYW0geyFX
ZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1i
ZXJ9IGdyaWRSZXMgUmVzb2x1dGlvbiBvZiBncmlkLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJl
cj59IG9wdF9jb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQotICogICAg
ICAgIGRyYXdpbmcuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0
aGUgcmFuZ2UgMCB0bwotICogICAgICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1
XQotICovCi12YXIgZHJhd0luZGV4ZWRRdWFkID0gZnVuY3Rpb24oZ2wsIGdyaWRSZXMsIG9wdF9j
b2xvcikgewotICBvcHRfY29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1NV07
Ci0gIGdsLmNsZWFyQ29sb3IoCi0gICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCi0gICAgICBvcHRf
Y29sb3JbMV0gLyAyNTUsCi0gICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCi0gICAgICBvcHRfY29s
b3JbM10gLyAyNTUpOwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7Ci0gIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIGdyaWRSZXMgKiA2
LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7Ci19OwotCi0vKioKLSAqIENoZWNrcyB0aGF0IGEgcG9y
dGlvbiBvZiBhIGNhbnZhcyBpcyAxIGNvbG9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29y
bmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3Ju
ZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9m
IHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVn
aW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xv
ciB0byBmaWxsIGNsZWFyIHdpdGggYmVmb3JlIGRyYXdpbmcuIEEKLSAqICAgICAgICA0IGVsZW1l
bnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KLSAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJv
ciBpbgotICogICAgICAgIGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCi0gKiBAcGFyYW0g
eyFmdW5jdGlvbigpfSBzYW1lRm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhbGwgcGl4ZWxzCi0gKiAg
ICAgICAgYXJlIHRoZSBzYW1lIGFzIGNvbG9yLgotICogQHBhcmFtIHshZnVuY3Rpb24oKX0gZGlm
ZmVyZW50Rm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhIHBpeGVsCi0gKiAgICAgICAgaXMgZGlmZmVy
ZW50IHRoYW4gY29sb3IKLSAqIEBwYXJhbSB7IWZ1bmN0aW9uKCl9IGxvZ0ZuIEZ1bmN0aW9uIHRv
IGNhbGwgZm9yIGxvZ2dpbmcuCi0gKi8KLXZhciBjaGVja0NhbnZhc1JlY3RDb2xvciA9IGZ1bmN0
aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2Vycm9yUmFuZ2UsIHNhbWVG
biwgZGlmZmVyZW50Rm4sIGxvZ0ZuKSB7Ci0gIHZhciBlcnJvclJhbmdlID0gb3B0X2Vycm9yUmFu
Z2UgfHwgMDsKLSAgaWYgKCFlcnJvclJhbmdlLmxlbmd0aCkgewotICAgIGVycm9yUmFuZ2UgPSBb
ZXJyb3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZV0KLSAgfQotICB2
YXIgYnVmOwotICBpZiAoZ2wgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIHsKLSAg
ICBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwotICAgIGdsLnJlYWRQ
aXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVm
KTsKLSAgfSBlbHNlIHsKLSAgICBidWYgPSBnbC5nZXRJbWFnZURhdGEoeCwgeSwgd2lkdGgsIGhl
aWdodCkuZGF0YTsKLSAgfQotICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRoICogaGVpZ2h0OyAr
K2kpIHsKLSAgICB2YXIgb2Zmc2V0ID0gaSAqIDQ7Ci0gICAgZm9yICh2YXIgaiA9IDA7IGogPCBj
b2xvci5sZW5ndGg7ICsraikgewotICAgICAgaWYgKE1hdGguYWJzKGJ1ZltvZmZzZXQgKyBqXSAt
IGNvbG9yW2pdKSA+IGVycm9yUmFuZ2Vbal0pIHsKLSAgICAgICAgZGlmZmVyZW50Rm4oKTsKLSAg
ICAgICAgdmFyIHdhcyA9IGJ1ZltvZmZzZXQgKyAwXS50b1N0cmluZygpOwotICAgICAgICBmb3Ig
KGogPSAxOyBqIDwgY29sb3IubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICB3YXMgKz0gIiwiICsg
YnVmW29mZnNldCArIGpdOwotICAgICAgICB9Ci0gICAgICAgIGxvZ0ZuKCdhdCAoJyArIChpICUg
d2lkdGgpICsgJywgJyArIE1hdGguZmxvb3IoaSAvIHdpZHRoKSArCi0gICAgICAgICAgICAgICcp
IGV4cGVjdGVkOiAnICsgY29sb3IgKyAnIHdhcyAnICsgd2FzKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgICAgfQotICAgIH0KLSAgfQotICBzYW1lRm4oKTsKLX07Ci0KLS8qKgotICogQ2hlY2tzIHRo
YXQgYSBwb3J0aW9uIG9mIGEgY2FudmFzIGlzIDEgY29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IHgg
bGVmdCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IHkgYm90
dG9tIGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0ge251bWJlcn0gd2lkdGgg
d2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCB3aWR0
aCBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3Ig
VGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIgd2l0aCBiZWZvcmUgZHJhd2luZy4gQQotICogICAgICAg
IDQgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8g
MjU1LgotICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0
aCBzdWNjZXNzLiBFZwotICogICAgICAgICgic2hvdWxkIGJlIHJlZCIpLgotICogQHBhcmFtIHtu
dW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFsLiBBY2NlcHRhYmxlIGVycm9yIGluCi0gKiAg
ICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVsdC4KLSAqLwotdmFyIGNoZWNrQ2FudmFz
UmVjdCA9IGZ1bmN0aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X21zZywg
b3B0X2Vycm9yUmFuZ2UpIHsKLSAgdmFyIG1zZyA9IG9wdF9tc2c7Ci0gIGlmIChtc2cgPT09IHVu
ZGVmaW5lZCkgewotICAgIG1zZyA9ICJzaG91bGQgYmUgIiArIGNvbG9yLnRvU3RyaW5nKCk7Ci0g
IH0KLSAgY2hlY2tDYW52YXNSZWN0Q29sb3IoCi0gICAgICBnbCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCwgY29sb3IsIG9wdF9lcnJvclJhbmdlLAotICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRl
c3RQYXNzZWQobXNnKTsKLSAgICAgIH0sCi0gICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgdGVz
dEZhaWxlZChtc2cpOwotICAgICAgfSwKLSAgICAgIGRlYnVnKTsKLX07Ci0KLS8qKgotICogQ2hl
Y2tzIHRoYXQgYW4gZW50aXJlIGNhbnZhcyBpcyAxIGNvbG9yLgotICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IUFycmF5Ljxu
dW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZSBkcmF3aW5n
LiBBCi0gKiAgICAgICAgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0
aGUgcmFuZ2UgMCB0byAyNTUuCi0gKiBAcGFyYW0ge3N0cmluZ30gbXNnIE1lc3NhZ2UgdG8gYXNz
b2NpYXRlIHdpdGggc3VjY2Vzcy4gRWcgKCJzaG91bGQgYmUgcmVkIikuCi0gKiBAcGFyYW0ge251
bWJlcn0gZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbgotICogICAgICAg
IGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCi0gKi8KLXZhciBjaGVja0NhbnZhcyA9IGZ1
bmN0aW9uKGdsLCBjb2xvciwgbXNnLCBlcnJvclJhbmdlKSB7Ci0gIGNoZWNrQ2FudmFzUmVjdChn
bCwgMCwgMCwgZ2wuY2FudmFzLndpZHRoLCBnbC5jYW52YXMuaGVpZ2h0LCBjb2xvciwgbXNnLCBl
cnJvclJhbmdlKTsKLX07Ci0KLS8qKgotICogTG9hZHMgYSB0ZXh0dXJlLCBjYWxscyBjYWxsYmFj
ayB3aGVuIGZpbmlzaGVkLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xD
b250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIG9mIGltYWdlIHRvIGxv
YWQKLSAqIEBwYXJhbSB7ZnVuY3Rpb24oIUltYWdlKTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24g
dGhhdCBnZXRzIGNhbGxlZCBhZnRlcgotICogICAgICAgIGltYWdlIGhhcyBsb2FkZWQKLSAqIEBy
ZXR1cm4geyFXZWJHTFRleHR1cmV9IFRoZSBjcmVhdGVkIHRleHR1cmUuCi0gKi8KLXZhciBsb2Fk
VGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB1cmwsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIHRleHR1cmUg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICB2YXIgaW1hZ2Ug
PSBuZXcgSW1hZ2UoKTsKLSAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgICAgIGdsLnBpeGVs
U3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIHRydWUpOwotICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGltYWdlKTsKLSAgICAgICAgY2FsbGJhY2soaW1hZ2UpOwotICAgIH07Ci0gICAgaW1hZ2Uuc3Jj
ID0gdXJsOwotICAgIHJldHVybiB0ZXh0dXJlOwotfTsKLQotLyoqCi0gKiBNYWtlcyBhIHNoYWxs
b3cgY29weSBvZiBhbiBvYmplY3QuCi0gKiBAcGFyYW0geyFPYmplY3QpIHNyYyBPYmplY3QgdG8g
Y29weQotICogQHJldHVybiB7IU9iamVjdH0gVGhlIGNvcHkgb2Ygc3JjLgotICovCi12YXIgc2hh
bGxvd0NvcHlPYmplY3QgPSBmdW5jdGlvbihzcmMpIHsKLSAgdmFyIGRzdCA9IHt9OwotICBmb3Ig
KHZhciBhdHRyIGluIHNyYykgewotICAgIGlmIChzcmMuaGFzT3duUHJvcGVydHkoYXR0cikpIHsK
LSAgICAgIGRzdFthdHRyXSA9IHNyY1thdHRyXTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIGRzdDsK
LX07Ci0KLS8qKgotICogQ2hlY2tzIGlmIGFuIGF0dHJpYnV0ZSBleGlzdHMgb24gYW4gb2JqZWN0
IGNhc2UgaW5zZW5zaXRpdmUuCi0gKiBAcGFyYW0geyFPYmplY3QpIG9iaiBPYmplY3QgdG8gY2hl
Y2sKLSAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyIE5hbWUgb2YgYXR0cmlidXRlIHRvIGxvb2sgZm9y
LgotICogQHJldHVybiB7c3RyaW5nP30gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBpZiBpdCBl
eGlzdHMsCi0gKiAgICAgICAgIHVuZGVmaW5lZCBpZiBub3QuCi0gKi8KLXZhciBoYXNBdHRyaWJ1
dGVDYXNlSW5zZW5zaXRpdmUgPSBmdW5jdGlvbihvYmosIGF0dHIpIHsKLSAgdmFyIGxvd2VyID0g
YXR0ci50b0xvd2VyQ2FzZSgpOwotICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7Ci0gICAgaWYgKG9i
ai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleS50b0xvd2VyQ2FzZSgpID09IGxvd2VyKSB7Ci0g
ICAgICByZXR1cm4ga2V5OwotICAgIH0KLSAgfQotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgd2Vi
Z2wgY29udGV4dC4KLSAqIEBwYXJhbSB7IUNhbnZhc3xzdHJpbmd9IG9wdF9jYW52YXMgVGhlIGNh
bnZhcyB0YWcgdG8gZ2V0Ci0gKiAgICAgY29udGV4dCBmcm9tLiBJZiBvbmUgaXMgbm90IHBhc3Nl
ZCBpbiBvbmUgd2lsbCBiZQotICogICAgIGNyZWF0ZWQuIElmIGl0J3MgYSBzdHJpbmcgaXQncyBh
c3N1bWVkIHRvIGJlIHRoZSBpZCBvZiBhCi0gKiAgICAgY2FudmFzLgotICogQHJldHVybiB7IVdl
YkdMQ29udGV4dH0gVGhlIGNyZWF0ZWQgY29udGV4dC4KLSAqLwotdmFyIGNyZWF0ZTNEQ29udGV4
dCA9IGZ1bmN0aW9uKG9wdF9jYW52YXMsIG9wdF9hdHRyaWJ1dGVzKSB7Ci0gIGlmICh3aW5kb3cu
aW5pdFRlc3RpbmdIYXJuZXNzKSB7Ci0gICAgd2luZG93LmluaXRUZXN0aW5nSGFybmVzcygpOwot
ICB9Ci0gIHZhciBhdHRyaWJ1dGVzID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0X2F0dHJpYnV0ZXMg
fHwge30pOwotICBpZiAoIWhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZShhdHRyaWJ1dGVzLCAi
YW50aWFsaWFzIikpIHsKLSAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOwotICB9Ci0K
LSAgb3B0X2NhbnZhcyA9IG9wdF9jYW52YXMgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2Fu
dmFzIik7Ci0gIGlmICh0eXBlb2Ygb3B0X2NhbnZhcyA9PSAnc3RyaW5nJykgewotICAgIG9wdF9j
YW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvcHRfY2FudmFzKTsKLSAgfQotICB2YXIg
Y29udGV4dCA9IG51bGw7Ci0gIHZhciBuYW1lcyA9IFsid2ViZ2wiLCAiZXhwZXJpbWVudGFsLXdl
YmdsIl07Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICB0
cnkgewotICAgICAgY29udGV4dCA9IG9wdF9jYW52YXMuZ2V0Q29udGV4dChuYW1lc1tpXSwgYXR0
cmlidXRlcyk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgIH0KLSAgICBpZiAoY29udGV4dCkgewot
ICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIGlmICghY29udGV4dCkgewotICAgIHRlc3RGYWls
ZWQoIlVuYWJsZSB0byBmZXRjaCBXZWJHTCByZW5kZXJpbmcgY29udGV4dCBmb3IgQ2FudmFzIik7
Ci0gIH0KLSAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLS8qKgotICogR2V0cyBhIEdMRXJyb3IgdmFs
dWUgYXMgYSBzdHJpbmcuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENv
bnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IGVyciBUaGUgd2ViZ2wgZXJyb3IgYXMg
cmV0cmlldmVkIGZyb20gZ2wuZ2V0RXJyb3IoKS4KLSAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVy
cm9yIGFzIGEgc3RyaW5nLgotICovCi12YXIgZ2V0R0xFcnJvckFzU3RyaW5nID0gZnVuY3Rpb24o
Z2wsIGVycikgewotICBpZiAoZXJyID09PSBnbC5OT19FUlJPUikgewotICAgIHJldHVybiAiTk9f
RVJST1IiOwotICB9Ci0gIGZvciAodmFyIG5hbWUgaW4gZ2wpIHsKLSAgICBpZiAoZ2xbbmFtZV0g
PT09IGVycikgewotICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgfQotICB9Ci0gIHJldHVybiBlcnIu
dG9TdHJpbmcoKTsKLX07Ci0KLS8qKgotICogV3JhcHMgYSBXZWJHTCBmdW5jdGlvbiB3aXRoIGEg
ZnVuY3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZXJlIGlzCi0gKiBhbiBlcnJv
ci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2Uu
Ci0gKiBAcGFyYW0ge3N0cmluZ30gZm5hbWUgTmFtZSBvZiBmdW5jdGlvbiB0byB3cmFwLgotICog
QHJldHVybiB7ZnVuY3Rpb259IFRoZSB3cmFwcGVkIGZ1bmN0aW9uLgotICovCi12YXIgY3JlYXRl
R0xFcnJvcldyYXBwZXIgPSBmdW5jdGlvbihjb250ZXh0LCBmbmFtZSkgewotICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgdmFyIHJ2ID0gY29udGV4dFtmbmFtZV0uYXBwbHkoY29udGV4dCwgYXJn
dW1lbnRzKTsKLSAgICB2YXIgZXJyID0gY29udGV4dC5nZXRFcnJvcigpOwotICAgIGlmIChlcnIg
IT0gY29udGV4dC5OT19FUlJPUikKLSAgICAgIHRocm93ICJHTCBlcnJvciAiICsgZ2V0R0xFcnJv
ckFzU3RyaW5nKGNvbnRleHQsIGVycikgKyAiIGluICIgKyBmbmFtZTsKLSAgICByZXR1cm4gcnY7
Ci0gIH07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBXZWJHTCBjb250ZXh0IHdoZXJlIGFsbCBm
dW5jdGlvbnMgYXJlIHdyYXBwZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uCi0gKiBpZiB0aGVyZSBp
cyBhbiBlcnJvci4KLSAqIEBwYXJhbSB7IUNhbnZhc30gY2FudmFzIFRoZSBIVE1MIGNhbnZhcyB0
byBnZXQgYSBjb250ZXh0IGZyb20uCi0gKiBAcmV0dXJuIHshT2JqZWN0fSBUaGUgd3JhcHBlZCBj
b250ZXh0LgotICovCi1mdW5jdGlvbiBjcmVhdGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJv
d3NPbkdMRXJyb3IoY2FudmFzKSB7Ci0gIHZhciBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KGNh
bnZhcyk7Ci0gIHZhciB3cmFwID0ge307Ci0gIGZvciAodmFyIGkgaW4gY29udGV4dCkgewotICAg
IHRyeSB7Ci0gICAgICBpZiAodHlwZW9mIGNvbnRleHRbaV0gPT0gJ2Z1bmN0aW9uJykgewotICAg
ICAgICB3cmFwW2ldID0gY3JlYXRlR0xFcnJvcldyYXBwZXIoY29udGV4dCwgaSk7Ci0gICAgICB9
IGVsc2UgewotICAgICAgICB3cmFwW2ldID0gY29udGV4dFtpXTsKLSAgICAgIH0KLSAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICBlcnJvcigiY3JlYXRlQ29udGV4dFdyYXBwZXJUaGF0VGhyb3dzT25H
TEVycm9yOiBFcnJvciBhY2Nlc3NpbmcgIiArIGkpOwotICAgIH0KLSAgfQotICB3cmFwLmdldEVy
cm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gY29udGV4dC5nZXRFcnJvcigpOwotICB9
OwotICByZXR1cm4gd3JhcDsKLX07Ci0KLS8qKgotICogVGVzdHMgdGhhdCBhbiBldmFsdWF0ZWQg
ZXhwcmVzc2lvbiBnZW5lcmF0ZXMgYSBzcGVjaWZpYyBHTCBlcnJvci4KLSAqIEBwYXJhbSB7IVdl
YkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJl
cn0gZ2xFcnJvciBUaGUgZXhwZWN0ZWQgZ2wgZXJyb3IuCi0gKiBAcGFyYW0ge3N0cmluZ30gZXZh
bFNUciBUaGUgc3RyaW5nIHRvIGV2YWx1YXRlLgotICovCi12YXIgc2hvdWxkR2VuZXJhdGVHTEVy
cm9yID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3IsIGV2YWxTdHIpIHsKLSAgdmFyIGV4Y2VwdGlvbjsK
LSAgdHJ5IHsKLSAgICBldmFsKGV2YWxTdHIpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgZXhjZXB0
aW9uID0gZTsKLSAgfQotICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgdGVzdEZhaWxlZChldmFsU3Ry
ICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gIH0gZWxzZSB7Ci0gICAgdmFy
IGVyciA9IGdsLmdldEVycm9yKCk7Ci0gICAgaWYgKGVyciAhPSBnbEVycm9yKSB7Ci0gICAgICB0
ZXN0RmFpbGVkKGV2YWxTdHIgKyAiIGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGds
LCBnbEVycm9yKSArICIuIFdhcyAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsgIi4i
KTsKLSAgICB9IGVsc2UgewotICAgICAgdGVzdFBhc3NlZChldmFsU3RyICsgIiB3YXMgZXhwZWN0
ZWQgdmFsdWU6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIi4iKTsKLSAg
ICB9Ci0gIH0KLX07Ci0KLS8qKgotICogVGVzdHMgdGhhdCB0aGUgZmlyc3QgZXJyb3IgR0wgcmV0
dXJucyBpcyB0aGUgc3BlY2lmaWVkIGVycm9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBnbEVycm9yIFRo
ZSBleHBlY3RlZCBnbCBlcnJvci4KLSAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnCi0gKi8KLXZh
ciBnbEVycm9yU2hvdWxkQmUgPSBmdW5jdGlvbihnbCwgZ2xFcnJvciwgb3B0X21zZykgewotICBv
cHRfbXNnID0gb3B0X21zZyB8fCAiIjsKLSAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gIGlm
IChlcnIgIT0gZ2xFcnJvcikgewotICAgIHRlc3RGYWlsZWQoImdldEVycm9yIGV4cGVjdGVkOiAi
ICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVycm9yKSArCi0gICAgICAgICAgICAgICAiLiBX
YXMgIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArICIgOiAiICsgb3B0X21zZyk7Ci0g
IH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiAi
ICsKLSAgICAgICAgICAgICAgICBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIiA6
ICIgKyBvcHRfbXNnKTsKLSAgfQotfTsKLQotLyoqCi0gKiBMaW5rcyBhIFdlYkdMIHByb2dyYW0s
IHRocm93cyBpZiB0aGVyZSBhcmUgZXJyb3JzLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IVdlYkdMUHJvZ3JhbX0gcHJv
Z3JhbSBUaGUgV2ViR0xQcm9ncmFtIHRvIGxpbmsuCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmlu
Zyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAotICovCi12
YXIgbGlua1Byb2dyYW0gPSBmdW5jdGlvbihnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2sp
IHsKLSAgdmFyIGVyckZuID0gb3B0X2Vycm9yQ2FsbGJhY2sgfHwgdGVzdEZhaWxlZDsKLSAgLy8g
TGluayB0aGUgcHJvZ3JhbQotICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLQotICAvLyBDaGVj
ayB0aGUgbGluayBzdGF0dXMKLSAgdmFyIGxpbmtlZCA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIo
cHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpOwotICBpZiAoIWxpbmtlZCkgewotICAgIC8vIHNvbWV0
aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKLSAgICB2YXIgZXJyb3IgPSBnbC5nZXRQcm9n
cmFtSW5mb0xvZyAocHJvZ3JhbSk7Ci0KLSAgICBlcnJGbigiRXJyb3IgaW4gcHJvZ3JhbSBsaW5r
aW5nOiIgKyBlcnJvcik7Ci0KLSAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOwotICB9Ci19
OwotCi0vKioKLSAqIExvYWRzIHRleHQgZnJvbSBhbiBleHRlcm5hbCBmaWxlLiBUaGlzIGZ1bmN0
aW9uIGlzIHN5bmNocm9ub3VzLgotICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgdXJsIG9mIHRo
ZSBleHRlcm5hbCBmaWxlLgotICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgc3RyaW5nKTogdm9p
ZH0gY2FsbGJhY2sgdGhhdCBpcyBzZW50IGEgYm9vbCBmb3IKLSAqICAgICBzdWNjZXNzIGFuZCB0
aGUgc3RyaW5nLgotICovCi12YXIgbG9hZFRleHRGaWxlQXN5bmMgPSBmdW5jdGlvbih1cmwsIGNh
bGxiYWNrKSB7Ci0gIGxvZyAoImxvYWRpbmc6ICIgKyB1cmwpOwotICB2YXIgZXJyb3IgPSAnbG9h
ZFRleHRGaWxlU3luY2hyb25vdXMgZmFpbGVkIHRvIGxvYWQgdXJsICInICsgdXJsICsgJyInOwot
ICB2YXIgcmVxdWVzdDsKLSAgaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewotICAgIHJlcXVl
c3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICBpZiAocmVxdWVzdC5vdmVycmlkZU1pbWVU
eXBlKSB7Ci0gICAgICByZXF1ZXN0Lm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW4nKTsKLSAg
ICB9Ci0gIH0gZWxzZSB7Ci0gICAgdGhyb3cgJ1hNTEh0dHBSZXF1ZXN0IGlzIGRpc2FibGVkJzsK
LSAgfQotICB0cnkgewotICAgIHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTsKLSAgICBy
ZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHJlcXVl
c3QucmVhZHlTdGF0ZSA9PSA0KSB7Ci0gICAgICAgIHZhciB0ZXh0ID0gJyc7Ci0gICAgICAgIC8v
IEhUVFAgcmVwb3J0cyBzdWNjZXNzIHdpdGggYSAyMDAgc3RhdHVzLiBUaGUgZmlsZSBwcm90b2Nv
bCByZXBvcnRzCi0gICAgICAgIC8vIHN1Y2Nlc3Mgd2l0aCB6ZXJvLiBIVFRQIGRvZXMgbm90IHVz
ZSB6ZXJvIGFzIGEgc3RhdHVzIGNvZGUgKHRoZXkKLSAgICAgICAgLy8gc3RhcnQgYXQgMTAwKS4K
LSAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvRW4vVXNpbmdfWE1MSHR0
cFJlcXVlc3QKLSAgICAgICAgdmFyIHN1Y2Nlc3MgPSByZXF1ZXN0LnN0YXR1cyA9PSAyMDAgfHwg
cmVxdWVzdC5zdGF0dXMgPT0gMDsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKLSAgICAgICAgICB0
ZXh0ID0gcmVxdWVzdC5yZXNwb25zZVRleHQ7Ci0gICAgICAgIH0KLSAgICAgICAgbG9nKCJsb2Fk
ZWQ6ICIgKyB1cmwpOwotICAgICAgICBjYWxsYmFjayhzdWNjZXNzLCB0ZXh0KTsKLSAgICAgIH0K
LSAgICB9OwotICAgIHJlcXVlc3Quc2VuZChudWxsKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIGxv
ZygiZmFpbGVkIHRvIGxvYWQ6ICIgKyB1cmwpOwotICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7Ci0g
IH0KLX07Ci0KLS8qKgotICogUmVjdXJzaXZlbHkgbG9hZHMgYSBmaWxlIGFzIGEgbGlzdC4gRWFj
aCBsaW5lIGlzIHBhcnNlZCBmb3IgYSByZWxhdGl2ZQotICogcGF0aC4gSWYgdGhlIGZpbGUgZW5k
cyBpbiAudHh0IHRoZSBjb250ZW50cyBvZiB0aGF0IGZpbGUgaXMgaW5zZXJ0ZWQgaW4KLSAqIHRo
ZSBsaXN0LgotICoKLSAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJu
YWwgZmlsZS4KLSAqIEBwYXJhbSB7IWZ1bmN0aW9uKGJvb2wsIEFycmF5PHN0cmluZz4pOiB2b2lk
fSBjYWxsYmFjayB0aGF0IGlzIHNlbnQgYSBib29sCi0gKiAgICAgZm9yIHN1Y2Nlc3MgYW5kIHRo
ZSBhcnJheSBvZiBzdHJpbmdzLgotICovCi12YXIgZ2V0RmlsZUxpc3RBc3luYyA9IGZ1bmN0aW9u
KHVybCwgY2FsbGJhY2spIHsKLSAgdmFyIGZpbGVzID0gW107Ci0KLSAgdmFyIGdldEZpbGVMaXN0
SW1wbCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKLSAgICB2YXIgZmlsZXMgPSBbXTsKLSAg
ICBpZiAodXJsLnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7Ci0gICAgICBsb2Fk
VGV4dEZpbGVBc3luYyh1cmwsIGZ1bmN0aW9uKCkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24o
c3VjY2VzcywgdGV4dCkgewotICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICAgICAg
Y2FsbGJhY2soZmFsc2UsICcnKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKLSAgICAgICAgICB2YXIgcHJl
Zml4ID0gJyc7Ci0gICAgICAgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0SW5kZXhPZignLycp
OwotICAgICAgICAgIGlmIChsYXN0U2xhc2ggPj0gMCkgewotICAgICAgICAgICAgcHJlZml4ID0g
dXJsLnN1YnN0cigwLCBsYXN0U2xhc2ggKyAxKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFy
IGZhaWwgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgY291bnQgPSAxOwotICAgICAgICAgIHZhciBp
bmRleCA9IDA7Ci0gICAgICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0aDsg
KytpaSkgewotICAgICAgICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBsYWNlKC9eXHNccyov
LCAnJykucmVwbGFjZSgvXHNccyokLywgJycpOwotICAgICAgICAgICAgaWYgKHN0ci5sZW5ndGgg
PiA0ICYmCi0gICAgICAgICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgotICAgICAgICAgICAgICAg
IHN0clswXSAhPSAiOyIgJiYKLSAgICAgICAgICAgICAgICBzdHIuc3Vic3RyKDAsIDIpICE9ICIv
LyIpIHsKLSAgICAgICAgICAgICAgdmFyIG5hbWVzID0gc3RyLnNwbGl0KC8gKy8pOwotICAgICAg
ICAgICAgICBuZXdfdXJsID0gcHJlZml4ICsgc3RyOwotICAgICAgICAgICAgICBpZiAobmFtZXMu
bGVuZ3RoID09IDEpIHsKLSAgICAgICAgICAgICAgICBuZXdfdXJsID0gcHJlZml4ICsgc3RyOwot
ICAgICAgICAgICAgICAgICsrY291bnQ7Ci0gICAgICAgICAgICAgICAgZ2V0RmlsZUxpc3RJbXBs
KG5ld191cmwsIGZ1bmN0aW9uKGluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oc3VjY2VzcywgbmV3X2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxvZygiZ290
IGZpbGVzOiAiICsgbmV3X2ZpbGVzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChz
dWNjZXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgZmlsZXNbaW5kZXhdID0gbmV3X2ZpbGVz
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaChzdWNj
ZXNzKTsKLSAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfShpbmRleCsrKSk7
Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIHMgPSAiIjsKLSAg
ICAgICAgICAgICAgICB2YXIgcCA9ICIiOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGpqID0g
MDsgamogPCBuYW1lcy5sZW5ndGg7ICsramopIHsKLSAgICAgICAgICAgICAgICAgIHMgKz0gcCAr
IHByZWZpeCArIG5hbWVzW2pqXTsKLSAgICAgICAgICAgICAgICAgIHAgPSAiICI7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZpbGVzW2luZGV4KytdID0gczsKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBmaW5pc2godHJ1
ZSk7Ci0KLSAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goc3VjY2VzcykgewotICAgICAgICAgICAg
aWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgICAgICAgIGZhaWwgPSB0cnVlOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgLS1jb3VudDsKLSAgICAgICAgICAgIGxvZygiY291bnQ6ICIgKyBjb3Vu
dCk7Ci0gICAgICAgICAgICBpZiAoIWNvdW50KSB7Ci0gICAgICAgICAgICAgIGNhbGxiYWNrKCFm
YWlsLCBmaWxlcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICB9KCkpOwotCi0gICAgfSBlbHNlIHsKLSAgICAgIGZpbGVzLnB1c2godXJsKTsKLSAgICAgIGNh
bGxiYWNrKHRydWUsIGZpbGVzKTsKLSAgICB9Ci0gIH07Ci0KLSAgZ2V0RmlsZUxpc3RJbXBsKHVy
bCwgZnVuY3Rpb24oc3VjY2VzcywgZmlsZXMpIHsKLSAgICAvLyBmbGF0dGVuCi0gICAgdmFyIGZs
YXQgPSBbXTsKLSAgICBmbGF0dGVuKGZpbGVzKTsKLSAgICBmdW5jdGlvbiBmbGF0dGVuKGZpbGVz
KSB7Ci0gICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZmlsZXMubGVuZ3RoOyArK2lpKSB7Ci0g
ICAgICAgIHZhciB2YWx1ZSA9IGZpbGVzW2lpXTsKLSAgICAgICAgaWYgKHR5cGVvZih2YWx1ZSkg
PT0gInN0cmluZyIpIHsKLSAgICAgICAgICBmbGF0LnB1c2godmFsdWUpOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIGZsYXR0ZW4odmFsdWUpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
fQotICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIGZsYXQpOwotICB9KTsKLX07Ci0KLS8qKgotICogR2V0
cyBhIGZpbGUgZnJvbSBhIGZpbGUvVVJMCi0gKiBAcGFyYW0ge3N0cmluZ30gZmlsZSB0aGUgVVJM
IG9mIHRoZSBmaWxlIHRvIGdldC4KLSAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvbnRlbnRzIG9m
IHRoZSBmaWxlLgotICovCi12YXIgcmVhZEZpbGUgPSBmdW5jdGlvbihmaWxlKSB7Ci0gIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgeGhyLm9wZW4oIkdFVCIsIGZpbGUsIGZhbHNl
KTsKLSAgeGhyLnNlbmQoKTsKLSAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQucmVwbGFjZSgvXHIv
ZywgIiIpOwotfTsKLQotdmFyIHJlYWRGaWxlTGlzdCA9IGZ1bmN0aW9uKHVybCkgewotICB2YXIg
ZmlsZXMgPSBbXTsKLSAgaWYgKHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcudHh0Jykg
ewotICAgIHZhciBsaW5lcyA9IHJlYWRGaWxlKHVybCkuc3BsaXQoJ1xuJyk7Ci0gICAgdmFyIHBy
ZWZpeCA9ICcnOwotICAgIHZhciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2YoJy8nKTsKLSAg
ICBpZiAobGFzdFNsYXNoID49IDApIHsKLSAgICAgIHByZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFz
dFNsYXNoICsgMSk7Ci0gICAgfQotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5n
dGg7ICsraWkpIHsKLSAgICAgIHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxzXHMqLywg
JycpLnJlcGxhY2UoL1xzXHMqJC8sICcnKTsKLSAgICAgIGlmIChzdHIubGVuZ3RoID4gNCAmJgot
ICAgICAgICAgIHN0clswXSAhPSAnIycgJiYKLSAgICAgICAgICBzdHJbMF0gIT0gIjsiICYmCi0g
ICAgICAgICAgc3RyLnN1YnN0cigwLCAyKSAhPSAiLy8iKSB7Ci0gICAgICAgIHZhciBuYW1lcyA9
IHN0ci5zcGxpdCgvICsvKTsKLSAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSAxKSB7Ci0gICAg
ICAgICAgbmV3X3VybCA9IHByZWZpeCArIHN0cjsKLSAgICAgICAgICBmaWxlcyA9IGZpbGVzLmNv
bmNhdChyZWFkRmlsZUxpc3QobmV3X3VybCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
IHZhciBzID0gIiI7Ci0gICAgICAgICAgdmFyIHAgPSAiIjsKLSAgICAgICAgICBmb3IgKHZhciBq
aiA9IDA7IGpqIDwgbmFtZXMubGVuZ3RoOyArK2pqKSB7Ci0gICAgICAgICAgICBzICs9IHAgKyBw
cmVmaXggKyBuYW1lc1tqal07Ci0gICAgICAgICAgICBwID0gIiAiOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBmaWxlcy5wdXNoKHMpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICB9IGVs
c2UgewotICAgIGZpbGVzLnB1c2godXJsKTsKLSAgfQotICByZXR1cm4gZmlsZXM7Ci19OwotCi0v
KioKLSAqIExvYWRzIGEgc2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUg
V2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBzaGFkZXJTb3VyY2UgVGhl
IHNoYWRlciBzb3VyY2UuCi0gKiBAcGFyYW0ge251bWJlcn0gc2hhZGVyVHlwZSBUaGUgdHlwZSBv
ZiBzaGFkZXIuIAotICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JD
YWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0g
VGhlIGNyZWF0ZWQgc2hhZGVyLgotICovCi12YXIgbG9hZFNoYWRlciA9IGZ1bmN0aW9uKGdsLCBz
aGFkZXJTb3VyY2UsIHNoYWRlclR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBlcnJG
biA9IG9wdF9lcnJvckNhbGxiYWNrIHx8IGVycm9yOwotICAvLyBDcmVhdGUgdGhlIHNoYWRlciBv
YmplY3QKLSAgdmFyIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihzaGFkZXJUeXBlKTsKLSAgaWYg
KHNoYWRlciA9PSBudWxsKSB7Ci0gICAgZXJyRm4oIioqKiBFcnJvcjogdW5hYmxlIHRvIGNyZWF0
ZSBzaGFkZXIgJyIrc2hhZGVyU291cmNlKyInIik7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLQot
ICAvLyBMb2FkIHRoZSBzaGFkZXIgc291cmNlCi0gIGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNo
YWRlclNvdXJjZSk7Ci0gIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICBpZiAoZXJyICE9IGds
Lk5PX0VSUk9SKSB7Ci0gICAgZXJyRm4oIioqKiBFcnJvciBsb2FkaW5nIHNoYWRlciAnIiArIHNo
YWRlciArICInOiIgKyBnbEVudW1Ub1N0cmluZyhnbCwgZXJyKSk7Ci0gICAgcmV0dXJuIG51bGw7
Ci0gIH0KLQotICAvLyBDb21waWxlIHRoZSBzaGFkZXIKLSAgZ2wuY29tcGlsZVNoYWRlcihzaGFk
ZXIpOwotCi0gIC8vIENoZWNrIHRoZSBjb21waWxlIHN0YXR1cwotICB2YXIgY29tcGlsZWQgPSBn
bC5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUyk7Ci0gIGlmICgh
Y29tcGlsZWQpIHsKLSAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgY29tcGlsYXRp
b247IGdldCB0aGUgZXJyb3IKLSAgICBsYXN0RXJyb3IgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHNo
YWRlcik7Ci0gICAgZXJyRm4oIioqKiBFcnJvciBjb21waWxpbmcgIiArIGdsRW51bVRvU3RyaW5n
KGdsLCBzaGFkZXJUeXBlKSArICIgJyIgKyBzaGFkZXIgKyAiJzoiICsgbGFzdEVycm9yKTsKLSAg
ICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKLSAgICByZXR1cm4gbnVsbDsKLSAgfQotCi0gIHJl
dHVybiBzaGFkZXI7Ci19Ci0KLS8qKgotICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIFVSTC4KLSAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBA
cGFyYW0ge2ZpbGV9IGZpbGUgVGhlIFVSTCBvZiB0aGUgc2hhZGVyIHNvdXJjZS4KLSAqIEBwYXJh
bSB7bnVtYmVyfSB0eXBlIFRoZSB0eXBlIG9mIHNoYWRlci4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0g
KiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KLSAqLwotdmFyIGxv
YWRTaGFkZXJGcm9tRmlsZSA9IGZ1bmN0aW9uKGdsLCBmaWxlLCB0eXBlLCBvcHRfZXJyb3JDYWxs
YmFjaykgewotICB2YXIgc2hhZGVyU291cmNlID0gcmVhZEZpbGUoZmlsZSk7Ci0gIHJldHVybiBs
b2FkU2hhZGVyKGdsLCBzaGFkZXJTb3VyY2UsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKTsKLX07
Ci0KLS8qKgotICogR2V0cyB0aGUgY29udGVudCBvZiBzY3JpcHQuCi0gKi8KLXZhciBnZXRTY3Jp
cHQgPSBmdW5jdGlvbihzY3JpcHRJZCkgewotICB2YXIgc2hhZGVyU2NyaXB0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoc2NyaXB0SWQpOwotICBpZiAoIXNoYWRlclNjcmlwdCkgewotICAgIHRo
cm93KCIqKiogRXJyb3I6IHVua25vd24gc2NyaXB0IGVsZW1lbnQiICsgc2NyaXB0SWQpOwotICB9
Ci0gIHJldHVybiBzaGFkZXJTY3JpcHQudGV4dDsKLX07Ci0KLS8qKgotICogTG9hZHMgYSBzaGFk
ZXIgZnJvbSBhIHNjcmlwdCB0YWcuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdElkIFRoZSBpZCBv
ZiB0aGUgc2NyaXB0IHRhZy4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfc2hhZGVyVHlwZSBUaGUg
dHlwZSBvZiBzaGFkZXIuIElmIG5vdCBwYXNzZWQgaW4gaXQgd2lsbAotICogICAgIGJlIGRlcml2
ZWQgZnJvbSB0aGUgdHlwZSBvZiB0aGUgc2NyaXB0IHRhZy4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0g
KiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KLSAqLwotdmFyIGxv
YWRTaGFkZXJGcm9tU2NyaXB0ID0gZnVuY3Rpb24oCi0gICAgZ2wsIHNjcmlwdElkLCBvcHRfc2hh
ZGVyVHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKLSAgdmFyIHNoYWRlclNvdXJjZSA9ICIiOwot
ICB2YXIgc2hhZGVyVHlwZTsKLSAgdmFyIHNoYWRlclNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKHNjcmlwdElkKTsKLSAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKLSAgICB0aHJvdygiKioq
IEVycm9yOiB1bmtub3duIHNjcmlwdCBlbGVtZW50ICIgKyBzY3JpcHRJZCk7Ci0gIH0KLSAgc2hh
ZGVyU291cmNlID0gc2hhZGVyU2NyaXB0LnRleHQ7Ci0KLSAgaWYgKCFvcHRfc2hhZGVyVHlwZSkg
ewotICAgIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC12ZXJ0ZXgiKSB7Ci0g
ICAgICBzaGFkZXJUeXBlID0gZ2wuVkVSVEVYX1NIQURFUjsKLSAgICB9IGVsc2UgaWYgKHNoYWRl
clNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50IikgewotICAgICAgc2hhZGVyVHlw
ZSA9IGdsLkZSQUdNRU5UX1NIQURFUjsKLSAgICB9IGVsc2UgaWYgKHNoYWRlclR5cGUgIT0gZ2wu
VkVSVEVYX1NIQURFUiAmJiBzaGFkZXJUeXBlICE9IGdsLkZSQUdNRU5UX1NIQURFUikgewotICAg
ICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93biBzaGFkZXIgdHlwZSIpOwotICAgICAgcmV0dXJu
IG51bGw7Ci0gICAgfQotICB9Ci0KLSAgcmV0dXJuIGxvYWRTaGFkZXIoCi0gICAgICBnbCwgc2hh
ZGVyU291cmNlLCBvcHRfc2hhZGVyVHlwZSA/IG9wdF9zaGFkZXJUeXBlIDogc2hhZGVyVHlwZSwK
LSAgICAgIG9wdF9lcnJvckNhbGxiYWNrKTsKLX07Ci0KLXZhciBsb2FkU3RhbmRhcmRQcm9ncmFt
ID0gZnVuY3Rpb24oZ2wpIHsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0g
IGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpKTsK
LSAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGds
KSk7Ci0gIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19Owot
Ci0vKioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBmaWxlcywgY3JlYXRlcyBhIHByb2dyYW0sIGF0
dGFjaGVzIHRoZSBzaGFkZXJzIGFuZCBsaW5rcy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2hh
ZGVyUGF0aCBUaGUgVVJMIG9mIHRoZSB2ZXJ0ZXggc2hhZGVyLgotICogQHBhcmFtIHtzdHJpbmd9
IGZyYWdtZW50U2hhZGVyUGF0aCBUaGUgVVJMIG9mIHRoZSBmcmFnbWVudCBzaGFkZXIuCi0gKiBA
cGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNr
IGZvciBlcnJvcnMuIAotICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJv
Z3JhbS4KLSAqLwotdmFyIGxvYWRQcm9ncmFtRnJvbUZpbGUgPSBmdW5jdGlvbigKLSAgICBnbCwg
dmVydGV4U2hhZGVyUGF0aCwgZnJhZ21lbnRTaGFkZXJQYXRoLCBvcHRfZXJyb3JDYWxsYmFjaykg
ewotICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKLSAgdmFyIHZzID0gbG9hZFNo
YWRlckZyb21GaWxlKAotICAgICAgZ2wsIHZlcnRleFNoYWRlclBhdGgsIGdsLlZFUlRFWF9TSEFE
RVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgdmFyIGZzID0gbG9hZFNoYWRlckZyb21GaWxlKAot
ICAgICAgZ2wsIGZyYWdtZW50U2hhZGVyUGF0aCwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJy
b3JDYWxsYmFjayk7Ci0gIGlmICh2cyAmJiBmcykgewotICAgIGdsLmF0dGFjaFNoYWRlcihwcm9n
cmFtLCB2cyk7Ci0gICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZzKTsKLSAgICBsaW5rUHJv
Z3JhbShnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2spOwotICB9Ci0gIGlmICh2cykgewot
ICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgaWYgKGZzKSB7Ci0gICAgZ2wuZGVsZXRl
U2hhZGVyKGZzKTsKLSAgfQotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMg
c2hhZGVycyBmcm9tIHNjcmlwdCB0YWdzLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhl
IHNoYWRlcnMgYW5kCi0gKiBsaW5rcy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhl
IFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2NyaXB0SWQg
VGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnIHRoYXQgY29udGFpbnMgdGhlCi0gKiAgICAgICAgdmVy
dGV4IHNoYWRlci4KLSAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNjcmlwdElkIFRoZSBpZCBv
ZiB0aGUgc2NyaXB0IHRhZyB0aGF0IGNvbnRhaW5zIHRoZQotICogICAgICAgIGZyYWdtZW50IHNo
YWRlci4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJh
Y2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0gKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfSBUaGUg
Y3JlYXRlZCBwcm9ncmFtLgotICovCi12YXIgbG9hZFByb2dyYW1Gcm9tU2NyaXB0ID0gZnVuY3Rp
b24gbG9hZFByb2dyYW1Gcm9tU2NyaXB0KAotICAgIGdsLCB2ZXJ0ZXhTY3JpcHRJZCwgZnJhZ21l
bnRTY3JpcHRJZCwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVh
dGVQcm9ncmFtKCk7Ci0gIGdsLmF0dGFjaFNoYWRlcigKLSAgICAgIHByb2dyYW0sCi0gICAgICBs
b2FkU2hhZGVyRnJvbVNjcmlwdCgKLSAgICAgICAgICBnbCwgdmVydGV4U2NyaXB0SWQsIGdsLlZF
UlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKSk7Ci0gIGdsLmF0dGFjaFNoYWRlcigKLSAg
ICAgIHByb2dyYW0sCi0gICAgICBsb2FkU2hhZGVyRnJvbVNjcmlwdCgKLSAgICAgICAgICBnbCwg
ZnJhZ21lbnRTY3JpcHRJZCwgIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2sp
KTsKLSAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgcmV0
dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNy
ZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKLSAqIGxpbmtzLgotICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBw
YXJhbSB7IVdlYkdMU2hhZGVyfSB2ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRleCBzaGFkZXIuCi0gKiBA
cGFyYW0geyFXZWJHTFNoYWRlcn0gZnJhZ21lbnRTaGFkZXIgVGhlIGZyYWdtZW50IHNoYWRlci4K
LSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2Fs
bGJhY2sgZm9yIGVycm9ycy4KLSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVk
IHByb2dyYW0uCi0gKi8KLXZhciBjcmVhdGVQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIHZlcnRleFNo
YWRlciwgZnJhZ21lbnRTaGFkZXIsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBwcm9ncmFt
ID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4
U2hhZGVyKTsKLSAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKLSAg
bGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgcmV0dXJuIHBy
b2dyYW07Ci19OwotCi0vKioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMg
YSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKLSAqIGxpbmtzLgotICogQHBhcmFt
IHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7
c3RyaW5nfSB2ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRleCBzaGFkZXIgc291cmNlLgotICogQHBhcmFt
IHtzdHJpbmd9IGZyYWdtZW50U2hhZGVyIFRoZSBmcmFnbWVudCBzaGFkZXIgc291cmNlLgotICog
QHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFj
ayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHBy
b2dyYW0uCi0gKi8KLXZhciBsb2FkUHJvZ3JhbSA9IGZ1bmN0aW9uKAotICAgIGdsLCB2ZXJ0ZXhT
aGFkZXIsIGZyYWdtZW50U2hhZGVyLCBvcHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIgcHJvZ3Jh
bTsKLSAgdmFyIHZzID0gbG9hZFNoYWRlcigKLSAgICAgIGdsLCB2ZXJ0ZXhTaGFkZXIsIGdsLlZF
UlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgdmFyIGZzID0gbG9hZFNoYWRlcigK
LSAgICAgIGdsLCBmcmFnbWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJyb3JD
YWxsYmFjayk7Ci0gIGlmICh2cyAmJiBmcykgewotICAgIHByb2dyYW0gPSBjcmVhdGVQcm9ncmFt
KGdsLCB2cywgZnMsIG9wdF9lcnJvckNhbGxiYWNrKQotICB9Ci0gIGlmICh2cykgewotICAgIGds
LmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgaWYgKGZzKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVy
KGZzKTsKLSAgfQotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMgc2hhZGVy
cyBmcm9tIHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFu
ZAotICogbGlua3MgYnV0IGV4cGVjdHMgZXJyb3IuCi0gKgotICogR0xTTCAxLjAuMTcgMTAuMjcg
ZWZmZWN0aXZlbHkgc2F5cyB0aGF0IGNvbXBpbGVTaGFkZXIgY2FuCi0gKiBhbHdheXMgc3VjY2Vl
ZCBhcyBsb25nIGFzIGxpbmtQcm9ncmFtIGZhaWxzIHNvIHdlIGNhbid0Ci0gKiByZWx5IG9uIGNv
bXBpbGVTaGFkZXIgZmFpbGluZy4gVGhpcyBmdW5jdGlvbiBleHBlY3RzCi0gKiBvbmUgb2YgdGhl
IHNoYWRlciB0byBmYWlsIE9SIGxpbmtpbmcgdG8gZmFpbC4KLSAqCi0gKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJpbmd9
IHZlcnRleFNoYWRlclNjcmlwdElkIFRoZSB2ZXJ0ZXggc2hhZGVyLgotICogQHBhcmFtIHtzdHJp
bmd9IGZyYWdtZW50U2hhZGVyU2NyaXB0SWQgVGhlIGZyYWdtZW50IHNoYWRlci4KLSAqIEByZXR1
cm4ge1dlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KLSAqLwotdmFyIGxvYWRQcm9n
cmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yID0gZnVuY3Rpb24oCi0gICAgZ2wsIHZlcnRleFNoYWRl
clNjcmlwdElkLCBmcmFnbWVudFNoYWRlclNjcmlwdElkKSB7Ci0gIHZhciB2ZXJ0ZXhTaGFkZXIg
PSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgdmVydGV4U2hhZGVyU2NyaXB0SWQpOwotICBpZiAo
IXZlcnRleFNoYWRlcikgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBmcmFnbWVudFNo
YWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBmcmFnbWVudFNoYWRlclNjcmlwdElkKTsK
LSAgaWYgKCFmcmFnbWVudFNoYWRlcikgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBs
aW5rU3VjY2VzcyA9IHRydWU7Ci0gIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwot
ICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKLSAgZ2wuYXR0YWNoU2hh
ZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKLSAgbGlua1N1Y2Nlc3MgPSB0cnVlOwotICBs
aW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSwgZnVuY3Rpb24oKSB7Ci0gICAgICBsaW5rU3VjY2VzcyA9
IGZhbHNlOwotICAgIH0pOwotICByZXR1cm4gbGlua1N1Y2Nlc3MgPyBwcm9ncmFtIDogbnVsbDsK
LX07Ci0KLQotdmFyIGdldEFjdGl2ZU1hcCA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtLCB0eXBlSW5m
bykgewotICB2YXIgbnVtVmFyaWFibGVzID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBnbFt0eXBlSW5mby5wYXJhbV0pOwotICB2YXIgdmFyaWFibGVzID0ge307Ci0gIGZvciAodmFy
IGlpID0gMDsgaWkgPCBudW1WYXJpYWJsZXM7ICsraWkpIHsKLSAgICB2YXIgaW5mbyA9IGdsW3R5
cGVJbmZvLmFjdGl2ZUZuXShwcm9ncmFtLCBpaSk7Ci0gICAgdmFyaWFibGVzW2luZm8ubmFtZV0g
PSB7Ci0gICAgICBuYW1lOiBpbmZvLm5hbWUsCi0gICAgICBzaXplOiBpbmZvLnNpemUsCi0gICAg
ICB0eXBlOiBpbmZvLnR5cGUsCi0gICAgICBsb2NhdGlvbjogZ2xbdHlwZUluZm8ubG9jRm5dKHBy
b2dyYW0sIGluZm8ubmFtZSkKLSAgICB9OwotICB9Ci0gIHJldHVybiB2YXJpYWJsZXM7Ci19Owot
Ci0vKioKLSAqIFJldHVybnMgYSBtYXAgb2YgYXR0cmliIG5hbWVzIHRvIGluZm8gYWJvdXQgdGhv
c2UKLSAqIGF0dHJpYnMKLSAqCi0gKiBlZzoKLSAqICAgIHsgImF0dHJpYjFOYW1lIjoKLSAqICAg
ICAgewotICogICAgICAgIG5hbWU6ICJhdHRyaWIxTmFtZSIsCi0gKiAgICAgICAgc2l6ZTogMSwK
LSAqICAgICAgICB0eXBlOiBnbC5GTE9BVF9NQVQyLAotICogICAgICAgIGxvY2F0aW9uOiAwCi0g
KiAgICAgIH0sCi0gKiAgICAgICJhdHRyaWIyTmFtZVswXSI6Ci0gKiAgICAgIHsKLSAqICAgICAg
ICAgbmFtZTogImF0dHJpYjJOYW1lWzBdIiwKLSAqICAgICAgICAgc2l6ZTogNCwKLSAqICAgICAg
ICAgdHlwZTogZ2wuRkxPQVQsCi0gKiAgICAgICAgIGxvY2F0aW9uOiAxCi0gKiAgICAgIH0sCi0g
KiAgICB9Ci0gKgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0
IHRvIHVzZS4KLSAqIEBwYXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBm
b3IgYXR0cmlicy4KLSAqIEByZXR1cm4gdGhlIG1hcC4KLSAqLwotdmFyIGdldEF0dHJpYk1hcCA9
IGZ1bmN0aW9uKGdsLCBwcm9ncmFtKSB7Ci0gIHJldHVybiBnZXRBY3RpdmVNYXAoZ2wsIHByb2dy
YW0sIHsKLSAgICAgIHBhcmFtOiAiQUNUSVZFX0FUVFJJQlMiLAotICAgICAgYWN0aXZlRm46ICJn
ZXRBY3RpdmVBdHRyaWIiLAotICAgICAgbG9jRm46ICJnZXRBdHRyaWJMb2NhdGlvbiIKLSAgfSk7
Ci19OwotCi0vKioKLSAqIFJldHVybnMgYSBtYXAgb2YgdW5pZm9ybSBuYW1lcyB0byBpbmZvIGFi
b3V0IHRob3NlIHVuaWZvcm0KLSAqCi0gKiBlZzoKLSAqICAgIHsgInVuaWZvcm0xTmFtZSI6Ci0g
KiAgICAgIHsKLSAqICAgICAgICBuYW1lOiAidW5pZm9ybTFOYW1lIiwKLSAqICAgICAgICBzaXpl
OiAxLAotICogICAgICAgIHR5cGU6IGdsLkZMT0FUX01BVDIsCi0gKiAgICAgICAgbG9jYXRpb246
IFdlYkdMVW5pZm9ybUxvY2F0aW9uCi0gKiAgICAgIH0sCi0gKiAgICAgICJ1bmlmb3JtMk5hbWVb
MF0iOgotICogICAgICB7Ci0gKiAgICAgICAgIG5hbWU6ICJ1bmlmb3JtMk5hbWVbMF0iLAotICog
ICAgICAgICBzaXplOiA0LAotICogICAgICAgICB0eXBlOiBnbC5GTE9BVCwKLSAqICAgICAgICAg
bG9jYXRpb246IFdlYkdMVW5pZm9ybUxvY2F0aW9uCi0gKiAgICAgIH0sCi0gKiAgICB9Ci0gKgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEBwYXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBmb3IgdW5pZm9ybXMu
Ci0gKiBAcmV0dXJuIHRoZSBtYXAuCi0gKi8KLXZhciBnZXRVbmlmb3JtTWFwID0gZnVuY3Rpb24o
Z2wsIHByb2dyYW0pIHsKLSAgcmV0dXJuIGdldEFjdGl2ZU1hcChnbCwgcHJvZ3JhbSwgewotICAg
ICAgcGFyYW06ICJBQ1RJVkVfVU5JRk9STVMiLAotICAgICAgYWN0aXZlRm46ICJnZXRBY3RpdmVV
bmlmb3JtIiwKLSAgICAgIGxvY0ZuOiAiZ2V0VW5pZm9ybUxvY2F0aW9uIgotICB9KTsKLX07Ci0K
LXZhciBiYXNlUGF0aDsKLXZhciBnZXRCYXNlUGF0aCA9IGZ1bmN0aW9uKCkgewotICBpZiAoIWJh
c2VQYXRoKSB7Ci0gICAgdmFyIGV4cGVjdGVkQmFzZSA9ICJ3ZWJnbC10ZXN0LXV0aWxzLmpzIjsK
LSAgICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQn
KTsKLSAgICBmb3IgKHZhciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKysp
IHsKLSAgICAgIHZhciBzcmMgPSBzY3JpcHQuc3JjOwotICAgICAgdmFyIGwgPSBzcmMubGVuZ3Ro
OwotICAgICAgaWYgKHNyYy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVj
dGVkQmFzZSkgewotICAgICAgICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVk
QmFzZS5sZW5ndGgpOwotICAgICAgfQotICAgIH0KLSAgfQotICByZXR1cm4gYmFzZVBhdGg7Ci19
OwotCi12YXIgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgcmV0
dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKLSAgICAgIGdsLCBnZXRCYXNlUGF0aCgpICsgInZlcnRl
eFNoYWRlci52ZXJ0IiwgZ2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi12YXIgbG9hZFN0YW5kYXJk
RnJhZ21lbnRTaGFkZXIgPSBmdW5jdGlvbihnbCkgewotICByZXR1cm4gbG9hZFNoYWRlckZyb21G
aWxlKAotICAgICAgZ2wsIGdldEJhc2VQYXRoKCkgKyAiZnJhZ21lbnRTaGFkZXIuZnJhZyIsIGds
LkZSQUdNRU5UX1NIQURFUik7Ci19OwotCi0vKioKLSAqIExvYWRzIGFuIGltYWdlIGFzeW5jaHJv
bm91c2x5LgotICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgb2YgaW1hZ2UgdG8gbG9hZC4KLSAq
IEBwYXJhbSB7IWZ1bmN0aW9uKCFFbGVtZW50KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdG8g
Y2FsbAotICogICAgIHdpdGggbG9hZGVkIGltYWdlLgotICovCi12YXIgbG9hZEltYWdlQXN5bmMg
PSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Ci0gIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpbWcnKTsKLSAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgIGNhbGxiYWNr
KGltZyk7Ci0gIH07Ci0gIGltZy5zcmMgPSB1cmw7Ci19OwotCi0vKioKLSAqIExvYWRzIGFuIGFy
cmF5IG9mIGltYWdlcy4KLSAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSB1cmxzIFVSTHMgb2Yg
aW1hZ2VzIHRvIGxvYWQuCi0gKiBAcGFyYW0geyFmdW5jdGlvbighe3N0cmluZywgaW1nfSk6IHZv
aWR9IGNhbGxiYWNrLiBDYWxsYmFjawotICogICAgIHRoYXQgZ2V0cyBwYXNzZWQgbWFwIG9mIHVy
bHMgdG8gaW1nIHRhZ3MuCi0gKi8KLXZhciBsb2FkSW1hZ2VzQXN5bmMgPSBmdW5jdGlvbih1cmxz
LCBjYWxsYmFjaykgewotICB2YXIgY291bnQgPSAxOwotICB2YXIgaW1hZ2VzID0geyB9OwotICBm
dW5jdGlvbiBjb3VudERvd24oKSB7Ci0gICAgLS1jb3VudDsKLSAgICBpZiAoY291bnQgPT0gMCkg
ewotICAgICAgY2FsbGJhY2soaW1hZ2VzKTsKLSAgICB9Ci0gIH0KLSAgZnVuY3Rpb24gaW1hZ2VM
b2FkZWQodXJsKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKGltZykgewotICAgICAgaW1hZ2VzW3Vy
bF0gPSBpbWc7Ci0gICAgICBjb3VudERvd24oKTsKLSAgICB9Ci0gIH0KLSAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IHVybHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgKytjb3VudDsKLSAgICBsb2FkSW1h
Z2VBc3luYyh1cmxzW2lpXSwgaW1hZ2VMb2FkZWQodXJsc1tpaV0pKTsKLSAgfQotICBjb3VudERv
d24oKTsKLX07Ci0KLXZhciBnZXRVcmxBcmd1bWVudHMgPSBmdW5jdGlvbigpIHsKLSAgdmFyIGFy
Z3MgPSB7fTsKLSAgdHJ5IHsKLSAgICB2YXIgcyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwotICAg
IHZhciBxID0gcy5pbmRleE9mKCI/Iik7Ci0gICAgdmFyIGUgPSBzLmluZGV4T2YoIiMiKTsKLSAg
ICBpZiAoZSA8IDApIHsKLSAgICAgIGUgPSBzLmxlbmd0aDsKLSAgICB9Ci0gICAgdmFyIHF1ZXJ5
ID0gcy5zdWJzdHJpbmcocSArIDEsIGUpOwotICAgIHZhciBwYWlycyA9IHF1ZXJ5LnNwbGl0KCIm
Iik7Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgewotICAg
ICAgdmFyIGtleVZhbHVlID0gcGFpcnNbaWldLnNwbGl0KCI9Iik7Ci0gICAgICB2YXIga2V5ID0g
a2V5VmFsdWVbMF07Ci0gICAgICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFs
dWVbMV0pOwotICAgICAgYXJnc1trZXldID0gdmFsdWU7Ci0gICAgfQotICB9IGNhdGNoIChlKSB7
Ci0gICAgdGhyb3cgImNvdWxkIG5vdCBwYXJzZSB1cmwiOwotICB9Ci0gIHJldHVybiBhcmdzOwot
fTsKLQotdmFyIG1ha2VJbWFnZSA9IGZ1bmN0aW9uKGNhbnZhcykgewotICB2YXIgaW1nID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gIGltZy5zcmMgPSBjYW52YXMudG9EYXRhVVJM
KCk7Ci0gIHJldHVybiBpbWc7Ci19OwotCi12YXIgaW5zZXJ0SW1hZ2UgPSBmdW5jdGlvbihlbGVt
ZW50LCBjYXB0aW9uLCBpbWcpIHsKLSAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwotICBkaXYuYXBwZW5kQ2hpbGQoaW1nKTsKLSAgdmFyIGxhYmVsID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGNhcHRpb24pKTsKLSAgZGl2LmFwcGVuZENoaWxkKGxhYmVsKTsKLSAgIGVsZW1l
bnQuYXBwZW5kQ2hpbGQoZGl2KTsKLX07Ci0KLXZhciBhZGRTaGFkZXJTb3VyY2UgPSBmdW5jdGlv
bihlbGVtZW50LCBsYWJlbCwgc291cmNlLCBvcHRfdXJsKSB7Ci0gIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJwcmUiKTsKLSAgcy5jbGFzc05hbWUgPSAic2hhZGVyLXNvdXJjZSI7Ci0gIHMuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKLSAgdmFyIG9sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsK
LSAgLy9zLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNvdXJjZSkpOwotICB2
YXIgbGluZXMgPSBzb3VyY2Uuc3BsaXQoIlxuIik7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBs
aW5lcy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgbGluZSA9IGxpbmVzW2lpXTsKLSAgICB2YXIg
bGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKGxpbmUpKTsKLSAgICBvbC5hcHBlbmRDaGlsZChsaSk7Ci0g
IH0KLSAgcy5hcHBlbmRDaGlsZChvbCk7Ci0gIHZhciBsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYSIpOwotICBsLmhyZWYgPSAic2hvdy1zaGFkZXItc291cmNlIjsKLSAgbC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsYWJlbCkpOwotICBsLmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVs
dCkgewotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgfQotICAgICAgcy5z
dHlsZS5kaXNwbGF5ID0gKHMuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpID8gJ2Jsb2NrJyA6ICdu
b25lJzsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LCBmYWxzZSk7Ci0gIGRpdi5hcHBlbmRD
aGlsZChsKTsKLSAgaWYgKG9wdF91cmwpIHsKLSAgICB2YXIgdSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImEiKTsKLSAgICB1LmhyZWYgPSBvcHRfdXJsOwotICAgIGRpdi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpKTsKLSAgICB1LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCIoIiArIG9wdF91cmwgKyAiKSIpKTsKLSAgICBkaXYuYXBwZW5kQ2hp
bGQodSk7Ci0gIH0KLSAgZGl2LmFwcGVuZENoaWxkKHMpOwotICBlbGVtZW50LmFwcGVuZENoaWxk
KGRpdik7Ci19OwotCi0vLyBBZGQgeW91ciBwcmVmaXggaGVyZS4KLXZhciBicm93c2VyUHJlZml4
ZXMgPSBbCi0gICIiLAotICAiTU9aXyIsCi0gICJPUF8iLAotICAiV0VCS0lUXyIKLV07Ci0KLS8q
KgotICogR2l2ZW4gYW4gZXh0ZW5zaW9uIG5hbWUgbGlrZSBXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfczN0YwotICogcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgc3VwcG9ydGVkIHZlcnNpb24gZXh0
ZW5zaW9uLCBsaWtlCi0gKiBXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXR1cmVfczN0YwotICog
QHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBleHRlbnNpb24gdG8gbG9vayBmb3IKLSAqIEBy
ZXR1cm4ge3N0cmluZ30gbmFtZSBvZiBleHRlbnNpb24gZm91bmQgb3IgdW5kZWZpbmVkIGlmIG5v
dAotICogICAgIGZvdW5kLgotICovCi12YXIgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3du
UHJlZml4ZXMgPSBmdW5jdGlvbihnbCwgbmFtZSkgewotICB2YXIgc3VwcG9ydGVkID0gZ2wuZ2V0
U3VwcG9ydGVkRXh0ZW5zaW9ucygpOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclBy
ZWZpeGVzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJl
Zml4ZXNbaWldICsgbmFtZTsKLSAgICBpZiAoc3VwcG9ydGVkLmluZGV4T2YocHJlZml4ZWROYW1l
KSA+PSAwKSB7Ci0gICAgICByZXR1cm4gcHJlZml4ZWROYW1lOwotICAgIH0KLSAgfQotfTsKLQot
LyoqCi0gKiBHaXZlbiBhbiBleHRlbnNpb24gbmFtZSBsaWtlIFdFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9zM3RjCi0gKiByZXR1cm5zIHRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxp
a2UKLSAqIFdFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RldHVyZV9zM3RjCi0gKiBAcGFyYW0ge3N0
cmluZ30gbmFtZSBOYW1lIG9mIGV4dGVuc2lvbiB0byBsb29rIGZvcgotICogQHJldHVybiB7V2Vi
R0xFeHRlbnNpb259IFRoZSBleHRlbnNpb24gb3IgdW5kZWZpbmVkIGlmIG5vdAotICogICAgIGZv
dW5kLgotICovCi12YXIgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMgPSBmdW5jdGlvbihn
bCwgbmFtZSkgewotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0
aDsgKytpaSkgewotICAgIHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJlZml4ZXNbaWldICsg
bmFtZTsKLSAgICB2YXIgZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKHByZWZpeGVkTmFtZSk7Ci0gICAg
aWYgKGV4dCkgewotICAgICAgcmV0dXJuIGV4dDsKLSAgICB9Ci0gIH0KLX07Ci0KLQotdmFyIHJl
cGxhY2VSRSA9IC9cJFwoKFx3KylcKS9nOwotCi0vKioKLSAqIFJlcGxhY2VzIHN0cmluZ3Mgd2l0
aCBwcm9wZXJ0eSB2YWx1ZXMuCi0gKiBHaXZlbiBhIHN0cmluZyBsaWtlICJoZWxsbyAkKGZpcnN0
KSAkKGxhc3QpIiBhbmQgYW4gb2JqZWN0Ci0gKiBsaWtlIHtmaXJzdDoiSm9obiIsIGxhc3Q6IlNt
aXRoIn0gd2lsbCByZXR1cm4KLSAqICJoZWxsbyBKb2huIFNtaXRoIi4KLSAqIEBwYXJhbSB7c3Ry
aW5nfSBzdHIgU3RyaW5nIHRvIGRvIHJlcGxhY2VtZW50cyBpbgotICogQHBhcmFtIHsuLi59IDEg
b3IgbW9yZSBvYmplY3RzIGNvbmFpbmluZyBwcm9wZXJ0aWVzLgotICovCi12YXIgcmVwbGFjZVBh
cmFtcyA9IGZ1bmN0aW9uKHN0cikgewotICB2YXIgYXJncyA9IGFyZ3VtZW50czsKLSAgcmV0dXJu
IHN0ci5yZXBsYWNlKHJlcGxhY2VSRSwgZnVuY3Rpb24oc3RyLCBwMSwgb2Zmc2V0LCBzKSB7Ci0g
ICAgZm9yICh2YXIgaWkgPSAxOyBpaSA8IGFyZ3MubGVuZ3RoOyArK2lpKSB7Ci0gICAgICBpZiAo
YXJnc1tpaV1bcDFdICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgcmV0dXJuIGFyZ3NbaWldW3Ax
XTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGhyb3cgInVua25vd24gc3RyaW5nIHBhcmFtICciICsg
cDEgKyAiJyI7Ci0gIH0pOwotfTsKLQotCi0vKioKLSAqIFByb3ZpZGVzIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5LgotICovCi12YXIgcmVxdWVzdEFuaW1GcmFt
ZUltcGxfOwotCi12YXIgcmVxdWVzdEFuaW1GcmFtZSA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBlbGVt
ZW50KSB7Ci0gIGlmICghcmVxdWVzdEFuaW1GcmFtZUltcGxfKSB7Ci0gICAgcmVxdWVzdEFuaW1G
cmFtZUltcGxfID0gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZnVuY3Rpb25OYW1lcyA9IFsKLSAg
ICAgICAgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsCi0gICAgICAgICJ3ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUiLAotICAgICAgICAibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKLSAgICAg
ICAgIm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAotICAgICAgICAibXNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUiCi0gICAgICBdOwotICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGZ1bmN0aW9uTmFt
ZXMubGVuZ3RoOyArK2pqKSB7Ci0gICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5h
bWVzW2pqXTsKLSAgICAgICAgaWYgKHdpbmRvd1tmdW5jdGlvbk5hbWVdKSB7Ci0gICAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihjYWxs
YmFjaywgZWxlbWVudCkgewotICAgICAgICAgICAgICByZXR1cm4gd2luZG93W25hbWVdLmNhbGwo
d2luZG93LCBjYWxsYmFjaywgZWxlbWVudCk7Ci0gICAgICAgICAgICB9OwotICAgICAgICAgIH0o
ZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIGZ1bmN0aW9u
KGNhbGxiYWNrLCBlbGVtZW50KSB7Ci0gICAgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91
dChjYWxsYmFjaywgMTAwMCAvIDcwKTsKLSAgICAgICAgfTsKLSAgICB9KCk7Ci0gIH0KLQotICBy
ZXR1cm4gcmVxdWVzdEFuaW1GcmFtZUltcGxfKGNhbGxiYWNrLCBlbGVtZW50KTsKLX07Ci0KLS8q
KgotICogUHJvdmlkZXMgY2FuY2VsQW5pbWF0aW9uRnJhbWUgaW4gYSBjcm9zcyBicm93c2VyIHdh
eS4KLSAqLwotdmFyIGNhbmNlbEFuaW1GcmFtZSA9IChmdW5jdGlvbigpIHsKLSAgcmV0dXJuIHdp
bmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSB8fAotICAgICAgICAgd2luZG93LndlYmtpdENhbmNl
bEFuaW1hdGlvbkZyYW1lIHx8Ci0gICAgICAgICB3aW5kb3cubW96Q2FuY2VsQW5pbWF0aW9uRnJh
bWUgfHwKLSAgICAgICAgIHdpbmRvdy5vQ2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKLSAgICAgICAg
IHdpbmRvdy5tc0NhbmNlbEFuaW1hdGlvbkZyYW1lIHx8Ci0gICAgICAgICB3aW5kb3cuY2xlYXJU
aW1lb3V0OwotfSkoKTsKLQotLyoqCi0gKiBXYWl0cyBmb3IgdGhlIGJyb3dzZXIgdG8gY29tcG9z
aXRlIHRoZSBjYW52YXMgYXNzb2NpYXRlZCB3aXRoCi0gKiB0aGUgV2ViR0wgY29udGV4dCBwYXNz
ZWQgaW4uCi0gKi8KLXZhciB3YWl0Rm9yQ29tcG9zaXRlID0gZnVuY3Rpb24oZ2wsIGNhbGxiYWNr
KSB7Ci0gIHZhciBmcmFtZXMgPSA1OwotICB2YXIgY291bnREb3duID0gZnVuY3Rpb24oKSB7Ci0g
ICAgaWYgKGZyYW1lcyA9PSAwKSB7Ci0gICAgICBjYWxsYmFjaygpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAtLWZyYW1lczsKLSAgICAgIHJlcXVlc3RBbmltRnJhbWUoY291bnREb3duKTsKLSAgICB9
Ci0gIH07Ci0gIGNvdW50RG93bigpOwotfTsKLQotcmV0dXJuIHsKLSAgYWRkU2hhZGVyU291cmNl
OiBhZGRTaGFkZXJTb3VyY2UsCi0gIGNhbmNlbEFuaW1GcmFtZTogY2FuY2VsQW5pbUZyYW1lLAot
ICBjcmVhdGUzRENvbnRleHQ6IGNyZWF0ZTNEQ29udGV4dCwKLSAgY3JlYXRlM0RDb250ZXh0V2l0
aFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9yOgotICAgICAgY3JlYXRlM0RDb250ZXh0V2l0aFdy
YXBwZXJUaGF0VGhyb3dzT25HTEVycm9yLAotICBjaGVja0NhbnZhczogY2hlY2tDYW52YXMsCi0g
IGNoZWNrQ2FudmFzUmVjdDogY2hlY2tDYW52YXNSZWN0LAotICBjaGVja0NhbnZhc1JlY3RDb2xv
cjogY2hlY2tDYW52YXNSZWN0Q29sb3IsCi0gIGNyZWF0ZUNvbG9yZWRUZXh0dXJlOiBjcmVhdGVD
b2xvcmVkVGV4dHVyZSwKLSAgY3JlYXRlUHJvZ3JhbTogY3JlYXRlUHJvZ3JhbSwKLSAgZHJhd1F1
YWQ6IGRyYXdRdWFkLAotICBkcmF3SW5kZXhlZFF1YWQ6IGRyYXdJbmRleGVkUXVhZCwKLSAgZHJh
d1VCeXRlQ29sb3JRdWFkOiBkcmF3VUJ5dGVDb2xvclF1YWQsCi0gIGRyYXdGbG9hdENvbG9yUXVh
ZDogZHJhd0Zsb2F0Q29sb3JRdWFkLAotICBlbmRzV2l0aDogZW5kc1dpdGgsCi0gIGZpbGxUZXh0
dXJlOiBmaWxsVGV4dHVyZSwKLSAgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXM6IGdldEV4
dGVuc2lvbldpdGhLbm93blByZWZpeGVzLAotICBnZXRGaWxlTGlzdEFzeW5jOiBnZXRGaWxlTGlz
dEFzeW5jLAotICBnZXRMYXN0RXJyb3I6IGdldExhc3RFcnJvciwKLSAgZ2V0U2NyaXB0OiBnZXRT
Y3JpcHQsCi0gIGdldFN1cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRTdXBw
b3J0ZWRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcywKLSAgZ2V0VXJsQXJndW1lbnRzOiBnZXRV
cmxBcmd1bWVudHMsCi0gIGdldEF0dHJpYk1hcDogZ2V0QXR0cmliTWFwLAotICBnZXRVbmlmb3Jt
TWFwOiBnZXRVbmlmb3JtTWFwLAotICBnbEVudW1Ub1N0cmluZzogZ2xFbnVtVG9TdHJpbmcsCi0g
IGdsRXJyb3JTaG91bGRCZTogZ2xFcnJvclNob3VsZEJlLAotICBoYXNBdHRyaWJ1dGVDYXNlSW5z
ZW5zaXRpdmU6IGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSwKLSAgaW5zZXJ0SW1hZ2U6IGlu
c2VydEltYWdlLAotICBsb2FkSW1hZ2VBc3luYzogbG9hZEltYWdlQXN5bmMsCi0gIGxvYWRJbWFn
ZXNBc3luYzogbG9hZEltYWdlc0FzeW5jLAotICBsb2FkUHJvZ3JhbTogbG9hZFByb2dyYW0sCi0g
IGxvYWRQcm9ncmFtRnJvbUZpbGU6IGxvYWRQcm9ncmFtRnJvbUZpbGUsCi0gIGxvYWRQcm9ncmFt
RnJvbVNjcmlwdDogbG9hZFByb2dyYW1Gcm9tU2NyaXB0LAotICBsb2FkUHJvZ3JhbUZyb21TY3Jp
cHRFeHBlY3RFcnJvcjogbG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3IsCi0gIGxvYWRT
aGFkZXI6IGxvYWRTaGFkZXIsCi0gIGxvYWRTaGFkZXJGcm9tRmlsZTogbG9hZFNoYWRlckZyb21G
aWxlLAotICBsb2FkU2hhZGVyRnJvbVNjcmlwdDogbG9hZFNoYWRlckZyb21TY3JpcHQsCi0gIGxv
YWRTdGFuZGFyZFByb2dyYW06IGxvYWRTdGFuZGFyZFByb2dyYW0sCi0gIGxvYWRTdGFuZGFyZFZl
cnRleFNoYWRlcjogbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyLAotICBsb2FkU3RhbmRhcmRGcmFn
bWVudFNoYWRlcjogbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIsCi0gIGxvYWRUZXh0RmlsZUFz
eW5jOiBsb2FkVGV4dEZpbGVBc3luYywKLSAgbG9hZFRleHR1cmU6IGxvYWRUZXh0dXJlLAotICBs
b2c6IGxvZywKLSAgbG9nZ2luZ09mZjogbG9nZ2luZ09mZiwKLSAgbWFrZUltYWdlOiBtYWtlSW1h
Z2UsCi0gIGVycm9yOiBlcnJvciwKLSAgc2hhbGxvd0NvcHlPYmplY3Q6IHNoYWxsb3dDb3B5T2Jq
ZWN0LAotICBzZXR1cENvbG9yUXVhZDogc2V0dXBDb2xvclF1YWQsCi0gIHNldHVwUHJvZ3JhbTog
c2V0dXBQcm9ncmFtLAotICBzZXR1cFF1YWQ6IHNldHVwUXVhZCwKLSAgc2V0dXBRdWFkV2l0aE9w
dGlvbnM6IHNldHVwUXVhZFdpdGhPcHRpb25zLAotICBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRT
aGFkZXI6IHNldHVwU2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlciwKLSAgc2V0dXBTaW1wbGVDb2xv
clZlcnRleFNoYWRlcjogc2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlciwKLSAgc2V0dXBTaW1w
bGVDb2xvclByb2dyYW06IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtLAotICBzZXR1cFNpbXBsZVRl
eHR1cmVGcmFnbWVudFNoYWRlcjogc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIsCi0g
IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW06IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0sCi0g
IHNldHVwU2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlcjogc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4
U2hhZGVyLAotICBzZXR1cFNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXI6IHNldHVwU2lt
cGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciwKLSAgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclBy
b2dyYW06IHNldHVwU2ltcGxlVmVydGV4Q29sb3JQcm9ncmFtLAotICBzZXR1cFNpbXBsZVZlcnRl
eENvbG9yVmVydGV4U2hhZGVyOiBzZXR1cFNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyLAot
ICBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbTogc2V0dXBOb1RleENvb3JkVGV4dHVyZVBy
b2dyYW0sCi0gIHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXI6IHNldHVwTm9UZXhD
b29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIsCi0gIHNldHVwVGV4dHVyZWRRdWFkOiBzZXR1cFRleHR1
cmVkUXVhZCwKLSAgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFRleHR1cmVk
UXVhZFdpdGhUZXhDb29yZHMsCi0gIHNldHVwVW5pdFF1YWQ6IHNldHVwVW5pdFF1YWQsCi0gIHNl
dHVwVW5pdFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFVuaXRRdWFkV2l0aFRleENvb3JkcywKLSAg
c2V0RmxvYXREcmF3Q29sb3I6IHNldEZsb2F0RHJhd0NvbG9yLAotICBzZXRVQnl0ZURyYXdDb2xv
cjogc2V0VUJ5dGVEcmF3Q29sb3IsCi0gIHN0YXJ0c1dpdGg6IHN0YXJ0c1dpdGgsCi0gIHNob3Vs
ZEdlbmVyYXRlR0xFcnJvcjogc2hvdWxkR2VuZXJhdGVHTEVycm9yLAotICByZWFkRmlsZTogcmVh
ZEZpbGUsCi0gIHJlYWRGaWxlTGlzdDogcmVhZEZpbGVMaXN0LAotICByZXBsYWNlUGFyYW1zOiBy
ZXBsYWNlUGFyYW1zLAotICByZXF1ZXN0QW5pbUZyYW1lOiByZXF1ZXN0QW5pbUZyYW1lLAotICB3
YWl0Rm9yQ29tcG9zaXRlOiB3YWl0Rm9yQ29tcG9zaXRlLAotCi0gIG5vbmU6IGZhbHNlCi19Owot
Ci19KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxNjI0NGUzOTVmMjc3ZWNiMGY3NTI3NTdjMzgwYzExMjgy
NjI5NWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDEwNiArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu
ZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIp
LCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
Ci0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj
b3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9t
IHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiog
VEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQg
T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLWZ1bmN0aW9uIHdlYmdsVGVz
dExvZyhtc2cpIHsKLSAgaWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykg
ewotICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOwotICB9Ci0gIGlmIChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpKSB7Ci0gICAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIik7Ci0gICAgbG9nLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZXJyKSB7Ci0gIGlmIChl
cnIgPT09IGN0eC5OT19FUlJPUikgewotICAgIHJldHVybiAiTk9fRVJST1IiOwotICB9Ci0gIGZv
ciAodmFyIG5hbWUgaW4gY3R4KSB7Ci0gICAgaWYgKGN0eFtuYW1lXSA9PT0gZXJyKSB7Ci0gICAg
ICByZXR1cm4gbmFtZTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuICIweCIgKyBlcnIudG9TdHJpbmco
MTYpOwotfQotCi0vLyBQYXNzIHVuZGVmaW5lZCBmb3IgZ2xFcnJvciB0byB0ZXN0IHRoYXQgaXQg
YXQgbGVhc3QgdGhyb3dzIHNvbWUgZXJyb3IKLWZ1bmN0aW9uIHNob3VsZEdlbmVyYXRlR0xFcnJv
cihjdHgsIGdsRXJyb3JzLCBldmFsU3RyKSB7Ci0gIGlmICghZ2xFcnJvcnMubGVuZ3RoKSB7Ci0g
ICAgZ2xFcnJvcnMgPSBbZ2xFcnJvcnNdOwotICB9Ci0gIHZhciBleGNlcHRpb247Ci0gIHRyeSB7
Ci0gICAgZXZhbChldmFsU3RyKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIGV4Y2VwdGlvbiA9IGU7
Ci0gIH0KLSAgaWYgKGV4Y2VwdGlvbikgewotICAgIHRlc3RGYWlsZWQoZXZhbFN0ciArICIgdGhy
ZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICB9IGVsc2UgewotICAgIHZhciBlcnIgPSBj
dHguZ2V0RXJyb3IoKTsKLSAgICB2YXIgZXJyU3RycyA9IFtdOwotICAgIGZvciAodmFyIGlpID0g
MDsgaWkgPCBnbEVycm9ycy5sZW5ndGg7ICsraWkpIHsKLSAgICAgIGVyclN0cnMucHVzaChnZXRH
TEVycm9yQXNTdHJpbmcoY3R4LCBnbEVycm9yc1tpaV0pKTsKLSAgICB9Ci0gICAgdmFyIGV4cGVj
dGVkID0gZXJyU3Rycy5qb2luKCIgb3IgIik7Ci0gICAgaWYgKGdsRXJyb3JzLmluZGV4T2YoZXJy
KSA8IDApIHsKLSAgICAgIHRlc3RGYWlsZWQoZXZhbFN0ciArICIgZXhwZWN0ZWQ6ICIgKyBleHBl
Y3RlZCArICIuIFdhcyAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZXJyKSArICIuIik7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIHZhciBtc2cgPSAoZ2xFcnJvcnMubGVuZ3RoID09IDEpID8gIiBn
ZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6ICIgOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiIGdlbmVyYXRlZCBvbmUgb2YgZXhwZWN0ZWQgR0wgZXJyb3JzOiAi
OwotICAgICAgdGVzdFBhc3NlZChldmFsU3RyICsgbXNnICsgZXhwZWN0ZWQgKyAiLiIpOwotICAg
IH0KLSAgfQotfQotCi0vKioKLSAqIFRlc3RzIHRoYXQgdGhlIGZpcnN0IGVycm9yIEdMIHJldHVy
bnMgaXMgdGhlIHNwZWNpZmllZCBlcnJvci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wg
VGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcnwhQXJyYXkuPG51bWJl
cj59IGdsRXJyb3IgVGhlIGV4cGVjdGVkIGdsCi0gKiAgICAgICAgZXJyb3IuIE11bHRpcGxlIGVy
cm9ycyBjYW4gYmUgcGFzc2VkIGluIHVzaW5nIGFuCi0gKiAgICAgICAgYXJyYXkuCi0gKiBAcGFy
YW0ge3N0cmluZ30gb3B0X21zZyBPcHRpb25hbCBhZGRpdGlvbmFsIG1lc3NhZ2UuCi0gKi8KLWZ1
bmN0aW9uIGdsRXJyb3JTaG91bGRCZShnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKLSAgaWYgKCFn
bEVycm9ycy5sZW5ndGgpIHsKLSAgICBnbEVycm9ycyA9IFtnbEVycm9yc107Ci0gIH0KLSAgb3B0
X21zZyA9IG9wdF9tc2cgfHwgIiI7Ci0gIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICB2YXIg
bmR4ID0gZ2xFcnJvcnMuaW5kZXhPZihlcnIpOwotICB2YXIgZXJyU3RycyA9IFtdOwotICBmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgZ2xFcnJvcnMubGVuZ3RoOyArK2lpKSB7Ci0gICAgZXJyU3Rycy5w
dXNoKGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnJvcnNbaWldKSk7Ci0gIH0KLSAgdmFyIGV4
cGVjdGVkID0gZXJyU3Rycy5qb2luKCIgb3IgIik7Ci0gIGlmIChuZHggPCAwKSB7Ci0gICAgdmFy
IG1zZyA9ICJnZXRFcnJvciBleHBlY3RlZCIgKyAoKGdsRXJyb3JzLmxlbmd0aCA+IDEpID8gIiBv
bmUgb2Y6ICIgOiAiOiAiKTsKLSAgICB0ZXN0RmFpbGVkKG1zZyArIGV4cGVjdGVkICsgICIuIFdh
cyAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsgIiA6ICIgKyBvcHRfbXNnKTsKLSAg
fSBlbHNlIHsKLSAgICB2YXIgbXNnID0gImdldEVycm9yIHdhcyAiICsgKChnbEVycm9ycy5sZW5n
dGggPiAxKSA/ICJvbmUgb2Y6ICIgOiAiZXhwZWN0ZWQgdmFsdWU6ICIpOwotICAgIHRlc3RQYXNz
ZWQobXNnICsgZXhwZWN0ZWQgKyAiIDogIiArIG9wdF9tc2cpOwotICB9Ci19OwotCi0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmcgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTU1NjMwYzExNjAzOGY5MGVmNzJjZGQwMmI2NjRmOGYwZGFhMDZlMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA4OQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZw
XiVwbENjMXwtOFl3KGJXfjNaNT5HQXIqNX1QajJMOEZ5TFN8eFAxRUkKbXI7LXlIbH13MnJeMG9e
fTljNz5Feik+JClhQjNHJkVyWH00cFVYT0BnZUN4bSZsc3V6CgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy8wMF90ZXN0X2xpc3QudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy8wMF90ZXN0X2xpc3QudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
NjlhMjY4MDhmYWYxYzQ2NWViNGIzZTQ1NDIzOTJjMWJiYTNmNjliLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
MDBfdGVzdF9saXN0LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLWNvbXByZXNz
ZWQtdGV4LWltYWdlLmh0bWwKLWNvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQuaHRtbAot
LS1taW4tdmVyc2lvbiAxLjAuMiBjb3B5LXRleC1pbWFnZS0yZC1mb3JtYXRzLmh0bWwKLS0tbWlu
LXZlcnNpb24gMS4wLjIgZ2wtZ2V0LXRleC1wYXJhbWV0ZXIuaHRtbAotZ2wtcGl4ZWxzdG9yZWku
aHRtbAotZ2wtdGV4aW1hZ2UuaHRtbAotb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKLXRl
eC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbAotdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuaHRtbAotdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiNTY1Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtY2FudmFzLXJnYmE0NDQ0Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtY2FudmFzLXJnYmE1NTUxLmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtaW1hZ2UtZGF0YS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWlt
YWdlLWRhdGEtcmdiNTY1Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtZGF0YS1yZ2JhNDQ0NC5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWlt
YWdlLWRhdGEtcmdiYTU1NTEuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2NS5o
dG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0NDQ0Lmh0bWwK
LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTU1NTEuaHRtbAotdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYjU2NS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLXZpZGVvLXJnYmE0NDQ0Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtdmlkZW8tcmdiYTU1NTEuaHRtbAotdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmct
YnVncy5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleC1pbWFnZS13ZWJnbC5odG1sCi10ZXgt
aW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbAotdGV4LWltYWdlLXdpdGgtaW52YWxpZC1k
YXRhLmh0bWwKLXRleC1pbnB1dC12YWxpZGF0aW9uLmh0bWwKLXRleC1zdWItaW1hZ2UtMmQtYmFk
LWFyZ3MuaHRtbAotdGV4LXN1Yi1pbWFnZS0yZC5odG1sCi10ZXhwYXJhbWV0ZXItdGVzdC5odG1s
Ci10ZXh0dXJlLWFjdGl2ZS1iaW5kLTIuaHRtbAotdGV4dHVyZS1hY3RpdmUtYmluZC5odG1sCi0t
LW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWwKLS0tbWlu
LXZlcnNpb24gMS4wLjIgdGV4dHVyZS1jbGVhci5odG1sCi10ZXh0dXJlLWNvbXBsZXRlLmh0bWwK
LS0tbWluLXZlcnNpb24gMS4wLjIgdGV4dHVyZS1oZC1kcGkuaHRtbAotLS1taW4tdmVyc2lvbiAx
LjAuMiB0ZXh0dXJlLWZvcm1hdHMtdGVzdC5odG1sCi10ZXh0dXJlLW1pcHMuaHRtbAotdGV4dHVy
ZS1ucG90LXZpZGVvLmh0bWwKLXRleHR1cmUtbnBvdC5odG1sCi10ZXh0dXJlLXNpemUuaHRtbAot
dGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUt
c2l6ZS1saW1pdC5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtc3ViLWltYWdlLWN1
YmUtbWFwcy5odG1sCi10ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1s
Ci0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sCi0tLW1p
bi12ZXJzaW9uIDEuMC4yIG1pcG1hcC1mYm8uaHRtbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDBlN2I5MmM4NDViODJjMmY4NDg1ODlkMWRlMTE1NGE5NTVjNzNlZDQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9jb21wcmVzc2VkLXRleC1pbWFnZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODMgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0q
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
Ci0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+V2ViR0wgQ29tcHJlc3NlZFRleEltYWdlIGFuZCBDb21wcmVzc2VkVGV4U3ViSW1hZ2Ug
VGVzdHM8L3RpdGxlPgotPExJTksgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0
IjsKLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMg
Y29ycmVjdGx5IGltcGxlbWVudCBjb21wcmVzc2VkVGV4SW1hZ2UyRCBhbmQgY29tcHJlc3NlZFRl
eFN1YkltYWdlMkQuIik7Ci0KLWRlYnVnKCIiKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOwotCi12YXIgQ09NUFJFU1NFRF9SR0Jf
UzNUQ19EWFQxX0VYVCAgICAgICAgPSAweDgzRjA7Ci12YXIgQ09NUFJFU1NFRF9SR0JBX1MzVENf
RFhUMV9FWFQgICAgICAgPSAweDgzRjE7Ci12YXIgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9F
WFQgICAgICAgPSAweDgzRjM7Ci12YXIgRVRDMV9SR0I4X09FUyAgICAgICAgICAgICAgICAgICAg
ICAgPSAweDhENjQ7Ci12YXIgQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRyAgICAgPSAw
eDhDMDA7Ci12YXIgQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUcgICAgPSAweDhDMDI7
Ci0KLXZhciBmb3JtYXRzID0gbnVsbDsKLQotaWYgKCFnbCkgewotICB0ZXN0RmFpbGVkKCJjb250
ZXh0IGRvZXMgbm90IGV4aXN0Iik7Ci19IGVsc2UgewotICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4
aXN0cyIpOwotCi0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0KLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhULCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSg4
KSkiKTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJnbC5j
b21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JHQkFfUzNU
Q19EWFQxX0VYVCwgNCwgNCwgMCwgbmV3IFVpbnQ4QXJyYXkoOCkpIik7Ci0gIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQsIDQsIDQsIDAs
IG5ldyBVaW50OEFycmF5KDE2KSkiKTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5J
TlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBF
VEMxX1JHQjhfT0VTLCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKLSAgc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HLCA4LCA4
LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRywgOCwgOCwgMCwgbmV3IFVpbnQ4QXJy
YXkoOCkpIik7Ci0KLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImZv
cm1hdHMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMpIik7
Ci0gIHNob3VsZEJlTm9uTnVsbCgiZm9ybWF0cyIpOwotICBzaG91bGRCZSgiZm9ybWF0cy5sZW5n
dGgiLCAiMCIpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9jb3B5LXRleC1pbWFnZS0yZC1mb3JtYXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL2NvcHktdGV4LWltYWdlLTJkLWZvcm1hdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjEyY2QzZjZhMzEwMjhhOTRkMjc3Njk0NmI2MTViN2IwYjE5ZWFmNC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL2NvcHktdGV4LWltYWdlLTJkLWZvcm1hdHMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE4MyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
LSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0K
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5WZXJpZnkgY29weVRleElt
YWdlMkQgZm9sbG93cyBmb3JtYXQgcmVzdGljdGlvbnM8L3RpdGxlPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KLTxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08
Y2FudmFzIGlkPSJjYW52YXNOb0FscGhhIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLQotZnVu
Y3Rpb24gZ2V0Q2hhbm5lbHNGcm9tRm9ybWF0KGZvcm1hdCkgewotICBzd2l0Y2ggKGdsW2Zvcm1h
dF0pIHsKLSAgY2FzZSBnbC5BTFBIQToKLSAgICByZXR1cm4gMHgwMDAxOwotICBjYXNlIGdsLkxV
TUlOQU5DRToKLSAgY2FzZSBnbC5SR0I6Ci0gICAgcmV0dXJuIDB4MTExMDsKLSAgY2FzZSBnbC5M
VU1JTkFOQ0VfQUxQSEE6Ci0gIGNhc2UgZ2wuUkdCQToKLSAgICByZXR1cm4gMHgxMTExOwotICBk
ZWZhdWx0OgotICAgIHJldHVybiAwOwotICB9Ci19Ci0KLXZhciBmb3JtYXRzID0gWwotICAnQUxQ
SEEnLAotICAnTFVNSU5BTkNFJywKLSAgJ0xVTUlOQU5DRV9BTFBIQScsCi0gICdSR0InLAotICAn
UkdCQScKLV07Ci0KLXZhciBnbCA9IG51bGw7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0K
LWRlc2NyaXB0aW9uKCk7Ci0KLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y2FudmFzIik7Ci12YXIgY2FudmFzTm9BbHBoYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXNOb0FscGhhIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywge2Fs
cGhhOnRydWV9KTsKLXZhciBnbE5vQWxwaGEgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhc05v
QWxwaGEsIHthbHBoYTpmYWxzZX0pOwotCi1kZWJ1ZygidGVzdCB3aXRoIGFuIFJHQkEgYmFja2J1
ZmZlciIpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIkR1cmluZyBJbml0aWFsaXphdGlvbiIpOwotdGVz
dEZvcm1hdHMoJ1JHQkEnKTsKLQotdGVzdEJhY2tidWZmZXJGb3JtYXRzKCk7Ci0KLWRlYnVnKCJ0
ZXN0IHdpdGggYW4gUkdCIGJhY2tidWZmZXIiKTsKLXZhciBnbCA9IGdsTm9BbHBoYTsKLXZhciBw
cm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJEdXJpbmcgSW5pdGlhbGl6YXRpb24iKTsKLXRlc3RGb3JtYXRzKCdSR0In
KTsKLQotZnVuY3Rpb24gdGVzdEJhY2tidWZmZXJGb3JtYXRzKCkgewotICB2YXIgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBmYm8pOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBmb3JtYXRzLmxlbmd0aDsgKytpaSkg
ewotICAgIHZhciBiYWNrRm9ybWF0ID0gZm9ybWF0c1tpaV07Ci0KLSAgICB2YXIgdGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7
Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtiYWNrRm9ybWF0XSwgMiwg
MiwgMCwgZ2xbYmFja0Zvcm1hdF0sIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFS
RVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0KLSAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5G
UkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7
Ci0gICAgdmFyIHN0YXR1cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpOwotCi0gICAgZGVidWcoJycpOwotICAgIGlmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJf
Q09NUExFVEUpIHsKLSAgICAgIGRlYnVnKCd0ZXN0IHdpdGggJyArIGJhY2tGb3JtYXQgKyAnIGZi
bycpOwotICAgICAgdGVzdEZvcm1hdHMoYmFja0Zvcm1hdCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
IGRlYnVnKGJhY2tGb3JtYXQgKyAnIG5vdCBzdXBwb3J0ZWQgYXMgYSByZW5kZXJidWZmZXIgYXR0
YWNobWVudCcpOwotICAgIH0KLSAgfQotfQotCi1mdW5jdGlvbiB0ZXN0Rm9ybWF0cyhiYWNrRm9y
bWF0KSB7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBmb3JtYXRzLmxlbmd0aDsgKytpaSkgewot
ICAgIHRlc3RDb3B5VGV4SW1hZ2UyRChiYWNrRm9ybWF0LCBmb3JtYXRzW2lpXSk7Ci0gIH0KLX0K
LQotZnVuY3Rpb24gdG9DaGFubmVscyh2YWx1ZSkgewotICByZXR1cm4gKCh2YWx1ZSAmIDB4MTAw
MCkgPyAnUicgOiAnXycpICsKLSAgICAgICAgICgodmFsdWUgJiAweDAxMDApID8gJ0cnIDogJ18n
KSArCi0gICAgICAgICAoKHZhbHVlICYgMHgwMDEwKSA/ICdCJyA6ICdfJykgKwotICAgICAgICAg
KCh2YWx1ZSAmIDB4MDAwMSkgPyAnQScgOiAnXycpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29weVRl
eEltYWdlMkQoYmFja0Zvcm1hdCwgdGV4Rm9ybWF0KSB7Ci0gIHZhciBuZWVkID0gZ2V0Q2hhbm5l
bHNGcm9tRm9ybWF0KHRleEZvcm1hdCk7Ci0gIHZhciBoYXZlID0gZ2V0Q2hhbm5lbHNGcm9tRm9y
bWF0KGJhY2tGb3JtYXQpOwotICB2YXIgc2hvdWxkUGFzcyA9IChuZWVkICYgaGF2ZSkgPT0gbmVl
ZAotCi0gIC8vZGVidWcoIm5lZWQ6ICIgKyB0b0NoYW5uZWxzKG5lZWQpKTsKLSAgLy9kZWJ1Zygi
aGF2ZTogIiArIHRvQ2hhbm5lbHMoaGF2ZSkpOwotICAvL2RlYnVnKCJib3RoOiAiICsgdG9DaGFu
bmVscyhoYXZlICYgbmVlZCkpOwotCi0gIC8vIGNsZWFyIGJhY2tidWZmZXIKLSAgZ2wuY2xlYXJD
b2xvcigwLjI1LCAxLCAwLjc1LCAwLjUpOwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklU
KTsKLQotICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgLy8gQmluZCB0aGUg
dGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJE
LCB0ZXh0dXJlKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0KLSAgZ2wuY29weVRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbdGV4Rm9ybWF0XSwgMCwgMCwgMiwgMiwgMCk7Ci0g
IGlmICghc2hvdWxkUGFzcykgewotICAgIGdsRXJyb3JTaG91bGRCZSgKLSAgICAgICAgZ2wsIGds
LklOVkFMSURfT1BFUkFUSU9OLAotICAgICAgICAic2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNvcHlU
ZXhJbWFnZTJEICIgKyB0ZXhGb3JtYXQgKyAiIGZyb20gIiArIGJhY2tGb3JtYXQpOwotICAgIHJl
dHVybjsKLSAgfQotCi0gIGdsRXJyb3JTaG91bGRCZSgKLSAgICAgIGdsLCBnbC5OT19FUlJPUiwK
LSAgICAgICJzaG91bGQgYmUgYWJsZSB0byBjb3B5VGV4SW1hZ2UyRCAiICsgdGV4Rm9ybWF0ICsg
IiBmcm9tICIgKyBiYWNrRm9ybWF0KTsKLQotICAvLyBEcmF3Ci0gIHd0dS5jbGVhckFuZERyYXdV
bml0UXVhZChnbCk7Ci0KLSAgdmFyIGV4cGVjdGVkQ29sb3JzID0gewotICAgICdBTFBIQSc6IFsw
LCAwLCAwLCAxMjddLAotICAgICdMVU1JTkFOQ0UnOiBbNjQsIDY0LCA2NCwgMjU1XSwKLSAgICAn
TFVNSU5BTkNFX0FMUEhBJzogWzY0LCA2NCwgNjQsIDEyN10sCi0gICAgJ1JHQic6IFs2NCwgMjU1
LCAxOTEsIDI1NV0sCi0gICAgJ1JHQkEnOiBbNjQsIDI1NSwgMTkxLCAxMjddCi0gIH07Ci0KLSAg
dmFyIGNvbG9yID0gZXhwZWN0ZWRDb2xvcnNbdGV4Rm9ybWF0XTsKLQotICB3dHUuY2hlY2tDYW52
YXMoZ2wsIGNvbG9yLCAic2hvdWxkIGJlICIgKyBjb2xvciwgMTYpOwotCi0gIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci19Ci12YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVl
YjhmOTM0ZDJjYmQxNzMzNDE5N2VkZTY0OTBmYjI3ZGM4ZjQ4MC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2Nv
cHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1
NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0q
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoq
Ci0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ii8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNl
OwotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAgICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxE
b25lKCk7Ci0KLSAgICBkZXNjcmlwdGlvbignVmVyaWZ5IGNvcHlUZXhJbWFnZTJEIGFuZCBjb3B5
VGV4U3ViSW1hZ2UyRCcpOwotCi0gICAgcnVuVGVzdCgpOwotfQotCi12YXIgZ2wgPSBudWxsOwot
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotCi1mdW5jdGlvbiBydW5UZXN0SXRlcmF0aW9uKGFu
dGlhbGlhcykKLXsKLSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoCi0g
ICAgICAgIGFudGlhbGlhcyA/ICJhbnRpYWxpYXNPbiIgOiAiYW50aWFsaWFzT2ZmIik7Ci0gICAg
dmFyIGF0dHJpYnMgPSBhbnRpYWxpYXMgPyB7IGFudGlhbGlhczogdHJ1ZSB9IDogeyBhbnRpYWxp
YXM6IGZhbHNlIH07Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgYXR0cmli
cyk7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotICAgIHZh
ciB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiRHVyaW5nIEluaXRpYWxpemF0aW9u
Iik7Ci0KLSAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMSk7Ci0gICAgZ2wuZGlzYWJsZShnbC5C
TEVORCk7Ci0gICAgZGVidWcoJ1Rlc3RpbmcgY29weVRleEltYWdlMkQnKTsKLQotICAgIC8vIFJl
ZCBjYW52YXMKLSAgICBnbC5jbGVhckNvbG9yKDEsIDAsIDAsIDEpOwotICAgIGdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICAgIHZhciB0ZXh0
dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4
dHVyZSB1bml0IDAKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsK
LSAgICAvLyBTZXQgdXAgdGV4dHVyZQotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0g
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIs
IGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxv
YywgMCk7Ci0KLSAgICB2YXIgY29sb3JzID0gWwotICAgICAgWzEsIDAsIDAsIDFdLAotICAgICAg
WzAsIDEsIDAsIDFdLAotICAgICAgWzAsIDAsIDEsIDFdLAotICAgICAgWzAuNSwgMC41LCAwLjUs
IDAuNV0sCi0gICAgXTsKLSAgICB2YXIgY291bnQgPSAwOwotICAgIGZvciAodmFyIHl5ID0gLTI7
IHl5IDw9IDI7ICsreXkpIHsKLSAgICAgIGZvciAodmFyIHh4ID0gLTI7IHh4IDw9IDI7ICsreHgp
IHsKLSAgICAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCAyOyArK2lpKSB7Ci0gICAgICAgICAg
dmFyIHRleENvbG9yID0gY29sb3JzW2NvdW50XTsKLSAgICAgICAgICB2YXIgY2xlYXJDb2xvciA9
IGNvbG9yc1soY291bnQgKyAxKSAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgICAgIC8vIGNsZWFy
IHRvIHNvbWUgY29sb3IKLSAgICAgICAgICBnbC5jbGVhckNvbG9yKHRleENvbG9yWzBdLCB0ZXhD
b2xvclsxXSwgdGV4Q29sb3JbMl0sIHRleENvbG9yWzNdKTsKLSAgICAgICAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0KLSAgICAgICAgICAv
LyBjb3B5IHRoYXQgY29sb3IgdG8gdGhlIHRleHR1cmUuCi0gICAgICAgICAgc3dpdGNoIChpaSkg
ewotICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIGdsLmNvcHlUZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIHh4LCB5eSwgMiwgMiwgMCk7Ci0gICAgICAgICAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICAgICAgICAgICAgICJ1c2luZyBjb3B5
VGV4SW1hZ2UyRDogeCA9IiArIHh4ICsgIiwgeSA9ICIgKyB5eSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAwLCAwLCB4eCwgeXksIDIsIDIpOwotICAgICAgICAgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAgICAgICAgICAgICAidXNpbmcgY29weVRl
eFN1YkltYWdlMkQ6IHggPSIgKyB4eCArICIsIHkgPSAiICsgeXkpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gY2xlYXIgdG8gc29tZSBvdGhlciBjb2xv
ci4KLSAgICAgICAgICBnbC5jbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3JbMV0s
IGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwotICAgICAgICAgIGdsLmNsZWFyKGdsLkNP
TE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICAgICAgICAgIC8vIERy
YXcgdGhlIHRyaWFuZ2xlcwotICAgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7
Ci0KLSAgICAgICAgICAvLyBjaGVjayB0aGUgcmVuZGVyaW5nIHJlc3VsdHMKLSAgICAgICAgICBm
b3IgKHZhciBpeSA9IDA7IGl5IDwgMjsgKytpeSkgewotICAgICAgICAgICAgZm9yICh2YXIgaXgg
PSAwOyBpeCA8IDI7ICsraXgpIHsKLSAgICAgICAgICAgICAgdmFyIHggPSB4eCArIGl4OwotICAg
ICAgICAgICAgICB2YXIgeSA9IHl5ICsgaXk7Ci0gICAgICAgICAgICAgIHZhciBleHBlY3RlZENv
bG9yID0gKHggPCAwIHx8IHkgPCAwIHx8IHggPj0gMiB8fCB5ID49IDIpID8KLSAgICAgICAgICAg
ICAgICAgIFswLDAsMCwwXSA6Ci0gICAgICAgICAgICAgICAgICBbTWF0aC5mbG9vcigyNTUgKiB0
ZXhDb2xvclswXSksCi0gICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xv
clsxXSksCi0gICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xvclsyXSks
Ci0gICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xvclszXSldOwotICAg
ICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCBpeCwgaXksIDEsIDEsIGV4cGVjdGVk
Q29sb3IsCi0gICAgICAgICAgICAgICAgICAiIiArIGl4ICsgIiwgIiArIGl5ICsgIiBzaG91bGQg
cmVuZGVyICIgKyBleHBlY3RlZENvbG9yICsgIiAoKy8tMSkiLCAxKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9Ci0gICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGNvbG9ycy5sZW5n
dGg7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0KLSAgICBkZWJ1ZygiIik7Ci19Ci0KLWZ1
bmN0aW9uIHJ1blRlc3QoYW50aWFsaWFzKQotewotICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggYW50
aWFsaWFzIG9uIik7Ci0gICAgcnVuVGVzdEl0ZXJhdGlvbih0cnVlKTsKLSAgICBkZWJ1ZygiVGVz
dGluZyB3aXRoIGFudGlhbGlhcyBvZmYiKTsKLSAgICBydW5UZXN0SXRlcmF0aW9uKGZhbHNlKTsK
LQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJpbml0KCkiPgotPGNhbnZhcyBpZD0iYW50aWFsaWFzT24iIHdpZHRoPSIyIiBoZWlnaHQ9IjIi
PjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYW50aWFsaWFzT2ZmIiB3aWR0aD0iMiIgaGVpZ2h0PSIy
Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlOWNkZjVkNTRmZDc0MjliZjZkZmI5N2ZkYmE0NTFlODcyMTFiMmExLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvZ2wtZ2V0LXRleC1wYXJhbWV0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEz
NSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0q
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoq
Ci0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5XZWJHTCBnZXRUZXhQYXJhbWV0ZXIgdGVzdDwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBzdHlsZT0id2lk
dGg6IDQwcHg7IGhlaWdodDogMzBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3Qi
OwotZGVzY3JpcHRpb24oKTsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0
dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLQotLy8gTk9URTogV2UgZXhwbGljaXRseSBk
byB0aGlzIGluIGEgZnVua3kgb3JkZXIKLS8vIHRvIGhvcGVmdWxseSBmaW5kIHN1YnRsZSBidWdz
LgotCi12YXIgdGFyZ2V0cyA9IFsKLSAgJ1RFWFRVUkVfMkQnLAotICAnVEVYVFVSRV8yRCcsCi0g
ICdURVhUVVJFX0NVQkVfTUFQJywKLSAgJ1RFWFRVUkVfQ1VCRV9NQVAnCi1dOwotLy8gQ3JlYXRl
IHRleHR1cmVzIG9uIGRpZmZlcmVudCBhY3RpdmUgdGV4dHVyZXMuCi1mb3IgKHZhciBpaSA9IDA7
IGlpIDwgdGFyZ2V0cy5sZW5ndGg7ICsraWkpIHsKLSAgdmFyIHRhcmdldCA9IHRhcmdldHNbaWld
OwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5hY3RpdmVUZXh0dXJlKGds
LlRFWFRVUkUwICsgaWkpOwotICBnbC5iaW5kVGV4dHVyZShnbFt0YXJnZXRdLCB0ZXgpOwotfQot
Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIp
OwotCi12YXIgc3RhdGVzID0gWwotICB7IHN0YXRlOidURVhUVVJFX1dSQVBfUycsICAgICBkZWZh
dWx0OiAnUkVQRUFUJywgICAgICAgICAgICAgICAgdmFsdWUxOiAnQ0xBTVBfVE9fRURHRScsICAg
ICAgICB2YWx1ZTI6ICdSRVBFQVQnICAgICAgICB9LAotICB7IHN0YXRlOidURVhUVVJFX1dSQVBf
VCcsICAgICBkZWZhdWx0OiAnUkVQRUFUJywgICAgICAgICAgICAgICAgdmFsdWUxOiAnQ0xBTVBf
VE9fRURHRScsICAgICAgICB2YWx1ZTI6ICdSRVBFQVQnICAgICAgICB9LAotICB7IHN0YXRlOidU
RVhUVVJFX01BR19GSUxURVInLCBkZWZhdWx0OiAnTElORUFSJywgICAgICAgICAgICAgICAgdmFs
dWUxOiAnTkVBUkVTVCcsICAgICAgICAgICAgICB2YWx1ZTI6ICdMSU5FQVInICAgICAgICB9LAot
ICB7IHN0YXRlOidURVhUVVJFX01JTl9GSUxURVInLCBkZWZhdWx0OiAnTkVBUkVTVF9NSVBNQVBf
TElORUFSJywgdmFsdWUxOiAnTElORUFSX01JUE1BUF9MSU5FQVInLCB2YWx1ZTI6ICdORUFSRVNU
JyAgICAgICB9Ci1dOwotCi1mdW5jdGlvbiBhcHBseVN0YXRlcyhmbikgewotICBmb3IgKHZhciBz
cyA9IDA7IHNzIDwgc3RhdGVzLmxlbmd0aDsgKytzcykgewotICAgIHZhciBzdGF0ZUluZm8gPSBz
dGF0ZXNbc3NdOwotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCB0YXJnZXRzLmxlbmd0aDsgKytp
aSkgewotCSAgdmFyIHRhcmdldCA9IHRhcmdldHNbaWldOwotICAgICAgZ2wuYWN0aXZlVGV4dHVy
ZShnbC5URVhUVVJFMCArIGlpKTsKLSAgICAgIGZuKHRhcmdldCwgc3RhdGVJbmZvKTsKLSAgICB9
Ci0gIH0KLX0KLQotLy8gdGVzdCB0aGUgZGVmYXVsdCBzdGF0ZS4KLWFwcGx5U3RhdGVzKGZ1bmN0
aW9uKHRhcmdldCwgc3RhdGVJbmZvKSB7Ci0gIHZhciBhID0gJ2dsLmdldFRleFBhcmFtZXRlcihn
bFsiJyArIHRhcmdldCArICciXSwgZ2xbIicgKyBzdGF0ZUluZm8uc3RhdGUgKyAnIl0pJzsKLSAg
dmFyIGIgPSAnZ2xbIicgKyBzdGF0ZUluZm8uZGVmYXVsdCArICciXSc7Ci0gIHNob3VsZEJlKGEs
IGIpOwotfSk7Ci0KLS8vIHRlc3QgbmV3IHN0YXRlCi1hcHBseVN0YXRlcyhmdW5jdGlvbih0YXJn
ZXQsIHN0YXRlSW5mbykgewotICBnbC50ZXhQYXJhbWV0ZXJpKGdsW3RhcmdldF0sIGdsW3N0YXRl
SW5mby5zdGF0ZV0sIGdsW3N0YXRlSW5mby52YWx1ZTFdKTsKLX0pOwotCi1hcHBseVN0YXRlcyhm
dW5jdGlvbih0YXJnZXQsIHN0YXRlSW5mbykgewotICB2YXIgYSA9ICdnbC5nZXRUZXhQYXJhbWV0
ZXIoZ2xbIicgKyB0YXJnZXQgKyAnIl0sIGdsWyInICsgc3RhdGVJbmZvLnN0YXRlICsgJyJdKSc7
Ci0gIHZhciBiID0gJ2dsWyInICsgc3RhdGVJbmZvLnZhbHVlMSArICciXSc7Ci0gIHNob3VsZEJl
KGEsIGIpOwotfSk7Ci0KLS8vIHRlc3QgZGlmZmVyZW50IHN0YXRlcyBvbiBlYWNoIHRhcmdldC4K
LWZ1bmN0aW9uIGdldFN0YXRlVmFsdWUoY291bnQsIHN0YXRlSW5mbykgewotICByZXR1cm4gKGNv
dW50ICUgMikgPyBzdGF0ZUluZm8udmFsdWUyIDogc3RhdGVJbmZvLnZhbHVlMTsKLX0KLQotYXBw
bHlTdGF0ZXMoZnVuY3Rpb24oKSB7Ci0gIHZhciBjb3VudCA9IDA7Ci0gIHJldHVybiBmdW5jdGlv
bih0YXJnZXQsIHN0YXRlSW5mbykgewotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2xbdGFyZ2V0XSwg
Z2xbc3RhdGVJbmZvLnN0YXRlXSwgZ2xbZ2V0U3RhdGVWYWx1ZShjb3VudCwgc3RhdGVJbmZvKV0p
OwotICAgICsrY291bnQ7Ci0gIH0KLX0oKSk7Ci0KLWFwcGx5U3RhdGVzKGZ1bmN0aW9uKCkgewot
ICB2YXIgY291bnQgPSAwOwotICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUluZm8pIHsK
LSAgICB2YXIgYSA9ICdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2xbIicgKyB0YXJnZXQgKyAnIl0sIGds
WyInICsgc3RhdGVJbmZvLnN0YXRlICsgJyJdKSc7Ci0gICAgdmFyIGIgPSAnZ2xbIicgKyBnZXRT
dGF0ZVZhbHVlKGNvdW50LCBzdGF0ZUluZm8pICsgJyJdJzsKLSAgICBzaG91bGRCZShhLCBiKTsK
LSAgICArK2NvdW50OwotICB9OwotfSgpKTsKLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtcGl4ZWxzdG9yZWkuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvZ2wtcGl4ZWxzdG9yZWkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGMwYzQ1MTRmNjkxZTAyNWM1MTJhYjU4Y2VmZTA5N2RiNDM3MTkyNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL2dsLXBpeGVsc3RvcmVpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAs
MCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu
ZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIp
LCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
Ci0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj
b3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9t
IHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiog
VEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQg
T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2Vi
R0wgcGl4ZWxTdG9yZWkgVGVzdDwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUw
IiBoZWlnaHQ9IjUwIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9IjJkMDAiIHdpZHRoPSI1MCIgaGVp
Z2h0PSI1MCI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSIyZDAxIiB3aWR0aD0iNTAiIGhlaWdodD0i
NTAiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iMmQwMiIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48
L2NhbnZhcz4KLTxjYW52YXMgaWQ9IjJkMDMiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52
YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJp
YnV0ZSB2ZWM0IHZQb3NpdGlvbjsKLXZvaWQgbWFpbigpIHsKLSAgZ2xfUG9zaXRpb24gPSB2UG9z
aXRpb247Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC1mcmFnbWVudCI+Ci12b2lkIG1haW4oKSB7Ci0gIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4w
LDAuMCwwLjAsMS4wKTsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0PgotInVzZSBzdHJpY3QiOwot
ZnVuY3Rpb24gaW5pdCgpIHsKLSAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBk
cmF3SW1hZ2UgYW5kIHJlYWRQaXhlbHMgYXJlIG5vdCBlZmZlY3RlZCBieSBnbC5QaXhlbHN0b3Jl
aShnbC5QQUNLX0FMSUdOTUVOVCkgYW5kIHZpc2EgdmVyc2EiKTsKLQotICBkZWJ1ZygiVGhlcmUg
c2hvdWxkIGJlIDUgcmVkIHRyaWFuZ2xlcyBvbiA1IGJsYWNrIHNxdWFyZXMgYWJvdmUiKTsKLSAg
ZGVidWcoIiIpOwotCi0gIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgdmFyIGNhbnZhczNk
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLSAgdmFyIGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dy
YW0oZ2wsIFsidnNoYWRlciIsICJmc2hhZGVyIl0sIFsidlBvc2l0aW9uIl0pOwotCi0gIHZhciB2
ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIHZlcnRleE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCBuZXcgRmxvYXQzMkFycmF5KFsgMCwwLjUsMCwgLTAuNSwtMC41LDAsIDAuNSwtMC41LDAgXSks
IGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Ci0gIGds
LnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gIGds
LmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsKLQotICBmdW5jdGlvbiBjaGVja0RhdGEo
Y3R4LCBuYW1lKSB7Ci0gICAgLy8gVGVzdCBzZXZlcmFsIGxvY2F0aW9ucwotICAgIC8vIEZpcnN0
IGxpbmUgc2hvdWxkIGJlIGFsbCBibGFjawotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoY3R4LCAw
LCAwLCA1MCwgMSwgWzAsIDAsIDAsIDBdKTsKLQotICAgIC8vIExpbmUgMjUgc2hvdWxkIGJlIHJl
ZCBmb3IgYXQgbGVhc3QgNiByZWQgcGl4ZWxzIHN0YXJ0aW5nIDIyIHBpeGVscyBpbgotICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoY3R4LCAyMiwgMjUsIDYsIDEsIFsyNTUsIDAsIDAsIDI1NV0pOwot
Ci0gICAgLy8gTGFzdCBsaW5lIHNob3VsZCBiZSBhbGwgYmxhY2sKLSAgICB3dHUuY2hlY2tDYW52
YXNSZWN0KGN0eCwgMCwgNDksIDUwLCAxLCBbMCwgMCwgMCwgMF0pOwotICB9Ci0KLSAgdmFyIGN0
eDJkOwotCi0gIGZ1bmN0aW9uIGNoZWNrQ29sb3JzKCkgewotICAgIGNoZWNrRGF0YShnbCwgIjNk
IGNvbnRleHQiKTsKLSAgICBjaGVja0RhdGEoY3R4MmQsICIyZCBjb250ZXh0Iik7Ci0gIH0KLQot
ICB2YXIgdGFibGUgPSBbMSwgMiwgNCwgOF07Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB0YWJs
ZS5sZW5ndGg7ICsraWkpIHsKLSAgICBnbC5waXhlbFN0b3JlaShnbC5QQUNLX0FMSUdOTUVOVCwg
dGFibGVbaWldKTsKLSAgICBjdHgyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCIyZDAiICsg
aWkpLmdldENvbnRleHQoIjJkIik7Ci0gICAgY3R4MmQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9u
ID0gJ2NvcHknOwotICAgIGN0eDJkLmRyYXdJbWFnZShjYW52YXMzZCwgMCwgMCk7Ci0gICAgY2hl
Y2tDb2xvcnMoKTsKLSAgICBhc3NlcnRNc2coZ2wuZ2V0UGFyYW1ldGVyKGdsLlBBQ0tfQUxJR05N
RU5UKSA9PSB0YWJsZVtpaV0sCi0gICAgICAgICJQQUNLX0FMSUdOTUVOVCBpcyAiICsgdGFibGVb
aWldKTsKLSAgfQotfQotCi1pbml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL2dsLXRleGltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L2dsLXRleGltYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOTYwMzI0
ZjQzMzU5ZTA3ODg2YWI5ZTBlOTM5YzYxMTYwZWE0MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhp
bWFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDQ2ICswLDAgQEAKLTwhLS0KLQotLyoKLSoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRleEltYWdlMkQgY29uZm9y
bWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAyNTZweDsgaGVp
Z2h0OiA0OHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlv
bigiVGVzdCB0ZXhJbWFnZTJEIGNvbnZlcnNpb25zLiIpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotZ2wuZGlzYWJs
ZShnbC5ESVRIRVIpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwot
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZDsKLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotdmFyIGltZ1VSTHMgPSBb
Ci0gICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13aXRoLTEyOC1hbHBoYS5wbmcnLAotICAn
Li4vcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJh
bXAtZGVmYXVsdC1nYW1tYS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTAu
MS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5wbmcnLAotICAnLi4v
cmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTIuMC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXkt
cmFtcC1nYW1tYTQuMC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5w
bmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3pl
cm8tYWxwaGEucG5nJywKLSAgJy4uL3Jlc291cmNlcy8zeDMucG5nJywKLSAgJy4uL3Jlc291cmNl
cy9ibHVlLTF4MS5qcGcnLAotICAnLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZycsCi0gICcu
Li9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBuZycsCi0gICcuLi9yZXNvdXJjZXMvc21hbGwt
c3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUuanBnJywKLSAgJy4uL3Jlc291cmNlcy9zbWFs
bC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3Nt
YWxsLXNxdWFyZS13aXRoLWNpZS1yZ2ItcHJvZmlsZS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3Nt
YWxsLXNxdWFyZS13aXRoLWNvbG9ybWF0Y2gtcHJvZmlsZS5wbmcnLAotICAnLi4vcmVzb3VyY2Vz
L3NtYWxsLXNxdWFyZS13aXRoLWUtc3JnYi1wcm9maWxlLnBuZycsCi0gICcuLi9yZXNvdXJjZXMv
c21hbGwtc3F1YXJlLXdpdGgtc21wdGUtYy1wcm9maWxlLnBuZycsCi0gICcuLi9yZXNvdXJjZXMv
c21hbGwtc3F1YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmlsZS5wbmcnXTsKLQotCi13
dHUubG9hZEltYWdlc0FzeW5jKGltZ1VSTHMsIHJ1blRlc3RzKTsKLQotZnVuY3Rpb24gcnVuVGVz
dHMoaW1ncykgewotICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0
ZXgiKTsKLSAgZ2wudW5pZm9ybTFpKGxvYywgMCk7Ci0KLSAgZ2wuZGlzYWJsZShnbC5CTEVORCk7
Ci0gIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0KLSAgdmFyIHdpZHRoID0gZ2wuY2FudmFz
LndpZHRoOwotICB2YXIgaGVpZ2h0ID0gZ2wuY2FudmFzLmhlaWdodDsKLQotICBmdW5jdGlvbiBj
aGVja1BpeGVsKGJ1ZiwgeCwgeSwgY29sb3IpIHsKLSAgICB2YXIgb2ZmID0gKHkgKiB3aWR0aCAr
IHgpICogNDsKLSAgICB2YXIgbXNnID0gInBpeGVsICIgKyB4ICsgIiwgIiArIHkgKyAiIHNob3Vs
ZCBiZSAiICsKLSAgICAgICAgICAgICAgY29sb3JbMF0gKyAiLCAiICsKLSAgICAgICAgICAgICAg
Y29sb3JbMV0gKyAiLCAiICsKLSAgICAgICAgICAgICAgY29sb3JbMl0gKyAiLCAiICsKLSAgICAg
ICAgICAgICAgY29sb3JbM10gKyAiIHdhcyAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDBd
ICsgIiwgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAxXSArICIsICIgKwotICAgICAgICAg
ICAgICBidWZbb2ZmICsgMl0gKyAiLCAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDNdOwot
Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDQ7ICsraWkpIHsKLSAgICAgIGlmIChidWZbb2Zm
ICsgaWldICE9IGNvbG9yW2lpXSkgewotICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGVzdFBhc3NlZChtc2cpOwotICB9Ci0KLSAg
ZnVuY3Rpb24gY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgeCwgeSwgY29sb3IsIGFsbG93ZWRSYW5nZSkg
ewotICAgIHZhciBvZmYgPSAoeSAqIHdpZHRoICsgeCkgKiA0OwotICAgIHZhciBtc2cgPSAicGl4
ZWwgIiArIHggKyAiLCAiICsgeSArICIgc2hvdWxkIGJlIHdpdGhpbiAiICsKLSAgICAgICAgICAg
ICAgYWxsb3dlZFJhbmdlICsgIiB1bml0cyBvZiAiICsKLSAgICAgICAgICAgICAgY29sb3JbMF0g
KyAiLCAiICsKLSAgICAgICAgICAgICAgY29sb3JbMV0gKyAiLCAiICsKLSAgICAgICAgICAgICAg
Y29sb3JbMl0gKyAiLCAiICsKLSAgICAgICAgICAgICAgY29sb3JbM107Ci0gICAgdmFyIHN1Yk1z
ZyA9ICIgd2FzICIgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgMF0gKyAiLCAiICsKLSAgICAg
ICAgICAgICAgYnVmW29mZiArIDFdICsgIiwgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAy
XSArICIsICIgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgM107Ci0gICAgLy8gV2hlbiBydW5u
aW5nIGluIFdlYktpdCdzIHRlc3QgaGFybmVzcywgd2UgZG9uJ3Qgd2FudCB0byBwcmludCB0aGUK
LSAgICAvLyBwaXhlbCB2YWx1ZSB3aGVuIHRoZSB0ZXN0IHBhc3NlcywgYmVjYXVzZSBkaWZmZXJl
bnQgbWFjaGluZXMgbWlnaHQKLSAgICAvLyBoYXZlIGRpZmZlcmVudCByZXN1bHRzIGFuZCB3ZSBy
ZWNvcmQgdGhlIHRleHQgb3V0cHV0LgotICAgIHZhciBpbkR1bXBSZW5kZXJUcmVlID0gd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyOwotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCA0OyArK2lp
KSB7Ci0gICAgICBpZiAoTWF0aC5hYnMoYnVmW29mZiArIGlpXSAtIGNvbG9yW2lpXSkgPiBhbGxv
d2VkUmFuZ2UpIHsKLSAgICAgICAgdGVzdEZhaWxlZChtc2cgKyBzdWJNc2cpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgICB9Ci0gICAgfQotICAgIHRlc3RQYXNzZWQobXNnICsgKGluRHVtcFJlbmRl
clRyZWUgPyAiIiA6IHN1Yk1zZykpOwotICB9Ci0KLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURH
RSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1Qs
IGdsLkNMQU1QX1RPX0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLQotICB2YXIg
YnVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLQotICBkZWJ1ZygiIik7
Ci0gIGRlYnVnKCJjaGVjayBwaXhlbHMgYXJlIE5PVCBwcmUtbXVsdGlwbGllZCIpOwotICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9C
WVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZydd
KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1Zik7Ci0KLSAgdmFyIGxlZnQgPSAwOwotICB2YXIgbWlkZGxlID0gTWF0aC5mbG9vcih3aWR0
aCAvIDIpOwotICB2YXIgcmlnaHQgPSB3aWR0aCAtIDE7Ci0gIHZhciBib3R0b20gPSAwOwotICB2
YXIgY2VudGVyID0gTWF0aC5mbG9vcihoZWlnaHQgLyAyKTsKLSAgdmFyIHRvcCA9IGhlaWdodCAt
IDE7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIHRvcCwgICAgWyAgMCwgICAwLCAgIDAsIDI1
NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCB0b3AsICAgIFsyNTUsICAgMCwgMjU1LCAy
NTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgdG9wLCAgICBbICAwLCAgIDAsIDI1NSwg
MjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIGNlbnRlciwgWzEyOCwgMTI4LCAxMjgs
IDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsyNTUsIDI1NSwgMjU1
LCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgY2VudGVyLCBbICAwLCAyNTUsIDI1
NSwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIGJvdHRvbSwgWzI1NSwgICAwLCAg
IDAsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCBib3R0b20sIFsyNTUsIDI1NSwg
ICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgYm90dG9tLCBbICAwLCAyNTUs
ICAgMCwgMjU1XSk7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcXVhbnRpemF0aW9u
Iik7Ci0gIHZhciBxdWFudEluZm8gPSBbCi0gICAge2Zvcm1hdDogZ2wuUkdCQSwgdHlwZTogZ2wu
VU5TSUdORURfQllURSwgICAgICAgICAgY291bnRzOiBbMjU2LCAyNTYsIDI1NiwgMjU2XX0sCi0g
ICAge2Zvcm1hdDogZ2wuUkdCQSwgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgY291
bnRzOiBbIDE2LCAgMTYsICAxNiwgIDE2XX0sCi0gICAge2Zvcm1hdDogZ2wuUkdCLCAgdHlwZTog
Z2wuVU5TSUdORURfU0hPUlRfNV82XzUsICAgY291bnRzOiBbIDMyLCAgNjQsICAzMiwgICAxXX0s
Ci0gICAge2Zvcm1hdDogZ2wuUkdCQSwgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMSwg
Y291bnRzOiBbIDMyLCAgMzIsICAzMiwgICAyXX1dOwotICBmb3IgKHZhciBxcSA9IDA7IHFxIDwg
cXVhbnRJbmZvLmxlbmd0aDsgKytxcSkgewotICAgIHZhciBpbmZvID0gcXVhbnRJbmZvW3FxXTsK
LSAgICBnbC50ZXhJbWFnZTJEKAotICAgICAgICBnbC5URVhUVVJFXzJELCAwLCBpbmZvLmZvcm1h
dCwgaW5mby5mb3JtYXQsIGluZm8udHlwZSwKLSAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2dy
YXktcmFtcC0yNTYucG5nJ10pOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0gICAgd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsKTsKLSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgdmFyIGNvdW50cyA9IFt7IH0sIHsg
fSwgeyB9LCB7IH1dOwotICAgIHZhciBudW1VbmlxdWVWYWx1ZXMgPSBbMCwgMCwgMCwgMF07Ci0g
ICAgLy8gQ291bnQgdGhlIG51bWJlciBvZiB1bmlxdWUgdmFsdWVzIGluIGVhY2ggY2hhbm5lbC4K
LSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgd2lkdGggKiBoZWlnaHQgKiA0OyBpaSArPSA0KSB7
Ci0gICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgNDsgKytqaikgewotICAgICAgICB2YXIgdiA9
IGJ1ZltpaSArIGpqXTsKLSAgICAgICAgaWYgKCFjb3VudHNbampdW3ZdKSB7Ci0gICAgICAgICAg
Y291bnRzW2pqXVt2XSA9IDE7Ci0gICAgICAgICAgKytudW1VbmlxdWVWYWx1ZXNbampdOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICsrY291bnRzW2pqXVt2XTsKLSAgICAgICAgfQotICAg
ICAgfQotICAgIH0KLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgNDsgKytpaSkgewotICAgICAg
YXNzZXJ0TXNnKG51bVVuaXF1ZVZhbHVlc1tpaV0gPT0gaW5mby5jb3VudHNbaWldLAotICAgICAg
ICAgICAgICAgICJUaGVyZSBzaG91bGQgYmUgIiArIGluZm8uY291bnRzW2lpXSArCi0gICAgICAg
ICAgICAgICAgIiB1bmlxdWUgdmFsdWVzIGluIGNoYW5uZWwgIiArIGlpICsgIi4gRm91bmQgIiAr
Ci0gICAgICAgICAgICAgICAgbnVtVW5pcXVlVmFsdWVzW2lpXSk7Ci0gICAgfQotICB9Ci0KLSAg
ZGVidWcoIiIpOwotICBkZWJ1ZygiQ2hlY2sgdGhhdCBnYW1tYSBzZXR0aW5ncyBkb24ndCBlZmZl
Y3QgOGJpdCBwbmdzIik7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19DT0xPUlNQQUNFX0NP
TlZFUlNJT05fV0VCR0wsIGdsLk5PTkUpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGlt
Z3NbJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZGVmYXVsdC1nYW1tYS5wbmcnXSk7Ci0gIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0
dXAuIik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIHZhciByZWYgPSBuZXcg
VWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdp
ZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHJlZik7Ci0KLSAgdmFyIGdh
bW1hSW1hZ2VzID0gWwotICAgICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMC4xLnBuZycs
Ci0gICAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWExLjAucG5nJywKLSAgICAnLi4vcmVz
b3VyY2VzL2dyYXktcmFtcC1nYW1tYTIuMC5wbmcnLAotICAgICcuLi9yZXNvdXJjZXMvZ3JheS1y
YW1wLWdhbW1hNC4wLnBuZycsCi0gICAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE5LjAu
cG5nJ107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBnYW1tYUltYWdlcy5sZW5ndGg7ICsraWkp
IHsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBn
bC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgICAgaW1nc1tnYW1tYUltYWdlc1tpaV1d
KTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgIGdsLnJlYWRQaXhlbHMo
MCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAg
ICB2YXIgc2FtZSA9IHRydWU7Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IHdpZHRoICogaGVp
Z2h0ICogNDsgKytqaikgewotICAgICAgaWYgKGJ1Zltqal0gIT0gcmVmW2pqXSkgewotICAgICAg
ICBzYW1lID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0KLSAgICBhc3Nl
cnRNc2coc2FtZSwgInBpeGVscyBzaG91bGQgYmUgc2FtZSByZWdhcmRsZXNzIG9mIGdhbW1hIHNl
dHRpbmdzLiIpOwotICB9Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcGl4ZWxzIGFy
ZSBVTiBwcmUtbXVsdGlwbGllZCIpOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsgKytpaSkg
ewotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMSwgMSwgMCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgaWYgKGlpID09IDApIHsKLSAg
ICAgIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAg
ICAgY2FudmFzMmQud2lkdGggPSAyNTY7Ci0gICAgICBjYW52YXMyZC5oZWlnaHQgPSAxOwotICAg
ICAgdmFyIGN0eCA9IGNhbnZhczJkLmdldENvbnRleHQoIjJkIik7Ci0gICAgICBjdHguZHJhd0lt
YWdlKGltZ3NbJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LXdpdGgtMTI4LWFscGhhLnBuZydd
LCAwLCAwKTsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBn
bC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgICB9IGVsc2UgewotICAgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdO
RURfQllURSwKLSAgICAgICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2dyYXktcmFt
cC0yNTYtd2l0aC0xMjgtYWxwaGEucG5nJ10pOwotICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotICAg
IHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFy
cmF5KHdpZHRoICogaGVpZ2h0ICogNCk7Ci0gICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIHZhciBsdDEyOENv
dW50ID0gWzAsIDAsIDBdOwotICAgIHZhciBnZTEyOENvdW50ID0gWzAsIDAsIDBdOwotICAgIGZv
ciAodmFyIGpqID0gMDsgamogPCB3aWR0aDsgKytqaikgewotICAgICAgdmFyIG9mZiA9IGpqICog
NDsKLSAgICAgIGZvciAodmFyIGNjID0gMDsgY2MgPCAzOyArK2NjKSB7Ci0gICAgICAgIGlmIChi
dWZbb2ZmICsgY2NdIDwgMTI4KSB7Ci0gICAgICAgICAgKytsdDEyOENvdW50W2NjXTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICArK2dlMTI4Q291bnRbY2NdOwotICAgICAgICB9Ci0gICAg
ICB9Ci0gICAgfQotICAgIC8vIE5vdCBzdXJlIHRoZSBleGFjdCBjb3VudCBoZXJlIGJlY2F1c2Ug
Z2FtbWEgZG9lcyBlZmZlY3QgZHJhd2luZyBpbnRvIHRoZQotICAgIC8vIGNhbnZhcyBidXQgaXQg
c2hvdWxkIGJlIGNsb3NlIHRvIDUwJSBzbyBJJ2xsIHBhc3MgNDUlCi0gICAgZm9yICh2YXIgamog
PSAwOyBqaiA8IDM7ICsramopIHsKLSAgICAgIGFzc2VydE1zZyhnZTEyOENvdW50W2pqXSA+IDI1
NiAqIDAuNDUsCi0gICAgICAgICAgICAgICAgIkhhbGYgdGhlIHBpeGVscyBpbiBjaGFubmVsICIg
KyBqaiArCi0gICAgICAgICAgICAgICAgIiBzaG91bGQgYmUgPj0gMTI4LDEyOCwxMjguIGZvdW5k
ICIgKwotICAgICAgICAgICAgICAgICgoZ2UxMjhDb3VudFtqal0gLyAyNTYpICogMTAwKS50b0Zp
eGVkKCkgKyAiJSIpOwotICAgICAgYXNzZXJ0TXNnKGx0MTI4Q291bnRbampdID4gMjU2ICogMC40
NSwKLSAgICAgICAgICAgICAgICAiSGFsZiB0aGUgcGl4ZWxzIGluIGNoYW5uZWwgIiArIGpqICsK
LSAgICAgICAgICAgICAgICAiIHNob3VsZCBiZSA8IDEyOCwxMjgsMTI4LiBmb3VuZCAiICsKLSAg
ICAgICAgICAgICAgICAoKGx0MTI4Q291bnRbampdIC8gMjU2KSAqIDEwMCkudG9GaXhlZCgpICsg
IiUiKTsKLSAgICB9Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayBjYW52YXMg
cGl4ZWxzIGFyZSBVTiBwcmUtbXVsdGlwbGllZCIpOwotICB2YXIgY2FudmFzMmQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgY2FudmFzMmQud2lkdGggPSAxOwotICBjYW52
YXMyZC5oZWlnaHQgPSAxOwotICB2YXIgY3R4ID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsK
LSAgY3R4LmZpbGxTdHlsZSA9InJnYmEoMjU1LDI1NSwyNTUsMC41KSI7Ci0gIGN0eC5maWxsUmVj
dCgwLCAwLCAyNTYsIDEpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotICBjaGVja1Bp
eGVsUmFuZ2UoYnVmLCAwLCAwLCBbMjU1LCAyNTUsIDI1NSwgMTI3XSwgNCk7Ci0KLSAgZGVidWco
IiIpOwotICBkZWJ1ZygiY2hlY2sgY2FudmFzIHBpeGVscyBhcmUgcHJlLW11bHRpcGxpZWQiKTsK
LSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0cnVl
KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChn
bCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgYnVmKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNo
b3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLSAgY2hlY2tQaXhlbFJhbmdlKGJ1Ziwg
MCwgMCwgWzEyNywgMTI3LCAxMjcsIDEyN10sIDQpOwotCi0KLSAgZGVidWcoIiIpOwotICBkZWJ1
ZygiY2hlY2sgcGl4ZWxzIGFyZSBwcmUtbXVsdGlwbGllZCIpOwotICBnbC5waXhlbFN0b3JlaShn
bC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRydWUpOwotICAvLyBUT0RPKGdtYW4p
OiB1c2UgZGlmZmVyZW50IHRleHR1cmUgdGhhdCB3b24ndCBwYXNzIG9uIGZhaWx1cmUKLSAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy96ZXJvLWFscGhhLnBu
ZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBl
cnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBn
bC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGJ1Zik7Ci0KLSAgdmFyIHNhbWUgPSB0cnVlOwotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwg
d2lkdGggKiBoZWlnaHQgKiA0OyArK2pqKSB7Ci0gICAgaWYgKGJ1Zltqal0gIT0gMCkgewotICAg
ICAgc2FtZSA9IGZhbHNlOwotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIGFzc2VydE1zZyhz
YW1lLCAicGl4ZWxzIHNob3VsZCBhbGwgYmUgMC4iKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVn
KCJjaGVjayBwaXhlbHMgYXJlIGZsaXBwZWQiKTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNL
X1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19GTElQX1lfV0VCR0wsIHRydWUpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGlt
Z3NbJy4uL3Jlc291cmNlcy8zeDMucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5jbGVhckFu
ZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLQotICBjaGVja1BpeGVsKGJ1ZiwgbGVm
dCwgICB0b3AsICAgIFsyNTUsICAgMCwgICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1p
ZGRsZSwgdG9wLCAgICBbMjU1LCAyNTUsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBy
aWdodCwgIHRvcCwgICAgWzI1NSwgICAwLCAgIDAsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1Ziwg
bGVmdCwgICBjZW50ZXIsIFsyNTUsICAgMCwgMjU1LCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYs
IG1pZGRsZSwgY2VudGVyLCBbMjU1LCAgIDAsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVm
LCByaWdodCwgIGNlbnRlciwgWyAgMCwgMjU1LCAgIDAsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1
ZiwgbGVmdCwgICBib3R0b20sIFsgIDAsICAgMCwgICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChi
dWYsIG1pZGRsZSwgYm90dG9tLCBbICAwLCAgIDAsIDI1NSwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwo
YnVmLCByaWdodCwgIGJvdHRvbSwgWzI1NSwgICAwLCAgIDAsIDI1NV0pOwotCi0gIGRlYnVnKCIi
KTsKLSAgZGVidWcoImNoZWNrIHVwbG9hZGluZyBvZiBpbWFnZXMgd2l0aCBubyBhbHBoYSBjaGFu
bmVsIHdvcmtzIik7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCwgZmFsc2UpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdM
LCBmYWxzZSk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5S
R0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2Vz
L2JsdWUtMXgxLmpwZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNo
b3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1
YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2Vu
dGVyLCBbICAgMCwgICAwLCAyNTUsIDI1NV0sIDEwKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMiKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRl
YnVnKCJjaGVjayB1cGxvYWRpbmcgb2YgMTYtYml0IGltYWdlcyIpOwotICBnbC5waXhlbFN0b3Jl
aShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgZ2wucGl4ZWxT
dG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmFsc2UpOwotICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAg
ICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nJ10pOwotICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9t
IHNldHVwIik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhl
bHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsK
LSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgICAxNSwgMTIxLCAgIDAs
IDI1NV0sIDEwKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBi
ZSBubyBlcnJvcnMiKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB1cGxvYWRpbmcg
b2YgaW1hZ2VzIHdpdGggSUNDIHByb2ZpbGVzIik7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFD
S19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFsc2UpOwotICBnbC5waXhlbFN0b3JlaShnbC5V
TlBBQ0tfRkxJUF9ZX1dFQkdMLCBmYWxzZSk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19D
T0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0wsIGdsLk5PTkUpOwotCi0gIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAg
ICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bp
bi1wcm9maWxlLmpwZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNo
b3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1
YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIC8vIFRoZSBpbWFnZSBpcyByZWQuICBIb3dldmVyLCBp
ZiB3ZSBpZ25vcmUgdGhlIGNvbG9yIHByb2ZpbGUsIGl0IGlzIGJsdWUuCi0gIGNoZWNrUGl4ZWxS
YW5nZShidWYsIG1pZGRsZSwgY2VudGVyLCBbIDAsIDAsIDI1NSwgMjU1XSwgMTApOwotCi0gIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVE
X0JZVEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13
aXRoLWNvbG9yc3Bpbi1wcm9maWxlLnBuZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJB
bmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIC8vIFRoZSBpbWFnZSBpcyByZWQu
ICBIb3dldmVyLCBpZiB3ZSBpZ25vcmUgdGhlIGNvbG9yIHByb2ZpbGUsIGl0IGlzIGJsdWUuCi0g
IGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2VudGVyLCBbIDAsIDAsIDI1NSwgMjU1XSwg
MTApOwotCi0gIHZhciBpY2NQTkdzID0gWwotICAgICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJl
LXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZycsCi0gICAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVh
cmUtd2l0aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL3NtYWxs
LXNxdWFyZS13aXRoLWUtc3JnYi1wcm9maWxlLnBuZycsCi0gICAgJy4uL3Jlc291cmNlcy9zbWFs
bC1zcXVhcmUtd2l0aC1zbXB0ZS1jLXByb2ZpbGUucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL3Nt
YWxsLXNxdWFyZS13aXRoLXNyZ2ItaWVjNjE5NjYtMi4xLXByb2ZpbGUucG5nJ107Ci0gIGZvciAo
dmFyIGlpID0gMDsgaWkgPCBpY2NQTkdzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBidWYyID0g
bmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLSAgICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAg
ICAgICAgICAgICAgaW1nc1tpY2NQTkdzW2lpXV0pOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgICB3dHUu
Y2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgs
IGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmMik7Ci0gICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMiKTsKLSAgICB2YXIg
c2FtZSA9IHRydWU7Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGJ1Zi5sZW5ndGg7ICsramop
IHsKLSAgICAgIGlmIChidWZbampdICE9IGJ1ZjJbampdKSB7Ci0gICAgICAgIHNhbWUgPSBmYWxz
ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICAgIGFzc2VydE1zZyhzYW1lLCAi
dXBsb2FkaW5nIFBOR3Mgd2l0aCBzYW1lIGRhdGEgYnV0IHZhcmlvdXMgSUNDIHByb2ZpbGVzIHNo
b3VsZCBnZW5lcmF0ZSB0aGUgc2FtZSByZXN1bHRzIik7Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0g
IGRlYnVnKCJjaGVjayB1cGxvYWRpbmcgb2YgaW5kZXhlZCBQTkcgaW1hZ2VzIik7Ci0gIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZydd
KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1Zik7Ci0gIC8vIFRoZSBpbWFnZSBzaG91bGQgYmUgcmVkLgotICBjaGVja1BpeGVsUmFuZ2Uo
YnVmLCBtaWRkbGUsIGNlbnRlciwgWyAyNTUsIDAsIDAsIDI1NSBdLCAxMCk7Ci0KLSAgZGVidWco
IiIpCi0gIGRlYnVnKCJjaGVjayBjYWxsaW5nIHRleEltYWdlMkQgd2l0aCBOVUxMIGNsZWFycyB0
aGUgdGV4dHVyZSIpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwK
LSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvcmVkLWluZGV4ZWQucG5nJ10ud2lk
dGgsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZydd
LmhlaWdodCwKLSAgICAgICAgICAgICAgICAwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVy
cm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGds
LnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgYnVmKTsKLSAgLy8gVGhlIGltYWdlIHNob3VsZCBiZSB3aGl0ZS4KLSAgY2hlY2tQaXhlbFJh
bmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgMCwgMCwgMCwgMjU1IF0sIDEwKTsKLQotICBkZWJ1
ZygiIik7Ci0gIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gIHNob3VsZEJlVHJ1ZSgic3Vj
Y2Vzc2Z1bGx5UGFyc2VkIik7Ci0gIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVT
VCBDT01QTEVURTwvc3Bhbj4nKTsKLSAgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKTsKLX0KLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pcG1hcC1mYm8uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlw
bWFwLWZiby5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDI1ZDBiM2UxYzMy
YTg0ODUyM2Q3Mzc3YzMyMzk3M2FlNzYyODJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJp
Z2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5k
IHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioK
LSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiog
TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVS
SUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+VGVzdHMgaWYgbWlwbWFwIGdlbmVyYXRp
b24gb24gYSB0ZXh0dXJlIGZpbGxlZCBieSBhbiBGQk8gd29ya3MgY29ycmVjdGx5PC90aXRsZT4K
LSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+IDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFt
cGxlIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJp
Y3QiOwotZnVuY3Rpb24gaW5pdCgpewotICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAg
ICBkZXNjcmlwdGlvbigpOwotCi0gICAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhh
bXBsZSIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQot
ICAgIC8vIHNldHVwIHJlbmRlciB0YXJnZXQgdGV4dHVyZSAvLwotICAgIHZhciB0ZXh0dXJlID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7Ci0gICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIDIsIDIsIDAsIGdsLlJHQiwg
Z2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgLy8gc2V0dXAgZnJhbWVidWZmZXIgLy8K
LSAgICB2YXIgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXh0
dXJlLCAwKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwot
ICAgICAgICAgICAgICAgIAotICAgIC8vIGZpbGwgdGhlIGZyYW1lYnVmZmVyIC8vCi0gICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGdsLmNsZWFyQ29sb3Io
MSwgMCwgMSwgMSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7Ci0gICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKLSAgICAgICAgICAgICAgICAK
LSAgICAvLyBnZW5lcmF0ZSBtaXBtYXAgLy8KLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXh0dXJlKTsKLSAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLQot
ICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLSAgICAgICAgICAgICAgICAK
LSAgICAvLyByZWFkYmFjayAvLwotICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgWzI1NSwgMCwgMjU1
LCAyNTVdKTsKLX0KLQotaW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjQxODViNWQyYjE1M2YxZDk0OWY1ZGY0N2NhMzZmZGFlNTYxZTU4
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTU3ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwot
Ci0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHRpdGxlPldlYkdMIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVz
dHM8L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3Rv
cC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLS8vIFRoaXMgZnVuY3Rp
b24gcmV0dXJucyB0aGUgbGFzdCAyIHdvcmRzIG9mIHRoZSBkb21haW4gb2YgYSBVUkwKLS8vIFRo
aXMgaXMgcHJvYmFibHkgbm90IHRoZSBjb3JyZWN0IGNoZWNrIGJ1dCBpdCB3aWxsIGRvIGZvciBu
b3cuCi1mdW5jdGlvbiBnZXRCYXNlRG9tYWluKHN0cikgewotICBzdHIgPSBzdHIucmVwbGFjZSgi
XFwiLCAiLyIpOwotICB2YXIgcG9zID0gc3RyLmluZGV4T2YoIjovLyIpOwotICBpZiAocG9zID49
IDApIHsKLSAgICBzdHIgPSBzdHIuc3Vic3RyKHBvcyArIDMpOwotICB9Ci0gIHZhciBwYXJ0cyA9
IHN0ci5zcGxpdCgnLycpOwotICB2YXIgZG9tYWluID0gcGFydHNbMF0ubWF0Y2goL1x3K1wuXHcr
JC8pOwotICByZXR1cm4gZG9tYWluIHx8ICcnOwotfQotCi0vLyBDaGVja3MgaWYgZnVuY3Rpb24g
dGhyb3dzIGFuIGV4Y2VwdGlvbi4KLWZ1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihmdW5jKSB7Ci0g
IHZhciBoYWRFeGNlcHRpb24gPSBmYWxzZTsKLSAgdHJ5IHsKLSAgICBmdW5jKCk7Ci0gIH0gY2F0
Y2goZSkgewotICAgIGhhZEV4Y2VwdGlvbiA9IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGhhZEV4Y2Vw
dGlvbjsKLX0KLQotdmFyIGltZ0RvbWFpbjsKLXZhciBwYWdlRG9tYWluOwotdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZDsKLQotd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBwcm9wZXIg
c2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLiIpOwotICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImltZyIpOwotICBhc3NlcnRNc2coaW1nLndpZHRoID4gMCAmJiBpbWcuaGVpZ2h0
ID4gMCwgImltZyB3YXMgbG9hZGVkIik7Ci0gIGltZ0RvbWFpbiA9IGdldEJhc2VEb21haW4oaW1n
LnNyYyk7Ci0gIHBhZ2VEb21haW4gPSBnZXRCYXNlRG9tYWluKHdpbmRvdy5sb2NhdGlvbi50b1N0
cmluZygpKTsKLSAgYXNzZXJ0TXNnKGltZ0RvbWFpbiAhPSBwYWdlRG9tYWluLAotICAgICAgICAg
ICAgImltZyBkb21haW4gKCIgKyBpbWdEb21haW4gKyAiKSBhbmQgcGFnZSBkb21haW4gKCIgKyBw
YWdlRG9tYWluICsgIikgYXJlIG5vdCB0aGUgc2FtZS4iKTsKLQotICBmdW5jdGlvbiBtYWtlVGV4
SW1hZ2UyRChnbCwgc3JjKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBzcmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVGV4U3ViSW1hZ2UyRChn
bCwgc3JjKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMp
OwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlUmVhZFBpeGVscyhnbCkgewotICAgIHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSg0KTsKLSAg
ICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
YnVmKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRvRGF0YVVSTChjYW52YXMpIHsK
LSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZGF0YSA9IGNhbnZhcy50b0RhdGFV
UkwoKTsKLSAgICB9Ci0gIH0KLQotICB2YXIgY2FudmFzMSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjYW52YXMxIik7Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzMSk7
Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9h
ZCBhbiBpbWFnZSBmcm9tIGFub3RoZXIgb3JpZ2luIHRocm93cyBhbiBleGNlcHRpb24uIik7Ci0g
IHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleCk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
MjU2LCAyNTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICBhc3NlcnRN
c2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAg
ICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2ws
IGltZykpLAotICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1h
Z2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFk
UGl4ZWxzIGFuZCB0b0RhdGFVUkwgY29udGludWUgdG8gd29yayBhZ2FpbnN0IHRoaXMgY2FudmFz
LiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAot
ICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBu
b3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKLSAgYXNzZXJ0
TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMxKSksCi0gICAgICAgICAg
ICAic2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBXZWJHTCBjYW52
YXMsIHdoaWNoIHNob3VsZCBzdGF5IG9yaWdpbiBjbGVhbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sg
dGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhIHRhaW50ZWQgY2FudmFzIHRocm93cyBhbiBleGNl
cHRpb24uIik7Ci0gIHZhciBjYW52YXMyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZh
czIiKTsKLSAgdmFyIGN0eDJkID0gY2FudmFzMi5nZXRDb250ZXh0KCIyZCIpOwotICBjdHgyZC5k
cmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVG9E
YXRhVVJMKGNhbnZhczIpKSwKLSAgICAgICAgICAgICJzaG91bGQgdGhyb3cgZXhjZXB0aW9uIGJ5
IHRvRGF0YVVSTCBmb3IgTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyhj
YXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGNhbnZhczIpKSwKLSAgICAgICAgICAg
ICJ0ZXhJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4
Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2Uy
RChnbCwgY2FudmFzMikpLAotICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBOT04gb3Jp
Z2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRlYnVnKCJj
aGVjayB0aGF0IHJlYWRQaXhlbHMgYW5kIHRvRGF0YVVSTCBjb250aW51ZSB0byB3b3JrIGFnYWlu
c3QgdGhpcyBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFk
UGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cg
ZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2FudmFz
LiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZhczEp
KSwKLSAgICAgICAgICAgICJzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwg
Zm9yIFdlYkdMIGNhbnZhcywgd2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2luIGNsZWFuLiIpOwotCi0g
IC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRlby4KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIENP
UlMgc3VwcG9ydC4KLQotICBkZWJ1ZygiIik7Ci0gIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Ci0gIHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7Ci0gIGRlYnVnKCc8YnIgLz48
c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKLSAgbm90aWZ5RmluaXNo
ZWRUb0hhcm5lc3MoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxjYW52YXMgaWQ9
ImNhbnZhczEiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iY2FudmFzMiI+PC9jYW52YXM+Ci08aW1n
IGlkPSJpbWciIHNyYz0iaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGci
IHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1h
cnJheS1idWZmZXItdmlldy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZjc0ZGY2NGViYmU5MTk4MGM0NTE1NjFhODBhNjY3MDQ2
ZTE3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFy
cmF5LWJ1ZmZlci12aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCEt
LQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoq
Ci0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
LSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCdWZXJpZmllcyB0ZXhJbWFnZTJE
IGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEFycmF5QnVmZmVyVmlldycpOwot
Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleHR1cmVM
b2MgPSBudWxsOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotCi1mdW5jdGlvbiBy
b3VuZFVwVG9BbGlnbm1lbnQodmFsdWUsIGFsaWdubWVudCkgewotICByZXR1cm4gTWF0aC5mbG9v
cigodmFsdWUgKyBhbGlnbm1lbnQgLSAxKSAvIGFsaWdubWVudCkgKiBhbGlnbm1lbnQ7Ci19Ci0K
LWZ1bmN0aW9uIGdlbmVyYXRlUkdCQURhdGEodHlwZSwgdW5wYWNrQWxpZ25tZW50LCBzb3VyY2VE
YXRhLCB3aWR0aCwgaGVpZ2h0KQotewotICAgIHZhciBudW1Db2xvcnMgPSBzb3VyY2VEYXRhLmxl
bmd0aCAvIDQ7Ci0gICAgdmFyIGNvbG9yT2Zmc2V0ID0gZnVuY3Rpb24oeSkgewotICAgICAgcmV0
dXJuIDQgKiBNYXRoLmZsb29yKHkgKiBudW1Db2xvcnMgLyBoZWlnaHQpOwotICAgIH07Ci0KLSAg
ICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6IHsKLSAgICAgICAg
dmFyIHJvd1dpZHRoID0gcm91bmRVcFRvQWxpZ25tZW50KHdpZHRoICogNCwgdW5wYWNrQWxpZ25t
ZW50KTsKLSAgICAgICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShoZWlnaHQgKiByb3dXaWR0
aCk7Ci0gICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKLSAgICAgICAg
ICAgIHZhciBpbmRleCA9IHkgKiByb3dXaWR0aDsKLSAgICAgICAgICAgIHZhciBvZmZzZXQgPSBj
b2xvck9mZnNldCh5KTsKLSAgICAgICAgICAgIGZvciAodmFyIGVsZW1lbnQgPSAwOyBlbGVtZW50
IDwgd2lkdGggKiA0OyArK2VsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICBkYXRhW2luZGV4ICsg
ZWxlbWVudF0gPSBzb3VyY2VEYXRhW29mZnNldCArIGVsZW1lbnQgJSA0XTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZGF0YTsKLSAgICB9Ci0gICAgY2FzZSBnbC5V
TlNJR05FRF9TSE9SVF80XzRfNF80OiB7Ci0gICAgICAgIHZhciByb3dXaWR0aCA9IHJvdW5kVXBU
b0FsaWdubWVudCh3aWR0aCAqIDIsIHVucGFja0FsaWdubWVudCkgLyAyOwotICAgICAgICB2YXIg
ZGF0YSA9IG5ldyBVaW50MTZBcnJheShoZWlnaHQgKiByb3dXaWR0aCk7Ci0gICAgICAgIGZvciAo
dmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKLSAgICAgICAgICAgIHZhciBvZmZzZXQgPSBj
b2xvck9mZnNldCh5KTsKLSAgICAgICAgICAgIGZvciAodmFyIHggPSAwOyB4IDwgd2lkdGg7ICsr
eCkgewotICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHkgKiByb3dXaWR0aCArIHg7Ci0gICAg
ICAgICAgICAgICAgZGF0YVtpbmRleF0gPSAoKChzb3VyY2VEYXRhW29mZnNldCArIDBdICYgMHhG
MCkgPDwgOCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zm
c2V0ICsgMV0gJiAweEYwKSA8PCA0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgo
c291cmNlRGF0YVtvZmZzZXQgKyAyXSAmIDB4RjApID4+IDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgKChzb3VyY2VEYXRhW29mZnNldCArIDNdICYgMHhGMCkgPj4gNCkpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0KLSAgICBj
YXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6IHsKLSAgICAgICAgdmFyIHJvd1dpZHRoID0g
cm91bmRVcFRvQWxpZ25tZW50KHdpZHRoICogMiwgdW5wYWNrQWxpZ25tZW50KSAvIDI7Ci0gICAg
ICAgIHZhciBkYXRhID0gbmV3IFVpbnQxNkFycmF5KGhlaWdodCAqIHJvd1dpZHRoKTsKLSAgICAg
ICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgewotICAgICAgICAgICAgdmFyIG9m
ZnNldCA9IGNvbG9yT2Zmc2V0KHkpOwotICAgICAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCB3
aWR0aDsgKyt4KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJvd1dpZHRoICsg
eDsKLSAgICAgICAgICAgICAgICBkYXRhW2luZGV4XSA9ICgoKHNvdXJjZURhdGFbb2Zmc2V0ICsg
MF0gJiAweEY4KSA8PCA4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNl
RGF0YVtvZmZzZXQgKyAxXSAmIDB4RjgpIDw8IDMpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgKChzb3VyY2VEYXRhW29mZnNldCArIDJdICYgMHhGOCkgPj4gMikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgM10gJiAweDgwKSA+PiA3
KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0gICAg
fQotICAgIH0KLX0KLQotZnVuY3Rpb24gdHlwZVRvU3RyaW5nKHR5cGUpCi17Ci0gICAgc3dpdGNo
ICh0eXBlKSB7Ci0gICAgY2FzZSBnbC5VTlNJR05FRF9CWVRFOiAgICAgICAgICAgcmV0dXJuICdV
TlNJR05FRF9CWVRFJzsKLSAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6ICByZXR1
cm4gJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnOwotICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRf
NF80XzRfNDogIHJldHVybiAnVU5TSUdORURfU0hPUlRfNF80XzRfNCc7Ci0gICAgfQotICAgIHJl
dHVybiAnVW5rbm93biB0eXBlICcgKyB0eXBlOwotfQotCi1mdW5jdGlvbiBydW5PbmVJdGVyYXRp
b24odXNlVGV4U3ViSW1hZ2UyRCwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmbGlwWSwgcHJlbXVs
dGlwbHlBbHBoYSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBleHRyYUNvbG9yKQotewotICAgIGRl
YnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJEJyA6ICd0
ZXhJbWFnZTJEJykgKwotICAgICAgICAgICcgd2l0aCB0eXBlPScgKyB0eXBlVG9TdHJpbmcodHlw
ZSkgKwotICAgICAgICAgICcsIHVucGFja0FsaWdubWVudD0nICsgdW5wYWNrQWxpZ25tZW50ICsK
LSAgICAgICAgICAnLCBmbGlwWT0nICsgZmxpcFkgKyAnLCBwcmVtdWx0aXBseUFscGhhPScgKyBw
cmVtdWx0aXBseUFscGhhKTsKLSAgICBnbC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1
ZSk7Ci0gICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAxLjApOwotICAgIGdsLmNsZWFyKGdsLkNP
TE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAvLyBFbmFibGUgd3Jp
dGVzIHRvIHRoZSBSR0IgY2hhbm5lbHMKLSAgICBnbC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1
ZSwgZmFsc2UpOwotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIC8v
IEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJz
Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxU
RVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAgIGds
LnBpeGVsU3RvcmVpKGdsLlVOUEFDS19BTElHTk1FTlQsIHVucGFja0FsaWdubWVudCk7Ci0gICAg
Z2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkpOwotICAgIGdsLnBp
eGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgcHJlbXVsdGlwbHlB
bHBoYSk7Ci0gICAgLy8gR2VuZXJhdGUgdGhlIGRhdGEKLSAgICB2YXIgc291cmNlRGF0YSA9IFsg
MjU1LCAgIDAsICAgMCwgMjU1LAotICAgICAgICAgICAgICAgICAgICAgICAwLCAgIDI1NSwgICAw
LCAgIDAgXTsKLSAgICB2YXIgdGV4V2lkdGggPSA1OyAgIC8vIHRoaXMgbXVzdCBiZSBtb2QgNCAr
IDEgdG8gdGVzdCB1bnBhY2tBbGlnbm1lbnQKLSAgICB2YXIgdGV4SGVpZ2h0ID0gMTY7Ci0gICAg
dmFyIGRhdGEgPSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdubWVudCwgc291cmNl
RGF0YSwgdGV4V2lkdGgsIHRleEhlaWdodCk7Ci0gICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wu
Tk9fRVJST1IpCi0gICAgICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGJlZm9yZSB0ZXh0dXJlIHVw
bG9hZCIpOwotICAgIC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQotICAgIGlm
ICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUg
dG8gYmxhY2sgZmlyc3QKLSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCAwLAotICAgICAgICAgICAgICAgICAgICAgIGds
LlJHQkEsIHR5cGUsIG51bGwpOwotICAgICAgICBpZiAoZ2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19F
UlJPUikKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGFmdGVyIHRleEltYWdlMkQo
bnVsbCkiKTsKLSAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAw
LCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKLSAgICAgICAgaWYg
KGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJH
TCBlcnJvciBhZnRlciB0ZXhTdWJJbWFnZTJEIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0
LCAwLCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKLSAgICAgICAgaWYgKGdsLmdldEVycm9yKCkgIT0g
Z2wuTk9fRVJST1IpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBhZnRlciB0ZXhJ
bWFnZTJEIik7Ci0gICAgfQotCi0gICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0
ZXh0dXJlIHVuaXQgMAotICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAvLyBE
cmF3IHRoZSB0cmlhbmdsZXMKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAw
LCAwLCAyNTVdKTsKLQotICAgIC8vIENoZWNrIHRoZSB0b3AgcGl4ZWwgYW5kIGJvdHRvbSBwaXhl
bCBhbmQgbWFrZSBzdXJlIHRoZXkgaGF2ZQotICAgIC8vIHRoZSByaWdodCBjb2xvci4KLSAgICB2
YXIgdGVzdFdpZHRoICA9IGdsLmRyYXdpbmdCdWZmZXJXaWR0aDsKLSAgICB2YXIgdGVzdEhlaWdo
dCA9IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgLyAyOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3Qo
Z2wsIDAsIDAsIHRlc3RXaWR0aCwgdGVzdEhlaWdodCwgYm90dG9tQ29sb3IsICJib3R0b20gcGl4
ZWwgc2hvdWxkIGJlICIgKyBib3R0b21Db2xvcik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChn
bCwgMCwgdGVzdEhlaWdodCwgdGVzdFdpZHRoLCB0ZXN0SGVpZ2h0LCB0b3BDb2xvciwgInRvcCBw
aXhlbCBzaG91bGQgYmUgIiArIHRvcENvbG9yKTsKLQotICAgIC8vIENoYW5nZSBwYXJ0IG9mIHRo
ZSB0ZXh0dXJlLgotICAgIHZhciBwYXJ0V2lkdGggPSA4OwotICAgIHZhciBwYXJ0SGVpZ2h0ID0g
MTY7Ci0gICAgLy8gbWFrZSB0ZXh0dXJlIGRvdWJsZSByZXMgb2YgcGFydC4KLSAgICB2YXIgZGF0
YSA9IGdlbmVyYXRlUkdCQURhdGEodHlwZSwgdW5wYWNrQWxpZ25tZW50LCBzb3VyY2VEYXRhLCBw
YXJ0V2lkdGggKiAyLCBwYXJ0SGVpZ2h0ICogMik7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBwYXJ0V2lkdGggKiAyLCBwYXJ0SGVpZ2h0ICogMiwgMCwgZ2wu
UkdCQSwgdHlwZSwgZGF0YSk7Ci0gICAgLy8gc2V0IHBhcnQuCi0gICAgdmFyIGV4dHJhRGF0YSA9
IFsKLSAgICAgIDI1NSwgICAwLCAgIDAsIDI1NSwKLSAgICAgICAgMCwgICAwLCAyNTUsICAgMAot
ICAgIF07Ci0gICAgdmFyIGRhdGEgPSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdu
bWVudCwgZXh0cmFEYXRhLCBwYXJ0V2lkdGgsIHBhcnRIZWlnaHQpOwotICAgIGdsLnRleFN1Yklt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0LCBnbC5S
R0JBLCB0eXBlLCBkYXRhKTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAw
LCAwLCAyNTVdKTsKLSAgICB2YXIgaGFsZldpZHRoICA9IGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAv
IDI7Ci0gICAgdmFyIGhhbGZIZWlnaHQgPSBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IC8gMjsKLSAg
ICB2YXIgcXVhcnRlckhlaWdodCA9IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgLyA0OwotICAgIHZh
ciByZWQgPSBbMjU1LCAwLCAwLCAyNTVdOwotICAgIHZhciB0Y29sb3IwID0gZmxpcFkgPyBleHRy
YUNvbG9yIDogcmVkOwotICAgIHZhciB0Y29sb3IxID0gZmxpcFkgPyByZWQgOiBleHRyYUNvbG9y
OwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIGhhbGZXaWR0aCwgcXVhcnRlckhl
aWdodCwgdGNvbG9yMCwgImJvdHRvbSBsZWZ0IGJvdHRvbSBwaXhlbHMgc2hvdWxkIGJlICIgKyB0
Y29sb3IwKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBxdWFydGVySGVpZ2h0LCBo
YWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRjb2xvcjEsICJib3R0b20gbGVmdCB0b3AgcGl4ZWxz
IHNob3VsZCBiZSAiICsgdGNvbG9yMSk7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaGFs
ZldpZHRoLCAwLCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIGJvdHRvbUNvbG9yLCAiYm90dG9tIHJp
Z2h0IHBpeGVscyBzaG91bGQgYmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICB3dHUuY2hlY2tDYW52
YXNSZWN0KGdsLCAwLCBoYWxmSGVpZ2h0LCB0ZXN0V2lkdGgsIGhhbGZIZWlnaHQsIHRvcENvbG9y
LCAidG9wIHBpeGVscyBzaG91bGQgYmUgIiArIHRvcENvbG9yKTsKLSAgICAvLyBzZXQgZmFyIGNv
cm5lci4KLSAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHBhcnRXaWR0aCwg
cGFydEhlaWdodCwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsK
LSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLSAgICB3
dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBoYWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRj
b2xvcjAsICJib3R0b20gbGVmdCBib3R0b20gcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMCk7
Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgcXVhcnRlckhlaWdodCwgaGFsZldpZHRo
LCBxdWFydGVySGVpZ2h0LCB0Y29sb3IxLCAiYm90dG9tIGxlZnQgdG9wIHBpeGVscyBzaG91bGQg
YmUgIiArIHRjb2xvcjEpOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGhhbGZXaWR0aCwg
MCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0LCBib3R0b21Db2xvciwgImJvdHRvbSBsZWZ0IHBpeGVs
cyBzaG91bGQgYmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGds
LCAwLCBoYWxmSGVpZ2h0LCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIHRvcENvbG9yLCAidG9wIHJp
Z2h0IHBpeGVscyBzaG91bGQgYmUgIiArIHRvcENvbG9yKTsKLSAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwg
dGNvbG9yMCwgInRvcCByaWdodCBib3R0b20gcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMCk7
Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0ICsgcXVh
cnRlckhlaWdodCwgaGFsZldpZHRoLCBxdWFydGVySGVpZ2h0LCB0Y29sb3IxLCAidG9wIHJpZ2h0
IHRvcCBwaXhlbHMgc2hvdWxkIGJlICIgKyB0Y29sb3IxKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVz
dCgpCi17Ci0gICAgdmFyIHJlZCA9IFsyNTUsIDAsIDAsIDI1NV07Ci0gICAgdmFyIGdyZWVuID0g
WzAsIDI1NSwgMCwgMjU1XTsKLSAgICB2YXIgYmx1ZSA9IFswLCAwLCAyNTUsIDI1NV07Ci0gICAg
dmFyIHJlZFByZW11bHRpcGx5QWxwaGEgPSBbMjU1LCAwLCAwLCAyNTVdOwotICAgIHZhciBncmVl
blByZW11bHRpcGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKLSAgICB2YXIgYmx1ZVByZW11bHRp
cGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKLQotICAgIHZhciB0eXBlcyA9IFsgZ2wuVU5TSUdO
RURfQllURSwgZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMSwgZ2wuVU5TSUdORURfU0hPUlRfNF80
XzRfNCBdOwotICAgIHZhciB1bnBhY2tBbGlnbm1lbnRzID0gWyAxLCAyLCA0LCA4IF07Ci0KLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciB0
eXBlID0gdHlwZXNbaV07Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdW5wYWNrQWxpZ25t
ZW50cy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgdmFyIHVucGFja0FsaWdubWVudCA9IHVu
cGFja0FsaWdubWVudHNbal07Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHR5
cGUsIHVucGFja0FsaWdubWVudCwgdHJ1ZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVkLCBncmVlbiwgYmx1ZSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFs
c2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdyZWVuLCByZWQsIGJsdWUpOwotICAgICAgICAgICAgcnVuT25lSXRlcmF0
aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIHRydWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFs
cGhhLCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24o
ZmFsc2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIHRydWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFscGhh
LCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24odHJ1
ZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCB0cnVlLCBmYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWQsIGdyZWVuLCBibHVlKTsKLSAgICAgICAgICAgIHJ1bk9uZUl0ZXJhdGlv
bih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCBmYWxzZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncmVlbiwgcmVkLCBibHVlKTsKLSAgICAgICAgICAgIHJ1bk9uZUl0
ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIHRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBs
eUFscGhhLCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRp
b24odHJ1ZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmYWxzZSwgdHJ1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncmVlblByZW11bHRpcGx5QWxwaGEsIHJlZFByZW11bHRpcGx5QWxw
aGEsIGJsdWVQcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgfQotICAgIH0KLQotfQotCi12YXIg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5z
ZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLXRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24ocHJvZ3JhbSwgInRleCIpOwotCi1ydW5UZXN0KCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52
YXMtcmdiNTY1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYjU2NS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0ODkwOGQ4ZDc5ZTlmM2UwYTZmOGFlZDQzMzgwZTliOTkyNWVkM2I0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiNTY1
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5
cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu
ZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFs
cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0
aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3Ry
aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBh
bmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0q
KgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp
Y2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y
dGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0q
KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFU
RVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0
KCJSR0IiLCAiVU5TSUdORURfU0hPUlRfNV82XzUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2Jh
NDQ0NC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmQzOGVkMzUwNWM3Mjcw
ZjIwOGE2NWU0Mzg4ZmQ4OGZlNGFhNDJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTQ0NDQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgot
KioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtY2FudmFzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlv
biB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRf
NF80XzRfNCIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
MzIiIGhlaWdodD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
Y2FudmFzLXJnYmE1NTUxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYmE1NTUxLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU5MGEzOGEwNjYwMDRhNGE0ZTMyMDE1YTUxOWU3ZGQ4NzBjNjhh
NTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZh
cy1yZ2JhNTU1MS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0v
KgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
Ci0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
Ci0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewot
ICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dl
bmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF81XzVfNV8xIiwgdGVzdFByb2xvZ3Vl
KSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52
YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUyMzJiMWYzMDdkZTlhZDI0ZTcw
M2YxMzY2NzA5ZTIxMjU0ZjYxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtY2FudmFzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08
IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgot
KioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRl
YWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv
ZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1h
dGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFU
RVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD
T05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJ
TiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBE
RUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3Vl
KGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZVEUiLCB0ZXN0UHJvbG9ndWUp
KCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjA5ZjM5MGUyYWY5MDg0NDQ5ZWRiNTI2OGVmNzU2MTU4OWVlMmJhOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAo
YykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoq
IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwot
KiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoq
IE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMu
Ci0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
InVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRy
dWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJS
R0IiLCAiVU5TSUdORURfU0hPUlRfNV82XzUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBp
ZD0idGV4Y2FudmFzIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdi
YTQ0NDQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmExZDI0M2Y1YzZjZmM3
YTZjODQ4MmNlYmZiMmM0YjY5NjE1MDFiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0NC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNTAgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
Ci0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgot
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1pbWFnZS1kYXRhLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7
Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdO
RURfU0hPUlRfNF80XzRfNCIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJ0ZXhjYW52
YXMiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmJkMDFkNmMyY2M2ZWZhNjQwN2Q2NmRm
MWVlNjNkMGE4YjMwMjk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCAr
MCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg
YW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxz
IiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp
bmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs
IGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0q
KiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWlt
YWdlLWRhdGEuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9u
IHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF81
XzVfNV8xIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9
IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMSIg
aGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg5YTQ2ODBiOGE4NmM2NzI4NThhYTlmN2M0M2E0YTJkODVlYThhZmEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGls
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JB
IiwgIlVOU0lHTkVEX0JZVEUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0idGV4Y2Fu
dmFzIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtaW1hZ2UtcmdiNTY1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiNTY1Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg1MDI1YjE4NWQ0YTQwMmRlMTNkMTExNzRiMjU1NmE0NmU0M2Ey
NWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LXJnYjU2NS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgot
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0q
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0q
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJh
dGVUZXN0KCJSR0IiLCAiVU5TSUdORURfU0hPUlRfNV82XzUiLCAiLi4iLCB0ZXN0UHJvbG9ndWUp
KCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0NDQ0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
aW1hZ2UtcmdiYTQ0NDQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2MzM2I0
ODJkODM5MTQ4YjhlM2YzMzk0ZThmNzIyZGE1OThmY2E1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTQ0NDQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
LSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
LSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0t
LT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsK
LWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05F
RF9TSE9SVF80XzRfNF80IiwgIi4uIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNTU1MS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE1NTUxLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwNDA1NTRjNTE1MzA4YzYxYmZjNWQ4Y2Zi
ZDZkMzU5ODkyMzczODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWltYWdlLXJnYmE1NTUxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBA
Ci08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9n
dWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNV81XzVfMSIsICIu
LiIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhl
aWdodD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1pbWFnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGYyZDU1
ZDM0OWIwYjMyZTdjZWJiNDMzZTlmNmRmM2M2NWY4M2Q5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVy
aWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j
bHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Ig
c2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwot
KiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBp
biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0q
KgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U
WSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg
TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB
TiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N
LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBV
U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1pbWFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24g
dGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZVEUiLCAi
Li4iLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBo
ZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVv
LXJnYjU2NS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYjU2NS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYWMxMWUyNjk2YzJiMzRhNTk5ZmM3YWRlZjYzZmM5Y2ZmOTQyZmMwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
LSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0q
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
LSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1
c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVl
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdC
IiwgIlVOU0lHTkVEX1NIT1JUXzVfNl81IiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE0NDQ0Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOTExYWEwMzc2Y2VmZDk1YmE3ZTYw
NjdhMTQ5ZDRjYmE2Nzg2ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLXZpZGVvLXJnYmE0NDQ0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCww
IEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
LSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQot
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVv
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJv
bG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNF80XzRfNCIs
IHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdo
dD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdi
YTU1NTEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNTU1MS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyN2VmNjJmZjdkOGZiYzFkNmM3ZDkyZDkyZjI2ZDU2OTI3N2VhZTUwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNTU1MS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJp
Z2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5k
IHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioK
LSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiog
TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVS
SUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
InVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRy
dWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJS
R0JBIiwgIlVOU0lHTkVEX1NIT1JUXzVfNV81XzEiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjVjNGE3ZjUzNGI2OWJmYjlmZDhlMjRhNzNkNDAzMzUwNGY2
OTA5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlk
ZW8uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENv
cHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
LSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
LSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rl
eC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVy
biB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVz
dCgiUkdCQSIsICJVTlNJR05FRF9CWVRFIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11
bmlmb3JtLWJpbmRpbmctYnVncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI3ZjcwZTFkMWQ1YWI2NDRhNmMzYzZhYmNlMDA0MTRkNjBhZmZkZjEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08IS0tCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEy
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBv
ZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0
cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBN
YXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklM
SVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJ
QUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0t
LT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLQotZGVz
Y3JpcHRpb24oJ1Rlc3RzIHBhc3NpbmcgYSB2ZWM0IHRvIGEgdW5pZm9ybSBhbmQgYSBjYW52YXMg
dG8gdGV4SW1hZ2UyRCcpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KCk7Ci12YXIgZmxvYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFt
RnJvbUZpbGUoZ2wsICIuLi9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4v
cmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJn
bC51c2VQcm9ncmFtKGZsb2F0UHJvZ3JhbSkiKTsKLXZhciBmdmFsNExvYyA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsNCIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZ2wudW5pZm9ybTRmdihmdmFsNExvYywg
bmV3IEZsb2F0MzJBcnJheShbMC4xLCAwLjIsIDAuNCwgMS4wXSkpOyIpOwotCi12YXIgdG1wY2Fu
dmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci10bXBjYW52YXMud2lkdGgg
PSAyOwotdG1wY2FudmFzLmhlaWdodCA9IDI7Ci12YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXh0dXJlKSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdG1wY2FudmFzKSIpOwot
Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LXdlYmdsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13ZWJnbC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjhiNzUxZDc1ZjcxNDZkNjc2OWVk
YmVjODhhMzBhMDE4N2I4YmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCB0ZXhJbWFnZTJEIGZyb20gV2ViR0wgY29uZm9y
bWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAyNTZweDsgaGVp
Z2h0OiA0OHB4OyI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJzb3VyY2UiIHdpZHRoPSIyNTYiIGhl
aWdodD0iMTYiIHN0eWxlPSJ3aWR0aDogMjU2cHg7IGhlaWdodDogNDhweDsiPjwvY2FudmFzPgot
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08
c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oIlRlc3QgdGV4SW1hZ2UyRCBmcm9t
IGEgd2ViZ2wgY2FudmFzLiIpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotZ2wuZGlzYWJsZShnbC5ESVRIRVIpOwot
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotdmFyIGdsMSA9IHd0dS5j
cmVhdGUzRENvbnRleHQoInNvdXJjZSIpOwotZ2wxLmRpc2FibGUoZ2wuRElUSEVSKTsKLQotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBz
ZXR1cC4iKTsKLWdsRXJyb3JTaG91bGRCZShnbDEsIGdsMS5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci1nbC5kaXNh
YmxlKGdsLkRFUFRIX1RFU1QpOwotCi1nbDEuY2xlYXJDb2xvcigxLjAsIDAuMCwgMC4wLCAxLjAp
OwotZ2wxLmNsZWFyKGdsMS5DT0xPUl9CVUZGRVJfQklUKTsKLQotdmFyIHRleCA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci1nbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRF
LCBnbDEuY2FudmFzKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLWds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5M
SU5FQVIpOwotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLQotd3R1LmNoZWNrQ2FudmFz
KGdsLCBbMjU1LCAwLCAwLCAyNTVdLCAiQ2FudmFzIHNob3VsZCBiZSByZWQiKTsKLQotZ2wxLmNs
ZWFyQ29sb3IoMC4wLCAxLjAsIDAuMCwgMS4wKTsKLWdsMS5jbGVhcihnbDEuQ09MT1JfQlVGRkVS
X0JJVCk7Ci0KLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0Is
IGdsLlVOU0lHTkVEX0JZVEUsIGdsMS5jYW52YXMpOwotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFk
KGdsKTsKLQotd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAiQ2FudmFzIHNo
b3VsZCBiZSBncmVlbiIpOwotCi1kZWJ1ZygiIik7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc3MWVmNjA5ZDMyMWNjZDQwMDVl
Y2M2NzhkMDQ0YWVmYjgxZTZlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZvcm1h
dC1hbmQtdHlwZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQ3ICswLDAgQEAKLTwhLS0KLQot
LyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9wbmdsaWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12
YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleHR1cmVMb2Mg
PSBudWxsOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotCi0vLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLS8vIEhhcm5lc3MKLQotdmFyIHRlc3RDYXNlcyA9IFtdOwotCi12YXIgRGF0YU1vZGUgPSB7
Ci0gICAgSU1BR0U6IDAsCi0gICAgSU1BR0VfREFUQTogMSwKLQotICAgIE5VTV9IVE1MX01PREVT
OiAyLAotCi0gICAgUkFXX0RBVEE6IDIsCi0KLSAgICAvLyBUaGlzIG11c3QgcmVtYWluIHRoZSBs
YXN0IG1vZGUuCi0gICAgTlVNX01PREVTOiAzCi19OwotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAg
ICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICBkZXNjcmlwdGlvbign
VmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgYm90
aCBIVE1MIGFuZCB1c2VyLXNwZWNpZmllZCBkYXRhIHdpdGggYWxsIGZvcm1hdC90eXBlIGNvbWJp
bmF0aW9ucycpOwotCi0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
eGFtcGxlIik7Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gICAgZ2wu
ZGlzYWJsZShnbC5ESVRIRVIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRR
dWFkKGdsKTsKLQotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMSk7Ci0gICAgZ2wuY2xlYXJEZXB0
aCgxKTsKLSAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKLQotICAgIHRleHR1cmVMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotCi0gICAgaW5pdGlhbGl6ZVRlc3Rz
KCk7Ci19Ci0KLWZ1bmN0aW9uIGluaXRpYWxpemVUZXN0cygpCi17Ci0gICAgLy8gVmVyaWZ5IHRo
YXQgdXBsb2FkaW5nIHRvIHBhY2tlZCBwaXhlbCBmb3JtYXRzIHBlcmZvcm1zIHRoZQotICAgIC8v
IHJlcXVpcmVkIGNvbnZlcnNpb24gYW5kIGFzc29jaWF0ZWQgbG9zcyBvZiBwcmVjaXNpb24uCi0g
ICAgZm9yICh2YXIgZGF0YU1vZGUgPSAwOyBkYXRhTW9kZSA8IERhdGFNb2RlLk5VTV9IVE1MX01P
REVTOyArK2RhdGFNb2RlKSB7Ci0gICAgICAgIGZvciAodmFyIHVzZVRleFN1YkltYWdlMkQgPSAw
OyB1c2VUZXhTdWJJbWFnZTJEIDwgMjsgKyt1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAg
ICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAot
ICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAg
ICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKLSAg
ICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBm
b3JtYXQ6IGdsLlJHQkEsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwK
LSAgICAgICAgICAgICAgICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9Nb3JlVGhh
biwKLSAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDEsCi0gICAgICAgICAgICAgICAgbnVtT2Nj
dXJyZW5jZXM6IDEsCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0JBL1VOU0lHTkVE
X0JZVEUgc2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRh
TW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VU
ZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVH
cmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAot
ICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgICAgICAgICAgICB0eXBlOiBn
bC5VTlNJR05FRF9TSE9SVF80XzRfNF80LAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxD
aGFubmVsc0luY3JlYXNlQnlBdExlYXN0LAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMTUs
Ci0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEwLAotICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAiUkdCQS9VTlNJR05FRF9TSE9SVF80XzRfNF80IG11c3QgZHJvcCBsb3cgZm91
ciBiaXRzIG9mIHByZWNpc2lvbiIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENh
c2VzLnB1c2goewotICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAg
ICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAg
ICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAg
ICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAg
ICAgICAgcHJlbXVsdGlwbHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBn
bC5SR0JBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEs
Ci0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeUF0TGVhc3Qs
Ci0gICAgICAgICAgICAgICAgdGhyZXNob2xkOiA3LAotICAgICAgICAgICAgICAgIG51bU9jY3Vy
cmVuY2VzOiAyMCwKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQkEvVU5TSUdORURf
U0hPUlRfNV81XzVfMSBtdXN0IGRyb3AgbG93IHRocmVlIGJpdHMgb2YgcHJlY2lzaW9uIgotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAg
ICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAg
ICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRl
T3BhcXVlR3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBm
YWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgICAgICAgICAgICB0
eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFu
bmVsc0luY3JlYXNlQnlOb01vcmVUaGFuLAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwK
LSAgICAgICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMSwKLSAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIlJHQi9VTlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lv
biBvZiBkYXRhIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7
Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVz
ZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0
aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5l
cmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVt
dWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAg
ICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwKLSAgICAgICAgICAg
ICAgICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5QXRMZWFzdCwKLSAgICAgICAgICAg
ICAgICB0aHJlc2hvbGQ6IDMsCi0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDIwLAot
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUkdCL1VOU0lHTkVEX1NIT1JUXzVfNl81IG11
c3QgZHJvcCBsb3cgdHdvIG9yIHRocmVlIGJpdHMgb2YgcHJlY2lzaW9uIgotICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1v
ZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4
U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAg
IGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNsdWNl
bnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNl
LAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuQUxQSEEsCi0gICAgICAgICAgICAgICAgdHlw
ZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogYWxwaGFDaGFu
bmVsSW5jcmVhc2VzQnlOb01vcmVUaGFuLAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwK
LSAgICAgICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMSwKLSAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIkFMUEhBL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lz
aW9uIG9mIGRhdGEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNo
KHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAg
dXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdp
ZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdl
bmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHBy
ZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5B
TkNFLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAg
ICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeU5vTW9yZVRoYW4sCi0gICAgICAg
ICAgICAgICAgdGhyZXNob2xkOiAxLAotICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAx
LAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTFVNSU5BTkNFL1VOU0lHTkVEX0JZVEUg
c2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTog
ZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJ
bWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVp
Z2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2Nh
bGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAg
ICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNFX0FMUEhBLAotICAgICAgICAgICAgICAgIHR5
cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5u
ZWxzSW5jcmVhc2VCeU5vTW9yZVRoYW4sCi0gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxLAot
ICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxLAotICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiTFVNSU5BTkNFX0FMUEhBL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1
bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIC8vIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCBwaXhlbAotICAgIC8vIHN0b3JlIHBhcmFtZXRlciBhbmQgc2VuZGluZyBkb3duIGEg
emVybyBhbHBoYSBjYXVzZXMgdGhlIGNvbG9yCi0gICAgLy8gY2hhbm5lbHMgdG8gZ28gdG8gemVy
by4KLSAgICBmb3IgKHZhciBkYXRhTW9kZSA9IDA7IGRhdGFNb2RlIDwgRGF0YU1vZGUuTlVNX01P
REVTOyArK2RhdGFNb2RlKSB7Ci0gICAgICAgIGZvciAodmFyIHVzZVRleFN1YkltYWdlMkQgPSAw
OyB1c2VUZXhTdWJJbWFnZTJEIDwgMjsgKyt1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAg
ICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAot
ICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAg
ICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1w
LAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAg
ICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAotICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdM
IHdpdGggUkdCQS9VTlNJR05FRF9CWVRFIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0
ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAg
ICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAg
ICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAg
ICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAot
ICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5SR0JBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JU
XzRfNF80XzQsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJv
LAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhB
X1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9TSE9SVF80XzRfNF80IgotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6
IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3Vi
SW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhl
aWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRH
cmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0g
ICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICAgICAgICAgICAgIHR5cGU6IGds
LlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9y
Q2hhbm5lbHNBcmVaZXJvLAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BS
RU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9TSE9SVF81XzVfNV8xIgot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZldyB0ZXN0cyBh
cmUgaW52YWxpZCBmb3IgdGhlIHJhdyBkYXRhCi0gICAgICAgICAgICAvLyBtb2RlIGJlY2F1c2Ug
dGhlcmUgaXMgZWl0aGVyIG5vIGFscGhhIGNoYW5uZWwgb3Igbm8KLSAgICAgICAgICAgIC8vIHNl
cGFyYXRlIGFscGhhIGNoYW5uZWwuCi0gICAgICAgICAgICBpZiAoZGF0YU1vZGUgIT0gRGF0YU1v
ZGUuUkFXX0RBVEEpIHsKLSAgICAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAg
ICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgdXNl
VGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgICAgICB3
aWR0aDogMjU2LAotICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAg
ICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0gICAg
ICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAg
ICAgIGZvcm1hdDogZ2wuUkdCLAotICAgICAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05F
RF9CWVRFLAotICAgICAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVpl
cm8sCi0gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZ
X0FMUEhBX1dFQkdMIHdpdGggUkdCL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgICAgICBk
YXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgICAg
ICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGds
LlJHQiwKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV82XzUs
Ci0gICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKLSAg
ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFf
V0VCR0wgd2l0aCBSR0IvVU5TSUdORURfU0hPUlRfNV82XzUiCi0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgICAgICBk
YXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgICAg
ICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGds
LkFMUEhBLAotICAgICAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAg
ICAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdM
IHdpdGggQUxQSEEvVU5TSUdORURfQllURSIKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBk
YXRhTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhT
dWJJbWFnZTJELAotICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJh
dGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgICAgIHByZW11bHRp
cGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNF
LAotICAgICAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAg
ICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGgg
TFVNSU5BTkNFL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1v
ZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4
U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAg
IGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJl
bnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUs
Ci0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0VfQUxQSEEsCi0gICAgICAgICAg
ICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjog
Y29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0VfQUxQSEEvVU5TSUdORURf
QllURSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUHJvZHVj
ZSBkYXRhIGZvciBhbGwgdGVzdGNhc2VzLiBCZWNhdXNlIHdlIGxvYWQgaW1hZ2VzLCBzb21lIG9m
Ci0gICAgLy8gdGhlc2UgbWF5IGdlbmVyYXRlIHRoZWlyIGRhdGEgYXN5bmNocm9ub3VzbHkuCi0g
ICAgZ2VuZXJhdGVUZXN0RGF0YSgpOwotfQotCi1mdW5jdGlvbiBnZW5lcmF0ZVRlc3REYXRhKCkK
LXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7IGkrKykgewotICAg
ICAgICB2YXIgdGVzdENhc2UgPSB0ZXN0Q2FzZXNbaV07Ci0gICAgICAgIHZhciB3cmFwcGVyID0g
bnVsbDsKLSAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS5kYXRhTW9kZSkgewotICAgICAgICBjYXNl
IERhdGFNb2RlLklNQUdFOgotICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBJbWFnZVdyYXBwZXIo
dGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBEYXRhTW9kZS5JTUFHRV9EQVRBOgotICAgICAgICAgICAgd3JhcHBlciA9IG5l
dyBJbWFnZURhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGF0YU1vZGUuUkFXX0RBVEE6Ci0gICAgICAg
ICAgICBzd2l0Y2ggKHRlc3RDYXNlLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdO
RURfQllURToKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHRlc3RDYXNlLmZvcm1hdCkgewotICAg
ICAgICAgICAgICAgIGNhc2UgZ2wuUkdCQToKLSAgICAgICAgICAgICAgICAgICAgd3JhcHBlciA9
IG5ldyBSR0JBOERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwot
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGdsLlJHQjoK
LSAgICAgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0I4RGF0YVdyYXBwZXIodGVzdENh
c2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgZ2wuQUxQSEE6Ci0gICAgICAgICAgICAgICAgICAgIHdyYXBw
ZXIgPSBuZXcgQThEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBnbC5MVU1J
TkFOQ0U6Ci0gICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgTDhEYXRhV3JhcHBlcih0
ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBnbC5MVU1JTkFOQ0VfQUxQSEE6Ci0gICAgICAgICAg
ICAgICAgICAgIHdyYXBwZXIgPSBuZXcgTEE4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRl
c3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdO
RURfU0hPUlRfNF80XzRfNDoKLSAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IFJHQkE0NDQ0
RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6
Ci0gICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0JBNTU1MURhdGFXcmFwcGVyKHRlc3RD
YXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAgICAgICAgICAgICB3
cmFwcGVyID0gbmV3IFJHQjU2NURhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5o
ZWlnaHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIHRlc3RDYXNlLndyYXBwZXIgPSB3cmFwcGVyOwotICAgICAgICB0ZXN0Q2FzZS5n
ZW5lcmF0b3Iod3JhcHBlcik7Ci0gICAgICAgIHRlc3RDYXNlLndyYXBwZXIuZ2VuZXJhdGVEYXRh
KCk7Ci0gICAgfQotCi0gICAgLy8gU2VlIHdoZXRoZXIgd2UgbmVlZCB0byBydW4gdGhlIHRlc3Rz
LCBpbiBjYXNlIGFsbCBvZiB0aGVtCi0gICAgLy8gZ2VuZXJhdGVkIHRoZWlyIHJlc3VsdHMgc3lu
Y2hyb25vdXNseS4KLSAgICBtYXliZVJ1blRlc3RzKCk7Ci19Ci0KLXZhciByYW5UZXN0cyA9IGZh
bHNlOwotCi1mdW5jdGlvbiBtYXliZVJ1blRlc3RzKCkKLXsKLSAgICBpZiAoIXJhblRlc3RzKQot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIGlmICghdGVzdENhc2VzW2ldLndyYXBwZXIgfHwgIXRlc3RDYXNlc1tpXS53cmFwcGVy
LmRhdGEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgcmFuVGVzdHMgPSB0cnVlOwot
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpCi0gICAgICAg
IHJ1bk9uZVRlc3QodGVzdENhc2VzW2ldKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdENhc2VUb1N0cmluZyh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgbW9kZTsKLSAgICBz
d2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2RlKSB7Ci0gICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKLSAg
ICAgICAgbW9kZSA9ICJJbWFnZSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRGF0YU1vZGUu
SU1BR0VfREFUQToKLSAgICAgICAgbW9kZSA9ICJJbWFnZURhdGEiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRBOgotICAgICAgICBtb2RlID0gInJhdyBkYXRhIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiAodGVzdENhc2UudXNlVGV4U3ViSW1h
Z2UyRCA/ICJ0ZXhTdWJJbWFnZTJEIiA6ICJ0ZXhJbWFnZTJEIikgKwotICAgICAgICAgICAgIiB3
aXRoICIgKyBtb2RlICsgICIgYXQgIiArIHRlc3RDYXNlLndpZHRoICsgIngiICsgdGVzdENhc2Uu
aGVpZ2h0OwotfQotCi1mdW5jdGlvbiBydW5PbmVUZXN0KHRlc3RDYXNlKQotewotICAgIGRlYnVn
KCJUZXN0aW5nICIgKyB0ZXN0Q2FzZVRvU3RyaW5nKHRlc3RDYXNlKSk7Ci0gICAgdmFyIGRhdGEg
PSB0ZXN0Q2FzZS53cmFwcGVyLmRhdGE7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOwotICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAuCi0gICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgLy8gU2V0IHVwIHRl
eHR1cmUgcGFyYW1ldGVycy4KLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIC8v
IFNldCB1cCBwaXhlbCBzdG9yZSBwYXJhbWV0ZXJzLgotICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgdGVzdENhc2UucHJlbXVsdGlwbHlBbHBoYSk7
Ci0gICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0dXJlLgotICAgIGlmICh0ZXN0
Q2FzZS51c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1
cmUgdG8gYmxhY2sgZmlyc3QuCi0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCAwLAot
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgbnVs
bCk7Ci0gICAgfQotICAgIHN3aXRjaCAodGVzdENhc2UuZGF0YU1vZGUpIHsKLSAgICBjYXNlIERh
dGFNb2RlLklNQUdFOgotICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKLSAgICAgICAgaWYg
KHRlc3RDYXNlLnVzZVRleFN1YkltYWdlMkQpCi0gICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwg
ZGF0YSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUs
IGRhdGEpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRBOgotICAg
ICAgICBpZiAodGVzdENhc2UudXNlVGV4U3ViSW1hZ2UyRCkKLSAgICAgICAgICAgIGdsLnRleFN1
YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgdGVzdENhc2Uud2lkdGgsIHRlc3RDYXNl
LmhlaWdodCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCB0ZXN0Q2Fz
ZS5mb3JtYXQsIHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQsIDAsIHRlc3RDYXNlLmZv
cm1hdCwgdGVzdENhc2UudHlwZSwgZGF0YSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAv
LyBQb2ludCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwLgotICAgIGdsLnVu
aWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMuCi0gICAg
Z2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotICAgIC8vIENsZWFuIHVwIHRoZSB0
ZXh0dXJlLgotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4dHVyZSk7Ci0KLSAgICAvLyBSZWFkIGJh
Y2sgdGhlIHJlbmRlcmluZyByZXN1bHRzLgotICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh0
ZXN0Q2FzZS53aWR0aCAqIHRlc3RDYXNlLmhlaWdodCAqIDQpOwotICAgIGdsLnJlYWRQaXhlbHMo
MCwgMCwgdGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYnVmKTsKLSAgICAvLyBSdW4gdGhlIHZlcmlmaWNhdGlvbiByb3V0aW5lLgotICAg
IGlmICh0ZXN0Q2FzZS52ZXJpZmllcihidWYsIHRlc3RDYXNlLnRocmVzaG9sZCwgdGVzdENhc2Uu
bnVtT2NjdXJyZW5jZXMpKQotICAgICAgICB0ZXN0UGFzc2VkKHRlc3RDYXNlLmRlc2NyaXB0aW9u
KTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQodGVzdENhc2UuZGVzY3JpcHRpb24pOwot
fQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFdyYXBwZXJzIGZvciBwcm9ncmFtbWF0aWMgY29uc3Ry
dWN0aW9uIG9mIEltYWdlLCBJbWFnZURhdGEgYW5kIHJhdyB0ZXh0dXJlIGRhdGEKLS8vCi0KLWZ1
bmN0aW9uIEltYWdlV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIHRoaXMucG5nQnVpbGRl
cl8gPSBuZXcgUE5HbGliKHdpZHRoLCBoZWlnaHQsIDI1Nik7Ci19Ci0KLUltYWdlV3JhcHBlci5w
cm90b3R5cGUuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5wbmdCdWls
ZGVyXy53aWR0aDsKLX07Ci0KLUltYWdlV3JhcHBlci5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVu
Y3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMucG5nQnVpbGRlcl8uaGVpZ2h0OwotfTsKLQotSW1h
Z2VXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEp
IHsKLSAgICB0aGlzLnBuZ0J1aWxkZXJfLmJ1ZmZlclt0aGlzLnBuZ0J1aWxkZXJfLmluZGV4KHgs
IHkpXSA9IHRoaXMucG5nQnVpbGRlcl8uY29sb3IociwgZywgYiwgYSk7Ci19OwotCi0vLyBHZW5l
cmF0ZXMgZGF0YSBpbnRvICJkYXRhIiBwcm9wZXJ0eSwgcG9zc2libHkgYXN5bmNocm9ub3VzbHku
Ci1JbWFnZVdyYXBwZXIucHJvdG90eXBlLmdlbmVyYXRlRGF0YSA9IGZ1bmN0aW9uKCkgewotICAg
IHZhciB0aGF0ID0gdGhpczsKLSAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgaW1nLm9u
bG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGF0LmRhdGEgPSBpbWc7Ci0gICAgICAgIG1h
eWJlUnVuVGVzdHMoKTsKLSAgICB9OwotICAgIGltZy5zcmMgPSAiZGF0YTppbWFnZS9wbmc7YmFz
ZTY0LCIgKyB0aGlzLnBuZ0J1aWxkZXJfLmdldEJhc2U2NCgpOwotfTsKLQotZnVuY3Rpb24gSW1h
Z2VEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIGlmICghSW1hZ2VEYXRhV3JhcHBl
ci50ZW1wQ2FudmFzKSB7Ci0gICAgICAgIEltYWdlRGF0YVdyYXBwZXIudGVtcENhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAgIH0KLSAgICB0aGlzLmltYWdlRGF0
YV8gPSBJbWFnZURhdGFXcmFwcGVyLnRlbXBDYW52YXMuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJ
bWFnZURhdGEod2lkdGgsIGhlaWdodCk7Ci19Ci0KLUltYWdlRGF0YVdyYXBwZXIudGVtcENhbnZh
cyA9IG51bGw7Ci0KLUltYWdlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rp
b24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaW1hZ2VEYXRhXy53aWR0aDsKLX07Ci0KLUltYWdlRGF0
YVdyYXBwZXIucHJvdG90eXBlLmdldEhlaWdodCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0
aGlzLmltYWdlRGF0YV8uaGVpZ2h0OwotfTsKLQotSW1hZ2VEYXRhV3JhcHBlci5wcm90b3R5cGUu
c2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIGluZGV4ID0g
NCAqICh0aGlzLmltYWdlRGF0YV8ud2lkdGggKiB5ICsgeCk7Ci0gICAgdGhpcy5pbWFnZURhdGFf
LmRhdGFbaW5kZXhdID0gcjsKLSAgICB0aGlzLmltYWdlRGF0YV8uZGF0YVtpbmRleCArIDFdID0g
ZzsKLSAgICB0aGlzLmltYWdlRGF0YV8uZGF0YVtpbmRleCArIDJdID0gYjsKLSAgICB0aGlzLmlt
YWdlRGF0YV8uZGF0YVtpbmRleCArIDNdID0gYTsKLX07Ci0KLUltYWdlRGF0YVdyYXBwZXIucHJv
dG90eXBlLmdlbmVyYXRlRGF0YSA9IGZ1bmN0aW9uKCkgewotICAgIHRoaXMuZGF0YSA9IHRoaXMu
aW1hZ2VEYXRhXzsKLSAgICBtYXliZVJ1blRlc3RzKCk7Ci19OwotCi1mdW5jdGlvbiBUZXh0dXJl
RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICB0aGlzLndpZHRoXyA9IHdpZHRoOwot
ICAgIHRoaXMuaGVpZ2h0XyA9IGhlaWdodDsKLX0KLQotVGV4dHVyZURhdGFXcmFwcGVyLnByb3Rv
dHlwZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLndpZHRoXzsKLX07
Ci0KLVRleHR1cmVEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgcmV0dXJuIHRoaXMuaGVpZ2h0XzsKLX07Ci0KLVRleHR1cmVEYXRhV3JhcHBlci5wcm90
b3R5cGUuZ2VuZXJhdGVEYXRhID0gZnVuY3Rpb24oKSB7Ci0gICAgdGhpcy5kYXRhID0gdGhpcy5k
YXRhXzsKLSAgICBtYXliZVJ1blRlc3RzKCk7Ci19OwotCi1mdW5jdGlvbiBSR0JBOERhdGFXcmFw
cGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywg
d2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KDQgKiB3aWR0
aCAqIGhlaWdodCk7Ci19Ci0KLVJHQkE4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1
cmVEYXRhV3JhcHBlcjsKLQotUkdCQThEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBm
dW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIGluZGV4ID0gNCAqICh0aGlzLndp
ZHRoXyAqIHkgKyB4KTsKLSAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7Ci0gICAgdGhpcy5kYXRh
X1tpbmRleCArIDFdID0gZzsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMl0gPSBiOwotICAgIHRo
aXMuZGF0YV9baW5kZXggKyAzXSA9IGE7Ci19OwotCi1mdW5jdGlvbiBSR0JBNTU1MURhdGFXcmFw
cGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywg
d2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50MTZBcnJheSh3aWR0aCAq
IGhlaWdodCk7Ci19Ci0KLVJHQkE1NTUxRGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1
cmVEYXRhV3JhcHBlcjsKLQotUkdCQTU1NTFEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwg
PSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIHZhbHVlID0gKCgociAmIDB4
RjgpIDw8IDgpCi0gICAgICAgICAgICAgICAgIHwgKChnICYgMHhGOCkgPDwgMykKLSAgICAgICAg
ICAgICAgICAgfCAoKGIgJiAweEY4KSA+PiAyKQotICAgICAgICAgICAgICAgICB8IChhID4+IDcp
KTsKLSAgICB0aGlzLmRhdGFfW3RoaXMud2lkdGhfICogeSArIHhdID0gdmFsdWU7Ci19OwotCi1m
dW5jdGlvbiBSR0JBNDQ0NERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVy
ZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9
IG5ldyBVaW50MTZBcnJheSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0KLVJHQkE0NDQ0RGF0YVdyYXBw
ZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotUkdCQTQ0NDREYXRhV3Jh
cHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0g
ICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjApIDw8IDgpCi0gICAgICAgICAgICAgICAgIHwgKChn
ICYgMHhGMCkgPDwgNCkKLSAgICAgICAgICAgICAgICAgfCAoYiAmIDB4RjApCi0gICAgICAgICAg
ICAgICAgIHwgKGEgPj4gNCkpOwotICAgIHRoaXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0g
PSB2YWx1ZTsKLX07Ci0KLWZ1bmN0aW9uIFJHQjhEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQot
ewotICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAg
IHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSgzICogd2lkdGggKiBoZWlnaHQpOwotfQotCi1S
R0I4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotUkdC
OERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIs
IGEpIHsKLSAgICB2YXIgaW5kZXggPSAzICogKHRoaXMud2lkdGhfICogeSArIHgpOwotICAgIHRo
aXMuZGF0YV9baW5kZXhdID0gcjsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBnOwotICAg
IHRoaXMuZGF0YV9baW5kZXggKyAyXSA9IGI7Ci19OwotCi1mdW5jdGlvbiBSR0I1NjVEYXRhV3Jh
cHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMs
IHdpZHRoLCBoZWlnaHQpOwotICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDE2QXJyYXkod2lkdGgg
KiBoZWlnaHQpOwotfQotCi1SR0I1NjVEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVy
ZURhdGFXcmFwcGVyOwotCi1SR0I1NjVEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBm
dW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIHZhbHVlID0gKCgociAmIDB4Rjgp
IDw8IDgpCi0gICAgICAgICAgICAgICAgIHwgKChnICYgMHhGQykgPDwgMykKLSAgICAgICAgICAg
ICAgICAgfCAoKGIgJiAweEY4KSA+PiAzKSk7Ci0gICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAq
IHkgKyB4XSA9IHZhbHVlOwotfTsKLQotZnVuY3Rpb24gQThEYXRhV3JhcHBlcih3aWR0aCwgaGVp
Z2h0KQotewotICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQp
OwotICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0K
LUE4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotQThE
YXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBh
KSB7Ci0gICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IGE7Ci19OwotCi1mdW5j
dGlvbiBMOERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFw
cGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50
OEFycmF5KHdpZHRoICogaGVpZ2h0KTsKLX0KLQotTDhEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBu
ZXcgVGV4dHVyZURhdGFXcmFwcGVyOwotCi1MOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhl
bCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB0aGlzLmRhdGFfW3RoaXMud2lk
dGhfICogeSArIHhdID0gcjsKLX07Ci0KLWZ1bmN0aW9uIExBOERhdGFXcmFwcGVyKHdpZHRoLCBo
ZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdo
dCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KDIgKiB3aWR0aCAqIGhlaWdodCk7
Ci19Ci0KLUxBOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7
Ci0KLUxBOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIs
IGcsIGIsIGEpIHsKLSAgICB2YXIgaW5kZXggPSAyICogKHRoaXMud2lkdGhfICogeSArIHgpOwot
ICAgIHRoaXMuZGF0YV9baW5kZXhdID0gcjsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBh
OwotfTsKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBDb2xvciByYW1wIGdlbmVyYXRpb24gZnVuY3Rp
b25zCi0vLwotCi1mdW5jdGlvbiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAod3JhcHBlcikK
LXsKLSAgICB2YXIgd2lkdGggPSB3cmFwcGVyLmdldFdpZHRoKCk7Ci0gICAgdmFyIGhlaWdodCA9
IHdyYXBwZXIuZ2V0SGVpZ2h0KCk7Ci0gICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0aDsgKyt4
KSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IE1hdGgucm91bmQoMjU1LjAgKiB4IC8gd2lkdGgpOwot
ICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KQotICAgICAgICAgICAgd3Jh
cHBlci5zZXRQaXhlbCh4LCB5LCB2YWx1ZSwgdmFsdWUsIHZhbHVlLCAyNTUpOwotICAgIH0KLX0K
LQotZnVuY3Rpb24gZ2VuZXJhdGVUcmFuc2x1Y2VudEdyYXlzY2FsZVJhbXAod3JhcHBlcikKLXsK
LSAgICB2YXIgd2lkdGggPSB3cmFwcGVyLmdldFdpZHRoKCk7Ci0gICAgdmFyIGhlaWdodCA9IHdy
YXBwZXIuZ2V0SGVpZ2h0KCk7Ci0gICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7
Ci0gICAgICAgIHZhciB2YWx1ZSA9IE1hdGgucm91bmQoMjU1LjAgKiB4IC8gd2lkdGgpOwotICAg
ICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KQotICAgICAgICAgICAgd3JhcHBl
ci5zZXRQaXhlbCh4LCB5LCB2YWx1ZSwgdmFsdWUsIHZhbHVlLCB2YWx1ZSk7Ci0gICAgfQotfQot
Ci1mdW5jdGlvbiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCh3cmFwcGVyKQotewot
ICAgIHZhciB3aWR0aCA9IHdyYXBwZXIuZ2V0V2lkdGgoKTsKLSAgICB2YXIgaGVpZ2h0ID0gd3Jh
cHBlci5nZXRIZWlnaHQoKTsKLSAgICBmb3IgKHZhciB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsK
LSAgICAgICAgdmFyIHZhbHVlID0gTWF0aC5yb3VuZCgyNTUuMCAqIHggLyB3aWR0aCk7Ci0gICAg
ICAgIGZvciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpCi0gICAgICAgICAgICB3cmFwcGVy
LnNldFBpeGVsKHgsIHksIHZhbHVlLCB2YWx1ZSwgdmFsdWUsIDApOwotICAgIH0KLX0KLQotLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBWZXJpZmljYXRpb24gcm91dGluZXMKLS8vCi0KLWZ1bmN0aW9uIGFs
bENoYW5uZWxzSW5jcmVhc2VCeU5vTW9yZVRoYW4oYXJyYXksIHRocmVzaG9sZCwgbnVtT2NjdXJy
ZW5jZXMpIHsKLSAgICB2YXIgbnVtRm91bmQgPSAwOwotICAgIGZvciAodmFyIGkgPSA0OyBpIDwg
YXJyYXkubGVuZ3RoOyBpICs9IDQpCi0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgNDsgaisr
KQotICAgICAgICAgICAgaWYgKGFycmF5W2kgKyBqXSAtIGFycmF5W2kgKyBqIC0gNF0gPiB0aHJl
c2hvbGQpCi0gICAgICAgICAgICAgICAgKytudW1Gb3VuZDsKLQotICAgIHJldHVybiBudW1Gb3Vu
ZCA8IG51bU9jY3VycmVuY2VzOwotfQotCi1mdW5jdGlvbiBhbHBoYUNoYW5uZWxJbmNyZWFzZXNC
eU5vTW9yZVRoYW4oYXJyYXksIHRocmVzaG9sZCwgbnVtT2NjdXJyZW5jZXMpIHsKLSAgICB2YXIg
bnVtRm91bmQgPSAwOwotICAgIGZvciAodmFyIGkgPSA3OyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9
IDQpCi0gICAgICAgIGlmIChhcnJheVtpXSAtIGFycmF5W2kgLSA0XSA+IHRocmVzaG9sZCkKLSAg
ICAgICAgICAgICsrbnVtRm91bmQ7Ci0KLSAgICByZXR1cm4gbnVtRm91bmQgPCBudW1PY2N1cnJl
bmNlczsKLX0KLQotZnVuY3Rpb24gYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5QXRMZWFzdChhcnJheSwg
dGhyZXNob2xkLCBudW1PY2N1cnJlbmNlcykgewotICAgIHZhciBudW1Gb3VuZCA9IDA7Ci0gICAg
Zm9yICh2YXIgaSA9IDQ7IGkgPCBhcnJheS5sZW5ndGg7IGkgKz0gNCkKLSAgICAgICAgZm9yICh2
YXIgaiA9IDA7IGogPCA0OyArK2opCi0gICAgICAgICAgICBpZiAoYXJyYXlbaSArIGpdIC0gYXJy
YXlbaSArIGogLSA0XSA+IHRocmVzaG9sZCkKLSAgICAgICAgICAgICAgICArK251bUZvdW5kOwot
Ci0gICAgcmV0dXJuIG51bUZvdW5kID4gbnVtT2NjdXJyZW5jZXM7Ci19Ci0KLWZ1bmN0aW9uIGNv
bG9yQ2hhbm5lbHNBcmVaZXJvKGFycmF5LCB0aHJlc2hvbGQsIG51bU9jY3VycmVuY2VzKSB7Ci0g
ICAgdmFyIHBhc3NlZCA9IHRydWU7Ci0gICAgdmFyIG51bUZhaWx1cmVzID0gMDsKLQotICAgIGZv
ciAodmFyIGkgPSA0OyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9IDQpCi0gICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgMzsgKytqKQotICAgICAgICAgICAgaWYgKGFycmF5W2kgKyBqXSAhPSAwKSB7
Ci0gICAgICAgICAgICAgICAgcGFzc2VkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgaWYgKCsr
bnVtRmFpbHVyZXMgPD0gNSkKLSAgICAgICAgICAgICAgICAgICAgZGVidWcoIiAgYXJyYXlbIiAr
IChpICsgaikgKyAiXSBzaG91bGQgaGF2ZSBiZWVuIDAsIHdhcyAiICsgYXJyYXlbaSArIGpdKTsK
LSAgICAgICAgICAgIH0KLQotICAgIHJldHVybiBwYXNzZWQ7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9
IjI1NiIgaGVpZ2h0PSIxIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZhbGlkLWRhdGEuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtaW52YWxpZC1kYXRh
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MjNiZTI0YjRjYjMyZGFjNWIw
ZDc2Njg0ZWI1YzMxYzNlMmRmNWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZh
bGlkLWRhdGEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyOSArMCwwIEBACi08IS0tCi0KLS8q
Ci0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
LSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
LSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPnRleEltYWdlMkQgYW5kIHRl
eFN1YkltYWdlMkQgdGVzdHMgd2l0aCBpbnZhbGlkIGRhdGE8L3RpdGxlPgotICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgot
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LSAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLSAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi
PiA8L2NhbnZhcz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWRlc2NyaXB0aW9u
KCJ0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRlc3RzIHdpdGggaW52YWxpZCBkYXRhIik7
Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2FudmFzIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZh
cyk7Ci1pZiAoIWdsKQotICB0ZXN0RmFpbGVkKCJDb250ZXh0IGNyZWF0ZWQuIik7Ci1lbHNlCi0g
IHRlc3RQYXNzZWQoIkNvbnRleHQgY3JlYXRlZC4iKTsKLQotdmFyIHRleDsKLQotZnVuY3Rpb24g
c2V0dXAoKSB7Ci0gICAgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIGJ1ZzMyNjE5X3Rlc3RzLnRleCk7Ci0gICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCA2NCwgNjQsIDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIG51bGwpOwotfQotCi1mdW5jdGlvbiB0ZWFyZG93bigpIHsKLSAgICBnbC5kZWxl
dGVUZXh0dXJlKHRleCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoZGVzYywgZnVuYywgZXhwZWN0ZWQp
IHsKLSAgICBkZWJ1ZyhkZXNjKTsKLQotICAgIHZhciBleGMgPSBudWxsOwotICAgIHRyeSB7Ci0g
ICAgICAgIGZ1bmMoKTsKLSAgICB9IGNhdGNoICh4KSB7Ci0gICAgICAgIGV4YyA9IHg7Ci0gICAg
fQotCi0gICAgaWYgKGV4cGVjdGVkID09IGdsLklOVkFMSURfT1BFUkFUSU9OKSB7Ci0gICAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGV4cGVjdGVkKTsKLSAgICB9IGVsc2UgaWYgKGV4cGVjdGVkID09
ICJleGNlcHRpb24iKSB7Ci0gICAgICAgIGlmIChleGMpIHsKLSAgICAgICAgICAgIHRlc3RQYXNz
ZWQoInRocmV3IGV4Y2VwdGlvbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVz
dEZhaWxlZCgiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24iKTsKLSAgICAgICAgfQotICAgIH0KLX0K
LQotdGVzdCgiUGFzc2luZyBhIGJ1ZmZlciBub3QgbGFyZ2UgZW5vdWdoIHRvIHRleEltYWdlMkQg
c2hvdWxkIGdlbmVyYXRlIGFuIElOVkFMSURfT1BFUkFUSU9OIiwKLSAgICAgZnVuY3Rpb24gKCkg
ewotICAgICB2YXIgdG9vU21hbGwgPSBuZXcgVWludDhBcnJheSg2NCk7Ci0gICAgICAgIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgNjQsIDY0LCAwLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCB0b29TbWFsbCk7Ci0gICAgIH0sCi0gICAgIGdsLklOVkFMSURfT1BF
UkFUSU9OKTsKLQotdGVzdCgiUGFzc2luZyB0ZXhJbWFnZTJEIHBhcmFtZXRlciBkYXRhIG9mIE51
bWJlciB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iLAotICAgICBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgNjQsIDY0
LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCA0Mik7Ci0gICAgIH0sCi0gICAgICJleGNl
cHRpb24iKTsKLQotdGVzdCgiUGFzc2luZyB0ZXhJbWFnZTJEIHBhcmFtZXRlciBkYXRhIG9mIFN0
cmluZyB0eXBlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciIsCi0gICAgIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCA2NCwgNjQs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsICJub3QgYSBidWZmZXIiKTsKLSAgICAgfSwK
LSAgICAgImV4Y2VwdGlvbiIpOwotdGVzdCgiUGFzc2luZyBhIGJ1ZmZlciBub3QgbGFyZ2UgZW5v
dWdoIHRvIHRleFN1YkltYWdlMkQgc2hvdWxkIGdlbmVyYXRlIGFuIElOVkFMSURfT1BFUkFUSU9O
IiwKLSAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgdG9vU21hbGwgPSBuZXcgVWludDhB
cnJheSg2NCk7Ci0gICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwg
MCwgNjQsIDY0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB0b29TbWFsbCk7Ci0gICAgIH0s
Ci0gICAgIGdsLklOVkFMSURfT1BFUkFUSU9OKTsKLQotdGVzdCgiUGFzc2luZyB0ZXhTdWJJbWFn
ZTJEIHBhcmFtZXRlciBkYXRhIG9mIE51bWJlciB0eXBlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciIsCi0gICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCAwLCAwLCA2NCwgNjQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIDQyKTsK
LSAgICAgfSwKLSAgICAgImV4Y2VwdGlvbiIpOwotCi10ZXN0KCJQYXNzaW5nIHRleFN1YkltYWdl
MkQgcGFyYW1ldGVyIGRhdGEgb2YgU3RyaW5nIHR5cGUgc2hvdWxkIHRocm93IGEgVHlwZUVycm9y
IiwKLSAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsIDAsIDY0LCA2NCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgIm5vdCBh
IGJ1ZmZlciIpOwotICAgICB9LAotICAgICAiZXhjZXB0aW9uIik7Ci0KLWRlYnVnKCIiKTsKLXZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRt
bD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFs
aWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFsaWRh
dGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODNmY2JmYzFkZWY3ZTlk
YzU5Y2ExMjE0MzUwMmZmMTQwOGJiNTJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlk
YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4NCArMCwwIEBACi08IS0tCi0KLS8qCi0q
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlw
dD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IG51
bGw7Ci12YXIgdGV4ID0gbnVsbDsKLXZhciBlcnJvciA9IDA7Ci0KLWZ1bmN0aW9uIGVudW1Ub1N0
cmluZyh2YWx1ZSkgewotICByZXR1cm4gd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB2YWx1ZSk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3RUZXhJbWFnZTJEKHRlc3RDYXNlKQotewotICAgIHZhciBsZXZlbCA9
IDA7Ci0gICAgdmFyIHdpZHRoID0gMTY7Ci0gICAgdmFyIGhlaWdodCA9IDE2OwotICAgIHZhciBt
c2cgPSAiIiArCi0gICAgICAiIGludGVybmFsRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RD
YXNlLmludGVybmFsRm9ybWF0KSArCi0gICAgICAiIHRhcmdldDogIiArIGVudW1Ub1N0cmluZyh0
ZXN0Q2FzZS50YXJnZXQpICsKLSAgICAgICIgZm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RD
YXNlLmZvcm1hdCkgKwotICAgICAgIiB0eXBlOiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnR5
cGUpICsKLSAgICAgICIgYm9yZGVyOiAiICsgdGVzdENhc2UuYm9yZGVyOwotCi0gICAgZ2wudGV4
SW1hZ2UyRCh0ZXN0Q2FzZS50YXJnZXQsIGxldmVsLCB0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgdGVzdENhc2UuYm9yZGVyLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNl
LnR5cGUsIG51bGwpOwotICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0VGV4U3Vi
SW1hZ2UyRCh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgbGV2ZWwgPSAwOwotICAgIHZhciB4b2Zmc2V0
ID0gMDsKLSAgICB2YXIgeW9mZnNldCA9IDA7Ci0gICAgdmFyIHdpZHRoID0gMTY7Ci0gICAgdmFy
IGhlaWdodCA9IDE2OwotICAgIHZhciBtc2cgPSAiIisKLSAgICAgICAgIiBmb3JtYXQ6ICIgKyBl
bnVtVG9TdHJpbmcodGVzdENhc2UuZm9ybWF0KSArCi0gICAgICAgICIgdHlwZTogIiArIGVudW1U
b1N0cmluZyh0ZXN0Q2FzZS50eXBlKTsKLSAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSh3
aWR0aCAqIGhlaWdodCAqIDQpOwotICAgIGdsLnRleFN1YkltYWdlMkQodGVzdENhc2UudGFyZ2V0
LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgdGVzdENhc2UuZm9ybWF0
LCB0ZXN0Q2FzZS50eXBlLCBhcnJheSk7Ci0gICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVy
cm9yOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RUZXhQYXJhbWV0ZXIodGVzdENhc2UpCi17Ci0gICAgdmFyIG1zZyA9ICJwYXJhbU5hbWU6
ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UucG5hbWUpOwotICAgIGVycm9yID0gdGVzdENhc2Uu
ZXhwZWN0ZWRFcnJvcjsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKHRlc3RDYXNlLnRhcmdldCwgdGVz
dENhc2UucG5hbWUsIHRlc3RDYXNlLnBhcmFtKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVy
cm9yLCBtc2cpOwotICAgIGdsLnRleFBhcmFtZXRlcmYodGVzdENhc2UudGFyZ2V0LCB0ZXN0Q2Fz
ZS5wbmFtZSwgdGVzdENhc2UucGFyYW0pOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3Is
IG1zZyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RHZXRUZXhQYXJhbWV0ZXIodGVzdENhc2UpCi17Ci0g
ICAgdmFyIG1zZyA9ICJwYXJhbU5hbWU6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UucG5hbWUp
OwotICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBnbC5nZXRUZXhQYXJh
bWV0ZXIodGVzdENhc2UudGFyZ2V0LCB0ZXN0Q2FzZS5wbmFtZSk7Ci0gICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvcHlUZXhJbWFnZTJEKHRl
c3RDYXNlKQotewotICAgIHZhciBsZXZlbCA9IDA7Ci0gICAgdmFyIHggPSAwOwotICAgIHZhciB5
ID0gMDsKLSAgICB2YXIgd2lkdGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0ID0gMTY7Ci0KLSAgICB2
YXIgbXNnID0gIiIgKwotICAgICAgIiBjb2xvckJ1ZmZlckZvcm1hdDogIiArIGVudW1Ub1N0cmlu
Zyh0ZXN0Q2FzZS5jb2xvckJ1ZmZlckZvcm1hdCkgKwotICAgICAgIiBpbnRlcm5hbEZvcm1hdDog
IiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCkgKwotICAgICAgIiB0YXJn
ZXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UudGFyZ2V0KSArCi0gICAgICAiIGJvcmRlcjog
IiArIHRlc3RDYXNlLmJvcmRlcjsKLQotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVO
REVSQlVGRkVSLCB0ZXN0Q2FzZS5jb2xvckJ1ZmZlckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0g
ICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgc2hvdWxkQmUoImdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIiwgImdsLkZSQU1FQlVGRkVSX0NP
TVBMRVRFIik7Ci0KLSAgICBnbC5jb3B5VGV4SW1hZ2UyRCh0ZXN0Q2FzZS50YXJnZXQsIGxldmVs
LCB0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGVzdENhc2Uu
Ym9yZGVyKTsKLSAgICBlcnJvciA9IHRlc3RDYXNlLmV4cGVjdGVkRXJyb3I7Ci0gICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvcHlUZXhTdWJJ
bWFnZTJEKHRlc3RDYXNlKQotewotICAgIHZhciBsZXZlbCA9IDA7Ci0gICAgdmFyIHggPSAwOwot
ICAgIHZhciB5ID0gMDsKLSAgICB2YXIgd2lkdGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0ID0gMTY7
Ci0gICAgdmFyIHhvZmZzZXQgPSAwOwotICAgIHZhciB5b2Zmc2V0ID0gMDsKLSAgICB2YXIgYm9y
ZGVyID0gMDsKLSAgICB2YXIgdHlwZSA9IGdsLlVOU0lHTkVEX0JZVEU7Ci0gICAgdmFyIG1zZyA9
ICIiICsKLSAgICAgICIgY29sb3JCdWZmZXJGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENh
c2UuY29sb3JCdWZmZXJGb3JtYXQpICsKLSAgICAgICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBlbnVt
VG9TdHJpbmcodGVzdENhc2UuaW50ZXJuYWxGb3JtYXQpICsKLSAgICAgICIgdGFyZ2V0OiAiICsg
ZW51bVRvU3RyaW5nKHRlc3RDYXNlLnRhcmdldCk7Ci0KLSAgICBnbC5yZW5kZXJidWZmZXJTdG9y
YWdlKGdsLlJFTkRFUkJVRkZFUiwgdGVzdENhc2UuY29sb3JCdWZmZXJGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIHNob3Vs
ZEJlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSIsICJnbC5GUkFN
RUJVRkZFUl9DT01QTEVURSIpOwotCi0gICAgZ2wudGV4SW1hZ2UyRCh0ZXN0Q2FzZS50YXJnZXQs
IGxldmVsLCB0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCwgeG9mZnNldCArIHdpZHRoLCB5b2Zmc2V0
ICsgaGVpZ2h0LCBib3JkZXIsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB0eXBlLCBudWxsKTsK
LSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIGdsLmNvcHlUZXhT
dWJJbWFnZTJEKHRlc3RDYXNlLnRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHgsIHks
IHdpZHRoLCBoZWlnaHQpOwotICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29w
eUZyb21JbnRlcm5hbEZCTyh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgdGFyZ2V0ID0gZ2wuVEVYVFVS
RV8yRDsKLSAgICB2YXIgbGV2ZWwgPSAwOwotICAgIHZhciB4ID0gMDsKLSAgICB2YXIgeSA9IDA7
Ci0gICAgdmFyIHdpZHRoID0gMTY7Ci0gICAgdmFyIGhlaWdodCA9IDE2OwotICAgIHZhciB4b2Zm
c2V0ID0gMDsKLSAgICB2YXIgeW9mZnNldCA9IDA7Ci0gICAgdmFyIGJvcmRlciA9IDA7Ci0gICAg
dmFyIHR5cGUgPSBnbC5VTlNJR05FRF9CWVRFOwotICAgIHZhciBtc2cgPSAiIiArCi0gICAgICAi
IGNvbG9yQnVmZmVyRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmNvbnRleHRBbHBo
YSA/IGdsLlJHQkEgOiBnbC5SR0IpICsKLSAgICAgICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBlbnVt
VG9TdHJpbmcodGVzdENhc2UuaW50ZXJuYWxGb3JtYXQpOwotCi0gICAgaWYgKHRlc3RDYXNlLmNv
bnRleHRBbHBoYSkKLSAgICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHsgYWxw
aGE6IHRydWUgfSk7Ci0gICAgZWxzZQotICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
bnVsbCwgeyBhbHBoYTogZmFsc2UgfSk7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJnbCIpOwotICAg
IHNob3VsZEJlTm9uTnVsbCgidGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpIik7Ci0gICAgZ2wuYmlu
ZFRleHR1cmUodGFyZ2V0LCB0ZXgpOwotICAgIGlmICh0ZXN0Q2FzZS5zdWJJbWFnZSkgewotICAg
ICAgICBnbC50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0
LCB4b2Zmc2V0ICsgd2lkdGgsIHlvZmZzZXQgKyBoZWlnaHQsIGJvcmRlciwgdGVzdENhc2UuaW50
ZXJuYWxGb3JtYXQsIHR5cGUsIG51bGwpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLSAgICAgICAgZ2wuY29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwg
eG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIGdsLmNvcHlU
ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4LCB5LCB3
aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwotICAgIH0KLSAgICBlcnJvciA9IHRlc3RDYXNlLmV4cGVj
dGVkRXJyb3I7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0KLQotZGVz
Y3JpcHRpb24oIlZhbGlkYXRlIHRleCBmdW5jdGlvbnMgaW5wdXQgcGFyYW1ldGVycyIpOwotCi1z
aG91bGRCZU5vbk51bGwoImdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpIik7Ci1zaG91bGRCZU5v
bk51bGwoInRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKSIpOwotZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi1kZWJ1
ZygiIik7Ci1kZWJ1ZygiQ2hlY2tpbmcgVGV4SW1hZ2UyRDogYSBzZXQgb2YgaW5wdXRzIHRoYXQg
YXJlIHZhbGlkIGluIEdMIGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7Ci0KLXZhciB0ZXN0Q2FzZXMg
PQotICBbIHt0YXJnZXQ6IDB4ODA2NCwgLy8gR0xfUFJPWFlfVEVYVFVSRV8yRAotICAgICBpbnRl
cm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgYm9yZGVyOiAwLAotICAgICBmb3JtYXQ6IGdsLlJH
QkEsCi0gICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGds
LklOVkFMSURfRU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgaW50ZXJu
YWxGb3JtYXQ6IDB4MTkwMywgLy8gR0xfUkVECi0gICAgIGJvcmRlcjogMCwKLSAgICAgZm9ybWF0
OiAweDE5MDMsIC8vIEdMX1JFRAotICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICBl
eHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVf
MkQsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBib3JkZXI6IDEsCi0gICAg
IGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9WQUxVRX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8y
RCwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMCwKLSAgICAg
Zm9ybWF0OiBnbC5SR0IsCi0gICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgIGV4cGVj
dGVkRXJyb3I6IGdsLklOVkFMSURfT1BFUkFUSU9OfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJF
XzJELAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgYm9yZGVyOiAwLAotICAg
ICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHR5cGU6IGdsLkJZVEUsCi0gICAgIGV4cGVjdGVkRXJy
b3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAg
aW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMCwKLSAgICAgZm9ybWF0OiBn
bC5SR0JBLAotICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICBleHBlY3RlZEVycm9y
OiBnbC5OT19FUlJPUn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5n
dGg7ICsraWkpCi0gICAgdGVzdFRleEltYWdlMkQodGVzdENhc2VzW2lpXSk7Ci0KLWRlYnVnKCIi
KTsKLWRlYnVnKCJDaGVja2luZyBUZXhTdWJJbWFnZTJEOiBhIHNldCBvZiBpbnB1dHMgdGhhdCBh
cmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsKLQotdGVzdENhc2VzID0KLSAg
WyB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBmb3JtYXQ6IDB4MTkwMywgLy8gR0xfUkVE
Ci0gICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklO
VkFMSURfRU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgZm9ybWF0OiBn
bC5SR0JBLAotICAgICB0eXBlOiBnbC5CWVRFLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZB
TElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGZvcm1hdDogZ2wu
UkdCQSwKLSAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgZXhwZWN0ZWRFcnJvcjog
Z2wuTk9fRVJST1J9IF07Ci0KLWZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXN0Q2FzZXMubGVuZ3Ro
OyArK2lpKQotICAgIHRlc3RUZXhTdWJJbWFnZTJEKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1Zygi
Iik7Ci1kZWJ1ZygiQ2hlY2tpbmcgVGV4UGFyYW1ldGVyOiBhIHNldCBvZiBpbnB1dHMgdGhhdCBh
cmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsKLQotdGVzdENhc2VzID0KLSAg
WyB7dGFyZ2V0OiAweDBERTAsIC8vIEdMX1RFWFRVUkVfMUQKLSAgICAgcG5hbWU6IGdsLlRFWFRV
UkVfV1JBUF9ULAotICAgICBwYXJhbTogZ2wuUkVQRUFULAotICAgICBleHBlY3RlZEVycm9yOiBn
bC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIHBuYW1l
OiAweDgxM0EsIC8vIEdMX1RFWFRVUkVfTUlOX0xPRAotICAgICBwYXJhbTogMCwKLSAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJE
LAotICAgICBwbmFtZTogZ2wuVEVYVFVSRV9XUkFQX1QsCi0gICAgIHBhcmFtOiAweDI5MDAsIC8v
IEdMX0NMQU1QCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3Rh
cmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgcG5hbWU6IGdsLlRFWFRVUkVfV1JBUF9ULAotICAg
ICBwYXJhbTogZ2wuUkVQRUFULAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0gXTsK
LQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAgdGVz
dFRleFBhcmFtZXRlcih0ZXN0Q2FzZXNbaWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNr
aW5nIEdldFRleFBhcmFtZXRlcjogYSBzZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdM
IGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge3RhcmdldDogMHgw
REUwLCAvLyBHTF9URVhUVVJFXzFECi0gICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKLSAg
ICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhU
VVJFXzJELAotICAgICBwbmFtZTogMHg4MTNBLCAvLyBHTF9URVhUVVJFX01JTl9MT0QKLSAgICAg
ZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJF
XzJELAotICAgICBwbmFtZTogZ2wuVEVYVFVSRV9XUkFQX1QsCi0gICAgIGV4cGVjdGVkRXJyb3I6
IGdsLk5PX0VSUk9SfSBdOwotCi1mb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENhc2VzLmxlbmd0
aDsgKytpaSkKLSAgICB0ZXN0R2V0VGV4UGFyYW1ldGVyKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1
ZygiIik7Ci1kZWJ1ZygiQ2hlY2tpbmcgQ29weVRleEltYWdlMkQ6IGEgc2V0IG9mIGlucHV0cyB0
aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOwotCi12YXIgY29sb3JC
dWZmZXIgPSBudWxsOwotdmFyIGZibyA9IG51bGw7Ci0KLXNob3VsZEJlTm9uTnVsbCgiZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSLCBmYm8pOwotc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIik7Ci1nbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JC
dWZmZXIpOwotZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLWdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi10ZXN0Q2FzZXMgPQotICBbIHt0YXJnZXQ6IGds
LlRFWFRVUkVfMkQsCi0gICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCi0gICAgIGlu
dGVybmFsRm9ybWF0OiAweDgwNTQsIC8vIEdMX1JHQjE2Ci0gICAgIGJvcmRlcjogMCwKLSAgICAg
ZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJF
XzJELAotICAgICBjb2xvckJ1ZmZlckZvcm1hdDogZ2wuUkdCNTY1LAotICAgICBpbnRlcm5hbEZv
cm1hdDogZ2wuUkdCQSwKLSAgICAgYm9yZGVyOiAxLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5J
TlZBTElEX1ZBTFVFfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBjb2xvckJ1
ZmZlckZvcm1hdDogZ2wuUkdCNTY1LAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAg
ICAgYm9yZGVyOiAwLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09QRVJBVElPTn0s
Ci0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGds
LlJHQjU2NSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQiwKLSAgICAgYm9yZGVyOiAwLAot
ICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBp
aSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAgdGVzdENvcHlUZXhJbWFnZTJEKHRlc3RD
YXNlc1tpaV0pOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2tpbmcgQ29weVRleFN1YkltYWdl
MkQ6IGEgc2V0IG9mIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBH
TEVTMiIpOwotCi10ZXN0Q2FzZXMgPQotICBbIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAg
IGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1X0ExLAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wu
UkdCQSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9LAotICAgIHt0YXJnZXQ6IGds
LlRFWFRVUkVfMkQsCi0gICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCi0gICAgIGlu
dGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09Q
RVJBVElPTn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsr
aWkpCi0gICAgdGVzdENvcHlUZXhTdWJJbWFnZTJEKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1Zygi
Iik7Ci1kZWJ1ZygiQ2hlY2tpbmcgQ29weVRleHtTdWJ9SW1hZ2UyRDogY29weSBmcm9tIFdlYkdM
IGludGVybmFsIGZyYW1lYnVmZmVyIik7Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge2NvbnRleHRBbHBo
YTogdHJ1ZSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHN1YkltYWdlOiBm
YWxzZSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9LAotICAgIHtjb250ZXh0QWxw
aGE6IGZhbHNlLAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgc3ViSW1hZ2U6
IGZhbHNlLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09QRVJBVElPTn0sCi0gICAg
e2NvbnRleHRBbHBoYTogdHJ1ZSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAg
IHN1YkltYWdlOiB0cnVlLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0sCi0gICAg
e2NvbnRleHRBbHBoYTogZmFsc2UsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAg
ICBzdWJJbWFnZTogdHJ1ZSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9PUEVSQVRJ
T059IF07Ci0KLWZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQot
ICAgIHRlc3RDb3B5RnJvbUludGVybmFsRkJPKHRlc3RDYXNlc1tpaV0pOwotCi12YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFy
Z3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQt
YXJncy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTBkYWQ2NTQyOGYxMzQy
ZmJmMjkzZjE4ODVmZDBkNDAzYTYyZTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0y
ZC1iYWQtYXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotPCEtLQotCi0v
KgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
Ci0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
Ci0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52
YXMgaWQ9InRlc3RiZWQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Ci08Y2FudmFz
IGlkPSJjIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBz
dHJpY3QiOwotZGVzY3JpcHRpb24oJ1Rlc3RzIHRleFN1YkltYWdlMkQgd2l0aCBiYWQgYXJndW1l
bnRzJyk7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImMiKTsKLQotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgidGVzdGJl
ZCIpOwotdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleCk7Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUiwgIlNldHVwIHNob3VsZCBzdWNjZWVkIik7IAotCi1nbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAieSArIGhlaWdodCA+IHRleHR1cmUg
aGVpZ2h0Iik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDEsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLCAieCArIHdpZHRoID4gdGV4dHVyZSB3aWR0aCIpOwotZ2wudGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAtMSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJuZWdhdGl2ZSB4Iik7Ci1nbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIC0xLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5lZ2F0
aXZlIHkiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgLTEsIDAsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLCAibmVnYXRpdmUgbGV2ZWwiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuRkxPQVQsIDAs
IDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLklOVkFMSURfRU5VTSwgImJhZCB0YXJnZXQiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiZ29vZCBhcmdzIik7Ci1nbC50ZXhTdWJJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3JtYXQgbm90IHNhbWUg
YXMgb3JpZ2luYWwiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80LCBjKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJ0eXBlIG5vdCBzYW1lIGFzIG9yaWdpbmFsIik7Ci1n
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05F
RF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJtYWtlIHRleHR1
cmUgUkdCIik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdC
LCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJmb3JtYXQgc2FtZSBhcyBvcmlnaW5hbCBSR0IiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3JtYXQgbm90IHNhbWUgYXMgb3Jp
Z2luYWwgUkdCIik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wu
UkdCLCBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfT1BFUkFUSU9OLCAidHlwZSBub3Qgc2FtZSBhcyBvcmlnaW5hbCBSR0IiKTsKLWds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfU0hPUlRfNF80XzRfNCwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
bWFrZSB0ZXh0dXJlIFJHQkEgNF80XzRfNCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGMpOwotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImZvcm1hdCBzYW1lIGFzIG9yaWdpbmFsIFJH
QkEgNF80XzRfNCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGds
LlJHQiwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfT1BFUkFUSU9OLCAiZm9ybWF0IG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQkEgNF80XzRfNCIp
OwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgInR5cGUgbm90IHNhbWUgYXMgb3JpZ2luYWwgUkdCQSA0XzRfNF80Iik7Ci0KLXZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWNmMDk2YTUzYTdkYjU5YTFlZDMzZWVlYzU5Njc5OWJm
ZTQxZDRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTIzICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
LSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
LSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0t
LT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50
Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCB0ZXg7Ci12
YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgZmxvYXQgaW50ZW5z
aXR5ID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpLmE7Ci0gICAgZ2xfRnJhZ0NvbG9yID0gdmVj
NChpbnRlbnNpdHksIGludGVuc2l0eSwgaW50ZW5zaXR5LCAxLjApOwotfQotPC9zY3JpcHQ+Ci0K
LTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0
PSIxIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCdUZXN0
cyB0ZXhTdWJJbWFnZTJEIHVwbG9hZCBwYXRoIGZyb20gVWludDhBcnJheScpOwotCi12YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImV4YW1wbGUiKTsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKLWdsLmRp
c2FibGUoZ2wuRElUSEVSKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICBn
bCwKLSAgICBbd3R1LnNldHVwU2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlcihnbCksICJmc2hhZGVy
Il0sCi0gICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10pOwotd3R1LnNldHVwVW5pdFF1YWQo
Z2wpOwotdmFyIHRleHR1cmVXaWR0aCA9IDI1NjsKLXZhciB0ZXh0dXJlSGVpZ2h0ID0gMTsKLQot
dmFyIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwot
Ci12YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleHR1cmUpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNU
KTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVS
LCBnbC5ORUFSRVNUKTsKLS8vIEFsbG9jYXRlIHRoZSB0ZXh0dXJlIG9iamVjdAotZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5BTFBIQSwgdGV4dHVyZVdpZHRoLCB0ZXh0dXJlSGVp
Z2h0LCAwLCBnbC5BTFBIQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0vLyBQcmVwYXJlIHRo
ZSBpbWFnZSBkYXRhCi12YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSh0ZXh0dXJlV2lkdGgpOwot
Zm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0dXJlV2lkdGg7IGkrKykKLSAgICBhcnJheVtpXSA9IGk7
Ci0vLyBGaWxsIHRoZSB0ZXh0dXJlIG9iamVjdCB3aXRoIGRhdGEgLS0gdGhpcyBpcyBhY3R1YWxs
eSB0aGUgY29kZSBwYXRoIGJlaW5nIHRlc3RlZAotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAwLCAwLCB0ZXh0dXJlV2lkdGgsIHRleHR1cmVIZWlnaHQsIGdsLkFMUEhBLCBnbC5V
TlNJR05FRF9CWVRFLCBhcnJheSk7Ci0KLS8vIENsZWFyIGFuZCBzZXQgdXAKLWdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLWdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKLWdsLnVu
aWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLS8vIERyYXcgdGhlIHRleHR1cmUgdG8gdGhlIGZyYW1l
IGJ1ZmZlcgotZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotCi0vLyBSZWFkIGJh
Y2sgdGhlIGZyYW1lIGJ1ZmZlcgotdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHRleHR1cmVXaWR0
aCAqIHRleHR1cmVIZWlnaHQgKiA0KTsKLWdsLnJlYWRQaXhlbHMoMCwgMCwgdGV4dHVyZVdpZHRo
LCB0ZXh0dXJlSGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotCi0vLyBW
ZXJpZnkgdGhlIGZyYW1lIGJ1ZmZlcidzIGNvbnRlbnRzCi12YXIgcGFzc2VkID0gdHJ1ZTsKLWZv
ciAodmFyIGkgPSAwOyBpIDwgdGV4dHVyZVdpZHRoOyBpKyspIHsKLSAgICB2YXIgdmFsID0gaTsK
LSAgICBpZiAoYnVmWzQgKiBpICsgMF0gIT0gdmFsIHx8Ci0gICAgICAgIGJ1Zls0ICogaSArIDFd
ICE9IHZhbCB8fAotICAgICAgICBidWZbNCAqIGkgKyAyXSAhPSB2YWwpIHsKLSAgICAgICAgdGVz
dEZhaWxlZCgicGl4ZWwgYXQgKCIgKyBpICsgIiwgMCkgd2FzICgiICsKLSAgICAgICAgICAgICAg
ICAgICBidWZbNCAqIGkgKyAwXSArICIsICIgKwotICAgICAgICAgICAgICAgICAgIGJ1Zls0ICog
aSArIDFdICsgIiwgIiArCi0gICAgICAgICAgICAgICAgICAgYnVmWzQgKiBpICsgMl0gKyAiKSwg
c2hvdWxkIGJlICgiICsKLSAgICAgICAgICAgICAgICAgICB2YWwgKyAiLCAiICsgdmFsICsgIiwg
IiArIHZhbCArICIpIik7Ci0gICAgICAgIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICBicmVhazsK
LSAgICB9Ci19Ci0KLWlmIChwYXNzZWQpCi0gICAgdGVzdFBhc3NlZCgiIik7Ci0KLXZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5YzQ0NTIzMzJiZWFiM2M2MDkzNjc2NTc4MjVmNjk4
MjI4MDU3YWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjA2ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwot
Ci0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPldlYkdMIFRleFBhcmFtZXRlciBjb25mb3JtYW5jZSB0ZXN0
LjwvdGl0bGU+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48L2NhbnZhcz4KLTxjYW52YXMg
aWQ9ImNhbnZhczJkIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBpZD0i
dnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotdW5pZm9ybSBtYXQ0IHdvcmxkOwot
YXR0cmlidXRlIHZlYzMgdlBvc2l0aW9uOwotYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQwOwotdmFy
eWluZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgZ2xfUG9zaXRpb24gPSB3b3Js
ZCAqIHZlYzQodlBvc2l0aW9uLCAxKTsKLSAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7Ci19Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+
Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgdGV4OwotdmFy
eWluZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgZ2xfRnJhZ0NvbG9yID0gdGV4
dHVyZTJEKHRleCwgdGV4Q29vcmQpOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0
cmljdCI7Ci1mdW5jdGlvbiBpbml0KCkKLXsKLSAgZGVzY3JpcHRpb24oIlRlc3RzIFRleFBhcmFt
ZXRlciB3b3JrcyBhcyBleHBlY3RlZCIpOwotICBkZWJ1ZygiIik7Ci0KLSAgdmFyIGNhbnZhczJk
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczJkIik7Ci0gIHZhciBjdHgyZCA9IGNh
bnZhczJkLmdldENvbnRleHQoIjJkIik7Ci0KLSAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
ICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9ncmFt
ID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVyIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRp
b24iLCAidGV4Q29vcmQwIl0pOwotCi0gIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZm
ZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7Ci0g
IGdsLmJ1ZmZlckRhdGEoCi0gICAgICBnbC5BUlJBWV9CVUZGRVIsCi0gICAgICBuZXcgRmxvYXQz
MkFycmF5KFstMSwgMSwwLCAxLDEsMCwgLTEsLTEsMCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0xLC0xLDAsIDEsMSwwLCAgMSwtMSwwXSksCi0gICAgICBnbC5TVEFUSUNfRFJBVyk7Ci0g
IGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGds
LmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4
T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0YSgKLSAgICAgIGdsLkFSUkFZX0JVRkZFUiwKLSAgICAg
IG5ldyBGbG9hdDMyQXJyYXkoWyAtMi41LC0yLjUsIDMuNSwtMi41LCAtMi41LDMuNSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtMi41LDMuNSwgMy41LC0yLjUsIDMuNSwzLjVdKSwKLSAg
ICAgIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7Ci0g
IGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQot
ICB2YXIgY29sb3JzID0gWwotICAgICAgWzAsMjU1LDEyOCwyNTVdLAotICAgICAgWzEyOCw2NCwy
NTUsMjU1XSwKLSAgICAgIFsxOTIsMjU1LDY0LDI1NV0sCi0gICAgICBbMjAwLDAsMjU1LDI1NV1d
OwotICB2YXIgdGV4UGFyYW0gPSBbCi0gICAgZ2wuUkVQRUFULAotICAgIGdsLkNMQU1QX1RPX0VE
R0UsCi0gICAgZ2wuTUlSUk9SRURfUkVQRUFULAotICAgIGdsLlJFUEVBVF07Ci0KLSAgLy8gTWFr
ZSB0ZXh0dXJlcyBzZXR0aW5nIHRoZSB0ZXh0dXJlIHBhcmFtZXRlcnMgZGlmZmVyZW50bHkgZWFj
aCB0aW1lLi4KLSAgLy8gVGhpcyB2ZXJpZmllcyBib3RoIHRoYXQgdGhlIHJlbmRlciBjb3JyZWN0
IEFORCB0aGF0IHRleHR1cmUgcGFyYW1ldGVycwotICAvLyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRo
ZSB0ZXh0dXJlcywgbm90IHdpdGggdGhlIHRleHR1cmUtdW5pdHMuCi0gIHZhciB0ZXh0dXJlcyA9
IFtdOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgewotICAg
IHZhciBjID0gY29sb3JzW2lpXTsKLSAgICBjdHgyZC5maWxsU3R5bGUgPQotICAgICAgICAicmdi
YSgiICsgY1swXSArICIsIiArIGNbMV0gKyAiLCIgKyBjWzJdICsgIiwiICsgY1szXSArICIpIjsK
LSAgICBjdHgyZC5maWxsUmVjdCgwLCAwLCAxLCAxKTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRl
VGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjYW52YXMyZCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCB0ZXhQ
YXJhbVtpaV0pOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9XUkFQX1QsIHRleFBhcmFtW2lpXSk7Ci0gICAgdGV4dHVyZXNbaWldID0gdGV4OwotICB9Ci0K
LSAgdmFyIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIp
OwotICB2YXIgd29ybGRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgIndvcmxk
Iik7Ci0KLSAgZ2wuY2xlYXJDb2xvcigxLDEsMSwxKTsKLSAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkg
PCBjb2xvcnMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkg
PSBNYXRoLmZsb29yKGlpIC8gMik7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4dHVyZXNbaWldKTsKLSAgICBnbC51bmlmb3JtTWF0cml4NGZ2KAotICAgICAgICB3b3JsZExv
YywgZmFsc2UsCi0gICAgICAgIFswLjUsIDAsIDAsIDAsCi0gICAgICAgICAwLCAwLjUsIDAsIDAs
Ci0gICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgLTAuNSArIHgsIC0wLjUgKyB5LCAwLCAx
XSk7Ci0gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotICB9Ci0KLSAgdmFy
IGJ1ZiA9IG5ldyBVaW50OEFycmF5KDI0ICogMjQgKiA0KTsKLSAgZ2wucmVhZFBpeGVscygwLCAw
LCAyNCwgMjQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIHZhciBwYXNzZWQg
PSB0cnVlOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgewot
ICAgIHZhciB4ID0gaWkgJSAyOwotICAgIHZhciB5ID0gTWF0aC5mbG9vcihpaSAvIDIpOwotICAg
IHZhciBjID0gY29sb3JzW2lpXTsKLSAgICBmb3IgKHZhciB5eSA9IDA7IHl5IDwgMTI7ICsreXkp
IHsKLSAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCAxMjsgKyt4eCkgewotICAgICAgICB2YXIg
ZWMgPSBbMCwwLDAsMF07Ci0gICAgICAgIHN3aXRjaCAodGV4UGFyYW1baWldKSB7Ci0gICAgICAg
ICAgY2FzZSBnbC5SRVBFQVQ6Ci0gICAgICAgICAgICBpZiAoeHggJSAyID09IDEgJiYgeXkgJSAy
ID09IDApIHsKLSAgICAgICAgICAgICAgZWMgPSBjOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgY2FzZSBnbC5DTEFNUF9UT19FREdFOgotICAgICAgICAgICAg
aWYgKHh4IDwgNiAmJiB5eSA+PSA2KSB7Ci0gICAgICAgICAgICAgIGVjID0gYzsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgZ2wuTUlSUk9SRURfUkVQ
RUFUOgotICAgICAgICAgICAgaWYgKHh4ICUgNCA8IDIgJiYgeXkgJSA0ID49IDIpIHsKLSAgICAg
ICAgICAgICAgZWMgPSBjOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgdmFyIG9mZiA9ICgoeSAqIDEyICsgeXkpICogMjQgKyB4ICogMTIgKyB4
eCkgKiA0OwotICAgICAgICBpZiAoYnVmW29mZiArIDBdICE9IGVjWzBdIHx8Ci0gICAgICAgICAg
ICBidWZbb2ZmICsgMV0gIT0gZWNbMV0gfHwKLSAgICAgICAgICAgIGJ1ZltvZmYgKyAyXSAhPSBl
Y1syXSB8fAotICAgICAgICAgICAgYnVmW29mZiArIDNdICE9IGVjWzNdKSB7Ci0gICAgICAgICAg
dmFyIG1zZyA9ICdhdCAoJyArICh4ICogMTIgKyB4eCkgKyAnLCAnICsgKHkgKiAxMiArIHl5KSAr
Ci0gICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsKLSAgICAgICAgICAgICAgZWNbMF0gKyAn
LCAnICsgZWNbMV0gKyAnLCAnICsgZWNbMl0gKyAnLCAnICsgZWNbM10gKyAnIGZvdW5kOiAnICsK
LSAgICAgICAgICAgICAgYnVmW29mZiArIDBdICsgJywgJyArCi0gICAgICAgICAgICAgIGJ1Zltv
ZmYgKyAxXSArICcsICcgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgMl0gKyAnLCAnICsKLSAg
ICAgICAgICAgICAgYnVmW29mZiArIDNdOwotICAgICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLSAg
ICAgICAgICBwYXNzZWQgPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgfQot
ICBpZiAocGFzc2VkKSB7Ci0gICAgdGVzdFBhc3NlZCgicmVuZGVyZWQgYXMgZXhwZWN0ZWQiKTsK
LSAgIH0KLX0KLQotaW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQtMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjk5NjIyMTVjOGFjMjVmNGI2ODNhYTg3NGYzZGQxNzFjNjczZGEwMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQtMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTkyICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgot
KioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0g
ICAgPHRpdGxlPldlYkdMIEFjdGl2ZVRleHR1cmUgQmluZFRleHR1cmUgY29uZm9ybWFuY2UgdGVz
dCAjMjwvdGl0bGU+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNh
bnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4
OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZhczJkIiB3aWR0aD0i
MSIgaGVpZ2h0PSIxIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFz
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci11bmlmb3Jt
IG1hdDQgd29ybGQ7Ci1hdHRyaWJ1dGUgdmVjMyB2UG9zaXRpb247Ci1hdHRyaWJ1dGUgdmVjMiB0
ZXhDb29yZDA7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICBnbF9Q
b3NpdGlvbiA9IHdvcmxkICogdmVjNCh2UG9zaXRpb24sIDEpOwotICB0ZXhDb29yZCA9IHRleENv
b3JkMDsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iZnNoYWRlcjJkIiB0eXBlPSJ4LXNoYWRl
ci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBs
ZXIyRCB0ZXgyZDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gIGds
X0ZyYWdDb2xvciA9IHRleHR1cmUyRCh0ZXgyZCwgdGV4Q29vcmQpOwotfQotPC9zY3JpcHQ+Ci08
c2NyaXB0IGlkPSJmc2hhZGVyQ3ViZSIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXhDdWJlOwotdm9p
ZCBtYWluKCkKLXsKLSAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZUN1YmUodGV4Q3ViZSwgdmVjMygw
LDEsMCkpOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlv
biBpbml0KCkKLXsKLSAgZGVzY3JpcHRpb24oCi0gICAgICAiVGVzdHMgdGhhdCBiaW5kaW5nIGJv
dGggVEVYVFVSRV8yRCBhbmQgVEVYVFVSRV9DVUJFX01BUCB0byB0aGUgc2FtZSIgKwotICAgICAg
ImFjdGl2ZSB0ZXh0dXJlIHVuaXQgd29ya3MgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgdXNlZCIg
KwotICAgICAgInNpbXVsdGFuZW91c2x5IGluIHRoZSBzYW1lIHNoYWRlciBwcm9ncmFtLiIpOwot
Ci0gIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIpOwot
ICB2YXIgY3R4MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotICBjdHgyZC5nbG9iYWxD
b21wb3NpdGVPcGVyYXRpb24gPSAiY29weSI7Ci0KLSAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9n
cmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLCBbInZzaGFkZXIiLCAiZnNoYWRlcjJk
Il0sIFsidlBvc2l0aW9uIiwgInRleENvb3JkMCJdKTsKLQotICB2YXIgcHJvZ3JhbTJkID0gcHJv
Z3JhbTsKLSAgdmFyIHByb2dyYW1DdWJlID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLCBb
InZzaGFkZXIiLCAiZnNoYWRlckN1YmUiXSwgWyJ2UG9zaXRpb24iLCAidGV4Q29vcmQwIl0pOwot
Ci0gIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZl
cihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEoCi0gICAg
ICBnbC5BUlJBWV9CVUZGRVIsCi0gICAgICBuZXcgRmxvYXQzMkFycmF5KFstMSwgMSwwLCAxLDEs
MCwgLTEsLTEsMCwKLSAgICAgICAgICAgICAgICAgICAgICAgIC0xLC0xLDAsIDEsMSwwLCAgMSwt
MSwwXSksCi0gICAgICBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KDApOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwg
MCwgMCk7Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0
YSgKLSAgICAgIGdsLkFSUkFZX0JVRkZFUiwKLSAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAs
IDEsMCwgMCwxLAotICAgICAgICAgICAgICAgICAgICAgICAgIDAsMSwgMSwwLCAxLDFdKSwKLSAg
ICAgIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7Ci0g
IGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQot
ICAvLyBNYWtlIHRleHR1cmUgdW5pdCAxIGFjdGl2ZS4KLSAgZ2wuYWN0aXZlVGV4dHVyZShnbC5U
RVhUVVJFMSk7Ci0KLSAgLy8gTWFrZSBhIDJkIHRleHR1cmUKLSAgdmFyIHRleDJkID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgyZCk7Ci0g
IGN0eDJkLmZpbGxTdHlsZSA9ICJyZ2JhKDAsIDAsIDI1NSwgMjU1KSI7Ci0gIGN0eDJkLmZpbGxS
ZWN0KDAsIDAsIDEsIDEpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLQotICAvLyBtYWtlIGEg
Y3ViZSB0ZXh0dXJlCi0gIHZhciB0ZXhDdWJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlKTsKLSAgY3R4MmQuZmlsbFN0
eWxlID0gInJnYmEoMjU1LCAwLCAyNTUsIDI1NSkiOwotICBjdHgyZC5maWxsUmVjdCgwLCAwLCAx
LCAxKTsKLSAgdmFyIHRhcmdldHMgPSBbCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElW
RV9YLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9Z
LAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICBnbC5URVhUVVJFX0NV
QkVfTUFQX05FR0FUSVZFX1pdOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGFyZ2V0cy5sZW5n
dGg7ICsraWkpIHsKLSAgICBnbC50ZXhJbWFnZTJEKHRhcmdldHNbaWldLCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7Ci0gIH0KLQotICAvLyBTZXR1cCBw
cm9ncmFtMmQgYW5kIHByb2dyYW1DdWJlCi0gIHZhciB0ZXgyZExvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtMmQsICJ0ZXgyZCIpOwotICB2YXIgd29ybGQyZExvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihwcm9ncmFtMmQsICJ3b3JsZCIpOwotICB2YXIgdGV4Q3ViZUxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtQ3ViZSwgInRleEN1YmUiKTsKLSAgdmFyIHdvcmxk
Q3ViZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtQ3ViZSwgIndvcmxkIik7Ci0K
LSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtMmQpOwotICBnbC51bmlmb3JtMWkodGV4MmRMb2MsIDEp
OwotICBnbC51c2VQcm9ncmFtKHByb2dyYW1DdWJlKTsKLSAgZ2wudW5pZm9ybTFpKHRleEN1YmVM
b2MsIDEpOwotCi0gIGdsLmNsZWFyQ29sb3IoMSwwLDAsMSk7Ci0gIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICB2YXIgcHJvZ3JhbXMgPSBb
cHJvZ3JhbTJkLCBwcm9ncmFtQ3ViZV07Ci0gIHZhciB3b3JsZExvY3MgPSBbd29ybGQyZExvYywg
d29ybGRDdWJlTG9jXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDQ7ICsraWkpIHsKLSAgICB2
YXIgeCA9IGlpICUgMjsKLSAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAyKTsKLSAgICBnbC51
c2VQcm9ncmFtKHByb2dyYW1zW3hdKTsKLSAgICBnbC51bmlmb3JtTWF0cml4NGZ2KAotICAgICAg
ICB3b3JsZExvY3NbeF0sIGZhbHNlLAotICAgICAgICBbMC41LCAwLCAwLCAwLAotICAgICAgICAg
MCwgMC41LCAwLCAwLAotICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgIC0wLjUgKyB4LCAt
MC41ICsgeSwgMCwgMV0pOwotICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsK
LSAgfQotCi0gIHZhciBjb2xvcnMgPSBbCi0gICAgICBbMCwwLDI1NSwyNTVdLAotICAgICAgWzI1
NSwwLDI1NSwyNTVdLAotICAgICAgWzAsMCwyNTUsMjU1XSwKLSAgICAgIFsyNTUsMCwyNTUsMjU1
XV07Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5sZW5ndGg7ICsraWkpIHsKLSAg
ICB2YXIgYyA9IGNvbG9yc1tpaV07Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBN
YXRoLmZsb29yKGlpIC8gMik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgeCwgeSwgMSwg
MSwgYyk7Ci0gIH0KLX0KLQotaW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlYjlhNzkyMTU0ODRhNWI5ZDA4ZWM4MmRiZGM1YjE5MzZiOWYyM2MwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTU3ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgot
KioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPldlYkdMIEFjdGl2ZVRleHR1cmUgQmluZFRleHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3Rp
dGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4g
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
MiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFz
PgotPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJ3aWR0
aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLXVuaWZvcm0gbWF0NCB3b3JsZDsKLWF0dHJpYnV0ZSB2
ZWMzIHZQb3NpdGlvbjsKLWF0dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0
ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gIGdsX1Bvc2l0aW9uID0gd29ybGQgKiB2ZWM0KHZQ
b3NpdGlvbiwgMSk7Ci0gIHRleENvb3JkID0gdGV4Q29vcmQwOwotfQotPC9zY3JpcHQ+Ci08c2Ny
aXB0PgotInVzZSBzdHJpY3QiOwotdmFyIGdsOwotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAgZGVz
Y3JpcHRpb24oCi0gICAgICAiVGVzdHMgdGhhdCBnbEFjdGl2ZVRleHR1cmUgYW5kIGdsQmluZFRl
eHR1cmUgd29yayBhcyBleHBlY3RlZCIgKwotICAgICAgIlNwZWNpZmljYWxseSB0ZXh0dXJlIHRh
cmdldHMgYXJlIHBlciBhY3RpdmUgdGV4dHVyZSB1bml0LiIpOwotCi0gIHZhciBjYW52YXMyZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIpOwotICB2YXIgY3R4MmQgPSBjYW52
YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotCi0gIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9ncmFtID0gd3R1
LnNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLAotICAgICAgWyJ2c2hhZGVyIiwgd3R1LnNldHVwU2lt
cGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyKGdsKV0sCi0gICAgICBbJ3ZQb3NpdGlvbicsICd0ZXhD
b29yZDAnXSk7Ci0gIHd0dS5zZXR1cFVuaXRRdWFkKGdsKTsKLSAgZ2wuZGlzYWJsZShnbC5ERVBU
SF9URVNUKTsKLSAgZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOwotCi0gIHZhciBjb2xvcnMgPSBbCi0gICAgICBbMCwxOTIsMTI4LDI1NV0s
Ci0gICAgICBbMTI4LDY0LDI1NSwyNTVdLAotICAgICAgWzE5MiwyNTUsNjQsMjU1XSwKLSAgICAg
IFsyMDAsMCwyNTUsMjU1XV07Ci0KLSAgLy8gTWFrZSA0IHRleHR1cmVzIGJ5IHVzaW5nIDQgYWN0
aXZlIHRleHR1cmUgdW5pdHMgaWYgYXZhaWxhYmxlLgotICB2YXIgdGV4dW5pdHMgPSBNYXRoLm1p
bihjb2xvcnMubGVuZ3RoLCBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NPTUJJTkVEX1RFWFRVUkVf
SU1BR0VfVU5JVFMpKQotICB2YXIgdGV4dHVyZXMgPSBbXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBp
aSA8IHRleHVuaXRzOyArK2lpKSB7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsK
LSAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsgaWkpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdGV4dHVyZXNbaWldID0gdGV4OwotICB9Ci0g
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gIC8vIG5vdyB1c2UgZWFjaCB0
ZXh0dXJlIHVuaXQgdG8gd3JpdGUgaW50byB0aGUgdGV4dHVyZXMsCi0gIGZvciAodmFyIGlpID0g
MDsgaWkgPCB0ZXh1bml0czsgKytpaSkgewotICAgIHZhciBjID0gY29sb3JzW2lpXTsKLSAgICBj
dHgyZC5maWxsU3R5bGUgPQotICAgICAgICAicmdiYSgiICsgY1swXSArICIsIiArIGNbMV0gKyAi
LCIgKyBjWzJdICsgIiwiICsgY1szXSArICIpIjsKLSAgICBjdHgyZC5maWxsUmVjdCgwLCAwLCAx
LCAxKTsKLSAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsgaWkpOwotICAgIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgY2FudmFzMmQpOwotICB9Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwotCi0gIHZhciB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0
ZXgiKTsKLSAgdmFyIHdvcmxkTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ3
b3JsZCIpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICBnbC5jbGVh
ckNvbG9yKDEsMCwwLDEpOwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRleHVuaXRzOyArK2lp
KSB7Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBNYXRoLmZsb29yKGlpIC8gMik7
Ci0gICAgZ2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIGlpKTsKLSAgICBnbC51bmlmb3JtTWF0cml4
NGZ2KAotICAgICAgICB3b3JsZExvYywgZmFsc2UsCi0gICAgICAgIFswLjUsIDAsIDAsIDAsCi0g
ICAgICAgICAwLCAwLjUsIDAsIDAsCi0gICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgLTAu
NSArIHgsIC0wLjUgKyB5LCAwLCAxXSk7Ci0gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMs
IDAsIDYpOwotICB9Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gIGZv
ciAodmFyIGlpID0gMDsgaWkgPCB0ZXh1bml0czsgKytpaSkgewotICAgIHZhciBjID0gY29sb3Jz
W2lpXTsKLSAgICB2YXIgeCA9IGlpICUgMjsKLSAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAy
KTsKLSAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7Ci0gICAgZ2wucmVhZFBpeGVscyh4
LCB5LCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIHZhciBtc2cg
PSAnZXhwZWN0ZWQ6JyArCi0gICAgICAgIGNbMF0gKyAnLCAnICsgY1sxXSArICcsICcgKyBjWzJd
ICsgJywgJyArIGNbM10gKyAnIGZvdW5kOiAnICsKLSAgICAgICAgYnVmWzBdICsgJywgJyArCi0g
ICAgICAgIGJ1ZlsxXSArICcsICcgKwotICAgICAgICBidWZbMl0gKyAnLCAnICsKLSAgICAgICAg
YnVmWzNdOwotICAgIGlmIChidWZbMF0gIT0gY1swXSB8fAotICAgICAgICBidWZbMV0gIT0gY1sx
XSB8fAotICAgICAgICBidWZbMl0gIT0gY1syXSB8fAotICAgICAgICBidWZbM10gIT0gY1szXSkK
LSAgICAgIHRlc3RGYWlsZWQobXNnKTsKLSAgICBlbHNlCi0gICAgICB0ZXN0UGFzc2VkKG1zZyk7
Ci0gIH0KLX0KLQotaW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1hdHRhY2htZW50LWZvcm1hdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hdHRhY2htZW50LWZvcm1hdHMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmE5YTI4ZDMyOTdlZDY4ZGUwNGNlODBkMDYzMDU2YTJjYzI5
NzQ0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgVGV4dHVyZSBBdHRhY2htZW50IEZvcm1hdCBDb25m
b3JtYW5jZSBUZXN0czwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08Y2FudmFzIGlkPSJj
YW52YXMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDox
MDBweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij4gPC9jYW52YXM+Ci08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
dmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiY2FudmFzIik7Ci1pZiAoIWdsKSB7Ci0gIHRl
c3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKLX0gZWxzZSB7Ci0gIHRlc3RQYXNz
ZWQoImNvbnRleHQgZXhpc3RzIik7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiQ2hlY2tpbmcg
dGV4dHVyZSBmb3JtYXRzLiIpOwotCi0gIHZhciBudW1WYWxpZEZvcm1hdHMgPSAwOwotICB2YXIg
Y2xlYXJDb2xvciA9IFswLjI1LCAwLjUsIDAuNzUsIDAuMjVdOwotCi0gIHZhciBmbG9hdFRvQml0
cyA9IGZ1bmN0aW9uKHZhbHVlLCBiaXRzKSB7Ci0gICAgdmFyIHJhbmdlID0gKDEgPDwgYml0cykg
LSAxOwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGlmIChyYW5nZSA+IDApIHsKLSAgICAgIHJl
c3VsdCA9IE1hdGguZmxvb3IoTWF0aC5mbG9vcih2YWx1ZSAqIHJhbmdlKSAqIDI1NSAvIHJhbmdl
KTsKLSAgICB9Ci0KLSAgICAvL2RlYnVnKCJ2ID0gIiArIHZhbHVlICsgIiwgYml0cyA9ICIgKyBi
aXRzICsgIiwgcmFuZ2UgPSAiICsgcmFuZ2UgICsgIiwgcmVzdWx0ID0gIiArIHJlc3VsdCk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLSAgfQotCi0gIHZhciB0ZXN0Rm9ybWF0ID0gZnVuY3Rpb24oaW5m
bykgewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygidGVzdGluZzogIiArIGluZm8uZm9ybWF0
ICsgIiwgIiArIGluZm8udHlwZSk7Ci0KLSAgICB2YXIgZm9ybWF0ID0gZ2xbaW5mby5mb3JtYXRd
OwotICAgIHZhciB0eXBlID0gZ2xbaW5mby50eXBlXTsKLQotICAgIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwKLSAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAvLyBsZXZl
bAotICAgICAgICAgICAgICAgICAgZm9ybWF0LCAgICAgICAgICAgIC8vIGludGVybmFsRm9ybWF0
Ci0gICAgICAgICAgICAgICAgICAxNiwgICAgICAgICAgICAgICAgLy8gd2lkdGgKLSAgICAgICAg
ICAgICAgICAgIDE2LCAgICAgICAgICAgICAgICAvLyBoZWlnaHQKLSAgICAgICAgICAgICAgICAg
IDAsICAgICAgICAgICAgICAgICAvLyBib3JkZXIKLSAgICAgICAgICAgICAgICAgIGZvcm1hdCwg
ICAgICAgICAgICAvLyBmb3JtYXQKLSAgICAgICAgICAgICAgICAgIHR5cGUsICAgICAgICAgICAg
ICAvLyB0eXBlCi0gICAgICAgICAgICAgICAgICBudWxsKTsgICAgICAgICAgICAgLy8gZGF0YQot
ICAgIHZhciBmYlN0YXR1cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpOwotICAgIGRlYnVnKHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgZmJTdGF0dXMpKTsKLSAgICBp
ZiAoZmJTdGF0dXMgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgIGRlYnVnKCJm
b3JtYXQgdW5zdXBwb3J0ZWQiKTsKLSAgICAgIGlmIChpbmZvLm11c3RCZUZyYW1lYnVmZmVyQ29t
cGxldGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZChpbmZvLmZvcm1hdCArICIgbXVzdCBiZSBGUkFN
RUJVRkZFUl9DT01QTEVURSIpOwotICAgICAgfQotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
ICsrbnVtVmFsaWRGb3JtYXRzOwotCi0gICAgdmFyIHN0YXJ0RXhwZWN0ZWQgPSBbMCwgMCwgMCwg
aW5mby5jaGFubmVsc1szXSA8IDAgPyAyNTUgOiAwXTsKLQotICAgIHZhciBleHBlY3RlZCA9IFtd
OwotICAgIHZhciB0b2xlcmFuY2UgPSBbXTsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgNDsg
KytpaSkgewotICAgICAgdmFyIGNvbG9yID0gMDsKLSAgICAgIHZhciBjaGFubmVsID0gaW5mby5j
aGFubmVsc1tpaV07Ci0gICAgICBpZiAoY2hhbm5lbCA8IDApIHsKLSAgICAgICAgY29sb3IgPSBp
aSA8IDMgPyAwIDogMjU1Ci0gICAgICB9IGVsc2UgewotICAgICAgICBjb2xvciA9IGZsb2F0VG9C
aXRzKGNsZWFyQ29sb3JbY2hhbm5lbF0sIGluZm8uYml0c1tpaV0pOwotICAgICAgfQotICAgICAg
ZXhwZWN0ZWQucHVzaChjb2xvcik7Ci0gICAgICB0b2xlcmFuY2UucHVzaChjaGFubmVsIDwgMCA/
IDAgOiAoMSArICgxIDw8ICg4IC0gaW5mby5iaXRzW2lpXSkpKSk7Ci0gICAgfQotCi0gICAgd3R1
LmNoZWNrQ2FudmFzKGdsLCBzdGFydEV4cGVjdGVkLCAic2hvdWxkIGJlICIgKyBzdGFydEV4cGVj
dGVkKTsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLSAgICB3dHUuY2hlY2tD
YW52YXMoZ2wsIGV4cGVjdGVkLCAic2hvdWxkIGJlICIgKyBleHBlY3RlZCArICIgd2l0aCB0b2xl
cmFuY2UgIiArIHRvbGVyYW5jZSwgdG9sZXJhbmNlKTsKLSAgfQotCi0gIHZhciB2YWxpZEZvcm1h
dHMgPSBbCi0gICAgeyBmb3JtYXQ6ICdSR0JBJywKLSAgICAgIHR5cGU6ICAnVU5TSUdORURfQllU
RScsCi0gICAgICBjaGFubmVsczogWzAsIDEsIDIsIDNdLAotICAgICAgYml0czogWzgsIDgsIDgs
IDhdLAotICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogdHJ1ZQotICAgIH0sCi0gICAg
eyBmb3JtYXQ6ICdBTFBIQScsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAg
Y2hhbm5lbHM6IFstMSwgLTEsIC0xLCAzXSwKLSAgICAgIGJpdHM6IFswLCAwLCAwLCA4XSwKLSAg
ICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1h
dDogJ1JHQicsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAgY2hhbm5lbHM6
IFswLCAxLCAyLCAtMV0sCi0gICAgICBiaXRzOiBbOCwgOCwgOCwgMF0sCi0gICAgICBtdXN0QmVG
cmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdSR0InLAot
ICAgICAgdHlwZTogICdVTlNJR05FRF9TSE9SVF81XzZfNScsCi0gICAgICBjaGFubmVsczogWzAs
IDEsIDIsIC0xXSwKLSAgICAgIGJpdHM6IFs1LCA2LCA1LCAwXSwKLSAgICAgIG11c3RCZUZyYW1l
YnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1hdDogJ1JHQkEnLAotICAg
ICAgdHlwZTogICdVTlNJR05FRF9TSE9SVF81XzVfNV8xJywKLSAgICAgIGNoYW5uZWxzOiBbMCwg
MSwgMiwgM10sCi0gICAgICBiaXRzOiBbNSwgNSwgNSwgMV0sCi0gICAgICBtdXN0QmVGcmFtZWJ1
ZmZlckNvbXBsZXRlOiBmYWxzZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdSR0JBJywKLSAgICAg
IHR5cGU6ICAnVU5TSUdORURfU0hPUlRfNF80XzRfNCcsCi0gICAgICBjaGFubmVsczogWzAsIDEs
IDIsIDNdLAotICAgICAgYml0czogWzQsIDQsIDQsIDRdLAotICAgICAgbXVzdEJlRnJhbWVidWZm
ZXJDb21wbGV0ZTogZmFsc2UKLSAgICB9LAotICAgIHsgZm9ybWF0OiAnTFVNSU5BTkNFJywKLSAg
ICAgIHR5cGU6ICAnVU5TSUdORURfQllURScsCi0gICAgICBjaGFubmVsczogWzAsIDAsIDAsIC0x
XSwKLSAgICAgIGJpdHM6IFs4LCA4LCA4LCAtMV0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNv
bXBsZXRlOiBmYWxzZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdMVU1JTkFOQ0VfQUxQSEEnLAot
ICAgICAgdHlwZTogICdVTlNJR05FRF9CWVRFJywKLSAgICAgIGNoYW5uZWxzOiBbMCwgMCwgMCwg
M10sCi0gICAgICBiaXRzOiBbOCwgOCwgOCwgOF0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNv
bXBsZXRlOiBmYWxzZQotICAgIH0KLSAgXTsKLQotICBnbC5jbGVhckNvbG9yKGNsZWFyQ29sb3Jb
MF0sIGNsZWFyQ29sb3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwotICB2YXIg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmYm8pOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9f
RURHRSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5MSU5FQVIpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wuZnJhbWVidWZmZXJUZXh0dXJl
MkQoCi0gICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRV
UkVfMkQsIHRleCwgMCk7Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHZhbGlkRm9ybWF0cy5s
ZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgaW5mbyA9IHZhbGlkRm9ybWF0c1tpaV07Ci0gICAgdGVz
dEZvcm1hdChpbmZvKTsKLSAgfQotCi0gIGRlYnVnKCIiKTsKLSAgc2hvdWxkQmVUcnVlKCJudW1W
YWxpZEZvcm1hdHMgPiAwIik7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ0
aGVyZSBzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci19Ci0KLWRlYnVnKCIiKTsKLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY2xlYXIuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGM3Njc5ZmQ3MDA5ZjJiNTc3Y2E0NWYwNzcwZDYyMjQ1NzBhYjcx
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY2xlYXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDY1ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgot
KioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPldlYkdMIHRleHR1cmUgY2xlYXIgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQiIGhlaWdodD0i
NCIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4K
LSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKLXZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsK
LXZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsK
LQotdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleCk7Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEs
IDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBuZXcgVWludDhBcnJheShbMCwyNTUsMCwyNTVdKSk7Ci13dHUuY2xlYXJBbmREcmF3VW5p
dFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAi
c2hvdWxkIGJlIGdyZWVuIik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hv
dWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY29tcGxldGUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4MjJjZjRlZDljNWE4ZjQ3NThkZTRhZDU0ZDgwZGFjNjY3ZWI0NmRmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYg
KzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFs
cyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiog
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgot
KiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB
Q1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0Ug
T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
V2ViR0wgIlRleHR1cmUgQ29tcGxldGUiIHRleHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxl
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNDAi
IGhlaWdodD0iNDAiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+
Ci08Y2FudmFzIGlkPSJjYW52YXMyZCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBzdHlsZT0id2lk
dGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3Qi
OwotZnVuY3Rpb24gaW5pdCgpCi17Ci0gIGRlc2NyaXB0aW9uKAotICAgICAgIkNoZWNrcyB0aGF0
IGEgdGV4dHVyZSB0aGF0IGlzIG5vdCAtdGV4dHVyZS1jb21wbGV0ZS0gZG9lcyBub3QgZHJhdyBp
ZiIrCi0gICAgICAiIGZpbHRlcmluZyBuZWVkcyBtaXBzIik7Ci0KLSAgdmFyIGNhbnZhczJkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczJkIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZh
czJkLmdldENvbnRleHQoIjJkIik7Ci0gIGN0eDJkLmZpbGxTdHlsZSA9ICJyZ2JhKDAsMTkyLDEy
OCwxKSI7Ci0gIGN0eDJkLmZpbGxSZWN0KDAsIDAsIDE2LCAxNik7Ci0KLSAgdmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwotICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4
YW1wbGUiKTsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICB2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLSAgZ2wuZGlzYWJsZShnbC5E
RVBUSF9URVNUKTsKLSAgZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0KLSAgdmFyIHRleCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAg
Ly8gMTZ4MTYgdGV4dHVyZSBubyBtaXBzCi0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOwotCi0gIHZh
ciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotICBnbC51bmlm
b3JtMWkobG9jLCAwKTsKLQotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUu
Y2hlY2tDYW52YXMoZ2wsIFswLDAsMCwyNTVdLAotICAgICAgInRleHR1cmUgdGhhdCBpcyBub3Qg
LXRleHR1cmUtY29tcGxldGUtIHdoZW4gIiArCi0gICAgICAiVEVYVFVSRV9NSU5fRklMVEVSIG5v
dCBORUFSRVNUIG9yIExJTkVBUiBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOwotfQotCi1p
bml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLWZvcm1hdHMtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0
dXJlLWZvcm1hdHMtdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjQ3
ZmE1MDk1ODU5NGRlNTJhM2MzMjY5NGY5YTAyZGFmMzQ0ZDczLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1mb3JtYXRzLXRlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5MSArMCwwIEBACi08
IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgot
KioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRl
YWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv
ZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1h
dGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFU
RVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD
T05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJ
TiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBE
RUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBUZXh0
dXJlIEZvcm1hdCBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGls
cy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdp
ZHRoPSIyIiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0
aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOyI+IDwvY2FudmFzPgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsK
LWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgYWxs
b3cgdGhlIE9wZW5HTCBFUyAyLjAgdGV4dHVyZSBmb3JtYXRzIGFuZCBkbyBub3QgYWxsb3cgRGVz
a3RvcEdMIHRleHR1cmUgZm9ybWF0cy4iKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNhbnZhcy5n
ZXRDb250ZXh0Iik7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoImNhbnZhcyIpOwotaWYgKCFnbCkgewotICB0ZXN0RmFpbGVkKCJjb250
ZXh0IGRvZXMgbm90IGV4aXN0Iik7Ci19IGVsc2UgewotICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4
aXN0cyIpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoIkNoZWNraW5nIHRleHR1cmUgZm9ybWF0
cy4iKTsKLQotICB2YXIgY3JlYXRlVGV4dHVyZSA9IGZ1bmN0aW9uKGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIG9wdF9ib3JkZXIpIHsKLSAgICAgIHZhciBib3JkZXIgPSAob3B0X2JvcmRlciA9PT0g
dW5kZWZpbmVkKSA/IDAgOiBvcHRfYm9yZGVyOwotICAgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRl
eHR1cmUoKTsKLSAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsCi0gICAgICAgICAgICAgICAgICAgIDAsICAg
ICAgICAgICAgICAgICAvLyBsZXZlbAotICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbEZvcm1h
dCwgICAgLy8gaW50ZXJuYWxGb3JtYXQKLSAgICAgICAgICAgICAgICAgICAgMTYsICAgICAgICAg
ICAgICAgIC8vIHdpZHRoCi0gICAgICAgICAgICAgICAgICAgIDE2LCAgICAgICAgICAgICAgICAv
LyBoZWlnaHQKLSAgICAgICAgICAgICAgICAgICAgYm9yZGVyLCAgICAgICAgICAgIC8vIGJvcmRl
cgotICAgICAgICAgICAgICAgICAgICBmb3JtYXQsICAgICAgICAgICAgLy8gZm9ybWF0Ci0gICAg
ICAgICAgICAgICAgICAgIGdsLlVOU0lHTkVEX0JZVEUsICAvLyB0eXBlCi0gICAgICAgICAgICAg
ICAgICAgIG51bGwpOyAgICAgICAgICAgICAvLyBkYXRhCi0gIH0KLQotICB2YXIgdGVzdFZhbGlk
Rm9ybWF0ID0gZnVuY3Rpb24oaW50ZXJuYWxGb3JtYXQsIGZvcm1hdE5hbWUpIHsKLSAgICAgIGNy
ZWF0ZVRleHR1cmUoaW50ZXJuYWxGb3JtYXQsIGludGVybmFsRm9ybWF0KTsKLSAgICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgICAgICAgICAgICAgIndhcyBhYmxlIHRv
IGNyZWF0ZSB0ZXh0dXJlIG9mICIgKyBmb3JtYXROYW1lKTsKLSAgfQotCi0gIHZhciB0ZXN0SW52
YWxpZEZvcm1hdCA9IGZ1bmN0aW9uKGludGVybmFsRm9ybWF0LCBmb3JtYXROYW1lKSB7Ci0gICAg
ICBjcmVhdGVUZXh0dXJlKGludGVybmFsRm9ybWF0LCBpbnRlcm5hbEZvcm1hdCk7Ci0gICAgICB2
YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKLSAgICAgIGlmIChlcnIgPT0gZ2wuTk9fRVJST1IpIHsK
LSAgICAgICAgICB0ZXN0RmFpbGVkKCJzaG91bGQgTk9UIGJlIGFibGUgdG8gY3JlYXRlIHRleHR1
cmUgb2YgdHlwZSAiICsgZm9ybWF0TmFtZSk7Ci0gICAgICB9IGVsc2UgaWYgKGVyciA9PSBnbC5J
TlZBTElEX09QRVJBVElPTikgewotICAgICAgICAgIHRlc3RGYWlsZWQoInNob3VsZCByZXR1cm4g
Z2wuSU5WQUxJRF9FTlVNIGZvciB0eXBlICIgKyBmb3JtYXROYW1lKTsKLSAgICAgIH0gZWxzZSBp
ZiAoZXJyID09IGdsLklOVkFMSURfRU5VTSkgewotICAgICAgICAgIHRlc3RQYXNzZWQoIm5vdCBh
YmxlIHRvIGNyZWF0ZSBpbnZhbGlkIGZvcm1hdDogIiArIGZvcm1hdE5hbWUpOwotICAgICAgfQot
ICB9Ci0KLSAgdmFyIGludmFsaWRFbnVtcyA9IFsKLSAgICAnMScsCi0gICAgJzInLAotICAgICcz
JywKLSAgICAnNCcsCi0gICAgJ1JHQjQnLAotICAgICdSR0I1JywKLSAgICAnUkdCOCcsCi0gICAg
J1JHQjEwJywKLSAgICAnUkdCMTInLAotICAgICdSR0IxNicsCi0gICAgJ1JHQkEyJywKLSAgICAn
UkdCQTQnLAotICAgICdSR0I1X0ExJywKLSAgICAnUkdCQTgnLAotICAgICdSR0IxMF9BMicsCi0g
ICAgJ1JHQkExMicsCi0gICAgJ1JHQkExNicsCi0gICAgJ0JHUicsCi0gICAgJ0JHUkEnLAotICAg
ICdBTFBIQTRfRVhUJywKLSAgICAnQUxQSEE4X0VYVCcsCi0gICAgJ0FMUEhBMTJfRVhUJywKLSAg
ICAnQUxQSEExNl9FWFQnLAotICAgICdDT01QUkVTU0VEX0FMUEhBJywKLSAgICAnQ09NUFJFU1NF
RF9MVU1JTkFOQ0UnLAotICAgICdDT01QUkVTU0VEX0xVTUlOQU5DRV9BTFBIQScsCi0gICAgJ0NP
TVBSRVNTRURfSU5URU5TSVRZJywKLSAgICAnQ09NUFJFU1NFRF9SR0InLAotICAgICdDT01QUkVT
U0VEX1JHQkEnLAotICAgICdERVBUSF9DT01QT05FTlQxNicsCi0gICAgJ0RFUFRIX0NPTVBPTkVO
VDI0JywKLSAgICAnREVQVEhfQ09NUE9ORU5UMzInLAotICAgICdMVU1JTkFOQ0U0X0VYVCcsCi0g
ICAgJ0xVTUlOQU5DRThfRVhUJywKLSAgICAnTFVNSU5BTkNFMTJfRVhUJywKLSAgICAnTFVNSU5B
TkNFMTZfRVhUJywKLSAgICAnTFVNSU5BTkNFNF9BTFBIQTRfRVhUJywKLSAgICAnTFVNSU5BTkNF
Nl9BTFBIQTJfRVhUJywKLSAgICAnTFVNSU5BTkNFOF9BTFBIQThfRVhUJywKLSAgICAnTFVNSU5B
TkNFMTJfQUxQSEE0X0VYVCcsCi0gICAgJ0xVTUlOQU5DRTEyX0FMUEhBMTJfRVhUJywKLSAgICAn
TFVNSU5BTkNFMTZfQUxQSEExNl9FWFQnLAotICAgICdJTlRFTlNJVFlfRVhUJywKLSAgICAnSU5U
RU5TSVRZNF9FWFQnLAotICAgICdJTlRFTlNJVFk4X0VYVCcsCi0gICAgJ0lOVEVOU0lUWTEyX0VY
VCcsCi0gICAgJ0lOVEVOU0lUWTE2X0VYVCcsCi0gICAgJ1JHQjRfRVhUJywKLSAgICAnUkdCNV9F
WFQnLAotICAgICdSR0I4X0VYVCcsCi0gICAgJ1JHQjEwX0VYVCcsCi0gICAgJ1JHQjEyX0VYVCcs
Ci0gICAgJ1JHQjE2X0VYVCcsCi0gICAgJ1JHQkEyX0VYVCcsCi0gICAgJ1JHQkE0X0VYVCcsCi0g
ICAgJ1JHQjVfQTFfRVhUJywKLSAgICAnUkdCQThfRVhUJywKLSAgICAnUkdCMTBfQTJfRVhUJywK
LSAgICAnUkdCQTEyX0VYVCcsCi0gICAgJ1JHQkExNl9FWFQnLAotICAgICdTTFVNSU5BTkNFX0VY
VCcsCi0gICAgJ1NMVU1JTkFOQ0U4X0VYVCcsCi0gICAgJ1NMVU1JTkFOQ0VfQUxQSEFfRVhUJywK
LSAgICAnU0xVTUlOQU5DRThfQUxQSEE4X0VYVCcsCi0gICAgJ1NSR0JfRVhUJywKLSAgICAnU1JH
QjhfRVhUJywKLSAgICAnU1JHQl9BTFBIQV9FWFQnLAotICAgICdTUkdCOF9BTFBIQTgnCi0gIF07
Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGludmFsaWRFbnVtcy5sZW5ndGg7ICsraWkpIHsK
LSAgICB2YXIgZm9ybWF0TmFtZSA9IGludmFsaWRFbnVtc1tpaV0KLSAgICBpZiAoZGVza3RvcEdM
W2Zvcm1hdE5hbWVdID09PSB1bmRlZmluZWQpIHsKLSAgICAgIGRlYnVnKCJiYWQgZm9ybWF0IiAr
IGZvcm1hdE5hbWUpCi0gICAgfSBlbHNlIHsKLSAgICAgIHRlc3RJbnZhbGlkRm9ybWF0KGRlc2t0
b3BHTFtmb3JtYXROYW1lXSwgIkdMXyIgKyBmb3JtYXROYW1lKTsKLSAgICB9Ci0gIH0KLQotICB2
YXIgdmFsaWRFbnVtcyA9IFsKLSAgICAnQUxQSEEnLAotICAgICdSR0InLAotICAgICdSR0JBJywK
LSAgICAnTFVNSU5BTkNFJywKLSAgICAnTFVNSU5BTkNFX0FMUEhBJwotICBdOwotCi0gIGZvciAo
dmFyIGlpID0gMDsgaWkgPCB2YWxpZEVudW1zLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBmb3Jt
YXROYW1lID0gdmFsaWRFbnVtc1tpaV0KLSAgICB0ZXN0VmFsaWRGb3JtYXQoZ2xbZm9ybWF0TmFt
ZV0sICJnbC4iICsgZm9ybWF0TmFtZSk7Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJj
aGVja2luZyBub24gMCBib3JkZXIgcGFyYW1ldGVyIHRvIGdsLlRleEltYWdlMkQiKTsKLSAgY3Jl
YXRlVGV4dHVyZShnbFsnUkdCQSddLCBnbFsnUkdCQSddLCAxKTsKLSAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX1ZBTFVFLAotICAgICAgICAgICAgIm5vbiAwIGJvcmRlciB0byBnbC5U
ZXhJbWFnZTJEIHNob3VsZCByZXR1cm4gSU5WQUxJRF9WQUxVRSIpOwotCi0KLSAgdmFyIGNoZWNr
VHlwZXMgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwot
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7
Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwg
Z2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0KLSAgICB2YXIgbG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgICBnbC51bmlmb3JtMWkobG9jLCAw
KTsKLQotICAgIHZhciBjaGVja1R5cGUgPSBmdW5jdGlvbihyLCBnLCBiLCBhLCB0eXBlLCBmb3Jt
YXQsIGJ1ZikgewotICAgICAgdmFyIHR5cGVOYW1lID0gd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0
eXBlKTsKLSAgICAgIHZhciBmb3JtYXROYW1lID0gd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBmb3Jt
YXQpOwotICAgICAgdmFyIGRlc2MgPSAiZm9ybWF0OiAiICsgZm9ybWF0TmFtZSArICIsIHR5cGU6
ICIgKyB0eXBlTmFtZTsKLSAgICAgIGRlYnVnKCIiKTsKLSAgICAgIGRlYnVnKCJjaGVja2luZyBn
bC50ZXhJbWFnZTJEIHdpdGggIiArIGRlc2MpOwotICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELAotICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgLy8gbGV2ZWwK
LSAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCAgICAgICAgICAgIC8vIGludGVybmFsRm9ybWF0
Ci0gICAgICAgICAgICAgICAgICAgIDIsICAgICAgICAgICAgICAgICAvLyB3aWR0aAotICAgICAg
ICAgICAgICAgICAgICAyLCAgICAgICAgICAgICAgICAgLy8gaGVpZ2h0Ci0gICAgICAgICAgICAg
ICAgICAgIDAsICAgICAgICAgICAgICAgICAvLyBib3JkZXIKLSAgICAgICAgICAgICAgICAgICAg
Zm9ybWF0LCAgICAgICAgICAgIC8vIGZvcm1hdAotICAgICAgICAgICAgICAgICAgICB0eXBlLCAg
ICAgICAgICAgICAgLy8gdHlwZQotICAgICAgICAgICAgICAgICAgICBidWYpOyAgICAgICAgICAg
ICAgLy8gZGF0YQotCi0gICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAg
ICAgICAgICAgICAgICJnbC50ZXhJbWFnZTJEIHdpdGggIiArIGRlc2MgKyAiIHNob3VsZCBnZW5l
cmF0ZSBOT19FUlJPUiIpOwotCi0gICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFsy
NTUsIDAsIDAsIDI1NV0pOwotICAgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbcixnLGIsYV0sCi0g
ICAgICAgICAgICAgICAgICAgICAgInRleHR1cmUgIiArIGRlc2MgKyAiIHNob3VsZCBkcmF3IHdp
dGggIiArCi0gICAgICAgICAgICAgICAgICAgICAgciArICIsICIgKyBnICsgIiwgIiArIGIgKyAi
LCAiICsgYSk7Ci0KLSAgIH0KLSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAyNTUsIDAsIDI1NSwg
Z2wuVU5TSUdORURfQllURSwgZ2wuUkdCQSwKLSAgICAgICBuZXcgVWludDhBcnJheSgKLSAgICAg
ICAgIFsgMCwgMjU1LCAwLCAyNTUsCi0gICAgICAgICAgIDAsIDI1NSwgMCwgMjU1LAotICAgICAg
ICAgICAwLCAyNTUsIDAsIDI1NSwKLSAgICAgICAgICAgMCwgMjU1LCAwLCAyNTVdKSk7Ci0gICBj
aGVja1R5cGUoCi0gICAgICAgMCwgMCwgMjU1LCAyNTUsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80
XzQsIGdsLlJHQkEsCi0gICAgICAgbmV3IFVpbnQxNkFycmF5KAotICAgICAgICAgWyAyNTUsIDI1
NSwKLSAgICAgICAgICAgMjU1LCAyNTUsCi0gICAgICAgICAgIDI1NSwgMjU1LAotICAgICAgICAg
ICAyNTUsIDI1NV0pKTsKLSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAyNTUsIDAsIDI1NSwgZ2wu
VU5TSUdORURfU0hPUlRfNV82XzUsIGdsLlJHQiwKLSAgICAgICBuZXcgVWludDE2QXJyYXkoCi0g
ICAgICAgICBbIDIwMTYsIDIwMTYsCi0gICAgICAgICAgIDIwMTYsIDIwMTYsCi0gICAgICAgICAg
IDIwMTYsIDIwMTYsCi0gICAgICAgICAgIDIwMTYsIDIwMTZdKSk7Ci0gICBjaGVja1R5cGUoCi0g
ICAgICAgMCwgMCwgMjU1LCAyNTUsIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIGdsLlJHQkEs
Ci0gICAgICAgbmV3IFVpbnQxNkFycmF5KAotICAgICAgICAgWyA2MywgNjMsCi0gICAgICAgICAg
IDYzLCA2MywKLSAgICAgICAgICAgNjMsIDYzLAotICAgICAgICAgICA2MywgNjNdKSk7Ci0gICBj
aGVja1R5cGUoCi0gICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCBnbC5VTlNJR05FRF9CWVRFLCBn
bC5MVU1JTkFOQ0UsCi0gICAgICAgbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAgICAyNTUsCi0g
ICAgICAgICAgIDI1NSwKLSAgICAgICAgICAgMjU1LAotICAgICAgICAgICAyNTVdKSk7Ci0gICBj
aGVja1R5cGUoCi0gICAgICAgMCwgMCwgMCwgMTI4LCBnbC5VTlNJR05FRF9CWVRFLCBnbC5BTFBI
QSwKLSAgICAgICBuZXcgVWludDhBcnJheShbCi0gICAgICAgICAgIDEyOCwKLSAgICAgICAgICAg
MTI4LAotICAgICAgICAgICAxMjgsCi0gICAgICAgICAgIDEyOF0pKTsKLSAgIGNoZWNrVHlwZSgK
LSAgICAgICAxMjgsIDEyOCwgMTI4LCAxOTIsIGdsLlVOU0lHTkVEX0JZVEUsIGdsLkxVTUlOQU5D
RV9BTFBIQSwKLSAgICAgICBuZXcgVWludDhBcnJheShbCi0gICAgICAgICAgIDEyOCwgMTkyLAot
ICAgICAgICAgICAxMjgsIDE5MiwKLSAgICAgICAgICAgMTI4LCAxOTIsCi0gICAgICAgICAgIDEy
OCwgMTkyXSkpOwotICB9Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGds
KTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0FMSUdOTUVOVCwgMSk7Ci0gIGNoZWNrVHlw
ZXMoKTsKLX0KLQotZGVidWcoIiIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBpLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHR1cmUtaGQtZHBpLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcx
YWUyZjhmNDM5ZDQxYmI0NGRmMmY4MGQ4OGRkMmE3YzliZDhmOGYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLWhkLWRwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLTwhLS0K
LQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgot
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0q
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIEhELURQSSBp
c3N1ZXMgdGV4dHVyZSBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBzdHlsZT0i
d2lkdGg6IDQwcHg7IGhlaWdodDogMzBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJp
Y3QiOwotZGVzY3JpcHRpb24oKTsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVw
VGV4dHVyZWRRdWFkKGdsKTsKLQotZnVuY3Rpb24gZmlsbEluTWlwcyhnbCwgc2l6ZSkgewotICAv
LyBmaWxsIGluIHRoZSBtaXBzCi0gIHZhciBsZXZlbCA9IDE7Ci0gIGZvciAoOzspIHsKLSAgICBz
aXplIC89IDI7Ci0gICAgaWYgKHNpemUgPCAxKSB7Ci0gICAgICBicmVhazsKLSAgICB9Ci0gICAg
dmFyIG51bUJ5dGVzID0gc2l6ZSAqIHNpemUgKiA0OwotICAgIHZhciBwaXhlbHMgPSBuZXcgVWlu
dDhBcnJheShudW1CeXRlcyk7Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG51bUJ5dGVzOyBq
aiArPSA0KSB7Ci0gICAgICBwaXhlbHNbamogKyAwXSA9IDA7Ci0gICAgICBwaXhlbHNbamogKyAx
XSA9IDI1NTsKLSAgICAgIHBpeGVsc1tqaiArIDJdID0gMDsKLSAgICAgIHBpeGVsc1tqaiArIDNd
ID0gMjU1OwotICAgIH0KLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gdGVzdENhbnZhcyhzaXplKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVi
dWcoInRlc3RpbmcgMkQgY2FudmFzIHNpemUgIiArIHNpemUgKyAiLCAiICsgc2l6ZSk7Ci0KLSAg
dmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBjYW52YXMu
d2lkdGggPSBzaXplOwotICBjYW52YXMuaGVpZ2h0ID0gc2l6ZTsKLSAgdmFyIGN0eCA9IGNhbnZh
cy5nZXRDb250ZXh0KCIyZCIpOwotICBjdHguZmlsbFN0eWxlID0gInJnYigwLDI1NSwwKSI7Ci0g
IGN0eC5maWxsUmVjdCgwLCAwLCBzaXplLCBzaXplKTsKLQotICB2YXIgdGV4ID0gZ2wuY3JlYXRl
VGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGNhbnZhcyk7Ci0KLSAgZmlsbEluTWlwcyhnbCwgc2l6ZSk7Ci0KLSAgLy8gRHJhdy4g
SWYgdGhpcyBhbiBIRC1EUEkgZGV2aWNlIGFuZCB0aGUgMmQgY2FudmFzIGlzIGRvdWJsZSByZXMg
b3IgbGFyZ2VyCi0gIC8vIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHNjYWxlIHRvIENTUyBwaXhl
bHMgKGllLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpKAotICAvLyB3aGVuIGRvaW5nIHRo
ZSBjb3B5IGluIHRleEltYWdlMkQuIElmIGl0IGhhcyBub3Qgc2NhbGVkIGFuZCBpbnN0ZWFkIGRv
bmUKLSAgLy8gYSBkaXJlY3QgY29weSBvZiB0aGUgbGFyZ2VyIHRleHR1cmUgdGhpcyB0ZXN0IHdp
bGwgbm90IGhhdmUgY3JlYXRlZCBlbm91Z2ggbWlwcwotICAvLyBhbmQgd2lsbCB0aGVyZWZvcmUg
bm90IGJlICJ0ZXh0dXJlIGNvbXBsZXRlIiBhbmQgd2lsbCByZW5kZXIgaW4gYmxhY2suCi0gIHd0
dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1
NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0V2ViR0wo
c2l6ZSkgewotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJ0ZXN0aW5nIFdlYkdMIGNhbnZhcyBzaXpl
ICIgKyBzaXplICsgIiwgIiArIHNpemUpOwotCi0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKTsKLSAgY2FudmFzLndpZHRoID0gc2l6ZTsKLSAgY2FudmFzLmhl
aWdodCA9IHNpemU7Ci0gIHZhciBnbDIgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0g
IGdsMi5jbGVhckNvbG9yKDAsMSwwLDEpOwotICBnbDIuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCk7Ci0KLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMpOwotCi0gIGZpbGxJbk1p
cHMoZ2wsIHNpemUpOwotCi0gIC8vIERyYXcuIElmIHRoaXMgYW4gSEQtRFBJIGRldmljZSBjaGVj
ayBmb3IgMiBwb3NzaWJsZSBidWdzLgotICAvLwotICAvLyAxKSB0aGUgV2ViR0wgY2FudmFzIGlz
IGRvdWJsZSByZXMgb3IgbGFyZ2VyLiBUaGF0J3MganVzdCBhIGJ1ZyBwZXJpb2QgYW5kCi0gIC8v
ICAgIGlzIGNoZWNrZWQgZm9yIGluIGFub3RoZXIgdGVzdCBidXQgd291bGQgYWxzbyBmYWlsIGhl
cmUuCi0gIC8vCi0gIC8vIDIpIHRoZSBXZWJHTCBjYW52YXMgaXMgc2luZ2xlIHJlcyBidXQgdGhl
IGNvZGUgdGhlIHNjYWxlcyBhIGRvdWJsZSByZXMKLSAgLy8gICAgMmQgY2FudmFzIGFsc28gbWlz
dGFrZW5seSBzY2FsZXMgYSBzaW5nbGUgcmVzIFdlYkdMIGNhbnZhcy4KLSAgLy8KLSAgLy8gSWYg
aXQgaGFzIGJlZW4gc2NhbGVkIHRoZW4gd2UnbGwgaGF2ZSB0aGUgd3Jvbmcga2luZCBvZiBtaXBz
IGNoYWluIGhlcmUuCi0gIC8vIExldmVsIDAgd2lsbCBiZSBoYWxmIHJlc29sdXRpb24uIExldmVs
IDEgd2lsbCBiZSB0aGUgc2FtZSByZXNvbHV0aW9uCi0gIC8vIGFuZCB3aWxsIHRoZXJlZm9yZSBu
b3QgYmUgInRleHR1cmUgY29tcGxldGUiIGFuZCB3aWxsIHJlbmRlciBpbiBibGFjay4KLSAgd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1
LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Ci19Ci0KLXRlc3RDYW52YXMoNCk7Ci10ZXN0
Q2FudmFzKDUxMik7Ci10ZXN0V2ViR0woNCk7Ci10ZXN0V2ViR0woNTEyKTsKLWdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0KLXZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbWlwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW1pcHMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTRjMmU4MGYyOGVjNThhZmRmMzBiMjQyMTZhM2I1ZDAxODMw
Y2ZmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbWlwcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzE5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAot
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PHRpdGxlPldlYkdMIHRleHR1cmUgbWlwcyBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9
IjIiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQg
aWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLXVuaWZvcm0gdmVjNCB1TXVs
dDsKLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKLWF0dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsK
LXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfUG9zaXRpb24g
PSB2UG9zaXRpb24gKiB1TXVsdDsKLSAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsKLX0KLTwvc2Ny
aXB0PgotCi08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
LXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotdW5pZm9ybSBzYW1wbGVyMkQgdGV4OwotdmFyeWlu
ZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0
dXJlMkQodGV4LCB0ZXhDb29yZCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmlj
dCI7Ci12YXIgY2FudmFzOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotZnVuY3Rpb24gaW5p
dCgpCi17Ci0gIGRlc2NyaXB0aW9uKCJDaGVja3MgbWlwIGlzc3VlcyIpOwotCi0gIGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7Ci0gIHNob3VsZEJlKCJjYW52YXMu
d2lkdGgiLCAiMiIpOwotICBzaG91bGRCZSgiY2FudmFzLmhlaWdodCIsICIyIik7Ci0KLSAgdmFy
IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotCi0gIHZhciB0ZXggPSBnbC5jcmVh
dGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGds
LmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfT1BFUkFUSU9OLCAiZm9yIGdlbmVyYXRlTWlwbWFwIHdpdGggbWlwIDAgaXMgMHgw
Iik7Ci0gIGdsLnRleEltYWdlMkQoCi0gICAgICBnbC5URVhUVVJFXzJELCAxLCBnbC5SR0JBLCAx
LCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgbmV3IFVpbnQ4QXJyYXko
NCkpOwotICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvciBnZW5lcmF0ZU1pcG1hcCB3aXRoIG1p
cCAwIGlzIDB4MCIpOwotCi0gIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4KTsKLSAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wu
VEVYVFVSRV9DVUJFX01BUCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sICJmb3IgZ2VuZXJhdGVNaXBtYXAgd2l0aCBtaXAgMCBpcyAweDAiKTsKLQotICB2YXIg
ZmFjZXMgPSBbCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lU
SVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1oKLSAgXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZhY2VzLmxlbmd0aDsgKytpaSkgewot
ICAgIGdsLnRleEltYWdlMkQoCi0gICAgICAgIGZhY2VzW2lpXSwgMCwgZ2wuUkdCQSwgMiwgMiwg
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCAq
IDIgKiAyKSk7Ci0gICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9DVUJFX01BUCk7Ci0g
ICAgZ2xFcnJvclNob3VsZEJlKGdsLCBpaSA9PSA1ID8gZ2wuTk9fRVJST1IgOiBnbC5JTlZBTElE
X09QRVJBVElPTiwgImZvciBnZW5lcmF0ZU1pcG1hcCB3aXRoICIgKyAoaWkgKyAxKSArICIgZmFj
ZXMiKTsKLSAgfQotCi0gIHd0dS5zZXR1cFVuaXRRdWFkKGdsLCAwLCAxKTsKLSAgdmFyIHByb2dy
YW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgICAgZ2wsIFsndnNoYWRlcicsICdmc2hhZGVyJ10s
IFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLCBbMCwgMV0pOwotCi0gIGdsLmRpc2FibGUoZ2wu
REVQVEhfVEVTVCk7Ci0gIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwotCi0gIHZhciBjb2xvcnMgPSB7
Ci0gICAgYmx1ZTogWzAsIDAsIDI1NSwgMjU1XSwKLSAgICByZWQ6IFsyNTUsIDAsIDAsIDI1NV0s
Ci0gICAgZ3JlZW46ICBbMCwgMjU1LCAwLCAyNTVdLAotICAgIGN5YW46IFsxMjgsIDI1NSwgMjU1
LCAyNTVdLAotICAgIGJsYWNrOiBbMCwgMCwgMCwgMjU1XSwKLSAgICBibGFuazogWzAsIDAsIDAs
IDBdCi0gIH07Ci0KLSAgdmFyIG1pcHMgPSBbCi0gIF07Ci0KLSAgdmFyIHRleExvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0gIGdsLnVuaWZvcm0xaSh0ZXhMb2Ms
IDApOwotICB2YXIgbXVsdExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidU11
bHQiKTsKLQotICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gIHZhciBjbGVhclRleCA9IGNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wudW5pZm9y
bTRmKG11bHRMb2MsIDEsIDEsIDEsIDEpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJE
LCBjbGVhclRleCk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
MTYsIDE2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgZGVidWcoJ2ds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTYsIDE2LCAwLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsnKTsKLSAgc2V0TWlwRGF0YSgwLCAxNiwgJ2JsYW5r
Jyk7Ci0gIG1ha2VEaXZNaXBDaGFpbigpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwotICBjaGVjaygn
YmxhbmsnLCAidGV4dHVyZSBjcmVhdGVkIHdpdGggbnVsbCB0aGF0IGhhcyBhbGwgbWlwcyIpOwot
Ci0gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgdmFyIHRleCA9IGNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wudW5pZm9ybTRmKG11bHRMb2Ms
IDEsIDEsIDEsIDEpOwotCi0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0g
IC8vIDE2eDE2IHRleHR1cmUgbm8gbWlwcwotICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwgJ2N5YW4n
KTsKLQotICBjaGVjaygnYmxhY2snLAotICAgICAgICAidGV4dHVyZSB0aGF0IGlzIG1pc3Npbmcg
bWlwcyB3aGVuIFRFWFRVUkVfTUlOX0ZJTFRFUiBub3QgTkVBUkVTVCBvciBMSU5FQVIiKTsKLQot
ICBnZW5lcmF0ZU1pcG1hcCgpOwotCi0gIGNoZWNrKCdjeWFuJywgInRleHR1cmUgdGhhdCBoYXMg
YWxsIG1pcHMiKTsKLQotICAvLyBGaWxsIGluIHRoZSBib3R0b20gMiBtaXBzIHdpdGggYSBkaWZm
ZXJlbnQgY29sb3IuCi0gIGZpbGxMZXZlbCh0ZXgsIDQsIDEsICdncmVlbicpOwotICBmaWxsTGV2
ZWwodGV4LCAzLCAyLCAnZ3JlZW4nKTsKLQotICAvLyBDaG9vc2UgdGhlIG5lYXJlc3QgbWlwCi0g
IHRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5M
SU5FQVJfTUlQTUFQX05FQVJFU1QpOwotCi0gIGNoZWNrKCdncmVlbicsICJ0ZXh0dXJlIHRoYXQg
aXMgb25seSB1c2luZyB0aGUgc21hbGxlc3QgMiBtaXBzIik7Ci0KLSAgZ2wudW5pZm9ybTRmKG11
bHRMb2MsIDE2LCAxNiwgMSwgMSk7Ci0KLSAgY2hlY2soJ2N5YW4nLCAidGV4dHVyZSB0aGF0IGlz
IHVzaW5nIG9ubHkgdGhlIGxhcmdlc3QgMiBtaXBzIik7Ci0KLSAgLy8gU2V0IHRoZSB0b3AgbGV2
ZWwKLSAgZmlsbExldmVsKHRleCwgMCwgMSwgJ3JlZCcpOwotICBjaGVjaygncmVkJywKLSAgICAg
ICAgInRleHR1cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRoZSB0b3AgbGV2ZWwgZXZlbiB0aG91Z2gg
b3RoZXIgbGV2ZWxzIGFyZSBkZWZpbmVkIik7Ci0KLSAgLy8gU2V0IHRoZSB0b3AgMiBsZXZlbHMg
dXNpbmcgZ2VuZXJhdGVNaXBtYXAKLSAgZmlsbExldmVsKHRleCwgMCwgMiwgJ2JsdWUnKTsKLSAg
Z2VuZXJhdGVNaXBtYXAoKTsKLQotICBjaGVjaygnYmx1ZScsCi0gICAgICAgICJ0ZXh0dXJlIHRo
YXQgaXMgb25seSB1c2luZyB0aGUgdG9wIDIgbGV2ZWxzIGV2ZW4gdGhvdWdoIG90aGVyIGxldmVs
cyBhcmUgZGVmaW5lZCIpOwotCi0gIC8vIFNldCB0aGUgdG9wIDIgbGV2ZWxzIGJhY2sgdG8gc2l6
ZXMgdGhhdCBlbmQgdXAgdXNpbmcgbGV2ZWxzIDIsIDMsIGFuZCA0IGFnYWluLgotICBmaWxsTGV2
ZWwodGV4LCAwLCAxNiwgJ2JsdWUnKTsKLSAgZmlsbExldmVsKHRleCwgMSwgOCwgJ2JsdWUnKTsK
LSAgY2hlY2soJ2JsdWUnLCAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdGhlIGxhcmdlc3Qg
MiBtaXBzIik7Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9jLCAxLCAxLCAxLCAxKTsKLSAgY2hlY2so
J2dyZWVuJywgInRleHR1cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRoZSBzbWFsbGVzdCAyIG1pcHMi
KTsKLQotICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gIHZhciB0ZXggPSBjcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLnVuaWZvcm00ZihtdWx0
TG9jLCAxLCAxLCAxLCAxKTsKLSAgZmlsbExldmVsKHRleCwgMCwgOCwgJ2N5YW4nKTsKLSAgZ2Vu
ZXJhdGVNaXBtYXAoKTsKLSAgY2hlY2soJ2N5YW4nLCAidGV4dHVyZSB0aGF0IGhhcyAzIG1pcHMi
KTsKLQotICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwgJ2JsdWUnKTsKLSAgdGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGNoZWNr
KCdibHVlJywgInRleHR1cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRvcCBtaXBzIik7Ci0KLSAgZmls
bExldmVsKHRleCwgMCwgOCwgJ3JlZCcpOwotICB0ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9ORUFSRVNUKTsKLSAgY2hl
Y2soJ2N5YW4nLCAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgc21hbGxlc3QgbWlwcyIpOwot
Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9jLCAxNiwgMTYsIDEsIDEpOwotICBjaGVjaygncmVkJywg
InRleHR1cmUgdGhhdCBpcyB1c2luZyBvbmx5IHRoZSBsYXJnZXN0IG1pcCIpOwotCi0gIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgdmFy
IHRleCA9IGNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDEsIDEsIDEs
IDEpOwotICBmaWxsTGV2ZWwodGV4LCAyLCAxLCAnZ3JlZW4nKTsKLSAgZmlsbExldmVsKHRleCwg
MSwgMiwgJ2dyZWVuJyk7Ci0gIGZpbGxMZXZlbCh0ZXgsIDAsIDQsICdncmVlbicpOwotICBjaGVj
aygnZ3JlZW4nLCAidGV4dHVyZSB0aGF0IHdhcyBidWlsdCBzbWFsbGVzdCBtaXAgZmlyc3QiKTsK
LQotICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gIHZhciB0ZXggPSBjcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9j
LCAxLCAxLCAxLCAxKTsKLSAgZmlsbExldmVsKHRleCwgMCwgMTYsICdyZWQnKTsKLSAgZ2VuZXJh
dGVNaXBtYXAoKTsKLSAgY2hlY2soJ3JlZCcsICJ0ZXh0dXJlIHdpdGggMSBnZW5taXBtYXBzIik7
Ci0gIGZpbGxMZXZlbCh0ZXgsIDAsIDE2LCAnYmx1ZScpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwot
ICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwgJ2dyZWVuJyk7Ci0gIGdlbmVyYXRlTWlwbWFwKCk7Ci0g
IGNoZWNrKCdncmVlbicsICJ0ZXh0dXJlIHdpdGggMiBnZW5taXBtYXBzIik7Ci0KLSAgLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycy4iKTsKLQot
ICBmdW5jdGlvbiBjcmVhdGVUZXh0dXJlKCkgewotICAgIGRlYnVnKCI8aHIvPmdsLmNyZWF0ZVRl
eHR1cmUoKSIpOwotICAgIG1pcHMgPSBbXTsKLSAgICBtYWtlRGl2TWlwQ2hhaW4oKTsKLSAgICBy
ZXR1cm4gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICB9Ci0KLSAgZnVuY3Rpb24gdGV4UGFyYW1ldGVy
aSh0YXJnZXQsIHBuYW1lLCB2YWx1ZSkgewotICAgIGRlYnVnKCJnbC50ZXhQYXJhbWV0ZXJpKCIg
KwotICAgICAgICAgIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGFyZ2V0KSArICIsICIgKwotICAg
ICAgICAgIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgcG5hbWUpICsgIiwgIiArCi0gICAgICAgICAg
d3R1LmdsRW51bVRvU3RyaW5nKGdsLCB2YWx1ZSkgKyAiKSIpCi0gICAgZ2wudGV4UGFyYW1ldGVy
aSh0YXJnZXQsIHBuYW1lLCB2YWx1ZSk7Ci0gIH0KLQotICBmdW5jdGlvbiBnZW5lcmF0ZU1pcG1h
cCgpIHsKLSAgICBkZWJ1ZygiZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCkiKTsKLSAg
ICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgICB2YXIgbWlwMCA9IG1pcHNb
MF07Ci0gICAgdmFyIHNpemUgPSBtaXAwLnNpemU7Ci0gICAgdmFyIGxldmVsID0gMTsKLSAgICBm
b3IoOzspIHsKLSAgICAgIHNpemUgPSBNYXRoLmZsb29yKHNpemUgLyAyKTsKLSAgICAgIGlmICgh
c2l6ZSkgewotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICAgIHNldE1pcERhdGEobGV2ZWws
IHNpemUsIG1pcDAuY29sb3IpOwotICAgICAgKytsZXZlbDsKLSAgICB9Ci0gICAgbWFrZURpdk1p
cENoYWluKCk7Ci0gIH0KLQotICBmdW5jdGlvbiBjaGVjayhjb2xvciwgbXNnKSB7Ci0gICAgd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvbG9y
c1tjb2xvcl0sIG1zZyArICIgc2hvdWxkIGRyYXcgd2l0aCAiICsgY29sb3IpOwotICB9Ci0KLSAg
ZnVuY3Rpb24gZmlsbExldmVsKHRleCwgbGV2ZWwsIHNpemUsIGNvbG9yKSB7Ci0gICAgc2V0TWlw
RGF0YShsZXZlbCwgc2l6ZSwgY29sb3IpOwotICAgIGRlYnVnKCJnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsICIgKyBsZXZlbCArICIsIGdsLlJHQkEsICIgKyBzaXplICsgIiwgIiArIHNpemUg
KwotICAgICAgICAgICIsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsICIgKyBjb2xvciAr
ICIpOyIpOwotICAgIHd0dS5maWxsVGV4dHVyZShnbCwgdGV4LCBzaXplLCBzaXplLCBjb2xvcnNb
Y29sb3JdLCBsZXZlbCk7Ci0gICAgbWFrZURpdk1pcENoYWluKCk7Ci0gIH0KLQotICBmdW5jdGlv
biBzZXRNaXBEYXRhKGxldmVsLCBzaXplLCBjb2xvcikgewotICAgIG1pcHNbbGV2ZWxdID0gewot
ICAgICAgc2l6ZTogc2l6ZSwKLSAgICAgIGNvbG9yOiBjb2xvcgotICAgIH07Ci0gIH0KLQotICBm
dW5jdGlvbiBtYWtlRGl2TWlwQ2hhaW4oY29sb3IpIHsKLSAgICB2YXIgaHRtbCA9IFsKLSAgICAg
ICc8ZGl2IHN0eWxlPSJoZWlnaHQ6IDY4cHg7IG1hcmdpbi10b3A6IDVweCI+JywKLSAgICAgICc8
ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0OyI+bWlwczogPC9kaXY+J107Ci0gICAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IDU7ICsraWkpIHsKLSAgICAgIHZhciBtaXAgPSBtaXBzW2lpXTsKLSAgICAgIGlm
IChtaXApIHsKLSAgICAgICAgaHRtbC5wdXNoKG1ha2VEaXZTcXVhcmUobWlwLnNpemUsIG1pcC5j
b2xvcikpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgaHRtbC5wdXNoKG1ha2VEaXZTcXVhcmUo
MTYsIHVuZGVmaW5lZCkpOwotICAgICAgfQotICAgIH0KLSAgICBodG1sLnB1c2goIjwvZGl2PiIp
OwotICAgIGRlYnVnKGh0bWwuam9pbigiIikpOwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZURpdlNx
dWFyZShzaXplLCBjb2xvcikgewotICAgIHNpemUgKj0gNDsKLSAgICB2YXIgYyA9IGNvbG9yID8g
Y29sb3JzW2NvbG9yXSA6IFsyNTUsMjU1LDI1NV07Ci0gICAgdmFyIGJvcmRlciA9IGNvbG9yID8g
J3NvbGlkJyA6ICdkYXNoZWQnOwotICAgIHJldHVybiAnPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsg
d2lkdGg6ICcgKyBzaXplICsgJ3B4OyBoZWlnaHQ6ICcgKyBzaXplICsKLSAgICAgICAgICAgJ3B4
OyBiYWNrZ3JvdW5kLWNvbG9yOiAnICsgcmdiKGMpICsKLSAgICAgICAgICAgJzsgYm9yZGVyOiAx
cHggJyArIGJvcmRlciArICcgYmxhY2s7IG1hcmdpbi1yaWdodDogM3B4OyI+PC9kaXY+JzsKLSAg
fQotCi0gIGZ1bmN0aW9uIHJnYihjKSB7Ci0gICAgcmV0dXJuICdyZ2IoJyArIGNbMF0gKyAnLCcg
KyBjWzFdICsgJywnICsgY1syXSArJyknOwotICB9Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtdmlkZW8uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90LXZpZGVvLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZmI0ODMwYWQ2MGFjZjc5OTM0YTU3M2RhODZi
ODA1OTE3MGZmODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtdmlkZW8uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgot
Ki8KLQotLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xU
ZXN0VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleHR1cmVMb2MgPSBudWxsOwotdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotdmFyIHZpZGVvOwotCi1pbml0VGVzdGluZ0hhcm5l
c3NXYWl0VW50aWxEb25lKCk7Ci0KLWZ1bmN0aW9uIGluaXQoKQotewotICAgIGRlc2NyaXB0aW9u
KCdWZXJpZnkgbnBvdCB2aWRlbycpOwotCi0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJleGFtcGxlIik7Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZh
cyk7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0gICAg
Z2wuY2xlYXJDb2xvcigwLDAsMCwxKTsKLSAgICBnbC5jbGVhckRlcHRoKDEpOwotCi0gICAgdGV4
dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0KLSAgICB2
aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWQiKTsKLSAgICB3dHUuc3RhcnRQbGF5
aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBydW5UZXN0KTsKLX0KLQotLy8gVGhlc2UgdHdvIGRl
Y2xhcmF0aW9ucyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0byBzZWUgdGhlbQot
dmFyIGJ1ZiA9IG51bGw7Ci12YXIgaWR4ID0gMDsKLXZhciBwaXhlbCA9IFswLCAwLCAwXTsKLXZh
ciBjb3JyZWN0Q29sb3IgPSBudWxsOwotdmFyIHRleHR1cmU7Ci0KLWZ1bmN0aW9uIHJ1bk9uZUl0
ZXJhdGlvbih2aWRlb0VsZW1lbnQsIHVzZVRleFN1YkltYWdlMkQsIGZsaXBZLCB0b3BDb2xvciwg
Ym90dG9tQ29sb3IsIGJhZE1pbkZpbHRlciwgYmFkQ2xhbXAsIGdlbk1pcHMpCi17Ci0gICAgZGVi
dWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3Rl
eEltYWdlMkQnKSArCi0gICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSk7Ci0gICAgZ2wu
Y2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIC8v
IERpc2FibGUgYW55IHdyaXRlcyB0byB0aGUgYWxwaGEgY2hhbm5lbAotICAgIGdsLmNvbG9yTWFz
aygxLCAxLCAxLCAwKTsKLSAgICBpZiAoIXRleHR1cmUpIHsKLSAgICAgICAgdGV4dHVyZSA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKLSAgICB9Ci0gICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0
dXJlIHVuaXQgMAotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwot
ICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBwYXJhbWV0ZXJzCi0gICAgZ2wucGl4ZWxTdG9yZWko
Z2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkpOwotICAgIC8vIFVwbG9hZCB0aGUgdmlkZW9F
bGVtZW50IGludG8gdGhlIHRleHR1cmUKLSAgICBkZWJ1Zygic2l6ZTogIiArIHZpZGVvRWxlbWVu
dC52aWRlb1dpZHRoICsgIngiICsgdmlkZW9FbGVtZW50LnZpZGVvSGVpZ2h0KTsKLSAgICBpZiAo
dXNlVGV4U3ViSW1hZ2UyRCkgewotICAgICAgICAvLyBJbml0aWFsaXplIHRoZSB0ZXh0dXJlIHRv
IGJsYWNrIGZpcnN0Ci0gICAgICAgIGRlYnVnKCJ1c2UgdGV4U3ViSW1hZ2UyRCIpOwotICAgICAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsCi0gICAgICAgICAgICAg
ICAgICAgICAgdmlkZW9FbGVtZW50LnZpZGVvV2lkdGgsIHZpZGVvRWxlbWVudC52aWRlb0hlaWdo
dCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBu
dWxsKTsKLSAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB2aWRlb0VsZW1lbnQpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGRlYnVnKCJ1c2UgdGV4SW1hZ2UyRCIpOwotICAgICAgICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVv
RWxlbWVudCk7Ci0gICAgfQotCi0gICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBn
bC5MSU5FQVIpOwotICAgIGlmIChiYWRNaW5GaWx0ZXIpIHsKLSAgICAgICAgZGVidWcoImJhZCBt
aW4gZmlsdGVyIik7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX05FQVJFU1QpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGRlYnVnKCJnb29kIG1pbiBmaWx0ZXIiKTsKLSAgICAgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7
Ci0gICAgfQotICAgIGlmIChiYWRDbGFtcCkgewotICAgICAgICBkZWJ1ZygiYmFkIGNsYW1wIik7
Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MsIGdsLlJFUEVBVCk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1QsIGdsLlJFUEVBVCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVi
dWcoImdvb2QgY2xhbXAiKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VE
R0UpOwotICAgIH0KLSAgICBpZiAoZ2VuTWlwcykgewotICAgICAgICBkZWJ1ZygiZ2VuZXJhdGUg
bWlwcyIpOwotICAgICAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgICAg
ICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInNob3VsZCBiZSBJ
TlZBTElEX09QRVJBVElPTiIpOwotICAgIH0KLQotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIG51bGwpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OwotCi0vLyAgICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotLy8g
ICAgYy53aWR0aCA9IDE2OwotLy8gICAgYy5oZWlnaHQgPSAxNjsKLS8vICAgIGMuc3R5bGUuYm9y
ZGVyID0gIjFweCBzb2xpZCBibGFjayI7Ci0vLyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCIy
ZCIpOwotLy8gICAgY3R4LmRyYXdJbWFnZSh2aWRlb0VsZW1lbnQsIDAsIDAsIDE2LCAxNik7Ci0v
LyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpOwotCi0gICAgLy8gUG9pbnQgdGhlIHVu
aWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAotICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJl
TG9jLCAwKTsKLSAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKLSAgICB3dHUuY2xlYXJBbmREcmF3
VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLSAgICAvLyBDaGVjayBhIGZldyBwaXhlbHMg
bmVhciB0aGUgdG9wIGFuZCBib3R0b20gYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKLSAgICAvLyB0
aGUgcmlnaHQgY29sb3IuCi0gICAgdmFyIHRvbGVyYW5jZSA9IDU7Ci0gICAgZGVidWcoIkNoZWNr
aW5nIGxvd2VyIGxlZnQgY29ybmVyIik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwg
NCwgMiwgMiwgYm90dG9tQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAic2hvdWxkQmUg
IiArIGJvdHRvbUNvbG9yLCB0b2xlcmFuY2UpOwotICAgIGRlYnVnKCJDaGVja2luZyB1cHBlciBs
ZWZ0IGNvcm5lciIpOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDQsIGdsLmNhbnZhcy5o
ZWlnaHQgLSA4LCAyLCAyLCB0b3BDb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzaG91
bGRCZSAiICsgdG9wQ29sb3IsIHRvbGVyYW5jZSk7Ci0gICAgZGVidWcoIiIpOwotfQotCi1mdW5j
dGlvbiBydW5UZXN0KHZpZGVvRWxlbWVudCkKLXsKLSAgICB2YXIgcmVkID0gWzI1NSwgMCwgMF07
Ci0gICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMF07Ci0gICAgdmFyIGJsYWNrID0gWzAsIDAsIDBd
OwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0cnVlLCBibGFjaywg
YmxhY2ssIHRydWUsIHRydWUsIHRydWUpOwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1l
bnQsIGZhbHNlLCB0cnVlLCBibGFjaywgYmxhY2ssIHRydWUsIGZhbHNlLCBmYWxzZSk7Ci0gICAg
cnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgZmFsc2UsIHRydWUsIGJsYWNrLCBibGFjaywg
ZmFsc2UsIHRydWUsIGZhbHNlKTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCBm
YWxzZSwgdHJ1ZSwgYmxhY2ssIGJsYWNrLCB0cnVlLCB0cnVlLCBmYWxzZSk7Ci0gICAgcnVuT25l
SXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgZmFsc2UsIHRydWUsIGdyZWVuLCByZWQsIGZhbHNlLCBm
YWxzZSwgZmFsc2UpOwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCBm
YWxzZSwgcmVkLCBncmVlbiwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0
aW9uKHZpZGVvRWxlbWVudCwgdHJ1ZSwgdHJ1ZSwgZ3JlZW4sIHJlZCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgdHJ1ZSwgZmFsc2UsIHJl
ZCwgZ3JlZW4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotCi0gICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKLSAgICBmaW5pc2hUZXN0KCk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSI2NCIgaGVpZ2h0PSI0OCI+PC9jYW52YXM+Ci08ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTx2aWRlbyBpZD0i
dmlkIiBzdHlsZT0iZGlzcGxheTpub25lOyI+Ci0gIDxzb3VyY2Ugc3JjPSIuLi9yZXNvdXJjZXMv
bnBvdC12aWRlby5tcDQiICB0eXBlPSd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MkUwMUUiJyAv
PgotICA8c291cmNlIHNyYz0iLi4vcmVzb3VyY2VzL25wb3QtdmlkZW8ud2VibXZwOC53ZWJtIiB0
eXBlPSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOCInIC8+Ci0gIDxzb3VyY2Ugc3JjPSIuLi9yZXNv
dXJjZXMvbnBvdC12aWRlby50aGVvcmEub2d2IiAgdHlwZT0ndmlkZW8vb2dnOyBjb2RlY3M9InRo
ZW9yYSInIC8+Ci08L3ZpZGVvPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZkZDhhZjI4MmUxNDRmNzk3ZTAxZTNiMDJiNGJiYzQ2ODk3Y2EyMTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXh0dXJlLW5wb3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0OCArMCwwIEBACi08IS0t
Ci0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBOb24tUG93
ZXIgb2YgMiB0ZXh0dXJlIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHN0eWxl
PSJ3aWR0aDogNDBweDsgaGVpZ2h0OiAzMHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFk
ZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsK
LWF0dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQg
bWFpbigpCi17Ci0gICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci0gICAgdGV4Q29vcmQgPSB0
ZXhDb29yZDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1z
aGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLXVuaWZvcm0gc2Ft
cGxlckN1YmUgdGV4OwotdmFyeWluZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAg
ICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlQ3ViZSh0ZXgsIG5vcm1hbGl6ZSh2ZWMzKHRleENvb3Jk
LCAxKSkpOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRp
b24oZG9jdW1lbnQudGl0bGUpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBU
ZXh0dXJlZFF1YWQoZ2wpOwotCi1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hv
dWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotCi12YXIgdGV4ID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOwotCi0vLyBDaGVjayB0aGF0IGFuIE5QT1QgdGV4dHVyZSBub3Qgb24gbGV2ZWwgMCBn
ZW5lcmF0ZXMgSU5WQUxJRF9WQUxVRQotd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDUsIDMsIFsw
LCAxOTIsIDEyOCwgMjU1XSwgMSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFM
VUUsCi0gICAgImdsLnRleEltYWdlMkQgd2l0aCBOUE9UIHRleHR1cmUgd2l0aCBsZXZlbCA+IDAg
c2hvdWxkIHJldHVybiBJTlZBTElEX1ZBTFVFIik7Ci0KLS8vIENoZWNrIHRoYXQgYW4gTlBPVCB0
ZXh0dXJlIG9uIGxldmVsIDAgc3VjY2VlZHMKLXd0dS5maWxsVGV4dHVyZShnbCwgdGV4LCA1LCAz
LCBbMCwgMTkyLCAxMjgsIDI1NV0pOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwK
LSAgICAiZ2wudGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSBhdCBsZXZlbCAwIHNob3VsZCBz
dWNjZWVkIik7Ci0KLS8vIENoZWNrIHRoYXQgZ2VuZXJhdGVNaXBtYXAgZmFpbHMgb24gTlBPVAot
Z2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfT1BFUkFUSU9OLAotICAgICJnbC5nZW5lcmF0ZU1pcG1hcCB3aXRoIE5QT1QgdGV4
dHVyZSBzaG91bGQgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OIik7Ci0KLXZhciBsb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotZ2wudW5pZm9ybTFpKGxvYywgMCk7
Ci0KLS8vIENoZWNrIHRoYXQgbm90aGluZyBpcyBkcmF3biBpZiBmaWx0ZXJpbmcgaXMgbm90IGNv
cnJlY3QgZm9yIE5QT1QKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLWdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLlJFUEVBVCk7Ci1nbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5SRVBFQVQpOwotCi13
dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBb
MCwgMCwgMCwgMjU1XSwKLSAgICAiTlBPVCB0ZXh0dXJlIHdpdGggVEVYVFVSRV9XUkFQIHNldCB0
byBSRVBFQVQgc2hvdWxkIGRyYXcgd2l0aCAwLDAsMCwyNTUiKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1Q
X1RPX0VER0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dS
QVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVF9NSVBNQVBfTElORUFSKTsKLQotd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAs
IDAsIDAsIDI1NV0sCi0gICAgIk5QT1QgdGV4dHVyZSB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBu
b3QgTkVBUkVTVCBvciBMSU5FQVIgc2hvdWxkIGRyYXcgd2l0aCAwLDAsMCwyNTUiKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0
dXAuIik7Ci0KLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5MSU5FQVIpOwotCi13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1
LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMTkyLCAxMjgsIDI1NV0sCi0gICAgIk5QT1QgdGV4
dHVyZSB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBzZXQgdG8gTElORUFSIHNob3VsZCBkcmF3LiIp
OwotCi1nbC5jb3B5VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCBnbC5SR0JBLCAwLCAwLCA1
LCAzLCAwKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKLSAgICAiY29w
eVRleEltYWdlMkQgd2l0aCBOUE9UIHRleHR1cmUgd2l0aCBsZXZlbCA+IDAgc2hvdWxkIHJldHVy
biBJTlZBTElEX1ZBTFVFLiIpOwotCi0vLyBDaGVjayB0aGF0IGdlbmVyYXRlTWlwbWFwIGZvciBh
biBQT1QgdGV4dHVyZSBzdWNjZWVkcwotd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDQsIDQsIFsw
LCAxOTIsIDEyOCwgMjU1XSk7Ci1nbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLWds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgImdsLnRleEltYWdlMkQgYW5kIGds
LmdlbmVyYXRlTWlwbWFwIHdpdGggUE9UIHRleHR1cmUgYXQgbGV2ZWwgMCBzaG91bGQgc3VjY2Vl
ZCIpOwotCi1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTElORUFSX01JUE1BUF9MSU5FQVIpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci1nbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOwotZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFUKTsK
LQotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBn
bCwgWzAsIDE5MiwgMTI4LCAyNTVdLAotICAgICJQT1QgdGV4dHVyZSB3aXRoIFRFWFRVUkVfTUlO
X0ZJTFRFUiBzZXQgdG8gTElORUFSX01JUE1BUF9MSU5FQVIgc2hvdWxkIGRyYXcuIik7Ci1nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNl
dHVwLiIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiY2hlY2sgdXNpbmcgY3ViZW1hcCIpOwotdmFy
IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgIGdsLCBbJ3ZzaGFkZXInLCAnZnNoYWRl
ciddLCBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKLXZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0KLS8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJlIG5vdCBvbiBs
ZXZlbCAwIGdlbmVyYXRlcyBJTlZBTElEX1ZBTFVFCi1maWxsQ3ViZVRleHR1cmUoZ2wsIHRleCwg
NSwgMywgWzAsIDE5MiwgMTI4LCAyNTVdLCAxKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9WQUxVRSwKLSAgICAiZ2wudGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSB3aXRoIGxl
dmVsID4gMCBzaG91bGQgcmV0dXJuIElOVkFMSURfVkFMVUUiKTsKLQotLy8gQ2hlY2sgdGhhdCBh
biBOUE9UIHRleHR1cmUgb24gbGV2ZWwgMCBzdWNjZWVkcwotZmlsbEN1YmVUZXh0dXJlKGdsLCB0
ZXgsIDUsIDUsIFswLCAxOTIsIDEyOCwgMjU1XSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLAotICAgICJnbC50ZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0dXJlIGF0IGxldmVsIDAg
c2hvdWxkIHN1Y2NlZWQiKTsKLQotLy8gQ2hlY2sgdGhhdCBnZW5lcmF0ZU1pcG1hcCBmYWlscyBv
biBOUE9UCi1nbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLWdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImdsLmdlbmVyYXRlTWlwbWFw
IHdpdGggTlBPVCB0ZXh0dXJlIHNob3VsZCByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT04iKTsKLQot
dmFyIGxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci1nbC51bmlm
b3JtMWkobG9jLCAwKTsKLQotLy8gQ2hlY2sgdGhhdCBub3RoaW5nIGlzIGRyYXduIGlmIGZpbHRl
cmluZyBpcyBub3QgY29ycmVjdCBmb3IgTlBPVAotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
X0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5F
QVJFU1QpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJF
X1dSQVBfUywgZ2wuUkVQRUFUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01B
UCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLlJFUEVBVCk7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7Ci13dHUuY2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAwLCAwLCAyNTVdLAotICAg
ICJOUE9UIGN1YmVtYXAgd2l0aCBURVhUVVJFX1dSQVAgc2V0IHRvIFJFUEVBVCBzaG91bGQgZHJh
dyB3aXRoIDAsMCwwLDI1NSIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNo
b3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1n
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfV1JBUF9ULCBn
bC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUX01JUE1BUF9MSU5FQVIpOwotCi13dHUu
Y2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwg
MCwgMCwgMjU1XSwKLSAgICAiTlBPVCBjdWJlbWFwIHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIG5v
dCBORUFSRVNUIG9yIExJTkVBUiBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOwotZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1
cC4iKTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7
Ci13dHUuY2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1XSwKLSAgICAiTlBP
VCBjdWJlbWFwIHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIHNldCB0byBMSU5FQVIgc2hvdWxkIGRy
YXcuIik7Ci0KLS8vIENoZWNrIHRoYXQgYW4gUE9UIHRleHR1cmUgb24gbGV2ZWwgMCBzdWNjZWVk
cwotZmlsbEN1YmVUZXh0dXJlKGdsLCB0ZXgsIDQsIDQsIFswLCAxOTIsIDEyOCwgMjU1XSk7Ci1n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICJnbC50ZXhJbWFnZTJEIHdpdGgg
UE9UIHRleHR1cmUgYXQgbGV2ZWwgMCBzaG91bGQgc3VjY2VlZCIpOwotCi1nbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFS
X01JUE1BUF9MSU5FQVIpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBn
bC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOwotZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFU
KTsKLQotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAg
ICBnbCwgWzAsIDAsIDAsIDI1NV0sCi0gICAgIlBPVCBjdWJlbWFwIHdpdGggVEVYVFVSRV9NSU5f
RklMVEVSIHNldCB0byBMSU5FQVJfTUlQTUFQX0xJTkVBUiBidXQgbm8gbWlwcyBkcmF3IHdpdGgg
MCwwLDAsMjU1Iik7Ci0KLS8vIENoZWNrIHRoYXQgZ2VuZXJhdGVNaXBtYXAgc3VjY2VlZHMgb24g
UE9UCi1nbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLWdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgImdsLmdlbmVyYXRlTWlwbWFwIHdpdGggUE9UIHRl
eHR1cmUgc2hvdWxkIHJldHVybiBzdWNjZWVkIik7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVh
ZChnbCk7Ci13dHUuY2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1XSwKLSAg
ICAiUE9UIGN1YmVtYXAgd2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0IHRvIExJTkVBUl9NSVBN
QVBfTElORUFSIHNob3VsZCBkcmF3LiIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKLQotZnVuY3Rpb24gZmlsbEN1YmVUZXh0dXJlKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNv
bG9yLCBvcHRfbGV2ZWwpIHsKLSAgb3B0X2xldmVsID0gb3B0X2xldmVsIHx8IDA7Ci0gIHZhciBj
YW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgY2FudmFzLndpZHRo
ID0gd2lkdGg7Ci0gIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7Ci0gIHZhciBjdHgyZCA9IGNhbnZh
cy5nZXRDb250ZXh0KCcyZCcpOwotICBjdHgyZC5maWxsU3R5bGUgPSAicmdiYSgiICsgY29sb3Jb
MF0gKyAiLCIgKyBjb2xvclsxXSArICIsIiArIGNvbG9yWzJdICsgIiwiICsgY29sb3JbM10gKyAi
KSI7Ci0gIGN0eDJkLmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXgpOwotICB2YXIgdGFyZ2V0cyA9IFsKLSAgICBn
bC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9O
RUdBVElWRV9YLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICBnbC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9aLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl07Ci0gIGZvciAodmFy
IHR0ID0gMDsgdHQgPCB0YXJnZXRzLmxlbmd0aDsgKyt0dCkgewotICAgIGdsLnRleEltYWdlMkQo
Ci0gICAgICAgIHRhcmdldHNbdHRdLCBvcHRfbGV2ZWwsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGNhbnZhcyk7Ci0gIH0KLX07Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08
L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1z
aXplLWN1YmUtbWFwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNp
emUtY3ViZS1tYXBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNDU0YzQz
YjkxZWU1OWYyMGZlZTIwZmEzODc5YTEzZmIyYzhhOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJl
LXNpemUtY3ViZS1tYXBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNTUgKzAsMCBAQAotPCEt
LQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoq
Ci0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
LSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVy
ZSBzaXplIGN1YmUgbWFwIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHN0
eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZz
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlv
bjsKLXVuaWZvcm0gbWF0NCByb3RhdGlvbjsKLXZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQg
bWFpbigpCi17Ci0gICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci0gICAgdmVjNCBkaXJlY3Rp
b24gPSB2ZWM0KHZQb3NpdGlvbi54ICogMC41LCB2UG9zaXRpb24ueSAqIDAuNSwgMSwgMSk7Ci0g
ICAgdGV4Q29vcmQgPSBub3JtYWxpemUoKHJvdGF0aW9uICogZGlyZWN0aW9uKS54eXopOwotfQot
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21l
bnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci11bmlmb3JtIHNhbXBsZXJDdWJlIHRleDsK
LXZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9y
ID0gdGV4dHVyZUN1YmUodGV4LCBub3JtYWxpemUodGV4Q29vcmQpKTsKLX0KLTwvc2NyaXB0Pgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciBjYW52YXM7Ci1kZXNjcmlwdGlvbigiQ2hlY2tz
IGlzc3VlcyB3aXRoIHNpemUgb2YgY3ViZSBtYXAgdGV4dHVyZXMiKTsKLWRlYnVnKCIiKTsKLQot
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJleGFtcGxlIik7Ci0KLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFz
KTsKLXd0dS5zZXR1cFVuaXRRdWFkKGdsLCAwLCAxKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVw
UHJvZ3JhbSgKLSAgICBnbCwKLSAgICBbJ3ZzaGFkZXInLCAnZnNoYWRlciddLAotICAgIFsndlBv
c2l0aW9uJywgJ3RleENvb3JkMCddLCBbMCwgMV0pOwotdmFyIHJvdExvYyA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihwcm9ncmFtLCAicm90YXRpb24iKTsKLQotZ2wuZGlzYWJsZShnbC5ERVBUSF9U
RVNUKTsKLWdsLmRpc2FibGUoZ2wuQkxFTkQpOwotCi12YXIgbWF4U2l6ZSA9IGdsLmdldFBhcmFt
ZXRlcihnbC5NQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFKTsKLWRlYnVnKCJtYXggY3ViZSBtYXAg
c2l6ZTogIiArIG1heFNpemUpOwotbWF4U2l6ZSA9IE1hdGgubWluKDUxMiwgbWF4U2l6ZSk7Ci0K
LS8vIGEgY3ViZSBtYXAgb2YgNTEyeDUxMiB0YWtlcyA2bWVnLiBJJ20gYXNzdW1pbmcgaXQncyBu
b3QKLS8vIHVucmVhc29uYWJsZSB0byBleHBlY3QgdG8gYmUgYWJsZSB0byBhbGxvY2F0ZSBhIDZt
ZWcgdGV4dHVyZQotCi12YXIgY29sb3JzID0gWwotICB7bmFtZTogJ3JlZCcsICAgICBjb2xvcjog
WzI1NSwgICAwLCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2dyZWVuJywgICBjb2xvcjogWyAgMCwg
MjU1LCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2JsdWUnLCAgICBjb2xvcjogWyAgMCwgICAwLCAy
NTUsIDI1NV19LAotICB7bmFtZTogJ3llbGxvdycsICBjb2xvcjogWzI1NSwgMjU1LCAgIDAsIDI1
NV19LAotICB7bmFtZTogJ2N5YW4nLCAgICBjb2xvcjogWyAgMCwgMjU1LCAyNTUsIDI1NV19LAot
ICB7bmFtZTogJ21hZ2VudGEnLCBjb2xvcjogWzI1NSwgICAwLCAyNTUsIDI1NV19Ci1dOwotCi12
YXIgdGFyZ2V0cyA9IFsKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICBnbC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWSwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICBnbC5URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1osCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl07Ci0K
LXZhciByb3RhdGlvbnMgPSBbCi0gIHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAv
IDJ9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogLU1hdGguUEkgLyAyfSwKLSAge2F4aXM6
IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMSwgMCwgMF0sIGFu
Z2xlOiAgTWF0aC5QSSAvIDJ9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIDB9LAotICB7
YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEl9LAotXTsKLQotdmFyIGhhbGZSb3RhdGlv
bnMgPSBbCi0gIHtjb2xvcnM6IFszLCA0XSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwg
YW5nbGU6ICBNYXRoLlBJIC8gNH1dfSwKLSAge2NvbG9yczogWzQsIDJdLCByb3RhdGlvbnM6IFt7
YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0fV19LAotICB7Y29sb3JzOiBbNSwg
M10sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDQgKiAz
fV19LAotICB7Y29sb3JzOiBbMiwgNV0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFu
Z2xlOiAtTWF0aC5QSSAvIDQgKiAzfV19LAotICB7Y29sb3JzOiBbMywgMF0sIHJvdGF0aW9uczog
W3theGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDR9XX0s
Ci0gIHtjb2xvcnM6IFswLCAyXSwgcm90YXRpb25zOiBbe2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6
ICBNYXRoLlBJIC8gMn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2F4aXM6IFsx
LCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNH1dfSwKLV07Ci0KLXZhciBjb3VudCA9IDA7Ci12
YXIgc2l6ZUNvdW50ID0gMDsKLQotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkgewotICB2YXIg
c2l6ZSA9IE1hdGgucG93KDIsIHNpemVDb3VudCk7Ci0gIGlmIChzaXplID4gbWF4U2l6ZSB8fCAh
dGVzdFNpemUoc2l6ZSkpIHsKLSAgICBmaW5pc2hUZXN0KCk7Ci0gIH0gZWxzZSB7Ci0gICAgKytz
aXplQ291bnQ7Ci0gICAgc2V0VGltZW91dCh0ZXN0LCAwKTsKLSAgfQotfQotCi1mdW5jdGlvbiB0
ZXN0U2l6ZShzaXplKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoInRlc3Rpbmcgc2l6ZTogIiAr
IHNpemUpOwotICB2YXIgY2FudmFzU2l6ZSA9IE1hdGgubWF4KHNpemUgLyA0LCAyKTsKLSAgY2Fu
dmFzLndpZHRoID0gY2FudmFzU2l6ZTsKLSAgY2FudmFzLmhlaWdodCA9IGNhbnZhc1NpemU7Ci0g
IGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhc1NpemUsIGNhbnZhc1NpemUpOwotICB2YXIgdGV4ID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQ
LCB0ZXgpOwotCi0gIC8vIFNlZW1zIGxpa2UgSSBzaG91bGQgYmUgdXNpbmcgTElORUFSIGhlcmUg
d2l0aCBzb21lIG90aGVyIG1hdGgKLSAgLy8gdG8gbWFrZSBzdXJlIEkgZ2V0IG1vcmUgbWlwIGNv
dmVyYWdlIGJ1dCB0aGF0J3MgZWFzaWVyIHNhaWQKLSAgLy8gdGhhbiBkb25lLgotCi0gIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotCi0gIGZvciAodmFyIGpqID0gMDsgamog
PCAyOyArK2pqKSB7Ci0gICAgZm9yICh2YXIgdHQgPSAwOyB0dCA8IHRhcmdldHMubGVuZ3RoOyAr
K3R0KSB7Ci0gICAgICB2YXIgY29sb3IgPSBjb2xvcnNbKHR0ICsgY291bnQpICUgY29sb3JzLmxl
bmd0aF07Ci0gICAgICBmaWxsTGV2ZWwodGFyZ2V0c1t0dF0sIDAsIHNpemUsIGNvbG9yLmNvbG9y
KTsKLSAgICB9Ci0gICAgaWYgKGpqID09IDEpIHsKLSAgICAgIGRlYnVnKCJ1c2UgbWlwbWFwIik7
Ci0gICAgICBnbC50ZXhQYXJhbWV0ZXJpKAotICAgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVAs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwKLSAgICAgICAgICBnbC5ORUFSRVNUX01JUE1BUF9ORUFS
RVNUKTsKLSAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOwotICAg
IH0KLQotICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICAgIGlmIChlcnIgPT0gZ2wuT1VU
X09GX01FTU9SWSkgewotICAgICAgZGVidWcoIm91dCBvZiBtZW1vcnkiKTsKLSAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAgICAgdGVz
dEZhaWxlZCgidW5leHBlY3RlZCBnbCBlcnJvcjogIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwg
ZXJyKSk7Ci0gICAgfQotCi0KLSAgICBmb3IgKHZhciByciA9IDA7IHJyIDwgcm90YXRpb25zLmxl
bmd0aDsgKytycikgewotICAgICAgdmFyIHJvdCA9IHJvdGF0aW9uc1tycl07Ci0gICAgICB2YXIg
Y29sb3IgPSBjb2xvcnNbKHJyICsgY291bnQpICUgY29sb3JzLmxlbmd0aF07Ci0gICAgICB2YXIg
cm90TWF0ID0gYXhpc1JvdGF0aW9uKHJvdC5heGlzLCByb3QuYW5nbGUpOwotICAgICAgZ2wudW5p
Zm9ybU1hdHJpeDRmdihyb3RMb2MsIGZhbHNlLCByb3RNYXQpOwotICAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKLSAgICAgIHd0dS5jaGVja0NhbnZhcygKLSAgICAgICAgICBnbCwg
Y29sb3IuY29sb3IsCi0gICAgICAgICAgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJnZXRzW3Jy
XSkgKyAiIHNob3VsZCBiZSAiICsgY29sb3IubmFtZSk7Ci0gICAgfQotCi0gICAgZm9yICh2YXIg
cnIgPSAwOyByciA8IGhhbGZSb3RhdGlvbnMubGVuZ3RoOyArK3JyKSB7Ci0gICAgICB2YXIgaCA9
IGhhbGZSb3RhdGlvbnNbcnJdOwotICAgICAgdmFyIHJvdHMgPSBoLnJvdGF0aW9uczsKLSAgICAg
IHZhciByb3RNYXQgPSBheGlzUm90YXRpb24ocm90c1swXS5heGlzLCByb3RzWzBdLmFuZ2xlKTsK
LSAgICAgIGZvciAodmFyIGlpID0gMTsgaWkgPCByb3RzLmxlbmd0aDsgKytpaSkgewotICAgICAg
ICB2YXIgdG1wTWF0ID0gYXhpc1JvdGF0aW9uKHJvdHNbaWldLmF4aXMsIHJvdHNbaWldLmFuZ2xl
KTsKLSAgICAgICAgdmFyIHJvdE1hdCA9IG11bE1hdHJpeCh0bXBNYXQsIHJvdE1hdCk7Ci0gICAg
ICB9Ci0gICAgICBnbC51bmlmb3JtTWF0cml4NGZ2KHJvdExvYywgZmFsc2UsIHJvdE1hdCk7Ci0g
ICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotCi0gICAgICBmb3IgKHZhciBpaSA9
IDA7IGlpIDwgMjsgKytpaSkgewotICAgICAgICBjaGVja1JlY3QoCi0gICAgICAgICAgICAwLAot
ICAgICAgICAgICAgY2FudmFzU2l6ZSAvIDIgKiBpaSwKLSAgICAgICAgICAgIGNhbnZhc1NpemUs
Ci0gICAgICAgICAgICBjYW52YXNTaXplIC8gMiwKLSAgICAgICAgICAgIGNvbG9yc1soaC5jb2xv
cnNbaWldICsgY291bnQpICUgY29sb3JzLmxlbmd0aF0pOwotICAgICAgfQotICAgIH0KLSAgICAr
K2NvdW50OwotICB9Ci0KLSAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICByZXR1cm4gdHJ1ZTsK
LX0KLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMuIik7Ci0KLWZ1bmN0aW9uIGNoZWNrUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcikg
ewotICB3dHUuY2hlY2tDYW52YXNSZWN0KAotICAgICAgIGdsLAotICAgICAgIHgsCi0gICAgICAg
eSwKLSAgICAgICB3aWR0aCwKLSAgICAgICBoZWlnaHQsCi0gICAgICAgY29sb3IuY29sb3IsCi0g
ICAgICAgIiIgKyB4ICsgIiwgIiArIHkgKyAiLCAiICsgd2lkdGggKyAiLCAiICsgaGVpZ2h0ICsK
LSAgICAgICAiIHNob3VsZCBiZSAiICsgY29sb3IubmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIGZpbGxM
ZXZlbCh0YXJnZXQsIGxldmVsLCBzaXplLCBjb2xvcikgewotICB2YXIgbnVtUGl4ZWxzID0gc2l6
ZSAqIHNpemU7Ci0gIHZhciBwaXhlbHMgPSBuZXcgVWludDhBcnJheShudW1QaXhlbHMgKiA0KTsK
LSAgdmFyIHBpeGVsUm93ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSAqIDQpOwotICBmb3IgKHZhciBq
aiA9IDA7IGpqIDwgc2l6ZTsgKytqaikgewotICAgIHZhciBvZmYgPSBqaiAqIDQ7Ci0gICAgcGl4
ZWxSb3dbb2ZmICsgMF0gPSBjb2xvclswXTsKLSAgICBwaXhlbFJvd1tvZmYgKyAxXSA9IGNvbG9y
WzFdOwotICAgIHBpeGVsUm93W29mZiArIDJdID0gY29sb3JbMl07Ci0gICAgcGl4ZWxSb3dbb2Zm
ICsgM10gPSBjb2xvclszXTsKLSAgfQotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgc2l6ZTsgKytq
aikgewotICAgIHZhciBvZmYgPSBqaiAqIHNpemUgKiA0OwotICAgIHBpeGVscy5zZXQocGl4ZWxS
b3csIG9mZik7Ci0gIH0KLSAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgIHRhcmdldCwgbGV2ZWwsIGds
LlJHQkEsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICBw
aXhlbHMpOwotfQotCi1mdW5jdGlvbiBwcmludE1hdChtYXQpIHsKLSAgZGVidWcoIiIgKyBtYXRb
MF0gKyAiLCAiICsgbWF0WzFdICsgIiwgIiArIG1hdFsyXSArICIsICIgKyBtYXRbM10gKyAiLCAi
KTsKLSAgZGVidWcoIiIgKyBtYXRbNF0gKyAiLCAiICsgbWF0WzVdICsgIiwgIiArIG1hdFs2XSAr
ICIsICIgKyBtYXRbN10gKyAiLCAiKTsKLSAgZGVidWcoIiIgKyBtYXRbOF0gKyAiLCAiICsgbWF0
WzldICsgIiwgIiArIG1hdFsxMF0gKyAiLCAiICsgbWF0WzExXSArICIsICIpOwotICBkZWJ1Zygi
IiArIG1hdFsxMl0gKyAiLCAiICsgbWF0WzEzXSArICIsICIgKyBtYXRbMTRdICsgIiwgIiArIG1h
dFsxNV0gKyAiLCAiKTsKLX0KLQotZnVuY3Rpb24gYXhpc1JvdGF0aW9uKGF4aXMsIGFuZ2xlKSB7
Ci0gIHZhciBkc3QgPSBuZXcgRmxvYXQzMkFycmF5KDE2KTsKLSAgdmFyIHggPSBheGlzWzBdOwot
ICB2YXIgeSA9IGF4aXNbMV07Ci0gIHZhciB6ID0gYXhpc1syXTsKLSAgdmFyIG4gPSBNYXRoLnNx
cnQoeCAqIHggKyB5ICogeSArIHogKiB6KTsKLSAgeCAvPSBuOwotICB5IC89IG47Ci0gIHogLz0g
bjsKLSAgdmFyIHh4ID0geCAqIHg7Ci0gIHZhciB5eSA9IHkgKiB5OwotICB2YXIgenogPSB6ICog
ejsKLSAgdmFyIGMgPSBNYXRoLmNvcyhhbmdsZSk7Ci0gIHZhciBzID0gTWF0aC5zaW4oYW5nbGUp
OwotICB2YXIgb25lTWludXNDb3NpbmUgPSAxIC0gYzsKLQotICBkc3RbIDBdID0geHggKyAoMSAt
IHh4KSAqIGM7Ci0gIGRzdFsgMV0gPSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lICsgeiAqIHM7Ci0g
IGRzdFsgMl0gPSB4ICogeiAqIG9uZU1pbnVzQ29zaW5lIC0geSAqIHM7Ci0gIGRzdFsgM10gPSAw
OwotICBkc3RbIDRdID0geCAqIHkgKiBvbmVNaW51c0Nvc2luZSAtIHogKiBzOwotICBkc3RbIDVd
ID0geXkgKyAoMSAtIHl5KSAqIGM7Ci0gIGRzdFsgNl0gPSB5ICogeiAqIG9uZU1pbnVzQ29zaW5l
ICsgeCAqIHM7Ci0gIGRzdFsgN10gPSAwOwotICBkc3RbIDhdID0geCAqIHogKiBvbmVNaW51c0Nv
c2luZSArIHkgKiBzOwotICBkc3RbIDldID0geSAqIHogKiBvbmVNaW51c0Nvc2luZSAtIHggKiBz
OwotICBkc3RbMTBdID0genogKyAoMSAtIHp6KSAqIGM7Ci0gIGRzdFsxMV0gPSAwOwotICBkc3Rb
MTJdID0gMDsKLSAgZHN0WzEzXSA9IDA7Ci0gIGRzdFsxNF0gPSAwOwotICBkc3RbMTVdID0gMTsK
LQotICByZXR1cm4gZHN0OwotfTsKLQotZnVuY3Rpb24gbXVsTWF0cml4KGEsIGIpIHsKLSAgdmFy
IGRzdCA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpOwotICB2YXIgYTAwID0gYVswXTsKLSAgdmFyIGEw
MSA9IGFbMV07Ci0gIHZhciBhMDIgPSBhWzJdOwotICB2YXIgYTAzID0gYVszXTsKLSAgdmFyIGEx
MCA9IGFbIDQgKyAwXTsKLSAgdmFyIGExMSA9IGFbIDQgKyAxXTsKLSAgdmFyIGExMiA9IGFbIDQg
KyAyXTsKLSAgdmFyIGExMyA9IGFbIDQgKyAzXTsKLSAgdmFyIGEyMCA9IGFbIDggKyAwXTsKLSAg
dmFyIGEyMSA9IGFbIDggKyAxXTsKLSAgdmFyIGEyMiA9IGFbIDggKyAyXTsKLSAgdmFyIGEyMyA9
IGFbIDggKyAzXTsKLSAgdmFyIGEzMCA9IGFbMTIgKyAwXTsKLSAgdmFyIGEzMSA9IGFbMTIgKyAx
XTsKLSAgdmFyIGEzMiA9IGFbMTIgKyAyXTsKLSAgdmFyIGEzMyA9IGFbMTIgKyAzXTsKLSAgdmFy
IGIwMCA9IGJbMF07Ci0gIHZhciBiMDEgPSBiWzFdOwotICB2YXIgYjAyID0gYlsyXTsKLSAgdmFy
IGIwMyA9IGJbM107Ci0gIHZhciBiMTAgPSBiWyA0ICsgMF07Ci0gIHZhciBiMTEgPSBiWyA0ICsg
MV07Ci0gIHZhciBiMTIgPSBiWyA0ICsgMl07Ci0gIHZhciBiMTMgPSBiWyA0ICsgM107Ci0gIHZh
ciBiMjAgPSBiWyA4ICsgMF07Ci0gIHZhciBiMjEgPSBiWyA4ICsgMV07Ci0gIHZhciBiMjIgPSBi
WyA4ICsgMl07Ci0gIHZhciBiMjMgPSBiWyA4ICsgM107Ci0gIHZhciBiMzAgPSBiWzEyICsgMF07
Ci0gIHZhciBiMzEgPSBiWzEyICsgMV07Ci0gIHZhciBiMzIgPSBiWzEyICsgMl07Ci0gIHZhciBi
MzMgPSBiWzEyICsgM107Ci0gIGRzdFsgMF0gPSBhMDAgKiBiMDAgKyBhMDEgKiBiMTAgKyBhMDIg
KiBiMjAgKyBhMDMgKiBiMzA7Ci0gIGRzdFsgMV0gPSBhMDAgKiBiMDEgKyBhMDEgKiBiMTEgKyBh
MDIgKiBiMjEgKyBhMDMgKiBiMzE7Ci0gIGRzdFsgMl0gPSBhMDAgKiBiMDIgKyBhMDEgKiBiMTIg
KyBhMDIgKiBiMjIgKyBhMDMgKiBiMzI7Ci0gIGRzdFsgM10gPSBhMDAgKiBiMDMgKyBhMDEgKiBi
MTMgKyBhMDIgKiBiMjMgKyBhMDMgKiBiMzM7Ci0gIGRzdFsgNF0gPSBhMTAgKiBiMDAgKyBhMTEg
KiBiMTAgKyBhMTIgKiBiMjAgKyBhMTMgKiBiMzA7Ci0gIGRzdFsgNV0gPSBhMTAgKiBiMDEgKyBh
MTEgKiBiMTEgKyBhMTIgKiBiMjEgKyBhMTMgKiBiMzE7Ci0gIGRzdFsgNl0gPSBhMTAgKiBiMDIg
KyBhMTEgKiBiMTIgKyBhMTIgKiBiMjIgKyBhMTMgKiBiMzI7Ci0gIGRzdFsgN10gPSBhMTAgKiBi
MDMgKyBhMTEgKiBiMTMgKyBhMTIgKiBiMjMgKyBhMTMgKiBiMzM7Ci0gIGRzdFsgOF0gPSBhMjAg
KiBiMDAgKyBhMjEgKiBiMTAgKyBhMjIgKiBiMjAgKyBhMjMgKiBiMzA7Ci0gIGRzdFsgOV0gPSBh
MjAgKiBiMDEgKyBhMjEgKiBiMTEgKyBhMjIgKiBiMjEgKyBhMjMgKiBiMzE7Ci0gIGRzdFsxMF0g
PSBhMjAgKiBiMDIgKyBhMjEgKiBiMTIgKyBhMjIgKiBiMjIgKyBhMjMgKiBiMzI7Ci0gIGRzdFsx
MV0gPSBhMjAgKiBiMDMgKyBhMjEgKiBiMTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzM7Ci0gIGRz
dFsxMl0gPSBhMzAgKiBiMDAgKyBhMzEgKiBiMTAgKyBhMzIgKiBiMjAgKyBhMzMgKiBiMzA7Ci0g
IGRzdFsxM10gPSBhMzAgKiBiMDEgKyBhMzEgKiBiMTEgKyBhMzIgKiBiMjEgKyBhMzMgKiBiMzE7
Ci0gIGRzdFsxNF0gPSBhMzAgKiBiMDIgKyBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBi
MzI7Ci0gIGRzdFsxNV0gPSBhMzAgKiBiMDMgKyBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMg
KiBiMzM7Ci0gIHJldHVybiBkc3Q7Ci19OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWxpbWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1saW1pdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0M2RhOWE2M2QzZTE3ODEzNGUyMDU5NzE1NWFjYzc5OGQ4MjNlNTY3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWxpbWl0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
NTkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVy
aWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j
bHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Ig
c2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwot
KiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBp
biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0q
KgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U
WSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg
TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB
TiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N
LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBV
U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+V2ViR0wgdGV4dHVyZSBzaXplIGxpbWl0IGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWln
aHQ9IjMyIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oIkNoZWNrcyB0aGF0IHZhcmlvdXMgc2l6
ZXMgbGltaXRzIG9mIHRleHR1cmVzICIpCi12YXIgY2FudmFzOwotCi1mdW5jdGlvbiBudW1MZXZl
bHNGcm9tU2l6ZShzaXplKSB7Ci0gIHZhciBsZXZlbHMgPSAwOwotICB3aGlsZSAoKHNpemUgPj4g
bGV2ZWxzKSA+IDApIHsKLSAgICArK2xldmVsczsKLSAgfQotICByZXR1cm4gbGV2ZWxzOwotfQot
Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KCJleGFtcGxlIik7Ci12YXIgdGVzdHMgPSBbCi0gIHsgZm9ybWF0OiBnbC5BTFBIQSwgICAgICAg
ICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6IDEsIGRhdGFUeXBlOiBV
aW50OEFycmF5ICB9LAotICB7IGZvcm1hdDogZ2wuTFVNSU5BTkNFLCAgICAgICB0eXBlOiBnbC5V
TlNJR05FRF9CWVRFLCAgICAgICAgICBzaXplOiAxLCBkYXRhVHlwZTogVWludDhBcnJheSAgfSwK
LSAgeyBmb3JtYXQ6IGdsLkxVTUlOQU5DRV9BTFBIQSwgdHlwZTogZ2wuVU5TSUdORURfQllURSwg
ICAgICAgICAgc2l6ZTogMiwgZGF0YVR5cGU6IFVpbnQ4QXJyYXkgIH0sCi0gIHsgZm9ybWF0OiBn
bC5SR0IsICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6
IDMsIGRhdGFUeXBlOiBVaW50OEFycmF5ICB9LAotICB7IGZvcm1hdDogZ2wuUkdCLCAgICAgICAg
ICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwgICBzaXplOiAxLCBkYXRhVHlwZTog
VWludDE2QXJyYXkgfSwKLSAgeyBmb3JtYXQ6IGdsLlJHQkEsICAgICAgICAgICAgdHlwZTogZ2wu
VU5TSUdORURfQllURSwgICAgICAgICAgc2l6ZTogNCwgZGF0YVR5cGU6IFVpbnQ4QXJyYXkgIH0s
Ci0gIHsgZm9ybWF0OiBnbC5SR0JBLCAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JU
XzRfNF80XzQsIHNpemU6IDEsIGRhdGFUeXBlOiBVaW50MTZBcnJheSB9LAotICB7IGZvcm1hdDog
Z2wuUkdCQSwgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xLCBzaXpl
OiAxLCBkYXRhVHlwZTogVWludDE2QXJyYXkgfQotXTsKLQotLy8gTm90ZTogV2UgZXhwcmVzc2x5
IG9ubHkgdXNlIDIgdGV4dHVyZXMgYmVjYXVzZSBmaXJzdCBhIHRleHR1cmUgd2lsbCBiZSBkZWZp
bmVkCi0vLyBhcyB1c2luZyBhbGwgbWlwcyBvZiAxIGZvcm1hdCwgdGhlbiBmb3IgYSBtb21lbnQg
aXQgd2lsbCBoYXZlIG1peGVkIGZvcm1hdHMgd2hpY2gKLS8vIG1heSB1bmNvdmVyIGJ1Z3MuCi12
YXIgdGFyZ2V0cyA9IFsKLSAgeyB0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgbWF4U2l6ZTog
Z2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9URVhUVVJFX1NJWkUpLAotICAgIG1heExldmVsOiAxMDAw
LAotICAgIHRleDogZ2wuY3JlYXRlVGV4dHVyZSgpLAotICAgIHRhcmdldHM6IFtnbC5URVhUVVJF
XzJEXQotICB9LAotICB7IHRhcmdldDogZ2wuVEVYVFVSRV9DVUJFX01BUCwKLSAgICBtYXhTaXpl
OiBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSksCi0gICAgbWF4
TGV2ZWw6IDUsCi0gICAgdGV4OiBnbC5jcmVhdGVUZXh0dXJlKCksCi0gICAgdGFyZ2V0czogWwot
ICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgICAgZ2wuVEVYVFVSRV9D
VUJFX01BUF9ORUdBVElWRV9YLAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9Z
LAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgICAgZ2wuVEVYVFVS
RV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9aCi0gICAgXQotICB9Ci1dOwotCi1nbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5U
LCAxKTsKLQotdmFyIHRyZyA9IDA7Ci12YXIgdHQgPSAwOwotcnVuTmV4dFRlc3QoKTsKLQotZnVu
Y3Rpb24gcnVuTmV4dFRlc3QoKSB7Ci0gIHZhciB0ID0gdGFyZ2V0c1t0cmddOwotCi0gIGlmICh0
dCA9PSAwKSB7Ci0gICAgdmFyIHRleCA9IHQudGV4OwotICAgIGdsLmJpbmRUZXh0dXJlKHQudGFy
Z2V0LCB0ZXgpOwotCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJtYXggc2l6ZSBmb3IgIiAr
IHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdC50YXJnZXQpICsgIjogIiArIHQubWF4U2l6ZSk7Ci0g
ICAgdmFyIG51bUxldmVscyA9IG51bUxldmVsc0Zyb21TaXplKHQubWF4U2l6ZSk7Ci0gICAgZGVi
dWcoIm51bSBsZXZlbHMgIiArIG51bUxldmVscyk7Ci0gIH0KLQotICB2YXIgdGVzdCA9IHRlc3Rz
W3R0XTsKLSAgdGVzdEZvcm1hdFR5cGUodCwgdGVzdCk7Ci0gICsrdHQ7Ci0gIGlmICh0dCA9PSB0
ZXN0cy5sZW5ndGgpIHsKLSAgICB0dCA9IDA7Ci0gICAgKyt0cmc7Ci0gICAgaWYgKHRyZyA9PSB0
YXJnZXRzLmxlbmd0aCkgewotICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgcmV0dXJuOwotICAg
IH0KLSAgfQotICB3dHUud2FpdEZvckNvbXBvc2l0ZShnbCwgcnVuTmV4dFRlc3QpCi19Ci0KLWZ1
bmN0aW9uIHRlc3RGb3JtYXRUeXBlKHQsIHRlc3QpIHsKLSAgZGVidWcoIiIpOwotICBkZWJ1Zygi
dGVzdGluZzogIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGVzdC5mb3JtYXQpICsgIiwgIiAr
IHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGVzdC50eXBlKSk7Ci0gIGZvciAodmFyIGogPSAwOyBq
IDwgdC50YXJnZXRzLmxlbmd0aDsgKytqKSB7Ci0gICAgdmFyIHRhcmdldCA9IHQudGFyZ2V0c1tq
XTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcod3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJn
ZXQpKTsKLSAgICB2YXIgbnVtTGV2ZWxzID0gbnVtTGV2ZWxzRnJvbVNpemUodC5tYXhTaXplKTsK
LSAgICB2YXIgbnVtVGVzdExldmVscyA9IE1hdGgubWluKG51bUxldmVscywgdC5tYXhMZXZlbCk7
Ci0gICAgZm9yICh2YXIgbCA9IDA7IGwgPCBudW1UZXN0TGV2ZWxzOyArK2wpIHsKLSAgICAgIC8v
IERvIGJvdHRvbSBsZXZlbHMgZmlyc3Q7Ci0gICAgICB2YXIgc2l6ZSA9IDEgPDwgbDsKLSAgICAg
IHZhciBsZXZlbCA9IG51bUxldmVscyAtIGwgLSAxOwotICAgICAgdmFyIG90aGVyRGltZW5zaW9u
ID0gdC50YXJnZXQgPT0gZ2wuVEVYVFVSRV8yRCA/IDEgOiBzaXplOwotICAgICAgdmFyIGJhZFNp
emUgPSBzaXplICogMjsKLSAgICAgIHZhciBiYWRPdGhlckRpbWVuc2lvbiA9IHQudGFyZ2V0ID09
IGdsLlRFWFRVUkVfMkQgPyAxIDogYmFkU2l6ZTsKLSAgICAgIHZhciBwaXhlbHMgPSBuZXcgdGVz
dC5kYXRhVHlwZShiYWRTaXplICogYmFkT3RoZXJEaW1lbnNpb24gKiB0ZXN0LnNpemUpOwotICAg
ICAgZ2wudGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB0ZXN0LmZvcm1hdCwgc2l6ZSwgb3RoZXJE
aW1lbnNpb24sIDAsIHRlc3QuZm9ybWF0LCB0ZXN0LnR5cGUsIHBpeGVscyk7Ci0gICAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAidGhlcmUgc2hvdWxkIGJlIG5vIGVycm9yIGZv
ciBsZXZlbDogIiArIGxldmVsICsgIiAiICsgc2l6ZSArICJ4IiArIG90aGVyRGltZW5zaW9uKTsK
LSAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdC5mb3JtYXQsIG90aGVyRGlt
ZW5zaW9uLCBzaXplLCAwLCB0ZXN0LmZvcm1hdCwgdGVzdC50eXBlLCBwaXhlbHMpOwotICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJv
ciBmb3IgbGV2ZWw6ICIgKyBsZXZlbCArICIgIiArIG90aGVyRGltZW5zaW9uICsgIngiICsgc2l6
ZSk7Ci0gICAgICBnbC50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3QuZm9ybWF0LCBiYWRT
aXplLCBiYWRPdGhlckRpbWVuc2lvbiwgMCwgdGVzdC5mb3JtYXQsIHRlc3QudHlwZSwgcGl4ZWxz
KTsKLSAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInNob3VsZCBn
ZW5lcmF0ZSBJTlZBTElEX1ZBTFVFIGZvciBsZXZlbDogIiArIGxldmVsICsgIiAiICsgYmFkU2l6
ZSArICJ4IiArIGJhZE90aGVyRGltZW5zaW9uKTsKLSAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0
LCBsZXZlbCwgdGVzdC5mb3JtYXQsIGJhZE90aGVyRGltZW5zaW9uLCBiYWRTaXplLCAwLCB0ZXN0
LmZvcm1hdCwgdGVzdC50eXBlLCBwaXhlbHMpOwotICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX1ZBTFVFLCAic2hvdWxkIGdlbmVyYXRlIElOVkFMSURfVkFMVUUgZm9yIGxldmVs
OiAiICsgbGV2ZWwgKyAiICIgKyBiYWRPdGhlckRpbWVuc2lvbiArICJ4IiArIGJhZFNpemUpOwot
ICAgIH0KLSAgfQotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHR1cmUtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJl
LXNpemUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU2N2VkN2JkMmYyYzMy
Nzg5YjBkNjBkMmFhOGIzYjc5ZjdjMDY3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHly
aWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxz
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRo
ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJp
YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFu
ZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoq
Ci0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0
aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoq
IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRF
UklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRleHR1cmUgc2l6ZSBjb25mb3JtYW5j
ZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQw
cHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0
ZXgiPgotYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwotYXR0cmlidXRlIHZlYzMgdGV4Q29vcmQw
OwotdmFyeWluZyB2ZWMzIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9Qb3NpdGlv
biA9IHZQb3NpdGlvbjsKLSAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsKLX0KLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OwotdW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXg7Ci12YXJ5aW5nIHZl
YzMgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmVD
dWJlKHRleCwgbm9ybWFsaXplKHRleENvb3JkKSk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0i
dXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigiQ2hlY2tzIHRoYXQgdmFyaW91cyBzaXplcyBvZiB0
ZXh0dXJlcyByZW5kZXIiKQotdmFyIGNhbnZhczsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotdmFyIHByb2dyYW0y
RCA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci12YXIgcHJvZ3JhbUN1YmVNYXAgPSB3dHUu
c2V0dXBQcm9ncmFtKAotICAgIGdsLCBbJ3ZzaGFkZXInLCAnZnNoYWRlciddLCBbJ3ZQb3NpdGlv
bicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKLWdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci1n
bC5kaXNhYmxlKGdsLkJMRU5EKTsKLXZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci12YXIg
bWF4MkRTaXplID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9URVhUVVJFX1NJWkUpOwotdmFyIG1h
eEN1YmVNYXBTaXplID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DVUJFX01BUF9URVhUVVJFX1NJ
WkUpOwotZGVidWcoIk1BWF9URVhUVVJFX1NJWkU6IiArIG1heDJEU2l6ZSk7Ci1kZWJ1ZygiTUFY
X0NVQkVfTUFQX1RFWFRVUkVfU0laRToiICsgbWF4Q3ViZU1hcFNpemUpOwotLy8gQXNzdW1pbmcg
MjA0OHgyMDQ4eFJHQkEgKDIybWVnIHdpdGggbWlwcykgd2lsbCBydW4gb24gYWxsIFdlYkdMIHBs
YXRmb3JtcwotdmFyIG1heDJEU3F1YXJlU2l6ZSA9IE1hdGgubWluKG1heDJEU2l6ZSwgMjA0OCk7
Ci0vLyBJJ2QgcHJlZmVyIHRoaXMgdG8gYmUgMjA0OCBidXQgdGhhdCdzIDE2bWVnIHggNiBmYWNl
cyBvciAxMjhtZWcgKHdpdGggbWlwcykKLS8vIDEwMjQgaXMgMzMuNSBtZWcgKHdpdGggbWlwcykK
LXZhciBtYXhDdWJlTWFwU2l6ZSA9IE1hdGgubWluKG1heEN1YmVNYXBTaXplLCAxMDI0KTsKLQot
dmFyIGNvbG9ycyA9IFsKLSAgeyBuYW1lOiAiZ3JlZW4iLCByZ2JhOiBbMCwgMCwgMjU1LCAyNTVd
IH0sCi0gIHsgbmFtZTogInJlZCIsIHJnYmE6IFsyNTUsIDAsIDAsIDI1NV0gfSwKLSAgeyBuYW1l
OiAiYmx1ZSIsIHJnYmE6IFswLCAyNTUsIDAsIDI1NV0gfSwKLSAgeyBuYW1lOiAieWVsbG93Iiwg
cmdiYTogWzI1NSwgMjU1LCAwLCAyNTVdIH0sCi0gIHsgbmFtZTogIm1hZ2VudGEiLCByZ2JhOiBb
MjU1LCAwLCAyNTUsIDI1NV0gfSwKLSAgeyBuYW1lOiAiY3lhbiIsIHJnYmE6IFswLCAyNTUsIDI1
NSwgMjU1XSB9Ci1dOwotCi12YXIgY291bnQgPSAwOwotdmFyIHBvd2VyID0gMDsKLXJ1blRlc3Qo
KTsKLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIHZh
ciBzaXplID0gTWF0aC5wb3coMiwgcG93ZXIpOwotICAgIGlmIChzaXplID4gbWF4MkRTaXplKSB7
Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbTJE
KTsKLSAgICBpZiAoIWNoZWNrVGV4dHVyZShzaXplLCAxLCBmYWxzZSkpIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWNoZWNrVGV4dHVyZSgxLCBzaXplLCBmYWxzZSkpIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAoc2l6ZSA8PSBtYXgyRFNxdWFyZVNpemUpIHsKLSAgICAgIGlmICghY2hlY2tUZXh0dXJl
KHNpemUsIHNpemUsIGZhbHNlKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0g
ICAgfQotICAgIGlmIChzaXplIDw9IG1heEN1YmVNYXBTaXplKSB7Ci0gICAgICBnbC51c2VQcm9n
cmFtKHByb2dyYW1DdWJlTWFwKTsKLSAgICAgIGlmICghY2hlY2tUZXh0dXJlKHNpemUsIHNpemUs
IHRydWUpKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0
dXJuIHRydWU7Ci0gIH0KLQotICBpZiAoZG9UZXN0KCkpIHsKLSAgICArK3Bvd2VyOwotICAgIHNl
dFRpbWVvdXQocnVuVGVzdCwgMCk7Ci0gIH0gZWxzZSB7Ci0gICAgZmluaXNoVGVzdCgpOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrVGV4dHVyZSh3aWR0aCwgaGVpZ2h0LCBjdWJlTWFwKSB7Ci0g
IGRlYnVnKCIiKTsKLSAgY291bnQgPSAoY291bnQgKyAxKSAlIGNvbG9ycy5sZW5ndGg7Ci0gIHZh
ciBjb2xvciA9IGNvbG9yc1tjb3VudF07Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0gIHZhciB0YXJnZXQgPSBjdWJlTWFwID8gZ2wuVEVYVFVSRV9DVUJFX01BUCA6IGdsLlRFWFRV
UkVfMkQ7Ci0gIHZhciB0eXBlID0gY3ViZU1hcCA/ICJjdWJlIG1hcCIgOiAiMkQgdGV4dHVyZSI7
Ci0gIGRlYnVnKCJjaGVjayAiICsgd2lkdGggKyAiLCAiICsgaGVpZ2h0ICsgIiAiICsgdHlwZSk7
Ci0gIGdsLmJpbmRUZXh0dXJlKHRhcmdldCwgdGV4KTsKLSAgZ2wudGV4UGFyYW1ldGVyaSh0YXJn
ZXQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wudGV4UGFyYW1ldGVy
aSh0YXJnZXQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4
UGFyYW1ldGVyaSh0YXJnZXQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsK
LSAgZmlsbExldmVsKDAsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLnJnYmEsIGN1YmVNYXApOwotICB2
YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKLSAgaWYgKGVyciA9PSBnbC5PVVRfT0ZfTUVNT1JZKSB7
Ci0gICAgZGVidWcoIm91dCBvZiBtZW1vcnkiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAg
aWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZ2wg
ZXJyb3I6ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGVycikpOwotICB9Ci0gIHd0dS5jbGVh
ckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgY29sb3IucmdiYSwK
LSAgICAgIHR5cGUgKyAiIG9mIHNpemUgIiArIHdpZHRoICsgIngiICsgaGVpZ2h0ICsgIiB3aXRo
IG5vIG1pcHMgc2hvdWxkIGRyYXcgd2l0aCAiICsgY29sb3IubmFtZSk7Ci0gIGNvdW50ID0gKGNv
dW50ICsgMSkgJSBjb2xvcnMubGVuZ3RoOwotICBjb2xvciA9IGNvbG9yc1tjb3VudF07Ci0gIGZp
bGxMZXZlbCgwLCB3aWR0aCwgaGVpZ2h0LCBjb2xvci5yZ2JhLCBjdWJlTWFwKTsKLSAgZ2wuZ2Vu
ZXJhdGVNaXBtYXAodGFyZ2V0KTsKLSAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gIGlmIChl
cnIgPT0gZ2wuT1VUX09GX01FTU9SWSkgewotICAgIGRlYnVnKCJvdXQgb2YgbWVtb3J5Iik7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIGlmIChlcnIgIT0gZ2wuTk9fRVJST1IpIHsKLSAgICB0
ZXN0RmFpbGVkKCJ1bmV4cGVjdGVkIGdsIGVycm9yOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGds
LCBlcnIpKTsKLSAgfQotICBnbC50ZXhQYXJhbWV0ZXJpKHRhcmdldCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX05FQVJFU1QpOwotICB3dHUuY2xlYXJBbmREcmF3VW5p
dFF1YWQoZ2wpOwotICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvbG9yLnJnYmEsCi0gICAgICB0eXBl
ICsgIiBvZiBzaXplICIgKyB3aWR0aCArICJ4IiArIGhlaWdodCArICIgd2l0aCBtaXBzIHNob3Vs
ZCBkcmF3IHdpdGggIiArIGNvbG9yLm5hbWUpOwotCi0gIGNvdW50ID0gKGNvdW50ICsgMSkgJSBj
b2xvcnMubGVuZ3RoOwotICBjb2xvciA9IGNvbG9yc1tjb3VudF07Ci0gIGZpbGxMZXZlbCgwLCB3
aWR0aCwgaGVpZ2h0LCBjb2xvci5yZ2JhLCBjdWJlTWFwLCB0cnVlKTsKLSAgZ2wuZ2VuZXJhdGVN
aXBtYXAodGFyZ2V0KTsKLQotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUu
Y2hlY2tDYW52YXMoZ2wsIGNvbG9yLnJnYmEsCi0gICAgICB0eXBlICsgIiBvZiBzaXplICIgKyB3
aWR0aCArICJ4IiArIGhlaWdodCArICIgd2l0aCBtaXBzIHNob3VsZCBkcmF3IHdpdGggIiArIGNv
bG9yLm5hbWUpOwotCi0gIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMuIik7Ci0gIHJldHVybiB0cnVl
OwotfQotCi1mdW5jdGlvbiBmaWxsTGV2ZWwobGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBv
cHRfY3ViZW1hcCwgb3B0X3N1YlRleCkgewotICB2YXIgbnVtUGl4ZWxzID0gd2lkdGggKiBoZWln
aHQ7Ci0gIHZhciBwaXhlbHMgPSBudWxsOwotICB2YXIgbGFyZ2VEaW0gPSBNYXRoLm1heCh3aWR0
aCwgaGVpZ2h0KTsKLSAgdmFyIHNtYWxsRGltID0gTWF0aC5taW4od2lkdGgsIGhlaWdodCk7Ci0K
LSAgdmFyIHBpeGVsUm93ID0gbmV3IFVpbnQ4QXJyYXkobGFyZ2VEaW0gKiA0KTsKLSAgZm9yICh2
YXIgamogPSAwOyBqaiA8IGxhcmdlRGltOyArK2pqKSB7Ci0gICAgdmFyIG9mZiA9IGpqICogNDsK
LSAgICBwaXhlbFJvd1tvZmYgKyAwXSA9IGNvbG9yWzBdOwotICAgIHBpeGVsUm93W29mZiArIDFd
ID0gY29sb3JbMV07Ci0gICAgcGl4ZWxSb3dbb2ZmICsgMl0gPSBjb2xvclsyXTsKLSAgICBwaXhl
bFJvd1tvZmYgKyAzXSA9IGNvbG9yWzNdOwotICB9Ci0KLSAgaWYgKGxhcmdlRGltID09IG51bVBp
eGVscykgewotICAgIHBpeGVscyA9IHBpeGVsUm93OwotICB9IGVsc2UgewotICAgIHZhciBwaXhl
bHMgPSBuZXcgVWludDhBcnJheShudW1QaXhlbHMgKiA0KTsKLSAgICBmb3IgKHZhciBqaiA9IDA7
IGpqIDwgc21hbGxEaW07ICsramopIHsKLSAgICAgIHZhciBvZmYgPSBqaiAqIGxhcmdlRGltICog
NDsKLSAgICAgIHBpeGVscy5zZXQocGl4ZWxSb3csIG9mZik7Ci0gICAgfQotICB9Ci0gCi0gIHZh
ciB0YXJnZXRzID0gb3B0X2N1YmVtYXAgPyBbCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9YLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICBnbC5URVhU
VVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9ZLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1pdIDoKLSAgICBbZ2wuVEVYVFVSRV8yRF07Ci0KLSAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IHRhcmdldHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgLy8gZGVidWcod3R1
LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJnZXRzW2lpXSkpOwotICAgIHZhciBpbmRleCA9IChpaSAr
IHBvd2VyKSAlIHRhcmdldHMubGVuZ3RoOwotICAgIHZhciB0YXJnZXQgPSB0YXJnZXRzW2luZGV4
XTsKLSAgICBpZiAob3B0X3N1YlRleCkgewotICAgICAgZ2wudGV4U3ViSW1hZ2UyRCgKLSAgICAg
ICAgICB0YXJnZXQsIGxldmVsLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLAotICAgICAgICAgIHBpeGVscyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGdsLnRl
eEltYWdlMkQoCi0gICAgICAgICAgdGFyZ2V0LCBsZXZlbCwgZ2wuUkdCQSwgd2lkdGgsIGhlaWdo
dCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBwaXhlbHMpOwotICAg
IH0KLSAgfQotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1hcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTg0ZTAzYTQwMTljM2EyYjg2MTY3ZDA1YTNmYjFkY2ZkMDI4ZGY2NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzM3ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
LSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
LSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0t
LT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPldlYkdMIHRleHR1cmUgdGV4U3ViSW1hZ2UyRHMgY3ViZSBtYXAgY29uZm9y
bWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJl
eGFtcGxlIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWln
aHQ6IDQwcHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwotdW5pZm9ybSBtYXQ0IHJvdGF0
aW9uOwotdmFyeWluZyB2ZWMzIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9Qb3Np
dGlvbiA9IHZQb3NpdGlvbjsKLSAgICB2ZWM0IGRpcmVjdGlvbiA9IHZlYzQodlBvc2l0aW9uLngg
KiAwLjUsIHZQb3NpdGlvbi55ICogMC41LCAxLCAxKTsKLSAgICB0ZXhDb29yZCA9IG5vcm1hbGl6
ZSgocm90YXRpb24gKiBkaXJlY3Rpb24pLnh5eik7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBp
ZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKLXVuaWZvcm0gc2FtcGxlckN1YmUgdGV4OwotdmFyeWluZyB2ZWMzIHRleENvb3Jk
Owotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlQ3ViZSh0ZXgsIG5v
cm1hbGl6ZSh0ZXhDb29yZCkpOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3Qi
OwotdmFyIGNhbnZhczsKLWRlc2NyaXB0aW9uKCJDaGVja3MgaXNzdWVzIHdpdGggc2l6ZSBvZiBj
dWJlIG1hcCB0ZXh0dXJlcyIpOwotZGVidWcoIiIpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci12YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLQot
dmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotd3R1LnNldHVwVW5pdFF1YWQo
Z2wsIDAsIDEpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgIGdsLAotICAg
IFsndnNoYWRlcicsICdmc2hhZGVyJ10sCi0gICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10s
IFswLCAxXSk7Ci12YXIgcm90TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJy
b3RhdGlvbiIpOwotCi12YXIgc2l6ZSA9IDE2OwotCi12YXIgY29sb3JzID0gWwotICB7bmFtZTog
J3JlZCcsICAgICBjb2xvcjogWzI1NSwgICAwLCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2dyZWVu
JywgICBjb2xvcjogWyAgMCwgMjU1LCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2JsdWUnLCAgICBj
b2xvcjogWyAgMCwgICAwLCAyNTUsIDI1NV19LAotICB7bmFtZTogJ3llbGxvdycsICBjb2xvcjog
WzI1NSwgMjU1LCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2N5YW4nLCAgICBjb2xvcjogWyAgMCwg
MjU1LCAyNTUsIDI1NV19LAotICB7bmFtZTogJ21hZ2VudGEnLCBjb2xvcjogWzI1NSwgICAwLCAy
NTUsIDI1NV19Ci1dOwotCi12YXIgdGFyZ2V0cyA9IFsKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9Q
T1NJVElWRV9YLAotICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9Z
LAotICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1osCi0gIGdsLlRFWFRVUkVfQ1VCRV9N
QVBfTkVHQVRJVkVfWl07Ci0KLXZhciByb3RhdGlvbnMgPSBbCi0gIHtheGlzOiBbMCwgMSwgMF0s
IGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogLU1hdGgu
UEkgLyAyfSwKLSAge2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gMn0sCi0gIHth
eGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICB7YXhpczogWzAsIDEsIDBd
LCBhbmdsZTogIDB9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEl9LAotXTsK
LQotdmFyIGhhbGZSb3RhdGlvbnMgPSBbCi0gIHtjb2xvcnM6IFszLCA0XSwgcm90YXRpb25zOiBb
e2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gNH1dfSwKLSAge2NvbG9yczogWzQs
IDJdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0fV19
LAotICB7Y29sb3JzOiBbNSwgM10sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xl
OiAgTWF0aC5QSSAvIDQgKiAzfV19LAotICB7Y29sb3JzOiBbMiwgNV0sIHJvdGF0aW9uczogW3th
eGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDQgKiAzfV19LAotICB7Y29sb3JzOiBb
MywgMF0sIHJvdGF0aW9uczogW3theGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xl
OiAgTWF0aC5QSSAvIDR9XX0sCi0gIHtjb2xvcnM6IFswLCAyXSwgcm90YXRpb25zOiBbe2F4aXM6
IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gMn0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAge2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNH1dfSwKLV07Ci0K
LXZhciBjb3VudCA9IDA7Ci10ZXN0U2l6ZShzaXplKTsKLQotZnVuY3Rpb24gdGVzdFNpemUoc2l6
ZSkgewotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJ0ZXN0aW5nIHNpemU6ICIgKyBzaXplKTsKLSAg
dmFyIGNhbnZhc1NpemUgPSBNYXRoLm1heChzaXplIC8gNCwgMik7Ci0gIGNhbnZhcy53aWR0aCA9
IGNhbnZhc1NpemU7Ci0gIGNhbnZhcy5oZWlnaHQgPSBjYW52YXNTaXplOwotICBnbC52aWV3cG9y
dCgwLCAwLCBjYW52YXNTaXplLCBjYW52YXNTaXplKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRl
eHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4KTsKLQot
ICAvLyBTZWVtcyBsaWtlIEkgc2hvdWxkIGJlIHVzaW5nIExJTkVBUiBoZXJlIHdpdGggc29tZSBv
dGhlciBtYXRoCi0gIC8vIHRvIG1ha2Ugc3VyZSBJIGdldCBtb3JlIG1pcCBjb3ZlcmFnZSBidXQg
dGhhdCdzIGVhc2llciBzYWlkCi0gIC8vIHRoYW4gZG9uZS4KLQotICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NQUdf
RklMVEVSLCBnbC5ORUFSRVNUKTsKLQotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMjsgKytqaikg
ewotICAgIGZvciAodmFyIHR0ID0gMDsgdHQgPCB0YXJnZXRzLmxlbmd0aDsgKyt0dCkgewotICAg
ICAgdmFyIGNvbG9yID0gY29sb3JzWyh0dCArIGNvdW50KSAlIGNvbG9ycy5sZW5ndGhdOwotICAg
ICAgZmlsbExldmVsKHRhcmdldHNbdHRdLCAwLCBzaXplLCBjb2xvci5jb2xvcik7Ci0gICAgfQot
ICAgIGlmIChqaiA9PSAxKSB7Ci0gICAgICBkZWJ1ZygidXNlIG1pcG1hcCIpOwotICAgICAgZ2wu
dGV4UGFyYW1ldGVyaSgKLSAgICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJF
X01JTl9GSUxURVIsCi0gICAgICAgICAgZ2wuTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCk7Ci0gICAg
ICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLSAgICB9Ci0KLSAgICB2
YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKLSAgICBpZiAoZXJyID09IGdsLk9VVF9PRl9NRU1PUlkp
IHsKLSAgICAgIGRlYnVnKCJvdXQgb2YgbWVtb3J5Iik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotICAgIGlmIChlcnIgIT0gZ2wuTk9fRVJST1IpIHsKLSAgICAgIHRlc3RGYWlsZWQoInVu
ZXhwZWN0ZWQgZ2wgZXJyb3I6ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGVycikpOwotICAg
IH0KLQotCi0gICAgZm9yICh2YXIgcnIgPSAwOyByciA8IHJvdGF0aW9ucy5sZW5ndGg7ICsrcnIp
IHsKLSAgICAgIHZhciByb3QgPSByb3RhdGlvbnNbcnJdOwotICAgICAgdmFyIGNvbG9yID0gY29s
b3JzWyhyciArIGNvdW50KSAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgdmFyIHJvdE1hdCA9IGF4
aXNSb3RhdGlvbihyb3QuYXhpcywgcm90LmFuZ2xlKTsKLSAgICAgIGdsLnVuaWZvcm1NYXRyaXg0
ZnYocm90TG9jLCBmYWxzZSwgcm90TWF0KTsKLSAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVh
ZChnbCk7Ci0gICAgICB3dHUuY2hlY2tDYW52YXMoCi0gICAgICAgICAgZ2wsIGNvbG9yLmNvbG9y
LAotICAgICAgICAgIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGFyZ2V0c1tycl0pICsgIiBzaG91
bGQgYmUgIiArIGNvbG9yLm5hbWUpOwotICAgIH0KLQotICAgIGZvciAodmFyIHJyID0gMDsgcnIg
PCBoYWxmUm90YXRpb25zLmxlbmd0aDsgKytycikgewotICAgICAgdmFyIGggPSBoYWxmUm90YXRp
b25zW3JyXTsKLSAgICAgIHZhciByb3RzID0gaC5yb3RhdGlvbnM7Ci0gICAgICB2YXIgcm90TWF0
ID0gYXhpc1JvdGF0aW9uKHJvdHNbMF0uYXhpcywgcm90c1swXS5hbmdsZSk7Ci0gICAgICBmb3Ig
KHZhciBpaSA9IDE7IGlpIDwgcm90cy5sZW5ndGg7ICsraWkpIHsKLSAgICAgICAgdmFyIHRtcE1h
dCA9IGF4aXNSb3RhdGlvbihyb3RzW2lpXS5heGlzLCByb3RzW2lpXS5hbmdsZSk7Ci0gICAgICAg
IHZhciByb3RNYXQgPSBtdWxNYXRyaXgodG1wTWF0LCByb3RNYXQpOwotICAgICAgfQotICAgICAg
Z2wudW5pZm9ybU1hdHJpeDRmdihyb3RMb2MsIGZhbHNlLCByb3RNYXQpOwotICAgICAgd3R1LmNs
ZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLQotICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDI7
ICsraWkpIHsKLSAgICAgICAgY2hlY2tSZWN0KAotICAgICAgICAgICAgMCwKLSAgICAgICAgICAg
IGNhbnZhc1NpemUgLyAyICogaWksCi0gICAgICAgICAgICBjYW52YXNTaXplLAotICAgICAgICAg
ICAgY2FudmFzU2l6ZSAvIDIsCi0gICAgICAgICAgICBjb2xvcnNbKGguY29sb3JzW2lpXSArIGNv
dW50KSAlIGNvbG9ycy5sZW5ndGhdKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgKytjb3VudDsKLSAg
fQotCi0gIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzLiIpOwotCi1m
dW5jdGlvbiBjaGVja1JlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IpIHsKLSAgd3R1LmNo
ZWNrQ2FudmFzUmVjdCgKLSAgICAgICBnbCwKLSAgICAgICB4LAotICAgICAgIHksCi0gICAgICAg
d2lkdGgsCi0gICAgICAgaGVpZ2h0LAotICAgICAgIGNvbG9yLmNvbG9yLAotICAgICAgICIiICsg
eCArICIsICIgKyB5ICsgIiwgIiArIHdpZHRoICsgIiwgIiArIGhlaWdodCArCi0gICAgICAgIiBz
aG91bGQgYmUgIiArIGNvbG9yLm5hbWUpOwotfQotCi1mdW5jdGlvbiBmaWxsTGV2ZWwodGFyZ2V0
LCBsZXZlbCwgc2l6ZSwgY29sb3IpIHsKLSAgdmFyIG51bVBpeGVscyA9IHNpemUgKiBzaXplOwot
ICB2YXIgaGFsZlBpeGVsUm93ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSAqIDIpOwotICBmb3IgKHZh
ciBqaiA9IDA7IGpqIDwgc2l6ZTsgKytqaikgewotICAgIHZhciBvZmYgPSBqaiAqIDQ7Ci0gICAg
aGFsZlBpeGVsUm93W29mZiArIDBdID0gY29sb3JbMF07Ci0gICAgaGFsZlBpeGVsUm93W29mZiAr
IDFdID0gY29sb3JbMV07Ci0gICAgaGFsZlBpeGVsUm93W29mZiArIDJdID0gY29sb3JbMl07Ci0g
ICAgaGFsZlBpeGVsUm93W29mZiArIDNdID0gY29sb3JbM107Ci0gIH0KLSAgZ2wudGV4SW1hZ2Uy
RCgKLSAgICAgIHRhcmdldCwgbGV2ZWwsIGdsLlJHQkEsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICBudWxsKTsKLSAgZm9yICh2YXIgamogPSAwOyBqaiA8
IHNpemU7ICsramopIHsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQoCi0gICAgICAgICAgdGFyZ2V0
LCBsZXZlbCwgMCwgamosIHNpemUgLyAyLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBo
YWxmUGl4ZWxSb3cpOwotICAgICAgZ2wudGV4U3ViSW1hZ2UyRCgKLSAgICAgICAgICB0YXJnZXQs
IGxldmVsLCBzaXplIC8gMiwgamosIHNpemUgLyAyLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBoYWxmUGl4ZWxSb3cpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHByaW50TWF0KG1hdCkgewot
ICBkZWJ1ZygiIiArIG1hdFswXSArICIsICIgKyBtYXRbMV0gKyAiLCAiICsgbWF0WzJdICsgIiwg
IiArIG1hdFszXSArICIsICIpOwotICBkZWJ1ZygiIiArIG1hdFs0XSArICIsICIgKyBtYXRbNV0g
KyAiLCAiICsgbWF0WzZdICsgIiwgIiArIG1hdFs3XSArICIsICIpOwotICBkZWJ1ZygiIiArIG1h
dFs4XSArICIsICIgKyBtYXRbOV0gKyAiLCAiICsgbWF0WzEwXSArICIsICIgKyBtYXRbMTFdICsg
IiwgIik7Ci0gIGRlYnVnKCIiICsgbWF0WzEyXSArICIsICIgKyBtYXRbMTNdICsgIiwgIiArIG1h
dFsxNF0gKyAiLCAiICsgbWF0WzE1XSArICIsICIpOwotfQotCi1mdW5jdGlvbiBheGlzUm90YXRp
b24oYXhpcywgYW5nbGUpIHsKLSAgdmFyIGRzdCA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpOwotICB2
YXIgeCA9IGF4aXNbMF07Ci0gIHZhciB5ID0gYXhpc1sxXTsKLSAgdmFyIHogPSBheGlzWzJdOwot
ICB2YXIgbiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopOwotICB4IC89IG47Ci0g
IHkgLz0gbjsKLSAgeiAvPSBuOwotICB2YXIgeHggPSB4ICogeDsKLSAgdmFyIHl5ID0geSAqIHk7
Ci0gIHZhciB6eiA9IHogKiB6OwotICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKLSAgdmFyIHMg
PSBNYXRoLnNpbihhbmdsZSk7Ci0gIHZhciBvbmVNaW51c0Nvc2luZSA9IDEgLSBjOwotCi0gIGRz
dFsgMF0gPSB4eCArICgxIC0geHgpICogYzsKLSAgZHN0WyAxXSA9IHggKiB5ICogb25lTWludXND
b3NpbmUgKyB6ICogczsKLSAgZHN0WyAyXSA9IHggKiB6ICogb25lTWludXNDb3NpbmUgLSB5ICog
czsKLSAgZHN0WyAzXSA9IDA7Ci0gIGRzdFsgNF0gPSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lIC0g
eiAqIHM7Ci0gIGRzdFsgNV0gPSB5eSArICgxIC0geXkpICogYzsKLSAgZHN0WyA2XSA9IHkgKiB6
ICogb25lTWludXNDb3NpbmUgKyB4ICogczsKLSAgZHN0WyA3XSA9IDA7Ci0gIGRzdFsgOF0gPSB4
ICogeiAqIG9uZU1pbnVzQ29zaW5lICsgeSAqIHM7Ci0gIGRzdFsgOV0gPSB5ICogeiAqIG9uZU1p
bnVzQ29zaW5lIC0geCAqIHM7Ci0gIGRzdFsxMF0gPSB6eiArICgxIC0genopICogYzsKLSAgZHN0
WzExXSA9IDA7Ci0gIGRzdFsxMl0gPSAwOwotICBkc3RbMTNdID0gMDsKLSAgZHN0WzE0XSA9IDA7
Ci0gIGRzdFsxNV0gPSAxOwotCi0gIHJldHVybiBkc3Q7Ci19OwotCi1mdW5jdGlvbiBtdWxNYXRy
aXgoYSwgYikgewotICB2YXIgZHN0ID0gbmV3IEZsb2F0MzJBcnJheSgxNik7Ci0gIHZhciBhMDAg
PSBhWzBdOwotICB2YXIgYTAxID0gYVsxXTsKLSAgdmFyIGEwMiA9IGFbMl07Ci0gIHZhciBhMDMg
PSBhWzNdOwotICB2YXIgYTEwID0gYVsgNCArIDBdOwotICB2YXIgYTExID0gYVsgNCArIDFdOwot
ICB2YXIgYTEyID0gYVsgNCArIDJdOwotICB2YXIgYTEzID0gYVsgNCArIDNdOwotICB2YXIgYTIw
ID0gYVsgOCArIDBdOwotICB2YXIgYTIxID0gYVsgOCArIDFdOwotICB2YXIgYTIyID0gYVsgOCAr
IDJdOwotICB2YXIgYTIzID0gYVsgOCArIDNdOwotICB2YXIgYTMwID0gYVsxMiArIDBdOwotICB2
YXIgYTMxID0gYVsxMiArIDFdOwotICB2YXIgYTMyID0gYVsxMiArIDJdOwotICB2YXIgYTMzID0g
YVsxMiArIDNdOwotICB2YXIgYjAwID0gYlswXTsKLSAgdmFyIGIwMSA9IGJbMV07Ci0gIHZhciBi
MDIgPSBiWzJdOwotICB2YXIgYjAzID0gYlszXTsKLSAgdmFyIGIxMCA9IGJbIDQgKyAwXTsKLSAg
dmFyIGIxMSA9IGJbIDQgKyAxXTsKLSAgdmFyIGIxMiA9IGJbIDQgKyAyXTsKLSAgdmFyIGIxMyA9
IGJbIDQgKyAzXTsKLSAgdmFyIGIyMCA9IGJbIDggKyAwXTsKLSAgdmFyIGIyMSA9IGJbIDggKyAx
XTsKLSAgdmFyIGIyMiA9IGJbIDggKyAyXTsKLSAgdmFyIGIyMyA9IGJbIDggKyAzXTsKLSAgdmFy
IGIzMCA9IGJbMTIgKyAwXTsKLSAgdmFyIGIzMSA9IGJbMTIgKyAxXTsKLSAgdmFyIGIzMiA9IGJb
MTIgKyAyXTsKLSAgdmFyIGIzMyA9IGJbMTIgKyAzXTsKLSAgZHN0WyAwXSA9IGEwMCAqIGIwMCAr
IGEwMSAqIGIxMCArIGEwMiAqIGIyMCArIGEwMyAqIGIzMDsKLSAgZHN0WyAxXSA9IGEwMCAqIGIw
MSArIGEwMSAqIGIxMSArIGEwMiAqIGIyMSArIGEwMyAqIGIzMTsKLSAgZHN0WyAyXSA9IGEwMCAq
IGIwMiArIGEwMSAqIGIxMiArIGEwMiAqIGIyMiArIGEwMyAqIGIzMjsKLSAgZHN0WyAzXSA9IGEw
MCAqIGIwMyArIGEwMSAqIGIxMyArIGEwMiAqIGIyMyArIGEwMyAqIGIzMzsKLSAgZHN0WyA0XSA9
IGExMCAqIGIwMCArIGExMSAqIGIxMCArIGExMiAqIGIyMCArIGExMyAqIGIzMDsKLSAgZHN0WyA1
XSA9IGExMCAqIGIwMSArIGExMSAqIGIxMSArIGExMiAqIGIyMSArIGExMyAqIGIzMTsKLSAgZHN0
WyA2XSA9IGExMCAqIGIwMiArIGExMSAqIGIxMiArIGExMiAqIGIyMiArIGExMyAqIGIzMjsKLSAg
ZHN0WyA3XSA9IGExMCAqIGIwMyArIGExMSAqIGIxMyArIGExMiAqIGIyMyArIGExMyAqIGIzMzsK
LSAgZHN0WyA4XSA9IGEyMCAqIGIwMCArIGEyMSAqIGIxMCArIGEyMiAqIGIyMCArIGEyMyAqIGIz
MDsKLSAgZHN0WyA5XSA9IGEyMCAqIGIwMSArIGEyMSAqIGIxMSArIGEyMiAqIGIyMSArIGEyMyAq
IGIzMTsKLSAgZHN0WzEwXSA9IGEyMCAqIGIwMiArIGEyMSAqIGIxMiArIGEyMiAqIGIyMiArIGEy
MyAqIGIzMjsKLSAgZHN0WzExXSA9IGEyMCAqIGIwMyArIGEyMSAqIGIxMyArIGEyMiAqIGIyMyAr
IGEyMyAqIGIzMzsKLSAgZHN0WzEyXSA9IGEzMCAqIGIwMCArIGEzMSAqIGIxMCArIGEzMiAqIGIy
MCArIGEzMyAqIGIzMDsKLSAgZHN0WzEzXSA9IGEzMCAqIGIwMSArIGEzMSAqIGIxMSArIGEzMiAq
IGIyMSArIGEzMyAqIGIzMTsKLSAgZHN0WzE0XSA9IGEzMCAqIGIwMiArIGEzMSAqIGIxMiArIGEz
MiAqIGIyMiArIGEzMyAqIGIzMjsKLSAgZHN0WzE1XSA9IGEzMCAqIGIwMyArIGEzMSAqIGIxMyAr
IGEzMiAqIGIyMyArIGEzMyAqIGIzMzsKLSAgcmV0dXJuIGRzdDsKLX07Ci0KLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBp
eGVscy1pbml0aWFsaXplZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJl
LXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0MjMyMTU3NDMzMmExMzI4NWVmYTliMDM0YWRhZmM1MmIwNThiZDcyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi08IS0tCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0tLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKLXZhciBnbCA9IG51bGw7Ci12YXIgdGV4dHVyZTsKLXZhciB0ZXh0dXJlTG9jID0g
bnVsbDsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLQotZnVuY3Rpb24gaW5pdCgp
Ci17Ci0gICAgaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwotCi0gICAgZGVzY3Jp
cHRpb24oJ1Rlc3RzIHRoZXJlIGlzIG5vIGdhcmJhZ2UgaW4gdHJhbnNwYXJlbnQgcmVnaW9ucyBv
ZiBpbWFnZXMgdXBsb2FkZWQgYXMgdGV4dHVyZXMnKTsKLQotICAgIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotICAgIHZhciBw
cm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLSAgICBnbC5jbGVhckNvbG9yKDAu
NSwwLjUsMC41LDEpOwotICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0KLSAgICB0ZXh0dXJlTG9jID0g
Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLQotICAgIC8vIFRoZSBpbnB1
dCB0ZXh0dXJlIGhhcyA4IGNoYXJhY3RlcnM7IHRha2UgdGhlIGxlZnRtb3N0IG9uZQotICAgIHZh
ciBjb2VmZiA9IDEuMCAvIDguMDsKLSAgICB2YXIgdGV4Q29vcmRzID0gbmV3IEZsb2F0MzJBcnJh
eShbCi0gICAgICAgIGNvZWZmLCAxLjAsCi0gICAgICAgIDAuMCwgMS4wLAotICAgICAgICAwLjAs
IDAuMCwKLSAgICAgICAgY29lZmYsIDEuMCwKLSAgICAgICAgMC4wLCAwLjAsCi0gICAgICAgIGNv
ZWZmLCAwLjBdKTsKLQotICAgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKLSAgICBnbC5idWZmZXJEYXRhKGdsLkFS
UkFZX0JVRkZFUiwgdGV4Q29vcmRzLCBnbC5TVEFUSUNfRFJBVyk7Ci0gICAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkoMSk7Ci0gICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5G
TE9BVCwgZmFsc2UsIDAsIDApOwotCi0gICAgdGV4dHVyZSA9IHd0dS5sb2FkVGV4dHVyZShnbCwg
Ii4uL3Jlc291cmNlcy9idWctMzI4ODgtdGV4dHVyZS5wbmciLCBydW5UZXN0KTsKLX0KLQotLy8g
VGhlc2UgdHdvIGRlY2xhcmF0aW9ucyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0
byBzZWUgdGhlbQotdmFyIGJ1ZiA9IG51bGw7Ci12YXIgaWR4ID0gMDsKLQotZnVuY3Rpb24gcnVu
VGVzdCgpCi17Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JV
RkZFUl9CSVQpOwotICAgIGdsLmVuYWJsZShnbC5CTEVORCk7Ci0gICAgZ2wuYmxlbmRGdW5jKGds
LlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7Ci0gICAgLy8gQmluZCB0aGUgdGV4
dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOwotICAgIC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1
bml0IDAKLSAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0gICAgLy8gRHJhdyB0aGUg
dHJpYW5nbGVzCi0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1
XSk7Ci0KLSAgICAvLyBTcG90IGNoZWNrIGEgY291cGxlIG9mIDJ4MiByZWdpb25zIGluIHRoZSB1
cHBlciBhbmQgbG93ZXIgbGVmdAotICAgIC8vIGNvcm5lcnM7IHRoZXkgc2hvdWxkIGJlIHRoZSBy
Z2IgdmFsdWVzIGluIHRoZSB0ZXh0dXJlLgotICAgIHZhciBjb2xvciA9IFswLCAwLCAwXTsKLSAg
ICBkZWJ1ZygiQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB3dHUuY2hlY2tDYW52
YXNSZWN0KGdsLCAxLCBnbC5jYW52YXMuaGVpZ2h0IC0gMywgMiwgMiwgY29sb3IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAic2hvdWxkQmUgIiArIGNvbG9yKTsKLSAgICBkZWJ1ZygiQ2hlY2tp
bmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAxLCAx
LCAyLCAyLCBjb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgY29s
b3IpOwotCi0gICAgZmluaXNoVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9ImluaXQoKSI+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0i
MzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmRiNjU0YzNiYTZkM2U1ZGM0OTEwY2U0MjNiMzIxZDEwYmQyY2Rh
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEy
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBv
ZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0
cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBN
YXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklM
SVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJ
QUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0K
LS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9
IjIiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlw
dGlvbignVGVzdHMgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB1cGxvYWQgcGF0aCBmb3Ig
VEVYVFVSRV9DVUJFX01BUCcpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLXZhciBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoY2FudmFzKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWZ1bmN0aW9uIHRlc3RPbmVU
YXJnZXQodGFyZ2V0LCB3aWR0aCwgaGVpZ2h0KSB7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7Ci0gIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20g
YmluZFRleHR1cmUoVEVYVFVSRV9DVUJFX01BUCkuIik7Ci0KLSAgZ2wudGV4SW1hZ2UyRCh0YXJn
ZXQsIDAsIGdsLlJHQiwgd2lkdGgsIGhlaWdodCwgMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRF
LCBudWxsKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSB0ZXhJbWFnZTJELiIpOwotCi0gIHZhciBidWYgPSBuZXcgVWludDhBcnJh
eSh3aWR0aCAqIGhlaWdodCAqIDMpOwotICBnbC50ZXhTdWJJbWFnZTJEKHRhcmdldCwgMCwgMCwg
MCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHRl
eFN1YkltYWdlMkQuIik7Ci19Ci0KLXRlc3RPbmVUYXJnZXQoZ2wuVEVYVFVSRV9DVUJFX01BUF9Q
T1NJVElWRV9YLCAxNiwgMTYpOwotdGVzdE9uZVRhcmdldChnbC5URVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1ksIDE2LCAxNik7Ci10ZXN0T25lVGFyZ2V0KGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWiwgMTYsIDE2KTsKLXRlc3RPbmVUYXJnZXQoZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdB
VElWRV9YLCAxNiwgMTYpOwotdGVzdE9uZVRhcmdldChnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1ksIDE2LCAxNik7Ci10ZXN0T25lVGFyZ2V0KGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJ
VkVfWiwgMTYsIDE2KTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2Rlc2t0b3At
Z2wtY29uc3RhbnRzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZWEwYWNiNGU0ZmE4OGZhMTY4MzRkMjRj
NDBiMDljMjdlNDc0YzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwyNjQ1ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
Ci0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
LSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLy8gRGVmaW5l
cyBhIGJ1bmNoIG9mIERlc2t0b3BHTCBjb25zdGFudHMgc28gd2UgY2FuIG1ha2Ugc3VyZSBXZWJH
TAotLy8gaW1wbGVtZW50YXRpb25zIGRpc2FsbG93IHRoZW0uCi0KLXZhciBkZXNrdG9wR0wgPSB7
Ci0gICdNSU4nOiAweDgwMDcsCi0gICdNQVgnOiAweDgwMDgsCi0gICdRVUFEUyc6IDB4MDAwNywK
LSAgJ1FVQURfU1RSSVAnOiAweDAwMDgsCi0gICdQT0xZR09OJzogMHgwMDA5LAotICAnMSc6IDB4
MDAwMSwKLSAgJzInOiAweDAwMDIsCi0gICczJzogMHgwMDAzLAotICAnNCc6IDB4MDAwNCwKLSAg
J1NUQVRJQ19SRUFEJzogMHg4OEU1LAotICAnQ0xJUF9QTEFORTAnOiAweDMwMDAsCi0gICdQRVJT
UEVDVElWRV9DT1JSRUNUSU9OX0hJTlQnOiAweDBDNTAsCi0gICdBQ0NVTV9CVUZGRVJfQklUJzog
MHgwMjAwLAotICAnUkdCNCc6IDB4ODA0RiwKLSAgJ1JHQjUnOiAweDgwNTAsCi0gICdSR0I4Jzog
MHg4MDUxLAotICAnUkdCMTAnOiAweDgwNTIsCi0gICdSR0IxMic6IDB4ODA1MywKLSAgJ1JHQjE2
JzogMHg4MDU0LAotICAnUkdCQTInOiAweDgwNTUsCi0gICdSR0JBNCc6IDB4ODA1NiwKLSAgJ1JH
QjVfQTEnOiAweDgwNTcsCi0gICdSR0JBOCc6IDB4ODA1OCwKLSAgJ1JHQjEwX0EyJzogMHg4MDU5
LAotICAnUkdCQTEyJzogMHg4MDVBLAotICAnUkdCQTE2JzogMHg4MDVCLAotICAnU01PT1RIX1BP
SU5UX1NJWkVfUkFOR0UnOiAweDBCMTIsCi0gICdTTU9PVEhfUE9JTlRfU0laRV9HUkFOVUxBUklU
WSc6IDB4MEIxMywKLSAgJ1NNT09USF9MSU5FX1dJRFRIX1JBTkdFJzogMHgwQjIyLAotICAnU01P
T1RIX0xJTkVfV0lEVEhfR1JBTlVMQVJJVFknOiAweDBCMjMsCi0gICdVTlNJR05FRF9CWVRFXzNf
M18yJzogMHg4MDMyLAotICAnVU5TSUdORURfU0hPUlRfNF80XzRfNCc6IDB4ODAzMywKLSAgJ1VO
U0lHTkVEX1NIT1JUXzVfNV81XzEnOiAweDgwMzQsCi0gICdVTlNJR05FRF9JTlRfOF84XzhfOCc6
IDB4ODAzNSwKLSAgJ1VOU0lHTkVEX0lOVF8xMF8xMF8xMF8yJzogMHg4MDM2LAotICAnUkVTQ0FM
RV9OT1JNQUwnOiAweDgwM0EsCi0gICdURVhUVVJFX0JJTkRJTkdfM0QnOiAweDgwNkEsCi0gICdQ
QUNLX1NLSVBfSU1BR0VTJzogMHg4MDZCLAotICAnUEFDS19JTUFHRV9IRUlHSFQnOiAweDgwNkMs
Ci0gICdVTlBBQ0tfU0tJUF9JTUFHRVMnOiAweDgwNkQsCi0gICdVTlBBQ0tfSU1BR0VfSEVJR0hU
JzogMHg4MDZFLAotICAnVEVYVFVSRV8zRCc6IDB4ODA2RiwKLSAgJ1BST1hZX1RFWFRVUkVfM0Qn
OiAweDgwNzAsCi0gICdURVhUVVJFX0RFUFRIJzogMHg4MDcxLAotICAnVEVYVFVSRV9XUkFQX1In
OiAweDgwNzIsCi0gICdNQVhfM0RfVEVYVFVSRV9TSVpFJzogMHg4MDczLAotICAnQkdSJzogMHg4
MEUwLAotICAnQkdSQSc6IDB4ODBFMSwKLSAgJ01BWF9FTEVNRU5UU19WRVJUSUNFUyc6IDB4ODBF
OCwKLSAgJ01BWF9FTEVNRU5UU19JTkRJQ0VTJzogMHg4MEU5LAotICAnQ0xBTVBfVE9fRURHRSc6
IDB4ODEyRiwKLSAgJ1RFWFRVUkVfTUlOX0xPRCc6IDB4ODEzQSwKLSAgJ1RFWFRVUkVfTUFYX0xP
RCc6IDB4ODEzQiwKLSAgJ1RFWFRVUkVfQkFTRV9MRVZFTCc6IDB4ODEzQywKLSAgJ1RFWFRVUkVf
TUFYX0xFVkVMJzogMHg4MTNELAotICAnTElHSFRfTU9ERUxfQ09MT1JfQ09OVFJPTCc6IDB4ODFG
OCwKLSAgJ1NJTkdMRV9DT0xPUic6IDB4ODFGOSwKLSAgJ1NFUEFSQVRFX1NQRUNVTEFSX0NPTE9S
JzogMHg4MUZBLAotICAnVU5TSUdORURfQllURV8yXzNfM19SRVYnOiAweDgzNjIsCi0gICdVTlNJ
R05FRF9TSE9SVF81XzZfNSc6IDB4ODM2MywKLSAgJ1VOU0lHTkVEX1NIT1JUXzVfNl81X1JFVic6
IDB4ODM2NCwKLSAgJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzRfUkVWJzogMHg4MzY1LAotICAnVU5T
SUdORURfU0hPUlRfMV81XzVfNV9SRVYnOiAweDgzNjYsCi0gICdVTlNJR05FRF9JTlRfOF84Xzhf
OF9SRVYnOiAweDgzNjcsCi0gICdVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYnOiAweDgzNjgs
Ci0gICdBTElBU0VEX1BPSU5UX1NJWkVfUkFOR0UnOiAweDg0NkQsCi0gICdBTElBU0VEX0xJTkVf
V0lEVEhfUkFOR0UnOiAweDg0NkUsCi0gICdNVUxUSVNBTVBMRSc6IDB4ODA5RCwKLSAgJ1NBTVBM
RV9BTFBIQV9UT19DT1ZFUkFHRSc6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBIQV9UT19PTkUnOiAw
eDgwOUYsCi0gICdTQU1QTEVfQ09WRVJBR0UnOiAweDgwQTAsCi0gICdTQU1QTEVfQlVGRkVSUyc6
IDB4ODBBOCwKLSAgJ1NBTVBMRVMnOiAweDgwQTksCi0gICdTQU1QTEVfQ09WRVJBR0VfVkFMVUUn
OiAweDgwQUEsCi0gICdTQU1QTEVfQ09WRVJBR0VfSU5WRVJUJzogMHg4MEFCLAotICAnQ0xBTVBf
VE9fQk9SREVSJzogMHg4MTJELAotICAnVEVYVFVSRTAnOiAweDg0QzAsCi0gICdURVhUVVJFMSc6
IDB4ODRDMSwKLSAgJ1RFWFRVUkUyJzogMHg4NEMyLAotICAnVEVYVFVSRTMnOiAweDg0QzMsCi0g
ICdURVhUVVJFNCc6IDB4ODRDNCwKLSAgJ1RFWFRVUkU1JzogMHg4NEM1LAotICAnVEVYVFVSRTYn
OiAweDg0QzYsCi0gICdURVhUVVJFNyc6IDB4ODRDNywKLSAgJ1RFWFRVUkU4JzogMHg4NEM4LAot
ICAnVEVYVFVSRTknOiAweDg0QzksCi0gICdURVhUVVJFMTAnOiAweDg0Q0EsCi0gICdURVhUVVJF
MTEnOiAweDg0Q0IsCi0gICdURVhUVVJFMTInOiAweDg0Q0MsCi0gICdURVhUVVJFMTMnOiAweDg0
Q0QsCi0gICdURVhUVVJFMTQnOiAweDg0Q0UsCi0gICdURVhUVVJFMTUnOiAweDg0Q0YsCi0gICdU
RVhUVVJFMTYnOiAweDg0RDAsCi0gICdURVhUVVJFMTcnOiAweDg0RDEsCi0gICdURVhUVVJFMTgn
OiAweDg0RDIsCi0gICdURVhUVVJFMTknOiAweDg0RDMsCi0gICdURVhUVVJFMjAnOiAweDg0RDQs
Ci0gICdURVhUVVJFMjEnOiAweDg0RDUsCi0gICdURVhUVVJFMjInOiAweDg0RDYsCi0gICdURVhU
VVJFMjMnOiAweDg0RDcsCi0gICdURVhUVVJFMjQnOiAweDg0RDgsCi0gICdURVhUVVJFMjUnOiAw
eDg0RDksCi0gICdURVhUVVJFMjYnOiAweDg0REEsCi0gICdURVhUVVJFMjcnOiAweDg0REIsCi0g
ICdURVhUVVJFMjgnOiAweDg0REMsCi0gICdURVhUVVJFMjknOiAweDg0REQsCi0gICdURVhUVVJF
MzAnOiAweDg0REUsCi0gICdURVhUVVJFMzEnOiAweDg0REYsCi0gICdBQ1RJVkVfVEVYVFVSRSc6
IDB4ODRFMCwKLSAgJ0NMSUVOVF9BQ1RJVkVfVEVYVFVSRSc6IDB4ODRFMSwKLSAgJ01BWF9URVhU
VVJFX1VOSVRTJzogMHg4NEUyLAotICAnVFJBTlNQT1NFX01PREVMVklFV19NQVRSSVgnOiAweDg0
RTMsCi0gICdUUkFOU1BPU0VfUFJPSkVDVElPTl9NQVRSSVgnOiAweDg0RTQsCi0gICdUUkFOU1BP
U0VfVEVYVFVSRV9NQVRSSVgnOiAweDg0RTUsCi0gICdUUkFOU1BPU0VfQ09MT1JfTUFUUklYJzog
MHg4NEU2LAotICAnU1VCVFJBQ1QnOiAweDg0RTcsCi0gICdDT01QUkVTU0VEX0FMUEhBJzogMHg4
NEU5LAotICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0UnOiAweDg0RUEsCi0gICdDT01QUkVTU0VEX0xV
TUlOQU5DRV9BTFBIQSc6IDB4ODRFQiwKLSAgJ0NPTVBSRVNTRURfSU5URU5TSVRZJzogMHg4NEVD
LAotICAnQ09NUFJFU1NFRF9SR0InOiAweDg0RUQsCi0gICdDT01QUkVTU0VEX1JHQkEnOiAweDg0
RUUsCi0gICdURVhUVVJFX0NPTVBSRVNTSU9OX0hJTlQnOiAweDg0RUYsCi0gICdOT1JNQUxfTUFQ
JzogMHg4NTExLAotICAnUkVGTEVDVElPTl9NQVAnOiAweDg1MTIsCi0gICdURVhUVVJFX0NVQkVf
TUFQJzogMHg4NTEzLAotICAnVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQJzogMHg4NTE0LAotICAn
VEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YJzogMHg4NTE1LAotICAnVEVYVFVSRV9DVUJFX01B
UF9ORUdBVElWRV9YJzogMHg4NTE2LAotICAnVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZJzog
MHg4NTE3LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZJzogMHg4NTE4LAotICAnVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9aJzogMHg4NTE5LAotICAnVEVYVFVSRV9DVUJFX01BUF9O
RUdBVElWRV9aJzogMHg4NTFBLAotICAnUFJPWFlfVEVYVFVSRV9DVUJFX01BUCc6IDB4ODUxQiwK
LSAgJ01BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUnOiAweDg1MUMsCi0gICdDT01CSU5FJzogMHg4
NTcwLAotICAnQ09NQklORV9SR0InOiAweDg1NzEsCi0gICdDT01CSU5FX0FMUEhBJzogMHg4NTcy
LAotICAnUkdCX1NDQUxFJzogMHg4NTczLAotICAnQUREX1NJR05FRCc6IDB4ODU3NCwKLSAgJ0lO
VEVSUE9MQVRFJzogMHg4NTc1LAotICAnQ09OU1RBTlQnOiAweDg1NzYsCi0gICdQUklNQVJZX0NP
TE9SJzogMHg4NTc3LAotICAnUFJFVklPVVMnOiAweDg1NzgsCi0gICdTT1VSQ0UwX1JHQic6IDB4
ODU4MCwKLSAgJ1NPVVJDRTFfUkdCJzogMHg4NTgxLAotICAnU09VUkNFMl9SR0InOiAweDg1ODIs
Ci0gICdTT1VSQ0UwX0FMUEhBJzogMHg4NTg4LAotICAnU09VUkNFMV9BTFBIQSc6IDB4ODU4OSwK
LSAgJ1NPVVJDRTJfQUxQSEEnOiAweDg1OEEsCi0gICdPUEVSQU5EMF9SR0InOiAweDg1OTAsCi0g
ICdPUEVSQU5EMV9SR0InOiAweDg1OTEsCi0gICdPUEVSQU5EMl9SR0InOiAweDg1OTIsCi0gICdP
UEVSQU5EMF9BTFBIQSc6IDB4ODU5OCwKLSAgJ09QRVJBTkQxX0FMUEhBJzogMHg4NTk5LAotICAn
T1BFUkFORDJfQUxQSEEnOiAweDg1OUEsCi0gICdURVhUVVJFX0NPTVBSRVNTRURfSU1BR0VfU0la
RSc6IDB4ODZBMCwKLSAgJ1RFWFRVUkVfQ09NUFJFU1NFRCc6IDB4ODZBMSwKLSAgJ05VTV9DT01Q
UkVTU0VEX1RFWFRVUkVfRk9STUFUUyc6IDB4ODZBMiwKLSAgJ0NPTVBSRVNTRURfVEVYVFVSRV9G
T1JNQVRTJzogMHg4NkEzLAotICAnRE9UM19SR0InOiAweDg2QUUsCi0gICdET1QzX1JHQkEnOiAw
eDg2QUYsCi0gICdNVUxUSVNBTVBMRV9CSVQnOiAweDIwMDAwMDAwLAotICAnQkxFTkRfRFNUX1JH
Qic6IDB4ODBDOCwKLSAgJ0JMRU5EX1NSQ19SR0InOiAweDgwQzksCi0gICdCTEVORF9EU1RfQUxQ
SEEnOiAweDgwQ0EsCi0gICdCTEVORF9TUkNfQUxQSEEnOiAweDgwQ0IsCi0gICdQT0lOVF9TSVpF
X01JTic6IDB4ODEyNiwKLSAgJ1BPSU5UX1NJWkVfTUFYJzogMHg4MTI3LAotICAnUE9JTlRfRkFE
RV9USFJFU0hPTERfU0laRSc6IDB4ODEyOCwKLSAgJ1BPSU5UX0RJU1RBTkNFX0FUVEVOVUFUSU9O
JzogMHg4MTI5LAotICAnR0VORVJBVEVfTUlQTUFQJzogMHg4MTkxLAotICAnR0VORVJBVEVfTUlQ
TUFQX0hJTlQnOiAweDgxOTIsCi0gICdERVBUSF9DT01QT05FTlQxNic6IDB4ODFBNSwKLSAgJ0RF
UFRIX0NPTVBPTkVOVDI0JzogMHg4MUE2LAotICAnREVQVEhfQ09NUE9ORU5UMzInOiAweDgxQTcs
Ci0gICdNSVJST1JFRF9SRVBFQVQnOiAweDgzNzAsCi0gICdGT0dfQ09PUkRJTkFURV9TT1VSQ0Un
OiAweDg0NTAsCi0gICdGT0dfQ09PUkRJTkFURSc6IDB4ODQ1MSwKLSAgJ0ZSQUdNRU5UX0RFUFRI
JzogMHg4NDUyLAotICAnQ1VSUkVOVF9GT0dfQ09PUkRJTkFURSc6IDB4ODQ1MywKLSAgJ0ZPR19D
T09SRElOQVRFX0FSUkFZX1RZUEUnOiAweDg0NTQsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9T
VFJJREUnOiAweDg0NTUsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9QT0lOVEVSJzogMHg4NDU2
LAotICAnRk9HX0NPT1JESU5BVEVfQVJSQVknOiAweDg0NTcsCi0gICdDT0xPUl9TVU0nOiAweDg0
NTgsCi0gICdDVVJSRU5UX1NFQ09OREFSWV9DT0xPUic6IDB4ODQ1OSwKLSAgJ1NFQ09OREFSWV9D
T0xPUl9BUlJBWV9TSVpFJzogMHg4NDVBLAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX1RZUEUn
OiAweDg0NUIsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfU1RSSURFJzogMHg4NDVDLAotICAn
U0VDT05EQVJZX0NPTE9SX0FSUkFZX1BPSU5URVInOiAweDg0NUQsCi0gICdTRUNPTkRBUllfQ09M
T1JfQVJSQVknOiAweDg0NUUsCi0gICdNQVhfVEVYVFVSRV9MT0RfQklBUyc6IDB4ODRGRCwKLSAg
J1RFWFRVUkVfRklMVEVSX0NPTlRST0wnOiAweDg1MDAsCi0gICdURVhUVVJFX0xPRF9CSUFTJzog
MHg4NTAxLAotICAnSU5DUl9XUkFQJzogMHg4NTA3LAotICAnREVDUl9XUkFQJzogMHg4NTA4LAot
ICAnVEVYVFVSRV9ERVBUSF9TSVpFJzogMHg4ODRBLAotICAnREVQVEhfVEVYVFVSRV9NT0RFJzog
MHg4ODRCLAotICAnVEVYVFVSRV9DT01QQVJFX01PREUnOiAweDg4NEMsCi0gICdURVhUVVJFX0NP
TVBBUkVfRlVOQyc6IDB4ODg0RCwKLSAgJ0NPTVBBUkVfUl9UT19URVhUVVJFJzogMHg4ODRFLAot
ICAnQlVGRkVSX1NJWkUnOiAweDg3NjQsCi0gICdCVUZGRVJfVVNBR0UnOiAweDg3NjUsCi0gICdR
VUVSWV9DT1VOVEVSX0JJVFMnOiAweDg4NjQsCi0gICdDVVJSRU5UX1FVRVJZJzogMHg4ODY1LAot
ICAnUVVFUllfUkVTVUxUJzogMHg4ODY2LAotICAnUVVFUllfUkVTVUxUX0FWQUlMQUJMRSc6IDB4
ODg2NywKLSAgJ0FSUkFZX0JVRkZFUic6IDB4ODg5MiwKLSAgJ0VMRU1FTlRfQVJSQVlfQlVGRkVS
JzogMHg4ODkzLAotICAnQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTQsCi0gICdFTEVNRU5U
X0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODk1LAotICAnVkVSVEVYX0FSUkFZX0JVRkZFUl9C
SU5ESU5HJzogMHg4ODk2LAotICAnTk9STUFMX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODk3
LAotICAnQ09MT1JfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTgsCi0gICdJTkRFWF9BUlJB
WV9CVUZGRVJfQklORElORyc6IDB4ODg5OSwKLSAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfQlVGRkVS
X0JJTkRJTkcnOiAweDg4OUEsCi0gICdFREdFX0ZMQUdfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAw
eDg4OUIsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OUMs
Ci0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5RCwKLSAgJ1dF
SUdIVF9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5RSwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJS
QVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OUYsCi0gICdSRUFEX09OTFknOiAweDg4QjgsCi0gICdX
UklURV9PTkxZJzogMHg4OEI5LAotICAnUkVBRF9XUklURSc6IDB4ODhCQSwKLSAgJ0JVRkZFUl9B
Q0NFU1MnOiAweDg4QkIsCi0gICdCVUZGRVJfTUFQUEVEJzogMHg4OEJDLAotICAnQlVGRkVSX01B
UF9QT0lOVEVSJzogMHg4OEJELAotICAnU1RSRUFNX0RSQVcnOiAweDg4RTAsCi0gICdTVFJFQU1f
UkVBRCc6IDB4ODhFMSwKLSAgJ1NUUkVBTV9DT1BZJzogMHg4OEUyLAotICAnU1RBVElDX0RSQVcn
OiAweDg4RTQsCi0gICdTVEFUSUNfUkVBRCc6IDB4ODhFNSwKLSAgJ1NUQVRJQ19DT1BZJzogMHg4
OEU2LAotICAnRFlOQU1JQ19EUkFXJzogMHg4OEU4LAotICAnRFlOQU1JQ19SRUFEJzogMHg4OEU5
LAotICAnRFlOQU1JQ19DT1BZJzogMHg4OEVBLAotICAnU0FNUExFU19QQVNTRUQnOiAweDg5MTQs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQnOiAweDg2MjIsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZX1NJWkUnOiAweDg2MjMsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSc6
IDB4ODYyNCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSc6IDB4ODYyNSwKLSAgJ0NVUlJF
TlRfVkVSVEVYX0FUVFJJQic6IDB4ODYyNiwKLSAgJ1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUn
OiAweDg2NDIsCi0gICdWRVJURVhfUFJPR1JBTV9UV09fU0lERSc6IDB4ODY0MywKLSAgJ1ZFUlRF
WF9BVFRSSUJfQVJSQVlfUE9JTlRFUic6IDB4ODY0NSwKLSAgJ1NURU5DSUxfQkFDS19GVU5DJzog
MHg4ODAwLAotICAnU1RFTkNJTF9CQUNLX0ZBSUwnOiAweDg4MDEsCi0gICdTVEVOQ0lMX0JBQ0tf
UEFTU19ERVBUSF9GQUlMJzogMHg4ODAyLAotICAnU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFT
Uyc6IDB4ODgwMywKLSAgJ01BWF9EUkFXX0JVRkZFUlMnOiAweDg4MjQsCi0gICdEUkFXX0JVRkZF
UjAnOiAweDg4MjUsCi0gICdEUkFXX0JVRkZFUjEnOiAweDg4MjYsCi0gICdEUkFXX0JVRkZFUjIn
OiAweDg4MjcsCi0gICdEUkFXX0JVRkZFUjMnOiAweDg4MjgsCi0gICdEUkFXX0JVRkZFUjQnOiAw
eDg4MjksCi0gICdEUkFXX0JVRkZFUjUnOiAweDg4MkEsCi0gICdEUkFXX0JVRkZFUjYnOiAweDg4
MkIsCi0gICdEUkFXX0JVRkZFUjcnOiAweDg4MkMsCi0gICdEUkFXX0JVRkZFUjgnOiAweDg4MkQs
Ci0gICdEUkFXX0JVRkZFUjknOiAweDg4MkUsCi0gICdEUkFXX0JVRkZFUjEwJzogMHg4ODJGLAot
ICAnRFJBV19CVUZGRVIxMSc6IDB4ODgzMCwKLSAgJ0RSQVdfQlVGRkVSMTInOiAweDg4MzEsCi0g
ICdEUkFXX0JVRkZFUjEzJzogMHg4ODMyLAotICAnRFJBV19CVUZGRVIxNCc6IDB4ODgzMywKLSAg
J0RSQVdfQlVGRkVSMTUnOiAweDg4MzQsCi0gICdCTEVORF9FUVVBVElPTl9BTFBIQSc6IDB4ODgz
RCwKLSAgJ1BPSU5UX1NQUklURSc6IDB4ODg2MSwKLSAgJ0NPT1JEX1JFUExBQ0UnOiAweDg4NjIs
Ci0gICdNQVhfVkVSVEVYX0FUVFJJQlMnOiAweDg4NjksCi0gICdWRVJURVhfQVRUUklCX0FSUkFZ
X05PUk1BTElaRUQnOiAweDg4NkEsCi0gICdNQVhfVEVYVFVSRV9DT09SRFMnOiAweDg4NzEsCi0g
ICdNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyc6IDB4ODg3MiwKLSAgJ0ZSQUdNRU5UX1NIQURFUic6
IDB4OEIzMCwKLSAgJ1ZFUlRFWF9TSEFERVInOiAweDhCMzEsCi0gICdNQVhfRlJBR01FTlRfVU5J
Rk9STV9DT01QT05FTlRTJzogMHg4QjQ5LAotICAnTUFYX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVO
VFMnOiAweDhCNEEsCi0gICdNQVhfVkFSWUlOR19GTE9BVFMnOiAweDhCNEIsCi0gICdNQVhfVkVS
VEVYX1RFWFRVUkVfSU1BR0VfVU5JVFMnOiAweDhCNEMsCi0gICdNQVhfQ09NQklORURfVEVYVFVS
RV9JTUFHRV9VTklUUyc6IDB4OEI0RCwKLSAgJ1NIQURFUl9UWVBFJzogMHg4QjRGLAotICAnRkxP
QVRfVkVDMic6IDB4OEI1MCwKLSAgJ0ZMT0FUX1ZFQzMnOiAweDhCNTEsCi0gICdGTE9BVF9WRUM0
JzogMHg4QjUyLAotICAnSU5UX1ZFQzInOiAweDhCNTMsCi0gICdJTlRfVkVDMyc6IDB4OEI1NCwK
LSAgJ0lOVF9WRUM0JzogMHg4QjU1LAotICAnQk9PTCc6IDB4OEI1NiwKLSAgJ0JPT0xfVkVDMic6
IDB4OEI1NywKLSAgJ0JPT0xfVkVDMyc6IDB4OEI1OCwKLSAgJ0JPT0xfVkVDNCc6IDB4OEI1OSwK
LSAgJ0ZMT0FUX01BVDInOiAweDhCNUEsCi0gICdGTE9BVF9NQVQzJzogMHg4QjVCLAotICAnRkxP
QVRfTUFUNCc6IDB4OEI1QywKLSAgJ1NBTVBMRVJfMUQnOiAweDhCNUQsCi0gICdTQU1QTEVSXzJE
JzogMHg4QjVFLAotICAnU0FNUExFUl8zRCc6IDB4OEI1RiwKLSAgJ1NBTVBMRVJfQ1VCRSc6IDB4
OEI2MCwKLSAgJ1NBTVBMRVJfMURfU0hBRE9XJzogMHg4QjYxLAotICAnU0FNUExFUl8yRF9TSEFE
T1cnOiAweDhCNjIsCi0gICdERUxFVEVfU1RBVFVTJzogMHg4QjgwLAotICAnQ09NUElMRV9TVEFU
VVMnOiAweDhCODEsCi0gICdMSU5LX1NUQVRVUyc6IDB4OEI4MiwKLSAgJ1ZBTElEQVRFX1NUQVRV
Uyc6IDB4OEI4MywKLSAgJ0lORk9fTE9HX0xFTkdUSCc6IDB4OEI4NCwKLSAgJ0FUVEFDSEVEX1NI
QURFUlMnOiAweDhCODUsCi0gICdBQ1RJVkVfVU5JRk9STVMnOiAweDhCODYsCi0gICdBQ1RJVkVf
VU5JRk9STV9NQVhfTEVOR1RIJzogMHg4Qjg3LAotICAnU0hBREVSX1NPVVJDRV9MRU5HVEgnOiAw
eDhCODgsCi0gICdBQ1RJVkVfQVRUUklCVVRFUyc6IDB4OEI4OSwKLSAgJ0FDVElWRV9BVFRSSUJV
VEVfTUFYX0xFTkdUSCc6IDB4OEI4QSwKLSAgJ0ZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJ
TlQnOiAweDhCOEIsCi0gICdTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04nOiAweDhCOEMsCi0gICdD
VVJSRU5UX1BST0dSQU0nOiAweDhCOEQsCi0gICdQT0lOVF9TUFJJVEVfQ09PUkRfT1JJR0lOJzog
MHg4Q0EwLAotICAnTE9XRVJfTEVGVCc6IDB4OENBMSwKLSAgJ1VQUEVSX0xFRlQnOiAweDhDQTIs
Ci0gICdTVEVOQ0lMX0JBQ0tfUkVGJzogMHg4Q0EzLAotICAnU1RFTkNJTF9CQUNLX1ZBTFVFX01B
U0snOiAweDhDQTQsCi0gICdTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLJzogMHg4Q0E1LAotICAnQ1VS
UkVOVF9SQVNURVJfU0VDT05EQVJZX0NPTE9SJzogMHg4NDVGLAotICAnUElYRUxfUEFDS19CVUZG
RVInOiAweDg4RUIsCi0gICdQSVhFTF9VTlBBQ0tfQlVGRkVSJzogMHg4OEVDLAotICAnUElYRUxf
UEFDS19CVUZGRVJfQklORElORyc6IDB4ODhFRCwKLSAgJ1BJWEVMX1VOUEFDS19CVUZGRVJfQklO
RElORyc6IDB4ODhFRiwKLSAgJ0ZMT0FUX01BVDJ4Myc6IDB4OEI2NSwKLSAgJ0ZMT0FUX01BVDJ4
NCc6IDB4OEI2NiwKLSAgJ0ZMT0FUX01BVDN4Mic6IDB4OEI2NywKLSAgJ0ZMT0FUX01BVDN4NCc6
IDB4OEI2OCwKLSAgJ0ZMT0FUX01BVDR4Mic6IDB4OEI2OSwKLSAgJ0ZMT0FUX01BVDR4Myc6IDB4
OEI2QSwKLSAgJ1NSR0InOiAweDhDNDAsCi0gICdTUkdCOCc6IDB4OEM0MSwKLSAgJ1NSR0JfQUxQ
SEEnOiAweDhDNDIsCi0gICdTUkdCOF9BTFBIQTgnOiAweDhDNDMsCi0gICdTTFVNSU5BTkNFX0FM
UEhBJzogMHg4QzQ0LAotICAnU0xVTUlOQU5DRThfQUxQSEE4JzogMHg4QzQ1LAotICAnU0xVTUlO
QU5DRSc6IDB4OEM0NiwKLSAgJ1NMVU1JTkFOQ0U4JzogMHg4QzQ3LAotICAnQ09NUFJFU1NFRF9T
UkdCJzogMHg4QzQ4LAotICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhBJzogMHg4QzQ5LAotICAnQ09N
UFJFU1NFRF9TTFVNSU5BTkNFJzogMHg4QzRBLAotICAnQ09NUFJFU1NFRF9TTFVNSU5BTkNFX0FM
UEhBJzogMHg4QzRCLAotICAnQ09OVEVYVF9GTEFHX0ZPUldBUkRfQ09NUEFUSUJMRV9CSVQnOiAw
eDAwMDEsCi0gICdNQUpPUl9WRVJTSU9OJzogMHg4MjFCLAotICAnTUlOT1JfVkVSU0lPTic6IDB4
ODIxQywKLSAgJ05VTV9FWFRFTlNJT05TJzogMHg4MjFELAotICAnQ09OVEVYVF9GTEFHUyc6IDB4
ODIxRSwKLSAgJ0RFUFRIX0JVRkZFUic6IDB4ODIyMywKLSAgJ1NURU5DSUxfQlVGRkVSJzogMHg4
MjI0LAotICAnQ09NUFJFU1NFRF9SRUQnOiAweDgyMjUsCi0gICdDT01QUkVTU0VEX1JHJzogMHg4
MjI2LAotICAnUkdCQTMyRic6IDB4ODgxNCwKLSAgJ1JHQjMyRic6IDB4ODgxNSwKLSAgJ1JHQkEx
NkYnOiAweDg4MUEsCi0gICdSR0IxNkYnOiAweDg4MUIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZ
X0lOVEVHRVInOiAweDg4RkQsCi0gICdNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMnOiAweDg4RkYs
Ci0gICdNSU5fUFJPR1JBTV9URVhFTF9PRkZTRVQnOiAweDg5MDQsCi0gICdNQVhfUFJPR1JBTV9U
RVhFTF9PRkZTRVQnOiAweDg5MDUsCi0gICdDTEFNUF9WRVJURVhfQ09MT1InOiAweDg5MUEsCi0g
ICdDTEFNUF9GUkFHTUVOVF9DT0xPUic6IDB4ODkxQiwKLSAgJ0NMQU1QX1JFQURfQ09MT1InOiAw
eDg5MUMsCi0gICdGSVhFRF9PTkxZJzogMHg4OTFELAotICAnVEVYVFVSRV9SRURfVFlQRSc6IDB4
OEMxMCwKLSAgJ1RFWFRVUkVfR1JFRU5fVFlQRSc6IDB4OEMxMSwKLSAgJ1RFWFRVUkVfQkxVRV9U
WVBFJzogMHg4QzEyLAotICAnVEVYVFVSRV9BTFBIQV9UWVBFJzogMHg4QzEzLAotICAnVEVYVFVS
RV9MVU1JTkFOQ0VfVFlQRSc6IDB4OEMxNCwKLSAgJ1RFWFRVUkVfSU5URU5TSVRZX1RZUEUnOiAw
eDhDMTUsCi0gICdURVhUVVJFX0RFUFRIX1RZUEUnOiAweDhDMTYsCi0gICdVTlNJR05FRF9OT1JN
QUxJWkVEJzogMHg4QzE3LAotICAnVEVYVFVSRV8xRF9BUlJBWSc6IDB4OEMxOCwKLSAgJ1BST1hZ
X1RFWFRVUkVfMURfQVJSQVknOiAweDhDMTksCi0gICdURVhUVVJFXzJEX0FSUkFZJzogMHg4QzFB
LAotICAnUFJPWFlfVEVYVFVSRV8yRF9BUlJBWSc6IDB4OEMxQiwKLSAgJ1RFWFRVUkVfQklORElO
R18xRF9BUlJBWSc6IDB4OEMxQywKLSAgJ1RFWFRVUkVfQklORElOR18yRF9BUlJBWSc6IDB4OEMx
RCwKLSAgJ1IxMUZfRzExRl9CMTBGJzogMHg4QzNBLAotICAnVU5TSUdORURfSU5UXzEwRl8xMUZf
MTFGX1JFVic6IDB4OEMzQiwKLSAgJ1JHQjlfRTUnOiAweDhDM0QsCi0gICdVTlNJR05FRF9JTlRf
NV85XzlfOV9SRVYnOiAweDhDM0UsCi0gICdURVhUVVJFX1NIQVJFRF9TSVpFJzogMHg4QzNGLAot
ICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdfTUFYX0xFTkdUSCc6IDB4OEM3NiwKLSAgJ1RS
QU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSc6IDB4OEM3RiwKLSAgJ01BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQ09NUE9ORU5UUyc6IDB4OEM4MCwKLSAgJ1RSQU5TRk9STV9GRUVE
QkFDS19WQVJZSU5HUyc6IDB4OEM4MywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RB
UlQnOiAweDhDODQsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUnOiAweDhDODUs
Ci0gICdQUklNSVRJVkVTX0dFTkVSQVRFRCc6IDB4OEM4NywKLSAgJ1RSQU5TRk9STV9GRUVEQkFD
S19QUklNSVRJVkVTX1dSSVRURU4nOiAweDhDODgsCi0gICdSQVNURVJJWkVSX0RJU0NBUkQnOiAw
eDhDODksCi0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMn
OiAweDhDOEEsCi0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJQlMnOiAw
eDhDOEIsCi0gICdJTlRFUkxFQVZFRF9BVFRSSUJTJzogMHg4QzhDLAotICAnU0VQQVJBVEVfQVRU
UklCUyc6IDB4OEM4RCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVInOiAweDhDOEUsCi0g
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcnOiAweDhDOEYsCi0gICdSR0JBMzJV
SSc6IDB4OEQ3MCwKLSAgJ1JHQjMyVUknOiAweDhENzEsCi0gICdSR0JBMTZVSSc6IDB4OEQ3NiwK
LSAgJ1JHQjE2VUknOiAweDhENzcsCi0gICdSR0JBOFVJJzogMHg4RDdDLAotICAnUkdCOFVJJzog
MHg4RDdELAotICAnUkdCQTMySSc6IDB4OEQ4MiwKLSAgJ1JHQjMySSc6IDB4OEQ4MywKLSAgJ1JH
QkExNkknOiAweDhEODgsCi0gICdSR0IxNkknOiAweDhEODksCi0gICdSR0JBOEknOiAweDhEOEUs
Ci0gICdSR0I4SSc6IDB4OEQ4RiwKLSAgJ1JFRF9JTlRFR0VSJzogMHg4RDk0LAotICAnR1JFRU5f
SU5URUdFUic6IDB4OEQ5NSwKLSAgJ0JMVUVfSU5URUdFUic6IDB4OEQ5NiwKLSAgJ0FMUEhBX0lO
VEVHRVInOiAweDhEOTcsCi0gICdSR0JfSU5URUdFUic6IDB4OEQ5OCwKLSAgJ1JHQkFfSU5URUdF
Uic6IDB4OEQ5OSwKLSAgJ0JHUl9JTlRFR0VSJzogMHg4RDlBLAotICAnQkdSQV9JTlRFR0VSJzog
MHg4RDlCLAotICAnU0FNUExFUl8xRF9BUlJBWSc6IDB4OERDMCwKLSAgJ1NBTVBMRVJfMkRfQVJS
QVknOiAweDhEQzEsCi0gICdTQU1QTEVSXzFEX0FSUkFZX1NIQURPVyc6IDB4OERDMywKLSAgJ1NB
TVBMRVJfMkRfQVJSQVlfU0hBRE9XJzogMHg4REM0LAotICAnU0FNUExFUl9DVUJFX1NIQURPVyc6
IDB4OERDNSwKLSAgJ1VOU0lHTkVEX0lOVF9WRUMyJzogMHg4REM2LAotICAnVU5TSUdORURfSU5U
X1ZFQzMnOiAweDhEQzcsCi0gICdVTlNJR05FRF9JTlRfVkVDNCc6IDB4OERDOCwKLSAgJ0lOVF9T
QU1QTEVSXzFEJzogMHg4REM5LAotICAnSU5UX1NBTVBMRVJfMkQnOiAweDhEQ0EsCi0gICdJTlRf
U0FNUExFUl8zRCc6IDB4OERDQiwKLSAgJ0lOVF9TQU1QTEVSX0NVQkUnOiAweDhEQ0MsCi0gICdJ
TlRfU0FNUExFUl8xRF9BUlJBWSc6IDB4OERDRSwKLSAgJ0lOVF9TQU1QTEVSXzJEX0FSUkFZJzog
MHg4RENGLAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMUQnOiAweDhERDEsCi0gICdVTlNJR05F
RF9JTlRfU0FNUExFUl8yRCc6IDB4OEREMiwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzNEJzog
MHg4REQzLAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfQ1VCRSc6IDB4OERENCwKLSAgJ1VOU0lH
TkVEX0lOVF9TQU1QTEVSXzFEX0FSUkFZJzogMHg4REQ2LAotICAnVU5TSUdORURfSU5UX1NBTVBM
RVJfMkRfQVJSQVknOiAweDhERDcsCi0gICdRVUVSWV9XQUlUJzogMHg4RTEzLAotICAnUVVFUllf
Tk9fV0FJVCc6IDB4OEUxNCwKLSAgJ1FVRVJZX0JZX1JFR0lPTl9XQUlUJzogMHg4RTE1LAotICAn
UVVFUllfQllfUkVHSU9OX05PX1dBSVQnOiAweDhFMTYsCi0gICdNVUxUSVNBTVBMRV8zREZYJzog
MHg4NkIyLAotICAnU0FNUExFX0JVRkZFUlNfM0RGWCc6IDB4ODZCMywKLSAgJ1NBTVBMRVNfM0RG
WCc6IDB4ODZCNCwKLSAgJ01VTFRJU0FNUExFX0JJVF8zREZYJzogMHgyMDAwMDAwMCwKLSAgJ0NP
TVBSRVNTRURfUkdCX0ZYVDFfM0RGWCc6IDB4ODZCMCwKLSAgJ0NPTVBSRVNTRURfUkdCQV9GWFQx
XzNERlgnOiAweDg2QjEsCi0gICdVTlBBQ0tfQ0xJRU5UX1NUT1JBR0VfQVBQTEUnOiAweDg1QjIs
Ci0gICdFTEVNRU5UX0FSUkFZX0FQUExFJzogMHg4NzY4LAotICAnRUxFTUVOVF9BUlJBWV9UWVBF
X0FQUExFJzogMHg4NzY5LAotICAnRUxFTUVOVF9BUlJBWV9QT0lOVEVSX0FQUExFJzogMHg4NzZB
LAotICAnSEFMRl9BUFBMRSc6IDB4MTQwQiwKLSAgJ1JHQkFfRkxPQVQzMl9BUFBMRSc6IDB4ODgx
NCwKLSAgJ1JHQl9GTE9BVDMyX0FQUExFJzogMHg4ODE1LAotICAnQUxQSEFfRkxPQVQzMl9BUFBM
RSc6IDB4ODgxNiwKLSAgJ0lOVEVOU0lUWV9GTE9BVDMyX0FQUExFJzogMHg4ODE3LAotICAnTFVN
SU5BTkNFX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTgsCi0gICdMVU1JTkFOQ0VfQUxQSEFfRkxPQVQz
Ml9BUFBMRSc6IDB4ODgxOSwKLSAgJ1JHQkFfRkxPQVQxNl9BUFBMRSc6IDB4ODgxQSwKLSAgJ1JH
Ql9GTE9BVDE2X0FQUExFJzogMHg4ODFCLAotICAnQUxQSEFfRkxPQVQxNl9BUFBMRSc6IDB4ODgx
QywKLSAgJ0lOVEVOU0lUWV9GTE9BVDE2X0FQUExFJzogMHg4ODFELAotICAnTFVNSU5BTkNFX0ZM
T0FUMTZfQVBQTEUnOiAweDg4MUUsCi0gICdMVU1JTkFOQ0VfQUxQSEFfRkxPQVQxNl9BUFBMRSc6
IDB4ODgxRiwKLSAgJ0NPTE9SX0ZMT0FUX0FQUExFJzogMHg4QTBGLAotICAnQlVGRkVSX1NFUklB
TElaRURfTU9ESUZZX0FQUExFJzogMHg4QTEyLAotICAnQlVGRkVSX0ZMVVNISU5HX1VOTUFQX0FQ
UExFJzogMHg4QTEzLAotICAnTUlOX1BCVUZGRVJfVklFV1BPUlRfRElNU19BUFBMRSc6IDB4OEEx
MCwKLSAgJ0xJR0hUX01PREVMX1NQRUNVTEFSX1ZFQ1RPUl9BUFBMRSc6IDB4ODVCMCwKLSAgJ1RF
WFRVUkVfUkFOR0VfTEVOR1RIX0FQUExFJzogMHg4NUI3LAotICAnVEVYVFVSRV9SQU5HRV9QT0lO
VEVSX0FQUExFJzogMHg4NUI4LAotICAnVEVYVFVSRV9TVE9SQUdFX0hJTlRfQVBQTEUnOiAweDg1
QkMsCi0gICdTVE9SQUdFX1BSSVZBVEVfQVBQTEUnOiAweDg1QkQsCi0gICdTVE9SQUdFX0NBQ0hF
RF9BUFBMRSc6IDB4ODVCRSwKLSAgJ1NUT1JBR0VfU0hBUkVEX0FQUExFJzogMHg4NUJGLAotICAn
VFJBTlNGT1JNX0hJTlRfQVBQTEUnOiAweDg1QjEsCi0gICdWRVJURVhfQVJSQVlfQklORElOR19B
UFBMRSc6IDB4ODVCNSwKLSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9BUFBMRSc6IDB4ODUxRCwKLSAg
J1ZFUlRFWF9BUlJBWV9SQU5HRV9MRU5HVEhfQVBQTEUnOiAweDg1MUUsCi0gICdWRVJURVhfQVJS
QVlfU1RPUkFHRV9ISU5UX0FQUExFJzogMHg4NTFGLAotICAnTUFYX1ZFUlRFWF9BUlJBWV9SQU5H
RV9FTEVNRU5UX0FQUExFJzogMHg4NTIwLAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX1BPSU5URVJf
QVBQTEUnOiAweDg1MjEsCi0gICdTVE9SQUdFX0NBQ0hFRF9BUFBMRSc6IDB4ODVCRSwKLSAgJ1NU
T1JBR0VfU0hBUkVEX0FQUExFJzogMHg4NUJGLAotICAnWUNCQ1JfNDIyX0FQUExFJzogMHg4NUI5
LAotICAnVU5TSUdORURfU0hPUlRfOF84X0FQUExFJzogMHg4NUJBLAotICAnVU5TSUdORURfU0hP
UlRfOF84X1JFVl9BUFBMRSc6IDB4ODVCQiwKLSAgJ1JHQkFfRkxPQVRfTU9ERV9BUkInOiAweDg4
MjAsCi0gICdDTEFNUF9WRVJURVhfQ09MT1JfQVJCJzogMHg4OTFBLAotICAnQ0xBTVBfRlJBR01F
TlRfQ09MT1JfQVJCJzogMHg4OTFCLAotICAnQ0xBTVBfUkVBRF9DT0xPUl9BUkInOiAweDg5MUMs
Ci0gICdGSVhFRF9PTkxZX0FSQic6IDB4ODkxRCwKLSAgJ0RFUFRIX0NPTVBPTkVOVDMyRic6IDB4
OENBQywKLSAgJ0RFUFRIMzJGX1NURU5DSUw4JzogMHg4Q0FELAotICAnRkxPQVRfMzJfVU5TSUdO
RURfSU5UXzI0XzhfUkVWJzogMHg4REFELAotICAnREVQVEhfQ09NUE9ORU5UMTZfQVJCJzogMHg4
MUE1LAotICAnREVQVEhfQ09NUE9ORU5UMjRfQVJCJzogMHg4MUE2LAotICAnREVQVEhfQ09NUE9O
RU5UMzJfQVJCJzogMHg4MUE3LAotICAnVEVYVFVSRV9ERVBUSF9TSVpFX0FSQic6IDB4ODg0QSwK
LSAgJ0RFUFRIX1RFWFRVUkVfTU9ERV9BUkInOiAweDg4NEIsCi0gICdNQVhfRFJBV19CVUZGRVJT
X0FSQic6IDB4ODgyNCwKLSAgJ0RSQVdfQlVGRkVSMF9BUkInOiAweDg4MjUsCi0gICdEUkFXX0JV
RkZFUjFfQVJCJzogMHg4ODI2LAotICAnRFJBV19CVUZGRVIyX0FSQic6IDB4ODgyNywKLSAgJ0RS
QVdfQlVGRkVSM19BUkInOiAweDg4MjgsCi0gICdEUkFXX0JVRkZFUjRfQVJCJzogMHg4ODI5LAot
ICAnRFJBV19CVUZGRVI1X0FSQic6IDB4ODgyQSwKLSAgJ0RSQVdfQlVGRkVSNl9BUkInOiAweDg4
MkIsCi0gICdEUkFXX0JVRkZFUjdfQVJCJzogMHg4ODJDLAotICAnRFJBV19CVUZGRVI4X0FSQic6
IDB4ODgyRCwKLSAgJ0RSQVdfQlVGRkVSOV9BUkInOiAweDg4MkUsCi0gICdEUkFXX0JVRkZFUjEw
X0FSQic6IDB4ODgyRiwKLSAgJ0RSQVdfQlVGRkVSMTFfQVJCJzogMHg4ODMwLAotICAnRFJBV19C
VUZGRVIxMl9BUkInOiAweDg4MzEsCi0gICdEUkFXX0JVRkZFUjEzX0FSQic6IDB4ODgzMiwKLSAg
J0RSQVdfQlVGRkVSMTRfQVJCJzogMHg4ODMzLAotICAnRFJBV19CVUZGRVIxNV9BUkInOiAweDg4
MzQsCi0gICdGUkFHTUVOVF9QUk9HUkFNX0FSQic6IDB4ODgwNCwKLSAgJ1BST0dSQU1fQUxVX0lO
U1RSVUNUSU9OU19BUkInOiAweDg4MDUsCi0gICdQUk9HUkFNX1RFWF9JTlNUUlVDVElPTlNfQVJC
JzogMHg4ODA2LAotICAnUFJPR1JBTV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgwNywKLSAg
J1BST0dSQU1fTkFUSVZFX0FMVV9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODA4LAotICAnUFJPR1JB
TV9OQVRJVkVfVEVYX0lOU1RSVUNUSU9OU19BUkInOiAweDg4MDksCi0gICdQUk9HUkFNX05BVElW
RV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgwQSwKLSAgJ01BWF9QUk9HUkFNX0FMVV9JTlNU
UlVDVElPTlNfQVJCJzogMHg4ODBCLAotICAnTUFYX1BST0dSQU1fVEVYX0lOU1RSVUNUSU9OU19B
UkInOiAweDg4MEMsCi0gICdNQVhfUFJPR1JBTV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgw
RCwKLSAgJ01BWF9QUk9HUkFNX05BVElWRV9BTFVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwRSwK
LSAgJ01BWF9QUk9HUkFNX05BVElWRV9URVhfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwRiwKLSAg
J01BWF9QUk9HUkFNX05BVElWRV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgxMCwKLSAgJ01B
WF9URVhUVVJFX0NPT1JEU19BUkInOiAweDg4NzEsCi0gICdNQVhfVEVYVFVSRV9JTUFHRV9VTklU
U19BUkInOiAweDg4NzIsCi0gICdGUkFHTUVOVF9TSEFERVJfQVJCJzogMHg4QjMwLAotICAnTUFY
X0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UU19BUkInOiAweDhCNDksCi0gICdGUkFHTUVOVF9T
SEFERVJfREVSSVZBVElWRV9ISU5UX0FSQic6IDB4OEI4QiwKLSAgJ0lOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OJzogMHgwNTA2LAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9F
TkNPRElORyc6IDB4ODIxMCwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZ
UEUnOiAweDgyMTEsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFJzogMHg4MjEy
LAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9TSVpFJzogMHg4MjEzLAotICAnRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUnOiAweDgyMTQsCi0gICdGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0FMUEhBX1NJWkUnOiAweDgyMTUsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X0RFUFRIX1NJWkUnOiAweDgyMTYsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1NURU5DSUxf
U0laRSc6IDB4ODIxNywKLSAgJ0ZSQU1FQlVGRkVSX0RFRkFVTFQnOiAweDgyMTgsCi0gICdGUkFN
RUJVRkZFUl9VTkRFRklORUQnOiAweDgyMTksCi0gICdERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQn
OiAweDgyMUEsCi0gICdJTkRFWCc6IDB4ODIyMiwKLSAgJ01BWF9SRU5ERVJCVUZGRVJfU0laRSc6
IDB4ODRFOCwKLSAgJ0RFUFRIX1NURU5DSUwnOiAweDg0RjksCi0gICdVTlNJR05FRF9JTlRfMjRf
OCc6IDB4ODRGQSwKLSAgJ0RFUFRIMjRfU1RFTkNJTDgnOiAweDg4RjAsCi0gICdURVhUVVJFX1NU
RU5DSUxfU0laRSc6IDB4ODhGMSwKLSAgJ1VOU0lHTkVEX05PUk1BTElaRUQnOiAweDhDMTcsCi0g
ICdTUkdCJzogMHg4QzQwLAotICAnRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HJzogMHg4Q0E2LAot
ICAnRlJBTUVCVUZGRVJfQklORElORyc6IDB4OENBNiwKLSAgJ1JFTkRFUkJVRkZFUl9CSU5ESU5H
JzogMHg4Q0E3LAotICAnUkVBRF9GUkFNRUJVRkZFUic6IDB4OENBOCwKLSAgJ0RSQVdfRlJBTUVC
VUZGRVInOiAweDhDQTksCi0gICdSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcnOiAweDhDQUEsCi0g
ICdSRU5ERVJCVUZGRVJfU0FNUExFUyc6IDB4OENBQiwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfT0JKRUNUX1RZUEUnOiAweDhDRDAsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVD
VF9OQU1FJzogMHg4Q0QxLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
JzogMHg4Q0QyLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZB
Q0UnOiAweDhDRDMsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVInOiAw
eDhDRDQsCi0gICdGUkFNRUJVRkZFUl9DT01QTEVURSc6IDB4OENENSwKLSAgJ0ZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfQVRUQUNITUVOVCc6IDB4OENENiwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfTUlTU0lOR19BVFRBQ0hNRU5UJzogMHg4Q0Q3LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9EUkFXX0JVRkZFUic6IDB4OENEQiwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfUkVBRF9C
VUZGRVInOiAweDhDREMsCi0gICdGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCc6IDB4OENERCwKLSAg
J01BWF9DT0xPUl9BVFRBQ0hNRU5UUyc6IDB4OENERiwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQwJzog
MHg4Q0UwLAotICAnQ09MT1JfQVRUQUNITUVOVDEnOiAweDhDRTEsCi0gICdDT0xPUl9BVFRBQ0hN
RU5UMic6IDB4OENFMiwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQzJzogMHg4Q0UzLAotICAnQ09MT1Jf
QVRUQUNITUVOVDQnOiAweDhDRTQsCi0gICdDT0xPUl9BVFRBQ0hNRU5UNSc6IDB4OENFNSwKLSAg
J0NPTE9SX0FUVEFDSE1FTlQ2JzogMHg4Q0U2LAotICAnQ09MT1JfQVRUQUNITUVOVDcnOiAweDhD
RTcsCi0gICdDT0xPUl9BVFRBQ0hNRU5UOCc6IDB4OENFOCwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ5
JzogMHg4Q0U5LAotICAnQ09MT1JfQVRUQUNITUVOVDEwJzogMHg4Q0VBLAotICAnQ09MT1JfQVRU
QUNITUVOVDExJzogMHg4Q0VCLAotICAnQ09MT1JfQVRUQUNITUVOVDEyJzogMHg4Q0VDLAotICAn
Q09MT1JfQVRUQUNITUVOVDEzJzogMHg4Q0VELAotICAnQ09MT1JfQVRUQUNITUVOVDE0JzogMHg4
Q0VFLAotICAnQ09MT1JfQVRUQUNITUVOVDE1JzogMHg4Q0VGLAotICAnREVQVEhfQVRUQUNITUVO
VCc6IDB4OEQwMCwKLSAgJ1NURU5DSUxfQVRUQUNITUVOVCc6IDB4OEQyMCwKLSAgJ0ZSQU1FQlVG
RkVSJzogMHg4RDQwLAotICAnUkVOREVSQlVGRkVSJzogMHg4RDQxLAotICAnUkVOREVSQlVGRkVS
X1dJRFRIJzogMHg4RDQyLAotICAnUkVOREVSQlVGRkVSX0hFSUdIVCc6IDB4OEQ0MywKLSAgJ1JF
TkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQnOiAweDhENDQsCi0gICdTVEVOQ0lMX0lOREVYMSc6
IDB4OEQ0NiwKLSAgJ1NURU5DSUxfSU5ERVg0JzogMHg4RDQ3LAotICAnU1RFTkNJTF9JTkRFWDgn
OiAweDhENDgsCi0gICdTVEVOQ0lMX0lOREVYMTYnOiAweDhENDksCi0gICdSRU5ERVJCVUZGRVJf
UkVEX1NJWkUnOiAweDhENTAsCi0gICdSRU5ERVJCVUZGRVJfR1JFRU5fU0laRSc6IDB4OEQ1MSwK
LSAgJ1JFTkRFUkJVRkZFUl9CTFVFX1NJWkUnOiAweDhENTIsCi0gICdSRU5ERVJCVUZGRVJfQUxQ
SEFfU0laRSc6IDB4OEQ1MywKLSAgJ1JFTkRFUkJVRkZFUl9ERVBUSF9TSVpFJzogMHg4RDU0LAot
ICAnUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSc6IDB4OEQ1NSwKLSAgJ0ZSQU1FQlVGRkVSX0lO
Q09NUExFVEVfTVVMVElTQU1QTEUnOiAweDhENTYsCi0gICdNQVhfU0FNUExFUyc6IDB4OEQ1NywK
LSAgJ0ZSQU1FQlVGRkVSX1NSR0InOiAweDhEQjksCi0gICdMSU5FU19BREpBQ0VOQ1lfQVJCJzog
MHhBLAotICAnTElORV9TVFJJUF9BREpBQ0VOQ1lfQVJCJzogMHhCLAotICAnVFJJQU5HTEVTX0FE
SkFDRU5DWV9BUkInOiAweEMsCi0gICdUUklBTkdMRV9TVFJJUF9BREpBQ0VOQ1lfQVJCJzogMHhE
LAotICAnUFJPR1JBTV9QT0lOVF9TSVpFX0FSQic6IDB4ODY0MiwKLSAgJ01BWF9HRU9NRVRSWV9U
RVhUVVJFX0lNQUdFX1VOSVRTX0FSQic6IDB4OEMyOSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUic6IDB4OENENCwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfTEFZ
RVJFRF9BUkInOiAweDhEQTcsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0xBWUVSX1RBUkdF
VFNfQVJCJzogMHg4REE4LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9MQVlFUl9DT1VOVF9B
UkInOiAweDhEQTksCi0gICdHRU9NRVRSWV9TSEFERVJfQVJCJzogMHg4REQ5LAotICAnR0VPTUVU
UllfVkVSVElDRVNfT1VUX0FSQic6IDB4OEREQSwKLSAgJ0dFT01FVFJZX0lOUFVUX1RZUEVfQVJC
JzogMHg4RERCLAotICAnR0VPTUVUUllfT1VUUFVUX1RZUEVfQVJCJzogMHg4RERDLAotICAnTUFY
X0dFT01FVFJZX1ZBUllJTkdfQ09NUE9ORU5UU19BUkInOiAweDhEREQsCi0gICdNQVhfVkVSVEVY
X1ZBUllJTkdfQ09NUE9ORU5UU19BUkInOiAweDhEREUsCi0gICdNQVhfR0VPTUVUUllfVU5JRk9S
TV9DT01QT05FTlRTX0FSQic6IDB4OERERiwKLSAgJ01BWF9HRU9NRVRSWV9PVVRQVVRfVkVSVElD
RVNfQVJCJzogMHg4REUwLAotICAnTUFYX0dFT01FVFJZX1RPVEFMX09VVFBVVF9DT01QT05FTlRT
X0FSQic6IDB4OERFMSwKLSAgJ0hBTEZfRkxPQVRfQVJCJzogMHgxNDBCLAotICAnSEFMRl9GTE9B
VCc6IDB4MTQwQiwKLSAgJ0NPTlNUQU5UX0NPTE9SJzogMHg4MDAxLAotICAnT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SJzogMHg4MDAyLAotICAnQ09OU1RBTlRfQUxQSEEnOiAweDgwMDMsCi0gICdP
TkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEnOiAweDgwMDQsCi0gICdCTEVORF9DT0xPUic6IDB4ODAw
NSwKLSAgJ0ZVTkNfQUREJzogMHg4MDA2LAotICAnTUlOJzogMHg4MDA3LAotICAnTUFYJzogMHg4
MDA4LAotICAnQkxFTkRfRVFVQVRJT04nOiAweDgwMDksCi0gICdGVU5DX1NVQlRSQUNUJzogMHg4
MDBBLAotICAnRlVOQ19SRVZFUlNFX1NVQlRSQUNUJzogMHg4MDBCLAotICAnQ09OVk9MVVRJT05f
MUQnOiAweDgwMTAsCi0gICdDT05WT0xVVElPTl8yRCc6IDB4ODAxMSwKLSAgJ1NFUEFSQUJMRV8y
RCc6IDB4ODAxMiwKLSAgJ0NPTlZPTFVUSU9OX0JPUkRFUl9NT0RFJzogMHg4MDEzLAotICAnQ09O
Vk9MVVRJT05fRklMVEVSX1NDQUxFJzogMHg4MDE0LAotICAnQ09OVk9MVVRJT05fRklMVEVSX0JJ
QVMnOiAweDgwMTUsCi0gICdSRURVQ0UnOiAweDgwMTYsCi0gICdDT05WT0xVVElPTl9GT1JNQVQn
OiAweDgwMTcsCi0gICdDT05WT0xVVElPTl9XSURUSCc6IDB4ODAxOCwKLSAgJ0NPTlZPTFVUSU9O
X0hFSUdIVCc6IDB4ODAxOSwKLSAgJ01BWF9DT05WT0xVVElPTl9XSURUSCc6IDB4ODAxQSwKLSAg
J01BWF9DT05WT0xVVElPTl9IRUlHSFQnOiAweDgwMUIsCi0gICdQT1NUX0NPTlZPTFVUSU9OX1JF
RF9TQ0FMRSc6IDB4ODAxQywKLSAgJ1BPU1RfQ09OVk9MVVRJT05fR1JFRU5fU0NBTEUnOiAweDgw
MUQsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0JMVUVfU0NBTEUnOiAweDgwMUUsCi0gICdQT1NUX0NP
TlZPTFVUSU9OX0FMUEhBX1NDQUxFJzogMHg4MDFGLAotICAnUE9TVF9DT05WT0xVVElPTl9SRURf
QklBUyc6IDB4ODAyMCwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fR1JFRU5fQklBUyc6IDB4ODAyMSwK
LSAgJ1BPU1RfQ09OVk9MVVRJT05fQkxVRV9CSUFTJzogMHg4MDIyLAotICAnUE9TVF9DT05WT0xV
VElPTl9BTFBIQV9CSUFTJzogMHg4MDIzLAotICAnSElTVE9HUkFNJzogMHg4MDI0LAotICAnUFJP
WFlfSElTVE9HUkFNJzogMHg4MDI1LAotICAnSElTVE9HUkFNX1dJRFRIJzogMHg4MDI2LAotICAn
SElTVE9HUkFNX0ZPUk1BVCc6IDB4ODAyNywKLSAgJ0hJU1RPR1JBTV9SRURfU0laRSc6IDB4ODAy
OCwKLSAgJ0hJU1RPR1JBTV9HUkVFTl9TSVpFJzogMHg4MDI5LAotICAnSElTVE9HUkFNX0JMVUVf
U0laRSc6IDB4ODAyQSwKLSAgJ0hJU1RPR1JBTV9BTFBIQV9TSVpFJzogMHg4MDJCLAotICAnSElT
VE9HUkFNX0xVTUlOQU5DRV9TSVpFJzogMHg4MDJDLAotICAnSElTVE9HUkFNX1NJTksnOiAweDgw
MkQsCi0gICdNSU5NQVgnOiAweDgwMkUsCi0gICdNSU5NQVhfRk9STUFUJzogMHg4MDJGLAotICAn
TUlOTUFYX1NJTksnOiAweDgwMzAsCi0gICdUQUJMRV9UT09fTEFSR0UnOiAweDgwMzEsCi0gICdD
T0xPUl9NQVRSSVgnOiAweDgwQjEsCi0gICdDT0xPUl9NQVRSSVhfU1RBQ0tfREVQVEgnOiAweDgw
QjIsCi0gICdNQVhfQ09MT1JfTUFUUklYX1NUQUNLX0RFUFRIJzogMHg4MEIzLAotICAnUE9TVF9D
T0xPUl9NQVRSSVhfUkVEX1NDQUxFJzogMHg4MEI0LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfR1JF
RU5fU0NBTEUnOiAweDgwQjUsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX1NDQUxFJzogMHg4
MEI2LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQUxQSEFfU0NBTEUnOiAweDgwQjcsCi0gICdQT1NU
X0NPTE9SX01BVFJJWF9SRURfQklBUyc6IDB4ODBCOCwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0dS
RUVOX0JJQVMnOiAweDgwQjksCi0gICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX0JJQVMnOiAweDgw
QkEsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9BTFBIQV9CSUFTJzogMHg4MEJCLAotICAnQ09MT1Jf
VEFCTEUnOiAweDgwRDAsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFJzogMHg4MEQx
LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQ09MT1JfVEFCTEUnOiAweDgwRDIsCi0gICdQUk9YWV9D
T0xPUl9UQUJMRSc6IDB4ODBEMywKLSAgJ1BST1hZX1BPU1RfQ09OVk9MVVRJT05fQ09MT1JfVEFC
TEUnOiAweDgwRDQsCi0gICdQUk9YWV9QT1NUX0NPTE9SX01BVFJJWF9DT0xPUl9UQUJMRSc6IDB4
ODBENSwKLSAgJ0NPTE9SX1RBQkxFX1NDQUxFJzogMHg4MEQ2LAotICAnQ09MT1JfVEFCTEVfQklB
Uyc6IDB4ODBENywKLSAgJ0NPTE9SX1RBQkxFX0ZPUk1BVCc6IDB4ODBEOCwKLSAgJ0NPTE9SX1RB
QkxFX1dJRFRIJzogMHg4MEQ5LAotICAnQ09MT1JfVEFCTEVfUkVEX1NJWkUnOiAweDgwREEsCi0g
ICdDT0xPUl9UQUJMRV9HUkVFTl9TSVpFJzogMHg4MERCLAotICAnQ09MT1JfVEFCTEVfQkxVRV9T
SVpFJzogMHg4MERDLAotICAnQ09MT1JfVEFCTEVfQUxQSEFfU0laRSc6IDB4ODBERCwKLSAgJ0NP
TE9SX1RBQkxFX0xVTUlOQU5DRV9TSVpFJzogMHg4MERFLAotICAnQ09MT1JfVEFCTEVfSU5URU5T
SVRZX1NJWkUnOiAweDgwREYsCi0gICdJR05PUkVfQk9SREVSJzogMHg4MTUwLAotICAnQ09OU1RB
TlRfQk9SREVSJzogMHg4MTUxLAotICAnV1JBUF9CT1JERVInOiAweDgxNTIsCi0gICdSRVBMSUNB
VEVfQk9SREVSJzogMHg4MTUzLAotICAnQ09OVk9MVVRJT05fQk9SREVSX0NPTE9SJzogMHg4MTU0
LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SX0FSQic6IDB4ODhGRSwKLSAgJ01BUF9S
RUFEX0JJVCc6IDB4MDAwMSwKLSAgJ01BUF9XUklURV9CSVQnOiAweDAwMDIsCi0gICdNQVBfSU5W
QUxJREFURV9SQU5HRV9CSVQnOiAweDAwMDQsCi0gICdNQVBfSU5WQUxJREFURV9CVUZGRVJfQklU
JzogMHgwMDA4LAotICAnTUFQX0ZMVVNIX0VYUExJQ0lUX0JJVCc6IDB4MDAxMCwKLSAgJ01BUF9V
TlNZTkNIUk9OSVpFRF9CSVQnOiAweDAwMjAsCi0gICdNQVRSSVhfUEFMRVRURV9BUkInOiAweDg4
NDAsCi0gICdNQVhfTUFUUklYX1BBTEVUVEVfU1RBQ0tfREVQVEhfQVJCJzogMHg4ODQxLAotICAn
TUFYX1BBTEVUVEVfTUFUUklDRVNfQVJCJzogMHg4ODQyLAotICAnQ1VSUkVOVF9QQUxFVFRFX01B
VFJJWF9BUkInOiAweDg4NDMsCi0gICdNQVRSSVhfSU5ERVhfQVJSQVlfQVJCJzogMHg4ODQ0LAot
ICAnQ1VSUkVOVF9NQVRSSVhfSU5ERVhfQVJCJzogMHg4ODQ1LAotICAnTUFUUklYX0lOREVYX0FS
UkFZX1NJWkVfQVJCJzogMHg4ODQ2LAotICAnTUFUUklYX0lOREVYX0FSUkFZX1RZUEVfQVJCJzog
MHg4ODQ3LAotICAnTUFUUklYX0lOREVYX0FSUkFZX1NUUklERV9BUkInOiAweDg4NDgsCi0gICdN
QVRSSVhfSU5ERVhfQVJSQVlfUE9JTlRFUl9BUkInOiAweDg4NDksCi0gICdNVUxUSVNBTVBMRV9B
UkInOiAweDgwOUQsCi0gICdTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0VfQVJCJzogMHg4MDlFLAot
ICAnU0FNUExFX0FMUEhBX1RPX09ORV9BUkInOiAweDgwOUYsCi0gICdTQU1QTEVfQ09WRVJBR0Vf
QVJCJzogMHg4MEEwLAotICAnU0FNUExFX0JVRkZFUlNfQVJCJzogMHg4MEE4LAotICAnU0FNUExF
U19BUkInOiAweDgwQTksCi0gICdTQU1QTEVfQ09WRVJBR0VfVkFMVUVfQVJCJzogMHg4MEFBLAot
ICAnU0FNUExFX0NPVkVSQUdFX0lOVkVSVF9BUkInOiAweDgwQUIsCi0gICdNVUxUSVNBTVBMRV9C
SVRfQVJCJzogMHgyMDAwMDAwMCwKLSAgJ1RFWFRVUkUwX0FSQic6IDB4ODRDMCwKLSAgJ1RFWFRV
UkUxX0FSQic6IDB4ODRDMSwKLSAgJ1RFWFRVUkUyX0FSQic6IDB4ODRDMiwKLSAgJ1RFWFRVUkUz
X0FSQic6IDB4ODRDMywKLSAgJ1RFWFRVUkU0X0FSQic6IDB4ODRDNCwKLSAgJ1RFWFRVUkU1X0FS
Qic6IDB4ODRDNSwKLSAgJ1RFWFRVUkU2X0FSQic6IDB4ODRDNiwKLSAgJ1RFWFRVUkU3X0FSQic6
IDB4ODRDNywKLSAgJ1RFWFRVUkU4X0FSQic6IDB4ODRDOCwKLSAgJ1RFWFRVUkU5X0FSQic6IDB4
ODRDOSwKLSAgJ1RFWFRVUkUxMF9BUkInOiAweDg0Q0EsCi0gICdURVhUVVJFMTFfQVJCJzogMHg4
NENCLAotICAnVEVYVFVSRTEyX0FSQic6IDB4ODRDQywKLSAgJ1RFWFRVUkUxM19BUkInOiAweDg0
Q0QsCi0gICdURVhUVVJFMTRfQVJCJzogMHg4NENFLAotICAnVEVYVFVSRTE1X0FSQic6IDB4ODRD
RiwKLSAgJ1RFWFRVUkUxNl9BUkInOiAweDg0RDAsCi0gICdURVhUVVJFMTdfQVJCJzogMHg4NEQx
LAotICAnVEVYVFVSRTE4X0FSQic6IDB4ODREMiwKLSAgJ1RFWFRVUkUxOV9BUkInOiAweDg0RDMs
Ci0gICdURVhUVVJFMjBfQVJCJzogMHg4NEQ0LAotICAnVEVYVFVSRTIxX0FSQic6IDB4ODRENSwK
LSAgJ1RFWFRVUkUyMl9BUkInOiAweDg0RDYsCi0gICdURVhUVVJFMjNfQVJCJzogMHg4NEQ3LAot
ICAnVEVYVFVSRTI0X0FSQic6IDB4ODREOCwKLSAgJ1RFWFRVUkUyNV9BUkInOiAweDg0RDksCi0g
ICdURVhUVVJFMjZfQVJCJzogMHg4NERBLAotICAnVEVYVFVSRTI3X0FSQic6IDB4ODREQiwKLSAg
J1RFWFRVUkUyOF9BUkInOiAweDg0REMsCi0gICdURVhUVVJFMjlfQVJCJzogMHg4NERELAotICAn
VEVYVFVSRTMwX0FSQic6IDB4ODRERSwKLSAgJ1RFWFRVUkUzMV9BUkInOiAweDg0REYsCi0gICdB
Q1RJVkVfVEVYVFVSRV9BUkInOiAweDg0RTAsCi0gICdDTElFTlRfQUNUSVZFX1RFWFRVUkVfQVJC
JzogMHg4NEUxLAotICAnTUFYX1RFWFRVUkVfVU5JVFNfQVJCJzogMHg4NEUyLAotICAnUVVFUllf
Q09VTlRFUl9CSVRTX0FSQic6IDB4ODg2NCwKLSAgJ0NVUlJFTlRfUVVFUllfQVJCJzogMHg4ODY1
LAotICAnUVVFUllfUkVTVUxUX0FSQic6IDB4ODg2NiwKLSAgJ1FVRVJZX1JFU1VMVF9BVkFJTEFC
TEVfQVJCJzogMHg4ODY3LAotICAnU0FNUExFU19QQVNTRURfQVJCJzogMHg4OTE0LAotICAnUElY
RUxfUEFDS19CVUZGRVJfQVJCJzogMHg4OEVCLAotICAnUElYRUxfVU5QQUNLX0JVRkZFUl9BUkIn
OiAweDg4RUMsCi0gICdQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODhFRCwKLSAg
J1BJWEVMX1VOUEFDS19CVUZGRVJfQklORElOR19BUkInOiAweDg4RUYsCi0gICdQT0lOVF9TSVpF
X01JTl9BUkInOiAweDgxMjYsCi0gICdQT0lOVF9TSVpFX01BWF9BUkInOiAweDgxMjcsCi0gICdQ
T0lOVF9GQURFX1RIUkVTSE9MRF9TSVpFX0FSQic6IDB4ODEyOCwKLSAgJ1BPSU5UX0RJU1RBTkNF
X0FUVEVOVUFUSU9OX0FSQic6IDB4ODEyOSwKLSAgJ1BPSU5UX1NQUklURV9BUkInOiAweDg4NjEs
Ci0gICdDT09SRF9SRVBMQUNFX0FSQic6IDB4ODg2MiwKLSAgJ1BST0dSQU1fT0JKRUNUX0FSQic6
IDB4OEI0MCwKLSAgJ1NIQURFUl9PQkpFQ1RfQVJCJzogMHg4QjQ4LAotICAnT0JKRUNUX1RZUEVf
QVJCJzogMHg4QjRFLAotICAnT0JKRUNUX1NVQlRZUEVfQVJCJzogMHg4QjRGLAotICAnRkxPQVRf
VkVDMl9BUkInOiAweDhCNTAsCi0gICdGTE9BVF9WRUMzX0FSQic6IDB4OEI1MSwKLSAgJ0ZMT0FU
X1ZFQzRfQVJCJzogMHg4QjUyLAotICAnSU5UX1ZFQzJfQVJCJzogMHg4QjUzLAotICAnSU5UX1ZF
QzNfQVJCJzogMHg4QjU0LAotICAnSU5UX1ZFQzRfQVJCJzogMHg4QjU1LAotICAnQk9PTF9BUkIn
OiAweDhCNTYsCi0gICdCT09MX1ZFQzJfQVJCJzogMHg4QjU3LAotICAnQk9PTF9WRUMzX0FSQic6
IDB4OEI1OCwKLSAgJ0JPT0xfVkVDNF9BUkInOiAweDhCNTksCi0gICdGTE9BVF9NQVQyX0FSQic6
IDB4OEI1QSwKLSAgJ0ZMT0FUX01BVDNfQVJCJzogMHg4QjVCLAotICAnRkxPQVRfTUFUNF9BUkIn
OiAweDhCNUMsCi0gICdTQU1QTEVSXzFEX0FSQic6IDB4OEI1RCwKLSAgJ1NBTVBMRVJfMkRfQVJC
JzogMHg4QjVFLAotICAnU0FNUExFUl8zRF9BUkInOiAweDhCNUYsCi0gICdTQU1QTEVSX0NVQkVf
QVJCJzogMHg4QjYwLAotICAnU0FNUExFUl8xRF9TSEFET1dfQVJCJzogMHg4QjYxLAotICAnU0FN
UExFUl8yRF9TSEFET1dfQVJCJzogMHg4QjYyLAotICAnU0FNUExFUl8yRF9SRUNUX0FSQic6IDB4
OEI2MywKLSAgJ1NBTVBMRVJfMkRfUkVDVF9TSEFET1dfQVJCJzogMHg4QjY0LAotICAnT0JKRUNU
X0RFTEVURV9TVEFUVVNfQVJCJzogMHg4QjgwLAotICAnT0JKRUNUX0NPTVBJTEVfU1RBVFVTX0FS
Qic6IDB4OEI4MSwKLSAgJ09CSkVDVF9MSU5LX1NUQVRVU19BUkInOiAweDhCODIsCi0gICdPQkpF
Q1RfVkFMSURBVEVfU1RBVFVTX0FSQic6IDB4OEI4MywKLSAgJ09CSkVDVF9JTkZPX0xPR19MRU5H
VEhfQVJCJzogMHg4Qjg0LAotICAnT0JKRUNUX0FUVEFDSEVEX09CSkVDVFNfQVJCJzogMHg4Qjg1
LAotICAnT0JKRUNUX0FDVElWRV9VTklGT1JNU19BUkInOiAweDhCODYsCi0gICdPQkpFQ1RfQUNU
SVZFX1VOSUZPUk1fTUFYX0xFTkdUSF9BUkInOiAweDhCODcsCi0gICdPQkpFQ1RfU0hBREVSX1NP
VVJDRV9MRU5HVEhfQVJCJzogMHg4Qjg4LAotICAnU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OX0FS
Qic6IDB4OEI4QywKLSAgJ1RFWFRVUkVfQ09NUEFSRV9NT0RFX0FSQic6IDB4ODg0QywKLSAgJ1RF
WFRVUkVfQ09NUEFSRV9GVU5DX0FSQic6IDB4ODg0RCwKLSAgJ0NPTVBBUkVfUl9UT19URVhUVVJF
X0FSQic6IDB4ODg0RSwKLSAgJ1RFWFRVUkVfQ09NUEFSRV9GQUlMX1ZBTFVFX0FSQic6IDB4ODBC
RiwKLSAgJ0NMQU1QX1RPX0JPUkRFUl9BUkInOiAweDgxMkQsCi0gICdURVhUVVJFX0JVRkZFUl9B
UkInOiAweDhDMkEsCi0gICdNQVhfVEVYVFVSRV9CVUZGRVJfU0laRV9BUkInOiAweDhDMkIsCi0g
ICdURVhUVVJFX0JJTkRJTkdfQlVGRkVSX0FSQic6IDB4OEMyQywKLSAgJ1RFWFRVUkVfQlVGRkVS
X0RBVEFfU1RPUkVfQklORElOR19BUkInOiAweDhDMkQsCi0gICdURVhUVVJFX0JVRkZFUl9GT1JN
QVRfQVJCJzogMHg4QzJFLAotICAnQ09NUFJFU1NFRF9BTFBIQV9BUkInOiAweDg0RTksCi0gICdD
T01QUkVTU0VEX0xVTUlOQU5DRV9BUkInOiAweDg0RUEsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5D
RV9BTFBIQV9BUkInOiAweDg0RUIsCi0gICdDT01QUkVTU0VEX0lOVEVOU0lUWV9BUkInOiAweDg0
RUMsCi0gICdDT01QUkVTU0VEX1JHQl9BUkInOiAweDg0RUQsCi0gICdDT01QUkVTU0VEX1JHQkFf
QVJCJzogMHg4NEVFLAotICAnVEVYVFVSRV9DT01QUkVTU0lPTl9ISU5UX0FSQic6IDB4ODRFRiwK
LSAgJ1RFWFRVUkVfQ09NUFJFU1NFRF9JTUFHRV9TSVpFX0FSQic6IDB4ODZBMCwKLSAgJ1RFWFRV
UkVfQ09NUFJFU1NFRF9BUkInOiAweDg2QTEsCi0gICdOVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZP
Uk1BVFNfQVJCJzogMHg4NkEyLAotICAnQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFNfQVJCJzog
MHg4NkEzLAotICAnQ09NUFJFU1NFRF9SRURfUkdUQzEnOiAweDhEQkIsCi0gICdDT01QUkVTU0VE
X1NJR05FRF9SRURfUkdUQzEnOiAweDhEQkMsCi0gICdDT01QUkVTU0VEX1JHX1JHVEMyJzogMHg4
REJELAotICAnQ09NUFJFU1NFRF9TSUdORURfUkdfUkdUQzInOiAweDhEQkUsCi0gICdOT1JNQUxf
TUFQX0FSQic6IDB4ODUxMSwKLSAgJ1JFRkxFQ1RJT05fTUFQX0FSQic6IDB4ODUxMiwKLSAgJ1RF
WFRVUkVfQ1VCRV9NQVBfQVJCJzogMHg4NTEzLAotICAnVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQ
X0FSQic6IDB4ODUxNCwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWF9BUkInOiAweDg1
MTUsCi0gICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1hfQVJCJzogMHg4NTE2LAotICAnVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZX0FSQic6IDB4ODUxNywKLSAgJ1RFWFRVUkVfQ1VCRV9N
QVBfTkVHQVRJVkVfWV9BUkInOiAweDg1MTgsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1pfQVJCJzogMHg4NTE5LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aX0FSQic6IDB4
ODUxQSwKLSAgJ1BST1hZX1RFWFRVUkVfQ1VCRV9NQVBfQVJCJzogMHg4NTFCLAotICAnTUFYX0NV
QkVfTUFQX1RFWFRVUkVfU0laRV9BUkInOiAweDg1MUMsCi0gICdTVUJUUkFDVF9BUkInOiAweDg0
RTcsCi0gICdDT01CSU5FX0FSQic6IDB4ODU3MCwKLSAgJ0NPTUJJTkVfUkdCX0FSQic6IDB4ODU3
MSwKLSAgJ0NPTUJJTkVfQUxQSEFfQVJCJzogMHg4NTcyLAotICAnUkdCX1NDQUxFX0FSQic6IDB4
ODU3MywKLSAgJ0FERF9TSUdORURfQVJCJzogMHg4NTc0LAotICAnSU5URVJQT0xBVEVfQVJCJzog
MHg4NTc1LAotICAnQ09OU1RBTlRfQVJCJzogMHg4NTc2LAotICAnUFJJTUFSWV9DT0xPUl9BUkIn
OiAweDg1NzcsCi0gICdQUkVWSU9VU19BUkInOiAweDg1NzgsCi0gICdTT1VSQ0UwX1JHQl9BUkIn
OiAweDg1ODAsCi0gICdTT1VSQ0UxX1JHQl9BUkInOiAweDg1ODEsCi0gICdTT1VSQ0UyX1JHQl9B
UkInOiAweDg1ODIsCi0gICdTT1VSQ0UwX0FMUEhBX0FSQic6IDB4ODU4OCwKLSAgJ1NPVVJDRTFf
QUxQSEFfQVJCJzogMHg4NTg5LAotICAnU09VUkNFMl9BTFBIQV9BUkInOiAweDg1OEEsCi0gICdP
UEVSQU5EMF9SR0JfQVJCJzogMHg4NTkwLAotICAnT1BFUkFORDFfUkdCX0FSQic6IDB4ODU5MSwK
LSAgJ09QRVJBTkQyX1JHQl9BUkInOiAweDg1OTIsCi0gICdPUEVSQU5EMF9BTFBIQV9BUkInOiAw
eDg1OTgsCi0gICdPUEVSQU5EMV9BTFBIQV9BUkInOiAweDg1OTksCi0gICdPUEVSQU5EMl9BTFBI
QV9BUkInOiAweDg1OUEsCi0gICdET1QzX1JHQl9BUkInOiAweDg2QUUsCi0gICdET1QzX1JHQkFf
QVJCJzogMHg4NkFGLAotICAnUkdCQTMyRl9BUkInOiAweDg4MTQsCi0gICdSR0IzMkZfQVJCJzog
MHg4ODE1LAotICAnQUxQSEEzMkZfQVJCJzogMHg4ODE2LAotICAnSU5URU5TSVRZMzJGX0FSQic6
IDB4ODgxNywKLSAgJ0xVTUlOQU5DRTMyRl9BUkInOiAweDg4MTgsCi0gICdMVU1JTkFOQ0VfQUxQ
SEEzMkZfQVJCJzogMHg4ODE5LAotICAnUkdCQTE2Rl9BUkInOiAweDg4MUEsCi0gICdSR0IxNkZf
QVJCJzogMHg4ODFCLAotICAnQUxQSEExNkZfQVJCJzogMHg4ODFDLAotICAnSU5URU5TSVRZMTZG
X0FSQic6IDB4ODgxRCwKLSAgJ0xVTUlOQU5DRTE2Rl9BUkInOiAweDg4MUUsCi0gICdMVU1JTkFO
Q0VfQUxQSEExNkZfQVJCJzogMHg4ODFGLAotICAnVEVYVFVSRV9SRURfVFlQRV9BUkInOiAweDhD
MTAsCi0gICdURVhUVVJFX0dSRUVOX1RZUEVfQVJCJzogMHg4QzExLAotICAnVEVYVFVSRV9CTFVF
X1RZUEVfQVJCJzogMHg4QzEyLAotICAnVEVYVFVSRV9BTFBIQV9UWVBFX0FSQic6IDB4OEMxMywK
LSAgJ1RFWFRVUkVfTFVNSU5BTkNFX1RZUEVfQVJCJzogMHg4QzE0LAotICAnVEVYVFVSRV9JTlRF
TlNJVFlfVFlQRV9BUkInOiAweDhDMTUsCi0gICdURVhUVVJFX0RFUFRIX1RZUEVfQVJCJzogMHg4
QzE2LAotICAnVU5TSUdORURfTk9STUFMSVpFRF9BUkInOiAweDhDMTcsCi0gICdNSVJST1JFRF9S
RVBFQVRfQVJCJzogMHg4MzcwLAotICAnVEVYVFVSRV9SRUNUQU5HTEVfQVJCJzogMHg4NEY1LAot
ICAnVEVYVFVSRV9CSU5ESU5HX1JFQ1RBTkdMRV9BUkInOiAweDg0RjYsCi0gICdQUk9YWV9URVhU
VVJFX1JFQ1RBTkdMRV9BUkInOiAweDg0RjcsCi0gICdNQVhfUkVDVEFOR0xFX1RFWFRVUkVfU0la
RV9BUkInOiAweDg0RjgsCi0gICdTQU1QTEVSXzJEX1JFQ1RfQVJCJzogMHg4QjYzLAotICAnU0FN
UExFUl8yRF9SRUNUX1NIQURPV19BUkInOiAweDhCNjQsCi0gICdSRUQnOiAweDE5MDMsCi0gICdS
Ryc6IDB4ODIyNywKLSAgJ1JHX0lOVEVHRVInOiAweDgyMjgsCi0gICdSOCc6IDB4ODIyOSwKLSAg
J1IxNic6IDB4ODIyQSwKLSAgJ1JHOCc6IDB4ODIyQiwKLSAgJ1JHMTYnOiAweDgyMkMsCi0gICdS
MTZGJzogMHg4MjJELAotICAnUjMyRic6IDB4ODIyRSwKLSAgJ1JHMTZGJzogMHg4MjJGLAotICAn
UkczMkYnOiAweDgyMzAsCi0gICdSOEknOiAweDgyMzEsCi0gICdSOFVJJzogMHg4MjMyLAotICAn
UjE2SSc6IDB4ODIzMywKLSAgJ1IxNlVJJzogMHg4MjM0LAotICAnUjMySSc6IDB4ODIzNSwKLSAg
J1IzMlVJJzogMHg4MjM2LAotICAnUkc4SSc6IDB4ODIzNywKLSAgJ1JHOFVJJzogMHg4MjM4LAot
ICAnUkcxNkknOiAweDgyMzksCi0gICdSRzE2VUknOiAweDgyM0EsCi0gICdSRzMySSc6IDB4ODIz
QiwKLSAgJ1JHMzJVSSc6IDB4ODIzQywKLSAgJ1RSQU5TUE9TRV9NT0RFTFZJRVdfTUFUUklYX0FS
Qic6IDB4ODRFMywKLSAgJ1RSQU5TUE9TRV9QUk9KRUNUSU9OX01BVFJJWF9BUkInOiAweDg0RTQs
Ci0gICdUUkFOU1BPU0VfVEVYVFVSRV9NQVRSSVhfQVJCJzogMHg4NEU1LAotICAnVFJBTlNQT1NF
X0NPTE9SX01BVFJJWF9BUkInOiAweDg0RTYsCi0gICdWRVJURVhfQVJSQVlfQklORElORyc6IDB4
ODVCNSwKLSAgJ01PREVMVklFVzBfQVJCJzogMHgxNzAwLAotICAnTU9ERUxWSUVXMV9BUkInOiAw
eDg1MEEsCi0gICdNQVhfVkVSVEVYX1VOSVRTX0FSQic6IDB4ODZBNCwKLSAgJ0FDVElWRV9WRVJU
RVhfVU5JVFNfQVJCJzogMHg4NkE1LAotICAnV0VJR0hUX1NVTV9VTklUWV9BUkInOiAweDg2QTYs
Ci0gICdWRVJURVhfQkxFTkRfQVJCJzogMHg4NkE3LAotICAnQ1VSUkVOVF9XRUlHSFRfQVJCJzog
MHg4NkE4LAotICAnV0VJR0hUX0FSUkFZX1RZUEVfQVJCJzogMHg4NkE5LAotICAnV0VJR0hUX0FS
UkFZX1NUUklERV9BUkInOiAweDg2QUEsCi0gICdXRUlHSFRfQVJSQVlfU0laRV9BUkInOiAweDg2
QUIsCi0gICdXRUlHSFRfQVJSQVlfUE9JTlRFUl9BUkInOiAweDg2QUMsCi0gICdXRUlHSFRfQVJS
QVlfQVJCJzogMHg4NkFELAotICAnTU9ERUxWSUVXMl9BUkInOiAweDg3MjIsCi0gICdNT0RFTFZJ
RVczX0FSQic6IDB4ODcyMywKLSAgJ01PREVMVklFVzRfQVJCJzogMHg4NzI0LAotICAnTU9ERUxW
SUVXNV9BUkInOiAweDg3MjUsCi0gICdNT0RFTFZJRVc2X0FSQic6IDB4ODcyNiwKLSAgJ01PREVM
VklFVzdfQVJCJzogMHg4NzI3LAotICAnTU9ERUxWSUVXOF9BUkInOiAweDg3MjgsCi0gICdNT0RF
TFZJRVc5X0FSQic6IDB4ODcyOSwKLSAgJ01PREVMVklFVzEwX0FSQic6IDB4ODcyQSwKLSAgJ01P
REVMVklFVzExX0FSQic6IDB4ODcyQiwKLSAgJ01PREVMVklFVzEyX0FSQic6IDB4ODcyQywKLSAg
J01PREVMVklFVzEzX0FSQic6IDB4ODcyRCwKLSAgJ01PREVMVklFVzE0X0FSQic6IDB4ODcyRSwK
LSAgJ01PREVMVklFVzE1X0FSQic6IDB4ODcyRiwKLSAgJ01PREVMVklFVzE2X0FSQic6IDB4ODcz
MCwKLSAgJ01PREVMVklFVzE3X0FSQic6IDB4ODczMSwKLSAgJ01PREVMVklFVzE4X0FSQic6IDB4
ODczMiwKLSAgJ01PREVMVklFVzE5X0FSQic6IDB4ODczMywKLSAgJ01PREVMVklFVzIwX0FSQic6
IDB4ODczNCwKLSAgJ01PREVMVklFVzIxX0FSQic6IDB4ODczNSwKLSAgJ01PREVMVklFVzIyX0FS
Qic6IDB4ODczNiwKLSAgJ01PREVMVklFVzIzX0FSQic6IDB4ODczNywKLSAgJ01PREVMVklFVzI0
X0FSQic6IDB4ODczOCwKLSAgJ01PREVMVklFVzI1X0FSQic6IDB4ODczOSwKLSAgJ01PREVMVklF
VzI2X0FSQic6IDB4ODczQSwKLSAgJ01PREVMVklFVzI3X0FSQic6IDB4ODczQiwKLSAgJ01PREVM
VklFVzI4X0FSQic6IDB4ODczQywKLSAgJ01PREVMVklFVzI5X0FSQic6IDB4ODczRCwKLSAgJ01P
REVMVklFVzMwX0FSQic6IDB4ODczRSwKLSAgJ01PREVMVklFVzMxX0FSQic6IDB4ODczRiwKLSAg
J0JVRkZFUl9TSVpFX0FSQic6IDB4ODc2NCwKLSAgJ0JVRkZFUl9VU0FHRV9BUkInOiAweDg3NjUs
Ci0gICdBUlJBWV9CVUZGRVJfQVJCJzogMHg4ODkyLAotICAnRUxFTUVOVF9BUlJBWV9CVUZGRVJf
QVJCJzogMHg4ODkzLAotICAnQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODk0LAotICAn
RUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OTUsCi0gICdWRVJURVhfQVJS
QVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODk2LAotICAnTk9STUFMX0FSUkFZX0JVRkZFUl9C
SU5ESU5HX0FSQic6IDB4ODg5NywKLSAgJ0NPTE9SX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6
IDB4ODg5OCwKLSAgJ0lOREVYX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5OSwKLSAg
J1RFWFRVUkVfQ09PUkRfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODlBLAotICAnRURH
RV9GTEFHX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5QiwKLSAgJ1NFQ09OREFSWV9D
T0xPUl9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OUMsCi0gICdGT0dfQ09PUkRJTkFU
RV9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OUQsCi0gICdXRUlHSFRfQVJSQVlfQlVG
RkVSX0JJTkRJTkdfQVJCJzogMHg4ODlFLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJf
QklORElOR19BUkInOiAweDg4OUYsCi0gICdSRUFEX09OTFlfQVJCJzogMHg4OEI4LAotICAnV1JJ
VEVfT05MWV9BUkInOiAweDg4QjksCi0gICdSRUFEX1dSSVRFX0FSQic6IDB4ODhCQSwKLSAgJ0JV
RkZFUl9BQ0NFU1NfQVJCJzogMHg4OEJCLAotICAnQlVGRkVSX01BUFBFRF9BUkInOiAweDg4QkMs
Ci0gICdCVUZGRVJfTUFQX1BPSU5URVJfQVJCJzogMHg4OEJELAotICAnU1RSRUFNX0RSQVdfQVJC
JzogMHg4OEUwLAotICAnU1RSRUFNX1JFQURfQVJCJzogMHg4OEUxLAotICAnU1RSRUFNX0NPUFlf
QVJCJzogMHg4OEUyLAotICAnU1RBVElDX0RSQVdfQVJCJzogMHg4OEU0LAotICAnU1RBVElDX1JF
QURfQVJCJzogMHg4OEU1LAotICAnU1RBVElDX0NPUFlfQVJCJzogMHg4OEU2LAotICAnRFlOQU1J
Q19EUkFXX0FSQic6IDB4ODhFOCwKLSAgJ0RZTkFNSUNfUkVBRF9BUkInOiAweDg4RTksCi0gICdE
WU5BTUlDX0NPUFlfQVJCJzogMHg4OEVBLAotICAnQ09MT1JfU1VNX0FSQic6IDB4ODQ1OCwKLSAg
J1ZFUlRFWF9QUk9HUkFNX0FSQic6IDB4ODYyMCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfRU5B
QkxFRF9BUkInOiAweDg2MjIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1NJWkVfQVJCJzogMHg4
NjIzLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREVfQVJCJzogMHg4NjI0LAotICAnVkVS
VEVYX0FUVFJJQl9BUlJBWV9UWVBFX0FSQic6IDB4ODYyNSwKLSAgJ0NVUlJFTlRfVkVSVEVYX0FU
VFJJQl9BUkInOiAweDg2MjYsCi0gICdQUk9HUkFNX0xFTkdUSF9BUkInOiAweDg2MjcsCi0gICdQ
Uk9HUkFNX1NUUklOR19BUkInOiAweDg2MjgsCi0gICdNQVhfUFJPR1JBTV9NQVRSSVhfU1RBQ0tf
REVQVEhfQVJCJzogMHg4NjJFLAotICAnTUFYX1BST0dSQU1fTUFUUklDRVNfQVJCJzogMHg4NjJG
LAotICAnQ1VSUkVOVF9NQVRSSVhfU1RBQ0tfREVQVEhfQVJCJzogMHg4NjQwLAotICAnQ1VSUkVO
VF9NQVRSSVhfQVJCJzogMHg4NjQxLAotICAnVkVSVEVYX1BST0dSQU1fUE9JTlRfU0laRV9BUkIn
OiAweDg2NDIsCi0gICdWRVJURVhfUFJPR1JBTV9UV09fU0lERV9BUkInOiAweDg2NDMsCi0gICdW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVJfQVJCJzogMHg4NjQ1LAotICAnUFJPR1JBTV9FUlJP
Ul9QT1NJVElPTl9BUkInOiAweDg2NEIsCi0gICdQUk9HUkFNX0JJTkRJTkdfQVJCJzogMHg4Njc3
LAotICAnTUFYX1ZFUlRFWF9BVFRSSUJTX0FSQic6IDB4ODg2OSwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVlfTk9STUFMSVpFRF9BUkInOiAweDg4NkEsCi0gICdQUk9HUkFNX0VSUk9SX1NUUklOR19B
UkInOiAweDg4NzQsCi0gICdQUk9HUkFNX0ZPUk1BVF9BU0NJSV9BUkInOiAweDg4NzUsCi0gICdQ
Uk9HUkFNX0ZPUk1BVF9BUkInOiAweDg4NzYsCi0gICdQUk9HUkFNX0lOU1RSVUNUSU9OU19BUkIn
OiAweDg4QTAsCi0gICdNQVhfUFJPR1JBTV9JTlNUUlVDVElPTlNfQVJCJzogMHg4OEExLAotICAn
UFJPR1JBTV9OQVRJVkVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODhBMiwKLSAgJ01BWF9QUk9HUkFN
X05BVElWRV9JTlNUUlVDVElPTlNfQVJCJzogMHg4OEEzLAotICAnUFJPR1JBTV9URU1QT1JBUklF
U19BUkInOiAweDg4QTQsCi0gICdNQVhfUFJPR1JBTV9URU1QT1JBUklFU19BUkInOiAweDg4QTUs
Ci0gICdQUk9HUkFNX05BVElWRV9URU1QT1JBUklFU19BUkInOiAweDg4QTYsCi0gICdNQVhfUFJP
R1JBTV9OQVRJVkVfVEVNUE9SQVJJRVNfQVJCJzogMHg4OEE3LAotICAnUFJPR1JBTV9QQVJBTUVU
RVJTX0FSQic6IDB4ODhBOCwKLSAgJ01BWF9QUk9HUkFNX1BBUkFNRVRFUlNfQVJCJzogMHg4OEE5
LAotICAnUFJPR1JBTV9OQVRJVkVfUEFSQU1FVEVSU19BUkInOiAweDg4QUEsCi0gICdNQVhfUFJP
R1JBTV9OQVRJVkVfUEFSQU1FVEVSU19BUkInOiAweDg4QUIsCi0gICdQUk9HUkFNX0FUVFJJQlNf
QVJCJzogMHg4OEFDLAotICAnTUFYX1BST0dSQU1fQVRUUklCU19BUkInOiAweDg4QUQsCi0gICdQ
Uk9HUkFNX05BVElWRV9BVFRSSUJTX0FSQic6IDB4ODhBRSwKLSAgJ01BWF9QUk9HUkFNX05BVElW
RV9BVFRSSUJTX0FSQic6IDB4ODhBRiwKLSAgJ1BST0dSQU1fQUREUkVTU19SRUdJU1RFUlNfQVJC
JzogMHg4OEIwLAotICAnTUFYX1BST0dSQU1fQUREUkVTU19SRUdJU1RFUlNfQVJCJzogMHg4OEIx
LAotICAnUFJPR1JBTV9OQVRJVkVfQUREUkVTU19SRUdJU1RFUlNfQVJCJzogMHg4OEIyLAotICAn
TUFYX1BST0dSQU1fTkFUSVZFX0FERFJFU1NfUkVHSVNURVJTX0FSQic6IDB4ODhCMywKLSAgJ01B
WF9QUk9HUkFNX0xPQ0FMX1BBUkFNRVRFUlNfQVJCJzogMHg4OEI0LAotICAnTUFYX1BST0dSQU1f
RU5WX1BBUkFNRVRFUlNfQVJCJzogMHg4OEI1LAotICAnUFJPR1JBTV9VTkRFUl9OQVRJVkVfTElN
SVRTX0FSQic6IDB4ODhCNiwKLSAgJ1RSQU5TUE9TRV9DVVJSRU5UX01BVFJJWF9BUkInOiAweDg4
QjcsCi0gICdNQVRSSVgwX0FSQic6IDB4ODhDMCwKLSAgJ01BVFJJWDFfQVJCJzogMHg4OEMxLAot
ICAnTUFUUklYMl9BUkInOiAweDg4QzIsCi0gICdNQVRSSVgzX0FSQic6IDB4ODhDMywKLSAgJ01B
VFJJWDRfQVJCJzogMHg4OEM0LAotICAnTUFUUklYNV9BUkInOiAweDg4QzUsCi0gICdNQVRSSVg2
X0FSQic6IDB4ODhDNiwKLSAgJ01BVFJJWDdfQVJCJzogMHg4OEM3LAotICAnTUFUUklYOF9BUkIn
OiAweDg4QzgsCi0gICdNQVRSSVg5X0FSQic6IDB4ODhDOSwKLSAgJ01BVFJJWDEwX0FSQic6IDB4
ODhDQSwKLSAgJ01BVFJJWDExX0FSQic6IDB4ODhDQiwKLSAgJ01BVFJJWDEyX0FSQic6IDB4ODhD
QywKLSAgJ01BVFJJWDEzX0FSQic6IDB4ODhDRCwKLSAgJ01BVFJJWDE0X0FSQic6IDB4ODhDRSwK
LSAgJ01BVFJJWDE1X0FSQic6IDB4ODhDRiwKLSAgJ01BVFJJWDE2X0FSQic6IDB4ODhEMCwKLSAg
J01BVFJJWDE3X0FSQic6IDB4ODhEMSwKLSAgJ01BVFJJWDE4X0FSQic6IDB4ODhEMiwKLSAgJ01B
VFJJWDE5X0FSQic6IDB4ODhEMywKLSAgJ01BVFJJWDIwX0FSQic6IDB4ODhENCwKLSAgJ01BVFJJ
WDIxX0FSQic6IDB4ODhENSwKLSAgJ01BVFJJWDIyX0FSQic6IDB4ODhENiwKLSAgJ01BVFJJWDIz
X0FSQic6IDB4ODhENywKLSAgJ01BVFJJWDI0X0FSQic6IDB4ODhEOCwKLSAgJ01BVFJJWDI1X0FS
Qic6IDB4ODhEOSwKLSAgJ01BVFJJWDI2X0FSQic6IDB4ODhEQSwKLSAgJ01BVFJJWDI3X0FSQic6
IDB4ODhEQiwKLSAgJ01BVFJJWDI4X0FSQic6IDB4ODhEQywKLSAgJ01BVFJJWDI5X0FSQic6IDB4
ODhERCwKLSAgJ01BVFJJWDMwX0FSQic6IDB4ODhERSwKLSAgJ01BVFJJWDMxX0FSQic6IDB4ODhE
RiwKLSAgJ1ZFUlRFWF9TSEFERVJfQVJCJzogMHg4QjMxLAotICAnTUFYX1ZFUlRFWF9VTklGT1JN
X0NPTVBPTkVOVFNfQVJCJzogMHg4QjRBLAotICAnTUFYX1ZBUllJTkdfRkxPQVRTX0FSQic6IDB4
OEI0QiwKLSAgJ01BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDhCNEMsCi0g
ICdNQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDhCNEQsCi0gICdPQkpF
Q1RfQUNUSVZFX0FUVFJJQlVURVNfQVJCJzogMHg4Qjg5LAotICAnT0JKRUNUX0FDVElWRV9BVFRS
SUJVVEVfTUFYX0xFTkdUSF9BUkInOiAweDhCOEEsCi0gICdURVhUVVJFX1BPSU5UX01PREVfQVRJ
WCc6IDB4NjBCMCwKLSAgJ1RFWFRVUkVfUE9JTlRfT05FX0NPT1JEX0FUSVgnOiAweDYwQjEsCi0g
ICdURVhUVVJFX1BPSU5UX1NQUklURV9BVElYJzogMHg2MEIyLAotICAnUE9JTlRfU1BSSVRFX0NV
TExfTU9ERV9BVElYJzogMHg2MEIzLAotICAnUE9JTlRfU1BSSVRFX0NVTExfQ0VOVEVSX0FUSVgn
OiAweDYwQjQsCi0gICdQT0lOVF9TUFJJVEVfQ1VMTF9DTElQX0FUSVgnOiAweDYwQjUsCi0gICdN
T0RVTEFURV9BRERfQVRJWCc6IDB4ODc0NCwKLSAgJ01PRFVMQVRFX1NJR05FRF9BRERfQVRJWCc6
IDB4ODc0NSwKLSAgJ01PRFVMQVRFX1NVQlRSQUNUX0FUSVgnOiAweDg3NDYsCi0gICdTRUNPTkRB
UllfQ09MT1JfQVRJWCc6IDB4ODc0NywKLSAgJ1RFWFRVUkVfT1VUUFVUX1JHQl9BVElYJzogMHg4
NzQ4LAotICAnVEVYVFVSRV9PVVRQVVRfQUxQSEFfQVRJWCc6IDB4ODc0OSwKLSAgJ09VVFBVVF9Q
T0lOVF9TSVpFX0FUSVgnOiAweDYxMEUsCi0gICdNQVhfRFJBV19CVUZGRVJTX0FUSSc6IDB4ODgy
NCwKLSAgJ0RSQVdfQlVGRkVSMF9BVEknOiAweDg4MjUsCi0gICdEUkFXX0JVRkZFUjFfQVRJJzog
MHg4ODI2LAotICAnRFJBV19CVUZGRVIyX0FUSSc6IDB4ODgyNywKLSAgJ0RSQVdfQlVGRkVSM19B
VEknOiAweDg4MjgsCi0gICdEUkFXX0JVRkZFUjRfQVRJJzogMHg4ODI5LAotICAnRFJBV19CVUZG
RVI1X0FUSSc6IDB4ODgyQSwKLSAgJ0RSQVdfQlVGRkVSNl9BVEknOiAweDg4MkIsCi0gICdEUkFX
X0JVRkZFUjdfQVRJJzogMHg4ODJDLAotICAnRFJBV19CVUZGRVI4X0FUSSc6IDB4ODgyRCwKLSAg
J0RSQVdfQlVGRkVSOV9BVEknOiAweDg4MkUsCi0gICdEUkFXX0JVRkZFUjEwX0FUSSc6IDB4ODgy
RiwKLSAgJ0RSQVdfQlVGRkVSMTFfQVRJJzogMHg4ODMwLAotICAnRFJBV19CVUZGRVIxMl9BVEkn
OiAweDg4MzEsCi0gICdEUkFXX0JVRkZFUjEzX0FUSSc6IDB4ODgzMiwKLSAgJ0RSQVdfQlVGRkVS
MTRfQVRJJzogMHg4ODMzLAotICAnRFJBV19CVUZGRVIxNV9BVEknOiAweDg4MzQsCi0gICdFTEVN
RU5UX0FSUkFZX0FUSSc6IDB4ODc2OCwKLSAgJ0VMRU1FTlRfQVJSQVlfVFlQRV9BVEknOiAweDg3
NjksCi0gICdFTEVNRU5UX0FSUkFZX1BPSU5URVJfQVRJJzogMHg4NzZBLAotICAnQlVNUF9ST1Rf
TUFUUklYX0FUSSc6IDB4ODc3NSwKLSAgJ0JVTVBfUk9UX01BVFJJWF9TSVpFX0FUSSc6IDB4ODc3
NiwKLSAgJ0JVTVBfTlVNX1RFWF9VTklUU19BVEknOiAweDg3NzcsCi0gICdCVU1QX1RFWF9VTklU
U19BVEknOiAweDg3NzgsCi0gICdEVURWX0FUSSc6IDB4ODc3OSwKLSAgJ0RVOERWOF9BVEknOiAw
eDg3N0EsCi0gICdCVU1QX0VOVk1BUF9BVEknOiAweDg3N0IsCi0gICdCVU1QX1RBUkdFVF9BVEkn
OiAweDg3N0MsCi0gICdSRURfQklUX0FUSSc6IDB4MDAwMDAwMDEsCi0gICcyWF9CSVRfQVRJJzog
MHgwMDAwMDAwMSwKLSAgJzRYX0JJVF9BVEknOiAweDAwMDAwMDAyLAotICAnR1JFRU5fQklUX0FU
SSc6IDB4MDAwMDAwMDIsCi0gICdDT01QX0JJVF9BVEknOiAweDAwMDAwMDAyLAotICAnQkxVRV9C
SVRfQVRJJzogMHgwMDAwMDAwNCwKLSAgJzhYX0JJVF9BVEknOiAweDAwMDAwMDA0LAotICAnTkVH
QVRFX0JJVF9BVEknOiAweDAwMDAwMDA0LAotICAnQklBU19CSVRfQVRJJzogMHgwMDAwMDAwOCwK
LSAgJ0hBTEZfQklUX0FUSSc6IDB4MDAwMDAwMDgsCi0gICdRVUFSVEVSX0JJVF9BVEknOiAweDAw
MDAwMDEwLAotICAnRUlHSFRIX0JJVF9BVEknOiAweDAwMDAwMDIwLAotICAnU0FUVVJBVEVfQklU
X0FUSSc6IDB4MDAwMDAwNDAsCi0gICdGUkFHTUVOVF9TSEFERVJfQVRJJzogMHg4OTIwLAotICAn
UkVHXzBfQVRJJzogMHg4OTIxLAotICAnUkVHXzFfQVRJJzogMHg4OTIyLAotICAnUkVHXzJfQVRJ
JzogMHg4OTIzLAotICAnUkVHXzNfQVRJJzogMHg4OTI0LAotICAnUkVHXzRfQVRJJzogMHg4OTI1
LAotICAnUkVHXzVfQVRJJzogMHg4OTI2LAotICAnQ09OXzBfQVRJJzogMHg4OTQxLAotICAnQ09O
XzFfQVRJJzogMHg4OTQyLAotICAnQ09OXzJfQVRJJzogMHg4OTQzLAotICAnQ09OXzNfQVRJJzog
MHg4OTQ0LAotICAnQ09OXzRfQVRJJzogMHg4OTQ1LAotICAnQ09OXzVfQVRJJzogMHg4OTQ2LAot
ICAnQ09OXzZfQVRJJzogMHg4OTQ3LAotICAnQ09OXzdfQVRJJzogMHg4OTQ4LAotICAnTU9WX0FU
SSc6IDB4ODk2MSwKLSAgJ0FERF9BVEknOiAweDg5NjMsCi0gICdNVUxfQVRJJzogMHg4OTY0LAot
ICAnU1VCX0FUSSc6IDB4ODk2NSwKLSAgJ0RPVDNfQVRJJzogMHg4OTY2LAotICAnRE9UNF9BVEkn
OiAweDg5NjcsCi0gICdNQURfQVRJJzogMHg4OTY4LAotICAnTEVSUF9BVEknOiAweDg5NjksCi0g
ICdDTkRfQVRJJzogMHg4OTZBLAotICAnQ05EMF9BVEknOiAweDg5NkIsCi0gICdET1QyX0FERF9B
VEknOiAweDg5NkMsCi0gICdTRUNPTkRBUllfSU5URVJQT0xBVE9SX0FUSSc6IDB4ODk2RCwKLSAg
J05VTV9GUkFHTUVOVF9SRUdJU1RFUlNfQVRJJzogMHg4OTZFLAotICAnTlVNX0ZSQUdNRU5UX0NP
TlNUQU5UU19BVEknOiAweDg5NkYsCi0gICdOVU1fUEFTU0VTX0FUSSc6IDB4ODk3MCwKLSAgJ05V
TV9JTlNUUlVDVElPTlNfUEVSX1BBU1NfQVRJJzogMHg4OTcxLAotICAnTlVNX0lOU1RSVUNUSU9O
U19UT1RBTF9BVEknOiAweDg5NzIsCi0gICdOVU1fSU5QVVRfSU5URVJQT0xBVE9SX0NPTVBPTkVO
VFNfQVRJJzogMHg4OTczLAotICAnTlVNX0xPT1BCQUNLX0NPTVBPTkVOVFNfQVRJJzogMHg4OTc0
LAotICAnQ09MT1JfQUxQSEFfUEFJUklOR19BVEknOiAweDg5NzUsCi0gICdTV0laWkxFX1NUUl9B
VEknOiAweDg5NzYsCi0gICdTV0laWkxFX1NUUV9BVEknOiAweDg5NzcsCi0gICdTV0laWkxFX1NU
Ul9EUl9BVEknOiAweDg5NzgsCi0gICdTV0laWkxFX1NUUV9EUV9BVEknOiAweDg5NzksCi0gICdT
V0laWkxFX1NUUlFfQVRJJzogMHg4OTdBLAotICAnU1dJWlpMRV9TVFJRX0RRX0FUSSc6IDB4ODk3
QiwKLSAgJ1BOX1RSSUFOR0xFU19BVEknOiAweDg3RjAsCi0gICdNQVhfUE5fVFJJQU5HTEVTX1RF
U1NFTEFUSU9OX0xFVkVMX0FUSSc6IDB4ODdGMSwKLSAgJ1BOX1RSSUFOR0xFU19QT0lOVF9NT0RF
X0FUSSc6IDB4ODdGMiwKLSAgJ1BOX1RSSUFOR0xFU19OT1JNQUxfTU9ERV9BVEknOiAweDg3RjMs
Ci0gICdQTl9UUklBTkdMRVNfVEVTU0VMQVRJT05fTEVWRUxfQVRJJzogMHg4N0Y0LAotICAnUE5f
VFJJQU5HTEVTX1BPSU5UX01PREVfTElORUFSX0FUSSc6IDB4ODdGNSwKLSAgJ1BOX1RSSUFOR0xF
U19QT0lOVF9NT0RFX0NVQklDX0FUSSc6IDB4ODdGNiwKLSAgJ1BOX1RSSUFOR0xFU19OT1JNQUxf
TU9ERV9MSU5FQVJfQVRJJzogMHg4N0Y3LAotICAnUE5fVFJJQU5HTEVTX05PUk1BTF9NT0RFX1FV
QURSQVRJQ19BVEknOiAweDg3RjgsCi0gICdTVEVOQ0lMX0JBQ0tfRlVOQ19BVEknOiAweDg4MDAs
Ci0gICdTVEVOQ0lMX0JBQ0tfRkFJTF9BVEknOiAweDg4MDEsCi0gICdTVEVOQ0lMX0JBQ0tfUEFT
U19ERVBUSF9GQUlMX0FUSSc6IDB4ODgwMiwKLSAgJ1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BB
U1NfQVRJJzogMHg4ODAzLAotICAnVEVYVF9GUkFHTUVOVF9TSEFERVJfQVRJJzogMHg4MjAwLAot
ICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEFfM0RDX0FUSSc6IDB4ODgzNywKLSAgJ01PRFVM
QVRFX0FERF9BVEknOiAweDg3NDQsCi0gICdNT0RVTEFURV9TSUdORURfQUREX0FUSSc6IDB4ODc0
NSwKLSAgJ01PRFVMQVRFX1NVQlRSQUNUX0FUSSc6IDB4ODc0NiwKLSAgJ1JHQkFfRkxPQVQzMl9B
VEknOiAweDg4MTQsCi0gICdSR0JfRkxPQVQzMl9BVEknOiAweDg4MTUsCi0gICdBTFBIQV9GTE9B
VDMyX0FUSSc6IDB4ODgxNiwKLSAgJ0lOVEVOU0lUWV9GTE9BVDMyX0FUSSc6IDB4ODgxNywKLSAg
J0xVTUlOQU5DRV9GTE9BVDMyX0FUSSc6IDB4ODgxOCwKLSAgJ0xVTUlOQU5DRV9BTFBIQV9GTE9B
VDMyX0FUSSc6IDB4ODgxOSwKLSAgJ1JHQkFfRkxPQVQxNl9BVEknOiAweDg4MUEsCi0gICdSR0Jf
RkxPQVQxNl9BVEknOiAweDg4MUIsCi0gICdBTFBIQV9GTE9BVDE2X0FUSSc6IDB4ODgxQywKLSAg
J0lOVEVOU0lUWV9GTE9BVDE2X0FUSSc6IDB4ODgxRCwKLSAgJ0xVTUlOQU5DRV9GTE9BVDE2X0FU
SSc6IDB4ODgxRSwKLSAgJ0xVTUlOQU5DRV9BTFBIQV9GTE9BVDE2X0FUSSc6IDB4ODgxRiwKLSAg
J01JUlJPUl9DTEFNUF9BVEknOiAweDg3NDIsCi0gICdNSVJST1JfQ0xBTVBfVE9fRURHRV9BVEkn
OiAweDg3NDMsCi0gICdTVEFUSUNfQVRJJzogMHg4NzYwLAotICAnRFlOQU1JQ19BVEknOiAweDg3
NjEsCi0gICdQUkVTRVJWRV9BVEknOiAweDg3NjIsCi0gICdESVNDQVJEX0FUSSc6IDB4ODc2MywK
LSAgJ09CSkVDVF9CVUZGRVJfU0laRV9BVEknOiAweDg3NjQsCi0gICdPQkpFQ1RfQlVGRkVSX1VT
QUdFX0FUSSc6IDB4ODc2NSwKLSAgJ0FSUkFZX09CSkVDVF9CVUZGRVJfQVRJJzogMHg4NzY2LAot
ICAnQVJSQVlfT0JKRUNUX09GRlNFVF9BVEknOiAweDg3NjcsCi0gICdNQVhfVkVSVEVYX1NUUkVB
TVNfQVRJJzogMHg4NzZCLAotICAnVkVSVEVYX1NPVVJDRV9BVEknOiAweDg3NkMsCi0gICdWRVJU
RVhfU1RSRUFNMF9BVEknOiAweDg3NkQsCi0gICdWRVJURVhfU1RSRUFNMV9BVEknOiAweDg3NkUs
Ci0gICdWRVJURVhfU1RSRUFNMl9BVEknOiAweDg3NkYsCi0gICdWRVJURVhfU1RSRUFNM19BVEkn
OiAweDg3NzAsCi0gICdWRVJURVhfU1RSRUFNNF9BVEknOiAweDg3NzEsCi0gICdWRVJURVhfU1RS
RUFNNV9BVEknOiAweDg3NzIsCi0gICdWRVJURVhfU1RSRUFNNl9BVEknOiAweDg3NzMsCi0gICdW
RVJURVhfU1RSRUFNN19BVEknOiAweDg3NzQsCi0gICc0MjJfRVhUJzogMHg4MENDLAotICAnNDIy
X1JFVl9FWFQnOiAweDgwQ0QsCi0gICc0MjJfQVZFUkFHRV9FWFQnOiAweDgwQ0UsCi0gICc0MjJf
UkVWX0FWRVJBR0VfRVhUJzogMHg4MENGLAotICAnQ0dfVkVSVEVYX1NIQURFUl9FWFQnOiAweDg5
MEUsCi0gICdDR19GUkFHTUVOVF9TSEFERVJfRVhUJzogMHg4OTBGLAotICAnQUJHUl9FWFQnOiAw
eDgwMDAsCi0gICdCR1JfRVhUJzogMHg4MEUwLAotICAnQkdSQV9FWFQnOiAweDgwRTEsCi0gICdN
QVhfVkVSVEVYX0JJTkRBQkxFX1VOSUZPUk1TX0VYVCc6IDB4OERFMiwKLSAgJ01BWF9GUkFHTUVO
VF9CSU5EQUJMRV9VTklGT1JNU19FWFQnOiAweDhERTMsCi0gICdNQVhfR0VPTUVUUllfQklOREFC
TEVfVU5JRk9STVNfRVhUJzogMHg4REU0LAotICAnTUFYX0JJTkRBQkxFX1VOSUZPUk1fU0laRV9F
WFQnOiAweDhERUQsCi0gICdVTklGT1JNX0JVRkZFUl9FWFQnOiAweDhERUUsCi0gICdVTklGT1JN
X0JVRkZFUl9CSU5ESU5HX0VYVCc6IDB4OERFRiwKLSAgJ0NPTlNUQU5UX0NPTE9SX0VYVCc6IDB4
ODAwMSwKLSAgJ09ORV9NSU5VU19DT05TVEFOVF9DT0xPUl9FWFQnOiAweDgwMDIsCi0gICdDT05T
VEFOVF9BTFBIQV9FWFQnOiAweDgwMDMsCi0gICdPTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEFfRVhU
JzogMHg4MDA0LAotICAnQkxFTkRfQ09MT1JfRVhUJzogMHg4MDA1LAotICAnQkxFTkRfRVFVQVRJ
T05fUkdCX0VYVCc6IDB4ODAwOSwKLSAgJ0JMRU5EX0VRVUFUSU9OX0FMUEhBX0VYVCc6IDB4ODgz
RCwKLSAgJ0JMRU5EX0RTVF9SR0JfRVhUJzogMHg4MEM4LAotICAnQkxFTkRfU1JDX1JHQl9FWFQn
OiAweDgwQzksCi0gICdCTEVORF9EU1RfQUxQSEFfRVhUJzogMHg4MENBLAotICAnQkxFTkRfU1JD
X0FMUEhBX0VYVCc6IDB4ODBDQiwKLSAgJ0ZVTkNfQUREX0VYVCc6IDB4ODAwNiwKLSAgJ01JTl9F
WFQnOiAweDgwMDcsCi0gICdNQVhfRVhUJzogMHg4MDA4LAotICAnQkxFTkRfRVFVQVRJT05fRVhU
JzogMHg4MDA5LAotICAnRlVOQ19TVUJUUkFDVF9FWFQnOiAweDgwMEEsCi0gICdGVU5DX1JFVkVS
U0VfU1VCVFJBQ1RfRVhUJzogMHg4MDBCLAotICAnQ0xJUF9WT0xVTUVfQ0xJUFBJTkdfSElOVF9F
WFQnOiAweDgwRjAsCi0gICdDTVlLX0VYVCc6IDB4ODAwQywKLSAgJ0NNWUtBX0VYVCc6IDB4ODAw
RCwKLSAgJ1BBQ0tfQ01ZS19ISU5UX0VYVCc6IDB4ODAwRSwKLSAgJ1VOUEFDS19DTVlLX0hJTlRf
RVhUJzogMHg4MDBGLAotICAnQVJSQVlfRUxFTUVOVF9MT0NLX0ZJUlNUX0VYVCc6IDB4ODFBOCwK
LSAgJ0FSUkFZX0VMRU1FTlRfTE9DS19DT1VOVF9FWFQnOiAweDgxQTksCi0gICdDT05WT0xVVElP
Tl8xRF9FWFQnOiAweDgwMTAsCi0gICdDT05WT0xVVElPTl8yRF9FWFQnOiAweDgwMTEsCi0gICdT
RVBBUkFCTEVfMkRfRVhUJzogMHg4MDEyLAotICAnQ09OVk9MVVRJT05fQk9SREVSX01PREVfRVhU
JzogMHg4MDEzLAotICAnQ09OVk9MVVRJT05fRklMVEVSX1NDQUxFX0VYVCc6IDB4ODAxNCwKLSAg
J0NPTlZPTFVUSU9OX0ZJTFRFUl9CSUFTX0VYVCc6IDB4ODAxNSwKLSAgJ1JFRFVDRV9FWFQnOiAw
eDgwMTYsCi0gICdDT05WT0xVVElPTl9GT1JNQVRfRVhUJzogMHg4MDE3LAotICAnQ09OVk9MVVRJ
T05fV0lEVEhfRVhUJzogMHg4MDE4LAotICAnQ09OVk9MVVRJT05fSEVJR0hUX0VYVCc6IDB4ODAx
OSwKLSAgJ01BWF9DT05WT0xVVElPTl9XSURUSF9FWFQnOiAweDgwMUEsCi0gICdNQVhfQ09OVk9M
VVRJT05fSEVJR0hUX0VYVCc6IDB4ODAxQiwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fUkVEX1NDQUxF
X0VYVCc6IDB4ODAxQywKLSAgJ1BPU1RfQ09OVk9MVVRJT05fR1JFRU5fU0NBTEVfRVhUJzogMHg4
MDFELAotICAnUE9TVF9DT05WT0xVVElPTl9CTFVFX1NDQUxFX0VYVCc6IDB4ODAxRSwKLSAgJ1BP
U1RfQ09OVk9MVVRJT05fQUxQSEFfU0NBTEVfRVhUJzogMHg4MDFGLAotICAnUE9TVF9DT05WT0xV
VElPTl9SRURfQklBU19FWFQnOiAweDgwMjAsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0dSRUVOX0JJ
QVNfRVhUJzogMHg4MDIxLAotICAnUE9TVF9DT05WT0xVVElPTl9CTFVFX0JJQVNfRVhUJzogMHg4
MDIyLAotICAnUE9TVF9DT05WT0xVVElPTl9BTFBIQV9CSUFTX0VYVCc6IDB4ODAyMywKLSAgJ1RB
TkdFTlRfQVJSQVlfRVhUJzogMHg4NDM5LAotICAnQklOT1JNQUxfQVJSQVlfRVhUJzogMHg4NDNB
LAotICAnQ1VSUkVOVF9UQU5HRU5UX0VYVCc6IDB4ODQzQiwKLSAgJ0NVUlJFTlRfQklOT1JNQUxf
RVhUJzogMHg4NDNDLAotICAnVEFOR0VOVF9BUlJBWV9UWVBFX0VYVCc6IDB4ODQzRSwKLSAgJ1RB
TkdFTlRfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODQzRiwKLSAgJ0JJTk9STUFMX0FSUkFZX1RZUEVf
RVhUJzogMHg4NDQwLAotICAnQklOT1JNQUxfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODQ0MSwKLSAg
J1RBTkdFTlRfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDg0NDIsCi0gICdCSU5PUk1BTF9BUlJBWV9Q
T0lOVEVSX0VYVCc6IDB4ODQ0MywKLSAgJ01BUDFfVEFOR0VOVF9FWFQnOiAweDg0NDQsCi0gICdN
QVAyX1RBTkdFTlRfRVhUJzogMHg4NDQ1LAotICAnTUFQMV9CSU5PUk1BTF9FWFQnOiAweDg0NDYs
Ci0gICdNQVAyX0JJTk9STUFMX0VYVCc6IDB4ODQ0NywKLSAgJ0RFUFRIX0JPVU5EU19URVNUX0VY
VCc6IDB4ODg5MCwKLSAgJ0RFUFRIX0JPVU5EU19FWFQnOiAweDg4OTEsCi0gICdQUk9HUkFNX01B
VFJJWF9FWFQnOiAweDhFMkQsCi0gICdUUkFOU1BPU0VfUFJPR1JBTV9NQVRSSVhfRVhUJzogMHg4
RTJFLAotICAnUFJPR1JBTV9NQVRSSVhfU1RBQ0tfREVQVEhfRVhUJzogMHg4RTJGLAotICAnTUFY
X0VMRU1FTlRTX1ZFUlRJQ0VTJzogMHg4MEU4LAotICAnTUFYX0VMRU1FTlRTX0lORElDRVMnOiAw
eDgwRTksCi0gICdGT0dfQ09PUkRJTkFURV9TT1VSQ0VfRVhUJzogMHg4NDUwLAotICAnRk9HX0NP
T1JESU5BVEVfRVhUJzogMHg4NDUxLAotICAnRlJBR01FTlRfREVQVEhfRVhUJzogMHg4NDUyLAot
ICAnQ1VSUkVOVF9GT0dfQ09PUkRJTkFURV9FWFQnOiAweDg0NTMsCi0gICdGT0dfQ09PUkRJTkFU
RV9BUlJBWV9UWVBFX0VYVCc6IDB4ODQ1NCwKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZX1NUUklE
RV9FWFQnOiAweDg0NTUsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4
ODQ1NiwKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZX0VYVCc6IDB4ODQ1NywKLSAgJ0ZSQUdNRU5U
X0xJR0hUSU5HX0VYVCc6IDB4ODQwMCwKLSAgJ0ZSQUdNRU5UX0NPTE9SX01BVEVSSUFMX0VYVCc6
IDB4ODQwMSwKLSAgJ0ZSQUdNRU5UX0NPTE9SX01BVEVSSUFMX0ZBQ0VfRVhUJzogMHg4NDAyLAot
ICAnRlJBR01FTlRfQ09MT1JfTUFURVJJQUxfUEFSQU1FVEVSX0VYVCc6IDB4ODQwMywKLSAgJ01B
WF9GUkFHTUVOVF9MSUdIVFNfRVhUJzogMHg4NDA0LAotICAnTUFYX0FDVElWRV9MSUdIVFNfRVhU
JzogMHg4NDA1LAotICAnQ1VSUkVOVF9SQVNURVJfTk9STUFMX0VYVCc6IDB4ODQwNiwKLSAgJ0xJ
R0hUX0VOVl9NT0RFX0VYVCc6IDB4ODQwNywKLSAgJ0ZSQUdNRU5UX0xJR0hUX01PREVMX0xPQ0FM
X1ZJRVdFUl9FWFQnOiAweDg0MDgsCi0gICdGUkFHTUVOVF9MSUdIVF9NT0RFTF9UV09fU0lERV9F
WFQnOiAweDg0MDksCi0gICdGUkFHTUVOVF9MSUdIVF9NT0RFTF9BTUJJRU5UX0VYVCc6IDB4ODQw
QSwKLSAgJ0ZSQUdNRU5UX0xJR0hUX01PREVMX05PUk1BTF9JTlRFUlBPTEFUSU9OX0VYVCc6IDB4
ODQwQiwKLSAgJ0ZSQUdNRU5UX0xJR0hUMF9FWFQnOiAweDg0MEMsCi0gICdGUkFHTUVOVF9MSUdI
VDdfRVhUJzogMHg4NDEzLAotICAnRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HX0VYVCc6IDB4OENB
NiwKLSAgJ1JFQURfRlJBTUVCVUZGRVJfRVhUJzogMHg4Q0E4LAotICAnRFJBV19GUkFNRUJVRkZF
Ul9FWFQnOiAweDhDQTksCi0gICdSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4Q0FB
LAotICAnUkVOREVSQlVGRkVSX1NBTVBMRVNfRVhUJzogMHg4Q0FCLAotICAnRlJBTUVCVUZGRVJf
SU5DT01QTEVURV9NVUxUSVNBTVBMRV9FWFQnOiAweDhENTYsCi0gICdNQVhfU0FNUExFU19FWFQn
OiAweDhENTcsCi0gICdJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTl9FWFQnOiAweDA1MDYs
Ci0gICdNQVhfUkVOREVSQlVGRkVSX1NJWkVfRVhUJzogMHg4NEU4LAotICAnRlJBTUVCVUZGRVJf
QklORElOR19FWFQnOiAweDhDQTYsCi0gICdSRU5ERVJCVUZGRVJfQklORElOR19FWFQnOiAweDhD
QTcsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFX0VYVCc6IDB4OENEMCwK
LSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUVfRVhUJzogMHg4Q0QxLAotICAn
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMX0VYVCc6IDB4OENEMiwKLSAgJ0ZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFX0VYVCc6IDB4OENEMywK
LSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV8zRF9aT0ZGU0VUX0VYVCc6IDB4OENE
NCwKLSAgJ0ZSQU1FQlVGRkVSX0NPTVBMRVRFX0VYVCc6IDB4OENENSwKLSAgJ0ZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfQVRUQUNITUVOVF9FWFQnOiAweDhDRDYsCi0gICdGUkFNRUJVRkZFUl9JTkNP
TVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVF9FWFQnOiAweDhDRDcsCi0gICdGUkFNRUJVRkZFUl9J
TkNPTVBMRVRFX0RJTUVOU0lPTlNfRVhUJzogMHg4Q0Q5LAotICAnRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9GT1JNQVRTX0VYVCc6IDB4OENEQSwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRFJB
V19CVUZGRVJfRVhUJzogMHg4Q0RCLAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9SRUFEX0JV
RkZFUl9FWFQnOiAweDhDREMsCi0gICdGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRF9FWFQnOiAweDhD
REQsCi0gICdNQVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUJzogMHg4Q0RGLAotICAnQ09MT1JfQVRU
QUNITUVOVDBfRVhUJzogMHg4Q0UwLAotICAnQ09MT1JfQVRUQUNITUVOVDFfRVhUJzogMHg4Q0Ux
LAotICAnQ09MT1JfQVRUQUNITUVOVDJfRVhUJzogMHg4Q0UyLAotICAnQ09MT1JfQVRUQUNITUVO
VDNfRVhUJzogMHg4Q0UzLAotICAnQ09MT1JfQVRUQUNITUVOVDRfRVhUJzogMHg4Q0U0LAotICAn
Q09MT1JfQVRUQUNITUVOVDVfRVhUJzogMHg4Q0U1LAotICAnQ09MT1JfQVRUQUNITUVOVDZfRVhU
JzogMHg4Q0U2LAotICAnQ09MT1JfQVRUQUNITUVOVDdfRVhUJzogMHg4Q0U3LAotICAnQ09MT1Jf
QVRUQUNITUVOVDhfRVhUJzogMHg4Q0U4LAotICAnQ09MT1JfQVRUQUNITUVOVDlfRVhUJzogMHg4
Q0U5LAotICAnQ09MT1JfQVRUQUNITUVOVDEwX0VYVCc6IDB4OENFQSwKLSAgJ0NPTE9SX0FUVEFD
SE1FTlQxMV9FWFQnOiAweDhDRUIsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUJzogMHg4Q0VD
LAotICAnQ09MT1JfQVRUQUNITUVOVDEzX0VYVCc6IDB4OENFRCwKLSAgJ0NPTE9SX0FUVEFDSE1F
TlQxNF9FWFQnOiAweDhDRUUsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUJzogMHg4Q0VGLAot
ICAnREVQVEhfQVRUQUNITUVOVF9FWFQnOiAweDhEMDAsCi0gICdTVEVOQ0lMX0FUVEFDSE1FTlRf
RVhUJzogMHg4RDIwLAotICAnRlJBTUVCVUZGRVJfRVhUJzogMHg4RDQwLAotICAnUkVOREVSQlVG
RkVSX0VYVCc6IDB4OEQ0MSwKLSAgJ1JFTkRFUkJVRkZFUl9XSURUSF9FWFQnOiAweDhENDIsCi0g
ICdSRU5ERVJCVUZGRVJfSEVJR0hUX0VYVCc6IDB4OEQ0MywKLSAgJ1JFTkRFUkJVRkZFUl9JTlRF
Uk5BTF9GT1JNQVRfRVhUJzogMHg4RDQ0LAotICAnU1RFTkNJTF9JTkRFWDFfRVhUJzogMHg4RDQ2
LAotICAnU1RFTkNJTF9JTkRFWDRfRVhUJzogMHg4RDQ3LAotICAnU1RFTkNJTF9JTkRFWDhfRVhU
JzogMHg4RDQ4LAotICAnU1RFTkNJTF9JTkRFWDE2X0VYVCc6IDB4OEQ0OSwKLSAgJ1JFTkRFUkJV
RkZFUl9SRURfU0laRV9FWFQnOiAweDhENTAsCi0gICdSRU5ERVJCVUZGRVJfR1JFRU5fU0laRV9F
WFQnOiAweDhENTEsCi0gICdSRU5ERVJCVUZGRVJfQkxVRV9TSVpFX0VYVCc6IDB4OEQ1MiwKLSAg
J1JFTkRFUkJVRkZFUl9BTFBIQV9TSVpFX0VYVCc6IDB4OEQ1MywKLSAgJ1JFTkRFUkJVRkZFUl9E
RVBUSF9TSVpFX0VYVCc6IDB4OEQ1NCwKLSAgJ1JFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkVfRVhU
JzogMHg4RDU1LAotICAnRlJBTUVCVUZGRVJfU1JHQl9FWFQnOiAweDhEQjksCi0gICdGUkFNRUJV
RkZFUl9TUkdCX0NBUEFCTEVfRVhUJzogMHg4REJBLAotICAnTElORVNfQURKQUNFTkNZX0VYVCc6
IDB4QSwKLSAgJ0xJTkVfU1RSSVBfQURKQUNFTkNZX0VYVCc6IDB4QiwKLSAgJ1RSSUFOR0xFU19B
REpBQ0VOQ1lfRVhUJzogMHhDLAotICAnVFJJQU5HTEVfU1RSSVBfQURKQUNFTkNZX0VYVCc6IDB4
RCwKLSAgJ1BST0dSQU1fUE9JTlRfU0laRV9FWFQnOiAweDg2NDIsCi0gICdNQVhfVkFSWUlOR19D
T01QT05FTlRTX0VYVCc6IDB4OEI0QiwKLSAgJ01BWF9HRU9NRVRSWV9URVhUVVJFX0lNQUdFX1VO
SVRTX0VYVCc6IDB4OEMyOSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlF
Ul9FWFQnOiAweDhDRDQsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0xBWUVSRURfRVhUJzog
MHg4REE3LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9MQVlFUl9UQVJHRVRTX0VYVCc6IDB4
OERBOCwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTEFZRVJfQ09VTlRfRVhUJzogMHg4REE5
LAotICAnR0VPTUVUUllfU0hBREVSX0VYVCc6IDB4OEREOSwKLSAgJ0dFT01FVFJZX1ZFUlRJQ0VT
X09VVF9FWFQnOiAweDhEREEsCi0gICdHRU9NRVRSWV9JTlBVVF9UWVBFX0VYVCc6IDB4OEREQiwK
LSAgJ0dFT01FVFJZX09VVFBVVF9UWVBFX0VYVCc6IDB4OEREQywKLSAgJ01BWF9HRU9NRVRSWV9W
QVJZSU5HX0NPTVBPTkVOVFNfRVhUJzogMHg4RERELAotICAnTUFYX1ZFUlRFWF9WQVJZSU5HX0NP
TVBPTkVOVFNfRVhUJzogMHg4RERFLAotICAnTUFYX0dFT01FVFJZX1VOSUZPUk1fQ09NUE9ORU5U
U19FWFQnOiAweDhEREYsCi0gICdNQVhfR0VPTUVUUllfT1VUUFVUX1ZFUlRJQ0VTX0VYVCc6IDB4
OERFMCwKLSAgJ01BWF9HRU9NRVRSWV9UT1RBTF9PVVRQVVRfQ09NUE9ORU5UU19FWFQnOiAweDhE
RTEsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX0lOVEVHRVJfRVhUJzogMHg4OEZELAotICAnU0FN
UExFUl8xRF9BUlJBWV9FWFQnOiAweDhEQzAsCi0gICdTQU1QTEVSXzJEX0FSUkFZX0VYVCc6IDB4
OERDMSwKLSAgJ1NBTVBMRVJfQlVGRkVSX0VYVCc6IDB4OERDMiwKLSAgJ1NBTVBMRVJfMURfQVJS
QVlfU0hBRE9XX0VYVCc6IDB4OERDMywKLSAgJ1NBTVBMRVJfMkRfQVJSQVlfU0hBRE9XX0VYVCc6
IDB4OERDNCwKLSAgJ1NBTVBMRVJfQ1VCRV9TSEFET1dfRVhUJzogMHg4REM1LAotICAnVU5TSUdO
RURfSU5UX1ZFQzJfRVhUJzogMHg4REM2LAotICAnVU5TSUdORURfSU5UX1ZFQzNfRVhUJzogMHg4
REM3LAotICAnVU5TSUdORURfSU5UX1ZFQzRfRVhUJzogMHg4REM4LAotICAnSU5UX1NBTVBMRVJf
MURfRVhUJzogMHg4REM5LAotICAnSU5UX1NBTVBMRVJfMkRfRVhUJzogMHg4RENBLAotICAnSU5U
X1NBTVBMRVJfM0RfRVhUJzogMHg4RENCLAotICAnSU5UX1NBTVBMRVJfQ1VCRV9FWFQnOiAweDhE
Q0MsCi0gICdJTlRfU0FNUExFUl8yRF9SRUNUX0VYVCc6IDB4OERDRCwKLSAgJ0lOVF9TQU1QTEVS
XzFEX0FSUkFZX0VYVCc6IDB4OERDRSwKLSAgJ0lOVF9TQU1QTEVSXzJEX0FSUkFZX0VYVCc6IDB4
OERDRiwKLSAgJ0lOVF9TQU1QTEVSX0JVRkZFUl9FWFQnOiAweDhERDAsCi0gICdVTlNJR05FRF9J
TlRfU0FNUExFUl8xRF9FWFQnOiAweDhERDEsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8yRF9F
WFQnOiAweDhERDIsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8zRF9FWFQnOiAweDhERDMsCi0g
ICdVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFX0VYVCc6IDB4OERENCwKLSAgJ1VOU0lHTkVEX0lO
VF9TQU1QTEVSXzJEX1JFQ1RfRVhUJzogMHg4REQ1LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJf
MURfQVJSQVlfRVhUJzogMHg4REQ2LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkRfQVJSQVlf
RVhUJzogMHg4REQ3LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfQlVGRkVSX0VYVCc6IDB4OERE
OCwKLSAgJ0hJU1RPR1JBTV9FWFQnOiAweDgwMjQsCi0gICdQUk9YWV9ISVNUT0dSQU1fRVhUJzog
MHg4MDI1LAotICAnSElTVE9HUkFNX1dJRFRIX0VYVCc6IDB4ODAyNiwKLSAgJ0hJU1RPR1JBTV9G
T1JNQVRfRVhUJzogMHg4MDI3LAotICAnSElTVE9HUkFNX1JFRF9TSVpFX0VYVCc6IDB4ODAyOCwK
LSAgJ0hJU1RPR1JBTV9HUkVFTl9TSVpFX0VYVCc6IDB4ODAyOSwKLSAgJ0hJU1RPR1JBTV9CTFVF
X1NJWkVfRVhUJzogMHg4MDJBLAotICAnSElTVE9HUkFNX0FMUEhBX1NJWkVfRVhUJzogMHg4MDJC
LAotICAnSElTVE9HUkFNX0xVTUlOQU5DRV9TSVpFX0VYVCc6IDB4ODAyQywKLSAgJ0hJU1RPR1JB
TV9TSU5LX0VYVCc6IDB4ODAyRCwKLSAgJ01JTk1BWF9FWFQnOiAweDgwMkUsCi0gICdNSU5NQVhf
Rk9STUFUX0VYVCc6IDB4ODAyRiwKLSAgJ01JTk1BWF9TSU5LX0VYVCc6IDB4ODAzMCwKLSAgJ0ZS
QUdNRU5UX01BVEVSSUFMX0VYVCc6IDB4ODM0OSwKLSAgJ0ZSQUdNRU5UX05PUk1BTF9FWFQnOiAw
eDgzNEEsCi0gICdGUkFHTUVOVF9DT0xPUl9FWFQnOiAweDgzNEMsCi0gICdBVFRFTlVBVElPTl9F
WFQnOiAweDgzNEQsCi0gICdTSEFET1dfQVRURU5VQVRJT05fRVhUJzogMHg4MzRFLAotICAnVEVY
VFVSRV9BUFBMSUNBVElPTl9NT0RFX0VYVCc6IDB4ODM0RiwKLSAgJ1RFWFRVUkVfTElHSFRfRVhU
JzogMHg4MzUwLAotICAnVEVYVFVSRV9NQVRFUklBTF9GQUNFX0VYVCc6IDB4ODM1MSwKLSAgJ1RF
WFRVUkVfTUFURVJJQUxfUEFSQU1FVEVSX0VYVCc6IDB4ODM1MiwKLSAgJ0ZSQUdNRU5UX0RFUFRI
X0VYVCc6IDB4ODQ1MiwKLSAgJ01VTFRJU0FNUExFX0VYVCc6IDB4ODA5RCwKLSAgJ1NBTVBMRV9B
TFBIQV9UT19NQVNLX0VYVCc6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBIQV9UT19PTkVfRVhUJzog
MHg4MDlGLAotICAnU0FNUExFX01BU0tfRVhUJzogMHg4MEEwLAotICAnMVBBU1NfRVhUJzogMHg4
MEExLAotICAnMlBBU1NfMF9FWFQnOiAweDgwQTIsCi0gICcyUEFTU18xX0VYVCc6IDB4ODBBMywK
LSAgJzRQQVNTXzBfRVhUJzogMHg4MEE0LAotICAnNFBBU1NfMV9FWFQnOiAweDgwQTUsCi0gICc0
UEFTU18yX0VYVCc6IDB4ODBBNiwKLSAgJzRQQVNTXzNfRVhUJzogMHg4MEE3LAotICAnU0FNUExF
X0JVRkZFUlNfRVhUJzogMHg4MEE4LAotICAnU0FNUExFU19FWFQnOiAweDgwQTksCi0gICdTQU1Q
TEVfTUFTS19WQUxVRV9FWFQnOiAweDgwQUEsCi0gICdTQU1QTEVfTUFTS19JTlZFUlRfRVhUJzog
MHg4MEFCLAotICAnU0FNUExFX1BBVFRFUk5fRVhUJzogMHg4MEFDLAotICAnTVVMVElTQU1QTEVf
QklUX0VYVCc6IDB4MjAwMDAwMDAsCi0gICdERVBUSF9TVEVOQ0lMX0VYVCc6IDB4ODRGOSwKLSAg
J1VOU0lHTkVEX0lOVF8yNF84X0VYVCc6IDB4ODRGQSwKLSAgJ0RFUFRIMjRfU1RFTkNJTDhfRVhU
JzogMHg4OEYwLAotICAnVEVYVFVSRV9TVEVOQ0lMX1NJWkVfRVhUJzogMHg4OEYxLAotICAnUjEx
Rl9HMTFGX0IxMEZfRVhUJzogMHg4QzNBLAotICAnVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JF
Vl9FWFQnOiAweDhDM0IsCi0gICdSR0JBX1NJR05FRF9DT01QT05FTlRTX0VYVCc6IDB4OEMzQywK
LSAgJ1VOU0lHTkVEX0JZVEVfM18zXzJfRVhUJzogMHg4MDMyLAotICAnVU5TSUdORURfU0hPUlRf
NF80XzRfNF9FWFQnOiAweDgwMzMsCi0gICdVTlNJR05FRF9TSE9SVF81XzVfNV8xX0VYVCc6IDB4
ODAzNCwKLSAgJ1VOU0lHTkVEX0lOVF84XzhfOF84X0VYVCc6IDB4ODAzNSwKLSAgJ1VOU0lHTkVE
X0lOVF8xMF8xMF8xMF8yX0VYVCc6IDB4ODAzNiwKLSAgJ1RFWFRVUkVfMUQnOiAweDBERTAsCi0g
ICdURVhUVVJFXzJEJzogMHgwREUxLAotICAnUFJPWFlfVEVYVFVSRV8xRCc6IDB4ODA2MywKLSAg
J1BST1hZX1RFWFRVUkVfMkQnOiAweDgwNjQsCi0gICdURVhUVVJFXzNEX0VYVCc6IDB4ODA2RiwK
LSAgJ1BST1hZX1RFWFRVUkVfM0RfRVhUJzogMHg4MDcwLAotICAnQ09MT1JfVEFCTEVfRk9STUFU
X0VYVCc6IDB4ODBEOCwKLSAgJ0NPTE9SX1RBQkxFX1dJRFRIX0VYVCc6IDB4ODBEOSwKLSAgJ0NP
TE9SX1RBQkxFX1JFRF9TSVpFX0VYVCc6IDB4ODBEQSwKLSAgJ0NPTE9SX1RBQkxFX0dSRUVOX1NJ
WkVfRVhUJzogMHg4MERCLAotICAnQ09MT1JfVEFCTEVfQkxVRV9TSVpFX0VYVCc6IDB4ODBEQywK
LSAgJ0NPTE9SX1RBQkxFX0FMUEhBX1NJWkVfRVhUJzogMHg4MERELAotICAnQ09MT1JfVEFCTEVf
TFVNSU5BTkNFX1NJWkVfRVhUJzogMHg4MERFLAotICAnQ09MT1JfVEFCTEVfSU5URU5TSVRZX1NJ
WkVfRVhUJzogMHg4MERGLAotICAnQ09MT1JfSU5ERVgxX0VYVCc6IDB4ODBFMiwKLSAgJ0NPTE9S
X0lOREVYMl9FWFQnOiAweDgwRTMsCi0gICdDT0xPUl9JTkRFWDRfRVhUJzogMHg4MEU0LAotICAn
Q09MT1JfSU5ERVg4X0VYVCc6IDB4ODBFNSwKLSAgJ0NPTE9SX0lOREVYMTJfRVhUJzogMHg4MEU2
LAotICAnQ09MT1JfSU5ERVgxNl9FWFQnOiAweDgwRTcsCi0gICdURVhUVVJFX0lOREVYX1NJWkVf
RVhUJzogMHg4MEVELAotICAnVEVYVFVSRV9DVUJFX01BUF9BUkInOiAweDg1MTMsCi0gICdQUk9Y
WV9URVhUVVJFX0NVQkVfTUFQX0FSQic6IDB4ODUxQiwKLSAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0VY
VCc6IDB4ODhFQiwKLSAgJ1BJWEVMX1VOUEFDS19CVUZGRVJfRVhUJzogMHg4OEVDLAotICAnUElY
RUxfUEFDS19CVUZGRVJfQklORElOR19FWFQnOiAweDg4RUQsCi0gICdQSVhFTF9VTlBBQ0tfQlVG
RkVSX0JJTkRJTkdfRVhUJzogMHg4OEVGLAotICAnUElYRUxfVFJBTlNGT1JNXzJEX0VYVCc6IDB4
ODMzMCwKLSAgJ1BJWEVMX01BR19GSUxURVJfRVhUJzogMHg4MzMxLAotICAnUElYRUxfTUlOX0ZJ
TFRFUl9FWFQnOiAweDgzMzIsCi0gICdQSVhFTF9DVUJJQ19XRUlHSFRfRVhUJzogMHg4MzMzLAot
ICAnQ1VCSUNfRVhUJzogMHg4MzM0LAotICAnQVZFUkFHRV9FWFQnOiAweDgzMzUsCi0gICdQSVhF
TF9UUkFOU0ZPUk1fMkRfU1RBQ0tfREVQVEhfRVhUJzogMHg4MzM2LAotICAnTUFYX1BJWEVMX1RS
QU5TRk9STV8yRF9TVEFDS19ERVBUSF9FWFQnOiAweDgzMzcsCi0gICdQSVhFTF9UUkFOU0ZPUk1f
MkRfTUFUUklYX0VYVCc6IDB4ODMzOCwKLSAgJ1BPSU5UX1NJWkVfTUlOX0VYVCc6IDB4ODEyNiwK
LSAgJ1BPSU5UX1NJWkVfTUFYX0VYVCc6IDB4ODEyNywKLSAgJ1BPSU5UX0ZBREVfVEhSRVNIT0xE
X1NJWkVfRVhUJzogMHg4MTI4LAotICAnRElTVEFOQ0VfQVRURU5VQVRJT05fRVhUJzogMHg4MTI5
LAotICAnUE9MWUdPTl9PRkZTRVRfRVhUJzogMHg4MDM3LAotICAnUE9MWUdPTl9PRkZTRVRfRkFD
VE9SX0VYVCc6IDB4ODAzOCwKLSAgJ1BPTFlHT05fT0ZGU0VUX0JJQVNfRVhUJzogMHg4MDM5LAot
ICAnUkVTQ0FMRV9OT1JNQUxfRVhUJzogMHg4MDNBLAotICAnQ09MT1JfU1VNX0VYVCc6IDB4ODQ1
OCwKLSAgJ0NVUlJFTlRfU0VDT05EQVJZX0NPTE9SX0VYVCc6IDB4ODQ1OSwKLSAgJ1NFQ09OREFS
WV9DT0xPUl9BUlJBWV9TSVpFX0VYVCc6IDB4ODQ1QSwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJB
WV9UWVBFX0VYVCc6IDB4ODQ1QiwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9TVFJJREVfRVhU
JzogMHg4NDVDLAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4NDVE
LAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX0VYVCc6IDB4ODQ1RSwKLSAgJ0xJR0hUX01PREVM
X0NPTE9SX0NPTlRST0xfRVhUJzogMHg4MUY4LAotICAnU0lOR0xFX0NPTE9SX0VYVCc6IDB4ODFG
OSwKLSAgJ1NFUEFSQVRFX1NQRUNVTEFSX0NPTE9SX0VYVCc6IDB4ODFGQSwKLSAgJ1NIQVJFRF9U
RVhUVVJFX1BBTEVUVEVfRVhUJzogMHg4MUZCLAotICAnU1RFTkNJTF9UQUdfQklUU19FWFQnOiAw
eDg4RjIsCi0gICdTVEVOQ0lMX0NMRUFSX1RBR19WQUxVRV9FWFQnOiAweDg4RjMsCi0gICdTVEVO
Q0lMX1RFU1RfVFdPX1NJREVfRVhUJzogMHg4OTEwLAotICAnQUNUSVZFX1NURU5DSUxfRkFDRV9F
WFQnOiAweDg5MTEsCi0gICdJTkNSX1dSQVBfRVhUJzogMHg4NTA3LAotICAnREVDUl9XUkFQX0VY
VCc6IDB4ODUwOCwKLSAgJ0FMUEhBNF9FWFQnOiAweDgwM0IsCi0gICdBTFBIQThfRVhUJzogMHg4
MDNDLAotICAnQUxQSEExMl9FWFQnOiAweDgwM0QsCi0gICdBTFBIQTE2X0VYVCc6IDB4ODAzRSwK
LSAgJ0xVTUlOQU5DRTRfRVhUJzogMHg4MDNGLAotICAnTFVNSU5BTkNFOF9FWFQnOiAweDgwNDAs
Ci0gICdMVU1JTkFOQ0UxMl9FWFQnOiAweDgwNDEsCi0gICdMVU1JTkFOQ0UxNl9FWFQnOiAweDgw
NDIsCi0gICdMVU1JTkFOQ0U0X0FMUEhBNF9FWFQnOiAweDgwNDMsCi0gICdMVU1JTkFOQ0U2X0FM
UEhBMl9FWFQnOiAweDgwNDQsCi0gICdMVU1JTkFOQ0U4X0FMUEhBOF9FWFQnOiAweDgwNDUsCi0g
ICdMVU1JTkFOQ0UxMl9BTFBIQTRfRVhUJzogMHg4MDQ2LAotICAnTFVNSU5BTkNFMTJfQUxQSEEx
Ml9FWFQnOiAweDgwNDcsCi0gICdMVU1JTkFOQ0UxNl9BTFBIQTE2X0VYVCc6IDB4ODA0OCwKLSAg
J0lOVEVOU0lUWV9FWFQnOiAweDgwNDksCi0gICdJTlRFTlNJVFk0X0VYVCc6IDB4ODA0QSwKLSAg
J0lOVEVOU0lUWThfRVhUJzogMHg4MDRCLAotICAnSU5URU5TSVRZMTJfRVhUJzogMHg4MDRDLAot
ICAnSU5URU5TSVRZMTZfRVhUJzogMHg4MDRELAotICAnUkdCMl9FWFQnOiAweDgwNEUsCi0gICdS
R0I0X0VYVCc6IDB4ODA0RiwKLSAgJ1JHQjVfRVhUJzogMHg4MDUwLAotICAnUkdCOF9FWFQnOiAw
eDgwNTEsCi0gICdSR0IxMF9FWFQnOiAweDgwNTIsCi0gICdSR0IxMl9FWFQnOiAweDgwNTMsCi0g
ICdSR0IxNl9FWFQnOiAweDgwNTQsCi0gICdSR0JBMl9FWFQnOiAweDgwNTUsCi0gICdSR0JBNF9F
WFQnOiAweDgwNTYsCi0gICdSR0I1X0ExX0VYVCc6IDB4ODA1NywKLSAgJ1JHQkE4X0VYVCc6IDB4
ODA1OCwKLSAgJ1JHQjEwX0EyX0VYVCc6IDB4ODA1OSwKLSAgJ1JHQkExMl9FWFQnOiAweDgwNUEs
Ci0gICdSR0JBMTZfRVhUJzogMHg4MDVCLAotICAnVEVYVFVSRV9SRURfU0laRV9FWFQnOiAweDgw
NUMsCi0gICdURVhUVVJFX0dSRUVOX1NJWkVfRVhUJzogMHg4MDVELAotICAnVEVYVFVSRV9CTFVF
X1NJWkVfRVhUJzogMHg4MDVFLAotICAnVEVYVFVSRV9BTFBIQV9TSVpFX0VYVCc6IDB4ODA1RiwK
LSAgJ1RFWFRVUkVfTFVNSU5BTkNFX1NJWkVfRVhUJzogMHg4MDYwLAotICAnVEVYVFVSRV9JTlRF
TlNJVFlfU0laRV9FWFQnOiAweDgwNjEsCi0gICdSRVBMQUNFX0VYVCc6IDB4ODA2MiwKLSAgJ1BS
T1hZX1RFWFRVUkVfMURfRVhUJzogMHg4MDYzLAotICAnUFJPWFlfVEVYVFVSRV8yRF9FWFQnOiAw
eDgwNjQsCi0gICdQQUNLX1NLSVBfSU1BR0VTX0VYVCc6IDB4ODA2QiwKLSAgJ1BBQ0tfSU1BR0Vf
SEVJR0hUX0VYVCc6IDB4ODA2QywKLSAgJ1VOUEFDS19TS0lQX0lNQUdFU19FWFQnOiAweDgwNkQs
Ci0gICdVTlBBQ0tfSU1BR0VfSEVJR0hUX0VYVCc6IDB4ODA2RSwKLSAgJ1RFWFRVUkVfM0RfRVhU
JzogMHg4MDZGLAotICAnUFJPWFlfVEVYVFVSRV8zRF9FWFQnOiAweDgwNzAsCi0gICdURVhUVVJF
X0RFUFRIX0VYVCc6IDB4ODA3MSwKLSAgJ1RFWFRVUkVfV1JBUF9SX0VYVCc6IDB4ODA3MiwKLSAg
J01BWF8zRF9URVhUVVJFX1NJWkVfRVhUJzogMHg4MDczLAotICAnQ09NUEFSRV9SRUZfREVQVEhf
VE9fVEVYVFVSRV9FWFQnOiAweDg4NEUsCi0gICdNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlNfRVhU
JzogMHg4OEZGLAotICAnVEVYVFVSRV8xRF9BUlJBWV9FWFQnOiAweDhDMTgsCi0gICdQUk9YWV9U
RVhUVVJFXzFEX0FSUkFZX0VYVCc6IDB4OEMxOSwKLSAgJ1RFWFRVUkVfMkRfQVJSQVlfRVhUJzog
MHg4QzFBLAotICAnUFJPWFlfVEVYVFVSRV8yRF9BUlJBWV9FWFQnOiAweDhDMUIsCi0gICdURVhU
VVJFX0JJTkRJTkdfMURfQVJSQVlfRVhUJzogMHg4QzFDLAotICAnVEVYVFVSRV9CSU5ESU5HXzJE
X0FSUkFZX0VYVCc6IDB4OEMxRCwKLSAgJ1RFWFRVUkVfQlVGRkVSX0VYVCc6IDB4OEMyQSwKLSAg
J01BWF9URVhUVVJFX0JVRkZFUl9TSVpFX0VYVCc6IDB4OEMyQiwKLSAgJ1RFWFRVUkVfQklORElO
R19CVUZGRVJfRVhUJzogMHg4QzJDLAotICAnVEVYVFVSRV9CVUZGRVJfREFUQV9TVE9SRV9CSU5E
SU5HX0VYVCc6IDB4OEMyRCwKLSAgJ1RFWFRVUkVfQlVGRkVSX0ZPUk1BVF9FWFQnOiAweDhDMkUs
Ci0gICdDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUJzogMHg4M0YwLAotICAnQ09NUFJFU1NF
RF9SR0JBX1MzVENfRFhUMV9FWFQnOiAweDgzRjEsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRV9M
QVRDMV9FWFQnOiAweDhDNzAsCi0gICdDT01QUkVTU0VEX1NJR05FRF9MVU1JTkFOQ0VfTEFUQzFf
RVhUJzogMHg4QzcxLAotICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEFfTEFUQzJfRVhUJzog
MHg4QzcyLAotICAnQ09NUFJFU1NFRF9TSUdORURfTFVNSU5BTkNFX0FMUEhBX0xBVEMyX0VYVCc6
IDB4OEM3MywKLSAgJ0NPTVBSRVNTRURfUkVEX1JHVEMxX0VYVCc6IDB4OERCQiwKLSAgJ0NPTVBS
RVNTRURfU0lHTkVEX1JFRF9SR1RDMV9FWFQnOiAweDhEQkMsCi0gICdDT01QUkVTU0VEX1JFRF9H
UkVFTl9SR1RDMl9FWFQnOiAweDhEQkQsCi0gICdDT01QUkVTU0VEX1NJR05FRF9SRURfR1JFRU5f
UkdUQzJfRVhUJzogMHg4REJFLAotICAnQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCc6IDB4
ODNGMCwKLSAgJ0NPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUJzogMHg4M0YxLAotICAnQ09N
UFJFU1NFRF9SR0JBX1MzVENfRFhUM19FWFQnOiAweDgzRjIsCi0gICdDT01QUkVTU0VEX1JHQkFf
UzNUQ19EWFQ1X0VYVCc6IDB4ODNGMywKLSAgJ05PUk1BTF9NQVBfRVhUJzogMHg4NTExLAotICAn
UkVGTEVDVElPTl9NQVBfRVhUJzogMHg4NTEyLAotICAnVEVYVFVSRV9DVUJFX01BUF9FWFQnOiAw
eDg1MTMsCi0gICdURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVBfRVhUJzogMHg4NTE0LAotICAnVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9YX0VYVCc6IDB4ODUxNSwKLSAgJ1RFWFRVUkVfQ1VCRV9N
QVBfTkVHQVRJVkVfWF9FWFQnOiAweDg1MTYsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1lfRVhUJzogMHg4NTE3LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZX0VYVCc6IDB4
ODUxOCwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWl9FWFQnOiAweDg1MTksCi0gICdU
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1pfRVhUJzogMHg4NTFBLAotICAnUFJPWFlfVEVYVFVS
RV9DVUJFX01BUF9FWFQnOiAweDg1MUIsCi0gICdNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFX0VY
VCc6IDB4ODUxQywKLSAgJ0NMQU1QX1RPX0VER0VfRVhUJzogMHg4MTJGLAotICAnQ09NQklORV9F
WFQnOiAweDg1NzAsCi0gICdDT01CSU5FX1JHQl9FWFQnOiAweDg1NzEsCi0gICdDT01CSU5FX0FM
UEhBX0VYVCc6IDB4ODU3MiwKLSAgJ1JHQl9TQ0FMRV9FWFQnOiAweDg1NzMsCi0gICdBRERfU0lH
TkVEX0VYVCc6IDB4ODU3NCwKLSAgJ0lOVEVSUE9MQVRFX0VYVCc6IDB4ODU3NSwKLSAgJ0NPTlNU
QU5UX0VYVCc6IDB4ODU3NiwKLSAgJ1BSSU1BUllfQ09MT1JfRVhUJzogMHg4NTc3LAotICAnUFJF
VklPVVNfRVhUJzogMHg4NTc4LAotICAnU09VUkNFMF9SR0JfRVhUJzogMHg4NTgwLAotICAnU09V
UkNFMV9SR0JfRVhUJzogMHg4NTgxLAotICAnU09VUkNFMl9SR0JfRVhUJzogMHg4NTgyLAotICAn
U09VUkNFMF9BTFBIQV9FWFQnOiAweDg1ODgsCi0gICdTT1VSQ0UxX0FMUEhBX0VYVCc6IDB4ODU4
OSwKLSAgJ1NPVVJDRTJfQUxQSEFfRVhUJzogMHg4NThBLAotICAnT1BFUkFORDBfUkdCX0VYVCc6
IDB4ODU5MCwKLSAgJ09QRVJBTkQxX1JHQl9FWFQnOiAweDg1OTEsCi0gICdPUEVSQU5EMl9SR0Jf
RVhUJzogMHg4NTkyLAotICAnT1BFUkFORDBfQUxQSEFfRVhUJzogMHg4NTk4LAotICAnT1BFUkFO
RDFfQUxQSEFfRVhUJzogMHg4NTk5LAotICAnT1BFUkFORDJfQUxQSEFfRVhUJzogMHg4NTlBLAot
ICAnRE9UM19SR0JfRVhUJzogMHg4NzQwLAotICAnRE9UM19SR0JBX0VYVCc6IDB4ODc0MSwKLSAg
J1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUJzogMHg4NEZFLAotICAnTUFYX1RFWFRVUkVfTUFY
X0FOSVNPVFJPUFlfRVhUJzogMHg4NEZGLAotICAnUkdCQTMyVUlfRVhUJzogMHg4RDcwLAotICAn
UkdCMzJVSV9FWFQnOiAweDhENzEsCi0gICdBTFBIQTMyVUlfRVhUJzogMHg4RDcyLAotICAnSU5U
RU5TSVRZMzJVSV9FWFQnOiAweDhENzMsCi0gICdMVU1JTkFOQ0UzMlVJX0VYVCc6IDB4OEQ3NCwK
LSAgJ0xVTUlOQU5DRV9BTFBIQTMyVUlfRVhUJzogMHg4RDc1LAotICAnUkdCQTE2VUlfRVhUJzog
MHg4RDc2LAotICAnUkdCMTZVSV9FWFQnOiAweDhENzcsCi0gICdBTFBIQTE2VUlfRVhUJzogMHg4
RDc4LAotICAnSU5URU5TSVRZMTZVSV9FWFQnOiAweDhENzksCi0gICdMVU1JTkFOQ0UxNlVJX0VY
VCc6IDB4OEQ3QSwKLSAgJ0xVTUlOQU5DRV9BTFBIQTE2VUlfRVhUJzogMHg4RDdCLAotICAnUkdC
QThVSV9FWFQnOiAweDhEN0MsCi0gICdSR0I4VUlfRVhUJzogMHg4RDdELAotICAnQUxQSEE4VUlf
RVhUJzogMHg4RDdFLAotICAnSU5URU5TSVRZOFVJX0VYVCc6IDB4OEQ3RiwKLSAgJ0xVTUlOQU5D
RThVSV9FWFQnOiAweDhEODAsCi0gICdMVU1JTkFOQ0VfQUxQSEE4VUlfRVhUJzogMHg4RDgxLAot
ICAnUkdCQTMySV9FWFQnOiAweDhEODIsCi0gICdSR0IzMklfRVhUJzogMHg4RDgzLAotICAnQUxQ
SEEzMklfRVhUJzogMHg4RDg0LAotICAnSU5URU5TSVRZMzJJX0VYVCc6IDB4OEQ4NSwKLSAgJ0xV
TUlOQU5DRTMySV9FWFQnOiAweDhEODYsCi0gICdMVU1JTkFOQ0VfQUxQSEEzMklfRVhUJzogMHg4
RDg3LAotICAnUkdCQTE2SV9FWFQnOiAweDhEODgsCi0gICdSR0IxNklfRVhUJzogMHg4RDg5LAot
ICAnQUxQSEExNklfRVhUJzogMHg4RDhBLAotICAnSU5URU5TSVRZMTZJX0VYVCc6IDB4OEQ4QiwK
LSAgJ0xVTUlOQU5DRTE2SV9FWFQnOiAweDhEOEMsCi0gICdMVU1JTkFOQ0VfQUxQSEExNklfRVhU
JzogMHg4RDhELAotICAnUkdCQThJX0VYVCc6IDB4OEQ4RSwKLSAgJ1JHQjhJX0VYVCc6IDB4OEQ4
RiwKLSAgJ0FMUEhBOElfRVhUJzogMHg4RDkwLAotICAnSU5URU5TSVRZOElfRVhUJzogMHg4RDkx
LAotICAnTFVNSU5BTkNFOElfRVhUJzogMHg4RDkyLAotICAnTFVNSU5BTkNFX0FMUEhBOElfRVhU
JzogMHg4RDkzLAotICAnUkVEX0lOVEVHRVJfRVhUJzogMHg4RDk0LAotICAnR1JFRU5fSU5URUdF
Ul9FWFQnOiAweDhEOTUsCi0gICdCTFVFX0lOVEVHRVJfRVhUJzogMHg4RDk2LAotICAnQUxQSEFf
SU5URUdFUl9FWFQnOiAweDhEOTcsCi0gICdSR0JfSU5URUdFUl9FWFQnOiAweDhEOTgsCi0gICdS
R0JBX0lOVEVHRVJfRVhUJzogMHg4RDk5LAotICAnQkdSX0lOVEVHRVJfRVhUJzogMHg4RDlBLAot
ICAnQkdSQV9JTlRFR0VSX0VYVCc6IDB4OEQ5QiwKLSAgJ0xVTUlOQU5DRV9JTlRFR0VSX0VYVCc6
IDB4OEQ5QywKLSAgJ0xVTUlOQU5DRV9BTFBIQV9JTlRFR0VSX0VYVCc6IDB4OEQ5RCwKLSAgJ1JH
QkFfSU5URUdFUl9NT0RFX0VYVCc6IDB4OEQ5RSwKLSAgJ01BWF9URVhUVVJFX0xPRF9CSUFTX0VY
VCc6IDB4ODRGRCwKLSAgJ1RFWFRVUkVfRklMVEVSX0NPTlRST0xfRVhUJzogMHg4NTAwLAotICAn
VEVYVFVSRV9MT0RfQklBU19FWFQnOiAweDg1MDEsCi0gICdNSVJST1JfQ0xBTVBfRVhUJzogMHg4
NzQyLAotICAnTUlSUk9SX0NMQU1QX1RPX0VER0VfRVhUJzogMHg4NzQzLAotICAnTUlSUk9SX0NM
QU1QX1RPX0JPUkRFUl9FWFQnOiAweDg5MTIsCi0gICdURVhUVVJFX1BSSU9SSVRZX0VYVCc6IDB4
ODA2NiwKLSAgJ1RFWFRVUkVfUkVTSURFTlRfRVhUJzogMHg4MDY3LAotICAnVEVYVFVSRV8xRF9C
SU5ESU5HX0VYVCc6IDB4ODA2OCwKLSAgJ1RFWFRVUkVfMkRfQklORElOR19FWFQnOiAweDgwNjks
Ci0gICdURVhUVVJFXzNEX0JJTkRJTkdfRVhUJzogMHg4MDZBLAotICAnUEVSVFVSQl9FWFQnOiAw
eDg1QUUsCi0gICdURVhUVVJFX05PUk1BTF9FWFQnOiAweDg1QUYsCi0gICdURVhUVVJFX1JFQ1RB
TkdMRV9FWFQnOiAweDg0RjUsCi0gICdURVhUVVJFX0JJTkRJTkdfUkVDVEFOR0xFX0VYVCc6IDB4
ODRGNiwKLSAgJ1BST1hZX1RFWFRVUkVfUkVDVEFOR0xFX0VYVCc6IDB4ODRGNywKLSAgJ01BWF9S
RUNUQU5HTEVfVEVYVFVSRV9TSVpFX0VYVCc6IDB4ODRGOCwKLSAgJ1NSR0JfRVhUJzogMHg4QzQw
LAotICAnU1JHQjhfRVhUJzogMHg4QzQxLAotICAnU1JHQl9BTFBIQV9FWFQnOiAweDhDNDIsCi0g
ICdTUkdCOF9BTFBIQThfRVhUJzogMHg4QzQzLAotICAnU0xVTUlOQU5DRV9BTFBIQV9FWFQnOiAw
eDhDNDQsCi0gICdTTFVNSU5BTkNFOF9BTFBIQThfRVhUJzogMHg4QzQ1LAotICAnU0xVTUlOQU5D
RV9FWFQnOiAweDhDNDYsCi0gICdTTFVNSU5BTkNFOF9FWFQnOiAweDhDNDcsCi0gICdDT01QUkVT
U0VEX1NSR0JfRVhUJzogMHg4QzQ4LAotICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhBX0VYVCc6IDB4
OEM0OSwKLSAgJ0NPTVBSRVNTRURfU0xVTUlOQU5DRV9FWFQnOiAweDhDNEEsCi0gICdDT01QUkVT
U0VEX1NMVU1JTkFOQ0VfQUxQSEFfRVhUJzogMHg4QzRCLAotICAnQ09NUFJFU1NFRF9TUkdCX1Mz
VENfRFhUMV9FWFQnOiAweDhDNEMsCi0gICdDT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19EWFQx
X0VYVCc6IDB4OEM0RCwKLSAgJ0NPTVBSRVNTRURfU1JHQl9BTFBIQV9TM1RDX0RYVDNfRVhUJzog
MHg4QzRFLAotICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhBX1MzVENfRFhUNV9FWFQnOiAweDhDNEYs
Ci0gICdSR0I5X0U1X0VYVCc6IDB4OEMzRCwKLSAgJ1VOU0lHTkVEX0lOVF81XzlfOV85X1JFVl9F
WFQnOiAweDhDM0UsCi0gICdURVhUVVJFX1NIQVJFRF9TSVpFX0VYVCc6IDB4OEMzRiwKLSAgJ1RF
WFRVUkVfU1dJWlpMRV9SX0VYVCc6IDB4OEU0MiwKLSAgJ1RFWFRVUkVfU1dJWlpMRV9HX0VYVCc6
IDB4OEU0MywKLSAgJ1RFWFRVUkVfU1dJWlpMRV9CX0VYVCc6IDB4OEU0NCwKLSAgJ1RFWFRVUkVf
U1dJWlpMRV9BX0VYVCc6IDB4OEU0NSwKLSAgJ1RFWFRVUkVfU1dJWlpMRV9SR0JBX0VYVCc6IDB4
OEU0NiwKLSAgJ1RJTUVfRUxBUFNFRF9FWFQnOiAweDg4QkYsCi0gICdUUkFOU0ZPUk1fRkVFREJB
Q0tfVkFSWUlOR19NQVhfTEVOR1RIX0VYVCc6IDB4OEM3NiwKLSAgJ1RSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJfTU9ERV9FWFQnOiAweDhDN0YsCi0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NF
UEFSQVRFX0NPTVBPTkVOVFNfRVhUJzogMHg4QzgwLAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZB
UllJTkdTX0VYVCc6IDB4OEM4MywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlRf
RVhUJzogMHg4Qzg0LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFX0VYVCc6IDB4
OEM4NSwKLSAgJ1BSSU1JVElWRVNfR0VORVJBVEVEX0VYVCc6IDB4OEM4NywKLSAgJ1RSQU5TRk9S
TV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU5fRVhUJzogMHg4Qzg4LAotICAnUkFTVEVSSVpF
Ul9ESVNDQVJEX0VYVCc6IDB4OEM4OSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfSU5URVJM
RUFWRURfQ09NUE9ORU5UU19FWFQnOiAweDhDOEEsCi0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X1NFUEFSQVRFX0FUVFJJQlNfRVhUJzogMHg4QzhCLAotICAnSU5URVJMRUFWRURfQVRUUklCU19F
WFQnOiAweDhDOEMsCi0gICdTRVBBUkFURV9BVFRSSUJTX0VYVCc6IDB4OEM4RCwKLSAgJ1RSQU5T
Rk9STV9GRUVEQkFDS19CVUZGRVJfRVhUJzogMHg4QzhFLAotICAnVFJBTlNGT1JNX0ZFRURCQUNL
X0JVRkZFUl9CSU5ESU5HX0VYVCc6IDB4OEM4RiwKLSAgJ0RPVUJMRV9FWFQnOiAweDE0MEEsCi0g
ICdWRVJURVhfQVJSQVlfRVhUJzogMHg4MDc0LAotICAnTk9STUFMX0FSUkFZX0VYVCc6IDB4ODA3
NSwKLSAgJ0NPTE9SX0FSUkFZX0VYVCc6IDB4ODA3NiwKLSAgJ0lOREVYX0FSUkFZX0VYVCc6IDB4
ODA3NywKLSAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfRVhUJzogMHg4MDc4LAotICAnRURHRV9GTEFH
X0FSUkFZX0VYVCc6IDB4ODA3OSwKLSAgJ1ZFUlRFWF9BUlJBWV9TSVpFX0VYVCc6IDB4ODA3QSwK
LSAgJ1ZFUlRFWF9BUlJBWV9UWVBFX0VYVCc6IDB4ODA3QiwKLSAgJ1ZFUlRFWF9BUlJBWV9TVFJJ
REVfRVhUJzogMHg4MDdDLAotICAnVkVSVEVYX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA3RCwKLSAg
J05PUk1BTF9BUlJBWV9UWVBFX0VYVCc6IDB4ODA3RSwKLSAgJ05PUk1BTF9BUlJBWV9TVFJJREVf
RVhUJzogMHg4MDdGLAotICAnTk9STUFMX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4MCwKLSAgJ0NP
TE9SX0FSUkFZX1NJWkVfRVhUJzogMHg4MDgxLAotICAnQ09MT1JfQVJSQVlfVFlQRV9FWFQnOiAw
eDgwODIsCi0gICdDT0xPUl9BUlJBWV9TVFJJREVfRVhUJzogMHg4MDgzLAotICAnQ09MT1JfQVJS
QVlfQ09VTlRfRVhUJzogMHg4MDg0LAotICAnSU5ERVhfQVJSQVlfVFlQRV9FWFQnOiAweDgwODUs
Ci0gICdJTkRFWF9BUlJBWV9TVFJJREVfRVhUJzogMHg4MDg2LAotICAnSU5ERVhfQVJSQVlfQ09V
TlRfRVhUJzogMHg4MDg3LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9TSVpFX0VYVCc6IDB4ODA4
OCwKLSAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfVFlQRV9FWFQnOiAweDgwODksCi0gICdURVhUVVJF
X0NPT1JEX0FSUkFZX1NUUklERV9FWFQnOiAweDgwOEEsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZ
X0NPVU5UX0VYVCc6IDB4ODA4QiwKLSAgJ0VER0VfRkxBR19BUlJBWV9TVFJJREVfRVhUJzogMHg4
MDhDLAotICAnRURHRV9GTEFHX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4RCwKLSAgJ1ZFUlRFWF9B
UlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA4RSwKLSAgJ05PUk1BTF9BUlJBWV9QT0lOVEVSX0VYVCc6
IDB4ODA4RiwKLSAgJ0NPTE9SX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDkwLAotICAnSU5ERVhf
QVJSQVlfUE9JTlRFUl9FWFQnOiAweDgwOTEsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX1BPSU5U
RVJfRVhUJzogMHg4MDkyLAotICAnRURHRV9GTEFHX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDkz
LAotICAnQkdSQSc6IDB4ODBFMSwKLSAgJ1ZFUlRFWF9TSEFERVJfRVhUJzogMHg4NzgwLAotICAn
VkVSVEVYX1NIQURFUl9CSU5ESU5HX0VYVCc6IDB4ODc4MSwKLSAgJ09QX0lOREVYX0VYVCc6IDB4
ODc4MiwKLSAgJ09QX05FR0FURV9FWFQnOiAweDg3ODMsCi0gICdPUF9ET1QzX0VYVCc6IDB4ODc4
NCwKLSAgJ09QX0RPVDRfRVhUJzogMHg4Nzg1LAotICAnT1BfTVVMX0VYVCc6IDB4ODc4NiwKLSAg
J09QX0FERF9FWFQnOiAweDg3ODcsCi0gICdPUF9NQUREX0VYVCc6IDB4ODc4OCwKLSAgJ09QX0ZS
QUNfRVhUJzogMHg4Nzg5LAotICAnT1BfTUFYX0VYVCc6IDB4ODc4QSwKLSAgJ09QX01JTl9FWFQn
OiAweDg3OEIsCi0gICdPUF9TRVRfR0VfRVhUJzogMHg4NzhDLAotICAnT1BfU0VUX0xUX0VYVCc6
IDB4ODc4RCwKLSAgJ09QX0NMQU1QX0VYVCc6IDB4ODc4RSwKLSAgJ09QX0ZMT09SX0VYVCc6IDB4
ODc4RiwKLSAgJ09QX1JPVU5EX0VYVCc6IDB4ODc5MCwKLSAgJ09QX0VYUF9CQVNFXzJfRVhUJzog
MHg4NzkxLAotICAnT1BfTE9HX0JBU0VfMl9FWFQnOiAweDg3OTIsCi0gICdPUF9QT1dFUl9FWFQn
OiAweDg3OTMsCi0gICdPUF9SRUNJUF9FWFQnOiAweDg3OTQsCi0gICdPUF9SRUNJUF9TUVJUX0VY
VCc6IDB4ODc5NSwKLSAgJ09QX1NVQl9FWFQnOiAweDg3OTYsCi0gICdPUF9DUk9TU19QUk9EVUNU
X0VYVCc6IDB4ODc5NywKLSAgJ09QX01VTFRJUExZX01BVFJJWF9FWFQnOiAweDg3OTgsCi0gICdP
UF9NT1ZfRVhUJzogMHg4Nzk5LAotICAnT1VUUFVUX1ZFUlRFWF9FWFQnOiAweDg3OUEsCi0gICdP
VVRQVVRfQ09MT1IwX0VYVCc6IDB4ODc5QiwKLSAgJ09VVFBVVF9DT0xPUjFfRVhUJzogMHg4NzlD
LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQwX0VYVCc6IDB4ODc5RCwKLSAgJ09VVFBVVF9URVhU
VVJFX0NPT1JEMV9FWFQnOiAweDg3OUUsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDJfRVhUJzog
MHg4NzlGLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQzX0VYVCc6IDB4ODdBMCwKLSAgJ09VVFBV
VF9URVhUVVJFX0NPT1JENF9FWFQnOiAweDg3QTEsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDVf
RVhUJzogMHg4N0EyLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ2X0VYVCc6IDB4ODdBMywKLSAg
J09VVFBVVF9URVhUVVJFX0NPT1JEN19FWFQnOiAweDg3QTQsCi0gICdPVVRQVVRfVEVYVFVSRV9D
T09SRDhfRVhUJzogMHg4N0E1LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ5X0VYVCc6IDB4ODdB
NiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTBfRVhUJzogMHg4N0E3LAotICAnT1VUUFVUX1RF
WFRVUkVfQ09PUkQxMV9FWFQnOiAweDg3QTgsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDEyX0VY
VCc6IDB4ODdBOSwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTNfRVhUJzogMHg4N0FBLAotICAn
T1VUUFVUX1RFWFRVUkVfQ09PUkQxNF9FWFQnOiAweDg3QUIsCi0gICdPVVRQVVRfVEVYVFVSRV9D
T09SRDE1X0VYVCc6IDB4ODdBQywKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTZfRVhUJzogMHg4
N0FELAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxN19FWFQnOiAweDg3QUUsCi0gICdPVVRQVVRf
VEVYVFVSRV9DT09SRDE4X0VYVCc6IDB4ODdBRiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTlf
RVhUJzogMHg4N0IwLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyMF9FWFQnOiAweDg3QjEsCi0g
ICdPVVRQVVRfVEVYVFVSRV9DT09SRDIxX0VYVCc6IDB4ODdCMiwKLSAgJ09VVFBVVF9URVhUVVJF
X0NPT1JEMjJfRVhUJzogMHg4N0IzLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyM19FWFQnOiAw
eDg3QjQsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDI0X0VYVCc6IDB4ODdCNSwKLSAgJ09VVFBV
VF9URVhUVVJFX0NPT1JEMjVfRVhUJzogMHg4N0I2LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQy
Nl9FWFQnOiAweDg3QjcsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDI3X0VYVCc6IDB4ODdCOCwK
LSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjhfRVhUJzogMHg4N0I5LAotICAnT1VUUFVUX1RFWFRV
UkVfQ09PUkQyOV9FWFQnOiAweDg3QkEsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDMwX0VYVCc6
IDB4ODdCQiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMzFfRVhUJzogMHg4N0JDLAotICAnT1VU
UFVUX0ZPR19FWFQnOiAweDg3QkQsCi0gICdTQ0FMQVJfRVhUJzogMHg4N0JFLAotICAnVkVDVE9S
X0VYVCc6IDB4ODdCRiwKLSAgJ01BVFJJWF9FWFQnOiAweDg3QzAsCi0gICdWQVJJQU5UX0VYVCc6
IDB4ODdDMSwKLSAgJ0lOVkFSSUFOVF9FWFQnOiAweDg3QzIsCi0gICdMT0NBTF9DT05TVEFOVF9F
WFQnOiAweDg3QzMsCi0gICdMT0NBTF9FWFQnOiAweDg3QzQsCi0gICdNQVhfVkVSVEVYX1NIQURF
Ul9JTlNUUlVDVElPTlNfRVhUJzogMHg4N0M1LAotICAnTUFYX1ZFUlRFWF9TSEFERVJfVkFSSUFO
VFNfRVhUJzogMHg4N0M2LAotICAnTUFYX1ZFUlRFWF9TSEFERVJfSU5WQVJJQU5UU19FWFQnOiAw
eDg3QzcsCi0gICdNQVhfVkVSVEVYX1NIQURFUl9MT0NBTF9DT05TVEFOVFNfRVhUJzogMHg4N0M4
LAotICAnTUFYX1ZFUlRFWF9TSEFERVJfTE9DQUxTX0VYVCc6IDB4ODdDOSwKLSAgJ01BWF9PUFRJ
TUlaRURfVkVSVEVYX1NIQURFUl9JTlNUUlVDVElPTlNfRVhUJzogMHg4N0NBLAotICAnTUFYX09Q
VElNSVpFRF9WRVJURVhfU0hBREVSX1ZBUklBTlRTX0VYVCc6IDB4ODdDQiwKLSAgJ01BWF9PUFRJ
TUlaRURfVkVSVEVYX1NIQURFUl9JTlZBUklBTlRTX0VYVCc6IDB4ODdDQywKLSAgJ01BWF9PUFRJ
TUlaRURfVkVSVEVYX1NIQURFUl9MT0NBTF9DT05TVEFOVFNfRVhUJzogMHg4N0NELAotICAnTUFY
X09QVElNSVpFRF9WRVJURVhfU0hBREVSX0xPQ0FMU19FWFQnOiAweDg3Q0UsCi0gICdWRVJURVhf
U0hBREVSX0lOU1RSVUNUSU9OU19FWFQnOiAweDg3Q0YsCi0gICdWRVJURVhfU0hBREVSX1ZBUklB
TlRTX0VYVCc6IDB4ODdEMCwKLSAgJ1ZFUlRFWF9TSEFERVJfSU5WQVJJQU5UU19FWFQnOiAweDg3
RDEsCi0gICdWRVJURVhfU0hBREVSX0xPQ0FMX0NPTlNUQU5UU19FWFQnOiAweDg3RDIsCi0gICdW
RVJURVhfU0hBREVSX0xPQ0FMU19FWFQnOiAweDg3RDMsCi0gICdWRVJURVhfU0hBREVSX09QVElN
SVpFRF9FWFQnOiAweDg3RDQsCi0gICdYX0VYVCc6IDB4ODdENSwKLSAgJ1lfRVhUJzogMHg4N0Q2
LAotICAnWl9FWFQnOiAweDg3RDcsCi0gICdXX0VYVCc6IDB4ODdEOCwKLSAgJ05FR0FUSVZFX1hf
RVhUJzogMHg4N0Q5LAotICAnTkVHQVRJVkVfWV9FWFQnOiAweDg3REEsCi0gICdORUdBVElWRV9a
X0VYVCc6IDB4ODdEQiwKLSAgJ05FR0FUSVZFX1dfRVhUJzogMHg4N0RDLAotICAnWkVST19FWFQn
OiAweDg3REQsCi0gICdPTkVfRVhUJzogMHg4N0RFLAotICAnTkVHQVRJVkVfT05FX0VYVCc6IDB4
ODdERiwKLSAgJ05PUk1BTElaRURfUkFOR0VfRVhUJzogMHg4N0UwLAotICAnRlVMTF9SQU5HRV9F
WFQnOiAweDg3RTEsCi0gICdDVVJSRU5UX1ZFUlRFWF9FWFQnOiAweDg3RTIsCi0gICdNVlBfTUFU
UklYX0VYVCc6IDB4ODdFMywKLSAgJ1ZBUklBTlRfVkFMVUVfRVhUJzogMHg4N0U0LAotICAnVkFS
SUFOVF9EQVRBVFlQRV9FWFQnOiAweDg3RTUsCi0gICdWQVJJQU5UX0FSUkFZX1NUUklERV9FWFQn
OiAweDg3RTYsCi0gICdWQVJJQU5UX0FSUkFZX1RZUEVfRVhUJzogMHg4N0U3LAotICAnVkFSSUFO
VF9BUlJBWV9FWFQnOiAweDg3RTgsCi0gICdWQVJJQU5UX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4
N0U5LAotICAnSU5WQVJJQU5UX1ZBTFVFX0VYVCc6IDB4ODdFQSwKLSAgJ0lOVkFSSUFOVF9EQVRB
VFlQRV9FWFQnOiAweDg3RUIsCi0gICdMT0NBTF9DT05TVEFOVF9WQUxVRV9FWFQnOiAweDg3RUMs
Ci0gICdMT0NBTF9DT05TVEFOVF9EQVRBVFlQRV9FWFQnOiAweDg3RUQsCi0gICdNT0RFTFZJRVcw
X1NUQUNLX0RFUFRIX0VYVCc6IDB4MEJBMywKLSAgJ01PREVMVklFVzBfTUFUUklYX0VYVCc6IDB4
MEJBNiwKLSAgJ01PREVMVklFVzBfRVhUJzogMHgxNzAwLAotICAnTU9ERUxWSUVXMV9TVEFDS19E
RVBUSF9FWFQnOiAweDg1MDIsCi0gICdNT0RFTFZJRVcxX01BVFJJWF9FWFQnOiAweDg1MDYsCi0g
ICdWRVJURVhfV0VJR0hUSU5HX0VYVCc6IDB4ODUwOSwKLSAgJ01PREVMVklFVzFfRVhUJzogMHg4
NTBBLAotICAnQ1VSUkVOVF9WRVJURVhfV0VJR0hUX0VYVCc6IDB4ODUwQiwKLSAgJ1ZFUlRFWF9X
RUlHSFRfQVJSQVlfRVhUJzogMHg4NTBDLAotICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9TSVpFX0VY
VCc6IDB4ODUwRCwKLSAgJ1ZFUlRFWF9XRUlHSFRfQVJSQVlfVFlQRV9FWFQnOiAweDg1MEUsCi0g
ICdWRVJURVhfV0VJR0hUX0FSUkFZX1NUUklERV9FWFQnOiAweDg1MEYsCi0gICdWRVJURVhfV0VJ
R0hUX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4NTEwLAotICAnT0NDTFVTSU9OX1RFU1RfSFAnOiAw
eDgxNjUsCi0gICdPQ0NMVVNJT05fVEVTVF9SRVNVTFRfSFAnOiAweDgxNjYsCi0gICdNSVJST1JF
RF9SRVBFQVRfSUJNJzogMHg4MzcwLAotICAnUkVEX01JTl9DTEFNUF9JTkdSJzogMHg4NTYwLAot
ICAnR1JFRU5fTUlOX0NMQU1QX0lOR1InOiAweDg1NjEsCi0gICdCTFVFX01JTl9DTEFNUF9JTkdS
JzogMHg4NTYyLAotICAnQUxQSEFfTUlOX0NMQU1QX0lOR1InOiAweDg1NjMsCi0gICdSRURfTUFY
X0NMQU1QX0lOR1InOiAweDg1NjQsCi0gICdHUkVFTl9NQVhfQ0xBTVBfSU5HUic6IDB4ODU2NSwK
LSAgJ0JMVUVfTUFYX0NMQU1QX0lOR1InOiAweDg1NjYsCi0gICdBTFBIQV9NQVhfQ0xBTVBfSU5H
Uic6IDB4ODU2NywKLSAgJ0lOVEVSTEFDRV9SRUFEX0lOR1InOiAweDg1NjgsCi0gICdQQVJBTExF
TF9BUlJBWVNfSU5URUwnOiAweDgzRjQsCi0gICdWRVJURVhfQVJSQVlfUEFSQUxMRUxfUE9JTlRF
UlNfSU5URUwnOiAweDgzRjUsCi0gICdOT1JNQUxfQVJSQVlfUEFSQUxMRUxfUE9JTlRFUlNfSU5U
RUwnOiAweDgzRjYsCi0gICdDT0xPUl9BUlJBWV9QQVJBTExFTF9QT0lOVEVSU19JTlRFTCc6IDB4
ODNGNywKLSAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfUEFSQUxMRUxfUE9JTlRFUlNfSU5URUwnOiAw
eDgzRjgsCi0gICdLVFhfRlJPTlRfUkVHSU9OJzogMHgwLAotICAnS1RYX0JBQ0tfUkVHSU9OJzog
MHgxLAotICAnS1RYX1pfUkVHSU9OJzogMHgyLAotICAnS1RYX1NURU5DSUxfUkVHSU9OJzogMHgz
LAotICAnVEVYVFVSRV8xRF9TVEFDS19NRVNBWCc6IDB4ODc1OSwKLSAgJ1RFWFRVUkVfMkRfU1RB
Q0tfTUVTQVgnOiAweDg3NUEsCi0gICdQUk9YWV9URVhUVVJFXzFEX1NUQUNLX01FU0FYJzogMHg4
NzVCLAotICAnUFJPWFlfVEVYVFVSRV8yRF9TVEFDS19NRVNBWCc6IDB4ODc1QywKLSAgJ1RFWFRV
UkVfMURfU1RBQ0tfQklORElOR19NRVNBWCc6IDB4ODc1RCwKLSAgJ1RFWFRVUkVfMkRfU1RBQ0tf
QklORElOR19NRVNBWCc6IDB4ODc1RSwKLSAgJ1BBQ0tfSU5WRVJUX01FU0EnOiAweDg3NTgsCi0g
ICdVTlNJR05FRF9TSE9SVF84XzhfTUVTQSc6IDB4ODVCQSwKLSAgJ1VOU0lHTkVEX1NIT1JUXzhf
OF9SRVZfTUVTQSc6IDB4ODVCQiwKLSAgJ1lDQkNSX01FU0EnOiAweDg3NTcsCi0gICdRVUVSWV9X
QUlUX05WJzogMHg4RTEzLAotICAnUVVFUllfTk9fV0FJVF9OVic6IDB4OEUxNCwKLSAgJ1FVRVJZ
X0JZX1JFR0lPTl9XQUlUX05WJzogMHg4RTE1LAotICAnUVVFUllfQllfUkVHSU9OX05PX1dBSVRf
TlYnOiAweDhFMTYsCi0gICdERVBUSF9TVEVOQ0lMX1RPX1JHQkFfTlYnOiAweDg4NkUsCi0gICdE
RVBUSF9TVEVOQ0lMX1RPX0JHUkFfTlYnOiAweDg4NkYsCi0gICdERVBUSF9DT01QT05FTlQzMkZf
TlYnOiAweDhEQUIsCi0gICdERVBUSDMyRl9TVEVOQ0lMOF9OVic6IDB4OERBQywKLSAgJ0ZMT0FU
XzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVl9OVic6IDB4OERBRCwKLSAgJ0RFUFRIX0JVRkZFUl9G
TE9BVF9NT0RFX05WJzogMHg4REFGLAotICAnREVQVEhfQ0xBTVBfTlYnOiAweDg2NEYsCi0gICdT
QU1QTEVfQ09VTlRfQklUU19OVic6IDB4ODg2NCwKLSAgJ0NVUlJFTlRfU0FNUExFX0NPVU5UX1FV
RVJZX05WJzogMHg4ODY1LAotICAnUVVFUllfUkVTVUxUX05WJzogMHg4ODY2LAotICAnUVVFUllf
UkVTVUxUX0FWQUlMQUJMRV9OVic6IDB4ODg2NywKLSAgJ1NBTVBMRV9DT1VOVF9OVic6IDB4ODkx
NCwKLSAgJ0VWQUxfMkRfTlYnOiAweDg2QzAsCi0gICdFVkFMX1RSSUFOR1VMQVJfMkRfTlYnOiAw
eDg2QzEsCi0gICdNQVBfVEVTU0VMTEFUSU9OX05WJzogMHg4NkMyLAotICAnTUFQX0FUVFJJQl9V
X09SREVSX05WJzogMHg4NkMzLAotICAnTUFQX0FUVFJJQl9WX09SREVSX05WJzogMHg4NkM0LAot
ICAnRVZBTF9GUkFDVElPTkFMX1RFU1NFTExBVElPTl9OVic6IDB4ODZDNSwKLSAgJ0VWQUxfVkVS
VEVYX0FUVFJJQjBfTlYnOiAweDg2QzYsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxX05WJzogMHg4
NkM3LAotICAnRVZBTF9WRVJURVhfQVRUUklCMl9OVic6IDB4ODZDOCwKLSAgJ0VWQUxfVkVSVEVY
X0FUVFJJQjNfTlYnOiAweDg2QzksCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUI0X05WJzogMHg4NkNB
LAotICAnRVZBTF9WRVJURVhfQVRUUklCNV9OVic6IDB4ODZDQiwKLSAgJ0VWQUxfVkVSVEVYX0FU
VFJJQjZfTlYnOiAweDg2Q0MsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUI3X05WJzogMHg4NkNELAot
ICAnRVZBTF9WRVJURVhfQVRUUklCOF9OVic6IDB4ODZDRSwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJ
QjlfTlYnOiAweDg2Q0YsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxMF9OVic6IDB4ODZEMCwKLSAg
J0VWQUxfVkVSVEVYX0FUVFJJQjExX05WJzogMHg4NkQxLAotICAnRVZBTF9WRVJURVhfQVRUUklC
MTJfTlYnOiAweDg2RDIsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxM19OVic6IDB4ODZEMywKLSAg
J0VWQUxfVkVSVEVYX0FUVFJJQjE0X05WJzogMHg4NkQ0LAotICAnRVZBTF9WRVJURVhfQVRUUklC
MTVfTlYnOiAweDg2RDUsCi0gICdNQVhfTUFQX1RFU1NFTExBVElPTl9OVic6IDB4ODZENiwKLSAg
J01BWF9SQVRJT05BTF9FVkFMX09SREVSX05WJzogMHg4NkQ3LAotICAnU0FNUExFX1BPU0lUSU9O
X05WJzogMHg4RTUwLAotICAnU0FNUExFX01BU0tfTlYnOiAweDhFNTEsCi0gICdTQU1QTEVfTUFT
S19WQUxVRV9OVic6IDB4OEU1MiwKLSAgJ1RFWFRVUkVfQklORElOR19SRU5ERVJCVUZGRVJfTlYn
OiAweDhFNTMsCi0gICdURVhUVVJFX1JFTkRFUkJVRkZFUl9EQVRBX1NUT1JFX0JJTkRJTkdfTlYn
OiAweDhFNTQsCi0gICdURVhUVVJFX1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1NSwKLSAgJ1NBTVBM
RVJfUkVOREVSQlVGRkVSX05WJzogMHg4RTU2LAotICAnSU5UX1NBTVBMRVJfUkVOREVSQlVGRkVS
X05WJzogMHg4RTU3LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfUkVOREVSQlVGRkVSX05WJzog
MHg4RTU4LAotICAnTUFYX1NBTVBMRV9NQVNLX1dPUkRTX05WJzogMHg4RTU5LAotICAnQUxMX0NP
TVBMRVRFRF9OVic6IDB4ODRGMiwKLSAgJ0ZFTkNFX1NUQVRVU19OVic6IDB4ODRGMywKLSAgJ0ZF
TkNFX0NPTkRJVElPTl9OVic6IDB4ODRGNCwKLSAgJ0ZMT0FUX1JfTlYnOiAweDg4ODAsCi0gICdG
TE9BVF9SR19OVic6IDB4ODg4MSwKLSAgJ0ZMT0FUX1JHQl9OVic6IDB4ODg4MiwKLSAgJ0ZMT0FU
X1JHQkFfTlYnOiAweDg4ODMsCi0gICdGTE9BVF9SMTZfTlYnOiAweDg4ODQsCi0gICdGTE9BVF9S
MzJfTlYnOiAweDg4ODUsCi0gICdGTE9BVF9SRzE2X05WJzogMHg4ODg2LAotICAnRkxPQVRfUkcz
Ml9OVic6IDB4ODg4NywKLSAgJ0ZMT0FUX1JHQjE2X05WJzogMHg4ODg4LAotICAnRkxPQVRfUkdC
MzJfTlYnOiAweDg4ODksCi0gICdGTE9BVF9SR0JBMTZfTlYnOiAweDg4OEEsCi0gICdGTE9BVF9S
R0JBMzJfTlYnOiAweDg4OEIsCi0gICdURVhUVVJFX0ZMT0FUX0NPTVBPTkVOVFNfTlYnOiAweDg4
OEMsCi0gICdGTE9BVF9DTEVBUl9DT0xPUl9WQUxVRV9OVic6IDB4ODg4RCwKLSAgJ0ZMT0FUX1JH
QkFfTU9ERV9OVic6IDB4ODg4RSwKLSAgJ0ZPR19ESVNUQU5DRV9NT0RFX05WJzogMHg4NTVBLAot
ICAnRVlFX1JBRElBTF9OVic6IDB4ODU1QiwKLSAgJ0VZRV9QTEFORV9BQlNPTFVURV9OVic6IDB4
ODU1QywKLSAgJ01BWF9GUkFHTUVOVF9QUk9HUkFNX0xPQ0FMX1BBUkFNRVRFUlNfTlYnOiAweDg4
NjgsCi0gICdGUkFHTUVOVF9QUk9HUkFNX05WJzogMHg4ODcwLAotICAnTUFYX1RFWFRVUkVfQ09P
UkRTX05WJzogMHg4ODcxLAotICAnTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFNfTlYnOiAweDg4NzIs
Ci0gICdGUkFHTUVOVF9QUk9HUkFNX0JJTkRJTkdfTlYnOiAweDg4NzMsCi0gICdQUk9HUkFNX0VS
Uk9SX1NUUklOR19OVic6IDB4ODg3NCwKLSAgJ01BWF9QUk9HUkFNX0VYRUNfSU5TVFJVQ1RJT05T
X05WJzogMHg4OEY0LAotICAnTUFYX1BST0dSQU1fQ0FMTF9ERVBUSF9OVic6IDB4ODhGNSwKLSAg
J01BWF9QUk9HUkFNX0lGX0RFUFRIX05WJzogMHg4OEY2LAotICAnTUFYX1BST0dSQU1fTE9PUF9E
RVBUSF9OVic6IDB4ODhGNywKLSAgJ01BWF9QUk9HUkFNX0xPT1BfQ09VTlRfTlYnOiAweDg4Rjgs
Ci0gICdSRU5ERVJCVUZGRVJfQ09WRVJBR0VfU0FNUExFU19OVic6IDB4OENBQiwKLSAgJ1JFTkRF
UkJVRkZFUl9DT0xPUl9TQU1QTEVTX05WJzogMHg4RTEwLAotICAnTUFYX01VTFRJU0FNUExFX0NP
VkVSQUdFX01PREVTX05WJzogMHg4RTExLAotICAnTVVMVElTQU1QTEVfQ09WRVJBR0VfTU9ERVNf
TlYnOiAweDhFMTIsCi0gICdHRU9NRVRSWV9QUk9HUkFNX05WJzogMHg4QzI2LAotICAnTUFYX1BS
T0dSQU1fT1VUUFVUX1ZFUlRJQ0VTX05WJzogMHg4QzI3LAotICAnTUFYX1BST0dSQU1fVE9UQUxf
T1VUUFVUX0NPTVBPTkVOVFNfTlYnOiAweDhDMjgsCi0gICdNSU5fUFJPR1JBTV9URVhFTF9PRkZT
RVRfTlYnOiAweDg5MDQsCi0gICdNQVhfUFJPR1JBTV9URVhFTF9PRkZTRVRfTlYnOiAweDg5MDUs
Ci0gICdQUk9HUkFNX0FUVFJJQl9DT01QT05FTlRTX05WJzogMHg4OTA2LAotICAnUFJPR1JBTV9S
RVNVTFRfQ09NUE9ORU5UU19OVic6IDB4ODkwNywKLSAgJ01BWF9QUk9HUkFNX0FUVFJJQl9DT01Q
T05FTlRTX05WJzogMHg4OTA4LAotICAnTUFYX1BST0dSQU1fUkVTVUxUX0NPTVBPTkVOVFNfTlYn
OiAweDg5MDksCi0gICdNQVhfUFJPR1JBTV9HRU5FUklDX0FUVFJJQlNfTlYnOiAweDhEQTUsCi0g
ICdNQVhfUFJPR1JBTV9HRU5FUklDX1JFU1VMVFNfTlYnOiAweDhEQTYsCi0gICdIQUxGX0ZMT0FU
X05WJzogMHgxNDBCLAotICAnTUFYX1NISU5JTkVTU19OVic6IDB4ODUwNCwKLSAgJ01BWF9TUE9U
X0VYUE9ORU5UX05WJzogMHg4NTA1LAotICAnTVVMVElTQU1QTEVfRklMVEVSX0hJTlRfTlYnOiAw
eDg1MzQsCi0gICdQSVhFTF9DT1VOVEVSX0JJVFNfTlYnOiAweDg4NjQsCi0gICdDVVJSRU5UX09D
Q0xVU0lPTl9RVUVSWV9JRF9OVic6IDB4ODg2NSwKLSAgJ1BJWEVMX0NPVU5UX05WJzogMHg4ODY2
LAotICAnUElYRUxfQ09VTlRfQVZBSUxBQkxFX05WJzogMHg4ODY3LAotICAnREVQVEhfU1RFTkNJ
TF9OVic6IDB4ODRGOSwKLSAgJ1VOU0lHTkVEX0lOVF8yNF84X05WJzogMHg4NEZBLAotICAnTUFY
X1BST0dSQU1fUEFSQU1FVEVSX0JVRkZFUl9CSU5ESU5HU19OVic6IDB4OERBMCwKLSAgJ01BWF9Q
Uk9HUkFNX1BBUkFNRVRFUl9CVUZGRVJfU0laRV9OVic6IDB4OERBMSwKLSAgJ1ZFUlRFWF9QUk9H
UkFNX1BBUkFNRVRFUl9CVUZGRVJfTlYnOiAweDhEQTIsCi0gICdHRU9NRVRSWV9QUk9HUkFNX1BB
UkFNRVRFUl9CVUZGRVJfTlYnOiAweDhEQTMsCi0gICdGUkFHTUVOVF9QUk9HUkFNX1BBUkFNRVRF
Ul9CVUZGRVJfTlYnOiAweDhEQTQsCi0gICdXUklURV9QSVhFTF9EQVRBX1JBTkdFX05WJzogMHg4
ODc4LAotICAnUkVBRF9QSVhFTF9EQVRBX1JBTkdFX05WJzogMHg4ODc5LAotICAnV1JJVEVfUElY
RUxfREFUQV9SQU5HRV9MRU5HVEhfTlYnOiAweDg4N0EsCi0gICdSRUFEX1BJWEVMX0RBVEFfUkFO
R0VfTEVOR1RIX05WJzogMHg4ODdCLAotICAnV1JJVEVfUElYRUxfREFUQV9SQU5HRV9QT0lOVEVS
X05WJzogMHg4ODdDLAotICAnUkVBRF9QSVhFTF9EQVRBX1JBTkdFX1BPSU5URVJfTlYnOiAweDg4
N0QsCi0gICdQT0lOVF9TUFJJVEVfTlYnOiAweDg4NjEsCi0gICdDT09SRF9SRVBMQUNFX05WJzog
MHg4ODYyLAotICAnUE9JTlRfU1BSSVRFX1JfTU9ERV9OVic6IDB4ODg2MywKLSAgJ0ZSQU1FX05W
JzogMHg4RTI2LAotICAnRklFTERTX05WJzogMHg4RTI3LAotICAnQ1VSUkVOVF9USU1FX05WJzog
MHg4RTI4LAotICAnTlVNX0ZJTExfU1RSRUFNU19OVic6IDB4OEUyOSwKLSAgJ1BSRVNFTlRfVElN
RV9OVic6IDB4OEUyQSwKLSAgJ1BSRVNFTlRfRFVSQVRJT05fTlYnOiAweDhFMkIsCi0gICdQUklN
SVRJVkVfUkVTVEFSVF9OVic6IDB4ODU1OCwKLSAgJ1BSSU1JVElWRV9SRVNUQVJUX0lOREVYX05W
JzogMHg4NTU5LAotICAnUkVHSVNURVJfQ09NQklORVJTX05WJzogMHg4NTIyLAotICAnVkFSSUFC
TEVfQV9OVic6IDB4ODUyMywKLSAgJ1ZBUklBQkxFX0JfTlYnOiAweDg1MjQsCi0gICdWQVJJQUJM
RV9DX05WJzogMHg4NTI1LAotICAnVkFSSUFCTEVfRF9OVic6IDB4ODUyNiwKLSAgJ1ZBUklBQkxF
X0VfTlYnOiAweDg1MjcsCi0gICdWQVJJQUJMRV9GX05WJzogMHg4NTI4LAotICAnVkFSSUFCTEVf
R19OVic6IDB4ODUyOSwKLSAgJ0NPTlNUQU5UX0NPTE9SMF9OVic6IDB4ODUyQSwKLSAgJ0NPTlNU
QU5UX0NPTE9SMV9OVic6IDB4ODUyQiwKLSAgJ1BSSU1BUllfQ09MT1JfTlYnOiAweDg1MkMsCi0g
ICdTRUNPTkRBUllfQ09MT1JfTlYnOiAweDg1MkQsCi0gICdTUEFSRTBfTlYnOiAweDg1MkUsCi0g
ICdTUEFSRTFfTlYnOiAweDg1MkYsCi0gICdESVNDQVJEX05WJzogMHg4NTMwLAotICAnRV9USU1F
U19GX05WJzogMHg4NTMxLAotICAnU1BBUkUwX1BMVVNfU0VDT05EQVJZX0NPTE9SX05WJzogMHg4
NTMyLAotICAnVU5TSUdORURfSURFTlRJVFlfTlYnOiAweDg1MzYsCi0gICdVTlNJR05FRF9JTlZF
UlRfTlYnOiAweDg1MzcsCi0gICdFWFBBTkRfTk9STUFMX05WJzogMHg4NTM4LAotICAnRVhQQU5E
X05FR0FURV9OVic6IDB4ODUzOSwKLSAgJ0hBTEZfQklBU19OT1JNQUxfTlYnOiAweDg1M0EsCi0g
ICdIQUxGX0JJQVNfTkVHQVRFX05WJzogMHg4NTNCLAotICAnU0lHTkVEX0lERU5USVRZX05WJzog
MHg4NTNDLAotICAnU0lHTkVEX05FR0FURV9OVic6IDB4ODUzRCwKLSAgJ1NDQUxFX0JZX1RXT19O
Vic6IDB4ODUzRSwKLSAgJ1NDQUxFX0JZX0ZPVVJfTlYnOiAweDg1M0YsCi0gICdTQ0FMRV9CWV9P
TkVfSEFMRl9OVic6IDB4ODU0MCwKLSAgJ0JJQVNfQllfTkVHQVRJVkVfT05FX0hBTEZfTlYnOiAw
eDg1NDEsCi0gICdDT01CSU5FUl9JTlBVVF9OVic6IDB4ODU0MiwKLSAgJ0NPTUJJTkVSX01BUFBJ
TkdfTlYnOiAweDg1NDMsCi0gICdDT01CSU5FUl9DT01QT05FTlRfVVNBR0VfTlYnOiAweDg1NDQs
Ci0gICdDT01CSU5FUl9BQl9ET1RfUFJPRFVDVF9OVic6IDB4ODU0NSwKLSAgJ0NPTUJJTkVSX0NE
X0RPVF9QUk9EVUNUX05WJzogMHg4NTQ2LAotICAnQ09NQklORVJfTVVYX1NVTV9OVic6IDB4ODU0
NywKLSAgJ0NPTUJJTkVSX1NDQUxFX05WJzogMHg4NTQ4LAotICAnQ09NQklORVJfQklBU19OVic6
IDB4ODU0OSwKLSAgJ0NPTUJJTkVSX0FCX09VVFBVVF9OVic6IDB4ODU0QSwKLSAgJ0NPTUJJTkVS
X0NEX09VVFBVVF9OVic6IDB4ODU0QiwKLSAgJ0NPTUJJTkVSX1NVTV9PVVRQVVRfTlYnOiAweDg1
NEMsCi0gICdNQVhfR0VORVJBTF9DT01CSU5FUlNfTlYnOiAweDg1NEQsCi0gICdOVU1fR0VORVJB
TF9DT01CSU5FUlNfTlYnOiAweDg1NEUsCi0gICdDT0xPUl9TVU1fQ0xBTVBfTlYnOiAweDg1NEYs
Ci0gICdDT01CSU5FUjBfTlYnOiAweDg1NTAsCi0gICdDT01CSU5FUjFfTlYnOiAweDg1NTEsCi0g
ICdDT01CSU5FUjJfTlYnOiAweDg1NTIsCi0gICdDT01CSU5FUjNfTlYnOiAweDg1NTMsCi0gICdD
T01CSU5FUjRfTlYnOiAweDg1NTQsCi0gICdDT01CSU5FUjVfTlYnOiAweDg1NTUsCi0gICdDT01C
SU5FUjZfTlYnOiAweDg1NTYsCi0gICdDT01CSU5FUjdfTlYnOiAweDg1NTcsCi0gICdQRVJfU1RB
R0VfQ09OU1RBTlRTX05WJzogMHg4NTM1LAotICAnRU1CT1NTX0xJR0hUX05WJzogMHg4NTVELAot
ICAnRU1CT1NTX0NPTlNUQU5UX05WJzogMHg4NTVFLAotICAnRU1CT1NTX01BUF9OVic6IDB4ODU1
RiwKLSAgJ05PUk1BTF9NQVBfTlYnOiAweDg1MTEsCi0gICdSRUZMRUNUSU9OX01BUF9OVic6IDB4
ODUxMiwKLSAgJ0NPTUJJTkU0X05WJzogMHg4NTAzLAotICAnU09VUkNFM19SR0JfTlYnOiAweDg1
ODMsCi0gICdTT1VSQ0UzX0FMUEhBX05WJzogMHg4NThCLAotICAnT1BFUkFORDNfUkdCX05WJzog
MHg4NTkzLAotICAnT1BFUkFORDNfQUxQSEFfTlYnOiAweDg1OUIsCi0gICdURVhUVVJFX1VOU0lH
TkVEX1JFTUFQX01PREVfTlYnOiAweDg4OEYsCi0gICdURVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4
ODRGNSwKLSAgJ1RFWFRVUkVfQklORElOR19SRUNUQU5HTEVfTlYnOiAweDg0RjYsCi0gICdQUk9Y
WV9URVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODRGNywKLSAgJ01BWF9SRUNUQU5HTEVfVEVYVFVS
RV9TSVpFX05WJzogMHg4NEY4LAotICAnT0ZGU0VUX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4
NjRDLAotICAnT0ZGU0VUX1RFWFRVUkVfUkVDVEFOR0xFX1NDQUxFX05WJzogMHg4NjRELAotICAn
RE9UX1BST0RVQ1RfVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAweDg2NEUsCi0gICdSR0JBX1VOU0lH
TkVEX0RPVF9QUk9EVUNUX01BUFBJTkdfTlYnOiAweDg2RDksCi0gICdVTlNJR05FRF9JTlRfUzhf
UzhfOF84X05WJzogMHg4NkRBLAotICAnVU5TSUdORURfSU5UXzhfOF9TOF9TOF9SRVZfTlYnOiAw
eDg2REIsCi0gICdEU0RUX01BR19JTlRFTlNJVFlfTlYnOiAweDg2REMsCi0gICdTSEFERVJfQ09O
U0lTVEVOVF9OVic6IDB4ODZERCwKLSAgJ1RFWFRVUkVfU0hBREVSX05WJzogMHg4NkRFLAotICAn
U0hBREVSX09QRVJBVElPTl9OVic6IDB4ODZERiwKLSAgJ0NVTExfTU9ERVNfTlYnOiAweDg2RTAs
Ci0gICdPRkZTRVRfVEVYVFVSRV8yRF9NQVRSSVhfTlYnOiAweDg2RTEsCi0gICdPRkZTRVRfVEVY
VFVSRV9NQVRSSVhfTlYnOiAweDg2RTEsCi0gICdPRkZTRVRfVEVYVFVSRV8yRF9TQ0FMRV9OVic6
IDB4ODZFMiwKLSAgJ09GRlNFVF9URVhUVVJFX1NDQUxFX05WJzogMHg4NkUyLAotICAnT0ZGU0VU
X1RFWFRVUkVfQklBU19OVic6IDB4ODZFMywKLSAgJ09GRlNFVF9URVhUVVJFXzJEX0JJQVNfTlYn
OiAweDg2RTMsCi0gICdQUkVWSU9VU19URVhUVVJFX0lOUFVUX05WJzogMHg4NkU0LAotICAnQ09O
U1RfRVlFX05WJzogMHg4NkU1LAotICAnUEFTU19USFJPVUdIX05WJzogMHg4NkU2LAotICAnQ1VM
TF9GUkFHTUVOVF9OVic6IDB4ODZFNywKLSAgJ09GRlNFVF9URVhUVVJFXzJEX05WJzogMHg4NkU4
LAotICAnREVQRU5ERU5UX0FSX1RFWFRVUkVfMkRfTlYnOiAweDg2RTksCi0gICdERVBFTkRFTlRf
R0JfVEVYVFVSRV8yRF9OVic6IDB4ODZFQSwKLSAgJ0RPVF9QUk9EVUNUX05WJzogMHg4NkVDLAot
ICAnRE9UX1BST0RVQ1RfREVQVEhfUkVQTEFDRV9OVic6IDB4ODZFRCwKLSAgJ0RPVF9QUk9EVUNU
X1RFWFRVUkVfMkRfTlYnOiAweDg2RUUsCi0gICdET1RfUFJPRFVDVF9URVhUVVJFX0NVQkVfTUFQ
X05WJzogMHg4NkYwLAotICAnRE9UX1BST0RVQ1RfRElGRlVTRV9DVUJFX01BUF9OVic6IDB4ODZG
MSwKLSAgJ0RPVF9QUk9EVUNUX1JFRkxFQ1RfQ1VCRV9NQVBfTlYnOiAweDg2RjIsCi0gICdET1Rf
UFJPRFVDVF9DT05TVF9FWUVfUkVGTEVDVF9DVUJFX01BUF9OVic6IDB4ODZGMywKLSAgJ0hJTE9f
TlYnOiAweDg2RjQsCi0gICdEU0RUX05WJzogMHg4NkY1LAotICAnRFNEVF9NQUdfTlYnOiAweDg2
RjYsCi0gICdEU0RUX01BR19WSUJfTlYnOiAweDg2RjcsCi0gICdISUxPMTZfTlYnOiAweDg2Rjgs
Ci0gICdTSUdORURfSElMT19OVic6IDB4ODZGOSwKLSAgJ1NJR05FRF9ISUxPMTZfTlYnOiAweDg2
RkEsCi0gICdTSUdORURfUkdCQV9OVic6IDB4ODZGQiwKLSAgJ1NJR05FRF9SR0JBOF9OVic6IDB4
ODZGQywKLSAgJ1NJR05FRF9SR0JfTlYnOiAweDg2RkUsCi0gICdTSUdORURfUkdCOF9OVic6IDB4
ODZGRiwKLSAgJ1NJR05FRF9MVU1JTkFOQ0VfTlYnOiAweDg3MDEsCi0gICdTSUdORURfTFVNSU5B
TkNFOF9OVic6IDB4ODcwMiwKLSAgJ1NJR05FRF9MVU1JTkFOQ0VfQUxQSEFfTlYnOiAweDg3MDMs
Ci0gICdTSUdORURfTFVNSU5BTkNFOF9BTFBIQThfTlYnOiAweDg3MDQsCi0gICdTSUdORURfQUxQ
SEFfTlYnOiAweDg3MDUsCi0gICdTSUdORURfQUxQSEE4X05WJzogMHg4NzA2LAotICAnU0lHTkVE
X0lOVEVOU0lUWV9OVic6IDB4ODcwNywKLSAgJ1NJR05FRF9JTlRFTlNJVFk4X05WJzogMHg4NzA4
LAotICAnRFNEVDhfTlYnOiAweDg3MDksCi0gICdEU0RUOF9NQUc4X05WJzogMHg4NzBBLAotICAn
RFNEVDhfTUFHOF9JTlRFTlNJVFk4X05WJzogMHg4NzBCLAotICAnU0lHTkVEX1JHQl9VTlNJR05F
RF9BTFBIQV9OVic6IDB4ODcwQywKLSAgJ1NJR05FRF9SR0I4X1VOU0lHTkVEX0FMUEhBOF9OVic6
IDB4ODcwRCwKLSAgJ0hJX1NDQUxFX05WJzogMHg4NzBFLAotICAnTE9fU0NBTEVfTlYnOiAweDg3
MEYsCi0gICdEU19TQ0FMRV9OVic6IDB4ODcxMCwKLSAgJ0RUX1NDQUxFX05WJzogMHg4NzExLAot
ICAnTUFHTklUVURFX1NDQUxFX05WJzogMHg4NzEyLAotICAnVklCUkFOQ0VfU0NBTEVfTlYnOiAw
eDg3MTMsCi0gICdISV9CSUFTX05WJzogMHg4NzE0LAotICAnTE9fQklBU19OVic6IDB4ODcxNSwK
LSAgJ0RTX0JJQVNfTlYnOiAweDg3MTYsCi0gICdEVF9CSUFTX05WJzogMHg4NzE3LAotICAnTUFH
TklUVURFX0JJQVNfTlYnOiAweDg3MTgsCi0gICdWSUJSQU5DRV9CSUFTX05WJzogMHg4NzE5LAot
ICAnVEVYVFVSRV9CT1JERVJfVkFMVUVTX05WJzogMHg4NzFBLAotICAnVEVYVFVSRV9ISV9TSVpF
X05WJzogMHg4NzFCLAotICAnVEVYVFVSRV9MT19TSVpFX05WJzogMHg4NzFDLAotICAnVEVYVFVS
RV9EU19TSVpFX05WJzogMHg4NzFELAotICAnVEVYVFVSRV9EVF9TSVpFX05WJzogMHg4NzFFLAot
ICAnVEVYVFVSRV9NQUdfU0laRV9OVic6IDB4ODcxRiwKLSAgJ1VOU0lHTkVEX0lOVF9TOF9TOF84
XzhfTlYnOiAweDg2REEsCi0gICdVTlNJR05FRF9JTlRfOF84X1M4X1M4X1JFVl9OVic6IDB4ODZE
QiwKLSAgJ0RTRFRfTUFHX0lOVEVOU0lUWV9OVic6IDB4ODZEQywKLSAgJ0RPVF9QUk9EVUNUX1RF
WFRVUkVfM0RfTlYnOiAweDg2RUYsCi0gICdISUxPX05WJzogMHg4NkY0LAotICAnRFNEVF9OVic6
IDB4ODZGNSwKLSAgJ0RTRFRfTUFHX05WJzogMHg4NkY2LAotICAnRFNEVF9NQUdfVklCX05WJzog
MHg4NkY3LAotICAnSElMTzE2X05WJzogMHg4NkY4LAotICAnU0lHTkVEX0hJTE9fTlYnOiAweDg2
RjksCi0gICdTSUdORURfSElMTzE2X05WJzogMHg4NkZBLAotICAnU0lHTkVEX1JHQkFfTlYnOiAw
eDg2RkIsCi0gICdTSUdORURfUkdCQThfTlYnOiAweDg2RkMsCi0gICdTSUdORURfUkdCX05WJzog
MHg4NkZFLAotICAnU0lHTkVEX1JHQjhfTlYnOiAweDg2RkYsCi0gICdTSUdORURfTFVNSU5BTkNF
X05WJzogMHg4NzAxLAotICAnU0lHTkVEX0xVTUlOQU5DRThfTlYnOiAweDg3MDIsCi0gICdTSUdO
RURfTFVNSU5BTkNFX0FMUEhBX05WJzogMHg4NzAzLAotICAnU0lHTkVEX0xVTUlOQU5DRThfQUxQ
SEE4X05WJzogMHg4NzA0LAotICAnU0lHTkVEX0FMUEhBX05WJzogMHg4NzA1LAotICAnU0lHTkVE
X0FMUEhBOF9OVic6IDB4ODcwNiwKLSAgJ1NJR05FRF9JTlRFTlNJVFlfTlYnOiAweDg3MDcsCi0g
ICdTSUdORURfSU5URU5TSVRZOF9OVic6IDB4ODcwOCwKLSAgJ0RTRFQ4X05WJzogMHg4NzA5LAot
ICAnRFNEVDhfTUFHOF9OVic6IDB4ODcwQSwKLSAgJ0RTRFQ4X01BRzhfSU5URU5TSVRZOF9OVic6
IDB4ODcwQiwKLSAgJ1NJR05FRF9SR0JfVU5TSUdORURfQUxQSEFfTlYnOiAweDg3MEMsCi0gICdT
SUdORURfUkdCOF9VTlNJR05FRF9BTFBIQThfTlYnOiAweDg3MEQsCi0gICdPRkZTRVRfUFJPSkVD
VElWRV9URVhUVVJFXzJEX05WJzogMHg4ODUwLAotICAnT0ZGU0VUX1BST0pFQ1RJVkVfVEVYVFVS
RV8yRF9TQ0FMRV9OVic6IDB4ODg1MSwKLSAgJ09GRlNFVF9QUk9KRUNUSVZFX1RFWFRVUkVfUkVD
VEFOR0xFX05WJzogMHg4ODUyLAotICAnT0ZGU0VUX1BST0pFQ1RJVkVfVEVYVFVSRV9SRUNUQU5H
TEVfU0NBTEVfTlYnOiAweDg4NTMsCi0gICdPRkZTRVRfSElMT19URVhUVVJFXzJEX05WJzogMHg4
ODU0LAotICAnT0ZGU0VUX0hJTE9fVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAweDg4NTUsCi0gICdP
RkZTRVRfSElMT19QUk9KRUNUSVZFX1RFWFRVUkVfMkRfTlYnOiAweDg4NTYsCi0gICdPRkZTRVRf
SElMT19QUk9KRUNUSVZFX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4ODU3LAotICAnREVQRU5E
RU5UX0hJTE9fVEVYVFVSRV8yRF9OVic6IDB4ODg1OCwKLSAgJ0RFUEVOREVOVF9SR0JfVEVYVFVS
RV8zRF9OVic6IDB4ODg1OSwKLSAgJ0RFUEVOREVOVF9SR0JfVEVYVFVSRV9DVUJFX01BUF9OVic6
IDB4ODg1QSwKLSAgJ0RPVF9QUk9EVUNUX1BBU1NfVEhST1VHSF9OVic6IDB4ODg1QiwKLSAgJ0RP
VF9QUk9EVUNUX1RFWFRVUkVfMURfTlYnOiAweDg4NUMsCi0gICdET1RfUFJPRFVDVF9BRkZJTkVf
REVQVEhfUkVQTEFDRV9OVic6IDB4ODg1RCwKLSAgJ0hJTE84X05WJzogMHg4ODVFLAotICAnU0lH
TkVEX0hJTE84X05WJzogMHg4ODVGLAotICAnRk9SQ0VfQkxVRV9UT19PTkVfTlYnOiAweDg4NjAs
Ci0gICdCQUNLX1BSSU1BUllfQ09MT1JfTlYnOiAweDhDNzcsCi0gICdCQUNLX1NFQ09OREFSWV9D
T0xPUl9OVic6IDB4OEM3OCwKLSAgJ1RFWFRVUkVfQ09PUkRfTlYnOiAweDhDNzksCi0gICdDTElQ
X0RJU1RBTkNFX05WJzogMHg4QzdBLAotICAnVkVSVEVYX0lEX05WJzogMHg4QzdCLAotICAnUFJJ
TUlUSVZFX0lEX05WJzogMHg4QzdDLAotICAnR0VORVJJQ19BVFRSSUJfTlYnOiAweDhDN0QsCi0g
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfQVRUUklCU19OVic6IDB4OEM3RSwKLSAgJ1RSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVJfTU9ERV9OVic6IDB4OEM3RiwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJB
Q0tfU0VQQVJBVEVfQ09NUE9ORU5UU19OVic6IDB4OEM4MCwKLSAgJ0FDVElWRV9WQVJZSU5HU19O
Vic6IDB4OEM4MSwKLSAgJ0FDVElWRV9WQVJZSU5HX01BWF9MRU5HVEhfTlYnOiAweDhDODIsCi0g
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1NfTlYnOiAweDhDODMsCi0gICdUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX1NUQVJUX05WJzogMHg4Qzg0LAotICAnVFJBTlNGT1JNX0ZFRURCQUNL
X0JVRkZFUl9TSVpFX05WJzogMHg4Qzg1LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX1JFQ09SRF9O
Vic6IDB4OEM4NiwKLSAgJ1BSSU1JVElWRVNfR0VORVJBVEVEX05WJzogMHg4Qzg3LAotICAnVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTl9OVic6IDB4OEM4OCwKLSAgJ1JBU1RF
UklaRVJfRElTQ0FSRF9OVic6IDB4OEM4OSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfSU5U
RVJMRUFWRURfQ09NUE9ORU5UU19OVic6IDB4OEM4QSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJB
Q0tfU0VQQVJBVEVfQVRUUklCU19OVic6IDB4OEM4QiwKLSAgJ0lOVEVSTEVBVkVEX0FUVFJJQlNf
TlYnOiAweDhDOEMsCi0gICdTRVBBUkFURV9BVFRSSUJTX05WJzogMHg4QzhELAotICAnVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9OVic6IDB4OEM4RSwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfQklORElOR19OVic6IDB4OEM4RiwKLSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9OVic6IDB4
ODUxRCwKLSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9MRU5HVEhfTlYnOiAweDg1MUUsCi0gICdWRVJU
RVhfQVJSQVlfUkFOR0VfVkFMSURfTlYnOiAweDg1MUYsCi0gICdNQVhfVkVSVEVYX0FSUkFZX1JB
TkdFX0VMRU1FTlRfTlYnOiAweDg1MjAsCi0gICdWRVJURVhfQVJSQVlfUkFOR0VfUE9JTlRFUl9O
Vic6IDB4ODUyMSwKLSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9XSVRIT1VUX0ZMVVNIX05WJzogMHg4
NTMzLAotICAnVkVSVEVYX1BST0dSQU1fTlYnOiAweDg2MjAsCi0gICdWRVJURVhfU1RBVEVfUFJP
R1JBTV9OVic6IDB4ODYyMSwKLSAgJ0FUVFJJQl9BUlJBWV9TSVpFX05WJzogMHg4NjIzLAotICAn
QVRUUklCX0FSUkFZX1NUUklERV9OVic6IDB4ODYyNCwKLSAgJ0FUVFJJQl9BUlJBWV9UWVBFX05W
JzogMHg4NjI1LAotICAnQ1VSUkVOVF9BVFRSSUJfTlYnOiAweDg2MjYsCi0gICdQUk9HUkFNX0xF
TkdUSF9OVic6IDB4ODYyNywKLSAgJ1BST0dSQU1fU1RSSU5HX05WJzogMHg4NjI4LAotICAnTU9E
RUxWSUVXX1BST0pFQ1RJT05fTlYnOiAweDg2MjksCi0gICdJREVOVElUWV9OVic6IDB4ODYyQSwK
LSAgJ0lOVkVSU0VfTlYnOiAweDg2MkIsCi0gICdUUkFOU1BPU0VfTlYnOiAweDg2MkMsCi0gICdJ
TlZFUlNFX1RSQU5TUE9TRV9OVic6IDB4ODYyRCwKLSAgJ01BWF9UUkFDS19NQVRSSVhfU1RBQ0tf
REVQVEhfTlYnOiAweDg2MkUsCi0gICdNQVhfVFJBQ0tfTUFUUklDRVNfTlYnOiAweDg2MkYsCi0g
ICdNQVRSSVgwX05WJzogMHg4NjMwLAotICAnTUFUUklYMV9OVic6IDB4ODYzMSwKLSAgJ01BVFJJ
WDJfTlYnOiAweDg2MzIsCi0gICdNQVRSSVgzX05WJzogMHg4NjMzLAotICAnTUFUUklYNF9OVic6
IDB4ODYzNCwKLSAgJ01BVFJJWDVfTlYnOiAweDg2MzUsCi0gICdNQVRSSVg2X05WJzogMHg4NjM2
LAotICAnTUFUUklYN19OVic6IDB4ODYzNywKLSAgJ0NVUlJFTlRfTUFUUklYX1NUQUNLX0RFUFRI
X05WJzogMHg4NjQwLAotICAnQ1VSUkVOVF9NQVRSSVhfTlYnOiAweDg2NDEsCi0gICdWRVJURVhf
UFJPR1JBTV9QT0lOVF9TSVpFX05WJzogMHg4NjQyLAotICAnVkVSVEVYX1BST0dSQU1fVFdPX1NJ
REVfTlYnOiAweDg2NDMsCi0gICdQUk9HUkFNX1BBUkFNRVRFUl9OVic6IDB4ODY0NCwKLSAgJ0FU
VFJJQl9BUlJBWV9QT0lOVEVSX05WJzogMHg4NjQ1LAotICAnUFJPR1JBTV9UQVJHRVRfTlYnOiAw
eDg2NDYsCi0gICdQUk9HUkFNX1JFU0lERU5UX05WJzogMHg4NjQ3LAotICAnVFJBQ0tfTUFUUklY
X05WJzogMHg4NjQ4LAotICAnVFJBQ0tfTUFUUklYX1RSQU5TRk9STV9OVic6IDB4ODY0OSwKLSAg
J1ZFUlRFWF9QUk9HUkFNX0JJTkRJTkdfTlYnOiAweDg2NEEsCi0gICdQUk9HUkFNX0VSUk9SX1BP
U0lUSU9OX05WJzogMHg4NjRCLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTBfTlYnOiAweDg2NTAs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZMV9OVic6IDB4ODY1MSwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVkyX05WJzogMHg4NjUyLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTNfTlYnOiAweDg2NTMs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZNF9OVic6IDB4ODY1NCwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVk1X05WJzogMHg4NjU1LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTZfTlYnOiAweDg2NTYs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZN19OVic6IDB4ODY1NywKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVk4X05WJzogMHg4NjU4LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTlfTlYnOiAweDg2NTks
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZMTBfTlYnOiAweDg2NUEsCi0gICdWRVJURVhfQVRUUklC
X0FSUkFZMTFfTlYnOiAweDg2NUIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTJfTlYnOiAweDg2
NUMsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTNfTlYnOiAweDg2NUQsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZMTRfTlYnOiAweDg2NUUsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTVfTlYnOiAw
eDg2NUYsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIwXzRfTlYnOiAweDg2NjAsCi0gICdNQVAxX1ZF
UlRFWF9BVFRSSUIxXzRfTlYnOiAweDg2NjEsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIyXzRfTlYn
OiAweDg2NjIsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIzXzRfTlYnOiAweDg2NjMsCi0gICdNQVAx
X1ZFUlRFWF9BVFRSSUI0XzRfTlYnOiAweDg2NjQsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI1XzRf
TlYnOiAweDg2NjUsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI2XzRfTlYnOiAweDg2NjYsCi0gICdN
QVAxX1ZFUlRFWF9BVFRSSUI3XzRfTlYnOiAweDg2NjcsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI4
XzRfTlYnOiAweDg2NjgsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI5XzRfTlYnOiAweDg2NjksCi0g
ICdNQVAxX1ZFUlRFWF9BVFRSSUIxMF80X05WJzogMHg4NjZBLAotICAnTUFQMV9WRVJURVhfQVRU
UklCMTFfNF9OVic6IDB4ODY2QiwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjEyXzRfTlYnOiAweDg2
NkMsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIxM180X05WJzogMHg4NjZELAotICAnTUFQMV9WRVJU
RVhfQVRUUklCMTRfNF9OVic6IDB4ODY2RSwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjE1XzRfTlYn
OiAweDg2NkYsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIwXzRfTlYnOiAweDg2NzAsCi0gICdNQVAy
X1ZFUlRFWF9BVFRSSUIxXzRfTlYnOiAweDg2NzEsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIyXzRf
TlYnOiAweDg2NzIsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIzXzRfTlYnOiAweDg2NzMsCi0gICdN
QVAyX1ZFUlRFWF9BVFRSSUI0XzRfTlYnOiAweDg2NzQsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUI1
XzRfTlYnOiAweDg2NzUsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUI2XzRfTlYnOiAweDg2NzYsCi0g
ICdNQVAyX1ZFUlRFWF9BVFRSSUI3XzRfTlYnOiAweDg2NzcsCi0gICdNQVAyX1ZFUlRFWF9BVFRS
SUI4XzRfTlYnOiAweDg2NzgsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUI5XzRfTlYnOiAweDg2Nzks
Ci0gICdNQVAyX1ZFUlRFWF9BVFRSSUIxMF80X05WJzogMHg4NjdBLAotICAnTUFQMl9WRVJURVhf
QVRUUklCMTFfNF9OVic6IDB4ODY3QiwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjEyXzRfTlYnOiAw
eDg2N0MsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIxM180X05WJzogMHg4NjdELAotICAnTUFQMl9W
RVJURVhfQVRUUklCMTRfNF9OVic6IDB4ODY3RSwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjE1XzRf
TlYnOiAweDg2N0YsCi0gICdNQVhfUFJPR1JBTV9FWEVDX0lOU1RSVUNUSU9OU19OVic6IDB4ODhG
NCwKLSAgJ01BWF9QUk9HUkFNX0NBTExfREVQVEhfTlYnOiAweDg4RjUsCi0gICdNQVhfVkVSVEVY
X1RFWFRVUkVfSU1BR0VfVU5JVFNfQVJCJzogMHg4QjRDLAotICAnQllURSc6IDB4MTQwMCwKLSAg
J1BBTEVUVEU0X1JHQjhfT0VTJzogMHg4QjkwLAotICAnUEFMRVRURTRfUkdCQThfT0VTJzogMHg4
QjkxLAotICAnUEFMRVRURTRfUjVfRzZfQjVfT0VTJzogMHg4QjkyLAotICAnUEFMRVRURTRfUkdC
QTRfT0VTJzogMHg4QjkzLAotICAnUEFMRVRURTRfUkdCNV9BMV9PRVMnOiAweDhCOTQsCi0gICdQ
QUxFVFRFOF9SR0I4X09FUyc6IDB4OEI5NSwKLSAgJ1BBTEVUVEU4X1JHQkE4X09FUyc6IDB4OEI5
NiwKLSAgJ1BBTEVUVEU4X1I1X0c2X0I1X09FUyc6IDB4OEI5NywKLSAgJ1BBTEVUVEU4X1JHQkE0
X09FUyc6IDB4OEI5OCwKLSAgJ1BBTEVUVEU4X1JHQjVfQTFfT0VTJzogMHg4Qjk5LAotICAnSU1Q
TEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFX09FUyc6IDB4OEI5QSwKLSAgJ0lNUExFTUVOVEFU
SU9OX0NPTE9SX1JFQURfRk9STUFUX09FUyc6IDB4OEI5QiwKLSAgJ0lOVEVSTEFDRV9PTUwnOiAw
eDg5ODAsCi0gICdJTlRFUkxBQ0VfUkVBRF9PTUwnOiAweDg5ODEsCi0gICdQQUNLX1JFU0FNUExF
X09NTCc6IDB4ODk4NCwKLSAgJ1VOUEFDS19SRVNBTVBMRV9PTUwnOiAweDg5ODUsCi0gICdSRVNB
TVBMRV9SRVBMSUNBVEVfT01MJzogMHg4OTg2LAotICAnUkVTQU1QTEVfWkVST19GSUxMX09NTCc6
IDB4ODk4NywKLSAgJ1JFU0FNUExFX0FWRVJBR0VfT01MJzogMHg4OTg4LAotICAnUkVTQU1QTEVf
REVDSU1BVEVfT01MJzogMHg4OTg5LAotICAnRk9STUFUX1NVQlNBTVBMRV8yNF8yNF9PTUwnOiAw
eDg5ODIsCi0gICdGT1JNQVRfU1VCU0FNUExFXzI0NF8yNDRfT01MJzogMHg4OTgzLAotICAnVkVS
VEVYMjNfQklUX1BHSSc6IDB4MDAwMDAwMDQsCi0gICdWRVJURVg0X0JJVF9QR0knOiAweDAwMDAw
MDA4LAotICAnQ09MT1IzX0JJVF9QR0knOiAweDAwMDEwMDAwLAotICAnQ09MT1I0X0JJVF9QR0kn
OiAweDAwMDIwMDAwLAotICAnRURHRUZMQUdfQklUX1BHSSc6IDB4MDAwNDAwMDAsCi0gICdJTkRF
WF9CSVRfUEdJJzogMHgwMDA4MDAwMCwKLSAgJ01BVF9BTUJJRU5UX0JJVF9QR0knOiAweDAwMTAw
MDAwLAotICAnTUFUX0FNQklFTlRfQU5EX0RJRkZVU0VfQklUX1BHSSc6IDB4MDAyMDAwMDAsCi0g
ICdNQVRfRElGRlVTRV9CSVRfUEdJJzogMHgwMDQwMDAwMCwKLSAgJ01BVF9FTUlTU0lPTl9CSVRf
UEdJJzogMHgwMDgwMDAwMCwKLSAgJ01BVF9DT0xPUl9JTkRFWEVTX0JJVF9QR0knOiAweDAxMDAw
MDAwLAotICAnTUFUX1NISU5JTkVTU19CSVRfUEdJJzogMHgwMjAwMDAwMCwKLSAgJ01BVF9TUEVD
VUxBUl9CSVRfUEdJJzogMHgwNDAwMDAwMCwKLSAgJ05PUk1BTF9CSVRfUEdJJzogMHgwODAwMDAw
MCwKLSAgJ1RFWENPT1JEMV9CSVRfUEdJJzogMHgxMDAwMDAwMCwKLSAgJ1RFWENPT1JEMl9CSVRf
UEdJJzogMHgyMDAwMDAwMCwKLSAgJ1RFWENPT1JEM19CSVRfUEdJJzogMHg0MDAwMDAwMCwKLSAg
J1RFWENPT1JENF9CSVRfUEdJJzogMHg4MDAwMDAwMCwKLSAgJ1NDUkVFTl9DT09SRElOQVRFU19S
RU5EJzogMHg4NDkwLAotICAnSU5WRVJURURfU0NSRUVOX1dfUkVORCc6IDB4ODQ5MSwKLSAgJ1JH
Ql9TM1RDJzogMHg4M0EwLAotICAnUkdCNF9TM1RDJzogMHg4M0ExLAotICAnUkdCQV9TM1RDJzog
MHg4M0EyLAotICAnUkdCQTRfUzNUQyc6IDB4ODNBMywKLSAgJ1JHQkFfRFhUNV9TM1RDJzogMHg4
M0E0LAotICAnUkdCQTRfRFhUNV9TM1RDJzogMHg4M0E1LAotICAnRVhURU5ERURfUkFOR0VfU0dJ
Uyc6IDB4ODVBNSwKLSAgJ01JTl9SRURfU0dJUyc6IDB4ODVBNiwKLSAgJ01BWF9SRURfU0dJUyc6
IDB4ODVBNywKLSAgJ01JTl9HUkVFTl9TR0lTJzogMHg4NUE4LAotICAnTUFYX0dSRUVOX1NHSVMn
OiAweDg1QTksCi0gICdNSU5fQkxVRV9TR0lTJzogMHg4NUFBLAotICAnTUFYX0JMVUVfU0dJUyc6
IDB4ODVBQiwKLSAgJ01JTl9BTFBIQV9TR0lTJzogMHg4NUFDLAotICAnTUFYX0FMUEhBX1NHSVMn
OiAweDg1QUQsCi0gICdHRU5FUkFURV9NSVBNQVBfU0dJUyc6IDB4ODE5MSwKLSAgJ0dFTkVSQVRF
X01JUE1BUF9ISU5UX1NHSVMnOiAweDgxOTIsCi0gICdNVUxUSVNBTVBMRV9TR0lTJzogMHg4MDlE
LAotICAnU0FNUExFX0FMUEhBX1RPX01BU0tfU0dJUyc6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBI
QV9UT19PTkVfU0dJUyc6IDB4ODA5RiwKLSAgJ1NBTVBMRV9NQVNLX1NHSVMnOiAweDgwQTAsCi0g
ICcxUEFTU19TR0lTJzogMHg4MEExLAotICAnMlBBU1NfMF9TR0lTJzogMHg4MEEyLAotICAnMlBB
U1NfMV9TR0lTJzogMHg4MEEzLAotICAnNFBBU1NfMF9TR0lTJzogMHg4MEE0LAotICAnNFBBU1Nf
MV9TR0lTJzogMHg4MEE1LAotICAnNFBBU1NfMl9TR0lTJzogMHg4MEE2LAotICAnNFBBU1NfM19T
R0lTJzogMHg4MEE3LAotICAnU0FNUExFX0JVRkZFUlNfU0dJUyc6IDB4ODBBOCwKLSAgJ1NBTVBM
RVNfU0dJUyc6IDB4ODBBOSwKLSAgJ1NBTVBMRV9NQVNLX1ZBTFVFX1NHSVMnOiAweDgwQUEsCi0g
ICdTQU1QTEVfTUFTS19JTlZFUlRfU0dJUyc6IDB4ODBBQiwKLSAgJ1NBTVBMRV9QQVRURVJOX1NH
SVMnOiAweDgwQUMsCi0gICdNVUxUSVNBTVBMRV9CSVRfRVhUJzogMHgyMDAwMDAwMCwKLSAgJ0VZ
RV9ESVNUQU5DRV9UT19QT0lOVF9TR0lTJzogMHg4MUYwLAotICAnT0JKRUNUX0RJU1RBTkNFX1RP
X1BPSU5UX1NHSVMnOiAweDgxRjEsCi0gICdFWUVfRElTVEFOQ0VfVE9fTElORV9TR0lTJzogMHg4
MUYyLAotICAnT0JKRUNUX0RJU1RBTkNFX1RPX0xJTkVfU0dJUyc6IDB4ODFGMywKLSAgJ0VZRV9Q
T0lOVF9TR0lTJzogMHg4MUY0LAotICAnT0JKRUNUX1BPSU5UX1NHSVMnOiAweDgxRjUsCi0gICdF
WUVfTElORV9TR0lTJzogMHg4MUY2LAotICAnT0JKRUNUX0xJTkVfU0dJUyc6IDB4ODFGNywKLSAg
J0NMQU1QX1RPX0JPUkRFUl9TR0lTJzogMHg4MTJELAotICAnQ0xBTVBfVE9fRURHRV9TR0lTJzog
MHg4MTJGLAotICAnVEVYVFVSRV9NSU5fTE9EX1NHSVMnOiAweDgxM0EsCi0gICdURVhUVVJFX01B
WF9MT0RfU0dJUyc6IDB4ODEzQiwKLSAgJ1RFWFRVUkVfQkFTRV9MRVZFTF9TR0lTJzogMHg4MTND
LAotICAnVEVYVFVSRV9NQVhfTEVWRUxfU0dJUyc6IDB4ODEzRCwKLSAgJ0FTWU5DX01BUktFUl9T
R0lYJzogMHg4MzI5LAotICAnQVNZTkNfSElTVE9HUkFNX1NHSVgnOiAweDgzMkMsCi0gICdNQVhf
QVNZTkNfSElTVE9HUkFNX1NHSVgnOiAweDgzMkQsCi0gICdBU1lOQ19URVhfSU1BR0VfU0dJWCc6
IDB4ODM1QywKLSAgJ0FTWU5DX0RSQVdfUElYRUxTX1NHSVgnOiAweDgzNUQsCi0gICdBU1lOQ19S
RUFEX1BJWEVMU19TR0lYJzogMHg4MzVFLAotICAnTUFYX0FTWU5DX1RFWF9JTUFHRV9TR0lYJzog
MHg4MzVGLAotICAnTUFYX0FTWU5DX0RSQVdfUElYRUxTX1NHSVgnOiAweDgzNjAsCi0gICdNQVhf
QVNZTkNfUkVBRF9QSVhFTFNfU0dJWCc6IDB4ODM2MSwKLSAgJ0FMUEhBX01JTl9TR0lYJzogMHg4
MzIwLAotICAnQUxQSEFfTUFYX1NHSVgnOiAweDgzMjEsCi0gICdDT05WT0xVVElPTl9ISU5UX1NH
SVgnOiAweDgzMTYsCi0gICdERVBUSF9DT01QT05FTlQxNl9TR0lYJzogMHg4MUE1LAotICAnREVQ
VEhfQ09NUE9ORU5UMjRfU0dJWCc6IDB4ODFBNiwKLSAgJ0RFUFRIX0NPTVBPTkVOVDMyX1NHSVgn
OiAweDgxQTcsCi0gICdGT0dfT0ZGU0VUX1NHSVgnOiAweDgxOTgsCi0gICdGT0dfT0ZGU0VUX1ZB
TFVFX1NHSVgnOiAweDgxOTksCi0gICdJTlRFUkxBQ0VfU0dJWCc6IDB4ODA5NCwKLSAgJ1BBQ0tf
UkVTQU1QTEVfU0dJWCc6IDB4ODQyRSwKLSAgJ1VOUEFDS19SRVNBTVBMRV9TR0lYJzogMHg4NDJG
LAotICAnUkVTQU1QTEVfREVDSU1BVEVfU0dJWCc6IDB4ODQzMCwKLSAgJ1JFU0FNUExFX1JFUExJ
Q0FURV9TR0lYJzogMHg4NDMzLAotICAnUkVTQU1QTEVfWkVST19GSUxMX1NHSVgnOiAweDg0MzQs
Ci0gICdURVhUVVJFX0NPTVBBUkVfU0dJWCc6IDB4ODE5QSwKLSAgJ1RFWFRVUkVfQ09NUEFSRV9P
UEVSQVRPUl9TR0lYJzogMHg4MTlCLAotICAnVEVYVFVSRV9MRVFVQUxfUl9TR0lYJzogMHg4MTlD
LAotICAnVEVYVFVSRV9HRVFVQUxfUl9TR0lYJzogMHg4MTlELAotICAnU0hBRE9XX0FNQklFTlRf
U0dJWCc6IDB4ODBCRiwKLSAgJ1RFWFRVUkVfTUFYX0NMQU1QX1NfU0dJWCc6IDB4ODM2OSwKLSAg
J1RFWFRVUkVfTUFYX0NMQU1QX1RfU0dJWCc6IDB4ODM2QSwKLSAgJ1RFWFRVUkVfTUFYX0NMQU1Q
X1JfU0dJWCc6IDB4ODM2QiwKLSAgJ1RFWFRVUkVfTVVMVElfQlVGRkVSX0hJTlRfU0dJWCc6IDB4
ODEyRSwKLSAgJ1JHQl9TSUdORURfU0dJWCc6IDB4ODVFMCwKLSAgJ1JHQkFfU0lHTkVEX1NHSVgn
OiAweDg1RTEsCi0gICdBTFBIQV9TSUdORURfU0dJWCc6IDB4ODVFMiwKLSAgJ0xVTUlOQU5DRV9T
SUdORURfU0dJWCc6IDB4ODVFMywKLSAgJ0lOVEVOU0lUWV9TSUdORURfU0dJWCc6IDB4ODVFNCwK
LSAgJ0xVTUlOQU5DRV9BTFBIQV9TSUdORURfU0dJWCc6IDB4ODVFNSwKLSAgJ1JHQjE2X1NJR05F
RF9TR0lYJzogMHg4NUU2LAotICAnUkdCQTE2X1NJR05FRF9TR0lYJzogMHg4NUU3LAotICAnQUxQ
SEExNl9TSUdORURfU0dJWCc6IDB4ODVFOCwKLSAgJ0xVTUlOQU5DRTE2X1NJR05FRF9TR0lYJzog
MHg4NUU5LAotICAnSU5URU5TSVRZMTZfU0lHTkVEX1NHSVgnOiAweDg1RUEsCi0gICdMVU1JTkFO
Q0UxNl9BTFBIQTE2X1NJR05FRF9TR0lYJzogMHg4NUVCLAotICAnUkdCX0VYVEVOREVEX1JBTkdF
X1NHSVgnOiAweDg1RUMsCi0gICdSR0JBX0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RUQsCi0g
ICdBTFBIQV9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUVFLAotICAnTFVNSU5BTkNFX0VYVEVO
REVEX1JBTkdFX1NHSVgnOiAweDg1RUYsCi0gICdJTlRFTlNJVFlfRVhURU5ERURfUkFOR0VfU0dJ
WCc6IDB4ODVGMCwKLSAgJ0xVTUlOQU5DRV9BTFBIQV9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4
NUYxLAotICAnUkdCMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGMiwKLSAgJ1JHQkExNl9F
WFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUYzLAotICAnQUxQSEExNl9FWFRFTkRFRF9SQU5HRV9T
R0lYJzogMHg4NUY0LAotICAnTFVNSU5BTkNFMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVG
NSwKLSAgJ0lOVEVOU0lUWTE2X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjYsCi0gICdMVU1J
TkFOQ0UxNl9BTFBIQTE2X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjcsCi0gICdNSU5fTFVN
SU5BTkNFX1NHSVMnOiAweDg1RjgsCi0gICdNQVhfTFVNSU5BTkNFX1NHSVMnOiAweDg1RjksCi0g
ICdNSU5fSU5URU5TSVRZX1NHSVMnOiAweDg1RkEsCi0gICdNQVhfSU5URU5TSVRZX1NHSVMnOiAw
eDg1RkIsCi0gICdQT1NUX1RFWFRVUkVfRklMVEVSX0JJQVNfU0dJWCc6IDB4ODE3OSwKLSAgJ1BP
U1RfVEVYVFVSRV9GSUxURVJfU0NBTEVfU0dJWCc6IDB4ODE3QSwKLSAgJ1BPU1RfVEVYVFVSRV9G
SUxURVJfQklBU19SQU5HRV9TR0lYJzogMHg4MTdCLAotICAnUE9TVF9URVhUVVJFX0ZJTFRFUl9T
Q0FMRV9SQU5HRV9TR0lYJzogMHg4MTdDLAotICAnVkVSVEVYX1BSRUNMSVBfU0dJWCc6IDB4ODNF
RSwKLSAgJ1ZFUlRFWF9QUkVDTElQX0hJTlRfU0dJWCc6IDB4ODNFRiwKLSAgJ1ZFUlRFWF9QUkVD
TElQX1NHSVgnOiAweDgzRUUsCi0gICdWRVJURVhfUFJFQ0xJUF9ISU5UX1NHSVgnOiAweDgzRUYs
Ci0gICdDT0xPUl9NQVRSSVhfU0dJJzogMHg4MEIxLAotICAnQ09MT1JfTUFUUklYX1NUQUNLX0RF
UFRIX1NHSSc6IDB4ODBCMiwKLSAgJ01BWF9DT0xPUl9NQVRSSVhfU1RBQ0tfREVQVEhfU0dJJzog
MHg4MEIzLAotICAnUE9TVF9DT0xPUl9NQVRSSVhfUkVEX1NDQUxFX1NHSSc6IDB4ODBCNCwKLSAg
J1BPU1RfQ09MT1JfTUFUUklYX0dSRUVOX1NDQUxFX1NHSSc6IDB4ODBCNSwKLSAgJ1BPU1RfQ09M
T1JfTUFUUklYX0JMVUVfU0NBTEVfU0dJJzogMHg4MEI2LAotICAnUE9TVF9DT0xPUl9NQVRSSVhf
QUxQSEFfU0NBTEVfU0dJJzogMHg4MEI3LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfUkVEX0JJQVNf
U0dJJzogMHg4MEI4LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfR1JFRU5fQklBU19TR0knOiAweDgw
QjksCi0gICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX0JJQVNfU0dJJzogMHg4MEJBLAotICAnUE9T
VF9DT0xPUl9NQVRSSVhfQUxQSEFfQklBU19TR0knOiAweDgwQkIsCi0gICdDT0xPUl9UQUJMRV9T
R0knOiAweDgwRDAsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBE
MSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBEMiwKLSAgJ1BS
T1hZX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBEMywKLSAgJ1BST1hZX1BPU1RfQ09OVk9MVVRJT05f
Q09MT1JfVEFCTEVfU0dJJzogMHg4MEQ0LAotICAnUFJPWFlfUE9TVF9DT0xPUl9NQVRSSVhfQ09M
T1JfVEFCTEVfU0dJJzogMHg4MEQ1LAotICAnQ09MT1JfVEFCTEVfU0NBTEVfU0dJJzogMHg4MEQ2
LAotICAnQ09MT1JfVEFCTEVfQklBU19TR0knOiAweDgwRDcsCi0gICdDT0xPUl9UQUJMRV9GT1JN
QVRfU0dJJzogMHg4MEQ4LAotICAnQ09MT1JfVEFCTEVfV0lEVEhfU0dJJzogMHg4MEQ5LAotICAn
Q09MT1JfVEFCTEVfUkVEX1NJWkVfU0dJJzogMHg4MERBLAotICAnQ09MT1JfVEFCTEVfR1JFRU5f
U0laRV9TR0knOiAweDgwREIsCi0gICdDT0xPUl9UQUJMRV9CTFVFX1NJWkVfU0dJJzogMHg4MERD
LAotICAnQ09MT1JfVEFCTEVfQUxQSEFfU0laRV9TR0knOiAweDgwREQsCi0gICdDT0xPUl9UQUJM
RV9MVU1JTkFOQ0VfU0laRV9TR0knOiAweDgwREUsCi0gICdDT0xPUl9UQUJMRV9JTlRFTlNJVFlf
U0laRV9TR0knOiAweDgwREYsCi0gICdURVhUVVJFX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBCQywK
LSAgJ1BST1hZX1RFWFRVUkVfQ09MT1JfVEFCTEVfU0dJJzogMHg4MEJELAotICAnVU5QQUNLX0NP
TlNUQU5UX0RBVEFfU1VOWCc6IDB4ODFENSwKLSAgJ1RFWFRVUkVfQ09OU1RBTlRfREFUQV9TVU5Y
JzogMHg4MUQ2LAotICAnV1JBUF9CT1JERVJfU1VOJzogMHg4MUQ0LAotICAnR0xPQkFMX0FMUEhB
X1NVTic6IDB4ODFEOSwKLSAgJ0dMT0JBTF9BTFBIQV9GQUNUT1JfU1VOJzogMHg4MURBLAotICAn
UVVBRF9NRVNIX1NVTic6IDB4ODYxNCwKLSAgJ1RSSUFOR0xFX01FU0hfU1VOJzogMHg4NjE1LAot
ICAnU0xJQ0VfQUNDVU1fU1VOJzogMHg4NUNDLAotICAnUkVTVEFSVF9TVU4nOiAweDAxLAotICAn
UkVQTEFDRV9NSURETEVfU1VOJzogMHgwMiwKLSAgJ1JFUExBQ0VfT0xERVNUX1NVTic6IDB4MDMs
Ci0gICdUUklBTkdMRV9MSVNUX1NVTic6IDB4ODFENywKLSAgJ1JFUExBQ0VNRU5UX0NPREVfU1VO
JzogMHg4MUQ4LAotICAnUkVQTEFDRU1FTlRfQ09ERV9BUlJBWV9TVU4nOiAweDg1QzAsCi0gICdS
RVBMQUNFTUVOVF9DT0RFX0FSUkFZX1RZUEVfU1VOJzogMHg4NUMxLAotICAnUkVQTEFDRU1FTlRf
Q09ERV9BUlJBWV9TVFJJREVfU1VOJzogMHg4NUMyLAotICAnUkVQTEFDRU1FTlRfQ09ERV9BUlJB
WV9QT0lOVEVSX1NVTic6IDB4ODVDMywKLSAgJ1IxVUlfVjNGX1NVTic6IDB4ODVDNCwKLSAgJ1Ix
VUlfQzRVQl9WM0ZfU1VOJzogMHg4NUM1LAotICAnUjFVSV9DM0ZfVjNGX1NVTic6IDB4ODVDNiwK
LSAgJ1IxVUlfTjNGX1YzRl9TVU4nOiAweDg1QzcsCi0gICdSMVVJX0M0Rl9OM0ZfVjNGX1NVTic6
IDB4ODVDOCwKLSAgJ1IxVUlfVDJGX1YzRl9TVU4nOiAweDg1QzksCi0gICdSMVVJX1QyRl9OM0Zf
VjNGX1NVTic6IDB4ODVDQSwKLSAgJ1IxVUlfVDJGX0M0Rl9OM0ZfVjNGX1NVTic6IDB4ODVDQiwK
LSAgJ1BIT05HX1dJTic6IDB4ODBFQSwKLSAgJ1BIT05HX0hJTlRfV0lOJzogMHg4MEVCLAotICAn
Rk9HX1NQRUNVTEFSX1RFWFRVUkVfV0lOJzogMHg4MEVDCi19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDVhNDBmZTJmYjY3MzljYzFlNDJiOGU0
ZDA5ZDEyYmE3ZmU5Mjc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDI2ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
LSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQot
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotc2hvdWxkQmVUcnVlKCJzdWNj
ZXNzZnVsbHlQYXJzZWQiKTsKLWRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBD
T01QTEVURTwvc3Bhbj4nKTsKLW5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NDk1NmVkNDhhYWY4YmQyYThk
MzgwM2ZkN2VlNjMxMGNhMjg0YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw0ODUgKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioK
LSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0oZnVuY3Rpb24oKSB7
Ci0gIHZhciB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gZmFsc2U7Ci0KLSAgdmFyIGluaXROb25L
aHJvbm9zRnJhbWV3b3JrID0gZnVuY3Rpb24od2FpdFVudGlsRG9uZSkgewotICAgIGlmICh0ZXN0
SGFybmVzc0luaXRpYWxpemVkKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIHRlc3RIYXJu
ZXNzSW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2Rl
IC0tICovCi0KLSAgICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJl
LgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1
bm5lcjsKLSAgICB9Ci0KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7Ci0gICAgICAvLyBUaGUgV2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNvbXBhcmVzIGNvbnNv
bGUgb3V0cHV0LgotICAgICAgLy8gQmVjYXVzZSB0aGUgb3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0
cyBpcyBHUFUgZGVwZW5kZW50Ci0gICAgICAvLyB3ZSB0dXJuIG9mZiBjb25zb2xlIG1lc3NhZ2Vz
LgotICAgICAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07Ci0gICAgICB3aW5k
b3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9OwotICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi0gICAg
ICAvLyBSQUYgZG9lc24ndCB3b3JrIGluIExheW91dFRlc3RzLiBEaXNhYmxlIGl0IHNvIHRoZSB0
ZXN0cyB3aWxsCi0gICAgICAvLyB1c2Ugc2V0VGltZW91dCBpbnN0ZWFkLgotICAgICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKLSAgICAgIHdpbmRvdy53ZWJraXRS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB1bmRlZmluZWQ7Ci0gICAgfQotCi0gICAgLyogLS0gZW5k
IHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgLS0qLwotICB9Ci0KLSAgdGhpcy5pbml0VGVzdGluZ0hh
cm5lc3NXYWl0VW50aWxEb25lID0gZnVuY3Rpb24oKSB7Ci0gICAgaW5pdE5vbktocm9ub3NGcmFt
ZXdvcmsodHJ1ZSk7Ci0gIH0KLQotICB0aGlzLmluaXRUZXN0aW5nSGFybmVzcyA9IGZ1bmN0aW9u
KCkgewotICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKGZhbHNlKTsKLSAgfQotfSgpKTsKLQot
ZnVuY3Rpb24gbm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKSB7Ci0gIC8vIFdlYktpdCBT
cGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCi0gIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3Moc3VjY2VzcywgbXNn
KSB7Ci0gIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLSAgICB3aW5kb3cu
cGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cubG9jYXRpb24ucGF0
aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gbm90aWZ5RmluaXNoZWRU
b0hhcm5lc3MoKSB7Ci0gIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLSAg
ICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQod2luZG93Lmxv
Y2F0aW9uLnBhdGhuYW1lKTsKLSAgfQotICBpZiAod2luZG93Lm5vbktocm9ub3NGcmFtZXdvcmtO
b3RpZnlEb25lKSB7Ci0gICAgd2luZG93Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCk7
Ci0gIH0KLX0KLQotZnVuY3Rpb24gZGVzY3JpcHRpb24obXNnKQotewotICAgIGluaXRUZXN0aW5n
SGFybmVzcygpOwotICAgIGlmIChtc2cgPT09IHVuZGVmaW5lZCkgewotICAgICAgbXNnID0gZG9j
dW1lbnQudGl0bGU7Ci0gICAgfQotICAgIC8vIEZvciBNU0lFIDYgY29tcGF0aWJpbGl0eQotICAg
IHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIHNwYW4uaW5u
ZXJIVE1MID0gJzxwPicgKyBtc2cgKyAnPC9wPjxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiPHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+IiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPiIuPC9wPic7
Ci0gICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0
aW9uIik7Ci0gICAgaWYgKGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpCi0gICAgICAgIGRlc2NyaXB0
aW9uLnJlcGxhY2VDaGlsZChzcGFuLCBkZXNjcmlwdGlvbi5maXJzdENoaWxkKTsKLSAgICBlbHNl
Ci0gICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHNwYW4pOwotfQotCi1mdW5jdGlvbiBk
ZWJ1Zyhtc2cpCi17Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChz
cGFuKTsgLy8gaW5zZXJ0IGl0IGZpcnN0IHNvIFhIVE1MIGtub3dzIHRoZSBuYW1lc3BhY2UKLSAg
ICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOwotfQotCi1mdW5jdGlvbiBlc2NhcGVI
VE1MKHRleHQpCi17Ci0gICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBs
YWNlKC88L2csICImbHQ7Iik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQYXNzZWQobXNnKQotewotICAg
IHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHRydWUsIG1zZyk7Ci0gICAgZGVidWcoJzxzcGFu
PjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwv
c3Bhbj4nKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpCi17Ci0gICAgcmVwb3J0VGVz
dFJlc3VsdHNUb0hhcm5lc3MoZmFsc2UsIG1zZyk7Ci0gICAgZGVidWcoJzxzcGFuPjxzcGFuIGNs
YXNzPSJmYWlsIj5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsK
LX0KLQotZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoX2EsIF9iKQotewotICAgIHRyeSB7Ci0gICAg
ICAgIGlmIChfYS5sZW5ndGggIT09IF9iLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfYS5sZW5ndGg7IGkrKykKLSAgICAgICAg
ICAgIGlmIChfYVtpXSAhPT0gX2JbaV0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIGlzTWludXNaZXJvKG4pCi17Ci0gICAgLy8gdGhlIG9u
bHkgd2F5IHRvIHRlbGwgMCBmcm9tIC0wIGluIEpTIGlzIHRoZSBmYWN0IHRoYXQgMS8tMCBpcwot
ICAgIC8vIC1JbmZpbml0eSBpbnN0ZWFkIG9mIEluZmluaXR5Ci0gICAgcmV0dXJuIG4gPT09IDAg
JiYgMS9uIDwgMDsKLX0KLQotZnVuY3Rpb24gaXNSZXN1bHRDb3JyZWN0KF9hY3R1YWwsIF9leHBl
Y3RlZCkKLXsKLSAgICBpZiAoX2V4cGVjdGVkID09PSAwKQotICAgICAgICByZXR1cm4gX2FjdHVh
bCA9PT0gX2V4cGVjdGVkICYmICgxL19hY3R1YWwpID09PSAoMS9fZXhwZWN0ZWQpOwotICAgIGlm
IChfYWN0dWFsID09PSBfZXhwZWN0ZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh0
eXBlb2YoX2V4cGVjdGVkKSA9PSAibnVtYmVyIiAmJiBpc05hTihfZXhwZWN0ZWQpKQotICAgICAg
ICByZXR1cm4gdHlwZW9mKF9hY3R1YWwpID09ICJudW1iZXIiICYmIGlzTmFOKF9hY3R1YWwpOwot
ICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoX2V4cGVjdGVkKSA9PSBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoW10pKQotICAgICAgICByZXR1cm4gYXJlQXJyYXlz
RXF1YWwoX2FjdHVhbCwgX2V4cGVjdGVkKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWZ1bmN0
aW9uIHN0cmluZ2lmeSh2KQotewotICAgIGlmICh2ID09PSAwICYmIDEvdiA8IDApCi0gICAgICAg
IHJldHVybiAiLTAiOwotICAgIGVsc2UgcmV0dXJuICIiICsgdjsKLX0KLQotZnVuY3Rpb24gZXZh
bEFuZExvZyhfYSkKLXsKLSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKLSAgICBkZWJ1Zygi
V0FSTjogdHJ5QW5kTG9nKCkgZXhwZWN0cyBhIHN0cmluZyBhcmd1bWVudCIpOwotCi0gIC8vIExv
ZyBmaXJzdCBpbiBjYXNlIHRoaW5ncyBnbyBob3JyaWJseSB3cm9uZyBvciB0aGlzIGNhdXNlcyBh
IHN5bmMgZXZlbnQuCi0gIGRlYnVnKF9hKTsKLQotICB2YXIgX2F2OwotICB0cnkgewotICAgICBf
YXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHRo
cmV3IGV4Y2VwdGlvbiAiICsgZSk7Ci0gIH0KLSAgcmV0dXJuIF9hdjsKLX0KLQotZnVuY3Rpb24g
c2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKLXsKLSAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmci
IHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKLSAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJl
KCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7Ci0gICAgdmFyIGV4Y2VwdGlvbjsKLSAgICB2
YXIgX2F2OwotICAgIHRyeSB7Ci0gICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgZXhjZXB0aW9uID0gZTsKLSAgICB9Ci0gICAgdmFyIF9idiA9IGV2YWwo
X2IpOwotCi0gICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gICAg
ZWxzZSBpZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgewotICAgICAgICBpZiAoIXF1aWV0
KSB7Ci0gICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgX2IpOwotICAgICAgICB9
Ci0gICAgfSBlbHNlIGlmICh0eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKLSAgICAgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShf
YXYpICsgIi4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSAiICsgX2J2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiAr
ICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxk
Tm90QmUoX2EsIF9iLCBxdWlldCkKLXsKLSAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8
IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKLSAgICAgICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJl
KCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7Ci0gICAgdmFyIGV4Y2VwdGlvbjsKLSAgICB2
YXIgX2F2OwotICAgIHRyeSB7Ci0gICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgZXhjZXB0aW9uID0gZTsKLSAgICB9Ci0gICAgdmFyIF9idiA9IGV2YWwo
X2IpOwotCi0gICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIG5vdCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwot
ICAgIGVsc2UgaWYgKCFpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7Ci0gICAgICAgIGlmICgh
cXVpZXQpIHsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOwot
ICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBu
b3QgYmUgIiArIF9idiArICIuIik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlVHJ1ZShfYSkgeyBz
aG91bGRCZShfYSwgInRydWUiKTsgfQotZnVuY3Rpb24gc2hvdWxkQmVGYWxzZShfYSkgeyBzaG91
bGRCZShfYSwgImZhbHNlIik7IH0KLWZ1bmN0aW9uIHNob3VsZEJlTmFOKF9hKSB7IHNob3VsZEJl
KF9hLCAiTmFOIik7IH0KLWZ1bmN0aW9uIHNob3VsZEJlTnVsbChfYSkgeyBzaG91bGRCZShfYSwg
Im51bGwiKTsgfQotCi1mdW5jdGlvbiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYSwgYikKLXsKLSAg
dmFyIHVuZXZhbGVkU3RyaW5nID0gJyInICsgYi5yZXBsYWNlKC8iL2csICJcIiIpICsgJyInOwot
ICBzaG91bGRCZShhLCB1bmV2YWxlZFN0cmluZyk7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEV2YWx1
YXRlVG8oYWN0dWFsLCBleHBlY3RlZCkgewotICAvLyBBIGdlbmVyYWwtcHVycG9zZSBjb21wYXJh
dG9yLiAgJ2FjdHVhbCcgc2hvdWxkIGJlIGEgc3RyaW5nIHRvIGJlCi0gIC8vIGV2YWx1YXRlZCwg
YXMgZm9yIHNob3VsZEJlKCkuICdleHBlY3RlZCcgbWF5IGJlIGFueSB0eXBlIGFuZCB3aWxsIGJl
Ci0gIC8vIHVzZWQgd2l0aG91dCBiZWluZyBldmFsJ2VkLgotICBpZiAoZXhwZWN0ZWQgPT0gbnVs
bCkgewotICAgIC8vIERvIHRoaXMgYmVmb3JlIHRoZSBvYmplY3QgdGVzdCwgc2luY2UgbnVsbCBp
cyBvZiB0eXBlICdvYmplY3QnLgotICAgIHNob3VsZEJlTnVsbChhY3R1YWwpOwotICB9IGVsc2Ug
aWYgKHR5cGVvZiBleHBlY3RlZCA9PSAidW5kZWZpbmVkIikgewotICAgIHNob3VsZEJlVW5kZWZp
bmVkKGFjdHVhbCk7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJmdW5jdGlvbiIp
IHsKLSAgICAvLyBBbGwgdGhpcyBmdXNzIGlzIHRvIGF2b2lkIHRoZSBzdHJpbmctYXJnIHdhcm5p
bmcgZnJvbSBzaG91bGRCZSgpLgotICAgIHRyeSB7Ci0gICAgICBhY3R1YWxWYWx1ZSA9IGV2YWwo
YWN0dWFsKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJFdmFsdWF0aW5n
ICIgKyBhY3R1YWwgKyAiOiBUaHJldyBleGNlcHRpb24gIiArIGUpOwotICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBzaG91bGRCZSgiJyIgKyBhY3R1YWxWYWx1ZS50b1N0cmluZygpLnJlcGxhY2Uo
L1xuL2csICIiKSArICInIiwKLSAgICAgICAgICAgICAiJyIgKyBleHBlY3RlZC50b1N0cmluZygp
LnJlcGxhY2UoL1xuL2csICIiKSArICInIik7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVk
ID09ICJvYmplY3QiKSB7Ci0gICAgc2hvdWxkQmVUcnVlKGFjdHVhbCArICIgPT0gJyIgKyBleHBl
Y3RlZCArICInIik7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJzdHJpbmciKSB7
Ci0gICAgc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCk7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4
cGVjdGVkID09ICJib29sZWFuIikgewotICAgIHNob3VsZEJlKCJ0eXBlb2YgIiArIGFjdHVhbCwg
Iidib29sZWFuJyIpOwotICAgIGlmIChleHBlY3RlZCkKLSAgICAgIHNob3VsZEJlVHJ1ZShhY3R1
YWwpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlRmFsc2UoYWN0dWFsKTsKLSAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm51bWJlciIpIHsKLSAgICBzaG91bGRCZShhY3R1YWwsIHN0
cmluZ2lmeShleHBlY3RlZCkpOwotICB9IGVsc2UgewotICAgIGRlYnVnKGV4cGVjdGVkICsgIiBp
cyB1bmtub3duIHR5cGUgIiArIHR5cGVvZiBleHBlY3RlZCk7Ci0gICAgc2hvdWxkQmVUcnVlKGFj
dHVhbCwgIiciICArZXhwZWN0ZWQudG9TdHJpbmcoKSArICInIik7Ci0gIH0KLX0KLQotZnVuY3Rp
b24gc2hvdWxkQmVOb25aZXJvKF9hKQotewotICB2YXIgZXhjZXB0aW9uOwotICB2YXIgX2F2Owot
ICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewotICAgICBleGNl
cHRpb24gPSBlOwotICB9Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgYmUgbm9uLXplcm8uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAg
ZWxzZSBpZiAoX2F2ICE9IDApCi0gICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9uLXplcm8uIik7
Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFdhcyAi
ICsgX2F2KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVOb25OdWxsKF9hKQotewotICB2YXIgZXhj
ZXB0aW9uOwotICB2YXIgX2F2OwotICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBj
YXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOwotICB9Ci0KLSAgaWYgKGV4Y2VwdGlvbikK
LSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLW51bGwuIFRocmV3IGV4Y2VwdGlv
biAiICsgZXhjZXB0aW9uKTsKLSAgZWxzZSBpZiAoX2F2ICE9IG51bGwpCi0gICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgbm9uLW51bGwuIik7Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBz
aG91bGQgYmUgbm9uLW51bGwuIFdhcyAiICsgX2F2KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVV
bmRlZmluZWQoX2EpCi17Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7Ci0g
ICAgIF9hdiA9IGV2YWwoX2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7
Ci0gIH0KLQotICBpZiAoZXhjZXB0aW9uKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSB1bmRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgZWxzZSBpZiAo
dHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKLSAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyB1bmRl
ZmluZWQuIik7Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZp
bmVkLiBXYXMgIiArIF9hdik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlRGVmaW5lZChfYSkKLXsK
LSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9hdjsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChf
YSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIGlmIChl
eGNlcHRpb24pCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFRocmV3
IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgZWxzZSBpZiAoX2F2ICE9PSB1bmRlZmluZWQp
Ci0gICAgdGVzdFBhc3NlZChfYSArICIgaXMgZGVmaW5lZC4iKTsKLSAgZWxzZQotICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBXYXMgIiArIF9hdik7Ci19Ci0KLWZ1bmN0
aW9uIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKF9hLCBfYikgewotICAgIGlmICh0eXBlb2Yg
X2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQotICAgICAgICBkZWJ1Zygi
V0FSTjogc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRz
Iik7Ci0KLSAgICB2YXIgZXhjZXB0aW9uOwotICAgIHZhciBfYXY7Ci0gICAgdHJ5IHsKLSAgICAg
ICAgX2F2ID0gZXZhbChfYSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBleGNlcHRpb24g
PSBlOwotICAgIH0KLSAgICB2YXIgX2J2ID0gZXZhbChfYik7Ci0KLSAgICBpZiAoZXhjZXB0aW9u
KQotICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhy
ZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0g
InVuZGVmaW5lZCIgfHwgX2F2IDwgX2J2KQotICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgYmUgPj0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2Yg
X2F2ICsgIikuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAi
ICsgX2IpOwotfQotCi1mdW5jdGlvbiBleHBlY3RUcnVlKHYsIG1zZykgewotICBpZiAodikgewot
ICAgIHRlc3RQYXNzZWQobXNnKTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gc2hvdWxkVGhyb3coX2EsIF9lKQotewotICB2YXIgZXhjZXB0aW9u
OwotICB2YXIgX2F2OwotICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAo
ZSkgewotICAgICBleGNlcHRpb24gPSBlOwotICB9Ci0KLSAgdmFyIF9ldjsKLSAgaWYgKF9lKQot
ICAgICAgX2V2ID0gIGV2YWwoX2UpOwotCi0gIGlmIChleGNlcHRpb24pIHsKLSAgICBpZiAodHlw
ZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8IGV4Y2VwdGlvbiA9PSBfZXYpCi0gICAgICB0ZXN0UGFz
c2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Ci0gICAgZWxz
ZQotICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09
ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gVGhyZXcgZXhjZXB0aW9u
ICIgKyBleGNlcHRpb24gKyAiLiIpOwotICB9IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVm
aW5lZCIpCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9l
ID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5l
ZC4iKTsKLSAgZWxzZQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5
cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAi
ICsgX2F2ICsgIi4iKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkgewot
CXZhciBleGNlcHRpb247Ci0JdmFyIF9hdjsKLQl0cnkgewotCQlfYXYgPSBldmFsKF9hKTsKLQl9
IGNhdGNoIChlKSB7Ci0JCWV4Y2VwdGlvbiA9IGU7Ci0JfQotCi0JdmFyIF90eXBldiA9IGV2YWwo
X3R5cGUpOwotCi0JaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgewotCQl0ZXN0UGFzc2VkKF9h
ICsgIiBpcyBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOwotCX0gZWxzZSB7Ci0JCXRlc3RGYWls
ZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOwotCX0KLX0KLQotZnVu
Y3Rpb24gYXNzZXJ0TXNnKGFzc2VydGlvbiwgbXNnKSB7Ci0gICAgaWYgKGFzc2VydGlvbikgewot
ICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxl
ZChtc2cpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZ2MoKSB7Ci0gICAgaWYgKHdpbmRvdy5HQ0Nv
bnRyb2xsZXIpIHsKLSAgICAgICAgd2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAod2luZG93Lm9wZXJhICYmIHdpbmRvdy5vcGVy
YS5jb2xsZWN0KSB7Ci0gICAgICAgIHdpbmRvdy5vcGVyYS5jb2xsZWN0KCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICB0cnkgewotICAgICAgICB3aW5kb3cuUXVlcnlJbnRlcmZhY2Uo
Q29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSUludGVyZmFjZVJlcXVlc3RvcikKLSAgICAgICAgICAg
ICAgLmdldEludGVyZmFjZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJRE9NV2luZG93VXRpbHMp
Ci0gICAgICAgICAgICAgIC5nYXJiYWdlQ29sbGVjdCgpOwotICAgICAgICByZXR1cm47Ci0gICAg
fSBjYXRjaChlKSB7fQotCi0gICAgZnVuY3Rpb24gZ2NSZWMobikgewotICAgICAgICBpZiAobiA8
IDEpCi0gICAgICAgICAgICByZXR1cm4ge307Ci0gICAgICAgIHZhciB0ZW1wID0ge2k6ICJhYiIg
KyBpICsgKGkgLyAxMDAwMDApfTsKLSAgICAgICAgdGVtcCArPSAiZm9vIjsKLSAgICAgICAgZ2NS
ZWMobi0xKTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCi0gICAg
ICAgIGdjUmVjKDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLSAgdmFyIGVwaWxvZ3VlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7Ci0KLSAgdmFyIGJhc2VQYXRoID0gIiI7Ci0gIHZhciBleHBlY3RlZEJhc2Ug
PSAianMtdGVzdC1wcmUuanMiOwotICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdzY3JpcHQnKTsKLSAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0g
c2NyaXB0c1tpXTsgaSsrKSB7Ci0gICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7Ci0gICAgdmFyIGwg
PSBzcmMubGVuZ3RoOwotICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3Ro
KSA9PSBleHBlY3RlZEJhc2UpIHsKLSAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0g
ZXhwZWN0ZWRCYXNlLmxlbmd0aCk7Ci0gICAgICBicmVhazsKLSAgICB9Ci0gIH0KLSAgZXBpbG9n
dWUuc3JjID0gYmFzZVBhdGggKyAianMtdGVzdC1wb3N0LmpzIjsKLSAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlcGlsb2d1ZSk7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxMjE0N2NhNDMyODk1NDY4YWEyNzQ5ZTRjYTQ0MzZj
Y2VlZTg1YWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMiAr
MCwwIEBACi0ucGFzcyB7Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgY29sb3I6IGdyZWVu
OwotfQotLmZhaWwgewotICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgIGNvbG9yOiByZWQ7Ci19
Ci0jY29uc29sZSB7Ci0gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwotICAgIGZvbnQtZmFtaWx5
OiBtb25vc3BhY2U7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC10ZXN0LWhh
cm5lc3MuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC10ZXN0LWhhcm5lc3MuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZDllZWM4NGMwZjhhYzhkNDFkOTEyZjJjNjY0ODg4ZGNl
NGFiOTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9yZXNvdXJjZXMvd2ViZ2wtdGVzdC1oYXJuZXNzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTg0
ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLy8gVGhpcyBpcyBhIHRlc3QgaGFy
bmVzcyBmb3IgcnVubmluZyBqYXZhc2NyaXB0IHRlc3RzIGluIHRoZSBicm93c2VyLgotLy8gVGhl
IG9ubHkgaWRlbnRpZmllciBleHBvc2VkIGJ5IHRoaXMgaGFybmVzcyBpcyBXZWJHTFRlc3RIYXJu
ZXNzTW9kdWxlLgotLy8KLS8vIFRvIHVzZSBpdCBtYWtlIGFuIEhUTUwgcGFnZSB3aXRoIGFuIGlm
cmFtZS4gVGhlbiBjYWxsIHRoZSBoYXJuZXNzIGxpa2UgdGhpcwotLy8KLS8vICAgIGZ1bmN0aW9u
IHJlcG9ydFJlc3VsdHModHlwZSwgbXNnLCBzdWNjZXNzKSB7Ci0vLyAgICAgIC4uLgotLy8gICAg
ICByZXR1cm4gdHJ1ZTsKLS8vICAgIH0KLS8vCi0vLyAgICB2YXIgZmlsZUxpc3RVUkwgPSAnMDBf
dGVzdF9saXN0LnR4dCc7Ci0vLyAgICB2YXIgdGVzdEhhcm5lc3MgPSBuZXcgV2ViR0xUZXN0SGFy
bmVzc01vZHVsZS5UZXN0SGFybmVzcygKLS8vICAgICAgICBpZnJhbWUsCi0vLyAgICAgICAgZmls
ZUxpc3RVUkwsCi0vLyAgICAgICAgcmVwb3J0UmVzdWx0cywKLS8vICAgICAgICBvcHRpb25zKTsK
LS8vCi0vLyBUaGUgaGFybmVzcyB3aWxsIGxvYWQgdGhlIGZpbGVMaXN0VVJMIGFuZCBwYXJzZSBp
dCBmb3IgdGhlIFVSTHMsIG9uZSBVUkwKLS8vIHBlciBsaW5lIHByZWNlZGVkIGJ5IG9wdGlvbnMs
IHNlZSBiZWxvdy4gVVJMcyBzaG91bGQgYmUgb24gdGhlIHNhbWUgZG9tYWluCi0vLyBhbmQgYXQg
dGhlICBzYW1lIGZvbGRlciBsZXZlbCBvciBiZWxvdyB0aGUgbWFpbiBodG1sIGZpbGUuICBJZiBh
bnkgVVJMIGVuZHMKLS8vIGluIC50eHQgaXQgd2lsbCBiZSBwYXJzZWQgYXMgd2VsbCBzbyB5b3Ug
Y2FuIG5lc3QgLnR4dCBmaWxlcy4gVVJMcyBpbnNpZGUgYQotLy8gLnR4dCBmaWxlIHNob3VsZCBi
ZSByZWxhdGl2ZSB0byB0aGF0IHRleHQgZmlsZS4KLS8vCi0vLyBEdXJpbmcgc3RhcnR1cCwgZm9y
IGVhY2ggcGFnZSBmb3VuZCB0aGUgcmVwb3J0RnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aAot
Ly8gV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRUeXBlLkFERF9QQUdF
IGFuZCBtc2cgd2lsbCBiZQotLy8gdGhlIFVSTCBvZiB0aGUgdGVzdC4KLS8vCi0vLyBFYWNoIHRl
c3QgaXMgcmVxdWlyZWQgdG8gY2FsbCB0ZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzLiBUaGlzIGlz
IG1vc3QgZWFzaWx5Ci0vLyBhY2NvbXBsaXNoZWQgYnkgc3RvcmluZyB0aGF0IHZhbHVlIG9uIHRo
ZSBtYWluIHdpbmRvdyB3aXRoCi0vLwotLy8gICAgIHdpbmRvdy53ZWJnbFRlc3RIYXJuZXNzID0g
dGVzdEhhcm5lc3MKLS8vCi0vLyBhbmQgdGhlbiBhZGRpbmcgdGhlc2UgdG8gZnVuY3Rpb25zIHRv
IHlvdXIgdGVzdHMuCi0vLwotLy8gICAgIGZ1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJu
ZXNzKHN1Y2Nlc3MsIG1zZykgewotLy8gICAgICAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0
SGFybmVzcykgewotLy8gICAgICAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVw
b3J0UmVzdWx0cyhzdWNjZXNzLCBtc2cpOwotLy8gICAgICAgfQotLy8gICAgIH0KLS8vCi0vLyAg
ICAgZnVuY3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7Ci0vLyAgICAgICBpZiAod2lu
ZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7Ci0vLyAgICAgICAgIHdpbmRvdy5wYXJlbnQu
d2ViZ2xUZXN0SGFybmVzcy5ub3RpZnlGaW5pc2hlZCgpOwotLy8gICAgICAgfQotLy8gICAgIH0K
LS8vCi0vLyBUaGlzIHdheSB5b3VyIHRlc3RzIHdpbGwgc3RpbGwgcnVuIHdpdGhvdXQgdGhlIGhh
cm5lc3MgYW5kIHlvdSBjYW4gdXNlCi0vLyBhbnkgdGVzdGluZyBmcmFtZXdvcmsgeW91IHdhbnQu
Ci0vLwotLy8gRWFjaCB0ZXN0IHNob3VsZCBjYWxsIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNz
IHdpdGggdHJ1ZSBmb3Igc3VjY2VzcyBpZiBpdAotLy8gc3VjY2VlZGVkIGFuZCBmYWxzZSBpZiBp
dCBmYWlsIGZvbGxvd2VkIGFuZCBhbnkgbWVzc2FnZSBpdCB3YW50cyB0bwotLy8gYXNzb2NpYXRl
IHdpdGggdGhlIHRlc3QuIElmIHlvdXIgdGVzdGluZyBmcmFtZXdvcmsgc3VwcG9ydHMgY2hlY2tp
bmcgZm9yCi0vLyB0aW1lb3V0IHlvdSBjYW4gY2FsbCBpdCB3aXRoIHN1Y2Nlc3MgZXF1YWwgdG8g
dW5kZWZpbmVkIGluIHRoYXQgY2FzZS4KLS8vCi0vLyBUbyBydW4gdGhlIHRlc3RzLCBjYWxsIHRl
c3RIYXJuZXNzLnJ1blRlc3RzKG9wdGlvbnMpOwotLy8KLS8vIEZvciBlYWNoIHRlc3QgcnVuLCBi
ZWZvcmUgdGhlIHBhZ2UgaXMgbG9hZGVkIHRoZSByZXBvcnRGdW5jdGlvbiB3aWxsIGJlCi0vLyBj
YWxsZWQgd2l0aCBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzLnJlcG9ydFR5cGUu
U1RBUlRfUEFHRSBhbmQgbXNnCi0vLyB3aWxsIGJlIHRoZSBVUkwgb2YgdGhlIHRlc3QuIFlvdSBt
YXkgcmV0dXJuIGZhbHNlIGlmIHlvdSB3YW50IHRoZSB0ZXN0IHRvIGJlCi0vLyBza2lwcGVkLgot
Ly8KLS8vIEZvciBlYWNoIHRlc3QgY29tcGxldGVkIHRoZSByZXBvcnRGdW5jdGlvbiB3aWxsIGJl
IGNhbGxlZCB3aXRoCi0vLyB3aXRoIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5lc3Mu
cmVwb3J0VHlwZS5URVNUX1JFU1VMVCwKLS8vIHN1Y2Nlc3MgPSB0cnVlIG9uIHN1Y2Nlc3MsIGZh
bHNlIG9uIGZhaWx1cmUsIHVuZGVmaW5lZCBvbiB0aW1lb3V0Ci0vLyBhbmQgbXNnIGlzIGFueSBt
ZXNzYWdlIHRoZSB0ZXN0IGNob29zZSB0byBwYXNzIG9uLgotLy8KLS8vIFdoZW4gYWxsIHRoZSB0
ZXN0cyBvbiB0aGUgcGFnZSBoYXZlIGZpbmlzaGVkIHlvdXIgcGFnZSBtdXN0IGNhbGwKLS8vIG5v
dGlmeUZpbmlzaGVkVG9IYXJuZXNzLiAgSWYgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MgaXMgbm90
IGNhbGxlZAotLy8gdGhlIGhhcm5lc3Mgd2lsbCBhc3N1bWUgdGhlIHRlc3QgdGltZWQgb3V0Lgot
Ly8KLS8vIFdoZW4gYWxsIHRoZSB0ZXN0cyBvbiBhIHBhZ2UgaGF2ZSBmaW5pc2hlZCBPUiB0aGUg
cGFnZSBhcyB0aW1lZCBvdXQgdGhlCi0vLyByZXBvcnRGdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3
aXRoCi0vLyBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklO
SVNIX1BBR0UKLS8vIHdoZXJlIHN1Y2Nlc3MgPSB0cnVlIGlmIHRoZSBwYWdlIGhhcyBjb21wbGV0
ZWQgb3IgdW5kZWZpbmVkIGlmIHRoZSBwYWdlIHRpbWVkCi0vLyBvdXQuCi0vLwotLy8gRmluYWxs
eSwgd2hlbiBhbGwgdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkIHRoZSByZXBvcnRGdW5jdGlvbiB3
aWxsIGJlIGNhbGxlZAotLy8gd2l0aCBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNz
LnJlcG9ydFR5cGUuRklOSVNIRURfQUxMX1RFU1RTLgotLy8KLS8vIEhhcm5lc3MgT3B0aW9ucwot
Ly8KLS8vIFRoZXNlIGFyZSBwYXNzZWQgaW4gdG8gdGhlIFRlc3RIYXJuZXNzIGFzIGEgSmF2YVNj
cmlwdCBvYmplY3QKLS8vCi0vLyB2ZXJzaW9uOiAocmVxdWlyZWQhKQotLy8KLS8vICAgICBTcGVj
aWZpZXMgYSB2ZXJzaW9uIHVzZWQgdG8gZmlsdGVyIHRlc3RzLiBUZXN0cyBtYXJrZWQgYXMgcmVx
dWlyaW5nCi0vLyAgICAgYSB2ZXJzaW9uIGdyZWF0ZXIgdGhhbiB0aGlzIHZlcnNpb24gd2lsbCBu
b3QgYmUgaW5jbHVkZWQuCi0vLwotLy8gICAgIGV4YW1wbGU6IG5ldyBUZXN0SGFybmVzcyguLi4u
LCB7dmVyc2lvbjogIjMuMS4yIn0pOwotLy8KLS8vIG1pblZlcnNpb246Ci0vLwotLy8gICAgIFNw
ZWNpZmllcyB0aGUgbWluaW11bSB2ZXJzaW9uIGEgdGVzdCBtdXN0IHJlcXVpcmUgdG8gYmUgaW5j
bHVkZWQuCi0vLyAgICAgVGhpcyBiYXNpY2FsbHkgZmxpcHMgdGhlIGZpbHRlciBzbyB0aGF0IG9u
bHkgdGVzdHMgbWFya2VkIHdpdGgKLS8vICAgICAtLW1pbi12ZXJzaW9uIHdpbGwgYmUgaW5jbHVk
ZWQgaWYgdGhleSBhcmUgYXQgdGhpcyBtaW5WZXJzaW9uIG9yCi0vLyAgICAgZ3JlYXRlci4KLS8v
Ci0vLyAgICAgZXhhbXBsZTogbmV3IFRlc3RIYXJuZXNzKC4uLi4sIHttaW5WZXJzaW9uOiAiMi4z
LjEifSk7Ci0vLwotLy8gZmFzdDoKLS8vCi0vLyAgICAgU3BlY2lmaWVzIHRvIHNraXAgYW55IHRl
c3RzIG1hcmtlZCBhcyBzbG93LgotLy8KLS8vICAgICBleGFtcGxlOiBuZXcgVGVzdEhhcm5lc3Mo
Li4uLCB7ZmFzdDogdHJ1ZX0pOwotLy8KLS8vIFRlc3QgT3B0aW9uczoKLS8vCi0vLyBBbnkgdGVz
dCBVUkwgb3IgLnR4dCBmaWxlIGNhbiBiZSBwcmVmaXhlZCBieSB0aGUgZm9sbG93aW5nIG9wdGlv
bnMKLS8vCi0vLyBtaW4tdmVyc2lvbjoKLS8vCi0vLyAgICAgU2V0cyB0aGUgbWluaW11bSB2ZXJz
aW9uIHJlcXVpcmVzIHRvIGluY2x1ZGUgdGhpcyB0ZXN0LiBBIHZlcnNpb24gaXMKLS8vICAgICBw
YXNzZWQgaW50byB0aGUgaGFybmVzcyBvcHRpb25zLiBBbnkgdGVzdCBtYXJrZWQgYXMgcmVxdWly
aW5nIGEKLS8vICAgICBtaW4tdmVyc2lvbiBncmVhdGVyIHRoYW4gdGhlIHZlcnNpb24gcGFzc2Vk
IHRvIHRoZSBoYXJuZXNzIGlzIHNraXBwZWQuCi0vLyAgICAgVGhpcyBhbGxvd3MgeW91IHRvIGFk
ZCBuZXcgdGVzdHMgdG8gYSBzdWl0ZSBvZiB0ZXN0cyBmb3IgYSBmdXR1cmUKLS8vICAgICB2ZXJz
aW9uIG9mIHRoZSBzdWl0ZSB3aXRob3V0IGluY2x1ZGluZyB0aGUgdGVzdCBpbiB0aGUgY3VycmVu
dCB2ZXJzaW9uLgotLy8gICAgIElmIG5vIC1taW4tdmVyc2lvbiBpcyBzcGVjaWZpZWQgaXQgaXMg
aW5oZXJpaXRlZCBmcm9tIHRoZSAudHh0IGZpbGUKLS8vICAgICBpbmNsdWRpbmcgaXQuIFRoZSBk
ZWZhdWx0IGlzIDEuMC4wCi0vLwotLy8gICAgIGV4YW1wbGU6ICAtLW1pbi12ZXJzaW9uIDIuMS4z
IHNvbWV0ZXN0Lmh0bWwKLS8vCi0vLyBzbG93OgotLy8KLS8vICAgICBNYXJrcyBhIHRlc3QgYXMg
c2xvdy4gU2xvdyB0ZXN0cyBjYW4gYmUgc2tpcHBlZCBieSBwYXNzaW5nIGZhc3RPbmx5OiB0cnVl
Ci0vLyAgICAgdG8gdGhlIFRlc3RIYXJuZXNzLiBPZiBjb3Vyc2UgeW91IG5lZWQgdG8gcGFzcyBh
bGwgdGVzdHMgYnV0IHNvbWV0aW1lcwotLy8gICAgIHlvdSdkIGxpa2UgdG8gdGVzdCBxdWlja2x5
IGFuZCBydW4gb25seSB0aGUgZmFzdCBzdWJzZXQgb2YgdGVzdHMuCi0vLwotLy8gICAgIGV4YW1w
bGU6ICAtLXNsb3cgc29tZS10ZXN0LXRoYXQtdGFrZXMtMi1taW5zLmh0bWwKLS8vCi0KLVdlYkdM
VGVzdEhhcm5lc3NNb2R1bGUgPSBmdW5jdGlvbigpIHsKLQotLyoqCi0gKiBXcmFwcGVkIGxvZ2dp
bmcgZnVuY3Rpb24uCi0gKi8KLXZhciBsb2cgPSBmdW5jdGlvbihtc2cpIHsKLSAgaWYgKHdpbmRv
dy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykgewotICAgIHdpbmRvdy5jb25zb2xlLmxv
Zyhtc2cpOwotICB9Ci19OwotCi0vKioKLSAqIExvYWRzIHRleHQgZnJvbSBhbiBleHRlcm5hbCBm
aWxlLiBUaGlzIGZ1bmN0aW9uIGlzIHN5bmNocm9ub3VzLgotICogQHBhcmFtIHtzdHJpbmd9IHVy
bCBUaGUgdXJsIG9mIHRoZSBleHRlcm5hbCBmaWxlLgotICogQHBhcmFtIHshZnVuY3Rpb24oYm9v
bCwgc3RyaW5nKTogdm9pZH0gY2FsbGJhY2sgdGhhdCBpcyBzZW50IGEgYm9vbCBmb3IKLSAqICAg
ICBzdWNjZXNzIGFuZCB0aGUgc3RyaW5nLgotICovCi12YXIgbG9hZFRleHRGaWxlQXN5bmNocm9u
b3VzID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewotICBsb2cgKCJsb2FkaW5nOiAiICsgdXJs
KTsKLSAgdmFyIGVycm9yID0gJ2xvYWRUZXh0RmlsZVN5bmNocm9ub3VzIGZhaWxlZCB0byBsb2Fk
IHVybCAiJyArIHVybCArICciJzsKLSAgdmFyIHJlcXVlc3Q7Ci0gIGlmICh3aW5kb3cuWE1MSHR0
cFJlcXVlc3QpIHsKLSAgICByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgaWYg
KHJlcXVlc3Qub3ZlcnJpZGVNaW1lVHlwZSkgewotICAgICAgcmVxdWVzdC5vdmVycmlkZU1pbWVU
eXBlKCd0ZXh0L3BsYWluJyk7Ci0gICAgfQotICB9IGVsc2UgewotICAgIHRocm93ICdYTUxIdHRw
UmVxdWVzdCBpcyBkaXNhYmxlZCc7Ci0gIH0KLSAgdHJ5IHsKLSAgICByZXF1ZXN0Lm9wZW4oJ0dF
VCcsIHVybCwgdHJ1ZSk7Ci0gICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlv
bigpIHsKLSAgICAgIGlmIChyZXF1ZXN0LnJlYWR5U3RhdGUgPT0gNCkgewotICAgICAgICB2YXIg
dGV4dCA9ICcnOwotICAgICAgICAvLyBIVFRQIHJlcG9ydHMgc3VjY2VzcyB3aXRoIGEgMjAwIHN0
YXR1cy4gVGhlIGZpbGUgcHJvdG9jb2wgcmVwb3J0cwotICAgICAgICAvLyBzdWNjZXNzIHdpdGgg
emVyby4gSFRUUCBkb2VzIG5vdCB1c2UgemVybyBhcyBhIHN0YXR1cyBjb2RlICh0aGV5Ci0gICAg
ICAgIC8vIHN0YXJ0IGF0IDEwMCkuCi0gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemls
bGEub3JnL0VuL1VzaW5nX1hNTEh0dHBSZXF1ZXN0Ci0gICAgICAgIHZhciBzdWNjZXNzID0gcmVx
dWVzdC5zdGF0dXMgPT0gMjAwIHx8IHJlcXVlc3Quc3RhdHVzID09IDA7Ci0gICAgICAgIGlmIChz
dWNjZXNzKSB7Ci0gICAgICAgICAgdGV4dCA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwotICAgICAg
ICB9Ci0gICAgICAgIGxvZygibG9hZGVkOiAiICsgdXJsKTsKLSAgICAgICAgY2FsbGJhY2soc3Vj
Y2VzcywgdGV4dCk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICByZXF1ZXN0LnNlbmQobnVsbCk7Ci0g
IH0gY2F0Y2ggKGUpIHsKLSAgICBsb2coImZhaWxlZCB0byBsb2FkOiAiICsgdXJsKTsKLSAgICBj
YWxsYmFjayhmYWxzZSwgJycpOwotICB9Ci19OwotCi0vKioKLSAqIENvbXBhcmUgdmVyc2lvbiBz
dHJpbmdzLgotICovCi12YXIgZ3JlYXRlclRoYW5PckVxdWFsVG9WZXJzaW9uID0gZnVuY3Rpb24o
aGF2ZSwgd2FudCkgewotICBoYXZlID0gaGF2ZS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7Ci0g
IHdhbnQgPSB3YW50LnNwbGl0KCIgIilbMF0uc3BsaXQoIi4iKTsKLQotICAvL2hhdmUgMS4yLjMg
ICB3YW50ICAxLjEKLSAgLy9oYXZlIDEuMS4xICAgd2FudCAgMS4xCi0gIC8vaGF2ZSAxLjAuOSAg
IHdhbnQgIDEuMQotICAvL2hhdmUgMS4xICAgICB3YW50ICAxLjEuMQotCi0gIGZvciAodmFyIGlp
ID0gMDsgaWkgPCB3YW50Lmxlbmd0aDsgKytpaSkgewotICAgIHZhciB3YW50TnVtID0gcGFyc2VJ
bnQod2FudFtpaV0pOwotICAgIHZhciBoYXZlTnVtID0gaGF2ZVtpaV0gPyBwYXJzZUludChoYXZl
W2lpXSkgOiAwCi0gICAgaWYgKGhhdmVOdW0gPCB3YW50TnVtKSB7Ci0gICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICB9Ci0gIHJldHVybiB0cnVlOwotfTsKLQotLyoqCi0gKiBSZWFkcyBhIGZp
bGUsIHJlY3Vyc2l2ZWx5IGFkZGluZyBmaWxlcyByZWZlcmVuY2VkIGluc2lkZS4KLSAqCi0gKiBF
YWNoIGxpbmUgb2YgVVJMIGlzIHBhcnNlZCwgY29tbWVudHMgc3RhcnRpbmcgd2l0aCAnIycgb3Ig
JzsnCi0gKiBvciAnLy8nIGFyZSBzdHJpcHBlZC4KLSAqCi0gKiBhcmd1bWVudHMgYmVnaW5uaW5n
IHdpdGggLS0gYXJlIGV4dHJhY3RlZAotICoKLSAqIGxpbmVzIHRoYXQgZW5kIGluIC50eHQgYXJl
IHJlY3Vyc2l2ZWx5IHNjYW5uZWQgZm9yIG1vcmUgZmlsZXMKLSAqIG90aGVyIGxpbmVzIGFyZSBh
ZGRlZCB0byB0aGUgbGlzdCBvZiBmaWxlcy4KLSAqCi0gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRo
ZSB1cmwgb2YgdGhlIGZpbGUgdG8gcmVhZC4KLSAqIEBwYXJhbSB7dm9pZCBmdW5jdGlvbihib29s
ZWFuLCAhQXJyYXkuPHN0cmluZz4pfSBjYWxsYmFjay4KLSAqICAgICAgQ2FsbGJhY2sgdGhhdCBp
cyBjYWxsZWQgd2l0aCB0cnVlIGZvciBzdWNjZXNzIGFuZCBhbgotICogICAgICBhcnJheSBvZiBm
aWxlbmFtZXMuCi0gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy4gT3B0aW9uYWwgb3B0aW9ucwot
ICoKLSAqIE9wdGlvbnM6Ci0gKiAgICB2ZXJzaW9uOiB7c3RyaW5nfSBUaGUgdmVyc2lvbiBvZiB0
aGUgY29uZm9ybWFuY2UgdGVzdC4KLSAqICAgIFRlc3RzIHdpdGggdGhlIGFyZ3VtZW50IC0tbWlu
LXZlcnNpb24gPHZlcnNpb24+IHdpbGwKLSAqICAgIGJlIGlnbm9yZWQgdmVyc2lvbiBpcyBsZXNz
IHRoZW4gPHZlcnNpb24+Ci0gKgotICovCi12YXIgZ2V0RmlsZUxpc3QgPSBmdW5jdGlvbih1cmws
IGNhbGxiYWNrLCBvcHRpb25zKSB7Ci0gIHZhciBmaWxlcyA9IFtdOwotCi0gIHZhciBjb3B5T2Jq
ZWN0ID0gZnVuY3Rpb24ob2JqKSB7Ci0gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdp
Znkob2JqKSk7Ci0gIH07Ci0KLSAgdmFyIHRvQ2FtZWxDYXNlID0gZnVuY3Rpb24oc3RyKSB7Ci0g
ICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8tKFthLXpdKS9nLCBmdW5jdGlvbiAoZykgeyByZXR1cm4g
Z1sxXS50b1VwcGVyQ2FzZSgpIH0pOwotICB9OwotCi0gIHZhciBnbG9iYWxPcHRpb25zID0gY29w
eU9iamVjdChvcHRpb25zKTsKLSAgZ2xvYmFsT3B0aW9ucy5kZWZhdWx0VmVyc2lvbiA9ICIxLjAi
OwotCi0gIHZhciBnZXRGaWxlTGlzdEltcGwgPSBmdW5jdGlvbihwcmVmaXgsIGxpbmUsIGxpbmVO
dW0sIGhpZXJhcmNoaWNhbE9wdGlvbnMsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIGZpbGVzID0gW107
Ci0KLSAgICB2YXIgYXJncyA9IGxpbmUuc3BsaXQoL1xzKy8pOwotICAgIHZhciBub25PcHRpb25z
ID0gW107Ci0gICAgdmFyIHVzZVRlc3QgPSB0cnVlOwotICAgIHZhciB0ZXN0T3B0aW9ucyA9IHt9
OwotICAgIGZvciAodmFyIGpqID0gMDsgamogPCBhcmdzLmxlbmd0aDsgKytqaikgewotICAgICAg
dmFyIGFyZyA9IGFyZ3NbampdOwotICAgICAgaWYgKGFyZ1swXSA9PSAnLScpIHsKLSAgICAgICAg
aWYgKGFyZ1sxXSAhPSAnLScpIHsKLSAgICAgICAgICB0aHJvdyAoImJhZCBvcHRpb24gYXQgaW4g
IiArIHVybCArICI6IiArIGxpbmVOdW0gKyAiOiAiICsgYXJnKTsKLSAgICAgICAgfQotICAgICAg
ICB2YXIgb3B0aW9uID0gYXJnLnN1YnN0cmluZygyKTsKLSAgICAgICAgc3dpdGNoIChvcHRpb24p
IHsKLSAgICAgICAgICAvLyBubyBhcmd1bWVudCBvcHRpb25zLgotICAgICAgICAgIGNhc2UgJ3Ns
b3cnOgotICAgICAgICAgICAgdGVzdE9wdGlvbnNbdG9DYW1lbENhc2Uob3B0aW9uKV0gPSB0cnVl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgLy8gb25lIGFyZ3VtZW50IG9wdGlvbnMu
Ci0gICAgICAgICAgY2FzZSAnbWluLXZlcnNpb24nOgotICAgICAgICAgICAgKytqajsKLSAgICAg
ICAgICAgIHRlc3RPcHRpb25zW3RvQ2FtZWxDYXNlKG9wdGlvbildID0gYXJnc1tqal07Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgKCJi
YWQgdW5rbm93biBvcHRpb24gJyIgKyBvcHRpb24gKyAiJyBhdCBpbiAiICsgdXJsICsgIjoiICsg
bGluZU51bSArICI6ICIgKyBhcmcpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAg
ICBub25PcHRpb25zLnB1c2goYXJnKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdmFyIHVybCA9IHBy
ZWZpeCArIG5vbk9wdGlvbnMuam9pbigiICIpOwotCi0gICAgaWYgKHVybC5zdWJzdHIodXJsLmxl
bmd0aCAtIDQpICE9ICcudHh0JykgewotICAgICAgdmFyIG1pblZlcnNpb24gPSB0ZXN0T3B0aW9u
cy5taW5WZXJzaW9uOwotICAgICAgaWYgKCFtaW5WZXJzaW9uKSB7Ci0gICAgICAgIG1pblZlcnNp
b24gPSBoaWVyYXJjaGljYWxPcHRpb25zLmRlZmF1bHRWZXJzaW9uOwotICAgICAgfQotICAgICAg
dmFyIHNsb3cgPSB0ZXN0T3B0aW9ucy5zbG93OwotICAgICAgaWYgKCFzbG93KSB7Ci0gICAgICAg
IHNsb3cgPSBoaWVyYXJjaGljYWxPcHRpb25zLmRlZmF1bHRTbG93OwotICAgICAgfQotCi0gICAg
ICBpZiAoZ2xvYmFsT3B0aW9ucy5mYXN0ICYmIHNsb3cpIHsKLSAgICAgICAgdXNlVGVzdCA9IGZh
bHNlOwotICAgICAgfSBlbHNlIGlmIChnbG9iYWxPcHRpb25zLm1pblZlcnNpb24pIHsKLSAgICAg
ICAgdXNlVGVzdCA9IGdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbihtaW5WZXJzaW9uLCBnbG9i
YWxPcHRpb25zLm1pblZlcnNpb24pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdXNlVGVzdCA9
IGdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbihnbG9iYWxPcHRpb25zLnZlcnNpb24sIG1pblZl
cnNpb24pOwotICAgICAgfQotICAgIH0KLQotICAgIGlmICghdXNlVGVzdCkgewotICAgICAgY2Fs
bGJhY2sodHJ1ZSwgW10pOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh1cmwuc3Vi
c3RyKHVybC5sZW5ndGggLSA0KSA9PSAnLnR4dCcpIHsKLSAgICAgIC8vIElmIGEgdmVyc2lvbiB3
YXMgZXhwbGljaXR5IHNwZWNpZmllZCBwYXNzIGl0IGRvd24uCi0gICAgICBpZiAodGVzdE9wdGlv
bnMubWluVmVyc2lvbikgewotICAgICAgICBoaWVyYXJjaGljYWxPcHRpb25zLmRlZmF1bHRWZXJz
aW9uID0gdGVzdE9wdGlvbnMubWluVmVyc2lvbjsKLSAgICAgIH0KLSAgICAgIGlmICh0ZXN0T3B0
aW9ucy5zbG93KSB7Ci0gICAgICAgIGhpZXJhcmNoaWNhbE9wdGlvbnMuZGVmYXVsdFNsb3cgPSB0
ZXN0T3B0aW9ucy5zbG93OwotICAgICAgfQotICAgICAgbG9hZFRleHRGaWxlQXN5bmNocm9ub3Vz
KHVybCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCB0ZXh0
KSB7Ci0gICAgICAgICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhmYWxz
ZSwgJycpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIg
bGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOwotICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAg
ICAgICAgICB2YXIgbGFzdFNsYXNoID0gdXJsLmxhc3RJbmRleE9mKCcvJyk7Ci0gICAgICAgICAg
aWYgKGxhc3RTbGFzaCA+PSAwKSB7Ci0gICAgICAgICAgICBwcmVmaXggPSB1cmwuc3Vic3RyKDAs
IGxhc3RTbGFzaCArIDEpOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgZmFpbCA9IGZhbHNl
OwotICAgICAgICAgIHZhciBjb3VudCA9IDE7Ci0gICAgICAgICAgdmFyIGluZGV4ID0gMDsKLSAg
ICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgbGluZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAg
ICAgICAgICB2YXIgc3RyID0gbGluZXNbaWldLnJlcGxhY2UoL15cc1xzKi8sICcnKS5yZXBsYWNl
KC9cc1xzKiQvLCAnJyk7Ci0gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IDQgJiYKLSAgICAg
ICAgICAgICAgICBzdHJbMF0gIT0gJyMnICYmCi0gICAgICAgICAgICAgICAgc3RyWzBdICE9ICI7
IiAmJgotICAgICAgICAgICAgICAgIHN0ci5zdWJzdHIoMCwgMikgIT0gIi8vIikgewotICAgICAg
ICAgICAgICArK2NvdW50OwotICAgICAgICAgICAgICBnZXRGaWxlTGlzdEltcGwocHJlZml4LCBz
dHIsIGlpICsgMSwgY29weU9iamVjdChoaWVyYXJjaGljYWxPcHRpb25zKSwgZnVuY3Rpb24oaW5k
ZXgpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2VzcywgbmV3X2ZpbGVz
KSB7Ci0gICAgICAgICAgICAgICAgICAvL2xvZygiZ290IGZpbGVzOiAiICsgbmV3X2ZpbGVzLmxl
bmd0aCk7Ci0gICAgICAgICAgICAgICAgICBpZiAoc3VjY2VzcykgewotICAgICAgICAgICAgICAg
ICAgICBmaWxlc1tpbmRleF0gPSBuZXdfZmlsZXM7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICBmaW5pc2goc3VjY2Vzcyk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAg
ICAgICAgICAgfShpbmRleCsrKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAg
ICAgIGZpbmlzaCh0cnVlKTsKLQotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChzdWNjZXNzKSB7
Ci0gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgICAgICAgZmFpbCA9IHRydWU7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAtLWNvdW50OwotICAgICAgICAgICAgLy9sb2co
ImNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgaWYgKCFjb3VudCkgewotICAgICAgICAg
ICAgICBjYWxsYmFjayghZmFpbCwgZmlsZXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgfSgpKTsKLSAgICB9IGVsc2UgewotICAgICAgZmlsZXMucHVzaCh1
cmwpOwotICAgICAgY2FsbGJhY2sodHJ1ZSwgZmlsZXMpOwotICAgIH0KLSAgfTsKLQotICBnZXRG
aWxlTGlzdEltcGwoJycsIHVybCwgMSwgZ2xvYmFsT3B0aW9ucywgZnVuY3Rpb24oc3VjY2Vzcywg
ZmlsZXMpIHsKLSAgICAvLyBmbGF0dGVuCi0gICAgdmFyIGZsYXQgPSBbXTsKLSAgICBmbGF0dGVu
KGZpbGVzKTsKLSAgICBmdW5jdGlvbiBmbGF0dGVuKGZpbGVzKSB7Ci0gICAgICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgZmlsZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IGZp
bGVzW2lpXTsKLSAgICAgICAgaWYgKHR5cGVvZih2YWx1ZSkgPT0gInN0cmluZyIpIHsKLSAgICAg
ICAgICBmbGF0LnB1c2godmFsdWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGZsYXR0
ZW4odmFsdWUpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIGNhbGxiYWNrKHN1Y2Nl
c3MsIGZsYXQpOwotICB9KTsKLX07Ci0KLXZhciBGaWx0ZXJVUkwgPSAoZnVuY3Rpb24oKSB7Ci0g
IHZhciBwcmVmaXggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7Ci0gIHByZWZpeCA9IHByZWZp
eC5zdWJzdHJpbmcoMCwgcHJlZml4Lmxhc3RJbmRleE9mKCIvIikgKyAxKTsKLSAgcmV0dXJuIGZ1
bmN0aW9uKHVybCkgewotICAgIGlmICh1cmwuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgpID09
IHByZWZpeCkgewotICAgICAgdXJsID0gdXJsLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHVybDsKLSAgfTsKLX0oKSk7Ci0KLXZhciBUZXN0RmlsZSA9IGZ1bmN0
aW9uKHVybCkgewotICB0aGlzLnVybCA9IHVybDsKLX07Ci0KLXZhciBUZXN0ID0gZnVuY3Rpb24o
ZmlsZSkgewotICB0aGlzLmZpbGUgPSBmaWxlOwotfTsKLQotdmFyIFRlc3RIYXJuZXNzID0gZnVu
Y3Rpb24oaWZyYW1lLCBmaWxlbGlzdFVybCwgcmVwb3J0RnVuYywgb3B0aW9ucykgewotICB0aGlz
LndpbmRvdyA9IHdpbmRvdzsKLSAgdGhpcy5pZnJhbWVzID0gaWZyYW1lLmxlbmd0aCA/IGlmcmFt
ZSA6IFtpZnJhbWVdOwotICB0aGlzLnJlcG9ydEZ1bmMgPSByZXBvcnRGdW5jOwotICB0aGlzLnRp
bWVvdXREZWxheSA9IDIwMDAwOwotICB0aGlzLmZpbGVzID0gW107Ci0gIHRoaXMuYWxsb3dTa2lw
ID0gb3B0aW9ucy5hbGxvd1NraXA7Ci0KLSAgdmFyIHRoYXQgPSB0aGlzOwotICBnZXRGaWxlTGlz
dChmaWxlbGlzdFVybCwgZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3Ms
IGZpbGVzKSB7Ci0gICAgICB0aGF0LmFkZEZpbGVzXyhzdWNjZXNzLCBmaWxlcyk7Ci0gICAgfTsK
LSAgfSgpLCBvcHRpb25zKTsKLQotfTsKLQotVGVzdEhhcm5lc3MucmVwb3J0VHlwZSA9IHsKLSAg
QUREX1BBR0U6IDEsCi0gIFJFQURZOiAyLAotICBTVEFSVF9QQUdFOiAzLAotICBURVNUX1JFU1VM
VDogNCwKLSAgRklOSVNIX1BBR0U6IDUsCi0gIEZJTklTSEVEX0FMTF9URVNUUzogNgotfTsKLQot
VGVzdEhhcm5lc3MucHJvdG90eXBlLmFkZEZpbGVzXyA9IGZ1bmN0aW9uKHN1Y2Nlc3MsIGZpbGVz
KSB7Ci0gIGlmICghc3VjY2VzcykgewotICAgIHRoaXMucmVwb3J0RnVuYygKLSAgICAgICAgVGVz
dEhhcm5lc3MucmVwb3J0VHlwZS5GSU5JU0hFRF9BTExfVEVTVFMsCi0gICAgICAgICcnLAotICAg
ICAgICAnVW5hYmxlIHRvIGxvYWQgdGVzdHMuIEFyZSB5b3UgcnVubmluZyBsb2NhbGx5P1xuJyAr
Ci0gICAgICAgICdZb3UgbmVlZCB0byBydW4gZnJvbSBhIHNlcnZlciBvciBjb25maWd1cmUgeW91
clxuJyArCi0gICAgICAgICdicm93c2VyIHRvIGFsbG93IGFjY2VzcyB0byBsb2NhbCBmaWxlcyAo
bm90IHJlY29tbWVuZGVkKS5cblxuJyArCi0gICAgICAgICdOb3RlOiBBbiBlYXN5IHdheSB0byBy
dW4gZnJvbSBhIHNlcnZlcjpcblxuJyArCi0gICAgICAgICdcdGNkIHBhdGhfdG9fdGVzdHNcbicg
KwotICAgICAgICAnXHRweXRob24gLW0gU2ltcGxlSFRUUFNlcnZlclxuXG4nICsKLSAgICAgICAg
J3RoZW4gcG9pbnQgeW91ciBicm93c2VyIHRvICcgKwotICAgICAgICAgICc8YSBocmVmPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuaHRtbCI+JyArCi0gICAg
ICAgICAgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC93ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy5odG1s
PC9hPicsCi0gICAgICAgIGZhbHNlKQotICAgIHJldHVybjsKLSAgfQotICBsb2coInRvdGFsIGZp
bGVzOiAiICsgZmlsZXMubGVuZ3RoKTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZpbGVzLmxl
bmd0aDsgKytpaSkgewotICAgIGxvZygiIiArIGlpICsgIjogIiArIGZpbGVzW2lpXSk7Ci0gICAg
dGhpcy5maWxlcy5wdXNoKG5ldyBUZXN0RmlsZShmaWxlc1tpaV0pKTsKLSAgICB0aGlzLnJlcG9y
dEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5BRERfUEFHRSwgJycsIGZpbGVzW2lpXSwgdW5k
ZWZpbmVkKTsKLSAgfQotICB0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5S
RUFEWSwgJycsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKLX0KLQotVGVzdEhhcm5lc3MucHJvdG90
eXBlLnJ1blRlc3RzID0gZnVuY3Rpb24ob3B0X29wdGlvbnMpIHsKLSAgdmFyIG9wdGlvbnMgPSBv
cHRfb3B0aW9ucyB8fCB7IH07Ci0gIG9wdGlvbnMuc3RhcnQgPSBvcHRpb25zLnN0YXJ0IHx8IDA7
Ci0gIG9wdGlvbnMuY291bnQgPSBvcHRpb25zLmNvdW50IHx8IHRoaXMuZmlsZXMubGVuZ3RoOwot
Ci0gIHRoaXMuaWRsZUlGcmFtZXMgPSB0aGlzLmlmcmFtZXMuc2xpY2UoMCk7Ci0gIHRoaXMucnVu
bmluZ1Rlc3RzID0ge307Ci0gIHZhciB0ZXN0c1RvUnVuID0gW107Ci0gIGZvciAodmFyIGlpID0g
MDsgaWkgPCBvcHRpb25zLmNvdW50OyArK2lpKSB7Ci0gICAgdGVzdHNUb1J1bi5wdXNoKGlpICsg
b3B0aW9ucy5zdGFydCk7Ci0gIH0KLSAgdGhpcy5udW1UZXN0c1JlbWFpbmluZyA9IG9wdGlvbnMu
Y291bnQ7Ci0gIHRoaXMudGVzdHNUb1J1biA9IHRlc3RzVG9SdW47Ci0gIHRoaXMuc3RhcnROZXh0
VGVzdCgpOwotfTsKLQotVGVzdEhhcm5lc3MucHJvdG90eXBlLnNldFRpbWVvdXQgPSBmdW5jdGlv
bih0ZXN0KSB7Ci0gIHZhciB0aGF0ID0gdGhpczsKLSAgdGVzdC50aW1lb3V0SWQgPSB0aGlzLndp
bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgdGhhdC50aW1lb3V0KHRlc3QpOwot
ICAgIH0sIHRoaXMudGltZW91dERlbGF5KTsKLX07Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5j
bGVhclRpbWVvdXQgPSBmdW5jdGlvbih0ZXN0KSB7Ci0gIHRoaXMud2luZG93LmNsZWFyVGltZW91
dCh0ZXN0LnRpbWVvdXRJZCk7Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuc3RhcnROZXh0
VGVzdCA9IGZ1bmN0aW9uKCkgewotICBpZiAodGhpcy5udW1UZXN0c1JlbWFpbmluZyA9PSAwKSB7
Ci0gICAgbG9nKCJkb25lIik7Ci0gICAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9y
dFR5cGUuRklOSVNIRURfQUxMX1RFU1RTLAotICAgICAgICAgICAgICAgICAgICAnJywgJycsIHRy
dWUpOwotICB9IGVsc2UgewotICAgIHdoaWxlICh0aGlzLnRlc3RzVG9SdW4ubGVuZ3RoID4gMCAm
JiB0aGlzLmlkbGVJRnJhbWVzLmxlbmd0aCA+IDApIHsKLSAgICAgIHZhciB0ZXN0SWQgPSB0aGlz
LnRlc3RzVG9SdW4uc2hpZnQoKTsKLSAgICAgIHZhciBpZnJhbWUgPSB0aGlzLmlkbGVJRnJhbWVz
LnNoaWZ0KCk7Ci0gICAgICB0aGlzLnN0YXJ0VGVzdChpZnJhbWUsIHRoaXMuZmlsZXNbdGVzdElk
XSk7Ci0gICAgfQotICB9Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuc3RhcnRUZXN0ID0g
ZnVuY3Rpb24oaWZyYW1lLCB0ZXN0RmlsZSkgewotICB2YXIgdGVzdCA9IHsKLSAgICBpZnJhbWU6
IGlmcmFtZSwKLSAgICB0ZXN0RmlsZTogdGVzdEZpbGUKLSAgfTsKLSAgdmFyIHVybCA9IHRlc3RG
aWxlLnVybDsKLSAgdGhpcy5ydW5uaW5nVGVzdHNbdXJsXSA9IHRlc3Q7Ci0gIGxvZygibG9hZGlu
ZzogIiArIHVybCk7Ci0gIGlmICh0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlw
ZS5TVEFSVF9QQUdFLCB1cmwsIHVybCwgdW5kZWZpbmVkKSkgewotICAgIGlmcmFtZS5zcmMgPSB1
cmw7Ci0gICAgdGhpcy5zZXRUaW1lb3V0KHRlc3QpOwotICB9IGVsc2UgewotICAgIHRoaXMucmVw
b3J0UmVzdWx0cyh1cmwsICEhdGhpcy5hbGxvd1NraXAsICJza2lwcGVkIiwgdHJ1ZSk7Ci0gICAg
dGhpcy5ub3RpZnlGaW5pc2hlZCh1cmwpOwotICB9Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5
cGUuZ2V0VGVzdCA9IGZ1bmN0aW9uKHVybCkgewotICB2YXIgdGVzdCA9IHRoaXMucnVubmluZ1Rl
c3RzW0ZpbHRlclVSTCh1cmwpXTsKLSAgaWYgKCF0ZXN0KSB7Ci0gICAgdGhyb3coInVua25vd24g
dGVzdDoiICsgdXJsKTsKLSAgfQotICByZXR1cm4gdGVzdDsKLX07Ci0KLVRlc3RIYXJuZXNzLnBy
b3RvdHlwZS5yZXBvcnRSZXN1bHRzID0gZnVuY3Rpb24odXJsLCBzdWNjZXNzLCBtc2csIHNraXBw
ZWQpIHsKLSAgdXJsID0gRmlsdGVyVVJMKHVybCk7Ci0gIHZhciB0ZXN0ID0gdGhpcy5nZXRUZXN0
KHVybCk7Ci0gIHRoaXMuY2xlYXJUaW1lb3V0KHRlc3QpOwotICBsb2coc3VjY2VzcyA/ICJQQVNT
IiA6ICJGQUlMIiwgbXNnKTsKLSAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5
cGUuVEVTVF9SRVNVTFQsIHVybCwgbXNnLCBzdWNjZXNzLCBza2lwcGVkKTsKLSAgLy8gRm9yIGVh
Y2ggcmVzdWx0IHdlIGdldCwgcmVzZXQgdGhlIHRpbWVvdXQKLSAgdGhpcy5zZXRUaW1lb3V0KHRl
c3QpOwotfTsKLQotVGVzdEhhcm5lc3MucHJvdG90eXBlLmRlcXVlVGVzdCA9IGZ1bmN0aW9uKHRl
c3QpIHsKLSAgdGhpcy5jbGVhclRpbWVvdXQodGVzdCk7Ci0gIHRoaXMuaWRsZUlGcmFtZXMucHVz
aCh0ZXN0LmlmcmFtZSk7Ci0gIGRlbGV0ZSB0aGlzLnJ1bm5pbmdUZXN0c1t0ZXN0LnRlc3RGaWxl
LnVybF07Ci0gIC0tdGhpcy5udW1UZXN0c1JlbWFpbmluZzsKLX0KLQotVGVzdEhhcm5lc3MucHJv
dG90eXBlLm5vdGlmeUZpbmlzaGVkID0gZnVuY3Rpb24odXJsKSB7Ci0gIHVybCA9IEZpbHRlclVS
TCh1cmwpOwotICB2YXIgdGVzdCA9IHRoaXMuZ2V0VGVzdCh1cmwpOwotICBsb2codXJsICsgIjog
ZmluaXNoZWQiKTsKLSAgdGhpcy5kZXF1ZVRlc3QodGVzdCk7Ci0gIHRoaXMucmVwb3J0RnVuYyhU
ZXN0SGFybmVzcy5yZXBvcnRUeXBlLkZJTklTSF9QQUdFLCB1cmwsIHVybCwgdHJ1ZSk7Ci0gIHRo
aXMuc3RhcnROZXh0VGVzdCgpOwotfTsKLQotVGVzdEhhcm5lc3MucHJvdG90eXBlLnRpbWVvdXQg
PSBmdW5jdGlvbih0ZXN0KSB7Ci0gIHRoaXMuZGVxdWVUZXN0KHRlc3QpOwotICB2YXIgdXJsID0g
dGVzdC50ZXN0RmlsZS51cmw7Ci0gIGxvZyh1cmwgKyAiOiB0aW1lb3V0Iik7Ci0gIHRoaXMucmVw
b3J0RnVuYyhUZXN0SGFybmVzcy5yZXBvcnRUeXBlLkZJTklTSF9QQUdFLCB1cmwsIHVybCwgdW5k
ZWZpbmVkKTsKLSAgdGhpcy5zdGFydE5leHRUZXN0KCk7Ci19OwotCi1UZXN0SGFybmVzcy5wcm90
b3R5cGUuc2V0VGltZW91dERlbGF5ID0gZnVuY3Rpb24oeCkgewotICB0aGlzLnRpbWVvdXREZWxh
eSA9IHg7Ci19OwotCi1yZXR1cm4gewotICAgICdUZXN0SGFybmVzcyc6IFRlc3RIYXJuZXNzCi0g
IH07Ci0KLX0oKTsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGM5MWMyM2ViZTcwMTVk
M2I0OTExYjE3MDZhODQzYmVkMDI1MzM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NSAr
MCwwIEBACi0idXNlIHN0cmljdCI7Ci0oZnVuY3Rpb24oKSB7Ci0gIHZhciBudW1GYWlsdXJlcyA9
IDA7Ci0KLSAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1
bm5lcjsKLSAgfQotCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwotCi0gICAgLy8gVHVybiBvZmYgY29uc29sZSBtZXNzYWdlcyBi
ZWNhdXNlIGZvciB0aGUgV2ViR0wgdGVzdHMgdGhleSBhcmUKLSAgICAvLyBHUFUgY2FwYWJpbGl0
eSBkZXBlbmRlbnQuCi0gICAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07Ci0g
ICAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKLSAgfQotCi0KLSAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdl
YkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Ci0gIH0KLQotICB2YXIgbG9nID0gZnVu
Y3Rpb24obXNnLCBjb2xvcikgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNn
KSk7Ci0gICAgaWYgKGNvbG9yKSB7Ci0gICAgICBkaXYuc3R5bGUuY29sb3IgPSBjb2xvcjsKLSAg
ICB9Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFwcGVuZENoaWxkKGRp
dik7Ci0gIH07Ci0KLSAgd2luZG93LndlYmdsVGVzdEhhcm5lc3MgPSB7Ci0gICAgcmVwb3J0UmVz
dWx0czogZnVuY3Rpb24odXJsLCBzdWNjZXNzLCBtc2cpIHsKLSAgICAgIGlmICghc3VjY2Vzcykg
ewotICAgICAgICArK251bUZhaWx1cmVzOwotICAgICAgfQotICAgIH0sCi0KLSAgICBub3RpZnlG
aW5pc2hlZDogZnVuY3Rpb24odXJsKSB7Ci0gICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImlmcmFtZSIpOwotICAgICAgaWZyYW1lLmlubmVySFRNTCA9ICIiOwotICAg
ICAgaWYgKG51bUZhaWx1cmVzID4gMCkgewotICAgICAgICBsb2coIkZBSUwiLCAicmVkIik7Ci0g
ICAgICB9IGVsc2UgewotICAgICAgICBsb2coIlBBU1MiLCAiZ3JlZW4iKTsKLSAgICAgIH0KLQot
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICB9Ci0gICAgfSwKLSAgfQotfSgpKTsK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTJiZTU1ZDdlZGZiMTY1ZGNhODZhN2Y1Njc3MDY4ZjYxMzdmNDFjMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDUgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IHJlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRI
VE1MLmh0bWwKLVBBU1MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi90ZXhJbWFnZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhOGY5MmI5MmRmODIwMjdiZGQ4OTUxZGYzZGZmZTlhMTlhNmZhMWMwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICsw
LDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmds
LXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIHRleEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJyZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhy
ZWY9InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLmh0bWwiPnJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw8L2E+Ci08ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5o
dG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
dGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRjNDNkNmFlMzYzMDUwZTAyZjM4YmVhYzRhZTZhOWVkYmNhMDgyODEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgot
Ci1UZXN0OiByZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCi1QQVNTCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ZhZDdlNTEzYmFjNDk5Zjg0ZTY4ZWE1MDNjNjZi
YjA2YmQ2YTdiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdlMkRIVE1MLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Ci08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJESFRN
TC5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291
cmNlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10
ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sIj5y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhT
dWJJbWFnZTJESFRNTC5odG1sPC9hPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxkaXYgaWQ9
ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYTU5Y2JjM2VjMThhYjM5MjU5Y2Iz
NDMwZTE0Yzk2YmE1NWU2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRB
cmdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVW5hYmxl
IHRvIGdldCBpbWFnZSBkYXRhIGZyb20gY2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVl
biB0YWludGVkIGJ5IGNyb3NzLW9yaWdpbiBkYXRhLgorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
CisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKK1sgUEFTUyBdIEFsbCB0
ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmY2YWJkOGE5ZjE2MDkzMGMz
YzAzNGQ3ZTA0MTQ0ZmQyNDJlZjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2Vu
ZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBE
TyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9y
IHJlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3Mu
aHRtbDwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBp
eGVsc0JhZEFyZ3MuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1M
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2NiMmU0MjYxMDI1ZmI2NjkxNmEzZDRlMzUzMmYw
MmVlMjVhMDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRN
TC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZiN2U2MDJjNjI0YmU0MTViYmZmNDViZWMyMTQ2MjYyNDI5NGY0
NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4SW1hZ2UyREhUTUwuaHRtbDwv
dGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1s
Ij4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiB3aWR0aD0iODAwIiBoZWln
aHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
ZDFhOTAyMGJkNmQ2MzBhYzQyYWRmODk0MDljMDgyMDc4YjFjNzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Ro
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODJhMWZmMzg5MjQ1NDIwYTgwNjgyNDk4ZjMwNjdkZmViNGM2M2FjZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJESFRNTC5odG1sPC90aXRsZT4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwv
cD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiPi4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdo
dD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWZmYWM5N2NhZWIyMTgzNTViZDZhOTM1YTk0ZDVmOWNlOTk3NDExNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBbbG9hZENyb3NzT3JpZ2luSW1hZ2VdCitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2UuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIyZDY3MmUyZTc3NWQyNGFiNTU0MzQ4NmRmMTA2N2RmY2EwOGY0ZTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2Fk
Q3Jvc3NPcmlnaW5JbWFnZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAorWyBQQVNT
IF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBhNTEzY2NlZmEwZDU3Yjk0NzVjNzI2
YzNhNWNlN2Q1MTAxZTlkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8
aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2Fu
dmFzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yY2M1OGY4N2M0NWE2MDZjMzYwNDhmNTNhZDc0YzkzMDdjYzg2
Y2EzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48
L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc1NmMyMjljZTk2
M2FmNWM2NmVkNmY5NjU4NDU5ZTJkNzcwNjQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVh
ZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNT
QUdFOiBVbmFibGUgdG8gZ2V0IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0aGUgY2Fu
dmFzIGhhcyBiZWVuIHRhaW50ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuCitUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbD93ZWJn
bFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9y
ZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzMWFlODcxYWQxYzI1ZTlmZWQwNDZlZTJlYjE0NDZmYTk4NjY2ZGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0bGU+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dl
YmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lv
bj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+
PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMzY3ZDFkZDU0NGYwZTg2
OTU3MGZlYmUyZmQwZDNmYjQwMWQ4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0y
CitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRI
VE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI4ZjVhZDE5
ZWJiYzZkZWM0NGY1MmJmYTRlNTU2MjhlMmM3N2ZhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciB0ZXhJbWFnZTJESFRNTC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgor
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1h
Z2UyREhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzhkNTY3Nzk0YmZkOWIxNTQxMDE2M2FhYTNmY2NhMDZjYTE3OThmMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0
cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4U3ViSW1hZ2UyREhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzBiZTY1ZGRmZjQyYjM0YzczMzcz
NmUzNTNkYzg2YTgzNDU2MzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJE
SFRNTC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRl
eFN1YkltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3Vi
SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8
aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249
MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNGRhZjkwNjgzMDIwNjkzYTJkMzM0ODY3Mzhj
YjZmYWJiYTcyMmIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2Fk
Q3Jvc3NPcmlnaW5JbWFnZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk0ZjQzY2Fi
ZWJiMGQ5MmU4NGU2MTM1NjNjN2MwZWE5NDEzMGIwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogW2xvYWRDcm9zc09yaWdpbkltYWdlXQorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3Jl
ZW5jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjEwN2U5ZmNkMTliY2FkMDkyNzkwMTgyMWNlNjE4
OWI4NzQyN2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1vZmZzY3JlZW5jYW52YXMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBp
cyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5j
ZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBX
cmFwcGVyIGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9h
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzNWVkN2RlOWEwNjllMDA0MmY5OTJlM2IyNWRkN2ExMDA2NzIwZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2UuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MiIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTAyNmY2MDgzN2ZkOTEzZTVjNThhNjhlOTQwYjQyMWUxODA5ZjRhYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2FkQ3Jvc3NPcmln
aW5JbWFnZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIK
K1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIyMTRjYTk0MGMyMDI4
NzRlODEwMTA0NTQwNjM0NzI5MDc0YTUyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRl
LXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBD
b25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVz
L21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmds
VmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc1YmRiY2VkNzExNjBmMTE2M2M2MTE1M2E2YzZhM2JiMWJkMDA5YjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcwpAQCAtMCwwICsxLDUxOSBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAor
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCisoZnVuY3Rp
b24oKSB7CisgIHZhciB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gZmFsc2U7CisKKyAgdmFyIGlu
aXROb25LaHJvbm9zRnJhbWV3b3JrID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRlc3RIYXJuZXNz
SW5pdGlhbGl6ZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEhhcm5lc3NJbml0
aWFsaXplZCA9IHRydWU7CisKKyAgICAvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUgLS0gKi8K
KworICAgIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0UnVubmVyOwor
ICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMgY29uc29sZSBvdXRw
dXQuCisgICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRlc3RzIGlzIEdQ
VSBkZXBlbmRlbnQKKyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMuCisgICAg
ICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdpbmRvdy5jb25z
b2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisKKyAgICAgIC8vIFJB
RiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhlIHRlc3RzIHdp
bGwKKyAgICAgIC8vIHVzZSBzZXRUaW1lb3V0IGluc3RlYWQuCisgICAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOworICAgICAgd2luZG93LndlYmtpdFJlcXVlc3RB
bmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICAvKiAtLSBlbmQgcGxhdGZv
cm0gc3BlY2lmaWMgY29kZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0aW5nSGFybmVzcyA9
IGZ1bmN0aW9uKCkgeworICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKCk7CisgIH0KK30oKSk7
CisKK2Z1bmN0aW9uIG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgeworICAvLyBXZWJL
aXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICB9Cit9CisKK2Z1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3Ms
IG1zZykgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2lu
ZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG5vdGlmeUZpbmlz
aGVkVG9IYXJuZXNzKCkgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7
CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRv
dy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3
b3JrTm90aWZ5RG9uZSkgeworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9u
ZSgpOworICB9Cit9CisKK2Z1bmN0aW9uIF9sb2dUb0NvbnNvbGUobXNnKQoreworICAgIGlmICh3
aW5kb3cuY29uc29sZSkKKyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOworfQorCit2YXIg
X2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nID0gZmFsc2U7CisKK2Z1bmN0aW9uIGVuYWJsZUpTVGVz
dFByZVZlcmJvc2VMb2dnaW5nKCkKK3sKKyAgICBfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcgPSB0
cnVlOworfQorCitmdW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCit7CisgICAgaW5pdFRlc3RpbmdI
YXJuZXNzKCk7CisgICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICBtc2cgPSBkb2N1
bWVudC50aXRsZTsKKyAgICB9CisgICAgLy8gRm9yIE1TSUUgNiBjb21wYXRpYmlsaXR5CisgICAg
dmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5l
ckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4iIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Ii48L3A+JzsK
KyAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRp
b24iKTsKKyAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkKKyAgICAgICAgZGVzY3JpcHRp
b24ucmVwbGFjZUNoaWxkKHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpOworICAgIGVsc2UK
KyAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgaWYgKF9qc1Rlc3RQ
cmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKG1zZyk7CisgICAgfQor
fQorCitmdW5jdGlvbiBfYWRkU3Bhbihjb250ZW50cykKK3sKKyAgICB2YXIgc3BhbiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmFwcGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwg
a25vd3MgdGhlIG5hbWVzcGFjZQorICAgIHNwYW4uaW5uZXJIVE1MID0gY29udGVudHMgKyAnPGJy
IC8+JzsKK30KKworZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIF9hZGRTcGFuKG1zZyk7Cisg
ICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworCV9sb2dUb0NvbnNvbGUobXNnKTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGVzY2FwZUhUTUwodGV4dCkKK3sKKyAgICByZXR1cm4gdGV4
dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZsdDsiKTsKK30KKworZnVu
Y3Rpb24gdGVzdFBhc3NlZChtc2cpCit7CisgICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3Mo
dHJ1ZSwgbXNnKTsKKyAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8
L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgIGlmIChfanNUZXN0
UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKwlfbG9nVG9Db25zb2xlKCdQQVNTICcgKyBtc2cpOworICAg
IH0KK30KKworZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpCit7CisgICAgcmVwb3J0VGVzdFJlc3Vs
dHNUb0hhcm5lc3MoZmFsc2UsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNz
PSJmYWlsIj5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAg
ICBfbG9nVG9Db25zb2xlKCdGQUlMICcgKyBtc2cpOworfQorCitmdW5jdGlvbiBhcmVBcnJheXNF
cXVhbChfYSwgX2IpCit7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKF9hLmxlbmd0aCAhPT0gX2Iu
bGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IF9hLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKF9hW2ldICE9PSBfYltpXSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24g
aXNNaW51c1plcm8obikKK3sKKyAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZyb20gLTAg
aW4gSlMgaXMgdGhlIGZhY3QgdGhhdCAxLy0wIGlzCisgICAgLy8gLUluZmluaXR5IGluc3RlYWQg
b2YgSW5maW5pdHkKKyAgICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOworfQorCitmdW5jdGlv
biBpc1Jlc3VsdENvcnJlY3QoX2FjdHVhbCwgX2V4cGVjdGVkKQoreworICAgIGlmIChfZXhwZWN0
ZWQgPT09IDApCisgICAgICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQgJiYgKDEvX2Fj
dHVhbCkgPT09ICgxL19leHBlY3RlZCk7CisgICAgaWYgKF9hY3R1YWwgPT09IF9leHBlY3RlZCkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQpID09ICJudW1i
ZXIiICYmIGlzTmFOKF9leHBlY3RlZCkpCisgICAgICAgIHJldHVybiB0eXBlb2YoX2FjdHVhbCkg
PT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CisgICAgaWYgKE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChfZXhwZWN0ZWQpID09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChbXSkpCisgICAgICAgIHJldHVybiBhcmVBcnJheXNFcXVhbChfYWN0dWFsLCBfZXhwZWN0ZWQp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gc3RyaW5naWZ5KHYpCit7CisgICAg
aWYgKHYgPT09IDAgJiYgMS92IDwgMCkKKyAgICAgICAgcmV0dXJuICItMCI7CisgICAgZWxzZSBy
ZXR1cm4gIiIgKyB2OworfQorCitmdW5jdGlvbiBldmFsQW5kTG9nKF9hKQoreworICBpZiAodHlw
ZW9mIF9hICE9ICJzdHJpbmciKQorICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRMb2coKSBleHBlY3Rz
IGEgc3RyaW5nIGFyZ3VtZW50Iik7CisKKyAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdzIGdv
IGhvcnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KKyAgZGVidWcoX2Ep
OworCisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNo
IChlKSB7CisgICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAg
fQorICByZXR1cm4gX2F2OworfQorCitmdW5jdGlvbiBzaG91bGRCZShfYSwgX2IsIHF1aWV0KQor
eworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmci
KQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVu
dHMiKTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAg
ICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24g
PSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRocmV3
IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmIChpc1Jlc3VsdENvcnJlY3Qo
X2F2LCBfYnYpKSB7CisgICAgICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGVvZihf
YXYpID09IHR5cGVvZihfYnYpKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
IiArIF9idiArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIg
KyB0eXBlb2YgX2J2ICsgIikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9h
diArICIpLiIpOworfQorCitmdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIHF1aWV0KQorewor
ICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQor
ICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVu
dHMiKTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAg
ICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24g
PSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiBU
aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29y
cmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgbm90ICIgKyBfYik7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkQmVUcnVlKF9hKSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIpOyB9Citm
dW5jdGlvbiBzaG91bGRCZUZhbHNlKF9hKSB7IHNob3VsZEJlKF9hLCAiZmFsc2UiKTsgfQorZnVu
Y3Rpb24gc2hvdWxkQmVOYU4oX2EpIHsgc2hvdWxkQmUoX2EsICJOYU4iKTsgfQorZnVuY3Rpb24g
c2hvdWxkQmVOdWxsKF9hKSB7IHNob3VsZEJlKF9hLCAibnVsbCIpOyB9CisKK2Z1bmN0aW9uIHNo
b3VsZEJlRXF1YWxUb1N0cmluZyhhLCBiKQoreworICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicg
KyBiLnJlcGxhY2UoLyIvZywgIlwiIikgKyAnIic7CisgIHNob3VsZEJlKGEsIHVuZXZhbGVkU3Ry
aW5nKTsKK30KKworZnVuY3Rpb24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7
CisgIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUg
YSBzdHJpbmcgdG8gYmUKKyAgLy8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVj
dGVkJyBtYXkgYmUgYW55IHR5cGUgYW5kIHdpbGwgYmUKKyAgLy8gdXNlZCB3aXRob3V0IGJlaW5n
IGV2YWwnZWQuCisgIGlmIChleHBlY3RlZCA9PSBudWxsKSB7CisgICAgLy8gRG8gdGhpcyBiZWZv
cmUgdGhlIG9iamVjdCB0ZXN0LCBzaW5jZSBudWxsIGlzIG9mIHR5cGUgJ29iamVjdCcuCisgICAg
c2hvdWxkQmVOdWxsKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1
bmRlZmluZWQiKSB7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoYWN0dWFsKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gImZ1bmN0aW9uIikgeworICAgIC8vIEFsbCB0aGlzIGZ1c3Mg
aXMgdG8gYXZvaWQgdGhlIHN0cmluZy1hcmcgd2FybmluZyBmcm9tIHNob3VsZEJlKCkuCisgICAg
dHJ5IHsKKyAgICAgIGFjdHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgIHRlc3RGYWlsZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6IFRocmV3IGV4
Y2VwdGlvbiAiICsgZSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJlKCInIiAr
IGFjdHVhbFZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciLAorICAgICAg
ICAgICAgICInIiArIGV4cGVjdGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIici
KTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKKyAgICBzaG91
bGRCZVRydWUoYWN0dWFsICsgIiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gInN0cmluZyIpIHsKKyAgICBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xlYW4iKSB7Cisg
ICAgc2hvdWxkQmUoInR5cGVvZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7CisgICAgaWYgKGV4
cGVjdGVkKQorICAgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCk7CisgICAgZWxzZQorICAgICAgc2hv
dWxkQmVGYWxzZShhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAibnVt
YmVyIikgeworICAgIHNob3VsZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVkKSk7CisgIH0g
ZWxzZSB7CisgICAgZGVidWcoZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAiICsgdHlwZW9m
IGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBlY3RlZC50b1N0
cmluZygpICsgIiciKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZU5vblplcm8oX2EpCit7
CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwo
X2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAo
ZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gVGhy
ZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gMCkKKyAgICB0
ZXN0UGFzc2VkKF9hICsgIiBpcyBub24temVyby4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSBub24temVyby4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBz
aG91bGRCZU5vbk51bGwoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRy
eSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlv
biA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSBub24tbnVsbC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNl
IGlmIChfYXYgIT0gbnVsbCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24tbnVsbC4iKTsK
KyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIg
KyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4
Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24p
CisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhyZXcgZXhjZXB0
aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQi
KQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKwor
ZnVuY3Rpb24gc2hvdWxkQmVEZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIg
X2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAg
ICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVk
KF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24p
OworICBlbHNlIGlmIChfYXYgIT09IHVuZGVmaW5lZCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBp
cyBkZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRl
ZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9y
RXF1YWwoX2EsIF9iKSB7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2Yg
X2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFu
T3JFcXVhbCBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247
CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYg
PSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2Eg
KyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlv
bik7CisgICAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYp
CisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMg
IiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGV4
cGVjdFRydWUodiwgbXNnKSB7CisgIGlmICh2KSB7CisgICAgdGVzdFBhc3NlZChtc2cpOworICB9
IGVsc2UgeworICAgIHRlc3RGYWlsZWQobXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRU
aHJvdyhfYSwgX2UpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7Cisg
ICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7
CisgIH0KKworICB2YXIgX2V2OworICBpZiAoX2UpCisgICAgICBfZXYgPSAgZXZhbChfZSk7CisK
KyAgaWYgKGV4Y2VwdGlvbikgeworICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwg
ZXhjZXB0aW9uID09IF9ldikKKyAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlv
biAiICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgICBlbHNlCisgICAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0
aW9uIiA6IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Cisg
IH0gZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0RmFpbGVkKF9h
ICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhj
ZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8g
ImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOworfQorCitmdW5j
dGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2
YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisKKyAgICB2YXIgX3R5cGV2ID0g
ZXZhbChfdHlwZSk7CisKKyAgICBpZihfdHlwZXYgPT09IE51bWJlcil7CisgICAgICAgIGlmKF9h
diBpbnN0YW5jZW9mIE51bWJlcil7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBh
biBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKHR5cGVv
ZihfYXYpID09PSAnbnVtYmVyJyl7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBh
biBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNleworICAgICAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mIE51bWJlciIpOwor
ICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgewor
ICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5j
ZSBvZiAiICsgX3R5cGUpOworICAgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0TXNnKGFzc2VydGlv
biwgbXNnKSB7CisgICAgaWYgKGFzc2VydGlvbikgeworICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChtc2cpOworICAgIH0KK30KKworZnVu
Y3Rpb24gZ2MoKSB7CisgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpIHsKKyAgICAgICAgd2lu
ZG93LkdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93Lm9wZXJhICYmIHdpbmRvdy5vcGVyYS5jb2xsZWN0KSB7CisgICAgICAgIHdp
bmRvdy5vcGVyYS5jb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0cnkg
eworICAgICAgICB3aW5kb3cuUXVlcnlJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5z
SUludGVyZmFjZVJlcXVlc3RvcikKKyAgICAgICAgICAgICAgLmdldEludGVyZmFjZShDb21wb25l
bnRzLmludGVyZmFjZXMubnNJRE9NV2luZG93VXRpbHMpCisgICAgICAgICAgICAgIC5nYXJiYWdl
Q29sbGVjdCgpOworICAgICAgICByZXR1cm47CisgICAgfSBjYXRjaChlKSB7fQorCisgICAgZnVu
Y3Rpb24gZ2NSZWMobikgeworICAgICAgICBpZiAobiA8IDEpCisgICAgICAgICAgICByZXR1cm4g
e307CisgICAgICAgIHZhciB0ZW1wID0ge2k6ICJhYiIgKyBpICsgKGkgLyAxMDAwMDApfTsKKyAg
ICAgICAgdGVtcCArPSAiZm9vIjsKKyAgICAgICAgZ2NSZWMobi0xKTsKKyAgICB9CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgIGdjUmVjKDEwKTsKK30KKworZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgdmFy
IGVwaWxvZ3VlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgIHZhciBiYXNl
UGF0aCA9ICIiOworICB2YXIgZXhwZWN0ZWRCYXNlID0gImpzLXRlc3QtcHJlLmpzIjsKKyAgdmFy
IHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CisgIGZv
ciAodmFyIHNjcmlwdCwgaSA9IDA7IHNjcmlwdCA9IHNjcmlwdHNbaV07IGkrKykgeworICAgIHZh
ciBzcmMgPSBzY3JpcHQuc3JjOworICAgIHZhciBsID0gc3JjLmxlbmd0aDsKKyAgICBpZiAoc3Jj
LnN1YnN0cihsIC0gZXhwZWN0ZWRCYXNlLmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7CisgICAg
ICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOworICAg
ICAgYnJlYWs7CisgICAgfQorICB9CisgIGVwaWxvZ3VlLnNyYyA9IGJhc2VQYXRoICsgImpzLXRl
c3QtcG9zdC5qcyI7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBpbG9ndWUpOworfQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2QxNTVlZDYxYmY1MDFiZGQzZTZkNzZlMGEwMzJmZTQzMWIwNDY5ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFy
Z3MuaHRtbApAQCAtMCwwICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+PGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjE2IiBoZWln
aHQ9IjE2Ij48L2NhbnZhcz4KKzxjYW52YXMgaWQ9ImMiIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4
Ij48L2NhbnZhcz4KKzxpbWcgaWQ9ImkiPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0Ij4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBkZWZhdWx0SW1nVXJsID0g
Imh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28u
anBnIjsKK3ZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28u
anBnIjsKKworVGVzdHMuYXV0b2luaXQgPSBmYWxzZTsgLy8gUHJldmVudHMgdGhlIHRlc3QgZnJv
bSBydW5uaW5nIHVudGlsIHRoZSBpbWFnZSBpcyBsb2FkZWQKKworVGVzdHMuc3RhcnRVbml0ID0g
ZnVuY3Rpb24gKCkgeworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ds
Jyk7CisgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICBy
ZXR1cm4gW2dsXTsKK30KKworVGVzdHMudGVzdFJlYWRQaXhlbHMgPSBmdW5jdGlvbihnbCkgewor
ICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5l
Z2F0aXZlIHdpZHRoCisgIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0
Y2ggdGhlIGRpbWVuc2lvbnMuCisgIGFzc2VydFNvbWVHTEVycm9yKGdsLCAibmVnYXRpdmUgd2lk
dGgiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwtMSwxLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKKyAgYXNz
ZXJ0U29tZUdMRXJyb3IoZ2wsICAibmVnYXRpdmUgaGVpZ2h0IiwKKyAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygwLDAsMSwtMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAgICAg
ICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgIGFzc2VydE9rKCJuZWdhdGl2ZSB4IiwKKyAg
ICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygtMSwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgIGFzc2VydE9rKCJu
ZWdhdGl2ZSB5IiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLC0xLDEsMSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7
CisgIGFzc2VydE9rKCJoZWlnaHQgPiBiYWNrYnVmZmVyIGhlaWdodCIsCisgICAgICBmdW5jdGlv
bigpe2dsLnJlYWRQaXhlbHMoMCwwLDE2LDE3LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAor
ICAgICAgICAgIG5ldyBVaW50OEFycmF5KDE2KjE3KjQpKTt9KTsKKyAgYXNzZXJ0T2soIndpZHRo
ID4gYmFja2J1ZmZlciB3aWR0aCIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCww
LDE3LDE2LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFy
cmF5KDE3KjE2KjQpKTt9KTsKKyAgYXNzZXJ0T2soIndpZHRoLCBoZWlnaHQgPSAwIiwKKyAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDApKTt9KTsKKyAgLy8gd2UgY2FuJ3Qga25v
dyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAorICAv
LyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25z
LgorICBhc3NlcnRTb21lR0xFcnJvcihnbCwgImJhZCBmb3JtYXQiLAorICAgICAgZnVuY3Rpb24o
KXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLkZMT0FULCBnbC5VTlNJR05FRF9CWVRFLAorICAg
ICAgICAgIG5ldyBVaW50OEFycmF5KDQqNCkpO30pOworICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRo
aXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRoCisgIC8vIG9yIGJl
Y2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVuc2lvbnMuCisgIGFz
c2VydFNvbWVHTEVycm9yKGdsLCAiYmFkIHR5cGUiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFk
UGl4ZWxzKDAsMCwxLDEsIGdsLkFMUEhBLCBnbC5GTE9BVCwKKyAgICAgICAgICBuZXcgVWludDhB
cnJheSgxKjQpKTt9KTsKK30KKworVGVzdHMudGVzdFJlYWRQaXhlbHNTT1BJTUcgPSBmdW5jdGlv
bihnbCkgeworICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIpOworICAg
IHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KTsKKyAgICAvLyBTT1AgZmFpbHVyZQorICAgIGFzc2VydFRocm93Tm9HTEVy
cm9yKGdsLCAidGhyb3cgYmVjYXVzZSBpbWcgaXMgZnJvbSBhbm90aGVyIGRvbWFpbiIsCisgICAg
ICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCBudWxsKTsKKyAgICBhc3NlcnRPaygiY2FudmFzIHN0aWxsIG9yaWdpbi1jbGVh
biIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgICAgZ2wu
ZGVsZXRlVGV4dHVyZSh0ZXgpOworfQorVGVzdHMudGVzdFJlYWRQaXhlbHNTT1BDYW52YXMgPSBm
dW5jdGlvbihnbCkgeworICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIp
OworICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMiKTsKKyAgICBjLmdldENv
bnRleHQoIjJkIikuZHJhd0ltYWdlKGltZywgMCwgMCk7CisgICAgYXNzZXJ0RmFpbCgiY2FudmFz
IHRocm93cyBiZWNhdXNlIG5vdCBvcmlnaW4gY2xlYW4iLAorICAgICAgZnVuY3Rpb24oKXtjLmdl
dENvbnRleHQoIjJkIikuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpO30pOworICAgIHZhciB0ZXggPSBn
bC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
KTsKKyAgICAvLyBTT1AgZmFpbHVyZQorICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGhy
b3cgYmVjYXVzZSBjYW52YXMgaXMgbm90IG9yaWdpbiBjbGVhbiIsCisgICAgICBmdW5jdGlvbigp
e2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgYyk7fSk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVs
bCk7CisgICAgYXNzZXJ0T2soImNhbnZhcyBzdGlsbCBvcmlnaW4tY2xlYW4iLAorICAgICAgZnVu
Y3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
CisgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOworICAgIGdsLmRlbGV0ZVRleHR1cmUo
dGV4KTsKK30KKworVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Cit9OworCisoYXN5bmMg
ZnVuY3Rpb24oKSB7CisgIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpJyk7
CisgIHRyeSB7CisgICAgYXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmln
aW5JbWFnZShpbWcsIGRlZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICB0ZXN0RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgIGZp
bmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKyAgaW5pdFRlc3RzKCk7Cit9KSgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjYzc4ZDE2MzU3NTY1ZmU2NTM4ZWViZmY5Zjdm
MTMxNGFlM2U5MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLmh0bWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0
eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CithdHRyaWJ1
dGUgdmVjMiBUZXg7CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQorewor
ICAgIHRleENvb3JkMCA9IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOworICAgIGds
X1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9
ImlkZW50aXR5LWhmbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0
ZSB2ZWMzIFZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordmFyeWluZyB2ZWM0IHRleENv
b3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRl
eC50LCAwLjAsIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30K
Kzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iaWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1m
cmFnbWVudCI+CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5pZm9ybSBzYW1wbGVyMkQg
VGV4dHVyZTsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAg
dmVjNCBjID0gdGV4dHVyZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCk7CisgICAgZ2xfRnJhZ0Nv
bG9yID0gYzsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIg
d2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iYyIgd2lkdGg9
IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgorPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVp
Z2h0PSIyNTYiICBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZ
K3o0NCtxSzdPWm9HRlZBNVZmQkd6YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNN
bHNodTh4T2RDcERKdDN2L2FFQkFVSEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUF3T3ZCa2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZ
c1dQbnNnWGdUZVl3YWs4NVUzWHY1WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4
R2F5R2RVV3UxSHpvU05GTytaTTFmMmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lq
aFY1bkpRQnNDYnhHWlFWdG1ONnA0TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNI
WjU0cHpNbTZWdVJ5Uk1wZlRXK3B5VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5z
azE3eWJLbFM2RFRML2l4Ym90UmxqNWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ez
d0tiVVcyeEdkV1JES1A2Nnd5aldoWUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNy
Y3pVZTUyeHN0ekhmUGxic2RjdWR0NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnpl
YlFWbGxNNnA3YlViMTQ5VUY0RWpWU21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhu
WEZFR0IvT3pKc3JkanFFeXQvTm1XYTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002
dTlYRkVCcXNnQ2NhVHJKWEpnRWNpMHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1
a29kenNTWmJtT2VJWGIrWFc1MnpGYTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFi
MTF6YWora21HVWJOdUFXU202NWRLWUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1
SjFzTzVtZEtoZHNwWmF2S29EVFgwVlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1T
SjcrTHlxQXJIUzk1SmlUSlZEZ05FbGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJ
RkxEaTh2ZzF4SDRtQis1cCtXbDBGcGpyMmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEw
TDQvOVNBYVJveEw3dy9MOVdBV1NiREpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9M
Qjc0cWFUeFRKb0dqKytWczJSNDV2ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215
bkx0UXlVNUdUZUxjekxDcFRrMlQzR1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFE
OHNGb0I5V1FFNDE1a0E4dTFwY3ZSQWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5t
SlhxcVdEM3lWMG5DNlZQeEg5OG5ac3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzVi
N25iOHNjeHQvN2RTbDMya0pDZWpxeVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWEx
SDlmdXdCMFN3V1FsYTZYTEZPeUFBb3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtl
elcyM0t2dTFFbU8ycGxvTmtuM1ZmUFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0Zr
R0J4ZktvSEp2MWw4UDVtZit1U0xQOGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZi
OWFvWnExNDFhek9veFdiY1hBSGtXbE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJs
K1JCejBXNWU2TkJKdHBycEwvWkp6Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhX
aGh6cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8y
dzJRTElOaGtrUDJOaC9LODlJbU50SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gz
dXh2a3p2VjZHWStGcE8rYVY2NS84RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1
TVIrOXgrT0ZibnVIaTNNaVZRVnVLb1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4
YkFzZ3ZBdlU2VHZIVm90OFN1bkpZN04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFI
dWRUZklURmVkakxXRnBQZWFSN28rZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1
aWJjcTlueDF1alMvNThRQjk5WHFZbmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVu
U0UxMVFlazU1UHpjdjltNDhyUXJ4UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJ
TnkrMU9QWFAvd2Q5Sis1WXcwMTUrUWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2
Y2UvWnN4WjZ5N2Q1TDREZGxjZnkzNkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5
ZEgrT2ZGUnpSRWFqUWZuODF0dnJoLzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkx
VlVua3gyMU10d1NrSjVQTGtqSGUyZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStG
YkY0UjFNQThEbVdMVEtLc3V5OGQ5cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNG
L1B2U2YzMW83K0E5Nm5xMzdQUmZsZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2Vs
L2NvWnVWWjNYQzZmcS9pNTdsVHgzMnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FX
YXRCOWRPYUJiREdsNEJjRnFNVXUyMFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3
M0ZFdWh1a0x2ZERjbkpvTE5XeG1NMU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZI
d1NPME9TZ0JZbTFtbnNKaDFxb2hGcjF3WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJy
VUI3MFhGei90Rjluek45SzhPOTFOOGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQv
cDk3UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIw
cHN0Z0QyT05MbHpNSGRFbjJuV3FZNjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpy
dXFwT3B6bHFaYUE4bHhtS2h2NDlHZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1U
VlorOEFGejVIc0R6QlpCak5rcHhyazJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6
MXl2azVtdU9wbGVXSk1kdGZISmpwcnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFy
Q3Y5U0pRdWw3Y3RsU3AycGN0SHdZclphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJ
U21KL3FyUDFtdXJPR1J3QmdPWk4yVjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVS
THFjcjhxWDE4aW1aN0tpVkJ6MFhYeGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDEx
UFJzOTE0RHJ4MlRUbEZ2MGlwbXpEcmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1Rt
YXUxeWREdm1ib3QzNng5eXo0OVM4Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhz
VmdIUGg5d0J6clNsU1ZaUXRId1FxWlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2
YWtlMmU2K0IxNDVKdTZ2S3BGUDJtclRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVl
NDNjZjhHei9UWUVYeVk3YW1XeW95WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1
VE5GRUMyeVNEN1hWWUpuTmduWFIrK0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJ
UFdDbE5yYkNZdGNueDM2VGQ5WU5acDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4
M3NZMytyOG8rRExaRVVwTXROYzhtZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3
RnB2QW1hbTZTVGZuaWJWWlhrU2VmdWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJz
YmJRL0hKOXREM2s1MDFqUC9BYWlhTm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01W
L2ZKOTBmbkJXSmp0clY0ejNXem50bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZ
VEZwRnhLUlZMSTMvS3d2ZytSZUI3Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5C
bjl5RThFZlQ0WS9NUjRMUFJsdkR6SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZa
WW40WXNuWkxRdEtIZHViQzcwbXgzemYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxI
VXAyc1YweWFOWW1uODMwd0JaS1hyWlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0sv
RUg0Wmp3WG54MlBCUjJQdFFjWi9ZRG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdB
QnlwV25GWmpIS29JRk91ZUE5Slg1TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dH
b216YTdkNlpwZE1aTkc4WTFKbzNoaTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dt
L012ZzFXdzcrV0N3a1kyMUJHVzBMeGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0
eTlJbkFCc1VRR2E2WG9xeUxlSTlWaVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEv
R2hiOEp1eEtPTS84QnlUNWw5VDA5U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZL
M2ttSlBqLzd2ZWc5Sjd6U05UbmJXdjZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5
VFJ2bU9TYXVZTk9zVTM1cDF5bjlzVkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBG
ZnpRYWxORm9JSG42UndPL0gya0w4dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202
NlF3eXl6ZVk0VVN1M0pheG1LaHRVUC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lX
aHJnTXMvWURQU2Rjb2lzMWJ4dmtXbmZHclJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pM
UlVmTlBQZTNIMXpqdDF3dis0aHB1RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6
NThDMDRyYWx5SW1TWExuV2NFeUdXdjB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0
VmIvL0hCcjRORkkxTS9sSDdBVkZyMHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlH
MVhUc3RvVy9DZmQ5cS9WUEFETXR6cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmht
a1lxOURMbCtva0Z1Zm5KZng5cHBub1YvdmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pm
RDBjREY3WjdJNEhmcXAwMnZTcGcwNnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlr
NG1PelkzNEwzM2FiKzdFWHd6K3d2TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFV
K2RhYnA0UWFaSkxoelpLOUYzcTJVa0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEoz
dDNqemdUYkRUWmxRSE1veWFoOWxtL2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4
c01VL05SRG04Zzk0VlhiYVU3VUJsOFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZE
djVneExld3ZIOGNpSGc3aGxvQ2x1M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0
dUY0dVB0d2NSNDhuL3UvUk5PKzgwRzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQ
eHVmQklOQkFiYnc4OUdvK0Zac2Rqb2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cx
eHZ4VndSK00rR1F3N1AxeE1PeDdQQmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERz
ZkgybXRoSUxQUm9yQzA0TzlZV21odU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5
RGlrNEd3VHdiQzN2OGRhUFkrSElqNFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZC
c0pCcDhOQm9Oem81RUEzTUxhMzY0TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBq
QTJIUG1XM2VFK0QvclpXRjBCYXNIVzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpR
NjMrK2FFV2YzeW94WmRJcm1XaGIzays5SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJI
eU9iZDREQUF0V0ZNSm9XN0IydURVWUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3
NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdk
YnZXSEIxdjlzY0ZXZjJ3dzRuODBHUEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5
aVQ2bTczUzMreVZ2bWJQZkgrelo3NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkw
ZjhzY0dJUDlZZjhjY0d3cjVIQTJIdjdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9Z
M2VUN3JhL1kwY2ZrSC9MYnRYTDJHV255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkz
eVRQVzEreVo3R3Z5WE85cjl2aTM5MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5u
YjVtVDZEMzJvVUQyL3gzQXZnVjdkeXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUlDVi9nOXRQSkVRdTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KKzxpbWcgaWQ9
ImkyIj4KKworPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBkZWZhdWx0
SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1
bmRlcmJpcmQtbG9nby02NHg2NC5wbmciOwordmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jl
c291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBuZyI7CisKK1Rlc3RzLmF1dG9pbml0ID0g
ZmFsc2U7IC8vIFByZXZlbnRzIHRoZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2Ug
aXMgbG9hZGVkCisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgICAgdmFyIGdsID0gd3JhcEdM
Q29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisgICAgZ2wudmlld3BvcnQoMCwwLGNhbnZh
cy53aWR0aCxjYW52YXMuaGVpZ2h0KTsKKyAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOworICAg
IGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAg
ICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOworICAgIHJldHVybiBbZ2xdOworfQorCitUZXN0
cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIHZhciB0ZXhD
dWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfQ1VCRV9NQVAsIHRleEN1YmVNYXApOworICAgIHJldHVybiBbZ2xdCit9CisKK1Rlc3RzLnRl
YXJkb3duID0gZnVuY3Rpb24oZ2wsIHRleCwgdGV4Q3ViZU1hcCkgeworICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKKyAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCBudWxsKTsKKyAgICBnbC5kZWxl
dGVUZXh0dXJlKHRleEN1YmVNYXApOworfQorCitUZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0
aW9uKGdsKSB7CisgICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTsKKyAgICB2YXIgaW1nID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjJyk7CisgICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHguZHJh
d0ltYWdlKGltZywwLDApOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wu
UkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKKyAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsK
KyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBn
bC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICB2YXIg
ZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycp
OworICAgIGdsLmJsZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOworICAgIGYuYXBwbHkoKTsKKyAg
ICBmLmRlc3Ryb3koKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgIGYgPSBuZXcgRmlsdGVyKGds
LCAnaWRlbnRpdHktaGZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7CisgICAgZ2wuYmxlbmRG
dW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7CisgICAgZi5hcHBseSgp
OworICAgIGYuZGVzdHJveSgpOworICAgIHZhciB2YWxpZF90YXJnZXRzID0gWworICAgICAgICBn
bC5URVhUVVJFXzJELAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCisg
ICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKKyAgICAgICAgZ2wuVEVYVFVS
RV9DVUJFX01BUF9QT1NJVElWRV9ZLAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1ksCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKKyAgICAgICAg
Z2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCisgICAgXTsKKyAgICB2YWxpZF90YXJnZXRz
LmZvckVhY2goZnVuY3Rpb24odCkgeworICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnRl
eEltYWdlMkQodCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7
CisgICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKKyAgICB9KTsKK30KKworVGVzdHMu
dGVzdFRleEltYWdlMkROb25TT1AgPSBmdW5jdGlvbihnbCkgeworICAgIHZhciBpbWcgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjJyk7CisgICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHgu
ZHJhd0ltYWdlKGltZywwLDApOworICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1h
Z2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCisg
ICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xF
cnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJv
dyBleGNlcHRpb24uIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKK30KKwor
VGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Cit9OworCisoYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CisgICAgdHJ5
IHsKKyAgICAgICAgYXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5J
bWFnZShpbWcsIGRlZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICB0ZXN0RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaW5pdFRlc3Rz
KCk7Cit9KSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY4ZWMy
YWEwOTdiMWZkMzE0ZTgxNzVjNzE1YWMzYmVmMDE2NmYzOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsx
LDE2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4v
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJp
YnV0ZSB2ZWMzIFZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordmFyeWluZyB2ZWM0IHRl
eENvb3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAgdGV4Q29vcmQwID0gdmVjNChUZXgucywgMS4w
LVRleC50LCAwLjAsIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsK
K30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0iaWRlbnRpdHktaGZsaXAtdmVydCIgdHlwZT0ieC1z
aGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzMgVmVydGV4OworYXR0cmlidXRlIHZlYzIg
VGV4OworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhD
b29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwgMC4wKTsKKyAgICBnbF9Qb3NpdGlv
biA9IHZlYzQoVmVydGV4LCAxLjApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0
eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworCit1bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOworCit2YXJ5aW5nIHZlYzQgdGV4Q29v
cmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB2ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4
Q29vcmQwLnN0KTsKKyAgICBnbF9GcmFnQ29sb3IgPSBjOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
PGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFz
PgorPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgorPGlt
ZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jh
c2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFBQVRWRWxF
UVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZBNVZmQkd6YWg5Y3hwTnpHRU9v
UnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2L2FFQkFVSEFPTUc0ejBmVjUz
ZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3T3ZCa2FyN2wrMytHd0Jz
azh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4NVUzWHY1WmlNMytYYlVoL2wy
ZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05GTytaTTFmMmNiVExNNTFsVDV3
b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFWdG1ONnA0TW8vWVBkcU5HSEts
YXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1wZlRXK3B5VUFiQW04Qm1WTlZu
R05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4Ym90UmxqNWZsT3ViTDNJNjVN
cGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2Nnd5aldoWUx3SkdpRldlYVRy
Sk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxic2RjdWR0NXF5elgzbEtXbHhr
c3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5VUY0RWpWU21hYVRyTFM5ZUt5
cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFFeXQvTm1XYTQ5WEpidDlKYTZN
azRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJKWEpnRWNpMHBzdGRoa3YzWk5p
bk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIrWFc1MnpGYTVuTGNLblBaSTJV
TGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFXU202NWRLWUhkR21oUmxXcVE4
enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2S29EVFgwVlBpY2lUTElIdEZH
VkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlUSlZEZ05FbGxRWlo0S2d1bHJy
cFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1cCtXbDBGcGpyMmxKTWNSTE02
eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9MOVdBV1NiREpKclRaRmlkNFo0
anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytWczJSNDV2ajlYamhUa3lPSGRD
NDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxDcFRrMlQzR1c3Vmh4VnNhZTdk
NGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4dTFwY3ZSQWpud1VPaUxETFFH
NTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQeEg5OG5ac3QxeWZGK3VIQzEw
U2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMya0pDZWpxeVFuNDBwSlRrYlpE
aVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZYTEZPeUFBb3lUZkxXNFQzU2Z1
V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxvTmtuM1ZmUFNldmIxZksrdDFJ
YXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVtZit1U0xQOGZ2eVhNZE1tZHNS
S1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdiY1hBSGtXbE9rSkM5RGFrOFh5
NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBycEwvWkp6Yy9PaS9YUDNoTFdp
NmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dmek05dy9sWlRF
TkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9LODlJbU50SWZtaTk5S3o4UGNs
MTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8rYVY2NS84RHVKWER3cFZ6eUhw
TzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNNaVZRVnVLb1A3ODR1MnU3OUEz
N1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90OFN1bkpZN04rcmx5NzYxZy85
bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQZWFSN28rZUV2Q2pTZmx5b1ZE
VWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThRQjk5WHFZbmY1RHFZQjRPVllk
TS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjltNDhyUXJ4UDhMMjVma2k5dXZ5
MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1WXcwMTUrUWQ4NGZsSnFUeFhM
aGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDREZGxjZnkzNkZWZlcvU3FINndH
bGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZuODF0dnJoLzZGd1Y5Y0YrV3pX
eGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQTGtqSGUyZWxxZjY0WEQ1M1VF
SW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtLc3V5OGQ5cVVMK3dBSlovQzND
UE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5xMzdQUmZsZmsrajNMK1ovRmp4
N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9pNTdsVHgzMnBPSG5nVU9sVWMv
alI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJjRnFNVXUyMFNPblZBYm41OFR1
NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpvTE5XeG1NMU1oanh5ODJQemtu
bisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNKaDFxb2hGcjF3WS81WHhad1d3
L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45SzhPOTFOOGk5aGZBdnJqczNH
dVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2cVBidmRmQWE4
ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRFbjJuV3FZNjYrU3pseHp6SHl3
Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHhtS2h2NDlHZzMvb0QvcyszdTY5
Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpCak5rcHhyazJDcHc1STkwZm41
TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1kdGZISmpwcnZKanRxS0FCZ3Vl
VDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3AycGN0SHdZclphZ2xJUGR2TnE1
LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3QmdPWk4yVjVWRnAreTFhQmZH
ZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tpVkJ6MFhYeGo2alovdk54bjg2
eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2MGlwbXpEcmxyRVduL01taVY4
bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5eXo0OVM4Wi9OckZOVC9kVmZ2
N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1ZaUXRId1FxWlREaWw3dmRqVnM3
N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2S3BGUDJtclRLeDJidHMvRi84
VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3YW1XeW95WSsxVkh6L1ZSblhm
TjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpuTmduWFIrK0pkTmRkWnMrN1gr
ZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2VGQ5WU5acDRoYmRLcU5DMkJo
L0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVwTXROYzhtZWhnL0FlZVkxTHZx
akpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJWWlhrU2VmdWtqTVZDY3JkN0V5
UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFqUC9BYWlhTm90NmtTWTcvWnEz
aUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0ejNXem50bjd2UnYvNTg2TGNh
L0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2ZytSZUI3Q25KM3dGd1dWTGtj
R0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRMUFJsdkR6SCtBNnVaTllwS2sz
WlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHViQzcwbXgzemYwbnd4OXRETWg0
THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMwd0JaS1hyWlYrMlJYekg5MG5I
KzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQdFFjWi9ZRG1UUnBtYXJsWTBt
VFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91ZUE5Slg1TkhwcnZxTmgzNnpa
NzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4WTFKbzNoaTFpNDgvMitpQVBJ
eVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1kyMUJHVzBMeGtmYmd0K1B4VUtN
LzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9xeUxlSTlWaVR0NzUyUjhmYlFx
c0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlUNWw5VDA5U0tRTHBHTVdUU0t2
N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6U05UbmJXdjZMUi9CY0ZmV0NQ
UlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1cDF5bjlzVkFCdVc2cWNMTTJW
YXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndPL0gya0w4dVlmOENJbXphNUNr
MjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0pheG1LaHRVUC9pMC83bWhXaFh4
SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lzMWJ4dmtXbmZHclJLK05yRllB
OVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3dis0aHB1RGNSSG9vSHZSNklC
THYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExuV2NFeUdXdjB5MlZrclUxM1Bo
LzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9sSDdBVkZyMHFZTkdySGxyMXFx
YzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9WUEFETXR6cVR3eTMrSjhNTS80
REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5KZng5cHBub1YvdmMvdXRudmF4
TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAwMnZTcGcwNnNlMmd6cXB4bEdU
ZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdFWHd6K3d2TE5EN2NFYm8yMEJq
SzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpLOUYzcTJVa0dwQ0pEVS83MEtz
NzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1veWFoOWxtL2RPS1BjNzRwZlBs
MHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0VlhiYVU3VUJsOFg0OEVTSjYra245
VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3aGxvQ2x1M2VOT0JOc3ROdFN3
MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3UvUk5PKzgwRzN5ZERFZC8vRElS
OTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdvK0Zac2Rqb2JueDl0RGNhQ3c0
UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1AxeE1PeDdQQmoyOWZaSHZGWGJ2
VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0TzlZV21odU5oZVpHMndMekk5
RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRhUFkrSElqNFB1cHY5akwrQTcr
Q25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEzTUxhMzY0TlJBZmFmVW5ocFBy
NVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpXRjBCYXNIVzRMaGtlaWdkaElM
QlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJcm1XaGIzays5SU5Mb1Y4S3Z2
UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9XN0IydURVWUhvb0dZa1BSUUd5
b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2U2ZRM2VYOGFDSHRu
KzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3dzRuODBHUEhORG9hOWM0TVIz
OXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQZkgrelo3NnZ5Zk8wdjluN3A3
NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3cjVIQTJIdjdFQ3pkMjZnMlR2
WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9MYnRYTDJHV255MUEyRmZ1Qy9z
amZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85cjl2aTM5MDhIOE0rd29oQjZt
N3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gzQXZnVjdkeXhZOGZPZ1NhdnU3
L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9nOXRQSkVRdTFYdm1RQUFBQUJK
UlU1RXJrSmdnZz09Ij4KKzxpbWcgaWQ9ImkyIj4KKworPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJH
TFRlc3RVdGlsczsKK3ZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9j
b25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5wbmciOwordmFyIGxv
Y2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBu
ZyI7CisKK1Rlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZlbnRzIHRoZSB0ZXN0IGZyb20g
cnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1
bmN0aW9uICgpIHsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ds
Jyk7CisgICAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisK
KyAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQpOworICAgIGds
LmNsZWFyQ29sb3IoMCwwLDEsMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8
IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Cisg
ICAgcmV0dXJuIFtnbF07Cit9CisKK1Rlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2
YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleCk7CisgICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cisg
ICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1hcCk7CisgICAg
cmV0dXJuIFtnbF0KK30KKworVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwgdGV4LCB0ZXhD
dWJlTWFwKSB7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAg
Z2wuZGVsZXRlVGV4dHVyZSh0ZXgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VC
RV9NQVAsIG51bGwpOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7Cit9CisKK1Rl
c3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKKyAgICBnbC5lbmFibGUoZ2wuQkxF
TkQpOworICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScpOworICAgIHZh
ciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKKyAgICB2YXIgY3R4ID0gYy5nZXRD
b250ZXh0KCcyZCcpOworICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7CisgICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBpbWcpOworICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9U
T19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICB2YXIgZiA9IG5ldyBG
aWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOworICAgIGds
LmJsZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOworICAgIGYuYXBwbHkoKTsKKyAgICBmLmRlc3Ry
b3koKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7CisgICAgZiA9IG5l
dyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKKyAg
ICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKKyAg
ICBmLmFwcGx5KCk7CisgICAgZi5kZXN0cm95KCk7CisgICAgdmFyIHZhbGlkX3RhcmdldHMgPSBb
CisgICAgICAgIGdsLlRFWFRVUkVfMkQsCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWCwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAorICAgICAg
ICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCisgICAgICAgIGdsLlRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWSwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9a
LAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKKyAgICBdOworICAgIHZh
bGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7CisgICAgICAgIGFzc2VydE9rKGZ1bmN0
aW9uKCl7CisgICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKKyAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFn
ZTJEKHQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgICAgICB9
KTsKKyAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBnbC50ZXhJ
bWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAg
ICAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQodCwgMSwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgYyk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCitUZXN0cy50ZXN0VGV4
SW1hZ2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIGltZyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpMicpOworICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2MnKTsKKyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eC5kcmF3SW1h
Z2UoaW1nLDAsMCk7CisgICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdp
dGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKKyAgICAgIGZ1
bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOworICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGds
LCAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhj
ZXB0aW9uLiIsCisgICAgICBmdW5jdGlvbigpe2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOworICAgIGFzc2Vy
dFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMg
c2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMp
O30pOworICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGRp
cnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rp
b24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYyk7fSk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkg
eworfTsKKworKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IGltZyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpMicpOworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHd0dS5hd2FpdE9y
VGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2Nh
bEltZ1VybCkpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChgSW1hZ2Ug
c2V0dXAgZmFpbGVkICgke2V9KS5gKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGluaXRUZXN0cygpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNzcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS91bml0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzU4YjQzYmQ5ZGRmMGJmMWMwMmFmNWE1ZjYx
Njk0ZmY4MGU1M2M2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3Nz
CkBAIC0wLDAgKzEsNjYgQEAKKy8qCitUZXN0cyBmb3IgdGhlIE9wZW5HTCBFUyAyLjAgSFRNTCBD
YW52YXMgY29udGV4dAorCitDb3B5cmlnaHQgKEMpIDIwMDkgIElsbWFyaSBIZWlra2luZW4gPGls
bWFyaS5oZWlra2luZW5AZ21haWwuY29tPgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorb2J0YWluaW5nIGEgY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KK2ZpbGVzICh0aGUgIlNvZnR3
YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3RyaWN0aW9uLCBpbmNs
dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLAorY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2Nv
cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQor
U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcK
K2NvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKK09GIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECitOT05JTkZS
SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVAorSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
CitXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcKK0ZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S
IFRIRSBVU0UgT1IKK09USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKworKi8KKy5vayB7
CisgIGNvbG9yOiBncmVlbjsKK30KKy5mYWlsIHsKKyAgY29sb3I6IHJlZDsKK30KK2NhbnZhcyB7
CisgIGRpc3BsYXk6IG5vbmU7Cit9CisjdGVzdC1zdGF0dXMgeworICBmb250LXNpemU6IGxhcmdl
OworfQorCisjdGVzdC1sb2cgeworICBwYWRkaW5nLWxlZnQ6IDAuNWVtOworICBwYWRkaW5nLXJp
Z2h0OiAwLjVlbTsKKyAgYmFja2dyb3VuZDogd2hpdGU7CisgIGNvbG9yOiBibGFjazsKK30KKyN0
ZXN0LWxvZyA+IGRpdiB7CisgIHBhZGRpbmctYm90dG9tOiAwLjVlbTsKK30KKyN0ZXN0LWxvZyBo
MiB7CisgIGZvbnQtc2l6ZTogMWVtOworICBtYXJnaW4tYm90dG9tOiAwZW07CisgIHBhZGRpbmct
dG9wOiAwLjVlbTsKK30KKyN0ZXN0LWxvZyBoMyB7CisgIGZvbnQtc2l6ZTogc21hbGw7CisgIG1h
cmdpbi1sZWZ0OiAxLjVlbTsKKyAgbWFyZ2luLWJvdHRvbTogMGVtOworICBtYXJnaW4tdG9wOiAw
LjVlbTsKK30KKyN0ZXN0LWxvZyBwIHsKKyAgbWFyZ2luLWxlZnQ6IDRlbTsKKyAgZm9udC1zaXpl
OiBzbWFsbDsKKyAgbWFyZ2luLXRvcDogMGVtOworICBtYXJnaW4tYm90dG9tOiAwLjJlbTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3Vu
aXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2NhMjFjNGNhZTgyMjI2ZTVhMmNjMzViNzc0MTc1MjVkYWNjZTAz
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzCkBAIC0wLDAgKzEs
OTcwIEBACisvKgorVW5pdCB0ZXN0aW5nIGxpYnJhcnkgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhU
TUwgQ2FudmFzIGNvbnRleHQKKyovCisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2RlIC0tICovCisKKy8vIFdlYktp
dAoraWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyID0gd2luZG93LnRlc3RSdW5uZXI7Cit9
CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisKKyAgLy8gVGhlIFdlYktpdCB0ZXN0aW5nIHN5c3RlbSBjb21wYXJlcyBjb25zb2xlIG91
dHB1dC4KKyAgLy8gQmVjYXVzZSB0aGUgb3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0cyBpcyBHUFUg
ZGVwZW5kZW50CisgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMuCisgIHdpbmRvdy5j
b25zb2xlLmxvZyA9IGZ1bmN0aW9uKCkgeyB9OworICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1
bmN0aW9uKCkgeyB9OworCisgIC8vIFJBRiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERp
c2FibGUgaXQgc28gdGhlIHRlc3RzIHdpbGwKKyAgLy8gdXNlIHNldFRpbWVvdXQgaW5zdGVhZC4K
KyAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgd2luZG93Lndl
YmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKK30KKworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1Rv
Q29uc29sZUVuYWJsZWQoZmFsc2UpOworfQorCisvKiAtLSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMg
Y29kZSAtLSovCitUZXN0cyA9IHsKKyAgYXV0b3J1biA6IHRydWUsCisgIG1lc3NhZ2UgOiBudWxs
LAorICBkZWxheSA6IDAsCisgIGF1dG9pbml0OiB0cnVlLAorCisgIHN0YXJ0VW5pdCA6IGZ1bmN0
aW9uKCl7IHJldHVybiBbXTsgfSwKKyAgc2V0dXAgOiBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3Vt
ZW50czsgfSwKKyAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHt9LAorICBlbmRVbml0IDogZnVuY3Rp
b24oKSB7fQorfQorCit2YXIgX190ZXN0U3VjY2Vzc19fID0gdHJ1ZTsKK3ZhciBfX3Rlc3RGYWls
Q291bnRfXyA9IDA7Cit2YXIgX190ZXN0TG9nX187Cit2YXIgX19iYWNrbG9nX18gPSBbXTsKKwor
dmFyIGdldFVybE9wdGlvbnMgPSAoZnVuY3Rpb24oKSB7CisgIHZhciBfdXJsT3B0aW9uc1BhcnNl
ZCA9IGZhbHNlOworICB2YXIgX3VybE9wdGlvbnMgPSB7fTsKKyAgcmV0dXJuIGZ1bmN0aW9uKCkg
eworICAgIGlmICghX3VybE9wdGlvbnNQYXJzZWQpIHsKKyAgICAgIHZhciBzID0gd2luZG93Lmxv
Y2F0aW9uLmhyZWY7CisgICAgICB2YXIgcSA9IHMuaW5kZXhPZigiPyIpOworICAgICAgdmFyIGUg
PSBzLmluZGV4T2YoIiMiKTsKKyAgICAgIGlmIChlIDwgMCkgeworICAgICAgICBlID0gcy5sZW5n
dGg7CisgICAgICB9CisgICAgICB2YXIgcXVlcnkgPSBzLnN1YnN0cmluZyhxICsgMSwgZSk7Cisg
ICAgICB2YXIgcGFpcnMgPSBxdWVyeS5zcGxpdCgiJiIpOworICAgICAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB2YXIga2V5VmFsdWUgPSBwYWly
c1tpaV0uc3BsaXQoIj0iKTsKKyAgICAgICAgdmFyIGtleSA9IGtleVZhbHVlWzBdOworICAgICAg
ICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgICAgICBf
dXJsT3B0aW9uc1trZXldID0gdmFsdWU7CisgICAgICB9CisgICAgICBfdXJsT3B0aW9uc1BhcnNl
ZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIF91cmxPcHRpb25zOworICB9Cit9KSgpOwor
CitpZiAodHlwZW9mIHF1aWV0TW9kZSA9PSAndW5kZWZpbmVkJykgeworICB2YXIgcXVpZXRNb2Rl
ID0gKGZ1bmN0aW9uKCkgeworICAgIHZhciBfcXVpZXRNb2RlQ2hlY2tlZCA9IGZhbHNlOworICAg
IHZhciBfaXNRdWlldCA9IGZhbHNlOworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGlm
ICghX3F1aWV0TW9kZUNoZWNrZWQpIHsKKyAgICAgICAgX2lzUXVpZXQgPSAoZ2V0VXJsT3B0aW9u
cygpLnF1aWV0ID09IDEpOworICAgICAgICBfcXVpZXRNb2RlQ2hlY2tlZCA9IHRydWU7CisgICAg
ICB9CisgICAgICByZXR1cm4gX2lzUXVpZXQ7CisgICAgfQorICB9KSgpOworfQorCitPYmplY3Qu
dG9Tb3VyY2UgPSBmdW5jdGlvbihhLCBzZWVuKXsKKyAgaWYgKGEgPT0gbnVsbCkgcmV0dXJuICJu
dWxsIjsKKyAgaWYgKHR5cGVvZiBhID09ICdib29sZWFuJykgcmV0dXJuIGEgPyAidHJ1ZSIgOiAi
ZmFsc2UiOworICBpZiAodHlwZW9mIGEgPT0gJ3N0cmluZycpIHJldHVybiAnIicgKyBhLnJlcGxh
Y2UoLyIvZywgJ1xcIicpICsgJyInOworICBpZiAoYSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSBy
ZXR1cm4gYS50b1N0cmluZygpOworICBpZiAoYS53aWR0aCAmJiBhLmhlaWdodCAmJiBhLmRhdGEp
IHJldHVybiAiW0ltYWdlRGF0YV0iOworICBpZiAoYSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAg
aWYgKCFzZWVuKSBzZWVuID0gW107CisgICAgdmFyIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKKyAg
ICBpZiAoaWR4ICE9IC0xKSByZXR1cm4gJyMnKyhpZHgrMSkrJyMnOworICAgIHNlZW4udW5zaGlm
dChhKTsKKyAgICB2YXIgc3JjcyA9IGEubWFwKGZ1bmN0aW9uKG8peyByZXR1cm4gT2JqZWN0LnRv
U291cmNlKG8sc2VlbikgfSk7CisgICAgdmFyIHByZWZpeCA9ICcnOworICAgIGlkeCA9IHNlZW4u
aW5kZXhPZihhKTsKKyAgICBpZiAoaWR4ICE9IC0xKSBwcmVmaXggPSAnIycrKGlkeCsxKSsnPSc7
CisgICAgcmV0dXJuIHByZWZpeCArICdbJyArIHNyY3Muam9pbigiLCAiKSArICddJzsKKyAgfQor
ICBpZiAodHlwZW9mIGEgPT0gJ29iamVjdCcpIHsKKyAgICBpZiAoIXNlZW4pIHNlZW4gPSBbXTsK
KyAgICB2YXIgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHJldHVy
biAnIycrKGlkeCsxKSsnIyc7CisgICAgc2Vlbi51bnNoaWZ0KGEpOworICAgIHZhciBtZW1iZXJz
ID0gW107CisgICAgdmFyIG5hbWU7CisgICAgdHJ5IHsKKyAgICAgIGZvciAodmFyIGkgaW4gYSkg
eworICAgICAgICBpZiAoaS5zZWFyY2goL15bYS16QS1aMC05XSskLykgIT0gLTEpCisgICAgICAg
ICAgbmFtZSA9IGk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBuYW1lID0gJyInICsgaS5yZXBs
YWNlKC8iL2csICdcXCInKSArICciJzsKKyAgICAgICAgdmFyIGFpOworICAgICAgICB0cnkgeyBh
aSA9IGFbaV07IH0KKyAgICAgICAgY2F0Y2goZSkgeyBhaSA9ICdudWxsIC8qRVJST1JfQUNDRVNT
SU5HKi8nOyB9CisgICAgICAgIHZhciBzID0gbmFtZSArICc6JyArIE9iamVjdC50b1NvdXJjZShh
aSwgc2Vlbik7CisgICAgICAgIG1lbWJlcnMucHVzaChzKTsKKyAgICAgIH0KKyAgICB9IGNhdGNo
IChlKSB7fQorICAgIHZhciBwcmVmaXggPSAnJzsKKyAgICBpZHggPSBzZWVuLmluZGV4T2YoYSk7
CisgICAgaWYgKGlkeCAhPSAtMSkgcHJlZml4ID0gJyMnKyhpZHgrMSkrJz0nOworICAgIHJldHVy
biBwcmVmaXggKyAneycgKyBtZW1iZXJzLmpvaW4oIiwgIikgKyAnfScKKyAgfQorICBpZiAodHlw
ZW9mIGEgPT0gJ2Z1bmN0aW9uJykKKyAgICByZXR1cm4gJygnK2EudG9TdHJpbmcoKS5yZXBsYWNl
KC9cbi9nLCAiICIpLnJlcGxhY2UoL1xzKy9nLCAiICIpKycpJzsKKyAgcmV0dXJuIGEudG9TdHJp
bmcoKTsKK30KKworZnVuY3Rpb24gZm9ybWF0RXJyb3IoZSkgeworICBpZiAod2luZG93LmNvbnNv
bGUpIGNvbnNvbGUubG9nKGUpOworICB2YXIgcGF0aFNlZ3MgPSBsb2NhdGlvbi5ocmVmLnRvU3Ry
aW5nKCkuc3BsaXQoIi8iKTsKKyAgdmFyIGN1cnJlbnREb2MgPSBlLmxpbmVOdW1iZXIgIT0gbnVs
bCA/IHBhdGhTZWdzW3BhdGhTZWdzLmxlbmd0aCAtIDFdIDogbnVsbDsKKyAgdmFyIHRyYWNlID0g
KGUuZmlsZW5hbWUgfHwgY3VycmVudERvYykgKyAiOiIgKyBlLmxpbmVOdW1iZXIgKyAoZS50cmFj
ZSA/ICJcbiIrZS50cmFjZSA6ICIiKTsKKyAgcmV0dXJuIGUubWVzc2FnZSArICJcbiIgKyB0cmFj
ZTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgIHZhciBoID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Qtc3RhdHVzJyk7CisgIGlmIChoID09IG51bGwpIHsKKyAgICBoID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaDEnKTsKKyAgICBoLmlkID0gJ3Rlc3Qtc3RhdHVzJzsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpOworICB9CisgIGgudGV4dENvbnRlbnQgPSAi
IjsKKyAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWxvZycpOworICBp
ZiAobG9nID09IG51bGwpIHsKKyAgICBsb2cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBsb2cuaWQgPSAndGVzdC1sb2cnOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQobG9nKTsKKyAgfQorICB3aGlsZSAobG9nLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkKKyAgICBs
b2cucmVtb3ZlQ2hpbGQobG9nLmZpcnN0Q2hpbGQpOworCisgIHZhciBzZXR1cF9hcmdzID0gW107
CisKKyAgaWYgKFRlc3RzLnN0YXJ0VW5pdCAhPSBudWxsKSB7CisgICAgX190ZXN0TG9nX18gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0cnkgeworICAgICAgc2V0dXBfYXJn
cyA9IFRlc3RzLnN0YXJ0VW5pdCgpOworICAgICAgaWYgKF9fdGVzdExvZ19fLmNoaWxkTm9kZXMu
bGVuZ3RoID4gMCkKKyAgICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKKyAgICB9
IGNhdGNoKGUpIHsKKyAgICAgIHRlc3RGYWlsZWQoInN0YXJ0VW5pdCIsIGZvcm1hdEVycm9yKGUp
KTsKKyAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7CisgICAgICBwcmludFRlc3RT
dGF0dXMoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgIH0KKworICB2YXIgdGVzdHNSdW4gPSBm
YWxzZTsKKyAgdmFyIGFsbFRlc3RzU3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgZm9yICh2YXIgaSBp
biBUZXN0cykgeworICAgIGlmIChpLnN1YnN0cmluZygwLDQpICE9ICJ0ZXN0IikgY29udGludWU7
CisgICAgX190ZXN0TG9nX18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBf
X3Rlc3RTdWNjZXNzX18gPSB0cnVlOworICAgIHRyeSB7CisgICAgICBkb1Rlc3ROb3RpZnkgKGkp
OworICAgICAgdmFyIGFyZ3MgPSBzZXR1cF9hcmdzOworICAgICAgaWYgKFRlc3RzLnNldHVwICE9
IG51bGwpCisgICAgICAgIGFyZ3MgPSBUZXN0cy5zZXR1cC5hcHBseShUZXN0cywgc2V0dXBfYXJn
cyk7CisgICAgICBUZXN0c1tpXS5hcHBseShUZXN0cywgYXJncyk7CisgICAgICBpZiAoVGVzdHMu
dGVhcmRvd24gIT0gbnVsbCkKKyAgICAgICAgVGVzdHMudGVhcmRvd24uYXBwbHkoVGVzdHMsIGFy
Z3MpOworICAgIH0KKyAgICBjYXRjaCAoZSkgeworICAgICAgdGVzdEZhaWxlZChpLCBlLm5hbWUs
IGZvcm1hdEVycm9yKGUpKTsKKyAgICB9CisgICAgaWYgKF9fdGVzdFN1Y2Nlc3NfXyA9PSBmYWxz
ZSkgeworICAgICAgKytfX3Rlc3RGYWlsQ291bnRfXzsKKyAgICB9CisgICAgdmFyIGggPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdoMicpOworICAgIGgudGV4dENvbnRlbnQgPSBpOworICAgIF9f
dGVzdExvZ19fLmluc2VydEJlZm9yZShoLCBfX3Rlc3RMb2dfXy5maXJzdENoaWxkKTsKKyAgICBs
b2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOworICAgIGFsbFRlc3RzU3VjY2Vzc2Z1bCA9IGFs
bFRlc3RzU3VjY2Vzc2Z1bCAmJiBfX3Rlc3RTdWNjZXNzX18gPT0gdHJ1ZTsKKyAgICByZXBvcnRU
ZXN0UmVzdWx0c1RvSGFybmVzcyhfX3Rlc3RTdWNjZXNzX18sIGkpOworICAgIGRvVGVzdE5vdGlm
eSAoaSsiLS0iKyhfX3Rlc3RTdWNjZXNzX18/Ik9LIjoiRkFJTCIpKTsKKyAgICB0ZXN0c1J1biA9
IHRydWU7CisgIH0KKworICBwcmludFRlc3RTdGF0dXModGVzdHNSdW4pOworICBpZiAoVGVzdHMu
ZW5kVW5pdCAhPSBudWxsKSB7CisgICAgX190ZXN0TG9nX18gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICB0cnkgeworICAgICAgVGVzdHMuZW5kVW5pdC5hcHBseShUZXN0cywg
c2V0dXBfYXJncyk7CisgICAgICBpZiAoX190ZXN0TG9nX18uY2hpbGROb2Rlcy5sZW5ndGggPiAw
KQorICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOworICAgIH0gY2F0Y2goZSkg
eworICAgICAgdGVzdEZhaWxlZCgiZW5kVW5pdCIsIGUubmFtZSwgZm9ybWF0RXJyb3IoZSkpOwor
ICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKKyAgICB9CisgIH0KKyAgbm90aWZ5
RmluaXNoZWRUb0hhcm5lc3MoYWxsVGVzdHNTdWNjZXNzZnVsLCAiZmluaXNoZWQgdGVzdHMiKTsK
K30KKworZnVuY3Rpb24gZG9UZXN0Tm90aWZ5KG5hbWUpIHsKKyAgLy90cnnCoHsKKyAgLy8gIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgLy8gIHhoci5vcGVuKCJHRVQiLCAiaHR0
cDovL2xvY2FsaG9zdDo4ODg4LyIrbmFtZSwgdHJ1ZSk7CisgIC8vICB4aHIuc2VuZChudWxsKTsK
KyAgLy99IGNhdGNoKGUpIHt9Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWlsZWQoYXNzZXJ0TmFtZSwg
bmFtZSkgeworICB2YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICB2YXIg
aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7CisgIHZhciBkMSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgaC5hcHBlbmRDaGlsZChkMSk7CisgIGQxLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJGQUlMOiAiKSk7CisgIGQxLnN0eWxlLmNvbG9y
ID0gInJlZCI7CisgIGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoCisgICAg
ICBuYW1lPT1udWxsID8gYXNzZXJ0TmFtZSA6IG5hbWUgKyAiIChpbiAiICsgYXNzZXJ0TmFtZSAr
ICIpIikpOworICBkLmFwcGVuZENoaWxkKGgpOworICB2YXIgYXJncyA9IFtdCisgIGZvciAodmFy
IGk9MjsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgYSA9IGFyZ3VtZW50c1tp
XTsKKyAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgICBwLnN0eWxl
LndoaXRlU3BhY2UgPSAncHJlJzsKKyAgICBwLnRleHRDb250ZW50ID0gKGEgPT0gbnVsbCkgPyAi
bnVsbCIgOgorICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nIHx8IHR5
cGVvZiBhID09ICdzdHJpbmcnKSA/IGEgOiBPYmplY3QudG9Tb3VyY2UoYSk7CisgICAgYXJncy5w
dXNoKHAudGV4dENvbnRlbnQpOworICAgIGQuYXBwZW5kQ2hpbGQocCk7CisgIH0KKyAgX190ZXN0
TG9nX18uYXBwZW5kQ2hpbGQoZCk7CisgIF9fdGVzdFN1Y2Nlc3NfXyA9IGZhbHNlOworICBkb1Rl
c3ROb3RpZnkoW2Fzc2VydE5hbWUsIG5hbWVdLmNvbmNhdChhcmdzKS5qb2luKCItLSIpKTsKK30K
KworZnVuY3Rpb24gdGVzdFBhc3NlZChhc3NlcnROYW1lLCBuYW1lKSB7CisgIGlmICghcXVpZXRN
b2RlKCkpIHsKKyAgICB2YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IHZhciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKKyAgICB2YXIgZDEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgaC5hcHBlbmRDaGlsZChkMSk7CisgICAg
ZDEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1M6ICIpKTsKKyAgICBk
MS5zdHlsZS5jb2xvciA9ICJncmVlbiI7CisgICAgaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgKKyAgICAgICAgbmFtZT09bnVsbCA/IGFzc2VydE5hbWUgOiBuYW1lICsgIiAo
aW4gIiArIGFzc2VydE5hbWUgKyAiKSIpKTsKKyAgICBkLmFwcGVuZENoaWxkKGgpOworICAgIHZh
ciBhcmdzID0gW10KKyAgICBmb3IgKHZhciBpPTI7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7
CisgICAgICB2YXIgYSA9IGFyZ3VtZW50c1tpXTsKKyAgICAgIHZhciBwID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgncCcpOworICAgICAgcC5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZSc7CisgICAg
ICBwLnRleHRDb250ZW50ID0gKGEgPT0gbnVsbCkgPyAibnVsbCIgOgorICAgICAgICAgICAgICAg
ICAgICAgICh0eXBlb2YgYSA9PSAnYm9vbGVhbicgfHwgdHlwZW9mIGEgPT0gJ3N0cmluZycpID8g
YSA6IE9iamVjdC50b1NvdXJjZShhKTsKKyAgICAgIGFyZ3MucHVzaChwLnRleHRDb250ZW50KTsK
KyAgICAgIGQuYXBwZW5kQ2hpbGQocCk7CisgICAgfQorICAgIF9fdGVzdExvZ19fLmFwcGVuZENo
aWxkKGQpOworICB9CisgIGRvVGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFy
Z3MpLmpvaW4oIi0tIikpOworfQorCitmdW5jdGlvbiBjaGVja1Rlc3RTdWNjZXNzKCkgeworICBy
ZXR1cm4gX190ZXN0RmFpbENvdW50X18gPT0gMDsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBmdW5jdGlvbigpeworICBmb3IgKHZhciBpPTA7IGk8X19iYWNrbG9nX18ubGVu
Z3RoOyBpKyspCisgICAgbG9nKF9fYmFja2xvZ19fW2ldKTsKK30sIGZhbHNlKTsKKworZnVuY3Rp
b24gbG9nKG1zZykgeworICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAg
dmFyIGEgPSBbXTsKKyAgZm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykKKyAg
ICBhLnB1c2goYXJndW1lbnRzW2ldKTsKKyAgcC50ZXh0Q29udGVudCA9IGEuam9pbigiLCAiKTsK
KyAgaWYgKCFfX3Rlc3RMb2dfXykgeworICAgIGlmIChkb2N1bWVudC5ib2R5KQorICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChwKTsKKyAgICBlbHNlCisgICAgICBfX2JhY2tsb2dfXy5w
dXNoKG1zZyk7CisgIH0gZWxzZSB7CisgICAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQocCk7Cisg
IH0KK30KKworZnVuY3Rpb24gcHJpbnRUZXN0U3RhdHVzKHRlc3RzUnVuKSB7CisgIHZhciBzdGF0
dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKKyAgaWYgKHRlc3Rz
UnVuKSB7CisgICAgc3RhdHVzLmNsYXNzTmFtZSA9IGNoZWNrVGVzdFN1Y2Nlc3MoKSA/ICdvaycg
OiAnZmFpbCc7CisgICAgc3RhdHVzLnRleHRDb250ZW50ID0gY2hlY2tUZXN0U3VjY2VzcygpID8g
IlBBU1MiIDogIkZBSUwiOworICB9IGVsc2UgeworICAgIHN0YXR1cy5jbGFzc05hbWUgPSAnZmFp
bCc7CisgICAgc3RhdHVzLnRleHRDb250ZW50ID0gIk5PIFRFU1RTIEZPVU5EIjsKKyAgfQorfQor
CitmdW5jdGlvbiBhc3NlcnRGYWlsKG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0g
bmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdHJ5IHsgZigpOyB9IGNh
dGNoKGUpIHsgcj10cnVlOyB9CisgIGlmICghcikgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEZh
aWwiLCBuYW1lLCBmKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBh
c3NlZCgiYXNzZXJ0RmFpbCIsIG5hbWUsIGYpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisK
K2Z1bmN0aW9uIGFzc2VydE9rKG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFt
ZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGVycjsKKyAgdHJ5IHsg
ZigpOyByPXRydWU7IH0gY2F0Y2goZSkgeyBlcnIgPSBlOyB9CisgIGlmICghcikgeworICAgIHRl
c3RGYWlsZWQoImFzc2VydE9rIiwgbmFtZSwgZiwgZXJyLnRvU3RyaW5nKCkpOworICAgIHJldHVy
biBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnRPayIsIG5hbWUsIGYp
OworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydChuYW1lLCB2KSB7
CisgIGlmICh2ID09IG51bGwpIHsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIGlmICghdikg
eworICAgIHRlc3RGYWlsZWQoImFzc2VydCIsIG5hbWUsIHYpOworICAgIHJldHVybiBmYWxzZTsK
KyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnQiLCBuYW1lLCB2KTsKKyAgICByZXR1
cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShuYW1lLCB2LCBwKSB7
CisgIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gcDsgfQorICBpZiAo
dltwXSA9PSBudWxsKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiYXNzZXJ0UHJv
cGVydHkiLCBuYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlvbiBjb21w
YXJlKGEsYikgeworICBpZiAodHlwZW9mIGEgPT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT0gJ251
bWJlcicpIHsKKyAgICByZXR1cm4gYSA9PSBiOworICB9IGVsc2UgeworICAgIHJldHVybiBPYmpl
Y3QudG9Tb3VyY2UoYSkgPT0gT2JqZWN0LnRvU291cmNlKGIpOworICB9Cit9CisKK2Z1bmN0aW9u
IGFzc2VydEVxdWFscyhuYW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYg
PSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoIWNvbXBhcmUodiwgcCkpIHsKKyAgICB0ZXN0
RmFpbGVkKCJhc3NlcnRFcXVhbHMiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFsc2U7Cisg
IH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwgdiwgcCk7Cisg
ICAgcmV0dXJuIHRydWU7CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0QXJyYXlFcXVhbHMobmFt
ZSwgdiwgcCkgeworICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51
bGw7IH0KKyAgaWYgKCF2KSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHM6IGZp
cnN0IGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAg
fQorICBpZiAoIXApIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsczogc2Vjb25k
IGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQor
ICBpZiAodi5sZW5ndGggIT0gcC5sZW5ndGgpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJh
eUVxdWFscyIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgdi5sZW5ndGg7ICsraWkpIHsKKyAgICBpZiAodltpaV0gIT0gcFtpaV0p
IHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7Cisg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImFzc2VydEFycmF5
RXF1YWxzIiwgbmFtZSwgdiwgcCk7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBhc3Nl
cnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uKG5hbWUsIHYsIHAsIGwpIHsKKyAgaWYgKGwgPT0gbnVs
bCkgeyBsID0gcDsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoIXYpIHsK
KyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uOiBmaXJzdCBhcnJh
eSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYg
KCFwKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbjogc2Vj
b25kIGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAg
fQorICBpZiAoIWwpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNp
bG9uOiBsaW1pdCBhcnJheSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgaWYgKHYubGVuZ3RoICE9IHAubGVuZ3RoKSB7CisgICAgdGVzdEZhaWxlZCgi
YXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbiIsIG5hbWUsIHYsIHAsIGwpOworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorICBpZiAodi5sZW5ndGggIT0gbC5sZW5ndGgpIHsKKyAgICB0ZXN0RmFp
bGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwgcCwgbCk7CisgICAg
cmV0dXJuIGZhbHNlOworICB9CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCB2Lmxlbmd0aDsgKytp
aSkgeworICAgIGlmIChNYXRoLmFicyh2W2lpXS0gcFtpaV0pPmxbaWldKSB7CisgICAgICB0ZXN0
RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwgcCwgbCk7Cisg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImFzc2VydEFycmF5
RXF1YWxzV2l0aEVwc2lsb24iLCBuYW1lLCB2LCBwLCBsKTsKKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Z1bmN0aW9uIGFzc2VydE5vdEVxdWFscyhuYW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51bGwp
IHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoY29tcGFyZSh2LCBwKSkg
eworICAgIHRlc3RGYWlsZWQoImFzc2VydE5vdEVxdWFscyIsIG5hbWUsIHYsIHApCisgICAgcmV0
dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQoImFzc2VydE5vdEVxdWFscyIs
IG5hbWUsIHYsIHApCisgICAgcmV0dXJuIHRydWU7CisgIH0KK30KKworZnVuY3Rpb24gdGltZShl
bGVtZW50SWQsIGYpIHsKKyAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZCk7CisgICAgdmFyIHQwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgZigpOworICAg
IHZhciB0MSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgIHMudGV4dENvbnRlbnQgPSAnRWxh
cHNlZDogJysodDEtdDApKycgbXMnOworfQorCitmdW5jdGlvbiByYW5kb21GbG9hdCAoKSB7Cisg
ICAgLy8gbm90ZSB0aGF0IGluIGZ1enotdGVzdGluZywgdGhpcyBjYW4gdXNlZCBhcyB0aGUgc2l6
ZSBvZiBhIGJ1ZmZlciB0byBhbGxvY2F0ZS4KKyAgICAvLyBzbyBpdCBzaG91bGRuJ3QgcmV0dXJu
IGFzdHJvbm9taWMgdmFsdWVzLiBUaGUgbWF4aW11bSB2YWx1ZSAxMDAwMDAwMCBpcyBhbHJlYWR5
IHF1aXRlIGJpZy4KKyAgICB2YXIgZmFjID0gMS4wOworICAgIHZhciByID0gTWF0aC5yYW5kb20o
KTsKKyAgICBpZiAociA8IDAuMjUpCisgICAgICAgIGZhYyA9IDEwOworICAgIGVsc2UgaWYgKHIg
PCAwLjQpCisgICAgICAgIGZhYyA9IDEwMDsKKyAgICBlbHNlIGlmIChyIDwgMC41KQorICAgICAg
ICBmYWMgPSAxMDAwOworICAgIGVsc2UgaWYgKHIgPCAwLjYpCisgICAgICAgIGZhYyA9IDEwMDAw
MDsKKyAgICBlbHNlIGlmIChyIDwgMC43KQorICAgICAgICBmYWMgPSAxMDAwMDAwMDsKKyAgICBl
bHNlIGlmIChyIDwgMC44KQorICAgICAgICBmYWMgPSBOYU47CisgICAgcmV0dXJuIC0wLjUqZmFj
ICsgTWF0aC5yYW5kb20oKSAqIGZhYzsKK30KK2Z1bmN0aW9uIHJhbmRvbUZsb2F0RnJvbVJhbmdl
KGxvLCBoaSkgeworICB2YXIgciA9IE1hdGgucmFuZG9tKCk7CisgIGlmIChyIDwgMC4wNSkKKyAg
ICByZXR1cm4gbG87CisgIGVsc2UgaWYgKHIgPiAwLjk1KQorICAgIHJldHVybiBoaTsKKyAgZWxz
ZQorICAgIHJldHVybiBsbyArIE1hdGgucmFuZG9tKCkqKGhpLWxvKTsKK30KK2Z1bmN0aW9uIHJh
bmRvbUludCAoc3opIHsKKyAgaWYgKHN6ICE9IG51bGwpCisgICAgcmV0dXJuIE1hdGguZmxvb3Io
TWF0aC5yYW5kb20oKSpzeik7CisgIGVsc2UKKyAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21G
bG9hdCgpKTsKK30KK2Z1bmN0aW9uIHJhbmRvbUludEZyb21SYW5nZShsbywgaGkpIHsKKyAgcmV0
dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXRGcm9tUmFuZ2UobG8sIGhpKSk7Cit9CitmdW5jdGlv
biByYW5kb21MZW5ndGggKCkgeworICAgIHZhciBsID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgp
ICogMjU2KTsKKyAgICBpZiAoTWF0aC5yYW5kb20gPCAwLjUpIGwgPSBsIC8gMTA7CisgICAgaWYg
KE1hdGgucmFuZG9tIDwgMC4zKSBsID0gbCAvIDEwOworICAgIHJldHVybiBsOworfQorZnVuY3Rp
b24gcmFuZG9tU21hbGxJbnRBcnJheSAoKSB7CisgICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsK
KyAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQor
ICAgICAgICBzW2ldID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU2KS0xOworICAgIHJl
dHVybiBzOworfQorZnVuY3Rpb24gcmFuZG9tRmxvYXRBcnJheSAoKSB7CisgICAgdmFyIGwgPSBy
YW5kb21MZW5ndGgoKTsKKyAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBp
PTA7IGk8bDsgaSsrKQorICAgICAgICBzW2ldID0gcmFuZG9tRmxvYXQoKTsKKyAgICByZXR1cm4g
czsKK30KK2Z1bmN0aW9uIHJhbmRvbUludEFycmF5ICgpIHsKKyAgICB2YXIgbCA9IHJhbmRvbUxl
bmd0aCgpOworICAgIHZhciBzID0gbmV3IEFycmF5KGwpOworICAgIGZvciAodmFyIGk9MDsgaTxs
OyBpKyspCisgICAgICAgIHNbaV0gPSByYW5kb21GbG9hdCgpOworICAgIHJldHVybiBzOworfQor
ZnVuY3Rpb24gcmFuZG9tTWl4ZWRBcnJheSAoKSB7CisgICAgdmFyIGwgPSByYW5kb21MZW5ndGgo
KTsKKyAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsr
KQorICAgICAgICBzW2ldID0gcmFuZG9tTm9uQXJyYXkoKTsKKyAgICByZXR1cm4gczsKK30KK2Z1
bmN0aW9uIHJhbmRvbUFycmF5ICgpIHsKKyAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7CisgICAg
aWYgKHIgPCAwLjMpCisgICAgICAgIHJldHVybiByYW5kb21GbG9hdEFycmF5KCk7CisgICAgZWxz
ZSBpZiAociA8IDAuNikKKyAgICAgICAgcmV0dXJuIHJhbmRvbUludEFycmF5KCk7CisgICAgZWxz
ZSBpZiAociA8IDAuOCkKKyAgICAgICAgcmV0dXJuIHJhbmRvbVNtYWxsSW50QXJyYXkoKTsKKyAg
ICBlbHNlCisgICAgICAgIHJldHVybiByYW5kb21NaXhlZEFycmF5KCk7Cit9CitmdW5jdGlvbiBy
YW5kb21TdHJpbmcgKCkgeworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0
cmluZywgcmFuZG9tU21hbGxJbnRBcnJheSgpKTsKK30KK2Z1bmN0aW9uIHJhbmRvbUdMQ29uc3Rh
bnQgKCkgeworICAgIHJldHVybiBHTENvbnN0YW50c1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkg
KiBHTENvbnN0YW50cy5sZW5ndGgpXTsKK30KKworZnVuY3Rpb24gcmFuZG9tTm9uQXJyYXkoKSB7
CisgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOworICAgIGlmIChyIDwgMC4yNSkgeworICAgICAg
ICByZXR1cm4gcmFuZG9tRmxvYXQoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjYpIHsKKyAgICAg
ICAgcmV0dXJuIHJhbmRvbUludCgpOworICAgIH0gZWxzZSBpZiAociA8IDAuNykgeworICAgICAg
ICByZXR1cm4gKHIgPCAwLjY1KTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjg3KSB7CisgICAgICAg
IHJldHVybiByYW5kb21TdHJpbmcoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjk4KSB7CisgICAg
ICAgIHJldHVybiByYW5kb21HTENvbnN0YW50KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgfQorfQorCitmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUFyZyhwb3MsIGNv
dW50KSB7CisgICAgaWYgKHBvcyA9PSAwICYmIE1hdGgucmFuZG9tKCkgPCAwLjUpCisgICAgICAg
IHJldHVybiByYW5kb21HTENvbnN0YW50KCk7CisgICAgaWYgKHBvcyA9PSBjb3VudC0xICYmIE1h
dGgucmFuZG9tKCkgPCAwLjI1KQorICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuNSkKKyAg
ICAgICAgICAgIHJldHVybiByYW5kb21TdHJpbmcoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmV0dXJuIHJhbmRvbUFycmF5KCk7CisgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOworICAg
IGlmIChyIDwgMC4yNSkgeworICAgICAgICByZXR1cm4gcmFuZG9tRmxvYXQoKTsKKyAgICB9IGVs
c2UgaWYgKHIgPCAwLjYpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUludCgpOworICAgIH0gZWxz
ZSBpZiAociA8IDAuNykgeworICAgICAgICByZXR1cm4gKHIgPCAwLjY1KTsKKyAgICB9IGVsc2Ug
aWYgKHIgPCAwLjc3KSB7CisgICAgICAgIHJldHVybiByYW5kb21TdHJpbmcoKTsKKyAgICB9IGVs
c2UgaWYgKHIgPCAwLjg0KSB7CisgICAgICAgIHJldHVybiByYW5kb21BcnJheSgpOworICAgIH0g
ZWxzZSBpZiAociA8IDAuOTgpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CisKKworZnVuY3Rp
b24gZ2VuZXJhdGVSYW5kb21BcmdzKGNvdW50KSB7CisgICAgdmFyIGFyciA9IG5ldyBBcnJheShj
b3VudCk7CisgICAgZm9yICh2YXIgaT0wOyBpPGNvdW50OyBpKyspCisgICAgICAgIGFycltpXSA9
IGdlbmVyYXRlUmFuZG9tQXJnKGksIGNvdW50KTsKKyAgICByZXR1cm4gYXJyOworfQorCisvLyBx
YyAoYXJnMWdlbiwgYXJnMmdlbiwgLi4uLCBwcmVkaWNhdGUpCisvLyBxYyAocmFuZG9tU3RyaW5n
LCByYW5kb21JbnQsIHJhbmRvbUludCwgZnVuY3Rpb24ocyxpLGopeyBzLnN1YnN0cmluZyhpLGop
IH0pCitmdW5jdGlvbiBxYygpIHsKK30KKworR0xDb25zdGFudHMgPSBbCisxLAorMHgwMDAwMDEw
MCwKKzB4MDAwMDA0MDAsCisweDAwMDA0MDAwLAorMHgwMDAwLAorMHgwMDAxLAorMHgwMDAyLAor
MHgwMDAzLAorMHgwMDA0LAorMHgwMDA1LAorMHgwMDA2LAorMCwKKzEsCisweDAzMDAsCisweDAz
MDEsCisweDAzMDIsCisweDAzMDMsCisweDAzMDQsCisweDAzMDUsCisweDAzMDYsCisweDAzMDcs
CisweDAzMDgsCisweDgwMDYsCisweDgwMDksCisweDgwMDksCisweDg4M0QsCisweDgwMEEsCisw
eDgwMEIsCisweDgwQzgsCisweDgwQzksCisweDgwQ0EsCisweDgwQ0IsCisweDgwMDEsCisweDgw
MDIsCisweDgwMDMsCisweDgwMDQsCisweDgwMDUsCisweDg4OTIsCisweDg4OTMsCisweDg4OTQs
CisweDg4OTUsCisweDg4RTAsCisweDg4RTQsCisweDg4RTgsCisweDg3NjQsCisweDg3NjUsCisw
eDg2MjYsCisweDA0MDQsCisweDA0MDUsCisweDA0MDgsCisweDBERTEsCisweDBCNDQsCisweDBC
RTIsCisweDBCRDAsCisweDBCOTAsCisweDBCNzEsCisweDBDMTEsCisweDgwMzcsCisweDgwOUUs
CisweDgwQTAsCiswLAorMHgwNTAwLAorMHgwNTAxLAorMHgwNTAyLAorMHgwNTA1LAorMHgwOTAw
LAorMHgwOTAxLAorMHgwQjIxLAorMHg4NDZELAorMHg4NDZFLAorMHgwQjQ1LAorMHgwQjQ2LAor
MHgwQjcwLAorMHgwQjcyLAorMHgwQjczLAorMHgwQjc0LAorMHgwQjkxLAorMHgwQjkyLAorMHgw
Qjk0LAorMHgwQjk1LAorMHgwQjk2LAorMHgwQjk3LAorMHgwQjkzLAorMHgwQjk4LAorMHg4ODAw
LAorMHg4ODAxLAorMHg4ODAyLAorMHg4ODAzLAorMHg4Q0EzLAorMHg4Q0E0LAorMHg4Q0E1LAor
MHgwQkEyLAorMHgwQzEwLAorMHgwQzIyLAorMHgwQzIzLAorMHgwQ0Y1LAorMHgwRDA1LAorMHgw
RDMzLAorMHgwRDNBLAorMHgwRDUwLAorMHgwRDUyLAorMHgwRDUzLAorMHgwRDU0LAorMHgwRDU1
LAorMHgwRDU2LAorMHgwRDU3LAorMHgyQTAwLAorMHg4MDM4LAorMHg4MDY5LAorMHg4MEE4LAor
MHg4MEE5LAorMHg4MEFBLAorMHg4MEFCLAorMHg4NkEyLAorMHg4NkEzLAorMHgxMTAwLAorMHgx
MTAxLAorMHgxMTAyLAorMHg4MTkyLAorMHgxNDAwLAorMHgxNDAxLAorMHgxNDAyLAorMHgxNDAz
LAorMHgxNDA0LAorMHgxNDA1LAorMHgxNDA2LAorMHgxNDBDLAorMHgxOTAyLAorMHgxOTA2LAor
MHgxOTA3LAorMHgxOTA4LAorMHgxOTA5LAorMHgxOTBBLAorMHg4MDMzLAorMHg4MDM0LAorMHg4
MzYzLAorMHg4QjMwLAorMHg4QjMxLAorMHg4ODY5LAorMHg4REZCLAorMHg4REZDLAorMHg4QjRE
LAorMHg4QjRDLAorMHg4ODcyLAorMHg4REZELAorMHg4QjRGLAorMHg4QjgwLAorMHg4QjgyLAor
MHg4QjgzLAorMHg4Qjg1LAorMHg4Qjg2LAorMHg4Qjg3LAorMHg4Qjg5LAorMHg4QjhBLAorMHg4
QjhDLAorMHg4QjhELAorMHgwMjAwLAorMHgwMjAxLAorMHgwMjAyLAorMHgwMjAzLAorMHgwMjA0
LAorMHgwMjA1LAorMHgwMjA2LAorMHgwMjA3LAorMHgxRTAwLAorMHgxRTAxLAorMHgxRTAyLAor
MHgxRTAzLAorMHgxNTBBLAorMHg4NTA3LAorMHg4NTA4LAorMHgxRjAwLAorMHgxRjAxLAorMHgx
RjAyLAorMHgxRjAzLAorMHgyNjAwLAorMHgyNjAxLAorMHgyNzAwLAorMHgyNzAxLAorMHgyNzAy
LAorMHgyNzAzLAorMHgyODAwLAorMHgyODAxLAorMHgyODAyLAorMHgyODAzLAorMHgxNzAyLAor
MHg4NTEzLAorMHg4NTE0LAorMHg4NTE1LAorMHg4NTE2LAorMHg4NTE3LAorMHg4NTE4LAorMHg4
NTE5LAorMHg4NTFBLAorMHg4NTFDLAorMHg4NEMwLAorMHg4NEMxLAorMHg4NEMyLAorMHg4NEMz
LAorMHg4NEM0LAorMHg4NEM1LAorMHg4NEM2LAorMHg4NEM3LAorMHg4NEM4LAorMHg4NEM5LAor
MHg4NENBLAorMHg4NENCLAorMHg4NENDLAorMHg4NENELAorMHg4NENFLAorMHg4NENGLAorMHg4
NEQwLAorMHg4NEQxLAorMHg4NEQyLAorMHg4NEQzLAorMHg4NEQ0LAorMHg4NEQ1LAorMHg4NEQ2
LAorMHg4NEQ3LAorMHg4NEQ4LAorMHg4NEQ5LAorMHg4NERBLAorMHg4NERCLAorMHg4NERDLAor
MHg4NERELAorMHg4NERFLAorMHg4NERGLAorMHg4NEUwLAorMHgyOTAxLAorMHg4MTJGLAorMHg4
MzcwLAorMHg4QjUwLAorMHg4QjUxLAorMHg4QjUyLAorMHg4QjUzLAorMHg4QjU0LAorMHg4QjU1
LAorMHg4QjU2LAorMHg4QjU3LAorMHg4QjU4LAorMHg4QjU5LAorMHg4QjVBLAorMHg4QjVCLAor
MHg4QjVDLAorMHg4QjVFLAorMHg4QjYwLAorMHg4NjIyLAorMHg4NjIzLAorMHg4NjI0LAorMHg4
NjI1LAorMHg4ODZBLAorMHg4NjQ1LAorMHg4ODlGLAorMHg4QjlBLAorMHg4QjlCLAorMHg4Qjgx
LAorMHg4Qjg0LAorMHg4Qjg4LAorMHg4REZBLAorMHg4REY4LAorMHg4REY5LAorMHg4REYwLAor
MHg4REYxLAorMHg4REYyLAorMHg4REYzLAorMHg4REY0LAorMHg4REY1LAorMHg4RDQwLAorMHg4
RDQxLAorMHg4MDU2LAorMHg4MDU3LAorMHg4RDYyLAorMHg4MUE1LAorMHgxOTAxLAorMHg4RDQ4
LAorMHg4RDQyLAorMHg4RDQzLAorMHg4RDQ0LAorMHg4RDUwLAorMHg4RDUxLAorMHg4RDUyLAor
MHg4RDUzLAorMHg4RDU0LAorMHg4RDU1LAorMHg4Q0QwLAorMHg4Q0QxLAorMHg4Q0QyLAorMHg4
Q0QzLAorMHg4Q0UwLAorMHg4RDAwLAorMHg4RDIwLAorMCwKKzB4OENENSwKKzB4OENENiwKKzB4
OENENywKKzB4OENEOSwKKzB4OENERCwKKzB4OENBNiwKKzB4OENBNywKKzB4ODRFOCwKKzB4MDUw
NiwKKzB4ODA5RAorXTsKKworZnVuY3Rpb24gcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3Moc3Vj
Y2VzcywgbXNnKSB7CisgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKKyAg
ICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cubG9j
YXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7CisgIH0KK30KKworZnVuY3Rpb24gbm90aWZ5
RmluaXNoZWRUb0hhcm5lc3MoKSB7CisgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5l
c3MpIHsKKyAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQo
d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTsKKyAgfQorfQorCitmdW5jdGlvbiBpbml0VGVzdHMo
KSB7CisgIGlmIChUZXN0cy5tZXNzYWdlICE9IG51bGwpIHsKKyAgICB2YXIgaCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0LW1lc3NhZ2UnKTsKKyAgICBpZiAoaCA9PSBudWxsKSB7Cisg
ICAgICBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOworICAgICAgaC5pZCA9ICd0ZXN0
LW1lc3NhZ2UnOworICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaCwgZG9jdW1lbnQu
Ym9keS5maXJzdENoaWxkKTsKKyAgICB9CisgICAgaC50ZXh0Q29udGVudCA9IFRlc3RzLm1lc3Nh
Z2U7CisgIH0KKyAgaWYgKFRlc3RzLmF1dG9ydW4pIHsKKyAgICBydW5UZXN0cygpOworICB9IGVs
c2UgeworICAgIHZhciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtcnVuJyk7Cisg
ICAgaWYgKGggPT0gbnVsbCkgeworICAgICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7CisgICAgICBoLnR5cGUgPSAnc3VibWl0JzsKKyAgICAgIGgudmFsdWUgPSAiUnVuIHRl
c3RzIjsKKyAgICAgIGguYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7Cisg
ICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CisgICAgICB9
LCBmYWxzZSk7CisgICAgICBoLmlkID0gJ3Rlc3QtcnVuJzsKKyAgICAgIGRvY3VtZW50LmJvZHku
aW5zZXJ0QmVmb3JlKGgsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CisgICAgfQorICAgIGgu
dGV4dENvbnRlbnQgPSBUZXN0cy5tZXNzYWdlOworICB9CisKK30KKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpeworICBpZiAoVGVzdHMuYXV0b2luaXQpIHsKKyAg
ICAvLyBsZXQgdGhlIGJyb3dzZXIgaG9wZWZ1bGx5IGZpbmlzaCB1cGRhdGluZyB0aGUgZ2wgY2Fu
dmFzIHN1cmZhY2VzIGlmIHdlIGFyZSBnaXZlbiBhIGRlbGF5CisgICAgaWYgKFRlc3RzLmRlbGF5
KQorICAgICAgc2V0VGltZW91dChpbml0VGVzdHMsIFRlc3RzLmRlbGF5KTsKKyAgICBlbHNlCisg
ICAgICBpbml0VGVzdHMoKQorICB9Cit9LCBmYWxzZSk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhj
YzA4YTY1MmI5ZjVkMTRlNDA2ZmU0ZGI3Nzk5MGRjZjAwNTIxZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS91dGlsLmpzCkBAIC0wLDAgKzEsMTI4NyBAQAorLyoKK1V0aWxpdGll
cyBmb3IgdGhlIE9wZW5HTCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAorKi8KKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCitmdW5jdGlvbiBsb2FkVGV4dHVy
ZShnbCwgZWxlbSwgbWlwbWFwcykgeworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwor
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGVsZW0p
OworICBpZiAobWlwbWFwcyAhPSBmYWxzZSkKKyAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhU
VVJFXzJEKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dS
QVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAg
aWYgKG1pcG1hcHMpCisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTElORUFSKTsKKyAgZWxzZQorICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5M
SU5FQVIpOworICByZXR1cm4gdGV4OworfQorCitmdW5jdGlvbiBnZXRTaGFkZXIoZ2wsIGlkKSB7
CisgIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgIGlm
ICghc2hhZGVyU2NyaXB0KSB7CisgICAgdGhyb3cobmV3IEVycm9yKCJObyBzaGFkZXIgZWxlbWVu
dCB3aXRoIGlkOiAiK2lkKSk7CisgIH0KKworICB2YXIgc3RyID0gIiI7CisgIHZhciBrID0gc2hh
ZGVyU2NyaXB0LmZpcnN0Q2hpbGQ7CisgIHdoaWxlIChrKSB7CisgICAgaWYgKGsubm9kZVR5cGUg
PT0gMykKKyAgICAgIHN0ciArPSBrLnRleHRDb250ZW50OworICAgIGsgPSBrLm5leHRTaWJsaW5n
OworICB9CisKKyAgdmFyIHNoYWRlcjsKKyAgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNo
YWRlci94LWZyYWdtZW50IikgeworICAgIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFH
TUVOVF9TSEFERVIpOworICB9IGVsc2UgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRl
ci94LXZlcnRleCIpIHsKKyAgICBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NI
QURFUik7CisgIH0gZWxzZSB7CisgICAgdGhyb3cobmV3IEVycm9yKCJVbmtub3duIHNoYWRlciB0
eXBlICIrc2hhZGVyU2NyaXB0LnR5cGUpKTsKKyAgfQorCisgIGdsLnNoYWRlclNvdXJjZShzaGFk
ZXIsIHN0cik7CisgIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKworICBpZiAoZ2wuZ2V0U2hh
ZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpICE9IDEpIHsKKyAgICB2YXIg
aWxvZyA9IGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKKyAgICBnbC5kZWxldGVTaGFkZXIo
c2hhZGVyKTsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0byBjb21waWxlIHNoYWRlciAi
K3NoYWRlclNjcmlwdC5pZCArICIsIFNoYWRlciBpbmZvIGxvZzogIiArIGlsb2cpKTsKKyAgfQor
ICByZXR1cm4gc2hhZGVyOworfQorCitmdW5jdGlvbiBsb2FkU2hhZGVyQXJyYXkoZ2wsIHNoYWRl
cnMpIHsKKyAgdmFyIGlkID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICB2YXIgc2hhZGVyT2JqcyA9
IFtdOworICBmb3IgKHZhciBpPTA7IGk8c2hhZGVycy5sZW5ndGg7ICsraSkgeworICAgIHRyeSB7
CisgICAgICB2YXIgc2ggPSBnZXRTaGFkZXIoZ2wsIHNoYWRlcnNbaV0pOworICAgICAgc2hhZGVy
T2Jqcy5wdXNoKHNoKTsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihpZCwgc2gpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgIHZhciBwciA9IHtwcm9ncmFtOiBpZCwgc2hhZGVyczogc2hhZGVyT2Jq
c307CisgICAgICBkZWxldGVTaGFkZXIoZ2wsIHByKTsKKyAgICAgIHRocm93IChlKTsKKyAgICB9
CisgIH0KKyAgdmFyIHByb2cgPSB7cHJvZ3JhbTogaWQsIHNoYWRlcnM6IHNoYWRlck9ianN9Owor
ICBnbC5saW5rUHJvZ3JhbShpZCk7CisgIGdsLnZhbGlkYXRlUHJvZ3JhbShpZCk7CisgIGlmIChn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKGlkLCBnbC5MSU5LX1NUQVRVUykgIT0gMSkgeworICAgIGRl
bGV0ZVNoYWRlcihnbCxwcm9nKTsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0byBsaW5r
IHNoYWRlciIpKTsKKyAgfQorICBpZiAoZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihpZCwgZ2wuVkFM
SURBVEVfU1RBVFVTKSAhPSAxKSB7CisgICAgZGVsZXRlU2hhZGVyKGdsLHByb2cpOworICAgIHRo
cm93KG5ldyBFcnJvcigiRmFpbGVkIHRvIHZhbGlkYXRlIHNoYWRlciIpKTsKKyAgfQorICByZXR1
cm4gcHJvZzsKK30KK2Z1bmN0aW9uIGxvYWRTaGFkZXIoZ2wpIHsKKyAgdmFyIHNoID0gW107Cisg
IGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyArK2kpCisgICAgc2gucHVzaChhcmd1
bWVudHNbaV0pOworICByZXR1cm4gbG9hZFNoYWRlckFycmF5KGdsLCBzaCk7Cit9CisKK2Z1bmN0
aW9uIGRlbGV0ZVNoYWRlcihnbCwgc2gpIHsKKyAgZ2wudXNlUHJvZ3JhbShudWxsKTsKKyAgc2gu
c2hhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHMpeworICAgIGdsLmRldGFjaFNoYWRlcihzaC5wcm9n
cmFtLCBzKTsKKyAgICBnbC5kZWxldGVTaGFkZXIocyk7CisgIH0pOworICBnbC5kZWxldGVQcm9n
cmFtKHNoLnByb2dyYW0pOworfQorCitmdW5jdGlvbiBnZXRHTEVycm9yQXNTdHJpbmcoY3R4LCBl
cnIpIHsKKyAgaWYgKGVyciA9PT0gY3R4Lk5PX0VSUk9SKSB7CisgICAgcmV0dXJuICJOT19FUlJP
UiI7CisgIH0KKyAgZm9yICh2YXIgbmFtZSBpbiBjdHgpIHsKKyAgICBpZiAoY3R4W25hbWVdID09
PSBlcnIpIHsKKyAgICAgIHJldHVybiBuYW1lOworICAgIH0KKyAgfQorICByZXR1cm4gZXJyLnRv
U3RyaW5nKCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrRXJyb3IoZ2wsIG1zZykgeworICB2YXIgZSA9
IGdsLmdldEVycm9yKCk7CisgIGlmIChlICE9IGdsLk5PX0VSUk9SKSB7CisgICAgbG9nKCJFcnJv
ciAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlKSArICIgYXQgIiArIG1zZyk7CisgIH0KKyAg
cmV0dXJuIGU7Cit9CisKK2Z1bmN0aW9uIHRocm93RXJyb3IoZ2wsIG1zZykgeworICB2YXIgZSA9
IGdsLmdldEVycm9yKCk7CisgIGlmIChlICE9IDApIHsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkVy
cm9yICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGUpICsgIiBhdCAiICsgbXNnKSk7CisgIH0K
K30KKworTWF0aC5jb3QgPSBmdW5jdGlvbih6KSB7IHJldHVybiAxLjAgLyBNYXRoLnRhbih6KTsg
fQorCisvKgorICBNYXRyaXggdXRpbGl0aWVzLCB1c2luZyB0aGUgT3BlbkdMIGVsZW1lbnQgb3Jk
ZXIgd2hlcmUKKyAgdGhlIGxhc3QgNCBlbGVtZW50cyBhcmUgdGhlIHRyYW5zbGF0aW9uIGNvbHVt
bi4KKworICBVc2VzIGZsYXQgYXJyYXlzIGFzIG1hdHJpY2VzIGZvciBwZXJmb3JtYW5jZS4KKwor
ICBNb3N0IG9wZXJhdGlvbnMgaGF2ZSBpbi1wbGFjZSB2YXJpYW50cyB0byBhdm9pZCBhbGxvY2F0
aW5nIHRlbXBvcmFyeSBtYXRyaWNlcy4KKworICBOYW1pbmcgbG9naWM6CisgICAgTWF0cml4Lm1l
dGhvZCBvcGVyYXRlcyBvbiBhIDR4NCBNYXRyaXggYW5kIHJldHVybnMgYSBuZXcgTWF0cml4Lgor
ICAgIE1hdHJpeC5tZXRob2QzeDMgb3BlcmF0ZXMgb24gYSAzeDMgTWF0cml4IGFuZCByZXR1cm5z
IGEgbmV3IE1hdHJpeC4gTm90IGFsbCBvcGVyYXRpb25zIGhhdmUgYSAzeDMgdmVyc2lvbiAoYXMg
M3gzIGlzIHVzdWFsbHkgb25seSB1c2VkIGZvciB0aGUgbm9ybWFsIG1hdHJpeDogTWF0cml4LnRy
YW5zcG9zZTN4MyhNYXRyaXguaW52ZXJzZVRvM3gzKG1hdDR4NCkpKQorICAgIE1hdHJpeC5tZXRo
b2RbM3gzXUluUGxhY2UoYXJncywgdGFyZ2V0KSBzdG9yZXMgaXRzIHJlc3VsdCBpbiB0aGUgdGFy
Z2V0IG1hdHJpeC4KKworICAgIE1hdHJpeC5zY2FsZShbc3gsIHN5LCBzel0pIC0tIG5vbi11bmlm
b3JtIHNjYWxlIGJ5IHZlY3RvcgorICAgIE1hdHJpeC5zY2FsZTEocykgICAgICAgICAgIC0tIHVu
aWZvcm0gc2NhbGUgYnkgc2NhbGFyCisgICAgTWF0cml4LnNjYWxlMyhzeCwgc3ksIHN6KSAgLS0g
bm9uLXVuaWZvcm0gc2NhbGUgYnkgc2NhbGFycworCisgICAgRGl0dG8gZm9yIHRyYW5zbGF0ZS4K
KyovCitNYXRyaXggPSB7CisgIGlkZW50aXR5IDogWworICAgIDEuMCwgMC4wLCAwLjAsIDAuMCwK
KyAgICAwLjAsIDEuMCwgMC4wLCAwLjAsCisgICAgMC4wLCAwLjAsIDEuMCwgMC4wLAorICAgIDAu
MCwgMC4wLCAwLjAsIDEuMAorICBdLAorCisgIG5ld0lkZW50aXR5IDogZnVuY3Rpb24oKSB7Cisg
ICAgcmV0dXJuIFsKKyAgICAgIDEuMCwgMC4wLCAwLjAsIDAuMCwKKyAgICAgIDAuMCwgMS4wLCAw
LjAsIDAuMCwKKyAgICAgIDAuMCwgMC4wLCAxLjAsIDAuMCwKKyAgICAgIDAuMCwgMC4wLCAwLjAs
IDEuMAorICAgIF07CisgIH0sCisKKyAgbmV3SWRlbnRpdHkzeDMgOiBmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gWworICAgICAgMS4wLCAwLjAsIDAuMCwKKyAgICAgIDAuMCwgMS4wLCAwLjAsCisg
ICAgICAwLjAsIDAuMCwgMS4wCisgICAgXTsKKyAgfSwKKworICBjb3B5TWF0cml4IDogZnVuY3Rp
b24oc3JjLCBkc3QpIHsKKyAgICBmb3IgKHZhciBpPTA7IGk8MTY7IGkrKykgZHN0W2ldID0gc3Jj
W2ldOworICAgIHJldHVybiBkc3Q7CisgIH0sCisKKyAgdG8zeDMgOiBmdW5jdGlvbihtKSB7Cisg
ICAgcmV0dXJuIFsKKyAgICAgIG1bMF0sIG1bMV0sIG1bMl0sCisgICAgICBtWzRdLCBtWzVdLCBt
WzZdLAorICAgICAgbVs4XSwgbVs5XSwgbVsxMF0KKyAgICBdOworICB9LAorCisgIC8vIG9ydGhv
bm9ybWFsIG1hdHJpeCBpbnZlcnNlCisgIGludmVyc2VPTiA6IGZ1bmN0aW9uKG0pIHsKKyAgICB2
YXIgbiA9IHRoaXMudHJhbnNwb3NlNHg0KG0pOworICAgIHZhciB0ID0gW21bMTJdLCBtWzEzXSwg
bVsxNF1dOworICAgIG5bM10gPSBuWzddID0gblsxMV0gPSAwOworICAgIG5bMTJdID0gLVZlYzMu
ZG90KFtuWzBdLCBuWzRdLCBuWzhdXSwgdCk7CisgICAgblsxM10gPSAtVmVjMy5kb3QoW25bMV0s
IG5bNV0sIG5bOV1dLCB0KTsKKyAgICBuWzE0XSA9IC1WZWMzLmRvdChbblsyXSwgbls2XSwgblsx
MF1dLCB0KTsKKyAgICByZXR1cm4gbjsKKyAgfSwKKworICBpbnZlcnNlVG8zeDMgOiBmdW5jdGlv
bihtKSB7CisgICAgcmV0dXJuIHRoaXMuaW52ZXJzZTR4NHRvM3gzSW5QbGFjZShtLCB0aGlzLm5l
d0lkZW50aXR5M3gzKCkpOworICB9LAorCisgIGludmVyc2VUbzN4M0luUGxhY2UgOiBmdW5jdGlv
bihtLG4pIHsKKyAgICB2YXIgYTExID0gbVsxMF0qbVs1XS1tWzZdKm1bOV0sCisgICAgICAgIGEy
MSA9IC1tWzEwXSptWzFdK21bMl0qbVs5XSwKKyAgICAgICAgYTMxID0gbVs2XSptWzFdLW1bMl0q
bVs1XSwKKyAgICAgICAgYTEyID0gLW1bMTBdKm1bNF0rbVs2XSptWzhdLAorICAgICAgICBhMjIg
PSBtWzEwXSptWzBdLW1bMl0qbVs4XSwKKyAgICAgICAgYTMyID0gLW1bNl0qbVswXSttWzJdKm1b
NF0sCisgICAgICAgIGExMyA9IG1bOV0qbVs0XS1tWzVdKm1bOF0sCisgICAgICAgIGEyMyA9IC1t
WzldKm1bMF0rbVsxXSptWzhdLAorICAgICAgICBhMzMgPSBtWzVdKm1bMF0tbVsxXSptWzRdOwor
ICAgIHZhciBkZXQgPSBtWzBdKihhMTEpICsgbVsxXSooYTEyKSArIG1bMl0qKGExMyk7CisgICAg
aWYgKGRldCA9PSAwKSAvLyBubyBpbnZlcnNlCisgICAgICByZXR1cm4gWzEsMCwwLDAsMSwwLDAs
MCwxXTsKKyAgICB2YXIgaWRldCA9IDEgLyBkZXQ7CisgICAgblswXSA9IGlkZXQqYTExOworICAg
IG5bMV0gPSBpZGV0KmEyMTsKKyAgICBuWzJdID0gaWRldCphMzE7CisgICAgblszXSA9IGlkZXQq
YTEyOworICAgIG5bNF0gPSBpZGV0KmEyMjsKKyAgICBuWzVdID0gaWRldCphMzI7CisgICAgbls2
XSA9IGlkZXQqYTEzOworICAgIG5bN10gPSBpZGV0KmEyMzsKKyAgICBuWzhdID0gaWRldCphMzM7
CisgICAgcmV0dXJuIG47CisgIH0sCisKKyAgaW52ZXJzZTN4MyA6IGZ1bmN0aW9uKG0pIHsKKyAg
ICByZXR1cm4gdGhpcy5pbnZlcnNlM3gzSW5QbGFjZShtLCB0aGlzLm5ld0lkZW50aXR5M3gzKCkp
OworICB9LAorCisgIGludmVyc2UzeDNJblBsYWNlIDogZnVuY3Rpb24obSxuKSB7CisgICAgdmFy
IGExMSA9IG1bOF0qbVs0XS1tWzVdKm1bN10sCisgICAgICAgIGEyMSA9IC1tWzhdKm1bMV0rbVsy
XSptWzddLAorICAgICAgICBhMzEgPSBtWzVdKm1bMV0tbVsyXSptWzRdLAorICAgICAgICBhMTIg
PSAtbVs4XSptWzNdK21bNV0qbVs2XSwKKyAgICAgICAgYTIyID0gbVs4XSptWzBdLW1bMl0qbVs2
XSwKKyAgICAgICAgYTMyID0gLW1bNV0qbVswXSttWzJdKm1bM10sCisgICAgICAgIGExMyA9IG1b
N10qbVs0XS1tWzRdKm1bOF0sCisgICAgICAgIGEyMyA9IC1tWzddKm1bMF0rbVsxXSptWzZdLAor
ICAgICAgICBhMzMgPSBtWzRdKm1bMF0tbVsxXSptWzNdOworICAgIHZhciBkZXQgPSBtWzBdKihh
MTEpICsgbVsxXSooYTEyKSArIG1bMl0qKGExMyk7CisgICAgaWYgKGRldCA9PSAwKSAvLyBubyBp
bnZlcnNlCisgICAgICByZXR1cm4gWzEsMCwwLDAsMSwwLDAsMCwxXTsKKyAgICB2YXIgaWRldCA9
IDEgLyBkZXQ7CisgICAgblswXSA9IGlkZXQqYTExOworICAgIG5bMV0gPSBpZGV0KmEyMTsKKyAg
ICBuWzJdID0gaWRldCphMzE7CisgICAgblszXSA9IGlkZXQqYTEyOworICAgIG5bNF0gPSBpZGV0
KmEyMjsKKyAgICBuWzVdID0gaWRldCphMzI7CisgICAgbls2XSA9IGlkZXQqYTEzOworICAgIG5b
N10gPSBpZGV0KmEyMzsKKyAgICBuWzhdID0gaWRldCphMzM7CisgICAgcmV0dXJuIG47CisgIH0s
CisKKyAgZnJ1c3R1bSA6IGZ1bmN0aW9uIChsZWZ0LCByaWdodCwgYm90dG9tLCB0b3AsIHpuZWFy
LCB6ZmFyKSB7CisgICAgdmFyIFggPSAyKnpuZWFyLyhyaWdodC1sZWZ0KTsKKyAgICB2YXIgWSA9
IDIqem5lYXIvKHRvcC1ib3R0b20pOworICAgIHZhciBBID0gKHJpZ2h0K2xlZnQpLyhyaWdodC1s
ZWZ0KTsKKyAgICB2YXIgQiA9ICh0b3ArYm90dG9tKS8odG9wLWJvdHRvbSk7CisgICAgdmFyIEMg
PSAtKHpmYXIrem5lYXIpLyh6ZmFyLXpuZWFyKTsKKyAgICB2YXIgRCA9IC0yKnpmYXIqem5lYXIv
KHpmYXItem5lYXIpOworCisgICAgcmV0dXJuIFsKKyAgICAgIFgsIDAsIDAsIDAsCisgICAgICAw
LCBZLCAwLCAwLAorICAgICAgQSwgQiwgQywgLTEsCisgICAgICAwLCAwLCBELCAwCisgICAgXTsK
KyB9LAorCisgIHBlcnNwZWN0aXZlIDogZnVuY3Rpb24gKGZvdnksIGFzcGVjdCwgem5lYXIsIHpm
YXIpIHsKKyAgICB2YXIgeW1heCA9IHpuZWFyICogTWF0aC50YW4oZm92eSAqIE1hdGguUEkgLyAz
NjAuMCk7CisgICAgdmFyIHltaW4gPSAteW1heDsKKyAgICB2YXIgeG1pbiA9IHltaW4gKiBhc3Bl
Y3Q7CisgICAgdmFyIHhtYXggPSB5bWF4ICogYXNwZWN0OworCisgICAgcmV0dXJuIHRoaXMuZnJ1
c3R1bSh4bWluLCB4bWF4LCB5bWluLCB5bWF4LCB6bmVhciwgemZhcik7CisgIH0sCisKKyAgbXVs
NHg0IDogZnVuY3Rpb24gKGEsYikgeworICAgIHJldHVybiB0aGlzLm11bDR4NEluUGxhY2UoYSxi
LHRoaXMubmV3SWRlbnRpdHkoKSk7CisgIH0sCisKKyAgbXVsNHg0SW5QbGFjZSA6IGZ1bmN0aW9u
IChhLCBiLCBjKSB7CisgICAgICAgIGNbMF0gPSAgIGJbMF0gKiBhWzBdICsKKyAgICAgICAgICAg
ICAgICAgYlswKzFdICogYVs0XSArCisgICAgICAgICAgICAgICAgIGJbMCsyXSAqIGFbOF0gKwor
ICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzEyXTsKKyAgICAgICAgY1swKzFdID0gYlswXSAq
IGFbMV0gKworICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzVdICsKKyAgICAgICAgICAgICAg
ICAgYlswKzJdICogYVs5XSArCisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTNdOworICAg
ICAgICBjWzArMl0gPSBiWzBdICogYVsyXSArCisgICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFb
Nl0gKworICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzEwXSArCisgICAgICAgICAgICAgICAg
IGJbMCszXSAqIGFbMTRdOworICAgICAgICBjWzArM10gPSBiWzBdICogYVszXSArCisgICAgICAg
ICAgICAgICAgIGJbMCsxXSAqIGFbN10gKworICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzEx
XSArCisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTVdOworICAgICAgICBjWzRdID0gICBi
WzRdICogYVswXSArCisgICAgICAgICAgICAgICAgIGJbNCsxXSAqIGFbNF0gKworICAgICAgICAg
ICAgICAgICBiWzQrMl0gKiBhWzhdICsKKyAgICAgICAgICAgICAgICAgYls0KzNdICogYVsxMl07
CisgICAgICAgIGNbNCsxXSA9IGJbNF0gKiBhWzFdICsKKyAgICAgICAgICAgICAgICAgYls0KzFd
ICogYVs1XSArCisgICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFbOV0gKworICAgICAgICAgICAg
ICAgICBiWzQrM10gKiBhWzEzXTsKKyAgICAgICAgY1s0KzJdID0gYls0XSAqIGFbMl0gKworICAg
ICAgICAgICAgICAgICBiWzQrMV0gKiBhWzZdICsKKyAgICAgICAgICAgICAgICAgYls0KzJdICog
YVsxMF0gKworICAgICAgICAgICAgICAgICBiWzQrM10gKiBhWzE0XTsKKyAgICAgICAgY1s0KzNd
ID0gYls0XSAqIGFbM10gKworICAgICAgICAgICAgICAgICBiWzQrMV0gKiBhWzddICsKKyAgICAg
ICAgICAgICAgICAgYls0KzJdICogYVsxMV0gKworICAgICAgICAgICAgICAgICBiWzQrM10gKiBh
WzE1XTsKKyAgICAgICAgY1s4XSA9ICAgYls4XSAqIGFbMF0gKworICAgICAgICAgICAgICAgICBi
WzgrMV0gKiBhWzRdICsKKyAgICAgICAgICAgICAgICAgYls4KzJdICogYVs4XSArCisgICAgICAg
ICAgICAgICAgIGJbOCszXSAqIGFbMTJdOworICAgICAgICBjWzgrMV0gPSBiWzhdICogYVsxXSAr
CisgICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNV0gKworICAgICAgICAgICAgICAgICBiWzgr
Ml0gKiBhWzldICsKKyAgICAgICAgICAgICAgICAgYls4KzNdICogYVsxM107CisgICAgICAgIGNb
OCsyXSA9IGJbOF0gKiBhWzJdICsKKyAgICAgICAgICAgICAgICAgYls4KzFdICogYVs2XSArCisg
ICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbMTBdICsKKyAgICAgICAgICAgICAgICAgYls4KzNd
ICogYVsxNF07CisgICAgICAgIGNbOCszXSA9IGJbOF0gKiBhWzNdICsKKyAgICAgICAgICAgICAg
ICAgYls4KzFdICogYVs3XSArCisgICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbMTFdICsKKyAg
ICAgICAgICAgICAgICAgYls4KzNdICogYVsxNV07CisgICAgICAgIGNbMTJdID0gICBiWzEyXSAq
IGFbMF0gKworICAgICAgICAgICAgICAgICBiWzEyKzFdICogYVs0XSArCisgICAgICAgICAgICAg
ICAgIGJbMTIrMl0gKiBhWzhdICsKKyAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTJdOwor
ICAgICAgICBjWzEyKzFdID0gYlsxMl0gKiBhWzFdICsKKyAgICAgICAgICAgICAgICAgYlsxMisx
XSAqIGFbNV0gKworICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVs5XSArCisgICAgICAgICAg
ICAgICAgIGJbMTIrM10gKiBhWzEzXTsKKyAgICAgICAgY1sxMisyXSA9IGJbMTJdICogYVsyXSAr
CisgICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzZdICsKKyAgICAgICAgICAgICAgICAgYlsx
MisyXSAqIGFbMTBdICsKKyAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTRdOworICAgICAg
ICBjWzEyKzNdID0gYlsxMl0gKiBhWzNdICsKKyAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFb
N10gKworICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVsxMV0gKworICAgICAgICAgICAgICAg
ICBiWzEyKzNdICogYVsxNV07CisgICAgcmV0dXJuIGM7CisgIH0sCisKKyAgbXVsdjQgOiBmdW5j
dGlvbiAoYSwgdikgeworICAgIGMgPSBuZXcgQXJyYXkoNCk7CisgICAgZm9yICh2YXIgaT0wOyBp
PDQ7ICsraSkgeworICAgICAgdmFyIHggPSAwOworICAgICAgZm9yICh2YXIgaz0wOyBrPDQ7ICsr
aykKKyAgICAgICAgeCArPSB2W2tdICogYVtrKjQraV07CisgICAgICBjW2ldID0geDsKKyAgICB9
CisgICAgcmV0dXJuIGM7CisgIH0sCisKKyAgcm90YXRlIDogZnVuY3Rpb24gKGFuZ2xlLCBheGlz
KSB7CisgICAgYXhpcyA9IFZlYzMubm9ybWFsaXplKGF4aXMpOworICAgIHZhciB4PWF4aXNbMF0s
IHk9YXhpc1sxXSwgej1heGlzWzJdOworICAgIHZhciBjID0gTWF0aC5jb3MoYW5nbGUpOworICAg
IHZhciBjMSA9IDEtYzsKKyAgICB2YXIgcyA9IE1hdGguc2luKGFuZ2xlKTsKKyAgICByZXR1cm4g
WworICAgICAgeCp4KmMxK2MsIHkqeCpjMSt6KnMsIHoqeCpjMS15KnMsIDAsCisgICAgICB4Knkq
YzEteipzLCB5KnkqYzErYywgeSp6KmMxK3gqcywgMCwKKyAgICAgIHgqeipjMSt5KnMsIHkqeipj
MS14KnMsIHoqeipjMStjLCAwLAorICAgICAgMCwwLDAsMQorICAgIF07CisgIH0sCisgIHJvdGF0
ZUluUGxhY2UgOiBmdW5jdGlvbihhbmdsZSwgYXhpcywgbSkgeworICAgIGF4aXMgPSBWZWMzLm5v
cm1hbGl6ZShheGlzKTsKKyAgICB2YXIgeD1heGlzWzBdLCB5PWF4aXNbMV0sIHo9YXhpc1syXTsK
KyAgICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKKyAgICB2YXIgYzEgPSAxLWM7CisgICAgdmFy
IHMgPSBNYXRoLnNpbihhbmdsZSk7CisgICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4
OworICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOworICAgIHRtcE1hdHJpeFsw
XSA9IHgqeCpjMStjOyB0bXBNYXRyaXhbMV0gPSB5KngqYzEreipzOyB0bXBNYXRyaXhbMl0gPSB6
KngqYzEteSpzOyB0bXBNYXRyaXhbM10gPSAwOworICAgIHRtcE1hdHJpeFs0XSA9IHgqeSpjMS16
KnM7IHRtcE1hdHJpeFs1XSA9IHkqeSpjMStjOyB0bXBNYXRyaXhbNl0gPSB5KnoqYzEreCpzOyB0
bXBNYXRyaXhbN10gPSAwOworICAgIHRtcE1hdHJpeFs4XSA9IHgqeipjMSt5KnM7IHRtcE1hdHJp
eFs5XSA9IHkqeipjMS14KnM7IHRtcE1hdHJpeFsxMF0gPSB6KnoqYzErYzsgdG1wTWF0cml4WzEx
XSA9IDA7CisgICAgdG1wTWF0cml4WzEyXSA9IDA7IHRtcE1hdHJpeFsxM10gPSAwOyB0bXBNYXRy
aXhbMTRdID0gMDsgdG1wTWF0cml4WzE1XSA9IDE7CisgICAgdGhpcy5jb3B5TWF0cml4KG0sIHRt
cE1hdHJpeDIpOworICAgIHJldHVybiB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4MiwgdG1w
TWF0cml4LCBtKTsKKyAgfSwKKworICBzY2FsZSA6IGZ1bmN0aW9uKHYpIHsKKyAgICByZXR1cm4g
WworICAgICAgdlswXSwgMCwgMCwgMCwKKyAgICAgIDAsIHZbMV0sIDAsIDAsCisgICAgICAwLCAw
LCB2WzJdLCAwLAorICAgICAgMCwgMCwgMCwgMQorICAgIF07CisgIH0sCisgIHNjYWxlMyA6IGZ1
bmN0aW9uKHgseSx6KSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHgsIDAsIDAsIDAsCisgICAgICAw
LCB5LCAwLCAwLAorICAgICAgMCwgMCwgeiwgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOwor
ICB9LAorICBzY2FsZTEgOiBmdW5jdGlvbihzKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHMsIDAs
IDAsIDAsCisgICAgICAwLCBzLCAwLCAwLAorICAgICAgMCwgMCwgcywgMCwKKyAgICAgIDAsIDAs
IDAsIDEKKyAgICBdOworICB9LAorICBzY2FsZTNJblBsYWNlIDogZnVuY3Rpb24oeCwgeSwgeiwg
bSkgeworICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJpeDsKKyAgICB2YXIgdG1wTWF0
cml4MiA9IHRoaXMudG1wTWF0cml4MjsKKyAgICB0bXBNYXRyaXhbMF0gPSB4OyB0bXBNYXRyaXhb
MV0gPSAwOyB0bXBNYXRyaXhbMl0gPSAwOyB0bXBNYXRyaXhbM10gPSAwOworICAgIHRtcE1hdHJp
eFs0XSA9IDA7IHRtcE1hdHJpeFs1XSA9IHk7IHRtcE1hdHJpeFs2XSA9IDA7IHRtcE1hdHJpeFs3
XSA9IDA7CisgICAgdG1wTWF0cml4WzhdID0gMDsgdG1wTWF0cml4WzldID0gMDsgdG1wTWF0cml4
WzEwXSA9IHo7IHRtcE1hdHJpeFsxMV0gPSAwOworICAgIHRtcE1hdHJpeFsxMl0gPSAwOyB0bXBN
YXRyaXhbMTNdID0gMDsgdG1wTWF0cml4WzE0XSA9IDA7IHRtcE1hdHJpeFsxNV0gPSAxOworICAg
IHRoaXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKKyAgICByZXR1cm4gdGhpcy5tdWw0eDRJ
blBsYWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7CisgIH0sCisgIHNjYWxlMUluUGxhY2Ug
OiBmdW5jdGlvbihzLCBtKSB7IHJldHVybiB0aGlzLnNjYWxlM0luUGxhY2UocywgcywgcywgbSk7
IH0sCisgIHNjYWxlSW5QbGFjZSA6IGZ1bmN0aW9uKHMsIG0pIHsgcmV0dXJuIHRoaXMuc2NhbGUz
SW5QbGFjZShzWzBdLHNbMV0sc1syXSxtKTsgfSwKKworICB0cmFuc2xhdGUzIDogZnVuY3Rpb24o
eCx5LHopIHsKKyAgICByZXR1cm4gWworICAgICAgMSwgMCwgMCwgMCwKKyAgICAgIDAsIDEsIDAs
IDAsCisgICAgICAwLCAwLCAxLCAwLAorICAgICAgeCwgeSwgeiwgMQorICAgIF07CisgIH0sCisK
KyAgdHJhbnNsYXRlIDogZnVuY3Rpb24odikgeworICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZTMo
dlswXSwgdlsxXSwgdlsyXSk7CisgIH0sCisgIHRtcE1hdHJpeCA6IFswLDAsMCwwLCAwLDAsMCww
LCAwLDAsMCwwLCAwLDAsMCwwXSwKKyAgdG1wTWF0cml4MiA6IFswLDAsMCwwLCAwLDAsMCwwLCAw
LDAsMCwwLCAwLDAsMCwwXSwKKyAgdHJhbnNsYXRlM0luUGxhY2UgOiBmdW5jdGlvbih4LHkseixt
KSB7CisgICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4OworICAgIHZhciB0bXBNYXRy
aXgyID0gdGhpcy50bXBNYXRyaXgyOworICAgIHRtcE1hdHJpeFswXSA9IDE7IHRtcE1hdHJpeFsx
XSA9IDA7IHRtcE1hdHJpeFsyXSA9IDA7IHRtcE1hdHJpeFszXSA9IDA7CisgICAgdG1wTWF0cml4
WzRdID0gMDsgdG1wTWF0cml4WzVdID0gMTsgdG1wTWF0cml4WzZdID0gMDsgdG1wTWF0cml4Wzdd
ID0gMDsKKyAgICB0bXBNYXRyaXhbOF0gPSAwOyB0bXBNYXRyaXhbOV0gPSAwOyB0bXBNYXRyaXhb
MTBdID0gMTsgdG1wTWF0cml4WzExXSA9IDA7CisgICAgdG1wTWF0cml4WzEyXSA9IHg7IHRtcE1h
dHJpeFsxM10gPSB5OyB0bXBNYXRyaXhbMTRdID0gejsgdG1wTWF0cml4WzE1XSA9IDE7CisgICAg
dGhpcy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOworICAgIHJldHVybiB0aGlzLm11bDR4NElu
UGxhY2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKKyAgfSwKKyAgdHJhbnNsYXRlSW5QbGFj
ZSA6IGZ1bmN0aW9uKHYsbSl7IHJldHVybiB0aGlzLnRyYW5zbGF0ZTNJblBsYWNlKHZbMF0sIHZb
MV0sIHZbMl0sIG0pOyB9LAorCisgIGxvb2tBdCA6IGZ1bmN0aW9uIChleWUsIGNlbnRlciwgdXAp
IHsKKyAgICB2YXIgeiA9IFZlYzMuZGlyZWN0aW9uKGV5ZSwgY2VudGVyKTsKKyAgICB2YXIgeCA9
IFZlYzMubm9ybWFsaXplSW5QbGFjZShWZWMzLmNyb3NzKHVwLCB6KSk7CisgICAgdmFyIHkgPSBW
ZWMzLm5vcm1hbGl6ZUluUGxhY2UoVmVjMy5jcm9zcyh6LCB4KSk7CisKKyAgICB2YXIgbSA9IFsK
KyAgICAgIHhbMF0sIHlbMF0sIHpbMF0sIDAsCisgICAgICB4WzFdLCB5WzFdLCB6WzFdLCAwLAor
ICAgICAgeFsyXSwgeVsyXSwgelsyXSwgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOworCisg
ICAgdmFyIHQgPSBbCisgICAgICAxLCAwLCAwLCAwLAorICAgICAgMCwgMSwgMCwgMCwKKyAgICAg
IDAsIDAsIDEsIDAsCisgICAgICAtZXllWzBdLCAtZXllWzFdLCAtZXllWzJdLCAxCisgICAgXTsK
KworICAgIHJldHVybiB0aGlzLm11bDR4NChtLHQpOworICB9LAorCisgIHRyYW5zcG9zZTR4NCA6
IGZ1bmN0aW9uKG0pIHsKKyAgICByZXR1cm4gWworICAgICAgbVswXSwgbVs0XSwgbVs4XSwgbVsx
Ml0sCisgICAgICBtWzFdLCBtWzVdLCBtWzldLCBtWzEzXSwKKyAgICAgIG1bMl0sIG1bNl0sIG1b
MTBdLCBtWzE0XSwKKyAgICAgIG1bM10sIG1bN10sIG1bMTFdLCBtWzE1XQorICAgIF07CisgIH0s
CisKKyAgdHJhbnNwb3NlNHg0SW5QbGFjZSA6IGZ1bmN0aW9uKG0pIHsKKyAgICB2YXIgdG1wID0g
MC4wOworICAgIHRtcCA9IG1bMV07IG1bMV0gPSBtWzRdOyBtWzRdID0gdG1wOworICAgIHRtcCA9
IG1bMl07IG1bMl0gPSBtWzhdOyBtWzhdID0gdG1wOworICAgIHRtcCA9IG1bM107IG1bM10gPSBt
WzEyXTsgbVsxMl0gPSB0bXA7CisgICAgdG1wID0gbVs2XTsgbVs2XSA9IG1bOV07IG1bOV0gPSB0
bXA7CisgICAgdG1wID0gbVs3XTsgbVs3XSA9IG1bMTNdOyBtWzEzXSA9IHRtcDsKKyAgICB0bXAg
PSBtWzExXTsgbVsxMV0gPSBtWzE0XTsgbVsxNF0gPSB0bXA7CisgICAgcmV0dXJuIG07CisgIH0s
CisKKyAgdHJhbnNwb3NlM3gzIDogZnVuY3Rpb24obSkgeworICAgIHJldHVybiBbCisgICAgICBt
WzBdLCBtWzNdLCBtWzZdLAorICAgICAgbVsxXSwgbVs0XSwgbVs3XSwKKyAgICAgIG1bMl0sIG1b
NV0sIG1bOF0KKyAgICBdOworICB9LAorCisgIHRyYW5zcG9zZTN4M0luUGxhY2UgOiBmdW5jdGlv
bihtKSB7CisgICAgdmFyIHRtcCA9IDAuMDsKKyAgICB0bXAgPSBtWzFdOyBtWzFdID0gbVszXTsg
bVszXSA9IHRtcDsKKyAgICB0bXAgPSBtWzJdOyBtWzJdID0gbVs2XTsgbVs2XSA9IHRtcDsKKyAg
ICB0bXAgPSBtWzVdOyBtWzVdID0gbVs3XTsgbVs3XSA9IHRtcDsKKyAgICByZXR1cm4gbTsKKyAg
fSwKK30KKworVmVjMyA9IHsKKyAgbWFrZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gWzAsMCwwXTsg
fSwKKyAgY29weSA6IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIFt2WzBdLHZbMV0sdlsyXV07IH0sCisK
KyAgYWRkIDogZnVuY3Rpb24gKHUsdikgeworICAgIHJldHVybiBbdVswXSt2WzBdLCB1WzFdK3Zb
MV0sIHVbMl0rdlsyXV07CisgIH0sCisKKyAgc3ViIDogZnVuY3Rpb24gKHUsdikgeworICAgIHJl
dHVybiBbdVswXS12WzBdLCB1WzFdLXZbMV0sIHVbMl0tdlsyXV07CisgIH0sCisKKyAgbmVnYXRl
IDogZnVuY3Rpb24gKHUpIHsKKyAgICByZXR1cm4gWy11WzBdLCAtdVsxXSwgLXVbMl1dOworICB9
LAorCisgIGRpcmVjdGlvbiA6IGZ1bmN0aW9uICh1LHYpIHsKKyAgICByZXR1cm4gdGhpcy5ub3Jt
YWxpemVJblBsYWNlKHRoaXMuc3ViKHUsdikpOworICB9LAorCisgIG5vcm1hbGl6ZUluUGxhY2Ug
OiBmdW5jdGlvbih2KSB7CisgICAgdmFyIGltYWcgPSAxLjAgLyBNYXRoLnNxcnQodlswXSp2WzBd
ICsgdlsxXSp2WzFdICsgdlsyXSp2WzJdKTsKKyAgICB2WzBdICo9IGltYWc7IHZbMV0gKj0gaW1h
ZzsgdlsyXSAqPSBpbWFnOworICAgIHJldHVybiB2OworICB9LAorCisgIG5vcm1hbGl6ZSA6IGZ1
bmN0aW9uKHYpIHsKKyAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVJblBsYWNlKHRoaXMuY29weSh2
KSk7CisgIH0sCisKKyAgc2NhbGUgOiBmdW5jdGlvbihmLCB2KSB7CisgICAgcmV0dXJuIFtmKnZb
MF0sIGYqdlsxXSwgZip2WzJdXTsKKyAgfSwKKworICBkb3QgOiBmdW5jdGlvbih1LHYpIHsKKyAg
ICByZXR1cm4gdVswXSp2WzBdICsgdVsxXSp2WzFdICsgdVsyXSp2WzJdOworICB9LAorCisgIGlu
bmVyIDogZnVuY3Rpb24odSx2KSB7CisgICAgcmV0dXJuIFt1WzBdKnZbMF0sIHVbMV0qdlsxXSwg
dVsyXSp2WzJdXTsKKyAgfSwKKworICBjcm9zcyA6IGZ1bmN0aW9uKHUsdikgeworICAgIHJldHVy
biBbCisgICAgICB1WzFdKnZbMl0gLSB1WzJdKnZbMV0sCisgICAgICB1WzJdKnZbMF0gLSB1WzBd
KnZbMl0sCisgICAgICB1WzBdKnZbMV0gLSB1WzFdKnZbMF0KKyAgICBdOworICB9Cit9CisKK1No
YWRlciA9IGZ1bmN0aW9uKGdsKXsKKyAgdGhpcy5nbCA9IGdsOworICB0aGlzLnNoYWRlcnMgPSBb
XTsKKyAgdGhpcy51bmlmb3JtTG9jYXRpb25zID0ge307CisgIHRoaXMuYXR0cmliTG9jYXRpb25z
ID0ge307CisgIGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICB0
aGlzLnNoYWRlcnMucHVzaChhcmd1bWVudHNbaV0pOworICB9Cit9CitTaGFkZXIucHJvdG90eXBl
ID0geworICBpZCA6IG51bGwsCisgIGdsIDogbnVsbCwKKyAgY29tcGlsZWQgOiBmYWxzZSwKKyAg
c2hhZGVyIDogbnVsbCwKKyAgc2hhZGVycyA6IFtdLAorCisgIGRlc3Ryb3kgOiBmdW5jdGlvbigp
IHsKKyAgICBpZiAodGhpcy5zaGFkZXIgIT0gbnVsbCkgZGVsZXRlU2hhZGVyKHRoaXMuZ2wsIHRo
aXMuc2hhZGVyKTsKKyAgfSwKKworICBjb21waWxlIDogZnVuY3Rpb24oKSB7CisgICAgdGhpcy5z
aGFkZXIgPSBsb2FkU2hhZGVyQXJyYXkodGhpcy5nbCwgdGhpcy5zaGFkZXJzKTsKKyAgfSwKKwor
ICB1c2UgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAodGhpcy5zaGFkZXIgPT0gbnVsbCkKKyAgICAg
IHRoaXMuY29tcGlsZSgpOworICAgIHRoaXMuZ2wudXNlUHJvZ3JhbSh0aGlzLnNoYWRlci5wcm9n
cmFtKTsKKyAgfSwKKworICB1bmlmb3JtMWZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAg
ICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTFmdihs
b2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtMmZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUp
IHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9y
bTJmdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtM2Z2IDogZnVuY3Rpb24obmFtZSwg
dmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wu
dW5pZm9ybTNmdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtNGZ2IDogZnVuY3Rpb24o
bmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRo
aXMuZ2wudW5pZm9ybTRmdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtMWYgOiBmdW5j
dGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Cisg
ICAgdGhpcy5nbC51bmlmb3JtMWYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTJmIDog
ZnVuY3Rpb24obmFtZSwgdjEsdjIpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUp
OworICAgIHRoaXMuZ2wudW5pZm9ybTJmKGxvYywgdjEsdjIpOworICB9LAorCisgIHVuaWZvcm0z
ZiA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9y
bShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0zZihsb2MsIHYxLHYyLHYzKTsKKyAgfSwKKwor
ICB1bmlmb3JtNGYgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2Myx2NCkgeworICAgIHZhciBsb2Mg
PSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtNGYobG9jLCB2MSwgdjIs
IHYzLCB2NCk7CisgIH0sCisKKyAgdW5pZm9ybTFpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7
CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0x
aXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTJpdiA6IGZ1bmN0aW9uKG5hbWUsIHZh
bHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVu
aWZvcm0yaXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTNpdiA6IGZ1bmN0aW9uKG5h
bWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlz
LmdsLnVuaWZvcm0zaXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTRpdiA6IGZ1bmN0
aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAg
ICB0aGlzLmdsLnVuaWZvcm00aXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTFpIDog
ZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUp
OworICAgIHRoaXMuZ2wudW5pZm9ybTFpKGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZvcm0y
aSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShu
YW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0yaShsb2MsIHYxLHYyKTsKKyAgfSwKKworICB1bmlm
b3JtM2kgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2MykgeworICAgIHZhciBsb2MgPSB0aGlzLnVu
aWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtM2kobG9jLCB2MSx2Mix2Myk7CisgIH0s
CisKKyAgdW5pZm9ybTRpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMsdjQpIHsKKyAgICB2YXIg
bG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTRpKGxvYywgdjEs
IHYyLCB2MywgdjQpOworICB9LAorCisgIHVuaWZvcm1NYXRyaXg0ZnYgOiBmdW5jdGlvbihuYW1l
LCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5n
bC51bmlmb3JtTWF0cml4NGZ2KGxvYywgZmFsc2UsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3Jt
TWF0cml4M2Z2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51
bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDNmdihsb2MsIGZhbHNlLCB2
YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybU1hdHJpeDJmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVl
KSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZv
cm1NYXRyaXgyZnYobG9jLCBmYWxzZSwgdmFsdWUpOworICB9LAorCisgIGF0dHJpYiA6IGZ1bmN0
aW9uKG5hbWUpIHsKKyAgICBpZiAodGhpcy5hdHRyaWJMb2NhdGlvbnNbbmFtZV0gPT0gbnVsbCkg
eworICAgICAgdmFyIGxvYyA9IHRoaXMuZ2wuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5zaGFkZXIu
cHJvZ3JhbSwgbmFtZSk7CisgICAgICB0aGlzLmF0dHJpYkxvY2F0aW9uc1tuYW1lXSA9IGxvYzsK
KyAgICB9CisgICAgcmV0dXJuIHRoaXMuYXR0cmliTG9jYXRpb25zW25hbWVdOworICB9LAorCisg
IHVuaWZvcm0gOiBmdW5jdGlvbihuYW1lKSB7CisgICAgaWYgKHRoaXMudW5pZm9ybUxvY2F0aW9u
c1tuYW1lXSA9PSBudWxsKSB7CisgICAgICB2YXIgbG9jID0gdGhpcy5nbC5nZXRVbmlmb3JtTG9j
YXRpb24odGhpcy5zaGFkZXIucHJvZ3JhbSwgbmFtZSk7CisgICAgICB0aGlzLnVuaWZvcm1Mb2Nh
dGlvbnNbbmFtZV0gPSBsb2M7CisgICAgfQorICAgIHJldHVybiB0aGlzLnVuaWZvcm1Mb2NhdGlv
bnNbbmFtZV07CisgIH0KK30KK0ZpbHRlciA9IGZ1bmN0aW9uKGdsLCBzaGFkZXIpIHsKKyAgU2hh
ZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cit9CitGaWx0ZXIucHJvdG90eXBlID0gbmV3IFNo
YWRlcigpOworRmlsdGVyLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uKGluaXQpIHsKKyAgdGhp
cy51c2UoKTsKKyAgdmFyIHZhID0gdGhpcy5hdHRyaWIoIlZlcnRleCIpOworICB2YXIgdGEgPSB0
aGlzLmF0dHJpYigiVGV4Iik7CisgIHZhciB2Ym8gPSBRdWFkLmdldENhY2hlZFZCTyh0aGlzLmds
KTsKKyAgaWYgKGluaXQpIGluaXQodGhpcyk7CisgIHZiby5kcmF3KHZhLCBudWxsLCB0YSk7Cit9
CisKKworVkJPID0gZnVuY3Rpb24oZ2wpIHsKKyAgdGhpcy5nbCA9IGdsOworICB0aGlzLmRhdGEg
PSBbXTsKKyAgdGhpcy5lbGVtZW50c1ZCTyA9IG51bGw7CisgIGZvciAodmFyIGk9MTsgaTxhcmd1
bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICBpZiAoYXJndW1lbnRzW2ldLmVsZW1lbnRzKQorICAg
ICAgdGhpcy5lbGVtZW50cyA9IGFyZ3VtZW50c1tpXTsKKyAgICBlbHNlCisgICAgICB0aGlzLmRh
dGEucHVzaChhcmd1bWVudHNbaV0pOworICB9Cit9CisKK1ZCTy5wcm90b3R5cGUgPSB7CisgIGlu
aXRpYWxpemVkIDogZmFsc2UsCisgIGxlbmd0aCA6IDAsCisgIHZib3MgOiBudWxsLAorICB0eXBl
IDogJ1RSSUFOR0xFUycsCisgIGVsZW1lbnRzVkJPIDogbnVsbCwKKyAgZWxlbWVudHMgOiBudWxs
LAorCisgIHNldERhdGEgOiBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmRlc3Ryb3koKTsKKyAgICB0
aGlzLmRhdGEgPSBbXTsKKyAgICBmb3IgKHZhciBpPTA7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsr
KSB7CisgICAgICBpZiAoYXJndW1lbnRzW2ldLmVsZW1lbnRzKQorICAgICAgICB0aGlzLmVsZW1l
bnRzID0gYXJndW1lbnRzW2ldOworICAgICAgZWxzZQorICAgICAgICB0aGlzLmRhdGEucHVzaChh
cmd1bWVudHNbaV0pOworICAgIH0KKyAgfSwKKworICBkZXN0cm95IDogZnVuY3Rpb24oKSB7Cisg
ICAgaWYgKHRoaXMudmJvcyAhPSBudWxsKQorICAgICAgZm9yICh2YXIgaT0wOyBpPHRoaXMudmJv
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgdGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy52Ym9zW2ld
KTsKKyAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAhPSBudWxsKQorICAgICAgdGhpcy5nbC5kZWxl
dGVCdWZmZXIodGhpcy5lbGVtZW50c1ZCTyk7CisgICAgdGhpcy5sZW5ndGggPSB0aGlzLmVsZW1l
bnRzTGVuZ3RoID0gMDsKKyAgICB0aGlzLnZib3MgPSB0aGlzLmVsZW1lbnRzVkJPID0gbnVsbDsK
KyAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7CisgIH0sCisKKyAgaW5pdCA6IGZ1bmN0aW9u
KCkgeworICAgIHRoaXMuZGVzdHJveSgpOworICAgIHZhciBnbCA9IHRoaXMuZ2w7CisKKyAgICBn
bC5nZXRFcnJvcigpOworICAgIHZhciB2Ym9zID0gW107CisgICAgdmFyIGxlbmd0aCA9IDA7Cisg
ICAgZm9yICh2YXIgaT0wOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKykKKyAgICAgIHZib3MucHVz
aChnbC5jcmVhdGVCdWZmZXIoKSk7CisgICAgaWYgKHRoaXMuZWxlbWVudHMgIT0gbnVsbCkKKyAg
ICAgIHRoaXMuZWxlbWVudHNWQk8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICB0cnkgeworICAg
ICAgdGhyb3dFcnJvcihnbCwgImdlbkJ1ZmZlcnMiKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBp
PHRoaXMuZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgZCA9IHRoaXMuZGF0YVtpXTsK
KyAgICAgICAgdmFyIGRsZW4gPSBNYXRoLmZsb29yKGQuZGF0YS5sZW5ndGggLyBkLnNpemUpOwor
ICAgICAgICBpZiAoaSA9PSAwIHx8IGRsZW4gPCBsZW5ndGgpCisgICAgICAgICAgICBsZW5ndGgg
PSBkbGVuOworICAgICAgICBpZiAoIWQuZmxvYXRBcnJheSkKKyAgICAgICAgICBkLmZsb2F0QXJy
YXkgPSBuZXcgRmxvYXQzMkFycmF5KGQuZGF0YSk7CisgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wu
QVJSQVlfQlVGRkVSLCB2Ym9zW2ldKTsKKyAgICAgICAgdGhyb3dFcnJvcihnbCwgImJpbmRCdWZm
ZXIiKTsKKyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGQuZmxvYXRBcnJh
eSwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICB0aHJvd0Vycm9yKGdsLCAiYnVmZmVyRGF0YSIp
OworICAgICAgfQorICAgICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkgeworICAgICAg
ICB2YXIgZCA9IHRoaXMuZWxlbWVudHM7CisgICAgICAgIHRoaXMuZWxlbWVudHNMZW5ndGggPSBk
LmRhdGEubGVuZ3RoOworICAgICAgICB0aGlzLmVsZW1lbnRzVHlwZSA9IGQudHlwZSA9PSBnbC5V
TlNJR05FRF9CWVRFID8gZC50eXBlIDogZ2wuVU5TSUdORURfU0hPUlQ7CisgICAgICAgIGdsLmJp
bmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMuZWxlbWVudHNWQk8pOworICAg
ICAgICB0aHJvd0Vycm9yKGdsLCAiYmluZEJ1ZmZlciBFTEVNRU5UX0FSUkFZX0JVRkZFUiIpOwor
ICAgICAgICBpZiAodGhpcy5lbGVtZW50c1R5cGUgPT0gZ2wuVU5TSUdORURfU0hPUlQgJiYgIWQu
dXNob3J0QXJyYXkpIHsKKyAgICAgICAgICBkLnVzaG9ydEFycmF5ID0gbmV3IFVpbnQxNkFycmF5
KGQuZGF0YSk7CisgICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZF
UiwgZC51c2hvcnRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICB9IGVsc2UgaWYgKHRo
aXMuZWxlbWVudHNUeXBlID09IGdsLlVOU0lHTkVEX0JZVEUgJiYgIWQudWJ5dGVBcnJheSkgewor
ICAgICAgICAgIGQudWJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGQuZGF0YSk7CisgICAgICAg
ICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgZC51Ynl0ZUFycmF5LCBn
bC5TVEFUSUNfRFJBVyk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3dFcnJvcihnbCwgImJ1ZmZl
ckRhdGEgRUxFTUVOVF9BUlJBWV9CVUZGRVIiKTsKKyAgICAgIH0KKyAgICB9IGNhdGNoKGUpIHsK
KyAgICAgIGZvciAodmFyIGk9MDsgaTx2Ym9zLmxlbmd0aDsgaSsrKQorICAgICAgICBnbC5kZWxl
dGVCdWZmZXIodmJvc1tpXSk7CisgICAgICB0aHJvdyhlKTsKKyAgICB9CisKKyAgICBnbC5iaW5k
QnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgbnVsbCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVN
RU5UX0FSUkFZX0JVRkZFUiwgbnVsbCk7CisKKyAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDsKKyAg
ICB0aGlzLnZib3MgPSB2Ym9zOworCisgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisgIH0s
CisKKyAgdXNlIDogZnVuY3Rpb24oKSB7CisgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB0aGlz
LmluaXQoKTsKKyAgICB2YXIgZ2wgPSB0aGlzLmdsOworICAgIGZvciAodmFyIGk9MDsgaTxhcmd1
bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIGlmIChhcmd1bWVudHNbaV0gPT0gbnVsbCB8fCBh
cmd1bWVudHNbaV0gPT0gLTEpIGNvbnRpbnVlOworICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIHRoaXMudmJvc1tpXSk7CisgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGFy
Z3VtZW50c1tpXSwgdGhpcy5kYXRhW2ldLnNpemUsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Cisg
ICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShhcmd1bWVudHNbaV0pOworICAgIH0KKyAg
ICBpZiAodGhpcy5lbGVtZW50c1ZCTyAhPSBudWxsKSB7CisgICAgICBnbC5iaW5kQnVmZmVyKGds
LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCB0aGlzLmVsZW1lbnRzVkJPKTsKKyAgICB9CisgIH0sCisK
KyAgZHJhdyA6IGZ1bmN0aW9uKCkgeworICAgIHZhciBhcmdzID0gW107CisgICAgdGhpcy51c2Uu
YXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB2YXIgZ2wgPSB0aGlzLmdsOworICAgIGlmICh0
aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKKyAgICAgIGdsLmRyYXdFbGVtZW50cyhnbFt0aGlz
LnR5cGVdLCB0aGlzLmVsZW1lbnRzTGVuZ3RoLCB0aGlzLmVsZW1lbnRzVHlwZSwgMCk7CisgICAg
fSBlbHNlIHsKKyAgICAgIGdsLmRyYXdBcnJheXMoZ2xbdGhpcy50eXBlXSwgMCwgdGhpcy5sZW5n
dGgpOworICAgIH0KKyAgfQorfQorCitGQk8gPSBmdW5jdGlvbihnbCwgd2lkdGgsIGhlaWdodCwg
dXNlX2RlcHRoKSB7CisgIHRoaXMuZ2wgPSBnbDsKKyAgdGhpcy53aWR0aCA9IHdpZHRoOworICB0
aGlzLmhlaWdodCA9IGhlaWdodDsKKyAgaWYgKHVzZV9kZXB0aCAhPSBudWxsKQorICAgIHRoaXMu
dXNlRGVwdGggPSB1c2VfZGVwdGg7Cit9CitGQk8ucHJvdG90eXBlID0geworICBpbml0aWFsaXpl
ZCA6IGZhbHNlLAorICB1c2VEZXB0aCA6IHRydWUsCisgIGZibyA6IG51bGwsCisgIHJibyA6IG51
bGwsCisgIHRleHR1cmUgOiBudWxsLAorCisgIGRlc3Ryb3kgOiBmdW5jdGlvbigpIHsKKyAgICBp
ZiAodGhpcy5mYm8pIHRoaXMuZ2wuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5mYm8pOworICAgIGlm
ICh0aGlzLnJibykgdGhpcy5nbC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5yYm8pOworICAgIGlm
ICh0aGlzLnRleHR1cmUpIHRoaXMuZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLnRleHR1cmUpOworICB9
LAorCisgIGluaXQgOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ2wgPSB0aGlzLmdsOworICAgIHZh
ciB3ID0gdGhpcy53aWR0aCwgaCA9IHRoaXMuaGVpZ2h0OworICAgIHZhciBmYm8gPSB0aGlzLmZi
byAhPSBudWxsID8gdGhpcy5mYm8gOiBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICAgIHZhciBy
YjsKKworICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKKyAgICBj
aGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZEZyYW1lYnVmZmVyIik7CisgICAgaWYgKHRoaXMu
dXNlRGVwdGgpIHsKKyAgICAgIHJiID0gdGhpcy5yYm8gIT0gbnVsbCA/IHRoaXMucmJvIDogZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7CisgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRF
UkJVRkZFUiwgcmIpOworICAgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmRSZW5kZXJi
dWZmZXIiKTsKKyAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBn
bC5ERVBUSF9DT01QT05FTlQxNiwgdywgaCk7CisgICAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmlu
aXQgcmVuZGVyYnVmZmVyU3RvcmFnZSIpOworICAgIH0KKworICAgIHZhciB0ZXggPSB0aGlzLnRl
eHR1cmUgIT0gbnVsbCA/IHRoaXMudGV4dHVyZSA6IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIHRyeSB7CisgICAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHcsIGgsIDAsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIG51bGwpOworICAgIH0gY2F0Y2ggKGUpIHsgLy8gYXJnaCwgbm8gbnVs
bCB0ZXh0dXJlIHN1cHBvcnQKKyAgICAgIHZhciB0bXAgPSB0aGlzLmdldFRlbXBDYW52YXModyxo
KTsKKyAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgdG1wKTsKKyAgICB9CisgICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xB
TVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisgICAgY2hlY2tFcnJv
cihnbCwgIkZCTy5pbml0IHRleCIpOworCisgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDAp
OworICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kIHRleCIpOworCisgICAgaWYgKHRo
aXMudXNlRGVwdGgpIHsKKyAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJiKTsKKyAgICAg
IGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kIGRlcHRoIGJ1ZmZlciIpOworICAgIH0KKwor
ICAgIHZhciBmYnN0YXQgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KTsKKyAgICBpZiAoZmJzdGF0ICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICB2
YXIgZ2x2OworICAgICAgZm9yICh2YXIgdiBpbiBnbCkgeworICAgICAgICB0cnkgeyBnbHYgPSBn
bFt2XTsgfSBjYXRjaCAoZSkgeyBnbHYgPSBudWxsOyB9CisgICAgICAgIGlmIChnbHYgPT0gZmJz
dGF0KSB7IGZic3RhdCA9IHY7IGJyZWFrOyB9fQorICAgICAgICBsb2coIkZyYW1lYnVmZmVyIHN0
YXR1czogIiArIGZic3RhdCk7CisgICAgfQorICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBj
aGVjayBmYm8iKTsKKworICAgIHRoaXMuZmJvID0gZmJvOworICAgIHRoaXMucmJvID0gcmI7Cisg
ICAgdGhpcy50ZXh0dXJlID0gdGV4OworICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworICB9
LAorCisgIGdldFRlbXBDYW52YXMgOiBmdW5jdGlvbih3LCBoKSB7CisgICAgaWYgKCFGQk8udGVt
cENhbnZhcykgeworICAgICAgRkJPLnRlbXBDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdjYW52YXMnKTsKKyAgICB9CisgICAgRkJPLnRlbXBDYW52YXMud2lkdGggPSB3OworICAgIEZC
Ty50ZW1wQ2FudmFzLmhlaWdodCA9IGg7CisgICAgcmV0dXJuIEZCTy50ZW1wQ2FudmFzOworICB9
LAorCisgIHVzZSA6IGZ1bmN0aW9uKCkgeworICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgdGhp
cy5pbml0KCk7CisgICAgdGhpcy5nbC5iaW5kRnJhbWVidWZmZXIodGhpcy5nbC5GUkFNRUJVRkZF
UiwgdGhpcy5mYm8pOworICB9Cit9CisKK2Z1bmN0aW9uIEdMRXJyb3IoZXJyLCBtc2csIGZpbGVO
YW1lLCBsaW5lTnVtYmVyKSB7CisgIHRoaXMubWVzc2FnZSA9IG1zZzsKKyAgdGhpcy5nbEVycm9y
ID0gZXJyOworfQorCitHTEVycm9yLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpOworCitmdW5jdGlv
biBtYWtlR0xFcnJvcldyYXBwZXIoZ2wsIGZuYW1lKSB7CisgIHJldHVybiAoZnVuY3Rpb24oKSB7
CisgICAgdHJ5IHsKKyAgICAgIHZhciBydiA9IGdsW2ZuYW1lXS5hcHBseShnbCwgYXJndW1lbnRz
KTsKKyAgICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICAgICAgaWYgKGVyciAhPSBnbC5O
T19FUlJPUikgeworICAgICAgICB0aHJvdyhuZXcgR0xFcnJvcigKKyAgICAgICAgICAgIGVyciwg
IkdMIGVycm9yICIrZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpKyIgaW4gIitmbmFtZSkpOwor
ICAgICAgfQorICAgICAgcmV0dXJuIHJ2OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGlmIChl
LmdsRXJyb3IgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aHJvdyBlOworICAgICAgfQorICAg
ICAgdGhyb3cobmV3IEVycm9yKCJUaHJldyAiICsgZS5uYW1lICsKKyAgICAgICAgICAgICAgICAg
ICAgICAiIGluICIgKyBmbmFtZSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICAgIGUubWVz
c2FnZSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cy5jYWxsZWUuY2Fs
bGVyKSk7CisgICAgfQorICB9KTsKK30KKworZnVuY3Rpb24gd3JhcEdMQ29udGV4dChnbCkgewor
ICB2YXIgd3JhcCA9IHt9OworICBmb3IgKHZhciBpIGluIGdsKSB7CisgICAgdHJ5IHsKKyAgICAg
IGlmICh0eXBlb2YgZ2xbaV0gPT0gJ2Z1bmN0aW9uJykgeworICAgICAgICAgIHdyYXBbaV0gPSBt
YWtlR0xFcnJvcldyYXBwZXIoZ2wsIGkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB3cmFw
W2ldID0gZ2xbaV07CisgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgLy8gbG9nKCJ3
cmFwR0xDb250ZXh0OiBFcnJvciBhY2Nlc3NpbmcgIiArIGkpOworICAgIH0KKyAgfQorICB3cmFw
LmdldEVycm9yID0gZnVuY3Rpb24oKXsgcmV0dXJuIGdsLmdldEVycm9yKCk7IH07CisgIHJldHVy
biB3cmFwOworfQorCitmdW5jdGlvbiBnZXRHTENvbnRleHQoY2FudmFzKSB7CisgIHJldHVybiBj
YW52YXMuZ2V0Q29udGV4dChHTF9DT05URVhUX0lELCB7YW50aWFsaWFzOiBmYWxzZX0pOworfQor
CisvLyBBc3NlcnQgdGhhdCBmIGdlbmVyYXRlcyBhIHNwZWNpZmljIEdMIGVycm9yLgorZnVuY3Rp
b24gYXNzZXJ0R0xFcnJvcihnbCwgZXJyLCBuYW1lLCBmKSB7CisgIGlmIChmID09IG51bGwpIHsg
ZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIHZhciByID0gZmFsc2U7CisgIHZhciBnbEVyciA9
IDA7CisgIHRyeSB7IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7
IH0KKyAgaWYgKGdsRXJyICE9PSBlcnIpIHsKKyAgICBpZiAoZ2xFcnIgPT09IHVuZGVmaW5lZCkg
eworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogVU5FWFBFQ1RFRCBFWENFUFRJT04i
LCBuYW1lLCBmKTsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJv
cjogZXhwZWN0ZWQ6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKworICAgICAgICAg
ICAgICAgICAiIGFjdHVhbDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1l
LCBmKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHJldHVybiB0cnVlOworfQor
CisvLyBBc3NlcnQgdGhhdCBmIGdlbmVyYXRlcyBhIEdMIGVycm9yIGZyb20gYSBsaXN0LgorZnVu
Y3Rpb24gYXNzZXJ0R0xFcnJvckluKGdsLCBleHBlY3RlZEVycm9yTGlzdCwgbmFtZSwgZikgewor
ICBpZiAoZiA9PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorCisgIHZhciBhY3R1
YWxFcnJvciA9IDA7CisgIHRyeSB7CisgICAgZigpOworICB9IGNhdGNoKGUpIHsKKyAgICBpZiAo
J2dsRXJyb3InIGluIGUpIHsKKyAgICAgIGFjdHVhbEVycm9yID0gZS5nbEVycm9yOworICAgIH0g
ZWxzZSB7CisgICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBVTkVYUENFVEVEIEVYQ0VQ
VElPTiIsIG5hbWUsIGYpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorCisgIHZh
ciBleHBlY3RlZEVycm9yU3RyTGlzdCA9IFtdOworICB2YXIgZXhwZWN0ZWRFcnJvclNldCA9IHt9
OworICBmb3IgKHZhciBpIGluIGV4cGVjdGVkRXJyb3JMaXN0KSB7CisgICAgdmFyIGN1ciA9IGV4
cGVjdGVkRXJyb3JMaXN0W2ldOworICAgIGV4cGVjdGVkRXJyb3JTZXRbY3VyXSA9IHRydWU7Cisg
ICAgZXhwZWN0ZWRFcnJvclN0ckxpc3QucHVzaChnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGN1cikp
OworICB9CisgIHZhciBleHBlY3RlZEVycm9yTGlzdFN0ciA9ICJbIiArIGV4cGVjdGVkRXJyb3JT
dHJMaXN0LmpvaW4oIiwgIikgKyAiXSI7CisKKyAgaWYgKGFjdHVhbEVycm9yIGluIGV4cGVjdGVk
RXJyb3JTZXQpIHsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIHRlc3RGYWlsZWQoImFzc2Vy
dEdMRXJyb3I6IGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRFcnJvckxpc3RTdHIgKworICAgICAgICAg
ICAgICIgYWN0dWFsOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBhY3R1YWxFcnJvciksIG5h
bWUsIGYpOworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEFzc2VydCB0aGF0IGYgZ2VuZXJhdGVz
IHNvbWUgR0wgZXJyb3IuIFVzZWQgaW4gc2l0dWF0aW9ucyB3aGVyZSBpdCdzCisvLyBhbWJpZ2lv
dXMgd2hpY2ggb2YgbXVsdGlwbGUgcG9zc2libGUgZXJyb3JzIHdpbGwgYmUgZ2VuZXJhdGVkLgor
ZnVuY3Rpb24gYXNzZXJ0U29tZUdMRXJyb3IoZ2wsIG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVs
bCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGds
RXJyID0gMDsKKyAgdmFyIGVyciA9IDA7CisgIHRyeSB7IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1
ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IH0KKyAgaWYgKGdsRXJyID09PSAwKSB7CisgICAgaWYgKGds
RXJyID09PSB1bmRlZmluZWQpIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IFVO
RVhQRUNURUQgRVhDRVBUSU9OIiwgbmFtZSwgZik7CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RG
YWlsZWQoImFzc2VydEdMRXJyb3I6IGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGds
LCBlcnIpICsKKyAgICAgICAgICAgICAgICAgIiBhY3R1YWw6ICIgKyBnZXRHTEVycm9yQXNTdHJp
bmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfQor
ICByZXR1cm4gdHJ1ZTsKK30KKworLy8gQXNzZXJ0IHRoYXQgZiB0aHJvd3MgYW4gZXhjZXB0aW9u
IGJ1dCBkb2VzIG5vdCBnZW5lcmF0ZSBhIEdMIGVycm9yLgorZnVuY3Rpb24gYXNzZXJ0VGhyb3dO
b0dMRXJyb3IoZ2wsIG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFt
ZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGdsRXJyID0gdW5kZWZpbmVkOwor
ICB2YXIgZXhwOworICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyByPXRydWU7IGdsRXJyID0gZS5n
bEVycm9yOyBleHAgPSBlO30KKyAgaWYgKCFyKSB7CisgICAgdGVzdEZhaWxlZCgKKyAgICAgICJh
c3NlcnRUaHJvd05vR0xFcnJvcjogc2hvdWxkIGhhdmUgdGhyb3duIGV4Y2VwdGlvbiIsIG5hbWUs
IGYpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICBpZiAoZ2xFcnIgIT09IHVu
ZGVmaW5lZCkgeworICAgICAgdGVzdEZhaWxlZCgKKyAgICAgICAgImFzc2VydFRocm93Tm9HTEVy
cm9yOiBzaG91bGQgYmUgbm8gR0wgZXJyb3IgYnV0IGdlbmVyYXRlZDogIiArCisgICAgICAgIGdl
dEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKKyAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgIH0KKyAgdGVzdFBhc3NlZCgiYXNzZXJ0VGhyb3dOb0dMRXJyb3IiLCBuYW1l
LCBmKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGFzc2VydFRocm93cyhnbCwgc2hv
dWxkVGhyb3csIGluZm8sIGZ1bmMpIHsKKyAgdmFyIGRpZFRocm93ID0gZmFsc2U7CisgIHRyeSB7
CisgICAgZnVuYygpOworICB9IGNhdGNoIChlKSB7CisgICAgdmFyIGRpZEdMRXJyb3IgPSAoZSBp
bnN0YW5jZW9mIEdMRXJyb3IpOworICAgIGlmICghZGlkR0xFcnJvcikgeworICAgICAgZGlkVGhy
b3cgPSB0cnVlOworICAgIH0KKyAgfQorCisgIHZhciB0ZXh0ID0gc2hvdWxkVGhyb3cgPyAiU2hv
dWxkIHRocm93OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgOiAiU2hvdWxkIG5vdCB0aHJv
dzogIjsKKyAgdmFyIGZ1bmMgPSAoZGlkVGhyb3cgPT0gc2hvdWxkVGhyb3cpID8gdGVzdFBhc3Nl
ZCA6IHRlc3RGYWlsZWQ7CisKKyAgZnVuYyh0ZXh0ICsgaW5mbyk7Cit9CisKK1F1YWQgPSB7Cisg
IHZlcnRpY2VzIDogWworICAgIC0xLC0xLDAsCisgICAgMSwtMSwwLAorICAgIC0xLDEsMCwKKyAg
ICAxLC0xLDAsCisgICAgMSwxLDAsCisgICAgLTEsMSwwCisgIF0sCisgIG5vcm1hbHMgOiBbCisg
ICAgMCwwLC0xLAorICAgIDAsMCwtMSwKKyAgICAwLDAsLTEsCisgICAgMCwwLC0xLAorICAgIDAs
MCwtMSwKKyAgICAwLDAsLTEKKyAgXSwKKyAgdGV4Y29vcmRzIDogWworICAgIDAsMCwKKyAgICAx
LDAsCisgICAgMCwxLAorICAgIDEsMCwKKyAgICAxLDEsCisgICAgMCwxCisgIF0sCisgIGluZGlj
ZXMgOiBbMCwxLDIsMSw1LDJdLAorICBtYWtlVkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAgICByZXR1
cm4gbmV3IFZCTyhnbCwKKyAgICAgICAge3NpemU6MywgZGF0YTogUXVhZC52ZXJ0aWNlc30sCisg
ICAgICAgIHtzaXplOjMsIGRhdGE6IFF1YWQubm9ybWFsc30sCisgICAgICAgIHtzaXplOjIsIGRh
dGE6IFF1YWQudGV4Y29vcmRzfQorICAgICkKKyAgfSwKKyAgY2FjaGU6IHt9LAorICBnZXRDYWNo
ZWRWQk8gOiBmdW5jdGlvbihnbCkgeworICAgIGlmICghdGhpcy5jYWNoZVtnbF0pCisgICAgICB0
aGlzLmNhY2hlW2dsXSA9IHRoaXMubWFrZVZCTyhnbCk7CisgICAgcmV0dXJuIHRoaXMuY2FjaGVb
Z2xdOworICB9Cit9CitDdWJlID0geworICB2ZXJ0aWNlcyA6IFsgIDAuNSwgLTAuNSwgIDAuNSwg
Ly8gK1gKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIC0wLjUsCisgICAgICAgICAgICAgICAg
MC41LCAgMC41LCAtMC41LAorICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwKKworICAg
ICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwgLy8gK1kKKyAgICAgICAgICAgICAgICAwLjUs
ICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAg
ICAgICAgICAtMC41LCAgMC41LCAgMC41LAorCisgICAgICAgICAgICAgICAgMC41LCAgMC41LCAg
MC41LCAvLyArWgorICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCisgICAgICAgICAg
ICAgICAgLTAuNSwgLTAuNSwgIDAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsICAwLjUs
CisKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAgMC41LCAvLyAtWAorICAgICAgICAgICAg
ICAgIC0wLjUsICAwLjUsICAwLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwK
KyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LAorCisgICAgICAgICAgICAgICAgLTAu
NSwgLTAuNSwgIDAuNSwgLy8gLVkKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LAor
ICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0w
LjUsICAwLjUsCisKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LCAvLyAtWgorICAg
ICAgICAgICAgICAgIC0wLjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41LCAgMC41
LCAtMC41LAorICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKKyAgICAgIF0sCisKKyAg
bm9ybWFscyA6IFsgMSwgMCwgMCwKKyAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAg
ICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgMSwgMCwgMCwKKworICAgICAgICAgICAgICAwLCAx
LCAwLAorICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAwLCAxLCAwLAorICAg
ICAgICAgICAgICAwLCAxLCAwLAorCisgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAg
ICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgIDAsIDAs
IDEsCisKKyAgICAgICAgICAgICAgLTEsIDAsIDAsCisgICAgICAgICAgICAgIC0xLCAwLCAwLAor
ICAgICAgICAgICAgICAtMSwgMCwgMCwKKyAgICAgICAgICAgICAgLTEsIDAsIDAsCisKKyAgICAg
ICAgICAgICAgMCwtMSwgMCwKKyAgICAgICAgICAgICAgMCwtMSwgMCwKKyAgICAgICAgICAgICAg
MCwtMSwgMCwKKyAgICAgICAgICAgICAgMCwtMSwgMCwKKworICAgICAgICAgICAgICAwLCAwLC0x
LAorICAgICAgICAgICAgICAwLCAwLC0xLAorICAgICAgICAgICAgICAwLCAwLC0xLAorICAgICAg
ICAgICAgICAwLCAwLC0xCisgICAgICBdLAorCisgIGluZGljZXMgOiBbXSwKKyAgY3JlYXRlIDog
ZnVuY3Rpb24oKXsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDY7IGkrKykgeworICAgICAgQ3Vi
ZS5pbmRpY2VzLnB1c2goaSo0ICsgMCk7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAx
KTsKKyAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDMpOworICAgICAgQ3ViZS5pbmRpY2Vz
LnB1c2goaSo0ICsgMSk7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAyKTsKKyAgICAg
IEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDMpOworICAgIH0KKyAgfSwKKworICBtYWtlVkJPIDog
ZnVuY3Rpb24oZ2wpIHsKKyAgICByZXR1cm4gbmV3IFZCTyhnbCwKKyAgICAgICAge3NpemU6Mywg
ZGF0YTogQ3ViZS52ZXJ0aWNlc30sCisgICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUubm9ybWFs
c30sCisgICAgICAgIHtlbGVtZW50czogdHJ1ZSwgZGF0YTogQ3ViZS5pbmRpY2VzfQorICAgICkK
KyAgfSwKKyAgY2FjaGUgOiB7fSwKKyAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAg
ICBpZiAoIXRoaXMuY2FjaGVbZ2xdKQorICAgICAgdGhpcy5jYWNoZVtnbF0gPSB0aGlzLm1ha2VW
Qk8oZ2wpOworICAgIHJldHVybiB0aGlzLmNhY2hlW2dsXTsKKyAgfQorfQorQ3ViZS5jcmVhdGUo
KTsKKworU3BoZXJlID0geworICB2ZXJ0aWNlcyA6IFtdLAorICBub3JtYWxzIDogW10sCisgIGlu
ZGljZXMgOiBbXSwKKyAgY3JlYXRlIDogZnVuY3Rpb24oKXsKKyAgICB2YXIgciA9IDAuNzU7Cisg
ICAgZnVuY3Rpb24gdmVydCh0aGV0YSwgcGhpKQorICAgIHsKKyAgICAgIHZhciByID0gMC43NTsK
KyAgICAgIHZhciB4LCB5LCB6LCBueCwgbnksIG56OworCisgICAgICBueCA9IE1hdGguc2luKHRo
ZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAgICBueSA9IE1hdGguc2luKHBoaSk7CisgICAgICBu
eiA9IE1hdGguY29zKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAgICBTcGhlcmUubm9ybWFs
cy5wdXNoKG54KTsKKyAgICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobnkpOworICAgICAgU3BoZXJl
Lm5vcm1hbHMucHVzaChueik7CisKKyAgICAgIHggPSByICogTWF0aC5zaW4odGhldGEpICogTWF0
aC5jb3MocGhpKTsKKyAgICAgIHkgPSByICogTWF0aC5zaW4ocGhpKTsKKyAgICAgIHogPSByICog
TWF0aC5jb3ModGhldGEpICogTWF0aC5jb3MocGhpKTsKKyAgICAgIFNwaGVyZS52ZXJ0aWNlcy5w
dXNoKHgpOworICAgICAgU3BoZXJlLnZlcnRpY2VzLnB1c2goeSk7CisgICAgICBTcGhlcmUudmVy
dGljZXMucHVzaCh6KTsKKyAgICB9CisgICAgZm9yICh2YXIgcGhpID0gLU1hdGguUEkvMjsgcGhp
IDwgTWF0aC5QSS8yOyBwaGkgKz0gTWF0aC5QSS8yMCkgeworICAgICAgdmFyIHBoaTIgPSBwaGkg
KyBNYXRoLlBJLzIwOworICAgICAgZm9yICh2YXIgdGhldGEgPSAtTWF0aC5QSS8yOyB0aGV0YSA8
PSBNYXRoLlBJLzI7IHRoZXRhICs9IE1hdGguUEkvMjApIHsKKyAgICAgICAgdmVydCh0aGV0YSwg
cGhpKTsKKyAgICAgICAgdmVydCh0aGV0YSwgcGhpMik7CisgICAgICB9CisgICAgfQorICB9Cit9
CisKK1NwaGVyZS5jcmVhdGUoKTsKKworaW5pdEdMX0NPTlRFWFRfSUQgPSBmdW5jdGlvbigpewor
ICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICB2YXIgY29udGV4
dE5hbWVzID0gWyd3ZWJnbCcsICdleHBlcmltZW50YWwtd2ViZ2wnXTsKKyAgR0xfQ09OVEVYVF9J
RCA9IG51bGw7CisgIGZvciAodmFyIGk9MDsgaTxjb250ZXh0TmFtZXMubGVuZ3RoOyBpKyspIHsK
KyAgICB0cnkgeworICAgICAgaWYgKGMuZ2V0Q29udGV4dChjb250ZXh0TmFtZXNbaV0pKSB7Cisg
ICAgICAgIEdMX0NPTlRFWFRfSUQgPSBjb250ZXh0TmFtZXNbaV07CisgICAgICAgIGJyZWFrOwor
ICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICB9CisgIH0KKyAgaWYgKCFHTF9DT05URVhU
X0lEKSB7CisgICAgbG9nKCJObyBXZWJHTCBjb250ZXh0IGZvdW5kLiBVbmFibGUgdG8gcnVuIHRl
c3RzLiIpOworICB9Cit9CisKK2luaXRHTF9DT05URVhUX0lEKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDg2OTZlOThhOGVjZmVkNDlm
M2I2YWU3Y2Y5ZTg3Y2VlZmZhNWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApA
QCAtMCwwICsxLDEyNSBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgT3JpZ2luIFJlc3RyaWN0aW9ucyBDb25mb3JtYW5jZSBUZXN0
cyBmb3IgT2Zmc2NyZWVuQ2FudmFzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxj
YW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+Cis8aW1nIGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5
Om5vbmU7Ij4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7CisKKy8vIENoZWNrcyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgorZnVuY3Rp
b24gY2F1c2VkRXhjZXB0aW9uKGZ1bmMpIHsKKyAgdmFyIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwor
ICB0cnkgeworICAgIGZ1bmMoKTsKKyAgfSBjYXRjaChlKSB7CisgICAgaGFkRXhjZXB0aW9uID0g
dHJ1ZTsKKyAgfQorICByZXR1cm4gaGFkRXhjZXB0aW9uOworfQorCit2YXIgZGVmYXVsdEltZ1Vy
bCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL29wZW5nbF9s
b2dvLmpwZyI7Cit2YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL29wZW5nbF9s
b2dvLmpwZyI7CisKK3ZhciBpbWdEb21haW47Cit2YXIgcGFnZURvbWFpbjsKKworZnVuY3Rpb24g
aW1hZ2VMb2FkZWQoaW1nKSB7CisgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJH
TCBpbXBsZW1lbnRhdGlvbnMgZm9yIE9mZnNjcmVlbkNhbnZhcyBmb2xsb3cgcHJvcGVyIHNhbWUt
b3JpZ2luIHJlc3RyaWN0aW9ucy4iKTsKKworICBpZiAoIXdpbmRvdy5PZmZzY3JlZW5DYW52YXMp
IHsKKyAgICB0ZXN0UGFzc2VkKCJObyBPZmZzY3JlZW5DYW52YXMgc3VwcG9ydCIpOworICAgIGZp
bmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKworICBhc3NlcnRNc2coaW1nLndpZHRoID4g
MCAmJiBpbWcuaGVpZ2h0ID4gMCwgImltZyB3YXMgbG9hZGVkIik7CisgIGltZ0RvbWFpbiA9IHd0
dS5nZXRCYXNlRG9tYWluKHd0dS5nZXRIb3N0KGltZy5zcmMpKTsKKyAgcGFnZURvbWFpbiA9IHd0
dS5nZXRCYXNlRG9tYWluKHdpbmRvdy5sb2NhdGlvbi5ob3N0KTsKKyAgYXNzZXJ0TXNnKGltZ0Rv
bWFpbiAhPSBwYWdlRG9tYWluLAorICAgICAgICAgICAgImltZyBkb21haW4gKCIgKyBpbWdEb21h
aW4gKyAiKSBhbmQgcGFnZSBkb21haW4gKCIgKyBwYWdlRG9tYWluICsgIikgYXJlIG5vdCB0aGUg
c2FtZS4iKTsKKworICBmdW5jdGlvbiBtYWtlVGV4SW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0
dXJuIGZ1bmN0aW9uKCkgeworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKwor
ICBmdW5jdGlvbiBtYWtlVGV4U3ViSW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgeworICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlv
biBtYWtlUmVhZFBpeGVscyhnbCkgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIHZh
ciBidWYgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwg
MSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgICB9OworICB9CisKKyAgdmFy
IG9mZnNjcmVlbmNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgdmFyIGds
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dChvZmZzY3JlZW5jYW52YXMpOworCisgIGRlYnVnKCIiKTsK
KyAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBh
bm90aGVyIG9yaWdpbiB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOworICB2YXIgdGV4ID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICBn
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlv
bihtYWtlVGV4SW1hZ2UyRChnbCwgaW1nKSksCisgICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRo
IGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRN
c2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKKyAgICAgICAg
ICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBl
eGNlcHRpb24uIik7CisKKyAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMg
dG8gd29yayBhZ2FpbnN0IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNh
dXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAorICAgICAgICAgICAgInJlYWRQaXhl
bHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkg
b3JpZ2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKKworICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRl
bXB0IHRvIHVwbG9hZCBhIHRhaW50ZWQgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24uIik7Cisg
IHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgIHZhciBj
dHgyZCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICBjdHgyZC5kcmF3SW1hZ2UoaW1nLCAw
LCAwKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2Fu
dmFzKSksCisgICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2Fu
dmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRp
b24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGNhbnZhcykpLAorICAgICAgICAgICAgInRleFN1Yklt
YWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9u
LiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsg
YWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNl
cHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKKyAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3Vs
ZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBv
ZiBXZWJHTCBjYW52YXMuIik7CisKKyAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgorICAv
LyBUT0RPOiBTaG91bGQgY2hlY2sgQ09SUyBzdXBwb3J0LgorCisgIGZpbmlzaFRlc3QoKTsKK30K
KworKGFzeW5jIGZ1bmN0aW9uKCkgeworICBjb25zdCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaW1nJyk7CisgIHRyeSB7CisgICAgYXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5s
b2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRlZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7Cisg
IH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0p
LmApOworICAgIGZpbmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKyAgaW1hZ2VMb2FkZWQo
aW1nKTsKK30pKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYjdmNTcyMTczNWYwMTczNGE3ZTFkNmJlMzkzY2UwN2E2MTJhZjAwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS5odG1sCkBAIC0wLDAgKzEsMTM3IEBACis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBPcmlnaW4gUmVzdHJpY3Rpb25zIENvbmZv
cm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9
ImNhbnZhczEiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iY2FudmFzMiI+PC9jYW52YXM+Cis8aW1n
IGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7
Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisKKy8vIENoZWNrcyBpZiBmdW5jdGlvbiB0aHJv
d3MgYW4gZXhjZXB0aW9uLgorZnVuY3Rpb24gY2F1c2VkRXhjZXB0aW9uKGZ1bmMpIHsKKyAgdmFy
IGhhZEV4Y2VwdGlvbiA9IGZhbHNlOworICB0cnkgeworICAgIGZ1bmMoKTsKKyAgfSBjYXRjaChl
KSB7CisgICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKKyAgfQorICByZXR1cm4gaGFkRXhjZXB0aW9u
OworfQorCit2YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9y
bWFuY2UtcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Cit2YXIgbG9jYWxJbWdVcmwgPSAiLi4v
Li4vLi4vcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7CisKK3ZhciBpbWdEb21haW47Cit2YXIg
cGFnZURvbWFpbjsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQ7CisKK2Z1bmN0aW9uIGltYWdlTG9h
ZGVkKGltZykgeworICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVt
ZW50YXRpb25zIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLiIpOworCisg
IGFzc2VydE1zZyhpbWcud2lkdGggPiAwICYmIGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2Fk
ZWQiKTsKKyAgaW1nRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNy
YykpOworICBwYWdlRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od2luZG93LmxvY2F0aW9uLmhv
c3QpOworICBhc3NlcnRNc2coaW1nRG9tYWluICE9IHBhZ2VEb21haW4sCisgICAgICAgICAgICAi
aW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiArICIpIGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VE
b21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1lLiIpOworCisgIGZ1bmN0aW9uIG1ha2VUZXhJbWFn
ZTJEKGdsLCBzcmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHNyYyk7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBz
cmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Cisg
ICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VSZWFkUGl4ZWxzKGdsKSB7CisgICAgcmV0dXJu
IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDQpOworICAgICAg
Z2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYp
OworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtlVG9EYXRhVVJMKGNhbnZhcykgeworICAg
IHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBkYXRhID0gY2FudmFzLnRvRGF0YVVSTCgp
OworICAgIH0KKyAgfQorCisgIHZhciBjYW52YXMxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhczEiKTsKKyAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMxKTsKKwor
ICBkZWJ1ZygiIik7CisgIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFu
IGltYWdlIGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKKyAgdmFy
IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgdGV4KTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYs
IDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgIGFzc2VydE1zZyhj
YXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAgICAgInRl
eEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4i
KTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1n
KSksCisgICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBz
aG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhl
bHMgYW5kIHRvRGF0YVVSTCBjb250aW51ZSB0byB3b3JrIGFnYWluc3QgdGhpcyBjYW52YXMuIik7
CisgIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCisgICAg
ICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBw
b3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2FudmFzLiIpOworICBhc3NlcnRNc2co
IWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZhczEpKSwKKyAgICAgICAgICAgICJz
aG91bGQgbm90IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIFdlYkdMIGNhbnZhcywg
d2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2luIGNsZWFuLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0
IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlv
bi4iKTsKKyAgdmFyIGNhbnZhczIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMiIp
OworICB2YXIgY3R4MmQgPSBjYW52YXMyLmdldENvbnRleHQoIjJkIik7CisgIGN0eDJkLmRyYXdJ
bWFnZShpbWcsIDAsIDApOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFV
UkwoY2FudmFzMikpLAorICAgICAgICAgICAgInNob3VsZCB0aHJvdyBleGNlcHRpb24gYnkgdG9E
YXRhVVJMIGZvciBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNl
ZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2FudmFzMikpLAorICAgICAgICAgICAgInRl
eEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGds
LCBjYW52YXMyKSksCisgICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4g
Y2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKyAgZGVidWcoImNoZWNr
IHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRpbnVlIHRvIHdvcmsgYWdhaW5zdCB0
aGlzIGNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhl
bHMoZ2wpKSwKKyAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNl
cHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBjYW52YXMuIik7
CisgIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMSkpLAor
ICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uIGJ5IHRvRGF0YVVSTCBmb3Ig
V2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmlnaW4gY2xlYW4uIik7CisKKyAgLy8g
VE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgorICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgQ09SUyBz
dXBwb3J0LgorCisgIGRlYnVnKCIiKTsKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAg
c2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKKyAgZGVidWcoJzxiciAvPjxzcGFu
IGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworICBub3RpZnlGaW5pc2hlZFRv
SGFybmVzcygpOworfQorCisoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGNvbnN0IGltZyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbWcnKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCB3dHUuYXdhaXRP
clRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9j
YWxJbWdVcmwpKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVw
IGZhaWxlZCAoJHtlfSkuYCk7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQor
ICBpbWFnZUxvYWRlZChpbWcpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YzZhMTE4Y2MxZGRhZjU3MzE0YTQyN2UwYjA0MjhiZWQwOGQ0Njk1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zm
c2NyZWVuY2FudmFzLmh0bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMMiBPcmlnaW4gUmVzdHJpY3Rp
b25zIENvbmZvcm1hbmNlIFRlc3RzIGZvciBPZmZzY3JlZW5DYW52YXM8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKzxpbWcgaWQ9
ImltZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK3Zh
ciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKworLy8gQ2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBh
biBleGNlcHRpb24uCitmdW5jdGlvbiBjYXVzZWRFeGNlcHRpb24oZnVuYykgeworICB2YXIgaGFk
RXhjZXB0aW9uID0gZmFsc2U7CisgIHRyeSB7CisgICAgZnVuYygpOworICB9IGNhdGNoKGUpIHsK
KyAgICBoYWRFeGNlcHRpb24gPSB0cnVlOworICB9CisgIHJldHVybiBoYWRFeGNlcHRpb247Cit9
CisKK3ZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5j
ZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKK3ZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8u
Li9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKKwordmFyIGltZ0RvbWFpbjsKK3ZhciBwYWdl
RG9tYWluOworCitmdW5jdGlvbiBpbWFnZUxvYWRlZChpbWcpIHsKKyAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBlbnN1cmVzIFdlYkdMMiBpbXBsZW1lbnRhdGlvbnMgZm9yIE9mZnNjcmVlbkNhbnZh
cyBmb2xsb3cgcHJvcGVyIHNhbWUtb3JpZ2luIHJlc3RyaWN0aW9ucy4iKTsKKworICBpZiAoIXdp
bmRvdy5PZmZzY3JlZW5DYW52YXMpIHsKKyAgICB0ZXN0UGFzc2VkKCJObyBPZmZzY3JlZW5DYW52
YXMgc3VwcG9ydCIpOworICAgIGZpbmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKworICBh
c3NlcnRNc2coaW1nLndpZHRoID4gMCAmJiBpbWcuaGVpZ2h0ID4gMCwgImltZyB3YXMgbG9hZGVk
Iik7CisgIGltZ0RvbWFpbiA9IHd0dS5nZXRCYXNlRG9tYWluKHd0dS5nZXRIb3N0KGltZy5zcmMp
KTsKKyAgcGFnZURvbWFpbiA9IHd0dS5nZXRCYXNlRG9tYWluKHdpbmRvdy5sb2NhdGlvbi5ob3N0
KTsKKyAgYXNzZXJ0TXNnKGltZ0RvbWFpbiAhPSBwYWdlRG9tYWluLAorICAgICAgICAgICAgImlt
ZyBkb21haW4gKCIgKyBpbWdEb21haW4gKyAiKSBhbmQgcGFnZSBkb21haW4gKCIgKyBwYWdlRG9t
YWluICsgIikgYXJlIG5vdCB0aGUgc2FtZS4iKTsKKworICBmdW5jdGlvbiBtYWtlVGV4SW1hZ2Uy
RChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxMCwgMTAsIDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIHNyYyk7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFn
ZTJEKGdsLCBzcmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIDEwLCAxMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgc3JjKTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVRleEltYWdlM0Qo
Z2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGdsLnRleEltYWdlM0Qo
Z2wuVEVYVFVSRV8zRCwgMCwgZ2wuUkdCQSwgMTAsIDEwLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtlVGV4U3ViSW1h
Z2UzRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgZ2wudGV4U3Vi
SW1hZ2UzRChnbC5URVhUVVJFXzNELCAwLCAwLCAwLCAwLCAxMCwgMTAsIDEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIHNyYyk7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VSZWFk
UGl4ZWxzKGdsKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGJ1ZiA9IG5l
dyBVaW50OEFycmF5KDQpOworICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICAgIH07CisgIH0KKworICB2YXIgb2Zmc2NyZWVu
Y2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICB2YXIgZ2wgPSB3dHUuY3Jl
YXRlM0RDb250ZXh0KG9mZnNjcmVlbmNhbnZhcywgbnVsbCwgMik7CisKKyAgZGVidWcoIiIpOwor
ICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhbiBpbWFnZSBmcm9tIGFu
b3RoZXIgb3JpZ2luIHRocm93cyBhbiBleGNlcHRpb24uIik7CisgIHZhciB0ZXggPSBnbC5jcmVh
dGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMjU2LCAyNTYsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9u
KG1ha2VUZXhJbWFnZTJEKGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGgg
Y3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1z
ZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAg
ICAgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4
Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UzRChn
bCwgaW1nKSksCisgICAgICAgICAgICAidGV4SW1hZ2UzRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFn
ZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9u
KG1ha2VUZXhTdWJJbWFnZTNEKGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTNE
IHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKwor
ICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3JrIGFnYWluc3Qg
dGhpcyBvZmZzY3JlZW5jYW52YXMuIik7CisgIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1h
a2VSZWFkUGl4ZWxzKGdsKSksCisgICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIg
dGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wy
IGNhbnZhcy4iKTsKKworICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBh
IHRhaW50ZWQgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24uIik7CisgIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgIHZhciBjdHgyZCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCIyZCIpOworICBjdHgyZC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgYXNzZXJ0
TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2FudmFzKSksCisgICAgICAg
ICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJv
dyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1Yklt
YWdlMkQoZ2wsIGNhbnZhcykpLAorICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBOT04g
b3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRN
c2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTNEKGdsLCBjYW52YXMpKSwKKyAgICAgICAg
ICAgICJ0ZXhJbWFnZTNEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93
IGV4Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1h
Z2UzRChnbCwgY2FudmFzKSksCisgICAgICAgICAgICAidGV4U3ViSW1hZ2UzRCB3aXRoIE5PTiBv
cmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKyAgZGVidWco
ImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2FpbnN0IHRoaXMgb2Zm
c2NyZWVuY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBp
eGVscyhnbCkpLAorICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4
Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMMiBjYW52YXMu
Iik7CisKKyAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgorICAvLyBUT0RPOiBTaG91bGQg
Y2hlY2sgQ09SUyBzdXBwb3J0LgorCisgIGZpbmlzaFRlc3QoKTsKK30KKworKGFzeW5jIGZ1bmN0
aW9uKCkgeworICBjb25zdCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nJyk7Cisg
IHRyeSB7CisgICAgYXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5J
bWFnZShpbWcsIGRlZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSwgMTAwMCk7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICB0ZXN0RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAg
IGZpbmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKyAgaW1hZ2VMb2FkZWQoaW1nKTsKK30p
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1w
b3N0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy9qcy10ZXN0LXBvc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNkZjU1MDNkMTI4Y2E1YmQ5
MDQ5ZmQxMzlmZTAyY2FkYzVhODA1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0
LmpzCkBAIC0wLDAgKzEsMjcgQEAKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKK19hZGRTcGFuKCc8
YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKK2lmIChfanNU
ZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ1RFU1Qg
Q09NUExFVEUnKTsKK30KKworeworICAgIGNvbnN0IGVfcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgIGxldCBmYWlsc19jbGFzcyA9ICdwYXNzJzsKKyAgICBpZiAo
UkVTVUxUUy5mYWlsKSB7CisgICAgICAgIGZhaWxzX2NsYXNzID0gJ2ZhaWwnOworICAgIH0KKyAg
ICBlX3Jlc3VsdHMuY2xhc3NMaXN0LmFkZCgncGFzcycpOworICAgIGVfcmVzdWx0cy5pbm5lckhU
TUwgPSBgPHA+VEVTVCBDT01QTEVURTogJHtSRVNVTFRTLnBhc3N9IFBBU1MsIGAgKworICAgICAg
YDxzcGFuIGNsYXNzPSIke2ZhaWxzX2NsYXNzfSI+JHtSRVNVTFRTLmZhaWx9IEZBSUw8L3NwYW4+
PC9wPmA7CisKKyAgICBjb25zdCBlX2Rlc2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVz
Y3JpcHRpb24iKTsKKyAgICBlX2Rlc2MuYXBwZW5kQ2hpbGQoZV9yZXN1bHRzKTsKK30KKworbm90
aWZ5RmluaXNoZWRUb0hhcm5lc3MoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
anMtdGVzdC1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFjYjlmNzQ5YzAyMmFhYWMwOGZiMTBiMGMyZjY0
OTBiMGZhYWY2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKQEAgLTAsMCAr
MSw4MDEgQEAKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworKGZ1
bmN0aW9uKCkgeworICB2YXIgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IGZhbHNlOworCisgIHZh
ciBpbml0Tm9uS2hyb25vc0ZyYW1ld29yayA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh0ZXN0SGFy
bmVzc0luaXRpYWxpemVkKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRlc3RIYXJuZXNz
SW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2RlIC0t
ICovCisKKyAgICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5l
cjsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29t
cGFyZXMgY29uc29sZSBvdXRwdXQuCisgICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhl
IFdlYkdMIFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNv
bGUgbWVzc2FnZXMuCisgICAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsK
KyAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxz
ZSk7CisgICAgfQorCisgICAgLyogLS0gZW5kIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgLS0qLwor
ICB9CisKKyAgdGhpcy5pbml0VGVzdGluZ0hhcm5lc3MgPSBmdW5jdGlvbigpIHsKKyAgICBpbml0
Tm9uS2hyb25vc0ZyYW1ld29yaygpOworICB9Cit9KCkpOworCit2YXIgZ2V0VXJsT3B0aW9ucyA9
IChmdW5jdGlvbigpIHsKKyAgdmFyIF91cmxPcHRpb25zUGFyc2VkID0gZmFsc2U7CisgIHZhciBf
dXJsT3B0aW9ucyA9IHt9OworICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgaWYgKCFfdXJsT3B0
aW9uc1BhcnNlZCkgeworICAgICAgdmFyIHMgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKKyAgICAg
IHZhciBxID0gcy5pbmRleE9mKCI/Iik7CisgICAgICB2YXIgZSA9IHMuaW5kZXhPZigiIyIpOwor
ICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgIGUgPSBzLmxlbmd0aDsKKyAgICAgIH0KKyAgICAg
IHZhciBxdWVyeSA9IHMuc3Vic3RyaW5nKHEgKyAxLCBlKTsKKyAgICAgIHZhciBwYWlycyA9IHF1
ZXJ5LnNwbGl0KCImIik7CisgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgcGFpcnMubGVuZ3Ro
OyArK2lpKSB7CisgICAgICAgIHZhciBrZXlWYWx1ZSA9IHBhaXJzW2lpXS5zcGxpdCgiPSIpOwor
ICAgICAgICB2YXIga2V5ID0ga2V5VmFsdWVbMF07CisgICAgICAgIHZhciB2YWx1ZSA9IGRlY29k
ZVVSSUNvbXBvbmVudChrZXlWYWx1ZVsxXSk7CisgICAgICAgIF91cmxPcHRpb25zW2tleV0gPSB2
YWx1ZTsKKyAgICAgIH0KKyAgICAgIF91cmxPcHRpb25zUGFyc2VkID0gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gX3VybE9wdGlvbnM7CisgIH0KK30pKCk7CisKK2lmICh0eXBlb2YgcXVpZXRN
b2RlID09ICd1bmRlZmluZWQnKSB7CisgIHZhciBxdWlldE1vZGUgPSAoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIF9xdWlldE1vZGVDaGVja2VkID0gZmFsc2U7CisgICAgdmFyIF9pc1F1aWV0ID0gZmFs
c2U7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCFfcXVpZXRNb2RlQ2hlY2tl
ZCkgeworICAgICAgICBfaXNRdWlldCA9IChnZXRVcmxPcHRpb25zKCkucXVpZXQgPT0gMSk7Cisg
ICAgICAgIF9xdWlldE1vZGVDaGVja2VkID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBf
aXNRdWlldDsKKyAgICB9CisgIH0pKCk7Cit9CisKK2Z1bmN0aW9uIG5vbktocm9ub3NGcmFtZXdv
cmtOb3RpZnlEb25lKCkgeworICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29k
ZSBoZXJlLgorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorCitjb25zdCBSRVNV
TFRTID0geworICBwYXNzOiAwLAorICBmYWlsOiAwLAorfTsKKworZnVuY3Rpb24gcmVwb3J0VGVz
dFJlc3VsdHNUb0hhcm5lc3Moc3VjY2VzcywgbXNnKSB7CisgIGlmIChzdWNjZXNzKSB7CisgICAg
UkVTVUxUUy5wYXNzICs9IDE7CisgIH0gZWxzZSB7CisgICAgUkVTVUxUUy5mYWlsICs9IDE7Cisg
IH0KKyAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5w
YXJlbnQud2ViZ2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdpbmRvdy5sb2NhdGlvbi5wYXRo
bmFtZSwgc3VjY2VzcywgbXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiByZXBvcnRTa2lwcGVkVGVz
dFJlc3VsdHNUb0hhcm5lc3Moc3VjY2VzcywgbXNnKSB7CisgIGlmICh3aW5kb3cucGFyZW50Lndl
YmdsVGVzdEhhcm5lc3MpIHsKKyAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVw
b3J0UmVzdWx0cyh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZywgdHJ1ZSk7
CisgIH0KK30KKworZnVuY3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7CisgIGlmICh3
aW5kb3cuX2RpZE5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKSB7CisgICAgdGVzdEZhaWxlZCgiRHVw
bGljYXRlIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkiKTsKKyAgfQorICB3aW5kb3cuX2RpZE5v
dGlmeUZpbmlzaGVkVG9IYXJuZXNzID0gdHJ1ZTsKKworICBpZiAod2luZG93LnBhcmVudC53ZWJn
bFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlm
eUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5u
b25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSkgeworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJh
bWV3b3JrTm90aWZ5RG9uZSgpOworICB9Cit9CisKK3ZhciBfYnVmZmVyZWRDb25zb2xlTG9ncyA9
IFtdOworCitmdW5jdGlvbiBfYnVmZmVyZWRMb2dUb0NvbnNvbGUobXNnKQoreworICBpZiAoX2J1
ZmZlcmVkQ29uc29sZUxvZ3MpIHsKKyAgICBfYnVmZmVyZWRDb25zb2xlTG9ncy5wdXNoKG1zZyk7
CisgIH0gZWxzZSBpZiAod2luZG93LmNvbnNvbGUpIHsKKyAgICB3aW5kb3cuY29uc29sZS5sb2co
bXNnKTsKKyAgfQorfQorCisvLyBQdWJsaWMgZW50cnkgcG9pbnQgZXhwb3NlZCB0byBtYW55IG90
aGVyIGZpbGVzLgorZnVuY3Rpb24gYnVmZmVyZWRMb2dUb0NvbnNvbGUobXNnKQoreworICBfYnVm
ZmVyZWRMb2dUb0NvbnNvbGUobXNnKTsKK30KKworLy8gQ2FsbGVkIGltcGxpY2l0bHkgYnkgdGVz
dEZhaWxlZCgpLgorZnVuY3Rpb24gX2ZsdXNoQnVmZmVyZWRMb2dzVG9Db25zb2xlKCkKK3sKKyAg
aWYgKF9idWZmZXJlZENvbnNvbGVMb2dzKSB7CisgICAgaWYgKHdpbmRvdy5jb25zb2xlKSB7Cisg
ICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgX2J1ZmZlcmVkQ29uc29sZUxvZ3MubGVuZ3RoOyAr
K2lpKSB7CisgICAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyhfYnVmZmVyZWRDb25zb2xlTG9nc1tp
aV0pOworICAgICAgfQorICAgIH0KKyAgICBfYnVmZmVyZWRDb25zb2xlTG9ncyA9IG51bGw7Cisg
IH0KK30KKwordmFyIF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZyA9IGZhbHNlOworCitmdW5jdGlv
biBlbmFibGVKU1Rlc3RQcmVWZXJib3NlTG9nZ2luZygpCit7CisgICAgX2pzVGVzdFByZVZlcmJv
c2VMb2dnaW5nID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gZGVzY3JpcHRpb24obXNnKQoreworICAg
IGluaXRUZXN0aW5nSGFybmVzcygpOworICAgIGlmIChtc2cgPT09IHVuZGVmaW5lZCkgeworICAg
ICAgbXNnID0gZG9jdW1lbnQudGl0bGU7CisgICAgfQorICAgIC8vIEZvciBNU0lFIDYgY29tcGF0
aWJpbGl0eQorICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwor
ICAgIHNwYW4uaW5uZXJIVE1MID0gJzxwPicgKyBtc2cgKyAnPC9wPjxwPk9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiPHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+IiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9z
cGFuPiIuPC9wPic7CisgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRlc2NyaXB0aW9uIik7CisgICAgaWYgKGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpCisgICAg
ICAgIGRlc2NyaXB0aW9uLnJlcGxhY2VDaGlsZChzcGFuLCBkZXNjcmlwdGlvbi5maXJzdENoaWxk
KTsKKyAgICBlbHNlCisgICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHNwYW4pOworICAg
IGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9D
b25zb2xlKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBfYWRkU3Bhbihjb250ZW50cykKK3sK
KyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHNwYW4pOyAvLyBpbnNl
cnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQorICAgIHNwYW4uaW5uZXJI
VE1MID0gY29udGVudHMgKyAnPGJyIC8+JzsKK30KKworZnVuY3Rpb24gZGVidWcobXNnKQorewor
ICAgIGlmICghcXVpZXRNb2RlKCkpCisgICAgICBfYWRkU3Bhbihtc2cpOworICAgIGlmIChfanNU
ZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKG1z
Zyk7CisgICAgfQorfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQpCit7CisgICAgcmV0dXJu
IHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICImbHQ7Iik7Cit9Cisv
KioKKyAqIERlZmluZXMgdGhlIGV4Y2VwdGlvbiB0eXBlIGZvciBhIHRlc3QgZmFpbHVyZS4KKyAq
IEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3Nh
Z2UuCisgKi8KK3ZhciBUZXN0RmFpbGVkRXhjZXB0aW9uID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHsK
KyAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CisgICB0aGlzLm5hbWUgPSAiVGVzdEZhaWxlZEV4
Y2VwdGlvbiI7Cit9OworCisvKioKKyAqIEBwYXJhbSAge3N0cmluZz19IG1zZworICovCitmdW5j
dGlvbiB0ZXN0UGFzc2VkKG1zZykgeworICAgIG1zZyA9IG1zZyB8fCAnUGFzc2VkJzsKKyAgICBp
ZiAoX2N1cnJlbnRUZXN0TmFtZSkKKyAgICAgIG1zZyA9IF9jdXJyZW50VGVzdE5hbWUgKyAnOiAn
ICsgbXNnOworCisgICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwgbXNnKTsKKwor
ICAgIGlmICghcXVpZXRNb2RlKCkpCisgICAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9
InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAg
IGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9D
b25zb2xlKCdQQVNTICcgKyBtc2cpOworICAgIH0KK30KKworLyoqCisgKiBAcGFyYW0gIHtzdHJp
bmc9fSBtc2cKKyAqLworZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpIHsKKyAgICBtc2cgPSBtc2cg
fHwgJ0ZhaWxlZCc7CisgICAgaWYgKF9jdXJyZW50VGVzdE5hbWUpCisgICAgICBtc2cgPSBfY3Vy
cmVudFRlc3ROYW1lICsgJzogJyArIG1zZzsKKworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJu
ZXNzKGZhbHNlLCBtc2cpOworICAgIF9hZGRTcGFuKCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+
RkFJTDwvc3Bhbj4gJyArIGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgX2J1ZmZl
cmVkTG9nVG9Db25zb2xlKCdGQUlMICcgKyBtc2cpOworICAgIF9mbHVzaEJ1ZmZlcmVkTG9nc1Rv
Q29uc29sZSgpOworfQorCit2YXIgX2N1cnJlbnRUZXN0TmFtZTsKKworLyoqCisgKiBTZXRzIHRo
ZSBjdXJyZW50IHRlc3QgbmFtZSBmb3IgdXNhZ2Ugd2l0aGluIHRlc3RQYXNzZWRPcHRpb25zL3Rl
c3RGYWlsZWRPcHRpb25zLgorICogQHBhcmFtIHtzdHJpbmc9fSBuYW1lIFRoZSBuYW1lIHRvIHNl
dCBhcyB0aGUgY3VycmVudCB0ZXN0IG5hbWUuCisgKi8KK2Z1bmN0aW9uIHNldEN1cnJlbnRUZXN0
TmFtZShuYW1lKQoreworICAgIF9jdXJyZW50VGVzdE5hbWUgPSBuYW1lOworfQorCisvKioKKyAq
IEdldHMgdGhlIGN1cnJlbnQgdGVzdCBuYW1lIGluIHVzZSB3aXRoaW4gdGVzdFBhc3NlZE9wdGlv
bnMvdGVzdEZhaWxlZE9wdGlvbnMuCisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBuYW1lIG9mIHRo
ZSBjdXJyZW50IHRlc3QuCisgKi8KK2Z1bmN0aW9uIGdldEN1cnJlbnRUZXN0TmFtZSgpCit7Cisg
ICAgcmV0dXJuIF9jdXJyZW50VGVzdE5hbWU7Cit9CisKKy8qKgorICogVmFyaWF0aW9uIG9mIHRo
ZSB0ZXN0UGFzc2VkIGZ1bmN0aW9uLCB3aXRoIHRoZSBvcHRpb24gdG8gbm90IHNob3cgKGFuZCB0
aHVzIG5vdCBjb3VudCkgdGhlIHRlc3QncyBwYXNzIHJlc3VsdC4KKyAqIEBwYXJhbSB7c3RyaW5n
fSBtc2cgVGhlIG1lc3NhZ2UgdG8gYmUgc2hvd24gaW4gdGhlIHBhc3MgcmVzdWx0LgorICogQHBh
cmFtIHtib29sZWFufSBhZGRTcGFuIEluZGljYXRlcyB3aGV0aGVyIHRoZSBtZXNzYWdlIHdpbGwg
YmUgdmlzaWJsZSAodGh1cyBjb3VudGVkIGluIHRoZSByZXN1bHRzKSBvciBub3QuCisgKi8KK2Z1
bmN0aW9uIHRlc3RQYXNzZWRPcHRpb25zKG1zZywgYWRkU3BhbikKK3sKKyAgICBpZiAoYWRkU3Bh
biAmJiAhcXVpZXRNb2RlKCkpCisgICAgeworICAgICAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFy
bmVzcyh0cnVlLCBfY3VycmVudFRlc3ROYW1lICsgIjogIiArIG1zZyk7CisgICAgICAgIF9hZGRT
cGFuKCc8c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVzY2FwZUhUTUwo
X2N1cnJlbnRUZXN0TmFtZSkgKyAiOiAiICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsK
KyAgICB9CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfYnVm
ZmVyZWRMb2dUb0NvbnNvbGUoJ1BBU1MgJyArIG1zZyk7CisgICAgfQorfQorCisvKioKKyAqIFJl
cG9ydCBza2lwcGVkIHRlc3RzLgorICogQHBhcmFtIHtzdHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0
byBiZSBzaG93biBpbiB0aGUgc2tpcCByZXN1bHQuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGFkZFNw
YW4gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIG1lc3NhZ2Ugd2lsbCBiZSB2aXNpYmxlICh0aHVzIGNv
dW50ZWQgaW4gdGhlIHJlc3VsdHMpIG9yIG5vdC4KKyAqLworZnVuY3Rpb24gdGVzdFNraXBwZWRP
cHRpb25zKG1zZywgYWRkU3BhbikKK3sKKyAgICBpZiAoYWRkU3BhbiAmJiAhcXVpZXRNb2RlKCkp
CisgICAgeworICAgICAgICByZXBvcnRTa2lwcGVkVGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwg
X2N1cnJlbnRUZXN0TmFtZSArICI6ICIgKyBtc2cpOworICAgICAgICBfYWRkU3BhbignPHNwYW4+
PHNwYW4gY2xhc3M9Indhcm4iPlNLSVA8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKF9jdXJyZW50VGVz
dE5hbWUpICsgIjogIiArIGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgfQorICAg
IGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9D
b25zb2xlKCdTS0lQJyArIG1zZyk7CisgICAgfQorfQorCisvKioKKyAqIFZhcmlhdGlvbiBvZiB0
aGUgdGVzdEZhaWxlZCBmdW5jdGlvbiwgd2l0aCB0aGUgb3B0aW9uIHRvIHRocm93IGFuIGV4Y2Vw
dGlvbiBvciBub3QuCisgKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGJlIHNo
b3duIGluIHRoZSBmYWlsIHJlc3VsdC4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gZXh0aHJvdyBJbmRp
Y2F0ZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gd2lsbCB0aHJvdyBhIFRlc3RGYWlsZWRFeGNlcHRp
b24gb3Igbm90LgorICovCitmdW5jdGlvbiB0ZXN0RmFpbGVkT3B0aW9ucyhtc2csIGV4dGhyb3cp
Cit7CisgICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3MoZmFsc2UsIF9jdXJyZW50VGVzdE5h
bWUgKyAiOiAiICsgbXNnKTsKKyAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwi
PkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKF9jdXJyZW50VGVzdE5hbWUpICsgIjogIiArIGVz
Y2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdG
QUlMICcgKyBtc2cpOworICAgIF9mbHVzaEJ1ZmZlcmVkTG9nc1RvQ29uc29sZSgpOworICAgIGlm
IChleHRocm93KSB7CisgICAgICAgIF9jdXJyZW50VGVzdE5hbWUgPSAiIjsgLy9SZW1lbWJlcmlu
ZyB0byBzZXQgdGhlIG5hbWUgb2YgY3VycmVudCB0ZXN0Y2FzZSB0byBlbXB0eSBzdHJpbmcuCisg
ICAgICAgIHRocm93IG5ldyBUZXN0RmFpbGVkRXhjZXB0aW9uKG1zZyk7CisgICAgfQorfQorCitm
dW5jdGlvbiBhcmVBcnJheXNFcXVhbChfYSwgX2IpCit7CisgICAgdHJ5IHsKKyAgICAgICAgaWYg
KF9hLmxlbmd0aCAhPT0gX2IubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IF9hLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYg
KF9hW2ldICE9PSBfYltpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworZnVuY3Rpb24gaXNNaW51c1plcm8obikKK3sKKyAgICAvLyB0aGUgb25seSB3YXkg
dG8gdGVsbCAwIGZyb20gLTAgaW4gSlMgaXMgdGhlIGZhY3QgdGhhdCAxLy0wIGlzCisgICAgLy8g
LUluZmluaXR5IGluc3RlYWQgb2YgSW5maW5pdHkKKyAgICByZXR1cm4gbiA9PT0gMCAmJiAxL24g
PCAwOworfQorCitmdW5jdGlvbiBpc1Jlc3VsdENvcnJlY3QoX2FjdHVhbCwgX2V4cGVjdGVkKQor
eworICAgIGlmIChfZXhwZWN0ZWQgPT09IDApCisgICAgICAgIHJldHVybiBfYWN0dWFsID09PSBf
ZXhwZWN0ZWQgJiYgKDEvX2FjdHVhbCkgPT09ICgxL19leHBlY3RlZCk7CisgICAgaWYgKF9hY3R1
YWwgPT09IF9leHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVvZihf
ZXhwZWN0ZWQpID09ICJudW1iZXIiICYmIGlzTmFOKF9leHBlY3RlZCkpCisgICAgICAgIHJldHVy
biB0eXBlb2YoX2FjdHVhbCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CisgICAgaWYg
KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChfZXhwZWN0ZWQpID09IE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChbXSkpCisgICAgICAgIHJldHVybiBhcmVBcnJheXNFcXVhbChf
YWN0dWFsLCBfZXhwZWN0ZWQpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gc3Ry
aW5naWZ5KHYpCit7CisgICAgaWYgKHYgPT09IDAgJiYgMS92IDwgMCkKKyAgICAgICAgcmV0dXJu
ICItMCI7CisgICAgZWxzZSByZXR1cm4gIiIgKyB2OworfQorCitmdW5jdGlvbiBldmFsQW5kTG9n
KF9hKQoreworICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciKQorICAgIGRlYnVnKCJXQVJOOiB0
cnlBbmRMb2coKSBleHBlY3RzIGEgc3RyaW5nIGFyZ3VtZW50Iik7CisKKyAgLy8gTG9nIGZpcnN0
IGluIGNhc2UgdGhpbmdzIGdvIGhvcnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1c2VzIGEgc3luYyBl
dmVudC4KKyAgZGVidWcoX2EpOworCisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2
YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhj
ZXB0aW9uICIgKyBlKTsKKyAgfQorICByZXR1cm4gX2F2OworfQorCitmdW5jdGlvbiBzaG91bGRC
ZVN0cmluZyhldmFsYWJsZSwgZXhwZWN0ZWQpIHsKKyAgICBjb25zdCB2YWwgPSBldmFsKGV2YWxh
YmxlKTsKKyAgICBjb25zdCB0ZXh0ID0gZXZhbGFibGUgKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0
ZWQgKyAiLiI7CisgICAgaWYgKHZhbCA9PSBleHBlY3RlZCkgeworICAgICAgICB0ZXN0UGFzc2Vk
KHRleHQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQodGV4dCArICIgKHdhcyAi
ICsgdmFsICsgIikiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVp
ZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFy
Z3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgewor
ICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2Vw
dGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNl
cHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4g
VGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKGlzUmVzdWx0Q29y
cmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHlw
ZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBiZSAiICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIgKG9mIHR5
cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBl
b2YgX2F2ICsgIikuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBfYiwgcXVpZXQp
Cit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmlu
ZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5nIGFy
Z3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgewor
ICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2Vw
dGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNl
cHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiAr
ICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICghaXNSZXN1
bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiIp
OworfQorCitmdW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7
IH0KK2Z1bmN0aW9uIHNob3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9
CitmdW5jdGlvbiBzaG91bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9CitmdW5j
dGlvbiBzaG91bGRCZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KKworZnVuY3Rp
b24gc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGEsIGIpCit7CisgIHZhciB1bmV2YWxlZFN0cmluZyA9
ICciJyArIGIucmVwbGFjZSgvIi9nLCAiXCIiKSArICciJzsKKyAgc2hvdWxkQmUoYSwgdW5ldmFs
ZWRTdHJpbmcpOworfQorCitmdW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgLy8gQSBnZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRvci4gICdhY3R1YWwnIHNob3Vs
ZCBiZSBhIHN0cmluZyB0byBiZQorICAvLyBldmFsdWF0ZWQsIGFzIGZvciBzaG91bGRCZSgpLiAn
ZXhwZWN0ZWQnIG1heSBiZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQorICAvLyB1c2VkIHdpdGhvdXQg
YmVpbmcgZXZhbCdlZC4KKyAgaWYgKGV4cGVjdGVkID09IG51bGwpIHsKKyAgICAvLyBEbyB0aGlz
IGJlZm9yZSB0aGUgb2JqZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlwZSAnb2JqZWN0Jy4K
KyAgICBzaG91bGRCZU51bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQg
PT0gInVuZGVmaW5lZCIpIHsKKyAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1YWwpOworICB9IGVs
c2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7CisgICAgLy8gQWxsIHRoaXMg
ZnVzcyBpcyB0byBhdm9pZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5nIGZyb20gc2hvdWxkQmUoKS4K
KyAgICB0cnkgeworICAgICAgdmFyIGFjdHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgIHRlc3RGYWlsZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6
IFRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3Vs
ZEJlKCInIiArIGFjdHVhbFZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIici
LAorICAgICAgICAgICAgICInIiArIGV4cGVjdGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywg
IiIpICsgIiciKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsK
KyAgICBzaG91bGRCZVRydWUoYWN0dWFsICsgIiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKKyAg
fSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gInN0cmluZyIpIHsKKyAgICBzaG91bGRCZShh
Y3R1YWwsIGV4cGVjdGVkKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xl
YW4iKSB7CisgICAgc2hvdWxkQmUoInR5cGVvZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7Cisg
ICAgaWYgKGV4cGVjdGVkKQorICAgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCk7CisgICAgZWxzZQor
ICAgICAgc2hvdWxkQmVGYWxzZShhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3Rl
ZCA9PSAibnVtYmVyIikgeworICAgIHNob3VsZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVk
KSk7CisgIH0gZWxzZSB7CisgICAgZGVidWcoZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAi
ICsgdHlwZW9mIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBl
Y3RlZC50b1N0cmluZygpICsgIiciKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZU5vblpl
cm8oX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9h
diA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0K
KworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24t
emVyby4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0g
MCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24temVyby4iKTsKKyAgZWxzZQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gV2FzICIgKyBfYXYpOworfQorCitm
dW5jdGlvbiBzaG91bGRCZU5vbk51bGwoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBf
YXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAg
IGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24p
OworICBlbHNlIGlmIChfYXYgIT0gbnVsbCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24t
bnVsbC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVs
bC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKK3sK
KyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChf
YSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChl
eGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhy
ZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1
bmRlZmluZWQiKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKKyAgZWxz
ZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVEZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9u
OworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAo
ZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0
ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBl
eGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT09IHVuZGVmaW5lZCkKKyAgICB0ZXN0UGFzc2Vk
KF9hICsgIiBpcyBkZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlIGRlZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVMZXNz
VGhhbk9yRXF1YWwoX2EsIF9iKSB7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0
eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUxlc3NU
aGFuT3JFcXVhbCBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRp
b247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBf
YnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSA8PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2Vw
dGlvbik7CisgICAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPiBf
YnYpCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBX
YXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIDw9ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKF9hLCBfYikgeworICAgIGlmICh0eXBlb2YgX2Eg
IT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FS
Tjogc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7
CisKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAg
X2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBl
OworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQor
ICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcg
ZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVu
ZGVmaW5lZCIgfHwgX2F2IDwgX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgPj0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2
ICsgIikuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsg
X2IpOworfQorCitmdW5jdGlvbiBleHBlY3RUcnVlKHYsIG1zZykgeworICBpZiAodikgeworICAg
IHRlc3RQYXNzZWQobXNnKTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKG1zZyk7CisgIH0K
K30KKworZnVuY3Rpb24gbWF4QXJyYXlEaWZmKGEsIGIpIHsKKyAgICBpZiAoYS5sZW5ndGggIT0g
Yi5sZW5ndGgpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYSBhbmQgYiBoYXZlIGRpZmZlcmVu
dCBsZW5ndGhzOiAke2EubGVuZ3RofSB2cyAke2IubGVuZ3RofWApOworCisgICAgbGV0IGRpZmYg
PSAwOworICAgIGZvciAoY29uc3QgaSBpbiBhKSB7CisgICAgICAgIGRpZmYgPSBNYXRoLm1heChk
aWZmLCBNYXRoLmFicyhhW2ldIC0gYltpXSkpOworICAgIH0KKyAgICByZXR1cm4gZGlmZjsKK30K
KworZnVuY3Rpb24gZXhwZWN0QXJyYXkod2FzLCBleHBlY3RlZCwgbWF4RGlmZj0wKSB7CisgICAg
Y29uc3QgZGlmZiA9IG1heEFycmF5RGlmZihleHBlY3RlZCwgd2FzKTsKKyAgICBsZXQgc3RyID0g
YEV4cGVjdGVkIFske2V4cGVjdGVkLnRvU3RyaW5nKCl9XWA7CisgICAgbGV0IGZuID0gdGVzdFBh
c3NlZDsKKyAgICBpZiAobWF4RGlmZikgeworICAgICAgICBzdHIgKz0gJyArLy0gJyArIG1heERp
ZmY7CisgICAgfQorICAgIGlmIChkaWZmID4gbWF4RGlmZikgeworICAgICAgICBmbiA9IHRlc3RG
YWlsZWQ7CisgICAgICAgIHN0ciArPSBgLCB3YXMgWyR7d2FzLnRvU3RyaW5nKCl9XWA7CisgICAg
fQorICAgIGZuKHN0cik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSkKK3sKKyAg
dmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7
CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIHZhciBfZXY7
CisgIGlmIChfZSkKKyAgICAgIF9ldiA9ICBldmFsKF9lKTsKKworICBpZiAoZXhjZXB0aW9uKSB7
CisgICAgaWYgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0gX2V2KQor
ICAgICAgdGVzdFBhc3NlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAi
LiIpOworICAgIGVsc2UKKyAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsg
KHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRo
cmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgfSBlbHNlIGlmICh0eXBlb2Yg
X2F2ID09ICJ1bmRlZmluZWQiKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAi
ICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIu
IFdhcyB1bmRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
dGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9l
dikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdFRocm93
KGV2YWxTdHIsIGRlc2MpIHsKKyAgZGVzYyA9IGRlc2MgfHwgYFxgJHtldmFsU3RyfVxgYDsKKyAg
dHJ5IHsKKyAgICBldmFsKGV2YWxTdHIpOworICAgIHRlc3RQYXNzZWQoYCR7ZGVzY30gc2hvdWxk
IG5vdCB0aHJvdy5gKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYCR7ZGVzY30g
c2hvdWxkIG5vdCB0aHJvdywgYnV0IHRocmV3IGV4Y2VwdGlvbiAke2V9LmApOworICB9Cit9CisK
KworZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkgeworICAgIHZhciBleGNlcHRpb247
CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorCisgICAgdmFyIF90
eXBldiA9IGV2YWwoX3R5cGUpOworCisgICAgaWYoX3R5cGV2ID09PSBOdW1iZXIpeworICAgICAg
ICBpZihfYXYgaW5zdGFuY2VvZiBOdW1iZXIpeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSAr
ICIgaXMgYW4gaW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBp
Zih0eXBlb2YoX2F2KSA9PT0gJ251bWJlcicpeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSAr
ICIgaXMgYW4gaW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZXsK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBOdW1i
ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlw
ZXYpIHsKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgIiArIF90
eXBlKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4g
aW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgICB9Cit9CisKKy8qKgorICogU2hvd3MgYSBtZXNz
YWdlIGluIGNhc2UgZXhwcmVzc2lvbiB0ZXN0IGZhaWxzLgorICogQHBhcmFtIHtib29sZWFufSBl
eHAKKyAqIEBwYXJhbSB7c3RyYWluZ30gbWVzc2FnZQorICovCitmdW5jdGlvbiBjaGVja01lc3Nh
Z2UoZXhwLCBtZXNzYWdlKSB7CisgICAgaWYgKCAhZXhwICkKKyAgICAgICAgX2FkZFNwYW4oJzxz
cGFuPjxzcGFuIGNsYXNzPSJ3YXJuIj5XQVJOSU5HPC9zcGFuPiAnICsgZXNjYXBlSFRNTChfY3Vy
cmVudFRlc3ROYW1lKSArICI6ICIgKyBlc2NhcGVIVE1MKG1lc3NhZ2UpICsgJzwvc3Bhbj4nKTsK
K30KKworZnVuY3Rpb24gYXNzZXJ0TXNnKGFzc2VydGlvbiwgbXNnKSB7CisgICAgaWYgKGFzc2Vy
dGlvbikgeworICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
dGVzdEZhaWxlZChtc2cpOworICAgIH0KK30KKworLyoqCisgKiBWYXJpYXRpb24gb2YgdGhlIGFz
c2VydE1zZyBmdW5jdGlvbiwgd2l0aCB0aGUgb3B0aW9uIHRvIG5vdCBzaG93IChhbmQgdGh1cyBu
b3QgY291bnQpIHRoZSB0ZXN0J3MgcGFzcyByZXN1bHQsCisgKiBhbmQgdGhyb3cgb3Igbm90IGEg
VGVzdEZhaWxlZEV4Y2VwdGlvbiBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0ge2Jvb2xl
YW59IGFzc2VydGlvbiBJZiB0aGlzIGlzIHRydWUsIG1lYW5zIHN1Y2Nlc3MsIGVsc2UgZmFpbHVy
ZS4KKyAqIEBwYXJhbSB7P3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGJlIHNob3duIGluIHRo
ZSByZXN1bHQuCisgKiBAcGFyYW0ge2Jvb2xlYW59IHZlcmJvc2UgSW4gY2FzZSBvZiBzdWNjZXNz
LCBkZXRlcm1pbmVzIGlmIHRoZSB0ZXN0IHdpbGwgc2hvdyBpdCdzIHJlc3VsdCBhbmQgY291bnQg
aW4gdGhlIHJlc3VsdHMuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGV4dGhyb3cgSW4gY2FzZSBvZiBm
YWlsdXJlLCBkZXRlcm1pbmVzIGlmIHRoZSBmdW5jdGlvbiB3aWxsIHRocm93IGEgVGVzdEZhaWxl
ZEV4Y2VwdGlvbi4KKyAqLworZnVuY3Rpb24gYXNzZXJ0TXNnT3B0aW9ucyhhc3NlcnRpb24sIG1z
ZywgdmVyYm9zZSwgZXh0aHJvdykgeworICAgIGlmIChhc3NlcnRpb24pIHsKKyAgICAgICAgdGVz
dFBhc3NlZE9wdGlvbnMobXNnLCB2ZXJib3NlKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0
RmFpbGVkT3B0aW9ucyhtc2csIGV4dGhyb3cpOworICAgIH0KK30KKworCitmdW5jdGlvbiB3ZWJn
bEhhcm5lc3NDb2xsZWN0R2FyYmFnZSgpIHsKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikg
eworICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmICh3aW5kb3cub3BlcmEgJiYgd2luZG93Lm9wZXJhLmNvbGxlY3Qp
IHsKKyAgICAgICAgd2luZG93Lm9wZXJhLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5RdWVyeUludGVyZmFjZShDb21wb25lbnRz
LmludGVyZmFjZXMubnNJSW50ZXJmYWNlUmVxdWVzdG9yKQorICAgICAgICAgICAgICAuZ2V0SW50
ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lET01XaW5kb3dVdGlscykKKyAgICAgICAg
ICAgICAgLmdhcmJhZ2VDb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGNhdGNoKGUp
IHt9CisKKyAgICBpZiAod2luZG93LmdjKSB7CisgICAgICAgIHdpbmRvdy5nYygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5Db2xsZWN0R2FyYmFnZSkgeworICAg
ICAgICBDb2xsZWN0R2FyYmFnZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
V2ViS2l0J3MgTWluaUJyb3dzZXIuCisgICAgaWYgKHdpbmRvdy4kdm0pIHsKKyAgICAgICAgd2lu
ZG93LiR2bS5nYygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2NS
ZWMobikgeworICAgICAgICBpZiAobiA8IDEpCisgICAgICAgICAgICByZXR1cm4ge307CisgICAg
ICAgIHZhciB0ZW1wID0ge2k6ICJhYiIgKyBpICsgKGkgLyAxMDAwMDApfTsKKyAgICAgICAgdGVt
cCArPSAiZm9vIjsKKyAgICAgICAgZ2NSZWMobi0xKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgIGdjUmVjKDEwKTsKK30KKworZnVuY3Rpb24gZmlu
aXNoVGVzdCgpIHsKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgdmFyIGVwaWxvZ3Vl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgIHZhciBiYXNlUGF0aCA9ICIi
OworICB2YXIgZXhwZWN0ZWRCYXNlID0gImpzLXRlc3QtcHJlLmpzIjsKKyAgdmFyIHNjcmlwdHMg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CisgIGZvciAodmFyIHNj
cmlwdCwgaSA9IDA7IHNjcmlwdCA9IHNjcmlwdHNbaV07IGkrKykgeworICAgIHZhciBzcmMgPSBz
Y3JpcHQuc3JjOworICAgIHZhciBsID0gc3JjLmxlbmd0aDsKKyAgICBpZiAoc3JjLnN1YnN0cihs
IC0gZXhwZWN0ZWRCYXNlLmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7CisgICAgICBiYXNlUGF0
aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOworICAgICAgYnJlYWs7
CisgICAgfQorICB9CisgIGVwaWxvZ3VlLnNyYyA9IGJhc2VQYXRoICsgImpzLXRlc3QtcG9zdC5q
cyI7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBpbG9ndWUpOworfQorCisvLy8gUHJl
ZmVyIGBjYWxsKCgpID0+IHsgLi4uIH0pYCB0byBgKCgpID0+IHsgLi4uIH0pKClgXAorLy8vIFRo
aXMgd2F5LCBpdCdzIGNsZWFyIHVwLWZyb250IHRoYXQgd2UncmUgY2FsbGluZyBub3QganVzdCBk
ZWZpbmluZy4KK2Z1bmN0aW9uIGNhbGwoZm4pIHsKKyAgICByZXR1cm4gZm4oKTsKK30KKworLy8v
IGBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoMykpYCA9PiAwLCAxLCAyCisvLy8gRG9uJ3QgdXNlIGBm
b3IuLi5pbiByYW5nZShuKWAsIGl0IHdpbGwgbm90IHdvcmsuCitmdW5jdGlvbiogcmFuZ2Uobikg
eworICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgeworICAgIHlpZWxkIGk7CisgIH0KK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YWZmYTEwODIzMDQ0YjE2NDkwZTBlMzdiZjhhYzJiM2NjOTFjNzNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzCkBAIC0wLDAgKzEsMzU1MiBA
QAorLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwordmFyIFdlYkdMVGVz
dFV0aWxzID0gKGZ1bmN0aW9uKCkgeworInVzZSBzdHJpY3QiOworCisvKioKKyAqIFdyYXBwZWQg
bG9nZ2luZyBmdW5jdGlvbi4KKyAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgVGhlIG1lc3NhZ2UgdG8g
bG9nLgorICovCit2YXIgbG9nID0gZnVuY3Rpb24obXNnKSB7CisgIGJ1ZmZlcmVkTG9nVG9Db25z
b2xlKG1zZyk7Cit9OworCisvKioKKyAqIFdyYXBwZWQgbG9nZ2luZyBmdW5jdGlvbi4KKyAqIEBw
YXJhbSB7c3RyaW5nfSBtc2cgVGhlIG1lc3NhZ2UgdG8gbG9nLgorICovCit2YXIgZXJyb3IgPSBm
dW5jdGlvbihtc2cpIHsKKyAgLy8gRm9yIHRoZSB0aW1lIGJlaW5nLCBkaXZlcnRpbmcgdGhpcyB0
byB3aW5kb3cuY29uc29sZS5sb2cgcmF0aGVyCisgIC8vIHRoYW4gd2luZG93LmNvbnNvbGUuZXJy
b3IuIElmIGFueW9uZSBjYXJlcyBlbm91Z2ggdGhleSBjYW4KKyAgLy8gZ2VuZXJhbGl6ZSB0aGUg
bWVjaGFuaXNtIGluIGpzLXRlc3QtcHJlLmpzLgorICBsb2cobXNnKTsKK307CisKKy8qKgorICog
VHVybiBvZmYgYWxsIGxvZ2dpbmcuCisgKi8KK3ZhciBsb2dnaW5nT2ZmID0gZnVuY3Rpb24oKSB7
CisgIGxvZyA9IGZ1bmN0aW9uKCkge307CisgIGVycm9yID0gZnVuY3Rpb24oKSB7fTsKK307CisK
K2NvbnN0IEVOVU1fTkFNRV9SRUdFWCA9IFJlZ0V4cCgnW0EtWl1bQS1aMC05X10qJyk7Citjb25z
dCBFTlVNX05BTUVfQllfVkFMVUUgPSB7fTsKK2NvbnN0IEVOVU1fTkFNRV9QUk9UT1RZUEVTID0g
bmV3IE1hcCgpOworCisvKioKKyAqIENvbnZlcnRzIGEgV2ViR0wgZW51bSB0byBhIHN0cmluZy4K
KyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIGVudW0gdmFsdWUu
CisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBlbnVtIGFzIGEgc3RyaW5nLgorICovCit2YXIgZ2xF
bnVtVG9TdHJpbmcgPSBmdW5jdGlvbihnbE9yRXh0LCB2YWx1ZSkgeworICBpZiAodmFsdWUgPT09
IHVuZGVmaW5lZCkKKyAgICB0aHJvdyBuZXcgRXJyb3IoJ2dsRW51bVRvU3RyaW5nOiBgdmFsdWVg
IG11c3Qgbm90IGJlIHVuZGVmaW5lZCcpOworCisgIGNvbnN0IHByb3RvID0gZ2xPckV4dC5fX3By
b3RvX187CisgIGlmICghRU5VTV9OQU1FX1BST1RPVFlQRVMuaGFzKHByb3RvKSkgeworICAgIEVO
VU1fTkFNRV9QUk9UT1RZUEVTLnNldChwcm90bywgdHJ1ZSk7CisKKyAgICBmb3IgKGNvbnN0IGsg
aW4gcHJvdG8pIHsKKyAgICAgIGlmICghRU5VTV9OQU1FX1JFR0VYLnRlc3QoaykpIGNvbnRpbnVl
OworCisgICAgICBjb25zdCB2ID0gZ2xPckV4dFtrXTsKKyAgICAgIGlmIChFTlVNX05BTUVfQllf
VkFMVUVbdl0gPT09IHVuZGVmaW5lZCkgeworICAgICAgICBFTlVNX05BTUVfQllfVkFMVUVbdl0g
PSBrOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgRU5VTV9OQU1FX0JZX1ZBTFVFW3ZdICs9ICcv
JyArIGs7CisgICAgICB9CisgICAgfQorICB9CisKKyAgY29uc3Qga2V5ID0gRU5VTV9OQU1FX0JZ
X1ZBTFVFW3ZhbHVlXTsKKyAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSByZXR1cm4ga2V5OworCisg
IHJldHVybiAiMHgiICsgTnVtYmVyKHZhbHVlKS50b1N0cmluZygxNik7Cit9OworCit2YXIgbGFz
dEVycm9yID0gIiI7CisKKy8qKgorICogUmV0dXJucyB0aGUgbGFzdCBjb21waWxlci9saW5rZXIg
ZXJyb3IuCisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBsYXN0IGNvbXBpbGVyL2xpbmtlciBlcnJv
ci4KKyAqLwordmFyIGdldExhc3RFcnJvciA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4gbGFzdEVy
cm9yOworfTsKKworLyoqCisgKiBXaGV0aGVyIGEgaGF5c3RhY2sgZW5kcyB3aXRoIGEgbmVlZGxl
LgorICogQHBhcmFtIHtzdHJpbmd9IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKKyAqIEBwYXJh
bSB7c3RyaW5nfSBuZWVkbGUgU3RyaW5nIHRvIHNlYXJjaCBmb3IuCisgKiBAcGFyYW0ge2Jvb2xl
YW59IFRydWUgaWYgaGF5c3RhY2sgZW5kcyB3aXRoIG5lZWRsZS4KKyAqLwordmFyIGVuZHNXaXRo
ID0gZnVuY3Rpb24oaGF5c3RhY2ssIG5lZWRsZSkgeworICByZXR1cm4gaGF5c3RhY2suc3Vic3Ry
KGhheXN0YWNrLmxlbmd0aCAtIG5lZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Cit9OworCisvKioK
KyAqIFdoZXRoZXIgYSBoYXlzdGFjayBzdGFydHMgd2l0aCBhIG5lZWRsZS4KKyAqIEBwYXJhbSB7
c3RyaW5nfSBoYXlzdGFjayBTdHJpbmcgdG8gc2VhcmNoCisgKiBAcGFyYW0ge3N0cmluZ30gbmVl
ZGxlIFN0cmluZyB0byBzZWFyY2ggZm9yLgorICogQHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhh
eXN0YWNrIHN0YXJ0cyB3aXRoIG5lZWRsZS4KKyAqLwordmFyIHN0YXJ0c1dpdGggPSBmdW5jdGlv
bihoYXlzdGFjaywgbmVlZGxlKSB7CisgIHJldHVybiBoYXlzdGFjay5zdWJzdHIoMCwgbmVlZGxl
Lmxlbmd0aCkgPT09IG5lZWRsZTsKK307CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBh
IHNpbmdsZSB0ZXh0dXJlLgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVRleHR1
cmVWZXJ0ZXhTaGFkZXIgPSBbCisgICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ2F0
dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisg
ICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAn
ICAgIHRleENvb3JkID0gdGV4Q29vcmQwOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisg
KiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlwZSB7c3RyaW5n
fQorICovCit2YXIgc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlckVTU0wzMDAgPSBbCisgICcjdmVy
c2lvbiAzMDAgZXMnLAorICAnbGF5b3V0KGxvY2F0aW9uPTApIGluIHZlYzQgdlBvc2l0aW9uOycs
CisgICdsYXlvdXQobG9jYXRpb249MSkgaW4gdmVjMiB0ZXhDb29yZDA7JywKKyAgJ291dCB2ZWMy
IHRleENvb3JkOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQ
b3NpdGlvbjsnLAorICAnICAgIHRleENvb3JkID0gdGV4Q29vcmQwOycsCisgICd9J10uam9pbign
XG4nKTsKKworLyoqCisgKiBBIGZyYWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4K
KyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIg
PSBbCisgICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSBzYW1wbGVyMkQg
dGV4OycsCisgICd2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAor
ICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOycsCisgICd9
J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIGZyYWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUg
dGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVUZXh0dXJlRnJhZ21l
bnRTaGFkZXJFU1NMMzAwID0gWworICAnI3ZlcnNpb24gMzAwIGVzJywKKyAgJ3ByZWNpc2lvbiBo
aWdocCBmbG9hdDsnLAorICAndW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OycsCisgICdpbiB2
ZWMyIHRleENvb3JkOycsCisgICdvdXQgdmVjNCBvdXRfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigp
IHsnLAorICAnICAgIG91dF9jb2xvciA9IHRleHR1cmUodGV4LCB0ZXhDb29yZCk7JywKKyAgJ30n
XS5qb2luKCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIHNpbmdsZSB0
ZXh0dXJlIHdpdGggaGlnaCBwcmVjaXNpb24uCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIg
c2ltcGxlSGlnaFByZWNpc2lvblRleHR1cmVGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lv
biBoaWdocCBmbG9hdDsnLAorICAndW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OycsCisgICd2
YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0Zy
YWdEYXRhWzBdID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOycsCisgICd9J10uam9pbignXG4n
KTsKKworLyoqCisgKiBBIGZyYWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgY3ViZSBtYXAgdGV4
dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVDdWJlTWFwVGV4dHVyZUZy
YWdtZW50U2hhZGVyID0gWworICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAgJ3VuaWZv
cm0gc2FtcGxlckN1YmUgdGV4OycsCisgICd1bmlmb3JtIGhpZ2hwIGludCBmYWNlOycsCisgICd2
YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAvLyBUcmFuc2Zv
cm0gWzAsIDFdIC0+IFstMSwgMV0KKyAgJyAgICB2ZWMyIHRleEMyID0gKHRleENvb3JkICogMi4p
IC0gMS47JywKKyAgLy8gVHJhbnNmb3JtIDJkIHRleCBjb29yZC4gdG8gZWFjaCBmYWNlIG9mIFRF
WFRVUkVfQ1VCRV9NQVAgY29vcmQuCisgICcgICAgdmVjMyB0ZXhDdWJlID0gdmVjMygwLiwgMC4s
IDAuKTsnLAorICAnICAgIGlmIChmYWNlID09IDM0MDY5KSB7JywgICAgICAgICAvLyBURVhUVVJF
X0NVQkVfTUFQX1BPU0lUSVZFX1gKKyAgJyAgICAgICAgdGV4Q3ViZSA9IHZlYzMoMS4sIC10ZXhD
Mi55LCAtdGV4QzIueCk7JywKKyAgJyAgICB9IGVsc2UgaWYgKGZhY2UgPT0gMzQwNzApIHsnLCAg
Ly8gVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YCisgICcgICAgICAgIHRleEN1YmUgPSB2ZWMz
KC0xLiwgLXRleEMyLnksIHRleEMyLngpOycsCisgICcgICAgfSBlbHNlIGlmIChmYWNlID09IDM0
MDcxKSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWQorICAnICAgICAgICB0ZXhD
dWJlID0gdmVjMyh0ZXhDMi54LCAxLiwgdGV4QzIueSk7JywKKyAgJyAgICB9IGVsc2UgaWYgKGZh
Y2UgPT0gMzQwNzIpIHsnLCAgLy8gVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZCisgICcgICAg
ICAgIHRleEN1YmUgPSB2ZWMzKHRleEMyLngsIC0xLiwgLXRleEMyLnkpOycsCisgICcgICAgfSBl
bHNlIGlmIChmYWNlID09IDM0MDczKSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVf
WgorICAnICAgICAgICB0ZXhDdWJlID0gdmVjMyh0ZXhDMi54LCAtdGV4QzIueSwgMS4pOycsCisg
ICcgICAgfSBlbHNlIGlmIChmYWNlID09IDM0MDc0KSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWgorICAnICAgICAgICB0ZXhDdWJlID0gdmVjMygtdGV4QzIueCwgLXRleEMyLnks
IC0xLik7JywKKyAgJyAgICB9JywKKyAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHRleHR1cmVDdWJl
KHRleCwgdGV4Q3ViZSk7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgdmVydGV4
IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3Zh
ciBub1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlciA9IFsKKyAgJ2F0dHJpYnV0ZSB2ZWM0IHZQ
b3NpdGlvbjsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisgICd2b2lkIG1haW4oKSB7
JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnICAgIHRleENvb3JkID0g
dlBvc2l0aW9uLnh5ICogMC41ICsgMC41OycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisg
KiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgdW5pZm9ybSBjb2xvci4KKyAqIEB0eXBlIHtzdHJpbmd9
CisgKi8KK3ZhciBzaW1wbGVWZXJ0ZXhTaGFkZXIgPSBbCisgICdhdHRyaWJ1dGUgdmVjNCB2UG9z
aXRpb247JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0
aW9uOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIHZlcnRleCBzaGFkZXIgZm9y
IGEgdW5pZm9ybSBjb2xvci4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVWZXJ0
ZXhTaGFkZXJFU1NMMzAwID0gWworICAnI3ZlcnNpb24gMzAwIGVzJywKKyAgJ2luIHZlYzQgdlBv
c2l0aW9uOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3Np
dGlvbjsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFkZXIg
Zm9yIGEgdW5pZm9ybSBjb2xvci4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVD
b2xvckZyYWdtZW50U2hhZGVyID0gWworICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAg
J3VuaWZvcm0gdmVjNCB1X2NvbG9yOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9G
cmFnRGF0YVswXSA9IHVfY29sb3I7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEg
ZnJhZ21lbnQgc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCisgKiBAdHlwZSB7c3RyaW5nfQor
ICovCit2YXIgc2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlckVTU0wzMDAgPSBbCisgICcjdmVyc2lv
biAzMDAgZXMnLAorICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAgJ291dCB2ZWM0IG91
dF9jb2xvcjsnLAorICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsn
LAorICAnICAgIG91dF9jb2xvciA9IHVfY29sb3I7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisv
KioKKyAqIEEgdmVydGV4IHNoYWRlciBmb3IgdmVydGV4IGNvbG9ycy4KKyAqIEB0eXBlIHtzdHJp
bmd9CisgKi8KK3ZhciBzaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciA9IFsKKyAgJ2F0dHJp
YnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAorICAnYXR0cmlidXRlIHZlYzQgYV9jb2xvcjsnLAorICAn
dmFyeWluZyB2ZWM0IHZfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX1Bv
c2l0aW9uID0gdlBvc2l0aW9uOycsCisgICcgICAgdl9jb2xvciA9IGFfY29sb3I7JywKKyAgJ30n
XS5qb2luKCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciB2ZXJ0ZXggY29s
b3JzLgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVZlcnRleENvbG9yRnJhZ21l
bnRTaGFkZXIgPSBbCisgICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAorICAndmFyeWluZyB2
ZWM0IHZfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBd
ID0gdl9jb2xvcjsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQ3JlYXRlcyBhIHBy
b2dyYW0sIGF0dGFjaGVzIHNoYWRlcnMsIGJpbmRzIGF0dHJpYiBsb2NhdGlvbnMsIGxpbmtzIHRo
ZQorICogcHJvZ3JhbSBhbmQgY2FsbHMgdXNlUHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0geyFBcnJheS48IVdlYkdMU2hhZGVyfHN0cmluZz59IHNoYWRlcnMgVGhlIHNoYWRlcnMg
dG8KKyAqICAgICAgICBhdHRhY2gsIG9yIHRoZSBzb3VyY2UsIG9yIHRoZSBpZCBvZiBhIHNjcmlw
dCB0byBnZXQKKyAqICAgICAgICB0aGUgc291cmNlIGZyb20uCisgKiBAcGFyYW0geyFBcnJheS48
c3RyaW5nPn0gb3B0X2F0dHJpYnMgVGhlIGF0dHJpYnMgbmFtZXMuCisgKiBAcGFyYW0geyFBcnJh
eS48bnVtYmVyPn0gb3B0X2xvY2F0aW9ucyBUaGUgbG9jYXRpb25zIGZvciB0aGUgYXR0cmlicy4K
KyAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0byBsb2cgc2hhZGVy
IHNvdXJjZS4KKyAqLwordmFyIHNldHVwUHJvZ3JhbSA9IGZ1bmN0aW9uKAorICAgIGdsLCBzaGFk
ZXJzLCBvcHRfYXR0cmlicywgb3B0X2xvY2F0aW9ucywgb3B0X2xvZ1NoYWRlcnMpIHsKKyAgdmFy
IHJlYWxTaGFkZXJzID0gW107CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwor
ICB2YXIgc2hhZGVyQ291bnQgPSAwOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc2hhZGVycy5s
ZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgc2hhZGVyID0gc2hhZGVyc1tpaV07CisgICAgdmFyIHNo
YWRlclR5cGUgPSB1bmRlZmluZWQ7CisgICAgaWYgKHR5cGVvZiBzaGFkZXIgPT0gJ3N0cmluZycp
IHsKKyAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2hhZGVyKTsK
KyAgICAgIGlmIChlbGVtZW50KSB7CisgICAgICAgIGlmIChlbGVtZW50LnR5cGUgIT0gIngtc2hh
ZGVyL3gtdmVydGV4IiAmJiBlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQor
ICAgICAgICAgIHNoYWRlclR5cGUgPSBpaSA/IGdsLkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRF
WF9TSEFERVI7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBzaGFk
ZXIsIHNoYWRlclR5cGUsIHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRlcnMpOworICAgICAgfSBlbHNl
IGlmIChlbmRzV2l0aChzaGFkZXIsICIudmVydCIpKSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRT
aGFkZXJGcm9tRmlsZShnbCwgc2hhZGVyLCBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9w
dF9sb2dTaGFkZXJzKTsKKyAgICAgIH0gZWxzZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLmZyYWci
KSkgeworICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wu
RlJBR01FTlRfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzKTsKKyAgICAgIH0gZWxz
ZSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXIoZ2wsIHNoYWRlciwgaWkgPyBnbC5GUkFH
TUVOVF9TSEFERVIgOiBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJz
KTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG9wdF9sb2dTaGFkZXJzKSB7CisgICAgICB0aHJv
dyAnU2hhZGVyIHNvdXJjZSBsb2dnaW5nIHJlcXVlc3RlZCBidXQgbm8gc2hhZGVyIHNvdXJjZSBw
cm92aWRlZCc7CisgICAgfQorICAgIGlmIChzaGFkZXIpIHsKKyAgICAgICsrc2hhZGVyQ291bnQ7
CisgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVyKTsKKyAgICB9CisgIH0KKyAg
aWYgKHNoYWRlckNvdW50ICE9IDIpIHsKKyAgICBlcnJvcigiRXJyb3IgaW4gY29tcGlsaW5nIHNo
YWRlciIpOworICAgIHJldHVybiBudWxsOworICB9CisgIGlmIChvcHRfYXR0cmlicykgeworICAg
IGZvciAodmFyIGlpID0gMDsgaWkgPCBvcHRfYXR0cmlicy5sZW5ndGg7ICsraWkpIHsKKyAgICAg
IGdsLmJpbmRBdHRyaWJMb2NhdGlvbigKKyAgICAgICAgICBwcm9ncmFtLAorICAgICAgICAgIG9w
dF9sb2NhdGlvbnMgPyBvcHRfbG9jYXRpb25zW2lpXSA6IGlpLAorICAgICAgICAgIG9wdF9hdHRy
aWJzW2lpXSk7CisgICAgfQorICB9CisgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworCisgIC8v
IENoZWNrIHRoZSBsaW5rIHN0YXR1cworICB2YXIgbGlua2VkID0gZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyk7CisgIGlmICghbGlua2VkKSB7CisgICAgICAv
LyBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSBsaW5rCisgICAgICBsYXN0RXJyb3IgPSBn
bC5nZXRQcm9ncmFtSW5mb0xvZyAocHJvZ3JhbSk7CisgICAgICBlcnJvcigiRXJyb3IgaW4gcHJv
Z3JhbSBsaW5raW5nOiIgKyBsYXN0RXJyb3IpOworCisgICAgICBnbC5kZWxldGVQcm9ncmFtKHBy
b2dyYW0pOworICAgICAgcmV0dXJuIG51bGw7CisgIH0KKworICBnbC51c2VQcm9ncmFtKHByb2dy
YW0pOworICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0s
IGF0dGFjaGVzIHNoYWRlciwgc2V0cyB1cCB0cmFzbmZvcm0gZmVlZGJhY2sgdmFyeWluZ3MsCisg
KiBiaW5kcyBhdHRyaWIgbG9jYXRpb25zLCBsaW5rcyB0aGUgcHJvZ3JhbSBhbmQgY2FsbHMgdXNl
UHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48IVdlYkdMU2hhZGVy
fHN0cmluZz59IHNoYWRlcnMgVGhlIHNoYWRlcnMgdG8KKyAqICAgICAgICBhdHRhY2gsIG9yIHRo
ZSBzb3VyY2UsIG9yIHRoZSBpZCBvZiBhIHNjcmlwdCB0byBnZXQKKyAqICAgICAgICB0aGUgc291
cmNlIGZyb20uCisgKiBAcGFyYW0geyFBcnJheS48c3RyaW5nPn0gdmFyeWluZ3MgVGhlIHRyYW5z
Zm9ybSBmZWVkYmFjayB2YXJ5aW5nIG5hbWVzLgorICogQHBhcmFtIHtudW1iZXJ9IGJ1ZmZlck1v
ZGUgVGhlIG1vZGUgdXNlZCB0byBjYXB0dXJlIHRoZSB2YXJ5aW5nIHZhcmlhYmxlcy4KKyAqIEBw
YXJhbSB7IUFycmF5LjxzdHJpbmc+fSBvcHRfYXR0cmlicyBUaGUgYXR0cmlicyBuYW1lcy4KKyAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfbG9jYXRpb25zIFRoZSBsb2NhdGlvbnMgZm9y
IHRoZSBhdHRyaWJzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9nU2hhZGVycyBXaGV0aGVy
IHRvIGxvZyBzaGFkZXIgc291cmNlLgorICovCit2YXIgc2V0dXBUcmFuc2Zvcm1GZWVkYmFja1By
b2dyYW0gPSBmdW5jdGlvbigKKyAgICBnbCwgc2hhZGVycywgdmFyeWluZ3MsIGJ1ZmZlck1vZGUs
IG9wdF9hdHRyaWJzLCBvcHRfbG9jYXRpb25zLCBvcHRfbG9nU2hhZGVycywgb3B0X3NraXBDb21w
aWxlU3RhdHVzKSB7CisgIHZhciByZWFsU2hhZGVycyA9IFtdOworICB2YXIgcHJvZ3JhbSA9IGds
LmNyZWF0ZVByb2dyYW0oKTsKKyAgdmFyIHNoYWRlckNvdW50ID0gMDsKKyAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IHNoYWRlcnMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHNoYWRlciA9IHNoYWRl
cnNbaWldOworICAgIHZhciBzaGFkZXJUeXBlID0gdW5kZWZpbmVkOworICAgIGlmICh0eXBlb2Yg
c2hhZGVyID09ICdzdHJpbmcnKSB7CisgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKHNoYWRlcik7CisgICAgICBpZiAoZWxlbWVudCkgeworICAgICAgICBpZiAoZWxl
bWVudC50eXBlICE9ICJ4LXNoYWRlci94LXZlcnRleCIgJiYgZWxlbWVudC50eXBlICE9ICJ4LXNo
YWRlci94LWZyYWdtZW50IikKKyAgICAgICAgICBzaGFkZXJUeXBlID0gaWkgPyBnbC5GUkFHTUVO
VF9TSEFERVIgOiBnbC5WRVJURVhfU0hBREVSOworICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVy
RnJvbVNjcmlwdChnbCwgc2hhZGVyLCBzaGFkZXJUeXBlLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFk
ZXJzLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpOworICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChz
aGFkZXIsICIudmVydCIpKSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShn
bCwgc2hhZGVyLCBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzLCBv
cHRfc2tpcENvbXBpbGVTdGF0dXMpOworICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChzaGFkZXIs
ICIuZnJhZyIpKSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShnbCwgc2hh
ZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIsIHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRlcnMsIG9wdF9z
a2lwQ29tcGlsZVN0YXR1cyk7CisgICAgICB9IGVsc2UgeworICAgICAgICBzaGFkZXIgPSBsb2Fk
U2hhZGVyKGdsLCBzaGFkZXIsIGlpID8gZ2wuRlJBR01FTlRfU0hBREVSIDogZ2wuVkVSVEVYX1NI
QURFUiwgdW5kZWZpbmVkLCBvcHRfbG9nU2hhZGVycywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9w
dF9za2lwQ29tcGlsZVN0YXR1cyk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChvcHRfbG9nU2hh
ZGVycykgeworICAgICAgdGhyb3cgJ1NoYWRlciBzb3VyY2UgbG9nZ2luZyByZXF1ZXN0ZWQgYnV0
IG5vIHNoYWRlciBzb3VyY2UgcHJvdmlkZWQnOworICAgIH0KKyAgICBpZiAoc2hhZGVyKSB7Cisg
ICAgICArK3NoYWRlckNvdW50OworICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRl
cik7CisgICAgfQorICB9CisgIGlmIChzaGFkZXJDb3VudCAhPSAyKSB7CisgICAgZXJyb3IoIkVy
cm9yIGluIGNvbXBpbGluZyBzaGFkZXIiKTsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIGlm
IChvcHRfYXR0cmlicykgeworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBvcHRfYXR0cmlicy5s
ZW5ndGg7ICsraWkpIHsKKyAgICAgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbigKKyAgICAgICAgICBw
cm9ncmFtLAorICAgICAgICAgIG9wdF9sb2NhdGlvbnMgPyBvcHRfbG9jYXRpb25zW2lpXSA6IGlp
LAorICAgICAgICAgIG9wdF9hdHRyaWJzW2lpXSk7CisgICAgfQorICB9CisKKyAgZ2wudHJhbnNm
b3JtRmVlZGJhY2tWYXJ5aW5ncyhwcm9ncmFtLCB2YXJ5aW5ncywgYnVmZmVyTW9kZSk7CisKKyAg
Z2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisKKyAgLy8gQ2hlY2sgdGhlIGxpbmsgc3RhdHVzCisg
IHZhciBsaW5rZWQgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RB
VFVTKTsKKyAgaWYgKCFsaW5rZWQpIHsKKyAgICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdp
dGggdGhlIGxpbmsKKyAgICAgIGxhc3RFcnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChwcm9n
cmFtKTsKKyAgICAgIGVycm9yKCJFcnJvciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGxhc3RFcnJv
cik7CisKKyAgICAgIGdsLmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICByZXR1cm4gbnVs
bDsKKyAgfQorCisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOwor
fTsKKworLyoqCisgKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KKyAqIEBwYXJh
bSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0
byB1c2UuCisgKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cE5vVGV4Q29v
cmRUZXh0dXJlUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsKSB7CisgIHJldHVybiBzZXR1cFByb2dyYW0o
Z2wsCisgICAgICAgICAgICAgICAgICAgICAgW25vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVy
LCBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXJdLAorICAgICAgICAgICAgICAgICAgICAgIFsn
dlBvc2l0aW9uJ10sCisgICAgICAgICAgICAgICAgICAgICAgWzBdKTsKK307CisKKy8qKgorICog
Q3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHByb2dyYW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRl
cmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBh
cmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9y
IHBvc2l0aW9uLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBh
dHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRzLgorICogQHBhcmFtIHtzdHJpbmd9IG9w
dF9mcmFnbWVudFNoYWRlck92ZXJyaWRlIFRoZSBhbHRlcm5hdGl2ZSBmcmFnbWVudCBzaGFkZXIg
dG8gdXNlLgorICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBTaW1wbGVU
ZXh0dXJlUHJvZ3JhbSA9IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwg
b3B0X3RleGNvb3JkTG9jYXRpb24sIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlKSB7CisgIG9w
dF9wb3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgb3B0X3Rl
eGNvb3JkTG9jYXRpb24gPSBvcHRfdGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICBvcHRfZnJhZ21l
bnRTaGFkZXJPdmVycmlkZSA9IG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlIHx8IHNpbXBsZVRl
eHR1cmVGcmFnbWVudFNoYWRlcjsKKyAgcmV0dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAg
ICAgICAgICAgICAgICBbc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlciwgb3B0X2ZyYWdtZW50U2hh
ZGVyT3ZlcnJpZGVdLAorICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJywgJ3RleENv
b3JkMCddLAorICAgICAgICAgICAgICAgICAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0
X3RleGNvb3JkTG9jYXRpb25dKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0
dXJlIHByb2dyYW0gdXNpbmcgZ2xzbCB2ZXJzaW9uIDMwMC4KKyAqIEBwYXJhbSB7IVdlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBm
b3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhl
IGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBAcGFyYW0ge3N0cmluZ30g
b3B0X2ZyYWdtZW50U2hhZGVyT3ZlcnJpZGUgVGhlIGFsdGVybmF0aXZlIGZyYWdtZW50IHNoYWRl
ciB0byB1c2UuCisgKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBs
ZVRleHR1cmVQcm9ncmFtRVNTTDMwMCA9IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25M
b2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24sIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRl
KSB7CisgIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsK
KyAgb3B0X3RleGNvb3JkTG9jYXRpb24gPSBvcHRfdGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICBv
cHRfZnJhZ21lbnRTaGFkZXJPdmVycmlkZSA9IG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlIHx8
IHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlckVTU0wzMDA7CisgIHJldHVybiBzZXR1cFByb2dy
YW0oZ2wsCisgICAgICAgICAgICAgICAgICAgICAgW3NpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXJF
U1NMMzAwLCBvcHRfZnJhZ21lbnRTaGFkZXJPdmVycmlkZV0sCisgICAgICAgICAgICAgICAgICAg
ICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sCisgICAgICAgICAgICAgICAgICAgICAgW29w
dF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOworfTsKKworLyoqCisg
KiBDcmVhdGVzIGEgc2ltcGxlIGN1YmUgbWFwIHRleHR1cmUgcHJvZ3JhbS4KKyAqIEBwYXJhbSB7
IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1
c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBs
b2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9j
YXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBAcmV0dXJu
IHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZUN1YmVNYXBUZXh0dXJlUHJvZ3Jh
bSA9IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3Jk
TG9jYXRpb24pIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlv
biB8fCAwOworICBvcHRfdGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8
IDE7CisgIHJldHVybiBzZXR1cFByb2dyYW0oZ2wsCisgICAgICAgICAgICAgICAgICAgICAgW3Np
bXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIsIHNpbXBsZUN1YmVNYXBUZXh0dXJlRnJhZ21lbnRTaGFk
ZXJdLAorICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAor
ICAgICAgICAgICAgICAgICAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3Jk
TG9jYXRpb25dKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSB2ZXJ0ZXggY29sb3Ig
cHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9u
TG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251
bWJlcn0gb3B0X3ZlcnRleENvbG9yTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbgorICogICAg
ICAgIGZvciB2ZXJ0ZXggY29sb3JzLgorICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQorICovCit2
YXIgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclByb2dyYW0gPSBmdW5jdGlvbigKKyAgICBnbCwgb3B0
X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uKSB7CisgIG9wdF9wb3Np
dGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgb3B0X3ZlcnRleENv
bG9yTG9jYXRpb24gPSBvcHRfdmVydGV4Q29sb3JMb2NhdGlvbiB8fCAxOworICByZXR1cm4gc2V0
dXBQcm9ncmFtKGdsLAorICAgICAgICAgICAgICAgICAgICAgIFtzaW1wbGVWZXJ0ZXhDb2xvclZl
cnRleFNoYWRlciwgc2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlcl0sCisgICAgICAgICAg
ICAgICAgICAgICAgWyd2UG9zaXRpb24nLCAnYV9jb2xvciddLAorICAgICAgICAgICAgICAgICAg
ICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3ZlcnRleENvbG9yTG9jYXRpb25dKTsKK307
CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSBjb2xvciBwcm9ncmFtLgorICogQHBhcmFtIHsh
V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVz
ZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxv
Y2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAqLwordmFy
IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0
aW9uKSB7CisgIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwg
MDsKKyAgcmV0dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAgICAgICAgICAgICAgICBbc2lt
cGxlVmVydGV4U2hhZGVyLCBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyXSwKKyAgICAgICAgICAg
ICAgICAgICAgICBbJ3ZQb3NpdGlvbiddLAorICAgICAgICAgICAgICAgICAgICAgIFtvcHRfcG9z
aXRpb25Mb2NhdGlvbl0pOworfTsKKworLyoqCisgKiBDcmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4
dHVyZWQgdW5pdCBxdWFkIGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleCBhdHRyaWJzLgorICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUg
YXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4
Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAq
IEBwYXJhbSB7IU9iamVjdH0gdmFyaW91cyBvcHRpb25zLiBTZWUgc2V0dXBRdWFkIGZvciBkZXRh
aWxzLgorICogQHJldHVybiB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0
cyB0aGF0IHdlcmUKKyAqICAgICAgY3JlYXRlZC4KKyAqLwordmFyIHNldHVwVW5pdFF1YWQgPSBm
dW5jdGlvbihnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uLCBv
cHRpb25zKSB7CisgIHJldHVybiBzZXR1cFF1YWRXaXRoVGV4Q29vcmRzKGdsLCBbIDAuMCwgMC4w
IF0sIFsgMS4wLCAxLjAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3Bv
c2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25zKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBidWZmZXJzIGZv
ciBhIHRleHR1cmVkIHF1YWQgd2l0aCBzcGVjaWZpZWQgbG93ZXIgbGVmdAorICogYW5kIHVwcGVy
IHJpZ2h0IHRleHR1cmUgY29vcmRpbmF0ZXMsIGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleAor
ICogYXR0cmlicy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0g
bG93ZXJMZWZ0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgbG93ZXIg
bGVmdCBjb3JuZXIuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gdXBwZXJSaWdodFRleENv
b3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBmb3IgdGhlIHVwcGVyIHJpZ2h0IGNvcm5lci4K
KyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0
aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlv
biBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAqIEBwYXJhbSB7IU9i
amVjdH0gdmFyaW91cyBvcHRpb25zLiBTZWUgc2V0dXBRdWFkIGZvciBkZXRhaWxzLgorICogQHJl
dHVybiB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0aGF0IHdlcmUK
KyAqICAgICAgY3JlYXRlZC4KKyAqLwordmFyIHNldHVwUXVhZFdpdGhUZXhDb29yZHMgPSBmdW5j
dGlvbigKKyAgICBnbCwgbG93ZXJMZWZ0VGV4Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29vcmRzLAor
ICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgb3B0aW9ucykg
eworICB2YXIgZGVmYXVsdE9wdGlvbnMgPSB7CisgICAgcG9zaXRpb25Mb2NhdGlvbjogb3B0X3Bv
c2l0aW9uTG9jYXRpb24gfHwgMCwKKyAgICB0ZXhjb29yZExvY2F0aW9uOiBvcHRfdGV4Y29vcmRM
b2NhdGlvbiB8fCAxLAorICAgIGxvd2VyTGVmdFRleENvb3JkczogbG93ZXJMZWZ0VGV4Q29vcmRz
LAorICAgIHVwcGVyUmlnaHRUZXhDb29yZHM6IHVwcGVyUmlnaHRUZXhDb29yZHMKKyAgfTsKKyAg
aWYgKG9wdGlvbnMpIHsKKyAgICBmb3IgKHZhciBwcm9wIGluIG9wdGlvbnMpIHsKKyAgICAgIGRl
ZmF1bHRPcHRpb25zW3Byb3BdID0gb3B0aW9uc1twcm9wXQorICAgIH0KKyAgfQorICByZXR1cm4g
c2V0dXBRdWFkKGdsLCBkZWZhdWx0T3B0aW9ucyk7Cit9OworCisvKioKKyAqIE1ha2VzIGEgcXVh
ZCB3aXRoIHZhcmlvdXMgb3B0aW9ucy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4
dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFPYmpl
Y3R9IG9wdGlvbnMKKyAqCisgKiBzY2FsZTogc2NhbGUgdG8gbXVsdGlwbHkgdW5pdCBxdWFkIHZh
bHVlcyBieS4gZGVmYXVsdCAxLjAuCisgKiBwb3NpdGlvbkxvY2F0aW9uOiBhdHRyaWJ1dGUgbG9j
YXRpb24gZm9yIHBvc2l0aW9uLgorICogdGV4Y29vcmRMb2NhdGlvbjogYXR0cmlidXRlIGxvY2F0
aW9uIGZvciB0ZXhjb29yZHMuCisgKiAgICAgSWYgdGhpcyBkb2VzIG5vdCBleGlzdCBubyB0ZXh0
dXJlIGNvb3JkcyBhcmUgY3JlYXRlZC4KKyAqIGxvd2VyTGVmdFRleENvb3JkczogYW4gYXJyYXkg
b2YgMiB2YWx1ZXMgZm9yIHRoZQorICogICAgIGxvd2VyTGVmdFRleENvb3Jkcy4KKyAqIHVwcGVy
UmlnaHRUZXhDb29yZHM6IGFuIGFycmF5IG9mIDIgdmFsdWVzIGZvciB0aGUKKyAqICAgICB1cHBl
clJpZ2h0VGV4Q29vcmRzLgorICovCit2YXIgc2V0dXBRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdGlv
bnMpIHsKKyAgdmFyIHBvc2l0aW9uTG9jYXRpb24gPSBvcHRpb25zLnBvc2l0aW9uTG9jYXRpb24g
fHwgMDsKKyAgdmFyIHNjYWxlID0gb3B0aW9ucy5zY2FsZSB8fCAxOworCisgIHZhciBvYmplY3Rz
ID0gW107CisKKyAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAgIDEuMCAqIHNjYWxl
ICwgIDEuMCAqIHNjYWxlLAorICAgICAgLTEuMCAqIHNjYWxlICwgIDEuMCAqIHNjYWxlLAorICAg
ICAgLTEuMCAqIHNjYWxlICwgLTEuMCAqIHNjYWxlLAorICAgICAgIDEuMCAqIHNjYWxlICwgIDEu
MCAqIHNjYWxlLAorICAgICAgLTEuMCAqIHNjYWxlICwgLTEuMCAqIHNjYWxlLAorICAgICAgIDEu
MCAqIHNjYWxlICwgLTEuMCAqIHNjYWxlXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgZ2wuZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2NhdGlvbik7CisgIGdsLnZlcnRleEF0dHJpYlBv
aW50ZXIocG9zaXRpb25Mb2NhdGlvbiwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgb2Jq
ZWN0cy5wdXNoKHZlcnRleE9iamVjdCk7CisKKyAgaWYgKG9wdGlvbnMudGV4Y29vcmRMb2NhdGlv
biAhPT0gdW5kZWZpbmVkKSB7CisgICAgdmFyIGxseCA9IG9wdGlvbnMubG93ZXJMZWZ0VGV4Q29v
cmRzWzBdOworICAgIHZhciBsbHkgPSBvcHRpb25zLmxvd2VyTGVmdFRleENvb3Jkc1sxXTsKKyAg
ICB2YXIgdXJ4ID0gb3B0aW9ucy51cHBlclJpZ2h0VGV4Q29vcmRzWzBdOworICAgIHZhciB1cnkg
PSBvcHRpb25zLnVwcGVyUmlnaHRUZXhDb29yZHNbMV07CisKKyAgICB2ZXJ0ZXhPYmplY3QgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVy
dGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0
MzJBcnJheShbCisgICAgICAgIHVyeCwgdXJ5LAorICAgICAgICBsbHgsIHVyeSwKKyAgICAgICAg
bGx4LCBsbHksCisgICAgICAgIHVyeCwgdXJ5LAorICAgICAgICBsbHgsIGxseSwKKyAgICAgICAg
dXJ4LCBsbHldKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KG9wdGlvbnMudGV4Y29vcmRMb2NhdGlvbik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRl
cihvcHRpb25zLnRleGNvb3JkTG9jYXRpb24sIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Cisg
ICAgb2JqZWN0cy5wdXNoKHZlcnRleE9iamVjdCk7CisgIH0KKworICByZXR1cm4gb2JqZWN0czsK
K307CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmlu
ZyBhIHRleHR1cmVkIHF1YWQuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9w
dF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yCisgKiAgICAgICAgcG9z
aXRpb24uIERlZmF1bHQgPSAwLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0
aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yCisgKiAgICAgICAgdGV4dHVyZSBjb29yZHMuIERl
ZmF1bHQgPSAxLgorICogQHBhcmFtIHshT2JqZWN0fSB2YXJpb3VzIG9wdGlvbnMgZGVmaW5lZCBi
eSBzZXR1cFF1YWQsIHBsdXMgYW4gb3B0aW9uCisgICAgICAgICAgZnJhZ21lbnRTaGFkZXJPdmVy
cmlkZSB0byBzcGVjaWZ5IGEgY3VzdG9tIGZyYWdtZW50IHNoYWRlci4KKyAqIEByZXR1cm4geyFX
ZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFRleHR1cmVkUXVhZCA9IGZ1bmN0aW9uKAorICAg
IGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24sIG9wdGlvbnMp
IHsKKyAgdmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAorICAgICAgZ2ws
IG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgb3B0aW9ucyAmJiBv
cHRpb25zLmZyYWdtZW50U2hhZGVyT3ZlcnJpZGUpOworICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRf
cG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24sIG9wdGlvbnMpOworICByZXR1
cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMg
Zm9yIHJlbmRlcmluZyBhIGNvbG9yIHF1YWQuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtu
dW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0
aW9uLgorICogQHBhcmFtIHshT2JqZWN0fSB2YXJpb3VzIG9wdGlvbnMuIFNlZSBzZXR1cFF1YWQg
Zm9yIGRldGFpbHMuCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBD
b2xvclF1YWQgPSBmdW5jdGlvbihnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdGlvbnMpIHsK
KyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICB2
YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtKGdsLCBvcHRfcG9zaXRpb25Mb2Nh
dGlvbik7CisgIHNldHVwVW5pdFF1YWQoZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCAwLCBvcHRp
b25zKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFt
IGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSB0ZXh0dXJlZCBxdWFkIHdpdGgKKyAqIHNwZWNp
ZmllZCBsb3dlciBsZWZ0IGFuZCB1cHBlciByaWdodCB0ZXh0dXJlIGNvb3JkaW5hdGVzLgorICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBsb3dlckxlZnRUZXhDb29y
ZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSBsb3dlciBsZWZ0IGNvcm5lci4KKyAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSB1cHBlclJpZ2h0VGV4Q29vcmRzIFRoZSB0ZXh0dXJl
IGNvb3JkaW5hdGVzIGZvciB0aGUgdXBwZXIgcmlnaHQgY29ybmVyLgorICogQHBhcmFtIHtudW1i
ZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9u
LgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9j
YXRpb24gZm9yIHRleHR1cmUgY29vcmRzLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KKyAq
LwordmFyIHNldHVwVGV4dHVyZWRRdWFkV2l0aFRleENvb3JkcyA9IGZ1bmN0aW9uKAorICAgIGds
LCBsb3dlckxlZnRUZXhDb29yZHMsIHVwcGVyUmlnaHRUZXhDb29yZHMsCisgICAgb3B0X3Bvc2l0
aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKSB7CisgIHZhciBwcm9ncmFtID0gc2V0
dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbSgKKyAgICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwg
b3B0X3RleGNvb3JkTG9jYXRpb24pOworICBzZXR1cFF1YWRXaXRoVGV4Q29vcmRzKGdsLCBsb3dl
ckxlZnRUZXhDb29yZHMsIHVwcGVyUmlnaHRUZXhDb29yZHMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKKyAgcmV0
dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtIGFuZCBidWZmZXJz
IGZvciByZW5kZXJpbmcgYSB0ZXh0dXJlZCBxdWFkIHdpdGgKKyAqIGEgY3ViZSBtYXAgdGV4dHVy
ZS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRp
b24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IKKyAqICAgICAgICBwb3NpdGlvbi4gRGVmYXVsdCA9
IDAuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBs
b2NhdGlvbiBmb3IKKyAqICAgICAgICB0ZXh0dXJlIGNvb3Jkcy4gRGVmYXVsdCA9IDEuCisgKiBA
cmV0dXJuIHshV2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBUZXh0dXJlZFF1YWRXaXRoQ3Vi
ZU1hcCA9IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNv
b3JkTG9jYXRpb24pIHsKKyAgdmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZUN1YmVNYXBUZXh0dXJl
UHJvZ3JhbSgKKyAgICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9j
YXRpb24pOworICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3Rl
eGNvb3JkTG9jYXRpb24sIHVuZGVmaW5lZCk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoq
CisgKiBDcmVhdGVzIGEgdW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiBy
ZXNvbHV0aW9uLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFRo
ZSByZXNvbHV0aW9uIG9mIHRoZSBtZXNoIGdyaWQsCisgKiAgICAgZXhwcmVzc2VkIGluIHRoZSBu
dW1iZXIgb2YgcXVhZHMgYWNyb3NzIGFuZCBkb3duLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9w
b3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICovCit2
YXIgc2V0dXBJbmRleGVkUXVhZCA9IGZ1bmN0aW9uICgKKyAgICBnbCwgZ3JpZFJlcywgb3B0X3Bv
c2l0aW9uTG9jYXRpb24sIG9wdF9mbGlwT2RkVHJpYW5nbGVzKSB7CisgIHJldHVybiBzZXR1cElu
ZGV4ZWRRdWFkV2l0aE9wdGlvbnMoZ2wsCisgICAgeyBncmlkUmVzOiBncmlkUmVzLAorICAgICAg
cG9zaXRpb25Mb2NhdGlvbjogb3B0X3Bvc2l0aW9uTG9jYXRpb24sCisgICAgICBmbGlwT2RkVHJp
YW5nbGVzOiBvcHRfZmxpcE9kZFRyaWFuZ2xlcworICAgIH0pOworfTsKKworLyoqCisgKiBDcmVh
dGVzIGEgcXVhZCB3aXRoIHZhcmlvdXMgb3B0aW9ucy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVy
aW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFy
YW0geyFPYmplY3R9IG9wdGlvbnMgVGhlIG9wdGlvbnMuIFNlZSBiZWxvdy4KKyAqIEByZXR1cm4g
eyFBcnJheS48V2ViR0xCdWZmZXI+fSBUaGUgY3JlYXRlZCBidWZmZXJzLgorICogICAgIFtwb3Np
dGlvbnMsIDxjb2xvcnM+LCBpbmRpY2VzXQorICoKKyAqIE9wdGlvbnM6CisgKiAgIGdyaWRSZXM6
IG51bWJlciBvZiBxdWFkcyBhY3Jvc3MgYW5kIGRvd24gZ3JpZC4KKyAqICAgcG9zaXRpb25Mb2Nh
dGlvbjogYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbgorICogICBmbGlwT2RkVHJpYW5nbGVz
OiByZXZlcnNlIG9yZGVyIG9mIHZlcnRpY2VzIG9mIGV2ZXJ5IG90aGVyCisgKiAgICAgICB0cmlh
bmdsZQorICogICBwb3NpdGlvbk9mZnNldDogb2Zmc2V0IGFkZGVkIHRvIGVhY2ggdmVydGV4Cisg
KiAgIHBvc2l0aW9uTXVsdDogbXVsdGlwaWVyIGZvciBlYWNoIHZlcnRleAorICogICBjb2xvckxv
Y2F0aW9uOiBhdHRyaWIgbG9jYXRpb24gZm9yIHZlcnRleCBjb2xvcnMuIElmCisgKiAgICAgIHVu
ZGVmaW5lZCBubyB2ZXJ0ZXggY29sb3JzIHdpbGwgYmUgY3JlYXRlZC4KKyAqLwordmFyIHNldHVw
SW5kZXhlZFF1YWRXaXRoT3B0aW9ucyA9IGZ1bmN0aW9uIChnbCwgb3B0aW9ucykgeworICB2YXIg
cG9zaXRpb25Mb2NhdGlvbiA9IG9wdGlvbnMucG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICB2YXIg
b2JqZWN0cyA9IFtdOworCisgIHZhciBncmlkUmVzID0gb3B0aW9ucy5ncmlkUmVzIHx8IDE7Cisg
IHZhciBwb3NpdGlvbk9mZnNldCA9IG9wdGlvbnMucG9zaXRpb25PZmZzZXQgfHwgMDsKKyAgdmFy
IHBvc2l0aW9uTXVsdCA9IG9wdGlvbnMucG9zaXRpb25NdWx0IHx8IDE7CisgIHZhciB2ZXJ0c0Fj
cm9zcyA9IGdyaWRSZXMgKyAxOworICB2YXIgbnVtVmVydHMgPSB2ZXJ0c0Fjcm9zcyAqIHZlcnRz
QWNyb3NzOworICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShudW1WZXJ0cyAqIDMp
OworICB2YXIgaW5kaWNlcyA9IG5ldyBVaW50MTZBcnJheSg2ICogZ3JpZFJlcyAqIGdyaWRSZXMp
OworICB2YXIgcG9mZnNldCA9IDA7CisKKyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVz
OyArK3l5KSB7CisgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVzOyArK3h4KSB7Cisg
ICAgICBwb3NpdGlvbnNbcG9mZnNldCArIDBdID0gKC0xICsgMiAqIHh4IC8gZ3JpZFJlcykgKiBw
b3NpdGlvbk11bHQgKyBwb3NpdGlvbk9mZnNldDsKKyAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsg
MV0gPSAoLTEgKyAyICogeXkgLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zm
c2V0OworICAgICAgcG9zaXRpb25zW3BvZmZzZXQgKyAyXSA9IDA7CisKKyAgICAgIHBvZmZzZXQg
Kz0gMzsKKyAgICB9CisgIH0KKworICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWYpOworICBnbC5idWZmZXJEYXRhKGdsLkFS
UkFZX0JVRkZFUiwgcG9zaXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7CisgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRpb24pOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KHBvc2l0aW9uTG9jYXRpb24sIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgIG9iamVjdHMu
cHVzaChidWYpOworCisgIGlmIChvcHRpb25zLmNvbG9yTG9jYXRpb24gIT09IHVuZGVmaW5lZCkg
eworICAgIHZhciBjb2xvcnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogNCk7CisgICAg
cG9mZnNldCA9IDA7CisgICAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVzOyArK3l5KSB7
CisgICAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDw9IGdyaWRSZXM7ICsreHgpIHsKKyAgICAgICAg
aWYgKG9wdGlvbnMuY29sb3IgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGNvbG9yc1twb2Zm
c2V0ICsgMF0gPSBvcHRpb25zLmNvbG9yWzBdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsg
MV0gPSBvcHRpb25zLmNvbG9yWzFdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMl0gPSBv
cHRpb25zLmNvbG9yWzJdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgM10gPSBvcHRpb25z
LmNvbG9yWzNdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsg
MF0gPSB4eCAvIGdyaWRSZXM7CisgICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAxXSA9IHl5IC8g
Z3JpZFJlczsKKyAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDJdID0gKHh4IC8gZ3JpZFJlcykg
KiAoeXkgLyBncmlkUmVzKTsKKyAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDNdID0gKHl5ICUg
MikgKiAwLjUgKyAwLjU7CisgICAgICAgIH0KKyAgICAgICAgcG9mZnNldCArPSA0OworICAgICAg
fQorICAgIH0KKworICAgIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWYpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVG
RkVSLCBjb2xvcnMsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheShvcHRpb25zLmNvbG9yTG9jYXRpb24pOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
b3B0aW9ucy5jb2xvckxvY2F0aW9uLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworICAgIG9i
amVjdHMucHVzaChidWYpOworICB9CisKKyAgdmFyIHRiYXNlID0gMDsKKyAgZm9yICh2YXIgeXkg
PSAwOyB5eSA8IGdyaWRSZXM7ICsreXkpIHsKKyAgICB2YXIgaW5kZXggPSB5eSAqIHZlcnRzQWNy
b3NzOworICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCBncmlkUmVzOyArK3h4KSB7CisgICAgICBp
bmRpY2VzW3RiYXNlICsgMF0gPSBpbmRleCArIDA7CisgICAgICBpbmRpY2VzW3RiYXNlICsgMV0g
PSBpbmRleCArIDE7CisgICAgICBpbmRpY2VzW3RiYXNlICsgMl0gPSBpbmRleCArIHZlcnRzQWNy
b3NzOworICAgICAgaW5kaWNlc1t0YmFzZSArIDNdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsKKyAg
ICAgIGluZGljZXNbdGJhc2UgKyA0XSA9IGluZGV4ICsgMTsKKyAgICAgIGluZGljZXNbdGJhc2Ug
KyA1XSA9IGluZGV4ICsgdmVydHNBY3Jvc3MgKyAxOworCisgICAgICBpZiAob3B0aW9ucy5mbGlw
T2RkVHJpYW5nbGVzKSB7CisgICAgICAgIGluZGljZXNbdGJhc2UgKyA0XSA9IGluZGV4ICsgdmVy
dHNBY3Jvc3MgKyAxOworICAgICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCArIDE7Cisg
ICAgICB9CisKKyAgICAgIGluZGV4ICs9IDE7CisgICAgICB0YmFzZSArPSA2OworICAgIH0KKyAg
fQorCisgIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBidWYpOworICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlf
QlVGRkVSLCBpbmRpY2VzLCBnbC5TVEFUSUNfRFJBVyk7CisgIG9iamVjdHMucHVzaChidWYpOwor
CisgIHJldHVybiBvYmplY3RzOworfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBjb25zdHJ1Y3Rv
ciBmb3IgYSB0eXBlZCBhcnJheSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBnaXZlbgorICogV2Vi
R0wgdHlwZS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgQSBXZWJHTFJl
bmRlcmluZ0NvbnRleHQuCisgKiBAcGFyYW0ge251bWJlcn0gdHlwZSBUaGUgV2ViR0wgdHlwZSAo
ZWcsIGdsLlVOU0lHTkVEX0JZVEUpCisgKiBAcmV0dXJuIHshQ29uc3RydWN0b3J9IFRoZSB0eXBl
ZCBhcnJheSBjb25zdHJ1Y3RvciB0aGF0CisgKiAgICAgIGNvcnJlc3BvbmRzIHRvIHRoZSBnaXZl
biB0eXBlLgorICovCit2YXIgZ2xUeXBlVG9UeXBlZEFycmF5VHlwZSA9IGZ1bmN0aW9uKGdsLCB0
eXBlKSB7CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgZ2wuQllURToKKyAgICAgIHJldHVy
biB3aW5kb3cuSW50OEFycmF5OworICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgIHJl
dHVybiB3aW5kb3cuVWludDhBcnJheTsKKyAgICBjYXNlIGdsLlNIT1JUOgorICAgICAgcmV0dXJu
IHdpbmRvdy5JbnQxNkFycmF5OworICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlQ6CisgICAgY2Fz
ZSBnbC5VTlNJR05FRF9TSE9SVF81XzZfNToKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRf
NF80XzQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xOgorICAgICAgcmV0dXJu
IHdpbmRvdy5VaW50MTZBcnJheTsKKyAgICBjYXNlIGdsLklOVDoKKyAgICAgIHJldHVybiB3aW5k
b3cuSW50MzJBcnJheTsKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVDoKKyAgICBjYXNlIGdsLlVO
U0lHTkVEX0lOVF81XzlfOV85X1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8xMEZfMTFG
XzExRl9SRVY6CisgICAgY2FzZSBnbC5VTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVY6CisgICAg
Y2FzZSBnbC5VTlNJR05FRF9JTlRfMjRfODoKKyAgICAgIHJldHVybiB3aW5kb3cuVWludDMyQXJy
YXk7CisgICAgY2FzZSBnbC5IQUxGX0ZMT0FUOgorICAgIGNhc2UgMHg4RDYxOiAgLy8gSEFMRl9G
TE9BVF9PRVMKKyAgICAgIHJldHVybiB3aW5kb3cuVWludDE2QXJyYXk7CisgICAgY2FzZSBnbC5G
TE9BVDoKKyAgICAgIHJldHVybiB3aW5kb3cuRmxvYXQzMkFycmF5OworICAgIGRlZmF1bHQ6Cisg
ICAgICB0aHJvdyAndW5rbm93biBnbCB0eXBlICcgKyBnbEVudW1Ub1N0cmluZyhnbCwgdHlwZSk7
CisgIH0KK307CisKKy8qKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBlciBjb21w
b25lbnQgZm9yIGEgZ2l2ZW4gV2ViR0wgdHlwZS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5n
Q29udGV4dH0gZ2wgQSBXZWJHTFJlbmRlcmluZ0NvbnRleHQuCisgKiBAcGFyYW0ge0dMZW51bX0g
dHlwZSBUaGUgV2ViR0wgdHlwZSAoZWcsIGdsLlVOU0lHTkVEX0JZVEUpCisgKiBAcmV0dXJuIHtu
dW1iZXJ9IFRoZSBudW1iZXIgb2YgYnl0ZXMgcGVyIGNvbXBvbmVudC4KKyAqLwordmFyIGdldEJ5
dGVzUGVyQ29tcG9uZW50ID0gZnVuY3Rpb24oZ2wsIHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBnbC5CWVRFOgorICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgIHJl
dHVybiAxOworICAgIGNhc2UgZ2wuU0hPUlQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVDoK
KyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81OgorICAgIGNhc2UgZ2wuVU5TSUdORURf
U0hPUlRfNF80XzRfNDoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6CisgICAg
Y2FzZSBnbC5IQUxGX0ZMT0FUOgorICAgIGNhc2UgMHg4RDYxOiAgLy8gSEFMRl9GTE9BVF9PRVMK
KyAgICAgIHJldHVybiAyOworICAgIGNhc2UgZ2wuSU5UOgorICAgIGNhc2UgZ2wuVU5TSUdORURf
SU5UOgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UXzVfOV85XzlfUkVWOgorICAgIGNhc2UgZ2wu
VU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8y
XzEwXzEwXzEwX1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8yNF84OgorICAgIGNhc2Ug
Z2wuRkxPQVQ6CisgICAgICByZXR1cm4gNDsKKyAgICBkZWZhdWx0OgorICAgICAgdGhyb3cgJ3Vu
a25vd24gZ2wgdHlwZSAnICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHR5cGUpOworICB9Cit9OworCisv
KioKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiB0eXBlZCBhcnJheSBlbGVtZW50cyBwZXIgcGl4
ZWwgZm9yIGEgZ2l2ZW4gV2ViR0wKKyAqIGZvcm1hdC90eXBlIGNvbWJpbmF0aW9uLiBUaGUgY29y
cmVzcG9uZGluZyB0eXBlZCBhcnJheSB0eXBlIGNhbiBiZSBkZXRlcm1pbmVkCisgKiBieSBjYWxs
aW5nIGdsVHlwZVRvVHlwZWRBcnJheVR5cGUuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIEEgV2ViR0xSZW5kZXJpbmdDb250ZXh0LgorICogQHBhcmFtIHtHTGVudW19IGZv
cm1hdCBUaGUgV2ViR0wgZm9ybWF0IChlZywgZ2wuUkdCQSkKKyAqIEBwYXJhbSB7R0xlbnVtfSB0
eXBlIFRoZSBXZWJHTCB0eXBlIChlZywgZ2wuVU5TSUdORURfQllURSkKKyAqIEByZXR1cm4ge251
bWJlcn0gVGhlIG51bWJlciBvZiB0eXBlZCBhcnJheSBlbGVtZW50cyBwZXIgcGl4ZWwuCisgKi8K
K3ZhciBnZXRUeXBlZEFycmF5RWxlbWVudHNQZXJQaXhlbCA9IGZ1bmN0aW9uKGdsLCBmb3JtYXQs
IHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81
XzZfNToKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgY2FzZSBnbC5V
TlNJR05FRF9TSE9SVF81XzVfNV8xOgorICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBnbC5VTlNJ
R05FRF9CWVRFOgorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHRocm93ICdub3Qg
YSBnbCB0eXBlIGZvciBjb2xvciBpbmZvcm1hdGlvbiAnICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHR5
cGUpOworICB9CisKKyAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIGdsLlJHQkE6CisgICAg
ICByZXR1cm4gNDsKKyAgICBjYXNlIGdsLlJHQjoKKyAgICAgIHJldHVybiAzOworICAgIGNhc2Ug
Z2wuTFVNSU5BTkNFX0FMUEhBOgorICAgICAgcmV0dXJuIDI7CisgICAgY2FzZSBnbC5MVU1JTkFO
Q0U6CisgICAgY2FzZSBnbC5BTFBIQToKKyAgICAgIHJldHVybiAxOworICAgIGRlZmF1bHQ6Cisg
ICAgICB0aHJvdyAndW5rbm93biBnbCBmb3JtYXQgJyArIGdsRW51bVRvU3RyaW5nKGdsLCBmb3Jt
YXQpOworICB9Cit9OworCisvKioKKyAqIEZpbGxzIHRoZSBnaXZlbiB0ZXh0dXJlIHdpdGggYSBz
b2xpZCBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFXZWJHTFRleHR1cmV9IHRl
eCBUaGUgdGV4dHVyZSB0byBmaWxsLgorICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIFRoZSB3aWR0
aCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IFRo
ZSBoZWlnaHQgb2YgdGhlIHRleHR1cmUgdG8gY3JlYXRlLgorICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIHdpdGguCisgKiAgICAgICAgd2hlcmUgZWFj
aCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfbGV2ZWwgVGhlIGxldmVsIG9mIHRoZSB0ZXh0dXJlIHRvIGZpbGwuIERlZmF1bHQgPSAwLgor
ICogQHBhcmFtIHtudW1iZXJ9IG9wdF9mb3JtYXQgVGhlIGZvcm1hdCBmb3IgdGhlIHRleHR1cmUu
CisgKiBAcGFyYW0ge251bWJlcn0gb3B0X2ludGVybmFsRm9ybWF0IFRoZSBpbnRlcm5hbCBmb3Jt
YXQgZm9yIHRoZSB0ZXh0dXJlLgorICovCit2YXIgZmlsbFRleHR1cmUgPSBmdW5jdGlvbihnbCwg
dGV4LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2xldmVsLCBvcHRfZm9ybWF0LCBvcHRfdHlw
ZSwgb3B0X2ludGVybmFsRm9ybWF0KSB7CisgIG9wdF9sZXZlbCA9IG9wdF9sZXZlbCB8fCAwOwor
ICBvcHRfZm9ybWF0ID0gb3B0X2Zvcm1hdCB8fCBnbC5SR0JBOworICBvcHRfdHlwZSA9IG9wdF90
eXBlIHx8IGdsLlVOU0lHTkVEX0JZVEU7CisgIG9wdF9pbnRlcm5hbEZvcm1hdCA9IG9wdF9pbnRl
cm5hbEZvcm1hdCB8fCBvcHRfZm9ybWF0OworICB2YXIgcGFjayA9IGdsLmdldFBhcmFtZXRlcihn
bC5VTlBBQ0tfQUxJR05NRU5UKTsKKyAgdmFyIG51bUNvbXBvbmVudHMgPSBjb2xvci5sZW5ndGg7
CisgIHZhciBieXRlc1BlckNvbXBvbmVudCA9IGdldEJ5dGVzUGVyQ29tcG9uZW50KGdsLCBvcHRf
dHlwZSk7CisgIHZhciByb3dTaXplID0gbnVtQ29tcG9uZW50cyAqIHdpZHRoICogYnl0ZXNQZXJD
b21wb25lbnQ7CisgIC8vIFNlZSBlcXVhdGlvbiAzLjEwIGluIEVTIDIuMCBzcGVjIGFuZCBlcXVh
dGlvbiAzLjEzIGluIEVTIDMuMCBzcGVjIGZvciBwYWRkZWRSb3dMZW5ndGggY2FsY3VsYXRpb24u
CisgIC8vIGsgaXMgcGFkZGVkUm93TGVuZ3RoLgorICAvLyBuIGlzIG51bUNvbXBvbmVudHMuCisg
IC8vIGwgaXMgd2lkdGguCisgIC8vIGEgaXMgcGFjay4KKyAgLy8gcyBpcyBieXRlc1BlckNvbXBv
bmVudC4KKyAgdmFyIHBhZGRlZFJvd0xlbmd0aDsKKyAgaWYgKGJ5dGVzUGVyQ29tcG9uZW50ID49
IHBhY2spCisgICAgcGFkZGVkUm93TGVuZ3RoID0gbnVtQ29tcG9uZW50cyAqIHdpZHRoOworICBl
bHNlCisgICAgcGFkZGVkUm93TGVuZ3RoID0gTWF0aC5mbG9vcigocm93U2l6ZSArIHBhY2sgLSAx
KSAvIHBhY2spICogcGFjayAvIGJ5dGVzUGVyQ29tcG9uZW50OworICB2YXIgc2l6ZSA9IHdpZHRo
ICogbnVtQ29tcG9uZW50cyArIChoZWlnaHQgLSAxKSAqIHBhZGRlZFJvd0xlbmd0aDsKKyAgdmFy
IGJ1ZiA9IG5ldyAoZ2xUeXBlVG9UeXBlZEFycmF5VHlwZShnbCwgb3B0X3R5cGUpKShzaXplKTsK
KyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8IGhlaWdodDsgKyt5eSkgeworICAgIHZhciBvZmYgPSB5
eSAqIHBhZGRlZFJvd0xlbmd0aDsKKyAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwgd2lkdGg7ICsr
eHgpIHsKKyAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCBudW1Db21wb25lbnRzOyArK2pqKSB7
CisgICAgICAgIGJ1ZltvZmYrK10gPSBjb2xvcltqal07CisgICAgICB9CisgICAgfQorICB9Cisg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGdsLnRleEltYWdlMkQoCisg
ICAgICBnbC5URVhUVVJFXzJELCBvcHRfbGV2ZWwsIG9wdF9pbnRlcm5hbEZvcm1hdCwgd2lkdGgs
IGhlaWdodCwgMCwKKyAgICAgIG9wdF9mb3JtYXQsIG9wdF90eXBlLCBidWYpOworfTsKKworLyoq
CisgKiBDcmVhdGVzIGEgdGV4dHVyZSBhbmQgZmlsbHMgaXQgd2l0aCBhIHNvbGlkIGNvbG9yLgor
ICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdD
b250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCBUaGUgd2lkdGggb2YgdGhl
IHRleHR1cmUgdG8gY3JlYXRlLgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCBUaGUgaGVpZ2h0
IG9mIHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBj
b2xvciBUaGUgY29sb3IgdG8gZmlsbCB3aXRoLiBBIDQgZWxlbWVudCBhcnJheQorICogICAgICAg
IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcmV0dXJu
IHshV2ViR0xUZXh0dXJlfQorICovCit2YXIgY3JlYXRlQ29sb3JlZFRleHR1cmUgPSBmdW5jdGlv
bihnbCwgd2lkdGgsIGhlaWdodCwgY29sb3IpIHsKKyAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKKyAgZmlsbFRleHR1cmUoZ2wsIHRleCwgd2lkdGgsIGhlaWdodCwgY29sb3IpOworICBy
ZXR1cm4gdGV4OworfTsKKwordmFyIHVieXRlVG9GbG9hdCA9IGZ1bmN0aW9uKGMpIHsKKyAgcmV0
dXJuIGMgLyAyNTU7Cit9OworCit2YXIgdWJ5dGVDb2xvclRvRmxvYXRDb2xvciA9IGZ1bmN0aW9u
KGNvbG9yKSB7CisgIHZhciBmbG9hdENvbG9yID0gW107CisgIGZvciAodmFyIGlpID0gMDsgaWkg
PCBjb2xvci5sZW5ndGg7ICsraWkpIHsKKyAgICBmbG9hdENvbG9yW2lpXSA9IHVieXRlVG9GbG9h
dChjb2xvcltpaV0pOworICB9CisgIHJldHVybiBmbG9hdENvbG9yOworfTsKKworLyoqCisgKiBT
ZXRzIHRoZSAidV9jb2xvciIgdW5pZm9ybSBvZiB0aGUgY3VycmVudCBwcm9ncmFtIHRvIGNvbG9y
LgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciA0IGVs
ZW1lbnQgYXJyYXkgb2YgMC0xIGNvbG9yCisgKiAgICAgIGNvbXBvbmVudHMuCisgKi8KK3ZhciBz
ZXRGbG9hdERyYXdDb2xvciA9IGZ1bmN0aW9uKGdsLCBjb2xvcikgeworICB2YXIgcHJvZ3JhbSA9
IGdsLmdldFBhcmFtZXRlcihnbC5DVVJSRU5UX1BST0dSQU0pOworICB2YXIgY29sb3JMb2NhdGlv
biA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidV9jb2xvciIpOworICBnbC51bmlm
b3JtNGZ2KGNvbG9yTG9jYXRpb24sIGNvbG9yKTsKK307CisKKy8qKgorICogU2V0cyB0aGUgInVf
Y29sb3IiIHVuaWZvcm0gb2YgdGhlIGN1cnJlbnQgcHJvZ3JhbSB0byBjb2xvci4KKyAqIEBwYXJh
bSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0
byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgNCBlbGVtZW50IGFycmF5
IG9mIDAtMjU1IGNvbG9yCisgKiAgICAgIGNvbXBvbmVudHMuCisgKi8KK3ZhciBzZXRVQnl0ZURy
YXdDb2xvciA9IGZ1bmN0aW9uKGdsLCBjb2xvcikgeworICBzZXRGbG9hdERyYXdDb2xvcihnbCwg
dWJ5dGVDb2xvclRvRmxvYXRDb2xvcihjb2xvcikpOworfTsKKworLyoqCisgKiBEcmF3cyBhIHBy
ZXZpb3VzbHkgc2V0dXAgcXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCisgKiBAcGFyYW0geyFXZWJH
TFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgor
ICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGgu
IEEgNAorICogICAgICAgIGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRo
ZSByYW5nZSAwIHRvCisgKiAgICAgICAgMS4KKyAqLwordmFyIGRyYXdGbG9hdENvbG9yUXVhZCA9
IGZ1bmN0aW9uKGdsLCBjb2xvcikgeworICB2YXIgcHJvZ3JhbSA9IGdsLmdldFBhcmFtZXRlcihn
bC5DVVJSRU5UX1BST0dSQU0pOworICB2YXIgY29sb3JMb2NhdGlvbiA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAidV9jb2xvciIpOworICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jYXRp
b24sIGNvbG9yKTsKKyAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworfTsKKwor
CisvKioKKyAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBnaXZlbiBjb2xv
ci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhl
IGNvbG9yIHRvIGRyYXcgd2l0aC4gQSA0CisgKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAyNTUuCisgKi8KK3Zh
ciBkcmF3VUJ5dGVDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKKyAgZHJhd0Zsb2F0
Q29sb3JRdWFkKGdsLCB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNvbG9yKSk7Cit9OworCisvKioK
KyAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cFVuaXRRdWFkLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
LwordmFyIGRyYXdVbml0UXVhZCA9IGZ1bmN0aW9uKGdsKSB7CisgIGdsLmRyYXdBcnJheXMoZ2wu
VFJJQU5HTEVTLCAwLCA2KTsKK307CisKK3ZhciBkdW1teVNldFByb2dyYW1BbmREcmF3Tm90aGlu
ZyA9IGZ1bmN0aW9uKGdsKSB7CisgIGlmICghZ2wuX3d0dUR1bW15UHJvZ3JhbSkgeworICAgIGds
Ll93dHVEdW1teVByb2dyYW0gPSBzZXR1cFByb2dyYW0oZ2wsIFsKKyAgICAgICJ2b2lkIG1haW4o
KSB7IGdsX1Bvc2l0aW9uID0gdmVjNCgwLjApOyB9IiwKKyAgICAgICJ2b2lkIG1haW4oKSB7IGds
X0ZyYWdDb2xvciA9IHZlYzQoMC4wKTsgfSIKKyAgICBdLCBbXSwgW10pOworICB9CisgIGdsLnVz
ZVByb2dyYW0oZ2wuX3d0dUR1bW15UHJvZ3JhbSk7CisgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5H
TEVTLCAwLCAzKTsKK307CisKKy8qKgorICogQ2xlYXJzIHRoZW4gRHJhd3MgYSBwcmV2aW91c2x5
IHNldHVwVW5pdFF1YWQuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRo
ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJl
cj59IG9wdF9jb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQorICogICAg
ICAgIGRyYXdpbmcuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0
aGUgcmFuZ2UgMCB0bworICogICAgICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1
XQorICovCit2YXIgY2xlYXJBbmREcmF3VW5pdFF1YWQgPSBmdW5jdGlvbihnbCwgb3B0X2NvbG9y
KSB7CisgIG9wdF9jb2xvciA9IG9wdF9jb2xvciB8fCBbMjU1LCAyNTUsIDI1NSwgMjU1XTsKKyAg
Z2wuY2xlYXJDb2xvcigKKyAgICAgIG9wdF9jb2xvclswXSAvIDI1NSwKKyAgICAgIG9wdF9jb2xv
clsxXSAvIDI1NSwKKyAgICAgIG9wdF9jb2xvclsyXSAvIDI1NSwKKyAgICAgIG9wdF9jb2xvclsz
XSAvIDI1NSk7CisgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZG
RVJfQklUKTsKKyAgZHJhd1VuaXRRdWFkKGdsKTsKK307CisKKy8qKgorICogRHJhd3MgYSBxdWFk
IHByZXZpb3VzbHkgc2V0dXAgd2l0aCBzZXR1cEluZGV4ZWRRdWFkLgorICogQHBhcmFtIHshV2Vi
R0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4K
KyAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFJlc29sdXRpb24gb2YgZ3JpZC4KKyAqLwordmFy
IGRyYXdJbmRleGVkUXVhZCA9IGZ1bmN0aW9uKGdsLCBncmlkUmVzKSB7CisgIGdsLmRyYXdFbGVt
ZW50cyhnbC5UUklBTkdMRVMsIGdyaWRSZXMgKiBncmlkUmVzICogNiwgZ2wuVU5TSUdORURfU0hP
UlQsIDApOworfTsKKworLyoqCisgKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXBJbmRleGVkUXVh
ZAorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFJlc29sdXRpb24g
b2YgZ3JpZC4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9y
IHRvIGZpbGwgY2xlYXIgd2l0aCBiZWZvcmUKKyAqICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVu
dCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAg
ICAyNTUuIERlZmF1bHQgWzI1NSwgMjU1LCAyNTUsIDI1NV0KKyAqLwordmFyIGNsZWFyQW5kRHJh
d0luZGV4ZWRRdWFkID0gZnVuY3Rpb24oZ2wsIGdyaWRSZXMsIG9wdF9jb2xvcikgeworICBvcHRf
Y29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1NV07CisgIGdsLmNsZWFyQ29s
b3IoCisgICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbMV0gLyAyNTUs
CisgICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbM10gLyAyNTUpOwor
ICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Cisg
IGRyYXdJbmRleGVkUXVhZChnbCwgZ3JpZFJlcyk7Cit9OworCisvKioKKyAqIENsaXBzIGEgcmFu
Z2UgdG8gbWluLCBtYXgKKyAqIChFZy4gY2xpcFRvUmFuZ2UoLTUsNywwLDIwKSB3b3VsZCByZXR1
cm4ge3ZhbHVlOjAsZXh0ZW50OjJ9CisgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgc3RhcnQgb2Yg
cmFuZ2UKKyAqIEBwYXJhbSB7bnVtYmVyfSBleHRlbnQgZXh0ZW50IG9mIHJhbmdlCisgKiBAcGFy
YW0ge251bWJlcn0gbWluIG1pbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBtYXggbWF4LgorICogQHJl
dHVybiB7IXt2YWx1ZTpudW1iZXIsZXh0ZW50Om51bWJlcn19IFRoZSBjbGlwcGVkIHZhbHVlLgor
ICovCit2YXIgY2xpcFRvUmFuZ2UgPSBmdW5jdGlvbih2YWx1ZSwgZXh0ZW50LCBtaW4sIG1heCkg
eworICBpZiAodmFsdWUgPCBtaW4pIHsKKyAgICBleHRlbnQgLT0gbWluIC0gdmFsdWU7CisgICAg
dmFsdWUgPSBtaW47CisgIH0KKyAgdmFyIGVuZCA9IHZhbHVlICsgZXh0ZW50OworICBpZiAoZW5k
ID4gbWF4KSB7CisgICAgZXh0ZW50IC09IGVuZCAtIG1heDsKKyAgfQorICBpZiAoZXh0ZW50IDwg
MCkgeworICAgIHZhbHVlID0gbWF4OworICAgIGV4dGVudCA9IDA7CisgIH0KKyAgcmV0dXJuIHt2
YWx1ZTp2YWx1ZSwgZXh0ZW50OiBleHRlbnR9OworfTsKKworLyoqCisgKiBEZXRlcm1pbmVzIGlm
IHRoZSBwYXNzZWQgY29udGV4dCBpcyBhbiBpbnN0YW5jZSBvZiBhIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dAorICogb3IgbGF0ZXIgdmFyaWFudCAobGlrZSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KQor
ICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0fSBjdHggVGhlIGNvbnRleHQgdG8gY2hl
Y2suCisgKi8KK3ZhciBpc1dlYkdMQ29udGV4dCA9IGZ1bmN0aW9uKGN0eCkgeworICBpZiAoY3R4
IGluc3RhbmNlb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0KQorICAgIHJldHVybiB0cnVlOworCisg
IGlmICgnV2ViR0wyUmVuZGVyaW5nQ29udGV4dCcgaW4gd2luZG93ICYmIGN0eCBpbnN0YW5jZW9m
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpCisgICAgcmV0dXJuIHRydWU7CisKKyAgcmV0dXJuIGZh
bHNlOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgY2hlY2sgcmVjdCBpcyB1c2VkIGJ5IGNoZWNr
Q2FudmFzUmVjdHMuCisgKiBAcGFyYW0ge251bWJlcn0geCBsZWZ0IGNvcm5lciBvZiByZWdpb24g
dG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0geSBib3R0b20gY29ybmVyIG9mIHJlZ2lvbiB0
byBjaGVjayBpbiBjYXNlIG9mIGNoZWNraW5nIGZyb20KKyAqICAgICAgICBhIEdMIGNvbnRleHQg
b3IgdG9wIGNvcm5lciBpbiBjYXNlIG9mIGNoZWNraW5nIGZyb20gYSAyRCBjb250ZXh0LgorICog
QHBhcmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJh
bSB7bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHsh
QXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciBleHBlY3RlZC4gQSA0IGVsZW1lbnQgYXJy
YXkgd2hlcmUKKyAqICAgICAgICBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1
LgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCBz
dWNjZXNzLiBFZworICogICAgICAgICgic2hvdWxkIGJlIHJlZCIpLgorICogQHBhcmFtIHtudW1i
ZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFsLiBBY2NlcHRhYmxlIGVycm9yIGluCisgKiAgICAg
ICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVsdC4KKyAqLwordmFyIG1ha2VDaGVja1JlY3Qg
PSBmdW5jdGlvbih4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgbXNnLCBlcnJvclJhbmdlKSB7
CisgIHZhciByZWN0ID0geworICAgICd4JzogeCwgJ3knOiB5LAorICAgICd3aWR0aCc6IHdpZHRo
LCAnaGVpZ2h0JzogaGVpZ2h0LAorICAgICdjb2xvcic6IGNvbG9yLCAnbXNnJzogbXNnLAorICAg
ICdlcnJvclJhbmdlJzogZXJyb3JSYW5nZSwKKworICAgICdjaGVja1JlY3QnOiBmdW5jdGlvbiAo
YnVmLCBsLCBiLCB3KSB7CisgICAgICBmb3IgKHZhciBweCA9ICh4IC0gbCkgOyBweCA8ICh4ICsg
d2lkdGggLSBsKSA7ICsrcHgpIHsKKyAgICAgICAgZm9yICh2YXIgcHkgPSAoeSAtIGIpIDsgcHkg
PCAoeSArIGhlaWdodCAtIGIpIDsgKytweSkgeworICAgICAgICAgIHZhciBvZmZzZXQgPSAocHkg
KiB3ICsgcHgpICogNDsKKyAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbG9yLmxlbmd0
aDsgKytqKSB7CisgICAgICAgICAgICBpZiAoTWF0aC5hYnMoYnVmW29mZnNldCArIGpdIC0gY29s
b3Jbal0pID4gZXJyb3JSYW5nZSkgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7Cisg
ICAgICAgICAgICAgIHZhciB3YXMgPSBidWZbb2Zmc2V0ICsgMF0udG9TdHJpbmcoKTsKKyAgICAg
ICAgICAgICAgZm9yIChqID0gMTsgaiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAg
ICAgICAgd2FzICs9ICIsIiArIGJ1ZltvZmZzZXQgKyBqXTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICBkZWJ1ZygnYXQgKCcgKyBweCArICcsICcgKyBweSArCisgICAgICAgICAgICAg
ICAgICAgICcpIGV4cGVjdGVkOiAnICsgY29sb3IgKyAnIHdhcyAnICsgd2FzKTsKKyAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgfQorICAgICAgdGVzdFBhc3NlZChtc2cpOworICAgIH0KKyAgfQorICByZXR1cm4gcmVjdDsK
K307CisKKy8qKgorICogQ2hlY2tzIHRoYXQgYSBwb3J0aW9ucyBvZiBhIGNhbnZhcyBvciB0aGUg
Y3VycmVudGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFX
ZWJHTFJlbmRlcmluZ0NvbnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnbCBUaGUKKyAq
ICAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRleHQgdG8gdXNlLgorICog
QHBhcmFtIHshQXJyYXkuPGNoZWNrUmVjdD59IGFycmF5IG9mIHJlY3RzIHRvIGNoZWNrIGZvciBt
YXRjaGluZyBjb2xvci4KKyAqLwordmFyIGNoZWNrQ2FudmFzUmVjdHMgPSBmdW5jdGlvbihnbCwg
cmVjdHMpIHsKKyAgaWYgKHJlY3RzLmxlbmd0aCA+IDApIHsKKyAgICB2YXIgbGVmdCA9IHJlY3Rz
WzBdLng7CisgICAgdmFyIHJpZ2h0ID0gcmVjdHNbMF0ueCArIHJlY3RzWzFdLndpZHRoOworICAg
IHZhciBib3R0b20gPSByZWN0c1swXS55OworICAgIHZhciB0b3AgPSByZWN0c1swXS55ICsgcmVj
dHNbMF0uaGVpZ2h0OworICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcmVjdHMubGVuZ3RoOyArK2kp
IHsKKyAgICAgIGxlZnQgPSBNYXRoLm1pbihsZWZ0LCByZWN0c1tpXS54KTsKKyAgICAgIHJpZ2h0
ID0gTWF0aC5tYXgocmlnaHQsIHJlY3RzW2ldLnggKyByZWN0c1tpXS53aWR0aCk7CisgICAgICBi
b3R0b20gPSBNYXRoLm1pbihib3R0b20sIHJlY3RzW2ldLnkpOworICAgICAgdG9wID0gTWF0aC5t
YXgodG9wLCByZWN0c1tpXS55ICsgcmVjdHNbaV0uaGVpZ2h0KTsKKyAgICB9CisgICAgdmFyIHdp
ZHRoID0gcmlnaHQgLSBsZWZ0OworICAgIHZhciBoZWlnaHQgPSB0b3AgLSBib3R0b207CisgICAg
dmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7CisgICAgZ2wucmVh
ZFBpeGVscyhsZWZ0LCBib3R0b20sIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGJ1Zik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWN0cy5sZW5ndGg7ICsraSkg
eworICAgICAgcmVjdHNbaV0uY2hlY2tSZWN0KGJ1ZiwgbGVmdCwgYm90dG9tLCB3aWR0aCk7Cisg
ICAgfQorICB9Cit9OworCisvKioKKyAqIENoZWNrcyB0aGF0IGEgcG9ydGlvbiBvZiBhIGNhbnZh
cyBvciB0aGUgY3VycmVudGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3IuCisgKiBA
cGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBn
bCBUaGUKKyAqICAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRleHQgdG8g
dXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHggbGVmdCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNr
LgorICogQHBhcmFtIHtudW1iZXJ9IHkgYm90dG9tIGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2sg
aW4gY2FzZSBvZiBjaGVja2luZyBmcm9tCisgKiAgICAgICAgYSBHTCBjb250ZXh0IG9yIHRvcCBj
b3JuZXIgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9tIGEgMkQgY29udGV4dC4KKyAqIEBwYXJhbSB7
bnVtYmVyfSB3aWR0aCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJl
cn0gaGVpZ2h0IHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7IUFycmF5Ljxu
dW1iZXI+fSBjb2xvciBUaGUgY29sb3IgZXhwZWN0ZWQuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJl
CisgKiAgICAgICAgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBw
YXJhbSB7bnVtYmVyfSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBp
bgorICogICAgICAgIGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisgKiBAcGFyYW0geyFm
dW5jdGlvbigpfSBzYW1lRm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhbGwgcGl4ZWxzCisgKiAgICAg
ICAgYXJlIHRoZSBzYW1lIGFzIGNvbG9yLgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gZGlmZmVy
ZW50Rm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhIHBpeGVsCisgKiAgICAgICAgaXMgZGlmZmVyZW50
IHRoYW4gY29sb3IKKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKCl9IGxvZ0ZuIEZ1bmN0aW9uIHRvIGNh
bGwgZm9yIGxvZ2dpbmcuCisgKiBAcGFyYW0ge1R5cGVkQXJyYXl9IG9wdF9yZWFkQmFja0J1ZiBv
cHRpb25hbCBidWZmZXIgdG8gcmVhZCBiYWNrIGludG8uCisgKiAgICAgICAgVHlwaWNhbGx5IHBh
c3NlZCB0byBlaXRoZXIgcmV1c2UgYnVmZmVyLCBvciBzdXBwb3J0IHJlYWRiYWNrcyBmcm9tCisg
KiAgICAgICAgZmxvYXRpbmctcG9pbnQvbm9ybTE2IGZyYW1lYnVmZmVycy4KKyAqIEBwYXJhbSB7
R0xlbnVtfSBvcHRfcmVhZEJhY2tUeXBlIG9wdGlvbmFsIHJlYWQgYmFjayB0eXBlLCBkZWZhdWx0
aW5nIHRvCisgKiAgICAgICAgZ2wuVU5TSUdORURfQllURS4gQ2FuIGJlIHVzZWQgdG8gc3VwcG9y
dCByZWFkYmFjayBmcm9tIGZsb2F0aW5nLXBvaW50CisgKiAgICAgICAgL25vcm0xNiBmcmFtZWJ1
ZmZlcnMuCisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X3JlYWRCYWNrRm9ybWF0IG9wdGlvbmFsIHJl
YWQgYmFjayBmb3JtYXQsIGRlZmF1bHRpbmcgdG8KKyAqICAgICAgICBnbC5SR0JBLiBDYW4gYmUg
dXNlZCB0byBzdXBwb3J0IHJlYWRiYWNrIGZyb20gbm9ybTE2CisgKiAgICAgICAgZnJhbWVidWZm
ZXJzLgorICovCit2YXIgY2hlY2tDYW52YXNSZWN0Q29sb3IgPSBmdW5jdGlvbihnbCwgeCwgeSwg
d2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9lcnJvclJhbmdlLCBzYW1lRm4sIGRpZmZlcmVudEZu
LCBsb2dGbiwgb3B0X3JlYWRCYWNrQnVmLCBvcHRfcmVhZEJhY2tUeXBlLCBvcHRfcmVhZEJhY2tG
b3JtYXQpIHsKKyAgaWYgKGlzV2ViR0xDb250ZXh0KGdsKSAmJiAhZ2wuZ2V0UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSX0JJTkRJTkcpKSB7CisgICAgLy8gV2UncmUgcmVhZGluZyB0aGUgYmFja2J1
ZmZlciBzbyBjbGlwLgorICAgIHZhciB4ciA9IGNsaXBUb1JhbmdlKHgsIHdpZHRoLCAwLCBnbC5j
YW52YXMud2lkdGgpOworICAgIHZhciB5ciA9IGNsaXBUb1JhbmdlKHksIGhlaWdodCwgMCwgZ2wu
Y2FudmFzLmhlaWdodCk7CisgICAgaWYgKCF4ci5leHRlbnQgfHwgIXlyLmV4dGVudCkgeworICAg
ICAgbG9nRm4oImNoZWNraW5nIHJlY3Q6IGVmZmVjdGl2ZSB3aWR0aCBvciBoZWlnaHQgaXMgemVy
byIpOworICAgICAgc2FtZUZuKCk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHggPSB4ci52
YWx1ZTsKKyAgICB5ID0geXIudmFsdWU7CisgICAgd2lkdGggPSB4ci5leHRlbnQ7CisgICAgaGVp
Z2h0ID0geXIuZXh0ZW50OworICB9CisgIHZhciBlcnJvclJhbmdlID0gb3B0X2Vycm9yUmFuZ2Ug
fHwgMDsKKyAgaWYgKCFlcnJvclJhbmdlLmxlbmd0aCkgeworICAgIGVycm9yUmFuZ2UgPSBbZXJy
b3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZV0KKyAgfQorICB2YXIg
YnVmOworICBpZiAoaXNXZWJHTENvbnRleHQoZ2wpKSB7CisgICAgYnVmID0gb3B0X3JlYWRCYWNr
QnVmID8gb3B0X3JlYWRCYWNrQnVmIDogbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0
KTsKKyAgICB2YXIgcmVhZEJhY2tUeXBlID0gb3B0X3JlYWRCYWNrVHlwZSA/IG9wdF9yZWFkQmFj
a1R5cGUgOiBnbC5VTlNJR05FRF9CWVRFOworICAgIHZhciByZWFkQmFja0Zvcm1hdCA9IG9wdF9y
ZWFkQmFja0Zvcm1hdCA/IG9wdF9yZWFkQmFja0Zvcm1hdCA6IGdsLlJHQkE7CisgICAgZ2wucmVh
ZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCByZWFkQmFja0Zvcm1hdCwgcmVhZEJhY2tUeXBl
LCBidWYpOworICB9IGVsc2UgeworICAgIGJ1ZiA9IGdsLmdldEltYWdlRGF0YSh4LCB5LCB3aWR0
aCwgaGVpZ2h0KS5kYXRhOworICB9CisgIGZvciAodmFyIGkgPSAwOyBpIDwgd2lkdGggKiBoZWln
aHQ7ICsraSkgeworICAgIHZhciBvZmZzZXQgPSBpICogNDsKKyAgICBmb3IgKHZhciBqID0gMDsg
aiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7CisgICAgICBpZiAoTWF0aC5hYnMoYnVmW29mZnNldCAr
IGpdIC0gY29sb3Jbal0pID4gZXJyb3JSYW5nZVtqXSkgeworICAgICAgICB2YXIgd2FzID0gYnVm
W29mZnNldCArIDBdLnRvU3RyaW5nKCk7CisgICAgICAgIGZvciAoaiA9IDE7IGogPCBjb2xvci5s
ZW5ndGg7ICsraikgeworICAgICAgICAgIHdhcyArPSAiLCIgKyBidWZbb2Zmc2V0ICsgal07Cisg
ICAgICAgIH0KKyAgICAgICAgZGlmZmVyZW50Rm4oJ2F0ICgnICsgKHggKyAoaSAlIHdpZHRoKSkg
KyAnLCAnICsgKHkgKyBNYXRoLmZsb29yKGkgLyB3aWR0aCkpICsKKyAgICAgICAgICAgICAgICAg
ICAgJykgZXhwZWN0ZWQ6ICcgKyBjb2xvciArICcgd2FzICcgKyB3YXMsIGJ1Zik7CisgICAgICAg
IHJldHVybjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgc2FtZUZuKCk7Cit9OworCisvKioKKyAq
IENoZWNrcyB0aGF0IGEgcG9ydGlvbiBvZiBhIGNhbnZhcyBvciB0aGUgY3VycmVudGx5IGF0dGFj
aGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnbCBUaGUKKyAqICAgICAgICAgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9
IHggbGVmdCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IHkg
Ym90dG9tIGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2sgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9t
CisgKiAgICAgICAgYSBHTCBjb250ZXh0IG9yIHRvcCBjb3JuZXIgaW4gY2FzZSBvZiBjaGVja2lu
ZyBmcm9tIGEgMkQgY29udGV4dC4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCB3aWR0aCBvZiBy
ZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IHdpZHRoIG9mIHJlZ2lv
biB0byBjaGVjay4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3Ig
ZXhwZWN0ZWQuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlCisgKiAgICAgICAgZWFjaCBlbGVtZW50
IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE1l
c3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggc3VjY2VzcyBvciBmYWlsdXJlLiBFZworICogICAgICAg
ICgic2hvdWxkIGJlIHJlZCIpLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9w
dGlvbmFsLiBBY2NlcHRhYmxlIGVycm9yIGluCisgKiAgICAgICAgY29sb3IgY2hlY2tpbmcuIDAg
YnkgZGVmYXVsdC4KKyAqIEBwYXJhbSB7VHlwZWRBcnJheX0gb3B0X3JlYWRCYWNrQnVmIG9wdGlv
bmFsIGJ1ZmZlciB0byByZWFkIGJhY2sgaW50by4KKyAqICAgICAgICBUeXBpY2FsbHkgcGFzc2Vk
IHRvIGVpdGhlciByZXVzZSBidWZmZXIsIG9yIHN1cHBvcnQgcmVhZGJhY2tzIGZyb20KKyAqICAg
ICAgICBmbG9hdGluZy1wb2ludC9ub3JtMTYgZnJhbWVidWZmZXJzLgorICogQHBhcmFtIHtHTGVu
dW19IG9wdF9yZWFkQmFja1R5cGUgb3B0aW9uYWwgcmVhZCBiYWNrIHR5cGUsIGRlZmF1bHRpbmcg
dG8KKyAqICAgICAgICBnbC5VTlNJR05FRF9CWVRFLiBDYW4gYmUgdXNlZCB0byBzdXBwb3J0IHJl
YWRiYWNrIGZyb20gZmxvYXRpbmctcG9pbnQKKyAqICAgICAgICAvbm9ybTE2IGZyYW1lYnVmZmVy
cy4KKyAqIEBwYXJhbSB7R0xlbnVtfSBvcHRfcmVhZEJhY2tGb3JtYXQgb3B0aW9uYWwgcmVhZCBi
YWNrIGZvcm1hdCwgZGVmYXVsdGluZyB0bworICogICAgICAgIGdsLlJHQkEuIENhbiBiZSB1c2Vk
IHRvIHN1cHBvcnQgcmVhZGJhY2sgZnJvbSBmbG9hdGluZy1wb2ludAorICogICAgICAgIC9ub3Jt
MTYgZnJhbWVidWZmZXJzLgorICovCit2YXIgY2hlY2tDYW52YXNSZWN0ID0gZnVuY3Rpb24oZ2ws
IHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfbXNnLCBvcHRfZXJyb3JSYW5nZSwgb3B0
X3JlYWRCYWNrQnVmLCBvcHRfcmVhZEJhY2tUeXBlLCBvcHRfcmVhZEJhY2tGb3JtYXQpIHsKKyAg
Y2hlY2tDYW52YXNSZWN0Q29sb3IoCisgICAgICBnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29s
b3IsIG9wdF9lcnJvclJhbmdlLAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBtc2cg
PSBvcHRfbXNnOworICAgICAgICBpZiAobXNnID09PSB1bmRlZmluZWQpCisgICAgICAgICAgbXNn
ID0gInNob3VsZCBiZSAiICsgY29sb3IudG9TdHJpbmcoKTsKKyAgICAgICAgdGVzdFBhc3NlZCht
c2cpOworICAgICAgfSwKKyAgICAgIGZ1bmN0aW9uKGRpZmZlcmVudE1zZykgeworICAgICAgICB2
YXIgbXNnID0gb3B0X21zZzsKKyAgICAgICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKQorICAgICAg
ICAgIG1zZyA9ICJzaG91bGQgYmUgIiArIGNvbG9yLnRvU3RyaW5nKCk7CisgICAgICAgIHRlc3RG
YWlsZWQobXNnICsgIlxuIiArIGRpZmZlcmVudE1zZyk7CisgICAgICB9LAorICAgICAgZGVidWcs
CisgICAgICBvcHRfcmVhZEJhY2tCdWYsCisgICAgICBvcHRfcmVhZEJhY2tUeXBlLAorICAgICAg
b3B0X3JlYWRCYWNrRm9ybWF0KTsKK307CisKKy8qKgorICogQ2hlY2tzIHRoYXQgYW4gZW50aXJl
IGNhbnZhcyBvciB0aGUgY3VycmVudGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3Iu
CisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEfSBnbCBUaGUKKyAqICAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRl
eHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciBl
eHBlY3RlZC4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUKKyAqICAgICAgICBlYWNoIGVsZW1lbnQg
aXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICogQHBhcmFtIHtzdHJpbmd9IG1zZyBNZXNzYWdl
IHRvIGFzc29jaWF0ZSB3aXRoIHN1Y2Nlc3MuIEVnICgic2hvdWxkIGJlIHJlZCIpLgorICogQHBh
cmFtIHtudW1iZXJ9IGVycm9yUmFuZ2UgT3B0aW9uYWwuIEFjY2VwdGFibGUgZXJyb3IgaW4KKyAq
ICAgICAgICBjb2xvciBjaGVja2luZy4gMCBieSBkZWZhdWx0LgorICovCit2YXIgY2hlY2tDYW52
YXMgPSBmdW5jdGlvbihnbCwgY29sb3IsIG1zZywgZXJyb3JSYW5nZSkgeworICBjaGVja0NhbnZh
c1JlY3QoZ2wsIDAsIDAsIGdsLmNhbnZhcy53aWR0aCwgZ2wuY2FudmFzLmhlaWdodCwgY29sb3Is
IG1zZywgZXJyb3JSYW5nZSk7Cit9OworCisvKioKKyAqIENoZWNrcyBhIHJlY3Rhbmd1bGFyIGFy
ZWEgYm90aCBpbnNpZGUgdGhlIGFyZWEgYW5kIG91dHNpZGUKKyAqIHRoZSBhcmVhLgorICogQHBh
cmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZ2wg
VGhlCisgKiAgICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvciAyRCBjb250ZXh0IHRvIHVz
ZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4K
KyAqIEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrIGlu
IGNhc2Ugb2YgY2hlY2tpbmcgZnJvbQorICogICAgICAgIGEgR0wgY29udGV4dCBvciB0b3AgY29y
bmVyIGluIGNhc2Ugb2YgY2hlY2tpbmcgZnJvbSBhIDJEIGNvbnRleHQuCisgKiBAcGFyYW0ge251
bWJlcn0gd2lkdGggd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9
IGhlaWdodCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0geyFBcnJheS48bnVt
YmVyPn0gaW5uZXJDb2xvciBUaGUgY29sb3IgZXhwZWN0ZWQgaW5zaWRlCisgKiAgICAgdGhlIGFy
ZWEuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUKKyAqICAg
ICByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBvdXRlckNvbG9y
IFRoZSBjb2xvciBleHBlY3RlZAorICogICAgIG91dHNpZGUuIEEgNCBlbGVtZW50IGFycmF5IHdo
ZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUKKyAqICAgICByYW5nZSAwIHRvIDI1NS4KKyAqIEBw
YXJhbSB7IW51bWJlcn0gb3B0X2VkZ2VTaXplOiBUaGUgbnVtYmVyIG9mIHBpeGVscyB0byBza2lw
CisgKiAgICAgYXJvdW5kIHRoZSBlZGdlcyBvZiB0aGUgYXJlYS4gRGVmYXV0IDAuCisgKiBAcGFy
YW0geyF7d2lkdGg6bnVtYmVyLCBoZWlnaHQ6bnVtYmVyfX0gb3B0X291dGVyRGltZW5zaW9ucwor
ICogICAgIFRoZSBvdXRlciBkaW1lbnNpb25zLiBEZWZhdWx0IHRoZSBzaXplIG9mIGdsLmNhbnZh
cy4KKyAqLwordmFyIGNoZWNrQXJlYUluQW5kT3V0ID0gZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRo
LCBoZWlnaHQsIGlubmVyQ29sb3IsIG91dGVyQ29sb3IsIG9wdF9lZGdlU2l6ZSwgb3B0X291dGVy
RGltZW5zaW9ucykgeworICB2YXIgb3V0ZXJEaW1lbnNpb25zID0gb3B0X291dGVyRGltZW5zaW9u
cyB8fCB7IHdpZHRoOiBnbC5jYW52YXMud2lkdGgsIGhlaWdodDogZ2wuY2FudmFzLmhlaWdodCB9
OworICB2YXIgZWRnZVNpemUgPSBvcHRfZWRnZVNpemUgfHwgMDsKKyAgY2hlY2tDYW52YXNSZWN0
KGdsLCB4ICsgZWRnZVNpemUsIHkgKyBlZGdlU2l6ZSwgd2lkdGggLSBlZGdlU2l6ZSAqIDIsIGhl
aWdodCAtIGVkZ2VTaXplICogMiwgaW5uZXJDb2xvcik7CisgIGNoZWNrQ2FudmFzUmVjdChnbCwg
MCwgMCwgeCAtIGVkZ2VTaXplLCBvdXRlckRpbWVuc2lvbnMuaGVpZ2h0LCBvdXRlckNvbG9yKTsK
KyAgY2hlY2tDYW52YXNSZWN0KGdsLCB4ICsgd2lkdGggKyBlZGdlU2l6ZSwgMCwgb3V0ZXJEaW1l
bnNpb25zLndpZHRoIC0geCAtIHdpZHRoIC0gZWRnZVNpemUsIG91dGVyRGltZW5zaW9ucy5oZWln
aHQsIG91dGVyQ29sb3IpOworICBjaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIG91dGVyRGltZW5z
aW9ucy53aWR0aCwgeSAtIGVkZ2VTaXplLCBvdXRlckNvbG9yKTsKKyAgY2hlY2tDYW52YXNSZWN0
KGdsLCAwLCB5ICsgaGVpZ2h0ICsgZWRnZVNpemUsIG91dGVyRGltZW5zaW9ucy53aWR0aCwgb3V0
ZXJEaW1lbnNpb25zLmhlaWdodCAtIHkgLSBoZWlnaHQgLSBlZGdlU2l6ZSwgb3V0ZXJDb2xvcik7
Cit9OworCisvKioKKyAqIENoZWNrcyB0aGF0IGFuIGVudGlyZSBidWZmZXIgbWF0Y2hlcyB0aGUg
ZmxvYXRpbmcgcG9pbnQgdmFsdWVzIHByb3ZpZGVkLgorICogKFdlYkdMIDIuMCBvbmx5KQorICog
QHBhcmFtIHshV2ViR0wyUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHRhcmdldCBUaGUgYnVmZmVyIHRhcmdl
dCB0byBiaW5kIHRvLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGV4cGVjdGVkIFRoZSB2
YWx1ZXMgZXhwZWN0ZWQuCisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X21zZyBPcHRpb25hbC4gTWVz
c2FnZSB0byBhc3NvY2lhdGUgd2l0aCBzdWNjZXNzLiBFZyAoInNob3VsZCBiZSByZWQiKS4KKyAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJv
ciBpbiB2YWx1ZSBjaGVja2luZy4gMC4wMDEgYnkgZGVmYXVsdC4KKyAqLwordmFyIGNoZWNrRmxv
YXRCdWZmZXIgPSBmdW5jdGlvbihnbCwgdGFyZ2V0LCBleHBlY3RlZCwgb3B0X21zZywgb3B0X2Vy
cm9yUmFuZ2UpIHsKKyAgaWYgKG9wdF9tc2cgPT09IHVuZGVmaW5lZCkKKyAgICBvcHRfbXNnID0g
ImJ1ZmZlciBzaG91bGQgbWF0Y2ggZXhwZWN0ZWQgdmFsdWVzIjsKKworICBpZiAob3B0X2Vycm9y
UmFuZ2UgPT09IHVuZGVmaW5lZCkKKyAgICBvcHRfZXJyb3JSYW5nZSA9IDAuMDAxOworCisgIHZh
ciBmbG9hdEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShleHBlY3RlZC5sZW5ndGgpOworICBnbC5n
ZXRCdWZmZXJTdWJEYXRhKHRhcmdldCwgMCwgZmxvYXRBcnJheSk7CisKKyAgZm9yICh2YXIgaSA9
IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykgeworICAgIGlmIChNYXRoLmFicyhmbG9hdEFy
cmF5W2ldIC0gZXhwZWN0ZWRbaV0pID4gb3B0X2Vycm9yUmFuZ2UpIHsKKyAgICAgIHRlc3RGYWls
ZWQob3B0X21zZyk7CisgICAgICBkZWJ1ZygnYXQgWycgKyBpICsgJ10gZXhwZWN0ZWQ6ICcgKyBl
eHBlY3RlZFtpXSArICcgd2FzICcgKyBmbG9hdEFycmF5W2ldKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgIH0KKyAgdGVzdFBhc3NlZChvcHRfbXNnKTsKK307CisKKy8qKgorICogTG9hZHMgYSB0
ZXh0dXJlLCBjYWxscyBjYWxsYmFjayB3aGVuIGZpbmlzaGVkLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIG9mIGltYWdlIHRvIGxvYWQKKyAqIEBwYXJhbSB7ZnVu
Y3Rpb24oIUltYWdlKTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBh
ZnRlcgorICogICAgICAgIGltYWdlIGhhcyBsb2FkZWQKKyAqIEByZXR1cm4geyFXZWJHTFRleHR1
cmV9IFRoZSBjcmVhdGVkIHRleHR1cmUuCisgKi8KK3ZhciBsb2FkVGV4dHVyZSA9IGZ1bmN0aW9u
KGdsLCB1cmwsIGNhbGxiYWNrKSB7CisgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJl
KCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5F
QVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKKyAg
ICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19G
TElQX1lfV0VCR0wsIHRydWUpOworICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlKTsKKyAgICAgICAg
Y2FsbGJhY2soaW1hZ2UpOworICAgIH07CisgICAgaW1hZ2Uuc3JjID0gdXJsOworICAgIHJldHVy
biB0ZXh0dXJlOworfTsKKworLyoqCisgKiBDaGVja3Mgd2hldGhlciB0aGUgYm91bmQgdGV4dHVy
ZSBoYXMgZXhwZWN0ZWQgZGltZW5zaW9ucy4gT25lIGNvcm5lciBwaXhlbAorICogb2YgdGhlIHRl
eHR1cmUgd2lsbCBiZSBjaGFuZ2VkIGFzIGEgc2lkZSBlZmZlY3QuCisgKiBAcGFyYW0geyFXZWJH
TFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgor
ICogQHBhcmFtIHshV2ViR0xUZXh0dXJlfSB0ZXh0dXJlIFRoZSB0ZXh0dXJlIHRvIGNoZWNrLgor
ICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIEV4cGVjdGVkIHdpZHRoLgorICogQHBhcmFtIHtudW1i
ZXJ9IGhlaWdodCBFeHBlY3RlZCBoZWlnaHQuCisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X2Zvcm1h
dCBUaGUgdGV4dHVyZSdzIGZvcm1hdC4gRGVmYXVsdHMgdG8gUkdCQS4KKyAqIEBwYXJhbSB7R0xl
bnVtfSBvcHRfdHlwZSBUaGUgdGV4dHVyZSdzIHR5cGUuIERlZmF1bHRzIHRvIFVOU0lHTkVEX0JZ
VEUuCisgKi8KK3ZhciBjaGVja1RleHR1cmVTaXplID0gZnVuY3Rpb24oZ2wsIHdpZHRoLCBoZWln
aHQsIG9wdF9mb3JtYXQsIG9wdF90eXBlKSB7CisgIG9wdF9mb3JtYXQgPSBvcHRfZm9ybWF0IHx8
IGdsLlJHQkE7CisgIG9wdF90eXBlID0gb3B0X3R5cGUgfHwgZ2wuVU5TSUdORURfQllURTsKKwor
ICB2YXIgbnVtRWxlbWVudHMgPSBnZXRUeXBlZEFycmF5RWxlbWVudHNQZXJQaXhlbChnbCwgb3B0
X2Zvcm1hdCwgb3B0X3R5cGUpOworICB2YXIgYnVmID0gbmV3IChnbFR5cGVUb1R5cGVkQXJyYXlU
eXBlKGdsLCBvcHRfdHlwZSkpKG51bUVsZW1lbnRzKTsKKworICB2YXIgZXJyb3JzID0gMDsKKyAg
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCB3aWR0aCAtIDEsIGhlaWdodCAtIDEs
IDEsIDEsIG9wdF9mb3JtYXQsIG9wdF90eXBlLCBidWYpOworICBpZiAoZ2wuZ2V0RXJyb3IoKSAh
PSBnbC5OT19FUlJPUikgeworICAgIHRlc3RGYWlsZWQoIlRleHR1cmUgd2FzIHNtYWxsZXIgdGhh
biB0aGUgZXhwZWN0ZWQgc2l6ZSAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQpOworICAgICsrZXJy
b3JzOworICB9CisgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgd2lkdGggLSAx
LCBoZWlnaHQsIDEsIDEsIG9wdF9mb3JtYXQsIG9wdF90eXBlLCBidWYpOworICBpZiAoZ2wuZ2V0
RXJyb3IoKSA9PSBnbC5OT19FUlJPUikgeworICAgIHRlc3RGYWlsZWQoIlRleHR1cmUgd2FzIHRh
bGxlciB0aGFuICIgKyBoZWlnaHQpOworICAgICsrZXJyb3JzOworICB9CisgIGdsLnRleFN1Yklt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgd2lkdGgsIGhlaWdodCAtIDEsIDEsIDEsIG9wdF9mb3Jt
YXQsIG9wdF90eXBlLCBidWYpOworICBpZiAoZ2wuZ2V0RXJyb3IoKSA9PSBnbC5OT19FUlJPUikg
eworICAgIHRlc3RGYWlsZWQoIlRleHR1cmUgd2FzIHdpZGVyIHRoYW4gIiArIHdpZHRoKTsKKyAg
ICArK2Vycm9yczsKKyAgfQorICBpZiAoZXJyb3JzID09IDApIHsKKyAgICB0ZXN0UGFzc2VkKCJU
ZXh0dXJlIGhhZCB0aGUgZXhwZWN0ZWQgc2l6ZSAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQpOwor
ICB9Cit9OworCisvKioKKyAqIE1ha2VzIGEgc2hhbGxvdyBjb3B5IG9mIGFuIG9iamVjdC4KKyAq
IEBwYXJhbSB7IU9iamVjdH0gc3JjIE9iamVjdCB0byBjb3B5CisgKiBAcmV0dXJuIHshT2JqZWN0
fSBUaGUgY29weSBvZiBzcmMuCisgKi8KK3ZhciBzaGFsbG93Q29weU9iamVjdCA9IGZ1bmN0aW9u
KHNyYykgeworICB2YXIgZHN0ID0ge307CisgIGZvciAodmFyIGF0dHIgaW4gc3JjKSB7CisgICAg
aWYgKHNyYy5oYXNPd25Qcm9wZXJ0eShhdHRyKSkgeworICAgICAgZHN0W2F0dHJdID0gc3JjW2F0
dHJdOworICAgIH0KKyAgfQorICByZXR1cm4gZHN0OworfTsKKworLyoqCisgKiBDaGVja3MgaWYg
YW4gYXR0cmlidXRlIGV4aXN0cyBvbiBhbiBvYmplY3QgY2FzZSBpbnNlbnNpdGl2ZS4KKyAqIEBw
YXJhbSB7IU9iamVjdH0gb2JqIE9iamVjdCB0byBjaGVjaworICogQHBhcmFtIHtzdHJpbmd9IGF0
dHIgTmFtZSBvZiBhdHRyaWJ1dGUgdG8gbG9vayBmb3IuCisgKiBAcmV0dXJuIHtzdHJpbmc/fSBU
aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGlmIGl0IGV4aXN0cywKKyAqICAgICAgICAgdW5kZWZp
bmVkIGlmIG5vdC4KKyAqLwordmFyIGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSA9IGZ1bmN0
aW9uKG9iaiwgYXR0cikgeworICB2YXIgbG93ZXIgPSBhdHRyLnRvTG93ZXJDYXNlKCk7CisgIGZv
ciAodmFyIGtleSBpbiBvYmopIHsKKyAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYg
a2V5LnRvTG93ZXJDYXNlKCkgPT0gbG93ZXIpIHsKKyAgICAgIHJldHVybiBrZXk7CisgICAgfQor
ICB9Cit9OworCisvKioKKyAqIFJldHVybnMgYSBtYXAgb2YgVVJMIHF1ZXJ5c3RyaW5nIG9wdGlv
bnMKKyAqIEByZXR1cm4ge09iamVjdD99IE9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgdmFsdWVz
IGluIHRoZSBVUkwgcXVlcnlzdHJpbmcKKyAqLwordmFyIGdldFVybE9wdGlvbnMgPSAoZnVuY3Rp
b24oKSB7CisgIHZhciBfdXJsT3B0aW9uc1BhcnNlZCA9IGZhbHNlOworICB2YXIgX3VybE9wdGlv
bnMgPSB7fTsKKyAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgIGlmICghX3VybE9wdGlvbnNQYXJz
ZWQpIHsKKyAgICAgIHZhciBzID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CisgICAgICB2YXIgcSA9
IHMuaW5kZXhPZigiPyIpOworICAgICAgdmFyIGUgPSBzLmluZGV4T2YoIiMiKTsKKyAgICAgIGlm
IChlIDwgMCkgeworICAgICAgICBlID0gcy5sZW5ndGg7CisgICAgICB9CisgICAgICB2YXIgcXVl
cnkgPSBzLnN1YnN0cmluZyhxICsgMSwgZSk7CisgICAgICB2YXIgcGFpcnMgPSBxdWVyeS5zcGxp
dCgiJiIpOworICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkg
eworICAgICAgICB2YXIga2V5VmFsdWUgPSBwYWlyc1tpaV0uc3BsaXQoIj0iKTsKKyAgICAgICAg
dmFyIGtleSA9IGtleVZhbHVlWzBdOworICAgICAgICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21w
b25lbnQoa2V5VmFsdWVbMV0pOworICAgICAgICBfdXJsT3B0aW9uc1trZXldID0gdmFsdWU7Cisg
ICAgICB9CisgICAgICBfdXJsT3B0aW9uc1BhcnNlZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0
dXJuIF91cmxPcHRpb25zOworICB9Cit9KSgpOworCit2YXIgZGVmYXVsdDNEQ29udGV4dFZlcnNp
b24gPSAxOworCisvKioKKyAqIFNldCB0aGUgZGVmYXVsdCBjb250ZXh0IHZlcnNpb24gZm9yIGNy
ZWF0ZTNEQ29udGV4dC4KKyAqIEluaXRpYWxseSB0aGUgZGVmYXVsdCB2ZXJzaW9uIGlzIDEuCisg
KiBAcGFyYW0ge251bWJlcn0gRGVmYXVsdCB2ZXJzaW9uIG9mIFdlYkdMIGNvbnRleHRzLgorICov
Cit2YXIgc2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24gPSBmdW5jdGlvbih2ZXJzaW9uKSB7Cisg
ICAgZGVmYXVsdDNEQ29udGV4dFZlcnNpb24gPSB2ZXJzaW9uOworfTsKKworLyoqCisgKiBHZXQg
dGhlIGRlZmF1bHQgY29udGV4IHZlcnNpb24gZm9yIGNyZWF0ZTNEQ29udGV4dC4KKyAqIEZpcnN0
IGl0IGxvb2tzIGF0IHRoZSBVUkkgb3B0aW9uIHx3ZWJnbFZlcnNpb258LiBJZiBpdCBkb2VzIG5v
dCBleGlzdCwKKyAqIHRoZW4gbG9vayBhdCB0aGUgZ2xvYmFsIGRlZmF1bHQzRENvbnRleHRWZXJz
aW9uIHZhcmlhYmxlLgorICovCit2YXIgZ2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24gPSBmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4gcGFyc2VJbnQoZ2V0VXJsT3B0aW9ucygpLndlYmdsVmVyc2lv
biwgMTApIHx8IGRlZmF1bHQzRENvbnRleHRWZXJzaW9uOworfTsKKworLyoqCisgKiBDcmVhdGVz
IGEgd2ViZ2wgY29udGV4dC4KKyAqIEBwYXJhbSB7IUNhbnZhc3xzdHJpbmd9IG9wdF9jYW52YXMg
VGhlIGNhbnZhcyB0YWcgdG8gZ2V0CisgKiAgICAgY29udGV4dCBmcm9tLiBJZiBvbmUgaXMgbm90
IHBhc3NlZCBpbiBvbmUgd2lsbCBiZQorICogICAgIGNyZWF0ZWQuIElmIGl0J3MgYSBzdHJpbmcg
aXQncyBhc3N1bWVkIHRvIGJlIHRoZSBpZCBvZiBhCisgKiAgICAgY2FudmFzLgorICogQHBhcmFt
IHtPYmplY3R9IG9wdF9hdHRyaWJ1dGVzIENvbnRleHQgYXR0cmlidXRlcy4KKyAqIEBwYXJhbSB7
IW51bWJlcn0gb3B0X3ZlcnNpb24gVmVyc2lvbiBvZiBXZWJHTCBjb250ZXh0IHRvIGNyZWF0ZS4K
KyAqICAgICBUaGUgZGVmYXVsdCB2ZXJzaW9uIGNhbiBiZSBzZXQgYnkgY2FsbGluZyBzZXREZWZh
dWx0M0RDb250ZXh0VmVyc2lvbi4KKyAqIEByZXR1cm4geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9
IFRoZSBjcmVhdGVkIGNvbnRleHQuCisgKi8KK3ZhciBjcmVhdGUzRENvbnRleHQgPSBmdW5jdGlv
bihvcHRfY2FudmFzLCBvcHRfYXR0cmlidXRlcywgb3B0X3ZlcnNpb24pIHsKKyAgaWYgKHdpbmRv
dy5pbml0VGVzdGluZ0hhcm5lc3MpIHsKKyAgICB3aW5kb3cuaW5pdFRlc3RpbmdIYXJuZXNzKCk7
CisgIH0KKyAgdmFyIGF0dHJpYnV0ZXMgPSBzaGFsbG93Q29weU9iamVjdChvcHRfYXR0cmlidXRl
cyB8fCB7fSk7CisgIGlmICghaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlKGF0dHJpYnV0ZXMs
ICJhbnRpYWxpYXMiKSkgeworICAgIGF0dHJpYnV0ZXMuYW50aWFsaWFzID0gZmFsc2U7CisgIH0K
KyAgaWYgKCFvcHRfdmVyc2lvbikgeworICAgIG9wdF92ZXJzaW9uID0gZ2V0RGVmYXVsdDNEQ29u
dGV4dFZlcnNpb24oKTsKKyAgfQorICBvcHRfY2FudmFzID0gb3B0X2NhbnZhcyB8fCBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgaWYgKHR5cGVvZiBvcHRfY2FudmFzID09ICdz
dHJpbmcnKSB7CisgICAgb3B0X2NhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdF9j
YW52YXMpOworICB9CisgIHZhciBjb250ZXh0ID0gbnVsbDsKKworICB2YXIgbmFtZXM7CisgIHN3
aXRjaCAob3B0X3ZlcnNpb24pIHsKKyAgICBjYXNlIDI6CisgICAgICBuYW1lcyA9IFsid2ViZ2wy
Il07IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBuYW1lcyA9IFsid2ViZ2wiLCAiZXhwZXJp
bWVudGFsLXdlYmdsIl07IGJyZWFrOworICB9CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1l
cy5sZW5ndGg7ICsraSkgeworICAgIHRyeSB7CisgICAgICBjb250ZXh0ID0gb3B0X2NhbnZhcy5n
ZXRDb250ZXh0KG5hbWVzW2ldLCBhdHRyaWJ1dGVzKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
fQorICAgIGlmIChjb250ZXh0KSB7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgaWYgKCFj
b250ZXh0KSB7CisgICAgdGVzdEZhaWxlZCgiVW5hYmxlIHRvIGZldGNoIFdlYkdMIHJlbmRlcmlu
ZyBjb250ZXh0IGZvciBDYW52YXMiKTsKKyAgfSBlbHNlIHsKKyAgICBpZiAoIXdpbmRvdy5fd3R1
X2NvbnRleHRzKSB7CisgICAgICB3aW5kb3cuX3d0dV9jb250ZXh0cyA9IFtdCisgICAgfQorICAg
IHdpbmRvdy5fd3R1X2NvbnRleHRzLnB1c2goY29udGV4dCk7CisgIH0KKyAgcmV0dXJuIGNvbnRl
eHQ7Cit9OworCisvKioKKyAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBnaXZlbiBjb250ZXh0IGlz
IFdlYkdMIDIuMCBvciBncmVhdGVyLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0
fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEByZXR1cm4ge2Jvb2xl
YW59IFRydWUgaWYgdGhlIGdpdmVuIGNvbnRleHQgaXMgV2ViR0wgMi4wIG9yIGdyZWF0ZXIuCisg
Ki8KK3ZhciBpc1dlYkdMMiA9IGZ1bmN0aW9uKGdsKSB7CisgIC8vIER1Y2sgdHlwaW5nIGlzIHVz
ZWQgc28gdGhhdCB0aGUgY29uZm9ybWFuY2Ugc3VpdGUgY2FuIGJlIHJ1bgorICAvLyBhZ2FpbnN0
IGxpYnJhcmllcyBlbXVsYXRpbmcgV2ViR0wgMS4wIG9uIHRvcCBvZiBXZWJHTCAyLjAuCisgIHJl
dHVybiAhIWdsLmRyYXdBcnJheXNJbnN0YW5jZWQ7Cit9OworCisvKioKKyAqIERlZmluZXMgdGhl
IGV4Y2VwdGlvbiB0eXBlIGZvciBhIEdMIGVycm9yLgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFy
YW0ge3N0cmluZ30gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBlcnJvciBHTCBlcnJvciBjb2RlCisgKi8KK2Z1bmN0aW9uIEdMRXJyb3JFeGNlcHRpb24gKG1l
c3NhZ2UsIGVycm9yKSB7CisgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgdGhpcy5uYW1l
ID0gIkdMRXJyb3JFeGNlcHRpb24iOworICAgdGhpcy5lcnJvciA9IGVycm9yOworfTsKKworLyoq
CisgKiBXcmFwcyBhIFdlYkdMIGZ1bmN0aW9uIHdpdGggYSBmdW5jdGlvbiB0aGF0IHRocm93cyBh
biBleGNlcHRpb24gaWYgdGhlcmUgaXMKKyAqIGFuIGVycm9yLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7c3RyaW5nfSBmbmFtZSBOYW1lIG9mIGZ1bmN0aW9uIHRvIHdyYXAuCisgKiBAcmV0
dXJuIHtmdW5jdGlvbigpfSBUaGUgd3JhcHBlZCBmdW5jdGlvbi4KKyAqLwordmFyIGNyZWF0ZUdM
RXJyb3JXcmFwcGVyID0gZnVuY3Rpb24oY29udGV4dCwgZm5hbWUpIHsKKyAgcmV0dXJuIGZ1bmN0
aW9uKCkgeworICAgIHZhciBydiA9IGNvbnRleHRbZm5hbWVdLmFwcGx5KGNvbnRleHQsIGFyZ3Vt
ZW50cyk7CisgICAgdmFyIGVyciA9IGNvbnRleHQuZ2V0RXJyb3IoKTsKKyAgICBpZiAoZXJyICE9
IGNvbnRleHQuTk9fRVJST1IpIHsKKyAgICAgIHZhciBtc2cgPSAiR0wgZXJyb3IgIiArIGdsRW51
bVRvU3RyaW5nKGNvbnRleHQsIGVycikgKyAiIGluICIgKyBmbmFtZTsKKyAgICAgIHRocm93IG5l
dyBHTEVycm9yRXhjZXB0aW9uKG1zZywgZXJyKTsKKyAgICB9CisgICAgcmV0dXJuIHJ2OworICB9
OworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgV2ViR0wgY29udGV4dCB3aGVyZSBhbGwgZnVuY3Rp
b25zIGFyZSB3cmFwcGVkIHRvIHRocm93IGFuIGV4Y2VwdGlvbgorICogaWYgdGhlcmUgaXMgYW4g
ZXJyb3IuCisgKiBAcGFyYW0geyFDYW52YXN9IGNhbnZhcyBUaGUgSFRNTCBjYW52YXMgdG8gZ2V0
IGEgY29udGV4dCBmcm9tLgorICogQHBhcmFtIHtPYmplY3R9IG9wdF9hdHRyaWJ1dGVzIENvbnRl
eHQgYXR0cmlidXRlcy4KKyAqIEBwYXJhbSB7IW51bWJlcn0gb3B0X3ZlcnNpb24gVmVyc2lvbiBv
ZiBXZWJHTCBjb250ZXh0IHRvIGNyZWF0ZQorICogQHJldHVybiB7IU9iamVjdH0gVGhlIHdyYXBw
ZWQgY29udGV4dC4KKyAqLworZnVuY3Rpb24gY3JlYXRlM0RDb250ZXh0V2l0aFdyYXBwZXJUaGF0
VGhyb3dzT25HTEVycm9yKGNhbnZhcywgb3B0X2F0dHJpYnV0ZXMsIG9wdF92ZXJzaW9uKSB7Cisg
IHZhciBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgb3B0X2F0dHJpYnV0ZXMsIG9w
dF92ZXJzaW9uKTsKKyAgdmFyIHdyYXAgPSB7fTsKKyAgZm9yICh2YXIgaSBpbiBjb250ZXh0KSB7
CisgICAgdHJ5IHsKKyAgICAgIGlmICh0eXBlb2YgY29udGV4dFtpXSA9PSAnZnVuY3Rpb24nKSB7
CisgICAgICAgIHdyYXBbaV0gPSBjcmVhdGVHTEVycm9yV3JhcHBlcihjb250ZXh0LCBpKTsKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIHdyYXBbaV0gPSBjb250ZXh0W2ldOworICAgICAgfQorICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgIGVycm9yKCJjcmVhdGVDb250ZXh0V3JhcHBlclRoYXRUaHJv
d3NPbkdMRXJyb3I6IEVycm9yIGFjY2Vzc2luZyAiICsgaSk7CisgICAgfQorICB9CisgIHdyYXAu
Z2V0RXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBjb250ZXh0LmdldEVycm9yKCk7
CisgIH07CisgIHJldHVybiB3cmFwOworfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IGFuIGV2YWx1
YXRlZCBleHByZXNzaW9uIGdlbmVyYXRlcyBhIHNwZWNpZmljIEdMIGVycm9yLgorICogQHBhcmFt
IHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRv
IHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfEFycmF5LjxudW1iZXI+fSBnbEVycm9ycyBUaGUgZXhw
ZWN0ZWQgZ2wgZXJyb3Igb3IgYW4gYXJyYXkgb2YgZXhwZWN0ZWQgZXJyb3JzLgorICogQHBhcmFt
IHtzdHJpbmd9IGV2YWxTdHIgVGhlIHN0cmluZyB0byBldmFsdWF0ZS4KKyAqLwordmFyIHNob3Vs
ZEdlbmVyYXRlR0xFcnJvciA9IGZ1bmN0aW9uKGdsLCBnbEVycm9ycywgZXZhbFN0ciwgb3B0X21z
ZykgeworICB2YXIgZXhjZXB0aW9uOworICB0cnkgeworICAgIGV2YWwoZXZhbFN0cik7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICBleGNlcHRpb24gPSBlOworICB9CisgIGlmIChleGNlcHRpb24pIHsK
KyAgICB0ZXN0RmFpbGVkKGV2YWxTdHIgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9u
KTsKKyAgICByZXR1cm4gLTE7CisgIH0gZWxzZSB7CisgICAgaWYgKCFvcHRfbXNnKSB7CisgICAg
ICBvcHRfbXNnID0gImFmdGVyIGV2YWx1YXRpbmc6ICIgKyBldmFsU3RyOworICAgIH0KKyAgICBy
ZXR1cm4gZ2xFcnJvclNob3VsZEJlKGdsLCBnbEVycm9ycywgb3B0X21zZyk7CisgIH0KK307CisK
Ky8qKgorICogVGVzdHMgdGhhdCBhbiBldmFsdWF0ZWQgZXhwcmVzc2lvbiBkb2VzIG5vdCBnZW5l
cmF0ZSBhIEdMIGVycm9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBU
aGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBldmFs
U3RyIFRoZSBzdHJpbmcgdG8gZXZhbHVhdGUuCisgKi8KK3ZhciBmYWlsSWZHTEVycm9yID0gZnVu
Y3Rpb24oZ2wsIGV2YWxTdHIpIHsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdHJ5IHsKKyAgICBldmFs
KGV2YWxTdHIpOworICB9IGNhdGNoIChlKSB7CisgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorICBp
ZiAoZXhjZXB0aW9uKSB7CisgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiB0aHJldyBleGNlcHRp
b24gIiArIGV4Y2VwdGlvbik7CisgIH0gZWxzZSB7CisgICAgZ2xFcnJvclNob3VsZEJlSW1wbChn
bCwgZ2wuTk9fRVJST1IsIGZhbHNlLCAiYWZ0ZXIgZXZhbHVhdGluZzogIiArIGV2YWxTdHIpOwor
ICB9Cit9OworCisvKioKKyAqIFRlc3RzIHRoYXQgdGhlIGZpcnN0IGVycm9yIEdMIHJldHVybnMg
aXMgdGhlIHNwZWNpZmllZCBlcnJvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4
dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJl
cnxBcnJheS48bnVtYmVyPn0gZ2xFcnJvcnMgVGhlIGV4cGVjdGVkIGdsIGVycm9yIG9yIGFuIGFy
cmF5IG9mIGV4cGVjdGVkIGVycm9ycy4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE9wdGlv
bmFsIGFkZGl0aW9uYWwgbWVzc2FnZS4KKyAqLwordmFyIGdsRXJyb3JTaG91bGRCZSA9IGZ1bmN0
aW9uKGdsLCBnbEVycm9ycywgb3B0X21zZykgeworICByZXR1cm4gZ2xFcnJvclNob3VsZEJlSW1w
bChnbCwgZ2xFcnJvcnMsIHRydWUsIG9wdF9tc2cpOworfTsKKworY29uc3QgZ2xFcnJvckFzc2Vy
dCA9IGZ1bmN0aW9uKGdsLCBnbEVycm9ycywgb3B0X21zZykgeworICByZXR1cm4gZ2xFcnJvclNo
b3VsZEJlSW1wbChnbCwgZ2xFcnJvcnMsIGZhbHNlLCBvcHRfbXNnKTsKK307CisKKy8qKgorICog
VGVzdHMgdGhhdCB0aGUgZ2l2ZW4gZnJhbWVidWZmZXIgaGFzIGEgc3BlY2lmaWMgc3RhdHVzCisg
KiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ8QXJyYXkuPG51bWJlcj59IGdsU3RhdHVz
ZXMgVGhlIGV4cGVjdGVkIGdsCisgKiAgICAgICAgc3RhdHVzIG9yIGFuIGFycmF5IG9mIGV4cGVj
dGVkIHN0YXR1c2VzLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgT3B0aW9uYWwgYWRkaXRp
b25hbCBtZXNzYWdlLgorICovCit2YXIgZnJhbWVidWZmZXJTdGF0dXNTaG91bGRCZSA9IGZ1bmN0
aW9uKGdsLCB0YXJnZXQsIGdsU3RhdHVzZXMsIG9wdF9tc2cpIHsKKyAgaWYgKCFnbFN0YXR1c2Vz
Lmxlbmd0aCkgeworICAgIGdsU3RhdHVzZXMgPSBbZ2xTdGF0dXNlc107CisgIH0KKyAgb3B0X21z
ZyA9IG9wdF9tc2cgfHwgIiI7CisgIGNvbnN0IHN0YXR1cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXModGFyZ2V0KTsKKyAgY29uc3QgbmR4ID0gZ2xTdGF0dXNlcy5pbmRleE9mKHN0YXR1cyk7
CisgIGNvbnN0IGV4cGVjdGVkID0gZ2xTdGF0dXNlcy5tYXAoKHN0YXR1cykgPT4geworICAgIHJl
dHVybiBnbEVudW1Ub1N0cmluZyhnbCwgc3RhdHVzKTsKKyAgfSkuam9pbignIG9yICcpOworICBp
ZiAobmR4IDwgMCkgeworICAgIGxldCBtc2cgPSAiY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyBleHBl
Y3RlZCIgKyAoKGdsU3RhdHVzZXMubGVuZ3RoID4gMSkgPyAiIG9uZSBvZjogIiA6ICI6ICIpICsK
KyAgICAgIGV4cGVjdGVkICsgICIuIFdhcyAiICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHN0YXR1cyk7
CisgICAgaWYgKG9wdF9tc2cpIHsKKyAgICAgIG1zZyArPSAiOiAiICsgb3B0X21zZzsKKyAgICB9
CisgICAgdGVzdEZhaWxlZChtc2cpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBsZXQgbXNn
ID0gYGNoZWNrRnJhbWVidWZmZXJTdGF0dXMgd2FzICR7Z2xFbnVtVG9TdHJpbmcoZ2wsIHN0YXR1
cyl9YDsKKyAgaWYgKGdsU3RhdHVzZXMubGVuZ3RoID4gMSkgeworICAgIG1zZyArPSBgLCBvbmUg
b2Y6ICR7ZXhwZWN0ZWR9YDsKKyAgfQorICBpZiAob3B0X21zZykgeworICAgIG1zZyArPSAiOiAi
ICsgb3B0X21zZzsKKyAgfQorICB0ZXN0UGFzc2VkKG1zZyk7CisgIHJldHVybiBbc3RhdHVzXTsK
K30KKworLyoqCisgKiBUZXN0cyB0aGF0IHRoZSBmaXJzdCBlcnJvciBHTCByZXR1cm5zIGlzIHRo
ZSBzcGVjaWZpZWQgZXJyb3IuIEFsbG93cyBzdXBwcmVzc2lvbiBvZiBzdWNjZXNzZXMuCisgKiBA
cGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ8QXJyYXkuPG51bWJlcj59IGdsRXJyb3JzIFRo
ZSBleHBlY3RlZCBnbCBlcnJvciBvciBhbiBhcnJheSBvZiBleHBlY3RlZCBlcnJvcnMuCisgKiBA
cGFyYW0ge2Jvb2xlYW59IHJlcG9ydFN1Y2Nlc3NlcyBXaGV0aGVyIHRvIHJlcG9ydCBzdWNjZXNz
ZXMgYXMgcGFzc2VzLCBvciB0byBzaWxlbnRseSBwYXNzLgorICogQHBhcmFtIHtzdHJpbmd9IG9w
dF9tc2cgT3B0aW9uYWwgYWRkaXRpb25hbCBtZXNzYWdlLgorICovCit2YXIgZ2xFcnJvclNob3Vs
ZEJlSW1wbCA9IGZ1bmN0aW9uKGdsLCBnbEVycm9ycywgcmVwb3J0U3VjY2Vzc2VzLCBvcHRfbXNn
KSB7CisgIGlmICghZ2xFcnJvcnMubGVuZ3RoKSB7CisgICAgZ2xFcnJvcnMgPSBbZ2xFcnJvcnNd
OworICB9CisgIG9wdF9tc2cgPSBvcHRfbXNnIHx8ICIiOworCisgIGNvbnN0IGZuRXJyU3RyID0g
ZnVuY3Rpb24oZXJyVmFsKSB7CisgICAgaWYgKGVyclZhbCA9PSAwKSByZXR1cm4gIk5PX0VSUk9S
IjsKKyAgICByZXR1cm4gZ2xFbnVtVG9TdHJpbmcoZ2wsIGVyclZhbCk7CisgIH07CisKKyAgdmFy
IGVyciA9IGdsLmdldEVycm9yKCk7CisgIHZhciBuZHggPSBnbEVycm9ycy5pbmRleE9mKGVycik7
CisgIHZhciBlcnJTdHJzID0gW107CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBnbEVycm9ycy5s
ZW5ndGg7ICsraWkpIHsKKyAgICBlcnJTdHJzLnB1c2goZm5FcnJTdHIoZ2xFcnJvcnNbaWldKSk7
CisgIH0KKyAgdmFyIGV4cGVjdGVkID0gZXJyU3Rycy5qb2luKCIgb3IgIik7CisgIGlmIChuZHgg
PCAwKSB7CisgICAgdmFyIG1zZyA9ICJnZXRFcnJvciBleHBlY3RlZCIgKyAoKGdsRXJyb3JzLmxl
bmd0aCA+IDEpID8gIiBvbmUgb2Y6ICIgOiAiOiAiKTsKKyAgICB0ZXN0RmFpbGVkKG1zZyArIGV4
cGVjdGVkICsgICIuIFdhcyAiICsgZm5FcnJTdHIoZXJyKSArICIgOiAiICsgb3B0X21zZyk7Cisg
IH0gZWxzZSBpZiAocmVwb3J0U3VjY2Vzc2VzKSB7CisgICAgdmFyIG1zZyA9ICJnZXRFcnJvciB3
YXMgIiArICgoZ2xFcnJvcnMubGVuZ3RoID4gMSkgPyAib25lIG9mOiAiIDogImV4cGVjdGVkIHZh
bHVlOiAiKTsKKyAgICB0ZXN0UGFzc2VkKG1zZyArIGV4cGVjdGVkICsgIiA6ICIgKyBvcHRfbXNn
KTsKKyAgfQorICByZXR1cm4gZXJyOworfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IGEgZnVuY3Rp
b24gdGhyb3dzIG9yIG5vdC4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdM
Q29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0gdGhyb3dUeXBlIFR5cGUgb2YgdGhyb3duIGVycm9y
IChlLmcuIFR5cGVFcnJvciksIG9yIGZhbHNlLgorICogQHBhcmFtIHtzdHJpbmd9IGluZm8gSW5m
byBvbiB3aGF0J3MgYmVpbmcgdGVzdGVkCisgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIFRoZSBm
dW5jIHRvIHRlc3QuCisgKi8KK3ZhciBzaG91bGRUaHJvdyA9IGZ1bmN0aW9uKGdsLCB0aHJvd1R5
cGUsIGluZm8sIGZ1bmMpIHsKKyAgd2hpbGUgKGdsLmdldEVycm9yKCkpIHt9CisKKyAgdmFyIHNo
b3VsZFRocm93ID0gKHRocm93VHlwZSAhPSBmYWxzZSk7CisKKyAgdHJ5IHsKKyAgICBmdW5jKCk7
CisKKyAgICBpZiAoc2hvdWxkVGhyb3cpIHsKKyAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCB0aHJv
dyBhICIgKyB0aHJvd1R5cGUubmFtZSArICI6ICIgKyBpbmZvKTsKKyAgICB9IGVsc2UgeworICAg
ICAgdGVzdFBhc3NlZCgiU2hvdWxkIG5vdCBoYXZlIHRocm93bjogIiArIGluZm8pOworICAgIH0K
KyAgfSBjYXRjaCAoZSkgeworICAgIGlmIChzaG91bGRUaHJvdykgeworICAgICAgaWYgKGUgaW5z
dGFuY2VvZiB0aHJvd1R5cGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIHRocm93IGEg
IiArIHRocm93VHlwZS5uYW1lICsgIjogIiArIGluZm8pOworICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiU2hvdWxkIHRocm93IGEgIiArIHRocm93VHlwZS5uYW1lICsgIiwgdGhy
ZXcgIiArIGUubmFtZSArICI6ICIgKyBpbmZvKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAg
ICAgdGVzdEZhaWxlZCgiU2hvdWxkIG5vdCBoYXZlIHRocm93bjogIiArIGluZm8pOworICAgIH0K
KworICAgIGlmIChnbC5nZXRFcnJvcigpKSB7CisgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgbm90
IGdlbmVyYXRlIGFuIGVycm9yIHdoZW4gdGhyb3dpbmc6ICIgKyBpbmZvKTsKKyAgICB9CisgIH0K
KworICB3aGlsZSAoZ2wuZ2V0RXJyb3IoKSkge30KK307CisKKy8qKgorICogTGlua3MgYSBXZWJH
TCBwcm9ncmFtLCB0aHJvd3MgaWYgdGhlcmUgYXJlIGVycm9ycy4KKyAqIEBwYXJhbSB7IVdlYkdM
UmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisg
KiBAcGFyYW0geyFXZWJHTFByb2dyYW19IHByb2dyYW0gVGhlIFdlYkdMUHJvZ3JhbSB0byBsaW5r
LgorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBj
YWxsYmFjayBmb3IgZXJyb3JzLgorICovCit2YXIgbGlua1Byb2dyYW0gPSBmdW5jdGlvbihnbCwg
cHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIGVyckZuID0gb3B0X2Vycm9yQ2Fs
bGJhY2sgfHwgdGVzdEZhaWxlZDsKKyAgLy8gTGluayB0aGUgcHJvZ3JhbQorICBnbC5saW5rUHJv
Z3JhbShwcm9ncmFtKTsKKworICAvLyBDaGVjayB0aGUgbGluayBzdGF0dXMKKyAgdmFyIGxpbmtl
ZCA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpOworICBp
ZiAoIWxpbmtlZCkgeworICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsK
KyAgICB2YXIgZXJyb3IgPSBnbC5nZXRQcm9ncmFtSW5mb0xvZyAocHJvZ3JhbSk7CisKKyAgICBl
cnJGbigiRXJyb3IgaW4gcHJvZ3JhbSBsaW5raW5nOiIgKyBlcnJvcik7CisKKyAgICBnbC5kZWxl
dGVQcm9ncmFtKHByb2dyYW0pOworICB9Cit9OworCisvKioKKyAqIExvYWRzIHRleHQgZnJvbSBh
biBleHRlcm5hbCBmaWxlLiBUaGlzIGZ1bmN0aW9uIGlzIGFzeW5jaHJvbm91cy4KKyAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJuYWwgZmlsZS4KKyAqIEBwYXJhbSB7
IWZ1bmN0aW9uKGJvb2wsIHN0cmluZyk6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2VudCBhIGJv
b2wgZm9yCisgKiAgICAgc3VjY2VzcyBhbmQgdGhlIHN0cmluZy4KKyAqLwordmFyIGxvYWRUZXh0
RmlsZUFzeW5jID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgeworICBsb2cgKCJsb2FkaW5nOiAi
ICsgdXJsKTsKKyAgdmFyIGVycm9yID0gJ2xvYWRUZXh0RmlsZUFzeW5jIGZhaWxlZCB0byBsb2Fk
IHVybCAiJyArIHVybCArICciJzsKKyAgdmFyIHJlcXVlc3Q7CisgIGlmICh3aW5kb3cuWE1MSHR0
cFJlcXVlc3QpIHsKKyAgICByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgaWYg
KHJlcXVlc3Qub3ZlcnJpZGVNaW1lVHlwZSkgeworICAgICAgcmVxdWVzdC5vdmVycmlkZU1pbWVU
eXBlKCd0ZXh0L3BsYWluJyk7CisgICAgfQorICB9IGVsc2UgeworICAgIHRocm93ICdYTUxIdHRw
UmVxdWVzdCBpcyBkaXNhYmxlZCc7CisgIH0KKyAgdHJ5IHsKKyAgICByZXF1ZXN0Lm9wZW4oJ0dF
VCcsIHVybCwgdHJ1ZSk7CisgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlv
bigpIHsKKyAgICAgIGlmIChyZXF1ZXN0LnJlYWR5U3RhdGUgPT0gNCkgeworICAgICAgICB2YXIg
dGV4dCA9ICcnOworICAgICAgICAvLyBIVFRQIHJlcG9ydHMgc3VjY2VzcyB3aXRoIGEgMjAwIHN0
YXR1cy4gVGhlIGZpbGUgcHJvdG9jb2wgcmVwb3J0cworICAgICAgICAvLyBzdWNjZXNzIHdpdGgg
emVyby4gSFRUUCBkb2VzIG5vdCB1c2UgemVybyBhcyBhIHN0YXR1cyBjb2RlICh0aGV5CisgICAg
ICAgIC8vIHN0YXJ0IGF0IDEwMCkuCisgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemls
bGEub3JnL0VuL1VzaW5nX1hNTEh0dHBSZXF1ZXN0CisgICAgICAgIHZhciBzdWNjZXNzID0gcmVx
dWVzdC5zdGF0dXMgPT0gMjAwIHx8IHJlcXVlc3Quc3RhdHVzID09IDA7CisgICAgICAgIGlmIChz
dWNjZXNzKSB7CisgICAgICAgICAgdGV4dCA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OworICAgICAg
ICAgIGxvZygiY29tcGxldGVkIGxvYWQgcmVxdWVzdDogIiArIHVybCk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgbG9nKCJsb2FkaW5nICIgKyB1cmwgKyAiIHJlc3VsdGVkIGluIHVuZXhw
ZWN0ZWQgc3RhdHVzOiAiICsgcmVxdWVzdC5zdGF0dXMgKyAiICIgKyByZXF1ZXN0LnN0YXR1c1Rl
eHQpOworICAgICAgICB9CisgICAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIHRleHQpOworICAgICAg
fQorICAgIH07CisgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXJyb3JFdmVudCkgewor
ICAgICAgbG9nKCJlcnJvciBvY2N1cnJlZCBsb2FkaW5nICIgKyB1cmwpOworICAgICAgY2FsbGJh
Y2soZmFsc2UsICcnKTsKKyAgICB9OworICAgIHJlcXVlc3Quc2VuZChudWxsKTsKKyAgfSBjYXRj
aCAoZXJyKSB7CisgICAgbG9nKCJmYWlsZWQgdG8gbG9hZDogIiArIHVybCArICIgd2l0aCBleGNl
cHRpb24gIiArIGVyci5tZXNzYWdlKTsKKyAgICBjYWxsYmFjayhmYWxzZSwgJycpOworICB9Cit9
OworCisvKioKKyAqIFJlY3Vyc2l2ZWx5IGxvYWRzIGEgZmlsZSBhcyBhIGxpc3QuIEVhY2ggbGlu
ZSBpcyBwYXJzZWQgZm9yIGEgcmVsYXRpdmUKKyAqIHBhdGguIElmIHRoZSBmaWxlIGVuZHMgaW4g
LnR4dCB0aGUgY29udGVudHMgb2YgdGhhdCBmaWxlIGlzIGluc2VydGVkIGluCisgKiB0aGUgbGlz
dC4KKyAqCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSB1cmwgb2YgdGhlIGV4dGVybmFsIGZp
bGUuCisgKiBAcGFyYW0geyFmdW5jdGlvbihib29sLCBBcnJheTxzdHJpbmc+KTogdm9pZH0gY2Fs
bGJhY2sgdGhhdCBpcyBzZW50IGEgYm9vbAorICogICAgIGZvciBzdWNjZXNzIGFuZCB0aGUgYXJy
YXkgb2Ygc3RyaW5ncy4KKyAqLwordmFyIGdldEZpbGVMaXN0QXN5bmMgPSBmdW5jdGlvbih1cmws
IGNhbGxiYWNrKSB7CisgIHZhciBmaWxlcyA9IFtdOworCisgIHZhciBnZXRGaWxlTGlzdEltcGwg
PSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CisgICAgdmFyIGZpbGVzID0gW107CisgICAgaWYg
KHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcudHh0JykgeworICAgICAgbG9hZFRleHRG
aWxlQXN5bmModXJsLCBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nl
c3MsIHRleHQpIHsKKyAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGNhbGxi
YWNrKGZhbHNlLCAnJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAg
ICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7CisgICAgICAgICAgdmFyIHByZWZpeCA9
ICcnOworICAgICAgICAgIHZhciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2YoJy8nKTsKKyAg
ICAgICAgICBpZiAobGFzdFNsYXNoID49IDApIHsKKyAgICAgICAgICAgIHByZWZpeCA9IHVybC5z
dWJzdHIoMCwgbGFzdFNsYXNoICsgMSk7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBmYWls
ID0gZmFsc2U7CisgICAgICAgICAgdmFyIGNvdW50ID0gMTsKKyAgICAgICAgICB2YXIgaW5kZXgg
PSAwOworICAgICAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkp
IHsKKyAgICAgICAgICAgIHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxzXHMqLywgJycp
LnJlcGxhY2UoL1xzXHMqJC8sICcnKTsKKyAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoID4gNCAm
JgorICAgICAgICAgICAgICAgIHN0clswXSAhPSAnIycgJiYKKyAgICAgICAgICAgICAgICBzdHJb
MF0gIT0gIjsiICYmCisgICAgICAgICAgICAgICAgc3RyLnN1YnN0cigwLCAyKSAhPSAiLy8iKSB7
CisgICAgICAgICAgICAgIHZhciBuYW1lcyA9IHN0ci5zcGxpdCgvICsvKTsKKyAgICAgICAgICAg
ICAgdmFyIG5ld191cmwgPSBwcmVmaXggKyBzdHI7CisgICAgICAgICAgICAgIGlmIChuYW1lcy5s
ZW5ndGggPT0gMSkgeworICAgICAgICAgICAgICAgIG5ld191cmwgPSBwcmVmaXggKyBzdHI7Cisg
ICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICBnZXRGaWxlTGlzdEltcGwo
bmV3X3VybCwgZnVuY3Rpb24oaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5j
dGlvbihzdWNjZXNzLCBuZXdfZmlsZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJnb3Qg
ZmlsZXM6ICIgKyBuZXdfZmlsZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1
Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICBmaWxlc1tpbmRleF0gPSBuZXdfZmlsZXM7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZmluaXNoKHN1Y2Nl
c3MpOworICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KGluZGV4KyspKTsK
KyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgcyA9ICIiOworICAg
ICAgICAgICAgICAgIHZhciBwID0gIiI7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgamogPSAw
OyBqaiA8IG5hbWVzLmxlbmd0aDsgKytqaikgeworICAgICAgICAgICAgICAgICAgcyArPSBwICsg
cHJlZml4ICsgbmFtZXNbampdOworICAgICAgICAgICAgICAgICAgcCA9ICIgIjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgZmlsZXNbaW5kZXgrK10gPSBzOworICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGZpbmlzaCh0cnVl
KTsKKworICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChzdWNjZXNzKSB7CisgICAgICAgICAgICBp
ZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgbG9nKCJjb3VudDogIiArIGNvdW50
KTsKKyAgICAgICAgICAgIGlmICghY291bnQpIHsKKyAgICAgICAgICAgICAgY2FsbGJhY2soIWZh
aWwsIGZpbGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
IH0oKSk7CisKKyAgICB9IGVsc2UgeworICAgICAgZmlsZXMucHVzaCh1cmwpOworICAgICAgY2Fs
bGJhY2sodHJ1ZSwgZmlsZXMpOworICAgIH0KKyAgfTsKKworICBnZXRGaWxlTGlzdEltcGwodXJs
LCBmdW5jdGlvbihzdWNjZXNzLCBmaWxlcykgeworICAgIC8vIGZsYXR0ZW4KKyAgICB2YXIgZmxh
dCA9IFtdOworICAgIGZsYXR0ZW4oZmlsZXMpOworICAgIGZ1bmN0aW9uIGZsYXR0ZW4oZmlsZXMp
IHsKKyAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBmaWxlcy5sZW5ndGg7ICsraWkpIHsKKyAg
ICAgICAgdmFyIHZhbHVlID0gZmlsZXNbaWldOworICAgICAgICBpZiAodHlwZW9mKHZhbHVlKSA9
PSAic3RyaW5nIikgeworICAgICAgICAgIGZsYXQucHVzaCh2YWx1ZSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgZmxhdHRlbih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9
CisgICAgY2FsbGJhY2soc3VjY2VzcywgZmxhdCk7CisgIH0pOworfTsKKworLyoqCisgKiBHZXRz
IGEgZmlsZSBmcm9tIGEgZmlsZS9VUkwuCisgKiBAcGFyYW0ge3N0cmluZ30gZmlsZSB0aGUgVVJM
IG9mIHRoZSBmaWxlIHRvIGdldC4KKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvbnRlbnRzIG9m
IHRoZSBmaWxlLgorICovCit2YXIgcmVhZEZpbGUgPSBmdW5jdGlvbihmaWxlKSB7CisgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgeGhyLm9wZW4oIkdFVCIsIGZpbGUsIGZhbHNl
KTsKKyAgeGhyLm92ZXJyaWRlTWltZVR5cGUoInRleHQvcGxhaW4iKTsKKyAgeGhyLnNlbmQoKTsK
KyAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQucmVwbGFjZSgvXHIvZywgIiIpOworfTsKKwordmFy
IHJlYWRGaWxlTGlzdCA9IGZ1bmN0aW9uKHVybCkgeworICB2YXIgZmlsZXMgPSBbXTsKKyAgaWYg
KHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcudHh0JykgeworICAgIHZhciBsaW5lcyA9
IHJlYWRGaWxlKHVybCkuc3BsaXQoJ1xuJyk7CisgICAgdmFyIHByZWZpeCA9ICcnOworICAgIHZh
ciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2YoJy8nKTsKKyAgICBpZiAobGFzdFNsYXNoID49
IDApIHsKKyAgICAgIHByZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFzdFNsYXNoICsgMSk7CisgICAg
fQorICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkpIHsKKyAgICAg
IHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxzXHMqLywgJycpLnJlcGxhY2UoL1xzXHMq
JC8sICcnKTsKKyAgICAgIGlmIChzdHIubGVuZ3RoID4gNCAmJgorICAgICAgICAgIHN0clswXSAh
PSAnIycgJiYKKyAgICAgICAgICBzdHJbMF0gIT0gIjsiICYmCisgICAgICAgICAgc3RyLnN1YnN0
cigwLCAyKSAhPSAiLy8iKSB7CisgICAgICAgIHZhciBuYW1lcyA9IHN0ci5zcGxpdCgvICsvKTsK
KyAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgdmFyIG5ld191cmwg
PSBwcmVmaXggKyBzdHI7CisgICAgICAgICAgZmlsZXMgPSBmaWxlcy5jb25jYXQocmVhZEZpbGVM
aXN0KG5ld191cmwpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB2YXIgcyA9ICIiOwor
ICAgICAgICAgIHZhciBwID0gIiI7CisgICAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG5h
bWVzLmxlbmd0aDsgKytqaikgeworICAgICAgICAgICAgcyArPSBwICsgcHJlZml4ICsgbmFtZXNb
ampdOworICAgICAgICAgICAgcCA9ICIgIjsKKyAgICAgICAgICB9CisgICAgICAgICAgZmlsZXMu
cHVzaChzKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfSBlbHNlIHsKKyAgICBmaWxl
cy5wdXNoKHVybCk7CisgIH0KKyAgcmV0dXJuIGZpbGVzOworfTsKKworLyoqCisgKiBMb2FkcyBh
IHNoYWRlci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gc2hhZGVyU291cmNl
IFRoZSBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtudW1iZXJ9IHNoYWRlclR5cGUgVGhlIHR5
cGUgb2Ygc2hhZGVyLgorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJy
b3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRf
bG9nU2hhZGVycyBXaGV0aGVyIHRvIGxvZyBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtzdHJp
bmd9IG9wdF9zaGFkZXJMYWJlbCBMYWJlbCB0aGF0IGlkZW50aWZpZXMgdGhlIHNoYWRlciBzb3Vy
Y2UgaW4KKyAqICAgICB0aGUgbG9nLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF91cmwgVVJMIGZy
b20gd2hlcmUgdGhlIHNoYWRlciBzb3VyY2Ugd2FzIGxvYWRlZCBmcm9tLgorICogICAgIElmIG9w
dF9sb2dTaGFkZXJzIGlzIHNldCwgdGhlbiBhIGxpbmsgdG8gdGhlIHNvdXJjZSBmaWxlIHdpbGwg
YWxzbyBiZQorICogICAgIGFkZGVkLgorICogQHBhcmFtIHtib29sZWFufSBTa2lwIGNvbXBpbGF0
aW9uIHN0YXR1cyBjaGVjay4gRGVmYXVsdCA9IGZhbHNlLgorICogQHJldHVybiB7IVdlYkdMU2hh
ZGVyfSBUaGUgY3JlYXRlZCBzaGFkZXIuCisgKi8KK3ZhciBsb2FkU2hhZGVyID0gZnVuY3Rpb24o
CisgICAgZ2wsIHNoYWRlclNvdXJjZSwgc2hhZGVyVHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9w
dF9sb2dTaGFkZXJzLAorICAgIG9wdF9zaGFkZXJMYWJlbCwgb3B0X3VybCwgb3B0X3NraXBDb21w
aWxlU3RhdHVzKSB7CisgIHZhciBlcnJGbiA9IG9wdF9lcnJvckNhbGxiYWNrIHx8IGVycm9yOwor
ICAvLyBDcmVhdGUgdGhlIHNoYWRlciBvYmplY3QKKyAgdmFyIHNoYWRlciA9IGdsLmNyZWF0ZVNo
YWRlcihzaGFkZXJUeXBlKTsKKyAgaWYgKHNoYWRlciA9PSBudWxsKSB7CisgICAgZXJyRm4oIioq
KiBFcnJvcjogdW5hYmxlIHRvIGNyZWF0ZSBzaGFkZXIgJyIrc2hhZGVyU291cmNlKyInIik7Cisg
ICAgcmV0dXJuIG51bGw7CisgIH0KKworICAvLyBMb2FkIHRoZSBzaGFkZXIgc291cmNlCisgIGds
LnNoYWRlclNvdXJjZShzaGFkZXIsIHNoYWRlclNvdXJjZSk7CisKKyAgLy8gQ29tcGlsZSB0aGUg
c2hhZGVyCisgIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKworICBpZiAob3B0X2xvZ1NoYWRl
cnMpIHsKKyAgICB2YXIgbGFiZWwgPSBzaGFkZXJUeXBlID09IGdsLlZFUlRFWF9TSEFERVIgPyAn
dmVydGV4IHNoYWRlcicgOiAnZnJhZ21lbnRfc2hhZGVyJzsKKyAgICBpZiAob3B0X3NoYWRlckxh
YmVsKSB7CisgICAgICBsYWJlbCA9IG9wdF9zaGFkZXJMYWJlbCArICcgJyArIGxhYmVsOworICAg
IH0KKyAgICBhZGRTaGFkZXJTb3VyY2VzKAorICAgICAgICBnbCwgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKSwgbGFiZWwsIHNoYWRlciwgc2hhZGVyU291cmNlLCBvcHRfdXJsKTsK
KyAgfQorCisgIC8vIENoZWNrIHRoZSBjb21waWxlIHN0YXR1cworICBpZiAoIW9wdF9za2lwQ29t
cGlsZVN0YXR1cykgeworICAgIHZhciBjb21waWxlZCA9IGdsLmdldFNoYWRlclBhcmFtZXRlcihz
aGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKTsKKyAgICBpZiAoIWNvbXBpbGVkKSB7CisgICAgICAv
LyBTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgY29tcGlsYXRpb247IGdldCB0aGUgZXJyb3IK
KyAgICAgIGxhc3RFcnJvciA9IGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKKyAgICAgIGVy
ckZuKCIqKiogRXJyb3IgY29tcGlsaW5nICIgKyBnbEVudW1Ub1N0cmluZyhnbCwgc2hhZGVyVHlw
ZSkgKyAiICciICsgc2hhZGVyICsgIic6IiArIGxhc3RFcnJvcik7CisgICAgICBnbC5kZWxldGVT
aGFkZXIoc2hhZGVyKTsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfQorCisgIHJldHVy
biBzaGFkZXI7Cit9CisKKy8qKgorICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIFVSTC4KKyAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0ge2ZpbGV9IGZpbGUgVGhlIFVSTCBvZiB0aGUgc2hhZGVyIHNv
dXJjZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlIFRoZSB0eXBlIG9mIHNoYWRlci4KKyAqIEBw
YXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sg
Zm9yIGVycm9ycy4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0
byBsb2cgc2hhZGVyIHNvdXJjZS4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gU2tpcCBjb21waWxhdGlv
biBzdGF0dXMgY2hlY2suIERlZmF1bHQgPSBmYWxzZS4KKyAqIEByZXR1cm4geyFXZWJHTFNoYWRl
cn0gVGhlIGNyZWF0ZWQgc2hhZGVyLgorICovCit2YXIgbG9hZFNoYWRlckZyb21GaWxlID0gZnVu
Y3Rpb24oCisgICAgZ2wsIGZpbGUsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hh
ZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVzKSB7CisgIHZhciBzaGFkZXJTb3VyY2UgPSByZWFk
RmlsZShmaWxlKTsKKyAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNoYWRlclNvdXJjZSwgdHlwZSwg
b3B0X2Vycm9yQ2FsbGJhY2ssCisgICAgICBvcHRfbG9nU2hhZGVycywgdW5kZWZpbmVkLCBmaWxl
LCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpOworfTsKKwordmFyIGxvYWRTaGFkZXJGcm9tRmlsZUFz
eW5jID0gZnVuY3Rpb24oCisgICAgZ2wsIGZpbGUsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLCBv
cHRfbG9nU2hhZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVzLCBjYWxsYmFjaykgeworICBsb2Fk
VGV4dEZpbGVBc3luYyhmaWxlLCBmdW5jdGlvbihnbCwgdHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ss
IG9wdF9sb2dTaGFkZXJzLCBmaWxlLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpeworICAgICAgcmV0
dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIHNoYWRlclNvdXJjZSkgeworICAgICAgICBpZiAoc3VjY2Vz
cykgeworICAgICAgICAgIHZhciBzaGFkZXIgPSBsb2FkU2hhZGVyKGdsLCBzaGFkZXJTb3VyY2Us
IHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLAorICAgICAgICAgICAgICBvcHRfbG9nU2hhZGVycywg
dW5kZWZpbmVkLCBmaWxlLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpOworICAgICAgICAgIGNhbGxi
YWNrKHRydWUsIHNoYWRlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgY2FsbGJhY2so
ZmFsc2UsIG51bGwpOworICAgICAgICB9CisgICAgICB9CisgIH0oZ2wsIHR5cGUsIG9wdF9lcnJv
ckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycywgZmlsZSwgb3B0X3NraXBDb21waWxlU3RhdHVzKSk7
Cit9OworCisvKioKKyAqIEdldHMgdGhlIGNvbnRlbnQgb2Ygc2NyaXB0LgorICogQHBhcmFtIHtz
dHJpbmd9IHNjcmlwdElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEByZXR1cm4ge3N0
cmluZ30gVGhlIGNvbnRlbnQgb2YgdGhlIHNjcmlwdC4KKyAqLwordmFyIGdldFNjcmlwdCA9IGZ1
bmN0aW9uKHNjcmlwdElkKSB7CisgIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChzY3JpcHRJZCk7CisgIGlmICghc2hhZGVyU2NyaXB0KSB7CisgICAgdGhyb3coIioq
KiBFcnJvcjogdW5rbm93biBzY3JpcHQgZWxlbWVudCAiICsgc2NyaXB0SWQpOworICB9CisgIHJl
dHVybiBzaGFkZXJTY3JpcHQudGV4dDsKK307CisKKy8qKgorICogTG9hZHMgYSBzaGFkZXIgZnJv
bSBhIHNjcmlwdCB0YWcuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRo
ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHNjcmlw
dElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfc2hh
ZGVyVHlwZSBUaGUgdHlwZSBvZiBzaGFkZXIuIElmIG5vdCBwYXNzZWQgaW4gaXQgd2lsbAorICog
ICAgIGJlIGRlcml2ZWQgZnJvbSB0aGUgdHlwZSBvZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEBwYXJh
bSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9y
IGVycm9ycy4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0byBs
b2cgc2hhZGVyIHNvdXJjZS4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gU2tpcCBjb21waWxhdGlvbiBz
dGF0dXMgY2hlY2suIERlZmF1bHQgPSBmYWxzZS4KKyAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0g
VGhlIGNyZWF0ZWQgc2hhZGVyLgorICovCit2YXIgbG9hZFNoYWRlckZyb21TY3JpcHQgPSBmdW5j
dGlvbigKKyAgICBnbCwgc2NyaXB0SWQsIG9wdF9zaGFkZXJUeXBlLCBvcHRfZXJyb3JDYWxsYmFj
aywgb3B0X2xvZ1NoYWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cykgeworICB2YXIgc2hhZGVy
U291cmNlID0gIiI7CisgIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChzY3JpcHRJZCk7CisgIGlmICghc2hhZGVyU2NyaXB0KSB7CisgICAgdGhyb3coIioqKiBFcnJv
cjogdW5rbm93biBzY3JpcHQgZWxlbWVudCAiICsgc2NyaXB0SWQpOworICB9CisgIHNoYWRlclNv
dXJjZSA9IHNoYWRlclNjcmlwdC50ZXh0LnRyaW0oKTsKKworICBpZiAoIW9wdF9zaGFkZXJUeXBl
KSB7CisgICAgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LXZlcnRleCIpIHsK
KyAgICAgIG9wdF9zaGFkZXJUeXBlID0gZ2wuVkVSVEVYX1NIQURFUjsKKyAgICB9IGVsc2UgaWYg
KHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50IikgeworICAgICAgb3B0
X3NoYWRlclR5cGUgPSBnbC5GUkFHTUVOVF9TSEFERVI7CisgICAgfSBlbHNlIHsKKyAgICAgIHRo
cm93KCIqKiogRXJyb3I6IHVua25vd24gc2hhZGVyIHR5cGUiKTsKKyAgICAgIHJldHVybiBudWxs
OworICAgIH0KKyAgfQorCisgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBzaGFkZXJTb3VyY2UsIG9w
dF9zaGFkZXJUeXBlLCBvcHRfZXJyb3JDYWxsYmFjaywKKyAgICAgIG9wdF9sb2dTaGFkZXJzLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKK307CisKK3ZhciBs
b2FkU3RhbmRhcmRQcm9ncmFtID0gZnVuY3Rpb24oZ2wpIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5j
cmVhdGVQcm9ncmFtKCk7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBsb2FkU3RhbmRhcmRW
ZXJ0ZXhTaGFkZXIoZ2wpKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFy
ZEZyYWdtZW50U2hhZGVyKGdsKSk7CisgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAw
LCAiYV92ZXJ0ZXgiKTsKKyAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIDEsICJhX25v
cm1hbCIpOworICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOwor
fTsKKwordmFyIGxvYWRTdGFuZGFyZFByb2dyYW1Bc3luYyA9IGZ1bmN0aW9uKGdsLCBjYWxsYmFj
aykgeworICBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXJBc3luYyhnbCwgZnVuY3Rpb24oZ2wpIHsK
KyAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2VzcywgdnMpIHsKKyAgICAgIGlmIChzdWNjZXNzKSB7
CisgICAgICAgIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyQXN5bmMoZ2wsIGZ1bmN0aW9uKHZz
KSB7CisgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIGZzKSB7CisgICAgICAgICAg
ICBpZiAoc3VjY2VzcykgeworICAgICAgICAgICAgICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVBy
b2dyYW0oKTsKKyAgICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTsKKyAg
ICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZzKTsKKyAgICAgICAgICAgICAg
Z2wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIDAsICJhX3ZlcnRleCIpOworICAgICAgICAg
ICAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgMSwgImFfbm9ybWFsIik7CisgICAg
ICAgICAgICAgIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtKTsKKyAgICAgICAgICAgICAgY2FsbGJh
Y2sodHJ1ZSwgcHJvZ3JhbSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBj
YWxsYmFjayhmYWxzZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfTsKKyAgICAg
ICAgfSh2cykpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgY2FsbGJhY2soZmFsc2UsIG51bGwp
OworICAgICAgfQorICAgIH07CisgIH0oZ2wpKTsKK307CisKKy8qKgorICogTG9hZHMgc2hhZGVy
cyBmcm9tIGZpbGVzLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5k
IGxpbmtzLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhTaGFkZXJQ
YXRoIFRoZSBVUkwgb2YgdGhlIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0ge3N0cmluZ30gZnJh
Z21lbnRTaGFkZXJQYXRoIFRoZSBVUkwgb2YgdGhlIGZyYWdtZW50IHNoYWRlci4KKyAqIEBwYXJh
bSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9y
IGVycm9ycy4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0u
CisgKi8KK3ZhciBsb2FkUHJvZ3JhbUZyb21GaWxlID0gZnVuY3Rpb24oCisgICAgZ2wsIHZlcnRl
eFNoYWRlclBhdGgsIGZyYWdtZW50U2hhZGVyUGF0aCwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAg
dmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgIHZhciB2cyA9IGxvYWRTaGFkZXJG
cm9tRmlsZSgKKyAgICAgIGdsLCB2ZXJ0ZXhTaGFkZXJQYXRoLCBnbC5WRVJURVhfU0hBREVSLCBv
cHRfZXJyb3JDYWxsYmFjayk7CisgIHZhciBmcyA9IGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAg
IGdsLCBmcmFnbWVudFNoYWRlclBhdGgsIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2Fs
bGJhY2spOworICBpZiAodnMgJiYgZnMpIHsKKyAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwg
dnMpOworICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcyk7CisgICAgbGlua1Byb2dyYW0o
Z2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgfQorICBpZiAodnMpIHsKKyAgICBn
bC5kZWxldGVTaGFkZXIodnMpOworICB9CisgIGlmIChmcykgeworICAgIGdsLmRlbGV0ZVNoYWRl
cihmcyk7CisgIH0KKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRl
cnMgZnJvbSBzY3JpcHQgdGFncywgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFk
ZXJzIGFuZAorICogbGlua3MuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHZl
cnRleFNjcmlwdElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRhZyB0aGF0IGNvbnRhaW5zIHRoZQor
ICogICAgICAgIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTY3Jp
cHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0YWcgdGhhdCBjb250YWlucyB0aGUKKyAqICAgICAg
ICBmcmFnbWVudCBzaGFkZXIuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9w
dF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcmV0dXJuIHshV2ViR0xQ
cm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFtLgorICovCit2YXIgbG9hZFByb2dyYW1Gcm9tU2Ny
aXB0ID0gZnVuY3Rpb24gbG9hZFByb2dyYW1Gcm9tU2NyaXB0KAorICAgIGdsLCB2ZXJ0ZXhTY3Jp
cHRJZCwgZnJhZ21lbnRTY3JpcHRJZCwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIHByb2dy
YW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgIGdsLmF0dGFjaFNoYWRlcigKKyAgICAgIHByb2dy
YW0sCisgICAgICBsb2FkU2hhZGVyRnJvbVNjcmlwdCgKKyAgICAgICAgICBnbCwgdmVydGV4U2Ny
aXB0SWQsIGdsLlZFUlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKSk7CisgIGdsLmF0dGFj
aFNoYWRlcigKKyAgICAgIHByb2dyYW0sCisgICAgICBsb2FkU2hhZGVyRnJvbVNjcmlwdCgKKyAg
ICAgICAgICBnbCwgZnJhZ21lbnRTY3JpcHRJZCwgIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vy
cm9yQ2FsbGJhY2spKTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxi
YWNrKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJv
bSBzb3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKKyAq
IGxpbmtzLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IVdlYkdMU2hhZGVyfSB2ZXJ0ZXhT
aGFkZXIgVGhlIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0geyFXZWJHTFNoYWRlcn0gZnJhZ21l
bnRTaGFkZXIgVGhlIGZyYWdtZW50IHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5n
KTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqIEByZXR1
cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCisgKi8KK3ZhciBjcmVhdGVQ
cm9ncmFtID0gZnVuY3Rpb24oZ2wsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIsIG9wdF9l
cnJvckNhbGxiYWNrKSB7CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBn
bC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKKyAgZ2wuYXR0YWNoU2hhZGVy
KHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9w
dF9lcnJvckNhbGxiYWNrKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRz
IHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hh
ZGVycyBhbmQKKyAqIGxpbmtzLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBn
bCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB2
ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRleCBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtzdHJpbmd9
IGZyYWdtZW50U2hhZGVyIFRoZSBmcmFnbWVudCBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtm
dW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJy
b3JzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9nU2hhZGVycyBXaGV0aGVyIHRvIGxvZyBz
aGFkZXIgc291cmNlLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJv
Z3JhbS4KKyAqLwordmFyIGxvYWRQcm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIHZlcnRleFNo
YWRlciwgZnJhZ21lbnRTaGFkZXIsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycykg
eworICB2YXIgcHJvZ3JhbTsKKyAgdmFyIHZzID0gbG9hZFNoYWRlcigKKyAgICAgIGdsLCB2ZXJ0
ZXhTaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hh
ZGVycyk7CisgIHZhciBmcyA9IGxvYWRTaGFkZXIoCisgICAgICBnbCwgZnJhZ21lbnRTaGFkZXIs
IGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJzKTsK
KyAgaWYgKHZzICYmIGZzKSB7CisgICAgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0oZ2wsIHZzLCBm
cywgb3B0X2Vycm9yQ2FsbGJhY2spCisgIH0KKyAgaWYgKHZzKSB7CisgICAgZ2wuZGVsZXRlU2hh
ZGVyKHZzKTsKKyAgfQorICBpZiAoZnMpIHsKKyAgICBnbC5kZWxldGVTaGFkZXIoZnMpOworICB9
CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBMb2FkcyBzaGFkZXJzIGZyb20gc291
cmNlLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kCisgKiBsaW5r
cyBidXQgZXhwZWN0cyBlcnJvci4KKyAqCisgKiBHTFNMIDEuMC4xNyAxMC4yNyBlZmZlY3RpdmVs
eSBzYXlzIHRoYXQgY29tcGlsZVNoYWRlciBjYW4KKyAqIGFsd2F5cyBzdWNjZWVkIGFzIGxvbmcg
YXMgbGlua1Byb2dyYW0gZmFpbHMgc28gd2UgY2FuJ3QKKyAqIHJlbHkgb24gY29tcGlsZVNoYWRl
ciBmYWlsaW5nLiBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMKKyAqIG9uZSBvZiB0aGUgc2hhZGVyIHRv
IGZhaWwgT1IgbGlua2luZyB0byBmYWlsLgorICoKKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5n
Q29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0g
e3N0cmluZ30gdmVydGV4U2hhZGVyU2NyaXB0SWQgVGhlIHZlcnRleCBzaGFkZXIuCisgKiBAcGFy
YW0ge3N0cmluZ30gZnJhZ21lbnRTaGFkZXJTY3JpcHRJZCBUaGUgZnJhZ21lbnQgc2hhZGVyLgor
ICogQHJldHVybiB7V2ViR0xQcm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFtLgorICovCit2YXIg
bG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3IgPSBmdW5jdGlvbigKKyAgICBnbCwgdmVy
dGV4U2hhZGVyU2NyaXB0SWQsIGZyYWdtZW50U2hhZGVyU2NyaXB0SWQpIHsKKyAgdmFyIHZlcnRl
eFNoYWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCB2ZXJ0ZXhTaGFkZXJTY3JpcHRJZCk7
CisgIGlmICghdmVydGV4U2hhZGVyKSB7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKyAgdmFyIGZy
YWdtZW50U2hhZGVyID0gbG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIGZyYWdtZW50U2hhZGVyU2Ny
aXB0SWQpOworICBpZiAoIWZyYWdtZW50U2hhZGVyKSB7CisgICAgcmV0dXJuIG51bGw7CisgIH0K
KyAgdmFyIGxpbmtTdWNjZXNzID0gdHJ1ZTsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9n
cmFtKCk7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOworICBnbC5h
dHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpOworICBsaW5rU3VjY2VzcyA9IHRy
dWU7CisgIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtLCBmdW5jdGlvbigpIHsKKyAgICAgIGxpbmtT
dWNjZXNzID0gZmFsc2U7CisgICAgfSk7CisgIHJldHVybiBsaW5rU3VjY2VzcyA/IHByb2dyYW0g
OiBudWxsOworfTsKKworCit2YXIgZ2V0QWN0aXZlTWFwID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0s
IHR5cGVJbmZvKSB7CisgIHZhciBudW1WYXJpYWJsZXMgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KHByb2dyYW0sIGdsW3R5cGVJbmZvLnBhcmFtXSk7CisgIHZhciB2YXJpYWJsZXMgPSB7fTsKKyAg
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVZhcmlhYmxlczsgKytpaSkgeworICAgIHZhciBpbmZv
ID0gZ2xbdHlwZUluZm8uYWN0aXZlRm5dKHByb2dyYW0sIGlpKTsKKyAgICB2YXJpYWJsZXNbaW5m
by5uYW1lXSA9IHsKKyAgICAgIG5hbWU6IGluZm8ubmFtZSwKKyAgICAgIHNpemU6IGluZm8uc2l6
ZSwKKyAgICAgIHR5cGU6IGluZm8udHlwZSwKKyAgICAgIGxvY2F0aW9uOiBnbFt0eXBlSW5mby5s
b2NGbl0ocHJvZ3JhbSwgaW5mby5uYW1lKQorICAgIH07CisgIH0KKyAgcmV0dXJuIHZhcmlhYmxl
czsKK307CisKKy8qKgorICogUmV0dXJucyBhIG1hcCBvZiBhdHRyaWIgbmFtZXMgdG8gaW5mbyBh
Ym91dCB0aG9zZQorICogYXR0cmlicy4KKyAqCisgKiBlZzoKKyAqICAgIHsgImF0dHJpYjFOYW1l
IjoKKyAqICAgICAgeworICogICAgICAgIG5hbWU6ICJhdHRyaWIxTmFtZSIsCisgKiAgICAgICAg
c2l6ZTogMSwKKyAqICAgICAgICB0eXBlOiBnbC5GTE9BVF9NQVQyLAorICogICAgICAgIGxvY2F0
aW9uOiAwCisgKiAgICAgIH0sCisgKiAgICAgICJhdHRyaWIyTmFtZVswXSI6CisgKiAgICAgIHsK
KyAqICAgICAgICAgbmFtZTogImF0dHJpYjJOYW1lWzBdIiwKKyAqICAgICAgICAgc2l6ZTogNCwK
KyAqICAgICAgICAgdHlwZTogZ2wuRkxPQVQsCisgKiAgICAgICAgIGxvY2F0aW9uOiAxCisgKiAg
ICAgIH0sCisgKiAgICB9CisgKgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBn
bCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7V2ViR0xQcm9n
cmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBmb3IgYXR0cmlicy4KKyAqIEByZXR1cm4gdGhlIG1h
cC4KKyAqLwordmFyIGdldEF0dHJpYk1hcCA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtKSB7CisgIHJl
dHVybiBnZXRBY3RpdmVNYXAoZ2wsIHByb2dyYW0sIHsKKyAgICAgIHBhcmFtOiAiQUNUSVZFX0FU
VFJJQlVURVMiLAorICAgICAgYWN0aXZlRm46ICJnZXRBY3RpdmVBdHRyaWIiLAorICAgICAgbG9j
Rm46ICJnZXRBdHRyaWJMb2NhdGlvbiIKKyAgfSk7Cit9OworCisvKioKKyAqIFJldHVybnMgYSBt
YXAgb2YgdW5pZm9ybSBuYW1lcyB0byBpbmZvIGFib3V0IHRob3NlIHVuaWZvcm1zLgorICoKKyAq
IGVnOgorICogICAgeyAidW5pZm9ybTFOYW1lIjoKKyAqICAgICAgeworICogICAgICAgIG5hbWU6
ICJ1bmlmb3JtMU5hbWUiLAorICogICAgICAgIHNpemU6IDEsCisgKiAgICAgICAgdHlwZTogZ2wu
RkxPQVRfTUFUMiwKKyAqICAgICAgICBsb2NhdGlvbjogV2ViR0xVbmlmb3JtTG9jYXRpb24KKyAq
ICAgICAgfSwKKyAqICAgICAgInVuaWZvcm0yTmFtZVswXSI6CisgKiAgICAgIHsKKyAqICAgICAg
ICAgbmFtZTogInVuaWZvcm0yTmFtZVswXSIsCisgKiAgICAgICAgIHNpemU6IDQsCisgKiAgICAg
ICAgIHR5cGU6IGdsLkZMT0FULAorICogICAgICAgICBsb2NhdGlvbjogV2ViR0xVbmlmb3JtTG9j
YXRpb24KKyAqICAgICAgfSwKKyAqICAgIH0KKyAqCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmlu
Z0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFt
IHtXZWJHTFByb2dyYW19IFRoZSBwcm9ncmFtIHRvIHF1ZXJ5IGZvciB1bmlmb3Jtcy4KKyAqIEBy
ZXR1cm4gdGhlIG1hcC4KKyAqLwordmFyIGdldFVuaWZvcm1NYXAgPSBmdW5jdGlvbihnbCwgcHJv
Z3JhbSkgeworICByZXR1cm4gZ2V0QWN0aXZlTWFwKGdsLCBwcm9ncmFtLCB7CisgICAgICBwYXJh
bTogIkFDVElWRV9VTklGT1JNUyIsCisgICAgICBhY3RpdmVGbjogImdldEFjdGl2ZVVuaWZvcm0i
LAorICAgICAgbG9jRm46ICJnZXRVbmlmb3JtTG9jYXRpb24iCisgIH0pOworfTsKKwordmFyIGJh
c2VQYXRoOwordmFyIGdldFJlc291cmNlUGF0aCA9IGZ1bmN0aW9uKCkgeworICBpZiAoIWJhc2VQ
YXRoKSB7CisgICAgdmFyIGV4cGVjdGVkQmFzZSA9ICJqcy93ZWJnbC10ZXN0LXV0aWxzLmpzIjsK
KyAgICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQn
KTsKKyAgICBmb3IgKHZhciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKysp
IHsKKyAgICAgIHZhciBzcmMgPSBzY3JpcHQuc3JjOworICAgICAgdmFyIGwgPSBzcmMubGVuZ3Ro
OworICAgICAgaWYgKHNyYy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVj
dGVkQmFzZSkgeworICAgICAgICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVk
QmFzZS5sZW5ndGgpOworICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gYmFzZVBhdGggKyAi
cmVzb3VyY2VzLyI7Cit9OworCit2YXIgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyID0gZnVuY3Rp
b24oZ2wpIHsKKyAgcmV0dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBnZXRSZXNv
dXJjZVBhdGgoKSArICJ2ZXJ0ZXhTaGFkZXIudmVydCIsIGdsLlZFUlRFWF9TSEFERVIpOworfTsK
K3ZhciBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXJBc3luYyA9IGZ1bmN0aW9uKGdsLCBjYWxsYmFj
aykgeworICBsb2FkU2hhZGVyRnJvbUZpbGVBc3luYyhnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAi
dmVydGV4U2hhZGVyLnZlcnQiLCBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCBjYWxsYmFjayk7Cit9OworCit2YXIgbG9hZFN0YW5kYXJkRnJhZ21lbnRT
aGFkZXIgPSBmdW5jdGlvbihnbCkgeworICByZXR1cm4gbG9hZFNoYWRlckZyb21GaWxlKAorICAg
ICAgZ2wsIGdldFJlc291cmNlUGF0aCgpICsgImZyYWdtZW50U2hhZGVyLmZyYWciLCBnbC5GUkFH
TUVOVF9TSEFERVIpOworfTsKK3ZhciBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlckFzeW5jID0g
ZnVuY3Rpb24oZ2wsIGNhbGxiYWNrKSB7CisgIGxvYWRTaGFkZXJGcm9tRmlsZUFzeW5jKGdsLCBn
ZXRSZXNvdXJjZVBhdGgoKSArICJmcmFnbWVudFNoYWRlci5mcmFnIiwgZ2wuRlJBR01FTlRfU0hB
REVSLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjYWxsYmFjayk7Cit9OworCit2
YXIgbG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICB2YXIgcHJvZ3Jh
bSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRV
bmlmb3JtQmxvY2tWZXJ0ZXhTaGFkZXIoZ2wpKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0s
IGxvYWRVbmlmb3JtQmxvY2tGcmFnbWVudFNoYWRlcihnbCkpOworICBnbC5iaW5kQXR0cmliTG9j
YXRpb24ocHJvZ3JhbSwgMCwgImFfdmVydGV4Iik7CisgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbihw
cm9ncmFtLCAxLCAiYV9ub3JtYWwiKTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0pOworICBy
ZXR1cm4gcHJvZ3JhbTsKK307CisKK3ZhciBsb2FkVW5pZm9ybUJsb2NrVmVydGV4U2hhZGVyID0g
ZnVuY3Rpb24oZ2wpIHsKKyAgcmV0dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBn
ZXRSZXNvdXJjZVBhdGgoKSArICJ1bmlmb3JtQmxvY2tTaGFkZXIudmVydCIsIGdsLlZFUlRFWF9T
SEFERVIpOworfTsKKwordmFyIGxvYWRVbmlmb3JtQmxvY2tGcmFnbWVudFNoYWRlciA9IGZ1bmN0
aW9uKGdsKSB7CisgIHJldHVybiBsb2FkU2hhZGVyRnJvbUZpbGUoCisgICAgICBnbCwgZ2V0UmVz
b3VyY2VQYXRoKCkgKyAidW5pZm9ybUJsb2NrU2hhZGVyLmZyYWciLCBnbC5GUkFHTUVOVF9TSEFE
RVIpOworfTsKKworLyoqCisgKiBMb2FkcyBhbiBpbWFnZSBhc3luY2hyb25vdXNseS4KKyAqIEBw
YXJhbSB7c3RyaW5nfSB1cmwgVVJMIG9mIGltYWdlIHRvIGxvYWQuCisgKiBAcGFyYW0geyFmdW5j
dGlvbighRWxlbWVudCk6IHZvaWR9IGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwKKyAqICAgICB3
aXRoIGxvYWRlZCBpbWFnZS4KKyAqLwordmFyIGxvYWRJbWFnZUFzeW5jID0gZnVuY3Rpb24odXJs
LCBjYWxsYmFjaykgeworICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7
CisgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBjYWxsYmFjayhpbWcpOworICB9Owor
ICBpbWcuc3JjID0gdXJsOworfTsKKworLyoqCisgKiBMb2FkcyBhbiBhcnJheSBvZiBpbWFnZXMu
CisgKiBAcGFyYW0geyFBcnJheS48c3RyaW5nPn0gdXJscyBVUkxzIG9mIGltYWdlcyB0byBsb2Fk
LgorICogQHBhcmFtIHshZnVuY3Rpb24oIXtzdHJpbmcsIGltZ30pOiB2b2lkfSBjYWxsYmFjayBD
YWxsYmFjaworICogICAgIHRoYXQgZ2V0cyBwYXNzZWQgbWFwIG9mIHVybHMgdG8gaW1nIHRhZ3Mu
CisgKi8KK3ZhciBsb2FkSW1hZ2VzQXN5bmMgPSBmdW5jdGlvbih1cmxzLCBjYWxsYmFjaykgewor
ICB2YXIgY291bnQgPSAxOworICB2YXIgaW1hZ2VzID0geyB9OworICBmdW5jdGlvbiBjb3VudERv
d24oKSB7CisgICAgLS1jb3VudDsKKyAgICBpZiAoY291bnQgPT0gMCkgeworICAgICAgbG9nKCJs
b2FkSW1hZ2VzQXN5bmM6IGFsbCBpbWFnZXMgbG9hZGVkIik7CisgICAgICBjYWxsYmFjayhpbWFn
ZXMpOworICAgIH0KKyAgfQorICBmdW5jdGlvbiBpbWFnZUxvYWRlZCh1cmwpIHsKKyAgICByZXR1
cm4gZnVuY3Rpb24oaW1nKSB7CisgICAgICBpbWFnZXNbdXJsXSA9IGltZzsKKyAgICAgIGxvZygi
bG9hZEltYWdlc0FzeW5jOiBsb2FkZWQgIiArIHVybCk7CisgICAgICBjb3VudERvd24oKTsKKyAg
ICB9CisgIH0KKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHVybHMubGVuZ3RoOyArK2lpKSB7Cisg
ICAgKytjb3VudDsKKyAgICBsb2FkSW1hZ2VBc3luYyh1cmxzW2lpXSwgaW1hZ2VMb2FkZWQodXJs
c1tpaV0pKTsKKyAgfQorICBjb3VudERvd24oKTsKK307CisKKy8qKgorICogUmV0dXJucyBhIG1h
cCBvZiBrZXk9dmFsdWUgdmFsdWVzIGZyb20gdXJsLgorICogQHJldHVybiB7IU9iamVjdC48c3Ry
aW5nLCBudW1iZXI+fSBtYXAgb2Yga2V5cyB0byB2YWx1ZXMuCisgKi8KK3ZhciBnZXRVcmxBcmd1
bWVudHMgPSBmdW5jdGlvbigpIHsKKyAgdmFyIGFyZ3MgPSB7fTsKKyAgdHJ5IHsKKyAgICB2YXIg
cyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOworICAgIHZhciBxID0gcy5pbmRleE9mKCI/Iik7Cisg
ICAgdmFyIGUgPSBzLmluZGV4T2YoIiMiKTsKKyAgICBpZiAoZSA8IDApIHsKKyAgICAgIGUgPSBz
Lmxlbmd0aDsKKyAgICB9CisgICAgdmFyIHF1ZXJ5ID0gcy5zdWJzdHJpbmcocSArIDEsIGUpOwor
ICAgIHZhciBwYWlycyA9IHF1ZXJ5LnNwbGl0KCImIik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBp
aSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgeworICAgICAgdmFyIGtleVZhbHVlID0gcGFpcnNbaWld
LnNwbGl0KCI9Iik7CisgICAgICB2YXIga2V5ID0ga2V5VmFsdWVbMF07CisgICAgICB2YXIgdmFs
dWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgICAgYXJnc1trZXldID0g
dmFsdWU7CisgICAgfQorICB9IGNhdGNoIChlKSB7CisgICAgdGhyb3cgImNvdWxkIG5vdCBwYXJz
ZSB1cmwiOworICB9CisgIHJldHVybiBhcmdzOworfTsKKworLyoqCisgKiBNYWtlcyBhbiBpbWFn
ZSBmcm9tIGEgc3JjLgorICogQHBhcmFtIHtzdHJpbmd9IHNyYyBJbWFnZSBzb3VyY2UgVVJMLgor
ICogQHBhcmFtIHtmdW5jdGlvbigpfSBvbmxvYWQgQ2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBp
bWFnZSBoYXMgZmluaXNlZCBsb2FkaW5nLgorICogQHBhcmFtIHtmdW5jdGlvbigpfSBvbmVycm9y
IENhbGxiYWNrIHRvIGNhbGwgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgKiBAcmV0dXJuIHshSW1h
Z2V9IFRoZSBjcmVhdGVkIGltYWdlLgorICovCit2YXIgbWFrZUltYWdlID0gZnVuY3Rpb24oc3Jj
LCBvbmxvYWQsIG9uZXJyb3IpIHsKKyAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2ltZycpOworICBpZiAob25sb2FkKSB7CisgICAgaW1nLm9ubG9hZCA9IG9ubG9hZDsKKyAgfQor
ICBpZiAob25lcnJvcikgeworICAgIGltZy5vbmVycm9yID0gb25lcnJvcjsKKyAgfSBlbHNlIHsK
KyAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgbG9nKCJXQVJOSU5HOiBjcmVh
dGluZyBpbWFnZSBmYWlsZWQ7IHNyYzogIiArIHRoaXMuc3JjKTsKKyAgICB9OworICB9CisgIGlm
IChzcmMpIHsKKyAgICBpbWcuc3JjID0gc3JjOworICB9CisgIHJldHVybiBpbWc7Cit9CisKKy8q
KgorICogTWFrZXMgYW4gaW1hZ2UgZWxlbWVudCBmcm9tIGEgY2FudmFzLgorICogQHBhcmFtIHsh
SFRNTENhbnZhc30gY2FudmFzIENhbnZhcyB0byBtYWtlIGltYWdlIGZyb20uCisgKiBAcGFyYW0g
e2Z1bmN0aW9uKCl9IG9ubG9hZCBDYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGltYWdlIGhhcyBm
aW5pc2VkIGxvYWRpbmcuCisgKiBAcGFyYW0ge3N0cmluZ30gaW1hZ2VGb3JtYXQgSW1hZ2UgZm9y
bWF0IHRvIGJlIHBhc3NlZCB0byB0b0RhdGFVcmwoKS4KKyAqIEByZXR1cm4geyFJbWFnZX0gVGhl
IGNyZWF0ZWQgaW1hZ2UuCisgKi8KK3ZhciBtYWtlSW1hZ2VGcm9tQ2FudmFzID0gZnVuY3Rpb24o
Y2FudmFzLCBvbmxvYWQsIGltYWdlRm9ybWF0KSB7CisgIHJldHVybiBtYWtlSW1hZ2UoY2FudmFz
LnRvRGF0YVVSTChpbWFnZUZvcm1hdCksIG9ubG9hZCk7Cit9OworCisvKioKKyAqIE1ha2VzIGEg
dmlkZW8gZWxlbWVudCBmcm9tIGEgc3JjLgorICogQHBhcmFtIHtzdHJpbmd9IHNyYyBWaWRlbyBz
b3VyY2UgVVJMLgorICogQHBhcmFtIHtmdW5jdGlvbigpfSBvbmVycm9yIENhbGxiYWNrIHRvIGNh
bGwgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgKiBAcmV0dXJuIHshVmlkZW99IFRoZSBjcmVhdGVk
IHZpZGVvLgorICovCit2YXIgbWFrZVZpZGVvID0gZnVuY3Rpb24oc3JjLCBvbmVycm9yKSB7Cisg
IHZhciB2aWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICB2aWQubXV0ZWQg
PSB0cnVlOworICBpZiAob25lcnJvcikgeworICAgIHZpZC5vbmVycm9yID0gb25lcnJvcjsKKyAg
fSBlbHNlIHsKKyAgICB2aWQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgbG9nKCJXQVJO
SU5HOiBjcmVhdGluZyB2aWRlbyBmYWlsZWQ7IHNyYzogIiArIHRoaXMuc3JjKTsKKyAgICB9Owor
ICB9CisgIGlmIChzcmMpIHsKKyAgICB2aWQuc3JjID0gc3JjOworICB9CisgIHJldHVybiB2aWQ7
Cit9CisKKy8qKgorICogSW5zZXJ0cyBhbiBpbWFnZSB3aXRoIGEgY2FwdGlvbiBpbnRvICdlbGVt
ZW50Jy4KKyAqIEBwYXJhbSB7IUhUTUxFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdG8gYXBwZW5k
IGltYWdlIHRvLgorICogQHBhcmFtIHtzdHJpbmd9IGNhcHRpb24gY2FwdGlvbiB0byBhc3NvY2lh
dGUgd2l0aCBpbWFnZS4KKyAqIEBwYXJhbSB7IUltYWdlfSBpbWcgaW1hZ2UgdG8gaW5zZXJ0Lgor
ICovCit2YXIgaW5zZXJ0SW1hZ2UgPSBmdW5jdGlvbihlbGVtZW50LCBjYXB0aW9uLCBpbWcpIHsK
KyAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICB2YXIgbGFiZWwg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgbGFiZWwuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoY2FwdGlvbikpOworICBkaXYuYXBwZW5kQ2hpbGQobGFiZWwp
OworICBkaXYuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOwor
fTsKKworLyoqCisgKiBJbnNlcnRzIGEgJ2xhYmVsJyB0aGF0IHdoZW4gY2xpY2tlZCBleHBhbmRz
IHRvIHRoZSBwcmUgZm9ybWF0dGVkIHRleHQKKyAqIHN1cHBsaWVkIGJ5ICdzb3VyY2UnLgorICog
QHBhcmFtIHshSFRNTEVsZW1lbnR9IGVsZW1lbnQgZWxlbWVudCB0byBhcHBlbmQgbGFiZWwgdG8u
CisgKiBAcGFyYW0ge3N0cmluZ30gbGFiZWwgbGFiZWwgZm9yIGFuY2hvci4KKyAqIEBwYXJhbSB7
c3RyaW5nfSBzb3VyY2UgcHJlZm9ybWF0dGVkIHRleHQgdG8gZXhwYW5kIHRvLgorICogQHBhcmFt
IHtzdHJpbmd9IG9wdF91cmwgVVJMIG9mIHNvdXJjZS4gSWYgcHJvdmlkZWQgYSBsaW5rIHRvIHRo
ZSBzb3VyY2UgZmlsZQorICogICAgIHdpbGwgYWxzbyBiZSBhZGRlZC4KKyAqLwordmFyIGFkZFNo
YWRlclNvdXJjZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGxhYmVsLCBzb3VyY2UsIG9wdF91cmwpIHsK
KyAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICB2YXIgcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOworICBzLmNsYXNzTmFtZSA9ICJzaGFkZXItc291
cmNlIjsKKyAgcy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICB2YXIgb2wgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJvbCIpOworICAvL3MuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoc291cmNlKSk7CisgIHZhciBsaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKKyAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBsaW5lID0g
bGluZXNbaWldOworICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Cisg
ICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOworICAgIG9s
LmFwcGVuZENoaWxkKGxpKTsKKyAgfQorICBzLmFwcGVuZENoaWxkKG9sKTsKKyAgdmFyIGwgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CisgIGwuaHJlZiA9ICJzaG93LXNoYWRlci1zb3Vy
Y2UiOworICBsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxhYmVsKSk7Cisg
IGwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYg
KGV2ZW50LnByZXZlbnREZWZhdWx0KSB7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CisgICAgICB9CisgICAgICBzLnN0eWxlLmRpc3BsYXkgPSAocy5zdHlsZS5kaXNwbGF5ID09ICdu
b25lJykgPyAnYmxvY2snIDogJ25vbmUnOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sIGZh
bHNlKTsKKyAgZGl2LmFwcGVuZENoaWxkKGwpOworICBpZiAob3B0X3VybCkgeworICAgIHZhciB1
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOworICAgIHUuaHJlZiA9IG9wdF91cmw7Cisg
ICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOworICAgIHUu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIigiICsgb3B0X3VybCArICIpIikp
OworICAgIGRpdi5hcHBlbmRDaGlsZCh1KTsKKyAgfQorICBkaXYuYXBwZW5kQ2hpbGQocyk7Cisg
IGVsZW1lbnQuYXBwZW5kQ2hpbGQoZGl2KTsKK307CisKKy8qKgorICogSW5zZXJ0cyBsYWJlbHMg
dGhhdCB3aGVuIGNsaWNrZWQgZXhwYW5kIHRvIHNob3cgdGhlIG9yaWdpbmFsIHNvdXJjZSBvZiB0
aGUKKyAqIHNoYWRlciBhbmQgYWxzbyB0cmFuc2xhdGVkIHNvdXJjZSBvZiB0aGUgc2hhZGVyLCBp
ZiB0aGF0IGlzIGF2YWlsYWJsZS4KKyAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBn
bCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUhUTUxFbGVt
ZW50fSBlbGVtZW50IGVsZW1lbnQgdG8gYXBwZW5kIGxhYmVsIHRvLgorICogQHBhcmFtIHtzdHJp
bmd9IGxhYmVsIGxhYmVsIGZvciBhbmNob3IuCisgKiBAcGFyYW0ge1dlYkdMU2hhZGVyfSBzaGFk
ZXIgU2hhZGVyIHRvIHNob3cgdGhlIHNvdXJjZXMgZm9yLgorICogQHBhcmFtIHtzdHJpbmd9IHNo
YWRlclNvdXJjZSBPcmlnaW5hbCBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtzdHJpbmd9IG9w
dF91cmwgVVJMIG9mIHNvdXJjZS4gSWYgcHJvdmlkZWQgYSBsaW5rIHRvIHRoZSBzb3VyY2UgZmls
ZQorICogICAgIHdpbGwgYWxzbyBiZSBhZGRlZC4KKyAqLwordmFyIGFkZFNoYWRlclNvdXJjZXMg
PSBmdW5jdGlvbigKKyAgICBnbCwgZWxlbWVudCwgbGFiZWwsIHNoYWRlciwgc2hhZGVyU291cmNl
LCBvcHRfdXJsKSB7CisgIGFkZFNoYWRlclNvdXJjZShlbGVtZW50LCBsYWJlbCwgc2hhZGVyU291
cmNlLCBvcHRfdXJsKTsKKworICB2YXIgZGVidWdTaGFkZXJzID0gZ2wuZ2V0RXh0ZW5zaW9uKCdX
RUJHTF9kZWJ1Z19zaGFkZXJzJyk7CisgIGlmIChkZWJ1Z1NoYWRlcnMgJiYgc2hhZGVyKSB7Cisg
ICAgdmFyIHRyYW5zbGF0ZWRTb3VyY2UgPSBkZWJ1Z1NoYWRlcnMuZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZShzaGFkZXIpOworICAgIGlmICh0cmFuc2xhdGVkU291cmNlICE9ICcnKSB7CisgICAg
ICBhZGRTaGFkZXJTb3VyY2UoZWxlbWVudCwgbGFiZWwgKyAnIHRyYW5zbGF0ZWQgZm9yIGRyaXZl
cicsIHRyYW5zbGF0ZWRTb3VyY2UpOworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBTZW5kcyBz
aGFkZXIgaW5mb3JtYXRpb24gdG8gdGhlIHNlcnZlciB0byBiZSBkdW1wZWQgaW50byB0ZXh0IGZp
bGVzCisgKiB3aGVuIHRlc3RzIGFyZSBydW4gZnJvbSB3aXRoaW4gdGhlIHRlc3QtcnVubmVyIGhh
cm5lc3MuCisgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBvZiBjdXJy
ZW50LgorICogQHBhcmFtIHtzdHJpbmd9IHBhc3NNc2cgVGVzdCBkZXNjcmlwdGlvbi4KKyAqIEBw
YXJhbSB7b2JqZWN0fSB2SW5mbyBPYmplY3QgY29udGFpbmluZyB2ZXJ0ZXggc2hhZGVyIGluZm9y
bWF0aW9uLgorICogQHBhcmFtIHtvYmplY3R9IGZJbmZvIE9iamVjdCBjb250YWluaW5nIGZyYWdt
ZW50IHNoYWRlciBpbmZvcm1hdGlvbi4KKyAqLwordmFyIGR1bXBTaGFkZXJzSW5mbyA9IGZ1bmN0
aW9uKGdsLCB1cmwsIHBhc3NNc2csIHZJbmZvLCBmSW5mbykgeworICB2YXIgc2hhZGVySW5mbyA9
IHt9OworICBzaGFkZXJJbmZvLnVybCA9IHVybDsKKyAgc2hhZGVySW5mby50ZXN0RGVzY3JpcHRp
b24gPSBwYXNzTXNnOworICBzaGFkZXJJbmZvLnZMYWJlbCA9IHZJbmZvLmxhYmVsOworICBzaGFk
ZXJJbmZvLnZTaG91bGRDb21waWxlID0gdkluZm8uc2hhZGVyU3VjY2VzczsKKyAgc2hhZGVySW5m
by52U291cmNlID0gdkluZm8uc291cmNlOworICBzaGFkZXJJbmZvLmZMYWJlbCA9IGZJbmZvLmxh
YmVsOworICBzaGFkZXJJbmZvLmZTaG91bGRDb21waWxlID0gZkluZm8uc2hhZGVyU3VjY2VzczsK
KyAgc2hhZGVySW5mby5mU291cmNlID0gZkluZm8uc291cmNlOworICBzaGFkZXJJbmZvLnZUcmFu
c2xhdGVkU291cmNlID0gbnVsbDsKKyAgc2hhZGVySW5mby5mVHJhbnNsYXRlZFNvdXJjZSA9IG51
bGw7CisgIHZhciBkZWJ1Z1NoYWRlcnMgPSBnbC5nZXRFeHRlbnNpb24oJ1dFQkdMX2RlYnVnX3No
YWRlcnMnKTsKKyAgaWYgKGRlYnVnU2hhZGVycykgeworICAgIGlmICh2SW5mby5zaGFkZXIpCisg
ICAgICBzaGFkZXJJbmZvLnZUcmFuc2xhdGVkU291cmNlID0gZGVidWdTaGFkZXJzLmdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2UodkluZm8uc2hhZGVyKTsKKyAgICBpZiAoZkluZm8uc2hhZGVyKQor
ICAgICAgc2hhZGVySW5mby5mVHJhbnNsYXRlZFNvdXJjZSA9IGRlYnVnU2hhZGVycy5nZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKGZJbmZvLnNoYWRlcik7CisgIH0KKworICB2YXIgZHVtcFNoYWRl
ckluZm9SZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIGR1bXBTaGFkZXJJbmZvUmVx
dWVzdC5vcGVuKCdQT1NUJywgIi9kdW1wU2hhZGVySW5mbyIsIHRydWUpOworICBkdW1wU2hhZGVy
SW5mb1JlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4i
KTsKKyAgZHVtcFNoYWRlckluZm9SZXF1ZXN0LnNlbmQoSlNPTi5zdHJpbmdpZnkoc2hhZGVySW5m
bykpOworfTsKKworLy8gQWRkIHlvdXIgcHJlZml4IGhlcmUuCit2YXIgYnJvd3NlclByZWZpeGVz
ID0gWworICAiIiwKKyAgIk1PWl8iLAorICAiT1BfIiwKKyAgIldFQktJVF8iCitdOworCisvKioK
KyAqIEdpdmVuIGFuIGV4dGVuc2lvbiBuYW1lIGxpa2UgV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJl
X3MzdGMKKyAqIHJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHN1cHBvcnRlZCB2ZXJzaW9uIGV4dGVu
c2lvbiwgbGlrZQorICogV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV0dXJlX3MzdGMKKyAqIEBw
YXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5zaW9uIHRvIGxvb2sgZm9yLgorICogQHJl
dHVybiB7c3RyaW5nfSBuYW1lIG9mIGV4dGVuc2lvbiBmb3VuZCBvciB1bmRlZmluZWQgaWYgbm90
CisgKiAgICAgZm91bmQuCisgKi8KK3ZhciBnZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25vd25Q
cmVmaXhlcyA9IGZ1bmN0aW9uKGdsLCBuYW1lKSB7CisgIHZhciBzdXBwb3J0ZWQgPSBnbC5nZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKCk7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBicm93c2VyUHJl
Zml4ZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHByZWZpeGVkTmFtZSA9IGJyb3dzZXJQcmVm
aXhlc1tpaV0gKyBuYW1lOworICAgIGlmIChzdXBwb3J0ZWQuaW5kZXhPZihwcmVmaXhlZE5hbWUp
ID49IDApIHsKKyAgICAgIHJldHVybiBwcmVmaXhlZE5hbWU7CisgICAgfQorICB9Cit9OworCisv
KioKKyAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5z
aW9uIHRvIGxvb2sgZm9yLgorICogQHBhcmFtIHtib29sZWFufSBleHRlbnNpb25FbmFibGVkIFRy
dWUgaWYgdGhlIGV4dGVuc2lvbiB3YXMgZW5hYmxlZCBzdWNjZXNzZnVsbHkgdmlhIGdsLmdldEV4
dGVuc2lvbigpLgorICovCit2YXIgcnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdCA9IGZ1bmN0aW9u
KGdsLCBuYW1lLCBleHRlbnNpb25FbmFibGVkKSB7CisgIHZhciBwcmVmaXhlZE5hbWUgPSBnZXRT
dXBwb3J0ZWRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcyhnbCwgbmFtZSk7CisgIGlmIChwcmVm
aXhlZE5hbWUgIT09IHVuZGVmaW5lZCkgeworICAgICAgaWYgKGV4dGVuc2lvbkVuYWJsZWQpIHsK
KyAgICAgICAgICB0ZXN0UGFzc2VkKG5hbWUgKyAiIGxpc3RlZCBhcyBzdXBwb3J0ZWQgYW5kIGdl
dEV4dGVuc2lvbiBzdWNjZWVkZWQiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGVzdEZh
aWxlZChuYW1lICsgIiBsaXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gZmFpbGVk
Iik7CisgICAgICB9CisgIH0gZWxzZSB7CisgICAgICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgewor
ICAgICAgICAgIHRlc3RGYWlsZWQobmFtZSArICIgbm90IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0
IGdldEV4dGVuc2lvbiBzdWNjZWVkZWQiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGVz
dFBhc3NlZChuYW1lICsgIiBub3QgbGlzdGVkIGFzIHN1cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9u
IGZhaWxlZCAtLSB0aGlzIGlzIGxlZ2FsIik7CisgICAgICB9CisgIH0KK30KKworLyoqCisgKiBH
aXZlbiBhbiBleHRlbnNpb24gbmFtZSBsaWtlIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3Rj
CisgKiByZXR1cm5zIHRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxpa2UKKyAqIFdF
QktJVF9XRUJHTF9jb21wcmVzc2VkX3RldHVyZV9zM3RjCisgKiBAcGFyYW0ge3N0cmluZ30gbmFt
ZSBOYW1lIG9mIGV4dGVuc2lvbiB0byBsb29rIGZvci4KKyAqIEByZXR1cm4ge1dlYkdMRXh0ZW5z
aW9ufSBUaGUgZXh0ZW5zaW9uIG9yIHVuZGVmaW5lZCBpZiBub3QKKyAqICAgICBmb3VuZC4KKyAq
LwordmFyIGdldEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzID0gZnVuY3Rpb24oZ2wsIG5hbWUp
IHsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGJyb3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkp
IHsKKyAgICB2YXIgcHJlZml4ZWROYW1lID0gYnJvd3NlclByZWZpeGVzW2lpXSArIG5hbWU7Cisg
ICAgdmFyIGV4dCA9IGdsLmdldEV4dGVuc2lvbihwcmVmaXhlZE5hbWUpOworICAgIGlmIChleHQp
IHsKKyAgICAgIHJldHVybiBleHQ7CisgICAgfQorICB9Cit9OworCisvKioKKyAqIFJldHVybnMg
cG9zc2libGUgcHJlZml4ZWQgdmVyc2lvbnMgb2YgYW4gZXh0ZW5zaW9uJ3MgbmFtZS4KKyAqIEBw
YXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5zaW9uLiBNYXkgYWxyZWFkeSBpbmNsdWRl
IGEgcHJlZml4LgorICogQHJldHVybiB7QXJyYXkuPHN0cmluZz59IFZhcmlhdGlvbnMgb2YgdGhl
IGV4dGVuc2lvbiBuYW1lIHdpdGgga25vd24KKyAqICAgICBicm93c2VyIHByZWZpeGVzLgorICov
Cit2YXIgZ2V0RXh0ZW5zaW9uUHJlZml4ZWROYW1lcyA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgdmFy
IHVucHJlZml4ID0gZnVuY3Rpb24obmFtZSkgeworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBi
cm93c2VyUHJlZml4ZXMubGVuZ3RoOyArK2lpKSB7CisgICAgICBpZiAoYnJvd3NlclByZWZpeGVz
W2lpXS5sZW5ndGggPiAwICYmCisgICAgICAgICAgbmFtZS5zdWJzdHJpbmcoMCwgYnJvd3NlclBy
ZWZpeGVzW2lpXS5sZW5ndGgpLnRvTG93ZXJDYXNlKCkgPT09CisgICAgICAgICAgYnJvd3NlclBy
ZWZpeGVzW2lpXS50b0xvd2VyQ2FzZSgpKSB7CisgICAgICAgIHJldHVybiBuYW1lLnN1YnN0cmlu
Zyhicm93c2VyUHJlZml4ZXNbaWldLmxlbmd0aCk7CisgICAgICB9CisgICAgfQorICAgIHJldHVy
biBuYW1lOworICB9CisKKyAgdmFyIHVucHJlZml4ZWQgPSB1bnByZWZpeChuYW1lKTsKKworICB2
YXIgdmFyaWF0aW9ucyA9IFtdOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZp
eGVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhcmlhdGlvbnMucHVzaChicm93c2VyUHJlZml4ZXNb
aWldICsgdW5wcmVmaXhlZCk7CisgIH0KKworICByZXR1cm4gdmFyaWF0aW9uczsKK307CisKK3Zh
ciByZXBsYWNlUkUgPSAvXCRcKChcdyspXCkvZzsKKworLyoqCisgKiBSZXBsYWNlcyBzdHJpbmdz
IHdpdGggcHJvcGVydHkgdmFsdWVzLgorICogR2l2ZW4gYSBzdHJpbmcgbGlrZSAiaGVsbG8gJChm
aXJzdCkgJChsYXN0KSIgYW5kIGFuIG9iamVjdAorICogbGlrZSB7Zmlyc3Q6IkpvaG4iLCBsYXN0
OiJTbWl0aCJ9IHdpbGwgcmV0dXJuCisgKiAiaGVsbG8gSm9obiBTbWl0aCIuCisgKiBAcGFyYW0g
e3N0cmluZ30gc3RyIFN0cmluZyB0byBkbyByZXBsYWNlbWVudHMgaW4uCisgKiBAcGFyYW0gey4u
Ln0gMSBvciBtb3JlIG9iamVjdHMgY29udGFpbmluZyBwcm9wZXJ0aWVzLgorICovCit2YXIgcmVw
bGFjZVBhcmFtcyA9IGZ1bmN0aW9uKHN0cikgeworICB2YXIgYXJncyA9IGFyZ3VtZW50czsKKyAg
cmV0dXJuIHN0ci5yZXBsYWNlKHJlcGxhY2VSRSwgZnVuY3Rpb24oc3RyLCBwMSwgb2Zmc2V0LCBz
KSB7CisgICAgZm9yICh2YXIgaWkgPSAxOyBpaSA8IGFyZ3MubGVuZ3RoOyArK2lpKSB7CisgICAg
ICBpZiAoYXJnc1tpaV1bcDFdICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcmV0dXJuIGFyZ3Nb
aWldW3AxXTsKKyAgICAgIH0KKyAgICB9CisgICAgdGhyb3cgInVua25vd24gc3RyaW5nIHBhcmFt
ICciICsgcDEgKyAiJyI7CisgIH0pOworfTsKKwordmFyIHVwcGVyQ2FzZUZpcnN0TGV0dGVyID0g
ZnVuY3Rpb24oc3RyKSB7CisgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNl
KCkgKyBzdHIuc3Vic3RyaW5nKDEpOworfTsKKworLyoqCisgKiBHZXRzIGEgcHJlZml4ZWQgcHJv
cGVydHkuIEZvciBleGFtcGxlLAorICoKKyAqICAgICB2YXIgZm4gPSBnZXRQcmVmaXhlZFByb3Bl
cnR5KAorICogICAgICAgIHdpbmRvdywKKyAqICAgICAgICAicmVxdWVzdEFuaW1hdGlvbkZyYW1l
Iik7CisgKgorICogV2lsbCByZXR1cm4gZWl0aGVyOgorICogICAgIndpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUiLAorICogICAgIndpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKKyAq
ICAgICJ3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAorICogICAgIndpbmRvdy5tb3pS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAorICogICAgIndpbmRvdy53ZWJLaXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUiLAorICogICAgdW5kZWZpbmVkCisgKgorICogdGhlIG5vbi1wcmVmaXhlZCBmdW5j
dGlvbiBpcyB0cmllZCBmaXJzdC4KKyAqLwordmFyIHByb3BlcnR5UHJlZml4ZXMgPSBbIiIsICJt
b3oiLCAibXMiLCAibyIsICJ3ZWJraXQiXTsKK3ZhciBnZXRQcmVmaXhlZFByb3BlcnR5ID0gZnVu
Y3Rpb24ob2JqLCBwcm9wZXJ0eU5hbWUpIHsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHByb3Bl
cnR5UHJlZml4ZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHByZWZpeCA9IHByb3BlcnR5UHJl
Zml4ZXNbaWldOworICAgIHZhciBuYW1lID0gcHJlZml4ICsgcHJvcGVydHlOYW1lOworICAgIGxv
ZyhuYW1lKTsKKyAgICB2YXIgcHJvcGVydHkgPSBvYmpbbmFtZV07CisgICAgaWYgKHByb3BlcnR5
KSB7CisgICAgICByZXR1cm4gcHJvcGVydHk7CisgICAgfQorICAgIGlmIChpaSA9PSAwKSB7Cisg
ICAgICBwcm9wZXJ0eU5hbWUgPSB1cHBlckNhc2VGaXJzdExldHRlcihwcm9wZXJ0eU5hbWUpOwor
ICAgIH0KKyAgfQorICByZXR1cm4gdW5kZWZpbmVkOworfTsKKwordmFyIF9yZXF1ZXN0QW5pbUZy
YW1lOworCisvKioKKyAqIFByb3ZpZGVzIHJlcXVlc3RBbmltYXRpb25GcmFtZSBpbiBhIGNyb3Nz
IGJyb3dzZXIgd2F5LgorICovCit2YXIgcmVxdWVzdEFuaW1GcmFtZSA9IGZ1bmN0aW9uKGNhbGxi
YWNrKSB7CisgIGlmICghX3JlcXVlc3RBbmltRnJhbWUpIHsKKyAgICBfcmVxdWVzdEFuaW1GcmFt
ZSA9IGdldFByZWZpeGVkUHJvcGVydHkod2luZG93LCAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIikg
fHwKKyAgICAgIGZ1bmN0aW9uKGNhbGxiYWNrLCBlbGVtZW50KSB7CisgICAgICAgIHJldHVybiB3
aW5kb3cuc2V0VGltZW91dChjYWxsYmFjaywgMTAwMCAvIDcwKTsKKyAgICAgIH07CisgIH0KKyAg
X3JlcXVlc3RBbmltRnJhbWUuY2FsbCh3aW5kb3csIGNhbGxiYWNrKTsKK307CisKK3ZhciBfY2Fu
Y2VsQW5pbUZyYW1lOworCisvKioKKyAqIFByb3ZpZGVzIGNhbmNlbEFuaW1hdGlvbkZyYW1lIGlu
IGEgY3Jvc3MgYnJvd3NlciB3YXkuCisgKi8KK3ZhciBjYW5jZWxBbmltRnJhbWUgPSBmdW5jdGlv
bihyZXF1ZXN0KSB7CisgIGlmICghX2NhbmNlbEFuaW1GcmFtZSkgeworICAgIF9jYW5jZWxBbmlt
RnJhbWUgPSBnZXRQcmVmaXhlZFByb3BlcnR5KHdpbmRvdywgImNhbmNlbEFuaW1hdGlvbkZyYW1l
IikgfHwKKyAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQ7CisgIH0KKyAgX2NhbmNlbEFuaW1GcmFt
ZS5jYWxsKHdpbmRvdywgcmVxdWVzdCk7Cit9OworCisvKioKKyAqIFByb3ZpZGVzIHJlcXVlc3RG
dWxsU2NyZWVuIGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuCisgKi8KK3ZhciByZXF1ZXN0RnVsbFNj
cmVlbiA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgdmFyIGZuID0gZ2V0UHJlZml4ZWRQcm9wZXJ0
eShlbGVtZW50LCAicmVxdWVzdEZ1bGxTY3JlZW4iKTsKKyAgaWYgKGZuKSB7CisgICAgZm4uY2Fs
bChlbGVtZW50KTsKKyAgfQorfTsKKworLyoqCisgKiBQcm92aWRlcyBjYW5jZWxGdWxsU2NyZWVu
IGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuCisgKi8KK3ZhciBjYW5jZWxGdWxsU2NyZWVuID0gZnVu
Y3Rpb24oKSB7CisgIHZhciBmbiA9IGdldFByZWZpeGVkUHJvcGVydHkoZG9jdW1lbnQsICJjYW5j
ZWxGdWxsU2NyZWVuIik7CisgIGlmIChmbikgeworICAgIGZuLmNhbGwoZG9jdW1lbnQpOworICB9
Cit9OworCit2YXIgZnVsbFNjcmVlblN0YXRlTmFtZTsKKyhmdW5jdGlvbigpIHsKKyAgdmFyIGZ1
bGxTY3JlZW5TdGF0ZU5hbWVzID0gWworICAgICJpc0Z1bGxTY3JlZW4iLAorICAgICJmdWxsU2Ny
ZWVuIgorICBdOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZnVsbFNjcmVlblN0YXRlTmFtZXMu
bGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHByb3BlcnR5TmFtZSA9IGZ1bGxTY3JlZW5TdGF0ZU5h
bWVzW2lpXTsKKyAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgcHJvcGVydHlQcmVmaXhlcy5sZW5n
dGg7ICsramopIHsKKyAgICAgIHZhciBwcmVmaXggPSBwcm9wZXJ0eVByZWZpeGVzW2pqXTsKKyAg
ICAgIGlmIChwcmVmaXgubGVuZ3RoKSB7CisgICAgICAgIHByb3BlcnR5TmFtZSA9IHVwcGVyQ2Fz
ZUZpcnN0TGV0dGVyKHByb3BlcnR5TmFtZSk7CisgICAgICAgIGZ1bGxTY3JlZW5TdGF0ZU5hbWUg
PSBwcmVmaXggKyBwcm9wZXJ0eU5hbWU7CisgICAgICAgIGlmIChkb2N1bWVudFtmdWxsU2NyZWVu
U3RhdGVOYW1lXSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICB9CisgICAgfQorICAgIGZ1bGxTY3JlZW5TdGF0ZU5hbWUgPSB1bmRlZmluZWQ7Cisg
IH0KK30oKSk7CisKKy8qKgorICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBmdWxsc2NyZWVu
IG1vZGUgaXMgYWN0aXZlLgorICovCit2YXIgZ2V0RnVsbFNjcmVlblN0YXRlID0gZnVuY3Rpb24o
KSB7CisgIGxvZygiZnVsbHNjcmVlbnN0YXRlbmFtZToiICsgZnVsbFNjcmVlblN0YXRlTmFtZSk7
CisgIGxvZyhkb2N1bWVudFtmdWxsU2NyZWVuU3RhdGVOYW1lXSk7CisgIHJldHVybiBkb2N1bWVu
dFtmdWxsU2NyZWVuU3RhdGVOYW1lXTsKK307CisKKy8qKgorICogQHBhcmFtIHshSFRNTEVsZW1l
bnR9IGVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gZ28gZnVsbHNjcmVlbi4KKyAqIEBwYXJhbSB7IWZ1
bmN0aW9uKGJvb2xlYW4pfSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQK
KyAqICAgICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgZnVsbHNjcmVlbi4gSXQgaXMgcGFzc2Vk
IHRydWUgaWYKKyAqICAgICAgICBlbnRlcmluZyBmdWxsc2NyZWVuLCBmYWxzZSBpZiBleGl0aW5n
LgorICovCit2YXIgb25GdWxsU2NyZWVuQ2hhbmdlID0gZnVuY3Rpb24oZWxlbWVudCwgY2FsbGJh
Y2spIHsKKyAgcHJvcGVydHlQcmVmaXhlcy5mb3JFYWNoKGZ1bmN0aW9uKHByZWZpeCkgeworICAg
IHZhciBldmVudE5hbWUgPSBwcmVmaXggKyAiZnVsbHNjcmVlbmNoYW5nZSI7CisgICAgbG9nKCJh
ZGRldmVudDogIiArIGV2ZW50TmFtZSk7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWUsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICBsb2coImV2ZW50OiAiICsgZXZlbnRO
YW1lKTsKKyAgICAgIGNhbGxiYWNrKGdldEZ1bGxTY3JlZW5TdGF0ZSgpKTsKKyAgICB9KTsKKyAg
fSk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IXN0cmluZ30gYnV0dG9uSWQgVGhlIGlkIG9mIHRo
ZSBidXR0b24gdGhhdCB3aWxsIHRvZ2dsZSBmdWxsc2NyZWVuCisgKiAgICAgICAgbW9kZS4KKyAq
IEBwYXJhbSB7IXN0cmluZ30gZnVsbHNjcmVlbklkIFRoZSBpZCBvZiB0aGUgZWxlbWVudCB0byBn
byBmdWxsc2NyZWVuLgorICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbGVhbil9IGNhbGxiYWNrIEEg
ZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZAorICogICAgICAgIHdoZW4gZW50ZXJpbmcvZXhp
dGluZyBmdWxsc2NyZWVuLiBJdCBpcyBwYXNzZWQgdHJ1ZSBpZgorICogICAgICAgIGVudGVyaW5n
IGZ1bGxzY3JlZW4sIGZhbHNlIGlmIGV4aXRpbmcuCisgKiBAcmV0dXJuIHtib29sZWFufSBUcnVl
IGlmIGZ1bGxzY3JlZW4gbW9kZSBpcyBzdXBwb3J0ZWQuCisgKi8KK3ZhciBzZXR1cEZ1bGxzY3Jl
ZW4gPSBmdW5jdGlvbihidXR0b25JZCwgZnVsbHNjcmVlbklkLCBjYWxsYmFjaykgeworICBpZiAo
IWZ1bGxTY3JlZW5TdGF0ZU5hbWUpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICB2YXIg
ZnVsbHNjcmVlbkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmdWxsc2NyZWVuSWQp
OworICBvbkZ1bGxTY3JlZW5DaGFuZ2UoZnVsbHNjcmVlbkVsZW1lbnQsIGNhbGxiYWNrKTsKKwor
ICB2YXIgdG9nZ2xlRnVsbFNjcmVlbiA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGdldEZ1
bGxTY3JlZW5TdGF0ZSgpKSB7CisgICAgICBjYW5jZWxGdWxsU2NyZWVuKGZ1bGxzY3JlZW5FbGVt
ZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgcmVxdWVzdEZ1bGxTY3JlZW4oZnVsbHNjcmVlbkVs
ZW1lbnQpOworICAgIH0KKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIHJldHVybiBm
YWxzZTsKKyAgfTsKKworICB2YXIgYnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGJ1dHRvbklkKTsKKyAgYnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IHRvZ2dsZUZ1bGxTY3JlZW4pOworCisgIHJldHVybiB0cnVlOworfTsKKworLyoqCisgKiBXYWl0
cyBmb3IgdGhlIGJyb3dzZXIgdG8gY29tcG9zaXRlIHRoZSB3ZWIgcGFnZS4KKyAqIEBwYXJhbSB7
ZnVuY3Rpb24oKX0gY2FsbGJhY2sgQSBmdW5jdGlvbiB0byBjYWxsIGFmdGVyIGNvbXBvc2l0aW5n
IGhhcyB0YWtlbgorICogICAgICAgIHBsYWNlLgorICovCit2YXIgd2FpdEZvckNvbXBvc2l0ZSA9
IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgIHZhciBmcmFtZXMgPSA1OworICB2YXIgY291bnREb3du
ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKGZyYW1lcyA9PSAwKSB7CisgICAgICAvLyBUT0RPKGti
cik6IHVuaWZ5IHdpdGgganMtdGVzdC1wcmUuanMgYW5kIGVuYWJsZSB0aGVzZSB3aXRoCisgICAg
ICAvLyB2ZXJib3NlIGxvZ2dpbmcuCisgICAgICAvLyBsb2coIndhaXRGb3JDb21wb3NpdGU6IGNh
bGxiYWNrIik7CisgICAgICBjYWxsYmFjaygpOworICAgIH0gZWxzZSB7CisgICAgICAvLyBsb2co
IndhaXRGb3JDb21wb3NpdGU6IGNvdW50ZG93bigiICsgZnJhbWVzICsgIikiKTsKKyAgICAgIC0t
ZnJhbWVzOworICAgICAgcmVxdWVzdEFuaW1GcmFtZS5jYWxsKHdpbmRvdywgY291bnREb3duKTsK
KyAgICB9CisgIH07CisgIGNvdW50RG93bigpOworfTsKKwordmFyIHNldFplcm9UaW1lb3V0ID0g
KGZ1bmN0aW9uKCkgeworICAvLyBTZWUgaHR0cHM6Ly9kYmFyb24ub3JnL2xvZy8yMDEwMDMwOS1m
YXN0ZXItdGltZW91dHMKKworICB2YXIgdGltZW91dHMgPSBbXTsKKyAgdmFyIG1lc3NhZ2VOYW1l
ID0gInplcm8tdGltZW91dC1tZXNzYWdlIjsKKworICAvLyBMaWtlIHNldFRpbWVvdXQsIGJ1dCBv
bmx5IHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQuICBUaGVyZSdzCisgIC8vIG5vIHRpbWUgYXJn
dW1lbnQgKGFsd2F5cyB6ZXJvKSBhbmQgbm8gYXJndW1lbnRzICh5b3UgaGF2ZSB0bworICAvLyB1
c2UgYSBjbG9zdXJlKS4KKyAgZnVuY3Rpb24gc2V0WmVyb1RpbWVvdXQoZm4pIHsKKyAgICAgIHRp
bWVvdXRzLnB1c2goZm4pOworICAgICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2VOYW1lLCAi
KiIpOworICB9CisKKyAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkgeworICAgICAgaWYg
KGV2ZW50LnNvdXJjZSA9PSB3aW5kb3cgJiYgZXZlbnQuZGF0YSA9PSBtZXNzYWdlTmFtZSkgewor
ICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgIGlmICh0aW1lb3V0
cy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgIHZhciBmbiA9IHRpbWVvdXRzLnNoaWZ0KCk7
CisgICAgICAgICAgICAgIGZuKCk7CisgICAgICAgICAgfQorICAgICAgfQorICB9CisKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBoYW5kbGVNZXNzYWdlLCB0cnVlKTsKKwor
ICByZXR1cm4gc2V0WmVyb1RpbWVvdXQ7Cit9KSgpOworCitmdW5jdGlvbiBkaXNwYXRjaFByb21p
c2UoZm4pIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChmbl9yZXNvbHZlLCBmbl9yZWplY3QpID0+
IHsKKyAgICBzZXRaZXJvVGltZW91dCgoKSA9PiB7CisgICAgICBsZXQgdmFsOworICAgICAgaWYg
KGZuKSB7CisgICAgICAgIHZhbCA9IGZuKCk7CisgICAgICB9CisgICAgICBmbl9yZXNvbHZlKHZh
bCk7CisgICAgfSk7CisgIH0pOworfQorCisvKioKKyAqIFJ1bnMgYW4gYXJyYXkgb2YgZnVuY3Rp
b25zLCB5aWVsZGluZyB0byB0aGUgYnJvd3NlciBiZXR3ZWVuIGVhY2ggc3RlcC4KKyAqIElmIHlv
dSB3YW50IHRvIGtub3cgd2hlbiBhbGwgdGhlIHN0ZXBzIGFyZSBmaW5pc2hlZCBhZGQgYSBsYXN0
IHN0ZXAuCisgKiBAcGFyYW0geyFBcnJheS48ZnVuY3Rpb24oKTogdm9pZD59IHN0ZXBzIEFycmF5
IG9mIGZ1bmN0aW9ucy4KKyAqLwordmFyIHJ1blN0ZXBzID0gZnVuY3Rpb24oc3RlcHMpIHsKKyAg
aWYgKCFzdGVwcy5sZW5ndGgpIHsKKyAgICByZXR1cm47CisgIH0KKworICAvLyBjb3B5IHN0ZXBz
IHNvIHRoZXkgY2FuJ3QgYmUgbW9kaWZlZC4KKyAgdmFyIHN0ZXBzVG9SdW4gPSBzdGVwcy5zbGlj
ZSgpOworICB2YXIgY3VycmVudFN0ZXAgPSAwOworICB2YXIgcnVuTmV4dFN0ZXAgPSBmdW5jdGlv
bigpIHsKKyAgICBzdGVwc1RvUnVuW2N1cnJlbnRTdGVwKytdKCk7CisgICAgaWYgKGN1cnJlbnRT
dGVwIDwgc3RlcHNUb1J1bi5sZW5ndGgpIHsKKyAgICAgIHNldFRpbWVvdXQocnVuTmV4dFN0ZXAs
IDEpOworICAgIH0KKyAgfTsKKyAgcnVuTmV4dFN0ZXAoKTsKK307CisKKy8qKgorICogU3RhcnRz
IHBsYXlpbmcgYSB2aWRlbyBhbmQgd2FpdHMgZm9yIGl0IHRvIGJlIGNvbnN1bWFibGUuCisgKiBA
cGFyYW0geyFIVE1MVmlkZW9FbGVtZW50fSB2aWRlbyBBbiBIVE1MNSBWaWRlbyBlbGVtZW50Lgor
ICogQHBhcmFtIHshZnVuY3Rpb24oIUhUTUxWaWRlb0VsZW1lbnQpOiB2b2lkfSBjYWxsYmFjayBG
dW5jdGlvbiB0byBjYWxsIHdoZW4KKyAqICAgICAgICB2aWRlbyBpcyByZWFkeS4KKyAqLworYXN5
bmMgZnVuY3Rpb24gc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBjYWxsYmFjaykg
eworICBpZiAodmlkZW8uZXJyb3IpIHsKKyAgICB0ZXN0RmFpbGVkKCdWaWRlbyBmYWlsZWQgdG8g
bG9hZDogJyArIHZpZGVvLmVycm9yKTsKKyAgICByZXR1cm47CisgIH0KKworICB2aWRlby5sb29w
ID0gdHJ1ZTsKKyAgdmlkZW8ubXV0ZWQgPSB0cnVlOworICAvLyBTZWUgd2hldGhlciBzZXR0aW5n
IHRoZSBwcmVsb2FkIGZsYWcgZGUtZmxha2VzIHZpZGVvLXJlbGF0ZWQgdGVzdHMuCisgIHZpZGVv
LnByZWxvYWQgPSAnYXV0byc7CisKKyAgdHJ5IHsKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7Cisg
IH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCd2aWRlby5wbGF5IGZhaWxlZDogJyArIGUp
OworICAgIHJldHVybjsKKyAgfQorCisgIGlmICh2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKSB7CisgICAgYXdhaXQgbmV3IFByb21pc2UoZ28gPT4gdmlkZW8ucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjayhnbykpOworICB9CisKKyAgY2FsbGJhY2sodmlkZW8pOworfQorCit2YXIgZ2V0
SG9zdCA9IGZ1bmN0aW9uKHVybCkgeworICB1cmwgPSB1cmwucmVwbGFjZSgiXFwiLCAiLyIpOwor
ICB2YXIgcG9zID0gdXJsLmluZGV4T2YoIjovLyIpOworICBpZiAocG9zID49IDApIHsKKyAgICB1
cmwgPSB1cmwuc3Vic3RyKHBvcyArIDMpOworICB9CisgIHZhciBwYXJ0cyA9IHVybC5zcGxpdCgn
LycpOworICByZXR1cm4gcGFydHNbMF07Cit9CisKKy8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0
aGUgbGFzdCAyIHdvcmRzIG9mIHRoZSBkb21haW4gb2YgYSBVUkwKKy8vIFRoaXMgaXMgcHJvYmFi
bHkgbm90IHRoZSBjb3JyZWN0IGNoZWNrIGJ1dCBpdCB3aWxsIGRvIGZvciBub3cuCit2YXIgZ2V0
QmFzZURvbWFpbiA9IGZ1bmN0aW9uKGhvc3QpIHsKKyAgdmFyIHBhcnRzID0gaG9zdC5zcGxpdCgi
OiIpOworICB2YXIgaG9zdG5hbWUgPSBwYXJ0c1swXTsKKyAgdmFyIHBvcnQgPSBwYXJ0c1sxXSB8
fCAiODAiOworICBwYXJ0cyA9IGhvc3RuYW1lLnNwbGl0KCIuIik7CisgIGlmKHBhcnRzLmxlbmd0
aCA8IDIpCisgICAgcmV0dXJuIGhvc3RuYW1lICsgIjoiICsgcG9ydDsKKyAgdmFyIHRsZCA9IHBh
cnRzW3BhcnRzLmxlbmd0aC0xXTsKKyAgdmFyIGRvbWFpbiA9IHBhcnRzW3BhcnRzLmxlbmd0aC0y
XTsKKyAgcmV0dXJuIGRvbWFpbiArICIuIiArIHRsZCArICI6IiArIHBvcnQ7Cit9CisKK3ZhciBy
dW5uaW5nT25Mb2NhbGhvc3QgPSBmdW5jdGlvbigpIHsKKyAgbGV0IGhvc3RuYW1lID0gd2luZG93
LmxvY2F0aW9uLmhvc3RuYW1lOworICByZXR1cm4gaG9zdG5hbWUgPT0gImxvY2FsaG9zdCIgfHwK
KyAgICBob3N0bmFtZSA9PSAiMTI3LjAuMC4xIiB8fAorICAgIGhvc3RuYW1lID09ICI6OjEiOwor
fQorCit2YXIgZ2V0TG9jYWxDcm9zc09yaWdpbiA9IGZ1bmN0aW9uKCkgeworICB2YXIgZG9tYWlu
OworICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3QuaW5kZXhPZigibG9jYWxob3N0IikgIT0gLTEp
IHsKKyAgICAvLyBUT0RPKGticik6IGZpZ3VyZSBvdXQgd2hldGhlciB0byB1c2UgYW4gSVB2NiBs
b29wYmFjayBhZGRyZXNzLgorICAgIGRvbWFpbiA9ICIxMjcuMC4wLjEiOworICB9IGVsc2Ugewor
ICAgIGRvbWFpbiA9ICJsb2NhbGhvc3QiOworICB9CisKKyAgdmFyIHBvcnQgPSB3aW5kb3cubG9j
YXRpb24ucG9ydCB8fCAiODAiOworICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsg
Ii8vIiArIGRvbWFpbiArICI6IiArIHBvcnQKK30KKwordmFyIGdldFJlbGF0aXZlUGF0aCA9IGZ1
bmN0aW9uKHBhdGgpIHsKKyAgdmFyIHJlbHBhcnRzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1l
LnNwbGl0KCIvIik7CisgIHJlbHBhcnRzLnBvcCgpOyAvLyBQb3Agb2ZmIGZpbGVuYW1lCisgIHZh
ciBwYXRocGFydHMgPSBwYXRoLnNwbGl0KCIvIik7CisKKyAgdmFyIGk7CisgIGZvciAoaSA9IDA7
IGkgPCBwYXRocGFydHMubGVuZ3RoOyArK2kpIHsKKyAgICBzd2l0Y2ggKHBhdGhwYXJ0c1tpXSkg
eworICAgICAgY2FzZSAiIjogYnJlYWs7CisgICAgICBjYXNlICIuIjogYnJlYWs7CisgICAgICBj
YXNlICIuLiI6CisgICAgICAgIHJlbHBhcnRzLnBvcCgpOworICAgICAgICBicmVhazsKKyAgICAg
IGRlZmF1bHQ6CisgICAgICAgIHJlbHBhcnRzLnB1c2gocGF0aHBhcnRzW2ldKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICB9CisKKyAgcmV0dXJuIHJlbHBhcnRzLmpvaW4oIi8iKTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gbG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCB3ZWJVcmwsIGxvY2FsVXJs
KSB7CisgIGlmIChydW5uaW5nT25Mb2NhbGhvc3QoKSkgeworICAgIGltZy5zcmMgPSBnZXRMb2Nh
bENyb3NzT3JpZ2luKCkgKyBnZXRSZWxhdGl2ZVBhdGgobG9jYWxVcmwpOworICAgIGNvbnNvbGUu
bG9nKCdbbG9hZENyb3NzT3JpZ2luSW1hZ2VdJywgJyAgdHJ5aW5nJywgaW1nLnNyYyk7CisgICAg
YXdhaXQgaW1nLmRlY29kZSgpOworICAgIHJldHVybjsKKyAgfQorCisgIHRyeSB7CisgICAgaW1n
LnNyYyA9IGdldFVybE9wdGlvbnMoKS5pbWdVcmwgfHwgd2ViVXJsOworICAgIGNvbnNvbGUubG9n
KCdbbG9hZENyb3NzT3JpZ2luSW1hZ2VdJywgJ3RyeWluZycsIGltZy5zcmMpOworICAgIGF3YWl0
IGltZy5kZWNvZGUoKTsKKyAgICByZXR1cm47CisgIH0gY2F0Y2gge30KKworICB0aHJvdyAnY3Jl
YXRlQ3Jvc3NPcmlnaW5JbWFnZSBmYWlsZWQnOworfQorCisvKioKKyAqIENvbnZlcnQgc1JHQiBj
b2xvciB0byBsaW5lYXIgY29sb3IuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3Ig
VGhlIGNvbG9yIHRvIGJlIGNvbnZlcnRlZC4KKyAqICAgICAgICBUaGUgYXJyYXkgaGFzIDQgZWxl
bWVudHMsIGZvciBleGFtcGxlIFtSLCBHLCBCLCBBXS4KKyAqICAgICAgICB3aGVyZSBlYWNoIGVs
ZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICogQHJldHVybiB7IUFycmF5LjxudW1i
ZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gYmUgY29udmVydGVkLgorICogICAgICAgIFRoZSBhcnJh
eSBoYXMgNCBlbGVtZW50cywgZm9yIGV4YW1wbGUgW1IsIEcsIEIsIEFdLgorICogICAgICAgIHdo
ZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKi8KK3ZhciBzUkdC
VG9MaW5lYXIgPSBmdW5jdGlvbihjb2xvcikgeworICAgIHJldHVybiBbc1JHQkNoYW5uZWxUb0xp
bmVhcihjb2xvclswXSksCisgICAgICAgICAgICBzUkdCQ2hhbm5lbFRvTGluZWFyKGNvbG9yWzFd
KSwKKyAgICAgICAgICAgIHNSR0JDaGFubmVsVG9MaW5lYXIoY29sb3JbMl0pLAorICAgICAgICAg
ICAgY29sb3JbM11dCit9CisKKy8qKgorICogQ29udmVydCBsaW5lYXIgY29sb3IgdG8gc1JHQiBj
b2xvci4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gYmUg
Y29udmVydGVkLgorICogICAgICAgIFRoZSBhcnJheSBoYXMgNCBlbGVtZW50cywgZm9yIGV4YW1w
bGUgW1IsIEcsIEIsIEFdLgorICogICAgICAgIHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUg
cmFuZ2UgMCB0byAyNTUuCisgKiBAcmV0dXJuIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBj
b2xvciB0byBiZSBjb252ZXJ0ZWQuCisgKiAgICAgICAgVGhlIGFycmF5IGhhcyA0IGVsZW1lbnRz
LCBmb3IgZXhhbXBsZSBbUiwgRywgQiwgQV0uCisgKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50
IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqLwordmFyIGxpbmVhclRvU1JHQiA9IGZ1bmN0
aW9uKGNvbG9yKSB7CisgICAgcmV0dXJuIFtsaW5lYXJDaGFubmVsVG9TUkdCKGNvbG9yWzBdKSwK
KyAgICAgICAgICAgIGxpbmVhckNoYW5uZWxUb1NSR0IoY29sb3JbMV0pLAorICAgICAgICAgICAg
bGluZWFyQ2hhbm5lbFRvU1JHQihjb2xvclsyXSksCisgICAgICAgICAgICBjb2xvclszXV0KK30K
KworZnVuY3Rpb24gc1JHQkNoYW5uZWxUb0xpbmVhcih2YWx1ZSkgeworICAgIHZhbHVlID0gdmFs
dWUgLyAyNTU7CisgICAgaWYgKHZhbHVlIDw9IDAuMDQwNDUpCisgICAgICAgIHZhbHVlID0gdmFs
dWUgLyAxMi45MjsKKyAgICBlbHNlCisgICAgICAgIHZhbHVlID0gTWF0aC5wb3coKHZhbHVlICsg
MC4wNTUpIC8gMS4wNTUsIDIuNCk7CisgICAgcmV0dXJuIE1hdGgudHJ1bmModmFsdWUgKiAyNTUg
KyAwLjUpOworfQorCitmdW5jdGlvbiBsaW5lYXJDaGFubmVsVG9TUkdCKHZhbHVlKSB7CisgICAg
dmFsdWUgPSB2YWx1ZSAvIDI1NTsKKyAgICBpZiAodmFsdWUgPD0gMC4wKSB7CisgICAgICAgIHZh
bHVlID0gMC4wOworICAgIH0gZWxzZSBpZiAodmFsdWUgPCAwLjAwMzEzMDgpIHsKKyAgICAgICAg
dmFsdWUgPSB2YWx1ZSAqIDEyLjkyOworICAgIH0gZWxzZSBpZiAodmFsdWUgPCAxKSB7CisgICAg
ICAgIHZhbHVlID0gTWF0aC5wb3codmFsdWUsIDAuNDE2NjYpICogMS4wNTUgLSAwLjA1NTsKKyAg
ICB9IGVsc2UgeworICAgICAgICB2YWx1ZSA9IDEuMDsKKyAgICB9CisgICAgcmV0dXJuIE1hdGgu
dHJ1bmModmFsdWUgKiAyNTUgKyAwLjUpOworfQorCitmdW5jdGlvbiBjb21wYXJlUGl4ZWxzKGNt
cCwgcmVmLCB0b2xlcmFuY2UsIGRpZmYpIHsKKyAgICBpZiAoY21wLmxlbmd0aCAhPSByZWYubGVu
Z3RoKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImludmFsaWQgcGl4ZWwgc2l6ZS4iKTsKKyAgICB9
CisKKyAgICB2YXIgY291bnQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY21wLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgIGlmIChkaWZmKSB7CisgICAgICAgICAgICBkaWZmW2kgKiA0XSA9
IDA7CisgICAgICAgICAgICBkaWZmW2kgKiA0ICsgMV0gPSAyNTU7CisgICAgICAgICAgICBkaWZm
W2kgKiA0ICsgMl0gPSAwOworICAgICAgICAgICAgZGlmZltpICogNCArIDNdID0gMjU1OworICAg
ICAgICB9CisgICAgICAgIGlmIChNYXRoLmFicyhjbXBbaSAqIDRdIC0gcmVmW2kgKiA0XSkgPiB0
b2xlcmFuY2UgfHwKKyAgICAgICAgICAgIE1hdGguYWJzKGNtcFtpICogNCArIDFdIC0gcmVmW2kg
KiA0ICsgMV0pID4gdG9sZXJhbmNlIHx8CisgICAgICAgICAgICBNYXRoLmFicyhjbXBbaSAqIDQg
KyAyXSAtIHJlZltpICogNCArIDJdKSA+IHRvbGVyYW5jZSB8fAorICAgICAgICAgICAgTWF0aC5h
YnMoY21wW2kgKiA0ICsgM10gLSByZWZbaSAqIDQgKyAzXSkgPiB0b2xlcmFuY2UpIHsKKyAgICAg
ICAgICAgIGlmIChjb3VudCA8IDEwKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGl4
ZWwgIiArIGkgKyAiOiBleHBlY3RlZCAoIiArCisgICAgICAgICAgICAgICAgW3JlZltpICogNF0s
IHJlZltpICogNCArIDFdLCByZWZbaSAqIDQgKyAyXSwgcmVmW2kgKiA0ICsgM11dICsgIiksIGdv
dCAoIiArCisgICAgICAgICAgICAgICAgW2NtcFtpICogNF0sIGNtcFtpICogNCArIDFdLCBjbXBb
aSAqIDQgKyAyXSwgY21wW2kgKiA0ICsgM11dICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBpZiAoZGlmZikgeworICAgICAgICAgICAgICAg
IGRpZmZbaSAqIDRdID0gMjU1OworICAgICAgICAgICAgICAgIGRpZmZbaSAqIDQgKyAxXSA9IDA7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9
CisKK2Z1bmN0aW9uIGRlc3Ryb3lDb250ZXh0KGdsKSB7CisgIGNvbnN0IGV4dCA9IGdsLmdldEV4
dGVuc2lvbignV0VCR0xfbG9zZV9jb250ZXh0Jyk7CisgIGlmIChleHQpIHsKKyAgICBleHQubG9z
ZUNvbnRleHQoKTsKKyAgfQorICBnbC5jYW52YXMud2lkdGggPSAxOworICBnbC5jYW52YXMuaGVp
Z2h0ID0gMTsKK30KKworZnVuY3Rpb24gZGVzdHJveUFsbENvbnRleHRzKCkgeworICBpZiAoIXdp
bmRvdy5fd3R1X2NvbnRleHRzKQorICAgIHJldHVybjsKKyAgZm9yIChjb25zdCB4IG9mIHdpbmRv
dy5fd3R1X2NvbnRleHRzKSB7CisgICAgZGVzdHJveUNvbnRleHQoeCk7CisgIH0KKyAgd2luZG93
Ll93dHVfY29udGV4dHMgPSBbXTsKK30KKworZnVuY3Rpb24gZGlzcGxheUltYWdlRGlmZihjbXAs
IHJlZiwgZGlmZiwgd2lkdGgsIGhlaWdodCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKworICAgIHZhciBjbXBJbWcgPSBjcmVhdGVJbWFnZUZyb21QaXhl
bChjbXAsIHdpZHRoLCBoZWlnaHQpOworICAgIHZhciByZWZJbWcgPSBjcmVhdGVJbWFnZUZyb21Q
aXhlbChyZWYsIHdpZHRoLCBoZWlnaHQpOworICAgIHZhciBkaWZmSW1nID0gY3JlYXRlSW1hZ2VG
cm9tUGl4ZWwoZGlmZiwgd2lkdGgsIGhlaWdodCk7CisgICAgd3R1Lmluc2VydEltYWdlKGRpdiwg
IlJlZmVyZW5jZSIsIHJlZkltZyk7CisgICAgd3R1Lmluc2VydEltYWdlKGRpdiwgIlJlc3VsdCIs
IGNtcEltZyk7CisgICAgd3R1Lmluc2VydEltYWdlKGRpdiwgIkRpZmZlcmVuY2UiLCBkaWZmSW1n
KTsKKworICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KTsKKyAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUlt
YWdlRnJvbVBpeGVsKGJ1Ziwgd2lkdGgsIGhlaWdodCkgeworICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICBjYW52YXMud2lkdGggPSB3aWR0aDsK
KyAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29u
dGV4dCgiMmQiKTsKKyAgICB2YXIgaW1nRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgd2lk
dGgsIGhlaWdodCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykK
KyAgICAgICAgaW1nRGF0YS5kYXRhW2ldID0gYnVmW2ldOworICAgIGN0eC5wdXRJbWFnZURhdGEo
aW1nRGF0YSwgMCwgMCk7CisgICAgdmFyIGltZyA9IHd0dS5tYWtlSW1hZ2VGcm9tQ2FudmFzKGNh
bnZhcyk7CisgICAgcmV0dXJuIGltZzsKK30KKworYXN5bmMgZnVuY3Rpb24gYXdhaXRUaW1lb3V0
KG1zKSB7CisgIGF3YWl0IG5ldyBQcm9taXNlKHJlcyA9PiB7CisgICAgc2V0VGltZW91dCgoKSA9
PiB7CisgICAgICByZXMoKTsKKyAgICB9LCBtcyk7CisgIH0pOworfQorCithc3luYyBmdW5jdGlv
biBhd2FpdE9yVGltZW91dChwcm9taXNlLCBvcHRfdGltZW91dF9tcykgeworICBhc3luYyBmdW5j
dGlvbiB0aHJvd09uVGltZW91dChtcykgeworICAgIGF3YWl0IGF3YWl0VGltZW91dChtcyk7Cisg
ICAgdGhyb3cgJ3RpbWVvdXQnOworICB9CisKKyAgbGV0IHRpbWVvdXRfbXMgPSBvcHRfdGltZW91
dF9tczsKKyAgaWYgKHRpbWVvdXRfbXMgPT09IHVuZGVmaW5lZCkKKyAgICB0aW1lb3V0X21zID0g
NTAwMDsKKworICBhd2FpdCBQcm9taXNlLnJhY2UoW3Byb21pc2UsIHRocm93T25UaW1lb3V0KHRp
bWVvdXRfbXMpXSk7Cit9CisKK3ZhciBBUEkgPSB7CisgIGFkZFNoYWRlclNvdXJjZTogYWRkU2hh
ZGVyU291cmNlLAorICBhZGRTaGFkZXJTb3VyY2VzOiBhZGRTaGFkZXJTb3VyY2VzLAorICBjYW5j
ZWxBbmltRnJhbWU6IGNhbmNlbEFuaW1GcmFtZSwKKyAgY3JlYXRlM0RDb250ZXh0OiBjcmVhdGUz
RENvbnRleHQsCisgIEdMRXJyb3JFeGNlcHRpb246IEdMRXJyb3JFeGNlcHRpb24sCisgIGNyZWF0
ZTNEQ29udGV4dFdpdGhXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvcjogY3JlYXRlM0RDb250ZXh0
V2l0aFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9yLAorICBjaGVja0FyZWFJbkFuZE91dDogY2hl
Y2tBcmVhSW5BbmRPdXQsCisgIGNoZWNrQ2FudmFzOiBjaGVja0NhbnZhcywKKyAgY2hlY2tDYW52
YXNSZWN0OiBjaGVja0NhbnZhc1JlY3QsCisgIGNoZWNrQ2FudmFzUmVjdENvbG9yOiBjaGVja0Nh
bnZhc1JlY3RDb2xvciwKKyAgY2hlY2tDYW52YXNSZWN0czogY2hlY2tDYW52YXNSZWN0cywKKyAg
Y2hlY2tGbG9hdEJ1ZmZlcjogY2hlY2tGbG9hdEJ1ZmZlciwKKyAgY2hlY2tUZXh0dXJlU2l6ZTog
Y2hlY2tUZXh0dXJlU2l6ZSwKKyAgY2xpcFRvUmFuZ2U6IGNsaXBUb1JhbmdlLAorICBjcmVhdGVD
b2xvcmVkVGV4dHVyZTogY3JlYXRlQ29sb3JlZFRleHR1cmUsCisgIGNyZWF0ZVByb2dyYW06IGNy
ZWF0ZVByb2dyYW0sCisgIGNsZWFyQW5kRHJhd1VuaXRRdWFkOiBjbGVhckFuZERyYXdVbml0UXVh
ZCwKKyAgY2xlYXJBbmREcmF3SW5kZXhlZFF1YWQ6IGNsZWFyQW5kRHJhd0luZGV4ZWRRdWFkLAor
ICBjb21wYXJlUGl4ZWxzOiBjb21wYXJlUGl4ZWxzLAorICBkZXN0cm95QWxsQ29udGV4dHM6IGRl
c3Ryb3lBbGxDb250ZXh0cywKKyAgZGVzdHJveUNvbnRleHQ6IGRlc3Ryb3lDb250ZXh0LAorICBk
aXNwYXRjaFByb21pc2U6IGRpc3BhdGNoUHJvbWlzZSwKKyAgZGlzcGxheUltYWdlRGlmZjogZGlz
cGxheUltYWdlRGlmZiwKKyAgZHJhd1VuaXRRdWFkOiBkcmF3VW5pdFF1YWQsCisgIGRyYXdJbmRl
eGVkUXVhZDogZHJhd0luZGV4ZWRRdWFkLAorICBkcmF3VUJ5dGVDb2xvclF1YWQ6IGRyYXdVQnl0
ZUNvbG9yUXVhZCwKKyAgZHJhd0Zsb2F0Q29sb3JRdWFkOiBkcmF3RmxvYXRDb2xvclF1YWQsCisg
IGR1bW15U2V0UHJvZ3JhbUFuZERyYXdOb3RoaW5nOiBkdW1teVNldFByb2dyYW1BbmREcmF3Tm90
aGluZywKKyAgZHVtcFNoYWRlcnNJbmZvOiBkdW1wU2hhZGVyc0luZm8sCisgIGVuZHNXaXRoOiBl
bmRzV2l0aCwKKyAgZmFpbElmR0xFcnJvcjogZmFpbElmR0xFcnJvciwKKyAgZmlsbFRleHR1cmU6
IGZpbGxUZXh0dXJlLAorICBmcmFtZWJ1ZmZlclN0YXR1c1Nob3VsZEJlOiBmcmFtZWJ1ZmZlclN0
YXR1c1Nob3VsZEJlLAorICBnZXRCeXRlc1BlckNvbXBvbmVudDogZ2V0Qnl0ZXNQZXJDb21wb25l
bnQsCisgIGdldERlZmF1bHQzRENvbnRleHRWZXJzaW9uOiBnZXREZWZhdWx0M0RDb250ZXh0VmVy
c2lvbiwKKyAgZ2V0RXh0ZW5zaW9uUHJlZml4ZWROYW1lczogZ2V0RXh0ZW5zaW9uUHJlZml4ZWRO
YW1lcywKKyAgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXM6IGdldEV4dGVuc2lvbldpdGhL
bm93blByZWZpeGVzLAorICBnZXRGaWxlTGlzdEFzeW5jOiBnZXRGaWxlTGlzdEFzeW5jLAorICBn
ZXRMYXN0RXJyb3I6IGdldExhc3RFcnJvciwKKyAgZ2V0UHJlZml4ZWRQcm9wZXJ0eTogZ2V0UHJl
Zml4ZWRQcm9wZXJ0eSwKKyAgZ2V0U2NyaXB0OiBnZXRTY3JpcHQsCisgIGdldFN1cHBvcnRlZEV4
dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25vd25Q
cmVmaXhlcywKKyAgZ2V0VHlwZWRBcnJheUVsZW1lbnRzUGVyUGl4ZWw6IGdldFR5cGVkQXJyYXlF
bGVtZW50c1BlclBpeGVsLAorICBnZXRVcmxBcmd1bWVudHM6IGdldFVybEFyZ3VtZW50cywKKyAg
Z2V0VXJsT3B0aW9uczogZ2V0VXJsT3B0aW9ucywKKyAgZ2V0QXR0cmliTWFwOiBnZXRBdHRyaWJN
YXAsCisgIGdldFVuaWZvcm1NYXA6IGdldFVuaWZvcm1NYXAsCisgIGdsRW51bVRvU3RyaW5nOiBn
bEVudW1Ub1N0cmluZywKKyAgZ2xFcnJvckFzc2VydDogZ2xFcnJvckFzc2VydCwKKyAgZ2xFcnJv
clNob3VsZEJlOiBnbEVycm9yU2hvdWxkQmUsCisgIGdsVHlwZVRvVHlwZWRBcnJheVR5cGU6IGds
VHlwZVRvVHlwZWRBcnJheVR5cGUsCisgIGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZTogaGFz
QXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlLAorICBpbnNlcnRJbWFnZTogaW5zZXJ0SW1hZ2UsCisg
IGlzV2ViR0wyOiBpc1dlYkdMMiwKKyAgbGlua1Byb2dyYW06IGxpbmtQcm9ncmFtLAorICBsb2Fk
Q3Jvc3NPcmlnaW5JbWFnZTogbG9hZENyb3NzT3JpZ2luSW1hZ2UsCisgIGxvYWRJbWFnZUFzeW5j
OiBsb2FkSW1hZ2VBc3luYywKKyAgbG9hZEltYWdlc0FzeW5jOiBsb2FkSW1hZ2VzQXN5bmMsCisg
IGxvYWRQcm9ncmFtOiBsb2FkUHJvZ3JhbSwKKyAgbG9hZFByb2dyYW1Gcm9tRmlsZTogbG9hZFBy
b2dyYW1Gcm9tRmlsZSwKKyAgbG9hZFByb2dyYW1Gcm9tU2NyaXB0OiBsb2FkUHJvZ3JhbUZyb21T
Y3JpcHQsCisgIGxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yOiBsb2FkUHJvZ3JhbUZy
b21TY3JpcHRFeHBlY3RFcnJvciwKKyAgbG9hZFNoYWRlcjogbG9hZFNoYWRlciwKKyAgbG9hZFNo
YWRlckZyb21GaWxlOiBsb2FkU2hhZGVyRnJvbUZpbGUsCisgIGxvYWRTaGFkZXJGcm9tU2NyaXB0
OiBsb2FkU2hhZGVyRnJvbVNjcmlwdCwKKyAgbG9hZFN0YW5kYXJkUHJvZ3JhbTogbG9hZFN0YW5k
YXJkUHJvZ3JhbSwKKyAgbG9hZFN0YW5kYXJkUHJvZ3JhbUFzeW5jOiBsb2FkU3RhbmRhcmRQcm9n
cmFtQXN5bmMsCisgIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcjogbG9hZFN0YW5kYXJkVmVydGV4
U2hhZGVyLAorICBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXJBc3luYzogbG9hZFN0YW5kYXJkVmVy
dGV4U2hhZGVyQXN5bmMsCisgIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyOiBsb2FkU3RhbmRh
cmRGcmFnbWVudFNoYWRlciwKKyAgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXJBc3luYzogbG9h
ZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXJBc3luYywKKyAgbG9hZFVuaWZvcm1CbG9ja1Byb2dyYW06
IGxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtLAorICBsb2FkVW5pZm9ybUJsb2NrVmVydGV4U2hhZGVy
OiBsb2FkVW5pZm9ybUJsb2NrVmVydGV4U2hhZGVyLAorICBsb2FkVW5pZm9ybUJsb2NrRnJhZ21l
bnRTaGFkZXI6IGxvYWRVbmlmb3JtQmxvY2tGcmFnbWVudFNoYWRlciwKKyAgbG9hZFRleHRGaWxl
QXN5bmM6IGxvYWRUZXh0RmlsZUFzeW5jLAorICBsb2FkVGV4dHVyZTogbG9hZFRleHR1cmUsCisg
IGxvZzogbG9nLAorICBsb2dnaW5nT2ZmOiBsb2dnaW5nT2ZmLAorICBtYWtlQ2hlY2tSZWN0OiBt
YWtlQ2hlY2tSZWN0LAorICBtYWtlSW1hZ2U6IG1ha2VJbWFnZSwKKyAgbWFrZUltYWdlRnJvbUNh
bnZhczogbWFrZUltYWdlRnJvbUNhbnZhcywKKyAgbWFrZVZpZGVvOiBtYWtlVmlkZW8sCisgIGVy
cm9yOiBlcnJvciwKKyAgcnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdDogcnVuRXh0ZW5zaW9uU3Vw
cG9ydGVkVGVzdCwKKyAgc2hhbGxvd0NvcHlPYmplY3Q6IHNoYWxsb3dDb3B5T2JqZWN0LAorICBz
ZXREZWZhdWx0M0RDb250ZXh0VmVyc2lvbjogc2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24sCisg
IHNldHVwQ29sb3JRdWFkOiBzZXR1cENvbG9yUXVhZCwKKyAgc2V0dXBQcm9ncmFtOiBzZXR1cFBy
b2dyYW0sCisgIHNldHVwVHJhbnNmb3JtRmVlZGJhY2tQcm9ncmFtOiBzZXR1cFRyYW5zZm9ybUZl
ZWRiYWNrUHJvZ3JhbSwKKyAgc2V0dXBRdWFkOiBzZXR1cFF1YWQsCisgIHNldHVwUXVhZFdpdGhU
ZXhDb29yZHM6IHNldHVwUXVhZFdpdGhUZXhDb29yZHMsCisgIHNldHVwSW5kZXhlZFF1YWQ6IHNl
dHVwSW5kZXhlZFF1YWQsCisgIHNldHVwSW5kZXhlZFF1YWRXaXRoT3B0aW9uczogc2V0dXBJbmRl
eGVkUXVhZFdpdGhPcHRpb25zLAorICBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbTogc2V0dXBTaW1w
bGVDb2xvclByb2dyYW0sCisgIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW06IHNldHVwU2ltcGxl
VGV4dHVyZVByb2dyYW0sCisgIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW1FU1NMMzAwOiBzZXR1
cFNpbXBsZVRleHR1cmVQcm9ncmFtRVNTTDMwMCwKKyAgc2V0dXBTaW1wbGVDdWJlTWFwVGV4dHVy
ZVByb2dyYW06IHNldHVwU2ltcGxlQ3ViZU1hcFRleHR1cmVQcm9ncmFtLAorICBzZXR1cFNpbXBs
ZVZlcnRleENvbG9yUHJvZ3JhbTogc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclByb2dyYW0sCisgIHNl
dHVwTm9UZXhDb29yZFRleHR1cmVQcm9ncmFtOiBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3Jh
bSwKKyAgc2V0dXBUZXh0dXJlZFF1YWQ6IHNldHVwVGV4dHVyZWRRdWFkLAorICBzZXR1cFRleHR1
cmVkUXVhZFdpdGhUZXhDb29yZHM6IHNldHVwVGV4dHVyZWRRdWFkV2l0aFRleENvb3JkcywKKyAg
c2V0dXBUZXh0dXJlZFF1YWRXaXRoQ3ViZU1hcDogc2V0dXBUZXh0dXJlZFF1YWRXaXRoQ3ViZU1h
cCwKKyAgc2V0dXBVbml0UXVhZDogc2V0dXBVbml0UXVhZCwKKyAgc2V0RmxvYXREcmF3Q29sb3I6
IHNldEZsb2F0RHJhd0NvbG9yLAorICBzZXRVQnl0ZURyYXdDb2xvcjogc2V0VUJ5dGVEcmF3Q29s
b3IsCisgIHN0YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRlbzogc3RhcnRQbGF5aW5nQW5kV2FpdEZv
clZpZGVvLAorICBzdGFydHNXaXRoOiBzdGFydHNXaXRoLAorICBzaG91bGRHZW5lcmF0ZUdMRXJy
b3I6IHNob3VsZEdlbmVyYXRlR0xFcnJvciwKKyAgc2hvdWxkVGhyb3c6IHNob3VsZFRocm93LAor
ICByZWFkRmlsZTogcmVhZEZpbGUsCisgIHJlYWRGaWxlTGlzdDogcmVhZEZpbGVMaXN0LAorICBy
ZXBsYWNlUGFyYW1zOiByZXBsYWNlUGFyYW1zLAorICByZXF1ZXN0QW5pbUZyYW1lOiByZXF1ZXN0
QW5pbUZyYW1lLAorICBydW5TdGVwczogcnVuU3RlcHMsCisgIHdhaXRGb3JDb21wb3NpdGU6IHdh
aXRGb3JDb21wb3NpdGUsCisKKyAgLy8gZnVsbHNjcmVlbiBhcGkKKyAgc2V0dXBGdWxsc2NyZWVu
OiBzZXR1cEZ1bGxzY3JlZW4sCisKKyAgLy8gc1JHQiBjb252ZXJ0ZXIgYXBpCisgIHNSR0JUb0xp
bmVhcjogc1JHQlRvTGluZWFyLAorICBsaW5lYXJUb1NSR0I6IGxpbmVhclRvU1JHQiwKKworICBn
ZXRIb3N0OiBnZXRIb3N0LAorICBnZXRCYXNlRG9tYWluOiBnZXRCYXNlRG9tYWluLAorICBydW5u
aW5nT25Mb2NhbGhvc3Q6IHJ1bm5pbmdPbkxvY2FsaG9zdCwKKyAgZ2V0TG9jYWxDcm9zc09yaWdp
bjogZ2V0TG9jYWxDcm9zc09yaWdpbiwKKyAgZ2V0UmVsYXRpdmVQYXRoOiBnZXRSZWxhdGl2ZVBh
dGgsCisgIGF3YWl0T3JUaW1lb3V0OiBhd2FpdE9yVGltZW91dCwKKyAgYXdhaXRUaW1lb3V0OiBh
d2FpdFRpbWVvdXQsCisKKyAgbm9uZTogZmFsc2UKK307CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0
aWVzKEFQSSwgeworICBub1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlcjogeyB2YWx1ZTogbm9U
ZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVU
ZXh0dXJlVmVydGV4U2hhZGVyOiB7IHZhbHVlOiBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyLCB3
cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlckVTU0wzMDA6IHsg
dmFsdWU6IHNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXJFU1NMMzAwLCB3cml0YWJsZTogZmFsc2Ug
fSwKKyAgc2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlQ29sb3JGcmFn
bWVudFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFk
ZXJFU1NMMzAwOiB7IHZhbHVlOiBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyRVNTTDMwMCwgd3Jp
dGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZVZlcnRleFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlVmVy
dGV4U2hhZGVyLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVmVydGV4U2hhZGVyRVNTTDMw
MDogeyB2YWx1ZTogc2ltcGxlVmVydGV4U2hhZGVyRVNTTDMwMCwgd3JpdGFibGU6IGZhbHNlIH0s
CisgIHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlVGV4dHVyZUZy
YWdtZW50U2hhZGVyLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVGV4dHVyZUZyYWdtZW50
U2hhZGVyRVNTTDMwMDogeyB2YWx1ZTogc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyRVNTTDMw
MCwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZUhpZ2hQcmVjaXNpb25UZXh0dXJlRnJhZ21l
bnRTaGFkZXI6IHsgdmFsdWU6IHNpbXBsZUhpZ2hQcmVjaXNpb25UZXh0dXJlRnJhZ21lbnRTaGFk
ZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVDdWJlTWFwVGV4dHVyZUZyYWdtZW50U2hh
ZGVyOiB7IHZhbHVlOiBzaW1wbGVDdWJlTWFwVGV4dHVyZUZyYWdtZW50U2hhZGVyLCB3cml0YWJs
ZTogZmFsc2UgfSwKKyAgc2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTog
c2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNp
bXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyOiB7IHZhbHVlOiBzaW1wbGVWZXJ0ZXhDb2xvclZl
cnRleFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0KK30pOworCityZXR1cm4gQVBJOworCit9KCkp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjY4MzliNjIxNDc3M2IwYTAwYmM4YTJiM2I2MmFj
ZjY0ZGMxZGVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MK
QEAgLTAsMCArMSwyMCBAQAorLnBhc3MgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGNv
bG9yOiBncmVlbjsKK30KKy5mYWlsIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBjb2xv
cjogcmVkOworfQorLndhcm4geworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGNvbG9yOiB5
ZWxsb3c7CisgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggI2ZmMDAwMAorfQorI2NvbnNvbGUgewor
ICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwor
fQorYm9keSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lM2I3MGJlZjNmMmM3ODczNmM3MmUyNjNiNjNhY2VhOGQ5YTk0NjdhCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCA1ODI3CnpjbWEpZmNUZntmd3t7e09maz42IUxRejVLT31aZXhnRVJ3
NT9fSDRJZG9MbW9nd1Ayc2JWNWdJNWZCan1iZFV9Swp6Z0xMVSFlKCF6ZntsMEkkYF5TQ3VvU0Jf
SGQhRG5pdiU5bTs/YWJ7bTtETVR3c3VCUXI0Kjs7ZllrPUZ8MENHaWQKekQ8P2t5NVAlQiswSHA0
UV81ZnReKV4zKEkwUER8cEJmIzV2S3FMU2s3Wig9fjdhdER+cDl1Zlg/LVN6VjZXJTh3CnpDY2FO
aE8hOSFfVXdBLTUyNl9NQEJjWV9FcU4xY15XTUUpbVdjZCQoMU94PTZCJjQodDk/O1RMbFQqfEdD
LUFAUgp6KzxwZC02OU95JTNwaFk+eiYmeXg0bXQzKTl7e351QTEpNT9aa2hpOUUqP0dzQEUjNSE1
RDM3el5aeUk/YUJ6V20KejQqPlVvSVFNWElhMHJOVGFTODZDY1hJKmNjUyZwbDZhQDBSbG9sVEJW
UUdjK2YtazdYXig7TnA4XkEpO2drTShsCnpBTVBJcigtaWU4V0U2OTctUFFqR3xGSGtOXmNARXxF
fU1XWmcqLWRlOWZQMUFfO3dDSmF1Pld1anpiUVIxKU9MQwp6Ym5wUD9wI3dMTElKcVBBZUVNfi1u
MFp8d0NVeSllYzlVV3M3ZTJGfk16IWt5PllUdWVZRi1LVVVANz9FQDNSeW0KekdZNyZ8WE1BQ2l1
ZzF8S29QelR5cEhYUWAzIUM4bUduTVdtZjlSQ0MrUntBM2ByaDdfbS1xM2MtQEI5e0o9M3FYCnpD
dHRVMmNKP35ucHlma3MpWCRWWlVzRGA8QyR3SntLQWstMT5ZTjBANE1MO3tifVk5ODI1Ul9AMWQ1
enw0eyl7LQp6IVM/NmU3YVBsLTFBbnc2UngtbTQmWn5rPVlqKTFLVENQJHErYExYKEVEUmlTblpf
YWBWIWw1Q25aRiNMTiNKT08Kej1JM1JIKWVDfk5uUHFZQTF2ezF3NnJuaT1mKj9HUjtVfU1NK3dY
LXdgaFJUemw/VXdPNkpuc0M2amU7MXZXbH1eCno9QmEkelAxd2ZLI3dyPW5MRj5EeWdHc3dVTkRU
azdaQn0/YTFSWDdEPU5XekR5VzVeQzBERjg5QjAhcThVODVVbQp6WF9ibDRjPkI+KFJnQnstITtu
TE1DRCFpeVV9eSQhZUUhSjZjX3B7TnZMLVg0NXZmSGMpdSNNO0ZmdilUXmgrPV8KenJDa3kybmNC
YEk+OWMrZDswN3A0WktlZzZie1U+cD9JIyNFQ3dpYn1DOHM8Tm5nbVhLcEVTWk05REFsJkBUeWQ9
Cno+T0ZudGVPcXE8KSVCLX1wY19aJjk+UENzdypidSlyQHR8YXFpZ0d5R31rKkB5U0QmPiltd207
cHdDZU5ZSntCKgp6bCVjZUg7O255RE9DWmJlVjZeNF5jUUhFdDshbDQ0cj9PWEpqdkVjI0QkPVRx
ZztPRn1ie21LSyF+SlpBbFBGJFQKelF4LUwheTxqO31lP0IoPCg1Njx5IzV0I0twR2h1N0hgckF+
Nk03S3ooNVBZQnpEWmJtd3NgbEU/MHg9fEtucXZVCnpxMkhBMTxaNG9DdiVudVhHYkdSdkZXT0N4
M2l5QlFWU3haelBHSFhyVTJibjJ0dlZ6OE8qUkkhIzhxeWxfMHJJXgp6TmJmUz95YCVyK0AxdFF1
M2ZJJk1SXm5wfCh7UVF0bmEhYDRxb315NT1aX1NFZ0RjMm5gdnl2K1hnRjgzVFJsWUsKem8jM2pj
YCN1dmItSjRTLU96TE5rODI1RmFaLTkzeT9mbEs/Y1BCJFFGNVBfZXNxaXdgTDU2YUNKSnVvOC1C
dmMkCnpqYWBqcXteTWI5Rl5pb08wemRwQ3N4cWdlVDNfKztIaUtIe0xvfnd8YEQ7Tjg5dEFZWUcw
QzViYm9aenZHZHc4Qgp6PGFEZ1pVaWolKWV+QU99bGFldzFCQjBUM3JodWh+ekR6PzM0QEQpKT5B
SnQ/RmZ6cTVGSEdKU040P0IhUSlAQWkKemIjVCR3eEE4JjxWam09X3dAOC0xJSRPZWNvVT0pWk0r
c20mRSpkfXcpYyYoMGVMYEpJYEllfT47PkVWKnVeNUhMCnopRHx2Q0F7KitmY1M5bypQaypvPENi
OXlfZHQ2KWJYa28yQyFCKSZqPygraChxTT9EcWJCTiF4b092anBvSzxEJAp6PXMma3RoYUwqZEBP
RzY3eTA3VispdV5fPm1Vc3FqZkNtVXh4Iyt5NHRhZCMyJiRyR28oSzEmUyEjUHE7dHlMM0gKemJA
JWhpYiNfY3c3JWNmKCRrXno0ZFFrWDxpKWBpUnlQVTtxNXRzO1VFJW1fU19ld0E8eXtoP1QhJG1w
Z2NjU2pPCnpLVXx7MVZQdHZ0ZVR+Zl5tazRvYUBlJWpMdik2KVZNYXkjP3k5eF9CbDxfeThjNiY3
KCNRRCM4Z20qa2RVWkJ9RQp6QndwRTZrOGEtITlvOzY7cChgSzspRDtOMHhoVD4lNncrOUQ9OzRC
Y0g1PVg4Umh3VGE0Smt+Z3UmNml5XitUZXMKekQoOSopdyMoK05zR305TTFJZURtXjRJayNtV09A
Rnl8ISNaPT58M21CazlpPW8wY3h0dlIrTnJzVENwKFFXO1hFCnpFPGhYYkY8bkc8dChXdmleVVB8
OElSdjkkRDx3aW5fO2RFVWcxZypCNzEoJHMqQn1FemRSZ2w9ZlpXJUFXXmg4Qwp6VFY3Jio2fCFP
WT5QLWltT2E3LXNOd0llRSshVFhKY1AjPGI2P3I1V2ZfemcrM2o+a0dXNn1PWEFMalJScTtee0kK
ekUxbjdjYkRacjVyK1l3ZDZOLVltbDdIUVlEdEdwUHZONGZxXmsqempqdmJAUEh7TThualR3MXJ1
RVVZOFo+M1B8CnpvVnd4SW8tZFBAaF43MUJ5YGszbWxlK29xWH11YDVTPnM4dkk9cEkwXklgQjt0
V1JFMjFsQHliXjcmOSpUWj5JcAp6UE9ZZSheWUkjMDhYRyNtNEIxUiNNTzlaTkNMRjg8ZzRRKXgo
Nng1UCQqYUltdSQwRUwoNEpLUip4NWBYNlVSRGQKekJJSD00TXs9LT51PSZ2fnBnaDtvZG5FajVq
djw9Vk8kcWZxYXpCJiReQzFiSlRZQmVUTSZeOGZ0Qm5FMFpIU1RKCnp5XnxrSTNPNXBnJE4yc09a
RjhZeE0mfi0jRDRtVTlWZl5RPDlfTE87JWJQbSR0dGFxekwxM19xX0JGTE0+c2hYUQp6TVgkYGEj
STJuTUtPPkpffEw8JGw+OWklP0peQEh8Qnl+TGJEZkhKPGVeUihJS2B0JmZnUyo0N3pUTC1NYTNx
NTwKemhpdD9yLV9NIz9kI0NEMjNiZ0pQVkMhYlU7bX5udUlzWFJPT2x5eyRBTCpZKVZaR2g5R1Z2
fFY2eUMjXkF2ITx7CnpBcTxmMU9lVnUqc0U1cnFVQ24lMyR7e0dfZHtHJE5PMCMzUWFVO1U/cTQ5
KEV0TF99VHp1fEs4Sl9QMzRQWSV2Vwp6bTVteCsyVF8raGZeR29+bFFyaXZyYEkxNVNmNXpUQHQ2
fCM0RC0lY1hSKjZ1U2lzPG9maWg5KjxjTGY4OXlWT3wKelFrdW9ETjRER0w5K3ZJQzRfTWtuQDgl
Mm5TdzFHKyMlKkF4IXMmNzFIeyRsKT5kNV43QGVQJVFzIzZ9dl9hWFRyCnplb1VHKlBHcGJzPlRv
eT4keUp5MkhOJVBqY0Zlc0srPWoodFpySih0bCFaSzwlJldIV3JKTCYwZHVBbkwjSSYmcAp6Xnxo
fmgjX0l3YzttZEd9aFcrfE9ZRUM+SiFWVXBiT1dKXnhwNXx7ViRKZ1lfRUJyQnFxSj5oNF5oUyhs
dilTfEMKeihMO3xFeFNiNEQ+Qn47YGw7LWxkTWwyVV9gfkBqRkRCIVhXYTFZRj4/VyYhNXl6PD1n
NlV0cnhiYTkpYHQwTStpCnoqcDVkIW9yNWBUVDVWKURTQndgIW9FZmdPNU5odXNkIyo9fCYmI3cj
N24xYUc9KVNxN2FVe197eWgwUUNhNWFoMAp6VSM8X3wwIWw2ZkJIQjY8a2pCPkVBKF5YaFozV2tj
M3EwTj0jS1hMYF8hR3c9ZDh4aU9YJSZDQVBoQF58QlRGVVgKek9+NXAodThGUk1xUjNndHFSTnt5
O24jSyhvRThNMCRTR3YwTFcjWmxSSUJXbFp8RFhhdyRmQXo2YEJxZnAxRT1uCnohald8Tjx0U212
O15NJVpTNk57dWMhQF88UktobCRzRUVaTEZvaWlhTVdfaVNwbG48ezVzK2khcHJNOFJvbDZFdgp6
OWBjXjNvQyhmTz1pIW5kWj41SSo5TWBxcjFVJDMoSzxlUk5iUSVrKnNBdiZfVlApUV8+aldibzc9
aUc/Jjw/R2wKenZHMlghUm5EJWtRfVlJZHVjKzllZj8hOGczdjNkVk4ldylHIyokRH1YNkh3PCY4
I3ZlTVMpQ29kdTl4UUlaSCRGCnp0JX1mQEszWj5PMUYyQGp1P0QqKzhIa0tYbEUke3dOJk5OdWYm
Rkc0O2VBNHQ1WkVraks3NHc/bGw9MnckdXdAQwp6SDA4MyFaMDx+PWRfdE5UX0JObzN0IzBYYEFC
SE0/SEpBczdvOVp5MUpOXzFjWGVrMTdlJVhMOyolPXghMkBZWnoKejtlSih4bjcyV0xDJT17Undk
dkpLKDZ6JWNXWEBTcV81YGxLWXwzKUZieFdsTTkzTyFWcjJycW5RJDZCVkNNfDEmCnpuJFEte2Fa
RD0qaCoqNDtJS21odGhlNkF8JUtOKEBlaTBtK0p4fkspRzZjKkc3cTllbVJUKHlIYVhvR0cydUcl
ewp6YUJFX1glR1FlZiRqd2xnYGUofUQoUjBrVXZtO1ppWTJ2P3E7LWFffkNoVituM0NZaWNIZHAm
RU5BMnA3VT5oZkwKelc2cSRUS2wjaCV5b05BdmRsTkg0biE0dUxeVTZgWHpmV2ZTOz8jY0VENm9s
WXdaJGopM1NfYXZuU3EpOS01KjZ0CnpgJFh5Vkwld1BeeyM5Jk9xQSR4U3clK0trPCpEQUt2JDNe
M09YMCY9UTxvTnN7eXJeOXV8Z3JPK3kqYE1BKF9kKgp6NCRWKSMyJUJVMHp+U3xwJSRyY0R4ITFi
PDU5Y3U1Pkg2SnNgREkkNVZMNkxWbUs/a2BAQ2Y0PyY2WUNjPjArazYKenI9O3RNUF89djhSMUhi
JGlRfFp5UjdvMz47azk7eGooQS0lSlZ3RCt1NnRNSW5QO14lP19HaVYxMmNVWmV2aEBCCnpEVFh7
Ryo2NXpaPjtXeE9zRjsrJCh1VEkzemtEM3hCVEQxTWUjIUd4eE1udllMalo/RzBBQ1VyLWxKb0U7
cnBzWAp6V004KyttTlIwKWtNX1h2eGsyezhFRn5BMUxDVVc1IX1HWnZDKnFhJFc5YVl+eV4pen5B
Jl44UD1nMF96UiRYMDQKelVEbHwjQVlUazg/K3dISl40TD4qRF8oP2EmdEpvNnQ0cnxYM25fN2JI
JmFCMkszQnUjYTxnUjRWK0woNCsjeyE3CnppdzJHZVAwNjRLITlUa0dNd2VzN3VVZ09lJU89KTBW
TTc9eWFEbTV1YiN6fkZCQFI9dGEhZWt1OENYRkBrbCVyOQp6O2g0WHlYIWNGKERSRldgZ01zQDQq
KWwoMik7O3pDUFBTYnpsQX18e3pHMyFXNnMpXk5oJVBsdDc9SX09Zldtb0wKejBTc3k/Vk9US28k
fHV8VV5zI0ptdWYldkpGMFJzS2otTmBTMXZoTXlBanZXeGQ4NF5NY2RAQXUtTHswU0RxOXRmCno5
cCN2Nj1QQHo3SVR8Y3pldl97NHohelNtVGwqZzVmdlZXKiRDT3J3dHRMJVllNXolQSp2b24wPSVl
fTQ7ejFjdwp6PzR4RH10VGMobykpS3JnRDNzJiZgQFN3M280MF5Abns9QWhtTSFUSWBuLXdyajda
dmRrST84PE5jQHpPU3p4OGwKeiZ5dTZgX0Y4dmlFMGs5VXNAJjF2PS03cGhLSlolK0hRVmNsOUVW
S2MhPUxSUkI7MztWbmBlOEtNRGhEYSV9VWR2CnpvekloTmdnOyVGempyT3UzR0J1aUFUSE90Q1Q7
O15FTVRRIWJXPmdyT2FAamxDYC1hTHwwNlhyb3kqRHhTTTB1Rgp6KytAazJaTFApaGlHOWRZKlUj
QihkUHU3TWdCdT4+cCpMRUR4KGNiVWArK0JEaz9ITmprI2NgJUZZU2BsMGBzaGYKemgobTsobiNt
IVRQdE83OGorLVd0KUNZSU8mbS1Rbm5UUkx7M0soYGRxSntyVEtJd1BSQSVGRiRZPCpHZk1TTXRX
CnpNVWlHUmVNZTx1Uml2Sj9fQXtkemBtc2pReG93ajxVZEYpZHczTjhpSmE9bzAtc0YtcStVY0Uy
IzxwUlI3NGM9bgp6YDw1VHk9Uz5kRjNeWVlRVlNUK2BxPDZ7YXo1WlFTZ05Cc1VqZm9DM0dWNSQx
QzJRZHI8RW9VaSUmJWJ0ejNHRFcKeklLIUoqTlR4dlFZbD9WcypaalRSJVdPblNzUzx9RUtTangj
NSMzZHJqTCFqOEB2Vkw3QXdMYlBOaHRqSi1KVVl3Cnplb0cmdCtDbWZoUUJ3S19qSD1DWWxXV2t8
SEFwdFhTNX5ufW9Tc31OMkA5Mz0mRFVyeGdwOWhGUzBjNGZUITtISAp6V1Q/VVkmezg4Vnstak9I
OERfVXp3ZlVoI2E5VHBTTH5aNGREKmBXOVV3ZSs0V3o5cStENyomTDNFbEktUEkjfm4Kem47YjBo
TSo5TUJyNHE7bXFHZk9ARTgzZj5ROHRzV0FGSm9iRigqey1yYU94SiR0RlJLcHVYd2NlJVZiJlJE
KU5GCnpwZD0/JnFyaFlZZkt8SSluSzYyR3QkLUw8P0NGQSliKzxwS0ghTEt+ZGRUTTdIPXc7fUJa
S1B+enZKdHQyPVNXVAp6I0c7VmlYMU51MmRJIXotM14hMjt6dWJ1PFZZemA+bTk8dUAkez5xNypQ
RHokeXRpKEwwTTBAX1R6JlRGYjFDJnAKenZiUiVBTEpBSGxCY2I5fUsyaSNBWDVeYGZzeXxMITg8
QTRGKVgmJUMhVWV9Ny13T1ZVPy1eaSt2MnJ+MXw2K0hYCnpWcHB0USt4cFFicmx8PWwlbWQjfGVa
OUtCR1EzYihZbyorOSNAZSRXJCMtMyFOWk9oTUFjelMrS2RPME4pa3JxQwp6b1p8RCMhYWdfRyZZ
QFUkUCZMUUhZVE5FanRjZjIhd01OTk5nZCohRmVkYGhCLSVEfCZCal9YJm9pfHc4PXs0NHkKenZe
OEIlN3NeRC1kfGx+QGNiKDI4OXdiaXlqQU1DPDc9fWYmPUswKkgjNVVoRnNoKWhKKXQ9QFVOPERy
MSRPNCFaCnpiSDs0YWVHUy1US1Bub1pKMjRnKzVadS1RJTE/SUwqRzR+NndLV19XN2lAeEkmVytR
b2ArYGVWaTthTXRIPmBvWAp6WH5BOExQVGJPc1A1ZSNOI3xOKmg2ODRub3FqZFo4NkBLWnVAb35S
aSlAfTFhQih3QGQoa0ZBIW5MUnYpK1cmbCEKendLYWhAKHttfmtqSkg2eCs7QnozVEU8bz87ZTd4
X3kkRXxONlZMSHxnV1BPJTtWQjRnbDtEY2Rjfitaa3FySDxACnplaGE4Z04obzhZJG9oUlV8R1FT
bTVibDM/IyQpJl9lUH1Sdit+dWo+P0JnaUJQcm5rP1dKMilfJVo0dExLV2BQRQp6Y0JvOW0kRjMh
QD4kfDVfIWRFcntZcFNCRTk1S0EzRn4hPkhqbnphOTY+VD1KYUE2X08xN3lQMENDKHBpeHp4eXQK
ejByP052UkIxJW09KkVwfXU0OyNLRUp9V0gxWUI0QTswdCpuY35jYXU3TkR8SzJ8NnY4eTlLPEVv
eldoR29UbTBaCnp3Pig4RDRkJlM8YjEwaUB6emI0NzVOQmxBOFIjazJ2Uzx5MllhNUROKGMhLTlU
I0B0OVR7Zk1UcyQ/fmlxcnh4SQp6QSUhazJPXjgkenhxQ0RFOTxvQk85b1FGR3pgdGUyMlRNd1JJ
MChpc0dGMj1ESTJzTkFoO1YjdkhnclhxSjQkfk8KemFwKjRIQkdTOzZFRm9aMHdWYmYjV2M7JX1U
NCgwYGFqJU12VVVtNmdpRndtTmBKdDVxO3ojTWE1KGBuUTQ4KkJLCnpMbT98T2cqQmFzVVFGTkpV
Pi14WWFfUykoN2FYQChnOUBkUWBiZHxTYV5qM1M0SXt1KkE1UUJEX2NAdnE8VDxfbgp6P1huaWR7
SCZ3PU4qNkx7bDlRP0tnX004dXF7ZUNKLUgyaG8lXlhKdWN9cSlIWS1fN1RKK0UzSmQtNjQjIUZ9
SyQKelQ1JmhzN09vfSFNTzMzeGN7S3hrbk40M2FhSz1AVisrQjFZemV6aFJGeGt6R0RGOzZxS2xJ
NEo0ayFHMSVoTVcrCnp1Vl5CZnBuIVVxRH0lPl4wOE1KRHpBel5YN3pqK3Z4JkFpU1N9QE4mQn5f
ZyVLRihnQHszUzU7SS10angpJnNlKwp6T3phMCVAcjhMTno9e3kyTHE1N3MlbEJpbzRCSG1XNGp3
NShVQVI/ISkoYTRkNWtuOTZLdSNXfjI5VG41LWJmcVMKek9CJHM/WXxGRlU3KUI/O2E2RC1uaUFI
Mz8qUT9vLW1QWFlVJDN6MnZVZjtKV0k/QSpkYEMmOF9TQFJFP2c4VG83CnpWWjVrK1g8fEhwWTNT
eUROeTUoXlQwZVN4MSpETnYlaGEtWV4oVFc5KUolNHVBbTJ7PVlgMiU1ekVjcXl2MDBgJAp6YUBL
Nkx2QE04MWF5cig3X0ZWM29mfTc8XnE+UkI+Tkx4M01vYUNGP0x9QCshJEYlMUslZUltSkBEU1Yw
K04xK3AKejZRQHo0cTZLPVpeamh3K3pVPFVAdXh4YV4+USQhMjhPQGlSRERLJXpRIzkrM21kOXc3
P2JRMzg3fSpXUS1kaksjCnojSShpUFkyVWoyR0NNd0ExPWItWm5QREoqM3hLUkc5ZWRafVQmUyRi
VT8tYFZ5V35JcUR1P0xBPlpoVkpJPiVLJgp6QFEqVWBOIX1OUUlpSmBrUGxEdVkhWGgjPUwlUkRX
UW5yR2ozQy0ra0lWIz4wcl9jVU8mSWI3emtAMG09LVFTVkwKekI3MD5WaShXSTZAPXFMVXBDV0F6
MVdHaD10YWQqIXZ9cFk1JnN3K0xJNWFkZGNebjhXSG4xQUUja0BBc29TMHJ0Cno2dU5tJkFIZ0xS
Z3xsOEQrV2haTHtNVX5EY09PXi0yYjIhUF9IPjZUcSFsfk52VyFObDl3RkNAWGNoM3c9WXUtbgp6
X3FZYT08cmMwTGpqb3NOT1U0SD8mZStlcEJJZz4/dEBATFFaVU5kQXZoVSY+RlYlKyNHXjl1PVp2
ayN8X0JYbVkKeihpNV8wT0M4czxFTXVVMVJ4Xlp3Kzs9TUUqRGNebClePTk3RUVOQ1hsO0doWDtq
dXFDVmAjXjxacEhqZ29lcVhOCnpmNztiRUkwe3ZoY01JQEtRb2RzcChOSERKbklva0hveDJZKHdI
KyV9MjhaYy1JWVcmKGpCfmtfIX40cmttX3lQRgp6S007SGhsQjhxPVFkemhSX3FPQkY2b34kIzFw
akFhbCRhKUJJM3ZjO0k0REcpe0lHWFErITE5PUFfQnwyNkwqdz0KUEdLbSNfe3tRbERaZkV9cyZg
dE9rCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy90aHVuZGVy
YmlyZC1sb2dvLTY0eDY0LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUyMzI2ZjU1MTBhMGQyZjg5NjAxYzYyNDU5MDMyYmU5ZDY0NTg1ZGEKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDYzODQzCnpjbWElaVdtNm5YKTkmSyM0dlZ7TWtsLTRlMEt3
Zk14STJxJGFDWnhtOzFWRiVCRWV5PzFiMjVeVX4lNjJzcStXVQp6cjxvZSp4fjhrQXVkZUJ5eFg8
ZEp1K1lpVDBSUkEmbEFAZHowMDglMjdZPX1tezlqfTJRRWR3VkpoQ2F0TnFfTk0KeklTV1E5RnRO
I2ZeSz5hVDx6d3MtIWs/PjdXZ0NKSVhMJkcjcWlGMTReTkN2aiNpPnYxP09hbWRRUFVPUU5mVGV6
Cno4ajdufXQpeklGJVA9Mzwjb3lsVTMzKDZSeWUjbVg/I1ZeI05XaXF8ZVF+KWNHKlctdkkxSnUr
YT54T3VUWH1SXwp6IzBidSFAUTUmdD9CI1V1cTU9TGw2Z0kqRFApIT1VTXk1JiF7Qk1UQlBaaHB6
RjkremxfNVpWPXA7WXQ2U01xeEIKenduKUFHeWx+V0prdUxXXntVJFleRCg3Zjc1N0BCJnBOeGh1
JjZ8eik0KldfVnFNbzN0d1diMVd6d1VPckZIZVBnCno0ViNqRHZtLSh4cmQ/TH0wTW0te0MpeExQ
eittPyomdHlMNGU1NndReEIhNCg0MWtHTVBgTEs9WVJCfE0kfkB1LQp6YFZVPT1sWWw5IzJIRX4j
cz8la28mKGY2fjg4YUQyZmVFWHAya0ZVRTFFTjhlWl4tbHslc2deeF59b2dUbFcjfF4KenoyLVQ/
YnFyOU5EVUJUc14zQnNJc3pteDhNKyZ9WWtmMD1qcmA3fVckYj12aCs/RWF4YW1kTDxpfFR4TGM0
VipTCnprJVVyaj17eldleF9QaSVRUzRwN3ZoSUNlQCR5I1Z3bjtye2FXTXhtNnBkO14wQGsoYUhU
V1FLOG8yT01YJip1eQp6QX5gMitBeSpVeEtpZUI8SkV6eWheclpoRTQlaCMxQVNWOE1fcXI2cmht
SShuUExwJl84KlUwakp2bUE8ejY+VGkKek9NUW40TDYxKklEcWlwMi00PTxLbGlIdnlGfGMpViQo
d3dva3tscW58TnIpWG9BMzQ1Qnd7IyU5WWhyZ2ZFaXpDCnp3bCYoWSVIRnB9QEY7dEkoTll9QVR9
QW1OZGBPJX05JjlSR1RFekhnOSFybjFzTmNWcU8qP3ladyslQUB4KDlZQQp6alZ7MjtKYyZqP3F2
RlU3bykzIU94VkwxUmd+RSVUc1lWcHZ0P1VyaXQpaWM3Tzw8Yz84X2o4ZlNuRmI8P3BITVUKek0j
YTQ+Yz5YdTNhVDR1ZypERG4xZkdoTVFzN3ZxXypFJnl3Uj5tZTRmSnFFYTU8ZUt2WXdhMHZfTn1n
WHAkUXNlCno8IW0qfXtDPXFYNWFkZXs5WChvRU40b3hVYlZxamYpYlJoTDBSSlo/dkhma2VeSEF3
d2FscXJBRVVRSk1gJjl5bQp6Rk9EUFdFa0ltaCkkRzleSjZ9PzRLYDt3KyhKc2peUiY9VTFBNW5V
aiYoalV2cnRtcmdNQFphc149MVlDN2BlXmUKejFhRDF+MXtldDEqPCNWXylnOXVGJlIhcT1RU2NC
azBWdXlnbnRxaGcrbVZ2WjMrKCleUmNNJWMmXjhNaFFRMjdCCnpeWWN6cDB6NlA4Qy1nb217dShK
NG1wMlROWikod3llLWdpV3gpUHRaRm96dzs4aUA2X2BjV19rb2tAO3xYYTNVMgp6cko3Y3tkWUZN
N0Y9MDlmLSFkQ0d5JGp6QWExUks+KHRTZjNlTD5vR1V0aHNLPlY8QyR4enRaJTtLPFUpWSQrJXcK
ekUjVHtubmtROGxCKkA9Nj1SPkU5NnRtbyUhT1hGKyt9NSU5VjFVTmtmaSorT2BCUEUtPkJ+cGU7
LU88diZSZiZzCnpCTDFoYj8mSGIqMmlOaitOSzNgdD1CREl2TWk1Yyp7e1NhVnhSe3ckSXQqKjNX
aDw8WDlVPXAkM308ND5WVjY9UAp6UGopSCZ5Tk9Lck5LSjMpdUg3eyYxbjN7flhUSFdobTRnUGt5
aj1CUlVmOXpgeUtmdWVqeEpwVGRYbXUxUHN5ITkKemtoXmE/LXpLSmBnKzlsZCVsfXs7UnJiUmcz
fiorVlVjYHU4ITQxPEpuOHdrVWFuJVImKklnUEd1WSEzQSkwO01ACno0T2FQVXI7bURnI018YXcr
dm80d1A3IWZ1Q1N9SjBDSE0/UmM+NGRsJTVUeFRtbHU5SkVOQkJrYFMrKEJ1V2pvWgp6SUlnM35e
PWViWGUkJV83SGM3XnJ7Ul45JkFuLWtnWn1BYVkqNGckKWZXfU82UTVBTlh8R0tNYTckPntMIT5g
TVEKejA+MlloKkotNG1UPGNkZGhidXs4KUBvZGBAYTtBZl4pRHxLRWNxKzNVVGhKQGc2dUxYS3gk
aWN3QVErQGdrUm5ECno2a0twWiQjOEtwe1NlVElUY2lYSUZkQm93c2p0WlpAbWFMQVVZQCNWTVd1
bXlSPClNZCtEWWw8KmVib2BLVTRtbgp6UVdJLUhaUUs1TnlOO1Jkbl9kT01lM3dlTlZ6a3RCQ2du
Pnt5RF9QeEV7NTZ0KEZ5QmQkPXphNWl8fVZuQDdUQy0KekF5VFBMaH5SRGdZSFlpU3VnbD5XTndJ
O2hDUDZKM3ghVWdVTFgpR1RJT1BpfFNofWVEJCgoWFFASCU1YGwkRylgCnpjfiZMbG50JClJcGtt
ZkpZKzl0akJ5V1MqalJKN2d7PTQ4IylSQ2c/XlFwZ0BZblRGVypYU2gqRnwtTkw9Zjd8Ugp6eC0z
MlhiYVhBeV5DLTlUbU9SNHpXWkdOd3BVWnkxOHZYemRkZzgqcnVoRX1STDw0diY4XzJyNkp9VFV2
RkdVTWIKemQ5MjUla1o9cGJ7LXooODEmeSEybX5iOTNtYypLR2YrUnY2ITJ6dTVVMXZhUmVBWlU0
Qj1nLVlBR3NaZWhnVmJVCnpiZGcpaDRtYGIoVzBVSDw0K0tCX25xei1iKlVVT15kIyUxMkl+YzI4
cEtvQEI0T1lJMjlRcSNjdTV1ekgmSis3bAp6UylxZzgjUDJCbSpIeCF8YkU0Wk05IUUhZlJkMEtP
ZGxIb1plel93dEFuNGhZMEw7fjBEXk59NDNKRXwrXlB1dH4Keit+TEF+elhvTWs1QURyfCpReG9h
I3ZpUTFsYDhgTi1xcyFUX3xMQXlRbiY3ZkRTTmhRe35wRXRBZ2JraCEkPjAxCnpPRHN4dUQjRVd3
MDM+S1BhUU5ATHh4S2p0I1crZipgdy17bEMlUD5CdSEpbSNlYGRvVERHSyh5M3d3YHQ1JWF5TQp6
a0tCe34oT1pwaGo7aygkRFRePXVCXkZZPWF0fGdsa2NoWDFIRnpeal8mJDlhSm1oQHolRSRFd3RL
dD4wUz1pR1oKeiZ3bklmMUVsVjxuX3BHM1VsaWREUU1uPlF0JWolOG4yRExhejtrK2xMP3xaVF92
O3lJXzxVU0d2VG4lTSY5PU5sCnpmeWt7bEFBakhIemx3JW1AP00wXzFtd0JUeVNoZTc+VzdQPzFV
OCtUZ0M3VjQpVyV8bnVTemAhTyglWn15N2dtUwp6RHRITig5cmM8aks2fCV3Tjx7TmRDJjgwcXRB
c01IUztAbTB0NGxkYk0kX0x1UDdocz1GfjRnR2ZNeVJ9S0Y9Z3MKekFtNn53ZDlJKWo+QlNxT3Yj
X15jQU84b0l5dHZuUUxNJChSTipVU30qP2FWaGR2QzszRzd2cHgoTiY/T21UKVcqCnpodiorfCFG
fD8jd1lXMiE3a241SE8lbGApWHZnZ0h3dXRjWDdpMWJ5Vk9La0ZaJGkxV0UmJCtHPXx5SiNESjF8
OQp6PUxRYWNGfmRLNjhMV3Mre0Y4K0RIPTcpM0NaWVBKTGxaeiF7PCh6TGhwLVBBdkVYUnNARktK
Rno4RWdZRVdSbXwKenlecXNgUmIxI3JfZVMoVEdPeFVUbHlwOTJseT4jOWVCbDV6eyhPJGFCMn0p
MmBScTJpTnswRmMwWlFrUDNqJndGCno4aGV9QCM3MmZNZDBHUGsxV340VEBzSnplOTZAfnxtJlQj
NmtvfH15PT5jJUQjRytXOWVUYn5ESmR3VFJidCRUdAp6MzhuQzFGYlE0eSpzTHR+P04kUERqMTQk
Pl9uYk9uVG9nMFo/NkNIZCt6UGF+cCNVTGB4SGxTalBPfUc3KGdueFMKeiZgTWREcD44cElITVMy
SXl9bnEjXntiSG4kM1Q0RktxMi1jOzlRP211SSNOPFleaXlWNUp5dVNzXjwrZXgxLTtqCnpgdTxP
UiMqZlByWnNZejU/al55YmBNekg5WmN3TkQ/QzdoM2g5WV50WHt3LVc5SENPN3VhPllrc14zTiZn
IWxLfQp6RHhkI0FzdCUxbU14NllfJiZaRFhFTXA0PytNSz1MbTRtfVghPXNXIUgmP1ZSTDhtMjBZ
NllGS14hY0BkXmBXWj0KemN4UUctNDxsQm5feEEtbldrZE1wYTJPbWtESiRxdW0qaHsrVDQjXmI4
aUpvaUFwZUNNQDRGOHQxY0I0and6cWRmCnprWTFULUZxJiYkYSp9eEEhKGpJMWtPO310UEAtPVR1
cztvZS1IdklBZiEwMjBoVzdaIzxLfjUkOVFeOEg5QyN8cQp6PnZedVUpWUspNTdBdUVTT0szQDd0
ZT9AK1Q5PlR+I35vWiNgJlQxNSlRS25pKnw3fDtgKyFgKShRajFfPXY9Kk0Kelp4aFdMVWZfdFN7
Oz4rTT11PVQweHJFTk5BWEFIQHB0aW4qO0RtYyY8P042MC0hd3l0bD8zXylnRzswcyhrSl4lCnpw
c0tAamlwPFNCIXUhPlZUIXApQD5vcz1ZSyEwJlUtMEBMfHxFRzJrPkhPalBMekFOYF89WSpHSW1L
U3o9IXl0fgp6MmcodUpkJitEOXg8eHJ7ZGZtbykqYSQ4akl1VUErNHFVfUc2PCYlXylrU2UmJmpi
P1E/cHxMP2VxKGJiKUMwWWoKekZhMikrNnNkMHkmYjE+SjxiPSZ8LWxCQX5Gan1CUjJocGolZ2F9
VF57NVUqK0JUMGxPYmlDbSQxN1AhZnFlZ1BXCno9eWVFJjN7M0EwZjVOUUptQEw3RXVsOWhpMjJp
QGpDZ21lWjtALX5xM1pVQEUkMyVnP3U5RUx7aTgmNFQlTkNUfgp6PTFKNHdQMHtlPyRwcn5WRXEj
VlJ3dHNAYClyJUx5ejFodXUrOUxuJk5QMD0qb2Y/OE9sVkR5IVZBdGAkRFdvMz4KejFSez13aT1D
PjhxKnttKyRoMCQjVCMxPzgoMHNXYDJNQG88UzNJblU3az9WUXZLOzkqamtJRVFLakUjcDMrT3Fq
CnpnaSpjVVV0YVlaYW1WLWAwT2JhRjhERkJzbSQ1IWtXWn4pfkRuMFo3KFo5b2wmJDFednAlMHZ3
LVNwcEdWaFdFUgp6NUhQYlRpQGh1MERTWCk2cjFAcj5NQm9oST10cmc1JmcmeUxGQmoheipwRDt+
QFp8akU2X2ZJbHZ3d2p0UlVlSmYKejAmXy02TGo1UDckeFI0dGFWQ0xZTGImZVZxaF9MRXtZKnE9
JHhkdUJpWGRSekhVblNOQnYjPzZPTlVrMjtjU2h+CnplP2gxVUZtcWxLTUU3R1MteXluKG5MeHYw
PHQ1PDEwSmNGUF56Nj4qPDA7ISFsWGZ1TnlkXy03VCEwYnZRcShpcAp6bXMtTEREKGQjZ3lxVn02
XztFJipGbmpFNEsyYHlCQmxMfXVSTT9Id180aEhsOUd5ZSV2JmNqfldUZzxQPW0pUHgKeiRRI0Y/
ak1COzReLVN7cUdJdTtZVmYwQjcwZ3tfMm9YTCtxRTFPNE47WVFxOzdtMTlfTUA+RUxgMWwoZFd0
RV9eCnpOQUhCVCkkayReKXE3cSgxb1k/JkpQb0ljcV4pTXREfWlTfTh6MEdNSXdAOF4tQ0B7Mlcm
YWt8Sk5jfENLWSNUawp6SzFFZjAkVW5VaXZgaTdBbmZWYEtyRTJuPzdCQVJXeHtGUi13VFJSVk8m
Kk4pUEh5RzdudVl5eUhIY25QKWF0Y2MKelRBNk59SCl0X3Y+cjdfM3BtcSZMTUc/Ql9eUUMmaD9E
b0RCVWkqMFQqfGJVI3dFIW4yKTdjKiRabCF7MnI4cjdfCnppQENvRiNkUTt7ZWc3N3wpSnJDKXtz
QVBoejhEV2I+ZyVOXkpkRmV0JT1BVjAxZmZLZGwwYTAlNSMkI3BpXzczLQp6bj9UNlhHS3RVb2lL
fm95QzZHe21zIS1+S3ZLSD00K3s/QEA7SiFEdVh9RnklITJXVmZnciVfPFMmdn5Te1dWTGUKemtH
IzBwO05ZPTlTY05aWlJHNm1SVjNRWSVoXnF1PGI9IzVJeFpRPF8+XmVHa3BhZFlidiVlRm5iSTM3
I0Q+VVd7CnpoS3R6fipkNyNOaClwWEZ4SkVhWUJAfnk8UXhHc3EpcktmTnt5T3VmYn5yTiZkNHJL
azFkejZpLU9Bczd2ekJZegp6NT1KKnNtc04yU05IfVFPbmx+bTxOUypyNChuYTl1T1NFeFJLYWRh
NCk1ekxvMTNTYlZEUjdHcUArIXkwMSR2ZVcKenYmS3JyYHtZZlhBZ1k/O0pxKXdqdStaT145ZClH
b0I3N19ERitsQzFgZiU9fntSaUtkYWpTbVF6WitNKHp3LThGCnpoMjckXys2SUJ4M2BaJCEmJitY
USEhaXp0SlEoLUYhRUglVmBIViRpd3MhbD1IYHVmNmFHaFA4MzlpS2MzKWxPdwp6VyFaeWQhJXly
JjZOOElTcGpCS3wmRVc2Tys3N2VCI2psU2Fhc3FkfXs9fSowOXEyMWJNZ2d7SFMzPyRlUUJzbWQK
ejhjKWpwUyFUMWI8dEd5PUBfKC1VV3R4b0luYHxlTEZ8JitnIXAraHxOJDwmUnd2O30tPUlNQyVw
QzFSQk56R213CnpZbGRRP05nei1+WGF6ZzdleXZmQyt6fTFOTzVfeT9uNTdPbjtQX3JhVGZGfWVp
TnRjITtVX0V3QFRQUUBKX0lxfAp6aW9TN3okM30qK3pwU0grLXJSZWcySm5zWW5rVWdldDNSWXtQ
UzVxJnhIYWlkKyFeJj1Va0l0alI0NCUmNl4yZSsKel8yejNJPEJHO2loWHxiUnlVQjBjRndJLUpX
ZUJyPko3SGg8bFd6RSZsUmEkZFpOey1VV0hsS0U9R3R6JmBSYzx0CnpaXzJMQkYkQ2wqKiU5KlNy
QHw5fEVMd0E3ZWh5T1pRZ1NMbk4reGhzJXw5c1RxMjhQdVJvNXZsSFMmalh4JCRfaAp6Pm4wREpO
JUYjTkRXQUNPb1FYN2VXNjA0fERudWhAeXk5czhsJEUoIzJCejlheDtYbHIlNnlhdGMmZ2VKeV95
OyoKejBtNEVAPTJxQVNgZXstYTJ4Nm1GUVh3ejRgPUI9eXFGam0+KGZSUXhpMW1eMEZ+PCY/JlFt
U3huT0VxYkdBYFRTCnpoZGxWTD1GZm5BOCN2NVYpeyRwaGYtd0RJK05XKERCaz1YYlYofDRXMTdO
MEZBOXxrZXUmYE0rJiVqMlhDfTx+Kgp6aDFxPFVAOVJ0Vj5BcUoxeHUtfXEwZWE1dmB5WXBwMit9
Q29PMW5vUyF2b3hPOzBgRHdxQmlYcVVBMnZLbHBvTksKekFLWHVfP3N5ez9wQ0cpZzs0Ui1GZmxa
Y3BeZChIMFRvTipmRGcqNkwjLUd6azs+Y2xeVF9IfU5pWkIzOTZlaWstCno2ZVozKT5HKnslXkxf
fmYmfFdKdkJ6VVUzKHdVSUEtZVNPQGhMaUd0dH1mVio8RWNSdjUlfnZYMTlndGY8YyRoaQp6OWlO
byUlV0RAdldVSjkycnZidD0zRCoySiV5LWZ1d3NJfkNfOCtvaTNKN2BROUhBZndqQkM2QGkxTCFV
Pj1qVGoKekAhISUpTklWWX5YUk9RUDZoWGUhPWJ5WjJuQz9MeTAhYXhDQV8kOVhGWTEzMygkI31E
TGxmWVpDajd9QmpSRWE1CnpEaDBxd3REMms3bSMxdj1rVX0zKFU5JFMhb181d2kzd1pUNlUjPTls
ckJGLTR1T1J0dyg+XlozKmpSOF9oPyg/Qwp6VE09VGhMMkIxYHw1XisxQzkrYGhUPWg7WGJtX2s5
ISllQW1tdXB3UFpkU1BeeWFAQjtBcyU8e1E9SnZ8bTgmKHEKelRmTFJUNDdYd0xaITFLIXhxfjNG
JHkpVEpyWCV5bWNWTzdtY3R4VkhNTCFgIXhgQH1qeGElcEV7SlVIRFJDQ1ZzCno8IWBxVXAkMHpf
VUZ1JDF4UlJHTVlKcihyPTYpZ1c4R1kyYmtHXn12K2M+Rk52LX4zMG9lbTUrS2xJVD5ZPntuMwp6
ak5rdUZAWW9tPCY4WlQ3bjdVcFFCe3orZlA1KX4hJiZWT2p2cVZ5MENNd1UqKSRyUHM+M2d5QUIx
U1BmfDBZSlcKekh7bmtkSlo8PSt0RmV6fEh3VktPaiQpTUxhZ1FLYUtmUVZEcEkpe2lPTEI1PG1e
NWtvOzVBZnhNOXd0bE9wWER+CnpEQmtCQEEwanFrQENufDVnbnYyUSR1JGI4c0tKMENQZUNsI0l9
TmwlSndVIz4rWjNrVlFnNT95KmRJRCVeKkhjeAp6KHkzTlQkTntROGNNdV9Xekk9S0s0YmFAUCR+
Y0ZMYyZgNkohI0hVU2FFSihFZnZCI3k3JWo1Z1EmU1F1TlI4WU4KenQtcyRGRWYlSTxWVzl4XzRf
fiZkMVNVY1R6R18lS1hQJGpaSlViS2RiUX5xVlJwQ3dnSD9MZUlFfSgqK2lVe2ZTCnpMKmpicyVU
S1hRMmFJYV89Y0RDdDMycyVzeDVaRyRsS319cHpLJX5qPDZSXmJ1VGgkejFeY0NrbzZSWFlzZTlN
Zwp6dW5OOWRnNmlDMTtibDtwaTF9KzwqKkRuJE1tcDRKX2l3WmttOWxDQHMqSGJ9KnFRKlJZNW4l
a2Q7YzFMYnJkJF4Kem9PV0o/MnBoIXk2MFJ9bmVIcnNnNUBfWl81bDlmTUs5WUd1NiRuSWteaytV
cGF5KlBMcmM7QTh5UnN6Rko2bTh6Cno2NnA0WDlqc0I8R007QFlrUGRDfkdPWkk5ST04WVdwaT92
cW5AVDBRX2JNK2AjbyZgSHk4bjcwelk0eDlUMiN2fQp6NlQkPiFtX0MjdiZtRG83TzNmMDBjOGZm
S2x0I1FLamVPSXYmUUFQX04wUn5XVHhXcn1DRU00bFlfOCRrV29eYWgKeiEhT348Mm1sfGYxUGFX
KmhuKXRiandEfnQ7UUBvfE5qMCUpaHFWUjFhcVdqVXRFYG87WkZSLS1uUWdGblBSPWBqCnolfTtG
bmBHU3AtUkckVyhDSlBWRW9NMF59eSFMK143bmxLfDZTQEFBSlludiYwMSs3NVEhdlhPXkhpPXZ7
OEV9Ywp6Q0dkVkw1fHpeaUFfRlhRRyopdG9WQ3x3QGchdktXbjsmaXszZk5UMGI8SWFYJEsoV0Fi
b0hYJDQpU3QkQ2JsXn0Kej5qOWZGU3JBUlFAWCReQWt4RCtvKlhwMEJWPVg1N2AjRyNzLWs1T1U8
VGxxV1NUWXJ6VX19bl4+YDJHYG9oNSFaCnpFdWlHQVBPXkxNP15LdDttQUZfOUN4QSFrIU18KmhA
bmptZl9OQm14Rz5xdz1CbDE4YHhxazJwYUxvO0JxZDNmOwp6MWx4Y0ViTz59YS1wPVdhNVN3TjxG
NlMrX1pMWVYxSTBWZkpYV2otQkQxNkVfSGo9WDZ1djJVP0pTdTY+TEp+YDkKejZ7TFFOVz1mPz16
KTBFRHszZV50MktUb2MqemcrcEY8Vjl2aWlPTm92KEpxbVdVd1NJYTI+OVBTTVZQdG4wRmVsCnp6
VURPXz9zdENtLXZvZTE5dWUxOzZgUClBejw+dzxzRTd2RnpBQko1R25xPj1Afl4+K3Bncz5wV3Jv
R3VIQDF3ZAp6aHF+eGY8cjFSamFBQjBrcG87c3hzdnZ4SUZ1V3QhdlJQUDM5I14rZEI1WlJGTyE3
TUR7dWkmc0pPdkdATkFMVikKekF1dUZpQHhqam9MRiFvNDYtS3w/bE9YVUtzREM4dSNYbzs3cHUj
RXUkel5fJGJQZjw5QyFoRnBKVk1ZdlNrZHRQCnoqVX4tcEltTTlxMihIV1BySzleMzU7S2hnZmRN
ZDN1JiYpK2xCMGlHQUhMWXpXfWU3eiQzJEpRTjBJKDstaEltSQp6SmNLMFR2cXx2cjJmTUE9T31L
JkQmPF9eRHc7X3Izdzh+I1hlQSFxQjhXUW80OHI4bFBAWmlIcyYmOGhZK3RHZmcKeikkYk54M3h9
amZBIVdzfERUWjYzPm1EU1otJigxZW54Mz1ee1FlfjQ2PTlMZE9WJnlVYTd5USYodUo9QSN5cU9f
CnpjMUxfRUlgJGhaY05qYVhxMm11ciZPfU9ZQTJmKVdxKl91a3ooPW9eVl8rI3BhMj90ZXJqZyEr
bWk5Mm1hfFUqUAp6cDJgRHJ1dzxzYzFSP3xEKz5ZM0k8TkUyOE9Yay19aDlEOGF2Qk5fK0d7cklZ
WDVOMT8/MkZzYVVOMUkteX5fP0MKei0pKntHOzdWQGlpVk1gV2VrO3VlQXoqcDBJV1dndW5ITk1C
c0VidHtpOERYezcwVCNtS3JjfG93UDZnREJ2WUY2CnojQmJWV1E1VWctPmpsOSttQ1JjMnA5IzVk
ODR3Z25oZitRfTtGbnBlNkFjTnNadGdxcjUyTzlJRnxpT0dvSStsVQp6Njd1PDJGST8qLUxWX2Ml
elo5RyNzVjxBZzgpYFRvQXE9OylBT35je2RtQ153dnY+I0hgNyl4eDF3SmBUY0BGQ3oKemNZT31t
dkRDVHA3dGl5P1FaMnBhbjVpfUIkdlJ3YmdPTGRjM2wkZjc7Rm0jSiUmK2BEdSgjbWN0bjNRSTFt
SlhHCnpBQ1dqMyZ6MjlaPlh+cT5jalh4N3sreFpeSX1oYTQ/WiorTS0mO0NeJlNiRXJEJXYpQW57
bnNEND1PKCE5YWAldgp6JHprSGdHcVR8QiE3TGRiJko9SC1aKU9xNEYxYG88VTM4PCVjISNgaDIz
fiQzNVpgPW4tfU9jVlI5dHJNTWhMSzkKelRJV3AqTj51JnlrVCthU21CeW5YIyNDZFJQO21pUTlf
fXJWK1F5T1hNTHg7T2ZZOD53UFdLPUJuN08zPGdieFZJCnpNc0dfPFlBdHFlVXQzKTtkUjVHXnZP
ZyEhR3F5SzI0Kng9cCFKP2BVM1E3OHNAP34la28wcHc/cWN5VEJqUmxsPQp6el89fmMjN3tQMiZ4
TWopUGhAPyZUcT9LV3FtY0U9QyRIXl4/aXlCKHZuJT9ETiVEJSpoPiNkRXZFUzFsOGheYW4KekdB
NXZ6QHZ9eVhDVWRnJXg4cS1VT2t0WHpybz5Tc1lKYDYwaiUrSDhVekhGQjVHUzNjSj4kN0FCZ2c9
WXZeP2pCCnpiQ3dHUzlIWlQ0TnRvWHxjdyswOWRDKytDPjBYS28paDhudzV9WjlxaUJwIUpfWVY8
c3dHYW01dFBWJm82VDsjVwp6UWs3K1Q/X3lsS1pVKjl0VkRJX1lvZH1fNjZQRkxVbUFlNnFGQ3NG
PmUzTG5iVld4UWs7Knw3UEV4TDQxUENwNVMKekVafjVMSThVKml5Mno8Jm0zV2t+cXRGYzJpaWU/
eVYoSW4yJUNuZWFVcndzU1c+dkV5JkdmdzE9RTZ0SFUlNDBmCnpCYEBoNDJmV1dKd3tHP0NEQFIl
Xm5ANlhiNW1vSERuMiVEbl56Z3hJXlA7UXhYcHpTcTB5VVZ3T05qZn1rakl0KAp6NzBwIyFrRmIk
bjdMWDBZWmVAcT1NYUlwMj18NkMpamJgTThNTlh0SWtKJCNFV2hQSUBad0F0d2w/Mml4YVk1PHsK
ekE8NFlIeTR8aURJRVRtcl96N0tHWU13fGVQY2l0eXMoSWJ6JXlpaFEkZlRrPko2fFlRezFGPFZf
Kio2REFjKDUlCnpSfSt5V3BHY2tBdGpxI3lRVEUzVUc3YkBIREkyR3N5VzV3MVRSYUc0cjBRanpZ
PDs8QGBQbERRQ3FpbnNGWWteYwp6cl5vPUFfc2Z4eHNhdH01QXF9a28qT0dkc05RYis5ZH5eeSop
c2g8TE5QKFc0dy0kYiRFaTBAWWNfZEJjcjF6TT4KelBkck94I09BUz5eNnZrPD9ZMyokTyVuYStf
VyNfX0JlR2RFSkl2MWt7JCU4VVhRMUpqViFxNEhyaFVsPChwNFEtCnohfCgoYiskbkxrRGZDWWNt
RUtrSFElUXZfbGdQKXZIJT9gTGozZlh4IV9WY09RUmI4JXAhOzE+TkRfakRePmtDegp6NEJLezZx
IzdfMShNTnJBVlZmLUglV1h8PkB2fVkzSX1yd0xaYkJNZXNhMCZsdyVebXJmRSNeX1BERj5qUjdH
QEkKemRlKWMjbEN5VGpyKnBeJThMUHoyUnZNSHpabjA8el5VZFpgTnxuNkE9VEBPRW9PWXJ+NCt0
aGpTYkJKPkhDemNACnpQUiNWUFJHfmx+UCFqUE9pRVFlZkhjeXtBdH1qNkg9RUFVRDlPWHdhUk1T
REQtbj1pRD8wbmpiJVpkV3FjNT93cgp6WlYpN2tRenU5UjY+QXBWb1huVUBFdHNkaUpATDZgXio2
YHhFNDR4Uz1MOGQ/aWw7dDhvPlhRZCZzP2FheW07dTsKenJNVFdLbjcyUzFQKSp+OUJwcCZwck8+
K2ZII3VeODJKNm0kRm01fH1NN2EoUmBDb1RQUEJoQHk9PTg5fHZSNXRUCnpOJUc9OE12KiopSlNx
amxPbjY2S2VOfnElQjZ5NWNIcGk+ZjtrJSFSeCREPTZFM3IqfXdLcW14PUEqfn1aTjF0awp6KmtC
VTNrNTVtSTVMbjt1PzJeQnZ4JD16U1RMUkIyTTNCbWRIZmg4cjhSfX1fVyZxNGg7KHQoZXRmdSlx
UmcmRy0Kei14UHczSG92YmJVfGRvckg5LUZYYiVKRVVpbnZLNikzQ040V2o8SjlMPnYpKl4mV04q
aEVgdihjI2NTaWZfTVh3Cnp4MFBEIzRVOTVRTT0yNXVYUjsqSFRER150b3RzYC1RPl5lJTd2YU97
LUJkWUhANlg3P3d9Zis3NjhwKT5LWGh2egp6eEMjYmVlbjViNEBDVzJQIU5BNns+R3E7X3AxaSpu
a0FKN1JZIXhgQDtFeEQtdHxjZV5FQmpoS00jfkZfTk5nZj0Keng0b2Z4YHdPZEkoWjt7ZlJPZzA1
JF4zZHBWWGZ6KWd7NlY1QX0oSih6SVQtYFBZUDFAQipJXjtZcVdMNmp0KSFBCnpPbV4pRTRUb2Nw
OVZsV3JQWTA/aVFIeEZ5USgrK3F2UWh7OW89JEtHMUI3S1dtQTEkLUpmTlRmb0wwPDY8PD4kXwp6
V28yeUk0eUtkRWE5UFlrQHNEPERNV34hNDhmaVEjRFp2S31gQihQaVhzMWRhaW84UHZ0dnMwM3Rg
OEhmYj19cCUKemcwZTV2cnArO0IlYSFufmY4NUFRdzJtfGRBYjxPYS0lTzZ5XkI2aFFwJmVuK05T
NHlVY0Flezd4WVhUYzFjJlYkCnpOc3NyXkdpI3JCUTQwU2hgSUR6V0FjVT5zWHskPjtMc2QlTUd+
bzh3X1dIQHdPRFpnc05uUz0xb2BiaXo3Vyh0TQp6PEpjVm51PFVqb3dsWWM+SCo/MypmS0gxNmVT
P1RmeEdsPn40NkJlZUh+P30yMlZFZj1tM01iUU44OW1mdyMtI1UKek5VO0hASUBANWBeVDZ6SlQk
cSR3VldJRSRlPCs7X3hSbWo2M3hfZXZxdG1xSE4hdSZRMXFxazA0LXJSe053ak1DCnpnTWItZ0J7
blA8IUA3bjxuSDcqfiFEfipsa3RuNX0xOHRrNW05PzN8dipsY3lhPzgkIVRmRnNfQFNeQGgmNUx5
bAp6YT5RMlR1aDdNV3RTe3RVVyRzR2VBQkp6YV94TiNDaDdAM2lXOHpWPTxuZX5zOX4/TWBfa1M7
WjQyOCZUR1puVigKekRwPX5BSislQjE2Q0xkY2paVihySlZiR3c9IXVQdSNIcChsQzhHTHIkZFha
TD5VKnAzTXx4NTUlI3dWMFo9UGEmCnpENXg8JU03WW9MO0ZNK1UxOURyN2ArUGxAKTVAfVo9dkpu
ZUo7Y195dD1qYTQhWXwyZmgmdTMyS0JaSjk0SV4ldAp6SjZBfFBZMVp9SmFUbnY8Jm87MTFTbXt5
cHtfVSg5e3haRUdpbjdnYD1ZR3g9aGwpe05yWlRhTHVUTFVaSDFLVVYKelZvfG1BVGxiUlI2bnIw
QUAkY3NzTF5NI08za3lrLW58P0I3O0N4a3ZRZ2dLT3Y1dzYyJUl2fSRUR3tpVWJ4Ul8pCnpUdEFX
JlJkZXgmbnZHJj1BUlp+QHgxQn1NM25DPE5MPlV3Sl5IcExwcDc+PWY2UXkwVHchaHcmNyZCQ087
bygpKwp6OVE1Un1AMDwjcTwlKnk5e3JpMCNnUWhBVGtEcUBAT0lCdGclYlN5fkpzc3g9Q0NmI3c8
YWJWNzIlKkVLKGhDY04Keih9MjVXSHkwTG0yVGcpalMkKFh0clljN3NTcGFBeD5gXj1rYEEqO2VX
bHw8TzdPNTNLPWpKV2Y7ITlTe2NrNjd+CnpEMTFDWDBsckREbSttfmFRSys5OHIlQ3pJTnBpZVo1
PmwjY2FEa2ZAakw9JXo4YWJyX0J+PHVHemE9SjQrQVgjegp6IU1AYG90K3MmaEdhMDs+eChkbUg8
I3t8PWpgfTJ7LTVwaG0zQHpXZ3dUVjNUVyE/cCRJcm9DPSpGa01XTGAqdCgKeiEhdFI9K08/PTRa
VHlEKUUkZi0+Iyl+NDhfM0gxKGd4cFglPVJDOHNfdklNVmV8SEVDTiZ4LUdXTj8+MnJyXmNsCno3
d3JYZi1oaExHNWNPQ0NmaHEtP3tOdFpCKiErTm5gWmN9KVlubXw5V3pQVTZjNTxfTW9vczMkMDdM
OVNnWWdGZgp6LTtIPEh5Z0xhND5qPl83VCErO1FlUHkoKDRpJWdJdHtiNTJHdn1wTzBsPmJ8aXR4
SnNkJFVjP1ZAZ0lrdnN1WmIKeitUUiVYOTgrP3dGJG4+QF54S1A7S3xGV0c5YTUkPUEkazNEJmpC
cGFPWXtsejUlcytmYnpmfFcxdThjUj09LSslCnoyaT5DZm93blB4ZWFNNlo7Pkx4MWxaMDNDJl41
cXooemRwPXZ2N08tcCUlV0VPQD18JigyJSozR3hPR0dnc1ZJMgp6YE9xSUMyKG1ORU9QVjhBJUU8
S2pjSmNqd2dmQCNBVjV8UHh1ZT1FVWE1YF98N31zVUxmOWR+ZilxRndTTX51WngKekdGVyNaUHFR
PHItUyE4QVAxPm5mVlJ5PDlJQ2RmbFdTXiYlRl9sTzNQbnB2Q0c5ISFweil3KCE+RUYzYWx5TEh9
CnooNl4kfV9zJEMoMCM1JGojNj0qVzs0TT1VX2dyV0pEen5qUEY3JDNjKFA7MD4tQll5dVM9d1g1
fExQLU9UJj94bgp6a2l5KDtLXlRPd1F0VlVDZzxaP2ZvJDBkSXBTdjItcztDNi17K0E8ZWJHWnEp
V05ISzB1RC0pKk42aDRgPlREKnkKejRsZz9qbHYoWDJiTz04P3FKe2NDQVI7KV5sUVB4MHJrSHl+
O0M2OD1weT9VI2YxYzBDaU1gNTM8WllxKmomSHs/CnopeHJ2dHd4ZCUhYlFHYig1O3huKXBMbk1B
WWVjcmVzP2FoJHVNdXZHMGd+VTgzUGBtd285K0lMNTNTez0keWkwLQp6e0VjbkdCKVF0KG1IKHNe
bng1MSQqU2QzcFUmRDxOdERFSnNITllWRG18Pk94cD8xTTM/K05AbkNUUlU+SDRmdWMKelEtfCEm
eXBiczRlXjBYOGZFKXhtLTlzOFpXWTRfNT9lYHZNKjI7eTxvcTd+bExQSj04M0s8NTtJfG5VfnpU
JFhVCnpYYDNxSXZidWEqaXg/U1QkQCpjViY/dTdETy07KGdUWDhaeV5kSUpzcGNPRFpsRktVOzBG
N0UtPWpwT1UmM3U/cQp6NW5ePypUfnEqRlp8bThkX2NAe2lBYTUoaG4/KEBQKH1DfnV7JU4od2JE
PnlyfER0Mj91Yntjc1lDbz41WG4yaykKeiRzQTtmOTtfNyE9QjlHQkRDaCNIQmN3NURHIzxUQzBD
Y2JBOW95OTAxQmMpQHVFO182bilickB2MzdaVSgqMSN+CnpyanJ7aVVxWFFUKEcoPCY7dn0pYCh3
PW44LWYtTil4byo0aShmXz5SaTEpcHxofj5URHI8UzcjNDtKbHpGXihlVQp6XlFUPUo2YTZKVE1R
LUVmZHwxUU50LX1ielFiKkNTQUREOzFQSChFfG8oTEw+bT1sYnFUMVpDWXF6cmw5KyFRKyEKemUo
Izd9Tld4dihAVSFLMVYpeHZeSjtaRmg7I3U5SVpwXmExWUU7OHMyNzY7UV5tX2V2ZzclSyZAc08q
SHgja1JhCnoxO2UtOXdAcWkjNk05emE+PHBoU2pKc1lLX3lQajRhYmpJKnYkZDB5Qn1mKTdVVjQ3
cSpgIWdGO14hMDJaKyt7Ugp6bD1OUlJKY1pqcXdOQENFczJ1TCg2VHotUjNBYUg8TH1OaWQ3QXAj
QEN4WjViJGkrIXZyVENET29eWHUzbikoMEoKeiFSeGdKWXo/P2R2QCZKPllqNjNLe2JNemtjYEQ7
LTUrUFlnTm5oMGxMSkVvQzJZOWtsKCZvOSVBMHUtY2V1O3IoCnooRWBfMyVnS1k5dVU3dlM3b31U
b1BNZHY+RiV5M3claDFXNyQoPERiN2ttWn48SElMV0Y2MXVkezVwSWI1M2s2Xgp6Tj1ZI1AzYU9O
eWVHPkQjU3VKSH5rQzwrWUo3NDVAKFlFKTFHX2RNbjJgbyMwVEIrZW85cV5RO3w5S2dyJD9FRSEK
eiRFeyVyTnpeKzxDR0A1THl4WU9+SkteS3U2MWhwMTViVVEqY0w9bEc1MmRtJUB1OFcmY0dyJm8j
b3xMeHNKPjBTCnpJcHdkTHpELTx8X2cjOURyWDs2fHpQZlMkKiVeYCtNdFQxdWZBe2VCU3RGSCs1
KylJVlRYITJZOXlnRVp3SCE5Twp6OH57V2JII0VzT21vQEE5OHI9eCFCYCl9TTc1SD5NemJkKiVE
ejFDX3B9aSN3SmZhJSZOKlJQRGF5b05DLSlHbWkKel5gfSZJTChrYmUmSV5BaFJ4Iz59PFdwQFZ7
bER4aC1fezBsRXZmbUprWHVMT3JfeEtaLV9UMXZeO1JISkAqKk9ACnpfK354RW1jaTRJU3B6d3dS
KTZ3KE9CcEVxRiphc1ZzREdzSGQmUTNlbXhAUkRlX3E8UWttYFlmRERQXzhsbCF5WAp6NzxXR245
OX1xYGVkYWNCLUspZFNBSF9jSyVRXmQxS0xzU2MpcnxFUHVQYStYbT08KHVGR0tYWXF+MjI/U359
dX0Kej8mSF4oYV9jS1UpN0MpRWBxNmE2LXhlKGEwaU5sYHolJU8jPmh0d0BpRFhlbnxKcHJQaUo7
PU9fTDNzMkdpMiY3CnpJej4zNEgoPHhQQzJLKjgpeE5ZdXhiWnUwPj5rbT5rYDwkPDAyVUdZdVll
cXAyWGpNTyYkPCM5QXYzYEs2PUpzYgp6WX5AWEQ/eH58blYtQWE7X0VGbkt0Z3U3UmhTK01ET3ti
ZC1QVC1iNU1aeEdHbEkrPntpTm03XiNFRkNpaCsoS3UKelRAbWYtUnpUPmNxe3J2WkgpQWhJUChp
b1QmJkMpRCVkaTQtWVhrdHMoWktSUV9+dm8xdEp1ZXpuUEdaQV5GY2YkCnpjJU5qclF8cSZPXil+
UHptcyVUfmReVjwzYVJ6aEN5SGVmISo1Rl4oaXQxdTVyYyZqNSZae1A7anJsfn1TM2g/ZQp6N05A
IXhDWSQxLW8pM0B0STNTMHp7VntSVkpIWFkmPmNab0VyeXgqY2VfVyhFa1pRSyFILThOU1p2QF9k
TnFoK30Kei1eNXMpUF4yaVUkcFUqVjYmVyt4VFEwR2J6Rn17YSs0WWEjME05TUFibXRvMmlJbj9k
VWlMX3t3UmUjKHNTOWRqCnpHU3B3PyY1RVIpOEQxaStKQGMoMUA3RkEoaDs3Xk1qUENEQnQ4RGEl
TWp5QHdOUCh3azI8Vzc2bW57WU1gIV8jNgp6O0o7WilXOWtkU3FUaEhyY1ViWXAhYHJzJXVabz9Z
RFNSbFVuR3BDaEJaY3RGUFkxbWJ6WUBfTUwkcjAjSFQ7cGYKemJyPXxJX0Q9dkVPYW12QmVhOGJ4
Z1VWT2U/KCZRK0gzZ2JtNz4lYmR4b0dhcXhUNCFqVVIlI3preHFnNCVobG18CnpMMXtTUG9zV3N5
TzhLNm1UKlFqXllhezZua0p1Ty10NEJmSEhYITU4T1Q3fW0jZmF4ZGNTalVtK2BpJj1BOGQ2fgp6
MzdyPXJSITV6XmZgN2JBUXl2Zjl6dDxqPHQoQz1JeyVUZ0NlYGRjNENkODJNall3Z0lwRHMtTV8q
ezshV28/RVcKekteITN3ZmdYVkAlM09oJmA7M0pRWl9oeFNTfnxVJjJ0O2xrIT9AaUhkNU1lNVZo
YCotZiFpe1gzfiY7MU5GbDBLCno+ITdpSUVNdnVndkthYUhDdEYwYShCLTNzYW9tKGxpPW1ZTmpJ
XytkK0VZMHhTdUMzSDY9RkxwbkNZPWdQSTVPbQp6SFZTOFp1KCU2ZkRDQmdQbDx+WlFaezxzTXRk
UnB7QmBodHNLPmpqO2MpSmxYcjNVRiErPlBNKlFOSlFjNj4tUkMKeldoe3puYUlwQiZ3VGdwO18+
R0FGPnR7TlEmfSFtc016MFd+ODJUaz85SCFoTTM7Qk8mIWtndntyfFJOQHMqN2EtCnotUlRAO2h0
QExScUR2RG9XZkhKZU15en1rcEg1RWphenJSTG8pckFUWTVpbnF8TlYkNXRmKllDcl9jJT4yX0g2
Mwp6SWp8WFJAa3h5MnZ0az9YWHpsb1c7KVlvfGdRPSlpWEVGOHk0S05rfUpwUkhhb34tUWBzaFMp
e2dIfGNKQyFaKSkKenA5UHVwRi1odUZsdlgzVlVwVEw9YUF+NGU/cDhKQUx9I2l7RnUyRlE1KEdL
PCliSXF4TXg/Zyt1UXMmcjtPMGc7Cnp3Syhkb2dafjFUYWBQMXxFSzsxfHVlJlY/Vm0zd0FAVXAx
RmVHcyZ8dT17KGYod2Z4e3lIY2J8PG1sNT1MZ3YrQgp6PUU0JDd2Q25UbUt4SC08ZXdoZTtmdFAr
YW85V0FJU093MCpvKzsyYWdLOWIxRjVTe2hkfkVIWmVTZnx5WG04PkEKeih3eiptJDkxaXJVdUhS
WFJSRWx1UVN9NE9aN1EqSytCKks9PnZnZnE7RUdVanhUNCZuIXg+X2hiaEN9b2ZjdzgrCnppfWUk
fTEpPCt3QD0hcyhQIyRkT1E8LVJpcVVxdkFqLWs5X29zS1MmQXtOdWkmaE57KmtYbV5nQzdNbXE7
LW5oVQp6JXdlPDZYbHV8PD8qLUNVJl5NbHY9SnM8KEw9O3AzbXpqfGJIVkV9N1pWZWUzZUNMV2Vf
TUheUHhuOSVqa05ORmwKei1rNzRRZW81eiNRIyZhaDJlVGpjMVJUX2xlJFk9JXE2emtncTclZkFZ
QFIkaEklPGc7K2FEZno8fX1DfUlfe14jCnpKTX1rKlN0QjxJd093WVgrUGN5cCtoeU9hRVVwanBa
QDdqPlVaVktBTktaP3hVMkVfTmF+Z2Upc1glMGEjPEtEYQp6bnNZaW8+LStKaiotXloxZlByNjEj
YnRAdUdIWUJVSnZoaX1oKDVCRGNqZT4jUn56fjA2dkJ0PFVMMWlpQzQxOCYKeik8fWRjUURmTWQz
YElyTTdzcnxfYUcwb0VWN3o9QTlVfFp+dDU+LT5wYGQ8djlBPyl4Y3koIWVUeThUR3NMfn1hCnpI
PmNwU3RGVGBBXipje3EhYH43c0ohYHFgSClVTitqR1I/fjR3d1pBcGYmeiEzKHRqVitxSDdER1BN
JEd2UVVWYAp6U0teTDs0bWt3QiM1ZzFzPWdIVExDRTg2Wj5mSit+eWtSQD9OazF6dT9uY1BANX4z
WTRyM1FzY2gwQHMtcVlARSoKenUtU0h7aU1HLT1pRmg+amh6ITgtI2tRbkxaTXUwJCo0OEBYTC1g
OSZETD4jRUhITXliaiNtWH16cS1Ud040cjlhCnpIRilMe0hTMzxDOGJieEkraWI+TyooWVIwMz1i
dmxTMjVxQl8zVCV5ViQydjVmeWFhfHo/bnxzWH4+KispdGcmQgp6V0UrIU11cm5HSnE+QjVGdkVz
OFR1K0NhQ3skcyhFIXlmYUFwTXFWfTFUT2A0Q0swNnRyb1A/WDQwI2k0eVMoJXkKelc9VnhlJlM/
U1pZUntJNzdkfl5UJCRkVGdLI2o2YEllbUV+Mk5FdF91eGdBZnFSY09OJn1KZV8pZzJfNktpOXQt
CnpeS1ZZbSV1U2BASE1wbEZZWCFLVHtocUFzR2xtY1MqcjBMbk1SY2trQD98R3I/S3V3M0VPYnU/
NFkycz91YDZibwp6SisrcU5FfVdKQEYrZCpYdFlMc1ErXm5zV098RXQlNG0rMGdFMWBiJl5gXiVn
T0Y2SE48RFk0SnRSUzx0Qm4tSVoKeiR7Q1kqPlNJb3F2PkNvJG5CZVlqNTRxLTY5TDcoJmcwfDVn
VmAzOGtfRSFDVllYeWAjVH5gKjAraSVRUTxyKD13CnoyVjdUMk13WHVJVk5VK1d5antwR1VuZ3Vm
c2NOMmBXMHt1dWRqXis4TkhjZEJ8STQ2YyZ2UEg0N29aQGFrb3hQMwp6dmZ1e0FWM2ghWGY4aGVI
I2ttcjVyOW1pZyhnYyVYSzJQNkh4ME4wJFJpailGajFoXnNxcEk0fT9aR3tVXyhIZH0KempCdlha
MUlsJWw8VnRua1E5PiQ7cH5CTmVLaWE0RG1nLWxuSUReS3d3JVIqeVJ0YHREUmJBOHwxN2w+LTFy
RFB6CnpxQ0E4bjdsV19PSmc3TDhaJEwpTk0yXll2TzZVYz8jcCMhMnhrZiE9K3RMRlJwfD9HbHpp
OVZLPlE3O1QhYnN9Owp6KmA8R3A9I2ZFYjBQazRSRWs4JVJyT0d+aE9EKTxiXzR1Uz9IQD5MVXso
QStudz56e0NOVCEocHhBVmVqT2xJdzYKekArM3gyVlRiLSZeNTNqJHZyIWIqSDtoRGYjSCojT1du
WXt2Jk5mI2chWSl7WFVMPWIzYnc5a01wa1JRJDt7P0ViCnphK1g8d2s5X1lsYEsmckZoTGQ7Ri0j
c1dUNWU0cmZ3PXcycitDWEw7ajlfMmI5KUdQTnY/cVQ+e3NCUCVaMyhsSAp6ZjMyWGJpUHV6PUJs
TyV+T0haWHokQks3Mzw2ZWUjWlpCTHcoP31yQitaalJrdn5IKGYjJFJ3dDVNe1hSSEUmblQKel9h
cT9NMHZVMnhYe245UFpheXlsN28rN0lGeGpqN2xydSQtazhYemE7KDBnLV85TkBJWDFoV2N8SlZk
U0hKKXc8CnpGYmB3PCNScklodiQ2OTtPX2NSNyRld09wR3g8OG50eWV0NWc2Wmx5QTlfTV5iU0hl
dXheI2RBKCZVVih6YVVeZgp6VFQlJmtaYCl7JT02ZSlCKHs1RXNURTdUIzZ3VkhQR2l2SVBKfX1n
dFhhdz9TIXlwQlF2P2xTK3kwJXJFZm5wYUkKenZnaSombW5ZS0glb0lkJDZ0I2lWQXhYekBsRDBA
WGBGQ01YKnFfcWw/dl4ofVBCSWo2LTZ3I3BhJGoqQEJmZElOCnotVmFiQEhUa042VzBvM0dUfW87
dEBhRzNUWWs/P2luR01AIV9MeCFSSnd3MW50bTdSZDRMc0RNSyhHTEdgQmQtNwp6dTRhR25gSUxS
aFoyYTM2eVgyI3VAIU1NaDkkQjByZ25HX2pQOHZKeS1zWW8yJlZeeCF3ejYwOSNxclJfO21TNn4K
ejl7KCptKCg2KXAyPCkpQzdTPXRDVVJ6e0B2b0YpS2ZNbmdrX3hkX2ctWHIlcXA5VHQxWjN6M1gy
K25IdSV9VV4lCnopSGR3ZGF8KCNTSyNFRSNINWlQRF8jQkpaST1lfCQ/VmEqXjE8NkJzazVBdCFs
K2FkUlZGKytFTUFHKXJ2ajd1OAp6dGlOOGlTaVR8K1g1SyZoa2AmVVkyQDUkbldWNEE/VVR7M3t5
Mk0rMHBHMHw2N0Z0YjdUQVpKZEB3cTBvOyRTJEUKeiNAUipeI1dzeEE3K14wQUlJO0FTNmlgaloq
QCRBX21ldlVVKUMhYX08JnxCRU0yJFRUMyVeNWk7QFFmSiFPS2ZOCnpPWmpWKEN+S3tNWkprY3lV
dHkoaFhjJiRecD0qQ3xkb3owXz97X3UpaUFqMEdSMG5ZTlZeYlV5IXNifFN3ezZGMQp6NWRwOT5g
SGBRaUFpNGFYMn0oYWJUUG5LSVZwVFo9KVZaYDYpYSo5WTJmWG81Mzg1SUpvR3hNaCRZSTN+cDw/
d1UKeis8Y2tCeG41QTJtU3pCSXRgdnU/UC18P1gmVnQ2cUp5KlFocnpHV2BIKG5JZSpQT2F8aG5v
SVViTTtSJXpnKEcxCnp5RClxVmVBLWM5VXZONTFjVnhNSHpFWWokRFl+U314e3gwLTMwaHdVLVM1
IThKRmJ7PHl6R1Z7O3Z8MTxOaTIwQwp6YnErLVJCNUhuITszZ3pfJHpoM0RxYUl+PGc2WVduJnNi
VX14c2NQclFOMGNvQGo7X14oTil9MjB3VT8wbCg4dUIKekApdkltWXBWZD4pKkw4ci1aRz1eblJW
X2JhTS1jRDMlMW5rYEhwaWJ5dV9VdXVYNkFZSjttKnFGTlJMVXFtKT5yCnpEVHt1V2Z5dDdJVXVq
MGVnamNPP2lnOVNMKXkjc3BBVlZHJi19MWhNUVczeWZRaUFyZ0NtTnRmUGJLYDNWVjMzYQp6eUpE
RkNeVm5eSDIkSGM1VSpeVC1UM1Uke2puYXNGJHxQano1e3lyaT88a1lTNEFPej9WLTlJdy11c1NT
Z2ooUiMKenwwNWdkeGJNPGZhNlV4SFNAPjd9REVNcWk8RnVMPzN5LS1nSDl5b28+SGFZOEc9Z154
eHlOfXZDdlRHcTZSYFBxCnpjaXojNTFRMUtZRWolVDhEcWlmMS1XT1ZadiohUHBobTY7JWBAPFZV
I0w7flVLMXlhQlhCSDc/JVR+VHc3YFRJKAp6NSVYNnwqQytZb2gyZmcpO21iJitpP3czJlJDdD9a
bzckPTJzQkFteXlTeDRTYj56eCpJUz5RWWY0Ym9HZ1g8fjwKelpnS3B3WEhLWk8oQnYma2FObDcr
YEE1Vn1IMTtoTWZBclFsS0NMPmtPbClWQ09FQ25JUDEhYzYle0gheVp6VDtWCnoqOzlCVTxReyZx
TlNBaDdtVXR9JjY7VXtIXmNBcVlKWChXJU8tRWgoJnBeNlNZRT9+QXEjbz9eJnI3d0FKRylLLQp6
VHRvNTdAS0JYJT9yREx+UE5YaCR1ekI7YyF5KHNPM0grITM1di0xQXloUHBlSl48bkppfVVfdFUq
PG1qTnN2P0kKenhCYlI5d2pYVFA7Sz1wTWxtX2c0UUt0PkRkIzQwXmp7RjtVI1E+cUhMNFR+N25t
REJ5ZT1jX0oleitRS2M7e21SCnpoSUhsYUo4I3BmaXMzVWckTi03dzd8IT5pYVo7aGk3K3JFNntx
U2koLSszKz47aGdSU3lFVyFtcWZ0fDxiV1Q1WAp6eTdsMXNSVjYxbXNgeUFCK0xDbnVPWEBOY2d6
SjUrUy1tPD9uTzNrQy10aHkkP3ZyUztBUj9eb1h7I0RTUEZ9KUUKemhnNCNTNXgpI2w/X3Ywemhq
VjEja3cydi1GJXt+IyFgc2tpRWEoakE9Pyk7SEt9OzNXR25uI1NfUFAkMjRENFcoCno3eVl3dFlh
VEJLdCYoO2xjWnVPXjUhcklqWDdMOWpxK2soYm8tPTE3bEI2JmlYKHNJdjdnQkxHaCE+eXFlWHRF
ZQp6Y1UyTTZeeDVPak9TJmRGcFpjYU9saXE2ZSZKUnVlKzByeUA3S1hgJEs9KTZEOSooS2x5fkpt
a2hsYkI2TFI5QHcKeihheHFJX2QqOEpZdUxPUE49RjMjNmNNcng0eX50LSZTJnBeVWJQOGdxM2Iy
ankwcHwkb3pRfGQkNHpjcTNAMHNSCnoqUz9nXklJZzgmb0IlWkkwTi0wV3dhWXN7JW89MWw2Rl9+
TTZBZSRrWHBlRzFreTlyUnp3blkrPGVgcmphWmJvZgp6QE1oS15qfDI4bSY0Q2kqMzApcUZIYXkj
MHBWK2F2SyR6Uio/Qm1rSWQ2dTV4Zygocj5EakJybUxDMU99S0M3P2IKeiFuU0Z5RmR2KXdNQTRF
MTVFPkhAX0FNeVZGY1A2O1pZWVFqeWorajQ7NndaS21ZciE4ZDtjanEjVzVpS08rQiZaCnpAd157
ISkhX1JFSTVoS1U7e28pdHZhWTxuWkQ9eUk1Q2luRlMkdTlPKlh4YD43eWZvOyhzQklyYSozQGwr
TXZpKgp6cTRtJTB3NDx3NiRna0NBNS02QDxLUD0pajhidSspPGIjKkNaJXBnaFckYCRhJDMpd1VT
YkQzQztlWDEoWTReI0YKeiZ0VE1aNUd6Zjsyb2swUGYte2R7SkY4JEh3cj1gekVsQ2swYD9mJn5G
KUVAM0YyJlhkUk47JFdLbE02fTtXM3xmCno0dHwkQyVFSVZPNGY2Jn1VP1ZaPT4ja0t5cWt8cHUw
cHVyYnljeDV8dnJpV2Z2UUZ9XmtQP2dlS3o2LVF3UCtMfQp6VT8kQCpAI0skR151Q2x8NHs7e2VI
WTFQYylycXlBNndNfDYwKkFNQFhANEFIcXw7c05TOCtQeDxTNj9zWkk4KnoKeml8UENDI3xOTno7
Q05rZlg/K2cxKnhUcmE3bDl2OFNoKXtFTW5xPE5hPX5GdUpXekJCelZGck8tb2Z0SUxqdFZiCno5
eSs3TT9RbjFKVT9pPEo/PFRYaTMtNUJYYW5QdSYoOSFTcigzVjlYX0JkZHg4fVRDfnpnM3srN2Rh
QWk4RUVhTwp6PHteJFRjKkdRaXJVSUV2MikocEtaUE42b0ZQO1loWnUyPDNAZT47YHBGYXY7UEE+
QF5zKFFyZjY+WXNuRnMyNFoKejBnZH4hXmhkNH5WY2M2JmNLPWwkVTxyOSFLQTNrUU11P2tzTVFe
dz8qbz5wTWNIM15tTlA8YF4pNVMqX2hrUlA1CnpZMyVBfD89UlFabGkpc0BIQ1hReCpXdkhRISZt
PzVaVzUzaiN0bmVNWmF+UUAmJmR8cFIhJl88bzxxb1ZHZSskTAp6bkM7UnN3SF5sIV9US3lASjso
NiZBRnoxJVMkYCo7ZDBGK19CfkVVZXZeNlk0KzdqXjIwJlM7MTNubUg9IUt6P3EKelFnI3wmUk4r
aCFHYlJFVW5mPz9PM0Z3dCRBQVhTUXFJUkdwdUE7Tl48eDR6ZEM+YCRmXz5AeTloUDV7KCgkKDF6
Cno9cW5saFR5NzV+bSpNJFVNdHRKNEshYTE5TiZSYG9ISEA3RyRFej19a3ppU3lna0dveUpNO0di
Vz9haW85NFVoOQp6cyglKFNgZXt7bllzfmQ1bjk7XnswQiNFZCN+R1k8dzY/QWFHZyRRYENUUzFj
MikzNzYweXVgYWtZcUEhN2ZhVG0Kejl+S0J3Szx5VUktYF56R1V7JTNhaVpOIXwtdFFLKTRndHRk
aXRNQGQoZ25aMEc2WjdkN1QkMl9sKEByVU4jWTduCnpoX2ZPSFQrbDR0KjQzeS1WazgxVD59ZFc5
d1ZzMHVFJHxEYG5PRTFvY2AwVW9EeUVeeD5SQUArbWZKNW8/OyYwQwp6ey1YOE85fnQrRHljVWY5
SkZvYl42MSQlN2lGfClWd2YmeUVHelI2Zmk8Nz80byZVKzBLdmt1M0NGX2ZCZ0pYM1IKel53TFk8
dD1nSTRsTn1+e2JCfUQlemNTbHtIYVdhNihQI25xezxMPENqdnVYSV53PzRGTmlFOzwmM30pTjNu
JmlZCno7JkhfQGlOSEx8K1ZOVENQNVEwRCshY0pec3l4WUw9LWpAdUxuPG58dzFnUnBFNHNKO3k5
MGxRYDFiY2FkKCRebgp6YmtvZ2cofH5tPkw/MklfQnBVSUBBb2VgTm44RlEmN0pEdlVgbU4wOWcx
PygoYS04WlhKSkMlaHN7ITg7dn5nbUoKekV6bW1MJnkwenVyZjFkR2twUUxgZlZAdWckKC07PkJA
RGM+U01DT3VPejRpUU41KiZOJT5IZFI+JWE/KlZuMkNgCnpjeShkRzNwOFNOPXo4UzEqU05hPl90
cU5LKlREbjlBRlBLUkpleiRWPGpDfjZlckE3YiptZ3EpenByelJKPyV6UAp6VW0qMVRvd3J8eEQt
UlVhVihJXnglV0U3Y29qZzchRDFkTHZ7aU5eYCVLKDJ3YWM0eSVsUk9KcGlSU2xQNGRmbkMKeitr
NnlBeVordWhwfTZHWmdUK29BVEVZMEJvUVRjWGJUPk9WSWBgWj5gTjhvKkEzdkJJXyhkRjk1anQ7
Ui1kamNECnpTZC10PiRReTMxMUwjcX1xN29ORmN7WVI+ZWxPZWFjJXRURmZRdE9FWEtOekNoUGBe
fDxxSD88I30+JVR0ZXA+ZQp6QHE/Mm5hV3NTUDtWSE5pPztXanpUe194ZWklLWI0KTZpWnh3S0Ft
UCYrTkJ0b0xPa1pqakhmWlhMfktCb0YpfW8KeiVfYkAtYHk2ZG56OT43JEd8aVQmKStCN0RkI0Ng
PitxMTBvJTJHaCZGLSlmUHt1ZXh1PkJqJVhYOEBjM3pjZEtxCnoxKmw5WipDVVAwTVZWPlcqcGt9
UV9LUSt0TDxYd1NFOUlIOEc8UT5Te2QjY2h0LWBGZDdCdyNzcyZIbHNtcUIpSAp6Qm9eU19geGxf
a3ZvKlVWSVlxPTlQc1RlX1UkWWRMbHFUQz5hcDtBSUxqYXtiYWc/T2Myemt4YlEre0oyMW9TcSQK
ekpXdV9vXn5XZHw2Pj5JYiN0WER1NzdjNl89Y3VkdG9pSkhEdGheNSNYWjtEPThib09YeGkpOzNq
ZjF0MjFYTlF6CnpoMjRjQyo7cSUxeXpIbjhkYFZxU1h7b3RaYipNYXN7LWo3QmJIQD12Q2czOV4/
azAxVGVBUFo4JVM4UHs1TVpaQQp6WUVjZ20mez8yXy1uYHZ3byZffTxwaXluPVUhO04/cURaQnYj
VFo2YEUpbys8RnxiQUY7VzgxMiQoJlI5QXVzTHwKekpBfiZsZXomKUYkZTtMQGdgSz9RcTY5ZSgj
YE1DZVl7fDNCZmwzSk5IRCpgMz42Iy0oanVxO2JPOEcwLUhifShiCnp7aEJtM3lIOXV5cWkwX1B7
eElAcDVZP01EKWFhVll7Tk0yIWYoZkhUcUdtdzA4SmZzdShIe3MwMmJHez1eQSZmSQp6a1VTfTNL
QnxPOSRQfDI2PkRWUkozT0FEK2pke05QJnphY3MyUXVDNlZnaVVUb0IyZFRPcGZYTXdnc2pEN008
Kn4KenEldmwtNzBHPlNoeDlWbklkT0QzMzduSz9MIyZhSDMmT2FEVkpMeCQ/M19XfnAoWXpwX1A8
KEYmdXN4OUlqWmFRCno+dGxLWURNayh0Ozk8QnRlKip1djZvKSFfKEk4KENlZkF0eVlvVz1VPylh
QXBlV2VSWUF0IyEhenp8UFNLPyFkewp6WF92byFSM1A8TWI7Z3VjQ2BrWW5CTnAoX2VpaTF7T1F5
dmk/Y0tuND1UR1VqLT93VENWeytmIXo+ITc1MHopZ2kKelM1az1RZ1M+ViEmNzZ5Pzxpa1orb05R
UGJoPFh8b3YqNWVYVDZSKXFERlkqZDtvNyZyRHxwSjVfUC1KN2M3RTUjCnpMTVRudk8oZyQzbj4o
SmBKYkE+UjxpP0wxYF99NSNVeHFnbztvcDFlPGJsQGV6ZTxWdCtzZ3ErdCgkcWR8OXReKAp6XkxS
Q3pjX1g+UUFgRihlY2hDOGBEYUQ3YDxJTyskPHZUODc3OU9CaHFFTkxSKnR9ZnVtSChiQDVWOGEl
V0xgNj4KenM7Sk45OGtucWtvbi1JflUtZm01WiNFcUwoK0ItTzBCJTUkenVVU2JBRHxkVz5eYTlr
QTxhbXVMSzJkITs3LWJQCnpZKHM0JE5RfFc1citwNl5JeSFtandIR15ISjRFWFMwOGE4TTN0YHA7
dDF6dnFSNEVvXzlXO05BSmgyT04mcGk9YAp6TmdqcWVfTUw9aGYzVnx+a2khV0JmU1Z1UF5AVVZN
em0rfXhPI2ZOKSYhOEt8blJseylNbE42UyRfTDViPEdwMH0KenVZMl42MnRLZCZxdkhLdTc+NzIm
PS0mPyNESi02diNQdF87aUJIIXMjQG85bEU4ei1hPnFKak9SaGFTcXBRQ0tyCnpHTlNpTTBmI09V
JT42d2hzLVhubUQ0SH1xaGxqQjVzYTheT08jZ2pJNFVKLUdYT2xQISZwQkB5ZSlFJn1Wc0c7dgp6
eXl0el9CR1RWMGRwZDJGNUJHaCU5TWhNaUBzWGR0blFZO0khZjkpMkIjZypTQiE5V1I2KzZoPjJ5
KmR7dEdMSHIKek5Zb3JkeEw9Z155OHVId2pffCVMd0V2anpPMmN6bVRhaFFjbkgrYER3aVJhRE8y
SE5vJGloNn5iWDEqbjQkMS09CnpJeE1eMT5tPkNRNHluVHJzPk1oLUF8eihPN35rVnpVcTJ+RG1o
UXI7Zk17U09EYjt2UngtYGJ4anxLS3RVT15RQgp6XiEjOEBeJldKKEFwPFJCP3VFJldAb0w4ckE0
OVBLKjZeTiM3NjdvKSRtRnAyIXF1cHJUfkFYX1J+d2BxQEE8PkMKem42cVg5UXVPfGotbDZybTJT
NUZhTDxBLVQwS1dkQGM3Rz1BJkRjcGxke2E1IXBVV3todV9LcHJ1Yl5ZMWx5M2YhCno9M3pYcj9q
Vyora2kwNmNeIXEzSygoR3gwZXNGYGhYUDdub3tyVE5FVk5NYz4pRUs5eCp7UHRtbFNvWkMhXm9v
awp6byE+O3duIystaWtJSWM1QWQwQE5aQWZKVHZRMD1yLT9wYUAyY0dMZHUqNEAwemp6MVBoRFNP
UEM0MnJtLUBPVnEKemUqVyNVbzNxWTMzKHIzTHRoM3d5eH4yQCpVMUgkSWA+c1VZZDdtVEdCcSFT
YzJyLU8xSFhUdEQpXnNpQVg/Z3F8CnomRnw5YTxJP155WjI2YjBgQjRORVZ9dEA8KWJYZTtCKSFH
YW40Q09KKChwM0RpMj47Q2QmJXlLVFI5bUZZLTlxZwp6SntLcWJ6bChyJDhhd3YmNjZvbnRYOyha
WCQla2s7Y2xBQVpXS2dLSHY8QEBJSz48NUcqdCZObVB8PW8qKkpecD4KekJ1SUBUNmtkPHFoYmVS
e3ZxTTRXQH5kYlBSNTFAN3YjdVJTZlVFXipQeihVWGM8TDk9I1FkfEQkeDJYbSlaeEcqCnordkZi
MXp2eUpfP0hmZztaTzQzVWA7VjV0dV8jVXEwTm5EfXR7Yy0/PDJ6QXEpZzRVPjE/MUxISk9TK0hu
bU1jRwp6N049TXFaNFRwc00tTCFGZldkYU1IMj50M3lpXmpvb3NZLV88QjtEPlBZPlIqcXpnKzxz
KiV+UjFqdD1gP3tWZW8KemRtSW9qa2BhYGpePkl1Jnw4cD5DVFJkazZxQTklNElfTmFLV1QjKXAh
MnVqMzBOfkVBMzs/bVY5PmlMRWtrJm5UCno9ZDRhI2VkYEMlK31lKD5lRUJPI0NYPiRqZSpkWmZL
NzM5JnpUZipAJXZebVl5aGMoeXpyV2JwZil+ajQ9Ym5aKwp6KklJc3RQNWEkfmh+djxIX2s8cUw7
YTZsOTk3RnBIR1g5UlVwWWVgRThtUSF5PTclTngwdFVKWT8yKyZyVTU3fjYKejZEcHllLVkyNjZw
KT1sITNxSkc/eTYjREErdFZ2K3tuLW5DSUQ7Y0YjSW52Xko0YlR2Y09LfE5OdlU2OWwwR2lZCnpR
LXtvRCFEUU87M2QkWFBKYSpCUlZIU0dwLU5VRGZrWUBTKVhiQWRZSEZrQ2A0YWU+fiReN2RmUV40
bXJqdEg/cwp6aVhELU1AJkxmaEZJWldFNkR+ZChKfVZpQj1pczVnPl9EXzlqT0ZoKjhHUilzWHps
NX05ZT9AOSZ3dzNWT3F1PmgKelY/cUduVW1vMlJPezg8PjM7XjhXbStRM1cmOG44VHpidDBxc2Bf
SFlle31zfXE7MjhueUNFeShgZTdWLTBZPkxlCno8VE5nYEc7biZeOXs0Z3pFTGMmMmgwRHElYVZY
enxQcVQhY2tIQ3tSMGhyIXA2M2BhRDFyMyt9c3xXKSg8bjlWNQp6dShNLVdudklBRjs5KTE9Mm82
Mm5DYTx+YU4xfVRXKElYdSZ7R35YMV98Skc2JV4waWc+ens3YDdPeSVWNCtucFEKenhAdWlZTCVH
U3c/TjErYUg0LSVpMENsfWs9I1EoPmp9aHUzaHVgc3ArQk9sIWl+PH1CQ31WMVY5KXtgSV9OSmoq
CnpMWjhqUUhuTkhwRnhnN1NWUmp1PjRuUFNKPUQ+fkU4e1lrMXl6UG9KQn05MCpicUVMT288fH5T
d0dNKW5BPDJuNgp6PWV9dCE3U1RNcHxLUzR8PHtBKlk4SHRrO2VlQTV9eDBxR1RCWmZGZ3cwI0lo
SzlYUllSSy1sZk5CNWpwbTxrM2sKemd8aj0wT2E9ejExUFNzWDRqY1BDN31wWjhJdklKSUleajlt
Mmt9Q2lzJEtrfF5IKlpaeWhkUkdvVyNgZiVtTVc1CnpZc0grQzdvdkwyTGhTQXRMaDZhe21tXytW
RjRwU14wS1dkJXVEN1JpPH5xQjxDdWRKXyooRzt3Tm44RWdXSSt0Tgp6RE8rfVI8SnJ5YSglQ2xe
JVVKUCNvYGlIRSF2bzBleyk+Y15RbmNPb1VweGg/WVA7fnpafSpfSVQqSnZ7Tytqc2EKelA/Jl9o
NmNzbmViWTUjNzJOPUFodHhgM01RR2ZYbDVEYi16N0hiYGZWSzRVQGd6V0BXUUdsanIrRWpSblND
a292CnpWUHd3e3E8dG0wQkptaGFAT303ZyhmTTlfMGBSTWtQcjxzJXBDVm5nTzArLU0jczctNXxB
ciVkKCh9KCo5b1k4dgp6azRPN09YemczM2phbE5XeG9aUkxiLT4xYDdtekkrMlNpP3khX1Q0cEVe
VGsqRUU3Tz91PmppfmZGdWw9ZVZyQ2wKelV7dUg7USZOajEqSSRiPiZzWmVBM3ByMiFYaj5TfjFp
O351bCFSUj90NGk/cEghcnwrbmshQSl4YHszSFY4b0FuCnpJPTFObzB7NnNib3ghfiM+My1MbiU4
UUAxUmApM3dfUEpTXmZVKnVGWkY/YSVSVUpjMm08MWRtMDJ0MD5CXm9xbAp6SHhNZnZDPy1KcjBF
YVQ8P09aeUdYKUVWcSZTe0crS0xJSSg9TVNOOFohMWJgRHpOTzVRKmUrTlhuIy1wXzFPM3wKelpX
ezc4ViojJT8wTm5ESS1NZj9OK3pLfVVhSyNvRWk/SFRyYm1lJk8jd3tKI3YlZVJPKXVrdjRgcTAl
bU8xM2AoCnpmRj1gQi19NUJRcCUmNlIwYVRaSmFyOyt6PV9meWF8ST59d19kKytPJkk7al92K0li
ZVlhJXE3KSRsXnwqbzhWQwp6JDBYcD9wajVDOS1pdj5MIylqIU1VJFojVzdlUTArc01BPTJVeGZT
UFhkKHV7dzNBSCR1NmkzSzA3I0B3b1NmWnsKenRDSCgrc0RrS1JmVkxZVE1sIT8xXiVxczRkRmVP
TVR5aGJEVDAqVEpHbiZNJGtNRU89TCh9RSFGcElTP0VUTk1DCnp4bkk0PG9xS3JNdnQwSUEwRHhW
VFdWUVhXQTYmXzJEcSohQnZTOHtNPkJNOHZleTZ6VG4xbXBHOU5LVE8wYzhqKQp6MkVZWWJkUGFS
YGNvMncxb3Bmb19CdldxY1FtbnJJZUs9KSNnSW8ofnhzfVJjYTV5MS0xVU9sIXVDXyNlIT1+V2cK
ejRLMykzck8/TjVkMmYtKmNiaTFNZTRGdXc5eld1d2VZPisreCtJP1FUbGx+XmI8OGdiM0pjSShF
UCNLLWV4ZX1+Cnp7LWRKX21BMV49RHtjczR3V3t+LVhAJUI1QktgbjVMQHNAPEVHMEFHUkN1amsy
YCRlYUs+d2ptYEYhYmxFMEp1aAp6IVFxflBKPXVwcCVkTnk7OXt9KTteKmlVS3ZSWDV6Xn5OaiFV
Pl5YZGd6e1NKb2M3RCpsK1NNT2woT0Z2eH5SK00Keil1RkY5ZjxZMkt1Yz5PIyZFOGglYF9ffE9g
O2V2eWFNanpZQHNUVFFrcyh7MCg+OHptIV5iZilsKXx6IyltVjFZCno2az9Ycighc0wlSl41I2th
X2lXPV9gflBsaEsySyYocD00OFVzbzZ7Z1F9bXVablghQ2hmYHQjPSNtSVR6flM+RAp6LXFNOT09
S3c7dklJZDBxNTArSiRzR1MyOyZuLXBlJCFETnpAJTg5MEp5bkZDWiRHYkdlRTBUTitfJFNrKHdj
MyUKelUoRjErTHIrc0p5bUB2K05veC1GYXdaYlkoUDA/VERELSMmaEg2I2V5MkFYczA4TipHPGxs
UlBBJFpCMl5vQn5ICnooY2NLcnYhN3B3PXNQNylTdTFWO2FCYXEtX1F5SU10PUEmcHg9ZHpDXnMl
K1BWTEpmbkp1PTZUT35OMyVVKDJLPAp6Njw3ZVEqYjhxKDQpaiVUIyN2V2lnY0lqaTJeKjl5ekUq
UXB5UFROdSV1aG5vdmExSk9gdikqVSpQeEdCcGswQUUKei1qTHBXXnkzKkdGT0hEP3A1cFozZkVQ
SDlDIWdtOzcyVl4tcjZLM0MqaEJLcT0kUTdDRFZNZDx5NSZ1KUM3aVZaCnpTKExgUnk5TEAlIX5w
PWlrWU1UQ1BlRGFQck0lVSk8dUgxN3g2MTNmYEJPMlFPb1opaXtZYlZ4eDVDKTxLYiMpPwp6SHZ4
Zkg2YWM+Wip6VEtDOFR9Unh7bCVycVBre2h1YHw7SGM2WWIkZTkjaEdqIzcyM1V1VVlpaXh3QWAz
ZjdLJE4KemJYfDg0LTUlK1psLXUlPDJqQm1+R3xabXZOMThOb3M0UiNiV0xyUHs+bGVyckBMPXIp
R2Z+NSkwNlB2WHQ/dytzCno8KzEqVG4ocyRYYHhaYEViT0omaTlhfiFtKFokVWBFZ3R8b2d8YUNm
MlJGN04hej11LT9aPSZJMm4tX2FKKlhtPAp6R1BmKl4jWl4lKFRybT8zRF5AfFBUTHt3fGZac0B7
bVJCXkg8TWpRVCpYPjRzQnh4OzlRQUdSc3dPNGdGI3ZwZyYKelhAYiQhaEZtSTZsYjk+WWVOeTMy
NWoyU3o+OWtHS0NVI3d0I2MwXjwkPHEwYiM3I3NwbndVcmBLaV5ONXUjZTBhCnp6dGslKjVOTSVO
MFI9RTljbW5pWmlOemR2Xjs9KXdlNlNAejkrcWIzNVVRUzUmKUtBO0ktOHZSTX1sdWtxTDA7dQp6
bk9UQjgtTCFFYz0pQDhYS2hmPjtGVVEjem9RVU5NWU5jWVp4UUMpMC1zODQheUVpbjhRPmA8ZGtA
JFJwPEZJKTEKelAhYEF7QUYrVX1mJWJHLWg0Szh5WDlFMVlyRFl8azxRMGREU09ETEBCZzZvPlhR
U2Zgdn0xKWJzVVR9cmN3Y0NPCnptUTFPQlpgUi10O090V3VWJUE5dTFsK21eQi0rUmZVfW90TGBt
eXx5UV8pN3ArMG9zM0Uxdnd5bSsqUTNmUFo7KAp6UzJ+ZioxKkZXXjY4OyM2MCFnNGE4N1AqX05a
bWo4X2JWcnE9TEpBd2t1KGsrPSREbSRISTVeKl9UUmYrQ1ROT28KeiRVRHhnI0VzWTJrPT5ZWTYy
VTNEX3k2fSgqdUFMPnZsbztTMitZWiF1dCUtPXR9NE43S3YyVDdkRmo3az5CNk8kCnpNa2Q4bU99
IStmc2UqPGUyQ3JYNzBLZn0tYXhRP34oWUxmTGZSRFVxNFc+XzwwJT0rIzhkUjQ9N3EzVGBoOGVQ
MAp6Q1Z8OCtIWFgmRU4mNSU5cypQMkZjSUUwaTF8XzElPTdIX2RKRFFPcHAoaD1Qc3BVR0JPOzJK
JGVGQllAOEJ+PiEKelR9K1NDME91MiFSOy0lNDZaeGU2QVdMajBvYlkySDdEOHstaHdmcDFjclh6
MFZtUWk5RVNebzgjVU5CJmdqTCVJCnpoZUAjNjBoaWA0by1OfCYlVUI8MU1QRzZ+WWNGd3tuUTBp
KW1jVm83ZypiZ3hCaTFhUj1DbypZZEo5P3dKNnRNIQp6VX4+b2hUMUpSUWR2R0xAMEdEIWtlQiot
diElIW4jPEVpdkdvSmM3YUZkbHVrZT8kQTg4VnEyNVh7WjFJYz0raXoKelR7TGY3Qmt7dFYwUStr
a2Fve3hedztXUG47UTkqdDBqQTd2I0ZEcUg1cGU2OypeSmdyaHV8YU8mISNlMSU5VnEmCno+VCQ0
aEFlPiRJbk9aMFM7UEpBOHokKnAtVTtFMz4oQEZWbGlZQyVocVJEbU9RNDB0aEZ5UXktYjF3SD8l
M1hrfgp6T1ZIWG5qRT9xRWMqUGQ9en1XcVM8ZUQyYUtART9JWit+dG8pLTI8R2YlJEx7UV5jWFpR
UVkmUiN9TiVAYU1EPmIKenV3KyVlNiFZVyghMWYyXmF7YGBPX3l0VXpKfDhGNG10ZyZZWmoyX2Zt
ZSpGJWJrNXVFKnhyTTErbFQtRlotKi12CnpGVFpkSiZPM0ZFPFNAd2c+OylxPXdkXjt5YEN7dC0q
cjZXJF55d3oyVSV6UW5aQ1BLTTFUSGNSOU5kanVhfSZ8YQp6QiVQclRDKFRMWD84UEhrSFo0S0km
ZlNtYlNZJX0mdEt9ajBFM19QaXJYe1ElUHJrRlReeWxaXmRaZ1hjeCh8dTAKejUzITZGVD83Y2RC
WXB3fUZaeEh3b3tmNGk2N3dReUkhVWdvQXR2QmRRSTB1JVVhRH12bHApTjV1SmZCTmc1RWVBCnpy
PUQxa3dJfFAlRnRKbCtZaGBlOUhSZUZhREU1I14jeVJ+RlVjUVpjSXg+MGprRFZ3YTVkciVCVnF6
TDJiZ3d2Kwp6PU5KeWBFQVhrIyNxTzQ2RWNCJnh7Z3pqaDJ9VHJ9MFVBYz17eD1QKURwSms4Qk9j
N01gb3IrPFpIM2IrJHtKaF4KelQyZmh0NkR+ZGxwe2kxSlphZC10ME90elNsSkwqRGE1Wip5YUhR
IyhsZCRoRCZKMjluUy0+aj4wNT9Dbj56QiFsCnp7dmw1TTtUMyh0cX1mTCFPNiVKSXBnPHNseGw9
Mk17I1FhTGIkWW1JMEFYSEdnMDwwTDVBPEQraVNROEYjTEQ/NAp6X191JFdZRV5SOz9rYGp0en02
PVo7TCpGYnFyQSRHYjFxcW9zIz9ud3UmS1l0KXNCbiktWj1Mcl8kc0k0cSF8QD4Kem5peFBkWCNz
JGhwa3ZWWTJhZ1ApWiVAQj9lent0NCNpOW1XYko+YzU3R1FTSUlCRD99QFJSbn11eD8qQmUpMFNm
CnopeDUle2hjWUFtJH1UPjw1NXxHcjFSX3hxZG1xLSRQdlVKV01zVUpaVmpDVz1QfUI8OHhVIXBG
R3RTSnYmY0FkVQp6X0JRTDBmKFdVMT1MdUA/ZikhYVdmZ0xlfTclKCpJTER3SmBQU0p4dlZsPV5A
YkR1JjUzfldldlVeO2FDV2dvO1MKendDWlZ+OCVBdSgjRGFNPklRTlhYO3NuJWxZVjgyY1lCU0Rq
RnprNXBDe25TazBQPismUWhHPjhZaiokR09uQClACnpUKU83djtPezM/SzBaYFBrVUtQYTMwUXtO
JEhWcyEzWkkkWUZEKS1jZ3xqTks4aGpyVSsmZn0wWUF0RzdnZ1ZAPwp6bHBfR0dlTkZfeGVha287
YztjbX1xR29taitQNT8qMDA7JEN7fE5mKyUxY2hjaykpMkVwN3ZZSmpra1EyZXBOPH4Kem1vK1Qt
aVVHaXYqNnA8RGVAYSZLPV4+JSFlKmJJJkQySEhMSyV1cldoKCRBTk01ODRMRURyNEpCX0xwLUBz
b2YmCnoyY3coKUF3ZEVGMUUwUkM0d3R7Smw3NCReR0tnaitsaWNeODg/az9ENDtDITEjK2gkaD48
Q2RfXz8wdXpCdSU8dQp6PTRYKjlYfjQzXkdWSmFjTXFHUm9ycWdfcjg5PU5yaEteMDBsMy1GKzYy
UGI0ZT00VGNsfVV9ZSg9NWA8b3FjXm0KejUhKilNeE5tMCVvO3V2O1dSalVLeHtyPCluMHZQKDc0
RzN4MSthUW40d3RQUyFLJkZ3YENkQXdzdT4rWWM0ZkkwCnp6aH1RP3kxallNT1QmNmNYKEV9Zj8x
UFhGeis/Yz5AdEU+Vlk9UFQtXjl0JVlXKDl1cWg1ZmA1ZH0hfn0mX2laSwp6Qjw/e2hZZXhgT2d2
OX1kbXQjaDgzR3ZFdjs5SSV8PD1Lb1olWURpenZvTEw1dHFSZHV3SVpBY3V3ejNEYGE0SVoKej8h
UElYbHFLQUpvUGd1QXNKJkhrb0E9OV5zUTNBI1BrJEBUI1F+eipVZHN0d0xIQkhGVD9LfTdJZHFk
Xk5eKlVNCnpiPGRXUXd5cHtJMztoNWQpbWRuRl9iQFZzQ2ZUQSsxajNgandCQnVwcD5jemxHNWl4
YnkxNUleUyUjVWI9YzllPQp6NXd2Vj41KFhmQzlBV3tCJnNZa35zbUdxOS1HfXRZWmQ/SmUlVSoq
M2FQdVNFUG8jNipxcV9US3JQYHswSUY3RX4KejchcExHeER5YTMxbzhVfFhIPzYmX2szWGVlTmkr
WTktPHBXUjROZ056VV5VQjVEQlUwRkFIazsoYXFEKkZ2VnhKCnozT3t5bSpQaDw/VmNkUCZWQFJp
VW9PQUpGJXZzVnYzTzhxJjBBNmVRKCE/I0RnN3gqK0JUQmtxTXI4bjlMdihCegp6U0FtWVQ3Q0BS
bnNjVGFnQjZQZyh5V35WJXV5KEY2ZnErLV9uZkZfMzFHTGxtSjxCIXpoa0ckWnpYQDZgdUROTjYK
elgjTFI8Vjl5cTBUQUwmelpnITFeJVRKRXI+P0h9QkQrWllzd3RhM0prTks+PUxKYmUrdiN+K0pi
YnJOcWshSj1UCno0YCgkSk85Xz8wVXM0ODdwYWVOJFRQI0NxSng3Y3NMeipgeSQ2Kio9QnZQYXlC
TzFCfj5IWktINDM1eGE2ekNsPwp6a1JxbSN3UiRic1V9cnl5ODFWNTJJfU9YS2YlRCZ1IyE5KiQ/
MH08ZkhxTmZYPzQ9RTtYKCk1bkRjcmpMMj5RckcKekVUeV5BbDEhdFVaU0lVKCV8fnt+QWkofHF0
JkJVP19fYmFWYmtlaiNYPG1GSHBSdmpKWEwpQGs4aStse05VKD0hCnpaaVl6XklhNn5eU3FSMFkz
WmcqdEVWZ1pXMG9pT053MXlnKHdkS2stPEU3S3Zge0NLJmNDN1pkMjI9ZzFDKE0kaAp6cHlvfFk9
LWwwPTAwNTglR0U/VV9WQ3JkJHUmYUYjQGxBS2skS1hDKkxtKkBRe0FCQHdSfEVqUV56YVZse2tR
Ny0Kenh3TXotMDFoPHwoUFQ8VlUkK25tPi00JkVEZV5JTSVKd3tYdXBjOHMzQSVyTiRzcDRZWmp9
ODA2bHReYlBBYlBnCnpmMyk3cHEjSitWWXpqUjBATlRVQyF5WXV1RVg5U0Z1Uj8oQWFuYERLTThM
PnBGPXI5a1RRamY0MUE3Tmg5clZnbAp6Kkk4RkhQQ0Y5NzJ8STBAeVJmamI2cmEySEc7djA7TmZW
PDw3b2lEcmNwIUBIb25iVCZNbGMtRHNLcV5EPHIxKE4KeiE7WjdWYChjcFFQcDZ9emJ1S3c2Z15P
M21QKmJXQz14OHc5JSlNQ2ZUXmgoTjdJTiF6dio+c0VLYjche2FGUH1iCnptNlZ7T3ZJWjRaKXVe
YWUmdypmeDxQR3F1TDx6RXloYXdSU2pme3xLRmhWOTwxZ1NJJmo4NSFVdiNLWkFKTUtkdwp6PXxl
Yz9Mb1dlQyo4bmc7eiVWPllIZ2UyRkxicz15Q2FYMlFCb2wmSWZWU2RuN3xZalM3RU9sZkJ8KFZf
dTxjKlYKemlEUj4+V0tHRG4wfFROaGQzb2BeYk91TEJ0OXpLZk5hJERqX1UyVFVBVkdmKCh8eVgp
YDhOe2FQM0hfaGRhcjNUCnpmbj81YiFnfStuT0VIQHNlNk5gcTxQI3E0PiNGN2QqQSREfHtgKV43
Tyh0NXYrVz0hJEVzVk08WHZGLXlONGd7bQp6RmtYfl9PYDN9T0R5K0tWTypyeXc2TTdIIzI9JXdg
bnhCcXdgUCl7YURWI3VHJWlpbTtfNFola1dvN31kMm10KV4KejFLVz0jKHoqRjt8RmY1JDgkR1o8
NDJ+bypLJD87ckcyQzA3Nkt2U3EmbGYlKFAyPUdIS0pmIzFKT0xIQDgqWlp1CnpMKXdZNyhQdXdV
a0lPRW9BVWI7ZFR5Vn01PEwmPGJqd2pLKVp4RS1QSHdQITN2bCFYNUVfT2ZEQEp1cD4pbntGWAp6
aEkyb09rTnhyKUBre1VveDBgWGd5WVhnN1ZAOGUpO25FV3VROFN9ZkxXUjczQVNkXjkocSFWTTl5
IWEtY2I0JiUKentnQ2tZY0xUZE9CaVkqfm07VXRten0wOFF1eXxVUTBFZG52PWFUI2EwNUoxPHp2
ekFFRWYqTT0/KGFZV2cqfFAzCnpNMTlOMyUyNyRlVVE8Xyhzd3dwLUV2LU54NmVJQFlSfHxJNzZP
QH43NUN4Qj9RVyVYIShLaj9Da04pOHlgOCVDcgp6UG1DZVZobkw5O2AyRiQtKG1yeSFrSno0OU8w
cyhmSDNBU1hJe1FzfVpITmh4QWNtODFgNm09R3NKO3k8dnliTD8KelN1TTE7VWR8MnJhNih4U204
MmMqX0dxQHhnJXs/fkI+RGpuPFhzfiV3TWtBWj1ZfUNuPiNOSjt0dF4zQm55di02CnpUbFpVei1f
Qj9mZWFYQlRQKilubih1UnRIMC0qN1BoTWxZMnJGIUA4P25mJXBmPylYeSNxaGpWYyp0e25Dbj1q
VQp6cF42ZiRlRF8raz9RQkV1a3ZeNEdYdCQ1Ml5JVVB4Njc8dEt3Nj1ITloqMlZYV3E2dFcwRHA0
O2AwQiZZbXFvTEkKelNVaSF6RDdTR1kwcFhmIUV9X2xIQlBUK2AqPFJBdCVhRlEwYmFzck9xY3Uk
MHBYcTs7PT5IPSRDKnBNR3F5ZnNqCnpfYCNRX3B9eTg5TGklRE9LPHVKfUY3Nz0pZF9vKlZaQGNu
VEcpJThtZUZqV2JadjU4Mnt8Kn1HdUViTV5kVTVqfgp6dzxEVFQrTTkqUnUxP0ktJWBHI05tXzIr
NTM0Yn5FYHNQVWFGcTxIQHI8fmJ7diUpT0BtU2dGdXIxSXxYK2VLTz8KemZyYmh7LXV0RkJFO3kw
YiRUUjhPWjUhV29KbyMjdkV9UHlRcEF7VlFTc29iZCZjUXlgX0AhbTJ0IzNlbTwxfCFOCnoqUF43
MTFmTiVgdXxsRTY0OHVMeFZVXjBUdU9eT3hhRn5FIzVJcTl9NyN0b1o/YSRYQnQ1fi1jdWpsQEZU
KiQ+OAp6YjIqdVpvdyk0QiRyKmtFMDU1SFclP0ooc1ZHcTNxWk9aXzZWUHxLZj9ONS11UFE0Smgj
bWk3YitoMUIhP3BRPGkKeiFZajZFITZwR35eaipVLXEkU2dsZklGR1A5MV5ldzVeOHFqdlhEbyly
OCN9UytAbHNLVlRhJCo1dyZWRFl4eHA3Cno/bHRVIyVJe19qRFkzYyooT2lsUiNJV3pkall5NWBm
eGx1MkppJDZ1Vih1UX1sXl5wbHtlU0EtMTVVMjlJdjsrZgp6bSEwanM3d3V8U3RLS0NgdkpKKTxR
dyMpMTB7SWYpNDx4aU5AQnQ8ZU5GV0klKmtDWmwyODtvbFZndDV1bTJCRFMKenlfZU5XK2s1WWBK
SDZmaUlxeGxWWExlUSU+LSZpZFlmWmcjJVheO2xvS0N7TTxTblopKUc+fXBWdlp0PXNwUDVmCnow
RyFKREJEbV5gKGJQRkc4aHJIJjRUdVo9PmpEQmQ5MDAhYiFsXmR+IW0oWklrUG9pKyZrPkQzQmZA
ck8hU0BIRQp6dlNVWXRgaU4hfEZrRWFOTVVaUjFOJjhDIVozKjskP1AzU01eVGlfaT92O2dLLVBq
Yl5eWEpwcF94dlQpRXpRTjkKemY0ZjsrPE4kJW87JnBHc21pSyU/YHxPfXMhdU9zI2k4SX0hIXBY
eW5JXjdnU1VldHxAaUIzb3BKdmVWJGdkVyNZCno3XjZZbXB3OVNjP2tFWXFwIzZRX2tqQGBSeilr
ZHkqdnArT0I+ZXI+NUs2TFJxI1heNFVtKTImUn5+Qz9Ne24wbAp6SSVYZSNKKD4yYS0hbDxfSUAz
dC1eOXFuI0s9eU5QMFg9dCNlZ144eTAhZ35eYnlPUiloK2NsLUZmcTlSblF2fGsKemtCdGRkRmdg
dG5uWW1kNF96PXt3VUhiMjtsWE1zdTchVnchJjdFWTJ2LXVFLTcpYz5tMVk+OSlrZyl4Yk1XazFv
CnpYcEl+NERgMHJ6K2w2LUtqSiFmKGp9YS1jaUtxTTxHNipvR0FOST5oSn5sfkM7JGYjVjl9bm02
X1hMQm0oZW9tVQp6TU8tUkIoZVBHZkJzXzEtQ3t+bmFpJXcxWUk3X097TFcqVmghVHtSJG9rckFx
NWhpQzUlJnRYcDdOb2xBaT88VCkKejV0Si1TM0g1aVojMl9pV1N1ITd1clpAbV92UVE/TyNkVnUm
YWhsZW1fdnttRXFgfHsjNUI5JGYwUWthbEMlKStxCnpNKnAyMWVWaFFxRFcyUWBIVn17amZQc0t0
NkdjOUI2RkI1REd+aDswX21yVDhCS0ZeUTlJP1NCSSRFMG1mUkRVMAp6Mm1rUVN0YzJNQWx7UVdl
M0tHQCghO2ZDWVExPXx9YzwoQUtTK19gcGxIVCZzPzspcG5rQCgjQXpWfV4+NEVFI0cKelU7R2NX
UEtNRmNKQkZ+fE9GfTtZUGsjP2FkZkc1SClgUXtmPHJwZDRNcFY8QUlISD8wb3J1d282NVZlO2pv
PzcxCnpOWkc5fHdCUjNhaSg+UVFzNHhxSUF4Wjcqa3I9e0Q+QVh0PmZjU2N2enFxdHwwIzI1KCtL
YD0taV5BZWs2OD1KQAp6eG08ej8wRVZqKWBqaVZzQTBycDZBUEJkfGdWQml6XmJIU1RXUEV+dlYy
OzIhc0g4WnsmTnJiPXJUSFF5bnN6RUoKenk5Ni1VamQ8ZGZZI2hBZ2ZFYExULTV1e2x0ZX1ZNFJ9
M3ExKGx1d0M5dDM3LUVvQnBedTwqQiNTKkFBSiVxS3pTCnpkMytvY1ZDfj1IMygje2IzYXU4b0Je
WjUoMGwqdU0kakxfWm91JFFAJFpeP31ab2heRnVMR3dOeDl6IXJrdFEtdAp6ISktOF90dVNYVGxm
Uj9odENhVCVUSmwjVTZoYEhTSSFzUUpzV3QxNSZvTlghIVlwST9tUFAyRTN0K0pNO1FNam0KeipE
cFpNMmpEYy1uOyFyXmBeQG9FSzdWQTUlbTZ+LXFHeilTcGZDVX5feiplWFRzNmg/blFwYC12aTwj
WUF6PSNlCno2cmt3WW9zY3tla1BJZl8jSlQ/cU1PZjQ1ZmNGe3pmSCN9TmcwezFMYz4zWGskalch
JT9oa0I2P2RuQF8reCExcAp6K3xhKGhKflQ4bWgrNihsK2l0X1JBOSlmenFmOzJgQDVkfUBeMTs/
fjcjIT9eQT9rLUdWLWRQYS1YY21eTVZgOUIKekQzV3BfbGo5PHVBOHU8UU82b19wIS17KTA4Z1M0
MDcmNHBeWD89TT8jMDdYaGVOVSRLaUoqfG83fi0kMUF4PCYxCnoqNU49TjJ+QU9YQzMxNHxXVTg8
M09IenslVVl8fDBgWCpLfEdkcWhCRzdTYnNNbGRpc2lmT2wtNysqLU1kQjVWdQp6X0JrIT4oTWJt
JGYyQi1yRVg9TE4+KDs9cWAzO0IhZD8tKHwza1BnVzJQUztKLTZUOV5GMXVKdVhDYEt+VypzY3gK
em9XeyRRZWJjMXZlRk9yRjlDcVhAQXczMykpKEg9JCpia3VlNXYodURMPHVSV2h9dGhlY2opUnYq
Mz07cS10I1k+CnpMVTdXSGhgJHc1KUMrNj0ySEQ/KFNwNDRUWWJmO3BAfjNGTXlOWXVXR31+dz9N
ZEhePE5xUCMwVl8zZXYwPCMyVQp6dDxDNH0kSTAoPEs3ZzdLXmNTOyQ4eDg+U3hHIzBpVXIxYUtw
N1pWeCVFSGcjSWtyPlRfR2dPTC0kJUFUX3VjMSUKeldBQ3hnZ1VJUVpMfCE/NnlELXk/YEBUZEFK
SV5kQChRNzxnOCk9RTFQYWViSlMzOXdDVi1ZQGl7e3ZYTT9mdjVJCnpDIVRsJEFOYXJyQFZEPUtG
UDUlWWgzc1k5NUhtWTQpN181RlF+TlIwLXl1N2tNMWkzWlU0P2dIST12RXhwYnVmdgp6ZXYkVHpo
OygtIzZxJHBLKnZneU1uREV8UDM+P1p1QVM/O1pBNzIhejIrITlOXlRULXkzNEowc2h5KVVEZXZ6
R3gKemVBNDx3QzF0fDEmIUlsZWt0bkFoPlQ+IyVlKmJ6RzU+cjtYaHJ2KXRJMCpZa2hTNTdYaH5i
SEclejM8WU98RXZHCnpOfWBxZmF8Y1JydH5Zfk5Lb0NnRmhWaWJ5Zm4+OWJETVF1aVBXcDMqUVlo
QmlFWXdYVCM3bGBUK2FrZEU4NHVpJQp6YyswTXMhbEh9ezZSQ0ZDUEBuXlZFQEJMJFdTJHo4UiQl
by04N1J3MTZBbmpoO1VGJDchYjRCbWV7Z1ViP2J9YUAKekZtPT9eaUFab3IwRCFAa0MyQVl1X1lk
PjZ6eHBxbU9MU2dfXm1IVklNd0VYVSZ9IS1renpiWUItX348OXk4bytwCnpMeWlQNjFHdT5YO0Ih
d09FJWs/X2Ztdl5TI3ZoK2hMOVNCPktaNWB4OU4hQHBjPXI1WHgtPSV7e0U0MV9rX3BtUwp6QUVL
QWBZdVNIbnw5fFdBTWFybkdZZDxFPWZNY3JsYHYrZGVebXFWMiohP1AmWjxYN3hlZGFUdGZ6TGFL
TX1GfjMKejlPPDZNc2tSPT40aGBWcWYkYlJYWCg3fSVZbCVZXlYrMDs0NlYzaWJAYndOTUsmQW1M
ZX1aTlVaZHEhPi1gcnh0CnpAK3lPSDF+WDdlRzZ6PUpjX0lKXk97ZGh7M2E2YlI/KWNORV9eUkt+
VVE9SUdfUWojUz83VGRiUm81WG16ZmlEJQp6eFEjRHEzcit4bG4zXjdvem94eCt7WG4yPEZTYyNq
VktfdyRwcjY9NF9yTCVLTUBOWUxfKGNscm05bUJHKStvQSQKelR6Rnp2blk8Mm8rfU4lNjAyUzNs
d1BoQXI8Z31xQyg8JDtSRT1fcWNMZXplQmVnPDVtYGlCQWBib2wmMnAoSm0tCnpXVUFAQWcmZTcx
ME5fcWZaWFg1KzFjVzF6dzA+PTIyS31XWWwrPGxWYnFvcmlwZnp5aldILUVMeD9yTXhNTG9UVQp6
XzxDVEBTcTQqam5PcWVLVHBqPyMwVEdQUl9tUD03UHgjZnxnZ0dRSFdlbypyPktZN3JVaW98Pjst
TnNifElCclIKenp6cWR9UHlPLWVkcX40U0NDfllqMGV9VSpxIyV1R2MwP1kkITcqNCM/I2p+QUl1
MUFZZXdYQ1ZLUm82dSozKDNQCnpDJC18QXd7T2tCenh7SlFYX0BIdDlUZmVSSjxXPTwyaXZnWWNQ
SEAzJHRGfVVUXyRNa2NmUncjX2BDUTIxRXgkRgp6SU0rMm8wNU9MMUpEKSorK2dTbipuXkBweEJ8
SkRmOTcxMmE3Yzw9QTNRPVUqR3FINzw0Ul4wS1ZNKFB0ZERhKDUKeiZmWiU8K3ZeMXtmZFN+dmZh
S1RXNWQoZ1k+bU0/Uz5YJW00cUpUOE5nLWUxcHBed0VNQlQ/OTs2dEJINVU7c0ptCnomUFBKZVBR
dnp7WlVUWnFPd1lRN3hwMVpMYSYrWVB1YXUpXyFieiokNTV1Q0IhVkQwRE1JYWFIKmlFdTBLZnV1
KAp6TGQ3TS00MDU/eUUzS1ZvVmpYXi0ta2h8O01VNmt0X09uXiM4VlkpJForc1RSQX1wK29aNylk
Mmw5RWpFSThfKmMKeiRDWShYYytxdlY5aFQ4KUYreDQmQTM9RWI1PTxGMkZ5fTI1eSR8QVJQRmZm
TSlKQ2NWKztTREQ/MDMrbnBGXkgmCnp1eWshMW50RGV0YE5DKUc9YDNhdCpaek1JMyVIPkdAR3Jr
VkA9ZW42fDJgK0N7PmE1WTlRR15EPWtDOFRkOXJJdgp6aj5gKF8telFVbEcyQFMyeSsqbzhFciQ+
cnkre3xyQ2dSMillX3N5JT95Wl5kX152fHpzfnVqRkhoSFd4QGJkM1oKejs0OG03ZyM2TkM1ejUt
UGNPUG9qWSFNI1VzYVk+aEtMMTtFcEYwWVItNjtneE04WkVrOXprMSs0XnU+UU8+a2gtCno+UG8h
al9Id0skb3VrRCFFVyhfanUlc21PcSl5Njd1PDdUOGBTaD5wN21NQytmVmNvTmRtPWlVbFY2MEFz
djZgTAp6NmJwTWxMOWlEUHtgcnElSXpVUGA2UnJhYypyX0gtZzhwK2RRRD1XWStJeEYzR0JHWmtn
cVBjRikpPnlWVyNSZHcKek1kSHJHbHx5RjBkcjEwQlN8Z08wYXk9TFhJRWtsJDAzaEVjcmJNRUw3
KHVeM24zNHI3Yn4ldG0qTmpLSGQ0e0laCnopemt1aU9fZk4xOyQpKjUoKjhAenZTYXtBK1NwO3Ez
MGBOcUN4TW9KbV5nTXgwM1piPjV0PSM7cXE3OSZrX35iTAp6bHE1a25CLX5Ia1YqKjQmUEJzaXFo
WHclcCV0PS19alZwYE1Qb189SnpUZSkxKGYhQnAqOGwoP2BPVSVZMU9SdCkKej8+YHY7PFYtK3J8
SFUrI0dyNCVPJmpnYHFkKXRLND1VKTxZeylHSj5HYWAwckE3V0VvMHN3ZTxlJnlvQCp0VlYrCnpN
QnM3Jnp6YkZgZWk1T1Q2ZSFNSi0lUXFnLTJRPkAhUkFjRW9JaXctREt8UE57VFBgRztuYl9vO2xs
M2NVP3lRUQp6bmRHWCQ/Iz0qT0pFbWJJbyVEZnN1Zj5OeXY8WXdBUipVR3w3fX0yPXooN34wSm5+
dmctQXtKdkI/JlZweX5HcUAKekgkZHhoWXRUZ2xSNHMyJW9xV24/NEthRFlaMWQrOW1ZfXF6NCV6
dHlOdCQxMF9hX1V6X0ZRZDc2ODhzNGxHMW5+Cnp3ZzZDRTJRJVFnZD4qZTR5KDdiRD5GN1pCOzJf
O1l8QUtvbW5fYCZyU0A4SkY2P0FXbUxYZUh5LWIhWGJnJUZ0Sgp6alI5YVcwWUlUbTk9WG9CMDJo
ZWJodCFmXi1QVnwlQ0pLOEQrQDB4Y0Y5dUhATDhQR3VENks9LUFIYnNHNEFocXIKejB8PmAtYGFA
MVM7ezI2VVU2YihBekhRd2pxVHZWRWJ4NUlFZ3ZYQU97aHRHS2A2aitJQG9PdXRaejc7NGZCfko0
CnppNj0rcj1Gb2tPTFBgcDZAKUJPZXJTVXxTRkNPMFVOd2ghdDFZUmRVenpxZH01Qn07djNraUp2
b0hGOzE+aX1qNQp6M14pLWVrSkJ5YjAjQXxzKjN+dElhM0JKYyhuP3ZoezEjb05CKG5lYUt5blh+
QExOUFojZS1paE1wYzxyWHhXc1QKekIkc2J3N0wrM2Bze202JjlxQGFtPHpeWVdFZngoVUoqTmNR
e19lWV4yXjwpaG9EKz5lYD18WUFJJn08M3BNRiVkCnp3WCVydk9iT0BDJXdtaV9eTSp8O0BVXmVM
NFkkM2lVaGFHRV9HNHlqNUl0dU9WYHtpeElIe0JhTngwIzlgWSRERQp6ZnopOT5efDMpWUN4aC1h
aCppTmhlQDFwTEQoVn1OTTxCcU5kX3M2TnBgSWBKUWk5TkAwKVFLOUNhfnJvOTI+KSMKek9CY3hg
PW9pY0ApZ0koQS03Jm15dSFzYU04K0thamhLNV5VU2hKRE5KdjhyVSooOWpxcCZKZ0g7QG1UMGZF
WW1NCnpvTD55fFExMXdAZj5sfVJ1ISt2VXF7TWZlIUVFbiYjUGFQaHRoLWJBQz5sdWt0TWIhRExZ
RkZ0RWNfZzxLR1FYVQp6WCk8NH1KbGReeU9sazZBNmlJNX47bHJaMmluKEc3ZVpkKmAxTClSNCFl
Zj04KGx6MXkydW9TOShyR0V+UG0jeCUKeiNaWD5Gej47T2hpMzdYOGgyfUBATjFgOSM8XnpEd0pi
Z1RFZTlBeE5eQHBzWStLKj8hbFltVlImTEV1T0tzSllMCno9ekAtbyVuQmVkREdmaG1gWSR8Rzs9
KThQNSYteG5JTj1tX24qbCVuTWslcn5PYmNXSE48IW1qPTJ1fEptVW9oWAp6N1paaXdNfUs9ckds
dnNFS3g2PlleRSpITTJ6Jis/ZFBiJSZOVyRGTkg7N2slXiNIdDY8SFFXPzIjfjM5XmJwU24KenU7
SVZ8O35zcU9eS1hYSFZGOUBJVHlZWjNPJD8jPz49OFAqVVhzZ3JfWnZ5Q15ePSleT2FWa0haOS1Q
eHllSSo1Cnpmfkp9V0Y7UiteTnkxLUx3RnBKIVJSbVBfeElwVyp5WX5BITBvUTs/QztTUCZ5TzVj
blIxfDh6IV9TZmM9UEgoNQp6RmhxamMtLW9qO0UkQUI+NnBAMmUtP1VueVh6eCRRKHxiJDdZdSF7
KDRhM0dlJFEtYUQqI3BiflApJUMyJXhSTzgKemtkI2NwWDE1cDkhTGFjNV5BYnhWIUMjaHsxfW04
V0dsUD84LVBNR3NlfjNWUzVKcC12djl2NUtETlJSWmV1ZnFXCnpVYEhWeypSdiUydGlVVypWdVY5
KDdgVDJ+WClNRVk1V18+cUx8WmctXjtRX3sqLUNwZk1hWXZwfE1BTn4/LTRVSAp6Tm0xQXJSY0o1
aXtRJGhxXjJzYzUoY2lJUyN+ekVGZGY8eWwlbXVoXjdJNEQ9O1F1XiFhSXdjMVlVT2ZZUDZGfk0K
emVFPXM8YnM8b2VGSXNqUlIwbSpHdkg3RDR7VEJlQmpRVmNiRWs7YW5Sek92dVJuLTVkSWdRRlIq
dTskJnJaWTFTCnp3UUpzbGlwRT5TSFMkZE48SEVrREZmcV4/Wng2MH5tWns7b2NZaE47VFI4IzFC
ITxhTSs0SSFuWGcjek8mSX1qKQp6ejk8Z3ZBSCg4Qm1INmMmQUhrO0Vtdzs1M0pQMV5gO084YnIm
fnVJZnBqK3tCTHFgRGdfST9VO0FlRW1XJHVFISQKekIpbUQmR2YtU3ZpPXY4M0k5d1N9IUVadFBl
dTNBZDZhcWZhMmNRUiRSSUsxUyVtazBtaHhSQEswYiY5fVcyMG5tCnpOOUhYP1NeRjlBKnA1bX1j
fXhRMjRCT3JYV1YrPCN1bG9zMyl2aDdpekFWa0FtRiNqRCZfbkMjIWktbSMwdF5oTAp6IzFKQC16
e3FfQzRfKDRnUSRQTGdCJTsxe1ZpO1J0dFhxSzw8PkBGT2hSVkJQQ05XTlF6cXY7KTU5YjBYejdF
RXwKekRIMXpuOWpFez5OVHp3ajE5UjFGRnIqakJqPTsrfnxKMDR2eHJ4am5Ne09tSEhtbGdibyZo
aiRXbnxjcFUhSU1vCno9OEw8Z19rOF9oTll3cn05e195ZGstYn5We3khal5lUnlSMCYobjZAaGd1
TFEmMHtaKk5iLUBYek19UW4yZiRqRAp6QTlKLUg1Ql9NfnFYOXJlZyQ+e1FkPzdKYGAyWXxqPlNT
fWNQYCZidnM5diFSV34mUW8jcmp+fDMweWstSk9aOTYKelEzOTtvMFo0UiVPNGp9KGpGb1JpPz5L
M0x3bD0pPj0+MjU9TW5ybio/bWVTO15LR2x9YGA+KlV4dXJSQFlRME04CnpaZF8zSzAoeiFLKFI9
T35yVXJWMVhgI2c0bCNsNGB7ek5jSGQ+PWFEUWErUT87fnhfaGR4YUc+RDUrVkRHPiN1QAp6WDJM
PihlSEZyKi1+YG09MlN+QjJgdT8/PTNILXtPJEFpfE1aZWp3TEx8czkwaD4jeXklclUlcnE1d3gp
YklBK3sKeiE/Xml2Rnlzfj9XO2V1I2RfZVhBRUZzTmE/Nml1PD5jJHsyT0BpN3M+bDE/MW5DVjBv
Zms0MClLPVg/eTUjcj51CnokZH57Q0RaMnU7RXBObTZ4OyZBciMpKWRaQlhqNSliXzsrSmVnRjcz
PXtwOGBPKj09Pzg7O2hAQEZ+Um5xY0IoQQp6M00xX2M1dUt3bUlVSzB8RC1TKEBWUns7X2hIOUE4
KTh3d3JuaUR8JmhhJi17KWo0U0c+Z2dKSz41RSh4PFZEO0UKemFOVENXNEZpRHBKLXF1cGZuZWsq
ZVcjeH05LT9geTlidmwtRDlodF5EdjNmTGk5ZVF5ZWcrVX1CTEUwWUJTM2M2Cnp0dC0rKjJgfihh
M3tWb1NwKUR3RCpvZWpKLXZWMTIoSiFyQCVTZmglN2hQeGZweSZMNDFPcHk5Rl4wYnZAeHhaSQp6
OU9oTzNPMThmYk1fJjhgRSoqRllSITE1Uj9WckhpY1dsSih7YGVVKDErMCp+SzFIeCYzQnQ9SC1a
d0xlek5RbkgKej9DVF5kOFBhOHBCbiFXdWV5ZGBqKlllNClBP1o3T29AUWpfN294MHc4TTFRbzxy
WmkyPXpUSTFQfFN1QG50bWFGCnp6IWlaY0BwSCspRW5WKCtsI1JpM1g0V2tMOzlQNGZXKGczSVE8
T087cHJ0UHpQbXZqNXFCVSs+dkkoZUpMN0YmPAp6c0tjeXZPSklHbEVHckZwY0ZWaiQ5XysjbUM9
OV5DcCtsbm9xbkc7OHpXMEp+QDx4THIxT1EhI25lMUBne3d7M1UKeilRRXx4SWRsLXM9ZUc1dDsh
diVZViMrYDZmbmhHNyZHbk57Q1Bufm84WnBsPiU7ZyhrJSYoUDtmKT12PEgzPyl1CnpxNE9SYUxx
Xzh3U281O3VHWlBIKVpqMWMkUnJMa3Y+S19ic0peZE4+R0lBKko8Xl9PdnxMOFIoMVNvZz01Jml4
Kwp6Xnx5SGQ3QDlfR1pMUkQ8V25vdXJ8OUpvcUJtaWpORDtOTmA9aUl0SDRQWDk1elVDUiN0fUFe
ZnI9JGpyK3VubUwKenZKPk98dyR4S0ohYXB+VCk/K1ViOCNvekhPPVQpYXBCKmR2S2JVallWOXpo
VkUkc08tckBkSSF4RU1RantmfXRYCnpDbExATyp2TEFZb2NIZFpveUlgKE5zUlpqNSFpJjFEKGd9
P3t9ejVOZiRyO3BMWHRuNW1PPDNOeCptbTlINnF0dgp6aXNeKHBMSExtYjM9MFZLbH59PW8tX2lS
R2w3UnlYbzZ2bmUpJGJWT2lOMmc5Ym4/T2xHNntPO2ckRzREdzRlI1UKemRBUn5wVUoxNmMyMUhs
aGhLaDdFR09gQEZOUC0lb1ltakMoVk8zcytYeEA/QnlwdVBoO3U4PXFWelV0IXgxWWp2CnotI0FQ
ZjBRQXJpTWNgYjI3dCQ2clZzZ1NRJk80I2dGeUN4OFRnTjxkeHZ6R1E0Wl99IWokQS0mWlYyWCo8
dURmMwp6aWBVfFpxOUotQjBCfmEoKCpEeEtJOXl9YHE/SCVhZFg2VWcwVGhDX2h5Yjh4Y25xeWll
cXRORkkqM0ghUGNAWTQKemlyV25YZlZZNERtN24rbmt4JE1rP1l7KkI7S0g5I0ghT1JiNW5FUD9T
U2JsSl91VyY0VUlUKWQyI0BqV2s8SjU8Cno9JU5NKXw1RV9+LXoybGVpbj9gb3FofEZSPChfd2xC
XmB9PzZ7bSpVYXEtWmZGKkRZdVUwfHkqakQwT1IyLW15fgp6OVM0NGtybjNfbT07KjttWl9VUjhG
RiMyZCFZUX05VVZzSipDJDR1NkJkdXBLKHMyPFhHRnZwQ3ZxcyskN2JmK3cKelBUTmNLN1JHI1lm
JmEobm5PfDBnVnhzPTglcTtDWVFjNUFidllea2A/eiV9ciQkMD9VYXFFNkJDRUhsd3hBaEBPCnp7
cT0qS0VZI2xIZ0VKU0syQEZPTjxoWiFiNnRMVChffHZYM1RwWH4kbVF3PWJoUCR6KGx6PWVQZmlZ
aFkxTjZ1Nwp6ZjZman1DSChyMGIwKnh3bGVqP2lVdG99bCRHaV9CPmdTO3g1dWtoLSokSkQ0USU8
fTcrQTw8eEJ9UU95MmpnYSoKelZnaiVeWCY0KHNXVlEjVXlpJUNVUnRpbjdGWWxJZ3xJclNVMGJx
TyMoJlFBSjZ+KUx9VHBAZnA+aVNlITBOPDtNCno+UmdQPiUlYlY+ZjR6Z2BvZXgrdzFGcVctYUtp
eEx1S1JaIUFwcURrcnxiWGsyfUJUXjRadzEhU3pMKGRzIz9DZwp6cVZiKlQwfXhAcmE3PEMrMjFM
NkxBPzdCezBQe1Fta2QoIW1RJk5wKHhCZXxNQCsjJDxtfnUwVW83QzVHOVBLQXwKejVGP2x0ejQ1
SVUxRzsqQmN4O3l3RkBweX4/SzQ8eXlOSWQ1OEdQKlBwVGErVj9PVXxWc1Jhe2pnaUBkZEpsNUhh
Cno7a05TI2Rna0lrc2ZHQ1QwKmBzLUtxQjJ3PykpUFFEcFVPb3FXb29iT09aKD9mS2hRcSNmM0Z+
VHZ4UW03WkIyVAp6TF8kcHcpO35gNTlyXnVoYGFTKHxMTE5OQS09QyVIY0NvIXhtOytve3MyNXtT
M09hRXE4IXc7OGd+ZHIpcDZ2OU0Kel8ycUNfPFM5fEFsbEBBPCZsYDgjPkRZR3hnWGVvaUlXRyha
MFJBMlZmbml4NyhzTitrXm98NVNqd1VKRzw2fUE/CnpEPTgkc1B1a3V2SGowUzVpdlhZaW1oelFL
K2pKentQdShxI3VhViZxTlY5WFc3aTElRSluYSpaWWsyPyRXcDBJcAp6XjIlJlhkSGd1fXRJeXch
Km14SWlXJm44T3dfaFJ2MnlhcS0wUX4wPE1uI0p4Xk87VDxNdV8oMFdnXnk0QzZBdkgKei03Z15u
ZldpV30yV188ZjFZJVJJMU9PSW5CTE1pNDlzc3oyJFl3fEYrQmNJfmNwRmhXSkxZU0R7Ym9jc0lF
U3w1CnpKSjgjRlNoTkQ7c3hCQDt7b1hHfHZIaD9ZLUBVZ1M4UE81Xns+Tyk1Y2k4YVk/cV5XOVct
QUBudjtaVjJBP3lfcwp6dkAja0FWelJkYiE8V3RvYjBBVE88SnZRSUVgVXgkc0tUc1lGcDdaS29s
WD1+RWg2ZSkyZG13b3YjVFlZKXxQYXkKekJTfG4qYz0qK0coVkk2MyVwbUUjaDBLNzI/PUFFQG1q
TUp9M1BkbkFJZXwwSE8qcjQkZiZpT2MzSllMSTtLLUM2CnprOExqI20zRlJNLSt7R2o4O0NKMzFv
akt1ZVkpM3lJWH0pbGRyYjcrN3V9QiUwRHhQbFRWWXZ5SD1AfkR4QCFadQp6RVpJbHYjVCR7d0di
WT8pY3xqVVIjfVM/RmhCMzxwVGgkdWI0NE1iPj5Ralh8a08+cylBMCN1RVIoTTdsTjtXVHAKeitO
NEhuZExyQ0I2N21aKDVGfT1EX18/MmQ1PGAxO0F4ezBUSjBhK1gwbD9QKGQ3KztHcGlKKXM8UElu
N2tURXFBCnoxQDllfEY5NHhsdGcxeFRgZThLKk5DNSF1MXUlTE0oWGs3ezNBa2xoOHZneTBkSHsk
YnRGUXtvWn51RHtgJlRMVAp6PHVeMHRydXhWZmNuOyZlbXFmT3Apbll7ZE5FbDVtMG8/UFpPcjlU
JG1tV1dlTHdrRiRfMER5O1p+Rl4hdDckTzsKekRAb2goQmVMME1NfHZAUUBpZ1dwTSYpcHZjQyEt
YGVOcURoNWB7PXhCPz9XWmdfPkRkakZRP1ZOTjJ+TiE4bzdsCnpyPTs/Xz83biRJMndZWSRePXU7
TD89MGx0aSRSVDYlPT9geUZheXBIPXBhK3okZkBIWkdebWJEVj9SSjNXV3RsTAp6bVNNO1o8WlFW
ST4kazIkRUVyNSNzPUxzfThvJkVeQztoZFBJaS0kOEd3QT84WnNfVipPbl9ncTJ0ampIK3AjR3UK
eiFRdUBvcnk5QE1rVT9GXkkyez43Ylohc15tbDRqfDRUd2lvKVhOaUpvOGxvU2w5QXY/eF9mMClt
ZV9Ffj1BfCYlCno8UVMqZ2NUaT9IVHlremVYMHtEeWNSZ3todWtGUj5hV2V6SnJ2SDNTNSo+ZSlF
ST1SR2Btd01hZHBDQkV6e3JDVAp6blp8TzlyczZ6RU1Gb04jaHxyKWcyY3EoWW9nRzRpU1VgeyNR
QTM0WVIwNDhCUCpsdWBHb2ZQWEVvZE9oWDB8JFUKemRGYCltdmhXT2Rva1EhZjd2WV41NlBMazQz
eGI9c2ErZWA0dGVLdG07YGF9e2Z9dnFRelZ6XmE7aGk3PEh+UVM5Cno/KFY0ejd5XnhhUXt4ekZJ
U3V6dkZFTlhfV3xFU0dKPUpTYyhtb1QrMHM3LXE8KVRGbSRTPCNeXlJ6K3B2fHA4bQp6emw+bUNC
fj8lREdmMHNeY299ZTZGbUZLVFEwMT88PWlFNW1iT3peSUV7Z3NGIVhEPThPSCZOYkExdWIlOXZp
WSYKei0rfWRhWT1iRWx6OVFVZmNiJjk5WXlHbj9vPCtkcG0tfT1JQUF8e0VfZUkxKTZRYmFaMmJu
cS1aR14zQ0RNQUdKCno1Z3ppd0E7Nkc0UjheOG9IOG5QOyE4Tn0oRyVDYDw0SDx4fGNBYntteWBV
ZH1kcV8tOUJRaTgxX1JIbzs+RT1kUQp6KTFCSHtRQjQzUUQ/PkFXcWA5bl4+TnQ0KyNLflglTGl1
VTZGekM3fTE4KjFydG9fT301KH5aUjB9eFlycUhediMKejRAeHYkPXZKb1U4MDF7KW9KPmVXeTl+
LWFIRj5VRk9lOWw7eVowaFFHYHAoTWhWT3A0NyoyO2xSMkFCcz1+JU1xCno5K1l1dEQxTGRiVztx
fWRAfWN8dUtKK3ZsSyomRiolTVh3QE4xNj8lX0ZjbUJqfispc1NxPmdQQCskSm5ZTFZiPAp6KW9K
U3hFIUAkel5KRUlOQk43WkdqKV9yZHZjNnh4NnE2RilIX1UlY1FuV3dAKzVEdnFFOHhuYFJhY3Ul
Jn47YD4KemcwfEl2P3JIPVlOa1hrO1ZAZ3BaM3c3TVB1bHYyckc3SSZiXnBzZGlHQyQ8V0tNXnZe
YFVkLVB7T2w9b14+dmRlCno1RU5eflheVWUyeGplamZIVW52aypKSmZ2Y091aG5qMU59NSFwMTR4
Sj9IdytkN0BpJTdTXlVEbFN2VnRKViRJfAp6TFlNPVI2b1J2QTlVTGBsQSUqO01te0VlKDshTSZE
emg9KEtadTtvSjJtIXpabkUqeHRmWW15biltO1c8QyZLYkUKem4tVDJwTHU3aFpIWmgyMG1UZylC
Q3otfWxHP3JpamFJPSFaREliRkxkU0stMkZKQDJ1e0M7SWBVZm15V0h3T1QkCnpfX3dEdDBBVHZo
e21xT0B5MDN4cns/RHxfVzNJVWNqN2JAaTtjITRvYklNbld3SjJ3WWFvQFBVVitnczIjMn03Rwp6
ekZDRzBtcX1DPVcpKU9vYEt8OUdkZCM3fVliXzVwQT5mQHgkRWxzQHpqI0N6SGVJU1BZYU9se2VE
O3cmSUNYM2cKekBCWXZ8X3xtVnFFMytULWZyYzBmRXRXfWM3dU1EIXE1XyYxSks2U0VTNWJtTEt2
Xk1CKHtsfSlmU2F2JDxYNl9CCnp1eDJxV1ZxMDhqdVFxcG9BJnM2d2xWNFNLVXk5ZVIkVjMpTU5s
eHVwMXc1V3ZUeGU7PW5HMHR6SFpkcyppTEItcgp6KzZQPkNXXlcjJU1OODU2KjFKKHY7MW9SQHVl
MkdKRE1GYHJrfTJzNCRmM1Boe0Z1VUhyeSZKcjFPdGRrZW1GfjQKekEtIT57eFRoKSokOFZXVl5H
aitgN2xBT1g8IzZ2SFYqWGhldnJSfl5VOUoldWpSenp3OC1ya3F7PGQhVj9VMXw9CnpkYk1tcjEy
UVl9PkFoJXpBQXBDPTN7Q25sR1VKMFphcWJzXjMlXlBSZmE/a2MtWUBgSV4wX31xb0lsTjNmWlg/
QQp6amAyJmZSXzdNXiV7PyU8SndvV2tXRSEoUHN0V3VzZ00jUTE2b24tIzFDaFpkYDEoKTVZXyNL
dFVuQGdac2ExM20KekRxZ2UtT1Npcll3bHZtXio5cmh+ZSEkRlY3biU8fjFOVjQ7ZH56Xmtucjxi
biE3flBiYktnc0YmeEc7cVhDSnxxCnpjbDx4fT8pMUVVdXxIeVZiTzU2KlhHSTtzeWlqMCprU0Qq
RlghcHg2JWU0eTUleG8wWkg2bysxN3pXaTlFdHUyUQp6Mzg8dE9iZSQlS0AqREhtZi0yUDQxTyMh
Um1vQiQme3I4ajNLfmk2WEI8VDZIZGxDbmFBSTc7MEIoJVlSU1E9aXgKejNCUHs2MWlya0wkaCts
TXRnZytgWEktYjxjKSMzVnp2S0o+eHwpV0JzVFQpOWhfYzx0QEpaNzRacDghJCE/a0R3CnpZNEVp
SzAwSCYxYm9UfD97WmJ2WXFIelpTSyZYcSV6a25hNjkxQWlSSF9+YXhrMWw/VDxeOFo8Q3AwdyFV
dVZDUAp6JXE1QkRBTFNlQ2srWX5vPmAkeUwoSSh2fTBIQU4mZ0pFSTtoUGxvaWZ6djx3RWFaWTlV
WDBmcjNBa1laUTJZTnIKekFAU2YkWlVuKyp6WHI5JktQcjM5NGdGJjxiYEp4WVdINEUrVmt7TU9B
aSM3O0c+anlHaCkocmt3Jl51K3BWK1RgCnp4JiZMK3FgQERJcD0hbWdTaUlwYUZxc3s9SXtRQylH
bH53YnowRjY2M0F+RE0oNXVgR2JAQX16VW1GaFpJRXhwNQp6Y003I2ola2goZ3lXcTtvcWp2KUhf
VTNtX1ZWb0dpJXV0YEU9QE1ASWc4bCR5c1YzMko2RjJvTnR2fl4zZjFBQDQKeipVfkE0QHAyaGAm
XmhJPEFrPGY3X2c/YC1hRSgzJiRpNStOK3pNaU9BKT5eR19NT0R1eSQzTjk3PXQ2enRXRE5fCno/
MWZAWEo2NktEWSFqOWMwRilfWColc1FeY3t9RzA7T3hPSihTVERjIXhld3JiazljJD05c0FGbEt+
KXglcTYjdwp6OEwkK3dQKjZ3bilsKk09RWMqYVMwbm9rIXF8SWFENVhgd1kwKVUxRD5uSEpFTG9p
LSVNO301SClBWH0pJVFwNkYKelJTKkU9SDxaekROMSVga3hkQURtViZ7Kz42U0s3TD02WkpwUEpS
RUF4UzBXPEApTiVrNDFqOV48UmwqQChAI3xLCno1ZGNpaiFQd2pkeFk4aEhXWEw3fTFBeTVpWVRX
dDhAeFRjbGx3YyhMYU8oSnJAY0Ywa0ZZaFZBS2ZFJj1LRHJLZAp6PitlU08lRypUZXB6OHd3YVZM
bCMmWXxuPFpWYUBYQXA2fWZnTWgqV21fRzZpX2BgIVE7b1I5VmVFOGxFO31pRWkKemdqNmhtenNx
TDhXTEYjQSUjZUU1YitsaWxfaUMxJGVzU3J2d3NLP2F0XzxYcEBNamczaVBHTz4hSVMwKjkmamJR
Cnp8TUNMKjdpOU5jJkZ7X29vU2dHK1BQMj1lXz5zTzU/QXYpOWR0Vyg8X0xjIVVmMXQ0MWorYDwo
bkxqMm1fNHVYegp6eG9EWUwwbXNfZ1ZRP0M7cHxNREc9IXhwYHxGdGAhJXhPRyNWZ010OVpaVj09
cXk5cDNsTEdLZkJocjZWdUg1NzIKeihJXyQtSHpCPXhJaG4wTmpwaXAle3Y8I1VFeGkzZl8lM3pJ
NE87VC0kWm5gZC0xbm53JTZeMmUhfFI4ZSpNQlR0Cnp7fTJnO1BgMGlYV296cmlgMCEqQ3BydjtU
bGJuUCEqUnZ+ZDxfRGl1X1Vjc0A8SU0jQyNVSnwoMGY2bE1HaXBnYgp6a3tzXmlZc1BXZG1MNUAy
Ql40Q1ZZUFNtelVAZ0ZIeEE8Ul5qcz5gel9HN1p8RVooc0lrM2V3MHRxNVFLTD1pbEcKenYrKHx4
SCpOJjNOQ2RCUjI/JmtkQmpgQiFEbmAxX1gqV3NUdEljampmQlBfZ19xfl9KVCo0cGplZztjNnlw
aTU8CnpDK3RVeE0mS1VsJDlWZmkxYnJTfCpLZUkqc2YkSnZiaUpifT9nIXZ7MXlfQyVZNSNnU3Yk
QjxKbSF0JXBnPWxvTAp6Y0BScXlKUy0lalNLJnhaK0dtMlBwI0hYWTQ3JjRIVUszdEBkVHdedSNL
NnBgKk4wT18mU1RGQGhqSU1pOEJDMSUKek1GNUQwN3BJZGd5PVprMkdLJHphNyREc2MhVHdXT0k2
U1pwMSQ2eiNOa2YrdXhVaDBAZmpxdUZYJGtQeXcqS0J9Cnp2XkVXRSV1WjV8TmVDYCF7SkJ2P2RK
ZkNPVEUqJGNraEE8MnhHRVklVTVET1c2RGBEbWdpdjVpU3UycWw1NGBPPwp6MHN0KWU0JipHVTd1
VkR2RFVDQFh3PyE4bG93dWlKNVdiO3RTXkYjWm99Jn5NPis0WGxQNmh5VmQ4ejwjcmdmQVEKekRn
bzc4SHZ6emQzOy1OMjxTNCsrMkxTbVd7PFNheEIwU2tRNT50b1NEQGled3tXNWg4MDI1T3tSdS1o
ZkxlYWxYCnopQkZxcTNLT3V7WjNzXmRxVVllVlNoKit6X3gpU0JzRUF2PD1ebTZVVVc+bUIwT0ZU
bmE8Qn4tND9QZGglJE9MYwp6cTBoIyQ1KHc7bnt5NFYoO1M0dDF3Z0x+bHhgV3Q+SFN1fiZpVyQm
eE4lI1N6bjllclZJa14mVGVmZTVRWVc7JDsKek5WKVZpcj1sOSE2KldxJmV+T1R2dzImfF9QflY+
X2dzMGM7Un5aZ1dlbDV7b3V5OVIrPSZXUzUyJG5aV3cobyhMCno0YGM4NDE4QmUwMyRJc0xnNXFv
V3JSaTlfc3M+OXApV2U9PkxRbUh2T3BGZWJyVnJwO1laX2otYTB8K30reVBHewp6ZkB4dzd3ZEw3
cHNMbH07cUFIbE9AWHIkVUtZd2F+T2krMXBHeHZSemxuellkVSF4ZmtuVXwzc1ZnUDJGY0NZaFIK
ei13SD16Zy04QGooRD0kZE9aRXd7S25GKnM7TyopYyZ1cylzSWdOR2tPUWp8YjNDdUIpXzc3bCt3
Nz5CNT52fDFgCnppQTdYeHM2IT5PZk4mdEo5Rk4/Pmp2M0NgT0ppYittTmVWQkR7JUhsX2JPamhp
LU44ejd2UDJnSzt9T19JdXtCPwp6VTIqeSFsaVBlTFY4RiNiaEg8aWdgaUYkKEgmJkZ2b2JEbkpr
UTR4cndaOHhhcDBpSCR1Vj8zVE5RO2YoYChMamAKeldteUpsKjFhN2liKn4yaSRkYGhmZDJxI0dI
P2ZVcUZlb0FjTilLT2c5NlhjbWNsWkFwN2NXaVdeWT8hZGZBQHZ8CnpmdERNZj4/MGJhbj4pfUFf
WWZfdGZYK3sjNCtBRGUySTNJe04lSXZyR1A4O1AqQ1JjQFAhM1VFJmkrcCtjPTNJdQp6NnpVWTh6
MmYmMEtEVGglYUg1JEk2WiFXYmpVUlQ7cVdRIUh5IVFNYTlOJXt1TGohWmQ+Zj1McVdmKU9oUmZ2
XmEKem0hZldFNFlDV2VOTz9yeUN1SGRGP1o1IzJNWjwxJTRjUEdYdX5qSSh7WExAaiNzbzEpcDVr
MHIkc212bUhFbnUmCnorSn5PamFybjQmKkNmYTgqfnVtO3Q8PVE3SlpFQ35CQkh+VyNOYndiLUFK
SE51Pks5Tz1NLXI5OUdiSGFOQ0VgOwp6dUNXJlBiUHZIbEZkfC1lUnBjWVB6RG51T2ZRMFl5WFEk
Znc7VUFsVSFFQjBPSjliQy1MI1c8Uml8VGJYMm5RcFkKejNCVnloRX5oYCtHQWJKM05PUWZYe2Ij
PWFRRHRTX29CLWZffDA3NEZOTmtmcVk1TlZtNkh1QEx1N2VLMyp3cmcxCnowSilzN0ZSR0xVLWVn
RSUwQmpPaW9vU2VFSkJPYSp1aSgzMXNLYl5HMSpsbHtSc3cpRWN6cG5YSCF9aj5OcHpsbQp6alpB
P0hxKXxlMFdJKHhyY0JjKVUmMypYSXtvQ1A0UHMyazhVcW5TYzFDU2VQITRYRlRKbWFJNz8oYXJt
JlllSy0KejZOTyU5NGp9T3tRQC0/cVYmb0EzKndadU9EQGEtKFUqOFoqUDRpPDUyPXJCSGBrMm1x
UUxuOXpoM0g/NCZIdF8jCnpKO3Uhfmg8VDU5X1RrX3cyZUUoMEwwbWwzQkQ2akdeZjsjfUd1TUc3
Pip+P0NaWlRjVVFka0hxY3ItUS1oPj4mUAp6VzA+VElFMWoyIW5HSXVqKyZ9PVo5TkFrd0sqfU8y
OUR3NlFvZGZpcCNaQF98RCRUXzNARXBibFhUX2pkU0BYLXMKekM1RE5fcGdIcFJOKFp9NzV4ZVhj
YDJlRSZrQislYDxESWEkR0s0PU1lIUM+eVpQMC1NMH1rME0/JmVNZSMtXyNSCnooPD0oZTFnTW1V
LUt3alRLNCZDPl9mNT1WcUhTUWxAVWFPJTA4cTJCN0IlWkAxT3JlYlFYSUxNbkRwWnUwUlhTWgp6
bX5VampjakRWVEEzKkkycSVSRz1JUkw9JT91U3AmS1dsXnlCJHw5RylMKlVvUSspITJuZytMOXd6
YlBrVUA2UmwKei1EPVJaS21XXlZuPl5DV0FjYit9UGZ5QE9aPylpS3w1JF5IbTNQMDYzP1Awdisr
KTR5SVExR1BocjFGJmdVcld4CnojXjVXeitsUUIqWXI8UktfZU9tRTReUHB7QT9UZnVBK0hCQjFI
Rzc9NyElPGZXeDQydE90bTFCZkkjKCM2WXlvMQp6NSZmQFJCeClUbHJ8QjFMYGd2SmxQdHBCMWxA
bC0ocXF4aigkVD9qa18lMXRRKHszfiFKQlFzYj8hbUYkTT17KHgKenFpOGM4KShUV0NGMiVCcU9I
ajlaNXdpMk0jUUJHVjtXKTE3P3VmQGJpfmdRZ2oxRzJVWDJ5QEZqO0A0Izt8RjBqCnokU3Q/SG07
YkM3PVBuYExQSiZFfktwcEtaI1V5UzFxRj99JDZiQXRNXkVVNUMjNkslb21LZHlKeDE7aip4NipV
Nwp6RnMxYUdVT1Fkdzk/QmJrWnxZbi0hbX1SbklEMnQ5dmdedTRnQSl9anhiQT0lJkZJQm1nbmMx
fVQ+fDxPNGlOeTwKelpDciMhM0lNMyh6JnRqc3Q4V18zI0F2TUMmZkdnWjs1KyY0ZHo3IUswQn5K
PjBkNSFvcX1fSmtiRU5JPmsjYUwtCno0WCtCbG1oVWUrTkRNUXh6fGdTVlI+PV49O3h9ITtsLX4l
T1MmRXdnM0p9PVJvV3VaKkJZV1ppOXtTRUlsJmBvRwp6PCZCJFJjLTtVJXhnPlBzTXx6cT9YZlFC
MEV0aE82enJmUjZnV2UjMV5QUSpBLVJae0hldGtkZ2ByeE9PZG13TG8KejxHcXZQV0NqYyUjTFhU
T3M2WFB1MTZBPEZCaDdaViY/M3lPc3pyS0h1fj4tbiZ1dzhMT2YxTmBUeUZxPThsUFN4Cno9fGct
OEVDV2FsQjlpdCE1dkpud1JXOWdaWk5HQ3JfUD8rajdmeEo0TmE+R2FDUzhAND1SbWBuI2FPemow
YVhuWgp6XmNyalh1Oz5YTz9CaiZucGliajRBUkd4fFleV2MtVUNvJUM4T05XRkVRZXxCTWAxQ0I8
NiR7VDl1eU4odzV9JVAKenZBRHA/Mz9RIWtkRFBoS2cjKk1DIWxHZFNmN2lpSFI9Mz1kcjBHK0h7
P3UjNWc2I2BuOyFHUXZlPDhWbC18fWk/Cnopbz82N3N5aTE2VntPQzQ0Jjh6WUJwe3ZnbTtxcSVy
ZHJna3VOR2opbl43NUstYkM4SnBJRDhCdTM1fUdHfmhlKwp6em9gSj1udjtRVW9DKXllQDg0JH1w
MXdDJG8pNkxBRkI7VzMwYn13Z2FKQlktWGI1NENBNjFvM3tQPF9AI3V0OGcKejNFckBvJXRrezMw
Qnx+SWkwRUdMX1RTPlomKnRGYD98Y1ZKOG56MWhjS3U8JVJHVWUzNSNveCR7KzhuK3dVLWZHCnp5
PUM/Xko2Y2I1O1BMeGtMPW0wZUx4KjJRUEVuT3w/ZDN9dl9XOXIqOSl4I2RMVWFtX3ZqQVllTG9v
Mypkd00hQAp6dDgzeE4lRE1idT5kZ3MjR1MxYWo7VSZHNlghb1pPZSUpaHtwdShseEpWa2VRNHJo
O14hVCNyVjteMjxHNyQqdUkKelE5U3VmXkk2K0J0WCspOF80VVhwJW9mN05fZmJqfXg9VVY/JTJa
PGElbWxqSUZKTn1FNk1zRDFpMEYhcyEpZ3g0Cnoxek03blZWKV4kZUh8RllSTnh8RDRVNy1MLUZp
d0JXVlpQOyVkMWViV317e3sldW9BR2U5WWxsfEpXNDkyPntyXgp6N2JWLWhibl9DVm0qdERjVmxg
UHo4MUVnJldiY0dMe1RJNTNmT2FuPjApUX47SGBTbmlMcDVFV3U7S3RUaWxNVXkKemtNK2FubGRE
JndHaV51eD1ZT0p4MFhZSjI2OVR8e2ZBJDVfeHR7eEQxekI8dk07LXphbHs3enFvRC1sZHZle1hM
CnoyMWlpNHhFTD99WlhOI2t7NllOaylLYlhuJU9GZXVsP35YXigkSUdCMj0xdmtoY0VyLWR5IXZ2
YCF5NS1VQ1UrXgp6SnB8aU56bFFPaU9XSTxUfEI8NXRGRm0jc0o2fitaZHE0Q0plQ2IhZXIrNEhq
TEJnUihMaHFaSkFgbG9OaXN7JDEKemw1KTNvOGF3YDYqb2t6VyZZV0NpKD9WcHckSkh8JU1KPVVC
Xz5uRm5eYjBATV4jfDFYRn5zeSpoaDQwa3ZDYllHCnplUihmbGB7TjV9SjVSUX5NXjU3OHVqQ2NH
UF93KVdEe2ZndjA4aj5wJU9OeWVHYGk0eigpOXV+JXp3fUNeUHNRMAp6Nj1NVkVAeHFCcF8/Q1Zh
Vypxfk5eeDlub2dKaThRc3BJNCU7cTtzQlpoQE92Z159cUEtI0ckK2ZgJiNFRT9wQHsKejBDWWBm
UXV6WUozdUhSREl8ZVlfKzdFKzg0KFhMfFNxZik8cmVGWWtLY3xQPzgwe0w8RCpJQXRmOEgxWG1m
a2BECnp1JnpufjBCX3RiZH1gVzwhXml2TmtSVFRqT304RUpIJDl8QTBkNyhOYztDPDhWbWpIckx5
UyRURlghbylhaUxlYwp6MDd2QTQzPWFIO2hlbENla2NQKHx0YiUjdzIlYyVLI1k+JHZhTX5vJXc4
Ti18MWcoVkohNUdyb3BVMWE4Kk43JEMKei1VWHxKZGpNWU5zSVYoc255SH5xYmVgRlJ4eWQwcG1h
TSRUJEtqcHo7bkR3bzU8PiZDeGJPSyNhbShBXnVpT3VYCnoxXjVHKTlUfGImSnVQeShIRFQ3WXQk
M25RU096ZzhOc3VlUTBHWSlsdl9AXlhkSF9oO2w3dn0pUDBkYj5geXZ1ZQp6Z01+QnczQHIye0RB
NzV4P0dLO0NZZm5DbDxHVClIcTw9PGJ4SmIofHByb2M0JVFyN1lKeUhGPDsjQChBQmpKYiQKeiE3
WCUrN3JnJHVwJlhHJjJxU35OODA8V085cF8zZ1F+UiRsOF5ZUUlya0dDQ15NNSNPV3t+NzJBcWl8
aVdlTUMxCnp4Y0w7a3FYUHMwUmBEOVFiRXthbDVqaSFyTilBQXI/azc5YFJRY3kpOCMjRml7KXQp
ZnpMXnc1PCptekwmdjElTQp6SCRGNmooZTgwTXVmKFhrb2s8YGRPY2M2U3Q4VDRCUmIjUjY3d340
WVRYMyN2N19EdCVCREJkbkFxSjJQME19ZykKemFLaXc9e3g1Jm5YeFZ3e3NBMU5OPSpsfFRqdDs0
JXpEaXZIM2tDbzJjPERKR0R6blhhQExtSTQjJGlzPCNnaThzCnphQTI/IThJR3U2MC1QTFZHO3Vg
MDBaKDVDSzZsJEYtdF9MamZpMUhQdVJqM0RteHNJajR6YH5gJi1udm5tLSohOwp6NjYhZ1VEUkJO
IUdhbWN5Yn1VfEFMOGliaShzV0dRZ0hSJl57dXd2ZmVkQzFneyZAQF8/aGdSZUZkeTZoPjRpbHwK
eiVnWXJac2xWS31wP3A2IVUkfmAoZDwyUlUoN0BfazIhfDJGdHJ1fjBgITRLej9xIyVgSmBaa3Uj
UUtodlhDflM5CnppJnhoditQKWtQeC1SVStSfk5EVmRadD0maUwtWVJ1WjI+TXBMNXxeYylZV2Q9
eHNUTTlUJjFPU29tP18xbXF8fAp6K19RZmYxXl51WjdgUVBeMEsrRV4pNHg4ZzIjZmA9WDNKSiZt
WHNoSTNNQn03RGdhPWk0cyVQZ0xsK1JgKUxyJT0KejxoWmN0akA4MStIX3wmdmpBY2VrPVVxdGlz
fHRiN1c5PUwyPW8lSVomfTgtPyhTRytJPSkjMDIzPTQtZDRUPWZTCnpecE1eSnhjTENVYG85T05a
STVwNkc3TzkoTXZGcXEmeWw8Uz0kd0U7X0BuWTRYRmc+KTI+P0RaaDJvc0JLeVdVegp6ZTVRUX5Q
TEckdFhfc1VXRmN9MGJpb2xIOWkjemVMY2goYGpiZHxFdVVvU19YZWx2K0tMY0pHYFY3VCp+TkRv
eVAKejRCdTBXJjVDRCN7dnZrMmF0Ui1+X3J2KTNlTHNPNTdMPD1BNSk4cFJINyRUM0RuP3JBb3Fw
UXRmP0UxKGFYT0p2CnpSMHMjQk07bVV5P1lUbmt6VzdORjtsWUtGY0xXeT85bW4/SHt0MExIOUw2
diRYMHc4UzR6Zjs0WWY3K1U+azJHaAp6UmczKFJlNCp2VHApZUExLXNMTkduUDx1PzF8KW4+OT5p
KmZqVHNUS2sySkNleHViS18+QW0+RmFXbEZ5S097MiUKekV3THhqKjRHPz11fCF9SHF2KG1ZZG5k
KiphUG8rcFZffWUhZ2UtT2tZUFc1TEo+NFozK2RfN34+YSNJZyUkVnNPCnohUlZPfEFARSVCbnAw
RFY7YEkmYUJoNWNjKlVLYSZvcDFgPHBTUEc4P1FYIzRII2VaTEVLQWV7YTA4UmttTzw+Pgp6KWRv
WFI5dEAmWTd5KkYwP0tBPHZDelU7QHNsZUEmNWA0bnwhMVNsaUVYUCtMOVdAUzNUSXVjflIjeXFS
XyMmJEYKejE0SnxjO0o8KGBmPUJRNXB0aDk5T1ZhYHslOT83PUtyUXg8KWAxKFAqZXNHPEcoc2tV
IXhZODtfb2dVVHVWKDtJCnpYNSF0RCU/U1ZPMWlIQGMkOVI3JDxuV0FxPjl9SWg8TSFnR1U7UTtF
TjQ8RHA9TXp9LU10MEU3S3ZpV3l1T0JgRgp6ZnVQcVhTYj80ZiN6UlZTayg0ZE4xeUAweVhhYUkk
SHpeU2ExbHdSPU4mdz9Nb24rVmw4SGIrUmZyfUBhIUFeNGkKenE+YmJEZDErWCh3ak43MkhsbGlJ
bD9ZMzUrQDhKcGFaaTM/UHk1OHBGeit9ZCNyNE1+bVdBJUNqUmVjZExRajhBCnpgY1p6KUtBP2Mj
aG8mPzhAYXY7eVRyfEg2N0c/bStnMEUpelheKjhPR1hYK3lobnQhKCswfilne3t+X0lyeyFkJAp6
e2BQSStJSGFpbC1hdz0yYHF4PEsyYW1QRC05SWooTG40N0ktR05BRTJLLXI+Rm5kRj9xUHZYVXVS
ZHE/IUYyeiYKenc+S2dxK289R08xOz9LX2pFPz9VbjUjOyhwe1M5R0dkbHZVa0FGK353d2VsalQ/
SWltYlQobDZsQ08zZU15RzFuCnowVnRJZjUofihjOC1ReGBVazNwNklPTER3TjF5ZCRkNXNKSnlt
NGxyJHIjMVNpQXdBbFpBOFJLY3cmYD1rX3lJNQp6U1dfPEgtdUc2TD9ac1ZrVXZFY1g7JGBBZztm
XzxnO3JHbk1YQTk3S09uSns5SmRhPUJfV35NTVNMNUwkYC12SF8KejA0d0ZCK3tENC1nPlR2fDNP
K1Fhb1VYSTFuISlDdiNnbXFvUDBaVlJCWDVuZUBpfW13MFNvYU1QVlJnU2Q7YXUxCnpQVkQzeTIo
UCVCIWpuJVFzalJRU2lZPzMwdSZ4MV9JVD9iVTJLXy1yWWNKSDclUHt7WEt4YVFnWGtRK15XaFdx
VQp6bDlvPitFJGtwVytEQDhaOT9CWXprfSFrbllDRE1eP3o1cHF4KmIraVNRQmF+MT1Vdnt2bWR+
cXVtTCZhR2x0R1gKemh2PElIWGJ3T0l1LXdXcilOazc/YWBLYjRlZXo+Kns8QSlHP0xIXk16TiRq
dERuOF9BNkZuK2AhTEl7KmVjfUt4Cno0LW5Xbm4mel9NdUo8ZSN3bXg/VW5pLXpLdTdfVm0kbU4y
ZXFGRDNVZ2ghNCU1JHQtM0l8QXs2LW47PGRUSj5NQQp6ODMhbHMwNT8xIWlIJWoya3pIdyg9Syh9
QDBLa251PXIyR1E+PkQybztrTU5oZHxHPld2SDxEc1MmYjMmZHZrR1UKemRJPChYaDJaUWAmSl9z
NzRFWFR2Kj83fk1CRHtWSEw4JiRsI3tAQ2hkSjZxNUMmPWQwbkYxdVo5Mk5NfWtEa1dmCnpTMTtr
eXxNaDhuQElVV15KfngwaE9ue2d8VjlyYUFxZmlyVl5yMUo3ND9ENmw7R3tuaEU1MmJIWWtRdDM8
VlN6bwp6MT8rIWpKTjdeUUd9X0x6aWAhdzZlTkQoS1BSRWpVT044SztFR21KKz1AM0claFJFaGBo
Sn5OJSk8MGhfN0ozSlAKem9QJmhrWD1pUDNnTyUyWiQhTzQ9aVV+Q2hrUENeJTJWM3g4dVYkaD52
SykzKFdGRm01JG9OYWEwOWZFPk1ARz9wCno9eEJWZEEyV2J4MVFqYjlRUHg7NXp+RDtSZT1NTFEm
M3phPy15XzAmbndgTD0xRFFqVCF5eW01PEBLKDlTTm82cgp6S3p8OURNZGNUfGFNI31+NlVXS1M+
Y302RHBrPzFCU2MtRVlSZ2BFdTIjKzNuRCVrblFoakZ0NUstdyske2x3SlgKenw0QWBKanFNayp0
KSFBLXJUMmQlZmRMcDQ2WDQkV05BYSVQQzNwayNTQ0VaQkFTOVZfJHkxNTtVP3BhZSR3Uik4Cnpw
S2lpZS0mK29zXkdhUVR8SSRxXjlxemt1NmwxLVlNOUh0OWk7fj1PWUk8eDJLbHwhMDtoaFdQaGtM
blZAREF1Sgp6MjNoPDI9WD9uSjBzYD8zc2BnaF8xcShlM3pkaDRBWjxfSnphcU1pQF5YOGl5NSlR
b3NlfGA/ZmNrYWE4YldHT3YKel5idSE8NW1nUDxTZitVTGF8JmZvS0hLKFU3OzRoIUY2Zl5uM0Iy
fFgkRnUydHhHeyU9SDlnVUtydVBuO09fY0pnCnpqI1d1Yk5ZYUhKXl9oek4pOSM1cmVDRH00akck
NW0wNFdzIUFobDBgdUw3WjRANDFUQFk7SntfJEo0MnJvNmM+Pwp6dHM5WURRWHAqa2RDNVBCMyV7
dVVyfWY7dnVOblNudWpwTTcyTEwpSStKe0shOyVVdXhkO0MybGdGcm1RJGIpaWcKem1sV1daSGBF
OWRXdnB1cUpBYi1NYlEmX0dyd1FlJFIpbUs3VXdKNHJAYW9nSj0+Z3lrNUJ7c0VyVGFscXlzeHpL
CnptQmBLbG0keCM/PkgmYkJgK1lIZF8tISUjXkxxXk5gc2VTREZGWiNGbTw8R0RSKFBVel8jYEtD
aV57UWEoPyZTYwp6R0kzKn4wczZ+anp9KGFAZE1fTnReaGw0VUwzcmE+X3dtPEc7NVFHdmh9RXwm
ITRMTkFCbjd+QmJ4XnQ0RiM+QHcKemZ9V3REblghbHhtUSh1Z2FqIWFPbUozI3trQUdicGZGazFf
R1IrVTVfMmRhMGUoQCNqYFF1WDw+Pkw2IVU3SzB7CnpzZS1hPnFXQVMheHBnSDxzIUwhYTBTeUkk
Vmw9aGszYndyZGVaNXVfankkJk1Oemw/ckJlRkEoSE5LVGd5JCN5TAp6M3ImYTxxWSUoTmhna1Rt
WCMwaklAeF88KEZsI0QrI1NsJWZfNE5eZVJKajRYdjM3NUk/R1R3e0tHfT5Ab2J6MDsKendEUWlh
dSN5ckhHWWFSfntfKTRHQGhBSHgoMCFzKU9ZRzV2b1lRe2BhJHVuU1RlN3B8ZEkqKjZBXkFHUlE4
RXlTCnpWRG9KP1NobHVROVJJNjcrbEFpcXtscUxTVnM9S1hyYjNhU0QxdHJELVg5KTBeZkdSRzBK
IXJmVGFFMyMyTWtrZwp6WGYwaEIxaFU5cD1iQEdnMiM3NGZLdFNOY0orfWcxYElyZUZwTCYzKTwz
Pml2Kj1UJW1VMERVRlQ1fjVkXjArbmwKempSWE1vbDFaMng+X3FwdXtqYHdXVDFfYEVENlUrNTso
O2Z5ZXxJWkJefGVwbyEoWnB0WlNrbDhGR1M3fDxEP0c7CnpnSj5rKWJram84WHdPT2AmMUMpeWs1
U2UzRi0ocDA7QEhiT3ZIUXRDcCF2djIlKzFDYF9oVGt4bktAUn1FVVUpeQp6JV9+czV2S0hDMmE5
UHZLOGNAJXF0YE0oUiZQejE1R3t7akpvN0YwYEpQU1ZDX2NyZUcjNTRBRT45dlhEIz8+Zn0Kemwq
OW55Jm4qQFM9UX08NHVsK0BjKilsfDxuMXR8T0Rzdzs9QklHZSgxTHZDMWUpMUFNd3JqXjhyUytG
bm9SN3dCCnpZWHhZPClMc1dWMjlSS34pQkJlV2NmZFJDa14ya2tRbHJLQyZVQz56P1N7M1k2IU9L
Xm93SUohaGRSVC1EREhlYAp6QldqbHc8SjMhTWFxeCt3dS1NSj01d2lKUVMwJjMoRUNUPGZwV2hw
R2NVKyklSmgrKHchMTN8dDNlMDs/anY1OT4Keld5NFpgPTRvaz1vTzFoUDFJSnZ3VVUpKCNZK0dm
KGdJfV4/SFl1OEVOUDNgcGpeISNWR2IkVDVwfHBPanFMRld1CnpBMFUxWkIwciRANm94dl5EY3lo
TS0/aUFTQnk+fUZfeykhQ1pxQVAlP3xUa1EqMFUpdjEtLUR1IVpESFU2YD5tKwp6aV5fdV9FRGtl
bFgqUVdzVWRKKVhVVkh8UlMpQUVAMj5ZTFhNdEpoYTJkNzEmVyFAeyM2ZSs2QUMpPlVlJVdxa00K
eihuViEqcCRZKnAkRFd9R2EhVGs7PjAmWDZAM1lYYE54KW8rITFKRnFMRm5+ZWZ1UTkqWHpLeDIh
MnN5a19ucjtuCno4OzZVTHBQTUVHSF5LOS1pPkdTXkskMDUhSDtDJUspNmMkeW5PVjY5emsyLVBV
PGckITdOYyhNNWBeZm5hMlA3Ygp6Nj9afHp3ZnspWjFpSD0tRDVpXkVfJDlnOGlHPFdkPzgoa3Ir
aTFgTEJ5bmJKK15rQDgoQlpKKTlVb1c/LT8kc2sKemVRJEBqN2JkbDRmQn5Ta04mXjd6blF3ZWoz
ZTklb1coTlM/KHdHMFlXRWRGTXg/eVA+TCRpZiFCdzkyfnxDdFQ9CnpxODJRejBVcjdmaHhVPHFo
bnZGQiNNJnlpV0R5cHZjPn1CdEV9eS1UZWdOS3RIQSZpazhoc2EhVlFSUXI3R2xNMgp6eDA1TXdj
SGUwe14zNllDJkROISZkNUcxeyFXbH1+MSRWS0RoM0dGTEZNNTtCQnlSZkVvQnNrZkFYOXVgdSVu
cjUKemB8YTVDcj5EP0tjSkF5UG5NPXdWJUZlZjtkZyZzcHpJNj4yRXZyUihQUCR4bjgmc3ptOCFx
IUpZS3YxZnt3MWZSCnphLTd+RkpvazFId2k4MG5Bdi1uYUNBbj54ZGc1QTR7Yz1KLXA5eHMoNX1y
QnwjZS0pYFFDKH5rPTFEeF5Ne1Z7Mgp6VlZ8b2h6ajlwd2d1b0EtSkEqU2pfUTZ1ZiV7dF9pWjhl
SXFZfSthblIyRkpRSVA+RUVBYFJMfDNATCoxTXwlK1AKejJJYUo5REcyfT15ci1yRjZTUWx6SitV
bnFwYVR9I3hXUjRwOyNfUkx3SGh5Y1ojeU9pclVlXys0dXNaM1kqOGdRCnpyNFlSZmVQX1AkUTdJ
YmE7aD9KRS0rWHhoPmdITzEtKzUjMno7YllaY1ZwN1pQQmEpMWpHOXFpREI7MWNxIy1aYwp6MVgm
QDsxMClqLVFBNSZoMnRtXl9QYFB8N14yK01zU04yQTFuem9XMyZyU0BacE99RH57eHp0NS0wNlck
TDxSbmMKem9rWnQ4Xnxlb3VEZXp0Qk9AWU1TTnk7VEtUOygwJTR7P34kNDlgcUlQVkwlPHkoSU1L
NDs7YlImPlltUipKPGVuCnooKG9sakBtSGE3TG44Xytpb359eWh1JnJMYj5kSWROV0hBLSZCQ1Vh
SkA+TEImJXptK2FvMnM0VT9XTlJeKE1mVAp6WG4qezUoTUY3SHslXmx4IyEqaU52Und3enBrPCp2
MERXUFE/N0FgRyZgJSU2XmMrRUU7VWFsLXc/Vz5BRXpPUCUKemNXO0UlWTd4Jj4wbzZjMkllYm48
WkApTi17O3NLez8hdm1gPWNJe3xRQ009YjtIKW13M0JRenBhcTtedmlCM2xLCnp0NGM3QEZeSH1g
N2hyU1E7LThVWlJ2fWZFS19kRGwxdHlzUmE1RTRVMEIrN3FLeWBDJWQrLU5fb2BLSTgrX1VvbQp6
QVpaSW40TT14Tl99LVRAdShadyFnQyRlTVkrMkleb1l0JHhfelo0WUFKY248KXMzaUp4YH05LTlY
QUY5XmZ6MTkKejlHdXVRSW5hcS0wKWRkPE9VR2RuTjVsWHlIey0jQnBMLUN+bFJvQHQmKG0xQ2BP
Vk4wZ3N5cWhRK3l2VDl5XlhoCnomJVohX0ZRS29zVWokbkM2UCFNZlF7WTE1IyR7TiNYKnBeZFlo
WldVMTxobl9wSjt8RUxhUDltcjA0amBLYi03aAp6SGQqOTJ5XkBeNlJHJjVkIWF8PSlgMVJkIV5y
Z3BgNCtRZ0dtak5JfkViKDhTYXpaTXNoQXxlX0xWVV4yS0doNlIKemZ4JTNJISk0XmhwTCFDT2ZA
THRLPWdaRCNGXkQ5QnFLWlBTeF95PUsjfFdeSzxYUXAhWGZHRTJpN191T29nTER3CnpCel42SF85
QXlYODVufUN2SXVFYUIoJmtNbVpQZm4yYjJge3FoNChXKSokYFg/QWRsJDhKUDVQa15sZnMjSnF6
Ywp6LX0oRExNKF4tUXRHQDtTX35BYnAjd0gjITQzQXpCMFFoRXhmKWVpa1FVPX58Myg/QkYyNG9q
alY2XjhWK35XaUMKenVtb0t9antZb3xfQnFxRFFONDAyRzdITUZmV2RuRytkXzJKens4Nnw4MUJB
XjtqUm1eMlUlZSZqeDtDRTlYeH1kCnplZUppWFVzOzJQa00xRTtmSzMkdFJzTntSJWpHP1JPXiVf
aVd9SkhVUnFURUc4TUt9fWtFIVZwWSlUak52PHhGRQp6OD4pJW91U05adWRKKD9rRSQ5ITtQdDcm
VmQhUmNmKl9wfTNQSWp3SjIpJmE4JFkhJCRrR3sheElaZU5TQGFxSVEKekxITHR1QlFFQ3lGZEhS
fFBEayszS2opeWR3cDE+JGp3dVdQZEl3O2xMeSVLX3hlakNaNDxDWWlZNyh9eEhHbk9oCnpnaSpG
aCsyJnRDVz9JI2ZheHJXcys1MGJGNCs4QEpGcStRfSF7LWYmPWdFeWxSM3w5aTZpQjBFYU1xTjtO
c0tFTgp6TiopdVpvdzIlbjVHTGd7SjFgMjwoNVVQfk5NM2gzMEVvSWYybUJZc09hUFZvLTw7S2U+
WHlGayRFentwSzVaQm4KelJLXn1KQFJRMnh2b2xmcmA9Pk1UX2lyYjluT2wkUTY8Y1ckZG9WKGFm
NHNqPGx4ZX4rLSQ1bUV2JD55SlJSaFpFCnoqRDlIS3VhaHF6Y19Baytjdj11VjdRQzxKRy1rI0ox
IzZNM3pZTVVHMFI4IT1mNUxOckpjMThAXzg7KStAQmI5Qwp6QDgpdmcjQW9MY3w4bVUhKU5BeyhA
OUMjO1g3NTNhNCRjV1BsTm1od1B6JWNRdjVZQUdeM0JWSUx5d3ptMnY1RjkKekhqKXplSXElWXw8
WCkhdDlIJHJGZCloSG1lN25zZStPb35sXnZTfHs3NTJMJUUlM1F7KkVLWip1LUdLTGE0ZHtSCnpK
RX5BeG1afDBIJEw0OCY5VjRMZ0c4MD1sQCNORUpLQ314fmIyaU43WXZja2EjYj8waHhBfD5ya2lr
QllQJjZVYwp6U0ZSaDdxWE1sPkJnRXZxO2AwZj1xY3xIU0J8amtBUFlodmg0akpgVHVuYERMa3gy
WWI+JmNheG0lI0dAV198RnIKemI7QjVtJlgqNHIwNGZMbzlCR0o1bztAOUNgeFUxRnw4KVFXWnxT
Uz1sTUpKeUpvOU5qM3lAMnQ8Un0zTmolUE5FCno1OFJXNiZ3ZU5rWH1KfXNVVWVJNmp3fVJ5KC1g
aC01X0NKbjEzWXhgX3hLYnAmYyk2fjwrOUNVWX1vNCk1P3B8bQp6PktDPl9adCVjPGZXZUxuTUV4
ZmU1M3hiK0FtazY/O1Y9SVg5aGIpTm9vNjEjd3MoSm8ta1Y3SjlzV0YxZTIkaioKeiRldXJscXVZ
MWo9I0UjPWQkQVlubzhuSiFWcCZHRTlTIVQzViVhN1ItX15zRkE9ZUdhK0NKSWFpZ303JmRzJEBV
CnphaCU/a0FvTnhPNXA1bCZhXnppO19ELVNzdUx1fT18QWhSV2ctcFokeyE8SzE8fFFifXZrPGBQ
SE5Ne1N1WEcwRAp6WSZ2M0t7YncpV3dWKGM2byYjdmZoTlhJZ0c2VFJNMkc7UTAkSVdrOXJUN3pL
eTJGciVtR0l9ZlRFe1JsRyQkSTwKej14S2lmPTx0Xn48LTVJRyUoY3YzUnRybTN4fHxuKWAwMSZV
RTdfen5udz5PdkE/JSl1dytLJklldiYqbnREO28rCnowSyZydWNMYU4lPH01JUtfUC1KVVNhV307
VlA+V1ZsYXEwUW0pbzdsZTx9Y1F5NmtLSzgmfSFNNDlHJVNSdnMhPgp6WShzaT5reXI/a3Bid003
SiglY2dnTktBbmw0NDAyYjg8ZD9WZjlpfUc7YTlJTHhOWFd3MjdVNEFpXytPQlloYV4KelkoXiok
MlBzRkkxMDdCNl98WEBDTGcoYmRrTjBqemBRcHshYUdtVk1YOHtoUF90SlNCZCp3QTh7UFZOdUlN
PDk+CnpjTkEpdHNsI1BKV3FsPTlZKn5aKXdUJm4mRkJEbUFMNFFDal9TODJyKFVCKkk+PGw3OWpm
R3lPX2pXPD1FZ1o3cgp6KUwzUDsjOyNKWnVTUj4lWiZNQ2o4OTN0Qy0peGRGSHk2Z3xjVnhtP1VJ
KFd8PWxvbHNCTT5Me2N1QTtVe0xULUUKem01bWEzVDd7TW1XaTV3ZmFmKkcxTiNpYkdVclEhYXdj
TWRkYCp9JWJhQ0dfbHlRZVlLS09AdEE8K0xQU1R3ZT9FCnphZkU8PUZWTlgxMVVZWVFKeG1VcENA
UDl5aGxIZ0gwfDgyNCh2NnY+aj99YGhldT18PylmR1prTGpCdHgza35uKQp6RUlfXll8S3tybnNO
ZDM4ZUVTQ29oZCpOJkFEN0psUUVzWXFofTFJeFpWY2t+cUE9SGwkR0BBOF5zRj9MKX5gbz8KemNe
JVgmSmt9MGdfWE5nelRRTlB7TCRvY0omXzlrX2QlTG09djFzK0p1KURIeC1EYmNRWG4hakVTMXQo
K1ZRakRxCnpWfF5WNmlgTD9ES1NBeXl7TXdUe0BZXjUxZkhqKk1AdHFne2pFdms4MDw/QTxkR1Ik
SWV8Wk57YH4jU29pYT9Ebgp6QGllZiFsNjxWJXdwSXZ6V2taIUhLanNsdjVoWSE5elQ7aj9sK2Ej
ZE89Y2xgbzxueHhqfiNqUiskXlJaI21gcWkKenVwfkEzVTdIfEYzdz9KJTI5TyNBbkR2fSY0ZExy
MnM8M0tKODNMbDZuNGFvR1l4bCtmYSR7MlYjY2NvbiZqP2hUCno9JEJuK0Q0SWRacUM2YndVayNI
aFEtQyN4VHlLQkpEITRNOGE7RzltYn1JNjlWSDJ2aVlZTzhkOStBdFNVSkRJdQp6YmxQOU1PWlZC
PUtMVVU2NUc/NlY2bUREXj9geG5Ge0NIPCpoISRkIz1RPEZhUCtFa2lUISU2TU5IdGFUbT10OCEK
ekA5eiYhb2otO3w/WFB3T3pEV1VLKipEKXBsRFdnY0NJQVZBVHkwe0FZayR0Q1M0QE4wKUhKTXk3
PUhObTA8M0l3CnpCRC11VU82eWs5I1pzR05EQlg1USE7VE1oVX1+VFhLRl5HSlBxYSpxYWFwQWtS
ViF7bVIkKWNyKXhYKjs8KVZ4dwp6RW89Wk9HIz8qYkRCIzBUY01HT1EyRFBnIUxURj9USm9mRUp1
eElDYS0xZXJtYlk2OGhNaWhVMVY0OTAwTUpfJkgKem55aTh9KG5eZylAbUZIOz5JUzRgeGEyUz9T
S3A9UnRmVGpjc0s+P3tnfCN8Kz4+VjdaY2doSm05TENjYygjQiNiCnombW5QITtxXz41RFFPQDJA
MjEjYUdWUnhlNGRvJU5HNWxudzBtcUVYUUJoMVpJMj12MV4+cXh1QnpsczhYI2VBQQp6STwlaTJ4
PUAlTiFVeWxfI0RSZyRJNjFUb0hVZVcjYkZRY0AjTzZDMSNoUXNKV3hIYWEyKGkkUG1UQHNybX1+
U0cKenIyUlRhcGBofVl4KUNCX2JgPDVIVXsjJlFOWXIhR1RRd34zITVJJUcmYkdfYmw5QyZTPStg
MHhLeUB7SiZJakx4CnoybVU9NG5yXzI8MEp5b0BnNnBeUiN7Vmd4dDEtJlNKfGdRKyhmWDFPMEte
fkxJK0lnfmM+TVV2cn1PYU14MTx3Vgp6bXklN3QzMDZsczYxNiFHPklsSXpJZnt2KUYzZTYyKCsl
P3JKQiVteGxzQiRMTDFoRTNFZ0YhQCk9eWx0c1RjTnEKejViKElDRnhZajgqdmdGTl91dlhJJiYo
X3l7Xz16OXhIS1luKUdeRUI7V0JjcXNCVDxAPHklJmgmQFZ4TE5yNn10CnpURklAWllVYlpFSEpR
YnJiTDJUMzR6bFpJcCpMeVhkLTw1LUFkKUReUWNCSTdjPlkobS0hSkZ6T1R7RlR1WTJPTAp6OEhe
SExnRTBRfXI5OSo9WnpTYXFQM3JGLWY2UFRSVHZNXzBwfnJEPHw4NjF0MT9nZURfeDFzbD02ZGp9
PDlER3EKenZfZHAwPCVTIVo/YFN+djt6RVJpVkZBIWdeOVBDVXBFQH1KaHN9KDx5Zm5HWGE0TW5L
SnMwNmIoSFhjRUcxXnh+CnpidW5AcXRLXyk/aTVMKFVKbz5IaTNxQTBTUDBJO0lgdF92JEFtMXl4
bXJfTHFxfko2Pj1sX1J1ME16V2l6WVlONAp6RXEoRVNjOUwrYFhwc1FEe2pVUTZaVik9eEpDMSpQ
VW9PNy0+MEFWJlh+TGUqRUdVYUZqSEpWbGcjNEh6QWFHOSUKeiFPdn5IaTN0P2ZFRiVVYGo7antf
JWk2WDR8QWpQez96MVdZNy1ZPmZMJnI0UytsaXBoRD81Q153QkN1e21NO0FDCnpEP2YmaCtuX2Er
Vzk3RFdzOW84Ql40ZkE/KkstO3V8SCV8VCloJnY5P0BkTnxhdVZEMEVjOUd5JDNWbCpKdU9vVwp6
YWN7Tk9gYiQwalJRYDxEaDR4P0d1MV5pTmlKdVlMLXl6fUU2SmIwKXo1P30yXjVzbERvJVdBUEdM
eHxxJWk7SDQKemUme2hXclNeY01EMXtrZXl5dnotNnleOVo3aldTQiRHMmpfejc4ZlNoXipXKy0w
e3Y4V0x9dVd5X3FBZWZBUFd5CnpJQD4yamlnN0tPM2w2KFE9fWVgSStiZkpDaFdJZ1hEKjg8NEFs
JnJGTFNMfTU3TVdGclQzY3tRMTVhaHUoIUtHSAp6UEdoWE9DcThvYFNAX2sqRiopMkxtNmpzcjhH
eUl0YHlZZlg/NHlYPXwyTi1ren5uN2AoTmBhI2xsZHJuJVNETX4Kemtfakx9ZHo9UkE0YDhtWDU4
RjFuQFc1QSMxI1FsJlQjQk5hI3N6eGhzbEVZO2dlSEsxY1RRWTFkd0xkcV9pQ0dKCnpVYWpXV2V8
Qk58MyZue1BqZjYyVkdKeEArZSRqQUo8PSFeMyF+NUhONSMoV3ppITAkRVArKDBIPFpRezVocFNz
OAp6Tn1xVnZebWU7TFBRZXc5SmdkbWE2T0tvPGBEYVhfKjRsWD8jaikjcTZKRis9N0d3dzRMO0Vp
JHszOy1jaVZLKXgKejVxI357M2A4MiVBPkFnQSZgJDlCKTJIbGRQRTdPPDxBb25RaXVVdjh6YHxk
Wj1mXnY/Mz9aOTlmRSUpbWB9NlJKCno8TGVOfVQxQyZwKm1RZD5tYWl8ejxkX0U/WjQpSDs2WSRJ
aGd7UG0qZmE7b0RGLT0mRjN9X3w2K0ZTdUMwazRLbgp6d2p3WWloaiZYaWtsOXc0dCZJM3FLTGpv
OCRIaTdkWEYzcV8xbXBvQiR3SUhjY0FRc3xrdUdMdU0jcy1oYCs2USUKemF7dzNzUlBGIVEwMDNX
a0JWRW0xMkpSVjBudV89LWwlI1VtYClvQUdxcXNUcXVkNSZGPH1pTiF7WXNQLVN6Kmc0CnpMVjNl
bCpoSVBTbURAX2t3YCZtbzFPVyQ5KCpBYHN6eTM5eWFFSygyUCFRdzh7Z0BtYjYxbzR7eEZAU3pp
IU4oPQp6PCtvQiVkYDsrOys8UEpMdmJNTFducUc8MUMmdVUjJnRXMCRFaUN8RypRJmlRZX5tOHgt
RyVtTHdHKjhgSSl8dEkKejg/Ym4zdjhiVGI3eWh1UHBTQUNXSjskO0EkQiQhalk2TDkmdEUlMCZZ
cmAwOTc5SmhPTHVTSjA4cWRlbU8+Y21kCnpRLT9IezhFZHZ3az9feDx3fGtuanpieUZiN19zenA4
Pih0QFdZKDc0USYwfkVrfT8tP2JPd1dgSjQ3aGhZX3Aoagp6THBeTmljRmxheXVRZ19QcXBnRk8/
dz02Wmc9KGVYZigoR29pMG12TkNsfSVWLUEjZCE3ZFohamc8SilJPm47UloKek5OUjRfbVFuZHts
SDNLRFBPS21nTSFKRH4oS0c8eUtoa1dXe3ZrfkRqTl8tQHVFdVNmVTVIM19scjNJYEVIUWxKCnpi
dTlFclVob084VF5zRzY0K0BnN01fQ35VJE9JVmI/WiV2WU14MUJMcmtMQEFRbjB8Rnc5N0lIIz10
YEY8VnJpegp6X0dUcXlyflpEekdAIzRjQDM7IXV6Yzh5d3o1aT5We2cqWWY7ekdzR1N2SUM7eSFn
aEU2NjleejIpaSpOWWsmRzUKek0/eT95M3grJVR1PE1zazxNZl9HQjZaaEFuKX12TzZJZlMyTy1x
Y3hITDdHfVRFalRvVTVJQn0/fURxMCl7cyRWCno1fjQkcE5naEx8Wlg4YEhEIzxgKWJxK21fQj9g
UjswJiYqRnp9JERINlNHNnBCMzs+JD9MeV9JZE81WFAxMmxReAp6VDsofUM7PkoqT3pmeTNTUjd8
dUcwT2FNODhRPyZtP2FBbEVvLTxFQzdJLXhrKm8qNWQxV0kwY0grOyh8empyXlcKeiFFSFAqJUlI
ZGl4d3VlVkchKzB1Rz5geHc7LTE2VXhpMCtrMk1YfXtlPWZxREgtX0JPWUx3TmxxOG56M0ZRVUlf
Cnp5WWt7c1VDRE1pMG54cCMtdylyTiolXiF1X1FVVXNQWSs1dzk3WEl8PW1vdShzbDd1ZnVRbGxs
WnAwelE3Qn4pbQp6bys0bzw9XlJxaXslaENYbXZ7S2gyYzd4WFRlbUxfUX58M3doKERmbztDJFkj
Q0BIV0REJGUwTzFLdDBAanNjdV8Kent4dXdaYn5rMXtsYm1VUmhFZ0FIVXA8YigrI3JHPlZ9ajxq
az9DO2dUbj1eKi1IbykkOGdNdm1wKFZqKU1hYG1JCno2Y3VOUCo1LStoemVFNkZJYDVoQ3B6RTBJ
JD4ld2MrMndnQ1UlTjx8M0tYeVU8Tk4zTDJHTWkyN3R1Z3lla0d5KQp6SV9hUERlYTxnSCVuKEFM
e25ybWcwekMoaThVVV8yMj8rVEE4dnNmX3t9SDt2ell2eygybjF7dXJMYkBWTU02ME4KejB0VXFs
cGFuTzB0UUJoO0VPYDZ9d2VXWiZXWWNHJnZUK0BwOE0qTz1ibHFEaitNZyY0UW9ANDkhYXtIYmIz
anRSCnpMcE80azd7S0p7MiFWaTRjTHhrZyFIcm9zP154aTQoQSNiRT0pSDYkZnhTeFl7Zz1+elRf
Y1pjVm4rKWZzfiQpIQp6cjBwLWNHcUJzVDE/bC0mMWZEQG1QdDJqZXdJOFE8OXdFeFZwTTs1TE4y
SC01S1oqQFlybShvJkJOUndEbEdMYjcKejxVdlQtZWtkMGdCNnFgMWliUFpicmRren1KZGJrND5R
WHFJN0V6QEtveWozVjJMX05jYDhyUUBWdFF+fDl2QEhhCnp3eHFFUGA4OTx+RHpeTU5XKk5haTFV
PkVKMiNuN3AzT31IPWhEI35APj50WjNLJE9uYy1+UTBJJFV0c19PI018Uwp6OzluNX5ERVZ3RHFT
QW45b0piKFJKQDh4JkhMJG9HVm8/YklwYzZKKE9fKiNNZk9UZEp6azA5JW04RGo/djdGKTgKemZj
JVBEYGtYMWdwc3NiaGcwTShlQkx0VkZ7cWZJOXk2PWg8cmRTbFNHdChGITlWUHE9MzlWcVlzPz9x
Wi16SyFiCnpOejEqRDN0Mzl4VXl6b143Q2VWfXdFdjMhajE9YiZLKU5jPihaN3hxKkp9UjB4YWVv
WDFOPnBBNChBN2ZfTkhEOAp6YnElOFhUbmklOC1RZDx7PChWMVN4O18oeVN3bkV5MjFzYVFxXiU4
dF85dCZqQ3AhSDByRDlBTHkkek99cTZHbmYKemVLZVVGNHk7O1ZGOG5mRGUqc0E/MzA0YkBWdUdu
b15pUUdmYyZEdHEjQVRPSWNndGNwdnooZl8haGpPPWgweFY4CnozSUFMR3xGXncyZnNXKDYmUDJj
M2RPPGgjalVkMWsxYjAjLXdOYktVTVVwTWNtTXo8ezt3QUJPI3VIRVNNdzFzRQp6SklSfVFOPjBZ
Sip6P1p1bzAoK0I8QyZjSm9VeHRFSUVrJHx3azFvSk1KPVEjaTR3JlArIXVmWkw0WDlZdWYwfmkK
emQ7aDx4eVNoLWxWNCtCZ2VKS2R0anFhLUlzPUQ5KD8pcSFWTTFISCFFYHxHYjRnbTdaalFVMlQy
VHglNyFlOC1mCnpLKWtsTjB7e3l1MCY/IWxfZilFeXtAXmtKSyhpUX5MfEBSVGpHJClBOFpsKitV
Km5VPms3R293RjY9I2xafmZeQwp6ZUVPcGU3QHRUWlFkNXVDajsjbnF0MSYrU0QxUChMSHtqPkp2
MiFUNF5PJTdAbUJoc09JQVN2fjFsWUcxdCtqPiMKeks5TjRtdT58P0Q1M34xfHYhNGFpeyhSUWtZ
eHpDTEYtT3tPYEZzWnZJSkZtJHk0WDk4bXRNYiFeQXxAXjVtSztYCnpTdU03I3RIcjlOS0A1KnZ6
I0glR0wpVjNWKFMoeXZHeTteN2kyIzFeXkNkOVhKX0BhLVNwdEMxP1pYOHx0Mi1MZAp6dkEjKFI4
e3VPVGorV0N8MjxhbG80M0NLO3Vic3heJGRzYEQ3OHh+TzZRRTtmeUxgQFVmKUBAUW4/YHFNRlF5
YzcKejw5RzszSmR0flR7SjtQPERgNGFiMVlrdWdrP1B4Km0+R0Q2K2trbGs0KmckSDRTPzlzSmhX
JipRZFIldHwzaGM+CnpvNlo7STY8TmROMX5oRDRCUyZFaVVyIU5fUHJsVE4mcHNIIXBNN25XU1B6
aXRQKCRsI1ZnVmZAMnNBZWtDflVuOwp6dmkjMCN2dT1ES1NOWG1CJD13RjB3P3FLU3g2OTVhXipC
JVchfk5OTDFeaiNmWDNuJWY0fWUoKDA4R1MlZyFRRTcKekprbShGRFlJQiYtYjgkSThpJFNfJEQw
VEM8TVFDdVklYmtMZmAqQ0NiNTsySDh9JGdSZUZTUUN2bzhZPm48dTVkCno8RFRWTShwclQ/SlBx
SH1BTE1MK3Z4aEY+e1A4fGZIcTJWWURfYnBELUg0VDJpOU9KRUlOJiRoS1pmJU15QWNQdQp6YXkz
O0RMbU5gNS0yMCtYNUt6PHJNOHVTIyNKUWlIaWNoYHViPEEhOHkxNCkjVEsmYVVzIzRrSWV2Tn1D
ayhMSEQKelplNUspQnEtMzdTLXttWnttfWFeOzc4eFJqVnpAcVAmciYjZ19pYkIjMERCc2F6PGIt
Tys5bjx1WUxWayZ3SmUkCnpUMFJqc3hvPk4yRzM3N097Y3R7TzBrZ2tQS0lUeUhkamorQTw8SEJH
TzhnR2xaT0ZrTyk2PiY5ZURXQ0hJZFR3Sgp6aGxkTFNLcVFwSEZXemp5bzJSMFB1NnIwdHJOMFh4
PUpIaHBAUFArO2ZRcGY9SD9XWk5uYDtEa0xEYSowJms0JCgKejg0Tjw3QDdQWUAoY1h3U1FUQEtO
MUwhKypTcmh8bHIySVZrRTs5dT9iR317WSE0Q3UmMExjMVYkd3xhY2VEQz1iCnpkVmhmMjZ5U250
MDlmOTAwQVEpQWA5RmApdUQ3XmY7e1p5aXdoflFTUi10TjF0cikmSUdkXyo4RkNNX1J8SUtSTAp6
Y1h1NktfX1FkZHNhdnVQJWA0YTB0R1gwcDBtWDBycVFOIXN4Y0pSKW0ybVVWSXU0KXhXb2R1RGxH
KU8mY1MremoKelhXQ3pZMT85RTtAVVd4Jj80VkhLayNFQFhpM3VEeWJ7T3YtP1pvSyNTWTgwb0d6
PE5NQS1yfj01bldleE1BbSk/CnpOfGdmdXglVW1YMkRoJUxBcGxyfGNzeXpRYG1Wc0E3LTZZbWF5
KjgmVU9KNSNeNlE9UVlRQT9YcUNzckF3O2REWQp6NjctekJqRU87UkI5ZEsjaChfJiFvfkNEIVI9
QEtPKnJTWVAwSGROMz0xM1EyRWAwQVZPaVVqQCo3fnk+O0xaVHQKekpPRUh4e1gyaTREMXBFNXpS
bzktM25lT0I+UUxRUUZCV2IlYFRBKm1AIzhpNGNtSHg3TSNxeGsjMkFGOGpWbjQoCnopNyotSndm
PUpzXyFVcnNkXmRheytDTEJMeT5ReH1lY2tkPTxoZmFJQUlvMnwlUHsqcFNpWi1hWElwdTxQan48
TAp6REJlREZmTE9xQk9pb1N0MClYPzwrc0E5XnJ3KHlxblNyJCpDSUlsYjBHN09rY29AaT9fcFFS
fWJxeFh4eWEyIWYKelRXJVNDXlgwUGB4LXViYD5iQjElemJfT3Y1Ukw+ZU02e25AKTExa3UtMGF+
ajQmcDhRYnNuMk8qVHl0dVg/IVN4CnpedTskWmVmMzhpMENhcVJ6WkJyajB8MjRXZUttcDVtSno/
ZGlMTmV0XmNQPiluVjV4Kj5uaVpTez52dU9TMDdLeAp6KW5sVTdiIWJfJDkpWGFZZT9OT2U9SXFD
d24/RkJnX3Z1V197NkB9YWF6fFVjMlUqUEJkaXpeYDl8Z3wqJlRxWX4KejV7XkJ1XzA5bmlfaChK
ZFo9ZGJXYFZSMjF7R1FMdmBrVmp4Y2NBfDImPjtFJEA4YkJgKTBtRlVfeVBjRDJGNH09CnpffC1l
aklOS2tBZmYpM1RNYGk8bmViNGImXkc4MGxrcj1tfUhrXnQ0dm9hZ0hYemt2JmAjZ0Z0ajNOK2xF
ZH1QQgp6QDNkVXRRO2IwdVUlQF9aOTxVR3kkQF5LJjlWcF5uOGA3NSVYbVVUdl5EaU1iYDNrUUY/
RCtsT0tfSyhXMEVva3oKeiZ4YU82RHkjcTVQWmRSZnl4OUJyVCpNTz1lKTh2YXhiTXl5akxjTFpw
QGQ7LTUhQUo9TFZlM0pkIWYjQj91VXc0CnpAQT1ieXpZPH0xd2xSMD4/S15iYGQwczA1REF0QG1p
JkA4M1F1ZXw3eV44dCNyTU1xP0t+S0pCVDUwck16S3AmNQp6LUApMFEzdl9TOWVGMT1qZS17VFRA
eHghV0FaX3hCUWJnSFQtVXFkUTx0elo7dyVfKmtqa3hjXzlZVHBzWEtfKEIKejs2WXVpPyE1USFl
dH1DPDRHOGpqN0M5RSV4eVFXY0x4R2k7NjhFSk50cnUrfHM7PWg1Nmt0RWpJal8haGxTZT8mCnpl
VnYjPXtNP1RfNlh7YnRSQHlIRWFCfjdjd0RPNkVSSVBEV0Rlb1Bod0Q1YVJYIXlxT2hZKlhZZ3Zi
TntZOFhubQp6OStqPHw1TlRSWT1vKjBwZnJSSSM8U29wJXNtSnImPClkMFQrZHpJTEQ0RiZiMEhG
KnMkK3RoWiNWIVBYeCN5eFYKejZZPHtBZXhMUkUtb0NXSSM5PChyXkUoXkI8ZGh6Y3FvdlYoQGQ5
M2RfWnteMV9hVHsxYEYyZCFSfnpVJipNekAqCnpzUjk5b15Yb315JVhkTztYd0x4dlhEcylGQTY8
dHY4PUotT1B1TDJ8b3F7N0hOJG1kbjdqZ04+QXc7KSsqek9sRgp6R2hmfkVEISVpaD5hZlE5IUhH
bipXO3Jub1FARlB8P1pvIX12cDhwZVI/KjFzP30xdj8wKDB5VlZtJnxqYVQqZ20KejEheiQtMDQm
IUgwOWRNT2VzNi0jUko3UnB4SmhueDh9UWZQdXV2N3s8JnR5K0cqJE13WVhKblNtbXU3QDNQeG9N
CnpiZiRPO3VaUERzVTBUazZiQ2pjbW84UkJaMm1JND5nPlV8eCpYRT5iXlJ3UF9PNytkIXBBVSRY
JTVkXm5aPiFMOwp6bWpHdCYmc3VVJkgoQzR5UElhQmI4d2Q4fDNiX0xBRGFgZ0I1REVtKXpOe0l+
ekZ2akRlPVV4WHB4T2lnT1NlTl4KenZNfm4kSU5EIWJTQWtGZDx+R3B+QiEtSUVqWF8tfXVWVVpw
N2NxUXI3WG9EWWdSQWJNVkBQRU5lUGpUQDQrdk9eCnp1TjtSR3NWNEBvZ3VEUCVSRDQ9eTdVV0Rq
Z1claismUmhyWFIhbTwkMzlWQFood0Z2UVg4MGV6TiFSdWlhK1FCVQp6TytiIVpGOTZ7MWVYX0Zw
eEJvfntEIXhfaCU/ITlhVUhPfjtSfTdFY1hKSUM4MiVuQTFYVD1acTVZUF9+NEdCYyoKejVVTnsm
VkJLPTQ7Y0NLeU57SEhUR25IK1J3VGokOz9oN2Y4entncXgxI2VwTXhVbHN1WVdaYEgmMk44PmEj
KFp2Cno0cyltZCNiT2UoMG1VbCRJfXw+VD8oQHhoSzBQeXkhelllby17Q19Ub2Z3MCY/Z3REMT1L
aElnT1BhQnZ5I3MmeAp6b2V9SWhJNj9yUk4mc2x1MihAKXZqIX5HSVBVN0ImK09oTjMrTDFgNGgx
SClKaXthaDk9Vyo7e3BQPjhKPUArMjIKelkoUkwkWktSeT4ld2l2WTAzZUB8NStgU256Vko0Kikq
Vm5vNXNfTWlKcHxOd2V9KU5VRnV+JHg3XkpVdUF3NGshCnp0JDdvWVhQelNpeFI/RVpjbTRtTzFP
VDBMY0hQN1h0WnhjZUphOSRNeURjbn1Rd2twYXp6cUs2cEgwdzMzQ00qdwp6U14wVFFkQ2RVPjZ9
bD5hNDh1U20rSkkwXkQrMEFkIU4/QyZjeVQkcDhMWUdmZ3dobip4akg0I3soTil2R0l2SnkKemhB
Jj05MylsWWhFMDh0b0kwfTQrUWZSLWdyQUNxTz4xODU3PjlwVHtaZ09BdXJYSEU8Ykp9bTtrJUty
eUFUVGA+CnolaUpHKUJVZVNEU2haeyFIZ35LPld1eWBKZSkoTXRqTFpuKnooem8rU3FYalJQVyMk
Uj4oN2UkYFFOPThPLW17PAp6SXl7NHVOQlZIISVecipuUDllYTlJTDNSQz5WNTtrYi0jdkMoPXQp
WD1eUkB3bUN1MyFoP09TJGo9fik1aFBMKkAKekFgdVhkMjZHa085UzE7bWVFfGxFKnMmTCgpVVNv
MmhtaCN7JEY3OFIrOEcxeD9nNXpoQncpOChQWExmQ3B6NUZlCnptNy1SQkMzNz82NWYwPjNnd3B1
ZFNGYUdsXlpZa21HfFJCIU9JSlhHZiU2KkEhe2VISW9xaHM9NURhMW1wXyprZAp6WUZsQkAmN2xN
PHZXaEolZn1nZHstbmRxWUheMlhUa2g0dnpncXkjKDEkT0d2dFhiZXYlNGZaLXF8X0M5My03UGcK
ejtVYSRUbmY8KmolKVRhOXUzcDducVc+cXo0TS0tWEdPe3M8UilvPjlhdXFoTz18S0RQWDFzb0k1
fSl8JGUmSGc+Cno/P3dPK1hAY0pJa1BOVyNxOUN5cD8hMTIkP3N7TX5qPXROQTxBP2Zpd1NRZERm
MWF8JEcoTyQpNCRgOSs1IXY8JAp6MVM9fnUrc2wzPiZ4YDxqTVdOV3k3bTFFa0x0QXppTFAxMz1f
dkl8ZFdAVDhMM2tkaUwwWV9AXjAlbElWNHQ/RSsKelZVNmA2KjhqS1V8NDtFITtFT2Z9JXFgYSYw
MXlhbllZVDtVYzluN3tRIV5eUUBhUGMhJHRTUFU8RGp0Z1R5TCRACno0V01STkskYU9lOzklSVZe
UCpqYjVoUEA8QjZpUzdabyYlYTxUOXdpTn1DeFpaNkxeUHdhcnpJNV5uSUtLJDFfdgp6eXIxUkF7
Jjk9Pih8JThvdTduYHYhZkFnQVc1cztnUVREVTRuSlJfdU9URX4kZT9LbDx4PHAxSEV0K2o9RHl5
KW4Kelo1ZyglVFpmajBNcFFPTkBjO2VnOFRgdntwRn5Ka1dTcWNDM3dLYW9gO1o5R0lzMkB2MzUm
R2YydzhtSCZfbzxTCnoyKWhtRzFkPUQ4cjw9NEFSWGFXfG1NNz1vcDtxUXZ4KXM8NDBvcnpRcSN2
O3B6bDdkOzd1NVE4TEBMUTMxJnkzIwp6JEZyYDB7aDA0UmF5Tzw5fDNZKlU4ZnpYej5jVT5jQ1NN
QGBBNnotPloyKCRPMSl3OT44dnI8M0gmdDJ2PCkxMV8KemAwLSphQVFvNCN0Ujtxal9oZEoqMGdF
bzJDUmVVdUFXJlV3SyRSMTVINVdzMDBELXxtdy0+fVBfJE8zfVV7dz4wCnokfGVNPVRnWGpfJE8q
KmtgfDxqN01VXzh+I2RjbnM2WWJCIzAyYU5NZXtxfDdXLUQhcDQ0PyRzP3xmRUZUVFVjIQp6P0Nm
ZG1KIy1MUGhsWWpBKklad1p3UGc5JUVNSX05aEkkMGFeKW82b3tNUD97NWRac0VtcnpNUUohY01o
NE0kIVAKek5NSDNxQz4xcXc1LVZnMEZ6LV4mMzxhQHxrS1N0emJzPT9lRlo5TXVzTSZtPD07MDd1
Znw8azRfNlRIQG5TQSleCno2TU0qI3BDQmNFNms0UEspZVJNSjZ5TiFkWmcpV1pqfHxoeWcoSHxn
dytDQU5XJih+NUJ2MWJZYVU2WExTP2xqcQp6fDFDLVlrbWI2QDBBUlpUcTN7UWAyWkNEO2x5VyVK
RiU/aCEpJkwmNGNiSU1uJmU8d3JuSm0ra0FpelUxMXNoT3AKenREZ1lgQkxAKXB4bksrOEdqdCR5
ITN9Wj9me31VeGYrZigyQSprVVJYJGVmR2VRQ1M2Vn05MHFhY0k5TTRseTY9CnpKIWpoUWVJMnZA
SG1CZlcwbmpRSVY0YXduI1F2ajRhcDNxZGtxdXp3LT9EYkNRMnVKNz1YX20qaEp3TTcxUm5ZUQp6
e1cjdD1BKWJyRDk8MTwrMSUzSEZQLT5QNz56LWN9ayVMY25rcz9vP040V2lBKVU8QzklaEZ7bUgj
fFcrJU15a28Kekp+NTh6ISFPOHZ0JHEtfT5TfFFnZylfXlR5WE9peFV5YXU8T2loaHI/Nyp8K29s
TD00QGorT3ozQjwzdypxT3A1Cnp1OSMmN19YX35kWVgqU2xuX2dHUnZWZntEfDNYcDJBMSVmTGMr
MytJZGZjP0trNyE+QzgmOz5WcXljbVRTUnp4OQp6T3YrVitkNml4UDIlNEc9N318ZyF6YC0zbnF7
b0tDNCh2ZHA1c0h3alB6IV43ZVB2dSFaX3hJX0U9I1IrM2RxdmsKekFSdnZiKGhicyROT3dzckEr
Mjt1MzZjXzA1YHlmfjRHSWNLRWgqZ3slUmM8eV94YiNzWnpxNH0tMW5TJj05Oy0/CnpDSmI1TzYw
TkdQentJRSNyb2JMPVd8bVNEM3t3Yj0qSCNMQDwzbnRFTV4qZEYmUkdmP1pRPGxCPzM7TEYpZGVA
OQp6PXE4VG5WP0ArZWhKVFZRTnFmPDMxXz19dW00V0h6VVp0RXtZVFUhNDdMRDwtSnM1NkAtWT42
a3B1JnFyVHR4dU4KellLJD9SYzJkOXBlVGMjZV5TK3ZUdUFDb2E1UkNZO3BUc25ga2N0JlhLWVdN
e29ZRUJ2eWElUHF2PTxySE02MkA0CnpgYFlUQztnPkxBUC1zYXRQNSp5Skp3fV8odkY0SHJtcmdp
bTdjdDJQYTxOekl3VEI7TDVtNV5lV2Jya0lTRFhPQQp6cyNwfXsyVTJZTFZYJjdoTDYpYSg/Qmd9
QSplQjZsMWp1WHcoOUxrcGJ7Zk5PeShte2Mkd1dub0pUMSE7WDY9JkMKekAmdTBVXjN6Q0tLX2c7
YFh6KHRYVnkmN0FEKHF7bDl3NFBNRVRmN0pVeSNKZHROQmxVJkUxMkpsRD09PUk1bntWCnpZZU5N
azlwPmNKMCNnaVRaMipSM1M2d2YheV58dCtyNCRDMmVDdyg2OVcpOEUtMXAtdDl+Xkptdj4qTzAy
dGZkdAp6P1YhYzBTMTgjSisrSH1YWig9ZTh4QHVZdCQoK3RyLTs1azhYYFVDbiFyUGgoaUFpfVBq
bV8yeWRMJCtIVipiJVEKem1WNlIrSkpRT0RIK3B0eDIyYzkhcj44RUZ6ckl1WWojJiQ+dnglNWQ5
ODVlPHp0eXk4aS0/UHluN1dMOFVTc3k2CnprbklNKFYmNkwhWEApdUV7NHRNI3FYMit9MWYxYVFt
K19CN2lmSVQqVXtyQlR0bVdmS0dGWlYkKWpQM0lITzc3Vwp6cmFtcWY8dS1xV0RabC1aP2crPEtf
WWhRYHdwQW5YMEVBXk1rZjx+MXk7PXFYTiRxfmB3Xz1yMytyTGx7akVzTncKeiM/MUxzNDZCUi13
NjRKeT5gaSNKMFlBS1pnT0RSSjNSTHx9OWRuVSY1R3NNe1EhTWZaKEUpZ2lGKE1NRWh2cWswCnop
e2VIb2BweV5pME0mOFZFXiVHdTl1Q0E/NWBpQndAOFVta20pJmBzPCVAdTtrKmV9ME0mbTc7WDk7
I3NpQG0oJQp6ajRgaWI2Tyo3blRTLTZvaHYwcTU3X05UIyg4MX4yeWJiQiMjMm1oVHBQKzB4JWhP
IWR5Y0JtZD1fbEgoKVZORlkKejlqVH1icnhlbFNkaGNAKEJ7dTNTZCk4SnF6dlQ7ejh4aEQ7RXph
NlR0ZXB5JjBGeThDJS11WiFWZD43ayZKcmdwCnpkViN5eDN5YjxAWD0xK2R7RkIpTDVTM3F9P3k2
YGkxX3JsT3dXfEJ9eWY0M0g4eW05WU94Y0FPej9vbzFXKHA/cAp6OXJMN2lkSHJiem5gQmBXPX1g
fkZobl5nVVltNTJWZkxAZWZuTi1CaitHP3Y7cSp4YHQyO0M0RWB3enNleUgjMkoKenRXRWNgNz9v
fDcmWGw4YFVIJUphQktmI0RZTHtfaT82SnBAU1UtZD5CdmJqWlN7NjV1Wnc2KElVMj8/SFVVcWMr
CnptNyNta2h8SEBLZiZ+eCZzb3BjU1ZAcXF2VGx6QWx6dExrUyR0R1FUVmhsZ3M7VlIqMHIwNmVv
TFpqY3opQDRYWAp6MmU9KGckZCpeJSllbExxTT9WO05KfHg/fXJuS0tYejJSWSRIK0tlZEpNKHhN
UWIrODFTS29jNjdHUDRUamViYmsKejZQUy1YYDsoQHVqeVVjU1dwQ0FBJUVrQyZjJEtmQ1JRWV4+
Mn5aLXkoUDU/WGhJe2J5c21HV0FEbmJ1SzsjRHZ7CnplP0p0fnRqblVUUyYmKz5mNldhNiRCak92
c0Q3aGNBNyN8RnBYKnl+VVE7WXc5Sl8yTyY4NDk1NEgpYVBaIW1fMQp6VntTPFE8en15I0MyfG9Z
bGN3XyU5fENGTWZBTVlzXmN1fGM4bXRnQkNhKDgxKzJ7YWpnWE5ENXtsUGtDM0RNUzgKenpvdTVj
SjtnR3oqem9eI3BTbnRRYWM7KncoUmlpTCpQZnBGR1F0NGRjYDhuUTZheD45bVJJemZsIVFRRTBH
TlRFCnpUKmI0eU1jLVdWOEV7RX1wc0RVbGFxX2hAKGJ6S0woOG5wP09Ad0I5YmlGRE9wWUxvVigq
enlabGI8MVNuPGFzegp6NFVjWTReNH1PNnkhPlBiaDI2ZH4xMFpqNlhiWmNKe3kzSnJCfVA3JDg0
I0M5KlJKOGpYam0rS1ghUllgeik7SXoKejNhXkk9N20+Xj1WMzFGVXFidXlKcDhxPTR7d3F0eGFL
PH1ZZktOX3dxJlpHei1hfjhKI2Vpcz5efFdfdklTT0lUCnpHaUskPmVsfEdzKTZRRSlyTnktLXIz
dCtuTyExciZXQzxQO0B9SGltOWBaa0hwdFJfQz9MYVBFaX5WKHU5MiRuRgp6S3JBOHg2fnQ1ZTFZ
VEY8WSlCZyZlTkF6KWFDZ216UThlNS09Z3ZudHErREtpSUR4Jnd4PVFjWmFBNGwwS2U+fVcKejhn
PFRoUSlCak1MZmhPeWx2dUZRTCkqQ3RwfEVZb2NCaH1KaWdDUTh5d0lSV2R1eldWMVlfRWomQHU/
OC0lVTF1Cnp6bEw8bl9BVzMjMFQ8PU9OeGF9c0FgXyVod3Y+ZjxaPjM5Kl9zP3MkejIqNnNePWd4
c213N2VoJXN1IWBzPVYjdgp6P1FRRjlZS3R0Rmx4PXRxXypaIXt7b2lAbThTM2s7YD4jcChmJWpY
TSpqeVl8OSVlPX4hPWUhdlpuVEclQ3tJVzwKeikrYGtIYEl+TFctYylRWFBQKHE8WCFuYlVhS3I7
JCZkUnRrKzgyY0ZAQUIoY3J5QC02MmVYTnx0dFUrQmpSOTs3CnpNOTJvMTZ+aiVHZnxgTGYxaE1A
Z1VISnhyKnckTWBvTEd0cz0tU2ojZDVYXl49QSFgcWpZflp1JiRHVDd8RGpBJgp6Vj9PcnV7Nn1B
VW9OOWxyT29ZOyQ5NXBeVF9QKCZOYD9ENFVtR2lgNFd2QURXaGVnQihUS1J3M1NLbUVrPFNXP3EK
enNDY0otYUZ1LWI/fTw7RUxaPkojTSZKSHdJX0diPWV+TnhOZVdJMHkhfXdqNGArJTheO3JXK2NG
PXB6aWp5LXs8CnpqWjVwSFhyZnxfZntxJmBfdkNhZlduXyhwRl4/biUrPDNeNHkrKncpUXBgQHxX
S1RGK1MqMlY7NDQ+Jk81a1VgKAp6MGpVMDlzNGF0dj0he3J9X0R+UylnXyshbj5ZR1Y3KmF4P0lE
UVJKLW0xSUtmaTMkUylyTzMzQnByRThsSSEte30KekYxelJ9dUd3YWw5eno/aj45a2AtV3ZVelkj
Nzc0fFdGX3ArZiNScT0qZXwrRSZuRz5PWm5wMHdhfmJqKzdYJF9gCnoyQWZvbmViR3NBYm9mUnVL
Uy1CTnsmTF5lKWpPbTlPcmByc3IoQHlMPW1BMEM/b1VpOEMxK2hzel9SYip4NDRfZgp6VWxIPz4l
N1llRFQ3YTspJHwyZW1vSShFSG9VcGtMTnxVdTQ3WUZGPWVQc0RpRGtCOWNEPiUtY0lNayNCR2Ey
X3oKenJyN2Y3Pkg4R3lCbiNUQ1BINns3RWpgO1Zke1E+fip9RUI7Km98Rk5QfXlMfXZvTjZ1U30k
N3RmLXxZbXhHbF9sCnpMNkc2K0hIUHdfbGRZLWJPak9kbkttYFdIXlB0cjBUOC10UUcjdyR7ZzI0
bSlsTDR7cy0wYlpTeWpEQWlxPn5+YQp6KTNTVmdkN2wtRiFASXsqJTFndi07ekxVellSSj4tYFo8
fioqWE99JXs8JTtRLXwxUVZ5cEZlPy1AUi1jYDNUUj0Kelo8JkpMZW1EaG9vS29PdUd6bnpkPUp0
Ui1iY0JoOStLQitDJUpTRyVuOypPfHNMd3VaPChtek1JWUcjWUwqTShhCnpTSW5pU2w7KFFMdFJG
RmQlYWN+ZCMjT0tadSZhOXJmSj5OIWRgKWs0Jmk7Rko4KmxjNldQUkFeWVFyfGo3JGFpPwp6Q3w5
e2E2bjgkVmRVNmRCPF5pVWlhTSpHfEV8WUE2MTYxRlpgUzFtOTtXbVA0d1Y7NW5XKjsqMWlIalRe
T0l4RW0Kem55eClDR3skSV5FYGFfQEgrI3g2dHl8VWlnI0ZPb01CQ0RfQzd7WSNGIWRvOCtBX1BE
eDNkKjElb3dSKGEteFUmCnoqO0p8KHBQUnhfdVckSko7VUVDYmlPJVhuaFVyJW16UEB3MWMqaWZs
O0QkWGlgOEh6I15nIXlLYGxhQmVYI09GPgp6Tn1KVDFLcThGdTMtTy0/XkBzeD8qc1ZuWU9lc2RJ
Pnw9eDlSYzhmeVROaHVnbC0+RC16Wl9TfUdnMT1nPyUhKGUKek01dmErb1RiO3omKGI+Pm1kaWFe
XzBRdnJCMnd3Jkd5SUBAeHY5aHMoYD1AajJ8JSl4bkRUKzFiMzQlSy0wTjY2CnpxKXBHbkdtN14r
PDshXzxNI1l9fmA1XytWU2w0PU47Kj1BUHA/IVRac2pibUo1JEc3SkxfaHE7NkE9RjJfWF5kVwp6
ciUhYmxnJXg/amYkIzhkTU9JMWxyN1ElIWBVXzAwNkkkS1ZWc21qalZSZH44QEJtdDVAZjNXeTl+
K1FxX0ZvKksKejRmYGNVREtvZCphNVQ4eUBILUhAISFMfDFwe3Y2dT1rNjtQRH5Id35vdGJnUlM5
e3xWbXl3VHJJRkVGMmE7SF9PCnp0Pj9qeUswRmVCamcoSlQ5P3RsbjxlZj9meHZDRWU0SlJhbFhr
N2tnUjJLWjEmRVJwQTN7Vzd7a00rYF9Saz9VZwp6eldscnE0WiFCQ3VERVhRNlVjbj9CTHJEKWxg
X0gxRGQpfmleWEs+d0dhenw0O3tldCtWRGlRa3BDc0QzeE0wYGsKel56UE1MKD9oQ1ZxQmAjXmo2
ezB1UVlAKXkwVEQjK3Mre1VDJE98SiZhZkIzbjNNbTdmZj0kZmVlTTlvZSUlKVMzCnolSTNqNlZC
STsoM0w7N2RNa1BWQT8lIU1LTXNNXk56Q2RVKzwyX0c9Q3g1dHlReiFiTyVKWGl1YXdBI3JjVDEq
agp6Y0tPbGZYSXQ+c2g9Z3hORmZzdWBzTzU2PT9lbXA8SWZgMDlsRD4mKnItMn1wRDM5WjdnSDAo
dkY7cXQ0MSNkTysKel9HfS1fOHRlTXFPcXVmQl53KVlfJTdkPFBTSyk4NyV9UVdxYTwwVVNrdiYq
NnI5PygtWkNMU0M9VXktSWQmcU9hCnp0QD16cEJqRUBlJFlUZGBRNWpaaDwhXlNRTlh1KXJ5MVVn
UGd4OSFhZkR5c0lmRGIoKE4jZWEwPkRjYGhCZzR4SAp6YE52cGAhJmV3fU9pV0NfbDhBUWF1YSVw
SXB1eHc1ayY+UCZNeEltZ01RJnNKNj8/NjhFYT5PNDhVdWFKYGVPYHMKem5adm18Zm9ieH5Ac1FQ
SFdKPHFBYVN9P0VVSFVMNHptdlVlP2k4JHBpOERoTEYzTXNUbWlYPyhJS0lFaXhWSXBgCnphZmhl
VFkwe0kjJmRTQmI1ODcoJl9RIU1kNiUmdikjRXpJbW9lKmoqQiVlK0BqR0tpfjx8PXNJcSUoWnI8
S3EjdQp6dG1pZk1TI1FPRXF+a0A3MmE8VTBLXz4qe2YzXzs/IVQoSVBscCtUKXR4dHolY2lYVlN7
bjlVc1k0ZVB1Nis1bjIKelF5fm0xSlokX3AoeGFLUjRJcSpZTV40fl5mPkM8MEdEYktUP0g+NHNJ
fDJXdyhOe2IwQUYmP1ZDVVo/UGpxWGxQCnpWM3dYVzk0ZXl2Y1dlXzNNN0R+flpUU21oaE1aXkwt
TiYlNz5MaClMdyE+TDtRPSl1MWVwPWpQe2QmZXJmTHZmYwp6Zk1KKVk5VT8jT08oPnheUCo2eXd5
KFpMK1ZQeWZhYzYtWioyfm9vZT4laigqI35PeHNXXz5ZaUAlKE0qVEslJWwKekhPfWF2eH19PDZw
ZjcwM0pPb3RvblZEeDwkcjhuKlZuUmcyU3dZQSVzfGM8MFdlOFZua0tSeW8jVSRPKnEhTmlGCnpi
SFEqKTh0UT5rJmRadTJKOHBpVCtKJVh1P0xjcG4wY0BQdjtyVXcwcyQyUG5yaEBJLVZIZWFWXkRe
X3B4IzMyMwp6Qk5OUTtkQ302Pm4xWmc7TC1pdXo+Ujc4bk19Y1l+XjxnPGxGK1NiNEsoO2t1WmVh
PFVZVzl8OHBiZ2V6UjAmOSYKenBsQEkoXilRMUw2dHN9ZGRHR2pSRHdNQ3FDV0RfV3lpWHsqcmAk
VjNqLXs4cW5sTU9yM25TI2tnUTVDeTBsejQ0CnpTM2huNUpRdlRiQSQlM1E/aHNFIzU9Q0NMcCs+
cztSS0F2fGFmWGF1PyQ/S19wQXYxQEdKPFFiWUFibj9VK24+awp6KlZ1b2pZUnpAM192TnAleUJ1
aSRRZ3VAbGB+PmFxTnpuTFhLYE5RNmBkan1gdC1Pen56fFB5VVdsbX41JGI2fGIKejhfaUo/bFIz
eWg0RF81I2JiPEZ0Nk9SZD5rKW81KHEzRFk5ciNvSlNoTzN0bz5kVzQ2elpaZmAzVFFyamZaMFhS
CnojKS1EdThEaV8oVDNmaGooUjU5SElYSk1kZEhzamB7QktrenFNRzhZSWxtYW14I2BVZWtSSzJt
YnQjJUVMI3ZMWAp6MCtCVjI4ViU8aEQzbms3e2xgRHxLXnJleyF8MTY8QWdJJFF0RTEreEJZXm0q
SHY8SWs5eXthVTlwUlAjVUtmb2YKek58VmRWRDtuVX4+UW96QHFPfEk+SHAlfDwoa3Jfc24wMSRa
QE5xTnUlP3N5TyZhP2c3ZVBmUzU/aWxGNXF4e3U5CnpgVkROTm5JRTIrWWlRU3hHek59TTYpeUEz
SC1zeUZgLXwweGViM2lgQEFHOCs/WXArVz9faz4tRXZrKz9UJUhVQQp6bEZEX2UxQkt7NTxHYlpQ
UGtvcihXfSEmRXptSmRONi1LcGtQSmtWMzVTSS1JNz9QYVk0M09ORV5UP3lQUUY8Q04KekB3czJv
bXBNQ29qbEV1Qzc9Qkl6M0o2SCpPOVltVEUmO2pEZipCaWNANHU9WCRaZThQcH0rN0pORExTRGZW
aGhwCnpHMmQkaTtDYS14YG9QQ2RFITdIalduYCspOT85NVFvdFgoZEd6Z3RTS1lmMzgpK1J9Zllw
K0Zrb2pNSUw3aXAtZAp6WHRwZFFCI0d0c3lCWVhwYH4wcWkqV2ZwOG9naHRKNVJ4KUJjbHR9V01z
bD90PkJGeH07My1WLXU/cUNwQmE1Wm8KejJGSWxBWG1CdTVlIy04dDs+TTFzYz5efD5MTU5hJXZx
OVUqb3Y1cCl4Q3RIKGxNTi1xdDd2XmoqMFh0ayMoU2ZwCno1JUdRTWlpUEBvPiMmX1dJe0hpTFc1
NUF2ZyRhP3kmI05uIXZoR2xmay0lZ1lAJW9GU1pFdXJQelpefVVZNlBjdwp6YDZZM0koJVlrdzQo
aX5mPWNBSH1xZFJ3bWxkY0ArbzdDM2BfQWBgWjFmOVgxUTVmTGVuP0lZTyluNlhEdlJ8OU4KelYx
M3szJTdDWURoKHxjIThMc0JlQEd7czF7Q2MkOytZQnAlOys+aXpGOFNqZj57QUA5MU9UJHZCUCY5
P0NJVDcqCnotZD51NyZTI2d9e0kxTFdTIVAzNUEyRyk4SVArVVl0V3JRaEkyJF95U0EzP2M7Vj4z
fVByUFB9VHpYVSh0V2dJNQp6NkJ1TUxCejBJTUlea0NFQV9CcSVAQmx9aihTNEtlNmFKSEUlPGJS
TXlDRisrMSM9RFUoTytyJjBLdzwrc1FJOGkKenxFfWFhPHxHfkdTJFRmPl84Oz0pNDVNcjVqTzdG
WmApUjVORz9kbjg9ZVQ9Um50PXo9RmQweWM8OEE1NSRsUXdZCno/UD9RYVZTRD1EblZqeEdpfU0t
JGQtS3g7Z3NHYnkhME5hayt2IVNAT0lOU3k9MlQ4RXkmYCooRUg9NytKPCU2JAp6TXlVXik5TXtR
bykpfDxwKiRfdHxQRlB5TCojKX0jVTl4Mjxoa2k9VntuckhfVGk1enUxNEJhQ0pMRWRSKWMwRG8K
elBEU0M8aHRNcns9dTh3M2E/ayZpbmFWa2ljQT9vflQ8bmMySXxwbV5ASGJNal8ke1V4ZUdjenNo
QD5aVyt9bStwCnpDNX1XU2JVQmVsIWtkSWJpaVMleWs4LVJzWlVqdFh7QkxtdChSJHgkOFphazkz
X18yPXl7WEQ/OD5aIz5HTTVZPQp6SV5XUnJ1LUtOR1ZuI0RrRFlJPWphZyNRUGx3ZGRHQUhUPXpx
ZTUtS0xSbHdgSHMxWnF7NUN8Y3NiVkZvZippTmoKemk1NmpPYkg1KzA4d2dwYXVnMiEhQjRDVWN7
NVJKSE0pMmktU085ODU/Wk5GOSRmOGp2bzdyKkVBKlg4OG5gdTBLCnoqaVhPOXdAUXp6SykjKHZI
IytZdlhvPnxTIXE8T3EyZzEjNTA2c2hlPn0tPDZGWEpBYGI5K15heEFAPnBfRmBgbAp6KFNFflhX
biRLfUdvamM1ZnhHX1BpSyNGUT9RNHNtQGhOP2hzKlU7U0dNO3smcyo4VmUrVD9VI1djUysyTD19
dmUKekN2UV9HJHUtcWs/YSlwc0NJYlhWR3JaQ2t2OWh7K0NkaTVCMjNgQ1YreUBKazApRE9FYUtM
fUBzSDYzaztRbVBKCno2JHReWXFHU0hCLTF2M2oxMnUqQFhaU3Jua0hMQ19Xb0MheVRiIW55aGdp
SHBjVDd2RlVZbU5WZEd3WlUlQl9RKwp6bThOQnNxP2pfYmdOZW5kQktWfnAoYmR3OVR0P0hsbHMl
JlE+O1E9cDgkb1o8NH53LWFDaCVCTEEpKHFtNHVUfUoKemNPRGgxT0o3ZS12Ky0kR3BkVllSbUYo
NXt4RyheSSNfaDZRRC1zViYja1hZK1BpZ199U1pPeyo0QEh9VjZ4czd4CnpFanRaaWVBJlpsVHBS
MlRSTExjLW8rJllATzRBU01PcCFtUmwlIUU4bzM/czIxSmRFOW4wX0A3VXJLTj1TN3lyLQp6LWxo
QjIhR0lEaWdZfk98YnJEcCEhWEVlPGBtN2NSaklpRktXJCgmeGArYFR+KWVefkYmRFU7X049cmVA
XlImdnsKej5Oc2xtVWU5ajdAWG5CV04hQiYpSktXR0Q8PnM/MyEoKTF3Qj9fNVdnUDNqUnBFKmM3
eX1mRHx7Iy19LUg+clIzCnpxNnhLTGYpNHElc145P28kSXN7ZCptTERKcCNjPmZnMyZ4bStRYEhP
UD9IRCgxanorU0EmY2xKdDJlaT11R1VSKwp6SFZ7PzwxMT55fFUlNkAmdSQyaSl5ZD8yaDImK21I
PyY4QFVXI1lBPyM4Uk0kWVg5eHMwI2xETDU4bipAKk11RkUKellEfFRQb29OVGc4aFpOdkRMKGtZ
P0dlVClMY2p9PSp7PjNIZEJmcFhteXhaSTg/UE0yYCN6cWRmaW1gY24mSGB+CnplQk5UKGF5JVZQ
YkpjUUtjcjV1KGNlUTNNb0BPdGVLKkVeWDUzNXBTNWEoSXswMUN0ezxFOylZS0hsNiEpPFAzNQp6
KyRWb0ctfUdwTEVqLUtgREV9LT9CZ31rJGctM0hHVj96R3BUfXdFeHB7ZzxVNjd5diRfMSYyWD1D
YiM0ZmAwdGwKeishMXBeRjMjKSQwMD8qfE1NOGtXV1hPOT10cCVkSkZWO3BgUV5gNDRWWXp6SlZk
enVSeGdHdGx5bWEzMHs+dE4yCnpUNGNsP3NkNCQ4SGZCakcpWEx3ej4yRnYhISFBO2FVV211ZnJC
IWtqd2BQRio4Wl5FQ3ZNd3wxQU41OUxCKHRKZQp6JEkldXlpYH1eYlopQiYzVVI8R3N2PU88UyRZ
XkpkNkV2QmttJD4mYWZ8WX1oMk9GVU9rS09ERVBqKXlldyQ3UjUKentwSmhoekU+RDthZl5Ne1R9
R3Z7LTZWeUFzezhUNiEoNVNiPlF+e2k8ZEM2MERIYFI7WDBgZ08/JFBtfitzTWwyCnpfMDUpPCFo
bChYakhBS3xmZ2xPZz8wOHg0aDFGVVFFbk17VTVvSig/R1FjcEhWbn1DRiM9MX1LOF9BP3M4ckBI
cgp6cFAmT2xESH5fODZBN01aUms2alZiTzJNO2A0I18tM15QaUFLWVNQNEgyVEt9Y2BBfVVIK2ty
PTgjZFo4Z1A8VW0KenN8JCpnR2Y2bnZZfW92ejtYYDAhSDA0PXFedWp4UilvSSRKZG9MJSotb1c8
P1Q1WDNjN082ZFh7fkwwPDtQQWcwCnpQRmJ9MHVkUGw3ZEd3QFQ7NSU0I0tIIyVEJW5ARn1vZDZJ
SW9QJTIkKSRsUEJSTV9Zc1ZCLT8zXyotdWpjRDJeUQp6dFN2fH1EdjBtIUB1KVo9dG5Rd2paMklx
fTI0cjhNZDFyekY7NF4qR1VlPCplV2lsVzZBa2M3Q2hOSHNlJSFoQFkKek50ITVxRzckWiVvJnxg
VmM7ZHx4Jjk0d1BCfnFFUCk+emQqSyleRzU2ZFRubSZyZkxPJD9JRGVYTklrLUV2eUMkCnpoeFhN
KzlWUUh1YW1NYH1ORmY5eW5wKHZUVV8oRzhsNVdAbmpsLTFvanR2KiVpYF4pPGVGNj1BTW1PV0hf
U3Ntcwp6S2s8Y2RidylKQkNsfHM1K2lpdF8xbTY9RnclKSQzXytyeko3ZTU0cmhDfDg0alk8K0c5
TWJjUDxuQXdFOWZ+eUwKel9LNUwzYDZiTms3T1E0e3J4bVdpQ1ZUYUkqUWFvODw/JXpVY3xkWjVV
UDF5QntieTJ4Y3A4PH5YWlB7Zl9jUXZ9CnplVipwSzQ3PzNqSUd9NUJBZk96TmdfNHBuUkYmQXJo
NGs+Qnk+OzZjd1pAbkBGWXpLeD5jQV99KFVkZVZaPzwycwp6Vz93eCZaVUowPzN0TG84Y0pQI1Vy
PF5XTkk4LUZ1V3x8Nkx7ZD1yJmhkZUZ9U3wmbHNpdG11eSVxTnoyNzNSIXsKeilza3k5ITBJQi1S
SHNRPTlgblolSHJpfl9gfDtQcENqdnR4LXs/WUBrelAkYWZzITk3QDY/fU1EK2toc3NGeUZ3CnpK
Y2t5NHlzP3slKldBJSo1eTVYNWoxOEEzQUMrJS03bG47PWR5a3UjeFooXyM8VzxkWXFoRHdtM0Mm
NSFsVTxBfgp6TzN+Um08LURgJGQjfEx9VFp2czlgT18xdG0oJGFtNmduRDVZVUVqYktZKHp6aipo
ezcjc0VLWEx0TF8rNm5lanoKemQ1ZkZDRH5xS3RLdUgyYzkpdXx6QWskdTBwXjEqcTEzcj1AUUxL
NXxqMFk9PkwoQyt4eXwyXykldj0qPV4pMVJyCnpOeWx7ZS1lPnJJZTR8WTJPenwkNGppbU1PTDtT
diZGNUM9ak4oe1ZzRDZ1ZSZkSVl3eXFfd0srLUwqa1V7c2okYQp6Qz08ck9PZzBTRU02MkNqKXFB
KG9YTj8wajFCT1gpTmhBWEB3PjN6UHV7NS11I3h8YjNgSXhFbSl9NX1BKyl+QCsKel4pZXZMc1dJ
fGU1YUBSTzJrKWZkbylJMGVQaCk9Y3NUJH5VZChXWmVIKCVsJmRKaX03KXZ3RigwUnR3cGI1dXI7
CnpsfjREUE0wWjctXjIwbDgoVHMqSm1sMkdLSmotUWhkJXokfEFVODtvbFQjUTcwaGdSZyFLRnkl
ezFEbyojcn1xQAp6SHRvUEs5eXFnWCVhUkJHbWJ1ZFZLQHdyJklaKmFHdHk9Q2I+WCVCZj1DYllF
Wns3YUZYQ084WTluUXdvcnk5SEQKenMwPGYhNHdWN2czez1hMS1UTlBmKEUrTVEqVVlTdnpuMTUz
QChVKmExeGUhUzVGR2tTTzdic3NqPl4lXnF+PztPCnpkUTw3ejVFWHh7V0ZDREArMy1qOylEZ0RX
TjBpcks1MmxiTCZBTCNEdWdXJjtIe2ZLeU9WbD4lJVo9JGpFPUx1VAp6K14kT0VKP0lUXyZsNHJf
PTspVzVkJCRTdVEoJjYpb3Q+KEV6Xjc1YjVrI1NZXmBZQUEmPHxHJW9vNm1LNXk2PHgKem4jJlhR
SDswYVkzSitJKVApb0llU0pOb045cyV+cWo1TjszQHVTX35xQkk/Nz50aVpAbiMjKFFNaTkmO3Rm
RUZVCno3SW4mPjNnb2IzTUopR2FLMmx1byoqYHY+SF4yWFcrdlhqd0xIR0NYdDQoM0xOVFBSSz9Z
ZTY3IU89QG5SPTZQWgp6ZDAhRm1oeSFEJD5wNDAqZTJyYSNTSFRBYzNvUUpTS3prJWg/eHpKdkdC
UT8kRkUkeEk8PypmN2tENW80YF9iWk0KekdnVy1TT2diJVglPkdEQWchQnhLc19YQiFDQmAjd3tM
SDR6X0ZEaW4/JD5NJHl3YlFeWTVCVCpndV82b3pfYSQqCnpKM2cpSUtDeTc/PEV1SFhKbExFJiZN
KFopal9Va283Qz15al4wezxAa3B2KnRKKWBWMmNyUyolWjFKfW9zO1NXVgp6JEBTJXYjV0J1bkdi
filaWUBETT5mdUEyUFpoS2E0M3p5PitfJjx9fF9IfHBRPSZsfC1iN1JyVzMhKno3OFE4WD0Kel9R
bk9KVVp4JXtSbUs5SWNvfTlVNkwzQWpGJm9HXktGb2tMUkdBc1JrbUxUKkAxdndLaT0rNHl6Jlco
QVplX1VMCnpJNnJ7e1kpXiNaMEBoSnAzIXFrRD8zb3UmeFBwRmozM29COy16S2NgWngoJHdlO3l4
dipQdVNZKT4zezdmeFREVAp6KypVdXgkWFowPkh8fDIzTWd7ZXMqOHo+PXckN2RvVypYVDZXMWs0
KHJKaUh7PGJKKiltV3hrMmFrZCUkSSgwRzkKek5KamliVElUQkBmfkRnfV52JmFVYVdfWUowKUJp
blJ1VUQxWmIlenxKT1E8by1nSyNyQjw2REFYNUAyd1U+YEJhCnpzUjQ/VjxDZjlGNzUhb1ZRc1Fv
elRKIyRnbEBeKGsoPnBed0V9TTR7MFFYfEhoe0lDdlMqZmlaSWlWMCVzRWtVMAp6PzFjeW4xazcw
OXZtRks8Vkp9VW4wK3VLMHh+bysxMl9XRl5ufFoofF82K0lVPF5+c31qdkd8bTZoTWNVWFBhe18K
emUkfFEoaWp3fTl6NmpEM0EjZ3FuS21feFMqKGYkNz8kYTVwdT5Vc1g+SzBDaih4M2RoMVI2YEVV
VD8qOWF5dF5fCnpOVkJxPUc0Tk9iUUV9N14weig3NzlMKEglZm49VWIlbHtldT5DQEA8TCp8dm9v
Kml7cCozKyotJHE/cT9KVDtSWQp6OTEpZEwtUnshWnYwa0M0UG1TeHE2ezBKdWxjV3Z6OUVobEg5
cihpPEpgQilLWkppLUlpby0/dkp5YzM2YVVTfEUKelpsTHJlTk92a1Q7JW9KXmVpQVlqRWNxKWRp
KTdRbE01e0E9Qz9VVGdxeTxwUU82M3QmWW1mekQ9UFdvYyYxPig2CnpqTmFRI2NkUDlkOG9iVExr
c25HWUFncGkxVWZQI1I1e15JVVNUeldVJHEye31yLXFFbVE+bVhsbUl8WVpAXn5kJAp6cTZBUCZS
Q0JMMnMwKnlnT1laUT5WT3tfPXImZ0E1RTU2Uz1AWDluZTx1NFh+UC1CMHkhfDRsYT1ZYStyUGck
JlMKejtITHxNX2NMRn5EKTZ7IUwqWiZhUHRtdUR3JEdqLXpRfW5wO00qMGE1UXF2P1FsSDgzOERo
US0tZV81U0lYTnhPCnpYQjVaWnFfcTAzT1poY3ckcFNwZUAwUnAtQyVpO31mQ1BVOVFtclpOZW0x
Qi1sK1NgVk83MUVydFVncTEpPW1Fdgp6dj9JODNpKyFDZ2shUGJuNWZOOGsrcTJzTD5nMi0xbzda
WUpGcVV1JjFvfVo0R0piNHRnSD1ub1laJl9MKjQ7OT0KemA5Nm14dFYmPFBBLURFUXZDP1h9VmBo
djxvdGckMj5YSFFIbX1hJHt1cDx2JWU4KG97Q0Z5c2RIUVYmIWBTWTVHCnpSc0Ftcl4kYnxQPDFy
MkNINF9oS2R9VDxwKXQxK2RLb19SUHZiN1FqblAmSGRnO2J4P2UtR21DR0Q4MDUmfTM7Jgp6SzZ6
eWJPSTl6I1g7ZGE3Rj1MPnEkQmk1SkE0eD5Qe3tAbk56U1ZDMXlaTjA5O2F3dSQ5IzkyWlI4V1h7
KUg/WXQKeig7NzU9MEV6TmpCQ2FDaXpScE43O0VOVFYhOGFLYS1gVXkqKChFbnAxZylOMldlV1F8
SnI7PjJ0ZWd3Jk5NYGstCnooMjM9LWZidzd7PTJzb2V2NDJARjFMOTZ3cSVIcn10ZEQhUTJUZjRw
PHl9Nk1FUnVHQ1FiUVVYVktLQ0l4ZztqIwp6diNeKCRyU2JJK25tT3ZgSUJvZDNxVi1HNnhNYUM+
YntZVkd7eFNeJUJEUiYrWT5TUGQ1ZyomYjJvT316ODdSZmkKenFhVH1MQXNuSl9eWjNTQkUrSXNU
dE5TNEBWTl9PfnZke0VGQX17Sn5VPHRGKUs+b0VnSik3SDhFKUc5KU9VPihpCnpScFhGRWw7dHBV
cCpfR1RZI3BFQVMtNjVZLXFCaTk1cUZCZ05fPFNBX0JUVT9qdmxebTcwZ2gpS2w8QCt1WnFVfgp6
Sis2T04hNHxOPDtvRi1ra05BZ3QzVSN9MmRgJGdmNGhSOHRIU204Tkk+RHh5bSEzJVVfZ3hJbUJJ
cktQZkM2SC0KemZGIUdnKFRacmhpZXFKRmlzMDU0c2Rse31sfjBHZ1JMZ3E5eWZ3VHdESCZFVjJo
PiNKIXhIRDtKfUNYO3FaRF87Cnp4S0ZVXlpkcHIpbFEjJnV4MHsrVWJAI0ZIRDFnWiZtZWghVGU3
cC1uWjxoOXkyM1ojKS0wYE1GTDxtMSYlKUM4KQp6ZyZwKEpobEJyYVBmUEQ9dElpeik1ZjV8KE0h
Yk4+Rj9rVjg4S0p0WGhoNTdURn5CYUBVOTBHI0N7ZDtQJDBYKnUKekY8KGpfKE1VSGx7PHlXXlN8
eTQjbE1SPnVaYVMySEBsV2NUPHw0ZlJkOzRBSj1BaiF7a2tQWG87JXlQPmRXfVhSCnpXI0xPTTVm
IWUzUUBQODZwa0VjfjxucmwyJjI+TXomdEM/YVVGSXVuZG1kQSZKdk1rWlJKZ2hIUEpkMm5MRnhI
Vgp6WkJpfXAoZFJ7MW5qRU8lckA8IXIrZjh+PVkwcU4xe0RGeEYkUDFmTFNgeDktTzApUDtfOTJt
dGI0elpkeDBpemQKem9RTX5DR05GTGJEWmJ8anVyQFZ4TCVjNGVkdlJeTnF5PDA8PEZYXjYkZ2t4
UDRRSGM9R05xPz1XejdvWEtfYUJDCnpsPj9MZTNeZTwpQGRAdGFjdCl4Z3tfQFgyXzJ4fUFwV2Bj
SiM/TmxzWkdaPVFIMzVyUTZEWD4raFYpZi1pUGRwLQp6eU9FRkhpeSZNYHA2a2N4NDZhYkdjNjxm
P21xZGZiOUE0elM/ZV82blBlYjAwZlpOPTxHa3Z8N0RCRzZIeEV0e0EKekIkVDlnWVNPQWFfWXtF
O0sxViZjK0hWKCNJWVp4VzVLLUo0dj84e1Qzd3FiN3NAfT1CRCpLN2NUb3M9QVVSJVUqCnorKSR2
S0Rkb20we19nckVBOFJiPkxqa0dARjJIeEQzSXhtSE9NbiNAMDkoQHFBb2gxaFZGLSpKSnwrZTEr
VFljJAp6MGx5WXppaGUpTT4peVE7KXRGNXkzNDxveyYjSjBaLXZpS2wlPExyZkJTQzVSUk9ZKHlu
UXJhekx6d1JVLTxPIygKejB4KTFLemhRRWtrb141SztQb3Q3NjBBJDg5aUx2X2ctdCRJSTVIS2Vu
TX5gVU9QOGBYZEFMLVkmO31rY294UzFrCnorP213djJ6bVE/dSl3Pm9QK3Q9VStQTFdPMHwwd14y
bnBgdVNsRnt7KEJCT3pzPXZySEduTW4hb299aXIrQSNmOwp6NmFtbTRZWj5Mc0hPLXUjQ1J8QnZi
azJ6RjlBO2NUQGFsOSY4OVdeRG93NlMjR3NPU3dgJUVYa0tta0V7QjFueCkKejMzKnJAZE9mY2xv
eWFQNFBTMWltbHNULXdqNDBqRnsoWkxCYm8tM1RHOXA1Rl9jeWZ7VTJUKytwWjI3QVJXY1RzCnpy
S05JKVA5KnYzXiNHKEhzY3s+MlUoPz16QThsbzxsOWo4aTt0K3k8WV8qeUF4RlYlcEBZI0BXKz5t
Kzs7e1g5cwp6TS1iVWR0cGFuQjJZNEElMU5XdHpifm9jUCt8QjVjQml8Z3F1ejQ+cHBXQXJ1dSN3
Y2JmeXYzSklySFl9KEEkTVMKeipNWXhXYFUqaG07KC0/QXArQDElMXl2eUlKYnJiJEZENTd8JGJO
djR4TUEkQ1dxTSM7SDdGYilASnR4MFcmWkU9CnozWjNMVXdvQmFQeWFhQXw4RlYoeEdSaVgxKzJh
RSpvTXxZSTZ4OHVgajBpZ0pxfD1PQSEzRlNeSnQ5bFlnQFhPdwp6RWBXPzNORjNDKGxBWileU3Yw
a1hyeF8lc1pNMyotJXoodDt6TCVsKElaKyRgPzA0S3h8TX1fOUQ4WVdueGhIK1QKemNiRzhHRD9p
fX4pSWUtJXMyX2NiKH5TczQyQUxoMERsWilaa2czJDVmVnNwQkoldEtFbDMydUZkNkooXntibGtW
Cnp5SiEjeTMtJSROVGo3YVZLfHZkNkIjKC12ZXtsNlFGMzt9IT8mSVM9eztzNiRPZXY/eHU+NjFD
ZyVfN3xDKUJCSgp6dEB4YypSeD5ucW83NGV9cm5RTUdwYCgxR2IhVWRVSnpLIWJyTzJCM1kzMyZo
XkZUP3ZQaX1VMF56OWFKPkMmYnwKejI7Ki1XPigxUkJzfFRWcl9MVylGeD0qflg0fVgyJD80X3gx
IXZZfTBSUiRObzRLemcpVGx4SyokbFhPKS0tV2c7Cno7UTIzb3FtWDtaZlJIRnxVQiN3LXReR04r
cEVoKiNKKE1aSj1IdU0mKlB2PEZYJl9JbzxPfTVLaWU5fSUhfSUqNQp6NW9NbXxEMn5lXyF7X1Rk
IyFPcCs1JjloQUxuNDBQMShHJCs8RUckMXRndSVkM2NZKklqYXw/bD16PT1IN2AlKUYKekc+K3tw
bmtvXj9ZfjM4a0p3KTZkdj17RnNje2RlME5eWStGSjtlTTthOV4zczIqPVRiPiFxVz13NX16N2gq
aiNECnp5ZGcqVzZ0PSUze0RCN1hkKkBUQ0deM3RmOGF8RTsrTWB9SCM2JjszeGVpRylScD5ZZkx6
e1ppZ3AoNnskVX5XUAp6MEoqXzwmfTV4TTMxWi1mSCpaYUlObktGWWpee2MmM0BqdXhDQXJAJjxz
WHY9d1BHd2A2JmF4aTlNQ3U4IVZ6YmUKekRvbU9+RC00PXVOUCpgYnBILU5rQiQkYXhRNkN4cFZG
KzJ0OW9AYFFeVilNX3htRlg8JkUmVEZYSlZlK3JOeCteCnpaRnIkX1lUYz9maSNyKXhNbEZ6ZkJT
bFdrKE5CcClkUCR5LUB2NmprTCVUV01GI2ZZWnRWWTVSYFZFQWUlKU5JQwp6LVN4UHNpKVQ2dEot
YmZeR0lLIyVtMWNRamI+MyFeM2dVNF8raGszVihYaV9PZXNQOXVWREJUQ3sjYVNIPXd0ZmMKekJU
bmYwbl9tM1ojWTQjO1FYQDZ9T1kwQHNrUjNraylUfDhTVlIpbGliV31QXnlJS2xtV0lFJFdYNj44
WC0pbClTCnpFK0J8ZE5LRE0wRnU7UnBJdm1ZJClJVDVOWG5QWU9idDE5PGl1U3tETDZDYzZaZyUj
PWE8amFzTjBYbk85cUZ2Mgp6ZX5vXkZrbE1tYyQ2RWZiRHd+Qyo2K2ZzMCV5Xz5CPlIhNy0xP3s/
JG8qeiR7Xj1OU2pLUEV9PVB9REZZMU1QV1AKens8Jn1PQ3E0UkIwJDJuQVNPJTs0Yko4QlFFXlJz
eHQ+U3xKJmQ5aGFZRmE4VEpYVS05YHt+bj1nVH0lZU1iX0BGCnpSO0FZKGF7TCNQcTFBLSNlKjAt
VVgqZ2lDKCE1filiaVRqNCFmRU89WXFaIWVINGlGdG5Ha1BmdTRpblc9cFM2Vwp6LTY5dFdPSlJr
VUEyN2IjQ3AtcGpXbTBiU3lAYzR+d3otY3VwOCVGOFhDTUhqNjJeJWRyMGBmNDRsc1d6NSs0U2MK
ek9hQTQkU3N6P0RoMFFDd2B2dj1taF5wLWB6c2tLIWdjZz88KUo9byFPTDVCSnJyZDJNJDFhXnlp
YU0pRU15UGM5Cno+QjhUSHRMcTg+Z3FlUiZHNzk8QihLOVZ5ZCNDckVRKGAla0RtXkV6TCtLQGE2
c3JUWkFHZHA/VkB7TlpwSkFUYwp6UUZkZ1hBVTEpcnxHMzVIN25gJG4heWErK3g1KGRUc3RULVBn
OyRlfTRDd3h7LV5nWDJwN25rS2p+bEBIaXt8SkwKentjRSlYa1M5WDdCbj1TYWg0T1dZSD5gVjte
WSZLTDdASlhJJlBFRER6RWAkY2ZMN1BQJFR8diVaRERpJF5QVns5CnoqWE0wc3dxZVg8PCR+TH5A
O3dRQChpe1M5Mn1ae1o5UTd9O2JaPkJlRmR5N2E+RUdaeyp9WCRDU04kJksjNX4lKgp6b1ZmUkVz
Y2x0MjF8SHkoYW5vdlJLUU8kcDA5WFc+VzdyTVQxLUQ/SWZnM3RNYiR+M3VEaHBDfGZiUXZKalZp
VmYKeiRFVUdkMUtmUmhVQSt4Kjc9diQpNmteXndKMnpefTZXc3t5Nk43KkB1dEpCUzZScSk0a2Aw
c0FsU2I2VXI8MDxHCnpIMU40T1pXfGdkYiorSz0rZHV3NyFhXiM1dzI0Rmk3RTdzMiV5MzVmcE04
VlNPTGgzQm5EXz1fQj9FPGFiQHZAdwp6cXZDdlY7TkU7Tz9qM1ZPMj0lRCR2OylSSnNqSEU1KEgy
YW5fZzRAflNJX3dMY3UpcSttYl5LOHcrX1l5UndAWk8KemYyXipGYFdrJWd0dERYRSQlQD5Ub2wz
bUllVTliaGY0OyhqSVQ5ez1VOFcqTHtwNlZYNz9qPDUyJU43a3YmfUskCnpPI2o8b0ZoZi1Be3or
Ums8KlNNKyNicEl2V0lLKVNtUStUPSt4KU9YK20lSjJZekchMV9yYShjMXw7Kn5naDkhaAp6THxE
KE1obipoPUI1fnJZNngzPThqcztrNGA1NEZXaDlDUzFXTShNMFl6Xj9uaVFMYGVVciMpPDZMO3dV
bjd2eEcKemdqdX18Sj45S3cpeGdUeCZEdjtEWHQ7Qmp4TDlRaj9JMjk2LS1mQU4jKVNmbEBCTGxw
LSFiXnRRckMyTCRoazI7CnozbzYxQFVfKSl8XmpfN2JgKEU9SVJHTzYqd2RMSFElXmV9MERhMVN0
UXJ8WXF1ZiszRE0lPk0qPGNfQGBDNns3Vwp6fE1+cTJFVzA1Wm8zWkR9VE1mZlBFTWZ1MTJFU3V6
bmlYKlowO3JnZVd5V3AxX35nNEJFVytza3ZuUndGViF4bU0KejNFZlVXK0BHYFlKP2JWYSpLMFY+
PGIhVihPPGk0azJNSjM0a1FrbUlZaDBjRXtmcXhEdzNjJW5VKyhMblk/JDhXCnorYnVpQ3o9K1ZD
emFpMyVATF5mWSNINUs7ek1aeWhKX0woQmZSazQ/USh+Plh7bVlHTD9qIyklVlJFKG5MJTE0QAp6
PVVhNGlhO1ZBOSlCey1YI0QkN2VWTkQzfWZ9eSsoPnFlbk1xO2N1K3JuZFQ7WlU0P1lJP0ohXzYp
JV96TXRLfFUKekt8WHUlVFojSylqO359eG5nWGlHcV5Kenwqb2wzPm5KcHRwclI+MmUzTyhFfDth
OD54YyNqenllfjhOMXdsaSRfCnpyX1YwN1dvZDFASjhke3swcCVUNjRTMTh6c2lEaWRxMnw5cSRW
OUBVNjYrQm4zZWBTO2RCOVReazkzUnJeME9OJQp6elAyUW0yV2c1b3pLSF83bGkzKiFpWnBGMz0m
TW08ayNjTUlBOGBtcHZ1R1dVcUQkKVQlJDdlaCFJSiFjRyFZOVIKem5rYEZLczd6M1kkX3VKaWVV
bnRkZC1iO0BIUHN8b2gjOEFPLTJDISFDZUVeRipRVEx1eGArNj5fdnRNTEdkY2tlCnpNeXZAT0w2
M1E0eH1+USszPXM3OU9oK2JMeFV0Vm41RU9XcjBxNmpHeWtRYHE2eCo5ZEs7TFZVRkZaZHZgRDVx
Kwp6QyprciFQblhOTDY4NkFHUHBJVjtDUkxOaWV1JG5BTWl6RXJTZHh9NURPb0JVYGR5RCNiSnVN
M3U3KlV1RS0jTVQKemBVck82ajRxQilIczZoOEg3IXBTMjlrKTBXaWJEXzlOOSRtPUEyUnxuQXxA
UU1GeXlKZnJII2xyYkIyWCliYX4pCno+cmlAT0RGbCRmJWwhcXkwc01wKWRCRTlPSytkWkYrQm8h
MnNDMVM1UHxlWDJxNnEyVFk5VDtEJilaS0I/NiZqJQp6UGZKWFcqR0tvJUMyQClLQWpAa3N5d2lT
VUY2UD58VjQoOzgybjVOS1MmVT9xWWIyQmpMNl9XZztpeGI4R1Q8PTAKeiRoKXNgYV8lZEtxblVw
SGN+eWomZ29ZamAlPX1zbSFlP1VKSV8yN0smWUB3U2dZVUV0OHRlcTBFIXwjfjRWX1lfCnoyP0lL
Q2krUVNHZzQqfTc1bHBYTUQ2fHFzQHJIQmBfZyNPLUlyUmEpbzRqNHg2NTghbl9PJVAjZX0lWnZM
ZSU+Pgp6Pmc4NXspNTVvdSVXcG9LdEdZZElFSlE+YjJeWU5OK1ZtRXMoeiZFKmNBWDdOZn1jY0lk
YFZwSHtwQldveCRwJD8KektKalBoLUkzPD5OcUozcDNoUUB4WSZDWSlEKGQkN00hYVVqemM4aHRC
WmZAN2N+PHElNGs5ZTsoT0p4ajcjUDMzCnpPR2woekYkRktKYWc0e0ZPMl5BLTVQMH5rZUA/blBL
cXJOK2hyMTc3LSVSZF5ZI2VVNHlAJWZvQGtuXkFnU3JhJQp6QlNIdSpJbkFpOVMrYEw/ezlWWTBD
JEBXTUY2bnkoRUNhfHpoS3ZnSTMrYjBxVWJzNjlmQTdGO09HbVhVQ2FyLWYKenhjQXomR3lhPlI4
RHF1YSNWQlRVUX58Wl9uY31lQWZLZ2I+dWF+NWZjTXspVThzWGxyVGNZUlhvR2NxfUBhdm5YCnp4
WnFHXkRFd3BmZWYhbjZtU3h4TThIbmAkQyRufl87fTZNIWlTVkFKO0JeYj5vQkFOM1hUc3FRZ15R
NlBoZCNxZgp6eVZha0hPWVozUilKenM5YTxpcGZGLTYqITElKF45T0J7eCVBaXJUUlVAWXpmZGVp
WmNvM3JHa1RGJF9SQWdpdTQKejROd3dYeV9KPjNhJVgre05wa25JZyk9aVZ6ZllFbEVSTFMqUHxf
ZG5iISVhYzRkXjhVPDhBSzxkM1N4P0NZbWJ0CnopfEJDe087bXtVejlqMmB7b1AtST4oIWpoLSsh
VlUxfUhtUDhtc3J6dFVYeG1lTlVQQnVYVGVDcDR7OGBGYXtLSQp6QjVvbUI4e2t5M0UrfWRARCk/
Uzs4a01tKzA9WlY2YGBqXiREak9KM3dzeEI5eXVqN00/QURtaHp8LX1EdDk/NTMKelUlNEx3M2dD
Vk03OXJPUnEjMmdrVWt7QzMzeighOEdJTGlyVmpucF9KMVJ3bUxlM3dGMXNyUyE5V20/TlhYaExo
CnotOEM0UG54R1RmKSEqa2dWM3htS14tVHNMWi00RnRQNTJuUWM/Pi1gY1hkWjZDeHFDdGptaFFq
Rz49PEZkPlNUeQp6aGFRTil1WVVpeUpQMkBkYlNCNE1VcHdgOVdPISVVYz83bSM4PHUrfV5nQGJv
d0RFJkBWYGZCbExvUiFqdEZhITcKejxMXyNzaWJueD08aXlLcWdgeDg0TTNeeitmfVhhNUN4cyFC
TlRLSGdBKkNXOExNXmY7V01aZShFKSZNfmY+N0xACnp4OT5BSCp2VDJBay17KEkzcns3Ykcmbk9N
KUI+dSpBPTtjMTxNVlF1Pno4c0ROZEtwOUYydGd1KEA7e2FxVl82awp6IzlMMkJpfT9gMWJLQSZ1
SVBPMjRVej4oRU8/NE5KJkpgbWR0eWZOU1NmYW1jTyZnekItYn51UWFkYnFBJGkybUgKencrTi1I
KlUhNj5ONVpaZDUrPHl+ZFZ4fVlPczQmJjYoMSsmeUVYKkBvOEhKPHF3OVBnP2FhJllidTY0cnZk
R1l+CnpBTTA2KUBkISlLP3IxU2EjOTt6dmZDRGtMUjNFSjc/OUI0SVkpISlKTzRLNFdQfGdBc0xi
NnV4c1Q9JjlWbV9UfQp6KFZ0a01VUC1eOD0zQ3FgazZuR3pCdExIMDV4M1IkeGJocVAoNnU8P202
PDBVPUdGS3xtKyh0d2Vxd1c5O31HJEgKei1xdVY2a054PXA2ViNLWnZwdWV5Vmk+TXc2dz5sd3It
dHozZ210az1TNGFBO0hNTVJkdTBMUj1ufHhIfTttJDUhCnpmfCUpdlI9cUdKN1k4ISRYT3hlJUBA
Mkk/bDUpVHhIJWJkPSl+WDhPPkAyOCNldH5GQiUyZjUkbk9WfmBIKG17TQp6Ni1FYz1KbTlKOz07
KE1ySHRlYHc8ISV3eDhFZms+SzhwcUdgU3Y0Uzt+ZSoqI1BlSFBeTW9ieGBYUypFaihULUEKel9V
Z2ckTzJxYGZNcSFxJnk0XiFjX1Y+MXolRTduO2cqeWt8U3puKHJOTytMTkVYaFIwXkA1PFBJUnd7
Tlp1U21CCnpgfD9ZcEMyXkgqPGV3TUkjM1pkU3pZTCMhIT4+UlRSKUB8ciUocER0R1BZfH52KSor
Ung/Nz57SExYI05qIUx3UQp6KEImO3ZUUHNHX3MoRWghezxgalVGbDkoZjNGNDZCS0AlcT1mNm1g
THhaZ2RMeHQqPmctfjJDSiFoYjx6I1Z5SG4KelBYKXlwT2BJNl5BNW9VR0YhP3UyTmxzcF87ciN5
WStFTXJFNm4teWs0fFE+UjZCRXVSPD4lNyY9dSluWmZwUjY4CnpiMVFKSXJsKGo8dTtrcng3QGxr
U096JDVWTjlYRCszcCQxNyRDRW01VFpBYHhSP2YkRnlsLXo/KHBSTikhQz8pcAp6QzJNcitrI2J7
eTs9YT5jdHI5ZkZRSEdGRnNxNHlAWTl3QjFgbGNLfWxBe2pBWUkzbDJaKjw7RCtyV18pIUU3OFAK
emp5I3JxaXp6PiZsV0w5c2dmcTBiaG40WEpaMDRePzFuO3BQTW9OUEIjWntgVVo1WC1reEx5K3RV
V2k8fHhLRiNrCnpZK0d6WTJlYlZjX2o2TnUoRH13Knoxbmp1K316PypIVDl8e21LSSRPWj12PypL
RX1GUU0pLWtvejgwYz0/UV5OOAp6WXZjanotJC1eMFV1fShhSGR2cCY1U15hKylYRFh9PCR9SmFa
UnlGKXR6OHhvST0lRkx7eSVqPDFIcTJMVGRVQGMKejN2UmZxeX0jRGhrQiRHZzNmcHRCVWtzfl5L
YU84d257bSlFMERFRHtiQUYwe15DNy04PkdYandiPktHZGVYfGdeCnp3NnRfZS1AMWxsNmwta3N4
ZlRzMHB4MHZCeFV8S3h3P3VAY1Z9MFRjVTJSR0tYdTdoOUk2WV5SU1QhX2lMN0Embwp6SFdVVyVv
WlY0SzdqfGM1cCNIT301KCl6ez1Ca2R5eSQ/SUVIXz5pNXIrTj5XSiRRSXp3V3ozVWREJVlQO28t
dm4KemU7SXt8JClkWmwqeWF4bG9KKjRoOCRoeXFuTC0yZDt3fXR8M0wwS2I1ZUI1UTZ8VT1EREJq
RGUkdldwSWctK08pCnpTcWxOPSEjQ31afE13KUZ3Qyk+YU4xK1hXZ2xyKj15YnptITkkSGVCN0JI
LTx0amVJWW5oYHUpc0M2UEg5R0RTTQp6eUkwSCREfWV3VyMtUmBWZmcpOXh2TFc0LTNPbDE9Yndj
ayFgWklNKV4ofXU7QnBoYndoUU1EQTZDamxUbFpqRFMKelpQYTw7aH5HIyZWKGBFSF5iTSo5OGJO
dn5aJWZeT3FoYTNgXmBQSkV4a21WU0FIR2A2KnY8T0MyXzV6I1JRdkFACm1HRUkmQ2R2TD0tX3ky
dD5NKCtGMVNGQlI7Q1Z2NEJuK2ktKnNhRFl7OyhxfHtGP0VVbgoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg2
MTViZTUwMGFiN2U5Njg5ZDIzZWVmZWVjMWNmYzZjNDA5NDAyZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMKQEAgLTAsMCArMSw3NyBAQAorInVzZSBzdHJpY3QiOworKGZ1bmN0aW9uKCkg
eworICB2YXIgbnVtRmFpbHVyZXMgPSAwOworICB2YXIgcmVzdWx0c0xpc3QgPSBudWxsOworICB2
YXIgcmVzdWx0TnVtID0gMTsKKworICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9
IHdpbmRvdy50ZXN0UnVubmVyOworICB9CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICAvLyBUdXJuIG9mZiBjb25z
b2xlIG1lc3NhZ2VzIGJlY2F1c2UgZm9yIHRoZSBXZWJHTCB0ZXN0cyB0aGV5IGFyZQorICAgIC8v
IEdQVSBjYXBhYmlsaXR5IGRlcGVuZGVudC4KKyAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5j
dGlvbigpIHsgfTsKKyAgICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9Owor
ICB9CisKKworICBpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKKyAgfQorCisg
IHZhciBsaXN0ID0gZnVuY3Rpb24obXNnLCBjb2xvcikgeworICAgIGlmICghcmVzdWx0c0xpc3Qp
IHsKKyAgICAgIHJlc3VsdHNMaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidWwiKTsKKyAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5hcHBlbmRDaGlsZChyZXN1bHRz
TGlzdCk7CisgICAgfQorCisgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJs
aSIpOworICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7
CisgICAgaWYgKGNvbG9yKSB7CisgICAgICBpdGVtLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAg
fQorCisgICAgcmVzdWx0c0xpc3QuYXBwZW5kQ2hpbGQoaXRlbSk7CisgIH0KKworICB2YXIgbG9n
ID0gZnVuY3Rpb24obXNnLCBjb2xvcikgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUobXNnKSk7CisgICAgaWYgKGNvbG9yKSB7CisgICAgICBkaXYuc3R5bGUuY29sb3IgPSBjb2xv
cjsKKyAgICB9CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFwcGVuZENo
aWxkKGRpdik7CisgIH07CisKKyAgd2luZG93LndlYmdsVGVzdEhhcm5lc3MgPSB7CisgICAgcmVw
b3J0UmVzdWx0czogZnVuY3Rpb24odXJsLCBzdWNjZXNzLCBtc2cpIHsKKyAgICAgIGlmIChzdWNj
ZXNzKSB7CisgICAgICAgIGxpc3QoYFsgJHtyZXN1bHROdW19OiBQQVNTIF0gJHttc2d9YCwgImdy
ZWVuIik7CisgICAgICB9IGVsc2UgeworICAgICAgICBsaXN0KGBbICR7cmVzdWx0TnVtfTogRkFJ
TCBdICR7bXNnfWAsICJyZWQiKTsKKyAgICAgICAgKytudW1GYWlsdXJlczsKKyAgICAgIH0KKwor
ICAgICAgKytyZXN1bHROdW07CisgICAgfSwKKworICAgIG5vdGlmeUZpbmlzaGVkOiBmdW5jdGlv
bih1cmwpIHsKKyAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZy
YW1lIik7CisgICAgICBpZiAobnVtRmFpbHVyZXMgPiAwKSB7CisgICAgICAgIGxvZyhgWyBGQUlM
IF0gJHtudW1GYWlsdXJlc30gZmFpbHVyZXMgcmVwb3J0ZWRgLCAicmVkIik7CisgICAgICB9IGVs
c2UgeworICAgICAgICByZXN1bHRzTGlzdC5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgaWZyYW1l
LmlubmVySFRNTCA9ICIiOworICAgICAgICBsb2coIlsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQi
LCAiZ3JlZW4iKTsKKyAgICAgIH0KKworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICB9CisgICAgfSwKKyAgfQorfSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWly
by9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGUwNTM0ZGU2N2JiN2UzMTNkZDI5ZjNmNzlmZjhiOTI4
OWI1MjI0ZjIuLmRjMDZiMTU4Yzg5YWE5NDFkZjEyNGJmOWExYjJiNTM5ZmYwNmI4YjEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA0
MSw4ICsyMDQxLDYgQEAgaHR0cC90ZXN0cy9taXNjL2xhcmdlLWpzLXByb2dyYW0ucHkgWyBTa2lw
IF0gIyBUaW1lb3V0CiBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5weSBb
IEZhaWx1cmUgXQogaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy10d28tcmVkaXJlY3RzLnB5IFsg
RmFpbHVyZSBdCiBodHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3BhaW50LXRpbWluZy9wZXJmb3JtYW5j
ZS1wYWludC10aW1pbmctZmNwLWFmdGVyLXZpc3VhbGx5LW5vbi1lbXB0eS1mb3Itc3R5bGUuaHRt
bCBbIFRpbWVvdXQgXQotaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2UuaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC93ZWItc29ja2V0
LWxvYWRzLWNhcHR1cmVkLWluLXBlci1wYWdlLWRvbWFpbnMuaHRtbCBbIFNraXAgXSAjIENyYXNo
IGJ5IGFzc2VydGlvbiBmYWlsdXJlCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1j
b250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwgWyBGYWlsdXJlIF0K
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVudC1leHBlY3Rl
ZExlbmd0aC5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3Np
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2Fu
dmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWU4NzM0M2QzMTQ1Y2QwZWVjZjU1Nzc1ZDM1YWU1MjY2YWVhYTMzNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVy
bC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbAor
WyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJs
LWFmdGVyLWNvbXBvc2l0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MzAyZDNiZmJkMDJjOWY3ODUyMzJk
YmQxODk4MTU3Yjk3MzU2NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdG8tZGF0YS11cmwt
YWZ0ZXItY29tcG9zaXRlLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFm
dGVyLWNvbXBvc2l0ZS5odG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw8L2E+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUu
aHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFy
Z3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkOGMzMmRlYTZhZWI5YTVkNjRiNDNkYWZmMmMzNTJkOTczNDhiZWQx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRB
cmdzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwK
LVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFk
UGl4ZWxzQmFkQXJncy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmY2YWJk
OGE5ZjE2MDkzMGMzYzAzNGQ3ZTA0MTQ0ZmQyNDJlZjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFk
QXJncy5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L2E+Ci08ZGl2
IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0
bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmNjYjJlNDI2MTAyNWZiNjY5MTZhM2Q0ZTM1MzJmMDJlZTI1YTA4Zi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCi1bIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI3ZTYwMmM2MjRiZTQxNWJiZmY0NWJlYzIx
NDYyNjI0Mjk0ZjQ1OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4SW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1U
ZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIj4uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC5odG1sPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJh
bWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZDFhOTAyMGJkNmQ2MzBhYzQy
YWRmODk0MDljMDgyMDc4YjFjNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwuaHRtbAotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgyYTFmZjM4OTI0NTQyMGE4MDY4MjQ5OGYzMDY3ZGZlYjRjNjNhY2YuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRl
c3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBw
ZXIgZm9yIHRleFN1YkltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJl
Zj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2Uy
REhUTUwuaHRtbDwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4U3ViSW1hZ2UyREhUTUwuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMWY0YzAxNjlkMjAzNTE3ODdkZTk5Y2ZjNmRjMDkyMzliZjI1MWM2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAx
X3RvXzAwOC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFf
dG9fMDA4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUxM2Q2N2U5ZGJmNGIz
YmMxZDlkODJhMDFlNDBlNjYwODAzMDZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVE
SVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8w
MDFfdG9fMDA4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4
Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAwMV90b18wMDguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYmQ5OTAzMGE3YmJlYTE5NWQ3MTk5MDZhOTBjMjQ1NjY2MjRkNjE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3Rv
XzAxNi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9f
MDE2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRkOTAzZWZlZmQyZTU3Njkw
MWExMDU1ZDQwNTBjMTVkMzE1MzgzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMDlf
dG9fMDE2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0
bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwOV90b18wMTYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNTBmMTM5YTBmMDVmMWMyZDU2NzhhYTAwMzNkZjFmMDk5YzNjMzJjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAy
NC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDIwM2VmOGFhODk4OTgyZTJiMGU0
NjE2ODMxZDkyNDY5YzUyNWI0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMTdfdG9f
MDI0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDE3X3RvXzAyNC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw8
L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAx
N190b18wMjQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDI1X3RvXzAzMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZGVhNzM3YTFlN2IyZDI5NGM1YzY3ZWMyNmU3NjlkZjlhMzNkNzY0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDI1X3RvXzAzMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5o
dG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wMjVfdG9fMDMyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ4MDI1NWMyNTZiYzM3MWJiZTY3YmNl
ODZjNThhM2Q3NGU2ODViYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMjVfdG9fMDMy
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDI1X3RvXzAzMi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw8L2E+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMz
X3RvXzA0MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYWI5ZTkyNjdjMDM3NGZiY2E2MzBmODhjNGUxZGM1ZWM1Yjc0YzhkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDMzX3RvXzA0MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1s
CitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wMzNfdG9fMDQwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM1ZDY1YThlYzMwYmIyZjE3MmIxNzJjNDMw
ODI1NzUwOWY3MDU0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbApAQCAtMCww
ICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMzNfdG9fMDQwLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDMzX3RvXzA0MC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw8L2E+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18w
NDAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3Rv
XzA0OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZGYyNDM0MWNhNjJiMDNjYzdkNTdkOWFiOTljZDRhOTJiM2JmYmM5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCitb
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NDFfdG9fMDQ4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE2OWU5ZDhkZjJkYjdlZTA3MTBlNWY2YmM3YTYw
ODc5ZTU5OTc5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNDFfdG9fMDQ4Lmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQx
X3RvXzA0OC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L2E+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgu
aHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1
Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjA4
NTU2OGE4ZDQ0NzFmMTY4YTc4Nzc3YjU2ZjI3MTczYTYzMjdmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlf
dG9fMDU2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY5NzgzNzkwMzU1Mjc4OWY5YTBiYzRmNTJiMWM4MWI5
N2U4YThmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNDlfdG9fMDU2Lmh0bWw8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3Rv
XzA1Ni5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw8L2E+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNTdfdG9fMDY0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDE5YWEx
OGVmNzkwYWVlYjdiMTIwNTc3YTA0ZGM1ZTViM2ZmNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3
X3RvXzA2NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9f
MDY0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZhZDFlNjFhMDk3ZDQ1NTY4MTVjOTUyZTE4ZWQ3YmUwMjQ0
NTUzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNTdfdG9fMDY0Lmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2
NC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNjVfdG9fMDcyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTU2MzY2MTUz
ODNhNDFhZWU5MGQxOTI1ZTAyZDliZTlhN2ZlODc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3Rv
XzA3Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCitbIFBBU1MgXSBB
bGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTQwZmNiN2VjYTBlMTJkZWE5ODA3Y2QzYzljYjhiZDVmZjliZThl
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29u
Zm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNjVfdG9fMDcyLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5o
dG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJh
bWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNzNfdG9fMDgwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWYyYjdlZWNkNWU5
ODc2ZDM4MzgxMGM3OWY0OGU1ZTI5MGVkMDJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4
MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjAyNzczNzVkYzQ3MDNiYTU5MWE3ZTIyNmFjYjkwZjVjYjFjYzYwMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNzNfdG9fMDgwLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1s
Ij4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODFfdG9fMDg4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODQzOTZmMmU3NjkwMzg0
NTdiZGNmMWU5NTQxYzA5MWFjYTRkNTRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCitbIFBBU1MgXSBBbGwgdGVz
dHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2I5YWJhYzM0ZmFmYTlkMTY1YWNiOTI5MDRmOTg3NGE3ZTgzZWZlZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wODFfdG9fMDg4Lmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sIj4u
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgor
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wODlfdG9fMDk2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjY4N2YwZTA0M2E1MjJiNDE0
YTEyOWM5NjYxZDIwZGIxMWRiYjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMg
cGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjJlNTJhOGNjNTY2ZWZkODczZDY2ZjUwMGU0YTY1ZGU3MjBmMTYyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBidWlsZF8wODlfdG9fMDk2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sIj4uLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
OTdfdG9fMTA0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWRkYjI1M2JkZjEyMDA3ZTIwMjIw
ZTY5YzA2YjIwMmRkM2IzZGZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjA3ZTRjMTk5ODQ2M2UwMTUwMTE5YzRiMmZjZmQyZTRiZjIxODhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3Jt
YW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciBidWlsZF8wOTdfdG9fMTA0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sIj4uLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbCIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVf
dG9fMTEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDVjZWVjYTdmNTY3ZmFiOGYzOTg0YzI4
ZmQ1ZDBiYWZhYTMzNDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWQxNDE2Mzc5NDQ0MTk4NTAyZDE2YzhmZTdkZmEzZWU2MzFlMDUxMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEwNV90b18xMTIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBp
cyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5j
ZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBX
cmFwcGVyIGZvciBidWlsZF8xMDVfdG9fMTEyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sIj4uLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0
PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9f
MTIwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmNkZTE2ODU5ZTI3ZGNjYmM4MzY4YWY2MTI2
MzIwMTRkNjc4ZTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDRiNTI0NjEyZTc1M2Q2MGNiZTcyYzM5YmQ3MzMwM2ZiNmY4NTQ1YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzExM190b18xMjAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciBidWlsZF8xMTNfdG9fMTIwLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sIj4uLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xMTNfdG9fMTIwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzI1ZmYyYjUzYmM5NGEzYzhiZWQyYjlkZGYyZDQ2
ZmExODFjNDgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUw
ZTkxYTFiNjMyNDdhMTcwNzA1MzZiMTBiYjA5ODQ2ZjRhZDQ2NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEyMV90b18xMjguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0
cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVy
IGZvciBidWlsZF8xMjFfdG9fMTI4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEg
aHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sIj4uLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMjFfdG9fMTI4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDIzZDZiYTA1MDFiYzY4NjViZmM2ZGM2ODNiN2E4YjFm
YTFlMGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTI5X3RvXzEzNi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xMjlfdG9fMTM2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI5YWY3
ZTg1MzI0MTZlMDkzOGRiZjNmOGU4MjExZGExMzg2MDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEy
OV90b18xMzYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4g
RE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZv
ciBidWlsZF8xMjlfdG9fMTM2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJl
Zj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MjlfdG9fMTM2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iY2RlNjZhMDNlYjEyMjcxM2I4OWQ1ZDExYTIyNTRlODIxODdk
YmZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTM3X3RvXzE0NC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMzdfdG9fMTQ0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAzYTIwMTI2
MTYzZjQ4YjQzZWMyZTc1NjIzMTA3M2NiYTAzZjIyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190
b18xNDQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBi
dWlsZF8xMzdfdG9fMTQ0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdf
dG9fMTQ0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZy
YW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yOTRkYTYxYTM3NjUzNjkxN2UyYWNhYmU5ZmFjMmI4ZjUwYjM2ZDEx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTQ1X3RvXzE1Mi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NDVfdG9fMTUyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM2ZjlhYmI4ZDcw
NjE1ZWY4Nzg4ZmE3ODAzNjIzY2ExOWE3M2Y3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18x
NTIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9U
IEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWls
ZF8xNDVfdG9fMTUyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9f
MTUyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE0NV90b18xNTIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMmQwZDViNzYyNjdlNzNlM2NjNTBiYzUwNzI5MDk4NjQ3MjQzZGRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUz
X3RvXzE2MC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNf
dG9fMTYwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhZWE4YWVhMTcyOWEy
MWZlZGFhMDQzZTZlYzI4ZWM5MDNlMzE3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVE
SVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8x
NTNfdG9fMTYwLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYw
Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE1M190b18xNjAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MzhjOWZmOWMyYzMwOWY2YTExZDQ3N2JiZGM0NjdlNjIzMjgwMzkxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3Rv
XzE2OC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9f
MTY4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYzZjg0YmU1MzcyZjllNThi
YjYwOGI1YjZkYmQzN2FkYzE2NGZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNjFf
dG9fMTY4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0
bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE2MV90b18xNjguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZGIzNWYxMWM0OWRmN2VlMGY0M2Y2NTViZDc3ZmE1ODJlYWM5ZjkzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3
Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhMzE1NWQ2NjliMTJjMWZmZGM4
YmQ4ZWI4YTcwNzVmYjU5NWM3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNjlfdG9f
MTc2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTY5X3RvXzE3Ni5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw8
L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2
OV90b18xNzYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTc3X3RvXzE3OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMDhkOWEwMjQ3N2RkNmZhZjk5MDFmM2VkNjY0ZGQyOTQzMTc5NjEyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5o
dG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xNzdfdG9fMTc4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkMTY2ODExNjM0MGZiZDA1NWFjYzAw
Njc4NjAzMzgyNWU0NTJkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNzdfdG9fMTc4
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTc3X3RvXzE3OC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw8L2E+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190
b18xNzguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQt
ZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZm
ZXItd2l0aC1zY2lzc29yLXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMmY4NjIxYjM3
Y2E5NWMyMzRmMzgzMWVhZTIwNjYzOTFjMTRlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFt
ZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZm
ZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2Ns
ZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1l
YnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFjY2FiMDRjMDJmNWEy
OGNkZDI4NmM3NmFkMDBlZjcyNjYxYWNlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVm
ZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVz
dC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3Qt
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5z
IHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFT
UyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVy
LXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgt
c2Npc3Nvci10ZXN0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9j
bGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlh
bGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1h
ZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjU0OTE3ZThkZDA3OWYyNDBlY2VjOGI3ZmUwZDllNjkyNWJlMTY3MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmlu
Zy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJl
c29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2Vk
LWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5n
L2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVz
b2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVy
aW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXIt
cmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MTc2OTM1MWVjYzM4YzIwOGM1ODIxZGI3ZTkw
Zjg3OWEzYTc4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxp
YXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3IgY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxp
YXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0i
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5n
L2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVz
b2x1dGlvbi5odG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1m
cmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
bmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVm
ZmVyLXJlc29sdXRpb24uaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9m
b3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVu
ZGVyYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRjNzc4YTAwNzcyYTE5ZTRmZjMzNWEw
NGZiYWU1Y2Y1NzBkZDFmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJs
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9m
b3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4OTllYjk1NTAw
MmM0MmJiZTQwZjNhYmJmYjA2NzcxYzRkNTE1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFi
bGUtcmVuZGVyYWJsZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRl
c3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBw
ZXIgZm9yIGZvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitU
ZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCI+
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJs
ZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5Y2I0MmFkZWRiOTZhMDkxNTgwMWRkM2Uw
ZDU3NTI1NGQzZGYxYmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNGQ3OTYxNjUyODVlYzFmYmNiODFmZGY3ZDJhMmI1Y2Qw
NzJlMjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCi1bIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3Jl
ZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGE1MTNjY2VmYTBkNTdiOTQ3NWM3MjZjM2E1
Y2U3ZDUxMDFlOWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxh
IGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5o
dG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bDwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0i
NjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2M1OGY4N2M0NWE2
MDZjMzYwNDhmNTNhZDc0YzkzMDdjYzg2Y2EzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2UuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS5odG1sPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9p
ZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2ZhZTBkOWVjNDIxZGZmMjc5NjFkN2IyN2JiNjkzZjA1OGM0Y2VlYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
K1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBl
cy5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9w
bmctaW1hZ2UtdHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjU1OWJlMDkzNmM0Y2Y0ZjM1YmMzNGYz
MTRjNDQyOTkxNmE2NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbApAQCAtMCww
ICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBwbmctaW1hZ2UtdHlwZXMuaHRt
bDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5o
dG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1h
ZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkOGU4NmJkN2JiMjhlOTVj
MDJiZjc5Njg1ZmZlYzYwN2U3YmRjMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgor
CitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9j
YW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sg
UEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1h
ZnRlci1jb21wb3NpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjI1YTQxNTkxZjcwZDM4OTAyNmQ2ZmFh
ODViYjVhMDE1NmIxZGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRvLWRhdGEtdXJsLWFm
dGVyLWNvbXBvc2l0ZS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRl
ci1jb21wb3NpdGUuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0
ZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMv
dG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Jl
YWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDQ4MGE0NGI4OTQ2Y2Q1NmM4NzIzNmYxZGYyMGVlZjVkYThlZWM5Yi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0y
Ci1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVh
ZFBpeGVsc0JhZEFyZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMxYWU4
NzFhZDFjMjVlOWZlZDA0NmVlMmViMTQ0NmZhOTg2NjZkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgcmVhZFBpeGVsc0Jh
ZEFyZ3MuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13
ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJn
cy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNl
MzY3ZDFkZDU0NGYwZTg2OTU3MGZlYmUyZmQwZDNmYjQwMWQ4ZmIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVz
dDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0g
QWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyOGY1YWQxOWViYmM2ZGVjNDRmNTJi
ZmE0ZTU1NjI4ZTJjNzdmYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4SW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25m
b3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNp
b249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxk
aXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRt
bD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9k
aXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGQ1Njc3OTRiZmQ5YjE1NDEwMTYzYWFhM2Zj
Y2EwNmNhMTc5OGYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMzBiZTY1ZGRmZjQyYjM0YzczMzczNmUzNTNkYzg2YTgzNDU2
MzcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3Jt
YW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJESFRNTC5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6
IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIi
Pi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08ZGl2
IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwv
ZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzdjOWE1NWNmMDAzMTE3MWQ5YmE2NDM4NTEyYzk3OTI2ZTI3ZjBhOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18w
MDguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDAxX3RvXzAwOC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMjYz
OTBjMTk2NGM3MjM2YjI1NTcxYzhlZWM5MDBkNmJiOWMyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDFfdG9fMDA4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDAxX3RvXzAwOC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAwOV90b18wMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjEyNTk2MTE0Y2ZkYTk2MWExZDFmOWQ4YWRhYzViY2M4OWE2NDRkOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAwOV90b18wMTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18w
MTYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDA5X3RvXzAxNi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3N2E3
NDlkMzc2MzNiYWFkNGI2ZDNhZDllZTQ4ZTg3YzRjNWVhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDlfdG9fMDE2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDA5X3RvXzAxNi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAxN190b18wMjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2RlODU2OGY5YmU4YmZmMjZmOGFhZWFjNzA0OGIwN2Q3NzNmM2EyZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAxN190b18wMjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18w
MjQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDE3X3RvXzAyNC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyYjdh
OTU5NTBjNjBjZGVkYjU4NjU0ZDY5ZjQ4ZjI4N2UzNGJjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MTdfdG9fMDI0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDE3X3RvXzAyNC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAyNV90b18wMzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGIxYjgyYWJmZjBmYmI3NTNiYzVjNTFiNWU3YzU5NGE0ZTBhZTgxNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAyNV90b18wMzItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18w
MzIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDI1X3RvXzAzMi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NTM3
YjU4ZWViYWY4ZjQzZTJjYTViYWYzZjRjMWYyZDU5YTU4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MjVfdG9fMDMyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDI1X3RvXzAzMi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAzM190b18wNDAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2RkNDRlNTFiN2EyOWQ1YWZlNzUzNDliYTc5YTlkYmU4NjJkZjgzMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAzM190b18wNDAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18w
NDAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDMzX3RvXzA0MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MDNl
ZTI5YWE0ZjNiYjVkNDEzZTRmMjRmZjU1ZjcwZWQwMzI4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MzNfdG9fMDQwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDMzX3RvXzA0MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDBhMTk5YTlhMTNlN2I1OTQ2ZDViYTNhZmJkZjgyMTc2NjRmOGFjYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18w
NDguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDQxX3RvXzA0OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5YWI1
NTRjZjUwNDkxNjNlNjQ2NGM4OTg2NDM2OWQ2YWU4NjUxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NDFfdG9fMDQ4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDQxX3RvXzA0OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA0OV90b18wNTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWRmOTU1NzAxMGZiMjhmOGU4ODQ0MzI1MjllMTE5ZjhlNTAwYTA3YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18w
NTYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDQ5X3RvXzA1Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YmQ3
MDA5ZjZiZTcyOWQ3ZDUwZTJhNjZkM2Q1OWMxMjcyYjNiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NDlfdG9fMDU2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDQ5X3RvXzA1Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA1N190b18wNjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjkzYThiYzcyNDdmOTYzZmNjODNmZmY5YjNiYjRiMzEzMjUzMDYxZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18w
NjQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDU3X3RvXzA2NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmVh
Y2Q2YTVmYzUxYWI5OGQ1ODlhY2NkZTVlNGJkMmIwN2M3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NTdfdG9fMDY0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDU3X3RvXzA2NC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGY4NzVmMmZkYjY4ZTRiYjI5Mjk4YzM5N2NiMDYxYzQyZmYyMTZkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18w
NzIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDY1X3RvXzA3Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNjhk
MDZhNjQ3Y2IyODFkOTgyN2E5NjdlNTU3NTFiNWIwMjgwYTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NjVfdG9fMDcyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDY1X3RvXzA3Mi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjU5NzA4N2UwNjJlZTY5M2E5ZmYxYjVjN2NhYjg5YjVlMGQwMTAwYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18w
ODAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDczX3RvXzA4MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YThm
ZWQzNGJkNTE2ZDI4YzU1YWQ1MDhhYmM5ODgzZGE0YzEwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NzNfdG9fMDgwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDczX3RvXzA4MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmUyZjY1MWY0OGQ3MWIzMzVhYjBiY2RkYjMyNmYwYTI1ZTgwOWY1MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18w
ODguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDgxX3RvXzA4OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNh
NTdkYTkzY2VjMGM5Y2VmODc1MWM2NjA1NGRiZWQzNWIxZjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
ODFfdG9fMDg4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDgxX3RvXzA4OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDM4MjgzYTEyM2UyMjEyNDZlMGYzMTNiNzJjODNmMDExYzQzZWY3MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18w
OTYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDg5X3RvXzA5Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYmZi
MWIxYjE3M2FmOGQyNjg5ZTE2NDBlNjlmYzAwZTFmZTI0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
ODlfdG9fMDk2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDg5X3RvXzA5Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA5N190b18xMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZThhYmJkNDdlNzhiNTdhODk3ZTNjN2FmZDdjY2I0NmQ2OGYwYjJjMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA5N190b18xMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18x
MDQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDk3X3RvXzEwNC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYTM3
NGE4ODJkMDJiNDRmNTVkNTQyZTExMjA2NjAyODgxYzM3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
OTdfdG9fMTA0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDk3X3RvXzEwNC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmI0NTM1OWQyMTM0ZWI5MDU3Njk2Mjc0ZmUzYjI0ZTIxMjM4ZDQwMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18x
MTIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTA1X3RvXzExMi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYWFl
ZjdlNTM4YmM1YWJmOTMyM2IyNmIxY2VmZDNkZDZiY2ViMGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MDVfdG9fMTEyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTA1X3RvXzExMi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzE1NTE0MzIxYWVlYTRiZTU5M2Q3YTI5NWU0NjhjNGUyNDNlN2I2NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18x
MjAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTEzX3RvXzEyMC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiODRj
ODQ1YjcyMGM0MDU2NzVkZmVjZDE5ZDAyNWMxMmEyNWI0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MTNfdG9fMTIwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTEzX3RvXzEyMC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzEyMV90b18xMjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTcwMDI4NWExZGJkMjkxNjYxYWRiMWQxMzllNWJiYTIyOTdmMWRmZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEyMV90b18xMjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18x
MjguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTIxX3RvXzEyOC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhm
ZWM4M2FiZmY3OTExYzAwOWU4ZTM4YzYzZDU4ZjFiNmI4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MjFfdG9fMTI4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTIxX3RvXzEyOC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzEyOV90b18xMzYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzIyZDNiZjcxZGMxY2JjNjlmMGM2YzU2NmRlNzJlMjc1ZjRjZWQzNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEyOV90b18xMzYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18x
MzYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTI5X3RvXzEzNi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMDFj
NjkzNWVhNWIwZWU0MjY0NjA5ZmU2OGZmMWY0MWM1OTk3YTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MjlfdG9fMTM2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTI5X3RvXzEzNi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTU5ZTc2YmMyNTMzYTA3ZjE3N2I5NWMxYzFkMWFiMmE1MzU1YWI2ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18x
NDQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTM3X3RvXzE0NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzMy
NjY4YmE4N2U0MTA3ZDliMGM5NWYyZWM0ZjkyMTE1MjJiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MzdfdG9fMTQ0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTM3X3RvXzE0NC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE0NV90b18xNTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGE2NGE0ODk0YWRhNGFmZmIzZGVjN2Y0YmQxMzhlZWNhMGQ0YTAwYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE0NV90b18xNTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18x
NTIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTQ1X3RvXzE1Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZTEw
NWMxYjhjMWE3MzM0ZTllNDc2MGFlMGQ1OWU5MWIxMDMzODQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NDVfdG9fMTUyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTQ1X3RvXzE1Mi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE1M190b18xNjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzYxOWI0MjIzMzQ0ZGE2NjY1ZGY3NmRkYjkwY2YwZmIwMjBiMGFiOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE1M190b18xNjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18x
NjAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTUzX3RvXzE2MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNGVj
ZmQ4NzQwYzIyZWM0NTdkOTFhNzg4Y2JkN2E1M2ZkMzNhMDAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NTNfdG9fMTYwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTUzX3RvXzE2MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE2MV90b18xNjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmY3NmQwMmJhZDAwMzk3M2E2ZmFlMDc3YWViN2JiOTQ5YjgzOWJjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18x
NjguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTYxX3RvXzE2OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNDhk
ZmU3ODYwYjMwYWU2NDllMGRlYjIyMWM3MWU5ZmM0ZDE1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NjFfdG9fMTY4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTYxX3RvXzE2OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE2OV90b18xNzYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjMxODQ4ODg4NGExNjY1NWUwNDRiOTUwMjM3Yzk3ZTVhYjRhYzIzNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE2OV90b18xNzYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18x
NzYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTY5X3RvXzE3Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMDJk
NWU3NzExYzM2MGVjNTk2OTI4ZWI2ZmUyZmY2MzNlODQwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NjlfdG9fMTc2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTY5X3RvXzE3Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE3N190b18xNzgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2JhNjc1YmQ3NjJlYTc2NmRkZjc5MjFmNDQ5NGMzZjJhY2E1ZDI3NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE3N190b18xNzgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18x
NzguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTc3X3RvXzE3OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzg1
MWU5ZDdlMzc5MzUwODkwNDA5Y2M1YWE2NzVkODg4YTJlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NzdfdG9fMTc4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMTc3X3RvXzE3OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1k
ZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZy
YW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWMz
MGNlNTdlNmNiMzUyN2EwNmExMTQwODQyNGY4MThiYWY0YzZhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1
bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZy
YW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBd
IEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nv
ci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJp
bmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkxNmJjMTg4YzUyZjM4NWU5OTA1YjMwZGM5N2NhZGRmMTlhZGVhY2IKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcv
Y2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sCkBAIC0wLDAg
KzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNsZWFyLWRlZmF1bHQtZnJhbWVi
dWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xl
YXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lv
bj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5k
ZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dl
YmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXIt
ZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0y
IiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFm
ZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNo
b3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg0MWYzZmI5YmRkOGJmNGVmZjk5NTU5ZDMyZjQ3YzcyZDkyZWM3
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFt
ZWJ1ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1h
bnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sg
UEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFu
dGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0
LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmYw
ZWIxZmM0NzljNjhiNjY1ZTQxZWY1NTk5MzczNTc0ZmQyYjEwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2st
c2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNvbG9yLW1hc2st
c2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1s
PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFu
dGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2Nv
bG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1
dGlvbi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5k
ZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZl
ci1yZXNvbHV0aW9uLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1m
aWx0ZXJhYmxlLXJlbmRlcmFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3Yjg1ZmIwNGU5
N2M5NGZhZjNiODdkNzc0MDdiMmQ1NGI0NjFlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJh
YmxlLXJlbmRlcmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJs
ZS5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zv
cm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk4MWVhMjYyODJmMTAyOGYzN2QzNmI2ODkzZTE0MjI1OTQ5NmVmNGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBmb3JtYXQtZmlsdGVyYWJsZS1yZW5k
ZXJhYmxlLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0
LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0i
aWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFi
bGUuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTkwZjI0NjAz
YTI0NmUzYWU1ZGM5MTA4MDdmMTkzMGYzNmQ5Yzg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRl
c3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTIK
LVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
LW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3Jl
ZW5jYW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDM3
ZjE5NDMxNDRlYTllMjhiYjM4YzE0NWVkNjg0ZDY2OTg5MjgyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3Rz
IHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODIxMDdlOWZjZDE5YmNhZDA5Mjc5MDE4MjFjZTYxODliODc0Mjdh
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICsw
LDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMv
dXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5X
ZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZl
cnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFz
Lmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dl
YmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4K
LTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTM1ZWQ3ZGU5YTA2OWUwMDQyZjk5MmUzYjI1ZGQ3YTEwMDY3
MjBlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxl
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Uu
aHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmct
aW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxN2YyMTVmYzBmMjEwNGM4NGUy
MGU1Y2U1ZWYzNzQ4ZmUzMDVhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxs
IHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzA2ZDYzZjIxMDZhOGVkYjk4MDY5ZTdjNzQzOGVjODMzMjM3NmUzMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgcG5nLWltYWdlLXR5cGVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MiI+
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9
ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJn
bFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0
ZW5zaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZWQyMWRhN2ZlOWMzZTU1MzlmMWE2ZjU3ODg4NzgwZTY5Mzk0MGUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVx
dWlyZWQtZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sP3dlYmds
VmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNp
b25zLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9u
cy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU0Yjc1NTNhMTE3ZTdiZDJh
MmIzMjc4N2U4MTNkZjJmNDI4OTkxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZXF1aXJlZC1l
eHRlbnNpb25zLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5z
aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWw/d2Vi
Z2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVp
cmVkLWV4dGVuc2lvbnMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1j
cmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI0ZDEyMmU3NTg2OWRjMWExN2ExYzEwYzNh
MDM2MmUwODFjNDY1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdt
ZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0
ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNo
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDU5YTdmZjYwMTQ4NmYxMzJmZTU0MjU5MjMyNDZhZmIxYzJjMTI3
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
Mi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRl
LXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBD
b25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw/
d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sP3dlYmdsVmVyc2lv
bj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxv
b3AtY3Jhc2guaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wz
L3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0
LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWQ4OGZm
OGM4Zjc0N2VkYzMyZWI0YjRjOTdjNmIxMTM3MDAxYTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1v
Zi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1
YXJlcy1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMv
cmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1v
Zi1zcXVhcmVzLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFlMGUwZWM2MTZjMGY5NzU5Y2VlZDIz
ODQ0ODI4OGNjMDE2NzliYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMt
Y3Jhc2guaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBy
ZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbDwvdGl0bGU+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0
OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWw/d2Vi
Z2xWZXJzaW9uPTIiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbD93
ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9j
YWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0
aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3MWFlNzA0YWE2MjhhYmI2YWFhMWEwYmZjZWVlYWJhZjlhYTBk
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw/d2ViZ2xWZXJzaW9u
PTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXIuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMTZiNjJmNWU4Y2Q0MDA0NTU3YzEyYmI2ZjRiYzI2YzhkNjg1MDFmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL21pc2MvYmxl
bmQtaW50ZWdlci5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3Rz
LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIGJsZW5kLWludGVnZXIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2Vy
Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXIuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4K
KzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1sP3dlYmdsVmVy
c2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11
bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5
LWNvbG9ybWFzay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZlNzU2MWFjZGM2YjEyYzI0MzVl
OWYwZjI1MDVkYTFiMWNmODhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQt
YnktY29sb3JtYXNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5z
IHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFT
UyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9y
bWFzay5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2Js
aXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZl
Y3RlZC1ieS1jb2xvcm1hc2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTNkOWFjY2Q0NTBkNDE2Yzk3ZjE0
MjRkOWEzMzIzOTc5NzcwMTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1i
eS1jb2xvcm1hc2suaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0
cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVy
IGZvciBibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbDwvdGl0bGU+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+
CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFz
ay5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNv
bG9ybWFzay5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJh
bWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dl
YmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVy
cy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0
LWxvY2F0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ4YzgxODYzM2YyODgyYjE0MDYy
MWFjMTkyOTk0NDdjMjhhOGIyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQt
bG9jYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5o
dG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVm
ZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2Nh
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjYyMTIwMGM2NTNlMzc5MjY5M2MwNGU2MDhlNDgwNzc2
MzI4MWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBkcmF3LWJ1ZmZl
cnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0y
Ij4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVy
aW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lv
bj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1z
cGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWYzYTUwNDg3MjJi
ZTQ3NTdlOGVkMTg1NzQ1ZTlhNTFkZWRjOTgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNj
cmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4t
Y2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgyMjE0Y2E5NDBjMjAyODc0ZTgxMDEwNDU0MDYzNDcyOTA3NGE1MmEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNp
b249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2Vi
Z2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2Pgot
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xl
czMvbXVsdGlzYW1wbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1ZDk0OTFiODFkOTQ1YzhkZDExYzQ0YzRiN2Y1MGFmODVhMGRmZjE4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xl
czMvbXVsdGlzYW1wbGUuaHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBh
c3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFs
L2dsZXMzL211bHRpc2FtcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTIzYzA1ZWU5NzhkOWIwN2I1MmE4YjZmYmFlMTkwMzMxNDNlMGU0YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG11bHRpc2FtcGxl
Lmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw/
d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Rl
cXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgot
PGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbD93ZWJn
bFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Rl
ZmF1bHRfZmJvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVu
Y3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDU5MjJkNjlhMTRlNGNjOWRlYjVmNDEzNWI1NWI4NzE4YmE1MzgwMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9kZWZhdWx0X2Ziby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRf
ZmJvLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0
aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9m
dW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDAyZTY3YmIwMTFmMjViZGExODk0ZTRiOGIzMGMwZTE3YzMzZDAxYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNh
bXBsZS9kZWZhdWx0X2Ziby5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNl
LXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdy
YXBwZXIgZm9yIGRlZmF1bHRfZmJvLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEg
aHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5j
dGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw/d2ViZ2xWZXJzaW9uPTIi
Pi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25h
bC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVs
dF9mYm8uaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZy
YW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMz
L211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NDAyMTRjZjZmMmEzYzI2YmZjMmMwYzVhODNlOGRm
ZmExN2E0MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFw
L2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMz
L211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0g
QWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9f
NF9zYW1wbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1ZmM3NWNhYzQ4NzE0NTI5MTUzYzdmMjg3YzFj
MDBmM2FjYzQxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Rl
cXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZmJvXzRfc2FtcGxlcy5odG1s
PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9m
Ym9fNF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9f
NF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAv
ZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJz
aW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9z
YW1wbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rp
b25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kYmQ1NDM3NGQ3ZTJhNjNlMTBkNjljMWU0MGYwYzhkYTczYWNiMjg5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211
bHRpc2FtcGxlL2Zib184X3NhbXBsZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9z
YW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVlNjBkNDRlMmVmMjZiMGVmYzZlOTNiZDE1OTMxMGM5OTU1YjMyNWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNv
bmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIGZib184X3NhbXBsZXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+
CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dl
YmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmds
VmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVs
dGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFw
L2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNh
bXBsZS9mYm9fbWF4X3NhbXBsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMzJjZjU1ZTk0
NTljODYzODNiNzllYmM4ZWQ2ZmFiMTk1NTFhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21h
eF9zYW1wbGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWw/
d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9m
Ym9fbWF4X3NhbXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rp
b25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZDg2NWNkYTkwZjZlYjdlNzUzZDRlY2YxNjgyMGQ4NzUwYzY4NGMxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlL2Zib19tYXhfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1h
bmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIGZib19tYXhfc2FtcGxlcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rl
c3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Rl
cXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbD93ZWJn
bFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sP3dlYmds
VmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVs
dGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAi
IGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2Vi
Z2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dAppbmRl
eCBjYjc1OTNjZWM1N2NhMTk0YjBlMzdkNjk3YTA3MjA5NzNjYWU3OWM4Li5jNTg4OWIxMjU0Njc3
ZDNiNjJlNDBlNzZiNTk1YjA5ZmRiOWViNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJn
bC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QtZXhw
ZWN0ZWQudHh0CkBAIC0yLDYgKzIsOCBAQCBUaGlzIHRlc3QgY2hlY2tpbmcgdGhhdCBkcmF3aW5n
IFdlYkdMIGNhbnZhcyB0byBDb250ZXh0MkQgY2FudmFzIHdpdGggZHJhd0ltYWdlCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAorVEVTVCBDT01QTEVURTogMjcgUEFTUywgMCBGQUlMCisK
IFBBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQogUEFTUyBkcmF3
SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCiBQQVNTIGRyYXdJbWFnZTogU2hv
dWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
YXR0cmlicG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwK
aW5kZXggNTJkNDExNzMyOWQ2NjJhNTNmYmM3YTJlZjIxYjdkYTkwZjBlZjc1Yy4uMTI3NmNlYzdj
OWNjOWM4Yzg4NTExZjdkOTYzZTcxOTVhNjQxYWIyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12
ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2lu
dGVyLmh0bWwKQEAgLTE1Miw3ICsxNTIsNyBAQCBpZiAoIWdsKSB7CiAgICAgICAgICAgICAgIGds
LCBzaXplIDwgaW5mby5taW5TaXplID8gZ2wuSU5WQUxJRF9PUEVSQVRJT04gOiBnbC5OT19FUlJP
UiwgImF0IHN0cmlkZSBsaW1pdCIsCiAgICAgICAgICAgICAgIHNpemUsIGluZm8udHlwZSwgZmFs
c2UsIHN0cmlkZSwgb2Zmc2V0KTsKICAgICAgICAgICBjaGVja1ZlcnRleEF0dHJpYlBvaW50ZXIo
Ci0gICAgICAgICAgICAgIGdsLCBzaXplIDwgaW5mby5taW5TaXplID8gZ2wuSU5WQUxJRF9PUEVS
QVRJT04gOiBnbC5JTlZBTElEX1ZBTFVFLCAib3ZlciBzdHJpZGUgbGltaXQiLAorICAgICAgICAg
ICAgICBnbCwgc2l6ZSA8IGluZm8ubWluU2l6ZSA/IFtnbC5JTlZBTElEX09QRVJBVElPTiwgZ2wu
SU5WQUxJRF9WQUxVRV0gOiBnbC5JTlZBTElEX1ZBTFVFLCAib3ZlciBzdHJpZGUgbGltaXQiLAog
ICAgICAgICAgICAgICBzaXplLCBpbmZvLnR5cGUsIGZhbHNlLAogICAgICAgICAgICAgICBzdHJp
ZGUgKyBpbmZvLmJ5dGVzUGVyQ29tcG9uZW50LCBvZmZzZXQpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8t
ZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY4YjljNzE1NDcxZmE5
OTE3YjViOTUxMTdjMGQwYmVjMDZmNzJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1k
YXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IS0tCitDb3B5
cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgdG9EYXRhVVJM
IGFmdGVyIGNvbXBvc2l0ZSB0ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyB3
aWR0aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgd2lk
dGg6IDEyOHB4OyBoZWlnaHQ6IDEyOHB4IiBpZD0iYzNkIj48L2NhbnZhcz4KKzxjYW52YXMgd2lk
dGg9IjIwIiBoZWlnaHQ9IjIwIiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHdpZHRo
OiAxMjhweDsgaGVpZ2h0OiAxMjhweCIgaWQ9ImMyZCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0i
YXBwbGljYXRpb24vamF2YXNjcmlwdCI+Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2xl
dCBnbDsKK2xldCBjdHg7CisKK2Z1bmN0aW9uIG1haW4oKSB7CisgIGRlc2NyaXB0aW9uKCk7Cisg
IGNvbnN0IGMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjMmQiKTsKKyAgY3R4ID0gYzJk
LmdldENvbnRleHQoIjJkIik7CisgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiYzNkIiwgeyBw
cmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUgfSk7CisKKyAgLy8gQ2xlYXIgdG8gZ3JlZW4KKyAg
Z2wuY2xlYXJDb2xvcigwLjAsIDEuMCwgMC4wLCAxLjApOworICBnbC5jbGVhcihnbC5DT0xPUl9C
VUZGRVJfQklUKTsKKworICB3dHUud2FpdEZvckNvbXBvc2l0ZSgoKSA9PiB7CisgICAgLy8gUGVy
Zm9ybXMgZ2wuY2FudmFzLnRvRGF0YVVSTCgpIGludGVybmFsbHkKKyAgICBsZXQgaW1nID0gd3R1
Lm1ha2VJbWFnZUZyb21DYW52YXMoZ2wuY2FudmFzLCBmdW5jdGlvbigpIHsKKyAgICAgIGN0eC5k
cmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgICAgIHd0dS5jaGVja0NhbnZhcyhjdHgsIFswLCAyNTUs
IDBdLCAidG9EYXRhVVJMIGxvYWRlZCBpbnRvIGltYWdlLCBkcmF3biBpbnRvIDJEIGNvbnRleHQs
IHNob3VsZCBiZSBncmVlbiIsIDUpOworICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pOworICB9
KTsKKworfTsKKworbWFpbigpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWF0
dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQvY29u
dGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwKaW5kZXgg
YWM3OTY5ODhjZTBjYWYyODUyNzVmNmQ4ODJhNDE0NGFlMmM1ZmIyZC4uNDBmNDZhNzQ0YWM1OWMz
ZmJjZjg3ODk3ODFjMTZjNDQzOGQ4ODA1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWF0
dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0
L2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sCkBA
IC00Nyw2ICs0Nyw3IEBAIHZhciBmcmFtZWJ1ZmZlcjsKIHZhciBmYkhhc0NvbG9yOwogdmFyIGZi
SGFzRGVwdGg7CiB2YXIgZmJIYXNTdGVuY2lsOwordmFyIGNvbnRleHRWZXJzaW9uID0gd3R1Lmdl
dERlZmF1bHQzRENvbnRleHRWZXJzaW9uKCk7CiAKIGZ1bmN0aW9uIGluaXQoKQogewpAQCAtNTUs
NiArNTYsMjMgQEAgZnVuY3Rpb24gaW5pdCgpCiAgICAgcnVuVGVzdCgpOwogfQogCit2YXIgdmVy
dGljZXMgPSBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAxLjAsIDEuMCwgMC4wLAorICAgIC0xLjAs
IDEuMCwgMC4wLAorICAgIC0xLjAsIC0xLjAsIDAuMCwKKyAgICAxLjAsIDEuMCwgMC4wLAorICAg
IC0xLjAsIC0xLjAsIDAuMCwKKyAgICAxLjAsIC0xLjAsIDAuMF0pOworCit2YXIgY29sb3JzID0g
bmV3IFVpbnQ4QXJyYXkoWworICAgIDI1NSwgMCwgMCwgMjU1LAorICAgIDI1NSwgMCwgMCwgMjU1
LAorICAgIDI1NSwgMCwgMCwgMjU1LAorICAgIDI1NSwgMCwgMCwgMjU1LAorICAgIDI1NSwgMCwg
MCwgMjU1LAorICAgIDI1NSwgMCwgMCwgMjU1XSk7CisKKwogZnVuY3Rpb24gZ2V0V2ViR0woY2Fu
dmFzV2lkdGgsIGNhbnZhc0hlaWdodCwgY29udGV4dEF0dHJpYnMsIGNsZWFyQ29sb3IsIGNsZWFy
RGVwdGgsIGNsZWFyU3RlbmNpbCkKIHsKICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7CkBAIC02Myw3ICs4MSw3IEBAIGZ1bmN0aW9uIGdldFdlYkdMKGNh
bnZhc1dpZHRoLCBjYW52YXNIZWlnaHQsIGNvbnRleHRBdHRyaWJzLCBjbGVhckNvbG9yLCBjbGVh
ckRlCiAgICAgY2FudmFzLndpZHRoID0gY2FudmFzV2lkdGg7CiAgICAgY2FudmFzLmhlaWdodCA9
IGNhbnZhc0hlaWdodDsKIAotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIGNv
bnRleHRBdHRyaWJzKTsKKyAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCBjb250
ZXh0QXR0cmlicywgY29udGV4dFZlcnNpb24pOwogICAgIGlmICghZ2wpCiAgICAgICAgIHJldHVy
biBudWxsOwogCkBAIC0xMDIsMjI3ICsxMjAsMTU4IEBAIGZ1bmN0aW9uIGdldFdlYkdMKGNhbnZh
c1dpZHRoLCBjYW52YXNIZWlnaHQsIGNvbnRleHRBdHRyaWJzLCBjbGVhckNvbG9yLCBjbGVhckRl
CiAgICAgICB9CiAgICAgfQogICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
bnVsbCk7Ci0gICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQg
YmUgbm8gZXJyb3JzIik7Ci0KLSAgICByZXR1cm4gZ2w7Ci19CiAKLWZ1bmN0aW9uIGRyYXdBbmRS
ZWFkUGl4ZWwoZ2wsIHZlcnRpY2VzLCBjb2xvcnMpCi17CiAgICAgdmFyIGNvbG9yT2Zmc2V0ID0g
dmVydGljZXMuYnl0ZUxlbmd0aDsKLQogICAgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsK
ICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKICAgICBnbC5idWZmZXJE
YXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JPZmZzZXQgKyBjb2xvcnMuYnl0ZUxlbmd0aCwgZ2wu
U1RBVElDX0RSQVcpOwogICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCB2
ZXJ0aWNlcyk7CiAgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvbG9yT2Zm
c2V0LCBjb2xvcnMpOwotCiAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9B
VCwgZmFsc2UsIDAsIDApOwogICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwogICAg
IGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgNCwgZ2wuVU5TSUdORURfQllURSwgdHJ1ZSwgMCwg
Y29sb3JPZmZzZXQpOwogICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwogCi0gICAg
Z2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIHZlcnRpY2VzLmxlbmd0aCAvIDMpOworICAg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9y
cyIpOworICAgIHJldHVybiBnbDsKIH0KIAotZnVuY3Rpb24gdGVzdERlZmF1bHQoKQorZnVuY3Rp
b24gZHJhdyhnbCwgdmVydGljZXNDb3VudCkKIHsKLSAgICBkZWJ1ZygiVGVzdGluZyBkZWZhdWx0
IGF0dHJpYnV0ZXM6IHsgc3RlbmNpbDpmYWxzZSB9Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJn
bCA9IGdldFdlYkdMKDEsIDEsIG51bGwsIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIpOwotICAgIHNo
b3VsZEJlRmFsc2UoImdsLmdldENvbnRleHRBdHRyaWJ1dGVzKCkuc3RlbmNpbCIpOwotICAgIHNo
b3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCIpOworICAg
IHZlcnRpY2VzQ291bnQgPSB2ZXJ0aWNlc0NvdW50IHx8IHZlcnRpY2VzLmxlbmd0aCAvIDM7Cisg
ICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIHZlcnRpY2VzQ291bnQpOwogfQogCi1m
dW5jdGlvbiB0ZXN0QWxwaGEoYWxwaGEpCitmdW5jdGlvbiBjaGVja0RyYXcoaGFzQWxwaGEsIGhh
c1N0ZW5jaWwsIGhhc0RlcHRoLCBoYXNBbnRpYWxpYXMpCiB7Ci0gICAgZGVidWcoIlRlc3Rpbmcg
YWxwaGEgPSAiICsgYWxwaGEpOwotICAgIGlmIChhbHBoYSkgewotICAgICAgICBzaG91bGRCZU5v
bk51bGwoImdsID0gZ2V0V2ViR0woMSwgMSwgeyBhbHBoYTogdHJ1ZSwgZGVwdGg6IGZhbHNlLCBz
dGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDAgXSwgMSwgMCki
KTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykg
Pj0gOCIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRX
ZWJHTCgxLCAxLCB7IGFscGhhOiBmYWxzZSwgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwg
YW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDAgXSwgMSwgMCkiKTsKLSAgICAgICAgc2hv
dWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPT0gMCIpOwotICAgIH0K
LSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgPj0gOCIpOwot
ICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpID49IDgiKTsK
LSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpID49IDgiKTsK
LSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIik7
Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAw
Iik7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gZ2wuZ2V0Q29udGV4
dEF0dHJpYnV0ZXMoKSIpOwotICAgIHNob3VsZEJlVHJ1ZSgiY29udGV4dEF0dHJpYnMuYWxwaGEg
PT0gIiArIGFscGhhKTsKKyAgICBsZXQgcmVkID0gWzI1NSwgMCwgMCwgMjU1IF07CisgICAgbGV0
IGJsYWNrID0gWzAsIDAsIDAsIGhhc0FscGhhID8gMCA6IDI1NSBdOworICAgIGRlYnVnKGBUZXN0
aW5nIHRoYXQgc3RlbmNpbCAkeyBoYXNTdGVuY2lsID8gJ2FmZmVjdHMnOiAnZG9lcyBub3QgYWZm
ZWN0J30gdGhlIHJlbmRlcmluZy5gKTsKKyAgICBnbC5zdGVuY2lsRnVuYyhnbC5ORVZFUiwgMSwg
MSk7CisgICAgZ2wuc3RlbmNpbE9wKGdsLktFRVAsIGdsLktFRVAsIGdsLktFRVApOworICAgIGRy
YXcoZ2wpOworICAgIGNvcnJlY3RDb2xvciA9IGhhc1N0ZW5jaWwgPyBibGFjayA6IHJlZDsKKyAg
ICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvcnJlY3RDb2xvcikKKyAgICBnbC5jbGVhcihnbC5DT0xP
Ul9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxfQlVGRkVSX0JJ
VCk7CisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBibGFjayk7CisgICAgZ2wuc3RlbmNpbEZ1bmMo
Z2wuQUxXQVlTLCAxLCAxKTsKIAotICAgIHZhciBjb3JyZWN0Q29sb3IgPSAoY29udGV4dEF0dHJp
YnMuYWxwaGEgPyBbMCwgMCwgMCwgMF0gOiBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgY29ycmVjdENvbG9yKTsKKyAgICBkZWJ1ZyhgVGVz
dGluZyB0aGF0IGRlcHRoICR7IGhhc0RlcHRoID8gJ2FmZmVjdHMnOiAnZG9lcyBub3QgYWZmZWN0
J30gdGhlIHJlbmRlcmluZy5gKTsKKyAgICBnbC5kZXB0aEZ1bmMoZ2wuTkVWRVIpOworICAgIGRy
YXcoZ2wpOworICAgIGNvcnJlY3RDb2xvciA9IGhhc0RlcHRoID8gYmxhY2sgOiByZWQ7CisgICAg
d3R1LmNoZWNrQ2FudmFzKGdsLCBjb3JyZWN0Q29sb3IpOworICAgIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wuU1RFTkNJTF9CVUZGRVJfQklU
KTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNrKTsKKyAgICBnbC5kZXB0aEZ1bmMoZ2wu
QUxXQVlTKTsKIAotICAgIGlmIChmYkhhc0NvbG9yKSB7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLSAgICAgIGdsLmNsZWFyQ29sb3IoMC41
LCAwLjUsIDAuNSwgMC41KTsKLSAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwot
ICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzEyNywgMTI3LCAxMjcs
IDEyN10sIHVuZGVmaW5lZCwgMSk7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVIsIG51bGwpOworICAgIGRlYnVnKGBUZXN0aW5nIHRoYXQgcmVuZGVyaW5nIGlzICR7aGFz
QW50aWFsaWFzID8gJ2FudGlhbGlhc2VkJyA6ICdhbGlhc2VkJ30uYCk7CisgICAgZHJhdyhnbCwg
Myk7CisgICAgbGV0IE4gPSAyOworICAgIGxldCBidWYgPSBuZXcgVWludDhBcnJheShOICogTiAq
IDQpOworICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgTiwgTiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgYnVmKTsKKyAgICByZWRDaGFubmVsc1swXSA9IGJ1Zls0ICogKE4gKyAxKV07IC8vICgx
LCAxKQorICAgIHJlZENoYW5uZWxzWzFdID0gYnVmWzQgKiBOICogKE4gLSAxKV07IC8vIGxlZnQg
dG9wCisgICAgcmVkQ2hhbm5lbHNbMl0gPSBidWZbNCAqIChOIC0gMSldOyAvLyByaWdodCBib3R0
b20KKyAgICBzaG91bGRCZSgicmVkQ2hhbm5lbHNbMV0iLCAiMjU1Iik7CisgICAgc2hvdWxkQmUo
InJlZENoYW5uZWxzWzJdIiwgIjAiKTsKKyAgICBpZiAoaGFzQW50aWFsaWFzKSB7CisgICAgICAg
IHNob3VsZE5vdEJlKCJyZWRDaGFubmVsc1swXSIsICIyNTUiKTsKKyAgICAgICAgc2hvdWxkTm90
QmUoInJlZENoYW5uZWxzWzBdIiwgIjAiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRC
ZVRydWUoInJlZENoYW5uZWxzWzBdID09IDI1NSB8fCByZWRDaGFubmVsc1swXSA9PSAwIik7CiAg
ICAgfQorICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJf
QklUIHwgZ2wuU1RFTkNJTF9CVUZGRVJfQklUKTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJs
YWNrKTsKKworICAgIGRlYnVnKCJUZXN0aW5nIHRoYXQgcmVuZGVyaW5nIHdvcmtzLiIpOworICAg
IGRyYXcoZ2wpOworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgcmVkKTsKKyAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxfQlVG
RkVSX0JJVCk7CisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBibGFjayk7CiB9CiAKLWZ1bmN0aW9u
IHRlc3REZXB0aChkZXB0aCkKK2Z1bmN0aW9uIHRlc3REZWZhdWx0KCkKIHsKLSAgICBkZWJ1Zygi
VGVzdGluZyBkZXB0aCA9ICIgKyBkZXB0aCk7Ci0gICAgaWYgKGRlcHRoKSB7Ci0gICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7IHN0ZW5jaWw6IGZhbHNlLCBhbnRp
YWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSIpOwotICAgICAgICBzaG91bGRC
ZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiIpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7IGRlcHRo
OiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAx
IF0sIDEsIDApIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRF
UFRIX0JJVFMpID09IDAiKTsKLSAgICB9Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuUkVEX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRl
cihnbC5HUkVFTl9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuQkxVRV9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuQUxQSEFfQklUUykgPj0gOCIpOworICAgIGRlYnVnKCJUZXN0aW5nIGRlZmF1bHQgYXR0
cmlidXRlczogeyBzdGVuY2lsOmZhbHNlIH0iKTsKKyAgICBzaG91bGRCZU5vbk51bGwoImdsID0g
Z2V0V2ViR0woMSwgMSwgbnVsbCwgWyAwLCAwLCAwLCAwIF0sIDEsIDApIik7CisgICAgc2hvdWxk
QmVGYWxzZSgiZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5zdGVuY2lsIik7CisgICAgc2hvdWxk
QmUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpIiwgIjAiKTsKK30KIAorZnVuY3Rp
b24gdGVzdEF0dHJpYnV0ZXNBZmZlY3RDb250ZXh0KGFscGhhLCBzdGVuY2lsLCBkZXB0aCwgYW50
aWFsaWFzKQoreworICAgIHNob3VsZEJlTm9uTnVsbChgZ2wgPSBnZXRXZWJHTCgyLCAyLCB7IGRl
cHRoOiAke2RlcHRofSwgc3RlbmNpbDogJHtzdGVuY2lsfSwgYW50aWFsaWFzOiAke2FudGlhbGlh
c30sIGFscGhhOiAke2FscGhhfSB9LCBbIDAsIDAsIDAsIDAgXSwgMSwgMClgKTsKICAgICBzaG91
bGRCZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSIp
OwogCi0gICAgZ2wuZGVwdGhGdW5jKGdsLk5FVkVSKTsKLQotICAgIHZhciB2ZXJ0aWNlcyA9IG5l
dyBGbG9hdDMyQXJyYXkoWwotICAgICAgICAgMS4wLCAgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAs
ICAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAgICAgMS4wLCAgMS4w
LCAwLjAsCi0gICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAgIDEuMCwgLTEuMCwgMC4w
XSk7Ci0gICAgdmFyIGNvbG9ycyA9IG5ldyBVaW50OEFycmF5KFsKLSAgICAgICAgMjU1LCAwLCAw
LCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwK
LSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAg
ICAyNTUsIDAsIDAsIDI1NV0pOwotCi0gICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMs
IGNvbG9ycywgMCwgMCk7Ci0gICAgY29ycmVjdENvbG9yID0gKGNvbnRleHRBdHRyaWJzLmRlcHRo
ID8gWzAsIDAsIDAsIDI1NV0gOiBbMjU1LCAwLCAwLCAyNTVdKTsKLSAgICB3dHUuY2hlY2tDYW52
YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBjb3JyZWN0Q29sb3IpOwotCi0gICAgaWYgKGZiSGFzRGVw
dGgpIHsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZm
ZXIpOwotICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZF
Ul9CSVQpOwotICAgICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycywgMCwg
MCk7Ci0gICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwgMCwg
MjU1XSk7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwor
ICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJ
VFMpIiwgIjgiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiZ2wuZ2V0UGFyYW1l
dGVyKGdsLkdSRUVOX0JJVFMpIiwgIjgiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykiLCAiOCIpOworCisgICAgc2hvdWxkQmUo
ImNvbnRleHRBdHRyaWJzLmFscGhhIiwgIiIgKyBhbHBoYSk7CisgICAgaWYgKGNvbnRleHRWZXJz
aW9uIDwgMikgeworICAgICAgICBpZiAoIXN0ZW5jaWwpCisgICAgICAgICAgICBzaG91bGRCZUZh
bHNlKCJjb250ZXh0QXR0cmlicy5zdGVuY2lsIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHN0ZW5jaWwgPSBjb250ZXh0QXR0cmlicy5zdGVuY2lsOworICAgICAgICBpZiAoIWRlcHRoKQor
ICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgiY29udGV4dEF0dHJpYnMuZGVwdGgiKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgZGVwdGggPSBjb250ZXh0QXR0cmlicy5kZXB0aDsKKyAgICAg
ICAgaWYgKCFhbnRpYWxpYXMpCisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb250ZXh0QXR0
cmlicy5hbnRpYWxpYXMiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYW50aWFsaWFzID0g
Y29udGV4dEF0dHJpYnMuYW50aWFsaWFzOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJl
KCJjb250ZXh0QXR0cmlicy5zdGVuY2lsIiwgIiIgKyBzdGVuY2lsKTsKKyAgICAgICAgc2hvdWxk
QmUoImNvbnRleHRBdHRyaWJzLmRlcHRoIiwgIiIgKyBkZXB0aCk7CisgICAgICAgIHNob3VsZEJl
KCJjb250ZXh0QXR0cmlicy5hbnRpYWxpYXMiLCAiIiArIGFudGlhbGlhcyk7CiAgICAgfQotfQog
Ci1mdW5jdGlvbiB0ZXN0U3RlbmNpbEFuZERlcHRoKHN0ZW5jaWwsIGRlcHRoKQotewotICAgIGRl
YnVnKCJUZXN0aW5nIHN0ZW5jaWwgPSAiICsgc3RlbmNpbCArICIsIGRlcHRoID0gIiArIGRlcHRo
KTsKLSAgICB2YXIgY3JlYXRpb25TdHJpbmcgPQotICAgICAgICAiZ2wgPSBnZXRXZWJHTCgxLCAx
LCB7IGRlcHRoOiAiICsgZGVwdGggKyAiLCBzdGVuY2lsOiAiICsgc3RlbmNpbCArICIsIGFudGlh
bGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIjsKLSAgICBzaG91bGRCZU5vbk51
bGwoY3JlYXRpb25TdHJpbmcpOwotCi0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuUkVEX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihn
bC5HUkVFTl9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuQkxVRV9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuQUxQSEFfQklUUykgPj0gOCIpOwotICAgIGlmIChkZXB0aCkKLSAgICAgICAgc2hvdWxkQmVU
cnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPj0gMTYiKTsKKyAgICBpZiAoYWxw
aGEpCisgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuQUxQSEFfQklUUykiLCAiOCIpOwogICAgIGVsc2UKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJn
bC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCIpOwotCisgICAgICAgIHNob3VsZEJl
KCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykiLCAiMCIpOwogICAgIGlmIChzdGVuY2ls
KQotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMp
ID49IDgiKTsKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdldFBhcmFt
ZXRlcihnbC5TVEVOQ0lMX0JJVFMpIiwgIjgiKTsKICAgICBlbHNlCi0gICAgICAgIHNob3VsZEJl
VHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCIpOwotCi0gICAgc2hv
dWxkQmVOb25OdWxsKCJjb250ZXh0QXR0cmlicyA9IGdsLmdldENvbnRleHRBdHRyaWJ1dGVzKCki
KTsKLSAgICBpZiAoIWRlcHRoICYmIGNvbnRleHRBdHRyaWJzLmRlcHRoKSB7Ci0gICAgICAgIHRl
c3RGYWlsZWQoIldlYkdMIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIGEgZGVwdGggYnVmZmVyIHdo
ZW4gaXQgc2hvdWxkIG5vdCBoYXZlIik7Ci0gICAgfQotICAgIGlmICghY29udGV4dEF0dHJpYnMu
ZGVwdGgpCi0gICAgICAgIGRlcHRoID0gZmFsc2U7Ci0gICAgaWYgKCFzdGVuY2lsICYmIGNvbnRl
eHRBdHRyaWJzLnN0ZW5jaWwpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiV2ViR0wgaW1wbGVtZW50
YXRpb24gcHJvdmlkZWQgYSBzdGVuY2lsIGJ1ZmZlciB3aGVuIGl0IHNob3VsZCBub3QgaGF2ZSIp
OwotICAgIH0KLSAgICBpZiAoIWNvbnRleHRBdHRyaWJzLnN0ZW5jaWwpCi0gICAgICAgIHN0ZW5j
aWwgPSBmYWxzZTsKKyAgICAgICAgc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lM
X0JJVFMpIiwgIjAiKTsKKyAgICBpZiAoZGVwdGgpCisgICAgICAgIHNob3VsZEJlR3JlYXRlclRo
YW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykiLCAiMTYiKTsKKyAgICBl
bHNlCisgICAgICAgIHNob3VsZEJlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykiLCAi
MCIpOwogCi0gICAgZ2wuZGVwdGhGdW5jKGdsLkFMV0FZUyk7CisgICAgdmFyIGNvcnJlY3RDb2xv
ciA9IGFscGhhID8gWzAsIDAsIDAsIDBdIDogWzAsIDAsIDAsIDI1NV07CisgICAgd3R1LmNoZWNr
Q2FudmFzKGdsLCBjb3JyZWN0Q29sb3IpOwogCi0gICAgZ2wuc3RlbmNpbEZ1bmMoZ2wuTkVWRVIs
IDEsIDEpOwotICAgIGdsLnN0ZW5jaWxPcChnbC5LRUVQLCBnbC5LRUVQLCBnbC5LRUVQKTsKKyAg
ICBkZWJ1ZygiVGVzdGluZyBkZWZhdWx0IGZyYW1lYnVmZmVyLiIpOworICAgIGNoZWNrRHJhdyhh
bHBoYSwgc3RlbmNpbCwgZGVwdGgsIGFudGlhbGlhcyk7CiAKLSAgICB2YXIgdmVydGljZXMgPSBu
ZXcgRmxvYXQzMkFycmF5KFsKLSAgICAgICAgIDEuMCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAs
IDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsIDEuMCwg
MC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsIC0xLjAsIDAuMF0p
OwotICAgIHZhciBjb2xvcnMgPSBuZXcgVWludDhBcnJheShbCi0gICAgICAgIDI1NSwgMCwgMCwg
MjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0g
ICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAg
MjU1LCAwLCAwLCAyNTVdKTsKLQotICAgIGRyYXdBbmRSZWFkUGl4ZWwoZ2wsIHZlcnRpY2VzLCBj
b2xvcnMsIDAsIDApOwotICAgIGNvcnJlY3RDb2xvciA9IChzdGVuY2lsID8gWzAsIDAsIDAsIDI1
NV0gOiBbMjU1LCAwLCAwLCAyNTVdKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAw
LCAxLCAxLCBjb3JyZWN0Q29sb3IpCi0KLSAgICBpZiAoZmJIYXNTdGVuY2lsKSB7Ci0gICAgICBn
bC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLSAgICAgIGds
LmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAg
IGRyYXdBbmRSZWFkUGl4ZWwoZ2wsIHZlcnRpY2VzLCBjb2xvcnMsIDAsIDApOwotICAgICAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzAsIDAsIDAsIDI1NV0pOwotICAgICAg
Z2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKKyAgICBpZiAoZmJIYXND
b2xvcikgeworICAgICAgICBkZWJ1ZygiVGVzdGluZyBib3VuZCBmcmFtZWJ1ZmZlciBvYmplY3Qu
Iik7CisgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZm
ZXIpOworICAgICAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDApOworICAgICAgICBnbC5jbGVh
cihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxf
QlVGRkVSX0JJVCk7CisgICAgICAgIGNoZWNrRHJhdyh0cnVlLCBmYkhhc1N0ZW5jaWwsIGZiSGFz
RGVwdGgsIGZhbHNlKTsKKyAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBudWxsKTsKICAgICB9CiB9CiAKLWZ1bmN0aW9uIHRlc3RBbnRpYWxpYXMoYW50aWFsaWFzKQot
ewotICAgIGRlYnVnKCJUZXN0aW5nIGFudGlhbGlhcyA9ICIgKyBhbnRpYWxpYXMpOwotICAgIC8v
IEJvdGggdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgY2FudmFzIGFyZSBOLgotICAgIHZhciBOID0g
MjsKLSAgICBpZiAoYW50aWFsaWFzKQotICAgICAgICBzaG91bGRCZU5vbk51bGwoImdsID0gZ2V0
V2ViR0woIiArIE4gKyAiLCAiICsgTiArICIsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxz
ZSwgYWxwaGE6IGZhbHNlLCBhbnRpYWxpYXM6IHRydWUgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDAp
Iik7Ci0gICAgZWxzZQotICAgICAgICBzaG91bGRCZU5vbk51bGwoImdsID0gZ2V0V2ViR0woIiAr
IE4gKyAiLCAiICsgTiArICIsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYWxwaGE6
IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSIpOwotICAg
IHNob3VsZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSBnbC5nZXRDb250ZXh0QXR0cmlidXRl
cygpIik7Ci0KLSAgICB2YXIgdmVydGljZXMgPSBuZXcgRmxvYXQzMkFycmF5KFsKLSAgICAgICAg
IDEuMCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAt
MS4wLCAwLjBdKTsKLSAgICB2YXIgY29sb3JzID0gbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAy
NTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwg
MCwgMjU1XSk7Ci0gICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycywgMCwg
MCk7Ci0gICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KE4gKiBOICogNCk7Ci0gICAgZ2wucmVh
ZFBpeGVscygwLCAwLCBOLCBOLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAg
IHJlZENoYW5uZWxzWzBdID0gYnVmWzQgKiAoTiArIDEpXTsgLy8gKDEsIDEpCi0gICAgcmVkQ2hh
bm5lbHNbMV0gPSBidWZbNCAqIE4gKiAoTiAtIDEpXTsgLy8gbGVmdCB0b3AKLSAgICByZWRDaGFu
bmVsc1syXSA9IGJ1Zls0ICogKE4gLSAxKV07IC8vIHJpZ2h0IGJvdHRvbQotICAgIHNob3VsZEJl
VHJ1ZSgicmVkQ2hhbm5lbHNbMV0gPT0gMjU1ICYmIHJlZENoYW5uZWxzWzJdID09IDAiKTsKLSAg
ICBzaG91bGRCZSgicmVkQ2hhbm5lbHNbMF0gIT0gMjU1ICYmIHJlZENoYW5uZWxzWzBdICE9IDAi
LCAiY29udGV4dEF0dHJpYnMuYW50aWFsaWFzIik7Ci19Ci0KIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ewogICAgIHRlc3REZWZhdWx0KCk7Ci0gICAgdGVzdEFscGhhKHRydWUpOwotICAgIHRlc3RBbHBo
YShmYWxzZSk7Ci0gICAgdGVzdERlcHRoKHRydWUpOwotICAgIHRlc3REZXB0aChmYWxzZSk7Ci0g
ICAgdGVzdFN0ZW5jaWxBbmREZXB0aCh0cnVlLCBmYWxzZSk7Ci0gICAgdGVzdFN0ZW5jaWxBbmRE
ZXB0aChmYWxzZSwgZmFsc2UpOwotICAgIHRlc3RTdGVuY2lsQW5kRGVwdGgodHJ1ZSwgdHJ1ZSk7
Ci0gICAgdGVzdFN0ZW5jaWxBbmREZXB0aChmYWxzZSwgdHJ1ZSk7Ci0gICAgdGVzdEFudGlhbGlh
cyh0cnVlKTsKLSAgICB0ZXN0QW50aWFsaWFzKGZhbHNlKTsKLQorICAgIGxldCBjYXNlcyA9IFtm
YWxzZSwgdHJ1ZV07CisgICAgZm9yIChsZXQgYWxwaGEgb2YgY2FzZXMpIHsKKyAgICAgICAgZm9y
IChsZXQgc3RlbmNpbCBvZiBjYXNlcykgeworICAgICAgICAgICAgZm9yIChsZXQgZGVwdGggb2Yg
Y2FzZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBhbnRpYWxpYXMgb2YgY2FzZXMpIHsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEF0dHJpYnV0ZXNBZmZlY3RDb250ZXh0KGFscGhhLCBz
dGVuY2lsLCBkZXB0aCwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CiAgICAgZmluaXNoVGVzdCgpOwogfQotCiA8L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5IG9ubG9hZD0iaW5pdCgpIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQvbWV0
aG9kcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvY29udGV4dC9tZXRob2RzLmh0bWwKaW5kZXggZTUyNzRmYjk4MDQ1OGFmZDBj
NzM1NThmY2M5MDQxNTliMDM4YmQzYi4uZDFlNDdmMzJhM2IwNWMyMGQ0OWQ2ZTBkNjk2MjgyYWIx
YTRiYWJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9tZXRob2RzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9t
ZXRob2RzLmh0bWwKQEAgLTExLDYgKzExLDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCiA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CkBAIC0y
MCw3ICsyMSw3IEBAIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogInVzZSBzdHJpY3Qi
OwogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIFdlYkdMIGNvbnRleHQg
aGFzIGFsbCB0aGUgbWV0aG9kcyBpbiB0aGUgc3BlY2lmaWNhdGlvbi4iKTsKIAotdmFyIG1ldGhv
ZHMgPSBbCitjb25zdCBtZXRob2RzID0gWwogICAiZ2V0Q29udGV4dEF0dHJpYnV0ZXMiLAogICAi
YWN0aXZlVGV4dHVyZSIsCiAgICJhdHRhY2hTaGFkZXIiLApAQCAtMTU5LDU1ICsxNjAsMTQgQEAg
dmFyIG1ldGhvZHMgPSBbCiAgICJ2aWV3cG9ydCIKIF07CiAKLS8vIFByb3BlcnRpZXMgdG8gYmUg
aWdub3JlZCBiZWNhdXNlIHRoZXkgd2VyZSBhZGRlZCBpbiB2ZXJzaW9ucyBvZiB0aGUKLS8vIHNw
ZWMgdGhhdCBhcmUgYmFja3dhcmQtY29tcGF0aWJsZSB3aXRoIHRoaXMgdmVyc2lvbgotdmFyIGln
bm9yZWRNZXRob2RzID0gWwotICAvLyBUaGVyZSBpcyBubyBvZmZpY2lhbCBzcGVjIGZvciB0aGUg
Y29tbWl0IEFQSSB5ZXQsIHRoZSBwcm9wb3NhbCBsaW5rIGlzOgotICAvLyBodHRwczovL3dpa2ku
d2hhdHdnLm9yZy93aWtpL09mZnNjcmVlbkNhbnZhcwotICAiY29tbWl0IgotXTsKLQotZnVuY3Rp
b24gYXNzZXJ0RnVuY3Rpb24odiwgZikgewotICB0cnkgewotICAgIGlmICh0eXBlb2YgdltmXSAh
PSAiZnVuY3Rpb24iKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJQcm9wZXJ0eSBlaXRoZXIgZG9lcyBu
b3QgZXhpc3Qgb3IgaXMgbm90IGEgZnVuY3Rpb246ICIgKyBmKTsKLSAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9IGNhdGNoKGUp
IHsKLSAgICB0ZXN0RmFpbGVkKCJUcnlpbmcgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eSAnIiArIGYg
KyAiJyB0aHJldyBhbiBlcnJvcjogIitlLnRvU3RyaW5nKCkpOwotICB9Ci19Ci0KIGRlYnVnKCIi
KTsKIGRlYnVnKCJDYW52YXMuZ2V0Q29udGV4dCIpOwogCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci12YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFy
IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotdmFyIHBhc3NlZCA9IHRydWU7Ci1m
b3IgKHZhciBpPTA7IGk8bWV0aG9kcy5sZW5ndGg7IGkrKykgewotICB2YXIgciA9IGFzc2VydEZ1
bmN0aW9uKGdsLCBtZXRob2RzW2ldKTsKLSAgcGFzc2VkID0gcGFzc2VkICYmIHI7Ci19Ci1pZiAo
cGFzc2VkKSB7Ci0gIHRlc3RQYXNzZWQoIkFsbCBXZWJHTCBtZXRob2RzIGZvdW5kLiIpOwotfQot
dmFyIGV4dGVuZGVkID0gZmFsc2U7Ci1mb3IgKHZhciBpIGluIGdsKSB7Ci0gIGlmICh0eXBlb2Yg
Z2xbaV0gPT0gImZ1bmN0aW9uIiAmJiBtZXRob2RzLmluZGV4T2YoaSkgPT0gLTEgJiYgaWdub3Jl
ZE1ldGhvZHMuaW5kZXhPZihpKSA9PSAtMSkgewotICAgIGlmICghZXh0ZW5kZWQpIHsKLSAgICAg
IGV4dGVuZGVkID0gdHJ1ZTsKLSAgICAgIHRlc3RGYWlsZWQoIkFsc28gZm91bmQgdGhlIGZvbGxv
d2luZyBleHRyYSBtZXRob2RzOiIpOwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKGkpOwotICB9Ci19
Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChj
YW52YXMpOwogCi1pZiAoIWV4dGVuZGVkKSB7Ci0gIHRlc3RQYXNzZWQoIk5vIGV4dHJhIG1ldGhv
ZHMgZm91bmQgb24gV2ViR0wgY29udGV4dC4iKTsKLX0KK3Rlc3RDb250ZXh0TWV0aG9kcyhnbCwg
bWV0aG9kcyk7CiAKIGRlYnVnKCIiKTsKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtdGV4dHVyZS1jb21wcmVzc2lvbi1icHRjLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLWJwdGMuaHRtbAppbmRleCAxZmVk
OWQ5ZmQ3MzVhZmU0OTdlNjJjZDk1YWQ0NGM1N2E1OGRmY2MzLi4wYmNlNzM3NmE1NTZkZGJiNmUw
NTM4YWM0NmEwZmYyYjc5OGM1NmFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJl
LWNvbXByZXNzaW9uLWJwdGMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXBy
ZXNzaW9uLWJwdGMuaHRtbApAQCAtNjAsNyArNjAsNyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5z
aW9uKCkgewogICAvLyAqIDxoZWlnaHQ+IGlzIG5vdCBhIG11bHRpcGxlIG9mIGZvdXIsIGFuZCA8
aGVpZ2h0PiBwbHVzIDx5b2Zmc2V0PiBpcwogICAvLyAgICAgICAgICAgbm90IGVxdWFsIHRvIFRF
WFRVUkVfSEVJR0hUOyBvcgogICAvLyAqIDx4b2Zmc2V0PiBvciA8eW9mZnNldD4gaXMgbm90IGEg
bXVsdGlwbGUgb2YgZm91ci4KLSAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIHZh
bGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgIGN0
dS50ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0
ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCiAgICAgMTYsIDE2LCBbCiAgICAgICB7
IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImhlaWdodCBpcyBub3Qg
YSBtdWx0aXBsZSBvZiA0IiB9LApAQCAtNzcsNyArNzcsMTcgQEAgZnVuY3Rpb24gcnVuVGVzdEV4
dGVuc2lvbigpIHsKICAgLy8gVGVzdCBUZXhJbWFnZSB2YWxpZGF0aW9uIG9uIGxldmVsIGRpbWVu
c2lvbnMgY29tYmluYXRpb25zLgogICAvLyBXaGVuIGxldmVsIGVxdWFscyAwLCB3aWR0aCBhbmQg
aGVpZ2h0IG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0LgogICAvLyBXaGVuIGxldmVsIGlzIGxhcmdl
ciB0aGFuIDAsIHRoaXMgY29uc3RyYWludCBkb2Vzbid0IGFwcGx5LgotICBjdHUudGVzdFRleElt
YWdlTGV2ZWxEaW1lbnNpb25zKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwg
Z2V0QmxvY2tEaW1lbnNpb25zLAorCisgIGxldCBucG90RXhwZWN0YXRpb24sIG5wb3RNZXNzYWdl
OworICBpZiAoY29udGV4dFZlcnNpb24gPj0gMikgeworICAgIG5wb3RFeHBlY3RhdGlvbiA9IGds
Lk5PX0VSUk9SOworICAgIG5wb3RNZXNzYWdlID0gInZhbGlkIjsKKyAgfSBlbHNlIHsKKyAgICBu
cG90RXhwZWN0YXRpb24gPSBnbC5JTlZBTElEX1ZBTFVFOworICAgIG5wb3RNZXNzYWdlID0gImlu
dmFsaWQiOworICB9CisKKyAgY3R1LnRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0
LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAog
ICAgIFsKICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImxldmVsIGlzIDAsIGhl
aWdodCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LApAQCAtODcsMTAgKzk3LDE2IEBAIGZ1bmN0
aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElE
X09QRVJBVElPTiwgbWVzc2FnZTogImxldmVsIGlzIDAsIHdpZHRoIGlzIG5vdCBhIG11bHRpcGxl
IG9mIDQiIH0sCiAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0LAogICAgICAg
ICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICAg
IHsgbGV2ZWw6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEsCisgICAgICAgIGV4cGVjdGF0aW9uOiBn
bC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgMngyIGlzIGlu
dmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAyLAorICAgICAg
ICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJpbXBsaWVkIGJh
c2UgbWlwIDJ4NCBpcyBpbnZhbGlkIiB9LAorICAgICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhl
aWdodDogMSwKKyAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNz
YWdlOiAiaW1wbGllZCBiYXNlIG1pcCA0eDIgaXMgaW52YWxpZCIgfSwKICAgICAgIHsgbGV2ZWw6
IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsCi0gICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJP
UiwgbWVzc2FnZTogImxldmVsID4gMCwgaXMgdmFsaWQiIH0sCi0gICAgICB7IGxldmVsOiAyLCB3
aWR0aDogMSwgaGVpZ2h0OiAxLAotICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1l
c3NhZ2U6ICJsZXZlbCA+IDAsIGlzIHZhbGlkIiB9LAorICAgICAgICBleHBlY3RhdGlvbjogZ2wu
Tk9fRVJST1IsIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4NCBpcyB2YWxpZCIgfSwKKyAg
ICAgIHsgbGV2ZWw6IDIsIHdpZHRoOiAxLCBoZWlnaHQ6IDMsCisgICAgICAgIGV4cGVjdGF0aW9u
OiBucG90RXhwZWN0YXRpb24sIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4MTIgaXMgIiAr
IG5wb3RNZXNzYWdlIH0sCiAgIF0pOwogCiAgIC8vIFRlc3QgdGhhdCBCUFRDIGVudW1zIGFyZSBu
b3QgYWNjZXB0ZWQgYnkgdGV4SW1hZ2UyRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtdGV4
dHVyZS1jb21wcmVzc2lvbi1yZ3RjLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXBy
ZXNzaW9uLXJndGMuaHRtbAppbmRleCBjMmEyZDQxNjkwODc1NTI2OTc0ZjBjZWRmMTZlY2NhZmRm
MmUwYmQzLi43MGRjZjliYTdiN2NiZjM3NmYzNzBjY2FiMGI4MGZkYzM0NmFkNGZjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9l
eHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbApAQCAtNjUsNyArNjUs
NyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAvLyAqIDxoZWlnaHQ+IGlzIG5v
dCBhIG11bHRpcGxlIG9mIGZvdXIsIGFuZCA8aGVpZ2h0PiBwbHVzIDx5b2Zmc2V0PiBpcwogICAv
LyAgICAgICAgICAgbm90IGVxdWFsIHRvIFRFWFRVUkVfSEVJR0hUOyBvcgogICAvLyAqIDx4b2Zm
c2V0PiBvciA8eW9mZnNldD4gaXMgbm90IGEgbXVsdGlwbGUgb2YgZm91ci4KLSAgY3R1LnRlc3RU
ZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3Ro
LCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgIGN0dS50ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zKGds
LCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lv
bnMsCiAgICAgMTYsIDE2LCBbCiAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRo
OiA0LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElP
TiwgbWVzc2FnZTogImhlaWdodCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LApAQCAtODIsNyAr
ODIsMTcgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgLy8gVGVzdCBUZXhJbWFn
ZSB2YWxpZGF0aW9uIG9uIGxldmVsIGRpbWVuc2lvbnMgY29tYmluYXRpb25zLgogICAvLyBXaGVu
IGxldmVsIGVxdWFscyAwLCB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0
LgogICAvLyBXaGVuIGxldmVsIGlzIGxhcmdlciB0aGFuIDAsIHRoaXMgY29uc3RyYWludCBkb2Vz
bid0IGFwcGx5LgotICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCB2YWxpZEZv
cm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAorCisgIGxldCBu
cG90RXhwZWN0YXRpb24sIG5wb3RNZXNzYWdlOworICBpZiAoY29udGV4dFZlcnNpb24gPj0gMikg
eworICAgIG5wb3RFeHBlY3RhdGlvbiA9IGdsLk5PX0VSUk9SOworICAgIG5wb3RNZXNzYWdlID0g
InZhbGlkIjsKKyAgfSBlbHNlIHsKKyAgICBucG90RXhwZWN0YXRpb24gPSBnbC5JTlZBTElEX1ZB
TFVFOworICAgIG5wb3RNZXNzYWdlID0gImludmFsaWQiOworICB9CisKKyAgY3R1LnRlc3RUZXhJ
bWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxl
bmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAogICAgIFsKICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRo
OiA0LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElP
TiwgbWVzc2FnZTogImxldmVsIGlzIDAsIGhlaWdodCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9
LApAQCAtOTIsMTAgKzEwMiwxNiBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAg
ICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJsZXZlbCBp
cyAwLCB3aWR0aCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAogICAgICAgeyBsZXZlbDogMCwg
d2lkdGg6IDQsIGhlaWdodDogNCwKICAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBt
ZXNzYWdlOiAiaXMgdmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMSwgaGVpZ2h0
OiAxLAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6
ICJpbXBsaWVkIGJhc2UgbWlwIDJ4MiBpcyBpbnZhbGlkIiB9LAorICAgICAgeyBsZXZlbDogMSwg
d2lkdGg6IDEsIGhlaWdodDogMiwKKyAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BF
UkFUSU9OLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNlIG1pcCAyeDQgaXMgaW52YWxpZCIgfSwKKyAg
ICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDEsCisgICAgICAgIGV4cGVjdGF0aW9u
OiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgNHgyIGlz
IGludmFsaWQiIH0sCiAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMiwgaGVpZ2h0OiAyLAotICAg
ICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJsZXZlbCA+IDAsIGlzIHZh
bGlkIiB9LAotICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdodDogMSwKLSAgICAgICAg
ZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAibGV2ZWwgPiAwLCBpcyB2YWxpZCIg
fSwKKyAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiaW1wbGllZCBi
YXNlIG1pcCA0eDQgaXMgdmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAyLCB3aWR0aDogMSwgaGVp
Z2h0OiAzLAorICAgICAgICBleHBlY3RhdGlvbjogbnBvdEV4cGVjdGF0aW9uLCBtZXNzYWdlOiAi
aW1wbGllZCBiYXNlIG1pcCA0eDEyIGlzICIgKyBucG90TWVzc2FnZSB9LAogICBdKTsKIAogICAv
LyBUZXN0IHRoYXQgUkdUQyBlbnVtcyBhcmUgbm90IGFjY2VwdGVkIGJ5IHRleEltYWdlMkQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvczN0Yy1hbmQtcmd0Yy5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3Rj
LWFuZC1yZ3RjLmh0bWwKaW5kZXggYWRkZGU1NGI1ZmE2MGJjMjgzNjRmZjQ4NzMyMWU2Yzk0YWRi
ZTBhMS4uM2I3MjVmZmUyMjk3MTBkYjg2OGM4NGFlOTA3Y2FhYmE3OTVlZmY1ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvZXh0ZW5zaW9ucy9zM3RjLWFuZC1yZ3RjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3RjLWFu
ZC1yZ3RjLmh0bWwKQEAgLTM5LDYgKzM5LDExIEBAIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVy
aWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyCiAK
IGRlYnVnKCIiKTsKIAorLy8gQWNjZXB0YWJsZSBpbnRlcnBvbGF0aW9uIGVycm9yIGRlcGVuZHMg
b24gZW5kcG9pbnRzOgorLy8gMS4wIC8gMjU1LjAgKyAwLjAzICogbWF4KGFicyhlbmRwb2ludDAg
LSBlbmRwb2ludDEpLCBhYnMoZW5kcG9pbnQwX3AgLSBlbmRwb2ludDFfcCkpCisvLyBGb3Igc2lt
cGxpY2l0eSwgYXNzdW1lIHRoZSB3b3JzdCBjYXNlIChlMCBpcyAwLjAsIGUxIGlzIDEuMCkuIEFm
dGVyIGNvbnZlcnNpb24gdG8gdW5vcm04LCBpdCBpcyA5LgorY29uc3QgREVGQVVMVF9DT0xPUl9F
UlJPUiA9IDk7CisKIC8qCiBCQzEgKERYVDEpIGJsb2NrCiBlMCA9IFsgIDAsIDI1NSwgMF0KQEAg
LTI2Nyw2ICsyNzIsODcgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBpZiAo
Y29udGV4dFZlcnNpb24gPj0gMikgewogICAgICAgICB0ZXN0RFhUNV9SR0JBX1BCTygpOwogICAg
IH0KKworICAgIC8vIFRlc3QgVGV4SW1hZ2UgdmFsaWRhdGlvbiBvbiBsZXZlbCBkaW1lbnNpb25z
IGNvbWJpbmF0aW9ucy4KKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIldoZW4gbGV2ZWwgZXF1
YWxzIDAsIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuIik7CisgICAg
ZGVidWcoIldoZW4gbGV2ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNu
J3QgYXBwbHkuIik7CisgICAgY3R1LnRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0
LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAor
ICAgICAgWworICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiAzLCBleHBlY3Rh
dGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiA0eDMiIH0sCisgICAgICAg
IHsgbGV2ZWw6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElE
X09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDN4NCIgfSwKKyAgICAgICAgeyBsZXZlbDogMCwgd2lk
dGg6IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNz
YWdlOiAiMDogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0
LCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiA0eDQiIH0sCisgICAgICAg
IHsgbGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJP
UiwgbWVzc2FnZTogIjE6IDJ4MiIgfSwKKyAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhl
aWdodDogMSwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogMXgxIiB9LAor
ICAgIF0pOworCisgICAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFs
aWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgMTYsIDE2
LAorICAgICAgWworICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBo
ZWlnaHQ6IDMsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBt
ZXNzYWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9m
ZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBl
Y3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBpcyBub3QgYSBt
dWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEsIHlvZmZzZXQ6IDAsIHdpZHRo
OiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFU
SU9OLCBtZXNzYWdlOiAieG9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAg
ICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAg
ICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAieW9mZnNldCBp
cyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEyLCB5b2Zmc2V0
OiAxMiwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9f
RVJST1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICBdKTsKKworICAgIGlmIChjb250ZXh0
VmVyc2lvbiA+PSAyKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3Rp
bmcgTlBPVCB0ZXh0dXJlcyIpOworICAgICAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNp
b25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0Rp
bWVuc2lvbnMsCisgICAgICAgICAgWworICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDAs
IGhlaWdodDogMCwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMDogMHgwIGlz
IHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEsIGhlaWdodDogMSwg
ZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMDogMXgxIGlzIGlu
dmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMiwgaGVpZ2h0OiAyLCBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAyeDIgaXMgaW52
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDMsIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDN4MyBpcyBpbnZh
bGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEwLCBoZWlnaHQ6IDEwLCBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMHgxMCBpcyBp
bnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDExLCBoZWlnaHQ6IDEx
LCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMXgxMSBp
cyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDExLCBoZWlnaHQ6
IDEyLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMXgx
MiBpcyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEyLCBoZWln
aHQ6IDExLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAx
MngxMSBpcyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEyLCBo
ZWlnaHQ6IDEyLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAxMngxMiBp
cyB2YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgMCwgaGVpZ2h0OiAg
MCwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMTogMHgwLCBpcyB2YWxpZCIg
fSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgMywgaGVpZ2h0OiAgMywgZXhwZWN0
YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMTogM3gzLCBpcyBpbnZhbGlk
IiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA1LCBoZWlnaHQ6ICA1LCBleHBl
Y3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIxOiA1eDUsIGlzIGludmFs
aWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogIDUsIGhlaWdodDogIDYsIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjE6IDV4NiwgaXMgaW52
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgNiwgaGVpZ2h0OiAgNSwg
ZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMTogNng1LCBpcyBp
bnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA2LCBoZWlnaHQ6ICA2
LCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiA2eDYsIGlzIHZhbGlkIiB9
LAorICAgICAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6ICAwLCBoZWlnaHQ6ICAwLCBleHBlY3Rh
dGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAweDAsIGlzIHZhbGlkIiB9LAorICAgICAg
ICAgICAgeyBsZXZlbDogMiwgd2lkdGg6ICAzLCBoZWlnaHQ6ICAzLCBleHBlY3RhdGlvbjogZ2wu
Tk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAzeDMsIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBs
ZXZlbDogMywgd2lkdGg6ICAxLCBoZWlnaHQ6ICAzLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1Is
IG1lc3NhZ2U6ICIzOiAxeDMsIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMywg
d2lkdGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6
ICIzOiAxeDEsIGlzIHZhbGlkIiB9LAorICAgICAgICBdKTsKKworICAgICAgICBkZWJ1ZygiIik7
CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIHBhcnRpYWwgdXBkYXRlcyIpOworICAgICAgICBjdHUu
dGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVk
Qnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCAxMiwgMTIsCisgICAgICAgIFsKKyAgICAg
ICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCisgICAg
ICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJoZWln
aHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlv
ZmZzZXQ6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjog
Z2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBpcyBub3QgYSBtdWx0aXBsZSBv
ZiA0IiB9LAorICAgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhl
aWdodDogNCwKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwg
bWVzc2FnZTogInhvZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7
IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAg
ICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ5b2Zmc2V0IGlz
IG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgICAgeyB4b2Zmc2V0OiA4LCB5b2Zmc2V0
OiA4LCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLk5P
X0VSUk9SLCBtZXNzYWdlOiAiaXMgdmFsaWQiIH0sCisgICAgICAgIF0pOworCisgICAgICAgIGRl
YnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3RpbmcgaW1tdXRhYmxlIE5QT1QgdGV4dHVyZXMi
KTsKKyAgICAgICAgY3R1LnRlc3RUZXhTdG9yYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQsIHZh
bGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgICAg
ICAgICAgWworICAgICAgICAgICAgeyB3aWR0aDogMTIsIGhlaWdodDogMTIsIGV4cGVjdGF0aW9u
OiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDEyeDEyIGlzIHZhbGlkIiB9LAorICAgICAgICAg
ICAgeyB3aWR0aDogIDYsIGhlaWdodDogIDYsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVz
c2FnZTogIjE6IDZ4NiwgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IHdpZHRoOiAgMywgaGVp
Z2h0OiAgMywgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogM3gzLCBpcyB2
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgd2lkdGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBlY3RhdGlv
bjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIzOiAxeDEsIGlzIHZhbGlkIiB9LAorICAgICAgICBd
KTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3RSR1RDKCkgewpAQCAtMjk4LDYgKzM4NCw4
IEBAIGZ1bmN0aW9uIHJ1blRlc3RSR1RDKCkgewogICAgICAgICAgICAgZGF0YTogaW1nXzR4NF9z
aWduZWRfcmdfYmM1LAogICAgICAgICAgICAgZm9ybWF0OiBleHRfcmd0Yy5DT01QUkVTU0VEX1NJ
R05FRF9SRURfR1JFRU5fUkdUQzJfRVhULAogICAgICAgICAgICAgaGFzQWxwaGE6IGZhbHNlLAor
ICAgICAgICAgICAgZXJyb3I6IDE4LCAvLyBTaWduZWQsIHNvIHR3aWNlIHRoZSBub3JtYWwgZXJy
b3IuCisgICAgICAgICAgICAgICAgICAgICAgIC8vIEV4cGVyaW1lbnRhbGx5IG5lZWRlZCBieSBl
LmcuIFJUWCAzMDcwLgogICAgICAgICB9LAogICAgICAgICB7ICAgd2lkdGg6IDgsCiAgICAgICAg
ICAgICBoZWlnaHQ6IDgsCkBAIC00NzQsMTAgKzU2MiwxMyBAQCBmdW5jdGlvbiB1bmNvbXByZXNz
RFhUQmxvY2soCiAgICAgICAgICBmb3JtYXQgPT0gZXh0X3JndGMuQ09NUFJFU1NFRF9SRURfR1JF
RU5fUkdUQzJfRVhUIHx8CiAgICAgICAgICBmb3JtYXQgPT0gZXh0X3JndGMuQ09NUFJFU1NFRF9T
SUdORURfUkVEX1JHVEMxX0VYVCB8fAogICAgICAgICAgZm9ybWF0ID09IGV4dF9yZ3RjLkNPTVBS
RVNTRURfU0lHTkVEX1JFRF9HUkVFTl9SR1RDMl9FWFQpOworICAgIGxldCBjb2xvck9mZnNldCA9
IHNyY09mZnNldDsKICAgICBpZiAoIWlzQkM0NSkgewogICAgICAgICB2YXIgaXNEWFQxID0gZm9y
bWF0ID09IGV4dC5DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUIHx8CiAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQgPT0gZXh0LkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUOwotICAg
ICAgICB2YXIgY29sb3JPZmZzZXQgPSBzcmNPZmZzZXQgKyAoaXNEWFQxID8gMCA6IDgpOworICAg
ICAgICBpZiAoIWlzRFhUMSkgeworICAgICAgICAgICAgY29sb3JPZmZzZXQgKz0gODsKKyAgICAg
ICAgfQogICAgICAgICB2YXIgY29sb3IwID0gbWFrZTU2NShzcmMsIGNvbG9yT2Zmc2V0ICsgMCk7
CiAgICAgICAgIHZhciBjb2xvcjEgPSBtYWtlNTY1KHNyYywgY29sb3JPZmZzZXQgKyAyKTsKICAg
ICAgICAgdmFyIGMwZ3RjMSA9IGNvbG9yMCA+IGNvbG9yMSB8fCAhaXNEWFQxOwpAQCAtNjU4LDYg
Kzc0OSw4IEBAIGZ1bmN0aW9uIGNvcHlSZWN0KGRhdGEsIHNyY1gsIHNyY1ksIGRzdFgsIGRzdFks
IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkgewogfQogCiBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0
ZXN0LCB1c2VUZXhTdG9yYWdlKSB7CisgICAgdGVzdC5lcnJvciA9IHRlc3QuZXJyb3IgfHwgREVG
QVVMVF9DT0xPUl9FUlJPUjsKKwogICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkodGVzdC5k
YXRhKTsKICAgICB2YXIgd2lkdGggPSB0ZXN0LndpZHRoOwogICAgIHZhciBoZWlnaHQgPSB0ZXN0
LmhlaWdodDsKQEAgLTY5Niw3ICs3ODksNyBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0ZXN0
LCB1c2VUZXhTdG9yYWdlKSB7CiAKICAgICAgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVh
ZChnbCk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
ImRyYXdpbmcgdW5pdCBxdWFkIDEiKTsKLSAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBo
ZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGFTdWIsICJORUFSRVNUIik7Cisg
ICAgICAgICAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0ZXN0LmNoYW5uZWxzLCB1bmNv
bXByZXNzZWREYXRhU3ViLCAiTkVBUkVTVCIsIHRlc3QuZXJyb3IpOwogCiAgICAgICAgICAgICAv
LyBDbGVhbiB1cCBhbmQgcmVjb3ZlcgogICAgICAgICAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgx
KTsKQEAgLTcyMCwxMyArODEzLDEzIEBAIGZ1bmN0aW9uIHRlc3REWFRUZXh0dXJlKHRlc3QsIHVz
ZVRleFN0b3JhZ2UpIHsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
ImFmdGVyIGNsZWFyaW5nIGdlbmVyYXRlTWlwbWFwIGVycm9yIik7CiAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgImRyYXdpbmcgdW5pdCBxdWFkIDEiKTsKLSAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0
LCB0ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIpOworICAgIGNvbXBh
cmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJO
RUFSRVNUIiwgdGVzdC5lcnJvcik7CiAgICAgLy8gVGVzdCBhZ2FpbiB3aXRoIGxpbmVhciBmaWx0
ZXJpbmcuCiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01J
Tl9GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
ImRyYXdpbmcgdW5pdCBxdWFkIDIiKTsKLSAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0
ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTElORUFSIik7CisgICAgY29tcGFyZVJl
Y3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YSwgIkxJTkVB
UiIsIHRlc3QuZXJyb3IpOwogCiAgICAgaWYgKCF1c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgIC8v
IEl0J3Mgbm90IGFsbG93ZWQgdG8gcmVkZWZpbmUgdGV4dHVyZXMgZGVmaW5lZCB2aWEgdGV4U3Rv
cmFnZTJELgpAQCAtNzUyLDEyICs4NDUsMTQgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVz
dCwgdXNlVGV4U3RvcmFnZSkgewogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOwogCiAgICAgICAgIGlmICh3
aWR0aCA9PSA0KSB7CisgICAgICAgICAgICAvLyBUaGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBpbXBs
aWVkIGJhc2UgbGV2ZWwgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplLgogICAg
ICAgICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0
LCAxLCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4g
MCIpOwogICAgICAgICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MSwgZm9ybWF0LCAyLCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ2YWxpZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAi
KTsKICAgICAgICAgfQogICAgICAgICBpZiAoaGVpZ2h0ID09IDQpIHsKKyAgICAgICAgICAgIC8v
IFRoZSB3aWR0aC9oZWlnaHQgb2YgdGhlIGltcGxpZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVs
dGlwbGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAxLCBmb3JtYXQsIHdpZHRoLCAxLCAwLCBkYXRhKTsKICAgICAg
ICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52
YWxpZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsKICAgICAgICAgICAgIGdsLmNvbXByZXNz
ZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDIsIDAsIGRhdGEp
OwpAQCAtODM1LDE0ICs5MzAsMTQgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVzdCwgdXNl
VGV4U3RvcmFnZSkgewogICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwogICAgICAgICAgICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJF
U1QpOwogICAgICAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgICAgICAg
ICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3Nl
ZERhdGEsICJORUFSRVNUIik7CisgICAgICAgICAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0
LCB0ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIsIHRlc3QuZXJyb3Ip
OwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3
aW5nIHVuaXQgcXVhZCIpOwogICAgICAgICAgICAgLy8gTmV4dCB0ZXN0IExJTkVBUiBmaWx0ZXJp
bmcuCiAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwogICAgICAg
ICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKICAgICAgICAgICAgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1YWQiKTsKLSAgICAg
ICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJl
c3NlZERhdGEsICJMSU5FQVIiKTsKKyAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWln
aHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJMSU5FQVIiLCB0ZXN0LmVycm9y
KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTg3Myw3ICs5NjgsNyBAQCBmdW5jdGlvbiB0ZXN0
RFhUNV9SR0JBX1BCTygpIHsKICAgICBnbC5iaW5kQnVmZmVyKGdsLlBJWEVMX1VOUEFDS19CVUZG
RVIsIG51bGwpOwogICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7CiAgICAgd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3aW5nIHVuaXQgcXVhZCIpOwotICAg
IGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAi
TkVBUkVTVCIpOworICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCB1bmNv
bXByZXNzZWREYXRhLCAiTkVBUkVTVCIsIERFRkFVTFRfQ09MT1JfRVJST1IpOwogCiAgICAgLy8g
Q2xlYXIgdGhlIHRleHR1cmUgYmVmb3JlIHRoZSBuZXh0IHRlc3QKICAgICBnbC5iaW5kQnVmZmVy
KGdsLlBJWEVMX1VOUEFDS19CVUZGRVIsIG51bGwpOwpAQCAtODkwLDEwICs5ODUsMTAgQEAgZnVu
Y3Rpb24gdGVzdERYVDVfUkdCQV9QQk8oKSB7CiAgICAgZ2wuYmluZEJ1ZmZlcihnbC5QSVhFTF9V
TlBBQ0tfQlVGRkVSLCBudWxsKTsKICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwog
ICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1
YWQiKTsKLSAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgdW5jb21wcmVz
c2VkRGF0YSwgIk5FQVJFU1QiKTsKKyAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFu
bmVscywgdW5jb21wcmVzc2VkRGF0YSwgIk5FQVJFU1QiLCBERUZBVUxUX0NPTE9SX0VSUk9SKTsK
IH0KIAotZnVuY3Rpb24gY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIGV4cGVj
dGVkRGF0YSwgZmlsdGVyaW5nTW9kZSkgeworZnVuY3Rpb24gY29tcGFyZVJlY3Qod2lkdGgsIGhl
aWdodCwgY2hhbm5lbHMsIGV4cGVjdGVkRGF0YSwgZmlsdGVyaW5nTW9kZSwgY29sb3JFcnJvcikg
ewogICAgIHZhciBhY3R1YWwgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwog
ICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYWN0dWFsKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgInJlYWRpbmcgYmFjayBwaXhlbHMiKTsKQEAgLTkxMCwxOSArMTAwNSwxNSBAQCBmdW5jdGlv
biBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZXhwZWN0ZWREYXRhLCBmaWx0
ZXJpbmdNb2RlKSB7CiAgICAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCB3aWR0aDsgKyt4eCkg
ewogICAgICAgICAgICAgdmFyIG9mZnNldCA9ICh5eSAqIHdpZHRoICsgeHgpICogNDsKICAgICAg
ICAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVkRGF0YS5zbGljZShvZmZzZXQsIG9mZnNldCAr
IDQpOworICAgICAgICAgICAgY29uc3Qgd2FzID0gYWN0dWFsLnNsaWNlKG9mZnNldCwgb2Zmc2V0
ICsgNCk7CisKICAgICAgICAgICAgIC8vIENvbXBhcmUgUkdCIHZhbHVlcwogICAgICAgICAgICAg
Zm9yICh2YXIgamogPSAwOyBqaiA8IDM7ICsramopIHsKLSAgICAgICAgICAgICAgICAvLyBBY2Nl
cHRhYmxlIGludGVycG9sYXRpb24gZXJyb3IgZGVwZW5kcyBvbiBlbmRwb2ludHM6Ci0gICAgICAg
ICAgICAgICAgLy8gMS4wIC8gMjU1LjAgKyAwLjAzICogbWF4KGFicyhlbmRwb2ludDAgLSBlbmRw
b2ludDEpLCBhYnMoZW5kcG9pbnQwX3AgLSBlbmRwb2ludDFfcCkpCi0gICAgICAgICAgICAgICAg
Ly8gRm9yIHNpbXBsaWNpdHksIGFzc3VtZSB0aGUgd29yc3QgY2FzZSAoZTAgaXMgMC4wLCBlMSBp
cyAxLjApLiBBZnRlciBjb252ZXJzaW9uIHRvIHVub3JtOCwgaXQgaXMgOS4KLSAgICAgICAgICAg
ICAgICBpZiAoTWF0aC5hYnMoYWN0dWFsW29mZnNldCArIGpqXSAtIGV4cGVjdGVkW2pqXSkgPiA5
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB3YXMgPSBhY3R1YWxbb2Zmc2V0ICsgMF0udG9T
dHJpbmcoKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDE7IGogPCAzOyArK2op
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhcyArPSAiLCIgKyBhY3R1YWxbb2Zmc2V0ICsg
al07Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMo
d2FzW2pqXSAtIGV4cGVjdGVkW2pqXSkgPiBjb2xvckVycm9yKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1JHQiBh
dCAoJyArIHh4ICsgJywgJyArIHl5ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnKSBleHBlY3RlZDogJyArIGV4cGVjdGVkICsgJyDCsSA5IHdhcyAnICsgd2FzKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgUkdCIGF0ICgke3h4fSwgJHt5eX0pIGV4
cGVjdGVkOiAke2V4cGVjdGVkfWAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAg
Ky8tICR7Y29sb3JFcnJvcn0sIHdhcyAke3dhc31gKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC05MzcsMTUgKzEwMjgs
MTUgQEAgZnVuY3Rpb24gY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIGV4cGVj
dGVkRGF0YSwgZmlsdGVyaW5nTW9kZSkgewogICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBS
R0IgdmFsdWVzLiBOb3RpY2UsIHRoYXQgdGhlIGNvbmRpdGlvbiBoZXJlCiAgICAgICAgICAgICAg
ICAgICAgIC8vIGlzIG1vcmUgcGVybWlzc2l2ZSB0aGFuIG5lZWRlZCBzaW5jZSB3ZSBkb24ndCBo
YXZlCiAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXByZXNzZWQgZGF0YSBhdCB0aGlzIHBvaW50
LgotICAgICAgICAgICAgICAgICAgICBpZiAoYWN0dWFsW29mZnNldF0gPT0gMCAmJgotICAgICAg
ICAgICAgICAgICAgICAgICAgYWN0dWFsW29mZnNldCArIDFdID09IDAgJiYKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFjdHVhbFtvZmZzZXQgKyAyXSA9PSAwICYmCi0gICAgICAgICAgICAgICAg
ICAgICAgICBhY3R1YWxbb2Zmc2V0ICsgM10gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAod2FzWzBdID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhc1sxXSA9PSAwICYm
CisgICAgICAgICAgICAgICAgICAgICAgICB3YXNbMl0gPT0gMCAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgd2FzWzNdID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1
ZygiPGI+RFhUMSBSR0IgaXMgbWFwcGVkIHRvIERYVDEgUkdCQTwvYj4iKTsKICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdBbHBoYSBhdCAoJyArIHh4ICsg
JywgJyArIHl5ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnKSBleHBlY3RlZDogJyArIGV4cGVjdGVkWzNdICsgJyB3YXMgJyArIGFjdHVhbFtvZmZzZXQg
KyAzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJykg
ZXhwZWN0ZWQ6ICcgKyBleHBlY3RlZFszXSArICcgd2FzICcgKyB3YXMpOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTk1
MywxMSArMTA0NCwxMCBAQCBmdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFu
bmVscywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJpbmdNb2RlKSB7CiAgICAgICAgICAgICAgICAgLy8g
QWNjZXB0YWJsZSBpbnRlcnBvbGF0aW9uIGVycm9yIGRlcGVuZHMgb24gZW5kcG9pbnRzOgogICAg
ICAgICAgICAgICAgIC8vIDEuMCAvIDY1NTM1LjAgKyAwLjAzICogbWF4KGFicyhlbmRwb2ludDAg
LSBlbmRwb2ludDEpLCBhYnMoZW5kcG9pbnQwX3AgLSBlbmRwb2ludDFfcCkpCiAgICAgICAgICAg
ICAgICAgLy8gRm9yIHNpbXBsaWNpdHksIGFzc3VtZSB0aGUgd29yc3QgY2FzZSAoZTAgaXMgMC4w
LCBlMSBpcyAxLjApLiBBZnRlciBjb252ZXJzaW9uIHRvIHVub3JtOCwgaXQgaXMgOC4KLSAgICAg
ICAgICAgICAgICBpZiAoTWF0aC5hYnMoYWN0dWFsW29mZnNldCArIDNdIC0gZXhwZWN0ZWRbM10p
ID4gOCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgd2FzID0gYWN0dWFsW29mZnNldCArIDNd
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHdhc1szXSAtIGV4cGVj
dGVkWzNdKSA+IDgpIHsKICAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnQWxwaGEgYXQgKCcgKyB4eCArICcsICcgKyB5eSAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKSBleHBlY3RlZDog
JyArIGV4cGVjdGVkICsgJyDCsSA4IHdhcyAnICsgd2FzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWQgKyAnICsvLSA4
IHdhcyAnICsgd2FzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXMzdGMt
c3JnYi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdi
Lmh0bWwKaW5kZXggYTFhMjFhYjE0YjdmYjg0NDdiOWE0YWUyYzY4ZmZkN2NiNGY2NjBlNS4uOTFm
YzNmMGIxYzZhYTFmYTEyMjIyZjUzYzFjZDZhNTJkMTI5MGYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwKQEAgLTIyNiw2ICsy
MjYsNzIgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBpZiAoY29udGV4dFZl
cnNpb24gPj0gMikgewogICAgICAgICB0ZXN0RFhUNV9TUkdCX0FMUEhBX1BCTygpOwogICAgIH0K
KworICAgIC8vIFRlc3QgVGV4SW1hZ2UgdmFsaWRhdGlvbiBvbiBsZXZlbCBkaW1lbnNpb25zIGNv
bWJpbmF0aW9ucy4KKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIldoZW4gbGV2ZWwgZXF1YWxz
IDAsIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuIik7CisgICAgZGVi
dWcoIldoZW4gbGV2ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNuJ3Qg
YXBwbHkuIik7CisgICAgY3R1LnRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0LCB2
YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAorICAg
ICAgWworICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiAzLCBleHBlY3RhdGlv
bjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiA0eDMiIH0sCisgICAgICAgIHsg
bGV2ZWw6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09Q
RVJBVElPTiwgbWVzc2FnZTogIjA6IDN4NCIgfSwKKyAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6
IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdl
OiAiMDogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0LCBl
eHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiA0eDQiIH0sCisgICAgICAgIHsg
bGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwg
bWVzc2FnZTogIjE6IDJ4MiIgfSwKKyAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdo
dDogMSwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogMXgxIiB9LAorICAg
IF0pOworCisgICAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRG
b3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgMTYsIDE2LAor
ICAgICAgWworICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWln
aHQ6IDMsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNz
YWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNl
dDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3Rh
dGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBpcyBub3QgYSBtdWx0
aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0
LCBoZWlnaHQ6IDQsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9O
LCBtZXNzYWdlOiAieG9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7
IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAg
ZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAieW9mZnNldCBpcyBu
b3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEyLCB5b2Zmc2V0OiAx
Miwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJS
T1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICBdKTsKKworICAgIGlmIChjb250ZXh0VmVy
c2lvbiA+PSAyKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3Rpbmcg
TlBPVCB0ZXh0dXJlcyIpOworICAgICAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25z
KGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVu
c2lvbnMsCisgICAgICAgICAgWworICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEyLCBo
ZWlnaHQ6IDEyLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAxMngxMiBp
cyB2YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgNiwgaGVpZ2h0OiAg
NiwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMTogNng2LCBpcyB2YWxpZCIg
fSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDIsIHdpZHRoOiAgMywgaGVpZ2h0OiAgMywgZXhwZWN0
YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogM3gzLCBpcyB2YWxpZCIgfSwKKyAgICAg
ICAgICAgIHsgbGV2ZWw6IDMsIHdpZHRoOiAgMSwgaGVpZ2h0OiAgMSwgZXhwZWN0YXRpb246IGds
Lk5PX0VSUk9SLCBtZXNzYWdlOiAiMzogMXgxLCBpcyB2YWxpZCIgfSwKKyAgICAgICAgXSk7CisK
KyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiVGVzdGluZyBwYXJ0aWFsIHVwZGF0
ZXMiKTsKKyAgICAgICAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFs
aWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgMTIsIDEy
LAorICAgICAgICBbCisgICAgICAgICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDog
NCwgaGVpZ2h0OiAzLAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFU
SU9OLCBtZXNzYWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAg
ICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMywgaGVpZ2h0OiA0LAorICAgICAg
ICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAid2lkdGgg
aXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDEsIHlvZmZz
ZXQ6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wu
SU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ4b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9m
IDQiIH0sCisgICAgICAgICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAxLCB3aWR0aDogNCwgaGVp
Z2h0OiA0LAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBt
ZXNzYWdlOiAieW9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsg
eG9mZnNldDogOCwgeW9mZnNldDogOCwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICAg
IGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgICAg
ICBdKTsKKworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIGltbXV0
YWJsZSBOUE9UIHRleHR1cmVzIik7CisgICAgICAgIGN0dS50ZXN0VGV4U3RvcmFnZUxldmVsRGlt
ZW5zaW9ucyhnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0Qmxv
Y2tEaW1lbnNpb25zLAorICAgICAgICAgIFsKKyAgICAgICAgICAgIHsgd2lkdGg6IDEyLCBoZWln
aHQ6IDEyLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAxMngxMiBpcyB2
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgd2lkdGg6ICA2LCBoZWlnaHQ6ICA2LCBleHBlY3RhdGlv
bjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiA2eDYsIGlzIHZhbGlkIiB9LAorICAgICAgICAg
ICAgeyB3aWR0aDogIDMsIGhlaWdodDogIDMsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVz
c2FnZTogIjI6IDN4MywgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IHdpZHRoOiAgMSwgaGVp
Z2h0OiAgMSwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMzogMXgxLCBpcyB2
YWxpZCIgfSwKKyAgICAgICAgXSk7CisgICAgfQogfQogCiBmdW5jdGlvbiB0ZXN0RFhUMV9TUkdC
KCkgewpAQCAtNjE3LDEyICs2ODMsMTQgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVzdCwg
dXNlVGV4U3RvcmFnZSkgewogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOwogCiAgICAgICAgIGlmICh3aWR0
aCA9PSA0KSB7CisgICAgICAgICAgICAvLyBUaGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBpbXBsaWVk
IGJhc2UgbGV2ZWwgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplLgogICAgICAg
ICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCAx
LCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIp
OwogICAgICAgICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwg
Zm9ybWF0LCAyLCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ2YWxpZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaGVpZ2h0ID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRo
ZSB3aWR0aC9oZWlnaHQgb2YgdGhlIGltcGxpZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlw
bGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAxLCBmb3JtYXQsIHdpZHRoLCAxLCAwLCBkYXRhKTsKICAgICAgICAg
ICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxp
ZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsKICAgICAgICAgICAgIGdsLmNvbXByZXNzZWRU
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDIsIDAsIGRhdGEpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3Lmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L3dlYmdsLW11bHRpLWRyYXcuaHRtbAppbmRleCBhZGVhYjMxMmU1ZDAxNzgzOWEwNDg3NzIzNzc2
YWYyNjRhNDBkZmZhLi40MjZlNDYzMDdlNjkwMDc3Y2I2ZGI4ZTMyMGY4MzE4ZDU1MGM5MTgxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXcuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL3dlYmdsLW11bHRpLWRyYXcuaHRtbApAQCAtMzcxLDcgKzM3MSw3IEBAIGZ1bmN0aW9uIGRv
VGVzdChleHQsIGluc3RhbmNlZCkgewogICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1NSwg
MCwgMjU1XSwgImdsX0RyYXdJRCBpcyAwIGZvciBub24tTXVsdGkqIGRyYXcgY2FsbHMiLCAwKTsK
ICAgfQogCi0gIGZ1bmN0aW9uIHJ1blBpeGVsVGVzdHMoYnVmZmVyVXNhZ2UpIHsKKyAgZnVuY3Rp
b24gcnVuUGl4ZWxUZXN0cyhidWZmZXJVc2FnZSwgdXNlU2hhcmVkQXJyYXlCdWZmZXIpIHsKICAg
ICAvLyBBbiBhcnJheSBvZiBxdWFkcyBpcyB0aWxlZCBhY3Jvc3MgdGhlIHNjcmVlbi4KICAgICAv
LyBnbF9EcmF3SUQgaXMgY2hlY2tlZCBieSB1c2luZyBpdCB0byBzZWxlY3QgdGhlIGNvbG9yIG9m
IHRoZSBkcmF3LgogICAgIC8vIEluc3RhbmNlZCBlbnRyeXBvaW50cyBhcmUgdGVzdGVkIGhlcmUg
c2NhbGluZyBhbmQgdGhlbiBpbnN0YW5jaW5nIHRoZQpAQCAtNTA2LDEwICs1MDYsMTggQEAgZnVu
Y3Rpb24gZG9UZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0
cyhnbCwgcmVjdHMpOwogICAgIH0KIAotICAgIGNvbnN0IGZpcnN0cyA9IG5ldyBVaW50MzJBcnJh
eSh0cmlfY291bnQpOwotICAgIGNvbnN0IGNvdW50cyA9IG5ldyBVaW50MzJBcnJheSh0cmlfY291
bnQpOwotICAgIGNvbnN0IG9mZnNldHMgPSBuZXcgVWludDMyQXJyYXkodHJpX2NvdW50KTsKLSAg
ICBjb25zdCBpbnN0YW5jZXMgPSBuZXcgVWludDMyQXJyYXkodHJpX2NvdW50KTsKKyAgICBmdW5j
dGlvbiBuZXdJbnRBcnJheShjb3VudCkgeworICAgICAgaWYgKCF1c2VTaGFyZWRBcnJheUJ1ZmZl
cikgeworICAgICAgICByZXR1cm4gbmV3IEludDMyQXJyYXkoY291bnQpOworICAgICAgfQorICAg
ICAgbGV0IHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihjb3VudCAqIEludDMyQXJyYXkuQllU
RVNfUEVSX0VMRU1FTlQpOworICAgICAgcmV0dXJuIG5ldyBJbnQzMkFycmF5KHNhYik7CisgICAg
fQorCisgICAgY29uc3QgZmlyc3RzID0gbmV3SW50QXJyYXkodHJpX2NvdW50KTsKKyAgICBjb25z
dCBjb3VudHMgPSBuZXdJbnRBcnJheSh0cmlfY291bnQpOworICAgIGNvbnN0IG9mZnNldHMgPSBu
ZXdJbnRBcnJheSh0cmlfY291bnQpOworICAgIGNvbnN0IGluc3RhbmNlcyA9IG5ld0ludEFycmF5
KHRyaV9jb3VudCk7CiAKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpcnN0cy5sZW5ndGg7ICsr
aSkgZmlyc3RzW2ldID0gaSAqIDM7CiAgICAgY291bnRzLmZpbGwoMyk7CkBAIC01MjEsNyArNTI5
LDcgQEAgZnVuY3Rpb24gZG9UZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAgICAgY29uc3Qgb2Zmc2V0
c09mZnNldCA9IGNvdW50c09mZnNldCArIGNvdW50cy5sZW5ndGg7CiAgICAgY29uc3QgaW5zdGFu
Y2VzT2Zmc2V0ID0gb2Zmc2V0c09mZnNldCArIGluc3RhbmNlcy5sZW5ndGg7CiAKLSAgICBjb25z
dCBidWZmZXIgPSBuZXcgVWludDMyQXJyYXkoZmlyc3RzT2Zmc2V0ICsgZmlyc3RzLmxlbmd0aCAr
IGNvdW50cy5sZW5ndGggKyBvZmZzZXRzLmxlbmd0aCArIGluc3RhbmNlcy5sZW5ndGgpOworICAg
IGNvbnN0IGJ1ZmZlciA9IG5ld0ludEFycmF5KGZpcnN0c09mZnNldCArIGZpcnN0cy5sZW5ndGgg
KyBjb3VudHMubGVuZ3RoICsgb2Zmc2V0cy5sZW5ndGggKyBpbnN0YW5jZXMubGVuZ3RoKTsKICAg
ICBidWZmZXIuc2V0KGZpcnN0cywgZmlyc3RzT2Zmc2V0KTsKICAgICBidWZmZXIuc2V0KGNvdW50
cywgY291bnRzT2Zmc2V0KTsKICAgICBidWZmZXIuc2V0KG9mZnNldHMsIG9mZnNldHNPZmZzZXQp
OwpAQCAtNjY0LDYgKzY3Miw4IEBAIGZ1bmN0aW9uIGRvVGVzdChleHQsIGluc3RhbmNlZCkgewog
ICAgICAgICBjb25maWcuaW5zdGFuY2VkID8gJyBpbnN0YW5jZWQnIDogJycKICAgICAgICkgKyAo
CiAgICAgICAgIGNvbmZpZy5kcmF3SUQgPyAnIHdpdGggZ2xfRHJhd0lEJyA6ICcnCisgICAgICAp
ICsgKAorICAgICAgICB1c2VTaGFyZWRBcnJheUJ1ZmZlciA/ICcgYW5kIFNoYXJlZEFycmF5QnVm
ZmVyJyA6ICcnCiAgICAgICApKTsKIAogICAgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5
KDApOwpAQCAtODI3LDcgKzgzNywxMiBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0LCBpbnN0YW5jZWQp
IHsKICAgICBkZWJ1ZygiVGVzdGluZyB3aXRoIEJ1ZmZlclVzYWdlID0gIiArIGJ1ZmZlclVzYWdl
KTsKICAgICBydW5WYWxpZGF0aW9uVGVzdHMoYnVmZmVyVXNhZ2UpOwogICAgIHJ1blNoYWRlclRl
c3RzKGJ1ZmZlclVzYWdlKTsKLSAgICBydW5QaXhlbFRlc3RzKGJ1ZmZlclVzYWdlKTsKKyAgICBy
dW5QaXhlbFRlc3RzKGJ1ZmZlclVzYWdlLCBmYWxzZSk7CisgIH0KKworICAvLyBSdW4gYSBzdWJz
ZXQgb2YgdGhlIHBpeGVsIHRlc3RzIHdpdGggU2hhcmVkQXJyYXlCdWZmZXIgaWYgc3VwcG9ydGVk
LgorICBpZiAod2luZG93LlNoYXJlZEFycmF5QnVmZmVyKSB7CisgICAgcnVuUGl4ZWxUZXN0cyhi
dWZmZXJVc2FnZVNldFswXSwgdHJ1ZSk7CiAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9u
cy93ZWJnbC13ZWJjb2RlY3MtdmlkZW8tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtd2Vi
Y29kZWNzLXZpZGVvLWZyYW1lLmh0bWwKaW5kZXggMWI1YzE1ZDZkMjE5ZWVmMDBkZDQzMmM1MjJi
MmJjN2QzOTFiNGZiMi4uZjBlNDEzZTJmNmY0NzRjY2I2YmVhMmUwM2I4ODUxMzBlMGRmZjU3YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC13ZWJjb2RlY3MtdmlkZW8tZnJhbWUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9leHRlbnNpb25zL3dlYmdsLXdlYmNvZGVjcy12aWRlby1mcmFtZS5odG1sCkBAIC0xLDIx
MSArMSwyMTEgQEAKLTwhLS0KLUNvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4K
LQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPGhlYWQ+Ci0gIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KLSAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiIC8+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Rlc3RzL291dC1vZi1ib3VuZHMt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9leHRlbnNpb25z
L3Byb3Bvc2Fscy9XRUJHTF93ZWJjb2RlY3NfdmlkZW9fZnJhbWUvd2ViZ2xfd2ViY29kZWNzX3Zp
ZGVvX2ZyYW1lLmpzIj48L3NjcmlwdD4KLSAgPHN0eWxlPgotICAgIGNhbnZhcyB7Ci0gICAgICBw
YWRkaW5nOiAxMHB4OwotICAgICAgYmFja2dyb3VuZDogZ29sZDsKLSAgICB9Ci0KLSAgICBidXR0
b24gewotICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTU1NTsKLSAgICAgIGJvcmRlcjogbm9u
ZTsKLSAgICAgIGNvbG9yOiB3aGl0ZTsKLSAgICAgIHBhZGRpbmc6IDE1cHggMzJweDsKLSAgICAg
IHdpZHRoOiAxNTBweDsKLSAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICAgIGRpc3BsYXk6
IGJsb2NrOwotICAgICAgZm9udC1zaXplOiAxNnB4OwotICAgIH0KLSAgPC9zdHlsZT4KLTwvaGVh
ZD4KLQotPGJvZHk+Ci0gIDxjYW52YXMgaWQ9InNyYyIgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAi
PjwvY2FudmFzPgotICA8Y2FudmFzIGlkPSJkc3QiIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIj48
L2NhbnZhcz4KLSAgPHAgaWQ9ImluZm8iPjwvcD4KLSAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgotICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLSAgPHNjcmlwdD4KLSAgICAidXNlIHN0
cmljdCI7Ci0gICAgZGVzY3JpcHRpb24oIlRlc3Qgb2YgaW1wb3J0aW5nIFZpZGVvZnJhbWUgZnJv
bSBXZWJjb2RlY3MgdG8gV2ViZ2wiKTsKLQotICAgIGNvbnN0IGtJc1J1bm5pbmdUZXN0ID0gdHJ1
ZTsKLSAgICBjb25zdCBrTWF4RnJhbWUgPSAxMDsKLSAgICBjb25zdCBrVGVzdFBpeGVsID0gWzI1
NSwgMTI4LCAwLCAyNTVdOwotICAgIC8vIFN1bSBvZiBwaXhlbCBkaWZmZXJlbmNlIG9mIFIvRy9C
IGNoYW5uZWwuIFVzZSB0byBkZWNpZGUgd2hldGhlciBhCi0gICAgLy8gcGl4ZWwgaXMgbWF0Y2hl
ZCB3aXRoIGFub3RoZXIuCi0gICAgY29uc3QgY29kZWNfc3RyaW5nID0gInZwMDkuMDAuNTEuMDgu
MDAiOwotCi0gICAgbGV0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIGxldCBjbnYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3JjIik7Ci0gICAgbGV0IHNyY193aWR0aCA9IGNudi53aWR0
aDsKLSAgICBsZXQgc3JjX2hlaWdodCA9IGNudi5oZWlnaHQ7Ci0gICAgbGV0IHNyY19jb2xvciA9
ICJyZ2JhKCIgKyBrVGVzdFBpeGVsWzBdLnRvU3RyaW5nKCkgKyAiLCIgKyBrVGVzdFBpeGVsWzFd
LnRvU3RyaW5nKCkgKyAiLCIKLSAgICAgICsga1Rlc3RQaXhlbFsyXS50b1N0cmluZygpICsgIiwi
ICsga1Rlc3RQaXhlbFszXS50b1N0cmluZygpICsgIikiOwotICAgIGxldCBmcmFtZV9jb3VudGVy
ID0gMDsKLSAgICBsZXQgcGl4ZWxDb21wYXJlVG9sZXJhbmNlID0gNTsKLQotICAgIGZ1bmN0aW9u
IGdldFF1ZXJ5VmFyaWFibGUodmFyaWFibGUpIHsKLSAgICAgIHZhciBxdWVyeSA9IHdpbmRvdy5s
b2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOwotICAgICAgdmFyIHZhcnMgPSBxdWVyeS5zcGxp
dCgiJiIpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YXJzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgIHZhciBwYWlyID0gdmFyc1tpXS5zcGxpdCgiPSIpOwotICAgICAgICBpZiAocGFpclsw
XSA9PSB2YXJpYWJsZSkgeyByZXR1cm4gcGFpclsxXTsgfQotICAgICAgfQotICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIGxldCB0aCA9IHBhcnNlSW50KGdldFF1ZXJ5VmFyaWFibGUo
J3RocmVzaG9sZCcpKTsKLSAgICBpZiAoIWlzTmFOKHRoKSkKLSAgICAgIHBpeGVsQ29tcGFyZVRv
bGVyYW5jZSA9IHRoOwotCi0gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnREcmF3aW5nKCkgewotICAg
ICAgbGV0IGNudiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcmMiKTsKLSAgICAgIHZhciBj
dHggPSBjbnYuZ2V0Q29udGV4dCgnMmQnLCB7IGFscGhhOiBmYWxzZSB9KTsKLQotICAgICAgY3R4
LmZpbGxTdHlsZSA9IHNyY19jb2xvcjsKLSAgICAgIGxldCBkcmF3T25lRnJhbWUgPSBmdW5jdGlv
biAodGltZSkgewotICAgICAgICBjdHguZmlsbFN0eWxlID0gc3JjX2NvbG9yOwotICAgICAgICBj
dHguZmlsbFJlY3QoMCwgMCwgc3JjX3dpZHRoLCBzcmNfaGVpZ2h0KTsKLSAgICAgICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3T25lRnJhbWUpOwotICAgICAgfQotICAgICAgd2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3T25lRnJhbWUpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGNhcHR1cmVBbmRFbmNvZGUocHJvY2Vzc0NodW5rKSB7Ci0gICAgICBsZXQgY252ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOwotICAgICAgbGV0IGZwcyA9IDYwOwotICAg
ICAgbGV0IHBlbmRpbmdfb3V0cHV0cyA9IDA7Ci0gICAgICBsZXQgc3RyZWFtID0gY252LmNhcHR1
cmVTdHJlYW0oZnBzKTsKLSAgICAgIGxldCBwcm9jZXNzb3IgPSBuZXcgTWVkaWFTdHJlYW1UcmFj
a1Byb2Nlc3NvcihzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0KLSAgICAgIGNvbnN0IGlu
aXQgPSB7Ci0gICAgICAgIG91dHB1dDogKGNodW5rKSA9PiB7Ci0gICAgICAgICAgdGVzdFBhc3Nl
ZCgiRW5jb2RlIGZyYW1lIHN1Y2Nlc3NmdWxseS4iKTsKLSAgICAgICAgICBwZW5kaW5nX291dHB1
dHMtLTsKLSAgICAgICAgICBwcm9jZXNzQ2h1bmsoY2h1bmspOwotICAgICAgICB9LAotICAgICAg
ICBlcnJvcjogKGUpID0+IHsKLSAgICAgICAgICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gZW5jb2Rl
IGZyYW1lLiIpOwotICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICB2dHIuc3RvcCgp
OwotICAgICAgICB9Ci0gICAgICB9OwotCi0gICAgICBjb25zdCBjb25maWcgPSB7Ci0gICAgICAg
IGNvZGVjOiBjb2RlY19zdHJpbmcsCi0gICAgICAgIHdpZHRoOiBjbnYud2lkdGgsCi0gICAgICAg
IGhlaWdodDogY252LmhlaWdodCwKLSAgICAgICAgYml0cmF0ZTogMTBlNiwKLSAgICAgICAgZnJh
bWVyYXRlOiBmcHMsCi0gICAgICB9OwotCi0gICAgICBsZXQgZW5jb2RlciA9IG5ldyBWaWRlb0Vu
Y29kZXIoaW5pdCk7Ci0gICAgICBlbmNvZGVyLmNvbmZpZ3VyZShjb25maWcpOwotCi0gICAgICBj
b25zdCBmcmFtZV9yZWFkZXIgPSBwcm9jZXNzb3IucmVhZGFibGUuZ2V0UmVhZGVyKCk7Ci0gICAg
ICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4oZnVuY3Rpb24gcHJvY2Vzc0ZyYW1lKHtkb25lLCB2
YWx1ZX0pIHsKLSAgICAgICAgaWYgKGRvbmUpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGlmIChwZW5kaW5nX291dHB1dHMgPiAzMCkgewotICAgICAgICAgIGNvbnNvbGUubG9nKCJkcm9w
IHRoaXMgZnJhbWUiKTsKLSAgICAgICAgICAvLyBUb28gbWFueSBmcmFtZXMgaW4gZmxpZ2h0LCBl
bmNvZGVyIGlzIG92ZXJ3aGVsbWVkCi0gICAgICAgICAgLy8gbGV0J3MgZHJvcCB0aGlzIGZyYW1l
LgotICAgICAgICAgIHZhbHVlLmNsb3NlKCk7Ci0gICAgICAgICAgZnJhbWVfcmVhZGVyLnJlYWQo
KS50aGVuKHByb2Nlc3NGcmFtZSk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYoZnJhbWVfY291bnRlciA9PSBrTWF4RnJhbWUpIHsKLSAgICAgICAgICBmcmFtZV9y
ZWFkZXIucmVsZWFzZUxvY2soKTsKLSAgICAgICAgICBwcm9jZXNzb3IucmVhZGFibGUuY2FuY2Vs
KCk7Ci0gICAgICAgICAgdmFsdWUuY2xvc2UoKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBmcmFtZV9jb3VudGVyKys7Ci0gICAgICAgIHBlbmRpbmdfb3V0cHV0cysr
OwotICAgICAgICBjb25zdCBpbnNlcnRfa2V5ZnJhbWUgPSAoZnJhbWVfY291bnRlciAlIDE1MCkg
PT0gMDsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUodmFsdWUsIHsga2V5RnJhbWU6IGluc2VydF9r
ZXlmcmFtZSB9KTsKLQotICAgICAgICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0Zy
YW1lKTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0YXJ0RGVjb2RpbmdBbmRS
ZW5kZXJpbmcoY252LCBoYW5kbGVGcmFtZSkgewotICAgICAgY29uc3QgaW5pdCA9IHsKLSAgICAg
ICAgb3V0cHV0OiBoYW5kbGVGcmFtZSwKLSAgICAgICAgZXJyb3I6IChlKSA9PiB7Ci0gICAgICAg
ICAgdGVzdEZhaWxlZCgiRmFpbGVkIHRvIGRlY29kZSBmcmFtZS4iKTsKLSAgICAgICAgICBmaW5p
c2hUZXN0KCk7Ci0gICAgICAgIH0KLSAgICAgIH07Ci0KLSAgICAgIGNvbnN0IGNvbmZpZyA9IHsK
LSAgICAgICAgY29kZWM6IGNvZGVjX3N0cmluZywKLSAgICAgICAgY29kZWRXaWR0aDogY252Lndp
ZHRoLAotICAgICAgICBjb2RlZEhlaWdodDogY252LmhlaWdodCwKLSAgICAgICAgYWNjZWxlcmF0
aW9uOiAiZGVueSIsCi0KLSAgICAgIH07Ci0KLSAgICAgIGxldCBkZWNvZGVyID0gbmV3IFZpZGVv
RGVjb2Rlcihpbml0KTsKLSAgICAgIGRlY29kZXIuY29uZmlndXJlKGNvbmZpZyk7Ci0gICAgICBy
ZXR1cm4gZGVjb2RlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpc0ZyYW1lUGl4ZWxNYXRjaGVk
KGdsLCB0aF9wZXJfcGl4ZWwgPSBwaXhlbENvbXBhcmVUb2xlcmFuY2UpIHsKLSAgICAgIFdlYkdM
VGVzdFV0aWxzLmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgc3JjX3dpZHRoLCBzcmNfd2lkdGgs
IGtUZXN0UGl4ZWwsICJzaG91bGQgYmUgb3JhbmdlIiwgcGl4ZWxDb21wYXJlVG9sZXJhbmNlKQot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIG1haW4oKSB7Ci0gICAgICBpZiAoISgiVmlkZW9FbmNvZGVy
IiBpbiB3aW5kb3cpKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIldlYkNvZGVjcyBBUEkgaXMgbm90
IHN1cHBvcnRlZC4iKTsKLSAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgICB9Ci0gICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRzdCIpOwot
Ci0gICAgICBsZXQgd2ViZ2xfd2ViY29kZWNzX3Rlc3RfY29udGV4dCA9IHsKLSAgICAgICAgbWF4
RnJhbWVUZXN0ZWQ6IGtNYXhGcmFtZSwKLSAgICAgICAgZGlzcGxheWVkX2ZyYW1lOiAwLAotICAg
ICAgICBpc0ZyYW1lUGl4ZWxNYXRjaGVkOiBpc0ZyYW1lUGl4ZWxNYXRjaGVkLAotICAgICAgICB0
ZXN0RmFpbGVkOiB0ZXN0RmFpbGVkLAotICAgICAgICB0ZXN0UGFzc2VkOiB0ZXN0UGFzc2VkLAot
ICAgICAgICBmaW5pc2hUZXN0OiBmaW5pc2hUZXN0Ci0gICAgICB9OwotICAgICAgc2V0VGVzdE1v
ZGUod2ViZ2xfd2ViY29kZWNzX3Rlc3RfY29udGV4dCk7Ci0gICAgICBsZXQgaGFuZGxlRnJhbWUg
PSByZXF1ZXN0V2ViR0xWaWRlb0ZyYW1lSGFuZGxlcihjbnYpOwotICAgICAgaWYgKGhhbmRsZUZy
YW1lID09PSBudWxsKSB7Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgICAgfQotCi0gICAgICBzdGFydERyYXdpbmcoKTsKLSAgICAgIGxldCBkZWNvZGVyID0gc3Rh
cnREZWNvZGluZ0FuZFJlbmRlcmluZyhjbnYsIGhhbmRsZUZyYW1lKTsKLSAgICAgIGNhcHR1cmVB
bmRFbmNvZGUoKGNodW5rKSA9PiB7Ci0gICAgICAgIGRlY29kZXIuZGVjb2RlKGNodW5rKTsKLSAg
ICAgIH0pOwotICAgIH0KLQotICAgIGRvY3VtZW50LmJvZHkub25sb2FkID0gbWFpbjsKLSAgPC9z
Y3JpcHQ+Ci0KLTwvYm9keT4KLQorPCEtLQ0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuDQorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUNCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4NCistLT4NCisNCis8IURPQ1RZUEUgaHRtbD4NCis8aHRtbD4NCisNCis8aGVhZD4NCisg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPg0KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCisgIDxzY3JpcHQgc3JjPSIuLi8uLi9q
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4NCisgIDxzY3JpcHQgc3JjPSIuLi8uLi9q
cy90ZXN0cy9vdXQtb2YtYm91bmRzLXRlc3QuanMiPjwvc2NyaXB0Pg0KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL2V4dGVuc2lvbnMvcHJvcG9zYWxzL1dFQkdMX3dlYmNvZGVjc192aWRlb19m
cmFtZS93ZWJnbF93ZWJjb2RlY3NfdmlkZW9fZnJhbWUuanMiPjwvc2NyaXB0Pg0KKyAgPHN0eWxl
Pg0KKyAgICBjYW52YXMgew0KKyAgICAgIHBhZGRpbmc6IDEwcHg7DQorICAgICAgYmFja2dyb3Vu
ZDogZ29sZDsNCisgICAgfQ0KKw0KKyAgICBidXR0b24gew0KKyAgICAgIGJhY2tncm91bmQtY29s
b3I6ICM1NTU1NTU7DQorICAgICAgYm9yZGVyOiBub25lOw0KKyAgICAgIGNvbG9yOiB3aGl0ZTsN
CisgICAgICBwYWRkaW5nOiAxNXB4IDMycHg7DQorICAgICAgd2lkdGg6IDE1MHB4Ow0KKyAgICAg
IHRleHQtYWxpZ246IGNlbnRlcjsNCisgICAgICBkaXNwbGF5OiBibG9jazsNCisgICAgICBmb250
LXNpemU6IDE2cHg7DQorICAgIH0NCisgIDwvc3R5bGU+DQorPC9oZWFkPg0KKw0KKzxib2R5Pg0K
KyAgPGNhbnZhcyBpZD0ic3JjIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCI+PC9jYW52YXM+DQor
ICA8Y2FudmFzIGlkPSJkc3QiIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIj48L2NhbnZhcz4NCisg
IDxwIGlkPSJpbmZvIj48L3A+DQorICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+DQorICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgIDxzY3JpcHQ+DQorICAgICJ1c2Ugc3RyaWN0IjsN
CisgICAgZGVzY3JpcHRpb24oIlRlc3Qgb2YgaW1wb3J0aW5nIFZpZGVvZnJhbWUgZnJvbSBXZWJj
b2RlY3MgdG8gV2ViZ2wiKTsNCisNCisgICAgY29uc3Qga0lzUnVubmluZ1Rlc3QgPSB0cnVlOw0K
KyAgICBjb25zdCBrTWF4RnJhbWUgPSAxMDsNCisgICAgY29uc3Qga1Rlc3RQaXhlbCA9IFsyNTUs
IDEyOCwgMCwgMjU1XTsNCisgICAgLy8gU3VtIG9mIHBpeGVsIGRpZmZlcmVuY2Ugb2YgUi9HL0Ig
Y2hhbm5lbC4gVXNlIHRvIGRlY2lkZSB3aGV0aGVyIGENCisgICAgLy8gcGl4ZWwgaXMgbWF0Y2hl
ZCB3aXRoIGFub3RoZXIuDQorICAgIGNvbnN0IGNvZGVjX3N0cmluZyA9ICJ2cDA5LjAwLjUxLjA4
LjAwIjsNCisNCisgICAgbGV0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOw0KKyAgICBsZXQgY252ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOw0KKyAgICBsZXQgc3JjX3dpZHRoID0gY252
LndpZHRoOw0KKyAgICBsZXQgc3JjX2hlaWdodCA9IGNudi5oZWlnaHQ7DQorICAgIGxldCBzcmNf
Y29sb3IgPSAicmdiYSgiICsga1Rlc3RQaXhlbFswXS50b1N0cmluZygpICsgIiwiICsga1Rlc3RQ
aXhlbFsxXS50b1N0cmluZygpICsgIiwiDQorICAgICAgKyBrVGVzdFBpeGVsWzJdLnRvU3RyaW5n
KCkgKyAiLCIgKyBrVGVzdFBpeGVsWzNdLnRvU3RyaW5nKCkgKyAiKSI7DQorICAgIGxldCBmcmFt
ZV9jb3VudGVyID0gMDsNCisgICAgbGV0IHBpeGVsQ29tcGFyZVRvbGVyYW5jZSA9IDU7DQorDQor
ICAgIGZ1bmN0aW9uIGdldFF1ZXJ5VmFyaWFibGUodmFyaWFibGUpIHsNCisgICAgICB2YXIgcXVl
cnkgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTsNCisgICAgICB2YXIgdmFy
cyA9IHF1ZXJ5LnNwbGl0KCImIik7DQorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YXJzLmxl
bmd0aDsgaSsrKSB7DQorICAgICAgICB2YXIgcGFpciA9IHZhcnNbaV0uc3BsaXQoIj0iKTsNCisg
ICAgICAgIGlmIChwYWlyWzBdID09IHZhcmlhYmxlKSB7IHJldHVybiBwYWlyWzFdOyB9DQorICAg
ICAgfQ0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKw0KKyAgICBsZXQgdGggPSBwYXJz
ZUludChnZXRRdWVyeVZhcmlhYmxlKCd0aHJlc2hvbGQnKSk7DQorICAgIGlmICghaXNOYU4odGgp
KQ0KKyAgICAgIHBpeGVsQ29tcGFyZVRvbGVyYW5jZSA9IHRoOw0KKw0KKyAgICBhc3luYyBmdW5j
dGlvbiBzdGFydERyYXdpbmcoKSB7DQorICAgICAgbGV0IGNudiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzcmMiKTsNCisgICAgICB2YXIgY3R4ID0gY252LmdldENvbnRleHQoJzJkJywgeyBh
bHBoYTogZmFsc2UgfSk7DQorDQorICAgICAgY3R4LmZpbGxTdHlsZSA9IHNyY19jb2xvcjsNCisg
ICAgICBsZXQgZHJhd09uZUZyYW1lID0gZnVuY3Rpb24gKHRpbWUpIHsNCisgICAgICAgIGN0eC5m
aWxsU3R5bGUgPSBzcmNfY29sb3I7DQorICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgc3JjX3dp
ZHRoLCBzcmNfaGVpZ2h0KTsNCisgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZHJhd09uZUZyYW1lKTsNCisgICAgICB9DQorICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZShkcmF3T25lRnJhbWUpOw0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIGNhcHR1cmVBbmRF
bmNvZGUocHJvY2Vzc0NodW5rKSB7DQorICAgICAgbGV0IGNudiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzcmMiKTsNCisgICAgICBsZXQgZnBzID0gNjA7DQorICAgICAgbGV0IHBlbmRpbmdf
b3V0cHV0cyA9IDA7DQorICAgICAgbGV0IHN0cmVhbSA9IGNudi5jYXB0dXJlU3RyZWFtKGZwcyk7
DQorICAgICAgbGV0IHByb2Nlc3NvciA9IG5ldyBNZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yKHN0
cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdKTsNCisNCisgICAgICBjb25zdCBpbml0ID0gew0KKyAg
ICAgICAgb3V0cHV0OiAoY2h1bmspID0+IHsNCisgICAgICAgICAgdGVzdFBhc3NlZCgiRW5jb2Rl
IGZyYW1lIHN1Y2Nlc3NmdWxseS4iKTsNCisgICAgICAgICAgcGVuZGluZ19vdXRwdXRzLS07DQor
ICAgICAgICAgIHByb2Nlc3NDaHVuayhjaHVuayk7DQorICAgICAgICB9LA0KKyAgICAgICAgZXJy
b3I6IChlKSA9PiB7DQorICAgICAgICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBlbmNvZGUgZnJh
bWUuIik7DQorICAgICAgICAgIGZpbmlzaFRlc3QoKTsNCisgICAgICAgICAgdnRyLnN0b3AoKTsN
CisgICAgICAgIH0NCisgICAgICB9Ow0KKw0KKyAgICAgIGNvbnN0IGNvbmZpZyA9IHsNCisgICAg
ICAgIGNvZGVjOiBjb2RlY19zdHJpbmcsDQorICAgICAgICB3aWR0aDogY252LndpZHRoLA0KKyAg
ICAgICAgaGVpZ2h0OiBjbnYuaGVpZ2h0LA0KKyAgICAgICAgYml0cmF0ZTogMTBlNiwNCisgICAg
ICAgIGZyYW1lcmF0ZTogZnBzLA0KKyAgICAgIH07DQorDQorICAgICAgbGV0IGVuY29kZXIgPSBu
ZXcgVmlkZW9FbmNvZGVyKGluaXQpOw0KKyAgICAgIGVuY29kZXIuY29uZmlndXJlKGNvbmZpZyk7
DQorDQorICAgICAgY29uc3QgZnJhbWVfcmVhZGVyID0gcHJvY2Vzc29yLnJlYWRhYmxlLmdldFJl
YWRlcigpOw0KKyAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiBwcm9jZXNz
RnJhbWUoe2RvbmUsIHZhbHVlfSkgew0KKyAgICAgICAgaWYgKGRvbmUpDQorICAgICAgICAgIHJl
dHVybjsNCisNCisgICAgICAgIGlmIChwZW5kaW5nX291dHB1dHMgPiAzMCkgew0KKyAgICAgICAg
ICBjb25zb2xlLmxvZygiZHJvcCB0aGlzIGZyYW1lIik7DQorICAgICAgICAgIC8vIFRvbyBtYW55
IGZyYW1lcyBpbiBmbGlnaHQsIGVuY29kZXIgaXMgb3ZlcndoZWxtZWQNCisgICAgICAgICAgLy8g
bGV0J3MgZHJvcCB0aGlzIGZyYW1lLg0KKyAgICAgICAgICB2YWx1ZS5jbG9zZSgpOw0KKyAgICAg
ICAgICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0ZyYW1lKTsNCisgICAgICAgICAg
cmV0dXJuOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgaWYoZnJhbWVfY291bnRlciA9PSBrTWF4
RnJhbWUpIHsNCisgICAgICAgICAgZnJhbWVfcmVhZGVyLnJlbGVhc2VMb2NrKCk7DQorICAgICAg
ICAgIHByb2Nlc3Nvci5yZWFkYWJsZS5jYW5jZWwoKTsNCisgICAgICAgICAgdmFsdWUuY2xvc2Uo
KTsNCisgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgZnJhbWVfY291
bnRlcisrOw0KKyAgICAgICAgcGVuZGluZ19vdXRwdXRzKys7DQorICAgICAgICBjb25zdCBpbnNl
cnRfa2V5ZnJhbWUgPSAoZnJhbWVfY291bnRlciAlIDE1MCkgPT0gMDsNCisgICAgICAgIGVuY29k
ZXIuZW5jb2RlKHZhbHVlLCB7IGtleUZyYW1lOiBpbnNlcnRfa2V5ZnJhbWUgfSk7DQorDQorICAg
ICAgICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0ZyYW1lKTsNCisgICAgICB9KTsN
CisgICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBzdGFydERlY29kaW5nQW5kUmVuZGVyaW5nKGNudiwg
aGFuZGxlRnJhbWUpIHsNCisgICAgICBjb25zdCBpbml0ID0gew0KKyAgICAgICAgb3V0cHV0OiBo
YW5kbGVGcmFtZSwNCisgICAgICAgIGVycm9yOiAoZSkgPT4gew0KKyAgICAgICAgICB0ZXN0RmFp
bGVkKCJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lLiIpOw0KKyAgICAgICAgICBmaW5pc2hUZXN0KCk7
DQorICAgICAgICB9DQorICAgICAgfTsNCisNCisgICAgICBjb25zdCBjb25maWcgPSB7DQorICAg
ICAgICBjb2RlYzogY29kZWNfc3RyaW5nLA0KKyAgICAgICAgY29kZWRXaWR0aDogY252LndpZHRo
LA0KKyAgICAgICAgY29kZWRIZWlnaHQ6IGNudi5oZWlnaHQsDQorICAgICAgICBhY2NlbGVyYXRp
b246ICJkZW55IiwNCisNCisgICAgICB9Ow0KKw0KKyAgICAgIGxldCBkZWNvZGVyID0gbmV3IFZp
ZGVvRGVjb2Rlcihpbml0KTsNCisgICAgICBkZWNvZGVyLmNvbmZpZ3VyZShjb25maWcpOw0KKyAg
ICAgIHJldHVybiBkZWNvZGVyOw0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIGlzRnJhbWVQaXhl
bE1hdGNoZWQoZ2wsIHRoX3Blcl9waXhlbCA9IHBpeGVsQ29tcGFyZVRvbGVyYW5jZSkgew0KKyAg
ICAgIFdlYkdMVGVzdFV0aWxzLmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgc3JjX3dpZHRoLCBz
cmNfd2lkdGgsIGtUZXN0UGl4ZWwsICJzaG91bGQgYmUgb3JhbmdlIiwgcGl4ZWxDb21wYXJlVG9s
ZXJhbmNlKQ0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIG1haW4oKSB7DQorICAgICAgaWYgKCEo
IlZpZGVvRW5jb2RlciIgaW4gd2luZG93KSkgew0KKyAgICAgICAgdGVzdFBhc3NlZCgiV2ViQ29k
ZWNzIEFQSSBpcyBub3Qgc3VwcG9ydGVkLiIpOw0KKyAgICAgICAgZmluaXNoVGVzdCgpOw0KKyAg
ICAgICAgcmV0dXJuOw0KKyAgICAgIH0NCisgICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRzdCIpOw0KKw0KKyAgICAgIGxldCB3ZWJnbF93ZWJjb2RlY3NfdGVzdF9jb250
ZXh0ID0gew0KKyAgICAgICAgbWF4RnJhbWVUZXN0ZWQ6IGtNYXhGcmFtZSwNCisgICAgICAgIGRp
c3BsYXllZF9mcmFtZTogMCwNCisgICAgICAgIGlzRnJhbWVQaXhlbE1hdGNoZWQ6IGlzRnJhbWVQ
aXhlbE1hdGNoZWQsDQorICAgICAgICB0ZXN0RmFpbGVkOiB0ZXN0RmFpbGVkLA0KKyAgICAgICAg
dGVzdFBhc3NlZDogdGVzdFBhc3NlZCwNCisgICAgICAgIGZpbmlzaFRlc3Q6IGZpbmlzaFRlc3QN
CisgICAgICB9Ow0KKyAgICAgIHNldFRlc3RNb2RlKHdlYmdsX3dlYmNvZGVjc190ZXN0X2NvbnRl
eHQpOw0KKyAgICAgIGxldCBoYW5kbGVGcmFtZSA9IHJlcXVlc3RXZWJHTFZpZGVvRnJhbWVIYW5k
bGVyKGNudik7DQorICAgICAgaWYgKGhhbmRsZUZyYW1lID09PSBudWxsKSB7DQorICAgICAgICBm
aW5pc2hUZXN0KCk7DQorICAgICAgICByZXR1cm47DQorICAgICAgfQ0KKw0KKyAgICAgIHN0YXJ0
RHJhd2luZygpOw0KKyAgICAgIGxldCBkZWNvZGVyID0gc3RhcnREZWNvZGluZ0FuZFJlbmRlcmlu
ZyhjbnYsIGhhbmRsZUZyYW1lKTsNCisgICAgICBjYXB0dXJlQW5kRW5jb2RlKChjaHVuaykgPT4g
ew0KKyAgICAgICAgZGVjb2Rlci5kZWNvZGUoY2h1bmspOw0KKyAgICAgIH0pOw0KKyAgICB9DQor
DQorICAgIGRvY3VtZW50LmJvZHkub25sb2FkID0gbWFpbjsNCisgIDwvc2NyaXB0Pg0KKw0KKzwv
Ym9keT4NCisNCiA8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvZ2xzbC9idWdzL2NoYXJhY3Rlci1zZXQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jaGFyYWN0ZXItc2V0
Lmh0bWwKaW5kZXggMWJhODU0NjEzYzZhZjJmYzlmY2Q1YjdiZjkzZTY4ODBiZWE0OGZhZS4uNmQ2
ZmNhNWY4OTlmMzhkNDUwZDU1OGM4ZmZiYjc0NTk3NjA2NzQ0YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9i
dWdzL2NoYXJhY3Rlci1zZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1s
CkBAIC0xMTEsNyArMTExLDUgQEAgZGVidWcoIiIpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CiAKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci0KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29u
c3RydWN0b3JzL2dsc2wtY29uc3RydWN0LXZlYy1tYXQtaW5kZXguaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29uc3Ry
dWN0b3JzL2dsc2wtY29uc3RydWN0LXZlYy1tYXQtaW5kZXguaHRtbAppbmRleCA4YTlmYmViYzU5
NDViNTI5MTI3NmU3NGI5YTRjYzM0YWRhYjBhZmI1Li4wODRkNTMyZjhhNjRjNWVhOWE3ODZkZDU5
ZmI5NzQ5Zjk5Zjk5M2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2NvbnN0cnVjdG9ycy9nbHNsLWNvbnN0
cnVjdC12ZWMtbWF0LWluZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9jb25zdHJ1Y3RvcnMvZ2xzbC1jb25z
dHJ1Y3QtdmVjLW1hdC1pbmRleC5odG1sCkBAIC00OSw2ICs0OSw1IEBAIHZvaWQgbWFpbigpCiBH
TFNMQ29uZm9ybWFuY2VUZXN0ZXIucnVuUmVuZGVyVGVzdCgpOwogdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkMTU1ZWQ2MWJm
NTAxYmRkM2U2ZDc2ZTBhMDMyZmU0MzFiMDQ2OWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgotLS0+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2
YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD48Ym9keT4KLTxjYW52YXMgaWQ9ImdsIiB3aWR0aD0i
MTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjEyOCIgaGVp
Z2h0PSIxMjgiPjwvY2FudmFzPgotPGltZyBpZD0iaSI+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0
aW9uL2phdmFzY3JpcHQiPgotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGRlZmF1bHRJ
bWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy9vcGVu
Z2xfbG9nby5qcGciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy9vcGVu
Z2xfbG9nby5qcGciOwotCi1UZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2ZW50cyB0aGUg
dGVzdCBmcm9tIHJ1bm5pbmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAotCi1UZXN0cy5zdGFy
dFVuaXQgPSBmdW5jdGlvbiAoKSB7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZ2wnKTsKLSAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFz
KSk7Ci0gIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy50ZXN0UmVhZFBpeGVscyA9IGZ1bmN0aW9u
KGdsKSB7Ci0gIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1
c2Ugb2YgbmVnYXRpdmUgd2lkdGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9l
c24ndCBtYXRjaCB0aGUgZGltZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJuZWdh
dGl2ZSB3aWR0aCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLC0xLDEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30p
OwotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgICJuZWdhdGl2ZSBoZWlnaHQiLAotICAgICAgZnVu
Y3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLC0xLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNzZXJ0T2soIm5lZ2F0aXZl
IHgiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKC0xLDAsMSwxLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNz
ZXJ0T2soIm5lZ2F0aXZlIHkiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsLTEs
MSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5
KDQpKTt9KTsKLSAgYXNzZXJ0T2soImhlaWdodCA+IGJhY2tidWZmZXIgaGVpZ2h0IiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMTYsMTcsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMTYqMTcqNCkpO30pOwotICBhc3NlcnRP
aygid2lkdGggPiBiYWNrYnVmZmVyIHdpZHRoIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBp
eGVscygwLDAsMTcsMTYsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3
IFVpbnQ4QXJyYXkoMTcqMTYqNCkpO30pOwotICBhc3NlcnRPaygid2lkdGgsIGhlaWdodCA9IDAi
LAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwwLDAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMCkpO30pOwotICAvLyB3ZSBj
YW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdp
ZHRoCi0gIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRp
bWVuc2lvbnMuCi0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAiYmFkIGZvcm1hdCIsCi0gICAgICBm
dW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuRkxPQVQsIGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCo0KSk7fSk7Ci0gIC8vIHdlIGNhbid0IGtu
b3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUgd2lkdGgKLSAg
Ly8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBtYXRjaCB0aGUgZGltZW5zaW9u
cy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgdHlwZSIsCi0gICAgICBmdW5jdGlvbigp
e2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuQUxQSEEsIGdsLkZMT0FULAotICAgICAgICAgIG5l
dyBVaW50OEFycmF5KDEqNCkpO30pOwotfQotCi1UZXN0cy50ZXN0UmVhZFBpeGVsc1NPUElNRyA9
IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
Iik7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgIC8vIFNPUCBmYWlsdXJlCi0gICAgYXNzZXJ0VGhy
b3dOb0dMRXJyb3IoZ2wsICJ0aHJvdyBiZWNhdXNlIGltZyBpcyBmcm9tIGFub3RoZXIgZG9tYWlu
IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3Jp
Z2luLWNsZWFuIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsK
LSAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Ci19Ci1UZXN0cy50ZXN0UmVhZFBpeGVsc1NPUENh
bnZhcyA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpIik7Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpOwotICAg
IGMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAgICBhc3NlcnRGYWls
KCJjYW52YXMgdGhyb3dzIGJlY2F1c2Ugbm90IG9yaWdpbiBjbGVhbiIsCi0gICAgICBmdW5jdGlv
bigpe2MuZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMCwwLDEsMSk7fSk7Ci0gICAgdmFy
IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXgpOwotICAgIC8vIFNPUCBmYWlsdXJlCi0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3Io
Z2wsICJ0aHJvdyBiZWNhdXNlIGNhbnZhcyBpcyBub3Qgb3JpZ2luIGNsZWFuIiwKLSAgICAgIGZ1
bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCBudWxsKTsKLSAgICBhc3NlcnRPaygiY2FudmFzIHN0aWxsIG9yaWdpbi1jbGVhbiIsCi0g
ICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gICAgZ2wuZGVsZXRl
VGV4dHVyZSh0ZXgpOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wpIHsKLX07Ci0K
LShhc3luYyBmdW5jdGlvbigpIHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2knKTsKLSAgdHJ5IHsKLSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRD
cm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgfSBj
YXRjaCAoZSkgewotICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7
Ci0gICAgZmluaXNoVGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbml0VGVzdHMoKTsKLX0p
KCk7Ci08L3NjcmlwdD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNjNzhkMTYzNTc1NjVmZTY1MzhlZWJm
ZjlmN2YxMzE0YWUzZTkxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
Ci0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Vu
aXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4u
L3VuaXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRl
eCI+Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlp
bmcgdmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHRleENvb3JkMCA9IHZlYzQo
VGV4LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0
ZXgsIDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWhmbGlwLXZlcnQi
IHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJp
YnV0ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17
Ci0gICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50LCAwLjAsIDAuMCk7Ci0gICAg
Z2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBp
ZD0iaWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKLQotdmFyeWluZyB2
ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdmVjNCBjID0gdGV4dHVyZTJEKFRl
eHR1cmUsIHRleENvb3JkMC5zdCk7Ci0gICAgZ2xfRnJhZ0NvbG9yID0gYzsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIy
NTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwv
Y2FudmFzPgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9ImRhdGE6
aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJj
Y3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZBNVZmQkd6
YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2L2FFQkFV
SEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3T3ZC
a2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4NVUzWHY1
WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05GTytaTTFm
MmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFWdG1ONnA0
TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1wZlRXK3B5
VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4Ym90Umxq
NWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2Nnd5aldo
WUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxic2RjdWR0
NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5VUY0RWpW
U21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFFeXQvTm1X
YTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJKWEpnRWNp
MHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIrWFc1MnpG
YTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFXU202NWRL
WUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2S29EVFgw
VlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlUSlZEZ05F
bGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1cCtXbDBG
cGpyMmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9MOVdBV1Ni
REpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytWczJSNDV2
ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxDcFRrMlQz
R1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4dTFwY3ZS
QWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQeEg5OG5a
c3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMya0pDZWpx
eVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZYTEZPeUFB
b3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxvTmtuM1Zm
UFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVtZit1U0xQ
OGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdiY1hBSGtX
bE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBycEwvWkp6
Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1mWFY0ZDJi
M3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9LODlJbU50
SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8rYVY2NS84
RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNNaVZRVnVL
b1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90OFN1bkpZ
N04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQZWFSN28r
ZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThRQjk5WHFZ
bmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjltNDhyUXJ4
UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1WXcwMTUr
UWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDREZGxjZnkz
NkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZuODF0dnJo
LzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQTGtqSGUy
ZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtLc3V5OGQ5
cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5xMzdQUmZs
ZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9pNTdsVHgz
MnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJjRnFNVXUy
MFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpvTE5XeG1N
MU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNKaDFxb2hG
cjF3WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45SzhPOTFO
OGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9wdStiNXBP
WGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRFbjJuV3FZ
NjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHhtS2h2NDlH
ZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpCak5rcHhy
azJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1kdGZISmpw
cnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3AycGN0SHdZ
clphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3QmdPWk4y
VjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tpVkJ6MFhY
eGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2MGlwbXpE
cmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5eXo0OVM4
Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1ZaUXRId1Fx
WlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2S3BGUDJt
clRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3YW1XeW95
WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpuTmduWFIr
K0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2VGQ5WU5a
cDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVwTXROYzht
ZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJWWlhrU2Vm
dWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFqUC9BYWlh
Tm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0ejNXem50
bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2ZytSZUI3
Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRMUFJsdkR6
SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHViQzcwbXgz
emYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMwd0JaS1hy
WlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQdFFjWi9Z
RG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91ZUE5Slg1
TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4WTFKbzNo
aTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1kyMUJHVzBM
eGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9xeUxlSTlW
aVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlUNWw5VDA5
U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6U05UbmJX
djZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1cDF5bjlz
VkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndPL0gya0w4
dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0pheG1LaHRV
UC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lzMWJ4dmtX
bmZHclJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3dis0aHB1
RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExuV2NFeUdX
djB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9sSDdBVkZy
MHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9WUEFETXR6
cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5KZng5cHBu
b1YvdmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAwMnZTcGcw
NnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdFWHd6K3d2
TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpLOUYzcTJV
a0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1veWFoOWxt
L2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0VlhiYVU3VUJs
OFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3aGxvQ2x1
M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3UvUk5PKzgw
RzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdvK0Zac2Rq
b2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1AxeE1PeDdQ
QmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0TzlZV21o
dU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRhUFkrSElq
NFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEzTUxhMzY0
TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpXRjBCYXNI
VzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJcm1XaGIz
ays5SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9XN0IydURV
WUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2
U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3dzRuODBH
UEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQZkgrelo3
NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3cjVIQTJI
djdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9MYnRYTDJH
V255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85cjl2aTM5
MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gzQXZnVjdk
eXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9nOXRQSkVR
dTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9ImkyIj4KLQotPHNjcmlwdD4KLXZh
ciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0
LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5w
bmciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy90aHVuZGVyYmlyZC1s
b2dvLTY0eDY0LnBuZyI7Ci0KLVRlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZlbnRzIHRo
ZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCi0KLVRlc3RzLnN0
YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2dsJyk7Ci0gICAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQo
Y2FudmFzKSk7Ci0gICAgZ2wudmlld3BvcnQoMCwwLGNhbnZhcy53aWR0aCxjYW52YXMuaGVpZ2h0
KTsKLSAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICBnbC5kaXNhYmxlKGdsLkRFUFRI
X1RFU1QpOwotICAgIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGds
KSB7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmVN
YXApOwotICAgIHJldHVybiBbZ2xdCi19Ci0KLVRlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24oZ2ws
IHRleCwgdGV4Q3ViZU1hcCkgewotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51
bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFX0NVQkVfTUFQLCBudWxsKTsKLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleEN1YmVNYXAp
OwotfQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgZ2wuZW5h
YmxlKGdsLkJMRU5EKTsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kn
KTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0
eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwotICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwg
Z2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICB2YXIgZiA9IG5ldyBGaWx0ZXIoZ2wsICdp
ZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOwotICAgIGdsLmJsZW5kRnVuYyhn
bC5PTkUsIGdsLlpFUk8pOwotICAgIGYuYXBwbHkoKTsKLSAgICBmLmRlc3Ryb3koKTsKLSAgICBn
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGMpOwotICAgIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZsaXAtdmVy
dCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wu
T05FX01JTlVTX1NSQ19BTFBIQSk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwot
ICAgIHZhciB2YWxpZF90YXJnZXRzID0gWwotICAgICAgICBnbC5URVhUVVJFXzJELAotICAgICAg
ICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9Z
LAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9O
RUdBVElWRV9aCi0gICAgXTsKLSAgICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkg
ewotICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnRleEltYWdlMkQodCwgMCwgZ2wuUkdC
QSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci0gICAgICAgIGFzc2VydE9rKGZ1
bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBjKTt9KTsKLSAgICB9KTsKLX0KLQotVGVzdHMudGVzdFRleEltYWdlMkROb25TT1Ag
PSBmdW5jdGlvbihnbCkgewotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aTInKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFy
IGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwot
ICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdp
biBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgaW1nKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQg
d2l0aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLX0KLQotVGVzdHMuZW5kVW5pdCA9IGZ1bmN0
aW9uKGdsKSB7Ci19OwotCi0oYXN5bmMgZnVuY3Rpb24oKSB7Ci0gICAgY29uc3QgaW1nID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7Ci0gICAgdHJ5IHsKLSAgICAgICAgYXdhaXQgd3R1
LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRlZmF1bHRJbWdV
cmwsIGxvY2FsSW1nVXJsKSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0RmFpbGVk
KGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaW5pdFRlc3RzKCk7Ci19KSgpOwotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY4ZWMyYWEwOTdiMWZkMzE0ZTgxNzVjNzE1YWMz
YmVmMDE2NmYzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTYwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0t
LT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQu
Y3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3Vu
aXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBz
cmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+
Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlpbmcg
dmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHRleENvb3JkMCA9IHZlYzQoVGV4
LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgs
IDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWhmbGlwLXZlcnQiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0
ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0g
ICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0i
aWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKLQotdmFyeWluZyB2ZWM0
IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdmVjNCBjID0gdGV4dHVyZTJEKFRleHR1
cmUsIHRleENvb3JkMC5zdCk7Ci0gICAgZ2xfRnJhZ0NvbG9yID0gYzsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPjxib2R5PgotPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48
L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImMiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZh
cz4KLTxpbWcgaWQ9ImkiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiAgc3JjPSJkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRUFDQVlBQUFCY2NxaG1B
QUFUVkVsRVFWUjRuTzNkK1ZQVWQ1N0hjZjJiOWs5WSt6NDQrcUs3T1pvR0ZWQTVWZkJHemFoOWN4
cE56R0VPb1J1YTVsQkV1ZS9ESzRmWjdNYXBtU20zTWxzaHU4eE9kQ3BESnQzdi9hRUJBVUhBT01H
NHowZlY1M2ZxVS9WNmZkN2ZUL2UzMmJFREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd092Qmthcjds
KzMrR3dCc2s4eFVyVDByVGI4dngyUTQ1amFubHU3WXNXUG5zZ1hnVGVZd2FrODVVM1h2NVppTTMr
WGJVaC9sMmRJQ0JjNjA4MFdaMXVyOTJiYVNIUlFCOEdheUdkVVd1MUh6b1NORk8rWk0xZjJjYlRM
TTUxbFQ1d29jNXJrRE9iYlovVm0yU0VtMjNWdnN5amhWNW5KUUJzQ2J4R1pRVnRtTjZwNE1vL1lQ
ZHFOR0hLbGF5VXJYSjl6V2xFU2gweEl2enNtWUwzSFo1NHB6TW02VnVSeVJNcGZUVytweVVBYkFt
OEJtVk5WbkdOVFRkcVA2dnpPTUdyR25hTVNacXBOc2sxN3liS2xTNkRUTC9peGJvdFJsajVmbE91
YkwzSTY1TXBmalZybmJFYWxZS0lOU2wzMzV2UUdBM3dLYlVXMnhHZFdSREtQNjZ3eWpXaFlMd0pH
aUZXZWFUckpOQm5GYlUyU1AzU1Q3czZ4U21tdVhjcmN6VWU1MnhzdHpIZlBsYnNkY3VkdDVxeXpY
M2xLV2x4a3N6WEdlSzhteG55ekp5U2plUVJrQXJ6ZWJRVmxsTTZwN2JVYjE0OVVGNEVqVlNtYWFU
ckxTOWVLeXBNZ2VlN29jeUxaSm1kc2hGWG1aVXBIblhGRUdCL096SnNyZGpxRXl0L05tV2E0OVhK
YnQ5SmE2TWs0VnU3aEVCRjVMTnIycTNtWlF6OWdNNnU5WEZFQnFzZ0NjYVRySlhKZ0VjaTBwc3Rk
aGt2M1pOaW5OVFpiQW9md3NPWlNmSlFmek1xVTh6NWtvZHpzU1pibU9lSVhiK1hXNTJ6RmE1bkxj
S25QWkkyVUxsNGpGZktJQXZCN01PclhGWmxCSGJBYjExemFqK2ttR1ViTnVBV1NtNjVkS1lIZEdt
aFJsV3FROHp5RkhDbkxrK0w1Y09WNlVLMGNLWFZLNUoxc081bWRLaGRzcFphdktvRFRYMFZQaWNp
VExJSHRGR1ZBSXdLL05ZbEJXMmZUcVhwdEIvZGhtU0o3K0x5cUFySFM5NUppVEpWRGdORWxsUVpa
NEtndWxycnBVNnF0TEpYQnN2NXd0M3lNbjlydmxhSUZMRGk4dmcxeEg0bUIrNXArV2wwRnBqcjJs
Sk1jUkxNNnlueXZPempoeElJdDdBK0JYWTlHcjZxMEw0LzlTQWFSb3hMN3cvTDlXQVdTYkRKSnJU
WkZpZDRaNGp4WkpVLzF4dWZIaE9lbStlazZpbDAvTEI3NHFhVHhUSm9HaisrVnMyUjQ1dmo5WGpo
VGt5T0hkQzQ4SkMyVndhSGZtbnlyY3puK3ZjRHNteW5MdFF5VTVHVGVMY3pMQ3BUazJUM0dXN1Zo
eFZzYWU3ZDRmNEkxbDFxa3RWb002WWpPb3ZyWWExRDhzRm9COVdRRTQxNWtBOHUxcGN2UkFqbndV
T2lMRExRRzUxOTBvOTI0MnlsUkhuUXlHL1hMejZubUpYcXFXRDN5VjBuQzZWUHhIOThuWnN0MXlm
Rit1SEMxMFNkWGViRG1Vbnl5RHFvTHM3dzdsWjM1YjduYjhzY3h0LzdkU2wzMmtKQ2VqcXlRbjQw
cEpUa2JaRGlZQzROV3phSlZWVnIycTEyWlFQYllhMUg5ZnV3QjBTd1dRbGE2WExGT3lBQW95VGZM
VzRUM1NmdVdNM0wzUklBLzdMOHZEL3N2eVplOGwrZXpXMjNLdnUxRW1PMnBsb05rbjNWZlBTZXZi
MWZLK3QxSWF6NVJKN2NsaThSMHBrdE9sK1hLc0tGa0dCeGZLb0hKdjFsOFA1bWYrdVNMUDhmdnlY
TWRNbWRzUktYYzVxb3RkR1FYYnZWL0FHOFdpVjlWYjlhb1pxMTQxYXpPb3hXYmNYQUhrV2xPa0pD
OURhazhYeTYxUEw4aURub3RMQmJCVUJIMlg1WXZibCtSQnowVzVlNk5CSnRwcnBML1pKemMvT2kv
WFAzaExXaTZla3ZjOGg2V3V1a1M4VmMvS1lQRUM4V2hoenBPcWd1enZLdmRtZlhWNGQyYjN3ZnpN
OXcvbFpURU5BSytDV2Fld1dIV3FpRTJ2K3RxcVYvMncyUUxJTmhra1AyTmgvSzg5SW1OdElmbWk5
OUt6OFBjbDE1ZEw2NUo4MFh0SlByLzF0dHkvMlNoM3V4dmt6dlY2R1krRnBPK2FWNjUvOER1SlhE
d3BWenlIcE83VVFobVU1TXZSSXBkVTdjMlJRN3V6NU1SKzl4K09GYm51SGkzTWlWUVZ1S29QNzg0
dTJ1NzlBMzdUTEZwbGxWV242clhxVlkrdGV0V1BHeGJBc2d2QXZVNlR2SFZvdDhTdW5KWTdOK3Js
eTc2MWcvOWxiM0o5c1d4OWZ2dVNmSDc3YlhuUWMxSHVkVGZJVEZlZGpMV0ZwUGVhUjdvK2VFdkNq
U2ZseW9WRFVsZGRLc0hqQitUQzRVSTVWWnduVlFVNWliY3E5bngxdWpTLzU4UUI5OVhxWW5mNURx
WUI0T1ZZZE0vR2Y2dGU5WS9rOC8vR0JlQ3lHS1hFblNFMTFRZWs1NVB6Y3Y5bTQ4clFyeFA4TDI1
ZmtpOXV2eTJmcjFxZjNicVluQXh1Tk1oMFo1Mk1SSU55KzFPUFhQL3dkOUorNVl3MDE1K1FkODRm
bEpxVHhYTGhjSUdjTE03NytVaEJ6dDh1VkJhMm5xdmNlL1pzeFo2eTdkNUw0RGRsY2Z5MzZGVmZX
L1NxSDZ3R2xhd3VnTVd2QVR2VGxoV0F5U0I1R2FseWRIK09mRlJ6UkVhalFmbjgxdHZyaC82RndW
OWNGK1d6V3hmbHdhMkxjci9ub3R6cmJwU1o2L1V5MVZVbmt4MjFNdHdTa0o1UExrakhlMmVscWY2
NFhENTNVRUluRGlRdUhDNllyeTdPbXoxVzVIclkrRmJGNFIxTUE4RG1XTFRLS3N1eThkOXFVTCt3
QUpaL0MzQ1BNMTNPSHR3dGJlK2VsdW5yOWZMRnVzRi9QdlNmMzFvNytBOTZucTM3UFJmbGZrK2oz
TCtaL0ZqeDdvMEdtZTZxazRuMkdobHE4VXZQeCtlbC9jb1p1VlozWEM2ZnEvaTU3bFR4MzJwT0hu
Z1VPbFVjL2pSNGxFdENZQ01XbmFyZW9sZk5XUFNxV2F0QjlkT2FCYkRHbDRCY0ZxTVV1MjBTT25W
QWJuNThUdTUyTjI3cXRQOThnOUEvV0F6OVF2QVgxNzNGRXVodWtMdmREY25Kb0xOV3htTTFNaGp4
eTgyUHprbm4rMmNTc1hkUHo0Y2JUOHgrR0toOCtGSHdTTzBPU2dCWW0xbW5zSmgxcW9oRnIxd1kv
NVh4WndXdy90ZUFzOUtUdnd0d1pIKzJYQTFWeVhCclVCNzBYRnovdEY5bnpOOUs4TzkxTjhpOWhm
QXZyanMzR3VUT2pYcVpYbmhFR0crdmtkRm9VQWJEL3A5N1BqNy90NTZyNTcvcHUrYjVwT1hkNnFQ
YnZkZkFhOGVpM1ZWbDBhbDZMWHJsWTR0TythTkZyMHBzdGdEMk9OTGx6TUhkRW4ybldxWTY2K1N6
bHh6ekh5d2I4NThML1RyQnYzdmpXZmdYMTh6MTVKcnVxcE9wemxxWmFBOGx4bUtodjQ5R2czL29E
L3MrM3U2OUJsNDdGcDJpM3FKVnpWaDB5bG1yVHZtVFZaKzhBRno1SHNEekJaQmpOa3B4cmsyQ3B3
NUk5MGZuNU02TmhoZWU5bHNPZnZmbWczL24rclB3ejF5dms1bXVPcGxlV0pNZHRmSEpqcHJ2Smp0
cUtBQmd1ZVQ0cjRpWWRjcXZ6YnBkUDFqMHl2anFBckN2OVNKUXVsN2N0bFNwMnBjdEh3WXJaYWds
SVBkdk5xNS8yci9nWW05VHdiK3g5ZUJQZDlYSlZISVNtSi9xclAxbXVyT0dSd0JnT1pOMlY1VkZw
K3kxYUJmR2Y1MHlzVlFBYTN3SFlMRUFzdEwxc3R1UkxxY3I4cVgxOGltWjdLaVZCejBYWHhqNmpa
L3ZOeG44NnhzSFAva0lVQ2RUblhYeDZjN2F2MHgxMVBSczkxNERyeDJUVGxGdjBpcG16RHJsckVX
bi9NbWlWOGxtQ2lEYmJKQUR1VFlKbnR3dk42NytUbWF1MXlkRHZtYm90MzZ4OXl6NDlTOFovTnJG
TlQvZFZmdjdxYzY2azl1OTE4QnJ4YXhlUGY0cjRoc1ZnSFBoOXdCenJTbFNWWlF0SHdRcVpURGls
N3ZkalZzNzdiY1kvSm10QjErbU9tc1RreDIxVDZhNmFrZTJlNitCMTQ1SnU2dktwRlAybXJUS3gy
YnRzL0YvOFZ1QUx5cUEzZlkwT1YyZUx5MlhUc3BFZTQzY2Y4R3ovVFlFWHlZN2FtV3lveVkrMVZI
ei9WUm5YZk4yN3pYdzJsa2EvN1hLV1l0VytaTkZwNVRORkVDMnlTRDdYVllKbk5nblhSKytKZE5k
ZFpzKzdYK2Q0TmZLWkVlTlRIYlV6RTkyMUR5YTVQSVBXQ2xOcmJDWXRjbngzNlRkOVlOWnA0aGJk
S3FOQzJCaC9LOHN6SkwzL1lkbElPeVRPemNhdHZ3eDNzWTMrcjhvK0RMWkVVcE10TmM4bWVoZy9B
ZWVZMUx2cWpKcGxiMG1qZUt4V2F2NDBheFZKbFlYd0ZwdkFtYW02U1RmbmliVlpYa1NlZnVrak1W
Q2NyZDdFeVArZXFmOWxvSmZ1Mkh3SnpwcVpLSzlSc2JiUS9ISjl0RDNrNTAxalAvQWFpYU5vdDZr
U1k3L1pxM2lKN05PS1lzWGdDOHFnQ3lUUWZibFdNVi9mSjkwZm5CV0pqdHJWNHozV3pudG43dlJ2
LzU4NkxjYS9HY3JORC9SSG5vMDJjNzRENnlRcGxaWVRGcEZ4S1JWTEkzL0t3dmcrUmVCN0NuSjN3
RndXVkxrY0dHV3ZPYy9MUDNOWHBtNVh2L0xUL3ROQm45eUU4RWZUNFkvTVI0TFBSbHZEekgrQTZ1
Wk5ZcEtrM1pYYi9yQytHL1NLaEtiTFlDOGpEUTVWWlluNFlzblpMUXRLSGR1YkM3MG14M3pmMG53
eDl0RE1oNEx5VmdzRkIrUEJiOGZiMmY4QjU2VHJsSFVwMnNWMHlhTlltbjgzMHdCWktYclpWKzJS
WHpIOTBuSCsyZGxvcU1tV1FDdjRMUi8rZUNIbG9LL0VINFpqd1hueDJQQlIyUHRRY1ovWURtVFJw
bWFybFkwbVRTN3ZrclRLUDVxMGlwK051dVVZdG1nQUJ5cFduRlpqSEtvSUZPdWVBOUpYNU5IcHJ2
cU5oMzZ6WjcydnlUNEMrRlBqTFlGbjR6SGdvei93R29temE3ZDZacGRNWk5HOFkxSm8zaGkxaTQ4
LzIraUFQSXlVdVZrcVZ1YUdrL0lTRFFvTTlkZjNXbS9NdmcxV3c3K1dDd2tZMjFCR1cwTHhrZmJn
dCtQeFVLTS84QnFhWnBkdTlQVWlpYVRSdkdWU2F2NHk5SW5BQnNVUUdhNlhvcXlMZUk5VmlUdDc1
MlI4ZmJRcXNDLzR0TitpOEVmYXd2S2FEUW9JOUhBL0doYjhKdXhLT00vOEJ5VDVsOVQwOVNLUUxw
R01XVFNLdjdUckZVOE5ldVVpZVVGWUZ2MVl5Q09WSzNrbUpQai83dmVnOUo3elNOVG5iV3Y2TFIv
QmNGZldDUFJRSHdrR3ZqTFNEVEFtMy9BZXRMVnlqeVRSdm1PU2F1WU5Pc1UzNXAxeW45c1ZBQnVX
NnFjTE0yVmF3M0haYmcxSU5OZHIrYTBYL3N6L0swRmZ6UWFsTkZvSUhuNlJ3Ty9IMmtMOHVZZjhD
SW16YTVDazI3WGUyYXRjc3FpVThiWExZQVVqV1NtNjZRd3l5emVZNFVTdTNKYXhtS2h0VVAvaTAv
N21oV2hYeEg4dHZXQ0g1U1JhRUJHbzRIRVNLdi95V2hyZ01zL1lEUFNkY29pczFieHZrV25mR3JS
SytOckZZQTlSU3ZaWm9NYzNPdVVkendINWZhMUN6TFJVZk5QUGUzSDF6anQxd3YrNGhwdURjUkhv
b0h2UjZJQkx2K0F6VExybEVWbW5mS2hSYWQ4YWwzejU4QzA0cmFseUltU1hMbldjRXlHV3YweTJW
a3JVMTNQaC82bFR2c05nais2UWZCSFdnTXkzQnFRNFZiLy9IQnI0TkZJMU0vbEg3QVZGcjBxWU5H
ckhscjFxcWMyZ3lxKy9FMUFaNXBPQ3JOTTRqbGFJRzFYVHN0b1cvQ2ZkOXEvVlBBRE10enFUd3kz
K0o4TU0vNERMMlhuaWhJd3F1STJvMXJzS1JySk5obWtZcTlETGwrb2tGdWZuSmZ4OXBwbm9WL3Zj
L3V0bnZheE5jYjhUUVUvSU1PdGZobHE4Y2VIVy96ZkQwY0RGN1o3STRIZnFwMDJ2U3BnMDZzZTJn
enFweGxHVGR5ZW9wRmNhNG9jTDNISnAvVkhaVERpazRtT3pZMzRMMzNhYis3RVh3eit3dkxORDdj
RWJvMjBCakszZXhPQjM3S2ROcU02WURPb0gyWVkxVStkYWJwNFFhWkpMaHpaSzlGM3EyVWtHcENK
RFUvNzBLczc3VGNNdmwrR1dueUp3WWp2eVZCTDRKM3QzanpnVGJEVFpsUUhNb3lhaDlsbS9kT0tQ
Yzc0cGZQbDB2UHhPUm1MaFg2ZDAzNVR3VjlZRVY5OHNNVS9OUkRtOGc5NFZYYmFVN1VCbDhYNDhF
U0o2K2tuOVVkK0hnaDdFdVB0b1ZkejJyZHRKdlF2RHY1Z3hMZXd2SDhjaUhnN2hsb0NsdTNlTk9C
TnN0TnRTdzM0anhjOWJIMm5lbmFveFRjMzNoNmFINHVGNHVQdHdjUjQ4bi91L1JOTys4MEczeWRE
RWQvL0RJUjk5d2JDdnNidDNpemdUYlR6YXFneTBQUHh1ZkJJTkJBYmJ3ODlHbytGWnNkam9ibng5
dERjYUN3NFA5b1dqSS9GZ29teFdDQXgrZ3BPKytHMXh2eFZ3UitNK0dRdzdQMXhNT3g3UEJqMjlm
Wkh2RlhidlZIQW0ycm40cHJzcktrZDZ3aUZSOXREc2ZIMm10aElMUFJvckMwNE85WVdtaHVOaGVa
RzJ3THpJOUZnZkxRdGtCaU5CaExQaGY0WG5QYUxheURpazRHd1R3YkMzdjhkYVBZK0hJajRQdXB2
OWpMK0E3K0NuY3ZYZUh0TjdXZ3NHQjZOaFdLanNWQnNKQnA4TkJvTnpvNUVBM01MYTM2NE5SQWZh
ZlVuaHBQcjVVNzdsY0dYZ2JEMzd3Tmh6NS83bTcwakEySFBtVzNlRStEL3JaV0YwQmFzSFc0TGhr
ZWlnZGhJTEJRYmJnMDhHbTROekE2MytPZUdXL3h6UTYzKythRVdmM3lveFpkSXJtV2hiM2srOUlO
TG9WOEt2dlEzZStNRHpkNGYrcHM5LzlFZjlyWU5SSHlPYmQ0REFBdFdGTUpvVzdCMnVEVVlIb29H
WWtQUlFHeW94ZjlvcU1VM094VHh6UTFGZkhORExiNzVvWWd2UGhqeEpwWldlTzNnSjhQdlNmUTNl
WDhhQ0h0bis1dTlNMzNOWFA0QnI3TVZoVERjR3FnZGJ2V0hCMXY5c2NGV2Yyd3c0bjgwR1BITkRv
YTljNE1SMzl4ZzJEczNFUGJPRDRTOThZR3dKekVROWlUNm03M1MzK3lWdm1iUGZIK3paNzZ2eWZP
MHY5bjdwNzVtYjI5L001ZC93Ry9KYzRVdzFPSVA5MGY4c2NHSVA5WWY4Y2NHd3I1SEEySHY3RUN6
ZDI2ZzJUdlhsd3g5dksvWjgyMS9zK2UvK3BvODMvWTNlVDdyYS9ZMGNma0gvTGJ0WEwyR1dueTFB
MkZmdUMvc2pmV0h2YkgrWnMranZyRDNabStUWjZpM3lUUFcxK3laN0d2eVhPOXI5dmkzOTA4SDhN
K3dvaEI2bTd4bHQ2OTVUdzZFZmVjR3cxNWZmNVBubmI1bVQ2RDMyb1VEMi94M0F2Z1Y3ZHl4WThm
T2dTYXZ1Ny9KazlWM3phdmU3ajhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQ1YvZzl0UEpFUXUxWHZt
UUFBQUFCSlJVNUVya0pnZ2c9PSI+Ci08aW1nIGlkPSJpMiI+Ci0KLTxzY3JpcHQ+Ci12YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJn
bC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nIjsK
LXZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02
NHg2NC5wbmciOwotCi1UZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2ZW50cyB0aGUgdGVz
dCBmcm9tIHJ1bm5pbmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAotCi1UZXN0cy5zdGFydFVu
aXQgPSBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdnbCcpOwotICAgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZh
cykpOwotCi0gICAgZ2wudmlld3BvcnQoMCwwLGNhbnZhcy53aWR0aCxjYW52YXMuaGVpZ2h0KTsK
LSAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RF
U1QpOwotICAgIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7
Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpOwotICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmVNYXAp
OwotICAgIHJldHVybiBbZ2xdCi19Ci0KLVRlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24oZ2wsIHRl
eCwgdGV4Q3ViZU1hcCkgewotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwp
OwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFX0NVQkVfTUFQLCBudWxsKTsKLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleEN1YmVNYXApOwot
fQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgZ2wuZW5hYmxl
KGdsLkJMRU5EKTsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsK
LSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9
IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwotICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7Ci0gICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0g
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wu
Q0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgdmFyIGYg
PSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsK
LSAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5aRVJPKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAg
Zi5kZXN0cm95KCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICBnbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAg
IGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFn
Jyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBI
QSk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAgIHZhciB2YWxpZF90YXJn
ZXRzID0gWwotICAgICAgICBnbC5URVhUVVJFXzJELAotICAgICAgICBnbC5URVhUVVJFX0NVQkVf
TUFQX1BPU0lUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwK
LSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgICAgICBnbC5URVhU
VVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWiwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCi0gICAgXTsK
LSAgICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkgewotICAgICAgICBhc3NlcnRP
ayhmdW5jdGlvbigpewotICAgICAgICAgICAgICAgIGdsLnRleEltYWdlMkQodCwgMCwgZ2wuUkdC
QSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgICAgICAgICAgZ2wudGV4
U3ViSW1hZ2UyRCh0LCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAg
Z2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBj
KTsKLSAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKHQsIDEsIDAsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotVGVzdHMu
dGVzdFRleEltYWdlMkROb25TT1AgPSBmdW5jdGlvbihnbCkgewotICAgIHZhciBpbWcgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHgu
ZHJhd0ltYWdlKGltZywwLDApOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1h
Z2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0g
ICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xF
cnJvcihnbCwgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRo
cm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAg
ICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4g
Y2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBjKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleFN1YkltYWdlMkQg
d2l0aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rp
b24oZ2wpIHsKLX07Ci0KLShhc3luYyBmdW5jdGlvbigpIHsKLSAgICBjb25zdCBpbWcgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB0cnkgewotICAgICAgICBhd2FpdCB3dHUu
YXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1Vy
bCwgbG9jYWxJbWdVcmwpKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQo
YEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpbml0VGVzdHMoKTsKLX0pKCk7Ci08L3NjcmlwdD4K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9DR19EYXRhX1R5cGVz
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NHX0RhdGFfVHlwZXNfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRmMzEwOTBlYmYzMjA3MjcwNTZkMGZlMDg2NGQyYzAxOGIwYjdjOGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9DR19EYXRhX1R5cGVzX2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDI4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1h
aW4oKQoreworCWhhbGYgaDE7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJaGFsZjIgaDI7IC8vIE5v
dCBhIGJhc2ljIHR5cGUuCisJaGFsZjMgaDM7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJaGFsZjQg
aDQ7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZmxvYXQyIGYyOyAvLyBOb3QgYSBiYXNpYyB0eXBl
LgorCWZsb2F0MyBmMzsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmbG9hdDQgZjQ7IC8vIE5vdCBh
IGJhc2ljIHR5cGUuCisJZml4ZWQgZngxOyAvLyBOb3QgYSBiYXNpYyB0eXBlLgorCWZpeGVkMiBm
eDI7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZml4ZWQzIGZ4MzsgLy8gTm90IGEgYmFzaWMgdHlw
ZS4KKwlmaXhlZDQgZng0OyAvLyBOb3QgYSBiYXNpYyB0eXBlLgorCWZsb2F0M3gzIGYzeDM7IC8v
IE5vdCBhIGJhc2ljIHR5cGUuCisJZmxvYXQyeDQgZjJ4NDsgLy8gTm90IGEgYmFzaWMgdHlwZS4K
KwloYWxmNHg0IGg0eDQ7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9DR19TdGFuZGFyZF9MaWJyYXJ5X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MjY4MGVlMWFhODI4
ZGIyMDE0YWFkZmM4YWIyMzQ3MmRmMGNiYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9DR19TdGFuZGFyZF9MaWJyYXJ5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworCWludCBp
ID0gcm91bmQoMS4zKTsgLy8gcm91bmQgaXMgbm90IGEgYnVpbHQtaW4gZnVuY3Rpb24uCit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEJ1aWx0SW5PdmVyaWRlX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wN2JhM2VmMzdiN2M1NDUwOGM5YjJmMzk4MjgyMmE2ZGQyNmRiZDgyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEJ1aWx0SW5PdmVyaWRlX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDIyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGludDsKKyNlbmRpZgorCitp
bnQgcmFkaWFucyhpbnQgZikKK3sKKyAgICByZXR1cm4gZjsKK30KKwordm9pZCBtYWluKCkKK3sK
KyAgICBpbnQgZiA9IDQ1OworICAgIGYgPSByYWRpYW5zKGYpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdENvbW1hX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RDb21tYV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI2NzFkNzliNjgyNjM5ZWVlYTVmMWU4YWNk
ZTgyMDVlYjM4NTE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RD
b21tYV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGZsb2F0IGY7CisgICAgdmVjMyB2OworfTsK
Kwordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCB2ZWM0IHYgPSAodmVjNCgxLDIsMyw0KSwgdmVj
NCg1LDYsNyw4KSk7ICAvLyA1LDYsNyw4CisgICAgY29uc3QgcyBzMSA9IChzKDkuMCwgdmVjMygx
MCwxMSwxMikpLCBzKDEzLjAsIHZlYzMoMTQsMTUsMTYpKSk7IC8vIDEzLDE0LDE1LDE2CisgICAg
Z2xfRnJhZ0NvbG9yID0gdiArIHZlYzQoczEuZiwgczEudik7ICAvLyAxOCwgMjAsIDIyLCAyNAor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzFfdmVydC52
ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzFfdmVydC52ZXJ0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg5YTNiYzU4NGZhZWUyOTFiN2ExZDlhZDAzNDdiNDA1OGZhMGQzZjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnZlcnQK
QEAgLTAsMCArMSwzNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKwordm9pZCBtYWluKCkKK3sKKworICAgY29uc3Qgc3RydWN0IHMyIHsKKyAgICAgICBp
bnQgaTsKKyAgICAgICB2ZWMzIHYzOworICAgICAgIGJ2ZWM0IGJ2NDsKKyAgIH0gczIyICA9IHMy
KDgsIHZlYzMoOSwgMTAsIDExKSwgYnZlYzQodHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisK
KyAgIHN0cnVjdCBzNCB7CisgICAgICAgaW50IGlpOworICAgICAgIHZlYzQgdjQ7CisgICAgICB9
OworCisgICBjb25zdCBzdHJ1Y3QgczEgeworICAgICAgczIgc3M7CisgICAgICBpbnQgaTsKKyAg
ICAgIGZsb2F0IGY7CisgICAgICBtYXQ0IG07CisgCXM0IHM0NDsKKyAgIH0gczExID0gczEoczIy
LCAyLCA0LjAsIG1hdDQoNSksIHM0KDYsIHZlYzQoNywgOCwgOSwgMTApKSkgOworCisgIGNvbnN0
IGludCBmaWVsZDMgPSBzMTEuaSAqIHMxMS5zcy5pOyAgLy8gY29uc3RhbnQgZm9sZGluZyAoaW50
ICogaW50KQorICBjb25zdCB2ZWM0IGZpZWxkNCA9IHMxMS5zNDQudjQgKiBzMTEuczQ0LnY0OyAv
LyBjb25zdGFudCBmb2xkaW5nICh2ZWM0ICogdmVjNCkKKyAvLyA0OSwgNjQsIDgxLCAxMDAKKyAg
Y29uc3QgdmVjNCB2NCA9IHZlYzQoczExLnNzLnYzLnksIHMxMS5tWzNdWzNdLCBmaWVsZDMsIGZp
ZWxkNFsyXSk7ICAvLyAxMC4wLCA1LjAsIDE2LjAsIDgxLjAKKyAgZ2xfUG9zaXRpb24gPSB2NDsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcyX3ZlcnQu
dmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcyX3ZlcnQudmVydApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NWMxMzY3MjQ1Y2EwMjJjNjNlZDAxZGJhNmI4Y2NkOGQ3ZDhhZTYxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC52ZXJ0
CkBAIC0wLDAgKzEsNDIxIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIHN0cnVjdCBzNSB7CisgICAgZmxvYXQgazsK
KyAgICB9OworICAgIGNvbnN0IHN0cnVjdCBzIHsKKyAgICAgICAgaW50IGk7CisgICAgCWZsb2F0
IGo7CisgICAgICBzNSBzNTU7CisgICAgfSBzcyA9IHMoNCwxLjAsIHM1KDEuMCkpOworCisKKyAg
IGNvbnN0IHN0cnVjdCBzMiB7CisgICAgICAgaW50IGk7CisgICAgICAgdmVjMyB2MzsKKyAgICAg
ICBidmVjNCBidjQ7CisgICB9IHMyMiAgPSBzMig4LCB2ZWMzKDksIDEwLCAxMSksIGJ2ZWM0KHRy
dWUsIGZhbHNlLCB0cnVlLCBmYWxzZSkpOworCisgIHN0cnVjdCBzNCB7CisgICAgICAgICAgaW50
IGlpOworICAgICAgICAgIHZlYzQgdjQ7CisgICAgICB9OworCisgICBjb25zdCBzdHJ1Y3QgczEg
eworICAgICAgczIgc3M7CisgICAgICBpbnQgaTsKKyAgICAgIGZsb2F0IGY7CisgICAgICBtYXQ0
IG07CisgICAgICBzNCBzNDQ7CisgICAgIH0gczExID0gczEoczIyLCAyLCA0LjAsIG1hdDQoNSks
IHM0KDYsIHZlYzQoNywgOCwgOSwgMTApKSkgOworCisKKyAgIGNvbnN0IHN0cnVjdCBzNyB7Cisg
ICAgICAgaW50IGk7CisgICAgICAgbWF0MyBtMzsKKyAgIH0gczc3ID0gczcoMTIsIG1hdDMoMTUp
KTsKKworICB2ZWMyICAgICAgIHYyMSA9IHZlYzIoMSk7ICAvLyBOb3QgYSBjb25zdGFudAorICBj
b25zdCB2ZWMyIHYyMiA9IHZlYzIoMTEpOyAvLyAxMS4wLCAxMS4wCisgIGNvbnN0IHZlYzQgdjQx
ID0gdmVjNCgyKTsgIC8vIDIuMCwgMi4wLCAyLjAsIDIuMAorICBjb25zdCB2ZWM0IHY0MyA9IHZl
YzQoNCw0LDQsNCk7IC8vIDQuMCwgNC4wLCA0LjAsIDQuMAorICBjb25zdCB2ZWM0IHY0NCA9IHZl
YzQoNS4wLCA1LjAsIDUuMCwgNS4wKTsgLy8gNS4wLCA1LjAsIDUuMCwgNS4wCisgIGNvbnN0IHZl
YzQgdjQ1ID0gdmVjNCh2MjIsIHYyMik7ICAvLyAxMS4wLCAxMS4wLCAxMS4wLCAxMS4wCisgIGNv
bnN0IHZlYzQgdjQ2ID0gdmVjNCh2ZWMyKDIwLCAyMSksIHZlYzIoMjIsIDIzKSk7ICAvLyAyMC4w
LCAyMS4wLCAyMi4wLCAyMy4wCisKKyAgY29uc3QgdmVjMyB2MzEgPSB2ZWMzKHMyMi52Myk7ICAv
LyA5LjAsIDEwLjAsIDExLjAKKyAgY29uc3QgdmVjMyB2MzIgPSB2ZWMzKHM3Ny5tMyk7ICAvLyAx
NS4wLCAwLCAwCisgIGNvbnN0IHZlYzMgdjMzID0gdmVjMyhzNzcubTNbMl0pOyAvLyAwLCAwLCAx
NS4wCisgIGNvbnN0IHZlYzMgdjM0ID0gdmVjMyhzNzcubTNbMl1bMF0pOyAgLy8gMCwwLDAKKwor
CisgIGNvbnN0IG1hdDQgbTQxID0gbWF0NCgxKTsgIC8vIDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwx
LDAsMCwwLDAsMCwxCisgIGNvbnN0IG1hdDQgbTQyID0gbWF0NCh2NDQsIHY0NCwgdjQ0LCB2NDQp
OyAgLy8gYWxsIDVzCisgIGNvbnN0IG1hdDQgbTQzID0gbWF0NCggdjQzLngpOyAgLy8gNCwwLDAs
MCwwLDQsMCwwLDAsMCwwLDQsMCwwLDAsMCwwLDQKKworICBjb25zdCB2ZWM0IHY0NyA9IHZlYzQo
bTQxWzBdWzBdKTsgIC8vIDEuMCwxLjAsMS4wLDEuMAorCisgIGNvbnN0IG1hdDQgbTQ1ID0gbWF0
NChzMjIudjMsIHY0NCwgdjQ1LCB2MzIsIDUwLCA1Mik7ICAvLzksMTAsMTEsNSw1LDUsNSwxMSwx
MSwxMSwxMSwxNS4wLCAwLDAsIDUwLjAsIDUyLjAKKyAgLy9jb25zdCBtYXQzIG0zMSA9IG1hdDMo
MSwgbWF0MigxKSwgMi4wLCB2ZWMzKDEpKTsgIC8vIDEuMCwgMSwwLDAsMSwyLDEsMSwxCisgIGNv
bnN0IHZlYzQgdjQ4ID0gdmVjNCh2MzFbMF0sIHYyMlsxXSwgdjQxWzBdLCB2NDNbM10pOyAgLy85
LCAxMSwgMiwgNAorICBjb25zdCB2ZWM0IHY0OSA9IHZlYzQoczIyLnYzLnh5LCBzMjIudjMuengp
OyAvLyA5LDEwLDExLDkKKyAgY29uc3QgdmVjNCB2NDEwID0gdmVjNCh2NDQueHksIHY0My56eCk7
ICAvLzUsNSw0LDQKKworICBjb25zdCB2ZWM0IHY0MTEgPSB2ZWM0KG00MlszXSk7ICAvLyA1LDUs
NSw1CisgIGNvbnN0IHZlYzQgdjQxMiA9IHZlYzQobTQzWzJdKTsgIC8vIDAsMCw0LDAKKworICBj
b25zdCB2ZWMyIHYyMyA9IHZlYzIobTQxKTsgIC8vIDEsMAorCisgIGNvbnN0IHZlYzIgdjI0ID0g
dmVjMigzMywgczExLmkpOyAgLy8gMzMsIDIKKworICBjb25zdCB2ZWM0IHY0MTMgPSB2ZWM0KHZl
YzIoMS4wLDIuMCksaXZlYzIoMy4wLDQuMCkpOyAgLy8gMSwyLDMsNAorICBjb25zdCBpdmVjNCBp
NDEgPSBpdmVjNCgxLjAsIDIuMCwgMy4wLCA0LjApOyAgLy8gMSwyLDMsNAorCisgIGNvbnN0IGl2
ZWM0IGk0MiA9IGl2ZWM0KDYpOyAgLy8gNiw2LDYsNgorICBjb25zdCBpdmVjNCBpNDMgPSBpdmVj
NCh2NDUpOyAgLy8xMSwxMSwxMSwxMQorCisgIGNvbnN0IGl2ZWM0IGk0NCA9IGl2ZWM0KHY0NFsw
XSk7ICAvLyA1LDUsNSw1CisgIGNvbnN0IGl2ZWM0IGk0NSA9IGl2ZWM0KHZlYzIoMjAsIDIxKSwg
dmVjMigyMiwgMjMpKTsgIC8vIDIwLCAyMSwgMjIsIDIzCisgIGNvbnN0IHZlYzQgdjQxNCA9IHZl
YzQoaXZlYzIoMjksIDMwKSwgaXZlYzIoMzEsIDMyKSk7IC8vIDI5LjAsIDMwLjAsIDMxLjAsIDMy
LjAKKyAgY29uc3QgaXZlYzQgaTQ2ID0gaXZlYzQoaXZlYzIoMi4wLDMuMCksIGl2ZWMzKDQuMCw1
LjAsNi4wKSk7CisgIGNvbnN0IGl2ZWM0IGk0NyA9IGl2ZWM0KGk0Nik7ICAvLyAyLDMsNCw1Cisg
IGNvbnN0IGl2ZWM0IGk0OCA9IGl2ZWM0KHY0MTQueCk7ICAvLyAyOSwyOSwyOSwyOQorCisgIGNv
bnN0IGl2ZWM0IGk0OSA9IGl2ZWM0KHZlYzQoMSkpOyAvLyAxLDEsMSwxCisgIGNvbnN0IGl2ZWM0
IGk0MTQgPSBpdmVjNChtYXQ0KDE0KSk7IC8vIDE0LCAwLDAsMCwKKyAgY29uc3QgaXZlYzQgaTQx
MCA9IGl2ZWM0KG00Myk7ICAvLyA0LDAsMCwwCisgIGNvbnN0IGl2ZWM0IGk0MTEgPSBpdmVjNCht
NDNbMV0pOyAgLy8gMCwgNCwgMCwgMAorICBjb25zdCBpdmVjNCBpNDEyID0gaXZlYzQoczc3Lmkp
OyAvLyAxMiwgMTIsIDEyLCAxMgorICBjb25zdCBpdmVjNCBpNDE2ID0gaXZlYzQoczIyLnYzLnp5
eCwgMTIpOyAgLy8gMTEsIDEwLCA5LCAxMgorCisgIGNvbnN0IHZlYzQgdjQxNSA9IHZlYzQoaXZl
YzIoMzUpLCBpdmVjMigzNikpOyAvLyAzNS4wLCAzNS4wICwzNi4wICwgMzYuMAorCisgIGNvbnN0
IGJ2ZWM0IGI0MSA9IGJ2ZWM0KDEuMCwgMi4wLCAzLjAsIDQuMCk7ICAvLyB0cnVlLHRydWUsdHJ1
ZSx0cnVlCisKKyAgY29uc3QgYnZlYzQgYjQyID0gYnZlYzQoNik7ICAvLyB0cnVlLHRydWUsdHJ1
ZSx0cnVlCisgIGNvbnN0IGJ2ZWM0IGI0MyA9IGJ2ZWM0KHY0NSk7ICAvL3RydWUsdHJ1ZSx0cnVl
LHRydWUKKworICBjb25zdCBidmVjNCBiNDQgPSBidmVjNCh2NDRbMF0pOyAgLy8gdHJ1ZSx0cnVl
LHRydWUsdHJ1ZQorICBjb25zdCBidmVjNCBiNDUgPSBidmVjNCh2ZWMyKDAsIDIxKSwgdmVjMigw
LCAxKSk7ICAvLyBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUKKyAgY29uc3QgYnZlYzQgYjQ2ID0g
YnZlYzQoaXZlYzIoMC4wLDMuMCksIGl2ZWMzKDAsNS4wLDYuMCkpOyAvLyBmYWxzZSwgdHJ1ZSwg
ZmFsc2UsIHRydWUKKyAgY29uc3QgYnZlYzQgYjQ3ID0gYnZlYzQoaTQ2KTsgIC8vIHRydWUsdHJ1
ZSx0cnVlLHRydWUKKyAgY29uc3QgYnZlYzQgYjQ4ID0gYnZlYzQodjQxNC54KTsgIC8vIHRydWUs
dHJ1ZSx0cnVlLHRydWUKKworICBjb25zdCBidmVjNCBiNDkgPSBidmVjNCh2ZWM0KDApKTsgLy8g
ZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UKKyAgY29uc3QgYnZlYzQgYjQxNCA9IGJ2ZWM0KG1hdDQo
MTQpKTsgLy8gdHJ1ZSwgZmFsc2UsZmFsc2UsZmFsc2UsCisgIGNvbnN0IGJ2ZWM0IGI0MTAgPSBi
dmVjNChtNDMpOyAgLy8gdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZQorICBjb25zdCBidmVjNCBiNDEx
ID0gYnZlYzQobTQzWzFdKTsgIC8vIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UKKyAgY29uc3Qg
YnZlYzQgYjQxMiA9IGJ2ZWM0KHM3Ny5pKSA7IC8vIHRydWUsIHRydWUsIHRydWUsIHRydWUKKwor
ICBjb25zdCB2ZWMzIHYzNSA9IHZlYzMoczExLnM0NC52NCk7ICAvLyA3LjAsOC4wLDkuMAorCisK
KyAgc3RydWN0IHMxMCB7CisgICAgIGludCBrOworICB9OworICBzdHJ1Y3QgczkgeworICAgICAg
IGZsb2F0IGY7CisgICAgICBzMTAgczEwMTsKKyAgIH07CisgIGNvbnN0IHN0cnVjdCBzOCB7Cisg
ICAgICBpbnQgaTsKKyAgICAgIHM5IHM5OTsKKyAgfSBzODggPSBzOCgxLCBzOSgyLjAsIHMxMCg1
KSkpOworCisgICBzdHJ1Y3Qgc3Q0IHsKKyAgICAgICBpbnQgbTsKKyAgICAgICB2ZWMzIHYzOwor
ICAgfTsKKyAgIHN0cnVjdCBzdDMgeworICAgICAgaW50IGs7CisgICAgICBpbnQgbDsKKyAgICAg
IHN0NCBzdDQ0OworICAgICB9OworICAgc3RydWN0IHN0MiB7CisgICAgICAgZmxvYXQgZjsKKyAg
ICAgICBzdDMgc3QzMzsKKyAgfTsKKyAgY29uc3Qgc3RydWN0IHN0MSB7CisgICAgICBpbnQgaTsK
KyAgICAgIHN0MiBzdDIyOworICB9IHN0MTEgPSBzdDEoMSwgc3QyKDIuMCwgc3QzKDUsIDYsIHN0
NCg3LCB2MzUpKSkpOworCisgIGNvbnN0IHZlYzQgdjQxNiA9IHZlYzQoczg4LnM5OS5zMTAxLmsp
OyAvLyBhbGwgNXMKKyAgY29uc3QgdmVjNCB2NDE3ID0gdmVjNChzdDExLnN0MjIuc3QzMy5zdDQ0
LnYzLCBzODguczk5LnMxMDEuayk7ICAvLyA3LjAsIDguMCwgOS4wLCA1LjAKKyAgY29uc3QgdmVj
MyB2MzYgPSB2ZWMzKHMxMS5zcy52Myk7ICAvLyA5LCAxMCwgMTEKKworICB2ZWM0IHY0MTggPSB2
NDE2OyAgLy8gYWxsIDVzCisgIGNvbnN0IGZsb2F0IGYxID0gdjQxNlswXTsgIC8vIDUuMAorICB2
ZWM0IHY0MTk7CisgIHY0MTkueHl6ID0gc3QxMS5zdDIyLnN0MzMuc3Q0NC52MzsKKyAgbWF0NCBt
NDc7CisKKyAgc3RydWN0IHN0cnVjdDIgeworICAgICAgaW50IGs7CisgIH0gc3RydWN0MjIgPSBz
dHJ1Y3QyKDQpOworCisgIGNvbnN0IHN0cnVjdCBzdHJ1Y3QxIHsKKyAgICAgICBzdHJ1Y3QyIHNz
dDI7CisgIH0gc3RydWN0MTEgPSBzdHJ1Y3QxKHN0cnVjdDIoMikpOworCisgIGNvbnN0IHZlYzQg
djQyMCA9IHY0MTc7ICAvLyA3LjAsIDguMCwgOS4wICwgNS4wCisKKyAgdmVjNCB2NDIxID0gdmVj
NChzMTEubSk7ICAvLyA1LCAwLCAwLCAwCisgIHZlYzQgdjQyMiA9IHY0MjA7ICAvLyA3LjAsIDgu
MCwgOS4wICwgNS4wCisKKyAgdmVjNCB2NDIzID0gczExLnM0NC52NDsgICAvLyA3LCA4LCA5LCAx
MAorCisgIGludCBpbnQxID0gc3MuaSAqIHNzLmk7ICAvLyAxNgorICBpbnQgaW50MiA9IHNzLmkg
KiAyOyAgLy8gOAorCisgIGNvbnN0IHZlYzQgdjQyNSA9IHY0MjAgKiB2NDIwOyAgLy8gNDksIDY0
LCA4MSwgMjUKKyAgY29uc3QgdmVjNCB2NDI2ID0gczExLm0gKiBzMTEuczQ0LnY0OyAvLyAzNSwg
NDAsIDQ1LCA1MAorICBjb25zdCB2ZWM0IHY0MjcgPSBzMTEuczQ0LnY0ICogczExLm07IC8vIDM1
LCA0MCwgNDUsIDUwCisKKyAgZmxvYXQgZmYgPSAyLjA7CisgIGNvbnN0IGZsb2F0IGZmQ29uc3Qg
PSAyLjA7CisKKyAgdmVjNCB2NDI4ID0gZmYgKyB2NDI1OyAgLy8gb3JkaW5hcnkgYXNzaWdubWVu
dCB3aXRoIGJpbmFyeSBub2RlCisgIHZlYzMgdjM5ID0gdmVjMyg1KTsKKworICB2ZWMzIHYzMTAg
PSBzMjIudjMgKyB2Mzk7ICAvLzE0LCAxNSwgMTYKKworICBjb25zdCB2ZWM0IHY0MjkgPSB2NDIw
ICsgdjQyMDsgLy8gMTQsIDE2LCAxOCwgMTAKKyAgY29uc3QgdmVjNCB2NDMwID0gdjQyMCArIGZm
Q29uc3Q7ICAvLyA5LCAxMCwgMTEsNworICBjb25zdCB2ZWM0IHY0MzIgPSAgdjQyOSArIHMxMS5m
OyAgLy8gMTgsIDIwLCAyMiwgMTQKKworICBjb25zdCB2ZWM0IHY0MzMgPSB2ZWM0KHMxMS5mICsg
czExLmYpOyAgLy8gYWxsIDhzCisgIGNvbnN0IHZlYzQgdjQzNCA9IHY0MzIgKyB2ZWM0KDMpOyAg
Ly8gMjEsIDIzLCAyNSwgMTcKKyAgY29uc3QgbWF0NCBtNDggPSBzMTEubSArIGZmQ29uc3Q7ICAv
LyBkaWFnb25hbCA3cyBhbmQgb3RoZXJzIDJzCisgIGNvbnN0IG1hdDQgbTQ5ID0gbWF0NChmZkNv
bnN0ICsgczExLmYpOyAgLy8gZGlhZ29uYWwgNnMKKyAgY29uc3QgbWF0NCBtNDEwID0gbTQ4ICsg
czExLmY7ICAvLyBkaWFnb25hbCAxMSwgb3RoZXJzIC0gNnMKKworICBjb25zdCBtYXQ0IG00MTMg
PSBtNDggKyBtNDggOyAvLyBkaWFnb25hbCAxNCwgb3RoZXJzIDQKKyAgY29uc3QgbWF0NCBtNDE0
ID0gbTQxMyArIGZmQ29uc3QgOyAvLyBkaWFnb25hbCAxNiwgb3RoZXJzIDYKKworICBjb25zdCB2
ZWM0IHY0MzUgPSBmZkNvbnN0ICsgdjQyMDsgIC8vIDksIDEwLCAxMSw3CisgIGNvbnN0IHZlYzQg
djQzNiA9ICBzMTEuZiArIHY0Mjk7ICAvLyAxOCwgMjAsIDIyLCAxNAorICBjb25zdCBtYXQ0IG00
MTUgPSBmZkNvbnN0ICsgczExLm07ICAvLyBkaWFnb25hbCA3cyBhbmQgb3RoZXJzIDJzCisgIGNv
bnN0IG1hdDQgbTQxNiA9IHMxMS5mICsgbTQ4IDsgIC8vIGRpYWdvbmFsIDExLCBvdGhlcnMgLSA2
cworICBjb25zdCBtYXQ0IG00MTcgPSBmZkNvbnN0ICsgbTQxMyA7IC8vIGRpYWdvbmFsIDE2LCBv
dGhlcnMgNgorCisgIGNvbnN0IHZlYzQgdjQzNyA9IHY0MjAgLSB2NDIwOyAvLyAwLCAwLCAwLCAw
CisgIGNvbnN0IHZlYzQgdjQzOCA9IHY0MjAgLSBmZkNvbnN0OyAgLy8gNSwgNiwgNywzCisgIGNv
bnN0IHZlYzQgdjQ0MCA9ICB2NDI5IC0gczExLmY7ICAvLyAxMCwgMTIsIDE0LCA2CisKKyAgY29u
c3QgdmVjNCB2NDQxID0gdmVjNChzMTEuZiAtIHMxMS5mKTsgIC8vIGFsbCAwcworICBjb25zdCB2
ZWM0IHY0NDIgPSB2NDMyIC0gdmVjNCgzKTsgIC8vIDE1LCAxNywgMTksIDExCisgIGNvbnN0IG1h
dDQgbTQxOCA9IHMxMS5tIC0gZmZDb25zdDsgIC8vIGRpYWdvbmFsIDNzIGFuZCBvdGhlcnMgLTJz
CisgIGNvbnN0IG1hdDQgbTQxOSA9IG1hdDQoZmZDb25zdCAtIHMxMS5mKTsgIC8vIGRpYWdvbmFs
IC0+IC0ycworICBjb25zdCBtYXQ0IG00MjAgPSBtNDggLSBzMTEuZjsgIC8vIGRpYWdvbmFsIDMs
IG90aGVycyAtPiAtMgorCisgIGNvbnN0IG1hdDQgbTQyMyA9IG00OCAtIG00OCA7IC8vIEFsbCAw
cworICBjb25zdCBtYXQ0IG00MjQgPSBtNDEzIC0gZmZDb25zdCA7IC8vIGRpYWdvbmFsIDEyLCBv
dGhlcnMgMgorCisgIGNvbnN0IHZlYzQgdjQ0MyA9IGZmQ29uc3QgLSB2NDIwOyAgLy8gLTUsIC02
LCAtNywtMworICBjb25zdCB2ZWM0IHY0NDQgPSAgczExLmYgLSB2NDI5OyAgLy8gLTEwLCAtMTIs
IC0xNCwgLTYKKyAgY29uc3QgbWF0NCBtNDI1ID0gZmZDb25zdCAtIHMxMS5tOyAgLy8gZGlhZ29u
YWwgLTNzIGFuZCBvdGhlcnMgMnMKKyAgY29uc3QgbWF0NCBtNDI2ID0gczExLmYgLSBtNDggOyAg
Ly8gZGlhZ29uYWwgLTMsIG90aGVycyAgMnMKKyAgY29uc3QgbWF0NCBtNDI3ID0gZmZDb25zdCAt
IG00MTMgOyAvLyBkaWFnb25hbCAtMTIsIG90aGVycyAtMgorCisgIGNvbnN0IHZlYzQgdjQ0NSA9
IHY0MjAgKiB2NDIwOyAvLyA0OSwgNjQsIDgxLCAyNQorICBjb25zdCB2ZWM0IHY0NDYgPSB2NDIw
ICogZmZDb25zdDsgIC8vIDE0LCAxNiwgMTgsMTAKKyAgY29uc3QgdmVjNCB2NDQ4ID0gIHY0Mjkg
KiBzMTEuZjsgIC8vIDU2LCA0NiwgNzIsIDQwCisKKyAgY29uc3QgdmVjNCB2NDQ5ID0gdmVjNChz
MTEuZiAqIHMxMS5mKTsgIC8vIGFsbCAxNgorICBjb25zdCB2ZWM0IHY0NTAgPSB2NDMyICogdmVj
NCgzKTsgIC8vIDU0LCA2MCwgNjYsIDQyCisgIGNvbnN0IG1hdDQgbTQyOCA9IHMxMS5tICogZmZD
b25zdDsgIC8vIGRpYWdvbmFsIDEwIGFuZCBvdGhlcnMgMHMKKyAgY29uc3QgbWF0NCBtNDI5ID0g
bWF0NChmZkNvbnN0ICogczExLmYpOyAgLy8gZGlhZ29uYWwgOAorICBjb25zdCBtYXQ0IG00MzAg
PSBtNDggKiBzMTEuZjsgIC8vIGRpYWdvbmFsIDI4LCBvdGhlcnMgOAorCisgIGNvbnN0IG1hdDQg
bTQzMyA9IG00OCAqIG00OCA7IC8vIGRpYWdvbmFsIDYxLCBvdGhlcnMgMzYKKyAgY29uc3QgbWF0
NCBtNDM0ID0gbTQxMyAqIGZmQ29uc3QgOyAvLyBkaWFnb25hbCAyOCwgb3RoZXJzIDgKKworICBj
b25zdCB2ZWM0IHY0NTEgPSBmZkNvbnN0ICogdjQyMDsgIC8vIDE0LCAxNiwgMTgsMTAKKyAgY29u
c3QgdmVjNCB2NDUyID0gIHMxMS5mICogdjQyOTsgIC8vIDU2LCA2NCwgNzIsIDQwCisgIGNvbnN0
IG1hdDQgbTQzNSA9IGZmQ29uc3QgKiBzMTEubTsgIC8vICBkaWFnb25hbCAxMCBhbmQgb3RoZXJz
IDBzCisgIGNvbnN0IG1hdDQgbTQzNiA9IHMxMS5mICogbTQ4IDsgIC8vIGRpYWdvbmFsIDI4LCBv
dGhlcnMgLSA4cworICBjb25zdCBtYXQ0IG00MzcgPSBmZkNvbnN0ICogbTQxMyA7IC8vIGRpYWdv
bmFsIDI4LCBvdGhlcnMgOAorCisgIGNvbnN0IHZlYzQgdjQ1MyA9IHY0MjAgLyB2NDIwOyAvLyAx
LCAxLCAxLCAxCisgIGNvbnN0IHZlYzQgdjQ1NCA9IHY0MjAgLyBmZkNvbnN0OyAgLy8gMy41LCA0
LCA0LjUsMi41CisKKyAgY29uc3QgdmVjNCB2NDU3ID0gdmVjNChzMTEuZiAvIHMxMS5mKTsgIC8v
IGFsbCAxcworICBjb25zdCB2ZWM0IHY0NTggPSB2NDMyIC8gdmVjNCgzKTsgIC8vIDYsIDYuNjY2
NiwgNy4zMzMsIDQuNjY2NgorICBjb25zdCBtYXQ0IG00MzggPSBzMTEubSAvIGZmQ29uc3Q7ICAv
LyBkaWFnb25hbCAyLjUgYW5kIG90aGVycyAwcworICBjb25zdCBtYXQ0IG00MzkgPSBtYXQ0KGZm
Q29uc3QgLyBzMTEuZik7ICAvLyBkaWFnb25hbCAwLjVzCisgIGNvbnN0IG1hdDQgbTQ0MCA9IG00
OCAvIHMxMS5mOyAgLy8gZGlhZ29uYWwgMS43NSwgb3RoZXJzIDAuNXMKKworICBjb25zdCBtYXQ0
IG00NDMgPSBtNDggLyBtNDggOyAvLyBBbGwgMXMKKyAgY29uc3QgbWF0NCBtNDQ0ID0gbTQxMyAv
IGZmQ29uc3QgOyAvLyBkaWFnb25hbCA3LCBvdGhlcnMgMgorCisgIGNvbnN0IHZlYzQgdjQ1OSA9
IGZmQ29uc3QgLyB2NDIwOyAgLy8gLjI4NTcgLCAuMjUsIC4yMiwgLjQKKyAgY29uc3QgdmVjNCB2
NDYwID0gIHMxMS5mIC8gdjQyOTsgIC8vIC4yODU3LCAuMjUsIC4yMiwgLjQKKyAgLy9jb25zdCBt
YXQ0IG00NDUgPSBmZkNvbnN0IC8gczExLm07ICAvLyBkaXZpZGUgYnkgemVybyBlcnJvcgorICBj
b25zdCBtYXQ0IG00NDYgPSBzMTEuZiAvIG00OCA7ICAvLyBkaWFnb25hbCAuNTcxLCAgb3RoZXJz
IDIKKyAgY29uc3QgbWF0NCBtNDQ3ID0gZmZDb25zdCAvIG00MTMgOyAvLyBkaWFnb25hbCAuMTQy
OCwgb3RoZXJzIDAuNQorCisgIGNvbnN0IHZlYzQgdjQ2MSA9IHY0NTMgKiBtNDI4OyAvLyAxMCwg
MTAsIDEwLCAxMAorICBjb25zdCB2ZWM0IHY0NjIgPSB2NDUzICogbTQzNzsgLy8gNTIsIDUyLCA1
MiwgNTIKKyAgY29uc3QgdmVjNCB2NDYzID0gbTQyOCAqIHY0NTE7IC8vIDE0MCwgMTYwLCAxODAs
IDEwMAorICBjb25zdCB2ZWM0IHY0NjQgPSBtNDM3ICogdjQ1MTsgLy8gNzQ0LCA3ODQsIDgyNCwg
NjY0CisKKyAgaW50IGlpID0gMjsKKyAgY29uc3QgaW50IGlpQ29uc3QgPSAyOworCisgIGNvbnN0
IGl2ZWM0IGk0MjAgPSBpdmVjNCggNyw4LDksNSk7ICAvLyA3LCA4LCA5LCA1CisKKyAgY29uc3Qg
aXZlYzQgaTQyOSA9IGk0MjAgKyBpNDIwOyAvLyAxNCwgMTYsIDE4LCAxMAorICBjb25zdCBpdmVj
NCBpNDMwID0gaTQyMCArIGlpQ29uc3Q7ICAvLyA5LCAxMCwgMTEsNworICBjb25zdCBpdmVjNCBp
NDMyID0gIGk0MjkgKyBzcy5pOyAgLy8gMTgsIDIwLCAyMiwgMTQKKworICBjb25zdCBpdmVjNCBp
NDMzID0gaXZlYzQoc3MuaSArIHNzLmkpOyAgLy8gYWxsIDhzCisKKyAgY29uc3QgaXZlYzQgaTQz
NSA9IGlpQ29uc3QgKyBpNDIwOyAgLy8gOSwgMTAsIDExLDcKKyAgY29uc3QgaXZlYzQgaTQzNiA9
ICBzcy5pICsgaTQyOTsgIC8vIDE4LCAyMCwgMjIsIDE0CisKKyAgY29uc3QgaXZlYzQgaTQzNyA9
IGk0MjAgLSBpNDIwOyAvLyAwLCAwLCAwLCAwCisgIGNvbnN0IGl2ZWM0IGk0MzggPSBpNDIwIC0g
aWlDb25zdDsgIC8vIDUsIDYsIDcsMworICBjb25zdCBpdmVjNCBpNDQwID0gIGk0MjkgLSBzcy5p
OyAgLy8gMTAsIDEyLCAxNCwgNgorCisgIGNvbnN0IGl2ZWM0IGk0NDEgPSBpdmVjNChzcy5pIC0g
c3MuaSk7ICAvLyBhbGwgMHMKKworICBjb25zdCBpdmVjNCBpNDQzID0gaWlDb25zdCAtIGk0MjA7
ICAvLyAtNSwgLTYsIC03LC0zCisgIGNvbnN0IGl2ZWM0IGk0NDQgPSAgc3MuaSAtIGk0Mjk7ICAv
LyAtMTAsIC0xMiwgLTE0LCAtNgorCisgIGNvbnN0IGl2ZWM0IGk0NDUgPSBpNDIwICogaTQyMDsg
Ly8gNDksIDY0LCA4MSwgMjUKKyAgY29uc3QgaXZlYzQgaTQ0NiA9IGk0MjAgKiBpaUNvbnN0OyAg
Ly8gMTQsIDE2LCAxOCwxMAorICBjb25zdCBpdmVjNCBpNDQ4ID0gIGk0MjkgKiBzcy5pOyAgLy8g
NTYsIDY0LCA3MiwgNDAKKworICBjb25zdCBpdmVjNCBpNDQ5ID0gaXZlYzQoc3MuaSAqIHNzLmkp
OyAgLy8gYWxsIDE2CisKKyAgY29uc3QgaXZlYzQgaTQ1MSA9IGlpQ29uc3QgKiBpNDIwOyAgLy8g
MTQsIDE2LCAxOCwxMAorICBjb25zdCBpdmVjNCBpNDUyID0gIHNzLmkgKiBpNDI5OyAgLy8gNTYs
IDY0LCA3MiwgNDAKKworICBjb25zdCBpdmVjNCBpNDUzID0gaTQyMCAvIGk0MjA7IC8vIDEsIDEs
IDEsIDEKKyAgY29uc3QgaXZlYzQgaTQ1NCA9IGk0MjAgLyBpaUNvbnN0OyAgLy8gMywgNCwgNCwy
CisgIGNvbnN0IGl2ZWM0IGk0NTYgPSAgaTQyOSAvIHNzLmk7ICAvLyAzLCA0LCA0LCAyCisKKyAg
Y29uc3QgaXZlYzQgaTQ1NyA9IGl2ZWM0KHNzLmkgLyBzcy5pKTsgIC8vIGFsbCAxcworCisgIGNv
bnN0IGl2ZWM0IGk0NTkgPSBpaUNvbnN0IC8gaTQyMDsgIC8vIDAgLCAwLCAwLDAKKyAgY29uc3Qg
aXZlYzQgaTQ2MCA9ICBzcy5pIC8gaTQyOTsgIC8vIDAsIDAsIDAsMAorCisgIGNvbnN0IGJ2ZWM0
IGI0MjQgPSBidmVjNChzMjIuYnY0KTsKKworICBjb25zdCBib29sIGIxID0gczIyLmJ2NCA9PSBi
NDI0OyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGIyID0gaTQyMCA9PSBpNDIwOyAgLy8gdHJ1ZQor
ICBjb25zdCBib29sIGIzID0gaTQyMCA9PSBpNDQ1OyAgLy8gZmFsc2UKKyAgY29uc3QgYm9vbCBi
NCA9IHY0MjAgPT0gdjQyMDsgIC8vIHRydWUKKyAgY29uc3QgYm9vbCBiNSA9IG00MzAgPT0gbTQz
NDsgLy8gdHJ1ZQorCisgIGNvbnN0IHZlYzQgdjQ2NSA9IC12NDIwOyAvLyAtNywgLTgsIC05LCAt
NQorICBjb25zdCBtYXQ0IG00NDggPSAtbTQ0NyA7IC8vIGRpYWdvbmFsIC0uMTQyOCwgb3RoZXJz
IC0wLjUKKyAgY29uc3QgaXZlYzQgaTQ2NSA9IC1pNDU2IDsgIC8vIC0zLCAtNCwgLTQsLTIKKwor
ICBjb25zdCBib29sIGI3ID0gczIyID09IHMyMjsKKworICBjb25zdCB2ZWM0IHY0NjYgPSB2NDMy
ICsgdmVjNCgzLDQsNSw2KTsgIC8vIDIxLCAyNCwgMjcsIDIwCisgIGNvbnN0IHZlYzQgdjQ2NyA9
IHY0MzIgKyB2ZWM0KHZlYzIoMyw0KSw1LDYpOyAgLy8gMjEsIDI0LCAyNywgMjAKKyAgY29uc3Qg
dmVjNCB2NDY4ID0gdjQzMiArIHZlYzQoMywgdmVjMig0LCA1KSx2ZWMyKDYsNykpOyAgLy8gMjEs
IDI0LCAyNywgMjAKKyAgY29uc3QgdmVjNCB2NDY5ID0gdmVjNCh2NDY4KSArIHZlYzQoMykgKyB2
NDY4ICsgdmVjNChzNzcubTNbMl1bMF0pOyAvLyA0NSwgNTEsIDU3LCA0MworCisgIGNvbnN0IGJv
b2wgYjggPSBzcyA9PSBzczsgIC8vIHRydWUKKworICBzdHJ1Y3Qgc3Q2IHsKKyAgICAgICB2ZWMz
IHY7CisgIH07CisKKyAgc3RydWN0IHN0NSB7CisgICAgICBpbnQgaTsKKyAgICAgIGZsb2F0IGY7
CisgICAgICBzdDYgIHN0NjY7CisgIH0gc3Q1NTsKKworICBjb25zdCBzdDUgc3Q1NTEgPSBzdDUo
MiwgNC4wLCBzdDYodmVjMyg3KSkpOworICBjb25zdCBzdDUgc3Q1NTIgPSBzdDUoMiwgNC4wLCBz
dDYodmVjMyg3KSkpOworCisgIGNvbnN0IGJvb2wgYjEwID0gc3Q1NTEgPT0gc3Q1NTI7ICAvLyB0
cnVlCisKKyAgY29uc3QgYm9vbCBiMTEgPSBzdDU1MS5zdDY2ID09IHN0NTUyLnN0NjY7ICAvLyB0
cnVlCisKKyAgY29uc3Qgc3Q1IHN0NTUzID0gc3Q1KDIsIDQuMCwgc3Q2KHZlYzMoOCkpKTsKKwor
ICBjb25zdCBib29sIGIxMiA9IHN0NTUxLnN0NjYgPT0gc3Q1NTMuc3Q2NjsgIC8vIGZhbHNlCisg
IGNvbnN0IGJvb2wgYjEzID0gc3Q1NTEgPT0gc3Q1NTM7ICAvLyBmYWxzZQorCisgIGNvbnN0IGJv
b2wgYjE0ID0gc3Q1NTEgIT0gc3Q1NTI7ICAvLyBmYWxzZQorICBjb25zdCBib29sIGIxNSA9IHN0
NTUxLnN0NjYgIT0gc3Q1NTIuc3Q2NjsgIC8vIGZhbHNlCisgIGNvbnN0IGJvb2wgYjE2ID0gc3Q1
NTEuc3Q2NiAhPSBzdDU1My5zdDY2OyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGIxNyA9IHN0NTUx
ICE9IHN0NTUzOyAgLy8gdHJ1ZQorCisgIGNvbnN0IGJvb2wgYjE4ID0gczIyLmJ2NCAhPSBiNDI0
OyAgLy8gZmFsc2UKKyAgY29uc3QgYm9vbCBiMTkgPSBpNDIwICE9IGk0MjA7ICAvLyBmYWxzZQor
ICBjb25zdCBib29sIGIyMCA9IGk0MjAgIT0gaTQ0NTsgIC8vIHRydWUKKyAgY29uc3QgYm9vbCBi
MjEgPSB2NDIwICE9IHY0MjA7ICAvLyBmYWxzZQorICBjb25zdCBib29sIGIyMiA9IG00MzAgIT0g
bTQzNDsgLy8gZmFsc2UKKworICBjb25zdCBpbnQgaW50MTAgPSBpNDIwLnh5Lnk7ICAvLyA4CisK
KyAgLy9mbG9hdCBmID0gdjQ3MC54OworCisKKworICBjb25zdCBpbnQgaW50MTMgPSAtc3MuaTsK
KworICBjb25zdCB2ZWM0IHY0NzQgPSAtdmVjNCgwLjUpOworCisgIGludCBpbnQxNCA9IGlpKys7
CisgIGludCBhcnJheVszXTsKKyAgYXJyYXlbMl07CisKKyAgY29uc3QgdmVjNCB2NDc4ID0gdjQ2
NiAqIDIuMDsgLy8gNDIsIDQ4LCA1NCwgNDAKKworICBjb25zdCB2ZWM0IHY0NzkgPSBpaUNvbnN0
ID4gMSA/IHY0NjYgOiB2NDc4OyAvLyAyMSwgMjQsIDI3LCAyMAorCisgIGNvbnN0IHN0cnVjdCBz
dDcgeworICAgICAgIGludCBpOworICAgICAgIGJvb2wgYjsKKyAgfSBzdDc3ID0gc3Q3KHNzLmks
IHRydWUpOworCisgIGNvbnN0IHZlYzQgdjQ4MSA9IHZlYzQoc3Q3Ny5pKTsKKworICBjb25zdCBz
dHJ1Y3Qgc3Q4IHsKKyAgICAgIGludCBpOworICB9IDsKKworCisgIGNvbnN0IHN0cnVjdCBzdDkg
eworICAgICAgczIgc3M7CisgIH0gc3Q5OSA9IHN0OShzMjIpOworCisgIGNvbnN0IHZlYzMgdjMx
MiA9IHN0OTkuc3MudjM7ICAgLy8gOSwgMTAsIDExCisgIGNvbnN0IHZlYzQgdjQ4MiA9IG1hdDQo
MSlbMF07ICAvLyAxLCAwLCAwICwgMAorCisgIGNvbnN0IG1hdDQgbTQ1MCA9IG1hdDQoc3MuaSk7
ICAvLyBtYXQ0KDQpCisgIGNvbnN0IG1hdDQgbTQ1MSA9IG1hdDQoYjIwKTsgICAvLyBtYXQ0KDEp
CisgIGNvbnN0IG1hdDQgbTQ1MiA9IG1hdDQoc3Q3Ny5iKTsgLy8gbWF0NCgxKQorCisgIGNvbnN0
IHZlYzQgdjQ4MyA9IHZlYzQodmVjNCgzKS54KTsgIC8vIDMsMywzLDMKKyAgY29uc3QgbWF0NCBt
NDUzID0gbWF0NCh2ZWM0KDUpLngpOyAgLy8gbWF0NSg1KQorCisgIGNvbnN0IHZlYzQgdjQ4NCA9
IHZlYzQobWF0NCg2KVsxXSk7ICAvLyAwLDYsMCwwCisgIGNvbnN0IG1hdDQgbTQ1NCA9IG1hdDQo
bWF0NCg2KVsxXVsxXSk7ICAvLyBtYXQ0KDYpCisKKyAgY29uc3QgdmVjNCB2NDg1ID0gdmVjNChz
dDcoOCwgdHJ1ZSkuYik7ICAvLyAxLDEsMSwxCisKKyAgY29uc3QgdmVjNCB2NDg3ID0gdmVjNCh2
ZWM0KDEyLCAxMywgMTQsIDE1KS5hYiwgMTIsIDE0KTsKKworICBpbnQgaTIwID0gc3MuaTsKKyAg
Y29uc3QgdmVjNCB2NDg5ID0gLXZlYzQoNyw4LDksNSk7IC8vIC03LCAtOCwgLTksIC01CisKKyAg
Z2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdENvbnN0cnVjdF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RydWN0
X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ5YjM3OGU1NWRmOTJhZTQ5YzgwYjllODE2OTUxOTUy
YWFlYTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0cnVj
dF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwzNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworc3RydWN0IHMgeworICAgIGZsb2F0IGY7Cit9IHMxID0gcygx
LjApOworCitzdHJ1Y3QgczMgeworICAgaW50IGk7Cit9IHMzSW5zdDsKKworc3RydWN0IHMyIHsK
KyAgICBmbG9hdCBmOworICAgIHMzIHMzSW5zdDsKK30gczJJbnN0ID0gczIoMS4wLCBzMygxKSk7
CisKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMyBpID0gdmVjMyg1LjAsIDQuMCwgaXZlYzIoMi4w
LCAxLjApKTsKKyAgICBpdmVjNCB2MiA9IGl2ZWM0KDEuMCk7CisgICAgdmVjNCB2NCA9IHZlYzQo
djIpOworICAgIGJ2ZWM0IHY1ID0gYnZlYzQodjIpOworICAgIHZlYzMgdjYgPSB2ZWMzKHY1KTsK
KyAgICB2ZWMzIHYgPSB2ZWMzKDIsIDIuMCwgMSk7CisgICAgdmVjMyB2MSA9IHZlYzMoMS4yLCB2
KTsKKworICAgIG1hdDMgbTEgPSBtYXQzKHYsdix2KTsKKyAgICBtYXQyIG0yID0gbWF0Mih2LCB2
Ni54KTsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLjApOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY3
ZWI2YTAyMmVkYzExMTgyZjU1NTAyYzFlY2VlZWE3ZDhmMzM1YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDI2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjdmVyc2lvbiAxMDAKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogZW5hYmxlICAvLyB3YXJu
aW5nIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGRp
c2FibGUgIC8vIHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0
ZW5zaW9uZm9vIDogd2FybiAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorCisj
ZXh0ZW5zaW9uIGFsbCA6IGRpc2FibGUgLy8gbm8gZXJyb3IgaW4gdGhlIHByb2dyYW0KKyNleHRl
bnNpb24gYWxsIDogd2FybiAvLyBubyBlcnJvciBpbiB0aGUgcHJvZ3JhbQorCisjZXh0ZW5zaW9u
IGV4dGVuc2lvbmZvbyA6IGVuYWJsZSAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRl
ZAorI2V4dGVuc2lvbiBleHRlbnNpb25mb28gOiBkaXNhYmxlICAvLyB3YXJuaW5nIGV4dGVuc2lv
biBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IHdhcm4gIC8vIHdhcm5p
bmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRkNDk3ZDQz
MzIxODYwMWNmMjQ2NDc4N2RmYTY5ODA3ZDczZjM2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNleHRl
bnNpb24gYWxsIDogZGlzYWJsZSAvLyBubyBlcnJvciBpbiB0aGUgcHJvZ3JhbQorI2V4dGVuc2lv
biBhbGwgOiB3YXJuIC8vIG5vIGVycm9yIGluIHRoZSBwcm9ncmFtCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmUwMTNlODVmODkxNDlkNWJiYmMxNzk5MjhiYzRjZjZhYmJkNzU4YzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGVuYWJsZSAgLy8gd2FybmluZyBleHRl
bnNpb24gbm90IHN1cHBvcnRlZAorI2V4dGVuc2lvbiBleHRlbnNpb25mb28gOiBkaXNhYmxlICAv
LyB3YXJuaW5nIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZv
byA6IHdhcm4gIC8vIHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdWxsX3ZlcnQudmVydCBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NvcnJlY3RGdWxsX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGYxNGFkMjdiZDFi
YmQ0NzA4NjE2ZTJhMzQ3N2ZiY2I3ZTUxMzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdEZ1bGxfdmVydC52ZXJ0CkBAIC0wLDAgKzEsNjU0IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCitzdHJ1Y3QgZ3RmX01hdGVyaWFs
UGFyYW1ldGVycworewordmVjNCBlbWlzc2lvbjsKK3ZlYzQgYW1iaWVudDsKK3ZlYzQgZGlmZnVz
ZTsKK3ZlYzQgc3BlY3VsYXI7CitmbG9hdCBzaGluaW5lc3M7Cit9Oworc3RydWN0IGd0Zl9MaWdo
dFNvdXJjZVBhcmFtZXRlcnMKK3sKK3ZlYzQgYW1iaWVudDsKK3ZlYzQgZGlmZnVzZTsKK3ZlYzQg
c3BlY3VsYXI7Cit2ZWM0IHBvc2l0aW9uOwordmVjNCBoYWxmVmVjdG9yOwordmVjMyBzcG90RGly
ZWN0aW9uOworZmxvYXQgc3BvdEV4cG9uZW50OworZmxvYXQgc3BvdEN1dG9mZjsKK2Zsb2F0IHNw
b3RDb3NDdXRvZmY7CitmbG9hdCBjb25zdGFudEF0dGVudWF0aW9uOworZmxvYXQgbGluZWFyQXR0
ZW51YXRpb247CitmbG9hdCBxdWFkcmF0aWNBdHRlbnVhdGlvbjsKK307CitzdHJ1Y3QgZ3RmX1Bv
aW50UGFyYW1ldGVycyB7CitmbG9hdCBzaXplOworZmxvYXQgc2l6ZU1pbjsKK2Zsb2F0IHNpemVN
YXg7CitmbG9hdCBmYWRlVGhyZXNob2xkU2l6ZTsKK2Zsb2F0IGRpc3RhbmNlQ29uc3RhbnRBdHRl
bnVhdGlvbjsKK2Zsb2F0IGRpc3RhbmNlTGluZWFyQXR0ZW51YXRpb247CitmbG9hdCBkaXN0YW5j
ZVF1YWRyYXRpY0F0dGVudWF0aW9uOworfTsKK3N0cnVjdCBndGZfRGVwdGhSYW5nZVBhcmFtZXRl
cnMgeworZmxvYXQgbmVhcjsKK2Zsb2F0IGZhcjsKK2Zsb2F0IGRpZmY7Cit9Oworc3RydWN0IGd0
Zl9MaWdodE1vZGVsUGFyYW1ldGVycyB7Cit2ZWM0IGFtYmllbnQ7Cit9Oworc3RydWN0IGd0Zl9M
aWdodE1vZGVsUHJvZHVjdHMgewordmVjNCBzY2VuZUNvbG9yOworfTsKK3N0cnVjdCBndGZfTGln
aHRQcm9kdWN0cyB7Cit2ZWM0IGFtYmllbnQ7Cit2ZWM0IGRpZmZ1c2U7Cit2ZWM0IHNwZWN1bGFy
OworfTsKK3N0cnVjdCBndGZfRm9nUGFyYW1ldGVycyB7Cit2ZWM0IGNvbG9yOworZmxvYXQgZGVu
c2l0eTsKK2Zsb2F0IHN0YXJ0OworZmxvYXQgZW5kOworZmxvYXQgc2NhbGU7Cit9OwordW5pZm9y
bSBpbnQgZ3RmX01heEZyYWdtZW50VW5pZm9ybUNvbXBvbmVudHM7Cit1bmlmb3JtIGludCBndGZf
TWF4VmVydGV4VW5pZm9ybUNvbXBvbmVudHM7Cit1bmlmb3JtIGludCBndGZfTWF4VmVydGV4VGV4
dHVyZUltYWdlVW5pdHM7Cit1bmlmb3JtIGludCBndGZfTWF4TGlnaHRzOwordW5pZm9ybSBpbnQg
Z3RmX01heENsaXBQbGFuZXM7Cit1bmlmb3JtIGludCBndGZfTWF4Q29tYmluZWRUZXh0dXJlSW1h
Z2VVbml0czsKK3VuaWZvcm0gaW50IGd0Zl9NYXhUZXh0dXJlQ29vcmRzOwordW5pZm9ybSBpbnQg
Z3RmX01heFZlcnRleEF0dHJpYnM7Cit1bmlmb3JtIGludCBndGZfTWF4VmFyeWluZ0Zsb2F0czsK
K3VuaWZvcm0gaW50IGd0Zl9NYXhUZXh0dXJlVW5pdHM7Cit1bmlmb3JtIGludCBndGZfTWF4RHJh
d0J1ZmZlcnM7Cit1bmlmb3JtIGludCBndGZfTWF4VGV4dHVyZUltYWdlVW5pdHM7Cit1bmlmb3Jt
IGd0Zl9MaWdodFByb2R1Y3RzIGd0Zl9Gcm9udExpZ2h0UHJvZHVjdFs4XTsKK3VuaWZvcm0gZ3Rm
X0xpZ2h0TW9kZWxQcm9kdWN0cyBndGZfRnJvbnRMaWdodE1vZGVsUHJvZHVjdDsKK3VuaWZvcm0g
Z3RmX0RlcHRoUmFuZ2VQYXJhbWV0ZXJzIGd0Zl9EZXB0aFJhbmdlOwordW5pZm9ybSBndGZfRm9n
UGFyYW1ldGVycyBndGZfRm9nOwordW5pZm9ybSBndGZfUG9pbnRQYXJhbWV0ZXJzIGd0Zl9Qb2lu
dDsKK3VuaWZvcm0gZ3RmX0xpZ2h0TW9kZWxQYXJhbWV0ZXJzIGd0Zl9MaWdodE1vZGVsOwordmFy
eWluZyB2ZWM0IGd0Zl9Gb2dGcmFnQ29vcmQ7Cit2YXJ5aW5nIHZlYzQgZ3RmX0JhY2tDb2xvcjsK
K3ZhcnlpbmcgdmVjNCBndGZfQmFja1NlY29uZGFyeUNvbG9yOwordmFyeWluZyB2ZWM0IGd0Zl9G
cm9udFNlY29uZGFyeUNvbG9yOwordmFyeWluZyB2ZWM0IGd0Zl9UZXhDb29yZFsyXTsKK3Zhcnlp
bmcgdmVjNCBndGZfRnJvbnRDb2xvcjsKK3VuaWZvcm0gZ3RmX01hdGVyaWFsUGFyYW1ldGVycyBn
dGZfRnJvbnRNYXRlcmlhbDsKK3VuaWZvcm0gZ3RmX0xpZ2h0U291cmNlUGFyYW1ldGVycyBndGZf
TGlnaHRTb3VyY2VbOF07CithdHRyaWJ1dGUgdmVjNCBndGZfTXVsdGlUZXhDb29yZDE7CithdHRy
aWJ1dGUgdmVjNCBndGZfTXVsdGlUZXhDb29yZDI7CithdHRyaWJ1dGUgdmVjNCBndGZfU2Vjb25k
YXJ5Q29sb3I7CithdHRyaWJ1dGUgdmVjNCBndGZfQ29sb3I7CithdHRyaWJ1dGUgdmVjNCBndGZf
TXVsdGlUZXhDb29yZDM7CithdHRyaWJ1dGUgdmVjNCBndGZfTXVsdGlUZXhDb29yZDA7CithdHRy
aWJ1dGUgdmVjNCBndGZfTm9ybWFsOworYXR0cmlidXRlIHZlYzQgZ3RmX1ZlcnRleDsKK3VuaWZv
cm0gbWF0NCBndGZfTm9ybWFsTWF0cml4OwordW5pZm9ybSBtYXQ0IGd0Zl9Qcm9qZWN0aW9uTWF0
cml4OwordW5pZm9ybSBtYXQ0IGd0Zl9UZXh0dXJlTWF0cml4WzhdOwordW5pZm9ybSBtYXQ0IGd0
Zl9Nb2RlbFZpZXdNYXRyaXg7Cit1bmlmb3JtIG1hdDQgZ3RmX01vZGVsVmlld1Byb2plY3Rpb25N
YXRyaXg7Cit2b2lkIHRlc3RfZnVuY3Rpb24oY29uc3QgaW4gaW50IGluX2ludCwgaW5vdXQgaW50
IG91dF9pbnQpOworaW50IHRlc3RfZnVuY3Rpb24xKGluIGludCBpbl9pbnQxLCBpbm91dCBpbnQg
aW5fb3V0X2ludCk7CisKK3VuaWZvcm0gZmxvYXQgYXJyYXlfZmxvYXRbMl07CisKK3N0cnVjdCBu
ZXN0ZWQKK3sKKyAgIGludCBhOworICAgZmxvYXQgZjsKK307CisKK3N0cnVjdCBsaWdodDEKK3sK
KyAgIGZsb2F0IGludGVuc2l0eTsKKyAgIHZlYzMgcG9zaXRpb247CisgICBpbnQgdGVzdF9pbnRb
Ml07CisgICBuZXN0ZWQgbGlnaHQyOworfSBsaWdodFZhcjsKK2xpZ2h0MSBsbDI7CisKK3ZvaWQg
QXNzaWduIChvdXQgbGlnaHQxIG91dDEsIGluIGxpZ2h0MSBpbjEpCit7CisgICAgb3V0MS5pbnRl
bnNpdHkgPSBpbjEuaW50ZW5zaXR5OworICAgICBvdXQxLnBvc2l0aW9uID0gaW4xLnBvc2l0aW9u
OworICBvdXQxLnRlc3RfaW50WzBdID0gaW4xLnRlc3RfaW50WzBdOworICBvdXQxLnRlc3RfaW50
WzFdID0gaW4xLnRlc3RfaW50WzFdOworICAgICAgIG91dDEubGlnaHQyID0gaW4xLmxpZ2h0MjsK
K30KKworc3RydWN0IGxpZ2h0MyB7CisgICAgZmxvYXQgaTsKK307CisKK3N0cnVjdCBsaWdodDQg
eworICAgIGZsb2F0IGk7Cit9OworCitzdHJ1Y3QgbGlnaHQ1IHsKKyAgICBmbG9hdCBpIDsKKyAg
ICBmbG9hdCBhWzJdOworfSBsaWdodDVfaW5zdDsKKwordW5pZm9ybSBsaWdodDMgdW5pZm9ybUxp
Z2h0MzsKKworc3RydWN0IGxpZ2h0NiB7CisgICAgZmxvYXQgaTsKK307Cit1bmlmb3JtIGxpZ2h0
NiB1bmlmb3JtTGlnaHQ2OworCitzdHJ1Y3Qgc2xpZ2h0MTB7CisgICAgIGZsb2F0IGY7CisgICAg
IH07CitzdHJ1Y3Qgc2xpZ2h0OXsKKyAgICAgc2xpZ2h0MTAgbGlnaHQxMDsKKyAgICAgfTsKK3N0
cnVjdCBzbGlnaHQ4eworICAgICBzbGlnaHQ5IGxpZ2h0OTsKKyAgICAgfTsKK3N0cnVjdCBsaWdo
dDcgeworICBzbGlnaHQ4IGxpZ2h0ODsKK30gOworCisKK2xpZ2h0MyBzdHJ1Y3RfdmFyID0gbGln
aHQzKDUuMCk7CisKKy8vIEF0dHJpYnR1ZSB2YXJpYWJsZXMgY2FuIG9ubHkgYmUgR2xvYmFsCith
dHRyaWJ1dGUgZmxvYXQgZmx0X2F0dHJpYjsKK2F0dHJpYnV0ZSB2ZWMyIHZlYzJfYXR0cmliOwor
YXR0cmlidXRlIHZlYzMgdmVjM19hdHRyaWI7CithdHRyaWJ1dGUgdmVjNCB2ZWM0X2F0dHJpYjsK
K2F0dHJpYnV0ZSBtYXQyIG1hdDJfYXR0cmliOworYXR0cmlidXRlIG1hdDMgbWF0M19hdHRyaWI7
CithdHRyaWJ1dGUgbWF0NCBtYXQ0X2F0dHJpYjsKKwordW5pZm9ybSBmbG9hdCBmbHRfdW5pZm9y
bTsKK3VuaWZvcm0gdmVjMyB1bmlmb3JtX3ZlYzM7Cit1bmlmb3JtIG1hdDMgdW5pZm9ybV9tYXQz
OworCit1bmlmb3JtIHNhbXBsZXIyRCBzYW1wWzNdOwordW5pZm9ybSBzYW1wbGVyMkQgc2FtcDE7
CisKK2NvbnN0IHN0cnVjdCBsaWdodDEyIHsKKyAgICBpbnQgYTsKK30gdW5pZm9ybV9zdHJ1Y3Qg
PSBsaWdodDEyKDIpOworCit2YXJ5aW5nIHZlYzMgdmFyeWluZ192ZWMzOwordmFyeWluZyB2ZWMy
IHZhcnlpbmdfdmVjMjsKK3ZhcnlpbmcgdmVjNCB2YXJ5aW5nX3ZlYzQ7Cit2YXJ5aW5nIG1hdDQg
dmFyeWluZ19tYXQ0OwordmFyeWluZyBtYXQyIHZhcnlpbmdfbWF0MjsKK3ZhcnlpbmcgbWF0MyB2
YXJ5aW5nX21hdDM7Cit2YXJ5aW5nIGZsb2F0IHZhcnlpbmdfZmx0OworCitmbG9hdCBmcmVxdWVu
Y2llc1syXTsKKwordm9pZCB0ZXN0X2Z1bmN0aW9uMihpbnQgZnVuY19pbnQpCit7Cit9CisKK3Zv
aWQgdGVzdF9mdW5jdGlvbjMobGlnaHQzKTsKK3ZvaWQgdGVzdF9mdW5jdGlvbjQobGlnaHQ1IGxs
MjApOwordm9pZCB0ZXN0X2Z1bmN0aW9uNShsaWdodDEpOworbGlnaHQ2IHRlc3RfZnVuY3Rpb242
KGludCBhKTsKKworY29uc3QgZmxvYXQgRmxvYXRDb25zdDEgPSAzLjAgKiA4LjAsIGZsb2F0Q29u
c3QyID0gNC4wOworY29uc3QgYm9vbCBCb29sQ29uc3QxID0gdHJ1ZSAmJiB0cnVlIHx8IGZhbHNl
OworY29uc3QgYm9vbCBCb29sQ29uc3QyID0gZmFsc2UgfHwgIWZhbHNlICYmIGZhbHNlOworCit2
b2lkIG1haW4odm9pZCkKK3sKKworICAgIGludCB0ZXN0X2ludDEgPSAyOworICAgIGNvbnN0IGlu
dCBjb25zdF90ZXN0X2ludDEgPSAyOworCisgICAgc3RydWN0IHN0cnVjdE1haW4geworICAgICAg
ICBmbG9hdCBpOworICAgIH0gdGVzdFN0cnVjdDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIHN0
cnVjdE1haW4gYTsKKyAgICB9IGFTdHJ1Y3Q7CisKKyAgICB0ZXN0U3RydWN0LmkgPSA1LjAgOwor
ICAgIHN0cnVjdF92YXIuaSA9IDUuMDsKKworICAgIHN0cnVjdE1haW4gbmV3U3RydWN0LCBuZXdT
dHJ1Y3QxOworICAgIHRlc3RTdHJ1Y3QgPSBuZXdTdHJ1Y3Q7CisgICAgbmV3U3RydWN0ID0gbmV3
U3RydWN0MTsKKworICAgIGxpZ2h0VmFyLmxpZ2h0Mi5mID0gMS4xOworCisgICAgbGlnaHQxIGxs
MTsKKyAgICBsbDEubGlnaHQyLmEgPSAxOworCisgICAgIGNvbnN0IHN0cnVjdCBjb25zdF9zdHJ1
Y3QgeworICAgICAgICBmbG9hdCBpOworICAgIH0gY29uc3Rfc3RydWN0X2luc3QgPSBjb25zdF9z
dHJ1Y3QoMS4wKTsKKworICAgIC8vbGwxID0gbGwyOworICAgIEFzc2lnbiAobGwxLCBsbDIpOwor
ICAgIGxsMS5saWdodDIgPSBsbDIubGlnaHQyOworICAgIGxsMS5saWdodDIgPSBsbDEubGlnaHQy
OworICAgIGxsMS5saWdodDIuZiA9IGxsMi5saWdodDIuZjsKKyAgICBsbDEubGlnaHQyLmYgPSBs
bDEubGlnaHQyLmY7CisKKyAgICAvLyAgICBsaWdodFZhciA9IGxsMjsKKyAgICAvLyAgICBsbDIg
PSBsaWdodFZhcjsKKyAgICBBc3NpZ24gKGxpZ2h0VmFyLCBsbDIpOworICAgIEFzc2lnbiAobGwy
LCBsaWdodFZhcik7CisKKyAgICBsaWdodDUgbGwxMDsKKworICAgIGxpZ2h0NyBsbDdbNF07Cisg
ICAgc3RydWN0TWFpbiBuZXdTdHJ1Y3QyWzJdOworICAgIG5ld1N0cnVjdDJbMF0uaSA9IDEuMTsK
KworICAgIGxsN1swXS5saWdodDgubGlnaHQ5LmxpZ2h0MTAuZiA9IDEuMTsKKworCisgICAgYm9v
bCB0ZXN0X2Jvb2w0ID0gZmFsc2UgOworCisgICAgYm9vbCB0ZXN0X2Jvb2w1ID0gMS4yID4gMy4w
IDsKKworICAgIGludCB0ZXN0X2ludDIgPSAgMDQ3OworICAgIGludCB0ZXN0X2ludDQgPSAgMHhh
ODsgIC8vIHRlc3RpbmcgZm9yIGhleGFkZWNpbWFsIG51bWJlcnMKKworICAgIGZsb2F0IHRlc3Rf
ZmxvYXQxID0gMS41OworICAgIGZsb2F0IHRlc3RfZmxvYXQyID0gLjAxOworICAgIGZsb2F0IHRl
c3RfZmxvYXQzID0gMTAuOworICAgIGZsb2F0IHRlc3RfZmxvYXQ0ID0gMTAuMDE7CisgICAgZmxv
YXQgdGVzdF9mbG9hdDUgPSAyM2UrMjsKKyAgICBmbG9hdCB0ZXN0X2Zsb2F0NiA9IDIzRS0zOwor
ICAgIGZsb2F0IHRlc3RfZmxvYXQ4ID0gMjNFMjsKKyAgICBib29sIHRlc3RfYm9vbDYgPSBCb29s
Q29uc3QxICYmICEgKHRlc3RfaW50MSAhPSAwKSAmJiAhIEJvb2xDb25zdDEgICYmICEgKEZsb2F0
Q29uc3QxICE9IDAuMCkgJiYgKEZsb2F0Q29uc3QxICE9IDAuMCkgJiYgKHRlc3RfZmxvYXQxICE9
IDAuMCk7CisKKyAgICB2ZWM0IGNvbG9yID0gdmVjNCgwLjAsIDEuMCwgMC4wLCAxLjApOworICAg
IHZlYzQgY29sb3IyID0gdmVjNCgwLjApOworCisgICAgdmVjMyBjb2xvcjQgPSB2ZWMzKHRlc3Rf
ZmxvYXQ4KTsKKworICAgIGl2ZWM0IHRlc3RfaW50X3ZlY3QxID0gaXZlYzQoMS4wLDEuMCwxLjAs
MS4wKTsKKyAgICBpdmVjMyB0ZXN0X2ludF92ZWMzID0gaXZlYzMoMSwgMSwgMSkgOworCisgICAg
YnZlYzQgdGVzdF9ib29sX3ZlY3QxID0gYnZlYzQoMS4sIDEuLCAxLiAsIDEuICk7CisKKyAgICB2
ZWMyIHRlc3RfdmVjMiA9IHZlYzIoMS4sIDEuKTsKKyAgICB2ZWMyIHRlc3RfdmVjMyA9IHZlYzIo
MS4sIDEpOworICAgIHZlYzQgdGVzdF92ZWM0ID0gdmVjNCh0ZXN0X2ludF92ZWN0MSk7CisKKyAg
ICB2ZWMyIHRlc3RfdmVjNSA9IHZlYzIoY29sb3I0KTsKKyAgICB2ZWMzIHRlc3RfdmVjNyA9IHZl
YzMoY29sb3IpOworICAgIHZlYzMgdGVzdF92ZWM4ID0gdmVjMyh0ZXN0X3ZlYzIsIHRlc3RfZmxv
YXQ0KTsKKyAgICB2ZWMzIHRlc3RfdmVjOSA9IHZlYzModGVzdF9mbG9hdDQsIHRlc3RfdmVjMik7
CisKKyAgICB2ZWM0IHRlc3RfdmVjMTAgPSB2ZWM0KHRlc3RfdmVjOSwgMC4wMSk7CisgICAgdmVj
NCB0ZXN0X3ZlYzExID0gdmVjNCgwLjAxLCB0ZXN0X3ZlYzkpOworCisgICAgdmVjNCB0ZXN0X3Zl
YzEyID0gdmVjNCh0ZXN0X3ZlYzIsIHRlc3RfdmVjMik7CisKKyAgICBtYXQyIHRlc3RfbWF0MiA9
IG1hdDIodGVzdF9mbG9hdDMpOworICAgIG1hdDMgdGVzdF9tYXQzID0gbWF0Myh0ZXN0X2Zsb2F0
Myk7CisgICAgbWF0NCB0ZXN0X21hdDQgPSBtYXQ0KHRlc3RfZmxvYXQzKTsKKworICAgIG1hdDIg
dGVzdF9tYXQ3ID0gbWF0Mih0ZXN0X3ZlYzIsIHRlc3RfdmVjMik7CisgICAgbWF0MiB0ZXN0X21h
dDggPSBtYXQyKDAxLjAxLCAyLjAxLCAzLjAxLCA0LjAxKTsKKworICAgIG1hdDMgdGVzdF9tYXQ5
ID0gbWF0Myh0ZXN0X3ZlYzcsIHRlc3RfdmVjNywgdGVzdF92ZWM3KTsKKyAgICBtYXQ0IHRlc3Rf
bWF0MTAgPSBtYXQ0KHRlc3RfdmVjMTAsIHRlc3RfdmVjMTAsIHRlc3RfdmVjMTAsIHRlc3RfdmVj
MTApOworICAgIHRlc3RfbWF0MTBbMV0gPSB0ZXN0X3ZlYzEwOworCisKKyAgICBtYXQyIHRlc3Rf
bWF0MTIgPSBtYXQyKHRlc3RfdmVjMiwgMC4wMSwgMC4wMSk7CisgICAgbWF0MiB0ZXN0X21hdDEz
ID0gbWF0MigwLjAxLCA1LiwgdGVzdF92ZWMyKTsKKyAgICBtYXQyIHRlc3RfbWF0MTUgPSBtYXQy
KDAuMSwgNS4sIHRlc3RfdmVjMiApOworCisgICAgLy9tYXQyIHRlc3RfbWF0MTYgPSBtYXQyKHRl
c3RfbWF0OSk7CisgICAgLy9tYXQyIHRlc3RfbWF0MTcgPSBtYXQyKHRlc3RfbWF0MTApOworCisg
ICAgZmxvYXQgZnJlcTFbMl07CisgICAgZmxvYXQgZnJlcTJbMjVdOworCisgICAgZm9yIChpbnQg
aT0wOyBpPDEwMDsgaSsrKQorICAgIHsKKyAgICAgIGlmICh0ZXN0X2Zsb2F0MSA8IDEuMCkKKyAg
ICAgIHsKKworICAgICAgfQorICAgICAgZWxzZQorICAgICAgeworICAgICAgICBicmVhazsKKyAg
ICAgIH0KKyAgICB9CisKKyAgICBmcmVxMlsxXSA9IDEuOSA7CisgICAgY29uc3QgaW50IGFycmF5
X2luZGV4ID0gMjsKKyAgICBmcmVxMltjb25zdF90ZXN0X2ludDFdID0gMS45IDsKKyAgICBmcmVx
MlthcnJheV9pbmRleF0gPSAxLjg7CisKKyAgICBjb25zdCBpbnQgY29uc3RfaW50ID0gNTsKKwor
ICAgIHRlc3RfZmxvYXQxID0gdmFyeWluZ19mbHQ7CisKKyAgICBpbnQgb3V0X2ludDsKKyAgICBp
bnQgaW50QXJyYXlbNl07CisgICAgdGVzdF9mdW5jdGlvbih0ZXN0X2ludDEsIHRlc3RfaW50MSk7
CisgICAgdGVzdF9mdW5jdGlvbih0ZXN0X2ludDEsIGludEFycmF5WzJdKTsKKworICAgIHZlYzMg
dnYgPSB2ZWMzKHRlc3RfZnVuY3Rpb24xKHRlc3RfaW50MSwgb3V0X2ludCkpOworICAgIGJvb2wg
Ym9vbF92YXIgPSB0cnVlOworICAgIGludCB0ZXN0X2ludDYgPSBpbnQoYm9vbF92YXIpOworICAg
IHRlc3RfZmxvYXQxID0gZmxvYXQoYm9vbF92YXIpOworICAgIHRlc3RfZmxvYXQxID0gZmxvYXQo
dGVzdF9pbnQ2KTsKKyAgICB0ZXN0X2ludDYgPSBpbnQodGVzdF9mbG9hdDEpOworICAgIGJvb2xf
dmFyID0gYm9vbCh0ZXN0X2ludDYpOworICAgIGJvb2xfdmFyID0gYm9vbCh0ZXN0X2Zsb2F0MSk7
CisgICAgdGVzdF9mbG9hdDEgPSBmbG9hdCh0ZXN0X3ZlYzkpOworCisgICAgdGVzdF92ZWMyLngg
PSAxLjI7CisgICAgdGVzdF92ZWMyLnkgPSAxLjQ7CisgICAgdGVzdF92ZWMyLnh5OworCisKKyAg
ICBjb2xvci56eSA9IHRlc3RfdmVjMjsKKworICAgdGVzdF92ZWMyWzFdID0gMS4xOworCisgICAg
IHRlc3RfbWF0MlswXVswXSA9IDEuMTsKKworICAgIHRlc3RfZmxvYXQxICs9IDEuMDsKKyAgICB0
ZXN0X2Zsb2F0MSAtPSAxLjA7CisgICAgdGVzdF9mbG9hdDEgKj0gMS4wOworICAgIHRlc3RfZmxv
YXQxIC89IDEuMDsKKworICAgIHRlc3RfbWF0MTIgKj0gdGVzdF9tYXQxMyA7CisgICAgdGVzdF9t
YXQxMiAgKj0gdGVzdF9mbG9hdDE7CisgICAgdGVzdF92ZWMyICo9IHRlc3RfZmxvYXQxOworICAg
IHRlc3RfdmVjMiAqPSB0ZXN0X21hdDEyOworICAgIHRlc3RfZmxvYXQxKys7CisgICAgdGVzdF9m
bG9hdDEtLTsKKyAgICAtLXRlc3RfZmxvYXQxOworICAgICsrdGVzdF9mbG9hdDE7CisgICAgdGVz
dF9mbG9hdDE7CisgICAgdGVzdF9pbnQxKys7CisgICAgdGVzdF9pbnQxLS07CisKKyAgICB0ZXN0
X3ZlYzIgPSB0ZXN0X3ZlYzIgKyB0ZXN0X2Zsb2F0MTsKKyAgICB0ZXN0X3ZlYzIgPSB0ZXN0X2Zs
b2F0MSArIHRlc3RfdmVjMjsKKworICAgIHRlc3RfbWF0MTIgPSB0ZXN0X21hdDEyICogdGVzdF9t
YXQxMzsKKyAgICB0ZXN0X3ZlYzIgPSB0ZXN0X3ZlYzIgKiB0ZXN0X3ZlYzU7CisKKyAgICB0ZXN0
X3ZlYzIrKzsKKyAgICB0ZXN0X21hdDIrKzsKKworICAgIGJvb2wgdGVzdF9ib29sMiA9IHRlc3Rf
ZmxvYXQyID4gdGVzdF9mbG9hdDM7CisKKyAgICBib29sIHRlc3RfYm9vbDMgPSB0ZXN0X2ludDEg
PiB0ZXN0X2ludDYgOworCisgICAgdGVzdF9ib29sMyA9IHRlc3RfdmVjMiA9PSB0ZXN0X3ZlYzU7
CisKKyAgICB0ZXN0X2Jvb2wyID0gdGVzdF9ib29sMyAmJiB0ZXN0X2Jvb2w0OworICAgIHRlc3Rf
Ym9vbDIgPSB0ZXN0X2Jvb2wzIHx8IHRlc3RfYm9vbDQ7CisgICAgdGVzdF9ib29sMiA9IHRlc3Rf
Ym9vbDMgXl4gdGVzdF9ib29sNDsKKworICAgIHRlc3RfYm9vbDIgPSAhdGVzdF9ib29sMzsKKwor
ICAgIHRlc3RfYm9vbDMgPSAhKHRlc3RfaW50MSA+IHRlc3RfaW50NikgOworCisgICAgdGVzdF9m
bG9hdDEgPSB0ZXN0X2ludDEgPiB0ZXN0X2ludDYgPyB0ZXN0X2Zsb2F0MiA6IHRlc3RfZmxvYXQz
OworICAgIHRlc3RfdmVjMiA9IHRlc3RfaW50MSA+IHRlc3RfaW50NiA/IHRlc3RfdmVjMiA6IHRl
c3RfdmVjNTsKKyAgICBpZih0ZXN0X2Jvb2wyKQorICAgICAgICB0ZXN0X2Zsb2F0MSsrOworICAg
IGVsc2UKKwl0ZXN0X2Zsb2F0MS0tOworCisgICAgaWYodGVzdF9mbG9hdDEgPiB0ZXN0X2Zsb2F0
MikKKyAgICAgICAgdGVzdF9mbG9hdDErKzsKKworICAgIGlmKCB0ZXN0X2Jvb2wyICkKKyAgICB7
CisgICAgICAgIGludCBpZl9pbnQ7CisgICAgICAgIHRlc3RfZmxvYXQxKys7CisgICAgfQorCisg
ICAgaWYodGVzdF9ib29sMikKKyAgICAgICBpZih0ZXN0X2Jvb2wzKQorICAgICAgICAgICBpZih0
ZXN0X2Jvb2wzKQorCSAgICAgIHRlc3RfZmxvYXQxKys7CisKKyAgIGZvcihpbnQgZm9yX2ludD0w
OyBmb3JfaW50IDwgNTsgZm9yX2ludCsrKQorICAgeworICAgICAgIC8vIGRvIG5vdGhpbmcgYXMg
c3VjaAorICAgfQorCisKKyAgIGZvcihpbnQgeDE9MDsgeDEgPCAxMDsgeDErKykKKyAgIHsKKyAg
ICAgaWYgKCF0ZXN0X2Jvb2wyKQorICAgICAgIGJyZWFrOworCisgICAgIGludCBmb3JfaW50Owor
ICAgfQorCisgICBmb3IoaW50IHgyPS0xMDsgeDIgPCAxMDA7IHgyKyspCisgICB7CisgICAgIHRl
c3RfYm9vbDIgPSAodGVzdF9mbG9hdDEgPiB0ZXN0X2Zsb2F0Mik7CisgICAgIGlmICghdGVzdF9i
b29sMikKKyAgICAgICBicmVhazsKKyAgIH0KKworICAgZm9yKGludCBmb3JfaW50MSA9IDA7IGZv
cl9pbnQxIDwgMTAwOyBmb3JfaW50MSsrKQorICAgeworICAgICBpZiAoIXRlc3RfYm9vbDIpCisg
ICAgICAgYnJlYWs7CisKKyAgICAgaW50IGZvcl9pbnQ7CisgICB9CisKKyAgIGZvcihpbnQgZm9y
X2ludDEgPSAwOyBmb3JfaW50MSA8IDEwMDsgZm9yX2ludDErKykKKyAgIHsKKyAgICAgaWYgKCF0
ZXN0X2Jvb2wyKQorICAgICAgIGNvbnRpbnVlOworCisgICAgIGludCBmb3JfaW50OworICAgfQor
CisKKyAgIGZvcihpbnQgaT0wOyBpPDEwMDsgaSsrKQorICAgeworICAgICBpZiAoISh0ZXN0X2Zs
b2F0MSA+IHRlc3RfZmxvYXQyKSkKKyAgICAgeworICAgICAgIGJyZWFrOworICAgICB9CisKKyAg
ICAgYnJlYWs7CisgICAgIGNvbnRpbnVlOworICAgfQorCisgICBmb3IoaW50IGk9MDsgaTwxMDA7
IGkrKykKKyAgIHsKKyAgICAgaWYgKCF0ZXN0X2Jvb2wyKQorICAgICAgIGJyZWFrOworCisgICAg
IGJyZWFrOworICAgfQorCisgICBmb3IgKGludCBpPTA7IGk8MTAwOyBpKyspCisgICB7CisgICAg
IGludCBkb3doaWxlX2ludDsKKyAgICAgZG93aGlsZV9pbnQgPSAzOworCisgICAgIGlmICghdGVz
dF9ib29sMikKKyAgICAgICBicmVhazsKKyAgIH0KKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgy
LjAsIDMuMCwgMS4wLCAxLjEpOworICAgIGdsX1Bvc2l0aW9uID0gZ3RmX1ZlcnRleDsKKworCisg
ICAgLy8gVkVSVEVYIFNIQURFUiBCVUlMVC1JTiBBVFRSSUJVVEVTCisKKyAgICB2ZWM0IGJ1aWx0
SW5WNCA9IGd0Zl9Db2xvciArIGd0Zl9TZWNvbmRhcnlDb2xvciArIGd0Zl9WZXJ0ZXggKyBndGZf
TXVsdGlUZXhDb29yZDAgKyBndGZfTXVsdGlUZXhDb29yZDEgKyBndGZfTXVsdGlUZXhDb29yZDIg
KyAgZ3RmX011bHRpVGV4Q29vcmQzOworCisKKyAgICBpbnQgYnVpbHRJbkkgPSBndGZfTWF4TGln
aHRzICsgZ3RmX01heENsaXBQbGFuZXMgKyBndGZfTWF4VGV4dHVyZVVuaXRzICsgZ3RmX01heFRl
eHR1cmVDb29yZHMgKyBndGZfTWF4VmVydGV4QXR0cmlicyArIGd0Zl9NYXhWZXJ0ZXhVbmlmb3Jt
Q29tcG9uZW50cyArIGd0Zl9NYXhWYXJ5aW5nRmxvYXRzICsgZ3RmX01heFZlcnRleFRleHR1cmVJ
bWFnZVVuaXRzICsgZ3RmX01heENvbWJpbmVkVGV4dHVyZUltYWdlVW5pdHMgKyBndGZfTWF4VGV4
dHVyZUltYWdlVW5pdHMgKyBndGZfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50cyArIGd0Zl9N
YXhEcmF3QnVmZmVycyA7CisKKworICAgIG1hdDQgYnVpbHRJbk00ID0gZ3RmX01vZGVsVmlld01h
dHJpeCArIGd0Zl9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4ICsgZ3RmX1Byb2plY3Rpb25NYXRy
aXg7CisKKyAgICBndGZfTm9ybWFsTWF0cml4OworCisgICAgZ3RmX1RleHR1cmVNYXRyaXhbZ3Rm
X01heFRleHR1cmVDb29yZHMtMV07CisgICAgZ3RmX1RleHR1cmVNYXRyaXg7CisKKyAgICBndGZf
RGVwdGhSYW5nZS5uZWFyIDsKKworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0RlcHRoUmFuZ2UubmVh
cjsKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9EZXB0aFJhbmdlLmZhcjsKKyAgICB0ZXN0X2Zsb2F0
MSA9IGd0Zl9EZXB0aFJhbmdlLmRpZmY7CisKKyAgICBndGZfUG9pbnQuc2l6ZTsKKyAgICBndGZf
UG9pbnQuc2l6ZU1pbjsKKyAgICBndGZfUG9pbnQuc2l6ZU1heDsKKyAgICBndGZfUG9pbnQuZmFk
ZVRocmVzaG9sZFNpemUgOworICAgIGd0Zl9Qb2ludC5kaXN0YW5jZUNvbnN0YW50QXR0ZW51YXRp
b247CisgICAgZ3RmX1BvaW50LmRpc3RhbmNlTGluZWFyQXR0ZW51YXRpb24gOworICAgIGd0Zl9Q
b2ludC5kaXN0YW5jZVF1YWRyYXRpY0F0dGVudWF0aW9uOworCisgICAgZ3RmX01hdGVyaWFsUGFy
YW1ldGVycyB0ZXN0OworICAgIGd0Zl9Gcm9udE1hdGVyaWFsLmVtaXNzaW9uOworCisgICAgY29s
b3IgPSBndGZfRnJvbnRNYXRlcmlhbC5lbWlzc2lvbjsKKyAgICBjb2xvciA9IGd0Zl9Gcm9udE1h
dGVyaWFsLmFtYmllbnQ7CisgICAgY29sb3IgPSBndGZfRnJvbnRNYXRlcmlhbC5kaWZmdXNlOwor
ICAgIGNvbG9yID0gZ3RmX0Zyb250TWF0ZXJpYWwuc3BlY3VsYXI7CisgICAgdGVzdF9mbG9hdDEg
PSBndGZfRnJvbnRNYXRlcmlhbC5zaGluaW5lc3M7CisKKyAgICBndGZfTGlnaHRTb3VyY2VQYXJh
bWV0ZXJzIGxpZ2h0U291cmNlOworCisgICAgZmxvYXQgYnVpbHRJbkZsb2F0MSA9IGd0Zl9MaWdo
dFNvdXJjZVswXS5zcG90RXhwb25lbnQ7CisgICAgY29sb3IgPSBndGZfTGlnaHRTb3VyY2VbMF0u
YW1iaWVudDsKKyAgICBjb2xvciA9IGxpZ2h0U291cmNlLmFtYmllbnQ7CisgICAgY29sb3IgPSBs
aWdodFNvdXJjZS5kaWZmdXNlOworICAgIGNvbG9yID0gbGlnaHRTb3VyY2Uuc3BlY3VsYXI7Cisg
ICAgY29sb3IgPSBsaWdodFNvdXJjZS5wb3NpdGlvbjsKKyAgICBjb2xvciA9IGxpZ2h0U291cmNl
LmhhbGZWZWN0b3I7CisgICAgY29sb3I0ID0gbGlnaHRTb3VyY2Uuc3BvdERpcmVjdGlvbjsKKyAg
ICB0ZXN0X2Zsb2F0MSA9IGxpZ2h0U291cmNlLnNwb3RFeHBvbmVudDsKKyAgICB0ZXN0X2Zsb2F0
MSA9IGxpZ2h0U291cmNlLnNwb3RDdXRvZmY7CisgICAgdGVzdF9mbG9hdDEgPSBsaWdodFNvdXJj
ZS5zcG90Q29zQ3V0b2ZmOworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2UuY29uc3RhbnRB
dHRlbnVhdGlvbjsKKyAgICB0ZXN0X2Zsb2F0MSA9IGxpZ2h0U291cmNlLmxpbmVhckF0dGVudWF0
aW9uOworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2UucXVhZHJhdGljQXR0ZW51YXRpb247
CisKKyAgICBjb2xvciA9IGd0Zl9MaWdodE1vZGVsLmFtYmllbnQ7CisKKyAgICBndGZfTGlnaHRN
b2RlbFBhcmFtZXRlcnMgbGlnaHRNb2RlbDsKKyAgICBjb2xvciA9IGd0Zl9MaWdodE1vZGVsLmFt
YmllbnQ7CisgICAgY29sb3IgPSBsaWdodE1vZGVsLmFtYmllbnQ7CisKKyAgICBjb2xvciA9IGd0
Zl9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0LnNjZW5lQ29sb3IgOworCisgICAgZ3RmX0xpZ2h0TW9k
ZWxQcm9kdWN0cyBsaWdodE1vZGVsUHJvZDsKKworICAgIGNvbG9yID0gbGlnaHRNb2RlbFByb2Qu
c2NlbmVDb2xvcjsKKyAgICBjb2xvciA9IGd0Zl9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0LnNjZW5l
Q29sb3I7CisKKyAgICBjb2xvciA9IGd0Zl9Gcm9udExpZ2h0UHJvZHVjdFswXS5hbWJpZW50Owor
ICAgIGNvbG9yID0gZ3RmX0Zyb250TGlnaHRQcm9kdWN0WzBdLmFtYmllbnQ7CisgICAgZ3RmX0xp
Z2h0UHJvZHVjdHMgbGlnaHRQcm9kOworCisgICAgY29sb3IgPSAgbGlnaHRQcm9kLmFtYmllbnQ7
CisgICAgY29sb3IgPSAgbGlnaHRQcm9kLmRpZmZ1c2U7CisgICAgY29sb3IgPSAgbGlnaHRQcm9k
LnNwZWN1bGFyOworCisKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuZGVuc2l0eSA7CisgICAg
dGVzdF9mbG9hdDEgPSBndGZfRm9nLnN0YXJ0IDsKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cu
ZW5kICA7CisgICAgdGVzdF9mbG9hdDEgPSBndGZfRm9nLnNjYWxlIDsKKyAgICBjb2xvciA9IGd0
Zl9Gb2cuY29sb3IgOworCisgICAgZ3RmX0Zyb250Q29sb3IgPSAgdmVjNCgxLjAsIDEuMCwgMS4w
LCAxLjApOworICAgIGd0Zl9CYWNrQ29sb3IgPSAgdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwor
ICAgIGd0Zl9Gcm9udFNlY29uZGFyeUNvbG9yID0gIHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsK
KyAgICBndGZfQmFja1NlY29uZGFyeUNvbG9yID0gIHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsK
KworCisgICAgLy8gVkFSWUlORyBWQVJJQUJMRVMgQVZBSUxBQkxFIElOIEZSQUdNRU5UIEFORCBW
RVJURVggU0hBREVSUyBCT1RICisgICAgZ3RmX1RleENvb3JkWzBdID0gIHZlYzQoMS4wLCAxLjAs
IDEuMCwgMS4wKTsKKyAgICBndGZfRm9nRnJhZ0Nvb3JkID0gIHZlYzQoMS4wLCAxLjAsIDEuMCwg
MS4wKTsKKworfQorCit2b2lkIHRlc3RfZnVuY3Rpb24oY29uc3QgaW4gaW50IGluX2ludCwgaW5v
dXQgaW50IG91dF9pbnQpCit7CisgICAgb3V0X2ludCA9IDU7CisgICAgaW50IGkgPSA1OworICAg
IHJldHVybiA7Cit9CisKK2ludCB0ZXN0X2Z1bmN0aW9uMShpbiBpbnQgaW5faW50MSwgaW5vdXQg
aW50IGluX291dF9pbnQpCit7CisgICBmbG9hdCBmZjsKKyAgIGluX2ludDEgPSA1OworICAgcmV0
dXJuIGluX2ludDE7Cit9CisKK3ZvaWQgdGVzdF9mdW5jdGlvbjMobGlnaHQzIGxsKQoreworICAg
IGxsLmkgPSA1LjA7CisgICAgdmFyeWluZ19mbHQgPSAxLjI7Cit9CisKK3ZvaWQgdGVzdF9mdW5j
dGlvbjQobGlnaHQ1IGxsMjApCit7CisgICAgbGwyMC5pID0gMTAuMDsKK30KKwordm9pZCB0ZXN0
X2Z1bmN0aW9uNShsaWdodDEgc3RydWN0X2xpZ2h0MSkKK3sKKyAgICBzdHJ1Y3RfbGlnaHQxLmxp
Z2h0Mi5hID0gMTsKKyAgICBsaWdodDUgbGw1OworICAgIHN0cnVjdF9saWdodDEubGlnaHQyLmYg
PSBsbDUuaTsKKyAgICBzdHJ1Y3RfbGlnaHQxLmxpZ2h0Mi5mKys7CisgICAgc3RydWN0X2xpZ2h0
MS5saWdodDIuYSsrOworfQorCitsaWdodDYgdGVzdF9mdW5jdGlvbjYoaW50IGEpCit7CisgICAg
aW50IHg7CisgICAgbGlnaHQ2IGZ1bmNTdHJ1Y3Q7CisgICAgbGlnaHQ3IGZ1bmNTdHJ1Y3QxOwor
ICAgIC14OworICAgIHggPSB4IC0geCA7CisgICAgbWF0MiBtOworICAgIG0rKzsKKyAgICAtbTsK
KyAgICAobSkrKzsKKyAgICByZXR1cm4gZnVuY1N0cnVjdDsKK30KKworZmxvYXQgdGVzdF9mdW5j
dGlvbjcobGlnaHQxIGxsMSwgaW50IGxpZ2h0MSApCit7CisgICAgZmxvYXQgZjsKKworICAgIHN0
cnVjdCBzczEgeworICAgICAgICBpbnQgYTsKKyAgICB9OworCisgICAgcmV0dXJuIGZsb2F0KDEp
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmNPdmVybG9hZF9mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2FkX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41OGU5YTk1NTRiNDI1MzA3NzM2OGRmYjc4OGZlMDFjN2ZlNjIxNjhiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmNPdmVybG9hZF9mcmFnLmZyYWcK
QEAgLTAsMCArMSwyNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCB0ZXN0Vm9pZCAodmVjNCB2LCB2ZWM0IHYxKQoreworfQorCit2b2lkIHRlc3RWb2lkIChp
dmVjNCB2LCBpdmVjNCB2MSkKK3sKK30KKwordm9pZCBtYWluKHZvaWQpCit7CisgICAgdmVjNCB2
OworICAgIGl2ZWM0IGk7CisgICAgdGVzdFZvaWQoaSwgaSk7CisgICAgdGVzdFZvaWQodiwgdik7
CisgICAgZ2xfRnJhZ0NvbG9yID0gdjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RGdW5jT3ZlcmxvYWRfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmNP
dmVybG9hZF92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUyZjdlNjA3Yjk0Y2NkYjU0ODg4ODIwMzkx
OWE3YjA5YWYyNDc5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RG
dW5jT3ZlcmxvYWRfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMzcgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3N0cnVjdCBTMgoreworICAgICAgICBmbG9h
dCBmOworfTsKKworc3RydWN0IFMxCit7CisgICAgICAgIGZsb2F0IGY7CisgICAgICAgIFMyIHMy
OworfTsKKworZmxvYXQgcHJvY2VzcyhTMSBzMSk7CitmbG9hdCBwcm9jZXNzKFMyIHMyKTsKKwor
dm9pZCBtYWluKCkKK3sKKyAgICAgICAgUzEgczEgPSBTMSgxLjAsIFMyKDEuMCkpOworICAgICAg
ICBnbF9Qb3NpdGlvbiA9IHZlYzQocHJvY2VzcyhzMSkpOworfQorCitmbG9hdCBwcm9jZXNzKFMx
IHMxKQoreworICAgICAgICByZXR1cm4gczEuZiArIHByb2Nlc3MoczEuczIpOworfQorCitmbG9h
dCBwcm9jZXNzKFMyIHMyKQoreworICAgICAgICByZXR1cm4gczIuZjsKK30KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY3Rp
b24xX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jdGlvbjFfdmVydC52ZXJ0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzODRjYzU3YjQyMDI5OWI4MmIzNDdmZmViMjk0MTlhY2FlNjExMDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY3Rpb24xX3ZlcnQudmVy
dApAQCAtMCwwICsxLDM2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCit2ZWMzIGJhcih2ZWMzLCB2ZWMzKTsKKwordW5pZm9ybSB2ZWMyIHY7CisKK2Jv
b2wgZm9vKG91dCB2ZWMzKTsKKwordm9pZCBtYWluKCkKK3sKKyAgICBib29sIGIxLCBiMiwgYjMs
IGI0LCBiNSwgYjY7CisKKyAgICBiMSA9IGFueShsZXNzVGhhbih2LCB2KSk7CisKKyAgICBiMiA9
IGFsbChsZXNzVGhhbkVxdWFsKHYsIHYpKTsKKworICAgIGIzID0gYW55KG5vdChncmVhdGVyVGhh
bih2LCB2KSkpOworCisgICAgYjQgPSBhbnkoZ3JlYXRlclRoYW5FcXVhbCh2LCB2KSk7CisKKyAg
ICBiNSA9IGFueShub3RFcXVhbCh2LCB2KSk7CisKKyAgICBiNiA9IGFueShlcXVhbCh2LCB2KSk7
CisKKyAgICB2ZWMyIHU7CisgICAgaWYgKGIxICYmIGIyICYmIGIzICYmIGI0ICYmIGI1ICYmIGI2
KQorICAgICAgICB1ID0gdjsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCh1LCB1KTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RNb2R1bGVfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNiYzY5ODE1Zjlk
YzI2NGI0MjQ5YzQ1Mzk2OWVlMjkwZjI1OTIxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RNb2R1bGVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsNjQgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZlYzQgdGVzdF9mdW5jdGlvbjQoZmxvYXQp
OwordmVjNCB0ZXN0X2Z1bmN0aW9uMShmbG9hdCk7Cit2ZWM0IHRlc3RfZnVuY3Rpb24yKGZsb2F0
KTsKK3ZlYzQgdGVzdF9mdW5jdGlvbjMoZmxvYXQpOworZmxvYXQgZiA9IDIuNjsKKworCit2ZWM0
IHRlc3RfZnVuY3Rpb24xKGZsb2F0IGZmKQoreworICAgIHZlYzQgZnVuY192ZWM0ID0gdmVjNChm
ZitmKTsKKyAgICByZXR1cm4gZnVuY192ZWM0OworfQorCitmbG9hdCBmMSA9IDEuNTsKKwordmVj
NCB0ZXN0X2Z1bmN0aW9uNChmbG9hdCBmZikKK3sKKyAgICB2ZWM0IGZ1bmNfdmVjNCA9IHZlYzQo
ZjEpOworICAgIHJldHVybiBmdW5jX3ZlYzQ7Cit9CisKK2Zsb2F0IGYyID0gMy41OworCit2b2lk
IG1haW4oKQoreworICAgIHZlYzQgdjEgPSB0ZXN0X2Z1bmN0aW9uNChmMik7CisgICAgdmVjNCB2
MiA9IHRlc3RfZnVuY3Rpb24xKGYyKTsKKyAgICB2ZWM0IHYzID0gdGVzdF9mdW5jdGlvbjIoZjIp
OworICAgIHZlYzQgdjQgPSB0ZXN0X2Z1bmN0aW9uMyhmMik7CisKKyAgICBpZiAoZjEgPiBmMikg
eworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2MSArIHYyICsgdjMgKyB2NDsKKyAgICB9IGVsc2UK
KyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdjEgKyB2MiArIHYzICsgdjQ7Cit9CisKK2Zsb2F0IGY0
ID0gNS41OwordmVjNCB0ZXN0X2Z1bmN0aW9uMyhmbG9hdCBmZikKK3sKKyAgICBpZiAoZmYgPiBm
NCkKKwlyZXR1cm4gdmVjNChmZik7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gdmVjNChmNCk7
Cit9CisKK2Zsb2F0IGYzID0gNC41OwordmVjNCB0ZXN0X2Z1bmN0aW9uMihmbG9hdCBmZikKK3sK
KyAgICB2ZWM0IGZ1bmNfdmVjNCA9IHZlYzQoZmYrZjMpOworICAgIHJldHVybiBmdW5jX3ZlYzQ7
Cit9CisKK2Zsb2F0IGY1ID0gNi41OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dFBhcnNlMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2UxX2ZyYWcuZnJh
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NWE5ZmIwN2ZiYzBiNTBjODhhNWQyYjQyZWY5YTcwMmU4MjlmZDI2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMV9mcmFnLmZyYWcK
QEAgLTAsMCArMSw1MSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dW5pZm9ybSB2ZWMzIGFbOF07CisKK3VuaWZvcm0gYm9vbCB1YjsKK3ZhcnlpbmcgbWF0NCB2bTsK
KworaW50IGZvbyhmbG9hdCk7CisKK2Zsb2F0IGJhcihpbnQgaSkKK3sKKyAgICByZXR1cm4gZmxv
YXQoaSk7Cit9CisKK3ZvaWQgbWFpbiAodm9pZCkKK3sKKyAgICBjb25zdCBpbnQgeCA9IDM7Cisg
ICAgbWF0NCBhWzRdOworICAgIHZlYzQgdjsKKworICAgIGZvciAoZmxvYXQgZiA9IDAuMDsgZiAh
PSAzLjA7ICsrZikKKyAgICB7CisgICAgfQorCisgICAgdmVjMyB2M1t4ICsgeF07CisKKyAgICBp
bnQgdmkgPSBmb28oMi4zKTsKKworICAgIHZlYzMgdjNfMSA9IHYzW3hdOworCisgICAgZmxvYXQg
ZjEgPSBhW3hdWzJdLnogKiBmbG9hdCh4KTsKKyAgICBmMSA9IGFbeF1bMl1bMl0gKiBmbG9hdCh4
KTsKKyAgICBmMSA9IHZbMl0gKiB2WzFdOworCisgICAgY29uc3QgaW50IGNpID0gMjsKKworfQor
CitpbnQgZm9vKGZsb2F0IGYpCit7CisgICAgcmV0dXJuIDI7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0UGFyc2UyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RQYXJzZTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZmUyZWM1N2FmMzE0Y2EyNTBhYTZiZTcx
OTU5MDgwOTAwZWI2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0
UGFyc2UyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDEzNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgorY29uc3QgZmxvYXQgRmxvYXRDb25zdDEgPSAzLjAgKiA4LjAsIGZs
b2F0Q29uc3QyID0gNC4wOworY29uc3QgYm9vbCBCb29sQ29uc3QxID0gdHJ1ZSAmJiB0cnVlIHx8
IGZhbHNlOworY29uc3QgYm9vbCBCb29sQ29uc3QyID0gZmFsc2UgfHwgIWZhbHNlICYmIGZhbHNl
OworCit2b2lkIG1haW4gKHZvaWQpCit7CisgICAgZmxvYXQgZmxvYXQxID0gNC4wLCBmbG9hdDIg
PSBmbG9hdENvbnN0MjsKKyAgICBpbnQgaW50XzEgPSBpbnQoRmxvYXRDb25zdDEpOworICAgIHZl
YzQgdmVjNF8xOworICAgIHZlYzMgdmVjM18xOworLy8gIHVuc2lnbmVkIGludCB1bnNpZ25lZF9p
bnRfMTsKKyAgICBib29sIGJvb2w0LCBib29sNTsKKworICAgIGJvb2w0ID0gYm9vbDU7CisgICAg
Ly9mbG9hdDEgPSBib29sNTsKKyAgICAvL2Jvb2w1ID0gZmxvYXQxOworCisgICAgYm9vbDQgPSA0
LjAgPiA1LjA7CisgICAgYm9vbDQgPSAhKDMuMiAhPSAwLjApOworICAgIGJvb2w0ID0gYm9vbChm
bG9hdDEpOworICAgIGJvb2w0ID0gYm9vbChpbnRfMSk7CisgICAgZmxvYXQxID0gZmxvYXQoYm9v
bDQpOworICAgIGZsb2F0MSA9IGZsb2F0KGludF8xKTsKKyAgICBpbnRfMSA9IGludChmbG9hdDEp
OworICAgIGludF8xID0gaW50KGJvb2w0KTsKKworICAgIHsKKyAgICAgICAgaW50IGEsIGIsIGM7
CisKKyAgICAgICAgYSA9IGI7CisgICAgICAgIGIgPSBjOworICAgICAgICB7CisgICAgICAgICAg
ICBpbnQgYiwgYywgZDsKKworICAgICAgICAgICAgYiA9IGM7CisgICAgICAgICAgICBjID0gZDsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgYSwgZCwgZTsKKworICAgICAgICAg
ICAgICAgIGEgPSBkOworICAgICAgICAgICAgICAgIGQgPSBlOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBhLCBiLCBjOworICAgICAgICAgICAgICAg
IGEgPSBiOworICAgICAgICAgICAgICAgIGIgPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIGEgPSBiOworICAgICAgICBiID0gYzsKKyAgICB9CisKKyAgICB7CisgICAgICAg
IGZsb2F0IGYxLCBmMjsKKyAgICAgICAgdmVjMyB2MzEsIHYzMjsKKworICAgICAgICBtYXgoZjEs
IGYyKTsKKyAgICAgICAgbWF4KHYzMSwgdjMyKTsKKworICAgICAgICB2ZWM0IHY0ID0gdmVjNCgz
LjApOworICAgICAgICB2ZWMzIHYzID0gLXZlYzMoMi4wLCAxLjAsIDMuMCk7CisgICAgICAgIG1h
dDIgbTIgPSBtYXQyKDMuMCwgNC4wLCA2LjAsIDMuMCk7CisgICAgICAgIC8vbWF0NCBtNCA9IG1h
dDQoMS4wLCBtMiwgdjMsIHY0LCBtMik7CisgICAgfQorCisgICAgaWYgKEJvb2xDb25zdDEpCisg
ICAgICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAo
Qm9vbENvbnN0MikKKyAgICAgICAgKyt2ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNf
MTsKKworICAgIGlmIChCb29sQ29uc3QxIHx8IEJvb2xDb25zdDIpCisgICAgICAgICsrdmVjM18x
OworICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAoQm9vbENvbnN0MiAmJiBC
b29sQ29uc3QxKQorICAgICAgICArK3ZlYzNfMTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18x
OworCisgICAgaWYgKEZsb2F0Q29uc3QxICE9IDAuMCkKKyAgICAgICAgLS1pbnRfMTsKKyAgICBl
bHNlCisgICAgICAgICsraW50XzE7CisKKyAgICBpZiAoMCAhPSAwKQorICAgICAgICArK2ludF8x
OworICAgIGVsc2UKKyAgICAgICAgLS1pbnRfMTsKKworICAgIGJvb2w0ID0gQm9vbENvbnN0MSAm
JiAhIChpbnRfMSAhPSAwKSAmJiAhIEJvb2xDb25zdDEgICYmICEgKEZsb2F0Q29uc3QxICE9IDAu
MCkgJiYgKEZsb2F0Q29uc3QxICE9IDAuMCkgJiYgKGZsb2F0MSAhPSAwLjApOworCisgICAgZmxv
YXQxID0gNSAhPSAwID8gZmxvYXQxIDogZmxvYXQoaW50XzEpOworICAgIGZsb2F0MSA9IDAgIT0g
MCA/IGZsb2F0MSA6IGZsb2F0KGludF8xKTsKKworICAgIGlmIChmbG9hdDEgIT0gZmxvYXQxKQor
ICAgICAgICArK2ludF8xOworICAgIGVsc2UKKyAgICAgICAgLS1pbnRfMTsKKworICAgIGZsb2F0
MSA9IGZsb2F0MSAhPSBmbG9hdDEgPyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisKKyAgICAtLWlu
dF8xOworICAgICsrZmxvYXQxOworICAgICh2ZWM0XzEueCktLTsKKyAgICB2ZWMzXzErKzsKKwor
CWlmIChpbnRfMSAhPSA0KQorCQlkaXNjYXJkOworCisgICAgZmxvYXQxID0gNC4wICsgNi4wOwor
ICAgIGludCBpaSxqaixrazsKKyAgICBmbG9hdCBmZjsKKyAgICBpaSA9IGpqLCBraywgZmY7CisK
KyAgICB2ZWM0XzEgPSB2ZWM0XzEgKyAyLjA7CisgICAgaXZlYzQgaXY7CisgICAgaXYgPSBpdiAr
IDI7CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChmbG9hdDErZmxvYXQxLCBmbG9hdDEsIGZsb2F0
MSwgZmxvYXQoaW50XzEpKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQ
YXJzZTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDI2ODY0NDJhOWE2MThkNWM1YmYyNTU4NzNlN2ZjZWEzYjY2YjIwOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfdmVydC52ZXJ0CkBA
IC0wLDAgKzEsMTQ5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCitjb25zdCBmbG9hdCBGbG9hdENvbnN0MSA9IDMuMCAqIDguMCwgZmxvYXRDb25zdDIg
PSA0LjA7Citjb25zdCBib29sIEJvb2xDb25zdDEgPSB0cnVlICYmIHRydWUgfHwgZmFsc2U7Citj
b25zdCBib29sIEJvb2xDb25zdDIgPSBmYWxzZSB8fCAhZmFsc2UgJiYgZmFsc2U7CisKK3ZvaWQg
bWFpbiAodm9pZCkKK3sKKyAgICBmbG9hdCBmbG9hdDEgPSA0LjAsIGZsb2F0MiA9IGZsb2F0Q29u
c3QyOworICAgIGludCBpbnRfMSA9IGludChGbG9hdENvbnN0MSk7CisgICAgdmVjNCB2ZWM0XzE7
CisgICAgdmVjMyB2ZWMzXzEgPSB2ZWMzKDEsIDEsIDEpOworCXZlYzMgdmVjM18yID0gdmVjMygw
LCAwLCAwKTsKKy8vICB1bnNpZ25lZCBpbnQgdW5zaWduZWRfaW50XzE7CisgICAgYm9vbCBib29s
NCwgYm9vbDU7CisKKyAgICBib29sNCA9IGJvb2w1OworICAgIC8vZmxvYXQxID0gYm9vbDU7Cisg
ICAgLy9ib29sNSA9IGZsb2F0MTsKKworICAgIGJvb2w0ID0gNCA+IDU7CisgICAgYm9vbDQgPSAh
KDMuMiAhPSAwLjApOworICAgIGJvb2w0ID0gYm9vbChmbG9hdDEpOworICAgIGJvb2w0ID0gYm9v
bChpbnRfMSk7CisgICAgZmxvYXQxID0gZmxvYXQoYm9vbDQpOworICAgIGZsb2F0MSA9IGZsb2F0
KGludF8xKTsKKyAgICBpbnRfMSA9IGludChmbG9hdDEpOworICAgIGludF8xID0gaW50KGJvb2w0
KTsKKworICAgIHsKKyAgICAgICAgaW50IGEsIGIsIGM7CisKKyAgICAgICAgYSA9IGI7CisgICAg
ICAgIGIgPSBjOworICAgICAgICB7CisgICAgICAgICAgICBpbnQgYiwgYywgZDsKKworICAgICAg
ICAgICAgYiA9IGM7CisgICAgICAgICAgICBjID0gZDsKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBpbnQgYSwgZCwgZTsKKworICAgICAgICAgICAgICAgIGEgPSBkOworICAgICAgICAg
ICAgICAgIGQgPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGludCBhLCBiLCBjOworICAgICAgICAgICAgICAgIGEgPSBiOworICAgICAgICAgICAgICAg
IGIgPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGEgPSBiOworICAgICAg
ICBiID0gYzsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGZsb2F0IGYxLCBmMjsKKyAgICAgICAg
dmVjMyB2MzEsIHYzMjsKKworICAgICAgICBtYXgoZjEsIGYyKTsKKyAgICAgICAgbWF4KHYzMSwg
djMyKTsKKworICAgICAgICB2ZWM0IHY0ID0gdmVjNCgzLjApOworICAgICAgICB2ZWMzIHYzID0g
LXZlYzMoMi4wLCAxLjAsIDMuMCk7CisgICAgICAgIG1hdDIgbTIgPSBtYXQyKDMuMCwgNC4wLCA2
LjAsIDMuMCk7CisgICAgICAgIC8vbWF0NCBtNCA9IG1hdDQoMS4wLCBtMiwgdjMsIHY0LCBtMik7
CisgICAgfQorCisgICAgaWYgKEJvb2xDb25zdDEpCisgICAgICAgICsrdmVjM18xOworICAgIGVs
c2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAoQm9vbENvbnN0MikKKyAgICAgICAgKyt2
ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29sQ29uc3Qx
IHx8IEJvb2xDb25zdDIpCisgICAgICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAgICAgLS12
ZWMzXzE7CisKKyAgICBpZiAoQm9vbENvbnN0MiAmJiBCb29sQ29uc3QxKQorICAgICAgICArK3Zl
YzNfMTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18xOworCisgICAgaWYgKEZsb2F0Q29uc3Qx
ICE9IDAuMCkKKyAgICAgICAgLS1pbnRfMTsKKyAgICBlbHNlCisgICAgICAgICsraW50XzE7CisK
KyAgICBpZiAoMCAhPSAwKQorICAgICAgICArK2ludF8xOworICAgIGVsc2UKKyAgICAgICAgLS1p
bnRfMTsKKworICAgIGJvb2w0ID0gQm9vbENvbnN0MSAmJiAhIChpbnRfMSAhPSAwKSAmJiAhIEJv
b2xDb25zdDEgICYmICEgKEZsb2F0Q29uc3QxICE9IDAuMCkgJiYgKEZsb2F0Q29uc3QxICE9IDAu
MCkgJiYgKGZsb2F0MSAhPSAwLjApOworCisgICAgZmxvYXQxID0gNSAhPSAwID8gZmxvYXQxIDog
ZmxvYXQoaW50XzEpOworICAgIGZsb2F0MSA9IEJvb2xDb25zdDEgPyBmbG9hdDEgOiBmbG9hdChp
bnRfMSk7CisKKyAgICBpZiAoZmxvYXQxICE9IGZsb2F0MSkKKyAgICAgICAgKytpbnRfMTsKKyAg
ICBlbHNlCisgICAgICAgIC0taW50XzE7CisKKyAgICBmbG9hdDEgPSBmbG9hdDEgIT0gZmxvYXQx
ID8gZmxvYXQxIDogZmxvYXQoaW50XzEpOworCisgICAgLS1pbnRfMTsKKyAgICArK2Zsb2F0MTsK
KyAgICAodmVjNF8xLngpLS07CisgICAgdmVjM18xKys7CisKKyAgICBpZiAodmVjM18xLnggPiB2
ZWMzXzIueCkKKyAgICAgICAgZmxvYXQxID0gNC4wICsgNi4wOworCisgICAgaWYgKGJvb2w0IF5e
IGJvb2w1KQorICAgICAgICBmbG9hdDEgKj0gMi40OworCisgICAgaWYgKGZhbHNlIF5eIGZhbHNl
KQorICAgICAgICBmbG9hdDEgKj0gMi41OworCisgICAgaWYgKHRydWUgXl4gZmFsc2UpCisgICAg
ICAgIGZsb2F0MSAqPSAyLjY7CisKKyAgICB7CisgICAgICAgIGludCBpOworICAgIH0KKworICAg
IGlmIChib29sNCkgeworICAgICAgICBpbnQgaTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQg
aTsKKyAgICAgICAgaSA9IDU7CisgICAgfQorCisgICAgbWF0NCBtMTsKKyAgICBtMVsyXVsxXSA9
IDQuMDsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNChmbG9hdDErZmxvYXQxLCBmbG9hdDEsIGZs
b2F0MSwgZmxvYXQoaW50XzEpKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RQYXJzZVRlc3QxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZVRlc3Qx
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWMxMDYxMDNiYTY5ZjYzMTcwN2NlNDFhNDE1MmYzZTkz
Y2M2ZjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVz
dDFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICB2ZWM0IHY7Cit9IHMyOworCit2b2lkIG1haW4o
KQoreworICAgIHMgczEgPSBzKHZlYzQoaXZlYzQoNC4wLCB2ZWMyKDUsNiksIDcuMCkpKTsKKyAg
ICB2ZWM0IHYgPSB2ZWM0KDIsaXZlYzIoMy4wLCA0LjApLCA1LjApOworICAgIHZlYzQgdjQgPSB2
ZWM0KGl2ZWM0KDguMCkpOworCisgICAgZ2xfRnJhZ0NvbG9yID0gdjQgKyB2ICsgczEudjsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZi
NmRkYzYwMTNkYmZjZGQ1ZjVhZTVkOTIyOTNhZTlmYjNmZmE3NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjYg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzeworICAg
IGZsb2F0IGY7CisgICAgdmVjMyAgdjsKK30gczEgOwordm9pZCBtYWluKCkKK3sKKyAgICB2ZWM0
IHYgPSB2ZWM0KGZsb2F0KHZlYzIoMSwyKSksIDUsNiw3KTsgIC8vIDEsIDUsIDYsIDcKKyAgICB2
ZWM0IHYxID0gdmVjNCgzLCB2ZWMyKGl2ZWMyKDEsMikpLCA0KTsgIC8vIDMsIDEsIDIsIDQKKyAg
ICB2ZWM0IHYyID0gdmVjNCg4LCA5LCB2ZWM0KGl2ZWM0KDEsMiwzLDQpKSk7IC8vIDgsOSwgMSwy
CisgICAgdmVjMiB2MyA9IHZlYzIodjIpOyAgLy8gOCw5CisgICAgdmVjNCB2NCA9IHZlYzQodjMs
IHYyLnosIHYyLncpOyAgLy8gOCw5LDEsMgorCisgICAgY29uc3QgdmVjNCB2NSA9IHZlYzQoMi4w
LCBzKDIuMCwgdmVjMygzLDQsNSkpLnYpOyAvLyAyLDMsNCw1CisgICAgZ2xfRnJhZ0NvbG9yID0g
djUgKyB2ICsgdjEgKyB2NCA7ICAvLyAxNCwgMTgsIDEzLCAxOAorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NvcnJlY3RQcmVwcm9jZXNzNV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiYWMxYTAxMTFmZGE3
ZTA2Mzc3M2Y0Y2M0NWNmMGUwNjk0N2I2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL0NvcnJlY3RQcmVwcm9jZXNzNV9mcmFnLmZyYWcKQEAgLTAsMCArMSwzMSBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy9tdXRpcGxlIGxpbmUgbWFjcm9zIC0g
dGVzdCBjYXNlLgorCisjZGVmaW5lIHRlc3QgNQorI2RlZmluZSB0MSAxCisjZGVmaW5lIHQyIDIK
KyNkZWZpbmUgdG9rZW4gKHQxK3QyKQorI2RlZmluZSB0ZXN0MSBpbnQgc3VtID0xOyBzdW0gPSB0
ZXN0OyBzdW0gPSB0ZXN0K3Rlc3Q7CisKKyNkZWZpbmUgdGVzdDIgeyB0ZXN0MSBzdW0gPSBzdW0g
K3Rva2VuOyBzdW0gPSB0Mip0MTsgfQorCit2b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgdGVzdDM9
MTsKKyB0ZXN0MQorIHRlc3QyOworIHRlc3QzID0gdGVzdDsKKyBzdW0gPSB0ZXN0MzsKK30KKwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczhfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMWEzNDY2ZTlhYmZlNDEzYmYyMDUyZGEzYjcwZGY4NTA3MDg0OTY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDExNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy8gRXh0
ZW5zaXZlIHRlc3Rpbmcgb24gI2lmICNlbHNlICNlbGlmICNpZmRlZiwgI2lmbmRlZiBhbmQgI2Vu
ZGlmLgorCisKKyNkZWZpbmUgdDEgMQorCisjaWYodDE9PTEpCisgICNkZWZpbmUgdDIgMgorI2Vu
ZGlmCisKKyNpZiAodDIhPTIpCisgICNkZWZpbmUgdDMgMzMKKyNlbHNlCisgICNkZWZpbmUgdDMg
MworI2VuZGlmCisKKyNpZiAodDMhPTMpCisgI2RlZmluZSB0NCA0CisjZWxpZiAodDM9PTMpCisg
I2RlZmluZSB0NCA0NAorI2Vsc2UKKyAgI2RlZmluZSB0NCAwCisjZW5kaWYKKworI2lmIGRlZmlu
ZWQodDUpCisgI2RlZmluZSB0NiA2CisjZWxpZiAodDMhPTMpCisgI2RlZmluZSB0NSA1CisjZWxp
ZiAodDM9PTMpCisgI2RlZmluZSB0NSA1CisjZW5kaWYKKworI2lmZGVmIHQ1CisgI2RlZmluZSB0
NiA2CisjZWxzZQorICNkZWZpbmUgdDcgNworI2VuZGlmCisKKyNpZm5kZWYgdDgKKyAjZGVmaW5l
IHQ4IDgKKyNlbmRpZgorCisjaWYgZGVmaW5lZCB0OAorICNkZWZpbmUgdDkKKyAjaWZkZWYgdDkK
KyAgI2RlZmluZSAgdDEwIDEwCisgI2VuZGlmCisjZWxpZgorICNkZWZpbmUgdDExIDExCisjZW5k
aWYKKworI2lmbmRlZiB0OAorICNkZWZpbmUgdDEyIDEyCisjZWxzZQorICNkZWZpbmUgdDEyIDEy
CisgI2lmbmRlZiB0MTMKKyAgI2RlZmluZSB0MTMgMTMKKyAjZW5kaWYKKyAjaWZkZWYgdDE0Cisg
ICNkZWZpbmUgdDE1IDE1CisgI2Vsc2UKKyAgI2lmIGRlZmluZWQgdDgKKyAgICNkZWZpbmUgdDE2
IDE2CisgICNlbmRpZgorICNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiB0MQorICAgI2lmZGVmIHQx
MAorICAgICAgI2lmIGRlZmluZWQgdDgKKyAgICAgICAgICNpZiBkZWZpbmVkKHQzKQorICAgICAg
ICAgICAgICAgI2lmbmRlZiB0MjAKKyAgICAgICAgICAgICAgICAgICNkZWZpbmUgdDI1IDI1Cisg
ICAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICNlbHNlCisgICAgICAgICAgICAjZGVmaW5l
IHQxNSAxNQorICAgICAgICAgICAgI2RlZmluZSB0MjQgMjQKKyAgICAgICAgICNlbmRpZgorICAg
ICAgI2VuZGlmCisgICAjZW5kaWYKKyNlbHNlCisgICAjaWZkZWYgdDIxCisgICAgICNkZWZpbmUg
dDIyIDIyCisgICAjZWxzZQorICAgICAjZGVmaW5lIHQyMyAyMworICAgI2VuZGlmCisjZW5kaWYK
KyNkZWZpbmUgdDcgNworI2RlZmluZSB0MTEgMTEKKyNkZWZpbmUgdDE0IDE0CisjZGVmaW5lIHQx
NSAxNQorI2RlZmluZSB0MjAgMjAKKyNkZWZpbmUgdDIyIDIyCisjZGVmaW5lIHQyMyAyMworI2Rl
ZmluZSB0MjQgNDIKKwordm9pZCBtYWluKHZvaWQpCit7CisgaW50IHN1bSA9MDsKKyBzdW0gPSB0
MSt0Mit0Myt0NCt0NTsKKyBzdW0gPSB0Nit0Nyt0OCt0OSt0MTA7Cisgc3VtID0gdDExK3QxMit0
MTMrdDE0K3QxNTsKKyBzdW0gPSB0MTYrdDIwK3QyMit0MjMrdDI1K3QyNDsKK30KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk0NjMx
MjkzNDI5YTY0ZmMzMTc0OTQ2NTRhYTY1YTMxM2EyZDhlNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOV9mcmFnLmZyYWcKQEAgLTAsMCArMSwzMiBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2RlZmluZSB0MSAyLjMz
MzMzMzMzMzMzMzMzMzMKKyNkZWZpbmUgdDIgKDAuOTc4MjkzNjAwLTEuMCkKKyNkZWZpbmUgdDMg
LjkwOTA5MDkwOTAKKyNkZWZpbmUgdDQgMjY1NzgyMzUuMDAwMDAwMDgzNDg3CisjZGVmaW5lIHQ1
IDc4ZS0wMworI2RlZmluZSB0NiA3OC4xMDAwMDVFKzA1CisjZGVmaW5lIHQ3IDYyNzguNzhlLTUK
Kwordm9pZCBtYWluKHZvaWQpeworICAgIGZsb2F0IHRlcz0yZS0zOworICAgIGZsb2F0IHRlc3Q9
My4yZS01OworICAgIGZsb2F0IHRlc3QxPTAuOTk5OTU1MDA7CisgICAgZmxvYXQgdGVzdDI9Njc4
OS45ODM7CisKKyAgICB0ZXN0ID0gdDErdDI7CisgICAgdGVzdCA9IHQzLXQ0OworICAgIHRlcyAg
PSB0NSAqIHQ2OworICAgIHRlc3QyID0gdDc7CisKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHRl
c3QsIHRlcywgdGVzdDEsIHRlc3QyKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RTd2l6emxlMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMjZmMTg2YzFlNzYxYzA5MDEyZWYyZjJlOTczZTQ0OGUw
NGQwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjQgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2ID0gdmVjMigxLDUpOworICAgIC8v
IGF0IHRoZSBlbmQgb2YgbmV4dCBzdGF0ZW1lbnQsIHZhbHVlcyBpbgorICAgIC8vIHYueCA9IDEy
LCB2LnkgPSAxMgorICAgIHYueHkgKz0gdi55eCArPSB2Lnh5OworICAgIC8vIHYxIGFuZCB2Miwg
Ym90aCBhcmUgaW5pdGlhbGl6ZWQgd2l0aCAxMgorICAgIHZlYzIgdjEgPSB2LCB2MiA9IHY7CisK
KyAgICB2MS54eSArPSB2Mi55eCArPSArKyh2Lnh5KTsgIC8vIHYxID0gMzcsIHYyID0gMjUgZWFj
aAorICAgIHYxLnh5ICs9IHYyLnl4ICs9ICh2Lnh5KSsrOyAgLy8gdjEgPSA3NSwgdjIgPSAzOCBl
YWNoCisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2MSx2Mik7ICAvLyA3NSwgNzUsIDM4LCAzOAor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZj
ZTNiM2VlMzMyMjA5N2EzZjQzNzlhNWEyYmIyZjZkNjU2MzYyNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxNyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0cmli
dXRlIHZlYzQgZ3RmX05vcm1hbDsKK3VuaWZvcm0gbWF0NCBndGZfTm9ybWFsTWF0cml4Owordm9p
ZCBtYWluKHZvaWQpCit7CisgICB2ZWM0IHYgPSB2ZWM0KDEsMiwzLDQpOworICAgdmVjMyB2MyA9
IHZlYzMoNSw2LDcpOworICAgdmVjNCB2NCAgPSB2ZWM0KG5vcm1hbGl6ZSh2My55enkpLnh5ei56
eXgsIDEuMCk7CisgICBnbF9Qb3NpdGlvbiA9IHY0ICsgdmVjNChub3JtYWxpemUoZ3RmX05vcm1h
bE1hdHJpeCAqIGd0Zl9Ob3JtYWwpLnh5ei56eXgsIHY0LnkpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RTd2l6emxlMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNzRhYTJhNzdlYjU0MjYyNGVi
NzkwNTZhZjI3YzQ5YjY3NjIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RTd2l6emxlMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwzOSBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmLCBmMSwg
ZjI7CisgICAgZiA9IGYxID0gZjI7CisgICAgZiArPSBmMSArPSBmMjsKKworICAgIHZlYzQgdiwg
djEsIHYyOworICAgIHYgPSB2MSA9IHYyOworICAgIHYgKz0gdjEgKz0gdjI7CisgICAgdi53eCA9
IHYxLnp4ID0gdjIueXg7CisgICAgdi53eCArPSB2MS56eCArPSB2Mi55eDsKKworICAgIG1hdDQg
IG0sIG0xLCBtMjsKKyAgICBtID0gbTEgPSBtMjsKKyAgICBtICs9IG0xICs9IG0yOworICAgIG1b
M10ud3ggPSBtMVsyXS56eCA9IG0yWzFdLnl4OworICAgIG1bM10ud3ggKz0gbTFbMl0uenggKz0g
bTJbMV0ueXg7CisKKyAgICBtYXQ0ICBhbVs0XSwgYW0xWzRdLCBhbTJbNF07CisgICAgYW1bM10g
PSBhbTFbMl0gPSBhbTJbMV07CisgICAgYW1bM10gKz0gYW0xWzJdICs9IGFtMlsxXTsKKyAgICBh
bVszXVszXS53eCA9IGFtMVsyXVsyXS56eCA9IGFtMlsxXVsxXS55eDsKKyAgICBhbVszXVszXS53
eCArPSBhbTFbMl1bMl0uenggKz0gYW0yWzFdWzFdLnl4OworICAgIGFtWzNdWzNdLnd4ICs9IGFt
MVsyXVsyXS56eCArPSArKyhhbTJbMV1bMV0ueXgpOworICAgIGFtWzNdWzNdLnd4ICs9IGFtMVsy
XVsyXS56eCArPSAoYW0yWzFdWzFdLnl4KSsrOworCisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChh
bVszXVszXS56LCBtWzNdLncsIHYudywgZik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9Db3JyZWN0U3dpenpsZTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6
bGUyX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTk3Y2MwYmFjM2RhNjM4NjU0NDUzOGYwN2EyNzVl
NzI4YzM3Y2IyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6
bGUyX3ZlcnQudmVydApAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIHZlYzQgdjEgPSB2ZWM0
KDUsNiw3LDgpOworICAgIHZlYzQgdjIgPSB2ZWM0KDksMTAsIDExLCAxMik7CisgICAgdmVjMyB2
MyA9ICh2MSAqIHYyKS55d3g7CisgICAgZmxvYXQgZiA9ICh2MiAqIHYxKS56OworICAgIHZlYzMg
djQgPSBub3JtYWxpemUoKHYxLnl3eCAqIHYzKS54eXopLnh5ejsKKyAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQodjQsIGYpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6
bGUzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlM19mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGYyNjY1YzEzZWFiNjg2ZTVjNDcwOTAxMTczMzhhMjc3YmRhYmQyMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlM19mcmFnLmZyYWcK
QEAgLTAsMCArMSwyNCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCBtYWluKCkKK3sKKyAgICB2ZWM0IHYgPSB2ZWM0KDUsNiw3LDgpOworICAgIC8vIHZhbHVl
IGNoYW5nZXMgZm9yIGxocworICAgIC8vIDg3NjUsIDY3NTgsIDg1NywgNzUgaS5lLiByZXBsYWNl
IHYuengKKyAgICAvLyB2YWx1ZSBjaGFuZ2VzIGZvciByaHMKKyAgICAvLyA4NzY1LCA2NzU4LCA4
NiBpLmUgcmVwbGFjZSB3aXRoIHYud3kKKyAgICAvLyByZXBsYWNlIHYueiB3aXRoIHYudworICAg
IC8vIHJlcGxhY2Ugdi54IHdpdGggdi55CisgICAgLy8gYWRkIDEuMDAwMDAwIHRvIHYudyBhbmQg
di55CisgICAgdi53enl4Lnp5d3gud3p5Lnp5ID0gKHYud3p5eC56eXd4Lnd4KSsrOworICAgIGds
X0ZyYWdDb2xvciA9IHZlYzQodik7ICAvLyA2LDcsOCw5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhMDQwNWEyNjRjM2VkNjcy
YTEzNDFhYmE1M2Y3YjRjNWVkY2JhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9Db3JyZWN0VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE5IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjdmVyc2lvbiAxMDAKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8qICN2ZXJzaW9u
IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IG51bWJlciAxMDAuIFRoZSBvbmx5IHN0YXRlbWVudHMg
YmVmb3JlCisgICAjdmVyc2lvbiBjYW4gYmUgY29tbWVudCBvciB3aGl0ZSBzcGFjZXMgKi8KKwor
dm9pZCBtYWluKCkKK3sKKyAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9EdXBsaWNhdGVWZXJzaW9uMV9WMTAwX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZj
ZTgxZTU4YjVhOGNhMThkNjdjYzFlYzk3YzdiNDQ3MjdhOWU3NzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9EdXBsaWNhdGVWZXJzaW9uMV9WMTAwX2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjdmVyc2lvbiAxMDAKKyN2ZXJzaW9uIDEwMAorI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgorLyogVHdvIHZlcnNpb24gc3RhdGVtZW50cyBhcmUgbm90IGFs
bG93ZWQgc2luY2UgYW55ICN2ZXJzaW9uIG11c3QgYmUgdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNl
LCBub24tY29tbWVudCAqLworCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0NvbG9yID0gdmVj
NCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Z1bmN0aW9uUGFyYW1fdmVydC52
ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25QYXJhbV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI3NDk0M2JkZjVmZjlkNzQ2ZGU2OGQ2ZGRiYjE4MzUyNTZjZWM4YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0Z1bmN0aW9uUGFyYW1fdmVydC52ZXJ0CkBAIC0wLDAgKzEsMjEg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2ludCB5
ID0gMTsKKworaW50IGZvbyhpbnQsIGludCBiW3ldKSAgLy8gYXJyYXkgc2l6ZSBzaG91bGQgYmUg
Y29uc3RhbnQKK3sKKyAgICByZXR1cm4gMTsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQg
YVsxXTsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLjApOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0luY2x1ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGI3ZDY3NGI4ZDk5ZTJlM2QwNmFkNjZmZjBlZDBkNWM4MWQzNmRhNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0luY2x1ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2
ZV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgorI2luY2x1ZGUgIkdML2J1aWxkL05WSURJQV9UZXN0X0luY2x1ZGVfZnJhZy5m
cmFnIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2Vy
dmVkX1dvcmRzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0xvd19MZXZlbF9Bc3NlbWJseV9S
ZXNlcnZlZF9Xb3Jkc19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA4NjgzMDQ3NzZjYzc1NmY2M2Ni
ZjViMGQ4MDQ5MzBmZDYzYmM0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0xv
d19MZXZlbF9Bc3NlbWJseV9SZXNlcnZlZF9Xb3Jkc19mcmFnLmZyYWcKQEAgLTAsMCArMSwyNyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBmbG9hdCBN
SU47Cit1bmlmb3JtIGZsb2F0IFIwOwordW5pZm9ybSBmbG9hdCBGT0dDOwordW5pZm9ybSBmbG9h
dCBDVUJFOwordW5pZm9ybSBmbG9hdCBmOwordW5pZm9ybSBmbG9hdCBvOwordW5pZm9ybSBmbG9h
dCBwOwordW5pZm9ybSBmbG9hdCB3OwordW5pZm9ybSBmbG9hdCB4OwordW5pZm9ybSBmbG9hdCB5
OwordW5pZm9ybSBmbG9hdCB6OworCit2b2lkIG1haW4oKQoreworCWdsX0ZyYWdDb2xvciA9IHZl
YzQoZiwgbywgcCwgdyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFt
ZXRlcnNfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudmVy
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMDBmMzlkNzRiMzFlMTI0NjM3YTc3ZmY4NzM2ZTg4ODg1MGYxMWZjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudmVy
dApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCit2b2lkIG1haW4odmVjNCBwb3NpdGlvbiA6IFBPU0lUSU9OKQoreworCWdsX1Bv
c2l0aW9uID0gcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRl
c3QzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1BhcnNlVGVzdDNfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEyNDI0NjdhMDg4Y2Y3ZWIzMTgxNTU1NzQxMDBmZGE4MWNiM2EwYWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3QzX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDIwIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworICAgIGNvbnN0IHZlYzQgdiA9IHZlYzQobm9ybWFsaXplKHZlYzQoMSkpKTsgICAgLy8g
QnVpbHRpbiBmdW5jdGlvbnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zIGlmIGFsbCB0aGVpciBw
YXJhbWV0ZXJzIGFyZSBjb25zdGFudCBleHByZXNzaW9ucyAtIGNvZGUgb2sKKyAgICBjb25zdCB2
ZWM0IHYxID0gdmVjNChjbGFtcCgxLjAsIC4yMCwgMy4wKSk7IC8vIEJ1aWx0aW4gZnVuY3Rpb25z
IGFyZSBjb25zdGFudCBleHByZXNzaW9ucyBpZiBhbGwgdGhlaXIgcGFyYW1ldGVycyBhcmUgY29u
c3RhbnQgZXhwcmVzc2lvbnMgLSBjb2RlIG9rCisgICAgZmxvYXQgZiA9IDEuMDsKKyAgICBjb25z
dCB2ZWM0IHYyID0gdmVjNChmbG9hdCh2ZWM0KDEsMiwzLGYpKSk7IC8vIGYgaXMgbm90IGNvbnN0
YW50IC0gY29kZSBmYWlscyBhbmQgdGVzdCBkb2VzIG5vdCBjb21waWxlIChleHBlY3RlZCkKKwor
ICAgIGdsX0ZyYWdDb2xvciA9IHYgKyB2MSArIHYyOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvUGFyc2VUZXN0NF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3Q0X2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MGVmNmQzMWIxM2IyZThjOGFlMjI5M2MyYzUxOGEwNjU1Y2Ex
NWNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0NF9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCB2ZWM0IHYgPSB2ZWMyKDIuMCwgMy4wKTsKKyAg
ICBnbF9GcmFnQ29sb3IgPSB2OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlz
c2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QZXJt
aXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjZkNjJi
MjBkYjNlZGU5ODc2Njg0NzEyNjYzOGY3Y2Y1ZDI1NGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKwlmbG9hdCBmID0gMjsgLy8gU2hvdWxkIGJlIDIuMAorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Blcm1pc3NpdmVfU2NhbGFyX1ZlY3Rvcl9FeHByZXNz
aW9uc19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M2N2M3ZmZiMTc1MWMzZmE5ZjE0YmY5YmJjMTc0
OGQ0YWI0OGM4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Blcm1pc3NpdmVf
U2NhbGFyX1ZlY3Rvcl9FeHByZXNzaW9uc19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKwl2ZWMy
IHYgPSB2ZWMyKDEuMCwgMi4wKTsKKwl2ICo9IDIuMDsgLy8gTGVnYWwgaW4gR0xTTC4KK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Rlcm5hcnlPcF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9UZXJuYXJ5T3BfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNTZmMDA1OTY5MjNjMTYwNDc3
MzdhOGJkN2E1ZmZjMjEwNDgyZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9U
ZXJuYXJ5T3BfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgbWF0NCBtOworICAgIHZlYzQg
djsKKyAgICBib29sIGI7CisgICAgZ2xfRnJhZ0NvbG9yID0gYiA/IHYgOiBtOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvVGV4dHVyZV9SZWN0YW5nbGVfU2FtcGxlcnNfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvVGV4dHVyZV9SZWN0YW5nbGVfU2FtcGxlcnNfZnJhZy5mcmFnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ4YmIwZDYwOWU1MWY5YTcwMDNmMjc3ZmEwMGNkNjRjYTllMmQxNjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNhbXA7CisKK3ZvaWQgbWFpbigpCit7CisJ
Z2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEUmVjdChzYW1wLCB2ZWMyKDAuMCwgMC4wKSk7Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTEwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2FycmF5MTBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NjY4MWNmMzY1ZGJhY2Q4MDE2MTg5
NzQyYzA5Y2UxZTg3ZGE2ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJh
eTEwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCisKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZltdOworICAgIGZsb2F0
IGZsdCA9IGZbNV07CisgICAgZmxvYXQgZlszXTsgIC8vIGhpZ2hlciBhcnJheSBpbmRleCBoYXMg
YWxyZWFkeSBiZWVuIHVzZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MTFf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGZkN2FiZGFkZjZhMzA2MDNkZmUzOTlhZGRhZjMyMzk4ZGQ0ZTI3ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5MTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAg
ZmxvYXQgZltdOworICAgIGludCBmWzRdOyAgLy8gYXJyYXkgcmVkZWNsYXJlZCB3aXRoIGEgZGlm
ZmVyZW50IHR5cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MV9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNDAyYmE5
MmI3NmU3YzljN2NmNGM4MTYwYmVmMDY1ZmI3MDI4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9hcnJheTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGFycmF5
WzJdWzJdOyAgLy8gdHdvIGRpbWVudGlvbmFsIGFycmF5cyBhcmUgbm90IGFsbG93ZWQKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5Ml9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9hcnJheTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZDBjYmMyNDI5MzBjZWRlZjFmOWFlYjll
NTE3ZTYzZTRiMzBhNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTJf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29uc3QgaW50IGFycmF5WzJdOyAgLy8gY2Fu
bm90IGRlY2xhcmUgY29uc3QgYXJyYXlzCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkzX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOGQ3MDYxYmQxZDlhZmM2OWNjNTdmYTQwODUwNTQ2ZjdiMzQ1ZWNiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQorewor
ICAgIGludCBhcnJheTFbMl0sIGFycmF5MlsyXTsKKyAgICBib29sIGIgPSBhcnJheTEgPT0gYXJy
YXkyOyAvLyBlcXVhbGl0eSBvcGVyYXRvciBkb2VzIG5vdCB3b3JrIG9uIGFycmF5cyBidXQgd29y
a3Mgb24gYXJyYXkgZWxlbWVudHMKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5
NF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTRfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkyYWJlYjgyNmM4YmUxZDYzZTk1ZTRmMTMzZjllYTM3MjhjNWVlYzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAg
ZmxvYXQgZlstMl07IC8vIGNhbm5vdCBkZWNsYXJlIGFycmF5cyB3aXRoIG5lZ2F0aXZlIHNpemUK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5NV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9hcnJheTVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MTM1NjIwODRlMjI2MDM4MzUw
ODRhNDM0MWZmZDAwZmFmZGNkYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGkgPSAzOworICAgIGZsb2F0
IGZbaV07IC8vIGFycmF5cyBzaG91bGQgYmUgZGVjbGFyZWQgd2l0aCBhIGNvbnN0YW50IHNpemUK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5Nl9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9hcnJheTZfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4M2Y0OWFmOWVlMjU4NjhlZWI5
NWQ1NzVjYmVkMTRkZTk0YzZlOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTZfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29uc3QgZmxvYXQgaW5kZXggPSAz
LjA7CisgICAgZmxvYXQgZltpbmRleF07ICAvLyBhcnJheXMgc2hvdWxkIGJlIGRlY2xhcmVkIHdp
dGggYW4gaW50ZWdlciBleHByZXNzaW9uIG5vdCBmbG9hdAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYXJyYXk3X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5N19mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDRkZDZlNmQ5YTkwZGM4NDc3ZDQxYWI1NWI2OTU1MjQ1N2YyMzc1OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5N19mcmFnLmZyYWcKQEAgLTAs
MCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBt
YWluKCkKK3sKKyAgICBmbG9hdCBmWzVdOworICAgIGZbXTsgIC8vIGFycmF5IHVzZWQgd2l0aG91
dCBhIHNpemUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OF9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9hcnJheThfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZGI4ODE5ZDZk
YmU4NzFiYzJkYzkyZmNmODgxNTAzMzFhOTg3MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9hcnJheThfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZls1XTsK
KyAgICBmbG9hdCBmW107ICAvLyByZWRlY2xhcmF0aW9uIG9mIGFycmF5IGFscmVhZHkgZGVjbGFy
ZWQgd2l0aCBhIHNpemUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OV9mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NWVk
Yzc1ZGMwOTIwMTk5NDAyNTQ2MGQ3ZWY1ZjU3OTc3NTU4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9hcnJheTlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiBh
cnJheVsyXTsKKyAgICBhcnJheS54eTsgIC8vIGFycmF5cyBjYW5ub3QgZGlyZWN0bHkgYmUgc3dp
enpsZWQsIGhvd2V2ZXIsIGFuIGVsZW1lbnQgb2YgYXJyYXkgY2FuIGJlIHN3aXp6bGVkCit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGUxX3ZlcnQudmVydCBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2F0dHJpYnV0ZTFfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMmYxYmU2ZDY3ZTkzNWRi
MDQ5ZWVkNzI2NGM1NWY4MTgwNTEyMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9hdHRyaWJ1dGUxX3ZlcnQudmVydApAQCAtMCwwICsxLDE0IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCithdHRyaWJ1dGUgaW50IGk7ICAvLyBhdHRy
aWJ1dGVzIGNhbm5vdCBiZSBpbnQgb3IgYm9vbAorCit2b2lkIG1haW4oKQoreworICAgIGdsX1Bv
c2l0aW9uID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0
ZTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlMl92ZXJ0LnZlcnQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmUzMzA5YjUzMDNkMzMyYTQ2MGZiNmJiY2E1Zjk1NmViY2ViOGJlZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTJfdmVydC52ZXJ0CkBAIC0wLDAgKzEs
MTQgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0
dHJpYnV0ZSBmbG9hdCBmWzJdOyAgLy8gYXR0cmlidXRlcyBjYW5ub3QgYmUgYXJyYXlzCisKK3Zv
aWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJp
YnV0ZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk0MTk3YmUzNzRjZDMzOThjNGI5ODgwMjdjODU3
MjJhMGEyYTY4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZV9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBhdHRyaWJ1dGUgZmxvYXQgZm9vOyAgLy8gYXR0
cmlidXRlcyBjYW4gYmUgZGVjbGFyZWQgYXQgZ2xvYmFsIHNjb3BlIGluIHZlcnRleCBzaGFkZXIg
b25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVydCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNmMTYyOTlh
MjBlOTQ0NGY2ZDY5MWYxODUxNDA4ZTBiYmFjZTBmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2F0dHJpYnV0ZV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAg
ICBhdHRyaWJ1dGUgZmxvYXQgZm9vOyAgLy8gYXR0cmlidXRlcyBjYW4gYmUgZGVjbGFyZWQgYXQg
YSBnbG9iYWwgc2NvcGUgb25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnJlYWtf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnJlYWtfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZi
ZmRjYmQzNjcwMDY1MTM0ZDExOWY4MGY3ZmY3MTgzZmE3ZDc4MDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9icmVha19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBicmVh
azsgLy8gYnJlYWsga2V5d29yZCBhbGxvd2VkIG9ubHkgaW5zaWRlIHRoZSBsb29wcworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZjEwZjQzNmU4YmMwNzI1
MTcyYjgzZjE3NmQ0MWJmN2VlZWYyNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwh
LS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0
ZXN0OiBidWlsZF8wMDFfdG9fMDA4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0
cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0
PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9k
eT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAg
InRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0QnVpbHRJbk92ZXJpZGVf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RCdWlsdEluT3Zlcmlk
ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBz
dGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RDb21tYV9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdENvbW1hX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdENvbnN0Rm9sZGluZzFf
dmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNvcnJlY3RDb25zdEZvbGRpbmcyX3ZlcnQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0Q29uc3RydWN0X3ZlcnQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiQ29ycmVjdENvbnN0cnVjdF92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogIkNvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJDb3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RXh0ZW5zaW9uNF9WMTAw
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0
YXQiOiB0cnVlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDlfdG9fMDE2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzNmNjY1ODI5MDQ4NDQ5MjdlYjAyODM0M2ZlMWExMTJiZWE5MDA1ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbApAQCAtMCww
ICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAwOV90b18wMTYuaHRtbDwvdGl0
bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
b2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJl
eGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWln
aHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09w
ZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIkNvcnJlY3RGdWxsX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEZ1bGxfdmVy
dC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6
IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0RnVuY092ZXJsb2Fk
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RnVuY092ZXJsb2Fk
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0
YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdEZ1bmNP
dmVybG9hZF92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RGdW5jT3ZlcmxvYWRfdmVydC50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRy
dWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0RnVuY3Rpb24xX3Zl
cnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEZ1bmN0aW9uMV92ZXJ0LnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RNb2R1bGVfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogIkNvcnJlY3RNb2R1bGVfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJDb3JyZWN0UGFyc2UxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJDb3JyZWN0UGFyc2UxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiQ29ycmVjdFBhcnNlMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
Q29ycmVjdFBhcnNlMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAor
ICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
IkNvcnJlY3RQYXJzZTJfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRl
ZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0UGFyc2UyX3ZlcnQu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0
cnVlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9f
MDI0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTg2OWVjYTQ4YzRhOGI0NGQ2NDllM2I1NTRlYzkyNTcyMzAwYTEzNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbApAQCAtMCwwICsxLDEx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4g
RE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAxN190b18wMjQuaHRtbDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVT
VGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNv
cnJlY3RQYXJzZVRlc3QxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3Jy
ZWN0UGFyc2VUZXN0MV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAor
ICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNv
cnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJl
Y3RQYXJzZVRlc3RfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAg
ICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3Jy
ZWN0UHJlcHJvY2VzczVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJl
Y3RQcmVwcm9jZXNzNV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAor
ICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNv
cnJlY3RQcmVwcm9jZXNzOF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29y
cmVjdFByZXByb2Nlc3M4X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUs
CisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
Q29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJD
b3JyZWN0UHJlcHJvY2VzczlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1
ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJDb3JyZWN0U3dpenpsZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNv
cnJlY3RTd2l6emxlMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAor
ICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
IkNvcnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
ZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RTd2l6emxlMV92
ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0
IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RTd2l6emxlMl9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFN3aXp6bGUyX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0
cnVlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9f
MDMyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTMyZjBjZTczNDVjZDM5MDdjMzMzZTkyODFkNTlhMWM1NWQ4ODg2YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbApAQCAtMCwwICsxLDEx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4g
RE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAyNV90b18wMzIuaHRtbDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVT
VGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
IkNvcnJlY3RTd2l6emxlMl92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
ZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RTd2l6emxlMl92
ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0
IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RTd2l6emxlM19m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFN3aXp6bGUzX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0
cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiRHVwbGljYXRlVmVyc2lvbjFfVjEw
MF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiRHVwbGljYXRlVmVyc2lvbjFf
VjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdFZl
cnNpb25fVjEwMF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFZl
cnNpb25fVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAg
ICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkZ1
bmN0aW9uUGFyYW1fdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1
bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJGdW5jdGlvblBhcmFtX3ZlcnQudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJQYXJzZVRlc3QzX2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJQYXJzZVRlc3QzX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJQYXJzZVRlc3Q0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJQYXJzZVRlc3Q0X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJhcnJheTEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJh
cnJheTEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAzM190b18wNDAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MmM3MGI3M2Y1YTc1OTA0YTExMmJiZTcwNGY1YzViNDg1ODQyZjE0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1s
CkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDMzX3RvXzA0MC5o
dG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52
YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2
cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJp
Y3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiYXJyYXkxMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
YXJyYXkxMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXkx
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTFfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5Ml9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiYXJyYXkyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJhcnJheTNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFy
cmF5M19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk0X2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTRfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5NV9mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiYXJyYXk1X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJhcnJheTZfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5
Nl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk3X2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTdfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0K
KyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MTZlZGIx
OTAwMjJkZDM1YjVmZGJiMzU3N2M3NmZiN2E5ZDE1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElU
LiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25m
b3JtYW5jZSB0ZXN0OiBidWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
IC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9v
Z2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUw
MCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52
YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIu
cnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheThfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5OF9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJhcnJheTlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogImF0dHJpYnV0ZTFfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhdHRyaWJ1dGUxX3ZlcnQu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJhdHRyaWJ1dGUyX3ZlcnQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiYXR0cmlidXRlMl92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiYXR0cmlidXRlX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJhdHRyaWJ1dGVfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogImF0dHJpYnV0ZV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVm
YXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImF0dHJpYnV0ZV92ZXJ0LnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYnJlYWtfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogImJyZWFrX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICJjb21tYTFfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb21tYTFfdmVydC50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3Rv
XzA1Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRiMDliZTk3MGU3OGJiYjQ1MDkzNTBmOWNjNDNmODZjNzY4ZWJmMjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwKQEAgLTAsMCArMSwx
MTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQu
IERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wNDlfdG9fMDU2Lmh0bWw8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVz
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAx
NnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xF
U1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJj
b21tYTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbW1hMl9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiY29tbWEyX3ZlcnQudmVydCIs
CisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiY29tbWEyX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZh
bHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICJjb21tYTNfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRl
ZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb21tYTNfdmVydC50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbW1lbnRfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogImNvbW1lbnRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogImNvbmRpdGlvbmFsMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiY29uZGl0aW9uYWwxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZh
bHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJjb25kaXRpb25hbDJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNv
bmRpdGlvbmFsMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29u
ZGl0aW9uYWwzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25kaXRpb25h
bDNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29t
cHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnN0RnVuY19m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29uc3RGdW5jX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
Y2U0OGI3YTE3NjBmMjQyZDJlZTA5YThmOTQyZmI4YzQzM2IxZjJhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCkBAIC0wLDAgKzEsMTExIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBO
T1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdM
U0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDU3X3RvXzA2NC5odG1sPC90aXRsZT4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGls
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdp
ZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsi
PjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0
UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29uc3Ry
dWN0b3IxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdHJ1Y3RvcjFf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnN0cnVjdG9yMl9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29uc3RydWN0b3IyX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJjb25zdHJ1Y3RvcjNfVjEwMF9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29uc3RydWN0b3IzX1YxMDBfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnRpbnVlX2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb250aW51ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUxMF9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiZGF0YVR5cGUxMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZGF0YVR5cGUxMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
ZGF0YVR5cGUxMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0
YVR5cGUxMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxMl9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUxM19mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxM19mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y1
YjAyMTdkZjU3OGE4Yjc1ZWY2ZGQ0MGZiMWQ1NDFiODhmYWNiYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbApAQCAtMCwwICsxLDExMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9U
IEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNM
IGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzA2NV90b18wNzIuaHRtbDwvdGl0bGU+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0
aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48
L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1
bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBl
MTlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImRhdGFUeXBlMTlfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBlMV9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogImRhdGFUeXBlMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZGF0YVR5cGUzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJk
YXRhVHlwZTNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFU
eXBlNF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGU0X2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTVfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImRhdGFUeXBlNV9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGU2X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJkYXRhVHlwZTZfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogImRhdGFUeXBlN19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
ZGF0YVR5cGU3X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA3M190b18wODAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18w
ODAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMDk2NDNmMTY3Nzc2MWQzNjYxNjllNTNkMTYzNTZkMzRhZTM1
NmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5o
dG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDczX3RvXzA4
MC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxj
YW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6
IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBz
dHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiZGF0YVR5cGU4X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJkYXRhVHlwZThfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImRhdGFUeXBlOV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGU5
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkb3doaWxlX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkb3doaWxlX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkdmVjMl9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiZHZlYzJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImR2ZWMzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkdmVjM19mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZHZlYzRfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImR2ZWM0X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJleHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogImV4dGVuc2lvbjJfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uM19WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJleHRlbnNpb24zX1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMDZjMjNhMzhlMzRiMTRhMjdk
MGRmMTI4NjNiN2E0ZmQyMzZkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODFfdG9fMDg4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0K
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0
OiBidWlsZF8wODFfdG9fMDg4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5j
c3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1
MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4K
KzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRl
c3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb241X1YxMDBfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjVfVjEwMF9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uNl9WMTAwX2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJleHRlbnNpb242X1YxMDBfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjdfVjEwMF9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uN19WMTAwX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb244X1YxMDBfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjhfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uOV9WMTAwX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJleHRlbnNpb245X1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogImZsb2F0Ml9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiZmxvYXQyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJmbG9hdDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZsb2F0M19mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZmxvYXQ0X2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmbG9hdDRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQor
fSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MjU5NGE2MDQ1NDRm
NmI3NmE0NWE0ZTIzMjI1NjQ2ZDM3M2Q1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4K
KzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5j
ZSB0ZXN0OiBidWlsZF8wODlfdG9fMDk2Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10
ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVp
Z2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwv
Ym9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsK
KyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHkxX3Zl
cnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiZnJhZ21lbnRPbmx5MV92ZXJ0LnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZnJhZ21lbnRPbmx5Ml92ZXJ0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogImZyYWdtZW50T25seTJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogImZyYWdtZW50T25seTNfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHkz
X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9u
bHk0X3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnJhZ21lbnRPbmx5NF92ZXJ0LnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZnJhZ21lbnRPbmx5X3ZlcnQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiZnJhZ21lbnRPbmx5X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJmdW5jdGlvbjEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJm
dW5jdGlvbjEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5j
dGlvbjFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uMV9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVuY3Rpb24yX1YxMDBfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uMl9WMTAwX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18x
MDQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yN2NlNTQwYzkxNzE0ODNiMGY0NjAxMDVmNzhmZmMxZmZkMjg4M2ViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCkBAIC0wLDAgKzEsMTEx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBE
TyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
LS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDk3X3RvXzEwNC5odG1sPC90aXRsZT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZw
eDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNU
ZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVu
Y3Rpb24zX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmdW5jdGlvbjNfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0aW9uNF9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb240X2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlvbjZfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogImZ1bmN0aW9uNl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiZnVuY3Rpb243X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJmdW5jdGlvbjdfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1
bmN0aW9uOF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb244X2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlvbjlfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uOV9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaHZlYzJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogImh2ZWMyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZh
bHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJodmVjM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaHZlYzNfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1
X3RvXzExMi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY4NGZhOThmODZiYWJhNzA0MmQxMzU0MGYwYzRmYTk4NWIwMWQ4OWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKQEAgLTAsMCAr
MSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0
ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xMDVfdG9fMTEyLmh0bWw8L3RpdGxl
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29n
bGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhh
bXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0
OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVu
R0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJodmVjNF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaHZlYzRfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImlkZW50aWZpZXIxX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJpZGVudGlmaWVyMV9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaWRlbnRpZmllcjJfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogImlkZW50aWZpZXIyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJpZGVudGlmaWVyM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiaWRlbnRpZmllcjNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogImlmMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaWYxX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJpZjJfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogImlmMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiaW5jcmVtZW50MV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAiaW5jcmVtZW50MV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
aW5jcmVtZW50Ml9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5jcmVtZW50
Ml9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMTNfdG9fMTIwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWMxODEwMDA4MzY2MjZhN2UxOWRkNzFiZjkxNzI1MWUxZmQ2NzE4YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbApAQCAt
MCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzExM190b18xMjAuaHRtbDwv
dGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlk
PSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBo
ZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsK
K09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogImluY3JlbWVudDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImlu
Y3JlbWVudDNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImluY3Jl
bWVudDRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImluY3JlbWVudDRfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImluY3JlbWVudDZfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImluY3JlbWVudDZfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIm1haW4xX3ZlcnQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAibWFpbjFfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIm1h
aW4yX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAibWFpbjJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIm1haW4zX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAibWFpbjNf
dmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIm1hdHJpeF9WMTAwX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJtYXRyaXhfVjEwMF9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIm5vcm1hbF92ZXJ0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJu
YW1lIjogIm5vcm1hbF92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFf
dG9fMTI4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY0NTQ2NWUyNzJmYTFjYmUzYmNlZWU4NTlhNGQ4ODZk
OTBjNzY0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18x
MjguaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEyMV90
b18xMjguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9Indp
ZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1
c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogInBhcnNlcjEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJwYXJzZXIxMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAicGFyc2VyMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVm
YXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjFfdmVydC50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNlcjNfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogInBhcnNlcjNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogInBhcnNlcjRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
InBhcnNlcjRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNl
cjVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjVfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNlcjZfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjZfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogInBhcnNlcjdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogInBhcnNlcjdfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBh
cnNlcjhfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjhfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3Rv
XzEzNi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlhYmU0MGMzNTE4ZDJjMjNlNGMyZGI1NmZjOWY1OTYzZDkwMGExYTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKQEAgLTAsMCArMSwx
MTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQu
IERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xMjlfdG9fMTM2Lmh0bWw8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVz
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAx
NnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xF
U1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJw
YXJzZXI5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwYXJzZXI5X2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJwcmVwcm9jZXNzMF9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2VzczBfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3MxMF9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2VzczEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJwcmVwcm9jZXNzMV9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAicHJlcHJvY2VzczFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogInByZXByb2Nlc3MyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJwcmVwcm9jZXNzMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
cHJlcHJvY2VzczNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInByZXByb2Nl
c3MzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJwcmVwcm9jZXNz
NF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2VzczRfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3M2X2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzNl9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhkMjMz
ODA5ZmFlYTk2NDBiYjBkYWY4NmMzMTU1YjhhMjY0MmRkZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVE
SVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNv
bmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEzN190b18xNDQuaHRtbDwvdGl0bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
NTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2Nh
bnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5l
ci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3M3
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzN19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic2NvcGluZzFfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogInNjb3BpbmcxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJzY29waW5nMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAic2NvcGluZzJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogInN0cnVjdDEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Qx
MF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0MTFfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0cnVjdDExX2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAg
ICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3Jh
bSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIs
CisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3QxX2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJzdHJ1Y3QxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJzdHJ1Y3QyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJz
dHJ1Y3QyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Qz
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3QzX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ODkyMGRkODI0N2VjNDA1OTg1NDBkOGI4ZjQ1YmI2Nzk2M2U3YTdjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCkBAIC0wLDAgKzEsMTExIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBO
T1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdM
U0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTQ1X3RvXzE1Mi5odG1sPC90aXRsZT4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGls
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdp
ZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsi
PjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0
UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0
NF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0NF9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0NV9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0NV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAic3RydWN0Nl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAic3RydWN0Nl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3Ry
dWN0N19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0N19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0OF9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0OF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0OV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAic3RydWN0OV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
c3dpenpsZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN3aXp6bGUxX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzd2l6emxlMl9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3dpenpsZTJfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0K
KyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViOTUwZTNj
ZmFlODJjZDc3NmE3ZjlmYzM4YmYwOWM2Nzc3ZWRiNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElU
LiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25m
b3JtYW5jZSB0ZXN0OiBidWlsZF8xNTNfdG9fMTYwLmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
IC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9v
Z2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUw
MCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52
YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIu
cnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzd2l6emxlM19mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3dpenpsZTNfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInR5cGVjYXN0X2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJ0eXBlY2FzdF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAidW5pZm9ybTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
InVuaWZvcm0xX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ1bmlm
b3JtX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ1bmlmb3JtX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ2YXJ5aW5nMV9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAidmFyeWluZzFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogInZhcnlpbmcyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJ2YXJ5aW5nMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAidmFyeWluZzNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInZhcnlpbmcz
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ2YXJ5aW5nX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2YXJ5aW5nX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzY2MTcx
YmZjZWRmZDAzMjZmZDFiOWUwODI4NjBkOWY4Yjk3YWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURP
Q1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJ
VC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29u
Zm9ybWFuY2UgdGVzdDogYnVpbGRfMTYxX3RvXzE2OC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
IiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
b2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1
MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2Fu
dmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVy
LnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmVjdG9yX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2ZWN0b3JfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogInZlcnNpb24yX1YxMDBfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogInZlcnNpb24yX1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogInZlcnNpb24zX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogInZlcnNpb24zX1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogInZlcnRleE9ubHkyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJ2ZXJ0ZXhPbmx5Ml9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAidmVydGV4T25seV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAidmVydGV4
T25seV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAidmVydGV4
X3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAidmVydGV4X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJ3aGlsZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogIndoaWxlMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAid2hp
bGUyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ3aGlsZTJfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFiZDNjNjNjNDczYjBlMDJlNzg1ZmVlNmQ5MzY4NDI3YTE2N2VmMjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKQEAgLTAsMCArMSwxMTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERP
IE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCist
LT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
R0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNjlfdG9fMTc2Lmh0bWw8L3RpdGxlPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0
aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4
OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rl
c3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ3aGls
ZV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAid2hpbGVfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlRlcm5hcnlPcF9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiVGVybmFyeU9wX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiQ0dfRGF0YV9UeXBlc19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
Q0dfRGF0YV9UeXBlc19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNHX1N0YW5kYXJk
X0xpYnJhcnlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNHX1N0YW5kYXJk
X0xpYnJhcnlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImRl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJJbmNsdWRlX1ByZXByb2Nl
c3Nvcl9EaXJlY3RpdmVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkluY2x1
ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
Ikxvd19MZXZlbF9Bc3NlbWJseV9SZXNlcnZlZF9Xb3Jkc19mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiTWFpbl9QYXJhbWV0ZXJzX3ZlcnQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiUGVybWlzc2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiUGVybWlzc2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdf
dG9fMTc4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2RjMmIzOGJjYzI2NGVjYmZlZGYxN2RhNDI0Njc5MDc5MzlhODc1NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbApAQCAtMCwwICsx
LDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
LiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTc3X3RvXzE3OC5odG1sPC90aXRsZT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xl
cy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDog
MTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdM
RVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlBlcm1pc3NpdmVf
U2NhbGFyX1ZlY3Rvcl9FeHByZXNzaW9uc19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiUGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogIlRleHR1cmVfUmVjdGFuZ2xlX1NhbXBsZXJzX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJUZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52
ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWExX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjQ3M2U0
NmU5MmZiMzEzZWUxNTM1N2M2YzJlMDBlNWVhMmE2OTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvY29tbWExX3ZlcnQudmVydApAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAg
IGludCBpLCBqLCBrOworICAgIGZsb2F0IGY7CisgICAgaSA9IGosIGssIGY7CisgICAgaSA9IChq
LCBrLCBmKTsgICAvLyBmbG9hdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8gaW50CisgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcw
NjFmN2FlNzJkMDlkNzg1OGQ3NmNjNGI3OWM4MDEwMmJjNjhiZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2NvbW1hMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb25z
dCB2ZWM0IHYgPSAodmVjNCgxLDIsMyw0KSwgdmVjNCg1LDYsNyw4KSwgMS4yKTsgLy8gcmlnaHQg
bW9zdCB2YWx1ZSBvZiBjb21tYSBvcGVyYXRvciBzaG91bCBiZSBhIHZlYzQKKyAgICBjb25zdCB2
ZWM0IHYxID0gKHZlYzMoMC4yLCAyLjApLCB2ZWM0KDEsMiwzLDQpLCB2ZWM0KDUsNiw3LDgpKTsK
KyAgICBjb25zdCB2ZWM0IHYyID0gKHZlYzQoMSwyLDMsNCksIHZlYzIoMi4xLCAyKSwgIHZlYzQo
NSw2LDcsOCkpOworICAgIGdsX0ZyYWdDb2xvciA9IHYgKyB2MSArIHYyOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1h
Ml92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWMzMjM2ODlmNjhmMGZhMGVlMTMwNDYyY2Y3ODc4OGI5
YTljYjY2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMl92ZXJ0LnZl
cnQKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSwgaiwgazsKKyAgICBmbG9hdCBm
OworICAgIGkgPSBqLCBrLCBmOworICAgIGkgPSAoaiA9IGssIGYgPSAxLjApOyAgIC8vIGZsb2F0
IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBpbnQKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTNfdmVydC52ZXJ0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvY29tbWEzX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWRjYjk4YjIxZDkyOGI0MjVmNGFh
NWJiZGZjYzExMjRlMWYyZjZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29t
bWEzX3ZlcnQudmVydApAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGludCBpLCBqLCBrOwor
ICAgIGZsb2F0IGY7CisgICAgaSA9IGosIGssIGY7CisgICAgaSA9IGogPSBrLCBmID0gMS4wOwor
ICAgIGkgPSBqLCBrID0gKDMsIGYpOyAgICAvLyBmbG9hdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8g
aW50CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvY29tbWVudF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tZW50X2ZyYWcuZnJh
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZDBhMzgyODc0MGI1OTBjNmJmZjJkNGYzYTBiMzYwZjAxMGZhOTJkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWVudF9mcmFnLmZyYWcKQEAgLTAs
MCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBt
YWluKCkKK3sKKyAgICAvKioqKioqICAvLyBjb21tZW50IG5vdCBjbG9zZWQKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2NvbmRpdGlvbmFsMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9jb25kaXRpb25hbDFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViODMwZjRmY2M4MzJhNGRlZTcw
YWM0NmZiMDc5YzIyY2YwOTAwOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9j
b25kaXRpb25hbDFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjEsZjI7Cisg
ICAgaW50IGk7CisgICAgZmxvYXQgZjMgPSBpID8gZjEgOiBmMjsgIC8vIGV4cHJlc3Npb24gbXVz
dCBiZSBib29sZWFuIGFuZCBub3QgaW50Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9j
b25kaXRpb25hbDJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwyX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NTFhOGJkOWViMDQwOWY2MzJlYzc2Y2M0NzZjNTQwMDA0YjZlMmVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwyX2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYxLGYyOworICAgIGludCBpOworICAgIGJvb2wg
YjsKKyAgICBmbG9hdCBmMyA9IGIgPyBpIDogZjI7IC8vIHNlY29uZCBhbmQgdGhpcmQgZXhwcmVz
c2lvbiBzaG91bGQgb2YgdGhlIHR5cGUgZmxvYXQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2NvbmRpdGlvbmFsM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDNf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YjFiNDZiYmIwYzkyNGJkNmI2OTI4YzczYTk3MGIwMzc2
N2RmNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDNfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjEsZjI7CisgICAgYm9vbCBiOworICAg
IGludCBpID0gYiA/IGYxIDogZjI7IC8vIHNlY29uZCBhbmQgdGhpcmQgZXhwcmVzc2lvbiB0eXBl
IGRvZXMgbm90IG1hdGNoIHRoZSBsdmFsdWUgdHlwZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvY29uc3RGdW5jX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0RnVuY19mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGUzYTJhNjUyNDFlMjAwYTU0N2ZiNDAwNDE1MjI4NTVkMDdiN2Fl
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0RnVuY19mcmFnLmZyYWcK
QEAgLTAsMCArMSwyMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dmVjMiBmdW5jKCkKK3sKKyAgICB2ZWMyIHY7CisgICAgcmV0dXJuIHY7Cit9CisKK3ZvaWQgbWFp
bigpCit7CisgICAgY29uc3QgdmVjMyB2ID0gdmVjMygxLjAsIGZ1bmMoKSk7IC8vIHVzZXIgZGVm
aW5lZCBmdW5jdGlvbnMgZG8gbm90IHJldHVybiBjb25zdCB2YWx1ZQorICAgIGdsX0ZyYWdDb2xv
ciA9IHZlYzQodiwgdik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3Rv
cjFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IxX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZjczYmNkZWFlMWQzMTZhNzlhY2FiMGZmYmQ3ZDkxZDYzNzViYmQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IxX2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1h
aW4oKQoreworICAgIHZlYzQgdiA9IHZlYzQoMSwyLDMpOyAvLyBpbnN1ZmZpY2llbnQgZGF0YSBw
cm92aWRlZCBmb3IgY29uc3RydWN0b3IsIDQgdmFsdWVzIGFyZSByZXF1aXJlZAorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2NvbnN0cnVjdG9yMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI3YmRiYTU2NDM4ZTRhNDll
MDMzMzkyOGVhZWFkZWYxNzFiZjJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2NvbnN0cnVjdG9yMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMzIHY7CisgICAg
dmVjNCB2MSA9IHZlYzQodik7IC8vIGluc3VmZmljaWVudCBkYXRhIHNwZWNpZmllZCBmb3IgY29u
c3RydWN0aW9uCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjNfVjEw
MF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjNfVjEwMF9mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTMxMjU4NzcxMDgyYWYwY2I0NmYyZTQ5MTBkMjhmMDY3NDQ2NmVjZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9yM19WMTAwX2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit2b2lkIG1haW4oKQoreworICAgIHZlYzMgdjsKKyAgICB2ZWM0IHYxID0gdmVjNCh2LHYsdik7
IC8vIHRvbyBtYW55IGFyZ3VtZW50cyBpbiB0aGUgY29uc3RydWN0b3IKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2NvbnRpbnVlX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnRp
bnVlX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGY4M2UyYWJlYjM2MTMyYjA5NDgwMDZjMzQ4ZTY5
YTkzMjFhMzEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29udGludWVfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29udGludWU7IC8vIGNvbnRpbnVlIGtleXdvcmQg
YWxsb3dlZCBvbmx5IGluc2lkZSB0aGUgbG9vcHMKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlMTBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMF9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDQ1NmQ2NDE3ODcwMjk0ODg3YWU1ODA4ODZlMzJiYzI0NTQ1NDEy
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTBfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjsKKyAgICBmbG9hdCBmOyAgLy8gcmVkZWNsYXJh
dGlvbiBvZiBhIHZhcmlhYmxlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlw
ZTExX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTFfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZmZWNiYmY4ZjVmODlmZTYwYTViNDJlODk5Yjk3MWQ1ZjVmMzgxYWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTExX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworICAgIGludCBpID0gMDg7ICAvLyBpbnZhbGlkIG9jdGFsIG51bWJlcgorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9kYXRhVHlwZTEyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2Y4YjE4YWYwMGRlZjAxYjk3NDBi
YzNhOGQ0ZmQzZmE5MjI3YzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0
YVR5cGUxMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSA9IDB4YThnOyAgLy8g
aW52YWxpZCBoZXhhZGVjaW1hbCBudW1iZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlMTNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxM19mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2EyMWU2ZjYzMzIyOWQ5ZTk0YjBmMjcyMjkyYTE0ZWRhZDQ1MTQ2Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTNfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Zv
aWQgbWFpbigpCit7CisgICAgaW50IGkgPSAxOworICAgIGZsb2F0IGYgPSAxLjI7CisgICAgZmxv
YXQgcmVzdWx0ID0gZiAqIGk7IC8vIGF1dG8gcHJvbW90aW9uIG5vdyBhbGxvd2VkCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTE5X2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlMTlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiOThjNzUzMDg3NzNiYzBlOTFi
MWY4MTQxNjcxYjViYmZiMDRmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTE5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit1bmlmb3JtIHNhbXBsZXIyRCBzOwordm9pZCBtYWluKCkKK3sK
KyAgICBpbnQgaSA9IGludChzKTsgLy8gY29udmVyc2lvbiBub3QgYWxsb3dlZAorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYzYmFhMmIxOTNmNDIyZGZiNmY5YzZk
NTUyNGU0ZDRlMTg0YzNhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFU
eXBlMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2b2lkIHY7IC8vIHZhcmlhYmxlIGNh
bm5vdCBiZSBkZWNsYXJlZCBvZiB0aGUgdHlwZSB2b2lkCit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9kYXRhVHlwZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUyX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kZWMyYWEwNTc0N2Y1MTdjNWVhMjdlYTNkNzM1MmRmMTkwN2M0
Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUyX2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit1bmlmb3JtIHNhbXBsZXIyRCBzYW1wMTsKK3VuaWZvcm0gc2FtcGxlcjJEIHNhbXAyID0gc2Ft
cDE7IC8vIHVuaWZvcm1zIGFyZSByZWFkIG9ubHkKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9kYXRhVHlwZTNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyNmJhODg4MTQxZjY2ZDZhNzg3YWEy
OTdmODE3NWU4MmIwZDc5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKK3VuaWZvcm0gaW50IGkgPSAxOyAvLyB1bmlmb3JtcyBhcmUgcmVhZCBv
bmx5CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU0X2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YmFlYTBhNjI0ZWYwZGU5N2ZlZjc2ZmFhNjZmYjIwNDA0YzE3MTk5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU0X2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworICAgIGludCBpID0gMS4wOyAgLy8gYXV0b21hdGljIHR5cGUgY29udmVyc2lvbiBkb2Vz
IG5vdCB0YWtlIHBsYWNlLCBmbG9hdCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGludAorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU1X2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlNV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UxZmY3NTIwOTljZTNlOTVjOTI3
Y2ZiNTYwYWM5MDhmMWYyN2IwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlNV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmID0gMTsgLy8gaW50
IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gZmxvYXQsIHVzZSBjb25zdHJ1Y3RvciB0byBkbyB0aGUg
Y29udmVyc2lvbiBleHBsaWNpdGx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTZfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU2X2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNmZmNDIxM2U4ODQxMzZiMWE4NzdlOWI2MzBmMmZjMDFhOTkwMmNlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU2X2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworICAgIGNvbnN0IGZsb2F0IGY7ICAvLyBjb25zdGFudHMgbXVzdCBiZSBpbml0aWFsaXpl
ZAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RhdGFUeXBlN19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUzMWEzY2JhMWJl
YjZiY2RiZGRlMTI3MWQ1ZWRmN2VlYmE1MmExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2RhdGFUeXBlN19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBmbG9hdCBmOwordm9pZCBtYWluKCkK
K3sKKyAgICBmID0gMS4wOyAgLy8gdW5pZm9ybXMgYXJlIHJlYWQgb25seQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU4X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlOF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRkZWNjNGExNzU0YTM0MmU1ZjkyMWQ2YTZi
MTVkZmQ4NDQ1NDgwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBl
OF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgordmFyeWluZyBmbG9hdCBmOwordm9pZCBtYWluKCkKK3sKKyAgICBmID0gMS4w
OyAgLy8gdmFyeWluZ3MgY2Fubm90IGJlIHdyaXR0ZW4gdG8gaW4gYSBmcmFnbWVudCBzaGFkZXIs
IHRoZXkgY2FuIGJlIHdyaXR0ZW4gdG8gaW4gYSB2ZXJ0ZXggc2hhZGVyCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTlfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0
YVR5cGU5X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDI5ZDNkNDQ1NmJjMTg2NmIzMjVjNDEwNTll
ZDZlOTQ4MTVlZGEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU5
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2YXJ5aW5nIGZsb2F0IGY7Cit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGZs
dCA9IDEuMDsKKyAgICBmbHQrKzsKKyAgICBmKys7ICAvLyB2YXJ5aW5ncyBpbiBhIGZyYWdtZW50
IHNoYWRlciBhcmUgcmVhZCBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZh
dWx0LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY3YjBl
MDVhMWY3YmEwMWIwNjQ1MDY5NTU2ZGUxNDBlMTQ3Zjg3YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RlZmF1bHQuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4gKHZvaWQpCit7CisJZ2xfRnJhZ0Nv
bG9yID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZGVmYXVsdC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGVmYXVsdC52ZXJ0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhjNzM2YWJkNWYyNDM2YTMxNmM3NjE4ZGIyNmY4NTI4N2Y0YWQzOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LnZlcnQKQEAgLTAsMCArMSwxNSBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0cmlidXRlIHZl
YzQgZ3RmX1ZlcnRleDsKK3VuaWZvcm0gbWF0NCBndGZfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJp
eDsKK3ZvaWQgbWFpbiAodm9pZCkKK3sKKwlnbF9Qb3NpdGlvbiA9IGd0Zl9Nb2RlbFZpZXdQcm9q
ZWN0aW9uTWF0cml4ICogZ3RmX1ZlcnRleDsKKwlnbF9Qb2ludFNpemUgPSAxLjA7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kb3doaWxlX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2Rvd2hpbGVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNDNkYzRjMzZjYmVkN2QxNzMzNmU5MzI1
M2M5NzkxMmM5YWU4MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kb3doaWxl
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGY7CisgICAgZG8geworICAgIH0g
d2hpbGUoZik7ICAvLyBjb25kaXRpb24gc2hvdWxkIGJlIGJvb2xlYW4KK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2R2ZWMyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMyX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NDUxYjU1ZDZmZTA1NThkMmU5OWZkZTEwNDdlYzIyMjFmN2Jl
N2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzJfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Zv
aWQgbWFpbigpCit7CisgICAgZHZlYzIgZDsgLy8gZHZlYzIgaXMgbm90IGEgdmFsaWQgZGF0YXR5
cGUsIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9kdmVjM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjM19mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjdmNzgxNzE2ODkxMDQwMmU5MDBkYjVhNWE3NTc4MGI4MDRmNTUyZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQorewor
ICAgIGR2ZWMzIGQ7IC8vIGR2ZWMzIGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBm
b3IgZnV0dXJlIHVzZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzRfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YmViNmE1
YTdlZTRjYTQxOTZjNWI5NzA0Mjg0MDFlYWVlZmQzYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9kdmVjNF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBkdmVjNCBkOyAv
LyBkdmVjNCBpcyBub3QgYSB2YWxpZCBkYXRhdHlwZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4
NWE3ZTM1MzU0NDBhMzcyZjU3ZWViYjIyYTJiMzQyOTI3MmExMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gYWxs
IDogcmVxdWlyZSAvLyBjYW5ub3QgdXNlIHJlcXVpcmUgb3IgZW5hYmxlIHdpdGggYWxsCisjZXh0
ZW5zaW9uIGFsbCA6IGVuYWJsZSAvLyBjYW5ub3QgdXNlIHJlcXVpcmUgb3IgZW5hYmxlIHdpdGgg
YWxsCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRl
bnNpb24zX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uM19WMTAwX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMDA1YzE0ZWRmYmQ1MTA2ZmMxOWVhZmIyZDIzZWZlMTg1MDlk
YjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uM19WMTAwX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCisjZXh0ZW5zaW9uIGZvbyA6IHJlcXVpcmUgIC8vIGVycm9yIGV4dGVuc2lvbiBub3Qg
c3VwcG9ydGVkCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9leHRlbnNpb241X1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNV9W
MTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTk4ZDZmZmUzY2JkM2M0NDU5NTQ2YmZhZTNmNzcw
MzVlYjkzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNV9W
MTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCisjZXh0ZW5zaW9uIGFsbCA6IGRkaXNhYmxlZSAgLy8gZXJyb3IsIGJlaGF2
aW9yIGlzIG5vdCBzdXBwb3J0ZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2V4dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb242X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMzNmYTRmZWI5NjRjYjA2NDQz
ZDFjMDgxZTU5NDc0ZmRkZjAyMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb242X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gICAvLyBlcnJvciBuYW1lIGFuZCBi
ZWhhdmlvciBub3Qgc3BlY2lmaWVkCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9leHRlbnNpb243X1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZXh0ZW5zaW9uN19WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTYzNmQ1MTI1ZmQ1OTE0MDJl
ODhiZDIxOGE5OGJjMjlmYzY0ZjhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZXh0ZW5zaW9uN19WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisjZXh0ZW5zaW9uIGZvbyAgLy8gIjoiIG1pc3Npbmcg
YWZ0ZXIgZXh0ZW5zaW9uIG5hbWUKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2V4dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb244X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMTI0MzI1Njg5YzI5MDRlYWU3
M2Y4NDk0ZDRhNGM4YjUyZjQ1NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb244X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vIDogLy8gIGJlaGF2aW9yIG5v
dCBzcGVjaWZpZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2V4dGVuc2lvbjlfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb245
X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkN2Q2OWRjYWY2OGVmMDBjNTIzMzdmZTU2NDI2
YjYzNDg2Mjc2NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb245
X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vICBiZWhhdmlvciAvLyAiOiIgbWlzc2luZyBh
ZnRlciBleHRlbnNpb24gbmFtZQorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZmxvYXQyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0Ml9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjNhMzFjYTk5MDQxMDYzNjQyYTYzZGJmOWVkMjRkOTliYTJmOWUx
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0Ml9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICBmbG9hdDIgZjsgLy8gZmxvYXQyIGlzIG5vdCBhIHZhbGlkIGRhdGF0
eXBlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDNfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZmxvYXQzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzNkM2Q0NDU0YWEwNzQw
ZjUxMDk2ZjE0ODNiNTY0NGIyNDI2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZmxvYXQzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0MyBmOyAvLyBmbG9h
dDMgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2Zsb2F0NF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDRfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQzODEzNzNhZDhlMzE2MGEzNzZmNGFlYTVkNTYwYWJiZjI1YzcxNzAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7
CisgICAgZmxvYXQ0IGY7IC8vIGZsb2F0NCBpcyBub3QgYSB2YWxpZCBkYXRhdHlwZQorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5MV92ZXJ0LnZlcnQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWJiYTMzZDk0NzQ3
YmE3YjU1ZjZiZGQ3YzA5MzQyNWRiYmFjYzFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZnJhZ21lbnRPbmx5MV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAg
ICBnbF9Gcm9udEZhY2luZyA9IHRydWU7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFk
ZXIgb25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5Ml92ZXJ0
LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkyX3ZlcnQudmVydApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ODAwNTZiMDc5NDgxZDZjMWYxYjczNzg2ZGI4ZDhjOWYzMjZiZWQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5Ml92ZXJ0LnZlcnQKQEAgLTAsMCArMSwx
MiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9p
ZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29vcmQgPSB2ZWM0KDEuMCk7ICAvLyBjYW4gYmUgdXNl
ZCBpbiBmcmFnbWVudCBzaGFkZXIgb25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZnJhZ21lbnRPbmx5M192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkzX3Zl
cnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZTljYjAwODE1OTA1MWQzODFiYTU2MTQwYzI3ZWNlM2UzZWE2
OWZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5M192ZXJ0
LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEu
MCk7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFkZXIgb25seQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5NF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9mcmFnbWVudE9ubHk0X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjY0NDgzNjlmM2FmYjdlMjJk
ZTJmNjdlN2M4ZjNhMGYwYTczY2E3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZnJhZ21lbnRPbmx5NF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBkaXNj
YXJkOyAgLy8gY2FuIGJlIHVzZWQgaW4gZnJhZ21lbnQgc2hhZGVyIG9ubHkKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9mcmFnbWVudE9ubHlfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ZWEwMGVmNGY1YTg3ZTRkYjMz
MDQ5YTI0YzA5MmVlNGIxY2U3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9m
cmFnbWVudE9ubHlfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTIgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJh
Z0RlcHRoID0gMS4wOyAgLy8gY2FuIGJlIHVzZWQgaW4gZnJhZ21lbnQgc2hhZGVyIG9ubHkKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMTBfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdkZmFkYmZkOWNmOGRj
YTZjZWYwYWQzZTYzY2JmMzFhZGRkOGFlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2Z1bmN0aW9uMTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjQgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24oaW4gaW50IGkpOworCit2b2lk
IG1haW4oKQoreworICAgIGZsb2F0IGY7CisgICAgLy8gb3ZlcmxvYWRlZCBmdW5jdGlvbiBub3Qg
cHJlc2VudAorICAgIGZ1bmN0aW9uKGYpOworfQorCit2b2lkIGZ1bmN0aW9uKGluIGludCBpKQor
eworICAgaSA9IDM7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MzMyN2E2YWRiNGUwZmI0MjgwYTdmNGMxODY3ZDBkOGU4MjVmYTJlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIzIEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGludCBp
KQoreworICAgIHJldHVybiBpOyAgLy8gdm9pZCBmdW5jdGlvbiBjYW5ub3QgcmV0dXJuIGEgdmFs
dWUKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICBmdW5jdGlvbihpKTsKK30K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjJfVjEwMF9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjJfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5
ZDU3ZGM1MWIwOTVjNzc5M2Y0NDU4MjZkZmIwNjc0NzFkZGFhMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIyIEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGlu
dCBpW10pICAvLyBzaXplIG9mIGFycmF5IG11c3QgYmUgc3BlY2lmaWVkCit7Cit9CisKK3ZvaWQg
bWFpbigpCit7CisgICAgaW50IGlbMl07CisgICAgZnVuY3Rpb24oaSk7Cit9CisKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24zX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2Z1bmN0aW9uM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4MzVkZTdmYWNjNDUzYzg3NGZiMjcw
MDgzYmM5NjkyYzM4MTY2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0
aW9uM19mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihjb25zdCBpbnQgaSkKK3sKKyAgICBpID0gMzsg
IC8vIGNvbnN0IHZhbHVlIGNhbnQgYmUgbW9kaWZpZWQKK30KKwordm9pZCBtYWluKCkKK3sKKyAg
ICBpbnQgaTsKKyAgICBmdW5jdGlvbihpKTsKK30KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9mdW5jdGlvbjRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb240X2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZWFiZGU5YjdlZDNjMmMzM2M4MjVhYTBhZTkxMDE0NzQyODk2NmZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb240X2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDIzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1
bmlmb3JtIGludCB1bmlmb3JtSW50OworCit2b2lkIGZ1bmN0aW9uKG91dCBpbnQgaSkKK3sKKyAg
ICBpID0gMTsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBmdW5jdGlvbih1bmlmb3JtSW50KTsg
IC8vIG91dCBhbmQgaW5vdXQgcGFyYW1ldGVycyBjYW5ub3QgYmUgdW5pZm9ybSBzaW5jZSB1bmlm
b3JtcyBjYW5ub3QgYmUgbW9kaWZpZWQKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZnVuY3Rpb242X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uNl9mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2JjYzQzM2ViMzMwNmVhYWZiOTdmNjMwMzM3MThkZmQ2YTg0MmRjNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uNl9mcmFnLmZyYWcKQEAgLTAs
MCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBm
dW5jdGlvbihjb25zdCBvdXQgaW50IGkpCit7ICAvLyBvdXQgcGFyYW1ldGVycyBjYW5ub3QgYmUg
Y29uc3QKKyAgIGkgPSAzOworfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIGZ1
bmN0aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjdfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRjMDkwMjg4MWM1Y2EyOGU1MTJmMDA2ZjJkMjgwOTg3NzJiNDQ5NDYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjdfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjIgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24odW5p
Zm9ybSBpbnQgaSkKK3sgIC8vIHVuaWZvcm0gcXVhbGlmaWVyIGNhbm5vdCBiZSB1c2VkIHdpdGgg
ZnVuY3Rpb24gcGFyYW1ldGVycworfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAg
IGZ1bmN0aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9u
OF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjhfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRlYmU2ZTgwNTg3OGVhYjhkNGM1ZWI4ZTY1M2E0OTYxZmEyMzM4YWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjhfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24o
Y29uc3QgaW5vdXQgaW50IGkpCit7ICAvLyBpbm91dCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBjb25z
dAorICAgaSA9IDM7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgZnVuY3Rp
b24oaSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZh
Zjc0YmY5NzU5ZDc5ODFjZmI3YTczYWU4MmJlY2Q4MmIzYjgzMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyNCBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihpbm91dCBp
bnQgaSk7CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgZnVuY3Rpb24oaSk7Cit9
CisKKy8vIGZ1bmN0aW9uIGRlZmluaXRpb24gaGFzIGRpZmZlcmVudCBwYXJhbWV0ZXIgcXVhbGlm
aWVycyB0aGFuIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCit2b2lkIGZ1bmN0aW9uKGluIGludCBpKQor
eworICAgaSA9IDM7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjMl9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkxMWI2OWU2
NDQxZWY5YjcwNzQ0MDBkYTM1NDgyZjRhMDhhY2JhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2h2ZWMyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGh2ZWMyIGY7IC8v
IGh2ZWMyIGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzNfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvaHZlYzNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYjYxZGYyZTI1YTlhZDBjNDMxNGQw
Y2YzODJkMDgwNjYxMDA4M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVj
M19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBodmVjMyBmOyAvLyBodmVjMyBpcyBub3Qg
YSB2YWxpZCBkYXRhdHlwZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2h2ZWM0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2ZWM0X2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NGU3OTcwZmE4Y2QyNWE5NmRjMGZmOTlhNjE4YTQzN2U5NjBk
NmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzRfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Zv
aWQgbWFpbigpCit7CisgICAgaHZlYzQgZjsgLy8gaHZlYzQgaXMgbm90IGEgdmFsaWQgZGF0YXR5
cGUsIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9pZGVudGlmaWVyMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMV9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzBkMWQ5YzgwZTYzOTdkODQ4ZTg2NDkzZmE4YjYyNGFjYTVmZGM3
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIxX2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit2b2lkIG1haW4oKQoreworICAgIGludCAxaTsgLy8gaW5jb3JyZWN0IGlkZW50aWZpZXIgbmFt
ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWRlbnRpZmllcjJfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaWRlbnRpZmllcjJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNmU5MzQ1
MTkxMzI1ZWRlZGIxNTY0OTQzMmMwNDlmMGM2ZjgzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9pZGVudGlmaWVyMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQg
Z2xfaW50OyAgLy8gaWRlbnRpZmllciBuYW1lIGNhbm5vdCBiZWdpbiB3aXRoICJnbF8iCit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyM19mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9pZGVudGlmaWVyM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJiZWFmNjUyMDM5MDg1
YzdjNjRiNzBiMGQ5Mzc5ZTEzMDdlMjc1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAg
IHg7ICAvLyBpZGVudGlmaWVyIHggdXNlZCB3aXRob3V0IGJlaW5nIGRlY2xhcmVkCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYx
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzAxNjg0ODMxOWQ2ZWNjYTE0YTVlMTBiMjM2ZjY1MmNj
MzMwODUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYxX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIGlmIChpKSAvLyBjb25kaXRpb24gb2YgaWYg
c3RhdGVtZW50IG11c3QgYmUgYSBib29sZWFuCisgICAgICAgIGkrKzsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2lmMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjJfZnJhZy5m
cmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0ZmJmZGZjMjMxYzEzN2FiZmU3Nzk0MmI5NzIxY2E0OWIzMTA3NGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjJfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFp
bigpCit7CisgICAgdmVjMiB2OworICAgIGludCBpOworICAgIGlmICh2KSAvLyB2ZWN0b3JzIGNh
bm5vdCBiZSB1c2VkIGFzIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gZm9yIGlmIHN0YXRlbWVudAor
ICAgICAgICBpKys7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQxX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDFfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRlZWI1YjYwYmY2NWI5M2E0ODExZDNmNzZkMTliZjEyZTU2N2FmNWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIwIEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgcyB7CisgICAg
aW50IGk7Cit9IHMxOworCit2b2lkIG1haW4oKQoreworICAgczEuaSsrOworICAgczErKzsgIC8v
IHN0cnVjdHVyZSBjYW5ub3QgYmUgaW5jcmVtZW50ZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2luY3JlbWVudDJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Ml9m
cmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTYxNjc4YjBjYTM4YjM2MDU2ZTMyNjY0MzJmYWYxYmU3Y2Rl
MmQ4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDJfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgKGkraSkrKzsgIC8vIGkraSBpcyBu
b3QgYW4gbC12YWx1ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50M19m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQzX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYTMyNTA0NzM0ZGFlMzc5YjZhN2NiM2FiZjJhMTQzNTJlYzUxMmRlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50M19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBzYW1wbGVy
MkQgc2FtcGxlcjJkOworCit2b2lkIG1haW4oKQoreworICAgIHNhbXBsZXIyZCsrOyAgLy8gdW5p
Zm9ybXMgY2Fubm90IGJlIG1vZGlmaWVkCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9p
bmNyZW1lbnQ0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDRfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzZmY2YjQzZTg3MWVkNWMzMGU3NjI3NGY1NDYxYzZjMGY2YjI2MzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQ0X2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lk
IG1haW4oKQoreworICAgIGludCBpOworICAgIGkrKyA9IDU7ICAvLyBpKysgaXMgbm90IGFuIGwt
dmFsdWUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDZfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Nl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJjNTAw
NDNhY2M0ZDAwMjA0NWY2NTc1ZGEyNzY0NjM4NzE0ZWNhMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2luY3JlbWVudDZfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50
IGk7CisgICAgKytpKys7ICAvLyArK2krKyBpcyBlcXVpdmFsZW50IHRvICsrKGkrKykgd2hpY2gg
ZmFpbHMgYmVjYXVzZSBpKysgaXMgbm90IGFuIGx2YWx1ZS4gICgrK2kpKys7IGlzIGxlZ2FsLgor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5wdXQucnVuLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2lucHV0LnJ1bi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhkZGU3ZDYyOWJmMDk2OTY4YTU2YjNiYTlh
YzJmMDM4MDU4NDZiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lucHV0LnJ1
bi50eHQKQEAgLTAsMCArMSwyNCBAQAorIyB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERP
IE5PVCBFRElULgorYnVpbGRfMDAxX3RvXzAwOC5odG1sCitidWlsZF8wMDlfdG9fMDE2Lmh0bWwK
K2J1aWxkXzAxN190b18wMjQuaHRtbAorYnVpbGRfMDI1X3RvXzAzMi5odG1sCitidWlsZF8wMzNf
dG9fMDQwLmh0bWwKK2J1aWxkXzA0MV90b18wNDguaHRtbAorYnVpbGRfMDQ5X3RvXzA1Ni5odG1s
CitidWlsZF8wNTdfdG9fMDY0Lmh0bWwKK2J1aWxkXzA2NV90b18wNzIuaHRtbAorYnVpbGRfMDcz
X3RvXzA4MC5odG1sCitidWlsZF8wODFfdG9fMDg4Lmh0bWwKK2J1aWxkXzA4OV90b18wOTYuaHRt
bAorYnVpbGRfMDk3X3RvXzEwNC5odG1sCitidWlsZF8xMDVfdG9fMTEyLmh0bWwKK2J1aWxkXzEx
M190b18xMjAuaHRtbAorYnVpbGRfMTIxX3RvXzEyOC5odG1sCitidWlsZF8xMjlfdG9fMTM2Lmh0
bWwKK2J1aWxkXzEzN190b18xNDQuaHRtbAorYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCitidWlsZF8x
NTNfdG9fMTYwLmh0bWwKK2J1aWxkXzE2MV90b18xNjguaHRtbAorYnVpbGRfMTY5X3RvXzE3Ni5o
dG1sCitidWlsZF8xNzdfdG9fMTc4Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21h
aW4xX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4xX3ZlcnQudmVydApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NWMyNjYzMTBhZGM0NzY3NzZkZGVmMjg1NjQ3ZjQ5MGU2MTRjOGFiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTEgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK21haW4oKSAvLyBy
ZXR1cm4gdHlwZSBvZiBtYWluIHNob3VsZCBiZSB2b2lkCit7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9tYWluMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluMl92ZXJ0LnZl
cnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGNkZmU5OGI0NjNlOTk0ODc5ZjQ5MjQ4YWNmMjM4YWFlNmY0ODI2ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4yX3ZlcnQudmVydApAQCAtMCww
ICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
Cit2b2lkIG1haW4oaW50IGkpICAvLyBtYWluIGZ1bmN0aW9uIGNhbm5vdCB0YWtlIGFueSBwYXJh
bWV0ZXJzCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvbWFpbjNfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjNfdmVydC52
ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA5YTIxYTllOTI5MzAzMWQ2YTE3YWNjOWYxMTBjYzA2Yzg4MTVlNDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluM192ZXJ0LnZlcnQKQEAgLTAs
MCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworaW50IG1haW4oKSAvLyByZXR1cm4gdHlwZSBvZiBtYWluIHNob3VsZCBiZSB2b2lkCit7Cisg
ICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21hdHJpeF9WMTAwX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21hdHJpeF9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mM2RjMGFkYjY0Yjk0ZmJlYTcxNTFjNmM3MTNkZDEzM2IzZWQzMWVhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWF0cml4X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7
CisgICAgbWF0MyBtOworICAgIG1hdDQgbTEgPSBtYXQ0KG0pOworfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZlcnQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9ub3JtYWxfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OWJjZTk5Zjkx
YTYyNzVjNjBiMzEzZjEwMmI3ZDdiZjY3MDU0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9ub3JtYWxfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTMgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9Ob3Jt
YWw7Cit2b2lkIG1haW4oKQoreworICAgIGd0Zl9Ob3JtYWwgPSB2ZWMzKDEuMCwyLjAsMy4wKTsg
IC8vIGNhbm5vdCBiZSBtb2RpZmllZCBhbiBhdHRyaWJ1dGUKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3BhcnNlcjEwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjEwX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YzI1NzM0NDczODBiNzUyYTUxYWYyZmIyZDJhMmRkYjRiMzQx
Mzg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMTBfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgNSArPSA1OyAvLyBsLXZhbHVlIG1pc3NpbmcKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjFfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
cGFyc2VyMV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBhNjI2M2RkMjhjMDBlZGI0MmU1OWQyZWJk
MWVlZGJjOTY1Njg4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjFf
dmVydC52ZXJ0CkBAIC0wLDAgKzEsMTMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGEgIC8vIHNlbWljb2xv
biBtaXNzaW5nIGF0IHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudAorICAgIGdsX1Bvc2l0aW9uID0g
dmVjNChhKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjNfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I1NDNhZDhm
ZGZkOGFlNzY4OGZmMTkyYzQ2MGMyMWI0ZTk4ZjcwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3BhcnNlcjNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZlsz
XTsKKyAgICBmWzNdID0gMS4wOyAvLyBpbmRleCBvZiBhcnJheSBncmVhdGVyIHRoYW4gdGhlIHNp
emUgb2YgdGhlIGFycmF5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI0X2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
M2U0YjNkMzEzOGQ0MTI0ODk1N2ViNDUxY2E3YzU5OGRkNmI2ZmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI0X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGNv
bnN0IGludCBpID0gNTsKKyAgICBpKys7ICAvLyBjb25zdCBjYW5ub3QgYmUgbW9kaWZpZWQKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjVfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvcGFyc2VyNV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU5Y2JkYWFjNTliNDhiNTFlYjYx
YTNkYWEyODU3ZDAwMzhjNzM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Bh
cnNlcjVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHYueiA9IDEu
MjsgICAvLyB2ZWMyIGRvZXMgbm90IGhhdmUgYSB6IGNvbXBvbmVudAorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcGFyc2VyNl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI2
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDRkMDIxZmQyOTkzZjJmNWQyYTA1MzUzYjdmYWJmODlk
NGNkNTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNl9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmMSxmMixmMzsKKyAgICBmMyA9IGYxID4gZjI7
ICAvLyBmMSA+IGYyIHJlc3VsdCBpbiBhIGJvb2wgdGhhdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8g
YSBmbG9hdAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyN19mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTAzMjMxMGNk
OGUzMmNiMGZjZWQ1NWU3MmJmNjliYTk0NjNmMDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyN19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBtYXQyIG0xLG0y
OworICAgIGJvb2wgYiA9IG0xID4gbTI7ICAvLyBncmVhdGVyLXRoYW4gb3BlcmF0b3IgY2FuIG5v
dCBvcGVyYXRlIG9uIG1hdHJpY2VzLCBob3dldmVyLCBlcXVhbCAoPT0pIGFuZCBub3QgZXF1YWwg
KCE9KSBvcGVyYXRvcnMgY2FuIGJlIHVzZWQgd2l0aCBtYXRyaWNlcworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcGFyc2VyOF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI4
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjY0OWM1NGVlNTJjZTE1OTlkMWY3ZjdmMjJmMWVmNDUy
OTNlNzQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOF9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHYyOworICAgIHZlYzMgdjM7CisgICAgYm9vbCBi
ID0gdjIgPT0gdjM7IC8vIGVxdWFsIG9wZXJhdG9yIGNhbm5vdCBvcGVyYXRvciBvbiB2ZWN0b3Jz
IG9mIGRpZmZlcmVudCBzaXplcworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2Vy
OV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI5X2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMjgzYzIyNjhkNjlkNTFkM2M1MWVlOWFiNGJmYWY3NWFiMDVkMjdjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAg
ICBmbG9hdCBmMSxmMjsKKyAgICBib29sIGIgPSBmMSAmJiBmMjsgIC8vICYmLCB8fCBhbmQgXl4g
b3BlcmF0ZSBvbiBhIGJvb2xlYW4gZXhwcmVzc2lvbiBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9wcmVwcm9jZXNzMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9j
ZXNzMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlkMWQ5ZmNkMTNkZGIzZTM2NGRlZTRkMWNhY2Jj
M2VjZTFmNDAyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3Mw
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDYzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCisvL3Rlc3QgZm9yIGVsc2UgZWxpZiBtaXNtYXRjaAorI2RlZmluZSB0ZXN0KHgs
eSkgKHgreSkKKwordm9pZCAgbWFpbih2b2lkKXsKKyBpbnQgc3VtID0wOworICNkZWZpbmUgeCA4
CisgI2VuZGlmCisgI2lmICh4PT04KQorICAgI3VuZGVmIHgKKyAjZW5kaWYKKworICNpZiAxCisg
ICAjdW5kZWYgeAorICNlbmRpZgorCisgI2lmIDEKKyAgICNkZWZpbmUgdDQgNAorICNlbmRpZgor
Cisgc3VtPXRlc3QoMyw2KSt0NDsKKyAjaWYgMQorICAjaWYgMQorICAgI2lmIDEKKyAgICAjaWYg
MQorICAgICAjaWYgMAorICAgICAgICN1bmRlZiB0ZXN0CisgICAgICNlbHNlCisgICAgICAgI2lm
IDEKKyAgICAgICAgICN1bmRlZiB0ZXN0CisgICAgICAgI2VuZGlmCisgICAgICAgI2lmIDAKKyAg
ICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAjZWxzZQorICAgICAgICAgICNpZiAwCisgICAgICAg
ICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAgICAjZWxzZQorICAgICAgICAgICAgICNpZiAxCisg
ICAgICAgICAgICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAgICAgICAjZWxzZQorICAgICAgICAg
ICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAgICAgICAjZWxzZQorICAgICAgICAgICAgICAgI2pk
aGdqCisgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgI2VuZGlmCisgICAgICAgI2VuZGlm
CisgICAgICNlbmRpZgorICAgICNlbmRpZgorICAgI2VuZGlmCisgICNlbmRpZgorICNlbmRpZgor
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWIyMjc5
NzBkMTc5ZTdjNDUyNzcwODZmOTU2YWNiN2IxZWE1Y2NhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvcHJlcHJvY2VzczEwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE5IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvKiBUaGUgcHJvZ3JhbSBzaG91bGQg
dGVybWluYXRlIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBhbmQgbm90IGdldCBpbnRvIGFuCisgICBp
bmZpbml0ZSBsb29wICovCisjaWZkZWYgbmFtZQorCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJh
Z0NvbG9yID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nl
c3MxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MmY0ZDE0MjU4ODE1MDg1ZWEzNmY5MmNlYjAzNjI2Njg5NDE4ZjhkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczFfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsNjQgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIHRlc3Rz
IGZvciBtYWNybyByZWRpZmluaXRpb24gKHQyKSBhbmQgdGhlICNpZiBhbmQgI2Vsc2UgbmVzdGlu
Z3MuCisvLyB0YWtlcyBjYXJlIG9mIGVsaWYgYWxzby4KKworI2RlZmluZSB0MSAoMSsyKQorI2Rl
ZmluZSB0MiAyCisjZGVmaW5lIHQyIDMKKworLy8gdGVzdGluZyB0aGUgaWYgZGVwdGgKKyNpZiAo
dDE9PTMpCisgICNkZWZpbmUgdDMgMworICAjaWYgZGVmaW5lZCB0MgorICAgICNkZWZpbmUgdDQg
NAorICAgICAgI2lmIGRlZmluZWQodDMpCisgICAgICAgICAgI2RlZmluZSB0NSA1CisgICAgICAg
ICAgICAgI2lmZGVmIHQ1CisgICAgICAgICAgICAgICAjZGVmaW5lIHQ2IDYKKyAgICAgICAgICAg
ICAgICAgI2lmbmRlZiB0NworICAgICAgICAgICAgICAgICAgICNkZWZpbmUgdDcgNworICAgICAg
ICAgICAgICAgICAjZWxzZQorICAgICAgICAgICAgICAgICAgICNkZWZpbmUgdDggOAorICAgICAg
ICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICNlbHNlCisgICAg
ICAgICAjaWZuZGVmIHQ4CisgICAgICAgICAgICAgI2RlZmluZSB0OCA4CisgICAgICAgICAjZWxp
ZiAodDg9PTgpCisgICAgICAgICAgICAjZGVmaW5lIHQ5IDkKKyAgICAgICAgICNlbHNlCisgICAg
ICAgICAgICAjaWYgZGVmaW5lZCB0NworICAgICAgICAgICAgICAjZGVmaW5lIHQ5IDkKKyAgICAg
ICAgICAgICNlbmRpZgorICAgICAgICAgI2VuZGlmCisgICAgICAjZW5kaWYKKyAgI2Vsc2UKKyAg
ICAjZGVmaW5lIHQxMCAxMAorICAjZW5kaWYKKyNlbmRpZgorCisKKyNkZWZpbmUgdDggOAorI2Rl
ZmluZSB0OSA5CisjZGVmaW5lIHQxMCAxMAorCit2b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgc3Vt
PTEgOworIHN1bSA9IHQxK3QyOworIHN1bSA9IHQzK3Q0OworIHN1bSA9IHQ1K3Q2OworIHN1bSA9
IHQ3K3Q4OworIHN1bSA9IHQ5K3QxMDsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
cHJlcHJvY2VzczJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczJfZnJhZy5m
cmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlhYTAwZTg0OWRkMjQ0MmEzODljZmZkYWM5MGU2MGQ3MTI3MzhiNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMl9mcmFnLmZyYWcK
QEAgLTAsMCArMSw2MCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
Ly8gI2xpbmUgZGlyZWN0aXZlLS0gdGVzdCBjYXNlcy4KKy8vIGNoa3MgZm9yIEludmFsaWQgZGly
ZWN0aXZlcywgYWxsIHBvc3NpYmxlICNsaW5lIGVycm9ycworLy8gQWxzbyBjaGVja3MgdGhlIGNv
cnJlY3QgdmVyaW9ucyBvZiAjbGluZSBkb3JlY3RpdmUuCisKKyNkZWZpbmUgdDEgMQorI2RlZmlu
ZSB0MiAyCisKKyMKKyMKKyMKKyMKKyNsaW5lIDgKKyNsaW5lICIiCisjbGluZSAzIDMKKworI2xp
bmVrZmoKKyNsaW5lIGMgYworI2xpbmUgdDEgdDIKKyNsaW5lIDc3IDg5CisjbGluZSA2NS40Cisj
bGluZSBtZXNzYWdlIHRvIHRoZSB1c2VyCisjbGluZQorI2xpbmUzNDUKKwordm9pZCBtYWluKHZv
aWQpCit7CisgaW50IHN1bSA9MTsKKyBzdW0gPSBfX0xJTkVfXzsKKyBzdW0gPSBfX0ZJTEVfXzsK
KyAjbGluZSA0IDUKKyBzdW0gPSBfX0xJTkVfXzsKKyBzdW0gPSBfX0ZJTEVfXzsKKyAjbGluZSA5
Cisgc3VtID0gX19MSU5FX18gKyBfX0ZJTEVfXyA7Cisgc3VtID0gX19GSUxFX187CisgIworICMK
KyBzdW0gPSBfX1ZFUlNJT05fXzsKKyBzdW0gPSBzdW0gKyBfX0xJTkVfXyA7CisgI2xpbmUgNCA1
CisgI2xpbmUgNSA4Cisgc3VtID0gX19MSU5FX187Cisgc3VtID0gX19GSUxFX187Cisgc3VtID0g
X19WRVJTSU9OX187CisKK30KKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXBy
b2Nlc3MzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MzX2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jOWUyMDA2YTk3ZDU4ZTEzMTk5NmFmOTdhYmViMzY3ZjgxM2ZiMTQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczNfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsNDMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIHNp
bXBsZSBtYWNybyBleHBhbnNpb25zLgorLy8gVGVzdHMgZm9yIFRvbyBmZXcgbWFjcm8gYXJndW1l
bnRzLCB0b28gbWFueSBtYWNybyBhcmd1bWVudHMuCisvLyBNYWNyb3Mgd2l0aCBubyBhcmd1bWVu
dHMuCisKKyNkZWZpbmUgdDEgLTEKKyNkZWZpbmUgdDIgMgorCisjZGVmaW5lIHRlc3QgLTI1OAor
I2RlZmluZSB0ZXN0MSAodGVzdCp0ZXN0KQorI2RlZmluZSB0ZXN0Mih4KSAoeCt0ZXN0MSkKKyNk
ZWZpbmUgdGVzdDMoKSAodGVzdDIoOCkqKHRlc3QqdGVzdDEpKQorI2RlZmluZSB0ZXN0NCh4LHkp
ICh4K3kpCisKK3ZvaWQgbWFpbih2b2lkKQoreworIGludCBzdW0gPTA7Cisgc3VtID0gdGVzdDMo
KTsKKyBzdW0gPSB0ZXN0MygzKTsKKworIHN1bSA9IHRlc3QyKDkpOworIHN1bSA9IHRlc3QyKDks
OCk7CisKKyBzdW0gPSB0ZXN0NDsKKyBzdW0gPSB0ZXN0Mig4LDUsNzgsOSk7Cisgc3VtID0gc3Vt
ICsgdGVzdDE7Cisgc3VtID0gOCs1OCtzdW07Cisgc3VtID0gc3VtICt0ZXN0OworIHN1bSA9ICh0
MSt0Mik7Cisgc3VtID0gdGVzdDQodGVzdDMoKSx0ZXN0Mih0ZXN0MygpKSk7Cisgc3VtID0gdGVz
dDQoMyw4LDUpOworIHN1bSA9IHRlc3Q0KCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9wcmVwcm9jZXNzNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzNF9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWQ5Yzc1NmE2M2NlNWEwOTdkYjA1ZTZkN2EwYmYyZDNkNzJhZjJj
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M0X2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDYwIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
CisvLyAjZXJyb3IgYW5kICNwcmFnbWEgZGlyZWN0aXZlcyAtLSB0ZXN0IGNhc2VzLgorLy8gdGVz
dHMgZm9yIGVycm9ycyBpbiAjcHJhZ21hIGRpcmVjdGl2ZS4KKworI3ByYWdtYSBvcHRpbWl6ZShv
bikKKyNwcmFnbWEgZGVidWcob2ZmKQorCitpbnQgZm9vKGludCk7CisKK3ZvaWQgbWFpbih2b2lk
KQoreworIGludCBzdW0gPTA7CisgI2Vycm9yIDsKKyAjZXJyb3IgNzgKKyAjZXJyb3IgYworICNl
cnJvciAibWVzc2FnZSB0byB0aGUgdXNlciAiCisgI2Vycm9yIG1lc3NhZ2UgdG8gdGhlIHVzZXIK
KyAjZXJyb3IKKyAjZXJyb3IKKyAjZGVmaW5lIHQxIDEKKyBzdW0gPSB0MSp0MTsKKyBmb28oc3Vt
KTsKKworfQorCisjcHJhZ21hIG9wdGltaXplKG9mZikKKyNwcmFnbWEgYmluZChvbikKKyNwcmFn
bWEgcGFjayhvZmYpCisKK2ludCBmb28oaW50IHRlc3QpCit7CisgaW50IGJpbmRpbmc9MDsKKyBi
aW5kaW5nID0gdGVzdDsKKyByZXR1cm4gYmluZGluZzsKK30KKworI2xpbmUgNAorI3ByYWdtYQor
I2xpbmUgNSA2CisjcHJhZ21hIG9wdG1pbWl6ZSBvbgorI3ByYWdtYSBkZWJ1ZyBvZmYKKyNwcmFn
bWEgZGVidWcob2ZmCisjbGluZSA5CisjcHJnbWEgYmluZChvZmYpCisjcHJhZ21hIGJpbmQKKyNw
cmFnbWEgKG9uKQorI3ByYWdtYSBvbiAob24pCisjcHJhZ21hIG9wdG1pemUob24KKworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzNl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9wcmVwcm9jZXNzNl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM2YmQwMjIzZjVlYWU0ZTE0
NzRkZmUzYTBkZjgwNDVmN2RiZTRkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3ByZXByb2Nlc3M2X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDM3IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCisvLyBvcGVyYXRvciBwcmVjZWRlbmNlIGFuZCBzb21lIG1h
Y3JvIGV4cGFuc2lvbnMuCisKKyNkZWZpbmUgdGVzdCAoMSsyKQorI2RlZmluZSB0ZXN0MSAodGVz
dCo0KQorI2RlZmluZSB0ZXN0MiAodGVzdDEvdGVzdCkKKy8vI2RlZmluZSB0ZXN0MyAoLTErMioz
LzQldGVzdCkKKyNkZWZpbmUgdGVzdDMgKC0xKzIqMy80KQorLy8jZGVmaW5lIHRlc3Q0ICh0ZXN0
ICYgdGVzdDEgfHRlc3QyKQorI2RlZmluZSB0ZXN0NCAodGVzdCkKKyNkZWZpbmUgdGVzdDUgKCE4
K340KzQtNikKKyNkZWZpbmUgdGVzdDYgKHRlc3QxPj4xKQorI2RlZmluZSB0ZXN0NyAodGVzdDE8
PDEpCisjZGVmaW5lIHRlc3Q4ICh0ZXN0Ml42KQorI2RlZmluZSB0ZXN0OSAodGVzdDQgfHwgdGVz
dDUgJiYgdGVzdDEpCisjZGVmaW5lIHRlc3QxMCAoMCkKKwordm9pZCBtYWluKHZvaWQpCit7Cisg
aW50IHN1bSA9MDsKKyBzdW0gPSB0ZXN0NDsKKyBzdW0gPSB0ZXN0Myp0ZXN0Mit0ZXN0MS10ZXN0
OworLy8gc3VtID0gdGVzdDMvdGVzdDYgKyB0ZXN0NCp0ZXN0NyAtIHRlc3Q3ICUgdGVzdDk7Cisv
LyBzdW0gPSB0ZXN0My90ZXN0NiArIHRlc3Q0KnRlc3Q3IC0gdGVzdDc7Cisgc3VtID0gdGVzdDEw
KnRlc3Q1OworfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzN19mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzN19mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDhmNjJiMTExMGIxYjE4MTdmMGFkMjhlZTdjOTIzZDYzMmUyOTU1YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M3X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDUxIEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvLyB0ZXN0aW5nIGZvciBj
aGFyIGNvbnN0YW50cyBpbiAjaWYgYW5kICNlbGlmCisvLyBBbHNvIGNoZWNraW5nIHdoZXRoZXIg
cmVzZXJ2ZWQgd29yZHMgY2FuIGJlIHJlZGVmaW5lZC4KKworI2RlZmluZSB0MSBjCisjZGVmaW5l
IHQyIGQKKyNkZWZpbmUgYXNtIGEKKworICNpZih0MT09YykKKyAgI2RlZmluZSB0MyAzCisgI2Vs
aWYodDE9PWQpCisgICNkZWZpbmUgdDQgNAorICNlbGlmKHQyPT1jKQorICAjZGVmaW5lIHQ1IDUK
KyAjZW5kaWYKKworICNpZm5kZWYgdDEKKyAgICNkZWZpbmUgdDcgNworICNlbGlmICh0Mj09ZCkK
KyAgI2RlZmluZSB0NiA2CisgI2VuZGlmCisKKyAjaWYgKHQyPT0nZCcpCisgICNkZWZpbmUgaGFs
ZiA1CisgI2Vsc2UKKyAgI2RlZmluZSBoYWxmIDgKKyAjZW5kaWYKKworICNpZmRlZiB0MjIKKyAg
I2RlZmluZSB4IDUKKyAjZW5kaWYKKworIHZvaWQgbWFpbih2b2lkKQorICB7CisgICBpbnQgc3Vt
ID0wLGE9OTsKKworICAgc3VtID0gaGFsZiArIHN1bTsKKyAgIHN1bSA9IGFzbSArIGE7CisKKyAg
fQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zY29waW5nMV9mcmFnLmZyYWcgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9zY29waW5nMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODljOWE1MTIwOTVjMWJj
ZDRkYWNmM2FiODRjYzA0YjYwNWJjMDYwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3Njb3BpbmcxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIxIEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGJvb2wgYjsKKyAgICBp
ZiAoYikKKyAgICB7CisgICAgICAgIGludCBpID0gMTsKKyAgICAgICAgaSsrOworICAgIH0KKyAg
ICBpKys7ICAvLyBpIGlzIG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9zY29waW5nMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zY29w
aW5nMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY2N2Y0MDA2MTRmM2RmNGU2NGE0ZmFkNzZkNTgw
ZmZlYTUwMmVjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3BpbmcyX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHsKKyAgICAgICAgaW50IGkgPSAxOworICAgICAg
ICBpKys7CisgICAgfQorICAgIGkrKzsgIC8vIGkgaXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2Nv
cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDEwX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N0cnVjdDEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjBjNzgyOTlkYTkz
OGZlMDI0MTVlZmExNmU2OWU1ZGY3N2YwZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvc3RydWN0MTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczFbMl07
CisKK3ZvaWQgbWFpbigpCit7CisgICBzMS5pID0gMTsgIC8vIHMxIGlzIGFuIGFycmF5LiBzMVsw
XS5pIGlzIGNvcnJlY3QgdG8gdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1
Y3QxMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxMV9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTUyY2U0OWFlZDBkNTZhMjk4MGJkZjFiM2ZiOTdmZDcyY2I3MWI1MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDExX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE5
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgcyB7Cisg
ICAgaW50IGk7Cit9IHMxOworCit2b2lkIG1haW4oKQoreworICAgczEgPSAtczE7IC8vIGNhbm5v
dCBjYWxjdWxhdGUgbmVnYXRpdmUgb2YgYSBzdHJ1Y3R1cmUKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3N0cnVjdDFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGZjYmI4NTk5ZmE4MzAzNzJlN2RjZDU3NWU2ZDRlNDFiYWNiODc4
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDFfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0
cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gdW5pZm9ybSB1bmlmb3JtU3RydWN0OyAgLy8gdW5pZm9y
bSBrZXl3b3JkIHNob3VsZCBiZSB1c2VkIGJlZm9yZSB0aGUga2V5d29yZCBzdHJ1Y3QKKwordm9p
ZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDJfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY4MmY2
N2RmYzExMTA2ZGMyM2Q1YTZiNzdiOTgyNjM1Mjk1NTAwYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N0cnVjdDJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBpbnQgaSA9IDEu
MDsgIC8vIHN0cnVjdCBtZW1iZXJzIGNhbm5vdCBiZSBpbml0aWFsaXplZCBhdCB0aGUgdGltZSBv
ZiBzdHJ1Y3R1cmUgZGVjbGFyYXRpb24KK30gczE7CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3N0cnVjdDNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlYzFlNTM2MTYyYzFiOWEwZDQ0YTQ4Zjc4
YWVmYjAwMjA4NGU4M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Qz
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCitzdHJ1Y3QgcyB7CisgICAgdW5pZm9ybSBpbnQgaTsgIC8vIHN0cnVjdHVyZSBt
ZW1iZXJzIGNhbm5vdCBiZSBkZWNsYXJlZCB3aXRoIGNvbnN0IHF1YWxpZmllcgorfSBzMTsKKwor
dm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDRfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0NF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU3
ZDU0N2FlMTJjZjg0ZGMxZjVhYzY4YzFmNzJlOTYzMTUyMzUwNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3N0cnVjdDRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBjb25zdCBp
bnQgaSA9IDE7ICAvLyBzdHJ1Y3R1cmUgbWVtYmVycyBjYW5ub3QgYmUgZGVjbGFyZWQgd2l0aCBj
b25zdCBxdWFsaWZpZXIKK30gczE7CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9zdHJ1Y3Q1X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDVf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNjIzMjA3NjEzMWE2NGFlYjQzMWI4NzM5NjdkMzZhODFj
NDA0ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q1X2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit1bmlmb3JtIHN0cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczE7CisKK3ZvaWQgbWFpbigpCit7
CisgICBzMS5pID0gMTsgIC8vIHVuaWZvcm1zIGFyZSByZWFkIG9ubHkKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3N0cnVjdDZfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0
Nl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5OGNjMDFjNjIzYTY3ZGVlMjU2ZDA4M2M5ZWU1YjYy
MDIwZDFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDZfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3Zhcnlpbmcgc3RydWN0IHMgeworICAgIGludCBpOworfSBzMTsgIC8vIHN0cnVjdHVyZXMg
Y2Fubm90IGJlIGRlY2xhcmVkIHdpdGggdmFyeWluZyBxdWFsaWZpZXIKKwordm9pZCBtYWluKCkK
K3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDdfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvc3RydWN0N19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFhMzIwNjUwNTkyOTgz
MzQxMzRhZWFjNjgyYjUzNzJlNDA1MDEyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3N0cnVjdDdfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgc3RydWN0IHMgeworICAg
IH0gczE7ICAvLyBzdHJ1Y3R1cmVzIGhhdmUgdG8gYmUgZGVjbGFyZWQgd2l0aCBhdGxlYXN0IG9u
ZSBtZW1iZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDhfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkwMGJjOTBj
MzM1MTIzMjU4OTI5NjRmYWJmMjU2NDQwOGMwNDBmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3N0cnVjdDhfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczE7
CisKK3N0cnVjdCBzcyB7CisgICAgaW50IGk7Cit9IHMyOworCit2b2lkIG1haW4oKQoreworICAg
IHMxID0gczI7ICAvLyB0d28gZGlmZmVyZW50IHN0cnVjdHVyZXMgY2Fubm90IGJlIGFzc2lnbmVk
IHRvIGVhY2ggb3RoZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDlfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY2
MWQyNTAxMjhmM2RkYTQyY2QzODEyODczYTNmMDNiOWMwYTg1MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3N0cnVjdDlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK2NvbnN0IHN0cnVjdCBzIHsKKyAgICBp
bnQgaTsKK30gczEgPSBzKDEpOworCit2b2lkIG1haW4oKQoreworICAgczEuaSA9IDE7ICAvLyBj
b25zdCBzdHJ1Y3QgbWVtYmVycyBjYW5ub3QgYmUgbW9kaWZpZWQKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N3aXp6bGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUx
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTFlYTNjZjkxYTE1YzUxZDJlNmNiY2MxZWI0MTRmZmNm
ZjYyODc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenpsZTFfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHYueHkgPSAxLjI7IC8vIHN3aXp6
bGUgbmVlZHMgdHdvIHZhbHVlcywgdi54eSA9IHZlYzIoMS4yKSBpcyBjb3JyZWN0Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxlMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9zd2l6emxlMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA1YmQxODc3Njg2N2E2NGY0YWRkNjRm
MTdhMzk3NTkwN2VlOWRjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6
bGUyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzIgdjsKKyAgICB2Lnh4ID0gdmVj
MigxLDEpOyAgLy8geCBjYW5ub3QgYmUgdXNlZCB0d2ljZSBpbiBsLXZhbHVlCit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxlM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9z
d2l6emxlM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViOWZkNjA0ODMyMzg1Y2FkYzRhZWU5NGI4
NTYzNWY1MDZlOWZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUz
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzIgdjsKKyAgICB2ZWMzIHYzID0gdi54
eXo7IC8vIHYgaXMgYSB2ZWMyIGFuZCBkb2VzIG5vdCBoYXZlIGEgeiBjb21wb25lbnQKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3R5cGVjYXN0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3R5cGVjYXN0X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTFiMTI0ZjY2YzA3NTQ4ZmE0NzRl
NzIxNWEzMDkxMmY0N2FmNTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdHlw
ZWNhc3RfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCB2OworICAgIHZlYzQgdjEg
PSAodmVjNCkgdjsgLy8gaW5jb3JyZWN0IHR5cGVjYXN0aW5nLCB2ZWM0KHYpIGlzIGNvcnJlY3QK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3VuaWZvcm0xX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3VuaWZvcm0xX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjcwNjQ3ZmFhYjA1NjE4
ZTlkZjFlY2M4NTUyZTUyN2EyYTE4ZTNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvdW5pZm9ybTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBndGZfRm9nUGFyYW1ldGVycyB7Cit2ZWM0IGNv
bG9yOworZmxvYXQgZGVuc2l0eTsKK2Zsb2F0IHN0YXJ0OworZmxvYXQgZW5kOworZmxvYXQgc2Nh
bGU7Cit9OwordW5pZm9ybSBndGZfRm9nUGFyYW1ldGVycyBndGZfRm9nOwordm9pZCBtYWluKCkK
K3sKKyAgICBndGZfRm9nLmRlbnNpdHkgPSAxLjA7ICAvLyBjYW5ub3QgbW9kaWZ5IGEgdW5pZm9y
bQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybV9mcmFnLmZyYWcgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC91bmlmb3JtX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTVlYWNlZDQ2Y2ViYjM3
MGEwZDhmNGQ1NjU1ODllMTE3YzhjMTlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvdW5pZm9ybV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB1bmlmb3JtIGZsb2F0IGZv
bzsgIC8vIHVuaWZvcm1zIGNhbiBvbmx5IGJlIGRlY2xhcmVkIGF0IGEgZ2xvYmFsIHNjb3BlCit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nMV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC92YXJ5aW5nMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY1MTIyZWE5OGE3YmZiMDE0
MjBiMzQwZmRjNWU2YmYwMDBmMmVjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3ZhcnlpbmcxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit2YXJ5aW5nIGZsb2F0IGZvbzsKKwordm9pZCBtYWluKCkKK3sK
KyAgICBmb28gPSA1LjA7IC8vIHZhcnlpbmcgY2Fubm90IGJlIHdyaXR0ZW4gYnkgYSBmcmFnbWVu
dCBzaGFkZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmcyX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmcyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGNjOWY0
OWY0OTkzZGI2MjgxMDVjZTg4NDc2YWUwOThlNmRjYzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvdmFyeWluZzJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZhcnlpbmcgaW50IGZvbzsgLy8gdmFyeWlu
Z3MgY2Fubm90IGJlIGludCBvciBib29sCisKK3ZvaWQgbWFpbigpCit7CisKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmczX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Zh
cnlpbmczX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmFiNjVlYzk5NjUzNDg1NmNhMGRlNmIzM2Rm
ZDhkMTljMTA3MDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzNf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZhcnlpbmcgdmVjNCB2ID0gdmVjNCgxLDEsMSwxKTsvL2dsX1RleENvb3JkWzBd
OyAvLyB2YXJ5aW5ncyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQKKwordm9pZCBtYWluKCkKK3sKKwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZ19mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC92YXJ5aW5nX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODVkOWZkYjdiMzZmYmYwYThl
NTI1MTBkNWI2YWE0NWE4NTBmZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
dmFyeWluZ19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2YXJ5aW5nIGZsb2F0IGZvbzsg
Ly8gdmFyeWluZ3MgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgYSBnbG9iYWwgc2NvcGUKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlY3Rvcl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC92ZWN0b3JfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYzI5OGViMWQzZTc0MTBkNzU2ZTUwM2Jm
ZjgxZWIxM2U3MGI1NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZWN0b3Jf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaXZlYzQgdjQ7CisgICAgdjQgPSB2NCArIDIu
MDsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24yX1YxMDBfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjJfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgz
ZmM2YTQ2N2ZjNzAzMjczMGNkNmJkMjFlNjRiMTljMmM0NmZmYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ZlcnNpb24yX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNwcmFnbWEg
ZGVidWcob24pCisjdmVyc2lvbiAxMDAgIC8vIGVycm9yICN2ZXJzaW9uIHNob3VsZCBiZSB0aGUg
Zmlyc3Qgc3RhdGVtZW50IGluIHRoZSBwcm9ncmFtCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCisKKwordm9pZCBtYWluKCkKK3sKKyAgIGdsX0ZyYWdDb2xv
ciA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uM19WMTAw
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1YxMDBfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIxZGZjYzMzY2VlMjg0MjZmMTVhZjliZWNkNWYxZThhM2VhNzVkZmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uM19WMTAwX2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisvKiBUaGlzIGlzICBhIGNvbW1lbnQqLyBpbnQgaTsgLy8gVGhpcyBpcyBhIGdsb2JhbCBkZWNs
CisjdmVyc2lvbiAxMDAgIC8vIGVycm9yICN2ZXJzaW9uIHNob3VsZCBiZSB0aGUgZmlyc3Qgc3Rh
dGVtZW50IGluIHRoZSBwcm9ncmFtCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCisKKwordm9pZCBtYWluKCkKK3sKKyAgIGdsX0ZyYWdDb2xvciA9IHZlYzQo
MSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5Ml9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM4NWUy
MjFjZWRhNWI5MjE3NTkxMTY5YTU2MzZkYTEzOThjNzUyNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3ZlcnRleE9ubHkyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGds
X1Bvc2l0aW9uID0gdmVjNCg0LjApOyAgLy8gY2FuIGJlIHVzZWQgaW4gdmVydGV4IHNoYWRlciBv
bmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5X2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYWRhMmJm
MDg0NWY1ZmJmZmRkMDc3MGYyOTgxYmQ5NzBmMmE5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC92ZXJ0ZXhPbmx5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDI1IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgZ3RmX1BvaW50UGFyYW1ldGVy
cyB7CitmbG9hdCBzaXplOworZmxvYXQgc2l6ZU1pbjsKK2Zsb2F0IHNpemVNYXg7CitmbG9hdCBm
YWRlVGhyZXNob2xkU2l6ZTsKK2Zsb2F0IGRpc3RhbmNlQ29uc3RhbnRBdHRlbnVhdGlvbjsKK2Zs
b2F0IGRpc3RhbmNlTGluZWFyQXR0ZW51YXRpb247CitmbG9hdCBkaXN0YW5jZVF1YWRyYXRpY0F0
dGVudWF0aW9uOworfTsKK3VuaWZvcm0gZ3RmX0ZvZ1BhcmFtZXRlcnMgZ3RmX1BvaW50Owordm9p
ZCBtYWluKCkKK3sKKyAgICBndGZfUG9pbnRTaXplID0gNC4wOyAgLy8gY2FuIGJlIHVzZWQgaW4g
dmVydGV4IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhf
dmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVydGV4X3ZlcnQudmVydApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YjhjYzQ1NTVlMzM4YzNmMzcwZDQwNGRlMzZjOTlhNGY5MjU0ODQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdmVydGV4X3ZlcnQudmVydApAQCAtMCwwICsxLDEzIEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCithdHRyaWJ1dGUgdmVj
NCBndGZfVmVydGV4Owordm9pZCBtYWluKCkKK3sKKyAgICBndGZfVmVydGV4ID0gdmVjNCgxLjAs
Mi4wLDMuMCwgNC4wKTsgLy8gY2Fubm90IG1vZGlmeSBhbiBhdHRyaWJ1dGUKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3doaWxlMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGls
ZTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZTJjNmJiYjI4OTc5ZjY0MzUyYzRjMjU2MzI5YzE4
YWQ3YmVlMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTFfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgd2hpbGUoaSkgeyAgLy8gY29uZGl0
aW9uIHNob3VsZCBiZSBib29sZWFuCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvd2hpbGUyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlMl9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzFlNzVjZmE5MGRlZmRjMTUxZDNlMDljYzZiODU5YWY1ZGU2NTk5OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwx
NiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lm
ZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkK
K3sKKyAgICB3aGlsZShmbG9hdCBmID0gNS4wKSB7ICAvLyBjYW5ub3QgZGVjbGFyZSB2YXJpYWJs
ZXMgaW4gY29uZGl0aW9uCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hp
bGVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGVfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg5MWQwOTkyYjAwMjhlNzBkZTJhNzEzZWE5MTIyNjljMGM0MWUzM2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBm
bG9hdCBmOworICAgIHdoaWxlKGYpIHsgIC8vIGNvbmRpdGlvbiBzaG91bGQgYmUgYm9vbGVhbgor
ICAgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL3Byb2dyYW0tdGVzdC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3Jh
bXMvcHJvZ3JhbS10ZXN0Lmh0bWwKaW5kZXggYjVkNWI1OTFkNTEyZDk1OWNmZmQ0YzA3OTZjNzdi
ZGU3NTg3MWU1NS4uMzRjYTY4ZjFkNzVhNTkwOTFjMGJmYzE4ZTFkN2Y5NDQyZDEzNjI2YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcHJvZ3JhbXMvcHJvZ3JhbS10ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvcHJvZ3Jh
bS10ZXN0Lmh0bWwKQEAgLTMxMiw5ICszMTIsOSBAQCBmdW5jdGlvbiBnbygpIHsKICAgICBhc3Nl
cnRNc2coZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9nR29vZDIsIGdsLkxJTktfU1RBVFVTKSA9
PSBmYWxzZSwKICAgICAgICAgICAgICAgImxpbmtpbmcgc2hvdWxkIGZhaWwgd2l0aCBpbi11c2Ug
Zm9ybWVybHkgZ29vZCBwcm9ncmFtLCB3aXRoIG5ldyBiYWQgc2hhZGVyIGF0dGFjaGVkIik7CiAK
LSAgICAvLyBJbnZhbGlkIGxpbmsgbGVhdmVzIHByZXZpb3VzIHZhbGlkIHByb2dyYW0gaW50YWN0
LgorICAgIC8vIEluIFdlYkdMLCBhbiB1bnN1Y2Nlc3NmdWwgbGluayBpbW1lZGlhdGVseSBpbnZh
bGlkYXRlcyB0aGUgcHJldmlvdXMgdmFsaWQgcHJvZ3JhbS4KICAgICBnbC5kcmF3QXJyYXlzKGds
LlRSSUFOR0xFUywgMCwgMyk7Ci0gICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IsICJkcmF3aW5nIHdpdGggYSB2YWxpZCBwcm9ncmFtIHNob3VsZG4ndCBnZW5lcmF0ZSBhIEdM
IGVycm9yIik7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sICJkcmF3aW5nIHdpdGggYSBuZXdseS1pbnZhbGlkYXRlZCBwcm9ncmFtIHNob3VsZCBnZW5l
cmF0ZSBJTlZBTElEX09QRVJBVElPTiIpOwogCiAgICAgZ2wudXNlUHJvZ3JhbShwcm9nR29vZDEp
OwogICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA0KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
bmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQzMzU1NWYyYmJmZWE5ZmQ1YmIyMWYxYzJjMjQ5MTM0YTEyY2M5ZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13
aXRoLXNjaXNzb3ItdGVzdC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhLS0KK0NvcHlyaWdodCAo
YykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkNsZWFyIHdpdGggc2Npc3NvciBi
dWcgb24gV2ViR0wgY2FudmFzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmds
LXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNh
bnZhcy13ZWJnbCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj4gPC9jYW52YXM+Cis8Y2FudmFzIGlk
PSJjYW52YXMtMmQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+IDwvY2FudmFzPgorCis8c2NyaXB0
PgorInVzZSBzdHJpY3QiOworLy8gVGhpcyB0ZXN0IGV4cG9zZXMgYW4gaXNzdWUgaW4gb2xkZXIg
SW50ZWwgRDNEIGRyaXZlcnMuCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisKK2Z1bmN0aW9u
IHRlc3RfY2xlYXJfd2l0aF9zY2lzc29yX29uX2NhbnZhcygpCit7CisgIHZhciBjYW52YXNXZWJH
TCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMtd2ViZ2wiKTsKKyAgdmFyIGdsID0g
Y2FudmFzV2ViR0wuZ2V0Q29udGV4dCgid2ViZ2wiLCB7IGFudGlhbGlhczpmYWxzZSB9KTsKKyAg
Y29uc3Qgc2Npc3NvclJlY3RTaXplID0gMTY7CisgIGdsLmVuYWJsZShnbC5TQ0lTU09SX1RFU1Qp
OworICBnbC5zY2lzc29yKDAsIDAsIHNjaXNzb3JSZWN0U2l6ZSwgc2Npc3NvclJlY3RTaXplKTsK
KyAgZ2wuY2xlYXJDb2xvcigwLCAxLCAwLCAxKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVS
X0JJVCk7CisKKyAgLy8gVGhlIGlzc3VlIGlzIGZvdW5kIGluIHRoZSBDaHJvbWl1bSBjb21wb3Np
dG9yIHNvIHdlIG5lZWQgYW5vdGhlciBjYW52YXMgZWxlbWVudCBmb3IgcmVwcm9kdWN0aW9uLgor
ICB2YXIgY2FudmFzMkQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzLTJkIik7Cisg
IHZhciBjb250ZXh0MkQgPSBjYW52YXMyRC5nZXRDb250ZXh0KCcyZCcpOworICBjb250ZXh0MkQu
ZHJhd0ltYWdlKGNhbnZhc1dlYkdMLCAwLCAwKTsKKyAgY29udGV4dDJELmZpbGwoKTsKKworICB2
YXIgaW1hZ2VEYXRhID0KKyAgICBjb250ZXh0MkQuZ2V0SW1hZ2VEYXRhKDAsIGNhbnZhczJELmNs
aWVudEhlaWdodCAtIHNjaXNzb3JSZWN0U2l6ZSwgc2Npc3NvclJlY3RTaXplLCBzY2lzc29yUmVj
dFNpemUpOworICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOworICB2YXIgZXhwZWN0ZWRDb2xv
ciA9IFswLCAyNTUsIDAsIDI1NV07CisgIGZvciAodmFyIHBpeGVsSW5kZXggPSAwOyBwaXhlbElu
ZGV4IDwgc2Npc3NvclJlY3RTaXplICogc2Npc3NvclJlY3RTaXplOyArK3BpeGVsSW5kZXgpIHsK
KyAgICBmb3IgKHZhciBjb2xvckluZGV4ID0gMDsgY29sb3JJbmRleCA8IDQ7ICsrY29sb3JJbmRl
eCkgeworICAgICAgaWYgKGRhdGFbcGl4ZWxJbmRleCAqIDQgKyBjb2xvckluZGV4XSAhPT0gZXhw
ZWN0ZWRDb2xvcltjb2xvckluZGV4XSkgeworICAgICAgICB2YXIgeSA9IE1hdGguZmxvb3IocGl4
ZWxJbmRleCAvIHNjaXNzb3JSZWN0U2l6ZSk7CisgICAgICAgIHZhciB4ID0gcGl4ZWxJbmRleCAl
IHNjaXNzb3JSZWN0U2l6ZTsKKyAgICAgICAgdGVzdEZhaWxlZCgiVGhlIGNhbnZhcyBjb2xvciBh
dCAoIiArIHggKyAiLCAiICsgeSArICIpIGlzIG5vdCBleHBlY3RlZCIpOworICAgICAgICByZXR1
cm47CisgICAgICB9CisgICAgfQorICB9Cit9CisKK3Rlc3RfY2xlYXJfd2l0aF9zY2lzc29yX29u
X2NhbnZhcygpOworCitkZXNjcmlwdGlvbigiRXhwb3NlcyBjbGVhcmluZyBXZWJHTCBjYW52YXMg
d2l0aCBzY2lzc29yIGJ1ZyBvbiBJbnRlbCBEM0QgZHJpdmVycyAtIHNlZSBodHRwczovL2NyYnVn
LmNvbS8xMjA2NzYzIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxk
LW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVu
ZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZm
ZXItcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiYmE1MmU5YTk3MGJiYjk0MGY2YmRkODc4
MjFlZTMxZDE0ZTQ3MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1z
aG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwK
QEAgLTAsMCArMSw3MSBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29sb3JNYXNrIFNob3VsZCBOb3QgQWZmZWN0IEFudGlhbGlh
c2VkIEZyYW1lYnVmZmVyIFJlc29sdXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52
YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjgiIGhlaWdodD0iOCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
KyJ1c2Ugc3RyaWN0IjsKKworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGNvbG9yTWFzayBzdGF0ZSBkb2VzIG5vdCBh
ZmZlY3QgcmVzb2x1dGlvbiBvZiB0aGUgYW50aWFsaWFzZWQgZnJhbWVidWZmZXIuIik7CisKK2Rl
YnVnKCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vY3JidWcuY29tLzEyNTc3
NjkiPmh0dHBzOi8vY3JidWcuY29tLzEyNTc3Njk8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTI5Ij5odHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTI5PC9hPicpOworCitmdW5jdGlvbiBydW4oKSB7Cisg
ICAgY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMiLCB7IGFudGlhbGlhczog
dHJ1ZSwgYWxwaGE6IHRydWUgfSk7CisKKyAgICBpZiAoIWdsKSB7CisgICAgICAgIHRlc3RGYWls
ZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4
dCBleGlzdHMiKTsKKworICAgIGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBDb2xvclF1YWQoZ2wp
OworCisgICAgLy8gQ2xlYXIgdGhlIGRlZmF1bHQgKG11bHRpc2FtcGxlZCkgZnJhbWVidWZmZXIg
dG8gcmVkLgorICAgIGdsLmNsZWFyQ29sb3IoMSwgMCwgMCwgMSk7CisgICAgZ2wuY29sb3JNYXNr
KHRydWUsIHRydWUsIHRydWUsIHRydWUpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9C
SVQpOworCisgICAgLy8gRHJhdyBhIHRyYW5zcGFyZW50IGdyZWVuIHF1YWQuCisgICAgZ2wudXNl
UHJvZ3JhbShwcm9ncmFtKTsKKyAgICB3dHUuZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCBbIDAsIDI1
NSwgMCwgMCBdKTsKKworICAgIC8vIENsZWFyIHRoZSBhbHBoYSBjaGFubmVsLgorICAgIGdsLmNv
bG9yTWFzayhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICBnbC5jbGVhckNvbG9yKDAs
IDAsIDAsIDEpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgICAgLy8g
QXQgdGhpcyBwb2ludCwgZXZlbiBzZXR0aW5nIHRoZSBjb2xvck1hc2sgdG8gYWxsLXRydWUgd29u
J3QKKyAgICAvLyB3b3JrIGFyb3VuZCB0aGUgYnVnLCBzaW5jZSB0aGF0IHN0YXRlIGlzIGxhdGNo
ZWQgaW5zaWRlIEFOR0xFCisgICAgLy8gb25seSBkdXJpbmcgZHJhd3MgLyBjbGVhcnMuCisKKyAg
ICB3dHUuY2hlY2tDYW52YXMoZ2wsIFsgMCwgMjU1LCAwLCAyNTUgXSwgInNob3VsZCBiZSBncmVl
biIsIDEpOworICAgIGZpbmlzaFRlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CisKK3JlcXVlc3RBbmltYXRpb25GcmFtZShydW4pOworCis8L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sCmluZGV4IDUzMGE0YjQzMTNhZmUwMTQ0
Mjc0ODFjZmIxYzQ2YjVjMzFlNjEzMWEuLjdhYTJjZWRmOTk5N2NkMWZkNTg1Y2Y2NDY0NjlhMDYw
YmFhYTk5NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKQEAgLTIwLDcgKzIwLDUgQEAgZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiB2YXIgY29udGV4dFZlcnNpb24gPSAxOwogPC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qcyI+
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJh
YmxlLXJlbmRlcmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjc2OTRiODIxZWIxZWYxYmM4MzY4NTQz
NDg1NGIyYWE5ODAzMmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwKQEAgLTAsMCArMSwzNzggQEAKKzwhLS0KK0NvcHly
aWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
CitkZXNjcmlwdGlvbigpOworCitjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsKK2ds
LmNhbnZhcy53aWR0aCA9IGdsLmNhbnZhcy5oZWlnaHQgPSAxOworCitmdW5jdGlvbiBtYWtlVGV4
SW1hZ2UoZm9ybWF0LCB1bnBhY2tGb3JtYXQsIHVucGFja1R5cGUsIGRhdGEpIHsKKyAgICBkYXRh
ID0gZGF0YSB8fCBudWxsOworCisgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwor
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwor
ICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVS
LCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW2Zv
cm1hdF0sIDIsIDIsIDAsCisgICAgICAgICAgICAgICAgZ2xbdW5wYWNrRm9ybWF0XSwgZ2xbdW5w
YWNrVHlwZV0sIG51bGwpOworICAgIHJldHVybiB0ZXg7Cit9CisKK2NvbnN0IERVTU1ZX0NPTE9S
ID0gbWFrZVRleEltYWdlKCdSR0JBJywgJ1JHQkEnLCAnVU5TSUdORURfQllURScpOworCitmdW5j
dGlvbiBtYWtlUHJvZ3JhbShnbCwgdnNTcmMsIGZzU3JjKSB7CisgIGZ1bmN0aW9uIG1ha2VTaGFk
ZXIocHJvZywgdHlwZSwgc3JjKSB7CisgICAgY29uc3Qgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVy
KGdsW3R5cGVdKTsKKyAgICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzcmMudHJpbSgpKTsKKyAg
ICBnbC5jb21waWxlU2hhZGVyKHNoYWRlcik7CisgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2csIHNo
YWRlcik7CisgICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7CisgIH07CisKKyAgY29uc3QgcHJv
ZyA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgbWFrZVNoYWRlcihwcm9nLCAnVkVSVEVYX1NIQURF
UicsIHZzU3JjKTsKKyAgbWFrZVNoYWRlcihwcm9nLCAnRlJBR01FTlRfU0hBREVSJywgZnNTcmMp
OworICBnbC5saW5rUHJvZ3JhbShwcm9nKTsKKworICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0
ZXIocHJvZywgZ2wuTElOS19TVEFUVVMpKSB7CisgICAgdGhyb3cgJ1Byb2dyYW0gbGlua2luZyBm
YWlsZWQnICsgZnNTcmM7CisgIH0KKyAgcmV0dXJuIHByb2c7Cit9CisKK2NvbnN0IFRFWF9GSUxU
RVJfUFJPR19UID0gKHZlcnNpb24sIHNhbXBsZXJUKSA9PiBtYWtlUHJvZ3JhbShnbCwgYFwKKyAg
ICAke3ZlcnNpb259CisgICAgdm9pZCBtYWluKCkgeworICAgICAgICBnbF9Qb2ludFNpemUgPSAx
LjA7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjUsMC41LDAsMSk7CisgICAgfWAsYFwK
KyAgICAke3ZlcnNpb259CisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgdW5pZm9y
bSAke3NhbXBsZXJUfSB1X3RleDA7CisgICAgI2lmIF9fVkVSU0lPTl9fID09IDMwMAorICAgIG91
dCB2ZWM0IG9fRnJhZ0NvbG9yOworICAgICNlbHNlCisgICAgI2RlZmluZSBvX0ZyYWdDb2xvciBn
bF9GcmFnQ29sb3IKKyAgICAjZGVmaW5lIHRleHR1cmUgdGV4dHVyZTJECisgICAgI2VuZGlmCisg
ICAgdm9pZCBtYWluKCkgeworICAgICAgICBvX0ZyYWdDb2xvciA9IHZlYzQodGV4dHVyZSh1X3Rl
eDAsIHZlYzIoMC44KSkpOworICAgIH1gKTsKK2NvbnN0IFRFWF9GSUxURVJfUFJPR19CWV9UWVBF
SVNIID0geworICAgICdmbG9hdCc6IFRFWF9GSUxURVJfUFJPR19UKCcnLCAnc2FtcGxlcjJEJyks
Cit9OworaWYgKHd0dS5pc1dlYkdMMihnbCkpIHsKKyAgICBURVhfRklMVEVSX1BST0dfQllfVFlQ
RUlTSFsnaW50J10gPQorICAgICAgICBURVhfRklMVEVSX1BST0dfVCgnI3ZlcnNpb24gMzAwIGVz
JywgJ2hpZ2hwIGlzYW1wbGVyMkQnKTsKKyAgICBURVhfRklMVEVSX1BST0dfQllfVFlQRUlTSFsn
dWludCddID0KKyAgICAgICAgVEVYX0ZJTFRFUl9QUk9HX1QoJyN2ZXJzaW9uIDMwMCBlcycsICdo
aWdocCB1c2FtcGxlcjJEJyk7Cit9CisKK2Z1bmN0aW9uIHJ1blBpeGVsUHJvZ3JhbShnbCwgcHJv
ZykgeworICAgIGdsLnVzZVByb2dyYW0ocHJvZyk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCk7CisgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgIGNvbnN0
IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgICAgZ2wucmVhZFBpeGVscygwLDAsMSwxLGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ5dGVzKTsKKyAgICByZXR1cm4gW10ubWFwLmNhbGwo
Ynl0ZXMsIHggPT4geC8yNTUuMCk7Cit9CisKKy8vIEdMRVMgMi4wLjI1IHA2MworY29uc3QgRk9S
TUFUX0lORk9fV0VCR0wxID0geworICAgIFJHQkE4ICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6
IHRydWUgICAgICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkdC
OCAgIDogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjogdW5kZWZpbmVkLCB1bnBhY2s6IFsnUkdCJywg
J1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQkE0ICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6
IHVuZGVmaW5lZCwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfU0hPUlRfNF80XzRfNCddIH0s
CisgICAgUkdCNV9BMTogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjogdW5kZWZpbmVkLCB1bnBhY2s6
IFsnUkdCQScsICdVTlNJR05FRF9TSE9SVF81XzVfNV8xJ10gfSwKKyAgICBSR0I1NjUgOiB7IGZp
bHRlcjogdHJ1ZSwgcmVuZGVyOiB1bmRlZmluZWQsIHVucGFjazogWydSR0InLCAnVU5TSUdORURf
U0hPUlRfNV82XzUnXSB9LAorICAgIExBOCAgICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IGZh
bHNlICAgICwgdW5wYWNrOiBbJ0xVTUlOQU5DRV9BTFBIQScsICdVTlNJR05FRF9CWVRFJ10gfSwK
KyAgICBMOCAgICAgOiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiBmYWxzZSAgICAsIHVucGFjazog
WydMVU1JTkFOQ0UnLCAnVU5TSUdORURfQllURSddIH0sCisgICAgQTggICAgIDogeyBmaWx0ZXI6
IHRydWUsIHJlbmRlcjogZmFsc2UgICAgLCB1bnBhY2s6IFsnQUxQSEEnLCAnVU5TSUdORURfQllU
RSddIH0sCit9OworCisvLyBHTEVTIDMuMC42IHAxMzAtMTMyCitjb25zdCBGT1JNQVRfSU5GT19X
RUJHTDIgPSB7CisgICAgUjggICAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0
cnVlICwgdW5wYWNrOiBbJ1JFRCcsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSOF9TTk9STSAg
ICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkVEJywgJ0JZ
VEUnXSB9LAorICAgIFJHOCAgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1
ZSAsIHVucGFjazogWydSRycsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSRzhfU05PUk0gICAg
IDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkcnLCAnQllURSdd
IH0sCisgICAgUkdCOCAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVlICwg
dW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSR0I4X1NOT1JNICAgIDog
eyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ0JZVEUnXSB9
LAorICAgIFJHQjU2NSAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1ZSAsIHVu
cGFjazogWydSR0InLCAnVU5TSUdORURfU0hPUlRfNV82XzUnXSB9LAorICAgIFJHQkE0ICAgICAg
ICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VO
U0lHTkVEX1NIT1JUXzRfNF80XzQnXSB9LAorICAgIFJHQjVfQTEgICAgICAgOiB7IHJlbmRlcjog
dHJ1ZSAsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX1NIT1JUXzVf
NV81XzEnXSB9LAorICAgIFJHQkE4ICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjog
dHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQkE4X1NO
T1JNICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywg
J0JZVEUnXSB9LAorICAgIFJHQjEwX0EyICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjog
dHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0lOVF8xMF8xMF8xMF8yJ10gfSwKKyAg
ICBSR0IxMF9BMlVJICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6
IFsnUkdCQScsICdVTlNJR05FRF9JTlRfMTBfMTBfMTBfMiddIH0sCisgICAgU1JHQjggICAgICAg
ICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQicsICdVTlNJ
R05FRF9CWVRFJ10gfSwKKyAgICBTUkdCOF9BTFBIQTggIDogeyByZW5kZXI6IHRydWUgLCBmaWx0
ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSMTZG
ICAgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkVE
JywgJ0ZMT0FUJ10gfSwKKyAgICBSRzE2RiAgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0
ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkcnLCAnRkxPQVQnXSB9LAorICAgIFJHQjE2RiAgICAgICAg
OiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0InLCAnRkxPQVQn
XSB9LAorICAgIFJHQkExNkYgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAs
IHVucGFjazogWydSR0JBJywgJ0ZMT0FUJ10gfSwKKyAgICBSMzJGICAgICAgICAgIDogeyByZW5k
ZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ0ZMT0FUJ10gfSwKKyAg
ICBSRzMyRiAgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6
IFsnUkcnLCAnRkxPQVQnXSB9LAorICAgIFJHQjMyRiAgICAgICAgOiB7IHJlbmRlcjogZmFsc2Us
IGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0InLCAnRkxPQVQnXSB9LAorICAgIFJHQkEzMkYg
ICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JBJywg
J0ZMT0FUJ10gfSwKKyAgICBSMTFGX0cxMUZfQjEwRjogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6
IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ0ZMT0FUJ10gfSwKKyAgICBSR0I5X0U1ICAgICAgIDog
eyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ0ZMT0FUJ10g
fSwKKyAgICBSOEkgICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1
bnBhY2s6IFsnUkVEJywgJ0JZVEUnXSB9LAorICAgIFI4VUkgICAgICAgICAgOiB7IHJlbmRlcjog
dHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnVU5TSUdORURfQllURSddIH0s
CisgICAgUjE2SSAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5w
YWNrOiBbJ1JFRCcsICdCWVRFJ10gfSwKKyAgICBSMTZVSSAgICAgICAgIDogeyByZW5kZXI6IHRy
dWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAor
ICAgIFIzMkkgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFj
azogWydSRUQnLCAnQllURSddIH0sCisgICAgUjMyVUkgICAgICAgICA6IHsgcmVuZGVyOiB0cnVl
ICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JFRCcsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAg
ICBSRzhJICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6
IFsnUkcnLCAnQllURSddIH0sCisgICAgUkc4VUkgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwg
ZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJH
MTZJICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydS
RycsICdTSE9SVCddIH0sCisgICAgUkcxNlVJICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmls
dGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHJywgJ1VOU0lHTkVEX1NIT1JUJ10gfSwKKyAgICBSRzMy
SSAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkcn
LCAnSU5UJ10gfSwKKyAgICBSRzMyVUkgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6
IGZhbHNlLCB1bnBhY2s6IFsnUkcnLCAnVU5TSUdORURfSU5UJ10gfSwKKyAgICBSR0I4SSAgICAg
ICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCJywgJ0JZ
VEUnXSB9LAorICAgIFJHQjhVSSAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFs
c2UsIHVucGFjazogWydSR0InLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkdCMTZJICAgICAg
ICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdTSE9S
VCddIH0sCisgICAgUkdCMTZVSSAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxz
ZSwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9TSE9SVCddIH0sCisgICAgUkdCMzJJICAgICAg
ICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdJTlQn
XSB9LAorICAgIFJHQjMyVUkgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2Us
IHVucGFjazogWydSR0InLCAnVU5TSUdORURfSU5UJ10gfSwKKyAgICBSR0JBOEkgICAgICAgIDog
eyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCQScsICdCWVRFJ10g
fSwKKyAgICBSR0JBOFVJICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1
bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSR0JBMTZJICAgICAgIDog
eyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCQScsICdTSE9SVCdd
IH0sCisgICAgUkdCQTE2VUkgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwg
dW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfU0hPUlQnXSB9LAorICAgIFJHQkEzMkkgICAgICAg
OiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JBJywgJ0lOVCdd
IH0sCisgICAgUkdCQTMyVUkgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwg
dW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfSU5UJ10gfSwKKworICAgIERFUFRIX0NPTVBPTkVO
VDE2OiAgeyByZW5kZXI6ICdERVBUSF9BVFRBQ0hNRU5UJywgZmlsdGVyOiBmYWxzZSB9LAorICAg
IERFUFRIX0NPTVBPTkVOVDI0OiAgeyByZW5kZXI6ICdERVBUSF9BVFRBQ0hNRU5UJywgZmlsdGVy
OiBmYWxzZSB9LAorICAgIERFUFRIX0NPTVBPTkVOVDMyRjogeyByZW5kZXI6ICdERVBUSF9BVFRB
Q0hNRU5UJywgZmlsdGVyOiBmYWxzZSB9LAorICAgIERFUFRIMjRfU1RFTkNJTDg6ICAgeyByZW5k
ZXI6ICdERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQnLCBmaWx0ZXI6IGZhbHNlIH0sCisgICAgREVQ
VEgzMkZfU1RFTkNJTDg6ICB7IHJlbmRlcjogJ0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVCcsIGZp
bHRlcjogZmFsc2UgfSwKK307CisKK2NvbnN0IE9ORV9CWV9UWVBFID0geworICAgICdCWVRFJzog
KDE8PDcpLTEsCisgICAgJ1VOU0lHTkVEX0JZVEUnOiAoMTw8OCktMSwKKyAgICAnU0hPUlQnOiAo
MTw8MTUpLTEsCisgICAgJ1VOU0lHTkVEX1NIT1JUJzogKDE8PDE2KS0xLAorICAgICdJTlQnOiAo
MTw8MzEpLTEsCisgICAgJ1VOU0lHTkVEX0lOVCc6IE1hdGgucG93KDIsMzIpLTEsCisgICAgJ0ZM
T0FUJzogMSwKK307CisKK2NvbnN0IEFCVl9CWV9UWVBFID0geworICAgICdCWVRFJzogSW50OEFy
cmF5LAorICAgICdVTlNJR05FRF9CWVRFJzogVWludDhBcnJheSwKKyAgICAnU0hPUlQnOiBJbnQx
NkFycmF5LAorICAgICdVTlNJR05FRF9TSE9SVCc6IFVpbnQxNkFycmF5LAorICAgICdJTlQnOiBJ
bnQzMkFycmF5LAorICAgICdVTlNJR05FRF9JTlQnOiBVaW50MzJBcnJheSwKKyAgICAnRkxPQVQn
OiBGbG9hdDMyQXJyYXksCit9OworCitmdW5jdGlvbiBwdXNoQml0c1Vub3JtKHByZXYsIGJpdENv
dW50LCBmbG9hdFZhbCkgeworICAgIGxldCByZXQgPSBwcmV2IDw8IGJpdENvdW50OworICAgIHJl
dCB8PSBmbG9hdFZhbCAqICgoMSA8PCBiaXRDb3VudCktMSk7CisgICAgcmV0dXJuIHJldDsKK30K
KworY29uc3QgQ0hBTk5FTFNfQllfRk9STUFUID0geworICAgICdSRUQnOiAxLAorICAgICdMVU1J
TkFOQ0UnOiAxLAorICAgICdBTFBIQSc6IDEsCisgICAgJ0xVTUlOQU5DRV9BTFBIQSc6IDIsCisg
ICAgJ1JHJzogMiwKKyAgICAnUkdCJzogMywKKyAgICAnUkdCQSc6IDQsCit9OworCitmdW5jdGlv
biB0aHJvd3YodmFsKSB7CisgICAgdGhyb3cgdmFsOworfQorCitmdW5jdGlvbiBwaXhlbERhdGFG
b3JVbnBhY2soZm9ybWF0LCB0eXBlLCBmbG9hdFZhbCkgeworICAgIHN3aXRjaCAodHlwZSkgewor
ICAgICAgICBjYXNlICdVTlNJR05FRF9TSE9SVF81XzZfNSc6IHsKKyAgICAgICAgICAgIGxldCBi
aXRzID0gMDsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0
VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDYsIGZsb2F0VmFs
KTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0VmFsKTsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgVWludDE2QXJyYXkoW2JpdHNdKTsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlICdVTlNJR05FRF9TSE9SVF80XzRfNF80JzogeworICAgICAgICAgICAgbGV0
IGJpdHMgPSAwOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxv
YXRWYWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRW
YWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRWYWwp
OworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRWYWwpOwor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MTZBcnJheShbYml0c10pOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnOiB7CisgICAgICAgICAgICBsZXQg
Yml0cyA9IDA7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA1LCBmbG9h
dFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA1LCBmbG9hdFZh
bCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA1LCBmbG9hdFZhbCk7
CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCAxLCBmbG9hdFZhbCk7IC8v
IE9rLCBzaWxseSBmb3IgMSBiaXQgaGVyZS4KKyAgICAgICAgICAgIHJldHVybiBuZXcgVWludDE2
QXJyYXkoW2JpdHNdKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlICdVTlNJR05FRF9JTlRfMTBf
MTBfMTBfMic6IHsKKyAgICAgICAgICAgIGxldCBiaXRzID0gMDsKKyAgICAgICAgICAgIGJpdHMg
PSBwdXNoQml0c1Vub3JtKGJpdHMsIDEwLCBmbG9hdFZhbCk7CisgICAgICAgICAgICBiaXRzID0g
cHVzaEJpdHNVbm9ybShiaXRzLCAxMCwgZmxvYXRWYWwpOworICAgICAgICAgICAgYml0cyA9IHB1
c2hCaXRzVW5vcm0oYml0cywgMTAsIGZsb2F0VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNo
Qml0c1Vub3JtKGJpdHMsIDIsIGZsb2F0VmFsKTsgLy8gMiBiaXRzIGlzbid0IG11Y2ggbW9yZSB1
c2VmdWwKKyAgICAgICAgICAgIHJldHVybiBuZXcgVWludDMyQXJyYXkoW2JpdHNdKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGNvbnN0IGNoYW5uZWxzID0gQ0hBTk5FTFNfQllfRk9STUFUW2Zv
cm1hdF0gfHwgdGhyb3d2KGZvcm1hdCk7CisgICAgY29uc3Qgb25lID0gT05FX0JZX1RZUEVbdHlw
ZV0gfHwgdGhyb3d2KCcyNDAnLCB0eXBlKTsKKyAgICBjb25zdCBhYnZUeXBlID0gQUJWX0JZX1RZ
UEVbdHlwZV0gfHwgdGhyb3d2KCcyNDEnLCB0eXBlKTsKKworICAgIGNvbnN0IHZhbCA9IGZsb2F0
VmFsICogb25lOworICAgIGNvbnN0IGFyciA9IFtdOworICAgIGZvciAoY29uc3QgaSBvZiByYW5n
ZShjaGFubmVscykpIHsKKyAgICAgICAgYXJyLnB1c2godmFsKTsKKyAgICB9CisgICAgcmV0dXJu
IG5ldyBhYnZUeXBlKGFycik7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdChuYW1lLCB3YXMsIGV4cGVj
dGVkKSB7CisgICAgbGV0IHRleHQgPSBgJHtuYW1lfSB3YXMgJHt3YXN9YDsKKyAgICBjb25zdCBj
b25kID0gd2FzID09IGV4cGVjdGVkOworICAgIGlmICghY29uZCkgeworICAgICAgICB0ZXh0ICs9
IGAsIGJ1dCBleHBlY3RlZCAke2V4cGVjdGVkfWA7CisgICAgfQorICAgIGV4cGVjdFRydWUoY29u
ZCwgdGV4dCk7Cit9CisKK2Z1bmN0aW9uIHRvVHlwZWlzaChzaXplZEZvcm1hdCkgeworICAgIGlm
IChzaXplZEZvcm1hdC5lbmRzV2l0aCgnVUknKSkgeworICAgICAgICByZXR1cm4gJ2ludCc7Cisg
ICAgfSBlbHNlIGlmIChzaXplZEZvcm1hdC5lbmRzV2l0aCgnSScpKSB7CisgICAgICAgIHJldHVy
biAndWludCc7CisgICAgfQorICAgIHJldHVybiAnZmxvYXQnOworfQorCitjYWxsKGFzeW5jICgp
ID0+IHsKKyAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCAxKTsKKworICAg
IGxldCBmb3JtYXRMaXN0ID0gRk9STUFUX0lORk9fV0VCR0wxOworICAgIGlmICh3dHUuaXNXZWJH
TDIoZ2wpKSB7CisgICAgICAgIGZvcm1hdExpc3QgPSBGT1JNQVRfSU5GT19XRUJHTDI7CisgICAg
fQorICAgIGZvciAoY29uc3QgW3NpemVkRm9ybWF0LCBpbmZvXSBvZiBPYmplY3QuZW50cmllcyhm
b3JtYXRMaXN0KSkgeworICAgICAgICBhd2FpdCB3dHUuZGlzcGF0Y2hQcm9taXNlKCk7CisgICAg
ICAgIGRlYnVnKGBgKTsKKyAgICAgICAgZGVidWcoYCR7c2l6ZWRGb3JtYXR9OiAke0pTT04uc3Ry
aW5naWZ5KGluZm8pfWApOworCisgICAgICAgIGNvbnN0IHR5cGVpc2ggPSB0b1R5cGVpc2goc2l6
ZWRGb3JtYXQpOworCisgICAgICAgIC8vICB8LS0tfC0tLXwKKyAgICAgICAgLy8gIHwgMCB8IDEg
fAorICAgICAgICAvLyAgfC0tLXwtLS18CisgICAgICAgIC8vIDB8IDAgfCAwIHwKKyAgICAgICAg
Ly8gIHwtLS18LS0tfAorICAgICAgICAvLyAgICAwCisgICAgICAgIGNvbnN0IHRleCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
KTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01B
R19GSUxURVIsIGdsLkxJTkVBUik7CisgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOworCisgICAgICAgIGlmIChn
bC50ZXhTdG9yYWdlMkQpIHsKKyAgICAgICAgICAgIGdsLnRleFN0b3JhZ2UyRChnbC5URVhUVVJF
XzJELCAxLCBnbFtzaXplZEZvcm1hdF0sIDIsIDIpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtpbmZvLnVucGFja1swXV0s
CisgICAgICAgICAgICAgICAgMiwgMiwgMCwgZ2xbaW5mby51bnBhY2tbMF1dLCBnbFtpbmZvLnVu
cGFja1sxXV0sIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGluZm8udW5wYWNrKSB7
CisgICAgICAgICAgICBjb25zdCBvbmUgPSBwaXhlbERhdGFGb3JVbnBhY2soLi4uaW5mby51bnBh
Y2ssIDEuMCk7CisgICAgICAgICAgICBjb25zdCBkYXRhID0gbmV3IG9uZS5jb25zdHJ1Y3Rvcihv
bmUubGVuZ3RoKjQpOworICAgICAgICAgICAgZGF0YS5zZXQob25lLCBvbmUubGVuZ3RoKjMpOwor
ICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsCisgICAg
ICAgICAgICAgICAgMiwyLCBnbFtpbmZvLnVucGFja1swXV0sIGdsW2luZm8udW5wYWNrWzFdXSwg
ZGF0YSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbmZvLnJlbmRlciB8fCB0aHJv
d3YoYCR7c2l6ZWRGb3JtYXR9IHdpdGhvdXQgdW5wYWNrIG9yIHJlbmRlcmApOworICAgICAgICB9
CisKKyAgICAgICAgLy8gLQorICAgICAgICAvLyBjb2xvci1yZW5kZXJhYmxlIHRlc3QKKworICAg
ICAgICB7CisgICAgICAgICAgICBjb25zdCBmYiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Cisg
ICAgICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKyAgICAg
ICAgICAgIGxldCBhdHRhY2ggPSBpbmZvLnJlbmRlciB8fCB0cnVlOworICAgICAgICAgICAgY29u
c3QgaXNDb2xvciA9IChhdHRhY2ggPT09IHRydWUpOworICAgICAgICAgICAgaWYgKGlzQ29sb3Ip
IHsKKyAgICAgICAgICAgICAgICBhdHRhY2ggPSAnQ09MT1JfQVRUQUNITUVOVDAnOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2wuVEVYVFVSRV8yRCwgRFVNTVlfQ09MT1IsIDApOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVC
VUZGRVIsIGdsW2F0dGFjaF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
bC5URVhUVVJFXzJELCB0ZXgsIDApOworICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUik7CisgICAgICAgICAgICBjb25zdCB3
YXNSZW5kZXJhYmxlID0gKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7CisgICAg
ICAgICAgICBpZiAoaW5mby5yZW5kZXIgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAg
IGRlYnVnKGBOb24tbm9ybWF0aXZlOiBjb2xvci1yZW5kZXJhYmxlIHdhcyAke3dhc1JlbmRlcmFi
bGV9YCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4cGVjdCgnY29s
b3ItcmVuZGVyYWJsZScsIHdhc1JlbmRlcmFibGUsICEhaW5mby5yZW5kZXIpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKHdhc1JlbmRlcmFibGUpIHsKKyAgICAgICAgICAgICAgICBn
bC5jbGVhckNvbG9yKDAsMCwwLDApOworICAgICAgICAgICAgICAgIGdsLmNsZWFyRGVwdGgoMCk7
CisgICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOworICAgICAgICAgICAgICAgIGdsLmVuYWJsZShnbC5TQ0lTU09SX1RFU1Qp
OworICAgICAgICAgICAgICAgIGdsLnNjaXNzb3IoMSwxLDEsMSk7CisgICAgICAgICAgICAgICAg
Z2wuY2xlYXJDb2xvcigxLDEsMSwxKTsKKyAgICAgICAgICAgICAgICBnbC5jbGVhckRlcHRoKDEp
OworICAgICAgICAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBU
SF9CVUZGRVJfQklUKTsKKyAgICAgICAgICAgICAgICBnbC5kaXNhYmxlKGdsLlNDSVNTT1JfVEVT
VCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnbC5kZWxldGVGcmFtZWJ1ZmZlcihmYik7
CisgICAgICAgICAgICBpZiAoIXdhc1JlbmRlcmFibGUgJiYgIWluZm8udW5wYWNrKSB7CisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgnTm8gdW5wYWNrIHByb3ZpZGVkIGFuZCAhd2FzUmVuZGVy
YWJsZSwgc2tpcHBpbmcgZmlsdGVyaW5nIHN1YnRlc3QuLi4nKTsKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIC0KKyAgICAg
ICAgLy8gZmlsdGVyYWJsZSB0ZXN0CisKKyAgICAgICAgY29uc3QgcHJvZyA9IFRFWF9GSUxURVJf
UFJPR19CWV9UWVBFSVNIW3R5cGVpc2hdOworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOworICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDApOworICAgICAgICBn
bC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOworICAgICAgICBnbC52aWV3
cG9ydCgwLDAsMSwxKTsKKyAgICAgICAgY29uc3QgdiA9IHJ1blBpeGVsUHJvZ3JhbShnbCwgcHJv
Zyk7CisgICAgICAgIGlmIChzaXplZEZvcm1hdCAhPSAnQTgnKSB7CisgICAgICAgICAgICB2WzNd
ID0gMDsgLy8gSW5jb21wbGV0ZSBuby1hbHBoYSBmb3JtYXRzIHB1dCAxIGluIGFscGhhLgorICAg
ICAgICB9CisgICAgICAgIGNvbnN0IHdhc0ZpbHRlcmFibGUgPSB2LnNvbWUoeCA9PiAhIXgpOwor
ICAgICAgICBleHBlY3QoJ2ZpbHRlcmFibGUnLCB3YXNGaWx0ZXJhYmxlLCBpbmZvLmZpbHRlcik7
CisgICAgfQorCisgICAgZmluaXNoVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjA4Njk2ZTk4YThlY2ZlZDQ5ZjNiNmFlN2NmOWU4N2NlZWZmYTVhZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEyNSArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgotLS0+
Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTx0aXRsZT5XZWJHTCBPcmlnaW4gUmVzdHJpY3Rpb25zIENvbmZvcm1hbmNlIFRlc3RzIGZv
ciBPZmZzY3JlZW5DYW52YXM8L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZh
cyBpZD0iY2FudmFzIj48L2NhbnZhcz4KLTxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6bm9u
ZTsiPgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
LQotLy8gQ2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1mdW5jdGlvbiBj
YXVzZWRFeGNlcHRpb24oZnVuYykgewotICB2YXIgaGFkRXhjZXB0aW9uID0gZmFsc2U7Ci0gIHRy
eSB7Ci0gICAgZnVuYygpOwotICB9IGNhdGNoKGUpIHsKLSAgICBoYWRFeGNlcHRpb24gPSB0cnVl
OwotICB9Ci0gIHJldHVybiBoYWRFeGNlcHRpb247Ci19Ci0KLXZhciBkZWZhdWx0SW1nVXJsID0g
Imh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28u
anBnIjsKLXZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28u
anBnIjsKLQotdmFyIGltZ0RvbWFpbjsKLXZhciBwYWdlRG9tYWluOwotCi1mdW5jdGlvbiBpbWFn
ZUxvYWRlZChpbWcpIHsKLSAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGlt
cGxlbWVudGF0aW9ucyBmb3IgT2Zmc2NyZWVuQ2FudmFzIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmln
aW4gcmVzdHJpY3Rpb25zLiIpOwotCi0gIGlmICghd2luZG93Lk9mZnNjcmVlbkNhbnZhcykgewot
ICAgIHRlc3RQYXNzZWQoIk5vIE9mZnNjcmVlbkNhbnZhcyBzdXBwb3J0Iik7Ci0gICAgZmluaXNo
VGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGFzc2VydE1zZyhpbWcud2lkdGggPiAwICYm
IGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAgaW1nRG9tYWluID0gd3R1Lmdl
dEJhc2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwotICBwYWdlRG9tYWluID0gd3R1Lmdl
dEJhc2VEb21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwotICBhc3NlcnRNc2coaW1nRG9tYWlu
ICE9IHBhZ2VEb21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiAr
ICIpIGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1l
LiIpOwotCi0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4g
ZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1
bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1h
a2VSZWFkUGl4ZWxzKGdsKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGJ1
ZiA9IG5ldyBVaW50OEFycmF5KDQpOwotICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIH07Ci0gIH0KLQotICB2YXIgb2Zm
c2NyZWVuY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOwotICB2YXIgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KG9mZnNjcmVlbmNhbnZhcyk7Ci0KLSAgZGVidWcoIiIpOwotICBk
ZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhbiBpbWFnZSBmcm9tIGFub3Ro
ZXIgb3JpZ2luIHRocm93cyBhbiBleGNlcHRpb24uIik7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMjU2LCAyNTYsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1h
a2VUZXhJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggY3Jv
c3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhj
YXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGltZykpLAotICAgICAgICAgICAg
InRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2Vw
dGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3
b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2Vk
RXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBz
aG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmln
aW4gb2YgV2ViR0wgY2FudmFzLiIpOwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQg
dG8gdXBsb2FkIGEgdGFpbnRlZCBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLSAgdmFyIGN0eDJk
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDAp
OwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52YXMp
KSwKLSAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMg
c2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbiht
YWtlVGV4U3ViSW1hZ2UyRChnbCwgY2FudmFzKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2Uy
RCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7
Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2Fp
bnN0IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlv
bihtYWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5l
dmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdl
YkdMIGNhbnZhcy4iKTsKLQotICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCi0gIC8vIFRP
RE86IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCi0KLSAgZmluaXNoVGVzdCgpOwotfQotCi0o
YXN5bmMgZnVuY3Rpb24oKSB7Ci0gIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpbWcnKTsKLSAgdHJ5IHsKLSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRD
cm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgfSBj
YXRjaCAoZSkgewotICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7
Ci0gICAgZmluaXNoVGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbWFnZUxvYWRlZChpbWcp
OwotfSkoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZiN2Y1NzIxNzM1ZjAxNzM0YTdlMWQ2YmUzOTNjZTA3YTYxMmFmMDAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi08IS0t
Ci1Db3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgotLS0+Ci0KLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBP
cmlnaW4gUmVzdHJpY3Rpb25zIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLTxjYW52YXMgaWQ9ImNhbnZhczEiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0i
Y2FudmFzMiI+PC9jYW52YXM+Ci08aW1nIGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4K
LTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0KLS8v
IENoZWNrcyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgotZnVuY3Rpb24gY2F1c2Vk
RXhjZXB0aW9uKGZ1bmMpIHsKLSAgdmFyIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICB0cnkgewot
ICAgIGZ1bmMoKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKLSAg
fQotICByZXR1cm4gaGFkRXhjZXB0aW9uOwotfQotCi12YXIgZGVmYXVsdEltZ1VybCA9ICJodHRw
czovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7
Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7
Ci0KLXZhciBpbWdEb21haW47Ci12YXIgcGFnZURvbWFpbjsKLXZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQ7Ci0KLWZ1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgewotICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmln
aW4gcmVzdHJpY3Rpb25zLiIpOwotCi0gIGFzc2VydE1zZyhpbWcud2lkdGggPiAwICYmIGltZy5o
ZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAgaW1nRG9tYWluID0gd3R1LmdldEJhc2VE
b21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwotICBwYWdlRG9tYWluID0gd3R1LmdldEJhc2VE
b21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwotICBhc3NlcnRNc2coaW1nRG9tYWluICE9IHBh
Z2VEb21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiArICIpIGFu
ZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1lLiIpOwot
Ci0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rp
b24oKSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9u
IG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0g
ICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VSZWFk
UGl4ZWxzKGdsKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGJ1ZiA9IG5l
dyBVaW50OEFycmF5KDQpOwotICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtl
VG9EYXRhVVJMKGNhbnZhcykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBk
YXRhID0gY2FudmFzLnRvRGF0YVVSTCgpOwotICAgIH0KLSAgfQotCi0gIHZhciBjYW52YXMxID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczEiKTsKLSAgdmFyIGdsID0gd3R1LmNyZWF0
ZTNEQ29udGV4dChjYW52YXMxKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB0aGF0
IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dz
IGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgbnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2ws
IGltZykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ug
c2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbiht
YWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3
aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRl
YnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgYW5kIHRvRGF0YVVSTCBjb250aW51ZSB0byB3b3Jr
IGFnYWluc3QgdGhpcyBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1h
a2VSZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIg
dGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wg
Y2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNh
bnZhczEpKSwKLSAgICAgICAgICAgICJzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbiBieSB0b0Rh
dGFVUkwgZm9yIFdlYkdMIGNhbnZhcywgd2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2luIGNsZWFuLiIp
OwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBj
YW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIGNhbnZhczIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY2FudmFzMiIpOwotICB2YXIgY3R4MmQgPSBjYW52YXMyLmdldENvbnRl
eHQoIjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICBhc3NlcnRNc2coY2F1
c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMikpLAotICAgICAgICAgICAgInNob3Vs
ZCB0aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBOT04gb3JpZ2luIGNsZWFuIGNhbnZh
cy4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2Fu
dmFzMikpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNh
bnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0
aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMyKSksCi0gICAgICAgICAgICAidGV4U3Vi
SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNv
bnRpbnVlIHRvIHdvcmsgYWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVz
ZWRFeGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxz
IHNob3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9y
aWdpbiBvZiBXZWJHTCBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1h
a2VUb0RhdGFVUkwoY2FudmFzMSkpLAotICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhj
ZXB0aW9uIGJ5IHRvRGF0YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBv
cmlnaW4gY2xlYW4uIik7Ci0KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgotICAvLyBU
T0RPOiBTaG91bGQgY2hlY2sgQ09SUyBzdXBwb3J0LgotCi0gIGRlYnVnKCIiKTsKLSAgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLSAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQi
KTsKLSAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFu
PicpOwotICBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpOwotfQotCi0oYXN5bmMgZnVuY3Rpb24o
KSB7Ci0gIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcnKTsKLSAgdHJ5
IHsKLSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdl
KGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgfSBjYXRjaCAoZSkgewotICAg
IHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgZmluaXNoVGVz
dCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbWFnZUxvYWRlZChpbWcpOwotfSkoKTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1h
Z2UtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGViOThiMTQwNTZkMjBhYzg3NTc4Njc3ODE4NDZmZWJlZTA2NDZiYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKQEAgLTAsMCArMSwx
NjQgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKworPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNj
cmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgY29y
cmVjdCBjaGFubmVsIG1hcHBpbmcgb2YgZGlmZmVyZW50IFBORyBpbWFnZSB0eXBlcy4iKTsKKwor
Y29uc3QgdGVzdERhdGEgPSB7CisgICAgIkdyYXlzY2FsZSI6IHsKKyAgICAgICAgc3JjOiBbCisg
ICAgICAgICAgICAvLyBbMHg0MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQs
aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQUFBQUFBNmZwdFZBQUFBQ2tsRVFWUUkx
Mk53QUFBQVFnQkJnN25zclFBQUFBQkpSVTVFcmtKZ2dnPT0iLAorICAgICAgICAgICAgLy8gWzB4
NDA0MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFB
TlNVaEVVZ0FBQUFFQUFBQUJFQUFBQUFCcTdrY1dBQUFBQzBsRVFWUUkxMk53Y0FBQUFNTUFnVWVu
TEVJQUFBQUFTVVZPUks1Q1lJST0iCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGF0aW9uczog
WworICAgICAgICAgICAgeyBjb2xvcjogWzB4MDAsIDB4MDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6
ICJBTFBIQSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweEZG
XSwgZm9ybWF0OiAiUkdCIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4
NDAsIDB4RkZdLCBmb3JtYXQ6ICJSR0JBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAs
IDB4NDAsIDB4NDAsIDB4RkZdLCBmb3JtYXQ6ICJMVU1JTkFOQ0UiIH0sCisgICAgICAgICAgICB7
IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRV9BTFBI
QSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDAwLCAweDAwLCAweEZGXSwgZm9y
bWF0OiAiUkVEIiwgaW50ZXJuYWxmb3JtYXQ6ICJSOCIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6
IFsweDQwLCAweDQwLCAweDAwLCAweEZGXSwgZm9ybWF0OiAiUkciLCBpbnRlcm5hbGZvcm1hdDog
IlJHOCIgfQorICAgICAgICBdCisgICAgfSwKKyAgICAiR3JheXNjYWxlIEFscGhhIjogeworICAg
ICAgICBzcmM6IFsKKyAgICAgICAgICAgIC8vIFsweDQwLCAweDgwXQorICAgICAgICAgICAgImRh
dGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFB
QUMxSEF3Q0FBQUFDMGxFUVZRSTEyTndhQUFBQVFNQXdVeFpUbDRBQUFBQVNVVk9SSzVDWUlJPSIs
CisgICAgICAgICAgICAvLyBbMHg0MDQwLCAweDgwODBdCisgICAgICAgICAgICAiZGF0YTppbWFn
ZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCRUFRQUFBRGxqTkJC
QUFBQURVbEVRVlFJMTJOd2NHaG9BQUFEUlFHQm94c3NQZ0FBQUFCSlJVNUVya0pnZ2c9PSIKKyAg
ICAgICAgXSwKKyAgICAgICAgZXhwZWN0YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBb
MHgwMCwgMHgwMCwgMHgwMCwgMHg4MF0sIGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAg
eyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4NDAsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAg
ICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHg4MF0sIGZvcm1hdDogIlJHQkEi
IH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1h
dDogIkxVTUlOQU5DRSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQw
LCAweDgwXSwgZm9ybWF0OiAiTFVNSU5BTkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xv
cjogWzB4NDAsIDB4MDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1h
dDogIlI4IiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4MDAsIDB4RkZd
LCBmb3JtYXQ6ICJSRyIsIGludGVybmFsZm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKyAgICB9
LAorICAgICJDb2xvciI6IHsKKyAgICAgICAgc3JjOiBbCisgICAgICAgICAgICAvLyBbMHhCRiwg
MHg3RiwgMHhGRl0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtH
Z29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQUlBQUFDUWQxUGVBQUFBREVsRVFWUUkxMlBZWC84ZkFB
UStBajVCcXdwckFBQUFBRWxGVGtTdVFtQ0MiLAorICAgICAgICAgICAgLy8gWzB4QkZCRiwgMHg3
RjdGLCAweEZGRkZdCisgICAgICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBL
R2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCRUFJQUFBREE1NCtkQUFBQUQwbEVRVlFJMTJQWXY3Kysv
djkvQUE2eUJIdnRiZ0JOQUFBQUFFbEZUa1N1UW1DQyIKKyAgICAgICAgXSwKKyAgICAgICAgZXhw
ZWN0YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBbMHgwMCwgMHgwMCwgMHgwMCwgMHhG
Rl0sIGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4N0Ys
IDB4RkYsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhC
RiwgMHg3RiwgMHhGRiwgMHhGRl0sIGZvcm1hdDogIlJHQkEiIH0sCisgICAgICAgICAgICB7IGNv
bG9yOiBbMHhCRiwgMHhCRiwgMHhCRiwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRSIgfSwKKyAg
ICAgICAgICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweEZGXSwgZm9ybWF0OiAiTFVN
SU5BTkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4MDAsIDB4MDAs
IDB4RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDogIlI4IiB9LAorICAgICAgICAg
ICAgeyBjb2xvcjogWzB4QkYsIDB4N0YsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRyIsIGludGVy
bmFsZm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKworICAgIH0sCisgICAgIkNvbG9yIEFscGhh
IjogeworICAgICAgICBzcmM6IFsKKyAgICAgICAgICAgIC8vIFsweEJGLCAweDdGLCAweEZGLCAw
eDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBQUVBQUFBQkNBWUFBQUFmRmNTSkFBQUFEVWxFUVZRSTEyUFlYLy9mQVFBR3ZBSit4
UE13S1FBQUFBQkpSVTVFcmtKZ2dnPT0iLAorICAgICAgICAgICAgLy8gWzB4QkZCRiwgMHg3RjdG
LCAweEZGRkYsIDB4NDA0MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZC
T1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJFQVlBQUFCUGhSaktBQUFBRVVsRVFWUUkxMlBZ
djcrKy92OS9Cd2NBR0dnRSs4WU40WFVBQUFBQVNVVk9SSzVDWUlJPSIKKyAgICAgICAgXSwKKyAg
ICAgICAgZXhwZWN0YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBbMHgwMCwgMHgwMCwg
MHgwMCwgMHg0MF0sIGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4
QkYsIDB4N0YsIDB4RkYsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAgICAgICB7IGNv
bG9yOiBbMHhCRiwgMHg3RiwgMHhGRiwgMHg0MF0sIGZvcm1hdDogIlJHQkEiIH0sCisgICAgICAg
ICAgICB7IGNvbG9yOiBbMHhCRiwgMHhCRiwgMHhCRiwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5D
RSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweDQwXSwgZm9y
bWF0OiAiTFVNSU5BTkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4
MDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDogIlI4IiB9LAor
ICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4N0YsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJS
RyIsIGludGVybmFsZm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKyAgICB9Cit9OworCitjb25z
dCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgp
OworCit3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOworZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgZ2wuY3JlYXRlVGV4dHVyZSgpKTsKKworKGFzeW5jICgpID0+IHsKKyAgICBmb3IgKGNv
bnN0IFt0eXBlLCB0ZXN0Q2FzZV0gb2YgT2JqZWN0LmVudHJpZXModGVzdERhdGEpKSB7CisgICAg
ICAgIGlmICh0ZXN0Q2FzZS5zcmMubGVuZ3RoICE9IDIpIHRocm93IG5ldyBFcnJvcigndGVzdENh
c2Uuc3JjLmxlbmd0aCAhPSAyJyk7CisgICAgICAgIGxldCBpbWFnZXMgPSB0ZXN0Q2FzZS5zcmMu
bWFwKHNyYyA9PiBsb2FkSW1hZ2Uoc3JjKSk7CisgICAgICAgIGltYWdlcyA9IGF3YWl0IFByb21p
c2UuYWxsKGltYWdlcyk7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIiIpOwor
ICAgICAgICBkZWJ1ZyhgUE5HIGltYWdlIHR5cGUgJHt0eXBlfSB3aXRoIFJHQkEgdmFsdWVzIG9m
ICR7dGVzdENhc2UuZXhwZWN0YXRpb25zWzJdLmNvbG9yfWApOworICAgICAgICBsZXQgZm9ybWF0
cyA9IHRlc3RDYXNlLmV4cGVjdGF0aW9uczsKKyAgICAgICAgaWYgKCF3dHUuaXNXZWJHTDIoZ2wp
KSB7CisgICAgICAgICAgICBmb3JtYXRzID0gZm9ybWF0cy5maWx0ZXIoKGYpID0+ICFmLmludGVy
bmFsZm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZm9ybWF0cykg
eworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgZGVidWcoYEdMIGZvcm1hdDog
JHtmLmZvcm1hdH1gKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2soZGF0YSwgZGVzY3Jp
cHRpb24pIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhgVXBsb2FkICR7ZGVzY3JpcHRpb259YCk7
CisgICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCgKKyAgICAgICAgICAgICAgICAgICAgZ2wu
VEVYVFVSRV8yRCwKKyAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAg
Z2xbZi5pbnRlcm5hbGZvcm1hdCB8fCBmLmZvcm1hdF0sCisgICAgICAgICAgICAgICAgICAgIGds
W2YuZm9ybWF0XSwKKyAgICAgICAgICAgICAgICAgICAgZ2wuVU5TSUdORURfQllURSwKKyAgICAg
ICAgICAgICAgICAgICAgZGF0YQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgICAgICAgICAgICAgIHd0
dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7CisgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2Fu
dmFzKGdsLCBmLmNvbG9yLCB1bmRlZmluZWQsIDEpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBjaGVjayhpbWFnZXNbMF0uaW1hZ2UsICI4LWJpdCBQTkcgZnJvbSBJbWFnZSIpOworICAg
ICAgICAgICAgY2hlY2soaW1hZ2VzWzFdLmltYWdlLCAiMTYtYml0IFBORyBmcm9tIEltYWdlIik7
CisKKyAgICAgICAgICAgIGlmIChpbWFnZXNbMF0uYml0bWFwKSB7CisgICAgICAgICAgICAgICAg
Y2hlY2soaW1hZ2VzWzBdLmJpdG1hcCwgIjgtYml0IFBORyBmcm9tIEltYWdlQml0bWFwIik7Cisg
ICAgICAgICAgICAgICAgY2hlY2soaW1hZ2VzWzFdLmJpdG1hcCwgIjE2LWJpdCBQTkcgZnJvbSBJ
bWFnZUJpdG1hcCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGZpbmlz
aFRlc3QoKTsKK30pKCk7CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWRJbWFnZShzcmMpIHsKKyAgICBj
b25zdCBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWcuc3JjID0gc3JjOworICAgIGF3YWl0IGlt
Zy5kZWNvZGUoKTsKKyAgICBjb25zdCByZXQgPSB7IGltYWdlOiBpbWcgfTsKKyAgICBpZiAoc2Vs
Zi5jcmVhdGVJbWFnZUJpdG1hcCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0LmJp
dG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGltZywgeworICAgICAgICAgICAgICAgIHBy
ZW11bHRpcGx5QWxwaGE6ICJub25lIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGNhdGNo
IHt9CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3ZpZGVvLXJvdGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3ZpZGVvLXJv
dGF0aW9uLmh0bWwKaW5kZXggYjZkMjhmMTVkYzBiZjNiNWYwM2M0MjhiNDRmM2QwY2M1OTU3NjZj
OC4uYjMzNmVkNmVkZWYxOGI0YjdlM2YyMGI4ZDRiYzUzMTE2NDZiOWNjYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy92aWRlby1yb3RhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvdmlk
ZW8tcm90YXRpb24uaHRtbApAQCAtMSw1ICsxLDUgQEAKIDwhLS0KLUNvcHlyaWdodCAoYykgMjAy
MCBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgogLS0+CkBAIC0yOSw3ICsyOSw5IEBAIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgog
ICAgICAgICBsZXQgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7CiAgICAgICAgIGxl
dCBwcm9ncmFtID0gdGl1LnNldHVwVGV4dHVyZWRRdWFkKGdsLCBnbC5SR0JBKTsKICAgICAgICAg
Y29uc3QgcmVzb3VyY2VQYXRoID0gIi4uLy4uLy4uL3Jlc291cmNlcy8iOwotICAgICAgICBjb25z
dCB0b2xlcmFuY2UgPSAxMDsKKyAgICAgICAgY29uc3QgbXA0VG9sZXJhbmNlID0gMTA7CisgICAg
ICAgIC8vIFNpZ25pZmljYW50bHkgaGlnaGVyIHRvbGVyYW5jZSBuZWVkZWQgZm9yIFZQOSB0ZXN0
cy4gaHR0cDovL2NyYnVnLmNvbS8xMjE5MDE1IC4KKyAgICAgICAgY29uc3QgdnA5VG9sZXJhbmNl
ID0gNDU7CiAKICAgICAgICAgY29uc3QgZXhwZWN0ZWRDb2xvcnMgPSB7CiAgICAgICAgICAgICB0
b3A6IHsgbG9jYXRpb246IFswLjUsIDAuMjVdLCBjb2xvcjogWzI1NSwgMCwgMF0gfSwKQEAgLTQz
LDcgKzQ1LDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAgICAgICAgICAgICBi
dWZmZXJlZExvZ1RvQ29uc29sZShzdHIpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24g
Y2hlY2tQaXhlbHMoKSB7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrUGl4ZWxzKHRvbGVyYW5jZSkg
ewogICAgICAgICAgICAgZm9yIChsZXQgcGxhY2UgaW4gZXhwZWN0ZWRDb2xvcnMpIHsKICAgICAg
ICAgICAgICAgICBsZXQgY29sb3IgPSBleHBlY3RlZENvbG9yc1twbGFjZV07CiAgICAgICAgICAg
ICAgICAgbGV0IGxvYyA9IGNvbG9yLmxvY2F0aW9uOwpAQCAtNjQsNyArNjYsNyBAQCBmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKLSAg
ICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFZpZGVvRWxlbWVudChmaWxlbmFtZSkgeworICAgICAg
ICBhc3luYyBmdW5jdGlvbiB0ZXN0VmlkZW9FbGVtZW50KGZpbGVuYW1lLCBpc1ZQOSkgewogICAg
ICAgICAgICAgY29uc3QgdmlkZW8gPSBhd2FpdCBsb2FkVmlkZW9FbGVtZW50KGZpbGVuYW1lKTsK
IAogICAgICAgICAgICAgb3V0cHV0KCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CkBAIC03Myw4MCArNzUsODcgQEAgZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAgICAgICAgICAgICBvdXRwdXQoIiAgVGVzdGlu
ZyB0ZXhJbWFnZTJEIik7CiAgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVvKTsKICAgICAgICAg
ICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotICAgICAg
ICAgICAgY2hlY2tQaXhlbHMoKTsKKyAgICAgICAgICAgIGNvbnN0IGxvY2FsVG9sZXJhbmNlID0g
aXNWUDkgPyB2cDlUb2xlcmFuY2UgOiBtcDRUb2xlcmFuY2U7CisgICAgICAgICAgICBjaGVja1Bp
eGVscyhsb2NhbFRvbGVyYW5jZSk7CiAKICAgICAgICAgICAgIG91dHB1dCgiICBUZXN0aW5nIHRl
eFN1YkltYWdlMkQiKTsKICAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHQsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwogICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB2aWRl
byk7CiAgICAgICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAy
NTVdKTsKLSAgICAgICAgICAgIGNoZWNrUGl4ZWxzKCk7CisgICAgICAgICAgICBjaGVja1BpeGVs
cyhsb2NhbFRvbGVyYW5jZSk7CiAgICAgICAgIH0KIAogICAgICAgICBhc3luYyBmdW5jdGlvbiBy
dW4oKSB7Ci0gICAgICAgICAgICBjb25zdCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7Ci0gICAgICAgICAgICBpZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7Ci0gICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgidmlkZW8uY2FuUGxheVR5cGUgcmVxdWlyZWQgbWV0aG9kIG1p
c3NpbmciKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGxldCBzdXBwb3J0c19oMjY0ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vbXA0
OyBjb2RlY3M9ImF2YzEuNDJFMDFFIicpLnJlcGxhY2UoL25vLywgJycpOwotICAgICAgICAgICAg
bGV0IHN1cHBvcnRzX3ZwOSA9ICEhdmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL21wNDsgY29kZWNz
PSJ2cDA5LjAwLjEwLjA4IicpLnJlcGxhY2UoL25vLywgJycpOwotICAgICAgICAgICAgaWYgKCFz
dXBwb3J0c19oMjY0ICYmICFzdXBwb3J0c192cDkpIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJObyBzdXBwb3J0ZWQgdmlkZW8gdHlwZXMuIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICAgICAgICAgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0aGUgZGVmYXVsdCB0ZXh0
dXJlIHVuaXQgMAotICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
KTsKLSAgICAgICAgICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKLSAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VE
R0UpOwotICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAgICAgIC8vIFRoZXNlIGZp
bGVzIHdlcmUgY3JlYXRlZCBieSBjb252ZXJ0aW5nIGV4aWYtb3JpZW50YXRpb24tdGVzdC0xLW5v
cm1hbC5qcGcgdG8gbXA0Ci0gICAgICAgICAgICAvLyBmaWxlcywgcm90YXRpbmcgdGhlbSB1c2lu
ZyB0aGUgdHJhbnNwb3NlIGZpbHRlciwgYW5kIGFkZGluZyByb3RhdGUgbWV0YWRhdGEsIGFsbAot
ICAgICAgICAgICAgLy8gdXNpbmcgdGhlIGZmbXBlZyBjb21tYW5kLWxpbmUgdG9vbC4KLSAgICAg
ICAgICAgIC8vCi0gICAgICAgICAgICAvLyBGcm9tIHNkay90ZXN0cy9yZXNvdXJjZXMvIGRpcmVj
dG9yeToKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAwOgotICAgICAgICAgICAgLy8g
ZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpw
ZyAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcg
LWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAgdmlkZW8tcm90YXRp
b24tMC5tcDQKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3Jp
ZW50YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2Rl
YyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVt
cC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAgdmlkZW8tcm90YXRpb24tMC52
cDkubXA0Ci0gICAgICAgICAgICAvLyA5MDoKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRv
cm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bv
c2U9MiIgLXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1wNCAmJgotICAgICAgICAgICAgLy8gZmZt
cGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0yNzAgdmlkZW8t
cm90YXRpb24tOTAubXA0Ci0gICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBl
eGlmLW9yaWVudGF0aW9uLXRlc3QtMS1ub3JtYWwuanBnIC12ZiAidHJhbnNwb3NlPTIiIC1waXhf
Zm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNCAmJgotICAg
ICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJv
dGF0ZT0yNzAgdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNAotICAgICAgICAgICAgLy8gMTgwOgot
ICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10
ZXN0LTEtbm9ybWFsLmpwZyAtdmYgInRyYW5zcG9zZT0yLHRyYW5zcG9zZT0yIiAtcGl4X2ZtdCB5
dXY0MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQg
LWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTE4MCB2aWRlby1yb3RhdGlvbi0xODAubXA0
Ci0gICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9u
LXRlc3QtMS1ub3JtYWwuanBnIC12ZiAidHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIiIC1waXhfZm10
IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNCAmJgotICAgICAg
ICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0
ZT0xODAgdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQKLSAgICAgICAgICAgIC8vIDI3MDoKLSAg
ICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVz
dC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9MSIgLXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1w
Lm1wNCAmJgotICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFk
YXRhOnM6djowIHJvdGF0ZT05MCB2aWRlby1yb3RhdGlvbi0yNzAubXA0Ci0gICAgICAgICAgICAv
LyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLXRlc3QtMS1ub3JtYWwu
anBnIC12ZiAidHJhbnNwb3NlPTEiIC1waXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGli
dnB4LXZwOSAteSB0ZW1wLm1wNCAmJgotICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0
IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT05MCB2aWRlby1yb3RhdGlvbi0yNzAudnA5
Lm1wNAotICAgICAgICAgICAgY29uc3QgZmlsZW5hbWVzID0gWwotICAgICAgICAgICAgICAgICJ2
aWRlby1yb3RhdGlvbi0wIiwKLSAgICAgICAgICAgICAgICAidmlkZW8tcm90YXRpb24tOTAiLAot
ICAgICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlvbi0xODAiLAotICAgICAgICAgICAgICAgICJ2
aWRlby1yb3RhdGlvbi0yNzAiLAotICAgICAgICAgICAgXTsKLQotICAgICAgICAgICAgaWYgKHN1
cHBvcnRzX2gyNjQpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMp
Ci0gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0VsZW1lbnQoZm4gKyAiLm1wNCIp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoc3VwcG9ydHNfdnA5KSB7Ci0gICAg
ICAgICAgICAgICAgZm9yIChsZXQgZm4gb2YgZmlsZW5hbWVzKQotICAgICAgICAgICAgICAgICAg
ICBhd2FpdCB0ZXN0VmlkZW9FbGVtZW50KGZuICsgIi52cDkubXA0Iik7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBhd2FpdCAoYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoInZpZGVvLmNhblBsYXlUeXBlIHJlcXVpcmVkIG1ldGhvZCBtaXNzaW5nIik7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBsZXQgc3VwcG9ydHNfaDI2NCA9ICEhdmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL21wNDsgY29k
ZWNzPSJhdmMxLjQyRTAxRSInKS5yZXBsYWNlKC9uby8sICcnKTsKKyAgICAgICAgICAgICAgICBs
ZXQgc3VwcG9ydHNfdnA5ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vbXA0OyBjb2RlY3M9
InZwMDkuMDAuMTAuMDgiJykucmVwbGFjZSgvbm8vLCAnJyk7CisgICAgICAgICAgICAgICAgaWYg
KCFzdXBwb3J0c19oMjY0ICYmICFzdXBwb3J0c192cDkpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiTm8gc3VwcG9ydGVkIHZpZGVvIHR5cGVzLiIpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0
dXJlIHRvIHRoZSBkZWZhdWx0IHRleHR1cmUgdW5pdCAwCisgICAgICAgICAgICAgICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICAgICAgICAgICAgICAvLyBTZXQgdXAg
dGV4dHVyZSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgICAg
ICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklM
VEVSLCBnbC5ORUFSRVNUKTsKKyAgICAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICAgICAg
ICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9U
LCBnbC5DTEFNUF9UT19FREdFKTsKKworICAgICAgICAgICAgICAgIC8vIFRoZXNlIGZpbGVzIHdl
cmUgY3JlYXRlZCBieSBjb252ZXJ0aW5nIGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgdG8gbXA0
CisgICAgICAgICAgICAgICAgLy8gZmlsZXMsIHJvdGF0aW5nIHRoZW0gdXNpbmcgdGhlIHRyYW5z
cG9zZSBmaWx0ZXIsIGFuZCBhZGRpbmcgcm90YXRlIG1ldGFkYXRhLCBhbGwKKyAgICAgICAgICAg
ICAgICAvLyB1c2luZyB0aGUgZmZtcGVnIGNvbW1hbmQtbGluZSB0b29sLgorICAgICAgICAgICAg
ICAgIC8vCisgICAgICAgICAgICAgICAgLy8gRnJvbSBzZGsvdGVzdHMvcmVzb3VyY2VzLyBkaXJl
Y3Rvcnk6CisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyAwOgorICAgICAg
ICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3Jp
Z2luYWxzXGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5NiAtcGl4X2Zt
dCB5dXY0MjBwIC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAu
bXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0wIHZpZGVvLXJvdGF0aW9uLTAubXA0
CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRh
dGlvbi1vcmlnaW5hbHNcZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2
IC1waXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNAor
ICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpz
OnY6MCByb3RhdGU9MCB2aWRlby1yb3RhdGlvbi0wLnZwOS5tcDQKKyAgICAgICAgICAgICAgICAv
LworICAgICAgICAgICAgICAgIC8vIDkwOgorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9h
dXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRpb24t
dGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9MiAtcGl4X2ZtdCB5dXY0MjBwIC15
IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkg
LW1ldGFkYXRhOnM6djowIHJvdGF0ZT0yNzAgdmlkZW8tcm90YXRpb24tOTAubXA0CisgICAgICAg
ICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmln
aW5hbHNcZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2LHRyYW5zcG9z
ZT0yIC1waXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1w
NAorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0
YTpzOnY6MCByb3RhdGU9MjcwIHZpZGVvLXJvdGF0aW9uLTkwLnZwOS5tcDQKKyAgICAgICAgICAg
ICAgICAvLworICAgICAgICAgICAgICAgIC8vIDE4MDoKKyAgICAgICAgICAgICAgICAvLyBmZm1w
ZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVu
dGF0aW9uLXRlc3QucHNkIC12ZiBzY2FsZT0xMjh4OTYsdHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIg
LXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1wNAorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAt
aSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MTgwIHZpZGVvLXJvdGF0
aW9uLTE4MC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBl
eGlmLW9yaWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBz
Y2FsZT0xMjh4OTYsdHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIgLXBpeF9mbXQgeXV2NDIwcCAtY3Jm
IDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZt
cGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0xODAgdmlkZW8t
cm90YXRpb24tMTgwLnZwOS5tcDQKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAg
IC8vIDI3MDoKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlm
LW9yaWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBzY2Fs
ZT0xMjh4OTYsdHJhbnNwb3NlPTEgLXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1wNAorICAgICAg
ICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCBy
b3RhdGU9OTAgdmlkZW8tcm90YXRpb24tMjcwLm1wNAorICAgICAgICAgICAgICAgIC8vIGZmbXBl
ZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50
YXRpb24tdGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9MSAtcGl4X2ZtdCB5dXY0
MjBwIC1jcmYgMCAtdmNvZGVjIGxpYnZweC12cDkgLXkgdGVtcC5tcDQKKyAgICAgICAgICAgICAg
ICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTkw
IHZpZGVvLXJvdGF0aW9uLTI3MC52cDkubXA0CisKKyAgICAgICAgICAgICAgICBjb25zdCBmaWxl
bmFtZXMgPSBbCisgICAgICAgICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlvbi0wIiwKKyAgICAg
ICAgICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTkwIiwKKyAgICAgICAgICAgICAgICAgICAg
InZpZGVvLXJvdGF0aW9uLTE4MCIsCisgICAgICAgICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlv
bi0yNzAiLAorICAgICAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9y
dHNfaDI2NCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMp
CisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0VmlkZW9FbGVtZW50KGZuICsgIi5t
cDQiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHN1
cHBvcnRzX3ZwOSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFt
ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0VmlkZW9FbGVtZW50KGZuICsg
Ii52cDkubXA0IiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSkoKTsK
IAogICAgICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICB9CkBAIC0xNTUsNCArMTY0LDQg
QEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+
CiAKLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZTIvY29udGV4dC9tZXRob2RzLTIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sCmlu
ZGV4IDUwYTViODBkNzkxMmJjMjZhMmQ0ZmE3ZWY0ZjY4ZDA5YTc0NDY1ZDIuLmEzODkzMjlhYTMz
NjYzZGUyYjVjMGNlODZlMGUzOWRhMTIzOWFlNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhv
ZHMtMi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sCkBAIC0xMSw2ICsxMSw3IEBA
IGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVz
dHMvY29udGV4dC1tZXRob2RzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgpAQCAtMjAsNyArMjEsNyBAQCBmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KICJ1c2Ugc3RyaWN0IjsKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5z
dXJlcyB0aGF0IHRoZSBXZWJHTCBjb250ZXh0IGhhcyBhbGwgdGhlIG1ldGhvZHMgaW4gdGhlIHNw
ZWNpZmljYXRpb24uIik7CiAKLXZhciBtZXRob2RzID0gWworY29uc3QgbWV0aG9kcyA9IFsKICAg
ImdldENvbnRleHRBdHRyaWJ1dGVzIiwKICAgImFjdGl2ZVRleHR1cmUiLAogICAiYXR0YWNoU2hh
ZGVyIiwKQEAgLTI0OSw1NSArMjUwLDE0IEBAIHZhciBtZXRob2RzID0gWwogICAiYmluZFZlcnRl
eEFycmF5IiwKIF07CiAKLS8vIFByb3BlcnRpZXMgdG8gYmUgaWdub3JlZCBiZWNhdXNlIHRoZXkg
d2VyZSBhZGRlZCBpbiB2ZXJzaW9ucyBvZiB0aGUKLS8vIHNwZWMgdGhhdCBhcmUgYmFja3dhcmQt
Y29tcGF0aWJsZSB3aXRoIHRoaXMgdmVyc2lvbgotdmFyIGlnbm9yZWRNZXRob2RzID0gWwotICAv
LyBUaGVyZSBpcyBubyBvZmZpY2lhbCBzcGVjIGZvciB0aGUgY29tbWl0IEFQSSB5ZXQsIHRoZSBw
cm9wb3NhbCBsaW5rIGlzOgotICAvLyBodHRwczovL3dpa2kud2hhdHdnLm9yZy93aWtpL09mZnNj
cmVlbkNhbnZhcwotICAiY29tbWl0IgotXTsKLQotZnVuY3Rpb24gYXNzZXJ0RnVuY3Rpb24odiwg
ZikgewotICB0cnkgewotICAgIGlmICh0eXBlb2YgdltmXSAhPSAiZnVuY3Rpb24iKSB7Ci0gICAg
ICB0ZXN0RmFpbGVkKCJQcm9wZXJ0eSBlaXRoZXIgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGEg
ZnVuY3Rpb246ICIgKyBmKTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2UgewotICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9IGNhdGNoKGUpIHsKLSAgICB0ZXN0RmFpbGVkKCJU
cnlpbmcgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eSAnIiArIGYgKyAiJyB0aHJldyBhbiBlcnJvcjog
IitlLnRvU3RyaW5nKCkpOwotICB9Ci19Ci0KIGRlYnVnKCIiKTsKIGRlYnVnKCJDYW52YXMuZ2V0
Q29udGV4dCIpOwogCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2FudmFzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dChjYW52YXMsIG51bGwsIDIpOwotdmFyIHBhc3NlZCA9IHRydWU7Ci1mb3IgKHZhciBpPTA7
IGk8bWV0aG9kcy5sZW5ndGg7IGkrKykgewotICB2YXIgciA9IGFzc2VydEZ1bmN0aW9uKGdsLCBt
ZXRob2RzW2ldKTsKLSAgcGFzc2VkID0gcGFzc2VkICYmIHI7Ci19Ci1pZiAocGFzc2VkKSB7Ci0g
IHRlc3RQYXNzZWQoIkFsbCBXZWJHTCBtZXRob2RzIGZvdW5kLiIpOwotfQotdmFyIGV4dGVuZGVk
ID0gZmFsc2U7Ci1mb3IgKHZhciBpIGluIGdsKSB7Ci0gIGlmICh0eXBlb2YgZ2xbaV0gPT0gImZ1
bmN0aW9uIiAmJiBtZXRob2RzLmluZGV4T2YoaSkgPT0gLTEgJiYgaWdub3JlZE1ldGhvZHMuaW5k
ZXhPZihpKSA9PSAtMSkgewotICAgIGlmICghZXh0ZW5kZWQpIHsKLSAgICAgIGV4dGVuZGVkID0g
dHJ1ZTsKLSAgICAgIHRlc3RGYWlsZWQoIkFsc28gZm91bmQgdGhlIGZvbGxvd2luZyBleHRyYSBt
ZXRob2RzOiIpOwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKGkpOwotICB9Ci19Citjb25zdCB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjYW52YXMiKTsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIG51bGws
IDIpOwogCi1pZiAoIWV4dGVuZGVkKSB7Ci0gIHRlc3RQYXNzZWQoIk5vIGV4dHJhIG1ldGhvZHMg
Zm91bmQgb24gV2ViR0wgY29udGV4dC4iKTsKLX0KK3Rlc3RDb250ZXh0TWV0aG9kcyhnbCwgbWV0
aG9kcyk7CiAKIGRlYnVnKCIiKTsKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL2V4dGVuc2lvbnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVu
c2lvbnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5odG1sCmluZGV4IGUyZWViZDExM2E5MWI4Yzg4
YjE2NmI2MzljODIxZWY5MmVmNWRmNDAuLmI1N2E2Y2ExMGQ2YmZiMzY5NGU4ZmIxZWJlNjIzMTA0
MjYzMDJhNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC1jb2xvci1idWZmZXItZmxvYXQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9leHQtY29sb3ItYnVmZmVyLWZsb2F0Lmh0bWwKQEAgLTI4
NCw3ICsyODQsNyBAQCBmdW5jdGlvbiBydW5JbnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpCiAgICAg
ZGVidWcoInRlc3RpbmcgdGhlIGludGVybmFsIGZvcm1hdCBxdWVyeSIpOwogCiAgICAgdmFyIG1h
eFNhbXBsZXMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1NBTVBMRVMpOwotICAgIHZhciBmb3Jt
YXRzID0gbmV3IEFycmF5KGdsLlJHQkExNkYsIGdsLlIzMkYsIGdsLlJHMzJGLCBnbC5SR0JBMzJG
LCBnbC5SMTZGLCBnbC5SRzE2RiwgZ2wuUjExRl9HMTFGX0IxMEYpOworICAgIGNvbnN0IGZvcm1h
dHMgPSBbZ2wuUkdCQTE2RiwgZ2wuUjMyRiwgZ2wuUkczMkYsIGdsLlJHQkEzMkYsIGdsLlIxNkYs
IGdsLlJHMTZGLCBnbC5SMTFGX0cxMUZfQjEwRl07CiAgICAgdmFyIGZpcnN0TXVsdGlPbmx5Rm9y
bWF0ID0gNDsKICAgICBmb3IgKHZhciBmbXQgPSAwOyBmbXQgPCBmb3JtYXRzLmxlbmd0aDsgKytm
bXQpIHsKICAgICAgICAgdmFyIHNhbXBsZXMgPSBnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGZvcm1hdHNbZm10XSwgZ2wuU0FNUExFUyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvZXh0ZW5zaW9ucy9leHQtdGV4dHVyZS1ub3JtMTYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC10
ZXh0dXJlLW5vcm0xNi5odG1sCmluZGV4IDFkOWZmNjQ1ZWJlZDRjY2ZmYmJhOWE5MGE1Mzg3MDI0
ZmRhYjAwODIuLjMxZWQ4ZjM3YWJjMGQ4OTg5NjE5MTZhNWRlNDE1YTYyNThlNDBlN2IgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlMi9leHRlbnNpb25zL2V4dC10ZXh0dXJlLW5vcm0xNi5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNp
b25zL2V4dC10ZXh0dXJlLW5vcm0xNi5odG1sCkBAIC0xNTMsNiArMTUzLDIzIEBAIGZ1bmN0aW9u
IHRlc3RTbm9ybTE2VW5yZW5kZXJhYmxlKGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lYnVmZmVyIHNob3VsZCBub3Qg
YmUgY29tcGxldGUgd2l0aCBTTk9STTE2IHRleHR1cmUgYXR0YWNoZWQiKTsKIH0KIAorZnVuY3Rp
b24gcnVuSW50ZXJuYWxGb3JtYXRRdWVyeVRlc3QoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygidGVzdGluZyB0aGUgaW50ZXJuYWwgZm9ybWF0IHF1ZXJ5Iik7CisKKyAgICB2YXIgbWF4
U2FtcGxlcyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfU0FNUExFUyk7CisgICAgY29uc3QgZm9y
bWF0cyA9IFtleHQuUjE2X0VYVCwgZXh0LlJHMTZfRVhULCBleHQuUkdCQTE2X0VYVF07CisgICAg
Zm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykgeworICAgICAgICB2YXIgc2FtcGxlcyA9IGds
LmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZm9ybWF0LCBnbC5T
QU1QTEVTKTsKKyAgICAgICAgaWYgKHNhbXBsZXMgPT0gbnVsbCB8fCBzYW1wbGVzLmxlbmd0aCA9
PSAwIHx8IHNhbXBsZXNbMF0gPCBtYXhTYW1wbGVzKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJ0aGUgbWF4aW11bSB2YWx1ZSBpbiBTQU1QTEVTIHNob3VsZCBiZSBhdCBsZWFzdCAiICsgbWF4
U2FtcGxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgdGVz
dFBhc3NlZCgiSW50ZXJuYWwgZm9ybWF0IHF1ZXJ5IHN1Y2NlZWRlZCIpOworfQorCiBmdW5jdGlv
biBydW5UZXN0RXh0ZW5zaW9uKCkgewogICB0ZXh0dXJlcyA9IFtnbC5jcmVhdGVUZXh0dXJlKCks
IGdsLmNyZWF0ZVRleHR1cmUoKV07CiAgIGZib3MgPSBbZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSwg
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKV07CkBAIC0yMDcsNiArMjI0LDcgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKICAgICB3dHUucnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdChnbCwgIkVYVF90ZXh0
dXJlX25vcm0xNiIsIGV4dCAhPT0gbnVsbCk7CiAKICAgICBpZiAoZXh0ICE9PSBudWxsKSB7Cisg
ICAgICBydW5JbnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpOwogICAgICAgcnVuVGVzdEV4dGVuc2lv
bigpOwogICAgIH0gZWxzZSB7CiAgICAgICB0ZXN0UGFzc2VkKCJObyBFWFRfdGV4dHVyZV9ub3Jt
MTYgc3VwcG9ydCAtLSB0aGlzIGlzIGxlZ2FsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9v
ZXMtZHJhdy1idWZmZXJzLWluZGV4ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZl
cnMtaW5kZXhlZC5odG1sCmluZGV4IDNiZTc3MTdiYzQxNGQ1NTcyYmM5YjM3YTk5YjgzMDFlYTkx
MjVkZWUuLmUzNWNjMjY5YWEyMGU1NTc5MDA3YTBiMjgwNTc1NzUzN2U2MDIwNzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9leHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRl
bnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5odG1sCkBAIC03OSw2ICs3OSw4IEBAIGZ1
bmN0aW9uIGVuYWJsZURpc2FibGVUZXN0KCkgewogCiAgICAgLy8gSW52YWxpZCBpbnB1dAogICAg
IGV4dC5lbmFibGVpT0VTKGdsLkRFUFRIX1RFU1QsIDApOworICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfRU5VTSwgJ3RhcmdldCBjb3VsZCBvbmx5IGJlIGdsLkJMRU5EJyk7
CisKICAgICBleHQuZGlzYWJsZWlPRVMoZ2wuREVQVEhfVEVTVCwgMCk7CiAgICAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLCAndGFyZ2V0IGNvdWxkIG9ubHkgYmUgZ2wu
QkxFTkQnKTsKIApAQCAtMTY0LDcgKzE2NiwxMCBAQCBmdW5jdGlvbiBjb25zdGFudEFscGhhQmxl
bmRDb2xvclZhbGlkYXRpb25UZXN0KCkgewogfQogCiBmdW5jdGlvbiBpbmRleGVkQmxlbmRDb2xv
clRlc3QoKSB7CisgICAgZGVidWcoJycpOwogICAgIGRlYnVnKCJUZXN0aW5nIGJsZW5kRXF1YXRp
b25pT0VTIGFuZCBibGVuZEZ1bmNpT0VTIik7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
MCwgJ3RvcCBvZiBpbmRleGVkQmxlbmRDb2xvclRlc3QnKTsKKwogICAgIGdsLmNsZWFyQ29sb3Io
MCwgMCwgMSwgMSk7CiAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAKQEAgLTIx
MSwyMiArMjE2LDMyIEBAIGZ1bmN0aW9uIGluZGV4ZWRCbGVuZENvbG9yVGVzdCgpIHsKICAgICBn
bC5yZWFkQnVmZmVyKGdsLkNPTE9SX0FUVEFDSE1FTlQxKTsKICAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwgMjU1LCAwXSk7CiAKKyAgICBkZWJ1ZygnJyk7Cisg
ICAgZGVidWcoYFRlc3RpbmcgdGhhdCBuZXcgdG9rZW5zIGFyZW4ndCBvbiB0aGUgZXh0ZW5zaW9u
LmApOworICAgIHNob3VsZEJlKCdleHQuQkxFTkRfRVFVQVRJT05fUkdCJywgJ3VuZGVmaW5lZCcp
OworICAgIHNob3VsZEJlKCdleHQuQkxFTkRfRVFVQVRJT05fQUxQSEEnLCAndW5kZWZpbmVkJyk7
CisgICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9TUkNfUkdCJywgJ3VuZGVmaW5lZCcpOworICAgIHNo
b3VsZEJlKCdleHQuQkxFTkRfU1JDX0FMUEhBJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3VsZEJl
KCdleHQuQkxFTkRfRFNUX1JHQicsICd1bmRlZmluZWQnKTsKKyAgICBzaG91bGRCZSgnZXh0LkJM
RU5EX0RTVF9BTFBIQScsICd1bmRlZmluZWQnKTsKKyAgICBzaG91bGRCZSgnZXh0LkNPTE9SX1dS
SVRFTUFTSycsICd1bmRlZmluZWQnKTsKKwogICAgIGRlYnVnKCJUZXN0aW5nIG5ldyB0b2tlbnMg
Zm9yIGdldEluZGV4ZWRQYXJhbWV0ZXJUZXN0Iik7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX1JHQiwgMCknLCAnZ2wuRlVOQ19BREQnKTsK
LSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05f
QUxQSEEsIDApJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX1JHQiwgMCknLCAnZ2wuT05FJyk7Ci0gICAgc2hv
dWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9SR0IsIDApJywgJ2ds
Lk9ORScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9T
UkNfQUxQSEEsIDApJywgJ2dsLlpFUk8nKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBh
cmFtZXRlcihleHQuQkxFTkRfRFNUX0FMUEhBLCAwKScsICdnbC5aRVJPJyk7Ci0gICAgc2hvdWxk
QmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX1JHQiwgMSknLCAn
Z2wuRlVOQ19BREQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQu
QkxFTkRfRVFVQVRJT05fQUxQSEEsIDEpJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX1JHQiwgMSknLCAnZ2wu
U1JDX0FMUEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJM
RU5EX0RTVF9SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19TUkNfQUxQSEEnKTsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX0FMUEhBLCAxKScsICdnbC5a
RVJPJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RT
VF9BTFBIQSwgMSknLCAnZ2wuWkVSTycpOwotCi0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZXh0LkNPTE9SX1dSSVRFTUFTSywgMCknLCAnW2ZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlXScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5DT0xP
Ul9XUklURU1BU0ssIDEpJywgJ1t0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXScpOworICAgIHNob3Vs
ZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX1JHQiwgMCknLCAn
Z2wuRlVOQ19BREQnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5C
TEVORF9FUVVBVElPTl9BTFBIQSwgMCknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOworICAgIHNob3Vs
ZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19SR0IsIDApJywgJ2dsLk9O
RScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0RTVF9S
R0IsIDApJywgJ2dsLk9ORScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVy
KGdsLkJMRU5EX1NSQ19BTFBIQSwgMCknLCAnZ2wuWkVSTycpOworICAgIHNob3VsZEJlKCdnbC5n
ZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0RTVF9BTFBIQSwgMCknLCAnZ2wuWkVSTycpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX1JH
QiwgMSknLCAnZ2wuRlVOQ19BREQnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFt
ZXRlcihnbC5CTEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19SR0IsIDEp
JywgJ2dsLlNSQ19BTFBIQScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVy
KGdsLkJMRU5EX0RTVF9SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19TUkNfQUxQSEEnKTsKKyAgICBz
aG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfQUxQSEEsIDEpJywg
J2dsLlpFUk8nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVO
RF9EU1RfQUxQSEEsIDEpJywgJ2dsLlpFUk8nKTsKKworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRl
eGVkUGFyYW1ldGVyKGdsLkNPTE9SX1dSSVRFTUFTSywgMCknLCAnW2ZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkNP
TE9SX1dSSVRFTUFTSywgMSknLCAnW3RydWUsIHRydWUsIHRydWUsIHRydWVdJyk7CiAKICAgICBk
ZWJ1ZygiVGVzdGluZyBub24taW5kZXhlZCBnZXRQYXJhbXRlciBnZXQgc3RhdGUgZnJvbSBkcmF3
IGJ1ZmZlciAwIik7CiAgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFtZXRlcihnbC5CTEVORF9TUkNf
UkdCKScsICdnbC5PTkUnKTsKQEAgLTI1MSwyNiArMjY2LDI4IEBAIGZ1bmN0aW9uIGluZGV4ZWRC
bGVuZENvbG9yVGVzdCgpIHsKICAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMRU5E
X0RTVF9BTFBIQSknLCAnZ2wuT05FJyk7CiAgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFtZXRlcihn
bC5DT0xPUl9XUklURU1BU0spJywgJ1t0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdJyk7CiAKLSAg
ICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fUkdC
LCAwKScsICdnbC5GVU5DX1NVQlRSQUNUJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAwKScsICdnbC5GVU5DX0FERCcpOwot
ICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfUkdCLCAw
KScsICdnbC5PTkVfTUlOVVNfRFNUX0FMUEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9SR0IsIDApJywgJ2dsLkRTVF9BTFBIQScpOwotICAg
IHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfQUxQSEEsIDAp
JywgJ2dsLk9ORScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5C
TEVORF9EU1RfQUxQSEEsIDApJywgJ2dsLk9ORScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRl
eGVkUGFyYW1ldGVyKGV4dC5CTEVORF9FUVVBVElPTl9SR0IsIDEpJywgJ2dsLkZVTkNfU1VCVFJB
Q1QnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFV
QVRJT05fQUxQSEEsIDEpJywgJ2dsLkZVTkNfQUREJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldElu
ZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NSQ19SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19EU1Rf
QUxQSEEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRf
RFNUX1JHQiwgMSknLCAnZ2wuRFNUX0FMUEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NSQ19BTFBIQSwgMSknLCAnZ2wuT05FJyk7Ci0gICAgc2hv
dWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9BTFBIQSwgMSknLCAn
Z2wuT05FJyk7Ci0KLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQ09M
T1JfV1JJVEVNQVNLLCAwKScsICdbdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlXScpOwotICAgIHNo
b3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5DT0xPUl9XUklURU1BU0ssIDEpJywg
J1t0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJT05fUkdCLCAwKScsICdnbC5GVU5DX1NVQlRSQUNU
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJ
T05fQUxQSEEsIDApJywgJ2dsLkZVTkNfQUREJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX1JHQiwgMCknLCAnZ2wuT05FX01JTlVTX0RTVF9BTFBI
QScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0RTVF9S
R0IsIDApJywgJ2dsLkRTVF9BTFBIQScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGdsLkJMRU5EX1NSQ19BTFBIQSwgMCknLCAnZ2wuT05FJyk7CisgICAgc2hvdWxkQmUo
J2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX0FMUEhBLCAwKScsICdnbC5PTkUn
KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElP
Tl9SR0IsIDEpJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19BREQn
KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfUkdC
LCAxKScsICdnbC5PTkVfTUlOVVNfRFNUX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldElu
ZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX1JHQiwgMSknLCAnZ2wuRFNUX0FMUEhBJyk7Cisg
ICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX0FMUEhBLCAx
KScsICdnbC5PTkUnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5C
TEVORF9EU1RfQUxQSEEsIDEpJywgJ2dsLk9ORScpOworCisgICAgc2hvdWxkQmUoJ2dsLmdldElu
ZGV4ZWRQYXJhbWV0ZXIoZ2wuQ09MT1JfV1JJVEVNQVNLLCAwKScsICdbdHJ1ZSwgZmFsc2UsIHRy
dWUsIGZhbHNlXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkNP
TE9SX1dSSVRFTUFTSywgMSknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0nKTsKIH0KIAog
ZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBzZXR1cCgpOwogCisgICAgdGVzdElu
dmFsaWRWYWx1ZXMoKTsKKwogICAgIGVuYWJsZURpc2FibGVUZXN0KCk7CiAKICAgICAvLyBibGVu
ZGluZyBzaG91bGQgYmUgZW5hYmxlZCBmb3IgZHJhd0J1ZmZlcnMgMCBhbmQgMSBhdCB0aGlzIHBv
aW50CkBAIC0yNzgsNiArMjk1LDggQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAg
ICBjb25zdGFudEFscGhhQmxlbmRDb2xvclZhbGlkYXRpb25UZXN0KCk7CiAKICAgICBpbmRleGVk
QmxlbmRDb2xvclRlc3QoKTsKKworICAgIHRlc3RDb2xvck1hc2tEcmF3Tm9PcCgpOwogfQogCiBm
dW5jdGlvbiBydW5JbnZhbGlkRW51bXNUZXN0KCkgewpAQCAtMjk4LDYgKzMxNywyMDYgQEAgZnVu
Y3Rpb24gcnVuSW52YWxpZEVudW1zVGVzdCgpIHsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBbZ2wuSU5WQUxJRF9PUEVSQVRJT04sIGdsLklOVkFMSURfRU5VTV0sICdpbnZhbGlkIG9wZXJh
dGlvbnMgb3IgaW52YWxpZCBlbnVtcyBmb3IgQ09MT1JfV1JJVEVNQVNLJyk7CiB9CiAKK2Z1bmN0
aW9uIHRlc3RJbnZhbGlkVmFsdWVzKCkgeworICAgIGNvbnN0IG51bURyYXdCdWZmZXJzID0gZ2wu
Z2V0UGFyYW1ldGVyKGdsLk1BWF9EUkFXX0JVRkZFUlMpOworICAgIGlmICghbnVtRHJhd0J1ZmZl
cnMpIHRocm93IG5ldyBFcnJvcignIW51bURyYXdCdWZmZXJzJyk7CisgICAgd3R1LnNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5lbmFibGVpT0VTKGdsLkJM
RU5ELCAtMSlgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLCBgZXh0LmVuYWJsZWlPRVMoZ2wuQkxFTkQsICR7bnVtRHJhd0J1ZmZlcnN9KWApOwor
ICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuZW5hYmxlaU9FUyhnbC5C
TEVORCwgJHtudW1EcmF3QnVmZmVycy0xfSlgKTsKKworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdM
RXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuZGlzYWJsZWlPRVMoZ2wuQkxFTkQsIC0x
KWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUs
IGBleHQuZGlzYWJsZWlPRVMoZ2wuQkxFTkQsICR7bnVtRHJhd0J1ZmZlcnN9KWApOworICAgIHd0
dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuZGlzYWJsZWlPRVMoZ2wuQkxFTkQs
ICR7bnVtRHJhd0J1ZmZlcnMtMX0pYCk7CisKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9y
KGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5kRXF1YXRpb25pT0VTKC0xLCBnbC5GVU5D
X0FERClgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZB
TFVFLCBgZXh0LmJsZW5kRXF1YXRpb25pT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCBnbC5GVU5DX0FE
RClgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmJsZW5kRXF1
YXRpb25pT0VTKCR7bnVtRHJhd0J1ZmZlcnMtMX0sIGdsLkZVTkNfQUREKWApOworCisgICAgd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEVx
dWF0aW9uU2VwYXJhdGVpT0VTKC0xLCBnbC5GVU5DX0FERCwgZ2wuRlVOQ19BREQpYCk7CisgICAg
d3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVu
ZEVxdWF0aW9uU2VwYXJhdGVpT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCBnbC5GVU5DX0FERCwgZ2wu
RlVOQ19BREQpYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5i
bGVuZEVxdWF0aW9uU2VwYXJhdGVpT0VTKCR7bnVtRHJhd0J1ZmZlcnMtMX0sIGdsLkZVTkNfQURE
LCBnbC5GVU5DX0FERClgKTsKKworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGds
LklOVkFMSURfVkFMVUUsIGBleHQuYmxlbmRGdW5jaU9FUygtMSwgZ2wuT05FLCBnbC5PTkUpYCk7
CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4
dC5ibGVuZEZ1bmNpT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCBnbC5PTkUsIGdsLk9ORSlgKTsKKyAg
ICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmJsZW5kRnVuY2lPRVMoJHtu
dW1EcmF3QnVmZmVycy0xfSwgZ2wuT05FLCBnbC5PTkUpYCk7CisKKyAgICB3dHUuc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5kRnVuY1NlcGFyYXRl
aU9FUygtMSwgZ2wuT05FLCBnbC5aRVJPLCBnbC5PTkUsIGdsLlpFUk8pYCk7CisgICAgd3R1LnNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEZ1bmNT
ZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLk9ORSwgZ2wuWkVSTywgZ2wuT05FLCBn
bC5aRVJPKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuYmxl
bmRGdW5jU2VwYXJhdGVpT0VTKCR7bnVtRHJhd0J1ZmZlcnMtMX0sIGdsLk9ORSwgZ2wuWkVSTywg
Z2wuT05FLCBnbC5aRVJPKWApOworCisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5jb2xvck1hc2tpT0VTKC0xLCAxLDEsMSwxKWApOworICAg
IHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuY29s
b3JNYXNraU9FUygke251bURyYXdCdWZmZXJzfSwgMSwxLDEsMSlgKTsKKyAgICB3dHUuc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmNvbG9yTWFza2lPRVMoJHtudW1EcmF3QnVmZmVy
cy0xfSwgMSwxLDEsMSlgKTsKK30KKworZnVuY3Rpb24qIHJhbmdlKG4pIHsKKyAgZm9yIChsZXQg
aSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICB5aWVsZCBpOworICB9Cit9CisKK2Z1bmN0aW9uIHRl
c3RDb2xvck1hc2tEcmF3Tm9PcCgpIHsKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ3Rlc3RD
b2xvck1hc2tEcmF3Tm9PcCcpCisgICAgLy8gPiBJZiBhbnkgZHJhdyBidWZmZXIgd2l0aCBhbiBh
dHRhY2htZW50IGRvZXMgbm90IGhhdmUgYSBkZWZpbmVkCisgICAgLy8gICBmcmFnbWVudCBzaGFk
ZXIgb3V0cHV0LCBkcmF3cyBnZW5lcmF0ZSBJTlZBTElEX09QRVJBVElPTiwKKyAgICAvLyAgIHVu
bGVzcyBhbGwgNCBjaGFubmVscyBvZiBjb2xvck1hc2sgYXJlIHNldCB0byBmYWxzZS4KKyAgICBj
b25zdCBOVU1fT1VUUFVUUyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfQ09MT1JfQVRUQUNITUVO
VFMpOworICAgIHNob3VsZEJlVHJ1ZShgJHtOVU1fT1VUUFVUU30gPiAxYCk7CisKKyAgICBjb25z
dCBmYiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGds
LkZSQU1FQlVGRkVSLCBmYik7CisgICAgZ2wudmlld3BvcnQoMCwwLDEsMSk7CisKKyAgICBjb25z
dCBEUkFXX0JVRkZFUlMgPSBbXTsKKyAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoTlVNX09VVFBV
VFMpKSB7CisgICAgICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICAgICAgZ2wudGV4U3RvcmFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGdsLlJHQkE4LCAxLCAxKTsKKyAgICAgICAgY29uc3QgY2Eg
PSBnbC5DT0xPUl9BVFRBQ0hNRU5UMCtpOworICAgICAgICBEUkFXX0JVRkZFUlMucHVzaChjYSkK
KyAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGNhLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5URVhUVVJFXzJELCB0ZXgsIDApOworICAg
IH0KKyAgICBzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UiknLCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKKworICAgIGdsLmRyYXdCdWZmZXJzKERS
QVdfQlVGRkVSUyk7CisgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDEpOworICAgIGdsLmRpc2Fi
bGUoZ2wuQkxFTkQpOworCisgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICBnbC5j
bGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKworICAgIGZvciAoY29uc3QgaSBvZiByYW5nZShO
VU1fT1VUUFVUUykpIHsKKyAgICAgICAgZ2wucmVhZEJ1ZmZlcihnbC5DT0xPUl9BVFRBQ0hNRU5U
MCtpKTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzAsIDAs
IDAsIDBdLCBgQ09MT1JfQVRUQUNITUVOVCR7aX0gaW5pdGlhbGx5IGJsYWNrYCk7CisgICAgfQor
CisgICAgZm9yIChjb25zdCB2YWxpZE91dHB1dCBvZiByYW5nZShOVU1fT1VUUFVUUykpIHsKKyAg
ICAgICAgY29uc3QgaW52YWxpZE91dHB1dCA9IHZhbGlkT3V0cHV0IF4gMGIxMTsKKyAgICAgICAg
ZGVidWcoYHZhbGlkT3V0cHV0OiAke3ZhbGlkT3V0cHV0fSwgaW52YWxpZE91dHB1dDogJHtpbnZh
bGlkT3V0cHV0fWApOworICAgICAgICBjb25zdCBwcm9nID0gd3R1LnNldHVwUHJvZ3JhbShnbCwg
WworICAgICAgICAgICAgYFwKKyN2ZXJzaW9uIDMwMCBlcwordm9pZCBtYWluKCkgeworICAgIGds
X1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwxKTsKKyAgICBnbF9Qb2ludFNpemUgPSAxLjBmOworfQor
YCwKKyAgICAgICAgICAgIGBcCisjdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworbGF5b3V0KGxvY2F0aW9uPSR7dmFsaWRPdXRwdXR9KSBvdXQgdmVjNCBvX2NvbG9yOwor
dm9pZCBtYWluKCkgeworICAgIG9fY29sb3IgPSB2ZWM0KDEsMSwxLDEpOworfQorYAorICAgICAg
ICBdKTsKKyAgICAgICAgZ2wudXNlUHJvZ3JhbShwcm9nKTsKKworICAgICAgICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICdBZnRlciBpbml0LicpOwor
CisgICAgICAgIGdsLmNvbG9yTWFzaygxLDEsMSwxKTsKKyAgICAgICAgZ2wuZHJhd0J1ZmZlcnMo
RFJBV19CVUZGRVJTKTsKKyAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOwor
ICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKKyAg
ICAgICAgICAgICdEcmF3aW5nIHdpdGggdW5tYXNrZWQgdW5kZWZpbmVkIGNvbG9yIG91dHB1dHMu
Jyk7CisKKyAgICAgICAgZ2wuY29sb3JNYXNrKDAsMCwwLDApOworICAgICAgICBnbC5kcmF3QnVm
ZmVycyhEUkFXX0JVRkZFUlMpOworICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwg
MSk7CisgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAg
ICAgICAgJ0RyYXdpbmcgd2l0aCBjb2xvck1hc2stbWFza2VkLW91dCB1bmRlZmluZWQgY29sb3Ig
b3V0cHV0cy4nKTsKKworICAgICAgICBnbC5jb2xvck1hc2soMSwxLDEsMSk7CisgICAgICAgIGds
LmRyYXdCdWZmZXJzKERSQVdfQlVGRkVSUy5tYXAoKHgsaSkgPT4gKGkgPT0gaW52YWxpZE91dHB1
dCkgPyB4IDogMCkpOworICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7Cisg
ICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAorICAg
ICAgICAgICAgJ0RyYXdpbmcgd2l0aCB3cm9uZy1pZCBkcmF3QnVmZmVyLW1hc2tlZC1vdXQgdW5k
ZWZpbmVkIGNvbG9yIG91dHB1dHMuJyk7CisKKyAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJBV19C
VUZGRVJTLm1hcCgoeCxpKSA9PiAoaSA9PSB2YWxpZE91dHB1dCkgPyB4IDogMCkpOworICAgICAg
ICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7CisgICAgICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgJ0RyYXdpbmcgd2l0aCBkcmF3QnVm
ZmVyLW1hc2tlZC1vdXQgdW5kZWZpbmVkIGNvbG9yIG91dHB1dHMuJyk7CisKKyAgICAgICAgZ2wu
Y29sb3JNYXNrKDAsMCwwLDApOworICAgICAgICBnbC5kcmF3QnVmZmVycyhbXSk7CisgICAgICAg
IGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAnRHJhd2luZyB3aXRoIGNvbG9yTWFz
aytkcmF3QnVmZmVyLW1hc2tlZC1vdXQgdW5kZWZpbmVkIGNvbG9yIG91dHB1dHMuJyk7CisKKyAg
ICAgICAgY29uc3QgdGVzdE1hc2sgPSAocixnLGIsYSkgPT4geworICAgICAgICAgICAgZGVidWco
YHRlc3RNYXNrKCR7W3IsZyxiLGFdfSlgKTsKKyAgICAgICAgICAgIGdsLmRyYXdCdWZmZXJzKERS
QVdfQlVGRkVSUyk7CisKKyAgICAgICAgICAgIGdsLmNvbG9yTWFzaygxLDEsMSwxKTsKKyAgICAg
ICAgICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CisgICAgICAgICAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgICAgICAgICAgIGdsLmNvbG9yTWFzaygwLDAsMCwwKTsK
KyAgICAgICAgICAgIGV4dC5jb2xvck1hc2tpT0VTKHZhbGlkT3V0cHV0LCByLGcsYixhKTsKKyAg
ICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgIGBEcmF3
aW5nIHdpdGggc29sZSBkZWZpbmVkIGNvbG9yJHt2YWxpZE91dHB1dH0gb3V0cHV0IHdyaXRlbWFz
azogJHtbcixnLGIsYV19LmApOworCisgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2Uo
TlVNX09VVFBVVFMpKSB7CisgICAgICAgICAgICAgICAgZ2wucmVhZEJ1ZmZlcihnbC5DT0xPUl9B
VFRBQ0hNRU5UMCtpKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ID0gWzAsMCwwLDBdOwor
ICAgICAgICAgICAgICAgIGlmIChpID09IHZhbGlkT3V0cHV0KSB7CisgICAgICAgICAgICAgICAg
ICAgIGV4cGVjdCA9IFtyLGcsYixhXS5tYXAoeCA9PiAweGZmKngpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBl
eHBlY3QsIGBDT0xPUl9BVFRBQ0hNRU5UJHtpfTogWyR7ZXhwZWN0fV1gKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKDEsMSwxLDEpOworICAgICAgICAgICAgZ2wu
Y2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQpOworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKHIsZyxiLGEpOworICAgICAgICAg
ICAgZm9yIChjb25zdCBpIG9mIHJhbmdlKE5VTV9PVVRQVVRTKSkgeworICAgICAgICAgICAgICAg
IGlmIChpID09IHZhbGlkT3V0cHV0KSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBleHQuY29s
b3JNYXNraU9FUyhpLCAwLDAsMCwwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdsLmRy
YXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgIGBEcmF3aW5nIHdpdGggc29sZSBy
ZW1haW5pbmcgZGVmaW5lZCBjb2xvciR7dmFsaWRPdXRwdXR9IG91dHB1dCB3cml0ZW1hc2s6ICR7
W3IsZyxiLGFdfS5gKTsKKworICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIHJhbmdlKE5VTV9P
VVRQVVRTKSkgeworICAgICAgICAgICAgICAgIGdsLnJlYWRCdWZmZXIoZ2wuQ09MT1JfQVRUQUNI
TUVOVDAraSk7CisgICAgICAgICAgICAgICAgbGV0IGV4cGVjdCA9IFswLDAsMCwwXTsKKyAgICAg
ICAgICAgICAgICBpZiAoaSA9PSB2YWxpZE91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICBl
eHBlY3QgPSBbcixnLGIsYV0ubWFwKHggPT4gMHhmZip4KTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgZXhwZWN0
LCBgQ09MT1JfQVRUQUNITUVOVCR7aX06IFske2V4cGVjdH1dYCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGlmIChyIHx8IGcgfHwgYiB8fCBhKSB7CisgICAgICAgICAgICAgICAgZ2wu
Y29sb3JNYXNrKDAsMCwwLDApOworICAgICAgICAgICAgICAgIGV4dC5jb2xvck1hc2tpT0VTKGlu
dmFsaWRPdXRwdXQsIHIsZyxiLGEpOworICAgICAgICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wu
UE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwKKyAgICAgICAgICAgICAgICAgICAgYERyYXdpbmcgd2l0aCB3
cm9uZy1pZCB1bmRlZmluZWQgY29sb3Igb3V0cHV0IGNvbG9yIG1hc2tlZDogJHtbcixnLGIsYV19
LmApOworCisgICAgICAgICAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoW10pOworICAgICAgICAgICAg
ICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB3dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgJ0Ry
YXdpbmcgd2l0aCB3cm9uZy1pZCBjb2xvck1hc2ssIGJ1dCBhbGwtb2ZmIGRyYXdCdWZmZXJzLicp
OworCisgICAgICAgICAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJBV19CVUZGRVJTLm1hcCgoeCxp
KSA9PiAoaSA9PSB2YWxpZE91dHB1dCkgPyB4IDogMCkpOworICAgICAgICAgICAgICAgIGdsLmRy
YXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgJ0RyYXdpbmcgd2l0
aCB3cm9uZy1pZCBjb2xvck1hc2ssIGJ1dCByaWdodC1pZCBkcmF3QnVmZmVycyBtYXNrZWQuJyk7
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgdGVzdE1hc2soMCwwLDAsMCk7
CisgICAgICAgIHRlc3RNYXNrKDEsMCwwLDApOworICAgICAgICB0ZXN0TWFzaygwLDEsMCwwKTsK
KyAgICAgICAgdGVzdE1hc2soMCwwLDEsMCk7CisgICAgICAgIHRlc3RNYXNrKDAsMCwwLDEpOwor
ICAgICAgICB0ZXN0TWFzaygxLDEsMSwxKTsKKyAgICB9Cit9CisKIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgIGlmICghZ2wpIHsKICAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
ZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNkZTJhNTY3
Nzc3NmZmOWEyMzcxZDFlN2FmNjFlYmVjMTRmNzAwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRl
bnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IS0tCitD
b3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworbGV0
IGdsOworCitkZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgcmVxdWlyZWQgZXh0ZW5zaW9ucyBhcmUg
c3VwcG9ydGVkIik7CisKK3Nob3VsZEJlTm9uTnVsbCgiZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSIpOworCitjb25zdCBzdXBwb3J0ZWRFeHRzID0gZ2wu
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpOworCitmdW5jdGlvbiBoYXNFeHQobmFtZSkgeworICAg
IHJldHVybiBzdXBwb3J0ZWRFeHRzLmluZGV4T2YobmFtZSkgPj0gMDsKK30KKworY29uc3QgaGFz
X3MzdGMgPSBoYXNFeHQoJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyk7Citjb25zdCBo
YXNfczN0Y19zcmdiID0gaGFzRXh0KCdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0Y19zcmdi
Jyk7Citjb25zdCBoYXNfcmd0YyA9IGhhc0V4dCgnRVhUX3RleHR1cmVfY29tcHJlc3Npb25fcmd0
YycpOworY29uc3QgaGFzX2V0YyA9IGhhc0V4dCgnV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2V0
YycpOworCitkZWJ1ZyhgaGFzX3MzdGM6ICR7aGFzX3MzdGN9YCk7CitkZWJ1ZyhgaGFzX3MzdGNf
c3JnYjogJHtoYXNfczN0Y19zcmdifWApOworZGVidWcoYGhhc19yZ3RjOiAke2hhc19yZ3RjfWAp
OworZGVidWcoYGhhc19ldGM6ICR7aGFzX2V0Y31gKTsKKworc2hvdWxkQmVUcnVlKCIoKGhhc19z
M3RjICYmIGhhc19zM3RjX3NyZ2IgJiYgaGFzX3JndGMpIHx8IGhhc19ldGMpIik7CisKKy8vIEVU
QzEgZXh0ZW5zaW9uIG11c3Qgbm90IGJlIGV4cG9zZWQgb24gV2ViR0wgMi4wIGNvbnRleHRzIHdp
dGhvdXQgRVRDMi4KK2RlYnVnKCIiKTsKK2NvbnN0IGhhc19ldGMxID0gaGFzRXh0KCdXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfZXRjMScpOworZGVidWcoYGhhc19ldGMxOiAke2hhc19ldGMxfWAp
Oworc2hvdWxkQmVUcnVlKCJoYXNfZXRjMSA9PSBoYXNfZXRjIik7CisKK2RlYnVnKCIiKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0YW5jZWQtYmFzZS12ZXJ0
ZXgtYmFzZS1pbnN0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0
YW5jZWQtYmFzZS12ZXJ0ZXgtYmFzZS1pbnN0YW5jZS5odG1sCmluZGV4IDk1NTViMDQ2NTY0NWYw
N2E1YWM0YjFhNTA4M2E1ZGU5MzhiZjUyNmMuLjEyOGE0ZmM2NzVjZjA4MzNkMDFmZmUwMzFkY2Ix
Yzk2ZDdiZGMyOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXctaW5z
dGFuY2VkLWJhc2UtdmVydGV4LWJhc2UtaW5zdGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy93
ZWJnbC1tdWx0aS1kcmF3LWluc3RhbmNlZC1iYXNlLXZlcnRleC1iYXNlLWluc3RhbmNlLmh0bWwK
QEAgLTksNyArOSw3IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgaWQ9InZzaGFkZXJJbGxlZ2Fs
QmFzZUluc3RhbmNlIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCis8
c2NyaXB0IGlkPSJ2c2hhZGVyQmFzZUluc3RhbmNlV2l0aG91dEV4dCIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwogbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2
UG9zaXRpb247CiBvdXQgdmVjNCBjb2xvcjsKIHZvaWQgbWFpbigpCkBAIC0xOCwyMCArMTgsNiBA
QCB2b2lkIG1haW4oKQogICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uICogMi4wIC0gMS4w
LCBnbF9CYXNlSW5zdGFuY2UsIDEpOwogfQogPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2c2hhZGVy
QmFzZUluc3RhbmNlWmVybyIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBl
cwotI2V4dGVuc2lvbiBHTF9BTkdMRV9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlIDogcmVxdWly
ZQotbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247Ci1vdXQgdmVjNCBjb2xv
cjsKLXZvaWQgbWFpbigpCi17Ci0gIGlmIChnbF9CYXNlSW5zdGFuY2UgPT0gMCkgewotICAgIGNv
bG9yID0gdmVjNCgwLCAxLCAwLCAxKTsKLSAgfSBlbHNlIHsKLSAgICBjb2xvciA9IHZlYzQoMSwg
MCwgMCwgMSk7Ci0gIH0KLSAgZ2xfUG9zaXRpb24gPSB2ZWM0KHZQb3NpdGlvbiAqIDIuMCAtIDEu
MCwgMCwgMSk7Ci19Ci08L3NjcmlwdD4KIDwhLS0gQ2hlY2sgZ2xfSW5zdGFuY2VJRCBzdGFydHMg
YXQgMCByZWdhcmRsZXNzIG9mIGdsX0Jhc2VJbnN0YW5jZSAtLT4KIDxzY3JpcHQgaWQ9InZzaGFk
ZXJJbnN0YW5jZUlEQ2hlY2siIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAg
ZXMKIGxheW91dChsb2NhdGlvbiA9IDApIGluIHZlYzIgdlBvc2l0aW9uOwpAQCAtNDYsNyArMzIs
NyBAQCB2b2lkIG1haW4oKQogICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uICogMi4wIC0g
MS4wLCAwLCAxKTsKIH0KIDwvc2NyaXB0PgotPHNjcmlwdCBpZD0idnNoYWRlcklsbGVnYWxCYXNl
VmVydGV4IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCis8c2NyaXB0
IGlkPSJ2c2hhZGVyQmFzZVZlcnRleFdpdGhvdXRFeHQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4jdmVyc2lvbiAzMDAgZXMKIGxheW91dChsb2NhdGlvbiA9IDApIGluIHZlYzIgdlBvc2l0aW9u
Owogb3V0IHZlYzQgY29sb3I7CiB2b2lkIG1haW4oKQpAQCAtNTUsMTcgKzQxLDEzIEBAIHZvaWQg
bWFpbigpCiAgIGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRpb24gKiAyLjAgLSAxLjAsIGdsX0Jh
c2VWZXJ0ZXgsIDEpOwogfQogPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyQmFzZVZlcnRl
eFplcm8iIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAgZXMKKzxzY3JpcHQg
aWQ9InZzaGFkZXJXaXRoRXh0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAw
IGVzCiAjZXh0ZW5zaW9uIEdMX0FOR0xFX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UgOiByZXF1
aXJlCiBsYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQb3NpdGlvbjsKIG91dCB2ZWM0IGNv
bG9yOwogdm9pZCBtYWluKCkKIHsKLSAgaWYgKGdsX0Jhc2VWZXJ0ZXggPT0gMCkgewotICAgIGNv
bG9yID0gdmVjNCgwLCAxLCAwLCAxKTsKLSAgfSBlbHNlIHsKLSAgICBjb2xvciA9IHZlYzQoMSwg
MCwgMCwgMSk7Ci0gIH0KKyAgY29sb3IgPSB2ZWM0KDAsIDEsIDAsIDEpOwogICBnbF9Qb3NpdGlv
biA9IHZlYzQodlBvc2l0aW9uICogMi4wIC0gMS4wLCAwLCAxKTsKIH0KIDwvc2NyaXB0PgpAQCAt
ODQsNyArNjYsNiBAQCB2b2lkIG1haW4oKQogfQogPC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2c2hh
ZGVyU2ltcGxlIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCi0gICNl
eHRlbnNpb24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSA6IHJlcXVpcmUKICAg
bGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247CiAgIGxheW91dChsb2NhdGlv
biA9IDEpIGluIGZsb2F0IHZJbnN0YW5jZTsKICAgb3V0IHZlYzQgY29sb3I7CkBAIC0xMjEsNyAr
MTAyLDEzIEBAIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxp
dHkgb2YgdGhlIFdFQkdMX1ttdWx0aV1fZHJhd19iYXNlCiAKIGNvbnN0IHd0dSA9IFdlYkdMVGVz
dFV0aWxzOwogY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIp
OwotY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgbnVsbCwgMik7CitjYW52
YXMuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyMwMDAnOworY2FudmFzLnN0eWxlLmltYWdlUmVu
ZGVyaW5nID0gJ3BpeGVsYXRlZCc7IC8vIEJlY2F1c2UgQ2hyb21lIGRvZXNuJ3Qgc3VwcG9ydCBj
cmlzcC1lZGdlcy4KK2NhbnZhcy5zdHlsZS5pbWFnZVJlbmRlcmluZyA9ICdjcmlzcC1lZGdlcyc7
Citjb25zdCBhdHRyaWJzID0geworICBhbnRpYWxpYXM6IGZhbHNlLAorfTsKK2NvbnN0IGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIGF0dHJpYnMsIDIpOwogCiBjb25zdCB3aWR0aCA9
IGdsLmNhbnZhcy53aWR0aDsKIGNvbnN0IGhlaWdodCA9IGdsLmNhbnZhcy5oZWlnaHQ7CkBAIC0y
NzAsOCArMjU3LDI1MCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgIGRvVGVzdCgnV0VCR0xf
ZHJhd19pbnN0YW5jZWRfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZScsIGZhbHNlKTsKICAgZG9U
ZXN0KCdXRUJHTF9tdWx0aV9kcmF3X2luc3RhbmNlZF9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNl
JywgdHJ1ZSk7CisKKyAgdGVzdEdsc2xCdWlsdGlucygpOworfQorCisvLyAtCisKK2Z1bmN0aW9u
KiByYW5nZShuKSB7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgeWllbGQg
aTsKKyAgfQogfQogCitmdW5jdGlvbiBjcm9zc0NvbWJpbmUoLi4uYXJncykgeworICBmdW5jdGlv
biBjcm9zc0NvbWJpbmUyKGxpc3RBLCBsaXN0QikgeworICAgIGNvbnN0IGxpc3RDID0gW107Cisg
ICAgZm9yIChjb25zdCBhIG9mIGxpc3RBKSB7CisgICAgICBmb3IgKGNvbnN0IGIgb2YgbGlzdEIp
IHsKKyAgICAgICAgY29uc3QgYyA9IE9iamVjdC5hc3NpZ24oe30sIGEsIGIpOworICAgICAgICBs
aXN0Qy5wdXNoKGMpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbGlzdEM7CisgIH0KKwor
ICBsZXQgcmVzID0gW3t9XTsKKyAgd2hpbGUgKGFyZ3MubGVuZ3RoKSB7CisgICAgY29uc3QgbmV4
dCA9IGFyZ3Muc2hpZnQoKTsKKyAgICBuZXh0WzBdLmRlZmluZWQ7CisgICAgcmVzID0gY3Jvc3ND
b21iaW5lMihyZXMsIG5leHQpOworICB9CisgIHJldHVybiByZXM7Cit9CisKKy8vIC0KKworY29u
c3QgUEFTU1RIUk9VR0hfRlJBR19TUkMgPSBgXAorI3ZlcnNpb24gMzAwIGVzCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKK2luIHZlYzQgdl9jb2xvcjsKK291dCB2ZWM0IG9fY29sb3I7CisKK3Zv
aWQgbWFpbigpIHsKKyAgb19jb2xvciA9IHZfY29sb3I7Cit9CitgOworCitmdW5jdGlvbiB0ZXN0
R2xzbEJ1aWx0aW5zKCkgeworICBjb25zdCBFWFQgPSBnbC5nZXRFeHRlbnNpb24oJ1dFQkdMX2Ry
YXdfaW5zdGFuY2VkX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UnKTsKKworICBjb25zdCB2ZXJ0
aWRfcHJvZyA9ICgoKSA9PiB7CisgICAgICBjb25zdCB2ZXJ0X3NyYyA9IGBcCisjdmVyc2lvbiAz
MDAgZXMKKyNsaW5lIDQwNQorbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gaW50IGFfdmVydGV4X2lk
OyAvLyBTYW1lIGFzIGdsX1ZlcnRleElECitvdXQgdmVjNCB2X2NvbG9yOworCit2b2lkIG1haW4o
KSB7CisgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwxKTsKKyAgZ2xfUG9pbnRTaXplID0gMS4w
OworICB2X2NvbG9yID0gdmVjNChmbG9hdChnbF9WZXJ0ZXhJRCksIGZsb2F0KGFfdmVydGV4X2lk
KSwwLDApOworICB2X2NvbG9yIC89IDI1NS4wOworfQorYDsKKyAgICAgIGNvbnN0IHByb2cgPSB3
dHUuc2V0dXBQcm9ncmFtKGdsLCBbdmVydF9zcmMsIFBBU1NUSFJPVUdIX0ZSQUdfU1JDXSwKKyAg
ICAgICAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQsIC8qbG9nU2hhZGVycyovIHRydWUpOwor
ICAgICAgZXhwZWN0VHJ1ZSghIXByb2csIGBtYWtlX3ZlcnRpZF9wcm9nIGZhaWxlZGApOworICAg
ICAgcmV0dXJuIHByb2c7CisgICAgfSkoKTsKKworICBjb25zdCBpbnN0aWRfcHJvZyA9ICgoKSA9
PiB7CisgICAgICBjb25zdCB2ZXJ0X3NyYyA9IGBcCisjdmVyc2lvbiAzMDAgZXMKKyNsaW5lIDQy
NQorbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gaW50IGFfdmVydGV4X2lkOyAvLyBTYW1lIGFzIGds
X1ZlcnRleElECitsYXlvdXQobG9jYXRpb24gPSAxKSBpbiBpbnQgYV9pbnN0YW5jZV9kaXYxOyAv
LyBTYW1lIGFzIGJhc2VfaW5zdGFuY2UrZ2xfSW5zdGFuY2VJRAorbGF5b3V0KGxvY2F0aW9uID0g
MikgaW4gaW50IGFfaW5zdGFuY2VfZGl2MjsgLy8gU2FtZSBhcyBiYXNlX2luc3RhbmNlK2Zsb29y
KGdsX0luc3RhbmNlSUQvMikKK2xheW91dChsb2NhdGlvbiA9IDMpIGluIGludCBhX2luc3RhbmNl
X2RpdjM7IC8vIFNhbWUgYXMgYmFzZV9pbnN0YW5jZStmbG9vcihnbF9JbnN0YW5jZUlELzMpCitv
dXQgdmVjNCB2X2NvbG9yOworCit2b2lkIG1haW4oKSB7CisgIGdsX1Bvc2l0aW9uID0gdmVjNCgw
LDAsMCwxKTsKKyAgZ2xfUG9pbnRTaXplID0gMS4wOworICB2X2NvbG9yID0gdmVjNChmbG9hdChn
bF9JbnN0YW5jZUlEKSwgZmxvYXQoYV9pbnN0YW5jZV9kaXYxKSwKKyAgICAgICAgICAgICAgICAg
ZmxvYXQoYV9pbnN0YW5jZV9kaXYyKSwgZmxvYXQoYV9pbnN0YW5jZV9kaXYzKSk7CisgIHZfY29s
b3IgLz0gMjU1LjA7Cit9CitgOworICAgICAgY29uc3QgcHJvZyA9IHd0dS5zZXR1cFByb2dyYW0o
Z2wsIFt2ZXJ0X3NyYywgUEFTU1RIUk9VR0hfRlJBR19TUkNdLAorICAgICAgICAgICAgICB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgLypsb2dTaGFkZXJzKi8gdHJ1ZSk7CisgICAgICBleHBlY3RUcnVl
KCEhcHJvZywgYG1ha2VfaW5zdGlkX3Byb2cgZmFpbGVkYCk7CisgICAgICByZXR1cm4gcHJvZzsK
KyAgICB9KSgpOworCisgIGNvbnN0IENPVU5UX1VQX0RBVEEgPSBuZXcgSW50MzJBcnJheSgxMDAw
KTsKKyAgZm9yIChjb25zdCBpIGluIENPVU5UX1VQX0RBVEEpIHsKKyAgICBDT1VOVF9VUF9EQVRB
W2ldID0gaTsKKyAgfQorCisgIGNvbnN0IHZlcnRleF9pZF9idWYgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleF9pZF9idWYpOworICBn
bC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgQ09VTlRfVVBfREFUQSwgZ2wuU1RBVElDX0RS
QVcpOworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmli
SVBvaW50ZXIoMCwgMSwgZ2wuSU5ULCAwLCAwKTsKKworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgxKTsKKyAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMSwgMSwgZ2wuSU5ULCAwLCAwKTsK
KyAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigxLCAxKTsKKworICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgyKTsKKyAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMiwgMSwgZ2wuSU5ULCAwLCAw
KTsKKyAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigyLCAyKTsKKworICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSgzKTsKKyAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMywgMSwgZ2wuSU5ULCAw
LCAwKTsKKyAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigzLCAzKTsKKworICBjb25zdCBpbmRleF9i
dWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZ
X0JVRkZFUiwgaW5kZXhfYnVmKTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUiwgQ09VTlRfVVBfREFUQSwgZ2wuU1RBVElDX0RSQVcpOworCisgIGdsLmNhbnZhcy53aWR0
aCA9IGdsLmNhbnZhcy5oZWlnaHQgPSAxOworICBnbC5jYW52YXMuc3R5bGUud2lkdGggPSBnbC5j
YW52YXMuc3R5bGUuaGVpZ2h0ID0gJzFlbSc7CisgIGdsLnZpZXdwb3J0KDAsIDAsIDEsIDEpOwor
CisgIGNvbnN0IGV4cGVjdF9waXhlbCA9ICgoKSA9PiB7CisgICAgY29uc3Qgd2FzID0gbmV3IFVp
bnQ4QXJyYXkoNCk7CisgICAgcmV0dXJuIChkZXNjLCBzdWJ0ZXN0LCBleHBlY3RlZCkgPT4gewor
ICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCB3YXMpOworICAgICAgaWYgKCFhcmVBcnJheXNFcXVhbCh3YXMsIGV4cGVjdGVkKSkgeworICAg
ICAgICB0ZXN0RmFpbGVkKGAke3N1YnRlc3R9OiBFeHBlY3RlZCBbJHtleHBlY3RlZH1dLCB3YXMg
WyR7d2FzfV0uIGRlc2M6ICR7SlNPTi5zdHJpbmdpZnkoZGVzYyl9YCk7CisgICAgICB9IGVsc2Ug
eworICAgICAgICBkZWJ1ZyhgJHtzdWJ0ZXN0fTogV2FzIFske3dhc31dIGFzIGV4cGVjdGVkLmAp
OworICAgICAgfQorICAgIH07CisgIH0pKCk7CisKKyAgLy8gQ29tbW9uIHNldHVwIGNvbXBsZXRl
CisgIC8vIC0KKyAgLy8gQ3JlYXRlIHRlc3RjYXNlcworCisgIGNvbnN0IERSQVdfRlVOQ19DT01C
SU5FUiA9IFt7CisgICAgbmFtZTogJ2RyYXdBcnJheXNJbnN0YW5jZWQnLAorICAgIGRyYXc6IGRl
c2MgPT4geworICAgICAgaWYgKGRlc2MuYmFzZV92ZXJ0KSByZXR1cm4gZmFsc2U7CisgICAgICBp
ZiAoZGVzYy5iYXNlX2luc3QpIHJldHVybiBmYWxzZTsKKyAgICAgIGdsLmRyYXdBcnJheXNJbnN0
YW5jZWQoZ2xbZGVzYy5tb2RlXSwgZGVzYy5maXJzdF92ZXJ0LAorICAgICAgICAgIGRlc2MudmVy
dF9jb3VudCwgZGVzYy5pbnN0X2NvdW50KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisg
IH0sIHsKKyAgICBuYW1lOiAnZHJhd0VsZW1lbnRzSW5zdGFuY2VkJywKKyAgICBkcmF3OiBkZXNj
ID0+IHsKKyAgICAgIGlmIChkZXNjLmJhc2VfdmVydCkgcmV0dXJuIGZhbHNlOworICAgICAgaWYg
KGRlc2MuYmFzZV9pbnN0KSByZXR1cm4gZmFsc2U7CisgICAgICBnbC5kcmF3RWxlbWVudHNJbnN0
YW5jZWQoZ2xbZGVzYy5tb2RlXSwgZGVzYy52ZXJ0X2NvdW50LAorICAgICAgICAgIGdsLlVOU0lH
TkVEX0lOVCwgNCpkZXNjLmZpcnN0X3ZlcnQsIGRlc2MuaW5zdF9jb3VudCk7CisgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9LAorICB9LCB7CisgICAgbmFtZTogJ2RyYXdBcnJheXNJbnN0YW5jZWRC
YXNlSW5zdGFuY2VXRUJHTCcsCisgICAgZHJhdzogZGVzYyA9PiB7CisgICAgICBpZiAoZGVzYy5i
YXNlX3ZlcnQpIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICghRVhUKSByZXR1cm4gZmFsc2U7Cisg
ICAgICBFWFQuZHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0YW5jZVdFQkdMKGdsW2Rlc2MubW9k
ZV0sCisgICAgICAgIGRlc2MuZmlyc3RfdmVydCwgZGVzYy52ZXJ0X2NvdW50LCBkZXNjLmluc3Rf
Y291bnQsCisgICAgICAgIGRlc2MuYmFzZV9pbnN0KTsKKyAgICAgIHJldHVybiB0cnVlOworICAg
IH0sCisgIH0sIHsKKyAgICBuYW1lOiAnZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZVdFQkdMJywKKyAgICBkcmF3OiBkZXNjID0+IHsKKyAgICAgIGlmICghRVhUKSBy
ZXR1cm4gZmFsc2U7CisgICAgICBFWFQuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZVdFQkdMKAorICAgICAgICAgIGdsW2Rlc2MubW9kZV0sIGRlc2MudmVydF9jb3Vu
dCwgZ2wuVU5TSUdORURfSU5ULCA0KmRlc2MuZmlyc3RfdmVydCwKKyAgICAgICAgICBkZXNjLmlu
c3RfY291bnQsIGRlc2MuYmFzZV92ZXJ0LCBkZXNjLmJhc2VfaW5zdCk7CisgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9LAorICB9XTsKKworICAvLyAtCisKKyAgZnVuY3Rpb24gbWFrZV9rZXlfY29t
YmluZXIoa2V5LCB2YWxzKSB7CisgICAgY29uc3QgcmV0ID0gW107CisgICAgZm9yIChjb25zdCB2
IG9mIHZhbHMpIHsKKyAgICAgIGNvbnN0IGN1ciA9IHt9OworICAgICAgY3VyW2tleV0gPSB2Owor
ICAgICAgcmV0LnB1c2goY3VyKTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGNv
bnN0IFRFU1RfREVTQ1MgPSBjcm9zc0NvbWJpbmUoCisgICAgRFJBV19GVU5DX0NPTUJJTkVSLAor
ICAgIG1ha2Vfa2V5X2NvbWJpbmVyKCdiYXNlX3ZlcnQnLCBbMCwxLDJdKSwKKyAgICBtYWtlX2tl
eV9jb21iaW5lcigndmVydF9jb3VudCcsIFswLDEsMl0pLAorICAgIG1ha2Vfa2V5X2NvbWJpbmVy
KCdiYXNlX2luc3QnLCBbMCwxLDJdKSwKKyAgICBtYWtlX2tleV9jb21iaW5lcignaW5zdF9jb3Vu
dCcsIHJhbmdlKDEwKSksCisgICAgbWFrZV9rZXlfY29tYmluZXIoJ2ZpcnN0X3ZlcnQnLCBbMCwx
LDJdKSwKKyAgKTsKKyAgY29uc29sZS5sb2coJ1RFU1RfREVTQ1MnLCBURVNUX0RFU0NTKTsKKwor
ICAvLyAtCisgIC8vIFJ1biB0ZXN0Y2FzZXMKKworICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1Qp
OworICBnbC5kaXNhYmxlKGdsLlNURU5DSUxfVEVTVCk7CisgIGdsLmRpc2FibGUoZ2wuQkxFTkQp
OworCisgIGZvciAoY29uc3QgZGVzYyBvZiBURVNUX0RFU0NTKSB7CisgICAgZ2wuZGlzYWJsZShn
bC5TQ0lTU09SX1RFU1QpOworICAgIGdsLmNsZWFyQnVmZmVyZnYoZ2wuQ09MT1IsIDAsIFsxLDAs
MCwxXSk7CisKKyAgICAvLyBGcm9tIE9wZW5HTCBFUyAzLjIgc3BlYyBzZWN0aW9uIDEwLjUKKyAg
ICAvLyBodHRwczovL3d3dy5raHJvbm9zLm9yZy9yZWdpc3RyeS9PcGVuR0wvc3BlY3MvZXMvMy4y
L2VzX3NwZWNfMy4yLnBkZgorICAgIC8vIFRoZSBpbmRleCBvZiBhbnkgZWxlbWVudCB0cmFuc2Zl
cnJlZCB0byB0aGUgR0wgYnkgRHJhd0FycmF5c09uZUluc3RhbmNlCisgICAgLy8gaXMgcmVmZXJy
ZWQgdG8gYXMgaXRzIHZlcnRleCBJRCwgYW5kIG1heSBiZSByZWFkIGJ5IGEgdmVydGV4IHNoYWRl
ciBhcyBnbF9WZXJ0ZXhJRC4KKyAgICAvLyBUaGUgdmVydGV4IElEIG9mIHRoZSBpdGggZWxlbWVu
dCB0cmFuc2ZlcnJlZCBpcyBmaXJzdCArIGkuCisgICAgY29uc3QgbGFzdF9nbF92ZXJ0X2lkID0g
ZGVzYy5iYXNlX3ZlcnQgKyBkZXNjLmZpcnN0X3ZlcnQgKyBkZXNjLnZlcnRfY291bnQgLSAxOwor
ICAgIGNvbnN0IGxhc3RfdmVydF9pZCA9IGxhc3RfZ2xfdmVydF9pZDsKKyAgICBjb25zdCBsYXN0
X2luc3RfaWQgPSBkZXNjLmluc3RfY291bnQgLSAxOworICAgIGNvbnN0IGxhc3RfaW5zdF9kaXYx
ID0gZGVzYy5iYXNlX2luc3QgKyBsYXN0X2luc3RfaWQ7CisgICAgY29uc3QgbGFzdF9pbnN0X2Rp
djIgPSBkZXNjLmJhc2VfaW5zdCArIE1hdGguZmxvb3IobGFzdF9pbnN0X2lkIC8gMik7CisgICAg
Y29uc3QgbGFzdF9pbnN0X2RpdjMgPSBkZXNjLmJhc2VfaW5zdCArIE1hdGguZmxvb3IobGFzdF9p
bnN0X2lkIC8gMyk7CisKKyAgICBnbC51c2VQcm9ncmFtKHZlcnRpZF9wcm9nKTsKKyAgICBpZiAo
IWRlc2MuZHJhdyhkZXNjKSkgY29udGludWU7CisgICAgZGVidWcoJ1xuZGVzYzogJyArIEpTT04u
c3RyaW5naWZ5KGRlc2MpKTsKKworICAgIHd0dS5nbEVycm9yQXNzZXJ0KGdsLCAwKTsKKyAgICBp
ZiAoIWRlc2MudmVydF9jb3VudCB8fCAhZGVzYy5pbnN0X2NvdW50KSB7CisgICAgICBleHBlY3Rf
cGl4ZWwoZGVzYywgJ3ZlcnRpZF9wcm9nJywgWzI1NSwgMCwgMCwgMjU1XSk7CisgICAgICBjb250
aW51ZTsKKyAgICB9CisKKyAgICBleHBlY3RfcGl4ZWwoZGVzYywgJ3ZlcnRpZF9wcm9nJywgW2xh
c3RfZ2xfdmVydF9pZCwgbGFzdF92ZXJ0X2lkLCAwLCAwXSk7CisKKyAgICBnbC51c2VQcm9ncmFt
KGluc3RpZF9wcm9nKTsKKyAgICBkZXNjLmRyYXcoZGVzYyk7CisgICAgZXhwZWN0X3BpeGVsKGRl
c2MsICdpbnN0aWRfcHJvZycsIFtsYXN0X2luc3RfaWQsIGxhc3RfaW5zdF9kaXYxLCBsYXN0X2lu
c3RfZGl2MiwgbGFzdF9pbnN0X2RpdjNdKTsKKyAgfQorfQorCisvLyAtCisKIGZ1bmN0aW9uIGRv
VGVzdChleHRlbnNpb25OYW1lLCBtdWx0aURyYXcpIHsKICAgY29uc3QgZXh0ID0gZ2wuZ2V0RXh0
ZW5zaW9uKGV4dGVuc2lvbk5hbWUpOwogICBpZiAoIXJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9u
TmFtZSwgZXh0KSkgewpAQCAtMjgyLDIxICs1MTEsMTkgQEAgZnVuY3Rpb24gZG9UZXN0KGV4dGVu
c2lvbk5hbWUsIG11bHRpRHJhdykgewogICAgIGNvbnN0IHZzID0gWwogICAgICAgJyN2ZXJzaW9u
IDMwMCBlcycsCiAgICAgICBjb25maWcuaXNNdWx0aURyYXcgPyAnI2V4dGVuc2lvbiBHTF9BTkdM
RV9tdWx0aV9kcmF3IDogcmVxdWlyZScgOiAnJywKLSAgICAgICcjZXh0ZW5zaW9uIEdMX0FOR0xF
X2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UgOiByZXF1aXJlJywKICAgICAgICcjZGVmaW5lIGtD
b3VudFggJyArIGNvdW50WC50b1N0cmluZygpLAogICAgICAgJyNkZWZpbmUga0NvdW50WSAnICsg
Y291bnRZLnRvU3RyaW5nKCksCiAgICAgICAnbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2
UG9zaXRpb247JywKLSAgICAgIGNvbmZpZy51c2VCYXNlSW5zdGFuY2VCdWlsdGluID8gJycgOiAn
bGF5b3V0KGxvY2F0aW9uID0gMSkgaW4gZmxvYXQgdkluc3RhbmNlSUQ7JywKKyAgICAgICdsYXlv
dXQobG9jYXRpb24gPSAxKSBpbiBmbG9hdCB2SW5zdGFuY2VJRDsnLAogICAgICAgJ291dCB2ZWM0
IGNvbG9yOycsCiAgICAgICAndm9pZCBtYWluKCknLAogICAgICAgJ3snLAogICAgICAgJyAgY29u
c3QgZmxvYXQgeFN0ZXAgPSAxLjAgLyBmbG9hdChrQ291bnRYKTsnLAogICAgICAgJyAgY29uc3Qg
ZmxvYXQgeVN0ZXAgPSAxLjAgLyBmbG9hdChrQ291bnRZKTsnLAotICAgICAgJyAgZmxvYXQgeElE
ID0gJyArIChjb25maWcudXNlQmFzZUluc3RhbmNlQnVpbHRpbiA/ICdmbG9hdChnbF9JbnN0YW5j
ZUlEICsgZ2xfQmFzZUluc3RhbmNlKScgOiAndkluc3RhbmNlSUQnKSArICc7JywKKyAgICAgICcg
IGZsb2F0IHhJRCA9IHZJbnN0YW5jZUlEOycsCiAgICAgICAnICBmbG9hdCB4Q29sb3IgPSAxLjAg
LSB4U3RlcCAqIHhJRDsnLAogICAgICAgJyAgZmxvYXQgeUlEID0gZmxvb3IoZmxvYXQoZ2xfVmVy
dGV4SUQpIC8gJyArIChjb25maWcuaXNEcmF3QXJyYXlzID8gJzYuMCcgOiAnNC4wJykgKyAnICsg
MC4wMSk7JywKLSAgICAgICcgIGNvbG9yID0gdmVjNCh4Q29sb3IsIDEuMCAtIHlTdGVwICogeUlE
LCAnLAotICAgICAgY29uZmlnLnVzZUJhc2VWZXJ0ZXhCdWlsdGluID8gJzEuMCAtIHlTdGVwICog
ZmxvYXQoZ2xfQmFzZVZlcnRleCkgLyA0LjAnIDogJzEuMCcsCisgICAgICAnICBjb2xvciA9IHZl
YzQoeENvbG9yLCAxLjAgLSB5U3RlcCAqIHlJRCwgMS4wJywKICAgICAgICcgICwgMS4wKTsnLAog
ICAgICAgJyAgbWF0MyB0cmFuc2Zvcm0gPSBtYXQzKDEuMCk7JywKICAgICAgICcgIHRyYW5zZm9y
bVsyXVswXSA9IHhJRCAqIHhTdGVwOycsCkBAIC0zMjIsNyArNTQ5LDcgQEAgZnVuY3Rpb24gZG9U
ZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJS
QVlfQlVGRkVSLCBpbnN0YW5jZUJ1ZmZlcik7CiAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLCAxLCAyIF0pLCBidWZmZXJVc2FnZSk7CiAKLSAg
ICBjb25zdCBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyd2c2hhZGVyU2ltcGxlJywg
J2ZzaGFkZXInXSwgWyd2UG9zaXRpb24sIHZJbnN0YW5jZUlEJ10sIFswLCAxXSk7CisgICAgY29u
c3QgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsndnNoYWRlclNpbXBsZScsICdmc2hh
ZGVyJ10sIFsndlBvc2l0aW9uLCB2SW5zdGFuY2VJRCddLCBbMCwgMV0sIHRydWUpOwogICAgIGV4
cGVjdFRydWUocHJvZ3JhbSAhPSBudWxsLCAiY2FuIGNvbXBpbGUgc2ltcGxlIHByb2dyYW0iKTsK
IAogICAgIGZ1bmN0aW9uIHNldHVwSW5zdGFuY2VkKCkgewpAQCAtNDkwLDM4ICs3MTcsMjcgQEAg
ZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICB9CiAKICAgZnVu
Y3Rpb24gcnVuU2hhZGVyVGVzdHMoYnVmZmVyVXNhZ2UpIHsKLSAgICBjb25zdCBpbGxlZ2FsQmFz
ZUluc3RhbmNlUHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlcklsbGVnYWxC
YXNlSW5zdGFuY2UiLCAiZnNoYWRlciJdKTsKLSAgICBleHBlY3RUcnVlKGlsbGVnYWxCYXNlSW5z
dGFuY2VQcm9ncmFtID09IG51bGwsICJjYW5ub3QgY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFz
ZUluc3RhbmNlIGJ1dCBubyBleHRlbnNpb24gZGlyZWN0aXZlIik7Ci0gICAgY29uc3QgaWxsZWdh
bEJhc2VWZXJ0ZXhQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVySWxsZWdh
bEJhc2VWZXJ0ZXgiLCAiZnNoYWRlciJdKTsKLSAgICBleHBlY3RUcnVlKGlsbGVnYWxCYXNlVmVy
dGV4UHJvZ3JhbSA9PSBudWxsLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VW
ZXJ0ZXggYnV0IG5vIGV4dGVuc2lvbiBkaXJlY3RpdmUiKTsKKyAgICBsZXQgYmFkUHJvZ3JhbTsK
KworICAgIGJhZFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlSW5z
dGFuY2VXaXRob3V0RXh0IiwgImZzaGFkZXIiXSk7CisgICAgZXhwZWN0VHJ1ZSghYmFkUHJvZ3Jh
bSwgImNhbm5vdCBjb21waWxlIHByb2dyYW0gd2l0aCBnbF9CYXNlSW5zdGFuY2UgYnV0IG5vIGV4
dGVuc2lvbiBkaXJlY3RpdmUiKTsKKyAgICBiYWRQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShn
bCwgWyJ2c2hhZGVyQmFzZVZlcnRleFdpdGhvdXRFeHQiLCAiZnNoYWRlciJdKTsKKyAgICBleHBl
Y3RUcnVlKCFiYWRQcm9ncmFtLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VW
ZXJ0ZXggYnV0IG5vIGV4dGVuc2lvbiBkaXJlY3RpdmUiKTsKKworICAgIGJhZFByb2dyYW0gPSB3
dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJXaXRoRXh0IiwgImZzaGFkZXIiXSk7CisgICAg
ZXhwZWN0VHJ1ZSghYmFkUHJvZ3JhbSwgImNhbm5vdCBjb21waWxlIHByb2dyYW0gd2l0aCAjZXh0
ZW5zaW9uIEdMX0FOR0xFX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UiKTsKIAogICAgIGNvbnN0
IHggPSBNYXRoLmZsb29yKHdpZHRoICogMC40KTsKICAgICBjb25zdCB5ID0gTWF0aC5mbG9vciho
ZWlnaHQgKiAwLjQpOwogICAgIGNvbnN0IHhTaXplID0gTWF0aC5mbG9vcih3aWR0aCAqIDAuMik7
CiAgICAgY29uc3QgeVNpemUgPSBNYXRoLmZsb29yKGhlaWdodCAqIDAuMik7CiAKLSAgICAvLyBn
bF9CYXNlSW5zdGFuY2UgYW5kIGdsX0luc3RhbmNlSUQKKyAgICAvLyBnbF9JbnN0YW5jZUlECiAg
ICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGdsLmNyZWF0ZUJ1ZmZlcigpKTsKICAg
ICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAsMCwg
MSwwLCAwLjUsMSwgMCwxLCAwLjUsMCwgMSwxIF0pLCBidWZmZXJVc2FnZSk7CiAgICAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CiAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAy
LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwogCi0gICAgY29uc3QgYmFzZUluc3RhbmNlWmVyb1By
b2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlSW5zdGFuY2VaZXJvIiwg
ImZzaGFkZXIiXSwgWyJ2UG9zaXRpb24iXSwgWzBdKTsKLSAgICBleHBlY3RUcnVlKGJhc2VJbnN0
YW5jZVplcm9Qcm9ncmFtICE9PSBudWxsLCAiY2FuIGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jh
c2VJbnN0YW5jZSIpOwotICAgIGdsLnVzZVByb2dyYW0oYmFzZUluc3RhbmNlWmVyb1Byb2dyYW0p
OwotCi0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOwotICAgIGlmICghbXVsdGlEcmF3KSB7Ci0gICAgICBleHQuZHJhd0FycmF5c0luc3RhbmNl
ZEJhc2VJbnN0YW5jZVdFQkdMKGdsLlRSSUFOR0xFUywgMCwgNiwgMSwgNSk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgIGV4dC5tdWx0aURyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2VXRUJHTChn
bC5UUklBTkdMRVMsIFswXSwgMCwgWzZdLCAwLCBbMV0sIDAsIFs1XSwgMCwgMSk7Ci0gICAgfQot
Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQp
OwotICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLQotICAgIHd0dS5jaGVj
a0NhbnZhc1JlY3QoZ2wsIHgsIHksIHhTaXplLCB5U2l6ZSwgWzAsIDI1NSwgMCwgMjU1XSwgImds
X0Jhc2VJbnN0YW5jZSBpcyAwIGZvciBub24tQmFzZUluc3RhbmNlIGRyYXcgY2FsbHMiKTsKLQog
ICAgIGNvbnN0IGluc3RhbmNlSURQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hh
ZGVySW5zdGFuY2VJRENoZWNrIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRpb24iXSwgWzBdKTsKICAg
ICBleHBlY3RUcnVlKGluc3RhbmNlSURQcm9ncmFtICE9PSBudWxsLCAiY2FuIGNvbXBpbGUgcHJv
Z3JhbSB3aXRoIGdsX0luc3RhbmNlSUQiKTsKICAgICBnbC51c2VQcm9ncmFtKGluc3RhbmNlSURQ
cm9ncmFtKTsKQEAgLTUzNSw3ICs3NTEsNyBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFt
ZSwgbXVsdGlEcmF3KSB7CiAKICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCB4LCB5LCB4U2l6
ZSwgeVNpemUsIFswLCAyNTUsIDAsIDI1NV0sICJnbF9JbnN0YW5jZUlEIHNob3VsZCBhbHdheXMg
c3RhcnRzIGZyb20gMCIpOwogCi0gICAgLy8gZ2xfQmFzZVZlcnRleCBhbmQgZ2xfVmVydGV4SUQK
KyAgICAvLyBnbF9WZXJ0ZXhJRAogICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBn
bC5jcmVhdGVCdWZmZXIoKSk7CiAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5l
dyBGbG9hdDMyQXJyYXkoWyAwLDAsIDEsMCwgMC41LDEsIDAsMSwgMC41LDAsIDEsMSwgMCwwLCAx
LDAsIDAuNSwxLCAwLDEgXSksIGJ1ZmZlclVzYWdlKTsKICAgICBnbC5iaW5kQnVmZmVyKGdsLkVM
RU1FTlRfQVJSQVlfQlVGRkVSLCBnbC5jcmVhdGVCdWZmZXIoKSk7CkBAIC01NDMsMjIgKzc1OSw2
IEBAIGZ1bmN0aW9uIGRvVGVzdChleHRlbnNpb25OYW1lLCBtdWx0aURyYXcpIHsKICAgICBnbC5l
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAs
IDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CiAKLSAgICBjb25zdCBiYXNlVmVydGV4WmVyb1By
b2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlVmVydGV4WmVybyIsICJm
c2hhZGVyIl0sIFsidlBvc2l0aW9uIl0sIFswXSk7Ci0gICAgZXhwZWN0VHJ1ZShiYXNlVmVydGV4
WmVyb1Byb2dyYW0gIT09IG51bGwsICJjYW4gY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFzZVZl
cnRleCIpOwotICAgIGdsLnVzZVByb2dyYW0oYmFzZVZlcnRleFplcm9Qcm9ncmFtKTsKLQotICAg
IGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAg
ICBpZiAoIW11bHRpRHJhdykgewotICAgICAgZXh0LmRyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VW
ZXJ0ZXhCYXNlSW5zdGFuY2VXRUJHTChnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX0JZVEUs
IDAsIDEsIDMsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICBleHQubXVsdGlEcmF3RWxlbWVudHNJ
bnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlV0VCR0woZ2wuVFJJQU5HTEVTLCBbNl0sIDAs
IGdsLlVOU0lHTkVEX0JZVEUsIFswXSwgMCwgWzFdLCAwLCBbM10sIDAsIFswXSwgMCwgMSk7Ci0g
ICAgfQotCi0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZF
Ul9CSVQpOwotICAgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVE
X0JZVEUsIDApOwotCi0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgeCwgeSwgeFNpemUsIHlT
aXplLCBbMCwgMjU1LCAwLCAyNTVdLCAiZ2xfQmFzZVZlcnRleCBpcyAwIGZvciBub24tQmFzZVZl
cnRleCBkcmF3IGNhbGxzIik7Ci0KICAgICBjb25zdCB2ZXJ0ZXhJRFByb2dyYW0gPSB3dHUuc2V0
dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJWZXJ0ZXhJRENoZWNrIiwgImZzaGFkZXIiXSwgWyJ2UG9z
aXRpb24iXSwgWzBdKTsKICAgICBleHBlY3RUcnVlKHZlcnRleElEUHJvZ3JhbSAhPT0gbnVsbCwg
ImNhbiBjb21waWxlIHByb2dyYW0gd2l0aCBnbF9WZXJ0ZXhJRCIpOwogICAgIGdsLnVzZVByb2dy
YW0odmVydGV4SURQcm9ncmFtKTsKQEAgLTY3NywzMCArODc3LDYgQEAgZnVuY3Rpb24gZG9UZXN0
KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICAgICAgdXNlQmFzZUluc3RhbmNlQnVpbHRp
bjogZmFsc2UKICAgICB9KTsKIAotICAgIGNoZWNrRHJhdyh7Ci0gICAgICBkcmF3RnVuYzogbXVs
dGlEcmF3ID8gbXVsdGlEcmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlIDogZHJhd0FycmF5
c0luc3RhbmNlZEJhc2VJbnN0YW5jZSwKLSAgICAgIGlzRHJhd0FycmF5czogdHJ1ZSwKLSAgICAg
IGlzTXVsdGlEcmF3OiBtdWx0aURyYXcsCi0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogdHJ1
ZSwKLSAgICAgIHVzZUJhc2VJbnN0YW5jZUJ1aWx0aW46IGZhbHNlCi0gICAgfSk7Ci0KLSAgICBj
aGVja0RyYXcoewotICAgICAgZHJhd0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0FycmF5c0lu
c3RhbmNlZEJhc2VJbnN0YW5jZSA6IGRyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UsCi0g
ICAgICBpc0RyYXdBcnJheXM6IHRydWUsCi0gICAgICBpc011bHRpRHJhdzogbXVsdGlEcmF3LAot
ICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IGZhbHNlLAotICAgICAgdXNlQmFzZUluc3RhbmNl
QnVpbHRpbjogdHJ1ZQotICAgIH0pOwotCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRyYXdGdW5j
OiBtdWx0aURyYXcgPyBtdWx0aURyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UgOiBkcmF3
QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlLAotICAgICAgaXNEcmF3QXJyYXlzOiB0cnVlLAot
ICAgICAgaXNNdWx0aURyYXc6IG11bHRpRHJhdywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGlu
OiB0cnVlLAotICAgICAgdXNlQmFzZUluc3RhbmNlQnVpbHRpbjogdHJ1ZQotICAgIH0pOwotCiAg
ICAgY2hlY2tEcmF3KHsKICAgICAgIGRyYXdGdW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdFbGVt
ZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UgOiBkcmF3RWxlbWVudHNJbnN0YW5j
ZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLAogICAgICAgaXNEcmF3QXJyYXlzOiBmYWxzZSwKQEAg
LTcwOCwzMCArODg0LDYgQEAgZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJh
dykgewogICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IGZhbHNlLAogICAgICAgdXNlQmFzZUlu
c3RhbmNlQnVpbHRpbjogZmFsc2UKICAgICB9KTsKLQotICAgIGNoZWNrRHJhdyh7Ci0gICAgICBk
cmF3RnVuYzogbXVsdGlEcmF3ID8gbXVsdGlEcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4
QmFzZUluc3RhbmNlIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5j
ZSwKLSAgICAgIGlzRHJhd0FycmF5czogZmFsc2UsCi0gICAgICBpc011bHRpRHJhdzogbXVsdGlE
cmF3LAotICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IHRydWUsCi0gICAgICB1c2VCYXNlSW5z
dGFuY2VCdWlsdGluOiBmYWxzZQotICAgIH0pOwotCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRy
YXdGdW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhC
YXNlSW5zdGFuY2UgOiBkcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNl
LAotICAgICAgaXNEcmF3QXJyYXlzOiBmYWxzZSwKLSAgICAgIGlzTXVsdGlEcmF3OiBtdWx0aURy
YXcsCi0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogZmFsc2UsCi0gICAgICB1c2VCYXNlSW5z
dGFuY2VCdWlsdGluOiB0cnVlCi0gICAgfSk7Ci0KLSAgICBjaGVja0RyYXcoewotICAgICAgZHJh
d0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2Us
Ci0gICAgICBpc0RyYXdBcnJheXM6IGZhbHNlLAotICAgICAgaXNNdWx0aURyYXc6IG11bHRpRHJh
dywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGluOiB0cnVlLAotICAgICAgdXNlQmFzZUluc3Rh
bmNlQnVpbHRpbjogdHJ1ZQotICAgIH0pOwogICB9CiAKICAgZm9yIChsZXQgaSA9IDA7IGkgPCBi
dWZmZXJVc2FnZVNldC5sZW5ndGg7IGkrKykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2FycmF5LWVx
dWFsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvZ2xzbDMvYXJyYXktZXF1YWxpdHkuaHRtbAppbmRleCBhM2VlZmQ1YmY0
MDVkZmM1M2UwNmNhZjM5MDFjNTBiMmJiNWI4ZTUxLi5kY2ZmYTJjMGEzMjc3YzFjNzhhODk1YTI1
MDlmNGE4OThhYjg0ZGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvYXJyYXktZXF1YWxpdHkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZTIvZ2xzbDMvYXJyYXktZXF1YWxpdHkuaHRtbApAQCAtNjEsNiArNjEsNTQgQEAgdm9pZCBt
YWluKCkgewogICAgIG15X0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAoc3VjY2VzcyA/IDEuMCA6IDAu
MCksIDAuMCwgMS4wKTsKIH0KIDwvc2NyaXB0PgorPHNjcmlwdCBpZD0ic2ltcGxlLWZsb2F0LWFy
cmF5LWZzIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlmb3JtIGZsb2F0IGFbM107Cit1bmlmb3JtIGZsb2F0
IGJbM107CisKK291dCB2ZWM0IGZyYWdDb2xvcjsKKwordm9pZCBtYWluKHZvaWQpIHsKKyAgICBm
cmFnQ29sb3IgPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisKKyAgICBpZiAoYSA9PSBiKSB7
CisgICAgICAgIGZyYWdDb2xvci5nID0gMS4wOworICAgIH0KK30KKzwvc2NyaXB0PgorPHNjcmlw
dCBpZD0ic2ltcGxlLXZlYy1hcnJheS1mcyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+I3Zl
cnNpb24gMzAwIGVzCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5pZm9ybSB2ZWMzIGFb
M107Cit1bmlmb3JtIHZlYzMgYlszXTsKKworb3V0IHZlYzQgZnJhZ0NvbG9yOworCit2b2lkIG1h
aW4odm9pZCkgeworICAgIGZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKKwor
ICAgIGlmIChhID09IGIpIHsKKyAgICAgICAgZnJhZ0NvbG9yLmcgPSAxLjA7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzaW1wbGUtbWF0LWFycmF5LWZzIiB0eXBlPSJ4LXNoYWRl
ci94LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
Cit1bmlmb3JtIG1hdDMgYVszXTsKK3VuaWZvcm0gbWF0MyBiWzNdOworCitvdXQgdmVjNCBmcmFn
Q29sb3I7CisKK3ZvaWQgbWFpbih2b2lkKSB7CisgICAgZnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAu
MCwgMC4wLCAxLjApOworCisgICAgaWYgKGEgPT0gYikgeworICAgICAgICBmcmFnQ29sb3IuZyA9
IDEuMDsKKyAgICB9Cit9Cis8L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2
YXNjcmlwdCI+CiAidXNlIHN0cmljdCI7CiBkZXNjcmlwdGlvbigiQ29tcGFyaW5nIGFycmF5cyBz
aG91bGQgd29yay4iKTsKQEAgLTc3LDcgKzEyNSwxMTQgQEAgR0xTTENvbmZvcm1hbmNlVGVzdGVy
LnJ1blJlbmRlclRlc3RzKFsKICAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCiAgIGxpbmtTdWNjZXNz
OiB0cnVlLAogICBwYXNzTXNnOiAnQXJyYXlzIG9mIHN0cnVjdHMnCi19Cit9LAoreworICBmU2hh
ZGVySWQ6ICJzaW1wbGUtZmxvYXQtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwK
KyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgcGFzc01zZzogIlNpbXBs
ZSBmbG9hdCBhcnJheSB3aXRoIGRlZmF1bHQgdmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDog
InNpbXBsZS1mbG9hdC1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBsaW5r
U3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICByZW5kZXJDb2xvcjogWzAsIDAsIDAs
IDI1NV0sCisgIHVuaWZvcm1zOiBbCisgICAgeyBuYW1lOiAnYScsIGZ1bmN0aW9uTmFtZTogJ3Vu
aWZvcm0xZnYnLCB2YWx1ZTogWzEsIDIsIDNdfSwKKyAgICB7IG5hbWU6ICdiJywgZnVuY3Rpb25O
YW1lOiAndW5pZm9ybTFmdicsIHZhbHVlOiBbMSwgMiwgNF19LAorICBdLAorICBwYXNzTXNnOiAi
U2ltcGxlIGZsb2F0IGFycmF5IHdpdGggZGlmZmVyZW50IHZhbHVlcyIsCit9LAoreworICBmU2hh
ZGVySWQ6ICJzaW1wbGUtZmxvYXQtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwK
KyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgdW5pZm9ybXM6IFsKKyAg
ICB7IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTFmdicsIHZhbHVlOiBbMSwgMiwg
M119LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtMWZ2JywgdmFsdWU6
IFsxLCAyLCAzXX0sCisgIF0sCisgIHBhc3NNc2c6ICJTaW1wbGUgZmxvYXQgYXJyYXkgd2l0aCBz
YW1lIHZhbHVlcyIsCit9LAoreworICBmU2hhZGVySWQ6ICJzaW1wbGUtdmVjLWFycmF5LWZzIiwK
KyAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6
IHRydWUsCisgIHBhc3NNc2c6ICJTaW1wbGUgdmVjIGFycmF5IHdpdGggZGVmYXVsdCB2YWx1ZXMi
LAorfSwKK3sKKyAgZlNoYWRlcklkOiAic2ltcGxlLXZlYy1hcnJheS1mcyIsCisgIGZTaGFkZXJT
dWNjZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICBy
ZW5kZXJDb2xvcjogWzAsIDAsIDAsIDI1NV0sCisgIHVuaWZvcm1zOiBbCisgICAgeyBuYW1lOiAn
YScsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm0zZnYnLCB2YWx1ZTogWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDldfSwKKyAgICB7IG5hbWU6ICdiJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTNmdics
IHZhbHVlOiBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgMTBdfSwKKyAgXSwKKyAgcGFzc01zZzog
IlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIiwKK30sCit7CisgIGZTaGFk
ZXJJZDogInNpbXBsZS12ZWMtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAg
bGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7
IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTNmdicsIHZhbHVlOiBbMSwgMiwgMywg
NCwgNSwgNiwgNywgOCwgOV19LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1bmlm
b3JtM2Z2JywgdmFsdWU6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XX0sCisgIF0sCisgIHBh
c3NNc2c6ICJTaW1wbGUgdmVjIGFycmF5IHdpdGggc2FtZSB2YWx1ZXMiLAorfSwKK3sKKy8vICAg
ICAgICAgICAic2ltcGxlLW1hdC1hcnJheS1mcyIKKyAgZlNoYWRlcklkOiAic2ltcGxlLW1hdC1h
cnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwK
KyAgcmVuZGVyOiB0cnVlLAorICBwYXNzTXNnOiAiU2ltcGxlIG1hdCBhcnJheSB3aXRoIGRlZmF1
bHQgdmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDogInNpbXBsZS1tYXQtYXJyYXktZnMiLAor
ICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjog
dHJ1ZSwKKyAgcmVuZGVyQ29sb3I6IFswLCAwLCAwLCAyNTVdLAorICB1bmlmb3JtczogWworICAg
IHsgbmFtZTogJ2EnLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtTWF0cml4M2Z2JywgdmFsdWU6IFsK
KyAgICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksCisgICAgICAyMSwgMjIs
IDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LAorICAgICAgMzEsIDMyLCAzMywgMzQsIDM1LCAz
NiwgMzcsIDM4LCAzOSwKKyAgICBdfSwKKyAgICB7IG5hbWU6ICdiJywgZnVuY3Rpb25OYW1lOiAn
dW5pZm9ybU1hdHJpeDNmdicsIHZhbHVlOiBbCisgICAgICAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2
LCAxNywgMTgsIDE5LAorICAgICAgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwK
KyAgICAgIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzMCwgMzksCisgICAgXX0sCisgIF0s
CisgIHBhc3NNc2c6ICJTaW1wbGUgdmVjIGFycmF5IHdpdGggZGlmZmVyZW50IHZhbHVlcyIsCit9
LAoreworICBmU2hhZGVySWQ6ICJzaW1wbGUtbWF0LWFycmF5LWZzIiwKKyAgZlNoYWRlclN1Y2Nl
c3M6IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6IHRydWUsCisgIHVuaWZv
cm1zOiBbCisgICAgeyBuYW1lOiAnYScsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm1NYXRyaXgzZnYn
LCB2YWx1ZTogWworICAgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKKyAg
ICAgIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksCisgICAgICAzMSwgMzIsIDMz
LCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LAorICAgIF19LAorICAgIHsgbmFtZTogJ2InLCBmdW5j
dGlvbk5hbWU6ICd1bmlmb3JtTWF0cml4M2Z2JywgdmFsdWU6IFsKKyAgICAgIDExLCAxMiwgMTMs
IDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksCisgICAgICAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAy
NywgMjgsIDI5LAorICAgICAgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwKKyAg
ICBdfSwKKyAgXSwKKyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBzYW1lIHZhbHVl
cyIsCit9LAogXSwgMik7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9m
cmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1s
b29wLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE3MWI5NGUyNmExMGIyZjRhMzJhNjc1NzNjOWE2
NmNiNDUzMTBjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9v
cC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkZyYWdtZW50IHNoYWRlciBjb250YWluaW5nIGxv
b3Agc2hvdWxkIG5vdCBjcmFzaDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvZ2xzbC1mZWF0dXJlLXRlc3RzLmNzcyIvPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lv
biAzMDAgZXMKK3ByZWNpc2lvbiBoaWdocCBmbG9hdDsKK291dCB2ZWMyIHZfdGV4X2Nvb3JkOwor
dW5pZm9ybSBtYXQ0IG1hdHJpeDsKKwordm9pZCBtYWluKCkgeworICAgdl90ZXhfY29vcmQgPSB2
ZWMyKDAuMCwgMC4wKTsKKyAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjAp
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBoaWdocCBmbG9hdDsKKworaW4gdmVj
MiB2X3RleF9jb29yZDsKK291dCB2ZWM0IG91dF9jb2xvcjsKKwordW5pZm9ybSBzYW1wbGVyMkQg
dGV4dHVyZV8xOwordW5pZm9ybSB2ZWMyIHJlc29sdXRpb247CisKK3ZlYzQgZG9fbG9vcHModmVj
NCB6KQoreworICAgIHZlYzQgdlsxNl07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsr
KQorICAgIHsKKyAgICAgICAgdltpXSA9IHo7CisgICAgfQorICAgIHJldHVybiB2WzFdOworfQor
Cit2b2lkIG1haW4oKSB7CisgICAgb3V0X2NvbG9yID0gZG9fbG9vcHModmVjNCgwLjIsIDAuNCwg
MC42LCAxLjApKSAtIHRleHR1cmUodGV4dHVyZV8xLCB2X3RleF9jb29yZCk7Cit9Cis8L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisidXNlIHN0cmljdCI7
CitkZXNjcmlwdGlvbigpOworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCB0ZXN0
cyA9IFsKKyAgICB7CisgICAgICAgIHZTaGFkZXJTb3VyY2U6IHd0dS5nZXRTY3JpcHQoJ3ZzaGFk
ZXInKSwKKyAgICAgICAgZlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgnZnNoYWRlcicpLAor
ICAgICAgICB2U2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgICAgICAgZlNoYWRlclN1Y2Nlc3M6IHRy
dWUsCisgICAgICAgIGxpbmtTdWNjZXNzOiB0cnVlLAorICAgICAgICBwYXNzTXNnOiAnRnJhZ21l
bnQgc2hhZGVyIGNvbnRhaW5pbmcgYSBzaW1wbGUgbG9vcCBzaG91bGQgY29tcGlsZSBhbmQgbGlu
aycKKyAgICB9CitdOworCitHTFNMQ29uZm9ybWFuY2VUZXN0ZXIucnVuVGVzdHModGVzdHMsIDIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4
LXJvdy1tYWpvci1keW5hbWljLWluZGV4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJvdy1tYWpv
ci1keW5hbWljLWluZGV4aW5nLmh0bWwKaW5kZXggOGNiY2I5OTM0YzIyYjk3ZDhmYmEwYTc5MGE1
NmNhMGEyMzVlZTljYi4uZWM2YTliYmQxYmU0NTNmYjJiMmMwMTE5MDAwZWFlNDVjMzgxNzZlNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UyL2dsc2wzL21hdHJpeC1yb3ctbWFqb3ItZHluYW1pYy1pbmRleGluZy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlMi9nbHNsMy9tYXRyaXgtcm93LW1ham9yLWR5bmFtaWMtaW5kZXhpbmcuaHRtbApAQCAt
MzMsNiArMzMsMjIgQEAgdm9pZCBtYWluKCkgewogICAgIG15X0ZyYWdDb2xvciA9IHZlYzQoMS4w
IC0gZiwgZiwgMC4wLCAxLjApOwogfQogPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyUm93
TWF0cml4SW5kZXhlZEJ5Um93TWF0cml4SW5Vbmlmb3JtQmxvY2siIHR5cGU9Ingtc2hhZGVyL3gt
ZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3Vu
aWZvcm0gU3R1ZmYgeworICBsYXlvdXQocm93X21ham9yKSBtYXQ0IHVfbWF0WzNdOworICBsYXlv
dXQocm93X21ham9yKSBtYXQ0IHVfbmR4WzNdOworfSBzdHVmZjsKKworCitvdXQgdmVjNCBteV9G
cmFnQ29sb3I7CisKK3ZvaWQgbWFpbigpIHsKKyAgdmVjNCByb3cgPSBzdHVmZi51X21hdFtpbnQo
c3R1ZmYudV9uZHhbMV1bMV1bM10pXVsyXTsKKyAgbXlfRnJhZ0NvbG9yID0gcm93ID09IHZlYzQo
OSwgMTAsIDExLCAxMikgPyB2ZWM0KDAsIDEsIDAsIDEpIDogdmVjNCgxLCAwLCAwLCAxKTsKK30K
Kzwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KICJ1c2Ug
c3RyaWN0IjsKIGRlc2NyaXB0aW9uKCJJbmRleGluZyByb3ctbWFqb3IgbWF0cmljZXMgd2l0aGlu
IGEgdW5pZm9ybSBibG9jayBzaG91bGQgd29yayIpOwpAQCAtNDksNiArNjUsNTEgQEAgR0xTTENv
bmZvcm1hbmNlVGVzdGVyLnJ1blJlbmRlclRlc3RzKFsKICAgICAwLCAwLCAwLCAwLAogICAgIDAs
IDAsIDAsIDAsCiAgIF0pfV0sCit9LAoreworICBmU2hhZGVySWQ6ICdmc2hhZGVyUm93TWF0cml4
SW5kZXhlZEJ5Um93TWF0cml4SW5Vbmlmb3JtQmxvY2snLAorICBmU2hhZGVyU3VjY2VzczogdHJ1
ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHBhc3NNc2c6ICcnLAorICB1bmlmb3JtQmxvY2tz
OiBbe25hbWU6ICJTdHVmZiIsIHZhbHVlOiBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAvLyBtYXQ0
IHVfbWF0WzNdCisgICAgIDEsICAyLCAgMywgIDQsCisgICAgIDUsICA2LCAgNywgIDgsCisgICAg
IDksIDEwLCAxMSwgMTIsCisgICAgMTMsIDE0LCAxNSwgMTYsCisKKyAgICAgICAgIC8vICArLS0g
d2Ugc2hvdWxkIGJlIHB1bGxpbmcgb3V0IHRoaXMgY29sdW1uCisgICAgICAgICAvLyAgfAorICAg
ICAgICAgLy8gIFYKKyAgICAgMSwgIDUsICA5LCAxMywKKyAgICAgMiwgIDYsIDEwLCAxNCwKKyAg
ICAgMywgIDcsIDExLCAxNSwKKyAgICAgNCwgIDgsIDEyLCAxNiwKKworICAgICAyLCAxMCwgMTgs
IDIyLAorICAgICA0LCAxMiwgMjAsIDI4LAorICAgICA2LCAxNCwgMjIsIDMwLAorICAgICA4LCAx
NiwgMjQsIDMyLAorCisgICAgLy8gbWF0NCB1X25keFszXQorICAgIDAsIDAsIDAsIDAsCisgICAg
MCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsCisKKyAgICAwLCAw
LCAwLCAwLAorICAgIDAsIDAsIDAsIDIsCisgICAgMCwgMCwgMCwgMCwKKyAgICAwLCAxLCAwLCAw
LAorICAgIC8vIF4KKyAgICAvLyB8CisgICAgLy8gKy0tIHdlIHNob3VsZCBiZSByZWFkaW5nIHRo
aXMgdmFsdWUgYXMgYW4gaW5kZXggaW50byB1X21hdAorCisgICAgMCwgMCwgMCwgMCwKKyAgICAw
LCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwKKyAgXSl9XSwKIH0K
IF0sIDIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9m
LXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1
bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkxNTIzYWVhMDVkMGY4ZGNjZDNk
MjU2ZTdlY2I2ZWY2ZDI0ZDhhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2Fs
LXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbApAQCAtMCwwICsxLDY2IEBACis8IS0t
CitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5TaGFkZXIg
aWRlbnRpZmllZCBhcyBjb250YWluaW5nIHJlY2lwcm9jYWwgc3F1YXJlIHJvb3Qgb2Ygc3VtIG9m
IHNxdWFyZXMgc2hvdWxkIG5vdCBjcmFzaDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvZ2xzbC1mZWF0dXJlLXRlc3RzLmNzcyIv
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4j
dmVyc2lvbiAzMDAgZXMKK3ZvaWQgbWFpbigpIHsKKyAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAs
IDAuMCwgMC4wLCAwLjApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBl
PSJ4LXNoYWRlci94LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBoaWdocCBm
bG9hdDsKKworI2RlZmluZSBDUkFTSCAxCisKK291dCB2ZWM0IGZyYWdtZW50Q29sb3I7Cit2b2lk
IG1haW4oKQoreworICAgIHZlYzIgcCA9IGdsX0ZyYWdDb29yZC54eTsKKyAgICAvLyBUaGlzIGV4
cHJlc3Npb24gbWVldHMgdGhlIHJlcXVpcmVtZW50IG9mIGJlaW5nIHRoZSByZWNpcHJvY2FsCisg
ICAgLy8gc3F1YXJlIHJvb3Qgb2YgYSBzdW0gb2Ygc3F1YXJlcy4KKyAgICBmbG9hdCBkID0gMS4w
IC8gbGVuZ3RoKHApOworI2lmIENSQVNICisgICAgaWYgKHAueCA+IDAuMCkKKyAgICB7CisgICAg
ICAgIGQgKj0gMi4wOworICAgIH0KKyNlbmRpZgorICAgIGZyYWdtZW50Q29sb3IgPSB2ZWM0KGQp
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgor
InVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oKTsKK2RlYnVnKCdSZWdyZXNzaW9uIHRlc3QgZm9y
IDxhIGhyZWY9Imh0dHBzOi8vY3JidWcuY29tLzEwNzkzMDkiPmNyYnVnLmNvbS8xMDc5MzA5PC9h
PicpOworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCB0ZXN0cyA9IFsKKyAgICB7
CisgICAgICAgIHZTaGFkZXJTb3VyY2U6IHd0dS5nZXRTY3JpcHQoJ3ZzaGFkZXInKSwKKyAgICAg
ICAgZlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgnZnNoYWRlcicpLAorICAgICAgICB2U2hh
ZGVyU3VjY2VzczogdHJ1ZSwKKyAgICAgICAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgICAgICAg
IGxpbmtTdWNjZXNzOiB0cnVlLAorICAgICAgICBwYXNzTXNnOiAnU2hhZGVyIGNvbnRhaW5pbmcg
ZXhwcmVzc2lvbiB0aGF0IGRyaXZlciByZWNvZ25pemVzIGFzIHJlY2lwcm9jYWwgc3F1YXJlIHJv
b3Qgb2Ygc3VtIG9mIHNxdWFyZXMgc2hvdWxkIGNvbXBpbGUgYW5kIGxpbmsnCisgICAgfQorXTsK
KworR0xTTENvbmZvcm1hbmNlVGVzdGVyLnJ1blRlc3RzKHRlc3RzLCAyKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L21pc2MvYmxlbmQtaW50ZWdlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwY2NmZDBkODYwY2ViMzI5ZThk
NGFkYjRlOTdlOTYxMmQxNDhiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRl
Z2VyLmh0bWwKQEAgLTAsMCArMSwxNzYgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIDIgQmxlbmQgSW50ZWdlciBDb25mb3JtYW5j
ZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGls
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0ib3V0cHV0VmVydGV4
U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisjdmVyc2lvbiAzMDAgZXMKK2luIHZl
YzQgdlBvc2l0aW9uOwordm9pZCBtYWluKCkKK3sKKyAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247
Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9Im91dHB1dEZyYWdtZW50U2hhZGVyU2lnbmVkIiB0
eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyN2ZXJzaW9uIDMwMCBlcworbGF5b3V0KGxvY2F0
aW9uID0gMSkgb3V0IGhpZ2hwIHZlYzQgb19kcmF3QnVmZmVyMTsKK2xheW91dChsb2NhdGlvbiA9
IDIpIG91dCBoaWdocCBpdmVjNCBvX2RyYXdCdWZmZXIyOworbGF5b3V0KGxvY2F0aW9uID0gMykg
b3V0IGhpZ2hwIHZlYzQgb19kcmF3QnVmZmVyMzsKK3ZvaWQgbWFpbih2b2lkKQoreworICBvX2Ry
YXdCdWZmZXIxID0gdmVjNCgwLCAwLCAwLCAwKTsKKyAgb19kcmF3QnVmZmVyMiA9IGl2ZWM0KDAs
IDAsIDAsIDApOworICBvX2RyYXdCdWZmZXIzID0gdmVjNCgwLCAwLCAwLCAwKTsKK30KKzwvc2Ny
aXB0PgorPHNjcmlwdCBpZD0ib3V0cHV0RnJhZ21lbnRTaGFkZXJVbnNpZ25lZCIgdHlwZT0ieC1z
aGFkZXIveC1mcmFnbWVudCI+CisgICN2ZXJzaW9uIDMwMCBlcworICBsYXlvdXQobG9jYXRpb24g
PSAxKSBvdXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIxOworICBsYXlvdXQobG9jYXRpb24gPSAy
KSBvdXQgaGlnaHAgdXZlYzQgb19kcmF3QnVmZmVyMjsKKyAgbGF5b3V0KGxvY2F0aW9uID0gMykg
b3V0IGhpZ2hwIHZlYzQgb19kcmF3QnVmZmVyMzsKKyAgdm9pZCBtYWluKHZvaWQpCisgIHsKKyAg
ICBvX2RyYXdCdWZmZXIxID0gdmVjNCgwLCAwLCAwLCAwKTsKKyAgICBvX2RyYXdCdWZmZXIyID0g
dXZlYzQoMCwgMCwgMCwgMCk7CisgICAgb19kcmF3QnVmZmVyMyA9IHZlYzQoMCwgMCwgMCwgMCk7
CisgIH0KKyAgPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IHZlcmlmaWVzIGNvcnJlY3QgYmVoYXZpb3Igb2YgbWluL21heCBibGVuZGlu
ZyBvcGVyYXRpb25zIG9uIGludGVnZXIgYXR0YWNobWVudHMuIik7CisKK2RlYnVnKCIiKTsKKwor
Y29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQobnVsbCwgdW5kZWZpbmVkLCAyKTsKKworaWYgKCFnbCkgeworICB0ZXN0RmFpbGVkKCJXZWJH
TCBjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0UGFzc2VkKCJXZWJH
TCBjb250ZXh0IGV4aXN0cyIpOworCisgIGRlYnVnKCIiKQorICBkZWJ1ZygiR0xfTUlOIik7Cisg
IHJ1blRlc3QoZmFsc2UsIGdsLk1JTik7CisgIHJ1blRlc3QodHJ1ZSwgZ2wuTUlOKTsKKworICBk
ZWJ1ZygiIikKKyAgZGVidWcoIkdMX01BWCIpOworICBydW5UZXN0KGZhbHNlLCBnbC5NQVgpOwor
ICBydW5UZXN0KHRydWUsIGdsLk1BWCk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVWYWx1ZSh2YWx1
ZSwgYXR0YWNobWVudCwgaXNTaWduZWQpIHsKKyAgY29uc3QgcGl4ZWwgPSBpc1NpZ25lZCA/IG5l
dyBJbnQzMkFycmF5KDQpIDogbmV3IFVpbnQzMkFycmF5KDQpOworICBnbC5yZWFkQnVmZmVyKGF0
dGFjaG1lbnQpOworICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkFfSU5URUdFUiwg
aXNTaWduZWQgPyBnbC5JTlQgOiBnbC5VTlNJR05FRF9JTlQsIHBpeGVsKTsKKyAgbGV0IHBhc3Mg
PSB0cnVlOworICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgIGlmICh2YWx1ZVtp
XSAhPSBwaXhlbFtpXSkgeworICAgICAgdGVzdEZhaWxlZChgUmVhZCB2YWx1ZSBvZiBjaGFubmVs
ICR7aX0gc2hvdWxkIGJlICR7cGl4ZWxbaV19LCB3YXMgJHt2YWx1ZVtpXX0uYCk7CisgICAgICBw
YXNzID0gZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBwYXNzOworfQorCitmdW5jdGlvbiBy
dW5UZXN0KGlzU2lnbmVkLCBvcGVyYXRpb24pIHsKKyAgZ2wudmlld3BvcnQoMCwgMCwgMSwgMSk7
CisgIGdsLmRpc2FibGUoZ2wuQkxFTkQpOworCisgIGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBQ
cm9ncmFtKGdsLAorICAgIFsib3V0cHV0VmVydGV4U2hhZGVyIiwKKyAgICAgIGlzU2lnbmVkID8g
Im91dHB1dEZyYWdtZW50U2hhZGVyU2lnbmVkIiA6ICJvdXRwdXRGcmFnbWVudFNoYWRlclVuc2ln
bmVkIl0sCisgICAgWyd2UG9zaXRpb24nXSwgWzBdKTsKKyAgY29uc3QgcXVhZFBhcmFtZXRlcnMg
PSB3dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7CisKKyAgLy8gU2V0dXAgcmVuZGVyIHRhcmdl
dHMKKyAgY29uc3QgZmIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKworICBjb25zdCByYjEgPSBnbC5jcmVhdGVSZW5k
ZXJidWZmZXIoKTsKKyAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJiMSk7
CisgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBOCwgNTAs
IDUwKTsKKyAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQxLCBnbC5SRU5ERVJCVUZGRVIsIHJiMSk7CisKKyAgY29uc3QgcmIyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7CisgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVS
QlVGRkVSLCByYjIpOworICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwg
aXNTaWduZWQgPyBnbC5SR0JBMzJJIDogZ2wuUkdCQTMyVUksIDUwLCA1MCk7CisgIGdsLmZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMiwg
Z2wuUkVOREVSQlVGRkVSLCByYjIpOworCisgIGNvbnN0IHJiMyA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpOworICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmIzKTsKKyAg
Z2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE4LCA1MCwgNTAp
OworICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1Jf
QVRUQUNITUVOVDMsIGdsLlJFTkRFUkJVRkZFUiwgcmIzKTsKKworICBnbC5kcmF3QnVmZmVycyhb
Z2wuTk9ORSwgZ2wuQ09MT1JfQVRUQUNITUVOVDEsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UM10pOworCisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLCAiUGlwZWxpbmUgc2V0dXAgY29tcGxldGUuIik7CisKKyAgaWYgKGlzU2lnbmVkKSB7Cisg
ICAgY29uc3QgY2xlYXJWYWx1ZSA9IG5ldyBJbnQzMkFycmF5KFstMSwgMiwgLTMsIDRdKTsKKyAg
ICBnbC5jbGVhckJ1ZmZlcml2KGdsLkNPTE9SLCAyLCBjbGVhclZhbHVlKTsKKyAgICBpZiAoY29t
cGFyZVZhbHVlKGNsZWFyVmFsdWUsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBpc1NpZ25lZCkpIHsK
KyAgICAgIHRlc3RQYXNzZWQoIlNpZ25lZCBjbGVhciBwYXNzZWQuIik7CisgICAgfSBlbHNlIHsK
KyAgICAgIHRlc3RGYWlsZWQoIlNpZ25lZCBjbGVhciBmYWlsZWQuIik7CisgICAgfQorICB9IGVs
c2UgeworICAgIGNvbnN0IGNsZWFyVmFsdWUgPSBuZXcgVWludDMyQXJyYXkoWzEsIDIsIDMsIDRd
KTsKKyAgICBnbC5jbGVhckJ1ZmZlcnVpdihnbC5DT0xPUiwgMiwgY2xlYXJWYWx1ZSk7CisgICAg
aWYgKGNvbXBhcmVWYWx1ZShjbGVhclZhbHVlLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMiwgaXNTaWdu
ZWQpKSB7CisgICAgICB0ZXN0UGFzc2VkKCJVbnNpZ25lZCBjbGVhciBwYXNzZWQuIik7CisgICAg
fSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlVuc2lnbmVkIGNsZWFyIGZhaWxlZC4iKTsKKyAg
ICB9CisgIH0KKworICBnbC5ibGVuZEVxdWF0aW9uKG9wZXJhdGlvbik7CisgIGdsLmVuYWJsZShn
bC5CTEVORCk7CisKKyAgd3R1LmRyYXdVbml0UXVhZChnbCk7CisgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiRHJhdyBjb21wbGV0ZS4iKTsKKworICBpZiAoaXNTaWduZWQp
IHsKKyAgICBjb25zdCBkcmF3VmFsdWUgPSBuZXcgSW50MzJBcnJheShbMCwgMCwgMCwgMF0pOwor
ICAgIGlmIChjb21wYXJlVmFsdWUoZHJhd1ZhbHVlLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMiwgaXNT
aWduZWQpKSB7CisgICAgICB0ZXN0UGFzc2VkKCJTaWduZWQgZHJhdyBwYXNzZWQuIik7CisgICAg
fSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlNpZ25lZCBkcmF3IGZhaWxlZC4iKTsKKyAgICB9
CisgIH0gZWxzZSB7CisgICAgY29uc3QgZHJhd1ZhbHVlID0gbmV3IFVpbnQzMkFycmF5KFswLCAw
LCAwLCAwXSk7CisgICAgaWYgKGNvbXBhcmVWYWx1ZShkcmF3VmFsdWUsIGdsLkNPTE9SX0FUVEFD
SE1FTlQyLCBpc1NpZ25lZCkpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlVuc2lnbmVkIGRyYXcgcGFz
c2VkLiIpOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0RmFpbGVkKCJVbnNpZ25lZCBkcmF3IGZh
aWxlZC4iKTsKKyAgICB9CisgIH0KKyAgZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKHJiMSk7CisgIGds
LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyYjIpOworICBnbC5kZWxldGVSZW5kZXJidWZmZXIocmIzKTsK
KyAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmIpOworICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0p
OworfQorCitkZWJ1ZygiIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisK
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1nZXQtZnJhZy1kYXRh
LWxvY2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvcHJvZ3JhbXMvZ2wtZ2V0LWZyYWctZGF0YS1sb2NhdGlvbi5odG1s
CmluZGV4IGZmNjYyODJjMDRmNGRmZTZhOTA3MDM2NDQxZGI4ODRkNDBmODM1NWEuLjFlMDA2ZWJk
MjgwOWMyZDRjZjczYThiODc5YzE0MDEzNmNlYTBmZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9n
bC1nZXQtZnJhZy1kYXRhLWxvY2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Byb2dyYW1zL2dsLWdldC1mcmFn
LWRhdGEtbG9jYXRpb24uaHRtbApAQCAtMSw1ICsxLDUgQEAKIO+7vzwhLS0KLUNvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgogLS0+CkBAIC00Myw2ICs0MywxOCBAQCB2b2lkIG1haW4oKSB7CiB9CiA8L3Njcmlw
dD4KIAorPHNjcmlwdCBpZD0idnMtZXMyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Cit2b2lk
IG1haW4oKSB7CisgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLCAwLCAwLCAxKTsKK30KKzwvc2NyaXB0
PgorPHNjcmlwdCBpZD0iZnMtZXMyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0Owordm9pZCBtYWluKCkgeworICBnbF9GcmFnQ29sb3IgPSB2ZWM0
KDAsIDEsIDAsIDEpOworfQorPC9zY3JpcHQ+CisKIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CiBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIGdldEZyYWdEYXRhTG9jYXRpb24gYmVoYXZp
b3JzLiIpOwpAQCAtNjEsMTQgKzczLDIzIEBAIGlmICghZ2wpIHsKIH0KIAogZnVuY3Rpb24gcnVu
VGVzdHMoKSB7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJm
cyJdKTsKLSAgdmFyIHByb2dyYW1BcnJheSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnMiLCAi
ZnMtYXJyYXkiXSk7Ci0gIGlmICghcHJvZ3JhbSB8fCAhcHJvZ3JhbUFycmF5KSB7CisgIHdpbmRv
dy5wcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJmcyJdKTsKKyAgd2luZG93
LnByb2dyYW1BcnJheSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnMiLCAiZnMtYXJyYXkiXSk7
CisgIHdpbmRvdy5wcm9ncmFtRXMyID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cy1lczIiLCAi
ZnMtZXMyIl0pOworICBpZiAoIXByb2dyYW0gfHwgIXByb2dyYW1BcnJheSB8fCAhcHJvZ3JhbUVz
MikgewogICAgIHRlc3RGYWlsZWQoIlNldCB1cCBwcm9ncmFtIGZhaWxlZCIpOwogICAgIHJldHVy
bjsKICAgfQogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIk5vIEdMIGVy
cm9yIGZyb20gc2V0IHVwIik7CiAKKyAgc2hvdWxkQmUoImdsLmdldEZyYWdEYXRhTG9jYXRpb24o
cHJvZ3JhbSwgJ2dsX0ZyYWdDb2xvcicpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFn
RGF0YUxvY2F0aW9uKHByb2dyYW1BcnJheSwgJ2dsX0ZyYWdDb2xvcicpIiwgIi0xIik7CisgIHNo
b3VsZEJlKCJnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW1FczIsICdnbF9GcmFnQ29sb3In
KSIsICItMSIpOworICBzaG91bGRCZSgiZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAn
Z2xfRnJhZ0RhdGEnKSIsICItMSIpOworICBzaG91bGRCZSgiZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlv
bihwcm9ncmFtQXJyYXksICdnbF9GcmFnRGF0YScpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5n
ZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW1FczIsICdnbF9GcmFnRGF0YScpIiwgIi0xIik7Cisg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3IgZnJvbSBn
bF8qIHF1ZXJpZXMiKTsKKwogICB2YXIgbG9jMCA9IGdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJv
Z3JhbSwgImZyYWdDb2xvcjAiKTsKICAgdmFyIGxvYzEgPSBnbC5nZXRGcmFnRGF0YUxvY2F0aW9u
KHByb2dyYW0sICJmcmFnQ29sb3IxIik7CiAgIGlmIChsb2MwICE9IDIgfHwgbG9jMSAhPSAwKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNv
bG9ybWFzay5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1j
b2xvcm1hc2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDJkN2Y1NGJjYTVmMjAxMGZiODJmMzRlMjBkOGEx
NjJmYThlMThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXIt
dW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCEtLQorQ29w
eXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+QmxpdEZyYW1lYnVm
ZmVyIFNob3VsZCBCZSBVbmFmZmVjdGVkIGJ5IENvbG9yTWFzazwvdGl0bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iOCIgaGVpZ2h0PSI4Ij48L2NhbnZhcz4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgYmxpdEZyYW1lYnVmZmVy
IGlzIHVuYWZmZWN0ZWQgYnkgdGhlIGNvbG9yTWFzayBzdGF0ZS4iKTsKKworZGVidWcoJ1JlZ3Jl
c3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTI1Nzc2OSI+aHR0cHM6
Ly9jcmJ1Zy5jb20vMTI1Nzc2OTwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjAxMjk8L2E+Jyk7CisKK2Z1bmN0aW9uIGFsbG9jYXRlVGV4dHVyZShnbCwg
c2l6ZSkgeworICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgZ2wuUkdCQTgsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIG51bGwpOworICAgIHJldHVybiB0ZXg7Cit9CisKK2Z1bmN0aW9uIGFsbG9jYXRlRkJPKGds
LCB0ZXgpIHsKKyAgICBjb25zdCBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICAgIGds
LmJpbmRGcmFtZWJ1ZmZlcihnbC5EUkFXX0ZSQU1FQlVGRkVSLCBmYm8pOworICAgIGdsLmZyYW1l
YnVmZmVyVGV4dHVyZTJEKGdsLkRSQVdfRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOworICAgIHJldHVybiBmYm87Cit9CisKK2Z1bmN0aW9u
IHJ1bigpIHsKKyAgICBjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIsIHsg
YW50aWFsaWFzOiBmYWxzZSB9LCAyKTsKKworICAgIGlmICghZ2wpIHsKKyAgICAgICAgdGVzdEZh
aWxlZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBzaXplID0gODsKKworICAg
IHRlc3RQYXNzZWQoIldlYkdMIGNvbnRleHQgZXhpc3RzIik7CisKKyAgICAvLyBBbGxvY2F0ZSBz
b3VyY2UgYW5kIGRlc3RpbmF0aW9uIHRleHR1cmVzIGFuZCBmcmFtZWJ1ZmZlciBvYmplY3RzLgor
ICAgIGNvbnN0IHNvdXJjZVRleCA9IGFsbG9jYXRlVGV4dHVyZShnbCwgc2l6ZSk7CisgICAgY29u
c3Qgc291cmNlRkJPID0gYWxsb2NhdGVGQk8oZ2wsIHNvdXJjZVRleCk7CisKKyAgICBjb25zdCBk
ZXN0VGV4ID0gYWxsb2NhdGVUZXh0dXJlKGdsLCBzaXplKTsKKyAgICBjb25zdCBkZXN0RkJPID0g
YWxsb2NhdGVGQk8oZ2wsIGRlc3RUZXgpOworCisgICAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1
cENvbG9yUXVhZChnbCk7CisKKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IHNvdXJjZUZCTyk7CisKKyAgICAvLyBDbGVhciB0aGUgc291cmNlIGZyYW1lYnVmZmVyIHRvIHJl
ZC4KKyAgICBnbC5jbGVhckNvbG9yKDEsIDAsIDAsIDEpOworICAgIGdsLmNvbG9yTWFzayh0cnVl
LCB0cnVlLCB0cnVlLCB0cnVlKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsK
KworICAgIC8vIERyYXcgYSB0cmFuc3BhcmVudCBncmVlbiBxdWFkLgorICAgIGdsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7CisgICAgd3R1LmRyYXdGbG9hdENvbG9yUXVhZChnbCwgWyAwLCAyNTUsIDAs
IDAgXSk7CisKKyAgICAvLyBDbGVhciB0aGUgYWxwaGEgY2hhbm5lbC4KKyAgICBnbC5jb2xvck1h
c2soZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7CisgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAw
LCAxKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKworICAgIC8vIEF0IHRo
aXMgcG9pbnQsIGV2ZW4gc2V0dGluZyB0aGUgY29sb3JNYXNrIHRvIGFsbC10cnVlIHdvbid0Cisg
ICAgLy8gd29yayBhcm91bmQgdGhlIGJ1Zywgc2luY2UgdGhhdCBzdGF0ZSBpcyBsYXRjaGVkIGlu
c2lkZSBBTkdMRQorICAgIC8vIG9ubHkgZHVyaW5nIGRyYXdzIC8gY2xlYXJzLgorCisgICAgLy8g
QmxpdCBzb3VyY2UgdG8gZGVzdC4KKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRFJBV19GUkFN
RUJVRkZFUiwgZGVzdEZCTyk7CisgICAgZ2wuYmxpdEZyYW1lYnVmZmVyKDAsIDAsIHNpemUsIHNp
emUsIDAsIDAsIHNpemUsIHNpemUsIGdsLkNPTE9SX0JVRkZFUl9CSVQsIGdsLk5FQVJFU1QpOwor
ICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5SRUFEX0ZSQU1FQlVGRkVSLCBkZXN0RkJPKTsKKwor
ICAgIC8vIE5vdGUgdGhhdCB0aGUgb24tc2NyZWVuIGNhbnZhcyBpcyBhbHdheXMgYmxhY2sgLSB3
ZSBkb24ndCBibGl0IHRoZSByZXN1bHQgdG8gaXQuCisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBb
IDAsIDI1NSwgMCwgMjU1IF0sICJzaG91bGQgYmUgZ3JlZW4iLCAxKTsKKyAgICBmaW5pc2hUZXN0
KCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCityZXF1ZXN0QW5pbWF0
aW9uRnJhbWUocnVuKTsKKworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRjNjc5ZGY2YTI5NDA5ZmU1MDY2ODA0YWIxNGMyNWE3ZGMyODczYWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0
aW9ucy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACivvu788IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0czogVmVy
aWZ5IGRyYXdCdWZmZXJzIHNwYXJzZSBvdXRwdXQgbG9jYXRpb25zPC90aXRsZT4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMi
IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJ3aWR0aDogNHB4OyBoZWlnaHQ6IDRweDsiPiA8
L2NhbnZhcz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0IGlkPSJ2cyIgdHlw
ZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwordm9pZCBtYWluKCkgeworICBn
bF9Qb2ludFNpemUgPSAxMDAuMDsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsIDAsIDAsIDEpOwor
fQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50
Ij4jdmVyc2lvbiAzMDAgZXMKKy8vIGZyYWdtZW50IHNoYWRlciBvbmx5IG91dHB1dHMgdG8gYXR0
YWNobWVudHMgMSBhbmQgMworcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OworbGF5b3V0KGxvY2F0aW9u
ID0gMSkgb3V0IHZlYzQgb3V0cHV0MTsKK2xheW91dChsb2NhdGlvbiA9IDMpIG91dCB2ZWM0IG91
dHB1dDI7Cit2b2lkIG1haW4oKQoreworICAgIG91dHB1dDEgPSB2ZWM0KDAuMCwgMS4wLCAwLjAs
IDEuMCk7CisgICAgb3V0cHV0MiA9IHZlYzQoMC4wLCAwLjAsIDEuMCwgMS4wKTsKK30KKworPC9z
Y3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2
ZXJpZmllcyBzcGFyc2Ugb3V0cHV0IGxvY2F0aW9ucyBvZiBmcmFnbWVudCBzaGFkZXJzIHJlbmRl
ciBjb3JyZWN0bHkiKTsKKworZGVidWcoIiIpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Cit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwordmFyIGds
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIG51bGwsIDIpOworCitpZiAoIWdsKSB7Cisg
IHRlc3RGYWlsZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7Cisg
IHRlc3RQYXNzZWQoIldlYkdMIGNvbnRleHQgZXhpc3RzIik7CisgIHJ1blRlc3RzKCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RBdHRhY2htZW50KGF0dGFjaG1lbnQsIGV4cGVjdGVkKSB7CisgIGdsLnJl
YWRCdWZmZXIoZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyBhdHRhY2htZW50KTsKKyAgd3R1LmNoZWNr
Q2FudmFzKGdsLCBleHBlY3RlZCwgYGNoZWNrIENPTE9SX0FUVEFDSE1FTlQke2F0dGFjaG1lbnR9
YCwgMSk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICB2YXIgcHJvZ3JhbSA9IHd0dS5z
ZXR1cFByb2dyYW0oZ2wsIFsidnMiLCAiZnMiXSk7CisgIGlmICghcHJvZ3JhbSkgeworICAgIHRl
c3RGYWlsZWQoIlNldCB1cCBwcm9ncmFtIGZhaWxlZCIpOworICAgIHJldHVybjsKKyAgfQorICBn
bC51c2VQcm9ncmFtKHByb2dyYW0pOworCisgIC8vIGNyZWF0ZSBhIGZyYW1lYnVmZmVyIHdpdGgg
NCAxeDEgcGl4ZWwgY29sb3IgYXR0YWNobWVudHMKKyAgY29uc3QgZmIgPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpOworICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKwor
ICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQTgsIDEsIDEsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJE
KGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGksIGdsLlRFWFRVUkVfMkQs
IHRleCwgMCk7CisgIH0KKworICAvLyBkcmF3IG9ubHkgdG8gdGhlIDFzdCBhbmQgM3JkIGF0dGFj
aG1lbnRzCisgIGdsLmRyYXdCdWZmZXJzKFsKKyAgICBnbC5OT05FLAorICAgIGdsLkNPTE9SX0FU
VEFDSE1FTlQxLAorICAgIGdsLk5PTkUsCisgICAgZ2wuQ09MT1JfQVRUQUNITUVOVDMsCisgIF0p
OworCisgIC8vIGRyYXcKKyAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworCisgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3IgZnJvbSBzZXQg
dXAiKTsKKworICAvLyBjaGVjayB3ZSBnb3QgdGhlIGNvcnJlY3QgdmFsdWVzCisgIHRlc3RBdHRh
Y2htZW50KDAsIFswLCAwLCAwLCAwXSk7CisgIHRlc3RBdHRhY2htZW50KDEsIFswLCAyNTUsIDAs
IDI1NV0pOworICB0ZXN0QXR0YWNobWVudCgyLCBbMCwgMCwgMCwgMF0pOworICB0ZXN0QXR0YWNo
bWVudCgzLCBbMCwgMCwgMjU1LCAyNTVdKTsKKworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgIk5vIEdMIGVycm9yIGZyb20gdGVzdGluZyIpOworfQorCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1j
YWxscy5odG1sCmluZGV4IGVmNzc1OTNkOTJjMmNmZWFhNjQzY2QwNzk0OTdlNWEyMzc5MzgyY2Iu
LjYyZWQ3MGQ1YmQ0N2JlOTkyY2M2OGJjMDM4YTIzOTYzMTNhZGIxY2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9z
dGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQt
Y2FsbHMuaHRtbApAQCAtMTUsMTIgKzE1LDkgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotCiA8c2NyaXB0PgogdmFyIGNvbnRleHRWZXJzaW9uID0gMjsKIDwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQtY2FsbHMuanMiPjwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmM2YTExOGNjMWRkYWY1NzMxNGE0MjdlMGIwNDI4YmVkMDhkNDY5
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wyIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29u
Zm9ybWFuY2UgVGVzdHMgZm9yIE9mZnNjcmVlbkNhbnZhczwvdGl0bGU+Ci08bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgotPGltZyBpZD0iaW1nIiBz
dHlsZT0iZGlzcGxheTpub25lOyI+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9
IFdlYkdMVGVzdFV0aWxzOwotCi0vLyBDaGVja3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2Vw
dGlvbi4KLWZ1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihmdW5jKSB7Ci0gIHZhciBoYWRFeGNlcHRp
b24gPSBmYWxzZTsKLSAgdHJ5IHsKLSAgICBmdW5jKCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGhh
ZEV4Y2VwdGlvbiA9IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGhhZEV4Y2VwdGlvbjsKLX0KLQotdmFy
IGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291
cmNlcy9vcGVuZ2xfbG9nby5qcGciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291
cmNlcy9vcGVuZ2xfbG9nby5qcGciOwotCi12YXIgaW1nRG9tYWluOwotdmFyIHBhZ2VEb21haW47
Ci0KLWZ1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgewotICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGVuc3VyZXMgV2ViR0wyIGltcGxlbWVudGF0aW9ucyBmb3IgT2Zmc2NyZWVuQ2FudmFzIGZvbGxv
dyBwcm9wZXIgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLiIpOwotCi0gIGlmICghd2luZG93Lk9m
ZnNjcmVlbkNhbnZhcykgewotICAgIHRlc3RQYXNzZWQoIk5vIE9mZnNjcmVlbkNhbnZhcyBzdXBw
b3J0Iik7Ci0gICAgZmluaXNoVGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGFzc2VydE1z
ZyhpbWcud2lkdGggPiAwICYmIGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAg
aW1nRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwotICBw
YWdlRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwotICBh
c3NlcnRNc2coaW1nRG9tYWluICE9IHBhZ2VEb21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFp
biAoIiArIGltZ0RvbWFpbiArICIpIGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAi
KSBhcmUgbm90IHRoZSBzYW1lLiIpOwotCi0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBz
cmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEwLCAxMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRleFN1YkltYWdlMkQoZ2ws
IHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgMTAsIDEwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBzcmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVGV4SW1hZ2UzRChnbCwgc3Jj
KSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4SW1hZ2UzRChnbC5URVhU
VVJFXzNELCAwLCBnbC5SR0JBLCAxMCwgMTAsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTNEKGds
LCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhTdWJJbWFnZTNE
KGdsLlRFWFRVUkVfM0QsIDAsIDAsIDAsIDAsIDEwLCAxMCwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVJlYWRQaXhlbHMo
Z2wpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4
QXJyYXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQotCi0gIHZhciBvZmZzY3JlZW5jYW52YXMg
PSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENv
bnRleHQob2Zmc2NyZWVuY2FudmFzLCBudWxsLCAyKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVn
KCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5vdGhlciBv
cmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgbnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRl
eEltYWdlMkQoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBjcm9zcy1v
cmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNl
ZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4
U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9u
LiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTNEKGdsLCBpbWcp
KSwKLSAgICAgICAgICAgICJ0ZXhJbWFnZTNEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3Vs
ZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRl
eFN1YkltYWdlM0QoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleFN1YkltYWdlM0Qgd2l0aCBj
cm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLQotCi0gIGRlYnVn
KCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9m
ZnNjcmVlbmNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQ
aXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBl
eGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTDIgY2FudmFz
LiIpOwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRl
ZCBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLSAgdmFyIGN0eDJkID0gY2FudmFzLmdldENvbnRl
eHQoIjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICBhc3NlcnRNc2coY2F1
c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0
ZXhJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2Vw
dGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChn
bCwgY2FudmFzKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4g
Y2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVz
ZWRFeGNlcHRpb24obWFrZVRleEltYWdlM0QoZ2wsIGNhbnZhcykpLAotICAgICAgICAgICAgInRl
eEltYWdlM0Qgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTNEKGds
LCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTNEIHdpdGggTk9OIG9yaWdpbiBj
bGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sg
dGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5j
YW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGds
KSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9u
IC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wyIGNhbnZhcy4iKTsKLQot
ICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCi0gIC8vIFRPRE86IFNob3VsZCBjaGVjayBD
T1JTIHN1cHBvcnQuCi0KLSAgZmluaXNoVGVzdCgpOwotfQotCi0oYXN5bmMgZnVuY3Rpb24oKSB7
Ci0gIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcnKTsKLSAgdHJ5IHsK
LSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGlt
ZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpLCAxMDAwKTsKLSAgfSBjYXRjaCAoZSkgewot
ICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgZmluaXNo
VGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbWFnZUxvYWRlZChpbWcpOwotfSkoKTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2MvdGV4
LXN0b3JhZ2UtY29tcHJlc3NlZC1mb3JtYXRzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3Rv
cmFnZS1jb21wcmVzc2VkLWZvcm1hdHMuaHRtbAppbmRleCBhZGE3N2NhNGI2NjdkOTJhM2M5NzIx
YWMwZmVlZTFmNGZkYTc0Y2QyLi5lMTU0NjMxZWFkNzY2MmY3YmY0OTA3NWJhNjgyN2ZkZmJiN2Uw
ZTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZv
cm1hdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZv
cm1hdHMuaHRtbApAQCAtOTgsNyArOTgsNyBAQCBmdW5jdGlvbiBydW5UZXhDb21wcmVzc2VkRm9y
bWF0c1Rlc3QodGV4Q29tcHJlc3NlZEZvcm1hdHMpCiAgICAgICAgIC8vIFRlc3QgYSAyRCB0ZXh0
dXJlLgogICAgICAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwogICAgICAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgICAgICBnbC50ZXhTdG9yYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDEsIDEpOworICAgICAgICBnbC50ZXhT
dG9yYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDQsIDQpOwogICAgICAg
ICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGV4U3RvcmFnZTJEIHNob3VsZCBzdWNjZWVkIGZvciAiICsgZW51bVRvU3Ry
aW5nKGludGVybmFsZm9ybWF0KSk7CiAgICAgICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKQEAg
LTExMSwxNCArMTExLDE0IEBAIGZ1bmN0aW9uIHJ1blRleENvbXByZXNzZWRGb3JtYXRzVGVzdCh0
ZXhDb21wcmVzc2VkRm9ybWF0cykKICAgICAgICAgLy8gVGVzdCB0aGUgM0QgdGV4dHVyZSB0YXJn
ZXRzLgogICAgICAgICB2YXIgdGV4M2QgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiAgICAgICAgIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfM0QsIHRleDNkKTsKLSAgICAgICAgZ2wudGV4U3RvcmFn
ZTNEKGdsLlRFWFRVUkVfM0QsIDEsIGludGVybmFsZm9ybWF0LCAxLCAxLCAxKTsKKyAgICAgICAg
Z2wudGV4U3RvcmFnZTNEKGdsLlRFWFRVUkVfM0QsIDEsIGludGVybmFsZm9ybWF0LCA0LCA0LCAx
KTsKICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleFN0b3JhZ2UzRChURVhUVVJFXzNEKSBz
aG91bGQgZmFpbCBmb3IgIiArIGVudW1Ub1N0cmluZyhpbnRlcm5hbGZvcm1hdCkpOwogICAgICAg
ICBnbC5kZWxldGVUZXh0dXJlKHRleDNkKTsKIAogICAgICAgICB2YXIgdGV4MmRBcnIgPSBnbC5j
cmVhdGVUZXh0dXJlKCk7CiAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkRfQVJS
QVksIHRleDJkQXJyKTsKLSAgICAgICAgZ2wudGV4U3RvcmFnZTNEKGdsLlRFWFRVUkVfMkRfQVJS
QVksIDEsIGludGVybmFsZm9ybWF0LCAxLCAxLCAxKTsKKyAgICAgICAgZ2wudGV4U3RvcmFnZTNE
KGdsLlRFWFRVUkVfMkRfQVJSQVksIDEsIGludGVybmFsZm9ybWF0LCA0LCA0LCAxKTsKICAgICAg
ICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRleFN0b3JhZ2UzRChURVhUVVJFXzJEX0FSUkFZKSBzaG91bGQgc3VjY2Vl
ZCBmb3IgIiArIGVudW1Ub1N0cmluZyhpbnRlcm5hbGZvcm1hdCkpOwogICAgICAgICB3dHUuY2xl
YXJBbmREcmF3VW5pdFF1YWQoZ2wpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZNdWx0aXNh
bXBsZVRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZNdWx0aXNhbXBsZVRlc3RzLmpzCmluZGV4IDUw
ZTJhMjE5OTJmOThmYTk5ZThmMzc4OWQwNGFhMDU4N2RmOGI5MWMuLjQ3ZTYyNjdkMzVkMzcyN2Yz
OTIzOWQwMjZlZWRlNWI0MDQyYmNlYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9lczNmTXVsdGlz
YW1wbGVUZXN0cy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2FtcGxlVGVzdHMuanMKQEAg
LTE3MTMsNyArMTcxMyw3IEBAIGdvb2cuc2NvcGUoZnVuY3Rpb24oKSB7CiAgICAgICogUnVuIHRl
c3QKICAgICAgKiBAcGFyYW0ge1dlYkdMMlJlbmRlcmluZ0NvbnRleHR9IGNvbnRleHQKICAgICAg
Ki8KLSAgICAgZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuID0gZnVuY3Rpb24oY29udGV4dCkgewor
ICAgIGVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1biA9IGZ1bmN0aW9uKGNvbnRleHQsIHJhbmdlKSB7
CiAgICAgICAgIGdsID0gY29udGV4dDsKICAgICAgICAgLy9TZXQgdXAgVGVzdCBSb290IHBhcmFt
ZXRlcnMKICAgICAgICAgdmFyIHRlc3ROYW1lID0gJ211bHRpc2FtcGxlJzsKQEAgLTE3MzAsNiAr
MTczMCw4IEBAIGdvb2cuc2NvcGUoZnVuY3Rpb24oKSB7CiAgICAgICAgIHRyeSB7CiAgICAgICAg
ICAgICAvL0NyZWF0ZSB0ZXN0IGNhc2VzCiAgICAgICAgICAgICBlczNmTXVsdGlzYW1wbGVUZXN0
cy5pbml0KCk7CisgICAgICAgICAgICBpZiAocmFuZ2UpCisgICAgICAgICAgICAgICAgc3RhdGUu
c2V0UmFuZ2UocmFuZ2UpOwogICAgICAgICAgICAgLy9SdW4gdGVzdCBjYXNlcwogICAgICAgICAg
ICAgdGN1VGVzdENhc2UucnVuVGVzdENhc2VzKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25h
bC9nbGVzMy9lczNmUHJpbWl0aXZlUmVzdGFydFRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmlt
aXRpdmVSZXN0YXJ0VGVzdHMuanMKaW5kZXggODU5NzM2NjVhZDhjMTU3NTZhOTVhY2QzMDk0MGQy
ZmJmOGExNTlmOC4uYWMwZGEyZmU2NjQ2ZjMwNjVmMzZhZjFhNzMzOWU3MjViNTE4YzcwYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmltaXRpdmVSZXN0YXJ0VGVzdHMuanMKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFs
L2dsZXMzL2VzM2ZQcmltaXRpdmVSZXN0YXJ0VGVzdHMuanMKQEAgLTMzNCwxMCArMzM0LDE1IEBA
IHZhciBnbHVUZXh0dXJlVXRpbCA9IGZyYW1ld29yay5vcGVuZ2wuZ2x1VGV4dHVyZVV0aWw7CiAg
ICAgICAgICAgICAnXG4nICsKICAgICAgICAgICAgICd2b2lkIG1haW4oKVxuJyArCiAgICAgICAg
ICAgICAnIHtcbicgKwotICAgICAgICAgICAgJyBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247XG4n
ICsKLSAgICAgICAgICAgICd9XG4nOworICAgICAgICAgICAgJyBnbF9Qb3NpdGlvbiA9IGFfcG9z
aXRpb247XG4nOworCisgICAgICAgIGlmICh0aGlzLm1fcHJpbVR5cGUgPT0gZXMzZlByaW1pdGl2
ZVJlc3RhcnRUZXN0cy5QcmltaXRpdmVUeXBlLlBSSU1JVElWRV9QT0lOVFMpIHsKKyAgICAgICAg
ICAgIHZlcnRTaGFkZXJTb3VyY2UgKz0gJyBnbF9Qb2ludFNpemUgPSAxLjA7XG4nOworICAgICAg
ICB9CisKKyAgICAgICAgdmVydFNoYWRlclNvdXJjZSArPSAnfVxuJzsKIAotICAgICAgICAgICAg
LyoqIEB0eXBlIHtzdHJpbmd9ICovIHZhciBmcmFnU2hhZGVyU291cmNlID0KKyAgICAgICAgLyoq
IEB0eXBlIHtzdHJpbmd9ICovIHZhciBmcmFnU2hhZGVyU291cmNlID0KICAgICAgICAgICAgICcj
dmVyc2lvbiAzMDAgZXNcbicgKwogICAgICAgICAgICAgJ2xheW91dChsb2NhdGlvbiA9IDApIG91
dCBtZWRpdW1wIHZlYzQgb19jb2xvcjtcbicgKwogICAgICAgICAgICAgJ1xuJyArCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDJkYjMwMzVlOTI2N2M1MGRmMWZm
YzA2NGJhYzQ5YjJmNmY2MmIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Rl
cXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBNdWx0
aXNhbXBsZSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cvYmFzZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vZGVxcC1kZXBzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Z29v
Zy5yZXF1aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzJyk7PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjU2IiBoZWln
aHQ9IjI1NiI+IDwvY2FudmFzPgotPHNjcmlwdD4KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
LXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZhcycsIG51bGwsIDIpOwotCi1mdW5j
dGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1bihnbCk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0
X2Ziby5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzFkM2YwNmJmOTgwOWJlMzJlZTdhODIyZjlhZTUyMWYzODM4MTI4YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Rl
cXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sCkBAIC0wLDAg
KzEsMzEgQEAKKzwhLS0KKworVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGZyb20gbXVsdGlz
YW1wbGVfdGVzdF9nZW5lcmF0b3IucHkKK0RPIE5PVCBFRElUIQorCistLT4KKworPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBNdWx0aXNhbXBsZSBDb25mb3JtYW5jZSBU
ZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cvYmFzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vZGVxcC1kZXBzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Z29vZy5yZXF1
aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzJyk7PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1
NiI+IDwvY2FudmFzPgorPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBn
bCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZhcycsIG51bGwsIDIpOworCitmdW5jdGlvbmFs
LmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1bihnbCwgWzAsIDFdKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180
X3NhbXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzAyMWY1N2JhOWE1ODRiMzA2YWYyNzRiMmNkMzAzMjViODUyYTExNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwK
QEAgLTAsMCArMSwzMSBAQAorPCEtLQorCitUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJv
bSBtdWx0aXNhbXBsZV90ZXN0X2dlbmVyYXRvci5weQorRE8gTk9UIEVESVQhCisKKy0tPgorCis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPldlYkdMIE11bHRpc2FtcGxlIENvbmZv
cm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vY2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29vZy9iYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9kZXFwLWRlcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD5n
b29nLnJlcXVpcmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMnKTs8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyNTYiIGhl
aWdodD0iMjU2Ij4gPC9jYW52YXM+Cis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2FudmFzJywgbnVsbCwgMik7CisKK2Z1
bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuKGdsLCBbMSwgMl0pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1w
bGUvZmJvXzhfc2FtcGxlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBs
ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZGNhNWFlYWZlY2M4NDQyOGQ4NDJhOTRkZDlkNmQ0NDNlMWJi
NjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBs
ZXMuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IS0tCisKK1RoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBmcm9tIG11bHRpc2FtcGxlX3Rlc3RfZ2VuZXJhdG9yLnB5CitETyBOT1QgRURJVCEKKwor
LS0+CisKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+V2ViR0wgTXVsdGlzYW1w
bGUgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9jbG9zdXJlLWxpYnJhcnkvY2xvc3VyZS9nb29nL2Jhc2UuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2RlcXAtZGVwcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0Pmdvb2cucmVxdWlyZSgnZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0
cycpOzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9
IjI1NiIgaGVpZ2h0PSIyNTYiPiA8L2NhbnZhcz4KKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xU
ZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCdjYW52YXMnLCBudWxsLCAy
KTsKKworZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0cy5ydW4oZ2wsIFsyLCAz
XSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9m
Ym9fbWF4X3NhbXBsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmM3NWM3MjFmYTcwMDA1ZGY5MTY5NzI1
ZGViMGU5MWEzYmVjMDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxl
L2Zib19tYXhfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhLS0KKworVGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkIGZyb20gbXVsdGlzYW1wbGVfdGVzdF9nZW5lcmF0b3IucHkKK0RP
IE5PVCBFRElUIQorCistLT4KKworPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5X
ZWJHTCBNdWx0aXNhbXBsZSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dv
b2cvYmFzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZGVxcC1kZXBzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Z29vZy5yZXF1aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZN
dWx0aXNhbXBsZVRlc3RzJyk7PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0i
Y2FudmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+IDwvY2FudmFzPgorPHNjcmlwdD4KK3Zh
ciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2Nh
bnZhcycsIG51bGwsIDIpOworCitmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3Rz
LnJ1bihnbCwgWzMsIDRdKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvZ2xzbC1j
b25mb3JtYW5jZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzCmluZGV4IGVkNmVhYWQ1MGY0YjFj
YTc4N2NkNWNiYWJmNTBmMDhjN2JiOGZjZTYuLjEyYTA1NmNlMjE0NDk4OTE5YTNiOTVmOWEzNmQ2
ZTk3ZTY0MTEyZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9nbHNsLWNvbmZvcm1hbmNlLXRl
c3QuanMKQEAgLTI3NywxMiArMjc3LDE3IEBAIGZ1bmN0aW9uIHJ1bk9uZVRlc3QoZ2wsIGluZm8p
IHsKIAogICBpZiAoaW5mby51bmlmb3JtcyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBpbmZvLnVuaWZvcm1zLmxlbmd0aDsgKytpKSB7Ci0gICAgICB2YXIgdW5pZm9y
bUxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIGluZm8udW5pZm9ybXNb
aV0ubmFtZSk7CisgICAgICB2YXIgdW5pZm9ybSA9IGluZm8udW5pZm9ybXNbaV07CisgICAgICB2
YXIgdW5pZm9ybUxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIHVuaWZv
cm0ubmFtZSk7CiAgICAgICBpZiAodW5pZm9ybUxvY2F0aW9uICE9PSBudWxsKSB7Ci0gICAgICAg
IGdsW2luZm8udW5pZm9ybXNbaV0uZnVuY3Rpb25OYW1lXSh1bmlmb3JtTG9jYXRpb24sIGluZm8u
dW5pZm9ybXNbaV0udmFsdWUpOwotICAgICAgICBkZWJ1ZyhpbmZvLnVuaWZvcm1zW2ldLm5hbWUg
KyAnIHNldCB0byAnICsgaW5mby51bmlmb3Jtc1tpXS52YWx1ZSk7CisgICAgICAgIGlmICh1bmlm
b3JtLmZ1bmN0aW9uTmFtZS5pbmNsdWRlcygiTWF0cml4IikpIHsKKyAgICAgICAgICBnbFt1bmlm
b3JtLmZ1bmN0aW9uTmFtZV0odW5pZm9ybUxvY2F0aW9uLCBmYWxzZSwgdW5pZm9ybS52YWx1ZSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZ2xbdW5pZm9ybS5mdW5jdGlvbk5hbWVdKHVu
aWZvcm1Mb2NhdGlvbiwgdW5pZm9ybS52YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZGVidWco
dW5pZm9ybS5uYW1lICsgJyBzZXQgdG8gJyArIHVuaWZvcm0udmFsdWUpOwogICAgICAgfSBlbHNl
IHsKLSAgICAgICAgZGVidWcoJ3VuaWZvcm0gJyArIGluZm8udW5pZm9ybXNbaV0ubmFtZSArICcg
aGFkIG51bGwgbG9jYXRpb24gYW5kIHdhcyBub3Qgc2V0Jyk7CisgICAgICAgIGRlYnVnKCd1bmlm
b3JtICcgKyB1bmlmb3JtLm5hbWUgKyAnIGhhZCBudWxsIGxvY2F0aW9uIGFuZCB3YXMgbm90IHNl
dCcpOwogICAgICAgfQogICAgIH0KICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzCmlu
ZGV4IGZmODllNTg2ZWJkYWZjZDE1Y2I0Njg1ZDA3MGRmZDI2ODU5MTY2NjUuLjIzZGY1NTAzZDEy
OGNhNWJkOTA0OWZkMTM5ZmUwMmNhZGM1YTgwNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcG9zdC5qcworKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXBv
c3QuanMKQEAgLTksNCArOSwxOSBAQCBfYWRkU3BhbignPGJyIC8+PHNwYW4gY2xhc3M9InBhc3Mi
PlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7CiBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7
CiAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdURVNUIENPTVBMRVRFJyk7CiB9CisKK3sKKyAg
ICBjb25zdCBlX3Jlc3VsdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBs
ZXQgZmFpbHNfY2xhc3MgPSAncGFzcyc7CisgICAgaWYgKFJFU1VMVFMuZmFpbCkgeworICAgICAg
ICBmYWlsc19jbGFzcyA9ICdmYWlsJzsKKyAgICB9CisgICAgZV9yZXN1bHRzLmNsYXNzTGlzdC5h
ZGQoJ3Bhc3MnKTsKKyAgICBlX3Jlc3VsdHMuaW5uZXJIVE1MID0gYDxwPlRFU1QgQ09NUExFVEU6
ICR7UkVTVUxUUy5wYXNzfSBQQVNTLCBgICsKKyAgICAgIGA8c3BhbiBjbGFzcz0iJHtmYWlsc19j
bGFzc30iPiR7UkVTVUxUUy5mYWlsfSBGQUlMPC9zcGFuPjwvcD5gOworCisgICAgY29uc3QgZV9k
ZXNjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIik7CisgICAgZV9kZXNj
LmFwcGVuZENoaWxkKGVfcmVzdWx0cyk7Cit9CisKIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2pzL2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKaW5kZXggYTBkYTM0ODllN2UzZGU3NzhjMTJjOWJh
MmI5ZjE1MTk3MjY4OGQwMC4uZTFjYjlmNzQ5YzAyMmFhYWMwOGZiMTBiMGMyZjY0OTBiMGZhYWY2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvanMvanMtdGVzdC1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKQEAgLTg4LDcgKzg4LDE3IEBAIGZ1bmN0
aW9uIG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgewogICB9CiB9CiAKK2NvbnN0IFJF
U1VMVFMgPSB7CisgIHBhc3M6IDAsCisgIGZhaWw6IDAsCit9OworCiBmdW5jdGlvbiByZXBvcnRU
ZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYgKHN1Y2Nlc3MpIHsKKyAg
ICBSRVNVTFRTLnBhc3MgKz0gMTsKKyAgfSBlbHNlIHsKKyAgICBSRVNVTFRTLmZhaWwgKz0gMTsK
KyAgfQogICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CiAgICAgd2luZG93
LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBh
dGhuYW1lLCBzdWNjZXNzLCBtc2cpOwogICB9CkBAIC0xMDEsNiArMTExLDExIEBAIGZ1bmN0aW9u
IHJlcG9ydFNraXBwZWRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKIH0KIAog
ZnVuY3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7CisgIGlmICh3aW5kb3cuX2RpZE5v
dGlmeUZpbmlzaGVkVG9IYXJuZXNzKSB7CisgICAgdGVzdEZhaWxlZCgiRHVwbGljYXRlIG5vdGlm
eUZpbmlzaGVkVG9IYXJuZXNzKCkiKTsKKyAgfQorICB3aW5kb3cuX2RpZE5vdGlmeUZpbmlzaGVk
VG9IYXJuZXNzID0gdHJ1ZTsKKwogICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNz
KSB7CiAgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdp
bmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7CiAgIH0KQEAgLTc3MSwzICs3ODYsMTYgQEAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1ZSk7
CiB9CiAKKy8vLyBQcmVmZXIgYGNhbGwoKCkgPT4geyAuLi4gfSlgIHRvIGAoKCkgPT4geyAuLi4g
fSkoKWBcCisvLy8gVGhpcyB3YXksIGl0J3MgY2xlYXIgdXAtZnJvbnQgdGhhdCB3ZSdyZSBjYWxs
aW5nIG5vdCBqdXN0IGRlZmluaW5nLgorZnVuY3Rpb24gY2FsbChmbikgeworICAgIHJldHVybiBm
bigpOworfQorCisvLy8gYGZvciAoY29uc3QgaSBvZiByYW5nZSgzKSlgID0+IDAsIDEsIDIKKy8v
LyBEb24ndCB1c2UgYGZvci4uLmluIHJhbmdlKG4pYCwgaXQgd2lsbCBub3Qgd29yay4KK2Z1bmN0
aW9uKiByYW5nZShuKSB7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgeWll
bGQgaTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvY29tcHJlc3NlZC10ZXh0dXJlLXV0aWxzLmpzIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvY29tcHJl
c3NlZC10ZXh0dXJlLXV0aWxzLmpzCmluZGV4IGQ2ZjAyYzRkNDNiMzlmMGFhNDg1M2U3NDg5ZjQw
NThmYzJkNmJjZjUuLjQ2ZDE1NWY1ZjFkYTYzOGQ2ZThhMmM4ZDU1NjY3MzE5YjFhYTM3YjkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L3Rlc3RzL2NvbXByZXNzZWQtdGV4dHVyZS11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVzc2VkLXRleHR1cmUt
dXRpbHMuanMKQEAgLTE2NSw3ICsxNjUsNyBAQCBsZXQgdGVzdEZvcm1hdFJlc3RyaWN0aW9uc09u
QnVmZmVyU2l6ZSA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZQogICog
QHBhcmFtIHtudW1iZXJ9IGhlaWdodCBIZWlnaHQgb2YgdGhlIGltYWdlIGluIHBpeGVscy4KICAq
IEBwYXJhbSB7T2JqZWN0fSBzdWJJbWFnZUNvbmZpZ3MgY29uZmlncyBmb3IgY29tcHJlc3NlZFRl
eFN1YkltYWdlIGNhbGxzCiAgKi8KLWxldCB0ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zID0gZnVu
Y3Rpb24oZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVu
c2lvbnMsIHdpZHRoLCBoZWlnaHQsIHN1YkltYWdlQ29uZmlncykgeworbGV0IHRlc3RUZXhTdWJJ
bWFnZURpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVk
Qnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCB3aWR0aCwgaGVpZ2h0LCBzdWJJbWFnZUNv
bmZpZ3MpIHsKICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwogICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CiAKQEAgLTE3Myw2ICsxNzMsNyBAQCBsZXQgdGVz
dFRleFN1YkltYWdlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVj
dGVkQnl0ZUxlbmd0aCwgZwogICAgICAgICBpZiAodmFsaWRGb3JtYXRzLmhhc093blByb3BlcnR5
KGZvcm1hdElkKSkgewogICAgICAgICAgICAgbGV0IGZvcm1hdCA9IHZhbGlkRm9ybWF0c1tmb3Jt
YXRJZF07CiAgICAgICAgICAgICBsZXQgYmxvY2tTaXplID0gZ2V0QmxvY2tEaW1lbnNpb25zKGZv
cm1hdCk7CisgICAgICAgICAgICBkZWJ1ZygidGVzdGluZyAiICsgY3R1LmZvcm1hdFRvU3RyaW5n
KGV4dCwgZm9ybWF0KSk7CiAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRTaXplID0gZXhwZWN0ZWRC
eXRlTGVuZ3RoKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCk7CiAgICAgICAgICAgICBsZXQgZGF0YSA9
IG5ldyBVaW50OEFycmF5KGV4cGVjdGVkU2l6ZSk7CiAKQEAgLTE5Miw3ICsxOTMsNyBAQCBsZXQg
dGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4
cGVjdGVkQnl0ZUxlbmd0aCwgZwogICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKIH07CiAKLWxl
dCB0ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgdmFsaWRGb3JtYXRz
LCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgaW1hZ2VDb25maWdzKSB7
CitsZXQgdGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIGV4dCwgdmFs
aWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgaW1hZ2VD
b25maWdzKSB7CiAgICAgbGV0IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKICAgICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwogCkBAIC0yMDAsNiArMjAxLDcgQEAgbGV0IHRl
c3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4
cGVjdGVkQnl0ZUxlbmd0aCwKICAgICAgICAgaWYgKHZhbGlkRm9ybWF0cy5oYXNPd25Qcm9wZXJ0
eShmb3JtYXRJZCkpIHsKICAgICAgICAgICAgIGxldCBmb3JtYXQgPSB2YWxpZEZvcm1hdHNbZm9y
bWF0SWRdOwogICAgICAgICAgICAgbGV0IGJsb2NrU2l6ZSA9IGdldEJsb2NrRGltZW5zaW9ucyhm
b3JtYXQpOworICAgICAgICAgICAgZGVidWcoInRlc3RpbmcgIiArIGN0dS5mb3JtYXRUb1N0cmlu
ZyhleHQsIGZvcm1hdCkpOwogCiAgICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW1h
Z2VDb25maWdzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7CiAgICAgICAgICAgICAgICAgbGV0IGMg
PSBpbWFnZUNvbmZpZ3NbaV07CkBAIC0yMTQsNiArMjE2LDMyIEBAIGxldCB0ZXN0VGV4SW1hZ2VM
ZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVM
ZW5ndGgsCiAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwogfQogCitsZXQgdGVzdFRleFN0b3Jh
Z2VMZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVj
dGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCBpbWFnZUNvbmZpZ3MpIHsKKyAgICBm
b3IgKGxldCBmb3JtYXRJZCBpbiB2YWxpZEZvcm1hdHMpIHsKKyAgICAgICAgbGV0IHRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4KTsKKworICAgICAgICBpZiAodmFsaWRGb3JtYXRzLmhhc093blByb3BlcnR5KGZvcm1hdElk
KSkgeworICAgICAgICAgICAgbGV0IGZvcm1hdCA9IHZhbGlkRm9ybWF0c1tmb3JtYXRJZF07Cisg
ICAgICAgICAgICBsZXQgYmxvY2tTaXplID0gZ2V0QmxvY2tEaW1lbnNpb25zKGZvcm1hdCk7Cisg
ICAgICAgICAgICBkZWJ1ZygidGVzdGluZyAiICsgY3R1LmZvcm1hdFRvU3RyaW5nKGV4dCwgZm9y
bWF0KSk7CisKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBpbWFnZUNvbmZpZ3Mu
bGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsZXQgYyA9IGltYWdlQ29u
Zmlnc1tpXTsKKyAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IG5ldyBVaW50OEFycmF5KGV4cGVj
dGVkQnl0ZUxlbmd0aChjLndpZHRoLCBjLmhlaWdodCwgZm9ybWF0KSk7CisgICAgICAgICAgICAg
ICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBnbC50ZXhTdG9yYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgaW1hZ2VDb25maWdzLmxlbmd0aCwgZm9ybWF0LCBjLndpZHRoLCBjLmhlaWdo
dCk7CisgICAgICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGMuZXhwZWN0
YXRpb24sIGMubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGds
LmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIGksIDAsIDAsIGMud2lkdGgs
IGMuaGVpZ2h0LCBmb3JtYXQsIGRhdGEpOworICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGMuZXhwZWN0YXRpb24sIGMubWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAg
ICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKKyAgICB9Cit9CisKIHJldHVybiB7CiAgICAgZm9y
bWF0VG9TdHJpbmc6IGZvcm1hdFRvU3RyaW5nLAogICAgIGluc2VydENhcHRpb25lZEltZzogaW5z
ZXJ0Q2FwdGlvbmVkSW1nLApAQCAtMjI0LDYgKzI1Miw3IEBAIHJldHVybiB7CiAgICAgdGVzdEZv
cm1hdFJlc3RyaWN0aW9uc09uQnVmZmVyU2l6ZTogdGVzdEZvcm1hdFJlc3RyaWN0aW9uc09uQnVm
ZmVyU2l6ZSwKICAgICB0ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zOiB0ZXN0VGV4U3ViSW1hZ2VE
aW1lbnNpb25zLAogICAgIHRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9uczogdGVzdFRleEltYWdl
TGV2ZWxEaW1lbnNpb25zLAorICAgIHRlc3RUZXhTdG9yYWdlTGV2ZWxEaW1lbnNpb25zOiB0ZXN0
VGV4U3RvcmFnZUxldmVsRGltZW5zaW9ucywKIH07CiAKIH0pKCk7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvanMvdGVzdHMvY29udGV4dC1tZXRob2RzLmpzIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvY29udGV4dC1tZXRob2RzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY2NDc2NDYzZDI3MGZkNzA2ZGE5MzgzOGVlNTEwODk1MmMwZjhmOGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMKQEAgLTAsMCArMSw1MiBAQAorInVzZSBz
dHJpY3QiOworCisvLyBQcm9wZXJ0aWVzIHRvIGJlIGlnbm9yZWQgYmVjYXVzZSB0aGV5IHdlcmUg
YWRkZWQgaW4gdmVyc2lvbnMgb2YgdGhlCisvLyBzcGVjIHRoYXQgYXJlIGJhY2t3YXJkLWNvbXBh
dGlibGUgd2l0aCB0aGlzIHZlcnNpb24KK2NvbnN0IElHTk9SRURfTUVUSE9EUyA9IFsKKyAgLy8g
VGhlcmUgaXMgbm8gb2ZmaWNpYWwgc3BlYyBmb3IgdGhlIGNvbW1pdCBBUEkgeWV0LCB0aGUgcHJv
cG9zYWwgbGluayBpczoKKyAgLy8gaHR0cHM6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9PZmZzY3Jl
ZW5DYW52YXMKKyAgImNvbW1pdCIsCisKKyAgLy8gRm9yIFdlYlhSIGludGVncmF0aW9uOgorICAi
bWFrZVhSQ29tcGF0aWJsZSIsCitdOworCitmdW5jdGlvbiBhc3NlcnRGdW5jdGlvbih2LCBmKSB7
CisgIHRyeSB7CisgICAgaWYgKHR5cGVvZiB2W2ZdICE9ICJmdW5jdGlvbiIpIHsKKyAgICAgIHRl
c3RGYWlsZWQoYFByb3BlcnR5IGVpdGhlciBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBmdW5j
dGlvbjogJHtmfWApOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH0gY2F0Y2goZSkgeworICAgIHRlc3RGYWlsZWQoYFRyeWlu
ZyB0byBhY2Nlc3MgdGhlIHByb3BlcnR5ICcke2Z9JyB0aHJldyBhbiBlcnJvcjogJHtlLnRvU3Ry
aW5nKCl9YCk7CisgIH0KK30KKworZnVuY3Rpb24gdGVzdENvbnRleHRNZXRob2RzKGdsLCByZXF1
aXJlZENvbnRleHRNZXRob2RzKSB7CisgIGNvbnN0IGFjY2VwdGFibGVNZXRob2RzID0gW10uY29u
Y2F0KHJlcXVpcmVkQ29udGV4dE1ldGhvZHMsIElHTk9SRURfTUVUSE9EUyk7CisKKyAgbGV0IHBh
c3NlZCA9IHRydWU7CisgIHJlcXVpcmVkQ29udGV4dE1ldGhvZHMuZm9yRWFjaChtZXRob2QgPT4g
eworICAgIGNvbnN0IHIgPSBhc3NlcnRGdW5jdGlvbihnbCwgbWV0aG9kKTsKKyAgICBwYXNzZWQg
PSBwYXNzZWQgJiYgcjsKKyAgfSk7CisgIGlmIChwYXNzZWQpIHsKKyAgICB0ZXN0UGFzc2VkKCJB
bGwgV2ViR0wgbWV0aG9kcyBmb3VuZC4iKTsKKyAgfQorICBsZXQgZXh0ZW5kZWQgPSBmYWxzZTsK
KyAgZm9yIChsZXQgcHJvcGVydHlOYW1lIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGds
KSkgeworICAgIGlmICh0eXBlb2YgZ2xbcHJvcGVydHlOYW1lXSA9PSAiZnVuY3Rpb24iICYmICFh
Y2NlcHRhYmxlTWV0aG9kcy5pbmNsdWRlcyhwcm9wZXJ0eU5hbWUpKSB7CisgICAgICBpZiAoIWV4
dGVuZGVkKSB7CisgICAgICAgIGV4dGVuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGVzdEZhaWxlZCgi
QWxzbyBmb3VuZCB0aGUgZm9sbG93aW5nIGV4dHJhIG1ldGhvZHM6Iik7CisgICAgICB9CisgICAg
ICB0ZXN0RmFpbGVkKHByb3BlcnR5TmFtZSk7CisgICAgfQorICB9CisKKyAgaWYgKCFleHRlbmRl
ZCkgeworICAgIHRlc3RQYXNzZWQoIk5vIGV4dHJhIG1ldGhvZHMgZm91bmQgb24gV2ViR0wgY29u
dGV4dC4iKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZXh0LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0Lmpz
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMv
ZXh0LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0LmpzCmluZGV4IDkzZGU4YjY3ZWZmZDE3YTU3YTlh
YTg4MThlYmQ2YTFmZmQ3MzY2ZTkuLjUxNTA5ZThhNmU0NmNlODAxODZkM2MyNDJiMGNmMGEwOTQz
YzQzMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2pzL3Rlc3RzL2V4dC1jb2xvci1idWZmZXItaGFsZi1mbG9hdC5qcworKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9leHQtY29s
b3ItYnVmZmVyLWhhbGYtZmxvYXQuanMKQEAgLTI0NCw3ICsyNDQsNyBAQCBmdW5jdGlvbiBydW5J
bnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpCiAgICAgZGVidWcoInRlc3RpbmcgdGhlIGludGVybmFs
IGZvcm1hdCBxdWVyeSIpOwogCiAgICAgdmFyIG1heFNhbXBsZXMgPSBnbC5nZXRQYXJhbWV0ZXIo
Z2wuTUFYX1NBTVBMRVMpOwotICAgIHZhciBmb3JtYXRzID0gbmV3IEFycmF5KGdsLlJHQkExNkYs
IGdsLlIxNkYsIGdsLlJHMTZGKTsKKyAgICBjb25zdCBmb3JtYXRzID0gW2dsLlJHQkExNkYsIGds
LlIxNkYsIGdsLlJHMTZGXTsKICAgICB2YXIgZmlyc3RNdWx0aU9ubHlGb3JtYXQgPSA0OwogICAg
IGZvciAodmFyIGZtdCA9IDA7IGZtdCA8IGZvcm1hdHMubGVuZ3RoOyArK2ZtdCkgewogICAgICAg
ICB2YXIgc2FtcGxlcyA9IGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZm9ybWF0c1tmbXRdLCBnbC5TQU1QTEVTKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQt
Y2FsbHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9q
cy90ZXN0cy9nbC1vYmplY3QtZ2V0LWNhbGxzLmpzCmluZGV4IDI4ZGMzMDU0OTc2Y2VhYTUzNWZl
ZmU3NDI4MWQ3N2JkNGNhNzI4NTEuLmJkOTc0MzRiNzdmZTY4NThiOTY3NGM4NGI0OWQ3YTljMDlk
ZjU3ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQtY2FsbHMuanMKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1j
YWxscy5qcwpAQCAtOSwyNiArOSwzMiBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
IC8vIG9uIC0tIDEgZm9yIFdlYkdMIDEuMCwgMiBmb3IgV2ViR0wgMi4wLCBldGMuCiAKICJ1c2Ug
c3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHd0dSA9IFdlYkdMVGVz
dFV0aWxzOwogZGVzY3JpcHRpb24oIlRlc3Qgb2YgZ2V0IGNhbGxzIGFnYWluc3QgR0wgb2JqZWN0
cyBsaWtlIGdldEJ1ZmZlclBhcmFtZXRlciwgZXRjLiIpOwogCi12YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0VmVyc2lvbik7CitsZXQgZ2wg
PSB3dHUuY3JlYXRlM0RDb250ZXh0KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0VmVyc2lv
bik7CiAKLWZ1bmN0aW9uIHRlc3RJbnZhbGlkQXJndW1lbnQoZnVuY05hbWUsIGFyZ3VtZW50TmFt
ZSwgdmFsaWRBcmd1bWVudEFycmF5LCBmdW5jKSB7Ci0gIHZhciB2YWxpZEFyZ3VtZW50cyA9IHt9
OwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdmFsaWRBcmd1bWVudEFycmF5Lmxlbmd0aDsgKytp
aSkgeworYXN5bmMgZnVuY3Rpb24gdGVzdEludmFsaWRBcmd1bWVudChmdW5jTmFtZSwgYXJndW1l
bnROYW1lLCB2YWxpZEFyZ3VtZW50QXJyYXksIGZ1bmMpIHsKKyAgbGV0IHZhbGlkQXJndW1lbnRz
ID0ge307CisgIGZvciAobGV0IGlpID0gMDsgaWkgPCB2YWxpZEFyZ3VtZW50QXJyYXkubGVuZ3Ro
OyArK2lpKSB7CiAgICAgdmFsaWRBcmd1bWVudHNbdmFsaWRBcmd1bWVudEFycmF5W2lpXV0gPSB0
cnVlOwogICB9Ci0gIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8
IDB4MTAwMDA7ICsraWkpIHsKKyAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworICBjb25zdCBNQVggPSAw
eDEwMDAwOworICBjb25zdCBTVEVQID0gTWF0aC5jZWlsKE1BWCAvIDEwKTsKKyAgZm9yIChsZXQg
aWkgPSAwOyBpaSA8IE1BWDsgaWkgKz0gMSkgeworICAgIGlmIChpaSAmJiBpaSAlIFNURVAgPT0g
MCkgeworICAgICAgZGVidWcoYCgke2lpfSBvZiAke01BWH06ICR7KGlpL01BWCoxMDApLnRvRml4
ZWQoMSl9JSlgKTsKKyAgICAgIGF3YWl0IHd0dS5kaXNwYXRjaFByb21pc2UoKTsgLy8gU3BpbiB0
aGUgZXZlbnQgbG9vcC4KKyAgICB9CiAgICAgaWYgKCF2YWxpZEFyZ3VtZW50c1tpaV0pIHsKLSAg
ICAgIHZhciByZXN1bHQgPSBmdW5jKGlpKTsKKyAgICAgIGxldCByZXN1bHQgPSBmdW5jKGlpKTsK
ICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwog
ICAgICAgICB0ZXN0RmFpbGVkKGZ1bmNOYW1lICsgIiByZXR1cm5lZCAiICsgcmVzdWx0ICsgIiBp
bnN0ZWFkIG9mIG51bGwgZm9yIGludmFsaWQgIiArIGFyZ3VtZW50TmFtZSArICIgZW51bTogIiAr
IHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgaWkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0g
ICAgICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKKyAgICAgIGxldCBlcnIgPSBnbC5nZXRFcnJv
cigpOwogICAgICAgaWYgKGVyciAhPSBnbC5JTlZBTElEX0VOVU0pIHsKICAgICAgICAgc3VjY2Vz
cyA9IGZhbHNlOwogICAgICAgICB0ZXN0RmFpbGVkKGZ1bmNOYW1lICsgIiBkaWQgbm90IGdlbmVy
YXRlIElOVkFMSURfRU5VTSBmb3IgaW52YWxpZCAiICsgYXJndW1lbnROYW1lICsgIiBlbnVtOiAi
ICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBpaSkpOwpAQCAtNDEsNzIgKzQ3LDU4IEBAIGZ1bmN0
aW9uIHRlc3RJbnZhbGlkQXJndW1lbnQoZnVuY05hbWUsIGFyZ3VtZW50TmFtZSwgdmFsaWRBcmd1
bWVudEFycmF5LCBmdW5jKSB7CiAgIH0KIH0KIAotZGVidWcoIiIpOwotZGVidWcoInRlc3QgZ2V0
QnVmZmVyUGFyYW1ldGVyIik7Ci0vLyBUZXN0IGdldEJ1ZmZlclBhcmFtZXRlcgotdmFyIGJ1ZmZl
clR5cGVzID0gW2dsLkFSUkFZX0JVRkZFUiwgZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVJdOwotaWYg
KGNvbnRleHRWZXJzaW9uID4gMSkgewotICBidWZmZXJUeXBlcyA9IGJ1ZmZlclR5cGVzLmNvbmNh
dChbZ2wuQ09QWV9SRUFEX0JVRkZFUiwgZ2wuQ09QWV9XUklURV9CVUZGRVIsIGdsLlBJWEVMX1BB
Q0tfQlVGRkVSLCBnbC5QSVhFTF9VTlBBQ0tfQlVGRkVSLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
QlVGRkVSLCBnbC5VTklGT1JNX0JVRkZFUl0pOwotfQotZm9yICh2YXIgYmIgPSAwOyBiYiA8IGJ1
ZmZlclR5cGVzLmxlbmd0aDsgKytiYikgewotICB2YXIgYnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGVz
W2JiXTsKLSAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVy
KGJ1ZmZlclR5cGUsIGJ1ZmZlcik7Ci0gIGdsLmJ1ZmZlckRhdGEoYnVmZmVyVHlwZSwgMTYsIGds
LkRZTkFNSUNfRFJBVyk7Ci0gIHZhciBleHByZXNzaW9uMSA9ICJnbC5nZXRCdWZmZXJQYXJhbWV0
ZXIoIiArIGJ1ZmZlclR5cGUgKyAiLCBnbC5CVUZGRVJfU0laRSkiOwotICB2YXIgZXhwcmVzc2lv
bjIgPSAiZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKCIgKyBidWZmZXJUeXBlICsgIiwgZ2wuQlVGRkVS
X1VTQUdFKSI7Ci0gIHNob3VsZEJlKGV4cHJlc3Npb24xLCAnMTYnKTsKLSAgc2hvdWxkQmUoZXhw
cmVzc2lvbjIsICdnbC5EWU5BTUlDX0RSQVcnKTsKLSAgdGVzdEludmFsaWRBcmd1bWVudCgiZ2V0
QnVmZmVyUGFyYW1ldGVyIiwgInBhcmFtZXRlciIsIFtnbC5CVUZGRVJfU0laRSwgZ2wuQlVGRkVS
X1VTQUdFXSwgZnVuY3Rpb24oYnVmZmVyVHlwZSkgewotICAgIHJldHVybiBmdW5jdGlvbihwYXJh
bWV0ZXIpIHsKLSAgICAgIHJldHVybiBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoYnVmZmVyVHlwZSwg
cGFyYW1ldGVyKTsKLSAgICB9OwotICB9KGJ1ZmZlclR5cGUpKTsKLSAgZ2wuYmluZEJ1ZmZlcihi
dWZmZXJUeXBlLCBudWxsKTsKLX0KLXRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgImdldEJ1ZmZl
clBhcmFtZXRlciIsCi0gICAgInRhcmdldCIsCi0gICAgYnVmZmVyVHlwZXMsCi0gICAgZnVuY3Rp
b24odGFyZ2V0KSB7Ci0gICAgICByZXR1cm4gZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKHRhcmdldCwg
Z2wuQlVGRkVSX1NJWkUpOwotICAgIH0KLSk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CisoYXN5bmMgKCkgPT4geworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJ0ZXN0IGdl
dEJ1ZmZlclBhcmFtZXRlciIpOworICAvLyBUZXN0IGdldEJ1ZmZlclBhcmFtZXRlcgorICBsZXQg
YnVmZmVyVHlwZXMgPSBbZ2wuQVJSQVlfQlVGRkVSLCBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl07
CisgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICBidWZmZXJUeXBlcyA9IGJ1ZmZlclR5
cGVzLmNvbmNhdChbZ2wuQ09QWV9SRUFEX0JVRkZFUiwgZ2wuQ09QWV9XUklURV9CVUZGRVIsIGds
LlBJWEVMX1BBQ0tfQlVGRkVSLCBnbC5QSVhFTF9VTlBBQ0tfQlVGRkVSLCBnbC5UUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSLCBnbC5VTklGT1JNX0JVRkZFUl0pOworICB9CisgIGZvciAobGV0IGJi
ID0gMDsgYmIgPCBidWZmZXJUeXBlcy5sZW5ndGg7ICsrYmIpIHsKKyAgICBsZXQgYnVmZmVyVHlw
ZSA9IGJ1ZmZlclR5cGVzW2JiXTsKKyAgICBsZXQgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7
CisgICAgZ2wuYmluZEJ1ZmZlcihidWZmZXJUeXBlLCBidWZmZXIpOworICAgIGdsLmJ1ZmZlckRh
dGEoYnVmZmVyVHlwZSwgMTYsIGdsLkRZTkFNSUNfRFJBVyk7CisgICAgbGV0IGV4cHJlc3Npb24x
ID0gImdsLmdldEJ1ZmZlclBhcmFtZXRlcigiICsgYnVmZmVyVHlwZSArICIsIGdsLkJVRkZFUl9T
SVpFKSI7CisgICAgbGV0IGV4cHJlc3Npb24yID0gImdsLmdldEJ1ZmZlclBhcmFtZXRlcigiICsg
YnVmZmVyVHlwZSArICIsIGdsLkJVRkZFUl9VU0FHRSkiOworICAgIHNob3VsZEJlKGV4cHJlc3Np
b24xLCAnMTYnKTsKKyAgICBzaG91bGRCZShleHByZXNzaW9uMiwgJ2dsLkRZTkFNSUNfRFJBVycp
OworICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoImdldEJ1ZmZlclBhcmFtZXRlciIsICJw
YXJhbWV0ZXIiLCBbZ2wuQlVGRkVSX1NJWkUsIGdsLkJVRkZFUl9VU0FHRV0sIGZ1bmN0aW9uKGJ1
ZmZlclR5cGUpIHsKKyAgICAgIHJldHVybiBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKKyAgICAgICAg
cmV0dXJuIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihidWZmZXJUeXBlLCBwYXJhbWV0ZXIpOworICAg
ICAgfTsKKyAgICB9KGJ1ZmZlclR5cGUpKTsKKyAgICBnbC5iaW5kQnVmZmVyKGJ1ZmZlclR5cGUs
IG51bGwpOworICB9CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0QnVm
ZmVyUGFyYW1ldGVyIiwKKyAgICAgICJ0YXJnZXQiLAorICAgICAgYnVmZmVyVHlwZXMsCisgICAg
ICBmdW5jdGlvbih0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIGdsLmdldEJ1ZmZlclBhcmFtZXRl
cih0YXJnZXQsIGdsLkJVRkZFUl9TSVpFKTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogCi12YXIgdGVzdENhc2VzID0gWwotICB7IGNvbnRl
eHRTdGVuY2lsOiB0cnVlfSwKLSAgeyBjb250ZXh0U3RlbmNpbDogZmFsc2V9Ci1dOworICBsZXQg
dGVzdENhc2VzID0gWworICAgIHsgY29udGV4dFN0ZW5jaWw6IHRydWV9LAorICAgIHsgY29udGV4
dFN0ZW5jaWw6IGZhbHNlfQorICBdOwogCi1mb3IgKHZhciBydW4gPSAwOyBydW4gPCB0ZXN0Q2Fz
ZXMubGVuZ3RoOyArK3J1bikgewotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJUZXN0IGdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciB3aXRoIHN0ZW5jaWwgIiArIHRlc3RDYXNlc1tydW5d
LmNvbnRleHRTdGVuY2lsKTsKKyAgZm9yIChsZXQgcnVuID0gMDsgcnVuIDwgdGVzdENhc2VzLmxl
bmd0aDsgKytydW4pIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIHdpdGggc3RlbmNpbCAiICsgdGVzdENhc2VzW3J1bl0u
Y29udGV4dFN0ZW5jaWwpOwogCi0gIGlmICh0ZXN0Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkg
ewotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7c3RlbmNpbDogdHJ1ZX0sIGNv
bnRleHRWZXJzaW9uKTsKLSAgfSBlbHNlIHsKLSAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
bnVsbCwge3N0ZW5jaWw6IGZhbHNlfSwgY29udGV4dFZlcnNpb24pOwotICB9CisgICAgaWYgKHRl
c3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7CisgICAgICBnbCA9IHd0dS5jcmVhdGUzRENv
bnRleHQobnVsbCwge3N0ZW5jaWw6IHRydWV9LCBjb250ZXh0VmVyc2lvbik7CisgICAgfSBlbHNl
IHsKKyAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7c3RlbmNpbDogZmFsc2V9
LCBjb250ZXh0VmVyc2lvbik7CisgICAgfQogCi0gIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOwotICB2YXIgYW5vdGhlclRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDIsIDIsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAgICAgICAgICAg
ICAwLCAwLCAwLCAyNTUsCi0gICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwK
LSAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LAotICAgICAgICAgICAgICAg
ICAgICAwLCAwLCAwLCAyNTVdKSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gIHZhciBmcmFtZWJ1ZmZlciA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
ZnJhbWVidWZmZXIpOwotICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwg
Z2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleHR1cmUsIDApOwotICB2YXIg
Y29sb3JBdHRhY2htZW50c051bSA9IDE7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBhbm90aGVyVGV4dHVyZSk7CisgICAgd2lu
ZG93LnRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgd2luZG93LmFub3RoZXJUZXh0
dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleHR1cmUpOwogICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKICAgICAgICAgICAgICAgICAg
IG5ldyBVaW50OEFycmF5KFsKICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAyNTUsCkBA
IC0xMTYsOTYwICsxMDgsOTgzIEBAIGZvciAodmFyIHJ1biA9IDA7IHJ1biA8IHRlc3RDYXNlcy5s
ZW5ndGg7ICsrcnVuKSB7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgY29sb3JBdHRhY2htZW50c051bSA9
IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMpOwotICAgIGdsLmZyYW1l
YnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGNv
bG9yQXR0YWNobWVudHNOdW0gLSAxLCBnbC5URVhUVVJFXzJELCBhbm90aGVyVGV4dHVyZSwgMCk7
Ci0gIH0KLSAgdmFyIHJlbmRlcmJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICB3
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gIGdsLmJpbmRSZW5kZXJidWZm
ZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwotICB3dHUuZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA9PSAxKQotICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwg
MiwgMik7Ci0gIGVsc2UKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuREVQVEgyNF9TVEVOQ0lMOCwgMiwgMik7Ci0gIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLSAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsK
LSAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIs
IHJlbmRlcmJ1ZmZlcik7Ci0gIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOwotICAvLyBUaGUgZm9y
IGxvb3AgdGVzdHMgdHdvIGNvbG9yIGF0dGFjaG1lbnRzIGZvciBXZWJHTCAyOiB0aGUgZmlyc3Qg
b25lIChnbC5DT0xPUl9BVFRBQ0hNRU5UMCkKLSAgLy8gYW5kIHRoZSBsYXN0IG9uZSAoZ2wuQ09M
T1JfQVRUQUNITUVOVDAgKyBnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMgLSAxKS4KLSAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IGNvbG9yQXR0YWNobWVudHNOdW07IGlpICs9IChjb2xvckF0dGFjaG1l
bnRzTnVtID4gMSA/IGNvbG9yQXR0YWNobWVudHNOdW0gLSAxIDogMSkpIHsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfT0JKRUNUX1RZUEUpJywgJ2dsLlRFWFRVUkUnKTsKLSAgICBpZiAoaWkgPT0gMCkKLSAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAndGV4dHVyZScpOwotICAgIGVsc2UKLSAgICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfTkFNRSknLCAnYW5vdGhlclRleHR1cmUnKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
VEVYVFVSRV9MRVZFTCknLCAnMCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsg
JyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZB
Q0UpJywgJzAnKTsKKyAgICB3aW5kb3cuZnJhbWVidWZmZXIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpOworICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIp
OworICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7CisgICAgbGV0IGNvbG9yQXR0
YWNobWVudHNOdW0gPSAxOwogICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICAgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1Jf
QVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVO
X1NJWkUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsg
aWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSknKTsKLSAgICAgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09N
UE9ORU5UX1RZUEUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAg
KyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScp
OwotICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVIpJywgJzAnKTsKKyAgICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJlKTsKKyAgICAgIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoWworICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgMCwgMCwgMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgMjU1
LCAyNTUsIDI1NSwgMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwg
MjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMjU1XSkpOworICAgICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJ
TkVBUik7CisgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIG51bGwpOworICAgICAgY29sb3JBdHRhY2htZW50c051bSA9IGdsLmdldFBhcmFtZXRlcihn
bC5NQVhfQ09MT1JfQVRUQUNITUVOVFMpOworICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgY29sb3JBdHRhY2htZW50c051
bSAtIDEsIGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJlLCAwKTsKICAgICB9Ci0gIH0KLSAg
c2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpF
Q1RfVFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1F
TlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZl
cicpOwotICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9B
VFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5S
RU5ERVJCVUZGRVInKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicpOwotICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9PQkpFQ1RfVFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1F
KScsICdyZW5kZXJidWZmZXInKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVO
VCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFKScpOwotICAgIHNob3VsZEJl
Tm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RF
TkNJTF9TSVpFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOwotICAgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VO
Q09ESU5HKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxkQmVOb25a
ZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9F
TkNPRElORyknKTsKLSAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElE
X09QRVJBVElPTiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFN
RUJVRkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9TVEVO
Q0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcp
Jyk7Ci0gIH0KLSAgdmFyIHZhbGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCA9Ci0gICAgICBb
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUsCi0gICAgICAgIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfVEVYVFVSRV9MRVZFTCwKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0UKLSAgICAgIF07Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+
IDEpIHsKLSAgICB2YWxpZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQgPSB2YWxpZFBhcmFtZXRl
cnNGb3JGQkF0dGFjaG1lbnQuY29uY2F0KFsKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9SRURfU0laRSwKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9T
SVpFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSwKLSAgICAg
ICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFLAotICAgICAgICBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfU1RFTkNJTF9TSVpFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X0NPTVBPTkVOVF9UWVBFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9S
X0VOQ09ESU5HLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZ
RVIKLSAgICBdKTsKLSAgfQotICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgImdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCi0gICAgICAicGFyYW1ldGVyIiwKLSAgICAgIHZh
bGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCwKLSAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikg
ewotICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5ULCBwYXJhbWV0ZXIpOwotICAgICAgfQot
ICApOwotICB2YXIgdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50ID0gW2dsLkZSQU1FQlVGRkVS
XTsKLSAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0
YWNobWVudCA9IHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudC5jb25jYXQoW2dsLlJFQURfRlJB
TUVCVUZGRVIsIGdsLkRSQVdfRlJBTUVCVUZGRVJdKTsKLSAgfQotICB0ZXN0SW52YWxpZEFyZ3Vt
ZW50KAotICAgICAgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCi0gICAgICAi
dGFyZ2V0IiwKLSAgICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudCwKLSAgICAgIGZ1bmN0
aW9uKHRhcmdldCkgewotICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKHRhcmdldCwgZ2wuQ09MT1JfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfVFlQRSk7CisgICAgd2luZG93LnJlbmRlcmJ1ZmZlciA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKKyAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVy
KTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgaWYgKGNv
bnRleHRWZXJzaW9uID09IDEpCisgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIDIsIDIpOworICAgIGVsc2UKKyAgICAgIGds
LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSDI0X1NURU5DSUw4
LCAyLCAyKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAg
Z2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFD
SE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsKKyAgICBpZiAoY29udGV4dFZl
cnNpb24gPiAxKQorICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIp
OworICAgIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOworICAgIC8vIFRoZSBmb3IgbG9vcCB0ZXN0
cyB0d28gY29sb3IgYXR0YWNobWVudHMgZm9yIFdlYkdMIDI6IHRoZSBmaXJzdCBvbmUgKGdsLkNP
TE9SX0FUVEFDSE1FTlQwKQorICAgIC8vIGFuZCB0aGUgbGFzdCBvbmUgKGdsLkNPTE9SX0FUVEFD
SE1FTlQwICsgZ2wuTUFYX0NPTE9SX0FUVEFDSE1FTlRTIC0gMSkuCisgICAgZm9yIChsZXQgaWkg
PSAwOyBpaSA8IGNvbG9yQXR0YWNobWVudHNOdW07IGlpICs9IChjb2xvckF0dGFjaG1lbnRzTnVt
ID4gMSA/IGNvbG9yQXR0YWNobWVudHNOdW0gLSAxIDogMSkpIHsKKyAgICAgIHNob3VsZEJlKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfVFlQRSknLCAnZ2wuVEVYVFVSRScpOworICAgICAgaWYgKGlpID09IDApCisgICAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAndGV4dHVyZScpOworICAgICAgZWxzZQorICAgICAg
ICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ2Fub3RoZXJUZXh0dXJlJyk7CisgICAgICBzaG91
bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfVEVYVFVSRV9MRVZFTCknLCAnMCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNI
TUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VC
RV9NQVBfRkFDRSknLCAnMCcpOworICAgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAg
ICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFKScpOworICAgICAgICBzaG91bGRCZU5vblpl
cm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0dSRUVOX1NJWkUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hN
RU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFKScp
OworICAgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAn
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUpJyk7CisgICAgICAgIHNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
Q09MT1JfRU5DT0RJTkcpJyk7CisgICAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsg
JyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSKScsICcw
Jyk7CiAgICAgICB9Ci0gICk7Ci0gIHZhciB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50
ID0gbmV3IEFycmF5KAotICAgICAgZ2wuQ09MT1JfQVRUQUNITUVOVDAsCi0gICAgICBnbC5ERVBU
SF9BVFRBQ0hNRU5ULAotICAgICAgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULAotICAgICAgZ2wuREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi0gICk7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsK
LSAgICBmb3IgKHZhciBpaSA9IDE7IGlpIDwgZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9B
VFRBQ0hNRU5UUyk7ICsraWkpIHsKLSAgICAgIHZhbGlkQXR0YWNobWVudHNGb3JGQkF0dGFjaG1l
bnRbdmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVudC5sZW5ndGhdID0gZ2wuQ09MT1JfQVRU
QUNITUVOVDAgKyBpaTsKICAgICB9Ci0gIH0KLSAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAg
ICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLAotICAgICAgImF0dGFjaG1lbnQi
LAotICAgICAgdmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVudCwKLSAgICAgIGZ1bmN0aW9u
KGF0dGFjaG1lbnQpIHsKLSAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVudCwgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfVFlQRSk7Ci0gICAgICB9Ci0gICk7Ci0gIGlmIChjb250ZXh0VmVyc2lv
biA+IDEpIHsKLSAgICAvLyB0ZXN0IGRlZmF1bHQgZnJhbWVidWZmZXIKLSAgICBnbC5iaW5kRnJh
bWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwotICAgIHNob3VsZEJlKCdnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVU
RScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIo
Z2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNU
X1RZUEUpJywgJ2dsLkZSQU1FQlVGRkVSX0RFRkFVTFQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJf
REVGQVVMVCcpOwotICAgIGlmICh0ZXN0Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkKLSAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUp
JywgJ2dsLkZSQU1FQlVGRkVSX0RFRkFVTFQnKTsKLSAgICBlbHNlCi0gICAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5T
VEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05F
Jyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
UkVEX1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfR1JFRU5fU0laRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJB
Q0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSknKTsKLSAgICBzaG91bGRC
ZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSknKTsK
LSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01Q
T05FTlRfVFlQRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgs
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkRFUFRILCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5H
KScpOwotICAgIGlmICh0ZXN0Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkgewotICAgICAgc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9T
SVpFKScpOwotICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJ
TCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKLSAgICAgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICB9IGVsc2UgewotICAgICAg
d3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5D
SUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9TSVpFKScpOwotICAgICAgd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUws
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgICB3dHUu
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBF
KScsICdnbC5SRU5ERVJCVUZGRVInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICdyZW5kZXJidWZmZXInKTsK
KyAgICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FU
VEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLlJF
TkRFUkJVRkZFUicpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICdyZW5kZXJidWZmZXInKTsKKyAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7CisgICAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5E
RVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNU
X05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FU
VEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSknKTsKKyAgICAg
IHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfU1RFTkNJTF9TSVpFKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFD
SE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAg
ICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9DT0xPUl9FTkNPRElORyknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FU
VEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Cisg
ICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAgIHNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAgfQorICAgIGxldCB2YWxpZFBhcmFtZXRlcnNG
b3JGQkF0dGFjaG1lbnQgPQorICAgICAgICBbIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JK
RUNUX1RZUEUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUwsCisg
ICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0UK
KyAgICAgICAgXTsKKyAgICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICB2YWxpZFBh
cmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQgPSB2YWxpZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQu
Y29uY2F0KFsKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFLAor
ICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSwKKyAgICAgICAg
ICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSwKKyAgICAgICAgICBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9ERVBUSF9TSVpFLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfU1RFTkNJTF9TSVpFLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09N
UE9ORU5UX1RZUEUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9F
TkNPRElORywKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZ
RVIKKyAgICAgIF0pOwogICAgIH0KLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgIGF3YWl0
IHRlc3RJbnZhbGlkQXJndW1lbnQoCiAgICAgICAgICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIiLAogICAgICAgICAicGFyYW1ldGVyIiwKICAgICAgICAgdmFsaWRQYXJhbWV0ZXJz
Rm9yRkJBdHRhY2htZW50LAogICAgICAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAgICAgICAg
ICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5CQUNLLCBwYXJhbWV0ZXIpOworICAgICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1F
TlQsIHBhcmFtZXRlcik7CiAgICAgICAgIH0KICAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1l
bnQoCisgICAgbGV0IHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudCA9IFtnbC5GUkFNRUJVRkZF
Ul07CisgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgICAgdmFsaWRUYXJnZXRzRm9y
RkJBdHRhY2htZW50ID0gdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50LmNvbmNhdChbZ2wuUkVB
RF9GUkFNRUJVRkZFUiwgZ2wuRFJBV19GUkFNRUJVRkZFUl0pOworICAgIH0KKyAgICBhd2FpdCB0
ZXN0SW52YWxpZEFyZ3VtZW50KAogICAgICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyIiwKICAgICAgICAgInRhcmdldCIsCiAgICAgICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0
YWNobWVudCwKICAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICAgICAgcmV0dXJuIGds
LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGdsLkJBQ0ssIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpOworICAgICAgICAgIHJldHVybiBnbC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5DT0xPUl9BVFRBQ0hN
RU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKICAgICAgICAgfQog
ICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICBsZXQgdmFsaWRBdHRhY2htZW50
c0ZvckZCQXR0YWNobWVudCA9IG5ldyBBcnJheSgKKyAgICAgICAgZ2wuQ09MT1JfQVRUQUNITUVO
VDAsCisgICAgICAgIGdsLkRFUFRIX0FUVEFDSE1FTlQsCisgICAgICAgIGdsLlNURU5DSUxfQVRU
QUNITUVOVCwKKyAgICAgICAgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCisgICAgKTsKKyAg
ICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICBmb3IgKGxldCBpaSA9IDE7IGlpIDwg
Z2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyk7ICsraWkpIHsKKyAgICAg
ICAgdmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVudFt2YWxpZEF0dGFjaG1lbnRzRm9yRkJB
dHRhY2htZW50Lmxlbmd0aF0gPSBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGlpOworICAgICAgfQor
ICAgIH0KKyAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAogICAgICAgICAiZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKICAgICAgICAgImF0dGFjaG1lbnQiLAotICAgICAg
ICBbIGdsLkJBQ0ssCi0gICAgICAgICAgZ2wuREVQVEgsCi0gICAgICAgICAgZ2wuU1RFTkNJTAot
ICAgICAgICBdLAorICAgICAgICB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50LAogICAg
ICAgICBmdW5jdGlvbihhdHRhY2htZW50KSB7CiAgICAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVudCwgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7CiAgICAgICAgIH0KICAgICApOwot
ICB9Ci19Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLWRlYnVnKCIi
KTsKLWRlYnVnKCJ0ZXN0IGdldEF0dGFjaGVkU2hhZGVycyIpOwotdmFyIHN0YW5kYXJkVmVydCA9
IHd0dS5sb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpOwotdmFyIHN0YW5kYXJkRnJhZyA9IHd0
dS5sb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlcihnbCk7Ci12YXIgc3RhbmRhcmRQcm9ncmFtID0g
Z2wuY3JlYXRlUHJvZ3JhbSgpOwotZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwgc3Rh
bmRhcmRWZXJ0KTsKLWdsLmF0dGFjaFNoYWRlcihzdGFuZGFyZFByb2dyYW0sIHN0YW5kYXJkRnJh
Zyk7Ci1nbC5saW5rUHJvZ3JhbShzdGFuZGFyZFByb2dyYW0pOwotdmFyIHNoYWRlcnMgPSBnbC5n
ZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRQcm9ncmFtKTsKLXNob3VsZEJlKCdzaGFkZXJzLmxl
bmd0aCcsICcyJyk7Ci1zaG91bGRCZVRydWUoJ3NoYWRlcnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYm
IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0
ICYmIHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFnJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7Ci1zaG91bGRUaHJvdygnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKG51bGwp
Jyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1zaG91bGRUaHJvdygn
Z2wuZ2V0QXR0YWNoZWRTaGFkZXJzKHN0YW5kYXJkVmVydCknKTsKLXd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0UHJvZ3Jh
bVBhcmFtZXRlciIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQ
cm9ncmFtLCBnbC5ERUxFVEVfU1RBVFVTKScsICdmYWxzZScpOwotc2hvdWxkQmUoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScp
Owotc2hvdWxkQmUoJ3R5cGVvZiBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3Jh
bSwgZ2wuVkFMSURBVEVfU1RBVFVTKScsICciYm9vbGVhbiInKTsKLXNob3VsZEJlKCdnbC5nZXRQ
cm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuQVRUQUNIRURfU0hBREVSUyknLCAn
MicpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBn
bC5BQ1RJVkVfQVRUUklCVVRFUyknLCAnMicpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJh
bWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STVMpJywgJzEnKTsKLWlmIChj
b250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwot
ICBnbC5iaW5kQnVmZmVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGJ1ZmZlcik7Ci0g
IGdsLmJ1ZmZlckRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMTAyNCwgZ2wuRFlO
QU1JQ19EUkFXKTsKLSAgdmFyIHVuaWZvcm1CbG9ja1Byb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1C
bG9ja1Byb2dyYW0oZ2wpOwotICB2YXIgdHJhbnNmb3JtRmVlZGJhY2tWYXJzID0gWyJub3JtYWwi
LCAiZWNQb3NpdGlvbiJdOwotICBnbC50cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKHVuaWZvcm1C
bG9ja1Byb2dyYW0sIHRyYW5zZm9ybUZlZWRiYWNrVmFycywgZ2wuSU5URVJMRUFWRURfQVRUUklC
Uyk7Ci0gIGdsLmxpbmtQcm9ncmFtKHVuaWZvcm1CbG9ja1Byb2dyYW0pOwotICBzaG91bGRCZSgn
Z2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknLCAndHJ1ZScpOwotICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5OT19FUlJPUicp
OwotICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFt
LCBnbC5BQ1RJVkVfVU5JRk9STV9CTE9DS1MpJywgJzEnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIodW5pZm9ybUJsb2NrUHJvZ3JhbSwgZ2wuVFJBTlNGT1JNX0ZFRURCQUNL
X1ZBUllJTkdTKScsICcyJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVu
aWZvcm1CbG9ja1Byb2dyYW0sIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSknLCAn
Z2wuSU5URVJMRUFWRURfQVRUUklCUycpOwotfQotdmFyIHByb2dyYW0gPSBzdGFuZGFyZFByb2dy
YW07Ci12YXIgdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIgPSBbCi0gICAgZ2wuREVMRVRF
X1NUQVRVUywKLSAgICBnbC5MSU5LX1NUQVRVUywKLSAgICBnbC5WQUxJREFURV9TVEFUVVMsCi0g
ICAgZ2wuQVRUQUNIRURfU0hBREVSUywKLSAgICBnbC5BQ1RJVkVfQVRUUklCVVRFUywKLSAgICBn
bC5BQ1RJVkVfVU5JRk9STVMKLV07Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIHZhbGlk
QXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVyID0gdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIu
Y29uY2F0KFsKLSAgICAgIGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUywKLSAgICAgIGdsLlRSQU5T
Rk9STV9GRUVEQkFDS19WQVJZSU5HUywKLSAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfTU9ERQotICBdKTsKLSAgcHJvZ3JhbSA9IHVuaWZvcm1CbG9ja1Byb2dyYW07Ci19Ci10ZXN0
SW52YWxpZEFyZ3VtZW50KAotICAgICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwKLSAgICAicGFyYW1l
dGVyIiwKLSAgICB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlciwKLSAgICBmdW5jdGlvbihw
YXJhbWV0ZXIpIHsKLSAgICAgIHJldHVybiBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0s
IHBhcmFtZXRlcik7Ci0gICAgfQotKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKLQotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
Iik7Ci1zaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKScsICcyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCkn
LCAnMicpOwotLy8gTm90ZTogd2UgY2FuJ3QgdGVzdCB0aGUgYWN0dWFsIHZhbHVlIG9mIHRoZSBp
bnRlcm5hbCBmb3JtYXQgc2luY2UKLS8vIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhbGxvd2VkIHRv
IGNoYW5nZSBpdC4KLXNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCknKTsKLXNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpJyk7Ci12YXIgY29sb3JidWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKLWdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwot
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotZ2wucmVuZGVyYnVmZmVyU3Rv
cmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAyLCAyKTsKLXNob3VsZEJlTm9uWmVybygn
Z2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVG
RkVSX1JFRF9TSVpFKScpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSknKTsKLXNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSknKTsKLXNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FM
UEhBX1NJWkUpJyk7Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGdsLnJlbmRlcmJ1ZmZl
clN0b3JhZ2VNdWx0aXNhbXBsZShnbC5SRU5ERVJCVUZGRVIsIDQsIGdsLlJHQkE0LCAyLCAyKTsK
LSAgc2hvdWxkQmUoJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9TQU1QTEVTKScsICc0Jyk7Ci19Ci12YXIgdmFsaWRBcnJheUZvclJl
bmRlcmJ1ZmZlciA9IG5ldyBBcnJheSgKLSAgICBnbC5SRU5ERVJCVUZGRVJfV0lEVEgsCi0gICAg
Z2wuUkVOREVSQlVGRkVSX0hFSUdIVCwKLSAgICBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9S
TUFULAotICAgIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSwKLSAgICBnbC5SRU5ERVJCVUZGRVJf
R1JFRU5fU0laRSwKLSAgICBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFLAotICAgIGdsLlJFTkRF
UkJVRkZFUl9BTFBIQV9TSVpFLAotICAgIGdsLlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFLAotICAg
IGdsLlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUKLSk7Ci1pZiAoY29udGV4dFZlcnNpb24gPiAx
KSB7Ci0gIHZhbGlkQXJyYXlGb3JSZW5kZXJidWZmZXJbdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZl
ci5sZW5ndGhdID0gZ2wuUkVOREVSQlVGRkVSX1NBTVBMRVM7Ci19Ci10ZXN0SW52YWxpZEFyZ3Vt
ZW50KAotICAgICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLAotICAgICJwYXJhbWV0ZXIiLAot
ICAgIHZhbGlkQXJyYXlGb3JSZW5kZXJidWZmZXIsCi0gICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7
Ci0gICAgICByZXR1cm4gZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgcGFyYW1ldGVyKTsKLSAgICB9KTsKLXRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgImdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlciIsCi0gICAgInRhcmdldCIsCi0gICAgWyBnbC5SRU5ERVJCVUZG
RVIgXSwKLSAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAgIHJldHVybiBnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpOwotICAgIH0KLSk7
Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLWRlYnVnKCIiKTsKLWRl
YnVnKCJUZXN0IGdldFNoYWRlclBhcmFtZXRlciIpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBh
cmFtZXRlcihzdGFuZGFyZFZlcnQsIGdsLlNIQURFUl9UWVBFKScsICdnbC5WRVJURVhfU0hBREVS
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuREVM
RVRFX1NUQVRVUyknLCAnZmFsc2UnKTsKLXNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIo
c3RhbmRhcmRWZXJ0LCBnbC5DT01QSUxFX1NUQVRVUyknLCAndHJ1ZScpOwotdGVzdEludmFsaWRB
cmd1bWVudCgKLSAgICAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwKLSAgICAicGFyYW1ldGVyIiwKLSAg
ICBbIGdsLkRFTEVURV9TVEFUVVMsCi0gICAgICBnbC5DT01QSUxFX1NUQVRVUywKLSAgICAgIGds
LlNIQURFUl9UWVBFCi0gICAgXSwKLSAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAgICAgIHJl
dHVybiBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBwYXJhbWV0ZXIpOworICAg
IGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIC8vIHRlc3QgZGVmYXVsdCBmcmFtZWJ1
ZmZlcgorICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKKyAg
ICAgIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKScs
ICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVM
VCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JK
RUNUX1RZUEUpJywgJ2dsLkZSQU1FQlVGRkVSX0RFRkFVTFQnKTsKKyAgICAgIGlmICh0ZXN0Q2Fz
ZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkKKyAgICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVM
VCcpOworICAgICAgZWxzZQorICAgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgICAgICBzaG91bGRCZU5v
blplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9SRURfU0laRSknKTsKKyAgICAg
IHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJ
WkUpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9CTFVFX1NJWkUpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRF
UFRILCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUpJyk7CisgICAgICBzaG91
bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFN
RUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQ
RSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRILCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOworICAgICAgc2hvdWxkQmVO
b25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkRFUFRILCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScp
OworICAgICAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7CisgICAgICAgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1NURU5DSUxf
U0laRSknKTsKKyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5T
VEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAg
ICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgICB9IGVsc2Ug
eworICAgICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJB
VElPTiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUpJyk7
CisgICAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScp
OworICAgICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJB
VElPTiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORykn
KTsKKyAgICAgIH0KKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAg
ImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCisgICAgICAgICAgInBhcmFtZXRl
ciIsCisgICAgICAgICAgdmFsaWRQYXJhbWV0ZXJzRm9yRkJBdHRhY2htZW50LAorICAgICAgICAg
IGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgcGFyYW1ldGVy
KTsKKyAgICAgICAgICB9CisgICAgICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVu
dCgKKyAgICAgICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKKyAgICAg
ICAgICAidGFyZ2V0IiwKKyAgICAgICAgICB2YWxpZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQsCisg
ICAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdldCwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7CisgICAgICAgICAgfQorICAgICAgKTsKKyAgICAg
IGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlciIsCisgICAgICAgICAgImF0dGFjaG1lbnQiLAorICAgICAgICAgIFsg
Z2wuQkFDSywKKyAgICAgICAgICAgIGdsLkRFUFRILAorICAgICAgICAgICAgZ2wuU1RFTkNJTAor
ICAgICAgICAgIF0sCisgICAgICAgICAgZnVuY3Rpb24oYXR0YWNobWVudCkgeworICAgICAgICAg
ICAgcmV0dXJuIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgYXR0YWNobWVudCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7
CisgICAgICAgICAgfQorICAgICAgKTsKICAgICB9Ci0pOwotd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOworICB9CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKIAotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0VGV4UGFyYW1ldGVyIik7Ci1nbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLWdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLXNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKScsICdnbC5ORUFSRVNUJyk7Ci1zaG91
bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiknLCAnZ2wuTkVBUkVTVCcpOwotc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUyknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOwotc2hv
dWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
VCknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfQkFTRV9MRVZFTCwgMCk7
Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZV
TkMsIGdsLkxFUVVBTCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9DT01QQVJFX01PREUsIGdsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUpOwotICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFYX0xFVkVMLCAxMCk7Ci0gIGds
LnRleFBhcmFtZXRlcmYoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAxMCk7Ci0g
IGdsLnRleFBhcmFtZXRlcmYoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9ELCAwKTsK
LSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUiwgZ2wu
Q0xBTVBfVE9fRURHRSk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9CQVNFX0xFVkVMKScsICcwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRU
ZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMpJywgJ2ds
LkxFUVVBTCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfQ09NUEFSRV9NT0RFKScsICdnbC5DT01QQVJFX1JFRl9UT19URVhUVVJFJyk7
Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NQVhfTEVWRUwpJywgJzEwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTE9EKScsICcxMCcpOwotICBzaG91bGRCZSgnZ2wu
Z2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0xPRCknLCAnMCcp
OwotICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9SKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQ
YXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFUKScsICdm
YWxzZScpOwotICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUyknLCAnMCcpOwotfQotdmFyIHZhbGlkUGFyYW1ldGVy
c0ZvclRleHR1cmUgPSBbCi0gICAgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLAotICAgIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwKLSAgICBnbC5URVhUVVJFX1dSQVBfUywKLSAgICBnbC5URVhUVVJFX1dS
QVBfVCwKLV07Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIHZhbGlkUGFyYW1ldGVyc0Zv
clRleHR1cmUgPSB2YWxpZFBhcmFtZXRlcnNGb3JUZXh0dXJlLmNvbmNhdChbCi0gICAgICBnbC5U
RVhUVVJFX0JBU0VfTEVWRUwsCi0gICAgICBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywKLSAgICAg
IGdsLlRFWFRVUkVfQ09NUEFSRV9NT0RFLAotICAgICAgZ2wuVEVYVFVSRV9NQVhfTEVWRUwsCi0g
ICAgICBnbC5URVhUVVJFX01BWF9MT0QsCi0gICAgICBnbC5URVhUVVJFX01JTl9MT0QsCi0gICAg
ICBnbC5URVhUVVJFX1dSQVBfUiwKLSAgICAgIGdsLlRFWFRVUkVfSU1NVVRBQkxFX0ZPUk1BVCwK
LSAgICAgIGdsLlRFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUywKLSAgXSk7Ci19Ci10ZXN0SW52YWxp
ZEFyZ3VtZW50KAotICAgICJnZXRUZXhQYXJhbWV0ZXIiLAotICAgICJwYXJhbWV0ZXIiLAotICAg
IHZhbGlkUGFyYW1ldGVyc0ZvclRleHR1cmUsCi0gICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7Ci0g
ICAgICByZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIHBhcmFtZXRlcik7
Ci0gICAgfQotKTsKLXZhciB2YWxpZFRhcmdldHNGb3JUZXh0dXJlID0gWyBnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX0NVQkVfTUFQXTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFs
aWRUYXJnZXRzRm9yVGV4dHVyZSA9IHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUuY29uY2F0KFsgZ2wu
VEVYVFVSRV8zRCwgZ2wuVEVYVFVSRV8yRF9BUlJBWV0pOwotfQotdGVzdEludmFsaWRBcmd1bWVu
dCgKLSAgICAiZ2V0VGV4UGFyYW1ldGVyIiwKLSAgICAidGFyZ2V0IiwKLSAgICB2YWxpZFRhcmdl
dHNGb3JUZXh0dXJlLAotICAgIGZ1bmN0aW9uKHRhcmdldCkgewotICAgICAgcmV0dXJuIGdsLmdl
dFRleFBhcmFtZXRlcih0YXJnZXQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUik7Ci0gICAgfQotKTsK
LXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBk
ZWJ1ZygidGVzdCBnZXRBdHRhY2hlZFNoYWRlcnMiKTsKKyAgd2luZG93LnN0YW5kYXJkVmVydCA9
IHd0dS5sb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpOworICB3aW5kb3cuc3RhbmRhcmRGcmFn
ID0gd3R1LmxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGdsKTsKKyAgd2luZG93LnN0YW5kYXJk
UHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJk
UHJvZ3JhbSwgc3RhbmRhcmRWZXJ0KTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3Jh
bSwgc3RhbmRhcmRGcmFnKTsKKyAgZ2wubGlua1Byb2dyYW0oc3RhbmRhcmRQcm9ncmFtKTsKKyAg
d2luZG93LnNoYWRlcnMgPSBnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRQcm9ncmFtKTsK
KyAgc2hvdWxkQmUoJ3NoYWRlcnMubGVuZ3RoJywgJzInKTsKKyAgc2hvdWxkQmVUcnVlKCdzaGFk
ZXJzWzBdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzFdID09IHN0YW5kYXJkRnJhZyB8fCBz
aGFkZXJzWzFdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzBdID09IHN0YW5kYXJkRnJhZycp
OworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIHNob3VsZFRocm93
KCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMobnVsbCknKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOworICBzaG91bGRUaHJvdygnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKHN0
YW5kYXJkVmVydCknKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwog
Ci1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRVbmlmb3JtIHdpdGggYWxsIHZhcmlhbnRzIG9m
IGRhdGEgdHlwZXMiKTsKLWRlYnVnKCJCb29sZWFuIHVuaWZvcm0gdmFyaWFibGVzIik7Ci12YXIg
Ym9vbFByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNl
cy9ib29sVW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNo
YWRlci5mcmFnIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihib29sUHJvZ3Jh
bSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBidmFsTG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbCIpOwotdmFyIGJ2YWwyTG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDIiKTsKLXZhciBidmFsM0xvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWwzIik7Ci12YXIgYnZhbDRMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsNCIpOwotZ2wudXNlUHJvZ3Jh
bShib29sUHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoYnZhbExvYywgMSk7Ci1nbC51bmlmb3JtMmko
YnZhbDJMb2MsIDEsIDApOwotZ2wudW5pZm9ybTNpKGJ2YWwzTG9jLCAxLCAwLCAxKTsKLWdsLnVu
aWZvcm00aShidmFsNExvYywgMSwgMCwgMSwgMCk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbExv
YyknLCAndHJ1ZScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWwy
TG9jKScsICdbdHJ1ZSwgZmFsc2VdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJv
Z3JhbSwgYnZhbDNMb2MpJywgJ1t0cnVlLCBmYWxzZSwgdHJ1ZV0nKTsKLXNob3VsZEJlKCdnbC5n
ZXRVbmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsNExvYyknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBm
YWxzZV0nKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWco
IiIpOworICBkZWJ1ZygiVGVzdCBnZXRQcm9ncmFtUGFyYW1ldGVyIik7CisgIHNob3VsZEJlKCdn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuREVMRVRFX1NUQVRVUykn
LCAnZmFsc2UnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQ
cm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworICBzaG91bGRCZSgndHlwZW9mIGds
LmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5WQUxJREFURV9TVEFUVVMp
JywgJyJib29sZWFuIicpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFu
ZGFyZFByb2dyYW0sIGdsLkFUVEFDSEVEX1NIQURFUlMpJywgJzInKTsKKyAgc2hvdWxkQmUoJ2ds
LmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BQ1RJVkVfQVRUUklCVVRF
UyknLCAnMicpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFBy
b2dyYW0sIGdsLkFDVElWRV9VTklGT1JNUyknLCAnMScpOworICBpZiAoY29udGV4dFZlcnNpb24g
PiAxKSB7CisgICAgbGV0IGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRC
dWZmZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgYnVmZmVyKTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDEwMjQsIGdsLkRZTkFNSUNfRFJB
Vyk7CisgICAgd2luZG93LnVuaWZvcm1CbG9ja1Byb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9j
a1Byb2dyYW0oZ2wpOworICAgIGxldCB0cmFuc2Zvcm1GZWVkYmFja1ZhcnMgPSBbIm5vcm1hbCIs
ICJlY1Bvc2l0aW9uIl07CisgICAgZ2wudHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyh1bmlmb3Jt
QmxvY2tQcm9ncmFtLCB0cmFuc2Zvcm1GZWVkYmFja1ZhcnMsIGdsLklOVEVSTEVBVkVEX0FUVFJJ
QlMpOworICAgIGdsLmxpbmtQcm9ncmFtKHVuaWZvcm1CbG9ja1Byb2dyYW0pOworICAgIHNob3Vs
ZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLkxJTktf
U1RBVFVTKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9f
RVJST1InKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxv
Y2tQcm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STV9CTE9DS1MpJywgJzEnKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfVkFSWUlOR1MpJywgJzInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVG
RkVSX01PREUpJywgJ2dsLklOVEVSTEVBVkVEX0FUVFJJQlMnKTsKKyAgfQorICB3aW5kb3cucHJv
Z3JhbSA9IHN0YW5kYXJkUHJvZ3JhbTsKKyAgbGV0IHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1l
dGVyID0gWworICAgICAgZ2wuREVMRVRFX1NUQVRVUywKKyAgICAgIGdsLkxJTktfU1RBVFVTLAor
ICAgICAgZ2wuVkFMSURBVEVfU1RBVFVTLAorICAgICAgZ2wuQVRUQUNIRURfU0hBREVSUywKKyAg
ICAgIGdsLkFDVElWRV9BVFRSSUJVVEVTLAorICAgICAgZ2wuQUNUSVZFX1VOSUZPUk1TCisgIF07
CisgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBh
cmFtZXRlciA9IHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVyLmNvbmNhdChbCisgICAgICAg
IGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUywKKyAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNL
X1ZBUllJTkdTLAorICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREUKKyAg
ICBdKTsKKyAgICBwcm9ncmFtID0gdW5pZm9ybUJsb2NrUHJvZ3JhbTsKKyAgfQorICBhd2FpdCB0
ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFByb2dyYW1QYXJhbWV0ZXIiLAorICAgICAg
InBhcmFtZXRlciIsCisgICAgICB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlciwKKyAgICAg
IGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICByZXR1cm4gZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihwcm9ncmFtLCBwYXJhbWV0ZXIpOworICAgICAgfQorICApOworICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLWRlYnVnKCJJbnRlZ2VyIHVuaWZvcm0gdmFyaWFi
bGVzIik7Ci12YXIgaW50UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4v
Li4vcmVzb3VyY2VzL2ludFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9v
cFVuaWZvcm1TaGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIo
aW50UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBpdmFsTG9jID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKGludFByb2dyYW0sICJpdmFsIik7Ci12YXIgaXZhbDJMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWwyIik7Ci12YXIgaXZhbDNMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWwzIik7Ci12YXIgaXZhbDRM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWw0Iik7Ci1nbC51c2VQ
cm9ncmFtKGludFByb2dyYW0pOwotZ2wudW5pZm9ybTFpKGl2YWxMb2MsIDEpOwotZ2wudW5pZm9y
bTJpKGl2YWwyTG9jLCAyLCAzKTsKLWdsLnVuaWZvcm0zaShpdmFsM0xvYywgNCwgNSwgNik7Ci1n
bC51bmlmb3JtNGkoaXZhbDRMb2MsIDcsIDgsIDksIDEwKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2
YWxMb2MpJywgJzEnKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWwy
TG9jKScsICdbMiwgM10nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2
YWwzTG9jKScsICdbNCwgNSwgNl0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dy
YW0sIGl2YWw0TG9jKScsICdbNywgOCwgOSwgMTBdJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIlRlc3QgZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyIik7CisgIHNob3VsZEJlKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpJywgJzInKTsKKyAgc2hvdWxk
QmUoJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9IRUlHSFQpJywgJzInKTsKKyAgLy8gTm90ZTogd2UgY2FuJ3QgdGVzdCB0aGUgYWN0
dWFsIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBmb3JtYXQgc2luY2UKKyAgLy8gdGhlIGltcGxlbWVu
dGF0aW9uIGlzIGFsbG93ZWQgdG8gY2hhbmdlIGl0LgorICBzaG91bGRCZU5vblplcm8oJ2dsLmdl
dFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9J
TlRFUk5BTF9GT1JNQVQpJyk7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpJyk7
CisgIGxldCBjb2xvcmJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wu
UkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CisgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SR0JBNCwgMiwgMik7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFKScpOworICBz
aG91bGRCZU5vblplcm8oJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZG
RVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKScpOworICBzaG91bGRCZU5vblplcm8oJ2ds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZF
Ul9CTFVFX1NJWkUpJyk7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpJyk7Cisg
IGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlTXVs
dGlzYW1wbGUoZ2wuUkVOREVSQlVGRkVSLCA0LCBnbC5SR0JBNCwgMiwgMik7CisgICAgc2hvdWxk
QmUoJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9TQU1QTEVTKScsICc0Jyk7CisgIH0KKyAgbGV0IHZhbGlkQXJyYXlGb3JSZW5kZXJi
dWZmZXIgPSBuZXcgQXJyYXkoCisgICAgICBnbC5SRU5ERVJCVUZGRVJfV0lEVEgsCisgICAgICBn
bC5SRU5ERVJCVUZGRVJfSEVJR0hULAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZP
Uk1BVCwKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSwKKyAgICAgIGdsLlJFTkRFUkJV
RkZFUl9HUkVFTl9TSVpFLAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSwKKyAgICAg
IGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFLAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0RFUFRI
X1NJWkUsCisgICAgICBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFCisgICk7CisgIGlmIChj
b250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2YWxpZEFycmF5Rm9yUmVuZGVyYnVmZmVyW3ZhbGlk
QXJyYXlGb3JSZW5kZXJidWZmZXIubGVuZ3RoXSA9IGdsLlJFTkRFUkJVRkZFUl9TQU1QTEVTOwor
ICB9CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyIiwKKyAgICAgICJwYXJhbWV0ZXIiLAorICAgICAgdmFsaWRBcnJheUZvclJlbmRl
cmJ1ZmZlciwKKyAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICByZXR1cm4gZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgcGFyYW1ldGVyKTsKKyAg
ICAgIH0pOworICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlciIsCisgICAgICAidGFyZ2V0IiwKKyAgICAgIFsgZ2wuUkVOREVSQlVGRkVS
IF0sCisgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIGdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcih0YXJnZXQsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCk7CisgICAgICB9
CisgICk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotZGVidWco
IkZsb2F0IHVuaWZvcm0gdmFyaWFibGVzIik7Ci12YXIgZmxvYXRQcm9ncmFtID0gd3R1LmxvYWRQ
cm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZl
cnQiLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3VsZEJl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGZsb2F0UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywg
J3RydWUnKTsKLXZhciBmdmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3Jh
bSwgImZ2YWwiKTsKLXZhciBmdmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFBy
b2dyYW0sICJmdmFsMiIpOwotdmFyIGZ2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZs
b2F0UHJvZ3JhbSwgImZ2YWwzIik7Ci12YXIgZnZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24oZmxvYXRQcm9ncmFtLCAiZnZhbDQiKTsKLWdsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKTsK
LWdsLnVuaWZvcm0xZihmdmFsTG9jLCAxMSk7Ci1nbC51bmlmb3JtMmYoZnZhbDJMb2MsIDEyLCAx
Myk7Ci1nbC51bmlmb3JtM2YoZnZhbDNMb2MsIDE0LCAxNSwgMTYpOwotZ2wudW5pZm9ybTRmKGZ2
YWw0TG9jLCAxNywgMTgsIDE5LCAyMCk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWxMb2MpJywg
JzExJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwyTG9jKScs
ICdbMTIsIDEzXScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFs
M0xvYyknLCAnWzE0LCAxNSwgMTZdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFBy
b2dyYW0sIGZ2YWw0TG9jKScsICdbMTcsIDE4LCAxOSwgMjBdJyk7Ci13dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIlRlc3QgZ2V0U2hh
ZGVyUGFyYW1ldGVyIik7CisgIHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRh
cmRWZXJ0LCBnbC5TSEFERVJfVFlQRSknLCAnZ2wuVkVSVEVYX1NIQURFUicpOworICBzaG91bGRC
ZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuREVMRVRFX1NUQVRVUykn
LCAnZmFsc2UnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZl
cnQsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJn
dW1lbnQoCisgICAgICAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwKKyAgICAgICJwYXJhbWV0ZXIiLAor
ICAgICAgWyBnbC5ERUxFVEVfU1RBVFVTLAorICAgICAgICBnbC5DT01QSUxFX1NUQVRVUywKKyAg
ICAgICAgZ2wuU0hBREVSX1RZUEUKKyAgICAgIF0sCisgICAgICBmdW5jdGlvbihwYXJhbWV0ZXIp
IHsKKyAgICAgICAgcmV0dXJuIGdsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIHBh
cmFtZXRlcik7CisgICAgICB9CisgICk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKIAotZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMiKTsKLXZhciBzYW1w
bGVyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2Vz
L25vb3BVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXJVbmlmb3Jt
U2hhZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHNhbXBsZXJQ
cm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIHMyRFZhbExvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVyUHJvZ3JhbSwgInMyRCIpOwotdmFyIHNDdWJlVmFsTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJQcm9ncmFtLCAic0N1YmUiKTsKLWdsLnVz
ZVByb2dyYW0oc2FtcGxlclByb2dyYW0pOwotZ2wudW5pZm9ybTFpKHMyRFZhbExvYywgMCk7Ci1n
bC51bmlmb3JtMWkoc0N1YmVWYWxMb2MsIDEpOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHMyRFZh
bExvYyknLCAnMCcpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHND
dWJlVmFsTG9jKScsICcxJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7
CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIlRlc3QgZ2V0VGV4UGFyYW1ldGVyIik7CisgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFS
RVNUKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
UywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICBzaG91bGRCZSgnZ2wuZ2V0
VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiknLCAnZ2wu
TkVBUkVTVCcpOworICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiknLCAnZ2wuTkVBUkVTVCcpOworICBzaG91bGRCZSgnZ2wu
Z2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TKScsICdnbC5D
TEFNUF9UT19FREdFJyk7CisgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKKyAgaWYgKGNv
bnRleHRWZXJzaW9uID4gMSkgeworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9CQVNFX0xFVkVMLCAwKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLCBnbC5MRVFVQUwpOworICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUsIGdsLkNPTVBB
UkVfUkVGX1RPX1RFWFRVUkUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NQVhfTEVWRUwsIDEwKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJmKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFYX0xPRCwgMTApOworICAgIGdsLnRleFBhcmFtZXRlcmYoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9ELCAwKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9SLCBnbC5DTEFNUF9UT19FREdFKTsKKyAg
ICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
QkFTRV9MRVZFTCknLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMpJywgJ2dsLkxFUVVBTCcpOworICAg
IHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9D
T01QQVJFX01PREUpJywgJ2dsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFYX0xFVkVM
KScsICcxMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NQVhfTE9EKScsICcxMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQ
YXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9EKScsICcwJyk7CisgICAg
c2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dS
QVBfUiknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJh
bWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFUKScsICdmYWxz
ZScpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9JTU1VVEFCTEVfTEVWRUxTKScsICcwJyk7CisgIH0KKyAgbGV0IHZhbGlkUGFyYW1l
dGVyc0ZvclRleHR1cmUgPSBbCisgICAgICBnbC5URVhUVVJFX01BR19GSUxURVIsCisgICAgICBn
bC5URVhUVVJFX01JTl9GSUxURVIsCisgICAgICBnbC5URVhUVVJFX1dSQVBfUywKKyAgICAgIGds
LlRFWFRVUkVfV1JBUF9ULAorICBdOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAg
dmFsaWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSA9IHZhbGlkUGFyYW1ldGVyc0ZvclRleHR1cmUuY29u
Y2F0KFsKKyAgICAgICAgZ2wuVEVYVFVSRV9CQVNFX0xFVkVMLAorICAgICAgICBnbC5URVhUVVJF
X0NPTVBBUkVfRlVOQywKKyAgICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUsCisgICAgICAg
IGdsLlRFWFRVUkVfTUFYX0xFVkVMLAorICAgICAgICBnbC5URVhUVVJFX01BWF9MT0QsCisgICAg
ICAgIGdsLlRFWFRVUkVfTUlOX0xPRCwKKyAgICAgICAgZ2wuVEVYVFVSRV9XUkFQX1IsCisgICAg
ICAgIGdsLlRFWFRVUkVfSU1NVVRBQkxFX0ZPUk1BVCwKKyAgICAgICAgZ2wuVEVYVFVSRV9JTU1V
VEFCTEVfTEVWRUxTLAorICAgIF0pOworICB9CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQo
CisgICAgICAiZ2V0VGV4UGFyYW1ldGVyIiwKKyAgICAgICJwYXJhbWV0ZXIiLAorICAgICAgdmFs
aWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSwKKyAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAg
ICAgICByZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIHBhcmFtZXRlcik7
CisgICAgICB9CisgICk7CisgIGxldCB2YWxpZFRhcmdldHNGb3JUZXh0dXJlID0gWyBnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX0NVQkVfTUFQXTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkg
eworICAgIHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUgPSB2YWxpZFRhcmdldHNGb3JUZXh0dXJlLmNv
bmNhdChbIGdsLlRFWFRVUkVfM0QsIGdsLlRFWFRVUkVfMkRfQVJSQVldKTsKKyAgfQorICBhd2Fp
dCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFRleFBhcmFtZXRlciIsCisgICAgICAi
dGFyZ2V0IiwKKyAgICAgIHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUsCisgICAgICBmdW5jdGlvbih0
YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIGdsLmdldFRleFBhcmFtZXRlcih0YXJnZXQsIGdsLlRF
WFRVUkVfTUFHX0ZJTFRFUik7CisgICAgICB9CisgICk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIk1hdHJpeCB1bmlmb3JtIHZhcmlhYmxlcyIpOwot
dmFyIG1hdFByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291
cmNlcy9tYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3Jt
U2hhZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKG1hdFByb2dy
YW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci12YXIgbXZhbDJMb2MgPSBnbC5nZXRVbmlm
b3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwyIik7Ci12YXIgbXZhbDNMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwzIik7Ci12YXIgbXZhbDRMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWw0Iik7Ci1nbC51c2VQcm9ncmFtKG1h
dFByb2dyYW0pOwotZ2wudW5pZm9ybU1hdHJpeDJmdihtdmFsMkxvYywgZmFsc2UsIFsxLCAyLCAz
LCA0XSk7Ci1nbC51bmlmb3JtTWF0cml4M2Z2KG12YWwzTG9jLCBmYWxzZSwgWzUsIDYsIDcsIDgs
IDksIDEwLCAxMSwgMTIsIDEzXSk7Ci1nbC51bmlmb3JtTWF0cml4NGZ2KG12YWw0TG9jLCBmYWxz
ZSwgWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAy
NywgMjgsIDI5XSk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1zaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsMkxvYyknLCAnWzEsIDIsIDMsIDRd
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsM0xvYyknLCAnWzUs
IDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0o
bWF0UHJvZ3JhbSwgbXZhbDRMb2MpJywgJ1sxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOV0nKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBnZXRVbmlmb3Jt
IHdpdGggYWxsIHZhcmlhbnRzIG9mIGRhdGEgdHlwZXMiKTsKKyAgZGVidWcoIkJvb2xlYW4gdW5p
Zm9ybSB2YXJpYWJsZXMiKTsKKyAgd2luZG93LmJvb2xQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFt
RnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvYm9vbFVuaWZvcm1TaGFkZXIudmVydCIsICIu
Li8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihib29sUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUn
KTsKKyAgd2luZG93LmJ2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0s
ICJidmFsIik7CisgIHdpbmRvdy5idmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihib29s
UHJvZ3JhbSwgImJ2YWwyIik7CisgIHdpbmRvdy5idmFsM0xvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihib29sUHJvZ3JhbSwgImJ2YWwzIik7CisgIHdpbmRvdy5idmFsNExvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWw0Iik7CisgIGdsLnVzZVByb2dyYW0oYm9v
bFByb2dyYW0pOworICBnbC51bmlmb3JtMWkoYnZhbExvYywgMSk7CisgIGdsLnVuaWZvcm0yaShi
dmFsMkxvYywgMSwgMCk7CisgIGdsLnVuaWZvcm0zaShidmFsM0xvYywgMSwgMCwgMSk7CisgIGds
LnVuaWZvcm00aShidmFsNExvYywgMSwgMCwgMSwgMCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0s
IGJ2YWxMb2MpJywgJ3RydWUnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dy
YW0sIGJ2YWwyTG9jKScsICdbdHJ1ZSwgZmFsc2VdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlm
b3JtKGJvb2xQcm9ncmFtLCBidmFsM0xvYyknLCAnW3RydWUsIGZhbHNlLCB0cnVlXScpOworICBz
aG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbDRMb2MpJywgJ1t0cnVlLCBm
YWxzZSwgdHJ1ZSwgZmFsc2VdJyk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKIAotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICBkZWJ1ZygiVW5zaWduZWQgSW50
ZWdlciB1bmlmb3JtIHZhcmlhYmxlcyIpOwotICB2YXIgdWludFByb2dyYW0gPSB3dHUubG9hZFBy
b2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy91aW50VW5pZm9ybVNoYWRlci52ZXJ0
IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy5mcmFnIik7Ci0gIHNob3Vs
ZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykn
LCAndHJ1ZScpOwotICB2YXIgdXZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbih1aW50UHJv
Z3JhbSwgInV2YWwiKTsKLSAgdmFyIHV2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHVp
bnRQcm9ncmFtLCAidXZhbDIiKTsKLSAgdmFyIHV2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHVpbnRQcm9ncmFtLCAidXZhbDMiKTsKLSAgdmFyIHV2YWw0TG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKHVpbnRQcm9ncmFtLCAidXZhbDQiKTsKLSAgZ2wudXNlUHJvZ3JhbSh1aW50UHJv
Z3JhbSk7Ci0gIGdsLnVuaWZvcm0xdWkodXZhbExvYywgMSk7Ci0gIGdsLnVuaWZvcm0ydWkodXZh
bDJMb2MsIDIsIDMpOwotICBnbC51bmlmb3JtM3VpKHV2YWwzTG9jLCA0LCA1LCA2KTsKLSAgZ2wu
dW5pZm9ybTR1aSh1dmFsNExvYywgNywgOCwgOSwgMTApOworICBkZWJ1ZygiSW50ZWdlciB1bmlm
b3JtIHZhcmlhYmxlcyIpOworICB3aW5kb3cuaW50UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZy
b21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL2ludFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8u
Li9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwor
ICB3aW5kb3cuaXZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZh
bCIpOworICB3aW5kb3cuaXZhbDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3Jh
bSwgIml2YWwyIik7CisgIHdpbmRvdy5pdmFsM0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihp
bnRQcm9ncmFtLCAiaXZhbDMiKTsKKyAgd2luZG93Lml2YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKGludFByb2dyYW0sICJpdmFsNCIpOworICBnbC51c2VQcm9ncmFtKGludFByb2dyYW0p
OworICBnbC51bmlmb3JtMWkoaXZhbExvYywgMSk7CisgIGdsLnVuaWZvcm0yaShpdmFsMkxvYywg
MiwgMyk7CisgIGdsLnVuaWZvcm0zaShpdmFsM0xvYywgNCwgNSwgNik7CisgIGdsLnVuaWZvcm00
aShpdmFsNExvYywgNywgOCwgOSwgMTApOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsTG9j
KScsICcxJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsMkxv
YyknLCAnWzIsIDNdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1
dmFsM0xvYyknLCAnWzQsIDUsIDZdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQ
cm9ncmFtLCB1dmFsNExvYyknLCAnWzcsIDgsIDksIDEwXScpOworICBzaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsTG9jKScsICcxJyk7CisgIHNob3VsZEJlKCdnbC5nZXRV
bmlmb3JtKGludFByb2dyYW0sIGl2YWwyTG9jKScsICdbMiwgM10nKTsKKyAgc2hvdWxkQmUoJ2ds
LmdldFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZhbDNMb2MpJywgJ1s0LCA1LCA2XScpOworICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsNExvYyknLCAnWzcsIDgsIDksIDEw
XScpOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLSAgZGVidWco
Ik1hdHJpeCB1bmlmb3JtIHZhcmlhYmxlcyBmb3IgV2ViR0wgMiIpOworICBkZWJ1ZygiRmxvYXQg
dW5pZm9ybSB2YXJpYWJsZXMiKTsKKyAgd2luZG93LmZsb2F0UHJvZ3JhbSA9IHd0dS5sb2FkUHJv
Z3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0
IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNob3VsZEJl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGZsb2F0UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywg
J3RydWUnKTsKKyAgd2luZG93LmZ2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQ
cm9ncmFtLCAiZnZhbCIpOworICB3aW5kb3cuZnZhbDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24oZmxvYXRQcm9ncmFtLCAiZnZhbDIiKTsKKyAgd2luZG93LmZ2YWwzTG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWwzIik7CisgIHdpbmRvdy5mdmFsNExvYyA9
IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsNCIpOworICBnbC51c2VQ
cm9ncmFtKGZsb2F0UHJvZ3JhbSk7CisgIGdsLnVuaWZvcm0xZihmdmFsTG9jLCAxMSk7CisgIGds
LnVuaWZvcm0yZihmdmFsMkxvYywgMTIsIDEzKTsKKyAgZ2wudW5pZm9ybTNmKGZ2YWwzTG9jLCAx
NCwgMTUsIDE2KTsKKyAgZ2wudW5pZm9ybTRmKGZ2YWw0TG9jLCAxNywgMTgsIDE5LCAyMCk7Cisg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgc2hvdWxkQmUoJ2dsLmdl
dFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsTG9jKScsICcxMScpOworICBzaG91bGRCZSgnZ2wu
Z2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwyTG9jKScsICdbMTIsIDEzXScpOworICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwzTG9jKScsICdbMTQsIDE1LCAx
Nl0nKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsNExvYykn
LCAnWzE3LCAxOCwgMTksIDIwXScpOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7CiAKLSAgdmFyIG1hdEZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9t
RmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9tYXRGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLnZlcnQi
LCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLmZyYWciKTsKLSAgc2hvdWxk
QmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobWF0Rm9yV2ViR0wyUHJvZ3JhbSwgZ2wuTElOS19T
VEFUVVMpJywgJ3RydWUnKTsKLSAgdmFyIG12YWwyeDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwyeDMiKTsKLSAgdmFyIG12YWwyeDRMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwyeDQiKTsKLSAg
dmFyIG12YWwzeDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3Jh
bSwgIm12YWwzeDIiKTsKLSAgdmFyIG12YWwzeDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
bWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwzeDQiKTsKLSAgdmFyIG12YWw0eDJMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWw0eDIiKTsKLSAgdmFy
IG12YWw0eDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwg
Im12YWw0eDMiKTsKLSAgZ2wudXNlUHJvZ3JhbShtYXRGb3JXZWJHTDJQcm9ncmFtKTsKLSAgZ2wu
dW5pZm9ybU1hdHJpeDJ4M2Z2KG12YWwyeDNMb2MsIGZhbHNlLCBbMSwgMiwgMywgNCwgNSwgNl0p
OwotICBnbC51bmlmb3JtTWF0cml4Mng0ZnYobXZhbDJ4NExvYywgZmFsc2UsIFs3LCA4LCA5LCAx
MCwgMTEsIDEyLCAxMywgMTRdKTsKLSAgZ2wudW5pZm9ybU1hdHJpeDN4MmZ2KG12YWwzeDJMb2Ms
IGZhbHNlLCBbMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0pOwotICBnbC51bmlmb3JtTWF0cml4M3g0
ZnYobXZhbDN4NExvYywgZmFsc2UsIFsyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5
LCAzMCwgMzEsIDMyXSk7Ci0gIGdsLnVuaWZvcm1NYXRyaXg0eDJmdihtdmFsNHgyTG9jLCBmYWxz
ZSwgWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0pOwotICBnbC51bmlmb3JtTWF0cml4
NHgzZnYobXZhbDR4M0xvYywgZmFsc2UsIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgs
IDQ5LCA1MCwgNTEsIDUyXSk7CisgIGRlYnVnKCJTYW1wbGVyIHVuaWZvcm0gdmFyaWFibGVzIik7
CisgIHdpbmRvdy5zYW1wbGVyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAi
Li4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2Vz
L3NhbXBsZXJVbmlmb3JtU2hhZGVyLmZyYWciKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1Q
YXJhbWV0ZXIoc2FtcGxlclByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7CisgIHdp
bmRvdy5zMkRWYWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oc2FtcGxlclByb2dyYW0sICJz
MkQiKTsKKyAgd2luZG93LnNDdWJlVmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBs
ZXJQcm9ncmFtLCAic0N1YmUiKTsKKyAgZ2wudXNlUHJvZ3JhbShzYW1wbGVyUHJvZ3JhbSk7Cisg
IGdsLnVuaWZvcm0xaShzMkRWYWxMb2MsIDApOworICBnbC51bmlmb3JtMWkoc0N1YmVWYWxMb2Ms
IDEpOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gIHNob3VsZEJl
KCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWwyeDNMb2MpJywgJ1sxLCAy
LCAzLCA0LCA1LCA2XScpOwotICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQ
cm9ncmFtLCBtdmFsMng0TG9jKScsICdbNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XScpOwot
ICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3gyTG9j
KScsICdbMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDN4NExvYyknLCAnWzIxLCAyMiwgMjMsIDI0LCAy
NSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlm
b3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWw0eDJMb2MpJywgJ1szMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwgNDBdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdM
MlByb2dyYW0sIG12YWw0eDNMb2MpJywgJ1s0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgs
IDQ5LCA1MCwgNTEsIDUyXScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyUHJv
Z3JhbSwgczJEVmFsTG9jKScsICcwJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHNhbXBs
ZXJQcm9ncmFtLCBzQ3ViZVZhbExvYyknLCAnMScpOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CiAKLSAgZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMgZm9y
IFdlYkdMMiIpOwotICB2YXIgc2FtcGxlckZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dy
YW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy52ZXJ0
IiwgIi4uLy4uL3Jlc291cmNlcy9zYW1wbGVyRm9yV2ViR0wyVW5pZm9ybVNoYWRlci5mcmFnIik7
Ci0gIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHNhbXBsZXJGb3JXZWJHTDJQcm9n
cmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotICB2YXIgczNEVmFsTG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtLCAiczNEIik7Ci0gIHZhciBz
MkRBcnJheVZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVyRm9yV2ViR0wyUHJv
Z3JhbSwgInMyREFycmF5Iik7Ci0gIGdsLnVzZVByb2dyYW0oc2FtcGxlckZvcldlYkdMMlByb2dy
YW0pOwotICBnbC51bmlmb3JtMWkoczNEVmFsTG9jLCAwKTsKLSAgZ2wudW5pZm9ybTFpKHMyREFy
cmF5VmFsTG9jLCAxKTsKKyAgZGVidWcoIk1hdHJpeCB1bmlmb3JtIHZhcmlhYmxlcyIpOworICB3
aW5kb3cubWF0UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVz
b3VyY2VzL21hdFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZv
cm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihtYXRQ
cm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworICB3aW5kb3cubXZhbDJMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwyIik7CisgIHdpbmRvdy5tdmFs
M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDMiKTsKKyAgd2lu
ZG93Lm12YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFsNCIp
OworICBnbC51c2VQcm9ncmFtKG1hdFByb2dyYW0pOworICBnbC51bmlmb3JtTWF0cml4MmZ2KG12
YWwyTG9jLCBmYWxzZSwgWzEsIDIsIDMsIDRdKTsKKyAgZ2wudW5pZm9ybU1hdHJpeDNmdihtdmFs
M0xvYywgZmFsc2UsIFs1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxM10pOworICBnbC51bmlm
b3JtTWF0cml4NGZ2KG12YWw0TG9jLCBmYWxzZSwgWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIw
LCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XSk7CiAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxl
ckZvcldlYkdMMlByb2dyYW0sIHMzRFZhbExvYyknLCAnMCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgczJEQXJyYXlWYWxMb2MpJywgJzEnKTsK
KyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0UHJvZ3JhbSwgbXZhbDJMb2MpJywgJ1sxLCAy
LCAzLCA0XScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsM0xv
YyknLCAnWzUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXScpOworICBzaG91bGRCZSgnZ2wu
Z2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsNExvYyknLCAnWzE0LCAxNSwgMTYsIDE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XScpOwogICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci19CiAKLWRlYnVnKCIiKTsKLWRlYnVnKCJ0
ZXN0IGdldFZlcnRleEF0dHJpYiIpOwotdmFyIGFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbMSwg
MiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdKTsKLXZh
ciBidWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLWdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCBidWZmZXIpOwotZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGFycmF5LCBnbC5E
WU5BTUlDX0RSQVcpOwotLy8gVmVydGV4IGF0dHJpYnV0ZSAwIGlzIHNwZWNpYWwgaW4gdGhhdCBp
dCBoYXMgbm8gY3VycmVudCBzdGF0ZSwgc28KLS8vIGZldGNoaW5nIEdMX0NVUlJFTlRfVkVSVEVY
X0FUVFJJQiBnZW5lcmF0ZXMgYW4gZXJyb3IuIFVzZSBhdHRyaWJ1dGUKLS8vIDEgZm9yIHRoZXNl
IHRlc3RzIGluc3RlYWQuCi1nbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKLWdsLnZlcnRl
eEF0dHJpYlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLXNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElO
RyknLCAnYnVmZmVyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRF
WF9BVFRSSUJfQVJSQVlfRU5BQkxFRCknLCAndHJ1ZScpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRl
eEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NJWkUpJywgJzQnKTsKLS8vIFN0cmlk
ZSBNVVNUIGJlIHRoZSB2YWx1ZSB0aGUgdXNlciBwdXQgaW4uCi1zaG91bGRCZSgnZ2wuZ2V0VmVy
dGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICcwJyk7Ci1zaG91
bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSkn
LCAnZ2wuRkxPQVQnKTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVY
X0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEKScsICdmYWxzZScpOwotaWYgKGNvbnRleHRWZXJzaW9u
ID4gMSkgewotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUiknLCAnMCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmli
KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUiknLCAnZmFsc2UnKTsKLSAgZ2wudmVy
dGV4QXR0cmliRGl2aXNvcigxLCAyKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IpJywgJzInKTsKLX0KLWdsLnZlcnRleEF0
dHJpYlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAzNiwgMTIpOwotc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSknLCAnMzYn
KTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSKScsICcxMicpOwotZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDEp
Owotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZ
X0VOQUJMRUQpJywgJ2ZhbHNlJyk7Ci1nbC52ZXJ0ZXhBdHRyaWI0ZigxLCA1LCA2LCA3LCA4KTsK
LXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklC
KScsICdbNSwgNiwgNywgOF0nKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFyIGlu
dEFycmF5ID0gbmV3IEludDMyQXJyYXkoWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAx
MSwgMTIsIDEzLCAxNCwgMTUsIDE2XSk7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCBpbnRBcnJheSwgZ2wuRFlOQU1JQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkoMSk7Ci0gIC8vIGZlZWQgZml4ZWQtcG9pbnQgZGF0YSB0byBidWZmZXIKLSAgZ2wudmVydGV4
QXR0cmliSVBvaW50ZXIoMSwgNCwgZ2wuSU5ULCBmYWxzZSwgMCwgMCk7Ci0gIHNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFKScsICdnbC5J
TlQnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklC
X0FSUkFZX0lOVEVHRVIpJywgJ3RydWUnKTsKLX0KLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLXZhciB2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliID0gbmV3IEFycmF5KAot
ICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcsCi0gICAgZ2wuVkVSVEVY
X0FUVFJJQl9BUlJBWV9FTkFCTEVELAotICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSwK
LSAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSwKLSAgICBnbC5WRVJURVhfQVRUUklC
X0FSUkFZX1RZUEUsCi0gICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVELAotICAg
IGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQgotKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsK
LSAgdmFsaWRBcnJheUZvclZlcnRleEF0dHJpYlt2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxl
bmd0aF0gPSBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1I7Ci0gIHZhbGlkQXJyYXlGb3JW
ZXJ0ZXhBdHRyaWJbdmFsaWRBcnJheUZvclZlcnRleEF0dHJpYi5sZW5ndGhdID0gZ2wuVkVSVEVY
X0FUVFJJQl9BUlJBWV9JTlRFR0VSOwotfQotdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAiZ2V0
VmVydGV4QXR0cmliIiwKLSAgICAicGFyYW1ldGVyIiwKLSAgICB2YWxpZEFycmF5Rm9yVmVydGV4
QXR0cmliLAotICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgewotICAgICAgcmV0dXJuIGdsLmdldFZl
cnRleEF0dHJpYigxLCBwYXJhbWV0ZXIpOwotICAgIH0KLSk7Ci12YXIgbnVtVmVydGV4QXR0cmli
cyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVkVSVEVYX0FUVFJJQlMpOwotd3R1LnNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgJ2dsLmdldFZlcnRleEF0dHJpYign
ICsgbnVtVmVydGV4QXR0cmlicyArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQiknKTsKKyAg
aWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGRlYnVnKCJVbnNpZ25lZCBJbnRlZ2VyIHVu
aWZvcm0gdmFyaWFibGVzIik7CisgICAgd2luZG93LnVpbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9n
cmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvdWludFVuaWZvcm1TaGFkZXIudmVydCIs
ICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXJFUzMuZnJhZyIpOworICAgIHNob3Vs
ZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykn
LCAndHJ1ZScpOworICAgIHdpbmRvdy51dmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHVp
bnRQcm9ncmFtLCAidXZhbCIpOworICAgIHdpbmRvdy51dmFsMkxvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbih1aW50UHJvZ3JhbSwgInV2YWwyIik7CisgICAgd2luZG93LnV2YWwzTG9jID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKHVpbnRQcm9ncmFtLCAidXZhbDMiKTsKKyAgICB3aW5kb3cudXZh
bDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsNCIpOworICAg
IGdsLnVzZVByb2dyYW0odWludFByb2dyYW0pOworICAgIGdsLnVuaWZvcm0xdWkodXZhbExvYywg
MSk7CisgICAgZ2wudW5pZm9ybTJ1aSh1dmFsMkxvYywgMiwgMyk7CisgICAgZ2wudW5pZm9ybTN1
aSh1dmFsM0xvYywgNCwgNSwgNik7CisgICAgZ2wudW5pZm9ybTR1aSh1dmFsNExvYywgNywgOCwg
OSwgMTApOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBz
aG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSh1aW50UHJvZ3JhbSwgdXZhbExvYyknLCAnMScpOworICAg
IHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsMkxvYyknLCAnWzIsIDNd
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2YWwzTG9jKScs
ICdbNCwgNSwgNl0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSh1aW50UHJvZ3JhbSwg
dXZhbDRMb2MpJywgJ1s3LCA4LCA5LCAxMF0nKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CiAKLWRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0IGNhc2VzIHdoZXJlIG5h
bWUgPT0gMCIpOwotZ2wuZGVsZXRlVGV4dHVyZSh0ZXh0dXJlKTsKLXNob3VsZEJlKCdnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5O
T05FJyk7Ci1nbC5kZWxldGVSZW5kZXJidWZmZXIocmVuZGVyYnVmZmVyKTsKLWdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwotd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOwotc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVO
VCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuTk9ORScpOwot
Z2wuZGVsZXRlQnVmZmVyKGJ1ZmZlcik7Ci1zaG91bGRCZU51bGwoJ2dsLmdldFZlcnRleEF0dHJp
YigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKScpOwotd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIGRlYnVnKCJNYXRyaXggdW5pZm9ybSB2
YXJpYWJsZXMgZm9yIFdlYkdMIDIiKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CiAKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICBkZWJ1ZygiIik7Ci0g
ICAgZGVidWcoIlRlc3QgZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiKQorICAgIHdpbmRvdy5t
YXRGb3JXZWJHTDJQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9y
ZXNvdXJjZXMvbWF0Rm9yV2ViR0wyVW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNl
cy9ub29wVW5pZm9ybVNoYWRlckVTMy5mcmFnIik7CisgICAgc2hvdWxkQmUoJ2dsLmdldFByb2dy
YW1QYXJhbWV0ZXIobWF0Rm9yV2ViR0wyUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUn
KTsKKyAgICB3aW5kb3cubXZhbDJ4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JX
ZWJHTDJQcm9ncmFtLCAibXZhbDJ4MyIpOworICAgIHdpbmRvdy5tdmFsMng0TG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsMng0Iik7CisgICAgd2lu
ZG93Lm12YWwzeDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3Jh
bSwgIm12YWwzeDIiKTsKKyAgICB3aW5kb3cubXZhbDN4NExvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDN4NCIpOworICAgIHdpbmRvdy5tdmFsNHgy
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsNHgy
Iik7CisgICAgd2luZG93Lm12YWw0eDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9y
V2ViR0wyUHJvZ3JhbSwgIm12YWw0eDMiKTsKKyAgICBnbC51c2VQcm9ncmFtKG1hdEZvcldlYkdM
MlByb2dyYW0pOworICAgIGdsLnVuaWZvcm1NYXRyaXgyeDNmdihtdmFsMngzTG9jLCBmYWxzZSwg
WzEsIDIsIDMsIDQsIDUsIDZdKTsKKyAgICBnbC51bmlmb3JtTWF0cml4Mng0ZnYobXZhbDJ4NExv
YywgZmFsc2UsIFs3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTRdKTsKKyAgICBnbC51bmlmb3Jt
TWF0cml4M3gyZnYobXZhbDN4MkxvYywgZmFsc2UsIFsxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSk7
CisgICAgZ2wudW5pZm9ybU1hdHJpeDN4NGZ2KG12YWwzeDRMb2MsIGZhbHNlLCBbMjEsIDIyLCAy
MywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl0pOworICAgIGdsLnVuaWZvcm1N
YXRyaXg0eDJmdihtdmFsNHgyTG9jLCBmYWxzZSwgWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5
LCA0MF0pOworICAgIGdsLnVuaWZvcm1NYXRyaXg0eDNmdihtdmFsNHgzTG9jLCBmYWxzZSwgWzQx
LCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTJdKTsKKyAgICB3dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDJ4M0xvYyknLCAnWzEsIDIsIDMsIDQsIDUs
IDZdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwg
bXZhbDJ4NExvYyknLCAnWzcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0nKTsKKyAgICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3gyTG9jKScsICdb
MTUsIDE2LCAxNywgMTgsIDE5LCAyMF0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSht
YXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3g0TG9jKScsICdbMjEsIDIyLCAyMywgMjQsIDI1LCAy
NiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9y
bShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsNHgyTG9jKScsICdbMzMsIDM0LCAzNSwgMzYsIDM3
LCAzOCwgMzksIDQwXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdM
MlByb2dyYW0sIG12YWw0eDNMb2MpJywgJ1s0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgs
IDQ5LCA1MCwgNTEsIDUyXScpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKIAotICAgIHNob3VsZEJlTm9uTnVsbCgnZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SMzJJLCBnbC5TQU1QTEVTKScpOworICAgIGRlYnVnKCJT
YW1wbGVyIHVuaWZvcm0gdmFyaWFibGVzIGZvciBXZWJHTDIiKTsKKyAgICB3aW5kb3cuc2FtcGxl
ckZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jl
c291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9zYW1w
bGVyRm9yV2ViR0wyVW5pZm9ybVNoYWRlci5mcmFnIik7CisgICAgc2hvdWxkQmUoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIoc2FtcGxlckZvcldlYkdMMlByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScs
ICd0cnVlJyk7CisgICAgd2luZG93LnMzRFZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihz
YW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgInMzRCIpOworICAgIHdpbmRvdy5zMkRBcnJheVZhbExv
YyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgInMyREFy
cmF5Iik7CisgICAgZ2wudXNlUHJvZ3JhbShzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSk7CisgICAg
Z2wudW5pZm9ybTFpKHMzRFZhbExvYywgMCk7CisgICAgZ2wudW5pZm9ybTFpKHMyREFycmF5VmFs
TG9jLCAxKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAg
c2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlckZvcldlYkdMMlByb2dyYW0sIHMzRFZhbExv
YyknLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHNhbXBsZXJGb3JXZWJHTDJQ
cm9ncmFtLCBzMkRBcnJheVZhbExvYyknLCAnMScpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKyAgfQogCi0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAg
ICAgImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKLSAgICAgICAgInRhcmdldCIsCi0gICAg
ICAgIFsgZ2wuUkVOREVSQlVGRkVSIF0sCi0gICAgICAgIGZ1bmN0aW9uKHRhcmdldCkgewotICAg
ICAgICAgICAgcmV0dXJuIGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKHRhcmdldCwgZ2wu
UjMySSwgZ2wuU0FNUExFUyk7Ci0gICAgfSk7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoInRlc3Qg
Z2V0VmVydGV4QXR0cmliIik7CisgIGxldCBhcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWzEsIDIs
IDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSk7CisgIHdp
bmRvdy5idWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIGJ1ZmZlcik7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBhcnJh
eSwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgLy8gVmVydGV4IGF0dHJpYnV0ZSAwIGlzIHNwZWNpYWwg
aW4gdGhhdCBpdCBoYXMgbm8gY3VycmVudCBzdGF0ZSwgc28KKyAgLy8gZmV0Y2hpbmcgR0xfQ1VS
UkVOVF9WRVJURVhfQVRUUklCIGdlbmVyYXRlcyBhbiBlcnJvci4gVXNlIGF0dHJpYnV0ZQorICAv
LyAxIGZvciB0aGVzZSB0ZXN0cyBpbnN0ZWFkLgorICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJh
eSgxKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAs
IDApOworICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfQlVGRkVSX0JJTkRJTkcpJywgJ2J1ZmZlcicpOworICBzaG91bGRCZSgnZ2wuZ2V0VmVy
dGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCknLCAndHJ1ZScpOwor
ICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
U0laRSknLCAnNCcpOworICAvLyBTdHJpZGUgTVVTVCBiZSB0aGUgdmFsdWUgdGhlIHVzZXIgcHV0
IGluLgorICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfU1RSSURFKScsICcwJyk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwg
Z2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFKScsICdnbC5GTE9BVCcpOworICBzaG91bGRCZSgn
Z2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCkn
LCAnZmFsc2UnKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIHNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SKScsICcw
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklC
X0FSUkFZX0lOVEVHRVIpJywgJ2ZhbHNlJyk7CisgICAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigx
LCAyKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUiknLCAnMicpOworICB9CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
MSwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAzNiwgMTIpOworICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICczNicpOworICBzaG91
bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
UE9JTlRFUiknLCAnMTInKTsKKyAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOworICBz
aG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5B
QkxFRCknLCAnZmFsc2UnKTsKKyAgZ2wudmVydGV4QXR0cmliNGYoMSwgNSwgNiwgNywgOCk7Cisg
IHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklC
KScsICdbNSwgNiwgNywgOF0nKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGxl
dCBpbnRBcnJheSA9IG5ldyBJbnQzMkFycmF5KFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAx
MCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBpbnRBcnJheSwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSgxKTsKKyAgICAvLyBmZWVkIGZpeGVkLXBvaW50IGRhdGEgdG8gYnVmZmVyCisg
ICAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMSwgNCwgZ2wuSU5ULCBmYWxzZSwgMCwgMCk7Cisg
ICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZ
X1RZUEUpJywgJ2dsLklOVCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwg
Z2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSKScsICd0cnVlJyk7CisgIH0KKyAgd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBsZXQgdmFsaWRBcnJheUZvclZlcnRl
eEF0dHJpYiA9IG5ldyBBcnJheSgKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVS
X0JJTkRJTkcsCisgICAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQsCisgICAgICBn
bC5WRVJURVhfQVRUUklCX0FSUkFZX1NJWkUsCisgICAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZ
X1NUUklERSwKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSwKKyAgICAgIGdsLlZF
UlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCwKKyAgICAgIGdsLkNVUlJFTlRfVkVSVEVYX0FU
VFJJQgorICApOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgdmFsaWRBcnJheUZv
clZlcnRleEF0dHJpYlt2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0aF0gPSBnbC5WRVJU
RVhfQVRUUklCX0FSUkFZX0RJVklTT1I7CisgICAgdmFsaWRBcnJheUZvclZlcnRleEF0dHJpYlt2
YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0aF0gPSBnbC5WRVJURVhfQVRUUklCX0FSUkFZ
X0lOVEVHRVI7CisgIH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICJnZXRW
ZXJ0ZXhBdHRyaWIiLAorICAgICAgInBhcmFtZXRlciIsCisgICAgICB2YWxpZEFycmF5Rm9yVmVy
dGV4QXR0cmliLAorICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgIHJldHVybiBn
bC5nZXRWZXJ0ZXhBdHRyaWIoMSwgcGFyYW1ldGVyKTsKKyAgICAgIH0KKyAgKTsKKyAgbGV0IG51
bVZlcnRleEF0dHJpYnMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZFUlRFWF9BVFRSSUJTKTsK
KyAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgJ2dsLmdl
dFZlcnRleEF0dHJpYignICsgbnVtVmVydGV4QXR0cmlicyArICcsIGdsLkNVUlJFTlRfVkVSVEVY
X0FUVFJJQiknKTsKIAotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgICAgICJnZXRJbnRl
cm5hbGZvcm1hdFBhcmFtZXRlciIsCi0gICAgICAgICJwbmFtZSIsCi0gICAgICAgIFsgZ2wuU0FN
UExFUyBdLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAgICAgICAgcmV0dXJuIGds
LmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIHBu
YW1lKTsKLSAgICB9KTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBjYXNlcyB3aGVyZSBu
YW1lID09IDAiKTsKKyAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmcmFtZWJ1
ZmZlcik7CiAKLSAgICB2YXIgdmFsaWRBcnJheUZvckludGVyZm9ybWF0ID0gbmV3IEFycmF5KAot
ICAgICAgICBnbC5SOCwgZ2wuUjhfU05PUk0sIGdsLlJHOCwgZ2wuUkc4X1NOT1JNLAotICAgICAg
ICBnbC5SR0I4LCBnbC5SR0I4X1NOT1JNLCBnbC5SR0I1NjUsIGdsLlJHQkE0LAotICAgICAgICBn
bC5SR0I1X0ExLCBnbC5SR0JBOCwgZ2wuUkdCQThfU05PUk0sIGdsLlJHQjEwX0EyLAotICAgICAg
ICBnbC5SR0IxMF9BMlVJLCBnbC5TUkdCOCwgZ2wuU1JHQjhfQUxQSEE4LCBnbC5SMTZGLAotICAg
ICAgICBnbC5SRzE2RiwgZ2wuUkdCMTZGLCBnbC5SR0JBMTZGLCBnbC5SMzJGLAotICAgICAgICBn
bC5SRzMyRiwgZ2wuUkdCMzJGLCBnbC5SR0JBMzJGLCBnbC5SMTFGX0cxMUZfQjEwRiwKLSAgICAg
ICAgZ2wuUkdCOV9FNSwgZ2wuUjhJLCBnbC5SOFVJLCBnbC5SMTZJLAotICAgICAgICBnbC5SMTZV
SSwgZ2wuUjMySSwgZ2wuUjMyVUksIGdsLlJHOEksCi0gICAgICAgIGdsLlJHOFVJLCBnbC5SRzE2
SSwgZ2wuUkcxNlVJLCBnbC5SRzMySSwKLSAgICAgICAgZ2wuUkczMlVJLCBnbC5SR0I4SSwgZ2wu
UkdCOFVJLCBnbC5SR0IxNkksCi0gICAgICAgIGdsLlJHQjE2VUksIGdsLlJHQjMySSwgZ2wuUkdC
MzJVSSwgZ2wuUkdCQThJLAotICAgICAgICBnbC5SR0JBOFVJLCBnbC5SR0JBMTZJLCBnbC5SR0JB
MTZVSSwgZ2wuUkdCQTMySSwKLSAgICAgICAgZ2wuUkdCQTMyVUksIGdsLlJHQiwgZ2wuUkdCQSwg
Z2wuREVQVEhfU1RFTkNJTCwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsCi0gICAgICAgIGdsLkRFUFRI
X0NPTVBPTkVOVDI0LCBnbC5ERVBUSF9DT01QT05FTlQzMkYsIGdsLkRFUFRIMjRfU1RFTkNJTDgs
Ci0gICAgICAgIGdsLkRFUFRIMzJGX1NURU5DSUw4LCBnbC5TVEVOQ0lMX0lOREVYOAotICAgICk7
Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdldEludGVybmFsZm9ybWF0UGFy
YW1ldGVyIiwKLSAgICAgICAgImludGVybmFsZm9ybWF0IiwKLSAgICAgICAgdmFsaWRBcnJheUZv
ckludGVyZm9ybWF0LAotICAgICAgICBmdW5jdGlvbihpbnRlcm5hbGZvcm1hdCkgewotICAgICAg
ICAgICAgcmV0dXJuIGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgaW50ZXJuYWxmb3JtYXQsIGdsLlNBTVBMRVMpOwotICAgIH0pOworICBzaG91bGROb3RCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkn
LCAnZ2wuTk9ORScpOworICBnbC5kZWxldGVUZXh0dXJlKHRleHR1cmUpOworICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkn
LCAnZ2wuTk9ORScpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAK
KyAgc2hvdWxkTm90QmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5G
UkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9PQkpFQ1RfVFlQRSknLCAnZ2wuTk9ORScpOworICBnbC5kZWxldGVSZW5kZXJidWZmZXIocmVu
ZGVyYnVmZmVyKTsKKyAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuTk9ORScpOworICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3Qg
Z2V0SW5kZXhlZFBhcmFtZXRlciIpOwotICAgIHZhciBidWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKLSAgICBnbC5iaW5kQnVmZmVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGJ1ZmZl
cik7Ci0gICAgZ2wuYnVmZmVyRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCA2NCwg
Z2wuRFlOQU1JQ19EUkFXKTsKLSAgICBnbC5iaW5kQnVmZmVyUmFuZ2UoZ2wuVFJBTlNGT1JNX0ZF
RURCQUNLX0JVRkZFUiwgMCwgYnVmZmVyLCA0LCA4KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDApJywg
J2J1ZmZlcicpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlRSQU5T
Rk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSwgMCknLCAnOCcpOwotICAgIHNob3VsZEJlKCdnbC5n
ZXRJbmRleGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQsIDAp
JywgJzQnKTsKLSAgICB2YXIgYnVmZmVyMSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICAgIGdsLmJp
bmRCdWZmZXIoZ2wuVU5JRk9STV9CVUZGRVIsIGJ1ZmZlcjEpOwotICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuVU5JRk9STV9CVUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOwotICAgIHZhciBvZmZzZXRV
bmlmb3JtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1F
TlQpOwotICAgIGdsLmJpbmRCdWZmZXJSYW5nZShnbC5VTklGT1JNX0JVRkZFUiwgMSwgYnVmZmVy
MSwgb2Zmc2V0VW5pZm9ybSwgOCk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0
ZXIoZ2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAnYnVmZmVyMScpOwotICAgIHNob3Vs
ZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX1NJWkUsIDEpJywg
JzgnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5VTklGT1JNX0JV
RkZFUl9TVEFSVCwgMSknLCAnb2Zmc2V0VW5pZm9ybScpOworICBnbC5kZWxldGVCdWZmZXIoYnVm
ZmVyKTsKKyAgc2hvdWxkQmVOdWxsKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9CVUZGRVJfQklORElORyknKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOwogCi0gICAgZ2wuYmluZEJ1ZmZlckJhc2UoZ2wuVU5JRk9STV9CVUZGRVIs
IDEsIG51bGwpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDEpJywgJ251bGwnKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4g
MSkgeworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoIlRlc3QgZ2V0SW50ZXJuYWxmb3Jt
YXRQYXJhbWV0ZXIiKQogCi0gICAgdmFyIHZhbGlkQXJyYXlGb3JUYXJnZXQgPSBuZXcgQXJyYXko
Ci0gICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywKLSAgICAgICAg
Z2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFLAotICAgICAgICBnbC5UUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX1NUQVJULAotICAgICAgICBnbC5VTklGT1JNX0JVRkZFUl9CSU5ESU5H
LAotICAgICAgICBnbC5VTklGT1JNX0JVRkZFUl9TSVpFLAotICAgICAgICBnbC5VTklGT1JNX0JV
RkZFUl9TVEFSVAotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdl
dEluZGV4ZWRQYXJhbWV0ZXIiLAotICAgICAgICAidGFyZ2V0IiwKLSAgICAgICAgdmFsaWRBcnJh
eUZvclRhcmdldCwKLSAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICAgICAgICByZXR1
cm4gZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcih0YXJnZXQsIDApOwotICAgIH0pOworICAgICAgc2hv
dWxkQmVOb25OdWxsKCdnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihnbC5SRU5ERVJCVUZG
RVIsIGdsLlIzMkksIGdsLlNBTVBMRVMpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0U2Ft
cGxlclBhcmFtZXRlciIpOwotICAgIHZhciBzYW1wbGVyID0gZ2wuY3JlYXRlU2FtcGxlcigpOwot
ICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5D
LCBnbC5MRVFVQUwpOwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRV
UkVfQ09NUEFSRV9NT0RFLCBnbC5DT01QQVJFX1JFRl9UT19URVhUVVJFKTsKLSAgICBnbC5zYW1w
bGVyUGFyYW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1Qp
OwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJmKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFYX0xPRCwg
MTApOwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmYoc2FtcGxlciwgZ2wu
VEVYVFVSRV9NSU5fTE9ELCAwKTsKLSAgICBnbC5zYW1wbGVyUGFyYW1ldGVyaShzYW1wbGVyLCBn
bC5URVhUVVJFX1dSQVBfUiwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wuc2FtcGxlclBhcmFt
ZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAg
IGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVy
LCBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQyknLCAnZ2wuTEVRVUFMJyk7Ci0gICAgc2hvdWxkQmUo
J2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUp
JywgJ2dsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2Ft
cGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01BR19GSUxURVIpJywgJ2dsLk5FQVJF
U1QnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5U
RVhUVVJFX01BWF9MT0QpJywgJzEwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJh
bWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7Ci0g
ICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9N
SU5fTE9EKScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2Ft
cGxlciwgZ2wuVEVYVFVSRV9XUkFQX1IpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX1dSQVBfUykn
LCAnZ2wuQ0xBTVBfVE9fRURHRScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1l
dGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9UKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci0g
ICAgdmFyIHZhbGlkQXJyYXlGb3JTYW1wbGVyUGFyYW1ldGVyID0gbmV3IEFycmF5KAotICAgICAg
ICBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywKLSAgICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX01P
REUsCi0gICAgICAgIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwKLSAgICAgICAgZ2wuVEVYVFVSRV9N
QVhfTE9ELAotICAgICAgICBnbC5URVhUVVJFX01JTl9GSUxURVIsCi0gICAgICAgIGdsLlRFWFRV
UkVfTUlOX0xPRCwKLSAgICAgICAgZ2wuVEVYVFVSRV9XUkFQX1IsCi0gICAgICAgIGdsLlRFWFRV
UkVfV1JBUF9TLAotICAgICAgICBnbC5URVhUVVJFX1dSQVBfVAotICAgICk7Ci0gICAgdGVzdElu
dmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdldFNhbXBsZXJQYXJhbWV0ZXIiLAotICAgICAgICAi
cG5hbWUiLAotICAgICAgICB2YWxpZEFycmF5Rm9yU2FtcGxlclBhcmFtZXRlciwKLSAgICAgICAg
ZnVuY3Rpb24ocG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBnbC5nZXRTYW1wbGVyUGFyYW1l
dGVyKHNhbXBsZXIsIHBuYW1lKTsKLSAgICB9KTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJn
dW1lbnQoCisgICAgICAgICAgImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKKyAgICAgICAg
ICAidGFyZ2V0IiwKKyAgICAgICAgICBbIGdsLlJFTkRFUkJVRkZFUiBdLAorICAgICAgICAgIGZ1
bmN0aW9uKHRhcmdldCkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3Jt
YXRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5SMzJJLCBnbC5TQU1QTEVTKTsKKyAgICAgIH0pOwogCi0g
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJUZXN0IGdldFN5bmNQYXJhbWV0ZXIiKTsKLSAgICB2
YXIgc3luYyA9IGdsLmZlbmNlU3luYyhnbC5TWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSwgMCk7
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuT0JKRUNUX1RZUEUp
JywgJ2dsLlNZTkNfRkVOQ0UnKTsKLSAgICB2YXIgc3luY19zdGF0dXMgPSBnbC5nZXRTeW5jUGFy
YW1ldGVyKHN5bmMsIGdsLlNZTkNfU1RBVFVTKTsKLSAgICBzd2l0Y2ggKHN5bmNfc3RhdHVzKSB7
Ci0gICAgICBjYXNlIGdsLlVOU0lHTkFMRUQ6Ci0gICAgICAgIHRlc3RQYXNzZWQoJ2dsLmdldFN5
bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGdsLlVOU0lHTkFMRUQnKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIGdsLlNJR05BTEVEOgotICAgICAgICB0ZXN0UGFz
c2VkKCdnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfQ09ORElUSU9OKSBpcyBnbC5T
SUdOQUxFRCcpOwotICAgICAgICBicmVhazsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRlc3RG
YWlsZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIHdhcyAn
ICsgc3luY19zdGF0dXMgKwotICAgICAgICAgICAgICAgICAgICcsIGV4cGVjdGVkIGdsLlVOU0lH
TkFMRUQgb3IgZ2wuU0lHTkFMRUQnKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHNob3Vs
ZEJlKCdnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfQ09ORElUSU9OKScsICdnbC5T
WU5DX0dQVV9DT01NQU5EU19DT01QTEVURScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTeW5jUGFy
YW1ldGVyKHN5bmMsIGdsLlNZTkNfRkxBR1MpJywgJzAnKTsKLSAgICB2YXIgdmFsaWRBcnJheUZv
clN5bmNQYXJhbWV0ZXIgPSBuZXcgQXJyYXkoCi0gICAgICAgIGdsLk9CSkVDVF9UWVBFLAotICAg
ICAgICBnbC5TWU5DX1NUQVRVUywKLSAgICAgICAgZ2wuU1lOQ19DT05ESVRJT04sCi0gICAgICAg
IGdsLlNZTkNfRkxBR1MKLSAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgICAg
ICJnZXRTeW5jUGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAgICAgdmFsaWRBcnJh
eUZvclN5bmNQYXJhbWV0ZXIsCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBwbmFtZSk7Ci0gICAgfSk7CisgICAg
ICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRJbnRlcm5hbGZvcm1h
dFBhcmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICBbIGdsLlNBTVBMRVMg
XSwKKyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wu
Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgcG5h
bWUpOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0UXVl
cnlQYXJhbWV0ZXIiKTsKLSAgICB2YXIgcXVlcnkgPSBnbC5jcmVhdGVRdWVyeSgpOwotICAgIGds
LmJlZ2luUXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgcXVl
cnkpOwotICAgIGdsLmVuZFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dS
SVRURU4pOwotICAgIHNob3VsZEJlKCdnbC5nZXRRdWVyeVBhcmFtZXRlcihxdWVyeSwgZ2wuUVVF
UllfUkVTVUxUX0FWQUlMQUJMRSknLCAnZmFsc2UnKTsKLSAgICAvLyBRdWVyaWVzJyByZXN1bHRz
IGFyZSB0ZXN0ZWQgZWxzZXdoZXJlIGluIHRoZSBjb25mb3JtYW5jZSBzdWl0ZS4gSXQncyBjb21w
bGljYXRlZAotICAgIC8vIHRvIHdhaXQgZm9yIHRoaXMgcXVlcnkncyByZXN1bHQgdG8gYmVjb21l
IGF2YWlsYWJsZSBhbmQgdmVyaWZ5IGl0LgotICAgIHZhciB2YWxpZEFycmF5Rm9yUG5hbWUgPSBu
ZXcgQXJyYXkoCi0gICAgICAgIGdsLlFVRVJZX1JFU1VMVCwKLSAgICAgICAgZ2wuUVVFUllfUkVT
VUxUX0FWQUlMQUJMRQotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAg
ImdldFF1ZXJ5UGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAgICAgdmFsaWRBcnJh
eUZvclBuYW1lLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAgICAgICAgcmV0dXJu
IGdsLmdldFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5LCBwbmFtZSk7Ci0gICAgICAgIH0KLSAgICApOwor
ICAgICAgbGV0IHZhbGlkQXJyYXlGb3JJbnRlcmZvcm1hdCA9IG5ldyBBcnJheSgKKyAgICAgICAg
ICBnbC5SOCwgZ2wuUjhfU05PUk0sIGdsLlJHOCwgZ2wuUkc4X1NOT1JNLAorICAgICAgICAgIGds
LlJHQjgsIGdsLlJHQjhfU05PUk0sIGdsLlJHQjU2NSwgZ2wuUkdCQTQsCisgICAgICAgICAgZ2wu
UkdCNV9BMSwgZ2wuUkdCQTgsIGdsLlJHQkE4X1NOT1JNLCBnbC5SR0IxMF9BMiwKKyAgICAgICAg
ICBnbC5SR0IxMF9BMlVJLCBnbC5TUkdCOCwgZ2wuU1JHQjhfQUxQSEE4LCBnbC5SMTZGLAorICAg
ICAgICAgIGdsLlJHMTZGLCBnbC5SR0IxNkYsIGdsLlJHQkExNkYsIGdsLlIzMkYsCisgICAgICAg
ICAgZ2wuUkczMkYsIGdsLlJHQjMyRiwgZ2wuUkdCQTMyRiwgZ2wuUjExRl9HMTFGX0IxMEYsCisg
ICAgICAgICAgZ2wuUkdCOV9FNSwgZ2wuUjhJLCBnbC5SOFVJLCBnbC5SMTZJLAorICAgICAgICAg
IGdsLlIxNlVJLCBnbC5SMzJJLCBnbC5SMzJVSSwgZ2wuUkc4SSwKKyAgICAgICAgICBnbC5SRzhV
SSwgZ2wuUkcxNkksIGdsLlJHMTZVSSwgZ2wuUkczMkksCisgICAgICAgICAgZ2wuUkczMlVJLCBn
bC5SR0I4SSwgZ2wuUkdCOFVJLCBnbC5SR0IxNkksCisgICAgICAgICAgZ2wuUkdCMTZVSSwgZ2wu
UkdCMzJJLCBnbC5SR0IzMlVJLCBnbC5SR0JBOEksCisgICAgICAgICAgZ2wuUkdCQThVSSwgZ2wu
UkdCQTE2SSwgZ2wuUkdCQTE2VUksIGdsLlJHQkEzMkksCisgICAgICAgICAgZ2wuUkdCQTMyVUks
IGdsLlJHQiwgZ2wuUkdCQSwgZ2wuREVQVEhfU1RFTkNJTCwgZ2wuREVQVEhfQ09NUE9ORU5UMTYs
CisgICAgICAgICAgZ2wuREVQVEhfQ09NUE9ORU5UMjQsIGdsLkRFUFRIX0NPTVBPTkVOVDMyRiwg
Z2wuREVQVEgyNF9TVEVOQ0lMOCwKKyAgICAgICAgICBnbC5ERVBUSDMyRl9TVEVOQ0lMOCwgZ2wu
U1RFTkNJTF9JTkRFWDgKKyAgICAgICk7CisgICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50
KAorICAgICAgICAgICJnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciIsCisgICAgICAgICAgImlu
dGVybmFsZm9ybWF0IiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9ySW50ZXJmb3JtYXQsCisgICAg
ICAgICAgZnVuY3Rpb24oaW50ZXJuYWxmb3JtYXQpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGds
LmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgaW50ZXJuYWxmb3Jt
YXQsIGdsLlNBTVBMRVMpOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWco
IlRlc3QgZ2V0RnJhZ0RhdGFMb2NhdGlvbiIpOwotICAgIHZhciBiYXNlVmVydFNoYWRlciA9ICcn
ICsKLSAgICAnI3ZlcnNpb24gMzAwIGVzXG4nICsKLSAgICAndW5pZm9ybSBtYXQ0IG1vZGVsVmll
d01hdHJpeDtcbicgKwotICAgICd1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDtcbicgKwot
ICAgICdpbiB2ZWM0IHZlcnRleDtcbicgKwotICAgICdvdXQgdmVjNCBwb3NpdGlvbjtcbicgKwot
ICAgICd2b2lkIG1haW4gKHZvaWQpXG4nICsKLSAgICAne1xuJyArCi0gICAgJyAgICAgICBwb3Np
dGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIHZlcnRleDtcbicgKwotICAgICcgICAgICAgZ2xfUG9z
aXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogcG9zaXRpb247XG4nICsKLSAgICAnfVxuJzsKLSAg
ICB2YXIgYmFzZUZyYWdTaGFkZXIgPSAnJyArCi0gICAgJyN2ZXJzaW9uIDMwMCBlc1xuJyArCi0g
ICAgJ2luIGxvd3AgdmVjNCBwb3NpdGlvbjtcbicgKwotICAgICdsYXlvdXQobG9jYXRpb24gPSAw
KSBvdXQgbWVkaXVtcCB2ZWM0IGZyYWdDb2xvcjtcbicgKwotICAgICd2b2lkIG1haW4gKHZvaWQp
XG4nICsKLSAgICAne1xuJyArCi0gICAgJyAgICAgICBmcmFnQ29sb3IgPSBwb3NpdGlvbjtcbicg
KwotICAgICd9XG4nOwotICAgIHZhciB2ZXJ0U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZF
UlRFWF9TSEFERVIpOwotICAgIGdsLnNoYWRlclNvdXJjZSh2ZXJ0U2hhZGVyLCBiYXNlVmVydFNo
YWRlcik7Ci0gICAgZ2wuY29tcGlsZVNoYWRlcih2ZXJ0U2hhZGVyKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0
cnVlJyk7Ci0gICAgdmFyIGZyYWdTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRf
U0hBREVSKTsKLSAgICBnbC5zaGFkZXJTb3VyY2UoZnJhZ1NoYWRlciwgYmFzZUZyYWdTaGFkZXIp
OwotICAgIGdsLmNvbXBpbGVTaGFkZXIoZnJhZ1NoYWRlcik7Ci0gICAgc2hvdWxkQmUoJ2dsLmdl
dFNoYWRlclBhcmFtZXRlcihmcmFnU2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUyknLCAndHJ1ZScp
OwotICAgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICAgIGdsLmF0dGFjaFNo
YWRlcihwcm9ncmFtLCB2ZXJ0U2hhZGVyKTsKLSAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwg
ZnJhZ1NoYWRlcik7Ci0gICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmUo
J2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywndHJ1ZScp
OwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW0sICJ2ZXJ0ZXhD
b2xvciIpJywgJy0xJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJv
Z3JhbSwgIm1vZGVsVmlld01hdHJpeCIpJywgJy0xJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZy
YWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInByb2plY3Rpb25NYXRyaXgiKScsICctMScpOwotICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW0sICJwb3NpdGlvbiIpJywg
Jy0xJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgImZy
YWdDb2xvciIpJywgJzAnKTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRB
Y3RpdmVVbmlmb3JtcyIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQ
cm9ncmFtKGdsKTsKLSAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScp
OwotICAgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7CisgICAgICBk
ZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRJbmRleGVkUGFyYW1ldGVyIik7CisgICAg
ICB3aW5kb3cuYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgICBnbC5iaW5kQnVmZmVy
KGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGJ1ZmZlcik7CisgICAgICBnbC5idWZmZXJE
YXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOwor
ICAgICAgZ2wuYmluZEJ1ZmZlclJhbmdlKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDAs
IGJ1ZmZlciwgNCwgOCk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihn
bC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDApJywgJ2J1ZmZlcicpOworICAg
ICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNL
X0JVRkZFUl9TSVpFLCAwKScsICc4Jyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBh
cmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJULCAwKScsICc0Jyk7Cisg
ICAgICB3aW5kb3cuYnVmZmVyMSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgZ2wuYmluZEJ1
ZmZlcihnbC5VTklGT1JNX0JVRkZFUiwgYnVmZmVyMSk7CisgICAgICBnbC5idWZmZXJEYXRhKGds
LlVOSUZPUk1fQlVGRkVSLCA2NCwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICAgIHdpbmRvdy5vZmZz
ZXRVbmlmb3JtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElH
Tk1FTlQpOworICAgICAgZ2wuYmluZEJ1ZmZlclJhbmdlKGdsLlVOSUZPUk1fQlVGRkVSLCAxLCBi
dWZmZXIxLCBvZmZzZXRVbmlmb3JtLCA4KTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVk
UGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpJywgJ2J1ZmZlcjEnKTsKKyAg
ICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX1NJ
WkUsIDEpJywgJzgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGds
LlVOSUZPUk1fQlVGRkVSX1NUQVJULCAxKScsICdvZmZzZXRVbmlmb3JtJyk7CiAKLSAgICB2YXIg
bnVtQWN0aXZlVW5pZm9ybXMgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkFD
VElWRV9VTklGT1JNUyk7Ci0gICAgdmFyIGJsb2NrSW5kZXggPSBnbC5nZXRVbmlmb3JtQmxvY2tJ
bmRleChwcm9ncmFtLCAiVHJhbnNmb3JtIik7Ci0gICAgdmFyIHVuaWZvcm1JbmRpY2VzID0gW107
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1BY3RpdmVVbmlmb3JtczsgaSsrKQotICAgICAg
dW5pZm9ybUluZGljZXMucHVzaChpKTsKLSAgICB2YXIgdHlwZXMgPSBnbC5nZXRBY3RpdmVVbmlm
b3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9UWVBFKTsKLSAgICB2YXIg
c2l6ZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wu
VU5JRk9STV9TSVpFKTsKLSAgICB2YXIgYmxvY2tJbmRpY2VzID0gZ2wuZ2V0QWN0aXZlVW5pZm9y
bXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fQkxPQ0tfSU5ERVgpOwotICAg
IHZhciBvZmZzZXRzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGlj
ZXMsIGdsLlVOSUZPUk1fT0ZGU0VUKTsKLSAgICB2YXIgYXJyYXlTdHJpZGVzID0gZ2wuZ2V0QWN0
aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fQVJSQVlfU1RS
SURFKTsKLSAgICB2YXIgbWF0cml4U3RyaWRlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dy
YW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX01BVFJJWF9TVFJJREUpOwotICAgIHZhciBy
b3dNYWpvcnMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywg
Z2wuVU5JRk9STV9JU19ST1dfTUFKT1IpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtQWN0
aXZlVW5pZm9ybXM7IGkrKykgewotICAgICAgaWYgKHR5cGVzW2ldICE9IGdsLkZMT0FUX01BVDQg
JiYgdHlwZXNbaV0gIT0gZ2wuRkxPQVRfTUFUMykKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0
ZWQgdmFsdWU6IEdMX0ZMT0FUX01BVDQgb3IgR0xfRkxPQVRfTUFUMyIgKyAiIGFjdHVhbCB2YWx1
ZSBmb3IgVU5JRk9STV9UWVBFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHd0dS5n
bEVudW1Ub1N0cmluZyhnbCwgdHlwZXNbaV0pKTsKLSAgICAgIGlmIChzaXplc1tpXSAhPSAxKQot
ICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMSIgKyAiIGFjdHVhbCB2YWx1ZSBm
b3IgVU5JRk9STV9TSVpFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHNpemVzW2ld
KTsKLSAgICAgIGlmIChibG9ja0luZGljZXNbaV0gIT0gYmxvY2tJbmRleCkKLSAgICAgICAgdGVz
dEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1f
QkxPQ0tfSU5ERVggZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgYmxvY2tJbmRpY2Vz
W2ldKTsKLSAgICAgIGlmIChvZmZzZXRzW2ldIDwgMCkKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhw
ZWN0ZWQgdmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9PRkZTRVQgZm9y
IHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgb2Zmc2V0c1tpXSk7Ci0gICAgICBpZiAoYXJy
YXlTdHJpZGVzW2ldICE9IDApCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAw
IiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX0FSUkFZX1NUUklERSBmb3IgdW5pZm9ybSBp
bmRleFsiICsgaSArICJdOiIgKyBhcnJheVN0cmlkZXNbaV0pOwotICAgICAgaWYgKG1hdHJpeFN0
cmlkZXNbaV0gPCAwKQotICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZSA+PSAwIiAr
ICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX01BVFJJWF9TVFJJREUgZm9yIHVuaWZvcm0gaW5k
ZXhbIiArIGkgKyAiXToiICsgbWF0cml4U3RyaWRlc1tpXSk7Ci0gICAgICBzaG91bGRCZSgndHlw
ZW9mIHJvd01ham9yc1tpXScsICciYm9vbGVhbiInKTsKLSAgICAgIGlmIChyb3dNYWpvcnNbaV0g
IT0gZmFsc2UpCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0
dWFsIHZhbHVlIGZvciBVTklGT1JNX0lTX1JPV19NQUpPUiBmb3IgdW5pZm9ybSBpbmRleFsiICsg
aSArICJdOiIgKyByb3dNYWpvcnNbaV0pOwotICAgIH0KKyAgICAgIGdsLmJpbmRCdWZmZXJCYXNl
KGdsLlVOSUZPUk1fQlVGRkVSLCAxLCBudWxsKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRl
eGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpJywgJ251bGwnKTsKIAot
ICAgIHZhciB2YWxpZEFycmF5Rm9yUG5hbWUgPSBuZXcgQXJyYXkoCi0gICAgICAgIGdsLlVOSUZP
Uk1fVFlQRSwKLSAgICAgICAgZ2wuVU5JRk9STV9TSVpFLAotICAgICAgICBnbC5VTklGT1JNX0JM
T0NLX0lOREVYLAotICAgICAgICBnbC5VTklGT1JNX09GRlNFVCwKLSAgICAgICAgZ2wuVU5JRk9S
TV9BUlJBWV9TVFJJREUsCi0gICAgICAgIGdsLlVOSUZPUk1fTUFUUklYX1NUUklERSwKLSAgICAg
ICAgZ2wuVU5JRk9STV9JU19ST1dfTUFKT1IKLSAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1l
bnQoCi0gICAgICAgICJnZXRBY3RpdmVVbmlmb3JtcyIsCi0gICAgICAgICJwbmFtZSIsCi0gICAg
ICAgIHZhbGlkQXJyYXlGb3JQbmFtZSwKLSAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKLSAgICAg
ICAgICAgIHJldHVybiBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNl
cywgcG5hbWUpOwotICAgICAgICB9Ci0gICAgKTsKKyAgICAgIGxldCB2YWxpZEFycmF5Rm9yVGFy
Z2V0ID0gbmV3IEFycmF5KAorICAgICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJf
QklORElORywKKyAgICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUsCisg
ICAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCwKKyAgICAgICAgICBn
bC5VTklGT1JNX0JVRkZFUl9CSU5ESU5HLAorICAgICAgICAgIGdsLlVOSUZPUk1fQlVGRkVSX1NJ
WkUsCisgICAgICAgICAgZ2wuVU5JRk9STV9CVUZGRVJfU1RBUlQKKyAgICAgICk7CisgICAgICBh
d2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRJbmRleGVkUGFyYW1ldGVy
IiwKKyAgICAgICAgICAidGFyZ2V0IiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9yVGFyZ2V0LAor
ICAgICAgICAgIGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0
SW5kZXhlZFBhcmFtZXRlcih0YXJnZXQsIDApOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7
Ci0gICAgZGVidWcoIlRlc3QgZ2V0VW5pZm9ybUJsb2NrSW5kZXgiKTsKLSAgICB2YXIgcHJvZ3Jh
bSA9IHd0dS5sb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlua1Byb2dyYW0o
cHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dy
YW0sIGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJ
bmRleChwcm9ncmFtLCAiVHJhbnNmb3JtIiknLCAnMCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRV
bmlmb3JtQmxvY2tJbmRleChwcm9ncmFtLCAidV9tb2RlbFZpZXdNYXRyaXgiKScsICdnbC5JTlZB
TElEX0lOREVYJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KHByb2dy
YW0sICJub3JtYWwiKScsICdnbC5JTlZBTElEX0lOREVYJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdl
dFVuaWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJ1X25vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5E
RVgnKTsKLSAgICB2YXIgbm9Vbmlmb3JtUHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFt
KGdsKTsKLSAgICBnbC5saW5rUHJvZ3JhbShub1VuaWZvcm1Qcm9ncmFtKTsKLSAgICBzaG91bGRC
ZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19T
VEFUVVMpJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KG5vVW5pZm9y
bVByb2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKScsICdnbC5JTlZBTElEX0lOREVYJyk7
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KG5vVW5pZm9ybVByb2dyYW0s
ICJ1X25vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsKKyAgICAgIGRlYnVnKCIiKTsKKyAg
ICAgIGRlYnVnKCJUZXN0IGdldFNhbXBsZXJQYXJhbWV0ZXIiKTsKKyAgICAgIHdpbmRvdy5zYW1w
bGVyID0gZ2wuY3JlYXRlU2FtcGxlcigpOworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2Ft
cGxlciwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMsIGdsLkxFUVVBTCk7CisgICAgICBnbC5zYW1w
bGVyUGFyYW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSwgZ2wuQ09NUEFS
RV9SRUZfVE9fVEVYVFVSRSk7CisgICAgICBnbC5zYW1wbGVyUGFyYW1ldGVyaShzYW1wbGVyLCBn
bC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgZ2wuc2FtcGxlclBhcmFt
ZXRlcmYoc2FtcGxlciwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAxMCk7CisgICAgICBnbC5zYW1wbGVy
UGFyYW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwor
ICAgICAgZ2wuc2FtcGxlclBhcmFtZXRlcmYoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fTE9ELCAw
KTsKKyAgICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9S
LCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIs
IGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICAgIGdsLnNhbXBsZXJQ
YXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsK
KyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRV
UkVfQ09NUEFSRV9GVU5DKScsICdnbC5MRVFVQUwnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRT
YW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9NT0RFKScsICdnbC5D
T01QQVJFX1JFRl9UT19URVhUVVJFJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBh
cmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01BR19GSUxURVIpJywgJ2dsLk5FQVJFU1QnKTsK
KyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRV
UkVfTUFYX0xPRCknLCAnMTAnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1l
dGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiknLCAnZ2wuTkVBUkVTVCcpOworICAg
ICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9N
SU5fTE9EKScsICcwJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihz
YW1wbGVyLCBnbC5URVhUVVJFX1dSQVBfUiknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICAgICAg
c2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQ
X1MpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVy
UGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9UKScsICdnbC5DTEFNUF9UT19FREdF
Jyk7CisgICAgICBsZXQgdmFsaWRBcnJheUZvclNhbXBsZXJQYXJhbWV0ZXIgPSBuZXcgQXJyYXko
CisgICAgICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMsCisgICAgICAgICAgZ2wuVEVYVFVS
RV9DT01QQVJFX01PREUsCisgICAgICAgICAgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLAorICAgICAg
ICAgIGdsLlRFWFRVUkVfTUFYX0xPRCwKKyAgICAgICAgICBnbC5URVhUVVJFX01JTl9GSUxURVIs
CisgICAgICAgICAgZ2wuVEVYVFVSRV9NSU5fTE9ELAorICAgICAgICAgIGdsLlRFWFRVUkVfV1JB
UF9SLAorICAgICAgICAgIGdsLlRFWFRVUkVfV1JBUF9TLAorICAgICAgICAgIGdsLlRFWFRVUkVf
V1JBUF9UCisgICAgICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAg
ICAgICAiZ2V0U2FtcGxlclBhcmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAg
ICB2YWxpZEFycmF5Rm9yU2FtcGxlclBhcmFtZXRlciwKKyAgICAgICAgICBmdW5jdGlvbihwbmFt
ZSkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVy
LCBwbmFtZSk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBn
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUubG9hZFVu
aWZvcm1CbG9ja1Byb2dyYW0oZ2wpOwotICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOwotICAg
IHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NU
QVRVUyknKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dsLmdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUocHJvZ3JhbSwgMCknLCAnVHJhbnNmb3JtJyk7Ci0gICAgc2hvdWxkQmVOdWxsKCdn
bC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIC0xKScpOwotICAgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wu
Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShwcm9ncmFtLCAxKScpOwotICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0
QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShwcm9ncmFtLCBnbC5JTlZBTElEX0lOREVYKScpOwotICAg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwotICAgIHZhciBub0xp
bmtQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICAgIHNob3VsZEJlRmFsc2UoJ2dsLmdl
dFByb2dyYW1QYXJhbWV0ZXIobm9MaW5rUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7Ci0gICAg
d3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5n
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vTGlua1Byb2dyYW0sIDApJyk7Ci0gICAgdmFyIG5v
VW5pZm9ybVByb2dyYW0gPSB3dHUubG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlu
a1Byb2dyYW0obm9Vbmlmb3JtUHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9n
cmFtUGFyYW1ldGVyKG5vVW5pZm9ybVByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNo
b3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShub1VuaWZvcm1Qcm9ncmFt
LCAtMSknKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsK
LSAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlmb3Jt
UHJvZ3JhbSwgMCknKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZB
TFVFKTsKLSAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9V
bmlmb3JtUHJvZ3JhbSwgZ2wuSU5WQUxJRF9JTkRFWCknKTsKLSAgICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVn
KCJUZXN0IGdldFN5bmNQYXJhbWV0ZXIiKTsKKyAgICAgIHdpbmRvdy5zeW5jID0gZ2wuZmVuY2VT
eW5jKGdsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFLCAwKTsKKyAgICAgIHNob3VsZEJlKCdn
bC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLk9CSkVDVF9UWVBFKScsICdnbC5TWU5DX0ZFTkNF
Jyk7CisgICAgICBsZXQgc3luY19zdGF0dXMgPSBnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGds
LlNZTkNfU1RBVFVTKTsKKyAgICAgIHN3aXRjaCAoc3luY19zdGF0dXMpIHsKKyAgICAgICAgY2Fz
ZSBnbC5VTlNJR05BTEVEOgorICAgICAgICAgIHRlc3RQYXNzZWQoJ2dsLmdldFN5bmNQYXJhbWV0
ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGdsLlVOU0lHTkFMRUQnKTsKKyAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBnbC5TSUdOQUxFRDoKKyAgICAgICAgICB0ZXN0UGFzc2Vk
KCdnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfQ09ORElUSU9OKSBpcyBnbC5TSUdO
QUxFRCcpOworICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHRl
c3RGYWlsZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIHdh
cyAnICsgc3luY19zdGF0dXMgKworICAgICAgICAgICAgICAgICAgICAgJywgZXhwZWN0ZWQgZ2wu
VU5TSUdOQUxFRCBvciBnbC5TSUdOQUxFRCcpOworICAgICAgICAgIGJyZWFrOworICAgICAgfQor
ICAgICAgc2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJ
T04pJywgJ2dsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFJyk7CisgICAgICBzaG91bGRCZSgn
Z2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0ZMQUdTKScsICcwJyk7CisgICAgICBs
ZXQgdmFsaWRBcnJheUZvclN5bmNQYXJhbWV0ZXIgPSBuZXcgQXJyYXkoCisgICAgICAgICAgZ2wu
T0JKRUNUX1RZUEUsCisgICAgICAgICAgZ2wuU1lOQ19TVEFUVVMsCisgICAgICAgICAgZ2wuU1lO
Q19DT05ESVRJT04sCisgICAgICAgICAgZ2wuU1lOQ19GTEFHUworICAgICAgKTsKKyAgICAgIGF3
YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldFN5bmNQYXJhbWV0ZXIiLAor
ICAgICAgICAgICJwbmFtZSIsCisgICAgICAgICAgdmFsaWRBcnJheUZvclN5bmNQYXJhbWV0ZXIs
CisgICAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGdsLmdl
dFN5bmNQYXJhbWV0ZXIoc3luYywgcG5hbWUpOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7
Ci0gICAgZGVidWcoIlRlc3QgZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIik7Ci0gICAg
dmFyIHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOwotICAgIGdsLmxp
bmtQcm9ncmFtKHByb2dyYW0pOwotICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0
aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklO
RElORyknLCAnMCcpOwotICAgIGdsLnVuaWZvcm1CbG9ja0JpbmRpbmcocHJvZ3JhbSwgMCwgMSk7
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFt
LCAwLCBnbC5VTklGT1JNX0JMT0NLX0JJTkRJTkcpJywgJzEnKTsKLSAgICAvLyBUaGUgYWN0dWFs
IGJsb2NrIGRhdGEgc2l6ZSBjYW4gYmUgYmlnZ2VyIHRoYW4gMTY0LCBkZXBlbmRpbmcgb24gdGhl
IHVuaWZvcm0gYmxvY2sgbGF5b3V0LgotICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlVW5p
Zm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfREFUQV9TSVpF
KSA+PSAxNjQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1l
dGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1TKScsICczJyk7
Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJv
Z3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVIpJyk7
Ci0gICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHBy
b2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIp
Jyk7Ci0gICAgdmFyIGluZGljZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIo
cHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTKTsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgaWYgKGluZGljZXNbaV0gPCAw
KQotICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZSA+PSAwIiArICIgYWN0dWFsIHZh
bHVlIGZvciBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lORElDRVMgZm9yIHVuaWZvcm0g
aW5kZXhbIiArIGkgKyAiXToiICsgaW5kaWNlc1tpXSk7Ci0gICAgfQotICAgIHZhciB2YWxpZEFy
cmF5Rm9yUG5hbWUgPSBuZXcgQXJyYXkoCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfQklORElO
RywKLSAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19EQVRBX1NJWkUsCi0gICAgICAgIGdsLlVOSUZP
Uk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1TLAotICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0FDVElW
RV9VTklGT1JNX0lORElDRVMsCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9C
WV9WRVJURVhfU0hBREVSLAotICAgICAgICBnbC5VTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSCi0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAg
ICAiZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAg
ICAgICAgdmFsaWRBcnJheUZvclBuYW1lLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAg
ICAgICAgICAgcmV0dXJuIGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFt
LCAwLCBwbmFtZSk7Ci0gICAgICAgIH0KLSAgICApOwotfQorICAgICAgZGVidWcoIiIpOworICAg
ICAgZGVidWcoIlRlc3QgZ2V0UXVlcnlQYXJhbWV0ZXIiKTsKKyAgICAgIHdpbmRvdy5xdWVyeSA9
IGdsLmNyZWF0ZVF1ZXJ5KCk7CisgICAgICBnbC5iZWdpblF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVE
QkFDS19QUklNSVRJVkVTX1dSSVRURU4sIHF1ZXJ5KTsKKyAgICAgIGdsLmVuZFF1ZXJ5KGdsLlRS
QU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4pOworICAgICAgc2hvdWxkQmUoJ2ds
LmdldFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5LCBnbC5RVUVSWV9SRVNVTFRfQVZBSUxBQkxFKScsICdm
YWxzZScpOworICAgICAgLy8gUXVlcmllcycgcmVzdWx0cyBhcmUgdGVzdGVkIGVsc2V3aGVyZSBp
biB0aGUgY29uZm9ybWFuY2Ugc3VpdGUuIEl0J3MgY29tcGxpY2F0ZWQKKyAgICAgIC8vIHRvIHdh
aXQgZm9yIHRoaXMgcXVlcnkncyByZXN1bHQgdG8gYmVjb21lIGF2YWlsYWJsZSBhbmQgdmVyaWZ5
IGl0LgorICAgICAgbGV0IHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKKyAgICAgICAg
ICBnbC5RVUVSWV9SRVNVTFQsCisgICAgICAgICAgZ2wuUVVFUllfUkVTVUxUX0FWQUlMQUJMRQor
ICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdl
dFF1ZXJ5UGFyYW1ldGVyIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAgIHZhbGlkQXJy
YXlGb3JQbmFtZSwKKyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICBy
ZXR1cm4gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIHBuYW1lKTsKKyAgICAgICAgICB9Cisg
ICAgICApOworCisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRGcmFnRGF0
YUxvY2F0aW9uIik7CisgICAgICBsZXQgYmFzZVZlcnRTaGFkZXIgPSAnJyArCisgICAgICAnI3Zl
cnNpb24gMzAwIGVzXG4nICsKKyAgICAgICd1bmlmb3JtIG1hdDQgbW9kZWxWaWV3TWF0cml4O1xu
JyArCisgICAgICAndW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7XG4nICsKKyAgICAgICdp
biB2ZWM0IHZlcnRleDtcbicgKworICAgICAgJ291dCB2ZWM0IHBvc2l0aW9uO1xuJyArCisgICAg
ICAndm9pZCBtYWluICh2b2lkKVxuJyArCisgICAgICAne1xuJyArCisgICAgICAnICAgICAgIHBv
c2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVydGV4O1xuJyArCisgICAgICAnICAgICAgIGds
X1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHBvc2l0aW9uO1xuJyArCisgICAgICAnfVxu
JzsKKyAgICAgIGxldCBiYXNlRnJhZ1NoYWRlciA9ICcnICsKKyAgICAgICcjdmVyc2lvbiAzMDAg
ZXNcbicgKworICAgICAgJ2luIGxvd3AgdmVjNCBwb3NpdGlvbjtcbicgKworICAgICAgJ2xheW91
dChsb2NhdGlvbiA9IDApIG91dCBtZWRpdW1wIHZlYzQgZnJhZ0NvbG9yO1xuJyArCisgICAgICAn
dm9pZCBtYWluICh2b2lkKVxuJyArCisgICAgICAne1xuJyArCisgICAgICAnICAgICAgIGZyYWdD
b2xvciA9IHBvc2l0aW9uO1xuJyArCisgICAgICAnfVxuJzsKKyAgICAgIHdpbmRvdy52ZXJ0U2hh
ZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOworICAgICAgZ2wuc2hhZGVy
U291cmNlKHZlcnRTaGFkZXIsIGJhc2VWZXJ0U2hhZGVyKTsKKyAgICAgIGdsLmNvbXBpbGVTaGFk
ZXIodmVydFNoYWRlcik7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZl
cnRTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CisgICAgICB3aW5kb3cuZnJh
Z1NoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOworICAgICAgZ2wu
c2hhZGVyU291cmNlKGZyYWdTaGFkZXIsIGJhc2VGcmFnU2hhZGVyKTsKKyAgICAgIGdsLmNvbXBp
bGVTaGFkZXIoZnJhZ1NoYWRlcik7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1l
dGVyKGZyYWdTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CisgICAgICB3aW5k
b3cucHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihw
cm9ncmFtLCB2ZXJ0U2hhZGVyKTsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFn
U2hhZGVyKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworICAgICAgc2hvdWxkQmUo
J2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywndHJ1ZScp
OworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInZlcnRl
eENvbG9yIiknLCAnLTEnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9u
KHByb2dyYW0sICJtb2RlbFZpZXdNYXRyaXgiKScsICctMScpOworICAgICAgc2hvdWxkQmUoJ2ds
LmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInByb2plY3Rpb25NYXRyaXgiKScsICctMScp
OworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInBvc2l0
aW9uIiknLCAnLTEnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHBy
b2dyYW0sICJmcmFnQ29sb3IiKScsICcwJyk7CisKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRl
YnVnKCJUZXN0IGdldEFjdGl2ZVVuaWZvcm1zIik7CisgICAgICBwcm9ncmFtID0gd3R1LmxvYWRV
bmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOwor
ICAgICAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19T
VEFUVVMpJywgJ3RydWUnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5P
X0VSUk9SJyk7CisKKyAgICAgIGxldCBudW1BY3RpdmVVbmlmb3JtcyA9IGdsLmdldFByb2dyYW1Q
YXJhbWV0ZXIocHJvZ3JhbSwgZ2wuQUNUSVZFX1VOSUZPUk1TKTsKKyAgICAgIGxldCBibG9ja0lu
ZGV4ID0gZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgIlRyYW5zZm9ybSIpOworICAg
ICAgbGV0IHVuaWZvcm1JbmRpY2VzID0gW107CisgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51
bUFjdGl2ZVVuaWZvcm1zOyBpKyspCisgICAgICAgIHVuaWZvcm1JbmRpY2VzLnB1c2goaSk7Cisg
ICAgICBsZXQgdHlwZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5k
aWNlcywgZ2wuVU5JRk9STV9UWVBFKTsKKyAgICAgIGxldCBzaXplcyA9IGdsLmdldEFjdGl2ZVVu
aWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX1NJWkUpOworICAgICAg
bGV0IGJsb2NrSW5kaWNlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1J
bmRpY2VzLCBnbC5VTklGT1JNX0JMT0NLX0lOREVYKTsKKyAgICAgIGxldCBvZmZzZXRzID0gZ2wu
Z2V0QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fT0ZG
U0VUKTsKKyAgICAgIGxldCBhcnJheVN0cmlkZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9n
cmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9BUlJBWV9TVFJJREUpOworICAgICAgbGV0
IG1hdHJpeFN0cmlkZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5k
aWNlcywgZ2wuVU5JRk9STV9NQVRSSVhfU1RSSURFKTsKKyAgICAgIGxldCByb3dNYWpvcnMgPSBn
bC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9J
U19ST1dfTUFKT1IpOworICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1BY3RpdmVVbmlmb3Jt
czsgaSsrKSB7CisgICAgICAgIGlmICh0eXBlc1tpXSAhPSBnbC5GTE9BVF9NQVQ0ICYmIHR5cGVz
W2ldICE9IGdsLkZMT0FUX01BVDMpCisgICAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFs
dWU6IEdMX0ZMT0FUX01BVDQgb3IgR0xfRkxPQVRfTUFUMyIgKyAiIGFjdHVhbCB2YWx1ZSBmb3Ig
VU5JRk9STV9UWVBFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHd0dS5nbEVudW1U
b1N0cmluZyhnbCwgdHlwZXNbaV0pKTsKKyAgICAgICAgaWYgKHNpemVzW2ldICE9IDEpCisgICAg
ICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6IDEiICsgIiBhY3R1YWwgdmFsdWUgZm9y
IFVOSUZPUk1fU0laRSBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBzaXplc1tpXSk7
CisgICAgICAgIGlmIChibG9ja0luZGljZXNbaV0gIT0gYmxvY2tJbmRleCkKKyAgICAgICAgICB0
ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9S
TV9CTE9DS19JTkRFWCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBibG9ja0luZGlj
ZXNbaV0pOworICAgICAgICBpZiAob2Zmc2V0c1tpXSA8IDApCisgICAgICAgICAgdGVzdEZhaWxl
ZCgiZXhwZWN0ZWQgdmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9PRkZT
RVQgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgb2Zmc2V0c1tpXSk7CisgICAgICAg
IGlmIChhcnJheVN0cmlkZXNbaV0gIT0gMCkKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3Rl
ZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9BUlJBWV9TVFJJREUgZm9y
IHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgYXJyYXlTdHJpZGVzW2ldKTsKKyAgICAgICAg
aWYgKG1hdHJpeFN0cmlkZXNbaV0gPCAwKQorICAgICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVk
IHZhbHVlID49IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fTUFUUklYX1NUUklERSBm
b3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBtYXRyaXhTdHJpZGVzW2ldKTsKKyAgICAg
ICAgc2hvdWxkQmUoYCIke3R5cGVvZiByb3dNYWpvcnNbaV19ImAsICciYm9vbGVhbiInKTsKKyAg
ICAgICAgaWYgKHJvd01ham9yc1tpXSAhPSBmYWxzZSkKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJl
eHBlY3RlZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9JU19ST1dfTUFK
T1IgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgcm93TWFqb3JzW2ldKTsKKyAgICAg
IH0KKworICAgICAgdmFsaWRBcnJheUZvclBuYW1lID0gbmV3IEFycmF5KAorICAgICAgICAgIGds
LlVOSUZPUk1fVFlQRSwKKyAgICAgICAgICBnbC5VTklGT1JNX1NJWkUsCisgICAgICAgICAgZ2wu
VU5JRk9STV9CTE9DS19JTkRFWCwKKyAgICAgICAgICBnbC5VTklGT1JNX09GRlNFVCwKKyAgICAg
ICAgICBnbC5VTklGT1JNX0FSUkFZX1NUUklERSwKKyAgICAgICAgICBnbC5VTklGT1JNX01BVFJJ
WF9TVFJJREUsCisgICAgICAgICAgZ2wuVU5JRk9STV9JU19ST1dfTUFKT1IKKyAgICAgICk7Cisg
ICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRBY3RpdmVVbmlm
b3JtcyIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9yUG5hbWUs
CisgICAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGdsLmdl
dEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBwbmFtZSk7CisgICAgICAg
ICAgfQorICAgICAgKTsKKworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoIlRlc3QgZ2V0
VW5pZm9ybUJsb2NrSW5kZXgiKTsKKyAgICAgIHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9j
a1Byb2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgICBzaG91
bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMp
Jyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgIlRy
YW5zZm9ybSIpJywgJzAnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRl
eChwcm9ncmFtLCAidV9tb2RlbFZpZXdNYXRyaXgiKScsICdnbC5JTlZBTElEX0lOREVYJyk7Cisg
ICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgIm5vcm1hbCIp
JywgJ2dsLklOVkFMSURfSU5ERVgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxv
Y2tJbmRleChwcm9ncmFtLCAidV9ub3JtYWwiKScsICdnbC5JTlZBTElEX0lOREVYJyk7CisgICAg
ICB3aW5kb3cubm9Vbmlmb3JtUHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsK
KyAgICAgIGdsLmxpbmtQcm9ncmFtKG5vVW5pZm9ybVByb2dyYW0pOworICAgICAgc2hvdWxkQmVU
cnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKG5vVW5pZm9ybVByb2dyYW0sIGdsLkxJTktfU1RB
VFVTKScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KG5vVW5pZm9y
bVByb2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKScsICdnbC5JTlZBTElEX0lOREVYJyk7
CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgobm9Vbmlmb3JtUHJvZ3Jh
bSwgInVfbm9ybWFsIiknLCAnZ2wuSU5WQUxJRF9JTkRFWCcpOworCisgICAgICBkZWJ1ZygiIik7
CisgICAgICBkZWJ1ZygiVGVzdCBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lIik7CisgICAgICBw
cm9ncmFtID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQ
cm9ncmFtKHByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1l
dGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIDApJywgJ1RyYW5zZm9y
bScpOworICAgICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHBy
b2dyYW0sIC0xKScpOworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9W
QUxVRSk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUo
cHJvZ3JhbSwgMSknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURf
VkFMVUUpOworICAgICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1l
KHByb2dyYW0sIGdsLklOVkFMSURfSU5ERVgpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKKyAgICAgIHdpbmRvdy5ub0xpbmtQcm9ncmFtID0gZ2wu
Y3JlYXRlUHJvZ3JhbSgpOworICAgICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihub0xpbmtQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknKTsKKyAgICAgIHd0dS5zaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAnZ2wuZ2V0QWN0aXZlVW5p
Zm9ybUJsb2NrTmFtZShub0xpbmtQcm9ncmFtLCAwKScpOworICAgICAgbm9Vbmlmb3JtUHJvZ3Jh
bSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFtKG5v
VW5pZm9ybVByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1l
dGVyKG5vVW5pZm9ybVByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgc2hvdWxkQmVO
dWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vVW5pZm9ybVByb2dyYW0sIC0xKScp
OworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7CisgICAg
ICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlmb3JtUHJv
Z3JhbSwgMCknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFM
VUUpOworICAgICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5v
VW5pZm9ybVByb2dyYW0sIGdsLklOVkFMSURfSU5ERVgpJyk7CisgICAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKKworICAgICAgZGVidWcoIiIpOworICAgICAg
ZGVidWcoIlRlc3QgZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIik7CisgICAgICBwcm9n
cmFtID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9n
cmFtKHByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEFjdGl2
ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0JJTkRJ
TkcpJywgJzAnKTsKKyAgICAgIGdsLnVuaWZvcm1CbG9ja0JpbmRpbmcocHJvZ3JhbSwgMCwgMSk7
CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dy
YW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklORElORyknLCAnMScpOworICAgICAgLy8gVGhlIGFj
dHVhbCBibG9jayBkYXRhIHNpemUgY2FuIGJlIGJpZ2dlciB0aGFuIDE2NCwgZGVwZW5kaW5nIG9u
IHRoZSB1bmlmb3JtIGJsb2NrIGxheW91dC4KKyAgICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0
aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfREFU
QV9TSVpFKSA+PSAxNjQnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxv
Y2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMp
JywgJzMnKTsKKyAgICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFy
YW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhf
U0hBREVSKScpOworICAgICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2Nr
UGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFH
TUVOVF9TSEFERVIpJyk7CisgICAgICBsZXQgaW5kaWNlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1C
bG9ja1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JN
X0lORElDRVMpOworICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAg
aWYgKGluZGljZXNbaV0gPCAwKQorICAgICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVl
ID49IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1f
SU5ESUNFUyBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBpbmRpY2VzW2ldKTsKKyAg
ICAgIH0KKyAgICAgIHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKKyAgICAgICAgICBn
bC5VTklGT1JNX0JMT0NLX0JJTkRJTkcsCisgICAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19EQVRB
X1NJWkUsCisgICAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMsCisgICAg
ICAgICAgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTLAorICAgICAgICAg
IGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhfU0hBREVSLAorICAgICAgICAg
IGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIKKyAgICAgICk7
CisgICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRBY3RpdmVV
bmlmb3JtQmxvY2tQYXJhbWV0ZXIiLAorICAgICAgICAgICJwbmFtZSIsCisgICAgICAgICAgdmFs
aWRBcnJheUZvclBuYW1lLAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7CisgICAgICAgICAg
ICAgIHJldHVybiBnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwg
cG5hbWUpOworICAgICAgICAgIH0KKyAgICAgICk7CisgIH0KKworICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKKyAgZmluaXNoVGVzdCgpOworfSkoKTsKIAotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CitsZXQgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpzCmluZGV4
IDZkOTM2YjUwOTYwY2Q2Yjc4MmEyNTUxMzU3ZjRlNGU3OTY3NDgyYTkuLjE0Y2Y0NjI4YmVjMDFm
NzcyNWYwNDc4MTM1ZmIyZWU2YTE0NmEyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcwpAQCAtNzEsOCArNzEs
OCBAQCBmdW5jdGlvbiBnZW5lcmF0ZVRlc3QoaW50ZXJuYWxGb3JtYXQsIHBpeGVsRm9ybWF0LCBw
aXhlbFR5cGUsIHByb2xvZ3VlLCByZXNvdXJjZQogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh2aWRlbyk7CiAgICAgICAgICAgICB2aWRlby50eXBlID0gaW5mby50eXBlOwog
ICAgICAgICAgICAgdmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgICAgICAgICB3dHUuc3RhcnRQ
bGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICBydW5JbWFnZUJpdG1hcFRlc3QodmlkZW8sIDEsIGludGVybmFsRm9ybWF0LCBwaXhlbEZvcm1h
dCwgcGl4ZWxUeXBlLCBnbCwgdGl1LCB3dHUsIGZhbHNlKTsKKyAgICAgICAgICAgIHd0dS5zdGFy
dFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGF3YWl0IHJ1bkltYWdlQml0bWFwVGVzdCh2aWRlbywgMSwgaW50ZXJuYWxGb3Jt
YXQsIHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIGdsLCB0aXUsIHd0dSwgZmFsc2UpOwogICAgICAg
ICAgICAgICAgIHJ1bk5leHRWaWRlbygpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTNkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20t
dmlkZW8uanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9q
cy90ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0zZC13aXRoLWltYWdlLWJpdG1hcC1mcm9t
LXZpZGVvLmpzCmluZGV4IDg2ZDc2ZjI5ZGUzYjU5YzFiYWNiZDk1NjlhNjk4NjE2ODFjMzJjZWQu
LmEyNjhmN2Q4ZDU1MGU2YWY0Zjk0NWZmMGU4OTJiY2M5YTlkOTBlMjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTNkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5q
cwpAQCAtNzEsOCArNzEsOCBAQCBmdW5jdGlvbiBnZW5lcmF0ZVRlc3QoaW50ZXJuYWxGb3JtYXQs
IHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3VlLCByZXNvdXJjZQogICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CiAgICAgICAgICAgICB2aWRlby50eXBl
ID0gaW5mby50eXBlOwogICAgICAgICAgICAgdmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgICAg
ICAgICB3dHUuc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICBydW5JbWFnZUJpdG1hcFRlc3QodmlkZW8sIDEsIGludGVybmFsRm9y
bWF0LCBwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBnbCwgdGl1LCB3dHUsIHRydWUpOworICAgICAg
ICAgICAgd3R1LnN0YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgcnVuSW1hZ2VCaXRtYXBUZXN0KHZpZGVvLCAx
LCBpbnRlcm5hbEZvcm1hdCwgcGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgZ2wsIHRpdSwgd3R1LCB0
cnVlKTsKICAgICAgICAgICAgICAgICBydW5OZXh0VmlkZW8oKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qcwppbmRleCA0Njg0
ZWE4MTBiZWFmOWYyN2E5MGQwZmEzOGRhNWYzNDkxMjhkZmI2Li45YWZmYTEwODIzMDQ0YjE2NDkw
ZTBlMzdiZjhhYzJiM2NjOTFjNzNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRp
bHMuanMKQEAgLTE3MzMsNiArMTczMywxMCBAQCB2YXIgZ2xFcnJvclNob3VsZEJlID0gZnVuY3Rp
b24oZ2wsIGdsRXJyb3JzLCBvcHRfbXNnKSB7CiAgIHJldHVybiBnbEVycm9yU2hvdWxkQmVJbXBs
KGdsLCBnbEVycm9ycywgdHJ1ZSwgb3B0X21zZyk7CiB9OwogCitjb25zdCBnbEVycm9yQXNzZXJ0
ID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3JzLCBvcHRfbXNnKSB7CisgIHJldHVybiBnbEVycm9yU2hv
dWxkQmVJbXBsKGdsLCBnbEVycm9ycywgZmFsc2UsIG9wdF9tc2cpOworfTsKKwogLyoqCiAgKiBU
ZXN0cyB0aGF0IHRoZSBnaXZlbiBmcmFtZWJ1ZmZlciBoYXMgYSBzcGVjaWZpYyBzdGF0dXMKICAq
IEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCB0byB1c2UuCkBAIC0yOTIzLDE0ICsyOTI3LDYgQEAgdmFyIHJlcXVlc3RBbmltRnJhbWUg
PSBmdW5jdGlvbihjYWxsYmFjaykgewogICBfcmVxdWVzdEFuaW1GcmFtZS5jYWxsKHdpbmRvdywg
Y2FsbGJhY2spOwogfTsKIAotLyoqCi0gKiBQcm92aWRlcyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuCi0gKiBSZXR1cm5zIGEgcHJvcGVydHks
IG9yIHVuZGVmaW5lZCBpZiB1bnN1cG9ydGVkLgotICovCi12YXIgZ2V0UmVxdWVzdFZpZEZyYW1l
Q2FsbGJhY2sgPSBmdW5jdGlvbigpIHsKLSAgcmV0dXJuIEhUTUxWaWRlb0VsZW1lbnQucHJvdG90
eXBlWyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIl07Ci19OwotCiB2YXIgX2NhbmNlbEFuaW1G
cmFtZTsKIAogLyoqCkBAIC0zMDk5LDcgKzMwOTUsMTEgQEAgdmFyIHNldFplcm9UaW1lb3V0ID0g
KGZ1bmN0aW9uKCkgewogZnVuY3Rpb24gZGlzcGF0Y2hQcm9taXNlKGZuKSB7CiAgIHJldHVybiBu
ZXcgUHJvbWlzZSgoZm5fcmVzb2x2ZSwgZm5fcmVqZWN0KSA9PiB7CiAgICAgc2V0WmVyb1RpbWVv
dXQoKCkgPT4gewotICAgICAgZm5fcmVzb2x2ZShmbigpKTsKKyAgICAgIGxldCB2YWw7CisgICAg
ICBpZiAoZm4pIHsKKyAgICAgICAgdmFsID0gZm4oKTsKKyAgICAgIH0KKyAgICAgIGZuX3Jlc29s
dmUodmFsKTsKICAgICB9KTsKICAgfSk7CiB9CkBAIC0zMTMyLDM4ICszMTMyLDMwIEBAIHZhciBy
dW5TdGVwcyA9IGZ1bmN0aW9uKHN0ZXBzKSB7CiAgKiBAcGFyYW0geyFmdW5jdGlvbighSFRNTFZp
ZGVvRWxlbWVudCk6IHZvaWR9IGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbgogICogICAg
ICAgIHZpZGVvIGlzIHJlYWR5LgogICovCi1mdW5jdGlvbiBzdGFydFBsYXlpbmdBbmRXYWl0Rm9y
VmlkZW8odmlkZW8sIGNhbGxiYWNrKSB7Cithc3luYyBmdW5jdGlvbiBzdGFydFBsYXlpbmdBbmRX
YWl0Rm9yVmlkZW8odmlkZW8sIGNhbGxiYWNrKSB7CiAgIGlmICh2aWRlby5lcnJvcikgewogICAg
IHRlc3RGYWlsZWQoJ1ZpZGVvIGZhaWxlZCB0byBsb2FkOiAnICsgdmlkZW8uZXJyb3IpOwogICAg
IHJldHVybjsKICAgfQogCi0gIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAnZXJyb3In
LCBlID0+IHsgdGVzdEZhaWxlZCgnVmlkZW8gcGxheWJhY2sgZmFpbGVkOiAnICsgZS5tZXNzYWdl
KTsgfSwKLSAgICAgIHRydWUpOwotCi0gIHZhciBydmZjID0gZ2V0UmVxdWVzdFZpZEZyYW1lQ2Fs
bGJhY2soKTsKLSAgaWYgKHJ2ZmMgPT09IHVuZGVmaW5lZCkgewotICAgIHZhciB0aW1lV2F0Y2hl
ciA9IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHZpZGVvLmN1cnJlbnRUaW1lID4gMCkgewotICAg
ICAgICBjYWxsYmFjayh2aWRlbyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXF1ZXN0QW5p
bUZyYW1lLmNhbGwod2luZG93LCB0aW1lV2F0Y2hlcik7Ci0gICAgICB9Ci0gICAgfTsKLQotICAg
IHRpbWVXYXRjaGVyKCk7Ci0gIH0gZWxzZSB7Ci0gICAgLy8gQ2FsbHMgdmlkZW8ucmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFjayhfID0+IHsgY2FsbGJhY2sodmlkZW8pIH0pCi0gICAgcnZmYy5jYWxs
KHZpZGVvLCBfID0+IHsgY2FsbGJhY2sodmlkZW8pIH0pOwotICB9Ci0KICAgdmlkZW8ubG9vcCA9
IHRydWU7CiAgIHZpZGVvLm11dGVkID0gdHJ1ZTsKICAgLy8gU2VlIHdoZXRoZXIgc2V0dGluZyB0
aGUgcHJlbG9hZCBmbGFnIGRlLWZsYWtlcyB2aWRlby1yZWxhdGVkIHRlc3RzLgogICB2aWRlby5w
cmVsb2FkID0gJ2F1dG8nOwotICB2aWRlby5wbGF5KCk7Ci19OworCisgIHRyeSB7CisgICAgYXdh
aXQgdmlkZW8ucGxheSgpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZCgndmlkZW8u
cGxheSBmYWlsZWQ6ICcgKyBlKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjaykgeworICAgIGF3YWl0IG5ldyBQcm9taXNlKGdvID0+IHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soZ28pKTsKKyAgfQorCisgIGNhbGxiYWNrKHZp
ZGVvKTsKK30KIAogdmFyIGdldEhvc3QgPSBmdW5jdGlvbih1cmwpIHsKICAgdXJsID0gdXJsLnJl
cGxhY2UoIlxcIiwgIi8iKTsKQEAgLTM0NTMsNiArMzQ0NSw3IEBAIHZhciBBUEkgPSB7CiAgIGdl
dEF0dHJpYk1hcDogZ2V0QXR0cmliTWFwLAogICBnZXRVbmlmb3JtTWFwOiBnZXRVbmlmb3JtTWFw
LAogICBnbEVudW1Ub1N0cmluZzogZ2xFbnVtVG9TdHJpbmcsCisgIGdsRXJyb3JBc3NlcnQ6IGds
RXJyb3JBc3NlcnQsCiAgIGdsRXJyb3JTaG91bGRCZTogZ2xFcnJvclNob3VsZEJlLAogICBnbFR5
cGVUb1R5cGVkQXJyYXlUeXBlOiBnbFR5cGVUb1R5cGVkQXJyYXlUeXBlLAogICBoYXNBdHRyaWJ1
dGVDYXNlSW5zZW5zaXRpdmU6IGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNl
cy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJtIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm0KaW5kZXggMWQ5
ZDYwMzg1Mjc0OTgwNGEyMjhiODQyZjhhNTY3YjYwYTcwMTkyOC4uZmRlNTlhMThiNGRkZTlhMTNm
MzdjM2Y0NjJhZjg4YWQ0YjBmM2MzYSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA0MTg0
CnpjbWI2Y1lmekl7X0leUGlMNWUmQTB3UFRpTmBrPjk1WnJ7cSZQTmE+aypJYCtmVSsld0QyVE9e
MnJhdkhsSkdKaAp6dW4rPnBmR24/fHAtMmt8XilXamB3TEFueDVHbEh5U3N6clhiJDc+VmNlS0J7
PU8pMzBjNldDQSZIY1hJYk04NiEKeis8Vl5YNF9pIWpecDNzUE5nKHN7V31QaU5LQig3NCh0TTEz
VFhPa2k7d1BvPEJHWkF5VWQ9dHA8dGwoWWxLUyF6CnpkeTVIPDFAdVkwajZ3RSEzeUFwdTNAWk0r
Yi0jdT4mN1FqMj0oXmY5RCFoKnM4eSZSSlUkUmF9TzRLTGdHWWIhZAp6aGk9KSoteDlKbmRMXlhu
c3tOX2VESnRUUGBWRFYpNH4pNUEmOUJ7N3AoT3xWJTsmXyV1eCNlPyQzRSs+NWVwaFoKeklqU0xB
R3t8cUxyOV4oQFYwbEB9SjFLa2tCXnFNV1ZtK1U1UWFPRjUqPmcjd1BKKjgjX19jRG57QU5LejBa
eiZhCnpQSHByJURaOGFZUURUWFBeMXYjPDw8QTwqa2R8Q0pZQ2J8JXcjSGYzdkY4UUZILVJYOFV5
K3JvI0F1NThHRDFKVwp6Z1lxZm4td1Q5fFdpPCNQNi12IUxuekxvTTt2bk8yWmRRdCFpNkxUeWhI
eWhkIWF+Q3R0a149aXFVZUpoeGtBcHkKekdUcT5uQUNiTUVFbXVUPXFHWF9gLS1jfW9BIzUhPnZW
fTF6MWZse0ZIPVolN29+Y2JuJFFod2B7bjx8UzJTalk2Cnp6TVdPbnE+c2IxKFU2S0plVDhiJlEm
ejx0VG1DUzMrM3BDZkwyNEdRcnRgN3IoNnIjN1hKQ3pAT15+fmJlfS1YUwp6blEmaH55WWpFTVdK
a0tzY2pxME1XKFFFO05WQTEyQX5LRnlNd2pBR21YPXhXMzctPV9pVjViSzdLS0M1Knx1VmIKeiY8
UkZLZUNVJnxgZHR4RSZVViZCZTgpT0pCVX5HTlVVZj94JnooPF5fNUg7ejwwSXY/VjUhQ1dwX3k7
T2ZXcnZ3Cnp5dDE4elJKXn5JLVFBPnN5KHx9RkFUP1lSP1dtKVJgc3F7c0p+dzlsY1IlTU94UHtN
IyNVPl82bEhuPUgqanAlSAp6Q0BmZWdKZjdCNncocjk2djxxZVg/diFQYEVYKHZQJDNxNDB0Sztg
eDskZ2wjZ0Z0UFkxZFdVQTRuT2FYaGtfMjkKeigoK3lrJUVuNHomfiQhbVU4a3R+ekBmZ309SFot
QWhUb2VTOzdrb1RubkA0PUI9fjh8SEZXPUM5N3Q9RnxGQHg5CnpqVXtzP2YpRU1uOU1BVXwmLWFn
JmBqMEMoX0dUcWRBaDBWYjwlfXdMSkN3WH1XaDlJcCRGXlA1JEtVdU5lJS1QaQp6dTt+I1p4anYp
JEtHIzRXKCU/Qm9fK0RreWY+Tj5vJURfNVZeezdAczd8QHVWMkNsKzllVzNBPm5pXkp7WDt6RkgK
el9Wc00xI3lEQzswZkR5dDgtYClWQFp5SFIkPyZNbkx+b3decTlVbXxAUz5AeSo9KXFhKF9We1VQ
V0klZihZOH1GCnoySWFLSyhPfFU5aWQ+dVImeld1K2wmV2QzcjUyfCN1U183IXk9QWFCLUF4N052
PkMoV3Zscjx3dEkjKEc0cVomTAp6WS1uezIpOStpUnpZc2hDaio3b0Y9VXQ+XyEwZ0JEbVZlJSRW
Y2dHTWh5PkdSLXRpbmVVQ2NPTVcweXJ8Yn5FZEoKemtOd0gxekt1Sjw/byM8eSpLOE0/Tzc9Ki0w
KiVMdCYzOSlZUk8pUUA8PmltcnApSjFMcks9MkBXRFE7cW8jTm42CnpANzN2dXI9TU1RaiZiQ2t6
YXsyYGdEWTFMSiNKT0AzRjdqTUx0bXdESHRNQmZ3JFR6LVV7XitWWk0yPTJJYUpEPAp6NnE5ViM4
Mz5NKiMoVTt9KGBEb0FpZ0VMTXA5SSRjN18qX2xpRDZPNk55JlEpLSVJPHI7T28hSkdWVD1JVFI0
N2kKenE1N1RtPCpXVXVRVHtyOTVRSSp0SVcrWklSb3dCR2wzaFpZI2x8PihSQUFLfGBTa0hScEtF
cGdJfHV3Rnc+VVNSCnpeTERAQiZBUD1WQEZhPXU4TUUjTWF+fEA8dHI+SVNeMHtSQmU0K2dBdXpj
VT0kSjIoYlZQZ3JOZGtZMEM7cyp6Ywp6cFAqKGpQUGdWaUB6Y2h0ZEMwSFhCK35oKD5FMEA4Slht
MmNvbD48dkY/QmZuRVAhJDwmb290QChOLT5MWWdpU0gKenhmTzw8aXllbjJgPGBDPHp2RmZNPmA/
Zl9mY1N9M19eKmhjNXcxQFIjTUEmc14xXmFTUm4jbyNealBmcmx7UD9WCnpxfUZrI0lpVnktZ1hn
ODteVX5udHFeTXRuJUZodz1Kam9tbmJsWlRDN2VlMjNiPklHamxXU0ozcGR2YmxEKkRvQQp6YmJy
Sz9tZF5jRUN1JW9zN3lXfm9jLT91O2tocDBeUjdTdTNGI1hVKld6eHkmYko9bXghTlgleD1BKk9y
a05+TnUKei0zdkw1NkZ3M2ZwUGU+ZkQqVEEla2MzWCRhST09Nmt5IyQ7N0RjK24pQGlufWZSTEI0
MjhNK2M2VjRfUHZwZyM7CnpQPnFEZWxEeT5xTDdOYXg+fFF9akArNCVFV1Z2MkwkXlBZN3ItSDJz
Q3dNKUM/YWEqLUhKP0J5N0Qqakxebyp5TAp6cjlGJU0mXnpBa2V5VF8wSSluWShAfkkjfUo/RE1z
OEBhQlZSP0EhMFlKYW1ObXRzOUlMWDA5PFhhKFhweXMtNGUKekBfQiZaUy1le31aTU82ZkMzM0Ri
X1g7bncyWEorelpkXjQmWVFpNDgqPT5AMWVUZEZEU0FfVnc+QD4qOGFYTEFICnopYmd9ZWR4VWlJ
Qkh1YTxzcm5mY3A9S2Q7cTlmSmdzTHZGb013VWtFSUJWWmNMbFQ9MHktN05PaTc4bVoyM34tTgp6
SiZUdGVmU2hnN3tpRjEkVGZCc0NfPklRZ2ope0VFJmJlKU1hIUNDWmVtdDFFdkBSOE8oezg/aSE/
RyRuYXchbF8KenBldExmdEYxWD02fn0yJCZWKDIte0wjbiplJmVIfTRwdD9VamhATVQmZVYlLTMz
TiRmYT5tRHRzZnxrJjlWfG40CnomIXNJTz44M2QqcHtWNTtVWlomdUl5ZkQ4ViNhI0k7fGpiKFBm
eT1rcHElNExmTzVnTUJnZkVmPlZlMjEmNGx2Pgp6OFNBeHhRXkI1blBicnV4SWIpJGd1RmVJPE9N
TSloQm4jfS0qMzxMZHJNfUhtMjxwYiYyNj52QGVHQ243NVZ9Nz8KekFqU3dhO0BhNSg+SVRWJFhO
Y31TO0RAd2UhbTNPJCpYU3M3Nip7ek0jdFkrXiotfmlgK3ZwJCszVFRpPCN+SGglCnpxMmdkO3F0
dXEhcGlfeFdqNHI4XlpIdj8hYFM3TXYlZ1RHI3B5eUVLV2NzWUBmK2NeVW5FU1h6PkI9O0VMUSol
Owp6V2pNM3piekpCV2M4Ull3MFdRIyg0UmtIXyhnP3NnTDYkdVJCd2MhYEBZQHo4QjtDX01MTGt6
akBYRXV4TFJeIX4KejNVQH4lX3hYKH5We1U2OFhrNFcwRUB9O2dpaFc0ZVd4KklDWigwcGQpTXsw
O0FfRU05UlRWSVcmMUNCN2FSNnV6CnpSOEB2NmVOV0hSRTVxMFgzazh7OVdCb3Q5R3k8d0drYjdP
ZzhIPStQcTIxNlMyN1EpVVArSCY3S0xVfFdRUTtJKAp6JUI4WlEpWXZoKm9QfX1odmY5O3RPc0lp
TD9RQ3Qmd3BMfFlYWmEyKlRla2wrWkArNCRgYz41MnV7LUhgPVl+PnsKej1YOUEzbk8wZ0kqNlYt
VHl+Ynw2X2tiJisoIWxjM1RKRT8wZFl4RzhGMDJ4OzB2YTBBRTYpa0ZUJmw2X2NLVHRpCnokNCFC
S2R6VWBGbDBFem9ZeT56SlRxYkAwVEJjRS1lbG1GMnYtdk8rRVNDcDNTKHRiVGFCI2RsamAkK3Jg
YlJ6VQp6cyQqSHJgfHhWc3hwNEwpPDw5PjNiWG83dlRiKSVwak8haXglMTx2MTlpdTEwJXVwSUtf
Uj4/PCVVdyNaY2ZJbjsKekghJkU5XlN+Y0FXbWxXVighcUlYQH5ZfSEpeDJJZ1pIdmUjSnxZNz1x
WFdIP0p1KjlLPndWU09JT3JsWShjcGgkCnoqdit0V054TTlpO0FAT2grPXpCaiU/cl5gU0hXeXZ2
Z0wqTFFrYEBYSVBlMDwzb3pjY2FJa08+QVUzXlRGeldTRQp6c3RQa3gmRHtZczxHNG48ZihQclJ6
Kng0dFU8OCNvMEcpWTMzezUqLU5WRGA0ZEw3VWl0cVVMdDFYdmU5NV5RN1AKemZDPXRDOFphJU1u
Nzx9R0d3TX1YNUAwUFdTUTNDMTZxVz5fYndqZnh5KT8pSUxOY3wlZDJteHVAUnomN2BYVlZpCno9
JU1rWElkcXt4YisrJDZ8NWZAWVJmPFdHPXY+VHBANWdPamNTUUVncTEyc25NKWFnZWU3Y3kqd2xr
R2cxc1IpRQp6Xl5MLSpDYUdpQVg2fl5uP2hlN0RCO21MeDxudjtMWStPUiFzQn1gSmFZVEdGdTlr
dXYpO2V5eThjVUt9bjRLZVMKek44fFp7cj8oOyR0LWJEQ3AmZXkjK3IzI3EtOFNrYCt3emFsI0xT
KHolTk52SloxJkhMWDRuZzxMZyhVQ0FDalEpCnpgNDdxaXxNc2tPTHJZcz8oc3Z9dGtzOylSP241
SEdpflJnTFBBemA+Pj1tTjljcm4+ckw5YDMzQmVXSTBMTVRxRQp6KUBwTWVeQ0tkRU0rJiFYan15
bzUrNT9HPkZxYmtDNW1jKEI8SGooUmBld3s8ZnUrPHNNPVdWIzJCKE8ob2dGTyoKenlIQSZqb2wq
dUpUfGMkTUJAO2hhRT57Z3xWbT8zZFFiVC1TPl5nWTRkYSMoN1RMcyE9dUw5VG51bk0jKlQ/SkN6
CnpTQWpJK0RzYilBKkkpc2I8VCY7ayMtTE0qNzQtV05nWEAtN2ZpNTRjMF5PKnVMSHpnTGRMM1dP
QUFZT0BfYH5seQpKeEMtPzlAIXg2M0JhUSQ3CgpkZWx0YSA1NzcKemNtYURIeTN2P2IlSnUlQGA0
ZjNHeShBazJlUEBeS140O0FYeXQrbHliN2ZsYW4jUDM/bz48N2JZI3tITkA5ckw7CnpvS1ZRJl54
IXAzajB6QzBPej5gP1dScGJ1OCU3MiZoQDk5TTgzOzA5Z1Z5enAmSFBSZHo3MEotaURoWX5tVTsk
eQp6aDZhWT1qd29FMCZKS3NvKjxoVUBkeWNNeThlPzw0aytKd18kRmdhTFlVX15vUlpPbURSSF42
TyY9fDAqdjArdnQKejZVWSY3aTtKT1opc2hjMXFAUkZ0QndaSmB5WlNsJXlTTjZxdzQrIUJTOHRx
cnBnUzMxY0tWNCR1OFRXZExXM01iCnpKcEtKIytOVCY4U2I+bTxvfjV+PTBUP2hhJFVBUmlELUUh
RS1wSGB8cjt4UChvNz8qNU8/PCtlOWhCRnopak5GSQp6LU1faCFWU0NzMk0jaGcjakZVYnpHVmgr
YXhydVNZX0hMTCs2WFBZMjVWSW5aNWM0ZE01WChqK0E9Vl8yNVN0XkMKejVXNXlnaTJWfGg1WFVF
dzVOOHJwczJwZng2VzF3Xzd9c1ljV2p0Vz5kNzY9Z19fQjZTKmJIPHgpVHg0KEp+WG1gCmZeemtv
JkRndWYkRjx0PSkzN1F9WUc0QkJoMl5+Y2VWKGtTMGNVYmZ5CgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJv
dGF0aW9uLTAubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTAubXA0CmluZGV4IGFlN2VlZjEyNWFjZDgzMmZm
ZTllZGFmMDcxNTk0MDllNGZhMTE1NjAuLjhmNDcxMDA5Y2QzYjMzMTlkY2YwZjJjODk2OTg4MTkz
ZDYxZDk4NjQgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTUxCnpjbWNhRXV2QjF6a35q
bExUMlgyJDB8VSNDKz8yITsxX3FgRFleP3dQJnpXcV9FWFFhI0lnRDhzTlZZSlcwbTxGVwp6XjZi
Vnwxe0g+ZSMqLWcxI3tmbV9TbkxeJUMpY3MkQ21KZ3gjVFFmLUNGVytQKmN0KVppN0FOJUNBTmtA
UiNJa1MKenY4e25aTkBoYE5HRHhJNkg4Vlk8Qm5pbU1GRyRVY1B0UHZeJTBkSlNmTGdPdEQ+TCYt
WT5pOX1wdj9IKCVzZTE+CnpHQyEqcHFzZTN8KXxoJmEpUSVQZyZIdlhuaEh8SGlIVDRgd2JlaDVV
Q19qU0RvPTw5fmFuMUgpM2xCZEB2aGxvYgp6WWkoMkxhRkJKekV7MG5NP2RfYnJSelpoZER3cFhf
SismPmE+JH4lRWZxTUJSTjlXKFRxVmRzTFRLU2c5TXdkMGUKejducXBNRjdtVCMlQiM+Z0lnTVkt
fEt5YUhiQ2prenV1SlpyYHw7TVYoMDBrVHhBVjYxKXJWYEh5Jl5jN1pEWE02CnpxN2NeP3BeK0B5
PUAqKV80bz54MDdPP1kxWDBRbGohbldAWT5lSyNSeTdCU0c4fHxOIWREM310bVVZd3JmNmRtfQp6
UWhkSklMVX17eiozR1BiZC1jRTZlbWk1anE0fj1ee2p9TT9UVml3SDdYU059d1BJYl92a0tOWG0q
PDt5R3JjZjEKejVqcDN1SFBaQ0V7TEooI3Q4TCQlZDJxU0JVVk1RfiFvPzNZTShmd0Rtc2x9dntq
fHBrY01ReVQ5OEBtSTR7VGBlCnorNEs2XlQkdSV4QUhDbmFvM3o/ZnBrWnN7UnJfbzU4dUlANFdB
LWoqYHsmZ0JHSWlteEdybjdVQTE3fHxjeyVaKQp6V3FPez12ZmFCK003OGQ4NmwmdkdSSURWQkJk
fF5IPUsxKlZxT3okQCNyMmFzLTRBT1l2dHEyakIzNyEtd2VWcDUKem8/eD4jfDk7OUA4WDdWYy0j
Vk4wZjY8QWNDdiZFJT11NGx5Wn40LUNWJFo4Ykh3KUN8VE9SSGFIfEF8UGNVe3h6Cno/REpXMyZP
TG95WXZlT3E+ZyZKcTQ4QTllO3ZeUitgQGd1ZWI1RnhQaXxFPXYlODVIbUIpOSFyd2BwNiFgQ1hP
QQp6WFNLZXd0ZTJ8M3RYSCU/QExJX2RtRiVReFZZaG56UGJqSU1JQiNkNUBnYih5R3h+aGArbyRt
N19tI0BiaUQwe0IKenFPa0F6TTJZbFFKRzNvfW1wKkZ6Y0ZpfD9nezwkdiskWjgpPTZlKkVmMDl+
cD1PcHRNY0dnY3lxNyF1TT1OaypsCnpKbE04O0ZOZjZ+TUZzfEQpYD0+YGpRU0kyIzQ7dkt7SERw
Y2U2aiojMnhITFhRYnYxOHEyaUxIOTBtcjRiO1R2Ywp6RExAKG83PWRgKzxnPCtPajB1ejlHTWMp
WUIkZyNSR29+PGJ7ZVE/SG8oYG5mKztya3kyczlVQGw5fERYVXIyUXQKekJMaUU7PiZLXis0KmRQ
YDE3d0NzUWJgZG91S0B3YD9GSkJAb1dTSEgjcXQzdDA1Vj5yeEZrNnJCbnQhfXpRTj1ACk5PZmhX
Y0NWR1lqMV5gTVpqV3olUAoKZGVsdGEgMTAwMAp6Y21WPEUwfmg/STVaNGZwQV80O2JsT3pSbTBW
dEUwMXppRHZsbEJFRTBpY3MwMjI9cXtsWFY2Xjg0R2lDVnImMmEKejBIPD93YjdUTWowMDAwMDAw
OTYxMEdFQF4xfEk9e2xrRW1JSn1xSChWP3pOI3p6aEgzMDJPQ0t6emYqfDFaWTQyCnowMFJJKDAw
MGJ3I1JgJUUwMG41dmdVY1dRMDAwelhiYUhlNjAwMDAwMVBCTksxUEJPfFg5cSRXMXR8YWswMDk2
MQp6MDJGZ3tWe1pUZTAwMDAwMDA5NjExMV4pcDJWNVVESVc5M1VGYVE3bTJ4ZjkrV2RIeUxGPlBk
RmJOflBYVkZtXk4Kenw2UCRlOXN3fHNTUzxsQ2slbCRfRnA8MzwyUWZNQGNyaF9Daz5nd2VGcTEk
NUtMSXE4ZkJ8bkpGZCVualg9aUEzCnphNks+fVloYCg5WmdmMn1GZCVEWGQxLUVSVXV8aF9KdXtP
fjB4QUpCbFkwVk9mNTJza2diUkZPdyFhPCNSWWdhYwp6JmEweGdHKXVHQGx5NVRLOGhJR2d7JD1D
NVBSOWgzdT1xKD41PjsodlhDP1RNTV89I2I0Mm5zTG5NdmR5RlRjY3EKejRGJl4lMDYrQG8qKSN9
RzN2WDQwb0EzfWA9NWUlUTkkKD9JalFqZ087T29GcShLRCo2Pms/Pn15SiE0MTtCc0k5CnpPU0A2
blRVPTJPZjd+MVdkdHY4QGhRJExCWTl5OVVQRUptMlF4UT1KUjwjcGRiPU8/YlIxTj9JMGRQUDc1
RUIzZAp6TEk0MU9VO3ljQHRYa0t2fEcrPEJ3a1FBfEBjO21ANiRrKFYwMDAkYWh0OWFDVXJ4SUo9
cEQpKGZFbW92QTdlWmUKejFaOEhVJjxscTt3N34qeSZAUUE0cExzbkV6d0xyU1YmPyVkcjJUVm1l
fVBJfSt5QVhUIUQoPkAlb3EwWGImQC1fCno+PyhpQjV7Tk0wPVl+VzgyTFVFekVyXk0lTGltT0xE
YiEjIXVlSlg9M0NDfiR1JThaeHFzI3JtQVQ9MVAwQT1YNQp6NG09c1Y+PClZVSlpQXBNYHp8ZzVG
NFAmVkFIWCVyTH5XJn47aSYpYyhTUVZ+PVB9VmVWOyFSLT0rbDFTRlZqJXMKelhOaXhAZjJ2SExQ
WXZlKDM9clVtQStEeDVRJSloPUttMCVjZzBrQ1AxM3Q1M15NQXNzVn4qVk98Sz8kUFFfUkpCCnpw
YFh8UHBqSUEtb2h9a0Mhck1+aGBeeCRLaH1+OEhad3NPWkImRU00S2smTmk0JVphJnYlOCNrQEJj
SlZIfjxJKwp6ZkMrKkMwRCFPbjYkayhZZnpqNkd0WGxKSHs2QnpUOTJGRUdlKmkmNXE3V2k4JHEo
bVdUSDRKSWlaUT8ja2dYUWgKeio0RWI2Klh4NzswWkNzM1NPKCl8Z0NTbVQzNz1+O2JvRH5UWmBL
JnVsKmFZK181djRTJUtQQjJuUkpBJWloWkh7CnpCSGUxQUg9dGt5V0NqMmo3JWE9Z1ljNyVWTWAw
S3lRT2NmWDdxWk5UY0RBMXNgfiQ+QnAhN2VjQzAoN2FiK3s5VAp6TXR7NCNqQ1RHTjtqVmpxLS1m
P0tGOTdQeFBgYGJBSGc9P35IX3grJjsoRVE7Rlc+bjhWNj5vNE8rOGxvLSVmZVEKV3lkfFUoKCNY
dFJjb0NMQE5xVUZ0dURiQj0zODF6QgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0wLnZwOS5t
cDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJj
ZXMvdmlkZW8tcm90YXRpb24tMC52cDkubXA0CmluZGV4IGVjNDk5MGU1OWQyZjc1MWQ0ZWEyYjdj
ZDdiZmViZmQ3NDA2ODgyYjUuLmJhZTg1Y2QzMjQ3MmI0YjBiYWNiMjZlM2RlZWVkMTVlOWYwZWZh
ZDAgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTc2Mgp6Y21WPDgxfDlrMzdOLS1DQ1Z2
SyRaRGU2fGY9UG95MDAtfnxfNWU1fTkyZnVxMUhnVGMqdUMqTGxacVMzJitNc18KenomRUViP3JW
Qi16P19ARCYocnQlX3UxKFdzUGAtT2RkfVZKZUspJGg1OWEhaGNkTn5rY3V4QT1mQj04T1U/Nzhy
CnpfaEs4Z2NzSEJ4OHhPZndFJlRYeV5KfCk5I3FSM3dWRUwhYG9pb0FPMj1AKSomVlRvP0N2JEwr
dUcyYUc7bTtTcAp6JShsKSQ4VjNReWYzb3c2Z2lWUlQ9Zm1EWEVrJm5DNCtpVXUpMU8zbEk4PjVG
TzNgMWRrYDFZWXR4YHF0WUU0XmEKenJ9a2d6UjtIdVc4ZGVSRzwwaWs+UWhYVj5aO0NKe0xtMkx7
aD5TKEIpJllIN3R5Rm81K2pWeH5FZCsrYUZxZWxsCnpVWWpQYlhhXzhRdVlaZGY3d3NubCVrSUVf
NXRZVXQpKGhIYkU+Yk1mX3JNbj5xWSU9dGF4X0s7emlmLVVvRGpMdwp6MnwrSytseTt2e2tCSkJO
Uz83VihOOShMenZ8ZVk4UHl+eGp3bXVDJE18ej9rcT1tPylfeFFaLTwqe1ElZXJMKmEKeld4UH1h
bVhEWFk5U2FsI0QyZVIxQX1XaTw5PDxTfU57YFdJT0NhKk5ePyZLcD9YTDVhSChxZnJQTlkmVl44
X2NqCnp6P3B5WFZTZ1lMa31OKm1WOTZDQCQ4Pm9pPyUxYD9kUDs0bSFgR0xxeVoqcWwpSCl6QDd5
dGowOFBlNSFUQHtkUQp6amhQKFUqfGIheU15TGl+bDB9NygleHYzT0pEMExLcTg+TyhOT1EwPlMm
cE9rZGhhVzZFNT0/dFYqaFNFSHk5djEKeiE9SkYoJndwUD5MfVAqaiNZPHd8K2dpMlQkaiNOYnE5
clJWUWpGWVkhLTRJLXYyYjNGIXFkZns/fWNTaEIpTHxZCnpkUFJUWT5GZ3pVZXZrUUxzd1ByST1C
O1cyYmktQktnfXxpOUZeN3tRWGw+dWctK2FOQEpwR3RHQSklLWQ9WVluQwp6Uj5CJXp5WjJ5ZXVN
UV9BYGg4PShDUzg9I0tUNG1ZSm5+VFdufTM+YiZVKHZ8OVlENiQwQSQmLXd+ZGpCZT00OWsKejlN
Rzl2RypUSkpNQXtWVFcxN1BIMy09aXxTOVNicF9BNnFTVipDOEZENmh+X2ZmKGJIRUpFcX16aX5h
dXlPPSNICnozcGNtNigqQXFaST9EVFpeLXRHfDlgS2FwbEQ8dCMhIUp0I2lIT0hHSGR+bXBLOHtW
Xjs8XkhUQSVyNVF3Wlo4UAp6fDk+QDUxdk80RHFAOWIjZTtNd3JgdH43bTh+PXM9RkZufH1efH5W
T1liKkNTMElqMntsc0o+djUzO2FocGt1dU4KemZ7Qn4xXjVJQlRgITs1Y3RyKzZKN0tKeSMkITEk
KUYjd3JOPT92TVRub1pIYmhwYWojUVc2S0lfWE5RNmhEYGtfCnpnQW5Nb3plYENpYlgreC0obT5y
aCllWjlZLXhxdlA1cX5Tb3hpUnh6b18qdFFIfXBPeGc0ZW9OP1hDJXxeO0hqYAp6U196OVY9KnMp
Q3VkKyEtRGlFb0BeUm5fRU8yITMqRHdrOXpMRHFpO3QpKD43UzdjU25gcEFjSUhYdzk0RzFtaW0K
emdmZklpM1FhV0tAM2FVOzhlflMzeTdfejNxUjYmM2QxS0UzPm5UMmYwKn5qfT45dnxMRGg9YlVY
P0NNXk5QaV5iCnpnbyRAIVNGNTwxVGhJYjdeUE98K3QrdCM/TVg1SXJGaTt1KXlhI1lgNEgjQENH
R1paPlEhVGxpckM+UUwrbExXdQp6ZGk4Iz1oN1Jsa0g2OEI8SXpILW1KUmB7aDN5RnJ8KkZjbHgm
Ul5WSThCNzUqc0ReSX1rZU1IZmJ4YU5maEdnN2AKeiU9TWBNKlRNO0x1Q1JXbzdiai0laTVkb3p7
RDBDZ2ZGO0FJZ05XQGliVy1FP0AmMEV4X1crOHE9UmtveVFtfV8+CnpeS3cwJSpKO1B7Vk1Pd2Vj
QVApO1JxUG14RWxaMUNwZGsjU2BCK3FEejNYKlEoc341STJXQURhazFQJTs9QGJPXgp6NmRJMXVs
Mms4RkxUTk4kQHpYY0RMelFkS0p0ZSFEU31AdDRpQSZ4IV8oQGhzTil9ZVFVenheOWQ0RkZKIz1f
YXYKekhxWj8+NzEjajlLLV5QXlRtVDhHR004NiZjKW9MUXp4aXV0aDBveiVPU3t7MC0mWmJiQTYj
d01uNklAcXBSVlQmCnp7fG1MUntXUDktPTdEWlFXS0p8UyZtaCVNPkhkWm11Kk5eNVdiN0lOe2xV
ezFrekltckM0UUVIeCVvYWpjYWVTQQp6Q19lYSMyPSM0aSF6LVgpMHIhK3cqbmZ2fXJwMXN9eiVO
WXloTFl3YDdra3EkPkoqbzw4MSR5SVJTfURsdDFzcm4KeiZ2b08lakJGJSt2UEA5KnlhfDcweTVB
RTtWfFVTUHheSlBvKUxBbFpUSWxgc3UrWnJ4Q20kVDttS0pPaUBBbiV4CnpHaEJQPmRtQFZOdEY0
ZlpwTUVrOUkmfjxabnVOd1NPWCFsOz8qOXUwJFJJWSpNaVNWI1BrKEVeU15GMnM1eWclVQp6NX5W
VDtYWWZfS2RlektaKndsSnlEfUhFTztyYWpueW0zd0RHRV4/eGBgX1VQOUMhWDV4WjFtTTR3aEZ1
UXpncCoKej90ST9CPi04SWE1KEhqank2NnwrZm1ybjc1SUFoUktuZ1hCJjBWTTVFN2ReKy11NU5x
bFgyNmxsTWBIRWZDWUxKCnpnRSo2Ull3KX1aVGYoVioqJmF6NC1IN3NWVVlQMUhTM2JQP0VfX04h
RnwkKjhnUWpnXz4mfjY3bFhWRXowYnI5JQp6M0hBWUNsUzJ3YUFwIXNaMDAwMEFXQCUrPzBSUjkx
MDJFPyRhJiFPeTAwMDA1OWJmPGo5Ymw4RTNQSih+akZhbU0KRWRjI0YmZkIqbWgKCmRlbHRhIDIy
MjkKemNtVjttMnVrOy02WGgwPUNWdlEwWkRlNnxmPVBveUFQNFhWXzVlNX05MmZ1cTFmWUw2LSgl
a00tYWtmcXVYblV9CnpzYHl7PitxYyh4azlHZmNNKXhjRF8rUDVALXNLYV9fcjdgbEQ0OUdiZk5x
V2ZkQUpfPi00UD9NXi1wUWNvWE94RAp6KHt3ckFefF5vbWVeSk4leDkxRiM5YDZRY1FlKX4zSi09
cShAc2dRREc8aTsjY1lrTHI4aCVKO3hwemZ2TGwwazwKek4oVTJ7RFZDeVZfUTlBS1hJcjJEIzU5
dlFqTW9tXjxpYmFmfE5xSG5zcHBkV3dNUjtSKkU0OWpDXl50OHxOTmo8CnpTfCkkYTZiYSZyUHk3
YlZgOEVBVW1McGBSUyV6QV55Z3IlT01zOHZKMXIqQTUhS0NgRE9EJD5yN341OHlHTTVeWgp6WXlq
Tm9QIzVMaDkpRDYoMUlSX3VEY3Z9b1VHeHZVbjhLUH0jcVRuNChnQSRDPn0wI01mKnhodUFAazdv
Wl50V0IKemUzO0U4S0RNUEo2KH0kfSY2X1U9T0pUSSUqWH1iN1JTWnphQz91dGQ7QlJENiplVT5r
X0xwRD40NDBDVEFENXFpCnooY1l6eylwVmItTTYpI09SZEBiLVFrRVY2Z3FuTzRlRlolcDYwMCRn
UyR7SmN6ZzVsaFUhVm90TWFBamRySiNMTgp6ZmFlblBBS0psVUBicGU3PT1IRGooREdvckRwNXJe
Mio7flcrXnY/SElFTzRPY1pmQ2xjakt8ZGchMyF6TFhSbjcKelozcEF9dEBZcHlrPV9qN3lLcGdw
OEsoO0soQHtfPzFTQD1EIyhhfWQ7JXVEXjk7UnpMSD4lNklTbGArJnR4bSNeCno2aEhnPzR9VHVq
K3c8YDBoPjtYXyk7KXswMm9qKUslcipiP2R4NGt1WFpodUU4dkJmUyl+fEthRCVSQ0sjRWI2Rgp6
NyVuSEAhMDxiekxLaVRSZk1DNWNoQkxmcGkxZGgwJmxqJGg0bTszVShmdFFeZS1xaEp3dVJHV007
a2FmeUFKWmkKenVqaVVmeCtvRDM0NylZay05TVJoKSReWj9fdG03SXxLNlRodXp5NSVYKX1YO3Zk
UzBXZDRTR0NgeSFBVSlKbGtGCnokd0J5OHplM3pQZkJkSU16ITkkbmI8QEU4VFpRbiU3QXMwOyVH
Q3kwP1Mxa0g0enRFZWBHJU1AYyRMTW9pJFBFIwp6NSkjNnNuVnh1TklnOGI0Jj0+dFg3aEFqJkVv
N0NXRW9MbTE1WTN3VyMoeiVEKWVPdyE/UFd1WUJfV0lfRlFNJGwKek9NbWsxN1JYQV4hR0YlOENl
UV5IXyF1fll6dFdpdmgtUTUldVd+fSpffX4zey1+ZVEwYExkY3ZZUEsjQjk2OHA+Cno0SDhsI15D
aTJJX1AwPGBUK1FOSXE/Y2BIR0JaeXh5WkoydWltazQ8Wl8wMHhYSmh9WmwrVDYlVWV7ZEdiciFA
Zgp6M2I1KFlVPHk9ezlyOSZAPFRgVXYrVjNTOV5yQ0RvN2tgbERqKCU2I1V0cEA2I298aHJnS2BV
NklNdkozeSFeMj4KeiNwdz0mdENpOHNPRy1ET0k3IWt9QkolJilhPng7QmAzU0dqMTtRRDBaaF5j
YFZlUCYmOEBzfkQ+TkJsTj5rQWN5CnpwRCQ1Qio9d2xRWTlWY0hnWFFXd3g/YkFNKHFEPTRhJnIr
ZVpmXzU5OHBiWittbmtfZTtzRFl6N0NnQkA3az9+Kgp6RmRKWmBgUWBeWDctMmQ4MXA/JWc0Rnpg
TVJzRTVFQiM3KTkkKzYyJUR7dDZxbiQ5ISE8SCtSdkszSHFUM2ctNTUKemFHJlgrQzZVRm05Vzkj
O0NkekorMnF7NEI8RS0lMDd5b3pTQntXa0xPSH4mVGZEdXMpa1gqKldibjVRLWooY1VfCnpiJW04
ajQ8OHxHZCVDXm1nbj9qQ3N7RkszWi0zVnxgX21+ckA5akRsd3RAbEooYUt5JiopYlluWWZIM3Ey
VTxJewp6dD1FWjNocE83VFEzSV4zOEFkUkhEU34rO0I0TF5DM1A9dD9sMSVRRUt7RVJ2UlZQKi0w
fHFJJGROdU0tTXc5Z0sKemg4fU5eajt3eTZfUX4lV0heXnM8UFVLd2Y9KUQ/RmhSYWQ7RFJ9MWZZ
cTwoSkMrciU0KWUld1pqZW1xYHVwYGtjCnpKO0d3bmxJa0tNZzspS2QyNEN6aFl+PmJ8ZXxALSNh
YSVjZz8hfkNBMThMLSoqJkBxZ3oqeFN9SkxyemojK2MxQgp6QEJnUUdNfkV9Nnk3VGl7WThzS2Ih
eSRpbiNoaEZ5VUkxUVRqeUwpdkJfSGYoSlM+ejEtaE1rZGV2JTZeRHFgRWcKenQ/ZnNibVopKWlN
eGVJbXdPXzFabn0xMm12JjJScEBLMXlGUX5NY2VkTyltajBZSDl0RFpJdFM4aXBKZnVVPFN4Cnpz
QT9VZWYmTmNfY15IQyopTzZwfS1JXj9hbDJGQVhaRlEmaXFiMkU+OT1uJnVeUTFhSEcoUGRpZnAj
fjctY1AwZQp6Tm5JRnRpfGlBckwjfXdGPzBUeFdKN0IyNm1JQHRpN2Q3c1pgbndsLTJ2OCgmcnZK
cV5pKz56IWBjdXckZzNnTloKemt3IUR+Ul89djVwREtDfkBwZWxecWB1M3cwd2c/KFZqYmdAamNU
UFFvR0JYKkdzMiYyXlc9eVo4c20ybVlIUVA4CnptKnctdlpPYW52aXNfIzdCTXs5TXcqYEd5QF4o
UTIoNyl9PzdOPzR7ciF1KmN7NmVZNVhWM3EtY09iUmZKVDg+Kwp6Tn1QK1crKkFtS2tGRjtKNkBR
TjxjYF4hJGhzak55RiomK2k/KzwhdGNsQUtKNkxJfiE2UWN+MmVRZkN2KUpNQTIKejh0I1VqUEdk
THhSKUM8QSspO0k+Nz9KTWs7e3tkPlU1QX1EdTx6K2kyUEg1K2VZZUB+KSNmTTtebkQjeyQ7QEJP
CnpsI089aGpzczhzNlMlUklOQGhBPTBuMFkye1NNTHAqM3UjM14kc0xDZFA7NX5NMUw4SjMxJmBw
IVpXPDQhMmcrUQp6YCU0cUJ1SylsMFFNJUorI15fUjN3NTJfUm9oJElUbjFBOWhueV5MTkhpNURA
amo0WS1sdGFEbmZZdWgjKU5sWCYKeippWmtGMihaaFp0SCNJV1NIVnxDUEg2YSo5Y1hYeEM1OCRI
JnBAPF4zNTQ+KGRuJCZDJUtHPCRtfGxKazNjY3VDCnpXXjdBQWt0ODw9SC1CZGs1O18rQV9kdXBy
eFB8NFdNOUpKZyEkKEVyKmNLS3NtRm5nKUtPVE84eVEqdUckaH5qKQp6TyR5Tk1gREd7OXohZ09j
dHc5dFZvMUpEeUd1NUN0ajJ7aSNrVylBbnxIPVFVeSY0Q3s3ailRU2QkPSpUe2k/cXQKempZXyhh
T3RiN3lrUkU4dTNgODsldF57QmRtcDFLX003YzFZdCtxMU5WXylVM2xUXit2Q1I3dnlLUXJRVCpi
fUFgCno9NF9vKDJsTUpTcnhSZnYrQDhfO2hLOExNU0srIUoyPHwwSkVCcX1FLUF0K1EkeEhHM2xk
UyRhWnNIVzFyRkJ9Qgp6Oyl0aiNTamBffFJ3UXNPanl3RGNSfnsyKDZlY2Z4cUxhNDwpJllRJWp0
Qk0hZkI7QVUwMDJtblVJIVBHQU97UFIKekFPe0ROdjxNVS0xcG9qNTAwMFZSWD1ROHkwMDAwMDZr
PkY4Yk5+UFYwMDBKZyY7U05gKDM5eTFMSU1hJWxQdzgpCkRoeWhIdwoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRl
by1yb3RhdGlvbi0xODAubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTE4MC5tcDQKaW5kZXggNWE0ZDZlNTRm
ZjQ5OTE0NjM5MGM5OTk2MmZkYThkZGZlZDE3YjhjMy4uN2M1ZmU4ZWExM2E2MjUzMmExZTU0ZGMw
ZDYyNTlmZDZkZjgyOGEyZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA3ODQKemNtVity
MU1tRjA1VFghfURofndwWkRlNnwwMDA3QDFfbDVCb1JLKm0wV3B6aEVkZW8rbUg3Y1B2eVRCKzBl
P2toCnpoPWMoRHspOFhFcFkmMVhORm1NQiEoRStCWmg0MUl3VW9SOV4ke0VgbSYkNCMkezJjaDEj
d21PdTRGT3YrdUE4fgp6Z0BDZyhFP2JVQldGMzI9UFpSK0drP3pveFQmPXgyWUtDZXgrWWZWaURS
flQ9YyhGLUZFK1J0ISglTjk8P2RUNXYKemYkb3R5KTdyK3woe15aVnspTjlBaFl4Y1AmM19TZD1i
Kis3az5fPDh7c0dyd3o8YUhAZ3t0NllOSiNLUyhZdnEyCnpOKGB2a3EpTks2YnZAKTYmNEdsUy16
SnVEXkdUO15qfD4paFhOPyVVR3M9R35TcjctUWx7UU9NLWhNMnQmcHNWRwp6Sk02aWElJiowbSNy
c0NUV2dldlJMdURvS1N4dHtadWFlKEgtPTBvK1l7fVVhcUxjeGplaEhAYTElRCZnNXR9WXsKek5x
clRfSEF9MVdmMkFwTTtFYDhvfExXbWdyUUdKUHFxd2lfPkBLXld1TWJvTGB+SiVETDghdEdgNEVO
dDtCc15sCnpOYzNkTDE8TkdtcDckKSQ/dXY2WEBvJUZCX3tSZXhzcVdiNDQqS2ZVTlpAb35vbGch
aCtyQThreU1kNk8meE10Vgp6aHJfb0o+Un07eGYwbkt8am5EcldgK3czWD47dDdTN1JBPkY3ckVe
Rz0kZnRvPkZOKSM5Y1ZJQypoSGxrI0V2ZXEKenZXREA4aUc7PnJqQng0bUtwcnNCc2xAZSRVTGte
YEQ0T3M3Vj4kKD9HXzFuNnQxKXtZdXQ9TmNAXlckRUJAWn5oCnowRGdOcXkpK3ArUUVWdn1jbnxB
NVlAZT4lV1c+Nk9XKTlja1FRfVgkKChPdyRNeV9ibU9IUEsmPDlZWVE2WjFEdQp6SDwpQ2xoNmwk
Qisle3xHP247RilQNFBpRWJUIUE2T31SIVl7R2k/bWlZQXF4byZGOXUwSW5Gb148dXVKYyhUPD0K
elRhI3p6JShrdCRNaCU+QTAwMDk4bFQ4SjQwV1h1bTF6aURQbE9GfnQwakhCbTIyPXIzbGIhfVg5
c3Y/X2JZZzQoCnowMDZGWWJhUHw/MDAwMDAwMDAzMTAwNXEwYzRJTTw5MHdUI2ZCO35WNzYmfiYz
amc1JTdpVk11M2FyXmU0V1IlNAp6MHt7VTQwMFJJcjQtekdvMFJSU1E+KkxFSiEyUzY2MDAwMDA2
az5GOGJOflBWMDAwQm9DOyRXNUQzZzIjTElNUXMKT2xmVmFiMX4pVj1GKSVRZ19HQlJkCgpkZWx0
YSA4MDgKemNtVitAMUswZWI1VntiTURofnhBWkRlNnwwMDA4NzFfbDVCdEMyWSM1SEtLZUdjWWtS
TygwYHJXalNGdkdtJSY9CnowV2d0PGAyalN1ZkJ7emxlX35+YmdhQns7eT1VZkVSSmtLeSVndCZ1
O299SX18RCRYNENjSiFyT2IzaDFkMTg1Kgp6YCNWdz57IWZuSUo+ZlM9QlhfWj0yRnFDbnVPOGFE
Q0xeU1NBNWojR0lwQT1aLVppdipqdzF0WlFFVH1HS1JRaiMKek5xYEBPMzcoYjZ6N0pFbGpGfXUk
YWZUdHJ6d3ctK0hTNyg0QlRGNyl7cTBDPmU7fTYlKj9OZ1A7SzZ9ajZ+NHZDCnpHdnswWXZueCs/
NVJWKkVrXzg0Iyk0SSEtN0xjSDBGd1dxO0dhTklVMlZnaWBhaDJuPHxFVmJSNWRZeHFran1YbQp6
aCsmQCtxUWdzMCZYVDRVeTFOcFVCQmBjQHQqSjQ8dig3S3FibD9VVTlYWXxaMEJsZj5qdFpjTkE+
bTQyMXtfP04KekYtZyFeWmtPI0tmQXEwbEIkUjA2I1N3QVZ7ZXRIXnxBMUx9ajVyRFFgUm90bkB5
M0hgU0M0Smd1eTRPNVRFWU9GCnp3Pnl5SyhCYUJyS2tZS3Q3RXshMkVjKU9uY0U1QF5tJk5Ac0dD
fmhmOUs4QFJGbm0kTUkoYzhleiYlYSswJlhPIQp6dFk4N1lgb0tiamJYSyoqd3tfZ3k0UGV2cXRr
Tj5HLU1eI2VZbWR4VmU8R24yWnFsTlJMSTE2TmNDQ0xHamQ8RyoKej5nPTJRWHxCN1VrRTRISWd9
fkl9P3N8fk80N3Y7MXh8Rz9iVFArXkcybEdZaiEqZzBQSWR6S0kmQChePnBwOzQ0CnptOEJ0elRP
UFJkUXFTVTVQU3NmRW9YJkYjX1paJnZwI2NiPnFTU2RxTH4+U0hfUGJCfmQ7RHJQPk52YlhOSyM2
fgp6PztPTH5ZayZ5PmI7eT59SFFYYjg3S1k+X1dSd0U1d2tPXz1kYnlDSHd5YzNAT2IhaWRrKkV6
YHQ7TSk2R3kySSgKekhKS1M1SkY0c296Z0Z8OHFfb1BiYUxiPVRmZnxYc1JibzshPWp3NFQmQUNe
dCZKIzRgcHs3NFZZdjVra28mVGgzCnpVaHUjRjAwMDg8bE9ZOWowVU1LKjF6aUR2bGspe0IwaDV5
KjIyPXEpbFgzPD05c3ZHeGJZZzQoMDA1ZUViYVB8Pwp6MDAwMDAwMDAzMTAwND8lYzRJTTxAQ0Yk
SmZCPUEjPklPWTIzOypFJjdpVk11MyN7MmYxWlk0MjAwUkkoMDAwYncKbSNSX0dCMFJSU1E+KkxF
SiEyUzY2MEZ6X35MSU1SRGxjKSFEMX5mRztGKSVRZ1EqbFdFCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJv
dGF0aW9uLTE4MC52cDkubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTE4MC52cDkubXA0CmluZGV4IDllZTg2
MDhiMzZjYjQ0N2FmM2NhZjQ3YTA3NWI0ZjFiYjE3ZmJkOGQuLjZiYjU3ZDU2MjY0YzdmOTU2NDJk
ZDc2MmY1NWMxYmFjOWI3MGQxZGUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTczMwp6
Y21WOyQyMEhvZjdNJkIyQ1Z2S3NaRGU2fGY9UG95MDAtfnxfNWU1fTkyZnVxMUF1PXctOzNZeD99
b2doSUEhVSkKejlOT0ZfXnphTkorfThCbjNDWCtzX3g1X2NRU1F6cl9oKGBKemZ0Yj9pcnFhaypa
UGwwMDAzJXp8QldjbWRMYEt5CnprXzI1Wkx7LTUmKjB+JVNEUFk3Ozd9JH09JTdPekxydENpPUQt
RDU9WGpSZWlxPF9CWUElSXlVSXhVMCZjUnwqcgp6QXh9QyM1ZmF6OyVVO2QoLUZaaypsZTR2bFdY
YyQ2YlY3SXNKZGw/Wkc0LSQ7OFYwaDYlaXNfMDR4Xld4KEBvdzcKeipVLSQjNU57OEh0RmMhS1FP
dmI/YioqV3BpI01RJXBjUEUtNHc/VTdtUUN+SS17YXVpQmJxPGE8QFQ7S3leST9HCnp7cE4yXjQx
Iyo4TVNvRGNPYFM7c0g4KDJYMWQtJns5KSZ8R1pLM2ptan02YnQjazc3VWV+dn5AQmpZPiE3b1Uz
PQp6X1hwNzBXS1ZwVGUlVGdxIW9wNytnQGcyYDZjTTtWeUtwfl4rPHkjRT1UXnt8YCptbkE/TE5i
aW43NE9QakNAbGMKemFDZ15DJStjY25TLTg2U19zV2R7WHY3ZikjeUlJdytmQThQWUU8M2U0dTF5
d18oTE9pTVFndGBPOHpYflVuWFh1CnptYjJEX0p5VER5MXhIeDliJE9LZHJDdCE/OVlMdkJePHF9
cVh7fGFYMjtudmZtWiktQjJCRkN1WGFBK1UxPS00awp6Yl9YaX1lMDlqfVpQKTt8bjM2PihFfWox
QTUtT0V1YDliU3I/OTI1emc+VCpZSihxa1FTMEc8U2FFU0U0ZXxNNjcKekExbUFkUS0zbmZUfGIz
K152OCF6YG0+RDJ2WC1hZno7fklCSl83JWImRn13XntXSX5Db35xPGI9dThCR1NZUzh0CnpjZ0Fz
O2ttcDAlMExTTWJScVRtOTtOcjtFLWBJeVIhOV9mVXVzTzVhVmskYntuWVZzTSUrcEU/JmJUREV7
ejE/cQp6LVdgKi1HPlpKYVlFb35AO20wLTkhV3NINlEwRXUmbThRViUlenYoYDFWNUdEaXYrez1T
QHAhU3lfWk8kWWIwWTEKenJGeXVaWDEjTjAjJHo+aEFPUFg4WWRxUyEyfSsrKmF2c2dFJCp8PCFf
U2lXVG1RWENlJClpJj49Tj5OQG50U2JhCnolTnE0X0NMLVFaKkFVPnVnaHQ0Km1tek5eVE12ajdr
eVU7NU9TNGpmPHNaazBRbiZoTUVCWigraSRlfXVkLWpOdgp6JTZ9O2hqKXVreVExPzdhZH0/JTwl
QlhNYlZ2bndrO3pOMTE/SD54UnRyLWdaLTNHVlVtVDsyNlYwUkZOUTQlZVMKenJTSihpb302YkBH
NkpXLVFqTVF4TFN1elcwekp0JHFFNj0md1MjS2ZkSWElWj48c3V9amsjNXlQRT04RmNUfG1CCnpi
XmVpQ3RkO2NkQG0tYHQ3fFVNczJUaHhyTnFGXnRhZXQ9RmBjOVNHRWw3WDxCNlhuTyQpdGprMH56
PVdydDt5Mwp6QjcxRm4pb0sxUDZUTVQpRjkwc3YqMUMrakdHZ3Rrck1WQih6bEJAeSElVl5NYWR1
O0c7Z0p0OzB9Pn5SWGRmPz4Kekh1fkYoUVNlQjxGcC02cFpwUCVzXzUoSnwrPz8yTHRgRnpVSSt5
Y2xhZ0xaUTIwdCRPNF9tI35Eei01ZT53bFNlCnpNRT1gZjVOYjBgPWxFNmpJdDc7dDxUfVdaQV5n
el9MdUZ5JERGTnwxJm8zMjFMZn4xdSZTQD5DJXwtIzVLaEJXWgp6Y1hiSk5ASEp6e0dOLVYkdFJv
Pm9XPChYS0BTej19Tit+Mz0yKUdkVE4wZEdzcH1XQzxwQHpMNykhQj9nJFNhOSkKeklxOGlRZFE8
ekMtP2hwWUJnZF8oUEdqLWI/U0pLJl9Hbkk0MnN1IXBXSnY1OyU+eG94PmBQI05RYURfODJgWjh6
CnpGXkgtPjs/YFlkSHsjQEU3ckoySFdjVXZUX0A3dEZpUFZvRkdMOXlSSGp6RWI7UzUyanp5a1Qx
YHlMNUtgQWI1aQp6KFkydGRrfk0/ZTJoPSVOdzNqbihOR2VuSEtzKndEK2A4ais7YG1VVjhjRVVN
e1hEViFAJj9yYnhxcU9CN2p3c3UKek4zRVYleEdXK3hiIzxkJUJNSW9DK21WYTQkKHIrV1FeNGNg
T0d1PHJEJEk/KUxYKXdnMkdxZTx5V1o+Wlg5O1ZHCnpefkxORXBkZDV2eW1FPlI3dGI+dmZReCtn
MF9kSztKOTR4VlUqPWE8QHJgZUcrZyk/WGtgMig7WiNGOSomOGFLMwp6NTtPNz1AV2tUNTY4eyor
K3V8JkJIaDtpIyFNeUpVUEIlKTtGaHhNMjt8RnRBcVU/d1dySWdAMSQ9RFhnYmh7ezIKenpGZUky
JUlMJDRlQFh5I1oxVVdEVjBZYiVSaGRTQT4rZjJuQWxUMlJydXpVKHtyWG9uRVFfT1NgKmlQYmVx
fExlCnpzQD1FMW52Q2opME4qb1EmVTFxLVk3THlAMTNAOXE2PFomfFZOcEQlVFNLdUVvZyFJNkVQ
cj54a0BZWSVEaGthZwp6KTI3b3dpVEs1clRXdj5tSVFqRko4QEstQGpPN0YzWm0yJjtVekJiKkg5
PkQtK0hgXzJ2VkU/Q3kwPyhrYiNqemEKejF1VzhUUDRWblBHV2Z9Z3V2JFltdnM1fD0+X3E/YFZ3
YXtkbEo4eXtYRT0zZ20hdUY4cjlWPG8pTDB5bnVMVX1TCnpiaX1DITdRTkZhZ1cpMGlMPX0kQ3J4
KFhZfEglQUpAMG90dXsyby1tR1BPWEhlK2JuOVYzU258XzVvbSVPYlNCKgpiMCtXeW04M3pSd2tO
XmMwa2R2P3FMSU1WWWxrXklEX1JuOUoKCmRlbHRhIDIyMDEKemNtVjtLMnhqLTQ2WWRzfUNWdlE5
WkRlNnxmPVBveUFQNFhWXzVlNX05MmZ1cTFoOVdNJitDb1JvfT1DaU10Wk0jCnp1aEZWS0hAaUx+
UStoOEUhI3pqMk1EbHM8b0loNHw5dlFAMj56Mj1yKmVgenItJj48MGA+JCEqY2ZSITk2Qn5WUgp6
UDA9eTg/KXUhbzBDfXEpe0VoYGJ8S1MpSTRqPSEhcTYwbXNwTjx7PiVESUI5ZXQle0VtJTxmMEpx
fEF2JE52VSgKel5tVCFAUSRQZEVKUkk0Um5vUSMtX2tIezUmOXpCNmROQFNadV95Xn0mNFBQNFht
QShFazFrSVRRO2sjTm8oN3c9CnpVYlR0QypYN04kVitNOzBvTXl+X2drX15+RSUyfE84cTEqVkxm
QTMwIzxhQ2UhPzsqVmIodV59UTRpYXg7QUMjPwp6TSpnYCs0dkR6blBrKUBSbEpuNXdMRChOdnR0
KlFnQmxRVjRxK0JiTXVNWHM1Xkh1dXtvTCVQM3JfXmZBJn44VlIKenJZdDMtTSkqI1N8R3MmNGNA
cG1YKTxvQlApYEBgSTdHb05eSXFsP2ViUzgrY2Y3Q2M4NXpaeDhmb0RjdT5LJTM4CnpiQXBTfm9u
K2VxMDhnWlhzSSE8MEZYWm9IdmY8Q3IlNGglbSRWNjNyZXQmVDg3MWg7SD8pUUJpOSgpRW0/M3tk
Ugp6a1I/ans9bD5naGV8NzR8cVg2VFRMbTdsWWZUV3hNeG1wK1pePjglKTVESilwWilwKCNxYT0/
TUVKUF4zfDFrUjgKenp5SjJENk1zcXgjc0IjaVkkO3xZSVAoKVcmeCZISzl5RSNUYDNxTn5gT21s
cjJkRD5+VG44YV8ybFpHRk08RS1LCnplXyNGMC1HN2N0bWllZDdGWm0pZ1p+VzhrU2J2PikqIX56
eG1DVFUhe18hPUxTczZmXyZQVXpmWG16TEd8TjYhSwp6bk9TS1dsOU1YKER9TmdIP29MNjZFek1m
P2ZxQnxBczg2JENOLT1EZWozXmtiN1FOJipZMkxsaVZzRnJDPmV6X2YKekk+fH1NJmBORlN4RjR+
LVJ6Njw+eEY0Vz44LSExVk9FVnE1YCtzRzktOUY2ST5DZ1I0IU0wPDJ4bzx7Ym1aa0JZCnpPI3ZA
QVR4VChURTlzeUFYTT16OGdEdWJmc1FgIyZRO3lYc2pxQ19yNHxUYD8lJG1MYylAc2shMUxDYCkq
Nl41Rwp6KEx8PVNEN2dXRyRHKEhFS3I5M0YhQ0ErPHZrWCZOeng/UH15dTJeRHVCamFpYEJ4RFo7
NEBLYjY1dyUqNE48eEMKekN4MkJ1RlV2UTdnMmF4Tih1MndkUmkjSlRBQTUyQ2AyelB4VjYpNkFt
OVk5TW8tOGB3el9YPXE+Ung7XlQqKGI2Cnp6bllhaHxOWnIhZm1rd3swcmBKQz9fV310PlZTTD1k
M31vRlVaQ1dheDVqVUNpNyRUVmg2PF4yWTZCV25YZT1VdQp6dTghMzxjTitMRyVGN2o9IXo1VjFi
UGhaJGswKThjU2JzU1dgNlJeY2IpOWFRJj5aXnhjVWNedTwrfH57I3JObygKekpyQioqSnNQZVp6
Y3xNYzlHVCtAOV5wWG55NWk5NXlyK0FHaXlYcmspJWt1fUdHTU1LaVZrX3lDdzYldDY5NHVvCno3
JGpDMnYoPGdjenVMQGd3KnkxdmA7PFN8Ykkpcn1YbjdyPG53JTZNeTQ8bSVTJiVLJUZrdlE0Mnc1
KUBEdHwrRwp6JUphP3hZcFNsX3w4cXNWMkp8IXtVXnc5WHl2YTxDQk5NKnw5KlUrelBfPCNANHBU
NEkhOSo/WnpIVEAybz48MHwKemBtUG9HRVQ2MiMhZ2o0RT5rJSNNLUZ8fDY/RXNOVkVGRDkqS09S
aG9oYi1eVWBgXlI1NVFkezVPc0BVSGh0NUlMCnpJSnAyVkI2VF4jVHJqNzQjanRIOUJteUk7RVBw
SnZoP2ZUKklASykzNHgrZzcxVU1UQS1YSVFkLUNKeE5NQ2l+Ngp6Rj0jQ3hrUShZaHhyaiNLS3wo
cWJCRlNtfGZCeiYyKjl1OztxeU0qLVYqSFMjPWZxITtHNT8rUGhaQ1JmZzdgRFIKeklDZXJ1eSs2
ckZwUnRUKVImR1RuKUIpS3ZsaXpPIyNiNWF1NmFlb2hBUnRickVTP0JKVU9hOWJ1NzZVWVR9ajsz
CnpyWURkfXs/fG1TdHw7OWNqI3I0UHhAd2AlYCVOflZJc3Y5P0ZvJEM+RTk5Xm09WlBjLVBYVkFx
KFNWPk9MNEl1dQp6Y3dFJUNwdz99IXI8fCh5ZVY0MnxPMyl5YUBzMTVGOz0oZlNHS2t0VnVRUSU8
I2hRPkNyU3gpKUh+KypYLUpiJXwKeigydVBpPUxreCFPMk4+bTFhPjxQeHFzWTlMIWQ+WWwhO0Q0
OGY4TGtWVFEoUTJ6MW4/dD88KzhVWXpRdT54OzBRCnpfTExTZSN2QXxjdWYhQCFXTSF9WU5VJE9J
emgrOzxQeVQzPWp+MCE2dUttMW9xZW0ydEFmV3lNcWtOSHZ3PXcpdwp6bGBvK1FpZE50IXBob2dz
I2VsPHEmPlJWQWp+VjthNk1MfjJtM14mZ2JVJFllSX5FXip8OV9GQHZiJFc1c09qUDsKeig4dn1O
eUpwYSlhaiZ7ZCFfT2RaZXs0czVDOEIkR1B0Knc1dVl6VjtmNHohMmVOTCtlVzw5UnRRUm0+aXle
eSF7CnpFVDh6XnpTYTd4K0pJTzVUSVVmc0gjTD5kZ1ZCfHYoSkdiRVUlbD8wKnhadmtpYGYye2Eo
aEhYYHc5Z01JTlJMewp6bWk1WXNkIUNGblA9MytZPGJPeilmQWBhLXE1dWJlOWY7P3hSNGc5LWJS
eTNDKC15USpfVTBtZD5FdjRVdzk0IygKemN2JVJNI1dyaFN0X3d3WlQ/ZiVBbFRaUiZ1fmRgc2RG
b2t2clAkPmh4fFcmZG9CfWhXNn44JCV5T0k4XiR6dWtYCno+cnNuIV91THB3KHFoSDU1TlZufig/
WU12UEdLZDF5cFN6ZiglKWF3Pzhsdm05KUY5KEJ+dntkailtRnI+VC1ebAp6JUpTY2hvTX44fko+
SyFrRypHcWc8az9uRXU/eCpYNkZwK3VtJmh7d3ZzJHphKzdqX1gzM1Q3WjZgSko4N0NyNG8KelRr
bHVVYyFuaXBXdW52bjxeZkhjSTdISChxQDV8QyZFWSt8bXw1JS1wRzs8JUJCJVdRJUV5Rk5ufSl5
V0RYSkdGCnpeVFMxWXNUaV9vPGJWNHUhWHpJR0EoX0goZ2owPXs9O1ZqXmNOMXlGaF5QNkhAM3sq
YHFIJmYqYCVeZ3UpNW5GTgp6QFE9JGx7cHgoeThIRy1GUmxvblc4Vl5Mc2V4bGZITUg5T35ge0Qq
MF95THU4dip0T0BBZG1YKj4mSmgjZFBeSncKelBUNGRgQ0RBNz9kaF8rND1NanVCPmUxPnNgNG54
KFh3eWQjZUZmJFJRZmE8KztJdyF5QFYmSX5zQy1GY0FBe19oCnpyWT5WO0JSRWZjX1MqaGwzcjt8
RSgkTzFDYWJaflhUV1UkYT17SDNoa0VvSTtLfW9fdmM5TkdWPCFLVksyQHl5Swp6KCN6Nnh3NE10
MkVZI3p9a0goclo/Z3ZsTF8zZ1hxMys5XnFfWTAkR2N1RH0xdF9JWnNmUmxzPV81cHlDZGs4fVQK
YjEoVXhCODN6VnsqWj5CQSpwdUd+TElNYT1sT3FYd3hTM3I1CgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJv
dGF0aW9uLTI3MC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMjcwLm1wNAppbmRleCAyMTM0MThjNGEzYmJk
ZDE1YTRmNjZjYzc2NzE3ZmMzMjg1YjE2Y2ViLi41ZGZiODg2ZjZkZWFlNmE3OTQwY2VkNzQ0NmZm
Mzc5ZTBhYWI5MGI4IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDgzMQp6Y21WLUYxSGs7
aTVZNztnRC1JIVRXTU9tdzAwTil9MV5AcT9rdlNkI0ZfQzkyMFdxPGFRMzhLKVdyJjBUQ0kzQ0UK
enckWkx8Uz5mPiM0MCpTXk17TWB6b2E0PEN6MCo4dFA5c0JXPnIkb0tEfnI9WU0jNyNXQT5RPHgz
K21qTWp3ZFcwCnpDQFhGaTAwaylqJDc1NmIpTzE3TmQrc1lnant3THtMdTZ4M00pbnklV2VNZlhg
cm07YXJDZ3N0YWYyOHZINnc9Qwp6QVJPd3kxV3dIMVpxPUxiNTwtOFRXUChtajYmJDl9eER4TnVj
ZW9nV0VaXmhuNXkwfEx2dXBxVkdRUVMoKmdkOUgKempfZkFJcGtYMlAtcjVZVV81aHhBMzhsYnpD
NEBWPlEpTXI7YSRBeyRhOHU7dE00ZEUpTzRvK3pzaEl9OSZpRyN9CnpfPylWNyMwY2R3dkU7MFdI
QlpMOVUrWUwmSFBuaD8tSWhORUgxe0oqakZNRH1MMFcmWW12YktsU2ZfVHJSMl9rZQp6YmFadzNW
OHchezhmNGJGekY+VU9CNFJBUlFnODApO2YjWW9vcHAyKno9SllUdTRSQD4yZE1zSjBlfipfSFFD
bUUKeit0e2J0SXR3V1k9b3FwM1dKVGBRM0IpPmFJc1d7YUE0WGV4WldKLSFIe2AzdEF1I2loZlhj
eUNUTk9LcXA1dVp2CnpQVEU0em0oIVBSPmhnYzQzY3YzJVI4UX1iN0ZacE09YGBqSUdkfilwJEJL
QDYzVmpGTjRYd09fcXtpUzFzOGRrJQp6d1NZZyY7c3tEPmlpZ3h+aDJRbV5LKnppZ21lQENnUiYj
UXk1JFBHPTk1Sk5aZ31LZTRnfFR1VCRGQn5NJkZafm4Kei1nNlRwT3w2US0jT3t5SkVnLW5BJjNu
YFJ0Py1RUDFeVUc9RXA1N21laDdiYHJ9PHxJVSljQT5DYS18THpNKTliCnp3JFRnaHVZSURDYTtQ
WGk+R1RFRjUwZ0soajB+S085REUpTkBjPS0+bVp1PHkrTk57QERNPmJqPHYhQ2o9eWlqXwp6bTYk
aiRTanxjYikpKnpKa2tlYlFHLVEwY0hJcyYjIU5RYElUMjV7I2V0RENZNEpYVV9NdG0jZS1jUDVy
d0V6R0UKejEjTkZ7Yl53IUQxI1NUXmxnOS0oMHt7UCMyTj8kZEttWSYkMEFRMEwxfXk9bmxUUVh6
MGFCQnMyMGpgQTVfNUU3CnpZeWJjTnU1KXlBV0I+cEYwMDAwMDBSUjkxb3xGNnI5UlhtSThWNWY7
M2pnNSU3aVZNdTNhcl5pNXVwRzgwe3tVNAp6MDBSSXI0LXpHbzBSUlNRPipMRUohMlM2NjAwMDAw
Nms+RjhiTn5QVjAwMEJ+aHlWbG9oPzlaYExqZjYrI3NfbzsKSkgjOUNXRmZjcH5jam97QQoKZGVs
dGEgODQ3CnpjbVYtVjFGLXpnNVdvPFNELUlgWldNT213MDBPVEQxXkByNmt2U2ReRmQlWD5GZmxQ
ckFZKWBASWJrXzdreXRHTwp6RnRMVkYwKUo+X2g9YyVkez1IfUJTbD05VWshQyloaD8yMGViVmgo
OElzZHtuQmdnS0NyOVkrdVozbH4wKUVWREIKej1GcHpfZnYxUVQ+NSg8bW42ai1VOXw5MTFrJTNg
IWxmZjU+SyVZTUc1fThFYiEhVV8jMz1ZWVExJWdHSEQwd3ElCnpaZH4lJj07Xjl1QWNCNlFAIytS
dndgOD1NaXJmUmkpUH0zKj02fj5YbFc+NDlEYyFqTTI2bkBUNGBtQWdiO1BKPwp6aS12fnhQQF56
PlZFRGFpRjBIckR2P3JwbVY4Wl9xTEhNeUJ4aUQrKkxqY0dkaEhYMmIxMVZKbChoKTIpMCRlTVgK
elhLN2hPVk1lTlI5KURDWTstRzw7ektoNUdEPi16TnMkfl89emdDdSkkKDI5ZkBBVkg2JWQ0SFoo
TnN8QDRxJmNSCnp6PD02e0l6VG1kM3dFX1IoLT0+QFl8RXFGcSl0KUh7VEkjfHB4eXBLM2BpNDJ6
dGFra0tqZFotUEt2VipkNzVzagp6VDtwKDZvWk1sby1ZTj5LaGFHT2E1UzMoTUNuQS1ANzRSN2Je
O2RzMkM/SXhqVlYwaiZVRD1VbGZCYUVDMDc1U3IKemNBOEdFTygxJCEhTGJ5U3hHTk1saDZaOyp6
OXF1MGIkPiQoZ20rc15sbiZfYHZoUWE4Z2dke2c0eilRWVltPXc8CnpsSGtAe1k0TWY3WX4lZG5Y
UTdJNyZya01jUiVNTzVSdVRaR01+Ti1+cEFjbzhVU0EjYWp0cnB4PlBEMUUpI3lVVAp6cH15bW1w
X25qd19qQU99Kk5SRXk7KD9NKTZ1aXhePWItdzZhS0ZSZDQwc0xRJUJ2PHNaS1MmNTs1WDJKZmA5
NGIKejhaalBZVl4leFgqLWx5VTVyQXE4T3FJQ21BeGpIU1F3eUBxVjJZZUI5cCg+X29EJT5kc0xV
TDZqaWFSdztkfmZqCnpEZ2doWEw7Mk5CIVN4fjhnWk17cjtoaFpMVlFxP2E0S2UjKFhUPUFwZXlJ
SSZuQU1zOzEzdWQxVTQ3SD8rTkcjRgp6PT10I2cwMFF4Q1oqTykwMDAzLWxjNCVZKDBGenE8V2RS
JEwhMzgqempSZ29BfE5qNjAwMDAwMDAwMDAwMDAwMDAKejAwMDAwS21ZJiQwRHpNbDF9eT1UbFN1
fHQwWH56UzIwazdEeyZSRjxZeWJjTm5zYW4+V0I+cEYwMDAwMDBSUjkxCnppZVl3UkZfUm56ODNC
Tms2YkM7azM7KkUmN2lWTXUzI3syZjFaWTQyMDBSSSgwMDBidyNSX0dCMFJSU1E+KkxFSgpaITJT
NjYwRiNnaExqZk8/KUNZNzFHJkw/VUZmYypvWnp1byYKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRp
b24tMjcwLnZwOS5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMjcwLnZwOS5tcDQKaW5kZXggMDYwMzMyYWQ5
M2RhNmFlMzMwN2RiMTlmYTMzM2YzNzdlMWQzNmM5NS4uZDk0NWMzYmZiOTYwOWJkMjk1ZDA5ZWE4
YWJlOWZjZGU0ZjI0MDhmYiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzc2CnpjbVY8
TTFgcWxCN1JWRWpDVnZMQ1pEZTZ8Zj1Qb3kwMHI7fF81ZTV9OTJmdXExSkhqYihmajxwPVBeZ1RD
JEdfOAp6Mzt0S3VibCtMJnkldmJ7LWlzM3ctMmRWRUB3Z3VZYjZtc2sqQHVLYiUkMHFvZFVIN0Rs
eEZlWVRkKTlzVkRPY20KemhUKlpAbStyeFM2MW5PQEA4ekFtPWw5O1c3WXxOT2ZrNVRCPG4oOUhQ
WnVjaXU3NTd4MXRNeWZJanZ9VHd8YmZfCnpUJVp2RWQleWslMnJ3VlZ3LXdPPWw+MnNzX3k2OEFD
S31rRWQ2bWgqTUwrbH5wRDROcnpaaHJ1ViZkPEU7b3NWTAp6Nnl5R0dpIXkpYWhzVnBZNWV3amFN
aShNdVNMbCk4OCF+NXkqYyZyX2lATW4pZEo0RS0ken11ZGdUbWNgbmw8akoKenorWmBgUCRQKHV7
KGwkWmhiQnZHUlF3TTM1RWBEOUlqNkQkZTRTMEI+NzFpe0RsQVlvPSZzVnR4M1pDPWtocSpiCno1
dShzMVRhNUVUcmV3Jk54VXRBQ1NhO2lpQEJpdUZSam5US2MtQ1k4PGxuezBBJlBrWjFpWnRTYWk3
YyMzT3gkTwp6OWVaX2M5KkhUVXVkYXBBQ0BNdmtLUkAyZUpJeVpgbHRja25uQTN5cU5xX0lWNkJx
YW57T0xXdDBJb1NNYSNpYSUKemVyWjhHYzZST2BjO1hZVz1hKG13Pmt9Ukxhd31zPUlGfDBeejNL
ajshez9BcyN3RUpXXlMwKDJiMVB8VSZOfmsjCno/QkNELV8mNUxrIUQxckp7QUJPNytFKypOJX1C
eWg5bUtAI3JKNDVZYHpHaHQpYkdxaz9nWGQpYjZGQWdTTndBIwp6TDYtJTJuU1ZhKDRgKSFCWUdH
aHspdyhNcDlsMGF4a3hyQUUhVFMhMCV5Tm8oMlhlemtlM0xBN01abG1LMjFnKDYKendZaiRnWkF1
fTImJFlLWDtQdCNzenJTaWlxUWopWjg9VmVHTmVoeUA3I2lOdFZjSHFTMTdfdlRafGVOPDZQfUJ2
CnpNfHopNittZ0BpcG4oWkcoKDJnbjUzJlBBNkFZTzxPU3JqYyZ3ckU/KSl4O19WZntXRCpvfWNT
UGFGam1PQ2klTwp6alQ1IytAbzU0LSZnTzI7amlMVSZqMHdCKz4wc35HdTVgZFF3MTc3QVZFTT9B
eH1IIUtpR2ZwKCZzQGVHSjBrdEMKejBtfTxRcjZ7VHgtNyg/dmJEUklmYCZabTYyN3BfJkwqbFZ5
Pm0tQHVNOGBoUFBESEs+MGh6WGsjJTYrXyokVzw5CnpxPD1BcUB7QnpqQVRHPntmQTRrYV45e0lC
Oz0oKjNAek5TN3h1O0w7MGV8LSlCSSRwVnR3MzJ8OTx3fDV5T2FVRgp6WlVYbW1BbGlGJHZRTGE7
YkRaQDJ8Q2MyaiN3cjh1eWd3dXVrYyhzKEZXY15KaUckQEl6UCUjPj9AV30+T0pHKW8KenVLIylC
dVkzcj9fY0hSTFM2OUlLeSk9Vz17OXdTPTR9VUJeVG5uWDlxejdZV2R6IWFIMWFENTRTMmd5YTEw
OGRPCnomPGVIWXhJUTVOPEUyO2EmTXF9RmJsPUo9PmhHMHZyPmBXeE9CRHlkUUR6SGI2WHppRiVp
cH1oZSFAKGlOISZkMgp6fE5oUWdAYTgqRl5CV1hJTnZ1JUxfd3hkY0RueXFyaj10eWNEKzRkcGdk
TD1wUHhySThiPTw/Kj0rcGE0PDl8RlgKejMqTWVrS01ITGd4bEcpVHQ9LSVwPjBBM2hTfioqMjx5
QkxEKztBKW5idFkxcHc5TU5oKUBreytMLXN1dilBRCFUCnpkaFElRms2aDxDYmltPm1XbEF3Ry1V
KzR4NjAlO29eZG1HXzJGN1AqMS1MKWFmOSY/Kzt3Ui0qKyNWT3hPSW5Qegp6OWJWNWBfZ31kbWcx
UHVKaXFDJUVRQXtVLT4zO195Ums+am15RD0pTW0heSgtJCRgN0wyLU5RVGpzTjUkTHhHXlYKemYh
Z310OH0tSiR8QyQmdzBMUn5mMHB0OylMMkZfIWdNeW1fO2NFRVQwRElyNW84SXlxcEk7fnV6JT4j
I0pVM343CnpRP196MSFjRDYpUmRaKXFRPENXOUA7TE5KVD5wcktnUjVDfV9GRy02QX5ffj18QnZC
fmA/OTNgb1BWOUEoWlFqRAp6alVwS0s0fmBRJHgya2tyaHNfPXRFdUAlI194Xy1TdWk/fXNoelZK
a00mV28zQEE0Rjd1KyFiSTIrflA3Xko0e3wKenQ2OVFEazJPRkRxZU93Q19AODdPQ0A5eUReKj5G
Mmh4YCp1NT5hfEBIcnd1eExBYTF3SDFgJGpvJHlpbjNFMiMzCnpzR1p3IXNxKW87Z3gpbGxhZn5X
dXhfPVZnZjAyUDtMLWA+VGw9UF4qWkFtSCZMPGp4ZSZ8fVllQ3EtUXFzY3dOVQp6SGcwK2tFdn1i
azAlQCtfTF4hdFBjTzVDY1pEezJabVIpelBMUjtsdWBnKEE4RC1yXnQkdm5gYXkwfH0+PGVSeU4K
eiQjWEJibzdfVU9GfSs2NTZmJlQ7JkZCXzNgd1g4fHl3cn0zN1cmTER1RUwzbHNIeW5eI2VkUkMt
a1d9bFhMdV9QCnpeWihIRSZ2Y3pHXyVrdTQzJGQoeVQyPXxhd0Q9PXRPRTx6Vns3U1RRbik0cW80
WmpWfnZ3IzNLXnlGcClLTHohJQp6X0AxRnBGfmF4JTh0YllZXlhQN3FnfW9RTFptbUVYP3pfeSZj
Y1MlKGY4WmE4Z0pBWmcwbkJhaFgjIVhtKjVNLXoKemU2dStnUDFLeXwwZH0jQ1JZMjVFMzhWd1lo
cHBOOGRZREkjaFBeU0ZwSl9rJDdKQFNYVjJqVF5YMS02WW1uTU03CnpacWpFflVwRX1ianR6czIk
aGNxQHRYeUI+K0ZfPTJxWDNoUDIrO3Z4bFVAbjwwYnI5PzNQa3x8bGJzM34yTCg0TQpTMDBsUUZs
ZjRROzB0VCY8MFNrSSpJRVc/eQoKZGVsdGEgMjI0Mwp6Y21WOyEydDQ9NTZaO21CQ1Z2UU1aRGU2
fGY9UG95QVA0WFZfNWU1fTkyZnVxMWZZTDYtKCVpVy1lVk1keX1KRXAKenRvTkF4OG1yVEx4OGdv
Rm5qUnlEZFQoLXg9NnBYclVsT3xnXn4rPyotQERVdmR+YSFgQHo9ZlRwM3xBMW5FZn1WCno9JEwh
PWVRc2E/ZXFZYn4odGQ+WVJebFMxRDx8TVBTNzxMSm8oSj5XLXpNJEZNdHxCbz1PZ0ZUY3chVEpL
KkNyUQp6JHV3OUhtO001dWlDKnFLV0o+QUt6eUltaEh7SkozI2YqIUUrRjl2d2tOPHZ1dlgrYXpu
dEp2ajYxJCVDZ19ManEKeipHNClMKiZVMyhJRCpLIzFCQDJnQVM9TktmNWFzbnEjLWUyMGl2bHVa
JmpLN1ZQcCV7Sk1kckNsJjN6eFNOXlVJCnpFOWJRRVBTei1mbFlkLUlkYGNNeXtJN3dAfE5kejxW
en54PnBSbit3NihFdiZGcURqMFVYPH5IcGVhVDVwQzJ9awp6U216dCZxJHQqbyliKWokUlFhaFNg
ZC1pMFRoSXZ3b0c1Y2k9MH5venJ2U3pAJXk3YjFKT0lUJiNMeWQpSS1ONFQKel9HOCVOPSh9fDxr
JmAjZUkmczxeYnhLMl8zI1o9PiQ1fDtGK1VuYypDeDRVTWtxbGRTKHJ5SDVIZSZSeEUyZkZDCno1
UnJqSVhCPTwobEswRXRWJEotQERMeHAwJj9sQ19NJE49ZzB5cn1WSyZTcV5OP3RlIS1KVG9pRjVC
UkBIVkBBKwp6KllwJD4oKztJO3Y+RT5GQE1tK19XZS00cjY5JjNaQU1CV35YYlpKQkhuUDVPPWtf
YitIZGFUc0YjbSFCQkRhZHwKenI9TXMrXj94Yk0/UjckTTRMbVJmN0EyS0FTQj5FP2Q9dHs8KVNw
bVhIMEdzSilEbXlfPk5Yey1UJkxYOU4xaiNFCnpsM1Y2RTtoQT0lYTUxJnUyNEFLX3xOQ3pQR0pw
VHNJZSp8aihhcj9Ya05kbEE5SSlDPTNhKVY/Yit1QyU1UCUpTQp6WEZGdkU/RnN9YkZCUXZ0YT5k
R29wJG9QTGp2SXY+dnUleGtfPHVDYEU2Q3poaUJ0YmhVSkdLTC1xcV9HdypTekIKelRya1hse01l
IyVVOTFXYkM7Iz5wJk5zTk1DdzZpO25KWFN1VXpPXnttaGExK3lYN0ZMYDFaYldycCpSTXk4Tlcj
Cnp3IXtDQDtTS1QzSzZJdXpXRnNZbWdeI0ZYPWVkNX5gKDh0aCFaPCQ/cXhhdklUeTN7aDI4e1Jj
USEhUCQpU2EwJgp6S3p+cldOcEtoK3R2a3dXTkRufDA4Y19rK2pPS0ZAciZ8Mj8rU1hhfkhhQSNe
U1I3M3FsU3E4TTVwc0s5SzM9SX0KeihJa0A1RjdnYUVXQUdDZCF0UCRgKX5JfWdUNTBxWGpNLSFy
UjNEVDExQWZUZ3xKbCh5SjFYZHJlQzxQY1MtIVM8Cno2eyUyYU1vJX5SSCpsWi0hJCEtb092byE4
U000anctaFhNYyt5d0VlS31hZTNOblVGfkBkVWUhSlBIaWZ0ZEI8Mwp6YkJUUD9Nbk1nK2pDXkI1
cUZNJTY+T1B+fnZxWCleK0dCVVl2JW1sMm81IWRzNTNzSE97Vl5ZUldHPFBYejtHZnAKemNPdXda
QGdNNXM0d1p4dV4jR1E2dzJzRnxjbkNpPFNAO1o7YkhCUHxgajs+NChZTnFRJnU4dWFzQEl7JE5g
RzV3CnpsVjRhTHFyT018PG4qd2RBajlEPmFNUFRmZ3Zla0VzU009Mi1XLX1FMjRIXndZcG5ObmJa
c3E5REpVR0ZFLVUlfAp6bFZDM2xMRTM3PVktc2ghd24yYDhsc2ZYWSNpSmpIcFlQcVV0TzQ5V0R8
aEBNO0lIJnZ6YGNMfXpyUXB2PDEqKUcKemYoc0Zre0hQX2E5eFQmZTBXMUJKbjczZ2tyR0V9PFNK
bDFIaHtOM3ZAMH1JNlh+QnB8UjsrQ3Zyc25OPzsqfENoCnptSHpNWGx9SH4zRHkzVzs9RCE4KzxW
cysqMGc7SXkoK1Eocl9hTnx8X3hHfDVPbHoze3FGZCtaNnshSmQycWR6PQp6KzNGZz0jczEyRTFe
P29FQWB0fUY1eU9HX2coMkBxX0ZuUVcmZihJYGJjMChMaEFlSkdSaGVxST8wP0ptNVZVMD0KejJL
ekIxOHVySE8qQXApcTtUR3s4Tnxga0NUQSZ8fVYyfi1TaUY8T0NoPENJcFFZTWUkdDtwOz5CciUr
PigjbUt1CnpVXz8zQCNNWWJvbUBtekBTaWohU2A+b1Y7YWg4fWg2Vi07Pl9BNnxDPnpwIT4+I0xh
K3o8KG84N3AtZzFfVVNsSQp6N0x4dnkkKHpPe3dhbHs2ZDJqb0wwKU4jM3hiIytTXnE9YWRIOHxL
Kj9ZRnlkTWB9WUFPKzFQJUVzc1BIZyVlNjwKemlrM09Oc3sqMjk0TExmYkFUUzM4Rj1taWwzSj9i
UU9VQ3VYLXI8V3YpWH5gY2MrNTNucmNjVHhkJEg5WnpVNilZCnpNWkZzP1AxdnV6OU8mPExnIVV1
TEx6U1oweklje3VYbW9jZE81TCRzUH5IJkZnV3BUczZNdEUqOERCOHhXbiNhUQp6cE9+I1E/ampY
SiVtPncyK1FUaEBSc0VkMDNVSzJ4R343QllxNnRAK3JKNkY1YEZhRCsrP2NheWI0ZUUyclNEY2oK
elpNUihXP3IqbG93eVoxUWEyNjVgYmExQGp3d359UGw1PEZuTiZtNHYwSTE1VXZQeGAlWm9JT3ZN
KEwtV0otei01Cno+MzlXVXR4KiR6dSpKK25BJUJpbitrbGs4SyNSaXI2UmpWSTAhRlR5emRwWDlq
Y2RMT3lfIz18c2khZEprMHR9aAp6M1NjNmFENXkqPG5hWWJCMXZjdUo9SkMoe0w1TGE/YGB6XlhD
RjFSP0FaRkdQe25RMVEjbEpffl4jNUV+K2BjVkEKemR6aFJXcFRiYksoYT9tbntUUV5wM1d0N3lg
Pn0wQVRyZFUxLVNEMjg+YzskNzw5fGQ9VmNzWmcyOE9ecD5kJnZACnpsI249dCl8fitMYT9ZRGU5
dF5YUUFCMFpxQytfbjVNTHUkMlJGZDNMYnFuZnU7ZFQtKzFqaCpuYHg1KFMkSkJSLQp6SH4wNnk+
Ki1mXjUxazlOYFAreExYSFhee0cmR2ViczxfS0VPcCZ3PCMwMl5pRm1Qa3xPTVEmTSt0NHhTTlpr
aisKeitgS1Mxe2h9KlY+M0AwRGtSPGRVKXRCWkttQ3Z2NGliXlU1bGxydFYmKS1uOVYtcFghK0I+
WW9XXzNeZUV5UmRjCnpaViEpWXI4UEJsbEpERHJLSlBaPEkyJTloPUpGJHk9UT9nTWZ6eXR+VSsh
UGB7WXszMmtqPlI2NGwlUlktcXQteQp6KmY4KW57MEQkMGp8ZytHaz1FYW9pb0M3WlY5SVlxZXA4
JjdtdER+JEFBZCV8OCo4ezxePHF7WlNgQHVEdXFsU2kKemJ+R2deaDNzN0h7V3NVX2Z5WSV5NzEy
RCZUKmttaVA1Zl83enZYeTZWIzNTaTBWP1ZoM2BRST1zSUZqODMmQ098CnpRVUk+bHl9fEk+OEll
aFcoeypEKmwmMzRwZDN+SCg9KzEtTD1kYGpPJHJvcFl3NVpoNnEje25zckYra1MwMDA4LQp6WkV0
VU8wRiZZZCROXytwc3xXWjJmUm0mTU1JaStNMDAwMDAzVEEwI1l5a2lPMDAwelhiYUhlNjAwMDAw
MjgjZHkKUjI4I2ZiM0pGMzIydzs7PTMzXm5tWl9AdygKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRp
b24tOTAubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTkwLm1wNAppbmRleCAyNzlmMDliODM3Y2Q4ZWQ2NDE0
YjYxMDYzZDIyMGQ4M2VjNzNkYmQ4Li40MWUzYzM2NzVhNGQyYTJkM2NkODllNWFhMDE5ZTJlOGYz
NDA3NWUyIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDgxOQp6Y21jYTB1dHMybDdDKzFY
Kz8yITsxX3FgRFleP3dQJnpXY2AkN25iKVU2O3t0PEozVD1kakhncDc2JEdBfDg2fTAKenRUWDll
KjhLJlNHZylIfFZxWXtjZjM0P2dTLWYpaERjKk8lbmJtRns5UzxqQEp+KCM2XipRcW5ObHxYKit6
bGI7Cnp6NHh6aW4jaT5OZmM/NXR7bz1oITB3SFhGOSkjWDZ7cUpHZGZCKX5LTmZ6Z3ZAOytgenhT
R2w3bz8xT3NWUkdgTAp6QC1NZEgmbEtjP3dVX3NxVXJJU0cmTT4jV2QtbWtpez5tZnpLaCZGM0ZS
YWt7X0AqWiEoMGd0RT9SIXRFY0JJPSkKempyJWQ8YCZxNzJudGlNUHpoJiFpVmBHfUFxM0NubSFm
PDB0TXNlMWFyOGtTdEgmLWZIQHl0Q3ZVSCQmZ1pLNkhYCnptVHN7QXk2QHJ6Um8kLXpVclQxKjtJ
fSFjXlUwQy0qNkh7QjQ9JUVRXkErV05FIy1VWDtxZXpnK1hMQyF2SmNpVAp6Tz4lcEE/JUN7SDQ7
T3haPDhZPntCakNOMWo+TmBVTm1YQ3NXNkYyPE5VQSZhWn1+TXp7Sip1JHR7Pll7X3Y9ZEIKeiRY
TWIoQDRjJGRqRT0zb0Q/P2x9d0kyUndTZUV4V3l6MCUzZ08pNzJGRSQ8QXg7RGAzc3tZKWxYQzxv
aj9xOWJ3CnpwVEJNT3JKKFp0P2BrPF4oU1Y8IW1UNmkjQTdnalNrVWhSc1NHaGgtQGxNPmpEWEok
I3Irako5c0FGQWg3MEooMAp6bUglPnd7LTM8PEhuRHY1VW81b2RFdEhFKS1fXi1CYiVHPUI7bHkm
OHtWemd+dXBXRnJXdil7RCNPdVowQHI3TD8KelRiN3hobUY/ZEFtTn1mZXAoaSE/d3ZRbSFxKSEz
MmV3aEBRfExYVmxhSmc9TXdAS29qdFp3aiErWUtUTEVle3B7CnpIUC1zJnRnRjxHQFh6dj1FMUQt
K1hnMj9LK2syaTFmeWVGY1hta0k1ViF4NH1YLWhTTyErKH1QT08rUSR6UkIpawp6Wip6IypUTz84
TkEld2x+VjdTQX5nbkg+eCtnKERCWkIwSDMyY0Z7RTlzYSFHK3hhUW1YVUlQKFdNRSlzb3QoXkMK
eiUmMCY0STsoe2UxMHc/JXtRblEza3gyJi1DdDxRN249YSQ+JD88RjxqNnN2UHUtVkJtM0tmP208
cDhERDZfKnNKCnpmWWJtMSRlNE1GV3l5dzwxPSVEUzZERGkxK3VMJmVmNTslN3AyRVBqPUJBdEFM
WkhQVVJtPT1WezZlYko3I1l8eQp2VU96c3FibH5yZ0EwWWlBTmhMK1ZkO2tRQDR9TzV+PFZveUtP
ZjI2Z1V0PSN9R2RJeVFHJXhARjxSVzJ7CgpkZWx0YSA4NTUKemNtVi1kMUV+RDA1WVB+aURofnhX
WkRlNnwwMDA4NzFfbDVCdEMyWSM1SEtLZUdjWWtSTygwYHJXalNGdkdtJSY9CnowV2goS1EzOEs+
V3ImMFRDSThuIWpkPERXQG1WfFM9MXs5MUBNPTFkWVNlMFgzKnZpcD1reGVKYDRzQllmbFg1dwp6
NjZmeFkzKTZZcHUwb2ZqOzB8e3UrbUo8YU1KZ2JzISRJbHE8SCpZd1NteUhFOXxoSDw9UXVSP0p8
T15wQWBsTUoKeiZBbjxlZVA4SzxIJkoobj9hNCprSHc9YU8tOX5NVTJCcipzU25fYHA9fm5eeTt7
Z0JOWiZfaT4/cHRuQ0Y5M15nCnopPGxnfTM4a1FmeExwPGptKDlNTFJDVlFfIU1OazwyVkdMLUZi
QW99QTFhWHpFdGs0Ym9TMmx4eVRiS3hTKEtuUgp6RVdNbT5pP2B7SXIoKEBBdFNram1NeipQbzd5
R1RtP15sfjhuZWAmeWEtczU+RW9BbDFRMEhHTF8qM3BmVUo4cH4KenNtcChvPGB4Qz9GSFVpWWFH
Pk5adjVtOzNseGA8KmtvaD8qP3FKO3h7Jn4oK05zNXE7SnJRTXRBfWY3VzZ8P2hBCnpgXmR2anYj
aUFnU0tEbm1JZTNsd3IpSF81X3x7MGZKITRXTFFMYTNfKjA4b3oqKT8tZzs/RTIxV2MySEpkTmRQ
fgp6JG8jc2E7R2ZvPjNkUDdwJnllNlIlakRKMnVeQk5KJGslQFg/U1MtaUVjaSU3NUxTcGlrdUZq
ZEVKYWhNJEwjQGAKejY+NGp5VXo+Nz1lZUYmOUxWNkIxRWNRaEs0K14zS29QWll7NyNOYUJFIUBR
bHlmelFiP0ticWNxUXIyaDk2QzE9CnpRQlpiWkNxNkBNKldJTE1wY1VfLSR8R1FvQzY8dVE3RHF1
V3ZhNj41OHtYbE07THo7NWxfak5OSU9+SEpIZm56dwp6dV9Ec3gzYjZnNW55TktmI099RkdCSnE+
WkhtJiZGa247QUArZ01PSHxIeXJwMVIrMGpydzFwaWE9ckY2bHluaiUKejY+WmlsRERGT2ZzO0dK
JkNHfEglLT1PTHhlLSZZJHF8Y1k0VGhuXnVqT3s1Um5+NzEpTGhWKjx7a2lFMT9sKiUwCnptcnJH
aWVrMWtNWV8yPTVDMFF9Y1g3STBKMDAwNjRAc2xlQmF7KEtacDlNR3F8Tm9RdjF7d3hIMDAwMDBm
UnAoSgp6RWRpNjBDazlqaks5aFV+Sn4jbVdiOTc+QzAwMDEqYjk4ZkwwMDAwMDAwMDAxMDAwMXJW
Um1DTjAwMDAwMDAwMDEKejAwMDAwMDAwMDAwMDAwMDAwMDAwMER6UDcyMHRrYXxLUmBeWEpofml0
bDJeWVhnfmt9MHt9bigwMVNpMDNUMSErCmgwMHdDNTxJNXR6e3JMQypsV3FxPjB0R0xWdklsZXFH
Jkw/VUZmaTxDZWFgPkAKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRl
by1yb3RhdGlvbi05MC52cDkubXA0CmluZGV4IDNhNjYwODNlYzRkZDBjMjI3MDBkNzcxM2Q3MjNl
NTQyNGMwMGNlNDMuLmI0YTRiZTk0NjQ5YTBlZWQ1NjFkMWExY2Y4OGY3N2NmZmIyZDFjZmMgMTAw
NjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTc3MQp6Y21WPEgxe0M+KjdxQW5NQ1Z2SzxaRGU2
fGY9UG95MDByO3xfNWU1fTkyZnVxMUtAdSooRUlXSUBwei0mM3JCai0KemQ1PkFzZU9JTFNVcWdD
Tk1XVmVpRSVKSHpkPHtLcmpaS2xSciFmQ0ItQjc7QXpQWCVxM0xBJi10PUlxbmMpOXV7Cno7OFhF
cjJNQE1KME5hZkc/QWF8aXVmTjh6Rk4mMUgjRi1mRXd6fTItOTRacmxLN1U7dlAocDxrKUNmYz4w
NU9McQp6IW8+VSYtI3dgbXY+Q2h+QGFTZHp7PCRAZm9WMUhPYGgpS0FLWHt+OGF2aW8/YmNRKTxA
PEBoe3p3fm4xVGg8Sm0KenFpQjJ4YS02Um14YFN+QzExaEVLR2Nwe2xCczNGdjl0SVpQTnUrTTV7
VHIpaEhXZ2d4X14qJTg0X3N8elVoNVQkCno9MHt9VVp1XzhNTXR9NG5RS1poOzUjfTNubWJWY25s
bEo9YF8qKSphcWM2QmRXMXlsc05pPjl4UyQob0RLcD9+Zwp6amJEPCRsU342NzdwaUNecXpAN1g9
dnFyQUhMXklCVWpUNHwwN0lMa0dJJFJOJiZsXlExK285b1EoUSM5QHs9QUwKejNWLXRgelYqdjxA
eFE5QnhyaHI9e24tX3tAZkUoJHh0ODJ2QUpFJVY5RGZTdDtiKlF5WjJQeFRHQ2hSMSE4NlBkCnpz
XyEqTVhULVhFdUw2JHFVMWRVTFM8UW4/JSFTMUw4NjFvZHRANnE0MUlVeHBEYzFgUkpnbk5hb2A/
SWhFX1Vodgp6SHxHOXA7a3YqZkp8Y2VKWVQqKjtJQWpQWTVKQk0wQSRPJTRoe0pzSFh+MmFYck5N
XmUmeFlzV3d2RkxwakNiV3MKekFfNTBqNkBTWFN2YWp7PzkpMjB3RDA+YEFqKHx3eUVETlAyVnJr
ZGRTUyRjQ0dNMnUmdkhmdUtjOX5AJjkocUgyCnoxRGh4TjRSeTRWRXI9dCRJI1hoZEQ+Sn1DPmNa
Zz1NI3coI0ttPEVMRHpJZ1RrdTUkbUE8O0pCe0ZyOGJGMkpWXgp6KDBGMCQmdV9TYnhgTUg/Qnpu
KDk5ZTNLSDlaJSktTn0zJlU/dGh4OHJ2cUYxXihWLUd4cTBfZiErNH1vQXt+emcKeikqKihCPilF
a2t7fk9pb21BRlZLZ2pVdXdBRGdoeEo+UmpmbEJ3flFqVTAtJXFoeyhkSWQ5MEROaGt6JWI+V1pk
CnpHdFBATXBYWkhiU0h6Yi0qKEkpY0ErVi1lO3x+TU0hIVJtVEBwKigrQDRtU3JWKCRgay0mK2s9
ezw9ZEtiNTMxUgp6QiE5N1F1a3BocmdRPkxEO1JoQWA5b0QjY3tjPl9ROTshWUJQM0FyZ0NrJnFg
e3tlMX1jfHNGSzI4YEJVMV5QR0oKemxOe3NnaFhXbStqI1cpZE97NG9oQEFkVS1rJXszdipWfikp
KGYtWDBJU15BWWtATWNHaVMpX0V7VTcoYThxbVM0Cnp3RHkkRz5mV0ZCVVFVMzsmSFdhQW0tLTZ5
M2lrZ1A+d2s7elMwbWtoQSFpPWF3Jk56QXdZPGVlNFheQX1LKCVoIwp6JCM8b3JjRzBzdDFgazNI
aWJNbktPLWhvNUhNVGA9Jk1jc3U+fXFxOHFzc1B2bj17bmpwIWFHeSpJKm84MFdlQj4KenpGa0E9
KEFrYmckeEhSYXs0bnVibFNiblU1NT1RVDNVXiNPMn1wbWl3OFVgUj5aQWZPZVZEcU0/YG8hT15u
YkhzCnpRb0UlSEYofkJtVmxreGRWKnBBKVNIJjRwckFsPHQtPl9jPUJwVHtqXmJ1U15OMEQzeE9X
SDtOKVBrdXJre2JHSQp6Q1JvPSU7KkRVaWRjY0IwKzVIdERjPGJrRV56U3UmUzJaYEFhYThzMy1V
JWI+ejM2M3ReU0lvLWplTWxkKXx9ekYKelV+TiYjSHM+YjYtTF9PeD9zJmkqTzxeQXNRLTI7JF4k
dipebnJtJCtkeTZ1flM/dSZvR2M0I3hHUlpWOEErMHR6CnpzUkdlN3pwfDZCKy1BNEdyN24oLXEy
fVdzO2ZPYWJPITRTaTBlYHlUP2thaWp1d1o+TEspNXRRMzNVRzNManQ8eAp6P2xBU3pjejxjR3ck
Rn0+QXRtcHNHX1hrVFRhRSQtJVZuRGFKcFQ+SkZoa2V9QFlwYWRVV1BybCErK1cpN3xlYTAKeiZo
ekQmQWVNY2o8e3BmZCRVaTxmbTByYTNhO0R2Z3B+dExjS1Y/ISsyPXg8PEIlX0E2MVVnMFB5PDF8
YVlUdXFGCnpLKHcwYTd7Q0FURFp4PElvN1dAUEVIKlpGXl5uYzNxYDwyQk1LOD88OHZ6OVU1QSh2
ZmFwRC1UNzw3Uz0tbzhXZwp6YzNuPyk5SDlMeWNMSXx4TUlALUVXcTt+dXA1TFlYOCNKREVGc0Ff
OVo2aUQ4LTFJMlJ3WWcwZDlubkRkWUtsYmoKej1SWGZxeW5APSNoYGoldlc8ejNRelVPQlpIJjR9
KkQhbGZXeWs3ZiR4NjhLZSUxTDJ2PEA0RDVLOFp1WCUyNntkCnolRU8tJXlre2RGZHNBfSF1R3xU
U1pvX0JHUCR3V2UoJTUoNFh0MC1ed3BKUipsSjkxaTElQ3ZZNkk3NlAlSXEwMwp6WHtVNlpKVGA1
SXZHeHBmYl9RJTBmIWMwZiZFck5tSkJgbzhFcV9yKHRDeTlVV3JHZlBqRDlqTDdsTWFOemorbnMK
enU0VDNrXjtmWmNuekhkXipMV00jRUp4JDZDSCZwYXR5aihwPnM1MWF1JTB3X0dqPzY7eXRmPj05
RSgrczxmX3ZNCnp0NV5Oc01NcXB5JTk0fGI0SlRxd0coS2FFaG1+VDU8b2ozfmcoNG5SWjwtWiU8
S05UN1RyV3JOYTtEZWZSZmxtawp6ej59NTsoZzkkVFgka2xOVjNUNEJNSWl6SjAwMDAwM1RBMCNZ
eWtpTzAwMHpYYmFIZTYwMDAwMDF0ZSR5MXRlJmIKTiRPPUxOMjk9V3gzd3BgPllaQ3dmCgpkZWx0
YSAyMjQ1CnpjbVY7JDJzLXokNk5WUiVDVnZRWFpEZTZ8Zj1Qb3lBUDRYVl81ZTV9OTJmdXExT1Jf
Ry1rO3g1PXs7dE1fa3pWPAp6XkI8I0JkVCh9clhKK1ckbzd+TTY+QWV2PC1nYEdidVUxbjFefTA4
YDxLVFBpYmJNdjB4KloxZVA8IWloMDA0WncKenp5SXAyIWVqc2NabkFeX3xNc35PMTE8Zzk1I1Jz
dSRoWn09d3dOPmo9RkNYamhKUGRYKUptSGh8THBXenBrbWUzCnpyI25nX1R3fShANGpuWEErViFU
cD5Odnw9ITh+aGlNfSQ2aztofWxQTEVwe1c1Uzg/UEVkVGtSIV45a0QlO1N4Tgp6VE1QTlQhYytk
cWAxTnNqP15MO1MxRU0/OFRpPC0yVDBeMX1LQ1JJTFhObDFQNU0xNkIwbSZlKGBUZndjMz9EMEYK
eihocFVZM15SI2J4UEpsOXxDfkpmST1RVn5TfHRpOGhVY2RpeCFEa1VxX18hQ19gfmd5R31zfH1Z
b0Z7cGZJK2kwCno2P2lSV2lkJGZreUdfaXQhUzxZUCg4VSN7X1FiRzhINj5FOFdMYEJmcmRYT3lK
NypHUGVNazFrJEBsJkhPT0NydAp6X1RAYGomWWk3UT15WVdsQGQyanJFM2drX3g5cHRxeDNsLUpT
T05hRnBucngkUDBXSzZMYT0heF8zRCUtRmdOdjYKemZBfFdlKFE4Nz1MdiZTS0w8P1ozZUpzISV8
RX5wdk96dkx0cX1jLXJBPUtJVGw7Y2g7Tmk4aGZ1S15IfSh2S0UqCnp8MU9+dU0qbUEqeX00SCNC
M3g1Rz1EbkAyYGBBNmVzMD45SyFLc1FtMyRPZT0oRVBSZiNeKCp9MilmPlY1PyhjYgp6cj1TPykk
QThpZENwSyZUVUlLWCVLNmtKTW9NVntuaClEd31HK3EkeG58N3ZAPkBOVFJsZm5rTylkV3JkPDAp
cFgKelh+PWlmU2pCaCQ/Zj5sbSpQOCRxUXhOPV4oJihtVVc8emgjN1BUbCY0SXJtOyNBbSEqbldD
TFJQeVhiMCh9MjdfCnpPOCQ2ZVZ0UWpXZkVkcWQ9N1pyWE84P0hnO2N7T0ZPKkppczkpSFJlRTY+
c2Y7dWcmZ1l2UzBSNjYrJT52Z3Uwdgp6eHU9Y2wzZXxzUkZvWiMzeEg/K1JHZkNNfldoZ15ka05e
N2lvQ35nNXA+QkQhS0d0SiNtOG4yTjdMWjctZWpQZFMKejF8UTU/Kyg7WEFNX0VVfHVIWTt6KTlj
SjNgSFhQMWRkXzRfd2F5UDM+LSFFRUt9bUNBKlMwTihsWjxfQSV+RGhVCnpQSmNMek4oYj4qU0w8
YHt8Tm9KMGt7V2lveDAjRUFZbn1UfiVzJXk3Xno2O3dyUXJuaEBNfjNMMSZYUUslO05KMQp6M15A
KD8qKSlxK0N9SyV9SWE7Z2okQlZaPS11d1VremZMfVEpY3NDXzQqQHslUzJ6Q304bCFAZGFibEs2
MihROU4KejwjJlJoODYocmVRY1psYnAzJCFsK3t2eDhQeDYxTm9QWE9jMmpgI0N7ell3aFJ7VV9N
d2cjd3Q+NkxvP1NwWCNzCnp4djlKaUs0UVVwKWRhOHYjK3x6NHlhRD54PCorIU07fE01VVZJYUwx
ezQyK3B6U3BKVzsyb3R5bmlpIVJzJlEmSgp6RDI5cm9udEYyUHpQWjN2RnhwdX1oQX5xKGRndEoh
TFM2by1lLTFlMXRHdVEtcVpKUzk3ezl7QDZrIU9HWmh2XzwKemVTZyl8QTNyRGxndV5iPFNYeW9S
WSVWe1h7bWAtV1dlMT9+djglczF3bTh5ekJ4QlRYJWZvVlJaV24kVWM+IT4xCnpCbmxxUT5pa0cz
d282eDIrZF54cHlgP3xYLW1LTGU/TDJoTCpTYHA+OE9SOEd7TSNPR2I5YCloK1Zscn48aCp9UQp6
dmc8bGFwPyNARW5XcFN5S0xga3tfckNyYEolMVhlN3V6eyl7LV5XKFEjPFI3Z1IkPkZ8S3pjfnts
LU4jNzt7aE8KelEoe25IZW5oWjQ7T0p2Q29zaGBpNGhIKUdvKFlUTkJtcjQxcDJ8aSRhPXB2SE59
U2o0Q3ZvQHp0Uj1OWVpIN2AlCnpWKD89X2ZLOSslNHMpUjwzY2RANih3YWdwdE9FQHtSUisjdE02
NjVyKEMkSjAyTWFeYFoqIUd+bVZYcEh7NHg4Jgp6c1U0dTFpOzRRKm00LTwoZ0dwJDBOJHJgRWE+
YVA1WGFEaHhpMUFgMiU1aTtBTDtwYyMzPHlgJSZkV2VwV0diM00KemhyKTFwQ1hucD9iPUV8RGxN
PygmZmB5aW1QeUA7P2dnUlg3ejRjWFVDcEU9T1ROWnc1KSk1Oz9mYF5Fa0pmVFhSCnpCJEZGcWM4
fmxtZFRUI2VGWGJYREtZIVNyVCkrQXd8TnA9RTI9U1dyTTMmdiF6THNJKEdXcS0/cFZuQ0BNZVMo
NQp6QVEjMi1pYXgpTE12WjMhUyR6Km0qZ04kOXNgKEN9UVhNPjhecXl6I1c7ZjctMDhVXkQrelJK
YWN9RVZrZEUkRlEKenljOVB8XiNuKV56JFcoZ2Q+XjU3THlHR0hnS1ckNUFRRl5VQFh7WV57QTBK
QjU8LVYqJEE4Y3ZjOy1CclRDPnxiCnpOcStlSipNPm9oN0V0dChLTmdIKm4xTHBncD1CfSNld2A5
VFFeSTVjckM5fnZTfG5FTGVVWGBFYSlXXypmenFTPQp6WXdORTUpPCkob3ljXjZ6Kz1wZ3gtdUo2
fCttUjNLezs7NmhEMWVPc0BHbyRaV19iMWMlRk1JbSgpb1JLUjxsa18KekJqa29iMTlyYXxkcjhT
fjIhRG9+RSF0ejtoI2s/Yzd5cXlRTTA3NDxGfk50bCRwIylUb2lDJXctVChqT09nSFVaCno4JSNx
bE1DQmVBR1BDOVoxeSppcntjU3o1NFlTak9KNTF9eWtaIzhoUjB0ckIrQHd+UiRBakV5UkxPPms0
WGZAQgp6KVBFeihHa2U9S2BVTWRjRjgxai1hZmpISUN4O3doXlIjKlpYdW5sYiplIXhkPjNAPXRm
YGwzVms8bisjMihmYTcKeipLKkJmQ1o1JEZ2RTNgPjYrbjhodVopYD9EYnwzPWk5I2xFIWZiQS15
fVBoYCUyNmo0U1pNfkd5Q0RFXlFPSU5DCnpnOGZWVEBUfUw+Y3ZrfE5FJWJMYSpnT0N2MzFzTVBJ
Uih0QEdOaHIxZWBMLTt5PzM3bHAzYEV7X1h4T31zJHVBNwp6ZF88OTtNdyRkVmdAMyp+bmRoTDtr
NEZAP3g/N3wrey0yWWdTKztsSzhNNDFOMGleZXIrRz5DZChmaXYrSnZsJCgKeiVocSU2dCFXJnlI
KD9rK0hXJD56VGtEMFkqbkZlYzRSekxXaUBnJEhJYHZqTEpSX2Q/UkAtR0J8OGxnK25oZnRTCno3
Uy1jTDNGbF9CbislXlppMkZwdTJ3NmZjZHtRSGwofn4xYGI9V2NqY3peckJJKClVI2d0Y0RCMGo3
LVNCa0xCPQp6b050bVZRdWc9cCpPSU5xYlR6MWwmTTFaaGNvWjc9WTExa1ooYGxoJHooa0d7VCVm
Ujc1WTdUJFhOQ0I7cH5NJXIKejVRVjlXVlNjOGh2Z35+Km1fcTlMWGBfUCokcXY8Kmo2ZUdnXlkw
Iz94PlRrSEVSXlRJX0dGZzZ3Z2w7dWBYVXRQCnpBeUswYz5IJno4enl7SSpmUm1GNF95S15FajBp
O2AxcG9qNTAwMFZSWD1ROHkwMDAwMDZrPkY4Yk5+UFYwMDBKKQpUbTtlVG9uM003ZExJTWJEbFFz
IUBYVSVEYAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450005</attachid>
            <date>2022-01-26 01:31:42 -0800</date>
            <delta_ts>2022-01-26 10:19:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235563-20220126113139.patch</filename>
            <type>text/plain</type>
            <size>1994393</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDBhNThkZTg4NDdmN2NmOTBkN2E3ZTYyMmE1MTk2NmMx
ZDlkZWY5ZS4uMTQ5MDkwYjUwMDBiMDc5OWI4Yjg0NTc2MWEwOGQwMGIzNWQyMjEwMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIyLTAxLTI1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3Qgc3VpdGUgdG8gMjAyMi0wMS0x
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NTYz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZ1
bmN0aW9uYWxpdHkgdG8gVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHM6CisgICAgICAgICAtIENvcHkgaHR0cC1vbmx5IHRlc3RzIHRvIGh0dHAvdGVzdHMvd2ViZ2wK
KyAgICAgICAgIC0gQWRkIHRlbXBsYXRlIHRvIGpzLXRlc3QtcHJlLmpzCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVz
dC1wcmUtdGVtcGxhdGUuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5j
ZV90ZXN0c19saWIvbWFpbi5weToKKyAgICAgICAgKF9jb3B5X3RyZWUpOgorICAgICAgICAobWFp
bik6CisKIDIwMjItMDEtMjQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbmFtZSBWZWN0b3IgYW5kIEZpeGVkVmVjdG9yOjpmaW5kTWF0Y2hpbmcgdG8gZmluZElm
IHRvIG1hdGNoIHN0bCBuYW1pbmcuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVzdC1wcmUtdGVtcGxhdGUu
anMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0
c19saWIvanMtdGVzdC1wcmUtdGVtcGxhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZkNDJlNTMwYjZlMGY3
MWQ4NDY5ZmRiMGUyYzI0YjE0Nzk2MGQyMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9qcy10ZXN0LXBy
ZS10ZW1wbGF0ZS5qcwpAQCAtMCwwICsxLDUxOSBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLwor
CisoZnVuY3Rpb24oKSB7CisgIHZhciB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gZmFsc2U7CisK
KyAgdmFyIGluaXROb25LaHJvbm9zRnJhbWV3b3JrID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRl
c3RIYXJuZXNzSW5pdGlhbGl6ZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEhh
cm5lc3NJbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNv
ZGUgLS0gKi8KKworICAgIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhl
cmUuCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0
UnVubmVyOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMgY29u
c29sZSBvdXRwdXQuCisgICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRl
c3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2Fn
ZXMuCisgICAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdp
bmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisKKyAg
ICAgIC8vIFJBRiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhl
IHRlc3RzIHdpbGwKKyAgICAgIC8vIHVzZSBzZXRUaW1lb3V0IGluc3RlYWQuCisgICAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOworICAgICAgd2luZG93LndlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICAvKiAtLSBl
bmQgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0aW5n
SGFybmVzcyA9IGZ1bmN0aW9uKCkgeworICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKCk7Cisg
IH0KK30oKSk7CisKK2Z1bmN0aW9uIG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgewor
ICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICB9Cit9CisKK2Z1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNz
KHN1Y2Nlc3MsIG1zZykgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7
CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93
LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG5v
dGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RI
YXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlz
aGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5ub25LaHJv
bm9zRnJhbWV3b3JrTm90aWZ5RG9uZSkgeworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3Jr
Tm90aWZ5RG9uZSgpOworICB9Cit9CisKK2Z1bmN0aW9uIF9sb2dUb0NvbnNvbGUobXNnKQorewor
ICAgIGlmICh3aW5kb3cuY29uc29sZSkKKyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOwor
fQorCit2YXIgX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nID0gZmFsc2U7CisKK2Z1bmN0aW9uIGVu
YWJsZUpTVGVzdFByZVZlcmJvc2VMb2dnaW5nKCkKK3sKKyAgICBfanNUZXN0UHJlVmVyYm9zZUxv
Z2dpbmcgPSB0cnVlOworfQorCitmdW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCit7CisgICAgaW5p
dFRlc3RpbmdIYXJuZXNzKCk7CisgICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICBt
c2cgPSBkb2N1bWVudC50aXRsZTsKKyAgICB9CisgICAgLy8gRm9yIE1TSUUgNiBjb21wYXRpYmls
aXR5CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAg
c3Bhbi5pbm5lckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4iIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+
Ii48L3A+JzsKKyAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZGVzY3JpcHRpb24iKTsKKyAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkKKyAgICAgICAg
ZGVzY3JpcHRpb24ucmVwbGFjZUNoaWxkKHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpOwor
ICAgIGVsc2UKKyAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgaWYg
KF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKG1zZyk7
CisgICAgfQorfQorCitmdW5jdGlvbiBfYWRkU3Bhbihjb250ZW50cykKK3sKKyAgICB2YXIgc3Bh
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qg
c28gWEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQorICAgIHNwYW4uaW5uZXJIVE1MID0gY29udGVu
dHMgKyAnPGJyIC8+JzsKK30KKworZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIF9hZGRTcGFu
KG1zZyk7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfbG9n
VG9Db25zb2xlKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQpCit7
CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICIm
bHQ7Iik7Cit9CisKK2Z1bmN0aW9uIHRlc3RQYXNzZWQobXNnKQoreworICAgIHJlcG9ydFRlc3RS
ZXN1bHRzVG9IYXJuZXNzKHRydWUsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNs
YXNzPSJwYXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsK
KyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAgICAgIF9sb2dUb0NvbnNv
bGUoJ1BBU1MgJyArIG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykK
K3sKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhmYWxzZSwgbXNnKTsKKyAgICBfYWRk
U3BhbignPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1M
KG1zZykgKyAnPC9zcGFuPicpOworICAgIF9sb2dUb0NvbnNvbGUoJ0ZBSUwgJyArIG1zZyk7Cit9
CisKK2Z1bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9hLCBfYikKK3sKKyAgICB0cnkgeworICAgICAg
ICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2EubGVuZ3RoOyBpKyspCisgICAgICAgICAg
ICBpZiAoX2FbaV0gIT09IF9iW2ldKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9IGNhdGNoIChleCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVy
biB0cnVlOworfQorCitmdW5jdGlvbiBpc01pbnVzWmVybyhuKQoreworICAgIC8vIHRoZSBvbmx5
IHdheSB0byB0ZWxsIDAgZnJvbSAtMCBpbiBKUyBpcyB0aGUgZmFjdCB0aGF0IDEvLTAgaXMKKyAg
ICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0eQorICAgIHJldHVybiBuID09PSAwICYm
IDEvbiA8IDA7Cit9CisKK2Z1bmN0aW9uIGlzUmVzdWx0Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0
ZWQpCit7CisgICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIF9hY3R1YWwg
PT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0gKDEvX2V4cGVjdGVkKTsKKyAgICBpZiAo
X2FjdHVhbCA9PT0gX2V4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlw
ZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2V4cGVjdGVkKSkKKyAgICAgICAg
cmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVyIiAmJiBpc05hTihfYWN0dWFsKTsKKyAg
ICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkKKyAgICAgICAgcmV0dXJuIGFyZUFycmF5c0Vx
dWFsKF9hY3R1YWwsIF9leHBlY3RlZCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlv
biBzdHJpbmdpZnkodikKK3sKKyAgICBpZiAodiA9PT0gMCAmJiAxL3YgPCAwKQorICAgICAgICBy
ZXR1cm4gIi0wIjsKKyAgICBlbHNlIHJldHVybiAiIiArIHY7Cit9CisKK2Z1bmN0aW9uIGV2YWxB
bmRMb2coX2EpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAgZGVidWcoIldB
Uk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICAvLyBMb2cg
Zmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBz
eW5jIGV2ZW50LgorICBkZWJ1ZyhfYSk7CisKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2
ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJl
dyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJldHVybiBfYXY7Cit9CisKK2Z1bmN0aW9uIHNo
b3VsZEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8
fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZSgp
IGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFy
IF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9i
KTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVs
c2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkg
eworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCisgICAgICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2
KSArICIuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
IiArIF9idiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAi
IChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5v
dEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0
eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgp
IGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFy
IF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9i
KTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAg
ICBlbHNlIGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1
aWV0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90
IGJlICIgKyBfYnYgKyAiLiIpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hv
dWxkQmUoX2EsICJ0cnVlIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxk
QmUoX2EsICJmYWxzZSIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU5hTihfYSkgeyBzaG91bGRCZShf
YSwgIk5hTiIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJu
dWxsIik7IH0KKworZnVuY3Rpb24gc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGEsIGIpCit7CisgIHZh
ciB1bmV2YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFjZSgvIi9nLCAiXCIiKSArICciJzsKKyAg
c2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQorCitmdW5jdGlvbiBzaG91bGRFdmFsdWF0
ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgLy8gQSBnZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRv
ci4gICdhY3R1YWwnIHNob3VsZCBiZSBhIHN0cmluZyB0byBiZQorICAvLyBldmFsdWF0ZWQsIGFz
IGZvciBzaG91bGRCZSgpLiAnZXhwZWN0ZWQnIG1heSBiZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQor
ICAvLyB1c2VkIHdpdGhvdXQgYmVpbmcgZXZhbCdlZC4KKyAgaWYgKGV4cGVjdGVkID09IG51bGwp
IHsKKyAgICAvLyBEbyB0aGlzIGJlZm9yZSB0aGUgb2JqZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMg
b2YgdHlwZSAnb2JqZWN0Jy4KKyAgICBzaG91bGRCZU51bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gInVuZGVmaW5lZCIpIHsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7
CisgICAgLy8gQWxsIHRoaXMgZnVzcyBpcyB0byBhdm9pZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5n
IGZyb20gc2hvdWxkQmUoKS4KKyAgICB0cnkgeworICAgICAgYWN0dWFsVmFsdWUgPSBldmFsKGFj
dHVhbCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgdGVzdEZhaWxlZCgiRXZhbHVhdGluZyAi
ICsgYWN0dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9c
bi9nLCAiIikgKyAiJyIsCisgICAgICAgICAgICAgIiciICsgZXhwZWN0ZWQudG9TdHJpbmcoKS5y
ZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9
PSAib2JqZWN0IikgeworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwgKyAiID09ICciICsgZXhwZWN0
ZWQgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAic3RyaW5nIikgewor
ICAgIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBl
Y3RlZCA9PSAiYm9vbGVhbiIpIHsKKyAgICBzaG91bGRCZSgidHlwZW9mICIgKyBhY3R1YWwsICIn
Ym9vbGVhbiciKTsKKyAgICBpZiAoZXhwZWN0ZWQpCisgICAgICBzaG91bGRCZVRydWUoYWN0dWFs
KTsKKyAgICBlbHNlCisgICAgICBzaG91bGRCZUZhbHNlKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAo
dHlwZW9mIGV4cGVjdGVkID09ICJudW1iZXIiKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBzdHJp
bmdpZnkoZXhwZWN0ZWQpKTsKKyAgfSBlbHNlIHsKKyAgICBkZWJ1ZyhleHBlY3RlZCArICIgaXMg
dW5rbm93biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlVHJ1ZShhY3R1
YWwsICInIiAgK2V4cGVjdGVkLnRvU3RyaW5nKCkgKyAiJyIpOworICB9Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlTm9uWmVybyhfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAg
dHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0
aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIGJlIG5vbi16ZXJvLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVs
c2UgaWYgKF9hdiAhPSAwKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi16ZXJvLiIpOwor
ICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBXYXMgIiAr
IF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9uTnVsbChfYSkKK3sKKyAgdmFyIGV4Y2Vw
dGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPSBudWxsKQorICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzIG5vbi1udWxsLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlIG5vbi1udWxsLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVW5k
ZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAg
ICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOwor
ICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
dW5kZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKHR5
cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgdW5kZWZp
bmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5l
ZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZURlZmluZWQoX2EpCit7Cisg
IHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2Ep
OworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhj
ZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBUaHJldyBl
eGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPT0gdW5kZWZpbmVkKQor
ICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlv
biBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpIHsKKyAgICBpZiAodHlwZW9mIF9h
ICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldB
Uk46IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIp
OworCisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAg
IF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0g
ZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgICAgaWYgKGV4Y2VwdGlvbikK
KyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFRocmV3
IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1
bmRlZmluZWQiIHx8IF9hdiA8IF9idikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9h
diArICIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgPj0gIiAr
IF9iKTsKK30KKworZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2LCBtc2cpIHsKKyAgaWYgKHYpIHsKKyAg
ICB0ZXN0UGFzc2VkKG1zZyk7CisgIH0gZWxzZSB7CisgICAgdGVzdEZhaWxlZChtc2cpOworICB9
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsK
KyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIHZhciBfZXY7CisgIGlmIChfZSkKKyAg
ICAgIF9ldiA9ICBldmFsKF9lKTsKKworICBpZiAoZXhjZXB0aW9uKSB7CisgICAgaWYgKHR5cGVv
ZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0gX2V2KQorICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOworICAgIGVsc2UK
KyAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAi
dW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmlu
ZWQiKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9
PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyB1bmRlZmluZWQu
Iik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiAr
IF9hdiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpIHsKKyAg
ICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0g
ZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAg
IH0KKworICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKworICAgIGlmKF90eXBldiA9PT0g
TnVtYmVyKXsKKyAgICAgICAgaWYoX2F2IGluc3RhbmNlb2YgTnVtYmVyKXsKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9
CisgICAgICAgIGVsc2UgaWYodHlwZW9mKF9hdikgPT09ICdudW1iZXInKXsKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9
CisgICAgICAgIGVsc2V7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4g
aW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoX2F2
IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGlu
c3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChf
YSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfQorfQorCitmdW5j
dGlvbiBhc3NlcnRNc2coYXNzZXJ0aW9uLCBtc2cpIHsKKyAgICBpZiAoYXNzZXJ0aW9uKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQobXNnKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVk
KG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBnYygpIHsKKyAgICBpZiAod2luZG93LkdDQ29u
dHJvbGxlcikgeworICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh3aW5kb3cub3BlcmEgJiYgd2luZG93Lm9wZXJh
LmNvbGxlY3QpIHsKKyAgICAgICAgd2luZG93Lm9wZXJhLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5RdWVyeUludGVyZmFjZShD
b21wb25lbnRzLmludGVyZmFjZXMubnNJSW50ZXJmYWNlUmVxdWVzdG9yKQorICAgICAgICAgICAg
ICAuZ2V0SW50ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lET01XaW5kb3dVdGlscykK
KyAgICAgICAgICAgICAgLmdhcmJhZ2VDb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
IGNhdGNoKGUpIHt9CisKKyAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CisgICAgICAgIGlmIChuIDwg
MSkKKyAgICAgICAgICAgIHJldHVybiB7fTsKKyAgICAgICAgdmFyIHRlbXAgPSB7aTogImFiIiAr
IGkgKyAoaSAvIDEwMDAwMCl9OworICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICBnY1Jl
YyhuLTEpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAg
ICAgZ2NSZWMoMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICB2YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzY3JpcHQiKTsKKyAgdmFyIGJhc2VQYXRoID0gIiI7CisgIHZhciBleHBlY3RlZEJhc2UgPSAi
anMtdGVzdC1wcmUuanMiOworICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdzY3JpcHQnKTsKKyAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2Ny
aXB0c1tpXTsgaSsrKSB7CisgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgdmFyIGwgPSBz
cmMubGVuZ3RoOworICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9
PSBleHBlY3RlZEJhc2UpIHsKKyAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhw
ZWN0ZWRCYXNlLmxlbmd0aCk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXBpbG9ndWUu
c3JjID0gYmFzZVBhdGggKyAianMtdGVzdC1wb3N0LmpzIjsKKyAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlcGlsb2d1ZSk7Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9tYWluLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkK
aW5kZXggYzYxMDU2M2VmMTYxZTczNmNmYmJkNmY1YzFjYmE2NGQ3NTcyYjY0Ny4uNTlhMGM3Y2Yx
MmM1NzcyM2NlODdhNGUzOTA4ZGI2MjViZThhMjFmMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNf
bGliL21haW4ucHkKQEAgLTM0LDggKzM0LDggQEAKICAgIGNkIH4vdGVtcAogICAgZ2l0IGNsb25l
IGdpdDovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1dlYkdMLmdpdAogICAgbWtkaXIgYmFja3Vw
Ci0gICBtdiB+L1dlYktpdC9MYXlvdXRUZXN0cy93ZWJnbC97MS4wLngsMi4wLnkscmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXN9IGJhY2t1cAotICAgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMgfi90ZW1w
L1dlYkdMCisgICBtdiB+L1dlYktpdC9MYXlvdXRUZXN0cy97aHR0cC8sfXdlYmdsL3sxLjAueCwy
LjAueSxyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlc30gYmFja3VwCisgICB1cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMgLWMgfi90ZW1wL1dlYkdMCiAgICBydW4td2Via2l0LXRlc3RzIC0t
ZGVidWcgLS13ZWJnbCAtLW9yZGVyPXJhbmRvbSB3ZWJnbAogICAgcnVuLXdlYmtpdC10ZXN0cyAt
LXJlbGVhc2UgLS13ZWJnbCAtLW9yZGVyPXJhbmRvbSB3ZWJnbAogICAgY2hlY2stZm9yLWR1cGxp
Y2F0ZWQtcGxhdGZvcm0tdGVzdC1yZXN1bHRzIC1uIDI+JjEgfCBncmVwIHdlYmdsCkBAIC02NCw2
ICs2NCw4IEBAIF9sYXlvdXRfdGVzdHNfZGlyID0gUGF0aChfX2ZpbGVfXykucGFyZW50LnBhcmVu
dC5wYXJlbnQucGFyZW50LnBhcmVudCAvICJMYXlvdXRUCiAKIF91c2VfdmVyYm9zZV9vdXRwdXQg
PSBGYWxzZQogCitfY2xlYW5fdGFyZ2V0X2RpcnMgPSBGYWxzZQorCiBfSWdub3JlZEZpbGVuYW1l
TWF0Y2hlciA9IENhbGxhYmxlW1tQYXRoXSwgYm9vbF0KIAogCkBAIC04NCw3ICs4Niw3IEBAIGRl
ZiBfbWFrZV9pZ25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIocnVsZXM6IEl0ZXJhYmxlW1VuaW9u
W3N0ciwgVHVwbGVbc3RyXV1dKSAtCiAgICAgcmV0dXJuIG1hdGNoX3J1bGVzCiAKIAotX2NvbmZv
cm1hbmNlX3BhdHRlcm5zID0gX21ha2VfaWdub3JlX2ZubWF0Y2hfcnVsZV9tYXRjaGVyKAorX2Zp
bGVfcGF0dGVybnMgPSBfbWFrZV9pZ25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIoCiAgICAgWwog
ICAgICAgICAiLmdpdCIsCiAgICAgICAgICIqLnB5YyIsCkBAIC0xMDQsNiArMTA2LDMxIEBAIF9j
b25mb3JtYW5jZV9wYXR0ZXJucyA9IF9tYWtlX2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigK
ICAgICAgICAgIiovZGVxcC90ZW1wX2V4dGVybnMqIiwKICAgICAgICAgIiovZGVxcC90ZXN0LXdl
YmdsMi5qcyIsCiAgICAgICAgICIqL2RlcXAvdGVzdC13ZWJnbDIuc2giLAorICAgICAgICAiKi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bCIsCisgICAgICAgICIqL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0
bWwiLAorICAgICAgICAiKi9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIiwK
KyAgICAgICAgIiovbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCIsCisgICAgICAg
ICIqL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiLAorICAgIF0KKykKKwor
X2h0dHBfZmlsZV9wYXR0ZXJucyA9IF9tYWtlX2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigK
KyAgICBbCisgICAgICAgICIqIiwKKyAgICAgICAgKCIqL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIiwgKSwKKyAgICAgICAgKCIqL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiLCApLAorICAgICAgICAo
IiovbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCIsICksCisgICAgICAgICgi
Ki9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiwgKSwKKyAgICAgICAgKCIqL21v
cmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiLCApLAorICAgICAgICAoIiovbW9y
ZS91bml0LmNzcyIsICksCisgICAgICAgICgiKi9tb3JlL3VuaXQuanMiLCApLAorICAgICAgICAo
IiovbW9yZS91dGlsLmpzIiwgKSwKKyAgICAgICAgKCIqL2pzL2pzLXRlc3QtcG9zdC5qcyIsICks
CisgICAgICAgICgiKi9qcy9qcy10ZXN0LXByZS5qcyIsICksCisgICAgICAgICgiKi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIiwgKSwKKyAgICAgICAgKCIqL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyIsICksCisgICAgICAgICgiKi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIiwgKSwKKyAg
ICAgICAgKCIqL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBuZyIsICksCiAgICAg
XQogKQogCkBAIC0xMjAsNyArMTQ3LDcgQEAgZGVmIF9jb3B5X3RyZWUoc3JjOiBQYXRoLCBkc3Q6
IFBhdGgsIGlnbm9yZTogT3B0aW9uYWxbX0lnbm9yZWRGaWxlbmFtZU1hdGNoZXJdID0KICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIGlmIGlnbm9yZSBpcyBub3QgTm9uZSBhbmQgaWdub3JlKHNy
Y19uYW1lKToKICAgICAgICAgICAgICAgICBpZiBfdXNlX3ZlcmJvc2Vfb3V0cHV0OgotICAgICAg
ICAgICAgICAgICAgICBwcmludCgiSWdub3Jpbmc6ICVzIiAlIChzcmNfbmFtZSkpCisgICAgICAg
ICAgICAgICAgICAgIHByaW50KCJJZ25vcmluZzogJXMsIG1hdGNoZXMgaWdub3JlIGZpbHRlciIg
JSAoc3JjX25hbWUpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBpZiBf
dXNlX3ZlcmJvc2Vfb3V0cHV0OgogICAgICAgICAgICAgICAgIHByaW50KCJDb3B5aW5nOiAlcyAt
PiAlcyIgJSAoc3JjX25hbWUsIGRzdF9uYW1lKSkKQEAgLTE4Nyw2ICsyMTQsOCBAQCBkZWYgX2Nv
cHlfd2ViZ2xfdGVzdF9maWxlcygKICAgICB0YXJnZXRfZGlyOiBQYXRoLAogKToKICAgICB0YXJn
ZXRfdGVzdF9maWxlc19kaXIgPSB0YXJnZXRfZGlyIC8gInJlc291cmNlcyIgLyAid2ViZ2xfdGVz
dF9maWxlcyIKKyAgICBpZiBfY2xlYW5fdGFyZ2V0X2RpcnM6CisgICAgICAgIHNodXRpbC5ybXRy
ZWUodGFyZ2V0X3Rlc3RfZmlsZXNfZGlyKQogICAgIF9jb3B5X3RyZWUoc291cmNlX3Rlc3RzX2Rp
ciwgdGFyZ2V0X3Rlc3RfZmlsZXNfZGlyLCBzb3VyY2VfcGF0dGVybnMpCiAKIApAQCAtMjAzLDYg
KzIzMiw5IEBAIGRlZiBfZ2VuZXJhdGVfd2Via2l0X3dlYmdsX3Rlc3RzKAogICAgIHRhcmdldF9q
c190ZXN0X2hhcm5lc3MgPSB0YXJnZXRfZGlyIC8gInJlc291cmNlcyIgLyAid2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyIKICAgICB0YXJnZXRfanNfdGVzdF9oYXJuZXNzLnBhcmVudC5ta2Rp
cihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCiAgICAgc2h1dGlsLmNvcHlmaWxlKHNvdXJj
ZV9qc190ZXN0X2hhcm5lc3MsIHRhcmdldF9qc190ZXN0X2hhcm5lc3MpCisgICAgc291cmNlX2pz
X3Rlc3RfaGFybmVzcyA9IF90b29sX2RpciAvICJqcy10ZXN0LXByZS10ZW1wbGF0ZS5qcyIKKyAg
ICB0YXJnZXRfanNfdGVzdF9oYXJuZXNzID0gdGFyZ2V0X2RpciAvICJyZXNvdXJjZXMiIC8gImpz
LXRlc3QtcHJlLmpzIgorICAgIHNodXRpbC5jb3B5ZmlsZShzb3VyY2VfanNfdGVzdF9oYXJuZXNz
LCB0YXJnZXRfanNfdGVzdF9oYXJuZXNzKQogCiAgICAgdGVzdF90ZW1wbGF0ZSA9IChfdG9vbF9k
aXIgLyAid2ViZ2wtdGVzdC1kcml2ZXItdGVtcGxhdGUuaHRtbCIpLnJlYWRfdGV4dCgpCiAgICAg
ZXhwZWN0YXRpb25fdGVtcGxhdGUgPSAoX3Rvb2xfZGlyIC8gIndlYmdsLWV4cGVjdGF0aW9uLXRl
bXBsYXRlLnR4dCIpLnJlYWRfdGV4dCgpCkBAIC0yMTAsNiArMjQyLDkgQEAgZGVmIF9nZW5lcmF0
ZV93ZWJraXRfd2ViZ2xfdGVzdHMoCiAgICAgdGVzdHMgPSBfcGFyc2Vfd2ViZ2xfdGVzdHMoc291
cmNlX3Rlc3RzX2RpciwgKHNvdXJjZV90ZXN0c19kaXIgLyAiMDBfdGVzdF9saXN0LnR4dCIpLCBz
dWl0ZV92ZXJzaW9uLCBzdWl0ZV92ZXJzaW9uKQogCiAgICAgdGFyZ2V0X3Rlc3RzX2RpciA9IHRh
cmdldF9kaXIgLyB0YXJnZXRfdmVyc2lvbl9uYW1lCisgICAgaWYgX2NsZWFuX3RhcmdldF9kaXJz
OgorICAgICAgICBzaHV0aWwucm10cmVlKHRhcmdldF90ZXN0c19kaXIpCisKICAgICBmb3IgdGVz
dF9wYXRoIGluIF9maWx0ZXJfd2ViZ2xfdGVzdF9wYXRoc19mb3Jfc3VpdGVfdmVyc2lvbih0ZXN0
cywgc3VpdGVfdmVyc2lvbik6CiAgICAgICAgIHRhcmdldF90ZXN0ID0gdGFyZ2V0X3Rlc3RzX2Rp
ciAvIHRlc3RfcGF0aAogICAgICAgICB0YXJnZXRfdGVzdF9pbXBsID0gdGFyZ2V0X3Rlc3RfZmls
ZXNfZGlyIC8gdGVzdF9wYXRoCkBAIC0yNTIsNiArMjg3LDcgQEAgZGVmIF9maW5kX2V4cGVjdGF0
aW9uc19mb3JfcmVtb3ZlZF90ZXN0cyhsYXlvdXRfdGVzdHNfZGlyOiBQYXRoKToKIGRlZiBtYWlu
KCk6CiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249X19k
b2NfXywgZm9ybWF0dGVyX2NsYXNzPWFyZ3BhcnNlLlJhd1RleHRIZWxwRm9ybWF0dGVyKQogICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGhlbHA9InByaW50IHZlcmJvc2Ugb3V0cHV0LiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLWMiLCAiLS1jbGVhbi10YXJnZXQtZGlycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9
InJlbW92ZSBhbGwgZmlsZXMgZnJvbSB0YXJnZXQgc3ViZGlyZWN0b3JpZXMgYmVmb3JlIHVwZGF0
aW5nIHRoZW0uIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ3ZWJnbF9yZXBvc2l0b3J5Iiwg
aGVscD0icGF0aCB0byBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0IHJlcG9zaXRvcnkgcm9vdC4iKQog
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItbCIsCkBAIC0yNjMsMTQgKzI5OSwy
MyBAQCBkZWYgbWFpbigpOgogICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygpCiAgICAg
Z2xvYmFsIF91c2VfdmVyYm9zZV9vdXRwdXQKICAgICBfdXNlX3ZlcmJvc2Vfb3V0cHV0ID0gb3B0
aW9ucy52ZXJib3NlIG9yIEZhbHNlCisgICAgZ2xvYmFsIF9jbGVhbl90YXJnZXRfZGlycworICAg
IF9jbGVhbl90YXJnZXRfZGlycyA9IG9wdGlvbnMuY2xlYW5fdGFyZ2V0X2RpcnMgb3IgRmFsc2UK
ICAgICBzb3VyY2VfZGlyID0gUGF0aChvcHRpb25zLndlYmdsX3JlcG9zaXRvcnkpCiAgICAgdGFy
Z2V0X2RpciA9IFBhdGgob3B0aW9ucy5sYXlvdXRfdGVzdHNfZGlyKSAvICJ3ZWJnbCIKIAotICAg
IF9jb3B5X3dlYmdsX3Rlc3RfZmlsZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzb3VyY2VfcGF0dGVybnM9X2NvbmZvcm1hbmNlX3BhdHRlcm5zLCB0YXJn
ZXRfZGlyPXRhcmdldF9kaXIpCisgICAgX2NvcHlfd2ViZ2xfdGVzdF9maWxlcyhzb3VyY2VfdGVz
dHNfZGlyPXNvdXJjZV9kaXIgLyAic2RrIiAvICJ0ZXN0cyIsIHNvdXJjZV9wYXR0ZXJucz1fZmls
ZV9wYXR0ZXJucywgdGFyZ2V0X2Rpcj10YXJnZXRfZGlyKQogICAgIF9nZW5lcmF0ZV93ZWJraXRf
d2ViZ2xfdGVzdHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMi
LCBzdWl0ZV92ZXJzaW9uPVZlcnNpb24oIjEuMC40IiksIHVzZV93ZWJnbDJfY29udGV4dD1GYWxz
ZSwgdGFyZ2V0X2Rpcj10YXJnZXRfZGlyLCB0YXJnZXRfdmVyc2lvbl9uYW1lPSIxLjAueCIpCiAg
ICAgX2dlbmVyYXRlX3dlYmtpdF93ZWJnbF90ZXN0cyhzb3VyY2VfdGVzdHNfZGlyPXNvdXJjZV9k
aXIgLyAic2RrIiAvICJ0ZXN0cyIsIHN1aXRlX3ZlcnNpb249VmVyc2lvbigiMi4wLjEiKSwgdXNl
X3dlYmdsMl9jb250ZXh0PVRydWUsIHRhcmdldF9kaXI9dGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNp
b25fbmFtZT0iMi4wLnkiKQotICAgIGxheW91dF90ZXN0c19kaXIgPSBQYXRoKG9wdGlvbnMubGF5
b3V0X3Rlc3RzX2RpcikKIAorICAgIGlmIF91c2VfdmVyYm9zZV9vdXRwdXQ6CisgICAgICAgIHBy
aW50KCJVcGRhdGluZyBodHRwIHRlc3RzIikKKyAgICBodHRwX3RhcmdldF9kaXIgPSBQYXRoKG9w
dGlvbnMubGF5b3V0X3Rlc3RzX2RpcikgLyAiaHR0cCIgLyAidGVzdHMiIC8gIndlYmdsIgorICAg
IF9jb3B5X3dlYmdsX3Rlc3RfZmlsZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzb3VyY2VfcGF0dGVybnM9X2h0dHBfZmlsZV9wYXR0ZXJucywgdGFyZ2V0
X2Rpcj1odHRwX3RhcmdldF9kaXIpCisgICAgX2dlbmVyYXRlX3dlYmtpdF93ZWJnbF90ZXN0cyhz
b3VyY2VfdGVzdHNfZGlyPXNvdXJjZV9kaXIgLyAic2RrIiAvICJ0ZXN0cyIsIHN1aXRlX3ZlcnNp
b249VmVyc2lvbigiMS4wLjQiKSwgdXNlX3dlYmdsMl9jb250ZXh0PUZhbHNlLCB0YXJnZXRfZGly
PWh0dHBfdGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNpb25fbmFtZT0iMS4wLngiKQorICAgIF9nZW5l
cmF0ZV93ZWJraXRfd2ViZ2xfdGVzdHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzdWl0ZV92ZXJzaW9uPVZlcnNpb24oIjIuMC4xIiksIHVzZV93ZWJnbDJf
Y29udGV4dD1UcnVlLCB0YXJnZXRfZGlyPWh0dHBfdGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNpb25f
bmFtZT0iMi4wLnkiKQorCisgICAgbGF5b3V0X3Rlc3RzX2RpciA9IFBhdGgob3B0aW9ucy5sYXlv
dXRfdGVzdHNfZGlyKQogICAgIG9sZF9leHBlY3RhdGlvbnMgPSBfZmluZF9leHBlY3RhdGlvbnNf
Zm9yX3JlbW92ZWRfdGVzdHMobGF5b3V0X3Rlc3RzX2RpcikKICAgICBvbGRfZXhwZWN0YXRpb25z
ID0gW2UgZm9yIGUgaW4gb2xkX2V4cGVjdGF0aW9ucyBpZiAid2ViZ2wiIGluIHN0cihlKV0KICAg
ICBpZiBvbGRfZXhwZWN0YXRpb25zOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdjNTZhOWE0YjI3ZTdkNDNlNjkyYmZjNzNj
MDRhNzEzYzIyZDY2NTkuLmQwMGE3MTc4OGZmMDcxNDRhOGE3ZTg0ZDY2NjQ0OGE3MTVmZjAxYjEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NTAgQEAKKzIwMjItMDEtMjUgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViR0wgY29uZm9ybWFuY2UgdGVz
dCBzdWl0ZSB0byAyMDIyLTAxLTEyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU1NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgV2ViR0wgdGVzdHN1aXRlIHRvIDIwMjItMDEtMTIgOWI1OGZk
MjQzZDM4ZjRiOWM3MmFiNmY3NWFkNzAxY2FmYzEzMTEzNy4KKworICAgICAgICBBZGRpdGlvbmFs
bHk6CisgICAgICAgIFRoZSBpbXBvcnQgc2NyaXB0IGNhbiBub3cgY2F0ZWdvcml6ZSB0ZXN0cyB0
byByZWd1bGFyIHRlc3RzIGFuZCBzbWFsbCBhbW91bnQgb2YgaHR0cAorICAgICAgICB0ZXN0czoK
KyAgICAgICAgIC0gUmVtb3ZlIG9sZCBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yLworICAgICAgICAg
LSBBZGQgbmV3IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLnggLyAyLjAueQorCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzLzN4My5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvYmx1ZS0xeDEuanBnOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL2J1Zy0zMjg4OC10ZXh0dXJlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIudmVydDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEucG5nOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYucG5nOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1kZWZhdWx0LWdhbW1hLnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5wbmc6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMi4wLnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5wbmc6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLnBuZzogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWc6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby5tcDQ6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby50aGVvcmEub2d2OiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8ud2VibXZwOC53ZWJtOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3BuZ2xpYi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ubXA0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3JlZC1ncmVlbi5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cmVkLWdyZWVuLnRoZW9yYS5vZ3Y6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cmVkLWdyZWVuLndlYm12cDgud2VibTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9yZWQtaW5kZXhlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21h
bGwtc3F1YXJlLXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9y
c3Bpbi1wcm9maWxlLmpwZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFs
bC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMt
cHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1
YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMu
anM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuanM6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC12aWRlby5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFk
ZXIudmVydDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanM6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmc6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy8wMF90ZXN0X2xpc3QudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLTJkLWZvcm1hdHMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdl
dC10ZXgtcGFyYW1ldGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9n
bC1waXhlbHN0b3JlaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wt
dGV4aW1hZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pcG1hcC1m
Ym8uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1jYW52YXMtcmdiNTY1Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1jYW52YXMtcmdiYTU1NTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWltYWdlLWRhdGEtcmdiNTY1Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRh
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2NS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNDQ0
NC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNTU1MS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTQ0NDQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtdmlkZW8tcmdiYTU1NTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5k
aW5nLWJ1Z3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS13ZWJnbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZhbGlkLWRhdGEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLWJhZC1hcmdzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQt
Zm9ybWF0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1j
bGVhci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21w
bGV0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1mb3Jt
YXRzLXRlc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUt
aGQtZHBpLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW1p
cHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC12
aWRlby5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtY3Vi
ZS1tYXBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNp
emUtbGltaXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUt
c2l6ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWIt
aW1hZ2UtY3ViZS1tYXBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanM6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3dlYmdsLXRl
c3QtaGFybmVzcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRN
TC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3Mu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50
eHQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwu
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eFN1YkltYWdlMkRIVE1MLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcy4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dW5pdC5jc3M6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5jc3MuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL3VuaXQuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dW5pdC5qcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qczogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS91dGlsLmpzLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJl
LmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9qcy9qcy10ZXN0LXByZS5qcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanM6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3M6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9vcGVuZ2xfbG9nby5qcGc6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcy4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9tdWx0aXNhbXBsZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDFfdG9fMDA4LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwMV90b18wMDguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQ6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18w
MjQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3Rv
XzAyNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBl
Y3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2LWV4cGVjdGVkLnR4
dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNTdfdG9fMDY0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0OiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNf
dG9fMDgwLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3
M190b18wODAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYt
ZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAg
ICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5
Ni5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wOTdfdG9fMTA0LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3Rl
ZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4LWV4cGVjdGVkLnR4dDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTI5X3RvXzEzNi1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMjlfdG9fMTM2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0OiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9f
MTUyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90
b18xNTIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50
eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1k
ZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1
bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1h
ZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1t
YXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUu
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwOV90b18wMTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAx
N190b18wMjQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18w
NDAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODFfdG9fMDg4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wODlfdG9fMDk2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
OTdfdG9fMTA0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVf
dG9fMTEyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9f
MTIwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEyOV90b18xMzYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE0NV90b18xNTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE1M190b18xNjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE2MV90b18xNjgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2
OV90b18xNzYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190
b18xNzgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1l
YnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZm
ZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFs
aWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1u
b3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJh
YmxlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sLgorICAgICAgICAqIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
LW9mZnNjcmVlbmNhbnZhcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9w
bmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0
ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9l
eHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFz
aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMv
cmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwt
c3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0
ZWQtYnktY29sb3JtYXNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1j
b2xvcm1hc2suaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
Z2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxl
L2RlZmF1bHRfZmJvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fNF9zYW1wbGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRp
c2FtcGxlL2Zib184X3NhbXBsZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhf
c2FtcGxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRl
eHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2lu
dGVyLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9j
b250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2NvbnRleHQvbWV0aG9kcy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Np
b24tYnB0Yy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tcmd0Yy5odG1s
OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvczN0Yy1hbmQtcmd0Yy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3Nl
ZC10ZXh0dXJlLXMzdGMtc3JnYi5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy5odG1s
OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvd2ViZ2wtd2ViY29kZWNzLXZpZGVvLWZyYW1lLmh0bWw6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2No
YXJhY3Rlci1zZXQuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9nbHNsL2NvbnN0cnVjdG9ycy9nbHNsLWNvbnN0cnVjdC12ZWMtbWF0
LWluZGV4Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ0dfRGF0YV9UeXBlc19mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0Q29tbWFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3Jy
ZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RD
b25zdEZvbGRpbmcyX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0
cnVjdF92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9W
MTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEw
MF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVsbF92ZXJ0LnZlcnQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jT3ZlcmxvYWRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2FkX3ZlcnQudmVydDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEZ1bmN0aW9uMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NvcnJlY3RNb2R1bGVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFy
c2UxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMl9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfdmVydC52ZXJ0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2VUZXN0MV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0UHJlcHJvY2VzczVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0
UHJlcHJvY2VzczhfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJv
Y2VzczlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfdmVydC52ZXJ0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTJfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9Db3JyZWN0U3dpenpsZTNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0
VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvRHVwbGljYXRlVmVy
c2lvbjFfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Z1bmN0aW9uUGFyYW1f
dmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9JbmNsdWRlX1ByZXByb2Nlc3Nvcl9EaXJl
Y3RpdmVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Mb3dfTGV2ZWxfQXNzZW1ibHlf
UmVzZXJ2ZWRfV29yZHNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFt
ZXRlcnNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3QzX2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0NF9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL1Blcm1pc3NpdmVfQ29uc3RhbnRfQ29udmVyc2lvbnNfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNzaXZlX1NjYWxhcl9WZWN0b3JfRXhwcmVzc2lvbnNfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXJuYXJ5T3BfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2FycmF5MTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTExX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxX2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYXJyYXkzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk0X2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk1X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYXJyYXk2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk3X2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk4X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYXJyYXk5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRl
MV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTJfdmVydC52ZXJ0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9hdHRyaWJ1dGVfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9icmVha19mcmFn
LmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDU3X3RvXzA2NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODlfdG9fMDk2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18x
MDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5
X3RvXzEzNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xNjFfdG9fMTY4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21t
YTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTJfdmVydC52ZXJ0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9jb21tYTNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9j
b21tZW50X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwxX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwyX2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29uc3RGdW5jX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3Ix
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IzX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9jb250aW51ZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlMTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTExX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMl9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RhdGFUeXBlMTNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTE5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUyX2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZGF0YVR5cGUzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0
YVR5cGU0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU1X2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5
cGU4X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU5X2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGVmYXVsdC5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
ZWZhdWx0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rvd2hpbGVfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9kdmVjMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2
ZWMzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzRfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9leHRlbnNpb24zX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb241X1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb242
X1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb243X1YxMDBfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb244X1YxMDBfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb245X1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mbG9hdDJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDNf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnJhZ21lbnRPbmx5Ml92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50
T25seTNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHk0X3ZlcnQu
dmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5X3ZlcnQudmVydDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2Z1bmN0aW9uMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAw
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24zX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb240X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnVuY3Rpb242X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb243X2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb244X2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
aHZlYzJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjM19mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2h2ZWM0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
aWRlbnRpZmllcjFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMl9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvaWYxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYy
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50MV9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9pbmNyZW1lbnQzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50
NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDZfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9pbnB1dC5ydW4udHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9t
YWluMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4yX3ZlcnQudmVydDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjNfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9t
YXRyaXhfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZl
cnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjEwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjNf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI0X2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcGFyc2VyNV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Bh
cnNlcjZfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3BhcnNlcjlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMF9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxMF9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvcHJlcHJvY2VzczJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9j
ZXNzM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M0X2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczZfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9wcmVwcm9jZXNzN19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Nj
b3BpbmcxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc2NvcGluZzJfZnJhZy5mcmFn
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3N0cnVjdDExX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDJfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9zdHJ1Y3QzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3Ry
dWN0NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDVfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3RydWN0N19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDhfZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvc3dpenpsZTFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxl
Ml9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUzX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdHlwZWNhc3RfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC91bmlmb3JtMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3VuaWZvcm1fZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nMV9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ZhcnlpbmcyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWlu
ZzNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdmVjdG9yX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
dmVyc2lvbjJfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1Yx
MDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5Ml9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC92ZXJ0ZXhfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTFfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC93aGlsZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL3Byb2dyYW0tdGVzdC5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlh
bGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0
LWdldC1jYWxscy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3ZpZGVvLXJvdGF0aW9uLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9kcy0yLmh0bWw6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L2V4dGVuc2lvbnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5odG1sOgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC10
ZXh0dXJlLW5vcm0xNi5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lv
bnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0YW5jZWQtYmFzZS12ZXJ0ZXgtYmFzZS1pbnN0YW5jZS5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9v
cC1jcmFzaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJvdy1tYWpvci1keW5hbWljLWluZGV4
aW5nLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1n
ZXQtZnJhZy1kYXRhLWxvY2F0aW9uLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5h
ZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMt
c3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQt
Y2FsbHMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZvcm1hdHMu
aHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2FtcGxlVGVzdHMuanM6CisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmlt
aXRpdmVSZXN0YXJ0VGVzdHMuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlv
bmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fOF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4
X3NhbXBsZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzOgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcG9zdC5qczoKKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qczoKKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVzc2Vk
LXRleHR1cmUtdXRpbHMuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvdGVzdHMvY29udGV4dC1tZXRob2RzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9leHQtY29sb3ItYnVmZmVyLWhh
bGYtZmxvYXQuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
anMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qczoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTNkLXdp
dGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qczoKKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12cDgu
d2VibToKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJj
ZXMvdmlkZW8tcm90YXRpb24tMC5tcDQ6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTAudnA5Lm1wNDoKKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRp
b24tMTgwLm1wNDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQ6CisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTI3MC5tcDQ6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3Zp
ZGVvLXJvdGF0aW9uLTI3MC52cDkubXA0OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi05MC5tcDQ6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9u
LTkwLnZwOS5tcDQ6CisKIDIwMjItMDEtMjYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0cyB0aGF0IGFyZSBwZW5k
aW5nIHVwc3RyZWFtaW5nIHNob3VsZCBub3QgZHVwbGljYXRlIHVubW9kaWZpZWQgZmlsZXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTY0NWQzODFhMjVmNDE4YjFiZjE3ZTYyYjc2NzU2ZjJhNzg5YjE2
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
UHJvbW90ZWQgVVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5q
cGcgdG8gaHR0cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5v
cGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcKLUNPTlNPTEUgTUVTU0FHRTogUHJvbW90ZWQg
VVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcgdG8gaHR0
cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5vcGVuZ2wub3Jn
L2ltZy9vcGVuZ2xfbG9nby5qcGcKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiBy
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2UuaHRtbAotRkFJTAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAzODgzMjNjYTYxNTA0NGU3YWNmZmZm
MGYzYWEyYTdhYTFlZGNkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5P
VCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9InJl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sIj5yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDwvYT4KLTxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9InJlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhYWNhODZlNzU0NzU1MDUxZTZjYzU5OTZjOGVjZWZkMTg1
NGFiNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUHJv
bW90ZWQgVVJMIGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcg
dG8gaHR0cHMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5vcGVu
Z2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcKLUNPTlNPTEUgTUVTU0FHRTogUHJvbW90ZWQgVVJM
IGZyb20gaHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGcgdG8gaHR0cHMK
LUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5vcGVuZ2wub3JnL2lt
Zy9vcGVuZ2xfbG9nby5qcGcKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiByZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sCi1GQUlMCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjZiZTcxM2EwN2MxNDQ1NzU1YWEwMTIwZTVjYTQzOGVjZmM3YmI0YS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFkQXJncy5odG1sPC90aXRs
ZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+Ci1UZXN0OiA8YSBocmVmPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIj5yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJn
cy5odG1sPC9hPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08
aWZyYW1lIHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlNjk2MTM5NjA1MTYzNjNiMzVkNGQxNzE5OGM3ZmFjYmM3
ZDI4ZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4u
L3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNy
Yz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2
YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB0Ij4KLQotVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgewot
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7Ci0gIHZhciBnbCA9
IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOwotICByZXR1cm4gW2dsXTsKLX0K
LQotVGVzdHMudGVzdFJlYWRQaXhlbHMgPSBmdW5jdGlvbihnbCkgewotICAvLyB3ZSBjYW4ndCBr
bm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRoCi0g
IC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVuc2lv
bnMuCi0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAibmVnYXRpdmUgd2lkdGgiLAotICAgICAgZnVu
Y3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwtMSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNzZXJ0U29tZUdMRXJyb3Io
Z2wsICAibmVnYXRpdmUgaGVpZ2h0IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygw
LDAsMSwtMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhB
cnJheSg0KSk7fSk7Ci0gIGFzc2VydE9rKCJuZWdhdGl2ZSB4IiwKLSAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygtMSwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAg
ICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gIGFzc2VydE9rKCJuZWdhdGl2ZSB5IiwKLSAg
ICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLC0xLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gIGFzc2VydE9rKCJo
ZWlnaHQgPiBiYWNrYnVmZmVyIGhlaWdodCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhl
bHMoMCwwLDE2LDE3LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBV
aW50OEFycmF5KDE2KjE3KjQpKTt9KTsKLSAgYXNzZXJ0T2soIndpZHRoID4gYmFja2J1ZmZlciB3
aWR0aCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDE3LDE2LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDE3KjE2KjQpKTt9
KTsKLSAgYXNzZXJ0T2soIndpZHRoLCBoZWlnaHQgPSAwIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wu
cmVhZFBpeGVscygwLDAsMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAg
IG5ldyBVaW50OEFycmF5KDApKTt9KTsKLSAgLy8gd2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdv
aW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAotICAvLyBvciBiZWNhdXNlIHRo
ZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25zLgotICBhc3NlcnRTb21l
R0xFcnJvcihnbCwgImJhZCBmb3JtYXQiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxz
KDAsMCwxLDEsIGdsLkZMT0FULCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50
OEFycmF5KDQqNCkpO30pOwotICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8g
ZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRoCi0gIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZl
ciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVuc2lvbnMuCi0gIGFzc2VydFNvbWVHTEVycm9y
KGdsLCAiYmFkIHR5cGUiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEs
IGdsLkFMUEhBLCBnbC5GTE9BVCwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgxKjQpKTt9KTsK
LX0KLQotVGVzdHMudGVzdFJlYWRQaXhlbHNTT1BJTUcgPSBmdW5jdGlvbihnbCkgewotICAgIHZh
ciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIpOwotICAgIHdoaWxlICghaW1nLmNv
bXBsZXRlKSB7fQotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICAvLyBTT1AgZmFpbHVyZQotICAgIGFz
c2VydFRocm93Tm9HTEVycm9yKGdsLCAidGhyb3cgYmVjYXVzZSBpbWcgaXMgZnJvbSBhbm90aGVy
IGRvbWFpbiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBhc3NlcnRPaygiY2FudmFzIHN0
aWxsIG9yaWdpbi1jbGVhbiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEs
MSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0
KSk7fSk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotfQotVGVzdHMudGVzdFJlYWRQaXhl
bHNTT1BDYW52YXMgPSBmdW5jdGlvbihnbCkgewotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaSIpOwotICAgIHdoaWxlICghaW1nLmNvbXBsZXRlKSB7fQotICAgIHZhciBj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMiKTsKLSAgICBjLmdldENvbnRleHQoIjJkIiku
ZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gICAgYXNzZXJ0RmFpbCgiY2FudmFzIHRocm93cyBiZWNh
dXNlIG5vdCBvcmlnaW4gY2xlYW4iLAotICAgICAgZnVuY3Rpb24oKXtjLmdldENvbnRleHQoIjJk
IikuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpO30pOwotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICAvLyBT
T1AgZmFpbHVyZQotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGhyb3cgYmVjYXVzZSBj
YW52YXMgaXMgbm90IG9yaWdpbiBjbGVhbiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
Yyk7fSk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgYXNz
ZXJ0T2soImNhbnZhcyBzdGlsbCBvcmlnaW4tY2xlYW4iLAotICAgICAgZnVuY3Rpb24oKXtnbC5y
ZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAg
bmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLX0KLQot
VGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPjxi
b2R5PgotPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Ci08
Y2FudmFzIGlkPSJjIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PC9jYW52YXM+Ci08aW1nIGlk
PSJpIiBzcmM9Imh0dHA6Ly93d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnIj4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkZWZkNzgx
YzkwZmJjZTMwN2U4MmY4MzhmMWFlZjIyOWQ5NWQyYWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUyICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0K
LQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgot
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0q
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KLQotVGVzdHMuc3Rh
cnRVbml0ID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZ2wnKTsKLSAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChj
YW52YXMpKTsKLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQp
OwotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2FibGUoZ2wuREVQVEhf
VEVTVCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wp
IHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1h
cCk7Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwg
dGV4LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVs
bCk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7
Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKLSAgICBnbC5lbmFi
bGUoZ2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScp
OwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4
ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBn
bC5MSU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIHZhciBmID0gbmV3IEZpbHRlcihnbCwgJ2lk
ZW50aXR5LWZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGds
Lk9ORSwgZ2wuWkVSTyk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYyk7Ci0gICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0
JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5P
TkVfTUlOVVNfU1JDX0FMUEhBKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0g
ICAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCi0gICAgICAgIGdsLlRFWFRVUkVfMkQsCi0gICAgICAg
IGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9ORUdBVElWRV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ks
Ci0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICAgICAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1oKLSAgICBdOwotICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7
Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICAgICAgYXNzZXJ0T2soZnVu
Y3Rpb24oKXtnbC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpO30pOwotICAgIH0pOwotfQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRE5vblNPUCA9
IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
MicpOwotICAgIHdoaWxlICghaW1nLmNvbXBsZXRlKSB7fQotICAgIHZhciBjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwot
ICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2ws
ICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRo
cm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hv
dWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30p
OwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wpIHsKLX0KLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4K
LWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2
ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29vcmQwID0gdmVjNChUZXgu
cywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwg
MS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktaGZsaXAtdmVydCIgdHlw
ZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVydGV4OwotYXR0cmlidXRl
IHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAg
ICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwgMC4wKTsKLSAgICBnbF9Q
b3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJp
ZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOwotCi12YXJ5aW5nIHZlYzQg
dGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4dHVy
ZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29sb3IgPSBjOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+PGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwv
Y2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFz
PgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9ImRhdGE6aW1hZ2Uv
cG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFB
QVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZBNVZmQkd6YWg5Y3hw
TnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2L2FFQkFVSEFPTUc0
ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3T3ZCa2FyN2wr
MytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4NVUzWHY1WmlNMytY
YlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05GTytaTTFmMmNiVExN
NTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFWdG1ONnA0TW8vWVBk
cU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1wZlRXK3B5VUFiQW04
Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4Ym90UmxqNWZsT3Vi
TDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2Nnd5aldoWUx3Skdp
RldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxic2RjdWR0NXF5elgz
bEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5VUY0RWpWU21hYVRy
TFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFFeXQvTm1XYTQ5WEpi
dDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJKWEpnRWNpMHBzdGRo
a3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIrWFc1MnpGYTVuTGNL
blBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFXU202NWRLWUhkR21o
UmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2S29EVFgwVlBpY2lU
TElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlUSlZEZ05FbGxRWlo0
S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1cCtXbDBGcGpyMmxK
TWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9MOVdBV1NiREpKclRa
RmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytWczJSNDV2ajlYamhU
a3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxDcFRrMlQzR1c3Vmh4
VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4dTFwY3ZSQWpud1VP
aUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQeEg5OG5ac3QxeWZG
K3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMya0pDZWpxeVFuNDBw
SlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZYTEZPeUFBb3lUZkxX
NFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxvTmtuM1ZmUFNldmIx
ZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVtZit1U0xQOGZ2eVhN
ZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdiY1hBSGtXbE9rSkM5
RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBycEwvWkp6Yy9PaS9Y
UDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dmek05
dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9LODlJbU50SWZtaTk5
S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8rYVY2NS84RHVKWER3
cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNNaVZRVnVLb1A3ODR1
MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90OFN1bkpZN04rcmx5
NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQZWFSN28rZUV2Q2pT
Zmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThRQjk5WHFZbmY1RHFZ
QjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjltNDhyUXJ4UDhMMjVm
a2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1WXcwMTUrUWQ4NGZs
SnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDREZGxjZnkzNkZWZlcv
U3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZuODF0dnJoLzZGd1Y5
Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQTGtqSGUyZWxxZjY0
WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtLc3V5OGQ5cVVMK3dB
SlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5xMzdQUmZsZmsrajNM
K1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9pNTdsVHgzMnBPSG5n
VU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJjRnFNVXUyMFNPblZB
Ym41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpvTE5XeG1NMU1oanh5
ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNKaDFxb2hGcjF3WS81
WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45SzhPOTFOOGk5aGZB
dnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2cVBi
dmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRFbjJuV3FZNjYrU3ps
eHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHhtS2h2NDlHZzMvb0Qv
cyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpCak5rcHhyazJDcHc1
STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1kdGZISmpwcnZKanRx
S0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3AycGN0SHdZclphZ2xJ
UGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3QmdPWk4yVjVWRnAr
eTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tpVkJ6MFhYeGo2alov
dk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2MGlwbXpEcmxyRVdu
L01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5eXo0OVM4Wi9OckZO
VC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1ZaUXRId1FxWlREaWw3
dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2S3BGUDJtclRLeDJi
dHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3YW1XeW95WSsxVkh6
L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpuTmduWFIrK0pkTmRk
WnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2VGQ5WU5acDRoYmRL
cU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVwTXROYzhtZWhnL0Fl
ZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJWWlhrU2VmdWtqTVZD
Y3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFqUC9BYWlhTm90NmtT
WTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0ejNXem50bjd2UnYv
NTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2ZytSZUI3Q25KM3dG
d1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRMUFJsdkR6SCtBNnVa
TllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHViQzcwbXgzemYwbnd4
OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMwd0JaS1hyWlYrMlJY
ekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQdFFjWi9ZRG1UUnBt
YXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91ZUE5Slg1TkhwcnZx
TmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4WTFKbzNoaTFpNDgv
MitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1kyMUJHVzBMeGtmYmd0
K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9xeUxlSTlWaVR0NzUy
UjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlUNWw5VDA5U0tRTHBH
TVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6U05UbmJXdjZMUi9C
Y0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1cDF5bjlzVkFCdVc2
cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndPL0gya0w4dVlmOENJ
bXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0pheG1LaHRVUC9pMC83
bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lzMWJ4dmtXbmZHclJL
K05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3dis0aHB1RGNSSG9v
SHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExuV2NFeUdXdjB5MlZr
clUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9sSDdBVkZyMHFZTkdy
SGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9WUEFETXR6cVR3eTMr
SjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5KZng5cHBub1YvdmMv
dXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAwMnZTcGcwNnNlMmd6
cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdFWHd6K3d2TE5EN2NF
Ym8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpLOUYzcTJVa0dwQ0pE
VS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1veWFoOWxtL2RPS1Bj
NzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0VlhiYVU3VUJsOFg0OEVT
SjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3aGxvQ2x1M2VOT0JO
c3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3UvUk5PKzgwRzN5ZERF
ZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdvK0Zac2Rqb2JueDl0
RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1AxeE1PeDdQQmoyOWZa
SHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0TzlZV21odU5oZVpH
MndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRhUFkrSElqNFB1cHY5
akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEzTUxhMzY0TlJBZmFm
VW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpXRjBCYXNIVzRMaGtl
aWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJcm1XaGIzays5SU5M
b1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9XN0IydURVWUhvb0dZ
a1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2U2ZRM2VY
OGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3dzRuODBHUEhORG9h
OWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQZkgrelo3NnZ5Zk8w
djluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3cjVIQTJIdjdFQ3pk
MjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9MYnRYTDJHV255MUEy
RmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85cjl2aTM5MDhIOE0r
d29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gzQXZnVjdkeXhZOGZP
Z1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9nOXRQSkVRdTFYdm1R
QUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9ImkyIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZXMvc3F1YXJlMTI4LnBuZyI+Ci0KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkZjg4MDNiNjIwYmMyMjE0MTYxNDIz
MzcwM2FkMTAyOWJkNjg4ZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0KLQotLyoKLSoqIENv
cHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
LSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
LSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCi0qLwotCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWph
dmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
dHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KLQotVGVzdHMuc3RhcnRVbml0ID0gZnVu
Y3Rpb24gKCkgewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wn
KTsKLSAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKLSAg
ICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQpOwotICAgIGdsLmNs
ZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGds
LkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0gICAg
cmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1hcCk7Ci0gICAgcmV0
dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwgdGV4LCB0ZXhDdWJl
TWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgZ2wu
ZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9N
QVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7Ci19Ci0KLVRlc3Rz
LnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKLSAgICBnbC5lbmFibGUoZ2wuQkxFTkQp
OwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScpOwotICAgIHZhciBj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250
ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBp
bWcpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19F
REdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICB2YXIgZiA9IG5ldyBGaWx0
ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOwotICAgIGdsLmJs
ZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOwotICAgIGYuYXBwbHkoKTsKLSAgICBmLmRlc3Ryb3ko
KTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgZiA9IG5ldyBG
aWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAgICBn
bC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKLSAgICBm
LmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0gICAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCi0g
ICAgICAgIGdsLlRFWFRVUkVfMkQsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAotICAgICAgICBn
bC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9N
QVBfTkVHQVRJVkVfWSwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAot
ICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKLSAgICBdOwotICAgIHZhbGlk
X3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9u
KCl7Ci0gICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJE
KHQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgICAgICB9KTsK
LSAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAgICBnbC50ZXhJbWFn
ZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgICAg
ICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQodCwgMSwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYyk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCi1UZXN0cy50ZXN0VGV4SW1h
Z2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpMicpOwotICAgIHdoaWxlICghaW1nLmNvbXBsZXRlKSB7fQotICAgIHZhciBj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250
ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgYXNzZXJ0VGhyb3dO
b0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0
aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwot
ICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9y
aWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigpe2ds
LnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2Uy
RCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAg
ICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9y
KGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93
IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci19Ci0KLVRl
c3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgewotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9
ImlkZW50aXR5LWZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRl
IHZlYzMgVmVydGV4OwotYXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29v
cmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleC5zLCAxLjAtVGV4
LnQsIDAuMCwgMC4wKTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQot
PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1oZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRl
ci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7
Ci0KLXZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHRleENvb3Jk
MCA9IHZlYzQoMS4wLVRleC5zLCBUZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bvc2l0aW9uID0g
dmVjNChWZXJ0ZXgsIDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWZy
YWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
Ci0KLXVuaWZvcm0gc2FtcGxlcjJEIFRleHR1cmU7Ci0KLXZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7
Ci12b2lkIG1haW4oKQotewotICAgIHZlYzQgYyA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29y
ZDAuc3QpOwotICAgIGdsX0ZyYWdDb2xvciA9IGM7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD48Ym9k
eT4KLTxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Ci08
Y2FudmFzIGlkPSJjIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Ci08aW1nIGlk
PSJpIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0
LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFBQUVBQ0FZQUFBQmNjcWhtQUFBVFZFbEVRVlI0
bk8zZCtWUFVkNTdIY2YyYjlrOVkrejQ0K3FLN09ab0dGVkE1VmZCR3phaDljeHBOekdFT29SdWE1
bEJFdWUvREs0Zlo3TWFwbVNtM01sc2h1OHhPZENwREp0M3YvYUVCQVVIQU9NRzR6MGZWNTNmcVUv
VjZmZDdmVC9lMzJiRURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdPdkJrYXI3bCszK0d3QnNrOHhV
clQwclRiOHZ4MlE0NWphbmx1N1lzV1Buc2dYZ1RlWXdhazg1VTNYdjVaaU0zK1hiVWgvbDJkSUNC
YzYwODBXWjF1cjkyYmFTSFJRQjhHYXlHZFVXdTFIem9TTkZPK1pNMWYyY2JUTE01MWxUNXdvYzVy
a0RPYmJaL1ZtMlNFbTIzVnZzeWpoVjVuSlFCc0NieEdaUVZ0bU42cDRNby9ZUGRxTkdIS2xheVVy
WEo5eldsRVNoMHhJdnpzbVlMM0haNTRwek1tNlZ1UnlSTXBmVFcrcHlVQWJBbThCbVZOVm5HTlRU
ZHFQNnZ6T01HckduYU1TWnFwTnNrMTd5YktsUzZEVEwvaXhib3RSbGo1ZmxPdWJMM0k2NU1wZmpW
cm5iRWFsWUtJTlNsMzM1dlFHQTN3S2JVVzJ4R2RXUkRLUDY2d3lqV2hZTHdKR2lGV2VhVHJKTkJu
RmJVMlNQM1NUN3M2eFNtbXVYY3JjelVlNTJ4c3R6SGZQbGJzZGN1ZHQ1cXl6WDNsS1dseGtzelhH
ZUs4bXhueXpKeVNqZVFSa0FyemViUVZsbE02cDdiVWIxNDlVRjRFalZTbWFhVHJMUzllS3lwTWdl
ZTdvY3lMWkptZHNoRlhtWlVwSG5YRkVHQi9PekpzcmRqcUV5dC9ObVdhNDlYSmJ0OUphNk1rNFZ1
N2hFQkY1TE5yMnEzbVpRejlnTTZ1OVhGRUJxc2dDY2FUckpYSmdFY2kwcHN0ZGhrdjNaTmluTlRa
YkFvZndzT1pTZkpRZnpNcVU4ejVrb2R6c1NaYm1PZUlYYitYVzUyekZhNW5MY0tuUFpJMlVMbDRq
RmZLSUF2QjdNT3JYRlpsQkhiQWIxMXphaitrbUdVYk51QVdTbTY1ZEtZSGRHbWhSbFdxUTh6eUZI
Q25MaytMNWNPVjZVSzBjS1hWSzVKMXNPNW1kS2hkc3BaYXZLb0RUWDBWUGljaVRMSUh0RkdWQUl3
Sy9OWWxCVzJmVHFYcHRCL2RobVNKNytMeXFBckhTOTVKaVRKVkRnTkVsbFFaWjRLZ3VscnJwVTZx
dExKWEJzdjV3dDN5TW45cnZsYUlGTERpOHZnMXhING1CKzVwK1dsMEZwanIybEpNY1JMTTZ5bnl2
T3pqaHhJSXQ3QStCWFk5R3I2cTBMNC85U0FhUm94TDd3L0w5V0FXU2JESkpyVFpGaWQ0WjRqeFpK
VS8xeHVmSGhPZW0rZWs2aWwwL0xCNzRxYVR4VEpvR2orK1ZzMlI0NXZqOVhqaFRreU9IZEM0OEpD
MlZ3YUhmbW55cmN6bit2Y0RzbXluTHRReVU1R1RlTGN6TENwVGsyVDNHVzdWaHhWc2FlN2Q0ZjRJ
MWwxcWt0Vm9NNllqT292cllhMUQ4c0ZvQjlXUUU0MTVrQTh1MXBjdlJBam53VU9pTERMUUc1MTkw
bzkyNDJ5bFJIblF5Ry9YTHo2bm1KWHFxV0QzeVYwbkM2VlB4SDk4blpzdDF5ZkYrdUhDMTBTZFhl
YkRtVW55eURxb0xzN3c3bFozNWI3bmI4c2N4dC83ZFNsMzJrSkNlanF5UW40MHBKVGtiWkRpWUM0
Tld6YUpWVlZyMnExMlpRUGJZYTFIOWZ1d0IwU3dXUWxhNlhMRk95QUFveVRmTFc0VDNTZnVXTTNM
M1JJQS83TDh2RC9zdnlaZThsK2V6VzIzS3Z1MUVtTzJwbG9Oa24zVmZQU2V2YjFmSyt0MUlhejVS
SjdjbGk4UjBwa3RPbCtYS3NLRmtHQnhmS29ISnYxbDhQNW1mK3VTTFA4ZnZ5WE1kTW1kc1JLWGM1
cW90ZEdRWGJ2Vi9BRzhXaVY5VmI5YW9acTE0MWF6T294V2JjWEFIa1dsT2tKQzlEYWs4WHk2MVBM
OGlEbm90TEJiQlVCSDJYNVl2YmwrUkJ6MFc1ZTZOQkp0cHJwTC9aSnpjL09pL1hQM2hMV2k2ZWt2
YzhoNld1dWtTOFZjL0tZUEVDOFdoaHpwT3FndXp2S3ZkbWZYVjRkMmIzd2Z6TTl3L2xaVEVOQUsr
Q1dhZXdXSFdxaUUydit0cXFWLzJ3MlFMSU5oa2tQMk5oL0s4OUltTnRJZm1pOTlLejhQY2wxNWRM
NjVKODBYdEpQci8xdHR5LzJTaDN1eHZrenZWNkdZK0ZwTythVjY1LzhEdUpYRHdwVnp5SHBPN1VR
aG1VNU12UklwZFU3YzJSUTd1ejVNUis5eCtPRmJudUhpM01pVlFWdUtvUDc4NHUydTc5QTM3VExG
cGxsVlduNnJYcVZZK3RldFdQR3hiQXNndkF2VTZUdkhWb3Q4U3VuSlk3TitybHk3NjFnLzlsYjNK
OXNXeDlmdnVTZkg3N2JYblFjMUh1ZFRmSVRGZWRqTFdGcFBlYVI3bytlRXZDalNmbHlvVkRVbGRk
S3NIakIrVEM0VUk1Vlp3blZRVTVpYmNxOW54MXVqUy81OFFCOTlYcVluZjVEcVlCNE9WWWRNL0dm
NnRlOVkvazgvL0dCZUN5R0tYRW5TRTExUWVrNTVQemN2OW00OHJRcnhQOEwyNWZraTl1dnkyZnIx
cWYzYnFZbkF4dU5NaDBaNTJNUklOeSsxT1BYUC93ZDlKKzVZdzAxNStRZDg0ZmxKcVR4WExoY0lH
Y0xNNzcrVWhCenQ4dVZCYTJucXZjZS9ac3haNnk3ZDVMNERkbGNmeTM2RlZmVy9TcUg2d0dsYXd1
Z01XdkFUdlRsaFdBeVNCNUdhbHlkSCtPZkZSelJFYWpRZm44MXR2cmgvNkZ3VjljRitXeld4Zmx3
YTJMY3Ivbm90enJicFNaNi9VeTFWVW5reDIxTXR3U2tKNVBMa2pIZTJlbHFmNjRYRDUzVUVJbkRp
UXVIQzZZcnk3T216MVc1SHJZK0ZiRjRSMU1BOERtV0xUS0tzdXk4ZDlxVUwrd0FKWi9DM0NQTTEz
T0h0d3RiZStlbHVucjlmTEZ1c0YvUHZTZjMxbzcrQTk2bnEzN1BSZmxmaytqM0wrWi9Gang3bzBH
bWU2cWs0bjJHaGxxOFV2UHgrZWwvY29adVZaM1hDNmZxL2k1N2xUeDMycE9IbmdVT2xVYy9qUjRs
RXRDWUNNV25hcmVvbGZOV1BTcVdhdEI5ZE9hQmJER2w0QmNGcU1VdTIwU09uVkFibjU4VHU1Mk4y
N3F0UDk4ZzlBL1dBejlRdkFYMTczRkV1aHVrTHZkRGNuSm9MTld4bU0xTWhqeHk4MlB6a25uKzJj
U3NYZFB6NGNiVDh4K0dLaDgrRkh3U08wT1NnQlltMW1uc0poMXFvaEZyMXdZLzVYeFp3V3cvdGVB
czlLVHZ3dHdaSCsyWEExVnlYQnJVQjcwWEZ6L3RGOW56TjlLOE85MU44aTloZkF2cmpzM0d1VE9q
WHFaWG5oRUdHK3ZrZEZvVUFiRC9wOTdQajcvdDU2cjU3L3B1K2I1cE9YZDZxUGJ2ZGZBYThlaTNW
VmwwYWw2TFhybFk0dE8rYU5GcjBwc3RnRDJPTkxsek1IZEVuMm5XcVk2NitTemx4enpIeXdiODU4
TC9UckJ2M3ZqV2ZnWDE4ejE1SnJ1cXBPcHpscVphQThseG1LaHY0OUdnMy9vRC9zKzN1NjlCbDQ3
RnAyaTNxSlZ6VmgweWxtclR2bVRWWis4QUZ6NUhzRHpCWkJqTmtweHJrMkNwdzVJOTBmbjVNNk5o
aGVlOWxzT2Z2Zm1nMy9uK3JQd3oxeXZrNW11T3BsZVdKTWR0ZkhKanBydkpqdHFLQUJndWVUNHI0
aVlkY3F2emJwZFAxajB5dmpxQXJDdjlTSlF1bDdjdGxTcDJwY3RId1lyWmFnbElQZHZOcTUvMnIv
Z1ltOVR3Yit4OWVCUGQ5WEpWSElTbUovcXJQMW11ck9HUndCZ09aTjJWNVZGcCt5MWFCZkdmNTB5
c1ZRQWEzd0hZTEVBc3RMMXN0dVJMcWNyOHFYMThpbVo3S2lWQnowWFh4ajZqWi92TnhuODZ4c0hQ
L2tJVUNkVG5YWHg2YzdhdjB4MTFQUnM5MTREcngyVFRsRnYwaXBtekRybHJFV24vTW1pVjhsbUNp
RGJiSkFEdVRZSm50d3ZONjcrVG1hdTF5ZER2bWJvdDM2eDl5ejQ5UzhaL05yRk5UL2RWZnY3cWM2
Nms5dTkxOEJyeGF4ZVBmNHI0aHNWZ0hQaDl3QnpyU2xTVlpRdEh3UXFaVERpbDd2ZGpWczc3YmNZ
L0ptdEIxK21PbXNUa3gyMVQ2YTZha2UyZTYrQjE0NUp1NnZLcEZQMm1yVEt4MmJ0cy9GLzhWdUFM
eXFBM2ZZME9WMmVMeTJYVHNwRWU0M2NmOEd6L1RZRVh5WTdhbVd5b3lZKzFWSHovVlJuWGZOMjd6
WHcybGthLzdYS1dZdFcrWk5GcDVUTkZFQzJ5U0Q3WFZZSm5OZ25YUisrSmROZGRacys3WCtkNE5m
S1pFZU5USGJVekU5MjFEeWE1UElQV0NsTnJiQ1l0Y254MzZUZDlZTlpwNGhiZEtxTkMyQmgvSzhz
ekpMMy9ZZGxJT3lUT3pjYXR2d3gzc1kzK3I4bytETFpFVXBNdE5jOG1laGcvQWVlWTFMdnFqSnBs
YjBtamVLeFdhdjQwYXhWSmxZWHdGcHZBbWFtNlNUZm5pYlZaWGtTZWZ1a2pNVkNjcmQ3RXlQK2Vx
Zjlsb0pmdTJId0p6cHFaS0s5UnNiYlEvSEo5dEQzazUwMWpQL0FhaWFOb3Q2a1NZNy9acTNpSjdO
T0tZc1hnQzhxZ0N5VFFmYmxXTVYvZko5MGZuQldKanRyVjR6M1d6bnRuN3ZSdi81ODZMY2EvR2Ny
TkQvUkhubzAyYzc0RDZ5UXBsWllURnBGeEtSVkxJMy9Ld3ZnK1JlQjdDbkozd0Z3V1ZMa2NHR1d2
T2MvTFAzTlhwbTVYdi9MVC90TkJuOXlFOEVmVDRZL01SNExQUmx2RHpIK0E2dVpOWXBLazNaWGIv
ckMrRy9TS2hLYkxZQzhqRFE1VlpZbjRZc25aTFF0S0hkdWJDNzBteDN6ZjBud3g5dERNaDRMeVZn
c0ZCK1BCYjhmYjJmOEI1NlRybEhVcDJzVjB5YU5ZbW44MzB3QlpLWHJaVisyUlh6SDkwbkgrMmRs
b3FNbVdRQ3Y0TFIvK2VDSGxvSy9FSDRaandYbngyUEJSMlB0UWNaL1lEbVRScG1hcmxZMG1UUzd2
a3JUS1A1cTBpcCtOdXVVWXRtZ0FCeXBXbkZaakhLb0lGT3VlQTlKWDVOSHBydnFOaDM2elo3MnZ5
VDRDK0ZQakxZRm40ekhnb3ovd0dvbXphN2Q2WnBkTVpORzhZMUpvM2hpMWk0OC8yK2lBUEl5VXVW
a3FWdWFHay9JU0RRb005ZGYzV20vTXZnMVd3NytXQ3drWTIxQkdXMEx4a2ZiZ3QrUHhVS00vOEJx
YVpwZHU5UFVpaWFUUnZHVlNhdjR5OUluQUJzVVFHYTZYb3F5TGVJOVZpVHQ3NTJSOGZiUXFzQy80
dE4raThFZmF3dkthRFFvSTlIQS9HaGI4SnV4S09NLzhCeVQ1bDlUMDlTS1FMcEdNV1RTS3Y3VHJG
VThOZXVVaWVVRllGdjFZeUNPVksza21KUGovN3ZlZzlKN3pTTlRuYld2NkxSL0JjRmZXQ1BSUUh3
a0d2akxTRFRBbTMvQWV0TFZ5anlUUnZtT1NhdVlOT3NVMzVwMXluOXNWQUJ1VzZxY0xNMlZhdzNI
WmJnMUlOTmRyK2EwWC9zei9LMEZmelFhbE5Gb0lIbjZSd08vSDJrTDh1WWY4Q0ltemE1Q2syN1hl
MmF0Y3NxaVU4YlhMWUFValdTbTY2UXd5eXplWTRVU3UzSmF4bUtodFVQL2kwLzdtaFdoWHhIOHR2
V0NINVNSYUVCR280SEVTS3YveVdocmdNcy9ZRFBTZGNvaXMxYnh2a1duZkdyUksrTnJGWUE5UlN2
WlpvTWMzT3VVZHp3SDVmYTFDekxSVWZOUFBlM0gxemp0MXd2KzRocHVEY1JIb29IdlI2SUJMditB
elRMcmxFVm1uZktoUmFkOGFsM3o1OEMwNHJhbHlJbVNYTG5XY0V5R1d2MHkyVmtyVTEzUGgvNmxU
dnNOZ2orNlFmQkhXZ015M0JxUTRWYi8vSEJyNE5GSTFNL2xIN0FWRnIwcVlOR3JIbHIxcXFjMmd5
cSsvRTFBWjVwT0NyTk00amxhSUcxWFRzdG9XL0NmZDlxL1ZQQURNdHpxVHd5MytKOE1NLzRETDJY
bmloSXdxdUkybzFyc0tSckpOaG1rWXE5RExsK29rRnVmbkpmeDlwcG5vVi92Yy91dG52YXhOY2I4
VFFVL0lNT3RmaGxxOGNlSFcvemZEMGNERjdaN0k0SGZxcDAydlNwZzA2c2UyZ3pxcHhsR1RkeWVv
cEZjYTRvY0wzSEpwL1ZIWlREaWs0bU96WTM0TDMzYWIrN0VYd3ord3ZMTkQ3Y0VibzIwQmpLM2V4
T0IzN0tkTnFNNllET29IMllZMVUrZGFicDRRYVpKTGh6Wks5RjNxMlVrR3BDSkRVLzcwS3M3N1Rj
TXZsK0dXbnlKd1lqdnlWQkw0SjN0M2p6Z1RiRFRabFFITW95YWg5bG0vZE9LUGM3NHBmUGwwdlB4
T1JtTGhYNmQwMzVUd1Y5WUVWOThzTVUvTlJEbThnOTRWWGJhVTdVQmw4WDQ4RVNKNitrbjlVZCtI
Z2g3RXVQdG9WZHoycmR0SnZRdkR2NWd4TGV3dkg4Y2lIZzdobG9DbHUzZU5PQk5zdE50U3czNGp4
YzliSDJuZW5hb3hUYzMzaDZhSDR1RjR1UHR3Y1I0OG4vdS9STk8rODBHM3lkREVkLy9ESVI5OXdi
Q3ZzYnQzaXpnVGJUemFxZ3kwUFB4dWZCSU5CQWJidzg5R28rRlpzZGpvYm54OXREY2FDdzRQOW9X
akkvRmdvbXhXQ0F4K2dwTysrRzF4dnhWd1IrTStHUXc3UDF4TU94N1BCajI5ZlpIdkZYYnZWSEFt
MnJuNHByc3JLa2Q2d2lGUjl0RHNmSDJtdGhJTFBSb3JDMDRPOVlXbWh1TmhlWkcyd0x6STlGZ2ZM
UXRrQmlOQmhMUGhmNFhuUGFMYXlEaWs0R3dUd2JDM3Y4ZGFQWStISWo0UHVwdjlqTCtBNytDbmN2
WGVIdE43V2dzR0I2TmhXS2pzVkJzSkJwOE5Cb056bzVFQTNNTGEzNjROUkFmYWZVbmhwUHI1VTc3
bGNHWGdiRDM3d05oejUvN203MGpBMkhQbVczZUUrRC9yWldGMEJhc0hXNExoa2VpZ2RoSUxCUWJi
ZzA4R200TnpBNjMrT2VHVy94elE2MysrYUVXZjN5b3haZElybVdoYjNrKzlJTkxvVjhLdnZRM2Ur
TUR6ZDRmK3BzOS85RWY5cllOUkh5T2JkNERBQXRXRk1Kb1c3QjJ1RFVZSG9vR1lrUFJRR3lveGY5
b3FNVTNPeFR4elExRmZITkRMYjc1b1lndlBoanhKcFpXZU8zZ0o4UHZTZlEzZVg4YUNIdG4rNXU5
TTMzTlhQNEJyN01WaFREY0dxZ2RidldIQjF2OXNjRldmMnd3NG44MEdQSE5Eb2E5YzRNUjM5eGcy
RHMzRVBiT0Q0Uzk4WUd3SnpFUTlpVDZtNzNTMyt5VnZtYlBmSCt6Wjc2dnlmTzB2OW43cDc1bWIy
OS9NNWQvd0cvSmM0VXcxT0lQOTBmOHNjR0lQOVlmOGNjR3dyNUhBMkh2N0VDemQyNmcyVHZYbHd4
OXZLL1o4MjEvcytlLytwbzgzL1kzZVQ3cmEvWTBjZmtIL0xidFhMMkdXbnkxQTJGZnVDL3NqZldI
dmJIK1pzK2p2ckQzWm0rVFo2aTN5VFBXMSt5WjdHdnlYTzlyOXZpMzkwOEg4TSt3b2hCNm03eGx0
Njk1VHc2RWZlY0d3MTVmZjVQbm5iNW1UNkQzMm9VRDIveDNBdmdWN2R5eFk4Zk9nU2F2dTcvSms5
VjN6YXZlN2o4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNWL2c5dFBKRVF1MVh2bVFBQUFBQkpSVTVF
cmtKZ2dnPT0iPgotPGltZyBpZD0iaTIiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlcy9zcXVhcmUxMjgucG5nIj4KLQotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS91bml0LmNzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNz
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc1OGI0M2JkOWRkZjBiZjFjMDJhZjVh
NWY2MTY5NGZmODBlNTNjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5jc3MKKysrIC9kZXYvbnVsbApAQCAt
MSw2NiArMCwwIEBACi0vKgotVGVzdHMgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFz
IGNvbnRleHQKLQotQ29weXJpZ2h0IChDKSAyMDA5ICBJbG1hcmkgSGVpa2tpbmVuIDxpbG1hcmku
aGVpa2tpbmVuQGdtYWlsLmNvbT4KLQotUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KLW9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi1maWxlcyAodGhlICJTb2Z0d2FyZSIp
LCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0Ci1yZXN0cmljdGlvbiwgaW5jbHVkaW5n
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwKLWNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi1jb3BpZXMg
b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLVNvZnR3
YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCi1jb25k
aXRpb25zOgotCi1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZQotaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0KLVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTCi1PRiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAotTk9OSU5GUklOR0VN
RU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQKLUhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLAotV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
Ci1GUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg
VVNFIE9SCi1PVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0KLSovCi0ub2sgewotICBj
b2xvcjogZ3JlZW47Ci19Ci0uZmFpbCB7Ci0gIGNvbG9yOiByZWQ7Ci19Ci1jYW52YXMgewotICBk
aXNwbGF5OiBub25lOwotfQotI3Rlc3Qtc3RhdHVzIHsKLSAgZm9udC1zaXplOiBsYXJnZTsKLX0K
LQotI3Rlc3QtbG9nIHsKLSAgcGFkZGluZy1sZWZ0OiAwLjVlbTsKLSAgcGFkZGluZy1yaWdodDog
MC41ZW07Ci0gIGJhY2tncm91bmQ6IHdoaXRlOwotICBjb2xvcjogYmxhY2s7Ci19Ci0jdGVzdC1s
b2cgPiBkaXYgewotICBwYWRkaW5nLWJvdHRvbTogMC41ZW07Ci19Ci0jdGVzdC1sb2cgaDIgewot
ICBmb250LXNpemU6IDFlbTsKLSAgbWFyZ2luLWJvdHRvbTogMGVtOwotICBwYWRkaW5nLXRvcDog
MC41ZW07Ci19Ci0jdGVzdC1sb2cgaDMgewotICBmb250LXNpemU6IHNtYWxsOwotICBtYXJnaW4t
bGVmdDogMS41ZW07Ci0gIG1hcmdpbi1ib3R0b206IDBlbTsKLSAgbWFyZ2luLXRvcDogMC41ZW07
Ci19Ci0jdGVzdC1sb2cgcCB7Ci0gIG1hcmdpbi1sZWZ0OiA0ZW07Ci0gIGZvbnQtc2l6ZTogc21h
bGw7Ci0gIG1hcmdpbi10b3A6IDBlbTsKLSAgbWFyZ2luLWJvdHRvbTogMC4yZW07Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS91bml0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDZiZTU1Yzc5YzY2
YWE4MDRjZjY1NzljZGI5MDg4ZTQ1YTE5MDNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsOTEwICswLDAgQEAKLS8qCi1Vbml0IHRlc3RpbmcgbGlicmFyeSBmb3IgdGhl
IE9wZW5HTCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAotKi8KLQotLyoKLSoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
LSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0q
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
LSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCi0qLwotCi0vKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUgLS0gKi8KLQotLy8gV2ViS2l0
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5lcjsKLX0K
LQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKLQotICAvLyBUaGUgV2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNvbXBhcmVzIGNvbnNvbGUgb3V0
cHV0LgotICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRlc3RzIGlzIEdQVSBk
ZXBlbmRlbnQKLSAgLy8gd2UgdHVybiBvZmYgY29uc29sZSBtZXNzYWdlcy4KLSAgd2luZG93LmNv
bnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07Ci0gIHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVu
Y3Rpb24oKSB7IH07Ci0KLSAgLy8gUkFGIGRvZXNuJ3Qgd29yayBpbiBMYXlvdXRUZXN0cy4gRGlz
YWJsZSBpdCBzbyB0aGUgdGVzdHMgd2lsbAotICAvLyB1c2Ugc2V0VGltZW91dCBpbnN0ZWFkLgot
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOwotICB3aW5kb3cud2Vi
a2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOwotfQotCi1pZiAod2luZG93Lmlu
dGVybmFscykgewotICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9D
b25zb2xlRW5hYmxlZChmYWxzZSk7Ci19Ci0KLS8qIC0tIGVuZCBwbGF0Zm9ybSBzcGVjaWZpYyBj
b2RlIC0tKi8KLVRlc3RzID0gewotICBhdXRvcnVuIDogdHJ1ZSwKLSAgbWVzc2FnZSA6IG51bGws
Ci0gIGRlbGF5IDogMCwKLQotICBzdGFydFVuaXQgOiBmdW5jdGlvbigpeyByZXR1cm4gW107IH0s
Ci0gIHNldHVwIDogZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0sCi0gIHRlYXJkb3du
IDogZnVuY3Rpb24oKSB7fSwKLSAgZW5kVW5pdCA6IGZ1bmN0aW9uKCkge30KLX0KLQotdmFyIF9f
dGVzdFN1Y2Nlc3NfXyA9IHRydWU7Ci12YXIgX190ZXN0RmFpbENvdW50X18gPSAwOwotdmFyIF9f
dGVzdExvZ19fOwotdmFyIF9fYmFja2xvZ19fID0gW107Ci0KLU9iamVjdC50b1NvdXJjZSA9IGZ1
bmN0aW9uKGEsIHNlZW4pewotICBpZiAoYSA9PSBudWxsKSByZXR1cm4gIm51bGwiOwotICBpZiAo
dHlwZW9mIGEgPT0gJ2Jvb2xlYW4nKSByZXR1cm4gYSA/ICJ0cnVlIiA6ICJmYWxzZSI7Ci0gIGlm
ICh0eXBlb2YgYSA9PSAnc3RyaW5nJykgcmV0dXJuICciJyArIGEucmVwbGFjZSgvIi9nLCAnXFwi
JykgKyAnIic7Ci0gIGlmIChhIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHJldHVybiBhLnRvU3Ry
aW5nKCk7Ci0gIGlmIChhLndpZHRoICYmIGEuaGVpZ2h0ICYmIGEuZGF0YSkgcmV0dXJuICJbSW1h
Z2VEYXRhXSI7Ci0gIGlmIChhIGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICBpZiAoIXNlZW4pIHNl
ZW4gPSBbXTsKLSAgICB2YXIgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOwotICAgIGlmIChpZHggIT0g
LTEpIHJldHVybiAnIycrKGlkeCsxKSsnIyc7Ci0gICAgc2Vlbi51bnNoaWZ0KGEpOwotICAgIHZh
ciBzcmNzID0gYS5tYXAoZnVuY3Rpb24obyl7IHJldHVybiBPYmplY3QudG9Tb3VyY2UobyxzZWVu
KSB9KTsKLSAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOwot
ICAgIGlmIChpZHggIT0gLTEpIHByZWZpeCA9ICcjJysoaWR4KzEpKyc9JzsKLSAgICByZXR1cm4g
cHJlZml4ICsgJ1snICsgc3Jjcy5qb2luKCIsICIpICsgJ10nOwotICB9Ci0gIGlmICh0eXBlb2Yg
YSA9PSAnb2JqZWN0JykgewotICAgIGlmICghc2Vlbikgc2VlbiA9IFtdOwotICAgIHZhciBpZHgg
PSBzZWVuLmluZGV4T2YoYSk7Ci0gICAgaWYgKGlkeCAhPSAtMSkgcmV0dXJuICcjJysoaWR4KzEp
KycjJzsKLSAgICBzZWVuLnVuc2hpZnQoYSk7Ci0gICAgdmFyIG1lbWJlcnMgPSBbXTsKLSAgICB2
YXIgbmFtZTsKLSAgICB0cnkgewotICAgICAgZm9yICh2YXIgaSBpbiBhKSB7Ci0gICAgICAgIGlm
IChpLnNlYXJjaCgvXlthLXpBLVowLTldKyQvKSAhPSAtMSkKLSAgICAgICAgICBuYW1lID0gaTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgIG5hbWUgPSAnIicgKyBpLnJlcGxhY2UoLyIvZywgJ1xc
IicpICsgJyInOwotICAgICAgICB2YXIgYWk7Ci0gICAgICAgIHRyeSB7IGFpID0gYVtpXTsgfQot
ICAgICAgICBjYXRjaChlKSB7IGFpID0gJ251bGwgLypFUlJPUl9BQ0NFU1NJTkcqLyc7IH0KLSAg
ICAgICAgdmFyIHMgPSBuYW1lICsgJzonICsgT2JqZWN0LnRvU291cmNlKGFpLCBzZWVuKTsKLSAg
ICAgICAgbWVtYmVycy5wdXNoKHMpOwotICAgICAgfQotICAgIH0gY2F0Y2ggKGUpIHt9Ci0gICAg
dmFyIHByZWZpeCA9ICcnOwotICAgIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKLSAgICBpZiAoaWR4
ICE9IC0xKSBwcmVmaXggPSAnIycrKGlkeCsxKSsnPSc7Ci0gICAgcmV0dXJuIHByZWZpeCArICd7
JyArIG1lbWJlcnMuam9pbigiLCAiKSArICd9JwotICB9Ci0gIGlmICh0eXBlb2YgYSA9PSAnZnVu
Y3Rpb24nKQotICAgIHJldHVybiAnKCcrYS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIgIiku
cmVwbGFjZSgvXHMrL2csICIgIikrJyknOwotICByZXR1cm4gYS50b1N0cmluZygpOwotfQotCi1m
dW5jdGlvbiBmb3JtYXRFcnJvcihlKSB7Ci0gIGlmICh3aW5kb3cuY29uc29sZSkgY29uc29sZS5s
b2coZSk7Ci0gIHZhciBwYXRoU2VncyA9IGxvY2F0aW9uLmhyZWYudG9TdHJpbmcoKS5zcGxpdCgi
LyIpOwotICB2YXIgY3VycmVudERvYyA9IGUubGluZU51bWJlciAhPSBudWxsID8gcGF0aFNlZ3Nb
cGF0aFNlZ3MubGVuZ3RoIC0gMV0gOiBudWxsOwotICB2YXIgdHJhY2UgPSAoZS5maWxlbmFtZSB8
fCBjdXJyZW50RG9jKSArICI6IiArIGUubGluZU51bWJlciArIChlLnRyYWNlID8gIlxuIitlLnRy
YWNlIDogIiIpOwotICByZXR1cm4gZS5tZXNzYWdlICsgIlxuIiArIHRyYWNlOwotfQotCi1mdW5j
dGlvbiBydW5UZXN0cygpIHsKLSAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dC1zdGF0dXMnKTsKLSAgaWYgKGggPT0gbnVsbCkgewotICAgIGggPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdoMScpOwotICAgIGguaWQgPSAndGVzdC1zdGF0dXMnOwotICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaCk7Ci0gIH0KLSAgaC50ZXh0Q29udGVudCA9ICIiOwotICB2YXIgbG9n
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtbG9nJyk7Ci0gIGlmIChsb2cgPT0gbnVs
bCkgewotICAgIGxvZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGxvZy5p
ZCA9ICd0ZXN0LWxvZyc7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2cpOwotICB9
Ci0gIHdoaWxlIChsb2cuY2hpbGROb2Rlcy5sZW5ndGggPiAwKQotICAgIGxvZy5yZW1vdmVDaGls
ZChsb2cuZmlyc3RDaGlsZCk7Ci0KLSAgdmFyIHNldHVwX2FyZ3MgPSBbXTsKLQotICBpZiAoVGVz
dHMuc3RhcnRVbml0ICE9IG51bGwpIHsKLSAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRyeSB7Ci0gICAgICBzZXR1cF9hcmdzID0gVGVzdHMuc3Rh
cnRVbml0KCk7Ci0gICAgICBpZiAoX190ZXN0TG9nX18uY2hpbGROb2Rlcy5sZW5ndGggPiAwKQot
ICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOwotICAgIH0gY2F0Y2goZSkgewot
ICAgICAgdGVzdEZhaWxlZCgic3RhcnRVbml0IiwgZm9ybWF0RXJyb3IoZSkpOwotICAgICAgbG9n
LmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKLSAgICAgIHByaW50VGVzdFN0YXR1cygpOwotICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgfQotCi0gIHZhciB0ZXN0c1J1biA9IGZhbHNlOwotICB2YXIg
YWxsVGVzdHNTdWNjZXNzZnVsID0gdHJ1ZTsKLQotICBmb3IgKHZhciBpIGluIFRlc3RzKSB7Ci0g
ICAgaWYgKGkuc3Vic3RyaW5nKDAsNCkgIT0gInRlc3QiKSBjb250aW51ZTsKLSAgICBfX3Rlc3RM
b2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIF9fdGVzdFN1Y2Nlc3Nf
XyA9IHRydWU7Ci0gICAgdHJ5IHsKLSAgICAgIGRvVGVzdE5vdGlmeSAoaSk7Ci0gICAgICB2YXIg
YXJncyA9IHNldHVwX2FyZ3M7Ci0gICAgICBpZiAoVGVzdHMuc2V0dXAgIT0gbnVsbCkKLSAgICAg
ICAgYXJncyA9IFRlc3RzLnNldHVwLmFwcGx5KFRlc3RzLCBzZXR1cF9hcmdzKTsKLSAgICAgIFRl
c3RzW2ldLmFwcGx5KFRlc3RzLCBhcmdzKTsKLSAgICAgIGlmIChUZXN0cy50ZWFyZG93biAhPSBu
dWxsKQotICAgICAgICBUZXN0cy50ZWFyZG93bi5hcHBseShUZXN0cywgYXJncyk7Ci0gICAgfQot
ICAgIGNhdGNoIChlKSB7Ci0gICAgICB0ZXN0RmFpbGVkKGksIGUubmFtZSwgZm9ybWF0RXJyb3Io
ZSkpOwotICAgIH0KLSAgICBpZiAoX190ZXN0U3VjY2Vzc19fID09IGZhbHNlKSB7Ci0gICAgICAr
K19fdGVzdEZhaWxDb3VudF9fOwotICAgIH0KLSAgICB2YXIgaCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2gyJyk7Ci0gICAgaC50ZXh0Q29udGVudCA9IGk7Ci0gICAgX190ZXN0TG9nX18uaW5z
ZXJ0QmVmb3JlKGgsIF9fdGVzdExvZ19fLmZpcnN0Q2hpbGQpOwotICAgIGxvZy5hcHBlbmRDaGls
ZChfX3Rlc3RMb2dfXyk7Ci0gICAgYWxsVGVzdHNTdWNjZXNzZnVsID0gYWxsVGVzdHNTdWNjZXNz
ZnVsICYmIF9fdGVzdFN1Y2Nlc3NfXyA9PSB0cnVlOwotICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9I
YXJuZXNzKF9fdGVzdFN1Y2Nlc3NfXywgaSk7Ci0gICAgZG9UZXN0Tm90aWZ5IChpKyItLSIrKF9f
dGVzdFN1Y2Nlc3NfXz8iT0siOiJGQUlMIikpOwotICAgIHRlc3RzUnVuID0gdHJ1ZTsKLSAgfQot
Ci0gIHByaW50VGVzdFN0YXR1cyh0ZXN0c1J1bik7Ci0gIGlmIChUZXN0cy5lbmRVbml0ICE9IG51
bGwpIHsKLSAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgIHRyeSB7Ci0gICAgICBUZXN0cy5lbmRVbml0LmFwcGx5KFRlc3RzLCBzZXR1cF9hcmdzKTsK
LSAgICAgIGlmIChfX3Rlc3RMb2dfXy5jaGlsZE5vZGVzLmxlbmd0aCA+IDApCi0gICAgICAgIGxv
Zy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICB0ZXN0
RmFpbGVkKCJlbmRVbml0IiwgZS5uYW1lLCBmb3JtYXRFcnJvcihlKSk7Ci0gICAgICBsb2cuYXBw
ZW5kQ2hpbGQoX190ZXN0TG9nX18pOwotICAgIH0KLSAgfQotICBub3RpZnlGaW5pc2hlZFRvSGFy
bmVzcyhhbGxUZXN0c1N1Y2Nlc3NmdWwsICJmaW5pc2hlZCB0ZXN0cyIpOwotfQotCi1mdW5jdGlv
biBkb1Rlc3ROb3RpZnkobmFtZSkgewotICAvL3RyecKgewotICAvLyAgdmFyIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdCgpOwotICAvLyAgeGhyLm9wZW4oIkdFVCIsICJodHRwOi8vbG9jYWxob3N0
Ojg4ODgvIituYW1lLCB0cnVlKTsKLSAgLy8gIHhoci5zZW5kKG51bGwpOwotICAvL30gY2F0Y2go
ZSkge30KLX0KLQotZnVuY3Rpb24gdGVzdEZhaWxlZChhc3NlcnROYW1lLCBuYW1lKSB7Ci0gIHZh
ciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gIHZhciBoID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaDMnKTsKLSAgdmFyIGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOwotICBoLmFwcGVuZENoaWxkKGQxKTsKLSAgZDEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIkZBSUw6ICIpKTsKLSAgZDEuc3R5bGUuY29sb3IgPSAicmVkIjsKLSAg
aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKLSAgICAgIG5hbWU9PW51bGwg
PyBhc3NlcnROYW1lIDogbmFtZSArICIgKGluICIgKyBhc3NlcnROYW1lICsgIikiKSk7Ci0gIGQu
YXBwZW5kQ2hpbGQoaCk7Ci0gIHZhciBhcmdzID0gW10KLSAgZm9yICh2YXIgaT0yOyBpPGFyZ3Vt
ZW50cy5sZW5ndGg7IGkrKykgewotICAgIHZhciBhID0gYXJndW1lbnRzW2ldOwotICAgIHZhciBw
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwotICAgIHAuc3R5bGUud2hpdGVTcGFjZSA9
ICdwcmUnOwotICAgIHAudGV4dENvbnRlbnQgPSAoYSA9PSBudWxsKSA/ICJudWxsIiA6Ci0gICAg
ICAgICAgICAgICAgICAgICh0eXBlb2YgYSA9PSAnYm9vbGVhbicgfHwgdHlwZW9mIGEgPT0gJ3N0
cmluZycpID8gYSA6IE9iamVjdC50b1NvdXJjZShhKTsKLSAgICBhcmdzLnB1c2gocC50ZXh0Q29u
dGVudCk7Ci0gICAgZC5hcHBlbmRDaGlsZChwKTsKLSAgfQotICBfX3Rlc3RMb2dfXy5hcHBlbmRD
aGlsZChkKTsKLSAgX190ZXN0U3VjY2Vzc19fID0gZmFsc2U7Ci0gIGRvVGVzdE5vdGlmeShbYXNz
ZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFyZ3MpLmpvaW4oIi0tIikpOwotfQotCi1mdW5jdGlvbiB0
ZXN0UGFzc2VkKGFzc2VydE5hbWUsIG5hbWUpIHsKLSAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLSAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOwot
ICB2YXIgZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gIGguYXBwZW5kQ2hp
bGQoZDEpOwotICBkMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUEFTUzog
IikpOwotICBkMS5zdHlsZS5jb2xvciA9ICJncmVlbiI7Ci0gIGguYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoCi0gICAgICBuYW1lPT1udWxsID8gYXNzZXJ0TmFtZSA6IG5hbWUg
KyAiIChpbiAiICsgYXNzZXJ0TmFtZSArICIpIikpOwotICBkLmFwcGVuZENoaWxkKGgpOwotICB2
YXIgYXJncyA9IFtdCi0gIGZvciAodmFyIGk9MjsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsK
LSAgICB2YXIgYSA9IGFyZ3VtZW50c1tpXTsKLSAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3AnKTsKLSAgICBwLnN0eWxlLndoaXRlU3BhY2UgPSAncHJlJzsKLSAgICBwLnRleHRD
b250ZW50ID0gKGEgPT0gbnVsbCkgPyAibnVsbCIgOgotICAgICAgICAgICAgICAgICAgICAodHlw
ZW9mIGEgPT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiBhID09ICdzdHJpbmcnKSA/IGEgOiBPYmplY3Qu
dG9Tb3VyY2UoYSk7Ci0gICAgYXJncy5wdXNoKHAudGV4dENvbnRlbnQpOwotICAgIGQuYXBwZW5k
Q2hpbGQocCk7Ci0gIH0KLSAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQoZCk7Ci0gIGRvVGVzdE5v
dGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFyZ3MpLmpvaW4oIi0tIikpOwotfQotCi1m
dW5jdGlvbiBjaGVja1Rlc3RTdWNjZXNzKCkgewotICByZXR1cm4gX190ZXN0RmFpbENvdW50X18g
PT0gMDsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpewot
ICBmb3IgKHZhciBpPTA7IGk8X19iYWNrbG9nX18ubGVuZ3RoOyBpKyspCi0gICAgbG9nKF9fYmFj
a2xvZ19fW2ldKTsKLX0sIGZhbHNlKTsKLQotZnVuY3Rpb24gbG9nKG1zZykgewotICB2YXIgcCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgdmFyIGEgPSBbXTsKLSAgZm9yICh2YXIg
aT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykKLSAgICBhLnB1c2goYXJndW1lbnRzW2ldKTsK
LSAgcC50ZXh0Q29udGVudCA9IGEuam9pbigiLCAiKTsKLSAgaWYgKCFfX3Rlc3RMb2dfXykgewot
ICAgIGlmIChkb2N1bWVudC5ib2R5KQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChw
KTsKLSAgICBlbHNlCi0gICAgICBfX2JhY2tsb2dfXy5wdXNoKG1zZyk7Ci0gIH0gZWxzZSB7Ci0g
ICAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQocCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcHJpbnRU
ZXN0U3RhdHVzKHRlc3RzUnVuKSB7Ci0gIHZhciBzdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdC1zdGF0dXMnKTsKLSAgaWYgKHRlc3RzUnVuKSB7Ci0gICAgc3RhdHVzLmNsYXNz
TmFtZSA9IGNoZWNrVGVzdFN1Y2Nlc3MoKSA/ICdvaycgOiAnZmFpbCc7Ci0gICAgc3RhdHVzLnRl
eHRDb250ZW50ID0gY2hlY2tUZXN0U3VjY2VzcygpID8gIlBBU1MiIDogIkZBSUwiOwotICB9IGVs
c2UgewotICAgIHN0YXR1cy5jbGFzc05hbWUgPSAnZmFpbCc7Ci0gICAgc3RhdHVzLnRleHRDb250
ZW50ID0gIk5PIFRFU1RTIEZPVU5EIjsKLSAgfQotfQotCi1mdW5jdGlvbiBhc3NlcnRGYWlsKG5h
bWUsIGYpIHsKLSAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAg
dmFyIHIgPSBmYWxzZTsKLSAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyB9Ci0gIGlm
ICghcikgewotICAgIHRlc3RGYWlsZWQoImFzc2VydEZhaWwiLCBuYW1lLCBmKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0RmFpbCIsIG5hbWUs
IGYpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydE9rKG5hbWUs
IGYpIHsKLSAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAgdmFy
IHIgPSBmYWxzZTsKLSAgdmFyIGVycjsKLSAgdHJ5IHsgZigpOyByPXRydWU7IH0gY2F0Y2goZSkg
eyBlcnIgPSBlOyB9Ci0gIGlmICghcikgewotICAgIHRlc3RGYWlsZWQoImFzc2VydE9rIiwgbmFt
ZSwgZiwgZXJyLnRvU3RyaW5nKCkpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsKLSAg
ICB0ZXN0UGFzc2VkKCJhc3NlcnRPayIsIG5hbWUsIGYpOwotICAgIHJldHVybiB0cnVlOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydChuYW1lLCB2KSB7Ci0gIGlmICh2ID09IG51bGwpIHsgdiA9
IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIGlmICghdikgewotICAgIHRlc3RGYWlsZWQoImFzc2Vy
dCIsIG5hbWUsIHYpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0UGFz
c2VkKCJhc3NlcnQiLCBuYW1lLCB2KTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfQotCi1mdW5j
dGlvbiBhc3NlcnRQcm9wZXJ0eShuYW1lLCB2LCBwKSB7Ci0gIGlmIChwID09IG51bGwpIHsgcCA9
IHY7IHYgPSBuYW1lOyBuYW1lID0gcDsgfQotICBpZiAodltwXSA9PSBudWxsKSB7Ci0gICAgdGVz
dEZhaWxlZCgiYXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0g
ZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBjb21wYXJlKGEsYikgewotICBpZiAodHlwZW9m
IGEgPT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT0gJ251bWJlcicpIHsKLSAgICByZXR1cm4gYSA9
PSBiOwotICB9IGVsc2UgewotICAgIHJldHVybiBPYmplY3QudG9Tb3VyY2UoYSkgPT0gT2JqZWN0
LnRvU291cmNlKGIpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEVxdWFscyhuYW1lLCB2LCBw
KSB7Ci0gIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQot
ICBpZiAoIWNvbXBhcmUodiwgcCkpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRFcXVhbHMiLCBu
YW1lLCB2LCBwKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3Nl
ZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX0K
LQotZnVuY3Rpb24gYXNzZXJ0QXJyYXlFcXVhbHMobmFtZSwgdiwgcCkgewotICBpZiAocCA9PSBu
dWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAgaWYgKCF2KSB7Ci0gICAg
dGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHM6IGZpcnN0IGFycmF5IHVuZGVmaW5lZCIsIG5h
bWUsIHYsIHApOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAoIXApIHsKLSAgICB0ZXN0
RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsczogc2Vjb25kIGFycmF5IHVuZGVmaW5lZCIsIG5hbWUs
IHYsIHApOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAodi5sZW5ndGggIT0gcC5sZW5n
dGgpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFscyIsIG5hbWUsIHYsIHApOwot
ICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdi5sZW5ndGg7
ICsraWkpIHsKLSAgICBpZiAodltpaV0gIT0gcFtpaV0pIHsKLSAgICAgIHRlc3RGYWlsZWQoImFz
c2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotICB9Ci0gIHRlc3RQYXNzZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0g
IHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBhc3NlcnROb3RFcXVhbHMobmFtZSwgdiwgcCkg
ewotICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAg
aWYgKGNvbXBhcmUodiwgcCkpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnROb3RFcXVhbHMiLCBu
YW1lLCB2LCBwKQotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0UGFzc2Vk
KCJhc3NlcnROb3RFcXVhbHMiLCBuYW1lLCB2LCBwKQotICAgIHJldHVybiB0cnVlOwotICB9Ci19
Ci0KLWZ1bmN0aW9uIHRpbWUoZWxlbWVudElkLCBmKSB7Ci0gICAgdmFyIHMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIHZhciB0MCA9IG5ldyBEYXRlKCkuZ2V0VGlt
ZSgpOwotICAgIGYoKTsKLSAgICB2YXIgdDEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKLSAgICBz
LnRleHRDb250ZW50ID0gJ0VsYXBzZWQ6ICcrKHQxLXQwKSsnIG1zJzsKLX0KLQotZnVuY3Rpb24g
cmFuZG9tRmxvYXQgKCkgewotICAgIC8vIG5vdGUgdGhhdCBpbiBmdXp6LXRlc3RpbmcsIHRoaXMg
Y2FuIHVzZWQgYXMgdGhlIHNpemUgb2YgYSBidWZmZXIgdG8gYWxsb2NhdGUuCi0gICAgLy8gc28g
aXQgc2hvdWxkbid0IHJldHVybiBhc3Ryb25vbWljIHZhbHVlcy4gVGhlIG1heGltdW0gdmFsdWUg
MTAwMDAwMDAgaXMgYWxyZWFkeSBxdWl0ZSBiaWcuCi0gICAgdmFyIGZhYyA9IDEuMDsKLSAgICB2
YXIgciA9IE1hdGgucmFuZG9tKCk7Ci0gICAgaWYgKHIgPCAwLjI1KQotICAgICAgICBmYWMgPSAx
MDsKLSAgICBlbHNlIGlmIChyIDwgMC40KQotICAgICAgICBmYWMgPSAxMDA7Ci0gICAgZWxzZSBp
ZiAociA8IDAuNSkKLSAgICAgICAgZmFjID0gMTAwMDsKLSAgICBlbHNlIGlmIChyIDwgMC42KQot
ICAgICAgICBmYWMgPSAxMDAwMDA7Ci0gICAgZWxzZSBpZiAociA8IDAuNykKLSAgICAgICAgZmFj
ID0gMTAwMDAwMDA7Ci0gICAgZWxzZSBpZiAociA8IDAuOCkKLSAgICAgICAgZmFjID0gTmFOOwot
ICAgIHJldHVybiAtMC41KmZhYyArIE1hdGgucmFuZG9tKCkgKiBmYWM7Ci19Ci1mdW5jdGlvbiBy
YW5kb21GbG9hdEZyb21SYW5nZShsbywgaGkpIHsKLSAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOwot
ICBpZiAociA8IDAuMDUpCi0gICAgcmV0dXJuIGxvOwotICBlbHNlIGlmIChyID4gMC45NSkKLSAg
ICByZXR1cm4gaGk7Ci0gIGVsc2UKLSAgICByZXR1cm4gbG8gKyBNYXRoLnJhbmRvbSgpKihoaS1s
byk7Ci19Ci1mdW5jdGlvbiByYW5kb21JbnQgKHN6KSB7Ci0gIGlmIChzeiAhPSBudWxsKQotICAg
IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqc3opOwotICBlbHNlCi0gICAgcmV0dXJu
IE1hdGguZmxvb3IocmFuZG9tRmxvYXQoKSk7Ci19Ci1mdW5jdGlvbiByYW5kb21JbnRGcm9tUmFu
Z2UobG8sIGhpKSB7Ci0gIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbUZsb2F0RnJvbVJhbmdlKGxv
LCBoaSkpOwotfQotZnVuY3Rpb24gcmFuZG9tTGVuZ3RoICgpIHsKLSAgICB2YXIgbCA9IE1hdGgu
Zmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1Nik7Ci0gICAgaWYgKE1hdGgucmFuZG9tIDwgMC41KSBs
ID0gbCAvIDEwOwotICAgIGlmIChNYXRoLnJhbmRvbSA8IDAuMykgbCA9IGwgLyAxMDsKLSAgICBy
ZXR1cm4gbDsKLX0KLWZ1bmN0aW9uIHJhbmRvbVNtYWxsSW50QXJyYXkgKCkgewotICAgIHZhciBs
ID0gcmFuZG9tTGVuZ3RoKCk7Ci0gICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7Ci0gICAgZm9yICh2
YXIgaT0wOyBpPGw7IGkrKykKLSAgICAgICAgc1tpXSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20o
KSAqIDI1NiktMTsKLSAgICByZXR1cm4gczsKLX0KLWZ1bmN0aW9uIHJhbmRvbUZsb2F0QXJyYXkg
KCkgewotICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7Ci0gICAgdmFyIHMgPSBuZXcgQXJyYXko
bCk7Ci0gICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKLSAgICAgICAgc1tpXSA9IHJhbmRvbUZs
b2F0KCk7Ci0gICAgcmV0dXJuIHM7Ci19Ci1mdW5jdGlvbiByYW5kb21JbnRBcnJheSAoKSB7Ci0g
ICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKLSAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKLSAg
ICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQotICAgICAgICBzW2ldID0gcmFuZG9tRmxvYXQoKTsK
LSAgICByZXR1cm4gczsKLX0KLWZ1bmN0aW9uIHJhbmRvbU1peGVkQXJyYXkgKCkgewotICAgIHZh
ciBsID0gcmFuZG9tTGVuZ3RoKCk7Ci0gICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7Ci0gICAgZm9y
ICh2YXIgaT0wOyBpPGw7IGkrKykKLSAgICAgICAgc1tpXSA9IHJhbmRvbU5vbkFycmF5KCk7Ci0g
ICAgcmV0dXJuIHM7Ci19Ci1mdW5jdGlvbiByYW5kb21BcnJheSAoKSB7Ci0gICAgdmFyIHIgPSBN
YXRoLnJhbmRvbSgpOwotICAgIGlmIChyIDwgMC4zKQotICAgICAgICByZXR1cm4gcmFuZG9tRmxv
YXRBcnJheSgpOwotICAgIGVsc2UgaWYgKHIgPCAwLjYpCi0gICAgICAgIHJldHVybiByYW5kb21J
bnRBcnJheSgpOwotICAgIGVsc2UgaWYgKHIgPCAwLjgpCi0gICAgICAgIHJldHVybiByYW5kb21T
bWFsbEludEFycmF5KCk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gcmFuZG9tTWl4ZWRBcnJh
eSgpOwotfQotZnVuY3Rpb24gcmFuZG9tU3RyaW5nICgpIHsKLSAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShTdHJpbmcsIHJhbmRvbVNtYWxsSW50QXJyYXkoKSk7Ci19Ci1mdW5j
dGlvbiByYW5kb21HTENvbnN0YW50ICgpIHsKLSAgICByZXR1cm4gR0xDb25zdGFudHNbTWF0aC5m
bG9vcihNYXRoLnJhbmRvbSgpICogR0xDb25zdGFudHMubGVuZ3RoKV07Ci19Ci0KLWZ1bmN0aW9u
IHJhbmRvbU5vbkFycmF5KCkgewotICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKLSAgICBpZiAo
ciA8IDAuMjUpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRvbUZsb2F0KCk7Ci0gICAgfSBlbHNlIGlm
IChyIDwgMC42KSB7Ci0gICAgICAgIHJldHVybiByYW5kb21JbnQoKTsKLSAgICB9IGVsc2UgaWYg
KHIgPCAwLjcpIHsKLSAgICAgICAgcmV0dXJuIChyIDwgMC42NSk7Ci0gICAgfSBlbHNlIGlmIChy
IDwgMC44NykgewotICAgICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7Ci0gICAgfSBlbHNlIGlm
IChyIDwgMC45OCkgewotICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25zdGFudCgpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZ2VuZXJh
dGVSYW5kb21BcmcocG9zLCBjb3VudCkgewotICAgIGlmIChwb3MgPT0gMCAmJiBNYXRoLnJhbmRv
bSgpIDwgMC41KQotICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25zdGFudCgpOwotICAgIGlmIChw
b3MgPT0gY291bnQtMSAmJiBNYXRoLnJhbmRvbSgpIDwgMC4yNSkKLSAgICAgICAgaWYgKE1hdGgu
cmFuZG9tKCkgPCAwLjUpCi0gICAgICAgICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiByYW5kb21BcnJheSgpOwotICAgIHZhciByID0g
TWF0aC5yYW5kb20oKTsKLSAgICBpZiAociA8IDAuMjUpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRv
bUZsb2F0KCk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC42KSB7Ci0gICAgICAgIHJldHVybiByYW5k
b21JbnQoKTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjcpIHsKLSAgICAgICAgcmV0dXJuIChyIDwg
MC42NSk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC43NykgewotICAgICAgICByZXR1cm4gcmFuZG9t
U3RyaW5nKCk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC44NCkgewotICAgICAgICByZXR1cm4gcmFu
ZG9tQXJyYXkoKTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjk4KSB7Ci0gICAgICAgIHJldHVybiBy
YW5kb21HTENvbnN0YW50KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0g
ICAgfQotfQotCi0KLWZ1bmN0aW9uIGdlbmVyYXRlUmFuZG9tQXJncyhjb3VudCkgewotICAgIHZh
ciBhcnIgPSBuZXcgQXJyYXkoY291bnQpOwotICAgIGZvciAodmFyIGk9MDsgaTxjb3VudDsgaSsr
KQotICAgICAgICBhcnJbaV0gPSBnZW5lcmF0ZVJhbmRvbUFyZyhpLCBjb3VudCk7Ci0gICAgcmV0
dXJuIGFycjsKLX0KLQotLy8gcWMgKGFyZzFnZW4sIGFyZzJnZW4sIC4uLiwgcHJlZGljYXRlKQot
Ly8gcWMgKHJhbmRvbVN0cmluZywgcmFuZG9tSW50LCByYW5kb21JbnQsIGZ1bmN0aW9uKHMsaSxq
KXsgcy5zdWJzdHJpbmcoaSxqKSB9KQotZnVuY3Rpb24gcWMoKSB7Ci19Ci0KLUdMQ29uc3RhbnRz
ID0gWwotMSwKLTB4MDAwMDAxMDAsCi0weDAwMDAwNDAwLAotMHgwMDAwNDAwMCwKLTB4MDAwMCwK
LTB4MDAwMSwKLTB4MDAwMiwKLTB4MDAwMywKLTB4MDAwNCwKLTB4MDAwNSwKLTB4MDAwNiwKLTAs
Ci0xLAotMHgwMzAwLAotMHgwMzAxLAotMHgwMzAyLAotMHgwMzAzLAotMHgwMzA0LAotMHgwMzA1
LAotMHgwMzA2LAotMHgwMzA3LAotMHgwMzA4LAotMHg4MDA2LAotMHg4MDA5LAotMHg4MDA5LAot
MHg4ODNELAotMHg4MDBBLAotMHg4MDBCLAotMHg4MEM4LAotMHg4MEM5LAotMHg4MENBLAotMHg4
MENCLAotMHg4MDAxLAotMHg4MDAyLAotMHg4MDAzLAotMHg4MDA0LAotMHg4MDA1LAotMHg4ODky
LAotMHg4ODkzLAotMHg4ODk0LAotMHg4ODk1LAotMHg4OEUwLAotMHg4OEU0LAotMHg4OEU4LAot
MHg4NzY0LAotMHg4NzY1LAotMHg4NjI2LAotMHgwNDA0LAotMHgwNDA1LAotMHgwNDA4LAotMHgw
REUxLAotMHgwQjQ0LAotMHgwQkUyLAotMHgwQkQwLAotMHgwQjkwLAotMHgwQjcxLAotMHgwQzEx
LAotMHg4MDM3LAotMHg4MDlFLAotMHg4MEEwLAotMCwKLTB4MDUwMCwKLTB4MDUwMSwKLTB4MDUw
MiwKLTB4MDUwNSwKLTB4MDkwMCwKLTB4MDkwMSwKLTB4MEIyMSwKLTB4ODQ2RCwKLTB4ODQ2RSwK
LTB4MEI0NSwKLTB4MEI0NiwKLTB4MEI3MCwKLTB4MEI3MiwKLTB4MEI3MywKLTB4MEI3NCwKLTB4
MEI5MSwKLTB4MEI5MiwKLTB4MEI5NCwKLTB4MEI5NSwKLTB4MEI5NiwKLTB4MEI5NywKLTB4MEI5
MywKLTB4MEI5OCwKLTB4ODgwMCwKLTB4ODgwMSwKLTB4ODgwMiwKLTB4ODgwMywKLTB4OENBMywK
LTB4OENBNCwKLTB4OENBNSwKLTB4MEJBMiwKLTB4MEMxMCwKLTB4MEMyMiwKLTB4MEMyMywKLTB4
MENGNSwKLTB4MEQwNSwKLTB4MEQzMywKLTB4MEQzQSwKLTB4MEQ1MCwKLTB4MEQ1MiwKLTB4MEQ1
MywKLTB4MEQ1NCwKLTB4MEQ1NSwKLTB4MEQ1NiwKLTB4MEQ1NywKLTB4MkEwMCwKLTB4ODAzOCwK
LTB4ODA2OSwKLTB4ODBBOCwKLTB4ODBBOSwKLTB4ODBBQSwKLTB4ODBBQiwKLTB4ODZBMiwKLTB4
ODZBMywKLTB4MTEwMCwKLTB4MTEwMSwKLTB4MTEwMiwKLTB4ODE5MiwKLTB4MTQwMCwKLTB4MTQw
MSwKLTB4MTQwMiwKLTB4MTQwMywKLTB4MTQwNCwKLTB4MTQwNSwKLTB4MTQwNiwKLTB4MTQwQywK
LTB4MTkwMiwKLTB4MTkwNiwKLTB4MTkwNywKLTB4MTkwOCwKLTB4MTkwOSwKLTB4MTkwQSwKLTB4
ODAzMywKLTB4ODAzNCwKLTB4ODM2MywKLTB4OEIzMCwKLTB4OEIzMSwKLTB4ODg2OSwKLTB4OERG
QiwKLTB4OERGQywKLTB4OEI0RCwKLTB4OEI0QywKLTB4ODg3MiwKLTB4OERGRCwKLTB4OEI0RiwK
LTB4OEI4MCwKLTB4OEI4MiwKLTB4OEI4MywKLTB4OEI4NSwKLTB4OEI4NiwKLTB4OEI4NywKLTB4
OEI4OSwKLTB4OEI4QSwKLTB4OEI4QywKLTB4OEI4RCwKLTB4MDIwMCwKLTB4MDIwMSwKLTB4MDIw
MiwKLTB4MDIwMywKLTB4MDIwNCwKLTB4MDIwNSwKLTB4MDIwNiwKLTB4MDIwNywKLTB4MUUwMCwK
LTB4MUUwMSwKLTB4MUUwMiwKLTB4MUUwMywKLTB4MTUwQSwKLTB4ODUwNywKLTB4ODUwOCwKLTB4
MUYwMCwKLTB4MUYwMSwKLTB4MUYwMiwKLTB4MUYwMywKLTB4MjYwMCwKLTB4MjYwMSwKLTB4Mjcw
MCwKLTB4MjcwMSwKLTB4MjcwMiwKLTB4MjcwMywKLTB4MjgwMCwKLTB4MjgwMSwKLTB4MjgwMiwK
LTB4MjgwMywKLTB4MTcwMiwKLTB4ODUxMywKLTB4ODUxNCwKLTB4ODUxNSwKLTB4ODUxNiwKLTB4
ODUxNywKLTB4ODUxOCwKLTB4ODUxOSwKLTB4ODUxQSwKLTB4ODUxQywKLTB4ODRDMCwKLTB4ODRD
MSwKLTB4ODRDMiwKLTB4ODRDMywKLTB4ODRDNCwKLTB4ODRDNSwKLTB4ODRDNiwKLTB4ODRDNywK
LTB4ODRDOCwKLTB4ODRDOSwKLTB4ODRDQSwKLTB4ODRDQiwKLTB4ODRDQywKLTB4ODRDRCwKLTB4
ODRDRSwKLTB4ODRDRiwKLTB4ODREMCwKLTB4ODREMSwKLTB4ODREMiwKLTB4ODREMywKLTB4ODRE
NCwKLTB4ODRENSwKLTB4ODRENiwKLTB4ODRENywKLTB4ODREOCwKLTB4ODREOSwKLTB4ODREQSwK
LTB4ODREQiwKLTB4ODREQywKLTB4ODRERCwKLTB4ODRERSwKLTB4ODRERiwKLTB4ODRFMCwKLTB4
MjkwMSwKLTB4ODEyRiwKLTB4ODM3MCwKLTB4OEI1MCwKLTB4OEI1MSwKLTB4OEI1MiwKLTB4OEI1
MywKLTB4OEI1NCwKLTB4OEI1NSwKLTB4OEI1NiwKLTB4OEI1NywKLTB4OEI1OCwKLTB4OEI1OSwK
LTB4OEI1QSwKLTB4OEI1QiwKLTB4OEI1QywKLTB4OEI1RSwKLTB4OEI2MCwKLTB4ODYyMiwKLTB4
ODYyMywKLTB4ODYyNCwKLTB4ODYyNSwKLTB4ODg2QSwKLTB4ODY0NSwKLTB4ODg5RiwKLTB4OEI5
QSwKLTB4OEI5QiwKLTB4OEI4MSwKLTB4OEI4NCwKLTB4OEI4OCwKLTB4OERGQSwKLTB4OERGOCwK
LTB4OERGOSwKLTB4OERGMCwKLTB4OERGMSwKLTB4OERGMiwKLTB4OERGMywKLTB4OERGNCwKLTB4
OERGNSwKLTB4OEQ0MCwKLTB4OEQ0MSwKLTB4ODA1NiwKLTB4ODA1NywKLTB4OEQ2MiwKLTB4ODFB
NSwKLTB4MTkwMSwKLTB4OEQ0OCwKLTB4OEQ0MiwKLTB4OEQ0MywKLTB4OEQ0NCwKLTB4OEQ1MCwK
LTB4OEQ1MSwKLTB4OEQ1MiwKLTB4OEQ1MywKLTB4OEQ1NCwKLTB4OEQ1NSwKLTB4OENEMCwKLTB4
OENEMSwKLTB4OENEMiwKLTB4OENEMywKLTB4OENFMCwKLTB4OEQwMCwKLTB4OEQyMCwKLTAsCi0w
eDhDRDUsCi0weDhDRDYsCi0weDhDRDcsCi0weDhDRDksCi0weDhDREQsCi0weDhDQTYsCi0weDhD
QTcsCi0weDg0RTgsCi0weDA1MDYsCi0weDgwOUQKLV07Ci0KLWZ1bmN0aW9uIHJlcG9ydFRlc3RS
ZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgewotICBpZiAod2luZG93LnBhcmVudC53ZWJn
bFRlc3RIYXJuZXNzKSB7Ci0gICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9y
dFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOwotICB9Ci19
Ci0KLWZ1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgewotICBpZiAod2luZG93LnBh
cmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7Ci0gICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJu
ZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7Ci0gIH0KLX0KLQot
ZnVuY3Rpb24gaW5pdFRlc3RzKCkgewotICBpZiAoVGVzdHMubWVzc2FnZSAhPSBudWxsKSB7Ci0g
ICAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1tZXNzYWdlJyk7Ci0gICAg
aWYgKGggPT0gbnVsbCkgewotICAgICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsK
LSAgICAgIGguaWQgPSAndGVzdC1tZXNzYWdlJzsKLSAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0
QmVmb3JlKGgsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7Ci0gICAgfQotICAgIGgudGV4dENv
bnRlbnQgPSBUZXN0cy5tZXNzYWdlOwotICB9Ci0gIGlmIChUZXN0cy5hdXRvcnVuKSB7Ci0gICAg
cnVuVGVzdHMoKTsKLSAgfSBlbHNlIHsKLSAgICB2YXIgaCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0LXJ1bicpOwotICAgIGlmIChoID09IG51bGwpIHsKLSAgICAgIGggPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwotICAgICAgaC50eXBlID0gJ3N1Ym1pdCc7Ci0gICAg
ICBoLnZhbHVlID0gIlJ1biB0ZXN0cyI7Ci0gICAgICBoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZnVuY3Rpb24oZXYpewotICAgICAgICBydW5UZXN0cygpOwotICAgICAgICBldi5wcmV2ZW50
RGVmYXVsdCgpOwotICAgICAgfSwgZmFsc2UpOwotICAgICAgaC5pZCA9ICd0ZXN0LXJ1bic7Ci0g
ICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShoLCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hp
bGQpOwotICAgIH0KLSAgICBoLnRleHRDb250ZW50ID0gVGVzdHMubWVzc2FnZTsKLSAgfQotCi19
Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKXsKLSAgLy8gbGV0
IHRoZSBicm93c2VyIGhvcGVmdWxseSBmaW5pc2ggdXBkYXRpbmcgdGhlIGdsIGNhbnZhcyBzdXJm
YWNlcyBpZiB3ZSBhcmUgZ2l2ZW4gYSBkZWxheQotICBpZiAoVGVzdHMuZGVsYXkpCi0gICAgc2V0
VGltZW91dChpbml0VGVzdHMsIFRlc3RzLmRlbGF5KTsKLSAgZWxzZQotICAgIGluaXRUZXN0cygp
Ci19LCBmYWxzZSk7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91dGlsLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIzNjZjYWZlNWI0ZGE2OGQ3MmUwMWY3MTczM2NkNWNmNTMxNWI4MmYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL3V0aWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUyICswLDAgQEAKLS8qCi1VdGlsaXRp
ZXMgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFzIGNvbnRleHQKLSovCi0KLS8qCi0q
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgotKi8KLQotZnVuY3Rpb24gbG9hZFRleHR1cmUoZ2wsIGVsZW0sIG1pcG1h
cHMpIHsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBlbGVtKTsKLSAgaWYgKG1pcG1hcHMg
IT0gZmFsc2UpCi0gICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCk7Ci0gIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RP
X0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGlmIChtaXBtYXBzKQotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7Ci0gIGVsc2UKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgcmV0dXJu
IHRleDsKLX0KLQotZnVuY3Rpb24gZ2V0U2hhZGVyKGdsLCBpZCkgewotICB2YXIgc2hhZGVyU2Ny
aXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotICBpZiAoIXNoYWRlclNjcmlwdCkg
ewotICAgIHRocm93KG5ldyBFcnJvcigiTm8gc2hhZGVyIGVsZW1lbnQgd2l0aCBpZDogIitpZCkp
OwotICB9Ci0KLSAgdmFyIHN0ciA9ICIiOwotICB2YXIgayA9IHNoYWRlclNjcmlwdC5maXJzdENo
aWxkOwotICB3aGlsZSAoaykgewotICAgIGlmIChrLm5vZGVUeXBlID09IDMpCi0gICAgICBzdHIg
Kz0gay50ZXh0Q29udGVudDsKLSAgICBrID0gay5uZXh0U2libGluZzsKLSAgfQotCi0gIHZhciBz
aGFkZXI7Ci0gIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC1mcmFnbWVudCIp
IHsKLSAgICBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsKLSAg
fSBlbHNlIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC12ZXJ0ZXgiKSB7Ci0g
ICAgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOwotICB9IGVsc2Ug
ewotICAgIHRocm93KG5ldyBFcnJvcigiVW5rbm93biBzaGFkZXIgdHlwZSAiK3NoYWRlclNjcmlw
dC50eXBlKSk7Ci0gIH0KLQotICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzdHIpOwotICBnbC5j
b21waWxlU2hhZGVyKHNoYWRlcik7Ci0KLSAgaWYgKGdsLmdldFNoYWRlclBhcmFtZXRlcihzaGFk
ZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSAhPSAxKSB7Ci0gICAgdmFyIGlsb2cgPSBnbC5nZXRTaGFk
ZXJJbmZvTG9nKHNoYWRlcik7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7Ci0gICAgdGhy
b3cobmV3IEVycm9yKCJGYWlsZWQgdG8gY29tcGlsZSBzaGFkZXIgIitzaGFkZXJTY3JpcHQuaWQg
KyAiLCBTaGFkZXIgaW5mbyBsb2c6ICIgKyBpbG9nKSk7Ci0gIH0KLSAgcmV0dXJuIHNoYWRlcjsK
LX0KLQotZnVuY3Rpb24gbG9hZFNoYWRlckFycmF5KGdsLCBzaGFkZXJzKSB7Ci0gIHZhciBpZCA9
IGdsLmNyZWF0ZVByb2dyYW0oKTsKLSAgdmFyIHNoYWRlck9ianMgPSBbXTsKLSAgZm9yICh2YXIg
aT0wOyBpPHNoYWRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICB0cnkgewotICAgICAgdmFyIHNoID0g
Z2V0U2hhZGVyKGdsLCBzaGFkZXJzW2ldKTsKLSAgICAgIHNoYWRlck9ianMucHVzaChzaCk7Ci0g
ICAgICBnbC5hdHRhY2hTaGFkZXIoaWQsIHNoKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICB2
YXIgcHIgPSB7cHJvZ3JhbTogaWQsIHNoYWRlcnM6IHNoYWRlck9ianN9OwotICAgICAgZGVsZXRl
U2hhZGVyKGdsLCBwcik7Ci0gICAgICB0aHJvdyAoZSk7Ci0gICAgfQotICB9Ci0gIHZhciBwcm9n
ID0ge3Byb2dyYW06IGlkLCBzaGFkZXJzOiBzaGFkZXJPYmpzfTsKLSAgZ2wubGlua1Byb2dyYW0o
aWQpOwotICBnbC52YWxpZGF0ZVByb2dyYW0oaWQpOwotICBpZiAoZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihpZCwgZ2wuTElOS19TVEFUVVMpICE9IDEpIHsKLSAgICBkZWxldGVTaGFkZXIoZ2wscHJv
Zyk7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJGYWlsZWQgdG8gbGluayBzaGFkZXIiKSk7Ci0gIH0K
LSAgaWYgKGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoaWQsIGdsLlZBTElEQVRFX1NUQVRVUykgIT0g
MSkgewotICAgIGRlbGV0ZVNoYWRlcihnbCxwcm9nKTsKLSAgICB0aHJvdyhuZXcgRXJyb3IoIkZh
aWxlZCB0byB2YWxpZGF0ZSBzaGFkZXIiKSk7Ci0gIH0KLSAgcmV0dXJuIHByb2c7Ci19Ci1mdW5j
dGlvbiBsb2FkU2hhZGVyKGdsKSB7Ci0gIHZhciBzaCA9IFtdOwotICBmb3IgKHZhciBpPTE7IGk8
YXJndW1lbnRzLmxlbmd0aDsgKytpKQotICAgIHNoLnB1c2goYXJndW1lbnRzW2ldKTsKLSAgcmV0
dXJuIGxvYWRTaGFkZXJBcnJheShnbCwgc2gpOwotfQotCi1mdW5jdGlvbiBkZWxldGVTaGFkZXIo
Z2wsIHNoKSB7Ci0gIGdsLnVzZVByb2dyYW0obnVsbCk7Ci0gIHNoLnNoYWRlcnMuZm9yRWFjaChm
dW5jdGlvbihzKXsKLSAgICBnbC5kZXRhY2hTaGFkZXIoc2gucHJvZ3JhbSwgcyk7Ci0gICAgZ2wu
ZGVsZXRlU2hhZGVyKHMpOwotICB9KTsKLSAgZ2wuZGVsZXRlUHJvZ3JhbShzaC5wcm9ncmFtKTsK
LX0KLQotZnVuY3Rpb24gZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZXJyKSB7Ci0gIGlmIChlcnIg
PT09IGN0eC5OT19FUlJPUikgewotICAgIHJldHVybiAiTk9fRVJST1IiOwotICB9Ci0gIGZvciAo
dmFyIG5hbWUgaW4gY3R4KSB7Ci0gICAgaWYgKGN0eFtuYW1lXSA9PT0gZXJyKSB7Ci0gICAgICBy
ZXR1cm4gbmFtZTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIGVyci50b1N0cmluZygpOwotfQotCi1m
dW5jdGlvbiBjaGVja0Vycm9yKGdsLCBtc2cpIHsKLSAgdmFyIGUgPSBnbC5nZXRFcnJvcigpOwot
ICBpZiAoZSAhPSBnbC5OT19FUlJPUikgewotICAgIGxvZygiRXJyb3IgIiArIGdldEdMRXJyb3JB
c1N0cmluZyhnbCwgZSkgKyAiIGF0ICIgKyBtc2cpOwotICB9Ci0gIHJldHVybiBlOwotfQotCi1m
dW5jdGlvbiB0aHJvd0Vycm9yKGdsLCBtc2cpIHsKLSAgdmFyIGUgPSBnbC5nZXRFcnJvcigpOwot
ICBpZiAoZSAhPSAwKSB7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJFcnJvciAiICsgZ2V0R0xFcnJv
ckFzU3RyaW5nKGdsLCBlKSArICIgYXQgIiArIG1zZykpOwotICB9Ci19Ci0KLU1hdGguY290ID0g
ZnVuY3Rpb24oeikgeyByZXR1cm4gMS4wIC8gTWF0aC50YW4oeik7IH0KLQotLyoKLSAgTWF0cml4
IHV0aWxpdGllcywgdXNpbmcgdGhlIE9wZW5HTCBlbGVtZW50IG9yZGVyIHdoZXJlCi0gIHRoZSBs
YXN0IDQgZWxlbWVudHMgYXJlIHRoZSB0cmFuc2xhdGlvbiBjb2x1bW4uCi0KLSAgVXNlcyBmbGF0
IGFycmF5cyBhcyBtYXRyaWNlcyBmb3IgcGVyZm9ybWFuY2UuCi0KLSAgTW9zdCBvcGVyYXRpb25z
IGhhdmUgaW4tcGxhY2UgdmFyaWFudHMgdG8gYXZvaWQgYWxsb2NhdGluZyB0ZW1wb3JhcnkgbWF0
cmljZXMuCi0KLSAgTmFtaW5nIGxvZ2ljOgotICAgIE1hdHJpeC5tZXRob2Qgb3BlcmF0ZXMgb24g
YSA0eDQgTWF0cml4IGFuZCByZXR1cm5zIGEgbmV3IE1hdHJpeC4KLSAgICBNYXRyaXgubWV0aG9k
M3gzIG9wZXJhdGVzIG9uIGEgM3gzIE1hdHJpeCBhbmQgcmV0dXJucyBhIG5ldyBNYXRyaXguIE5v
dCBhbGwgb3BlcmF0aW9ucyBoYXZlIGEgM3gzIHZlcnNpb24gKGFzIDN4MyBpcyB1c3VhbGx5IG9u
bHkgdXNlZCBmb3IgdGhlIG5vcm1hbCBtYXRyaXg6IE1hdHJpeC50cmFuc3Bvc2UzeDMoTWF0cml4
LmludmVyc2VUbzN4MyhtYXQ0eDQpKSkKLSAgICBNYXRyaXgubWV0aG9kWzN4M11JblBsYWNlKGFy
Z3MsIHRhcmdldCkgc3RvcmVzIGl0cyByZXN1bHQgaW4gdGhlIHRhcmdldCBtYXRyaXguCi0KLSAg
ICBNYXRyaXguc2NhbGUoW3N4LCBzeSwgc3pdKSAtLSBub24tdW5pZm9ybSBzY2FsZSBieSB2ZWN0
b3IKLSAgICBNYXRyaXguc2NhbGUxKHMpICAgICAgICAgICAtLSB1bmlmb3JtIHNjYWxlIGJ5IHNj
YWxhcgotICAgIE1hdHJpeC5zY2FsZTMoc3gsIHN5LCBzeikgIC0tIG5vbi11bmlmb3JtIHNjYWxl
IGJ5IHNjYWxhcnMKLQotICAgIERpdHRvIGZvciB0cmFuc2xhdGUuCi0qLwotTWF0cml4ID0gewot
ICBpZGVudGl0eSA6IFsKLSAgICAxLjAsIDAuMCwgMC4wLCAwLjAsCi0gICAgMC4wLCAxLjAsIDAu
MCwgMC4wLAotICAgIDAuMCwgMC4wLCAxLjAsIDAuMCwKLSAgICAwLjAsIDAuMCwgMC4wLCAxLjAK
LSAgXSwKLQotICBuZXdJZGVudGl0eSA6IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBbCi0gICAg
ICAxLjAsIDAuMCwgMC4wLCAwLjAsCi0gICAgICAwLjAsIDEuMCwgMC4wLCAwLjAsCi0gICAgICAw
LjAsIDAuMCwgMS4wLCAwLjAsCi0gICAgICAwLjAsIDAuMCwgMC4wLCAxLjAKLSAgICBdOwotICB9
LAotCi0gIG5ld0lkZW50aXR5M3gzIDogZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIFsKLSAgICAg
IDEuMCwgMC4wLCAwLjAsCi0gICAgICAwLjAsIDEuMCwgMC4wLAotICAgICAgMC4wLCAwLjAsIDEu
MAotICAgIF07Ci0gIH0sCi0KLSAgY29weU1hdHJpeCA6IGZ1bmN0aW9uKHNyYywgZHN0KSB7Ci0g
ICAgZm9yICh2YXIgaT0wOyBpPDE2OyBpKyspIGRzdFtpXSA9IHNyY1tpXTsKLSAgICByZXR1cm4g
ZHN0OwotICB9LAotCi0gIHRvM3gzIDogZnVuY3Rpb24obSkgewotICAgIHJldHVybiBbCi0gICAg
ICBtWzBdLCBtWzFdLCBtWzJdLAotICAgICAgbVs0XSwgbVs1XSwgbVs2XSwKLSAgICAgIG1bOF0s
IG1bOV0sIG1bMTBdCi0gICAgXTsKLSAgfSwKLQotICAvLyBvcnRob25vcm1hbCBtYXRyaXggaW52
ZXJzZQotICBpbnZlcnNlT04gOiBmdW5jdGlvbihtKSB7Ci0gICAgdmFyIG4gPSB0aGlzLnRyYW5z
cG9zZTR4NChtKTsKLSAgICB2YXIgdCA9IFttWzEyXSwgbVsxM10sIG1bMTRdXTsKLSAgICBuWzNd
ID0gbls3XSA9IG5bMTFdID0gMDsKLSAgICBuWzEyXSA9IC1WZWMzLmRvdChbblswXSwgbls0XSwg
bls4XV0sIHQpOwotICAgIG5bMTNdID0gLVZlYzMuZG90KFtuWzFdLCBuWzVdLCBuWzldXSwgdCk7
Ci0gICAgblsxNF0gPSAtVmVjMy5kb3QoW25bMl0sIG5bNl0sIG5bMTBdXSwgdCk7Ci0gICAgcmV0
dXJuIG47Ci0gIH0sCi0KLSAgaW52ZXJzZVRvM3gzIDogZnVuY3Rpb24obSkgewotICAgIHJldHVy
biB0aGlzLmludmVyc2U0eDR0bzN4M0luUGxhY2UobSwgdGhpcy5uZXdJZGVudGl0eTN4MygpKTsK
LSAgfSwKLQotICBpbnZlcnNlVG8zeDNJblBsYWNlIDogZnVuY3Rpb24obSxuKSB7Ci0gICAgdmFy
IGExMSA9IG1bMTBdKm1bNV0tbVs2XSptWzldLAotICAgICAgICBhMjEgPSAtbVsxMF0qbVsxXStt
WzJdKm1bOV0sCi0gICAgICAgIGEzMSA9IG1bNl0qbVsxXS1tWzJdKm1bNV0sCi0gICAgICAgIGEx
MiA9IC1tWzEwXSptWzRdK21bNl0qbVs4XSwKLSAgICAgICAgYTIyID0gbVsxMF0qbVswXS1tWzJd
Km1bOF0sCi0gICAgICAgIGEzMiA9IC1tWzZdKm1bMF0rbVsyXSptWzRdLAotICAgICAgICBhMTMg
PSBtWzldKm1bNF0tbVs1XSptWzhdLAotICAgICAgICBhMjMgPSAtbVs5XSptWzBdK21bMV0qbVs4
XSwKLSAgICAgICAgYTMzID0gbVs1XSptWzBdLW1bMV0qbVs0XTsKLSAgICB2YXIgZGV0ID0gbVsw
XSooYTExKSArIG1bMV0qKGExMikgKyBtWzJdKihhMTMpOwotICAgIGlmIChkZXQgPT0gMCkgLy8g
bm8gaW52ZXJzZQotICAgICAgcmV0dXJuIFsxLDAsMCwwLDEsMCwwLDAsMV07Ci0gICAgdmFyIGlk
ZXQgPSAxIC8gZGV0OwotICAgIG5bMF0gPSBpZGV0KmExMTsKLSAgICBuWzFdID0gaWRldCphMjE7
Ci0gICAgblsyXSA9IGlkZXQqYTMxOwotICAgIG5bM10gPSBpZGV0KmExMjsKLSAgICBuWzRdID0g
aWRldCphMjI7Ci0gICAgbls1XSA9IGlkZXQqYTMyOwotICAgIG5bNl0gPSBpZGV0KmExMzsKLSAg
ICBuWzddID0gaWRldCphMjM7Ci0gICAgbls4XSA9IGlkZXQqYTMzOwotICAgIHJldHVybiBuOwot
ICB9LAotCi0gIGludmVyc2UzeDMgOiBmdW5jdGlvbihtKSB7Ci0gICAgcmV0dXJuIHRoaXMuaW52
ZXJzZTN4M0luUGxhY2UobSwgdGhpcy5uZXdJZGVudGl0eTN4MygpKTsKLSAgfSwKLQotICBpbnZl
cnNlM3gzSW5QbGFjZSA6IGZ1bmN0aW9uKG0sbikgewotICAgIHZhciBhMTEgPSBtWzhdKm1bNF0t
bVs1XSptWzddLAotICAgICAgICBhMjEgPSAtbVs4XSptWzFdK21bMl0qbVs3XSwKLSAgICAgICAg
YTMxID0gbVs1XSptWzFdLW1bMl0qbVs0XSwKLSAgICAgICAgYTEyID0gLW1bOF0qbVszXSttWzVd
Km1bNl0sCi0gICAgICAgIGEyMiA9IG1bOF0qbVswXS1tWzJdKm1bNl0sCi0gICAgICAgIGEzMiA9
IC1tWzVdKm1bMF0rbVsyXSptWzNdLAotICAgICAgICBhMTMgPSBtWzddKm1bNF0tbVs0XSptWzhd
LAotICAgICAgICBhMjMgPSAtbVs3XSptWzBdK21bMV0qbVs2XSwKLSAgICAgICAgYTMzID0gbVs0
XSptWzBdLW1bMV0qbVszXTsKLSAgICB2YXIgZGV0ID0gbVswXSooYTExKSArIG1bMV0qKGExMikg
KyBtWzJdKihhMTMpOwotICAgIGlmIChkZXQgPT0gMCkgLy8gbm8gaW52ZXJzZQotICAgICAgcmV0
dXJuIFsxLDAsMCwwLDEsMCwwLDAsMV07Ci0gICAgdmFyIGlkZXQgPSAxIC8gZGV0OwotICAgIG5b
MF0gPSBpZGV0KmExMTsKLSAgICBuWzFdID0gaWRldCphMjE7Ci0gICAgblsyXSA9IGlkZXQqYTMx
OwotICAgIG5bM10gPSBpZGV0KmExMjsKLSAgICBuWzRdID0gaWRldCphMjI7Ci0gICAgbls1XSA9
IGlkZXQqYTMyOwotICAgIG5bNl0gPSBpZGV0KmExMzsKLSAgICBuWzddID0gaWRldCphMjM7Ci0g
ICAgbls4XSA9IGlkZXQqYTMzOwotICAgIHJldHVybiBuOwotICB9LAotCi0gIGZydXN0dW0gOiBm
dW5jdGlvbiAobGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCB6bmVhciwgemZhcikgewotICAgIHZh
ciBYID0gMip6bmVhci8ocmlnaHQtbGVmdCk7Ci0gICAgdmFyIFkgPSAyKnpuZWFyLyh0b3AtYm90
dG9tKTsKLSAgICB2YXIgQSA9IChyaWdodCtsZWZ0KS8ocmlnaHQtbGVmdCk7Ci0gICAgdmFyIEIg
PSAodG9wK2JvdHRvbSkvKHRvcC1ib3R0b20pOwotICAgIHZhciBDID0gLSh6ZmFyK3puZWFyKS8o
emZhci16bmVhcik7Ci0gICAgdmFyIEQgPSAtMip6ZmFyKnpuZWFyLyh6ZmFyLXpuZWFyKTsKLQot
ICAgIHJldHVybiBbCi0gICAgICBYLCAwLCAwLCAwLAotICAgICAgMCwgWSwgMCwgMCwKLSAgICAg
IEEsIEIsIEMsIC0xLAotICAgICAgMCwgMCwgRCwgMAotICAgIF07Ci0gfSwKLQotICBwZXJzcGVj
dGl2ZSA6IGZ1bmN0aW9uIChmb3Z5LCBhc3BlY3QsIHpuZWFyLCB6ZmFyKSB7Ci0gICAgdmFyIHlt
YXggPSB6bmVhciAqIE1hdGgudGFuKGZvdnkgKiBNYXRoLlBJIC8gMzYwLjApOwotICAgIHZhciB5
bWluID0gLXltYXg7Ci0gICAgdmFyIHhtaW4gPSB5bWluICogYXNwZWN0OwotICAgIHZhciB4bWF4
ID0geW1heCAqIGFzcGVjdDsKLQotICAgIHJldHVybiB0aGlzLmZydXN0dW0oeG1pbiwgeG1heCwg
eW1pbiwgeW1heCwgem5lYXIsIHpmYXIpOwotICB9LAotCi0gIG11bDR4NCA6IGZ1bmN0aW9uIChh
LGIpIHsKLSAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKGEsYix0aGlzLm5ld0lkZW50aXR5
KCkpOwotICB9LAotCi0gIG11bDR4NEluUGxhY2UgOiBmdW5jdGlvbiAoYSwgYiwgYykgewotICAg
ICAgICBjWzBdID0gICBiWzBdICogYVswXSArCi0gICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFb
NF0gKwotICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzhdICsKLSAgICAgICAgICAgICAgICAg
YlswKzNdICogYVsxMl07Ci0gICAgICAgIGNbMCsxXSA9IGJbMF0gKiBhWzFdICsKLSAgICAgICAg
ICAgICAgICAgYlswKzFdICogYVs1XSArCi0gICAgICAgICAgICAgICAgIGJbMCsyXSAqIGFbOV0g
KwotICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzEzXTsKLSAgICAgICAgY1swKzJdID0gYlsw
XSAqIGFbMl0gKwotICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzZdICsKLSAgICAgICAgICAg
ICAgICAgYlswKzJdICogYVsxMF0gKwotICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzE0XTsK
LSAgICAgICAgY1swKzNdID0gYlswXSAqIGFbM10gKwotICAgICAgICAgICAgICAgICBiWzArMV0g
KiBhWzddICsKLSAgICAgICAgICAgICAgICAgYlswKzJdICogYVsxMV0gKwotICAgICAgICAgICAg
ICAgICBiWzArM10gKiBhWzE1XTsKLSAgICAgICAgY1s0XSA9ICAgYls0XSAqIGFbMF0gKwotICAg
ICAgICAgICAgICAgICBiWzQrMV0gKiBhWzRdICsKLSAgICAgICAgICAgICAgICAgYls0KzJdICog
YVs4XSArCi0gICAgICAgICAgICAgICAgIGJbNCszXSAqIGFbMTJdOwotICAgICAgICBjWzQrMV0g
PSBiWzRdICogYVsxXSArCi0gICAgICAgICAgICAgICAgIGJbNCsxXSAqIGFbNV0gKwotICAgICAg
ICAgICAgICAgICBiWzQrMl0gKiBhWzldICsKLSAgICAgICAgICAgICAgICAgYls0KzNdICogYVsx
M107Ci0gICAgICAgIGNbNCsyXSA9IGJbNF0gKiBhWzJdICsKLSAgICAgICAgICAgICAgICAgYls0
KzFdICogYVs2XSArCi0gICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFbMTBdICsKLSAgICAgICAg
ICAgICAgICAgYls0KzNdICogYVsxNF07Ci0gICAgICAgIGNbNCszXSA9IGJbNF0gKiBhWzNdICsK
LSAgICAgICAgICAgICAgICAgYls0KzFdICogYVs3XSArCi0gICAgICAgICAgICAgICAgIGJbNCsy
XSAqIGFbMTFdICsKLSAgICAgICAgICAgICAgICAgYls0KzNdICogYVsxNV07Ci0gICAgICAgIGNb
OF0gPSAgIGJbOF0gKiBhWzBdICsKLSAgICAgICAgICAgICAgICAgYls4KzFdICogYVs0XSArCi0g
ICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbOF0gKwotICAgICAgICAgICAgICAgICBiWzgrM10g
KiBhWzEyXTsKLSAgICAgICAgY1s4KzFdID0gYls4XSAqIGFbMV0gKwotICAgICAgICAgICAgICAg
ICBiWzgrMV0gKiBhWzVdICsKLSAgICAgICAgICAgICAgICAgYls4KzJdICogYVs5XSArCi0gICAg
ICAgICAgICAgICAgIGJbOCszXSAqIGFbMTNdOwotICAgICAgICBjWzgrMl0gPSBiWzhdICogYVsy
XSArCi0gICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNl0gKwotICAgICAgICAgICAgICAgICBi
WzgrMl0gKiBhWzEwXSArCi0gICAgICAgICAgICAgICAgIGJbOCszXSAqIGFbMTRdOwotICAgICAg
ICBjWzgrM10gPSBiWzhdICogYVszXSArCi0gICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbN10g
KwotICAgICAgICAgICAgICAgICBiWzgrMl0gKiBhWzExXSArCi0gICAgICAgICAgICAgICAgIGJb
OCszXSAqIGFbMTVdOwotICAgICAgICBjWzEyXSA9ICAgYlsxMl0gKiBhWzBdICsKLSAgICAgICAg
ICAgICAgICAgYlsxMisxXSAqIGFbNF0gKwotICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVs4
XSArCi0gICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzEyXTsKLSAgICAgICAgY1sxMisxXSA9
IGJbMTJdICogYVsxXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzVdICsKLSAgICAg
ICAgICAgICAgICAgYlsxMisyXSAqIGFbOV0gKwotICAgICAgICAgICAgICAgICBiWzEyKzNdICog
YVsxM107Ci0gICAgICAgIGNbMTIrMl0gPSBiWzEyXSAqIGFbMl0gKwotICAgICAgICAgICAgICAg
ICBiWzEyKzFdICogYVs2XSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBhWzEwXSArCi0g
ICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzE0XTsKLSAgICAgICAgY1sxMiszXSA9IGJbMTJd
ICogYVszXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzddICsKLSAgICAgICAgICAg
ICAgICAgYlsxMisyXSAqIGFbMTFdICsKLSAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTVd
OwotICAgIHJldHVybiBjOwotICB9LAotCi0gIG11bHY0IDogZnVuY3Rpb24gKGEsIHYpIHsKLSAg
ICBjID0gbmV3IEFycmF5KDQpOwotICAgIGZvciAodmFyIGk9MDsgaTw0OyArK2kpIHsKLSAgICAg
IHZhciB4ID0gMDsKLSAgICAgIGZvciAodmFyIGs9MDsgazw0OyArK2spCi0gICAgICAgIHggKz0g
dltrXSAqIGFbayo0K2ldOwotICAgICAgY1tpXSA9IHg7Ci0gICAgfQotICAgIHJldHVybiBjOwot
ICB9LAotCi0gIHJvdGF0ZSA6IGZ1bmN0aW9uIChhbmdsZSwgYXhpcykgewotICAgIGF4aXMgPSBW
ZWMzLm5vcm1hbGl6ZShheGlzKTsKLSAgICB2YXIgeD1heGlzWzBdLCB5PWF4aXNbMV0sIHo9YXhp
c1syXTsKLSAgICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKLSAgICB2YXIgYzEgPSAxLWM7Ci0g
ICAgdmFyIHMgPSBNYXRoLnNpbihhbmdsZSk7Ci0gICAgcmV0dXJuIFsKLSAgICAgIHgqeCpjMStj
LCB5KngqYzEreipzLCB6KngqYzEteSpzLCAwLAotICAgICAgeCp5KmMxLXoqcywgeSp5KmMxK2Ms
IHkqeipjMSt4KnMsIDAsCi0gICAgICB4KnoqYzEreSpzLCB5KnoqYzEteCpzLCB6KnoqYzErYywg
MCwKLSAgICAgIDAsMCwwLDEKLSAgICBdOwotICB9LAotICByb3RhdGVJblBsYWNlIDogZnVuY3Rp
b24oYW5nbGUsIGF4aXMsIG0pIHsKLSAgICBheGlzID0gVmVjMy5ub3JtYWxpemUoYXhpcyk7Ci0g
ICAgdmFyIHg9YXhpc1swXSwgeT1heGlzWzFdLCB6PWF4aXNbMl07Ci0gICAgdmFyIGMgPSBNYXRo
LmNvcyhhbmdsZSk7Ci0gICAgdmFyIGMxID0gMS1jOwotICAgIHZhciBzID0gTWF0aC5zaW4oYW5n
bGUpOwotICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJpeDsKLSAgICB2YXIgdG1wTWF0
cml4MiA9IHRoaXMudG1wTWF0cml4MjsKLSAgICB0bXBNYXRyaXhbMF0gPSB4KngqYzErYzsgdG1w
TWF0cml4WzFdID0geSp4KmMxK3oqczsgdG1wTWF0cml4WzJdID0geip4KmMxLXkqczsgdG1wTWF0
cml4WzNdID0gMDsKLSAgICB0bXBNYXRyaXhbNF0gPSB4KnkqYzEteipzOyB0bXBNYXRyaXhbNV0g
PSB5KnkqYzErYzsgdG1wTWF0cml4WzZdID0geSp6KmMxK3gqczsgdG1wTWF0cml4WzddID0gMDsK
LSAgICB0bXBNYXRyaXhbOF0gPSB4KnoqYzEreSpzOyB0bXBNYXRyaXhbOV0gPSB5KnoqYzEteCpz
OyB0bXBNYXRyaXhbMTBdID0geip6KmMxK2M7IHRtcE1hdHJpeFsxMV0gPSAwOwotICAgIHRtcE1h
dHJpeFsxMl0gPSAwOyB0bXBNYXRyaXhbMTNdID0gMDsgdG1wTWF0cml4WzE0XSA9IDA7IHRtcE1h
dHJpeFsxNV0gPSAxOwotICAgIHRoaXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKLSAgICBy
ZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7Ci0gIH0s
Ci0KLSAgc2NhbGUgOiBmdW5jdGlvbih2KSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIHZbMF0sIDAs
IDAsIDAsCi0gICAgICAwLCB2WzFdLCAwLCAwLAotICAgICAgMCwgMCwgdlsyXSwgMCwKLSAgICAg
IDAsIDAsIDAsIDEKLSAgICBdOwotICB9LAotICBzY2FsZTMgOiBmdW5jdGlvbih4LHkseikgewot
ICAgIHJldHVybiBbCi0gICAgICB4LCAwLCAwLCAwLAotICAgICAgMCwgeSwgMCwgMCwKLSAgICAg
IDAsIDAsIHosIDAsCi0gICAgICAwLCAwLCAwLCAxCi0gICAgXTsKLSAgfSwKLSAgc2NhbGUxIDog
ZnVuY3Rpb24ocykgewotICAgIHJldHVybiBbCi0gICAgICBzLCAwLCAwLCAwLAotICAgICAgMCwg
cywgMCwgMCwKLSAgICAgIDAsIDAsIHMsIDAsCi0gICAgICAwLCAwLCAwLCAxCi0gICAgXTsKLSAg
fSwKLSAgc2NhbGUzSW5QbGFjZSA6IGZ1bmN0aW9uKHgsIHksIHosIG0pIHsKLSAgICB2YXIgdG1w
TWF0cml4ID0gdGhpcy50bXBNYXRyaXg7Ci0gICAgdmFyIHRtcE1hdHJpeDIgPSB0aGlzLnRtcE1h
dHJpeDI7Ci0gICAgdG1wTWF0cml4WzBdID0geDsgdG1wTWF0cml4WzFdID0gMDsgdG1wTWF0cml4
WzJdID0gMDsgdG1wTWF0cml4WzNdID0gMDsKLSAgICB0bXBNYXRyaXhbNF0gPSAwOyB0bXBNYXRy
aXhbNV0gPSB5OyB0bXBNYXRyaXhbNl0gPSAwOyB0bXBNYXRyaXhbN10gPSAwOwotICAgIHRtcE1h
dHJpeFs4XSA9IDA7IHRtcE1hdHJpeFs5XSA9IDA7IHRtcE1hdHJpeFsxMF0gPSB6OyB0bXBNYXRy
aXhbMTFdID0gMDsKLSAgICB0bXBNYXRyaXhbMTJdID0gMDsgdG1wTWF0cml4WzEzXSA9IDA7IHRt
cE1hdHJpeFsxNF0gPSAwOyB0bXBNYXRyaXhbMTVdID0gMTsKLSAgICB0aGlzLmNvcHlNYXRyaXgo
bSwgdG1wTWF0cml4Mik7Ci0gICAgcmV0dXJuIHRoaXMubXVsNHg0SW5QbGFjZSh0bXBNYXRyaXgy
LCB0bXBNYXRyaXgsIG0pOwotICB9LAotICBzY2FsZTFJblBsYWNlIDogZnVuY3Rpb24ocywgbSkg
eyByZXR1cm4gdGhpcy5zY2FsZTNJblBsYWNlKHMsIHMsIHMsIG0pOyB9LAotICBzY2FsZUluUGxh
Y2UgOiBmdW5jdGlvbihzLCBtKSB7IHJldHVybiB0aGlzLnNjYWxlM0luUGxhY2Uoc1swXSxzWzFd
LHNbMl0sbSk7IH0sCi0KLSAgdHJhbnNsYXRlMyA6IGZ1bmN0aW9uKHgseSx6KSB7Ci0gICAgcmV0
dXJuIFsKLSAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAwLCAxLCAwLCAwLAotICAgICAgMCwgMCwg
MSwgMCwKLSAgICAgIHgsIHksIHosIDEKLSAgICBdOwotICB9LAotCi0gIHRyYW5zbGF0ZSA6IGZ1
bmN0aW9uKHYpIHsKLSAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUzKHZbMF0sIHZbMV0sIHZbMl0p
OwotICB9LAotICB0bXBNYXRyaXggOiBbMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAs
MF0sCi0gIHRtcE1hdHJpeDIgOiBbMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMF0s
Ci0gIHRyYW5zbGF0ZTNJblBsYWNlIDogZnVuY3Rpb24oeCx5LHosbSkgewotICAgIHZhciB0bXBN
YXRyaXggPSB0aGlzLnRtcE1hdHJpeDsKLSAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1wTWF0
cml4MjsKLSAgICB0bXBNYXRyaXhbMF0gPSAxOyB0bXBNYXRyaXhbMV0gPSAwOyB0bXBNYXRyaXhb
Ml0gPSAwOyB0bXBNYXRyaXhbM10gPSAwOwotICAgIHRtcE1hdHJpeFs0XSA9IDA7IHRtcE1hdHJp
eFs1XSA9IDE7IHRtcE1hdHJpeFs2XSA9IDA7IHRtcE1hdHJpeFs3XSA9IDA7Ci0gICAgdG1wTWF0
cml4WzhdID0gMDsgdG1wTWF0cml4WzldID0gMDsgdG1wTWF0cml4WzEwXSA9IDE7IHRtcE1hdHJp
eFsxMV0gPSAwOwotICAgIHRtcE1hdHJpeFsxMl0gPSB4OyB0bXBNYXRyaXhbMTNdID0geTsgdG1w
TWF0cml4WzE0XSA9IHo7IHRtcE1hdHJpeFsxNV0gPSAxOwotICAgIHRoaXMuY29weU1hdHJpeCht
LCB0bXBNYXRyaXgyKTsKLSAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJpeDIs
IHRtcE1hdHJpeCwgbSk7Ci0gIH0sCi0gIHRyYW5zbGF0ZUluUGxhY2UgOiBmdW5jdGlvbih2LG0p
eyByZXR1cm4gdGhpcy50cmFuc2xhdGUzSW5QbGFjZSh2WzBdLCB2WzFdLCB2WzJdLCBtKTsgfSwK
LQotICBsb29rQXQgOiBmdW5jdGlvbiAoZXllLCBjZW50ZXIsIHVwKSB7Ci0gICAgdmFyIHogPSBW
ZWMzLmRpcmVjdGlvbihleWUsIGNlbnRlcik7Ci0gICAgdmFyIHggPSBWZWMzLm5vcm1hbGl6ZUlu
UGxhY2UoVmVjMy5jcm9zcyh1cCwgeikpOwotICAgIHZhciB5ID0gVmVjMy5ub3JtYWxpemVJblBs
YWNlKFZlYzMuY3Jvc3MoeiwgeCkpOwotCi0gICAgdmFyIG0gPSBbCi0gICAgICB4WzBdLCB5WzBd
LCB6WzBdLCAwLAotICAgICAgeFsxXSwgeVsxXSwgelsxXSwgMCwKLSAgICAgIHhbMl0sIHlbMl0s
IHpbMl0sIDAsCi0gICAgICAwLCAwLCAwLCAxCi0gICAgXTsKLQotICAgIHZhciB0ID0gWwotICAg
ICAgMSwgMCwgMCwgMCwKLSAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAwLCAwLCAxLCAwLAotICAg
ICAgLWV5ZVswXSwgLWV5ZVsxXSwgLWV5ZVsyXSwgMQotICAgIF07Ci0KLSAgICByZXR1cm4gdGhp
cy5tdWw0eDQobSx0KTsKLSAgfSwKLQotICB0cmFuc3Bvc2U0eDQgOiBmdW5jdGlvbihtKSB7Ci0g
ICAgcmV0dXJuIFsKLSAgICAgIG1bMF0sIG1bNF0sIG1bOF0sIG1bMTJdLAotICAgICAgbVsxXSwg
bVs1XSwgbVs5XSwgbVsxM10sCi0gICAgICBtWzJdLCBtWzZdLCBtWzEwXSwgbVsxNF0sCi0gICAg
ICBtWzNdLCBtWzddLCBtWzExXSwgbVsxNV0KLSAgICBdOwotICB9LAotCi0gIHRyYW5zcG9zZTR4
NEluUGxhY2UgOiBmdW5jdGlvbihtKSB7Ci0gICAgdmFyIHRtcCA9IDAuMDsKLSAgICB0bXAgPSBt
WzFdOyBtWzFdID0gbVs0XTsgbVs0XSA9IHRtcDsKLSAgICB0bXAgPSBtWzJdOyBtWzJdID0gbVs4
XTsgbVs4XSA9IHRtcDsKLSAgICB0bXAgPSBtWzNdOyBtWzNdID0gbVsxMl07IG1bMTJdID0gdG1w
OwotICAgIHRtcCA9IG1bNl07IG1bNl0gPSBtWzldOyBtWzldID0gdG1wOwotICAgIHRtcCA9IG1b
N107IG1bN10gPSBtWzEzXTsgbVsxM10gPSB0bXA7Ci0gICAgdG1wID0gbVsxMV07IG1bMTFdID0g
bVsxNF07IG1bMTRdID0gdG1wOwotICAgIHJldHVybiBtOwotICB9LAotCi0gIHRyYW5zcG9zZTN4
MyA6IGZ1bmN0aW9uKG0pIHsKLSAgICByZXR1cm4gWwotICAgICAgbVswXSwgbVszXSwgbVs2XSwK
LSAgICAgIG1bMV0sIG1bNF0sIG1bN10sCi0gICAgICBtWzJdLCBtWzVdLCBtWzhdCi0gICAgXTsK
LSAgfSwKLQotICB0cmFuc3Bvc2UzeDNJblBsYWNlIDogZnVuY3Rpb24obSkgewotICAgIHZhciB0
bXAgPSAwLjA7Ci0gICAgdG1wID0gbVsxXTsgbVsxXSA9IG1bM107IG1bM10gPSB0bXA7Ci0gICAg
dG1wID0gbVsyXTsgbVsyXSA9IG1bNl07IG1bNl0gPSB0bXA7Ci0gICAgdG1wID0gbVs1XTsgbVs1
XSA9IG1bN107IG1bN10gPSB0bXA7Ci0gICAgcmV0dXJuIG07Ci0gIH0sCi19Ci0KLVZlYzMgPSB7
Ci0gIG1ha2UgOiBmdW5jdGlvbigpIHsgcmV0dXJuIFswLDAsMF07IH0sCi0gIGNvcHkgOiBmdW5j
dGlvbih2KSB7IHJldHVybiBbdlswXSx2WzFdLHZbMl1dOyB9LAotCi0gIGFkZCA6IGZ1bmN0aW9u
ICh1LHYpIHsKLSAgICByZXR1cm4gW3VbMF0rdlswXSwgdVsxXSt2WzFdLCB1WzJdK3ZbMl1dOwot
ICB9LAotCi0gIHN1YiA6IGZ1bmN0aW9uICh1LHYpIHsKLSAgICByZXR1cm4gW3VbMF0tdlswXSwg
dVsxXS12WzFdLCB1WzJdLXZbMl1dOwotICB9LAotCi0gIG5lZ2F0ZSA6IGZ1bmN0aW9uICh1KSB7
Ci0gICAgcmV0dXJuIFstdVswXSwgLXVbMV0sIC11WzJdXTsKLSAgfSwKLQotICBkaXJlY3Rpb24g
OiBmdW5jdGlvbiAodSx2KSB7Ci0gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplSW5QbGFjZSh0aGlz
LnN1Yih1LHYpKTsKLSAgfSwKLQotICBub3JtYWxpemVJblBsYWNlIDogZnVuY3Rpb24odikgewot
ICAgIHZhciBpbWFnID0gMS4wIC8gTWF0aC5zcXJ0KHZbMF0qdlswXSArIHZbMV0qdlsxXSArIHZb
Ml0qdlsyXSk7Ci0gICAgdlswXSAqPSBpbWFnOyB2WzFdICo9IGltYWc7IHZbMl0gKj0gaW1hZzsK
LSAgICByZXR1cm4gdjsKLSAgfSwKLQotICBub3JtYWxpemUgOiBmdW5jdGlvbih2KSB7Ci0gICAg
cmV0dXJuIHRoaXMubm9ybWFsaXplSW5QbGFjZSh0aGlzLmNvcHkodikpOwotICB9LAotCi0gIHNj
YWxlIDogZnVuY3Rpb24oZiwgdikgewotICAgIHJldHVybiBbZip2WzBdLCBmKnZbMV0sIGYqdlsy
XV07Ci0gIH0sCi0KLSAgZG90IDogZnVuY3Rpb24odSx2KSB7Ci0gICAgcmV0dXJuIHVbMF0qdlsw
XSArIHVbMV0qdlsxXSArIHVbMl0qdlsyXTsKLSAgfSwKLQotICBpbm5lciA6IGZ1bmN0aW9uKHUs
dikgewotICAgIHJldHVybiBbdVswXSp2WzBdLCB1WzFdKnZbMV0sIHVbMl0qdlsyXV07Ci0gIH0s
Ci0KLSAgY3Jvc3MgOiBmdW5jdGlvbih1LHYpIHsKLSAgICByZXR1cm4gWwotICAgICAgdVsxXSp2
WzJdIC0gdVsyXSp2WzFdLAotICAgICAgdVsyXSp2WzBdIC0gdVswXSp2WzJdLAotICAgICAgdVsw
XSp2WzFdIC0gdVsxXSp2WzBdCi0gICAgXTsKLSAgfQotfQotCi1TaGFkZXIgPSBmdW5jdGlvbihn
bCl7Ci0gIHRoaXMuZ2wgPSBnbDsKLSAgdGhpcy5zaGFkZXJzID0gW107Ci0gIHRoaXMudW5pZm9y
bUxvY2F0aW9ucyA9IHt9OwotICB0aGlzLmF0dHJpYkxvY2F0aW9ucyA9IHt9OwotICBmb3IgKHZh
ciBpPTE7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdGhpcy5zaGFkZXJzLnB1c2go
YXJndW1lbnRzW2ldKTsKLSAgfQotfQotU2hhZGVyLnByb3RvdHlwZSA9IHsKLSAgaWQgOiBudWxs
LAotICBnbCA6IG51bGwsCi0gIGNvbXBpbGVkIDogZmFsc2UsCi0gIHNoYWRlciA6IG51bGwsCi0g
IHNoYWRlcnMgOiBbXSwKLQotICBkZXN0cm95IDogZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRoaXMu
c2hhZGVyICE9IG51bGwpIGRlbGV0ZVNoYWRlcih0aGlzLmdsLCB0aGlzLnNoYWRlcik7Ci0gIH0s
Ci0KLSAgY29tcGlsZSA6IGZ1bmN0aW9uKCkgewotICAgIHRoaXMuc2hhZGVyID0gbG9hZFNoYWRl
ckFycmF5KHRoaXMuZ2wsIHRoaXMuc2hhZGVycyk7Ci0gIH0sCi0KLSAgdXNlIDogZnVuY3Rpb24o
KSB7Ci0gICAgaWYgKHRoaXMuc2hhZGVyID09IG51bGwpCi0gICAgICB0aGlzLmNvbXBpbGUoKTsK
LSAgICB0aGlzLmdsLnVzZVByb2dyYW0odGhpcy5zaGFkZXIucHJvZ3JhbSk7Ci0gIH0sCi0KLSAg
dW5pZm9ybTFmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMu
dW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0xZnYobG9jLCB2YWx1ZSk7Ci0gIH0s
Ci0KLSAgdW5pZm9ybTJmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9
IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0yZnYobG9jLCB2YWx1ZSk7
Ci0gIH0sCi0KLSAgdW5pZm9ybTNmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFy
IGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0zZnYobG9jLCB2
YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTRmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0g
ICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm00ZnYo
bG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTFmIDogZnVuY3Rpb24obmFtZSwgdmFsdWUp
IHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9y
bTFmKGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0yZiA6IGZ1bmN0aW9uKG5hbWUsIHYx
LHYyKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVu
aWZvcm0yZihsb2MsIHYxLHYyKTsKLSAgfSwKLQotICB1bmlmb3JtM2YgOiBmdW5jdGlvbihuYW1l
LCB2MSx2Mix2MykgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhp
cy5nbC51bmlmb3JtM2YobG9jLCB2MSx2Mix2Myk7Ci0gIH0sCi0KLSAgdW5pZm9ybTRmIDogZnVu
Y3Rpb24obmFtZSwgdjEsdjIsdjMsdjQpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5h
bWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTRmKGxvYywgdjEsIHYyLCB2MywgdjQpOwotICB9LAot
Ci0gIHVuaWZvcm0xaXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0
aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMWl2KGxvYywgdmFsdWUpOwot
ICB9LAotCi0gIHVuaWZvcm0yaXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBs
b2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMml2KGxvYywgdmFs
dWUpOwotICB9LAotCi0gIHVuaWZvcm0zaXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAg
IHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtM2l2KGxv
YywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm00aXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkg
ewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3Jt
NGl2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0xaSA6IGZ1bmN0aW9uKG5hbWUsIHZh
bHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVu
aWZvcm0xaShsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3JtMmkgOiBmdW5jdGlvbihuYW1l
LCB2MSx2MikgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5n
bC51bmlmb3JtMmkobG9jLCB2MSx2Mik7Ci0gIH0sCi0KLSAgdW5pZm9ybTNpIDogZnVuY3Rpb24o
bmFtZSwgdjEsdjIsdjMpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAg
IHRoaXMuZ2wudW5pZm9ybTNpKGxvYywgdjEsdjIsdjMpOwotICB9LAotCi0gIHVuaWZvcm00aSA6
IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzLHY0KSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9y
bShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm00aShsb2MsIHYxLCB2MiwgdjMsIHY0KTsKLSAg
fSwKLQotICB1bmlmb3JtTWF0cml4NGZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2
YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDRm
dihsb2MsIGZhbHNlLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybU1hdHJpeDNmdiA6IGZ1bmN0
aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAg
ICB0aGlzLmdsLnVuaWZvcm1NYXRyaXgzZnYobG9jLCBmYWxzZSwgdmFsdWUpOwotICB9LAotCi0g
IHVuaWZvcm1NYXRyaXgyZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2Mg
PSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtTWF0cml4MmZ2KGxvYywg
ZmFsc2UsIHZhbHVlKTsKLSAgfSwKLQotICBhdHRyaWIgOiBmdW5jdGlvbihuYW1lKSB7Ci0gICAg
aWYgKHRoaXMuYXR0cmliTG9jYXRpb25zW25hbWVdID09IG51bGwpIHsKLSAgICAgIHZhciBsb2Mg
PSB0aGlzLmdsLmdldEF0dHJpYkxvY2F0aW9uKHRoaXMuc2hhZGVyLnByb2dyYW0sIG5hbWUpOwot
ICAgICAgdGhpcy5hdHRyaWJMb2NhdGlvbnNbbmFtZV0gPSBsb2M7Ci0gICAgfQotICAgIHJldHVy
biB0aGlzLmF0dHJpYkxvY2F0aW9uc1tuYW1lXTsKLSAgfSwKLQotICB1bmlmb3JtIDogZnVuY3Rp
b24obmFtZSkgewotICAgIGlmICh0aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV0gPT0gbnVsbCkg
ewotICAgICAgdmFyIGxvYyA9IHRoaXMuZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMuc2hhZGVy
LnByb2dyYW0sIG5hbWUpOwotICAgICAgdGhpcy51bmlmb3JtTG9jYXRpb25zW25hbWVdID0gbG9j
OwotICAgIH0KLSAgICByZXR1cm4gdGhpcy51bmlmb3JtTG9jYXRpb25zW25hbWVdOwotICB9Ci19
Ci1GaWx0ZXIgPSBmdW5jdGlvbihnbCwgc2hhZGVyKSB7Ci0gIFNoYWRlci5hcHBseSh0aGlzLCBh
cmd1bWVudHMpOwotfQotRmlsdGVyLnByb3RvdHlwZSA9IG5ldyBTaGFkZXIoKTsKLUZpbHRlci5w
cm90b3R5cGUuYXBwbHkgPSBmdW5jdGlvbihpbml0KSB7Ci0gIHRoaXMudXNlKCk7Ci0gIHZhciB2
YSA9IHRoaXMuYXR0cmliKCJWZXJ0ZXgiKTsKLSAgdmFyIHRhID0gdGhpcy5hdHRyaWIoIlRleCIp
OwotICB2YXIgdmJvID0gUXVhZC5nZXRDYWNoZWRWQk8odGhpcy5nbCk7Ci0gIGlmIChpbml0KSBp
bml0KHRoaXMpOwotICB2Ym8uZHJhdyh2YSwgbnVsbCwgdGEpOwotfQotCi0KLVZCTyA9IGZ1bmN0
aW9uKGdsKSB7Ci0gIHRoaXMuZ2wgPSBnbDsKLSAgdGhpcy5kYXRhID0gW107Ci0gIHRoaXMuZWxl
bWVudHNWQk8gPSBudWxsOwotICBmb3IgKHZhciBpPTE7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgaWYgKGFyZ3VtZW50c1tpXS5lbGVtZW50cykKLSAgICAgIHRoaXMuZWxlbWVudHMg
PSBhcmd1bWVudHNbaV07Ci0gICAgZWxzZQotICAgICAgdGhpcy5kYXRhLnB1c2goYXJndW1lbnRz
W2ldKTsKLSAgfQotfQotCi1WQk8ucHJvdG90eXBlID0gewotICBpbml0aWFsaXplZCA6IGZhbHNl
LAotICBsZW5ndGggOiAwLAotICB2Ym9zIDogbnVsbCwKLSAgdHlwZSA6ICdUUklBTkdMRVMnLAot
ICBlbGVtZW50c1ZCTyA6IG51bGwsCi0gIGVsZW1lbnRzIDogbnVsbCwKLQotICBzZXREYXRhIDog
ZnVuY3Rpb24oKSB7Ci0gICAgdGhpcy5kZXN0cm95KCk7Ci0gICAgdGhpcy5kYXRhID0gW107Ci0g
ICAgZm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgICAgaWYgKGFy
Z3VtZW50c1tpXS5lbGVtZW50cykKLSAgICAgICAgdGhpcy5lbGVtZW50cyA9IGFyZ3VtZW50c1tp
XTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5kYXRhLnB1c2goYXJndW1lbnRzW2ldKTsKLSAg
ICB9Ci0gIH0sCi0KLSAgZGVzdHJveSA6IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLnZib3Mg
IT0gbnVsbCkKLSAgICAgIGZvciAodmFyIGk9MDsgaTx0aGlzLnZib3MubGVuZ3RoOyBpKyspCi0g
ICAgICAgIHRoaXMuZ2wuZGVsZXRlQnVmZmVyKHRoaXMudmJvc1tpXSk7Ci0gICAgaWYgKHRoaXMu
ZWxlbWVudHNWQk8gIT0gbnVsbCkKLSAgICAgIHRoaXMuZ2wuZGVsZXRlQnVmZmVyKHRoaXMuZWxl
bWVudHNWQk8pOwotICAgIHRoaXMubGVuZ3RoID0gdGhpcy5lbGVtZW50c0xlbmd0aCA9IDA7Ci0g
ICAgdGhpcy52Ym9zID0gdGhpcy5lbGVtZW50c1ZCTyA9IG51bGw7Ci0gICAgdGhpcy5pbml0aWFs
aXplZCA9IGZhbHNlOwotICB9LAotCi0gIGluaXQgOiBmdW5jdGlvbigpIHsKLSAgICB0aGlzLmRl
c3Ryb3koKTsKLSAgICB2YXIgZ2wgPSB0aGlzLmdsOwotCi0gICAgZ2wuZ2V0RXJyb3IoKTsKLSAg
ICB2YXIgdmJvcyA9IFtdOwotICAgIHZhciBsZW5ndGggPSAwOwotICAgIGZvciAodmFyIGk9MDsg
aTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspCi0gICAgICB2Ym9zLnB1c2goZ2wuY3JlYXRlQnVmZmVy
KCkpOwotICAgIGlmICh0aGlzLmVsZW1lbnRzICE9IG51bGwpCi0gICAgICB0aGlzLmVsZW1lbnRz
VkJPID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gICAgdHJ5IHsKLSAgICAgIHRocm93RXJyb3IoZ2ws
ICJnZW5CdWZmZXJzIik7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGFbaV07Ci0gICAgICAgIHZhciBkbGVu
ID0gTWF0aC5mbG9vcihkLmRhdGEubGVuZ3RoIC8gZC5zaXplKTsKLSAgICAgICAgaWYgKGkgPT0g
MCB8fCBkbGVuIDwgbGVuZ3RoKQotICAgICAgICAgICAgbGVuZ3RoID0gZGxlbjsKLSAgICAgICAg
aWYgKCFkLmZsb2F0QXJyYXkpCi0gICAgICAgICAgZC5mbG9hdEFycmF5ID0gbmV3IEZsb2F0MzJB
cnJheShkLmRhdGEpOwotICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJv
c1tpXSk7Ci0gICAgICAgIHRocm93RXJyb3IoZ2wsICJiaW5kQnVmZmVyIik7Ci0gICAgICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBkLmZsb2F0QXJyYXksIGdsLlNUQVRJQ19EUkFX
KTsKLSAgICAgICAgdGhyb3dFcnJvcihnbCwgImJ1ZmZlckRhdGEiKTsKLSAgICAgIH0KLSAgICAg
IGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKLSAgICAgICAgdmFyIGQgPSB0aGlzLmVs
ZW1lbnRzOwotICAgICAgICB0aGlzLmVsZW1lbnRzTGVuZ3RoID0gZC5kYXRhLmxlbmd0aDsKLSAg
ICAgICAgdGhpcy5lbGVtZW50c1R5cGUgPSBkLnR5cGUgPT0gZ2wuVU5TSUdORURfQllURSA/IGQu
dHlwZSA6IGdsLlVOU0lHTkVEX1NIT1JUOwotICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCB0aGlzLmVsZW1lbnRzVkJPKTsKLSAgICAgICAgdGhyb3dFcnJvcihn
bCwgImJpbmRCdWZmZXIgRUxFTUVOVF9BUlJBWV9CVUZGRVIiKTsKLSAgICAgICAgaWYgKHRoaXMu
ZWxlbWVudHNUeXBlID09IGdsLlVOU0lHTkVEX1NIT1JUICYmICFkLnVzaG9ydEFycmF5KSB7Ci0g
ICAgICAgICAgZC51c2hvcnRBcnJheSA9IG5ldyBVaW50MTZBcnJheShkLmRhdGEpOwotICAgICAg
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGQudXNob3J0QXJyYXks
IGdsLlNUQVRJQ19EUkFXKTsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRzVHlwZSA9
PSBnbC5VTlNJR05FRF9CWVRFICYmICFkLnVieXRlQXJyYXkpIHsKLSAgICAgICAgICBkLnVieXRl
QXJyYXkgPSBuZXcgVWludDhBcnJheShkLmRhdGEpOwotICAgICAgICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGQudWJ5dGVBcnJheSwgZ2wuU1RBVElDX0RSQVcpOwot
ICAgICAgICB9Ci0gICAgICAgIHRocm93RXJyb3IoZ2wsICJidWZmZXJEYXRhIEVMRU1FTlRfQVJS
QVlfQlVGRkVSIik7Ci0gICAgICB9Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICBmb3IgKHZhciBp
PTA7IGk8dmJvcy5sZW5ndGg7IGkrKykKLSAgICAgICAgZ2wuZGVsZXRlQnVmZmVyKHZib3NbaV0p
OwotICAgICAgdGhyb3coZSk7Ci0gICAgfQotCi0gICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9C
VUZGRVIsIG51bGwpOwotICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IG51bGwpOwotCi0gICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7Ci0gICAgdGhpcy52Ym9zID0gdmJv
czsKLQotICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwotICB9LAotCi0gIHVzZSA6IGZ1bmN0
aW9uKCkgewotICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgdGhpcy5pbml0KCk7Ci0gICAgdmFy
IGdsID0gdGhpcy5nbDsKLSAgICBmb3IgKHZhciBpPTA7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICBpZiAoYXJndW1lbnRzW2ldID09IG51bGwpIGNvbnRpbnVlOwotICAgICAgZ2wu
YmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRoaXMudmJvc1tpXSk7Ci0gICAgICBnbC52ZXJ0
ZXhBdHRyaWJQb2ludGVyKGFyZ3VtZW50c1tpXSwgdGhpcy5kYXRhW2ldLnNpemUsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7Ci0gICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShhcmd1bWVu
dHNbaV0pOwotICAgIH0KLSAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAhPSBudWxsKSB7Ci0gICAg
ICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCB0aGlzLmVsZW1lbnRzVkJP
KTsKLSAgICB9Ci0gIH0sCi0KLSAgZHJhdyA6IGZ1bmN0aW9uKCkgewotICAgIHZhciBhcmdzID0g
W107Ci0gICAgdGhpcy51c2UuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB2YXIgZ2wgPSB0
aGlzLmdsOwotICAgIGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKLSAgICAgIGdsLmRy
YXdFbGVtZW50cyhnbFt0aGlzLnR5cGVdLCB0aGlzLmVsZW1lbnRzTGVuZ3RoLCB0aGlzLmVsZW1l
bnRzVHlwZSwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGdsLmRyYXdBcnJheXMoZ2xbdGhpcy50
eXBlXSwgMCwgdGhpcy5sZW5ndGgpOwotICAgIH0KLSAgfQotfQotCi1GQk8gPSBmdW5jdGlvbihn
bCwgd2lkdGgsIGhlaWdodCwgdXNlX2RlcHRoKSB7Ci0gIHRoaXMuZ2wgPSBnbDsKLSAgdGhpcy53
aWR0aCA9IHdpZHRoOwotICB0aGlzLmhlaWdodCA9IGhlaWdodDsKLSAgaWYgKHVzZV9kZXB0aCAh
PSBudWxsKQotICAgIHRoaXMudXNlRGVwdGggPSB1c2VfZGVwdGg7Ci19Ci1GQk8ucHJvdG90eXBl
ID0gewotICBpbml0aWFsaXplZCA6IGZhbHNlLAotICB1c2VEZXB0aCA6IHRydWUsCi0gIGZibyA6
IG51bGwsCi0gIHJibyA6IG51bGwsCi0gIHRleHR1cmUgOiBudWxsLAotCi0gIGRlc3Ryb3kgOiBm
dW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5mYm8pIHRoaXMuZ2wuZGVsZXRlRnJhbWVidWZmZXIo
dGhpcy5mYm8pOwotICAgIGlmICh0aGlzLnJibykgdGhpcy5nbC5kZWxldGVSZW5kZXJidWZmZXIo
dGhpcy5yYm8pOwotICAgIGlmICh0aGlzLnRleHR1cmUpIHRoaXMuZ2wuZGVsZXRlVGV4dHVyZSh0
aGlzLnRleHR1cmUpOwotICB9LAotCi0gIGluaXQgOiBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ2wg
PSB0aGlzLmdsOwotICAgIHZhciB3ID0gdGhpcy53aWR0aCwgaCA9IHRoaXMuaGVpZ2h0OwotICAg
IHZhciBmYm8gPSB0aGlzLmZibyAhPSBudWxsID8gdGhpcy5mYm8gOiBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpOwotICAgIHZhciByYjsKLQotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgZmJvKTsKLSAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZEZyYW1lYnVmZmVy
Iik7Ci0gICAgaWYgKHRoaXMudXNlRGVwdGgpIHsKLSAgICAgIHJiID0gdGhpcy5yYm8gIT0gbnVs
bCA/IHRoaXMucmJvIDogZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0gICAgICBnbC5iaW5kUmVu
ZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmIpOwotICAgICAgY2hlY2tFcnJvcihnbCwgIkZC
Ty5pbml0IGJpbmRSZW5kZXJidWZmZXIiKTsKLSAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uo
Z2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgdywgaCk7Ci0gICAgICBjaGVj
a0Vycm9yKGdsLCAiRkJPLmluaXQgcmVuZGVyYnVmZmVyU3RvcmFnZSIpOwotICAgIH0KLQotICAg
IHZhciB0ZXggPSB0aGlzLnRleHR1cmUgIT0gbnVsbCA/IHRoaXMudGV4dHVyZSA6IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAg
IHRyeSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHcs
IGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIH0gY2F0Y2ggKGUp
IHsgLy8gYXJnaCwgbm8gbnVsbCB0ZXh0dXJlIHN1cHBvcnQKLSAgICAgIHZhciB0bXAgPSB0aGlz
LmdldFRlbXBDYW52YXModyxoKTsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdG1wKTsKLSAgICB9Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVB
Uik7Ci0gICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IHRleCIpOwotCi0gICAgZ2wuZnJhbWVi
dWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5U
RVhUVVJFXzJELCB0ZXgsIDApOwotICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kIHRl
eCIpOwotCi0gICAgaWYgKHRoaXMudXNlRGVwdGgpIHsKLSAgICAgIGdsLmZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJC
VUZGRVIsIHJiKTsKLSAgICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kIGRlcHRoIGJ1
ZmZlciIpOwotICAgIH0KLQotICAgIHZhciBmYnN0YXQgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICBpZiAoZmJzdGF0ICE9IGdsLkZSQU1FQlVGRkVSX0NP
TVBMRVRFKSB7Ci0gICAgICB2YXIgZ2x2OwotICAgICAgZm9yICh2YXIgdiBpbiBnbCkgewotICAg
ICAgICB0cnkgeyBnbHYgPSBnbFt2XTsgfSBjYXRjaCAoZSkgeyBnbHYgPSBudWxsOyB9Ci0gICAg
ICAgIGlmIChnbHYgPT0gZmJzdGF0KSB7IGZic3RhdCA9IHY7IGJyZWFrOyB9fQotICAgICAgICBs
b2coIkZyYW1lYnVmZmVyIHN0YXR1czogIiArIGZic3RhdCk7Ci0gICAgfQotICAgIGNoZWNrRXJy
b3IoZ2wsICJGQk8uaW5pdCBjaGVjayBmYm8iKTsKLQotICAgIHRoaXMuZmJvID0gZmJvOwotICAg
IHRoaXMucmJvID0gcmI7Ci0gICAgdGhpcy50ZXh0dXJlID0gdGV4OwotICAgIHRoaXMuaW5pdGlh
bGl6ZWQgPSB0cnVlOwotICB9LAotCi0gIGdldFRlbXBDYW52YXMgOiBmdW5jdGlvbih3LCBoKSB7
Ci0gICAgaWYgKCFGQk8udGVtcENhbnZhcykgewotICAgICAgRkJPLnRlbXBDYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICB9Ci0gICAgRkJPLnRlbXBDYW52YXMu
d2lkdGggPSB3OwotICAgIEZCTy50ZW1wQ2FudmFzLmhlaWdodCA9IGg7Ci0gICAgcmV0dXJuIEZC
Ty50ZW1wQ2FudmFzOwotICB9LAotCi0gIHVzZSA6IGZ1bmN0aW9uKCkgewotICAgIGlmICghdGhp
cy5pbml0aWFsaXplZCkgdGhpcy5pbml0KCk7Ci0gICAgdGhpcy5nbC5iaW5kRnJhbWVidWZmZXIo
dGhpcy5nbC5GUkFNRUJVRkZFUiwgdGhpcy5mYm8pOwotICB9Ci19Ci0KLWZ1bmN0aW9uIEdMRXJy
b3IoZXJyLCBtc2csIGZpbGVOYW1lLCBsaW5lTnVtYmVyKSB7Ci0gIHRoaXMubWVzc2FnZSA9IG1z
ZzsKLSAgdGhpcy5nbEVycm9yID0gZXJyOwotfQotCi1HTEVycm9yLnByb3RvdHlwZSA9IG5ldyBF
cnJvcigpOwotCi1mdW5jdGlvbiBtYWtlR0xFcnJvcldyYXBwZXIoZ2wsIGZuYW1lKSB7Ci0gIHJl
dHVybiAoZnVuY3Rpb24oKSB7Ci0gICAgdHJ5IHsKLSAgICAgIHZhciBydiA9IGdsW2ZuYW1lXS5h
cHBseShnbCwgYXJndW1lbnRzKTsKLSAgICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICAg
ICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAgICAgICB0aHJvdyhuZXcgR0xFcnJvcigK
LSAgICAgICAgICAgIGVyciwgIkdMIGVycm9yICIrZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIp
KyIgaW4gIitmbmFtZSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJ2OwotICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgIGlmIChlLmdsRXJyb3IgIT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aHJv
dyBlOwotICAgICAgfQotICAgICAgdGhyb3cobmV3IEVycm9yKCJUaHJldyAiICsgZS5uYW1lICsK
LSAgICAgICAgICAgICAgICAgICAgICAiIGluICIgKyBmbmFtZSArICJcbiIgKwotICAgICAgICAg
ICAgICAgICAgICAgIGUubWVzc2FnZSArICJcbiIgKwotICAgICAgICAgICAgICAgICAgICAgIGFy
Z3VtZW50cy5jYWxsZWUuY2FsbGVyKSk7Ci0gICAgfQotICB9KTsKLX0KLQotZnVuY3Rpb24gd3Jh
cEdMQ29udGV4dChnbCkgewotICB2YXIgd3JhcCA9IHt9OwotICBmb3IgKHZhciBpIGluIGdsKSB7
Ci0gICAgdHJ5IHsKLSAgICAgIGlmICh0eXBlb2YgZ2xbaV0gPT0gJ2Z1bmN0aW9uJykgewotICAg
ICAgICAgIHdyYXBbaV0gPSBtYWtlR0xFcnJvcldyYXBwZXIoZ2wsIGkpOwotICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICB3cmFwW2ldID0gZ2xbaV07Ci0gICAgICB9Ci0gICAgfSBjYXRjaCAoZSkg
ewotICAgICAgLy8gbG9nKCJ3cmFwR0xDb250ZXh0OiBFcnJvciBhY2Nlc3NpbmcgIiArIGkpOwot
ICAgIH0KLSAgfQotICB3cmFwLmdldEVycm9yID0gZnVuY3Rpb24oKXsgcmV0dXJuIGdsLmdldEVy
cm9yKCk7IH07Ci0gIHJldHVybiB3cmFwOwotfQotCi1mdW5jdGlvbiBnZXRHTENvbnRleHQoY2Fu
dmFzKSB7Ci0gIHJldHVybiBjYW52YXMuZ2V0Q29udGV4dChHTF9DT05URVhUX0lELCB7YW50aWFs
aWFzOiBmYWxzZX0pOwotfQotCi0vLyBBc3NlcnQgdGhhdCBmIGdlbmVyYXRlcyBhIHNwZWNpZmlj
IEdMIGVycm9yLgotZnVuY3Rpb24gYXNzZXJ0R0xFcnJvcihnbCwgZXJyLCBuYW1lLCBmKSB7Ci0g
IGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIHZhciByID0gZmFs
c2U7Ci0gIHZhciBnbEVyciA9IDA7Ci0gIHRyeSB7IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsg
Z2xFcnIgPSBlLmdsRXJyb3I7IH0KLSAgaWYgKGdsRXJyICE9PSBlcnIpIHsKLSAgICBpZiAoZ2xF
cnIgPT09IHVuZGVmaW5lZCkgewotICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogVU5F
WFBFQ1RFRCBFWENFUFRJT04iLCBuYW1lLCBmKTsKLSAgICB9IGVsc2UgewotICAgICAgdGVzdEZh
aWxlZCgiYXNzZXJ0R0xFcnJvcjogZXhwZWN0ZWQ6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2ws
IGVycikgKwotICAgICAgICAgICAgICAgICAiIGFjdHVhbDogIiArIGdldEdMRXJyb3JBc1N0cmlu
ZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0g
IHJldHVybiB0cnVlOwotfQotCi0vLyBBc3NlcnQgdGhhdCBmIGdlbmVyYXRlcyBzb21lIEdMIGVy
cm9yLiBVc2VkIGluIHNpdHVhdGlvbnMgd2hlcmUgaXQncwotLy8gYW1iaWdpb3VzIHdoaWNoIG9m
IG11bHRpcGxlIHBvc3NpYmxlIGVycm9ycyB3aWxsIGJlIGdlbmVyYXRlZC4KLWZ1bmN0aW9uIGFz
c2VydFNvbWVHTEVycm9yKGdsLCBuYW1lLCBmKSB7Ci0gIGlmIChmID09IG51bGwpIHsgZiA9IG5h
bWU7IG5hbWUgPSBudWxsOyB9Ci0gIHZhciByID0gZmFsc2U7Ci0gIHZhciBnbEVyciA9IDA7Ci0g
IHZhciBlcnIgPSAwOwotICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyByPXRydWU7IGdsRXJyID0g
ZS5nbEVycm9yOyB9Ci0gIGlmIChnbEVyciA9PT0gMCkgewotICAgIGlmIChnbEVyciA9PT0gdW5k
ZWZpbmVkKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBVTkVYUEVDVEVEIEVY
Q0VQVElPTiIsIG5hbWUsIGYpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJhc3Nl
cnRHTEVycm9yOiBleHBlY3RlZDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArCi0g
ICAgICAgICAgICAgICAgICIgYWN0dWFsOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVy
ciksIG5hbWUsIGYpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgcmV0dXJuIHRy
dWU7Ci19Ci0KLS8vIEFzc2VydCB0aGF0IGYgdGhyb3dzIGFuIGV4Y2VwdGlvbiBidXQgZG9lcyBu
b3QgZ2VuZXJhdGUgYSBHTCBlcnJvci4KLWZ1bmN0aW9uIGFzc2VydFRocm93Tm9HTEVycm9yKGds
LCBuYW1lLCBmKSB7Ci0gIGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9
Ci0gIHZhciByID0gZmFsc2U7Ci0gIHZhciBnbEVyciA9IHVuZGVmaW5lZDsKLSAgdmFyIGV4cDsK
LSAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyBnbEVyciA9IGUuZ2xFcnJvcjsgZXhw
ID0gZTt9Ci0gIGlmICghcikgewotICAgIHRlc3RGYWlsZWQoCi0gICAgICAiYXNzZXJ0VGhyb3dO
b0dMRXJyb3I6IHNob3VsZCBoYXZlIHRocm93biBleGNlcHRpb24iLCBuYW1lLCBmKTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgaWYgKGdsRXJyICE9PSB1bmRlZmluZWQpIHsK
LSAgICAgIHRlc3RGYWlsZWQoCi0gICAgICAgICJhc3NlcnRUaHJvd05vR0xFcnJvcjogc2hvdWxk
IGJlIG5vIEdMIGVycm9yIGJ1dCBnZW5lcmF0ZWQ6ICIgKwotICAgICAgICBnZXRHTEVycm9yQXNT
dHJpbmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICB9Ci0gIHRlc3RQYXNzZWQoImFzc2VydFRocm93Tm9HTEVycm9yIiwgbmFtZSwgZik7Ci0gIHJl
dHVybiB0cnVlOwotfQotCi1RdWFkID0gewotICB2ZXJ0aWNlcyA6IFsKLSAgICAtMSwtMSwwLAot
ICAgIDEsLTEsMCwKLSAgICAtMSwxLDAsCi0gICAgMSwtMSwwLAotICAgIDEsMSwwLAotICAgIC0x
LDEsMAotICBdLAotICBub3JtYWxzIDogWwotICAgIDAsMCwtMSwKLSAgICAwLDAsLTEsCi0gICAg
MCwwLC0xLAotICAgIDAsMCwtMSwKLSAgICAwLDAsLTEsCi0gICAgMCwwLC0xCi0gIF0sCi0gIHRl
eGNvb3JkcyA6IFsKLSAgICAwLDAsCi0gICAgMSwwLAotICAgIDAsMSwKLSAgICAxLDAsCi0gICAg
MSwxLAotICAgIDAsMQotICBdLAotICBpbmRpY2VzIDogWzAsMSwyLDEsNSwyXSwKLSAgbWFrZVZC
TyA6IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0dXJuIG5ldyBWQk8oZ2wsCi0gICAgICAgIHtzaXpl
OjMsIGRhdGE6IFF1YWQudmVydGljZXN9LAotICAgICAgICB7c2l6ZTozLCBkYXRhOiBRdWFkLm5v
cm1hbHN9LAotICAgICAgICB7c2l6ZToyLCBkYXRhOiBRdWFkLnRleGNvb3Jkc30KLSAgICApCi0g
IH0sCi0gIGNhY2hlOiB7fSwKLSAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rpb24oZ2wpIHsKLSAgICBp
ZiAoIXRoaXMuY2FjaGVbZ2xdKQotICAgICAgdGhpcy5jYWNoZVtnbF0gPSB0aGlzLm1ha2VWQk8o
Z2wpOwotICAgIHJldHVybiB0aGlzLmNhY2hlW2dsXTsKLSAgfQotfQotQ3ViZSA9IHsKLSAgdmVy
dGljZXMgOiBbICAwLjUsIC0wLjUsICAwLjUsIC8vICtYCi0gICAgICAgICAgICAgICAgMC41LCAt
MC41LCAtMC41LAotICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgLTAuNSwKLSAgICAgICAgICAg
ICAgICAwLjUsICAwLjUsICAwLjUsCi0KLSAgICAgICAgICAgICAgICAwLjUsICAwLjUsICAwLjUs
IC8vICtZCi0gICAgICAgICAgICAgICAgMC41LCAgMC41LCAtMC41LAotICAgICAgICAgICAgICAg
IC0wLjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgIDAuNSwKLQot
ICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwgLy8gK1oKLSAgICAgICAgICAgICAgICAt
MC41LCAgMC41LCAgMC41LAotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUsCi0gICAg
ICAgICAgICAgICAgMC41LCAtMC41LCAgMC41LAotCi0gICAgICAgICAgICAgICAgLTAuNSwgLTAu
NSwgIDAuNSwgLy8gLVgKLSAgICAgICAgICAgICAgICAtMC41LCAgMC41LCAgMC41LAotICAgICAg
ICAgICAgICAgIC0wLjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgLTAuNSwgLTAuNSwg
LTAuNSwKLQotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUsIC8vIC1ZCi0gICAgICAg
ICAgICAgICAgLTAuNSwgLTAuNSwgLTAuNSwKLSAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIC0w
LjUsCi0gICAgICAgICAgICAgICAgMC41LCAtMC41LCAgMC41LAotCi0gICAgICAgICAgICAgICAg
LTAuNSwgLTAuNSwgLTAuNSwgLy8gLVoKLSAgICAgICAgICAgICAgICAtMC41LCAgMC41LCAtMC41
LAotICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgLTAuNSwKLSAgICAgICAgICAgICAgICAwLjUs
IC0wLjUsIC0wLjUsCi0gICAgICBdLAotCi0gIG5vcm1hbHMgOiBbIDEsIDAsIDAsCi0gICAgICAg
ICAgICAgIDEsIDAsIDAsCi0gICAgICAgICAgICAgIDEsIDAsIDAsCi0gICAgICAgICAgICAgIDEs
IDAsIDAsCi0KLSAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgMCwgMSwgMCwK
LSAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgMCwgMSwgMCwKLQotICAgICAg
ICAgICAgICAwLCAwLCAxLAotICAgICAgICAgICAgICAwLCAwLCAxLAotICAgICAgICAgICAgICAw
LCAwLCAxLAotICAgICAgICAgICAgICAwLCAwLCAxLAotCi0gICAgICAgICAgICAgIC0xLCAwLCAw
LAotICAgICAgICAgICAgICAtMSwgMCwgMCwKLSAgICAgICAgICAgICAgLTEsIDAsIDAsCi0gICAg
ICAgICAgICAgIC0xLCAwLCAwLAotCi0gICAgICAgICAgICAgIDAsLTEsIDAsCi0gICAgICAgICAg
ICAgIDAsLTEsIDAsCi0gICAgICAgICAgICAgIDAsLTEsIDAsCi0gICAgICAgICAgICAgIDAsLTEs
IDAsCi0KLSAgICAgICAgICAgICAgMCwgMCwtMSwKLSAgICAgICAgICAgICAgMCwgMCwtMSwKLSAg
ICAgICAgICAgICAgMCwgMCwtMSwKLSAgICAgICAgICAgICAgMCwgMCwtMQotICAgICAgXSwKLQot
ICBpbmRpY2VzIDogW10sCi0gIGNyZWF0ZSA6IGZ1bmN0aW9uKCl7Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCA2OyBpKyspIHsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDApOwotICAg
ICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMSk7Ci0gICAgICBDdWJlLmluZGljZXMucHVzaChp
KjQgKyAzKTsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDEpOwotICAgICAgQ3ViZS5p
bmRpY2VzLnB1c2goaSo0ICsgMik7Ci0gICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAzKTsK
LSAgICB9Ci0gIH0sCi0KLSAgbWFrZVZCTyA6IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0dXJuIG5l
dyBWQk8oZ2wsCi0gICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUudmVydGljZXN9LAotICAgICAg
ICB7c2l6ZTozLCBkYXRhOiBDdWJlLm5vcm1hbHN9LAotICAgICAgICB7ZWxlbWVudHM6IHRydWUs
IGRhdGE6IEN1YmUuaW5kaWNlc30KLSAgICApCi0gIH0sCi0gIGNhY2hlIDoge30sCi0gIGdldENh
Y2hlZFZCTyA6IGZ1bmN0aW9uKGdsKSB7Ci0gICAgaWYgKCF0aGlzLmNhY2hlW2dsXSkKLSAgICAg
IHRoaXMuY2FjaGVbZ2xdID0gdGhpcy5tYWtlVkJPKGdsKTsKLSAgICByZXR1cm4gdGhpcy5jYWNo
ZVtnbF07Ci0gIH0KLX0KLUN1YmUuY3JlYXRlKCk7Ci0KLVNwaGVyZSA9IHsKLSAgdmVydGljZXMg
OiBbXSwKLSAgbm9ybWFscyA6IFtdLAotICBpbmRpY2VzIDogW10sCi0gIGNyZWF0ZSA6IGZ1bmN0
aW9uKCl7Ci0gICAgdmFyIHIgPSAwLjc1OwotICAgIGZ1bmN0aW9uIHZlcnQodGhldGEsIHBoaSkK
LSAgICB7Ci0gICAgICB2YXIgciA9IDAuNzU7Ci0gICAgICB2YXIgeCwgeSwgeiwgbngsIG55LCBu
ejsKLQotICAgICAgbnggPSBNYXRoLnNpbih0aGV0YSkgKiBNYXRoLmNvcyhwaGkpOwotICAgICAg
bnkgPSBNYXRoLnNpbihwaGkpOwotICAgICAgbnogPSBNYXRoLmNvcyh0aGV0YSkgKiBNYXRoLmNv
cyhwaGkpOwotICAgICAgU3BoZXJlLm5vcm1hbHMucHVzaChueCk7Ci0gICAgICBTcGhlcmUubm9y
bWFscy5wdXNoKG55KTsKLSAgICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobnopOwotCi0gICAgICB4
ID0gciAqIE1hdGguc2luKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7Ci0gICAgICB5ID0gciAqIE1h
dGguc2luKHBoaSk7Ci0gICAgICB6ID0gciAqIE1hdGguY29zKHRoZXRhKSAqIE1hdGguY29zKHBo
aSk7Ci0gICAgICBTcGhlcmUudmVydGljZXMucHVzaCh4KTsKLSAgICAgIFNwaGVyZS52ZXJ0aWNl
cy5wdXNoKHkpOwotICAgICAgU3BoZXJlLnZlcnRpY2VzLnB1c2goeik7Ci0gICAgfQotICAgIGZv
ciAodmFyIHBoaSA9IC1NYXRoLlBJLzI7IHBoaSA8IE1hdGguUEkvMjsgcGhpICs9IE1hdGguUEkv
MjApIHsKLSAgICAgIHZhciBwaGkyID0gcGhpICsgTWF0aC5QSS8yMDsKLSAgICAgIGZvciAodmFy
IHRoZXRhID0gLU1hdGguUEkvMjsgdGhldGEgPD0gTWF0aC5QSS8yOyB0aGV0YSArPSBNYXRoLlBJ
LzIwKSB7Ci0gICAgICAgIHZlcnQodGhldGEsIHBoaSk7Ci0gICAgICAgIHZlcnQodGhldGEsIHBo
aTIpOwotICAgICAgfQotICAgIH0KLSAgfQotfQotCi1TcGhlcmUuY3JlYXRlKCk7Ci0KLWluaXRH
TF9DT05URVhUX0lEID0gZnVuY3Rpb24oKXsKLSAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKTsKLSAgdmFyIGNvbnRleHROYW1lcyA9IFsnd2ViZ2wnLCAnZXhwZXJpbWVu
dGFsLXdlYmdsJ107Ci0gIEdMX0NPTlRFWFRfSUQgPSBudWxsOwotICBmb3IgKHZhciBpPTA7IGk8
Y29udGV4dE5hbWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGlmIChjLmdldENv
bnRleHQoY29udGV4dE5hbWVzW2ldKSkgewotICAgICAgICBHTF9DT05URVhUX0lEID0gY29udGV4
dE5hbWVzW2ldOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgfQotICB9Ci0gIGlmICghR0xfQ09OVEVYVF9JRCkgewotICAgIGxvZygiTm8gV2ViR0wgY29u
dGV4dCBmb3VuZC4gVW5hYmxlIHRvIHJ1biB0ZXN0cy4iKTsKLSAgfQotfQotCi1pbml0R0xfQ09O
VEVYVF9JRCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvM3gzLnBu
ZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzLzN4My5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDZjZjFlNzQ0N2EzYTlhY2E0MGE4MDM4M2I3NTUwMDE3ODk5NDFlNmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjgwNgp6Y21WPFMzSkxYelApPGg7M0t8TGsw
MDBlMU5KTFRxMDAwOTMwMDA5QjBzc0kyKi05ZWwwMDAwOWE3YkJtMDAwWFUKejAwMFhVMFJXbnU3
eXRrWVBpYUYjUCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1veSlYSC0rXjdDcmFnCnpe
Zz5JQmZSc3liUVdYZHdRYkxQPjZwPHo+QXFmeWxoI3tmYjY7Wih2TU1WU34kZUBTPWoqZnRnNjtV
aDxpVkR+Vgp6PFJQTXRnUUpMdyVLUERhcWlmY0BfdlgkMXdid3I5dG47MC0mai1LPTQzPGJVUThq
PUpzWGB0UjtEZzcrI15LfkgKekshRk0qWn56YnB2dCVLMntVWlNZXzxsUypEPFolTHo1b0d1KCtk
YXl6KWhSTEZkVD5mNTkmZ2hUbWdXRDBsOypUCnpJNzxrQzZhWVlhanpYcFlLdD0oOG90UCQ1MEg2
Y19WOVI0LTt7WkBDMEFNRzc9RjxSeG8lb3IxMFJVVCtBciUzagp6a3BMaFFXciMhb1hnZElgJnNL
Xj4wOVlecDZsUDFySVJNeCMwNUN+Y1c9SF9BdypiSi01RFQmWjJuK3gpUUhYXnAKejAwZXNnVjh8
bVFjbVJaJTAyRF5AUzNMMTZ0YE8lYzAwNE5Jdk9LdllJWW9oNjJyWTMzUzY0MGBEOSVZMkQtPD9p
CnowJTRqIUYyWkA0ODhVJTE1OCg2NjAwNXdvNiVwV3JeWmpfdjR6QUE1SGpjSXFVb0dtdDJMQj5y
ViZuZWgmI1ExaQp6MDA3fjFlJG9DY0ZTOG5lSXxoSmx7LVAhQjFaWjlocG1xMClYMGlgSndFJj4k
K0U/PiVfPGxTKk1XSytuKzFjZ2YKejxrKDhZTFIoP1ZTQUc2eCFlNzh3e2NRUHVKcEF8ZDtKKUd7
ZmloaXpNK0VyYiFwIXRjcjV3K2EzNH4oWT04czRHCnp3K3NMTDluJkpqTm4qS0pEaXFeVTVeO2Ax
bnZDLUByNlAkIWt9MVV7KCpJPVEtekB0QktIb0l9dXhkVTVkeXlAdQp6VTFKMEdPRDdPbWJpbV5H
MDA4cDRaXjZfazJtXnA8Z1c9RDJ8TDtIak4xIUREZk0hWE9hUjJ+Ykw/a1gkJUNrU20KejJtazs/
cG4pb3xLXnllSjclYWRCOUtpK0whMytGZ0hpU1lYI0tKLWxMSkRNbjlDQmJPdGIjJSloUnZgWURx
dF92CnpLcGl4fFFEfXlmYTFKaVFSayNqNGExWiluMiVmPHh5bnpWPkxDNlJiVklrVXgwYitfK0Jh
UjNjblQ3WnYhQUp4Vwp6aXpGYiloIWp5R09PWjg1RjthP0RBWFB7bUA7ITBfSWZxPEV4eyo3YDA1
WEY3aFArMkhsITNCUUo9NkBmTCVGQ28KejhpWW9vMygjYkFGYEFEU3BxdFFndj5IOChIbGdSeHQ3
czN9azNLYGtGdT4+LTJRJFFNRmZQVyFMYXtoMzM2bz5YCnp1X0NNdHRIdjZ6UjsmWk5pUz1YOHYz
Q1IjZmtuVXhIVXhKPEFZbVJzTkxXbCpQU3tBT0FSSHQjNSF3a2kyP0s7dAp6IVkzaz1zN3RnYXgp
SiVyNy1CTHBoZ2U3fkJpMGcrNkU2XlpoKHA5VEJvY3szR0FGcl4wIWd1P1JNSGFDTSQmRmwKekJr
MyV1bj4wdW9CYV9NNldOV2VxSWd+NlFFNjljOW8jZXloR3ZwaU9BQFctYW9uazw3cjEoP2ZDe29J
NU4qVSE0Cno8dXY2Nld0Y0tTUmltMHgtS2UyZDVqQnJtTGFteztRbTt7bXMxcjFHbm1Oc2I3RC1F
YHQpaTlGOGZYYDJfaTMtXwp6Ymg7N1VsXiN4KSZ7eHZTPXx8fDc9bVllMzM9TWBBZ1U1KHhDPmZn
PTJOLTc9Y05uampPcnt5cml5Nm1NRmdHI2wKem5DRj1mblF2OENEeisrbzZfTHNjbH1lUStsXlpI
QVJIPj9fc0B8IyNScjZLTFJGQTElUSs9KlJSV25vTHNSYDdVCnp0NXZGPFEwcjQwUSlqNj1zRTRY
JnNCY3QxcTwmZmJpM1ZCMk92NnRAcSowKTtVKm8qU0FQWnZ8dnZAMmFZWW5UMAp6YiU4YStDYjct
Z2UwRDBrbkVmNVFpI0A4VHAqY2V7Tjs2bHBRdUNCJUtMX0tPYXJtNWNQNl84SXI8ZTE3aXJ5Nk8K
ekRkSCZgclpofnNGPWJxOXMrTzBRU2dTfkBRTDlKbXkqOTR4cj02eX5NWX4hMWZldH4oTisoPD1N
YHdARDEpYitwCnoqO0MhODNhMXVMSnYjTlNFfjt5Izg9PD5JY2ZXM0A/d0Zwd1VWeHJWWj5RZFF6
MzJLSWVKfWt+e2NaWkVeK3lhPwp6MkQxeiMySE9uSTcoQiVfYWM/e3dGVVE7UVFBMXRCS3RyV3Jt
MF8zUmdwcys/SmZxYntqWWJjUVh+dGFSQjsjJHkKelpOe1N9MXx9Z1VPSEp4Yz93VjNmeHV6K21K
NGAhRiRJWjttcVJyTnNISmQjIypEfmp1PWJQNz8tP3Z+fGN2PnZCCnpzSjZJZU53Vlp4cmRqVGB5
bCNiQklhI0d4UmEjeE1NeTtLI0NEeXlHeVFkTVN4bFdUI3REZT9wIT81d1QkK29HdAp6OEw7S3Ay
SFVRLVpNSj0zWEpRdjt4NWNpKj92dVRmZVkkOyh7WEdXX2h1SUZSOWE8ZkpiRl58NEkjeFF+biRE
Yz0KektZaGpZbWd6NU5Ta0RtOCpmWm17NlUhO1lYYE5HPig/QDMpWFNzOE9eTjVSeU9NPVRUbXAo
Mz04Xit6cHoycilDCnpePkpPe2RlWmZzbzNvcTM/V28oWT9sJGdlP3VYbzslcnVgVm8+Pzw8KDhJ
Xz47OEVxI0tNUzlnRmwqbmVlb3NTQgp6Zm9IWW5CUUlrd2t5b3dQdSh6ZG1zYHB7PDdlNGtyYS1a
V3E8MipPc0dUdkVWJXMwVGQkaFhUKyEqOEJuaDJLTWUKekJtWlJvZGpIVj9yK181Xlg5SjBXTDRq
S1dgfWxmJUEtfDQ0SUBATFR2ZjFySGpHKHplNit3QEp0JUJ2anRzIVgwCno/MnhTP192ZV8tazxN
dWpnOzBMeiozYnVHPTMkRyZlaGVwdGhsTiokS2FPeVNTUV5uV21vPDBNKyhVRVVNRVhSUQp6TUJi
WmNGOzYrS0VsTT5pS0JfS2lKbFokOUdgY149RUBvTkcpbVdXYU5vLTNUSVc4KSRIZzBVYi1+OD9L
aHZKPiQKejMqJm5pbUBtaihhQ3hFNSF0e2x3N081XjBFSU83ek9vJmM2bDwrfGlEeVNCV0NHcnpA
QzV7U3QhWDNoQUF9YFQ0CnooVExiWFRxKyg7QDw9TDhkWG5zc3lmdHx3I1dTVFc8KyszPnNnUyUo
NE5UcGVJLVZBcWJ8N3NzSnZ6TkhnT1pWdQp6YVlDdmdPX1Ixfj5TeUw9Y0ZVfH5nfGh5fFppfX1z
OStkfmxZcU9CNzF6OVokd25DPXBSOVl6NERoSU0+V21qZ3UKeiY1Nm82bWFDcEMmRiMjeSVHOzFQ
b2JSOWk/R25OZztnWXRjaEQlcDE5YSFlUXRaRiYzSmFLdjMzZ1o8OER+NDdFCnp0VVMxaXdrbURh
UHBqPSRtIyUpakNWRVk0Zm5MR05nMkEtYFl3SFZEM2d2fTs+KWhBdlR+QW1xUz5McmBgaTdrdwp6
Sns1X0l0YHlyQm1sYzI1REJPN0U4OzVWb3puUj5XdzVoQWF4biQyfihxYCVBLVl1UzY0d2tCeT05
ZG1gNGNYZVgKejRjfUlAP2UrRlcrYkBeUkRCSFYod25NcTJ6ZFgzU1d2OXVgJXt4Qy1xKlV9JmBj
eVhWKCVyUlQqWjZNSD9pK2kmCnpfQjhDKCtnclQle1hXVVErZkBOb1AxUj1BVyYyNnt2LWR4KWlL
Xi1ObWl1ajh0eGohbT9aKlNzMU57ZGg0en0wMQp6KVlUbypKeWNTVSkrXzVyNCN5dzl7KztpNEVl
JHBlUmdJais7djtaR2RGMUskM0UlZX40TGFJKGpDLXUlMmgkJlIKejljTFhjWUNAWHdubnMmYm4p
X1F+VGU/cm9LR0R8ZC1nXjg7K2FDe3tHKDFeKE83bTM3WTEtKzYpMDFjTiZ5MWF3CnpvcWN7VGBQ
XlhKcVBCYklXNnN9ZDR7el9mNU9tP3ZNZ05RRUpHP3YyVD1LWWReME0zSTZJWnhibnkpJXZaUiZM
RAp6SnBQbEBQc2g4UXlQQkBLVHgrQFJkY0MhS1g3fWtFbztTfGpedTJsVTdYUX1PbztmfDt6NExs
K19yPkAxLXhsM3wKemF3cS1IJWUmY2tDK0BBaFByUDZCSzx6PTxMKjBrZktVQENYKnplcWJZUVQ0
KF5VPlQjX1hkVDcmO0Y3MWp9Sm95CnprQ342bGg3RUA2bztXQF5JcFJOWntwdEx0TChnUS1DWX40
bXFXO1VTN1p4dm1ffEB5eiZlNTNCcF9sVFBsZlB8egp6clR5eF8+bHZAeCM9XiFQelI3cXFGPCRn
bWB8WkpaKzs8KUNxdSZvdDxhezgxREYwfnJ2R3I1WHJ+OHVgbGF2MWgKejFETnl0Vj4yej0wMDAw
V1ZAT2c+MDA0Uj0wMDRsNDAwODtfMDA0bUwwMDRDYDAwOFA+MDAyNmUwMDArbmwzJkZ9CnowMDAw
WE5rbDxaYy1rei11PmstODIqVil5fEl1LWdqZkVLTDFCd0Z4MFJSNjMwRFJSNGB7UGFJTDt3SCkw
NypxbwpJTTZOPCRmK2t4dWlVMHJyCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvYmx1ZS0xeDEuanBnIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvYmx1ZS0xeDEu
anBnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzBiYmIwMjE5ZGI5MTAzNWQ4ZTM3
ZDU2YTY1NDk4YzEwODUxYjZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDMxOQp6
Y21leD08TnBIJjBXVVhDSHdII1ZNZ3xXY1djZEcmTEJfYyNITClaJE1XSDtpQnR5YTcoPkZqTktU
amMxIThiQWEKenw3YHxta1huaVckUGtKUTBCUWJ6ZkkqT2hmc3VpY25OZio+TnN5NlFrbiNUITIy
cjVuNypHS2hQKl85JlU2Y1cmCm03LSRUdFNgTSZjS3tRY2RweGsyTVZQKnRjIXp7PlAmKEsjT3t5
fV5IfEM8MVpCXytOOQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2J1
Zy0zMjg4OC10ZXh0dXJlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2J1Zy0zMjg4
OC10ZXh0dXJlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc4Y2ZlNzk5Nzli
ODUyMDJiZWMxOWI4YTQ1NGU2NjkzNjFlZThjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0
ZXJhbCAxMDA1MAp6Y21YQXZjUlpXbCtzN2tUP0FVdmNxSDM0NFIlfUlXVXV0aCFkKTN+MVE9PTVJ
cyNjQktkbHByQEN+OEhpNihlWkcKel9OMmUoazMwQUlFM2YtcCpFIWV1VDxfMEcoOXUjUUEhSHh+
MDAxTn0pUmdvOTA0JlQ5enlgdkB7TjdjNCtReTZsCnpGTz1qQnswb2prZzBqcEUzeTw1VHBaUWo2
XzApN3F0P2dfNSRPYkU8cn5CWkA8MEBoVSZyJjBjQSE9TEI2QkF5PAp6UV59bl54I3sldiNaeGB1
V3AtY2xVVSpPYEpCbykoRTYrdEIyP3U8PldsREVSLTV1OWU+bF5OZFR4e0x6aEE1Q3sKeiZhQXp6
PmxFQkRYe3FrS28/cEs/e01HMEZhRGwhI0dGSmpjXyNzS3gyT2YmakAwVXBZQGxXOCl4Mk1Jb1Vs
QF8zCnpfdE5hcVklVFQ5ND9OTkZ3bGFORGF4JDhVZkw1MWZ1WnZHRl5RU0VQTGhzSiU+Z3JuY3M8
SF8we1JWSnBVMGpAPAp6NXVGRnNIS0JJe1dURDhzZWZJO1lPTVE3T1dQeHtyMiM/cl4tQmJyeEcr
USo3e1JQRSlgQDkkTHpEQTgyeW5yc0UKemUyazJZUl94XjdZZ00zSFRVK2FAPF53cEdVSXc+Sk19
dXtQaW8hXzBzYDhYI3hoeXlTSVcoO0t1UXY0ZGJoSTgyCnpLQnB4YF41bkBBUD5lIXgpKncyQjNF
fX1MRD1SfXZsZkFiTHlgcm8hczwtZ0hTYXgmfD0jcFokWjFrRlRtKz8+OQp6NzR3SVlqaF5laVBy
TlYtbnRrVXhYYTMkb2U4cHZNbEtPMGZWKTFre2tjeHU2KHBrK1ZYXyN8TyV2NXd2N1hDKUoKekBv
dj49KnA9flZII1kjakF7ZXxmKyllKV9XbTQ+JmBLRnEybT1wclBJO3psSFAqPEg9ejNPYSFlNUtE
PVZqQHwpCnpZV3MjYk9TSWVCP2ZnQGRSPyVXcmJ1fSR2JXh5Ul5qfShvTXhwdiF4K21xSVVQN3Nq
dGZwLWh+I3JQeyhaYDFWJQp6cWcoc3RaZjVVVG5VMz9gWVVeJkp4O0BfbE48dnIjUWpTeGlReSlM
dEh0eT9kajx2fWdHT2huNVlCdTl1O3ZpdUUKejRKVzkyTFRwT3pIPD19Q21BbkNLdmdvKE9RcHVA
Ji0mTjE2OTMxNHxJYz58cFcmOElzKUZ+PmJXNz9xPE53aCtFCnpmVUklKnJCOyZaYjlleFk9M0kw
ZyF2Q21jNXFYV01qfW5PO1dlR2FgdHw4Uihfd31vc1dkb19yVEJMaVF8RVpDWAp6OF5YZlBuM1Zx
JFpqWVZLPHw9KW1UeFprUDtDXiprejI5ZnM+OFgzZW1AbiM2WGdZeSRXJFZ3dElnZXVIcD4ldEsK
em1+Tn5VdWRlIXpgXyU8biVVPUlBcDlLPVkzY2R6MkJOPUh1IV96Z1VLZzN6eSFYdW1YSmkkWkpi
filndEd2aiU+Cnpsa1VxWCtSdHZVM3M7Xk1xVk94OWhBI1JKSilwTUYoUzYtRkdidTFfWWJoMyYo
VXtsRT9ZOU1mQXJDdl8oPkdldQp6RVJxfTxAbnpOMzZ9KkluaHYrYEh3YShPJmBAZzN4TVZHKFUo
aDFuZSZ2Sl5ZK0tJZDNvPTdpdFY0WXZjJjM5TjIKeiNiej8jTjM7JDMrJHNFOHhrPEFUPStsSWRN
c0YkVHVvaERkcVdZZkBXdTQyMFVVYSM/cnhncXFaK0JHSXRyUXFQCnpiVUx4KEBjJkV1Jn0tZV4q
SCktY0RodmJ5SiVBaXM7bjs4LXN8OXJBVmw7VTtfVWJNIzg4ejdiK3VRcDs9KVRaWgp6UzshYFop
cCpWbU42V1glX1MlenFWKSZMMSpOZnpZRio8P3shYXBsWXJIbEk/PndpO1hgeHBidzY3Z3RhUDU4
PCMKekUtNntvKlQtNlB8Rl9+e1l3U19jP2FXe2Q1JkIhPiNIVzBhTVBPfikqMjNEfGMqeXJuZVox
Kmk0O2oqO3Z3ZENgCnpmQ3NXWHFVOCRhclB8S0hGM1hAMHUhSjJlXkclVjtsYj5ecUxjWkhWdjVh
e0x4byZnMysheTNxeUl5N0t2RFRLZQp6X005MnpFfWQoNmF8WjEjYGBzWk5PKkhQZXNsKGNPcU5z
eCgzREtiPGJCS3E+Mz1KSXh7ayg2IXFnPUVJSyt0UGMKekVNZ045dmtUdzlscCtsfFNPYFVeQz9W
S2AyP2VqTC1yKk9tQENMPEdDayt6PSlaVHJpUnhUTWh2bDh7YWAxYGtjCno8UkVgam0tR3FPS3Np
JitIMmppRDZFT09yPnNtd2I/UyZ5ISk2ZThNJnMqQC00WjdhbSk+aEpjMUBCMlZvUitabwp6azcp
RD5fU1EhKFh8aVUkSll+UGApfUp6e2RDUSs2d19BXiZ6SEEhV1kreV91dTxLentwLTxNTXVSRFYz
VT00REUKelE+IUtXJWQxYnRmV3B1alBse3B5OWhOdH1JO1YySChzczBPS3wwe1NUOVghJklxfjNx
NE5EK2MjczFQRGBLWS04Cno5VyVLVWg8dnt7QClpcyhrbE1vYk07OWNDbkM5Y0liZCVwYS1vVnt1
UWRDcllpQyo9ZHtAISljZCgtTHhJUnU2YQp6akp4bmhaOH4qZG5yTSVQKXJIeURCSnxzM1YtVUph
cSVtN3AkZEk/OSVCJXg5dn5ORUxxVyU7eipLTCo1SkF6aSkKemopJkxSO141d2xXfCEmbGtATE5R
MCVxYzVVKXAwfktMOF5tZyNPNWw/JGtCQXU2cmBTSkN5NHF7ZkFXZl5KN0AhCnozaSpIM1M/eHF+
WGs5QV87P1lSIVNMd0o+Nlo4Zk4/NFBRd3hOdyhrRjJ8OyY3RExPUUY2TXB6KUxCdV5JV2o8KAp6
REtvOClDWm19KT9fMkMpOUhSO01eaGs/ezxFdVB+OyU4Q3NyNCp0YCVFTEBTZ0BnUE42S1BrOCZi
SzAka2l4PmsKenFqU0xyWCl9SkUySTxAMDRRUTI8O3dBQVklQiV6NiQhOGJwbD9rPUYpJCY4SG1G
bCQ5IXwqS3gxYCshYUw2XmQzCnoqQFYyaUB3fGpLQzE2MUQ/Kk9fTTBWKWdzTy1fPkshOzIxREdp
MFVgaGJ9PTVTZXtrVz1hNUpjeyMtJn0yblc0UAp6VWlKdjZucTFeVEZHezdSUkNRa2pqMEU9WDUw
blo5aHVXQXoxcG1MaGtGdGl7Q1NvY2ZSKVAxQCZAO05PayhyeHUKek1gV2Qrb0o7cFchKnEmdFIw
eVpnKjIhKU5EVFJqWk9nbTElRWZ+NnhnNG8rTFpnWkx+VyZaR0t4dzwrcTsqbGA1CnphY1dWaC1Q
ViskYzI5I0p3PkAjKUQ3O2hGclJ+amFze1I2JjdFUjhkUGhreGdaR0tDd2FxSHs0RV5GNyVkNnt1
YAp6bF8mRCVtT19xTmpPcmdMNGNuJm12PEE7aiY2K3RRaD41Y2Eyd01yKz9OKDdlbWk2NU0hQGxV
JlJ0YUQyXjNZTSoKejRpVGNxYFdje1QxKVg5Kzd0cjRQQE5MJTUwRn1CZy1iPSNYK0swPUY8VkZo
ZFA2VTtuQm5BRyRSZEozfGVxcEJ2CnpZMkUwTEFsYDZyQitpSk92QUF9U2h1alY4USs9YG9xSHFG
VW1iZ1B2SE5oeDVlZ0JXREgzc3wlMks8SStBI3p7bwp6R00kSDs1PXkoZXF9blB5WCkzYEdWLUc5
aEVOR2t0KmUzWTUlKmVhJlp4cXw8I0NiMFowWUxYcktgTyFPem8/SzEKekZ9eWFOQExxUztpPSpg
djhCUntOJHd7SEgqLUFrJlFXenQpQzxWSykzfFhoXjVLPWxGcFlec1lQMDtMO3haSSRNCnpTezFX
KkRQODAydnFWSXRhcHJzbUxhXmN3VHI1TkMwPHArbkROOW8rOCkhaF5hWTZCZCgqXyUjV1NMVm8q
Kl5MaQp6bGQxdjhtdkRXfjNoP1MrYG1CSUErYmc9ZEFybHcxJmdtfEM0XlhWXi13eSMyUTZfRXZm
Uk5nPCQ5fTx3V3s+UysKekxlMk8mRHNuMH1uTzY4ZWFxbnEyOEp9Xj17RU5AeHUwb1NCMERHbzcj
ODkoTFptWlAmO1EpJGZiIyF6WElrTmVPCnpieEQqbUpDeVFDRHByYXBRPmlgSTlRfmJOeT56ZDVw
NEleWHNyPi18OU98P0BXTk9XXk9Hcmp0bTdHezxtN0c/Sgp6PyFaMih0JG02M3IxdWElKXxkTihn
RG53OWYle3UzbUlnKWNgPEZpVkU2VUBrcFo5bXs9VD5fQTAjPz51SlIjK3QKejEqdFEpJDNgcyVi
K15gTmNoYXVBK3p1eGBKTzlGUlFSWlErIUNNV20yZU1HPVA/NDU7S3BuIXJ2ZTY1O3l0MEAtCnpt
d3FhSVVxdH5PS1lSdVVnMjZoXkBUdXIreU5ZNitsTUNSUElCeGNJbU4oeUBrWkdjTnBZN154Jlhs
Wn10OGJkcAp6e0xMVWdKVUpTITtwN0Nod0JBMm9VJWpuWHRzMTBFRmZZZihtcCVJNlEwP0BBKk0h
RHA4WEw8ZEtNZFcpeFp5WCgKek87JWxmdXN+USEkJjlXajQ3azhQKXpxKXApZGRNd1lwX0hkUChU
NVZBRUVqTlk2YyhNP2s8TTJCTUpSbTt9Ul9mCnpEb1ojRV5Pc1JaOEBEJTxnMzQoYzBLe1V3PEAl
Mnd6KHJzN00yZTRWVTB+KF8wOyFwPj9HTzN4eTtwdDJMLTd2Pgp6TXQjQDkwR0UmVzRabCtRNzRl
QUROMDY3aytPaypNYWRqTyNBNT8rTlkmdlI+ZWg+aFZUfUdybiE2JU4+XzAkU2IKejVZfC05YmUx
UFhGdmREYVNiKiUpcEhpRVNecDd2blRJQmtMVT1NUCUoaz9SYmk3Ri1EV08hJlNgcGRuRi1VZFA4
CnpQezUySHh5KShYYj80fikmOFEjTWgpUEJwald2WW9sWk5Na2x7b182Vj9GQ1lKTmdSeU9UJUF9
Xj16VGFVNld0egp6Vi1tRVgkQWgwSF42Xm1iQCtRcWllQzYhO2FLMXlOd0tqPVpeJGV1OzxEcz5D
andgTEx1UiY7bnItNll5MjhPPz8Kenp7dEd0RXUhZDxSSkNaJW95IT9CVWY2Q2BtWSNpZVE8JFRw
PDR1KnVNeDMhKT4+dXhORU9KMUpHMktlckorYkFoCnp0TWA1ZGQqYCphdn1oazZwVT9SUkEqUiZs
UytteD0qcFpKTGQ/SEthQmt6PXtWKyQ2VnNeKCF7OVIqQkFIJnFoZQp6X2NSdEZqIU1CektpRW4+
YStqOW5YKnp0Q2VaUylIIUN9SSlLbitnZElhUXZKZGVeaU9IcnZfcyRZWDhEYFFCQyQKekxMT21R
KzIyVCN7T3RKO1peb3xzTVFwU01veUpKVDR3bFBtYClNU20pP2dJZCMzQ08+UGdubTg1d3JWNS1M
Z3c3CnpJNjxpWmUpM1k2ejlPMilMeDdRcGVBcypJPFljQW9XSWtCZHZJMyh3S2pTK3E1M34qVHQ1
cSNEbnxvTTE0VkJmeAp6PjdDd2VVcyYkNVM+bng/MEJ1NDcmaGNmdmhhOFc0e3gqOXs5M3poMTdJ
ME98S1VTZE14O2w1RUs1NT8lZUV1PEkKenZwPWp3YX1qfiVCMHw/SG1NRSg9MyllSz9gUX10MjIm
a09mKSZmOHtTSz05V3A1NzFtclg5PU40ITNeQDdsP3MtCnpsQTd3WTQtVU4+N0dzNVp7cWIrdyts
NlNeSXFLZDwpJDw1ZDhEYTZAdjspKmJAVU9YeF97Wnt5Nz99QzN1N0pKSAp6M09AKyk0bkRJTSpW
TlJ3eztXIVpmfnVXZTJSNnJYO3pncFo1JnRgYjRZb2V9aHtKR2Jgd0BMJVNWdT1rZ14mT0gKelow
cyNzKGlpQGhGbHcwU3Y0ZGZKJV50QldIIXcqVnRtVDBKYXhPVldmbkFQblQyQ2BuIWxYVlV5QD0z
cmlkJExOCnpOampyYWN3ez5xMllaWGBBWGt0KmN2bk5Ib31jPmNoPmZZdlJsKUImUWM+YUk3ck9V
cXZyUk08NCM2byMxVX5uNwp6V2ZaaXoxfkk2aE9LNCpfN3I3YEI2MU8xYUZYcysxPCspTWRha2Ze
KXJhRHl4KW8yNU5NNzNebV91U1hrKSl0a1oKelJJMTB3QFdEeWRwR0E0dFY/ZFcxRm9IYG5RRllS
SmJ7aik+SjlucU8hOH4hQkVVTERodDE8TH52JiYhQz08Ujd+CnorWFFzOEhGTjRAYjxKOTNhSWEw
a019KVBqSipeUkwrPHU3N3NOS3NRN0hfMWchRUJvfCpJNSRPVVJEOSREU2JsPgp6IyVaMGx4e2BI
fWN3PGk2Y2FyNit8SyExR3hObjIxP05gUWlIYzNZSG5JTWkxM25TZnI7Rig7SmgwbW04eTteeDAK
ejUme3BqU2ludkJtYURYTXBTIW9lfEp2MEZtZzFxTmtVWHgmV2w7SHFaejxhJWMkPXRaJmQ5PT48
YVl2PEchSTtkCnpiYVojPXtgPmluV2drTjc9JH4rU1kqZzNuSTFxXiZSR313bnQwXiheeHVmfjN5
YlA4SmorKE9heW1uO3VNNX5pPgp6Um5vJWZ1N2cmOUhWPj4yM3V3KXQhbWQzVSRVcG5UeGx5MyRT
QXJXcWR3Jjl5bUM8JE9eaGM3UGFXPSg3VmBgKG0KentBP0F4KSV8WCtSP05pVnRAZyljVE1CNDsw
SCVkdWY1cmQlS1A8aXZzPF41PUwwQGV8R1FrYCtVdmdnPThORWtLCnozdF5IVjA9OTxPZW9YJUNT
ai19bEpiPEdeT15yWXhNKWolO18lTztSU3RPdjhDMHZ6e2NwUGdCRDJBWTEzLWpGeQp6c0ZDd0ol
fGw+aGI7WCk2R3U8Y2I+Mm8kcHRPVCY7NVRUV2ckTGtMPT9hcXBpQDFQJjN3ZENjclpMPDBaKTgx
IXsKelBhZW8zQkpCJl5SYUBkLTI5RTBfdzJYMyprYkhvP1hjdU5DISZJJlJvWnNGVjI/bjhHI0ll
IWFIWD1HVi15SWNoCnpJcC1+cVk7fnpiMUE/YkxFa2EkNkkzb2t5NmN2Nz5VaVVpIVZNbH1kIUdF
aVdON0VCe1YqV01MPWtDYFc7PnRpPAp6cHg4VFdOQ3gtPWpleFRHcCRzb2thYjtJSmNjaGJBdE5e
KHtGIzUpR3JTRn4kPTh3ZEdlQjgwaXZnJGQ/Pl5HNHMKenZaWjcqQVRzZG1KdDYxMSVeYmwxbm1i
bjxzUFI/NFQlMVl0emM8P3pKJF44K2t2eEpAYDNTLVV1ck9hdGArTTJBCnp2QEY0IzlxTUNrdUkz
VmRYKlo9Wi1OelZ0Q0A8U1RoV2VpVzwqSDQpekJjUU9tcyYrdk0xNilDYH19PSgmM087KQp6Nkh+
Y2FRN3QrPUE5TEU/RWpHTE48UGo8MF8wQFpmeXlWRm9eV3ZwQ3FnSXZ8cG96LXpBbEhTNlBiKXQp
RWdAV0sKelo3RXcrcShsTE56azY3aXk0Py0kIW1nMzFfdWI/aEl8VzB7WDYtUDEwemloYURAKHM9
Z3Zme1dGMkQyR0ZKX2kyCnpsfFBmMUd1fFReSkYmNDlsPnotbj1uIThNcyFRN3Z6SVJYPnpRNklK
VHI5dmM+THJPZHUxWikrT3hKajhyazJ3fAp6bVV5X3k/NmcrX1B0TEA+RENaYWZUckhDUj1mayNL
PTs1bW9WYC1MMEQ5OyMpNXh9QStUb2oraHVRKUNgbWxXNkAKemZhMXQ8TiElPFlHSE0lO2p2YWBN
OWBJejJTSG5yPFJ+JmI4UWphVjdaa1N7OF9SYk9jXzE4bnM/XkxQZHt0KXlVCnorOTxQMVFxNnQr
I0p8Y35XbTdEYyFmXzhASWo9cWF2KEV9IWlVVm1wZyh4aH1LczNAPTZQRiFGI1h4MCFxNEUwbwp6
dWhEZVVYJkNJOG41ZVB5WjQxWmM3PmFiSiRJKT9nWDdnQzA/QmtIY1ZfX0xhPmN2NkZgX01saE43
ZWBrYHA+MT8KelE/WnY5KmBubURQWjF6PzR2R1pHbXxkZVpZJiU/eTNySW5wbyZkbS0+bDlkTWIp
RUVHTClzfVNUMyVrX3xIcTA1Cno4Rn1XaTYyVjBQMjc8QWAzaE5oN1F0Y35OVFZIUUBHdmFBUD9j
ZT5tXlkzYERYSWZ1fnlJckN5MjF1SXcmMj8lQgp6XzU9P0tOV2JkLUFAeVZaIT8oZFFDYytHR0h1
Y3ZtVlMpVHwqMSRqZy0mdExRJWVRKl8rVl9TfEVGcGN+cUpRdjQKelBIc1pLd1lyamcqJmFIYlZI
X2E/Xm85N2A0Z0krX3dpS1lUI2NjOFI+WH1MO24rUEw/QUc8ZjFYaG4zWTVhKnstCnorYFVmTk1Y
czh1OSNzckdfQy05d0chaWFGSEw7NzdwJlkpJmBsfE9AeWVKUzQ2N0hwQEBWcEtQaHpHYS13R0U0
TQp6LXteRTFlJjJXZCQ5Pm5VPDlPXlopfj1jOGxlakRycVRjQ3JwKi1GayluWiFHcCV4OCM0d1Nz
MVpNPjNMe0lGd2oKek5lUVglR0IxYzduVE5tUGpocjkodWB2Yjl7dnthd2prUDg8bE8xYz9fZWJC
eC0tKSN4LUFHJFRXRz89PWNmKDtLCnpTIzVzTXVnRGtXV3FzVU9rV2B7SEFkQEgrY3dYPz56emAr
PXZUNCpYcV9VYjJOVHZ5MVZ1TD9qeXpYVF5saCNJcwp6JFNMc3xNb3d+T2NCM1VEeWgjPU9lSkB6
R3Nren5+R31LN1F4M3I3O0wmVGM1VSRzbHdzI3lGVT81PVhmLXJBfXkKemYhTlM8NGFJN1RLNX0x
XmRoI2xLUjhnLVM7ciooXmA5SjxkWDYpdnVLPFQpNm9JSHdsNlB6QUE/WGFgbm1jSHc/CnojbDhq
fnQqeChUO005LVpzYV5OZmBqKiZJVlMkcW1VKFE/Ql44SC1idTEmWm9QQjklYU0jS0xeaFFpdmVI
PW9sOwp6azRCc1hkSGw1b21oJHpVIX5xLVkmQ2h4aztFVFI4d1pqeX5WSkMlN3VvaiN8cnMzb3J7
Z1E3S3Q9JmtsI2Q8cjwKek56bG8xO2FWcHdeej1vYGtAdiZ4aUpHIXZlNElVPFY5YkhZSCM0aSo0
JVY7TkQ4JjFFdnlMO14qazdTdHYrODA2CnpwRE4mY1ZkNWtUIWZ3e2lIUzhNY05QbEMmaTZXXyE3
KT0jXm4jMXBXSCVZYzlMaXtPZSEleWlOaU9sKT5UVUU7WAp6ZnxoVWdQXnt7cWF2NXB7cFBWUEtg
JTQhNmU2bHBJbnE5THVaJUVCezIxKjE0ZGs/PDloP0NKKTFFZztDem11V3MKejFyamtScShffGMw
QCMmITZCUF4lUTZyUjA7MW1ea0NqMzxWP0tCZiU5cmYofiVMKWREPUx8VEktYFEkeFl+VGdkCnoh
LV42aGMpYjdEeW5HTW1ZckJDaVhAUlNIRndEbzZ3fjNiK0hpKiYxbDVSYj5JZiRQPEdBKEAocm9Y
JmNOaUJybAp6JXBacXJ3K3pPenUodjNgMEwzem5SI0ZiOUM7VG5Udz19dDVHIWlPOCFnbVdhRmQ9
Pkc5QGM5K1BLMm4oJEhMaEsKek0tSExKKU1uIV5EJklLNGgjZUBqbkJ9PSFIIzFuM219KT5PXnRA
Wn08ZnYjeVE4N20kNlk8SlIpUkB4NU9QPFU+CnpZRnhpSCNtX1J3fDgleD5VI19tPXYtcmJ2cmx5
TFQ3bXE8XlV1PWR5dSFmPStJRHMza1pFSjdRYitvSiYwaDV6Twp6YVVBNG9JP3hhekxWUFdgRWhk
LU0lZkdtcD9CVV57MWJYMT9QPGx2Z2RZJH1KRV53di1EekJ4djdNMGhqPV8wXmwKemx0UTFVO35w
SFgoKnczcDM4c0ZCOD84Wk13bC1RPDJTWHA2bXx0YyhpTkM+cEpyRSVibll+fmwzVG9+N3QyYDxK
Cno1MWA+aSEqJDUyPXQ8VGJ5S21NQ0dvSylHYVhqdj9jSE15aF5GXiR+UUN7PXR6Pmd4N3gmVjZz
dnxSNTZQOFNUKgp6SyNiYW1hOFZGXl48XkcxUD9RX3dVNUpteGtsTVFmWiQ3Sm1lSCtFZEglbj5a
UCEwK1pgSkNJcz5pT0pvJUNzdm8KekRVaCt2V2wzZ0BadXljPEF9SHVmKEc5MyY+WSg/OG1NcH5v
X30jRU8hbVp5e0swRHphX1ZhNUdPeWxQI1BHYVNwCnpMRSlEckUpfmY2KVQyZU1TVV9hVUwmPSla
cXp2LXI1Z1F+MVBGeFVaSEQ0cWp2Umskd2U4QE5wbjV1YihSZSl7QQp6Y0RhJGFSKTJxe3NTdXU0
Y2V5QkpoaFZfTjJJZXxaN3pANWZTaFQhWklRWWt5QHokNFVSQGN8cFVqP25URUx6K2sKelRgaFk7
eyMzfDUtfnltKDRoPGx6RSNkP3hWMzBHMTMxdGo4YV5qNzsla2ghI1IxQVFGOVhDVVZqe0lxMnRX
V0VzCnprS1pnQmF4aj5DXjdVWW5FQHhMVjdgVlptOSE8OHhOTyNEWlVwVCNzRDRuZ09QVllDNlJL
Y1pWKj5lLXg9WF5IWgp6KVphbWRocXM3RVpzeG83YDBAVz8mSUN7P21zQTs0WitFJj9uK2IwRHZV
OFM5Q14wYE4lPmY5RUNqJEhMP3swUkIKentNR35GUm12KlFoeHwkRDR7UHxlNEdxKTQ5R31NYkhv
Xmh5cjZXalhMK280P1k4YCl6JmE7VkY1KyRKKXpFPHEjCnpxSiY/cjQ3MTJzIXBHPFpaP18tKUco
Um5yYSE+bEc9WUkzdz5RdEBpdWEpPCh3U2QxalJxO1I4dlMjfH1ndHRkJAp6NWYkTDRgYTBDa2da
N0pjNTJrWXR5al8oeksqOWtUa0VzRk57dzJuZHNTeSZHTk8tRFRCcyQ4I1RtZ2BzRD41WWYKejhe
ZEg7T3J4fnRiMUk1THVZV3Zze2BuYntZPUhzKHFTKyZaVnBDc1ZZMCVVQEdnJUBVIX0wd0JYMllS
TURDUXo+CnpILVA1LW1ldjR+SCp0Nzl5dFhHUkFYO0o+MTxlWUJyfjFpXlFZO0omZzs+JVVHNTtH
NF9VdlNjdmtqenNPTWsoQAp6P2YqeF9xYjZMVEI+ZzI5TVlobExUNzJ2Q0YpblE4bHpaND5lUihn
KmgjNSMmY25iUCN4WVZ5YDthVD1zWThRPyUKeiM+aTt1eUdQYTZ6aCVQRDdmRk9MY29LZXg1TWxm
S047bXI8O1I2OCFERFJ6IzBac1dDOEclaCl0fWwjYnNeNjw/CnpZUjB1SWZER1lRVys7NXRNLWtQ
SmdiU0IkZT5DOytMdC1RPnk+eHVlX2s+dmItSDN9RlhePzsxU04jeCVpeV5ebAp6JkhxN0NpKElB
cihNZHQqWDY5QTIkK2FYU2k+c3soanlUaFJHeTJ3UUtrdGVBYGk4NHNQOXtnVmllMip6Z2pnPlAK
eilZUVBtPWQwYl4rbUZKV0ZqLW85MFh0P2BKYSEmKzV1UkFqLUVPbWgkcUFDPVNtZ2x3LXxAOEpw
MV5kanteSXt1CnpnX0hkYEdBZVBkU2x0KEx7PjhmZT5eZVdrQGR2JHROakZgQjBZZnJUdUhhfTNa
STlwWmJsQ20qNngqYG5gT2Y2Nwp6Zlc/cDRjSylHVlZCISN6MmB8QmB5WjRUcD19NHJUSSNUNDlA
U19XZzAkdEQpXyV+SHZMd0pfdnBoMUdsO0ErYX4Kem1kZitPcE9ndG8lR3JhPGZsPFlLenVAYV4j
T0syTko4YVRCP2IrKHcpXnNZWHQqJWRJNm5XLWdXd1ZQdCZkKlRICnpwa3dVbDBZfS0hbCQ1cEZp
aH0zZEMrRj1yNFomQXVzNUlIQHkjO149SUF8dUUkbDZ2U3IhP0I9R3pjUl5yVEArLQp6TiY9elkt
ZU0tRXJuOHFmcTAtKUpAQmxTQj0mOVBQNHpzJE95Klg+R292ZDZGRnlOaVIrVClqOEsheGhHe2VI
TnsKelA+c1MwIS1gYEFlUz9hQ2x7Pis5S2h3d1NzZSFBQ2xFPEJHPCo0RFYqM1hGeCFeSiNgYTJE
KGdrZXdta0liXiRHCnp6NnBMXiNsNzkwXn5zTWt3VjVwQzR8Jm9mSGl7UVdWflAjYDlaNWVxcFlk
QU4zdClTNGc8c0JSTC1NRTUoSHlvcwp6WCRyajFULX0wPTR8eFYwZGcpYT5GfjhIQlgrV2VQKCh3
TzZnNTxIKDdEJTltVlhTT3M7b3BFMXM9a2s0bTckTksKejBnYWtheklvX3ZWSV9WcCNfZHdqOXB5
R01PS0F8MGUrUDtOUHw7dWhsSSVeWDU4Z2xEX3wrNEgtdFZsZFNnYlF8CnpeQk4rbWhaMiM0d0VI
Smw7SF96M1A7MmtDPkYzVjdpcDs2X0VVdHZuIyN4STFpNEJ1T01wSHQxdyg0akRmeigoWAp6MlI5
S2pPPVhTQDcpSTI4KVRgMXs4Q3lMUlZXcVpJRSVGQjRzUihgVlAzQCVqUmpmbkFJdUQ7QCZofH5I
aXh+WT4Kel5+IW48aj5MK0xASnRrPTVqcllSNTlsV1YhTW8zPWZASismO25keCtgWl84eTR6P2wo
VXN6NGQzMlNSPil5bm1aCno4PzNQMl9CNGBBeG88NUlOMGAkXmkxaXUoIWdxRmRCQX4qPShaI1Al
YW51JHJ4ajc2fFNod1I1MGdiIz17MmdJZQp6ITw+SHBFVz4rRjFtQD1XR2FHVV4/QTMpcnAoa3df
d1ItdG4rIy1JKkY1OzRvQj91bX5NU09NflBSezMzKCV1ZmMKemwjNXxPWVglMj5aI0VBWDxVKVRV
S3lofG9EZiFxa2FldyRPU3hFZW55VDg8cnQyMXFPR0ZLdWtBMiQkNDgrKVViCnp7VlhfLWdYJiN8
JlFOYWwjR2QxPjJAaUU1djRiM3FvYnp9KldnPzt6Q1E4aWR1PFcqa3U5fjMzV0UtQ2lMSypHSgp6
KUFIJTgha0p1JVJJb1p8MGdFXz9nT2dpc0Vua3oxemZuKDRWJVk8cE5kNVN5bmNwMT1eV3clT0Vz
fjhiRXJeTy0KemQ0IXdSR0cwMERqdDZ+U2JpMD4ybEMhKllkTDdFOHxKcStPeWkrIXJvbD14P3Nt
RD1sWFVnQFU7UDh1OE9WPFRXCnpMNEhAKlVqT21hV1UqKkZUb1h2NzQ8ekJMc3pXbC0tITdEKztO
UyhQWEVwQ0QkQWMoRUkhSEozOG4lPSFGUFNfSwp6Ukt4a2EmWkd5aSRON35mRFdnUjNzTmU9WmZl
cGZyMmhjSyt5d3FSdUJyRklBPmBXSytKdjBeRjlnPkF6NHpZJlAKejA4fiFKQW5rKyE2R312TihW
cVUyYytHQUdAOT9AXmFSe1gxRHkpamhkVzJ7RUp7SDZmKEhfNWteTS0tJnRyOU1tCnpGZiQ4dTBs
cHl8Xz0zYUctSEwkQGUpX1BDOVBUfnA1fXVLYT4+YXhFY3QhQlJnUG5+SDJjTH5DMTNjKHElX1Fw
Qwp6QWNeeGArQyNwXmxWRnA1dXApSGxqa3pZbUI2UjBBPXFEK3dhbi1PYlROU2FJSWNLdmJ2cjRj
V3greUJ8NyRSZEQKekhgbkFGQTR7ej5yQ1RnV1RyXmx0d1l6KVpLQnc/SytCZX0+Z3dVZ25tYSNe
fTF2UzZvT1dnbXlGfkc/RW0+eUFsCnp0Iz9MKSMyMUcxWkFGOXg+RWZqQ1R+bW8pNDg9VnI1ZlhR
diNCUTJEP0RzRVNpWUVJQyopOHl2dW5id0NjRF9Gawp6K0F1IyYkZHw9ZWRCKmloTEE7NzFnVjZU
QXlRQlMlKWhIc3BkY0Q2cns2dilhU2c/UHIzKDFUdjdsOyZHTUk5fFQKel5RQGRpRyUjYSkrcXth
MiY9VDIteUg+eF4pRmc5MlohTlVNbGp7V29zYE9aM0EtVHw9MiYrcXt8Rn5EeU1hQmFWCnpRWkB1
NFhFUVlOZ1JKTio4VV52c2pENW1JVG4ldFg+T3ZiJVU1djElPXhKYWJLSHZGdk4xMDE3JEpmbksr
cnYzJAp6bnpSPmthKE4yP3pgT2YqN2huPkpeeHk7LUFmMWdOKVljTyFPaTNCZDhgeHRzYmtQWXRP
R05sX0AqPVVuaTJIR2cKelhidWV4N219MVh2Pk5hVjRxTHhiJTV4WWxfRWxwZzJWcCVqPHFhUVRI
NjJIXk88YEhIXkE+UFNMKElBWnU0b2tLCnpfO2xrUyhAK354JkFLNktpTzd0KyY0a1ExTHpaRjQo
dmBFfWpLNHlicD4+TXQ8IXR0ZDUrMVIxMU55QjBeb3drKAp6QmJ8KXBoZmo0YldjOyhYUihIUEVS
eWRSKWN1WHpYKz58ay1waW0yOzBIUjF5Y3sxS3VpWG9+NDZWeXNYbnNkb2oKem8odTJHc08qOXRk
Y2VTcF9GZTg1alJvckU+WF5RakRRUzJEQlheP30qdXpSVXVEKWtLS0l1NTBsNGBOTUx1KV47Cno+
cG0+PTJxRXAtPnJha05jYmZxeCMxLT5XT3VTMVBZYHxGTzMzfUBoMnMmZm0tNnhrekZJanVOdE1l
bmRVaWArRwp6U2N+RzU3Sit9VkgrY1Y/WndeV00hS1AhTmRffTZCYn52d0pEak1mKD5MZjtaKGNn
QFkycGQjRXY1TDdWVm1ndiYKeldONWQ/bTxtYXlRSzBeYSk8KVMjXiR5fCMmIXJyKTY7JHlzZys1
SSZycT5YMm40ay18Kz5FUjUrNDxuaUxRaFloCnpoWG8rTXY5ZjA2REhaeWttLXwjd2xJJE5VYEli
YkFIfFBVfmRoamFNQkVxXyhJQyFGWipNcEN7PmclUkVme0E0eAp6X3dSQkdUZUlIU2dvMl9DeF4m
fHVpeGtzJHpHU3xeMmkkSXslRHJ7SURIVVZBcFNAdE4zQ3VQJmgwdyhEbFNrVkYKeiEzNDM+WjE3
VU1YWXJJaWczZWxYdSp+R1FUQ0sydFl8eS1HQHJRIyNPZWhDX3VBMlpvbT55eF43RFl6LWooV0Ff
CnowIVptODdvKjBye31qYiNPKU0/dGF3WiohRmJJLUQzNSV5WFIwdmF+UHlXQGQmIyMqQkVVemNH
bjJZWHt2VTMrWgp6IUt1Z1dWZUxTUCZfbCpeVClKOVZNKkhUbjw/amxfJHh3eXQmNnJmKil1ZWw8
WWh3dFFqWkZjQUoyQUgydEg3Z3sKemhlLWVLcHY2eHdqWiZ6Ul9BTHdedT9YU19Ze2IyKyokNUor
QD96WVhUKE9ZIUpDLW1zPzZHVDlqfnV3ZT1NckE8Cno+fnA7TilPcmtLJnc0REZEK0NSfW8zX3N0
XkxxbmleTjNXR2s3YEpOe296WmtYYDVnVnFPUG09ZFJ8fUtUcH5sawp6eVRpPVMpWVF+U1V3PSpx
PE1KfndHUjhTaCEkU1AwM1pDYDZlRUN1X1B4QktVVzt0Yzw2OWFlKzVDNWl5Z3QqY0AKejB1K0JC
RUoke35yYSNaR1NtcGNrRV5vY3BIN3F+ZSgpYDVzJkZNIzw9akIyY1VMKHphQFJGQ2I+SzQ2TE5L
Sm9JCnpCbWY4dW1Hd3g8RUokMyhxcXBrfSliP1ItbVJtLUhAbjdYZl8qMmBSO1YkQUdoaGFKITE5
ZS0rWT9PXmdtNj5gVgp6dGIjJVRDdTJVc3JffnhnZndBPSY4NW1Uc0RMYD5VJDlCX15mYmc0Pno2
V29Oe0NYdUs0Zil2JCZrX0BzWVhjVjsKeiNnUkF5Jjd+eF9wbENPPHVwIWwtd1o+bTtDWkZ2Vkd6
Qz1PMFN0ejlycTJ5OWloMDtaTGArPEtldHUoUExscEJDCnpwSU1SZV5ZUVN8O3gyTj5vYj8qdkkp
bTFhcDR6SGRMTmEoVTBPQjN5X319djYlJTd6QmtlYHE1RiFeQyZhZWlKcgp6M3pQaip8NWVjNz9A
WlVsZmdiWkMqbVZDZ3FhJjlGOHprZyhVTG1+U3cxQU41Vis9enFgN3tQc3xBVj56SmZZc08Kemh4
QEEqYnxAZk1DZ0BAX0hhMiMpIStWJEkmRmswdV9+Qk1IOXsmPWRwYGo3Pj89ZCR3bShBMTZpNWRg
SWkwekJvCnpTQV94eElFOFBeYUojTVk4ISpZbGE5TWdyI3VeTX1JTz1xeHQzME52I3BxXjlhcSht
YShMOUA0ZD1GNylgMD8/dgp6Kn1xI3F0KiRGTV5TIUxNSmolfXRWTDR7V1IlYitOYnZuRnVzd3lm
RCNBSVpXRz13b09SUi0hRWImUnJzWD9AXkcKeiU+OUJXOEJyN3BXdCk8Y0dXNzVISDxuLVRaJSU7
RWc7UD5NIUwpQk44JDxBWT0wNkhRRyZHYlZ1V0c9YjlsWnN+CnpENWVDP2NmUH44Q3BzJHhuM2px
dk1XdUdeR3ljWkZnQWBNKDBqb3cyblMmYUpRbVU3fjxJUHMqISg8YD9BNH5gMwp6JipzT0NsSiQ2
YVZDcF5wUlI5fEc8Y1BLWT5UOW1PZHckaTRuUHllYjJIUG1CendKSTR2bGNPYXo7fW5IbjlrMTUK
eitnVUVpMCN8Vnh3bVlCeDs8fHdfQlpnSUEkYyNxMC11SzRPUE9nIVB3YytuSGRCIW97bDgjQiR6
b25jdW4mUmhoCnpGWHlWYzlWWmEhMVRBTDc2aUdRdXFtIWtfeX5PRiZlMkxuJXgkUzJ9KllPZ1BY
bXR9RmkhcjJfVkNHPT0hOWllWQp6YFRNaT9rPEQ7U1ZhNTRpMVB2Y3hobEh0JWg1ZF8jdDVhbndD
czBBSFZsSj40aks4ZkAhfVZ7bVV9KCNgRn10ZzIKelBhYzIjUUJeRE9LdEd3RFM7V0NkJSpCLTNV
JnN5Q3VBYT17Uz0pIWJnaGBCUEM0QjVtenl7JmJvRCg7bDZZc2krCnopNGl1NnV1X21DcTR9SDsq
OzBoQEtgXkMxYnhZfEQqKEczfEVncV4mIXFWfiMmfGZycUB+SjBrdEx5QGU8dCFQMQp6d0lCa2Yo
P01RT3FpKldmYyRqYVFPeUprN2d9KWZUVVNwcFRmam0wVEVZP1lIRW5sbU43fFZMfnNyPFZsX2Q7
MXEKS3NaUE52XjhXeCh8NjFrJQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
ZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4
OTkxYjQ3NDE2NGYzY2U5N2NkZmRkMDI1OWJiNzZhMDY2NGVlN2UuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
ZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChjKSAyMDA5IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiBBUyBJUyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0K
LXVuaWZvcm0gZmxvYXQgZnZhbDsKLXVuaWZvcm0gdmVjMiBmdmFsMjsKLXVuaWZvcm0gdmVjMyBm
dmFsMzsKLXVuaWZvcm0gdmVjNCBmdmFsNDsKLQotdm9pZCBtYWluKCkKLXsKLSAgICBmbG9hdCBz
dW0gPSBmdmFsCi0gICAgICAgICAgICArIGZ2YWwyWzBdICsgZnZhbDJbMV0KLSAgICAgICAgICAg
ICsgZnZhbDNbMF0gKyBmdmFsM1sxXSArIGZ2YWwzWzJdCi0gICAgICAgICAgICArIGZ2YWw0WzBd
ICsgZnZhbDRbMV0gKyBmdmFsNFsyXSArIGZ2YWw0WzNdOwotICAgIGdsX1Bvc2l0aW9uID0gdmVj
NChzdW0sIDAuMCwgMC4wLCAxLjApOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L2ZyYWdtZW50U2hhZGVyLmZyYWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZWRi
ZGVmY2Y2YzI4NGQ2N2E3OWU2OTM3MTA3ZmRiYTY3Y2RhOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZnJh
Z21lbnRTaGFkZXIuZnJhZworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLS8qCi1Db3B5
cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLWFyZSBtZXQ6Ci0xLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBUyBJUyBBTkQgQU5ZCi1FWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi1QVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi1FWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi1QUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLVBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotLy8gV29ya2Fyb3VuZCBmb3Igbm9uLWNvbXBsaWFu
dCBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgKEZJWE1FKQotdmFyeWluZyBtZWRpdW1wIHZlYzMgdl9u
b3JtYWw7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2X25vcm1h
bC8yLjArdmVjMygwLjUpLCAxKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEucG5nIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13aXRoLTEyOC1hbHBoYS5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE4M2U1NWRlMjE5MGJiNjI2MTI1MTNjM2U2ZGRlNjc0ZGYwMDJi
NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODEKemNtZUFTQE4/KG9sSHlgdVZC
cSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ3BhQGJhNCFePXVKKlpOWFNTP05sQjQ3CmV5MH04NS0t
ZF9iPz5weERWQ21iQUFSVjVyZWxGe3I1fUUqb2dBPTZ5CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9ncmF5LXJhbXAtMjU2LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDFlNDg2YjVhOTJlNDA1MTU4Y2YzOGY2ZGZiYjQ0NDQwZmRmYmQ2ZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKbGl0ZXJhbCA3OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYrTDBx
K3cpMUlnaz9kYmE0IV49dUoqWjAwSjQtI1IoIWsKYjl0O2U+M1lxX1hPbiVTP1JLVmNyPmdUZX5E
V000ZktTZEo4CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1y
YW1wLWRlZmF1bHQtZ2FtbWEucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1y
YW1wLWRlZmF1bHQtZ2FtbWEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWE4
OWJlYjcwOWI0ZjBjODc4NzcyNjZkYWYyODQxNjViMjFlYTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDEyMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cp
MUlnb1BsYmE0IStuM0o1NjAwYiMxREptfCkKekxlQTtKaG1XaGVefmwmVjNJb0I7UGRBPmQmfihl
UytrMGs3TlJOYk4odnozMDk9XnwpSlcpO2h0WUshIUBNJDlSClVLalZ1bSZwPjgteTg1fVNiNHE5
ZTBEN2IpPypJUyoKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5
LXJhbXAtZ2FtbWEwLjEucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1w
LWdhbW1hMC4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3Yzc5MmRhMDNi
YTYzM2I3MDhhM2E4MDg2MDE3ZmU5MWUxZWI0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0
ZXJhbCAxMzMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ255V2Ns
MzIrVXtEd0UyfHdmbTxsQV88CnpJRUdsOVBFS0s5YSNLKW41ZipZejdlMEprKXZaVXltUWgkPmZf
QUBlLT5qcjcmbn08I0BqQUxmKEVKT19sNFpwfgpncE0qQTZpcC1XX18leENFLS07PHVMRk9gZXk4
NX1TYjRxOWUwSlNrRENqYkJkCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJj
ZXMvZ3JheS1yYW1wLWdhbW1hMS4wLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dy
YXktcmFtcC1nYW1tYTEuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwY2Vl
YjA0NjUxNjhkMWFlMzIxOTA3MjBmZDg0NGIzYTFiZDliMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgMTMzCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykx
SWdueVdjbDMyK1V+RjRwXytuWi1rWjxHWgp6O3V2Q2FJeXJAYiR4VDdRTU9lcj1VSEleRVJrdDEp
VFNqNGwzRUtVPmVZMjlUSmlDMF8kTHJfe0xHdiN4T09fUH0KZ2VHPU1PREtjQXo7blBJc2U9RFh1
MSkwbT4+RlZkUSZNQmJAMDRTRnliTn5QVgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTIuMC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9ncmF5LXJhbXAtZ2FtbWEyLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3M2ZjZjdiNDFiNmI0M2QyNzM1NDlmNmIxMDMwMDJkYWEyMjZlNGU2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpsaXRlcmFsIDEzMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYr
TDBxK3cpMUlnbnlXY2wzMitWQ0hyMzVgMV9QJGhZeHkKemFTWDlJb3Qobko8ZmZxREF9cipiRWAw
ZDdzI31rWUV1KmwmMW5xdmB6RkEzRW8/U2xlPDheZH1wIXBZO0NDaUZ+CmdKXyY4QzZxemw8QE0k
OVJ6WkZ4U2czTSpgYm9GeXQ9YWtSezBORm4jbG1HdyMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hNC4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDg3OGYxZTk2N2RjNGRkMjZkOGUzZTJiNWQ2Y2Q5ZTNiZDJlZjAwZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMzMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlV
PDVLNTcmK0wwcSt3KTFJZ255V2NsMzIrVjNUVU5XU2h6WTxsQV88CnpJRUdsOVBFS0s5YSNLKW41
ZipZejdlMEprKXZaVXltUWgkPmZfQUBlLT5qcjcmbn08I0BqQUxmKEVKT19sNFpwfgpncE0qQTZp
cC1XX18leENFLS07PHVMRk9gZXk4NX1TYjRxOWUwTFI1OVJ7I0oyCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hOS4wLnBuZyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDhhNjllZDFmM2QzMTY4Y2UzNDYyZDE5MzIzNGVjMzA5ZDc2ZTA3YzEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTMzCnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMyKztOODYtTkpfbUckaFl4eQp6YVNYOUlvdChu
SjxmZnFEQX1yKmJFYDBkN3MjfWtZRXUqbCYxbnF2YHpGQTNFbz9TbGU8OF5kfXAhcFk7Q0NpRn4K
Z0pfJjhDNnF6bDxATSQ5UnpaRnhTZzNNKmBib0Z5dD1ha1J7MFBHa2h6V0BMTAoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC5wbmcgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhNWE4OWJlYjcwOWI0ZjBjODc4NzcyNjZkYWYyODQxNjViMjFlYTFlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEyMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1
NyYrTDBxK3cpMUlnb1BsYmE0IStuM0o1NjAwYiMxREptfCkKekxlQTtKaG1XaGVefmwmVjNJb0I7
UGRBPmQmfihlUytrMGs3TlJOYk4odnozMDk9XnwpSlcpO2h0WUshIUBNJDlSClVLalZ1bSZwPjgt
eTg1fVNiNHE5ZTBEN2IpPypJUyoKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3Jl
ZW4tMngyLTE2Yml0LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ZjYjk2OTYw
ZTE0MmNjY2E0OWY0NDc1NWQ2Mjk0MzUyY2FmMGU0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
bGl0ZXJhbCAxMzQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5PZHU9KEJHPGFPODJ+QkgwKn1h
SUFuZ0loWllRKHRLIVJsampfRSllCnp0ZVBROXI+KzZXUVRCOWs0QkB6Kns2dThNLVF4IWllMzw9
Xm90YXRxYlloPUI0Xkt7NmVWc0FUeEpWeztjbTlHRApRRFdHeCZQZ2cmZWJ4c0xRMEdVRF9GI3JH
bgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hh
ZGVyLmZyYWcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5m
cmFnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmRmYzlmMWQ0ZWQ4Mzc0YzEzMDUw
MWE1MmFiMjU5OWEzNzlmNTJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZy
YWcKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDA5IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiBBUyBJUyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLXZvaWQgbWFpbigpCi17Ci0gICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby5tcDQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9ucG90LXZpZGVvLm1wNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTlmNWY3NzRhNzgzYjQ1OTM4NTQ1MWI0YzVkZjIzODAwMWNiOWYxZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKbGl0ZXJhbCAzODIxNQp6Y21lSTVlUSpAejltbGBCY1kjWD9hMHdBJk5PM08+
NUhaU3V1XzZPeF5XcUVkTEN+VU5BJj54KHlxUDxxO0BnSG4KejVVVnAtOTZMfWIhRCVWOSVFMEpR
YmhKSDxSZENTeSh5NnhQazMlfTBSLUd8Z01gPFZaYGg5TD12YlhORU5yY1IoCnp6aTBCeD8oO21t
JnZYMGleTGMqSD98MXYkMD8xdCp5YCNDSXhuIXl+NHZXPmNGNEVLaEFoNWNud2lhbW5McWtuPAp6
NndxaFotZngqJCpWSSpkWUpXUzVCYzF2MVBYeD4qQEU/antVZnJlbExtdmwoZWllaiYwWkA2SCYl
KHd8MWdeRVAKemRIdTB3MWIrWjZxWUE7LW9AVH0tbVZjey10KFUwYDMpK1k8dkwrbHxjLSQ0di0x
flYoZD5SNF5FTGkpSVVKWSNqCno8KGlMeGlXaWFBe3VyP0o3JjQyQElFPiN3JnVLPyFQaDxyMlZS
M30hS3RLUHBGd1puQ1l7XkFuYF5nU2c4bjcjIQp6YFJhXmF1Q1JPTlN4aFNKRHZkdj4jYkJPNkl8
PiUoeWs7T1VuVD9UU0JLdVduN2lJRThgVD9VNmRmTTl8OSVzUW4Kem9TU0Y8JThYRzQzaTY+fWRe
dDE5WXY4WjJhT0orIUgkUmFZNHUldDU9ZiY3fHI2QHcrNW4lSkFIN2BLWk8kNl9UCnojPT9XZzB4
VDRtYHdzbCRWd2smMClvSXZ1ZWlta25sfHZ1RyZHTHdrNEhIOVAzLUg0JFBxNC0yMHJ4aX1AWUol
bQp6VHNQelJAd1d6PzZsYUdARldhZjdTdWVkYXl2VUNEKTZGU0lkfkB1YGtsYCEzQk49NW8xNmY5
OWdZfjltWEp6RFEKejQ7eypAdkxsKGZqPnczN008aSVDQkg0d0dOS1RPPkdQPjlpJHFoUnFjX29m
V3t4bkJxK3pkeT1GZGRQQ049S3lkCno4YkBUcEpWJkljJGBQNWcjMVNjOD5XRXlqdFVJRjVCNVZm
b3sqb0FaPTlWSDEla0xUckVqQDxkZEMtYyg3P241Zwp6VTB7b2F6JTRJQTgpWUh1SjJCcU5YS2Ve
fXd+KSorN1JuIWl8SSZqZFgjamtCe3Q2ViNTMitncGNAWH5EMlM8SX0Kemt7YSYwQWhHZU4+Vm9Z
c0NQODBucVZUO1BVRj1kSEwwZW03cGBabzZqM0IhUkpNKD8pYzU0KD04XyhFPy0raDgtCnoxYFVL
PmY/bFk0U1YleyoodUkrUTZXdzlxKi1UO142KU9+R0J+a2REOGl6T3A4MjUxO2RlWCQ0NHhmY0s0
bVZARAp6TnNkRFhHIz9NWUJzbVRwdndReDBINGcyNzdLfGdTPyYjYT1UO2FqZUx8UVozWmUlUDJg
Z2tEcHo+WkR9PH5IfioKekZpezVocnxLK31jeis2UT1wa2dFUWd3MilRRlkjfXB5QytVYmAqZ3pD
dTN9d0YhV0ZpMSNoVXFZN31oVCRDU0E1CnpNb2FYUWZoTGA/U3JPVmU8bikhY3UrWmtGYmZPb2dM
UjsjZiolQjRuZGV3N1pYajJvKEFjaD1DYmJPeG8wUThxagp6SE9fUko7WkhMJEh4dkdzd29rSlZp
Ykt5ayV2b2R7eztRam4lN0x3Tm1UaUhTN0R3PnMmQCRpTyN0ZjUrRnFhY04KemxAWnspPVFPbkpi
KF58ZV5TZUQ7NjdocFImVUY1Y0shJH0hZ0dpc2c/X08kJTg3Nk1iO1FWWnRnJXtLdXNkd143Cno3
MUFAU1JBK0tIUzJOYWBZQj13aVJTdE1VKVZDQWFNOG0+TD9ec0lqT2lAfjI+RHkyeHJ2YX1jYCVz
SkAoekdYWAp6SCFJIUYxfjU7O0tQOypCcmBsQGZFdE42Qk1DQ08yWiowOG0mI3JLS1dhOVp7b0wl
QGpiellyYHp7LTdoODMtMHEKemstZChmJCE0fnc+MFhFYklTWFlVejw8PGFvanNGQndwajExa2Ay
PXtkRipoXkQkbk0wZHpQclNwMUUqZVZhcE5OCnorQF8zfEJfcHU4MkY9fDlUbUxtJXVEflgrckdW
NSYtOyUpQWY3dFFgSGkxb0c+amtJYTlRcT56KDRQMmhYSlllWAp6NzdxVmpJb3goWikyZmkmMGQz
MDlsI2x5JXh9aEk4a3U/b2spPTZiYyNjVzVzQF5QMmw0KiFLRkR5QXpSY00hSWwKelAtVD9VZHAw
ZUclQUtjNS1Uc0dEaThCe2phZkdIcipWezNFNlo4Y0tfUiEldUdLa1J8PkUpWWZBaVVTLWJWMVNy
Cno+RzRnKmN4STBhUWRNZW5gekZ0KHJfSUFmbSpgQXZKZlJHI3hINzJiRXY3WkE0OVVQRVV+VVFn
a0U/R2IqWkBnKQp6cGZYeEA4bSpVZWxlQXslUys/ezJCczA+dEEhYEoqKExaXnBeKzsrcytMN3F8
elElNzF5M21lLUQoSlpmX1IhcyoKejR3UVdZS01TdWdYdV8zMW80ZitTSkUye29vVkduSyRQVzQ8
ZHdpMkBtPnc2VGFAekx6Q2VObWEpKUokd1VxK2txCnp7LStDVkU9UVpFTHRKUWNrRDNkR3dxQVlN
N1otYDVFa2tHJStFUGpLYHRyaj1ER0ZgPHIpYCtmQ2JTN3tqd2U2UAp6clFNYih2PFlvTythUz80
VHhiKjhndGtHVmpzN3c1TnY4N1ZfMUtfek5tN1pOSThuU0w0bnE2dEJeZkVTckx4dXsKeksxbU9r
aCkwcm1OJjQ/NDtWS1NVWklrbGw/az14S0RQKjxIbW1VRiNMc3J7LXYwJGpMeTNIP1orZnJIRUNB
OVZKCnpBI0leOzBKX1oqLVI4bmdiZW1nYGQ5RjdWKzZGKmRPbFQ5QFF0PEx4ME82dFRndHE/RW1M
XyhhM3BTWmFkWjZXegp6Qih4MkhIbkgxO3dpTU9vSWMqZiRfKikySHtXblJ7I0JMTVhnZl89X1hY
bzxDdHUoUlFnZl5qVmtaMm5zY0FMOzkKenY8KCgqVnomdXhMZmNAYENVJT85Q2JTSX1aRE98eFo5
Pn4xKEtifTxIbGE7dTghWHp5WldHI3N3IXh4Sj5eN2xJCnpYZDVpciNCTE1YZ3RrR1R0KDNwSCNV
RFBEN3U8WWxVOSFqR05xT2FsWXRebTFhPklkV1VsekN9YVNJQT1acmJEeAp6SHlednVAPzZqXlpA
QjUtYklEMkU8bj9WSHM+fnh2dzNgYi0oUVg2TFp1MCYlNTRKcCMxVUpGJHRFfmVfWUJ5NlIKemxR
TmwxQ0NUZkQkMntKVEFkfEBmT2VVKVlIXkVKQ2I0KDErKXctTGNjM1VDMTMyeHNeK19WZkpgfjhO
ZHJkOXk7Cno0WHRaeXhXeX1Ga0F7XiVUZlBrISZaJlkxXzE3Q3hCMjBHMCZFNnh1X1VQKSp6QWY1
UHleZmo3cVUofSU0KCtNKQp6aV8lb1I/JT1BJnQ2blk0bE1XP01FVWN9R00hMSg+VE9XeWI3b3ti
eU43YSFtRTk9OUNuITBNezg0V2VBWVhgO3cKenpSbDtvb0lKQitaQjJia2NOdTd7dEV2NUJVdX5+
dnl2ZGtmJWM2e0hzdkIkU1l0XkF5K1oqWntTOTIkKXdJTnh5CnpeVjFqQiptP09pRXckPHg2O3l1
YWBqJmRiLXBeVmJpTFJ7WXsqTlFrTmI8aGU+RFdAO3hAcnBkUmRBTVJDeG0oUgp6KktrKmYzUipf
bF4lWGAlNkR3Un1yP34mO0NLNjFWIWNyQD1AXzBfLTYhTy1UVFJEI3wpPm5TMj9gMCNYVDZ+elgK
emR2RXpaT01gI3lAbTFJSWd4cDlwKn1TU2FiLS1xT2lgLVMtPV9TMDNScTl7e0E0UHJpVmNsREgz
OXVfQih7QWVDCnpHSml4ZCYpTDl1Y1RqY2NXc0Q0VyRPeTsyR2t0KmpkYno4LXVVcS0meF96WWwp
Yyl0e1hKN21OXkw2azReNypCSQp6eHxtR1M3eWw8dV87dSsmUzk/a09OYzs0TUMtPD9eZjQ8QFVy
XjBvOFhNNnJFPF5PTn17JXZkQHs+cXx1UzB1V3MKemlHNUU2V2tWTHhSe1ZnYlcrTzBVMCVicGMy
N05pQFU3RElTci16VEY/Qj9zMW1yKHUpakN6b2tgYmYmZHohKTBPCnpWX3hBQ2lFWTRHe19fNDwr
TVZOT1FEUSlkRlNaVy04ej8qc2o0ej1hVk82WjdzMXZ5ODdlTWhPJUh6T2YpLW1+Uwp6enxAfXRt
bTB1alp2KUBFayNaOGE7dF5vX1hrZjt4eilaUzFYMSlvUzVBY1B9blM1TEdpJExYN3oqWVlOdUN7
MiQKej4lZzM2X2AydkIhMkV2IzMrU3BAel5fZGYoYUNZYFJBOStfejsqUyYoKGg5QzBYT2l2WjtJ
Mml2SnpOK0s0bGxNCnpnMDc1fXl2OXthZno/NkVrQVMrX2xvUC0kM3hFYyRucnFrIUd9RT9nWDhw
SWF7c140e1FDfE9UKDwjcGE4fFhzVwp6QEVMSUQ5bCQtVF9ueFBLSHJDdHJBJU9qfikwTH01ZyRX
ZG0hbiZjezZzIWw7NnJLbVJFZT1xZ3J+SFpYNWY0cUwKemdlWEB+N0UkVWJaSW02OSE8NkhjUTxR
KTRlcjhjRncwIXtqNGN5KkoqLUZfPGQ3QVBEPHNaRH44cyZWLTZ2fUskCnpIUlRUMHd8NCNkeHw7
YipEd2pPYCtAQGNiRX4/em5jelArQDkkfV9rI1pOcn03ZWxBWk41Zig/cF49fD9LS0g4NwplZjt6
UEZEeCRDKktaWXVVTX56bTtVJmp7WGpSUzlaR1ctfEFGOSZHPQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8udGhlb3JhLm9ndiBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8udGhlb3JhLm9ndgpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDQ1ODY3OGZiZmQ4MTk5N2VlNWVmZjU0ZjhiNWU3ZmJkODU1MjY0YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNDYzMAp6Y21lSTRjfDRSfHxIbG9vJWgobFJu
NmVnd0VKYiNNKDlCcHVwfXw8dkZxU00pY0crNXArQGZTalFyc3ktQz0/PH4KelQyeFl6dHh9WGtj
UFk9Z1c+bk10Kz5jKHI9bFNkUmEoIVJweVBma251OS17aypFeUcwd3QwRzVHY1luTitGRXtFCno7
JXVTamdWNkt2NCloYHMtNUhwXjR9PHVVelc5ZmxaWXNtSlUpRU4zcW04WCYkdF58NU0rSkcyYH5y
d2ZqMGdzUAp6MjJLV3FHNlRhIT5iTi1ZMng+PDR3O0hMZCg0QGRhUnxwTlR6TWs8JTtKXzhTYHVV
Tz02aFF9Q0FHJGJiMG14e0oKeihETHR8MXRmLWt6Q2s0NHAhR0lrNncpVGlVfmhNbHBBemsyeEgq
M1BVZUpvckQlO2shUHBeeiFwdEdhVkc9JX5mCnp3ZkNsWVpQKnN6RFk/aG5tRFpLU1lge3BXQ0BY
NnpZcFNTNyVHIUFDNGZHfUxhVk4/X3BSK1hoR1BXfEBXQEpwegp6QCRldjFOUy1QKilxM1IoRChW
Vj4hTSslRUVmcUVCVTA4M2tCXlZtSllfbTRpdz5IKCRCQl5NKXhvY2AqR199LS0Kem5pfDl5bihT
SmE+fEFZXms0Vil5R2puOE0/aWVQT2tXcXdVIT0kPCo8NHxtUlU+VGI2bEZPfDwoe0loJkB5Jjs3
Cno/YnRJV3xJekVialYhKyQrN2JDSk9lXlAqaGMkY1hDMG5eO04kOGtXWSFUWFA0em0+TU43ZFdP
MyRRYzBxQ2k4OAp6RH1re3xGSHV1YXNERCZGT3p9dHlRSz5DOXYlMV4kUHJLd1FnSl9qPjw5d2Qr
VzcjISpCO35BPndTO1dWYldfeVAKemdFeUtVNGVuTUc7Y1JpdSpFP3o9ZyM/WXBUZX1ubSprWXNn
RjI0STt0K0RZdk4/I3YkPWd0cj4zWGoodDkwVm1FCnpqfmhicFZuRDxyY3A7Qytxb0BAZ1BwaGFj
cyQqIVpLPEtBY0d5KiplLV8mJCp1b3Nqfk9ecmhjNDYmbE93fX1ANgp6cy1kQT97cGdDT1VKIXU/
MFZLZW56O0gxaTVmaUk9cj9HSmVRJkBPfDBgeEpsOFAtdWx5dV5ET19jOUhrVCY7XnQKemBodDM2
UkQpSXM5VGRERnomc2lwbDlnWistIWQhMVZpSnRgVWshIUFye3gxZj1AWCVsazAoO2dlNDN9V21V
TyUqCno7PFNOKmZqJnc8TWhjMz03KE5nVF5yeFpmX29tTl9pa1ZlY1NJNDA2TWVDcCNVNj1yWnky
PWJ4e29YSj9ANUZ6WAp6cH0rXj1BRHZkUTdAQkJSUSFsaiU/aURsIUxob1cycUUkbWYpRiF4cnl1
N15ue2B0KWFUM3wjYERAR3xpKU1TKCoKejtBdyQ/ciZhXyk4cV8yWihoQyt0Sl8zUXprOFdtK3Jp
SXdXeilXcSVHQllFPDd6b1M9VDN9KE1SeEU2YmZzRy07CnpkMXVnbT1ZY282TzYzPDxkJm9xQGkj
OSNyNC1lPXh6SXNAckB4VW1iUUExTmpgc1c3KHdhKVVFTXsoQDhuJT1JbAp6JG0lOW1vIyMkMUNE
ZVpqO2M0SFQ9JC1BOVFvKmQwaER8dCsrdjhxO0FZanNVSkdMQFJoSkRWflI2bHZfOTA9dkQKekZ7
JkFOV0JhdXlZRWd8SGVRdGlheTI8YkFgOTU1a21zd0xSLWFBZShZR3IpZz1WNldXeHdkTE8zT2dJ
VVB2Q3Q7CnpYUHZhKEJyWTYjRzlaVD5hJmh8I2BCYilSPSFGI0gzanNWZU13QGU3Q1E7c15UckhX
V0hMVDE+YUMzZn0obSZjewp6dlZHOUIlRG5Kc2dHTXMxUSo9PnVgLV84aGQhSH0zd0B5RWpXNCt2
MUlrRVkkcU1hTDBSTDViSExxPlBvc319QmAKenNlTFNGQTBaKmJlN0MoYWJwND59Pno2YHklI0xw
RG5hfmg+blJ4dmhtaXh2Rk9wcEhCJnQ0biU9SlNxU1d0NFR0CnpFclZKUlZeJmtQcmN2bUo2OVd4
YT4jfXhwY1Y4eSotUGhuJDtNUSNzI356QFJyZjAwXko/VmI0Jj9QPUlyTT4tMwp6S2xXcnpBbzhJ
OTxRfER2V01mJmphIVNqRGdLXzImdzlBdGFsPX1Wc2YyN3tYKlp1NVh5KmUydTlwflYxXn19MVUK
enU+PHthTXp0NFRJPWF0VWFzS2ZzdCFKK3dMR2dsJT9FYX4hey1sTTYjaTFyck1AY3NYMktxTl96
OEFXU2JIYnF7Cno+YjFDTiNNT0smZyZuNT9mKWkmbGpxWU9xRG1MTEM2WWVmPUpvdz9QS1JKMik0
IyNlOUZVcUtocjl3YVkhX0hLVgp6JmVnUkV2JlMrWXdHSylAblBjXjVec0wrfWJKRklscz80NEIj
MlRLPj5LeUI0OWkpNz8tO09KXmM8ZFV6enQ2cDkKejtZamoxJDdZN2x2JiNHPDEzdnY1YSs/Kikw
dWUoQnUxTzgpSS1DeUloaXMqP1p1KUpXS2lUU35DXit5bVlQU1UkCnpkI1JuQEQjYng3dUp2PWdP
PXw2P1p2SmBTbUFyOCsrKlB3cW49NzEoTTY8ZzIhaHxIKTxPd0VJb1FBVjwrR1REQAp6WjVzKjwx
MVgpV2FaZy00dkp9MXYpYTFIJDZgPFlZPyFHTisoPlZFTUBiaVBybV8qOGdlLV9TMHpHJC0tYDxa
QEEKenVkJChBam05bU5eQj17Vz9DcndoLWdaX0Q1fk9oNCNhUncmQHNVezgrUih9eSpSWHZHNypC
fjJfRE1nU2dPaG0oCnpgPW01O1M1PW1vTl88bn53VXpPIWhXZWkkd3M4SDF1JDdVcl9gX3w0V3M9
OVdhX19Xb1V9NldOYG0qPGlrbipvMgp6KkhUbHZoUChoKW88aXtyVXJDPEUpND9PZUxeYmstI35w
PlRAaXRjd0lWU3oxc2FOKjFHYVpiN0JWaFJ7eHk1XykKekNkYipKaCh2azk7NjlBIz8pS3MhVnF+
eXJ6Rm4yaE98UHJzVFAxVEFZRlQrVUtHaGtNTDBndDJ1PFQ4ZHZyUCokCnpKV0V1JjZmUUNUJFdh
M00qQTNDbUU0ckpwZjJ5Vl4/RFRxdFQka21vUV48SENiK0ZSJDhxPkpNbTBXSENLRUNRNAp6bXgk
Jjt0Wj5BcjFJZ1V9QD9OJXgrWj90TVJ9JkN7Oy1ZO0gtbDJUTzxPP1VUY2B9RTRicVhrLVUpemRa
OylZdE0KelRFRCN1UEJKO0xoUz5hc1c2Oy0pPmppN2lVKUghUHVIbm81RU4qNXdLOG8zIXUzYygq
Q01HaE50a1hLT1AoSGZDCnpTa2hobmZ2VXg1e14yIU9sUH0lVzZfP2dZcEEkTkNyJWJxSG0wSVZN
byVXV3hVVkBMVGFWZiordj9TOE0xbz4kUwp6NTtrM3I4eHh0e1FpJj9PZXV0fTxyTjc4PkwpeiNv
NjZ1KyorYHh6VT5qKXYtUSQpd1JxbX5OZnBsKXI2SXlaZmkKemBfI1M/IVk1WiNeIz0tT21wYy03
KWEtcUVmVmYmPWUqM1B4JT0yfm54TXlkU1MkenJ5dWJoM0J4VjQ/RHRJR1dECnpvPER7YjQkOXAo
eG0zfCRqKGYqRGdMWkM4S348a1M7aT5la1FPb0xUJT03YzE2fmI7RXd3aD1xXkc1UXlqNHN2SQp6
az1hQ2lBajhNJEJZayF6USlPK0xhemJDRl5HdU4hRX5FK3tRfU5EV0JLeX5VRF9DPU9EXkBoSSt1
Jjc3PVBGbjQKejlKMUd5JEFXcjxPX01GJlcoJUw8Wig3YV45M2lSfG1hc3BmTH11THhQaiZkPHUq
PUJReXIxa2diLVZBcmR7TkVxCno+eHwwSzgjfF9FPE1Rc24jNnZFT2VsMG9xUiM+akJzZm5xJXc8
PFpYVWB+O09gWTsmV3E0WlkjVzl5NlgzKT5rdQp6RnhPfTE4O2tSSVBhen5iP3xTcyNLRiV2Vyo8
N2kjUHhGZ14/VlgkTG18fThPclV8PGV3Jk8lMSZ6MWBwXlI4U0cKemRLVzFtP1hSN3VtMUspJSta
SWBRc3AyYGxoSiVVaHB3PVZBdVhLRWhXcTQqSDhweEZNazg1PEh5O2cxYGVkYTRRCnorUDEhb188
U2NEcEpxbVVgQF5yM3dxXylFZ1RTSGNRVzU4eCtkfG8yUkJ5WW5JPT9xUitaUGlCLUhEPVo/Sig0
fQp6NXVUP1BOeXhuMGZ8R0xSbT01Qk9ASzJYRnh+ekc9OT1GU010djlCK2J+TSVVUz4zIWZaZmV9
RlFBYXVAR3hMPE0KeiFGKz0+aSFfPEUmaW1BTXtAejloMlZ2Wn42NnVKVmRYPzxyZkowU24+fCRq
Rk9rS344ajg4PSE+Y0hPblQkKjxNCnpDXjkzMnc8V29HPGF9IyhfNUVmS2B2cEohZGdxdmozbjZY
c25LOENFNmRnVXRyNT9nUFNoLUQtU2RMUDJkYHtoSwp6RE1xWjJWQ2BEWVZxKVlsKmBtVGJ1UzJN
Mz0qPm4hTFI2fVF7cVRZSW9rPHkxPG5zIyZfTFpHaWAtREhmOyVgU0cKendXfT1reHd8N31sK3Bh
KSRKWmdDdCZVQGtMKXRqOWQoRk87KlI0I3N0RHNBKVgjUEBhJkc1ZGJJazlZQHFPRyloCnpJTDtj
K2JFZnsybz1IQVI3V2AwSHRSbyRvXk9jeHVOcEFuUDdpb2V4ekZybWxCaktGUG5wcF9BUkpEO1VC
SStyaAp6dX19a0xxVCpHJSFNKHA/c1RWJmMtMUY/RXlqPHZ1PThlQVReWUg/KXEzeCl8RDlSPS1p
Zjd1TWlBanIzNTN5ZVkKejNhQFdmMiRMXjBkN29+YCVQPCV1R1QwO2FffkFoSWB8PX5ScXUydy0/
V1MjUTRoXkZkcSE1aVNGLUBuOEZhS0dxCnpJX3hDencmVTx1I2o9c29iQWtqKVVJfktsb3k5Iz5H
TzVFdik5Xih7T1p+TU9yXmptfkNPTz5fJk01Nz9lJWZJdAp6WWZnTVNtcT09e2NYc3VxPWVuJHNR
WklTTiQyKThsRkclMnAlWkJ0UXJwXzdRT2AydTkjWGx8RmFtVEAtPEtld2UKekNQT21odWFYOHEy
UXJraWsxS1NrbEZSTko2JkQ9NDYrSlQoSmUrNHhDbXJSeFVVIXgySnJ4aCg5R3s+REdqMFFjCnpa
RmJ3dWk8clgxNSEwa090NGcyM3VjO0t6alFUb0NWYVk5SUEpNEt8P196em4oZkVHZCZuPiYyWX1X
PV9vditodAp6WjhEZCpkKGB0MV5ZPGVMYlQpJklJQUwyNlZGPXBra0hLem41SVJkaVY/dGEkJDM+
eCYpY2Z6TVUhJSV7SCFrNSoKemA9PVZfdUZYQ0JeOEJBdXt3YXhZbShWWiRVKXF8cD1aXmVvelVC
UWF3P3J0a3E4e3RZZXghMihYVkZJNGlIcUY+Cnp7RXZ4RHAlJVdpRCgrPXViMz8tNkk8QVIyTWFj
bFcjZkZndCNkcH1hO18qWWAwTDg3MU1KTHhTUiRMU0ZXPmAkKgp6ZWJXKDdrLUBnWlQ7WkIrRVpQ
KmUkRX0pfTthS3IqT3ckb0RreS0hNFQlbSgpRThXV2lvTEFRMGN7Zl4reWpyJGcKelpLcWQ0T3xP
MztEVU4mVztIbW9GdSEwWVVKJnY7WjE8QXc0dCUqS3xnamNLRT5way1kbzlHZmdwYEBuJHVeXmR+
CnorTE5VQWMpSSNlT0deNWI/cV47aE0ramlLb2JyLXdSbHIlbnpURTlqeGU4XlA8I24zZDlzUWt4
RGRtK2Z1SEgpKAp6TDckTiVid292SFppIUNkNUA5R2B4Nj92VFBwPkIxQUcwTjkjbU1kVXRZYj4r
QnpJY1dgPlJTeWRVb2VKJm9zUCoKeiskJkdjWElUeVdEWm5XWGgyTmJrQENXV3B1Rl5pfDg3ciM4
eE11Jms0ayk2Y1BsQTtkP1cxclpZdWZ5dWg5P0FBCnpZaiYlcXBLUzlWMnlxX0QmRkVINTlYVDZO
dSk+SFZRT1NxVlQxemhYYmhKTEJFaHEoJUB7JGNMJTxNS3VTeEtCOwp6Q1ozVHQkc2RkfGJGY3tA
KlZeY25NOWFyOG0kR2R7b3dxQn1AT0BmRzVhM3dCQnhhdEVFQWMmeihtVEJjQiQyNEUKelUqYHtB
MFg4a0xkIXdrQmQ3MGgkYVF4OWllNGdFVCtwR1R2aXt9dUsjcE42UEYwXjRmMUk3T0NHO0cqcWA3
b1YoCno4T0BuOUshIXR+SHElUndVaStXUnkkX3doRTN5WiZtSVluTnY/Q1U2dzspSG5LfGJ6JWlI
JHN6eT90X0omKlJHOwp6aSh6NiVgMkhObEgqYk54MHJvUyNjPn5WIzs4M3BAJjFqVWdHTWJTJmk0
U2Q+Q2RKSCNMPm5kWHh3anZjR0Q9YyQKelolR2tTdzZBZGVVSEkkNmN1KEd6aH5JPT5hNE1xT3Mh
byVAKztPZSQ/QHBLY2B+JWNeUTFocmhHWk1WOyNzWVhGCnowcFJWUGtnTEI7VThESTlIOHNDRkgj
YjlJWm9xeTxIX3dwWiR0ZV9AeHBqI0ZVcTx5NGFeKmNzYj98eVpSPWEwZQp6e2d7eFBWTi1CTVEx
K2EkeGpnPkFGUih4RnJlY1NPd011cUlYRTYhO0dnWHojdylvTmk9T1hqeGBfe1U1N1FDIVoKelpW
R3h1QUh3Uyh0NypsZ3hge3hhKEpKN15KZTswVnpsO1Mzezk2UkBTZ3t9OHpiRmsyeV5fJUI+QmVY
P0didXxPCnojPkdjbDxWNkMwZX1HalF2VGFRR1MxU0lmWGItNTJraEJKKmZhcUhwXlUrPU8kREFM
QDU2cj8pZ2BvO1ZeKmRaKQp6c1F4I0V7ZUs0NDlkdzlYMGY9Wl5USXNrblIwSFN+KEMtUTRvUnR0
dUU2Z05tc0QmYGgzZXU2VEZZM1F5X3k+V2gKejZKWlIpNz18JG5WfFc/dVpGa1dqa198dm1leiU5
OyhvaFlkUT9MV1kxJEU1OChoNGhPRmJ4PWxWR2E8cllZSDhJCnpWRTkpOFF8R31MaEF8OWQ3ez41
MiFaMypyayg+YTZDRmZRP1NzSlBsYlA2dEA3K0ElRFRVdWVRTjJNemohYHZZSwp6Xz9DPUBGI0hi
JHJjUSkwM31ZQ15GcFN9NGd5RyRLUlBzPn54ZX14PTEpQkNPNE9NO0lQWCFOMWdLRj1he01nJmwK
emg4OF55dm9LVSlzS1FXJXB9TEhxWUVPcXFCIUZTUnt+eEpLTClESz8hM3p7LXZaZm9CUisjTGZR
NUpme3p6NVFlCnpSX3gqYmhHRHZtRXt0SXEhIVUrbjNAOy1MSkpCSCRgZD50Sy1DR1lXNGI+bnpn
I2J7YmchcjZYVEN0U15yVThSNgp6RUN9TEEwKHlvWCEqbTN1JlZ3LXdWO0lJVGpOeFUzVk9LZ3Qz
SVBiTmV7bXN2WHtkKExEV0k5Mz5zMk9+Ul5YemoKemJmc2NnMWY9R0wqWV89QWAwb1UhUEp9VEdW
O0lJVGpOeFUzVk5XX2x0XnlGO1QpYk9vWHthOGNRPitGR3t2OGtjCnptUjhzdjE9RH4qeUl9fndK
TGNufk1FflFqK1pZJk40OHNfUEYkYG1QOERWJTI5VXtkNUJEV150UGI+e3AhXyMwSQp6RmJKd15L
cz96c2dgfEpQS3BoMGBgJGlYckRoeVFec3hWWlM1bVgmZCg7eF5UNjhiWW1xTkxKQ09HRE00UDlY
c2wKemk3THE3Pn1eZGl7YD8tMkFmNWRkbmVqSWFlPHZfP0I4KmBlISFVK24zQDstTHlVLXlMMXQ2
JSM3VCYheWhKKSE4CnpRYjF1cEtiWDArIW1eUHtTTCR3OThsO1dlVkByUXhfIWswR0MmQ3pwRiRg
bEUjXyUlMnVzYTxoKEV4KCEpbX1fWAp6THA3WEV1QCklQ1UjdHZTVDB5dTJyVThSPy0wTUpPK3xr
b1MjcWhycW1edSV9RnBPYXMhIVUtSTVyKTAjNUdleTcKeklKX1QyU3NKUShnSCU+aHAoK2N+VCU8
TU0mJUdeZVl8JkZPM3F1dSNEaHlRXnM+PXRlJXRuSlcwN0NtdElnbXkmCkx5MFRGSitUKl9mNSpV
OG8KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ucG90LXZpZGVvLndl
Ym12cDgud2VibSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8ud2VibXZw
OC53ZWJtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzI3N2JkYWFjMWY0N2Y4MDNi
YmU2OTY5MTNhNTNmYTI4NTQ4ZjU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDUx
MjQwCnpjbWVJNTROdyY0OE9Me3psTE1wU3BsVUVtTERaMmQ1dFI1PHNUPiVwQ0xseUtBVnQ5X2Vu
d15kMChDNjYyZEZpZQp6KDl4c3tofVUzWmpIcmhNbDByITZoaFV2KEBUMXlCNGZxdXJLUzVDYE1Y
dE49RjAkfEJlY3kya2JlWWNNT3JybiEKenh0eTs1SWN8VD9iOSptXyo1dmFYYHIjUn1TPlF0K2l+
cnBoXmRTIWZyd35oZWFeam9JTCQoT0lrUEpjUjklV3U2Cnp8SkpHbypZS1Aqcml0TllaJH0rVz8+
cF9sIWwoa0ZDY0c/RE8jTm1hVUtVa2c7ZUYqZUZzZSs3ZjJ4K0ZiZXRIZwp6T3QrTj5lTlRTdVp1
V29hdWNaNnxnTkkpek9taGhfZ2AzfEZvNDBQXm45KEUwanZ3aEM5anMyUF9obFVvSnV+akQKemJH
ayFBXksodkJje1gycDx1X1lSbSY0RnNPRkFSVTdZallDezM3c3p6Xl5fZ0BWTnIjVTdWWWl4TUk9
Zmo1cCVuCnpoI2EzTEBQbl9WclNtUDtTKyZhVkhRRnFeZjJtLWJEZzhXQ3tEdFNfbEM/NTNLMzZB
amBOOG81JEM8Ty14anA9Rgp6ZjhORyUyQihhU3RyX1dDSW0+e1djZG1VTFJGVFQ5XkckSzdiLUNG
aUNkbGg2eko+cUplcmpOPUx6Nj9jTHlNdXcKenJRVU84PnlaY045NHtGZl8rUl8zSkpoaENHQ0F0
JkZYcnlKY3gkWnYyZVdtfCl5N2pkKlN7Qi08aTVVaVFeZT9vCno0VTQ4JG5jWUx6P29LSFdEOXhA
cD0jdCprRllOQ0EtNl9kSzFnPig7MUhUdE9OfWomMElkQWVRT1glaSpUO2J7Xwp6T2RTJWx7UWM0
b21VIyQrUFgmeEYtRTsyenFYOGFnQ20jNUl1SFVSQXg0PiV3Qk13fVMqY1pEbEk7dTE7QG9NdlIK
enVHTVpZOXVAejZuWjJmQFg0VURQKk1fVih2fWVUQm0oTShHSzNrbXFaSih5Q1c+Y3p0dUhGOUs8
Q1V3MVJvd2dZCnpAeXlAYlVpJDBHKnMxPU4pXzElZmFMKFNsJVYqdmA4OXdyRiRCdn03OUA4KDU4
ZytCXjY/ZUI/Q3dyOX4kVDBYKwp6cDhzZ2NeK1Qxcj9UPTI+XkZPYmZKTEM0OHRDUStXYE5DS0Uh
WGYqb1JQVT8hcXd9TXAtPGBDLXtfWlg9VTtKa3AKeiNRaiNzSVR8bDw/d29zIVVuQSNhKjJobitF
anF5PUkrO2xxRmxtTk5FNjg3WXpmNTxMPjJhQl5BPTRqWnNfJkQpCnolfWU7SW4pQnZkSHgwSVk8
QWVVcHtCdHNtQk9jNTklRzUtcjtXRzZoKTBIdzYmKHgzM21EcDgyMyVjNStVRjhkPAp6XlVvUWIy
PEphbjtMcGxiUG98QTVzX1Y8NzxDcnZ0TiFLZnMqaX5IKV5WbHojXmZIcyQ9flYyaGdCTnRRT1N8
ZTIKek9oNW0qZzJRfCFPPXI+JW5ZNDtZfEgtMHlYTjN+R3N2cDVUSGpHSl5Hd0hpQER0MStHZ1JY
WElTTXtncT1SYTRfCnpLVlo9d2VWQjklbFNWVVgzWHw/dUQ2eStPJTl6SnFWJHZycD5nWStRVnBr
bmEoQTYmT3NeZEtSYE9nJmApMGxLMAp6bE9BS3pJdTxvSkczbjB+TzY7b1BIUmlFekczajxESndt
NXFSfUl6QiloX0wtcEBEdz5hfE5mTEZ6TCVvSSpVbkAKem5SRk1Fe3owTHt0fnk8MDleMW1BJkte
dH1NNVFWJSg1dWVrb0ImP25mOTNAXkJsJjhJTHRjUE5rciR2KzxPUWV7CnpjPnlYI1VWdXVHN1o1
NDJ5UnNMYzlWPmVRRG4odl5OfDZeSlF9S0JneWcoTl90VHJ6fD9rYWN6d2I5ZG83dHF3Vgp6Zilg
TT9RNGUwQThfeCM3MyNoeD0xSDM+dD9rYWN6YnlwNEcxLWZ4cCEzKEluKzZpOTN3Vy1lSFJzbWlC
eVp+fGIKeiVSUGVeO0VtJm4kSTQhU058Nl8hUXNmMjVHJmwlKGZxcVlTVGVjez5FZTtsNDxIQyQ0
bSNhdFNIYUlqMUdoQn1RCnpSaXFrJiU9aGVkb1NpP3h3fkN1Qjd3aVhIQ0lwXiRje0kjRD98eTNq
KCY0IW14WT52SmpXT1NESk11bnYmaWQxQgp6KTJ+SVc0PzB+YGRFZTlXXzRiY0hgQiNFUiteZXct
ZVl3WHdvKHphY0Z+e20yNiZDbDZfdkhAKy1PJjQ4RHNMPkEKenw3SDBjeDd2JFVuPkt2djxra088
SCMpdyFfdzJnXihjengxKT94aWt6cW9GbnFUZDt9PGxlQzZ1Xi0kcXg3dTQ5CnpyazNCY0trU3tu
KV8maTI9OzIjNmB7T15xLSl+Rm4jP1pzckhSbig0JGd8dmZ2WmJ9Ynskek9DPDx5cCgmQ3pFUAp6
O3xleHBBNj5rRVFNNnkpKmBpTkFafmJAYnhVXlF6ejJePTBRS00kfjI0fmtxKm5oUWxSYFptK2BM
P3NtPEVJLXUKemI4RTU9VStJNzE/RExNbyFfVUlAU2AmbSFGTCRmN29nIWNOPnVDUlNYZGkkfChM
UjlBNylibkFtLWhqdjZ6djAwCnpEY1QzMVFuVX1DcWN8I2dBQW91Kys2U09ndj0yYX49KD9YdyNW
JCh3ME1Od19iV3kmcEMhZ1E4Y3xWbitjfFZuKwp6Y3xWbitjfFZuK2N8VlFIXkx8PHY8I3w4I1NU
eWdhUWdtSFVyRCl6eXJlWVZSY3xVWnExNmBEXytzV3MqWkp3XykKemxENjEjMSRtdz9jN3BpNCph
T1k7c1Q5cmdzVDlyZ3NUOXJnTU1gd3tAO3NrPEVTbCQyRFl8Wl9RRikkRXJlWVZSCnpjfExUcDE2
YERfJWdOYHJaQysyTVhrSmdIWGtKZ0hYa0pnRl4xUGwoKFkjKXkjNGdKN2RnYCVnVVFlYXl4fH5Z
VQp6eXEtK09FPXUheT13YilEQ3xgR3omdWBtMm89Vlg/bz1WWD9vPVZYP289Vlg/bz1WWD9VWmxo
PiVKWD5ZdjFsR28KenF3O2sobTc7ayhuVGxPPlBKa3xVPS1TMHVrb0Z6Tz1RbWV5JlMlb1VGekYy
ej9QKnxBQTEwbHFQK31LKkVAS3s+CnokKXR5dl5jeU58LXdrcDdkITVDQG1NP1p3ZGR+PHZQaj12
V1FocllldCgpQGgyYkg0VDQ9UDJ3QTVAQlZLZDJQIwp6ZW8hZkxKUiY3X1F7TWZjOVY8SD9EbipX
bU58RUNzUT9aTkU/Z3c8UzE2XiEkSm1sKlVkQUVhbl9DLUlXSTNEdGAKelpIfFhSNn57eE5pc1Ba
c1hMM0IwVi0/M2twXkQ/N1B7cnwoc010a3RKUlM2blpIfFhAZSVsPW5nKHtBUkxLVmtECnpwXkQ/
N1B7cnwoPjlhVz0lQ1U7JHAteyF+UF5qV35OTDFgMUlHenI2dkNaKzImVHFUcEF5YVRYP2VqO21p
e04tVgp6KmhPJFc/UzBBPjxsUEl9WVozIUVvLVVtVWc1eXpsNWdkPH1eSiNFQT5Ncil8OUxNOGgx
O142fnlBJEFlKVpPSTQKekBwT1lkOWBlLStJMzlJVjxAZks5VXROT1o+RykwPUkzOUp8PG9EOzAr
YV84RGE2RGFsRWQhMjYtOWBFUkg/JUlvCno5IzdacStKZlV6Y00lK3FtZTx3YmMrXzE0JEQ/SHoh
U1NmTypoIThqQVBYRTFJM0RWflUxX2ZZVlVNVCN6Z0coIQp6a016enA5cWpSRj1vYFdEc0p+fX08
SShjPEJSQyMpN3Myc3AqK3A8WD5NbnhnKFh4eCtjK18xNCREP0h6IVNTZk8KeipoITlPa3tLS2lJ
MzkzM3xBK1ZFMG1sUTVOOSVoLWYjWHFzJmohYiU8P0JhcUpuQWxqPEklRTw7Q1IkczFqbk9nCno3
czJ0VXk5a2EpJVB4WkJRRnBQRTlNN35RYTZJNjYhMH58Tmt3MkxtPyNKYD12KEAzZlRKVD0yQUFm
ZHorZFlAYgp6MjJ+SUQ8QkBKPC0hMVAmNH58RnVgVmt6RG1lKEBpYytfMTQkRD9IeiFTU2ZPMiMh
YX5FYHNBeGNkP1RrJnJJPzIKenhaJDQ1OXNWcE14RjMoWW4+XmYpTjVsOFd6Jik0TVU0LXspWTU2
QEhfSVQ3P2dncVdEeTlrYSktOT5PYlQ2UGZ9CnprR2hOQ2MobSp5STM5SHUhU1FJPk1RfVhvRV9S
YVJpSGApdzFBOUVNI3srdmp1KlZiUSpUXn13S2dZcno1QTU7NAp6OT95Vj82bXpXWlFESmY0Y3do
Y04mPCh4Y3JTaXMtYENwZExhalUmcHdRMGtyUEcwQCpjd2RXSEE5VDk3X3cyZ14KenlZR0Y8ITEx
Jnt3fjN6eTUxKlpgO1QjNFdrR2hOQ2MobEIoMkZJaUJBfityYHk5a2EpLU5qQ0ZKV0VhQmMpOzwx
Cno7e25HNWp0M2wxT1V+eCNHbF84cDg/dWlzLW9MMDVvKT0re05CdW47X0lSez57Um9hbi05Pk9i
VDZQZn1rR2hOQwp6YyhtKnlJMzlIdSFTUUk+TVF9WG9GODxlIVhKQXk+R008eHU9b2dlXzc3NSZF
VE9KRjFnTjVIenchTyYwWEpPSTcKejN5WFJpNzlDQWtHKm5+SklZRWk4SkVnRE92bVQ0UiV2Z05o
aCgjQUc3RzM/Wj12SllgSz9UeFI/aH1je3pPYDY8CnpBcWs4OUlWYEBJZ35mcWhTb0UrZEZ+QkIw
a2YjWllVZSNGaVBRYz5lZE1wayNWe3c9ZmkjfUUqaE41I2QrI2ljMAp6RHpOeGNCbzteM1Ykbllk
aT0jTyMyNHBFUUl6ez4kanEkP2JTUXsze28zSj5jOGpCTVh1b3pnNiNZdHUqRXtUJksKeiRZakp+
dW9hN3d7anZCOzFyfm85aU56X2tTZSV4bSNFbUJEZm5NWFY3P3k+Xz4wVmZqdXduNmE2QmNKd1Z7
dkFKCno2MU5ZTDkleG9RN05nQnJvTmRIbnRRQ3VLeyNjdy1meU1ZcENHS15TOXc/eX1pKkZgamFS
RzxMIzRJYz5eMXxYYAp6OHkxKEVseFZ2eEo8emdoRUd8I0w7KTs0S0NZaUNnJTgxMykpfkNAbUpa
RnZrZThZVmhVWH5la0Z4Xyk8JD1hdl8KcUBkKmN1dH47P2ZyfnIhckhZfHFYemQxU3VxZjZxanhZ
Mn5nP0wpQSoqOW5XWit5NFFxSFE8XjYKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9wbmdsaWIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9wbmdsaWIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyYTliOTllMDg1Y2E5ODAzMmI1NjViZWI3
OGQ1ZTZjYThmNmVjMTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcG5nbGliLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMjA3ICswLDAgQEAKLS8qKgotKiBBIGhhbmR5IGNsYXNzIHRvIGNhbGN1bGF0ZSBjb2xv
ciB2YWx1ZXMuCi0qCi0qIEB2ZXJzaW9uIDEuMAotKiBAYXV0aG9yIFJvYmVydCBFaXNlbGUgPHJv
YmVydEB4YXJnLm9yZz4KLSogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTAsIFJvYmVydCBF
aXNlbGUKLSogQGxpbmsgaHR0cDovL3d3dy54YXJnLm9yZy8yMDEwLzAzL2dlbmVyYXRlLWNsaWVu
dC1zaWRlLXBuZy1maWxlcy11c2luZy1qYXZhc2NyaXB0LwotKiBAbGljZW5zZSBodHRwOi8vd3d3
Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocCBCU0QgTGljZW5zZQotKgot
Ki8KLQotKGZ1bmN0aW9uKCkgewotCi0gICAgLy8gaGVscGVyIGZ1bmN0aW9ucyBmb3IgdGhhdCBj
dHgKLSAgICBmdW5jdGlvbiB3cml0ZShidWZmZXIsIG9mZnMpIHsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgYXJndW1lbnRzW2ldLmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgICAgICAg
YnVmZmVyW29mZnMrK10gPSBhcmd1bWVudHNbaV0uY2hhckF0KGopOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYnl0ZTIodykgewotICAgICAgICByZXR1
cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgodyA+PiA4KSAmIDI1NSwgdyAmIDI1NSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gYnl0ZTQodykgewotICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFy
Q29kZSgodyA+PiAyNCkgJiAyNTUsICh3ID4+IDE2KSAmIDI1NSwgKHcgPj4gOCkgJiAyNTUsIHcg
JiAyNTUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGJ5dGUybHNiKHcpIHsKLSAgICAgICAgcmV0
dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodyAmIDI1NSwgKHcgPj4gOCkgJiAyNTUpOwotICAgIH0K
LQotICAgIHdpbmRvdy5QTkdsaWIgPSBmdW5jdGlvbih3aWR0aCxoZWlnaHQsZGVwdGgpIHsKLQot
ICAgICAgICB0aGlzLndpZHRoICAgPSB3aWR0aDsKLSAgICAgICAgdGhpcy5oZWlnaHQgID0gaGVp
Z2h0OwotICAgICAgICB0aGlzLmRlcHRoICAgPSBkZXB0aDsKLQotICAgICAgICAvLyBwaXhlbCBk
YXRhIGFuZCByb3cgZmlsdGVyIGlkZW50aWZpZXIgc2l6ZQotICAgICAgICB0aGlzLnBpeF9zaXpl
ID0gaGVpZ2h0ICogKHdpZHRoICsgMSk7Ci0KLSAgICAgICAgLy8gZGVmbGF0ZSBoZWFkZXIsIHBp
eF9zaXplLCBibG9jayBoZWFkZXJzLCBhZGxlcjMyIGNoZWNrc3VtCi0gICAgICAgIHRoaXMuZGF0
YV9zaXplID0gMiArIHRoaXMucGl4X3NpemUgKyA1ICogTWF0aC5mbG9vcigoMHhmZmZlICsgdGhp
cy5waXhfc2l6ZSkgLyAweGZmZmYpICsgNDsKLQotICAgICAgICAvLyBvZmZzZXRzIGFuZCBzaXpl
cyBvZiBQbmcgY2h1bmtzCi0gICAgICAgIHRoaXMuaWhkcl9vZmZzID0gMDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBJSERSIG9mZnNldCBhbmQgc2l6ZQotICAgICAgICB0
aGlzLmloZHJfc2l6ZSA9IDQgKyA0ICsgMTMgKyA0OwotICAgICAgICB0aGlzLnBsdGVfb2ZmcyA9
IHRoaXMuaWhkcl9vZmZzICsgdGhpcy5paGRyX3NpemU7ICAgIC8vIFBMVEUgb2Zmc2V0IGFuZCBz
aXplCi0gICAgICAgIHRoaXMucGx0ZV9zaXplID0gNCArIDQgKyAzICogZGVwdGggKyA0OwotICAg
ICAgICB0aGlzLnRybnNfb2ZmcyA9IHRoaXMucGx0ZV9vZmZzICsgdGhpcy5wbHRlX3NpemU7ICAg
IC8vIHRSTlMgb2Zmc2V0IGFuZCBzaXplCi0gICAgICAgIHRoaXMudHJuc19zaXplID0gNCArIDQg
KyBkZXB0aCArIDQ7Ci0gICAgICAgIHRoaXMuaWRhdF9vZmZzID0gdGhpcy50cm5zX29mZnMgKyB0
aGlzLnRybnNfc2l6ZTsgICAgLy8gSURBVCBvZmZzZXQgYW5kIHNpemUKLSAgICAgICAgdGhpcy5p
ZGF0X3NpemUgPSA0ICsgNCArIHRoaXMuZGF0YV9zaXplICsgNDsKLSAgICAgICAgdGhpcy5pZW5k
X29mZnMgPSB0aGlzLmlkYXRfb2ZmcyArIHRoaXMuaWRhdF9zaXplOyAgICAvLyBJRU5EIG9mZnNl
dCBhbmQgc2l6ZQotICAgICAgICB0aGlzLmllbmRfc2l6ZSA9IDQgKyA0ICsgNDsKLSAgICAgICAg
dGhpcy5idWZmZXJfc2l6ZSAgPSB0aGlzLmllbmRfb2ZmcyArIHRoaXMuaWVuZF9zaXplOyAgICAv
LyB0b3RhbCBQTkcgc2l6ZQotCi0gICAgICAgIHRoaXMuYnVmZmVyICA9IG5ldyBBcnJheSgpOwot
ICAgICAgICB0aGlzLnBhbGV0dGUgPSBuZXcgT2JqZWN0KCk7Ci0gICAgICAgIHRoaXMucGluZGV4
ICA9IDA7Ci0KLSAgICAgICAgdmFyIF9jcmMzMiA9IG5ldyBBcnJheSgpOwotCi0gICAgICAgIC8v
IGluaXRpYWxpemUgYnVmZmVyIHdpdGggemVybyBieXRlcwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMuYnVmZmVyX3NpemU7IGkrKykgewotICAgICAgICAgICAgdGhpcy5idWZmZXJb
aV0gPSAiXHgwMCI7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBpbml0aWFsaXplIG5vbi16ZXJv
IGVsZW1lbnRzCi0gICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLmloZHJfb2ZmcywgYnl0
ZTQodGhpcy5paGRyX3NpemUgLSAxMiksICdJSERSJywgYnl0ZTQod2lkdGgpLCBieXRlNChoZWln
aHQpLCAiXHgwOFx4MDMiKTsKLSAgICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMucGx0ZV9v
ZmZzLCBieXRlNCh0aGlzLnBsdGVfc2l6ZSAtIDEyKSwgJ1BMVEUnKTsKLSAgICAgICAgd3JpdGUo
dGhpcy5idWZmZXIsIHRoaXMudHJuc19vZmZzLCBieXRlNCh0aGlzLnRybnNfc2l6ZSAtIDEyKSwg
J3RSTlMnKTsKLSAgICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMuaWRhdF9vZmZzLCBieXRl
NCh0aGlzLmlkYXRfc2l6ZSAtIDEyKSwgJ0lEQVQnKTsKLSAgICAgICAgd3JpdGUodGhpcy5idWZm
ZXIsIHRoaXMuaWVuZF9vZmZzLCBieXRlNCh0aGlzLmllbmRfc2l6ZSAtIDEyKSwgJ0lFTkQnKTsK
LQotICAgICAgICAvLyBpbml0aWFsaXplIGRlZmxhdGUgaGVhZGVyCi0gICAgICAgIHZhciBoZWFk
ZXIgPSAoKDggKyAoNyA8PCA0KSkgPDwgOCkgfCAoMyA8PCA2KTsKLSAgICAgICAgaGVhZGVyKz0g
MzEgLSAoaGVhZGVyICUgMzEpOwotCi0gICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLmlk
YXRfb2ZmcyArIDgsIGJ5dGUyKGhlYWRlcikpOwotCi0gICAgICAgIC8vIGluaXRpYWxpemUgZGVm
bGF0ZSBibG9jayBoZWFkZXJzCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyAoaSA8PCAxNikgLSAx
IDwgdGhpcy5waXhfc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgc2l6ZSwgYml0czsKLSAg
ICAgICAgICAgIGlmIChpICsgMHhmZmZmIDwgdGhpcy5waXhfc2l6ZSkgewotICAgICAgICAgICAg
ICAgIHNpemUgPSAweGZmZmY7Ci0gICAgICAgICAgICAgICAgYml0cyA9ICJceDAwIjsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSA9IHRoaXMucGl4X3NpemUgLSAo
aSA8PCAxNikgLSBpOwotICAgICAgICAgICAgICAgIGJpdHMgPSAiXHgwMSI7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZGF0X29mZnMgKyA4ICsg
MiArIChpIDw8IDE2KSArIChpIDw8IDIpLCBiaXRzLCBieXRlMmxzYihzaXplKSwgYnl0ZTJsc2Io
fnNpemUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIENyZWF0ZSBjcmMzMiBsb29rdXAgdGFi
bGUgKi8KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykgewotICAgICAgICAg
ICAgdmFyIGMgPSBpOwotICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHsK
LSAgICAgICAgICAgICAgICBpZiAoYyAmIDEpIHsKLSAgICAgICAgICAgICAgICAgICAgYyA9IC0z
MDY2NzQ5MTIgXiAoKGMgPj4gMSkgJiAweDdmZmZmZmZmKTsKLSAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBjID0gKGMgPj4gMSkgJiAweDdmZmZmZmZmOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF9jcmMzMltpXSA9IGM7
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjb21wdXRlIHRoZSBpbmRleCBpbnRvIGEgcG5nIGZv
ciBhIGdpdmVuIHBpeGVsCi0gICAgICAgIHRoaXMuaW5kZXggPSBmdW5jdGlvbih4LHkpIHsKLSAg
ICAgICAgICAgIHZhciBpID0geSAqICh0aGlzLndpZHRoICsgMSkgKyB4ICsgMTsKLSAgICAgICAg
ICAgIHZhciBqID0gdGhpcy5pZGF0X29mZnMgKyA4ICsgMiArIDUgKiBNYXRoLmZsb29yKChpIC8g
MHhmZmZmKSArIDEpICsgaTsKLSAgICAgICAgICAgIHJldHVybiBqOwotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gY29udmVydCBhIGNvbG9yIGFuZCBidWlsZCB1cCB0aGUgcGFsZXR0ZQotICAgICAg
ICB0aGlzLmNvbG9yID0gZnVuY3Rpb24ocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpIHsKLQotICAg
ICAgICAgICAgYWxwaGEgPSBhbHBoYSA+PSAwID8gYWxwaGEgOiAyNTU7Ci0gICAgICAgICAgICB2
YXIgY29sb3IgPSAoKCgoKGFscGhhIDw8IDgpIHwgcmVkKSA8PCA4KSB8IGdyZWVuKSA8PCA4KSB8
IGJsdWU7Ci0KLSAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWxldHRlW2NvbG9yXSA9PSAi
dW5kZWZpbmVkIikgewotICAgICAgICAgICAgICAgIGlmICh0aGlzLnBpbmRleCA9PSB0aGlzLmRl
cHRoKSByZXR1cm4gIlx4MDAiOwotCi0gICAgICAgICAgICAgICAgdmFyIG5keCA9IHRoaXMucGx0
ZV9vZmZzICsgOCArIDMgKiB0aGlzLnBpbmRleDsKLQotICAgICAgICAgICAgICAgIHRoaXMuYnVm
ZmVyW25keCArIDBdID0gU3RyaW5nLmZyb21DaGFyQ29kZShyZWQpOwotICAgICAgICAgICAgICAg
IHRoaXMuYnVmZmVyW25keCArIDFdID0gU3RyaW5nLmZyb21DaGFyQ29kZShncmVlbik7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5idWZmZXJbbmR4ICsgMl0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJs
dWUpOwotICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMudHJuc19vZmZzKzgrdGhpcy5w
aW5kZXhdID0gU3RyaW5nLmZyb21DaGFyQ29kZShhbHBoYSk7Ci0KLSAgICAgICAgICAgICAgICB0
aGlzLnBhbGV0dGVbY29sb3JdID0gU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnBpbmRleCsrKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0aGlzLnBhbGV0dGVbY29sb3JdOwot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gb3V0cHV0IGEgUE5HIHN0cmluZywgQmFzZTY0IGVuY29k
ZWQKLSAgICAgICAgdGhpcy5nZXRCYXNlNjQgPSBmdW5jdGlvbigpIHsKLQotICAgICAgICAgICAg
dmFyIHMgPSB0aGlzLmdldER1bXAoKTsKLQotICAgICAgICAgICAgdmFyIGNoID0gIkFCQ0RFRkdI
SUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89
IjsKLSAgICAgICAgICAgIHZhciBjMSwgYzIsIGMzLCBlMSwgZTIsIGUzLCBlNDsKLSAgICAgICAg
ICAgIHZhciBsID0gcy5sZW5ndGg7Ci0gICAgICAgICAgICB2YXIgaSA9IDA7Ci0gICAgICAgICAg
ICB2YXIgciA9ICIiOwotCi0gICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgYzEgPSBz
LmNoYXJDb2RlQXQoaSk7Ci0gICAgICAgICAgICAgICAgZTEgPSBjMSA+PiAyOwotICAgICAgICAg
ICAgICAgIGMyID0gcy5jaGFyQ29kZUF0KGkrMSk7Ci0gICAgICAgICAgICAgICAgZTIgPSAoKGMx
ICYgMykgPDwgNCkgfCAoYzIgPj4gNCk7Ci0gICAgICAgICAgICAgICAgYzMgPSBzLmNoYXJDb2Rl
QXQoaSsyKTsKLSAgICAgICAgICAgICAgICBpZiAobCA8IGkrMikgeyBlMyA9IDY0OyB9IGVsc2Ug
eyBlMyA9ICgoYzIgJiAweGYpIDw8IDIpIHwgKGMzID4+IDYpOyB9Ci0gICAgICAgICAgICAgICAg
aWYgKGwgPCBpKzMpIHsgZTQgPSA2NDsgfSBlbHNlIHsgZTQgPSBjMyAmIDB4M2Y7IH0KLSAgICAg
ICAgICAgICAgICByKz0gY2guY2hhckF0KGUxKSArIGNoLmNoYXJBdChlMikgKyBjaC5jaGFyQXQo
ZTMpICsgY2guY2hhckF0KGU0KTsKLSAgICAgICAgICAgIH0gd2hpbGUgKChpKz0gMykgPCBsKTsK
LSAgICAgICAgICAgIHJldHVybiByOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gb3V0cHV0IGEg
UE5HIHN0cmluZwotICAgICAgICB0aGlzLmdldER1bXAgPSBmdW5jdGlvbigpIHsKLQotICAgICAg
ICAgICAgLy8gY29tcHV0ZSBhZGxlcjMyIG9mIG91dHB1dCBwaXhlbHMgKyByb3cgZmlsdGVyIGJ5
dGVzCi0gICAgICAgICAgICB2YXIgQkFTRSA9IDY1NTIxOyAvKiBsYXJnZXN0IHByaW1lIHNtYWxs
ZXIgdGhhbiA2NTUzNiAqLwotICAgICAgICAgICAgdmFyIE5NQVggPSA1NTUyOyAgLyogTk1BWCBp
cyB0aGUgbGFyZ2VzdCBuIHN1Y2ggdGhhdCAyNTVuKG4rMSkvMiArIChuKzEpKEJBU0UtMSkgPD0g
Ml4zMi0xICovCi0gICAgICAgICAgICB2YXIgczEgPSAxOwotICAgICAgICAgICAgdmFyIHMyID0g
MDsKLSAgICAgICAgICAgIHZhciBuID0gTk1BWDsKLQotICAgICAgICAgICAgZm9yICh2YXIgeSA9
IDA7IHkgPCB0aGlzLmhlaWdodDsgeSsrKSB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgeCA9
IC0xOyB4IDwgdGhpcy53aWR0aDsgeCsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIHMxKz0gdGhp
cy5idWZmZXJbdGhpcy5pbmRleCh4LCB5KV0uY2hhckNvZGVBdCgwKTsKLSAgICAgICAgICAgICAg
ICAgICAgczIrPSBzMTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChuLT0gMSkgPT0gMCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgczElPSBCQVNFOwotICAgICAgICAgICAgICAgICAgICAg
ICAgczIlPSBCQVNFOwotICAgICAgICAgICAgICAgICAgICAgICAgbiA9IE5NQVg7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBzMSU9IEJBU0U7Ci0gICAgICAgICAgICBzMiU9IEJBU0U7Ci0gICAgICAgICAgICB3cml0
ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZGF0X29mZnMgKyB0aGlzLmlkYXRfc2l6ZSAtIDgsIGJ5dGU0
KChzMiA8PCAxNikgfCBzMSkpOwotCi0gICAgICAgICAgICAvLyBjb21wdXRlIGNyYzMyIG9mIHRo
ZSBQTkcgY2h1bmtzCi0gICAgICAgICAgICBmdW5jdGlvbiBjcmMzMihwbmcsIG9mZnMsIHNpemUp
IHsKLSAgICAgICAgICAgICAgICB2YXIgY3JjID0gLTE7Ci0gICAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDQ7IGkgPCBzaXplLTQ7IGkgKz0gMSkgewotICAgICAgICAgICAgICAgICAgICBjcmMg
PSBfY3JjMzJbKGNyYyBeIHBuZ1tvZmZzK2ldLmNoYXJDb2RlQXQoMCkpICYgMHhmZl0gXiAoKGNy
YyA+PiA4KSAmIDB4MDBmZmZmZmYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB3cml0ZShwbmcsIG9mZnMrc2l6ZS00LCBieXRlNChjcmMgXiAtMSkpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBjcmMzMih0aGlzLmJ1ZmZlciwgdGhpcy5paGRyX29mZnMsIHRoaXMu
aWhkcl9zaXplKTsKLSAgICAgICAgICAgIGNyYzMyKHRoaXMuYnVmZmVyLCB0aGlzLnBsdGVfb2Zm
cywgdGhpcy5wbHRlX3NpemUpOwotICAgICAgICAgICAgY3JjMzIodGhpcy5idWZmZXIsIHRoaXMu
dHJuc19vZmZzLCB0aGlzLnRybnNfc2l6ZSk7Ci0gICAgICAgICAgICBjcmMzMih0aGlzLmJ1ZmZl
ciwgdGhpcy5pZGF0X29mZnMsIHRoaXMuaWRhdF9zaXplKTsKLSAgICAgICAgICAgIGNyYzMyKHRo
aXMuYnVmZmVyLCB0aGlzLmllbmRfb2ZmcywgdGhpcy5pZW5kX3NpemUpOwotCi0gICAgICAgICAg
ICAvLyBjb252ZXJ0IFBORyB0byBzdHJpbmcKLSAgICAgICAgICAgIHJldHVybiAiXDIxMVBOR1xy
XG5cMDMyXG4iK3RoaXMuYnVmZmVyLmpvaW4oJycpOwotICAgICAgICB9Ci0gICAgfQotCi19KSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLm1wNCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5tcDQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRiZDZkNTk2NTg5MDZkMjM1NjZmMWFhMTQ0NDNjM2RjMWVhYjQ2MTAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgOTIyMjUKemNtZUk1M3Y/OUs4T1FKSkd5
QkxVSztEMlJBYzdXNHcyJX1MNWBrSnUzQUxzP3RWKVMmQjl3JVhZelBrcEU9VSFRCnpSMXM+UzBw
SFhJd2xvb3tjdT95UkQ2UGU0S0AyNHxLOVdZazkqfjFQaT09bXcoOUx9RldxYXFgUEVYSjJ3fSh3
Twp6fExufHZ6dShSYGNqaUFnM3U3IztxLXg+WnZialVBKTI/UVBgdUFDcEAtb0kpVHVFaGRHMUcz
cHgtNDgmQzRQNEoKejYyO2VlNUEhdiZGcVY5ZEYmN3M/JGZObmhsZHFWYG4zSExgUWE0fkZQYUpX
K3V6djZESWphanNFeHRlSGpzWHVPCnp7QzQje2k/bC1uVUVlc0ooZnJvMm1zYWc5ZEg8RiM3dT4m
VVJtdEZjUG4+O2E9WmU3VT05MUhveDZQaC14T3d4aQp6eWw/JF4odWBZIXdZP199eCU8UjdaIUxY
Y3tnJnNDbypkPnFeNS0zSVR0MFFlKWhDQ1pgMS1yYDt8S0hCQEFadXoKeko/NmNJcDRNbGFRfHxp
QilRPkxDJTVoIypkVT9xUUlnMVk2fExyZGBXfHN9bUozc0M0cipGQj5CPD8hMj81a2xfCnp4d3JU
R1MjQz1Ecm5tQX1qUXc1Q21XKmUyaCFeZWZXblVeTHppVG0+U3Y5Tz4jS3FPeTh6JF5uU2VfQnN1
c3piKQp6bHNLcW09aWxCPVV3RVNWP0p0YldAfitFWG8+aW04JUBAbj10OGd+dnc0T1UkJnhZc3M4
IV9APTtrdCVYN1h+amQKekY4VCZzYmZ4VH5uZ1BGWGJ4NkJ2aEdPK2E8eX5RfFBJKl5ZdDVlJDUw
YyYraHlFPFU0dTJgO0ZpRWoycEAzdUZACnpuPyQheDA9WE8xUCVJKi1XYE1hSHhMTEhLJXA8QzFU
JmtQdVQhS25hJT4tO3ZzUSt6JSVCY1RzcHNFVVdHM2B7JQp6P31+RSZSfSlvP3MjJnc1UjEjRChG
NGd7ejVMNjUqSDtZeWpJe3JzIShXWigoUUklQW9FfXtONnpYaShVS2N5O1cKenNMSUZ4XkohQnhR
JnNLJU1QaWxGcHhwcmpXVmR7ajNqPF8jdFNIeXU+VnlIWk43fmcxMTd3ZjlFM0ROaz8rUj02CnpP
MXJ2WHQjUSg+RT84QHZ5ZXE4TEMrYFl0Xn5HfGY3UjZlV24/KS1NalYxXiEpZzIjPUNOQEFfSz5j
cn5zKGRzXwp6WF82VkxeM2YhbnE3emh2ZkRNdnp8NUhZWHllcTJYS2taYSlmTzxFTHw3TlBue1pC
KWM4TElPNVBiWEQyS3dVYHYKelo+Q0U5WilUI2RzRSs/TW4rJG1tUkgwSStmPG9ucFlDKTxIJnk4
bUVaa1FuWnJMJFomT3B5SnR2UnREcE9wcFdlCnp0fXNDa05WfEdxdHdDdjU1M0RzUD8rUjs7bXZA
RD0jIUlfO1ZYWXgpUzErdEo2dzgmeVhtanRXPylkSEBzUS1EVwp6Ymx6aVREJGFYMnFGUnQ+ajdE
SW9fQ0V6NUhiN2xVSjVAN1A8XkhGayRfIU9HT2BeSFVIYkFCRUFCRDtoKXErRzwKemxNcTt7PDND
Tkt3RS0kY15lOXgwczFfdlplKn42bHxJPG04NE4mUHc2QHwoWClxKnIlSlU1eXFkdHVnQEFmR3pJ
Cnp0VFEyMj5TJUN7Z0lRO3l2fSt2OUl1cXF4VlhaeW5VMTY7fnErTlptKX1HUj9LM0hve2N+QDkj
RkxfczNZcCs8WQp6YmRHTkJKPU17S3UxJVZtRHhhYmdSMV8qbFIwfFJ2cWEoMFhgPThRZTg9ejd8
aGVHOXVZQylvRHY8TktLey08ZWwKekhiQUFiTmZhdGFSMHxTfnt8R0dWZSp9dUVxemFZQmY4LXJk
ek01UGA9bF5EYHMrJWZKZEB3VXJLTDRrYURpa1Y1CnpSMHxUTkRoTXBxeyRES0M4STk9dUZoRVh7
aiZsN2xLdShHazxyLWFLZlNmR3YzSXBWMVkxYVUoSEFVSnIwQmNRPQp6Y1pJZDQlRGNpXlE+OSZs
dSt9dGIqQzREbEV0Vj97KGRIZ2laQmVANVlpNm9HSDw/QmdscXc9eGttd0t7ZnUtOTIKel50czY+
UkYwPz9CdWJNSlNnTTtVTEEzIVlQNTRCaWF6d1F0KE5QcndPU1MpTHNJbWJuXio7KWdCZFBfNzx8
WlNzCnpSUXNQIXMlKEh0VFBnfmJCZFBfN19Ob1hoKSY4ZzFCc01eZWg7PkZJYFhDSUQpOChVRjck
QiN8aWdGRkVAaTBLbgp6a2FtclMwZGpgQ0UzQ0QqeWVxNz14M3Becio0anRmSDNWenpCa3V9cD9K
TXNKWXdhNyRsX0dqYGsxRWVpcHkweXsKelJyeFlIOVpsSyptOXx0QURvMGNjNShPVSFFWStoKW5u
cGBkNWR0PHklSHd8cDlhV2olN1M7WnpYPj98JCRfR182Cno7UytfKjUhSGYzWCVZZlV3Znx9U3cq
ZXxgc1ZHI0FzMV9zfHN0e1BKe1pIcnJIYjdrPCo2SHZpaW0maz09NCl0Uwp6RWNxTmBFLXIrU05B
bzNnNExgTmkwVntjMnNPQH1We29kbDt4dFhgc3A4ZjJwR2JNVy0kfm0zV3p2YU5IPzV4TFkKejgh
bnF0PCpNI29AYmJvX14qIzV6UyQxVTJsRHlSMXh5dmR4bHtSZkhTaHs/RiRhOGVeIV49S1IreGw4
NEE+K2FGCnp0c0JHQndnIWVZWUZtPHpvZ2NDOHpWKENCY2ZONHJ5VDx+ZCE1SWhaKktLIWktZDxP
fVpTfXNaNzk2X252QlJhTwp6WUNtZkohLXVVfnJ0aHB3cyU+akteKztSV3hWKk5QSzVTZE5ec0Nj
JUE2dDdkQCNEUHlvOE50Ty0wUHAqO0B5NDIKejd8KjJJUUx8Rz1vdCU9bkh9SiZ5bmUqSj1VbWFY
Pz5ZWEo/JipsJTw5Mm96NCheM0NyOD1BdHVgMENLblJ9UXs2CnpeaVNJIXNuaE9Vdkh2PytTPzZ3
Qyo/Uk4xcFMtPHgmIzk/SEU7S2hAYHwyTlNIcTAxM1lncVJGPCN8ODk9fHtpKgp6UnFwIUY+JS1T
P049c1RRVV99I29XKGEtelhWdEtsNWZAazJFemc9O1AraGxjQCskdWVoZCgqYzxhK1dLaHF0WDgK
ejhPaT9NYnhwPl80WiZ8bFIqanx5empjRX5QcmNUOEA3bFU9bz4rWTl3YVQ5SiZ6PzBkV3lwTj5y
UyMxQS16fXdlCnplUnI4eSR8MipXODRBPndsSmJJZUlpPFd7VH1+TTwyZHY4XzxLPSpMeHdgUzls
Ukw1UGZ0Jkl2R1l5JTVzUSNucwp6a1Z6QTtaR2NNUUUoKDwrc3MpTXVORSg1cStXI35HIXY/NXkl
OFd3Z2gteUtpM0ReaU0pJjhlYlcqZVo9TlFGWT4KemgteUtpaTNrV1IpJjVeVnI+YlZFcyEoWUh3
d2JCPUE3SW5AS1N+dTVFbDlMZU1QUkErS2FLdz1SRjA/P0I7Jk1wCnoyVFk2SVFWQXxoaXswSE14
Wi10MTFBOFktaSM7LTRQTTgqWnFgWThWVU1Wa0Ztc2lIaTE/ITVGQHA4ZXM7LXRKXwp6VHxPeDxT
ZUxJR0ZGSzRkY2FyTEVqT003Qm5KTmVGbG50WCRJaWd5Uz0lWmN7U2dRUmAqXm11VFgtaD8rYXp3
UXQKelFSMHJrUXRmfkdLUTMqNk4qQ053czJvdShOWXd1YkVZPCN9QHQ+ZH4xWjxGJD1aNFh5aW83
ZVR7WkJFYjROJlFWCno4dyE7cHNzKUx6NEkhfFVgKExheDhpS29GU25RVnhhTlJJMF9JREhEOG9n
ang5RlgjWVZSMW1sJUxENVElNk5IVAp6VHxwQD9TWGFFMTdweUJAIz4pJXEzZHdrUlZPXm5heWVN
IXRjYnNhJihGYHs7UX11WlJiY3F8S2lpajJASV5hZk4KenNyRW1tNyR7VlpzMV91OzspY0xkLUJj
O1l2O2l2cEYkTX5pQmRQXzcmYlNkK3N7SyFnc3kwQlNZcmBtMWo7SXpTCnorRWZ1KHN7SyNkdW5r
YVlxKFklYE03MUUlVUtOMyorVyE/fG96Wk9BM3Y8bGBzakx5Xm5oRCl4alJ2bmNtfUA0PQp6YypW
aDdHZn5QNSo0MERHMylhO2AjPilybT5NNyZwZ0xVPGtAYDgyc2xKYkllXzNGbHB2U0QrX3NXdSE5
eE1yczYKeiopVi0jQVc5VnhFbDNuJkFoMTtYcDh8SWpEbzBjYzYyK0paRVkoZXdjQihjJnJIXjRv
cD5qbUVBa242WnoqNm1oCnpgbnYlZXBpK3Y3TGdrMlJMODVGM2Z1LTkydzVpJHZtQ3BaQnMyb3Uo
TlIrckV1dkdoPmNCKGMmSDNzZn03IzFoVgp6MWh7P303QUpLUjtFTEJENGZwKnBFS1pqNGY/O3Y4
ajhfMkdsX0tMNmZPVnh2ZEJNNjtyTXpIV3NXTShjU1hZe2kKelJ9antmKXtQZWg/JmdrRHsrbHV5
YW1gU2JLbUxTSHhOVSQrZmpiSjdCZFBfNzVfYmZhPmFpZ08/bHdUQm9oa35JCnpCZFBfNzVfYmZh
WVg4JXdZNkRhWCspPTA7UTd1VDY0SSF7cGA9OTw4JUxiP3Z4VDg9eHFGUnZYdE98anArVyZNPwp6
V2RsX0ReYi1eK01ecDxed1JtbmMxck5mc0k5KTJpZz11a21Id211NkQ7fW9CODhUaytGZkdvSUBg
ODJzbWh5c2kKel5fS0FwIU1nZyRjIWdrSGVXYmkjVTQ1bXpVfG9IP0B1SX10Kyh8U3huMypVbXMh
KFpjSzs4bzdZZVJJempaI0hLCnozbGh5Nkt3em8lS1Y/SEdSRjA/P0Jzel5qVjV4NFoxbDB6cClj
K197ajtJelMrRWZ1KHN7SyNkdW5rYkAoK15Sbwp6OThvUHVHJmMtXnJQfX1XLT1eOUNtQnhQKkRv
MGNjUXBmKkFuSkFXc19iXntXM3VEUlc3O3x3VWdnbHhyITRQeUYKejhuQldGTHY3fl4+LVFHIyZk
dDI3X1V2YSpvaGpNI1B8b1Jge3cpVnFXb0pFSitpPTtHRHB6JnlmfG9aWXQ/IysjCnomOVduRm1n
SkA4JlJ0ZnFza0V1PzxpKzxOe3E1ZHlLVklee1EoSiFqVioyISlQMURZTkdXVyY1T2NecSVATD1u
WQp6NkFuQ0chQUkzQG5BQUc0WDhweyYyQmhSaTIwblAtbFVlV0lhQnQrIXtKdmxJRHx2M3ReZTJL
WEMjVX0tPWc3QUEKemNWRDBQI0RSJWRKZXV7dWI1RCgjRm5zeXdnMmN2bXt5SzhAUmJQTWVWZlAw
fHI9NUx1JWAkZjdfKmJxdVFvTzVyCnpfX21wRTwmRGpib2NzT3BVUk9XZGMmMDlOZTg8WlptdSMr
bFl+Uytka0JNcmQwWFp8b3c4T0olU2omaXV0RzcyeQp6KnMtdVlCZH1xNnFfSFY2YD12WEV7Y3ph
RWptSkxeeztIdChpXnAxQHpDTHNHR0puekVVdTVqZyhYN1ZgRW4lcn4KenJHXnl1aE84UCpQalI+
SnQ4Z352dzRPVSQmeFlzczh9V0VqV2FLLSlPbXQ3Xm0kJk9Me2dkdVZJc1JuKmYmQXR7CnpBTTk8
Xl9JJUwld1luP2NjeWhwZTw5WkRfQDh4Mj5kZD5eaEpNdilSeGB0QzExfWB1eXN1fHV9djhWJWlO
IT1gSgp6SyVfNCE/YGktYzdJbihJIWRqaXV0YDFuTU9XTUB8WWp3cVByOHIkfFc4a0pib1lKUVcx
RUJoa3MhJURUTTRAcy0KendJRVRQaj0tVyM2QGo4RTVtWiV6JG50Yks0U31MOHNjeHo/ZS0oS1BS
SDBJd2hDPTB0WUMpb3EwKWVIdnNTO0VoCnpwaSlNT0xnazJSTDg4NFgwIXl8M1kzNyM9UC0mLSVM
Z2syUkw4NFJ6ZnUtOTIzJmxGNEB3QHtEJFpxKjQ3WTR9Zwp6U1cmTFEpZD5TK2tGPXszMkZNPEhT
NkhpOC1XQXNCbTNEUShUSH5aJFU5aT9UY35AQWdQdT47UT5XayR7NXh1IWIKelJhPXhzNkVqb3c0
fFMpPlN0d09Sdj47SkxrSEF2eHt8ZWZ2bnlEKE0kQENjJFd+ajsrSzUzfTMwVj9mT1FLJWVJCnpF
bDNvNkFoMS0yRCo3fWU4PSVyaWcraz9zWUMpcE8qJDZEdnstXlFaMkI+czMzNUNpTClxK0c1OX0h
cnB7bDdAOAp6R255djVWYjx4RlA5NURhPi01Sjs5Z1ZJcT5rUD1kIW1La08/ZHBORzJCbHArdS0y
ZndFMzdxTS1XQXB3RllXNHUKendUN2YheXxDNiRFTFJGWCVzcn53cUJOU0FuWDBHQmJkSFd2TU1N
aHtvJWtUSVJRc1F7UjFfKmxSMHxTYU8rc0wpCnpabUk7OzJCPFdQMjhHSEkpcStINkc2R0FyfDAk
eGcwVj5VK01XSiM7d0lJPlFLcUloSmA9NV5nWkdjTVNLTUl2Mgp6c3MpTXFBQXpPWHxDTmpkOXg1
dkAqRlImc3c1KW4mU29pcUQ7dld2eD9AYXNBOHNfPE1Fel85KEZNMmNsQVl8fSEKemUpTzV4QlBV
fj91VEBuUiVAKTdCeT1yIzVyfXRsO20pN1FLRyVWWTAwZXQ/QT8tai0yRCpmfGVgVl5OJnN5Ykp1
Cnp1fWtaMVV6aHZvdmhiYFRAdz8yakZzUG1GPGpuYVRPV3hiUTxqfFNuUW8qWEA3QWM9TT1oOT5T
ZCFoSV9vTE52VAp6UitUeGZYaW03YVNid1ZmK2h3IW5sIXluM2srUDA7PigzUnBFNWFSbXBLeFdk
eyhKcVZ6bmI4QCVGQGheJEw+SSsKej5kc1F9X19qekByMlJlVihBanMoPF9eX2d1WVBOPHAjNzE5
PjdSaDN6aGVEMXVzOU9kPnRAYiRAeHwzNktiZCpOCnp2JWhTPXlCJDUmY3I9SWpNT3ZoKTlncUdA
ZU57KXJiTT9uN2gyOyRXZnc9al9VSF9mRmRpfWUyPnNVaFBXQnRqTwp6Ymd9K18+RTE1N3VaeW0p
PihjWHNVRyhAYWRNSyhwVWxwJUl6dTBsPENTSVI1TiEleFFleTdKQkpjdDh2XyNmS18Keipufipj
alBsT0w3NWZXazI0ZmtvRj9MLU1XODszcSp6e1clbn0zUzJoWHloQk9idWhOMk4tKkFBWS0zelY0
Qm08Cnp3MldKc2NJXmVHalQ8bGFObmdZbUQpanhCNylgX3cxI2tNXnNfUEI+b1VpfXhXXncyRzFK
PXpAcHw5NkBxKz5feAp6biVWdE9GKXkxciNAfmt4NzFndUMjcUFFQVVuWXk2JVN9VXRFNyY8eUJ2
cDN8Njx1R2cjQmt4PCpFdzhsMkUpYkEKemltR1FeK2lCZihvZ0xFNnFXVz4tcD89cUluKllZaFY9
fjgtaX1DNU00aDRRcVlpa3FJRDYhVHRUMHVUKmA8TStKCnpTZGJybHZ+S0pLU0g2eWw5aTR1Q3cp
P00rVzZLfTtYYDE3aEh2aCkpeVNEZDtUZUMpRXUwY20xJW9JeiphcCZqbAp6akQ8ZUtJMzhXbmAq
YXpQXmN3Vmc9ZVhuJDFHezAyNVgtUDhhbGIqX05Cbj0+d1h2ZWtKYU56WXxGfjt6UUsjNzcKenY4
bSR6LStZaDNLOD1aZVM2VnFeKn1XTE1zZmUqQDsmXkRAdnk0MztfR19EJGg9Wn0/ak9gY3V3SWxi
NEUlcTRHCnpRcEo5NCRYMkYoPnc8WFFgWm5FdWgkYkhFJDVpP0BKeVA4REtOWHhnWntEbk0hNEpt
JTtOak8reXF4I192NVYkMwp6UHUoeHtZQHl2R29fUXNeaEI/SChNcWBEbm9YcnUtNm9eTVJ2cjBD
TFJrST5pI1g5eWxuZmZ9IXZyX2N1UHVlWXgKTUZVM20yOzshSFIzNlRnUjhVTyRRCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLnBuZyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYwNWFjOWJhMWJiODQ0NGIwNDk1YjM0NjU0ZjBlYjRiZDQzYjVhNDQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeajZs
cjkhMn40NTl4RTFyMWQ0OylvZnlgZ2xYKGZgdSV0V3NJeDtZOQp6P0MxV0kkT19+dUJ6cHc7R0I4
eEJGKSVjPUZmalpBM05eZjdVPz8/VVYwZXxseitnM2xma0NgciZhT1prcGFoPyUKbGkoYG1IYz1D
XykzQHJhODg5NHFre3hgZHtMSU5ubTtPWGs7dmQkQD8yPj8lcEI1ZVF3CgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLnRoZW9yYS5vZ3YgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndgpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTU0MzkxNWExMDgwYzhiYWM1ZGVkOGIxNjU1NGJhZWMyOTBkMWM4MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMDI5Mgp6Y21lRz9jfDZvPl91c0xPSE90
dD0zeyNBeTNAWEhKT3g3dEghPkNjSiFOaWJ+TEFoO1g0TXtjR3NxQUlLalMjSnQKeml8ams0alM3
YGdtJiZ+QCpZRWt4PXc5OVR7QChaZl51Qi1uS0VMeU1KbSkjKkprTDRMSW5Wd2JufHlzO0Fwdkxz
CnpzYHV+PHpaNWlGTS1YLX5TJCsoPDQ8el9pNERqPkMjTldgMXN6UkgtKEprJUVteU9sanhRRWJW
aHhqcX0yR2Ehdgp6NVJmcDBnZGoybXYwLV9yNWQ7YW87TUdKeGtodmI+Rkl2KipKUTxYZF5eJDxs
SyFvaUxfRn1TTm1IXylZMWtENDAKei1YVkNuMkVudD51TVRxOUg9cShLRkJzNGpBZGBWfVVWSGEy
QU9wYUh5OVdEWjZiZG9gRmFGe3IlbWFPZCo2LWFECnohcV5qSD1vVEt0dXQwfH5lSGVSSl44SnQh
VSN0KUFCJi03TjUpODF9I3FjJVctfEN9PmBZYHZkPGE7Q357JXo7cwp6OT5ROClJNkJOb041Tzc+
ZztOcHk5X1J6PDdHe3YmaWNQYDM9LW9eJkp7T0gmZmt6dH44SlFjSTg1XlRALVRYcFgKemRsPFdZ
PXMzNncrVGhSRGRIcDZFVForfUxVNGNPaVV0QGtOTCElWU90TXlyN2QrQDh4alpITmBIUD1tNCU2
aSkhCnpuX0x+TlReKzI8U0RUdXpHUkZIRG5mUkV+KkJCY3xAfClmMilTYXZDM3tiOHJifGxITHZN
MkN+bDtpPm81fSlXTAp6Nk9CTzxmRXFyPzI5fit7YV8pUn5tLX5GY2VDekhCejR2flgrO3J0fVNQ
ei1zIV9CaSE+fmEtNVAoajY9aU57OCYKekFQLXFDTyVsbnNYNVZudkx4fkFfVkV7djJHRkc2VDVO
RD5LSTVOSUUrfjh5cmVQdjVqTl9DZ2xQd29qLSMwWD1LCnpaU0lvRUdaezVRNDVQSDslUDFMVTkw
JHkpVn56RTlOQnZFZUM3UWYpMzgoQ3xXQntZPyZRMWRxR0FlPl9gUiN1Uwp6YiM9ZEJ0Z1hwQ0oh
NyZNN1o8fGxDP0gqMiRZVGd1SmlzbXBTdllyYiFTRTstN2UyKmZAaU01YzlBU09CeWJpUi0KenhZ
WEJROV88QldlU09eKzAjN2dSP1g4IV4xOFF1bipFKnVTejg3R1MwfFd7SFU8NiZ4TU1Pckted2lh
ajtxJnR3CnpnRnlTcHNBTzA2bUBLYDJSakErPyM+PSg5WllaUVQoai1KIUB0OHMqTkB6VDZlX0Vf
dE93JEopNXhYJF9lK24zawp6JWpzTUk3OzhGPWEkVj49R01BdDhTcFBKVyNuNU1uTTR+bXVJI0xW
OV5oaH4/aH1KVk9eez5ITjc4Q2hsXzNHN2wKemo3ITBDNylSdkMwPF94cjlaZGFlITJkWkMtJmV3
YjBQS3I2VUF9PG9gQlolYGp8cypLbUkyaGVmWDRYTCpjZ3VxCnoyMmZVMylfUHhWMUE+blBGZyF7
PyVMUWYlWGk7NEZofm1QZEQzc0dNbFMxTC1FdWRUazAlMEF8QVB+VnZRNDJfagp6JEJZc1pMSTQ+
K0xJXiQqNSNVaUckT1ZMaTRzRzhTYShNZkxTTDtAbVR+Xih0YjB8aXdlbysya2FFSS0rcSYwTyUK
eiNecjJvKXxZY1c0cEt9eiU5YCMqaWB9Vnp5PnckKjdycDl8UjNldmg8SjB+bnQhdnwkOEpAPz5n
O3QpbmtHKHxSCno/UWBRdUBVKyl2YF5zPH51e28tUGI7M2szS3hOSTVDZHF3S0JiSE9PbjdYemhA
NGVhVTY1aWdCbzR4djNYSzlmfQp6PzxCPmhTPldaK0U/MDhFRWZxdEl7ZkNHalFOTlVUVC1QUXts
TW1YVDRiQlNPZXxmWDhVTHhgcWNLKjArTiRgPnkKem8zJlh4clpHJTQkKT1RP0hPezFHPGhpe1Rv
Y0NAaSRYUFN6bCM7dEUpK0VTIU1pZk19Sn4/KGheenBuO15VUGhHCno9I3skNHNrS1E0PyVxcS1a
QW8/floyRFRPPF84TEVAMlBKJnFeVHArKklJZU5hTWF9R2I0N097NUFXNiNTUl9gZQp6YXBSVDlm
YkcyQy1RTnoyKWtlU2l4T0hifihER0VMa1M0XjBeQmJ4STgjX0dwO0hMQlBHPUhoQ0R8RVNtSDRe
JCMKej56WHZ8anw2YyEkLT0jN2VTWGcwNXRETWZ3WTZ9PnslajNQPUdlYUotSV59flpGUH1sS319
T00rbXdebzlyeVFSCnpSdTNGYlBpKUx4X3RCP1hIRyEtaE9gfjAjZWVGMUxXRio/QV9WUk5OcEUr
bFZean1ZUmhibUFFTl9PWlRlIzBKIwp6cEMyd2RWNWZEOChUSTk1dlNNeGpmdD9hbHcyU1BROGZ1
NUc8dlF6Y0pyXjduX2IkYnomO0dYfUpOWEh2dUNsc2cKenZsc1JTQ1FTQi1gIW9INSMrOUEpTjNn
VG82NCFMNyoyYUR+bFhBQ3RSUXZ2JT1zcDQ4JF8rWWEtN2M4dV5jZDE+CnptYUpWWnpXZjdDRD9z
WT9xPCsoYG8jTypQYHFhI3lPZXBxZmZJZmFPbDdJRmZVfVF5aGdGel9eRntiWW9mMEpWKwp6TEF5
T2gpa156JEA3bTkyb0JhJEY5ejEwR1p3JDFyWHE5KDlQQlZ7Z3t1dHd5U1ptUUd8OU93Slk7PT1V
KWQkYkQKejwoPnM8WDxjJlJpa2U3MGlycEtEXiZmRFNyUVkhXkVBck59Zjt2Pm1famx8eylCaGIr
bGtMQCtoeExpPmR0S1ZICno9SXAxQGtBbz9aYVk2SUAoI1VSbDEjQTdwM1ArcyRDZFJWWSljc0tU
YE10WDU3V2VTeipCI31mNmZMcTtRNXd4Twp6PUJUfUI/U2FiMVRsUGN4Y3dmekRWJCp4Y0cqOGxn
djF4NmcmWjt5PTxDeXhSeDE/aUsjenIwfFpTP3ZiTERrWFAKem5DfF5kV098OExXJDI2JkUzT1N1
ZVRCSlZmN3VzPzd1VWk0PUp7YUpDSFdkRnpBJGBrWFRxTSo8NGdsZj96UUZYCnojPCpRWVdaOHwz
Q3RmYClDVWA5NzcwVCg/Z2VLLSUzeSUqV2h2TWBvcWQoJSt7OUI3Yz10c2xVYV4wKH1lKWhZagp6
dT5xWW1Vbnt5filrQ1daOWp3I0VTZHF9PElPPUtFYFVgWl5paTRWeWNSZSZeZXJyX2d4Vm1ud3ta
QSZ4XnwkJUcKemtYZkZfdzh8SUFPZFBIQnhGdEJMY3tOKUtCX34mJXdjfTkzc0orc21hVDxmUDx3
X3s+UGBmeCleSTl4fHJKKilOCnpWOyt6ejNNfFJBS2QrUDJZbjIhREBnLUhnTEpEU2BZeVNPaFNp
SWVsclN5alQ7LWg9S0M3KzBQfEs+YHJsNi1uKQp6TTh3LU1FNUlQYjsjTmh8QlgjQWAxZ3F2fV5K
VX0wd3JIUSNnQy1sdGJDWkB7T1Fgc0hvcmJtKlhITX0lUHBRJkgKejcxTklVK3FPOFpeSGFGJU48
Ukx5KmokdElEUCpzaTA+JEVYXm5+KXY1MCNrdytkWSFLQXxuTShEXjhFVVVAI3UtCnohOUFGYnhz
NmFIS1NaPj5KPntleTd9OH5fZEVNS1o7cSZJbGk8RG96OTk5cU5KNj5zditnY08pezBMb0R8TVRY
Wgp6PVRrMFN3PGJSLUchaE5TOEArbnJRUVVAQiQ8OFdMLXxxQ1dgRDNeTnlOZEZnQj1URj9jaThS
cSQxJkIjblo3SDMKenVRUFlQN1d3JG5mcFI3OUhtVnRSQzg7ajNJSndpTGBQcWohN1omdD49SCFz
Ty1KODt1NnJBRTA/ZWgqWUJfKVlVCnpYTjtMeWZgUis0fERMej4hVWxWX3hHdigwO35ncXElJmI3
YXRNP1FMNnBRSTVyc01wdEYrViRmTXhDVWE9M2YtTQp6OCswX1NAbjlsdG1iVE56Zml4MjZ7aWMw
cksoQzt0e2tESis/QVJHb3c7Z1lmT2J0dW90IW8xbD91MkprOXFiJVAKek9wYCFYLWtkPVlXX0My
SlpSS2w/X3N2ZlptVFpRXkB3ZVo3dH1EdiplfWgxR156OW1IUG5GZjRabTMtT3F1SGxACnp3TEwk
IzspPz5TUXRaVDUrUDd1S0UlfkEzXjcqUyo3Mmg2M1k0NVc8WnlyeUBBfnprYXRTRW8lUVg/KUhO
SGd0TAp6bHdYPHBNJiMrY3NSKz1fQ152T1lDKVE3VDZYVDtDKkpoSnBEZ0UmX3E/fW9ET3paSE1Y
e3NaYGhzWVlNPHw9UW0Kelg7O2tuV1lYPn15OFJjQGdgcjNgSlE0KzZtZkBJTiZ6M3lBJSNiPFh0
fXUtJjdDYzVpREwrJEl3YDF2SkwtSjBDCnpXbFZmXj9SY1dvcXdBa3QkIXtqej4jVmVvcj0qPFFM
O1FTR1RTUG1NdjdDOHN2d1V3SWppeTh7ek5tZXU9N3c9Ygp6UVNnYlg3QlRoR0ppKlJLQ253KnFQ
cWYraGY4P0lOZU0lO0l6aWQtTiE/UjF4OFB4Kn55U0J7bHdaNUBFYShJNCEKek9INHs2d2I4KDFT
MEh6blFueCtNMCZPcU9DQW5sPmYyayM0dWMlUEZPcm5UPl5sOU02YV8wRnEjcVAwSnN9dn5nCnpN
QjB8OE1fUllWQ3AhbVRudmRPNSo+UD0xPkhRMSZSKlp+Z202TnFwKkhJbEt0VVE+JHdCVk5POyZi
Qkt3bnd7YAp6e3dSSWgqK0hyYj9xWWV2QyQxfj5PTHMkRD40V2tYWnI5VWpTQz1KKUgtMDc5PHpq
VGZxfWFIZWFiaitkPTNHLWsKej4raGo1YzhGOSU2Uj0xbXJxa1pkMlVrP0JMTE9wMmwoU1g1ODhs
Vj9xTHRZSFROSlBKNkg0OFdwNmxUYkpaVl85CnpoeDBpRzY/TEUkNlVQcCtrUFB4WXk/YmhVPEZD
V15wTXZ2bVpfcDNkPEokZWdTdVlFWGhBNUFBWXV5YHVrbnV+fAp6JHEoYzlNXmZFcXNCUn5vVnE+
KXNiPGdxaj1XTVYxUkJRNm9RfWNDTyhpZWwkWFdVezFPMz9YPjIpVlojYCVNQkYKelpGWGtzcFJf
Z0l4YkBFUy1jcnFKM0dkaiNtRF9JVCg2KShZI2s1SylDbClhP3N3KkNeNkZzVytlOTdjdzhgWXBo
CnooP3pMdGoxYzZvSnNDTFpuQmc3c0ZuPzxnam4rMll8RXR9WVBUJl9iRzJ9P0hRQVZuTXIlN1B4
Zks1QH1uTDgyaAp6LWkxOXFQclI8cC1lYjU8I2pEP1Ztcl88aCRXMkVuQjVJVFNXPlNHKnhDVVp8
RzNRKHZrcENxeSRUI2BNXmBRS1YKemNWek9oVnp4dDxaKURnXjkkeHBjWTNLZFRtWX1XR216aWE1
RGdSe2p6SWB2akZFSUdNUkYyblMlNyVTP0R9QlgrCnp7NzJTT1Arez90JCh7RkBMXzZ7eU9seXFI
fEVySEFnZlFQS2o9MF8oMFk0fCVTe3Mjclg3YCs7TFhacHU8Jj47Ugp6SiRVRWwrQHBnTDd3dTY4
PEtXV002OG9NWDw3ej1eYHNNfUlnWUFJRkxZdysxSyMmbGAjdndDPE1+Tj9RJlN8SmoKeiRoeFRO
d1pOc0FjJXgqTTdeez5LazE1UVYyZ0h8RmxOdn1WbmxKPk9feWk7LThieHV5I0MqK2doM1FAaXhU
MThnCnpIcnhldVJ0TFRYOVZLbj95eDxJKEQyNktfbGt8IVVrfGB2XkFySUV7UDBAI31IYGMkUnFo
KkxkJD04aE0yTzlKUgp6Rm54R1RTVGtRQS16X3glUDQ5UmIpbjJhTip7azA5aStaPjBHOGVnSnl+
Yys5bHZTPUtSI1ozSkt7eDdWcztCNHYKenpgP008IVBMTkVjVjU5Z2tYOVhkfEolZks5Z1RvO3c5
UHIlSUYxJk1eVkV6WjZkaFk0MFF0Wm4kPGEtQ1lMQGlPCnpBISErdHZueEUrSCRMLVhNJnxTNGJL
PC16VV9KPSgtaytsZjUrKUJNYEcjfE5kRkJPWFgzQFchMiE0MDtBT2VWRwp6JVJZNX12SmJ8SkAq
O2Moe3pPMmFVfFdJPj57K0hRRUtCPGtvMGdEYHQ7dWUhUm9mKUs0ZyZsWTBmR3FmMkRZeDIKekVv
VXNkPHlVcTBufDhgT3h0S2Nqe35PNV82flVWP3ohQSpaVTgoK1RxeyU1ZEZEemBKUnlofkJVWHBK
S1JFVyFjCnpoUipFQ29iNUUxJkslRHZNckhOYSRHY19lKUUxe192QVdEQnZ2K3I/Sms0Zng7bzM1
cWF4IWB7U3pWNWpuVDdtUAp6eExsVEtYPmxMbXNaM0B8SD49UD1KIVc1flh6eyUqcGU/TkBiSyt0
eDNZNmxMdnZqSXotVDMtPU4/QmRTK3ExanMKeiZCczhDXz5ydURTfXsqaGBwcVlNeD5GNDEwbE4j
Qzc7cEx6el9gKXhEbVJ+dkw/MkVQQGpfdldGbFJKRVBELUUyCnohUWE2WlhxLXMwQk5hIUhESm5Y
SkEoMUBLKEdWMFp2dj9MYFZ3SnQoRmMtM2UjcX07MGExISp8Ymd5KDZ3O1JBJgp6Tm5AQUEpYTZF
Kl5eKjk/SzlhJHpMM2kmSFJUSmt9VyMkZTZnO2hmeWBoe1NFO3xscEozSmZhUj1halhHM1U3VkgK
enJVISNua3JPR3RjO01iKnlKZVU1RT10fE1zRHNKT3BVPUY+T3grdzdOSnxVN2U+S01RWnNfQ1Qh
O2duZz5gO25qCnome0RyaWVBal58NVdKanQlUTR3MjUjTiM+PHhDWGc1QWVkdXZFUFNrSWohRCQ4
b1F3YT4ocG5eSWIqdE0qMGZqTgp6N0VCamMxPHppRSgwKWFSPnVTJmJSZzhXclY9Izx5dWJRIy0+
UzA+LTttMzF9KHMxYkZsPj9USW1VK0BzaGlfTC0KeihpNXtKWkFUODQjI3pvPUltSD8wVUtIcDNX
IyMxZkMwc35QeERifng4SkRDUnBVUkJTPGtzZnhaWSFJKl9Baz5QCnpEK2VxWGtaZFZmK2l6QSo5
YlNEc1NVZVI1UFAyUjt0JE0tazVNcnllY21OPSU/diYmUGNxX3JXUHoobnRzfEcyQwp6UjV2VD96
aykke1hAUzZ8SyMmUnFIQzhfQjMrX0lWPERoMz5ITjxmbCQyT159Q2dlb0F2IW9QRTt+YkE7eXU+
bGYKekB1fGBsTWNEKFl0fmVFejgqNFlsRXpWS09xS0pZTUYrX3JTaS1kQWpBbjZ0YXdwez9iO3A/
fFQkOXx9RDdIWGRiCnohd0xoVCYkTXBGbHJVP19DO3poPz5tK0V9NFd8Vil6fGJaWDB3Z3xOSClC
flJaJmZGNmA9NDNpd15zailFI01JXwp6KUdmYlkzd1EoIXtnLVYwSH5SYmtJe3JeYjA4QmZDSDI2
fl89Mz97KCprJWFtN31sRERjSStgX2BfT3Qhe1p1IX4KenFpS3EhUWtmJEN7Tm8qdDI0TXlXT3Jg
UldyJWFiKmlhMTUtZSpOTU9MMS1vcldRdz41SWx6Sjw+I3U3RndDZFI/CnpwTkRqYlcocnZMTjl6
KCVednU1eEVFfEhAMnZMWCkkK3I+eT11X1NuTUY9d0VjKygoZylRclBHS3hfc3I1MWpVPwp6aDRF
VHt1amIkOXs+MzFJdHFWY05mV2FYM2M3WV5zOGk4WFZ2NkJYTTNpXyFNUHpib1AwTmd0QChgQWFI
eH40d00KekFRQHEzbCNGV2NHaih9cG1SaVdueUt+eExMJSs+dzF+WVJxVzRVU1A+Xyp3ViQ/emh2
P3BmZUJHYS0qRjBGRDxCCnpjNDBXfHRObG1AKHF6OW9CblhYIz5jLTRjJEhWaVVodilmYWFAK1A5
dzluZU9wcXlOKClSZD13c2d2PH14fHV+Pgp6dHt5UGQleyF1flI4UE9tMUBeVFNtZlpgckooYlEp
aFVlKWY2Y3V5SkJ3U0ZvO05rLXxATF4kfjZ0SzgydU11RCMKelYwa0xWQGx9PmgyYHA0ZkBua2Mo
VHJOMG8xbCZNeztaVE4zNCYwPG56YTFKNV4mQyFOJl9xVW93NTxhQ3R9fE1QCnpmWTViRmlgSSkz
Tkh3Ukx3LThGVExKTnVtYjBMdlYhV1QrPCVNcnpNPV5LZC03I3w4bjRfN0VvKUxXSzl2MzRqZAp6
cGNzPTMzc1doPW09cTRGNytwWjI7RGpPZVFadytrMXNNfXRBX1VFVituelVrWGlzOF5CPlk0K09B
YkAwM35uflgKekN+eD9WbGd6PGBpO2dxdE1MT1c9NiM4QGstV2lHb2VFRCgyNl40Sys7QkhOUHR7
d3ZKQTdAJDhMPEJfT00+fUQrCnp2eXEkfEZXZEBILTYlWDw9WDRUXm4yd3lIQE48KiNNTz1TUTBn
cUc2e1VlXlJmRVRBPSZ4TDMlWXRRcTghXkBSYAp6Rk9fYzg7VFpVVyVqSGZyUktzQiU0eUU0Kks/
RzUlMTBlJDt5YU9OSzFgLWdvREZ9a31GNElHISYqWVdZZnJDeH0Kekp9O3kzTkYyQ3gtOVo8fjVG
S3phckBvIzMyKH13dyRPTSN2M3NyIVdIXkBMcVpuNlg+ZEEkRT48X0A5NVZnJjEpCnpxb3Bvc1hR
TklDRTI+dD1LfWI8QnFTa1R2PVU4eGBpOz9sfWFkYXJHUXIzQEZqdnx2dHJCJiZjbGpfa0Y0fVpo
dgp6WFhjYVdmJnFfMntQSlBvTm54dGpAJHdvKXE4X2VsJGc4QVBJZmRlSFNnam9KeTZJdnZYIz43
bElsIW9TMDxKdmQKemFVNUBQUmM9RWZ6UyQjTXd6KX5zeVFGR1pEXmEkaHNuNFVkTzJqKnt5dGVB
RGVgbD8tYzRDPWZtM3UmXkZxQ2QtCnoxYChGc0hFU2dHKFo+OU96JUdHY0tMQyN+RmlFYE94ZDRW
N1N4aVlaMk9SP3NyYCUpO2cqU1ZeWklEZEY2JjU3bwp6Q3dLeiplIypvI0k/UTFLeFR6LWhRS3F0
NHBhdCpaeH55O2pfYD9AYU5GK21gTipBYnQ+dyRjczF0NXpIbE5WWm0KeldgS143MFhCSGAzWDtG
eGZkVDFnU2R+b0M8cU1LSTl6WUZHNzA3QGczVFooPUEjREtxVT5pSXNGTHpyWWFmSmhMCnpHcnJV
IzAwZncjJEZFbTg7MUt9U15Yb0I3Zmd1dHVnfDhsTHlBZ3NBZmkwViY9eWdHNXZxcHJyeFhTVnot
clZ6bgp6QWokaz5pbGQ9enEqa0dGS2BMPlgwKmcjWiZ9QihlTntXZUg9bX41fTB6TnU5JUZTM2Jo
MDxYeWokdiVYaUlrPSYKelRRc05Wcn5CKldkUHs7bSkqNkIkUEtnUEw9aFA4SUFheWo+MFJoRGIk
NGJqOzVmVExpcEZaZ21melpnKURxNkRUCnolR2wqQGcwQFd8KEIrIUNRJWZLZlJXK3VQUVYpWUlh
amo7R2ZWNCZ1V3NWRSNxN2tBeDU4blEpYn1sR05KfHV5KAp6bD1xJF4ydHdlTmhnQm9rKnFFfV5t
dWhJREY8UlEjV3hPdkUzJTRjK2cxPDw+cjtxYFhJRUFvV3VFUmYpYzhXbG4KejVhY0s+QlAtamZa
aHgjcilGSks7KGxOZU9qMDg/OXUkMlFxcTlPMz40cVJmeDhHYD9fd2gmeH4wc2RKVio4QmNwCnpR
e0tYbDwpOUt6I1FSK3ZtVzJ6dz1vRmx2P19EUCNGfSVpblBqS1Y1QCFJdyklalhRSXcqKS02U3t1
a3BvaXRlMAp6c2g/ZHZlUSE4cVkwdnhWdHEoNFR6U2UoR1U2YTRoUFc4ISZDZ2xWNVE2ajRrPzVz
Y0R3a0RiV2xrT3Z6c3dUQXIKenFoWnRALUIrelFeMjY7XlhISlooSExRdT1AI2JOO3B8IVIxOSVS
akhpZ01VUkJ2U1J8UytudVJQfjdIKG04ZXw9CnohWlA9T3tnbzRBY0l0K34rbyNUJTNKRk9iPSlZ
OTlmN3xxaWlPekleNTA4bCFKZGtfMHowWGEqa1goYExOeFZRKgp6KEM1PEolOEghYDkjbitDejx9
X2hDcGxIdHsqaTtpN2I4ZXshWnpadStvTUI1Xnc/QzBpKlZIfGUjZ0JxeFFUb0kKelcpbihXN2Um
XzFHM2w3Sz9CLT10USZVO3NAMjgqMmpAPGVLdUI0RUliSD1TNzl6Tns1YXQ5eDExRUVYcFVFc3te
CnpvUTgmK3ZjRXZHdSYlaCNefGdHIXpJeWQ0eSZoeXtLWjRHIzNmJHA3U1EpNWsqUEgzIztqc2xr
PTw5PnFoZUJTagp6Yj8jZClZMTlaKHE4VWktWCk2ZXwhT3RZcFImMSpjOXstbTVHX3w5QFE1aGZn
SFFqIUVfey1KcCEmTVZLcXRlalYKekIoXmA/SXdCJU1tP21ESztHPWhrZGc+QyFvbWdePWhpeUR+
JGFYOSlMVUpAaEt1RVZZLXxubk0kVCpJfiR7cXBUCnpRcm8oOXRKP2toX2VUSjxyTWd1VjQocmg8
WkUwSkk4NWBnTiV0PGtUaUxIZSZxZXA+OUVKKXI5MilwVFc7e1FtVwp6SkhGaUN4XjtpeDB6ZTJv
bCYoV0AldGslQnQ5Wkl3THk+fSF0UGY0O2xZJFo4Sj1DJjR5WUNyTjQ7O34jeE5RfEIKem0kWn0y
bytSalVZcEhFeiljMEdzUDQwUmxDNDsqenQpZypYWn16YFZlTUo0dW8lX1JzWWdBRl5mdSt2ZyVG
WHhfCno1PW15JDdpVXZHeXkoQldDKiRESSl0ZG5hYHdrOU49PHhxRDFSfVdlQ3ApfnI7UCgreyhD
ZHM2U1RUUEdraHR7VQp6MHNxX0tsMH5acVJ1dExMVjdFa3l1bCNGJWJTQihjUSRYWGBXJGhxU0dg
fF80Zi1pKmEhPmlJUFI1MGomdjtUTC0KejBndGFwZHkjIXVrKl56aDQpeFhXViFVOGlucU1FYjNx
SjVjYkJgcGd6UlJ4UkJEPTduJitpKT0jczlSJngzKj9jCnpCQHJNekdLVj8jNTAkez5vQ29sS3RB
SH5aYGpSVzdgKmx3dWAxNkh1Y1ZQdi1JbzB7ISltYCZOTSZSdk42cV50Mwp6UFlXPz17P2lFRGZt
K2tlalBFa0NWVVpDcnBlVT8xJl94YntXST1IO2ZhIyFqT1hUP0lSRV9LQEhXYStgMEtYZzUKek1Y
bGk9Kn5RbDF8QSUwS2tIOT5EZzlXWiRQO2tzWis4PSZzIVBfP2YoMTNraERiMW1NbW1peEs4RyVw
My1KdWdOCnp8MWZnb1BiMDk4ejN5b1R6c21AN2tyODtrdFcyTksxaXxfJUBNRlZUUjJlKWxweX5i
MnNERnFKVmRUJVEhOXZ4TAp6MktzayhFbzcwa0J8eT1PSjFSJjJAUDlTYGF8JTJvO1FgcFB3PlI7
LWoydjVKMWJvU2RkfV96diVMNlA4WWg0N3EKeiomXzZWdVYofkdNd0pYR15GekFmJnk3U0VIaj5r
ZSlXOCQlO2IrNGB7fT50MHBQaHlXbHd8S2VfZFQ1ITt3LVdUCmY1N3hVKzVfMWNZNXJQVy1HeSlJ
azR5JmlEZ245Y1padio9dVA3fHR4CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvcmVkLWdyZWVuLndlYm12cDgud2VibSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L3JlZC1ncmVlbi53ZWJtdnA4LndlYm0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFk
OWQ2MDM4NTI3NDk4MDRhMjI4Yjg0MmY4YTU2N2I2MGE3MDE5MjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmxpdGVyYWwgNjU3Nwp6Y21kVH1kc3RLVjg5cFokbDVtSEsxKlBNclo0SCt9Nit7Rkhm
bE9UaVFMTmE8RGd7JiY5dSt+VCpyIVdRMnFkQyUKej4xP0IxYlBfOzE1a2NsQ0gkaGV8VWZMbkx2
Uk5vcjlBWEVQbj9xJkVafDgpaHJRdiprPzJyOUhvK1F0NnpCbGllCnotfHhLN2QoTXxQT0dFPnpe
VEkzdzdmekZ9MzQkZUBCKUNHVT84N349MlpWQmhBPFFIZ3d2bSF9OUhTbX5nakhESwp6ayVxOXc2
T29yPkhYQT9SOChCJFFtXzFzJndKTVEzYFg7UkxCI0J2WHtkMFV8cjQpQ1pKK3pOKEJ0ZmFJZH1P
dXsKel9NVyFnfEtwOFhSVy1sMkNje0R+MiRQJSlqWS0/PHl+ZX1TIV5faHZEKEdqMkE7JVNoK0M9
UmRzS3ZLZT5ESzFvCnpPVy1OKGl0XjlBLWwqISNJYSkrdSZld2BFXzhnNFElRz8mY0V5NmQweitE
RDJXVnFUbmA9TzQpdDBwMkUydVQ2Swp6cGYqMDVsQV4xPjUhV2gtQDZzTEVpQnhoP2M8YG5XKFV1
VlQmc09yfD1VMndIb3swUER0SysqJExAR3RkeUlYPmAKelpybF9lQjB1ZnY9fD8/UmQ4fUZPPCo5
dk9tX3pXTlFYfkFINVNVNihQaGduRGw3fClKezBLfmZWSHxFfHJYb3xPCnp6QCpHfHNVfE5oOS01
elZYbSNrZU9SeyUjYyhgdDBJLSNZVCNqYTk+K2BiYGRyays5aDh5LUFXcFJMIytpOzd2Qgp6K2B4
I3BKWV9xJDU3Vkk1XjlhPnRqVFlPcmBYKjtka2wrd1AyWDgrWkBSRnFMRzUxRjNpJDVaYnpaZX5m
TFlqVFUKelpKeSVtaUBufXpjUmtuZ1lgdEJJeDJ5UDgmRn5NejhCNjJ4MmRQdWg8OEZ4fmBIM0Br
eVVjZkZLTXBQT15QWHlJCno7YkpOIWZqTUYwSUw1SHRqQGU/aStrWjhNYVRQQmxUMGw0cF98RjQm
JmpRUWwwaHpQRnFJdGxAUyU1bmE9JFp2cwp6Xk1JIzFWOV5JeSVtKiNxbjZ0fHhqOUx8TDB4KW5s
Mm5kNktMJHJZNER1TCQjYXhQITRtOXNxO3t8fk9sbTNTTWoKelZVRDctT0tOUGJfc05Qfj1WcVFK
ZU4+I2dyOVlzWlZiTDwwWTJKNkl3Jj80UmIwZiQ1KG1uTlptS2BtS0QwPHNKCnp1czw4MihaQkJ4
RDs/dnJLOXdWTmAkYVQ5aC1PTSEoQnloaVRYe2d0cWp5RmRRVXw3MEMraUNtIyt5flVuOzk9cAp6
VFlyMXVkIUVaOXspKFhJOyUwbHZLZmI2NGVYWTdmSyVKUFkpTlV9I2Q4WlA7MkxWJDZ6KnIwY3Qw
Nz1KMVJUPT0KemhCYDZ8QXgwQWZkPE94RDc5ZSRHSXhSZE1uT2ZWPz0qV3p0LUtMVVlZSGRmeUQy
RXVHNVRMYWtPKUhrTWokeD1ICnolTjF6RiglTyEkKWpeMW5NKz1aVHZUN0Vkajt0UXEtNiNuYldJ
TUpFeituNDgwQXhGTUk+Z1oxJlFNMS1XSUp8MAp6KVFhQUFPMld2SW1PPCloNnR3VmtHPWdrckIl
fEZYeCZKWjxmTlc8cDNAfHUpK1pvOztJZU9hfT5jfE8mVDB5cXMKejxVKSpVVDBxYzdhQyMpM3dC
dF9MeW03fXp1PTxzRjx9JGFnZE98VDJ4SWI7SmpzTkd0VEw7US15UFA/flBMcEFuCno3MUsxPXlY
a1A/P34tJmtOY3F5c3dHOXB4VXloM315aClCZmR6YT0rWGRNMDlMdEReSHAmU2klcUdeI0I0ZHVN
UAp6S2ooVXl5S1UhUitlUU1MP0YjfXZGM0R8cVVZUngjOXJATzBPVSYjNHNoTFd+KCRmXlp1aTNE
NipmKiFJRCE9RTwKejx3XkpLK1BSYHYoQE5laUlnXy16UXhlPW81Q0dZYjh3RHtTOComUkVNeHpj
ZSlSaGFfa2dFWSZAZjt1Xmghemt1Cno1V0hBUDFnKStqd3MhOFJ4SDR6JSswN0pSTUReJEhuSmE9
bClfKVcrPCRndlNsfDlhXk99WnNOeElZfWpFVWRYZgp6VlIxc1lVK00+MEloT0cwQzBYeD9fKDE/
ZC1ffk1Jb2pXXkxhUytsQmVVRHlAQmxYPkFeaW1+PnROWX5EUyZANnAKej1CMT45YD0wOyVJTVAm
MjdYTXwoUFJxPzV5WXRuPGtGa2tTdENBSU9yZ1p2QGpvZDk9ZSM+PVBIOG1MV0FVcENQCnpKTXVi
YyZqWjtDdlpGQiVVPk5mdUt5T0R3SiZnfVFqMnNBe3gxKjlVekR2cz5eKSNNYnhPJHBFSFo8fDMt
TDhAXwp6Zm95MVU2az9vKDBLRStqdWUmQ0ZJKTxVMUNUZ0lTRFAlKWEwbU8pPDF4UChqR1p3QyVy
bHF2SVFXQjwrNE5hY18KejNeT2hTS3NHZGMyViZATFhzRCtkV0o5d25QJUM7SERoYWEqSXRHOz17
UUFsaHNyZkhkcV9Tanl1d2J2ZW1eMG59CnokVilPNzM8MjUlZiMkYVhtSVgxaTI/OERDQ2RCd2Iy
TilfbG47XzclIXJnJlpjc0stVDZOR3VLMVUmP3Y1OXJ5KQp6SWFDWnBMY2Nab1lPNDBqe0xDQlFP
aCZoQDgqYGJHcE1PPyleR0dRKGI9VFNVWmhtMV8pYkk1cGwyZkFRaU8taHMKelcjWT85WUQ5OXtk
fGwqb0ozSSFWZjRLKnVUbkUlfGdIVkNyK3dYUk14US1ELWJab2UkOXY8fUFUbHdyfFVieTNMCnow
Xz1uUztOUCsmX21Ga1JeQHAhb3pSTTlMX2VEOSF3O3NPb2UpODh9b3NOM0ZicUMrKWM8KGw1QCF0
d0lfUE0hcgp6YGtGSmUoYVpteUZneW9OOUdvIXRMWDd0eTA4QUspQVZ4QztLblZqQXFoJHloc2V+
YmtjNEczbzF8JnN7SGcpJDkKei17KCZLJjdRSm50flVZezM1OHtNNCRLXnJDRzFPZHlJKjlfYStL
Sj0oMnE9NmtKa3VTJTQrPGhoY3tBVFE5OHJJCnpaT302RTY0RUBuX3Y2U14jKGZ6WHk9blFXPSo4
NX5kc3ctMF5abEVPQkVqaW56OFFnQz88V0tfaTl+IWhucFdsNgp6KlYqdjBgYiZsbXNDUExucVhj
Q197JHhWX2dyZiQ/cEc8QVNIX3N5RW14RUQqSHNLPX5oUT8pUzZGITwmYU1WRVcKelB4M2M3NUgm
T3N0ZzghSFAhPCZSIUk9WFRefDVLQUtJI3R6IUJrXnpFckhjI1BaUmpLNiNyejVVXmVGME83WG45
Cno2WihvMkAxYVVlciNVNU4wYWFxdiVxZypCc2doQzlvRHpwbWx7aF9mTzU2I20jRVlGJUdRTEhY
ajM/KW1PdHRNegp3R3Y8YGM2Ql9lcyRAe0JyckIqIy0xZEhOWGw8R2MyUjsyaVNzJHtpbFBLbnQ+
bTh7JDZsLVFeSzNxYzg/ZGpKM2MKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9yZWQtaW5kZXhlZC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtaW5k
ZXhlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxODhkMmQ3NWI0NzBkYjhm
NzM4NjFjYTcxNTlmN2Y0ZDhlODIxMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwg
MTY4CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeajNDVSYzP3gtPWhuKWdhJW1GP2p1S3lWckJw
LTJfMUckXzk5K0FaaQp6NEJXeVglKlpmbmpzI0Zwc2wrdisjNXE0VkgjTSg+IU1QfGt1X1FHYHAq
KnVCTCY0cUNIJFdqalBhI3BrSCEtPD0Kek1ZJUlqSEc3R3R1UGdnKU1qMF9IKFpqSngtOVJCT1Ba
ITQhal9iKEBLc0ZOdDwwSGpBI3l9UT5yPm1kS0k7VnN0CkUwRlg1JXtRdip9CgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY2llLXJnYi1w
cm9maWxlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRo
LWNpZS1yZ2ItcHJvZmlsZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOGJm
Mzc3MTc5ZWI5YWJiNDQzNTE0YzczZTFjMWZiMDJlYzcxZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgODY4CnpjbVYtcTFEcEpiUCk8aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhn
MHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhZR0hGOVlQKjctWmJaPktM
WipVKzxMcWl+TmEmS203WS1Jb2RjLXBPenplPllVNm88YlgKejFkQm91eWJvfWZmfWxkRVpjYSZD
TjxwTVZoYV84KmhBN2VgKys2PEBkPEBeZiNsX1hoKi0yMCtJUWE8OVBDXn1HCnp0eGg4TiFHWjdt
aFFyfDt1LTJUbStwJCgpbG97PUhVRjhSJVQ3MDYkR09LS31HbDxLPT5HeVg1dk9HKXBpR2E2Zgp6
MWkpbXxYfWNaJSMhXzVwMUgxI3hWTiU4KlkjPSVfZyNtRjEkbXFCKkFnJSRhNTQ7d0xKRHtGY3tz
N2RZJTNweEcKel9KYV9fRDxEJXAyKkNvN1FSTmJsQ09KMCV0LUtpUHF4OF9JcmZ1OEc4UmspPF9R
JDEzTXkyWHlhanVKODRAQCF5Cnpze0hfe3dSIz1wYnpTfSZLTTIrQXZZI2N0dlR3dkVgZ0hhS1l3
UCFaS0k3c0ZIZzJjVz5DSFViOF5OUmozKmtJbAp6elh1eGQqIVRkKyppTmt0e3JDPzYwMDFDa05L
I0R6MEQ+XzkwRD5fOTBVc095MEIzXiQwQlo7VTBUPmVpMDZ7d2QKejAwVkBGPHJgN30wMEZFP0xf
dCh8K08kX2ttYz1qI2xYJXxFe2pZMXkwdy19eGFyeGUpeWNqU05mez1kI0FmWj8+Cnp5QjdkWnhJ
VDtOZmlmdXFKaWpHQ2w3fUBDQ0lLTW1qe3hMdk5EfX1VTXdYaShuWk50OEBqUmdGdnlNY3R2ZSQh
WAp6LTIoXz9Scz0qaEx1XnslRFBgMz9SNSZKN2VeM0UqITk/Z1RnMTFaKEFmUExNZyU1VUpqeEZu
Wj9KfV5UNjV8RkcKej4+VUxpQnNCSnpwJnZ4aHFDZyZYbjVBOE5tfXNBPjc/JnQqVSpSUEliOzVi
Y0xhIUVuZldqTF9kdXBMMzZaPzlUCnpvRnpXV04mM3ZoNkY2bD9lM187K3YyYCMzIVZ4cndCaFYl
JHJkKD5BMmkoKk9CPDB2R0Y7UUdnISlrWnRXRyhvWAp6TkMqLVhoRVB6YEhZWmcxb1JOSFJURlFa
OEc2d3w7PlFoWDhDUiNCYT12NUNJIXF+Q0p1Mzh2NkwpXm99Y352SH0Kel9RKlhnYSFRZTZPcmFC
YEVzaDlOaXNVVGJCdjRAIzE7MzxZWXJ+OCpnQFV3KWdjUzt9ZzxWdm0zIT9UI0BaP0B1Cno7WUUq
d0szNj5GJTZqcT1pRmBRdGg1YCM7XjNocCtIQXNzNEowQGwpOytOazQ8QGF7REpNK3NTWk5QOT9y
XyRNRwp1JmRNQ0ImflY/MEAyMyhLenAjfWdORSZLM3t7c01gbClIdGQ9QFh5OzAwMDA8TU5VTW5M
U1RZJSlOcD9RCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwt
c3F1YXJlLXdpdGgtY29sb3JtYXRjaC1wcm9maWxlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9ybWF0Y2gtcHJvZmlsZS5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzNDU0ZWMwZGQ3Y2VkODhkODJjODJhZTdhNzJjODY5OTNk
YTQzNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODcxCnpjbVYtdDFETzFZUCk8
aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFyewp6MDAx
cnswZUdjOWJecmhZSEVCYWJQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2RjLXBPenplPllV
Nm88Y0MKenBeOElQJGZtPFphVEtiOVBgOU01Ulp1OT1BPDVSSHApSXchO3BZME10SXkjQklPO3BO
aWk0dHlxbUxrKzkyfXdxCnpDbFVPbkBCRF90O3J5VWRiREQwZXZJeWhVWHNfKWBLTTNYUTE2NWBL
cGQwNnopOUQtbHEkKkFMaUdiLWQwXm83Twp6WH1UQGAjKGJQPDFBRzhteShFdTgpUFVpKyRxYX1x
ej5ZP2wwZFdKXmBxKm9MeEM1K3k7Wkp9Uzc1KVpUKzdDaHkKej98fEwrZ0FnaW5mRV5YUzBAeDxH
RmFRbWVQNHV1b0Zta2hBdVM9KD1xQ180fGErOGQ2eHUzPkxYRyhXWChnVFk3CnowOWFfSzZRdktr
Q0xUenk/ZWcjVktgMEJHekpDMzhyXzQmP1ErQFdgZ31ERUhFX1lteFVeajs5Y0Ewcj1hNk4oTAp6
bW9pKTNnUWEhMm03aHZRUWJZczlkU3c2cjAzYyZYUWNWQj1oWUExeWoweWslXzcoc0Rnd0ZyfmIy
fFY0Pns5PiQKekkrcCtkOVpVTjJXdFJXfDBqeDx4S34jOSF2e3klIyNWYG55Yzszelp1V1FXJEN2
aSkwYFFEX3c3JSZvb2tiZVJvCnpwOyQ0eTdYVlBXSzh4dnJHQVJOKXphPkREaGN5eD0wVStwKTBP
VzUtNjk1PVNtWVgxJXp4JVRCSmZQfmNqenFBcwp6Kk1uJT8wfDtZUTFWbEdPWStCKGRXentgWUkz
YHFvUHl1d29NQ2RNcHdAZVpzcGV1aWM0fFpMU0UkZSZqR08oYyUKejt8M0okOVIoZEVIMT9SR0E0
SmZpS3B1Nk5yQ29jTlhySFBXbW5keXQ7VXhpZSFnPEw7dU5Ib1EhVyV8PVlNfnwqCnpgK0Fke0J8
Z2VZYHBtPT1JQXVuQm5XaStjYnVhPEs1ajJNKiY/WTlQVHh5JkwrfCZ2cjw9OERUUUN2JklZSW8q
agp6RSU9czUyb2U7QVAqQnIwQ3NnXklrJGlBayU3SX1yMkwlZjFRJXJwKFN9YDV5UlN6MSUqczta
flN7T1AqK3s0NnEKelJWSzZjJFVRQWBOfDlucnAlYkpuanRFblY8U2dES1ArPTRXem9jVnAhO0Ni
QWcwelEoNiQtQ35UfnduQnFWYDRiCno8WCYwZk1VUjYlUzNLditkaCF5OWRecUBxMHQ7WEEoT0c+
cE5RKFBBQ1QxdCVtKWAmN19qYjVEXlVFUF56O0labgp4KCVFTHQke2VjRGFObWpWcnhGI3Z1JDNm
ODhmckhHMHwyNnd5TT9DZDZRQlM5MDAyb3ZQREhMa1YxZ1d8YzhDQX4KCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJv
ZmlsZS5qcGcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1j
b2xvcnNwaW4tcHJvZmlsZS5qcGcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MTg2
OTY4ZmJkMDMzODVmZGUzZDI3OGNhODBhNWIxZDgxNjZhYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgOTE0NQp6Y21lRz5ZansmdHcpLVMpbDBJayZFbUZLUU9icE1Gdzg9U25YUXRM
UE51ZiVocX4reVJkLUZJK1E8SSFESWNaRFAKektAYig0YEQ2ZjwoUSY4PHNQSylTan1jTXQ5WGty
cm5mWWUhMm93PGd5YSttQztjQH03U1chNTQ/UzFtOXFWVWJWCnpHaz5OIy0oRnwhd2Jvdkg/WH1s
X1dOK2FlO1I3YEdoSzl4bExgZikwTHVuOGFqITIoeWIlJW9weCF2ZW1ncGROcwp6c2N9ZE83eklC
PlU1eUZ9aip5U35tbl9+KyV9QzJnSyEhI0QoZjElSEQyQ3ZiZklvTyY3IXs9SlppZXNNc0N4SG4K
ejJ1JlpHYFB1YFZrNXg2YmFYZ283PEtpa3V2cTd+ZTkxQ3o9TnlPLUFvc0ZoI3Z7XitQWTxpdXxY
YXA1VmBVRUFtCnpEK21aWkE8NjJXYEdobyF0RmEmPzg2ezJJRDlpNSRIN1ZCKllGZDZqQnZlS1JS
VV5zam1iOG9OJn17Z0VONXJwPwp6P0BMU3J1NWMyU2wwTE9NKz12cVgyYkdaJDNmelRqM2gkd25z
OHBkKTZlJnVKaWJ8Q3cjVTt3fDwpeCtOPEV0dHYKeiMjZEJTRE45TDhmNWdKcUF2TEM/V0s3d1p2
MU1nckU2ZDh0RGxzVWw2c3N0Jk0xay0tcSpOZF5ua2w4IU5UUV5xCnpOPWtTaXgtQXVVUUZVTnRB
dz8xeGpGU2Bzckp6dElSfT5ZT0tzYnpLUWI7MXJGdmxYUWZSYWlJQiF6T0JxRUszQAp6MmN9WTVh
THFXbiZfM1Q9cTMmNEQkU1QpdGU0JjJ3bDx9VDdlMG9ELSNVNil6PmV9WWhONno/QCM7Y3h1QCRQ
QlAKemJ1OXRjbzExdmtndU0lbnZZLUJEPDw1UG41Nj9EQ2VgeGJQRkZtfCM7R0BzQlk9M00yVXh5
WTNKTVZxdXNoNCpqCnpgMXFXOCl9bTA/ZWUwanooU1B2Uj1TbjF6ZlZCbjBDYl9LOE5LQ2tmOSM7
U3NiZl94fG5kTklMdT8yNTxfTUZ5Rgp6QGZ9STVTbkZzVz9AdD1lT3FGMis8a082QT9nYitATyRm
TGFuMFdTUilgVn1qVjB6OTM7YXlaSkMyY0JFOVhqU3wKem9jZHR2VHU8WWEkRFg9PT54PjYwKlkh
TW1UdExGeGAzJCNiZSowUSghRWFsSUo7eXZaYCk+VCs+eU12bkpYcDIxCnplWiY1M0g/Qz9sWn5M
JDNnaFJxZmcpY1dwXmZmd1VzYyY9X09lRiZ9bWNUcktkRDQ/MmtENGhRIW1+S0BDSDFCZQp6VVJr
YjYtQ2FvM0lFSypoakdhVXpDeXAjaiZ5c1F4ZmREOHszdVpHOyNiam4rT2hQT2UhWUlyTVo3Pkwm
MnRiJkYKemtmPTBlPEQtdmRER1pfQzFUWjZtciNna0lhfT1VOzd8SUM2VlYrJHdOazc1dE9SfExq
M3k9NmhmcHNJP1M2QmZnCnoqTlp2cndARS1uV2FTWTNjcmA5Y1p3RGF1Mk53fWNJZlEwSG97Vyt4
aW83VFN6aVBsY1B6cCozIzZxYkhnJU9ZMQp6MFBgYWJfI0R1YShCbStRMFdBKEM0aDVrVTBjbTBo
ej54e0JQbm0+VSVkQ1lOOGFEcU1EY3ZuaGtFSjNKX343TVMKej1IcFZhS3lzZTEtNENVN0omJktL
cEBmNDN3Wk1gYztiSXwtPDF+ajJeNy1YQG97T2YtIzAqY1VFeUtzQSQmISg8CnpwR19gfCV0PUN0
OHFyUTY7UUBJWldIfjdgSWBlZVBMa1RWd0EzPjZGaUV0PCFWYEhmKClHMml9Vzl7PEA0YSNHQAp6
RFcwM2YjQEt8SFg5R1kkRWxjQlVURFZ2ZyN1VXRIakR9UzNgRnI8WW5vMn1rVCNIK3Zza0Mja15H
OHpMJHErayYKekJKKVEwN0g/PC10PDI5dEorXy1+T3dNamAmKyYwdzFTP2N6JFJtVnsrUEZsSUpy
V0xPSlhKMXNlcytjb0hSUzt8Cno9dUpnPEsjTXhyMWIrJGZnJkZjbEBlKklpITl9PTRvXnpGPXtg
eSYyMjI/P0Z4ZnUzITV6b2N2clQ4UzkyQEszRAp6anpBIU5nSWVuMmNuR0woJmBWJjUrckJQTj1J
aml0NDMkRWIpU1Zge0k2dnsoTD0waHkkWUJYMnhmY0wtVFZ+ZCoKekxgYjtgPTxUUXFfVV9UJGVz
czcwX31vOFd3PGkmSzRVUn4oMDVYTGB2Sy1rXzBHNTZxRWMrX2QxUkRlZytYTSQmCnoxSUEhT0w9
fjVqUCQzNnVNaDJgPG9DRCZ7QiF8O0pYK3Q9b3lyWWZoPDJKMX1tYU9zT2I5cyVRaSl5PlFhVj1l
PQp6KTFue09iO3JIXytnTSlaVl99dThSaUZDektEODx3czh1Z0F4Xj9jamdLWjFYP24kdUNKIyQ8
OUotN0wtMGQ/SlYKenN2bWRUeH0pKFolWD9NYihNVCs1PiNrSzM8dTxARVMqdW5ONSZwSlhIOTBH
KjdRMzVONGxjb30zXmh5KlF8O0g4CnpeZVVzaU1zSCtIajZ0SmZiVUtTeFhWJlU8KXdJUCVHZDl8
eU4rJmg2bWswIUg5JW48a0g3TTFwKTd8Um8+Wjw5fAp6Kkttb0RtYk9+MFN7PFdobX0tIXlQQS1r
ey10T3ZIYSZrdDRsVEc+KTtXIWBXVmspZkIzcCppU3N8SCllUERKQmIKendVX2koTWxqJmQlRWUp
XkN5ZlhFU35rSykqJStTJCYoaGNkTH1AKHBGRFA0T2d6N0F0M2BlRkNJTT9tSWJjTXt3CnpNV2Zq
IWxEdy1FeTc2NyhvV3UqYSoyNTtiUkttfT9JPkY0em5hMjJWRnozekAjJG5DfnlJQS1gZEZoNVFD
bzNBYQp6SVRFYXdod1RFa3RWe3Nwaj1GaCYyZUEhbFkxUm9sYyYhQCRLZGgkZFlURGRGPnVwQT4m
MHdoM1MhX0M7REMqX3sKejtvI0Q1aWwrWmNqdTNANzQwdzYoV3JZS05UYVpnY3oyTCllKUVpPjg/
UXU0d1IlTTZBTXNfJTg4TytuPyg7RlIqCnpyVVZ4Wk19Uj9PbiZhVVp2RDU5Z0hPNyo+SHxBIz5v
d2FKe1dLQjM2dXNNeDd2Jm12KnRmbUlXKitBM3ZjR19Wdgp6KiEzMmp3VnR1LUt7KitEbzBJZFdh
NDJRITI1Pz0mbURMckdNJjhLWnJVTVZUNE9CcW1VT1oxfil3RWhnaD5MT2IKekx7Y0o9ZnZJTS04
bm08eVFkKGZpPHBnczQxK2ckVm5ATHhrM29VaUImVHhvTFZ5ZS1rVlRAK1Q3UlhpJnRQZEstCnpZ
PThfamkkUD01Pm1idkIxS3B6NmZITzZFOWooI1I3UlhrT2slNnBkZkNoVFpJPjtidiMkX1kkQT9w
byM9MGBlTAp6ejIwRTNuOzZEbXZLcE5fbGk1KTNheHR7cz1gdUo/Rz5pbX1YakBhYm5+Zn1YaEc4
KDAjMmJiWW9GI2MyeSYrdkUKejlTTDRQTTF7I3spRW0/RWs9QGpyRUdDMS1wdEc4RTFWUlZRRyRU
VFdQKC1LKXh7KCVUMz5zWF5PZHhhP0lzejFjCnpLcnZYMUlzJjFpZkl+THtmQDkyamEydGpvNTcz
SUMxdGJDRHcpRWdjM34/KVphNHY+VzdhKncldH5KbUc7OT5+WQp6MHUoN2BmP0ZgT2Z9SD9+ak1X
SVpuWmF+MzM8RSRJRUNYIT9vZnpWfVJ0djZjd098Pm0xPFAyaU04LS1KOUJaPUAKelo0aDRzQ3Z+
d1V1ciEhN0ZyWFI7MCp5JnkpPnQlRjRZLUQ7SDhpODReJX5sc2ZkS3t+K05ePFNVX2NnUDFWUkwm
CnojfFZLMGFSNEMkaz88cG4tQ1dPRD55NVBDV0h2a1heLWMhRCF8cmdeK1pfaGxWWVQyTEwhNjRV
ISUwfWttWnRaaAp6WDB7YFpNWnprdz8lS1M1YVozMntsRSgoclg+I35kKUJtemxTWDl+NyM9XndR
VWtTZ3F5b3E4LUYzNUx6NlJiVDEKenYtUGB8Uz8jeDQmQmdGUGZ0PWxPWl44PlpJR2FlO3MpR3FH
c3VHdlBjcjJ2aXhwYVo3a0tkez8+RnZ5XnlRQ1d+Cnp5OSlsais+am17ZjE1V0pWJlJPVlJwVlow
QG1XOXxTPyQqY28kJklgNEg8RGJqOUBmLTQhU09MU3tlUDBkU0tLOAp6cWFHT2J6XkRnQ0pAOE5E
ZiFzfEI4LXRAbzd1PUh3TjIlbFJBRjtLYEdxMGc+aipERlNRMTd+JTgoSmlBSDZNLWYKejNEMnkw
KSM0PkxzcFJ8TnJEWXR2TCV7MiMqUG8ycm8we2dwNEd4TmwqUXBySUIpQipfY1I7KlotbHhJM0dL
PyR5Cno3V3Z9fGQ7XlNjUE54T25NZyVVM3NzSW1rQG99SjJjS318UTBIWGxeSW1TYUd6OFR7XzVy
MmlxdzBJbUteQyFUfAp6TFYzNl41OWlfYjh1LVk7I2d+JSVUenRgRVJMeTIlaUxnSkZSSnB5T1NQ
R3NBTF80cX5EJGYzc0NkTDBoZmMtM0wKekpMQDYtcXB0Yz5qXjxtQigybn5Nc3lkWFRQMXlpPGJa
fXElXjNFS00rWCR+aUBDcWpWeGomV1lPan0xJGY2alhxCnp6ODxMSnRGWlh5ZFBQdUBPVlZ1MHRC
SyEwQzBXTG1CNitYRUBRaiohNl8meFBAUk1Nc09hZD5QKig2dVUzSlojKQp6I3FlR1p1Zmorc2g0
ITtkVWBnYz8xeXpLS09DVX11RFpDM3l1fCpQRFFIcHtXVmBicXUqKXtTQ0hCISkoYzRxU1UKenFX
U2UjZDhnPG5jc2lDPmBQTkt6WTwlSkxHKCkwejt2MEw2KH5tVHBSLTlTO3FfWlhJWUIxMDgmc2Va
PChiWEAkCnp4JWNSJmZ4RyMyRTc/dUkqfTNuLUE2a05FUWBjSDt2bTAqIV9sTWZUP1ZWbFNPTUM5
UV9yNnY0S2soNFFrRjVYMgp6cW1PT2deMz5ETVl+QStLX0xxME9eNkcyNS1yQyomYCM9MH5WRT0p
Rz87THZmcXJaTjk/MzJPY3BBRFYrZUU1cz0KeigwJS1sVF83emlDQDdIMDNacjFNNjVnPjNYJkYq
aSp5cWFgWilKeX5lKTs0ejwyQFVGU0x1c2huRFdMUk44PEVeCnpCUCRIPm9MJUwyb19YQGNYfnV+
eUNSYnAzYXF7a1U0THI3WTBoP05BVVU/NU9gME5qX2VyV1NjXyhBKCZAa00qYQp6dFZLYWZfRTlf
Y3FDSTxZVGxjRDhKb0MhJC19eitOK1BFYVZeIWBWO3pXUnFsZ0lgPjB5V3l0eG8oQ1M9X1N6cmMK
ekokYD1WIX1Hd2NeRyteJVJ6UypBcnwhQXF3Vmk4cnI2a1NWPUxaRTsoUSRGZF9MK08xYFJhVkFj
U0hBaTBxcWRiCnp6aDNDdTleU2RCPk9jQ3wtfFJvSDlxdHxlPCs1RzN6aUBVaWEmeClJYiZ+NlV4
JX15ZCtqZWY5R18rNFpwVUdRPQp6dytDK2RWKmtaMjJTSXRxK34rXilfYFpHSl44UjR+dD0/WUp6
aChaSlRLJjhXYisqXzBQNn13IWYkMyNHXktJU3cKej40XnZLb04hXjthQnRfKFV9UTxaPWI+OCNe
d1ZYI2A/bWh6O0NvfkdIeU11e1NrXlBSYUNQcylIZXRgZUV5TDlwCnpgd3QmaFNtZUw5T25rYTJh
RExoQTAoeEx8YC1JZ3VlMGNPSHxNfT9neTFMIykxQj40fmFnb0BxPT0rdUpnSTw/Xwp6U30jdDJ8
M1hofHgkQGpsYj1+MSpKRVVMVGBGIV89cEFHIW0mQGJRYlMrSDNeNlZ7KCEtNzQlSTItPTcwNGha
TyEKel56ZFFIPUBWbFBwOG85Y15uRGxsekM4N3A/S0F0Z2JVKzZOSGd3bDV0aD1sM3hlc24le0o0
ZXBFOGQhU15XO31jCnpgcTcxREBBUChGY2M9RjVSYlRjekBfNnMoaGdYIXBibk8wNV9TRHcpe1Ex
PVRHZnhRbjJITktoS2lCdSRwfGRCKAp6XmkldXpVVEY4JWNXJTQyY0lONyVnQiFVMFV0RXxxSVB9
JHArR3BvfWY4dHhlOGBAcGhmQUgqKGZOcHVjQDU1N30KaXppZkhfanZFSkZ4IUN2TDx6RjVxZE0o
ZXJjY0FxcmdSUU4/cTVsT0tVYlliYwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLnBuZyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLnBu
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTkyMjYyNzM3NjhlNTA5NWYyMzBhMzlk
Y2JjMzVkZjk3M2JkZWMxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA4NDEKemNt
Vi1QMUdmQiRQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JC
bTAwMXJ7CnowMDFyezBlR2M5Yl5yaFk3aW1MN1AqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlv
ZGMtcE96eS1MR1MwN2xRUAp6ZzRqV2UxbkdET2FkSWV2O0hyVkBWNHglIWw1OTtIVm5DQntiSz8m
PDNhO0pVMWlAIWVjaEA/SmY8QT5ISXkoZU8KejlSPCZISU1XOW9oJlJqV3lSOGwhVz9JPWgrdFR2
YElybUpQQnw1YTI5WSRyYkg1bHZ4V08pfHo4diRRMDIhTitHCnolanZ1UGpycGloOGg4ZypNe3la
fT1tTWktVTEkKHpmVDI3OzA1SnhQcjFsJVkyeTRGdzRDVUc7aHpZUWVPbkVydgp6SXpHXz1XP3Ix
Q0d9K2czejFRMjJ5SyR6e3M0QXMzT3RQd2tkSXRiKUdlNXxjUT19Ukhpe31UandodFF0aH4tSnMK
eiFiYFpqZmJNSjRSPDI8MjlCdjwpbVM0bD5DKE1rYU4qKD10QXxBZzFLJndaYFVBLVhpMDAwMFdW
QE9nPjAwNFI9CnowMDRsNDAwNENgMDA4UD0wMDI2ZDAwMCtuMDA4O3swMDRtS3BsfTkqMDAwNTNO
a2w8WmMtcGpBTjAhQWYyJE9pOwp6JkhiLXklPnBOSk9MNigkcWBWan41YHZJXzB3QUdTRn1vSzRQ
YEV5ZT40N3BTMHpBSlpLJDM/dzUrKHM0PSNLIzgKelolN2pXNylGK3hBZXExV3ZoaDVpPmEmaFN1
KEg+S1h4IyR7Vl4jITJIJCFZJTtWRVUrSnliWCpSRFZ6YmJpcVhFCnpFYHFtQTUrSS19ZX14WnJV
NStqNWQram8/cCVVVzs2em0tWjlWOWdObjR1cDsoNHMmZGIocDFIZHpmZ1NzdS02agp6WkN+TGYw
ZD5OOCR3SUZkZXReT29NdGY/WkNLTE81bGJqXyElMVFkbiMxbEFXTXRxczNHX2lGczBtMmI5aGE9
RD8KekNaPTMhb0NuPDAzTUEjJkVpcUFDT1QlaCs9NDM3U21QaU5eNm95YngoPjVubWBKOW5fYTlZ
Wk5WS041PTNoR2wjCnplSXtCbDlxM2dMOHA3REkjamFXeUl6IXlVI0NjVUZ2LVplNkVwa2VjVm9h
ZUVxJURwSlE7T3MpLVh1X0E2YX5NZQp6Vns1flZHPStrK2hsQ1hodVozTXlxWUkrO01leVdhUz5a
KkdnRmFWMD1nTkJXNXtZfmBfPVctdFUtSHBlZUtrbW0KemAjVUNQQypxZ2h8Szt+fnhJNlI5QSNL
MkxTZnxxMlgzb2tTcz9jIVhpU01UcDZ+Q35SQnVFLStIdmE8dnFMak9aClRycyklKTAwMDAwTmt2
WFh1MG1qZjJkRzskCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21h
bGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNzkyYjBhYzU3MDNmMzA2ODU2ZDIyOGYxMzVmNGFjOTJmZjk3Mzcx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE5ODUKemNtVjt5MlJgX1RQKTxoOzNL
fExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAwMXJ7CnowMDFyezBl
R2M5Yl5yaGNrNyt8Z1AqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtcm1QWWMhTzM5MCYw
NAp6N2BLV2ptbEMkZ0J9SXhNbW9YUjVGc05pQlFMP29SUVZpM35OVlptNkMjVEQ1bFA9cUJCaHJQ
b2kpPXwzPjR1VU0KekhrR1ZQdjIwM0dSSEZhQj08SmJwK3dEYz9ZJWlZUXRLYWBRJit+aUVeRXt2
UHxERmRoSGx5NXlCNHElUTc9X0h3CnpRXj1ZPEN5MXExaU5Wa1UwM2J2eG1yXnJrYztsYW8wZCFZ
YDBSVUNqbClGJm1tJTYxWFB8MGBMejNabXV3UjQ2eQp6O29vYkJTU25LaDQwUWw4VmN+S3l6KnFg
a1QpYVo2MDJ0ezJiVkgtMDNWQExaS3Z4X1k1KFkzejA4RjZSTEt9ZWIKejk4bGQodjQhaytkUnNz
fThCcENXV0slWVBtS21UMUEpOHtxKTd0fDJXYEcoYihRKUdiPVlkOWUlJmVJSmB+Vm9pCno0WTgw
UzBXdkphMHpeVXE3VEI8WDRjSzZUTEt0RVppZzIobjZBNiQqZnBBRDUyTWJkVzEySk1EZ0F9b2xB
cHtEOQp6Qk1jdzlwOVRPVWd1QHpnX2B3c3gqPmkkZVolXnhnJE5rNWNgVCl9b1B9KFB0dXclY1Ny
WGNgU1k2KkVaN0VudDgKemBjZXNieV9iLV80MWllK1R2I2xqZ2UoQUhHNjRXQTBQWC0zZXwtPmZv
TlVRfF59c2pmSz1jd3xvSHhNVjUwcEx6CnpoVW95emhrIylxUF52Pm47WjghJU8odndJclQ8ejYw
N2pIanJMdnQkaWZYR21YVkJXZzYmbWBRdnhjVDxVRDU2eQp6Wm1LZz9TRTg0IXBFYVVqPGFMQUZx
dntNQmpwfmk+ZW87UVVrZC1yTHZxYCpaZlNJa2l4X1FtbWdCRyVKUFVDdlUKenBSJHglamtVVHhW
WVJpamI+JjMpQjwpR3JIVWdVcCtqK0xGPj1eYl9KRT5pcGVXLW8pV1JKLXc5RT09UklXIyVDCnpJ
cXFAbmNBRG4mbFQofHNnTDkodUM1fCUzamtBSzImdU1vVjxLcFgqPXlKJVYhbGojUXo7KSZaYSVK
M1BaVSotaAp6eDBITDIrcypAVElNMG1kITFMay1AdUdRJnlqMCNIVUo8WEJfbGpAOGNqMz9IdWkr
bygqOWtOUTApYXdzU2tVNVgKej9pJTVtP2I9Q2tzZFpHMWFIMjN0Kng8JUBPTEpGdGs5Tk4hQCk4
d3oqbX5yNmpgeiY9dmhnfVNNS3E7KT5ZezFQCnpYPSZhOT8rNFNyX2leLVRgRXU2YGVfdzZpbnxA
bm8maHhrT0AwKFFfYTUhLU5Zez93fEFpPjs4IUtQbXMlYD0hawp6PlQ2YnJSVllYNzZTZzNIYjtT
TSFXc3hyeVN3c2EjWjxTUVY+UHpQPiZYTSZoWDJ1PGZBRyViWVBgN09RQH1ma30Keml1eyRfUmhM
KSRCe2kqQ3pScUMlbmRIelB2XkhNWTZ1O1NpT1ZfcnUrdD08NCtISmM+R3AmOF50O355QWM/V1Yx
Cno5bjh1OElybkpjQHlaaXpDa04kUTdYK001SSlEMVl2ckJlWTV7ZlRoKDxfVEVGUjhHc08wQzhu
TWF8PmlCPXcjNQp6emlsNGNsSiF2ZHNPaWF1UFZWIUw3ZGJ1QWVRWksjMyR6OD0wJlVAYTMhZiZK
NV57bTRXcT9JSHp9RXZ4Mztedm0KemZZfUhianMlSitMVy1zbmF7ZCh8Kk1leih2X0U8O3FBayFD
WGJUX0FCX1p7cFQtcHd4X00+dTFpQlU0KHVVQ210Cnp7TkIyUjVNb0xRRihRUHhlYXVXSEM4ZEVR
MDdQXnxiVlBMY3lvfXRHXlcldEBtc2lmYzA5LVhxazBpdj1Wb19ZSAp6bnA0Uzlxdkw4QF41PV9v
WGwpRDFkXkZKY1hJbTIpam0ka041bygtNGhDPkV4cyV6O0ZiSUA2K21wZjgtUkVufFgKej1vWFZR
XlpNfnQ2VkJNQStqbHVQMj97KC17TiZMQU9JPXBuTlhsUlQlU041ZSp0VF4/Xlh8VTE9OFN6PSlQ
Y2ZtCnpsZiNsRDhPSlc9Ul4/VG1FWHZPO1NiQTE/anVmNkszY2xFVGRDT0pQO19PbihZbmYkd0gm
Jk1hZSQlNU95fFV8OQp6KFhFWnUpcHRoUl57PzQqP18ldzxJIyZJWmhTPGhVX200ZCZZaWUlcFkw
KyNvez1AUjJlSC1AP18xTFo1e1IhMjwKemQrTnw+e21rVUtaa0l+ZV5YYFRoKkkod24rU1Qqallq
TGxyJi1ATVpPIz9ZWUtDN1pGJj16UDV3MXhOVSk4d0NPCnohb2FabGA8anM2MjEwci02NEt7Uz1P
Njh5LXQlWSt2PDJHMnw2UDlxK2k3SUNNSSNpeTAwMDBXVkBPZz4wMDRSPwp6MDA0bDYwMDAwMDAw
NFpuMDAwM18wMEQoajAwMDAwMDAwMEFTMDxpczAwMDUzTmtsPFpjLXBqQU4wIUFmMiRPaTsKeiZI
Yi15JT5wTkpPTDYoJHFgVmp+NWB2SV8wd0FHU0Z9b0s0UGBFeWU+NDdwUzB6QUpaSyQzP3c1Kyhz
ND0jSyM4CnpaJTdqVzcpRit4QWVxMVd2aGg1aT5hJmhTdShIPktYeCMke1ZeIyEySCQhWSU7VkVV
K0p5YlgqUkRWemJiaXFYRQp6RWBxbUE1K0ktfWV9eFpyVTUrajVkK2pvP3AlVVc7NnptLVo5Vjln
Tm40dXA7KDRzJmRiKHAxSGR6ZmdTc3UtNmoKelpDfkxmMGQ+Tjgkd0lGZGV0Xk9vTXRmP1pDS0xP
NWxial8hJTFRZG4jMWxBV010cXMzR19pRnMwbTJiOWhhPUQ/CnpDWj0zIW9DbjwwM01BIyZFaXFB
Q09UJWgrPTQzN1NtUGlOXjZveWJ4KD41bm1gSjluX2E5WVpOVktONT0zaEdsIwp6ZUl7Qmw5cTNn
TDhwN0RJI2phV3lJeiF5VSNDY1VGdi1aZTZFcGtlY1ZvYWVFcSVEcEpRO09zKS1YdV9BNmF+TWUK
elZ7NX5WRz0raytobENYaHVaM015cVlJKztNZXlXYVM+WipHZ0ZhVjA9Z05CVzV7WX5gXz1XLXRV
LUhwZWVLa21tCnpgI1VDUEMqcWdofEs7fn54STZSOUEjSzJMU2Z8cTJYM29rU3M/YyFYaVNNVHA2
fkN+UkJ1RS0rSHZhPHZxTGpPWgpUcnMpJSkwMDAwME5rdlhYdTBtamZjZXxwXwoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMt
cHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0
aC1zbXB0ZS1jLXByb2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTA0
ZTg5NTIzNWM4ODVhMmZkYWFiMjQ2OTc1MWU4NzNhOWRmMjQzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDg3MQp6Y21WLXQxRE8xWVApPGg7M0t8TGswMDBlMU5KTFRxMDAxaWgwMDFI
ZzBzc0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAwMXJ7MGVHYzliXnJoWUhFQmFiUCo3LVpiWj5L
TFoqVSs8THFpfk5hJkttN1ktSW9kYy1wT3pKND9mMDZoT314CnoyVE8kQEgwYihteCllZns7K2o0
WEw4WjFHbDVFWGBgayticF43LWh9QTBjbDMwb0AlTzlRKit0MWl7SWw7M2hhWgp6STBPayFCNnl+
QSZ2M2JMIUJ9QFh0KileUWxTSGZqYzF5YVJGQmhNdnV0YmR9bzEtdyNvTCtBaUFXNCYkcDl1SlAK
eks+JDQwb2xkTEUtPjhPfSghZUxzaH5oajFWRlNVciZOUFRDenpSKz40ZE1veylVZStNQGNAfFAh
c21iKTYjZmRCCnolSnFCQFotNnkrSnMlN0pEPTZGb0VGRThIZk9lV3EpelNEKyVaNj4rKHV2WF9t
VjtAbzw0Rz1la315P1Nzenk0Rgp6Zlp7Iz9EdWNiPXV2PjVRLT8qTUgzd3U5NjBBZ2ljd3Z6QnZv
cWhrbiohWD1lY058fkIpKn4jOyRgOytpVEBfWUcKeldtfigzU2ArVH56V3tsN1AzaG08U2VwTzww
M2MmWFFjVkI9ZEw7az1mUCgtNF84MCZGZ3dYJjFjXkxvej14aEswCnpKY3xHVDgoNnpNaWs8KWYw
ang8eEt+Izkhdnt5JSMjVmBueWM7M3padVdRVyRDdmkpMGBRRF93NyUmb29rYmVSbwp6cDskNHk3
WFZQV0s4eHZyR0FSTil6YT5ERGhjeXg9MFUrcCkwT1c1LTY5NT1TbVlYMSV6eCVUQkpmUH5janpx
QXMKeipNbiU/MHw7WVExVmxHT1krQihkV3p7YFlJM2Bxb1B5dXdvTUNkTXB3QGVac3BldWljNHxa
TFNFJGUmakdPKGMlCno7fDNKJDlSKGRFSDE/UkdBNEpmaUtwdTZOckNvY05YckhQV21uZHl0O1V4
aWUhZzxMO3VOSG9RIVclfD1ZTX58Kgp6YCtBZHtCfGdlWWBwbT09SUF1bkJuV2krY2J1YTxLNWoy
TSomP1k5UFR4eSZMK3wmdnI8PThEVFFDdiZJWUlvKmoKekUlPXM1Mm9lO0FQKkJyMENzZ15JayRp
QWslN0l9cjJMJWYxUSVycChTfWA1eVJTejElKnM7Wn5Te09QKit7NDZxCnpSVks2YyRVUUFgTnw5
bnJwJWJKbmp0RW5WPFNnREtQKz00V3pvY1ZwITtDYkFnMHpRKDYkLUN+VH53bkJxVmA0Ygp6PFgm
MGZNVVI2JVMzS3YrZGgheTlkXnFAcTB0O1hBKE9HPnBOUShQQUNUMXQlbSlgJjdfamI1RF5VRVBe
ejtJWm4KeCglRUx0JHtlY0RhTm1qVnJ4RiN2dSQzZjg4ZnJIRzB8MjZ3eU0/Q2Q2UUJTOTAwMm92
UERITGtWMWc/Ulp+XzFUCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
c21hbGwtc3F1YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmlsZS5wbmcgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdiLWllYzYxOTY2LTIuMS1w
cm9maWxlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAyMDFmMTEzZmRjOGU5
NzFmYWExN2RiZmY4OTU0MTkyZWE4NjZmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJh
bCAzMjAxCnpjbVYtezQxVio4UCk8aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVy
eDAwMDA5YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhoUGlhRiNQKjctWmJaPktMWipVKzxMcWl+
TmEmS203WS1Jb2RjLW95KVhILSteN0NyYWcKel5nPklCZlJzeWJRV1hkd1FiTFA+NnA8ej5BcWZ5
bGgje2ZiNjtaKHZNTVZTfiRlQFM9aipmdGc2O1VoPGlWRH5WCno8UlBNdGdRSkx3JUtQRGFxaWZj
QF92WCQxd2J3cjl0bjswLSZqLUs9NDM8YlVROGo9SnNYYHRSO0RnNysjXkt+SAp6SyFGTSpafnpi
cHZ0JUsye1VaU1lfPGxTKkQ8WiVMejVvR3UoK2RheXopaFJMRmRUPmY1OSZnaFRtZ1dEMGw7KlQK
ekk3PGtDNmFZWWFqelhwWUt0PSg4b3RQJDUwSDZjX1Y5UjQtO3taQEMwQU1HNz1GPFJ4byVvcjEw
UlVUK0FyJTNqCnprcExoUVdyIyFvWGdkSWAmc0tePjA5WV5wNmxQMXJJUk14IzA1Q35jVz1IX0F3
KmJKLTVEVCZaMm4reClRSFhecAp6MDBlc2dWOHxtUWNtUlolMDJEXkBTM0wxNnRgTyVjMDA0Tkl2
T0t2WUlZb2g2MnJZMzNTNjQwYEQ5JVkyRC08P2kKejAlNGohRjJaQDQ4OFUlMTU4KDY2MDA1d282
JXBXcl5aal92NHpBQTVIamNJcVVvR210MkxCPnJWJm5laCYjUTFpCnowMDd+MWUkb0NjRlM4bmVJ
fGhKbHstUCFCMVpaOWhwbXEwKVgwaWBKd0UmPiQrRT8+JV88bFMqTVdLK24rMWNnZgp6PGsoOFlM
Uig/VlNBRzZ4IWU3OHd7Y1FQdUpwQXxkO0opR3tmaWhpek0rRXJiIXAhdGNyNXcrYTM0fihZPThz
NEcKencrc0xMOW4mSmpObipLSkRpcV5VNV47YDFudkMtQHI2UCQha30xVXsoKkk9US16QHRCS0hv
SX11eGRVNWR5eUB1CnpVMUowR09EN09tYmltXkcwMDhwNFpeNl9rMm1ecDxnVz1EMnxMO0hqTjEh
RERmTSFYT2FSMn5iTD9rWCQlQ2tTbQp6Mm1rOz9wbilvfEteeWVKNyVhZEI5S2krTCEzK0ZnSGlT
WVgjS0otbExKRE1uOUNCYk90YiMlKWhSdmBZRHF0X3YKektwaXh8UUR9eWZhMUppUVJrI2o0YTFa
KW4yJWY8eHluelY+TEM2UmJWSWtVeDBiK18rQmFSM2NuVDdadiFBSnhXCnppekZiKWghanlHT09a
ODVGO2E/REFYUHttQDshMF9JZnE8RXh7KjdgMDVYRjdoUCsySGwhM0JRSj02QGZMJUZDbwp6OGlZ
b28zKCNiQUZgQURTcHF0UWd2Pkg4KEhsZ1J4dDdzM31rM0tga0Z1Pj4tMlEkUU1GZlBXIUxhe2gz
MzZvPlgKenVfQ010dEh2NnpSOyZaTmlTPVg4djNDUiNma25VeEhVeEo8QVltUnNOTFdsKlBTe0FP
QVJIdCM1IXdraTI/Szt0CnohWTNrPXM3dGdheClKJXI3LUJMcGhnZTd+QmkwZys2RTZeWmgocDlU
Qm9jezNHQUZyXjAhZ3U/Uk1IYUNNJCZGbAp6QmszJXVuPjB1b0JhX002V05XZXFJZ342UUU2OWM5
byNleWhHdnBpT0FAVy1hb25rPDdyMSg/ZkN7b0k1TipVITQKejx1djY2V3RjS1NSaW0weC1LZTJk
NWpCcm1MYW17O1FtO3ttczFyMUdubU5zYjdELUVgdClpOUY4ZlhgMl9pMy1fCnpiaDs3VWxeI3gp
Jnt4dlM9fHx8Nz1tWWUzMz1NYEFnVTUoeEM+Zmc9Mk4tNz1jTm5qak9ye3lyaXk2bU1GZ0cjbAp6
bkNGPWZuUXY4Q0R6KytvNl9Mc2NsfWVRK2xeWkhBUkg+P19zQHwjI1JyNktMUkZBMSVRKz0qUlJX
bm9Mc1JgN1UKenQ1dkY8UTByNDBRKWo2PXNFNFgmc0JjdDFxPCZmYmkzVkIyT3Y2dEBxKjApO1Uq
bypTQVBadnx2dkAyYVlZblQwCnpiJThhK0NiNy1nZTBEMGtuRWY1UWkjQDhUcCpjZXtOOzZscFF1
Q0IlS0xfS09hcm01Y1A2XzhJcjxlMTdpcnk2Twp6RGRIJmByWmh+c0Y9YnE5cytPMFFTZ1N+QFFM
OUpteSo5NHhyPTZ5fk1ZfiExZmV0fihOKyg8PU1gd0BEMSliK3AKeio7QyE4M2ExdUxKdiNOU0V+
O3kjOD08PkljZlczQD93RnB3VVZ4clZaPlFkUXozMktJZUp9a357Y1paRV4reWE/CnoyRDF6IzJI
T25JNyhCJV9hYz97d0ZVUTtRUUExdEJLdHJXcm0wXzNSZ3BzKz9KZnFie2pZYmNRWH50YVJCOyMk
eQp6Wk57U30xfH1nVU9ISnhjP3dWM2Z4dXorbUo0YCFGJElaO21xUnJOc0hKZCMjKkR+anU9YlA3
Py0/dn58Y3Y+dkIKenNKNkllTndWWnhyZGpUYHlsI2JCSWEjR3hSYSN4TU15O0sjQ0R5eUd5UWRN
U3hsV1QjdERlP3AhPzV3VCQrb0d0Cno4TDtLcDJIVVEtWk1KPTNYSlF2O3g1Y2kqP3Z1VGZlWSQ7
KHtYR1dfaHVJRlI5YTxmSmJGXnw0SSN4UX5uJERjPQp6S1loalltZ3o1TlNrRG04KmZabXs2VSE7
WVhgTkc+KD9AMylYU3M4T15ONVJ5T009VFRtcCgzPTheK3pwejJyKUMKel4+Sk97ZGVaZnNvM29x
Mz9XbyhZP2wkZ2U/dVhvOyVydWBWbz4/PDwoOElfPjs4RXEjS01TOWdGbCpuZWVvc1NCCnpmb0hZ
bkJRSWt3a3lvd1B1KHpkbXNgcHs8N2U0a3JhLVpXcTwyKk9zR1R2RVYlczBUZCRoWFQrISo4Qm5o
MktNZQp6Qm1aUm9kakhWP3IrXzVeWDlKMFdMNGpLV2B9bGYlQS18NDRJQEBMVHZmMXJIakcoemU2
K3dASnQlQnZqdHMhWDAKej8yeFM/X3ZlXy1rPE11amc7MEx6KjNidUc9MyRHJmVoZXB0aGxOKiRL
YU95U1NRXm5XbW88ME0rKFVFVU1FWFJRCnpNQmJaY0Y7NitLRWxNPmlLQl9LaUpsWiQ5R2BjXj1F
QG9ORyltV1dhTm8tM1RJVzgpJEhnMFViLX44P0todko+JAp6MyombmltQG1qKGFDeEU1IXR7bHc3
TzVeMEVJTzd6T28mYzZsPCt8aUR5U0JXQ0dyekBDNXtTdCFYM2hBQX1gVDQKeihUTGJYVHErKDtA
PD1MOGRYbnNzeWZ0fHcjV1NUVzwrKzM+c2dTJSg0TlRwZUktVkFxYnw3c3NKdnpOSGdPWlZ1Cnph
WUN2Z09fUjF+PlN5TD1jRlV8fmd8aHl8Wml9fXM5K2R+bFlxT0I3MXo5WiR3bkM9cFI5WXo0RGhJ
TT5XbWpndQp6JjU2bzZtYUNwQyZGIyN5JUc7MVBvYlI5aT9Hbk5nO2dZdGNoRCVwMTlhIWVRdFpG
JjNKYUt2MzNnWjw4RH40N0UKenRVUzFpd2ttRGFQcGo9JG0jJSlqQ1ZFWTRmbkxHTmcyQS1gWXdI
VkQzZ3Z9Oz4paEF2VH5BbXFTPkxyYGBpN2t3CnpKezVfSXRgeXJCbWxjMjVEQk83RTg7NVZvem5S
Pld3NWhBYXhuJDJ+KHFgJUEtWXVTNjR3a0J5PTlkbWA0Y1hlWAp6NGN9SUA/ZStGVytiQF5SREJI
Vih3bk1xMnpkWDNTV3Y5dWAle3hDLXEqVX0mYGN5WFYoJXJSVCpaNk1IP2kraSYKel9COEMoK2dy
VCV7WFdVUStmQE5vUDFSPUFXJjI2e3YtZHgpaUteLU5taXVqOHR4aiFtP1oqU3MxTntkaDR6fTAx
CnopWVRvKkp5Y1NVKStfNXI0I3l3OXsrO2k0RWUkcGVSZ0lqKzt2O1pHZEYxSyQzRSVlfjRMYUko
akMtdSUyaCQmUgp6OWNMWGNZQ0BYd25ucyZibilfUX5UZT9yb0tHRHxkLWdeODsrYUN7e0coMV4o
TzdtMzdZMS0rNikwMWNOJnkxYXcKem9xY3tUYFBeWEpxUEJiSVc2c31kNHt6X2Y1T20/dk1nTlFF
Skc/djJUPUtZZF4wTTNJNklaeGJueSkldlpSJkxECnpKcFBsQFBzaDhReVBCQEtUeCtAUmRjQyFL
WDd9a0VvO1N8al51MmxVN1hRfU9vO2Z8O3o0TGwrX3I+QDEteGwzfAp6YXdxLUglZSZja0MrQEFo
UHJQNkJLPHo9PEwqMGtmS1VAQ1gqemVxYllRVDQoXlU+VCNfWGRUNyY7Rjcxan1Kb3kKemtDfjZs
aDdFQDZvO1dAXklwUk5ae3B0THRMKGdRLUNZfjRtcVc7VVM3Wnh2bV98QHl6JmU1M0JwX2xUUGxm
UHx6CnpyVHl4Xz5sdkB4Iz1eIVB6UjdxcUY8JGdtYHxaSlorOzwpQ3F1Jm90PGF7ODFERjB+cnZH
cjVYcn44dWBsYXYxaAp6MUROeXRWPjJ6PTAwMDBXVkBPZz4wMDRSPTAwNGw0MDA4O18wMDRtTDAw
NENgMDA4UD4wMDI2ZTAwMCtubDMmRn0KejAwMDUzTmtsPFpjLXBqQU4wIUFmMiRPaTsmSGIteSU+
cE5KT0w2KCRxYFZqfjVgdklfMHdBR1NGfW9LNFBgRXllCno+NDdwUzB6QUpaSyQzP3c1KyhzND0j
SyM4WiU3alc3KUYreEFlcTFXdmhoNWk+YSZoU3UoSD5LWHgjJHtWXiMhMgp6SCQhWSU7VkVVK0p5
YlgqUkRWemJiaXFYRUVgcW1BNStJLX1lfXhaclU1K2o1ZCtqbz9wJVVXOzZ6bS1aOVY5Z04Kem40
dXA7KDRzJmRiKHAxSGR6ZmdTc3UtNmpaQ35MZjBkPk44JHdJRmRldF5Pb010Zj9aQ0tMTzVsYmpf
ISUxUWRuCnojMWxBV010cXMzR19pRnMwbTJiOWhhPUQ/Q1o9MyFvQ248MDNNQSMmRWlxQUNPVCVo
Kz00MzdTbVBpTl42b3lieAp6KD41bm1gSjluX2E5WVpOVktONT0zaEdsI2VJe0JsOXEzZ0w4cDdE
SSNqYVd5SXoheVUjQ2NVRnYtWmU2RXBrZWMKelZvYWVFcSVEcEpRO09zKS1YdV9BNmF+TWVWezV+
Vkc9K2sraGxDWGh1WjNNeXFZSSs7TWV5V2FTPloqR2dGYVYwCno9Z05CVzV7WX5gXz1XLXRVLUhw
ZWVLa21tYCNVQ1BDKnFnaHxLO35+eEk2UjlBI0syTFNmfHEyWDNva1NzP2MhWApuaVNNVHA2fkN+
UkJ1RS0rSHZhPHZxTGpPWnJzKSUpMDAwMDBOa3ZYWHUwbWpmPkQlWWIKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWNhbnZhcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtY2FudmFzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
N2M3OWY4NDhkOTZmOTRlOWY3NzE3ZWE2OWQzY2YyMzU3YzViODllLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMjIxICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0q
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoq
Ci0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotZnVuY3Rpb24gZ2Vu
ZXJhdGVUZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3VlKSB7Ci0gICAgdmFyIHd0
dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIHZhciBnbCA9IG51bGw7Ci0gICAgdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IGZhbHNlOwotCi0gICAgdmFyIGluaXQgPSBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgZGVz
Y3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMg
dGFraW5nIGNhbnZhcyBlbGVtZW50cyAoJyArIHBpeGVsRm9ybWF0ICsgJy8nICsgcGl4ZWxUeXBl
ICsgJyknKTsKLQotICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsK
LQotICAgICAgICBpZiAoIXByb2xvZ3VlKGdsKSkgewotICAgICAgICAgICAgZmluaXNoVGVzdCgp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHByb2dyYW0g
PSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0gICAgICAgIGdsLmNsZWFyQ29sb3IoMCww
LDAsMSk7Ci0gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0KLSAgICAgICAgdmFyIHRlc3RDYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICAgICAgcnVuVGVzdCh0
ZXN0Q2FudmFzKTsKLSAgICAgICAgLy9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDYW52
YXMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldENhbnZhc1RvUmVkR3JlZW4oY3R4KSB7Ci0g
ICAgICB2YXIgd2lkdGggPSBjdHguY2FudmFzLndpZHRoOwotICAgICAgdmFyIGhlaWdodCA9IGN0
eC5jYW52YXMuaGVpZ2h0OwotICAgICAgdmFyIGhhbGZIZWlnaHQgPSBNYXRoLmZsb29yKGhlaWdo
dCAvIDIpOwotICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjZmYwMDAwIjsKLSAgICAgIGN0eC5maWxs
UmVjdCgwLCAwLCB3aWR0aCwgaGFsZkhlaWdodCk7Ci0gICAgICBjdHguZmlsbFN0eWxlID0gIiMw
MGZmMDAiOwotICAgICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZIZWlnaHQsIHdpZHRoLCBoZWlnaHQg
LSBoYWxmSGVpZ2h0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkcmF3VGV4dEluQ2FudmFzKGN0
eCkgewotICAgICAgdmFyIHdpZHRoID0gY3R4LmNhbnZhcy53aWR0aDsKLSAgICAgIHZhciBoZWln
aHQgPSBjdHguY2FudmFzLmhlaWdodDsKLSAgICAgIGN0eC5maWxsU3R5bGUgPSAiI2ZmZmZmZiI7
Ci0gICAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICBjdHguZm9u
dCA9ICcyMHB0IEFyaWFsJzsKLSAgICAgIGN0eC5maWxsU3R5bGUgPSAnYmxhY2snOwotICAgICAg
Y3R4LnRleHRBbGlnbiA9ICJjZW50ZXIiOwotICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICJtaWRk
bGUiOwotICAgICAgY3R4LmZpbGxUZXh0KCIxMjM0NTY3ODkwIiwgd2lkdGggLyAyLCBoZWlnaHQg
LyA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZXRDYW52YXNUbzI1N3gyNTcoY3R4KSB7Ci0g
ICAgICBjdHguY2FudmFzLndpZHRoID0gMjU3OwotICAgICAgY3R4LmNhbnZhcy5oZWlnaHQgPSAy
NTc7Ci0gICAgICBzZXRDYW52YXNUb1JlZEdyZWVuKGN0eCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc2V0Q2FudmFzVG8xeDIoY3R4KSB7Ci0gICAgICBjdHguY2FudmFzLndpZHRoID0gMTsKLSAg
ICAgIGN0eC5jYW52YXMuaGVpZ2h0ID0gMjsKLSAgICAgIHNldENhbnZhc1RvUmVkR3JlZW4oY3R4
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5PbmVJdGVyYXRpb24oY2FudmFzLCB1c2VUZXhT
dWJJbWFnZTJELCBmbGlwWSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBvcHRfdGV4dHVyZSwgb3B0
X2ZvbnRUZXN0KQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJ
bWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCi0gICAgICAgICAgICAg
ICcgd2l0aCBmbGlwWT0nICsgZmxpcFkgKyAnIGNhbnZhcyBzaXplOiAnICsgY2FudmFzLndpZHRo
ICsgJ3gnICsgY2FudmFzLmhlaWdodCArCi0gICAgICAgICAgICAgIChvcHRfZm9udFRlc3QgPyAi
IHdpdGggZm9udHMiIDogIiB3aXRoIHJlZC1ncmVlbiIpKTsKLSAgICAgICAgZ2wuY2xlYXIoZ2wu
Q09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAgICAvLyBEaXNh
YmxlIGFueSB3cml0ZXMgdG8gdGhlIGFscGhhIGNoYW5uZWwKLSAgICAgICAgLy8gTm8gaWRlYSB3
aHkgdGhpcyB3YXMgaGVyZS4gSWYgaXQncyBpbXBvcnRhbnQgcHV0IGl0IGJhY2sgYW5kIGxlYXZl
IGEgY29tbWVudCBhcyB0byB3aHkKLS8vICAgICAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMCk7
Ci0gICAgICAgIGlmICghb3B0X3RleHR1cmUpIHsKLSAgICAgICAgICAgIHZhciB0ZXh0dXJlID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0
ZXh0dXJlIHVuaXQgMAotICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4dHVyZSk7Ci0gICAgICAgICAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzCi0gICAg
ICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgICAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgdmFyIHRleHR1cmUgPSBvcHRfdGV4dHVyZTsKLSAgICAgICAgfQotICAgICAg
ICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAgICAgICBnbC5waXhlbFN0b3Jl
aShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVp
KGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFsc2UpOwotICAgICAgICBnbC5w
aXhlbFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMLCBnbC5OT05F
KTsKLSAgICAgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0dXJlCi0gICAgICAg
IGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICAvLyBJbml0aWFsaXplIHRoZSB0
ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0LCAw
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlw
ZV0sIG51bGwpOwotICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAwLCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIGNhbnZhcyk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
W3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBjYW52YXMpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAgICAgIHd0dS5k
cmF3UXVhZChnbCwgWzAsIDI1NSwgMCwgMjU1XSk7Ci0KLSAgICAgICAgaWYgKG9wdF9mb250VGVz
dCkgewotICAgICAgICAgICAgdmFyIHdpZHRoID0gZ2wuY2FudmFzLndpZHRoOwotICAgICAgICAg
ICAgdmFyIGhlaWdodCA9IGdsLmNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgaGFsZkhl
aWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0gICAgICAgICAgICB2YXIgdG9wID0gZmxp
cFkgPyAwIDogKGhlaWdodCAtIGhhbGZIZWlnaHQpOwotICAgICAgICAgICAgdmFyIGJvdHRvbSA9
IGZsaXBZID8gKGhlaWdodCAtIGhhbGZIZWlnaHQpIDogMDsKLSAgICAgICAgICAgIC8vIGNoZWNr
IGhhbGYgaXMgYSBzb2xpZCBjb2xvci4KLSAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3Qo
Ci0gICAgICAgICAgICAgICAgICBnbCwgMCwgdG9wLCB3aWR0aCwgaGFsZkhlaWdodCwKLSAgICAg
ICAgICAgICAgICAgIFsyNTUsIDI1NSwgMjU1LCAyNTVdLAotICAgICAgICAgICAgICAgICAgInNo
b3VsZCBiZSB3aGl0ZSIpOwotICAgICAgICAgICAgLy8gY2hlY2sgb3RoZXIgaGFsZiBpcyBub3Qg
YSBzb2xpZCBjb2xvci4KLSAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3RDb2xvcigKLSAg
ICAgICAgICAgICAgICAgIGdsLCAwLCBib3R0b20sIHdpZHRoLCBoYWxmSGVpZ2h0LAotICAgICAg
ICAgICAgICAgICAgWzI1NSwgMjU1LCAyNTUsIDI1NV0sIDAsCi0gICAgICAgICAgICAgICAgICBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiZm9udCBtaXNzaW5n
Iik7Ci0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImZvbnQgcmVuZGVyZXJlZCIpOwotICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIGRlYnVnKTsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIC8vIENoZWNrIGEgZmV3IHBpeGVscyBuZWFyIHRoZSB0b3AgYW5k
IGJvdHRvbSBhbmQgbWFrZSBzdXJlIHRoZXkgaGF2ZQotICAgICAgICAgICAgLy8gdGhlIHJpZ2h0
IGNvbG9yLgotICAgICAgICAgICAgdmFyIHdpZHRoID0gZ2wuY2FudmFzLndpZHRoOwotICAgICAg
ICAgICAgdmFyIGhlaWdodCA9IGdsLmNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgaGFs
ZkhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0gICAgICAgICAgICBkZWJ1ZygiQ2hl
Y2tpbmcgYm90dG9tIik7Ci0gICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAw
LCB3aWR0aCwgaGFsZkhlaWdodCwgYm90dG9tQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzaG91bGRCZSAiICsgYm90dG9tQ29sb3IpOwotICAgICAgICAgICAgZGVidWco
IkNoZWNraW5nIHRvcCIpOwotICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwg
aGVpZ2h0IC0gaGFsZkhlaWdodCwgd2lkdGgsIGhhbGZIZWlnaHQsIHRvcENvbG9yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic2hvdWxkQmUgIiArIHRvcENvbG9yKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChmYWxzZSkgewotICAgICAgICAgIHZhciBtID0gbmV3IEltYWdl
KCk7Ci0gICAgICAgICAgbS5zcmMgPSBnbC5jYW52YXMudG9EYXRhVVJMKCk7Ci0gICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChtKTsKLSAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImhyIikpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRl
eHR1cmU7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdChjYW52YXMpCi0gICAgewotICAg
ICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAgICAgIHZhciByZWQg
PSBbMjU1LCAwLCAwXTsKLSAgICAgICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMF07Ci0KLSAgICAg
ICAgdmFyIGNvdW50ID0gNDsKLSAgICAgICAgdmFyIGNhc2VOZHggPSAwOwotCi0gICAgICAgIHZh
ciBjYXNlcyA9IFsKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IHRydWUsICB0b3A6
IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiBmYWxzZSwgaW5pdDogc2V0Q2FudmFzVG8xeDIg
fSwKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBi
b3R0b206IHJlZCwgICBmb250OiBmYWxzZSB9LAotICAgICAgICAgICAgeyBzdWI6IHRydWUsICBm
bGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZvbnQ6IGZhbHNlIH0sCi0g
ICAgICAgICAgICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9t
OiByZWQsICAgZm9udDogZmFsc2UgfSwKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6
IHRydWUsICB0b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiBmYWxzZSwgaW5pdDogc2V0
Q2FudmFzVG8yNTd4MjU3IH0sCi0gICAgICAgICAgICB7IHN1YjogZmFsc2UsIGZsaXBZOiBmYWxz
ZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAgZm9udDogZmFsc2UgfSwKLSAgICAgICAgICAg
IHsgc3ViOiB0cnVlLCAgZmxpcFk6IHRydWUsICB0b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBm
b250OiBmYWxzZSB9LAotICAgICAgICAgICAgeyBzdWI6IHRydWUsICBmbGlwWTogZmFsc2UsIHRv
cDogZ3JlZW4sIGJvdHRvbTogcmVkLCAgIGZvbnQ6IGZhbHNlIH0sCi0gICAgICAgICAgICB7IHN1
YjogZmFsc2UsIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAgYm90dG9tOiBncmVlbiwgZm9udDog
dHJ1ZSwgaW5pdDogZHJhd1RleHRJbkNhbnZhcyB9LAotICAgICAgICAgICAgeyBzdWI6IGZhbHNl
LCBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTogcmVkLCAgIGZvbnQ6IHRydWUgfSwK
LSAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IHRydWUsICB0b3A6IHJlZCwgICBib3R0
b206IGdyZWVuLCBmb250OiB0cnVlIH0sCi0gICAgICAgICAgICB7IHN1YjogdHJ1ZSwgIGZsaXBZ
OiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAgZm9udDogdHJ1ZSB9LAotICAgICAg
ICBdOwotCi0gICAgICAgIHZhciB0ZXh0dXJlOwotICAgICAgICBmdW5jdGlvbiBydW5OZXh0VGVz
dCgpIHsKLSAgICAgICAgICAgIHZhciBjID0gY2FzZXNbY2FzZU5keF07Ci0gICAgICAgICAgICBp
ZiAoYy5pbml0KSB7Ci0gICAgICAgICAgICAgIGMuaW5pdChjdHgpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdGV4dHVyZSA9IHJ1bk9uZUl0ZXJhdGlvbihjYW52YXMsIGMuc3ViLCBjLmZs
aXBZLCBjLnRvcCwgYy5ib3R0b20sIHRleHR1cmUsIGMuZm9udCk7Ci0gICAgICAgICAgICAvLyBm
b3IgdGhlIGZpcnN0IDIgaXRlcmF0aW9ucyBhbHdheXMgbWFrZSBhIG5ldyB0ZXh0dXJlLgotICAg
ICAgICAgICAgaWYgKGNvdW50ID4gMikgewotICAgICAgICAgICAgICB0ZXh0dXJlID0gdW5kZWZp
bmVkOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgKytjYXNlTmR4OwotICAgICAgICAgICAg
aWYgKGNhc2VOZHggPT0gY2FzZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgY2FzZU5keCA9
IDA7Ci0gICAgICAgICAgICAgICAgLS1jb3VudDsKLSAgICAgICAgICAgICAgICBpZiAoIWNvdW50
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHd0dS53YWl0Rm9yQ29tcG9zaXRlKGdsLCBydW5OZXh0VGVz
dCk7Ci0gICAgICAgIH0KLSAgICAgICAgcnVuTmV4dFRlc3QoKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gaW5pdDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY5NmE5MjIyYzY1NzM4NDBkZDcwMjBm
OGZjYjJlYjAxMjk3ODUyZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWltYWdlLWRhdGEuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAot
LyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi1mdW5jdGlvbiBnZW5lcmF0ZVRlc3QocGl4ZWxGb3Jt
YXQsIHBpeGVsVHlwZSwgcHJvbG9ndWUpIHsKLSAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Ci0gICAgdmFyIGdsID0gbnVsbDsKLSAgICB2YXIgdGV4dHVyZUxvYyA9IG51bGw7Ci0gICAgdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotICAgIHZhciBpbWFnZURhdGEgPSBudWxsOwot
Ci0gICAgdmFyIGluaXQgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpbml0VGVzdGluZ0hh
cm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0ZXhJ
bWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0YSAoJyAr
IHBpeGVsRm9ybWF0ICsgJy8nICsgcGl4ZWxUeXBlICsgJyknKTsKLQotICAgICAgICBnbCA9IHd0
dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLQotICAgICAgICBpZiAoIXByb2xvZ3VlKGds
KSkgewotICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wp
OwotICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgICAgICBnbC5jbGVhckRlcHRo
KDEpOwotICAgICAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKLQotICAgICAgICB0ZXh0dXJlTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLQotICAgICAgICB2YXIg
Y2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4Y2FudmFzIik7Ci0gICAgICAg
IHZhciBjb250ZXh0MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotICAgICAgICBpbWFn
ZURhdGEgPSBjb250ZXh0MmQuY3JlYXRlSW1hZ2VEYXRhKDEsIDIpOwotICAgICAgICB2YXIgZGF0
YSA9IGltYWdlRGF0YS5kYXRhOwotICAgICAgICBkYXRhWzBdID0gMjU1OwotICAgICAgICBkYXRh
WzFdID0gMDsKLSAgICAgICAgZGF0YVsyXSA9IDA7Ci0gICAgICAgIGRhdGFbM10gPSAyNTU7Ci0g
ICAgICAgIGRhdGFbNF0gPSAwOwotICAgICAgICBkYXRhWzVdID0gMjU1OwotICAgICAgICBkYXRh
WzZdID0gMDsKLSAgICAgICAgZGF0YVs3XSA9IDA7Ci0KLSAgICAgICAgcnVuVGVzdCgpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHJ1bk9uZUl0ZXJhdGlvbih1c2VUZXhTdWJJbWFnZTJELCBmbGlw
WSwgcHJlbXVsdGlwbHlBbHBoYSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yKQotICAgIHsKLSAgICAg
ICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQn
IDogJ3RleEltYWdlMkQnKSArCi0gICAgICAgICAgICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkg
KyAnIGFuZCBwcmVtdWx0aXBseUFscGhhPScgKyBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAg
Z2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAg
ICAgICAvLyBFbmFibGUgd3JpdGVzIHRvIHRoZSBSR0JBIGNoYW5uZWxzCi0gICAgICAgIGdsLmNv
bG9yTWFzaygxLCAxLCAxLCAwKTsKLSAgICAgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gICAgICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAg
ICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgICAgIC8v
IFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7Ci0gICAgICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBwYXJhbWV0ZXJzCi0gICAg
ICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZsaXBZKTsKLSAgICAg
ICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBwcmVt
dWx0aXBseUFscGhhKTsKLSAgICAgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0
dXJlCi0gICAgICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICAvLyBJbml0
aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgMSwgMiwgMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBudWxsKTsK
LSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2xb
cGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBpbWFnZURhdGEpOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtwaXhlbEZv
cm1hdF0sIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgaW1hZ2VEYXRhKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1
bml0IDAKLSAgICAgICAgZ2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIDApOwotICAgICAgICAvLyBE
cmF3IHRoZSB0cmlhbmdsZXMKLSAgICAgICAgd3R1LmRyYXdRdWFkKGdsLCBbMCwgMCwgMCwgMjU1
XSk7Ci0KLSAgICAgICAgLy8gQ2hlY2sgdGhlIHRvcCBwaXhlbCBhbmQgYm90dG9tIHBpeGVsIGFu
ZCBtYWtlIHN1cmUgdGhleSBoYXZlCi0gICAgICAgIC8vIHRoZSByaWdodCBjb2xvci4KLSAgICAg
ICAgZGVidWcoIkNoZWNraW5nIGJvdHRvbSBwaXhlbCIpOwotICAgICAgICB3dHUuY2hlY2tDYW52
YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBib3R0b21Db2xvciwgInNob3VsZEJlICIgKyBib3R0b21D
b2xvcik7Ci0gICAgICAgIGRlYnVnKCJDaGVja2luZyB0b3AgcGl4ZWwiKTsKLSAgICAgICAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMSwgMSwgMSwgdG9wQ29sb3IsICJzaG91bGRCZSAiICsg
dG9wQ29sb3IpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQotICAgIHsKLSAgICAg
ICAgdmFyIHJlZCA9IFsyNTUsIDAsIDAsIDI1NV07Ci0gICAgICAgIHZhciBncmVlbiA9IFswLCAy
NTUsIDAsIDI1NV07Ci0gICAgICAgIHZhciByZWRQcmVtdWx0aXBseUFscGhhID0gWzI1NSwgMCwg
MCwgMjU1XTsKLSAgICAgICAgdmFyIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSA9IFswLCAwLCAwLCAy
NTVdOwotCi0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHJ1ZSwgZmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZWQsIGdyZWVuKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9u
KGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBncmVlbiwgcmVk
KTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0cnVlLCB0cnVlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFscGhh
KTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCBmYWxzZSwgdHJ1ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwgcmVkUHJlbXVsdGlwbHlBbHBo
YSk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0cnVlLCBmYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4pOwotICAgICAgICBydW5PbmVJdGVyYXRpb24odHJ1
ZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCk7Ci0g
ICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0cnVlLCB0cnVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFscGhhKTsKLSAg
ICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIGZhbHNlLCB0cnVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFscGhhKTsKLQot
ICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVy
cm9ycyIpOwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluaXQ7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDE0ODhmMzZiZGU1ZTgwNjhlM2EwMmVlNDQzN2IzODFlY2Q3YTFlMS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8K
LQotZnVuY3Rpb24gZ2VuZXJhdGVUZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHBhdGhUb1Rl
c3RSb290LCBwcm9sb2d1ZSkgewotICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgICB2
YXIgZ2wgPSBudWxsOwotICAgIHZhciB0ZXh0dXJlTG9jID0gbnVsbDsKLSAgICB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci0gICAgdmFyIGltZ0NhbnZhczsKLSAgICB2YXIgcmVkID0g
WzI1NSwgMCwgMF07Ci0gICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMF07Ci0KLSAgICB2YXIgaW5p
dCA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRp
bERvbmUoKTsKLQotICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRl
eFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgaW1hZ2UgZWxlbWVudHMgKCcgKyBwaXhlbEZv
cm1hdCArICcvJyArIHBpeGVsVHlwZSArICcpJyk7Ci0KLSAgICAgICAgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJleGFtcGxlIik7Ci0KLSAgICAgICAgaWYgKCFwcm9sb2d1ZShnbCkpIHsKLSAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotICAg
ICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgICAgICBnbC5jbGVhckRlcHRoKDEpOwot
Ci0gICAgICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRl
eCIpOwotCi0gICAgICAgIHd0dS5sb2FkVGV4dHVyZShnbCwgcGF0aFRvVGVzdFJvb3QgKyAiL3Jl
c291cmNlcy9yZWQtZ3JlZW4ucG5nIiwgcnVuVGVzdCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
cnVuT25lSXRlcmF0aW9uKGltYWdlLCB1c2VUZXhTdWJJbWFnZTJELCBmbGlwWSwgdG9wQ29sb3Is
IGJvdHRvbUNvbG9yKQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhT
dWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCi0gICAgICAgICAg
ICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9C
VUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIC8vIERpc2FibGUgYW55
IHdyaXRlcyB0byB0aGUgYWxwaGEgY2hhbm5lbAotICAgICAgICBnbC5jb2xvck1hc2soMSwgMSwg
MSwgMCk7Ci0gICAgICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAg
ICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgICAgICAvLyBTZXQgdXAgdGV4dHVy
ZSBwYXJhbWV0ZXJzCi0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAg
ICAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAgICAgICBnbC5waXhlbFN0
b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAgICAgIGdsLnBpeGVsU3Rv
cmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFsc2UpOwotICAgICAgICBn
bC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMLCBnbC5O
T05FKTsKLSAgICAgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0dXJlCi0gICAg
ICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICAvLyBJbml0aWFsaXplIHRo
ZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCwg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5
cGVdLCBudWxsKTsKLSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgMCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBpbWFnZSk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
W3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBpbWFnZSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBQb2ludCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1
cmUgdW5pdCAwCi0gICAgICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAgICAg
Ly8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAgICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDAsIDAs
IDI1NV0pOwotICAgICAgICAvLyBDaGVjayBhIGZldyBwaXhlbHMgbmVhciB0aGUgdG9wIGFuZCBi
b3R0b20gYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKLSAgICAgICAgLy8gdGhlIHJpZ2h0IGNvbG9y
LgotICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKLSAgICAgICAg
d3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwgNCwgMiwgMiwgYm90dG9tQ29sb3IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyBib3R0b21Db2xvcik7Ci0gICAgICAg
IGRlYnVnKCJDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lciIpOwotICAgICAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCA0LCBnbC5jYW52YXMuaGVpZ2h0IC0gOCwgMiwgMiwgdG9wQ29sb3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyB0b3BDb2xvcik7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdE9uSW1hZ2UoaW1hZ2UpIHsKLSAgICAgICAgcnVuT25l
SXRlcmF0aW9uKGltYWdlLCBmYWxzZSwgdHJ1ZSwgcmVkLCBncmVlbik7Ci0gICAgICAgIHJ1bk9u
ZUl0ZXJhdGlvbihpbWFnZSwgZmFsc2UsIGZhbHNlLCBncmVlbiwgcmVkKTsKLSAgICAgICAgcnVu
T25lSXRlcmF0aW9uKGltYWdlLCB0cnVlLCB0cnVlLCByZWQsIGdyZWVuKTsKLSAgICAgICAgcnVu
T25lSXRlcmF0aW9uKGltYWdlLCB0cnVlLCBmYWxzZSwgZ3JlZW4sIHJlZCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcnVuVGVzdChpbWFnZSkKLSAgICB7Ci0gICAgICAgIHJ1blRlc3RPbkltYWdl
KGltYWdlKTsKLQotICAgICAgICBpbWdDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj
YW52YXMiKTsKLSAgICAgICAgaW1nQ2FudmFzLndpZHRoID0gMTsKLSAgICAgICAgaW1nQ2FudmFz
LmhlaWdodCA9IDI7Ci0gICAgICAgIHZhciBpbWdDdHggPSBpbWdDYW52YXMuZ2V0Q29udGV4dCgi
MmQiKTsKLSAgICAgICAgdmFyIGltZ0RhdGEgPSBpbWdDdHguY3JlYXRlSW1hZ2VEYXRhKDEsIDIp
OwotICAgICAgICBpbWdEYXRhLmRhdGFbMF0gPSByZWRbMF07Ci0gICAgICAgIGltZ0RhdGEuZGF0
YVsxXSA9IHJlZFsxXTsKLSAgICAgICAgaW1nRGF0YS5kYXRhWzJdID0gcmVkWzJdOwotICAgICAg
ICBpbWdEYXRhLmRhdGFbM10gPSAyNTU7Ci0gICAgICAgIGltZ0RhdGEuZGF0YVs0XSA9IGdyZWVu
WzBdOwotICAgICAgICBpbWdEYXRhLmRhdGFbNV0gPSBncmVlblsxXTsKLSAgICAgICAgaW1nRGF0
YS5kYXRhWzZdID0gZ3JlZW5bMl07Ci0gICAgICAgIGltZ0RhdGEuZGF0YVs3XSA9IDI1NTsKLSAg
ICAgICAgaW1nQ3R4LnB1dEltYWdlRGF0YShpbWdEYXRhLCAwLCAwKTsKLQotICAgICAgICAvLyBh
cHBhcmVudGx5IEltYWdlIGlzIGRpZmZlcmVudCB0aGFuIDxpbWc+LgotICAgICAgICB2YXIgbmV3
SW1hZ2UgPSAgbmV3IEltYWdlKCk7Ci0gICAgICAgIG5ld0ltYWdlLm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgcnVuVGVzdDIobmV3SW1hZ2UpOwotICAgICAgICB9OwotICAgICAg
ICBuZXdJbWFnZS5zcmMgPSBpbWdDYW52YXMudG9EYXRhVVJMKCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gcnVuVGVzdDIoaW1hZ2UpIHsKLSAgICAgICAgcnVuVGVzdE9uSW1hZ2UoaW1hZ2UpOwot
Ci0gICAgICAgIHZhciBuZXdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwot
ICAgICAgICBuZXdJbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJ1blRl
c3QzKG5ld0ltYWdlKTsKLSAgICAgICAgfTsKLSAgICAgICAgbmV3SW1hZ2Uuc3JjID0gaW1nQ2Fu
dmFzLnRvRGF0YVVSTCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QzKGltYWdlKSB7
Ci0gICAgICAgIHJ1blRlc3RPbkltYWdlKGltYWdlKTsKLQotICAgICAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIpOwotICAgICAgICBmaW5p
c2hUZXN0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluaXQ7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZp
ZGVvLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC12aWRlby5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZmYmE1
OTZkMjIxNzBmZGU2MjZjZjIxZWE1ZWI0NmVjNTcwMjc1Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTY5ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
LSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQot
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLy8gVGhpcyBibG9jayBuZWVk
cyB0byBiZSBvdXRzaWRlIHRoZSBvbmxvYWQgaGFuZGxlciBpbiBvcmRlciBmb3IgdGhpcwotLy8g
dGVzdCB0byBydW4gcmVsaWFibHkgaW4gV2ViS2l0J3MgdGVzdCBoYXJuZXNzIChhdCBsZWFzdCB0
aGUKLS8vIENocm9taXVtIHBvcnQpLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODc0NDgKLWluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsKLQotdmFyIG9s
ZCA9IGRlYnVnOwotdmFyIGRlYnVnID0gZnVuY3Rpb24obXNnKSB7Ci0gIGNvbnNvbGUubG9nKG1z
Zyk7Ci0gIG9sZChtc2cpOwotfTsKLQotZnVuY3Rpb24gZ2VuZXJhdGVUZXN0KHBpeGVsRm9ybWF0
LCBwaXhlbFR5cGUsIHByb2xvZ3VlKSB7Ci0gICAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
ICAgIHZhciBnbCA9IG51bGw7Ci0gICAgdmFyIHRleHR1cmVMb2MgPSBudWxsOwotICAgIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLQotICAgIC8vIFRlc3QgZWFjaCBmb3JtYXQgc2Vw
YXJhdGVseSBiZWNhdXNlIG1hbnkgYnJvd3NlcnMgaW1wbGVtZW50IGVhY2gKLSAgICAvLyBkaWZm
ZXJlbnRseS4gU29tZSBtaWdodCBiZSBHUFUgYWNjZWxlcmF0ZWQsIHNvbWUgbWlnaHQgbm90LiBF
dGMuLi4KLSAgICB2YXIgdmlkZW9zID0gWwotICAgICAgeyBzcmM6ICIuLi9yZXNvdXJjZXMvcmVk
LWdyZWVuLm1wNCIgICAgICAgICAsIHR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MkUw
MUUsIG1wNGEuNDAuMiInLCB9LAotICAgICAgeyBzcmM6ICIuLi9yZXNvdXJjZXMvcmVkLWdyZWVu
LndlYm12cDgud2VibSIsIHR5cGU6ICd2aWRlby93ZWJtOyBjb2RlY3M9InZwOCwgdm9yYmlzIics
ICAgICAgICAgICB9LAotICAgICAgeyBzcmM6ICIuLi9yZXNvdXJjZXMvcmVkLWdyZWVuLnRoZW9y
YS5vZ3YiLCAgIHR5cGU6ICd2aWRlby9vZ2c7IGNvZGVjcz0idGhlb3JhLCB2b3JiaXMiJywgICAg
ICAgICB9LAotICAgIF07Ci0KLSAgICB2YXIgdmlkZW9OZHggPSAwOwotICAgIHZhciB2aWRlbzsK
LSAgICB2YXIgcnVuTmV4dFZpZGVvID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh2aWRlb05k
eCA9PSB2aWRlb3MubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2aWRlby5yZW1vdmVFdmVudExpc3Rl
bmVyKCJwbGF5aW5nIiwgcnVuVGVzdCk7Ci0gICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGluZm8gPSB2aWRlb3Nbdmlk
ZW9OZHgrK107Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoInRlc3Rpbmc6ICIg
KyBpbmZvLnR5cGUpOwotICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZp
ZGVvIik7Ci0gICAgICAgIHZhciBjYW5QbGF5ID0gdHJ1ZTsKLSAgICAgICAgaWYgKCF2aWRlby5j
YW5QbGF5VHlwZSkgewotICAgICAgICAgIHRlc3RGYWlsZWQoInZpZGVvLmNhblBsYXlUeXBlIHJl
cXVpcmVkIG1ldGhvZCBtaXNzaW5nIik7Ci0gICAgICAgICAgcnVuTmV4dFRlc3QoKTsKLSAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZighdmlkZW8uY2FuUGxheVR5cGUo
aW5mby50eXBlKS5yZXBsYWNlKC9uby8sICcnKSkgewotICAgICAgICAgIGRlYnVnKGluZm8udHlw
ZSArICIgdW5zdXBwb3J0ZWQiKTsKLSAgICAgICAgICBydW5OZXh0VmlkZW8oKTsKLSAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh2aWRlbyk7Ci0gICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgICAi
cGxheWluZyIsIGZ1bmN0aW9uKCkgeyBydW5UZXN0KHZpZGVvKTsgfSwgdHJ1ZSk7Ci0gICAgICAg
IHZpZGVvLnR5cGUgPSBpbmZvLnR5cGU7Ci0gICAgICAgIHZpZGVvLnNyYyA9IGluZm8uc3JjOwot
ICAgICAgICB2aWRlby5sb29wID0gdHJ1ZTsKLSAgICAgICAgdmlkZW8ucGxheSgpOwotICAgIH0K
LQotICAgIHZhciBpbml0ID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZGVzY3JpcHRpb24o
J1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIHZp
ZGVvIGVsZW1lbnRzICgnICsgcGl4ZWxGb3JtYXQgKyAnLycgKyBwaXhlbFR5cGUgKyAnKScpOwot
Ci0gICAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotCi0gICAgICAg
IGlmICghcHJvbG9ndWUoZ2wpKSB7Ci0gICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1
cFRleHR1cmVkUXVhZChnbCk7Ci0KLSAgICAgICAgZ2wuY2xlYXJDb2xvcigwLDAsMCwxKTsKLSAg
ICAgICAgZ2wuY2xlYXJEZXB0aCgxKTsKLQotICAgICAgICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgICAgICAgcnVuTmV4dFZpZGVvKCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgdXNlVGV4
U3ViSW1hZ2UyRCwgZmxpcFksIHRvcENvbG9yLCBib3R0b21Db2xvcikKLSAgICB7Ci0gICAgICAg
IGRlYnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJEJyA6
ICd0ZXhJbWFnZTJEJykgKwotICAgICAgICAgICAgICAnIHdpdGggZmxpcFk9JyArIGZsaXBZKTsK
LSAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOwotICAgICAgICAvLyBEaXNhYmxlIGFueSB3cml0ZXMgdG8gdGhlIGFscGhhIGNoYW5uZWwK
LSAgICAgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOwotICAgICAgICB2YXIgdGV4dHVyZSA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0
dXJlIHVuaXQgMAotICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJl
KTsKLSAgICAgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwotICAgICAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVT
VCk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1Q
X1RPX0VER0UpOwotICAgICAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAg
ICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAg
ICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFs
c2UpOwotICAgICAgICAvLyBVcGxvYWQgdGhlIHZpZGVvRWxlbWVudCBpbnRvIHRoZSB0ZXh0dXJl
Ci0gICAgICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICAvLyBJbml0aWFs
aXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmlkZW9FbGVtZW50LnZpZGVvV2lkdGgsIHZpZGVvRWxlbWVudC52aWRlb0hlaWdodCwg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5
cGVdLCBudWxsKTsKLSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgMCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCB2aWRlb0VsZW1lbnQpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgdmlk
ZW9FbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7Ci0gICAgICAgIGMud2lkdGggPSAxNjsKLSAgICAgICAgYy5oZWln
aHQgPSAxNjsKLSAgICAgICAgYy5zdHlsZS5ib3JkZXIgPSAiMXB4IHNvbGlkIGJsYWNrIjsKLSAg
ICAgICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAgICAgY3R4LmRyYXdJbWFn
ZSh2aWRlb0VsZW1lbnQsIDAsIDAsIDE2LCAxNik7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoYyk7Ci0KLSAgICAgICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0
ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0gICAg
ICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAgICAgICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAw
LCAwLCAyNTVdKTsKLSAgICAgICAgLy8gQ2hlY2sgYSBmZXcgcGl4ZWxzIG5lYXIgdGhlIHRvcCBh
bmQgYm90dG9tIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCi0gICAgICAgIC8vIHRoZSByaWdodCBj
b2xvci4KLSAgICAgICAgZGVidWcoIkNoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyIik7Ci0gICAg
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDQsIDQsIDIsIDIsIGJvdHRvbUNvbG9yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgYm90dG9tQ29sb3IpOwotICAg
ICAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsKLSAgICAgICAgd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgNCwgZ2wuY2FudmFzLmhlaWdodCAtIDgsIDIsIDIsIHRvcENvbG9y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgdG9wQ29sb3IpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QodmlkZW9FbGVtZW50KQotICAgIHsKLSAgICAg
ICAgdmFyIHJlZCA9IFsyNTUsIDAsIDBdOwotICAgICAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAw
XTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgZmFsc2UsIHRydWUsIHJl
ZCwgZ3JlZW4pOwotICAgICAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCBmYWxzZSwg
ZmFsc2UsIGdyZWVuLCByZWQpOwotICAgICAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50
LCB0cnVlLCB0cnVlLCByZWQsIGdyZWVuKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKHZpZGVv
RWxlbWVudCwgdHJ1ZSwgZmFsc2UsIGdyZWVuLCByZWQpOwotCi0gICAgICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0KLSAgICAgICAg
cnVuTmV4dFZpZGVvKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluaXQ7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVydCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxYTY4YmU4MTI5MDVhNDlhZjI5NmYwOGZhY2UxMjExZmRlMDMxMWYxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs
MCBAQAotLyoKLUNvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotYXJlIG1ldDoKLTEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFTIElTIEFORCBBTlkKLUVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1J
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLVBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi1DT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLUVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLVBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotYXR0cmlidXRlIHZlYzQgYV92
ZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMyBhX25vcm1hbDsKLQotdW5pZm9ybSBtZWRpdW1wIG1hdDQg
dV9tb2RlbFZpZXdQcm9qTWF0cml4OwotCi12YXJ5aW5nIHZlYzMgdl9ub3JtYWw7Ci0KLXZvaWQg
bWFpbigpCi17Ci0gICAgdl9ub3JtYWwgPSBhX25vcm1hbDsKLSAgICBnbF9Qb3NpdGlvbiA9ICB1
X21vZGVsVmlld1Byb2pNYXRyaXggKiBhX3ZlcnRleDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNjIxMjJjOTA3Y2RlZTk1MzQ0NDQ5MTNkMzYxOGZjNzQyNTYwZmJiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTk4ICswLDAg
QEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLXZhciBXZWJHTFRlc3RVdGlscyA9IChmdW5jdGlv
bigpIHsKLSJ1c2Ugc3RyaWN0IjsKLQotLyoqCi0gKiBXcmFwcGVkIGxvZ2dpbmcgZnVuY3Rpb24u
Ci0gKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGxvZy4KLSAqLwotdmFyIGxv
ZyA9IGZ1bmN0aW9uKG1zZykgewotICBpZiAod2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNv
bGUubG9nKSB7Ci0gICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7Ci0gIH0KLX07Ci0KLS8qKgot
ICogV3JhcHBlZCBsb2dnaW5nIGZ1bmN0aW9uLgotICogQHBhcmFtIHtzdHJpbmd9IG1zZyBUaGUg
bWVzc2FnZSB0byBsb2cuCi0gKi8KLXZhciBlcnJvciA9IGZ1bmN0aW9uKG1zZykgewotICBpZiAo
d2luZG93LmNvbnNvbGUpIHsKLSAgICBpZiAod2luZG93LmNvbnNvbGUuZXJyb3IpIHsKLSAgICAg
IHdpbmRvdy5jb25zb2xlLmVycm9yKG1zZyk7Ci0gICAgfQotICAgIGVsc2UgaWYgKHdpbmRvdy5j
b25zb2xlLmxvZykgewotICAgICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7Ci0gICAgfQotICB9
Ci19OwotCi0vKioKLSAqIFR1cm4gb2ZmIGFsbCBsb2dnaW5nLgotICovCi12YXIgbG9nZ2luZ09m
ZiA9IGZ1bmN0aW9uKCkgewotICBsb2cgPSBmdW5jdGlvbigpIHt9OwotICBlcnJvciA9IGZ1bmN0
aW9uKCkge307Ci19OwotCi0vKioKLSAqIENvbnZlcnRzIGEgV2ViR0wgZW51bSB0byBhIHN0cmlu
ZwotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4K
LSAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgZW51bSB2YWx1ZS4KLSAqIEByZXR1cm4ge3N0
cmluZ30gVGhlIGVudW0gYXMgYSBzdHJpbmcuCi0gKi8KLXZhciBnbEVudW1Ub1N0cmluZyA9IGZ1
bmN0aW9uKGdsLCB2YWx1ZSkgewotICBmb3IgKHZhciBwIGluIGdsKSB7Ci0gICAgaWYgKGdsW3Bd
ID09IHZhbHVlKSB7Ci0gICAgICByZXR1cm4gcDsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuICIweCIg
KyB2YWx1ZS50b1N0cmluZygxNik7Ci19OwotCi12YXIgbGFzdEVycm9yID0gIiI7Ci0KLS8qKgot
ICogUmV0dXJucyB0aGUgbGFzdCBjb21waWxlci9saW5rZXIgZXJyb3IuCi0gKiBAcmV0dXJuIHtz
dHJpbmd9IFRoZSBsYXN0IGNvbXBpbGVyL2xpbmtlciBlcnJvci4KLSAqLwotdmFyIGdldExhc3RF
cnJvciA9IGZ1bmN0aW9uKCkgewotICByZXR1cm4gbGFzdEVycm9yOwotfTsKLQotLyoqCi0gKiBX
aGV0aGVyIGEgaGF5c3RhY2sgZW5kcyB3aXRoIGEgbmVlZGxlLgotICogQHBhcmFtIHtzdHJpbmd9
IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKLSAqIEBwYXJhbSB7c3RyaW5nfSBuZWVkbGUgU3Ry
aW5nIHRvIHNlYXJjaCBmb3IuCi0gKiBAcGFyYW0ge2Jvb2xlYW59IFRydWUgaWYgaGF5c3RhY2sg
ZW5kcyB3aXRoIG5lZWRsZS4KLSAqLwotdmFyIGVuZHNXaXRoID0gZnVuY3Rpb24oaGF5c3RhY2ss
IG5lZWRsZSkgewotICByZXR1cm4gaGF5c3RhY2suc3Vic3RyKGhheXN0YWNrLmxlbmd0aCAtIG5l
ZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Ci19OwotCi0vKioKLSAqIFdoZXRoZXIgYSBoYXlzdGFj
ayBzdGFydHMgd2l0aCBhIG5lZWRsZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBoYXlzdGFjayBTdHJp
bmcgdG8gc2VhcmNoCi0gKiBAcGFyYW0ge3N0cmluZ30gbmVlZGxlIFN0cmluZyB0byBzZWFyY2gg
Zm9yLgotICogQHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhheXN0YWNrIHN0YXJ0cyB3aXRoIG5l
ZWRsZS4KLSAqLwotdmFyIHN0YXJ0c1dpdGggPSBmdW5jdGlvbihoYXlzdGFjaywgbmVlZGxlKSB7
Ci0gIHJldHVybiBoYXlzdGFjay5zdWJzdHIoMCwgbmVlZGxlLmxlbmd0aCkgPT09IG5lZWRsZTsK
LX07Ci0KLS8qKgotICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJlLgotICog
QHR5cGUge3N0cmluZ30KLSAqLwotdmFyIHNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBbCi0g
ICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKLSAgJ2F0dHJpYnV0ZSB2ZWMyIHRleENvb3Jk
MDsnLAotICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCi0gICd2b2lkIG1haW4oKSB7JywKLSAg
JyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAotICAnICAgIHRleENvb3JkID0gdGV4Q29v
cmQwOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIGZyYWdtZW50IHNoYWRlciBm
b3IgYSBzaW5nbGUgdGV4dHVyZS4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZhciBzaW1wbGVU
ZXh0dXJlRnJhZ21lbnRTaGFkZXIgPSBbCi0gICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAot
ICAndW5pZm9ybSBzYW1wbGVyMkQgdGV4OycsCi0gICd2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7JywK
LSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdGV4dHVyZTJEKHRl
eCwgdGV4Q29vcmQpOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIHZlcnRleCBz
aGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCi0gKiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIg
bm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBbCi0gICdhdHRyaWJ1dGUgdmVjNCB2UG9z
aXRpb247JywKLSAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAotICAndm9pZCBtYWluKCkgeycs
Ci0gICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKLSAgJyAgICB0ZXhDb29yZCA9IHZQ
b3NpdGlvbi54eSAqIDAuNSArIDAuNTsnLAotICAnfSddLmpvaW4oJ1xuJyk7Ci0KLS8qKgotICog
QSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCi0gKiBAdHlwZSB7c3RyaW5nfQot
ICovCi12YXIgc2ltcGxlQ29sb3JWZXJ0ZXhTaGFkZXIgPSBbCi0gICdhdHRyaWJ1dGUgdmVjNCB2
UG9zaXRpb247JywKLSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGdsX1Bvc2l0aW9uID0gdlBv
c2l0aW9uOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIGZyYWdtZW50IHNoYWRl
ciBmb3IgYSB1bmlmb3JtIGNvbG9yLgotICogQHR5cGUge3N0cmluZ30KLSAqLwotdmFyIHNpbXBs
ZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCi0gICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAot
ICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKLSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGds
X0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAotICAnfSddLmpvaW4oJ1xuJyk7Ci0KLS8qKgotICog
QSB2ZXJ0ZXggc2hhZGVyIGZvciB2ZXJ0ZXggY29sb3JzLgotICogQHR5cGUge3N0cmluZ30KLSAq
LwotdmFyIHNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyID0gWwotICAnYXR0cmlidXRlIHZl
YzQgdlBvc2l0aW9uOycsCi0gICdhdHRyaWJ1dGUgdmVjNCBhX2NvbG9yOycsCi0gICd2YXJ5aW5n
IHZlYzQgdl9jb2xvcjsnLAotICAndm9pZCBtYWluKCkgeycsCi0gICcgICAgZ2xfUG9zaXRpb24g
PSB2UG9zaXRpb247JywKLSAgJyAgICB2X2NvbG9yID0gYV9jb2xvcjsnLAotICAnfSddLmpvaW4o
J1xuJyk7Ci0KLS8qKgotICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIHZlcnRleCBjb2xvcnMuCi0g
KiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIgc2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRl
ciA9IFsKLSAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OycsCi0gICd2YXJ5aW5nIHZlYzQgdl9j
b2xvcjsnLAotICAndm9pZCBtYWluKCkgeycsCi0gICcgICAgZ2xfRnJhZ0RhdGFbMF0gPSB2X2Nv
bG9yOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIHRl
eHR1cmUgdmVydGV4IHNoYWRlci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdl
YkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBz
ZXR1cFNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBmdW5jdGlvbihnbCkgewotICAgIHJldHVy
biBsb2FkU2hhZGVyKGdsLCBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyLCBnbC5WRVJURVhfU0hB
REVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIGZyYWdtZW50IHNo
YWRlci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1
c2UuCi0gKiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVRleHR1
cmVGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIo
Ci0gICAgICAgIGdsLCBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIsIGdsLkZSQUdNRU5UX1NI
QURFUik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSB0ZXh0dXJlIHZlcnRleCBzaGFkZXIgdGhh
dCBkb2Vzbid0IG5lZWQgdGV4Y29vcmRzLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBU
aGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0KLSAqLwot
dmFyIHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBmdW5jdGlvbihnbCkgewot
ICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBub1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlciwg
Z2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgdmVydGV4
IGNvbG9yIHZlcnRleCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12YXIg
c2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAg
cmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyLCBnbC5W
RVJURVhfU0hBREVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB2ZXJ0ZXggY29s
b3IgZnJhZ21lbnQgc2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2Vi
R0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0KLSAqLwotdmFyIHNl
dHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAg
cmV0dXJuIGxvYWRTaGFkZXIoCi0gICAgICAgIGdsLCBzaW1wbGVWZXJ0ZXhDb2xvckZyYWdtZW50
U2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIpOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgc2lt
cGxlIGNvbG9yIHZlcnRleCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRo
ZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12
YXIgc2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0
dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZUNvbG9yVmVydGV4U2hhZGVyLCBnbC5WRVJURVhfU0hB
REVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSBjb2xvciBmcmFnbWVudCBzaGFk
ZXIuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNl
LgotICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12YXIgc2V0dXBTaW1wbGVDb2xvckZy
YWdtZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcigKLSAg
ICAgICAgZ2wsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIsIGdsLkZSQUdNRU5UX1NIQURFUik7
Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyBzaGFkZXJzLCBiaW5k
cyBhdHRyaWIgbG9jYXRpb25zLCBsaW5rcyB0aGUKLSAqIHByb2dyYW0gYW5kIGNhbGxzIHVzZVBy
b2dyYW0uCi0gKiBAcGFyYW0geyFBcnJheS48IVdlYkdMU2hhZGVyfHN0cmluZz59IHNoYWRlcnMg
VGhlIHNoYWRlcnMgdG8KLSAqICAgICAgICBhdHRhY2gsIG9yIHRoZSBzb3VyY2UsIG9yIHRoZSBp
ZCBvZiBhIHNjcmlwdCB0byBnZXQKLSAqICAgICAgICB0aGUgc291cmNlIGZyb20uCi0gKiBAcGFy
YW0geyFBcnJheS48c3RyaW5nPn0gb3B0X2F0dHJpYnMgVGhlIGF0dHJpYnMgbmFtZXMuCi0gKiBA
cGFyYW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2xvY2F0aW9ucyBUaGUgbG9jYXRpb25zIGZvciB0
aGUgYXR0cmlicy4KLSAqLwotdmFyIHNldHVwUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsLCBzaGFkZXJz
LCBvcHRfYXR0cmlicywgb3B0X2xvY2F0aW9ucykgewotICB2YXIgcmVhbFNoYWRlcnMgPSBbXTsK
LSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gIHZhciBzaGFkZXJUeXBlID0g
dW5kZWZpbmVkOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc2hhZGVycy5sZW5ndGg7ICsraWkp
IHsKLSAgICB2YXIgc2hhZGVyID0gc2hhZGVyc1tpaV07Ci0gICAgaWYgKHR5cGVvZiBzaGFkZXIg
PT0gJ3N0cmluZycpIHsKLSAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoc2hhZGVyKTsKLSAgICAgIGlmIChlbGVtZW50KSB7Ci0gICAgICAgIGlmIChlbGVtZW50LnR5
cGUgIT0gIngtc2hhZGVyL3gtdmVydGV4IiAmJiBlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gt
ZnJhZ21lbnQiKQotICAgICAgICAgIHNoYWRlclR5cGUgPSBpaSA/IGdsLkZSQUdNRU5UX1NIQURF
UiA6IGdsLlZFUlRFWF9TSEFERVI7Ci0gICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tU2Ny
aXB0KGdsLCBzaGFkZXIsIHNoYWRlclR5cGUpOwotICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChz
aGFkZXIsICIudmVydCIpKSB7Ci0gICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShn
bCwgc2hhZGVyLCBnbC5WRVJURVhfU0hBREVSKTsKLSAgICAgIH0gZWxzZSBpZiAoZW5kc1dpdGgo
c2hhZGVyLCAiLmZyYWciKSkgewotICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyRnJvbUZpbGUo
Z2wsIHNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAg
IHNoYWRlciA9IGxvYWRTaGFkZXIoZ2wsIHNoYWRlciwgaWkgPyBnbC5GUkFHTUVOVF9TSEFERVIg
OiBnbC5WRVJURVhfU0hBREVSKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgZ2wuYXR0YWNoU2hhZGVy
KHByb2dyYW0sIHNoYWRlcik7Ci0gIH0KLSAgaWYgKG9wdF9hdHRyaWJzKSB7Ci0gICAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IG9wdF9hdHRyaWJzLmxlbmd0aDsgKytpaSkgewotICAgICAgZ2wuYmlu
ZEF0dHJpYkxvY2F0aW9uKAotICAgICAgICAgIHByb2dyYW0sCi0gICAgICAgICAgb3B0X2xvY2F0
aW9ucyA/IG9wdF9sb2NhdGlvbnNbaWldIDogaWksCi0gICAgICAgICAgb3B0X2F0dHJpYnNbaWld
KTsKLSAgICB9Ci0gIH0KLSAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci0KLSAgLy8gQ2hlY2sg
dGhlIGxpbmsgc3RhdHVzCi0gIHZhciBsaW5rZWQgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKTsKLSAgaWYgKCFsaW5rZWQpIHsKLSAgICAgIC8vIHNvbWV0
aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKLSAgICAgIGxhc3RFcnJvciA9IGdsLmdldFBy
b2dyYW1JbmZvTG9nIChwcm9ncmFtKTsKLSAgICAgIGVycm9yKCJFcnJvciBpbiBwcm9ncmFtIGxp
bmtpbmc6IiArIGxhc3RFcnJvcik7Ci0KLSAgICAgIGdsLmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7
Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgfQotCi0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0g
IHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUg
cHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0
byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJp
YiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3Jk
TG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCi0gKiBAcmV0
dXJuIHtXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtID0g
ZnVuY3Rpb24oCi0gICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2Nh
dGlvbikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8
IDA7Ci0gIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3JkTG9jYXRpb24gfHwgMTsK
LSAgdmFyIHZzID0gc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyKGdsKTsKLSAgdmFyIGZz
ID0gc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpOwotICBpZiAoIXZzIHx8ICFm
cykgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBQcm9ncmFt
KAotICAgICAgZ2wsCi0gICAgICBbdnMsIGZzXSwKLSAgICAgIFsndlBvc2l0aW9uJywgJ3RleENv
b3JkMCddLAotICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlv
bl0pOwotICBpZiAoIXByb2dyYW0pIHsKLSAgICBnbC5kZWxldGVTaGFkZXIoZnMpOwotICAgIGds
LmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKLSAgcmV0
dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSBwcm9n
cmFtLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVz
ZS4KLSAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwTm9UZXhDb29yZFRl
eHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oZ2wpIHsKLSAgdmFyIHZzID0gc2V0dXBOb1RleENvb3Jk
VGV4dHVyZVZlcnRleFNoYWRlcihnbCk7Ci0gIHZhciBmcyA9IHNldHVwU2ltcGxlVGV4dHVyZUZy
YWdtZW50U2hhZGVyKGdsKTsKLSAgaWYgKCF2cyB8fCAhZnMpIHsKLSAgICByZXR1cm4gbnVsbDsK
LSAgfQotICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLAotICAgICAgW3Zz
LCBmc10sCi0gICAgICBbJ3ZQb3NpdGlvbiddLAotICAgICAgWzBdKTsKLSAgaWYgKCFwcm9ncmFt
KSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgICBnbC5kZWxldGVTaGFkZXIodnMpOwot
ICB9Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQot
LyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdl
YkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJl
cn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24u
Ci0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2Nh
dGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCi0gKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19Ci0gKi8K
LXZhciBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oCi0gICAgZ2wsIG9wdF9w
b3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25M
b2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7Ci0gIG9wdF90ZXhjb29yZExvY2F0
aW9uID0gb3B0X3RleGNvb3JkTG9jYXRpb24gfHwgMTsKLSAgdmFyIHZzID0gc2V0dXBTaW1wbGVU
ZXh0dXJlVmVydGV4U2hhZGVyKGdsKTsKLSAgdmFyIGZzID0gc2V0dXBTaW1wbGVUZXh0dXJlRnJh
Z21lbnRTaGFkZXIoZ2wpOwotICBpZiAoIXZzIHx8ICFmcykgewotICAgIHJldHVybiBudWxsOwot
ICB9Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBQcm9ncmFtKAotICAgICAgZ2wsCi0gICAgICBbdnMs
IGZzXSwKLSAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAotICAgICAgW29wdF9wb3Np
dGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOwotICBpZiAoIXByb2dyYW0pIHsK
LSAgICBnbC5kZWxldGVTaGFkZXIoZnMpOwotICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0K
LSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioK
LSAqIENyZWF0ZXMgYSBzaW1wbGUgdmVydGV4IGNvbG9yIHByb2dyYW0uCi0gKiBAcGFyYW0geyFX
ZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1i
ZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9u
LgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uIFRoZSBhdHRyaWIg
bG9jYXRpb24KLSAqICAgICAgICBmb3IgdmVydGV4IGNvbG9ycy4KLSAqIEByZXR1cm4ge1dlYkdM
UHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JQcm9ncmFtID0gZnVuY3Rp
b24oCi0gICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdmVydGV4Q29sb3JMb2NhdGlv
bikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7
Ci0gIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uID0gb3B0X3ZlcnRleENvbG9yTG9jYXRpb24gfHwg
MTsKLSAgdmFyIHZzID0gc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlcihnbCk7Ci0g
IHZhciBmcyA9IHNldHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlcihnbCk7Ci0gIGlm
ICghdnMgfHwgIWZzKSB7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLSAgdmFyIHByb2dyYW0gPSBz
ZXR1cFByb2dyYW0oCi0gICAgICBnbCwKLSAgICAgIFt2cywgZnNdLAotICAgICAgWyd2UG9zaXRp
b24nLCAnYV9jb2xvciddLAotICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdmVydGV4
Q29sb3JMb2NhdGlvbl0pOwotICBpZiAoIXByb2dyYW0pIHsKLSAgICBnbC5kZWxldGVTaGFkZXIo
ZnMpOwotICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgZ2wudXNlUHJvZ3JhbShwcm9n
cmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUg
Y29sb3IgcHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29u
dGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhl
IGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19
Ci0gKi8KLXZhciBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsLCBvcHRfcG9z
aXRpb25Mb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxv
Y2F0aW9uIHx8IDA7Ci0gIHZhciB2cyA9IHNldHVwU2ltcGxlQ29sb3JWZXJ0ZXhTaGFkZXIoZ2wp
OwotICB2YXIgZnMgPSBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIoZ2wpOwotICBpZiAo
IXZzIHx8ICFmcykgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBwcm9ncmFtID0gc2V0
dXBQcm9ncmFtKAotICAgICAgZ2wsCi0gICAgICBbdnMsIGZzXSwKLSAgICAgIFsndlBvc2l0aW9u
J10sCi0gICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb25dKTsKLSAgaWYgKCFwcm9ncmFtKSB7Ci0g
ICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgICBnbC5kZWxldGVTaGFkZXIodnMpOwotICB9Ci0g
IGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0g
KiBDcmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4dHVyZWQgdW5pdCBxdWFkIGFuZCBhdHRhY2hlcyB0
aGVtIHRvIHZlcnRleCBhdHRyaWJzLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUg
V2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2Nh
dGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNv
b3Jkcy4KLSAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+fSBUaGUgYnVmZmVyIG9iamVj
dHMgdGhhdCB3ZXJlCi0gKiAgICAgIGNyZWF0ZWQuCi0gKi8KLXZhciBzZXR1cFVuaXRRdWFkID0g
ZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikg
ewotICByZXR1cm4gc2V0dXBVbml0UXVhZFdpdGhUZXhDb29yZHMoZ2wsIFsgMC4wLCAwLjAgXSwg
WyAxLjAsIDEuMCBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3Bv
c2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKLX07Ci0KLS8qKgotICogQ3Jl
YXRlcyBidWZmZXJzIGZvciBhIHRleHR1cmVkIHVuaXQgcXVhZCB3aXRoIHNwZWNpZmllZCBsb3dl
ciBsZWZ0Ci0gKiBhbmQgdXBwZXIgcmlnaHQgdGV4dHVyZSBjb29yZGluYXRlcywgYW5kIGF0dGFj
aGVzIHRoZW0gdG8gdmVydGV4Ci0gKiBhdHRyaWJzLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0
fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+
fSBsb3dlckxlZnRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSBsb3dl
ciBsZWZ0IGNvcm5lci4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSB1cHBlclJpZ2h0VGV4
Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgdXBwZXIgcmlnaHQgY29ybmVy
LgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9j
YXRpb24gZm9yIHBvc2l0aW9uLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0
aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRzLgotICogQHJldHVybiB7
IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0aGF0IHdlcmUKLSAqICAg
ICAgY3JlYXRlZC4KLSAqLwotdmFyIHNldHVwVW5pdFF1YWRXaXRoVGV4Q29vcmRzID0gZnVuY3Rp
b24oCi0gICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdodFRleENvb3JkcywKLSAg
ICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKLSAgb3B0X3Bv
c2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOwotICBvcHRfdGV4Y29v
cmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8IDE7Ci0gIHZhciBvYmplY3RzID0g
W107Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5k
QnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0YShn
bC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAgIDEuMCwgIDEuMCwgMC4w
LAotICAgICAgLTEuMCwgIDEuMCwgMC4wLAotICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAg
IDEuMCwgIDEuMCwgMC4wLAotICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAgIDEuMCwgLTEu
MCwgMC4wXSksIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
b3B0X3Bvc2l0aW9uTG9jYXRpb24pOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdF9wb3Np
dGlvbkxvY2F0aW9uLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotICBvYmplY3RzLnB1c2go
dmVydGV4T2JqZWN0KTsKLQotICB2YXIgbGx4ID0gbG93ZXJMZWZ0VGV4Q29vcmRzWzBdOwotICB2
YXIgbGx5ID0gbG93ZXJMZWZ0VGV4Q29vcmRzWzFdOwotICB2YXIgdXJ4ID0gdXBwZXJSaWdodFRl
eENvb3Jkc1swXTsKLSAgdmFyIHVyeSA9IHVwcGVyUmlnaHRUZXhDb29yZHNbMV07Ci0KLSAgdmFy
IHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAgdXJ4LCB1cnksCi0gICAgICBsbHgsIHVyeSwK
LSAgICAgIGxseCwgbGx5LAotICAgICAgdXJ4LCB1cnksCi0gICAgICBsbHgsIGxseSwKLSAgICAg
IHVyeCwgbGx5XSksIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkob3B0X3RleGNvb3JkTG9jYXRpb24pOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdF90
ZXhjb29yZExvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotICBvYmplY3RzLnB1
c2godmVydGV4T2JqZWN0KTsKLSAgcmV0dXJuIG9iamVjdHM7Ci19OwotCi0vKioKLSAqIENyZWF0
ZXMgYSBwcm9ncmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSB0ZXh0dXJlZCBxdWFkLgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvcgotICogICAgICAgIHBvc2l0aW9uLiBEZWZhdWx0ID0gMC4KLSAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvcgotICogICAgICAg
IHRleHR1cmUgY29vcmRzLiBEZWZhdWx0ID0gMC4KLSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19
Ci0gKi8KLXZhciBzZXR1cFRleHR1cmVkUXVhZCA9IGZ1bmN0aW9uKAotICAgIGdsLCBvcHRfcG9z
aXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKLSAgdmFyIHByb2dyYW0gPSBz
ZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAotICAgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9u
LCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHNldHVwVW5pdFF1YWQoZ2wsIG9wdF9wb3NpdGlv
bkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsK
LQotLyoqCi0gKiBDcmVhdGVzIGEgcHJvZ3JhbSBhbmQgYnVmZmVycyBmb3IgcmVuZGVyaW5nIGEg
Y29sb3IgcXVhZC4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4
dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0
dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfQot
ICovCi12YXIgc2V0dXBDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgb3B0X3Bvc2l0aW9uTG9jYXRp
b24pIHsKLSAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAw
OwotICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtKGdsKTsKLSAgc2V0dXBV
bml0UXVhZChnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24pOwotICByZXR1cm4gcHJvZ3JhbTsKLX07
Ci0KLS8qKgotICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBh
IHRleHR1cmVkIHF1YWQgd2l0aAotICogc3BlY2lmaWVkIGxvd2VyIGxlZnQgYW5kIHVwcGVyIHJp
Z2h0IHRleHR1cmUgY29vcmRpbmF0ZXMuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRo
ZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGxvd2Vy
TGVmdFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBmb3IgdGhlIGxvd2VyIGxlZnQg
Y29ybmVyLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IHVwcGVyUmlnaHRUZXhDb29yZHMg
VGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSB1cHBlciByaWdodCBjb3JuZXIuCi0gKiBA
cGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBm
b3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhl
IGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCi0gKiBAcmV0dXJuIHshV2ViR0xQ
cm9ncmFtfQotICovCi12YXIgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzID0gZnVuY3Rp
b24oCi0gICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdodFRleENvb3JkcywKLSAg
ICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKLSAgdmFyIHBy
b2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAotICAgICAgZ2wsIG9wdF9wb3NpdGlv
bkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7Ci0gIHNldHVwVW5pdFF1YWRXaXRoVGV4
Q29vcmRzKGdsLCBsb3dlckxlZnRUZXhDb29yZHMsIHVwcGVyUmlnaHRUZXhDb29yZHMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29v
cmRMb2NhdGlvbik7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEg
dW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiByZXNvbHV0aW9uLgotICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBw
YXJhbSB7bnVtYmVyfSBncmlkUmVzIFRoZSByZXNvbHV0aW9uIG9mIHRoZSBtZXNoIGdyaWQsCi0g
KiAgICAgZXhwcmVzc2VkIGluIHRoZSBudW1iZXIgb2YgcXVhZHMgYWNyb3NzIGFuZCBkb3duLgot
ICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRp
b24gZm9yIHBvc2l0aW9uLgotICovCi12YXIgc2V0dXBRdWFkID0gZnVuY3Rpb24gKAotICAgIGds
LCBncmlkUmVzLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X2ZsaXBPZGRUcmlhbmdsZXMpIHsK
LSAgcmV0dXJuIHNldHVwUXVhZFdpdGhPcHRpb25zKGdsLAotICAgIHsgZ3JpZFJlczogZ3JpZFJl
cywKLSAgICAgIHBvc2l0aW9uTG9jYXRpb246IG9wdF9wb3NpdGlvbkxvY2F0aW9uLAotICAgICAg
ZmxpcE9kZFRyaWFuZ2xlczogb3B0X2ZsaXBPZGRUcmlhbmdsZXMKLSAgICB9KTsKLX07Ci0KLS8q
KgotICogQ3JlYXRlcyBhIHF1YWQgd2l0aCB2YXJpb3VzIG9wdGlvbnMuCi0gKiBAcGFyYW0geyFX
ZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshT2Jq
ZWN0KSBvcHRpb25zIFRoZSBvcHRpb25zLiBTZWUgYmVsb3cuCi0gKiBAcmV0dXJuIHshQXJyYXku
PFdlYkdMQnVmZmVyPn0gVGhlIGNyZWF0ZWQgYnVmZmVycy4KLSAqICAgICBbcG9zaXRpb25zLCA8
Y29sb3JzPiwgaW5kaWNlc10KLSAqCi0gKiBPcHRpb25zOgotICogICBncmlkUmVzOiBudW1iZXIg
b2YgcXVhZHMgYWNyb3NzIGFuZCBkb3duIGdyaWQuCi0gKiAgIHBvc2l0aW9uTG9jYXRpb246IGF0
dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24KLSAqICAgZmxpcE9kZFRyaWFuZ2xlczogcmV2ZXJz
ZSBvcmRlciBvZiB2ZXJ0aWNlcyBvZiBldmVyeSBvdGhlcgotICogICAgICAgdHJpYW5nbGUKLSAq
ICAgcG9zaXRpb25PZmZzZXQ6IG9mZnNldCBhZGRlZCB0byBlYWNoIHZlcnRleAotICogICBwb3Np
dGlvbk11bHQ6IG11bHRpcGllciBmb3IgZWFjaCB2ZXJ0ZXgKLSAqICAgY29sb3JMb2NhdGlvbjog
YXR0cmliIGxvY2F0aW9uIGZvciB2ZXJ0ZXggY29sb3JzLiBJZgotICogICAgICB1bmRlZmluZWQg
bm8gdmVydGV4IGNvbG9ycyB3aWxsIGJlIGNyZWF0ZWQuCi0gKi8KLXZhciBzZXR1cFF1YWRXaXRo
T3B0aW9ucyA9IGZ1bmN0aW9uIChnbCwgb3B0aW9ucykgewotICB2YXIgcG9zaXRpb25Mb2NhdGlv
biA9IG9wdGlvbnMucG9zaXRpb25Mb2NhdGlvbiB8fCAwOwotICB2YXIgb2JqZWN0cyA9IFtdOwot
Ci0gIHZhciBncmlkUmVzID0gb3B0aW9ucy5ncmlkUmVzIHx8IDE7Ci0gIHZhciBwb3NpdGlvbk9m
ZnNldCA9IG9wdGlvbnMucG9zaXRpb25PZmZzZXQgfHwgMDsKLSAgdmFyIHBvc2l0aW9uTXVsdCA9
IG9wdGlvbnMucG9zaXRpb25NdWx0IHx8IDE7Ci0gIHZhciB2ZXJ0c0Fjcm9zcyA9IGdyaWRSZXMg
KyAxOwotICB2YXIgbnVtVmVydHMgPSB2ZXJ0c0Fjcm9zcyAqIHZlcnRzQWNyb3NzOwotICB2YXIg
cG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShudW1WZXJ0cyAqIDMpOwotICB2YXIgaW5kaWNl
cyA9IG5ldyBVaW50MTZBcnJheSg2ICogZ3JpZFJlcyAqIGdyaWRSZXMpOwotICB2YXIgcG9mZnNl
dCA9IDA7Ci0KLSAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVzOyArK3l5KSB7Ci0gICAg
Zm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVzOyArK3h4KSB7Ci0gICAgICBwb3NpdGlvbnNb
cG9mZnNldCArIDBdID0gKC0xICsgMiAqIHh4IC8gZ3JpZFJlcykgKiBwb3NpdGlvbk11bHQgKyBw
b3NpdGlvbk9mZnNldDsKLSAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsgMV0gPSAoLTEgKyAyICog
eXkgLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zmc2V0OwotICAgICAgcG9z
aXRpb25zW3BvZmZzZXQgKyAyXSA9IDA7Ci0KLSAgICAgIHBvZmZzZXQgKz0gMzsKLSAgICB9Ci0g
IH0KLQotICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wu
QVJSQVlfQlVGRkVSLCBidWYpOwotICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgcG9z
aXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHBv
c2l0aW9uTG9jYXRpb24pOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRp
b24sIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0gIG9iamVjdHMucHVzaChidWYpOwotCi0g
IGlmIChvcHRpb25zLmNvbG9yTG9jYXRpb24gIT09IHVuZGVmaW5lZCkgewotICAgIHZhciBjb2xv
cnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogNCk7Ci0gICAgZm9yICh2YXIgeXkgPSAw
OyB5eSA8PSBncmlkUmVzOyArK3l5KSB7Ci0gICAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDw9IGdy
aWRSZXM7ICsreHgpIHsKLSAgICAgICAgaWYgKG9wdGlvbnMuY29sb3IgIT09IHVuZGVmaW5lZCkg
ewotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSBvcHRpb25zLmNvbG9yWzBdOwotICAg
ICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMV0gPSBvcHRpb25zLmNvbG9yWzFdOwotICAgICAgICAg
IGNvbG9yc1twb2Zmc2V0ICsgMl0gPSBvcHRpb25zLmNvbG9yWzJdOwotICAgICAgICAgIGNvbG9y
c1twb2Zmc2V0ICsgM10gPSBvcHRpb25zLmNvbG9yWzNdOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSB4eCAvIGdyaWRSZXM7Ci0gICAgICAgICAgY29s
b3JzW3BvZmZzZXQgKyAxXSA9IHl5IC8gZ3JpZFJlczsKLSAgICAgICAgICBjb2xvcnNbcG9mZnNl
dCArIDJdID0gKHh4IC8gZ3JpZFJlcykgKiAoeXkgLyBncmlkUmVzKTsKLSAgICAgICAgICBjb2xv
cnNbcG9mZnNldCArIDNdID0gKHl5ICUgMikgKiAwLjUgKyAwLjU7Ci0gICAgICAgIH0KLSAgICAg
ICAgcG9mZnNldCArPSA0OwotICAgICAgfQotICAgIH0KLQotICAgIHZhciBidWYgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKLSAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmKTsKLSAg
ICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JzLCBnbC5TVEFUSUNfRFJBVyk7
Ci0gICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkob3B0aW9ucy5jb2xvckxvY2F0aW9uKTsK
LSAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdGlvbnMuY29sb3JMb2NhdGlvbiwgNCwgZ2wu
RkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICBvYmplY3RzLnB1c2goYnVmKTsKLSAgfQotCi0gIHZh
ciB0YmFzZSA9IDA7Ci0gIGZvciAodmFyIHl5ID0gMDsgeXkgPCBncmlkUmVzOyArK3l5KSB7Ci0g
ICAgdmFyIGluZGV4ID0geXkgKiB2ZXJ0c0Fjcm9zczsKLSAgICBmb3IgKHZhciB4eCA9IDA7IHh4
IDwgZ3JpZFJlczsgKyt4eCkgewotICAgICAgaW5kaWNlc1t0YmFzZSArIDBdID0gaW5kZXggKyAw
OwotICAgICAgaW5kaWNlc1t0YmFzZSArIDFdID0gaW5kZXggKyAxOwotICAgICAgaW5kaWNlc1t0
YmFzZSArIDJdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsKLSAgICAgIGluZGljZXNbdGJhc2UgKyAz
XSA9IGluZGV4ICsgdmVydHNBY3Jvc3M7Ci0gICAgICBpbmRpY2VzW3RiYXNlICsgNF0gPSBpbmRl
eCArIDE7Ci0gICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCArIHZlcnRzQWNyb3NzICsg
MTsKLQotICAgICAgaWYgKG9wdGlvbnMuZmxpcE9kZFRyaWFuZ2xlcykgewotICAgICAgICBpbmRp
Y2VzW3RiYXNlICsgNF0gPSBpbmRleCArIHZlcnRzQWNyb3NzICsgMTsKLSAgICAgICAgaW5kaWNl
c1t0YmFzZSArIDVdID0gaW5kZXggKyAxOwotICAgICAgfQotCi0gICAgICBpbmRleCArPSAxOwot
ICAgICAgdGJhc2UgKz0gNjsKLSAgICB9Ci0gIH0KLQotICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVm
ZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGJ1Zik7Ci0g
IGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNUQVRJ
Q19EUkFXKTsKLSAgb2JqZWN0cy5wdXNoKGJ1Zik7Ci0KLSAgcmV0dXJuIG9iamVjdHM7Ci19Owot
Ci0vKioKLSAqIEZpbGxzIHRoZSBnaXZlbiB0ZXh0dXJlIHdpdGggYSBzb2xpZCBjb2xvcgotICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBw
YXJhbSB7IVdlYkdMVGV4dHVyZX0gdGV4IFRoZSB0ZXh0dXJlIHRvIGZpbGwuCi0gKiBAcGFyYW0g
e251bWJlcn0gd2lkdGggVGhlIHdpZHRoIG9mIHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KLSAqIEBw
YXJhbSB7bnVtYmVyfSBoZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUu
Ci0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgd2l0
aC4gQSA0IGVsZW1lbnQgYXJyYXkKLSAqICAgICAgICB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4g
dGhlIHJhbmdlIDAgdG8gMjU1LgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9sZXZlbCBUaGUgbGV2
ZWwgb2YgdGhlIHRleHR1cmUgdG8gZmlsbC4gRGVmYXVsdCA9IDAuCi0gKi8KLXZhciBmaWxsVGV4
dHVyZSA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfbGV2ZWwp
IHsKLSAgb3B0X2xldmVsID0gb3B0X2xldmVsIHx8IDA7Ci0gIHZhciBudW1QaXhlbHMgPSB3aWR0
aCAqIGhlaWdodDsKLSAgdmFyIHNpemUgPSBudW1QaXhlbHMgKiA0OwotICB2YXIgYnVmID0gbmV3
IFVpbnQ4QXJyYXkoc2l6ZSk7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBudW1QaXhlbHM7ICsr
aWkpIHsKLSAgICB2YXIgb2ZmID0gaWkgKiA0OwotICAgIGJ1ZltvZmYgKyAwXSA9IGNvbG9yWzBd
OwotICAgIGJ1ZltvZmYgKyAxXSA9IGNvbG9yWzFdOwotICAgIGJ1ZltvZmYgKyAyXSA9IGNvbG9y
WzJdOwotICAgIGJ1ZltvZmYgKyAzXSA9IGNvbG9yWzNdOwotICB9Ci0gIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLnRleEltYWdlMkQoCi0gICAgICBnbC5URVhUVVJF
XzJELCBvcHRfbGV2ZWwsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAsCi0gICAgICBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICB9OwotCi0vKioKLSAqIENyZWF0ZXMgYSB0ZXh0
dXJlcyBhbmQgZmlsbHMgaXQgd2l0aCBhIHNvbGlkIGNvbG9yCi0gKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IHdp
ZHRoIFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCi0gKiBAcGFyYW0ge251bWJl
cn0gaGVpZ2h0IFRoZSBoZWlnaHQgb2YgdGhlIHRleHR1cmUgdG8gY3JlYXRlLgotICogQHBhcmFt
IHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIHdpdGguIEEgNCBlbGVt
ZW50IGFycmF5Ci0gKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAw
IHRvIDI1NS4KLSAqIEByZXR1cm4geyFXZWJHTFRleHR1cmV9Ci0gKi8KLXZhciBjcmVhdGVDb2xv
cmVkVGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCBjb2xvcikgewotICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBmaWxsVGV4dHVyZShnbCwgdGV4LCB3aWR0aCwg
aGVpZ2h0LCBjb2xvcik7Ci0gIHJldHVybiB0ZXg7Ci19OwotCi12YXIgdWJ5dGVUb0Zsb2F0ID0g
ZnVuY3Rpb24oYykgewotICByZXR1cm4gYyAvIDI1NTsKLX07Ci0KLXZhciB1Ynl0ZUNvbG9yVG9G
bG9hdENvbG9yID0gZnVuY3Rpb24oY29sb3IpIHsKLSAgdmFyIGZsb2F0Q29sb3IgPSBbXTsKLSAg
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9yLmxlbmd0aDsgKytpaSkgewotICAgIGZsb2F0Q29s
b3JbaWldID0gdWJ5dGVUb0Zsb2F0KGNvbG9yW2lpXSk7Ci0gIH0KLSAgcmV0dXJuIGZsb2F0Q29s
b3I7Ci19OwotCi0vKioKLSAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlmb3JtIG9mIHRoZSBjdXJy
ZW50IHByb2dyYW0gdG8gY29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj4gY29sb3IgNCBl
bGVtZW50IGFycmF5IG9mIDAtMSBjb2xvcgotICogICAgICBjb21wb25lbnRzLgotICovCi12YXIg
c2V0RmxvYXREcmF3Q29sb3IgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKLSAgdmFyIHByb2dyYW0g
PSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKTsKLSAgdmFyIGNvbG9yTG9jYXRp
b24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfY29sb3IiKTsKLSAgZ2wudW5p
Zm9ybTRmdihjb2xvckxvY2F0aW9uLCBjb2xvcik7Ci19OwotCi0vKioKLSAqIFNldHMgdGhlICJ1
X2NvbG9yIiB1bmlmb3JtIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gdG8gY29sb3IuCi0gKiBAcGFy
YW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFt
IHshQXJyYXkuPG51bWJlcj4gY29sb3IgNCBlbGVtZW50IGFycmF5IG9mIDAtMjU1IGNvbG9yCi0g
KiAgICAgIGNvbXBvbmVudHMuCi0gKi8KLXZhciBzZXRVQnl0ZURyYXdDb2xvciA9IGZ1bmN0aW9u
KGdsLCBjb2xvcikgewotICBzZXRGbG9hdERyYXdDb2xvcihnbCwgdWJ5dGVDb2xvclRvRmxvYXRD
b2xvcihjb2xvcikpOwotfTsKLQotLyoqCi0gKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXAgcXVh
ZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRo
ZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAotICogICAgICAgIGVsZW1lbnQgYXJyYXkgd2hlcmUg
ZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCi0gKiAgICAgICAgMS4KLSAqLwotdmFy
IGRyYXdGbG9hdENvbG9yUXVhZCA9IGZ1bmN0aW9uKGdsLCBjb2xvcikgewotICB2YXIgcHJvZ3Jh
bSA9IGdsLmdldFBhcmFtZXRlcihnbC5DVVJSRU5UX1BST0dSQU0pOwotICB2YXIgY29sb3JMb2Nh
dGlvbiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidV9jb2xvciIpOwotICBnbC51
bmlmb3JtNGZ2KGNvbG9yTG9jYXRpb24sIGNvbG9yKTsKLSAgZ2wuZHJhd0FycmF5cyhnbC5UUklB
TkdMRVMsIDAsIDYpOwotfTsKLQotCi0vKioKLSAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBx
dWFkIGluIHRoZSBnaXZlbiBjb2xvci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhl
IFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3Ig
VGhlIGNvbG9yIHRvIGRyYXcgd2l0aC4gQSA0Ci0gKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVy
ZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KLSAqICAgICAgICAyNTUuCi0gKi8K
LXZhciBkcmF3VUJ5dGVDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKLSAgZHJhd0Zs
b2F0Q29sb3JRdWFkKGdsLCB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNvbG9yKSk7Ci19OwotCi0v
KioKLSAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkLgotICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IUFycmF5Ljxu
dW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIgd2l0aCBiZWZvcmUKLSAq
ICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMg
aW4gdGhlIHJhbmdlIDAgdG8KLSAqICAgICAgICAyNTUuIERlZmF1bHQgWzI1NSwgMjU1LCAyNTUs
IDI1NV0KLSAqLwotdmFyIGRyYXdRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9jb2xvcikgewotICBv
cHRfY29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1NV07Ci0gIGdsLmNsZWFy
Q29sb3IoCi0gICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCi0gICAgICBvcHRfY29sb3JbMV0gLyAy
NTUsCi0gICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCi0gICAgICBvcHRfY29sb3JbM10gLyAyNTUp
OwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7
Ci0gIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLX07Ci0KLS8qKgotICogRHJh
d3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGds
IFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IGdyaWRSZXMgUmVz
b2x1dGlvbiBvZiBncmlkLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IG9wdF9jb2xvciBU
aGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQotICogICAgICAgIGRyYXdpbmcuIEEg
NCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0bwot
ICogICAgICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1XQotICovCi12YXIgZHJh
d0luZGV4ZWRRdWFkID0gZnVuY3Rpb24oZ2wsIGdyaWRSZXMsIG9wdF9jb2xvcikgewotICBvcHRf
Y29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1NV07Ci0gIGdsLmNsZWFyQ29s
b3IoCi0gICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCi0gICAgICBvcHRfY29sb3JbMV0gLyAyNTUs
Ci0gICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCi0gICAgICBvcHRfY29sb3JbM10gLyAyNTUpOwot
ICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0g
IGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIGdyaWRSZXMgKiA2LCBnbC5VTlNJR05FRF9T
SE9SVCwgMCk7Ci19OwotCi0vKioKLSAqIENoZWNrcyB0aGF0IGEgcG9ydGlvbiBvZiBhIGNhbnZh
cyBpcyAxIGNvbG9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29ybmVyIG9mIHJlZ2lvbiB0
byBjaGVjay4KLSAqIEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3JuZXIgb2YgcmVnaW9uIHRv
IGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVj
ay4KLSAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgot
ICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIGNsZWFy
IHdpdGggYmVmb3JlIGRyYXdpbmcuIEEKLSAqICAgICAgICA0IGVsZW1lbnQgYXJyYXkgd2hlcmUg
ZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KLSAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbgotICogICAgICAg
IGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCi0gKiBAcGFyYW0geyFmdW5jdGlvbigpfSBz
YW1lRm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhbGwgcGl4ZWxzCi0gKiAgICAgICAgYXJlIHRoZSBz
YW1lIGFzIGNvbG9yLgotICogQHBhcmFtIHshZnVuY3Rpb24oKX0gZGlmZmVyZW50Rm4gRnVuY3Rp
b24gdG8gY2FsbCBpZiBhIHBpeGVsCi0gKiAgICAgICAgaXMgZGlmZmVyZW50IHRoYW4gY29sb3IK
LSAqIEBwYXJhbSB7IWZ1bmN0aW9uKCl9IGxvZ0ZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGxvZ2dp
bmcuCi0gKi8KLXZhciBjaGVja0NhbnZhc1JlY3RDb2xvciA9IGZ1bmN0aW9uKGdsLCB4LCB5LCB3
aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2Vycm9yUmFuZ2UsIHNhbWVGbiwgZGlmZmVyZW50Rm4s
IGxvZ0ZuKSB7Ci0gIHZhciBlcnJvclJhbmdlID0gb3B0X2Vycm9yUmFuZ2UgfHwgMDsKLSAgaWYg
KCFlcnJvclJhbmdlLmxlbmd0aCkgewotICAgIGVycm9yUmFuZ2UgPSBbZXJyb3JSYW5nZSwgZXJy
b3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZV0KLSAgfQotICB2YXIgYnVmOwotICBpZiAo
Z2wgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIHsKLSAgICBidWYgPSBuZXcgVWlu
dDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwotICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgd2lk
dGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgfSBlbHNlIHsK
LSAgICBidWYgPSBnbC5nZXRJbWFnZURhdGEoeCwgeSwgd2lkdGgsIGhlaWdodCkuZGF0YTsKLSAg
fQotICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRoICogaGVpZ2h0OyArK2kpIHsKLSAgICB2YXIg
b2Zmc2V0ID0gaSAqIDQ7Ci0gICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb2xvci5sZW5ndGg7ICsr
aikgewotICAgICAgaWYgKE1hdGguYWJzKGJ1ZltvZmZzZXQgKyBqXSAtIGNvbG9yW2pdKSA+IGVy
cm9yUmFuZ2Vbal0pIHsKLSAgICAgICAgZGlmZmVyZW50Rm4oKTsKLSAgICAgICAgdmFyIHdhcyA9
IGJ1ZltvZmZzZXQgKyAwXS50b1N0cmluZygpOwotICAgICAgICBmb3IgKGogPSAxOyBqIDwgY29s
b3IubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICB3YXMgKz0gIiwiICsgYnVmW29mZnNldCArIGpd
OwotICAgICAgICB9Ci0gICAgICAgIGxvZ0ZuKCdhdCAoJyArIChpICUgd2lkdGgpICsgJywgJyAr
IE1hdGguZmxvb3IoaSAvIHdpZHRoKSArCi0gICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsg
Y29sb3IgKyAnIHdhcyAnICsgd2FzKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgIH0K
LSAgfQotICBzYW1lRm4oKTsKLX07Ci0KLS8qKgotICogQ2hlY2tzIHRoYXQgYSBwb3J0aW9uIG9m
IGEgY2FudmFzIGlzIDEgY29sb3IuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IHggbGVmdCBjb3JuZXIgb2Yg
cmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IHkgYm90dG9tIGNvcm5lciBvZiBy
ZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0ge251bWJlcn0gd2lkdGggd2lkdGggb2YgcmVnaW9u
IHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCB3aWR0aCBvZiByZWdpb24gdG8g
Y2hlY2suCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGZp
bGwgY2xlYXIgd2l0aCBiZWZvcmUgZHJhd2luZy4gQQotICogICAgICAgIDQgZWxlbWVudCBhcnJh
eSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgotICogQHBhcmFt
IHtzdHJpbmd9IG9wdF9tc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCBzdWNjZXNzLiBFZwot
ICogICAgICAgICgic2hvdWxkIGJlIHJlZCIpLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJv
clJhbmdlIE9wdGlvbmFsLiBBY2NlcHRhYmxlIGVycm9yIGluCi0gKiAgICAgICAgY29sb3IgY2hl
Y2tpbmcuIDAgYnkgZGVmYXVsdC4KLSAqLwotdmFyIGNoZWNrQ2FudmFzUmVjdCA9IGZ1bmN0aW9u
KGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X21zZywgb3B0X2Vycm9yUmFuZ2Up
IHsKLSAgdmFyIG1zZyA9IG9wdF9tc2c7Ci0gIGlmIChtc2cgPT09IHVuZGVmaW5lZCkgewotICAg
IG1zZyA9ICJzaG91bGQgYmUgIiArIGNvbG9yLnRvU3RyaW5nKCk7Ci0gIH0KLSAgY2hlY2tDYW52
YXNSZWN0Q29sb3IoCi0gICAgICBnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9l
cnJvclJhbmdlLAotICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQobXNnKTsK
LSAgICAgIH0sCi0gICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdEZhaWxlZChtc2cpOwot
ICAgICAgfSwKLSAgICAgIGRlYnVnKTsKLX07Ci0KLS8qKgotICogQ2hlY2tzIHRoYXQgYW4gZW50
aXJlIGNhbnZhcyBpcyAxIGNvbG9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUg
V2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBU
aGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZSBkcmF3aW5nLiBBCi0gKiAgICAgICAg
NCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAy
NTUuCi0gKiBAcGFyYW0ge3N0cmluZ30gbXNnIE1lc3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggc3Vj
Y2Vzcy4gRWcgKCJzaG91bGQgYmUgcmVkIikuCi0gKiBAcGFyYW0ge251bWJlcn0gZXJyb3JSYW5n
ZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbgotICogICAgICAgIGNvbG9yIGNoZWNraW5n
LiAwIGJ5IGRlZmF1bHQuCi0gKi8KLXZhciBjaGVja0NhbnZhcyA9IGZ1bmN0aW9uKGdsLCBjb2xv
ciwgbXNnLCBlcnJvclJhbmdlKSB7Ci0gIGNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgZ2wuY2Fu
dmFzLndpZHRoLCBnbC5jYW52YXMuaGVpZ2h0LCBjb2xvciwgbXNnLCBlcnJvclJhbmdlKTsKLX07
Ci0KLS8qKgotICogTG9hZHMgYSB0ZXh0dXJlLCBjYWxscyBjYWxsYmFjayB3aGVuIGZpbmlzaGVk
LgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4K
LSAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIG9mIGltYWdlIHRvIGxvYWQKLSAqIEBwYXJhbSB7
ZnVuY3Rpb24oIUltYWdlKTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxl
ZCBhZnRlcgotICogICAgICAgIGltYWdlIGhhcyBsb2FkZWQKLSAqIEByZXR1cm4geyFXZWJHTFRl
eHR1cmV9IFRoZSBjcmVhdGVkIHRleHR1cmUuCi0gKi8KLXZhciBsb2FkVGV4dHVyZSA9IGZ1bmN0
aW9uKGdsLCB1cmwsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGds
Lk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsK
LSAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFD
S19GTElQX1lfV0VCR0wsIHRydWUpOwotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlKTsKLSAgICAg
ICAgY2FsbGJhY2soaW1hZ2UpOwotICAgIH07Ci0gICAgaW1hZ2Uuc3JjID0gdXJsOwotICAgIHJl
dHVybiB0ZXh0dXJlOwotfTsKLQotLyoqCi0gKiBNYWtlcyBhIHNoYWxsb3cgY29weSBvZiBhbiBv
YmplY3QuCi0gKiBAcGFyYW0geyFPYmplY3QpIHNyYyBPYmplY3QgdG8gY29weQotICogQHJldHVy
biB7IU9iamVjdH0gVGhlIGNvcHkgb2Ygc3JjLgotICovCi12YXIgc2hhbGxvd0NvcHlPYmplY3Qg
PSBmdW5jdGlvbihzcmMpIHsKLSAgdmFyIGRzdCA9IHt9OwotICBmb3IgKHZhciBhdHRyIGluIHNy
YykgewotICAgIGlmIChzcmMuaGFzT3duUHJvcGVydHkoYXR0cikpIHsKLSAgICAgIGRzdFthdHRy
XSA9IHNyY1thdHRyXTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIGRzdDsKLX07Ci0KLS8qKgotICog
Q2hlY2tzIGlmIGFuIGF0dHJpYnV0ZSBleGlzdHMgb24gYW4gb2JqZWN0IGNhc2UgaW5zZW5zaXRp
dmUuCi0gKiBAcGFyYW0geyFPYmplY3QpIG9iaiBPYmplY3QgdG8gY2hlY2sKLSAqIEBwYXJhbSB7
c3RyaW5nfSBhdHRyIE5hbWUgb2YgYXR0cmlidXRlIHRvIGxvb2sgZm9yLgotICogQHJldHVybiB7
c3RyaW5nP30gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBpZiBpdCBleGlzdHMsCi0gKiAgICAg
ICAgIHVuZGVmaW5lZCBpZiBub3QuCi0gKi8KLXZhciBoYXNBdHRyaWJ1dGVDYXNlSW5zZW5zaXRp
dmUgPSBmdW5jdGlvbihvYmosIGF0dHIpIHsKLSAgdmFyIGxvd2VyID0gYXR0ci50b0xvd2VyQ2Fz
ZSgpOwotICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7Ci0gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0
eShrZXkpICYmIGtleS50b0xvd2VyQ2FzZSgpID09IGxvd2VyKSB7Ci0gICAgICByZXR1cm4ga2V5
OwotICAgIH0KLSAgfQotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgd2ViZ2wgY29udGV4dC4KLSAq
IEBwYXJhbSB7IUNhbnZhc3xzdHJpbmd9IG9wdF9jYW52YXMgVGhlIGNhbnZhcyB0YWcgdG8gZ2V0
Ci0gKiAgICAgY29udGV4dCBmcm9tLiBJZiBvbmUgaXMgbm90IHBhc3NlZCBpbiBvbmUgd2lsbCBi
ZQotICogICAgIGNyZWF0ZWQuIElmIGl0J3MgYSBzdHJpbmcgaXQncyBhc3N1bWVkIHRvIGJlIHRo
ZSBpZCBvZiBhCi0gKiAgICAgY2FudmFzLgotICogQHJldHVybiB7IVdlYkdMQ29udGV4dH0gVGhl
IGNyZWF0ZWQgY29udGV4dC4KLSAqLwotdmFyIGNyZWF0ZTNEQ29udGV4dCA9IGZ1bmN0aW9uKG9w
dF9jYW52YXMsIG9wdF9hdHRyaWJ1dGVzKSB7Ci0gIGlmICh3aW5kb3cuaW5pdFRlc3RpbmdIYXJu
ZXNzKSB7Ci0gICAgd2luZG93LmluaXRUZXN0aW5nSGFybmVzcygpOwotICB9Ci0gIHZhciBhdHRy
aWJ1dGVzID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0X2F0dHJpYnV0ZXMgfHwge30pOwotICBpZiAo
IWhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZShhdHRyaWJ1dGVzLCAiYW50aWFsaWFzIikpIHsK
LSAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOwotICB9Ci0KLSAgb3B0X2NhbnZhcyA9
IG9wdF9jYW52YXMgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGlmICh0
eXBlb2Ygb3B0X2NhbnZhcyA9PSAnc3RyaW5nJykgewotICAgIG9wdF9jYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChvcHRfY2FudmFzKTsKLSAgfQotICB2YXIgY29udGV4dCA9IG51bGw7
Ci0gIHZhciBuYW1lcyA9IFsid2ViZ2wiLCAiZXhwZXJpbWVudGFsLXdlYmdsIl07Ci0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICB0cnkgewotICAgICAgY29u
dGV4dCA9IG9wdF9jYW52YXMuZ2V0Q29udGV4dChuYW1lc1tpXSwgYXR0cmlidXRlcyk7Ci0gICAg
fSBjYXRjaCAoZSkgewotICAgIH0KLSAgICBpZiAoY29udGV4dCkgewotICAgICAgYnJlYWs7Ci0g
ICAgfQotICB9Ci0gIGlmICghY29udGV4dCkgewotICAgIHRlc3RGYWlsZWQoIlVuYWJsZSB0byBm
ZXRjaCBXZWJHTCByZW5kZXJpbmcgY29udGV4dCBmb3IgQ2FudmFzIik7Ci0gIH0KLSAgcmV0dXJu
IGNvbnRleHQ7Ci19Ci0KLS8qKgotICogR2V0cyBhIEdMRXJyb3IgdmFsdWUgYXMgYSBzdHJpbmcu
Ci0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgot
ICogQHBhcmFtIHtudW1iZXJ9IGVyciBUaGUgd2ViZ2wgZXJyb3IgYXMgcmV0cmlldmVkIGZyb20g
Z2wuZ2V0RXJyb3IoKS4KLSAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVycm9yIGFzIGEgc3RyaW5n
LgotICovCi12YXIgZ2V0R0xFcnJvckFzU3RyaW5nID0gZnVuY3Rpb24oZ2wsIGVycikgewotICBp
ZiAoZXJyID09PSBnbC5OT19FUlJPUikgewotICAgIHJldHVybiAiTk9fRVJST1IiOwotICB9Ci0g
IGZvciAodmFyIG5hbWUgaW4gZ2wpIHsKLSAgICBpZiAoZ2xbbmFtZV0gPT09IGVycikgewotICAg
ICAgcmV0dXJuIG5hbWU7Ci0gICAgfQotICB9Ci0gIHJldHVybiBlcnIudG9TdHJpbmcoKTsKLX07
Ci0KLS8qKgotICogV3JhcHMgYSBXZWJHTCBmdW5jdGlvbiB3aXRoIGEgZnVuY3Rpb24gdGhhdCB0
aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZXJlIGlzCi0gKiBhbiBlcnJvci4KLSAqIEBwYXJhbSB7
IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0
cmluZ30gZm5hbWUgTmFtZSBvZiBmdW5jdGlvbiB0byB3cmFwLgotICogQHJldHVybiB7ZnVuY3Rp
b259IFRoZSB3cmFwcGVkIGZ1bmN0aW9uLgotICovCi12YXIgY3JlYXRlR0xFcnJvcldyYXBwZXIg
PSBmdW5jdGlvbihjb250ZXh0LCBmbmFtZSkgewotICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
dmFyIHJ2ID0gY29udGV4dFtmbmFtZV0uYXBwbHkoY29udGV4dCwgYXJndW1lbnRzKTsKLSAgICB2
YXIgZXJyID0gY29udGV4dC5nZXRFcnJvcigpOwotICAgIGlmIChlcnIgIT0gY29udGV4dC5OT19F
UlJPUikKLSAgICAgIHRocm93ICJHTCBlcnJvciAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGNvbnRl
eHQsIGVycikgKyAiIGluICIgKyBmbmFtZTsKLSAgICByZXR1cm4gcnY7Ci0gIH07Ci19OwotCi0v
KioKLSAqIENyZWF0ZXMgYSBXZWJHTCBjb250ZXh0IHdoZXJlIGFsbCBmdW5jdGlvbnMgYXJlIHdy
YXBwZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uCi0gKiBpZiB0aGVyZSBpcyBhbiBlcnJvci4KLSAq
IEBwYXJhbSB7IUNhbnZhc30gY2FudmFzIFRoZSBIVE1MIGNhbnZhcyB0byBnZXQgYSBjb250ZXh0
IGZyb20uCi0gKiBAcmV0dXJuIHshT2JqZWN0fSBUaGUgd3JhcHBlZCBjb250ZXh0LgotICovCi1m
dW5jdGlvbiBjcmVhdGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJvd3NPbkdMRXJyb3IoY2Fu
dmFzKSB7Ci0gIHZhciBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gIHZhciB3
cmFwID0ge307Ci0gIGZvciAodmFyIGkgaW4gY29udGV4dCkgewotICAgIHRyeSB7Ci0gICAgICBp
ZiAodHlwZW9mIGNvbnRleHRbaV0gPT0gJ2Z1bmN0aW9uJykgewotICAgICAgICB3cmFwW2ldID0g
Y3JlYXRlR0xFcnJvcldyYXBwZXIoY29udGV4dCwgaSk7Ci0gICAgICB9IGVsc2UgewotICAgICAg
ICB3cmFwW2ldID0gY29udGV4dFtpXTsKLSAgICAgIH0KLSAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICBlcnJvcigiY3JlYXRlQ29udGV4dFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9yOiBFcnJvciBh
Y2Nlc3NpbmcgIiArIGkpOwotICAgIH0KLSAgfQotICB3cmFwLmdldEVycm9yID0gZnVuY3Rpb24o
KSB7Ci0gICAgICByZXR1cm4gY29udGV4dC5nZXRFcnJvcigpOwotICB9OwotICByZXR1cm4gd3Jh
cDsKLX07Ci0KLS8qKgotICogVGVzdHMgdGhhdCBhbiBldmFsdWF0ZWQgZXhwcmVzc2lvbiBnZW5l
cmF0ZXMgYSBzcGVjaWZpYyBHTCBlcnJvci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wg
VGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gZ2xFcnJvciBUaGUg
ZXhwZWN0ZWQgZ2wgZXJyb3IuCi0gKiBAcGFyYW0ge3N0cmluZ30gZXZhbFNUciBUaGUgc3RyaW5n
IHRvIGV2YWx1YXRlLgotICovCi12YXIgc2hvdWxkR2VuZXJhdGVHTEVycm9yID0gZnVuY3Rpb24o
Z2wsIGdsRXJyb3IsIGV2YWxTdHIpIHsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdHJ5IHsKLSAgICBl
dmFsKGV2YWxTdHIpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgZXhjZXB0aW9uID0gZTsKLSAgfQot
ICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiB0aHJldyBleGNl
cHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gIH0gZWxzZSB7Ci0gICAgdmFyIGVyciA9IGdsLmdldEVy
cm9yKCk7Ci0gICAgaWYgKGVyciAhPSBnbEVycm9yKSB7Ci0gICAgICB0ZXN0RmFpbGVkKGV2YWxT
dHIgKyAiIGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVycm9yKSArICIu
IFdhcyAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsgIi4iKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgdGVzdFBhc3NlZChldmFsU3RyICsgIiB3YXMgZXhwZWN0ZWQgdmFsdWU6ICIgKyBn
ZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIi4iKTsKLSAgICB9Ci0gIH0KLX07Ci0K
LS8qKgotICogVGVzdHMgdGhhdCB0aGUgZmlyc3QgZXJyb3IgR0wgcmV0dXJucyBpcyB0aGUgc3Bl
Y2lmaWVkIGVycm9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBnbEVycm9yIFRoZSBleHBlY3RlZCBnbCBl
cnJvci4KLSAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnCi0gKi8KLXZhciBnbEVycm9yU2hvdWxk
QmUgPSBmdW5jdGlvbihnbCwgZ2xFcnJvciwgb3B0X21zZykgewotICBvcHRfbXNnID0gb3B0X21z
ZyB8fCAiIjsKLSAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gIGlmIChlcnIgIT0gZ2xFcnJv
cikgewotICAgIHRlc3RGYWlsZWQoImdldEVycm9yIGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFz
U3RyaW5nKGdsLCBnbEVycm9yKSArCi0gICAgICAgICAgICAgICAiLiBXYXMgIiArIGdldEdMRXJy
b3JBc1N0cmluZyhnbCwgZXJyKSArICIgOiAiICsgb3B0X21zZyk7Ci0gIH0gZWxzZSB7Ci0gICAg
dGVzdFBhc3NlZCgiZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiAiICsKLSAgICAgICAgICAg
ICAgICBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIiA6ICIgKyBvcHRfbXNnKTsK
LSAgfQotfTsKLQotLyoqCi0gKiBMaW5rcyBhIFdlYkdMIHByb2dyYW0sIHRocm93cyBpZiB0aGVy
ZSBhcmUgZXJyb3JzLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IVdlYkdMUHJvZ3JhbX0gcHJvZ3JhbSBUaGUgV2ViR0xQ
cm9ncmFtIHRvIGxpbmsuCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9wdF9l
cnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAotICovCi12YXIgbGlua1Byb2dyYW0g
PSBmdW5jdGlvbihnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKLSAgdmFyIGVyckZu
ID0gb3B0X2Vycm9yQ2FsbGJhY2sgfHwgdGVzdEZhaWxlZDsKLSAgLy8gTGluayB0aGUgcHJvZ3Jh
bQotICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLQotICAvLyBDaGVjayB0aGUgbGluayBzdGF0
dXMKLSAgdmFyIGxpbmtlZCA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElO
S19TVEFUVVMpOwotICBpZiAoIWxpbmtlZCkgewotICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25n
IHdpdGggdGhlIGxpbmsKLSAgICB2YXIgZXJyb3IgPSBnbC5nZXRQcm9ncmFtSW5mb0xvZyAocHJv
Z3JhbSk7Ci0KLSAgICBlcnJGbigiRXJyb3IgaW4gcHJvZ3JhbSBsaW5raW5nOiIgKyBlcnJvcik7
Ci0KLSAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOwotICB9Ci19OwotCi0vKioKLSAqIExv
YWRzIHRleHQgZnJvbSBhbiBleHRlcm5hbCBmaWxlLiBUaGlzIGZ1bmN0aW9uIGlzIHN5bmNocm9u
b3VzLgotICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgdXJsIG9mIHRoZSBleHRlcm5hbCBmaWxl
LgotICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgc3RyaW5nKTogdm9pZH0gY2FsbGJhY2sgdGhh
dCBpcyBzZW50IGEgYm9vbCBmb3IKLSAqICAgICBzdWNjZXNzIGFuZCB0aGUgc3RyaW5nLgotICov
Ci12YXIgbG9hZFRleHRGaWxlQXN5bmMgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Ci0gIGxv
ZyAoImxvYWRpbmc6ICIgKyB1cmwpOwotICB2YXIgZXJyb3IgPSAnbG9hZFRleHRGaWxlU3luY2hy
b25vdXMgZmFpbGVkIHRvIGxvYWQgdXJsICInICsgdXJsICsgJyInOwotICB2YXIgcmVxdWVzdDsK
LSAgaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewotICAgIHJlcXVlc3QgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKLSAgICBpZiAocmVxdWVzdC5vdmVycmlkZU1pbWVUeXBlKSB7Ci0gICAgICBy
ZXF1ZXN0Lm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW4nKTsKLSAgICB9Ci0gIH0gZWxzZSB7
Ci0gICAgdGhyb3cgJ1hNTEh0dHBSZXF1ZXN0IGlzIGRpc2FibGVkJzsKLSAgfQotICB0cnkgewot
ICAgIHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTsKLSAgICByZXF1ZXN0Lm9ucmVhZHlz
dGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHJlcXVlc3QucmVhZHlTdGF0ZSA9
PSA0KSB7Ci0gICAgICAgIHZhciB0ZXh0ID0gJyc7Ci0gICAgICAgIC8vIEhUVFAgcmVwb3J0cyBz
dWNjZXNzIHdpdGggYSAyMDAgc3RhdHVzLiBUaGUgZmlsZSBwcm90b2NvbCByZXBvcnRzCi0gICAg
ICAgIC8vIHN1Y2Nlc3Mgd2l0aCB6ZXJvLiBIVFRQIGRvZXMgbm90IHVzZSB6ZXJvIGFzIGEgc3Rh
dHVzIGNvZGUgKHRoZXkKLSAgICAgICAgLy8gc3RhcnQgYXQgMTAwKS4KLSAgICAgICAgLy8gaHR0
cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvRW4vVXNpbmdfWE1MSHR0cFJlcXVlc3QKLSAgICAg
ICAgdmFyIHN1Y2Nlc3MgPSByZXF1ZXN0LnN0YXR1cyA9PSAyMDAgfHwgcmVxdWVzdC5zdGF0dXMg
PT0gMDsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKLSAgICAgICAgICB0ZXh0ID0gcmVxdWVzdC5y
ZXNwb25zZVRleHQ7Ci0gICAgICAgIH0KLSAgICAgICAgbG9nKCJsb2FkZWQ6ICIgKyB1cmwpOwot
ICAgICAgICBjYWxsYmFjayhzdWNjZXNzLCB0ZXh0KTsKLSAgICAgIH0KLSAgICB9OwotICAgIHJl
cXVlc3Quc2VuZChudWxsKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIGxvZygiZmFpbGVkIHRvIGxv
YWQ6ICIgKyB1cmwpOwotICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7Ci0gIH0KLX07Ci0KLS8qKgot
ICogUmVjdXJzaXZlbHkgbG9hZHMgYSBmaWxlIGFzIGEgbGlzdC4gRWFjaCBsaW5lIGlzIHBhcnNl
ZCBmb3IgYSByZWxhdGl2ZQotICogcGF0aC4gSWYgdGhlIGZpbGUgZW5kcyBpbiAudHh0IHRoZSBj
b250ZW50cyBvZiB0aGF0IGZpbGUgaXMgaW5zZXJ0ZWQgaW4KLSAqIHRoZSBsaXN0LgotICoKLSAq
IEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJuYWwgZmlsZS4KLSAqIEBw
YXJhbSB7IWZ1bmN0aW9uKGJvb2wsIEFycmF5PHN0cmluZz4pOiB2b2lkfSBjYWxsYmFjayB0aGF0
IGlzIHNlbnQgYSBib29sCi0gKiAgICAgZm9yIHN1Y2Nlc3MgYW5kIHRoZSBhcnJheSBvZiBzdHJp
bmdzLgotICovCi12YXIgZ2V0RmlsZUxpc3RBc3luYyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2sp
IHsKLSAgdmFyIGZpbGVzID0gW107Ci0KLSAgdmFyIGdldEZpbGVMaXN0SW1wbCA9IGZ1bmN0aW9u
KHVybCwgY2FsbGJhY2spIHsKLSAgICB2YXIgZmlsZXMgPSBbXTsKLSAgICBpZiAodXJsLnN1YnN0
cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7Ci0gICAgICBsb2FkVGV4dEZpbGVBc3luYyh1
cmwsIGZ1bmN0aW9uKCkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2VzcywgdGV4dCkg
ewotICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICAgICAgY2FsbGJhY2soZmFsc2Us
ICcnKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGxp
bmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKLSAgICAgICAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAg
ICAgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0SW5kZXhPZignLycpOwotICAgICAgICAgIGlm
IChsYXN0U2xhc2ggPj0gMCkgewotICAgICAgICAgICAgcHJlZml4ID0gdXJsLnN1YnN0cigwLCBs
YXN0U2xhc2ggKyAxKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGZhaWwgPSBmYWxzZTsK
LSAgICAgICAgICB2YXIgY291bnQgPSAxOwotICAgICAgICAgIHZhciBpbmRleCA9IDA7Ci0gICAg
ICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0aDsgKytpaSkgewotICAgICAg
ICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBsYWNlKC9eXHNccyovLCAnJykucmVwbGFjZSgv
XHNccyokLywgJycpOwotICAgICAgICAgICAgaWYgKHN0ci5sZW5ndGggPiA0ICYmCi0gICAgICAg
ICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgotICAgICAgICAgICAgICAgIHN0clswXSAhPSAiOyIg
JiYKLSAgICAgICAgICAgICAgICBzdHIuc3Vic3RyKDAsIDIpICE9ICIvLyIpIHsKLSAgICAgICAg
ICAgICAgdmFyIG5hbWVzID0gc3RyLnNwbGl0KC8gKy8pOwotICAgICAgICAgICAgICBuZXdfdXJs
ID0gcHJlZml4ICsgc3RyOwotICAgICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09IDEpIHsK
LSAgICAgICAgICAgICAgICBuZXdfdXJsID0gcHJlZml4ICsgc3RyOwotICAgICAgICAgICAgICAg
ICsrY291bnQ7Ci0gICAgICAgICAgICAgICAgZ2V0RmlsZUxpc3RJbXBsKG5ld191cmwsIGZ1bmN0
aW9uKGluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2Vzcywg
bmV3X2ZpbGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxvZygiZ290IGZpbGVzOiAiICsgbmV3
X2ZpbGVzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgZmlsZXNbaW5kZXhdID0gbmV3X2ZpbGVzOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaChzdWNjZXNzKTsKLSAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfShpbmRleCsrKSk7Ci0gICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIHMgPSAiIjsKLSAgICAgICAgICAgICAgICB2
YXIgcCA9ICIiOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCBuYW1lcy5s
ZW5ndGg7ICsramopIHsKLSAgICAgICAgICAgICAgICAgIHMgKz0gcCArIHByZWZpeCArIG5hbWVz
W2pqXTsKLSAgICAgICAgICAgICAgICAgIHAgPSAiICI7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGZpbGVzW2luZGV4KytdID0gczsKLSAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBmaW5pc2godHJ1ZSk7Ci0KLSAgICAgICAg
ICBmdW5jdGlvbiBmaW5pc2goc3VjY2VzcykgewotICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7
Ci0gICAgICAgICAgICAgIGZhaWwgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
LS1jb3VudDsKLSAgICAgICAgICAgIGxvZygiY291bnQ6ICIgKyBjb3VudCk7Ci0gICAgICAgICAg
ICBpZiAoIWNvdW50KSB7Ci0gICAgICAgICAgICAgIGNhbGxiYWNrKCFmYWlsLCBmaWxlcyk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9KCkpOwotCi0gICAg
fSBlbHNlIHsKLSAgICAgIGZpbGVzLnB1c2godXJsKTsKLSAgICAgIGNhbGxiYWNrKHRydWUsIGZp
bGVzKTsKLSAgICB9Ci0gIH07Ci0KLSAgZ2V0RmlsZUxpc3RJbXBsKHVybCwgZnVuY3Rpb24oc3Vj
Y2VzcywgZmlsZXMpIHsKLSAgICAvLyBmbGF0dGVuCi0gICAgdmFyIGZsYXQgPSBbXTsKLSAgICBm
bGF0dGVuKGZpbGVzKTsKLSAgICBmdW5jdGlvbiBmbGF0dGVuKGZpbGVzKSB7Ci0gICAgICBmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgZmlsZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgIHZhciB2YWx1
ZSA9IGZpbGVzW2lpXTsKLSAgICAgICAgaWYgKHR5cGVvZih2YWx1ZSkgPT0gInN0cmluZyIpIHsK
LSAgICAgICAgICBmbGF0LnB1c2godmFsdWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
IGZsYXR0ZW4odmFsdWUpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIGNhbGxiYWNr
KHN1Y2Nlc3MsIGZsYXQpOwotICB9KTsKLX07Ci0KLS8qKgotICogR2V0cyBhIGZpbGUgZnJvbSBh
IGZpbGUvVVJMCi0gKiBAcGFyYW0ge3N0cmluZ30gZmlsZSB0aGUgVVJMIG9mIHRoZSBmaWxlIHRv
IGdldC4KLSAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlLgotICov
Ci12YXIgcmVhZEZpbGUgPSBmdW5jdGlvbihmaWxlKSB7Ci0gIHZhciB4aHIgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKLSAgeGhyLm9wZW4oIkdFVCIsIGZpbGUsIGZhbHNlKTsKLSAgeGhyLnNlbmQo
KTsKLSAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQucmVwbGFjZSgvXHIvZywgIiIpOwotfTsKLQot
dmFyIHJlYWRGaWxlTGlzdCA9IGZ1bmN0aW9uKHVybCkgewotICB2YXIgZmlsZXMgPSBbXTsKLSAg
aWYgKHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcudHh0JykgewotICAgIHZhciBsaW5l
cyA9IHJlYWRGaWxlKHVybCkuc3BsaXQoJ1xuJyk7Ci0gICAgdmFyIHByZWZpeCA9ICcnOwotICAg
IHZhciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2YoJy8nKTsKLSAgICBpZiAobGFzdFNsYXNo
ID49IDApIHsKLSAgICAgIHByZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFzdFNsYXNoICsgMSk7Ci0g
ICAgfQotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkpIHsKLSAg
ICAgIHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxzXHMqLywgJycpLnJlcGxhY2UoL1xz
XHMqJC8sICcnKTsKLSAgICAgIGlmIChzdHIubGVuZ3RoID4gNCAmJgotICAgICAgICAgIHN0clsw
XSAhPSAnIycgJiYKLSAgICAgICAgICBzdHJbMF0gIT0gIjsiICYmCi0gICAgICAgICAgc3RyLnN1
YnN0cigwLCAyKSAhPSAiLy8iKSB7Ci0gICAgICAgIHZhciBuYW1lcyA9IHN0ci5zcGxpdCgvICsv
KTsKLSAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgICAgbmV3X3VybCA9
IHByZWZpeCArIHN0cjsKLSAgICAgICAgICBmaWxlcyA9IGZpbGVzLmNvbmNhdChyZWFkRmlsZUxp
c3QobmV3X3VybCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBzID0gIiI7Ci0g
ICAgICAgICAgdmFyIHAgPSAiIjsKLSAgICAgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgbmFt
ZXMubGVuZ3RoOyArK2pqKSB7Ci0gICAgICAgICAgICBzICs9IHAgKyBwcmVmaXggKyBuYW1lc1tq
al07Ci0gICAgICAgICAgICBwID0gIiAiOwotICAgICAgICAgIH0KLSAgICAgICAgICBmaWxlcy5w
dXNoKHMpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICB9IGVsc2UgewotICAgIGZpbGVz
LnB1c2godXJsKTsKLSAgfQotICByZXR1cm4gZmlsZXM7Ci19OwotCi0vKioKLSAqIExvYWRzIGEg
c2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRv
IHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBzaGFkZXJTb3VyY2UgVGhlIHNoYWRlciBzb3VyY2Uu
Ci0gKiBAcGFyYW0ge251bWJlcn0gc2hhZGVyVHlwZSBUaGUgdHlwZSBvZiBzaGFkZXIuIAotICog
QHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFj
ayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0gVGhlIGNyZWF0ZWQgc2hh
ZGVyLgotICovCi12YXIgbG9hZFNoYWRlciA9IGZ1bmN0aW9uKGdsLCBzaGFkZXJTb3VyY2UsIHNo
YWRlclR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBlcnJGbiA9IG9wdF9lcnJvckNh
bGxiYWNrIHx8IGVycm9yOwotICAvLyBDcmVhdGUgdGhlIHNoYWRlciBvYmplY3QKLSAgdmFyIHNo
YWRlciA9IGdsLmNyZWF0ZVNoYWRlcihzaGFkZXJUeXBlKTsKLSAgaWYgKHNoYWRlciA9PSBudWxs
KSB7Ci0gICAgZXJyRm4oIioqKiBFcnJvcjogdW5hYmxlIHRvIGNyZWF0ZSBzaGFkZXIgJyIrc2hh
ZGVyU291cmNlKyInIik7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLQotICAvLyBMb2FkIHRoZSBz
aGFkZXIgc291cmNlCi0gIGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNoYWRlclNvdXJjZSk7Ci0g
IHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICBpZiAoZXJyICE9IGdsLk5PX0VSUk9SKSB7Ci0g
ICAgZXJyRm4oIioqKiBFcnJvciBsb2FkaW5nIHNoYWRlciAnIiArIHNoYWRlciArICInOiIgKyBn
bEVudW1Ub1N0cmluZyhnbCwgZXJyKSk7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLQotICAvLyBD
b21waWxlIHRoZSBzaGFkZXIKLSAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwotCi0gIC8vIENo
ZWNrIHRoZSBjb21waWxlIHN0YXR1cwotICB2YXIgY29tcGlsZWQgPSBnbC5nZXRTaGFkZXJQYXJh
bWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUyk7Ci0gIGlmICghY29tcGlsZWQpIHsKLSAg
ICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgY29tcGlsYXRpb247IGdldCB0aGUgZXJy
b3IKLSAgICBsYXN0RXJyb3IgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7Ci0gICAgZXJy
Rm4oIioqKiBFcnJvciBjb21waWxpbmcgIiArIGdsRW51bVRvU3RyaW5nKGdsLCBzaGFkZXJUeXBl
KSArICIgJyIgKyBzaGFkZXIgKyAiJzoiICsgbGFzdEVycm9yKTsKLSAgICBnbC5kZWxldGVTaGFk
ZXIoc2hhZGVyKTsKLSAgICByZXR1cm4gbnVsbDsKLSAgfQotCi0gIHJldHVybiBzaGFkZXI7Ci19
Ci0KLS8qKgotICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIFVSTC4KLSAqIEBwYXJhbSB7IVdlYkdM
Q29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge2ZpbGV9IGZp
bGUgVGhlIFVSTCBvZiB0aGUgc2hhZGVyIHNvdXJjZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSB0eXBl
IFRoZSB0eXBlIG9mIHNoYWRlci4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkg
b3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0gKiBAcmV0dXJuIHshV2Vi
R0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KLSAqLwotdmFyIGxvYWRTaGFkZXJGcm9tRmls
ZSA9IGZ1bmN0aW9uKGdsLCBmaWxlLCB0eXBlLCBvcHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIg
c2hhZGVyU291cmNlID0gcmVhZEZpbGUoZmlsZSk7Ci0gIHJldHVybiBsb2FkU2hhZGVyKGdsLCBz
aGFkZXJTb3VyY2UsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKTsKLX07Ci0KLS8qKgotICogR2V0
cyB0aGUgY29udGVudCBvZiBzY3JpcHQuCi0gKi8KLXZhciBnZXRTY3JpcHQgPSBmdW5jdGlvbihz
Y3JpcHRJZCkgewotICB2YXIgc2hhZGVyU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
c2NyaXB0SWQpOwotICBpZiAoIXNoYWRlclNjcmlwdCkgewotICAgIHRocm93KCIqKiogRXJyb3I6
IHVua25vd24gc2NyaXB0IGVsZW1lbnQiICsgc2NyaXB0SWQpOwotICB9Ci0gIHJldHVybiBzaGFk
ZXJTY3JpcHQudGV4dDsKLX07Ci0KLS8qKgotICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIHNjcmlw
dCB0YWcuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8g
dXNlLgotICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRh
Zy4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfc2hhZGVyVHlwZSBUaGUgdHlwZSBvZiBzaGFkZXIu
IElmIG5vdCBwYXNzZWQgaW4gaXQgd2lsbAotICogICAgIGJlIGRlcml2ZWQgZnJvbSB0aGUgdHlw
ZSBvZiB0aGUgc2NyaXB0IHRhZy4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkg
b3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0gKiBAcmV0dXJuIHshV2Vi
R0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KLSAqLwotdmFyIGxvYWRTaGFkZXJGcm9tU2Ny
aXB0ID0gZnVuY3Rpb24oCi0gICAgZ2wsIHNjcmlwdElkLCBvcHRfc2hhZGVyVHlwZSwgb3B0X2Vy
cm9yQ2FsbGJhY2spIHsKLSAgdmFyIHNoYWRlclNvdXJjZSA9ICIiOwotICB2YXIgc2hhZGVyVHlw
ZTsKLSAgdmFyIHNoYWRlclNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdElk
KTsKLSAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKLSAgICB0aHJvdygiKioqIEVycm9yOiB1bmtub3du
IHNjcmlwdCBlbGVtZW50ICIgKyBzY3JpcHRJZCk7Ci0gIH0KLSAgc2hhZGVyU291cmNlID0gc2hh
ZGVyU2NyaXB0LnRleHQ7Ci0KLSAgaWYgKCFvcHRfc2hhZGVyVHlwZSkgewotICAgIGlmIChzaGFk
ZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC12ZXJ0ZXgiKSB7Ci0gICAgICBzaGFkZXJUeXBl
ID0gZ2wuVkVSVEVYX1NIQURFUjsKLSAgICB9IGVsc2UgaWYgKHNoYWRlclNjcmlwdC50eXBlID09
ICJ4LXNoYWRlci94LWZyYWdtZW50IikgewotICAgICAgc2hhZGVyVHlwZSA9IGdsLkZSQUdNRU5U
X1NIQURFUjsKLSAgICB9IGVsc2UgaWYgKHNoYWRlclR5cGUgIT0gZ2wuVkVSVEVYX1NIQURFUiAm
JiBzaGFkZXJUeXBlICE9IGdsLkZSQUdNRU5UX1NIQURFUikgewotICAgICAgdGhyb3coIioqKiBF
cnJvcjogdW5rbm93biBzaGFkZXIgdHlwZSIpOwotICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQot
ICB9Ci0KLSAgcmV0dXJuIGxvYWRTaGFkZXIoCi0gICAgICBnbCwgc2hhZGVyU291cmNlLCBvcHRf
c2hhZGVyVHlwZSA/IG9wdF9zaGFkZXJUeXBlIDogc2hhZGVyVHlwZSwKLSAgICAgIG9wdF9lcnJv
ckNhbGxiYWNrKTsKLX07Ci0KLXZhciBsb2FkU3RhbmRhcmRQcm9ncmFtID0gZnVuY3Rpb24oZ2wp
IHsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gIGdsLmF0dGFjaFNoYWRl
cihwcm9ncmFtLCBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpKTsKLSAgZ2wuYXR0YWNoU2hh
ZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGdsKSk7Ci0gIGxpbmtQcm9n
cmFtKGdsLCBwcm9ncmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIExvYWRz
IHNoYWRlcnMgZnJvbSBmaWxlcywgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFk
ZXJzIGFuZCBsaW5rcy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29u
dGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2hhZGVyUGF0aCBUaGUgVVJM
IG9mIHRoZSB2ZXJ0ZXggc2hhZGVyLgotICogQHBhcmFtIHtzdHJpbmd9IGZyYWdtZW50U2hhZGVy
UGF0aCBUaGUgVVJMIG9mIHRoZSBmcmFnbWVudCBzaGFkZXIuCi0gKiBAcGFyYW0ge2Z1bmN0aW9u
KHN0cmluZyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAot
ICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KLSAqLwotdmFy
IGxvYWRQcm9ncmFtRnJvbUZpbGUgPSBmdW5jdGlvbigKLSAgICBnbCwgdmVydGV4U2hhZGVyUGF0
aCwgZnJhZ21lbnRTaGFkZXJQYXRoLCBvcHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIgcHJvZ3Jh
bSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKLSAgdmFyIHZzID0gbG9hZFNoYWRlckZyb21GaWxlKAot
ICAgICAgZ2wsIHZlcnRleFNoYWRlclBhdGgsIGdsLlZFUlRFWF9TSEFERVIsIG9wdF9lcnJvckNh
bGxiYWNrKTsKLSAgdmFyIGZzID0gbG9hZFNoYWRlckZyb21GaWxlKAotICAgICAgZ2wsIGZyYWdt
ZW50U2hhZGVyUGF0aCwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjayk7Ci0g
IGlmICh2cyAmJiBmcykgewotICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2cyk7Ci0gICAg
Z2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZzKTsKLSAgICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3Jh
bSwgb3B0X2Vycm9yQ2FsbGJhY2spOwotICB9Ci0gIGlmICh2cykgewotICAgIGdsLmRlbGV0ZVNo
YWRlcih2cyk7Ci0gIH0KLSAgaWYgKGZzKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAg
fQotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMgc2hhZGVycyBmcm9tIHNj
cmlwdCB0YWdzLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kCi0g
KiBsaW5rcy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0
byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBz
Y3JpcHQgdGFnIHRoYXQgY29udGFpbnMgdGhlCi0gKiAgICAgICAgdmVydGV4IHNoYWRlci4KLSAq
IEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNjcmlwdElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRh
ZyB0aGF0IGNvbnRhaW5zIHRoZQotICogICAgICAgIGZyYWdtZW50IHNoYWRlci4KLSAqIEBwYXJh
bSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9y
IGVycm9ycy4gCi0gKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFt
LgotICovCi12YXIgbG9hZFByb2dyYW1Gcm9tU2NyaXB0ID0gZnVuY3Rpb24gbG9hZFByb2dyYW1G
cm9tU2NyaXB0KAotICAgIGdsLCB2ZXJ0ZXhTY3JpcHRJZCwgZnJhZ21lbnRTY3JpcHRJZCwgb3B0
X2Vycm9yQ2FsbGJhY2spIHsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0g
IGdsLmF0dGFjaFNoYWRlcigKLSAgICAgIHByb2dyYW0sCi0gICAgICBsb2FkU2hhZGVyRnJvbVNj
cmlwdCgKLSAgICAgICAgICBnbCwgdmVydGV4U2NyaXB0SWQsIGdsLlZFUlRFWF9TSEFERVIsIG9w
dF9lcnJvckNhbGxiYWNrKSk7Ci0gIGdsLmF0dGFjaFNoYWRlcigKLSAgICAgIHByb2dyYW0sCi0g
ICAgICBsb2FkU2hhZGVyRnJvbVNjcmlwdCgKLSAgICAgICAgICBnbCwgZnJhZ21lbnRTY3JpcHRJ
ZCwgIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spKTsKLSAgbGlua1Byb2dy
YW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19
OwotCi0vKioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFt
LCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKLSAqIGxpbmtzLgotICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IVdlYkdMU2hh
ZGVyfSB2ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRleCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJHTFNo
YWRlcn0gZnJhZ21lbnRTaGFkZXIgVGhlIGZyYWdtZW50IHNoYWRlci4KLSAqIEBwYXJhbSB7ZnVu
Y3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9y
cy4KLSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCi0gKi8K
LXZhciBjcmVhdGVQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRT
aGFkZXIsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJv
Z3JhbSgpOwotICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKLSAgZ2wu
YXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKLSAgbGlua1Byb2dyYW0oZ2ws
IHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0v
KioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRh
Y2hlcyB0aGUgc2hhZGVycyBhbmQKLSAqIGxpbmtzLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0
fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhT
aGFkZXIgVGhlIHZlcnRleCBzaGFkZXIgc291cmNlLgotICogQHBhcmFtIHtzdHJpbmd9IGZyYWdt
ZW50U2hhZGVyIFRoZSBmcmFnbWVudCBzaGFkZXIgc291cmNlLgotICogQHBhcmFtIHtmdW5jdGlv
bihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLiAK
LSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCi0gKi8KLXZh
ciBsb2FkUHJvZ3JhbSA9IGZ1bmN0aW9uKAotICAgIGdsLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50
U2hhZGVyLCBvcHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIgcHJvZ3JhbTsKLSAgdmFyIHZzID0g
bG9hZFNoYWRlcigKLSAgICAgIGdsLCB2ZXJ0ZXhTaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIsIG9w
dF9lcnJvckNhbGxiYWNrKTsKLSAgdmFyIGZzID0gbG9hZFNoYWRlcigKLSAgICAgIGdsLCBmcmFn
bWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjayk7Ci0gIGlm
ICh2cyAmJiBmcykgewotICAgIHByb2dyYW0gPSBjcmVhdGVQcm9ncmFtKGdsLCB2cywgZnMsIG9w
dF9lcnJvckNhbGxiYWNrKQotICB9Ci0gIGlmICh2cykgewotICAgIGdsLmRlbGV0ZVNoYWRlcih2
cyk7Ci0gIH0KLSAgaWYgKGZzKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgfQotICBy
ZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMgc2hhZGVycyBmcm9tIHNvdXJjZSwg
Y3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFuZAotICogbGlua3MgYnV0
IGV4cGVjdHMgZXJyb3IuCi0gKgotICogR0xTTCAxLjAuMTcgMTAuMjcgZWZmZWN0aXZlbHkgc2F5
cyB0aGF0IGNvbXBpbGVTaGFkZXIgY2FuCi0gKiBhbHdheXMgc3VjY2VlZCBhcyBsb25nIGFzIGxp
bmtQcm9ncmFtIGZhaWxzIHNvIHdlIGNhbid0Ci0gKiByZWx5IG9uIGNvbXBpbGVTaGFkZXIgZmFp
bGluZy4gVGhpcyBmdW5jdGlvbiBleHBlY3RzCi0gKiBvbmUgb2YgdGhlIHNoYWRlciB0byBmYWls
IE9SIGxpbmtpbmcgdG8gZmFpbC4KLSAqCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRo
ZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJpbmd9IHZlcnRleFNoYWRlclNj
cmlwdElkIFRoZSB2ZXJ0ZXggc2hhZGVyLgotICogQHBhcmFtIHtzdHJpbmd9IGZyYWdtZW50U2hh
ZGVyU2NyaXB0SWQgVGhlIGZyYWdtZW50IHNoYWRlci4KLSAqIEByZXR1cm4ge1dlYkdMUHJvZ3Jh
bX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KLSAqLwotdmFyIGxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4
cGVjdEVycm9yID0gZnVuY3Rpb24oCi0gICAgZ2wsIHZlcnRleFNoYWRlclNjcmlwdElkLCBmcmFn
bWVudFNoYWRlclNjcmlwdElkKSB7Ci0gIHZhciB2ZXJ0ZXhTaGFkZXIgPSBsb2FkU2hhZGVyRnJv
bVNjcmlwdChnbCwgdmVydGV4U2hhZGVyU2NyaXB0SWQpOwotICBpZiAoIXZlcnRleFNoYWRlcikg
ewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBmcmFnbWVudFNoYWRlciA9IGxvYWRTaGFk
ZXJGcm9tU2NyaXB0KGdsLCBmcmFnbWVudFNoYWRlclNjcmlwdElkKTsKLSAgaWYgKCFmcmFnbWVu
dFNoYWRlcikgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBsaW5rU3VjY2VzcyA9IHRy
dWU7Ci0gIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICBnbC5hdHRhY2hTaGFk
ZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKLSAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZy
YWdtZW50U2hhZGVyKTsKLSAgbGlua1N1Y2Nlc3MgPSB0cnVlOwotICBsaW5rUHJvZ3JhbShnbCwg
cHJvZ3JhbSwgZnVuY3Rpb24oKSB7Ci0gICAgICBsaW5rU3VjY2VzcyA9IGZhbHNlOwotICAgIH0p
OwotICByZXR1cm4gbGlua1N1Y2Nlc3MgPyBwcm9ncmFtIDogbnVsbDsKLX07Ci0KLQotdmFyIGdl
dEFjdGl2ZU1hcCA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtLCB0eXBlSW5mbykgewotICB2YXIgbnVt
VmFyaWFibGVzID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbFt0eXBlSW5mby5w
YXJhbV0pOwotICB2YXIgdmFyaWFibGVzID0ge307Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBu
dW1WYXJpYWJsZXM7ICsraWkpIHsKLSAgICB2YXIgaW5mbyA9IGdsW3R5cGVJbmZvLmFjdGl2ZUZu
XShwcm9ncmFtLCBpaSk7Ci0gICAgdmFyaWFibGVzW2luZm8ubmFtZV0gPSB7Ci0gICAgICBuYW1l
OiBpbmZvLm5hbWUsCi0gICAgICBzaXplOiBpbmZvLnNpemUsCi0gICAgICB0eXBlOiBpbmZvLnR5
cGUsCi0gICAgICBsb2NhdGlvbjogZ2xbdHlwZUluZm8ubG9jRm5dKHByb2dyYW0sIGluZm8ubmFt
ZSkKLSAgICB9OwotICB9Ci0gIHJldHVybiB2YXJpYWJsZXM7Ci19OwotCi0vKioKLSAqIFJldHVy
bnMgYSBtYXAgb2YgYXR0cmliIG5hbWVzIHRvIGluZm8gYWJvdXQgdGhvc2UKLSAqIGF0dHJpYnMK
LSAqCi0gKiBlZzoKLSAqICAgIHsgImF0dHJpYjFOYW1lIjoKLSAqICAgICAgewotICogICAgICAg
IG5hbWU6ICJhdHRyaWIxTmFtZSIsCi0gKiAgICAgICAgc2l6ZTogMSwKLSAqICAgICAgICB0eXBl
OiBnbC5GTE9BVF9NQVQyLAotICogICAgICAgIGxvY2F0aW9uOiAwCi0gKiAgICAgIH0sCi0gKiAg
ICAgICJhdHRyaWIyTmFtZVswXSI6Ci0gKiAgICAgIHsKLSAqICAgICAgICAgbmFtZTogImF0dHJp
YjJOYW1lWzBdIiwKLSAqICAgICAgICAgc2l6ZTogNCwKLSAqICAgICAgICAgdHlwZTogZ2wuRkxP
QVQsCi0gKiAgICAgICAgIGxvY2F0aW9uOiAxCi0gKiAgICAgIH0sCi0gKiAgICB9Ci0gKgotICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBw
YXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBmb3IgYXR0cmlicy4KLSAq
IEByZXR1cm4gdGhlIG1hcC4KLSAqLwotdmFyIGdldEF0dHJpYk1hcCA9IGZ1bmN0aW9uKGdsLCBw
cm9ncmFtKSB7Ci0gIHJldHVybiBnZXRBY3RpdmVNYXAoZ2wsIHByb2dyYW0sIHsKLSAgICAgIHBh
cmFtOiAiQUNUSVZFX0FUVFJJQlMiLAotICAgICAgYWN0aXZlRm46ICJnZXRBY3RpdmVBdHRyaWIi
LAotICAgICAgbG9jRm46ICJnZXRBdHRyaWJMb2NhdGlvbiIKLSAgfSk7Ci19OwotCi0vKioKLSAq
IFJldHVybnMgYSBtYXAgb2YgdW5pZm9ybSBuYW1lcyB0byBpbmZvIGFib3V0IHRob3NlIHVuaWZv
cm0KLSAqCi0gKiBlZzoKLSAqICAgIHsgInVuaWZvcm0xTmFtZSI6Ci0gKiAgICAgIHsKLSAqICAg
ICAgICBuYW1lOiAidW5pZm9ybTFOYW1lIiwKLSAqICAgICAgICBzaXplOiAxLAotICogICAgICAg
IHR5cGU6IGdsLkZMT0FUX01BVDIsCi0gKiAgICAgICAgbG9jYXRpb246IFdlYkdMVW5pZm9ybUxv
Y2F0aW9uCi0gKiAgICAgIH0sCi0gKiAgICAgICJ1bmlmb3JtMk5hbWVbMF0iOgotICogICAgICB7
Ci0gKiAgICAgICAgIG5hbWU6ICJ1bmlmb3JtMk5hbWVbMF0iLAotICogICAgICAgICBzaXplOiA0
LAotICogICAgICAgICB0eXBlOiBnbC5GTE9BVCwKLSAqICAgICAgICAgbG9jYXRpb246IFdlYkdM
VW5pZm9ybUxvY2F0aW9uCi0gKiAgICAgIH0sCi0gKiAgICB9Ci0gKgotICogQHBhcmFtIHshV2Vi
R0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7V2ViR0xQ
cm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBmb3IgdW5pZm9ybXMuCi0gKiBAcmV0dXJuIHRo
ZSBtYXAuCi0gKi8KLXZhciBnZXRVbmlmb3JtTWFwID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0pIHsK
LSAgcmV0dXJuIGdldEFjdGl2ZU1hcChnbCwgcHJvZ3JhbSwgewotICAgICAgcGFyYW06ICJBQ1RJ
VkVfVU5JRk9STVMiLAotICAgICAgYWN0aXZlRm46ICJnZXRBY3RpdmVVbmlmb3JtIiwKLSAgICAg
IGxvY0ZuOiAiZ2V0VW5pZm9ybUxvY2F0aW9uIgotICB9KTsKLX07Ci0KLXZhciBiYXNlUGF0aDsK
LXZhciBnZXRCYXNlUGF0aCA9IGZ1bmN0aW9uKCkgewotICBpZiAoIWJhc2VQYXRoKSB7Ci0gICAg
dmFyIGV4cGVjdGVkQmFzZSA9ICJ3ZWJnbC10ZXN0LXV0aWxzLmpzIjsKLSAgICB2YXIgc2NyaXB0
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKTsKLSAgICBmb3IgKHZh
ciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKyspIHsKLSAgICAgIHZhciBz
cmMgPSBzY3JpcHQuc3JjOwotICAgICAgdmFyIGwgPSBzcmMubGVuZ3RoOwotICAgICAgaWYgKHNy
Yy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVjdGVkQmFzZSkgewotICAg
ICAgICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOwot
ICAgICAgfQotICAgIH0KLSAgfQotICByZXR1cm4gYmFzZVBhdGg7Ci19OwotCi12YXIgbG9hZFN0
YW5kYXJkVmVydGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgcmV0dXJuIGxvYWRTaGFkZXJG
cm9tRmlsZSgKLSAgICAgIGdsLCBnZXRCYXNlUGF0aCgpICsgInZlcnRleFNoYWRlci52ZXJ0Iiwg
Z2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi12YXIgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIg
PSBmdW5jdGlvbihnbCkgewotICByZXR1cm4gbG9hZFNoYWRlckZyb21GaWxlKAotICAgICAgZ2ws
IGdldEJhc2VQYXRoKCkgKyAiZnJhZ21lbnRTaGFkZXIuZnJhZyIsIGdsLkZSQUdNRU5UX1NIQURF
Uik7Ci19OwotCi0vKioKLSAqIExvYWRzIGFuIGltYWdlIGFzeW5jaHJvbm91c2x5LgotICogQHBh
cmFtIHtzdHJpbmd9IHVybCBVUkwgb2YgaW1hZ2UgdG8gbG9hZC4KLSAqIEBwYXJhbSB7IWZ1bmN0
aW9uKCFFbGVtZW50KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdG8gY2FsbAotICogICAgIHdp
dGggbG9hZGVkIGltYWdlLgotICovCi12YXIgbG9hZEltYWdlQXN5bmMgPSBmdW5jdGlvbih1cmws
IGNhbGxiYWNrKSB7Ci0gIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsK
LSAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgIGNhbGxiYWNrKGltZyk7Ci0gIH07Ci0g
IGltZy5zcmMgPSB1cmw7Ci19OwotCi0vKioKLSAqIExvYWRzIGFuIGFycmF5IG9mIGltYWdlcy4K
LSAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSB1cmxzIFVSTHMgb2YgaW1hZ2VzIHRvIGxvYWQu
Ci0gKiBAcGFyYW0geyFmdW5jdGlvbighe3N0cmluZywgaW1nfSk6IHZvaWR9IGNhbGxiYWNrLiBD
YWxsYmFjawotICogICAgIHRoYXQgZ2V0cyBwYXNzZWQgbWFwIG9mIHVybHMgdG8gaW1nIHRhZ3Mu
Ci0gKi8KLXZhciBsb2FkSW1hZ2VzQXN5bmMgPSBmdW5jdGlvbih1cmxzLCBjYWxsYmFjaykgewot
ICB2YXIgY291bnQgPSAxOwotICB2YXIgaW1hZ2VzID0geyB9OwotICBmdW5jdGlvbiBjb3VudERv
d24oKSB7Ci0gICAgLS1jb3VudDsKLSAgICBpZiAoY291bnQgPT0gMCkgewotICAgICAgY2FsbGJh
Y2soaW1hZ2VzKTsKLSAgICB9Ci0gIH0KLSAgZnVuY3Rpb24gaW1hZ2VMb2FkZWQodXJsKSB7Ci0g
ICAgcmV0dXJuIGZ1bmN0aW9uKGltZykgewotICAgICAgaW1hZ2VzW3VybF0gPSBpbWc7Ci0gICAg
ICBjb3VudERvd24oKTsKLSAgICB9Ci0gIH0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHVybHMu
bGVuZ3RoOyArK2lpKSB7Ci0gICAgKytjb3VudDsKLSAgICBsb2FkSW1hZ2VBc3luYyh1cmxzW2lp
XSwgaW1hZ2VMb2FkZWQodXJsc1tpaV0pKTsKLSAgfQotICBjb3VudERvd24oKTsKLX07Ci0KLXZh
ciBnZXRVcmxBcmd1bWVudHMgPSBmdW5jdGlvbigpIHsKLSAgdmFyIGFyZ3MgPSB7fTsKLSAgdHJ5
IHsKLSAgICB2YXIgcyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwotICAgIHZhciBxID0gcy5pbmRl
eE9mKCI/Iik7Ci0gICAgdmFyIGUgPSBzLmluZGV4T2YoIiMiKTsKLSAgICBpZiAoZSA8IDApIHsK
LSAgICAgIGUgPSBzLmxlbmd0aDsKLSAgICB9Ci0gICAgdmFyIHF1ZXJ5ID0gcy5zdWJzdHJpbmco
cSArIDEsIGUpOwotICAgIHZhciBwYWlycyA9IHF1ZXJ5LnNwbGl0KCImIik7Ci0gICAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgewotICAgICAgdmFyIGtleVZhbHVl
ID0gcGFpcnNbaWldLnNwbGl0KCI9Iik7Ci0gICAgICB2YXIga2V5ID0ga2V5VmFsdWVbMF07Ci0g
ICAgICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOwotICAgICAg
YXJnc1trZXldID0gdmFsdWU7Ci0gICAgfQotICB9IGNhdGNoIChlKSB7Ci0gICAgdGhyb3cgImNv
dWxkIG5vdCBwYXJzZSB1cmwiOwotICB9Ci0gIHJldHVybiBhcmdzOwotfTsKLQotdmFyIG1ha2VJ
bWFnZSA9IGZ1bmN0aW9uKGNhbnZhcykgewotICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW1nJyk7Ci0gIGltZy5zcmMgPSBjYW52YXMudG9EYXRhVVJMKCk7Ci0gIHJldHVybiBp
bWc7Ci19OwotCi12YXIgaW5zZXJ0SW1hZ2UgPSBmdW5jdGlvbihlbGVtZW50LCBjYXB0aW9uLCBp
bWcpIHsKLSAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBkaXYu
YXBwZW5kQ2hpbGQoaW1nKTsKLSAgdmFyIGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNhcHRp
b24pKTsKLSAgZGl2LmFwcGVuZENoaWxkKGxhYmVsKTsKLSAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZGl2KTsKLX07Ci0KLXZhciBhZGRTaGFkZXJTb3VyY2UgPSBmdW5jdGlvbihlbGVtZW50LCBsYWJl
bCwgc291cmNlLCBvcHRfdXJsKSB7Ci0gIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKLSAgcy5j
bGFzc05hbWUgPSAic2hhZGVyLXNvdXJjZSI7Ci0gIHMuc3R5bGUuZGlzcGxheSA9ICJub25lIjsK
LSAgdmFyIG9sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKLSAgLy9zLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNvdXJjZSkpOwotICB2YXIgbGluZXMgPSBzb3Vy
Y2Uuc3BsaXQoIlxuIik7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsr
aWkpIHsKLSAgICB2YXIgbGluZSA9IGxpbmVzW2lpXTsKLSAgICB2YXIgbGkgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKGxpbmUpKTsKLSAgICBvbC5hcHBlbmRDaGlsZChsaSk7Ci0gIH0KLSAgcy5hcHBlbmRD
aGlsZChvbCk7Ci0gIHZhciBsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwotICBsLmhy
ZWYgPSAic2hvdy1zaGFkZXItc291cmNlIjsKLSAgbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShsYWJlbCkpOwotICBsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgewotICAgICAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgfQotICAgICAgcy5zdHlsZS5kaXNwbGF5ID0g
KHMuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpID8gJ2Jsb2NrJyA6ICdub25lJzsKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9LCBmYWxzZSk7Ci0gIGRpdi5hcHBlbmRDaGlsZChsKTsKLSAgaWYg
KG9wdF91cmwpIHsKLSAgICB2YXIgdSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKLSAg
ICB1LmhyZWYgPSBvcHRfdXJsOwotICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiICIpKTsKLSAgICB1LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCIoIiArIG9wdF91cmwgKyAiKSIpKTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQodSk7Ci0gIH0KLSAg
ZGl2LmFwcGVuZENoaWxkKHMpOwotICBlbGVtZW50LmFwcGVuZENoaWxkKGRpdik7Ci19OwotCi0v
LyBBZGQgeW91ciBwcmVmaXggaGVyZS4KLXZhciBicm93c2VyUHJlZml4ZXMgPSBbCi0gICIiLAot
ICAiTU9aXyIsCi0gICJPUF8iLAotICAiV0VCS0lUXyIKLV07Ci0KLS8qKgotICogR2l2ZW4gYW4g
ZXh0ZW5zaW9uIG5hbWUgbGlrZSBXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YwotICogcmV0
dXJucyB0aGUgbmFtZSBvZiB0aGUgc3VwcG9ydGVkIHZlcnNpb24gZXh0ZW5zaW9uLCBsaWtlCi0g
KiBXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXR1cmVfczN0YwotICogQHBhcmFtIHtzdHJpbmd9
IG5hbWUgTmFtZSBvZiBleHRlbnNpb24gdG8gbG9vayBmb3IKLSAqIEByZXR1cm4ge3N0cmluZ30g
bmFtZSBvZiBleHRlbnNpb24gZm91bmQgb3IgdW5kZWZpbmVkIGlmIG5vdAotICogICAgIGZvdW5k
LgotICovCi12YXIgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMgPSBmdW5j
dGlvbihnbCwgbmFtZSkgewotICB2YXIgc3VwcG9ydGVkID0gZ2wuZ2V0U3VwcG9ydGVkRXh0ZW5z
aW9ucygpOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0aDsg
KytpaSkgewotICAgIHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJlZml4ZXNbaWldICsgbmFt
ZTsKLSAgICBpZiAoc3VwcG9ydGVkLmluZGV4T2YocHJlZml4ZWROYW1lKSA+PSAwKSB7Ci0gICAg
ICByZXR1cm4gcHJlZml4ZWROYW1lOwotICAgIH0KLSAgfQotfTsKLQotLyoqCi0gKiBHaXZlbiBh
biBleHRlbnNpb24gbmFtZSBsaWtlIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjCi0gKiBy
ZXR1cm5zIHRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxpa2UKLSAqIFdFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RldHVyZV9zM3RjCi0gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1l
IG9mIGV4dGVuc2lvbiB0byBsb29rIGZvcgotICogQHJldHVybiB7V2ViR0xFeHRlbnNpb259IFRo
ZSBleHRlbnNpb24gb3IgdW5kZWZpbmVkIGlmIG5vdAotICogICAgIGZvdW5kLgotICovCi12YXIg
Z2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMgPSBmdW5jdGlvbihnbCwgbmFtZSkgewotICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0aDsgKytpaSkgewotICAg
IHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJlZml4ZXNbaWldICsgbmFtZTsKLSAgICB2YXIg
ZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKHByZWZpeGVkTmFtZSk7Ci0gICAgaWYgKGV4dCkgewotICAg
ICAgcmV0dXJuIGV4dDsKLSAgICB9Ci0gIH0KLX07Ci0KLQotdmFyIHJlcGxhY2VSRSA9IC9cJFwo
KFx3KylcKS9nOwotCi0vKioKLSAqIFJlcGxhY2VzIHN0cmluZ3Mgd2l0aCBwcm9wZXJ0eSB2YWx1
ZXMuCi0gKiBHaXZlbiBhIHN0cmluZyBsaWtlICJoZWxsbyAkKGZpcnN0KSAkKGxhc3QpIiBhbmQg
YW4gb2JqZWN0Ci0gKiBsaWtlIHtmaXJzdDoiSm9obiIsIGxhc3Q6IlNtaXRoIn0gd2lsbCByZXR1
cm4KLSAqICJoZWxsbyBKb2huIFNtaXRoIi4KLSAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgU3RyaW5n
IHRvIGRvIHJlcGxhY2VtZW50cyBpbgotICogQHBhcmFtIHsuLi59IDEgb3IgbW9yZSBvYmplY3Rz
IGNvbmFpbmluZyBwcm9wZXJ0aWVzLgotICovCi12YXIgcmVwbGFjZVBhcmFtcyA9IGZ1bmN0aW9u
KHN0cikgewotICB2YXIgYXJncyA9IGFyZ3VtZW50czsKLSAgcmV0dXJuIHN0ci5yZXBsYWNlKHJl
cGxhY2VSRSwgZnVuY3Rpb24oc3RyLCBwMSwgb2Zmc2V0LCBzKSB7Ci0gICAgZm9yICh2YXIgaWkg
PSAxOyBpaSA8IGFyZ3MubGVuZ3RoOyArK2lpKSB7Ci0gICAgICBpZiAoYXJnc1tpaV1bcDFdICE9
PSB1bmRlZmluZWQpIHsKLSAgICAgICAgcmV0dXJuIGFyZ3NbaWldW3AxXTsKLSAgICAgIH0KLSAg
ICB9Ci0gICAgdGhyb3cgInVua25vd24gc3RyaW5nIHBhcmFtICciICsgcDEgKyAiJyI7Ci0gIH0p
OwotfTsKLQotCi0vKioKLSAqIFByb3ZpZGVzIHJlcXVlc3RBbmltYXRpb25GcmFtZSBpbiBhIGNy
b3NzIGJyb3dzZXIgd2F5LgotICovCi12YXIgcmVxdWVzdEFuaW1GcmFtZUltcGxfOwotCi12YXIg
cmVxdWVzdEFuaW1GcmFtZSA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBlbGVtZW50KSB7Ci0gIGlmICgh
cmVxdWVzdEFuaW1GcmFtZUltcGxfKSB7Ci0gICAgcmVxdWVzdEFuaW1GcmFtZUltcGxfID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICB2YXIgZnVuY3Rpb25OYW1lcyA9IFsKLSAgICAgICAgInJlcXVlc3RB
bmltYXRpb25GcmFtZSIsCi0gICAgICAgICJ3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAot
ICAgICAgICAibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKLSAgICAgICAgIm9SZXF1ZXN0QW5p
bWF0aW9uRnJhbWUiLAotICAgICAgICAibXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiCi0gICAgICBd
OwotICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGZ1bmN0aW9uTmFtZXMubGVuZ3RoOyArK2pq
KSB7Ci0gICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5hbWVzW2pqXTsKLSAgICAg
ICAgaWYgKHdpbmRvd1tmdW5jdGlvbk5hbWVdKSB7Ci0gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihjYWxsYmFjaywgZWxlbWVudCkg
ewotICAgICAgICAgICAgICByZXR1cm4gd2luZG93W25hbWVdLmNhbGwod2luZG93LCBjYWxsYmFj
aywgZWxlbWVudCk7Ci0gICAgICAgICAgICB9OwotICAgICAgICAgIH0oZnVuY3Rpb25OYW1lKTsK
LSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNhbGxiYWNrLCBlbGVt
ZW50KSB7Ci0gICAgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChjYWxsYmFjaywgMTAw
MCAvIDcwKTsKLSAgICAgICAgfTsKLSAgICB9KCk7Ci0gIH0KLQotICByZXR1cm4gcmVxdWVzdEFu
aW1GcmFtZUltcGxfKGNhbGxiYWNrLCBlbGVtZW50KTsKLX07Ci0KLS8qKgotICogUHJvdmlkZXMg
Y2FuY2VsQW5pbWF0aW9uRnJhbWUgaW4gYSBjcm9zcyBicm93c2VyIHdheS4KLSAqLwotdmFyIGNh
bmNlbEFuaW1GcmFtZSA9IChmdW5jdGlvbigpIHsKLSAgcmV0dXJuIHdpbmRvdy5jYW5jZWxBbmlt
YXRpb25GcmFtZSB8fAotICAgICAgICAgd2luZG93LndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1l
IHx8Ci0gICAgICAgICB3aW5kb3cubW96Q2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKLSAgICAgICAg
IHdpbmRvdy5vQ2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKLSAgICAgICAgIHdpbmRvdy5tc0NhbmNl
bEFuaW1hdGlvbkZyYW1lIHx8Ci0gICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0OwotfSkoKTsK
LQotLyoqCi0gKiBXYWl0cyBmb3IgdGhlIGJyb3dzZXIgdG8gY29tcG9zaXRlIHRoZSBjYW52YXMg
YXNzb2NpYXRlZCB3aXRoCi0gKiB0aGUgV2ViR0wgY29udGV4dCBwYXNzZWQgaW4uCi0gKi8KLXZh
ciB3YWl0Rm9yQ29tcG9zaXRlID0gZnVuY3Rpb24oZ2wsIGNhbGxiYWNrKSB7Ci0gIHZhciBmcmFt
ZXMgPSA1OwotICB2YXIgY291bnREb3duID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKGZyYW1lcyA9
PSAwKSB7Ci0gICAgICBjYWxsYmFjaygpOwotICAgIH0gZWxzZSB7Ci0gICAgICAtLWZyYW1lczsK
LSAgICAgIHJlcXVlc3RBbmltRnJhbWUoY291bnREb3duKTsKLSAgICB9Ci0gIH07Ci0gIGNvdW50
RG93bigpOwotfTsKLQotcmV0dXJuIHsKLSAgYWRkU2hhZGVyU291cmNlOiBhZGRTaGFkZXJTb3Vy
Y2UsCi0gIGNhbmNlbEFuaW1GcmFtZTogY2FuY2VsQW5pbUZyYW1lLAotICBjcmVhdGUzRENvbnRl
eHQ6IGNyZWF0ZTNEQ29udGV4dCwKLSAgY3JlYXRlM0RDb250ZXh0V2l0aFdyYXBwZXJUaGF0VGhy
b3dzT25HTEVycm9yOgotICAgICAgY3JlYXRlM0RDb250ZXh0V2l0aFdyYXBwZXJUaGF0VGhyb3dz
T25HTEVycm9yLAotICBjaGVja0NhbnZhczogY2hlY2tDYW52YXMsCi0gIGNoZWNrQ2FudmFzUmVj
dDogY2hlY2tDYW52YXNSZWN0LAotICBjaGVja0NhbnZhc1JlY3RDb2xvcjogY2hlY2tDYW52YXNS
ZWN0Q29sb3IsCi0gIGNyZWF0ZUNvbG9yZWRUZXh0dXJlOiBjcmVhdGVDb2xvcmVkVGV4dHVyZSwK
LSAgY3JlYXRlUHJvZ3JhbTogY3JlYXRlUHJvZ3JhbSwKLSAgZHJhd1F1YWQ6IGRyYXdRdWFkLAot
ICBkcmF3SW5kZXhlZFF1YWQ6IGRyYXdJbmRleGVkUXVhZCwKLSAgZHJhd1VCeXRlQ29sb3JRdWFk
OiBkcmF3VUJ5dGVDb2xvclF1YWQsCi0gIGRyYXdGbG9hdENvbG9yUXVhZDogZHJhd0Zsb2F0Q29s
b3JRdWFkLAotICBlbmRzV2l0aDogZW5kc1dpdGgsCi0gIGZpbGxUZXh0dXJlOiBmaWxsVGV4dHVy
ZSwKLSAgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXM6IGdldEV4dGVuc2lvbldpdGhLbm93
blByZWZpeGVzLAotICBnZXRGaWxlTGlzdEFzeW5jOiBnZXRGaWxlTGlzdEFzeW5jLAotICBnZXRM
YXN0RXJyb3I6IGdldExhc3RFcnJvciwKLSAgZ2V0U2NyaXB0OiBnZXRTY3JpcHQsCi0gIGdldFN1
cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25X
aXRoS25vd25QcmVmaXhlcywKLSAgZ2V0VXJsQXJndW1lbnRzOiBnZXRVcmxBcmd1bWVudHMsCi0g
IGdldEF0dHJpYk1hcDogZ2V0QXR0cmliTWFwLAotICBnZXRVbmlmb3JtTWFwOiBnZXRVbmlmb3Jt
TWFwLAotICBnbEVudW1Ub1N0cmluZzogZ2xFbnVtVG9TdHJpbmcsCi0gIGdsRXJyb3JTaG91bGRC
ZTogZ2xFcnJvclNob3VsZEJlLAotICBoYXNBdHRyaWJ1dGVDYXNlSW5zZW5zaXRpdmU6IGhhc0F0
dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSwKLSAgaW5zZXJ0SW1hZ2U6IGluc2VydEltYWdlLAotICBs
b2FkSW1hZ2VBc3luYzogbG9hZEltYWdlQXN5bmMsCi0gIGxvYWRJbWFnZXNBc3luYzogbG9hZElt
YWdlc0FzeW5jLAotICBsb2FkUHJvZ3JhbTogbG9hZFByb2dyYW0sCi0gIGxvYWRQcm9ncmFtRnJv
bUZpbGU6IGxvYWRQcm9ncmFtRnJvbUZpbGUsCi0gIGxvYWRQcm9ncmFtRnJvbVNjcmlwdDogbG9h
ZFByb2dyYW1Gcm9tU2NyaXB0LAotICBsb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RFcnJvcjog
bG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3IsCi0gIGxvYWRTaGFkZXI6IGxvYWRTaGFk
ZXIsCi0gIGxvYWRTaGFkZXJGcm9tRmlsZTogbG9hZFNoYWRlckZyb21GaWxlLAotICBsb2FkU2hh
ZGVyRnJvbVNjcmlwdDogbG9hZFNoYWRlckZyb21TY3JpcHQsCi0gIGxvYWRTdGFuZGFyZFByb2dy
YW06IGxvYWRTdGFuZGFyZFByb2dyYW0sCi0gIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcjogbG9h
ZFN0YW5kYXJkVmVydGV4U2hhZGVyLAotICBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlcjogbG9h
ZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIsCi0gIGxvYWRUZXh0RmlsZUFzeW5jOiBsb2FkVGV4dEZp
bGVBc3luYywKLSAgbG9hZFRleHR1cmU6IGxvYWRUZXh0dXJlLAotICBsb2c6IGxvZywKLSAgbG9n
Z2luZ09mZjogbG9nZ2luZ09mZiwKLSAgbWFrZUltYWdlOiBtYWtlSW1hZ2UsCi0gIGVycm9yOiBl
cnJvciwKLSAgc2hhbGxvd0NvcHlPYmplY3Q6IHNoYWxsb3dDb3B5T2JqZWN0LAotICBzZXR1cENv
bG9yUXVhZDogc2V0dXBDb2xvclF1YWQsCi0gIHNldHVwUHJvZ3JhbTogc2V0dXBQcm9ncmFtLAot
ICBzZXR1cFF1YWQ6IHNldHVwUXVhZCwKLSAgc2V0dXBRdWFkV2l0aE9wdGlvbnM6IHNldHVwUXVh
ZFdpdGhPcHRpb25zLAotICBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXI6IHNldHVwU2lt
cGxlQ29sb3JGcmFnbWVudFNoYWRlciwKLSAgc2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlcjog
c2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlciwKLSAgc2V0dXBTaW1wbGVDb2xvclByb2dyYW06
IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtLAotICBzZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNo
YWRlcjogc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIsCi0gIHNldHVwU2ltcGxlVGV4
dHVyZVByb2dyYW06IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0sCi0gIHNldHVwU2ltcGxlVGV4
dHVyZVZlcnRleFNoYWRlcjogc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyLAotICBzZXR1
cFNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXI6IHNldHVwU2ltcGxlVmVydGV4Q29sb3JG
cmFnbWVudFNoYWRlciwKLSAgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclByb2dyYW06IHNldHVwU2lt
cGxlVmVydGV4Q29sb3JQcm9ncmFtLAotICBzZXR1cFNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hh
ZGVyOiBzZXR1cFNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyLAotICBzZXR1cE5vVGV4Q29v
cmRUZXh0dXJlUHJvZ3JhbTogc2V0dXBOb1RleENvb3JkVGV4dHVyZVByb2dyYW0sCi0gIHNldHVw
Tm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXI6IHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0
ZXhTaGFkZXIsCi0gIHNldHVwVGV4dHVyZWRRdWFkOiBzZXR1cFRleHR1cmVkUXVhZCwKLSAgc2V0
dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFRleHR1cmVkUXVhZFdpdGhUZXhDb29y
ZHMsCi0gIHNldHVwVW5pdFF1YWQ6IHNldHVwVW5pdFF1YWQsCi0gIHNldHVwVW5pdFF1YWRXaXRo
VGV4Q29vcmRzOiBzZXR1cFVuaXRRdWFkV2l0aFRleENvb3JkcywKLSAgc2V0RmxvYXREcmF3Q29s
b3I6IHNldEZsb2F0RHJhd0NvbG9yLAotICBzZXRVQnl0ZURyYXdDb2xvcjogc2V0VUJ5dGVEcmF3
Q29sb3IsCi0gIHN0YXJ0c1dpdGg6IHN0YXJ0c1dpdGgsCi0gIHNob3VsZEdlbmVyYXRlR0xFcnJv
cjogc2hvdWxkR2VuZXJhdGVHTEVycm9yLAotICByZWFkRmlsZTogcmVhZEZpbGUsCi0gIHJlYWRG
aWxlTGlzdDogcmVhZEZpbGVMaXN0LAotICByZXBsYWNlUGFyYW1zOiByZXBsYWNlUGFyYW1zLAot
ICByZXF1ZXN0QW5pbUZyYW1lOiByZXF1ZXN0QW5pbUZyYW1lLAotICB3YWl0Rm9yQ29tcG9zaXRl
OiB3YWl0Rm9yQ29tcG9zaXRlLAotCi0gIG5vbmU6IGZhbHNlCi19OwotCi19KCkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUxNjI0NGUzOTVmMjc3ZWNiMGY3NTI3NTdjMzgwYzExMjgyNjI5NWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0v
KgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
Ci0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
Ci0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLWZ1bmN0aW9uIHdlYmdsVGVzdExvZyhtc2cpIHsKLSAg
aWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykgewotICAgIHdpbmRvdy5j
b25zb2xlLmxvZyhtc2cpOwotICB9Ci0gIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpKSB7Ci0gICAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iik7Ci0gICAgbG9nLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Ci0gIH0KLX0KLQotZnVuY3Rp
b24gZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZXJyKSB7Ci0gIGlmIChlcnIgPT09IGN0eC5OT19F
UlJPUikgewotICAgIHJldHVybiAiTk9fRVJST1IiOwotICB9Ci0gIGZvciAodmFyIG5hbWUgaW4g
Y3R4KSB7Ci0gICAgaWYgKGN0eFtuYW1lXSA9PT0gZXJyKSB7Ci0gICAgICByZXR1cm4gbmFtZTsK
LSAgICB9Ci0gIH0KLSAgcmV0dXJuICIweCIgKyBlcnIudG9TdHJpbmcoMTYpOwotfQotCi0vLyBQ
YXNzIHVuZGVmaW5lZCBmb3IgZ2xFcnJvciB0byB0ZXN0IHRoYXQgaXQgYXQgbGVhc3QgdGhyb3dz
IHNvbWUgZXJyb3IKLWZ1bmN0aW9uIHNob3VsZEdlbmVyYXRlR0xFcnJvcihjdHgsIGdsRXJyb3Jz
LCBldmFsU3RyKSB7Ci0gIGlmICghZ2xFcnJvcnMubGVuZ3RoKSB7Ci0gICAgZ2xFcnJvcnMgPSBb
Z2xFcnJvcnNdOwotICB9Ci0gIHZhciBleGNlcHRpb247Ci0gIHRyeSB7Ci0gICAgZXZhbChldmFs
U3RyKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0KLSAgaWYgKGV4
Y2VwdGlvbikgewotICAgIHRlc3RGYWlsZWQoZXZhbFN0ciArICIgdGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOwotICB9IGVsc2UgewotICAgIHZhciBlcnIgPSBjdHguZ2V0RXJyb3IoKTsK
LSAgICB2YXIgZXJyU3RycyA9IFtdOwotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBnbEVycm9y
cy5sZW5ndGg7ICsraWkpIHsKLSAgICAgIGVyclN0cnMucHVzaChnZXRHTEVycm9yQXNTdHJpbmco
Y3R4LCBnbEVycm9yc1tpaV0pKTsKLSAgICB9Ci0gICAgdmFyIGV4cGVjdGVkID0gZXJyU3Rycy5q
b2luKCIgb3IgIik7Ci0gICAgaWYgKGdsRXJyb3JzLmluZGV4T2YoZXJyKSA8IDApIHsKLSAgICAg
IHRlc3RGYWlsZWQoZXZhbFN0ciArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCArICIuIFdhcyAi
ICsgZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZXJyKSArICIuIik7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIHZhciBtc2cgPSAoZ2xFcnJvcnMubGVuZ3RoID09IDEpID8gIiBnZW5lcmF0ZWQgZXhwZWN0
ZWQgR0wgZXJyb3I6ICIgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiIGdlbmVyYXRlZCBvbmUgb2YgZXhwZWN0ZWQgR0wgZXJyb3JzOiAiOwotICAgICAgdGVzdFBh
c3NlZChldmFsU3RyICsgbXNnICsgZXhwZWN0ZWQgKyAiLiIpOwotICAgIH0KLSAgfQotfQotCi0v
KioKLSAqIFRlc3RzIHRoYXQgdGhlIGZpcnN0IGVycm9yIEdMIHJldHVybnMgaXMgdGhlIHNwZWNp
ZmllZCBlcnJvci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4
dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcnwhQXJyYXkuPG51bWJlcj59IGdsRXJyb3IgVGhl
IGV4cGVjdGVkIGdsCi0gKiAgICAgICAgZXJyb3IuIE11bHRpcGxlIGVycm9ycyBjYW4gYmUgcGFz
c2VkIGluIHVzaW5nIGFuCi0gKiAgICAgICAgYXJyYXkuCi0gKiBAcGFyYW0ge3N0cmluZ30gb3B0
X21zZyBPcHRpb25hbCBhZGRpdGlvbmFsIG1lc3NhZ2UuCi0gKi8KLWZ1bmN0aW9uIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKLSAgaWYgKCFnbEVycm9ycy5sZW5ndGgp
IHsKLSAgICBnbEVycm9ycyA9IFtnbEVycm9yc107Ci0gIH0KLSAgb3B0X21zZyA9IG9wdF9tc2cg
fHwgIiI7Ci0gIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICB2YXIgbmR4ID0gZ2xFcnJvcnMu
aW5kZXhPZihlcnIpOwotICB2YXIgZXJyU3RycyA9IFtdOwotICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgZ2xFcnJvcnMubGVuZ3RoOyArK2lpKSB7Ci0gICAgZXJyU3Rycy5wdXNoKGdldEdMRXJyb3JB
c1N0cmluZyhnbCwgZ2xFcnJvcnNbaWldKSk7Ci0gIH0KLSAgdmFyIGV4cGVjdGVkID0gZXJyU3Ry
cy5qb2luKCIgb3IgIik7Ci0gIGlmIChuZHggPCAwKSB7Ci0gICAgdmFyIG1zZyA9ICJnZXRFcnJv
ciBleHBlY3RlZCIgKyAoKGdsRXJyb3JzLmxlbmd0aCA+IDEpID8gIiBvbmUgb2Y6ICIgOiAiOiAi
KTsKLSAgICB0ZXN0RmFpbGVkKG1zZyArIGV4cGVjdGVkICsgICIuIFdhcyAiICsgZ2V0R0xFcnJv
ckFzU3RyaW5nKGdsLCBlcnIpICsgIiA6ICIgKyBvcHRfbXNnKTsKLSAgfSBlbHNlIHsKLSAgICB2
YXIgbXNnID0gImdldEVycm9yIHdhcyAiICsgKChnbEVycm9ycy5sZW5ndGggPiAxKSA/ICJvbmUg
b2Y6ICIgOiAiZXhwZWN0ZWQgdmFsdWU6ICIpOwotICAgIHRlc3RQYXNzZWQobXNnICsgZXhwZWN0
ZWQgKyAiIDogIiArIG9wdF9tc2cpOwotICB9Ci19OwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy96ZXJvLWFscGhhLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU1
NjMwYzExNjAzOGY5MGVmNzJjZGQwMmI2NjRmOGYwZGFhMDZlMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCA4OQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXiVwbENjMXwtOFl3KGJX
fjNaNT5HQXIqNX1QajJMOEZ5TFN8eFAxRUkKbXI7LXlIbH13MnJeMG9efTljNz5Feik+JClhQjNH
JkVyWH00cFVYT0BnZUN4bSZsc3V6CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy8wMF90ZXN0X2xpc3QudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy8wMF90ZXN0
X2xpc3QudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjlhMjY4MDhmYWYxYzQ2
NWViNGIzZTQ1NDIzOTJjMWJiYTNmNjliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvMDBfdGVzdF9saXN0LnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLWNvbXByZXNzZWQtdGV4LWltYWdlLmh0
bWwKLWNvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQuaHRtbAotLS1taW4tdmVyc2lvbiAx
LjAuMiBjb3B5LXRleC1pbWFnZS0yZC1mb3JtYXRzLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIg
Z2wtZ2V0LXRleC1wYXJhbWV0ZXIuaHRtbAotZ2wtcGl4ZWxzdG9yZWkuaHRtbAotZ2wtdGV4aW1h
Z2UuaHRtbAotb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKLXRleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbAotdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1jYW52YXMuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1jYW52YXMtcmdiNTY1Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2Fu
dmFzLXJnYmE0NDQ0Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFz
LXJnYmE1NTUxLmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0
YS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1
Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0
NC5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1
NTEuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5odG1sCi10ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2NS5odG1sCi10ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0NDQ0Lmh0bWwKLXRleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTU1NTEuaHRtbAotdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LXZpZGVvLXJnYjU2NS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVv
LXJnYmE0NDQ0Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdi
YTU1NTEuaHRtbAotdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5odG1sCi0tLW1p
bi12ZXJzaW9uIDEuMC4yIHRleC1pbWFnZS13ZWJnbC5odG1sCi10ZXgtaW1hZ2Utd2l0aC1mb3Jt
YXQtYW5kLXR5cGUuaHRtbAotdGV4LWltYWdlLXdpdGgtaW52YWxpZC1kYXRhLmh0bWwKLXRleC1p
bnB1dC12YWxpZGF0aW9uLmh0bWwKLXRleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbAotdGV4
LXN1Yi1pbWFnZS0yZC5odG1sCi10ZXhwYXJhbWV0ZXItdGVzdC5odG1sCi10ZXh0dXJlLWFjdGl2
ZS1iaW5kLTIuaHRtbAotdGV4dHVyZS1hY3RpdmUtYmluZC5odG1sCi0tLW1pbi12ZXJzaW9uIDEu
MC4yIHRleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIg
dGV4dHVyZS1jbGVhci5odG1sCi10ZXh0dXJlLWNvbXBsZXRlLmh0bWwKLS0tbWluLXZlcnNpb24g
MS4wLjIgdGV4dHVyZS1oZC1kcGkuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLWZv
cm1hdHMtdGVzdC5odG1sCi10ZXh0dXJlLW1pcHMuaHRtbAotdGV4dHVyZS1ucG90LXZpZGVvLmh0
bWwKLXRleHR1cmUtbnBvdC5odG1sCi10ZXh0dXJlLXNpemUuaHRtbAotdGV4dHVyZS1zaXplLWN1
YmUtbWFwcy5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtc2l6ZS1saW1pdC5odG1s
Ci0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCi10
ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sCi0tLW1pbi12ZXJzaW9u
IDEuMC4yIHRleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4y
IG1pcG1hcC1mYm8uaHRtbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2Nv
bXByZXNzZWQtdGV4LWltYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBl
N2I5MmM4NDViODJjMmY4NDg1ODlkMWRlMTE1NGE5NTVjNzNlZDQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9j
b21wcmVzc2VkLXRleC1pbWFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAot
PCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
LSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29t
cHJlc3NlZFRleEltYWdlIGFuZCBDb21wcmVzc2VkVGV4U3ViSW1hZ2UgVGVzdHM8L3RpdGxlPgot
PExJTksgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgY29ycmVjdGx5IGltcGxl
bWVudCBjb21wcmVzc2VkVGV4SW1hZ2UyRCBhbmQgY29tcHJlc3NlZFRleFN1YkltYWdlMkQuIik7
Ci0KLWRlYnVnKCIiKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dCgpOwotCi12YXIgQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCAg
ICAgICAgPSAweDgzRjA7Ci12YXIgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQgICAgICAg
PSAweDgzRjE7Ci12YXIgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQgICAgICAgPSAweDgz
RjM7Ci12YXIgRVRDMV9SR0I4X09FUyAgICAgICAgICAgICAgICAgICAgICAgPSAweDhENjQ7Ci12
YXIgQ09NUFJFU1NFRF9SR0JfUFZSVENfNEJQUFYxX0lNRyAgICAgPSAweDhDMDA7Ci12YXIgQ09N
UFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUcgICAgPSAweDhDMDI7Ci0KLXZhciBmb3JtYXRz
ID0gbnVsbDsKLQotaWYgKCFnbCkgewotICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4
aXN0Iik7Ci19IGVsc2UgewotICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOwotCi0gIHZh
ciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleCk7Ci0KLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0s
ICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JH
Ql9TM1RDX0RYVDFfRVhULCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKLSAgc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVCwgNCwg
NCwgMCwgbmV3IFVpbnQ4QXJyYXkoOCkpIik7Ci0gIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
Z2wuSU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQsIDQsIDQsIDAsIG5ldyBVaW50OEFycmF5
KDE2KSkiKTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJn
bC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBFVEMxX1JHQjhfT0VTLCA0
LCA0LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5JTlZBTElEX0VOVU0sICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HLCA4LCA4LCAwLCBuZXcgVWludDhB
cnJheSg4KSkiKTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0s
ICJnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JH
QkFfUFZSVENfNEJQUFYxX0lNRywgOCwgOCwgMCwgbmV3IFVpbnQ4QXJyYXkoOCkpIik7Ci0KLSAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImZvcm1hdHMgPSBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMpIik7Ci0gIHNob3VsZEJlTm9u
TnVsbCgiZm9ybWF0cyIpOwotICBzaG91bGRCZSgiZm9ybWF0cy5sZW5ndGgiLCAiMCIpOwotfQot
Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFn
ZS0yZC1mb3JtYXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWlt
YWdlLTJkLWZvcm1hdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEyY2Qz
ZjZhMzEwMjhhOTRkMjc3Njk0NmI2MTViN2IwYjE5ZWFmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHkt
dGV4LWltYWdlLTJkLWZvcm1hdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBA
Ci08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5WZXJpZnkgY29weVRleEltYWdlMkQgZm9sbG93cyBm
b3JtYXQgcmVzdGljdGlvbnM8L3RpdGxlPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxjYW52YXMgaWQ9
ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjYW52
YXNOb0FscGhhIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gZ2V0Q2hhbm5l
bHNGcm9tRm9ybWF0KGZvcm1hdCkgewotICBzd2l0Y2ggKGdsW2Zvcm1hdF0pIHsKLSAgY2FzZSBn
bC5BTFBIQToKLSAgICByZXR1cm4gMHgwMDAxOwotICBjYXNlIGdsLkxVTUlOQU5DRToKLSAgY2Fz
ZSBnbC5SR0I6Ci0gICAgcmV0dXJuIDB4MTExMDsKLSAgY2FzZSBnbC5MVU1JTkFOQ0VfQUxQSEE6
Ci0gIGNhc2UgZ2wuUkdCQToKLSAgICByZXR1cm4gMHgxMTExOwotICBkZWZhdWx0OgotICAgIHJl
dHVybiAwOwotICB9Ci19Ci0KLXZhciBmb3JtYXRzID0gWwotICAnQUxQSEEnLAotICAnTFVNSU5B
TkNFJywKLSAgJ0xVTUlOQU5DRV9BTFBIQScsCi0gICdSR0InLAotICAnUkdCQScKLV07Ci0KLXZh
ciBnbCA9IG51bGw7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0KLWRlc2NyaXB0aW9uKCk7
Ci0KLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Ci12YXIg
Y2FudmFzTm9BbHBoYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXNOb0FscGhhIik7
Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywge2FscGhhOnRydWV9KTsKLXZh
ciBnbE5vQWxwaGEgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhc05vQWxwaGEsIHthbHBoYTpm
YWxzZX0pOwotCi1kZWJ1ZygidGVzdCB3aXRoIGFuIFJHQkEgYmFja2J1ZmZlciIpOwotdmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgIkR1cmluZyBJbml0aWFsaXphdGlvbiIpOwotdGVzdEZvcm1hdHMoJ1JHQkEn
KTsKLQotdGVzdEJhY2tidWZmZXJGb3JtYXRzKCk7Ci0KLWRlYnVnKCJ0ZXN0IHdpdGggYW4gUkdC
IGJhY2tidWZmZXIiKTsKLXZhciBnbCA9IGdsTm9BbHBoYTsKLXZhciBwcm9ncmFtID0gd3R1LnNl
dHVwVGV4dHVyZWRRdWFkKGdsKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJE
dXJpbmcgSW5pdGlhbGl6YXRpb24iKTsKLXRlc3RGb3JtYXRzKCdSR0InKTsKLQotZnVuY3Rpb24g
dGVzdEJhY2tidWZmZXJGb3JtYXRzKCkgewotICB2YXIgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKTsKLSAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotCi0gIGZv
ciAodmFyIGlpID0gMDsgaWkgPCBmb3JtYXRzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBiYWNr
Rm9ybWF0ID0gZm9ybWF0c1tpaV07Ci0KLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtiYWNrRm9ybWF0XSwgMiwgMiwgMCwgZ2xbYmFja0Zv
cm1hdF0sIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7Ci0KLSAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7Ci0gICAgdmFyIHN0YXR1
cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwotCi0gICAgZGVi
dWcoJycpOwotICAgIGlmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAg
ICAgIGRlYnVnKCd0ZXN0IHdpdGggJyArIGJhY2tGb3JtYXQgKyAnIGZibycpOwotICAgICAgdGVz
dEZvcm1hdHMoYmFja0Zvcm1hdCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRlYnVnKGJhY2tGb3Jt
YXQgKyAnIG5vdCBzdXBwb3J0ZWQgYXMgYSByZW5kZXJidWZmZXIgYXR0YWNobWVudCcpOwotICAg
IH0KLSAgfQotfQotCi1mdW5jdGlvbiB0ZXN0Rm9ybWF0cyhiYWNrRm9ybWF0KSB7Ci0gIGZvciAo
dmFyIGlpID0gMDsgaWkgPCBmb3JtYXRzLmxlbmd0aDsgKytpaSkgewotICAgIHRlc3RDb3B5VGV4
SW1hZ2UyRChiYWNrRm9ybWF0LCBmb3JtYXRzW2lpXSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gdG9D
aGFubmVscyh2YWx1ZSkgewotICByZXR1cm4gKCh2YWx1ZSAmIDB4MTAwMCkgPyAnUicgOiAnXycp
ICsKLSAgICAgICAgICgodmFsdWUgJiAweDAxMDApID8gJ0cnIDogJ18nKSArCi0gICAgICAgICAo
KHZhbHVlICYgMHgwMDEwKSA/ICdCJyA6ICdfJykgKwotICAgICAgICAgKCh2YWx1ZSAmIDB4MDAw
MSkgPyAnQScgOiAnXycpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29weVRleEltYWdlMkQoYmFja0Zv
cm1hdCwgdGV4Rm9ybWF0KSB7Ci0gIHZhciBuZWVkID0gZ2V0Q2hhbm5lbHNGcm9tRm9ybWF0KHRl
eEZvcm1hdCk7Ci0gIHZhciBoYXZlID0gZ2V0Q2hhbm5lbHNGcm9tRm9ybWF0KGJhY2tGb3JtYXQp
OwotICB2YXIgc2hvdWxkUGFzcyA9IChuZWVkICYgaGF2ZSkgPT0gbmVlZAotCi0gIC8vZGVidWco
Im5lZWQ6ICIgKyB0b0NoYW5uZWxzKG5lZWQpKTsKLSAgLy9kZWJ1ZygiaGF2ZTogIiArIHRvQ2hh
bm5lbHMoaGF2ZSkpOwotICAvL2RlYnVnKCJib3RoOiAiICsgdG9DaGFubmVscyhoYXZlICYgbmVl
ZCkpOwotCi0gIC8vIGNsZWFyIGJhY2tidWZmZXIKLSAgZ2wuY2xlYXJDb2xvcigwLjI1LCAxLCAw
Ljc1LCAwLjUpOwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLQotICB2YXIgdGV4
dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0
dXJlIHVuaXQgMAotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGds
Lk5FQVJFU1QpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0KLSAgZ2wuY29weVRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgZ2xbdGV4Rm9ybWF0XSwgMCwgMCwgMiwgMiwgMCk7Ci0gIGlmICghc2hvdWxkUGFz
cykgewotICAgIGdsRXJyb3JTaG91bGRCZSgKLSAgICAgICAgZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLAotICAgICAgICAic2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNvcHlUZXhJbWFnZTJEICIgKyB0
ZXhGb3JtYXQgKyAiIGZyb20gIiArIGJhY2tGb3JtYXQpOwotICAgIHJldHVybjsKLSAgfQotCi0g
IGdsRXJyb3JTaG91bGRCZSgKLSAgICAgIGdsLCBnbC5OT19FUlJPUiwKLSAgICAgICJzaG91bGQg
YmUgYWJsZSB0byBjb3B5VGV4SW1hZ2UyRCAiICsgdGV4Rm9ybWF0ICsgIiBmcm9tICIgKyBiYWNr
Rm9ybWF0KTsKLQotICAvLyBEcmF3Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0K
LSAgdmFyIGV4cGVjdGVkQ29sb3JzID0gewotICAgICdBTFBIQSc6IFswLCAwLCAwLCAxMjddLAot
ICAgICdMVU1JTkFOQ0UnOiBbNjQsIDY0LCA2NCwgMjU1XSwKLSAgICAnTFVNSU5BTkNFX0FMUEhB
JzogWzY0LCA2NCwgNjQsIDEyN10sCi0gICAgJ1JHQic6IFs2NCwgMjU1LCAxOTEsIDI1NV0sCi0g
ICAgJ1JHQkEnOiBbNjQsIDI1NSwgMTkxLCAxMjddCi0gIH07Ci0KLSAgdmFyIGNvbG9yID0gZXhw
ZWN0ZWRDb2xvcnNbdGV4Rm9ybWF0XTsKLQotICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvbG9yLCAi
c2hvdWxkIGJlICIgKyBjb2xvciwgMTYpOwotCi0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci19Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVlYjhmOTM0ZDJjYmQxNzMz
NDE5N2VkZTY0OTBmYjI3ZGM4ZjQ4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi08IS0t
Ci0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotCi1mdW5jdGlvbiBp
bml0KCkKLXsKLSAgICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICBk
ZXNjcmlwdGlvbignVmVyaWZ5IGNvcHlUZXhJbWFnZTJEIGFuZCBjb3B5VGV4U3ViSW1hZ2UyRCcp
OwotCi0gICAgcnVuVGVzdCgpOwotfQotCi12YXIgZ2wgPSBudWxsOwotdmFyIHd0dSA9IFdlYkdM
VGVzdFV0aWxzOwotCi1mdW5jdGlvbiBydW5UZXN0SXRlcmF0aW9uKGFudGlhbGlhcykKLXsKLSAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoCi0gICAgICAgIGFudGlhbGlh
cyA/ICJhbnRpYWxpYXNPbiIgOiAiYW50aWFsaWFzT2ZmIik7Ci0gICAgdmFyIGF0dHJpYnMgPSBh
bnRpYWxpYXMgPyB7IGFudGlhbGlhczogdHJ1ZSB9IDogeyBhbnRpYWxpYXM6IGZhbHNlIH07Ci0g
ICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgYXR0cmlicyk7Ci0gICAgdmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotICAgIHZhciB0ZXh0dXJlTG9jID0g
Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiRHVyaW5nIEluaXRpYWxpemF0aW9uIik7Ci0KLSAgICBnbC5j
b2xvck1hc2soMSwgMSwgMSwgMSk7Ci0gICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0gICAgZGVi
dWcoJ1Rlc3RpbmcgY29weVRleEltYWdlMkQnKTsKLQotICAgIC8vIFJlZCBjYW52YXMKLSAgICBn
bC5jbGVhckNvbG9yKDEsIDAsIDAsIDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9C
SVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRl
VGV4dHVyZSgpOwotICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICAvLyBTZXQgdXAg
dGV4dHVyZQotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwg
MiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwot
ICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVS
LCBnbC5ORUFSRVNUKTsKLSAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0KLSAgICB2
YXIgY29sb3JzID0gWwotICAgICAgWzEsIDAsIDAsIDFdLAotICAgICAgWzAsIDEsIDAsIDFdLAot
ICAgICAgWzAsIDAsIDEsIDFdLAotICAgICAgWzAuNSwgMC41LCAwLjUsIDAuNV0sCi0gICAgXTsK
LSAgICB2YXIgY291bnQgPSAwOwotICAgIGZvciAodmFyIHl5ID0gLTI7IHl5IDw9IDI7ICsreXkp
IHsKLSAgICAgIGZvciAodmFyIHh4ID0gLTI7IHh4IDw9IDI7ICsreHgpIHsKLSAgICAgICAgIGZv
ciAodmFyIGlpID0gMDsgaWkgPCAyOyArK2lpKSB7Ci0gICAgICAgICAgdmFyIHRleENvbG9yID0g
Y29sb3JzW2NvdW50XTsKLSAgICAgICAgICB2YXIgY2xlYXJDb2xvciA9IGNvbG9yc1soY291bnQg
KyAxKSAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgICAgIC8vIGNsZWFyIHRvIHNvbWUgY29sb3IK
LSAgICAgICAgICBnbC5jbGVhckNvbG9yKHRleENvbG9yWzBdLCB0ZXhDb2xvclsxXSwgdGV4Q29s
b3JbMl0sIHRleENvbG9yWzNdKTsKLSAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0KLSAgICAgICAgICAvLyBjb3B5IHRoYXQgY29s
b3IgdG8gdGhlIHRleHR1cmUuCi0gICAgICAgICAgc3dpdGNoIChpaSkgewotICAgICAgICAgIGNh
c2UgMDoKLSAgICAgICAgICAgIGdsLmNvcHlUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIHh4LCB5eSwgMiwgMiwgMCk7Ci0gICAgICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLAotICAgICAgICAgICAgICAgICJ1c2luZyBjb3B5VGV4SW1hZ2UyRDogeCA9
IiArIHh4ICsgIiwgeSA9ICIgKyB5eSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBj
YXNlIDE6Ci0gICAgICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAwLCAwLCB4eCwgeXksIDIsIDIpOwotICAgICAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwKLSAgICAgICAgICAgICAgICAidXNpbmcgY29weVRleFN1YkltYWdlMkQ6IHgg
PSIgKyB4eCArICIsIHkgPSAiICsgeXkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
fQotCi0gICAgICAgICAgLy8gY2xlYXIgdG8gc29tZSBvdGhlciBjb2xvci4KLSAgICAgICAgICBn
bC5jbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3JbMV0sIGNsZWFyQ29sb3JbMl0s
IGNsZWFyQ29sb3JbM10pOwotICAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQg
fCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICAgICAgICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xl
cwotICAgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0KLSAgICAgICAgICAv
LyBjaGVjayB0aGUgcmVuZGVyaW5nIHJlc3VsdHMKLSAgICAgICAgICBmb3IgKHZhciBpeSA9IDA7
IGl5IDwgMjsgKytpeSkgewotICAgICAgICAgICAgZm9yICh2YXIgaXggPSAwOyBpeCA8IDI7ICsr
aXgpIHsKLSAgICAgICAgICAgICAgdmFyIHggPSB4eCArIGl4OwotICAgICAgICAgICAgICB2YXIg
eSA9IHl5ICsgaXk7Ci0gICAgICAgICAgICAgIHZhciBleHBlY3RlZENvbG9yID0gKHggPCAwIHx8
IHkgPCAwIHx8IHggPj0gMiB8fCB5ID49IDIpID8KLSAgICAgICAgICAgICAgICAgIFswLDAsMCww
XSA6Ci0gICAgICAgICAgICAgICAgICBbTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xvclswXSksCi0g
ICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xvclsxXSksCi0gICAgICAg
ICAgICAgICAgICAgTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xvclsyXSksCi0gICAgICAgICAgICAg
ICAgICAgTWF0aC5mbG9vcigyNTUgKiB0ZXhDb2xvclszXSldOwotICAgICAgICAgICAgICB3dHUu
Y2hlY2tDYW52YXNSZWN0KGdsLCBpeCwgaXksIDEsIDEsIGV4cGVjdGVkQ29sb3IsCi0gICAgICAg
ICAgICAgICAgICAiIiArIGl4ICsgIiwgIiArIGl5ICsgIiBzaG91bGQgcmVuZGVyICIgKyBleHBl
Y3RlZENvbG9yICsgIiAoKy8tMSkiLCAxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0g
ICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGNvbG9ycy5sZW5ndGg7Ci0gICAgICAgIH0K
LSAgICAgIH0KLSAgICB9Ci0KLSAgICBkZWJ1ZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3Qo
YW50aWFsaWFzKQotewotICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggYW50aWFsaWFzIG9uIik7Ci0g
ICAgcnVuVGVzdEl0ZXJhdGlvbih0cnVlKTsKLSAgICBkZWJ1ZygiVGVzdGluZyB3aXRoIGFudGlh
bGlhcyBvZmYiKTsKLSAgICBydW5UZXN0SXRlcmF0aW9uKGZhbHNlKTsKLQotICAgIGZpbmlzaFRl
c3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotPGNh
bnZhcyBpZD0iYW50aWFsaWFzT24iIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGNh
bnZhcyBpZD0iYW50aWFsaWFzT2ZmIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1n
ZXQtdGV4LXBhcmFtZXRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQt
dGV4LXBhcmFtZXRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWNkZjVk
NTRmZDc0MjliZjZkZmI5N2ZkYmE0NTFlODcyMTFiMmExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtZ2V0
LXRleC1wYXJhbWV0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi08IS0t
Ci0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBnZXRUZXhQ
YXJhbWV0ZXIgdGVzdDwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlk
PSJleGFtcGxlIiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdo
dDogMzBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24o
KTsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoImV4YW1wbGUiKTsKLQotLy8gTk9URTogV2UgZXhwbGljaXRseSBkbyB0aGlzIGluIGEgZnVu
a3kgb3JkZXIKLS8vIHRvIGhvcGVmdWxseSBmaW5kIHN1YnRsZSBidWdzLgotCi12YXIgdGFyZ2V0
cyA9IFsKLSAgJ1RFWFRVUkVfMkQnLAotICAnVEVYVFVSRV8yRCcsCi0gICdURVhUVVJFX0NVQkVf
TUFQJywKLSAgJ1RFWFRVUkVfQ1VCRV9NQVAnCi1dOwotLy8gQ3JlYXRlIHRleHR1cmVzIG9uIGRp
ZmZlcmVudCBhY3RpdmUgdGV4dHVyZXMuCi1mb3IgKHZhciBpaSA9IDA7IGlpIDwgdGFyZ2V0cy5s
ZW5ndGg7ICsraWkpIHsKLSAgdmFyIHRhcmdldCA9IHRhcmdldHNbaWldOwotICB2YXIgdGV4ID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsgaWkp
OwotICBnbC5iaW5kVGV4dHVyZShnbFt0YXJnZXRdLCB0ZXgpOwotfQotCi1nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIpOwotCi12YXIgc3RhdGVz
ID0gWwotICB7IHN0YXRlOidURVhUVVJFX1dSQVBfUycsICAgICBkZWZhdWx0OiAnUkVQRUFUJywg
ICAgICAgICAgICAgICAgdmFsdWUxOiAnQ0xBTVBfVE9fRURHRScsICAgICAgICB2YWx1ZTI6ICdS
RVBFQVQnICAgICAgICB9LAotICB7IHN0YXRlOidURVhUVVJFX1dSQVBfVCcsICAgICBkZWZhdWx0
OiAnUkVQRUFUJywgICAgICAgICAgICAgICAgdmFsdWUxOiAnQ0xBTVBfVE9fRURHRScsICAgICAg
ICB2YWx1ZTI6ICdSRVBFQVQnICAgICAgICB9LAotICB7IHN0YXRlOidURVhUVVJFX01BR19GSUxU
RVInLCBkZWZhdWx0OiAnTElORUFSJywgICAgICAgICAgICAgICAgdmFsdWUxOiAnTkVBUkVTVCcs
ICAgICAgICAgICAgICB2YWx1ZTI6ICdMSU5FQVInICAgICAgICB9LAotICB7IHN0YXRlOidURVhU
VVJFX01JTl9GSUxURVInLCBkZWZhdWx0OiAnTkVBUkVTVF9NSVBNQVBfTElORUFSJywgdmFsdWUx
OiAnTElORUFSX01JUE1BUF9MSU5FQVInLCB2YWx1ZTI6ICdORUFSRVNUJyAgICAgICB9Ci1dOwot
Ci1mdW5jdGlvbiBhcHBseVN0YXRlcyhmbikgewotICBmb3IgKHZhciBzcyA9IDA7IHNzIDwgc3Rh
dGVzLmxlbmd0aDsgKytzcykgewotICAgIHZhciBzdGF0ZUluZm8gPSBzdGF0ZXNbc3NdOwotICAg
IGZvciAodmFyIGlpID0gMDsgaWkgPCB0YXJnZXRzLmxlbmd0aDsgKytpaSkgewotCSAgdmFyIHRh
cmdldCA9IHRhcmdldHNbaWldOwotICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCAr
IGlpKTsKLSAgICAgIGZuKHRhcmdldCwgc3RhdGVJbmZvKTsKLSAgICB9Ci0gIH0KLX0KLQotLy8g
dGVzdCB0aGUgZGVmYXVsdCBzdGF0ZS4KLWFwcGx5U3RhdGVzKGZ1bmN0aW9uKHRhcmdldCwgc3Rh
dGVJbmZvKSB7Ci0gIHZhciBhID0gJ2dsLmdldFRleFBhcmFtZXRlcihnbFsiJyArIHRhcmdldCAr
ICciXSwgZ2xbIicgKyBzdGF0ZUluZm8uc3RhdGUgKyAnIl0pJzsKLSAgdmFyIGIgPSAnZ2xbIicg
KyBzdGF0ZUluZm8uZGVmYXVsdCArICciXSc7Ci0gIHNob3VsZEJlKGEsIGIpOwotfSk7Ci0KLS8v
IHRlc3QgbmV3IHN0YXRlCi1hcHBseVN0YXRlcyhmdW5jdGlvbih0YXJnZXQsIHN0YXRlSW5mbykg
ewotICBnbC50ZXhQYXJhbWV0ZXJpKGdsW3RhcmdldF0sIGdsW3N0YXRlSW5mby5zdGF0ZV0sIGds
W3N0YXRlSW5mby52YWx1ZTFdKTsKLX0pOwotCi1hcHBseVN0YXRlcyhmdW5jdGlvbih0YXJnZXQs
IHN0YXRlSW5mbykgewotICB2YXIgYSA9ICdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2xbIicgKyB0YXJn
ZXQgKyAnIl0sIGdsWyInICsgc3RhdGVJbmZvLnN0YXRlICsgJyJdKSc7Ci0gIHZhciBiID0gJ2ds
WyInICsgc3RhdGVJbmZvLnZhbHVlMSArICciXSc7Ci0gIHNob3VsZEJlKGEsIGIpOwotfSk7Ci0K
LS8vIHRlc3QgZGlmZmVyZW50IHN0YXRlcyBvbiBlYWNoIHRhcmdldC4KLWZ1bmN0aW9uIGdldFN0
YXRlVmFsdWUoY291bnQsIHN0YXRlSW5mbykgewotICByZXR1cm4gKGNvdW50ICUgMikgPyBzdGF0
ZUluZm8udmFsdWUyIDogc3RhdGVJbmZvLnZhbHVlMTsKLX0KLQotYXBwbHlTdGF0ZXMoZnVuY3Rp
b24oKSB7Ci0gIHZhciBjb3VudCA9IDA7Ci0gIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHN0YXRl
SW5mbykgewotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2xbdGFyZ2V0XSwgZ2xbc3RhdGVJbmZvLnN0
YXRlXSwgZ2xbZ2V0U3RhdGVWYWx1ZShjb3VudCwgc3RhdGVJbmZvKV0pOwotICAgICsrY291bnQ7
Ci0gIH0KLX0oKSk7Ci0KLWFwcGx5U3RhdGVzKGZ1bmN0aW9uKCkgewotICB2YXIgY291bnQgPSAw
OwotICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUluZm8pIHsKLSAgICB2YXIgYSA9ICdn
bC5nZXRUZXhQYXJhbWV0ZXIoZ2xbIicgKyB0YXJnZXQgKyAnIl0sIGdsWyInICsgc3RhdGVJbmZv
LnN0YXRlICsgJyJdKSc7Ci0gICAgdmFyIGIgPSAnZ2xbIicgKyBnZXRTdGF0ZVZhbHVlKGNvdW50
LCBzdGF0ZUluZm8pICsgJyJdJzsKLSAgICBzaG91bGRCZShhLCBiKTsKLSAgICArK2NvdW50Owot
ICB9OwotfSgpKTsKLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBi
ZSBubyBlcnJvcnMiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvZ2wtcGl4ZWxzdG9yZWkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
Z2wtcGl4ZWxzdG9yZWkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMwYzQ1
MTRmNjkxZTAyNWM1MTJhYjU4Y2VmZTA5N2RiNDM3MTkyNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXBp
eGVsc3RvcmVpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotPCEtLQotCi0v
KgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
Ci0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
Ci0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgcGl4ZWxTdG9yZWkg
VGVzdDwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kZXNrdG9w
LWdsLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48
L2NhbnZhcz4KLTxjYW52YXMgaWQ9IjJkMDAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52
YXM+Ci08Y2FudmFzIGlkPSIyZDAxIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgot
PGNhbnZhcyBpZD0iMmQwMiIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48L2NhbnZhcz4KLTxjYW52
YXMgaWQ9IjJkMDMiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+Ci08ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9
InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3Np
dGlvbjsKLXZvaWQgbWFpbigpIHsKLSAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci19Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+
Ci12b2lkIG1haW4oKSB7Ci0gIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLDAuMCwwLjAsMS4wKTsK
LX0KLTwvc2NyaXB0PgotCi08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gaW5pdCgp
IHsKLSAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBkcmF3SW1hZ2UgYW5kIHJl
YWRQaXhlbHMgYXJlIG5vdCBlZmZlY3RlZCBieSBnbC5QaXhlbHN0b3JlaShnbC5QQUNLX0FMSUdO
TUVOVCkgYW5kIHZpc2EgdmVyc2EiKTsKLQotICBkZWJ1ZygiVGhlcmUgc2hvdWxkIGJlIDUgcmVk
IHRyaWFuZ2xlcyBvbiA1IGJsYWNrIHNxdWFyZXMgYWJvdmUiKTsKLSAgZGVidWcoIiIpOwotCi0g
IHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgdmFyIGNhbnZhczNkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgi
ZXhhbXBsZSIpOwotICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRl
ciIsICJmc2hhZGVyIl0sIFsidlBvc2l0aW9uIl0pOwotCi0gIHZhciB2ZXJ0ZXhPYmplY3QgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRl
eE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFy
cmF5KFsgMCwwLjUsMCwgLTAuNSwtMC41LDAsIDAuNSwtMC41LDAgXSksIGdsLlNUQVRJQ19EUkFX
KTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Ci0gIGdsLnZlcnRleEF0dHJpYlBv
aW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICBnbC5jbGVhcihnbC5DT0xP
Ul9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gIGdsLmRyYXdBcnJheXMoZ2wu
VFJJQU5HTEVTLCAwLCAzKTsKLQotICBmdW5jdGlvbiBjaGVja0RhdGEoY3R4LCBuYW1lKSB7Ci0g
ICAgLy8gVGVzdCBzZXZlcmFsIGxvY2F0aW9ucwotICAgIC8vIEZpcnN0IGxpbmUgc2hvdWxkIGJl
IGFsbCBibGFjawotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoY3R4LCAwLCAwLCA1MCwgMSwgWzAs
IDAsIDAsIDBdKTsKLQotICAgIC8vIExpbmUgMjUgc2hvdWxkIGJlIHJlZCBmb3IgYXQgbGVhc3Qg
NiByZWQgcGl4ZWxzIHN0YXJ0aW5nIDIyIHBpeGVscyBpbgotICAgIHd0dS5jaGVja0NhbnZhc1Jl
Y3QoY3R4LCAyMiwgMjUsIDYsIDEsIFsyNTUsIDAsIDAsIDI1NV0pOwotCi0gICAgLy8gTGFzdCBs
aW5lIHNob3VsZCBiZSBhbGwgYmxhY2sKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGN0eCwgMCwg
NDksIDUwLCAxLCBbMCwgMCwgMCwgMF0pOwotICB9Ci0KLSAgdmFyIGN0eDJkOwotCi0gIGZ1bmN0
aW9uIGNoZWNrQ29sb3JzKCkgewotICAgIGNoZWNrRGF0YShnbCwgIjNkIGNvbnRleHQiKTsKLSAg
ICBjaGVja0RhdGEoY3R4MmQsICIyZCBjb250ZXh0Iik7Ci0gIH0KLQotICB2YXIgdGFibGUgPSBb
MSwgMiwgNCwgOF07Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB0YWJsZS5sZW5ndGg7ICsraWkp
IHsKLSAgICBnbC5waXhlbFN0b3JlaShnbC5QQUNLX0FMSUdOTUVOVCwgdGFibGVbaWldKTsKLSAg
ICBjdHgyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCIyZDAiICsgaWkpLmdldENvbnRleHQo
IjJkIik7Ci0gICAgY3R4MmQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2NvcHknOwotICAg
IGN0eDJkLmRyYXdJbWFnZShjYW52YXMzZCwgMCwgMCk7Ci0gICAgY2hlY2tDb2xvcnMoKTsKLSAg
ICBhc3NlcnRNc2coZ2wuZ2V0UGFyYW1ldGVyKGdsLlBBQ0tfQUxJR05NRU5UKSA9PSB0YWJsZVtp
aV0sCi0gICAgICAgICJQQUNLX0FMSUdOTUVOVCBpcyAiICsgdGFibGVbaWldKTsKLSAgfQotfQot
Ci1pbml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2ds
LXRleGltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXRleGltYWdlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOTYwMzI0ZjQzMzU5ZTA3ODg2YWI5
ZTBlOTM5YzYxMTYwZWE0MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDQ2ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRleEltYWdlMkQgY29uZm9ybWFuY2UgdGVzdC48L3Rp
dGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4g
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
PiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9
IjI1NiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAyNTZweDsgaGVpZ2h0OiA0OHB4OyI+PC9j
YW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigiVGVzdCB0ZXhJbWFn
ZTJEIGNvbnZlcnNpb25zLiIpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotZ2wuZGlzYWJsZShnbC5ESVRIRVIpOwot
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotdmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZDsKLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotdmFyIGltZ1VSTHMgPSBbCi0gICcuLi9yZXNvdXJj
ZXMvZ3JheS1yYW1wLTI1Ni13aXRoLTEyOC1hbHBoYS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dy
YXktcmFtcC0yNTYucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZGVmYXVsdC1nYW1t
YS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTAuMS5wbmcnLAotICAnLi4v
cmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXkt
cmFtcC1nYW1tYTIuMC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTQuMC5w
bmcnLAotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5wbmcnLAotICAnLi4vcmVz
b3VyY2VzL2dyYXktcmFtcC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3plcm8tYWxwaGEucG5nJywK
LSAgJy4uL3Jlc291cmNlcy8zeDMucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ibHVlLTF4MS5qcGcn
LAotICAnLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvZ3Jl
ZW4tMngyLTE2Yml0LnBuZycsCi0gICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29s
b3JzcGluLXByb2ZpbGUuanBnJywKLSAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1j
b2xvcnNwaW4tcHJvZmlsZS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRo
LWNpZS1yZ2ItcHJvZmlsZS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRo
LWNvbG9ybWF0Y2gtcHJvZmlsZS5wbmcnLAotICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13
aXRoLWUtc3JnYi1wcm9maWxlLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdp
dGgtc21wdGUtYy1wcm9maWxlLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdp
dGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmlsZS5wbmcnXTsKLQotCi13dHUubG9hZEltYWdlc0Fz
eW5jKGltZ1VSTHMsIHJ1blRlc3RzKTsKLQotZnVuY3Rpb24gcnVuVGVzdHMoaW1ncykgewotICB2
YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgZ2wudW5p
Zm9ybTFpKGxvYywgMCk7Ci0KLSAgZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0gIGdsLmRpc2FibGUo
Z2wuREVQVEhfVEVTVCk7Ci0KLSAgdmFyIHdpZHRoID0gZ2wuY2FudmFzLndpZHRoOwotICB2YXIg
aGVpZ2h0ID0gZ2wuY2FudmFzLmhlaWdodDsKLQotICBmdW5jdGlvbiBjaGVja1BpeGVsKGJ1Ziwg
eCwgeSwgY29sb3IpIHsKLSAgICB2YXIgb2ZmID0gKHkgKiB3aWR0aCArIHgpICogNDsKLSAgICB2
YXIgbXNnID0gInBpeGVsICIgKyB4ICsgIiwgIiArIHkgKyAiIHNob3VsZCBiZSAiICsKLSAgICAg
ICAgICAgICAgY29sb3JbMF0gKyAiLCAiICsKLSAgICAgICAgICAgICAgY29sb3JbMV0gKyAiLCAi
ICsKLSAgICAgICAgICAgICAgY29sb3JbMl0gKyAiLCAiICsKLSAgICAgICAgICAgICAgY29sb3Jb
M10gKyAiIHdhcyAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDBdICsgIiwgIiArCi0gICAg
ICAgICAgICAgIGJ1ZltvZmYgKyAxXSArICIsICIgKwotICAgICAgICAgICAgICBidWZbb2ZmICsg
Ml0gKyAiLCAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDNdOwotCi0gICAgZm9yICh2YXIg
aWkgPSAwOyBpaSA8IDQ7ICsraWkpIHsKLSAgICAgIGlmIChidWZbb2ZmICsgaWldICE9IGNvbG9y
W2lpXSkgewotICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICAg
IH0KLSAgICB9Ci0gICAgdGVzdFBhc3NlZChtc2cpOwotICB9Ci0KLSAgZnVuY3Rpb24gY2hlY2tQ
aXhlbFJhbmdlKGJ1ZiwgeCwgeSwgY29sb3IsIGFsbG93ZWRSYW5nZSkgewotICAgIHZhciBvZmYg
PSAoeSAqIHdpZHRoICsgeCkgKiA0OwotICAgIHZhciBtc2cgPSAicGl4ZWwgIiArIHggKyAiLCAi
ICsgeSArICIgc2hvdWxkIGJlIHdpdGhpbiAiICsKLSAgICAgICAgICAgICAgYWxsb3dlZFJhbmdl
ICsgIiB1bml0cyBvZiAiICsKLSAgICAgICAgICAgICAgY29sb3JbMF0gKyAiLCAiICsKLSAgICAg
ICAgICAgICAgY29sb3JbMV0gKyAiLCAiICsKLSAgICAgICAgICAgICAgY29sb3JbMl0gKyAiLCAi
ICsKLSAgICAgICAgICAgICAgY29sb3JbM107Ci0gICAgdmFyIHN1Yk1zZyA9ICIgd2FzICIgKwot
ICAgICAgICAgICAgICBidWZbb2ZmICsgMF0gKyAiLCAiICsKLSAgICAgICAgICAgICAgYnVmW29m
ZiArIDFdICsgIiwgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAyXSArICIsICIgKwotICAg
ICAgICAgICAgICBidWZbb2ZmICsgM107Ci0gICAgLy8gV2hlbiBydW5uaW5nIGluIFdlYktpdCdz
IHRlc3QgaGFybmVzcywgd2UgZG9uJ3Qgd2FudCB0byBwcmludCB0aGUKLSAgICAvLyBwaXhlbCB2
YWx1ZSB3aGVuIHRoZSB0ZXN0IHBhc3NlcywgYmVjYXVzZSBkaWZmZXJlbnQgbWFjaGluZXMgbWln
aHQKLSAgICAvLyBoYXZlIGRpZmZlcmVudCByZXN1bHRzIGFuZCB3ZSByZWNvcmQgdGhlIHRleHQg
b3V0cHV0LgotICAgIHZhciBpbkR1bXBSZW5kZXJUcmVlID0gd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyOwotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCA0OyArK2lpKSB7Ci0gICAgICBpZiAo
TWF0aC5hYnMoYnVmW29mZiArIGlpXSAtIGNvbG9yW2lpXSkgPiBhbGxvd2VkUmFuZ2UpIHsKLSAg
ICAgICAgdGVzdEZhaWxlZChtc2cgKyBzdWJNc2cpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9
Ci0gICAgfQotICAgIHRlc3RQYXNzZWQobXNnICsgKGluRHVtcFJlbmRlclRyZWUgPyAiIiA6IHN1
Yk1zZykpOwotICB9Ci0KLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VE
R0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLQotICB2YXIgYnVmID0gbmV3IFVpbnQ4
QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVj
ayBwaXhlbHMgYXJlIE5PVCBwcmUtbXVsdGlwbGllZCIpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAg
ICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZyddKTsKLSAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIp
OwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAs
IHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0KLSAgdmFy
IGxlZnQgPSAwOwotICB2YXIgbWlkZGxlID0gTWF0aC5mbG9vcih3aWR0aCAvIDIpOwotICB2YXIg
cmlnaHQgPSB3aWR0aCAtIDE7Ci0gIHZhciBib3R0b20gPSAwOwotICB2YXIgY2VudGVyID0gTWF0
aC5mbG9vcihoZWlnaHQgLyAyKTsKLSAgdmFyIHRvcCA9IGhlaWdodCAtIDE7Ci0gIGNoZWNrUGl4
ZWwoYnVmLCBsZWZ0LCAgIHRvcCwgICAgWyAgMCwgICAwLCAgIDAsIDI1NV0pOwotICBjaGVja1Bp
eGVsKGJ1ZiwgbWlkZGxlLCB0b3AsICAgIFsyNTUsICAgMCwgMjU1LCAyNTVdKTsKLSAgY2hlY2tQ
aXhlbChidWYsIHJpZ2h0LCAgdG9wLCAgICBbICAwLCAgIDAsIDI1NSwgMjU1XSk7Ci0gIGNoZWNr
UGl4ZWwoYnVmLCBsZWZ0LCAgIGNlbnRlciwgWzEyOCwgMTI4LCAxMjgsIDI1NV0pOwotICBjaGVj
a1BpeGVsKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsyNTUsIDI1NSwgMjU1LCAyNTVdKTsKLSAgY2hl
Y2tQaXhlbChidWYsIHJpZ2h0LCAgY2VudGVyLCBbICAwLCAyNTUsIDI1NSwgMjU1XSk7Ci0gIGNo
ZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIGJvdHRvbSwgWzI1NSwgICAwLCAgIDAsIDI1NV0pOwotICBj
aGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCBib3R0b20sIFsyNTUsIDI1NSwgICAwLCAyNTVdKTsKLSAg
Y2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgYm90dG9tLCBbICAwLCAyNTUsICAgMCwgMjU1XSk7Ci0K
LSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcXVhbnRpemF0aW9uIik7Ci0gIHZhciBxdWFu
dEluZm8gPSBbCi0gICAge2Zvcm1hdDogZ2wuUkdCQSwgdHlwZTogZ2wuVU5TSUdORURfQllURSwg
ICAgICAgICAgY291bnRzOiBbMjU2LCAyNTYsIDI1NiwgMjU2XX0sCi0gICAge2Zvcm1hdDogZ2wu
UkdCQSwgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgY291bnRzOiBbIDE2LCAgMTYs
ICAxNiwgIDE2XX0sCi0gICAge2Zvcm1hdDogZ2wuUkdCLCAgdHlwZTogZ2wuVU5TSUdORURfU0hP
UlRfNV82XzUsICAgY291bnRzOiBbIDMyLCAgNjQsICAzMiwgICAxXX0sCi0gICAge2Zvcm1hdDog
Z2wuUkdCQSwgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMSwgY291bnRzOiBbIDMyLCAg
MzIsICAzMiwgICAyXX1dOwotICBmb3IgKHZhciBxcSA9IDA7IHFxIDwgcXVhbnRJbmZvLmxlbmd0
aDsgKytxcSkgewotICAgIHZhciBpbmZvID0gcXVhbnRJbmZvW3FxXTsKLSAgICBnbC50ZXhJbWFn
ZTJEKAotICAgICAgICBnbC5URVhUVVJFXzJELCAwLCBpbmZvLmZvcm1hdCwgaW5mby5mb3JtYXQs
IGluZm8udHlwZSwKLSAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYucG5n
J10pOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8g
ZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsK
LSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGJ1Zik7Ci0gICAgdmFyIGNvdW50cyA9IFt7IH0sIHsgfSwgeyB9LCB7IH1dOwot
ICAgIHZhciBudW1VbmlxdWVWYWx1ZXMgPSBbMCwgMCwgMCwgMF07Ci0gICAgLy8gQ291bnQgdGhl
IG51bWJlciBvZiB1bmlxdWUgdmFsdWVzIGluIGVhY2ggY2hhbm5lbC4KLSAgICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgd2lkdGggKiBoZWlnaHQgKiA0OyBpaSArPSA0KSB7Ci0gICAgICBmb3IgKHZh
ciBqaiA9IDA7IGpqIDwgNDsgKytqaikgewotICAgICAgICB2YXIgdiA9IGJ1ZltpaSArIGpqXTsK
LSAgICAgICAgaWYgKCFjb3VudHNbampdW3ZdKSB7Ci0gICAgICAgICAgY291bnRzW2pqXVt2XSA9
IDE7Ci0gICAgICAgICAgKytudW1VbmlxdWVWYWx1ZXNbampdOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICsrY291bnRzW2pqXVt2XTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAg
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgNDsgKytpaSkgewotICAgICAgYXNzZXJ0TXNnKG51bVVu
aXF1ZVZhbHVlc1tpaV0gPT0gaW5mby5jb3VudHNbaWldLAotICAgICAgICAgICAgICAgICJUaGVy
ZSBzaG91bGQgYmUgIiArIGluZm8uY291bnRzW2lpXSArCi0gICAgICAgICAgICAgICAgIiB1bmlx
dWUgdmFsdWVzIGluIGNoYW5uZWwgIiArIGlpICsgIi4gRm91bmQgIiArCi0gICAgICAgICAgICAg
ICAgbnVtVW5pcXVlVmFsdWVzW2lpXSk7Ci0gICAgfQotICB9Ci0KLSAgZGVidWcoIiIpOwotICBk
ZWJ1ZygiQ2hlY2sgdGhhdCBnYW1tYSBzZXR0aW5ncyBkb24ndCBlZmZlY3QgOGJpdCBwbmdzIik7
Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0ws
IGdsLk5PTkUpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wu
UkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNl
cy9ncmF5LXJhbXAtZGVmYXVsdC1nYW1tYS5wbmcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0gIHd0dS5j
bGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIHZhciByZWYgPSBuZXcgVWludDhBcnJheSh3aWR0
aCAqIGhlaWdodCAqIDQpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHJlZik7Ci0KLSAgdmFyIGdhbW1hSW1hZ2VzID0gWwot
ICAgICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMC4xLnBuZycsCi0gICAgJy4uL3Jlc291
cmNlcy9ncmF5LXJhbXAtZ2FtbWExLjAucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL2dyYXktcmFt
cC1nYW1tYTIuMC5wbmcnLAotICAgICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hNC4wLnBu
ZycsCi0gICAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE5LjAucG5nJ107Ci0gIGZvciAo
dmFyIGlpID0gMDsgaWkgPCBnYW1tYUltYWdlcy5sZW5ndGg7ICsraWkpIHsKLSAgICBnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRF
LAotICAgICAgICAgICAgICAgICAgaW1nc1tnYW1tYUltYWdlc1tpaV1dKTsKLSAgICB3dHUuY2xl
YXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhl
aWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgICB2YXIgc2FtZSA9IHRy
dWU7Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IHdpZHRoICogaGVpZ2h0ICogNDsgKytqaikg
ewotICAgICAgaWYgKGJ1Zltqal0gIT0gcmVmW2pqXSkgewotICAgICAgICBzYW1lID0gZmFsc2U7
Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0KLSAgICBhc3NlcnRNc2coc2FtZSwgInBp
eGVscyBzaG91bGQgYmUgc2FtZSByZWdhcmRsZXNzIG9mIGdhbW1hIHNldHRpbmdzLiIpOwotICB9
Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcGl4ZWxzIGFyZSBVTiBwcmUtbXVsdGlw
bGllZCIpOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsgKytpaSkgewotICAgIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMSwgMSwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgbnVsbCk7Ci0gICAgaWYgKGlpID09IDApIHsKLSAgICAgIHZhciBjYW52YXMy
ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAgICAgY2FudmFzMmQud2lk
dGggPSAyNTY7Ci0gICAgICBjYW52YXMyZC5oZWlnaHQgPSAxOwotICAgICAgdmFyIGN0eCA9IGNh
bnZhczJkLmdldENvbnRleHQoIjJkIik7Ci0gICAgICBjdHguZHJhd0ltYWdlKGltZ3NbJy4uL3Jl
c291cmNlcy9ncmF5LXJhbXAtMjU2LXdpdGgtMTI4LWFscGhhLnBuZyddLCAwLCAwKTsKLSAgICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lH
TkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgICB9IGVsc2UgewotICAgICAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwKLSAgICAg
ICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgt
YWxwaGEucG5nJ10pOwotICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotICAgIHd0dS5jbGVhckFuZERy
YXdVbml0UXVhZChnbCk7Ci0gICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVp
Z2h0ICogNCk7Ci0gICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIHZhciBsdDEyOENvdW50ID0gWzAsIDAsIDBd
OwotICAgIHZhciBnZTEyOENvdW50ID0gWzAsIDAsIDBdOwotICAgIGZvciAodmFyIGpqID0gMDsg
amogPCB3aWR0aDsgKytqaikgewotICAgICAgdmFyIG9mZiA9IGpqICogNDsKLSAgICAgIGZvciAo
dmFyIGNjID0gMDsgY2MgPCAzOyArK2NjKSB7Ci0gICAgICAgIGlmIChidWZbb2ZmICsgY2NdIDwg
MTI4KSB7Ci0gICAgICAgICAgKytsdDEyOENvdW50W2NjXTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICArK2dlMTI4Q291bnRbY2NdOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAg
IC8vIE5vdCBzdXJlIHRoZSBleGFjdCBjb3VudCBoZXJlIGJlY2F1c2UgZ2FtbWEgZG9lcyBlZmZl
Y3QgZHJhd2luZyBpbnRvIHRoZQotICAgIC8vIGNhbnZhcyBidXQgaXQgc2hvdWxkIGJlIGNsb3Nl
IHRvIDUwJSBzbyBJJ2xsIHBhc3MgNDUlCi0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDM7ICsr
amopIHsKLSAgICAgIGFzc2VydE1zZyhnZTEyOENvdW50W2pqXSA+IDI1NiAqIDAuNDUsCi0gICAg
ICAgICAgICAgICAgIkhhbGYgdGhlIHBpeGVscyBpbiBjaGFubmVsICIgKyBqaiArCi0gICAgICAg
ICAgICAgICAgIiBzaG91bGQgYmUgPj0gMTI4LDEyOCwxMjguIGZvdW5kICIgKwotICAgICAgICAg
ICAgICAgICgoZ2UxMjhDb3VudFtqal0gLyAyNTYpICogMTAwKS50b0ZpeGVkKCkgKyAiJSIpOwot
ICAgICAgYXNzZXJ0TXNnKGx0MTI4Q291bnRbampdID4gMjU2ICogMC40NSwKLSAgICAgICAgICAg
ICAgICAiSGFsZiB0aGUgcGl4ZWxzIGluIGNoYW5uZWwgIiArIGpqICsKLSAgICAgICAgICAgICAg
ICAiIHNob3VsZCBiZSA8IDEyOCwxMjgsMTI4LiBmb3VuZCAiICsKLSAgICAgICAgICAgICAgICAo
KGx0MTI4Q291bnRbampdIC8gMjU2KSAqIDEwMCkudG9GaXhlZCgpICsgIiUiKTsKLSAgICB9Ci0g
IH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayBjYW52YXMgcGl4ZWxzIGFyZSBVTiBw
cmUtbXVsdGlwbGllZCIpOwotICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJjYW52YXMiKTsKLSAgY2FudmFzMmQud2lkdGggPSAxOwotICBjYW52YXMyZC5oZWlnaHQgPSAx
OwotICB2YXIgY3R4ID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4LmZpbGxTdHls
ZSA9InJnYmEoMjU1LDI1NSwyNTUsMC41KSI7Ci0gIGN0eC5maWxsUmVjdCgwLCAwLCAyNTYsIDEp
OwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGds
KTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBidWYpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hv
dWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotICBjaGVja1BpeGVsUmFuZ2UoYnVmLCAw
LCAwLCBbMjU1LCAyNTUsIDI1NSwgMTI3XSwgNCk7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1Zygi
Y2hlY2sgY2FudmFzIHBpeGVscyBhcmUgcHJlLW11bHRpcGxpZWQiKTsKLSAgZ2wucGl4ZWxTdG9y
ZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0cnVlKTsKLSAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBjYW52YXMyZCk7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQ
aXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVm
KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMgZnJvbSBzZXR1cC4iKTsKLSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgMCwgMCwgWzEyNywgMTI3
LCAxMjcsIDEyN10sIDQpOwotCi0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcGl4ZWxz
IGFyZSBwcmUtbXVsdGlwbGllZCIpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wsIHRydWUpOwotICAvLyBUT0RPKGdtYW4pOiB1c2UgZGlmZmVyZW50
IHRleHR1cmUgdGhhdCB3b24ndCBwYXNzIG9uIGZhaWx1cmUKLSAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAg
ICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZyddKTsKLSAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1
cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAs
IDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0KLSAg
dmFyIHNhbWUgPSB0cnVlOwotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgd2lkdGggKiBoZWlnaHQg
KiA0OyArK2pqKSB7Ci0gICAgaWYgKGJ1Zltqal0gIT0gMCkgewotICAgICAgc2FtZSA9IGZhbHNl
OwotICAgICAgYnJlYWs7Ci0gICAgfQotICB9Ci0gIGFzc2VydE1zZyhzYW1lLCAicGl4ZWxzIHNo
b3VsZCBhbGwgYmUgMC4iKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayBwaXhlbHMg
YXJlIGZsaXBwZWQiKTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMLCBmYWxzZSk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VC
R0wsIHRydWUpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wu
UkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNl
cy8zeDMucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxk
IGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChn
bCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgYnVmKTsKLQotICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICB0b3AsICAgIFsy
NTUsICAgMCwgICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgdG9wLCAgICBb
MjU1LCAyNTUsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIHRvcCwgICAg
WzI1NSwgICAwLCAgIDAsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICBjZW50ZXIs
IFsyNTUsICAgMCwgMjU1LCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgY2VudGVy
LCBbMjU1LCAgIDAsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIGNlbnRl
ciwgWyAgMCwgMjU1LCAgIDAsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICBib3R0
b20sIFsgIDAsICAgMCwgICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgYm90
dG9tLCBbICAwLCAgIDAsIDI1NSwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIGJv
dHRvbSwgWzI1NSwgICAwLCAgIDAsIDI1NV0pOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoImNo
ZWNrIHVwbG9hZGluZyBvZiBpbWFnZXMgd2l0aCBubyBhbHBoYSBjaGFubmVsIHdvcmtzIik7Ci0g
IGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFsc2Up
OwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmYWxzZSk7Ci0gIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVE
X0JZVEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2JsdWUtMXgxLmpwZydd
KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1Zik7Ci0gIGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2VudGVyLCBbICAgMCwgICAw
LCAyNTUsIDI1NV0sIDEwKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNo
b3VsZCBiZSBubyBlcnJvcnMiKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB1cGxv
YWRpbmcgb2YgMTYtYml0IGltYWdlcyIpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJF
TVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNL
X0ZMSVBfWV9XRUJHTCwgZmFsc2UpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3Nb
Jy4uL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0
dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgs
IGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgY2hlY2tQaXhlbFJh
bmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgICAxNSwgMTIxLCAgIDAsIDI1NV0sIDEwKTsKLSAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMiKTsK
LQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB1cGxvYWRpbmcgb2YgaW1hZ2VzIHdpdGgg
SUNDIHByb2ZpbGVzIik7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9B
TFBIQV9XRUJHTCwgZmFsc2UpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dF
QkdMLCBmYWxzZSk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19DT0xPUlNQQUNFX0NPTlZF
UlNJT05fV0VCR0wsIGdsLk5PTkUpOwotCi0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgaW1n
c1snLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLmpwZydd
KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1Zik7Ci0gIC8vIFRoZSBpbWFnZSBpcyByZWQuICBIb3dldmVyLCBpZiB3ZSBpZ25vcmUgdGhl
IGNvbG9yIHByb2ZpbGUsIGl0IGlzIGJsdWUuCi0gIGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRs
ZSwgY2VudGVyLCBbIDAsIDAsIDI1NSwgMjU1XSwgMTApOwotCi0gIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAg
ICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1w
cm9maWxlLnBuZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3Vs
ZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQo
Z2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIC8vIFRoZSBpbWFnZSBpcyByZWQuICBIb3dldmVyLCBpZiB3
ZSBpZ25vcmUgdGhlIGNvbG9yIHByb2ZpbGUsIGl0IGlzIGJsdWUuCi0gIGNoZWNrUGl4ZWxSYW5n
ZShidWYsIG1pZGRsZSwgY2VudGVyLCBbIDAsIDAsIDI1NSwgMjU1XSwgMTApOwotCi0gIHZhciBp
Y2NQTkdzID0gWwotICAgICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY2llLXJnYi1w
cm9maWxlLnBuZycsCi0gICAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcm1h
dGNoLXByb2ZpbGUucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWUt
c3JnYi1wcm9maWxlLnBuZycsCi0gICAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1z
bXB0ZS1jLXByb2ZpbGUucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRo
LXNyZ2ItaWVjNjE5NjYtMi4xLXByb2ZpbGUucG5nJ107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkg
PCBpY2NQTkdzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBidWYyID0gbmV3IFVpbnQ4QXJyYXko
d2lkdGggKiBoZWlnaHQgKiA0KTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgICAgaW1n
c1tpY2NQTkdzW2lpXV0pOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJT
aG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5p
dFF1YWQoZ2wpOwotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgYnVmMik7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMiKTsKLSAgICB2YXIgc2FtZSA9IHRydWU7Ci0g
ICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGJ1Zi5sZW5ndGg7ICsramopIHsKLSAgICAgIGlmIChi
dWZbampdICE9IGJ1ZjJbampdKSB7Ci0gICAgICAgIHNhbWUgPSBmYWxzZTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgICB9Ci0gICAgfQotICAgIGFzc2VydE1zZyhzYW1lLCAidXBsb2FkaW5nIFBOR3Mg
d2l0aCBzYW1lIGRhdGEgYnV0IHZhcmlvdXMgSUNDIHByb2ZpbGVzIHNob3VsZCBnZW5lcmF0ZSB0
aGUgc2FtZSByZXN1bHRzIik7Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB1
cGxvYWRpbmcgb2YgaW5kZXhlZCBQTkcgaW1hZ2VzIik7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAg
ICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZyddKTsKLSAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIp
OwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAs
IHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIC8vIFRo
ZSBpbWFnZSBzaG91bGQgYmUgcmVkLgotICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBtaWRkbGUsIGNl
bnRlciwgWyAyNTUsIDAsIDAsIDI1NSBdLCAxMCk7Ci0KLSAgZGVidWcoIiIpCi0gIGRlYnVnKCJj
aGVjayBjYWxsaW5nIHRleEltYWdlMkQgd2l0aCBOVUxMIGNsZWFycyB0aGUgdGV4dHVyZSIpOwot
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwKLSAgICAgICAgICAgICAg
ICBpbWdzWycuLi9yZXNvdXJjZXMvcmVkLWluZGV4ZWQucG5nJ10ud2lkdGgsCi0gICAgICAgICAg
ICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZyddLmhlaWdodCwKLSAgICAg
ICAgICAgICAgICAwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVw
Iik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwg
MCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgLy8g
VGhlIGltYWdlIHNob3VsZCBiZSB3aGl0ZS4KLSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgbWlkZGxl
LCBjZW50ZXIsIFsgMCwgMCwgMCwgMjU1IF0sIDEwKTsKLQotICBkZWJ1ZygiIik7Ci0gIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gIHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2Vk
Iik7Ci0gIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bh
bj4nKTsKLSAgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pcG1h
cC1mYm8uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDI1ZDBiM2UxYzMyYTg0ODUyM2Q3Mzc3YzMy
Mzk3M2FlNzYyODJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsODggKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQot
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgot
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0t
PgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLSAgICA8dGl0bGU+VGVzdHMgaWYgbWlwbWFwIGdlbmVyYXRpb24gb24gYSB0ZXh0dXJl
IGZpbGxlZCBieSBhbiBGQk8gd29ya3MgY29ycmVjdGx5PC90aXRsZT4KLSAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgot
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjQi
IGhlaWdodD0iMjQiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24g
aW5pdCgpewotICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgICBkZXNjcmlwdGlvbigp
OwotCi0gICAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotICAgIHZh
ciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotICAgIC8vIHNldHVwIHJl
bmRlciB0YXJnZXQgdGV4dHVyZSAvLwotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5M
SU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7Ci0gICAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIDIsIDIsIDAsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllU
RSwgbnVsbCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgLy8gc2V0dXAgZnJhbWVidWZmZXIgLy8KLSAgICB2YXIgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIs
IGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKLSAgICBn
bC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwotICAgICAgICAgICAgICAg
IAotICAgIC8vIGZpbGwgdGhlIGZyYW1lYnVmZmVyIC8vCi0gICAgZ2wuYmluZEZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGdsLmNsZWFyQ29sb3IoMSwgMCwgMSwgMSk7Ci0g
ICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKLSAgICAgICAgICAgICAgICAKLSAgICAvLyBnZW5lcmF0
ZSBtaXBtYXAgLy8KLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsK
LSAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLQotICAgIGdsLmRyYXdBcnJh
eXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLSAgICAgICAgICAgICAgICAKLSAgICAvLyByZWFkYmFj
ayAvLwotICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgWzI1NSwgMCwgMjU1LCAyNTVdKTsKLX0KLQot
aW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9i
b2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjQxODViNWQyYjE1M2YxZDk0OWY1ZGY0N2NhMzZmZGFlNTYxZTU4MC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU3
ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioK
LSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxl
PldlYkdMIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgotPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsK
LXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLS8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUg
bGFzdCAyIHdvcmRzIG9mIHRoZSBkb21haW4gb2YgYSBVUkwKLS8vIFRoaXMgaXMgcHJvYmFibHkg
bm90IHRoZSBjb3JyZWN0IGNoZWNrIGJ1dCBpdCB3aWxsIGRvIGZvciBub3cuCi1mdW5jdGlvbiBn
ZXRCYXNlRG9tYWluKHN0cikgewotICBzdHIgPSBzdHIucmVwbGFjZSgiXFwiLCAiLyIpOwotICB2
YXIgcG9zID0gc3RyLmluZGV4T2YoIjovLyIpOwotICBpZiAocG9zID49IDApIHsKLSAgICBzdHIg
PSBzdHIuc3Vic3RyKHBvcyArIDMpOwotICB9Ci0gIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgnLycp
OwotICB2YXIgZG9tYWluID0gcGFydHNbMF0ubWF0Y2goL1x3K1wuXHcrJC8pOwotICByZXR1cm4g
ZG9tYWluIHx8ICcnOwotfQotCi0vLyBDaGVja3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2Vw
dGlvbi4KLWZ1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihmdW5jKSB7Ci0gIHZhciBoYWRFeGNlcHRp
b24gPSBmYWxzZTsKLSAgdHJ5IHsKLSAgICBmdW5jKCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGhh
ZEV4Y2VwdGlvbiA9IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGhhZEV4Y2VwdGlvbjsKLX0KLQotdmFy
IGltZ0RvbWFpbjsKLXZhciBwYWdlRG9tYWluOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZDsKLQot
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVu
c3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmlnaW4gcmVz
dHJpY3Rpb25zLiIpOwotICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIp
OwotICBhc3NlcnRNc2coaW1nLndpZHRoID4gMCAmJiBpbWcuaGVpZ2h0ID4gMCwgImltZyB3YXMg
bG9hZGVkIik7Ci0gIGltZ0RvbWFpbiA9IGdldEJhc2VEb21haW4oaW1nLnNyYyk7Ci0gIHBhZ2VE
b21haW4gPSBnZXRCYXNlRG9tYWluKHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpKTsKLSAgYXNz
ZXJ0TXNnKGltZ0RvbWFpbiAhPSBwYWdlRG9tYWluLAotICAgICAgICAgICAgImltZyBkb21haW4g
KCIgKyBpbWdEb21haW4gKyAiKSBhbmQgcGFnZSBkb21haW4gKCIgKyBwYWdlRG9tYWluICsgIikg
YXJlIG5vdCB0aGUgc2FtZS4iKTsKLQotICBmdW5jdGlvbiBtYWtlVGV4SW1hZ2UyRChnbCwgc3Jj
KSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOwotICAg
IH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVGV4U3ViSW1hZ2UyRChnbCwgc3JjKSB7Ci0gICAg
cmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOwotICAgIH07Ci0gIH0K
LQotICBmdW5jdGlvbiBtYWtlUmVhZFBpeGVscyhnbCkgewotICAgIHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSg0KTsKLSAgICAgIGdsLnJlYWRQaXhl
bHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgICB9Owot
ICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRvRGF0YVVSTChjYW52YXMpIHsKLSAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgICB2YXIgZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoKTsKLSAgICB9Ci0g
IH0KLQotICB2YXIgY2FudmFzMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMxIik7
Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzMSk7Ci0KLSAgZGVidWcoIiIp
OwotICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhbiBpbWFnZSBmcm9t
IGFub3RoZXIgb3JpZ2luIHRocm93cyBhbiBleGNlcHRpb24uIik7Ci0gIHZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0g
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMjU2LCAyNTYsIDAsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0
aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdp
dGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2Vy
dE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGltZykpLAotICAgICAg
ICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93
IGV4Y2VwdGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGFuZCB0b0Rh
dGFVUkwgY29udGludWUgdG8gd29yayBhZ2FpbnN0IHRoaXMgY2FudmFzLiIpOwotICBhc3NlcnRN
c2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAgInJl
YWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8g
ZGlydHkgb3JpZ2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNl
cHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMxKSksCi0gICAgICAgICAgICAic2hvdWxkIG5vdCB0
aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBXZWJHTCBjYW52YXMsIHdoaWNoIHNob3Vs
ZCBzdGF5IG9yaWdpbiBjbGVhbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0
IHRvIHVwbG9hZCBhIHRhaW50ZWQgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24uIik7Ci0gIHZh
ciBjYW52YXMyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczIiKTsKLSAgdmFyIGN0
eDJkID0gY2FudmFzMi5nZXRDb250ZXh0KCIyZCIpOwotICBjdHgyZC5kcmF3SW1hZ2UoaW1nLCAw
LCAwKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZhczIp
KSwKLSAgICAgICAgICAgICJzaG91bGQgdGhyb3cgZXhjZXB0aW9uIGJ5IHRvRGF0YVVSTCBmb3Ig
Tk9OIG9yaWdpbiBjbGVhbiBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24o
bWFrZVRleEltYWdlMkQoZ2wsIGNhbnZhczIpKSwKLSAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdp
dGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAg
YXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgY2FudmFzMikp
LAotICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZh
cyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQ
aXhlbHMgYW5kIHRvRGF0YVVSTCBjb250aW51ZSB0byB3b3JrIGFnYWluc3QgdGhpcyBjYW52YXMu
Iik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCi0g
ICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5v
dCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2FudmFzLiIpOwotICBhc3NlcnRN
c2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZhczEpKSwKLSAgICAgICAgICAg
ICJzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIFdlYkdMIGNhbnZh
cywgd2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2luIGNsZWFuLiIpOwotCi0gIC8vIFRPRE86IFNob3Vs
ZCBjaGVjayB2aWRlby4KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KLQot
ICBkZWJ1ZygiIik7Ci0gIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gIHNob3VsZEJlVHJ1
ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7Ci0gIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFz
cyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKLSAgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxjYW52YXMgaWQ9ImNhbnZhczEiPjwvY2Fu
dmFzPgotPGNhbnZhcyBpZD0iY2FudmFzMiI+PC9jYW52YXM+Ci08aW1nIGlkPSJpbWciIHNyYz0i
aHR0cDovL3d3dy5vcGVuZ2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGciIHN0eWxlPSJkaXNwbGF5
Om5vbmU7Ij4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmll
dy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIwZjc0ZGY2NGViYmU5MTk4MGM0NTE1NjFhODBhNjY3MDQ2ZTE3YzguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot
KioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLWRlc2NyaXB0aW9uKCdWZXJpZmllcyB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFn
ZTJEIGNvZGUgcGF0aHMgdGFraW5nIEFycmF5QnVmZmVyVmlldycpOwotCi12YXIgd3R1ID0gV2Vi
R0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleHR1cmVMb2MgPSBudWxsOwotdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotCi1mdW5jdGlvbiByb3VuZFVwVG9BbGlnbm1l
bnQodmFsdWUsIGFsaWdubWVudCkgewotICByZXR1cm4gTWF0aC5mbG9vcigodmFsdWUgKyBhbGln
bm1lbnQgLSAxKSAvIGFsaWdubWVudCkgKiBhbGlnbm1lbnQ7Ci19Ci0KLWZ1bmN0aW9uIGdlbmVy
YXRlUkdCQURhdGEodHlwZSwgdW5wYWNrQWxpZ25tZW50LCBzb3VyY2VEYXRhLCB3aWR0aCwgaGVp
Z2h0KQotewotICAgIHZhciBudW1Db2xvcnMgPSBzb3VyY2VEYXRhLmxlbmd0aCAvIDQ7Ci0gICAg
dmFyIGNvbG9yT2Zmc2V0ID0gZnVuY3Rpb24oeSkgewotICAgICAgcmV0dXJuIDQgKiBNYXRoLmZs
b29yKHkgKiBudW1Db2xvcnMgLyBoZWlnaHQpOwotICAgIH07Ci0KLSAgICBzd2l0Y2ggKHR5cGUp
IHsKLSAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6IHsKLSAgICAgICAgdmFyIHJvd1dpZHRoID0g
cm91bmRVcFRvQWxpZ25tZW50KHdpZHRoICogNCwgdW5wYWNrQWxpZ25tZW50KTsKLSAgICAgICAg
dmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShoZWlnaHQgKiByb3dXaWR0aCk7Ci0gICAgICAgIGZv
ciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKLSAgICAgICAgICAgIHZhciBpbmRleCA9
IHkgKiByb3dXaWR0aDsKLSAgICAgICAgICAgIHZhciBvZmZzZXQgPSBjb2xvck9mZnNldCh5KTsK
LSAgICAgICAgICAgIGZvciAodmFyIGVsZW1lbnQgPSAwOyBlbGVtZW50IDwgd2lkdGggKiA0OyAr
K2VsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICBkYXRhW2luZGV4ICsgZWxlbWVudF0gPSBzb3Vy
Y2VEYXRhW29mZnNldCArIGVsZW1lbnQgJSA0XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gZGF0YTsKLSAgICB9Ci0gICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF80
XzRfNF80OiB7Ci0gICAgICAgIHZhciByb3dXaWR0aCA9IHJvdW5kVXBUb0FsaWdubWVudCh3aWR0
aCAqIDIsIHVucGFja0FsaWdubWVudCkgLyAyOwotICAgICAgICB2YXIgZGF0YSA9IG5ldyBVaW50
MTZBcnJheShoZWlnaHQgKiByb3dXaWR0aCk7Ci0gICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwg
aGVpZ2h0OyArK3kpIHsKLSAgICAgICAgICAgIHZhciBvZmZzZXQgPSBjb2xvck9mZnNldCh5KTsK
LSAgICAgICAgICAgIGZvciAodmFyIHggPSAwOyB4IDwgd2lkdGg7ICsreCkgewotICAgICAgICAg
ICAgICAgIHZhciBpbmRleCA9IHkgKiByb3dXaWR0aCArIHg7Ci0gICAgICAgICAgICAgICAgZGF0
YVtpbmRleF0gPSAoKChzb3VyY2VEYXRhW29mZnNldCArIDBdICYgMHhGMCkgPDwgOCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMV0gJiAweEYw
KSA8PCA0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVtvZmZz
ZXQgKyAyXSAmIDB4RjApID4+IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChz
b3VyY2VEYXRhW29mZnNldCArIDNdICYgMHhGMCkgPj4gNCkpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0KLSAgICBjYXNlIGdsLlVOU0lHTkVE
X1NIT1JUXzVfNV81XzE6IHsKLSAgICAgICAgdmFyIHJvd1dpZHRoID0gcm91bmRVcFRvQWxpZ25t
ZW50KHdpZHRoICogMiwgdW5wYWNrQWxpZ25tZW50KSAvIDI7Ci0gICAgICAgIHZhciBkYXRhID0g
bmV3IFVpbnQxNkFycmF5KGhlaWdodCAqIHJvd1dpZHRoKTsKLSAgICAgICAgZm9yICh2YXIgeSA9
IDA7IHkgPCBoZWlnaHQ7ICsreSkgewotICAgICAgICAgICAgdmFyIG9mZnNldCA9IGNvbG9yT2Zm
c2V0KHkpOwotICAgICAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJvd1dpZHRoICsgeDsKLSAgICAgICAgICAg
ICAgICBkYXRhW2luZGV4XSA9ICgoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMF0gJiAweEY4KSA8PCA4
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVtvZmZzZXQgKyAx
XSAmIDB4RjgpIDw8IDMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2VE
YXRhW29mZnNldCArIDJdICYgMHhGOCkgPj4gMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgM10gJiAweDgwKSA+PiA3KSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0gICAgfQotICAgIH0KLX0KLQot
ZnVuY3Rpb24gdHlwZVRvU3RyaW5nKHR5cGUpCi17Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAg
Y2FzZSBnbC5VTlNJR05FRF9CWVRFOiAgICAgICAgICAgcmV0dXJuICdVTlNJR05FRF9CWVRFJzsK
LSAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6ICByZXR1cm4gJ1VOU0lHTkVEX1NI
T1JUXzVfNV81XzEnOwotICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNDogIHJldHVy
biAnVU5TSUdORURfU0hPUlRfNF80XzRfNCc7Ci0gICAgfQotICAgIHJldHVybiAnVW5rbm93biB0
eXBlICcgKyB0eXBlOwotfQotCi1mdW5jdGlvbiBydW5PbmVJdGVyYXRpb24odXNlVGV4U3ViSW1h
Z2UyRCwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgdG9w
Q29sb3IsIGJvdHRvbUNvbG9yLCBleHRyYUNvbG9yKQotewotICAgIGRlYnVnKCdUZXN0aW5nICcg
KyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJEJyA6ICd0ZXhJbWFnZTJEJykgKwot
ICAgICAgICAgICcgd2l0aCB0eXBlPScgKyB0eXBlVG9TdHJpbmcodHlwZSkgKwotICAgICAgICAg
ICcsIHVucGFja0FsaWdubWVudD0nICsgdW5wYWNrQWxpZ25tZW50ICsKLSAgICAgICAgICAnLCBm
bGlwWT0nICsgZmxpcFkgKyAnLCBwcmVtdWx0aXBseUFscGhhPScgKyBwcmVtdWx0aXBseUFscGhh
KTsKLSAgICBnbC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgZ2wuY2xl
YXJDb2xvcigwLCAwLCAwLCAxLjApOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQg
fCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAvLyBFbmFibGUgd3JpdGVzIHRvIHRoZSBSR0Ig
Y2hhbm5lbHMKLSAgICBnbC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpOwotICAg
IHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIC8vIEJpbmQgdGhlIHRleHR1
cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXh0dXJlKTsKLSAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzCi0gICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1Qp
OwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklM
VEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAg
ICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAgIGdsLnBpeGVsU3RvcmVpKGds
LlVOUEFDS19BTElHTk1FTlQsIHVucGFja0FsaWdubWVudCk7Ci0gICAgZ2wucGl4ZWxTdG9yZWko
Z2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkpOwotICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8g
R2VuZXJhdGUgdGhlIGRhdGEKLSAgICB2YXIgc291cmNlRGF0YSA9IFsgMjU1LCAgIDAsICAgMCwg
MjU1LAotICAgICAgICAgICAgICAgICAgICAgICAwLCAgIDI1NSwgICAwLCAgIDAgXTsKLSAgICB2
YXIgdGV4V2lkdGggPSA1OyAgIC8vIHRoaXMgbXVzdCBiZSBtb2QgNCArIDEgdG8gdGVzdCB1bnBh
Y2tBbGlnbm1lbnQKLSAgICB2YXIgdGV4SGVpZ2h0ID0gMTY7Ci0gICAgdmFyIGRhdGEgPSBnZW5l
cmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdubWVudCwgc291cmNlRGF0YSwgdGV4V2lkdGgs
IHRleEhlaWdodCk7Ci0gICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCi0gICAg
ICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGJlZm9yZSB0ZXh0dXJlIHVwbG9hZCIpOwotICAgIC8v
IFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQotICAgIGlmICh1c2VUZXhTdWJJbWFn
ZTJEKSB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QK
LSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB0ZXhXaWR0
aCwgdGV4SGVpZ2h0LCAwLAotICAgICAgICAgICAgICAgICAgICAgIGdsLlJHQkEsIHR5cGUsIG51
bGwpOwotICAgICAgICBpZiAoZ2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGFmdGVyIHRleEltYWdlMkQobnVsbCkiKTsKLSAgICAg
ICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXhXaWR0aCwgdGV4
SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKLSAgICAgICAgaWYgKGdsLmdldEVycm9yKCkg
IT0gZ2wuTk9fRVJST1IpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBhZnRlciB0
ZXhTdWJJbWFnZTJEIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCAwLCBnbC5SR0JBLCB0
eXBlLCBkYXRhKTsKLSAgICAgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBhZnRlciB0ZXhJbWFnZTJEIik7Ci0gICAg
fQotCi0gICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAot
ICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAvLyBEcmF3IHRoZSB0cmlhbmds
ZXMKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLQot
ICAgIC8vIENoZWNrIHRoZSB0b3AgcGl4ZWwgYW5kIGJvdHRvbSBwaXhlbCBhbmQgbWFrZSBzdXJl
IHRoZXkgaGF2ZQotICAgIC8vIHRoZSByaWdodCBjb2xvci4KLSAgICB2YXIgdGVzdFdpZHRoICA9
IGdsLmRyYXdpbmdCdWZmZXJXaWR0aDsKLSAgICB2YXIgdGVzdEhlaWdodCA9IGdsLmRyYXdpbmdC
dWZmZXJIZWlnaHQgLyAyOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHRlc3RX
aWR0aCwgdGVzdEhlaWdodCwgYm90dG9tQ29sb3IsICJib3R0b20gcGl4ZWwgc2hvdWxkIGJlICIg
KyBib3R0b21Db2xvcik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgdGVzdEhlaWdo
dCwgdGVzdFdpZHRoLCB0ZXN0SGVpZ2h0LCB0b3BDb2xvciwgInRvcCBwaXhlbCBzaG91bGQgYmUg
IiArIHRvcENvbG9yKTsKLQotICAgIC8vIENoYW5nZSBwYXJ0IG9mIHRoZSB0ZXh0dXJlLgotICAg
IHZhciBwYXJ0V2lkdGggPSA4OwotICAgIHZhciBwYXJ0SGVpZ2h0ID0gMTY7Ci0gICAgLy8gbWFr
ZSB0ZXh0dXJlIGRvdWJsZSByZXMgb2YgcGFydC4KLSAgICB2YXIgZGF0YSA9IGdlbmVyYXRlUkdC
QURhdGEodHlwZSwgdW5wYWNrQWxpZ25tZW50LCBzb3VyY2VEYXRhLCBwYXJ0V2lkdGggKiAyLCBw
YXJ0SGVpZ2h0ICogMik7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLCBwYXJ0V2lkdGggKiAyLCBwYXJ0SGVpZ2h0ICogMiwgMCwgZ2wuUkdCQSwgdHlwZSwgZGF0
YSk7Ci0gICAgLy8gc2V0IHBhcnQuCi0gICAgdmFyIGV4dHJhRGF0YSA9IFsKLSAgICAgIDI1NSwg
ICAwLCAgIDAsIDI1NSwKLSAgICAgICAgMCwgICAwLCAyNTUsICAgMAotICAgIF07Ci0gICAgdmFy
IGRhdGEgPSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdubWVudCwgZXh0cmFEYXRh
LCBwYXJ0V2lkdGgsIHBhcnRIZWlnaHQpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwgMCwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRh
KTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLSAg
ICB2YXIgaGFsZldpZHRoICA9IGdsLmRyYXdpbmdCdWZmZXJXaWR0aCAvIDI7Ci0gICAgdmFyIGhh
bGZIZWlnaHQgPSBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IC8gMjsKLSAgICB2YXIgcXVhcnRlckhl
aWdodCA9IGdsLmRyYXdpbmdCdWZmZXJIZWlnaHQgLyA0OwotICAgIHZhciByZWQgPSBbMjU1LCAw
LCAwLCAyNTVdOwotICAgIHZhciB0Y29sb3IwID0gZmxpcFkgPyBleHRyYUNvbG9yIDogcmVkOwot
ICAgIHZhciB0Y29sb3IxID0gZmxpcFkgPyByZWQgOiBleHRyYUNvbG9yOwotICAgIHd0dS5jaGVj
a0NhbnZhc1JlY3QoZ2wsIDAsIDAsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwgdGNvbG9yMCwg
ImJvdHRvbSBsZWZ0IGJvdHRvbSBwaXhlbHMgc2hvdWxkIGJlICIgKyB0Y29sb3IwKTsKLSAgICB3
dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBxdWFydGVySGVpZ2h0LCBoYWxmV2lkdGgsIHF1YXJ0
ZXJIZWlnaHQsIHRjb2xvcjEsICJib3R0b20gbGVmdCB0b3AgcGl4ZWxzIHNob3VsZCBiZSAiICsg
dGNvbG9yMSk7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaGFsZldpZHRoLCAwLCBoYWxm
V2lkdGgsIGhhbGZIZWlnaHQsIGJvdHRvbUNvbG9yLCAiYm90dG9tIHJpZ2h0IHBpeGVscyBzaG91
bGQgYmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBo
YWxmSGVpZ2h0LCB0ZXN0V2lkdGgsIGhhbGZIZWlnaHQsIHRvcENvbG9yLCAidG9wIHBpeGVscyBz
aG91bGQgYmUgIiArIHRvcENvbG9yKTsKLSAgICAvLyBzZXQgZmFyIGNvcm5lci4KLSAgICBnbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHBhcnRXaWR0aCwgcGFydEhlaWdodCwgcGFy
dFdpZHRoLCBwYXJ0SGVpZ2h0LCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKLSAgICB3dHUuY2xlYXJB
bmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLSAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCAwLCAwLCBoYWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRjb2xvcjAsICJib3R0b20g
bGVmdCBib3R0b20gcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMCk7Ci0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgMCwgcXVhcnRlckhlaWdodCwgaGFsZldpZHRoLCBxdWFydGVySGVpZ2h0
LCB0Y29sb3IxLCAiYm90dG9tIGxlZnQgdG9wIHBpeGVscyBzaG91bGQgYmUgIiArIHRjb2xvcjEp
OwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGhhbGZXaWR0aCwgMCwgaGFsZldpZHRoLCBo
YWxmSGVpZ2h0LCBib3R0b21Db2xvciwgImJvdHRvbSBsZWZ0IHBpeGVscyBzaG91bGQgYmUgIiAr
IGJvdHRvbUNvbG9yKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBoYWxmSGVpZ2h0
LCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIHRvcENvbG9yLCAidG9wIHJpZ2h0IHBpeGVscyBzaG91
bGQgYmUgIiArIHRvcENvbG9yKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCBoYWxmV2lk
dGgsIGhhbGZIZWlnaHQsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwgdGNvbG9yMCwgInRvcCBy
aWdodCBib3R0b20gcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMCk7Ci0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0ICsgcXVhcnRlckhlaWdodCwgaGFs
ZldpZHRoLCBxdWFydGVySGVpZ2h0LCB0Y29sb3IxLCAidG9wIHJpZ2h0IHRvcCBwaXhlbHMgc2hv
dWxkIGJlICIgKyB0Y29sb3IxKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgdmFy
IHJlZCA9IFsyNTUsIDAsIDAsIDI1NV07Ci0gICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMCwgMjU1
XTsKLSAgICB2YXIgYmx1ZSA9IFswLCAwLCAyNTUsIDI1NV07Ci0gICAgdmFyIHJlZFByZW11bHRp
cGx5QWxwaGEgPSBbMjU1LCAwLCAwLCAyNTVdOwotICAgIHZhciBncmVlblByZW11bHRpcGx5QWxw
aGEgPSBbMCwgMCwgMCwgMjU1XTsKLSAgICB2YXIgYmx1ZVByZW11bHRpcGx5QWxwaGEgPSBbMCwg
MCwgMCwgMjU1XTsKLQotICAgIHZhciB0eXBlcyA9IFsgZ2wuVU5TSUdORURfQllURSwgZ2wuVU5T
SUdORURfU0hPUlRfNV81XzVfMSwgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCBdOwotICAgIHZh
ciB1bnBhY2tBbGlnbm1lbnRzID0gWyAxLCAyLCA0LCA4IF07Ci0KLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciB0eXBlID0gdHlwZXNbaV07
Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdW5wYWNrQWxpZ25tZW50cy5sZW5ndGg7ICsr
aikgewotICAgICAgICAgICAgdmFyIHVucGFja0FsaWdubWVudCA9IHVucGFja0FsaWdubWVudHNb
al07Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdu
bWVudCwgdHJ1ZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkLCBncmVl
biwgYmx1ZSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHR5cGUsIHVucGFj
a0FsaWdubWVudCwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdy
ZWVuLCByZWQsIGJsdWUpOwotICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0eXBl
LCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCBibHVlUHJlbXVs
dGlwbHlBbHBoYSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHR5cGUsIHVu
cGFja0FsaWdubWVudCwgZmFsc2UsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFscGhhLCBibHVlUHJlbXVsdGlw
bHlBbHBoYSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgdHlwZSwgdW5wYWNr
QWxpZ25tZW50LCB0cnVlLCBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWQs
IGdyZWVuLCBibHVlKTsKLSAgICAgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0eXBlLCB1
bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncmVlbiwgcmVkLCBibHVlKTsKLSAgICAgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0
eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCBibHVlUHJl
bXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgICAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgdHlwZSwg
dW5wYWNrQWxpZ25tZW50LCBmYWxzZSwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncmVlblByZW11bHRpcGx5QWxwaGEsIHJlZFByZW11bHRpcGx5QWxwaGEsIGJsdWVQcmVtdWx0
aXBseUFscGhhKTsKLSAgICAgICAgfQotICAgIH0KLQotfQotCi12YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJleGFtcGxlIik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVh
ZChnbCk7Ci0KLXRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRl
eCIpOwotCi1ydW5UZXN0KCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hv
dWxkIGJlIG5vIGVycm9ycyIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiNTY1Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtY2FudmFzLXJnYjU2NS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODkw
OGQ4ZDc5ZTlmM2UwYTZmOGFlZDQzMzgwZTliOTkyNWVkM2I0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiNTY1Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
Ci0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBz
dWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j
bHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1h
dGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJ
TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJ
VFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu
Ci0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBC
RSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklB
TFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQot
LS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWNhbnZhcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3Qi
OwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0IiLCAiVU5TSUdO
RURfU0hPUlRfNV82XzUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmQzOGVkMzUwNWM3MjcwZjIwOGE2NWU0Mzg4ZmQ4
OGZlNGFhNDJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1jYW52YXMtcmdiYTQ0NDQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUo
Z2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNF80XzRfNCIsIHRlc3RQ
cm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIi
PjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYmE1NTUx
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtY2FudmFzLXJnYmE1NTUxLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU5MGEzOGEwNjYwMDRhNGE0ZTMyMDE1YTUxOWU3ZGQ4NzBjNjhhNTIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNTU1MS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0
IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQot
KiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRv
Ci0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQot
KiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFM
Uy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1
c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVl
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdC
QSIsICJVTlNJR05FRF9TSE9SVF81XzVfNV8xIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODUyMzJiMWYzMDdkZTlhZDI0ZTcwM2YxMzY2NzA5ZTIxMjU0
ZjYxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2Fu
dmFzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVU
ZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZVEUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBp
ZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1y
Z2I1NjUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA5ZjM5MGUyYWY5MDg0
NDQ5ZWRiNTI2OGVmNzU2MTU4OWVlMmJhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDUwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAot
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwot
ZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0IiLCAiVU5TSUdORURf
U0hPUlRfNV82XzUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3
aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
aW1hZ2UtZGF0YS1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmExZDI0M2Y1YzZjZmM3YTZjODQ4MmNlYmZiMmM0
YjY5NjE1MDFiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0NC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBA
QAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0q
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1k
YXRhLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0
UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNF80XzRf
NCIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdpZHRoPSIxIiBo
ZWlnaHQ9IjIiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjEiIGhlaWdo
dD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRh
LXJnYmE1NTUxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1YmJkMDFkNmMyY2M2ZWZhNjQwN2Q2NmRmMWVlNjNkMGE4YjMwMjk3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1k
YXRhLXJnYmE1NTUxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi08IS0tCi0K
LS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShn
bCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF81XzVfNV8xIiwgdGVzdFBy
b2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9IjEiIGhlaWdodD0iMiI+
PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2Nh
bnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1kYXRhLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5YTQ2ODBiOGE4
NmM2NzI4NThhYTlmN2M0M2E0YTJkODVlYThhZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDUwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgot
KioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVu
Y3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZ
VEUiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMSIg
aGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxIiBoZWln
aHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Utcmdi
NTY1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtcmdiNTY1Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg1MDI1YjE4NWQ0YTQwMmRlMTNkMTExNzRiMjU1NmE0NmU0M2EyNWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2NS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBz
dHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0IiLCAi
VU5TSUdORURfU0hPUlRfNV82XzUiLCAiLi4iLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBp
ZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0NDQ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTQ0NDQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2MzM2I0ODJkODM5MTQ4YjhlM2Yz
Mzk0ZThmNzIyZGE1OThmY2E1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTQ0NDQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICsw
LDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQ
cm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF80XzRfNF80
IiwgIi4uIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIz
MiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1yZ2JhNTU1MS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE1NTUxLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMwNDA1NTRjNTE1MzA4YzYxYmZjNWQ4Y2ZiZDZkMzU5ODkyMzczODku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJn
YmE1NTUxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0q
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0
ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNV81XzVfMSIsICIuLiIsIHRlc3RQcm9sb2d1
ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2Fu
dmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGYyZDU1ZDM0OWIwYjMyZTdjZWJi
NDMzZTlmNmRmM2M2NWY4M2Q5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEt
LQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoq
Ci0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
LSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGds
KSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZVEUiLCAiLi4iLCB0ZXN0UHJvbG9n
dWUpKCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2Nh
bnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYjU2NS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LXZpZGVvLXJnYjU2NS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWMxMWUy
Njk2YzJiMzRhNTk5ZmM3YWRlZjYzZmM5Y2ZmOTQyZmMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoq
ICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl
ZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJp
YWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoq
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4K
LQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtdmlkZW8uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1
bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCIiwgIlVOU0lHTkVEX1NI
T1JUXzVfNl81IiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC12aWRlby1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE0NDQ0Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRhOTExYWEwMzc2Y2VmZDk1YmE3ZTYwNjdhMTQ5ZDRjYmE2Nzg2
ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVv
LXJnYmE0NDQ0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8q
Ci0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
LSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
LSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5l
cmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNF80XzRfNCIsIHRlc3RQcm9sb2d1ZSko
KSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2FudmFz
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTU1NTEuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12
aWRlby1yZ2JhNTU1MS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyN2VmNjJm
ZjdkOGZiYzFkNmM3ZDkyZDkyZjI2ZDU2OTI3N2VhZTUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNTU1MS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQot
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgot
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0t
PgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC12aWRlby5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwot
ZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVE
X1NIT1JUXzVfNV81XzEiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLXZpZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjVjNGE3ZjUzNGI2OWJmYjlmZDhlMjRhNzNkNDAzMzUwNGY2OTA5YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwot
Ci0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtdmlkZW8uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0
IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJ
R05FRF9CWVRFIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmct
YnVncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVuaWZv
cm0tYmluZGluZy1idWdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3Zjcw
ZTFkMWQ1YWI2NDRhNmMzYzZhYmNlMDA0MTRkNjBhZmZkZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
NCArMCwwIEBACi08IS0tCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFs
cyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiog
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgot
KiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB
Q1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0Ug
T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0tLT4KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLQotZGVzY3JpcHRpb24oJ1Rlc3Rz
IHBhc3NpbmcgYSB2ZWM0IHRvIGEgdW5pZm9ybSBhbmQgYSBjYW52YXMgdG8gdGV4SW1hZ2UyRCcp
OwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250
ZXh0KCk7Ci12YXIgZmxvYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIu
Li9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vcmVzb3VyY2VzL25vb3BV
bmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJnbC51c2VQcm9ncmFtKGZs
b2F0UHJvZ3JhbSkiKTsKLXZhciBmdmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9h
dFByb2dyYW0sICJmdmFsNCIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiZ2wudW5pZm9ybTRmdihmdmFsNExvYywgbmV3IEZsb2F0MzJBcnJh
eShbMC4xLCAwLjIsIDAuNCwgMS4wXSkpOyIpOwotCi12YXIgdG1wY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci10bXBjYW52YXMud2lkdGggPSAyOwotdG1wY2FudmFz
LmhlaWdodCA9IDI7Ci12YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLXNob3VsZEJl
VW5kZWZpbmVkKCJnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKSIpOwotc2hv
dWxkQmVVbmRlZmluZWQoImdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdG1wY2FudmFzKSIpOwotCi12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13ZWJnbC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMjhiNzUxZDc1ZjcxNDZkNjc2OWVkYmVjODhhMzBhMDE4N2I4
YmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw4NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
LSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0K
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTx0aXRsZT5XZWJHTCB0ZXhJbWFnZTJEIGZyb20gV2ViR0wgY29uZm9ybWFuY2UgdGVzdC48L3Rp
dGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4g
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
PiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9
IjI1NiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAyNTZweDsgaGVpZ2h0OiA0OHB4OyI+PC9j
YW52YXM+Ci08Y2FudmFzIGlkPSJzb3VyY2UiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTYiIHN0eWxl
PSJ3aWR0aDogMjU2cHg7IGhlaWdodDogNDhweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBz
dHJpY3QiOwotZGVzY3JpcHRpb24oIlRlc3QgdGV4SW1hZ2UyRCBmcm9tIGEgd2ViZ2wgY2FudmFz
LiIpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dCgiZXhhbXBsZSIpOwotZ2wuZGlzYWJsZShnbC5ESVRIRVIpOwotdmFyIHByb2dyYW0gPSB3
dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotdmFyIGdsMSA9IHd0dS5jcmVhdGUzRENvbnRleHQo
InNvdXJjZSIpOwotZ2wxLmRpc2FibGUoZ2wuRElUSEVSKTsKLQotZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLWdsRXJy
b3JTaG91bGRCZShnbDEsIGdsMS5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBz
ZXR1cC4iKTsKLQotZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci1nbC5kaXNhYmxlKGdsLkRFUFRIX1RF
U1QpOwotCi1nbDEuY2xlYXJDb2xvcigxLjAsIDAuMCwgMC4wLCAxLjApOwotZ2wxLmNsZWFyKGds
MS5DT0xPUl9CVUZGRVJfQklUKTsKLQotdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLWds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBnbDEuY2FudmFzKTsK
LWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNM
QU1QX1RPX0VER0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLWdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotd3R1LmNs
ZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLQotd3R1LmNoZWNrQ2FudmFzKGdsLCBbMjU1LCAwLCAw
LCAyNTVdLCAiQ2FudmFzIHNob3VsZCBiZSByZWQiKTsKLQotZ2wxLmNsZWFyQ29sb3IoMC4wLCAx
LjAsIDAuMCwgMS4wKTsKLWdsMS5jbGVhcihnbDEuQ09MT1JfQlVGRkVSX0JJVCk7Ci0KLWdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZ
VEUsIGdsMS5jYW52YXMpOwotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLQotd3R1LmNo
ZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAiQ2FudmFzIHNob3VsZCBiZSBncmVlbiIp
OwotCi1kZWJ1ZygiIik7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDc3MWVmNjA5ZDMyMWNjZDQwMDVlY2M2NzhkMDQ0YWVmYjgx
ZTZlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzQ3ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
LSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0q
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
LSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9wbmds
aWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xU
ZXN0VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleHR1cmVMb2MgPSBudWxsOwotdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIEhhcm5lc3MK
LQotdmFyIHRlc3RDYXNlcyA9IFtdOwotCi12YXIgRGF0YU1vZGUgPSB7Ci0gICAgSU1BR0U6IDAs
Ci0gICAgSU1BR0VfREFUQTogMSwKLQotICAgIE5VTV9IVE1MX01PREVTOiAyLAotCi0gICAgUkFX
X0RBVEE6IDIsCi0KLSAgICAvLyBUaGlzIG11c3QgcmVtYWluIHRoZSBsYXN0IG1vZGUuCi0gICAg
TlVNX01PREVTOiAzCi19OwotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAgICBpbml0VGVzdGluZ0hh
cm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdl
MkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgYm90aCBIVE1MIGFuZCB1c2Vy
LXNwZWNpZmllZCBkYXRhIHdpdGggYWxsIGZvcm1hdC90eXBlIGNvbWJpbmF0aW9ucycpOwotCi0g
ICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7Ci0gICAg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gICAgZ2wuZGlzYWJsZShnbC5ESVRI
RVIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotICAg
IGdsLmNsZWFyQ29sb3IoMCwwLDAsMSk7Ci0gICAgZ2wuY2xlYXJEZXB0aCgxKTsKLSAgICBnbC5k
aXNhYmxlKGdsLkJMRU5EKTsKLQotICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24ocHJvZ3JhbSwgInRleCIpOwotCi0gICAgaW5pdGlhbGl6ZVRlc3RzKCk7Ci19Ci0KLWZ1bmN0
aW9uIGluaXRpYWxpemVUZXN0cygpCi17Ci0gICAgLy8gVmVyaWZ5IHRoYXQgdXBsb2FkaW5nIHRv
IHBhY2tlZCBwaXhlbCBmb3JtYXRzIHBlcmZvcm1zIHRoZQotICAgIC8vIHJlcXVpcmVkIGNvbnZl
cnNpb24gYW5kIGFzc29jaWF0ZWQgbG9zcyBvZiBwcmVjaXNpb24uCi0gICAgZm9yICh2YXIgZGF0
YU1vZGUgPSAwOyBkYXRhTW9kZSA8IERhdGFNb2RlLk5VTV9IVE1MX01PREVTOyArK2RhdGFNb2Rl
KSB7Ci0gICAgICAgIGZvciAodmFyIHVzZVRleFN1YkltYWdlMkQgPSAwOyB1c2VUZXhTdWJJbWFn
ZTJEIDwgMjsgKyt1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVz
aCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAg
IHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3
aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBn
ZW5lcmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBw
cmVtdWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQkEs
Ci0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAg
ICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9Nb3JlVGhhbiwKLSAgICAgICAgICAg
ICAgICB0aHJlc2hvbGQ6IDEsCi0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEsCi0g
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0JBL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1h
aW50YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUs
Ci0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAot
ICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAot
ICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1wLAot
ICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAgICAgICAgICAg
IGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9S
VF80XzRfNF80LAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNl
QnlBdExlYXN0LAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMTUsCi0gICAgICAgICAgICAg
ICAgbnVtT2NjdXJyZW5jZXM6IDEwLAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUkdC
QS9VTlNJR05FRF9TSE9SVF80XzRfNF80IG11c3QgZHJvcCBsb3cgZm91ciBiaXRzIG9mIHByZWNp
c2lvbiIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAg
ICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1
NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9y
OiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlw
bHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICAg
ICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsCi0gICAgICAgICAgICAg
ICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeUF0TGVhc3QsCi0gICAgICAgICAgICAg
ICAgdGhyZXNob2xkOiA3LAotICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAyMCwKLSAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQkEvVU5TSUdORURfU0hPUlRfNV81XzVfMSBt
dXN0IGRyb3AgbG93IHRocmVlIGJpdHMgb2YgcHJlY2lzaW9uIgotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRh
dGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1h
Z2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdo
dDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxl
UmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAg
ICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05F
RF9CWVRFLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNlQnlO
b01vcmVUaGFuLAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwKLSAgICAgICAgICAgICAg
ICBudW1PY2N1cnJlbmNlczogMSwKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQi9V
TlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAg
ICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAg
ICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRl
T3BhcXVlR3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBm
YWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgICAgICAgICAgICB0
eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjog
YWxsQ2hhbm5lbHNJbmNyZWFzZUJ5QXRMZWFzdCwKLSAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6
IDMsCi0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDIwLAotICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAiUkdCL1VOU0lHTkVEX1NIT1JUXzVfNl81IG11c3QgZHJvcCBsb3cgdHdv
IG9yIHRocmVlIGJpdHMgb2YgcHJlY2lzaW9uIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAot
ICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAg
ICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNsdWNlbnRHcmF5c2NhbGVSYW1w
LAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAgICAgICAg
ICAgIGZvcm1hdDogZ2wuQUxQSEEsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURf
QllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogYWxwaGFDaGFubmVsSW5jcmVhc2VzQnlO
b01vcmVUaGFuLAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwKLSAgICAgICAgICAgICAg
ICBudW1PY2N1cnJlbmNlczogMSwKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkFMUEhB
L1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAg
ICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2Uy
RDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAg
ICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJh
dGVPcGFxdWVHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6
IGZhbHNlLAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNFLAotICAgICAgICAg
ICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6
IGFsbENoYW5uZWxzSW5jcmVhc2VCeU5vTW9yZVRoYW4sCi0gICAgICAgICAgICAgICAgdGhyZXNo
b2xkOiAxLAotICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxLAotICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiTFVNSU5BTkNFL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWlu
IGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRl
c3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAg
ICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAg
ICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAg
ICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1wLAotICAgICAg
ICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAgICAgICAgICAgIGZvcm1h
dDogZ2wuTFVNSU5BTkNFX0FMUEhBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVE
X0JZVEUsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeU5v
TW9yZVRoYW4sCi0gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxLAotICAgICAgICAgICAgICAg
IG51bU9jY3VycmVuY2VzOiAxLAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTFVNSU5B
TkNFX0FMUEhBL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lzaW9uIG9m
IGRhdGEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFZlcmlm
eSB0aGF0IHNldHRpbmcgdGhlIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBwaXhlbAot
ICAgIC8vIHN0b3JlIHBhcmFtZXRlciBhbmQgc2VuZGluZyBkb3duIGEgemVybyBhbHBoYSBjYXVz
ZXMgdGhlIGNvbG9yCi0gICAgLy8gY2hhbm5lbHMgdG8gZ28gdG8gemVyby4KLSAgICBmb3IgKHZh
ciBkYXRhTW9kZSA9IDA7IGRhdGFNb2RlIDwgRGF0YU1vZGUuTlVNX01PREVTOyArK2RhdGFNb2Rl
KSB7Ci0gICAgICAgIGZvciAodmFyIHVzZVRleFN1YkltYWdlMkQgPSAwOyB1c2VUZXhTdWJJbWFn
ZTJEIDwgMjsgKyt1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVz
aCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAg
IHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3
aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBn
ZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAg
ICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5S
R0JBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAg
ICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAotICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdCQS9VTlNJ
R05FRF9CWVRFIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7
Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVz
ZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0
aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5l
cmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAg
IHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0JB
LAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsCi0gICAg
ICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAotICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdC
QS9VTlNJR05FRF9TSE9SVF80XzRfNF80IgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0
ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAg
ICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAg
ICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAg
ICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAot
ICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5SR0JBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JU
XzVfNV81XzEsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJv
LAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhB
X1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9TSE9SVF81XzVfNV8xIgotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZldyB0ZXN0cyBhcmUgaW52YWxpZCBmb3Ig
dGhlIHJhdyBkYXRhCi0gICAgICAgICAgICAvLyBtb2RlIGJlY2F1c2UgdGhlcmUgaXMgZWl0aGVy
IG5vIGFscGhhIGNoYW5uZWwgb3Igbm8KLSAgICAgICAgICAgIC8vIHNlcGFyYXRlIGFscGhhIGNo
YW5uZWwuCi0gICAgICAgICAgICBpZiAoZGF0YU1vZGUgIT0gRGF0YU1vZGUuUkFXX0RBVEEpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgICAgIGRh
dGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDog
ISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRv
cjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgICAg
IHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wu
UkdCLAotICAgICAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAg
ICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdp
dGggUkdCL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1v
ZGUsCi0gICAgICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1h
Z2UyRCwKLSAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJh
bnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFs
cGhhOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgICAg
ICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV82XzUsCi0gICAgICAgICAgICAg
ICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0Iv
VU5TSUdORURfU0hPUlRfNV82XzUiCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1v
ZGUsCi0gICAgICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1h
Z2UyRCwKLSAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJh
bnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFs
cGhhOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLkFMUEhBLAotICAgICAg
ICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgICAg
ICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggQUxQSEEvVU5T
SUdORURfQllURSIKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0ZXN0Q2Fz
ZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAg
ICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAg
ICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEsCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdy
YXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUs
Ci0gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNFLAotICAgICAgICAgICAg
ICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgICAgICB2ZXJp
ZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggTFVNSU5BTkNFL1VOU0lH
TkVEX0JZVEUiCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAot
ICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAg
ICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1w
LAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAg
ICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0VfQUxQSEEsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0Fy
ZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0VfQUxQSEEvVU5TSUdORURfQllURSIKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUHJvZHVjZSBkYXRhIGZvciBhbGwg
dGVzdGNhc2VzLiBCZWNhdXNlIHdlIGxvYWQgaW1hZ2VzLCBzb21lIG9mCi0gICAgLy8gdGhlc2Ug
bWF5IGdlbmVyYXRlIHRoZWlyIGRhdGEgYXN5bmNocm9ub3VzbHkuCi0gICAgZ2VuZXJhdGVUZXN0
RGF0YSgpOwotfQotCi1mdW5jdGlvbiBnZW5lcmF0ZVRlc3REYXRhKCkKLXsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgdGVzdENh
c2UgPSB0ZXN0Q2FzZXNbaV07Ci0gICAgICAgIHZhciB3cmFwcGVyID0gbnVsbDsKLSAgICAgICAg
c3dpdGNoICh0ZXN0Q2FzZS5kYXRhTW9kZSkgewotICAgICAgICBjYXNlIERhdGFNb2RlLklNQUdF
OgotICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBJbWFnZVdyYXBwZXIodGVzdENhc2Uud2lkdGgs
IHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEYXRh
TW9kZS5JTUFHRV9EQVRBOgotICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBJbWFnZURhdGFXcmFw
cGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgRGF0YU1vZGUuUkFXX0RBVEE6Ci0gICAgICAgICAgICBzd2l0Y2ggKHRl
c3RDYXNlLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKLSAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHRlc3RDYXNlLmZvcm1hdCkgewotICAgICAgICAgICAgICAgIGNh
c2UgZ2wuUkdCQToKLSAgICAgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0JBOERhdGFX
cmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGdsLlJHQjoKLSAgICAgICAgICAgICAg
ICAgICAgd3JhcHBlciA9IG5ldyBSR0I4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RD
YXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IGNhc2UgZ2wuQUxQSEE6Ci0gICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgQThEYXRh
V3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBnbC5MVU1JTkFOQ0U6Ci0gICAgICAg
ICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgTDhEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwg
dGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBnbC5MVU1JTkFOQ0VfQUxQSEE6Ci0gICAgICAgICAgICAgICAgICAgIHdyYXBw
ZXIgPSBuZXcgTEE4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRf
NDoKLSAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IFJHQkE0NDQ0RGF0YVdyYXBwZXIodGVz
dENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6Ci0gICAgICAgICAgICAg
ICAgd3JhcHBlciA9IG5ldyBSR0JBNTU1MURhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0
Q2FzZS5oZWlnaHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBn
bC5VTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IFJH
QjU2NURhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHRlc3RD
YXNlLndyYXBwZXIgPSB3cmFwcGVyOwotICAgICAgICB0ZXN0Q2FzZS5nZW5lcmF0b3Iod3JhcHBl
cik7Ci0gICAgICAgIHRlc3RDYXNlLndyYXBwZXIuZ2VuZXJhdGVEYXRhKCk7Ci0gICAgfQotCi0g
ICAgLy8gU2VlIHdoZXRoZXIgd2UgbmVlZCB0byBydW4gdGhlIHRlc3RzLCBpbiBjYXNlIGFsbCBv
ZiB0aGVtCi0gICAgLy8gZ2VuZXJhdGVkIHRoZWlyIHJlc3VsdHMgc3luY2hyb25vdXNseS4KLSAg
ICBtYXliZVJ1blRlc3RzKCk7Ci19Ci0KLXZhciByYW5UZXN0cyA9IGZhbHNlOwotCi1mdW5jdGlv
biBtYXliZVJ1blRlc3RzKCkKLXsKLSAgICBpZiAoIXJhblRlc3RzKQotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGlmICghdGVz
dENhc2VzW2ldLndyYXBwZXIgfHwgIXRlc3RDYXNlc1tpXS53cmFwcGVyLmRhdGEpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgcmFuVGVzdHMgPSB0cnVlOwotCi0gICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpCi0gICAgICAgIHJ1bk9uZVRlc3QodGVz
dENhc2VzW2ldKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdENhc2VU
b1N0cmluZyh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgbW9kZTsKLSAgICBzd2l0Y2ggKHRlc3RDYXNl
LmRhdGFNb2RlKSB7Ci0gICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKLSAgICAgICAgbW9kZSA9ICJJ
bWFnZSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKLSAg
ICAgICAgbW9kZSA9ICJJbWFnZURhdGEiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERhdGFN
b2RlLlJBV19EQVRBOgotICAgICAgICBtb2RlID0gInJhdyBkYXRhIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIHJldHVybiAodGVzdENhc2UudXNlVGV4U3ViSW1hZ2UyRCA/ICJ0ZXhTdWJJ
bWFnZTJEIiA6ICJ0ZXhJbWFnZTJEIikgKwotICAgICAgICAgICAgIiB3aXRoICIgKyBtb2RlICsg
ICIgYXQgIiArIHRlc3RDYXNlLndpZHRoICsgIngiICsgdGVzdENhc2UuaGVpZ2h0OwotfQotCi1m
dW5jdGlvbiBydW5PbmVUZXN0KHRlc3RDYXNlKQotewotICAgIGRlYnVnKCJUZXN0aW5nICIgKyB0
ZXN0Q2FzZVRvU3RyaW5nKHRlc3RDYXNlKSk7Ci0gICAgdmFyIGRhdGEgPSB0ZXN0Q2FzZS53cmFw
cGVyLmRhdGE7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JV
RkZFUl9CSVQpOwotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIC8v
IEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAuCi0gICAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVy
cy4KLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIC8vIFNldCB1cCBwaXhlbCBz
dG9yZSBwYXJhbWV0ZXJzLgotICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBM
WV9BTFBIQV9XRUJHTCwgdGVzdENhc2UucHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgLy8gVXBsb2Fk
IHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0dXJlLgotICAgIGlmICh0ZXN0Q2FzZS51c2VUZXhTdWJJ
bWFnZTJEKSB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmly
c3QuCi0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgdGVzdENhc2UuZm9y
bWF0LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCAwLAotICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgbnVsbCk7Ci0gICAgfQotICAg
IHN3aXRjaCAodGVzdENhc2UuZGF0YU1vZGUpIHsKLSAgICBjYXNlIERhdGFNb2RlLklNQUdFOgot
ICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKLSAgICAgICAgaWYgKHRlc3RDYXNlLnVzZVRl
eFN1YkltYWdlMkQpCi0gICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIDAsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgZGF0YSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgdGVzdENh
c2UuZm9ybWF0LCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGRhdGEpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRBOgotICAgICAgICBpZiAodGVzdENh
c2UudXNlVGV4U3ViSW1hZ2UyRCkKLSAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwgMCwgdGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCwgdGVzdENh
c2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RD
YXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2Uu
dHlwZSwgZGF0YSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAvLyBQb2ludCB0aGUgdW5p
Zm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwLgotICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJl
TG9jLCAwKTsKLSAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMuCi0gICAgZ2wuZHJhd0FycmF5cyhn
bC5UUklBTkdMRVMsIDAsIDYpOwotICAgIC8vIENsZWFuIHVwIHRoZSB0ZXh0dXJlLgotICAgIGds
LmRlbGV0ZVRleHR1cmUodGV4dHVyZSk7Ci0KLSAgICAvLyBSZWFkIGJhY2sgdGhlIHJlbmRlcmlu
ZyByZXN1bHRzLgotICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh0ZXN0Q2FzZS53aWR0aCAq
IHRlc3RDYXNlLmhlaWdodCAqIDQpOwotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgdGVzdENhc2Uu
d2lkdGgsIHRlc3RDYXNlLmhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsK
LSAgICAvLyBSdW4gdGhlIHZlcmlmaWNhdGlvbiByb3V0aW5lLgotICAgIGlmICh0ZXN0Q2FzZS52
ZXJpZmllcihidWYsIHRlc3RDYXNlLnRocmVzaG9sZCwgdGVzdENhc2UubnVtT2NjdXJyZW5jZXMp
KQotICAgICAgICB0ZXN0UGFzc2VkKHRlc3RDYXNlLmRlc2NyaXB0aW9uKTsKLSAgICBlbHNlCi0g
ICAgICAgIHRlc3RGYWlsZWQodGVzdENhc2UuZGVzY3JpcHRpb24pOwotfQotCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLS8vIFdyYXBwZXJzIGZvciBwcm9ncmFtbWF0aWMgY29uc3RydWN0aW9uIG9mIEltYWdl
LCBJbWFnZURhdGEgYW5kIHJhdyB0ZXh0dXJlIGRhdGEKLS8vCi0KLWZ1bmN0aW9uIEltYWdlV3Jh
cHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIHRoaXMucG5nQnVpbGRlcl8gPSBuZXcgUE5HbGli
KHdpZHRoLCBoZWlnaHQsIDI1Nik7Ci19Ci0KLUltYWdlV3JhcHBlci5wcm90b3R5cGUuZ2V0V2lk
dGggPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5wbmdCdWlsZGVyXy53aWR0aDsKLX07
Ci0KLUltYWdlV3JhcHBlci5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7Ci0gICAg
cmV0dXJuIHRoaXMucG5nQnVpbGRlcl8uaGVpZ2h0OwotfTsKLQotSW1hZ2VXcmFwcGVyLnByb3Rv
dHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB0aGlzLnBu
Z0J1aWxkZXJfLmJ1ZmZlclt0aGlzLnBuZ0J1aWxkZXJfLmluZGV4KHgsIHkpXSA9IHRoaXMucG5n
QnVpbGRlcl8uY29sb3IociwgZywgYiwgYSk7Ci19OwotCi0vLyBHZW5lcmF0ZXMgZGF0YSBpbnRv
ICJkYXRhIiBwcm9wZXJ0eSwgcG9zc2libHkgYXN5bmNocm9ub3VzbHkuCi1JbWFnZVdyYXBwZXIu
cHJvdG90eXBlLmdlbmVyYXRlRGF0YSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciB0aGF0ID0gdGhp
czsKLSAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewotICAgICAgICB0aGF0LmRhdGEgPSBpbWc7Ci0gICAgICAgIG1heWJlUnVuVGVzdHMoKTsK
LSAgICB9OwotICAgIGltZy5zcmMgPSAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LCIgKyB0aGlzLnBu
Z0J1aWxkZXJfLmdldEJhc2U2NCgpOwotfTsKLQotZnVuY3Rpb24gSW1hZ2VEYXRhV3JhcHBlcih3
aWR0aCwgaGVpZ2h0KQotewotICAgIGlmICghSW1hZ2VEYXRhV3JhcHBlci50ZW1wQ2FudmFzKSB7
Ci0gICAgICAgIEltYWdlRGF0YVdyYXBwZXIudGVtcENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNhbnZhcyIpOwotICAgIH0KLSAgICB0aGlzLmltYWdlRGF0YV8gPSBJbWFnZURhdGFX
cmFwcGVyLnRlbXBDYW52YXMuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEod2lkdGgs
IGhlaWdodCk7Ci19Ci0KLUltYWdlRGF0YVdyYXBwZXIudGVtcENhbnZhcyA9IG51bGw7Ci0KLUlt
YWdlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0
dXJuIHRoaXMuaW1hZ2VEYXRhXy53aWR0aDsKLX07Ci0KLUltYWdlRGF0YVdyYXBwZXIucHJvdG90
eXBlLmdldEhlaWdodCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmltYWdlRGF0YV8u
aGVpZ2h0OwotfTsKLQotSW1hZ2VEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5j
dGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIGluZGV4ID0gNCAqICh0aGlzLmltYWdl
RGF0YV8ud2lkdGggKiB5ICsgeCk7Ci0gICAgdGhpcy5pbWFnZURhdGFfLmRhdGFbaW5kZXhdID0g
cjsKLSAgICB0aGlzLmltYWdlRGF0YV8uZGF0YVtpbmRleCArIDFdID0gZzsKLSAgICB0aGlzLmlt
YWdlRGF0YV8uZGF0YVtpbmRleCArIDJdID0gYjsKLSAgICB0aGlzLmltYWdlRGF0YV8uZGF0YVtp
bmRleCArIDNdID0gYTsKLX07Ci0KLUltYWdlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdlbmVyYXRl
RGF0YSA9IGZ1bmN0aW9uKCkgewotICAgIHRoaXMuZGF0YSA9IHRoaXMuaW1hZ2VEYXRhXzsKLSAg
ICBtYXliZVJ1blRlc3RzKCk7Ci19OwotCi1mdW5jdGlvbiBUZXh0dXJlRGF0YVdyYXBwZXIod2lk
dGgsIGhlaWdodCkKLXsKLSAgICB0aGlzLndpZHRoXyA9IHdpZHRoOwotICAgIHRoaXMuaGVpZ2h0
XyA9IGhlaWdodDsKLX0KLQotVGV4dHVyZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRXaWR0aCA9
IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLndpZHRoXzsKLX07Ci0KLVRleHR1cmVEYXRh
V3JhcHBlci5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRo
aXMuaGVpZ2h0XzsKLX07Ci0KLVRleHR1cmVEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2VuZXJhdGVE
YXRhID0gZnVuY3Rpb24oKSB7Ci0gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhXzsKLSAgICBtYXli
ZVJ1blRlc3RzKCk7Ci19OwotCi1mdW5jdGlvbiBSR0JBOERhdGFXcmFwcGVyKHdpZHRoLCBoZWln
aHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7
Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KDQgKiB3aWR0aCAqIGhlaWdodCk7Ci19
Ci0KLVJHQkE4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsK
LQotUkdCQThEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCBy
LCBnLCBiLCBhKSB7Ci0gICAgdmFyIGluZGV4ID0gNCAqICh0aGlzLndpZHRoXyAqIHkgKyB4KTsK
LSAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7Ci0gICAgdGhpcy5kYXRhX1tpbmRleCArIDFdID0g
ZzsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMl0gPSBiOwotICAgIHRoaXMuZGF0YV9baW5kZXgg
KyAzXSA9IGE7Ci19OwotCi1mdW5jdGlvbiBSR0JBNTU1MURhdGFXcmFwcGVyKHdpZHRoLCBoZWln
aHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7
Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50MTZBcnJheSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0K
LVJHQkE1NTUxRGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsK
LQotUkdCQTU1NTFEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5
LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjgpIDw8IDgpCi0gICAg
ICAgICAgICAgICAgIHwgKChnICYgMHhGOCkgPDwgMykKLSAgICAgICAgICAgICAgICAgfCAoKGIg
JiAweEY4KSA+PiAyKQotICAgICAgICAgICAgICAgICB8IChhID4+IDcpKTsKLSAgICB0aGlzLmRh
dGFfW3RoaXMud2lkdGhfICogeSArIHhdID0gdmFsdWU7Ci19OwotCi1mdW5jdGlvbiBSR0JBNDQ0
NERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNh
bGwodGhpcywgd2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50MTZBcnJh
eSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0KLVJHQkE0NDQ0RGF0YVdyYXBwZXIucHJvdG90eXBlID0g
bmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotUkdCQTQ0NDREYXRhV3JhcHBlci5wcm90b3R5cGUu
c2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIHZhbHVlID0g
KCgociAmIDB4RjApIDw8IDgpCi0gICAgICAgICAgICAgICAgIHwgKChnICYgMHhGMCkgPDwgNCkK
LSAgICAgICAgICAgICAgICAgfCAoYiAmIDB4RjApCi0gICAgICAgICAgICAgICAgIHwgKGEgPj4g
NCkpOwotICAgIHRoaXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0gPSB2YWx1ZTsKLX07Ci0K
LWZ1bmN0aW9uIFJHQjhEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIFRleHR1cmVE
YXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAgIHRoaXMuZGF0YV8gPSBu
ZXcgVWludDhBcnJheSgzICogd2lkdGggKiBoZWlnaHQpOwotfQotCi1SR0I4RGF0YVdyYXBwZXIu
cHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotUkdCOERhdGFXcmFwcGVyLnBy
b3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB2YXIg
aW5kZXggPSAzICogKHRoaXMud2lkdGhfICogeSArIHgpOwotICAgIHRoaXMuZGF0YV9baW5kZXhd
ID0gcjsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBnOwotICAgIHRoaXMuZGF0YV9baW5k
ZXggKyAyXSA9IGI7Ci19OwotCi1mdW5jdGlvbiBSR0I1NjVEYXRhV3JhcHBlcih3aWR0aCwgaGVp
Z2h0KQotewotICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQp
OwotICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDE2QXJyYXkod2lkdGggKiBoZWlnaHQpOwotfQot
Ci1SR0I1NjVEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFXcmFwcGVyOwot
Ci1SR0I1NjVEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCBy
LCBnLCBiLCBhKSB7Ci0gICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjgpIDw8IDgpCi0gICAgICAg
ICAgICAgICAgIHwgKChnICYgMHhGQykgPDwgMykKLSAgICAgICAgICAgICAgICAgfCAoKGIgJiAw
eEY4KSA+PiAzKSk7Ci0gICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IHZhbHVl
OwotfTsKLQotZnVuY3Rpb24gQThEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIFRl
eHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAgIHRoaXMuZGF0
YV8gPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0KLUE4RGF0YVdyYXBwZXIu
cHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotQThEYXRhV3JhcHBlci5wcm90
b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdGhpcy5k
YXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IGE7Ci19OwotCi1mdW5jdGlvbiBMOERhdGFXcmFw
cGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywg
d2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KHdpZHRoICog
aGVpZ2h0KTsKLX0KLQotTDhEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFX
cmFwcGVyOwotCi1MOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgs
IHksIHIsIGcsIGIsIGEpIHsKLSAgICB0aGlzLmRhdGFfW3RoaXMud2lkdGhfICogeSArIHhdID0g
cjsKLX07Ci0KLWZ1bmN0aW9uIExBOERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAg
VGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5k
YXRhXyA9IG5ldyBVaW50OEFycmF5KDIgKiB3aWR0aCAqIGhlaWdodCk7Ci19Ci0KLUxBOERhdGFX
cmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7Ci0KLUxBOERhdGFXcmFw
cGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAg
ICB2YXIgaW5kZXggPSAyICogKHRoaXMud2lkdGhfICogeSArIHgpOwotICAgIHRoaXMuZGF0YV9b
aW5kZXhdID0gcjsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBhOwotfTsKLQotLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0vLyBDb2xvciByYW1wIGdlbmVyYXRpb24gZnVuY3Rpb25zCi0vLwotCi1mdW5j
dGlvbiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAod3JhcHBlcikKLXsKLSAgICB2YXIgd2lk
dGggPSB3cmFwcGVyLmdldFdpZHRoKCk7Ci0gICAgdmFyIGhlaWdodCA9IHdyYXBwZXIuZ2V0SGVp
Z2h0KCk7Ci0gICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7Ci0gICAgICAgIHZh
ciB2YWx1ZSA9IE1hdGgucm91bmQoMjU1LjAgKiB4IC8gd2lkdGgpOwotICAgICAgICBmb3IgKHZh
ciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KQotICAgICAgICAgICAgd3JhcHBlci5zZXRQaXhlbCh4
LCB5LCB2YWx1ZSwgdmFsdWUsIHZhbHVlLCAyNTUpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZ2Vu
ZXJhdGVUcmFuc2x1Y2VudEdyYXlzY2FsZVJhbXAod3JhcHBlcikKLXsKLSAgICB2YXIgd2lkdGgg
PSB3cmFwcGVyLmdldFdpZHRoKCk7Ci0gICAgdmFyIGhlaWdodCA9IHdyYXBwZXIuZ2V0SGVpZ2h0
KCk7Ci0gICAgZm9yICh2YXIgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7Ci0gICAgICAgIHZhciB2
YWx1ZSA9IE1hdGgucm91bmQoMjU1LjAgKiB4IC8gd2lkdGgpOwotICAgICAgICBmb3IgKHZhciB5
ID0gMDsgeSA8IGhlaWdodDsgKyt5KQotICAgICAgICAgICAgd3JhcHBlci5zZXRQaXhlbCh4LCB5
LCB2YWx1ZSwgdmFsdWUsIHZhbHVlLCB2YWx1ZSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBnZW5l
cmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCh3cmFwcGVyKQotewotICAgIHZhciB3aWR0aCA9
IHdyYXBwZXIuZ2V0V2lkdGgoKTsKLSAgICB2YXIgaGVpZ2h0ID0gd3JhcHBlci5nZXRIZWlnaHQo
KTsKLSAgICBmb3IgKHZhciB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKLSAgICAgICAgdmFyIHZh
bHVlID0gTWF0aC5yb3VuZCgyNTUuMCAqIHggLyB3aWR0aCk7Ci0gICAgICAgIGZvciAodmFyIHkg
PSAwOyB5IDwgaGVpZ2h0OyArK3kpCi0gICAgICAgICAgICB3cmFwcGVyLnNldFBpeGVsKHgsIHks
IHZhbHVlLCB2YWx1ZSwgdmFsdWUsIDApOwotICAgIH0KLX0KLQotLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0v
LyBWZXJpZmljYXRpb24gcm91dGluZXMKLS8vCi0KLWZ1bmN0aW9uIGFsbENoYW5uZWxzSW5jcmVh
c2VCeU5vTW9yZVRoYW4oYXJyYXksIHRocmVzaG9sZCwgbnVtT2NjdXJyZW5jZXMpIHsKLSAgICB2
YXIgbnVtRm91bmQgPSAwOwotICAgIGZvciAodmFyIGkgPSA0OyBpIDwgYXJyYXkubGVuZ3RoOyBp
ICs9IDQpCi0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgNDsgaisrKQotICAgICAgICAgICAg
aWYgKGFycmF5W2kgKyBqXSAtIGFycmF5W2kgKyBqIC0gNF0gPiB0aHJlc2hvbGQpCi0gICAgICAg
ICAgICAgICAgKytudW1Gb3VuZDsKLQotICAgIHJldHVybiBudW1Gb3VuZCA8IG51bU9jY3VycmVu
Y2VzOwotfQotCi1mdW5jdGlvbiBhbHBoYUNoYW5uZWxJbmNyZWFzZXNCeU5vTW9yZVRoYW4oYXJy
YXksIHRocmVzaG9sZCwgbnVtT2NjdXJyZW5jZXMpIHsKLSAgICB2YXIgbnVtRm91bmQgPSAwOwot
ICAgIGZvciAodmFyIGkgPSA3OyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9IDQpCi0gICAgICAgIGlm
IChhcnJheVtpXSAtIGFycmF5W2kgLSA0XSA+IHRocmVzaG9sZCkKLSAgICAgICAgICAgICsrbnVt
Rm91bmQ7Ci0KLSAgICByZXR1cm4gbnVtRm91bmQgPCBudW1PY2N1cnJlbmNlczsKLX0KLQotZnVu
Y3Rpb24gYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5QXRMZWFzdChhcnJheSwgdGhyZXNob2xkLCBudW1P
Y2N1cnJlbmNlcykgewotICAgIHZhciBudW1Gb3VuZCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDQ7
IGkgPCBhcnJheS5sZW5ndGg7IGkgKz0gNCkKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA0
OyArK2opCi0gICAgICAgICAgICBpZiAoYXJyYXlbaSArIGpdIC0gYXJyYXlbaSArIGogLSA0XSA+
IHRocmVzaG9sZCkKLSAgICAgICAgICAgICAgICArK251bUZvdW5kOwotCi0gICAgcmV0dXJuIG51
bUZvdW5kID4gbnVtT2NjdXJyZW5jZXM7Ci19Ci0KLWZ1bmN0aW9uIGNvbG9yQ2hhbm5lbHNBcmVa
ZXJvKGFycmF5LCB0aHJlc2hvbGQsIG51bU9jY3VycmVuY2VzKSB7Ci0gICAgdmFyIHBhc3NlZCA9
IHRydWU7Ci0gICAgdmFyIG51bUZhaWx1cmVzID0gMDsKLQotICAgIGZvciAodmFyIGkgPSA0OyBp
IDwgYXJyYXkubGVuZ3RoOyBpICs9IDQpCi0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgMzsg
KytqKQotICAgICAgICAgICAgaWYgKGFycmF5W2kgKyBqXSAhPSAwKSB7Ci0gICAgICAgICAgICAg
ICAgcGFzc2VkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgaWYgKCsrbnVtRmFpbHVyZXMgPD0g
NSkKLSAgICAgICAgICAgICAgICAgICAgZGVidWcoIiAgYXJyYXlbIiArIChpICsgaikgKyAiXSBz
aG91bGQgaGF2ZSBiZWVuIDAsIHdhcyAiICsgYXJyYXlbaSArIGpdKTsKLSAgICAgICAgICAgIH0K
LQotICAgIHJldHVybiBwYXNzZWQ7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJpbml0KCkiPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIx
Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZhbGlkLWRhdGEuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtaW52YWxpZC1kYXRhLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MjNiZTI0YjRjYjMyZGFjNWIwZDc2Njg0ZWI1YzMxYzNl
MmRmNWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1pbnZhbGlkLWRhdGEuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEyOSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPnRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGVz
dHMgd2l0aCBpbnZhbGlkIGRhdGE8L3RpdGxlPgotICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPiA8L2NhbnZhcz4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWRlc2NyaXB0aW9uKCJ0ZXhJbWFnZTJEIGFu
ZCB0ZXhTdWJJbWFnZTJEIHRlc3RzIHdpdGggaW52YWxpZCBkYXRhIik7Ci0KLXZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2Fu
dmFzIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci1pZiAoIWdsKQot
ICB0ZXN0RmFpbGVkKCJDb250ZXh0IGNyZWF0ZWQuIik7Ci1lbHNlCi0gIHRlc3RQYXNzZWQoIkNv
bnRleHQgY3JlYXRlZC4iKTsKLQotdmFyIHRleDsKLQotZnVuY3Rpb24gc2V0dXAoKSB7Ci0gICAg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIGJ1ZzMyNjE5X3Rlc3RzLnRleCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0JBLCA2NCwgNjQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwp
OwotfQotCi1mdW5jdGlvbiB0ZWFyZG93bigpIHsKLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoZGVzYywgZnVuYywgZXhwZWN0ZWQpIHsKLSAgICBkZWJ1Zyhk
ZXNjKTsKLQotICAgIHZhciBleGMgPSBudWxsOwotICAgIHRyeSB7Ci0gICAgICAgIGZ1bmMoKTsK
LSAgICB9IGNhdGNoICh4KSB7Ci0gICAgICAgIGV4YyA9IHg7Ci0gICAgfQotCi0gICAgaWYgKGV4
cGVjdGVkID09IGdsLklOVkFMSURfT1BFUkFUSU9OKSB7Ci0gICAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGV4cGVjdGVkKTsKLSAgICB9IGVsc2UgaWYgKGV4cGVjdGVkID09ICJleGNlcHRpb24iKSB7
Ci0gICAgICAgIGlmIChleGMpIHsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoInRocmV3IGV4Y2Vw
dGlvbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24iKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotdGVzdCgiUGFzc2lu
ZyBhIGJ1ZmZlciBub3QgbGFyZ2UgZW5vdWdoIHRvIHRleEltYWdlMkQgc2hvdWxkIGdlbmVyYXRl
IGFuIElOVkFMSURfT1BFUkFUSU9OIiwKLSAgICAgZnVuY3Rpb24gKCkgewotICAgICB2YXIgdG9v
U21hbGwgPSBuZXcgVWludDhBcnJheSg2NCk7Ci0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgNjQsIDY0LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCB0b29TbWFsbCk7Ci0gICAgIH0sCi0gICAgIGdsLklOVkFMSURfT1BFUkFUSU9OKTsKLQotdGVz
dCgiUGFzc2luZyB0ZXhJbWFnZTJEIHBhcmFtZXRlciBkYXRhIG9mIE51bWJlciB0eXBlIHNob3Vs
ZCB0aHJvdyBhbiBleGNlcHRpb24iLAotICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgNjQsIDY0LCAwLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCA0Mik7Ci0gICAgIH0sCi0gICAgICJleGNlcHRpb24iKTsKLQotdGVz
dCgiUGFzc2luZyB0ZXhJbWFnZTJEIHBhcmFtZXRlciBkYXRhIG9mIFN0cmluZyB0eXBlIHNob3Vs
ZCB0aHJvdyBhIFR5cGVFcnJvciIsCi0gICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZ2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCA2NCwgNjQsIDAsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsICJub3QgYSBidWZmZXIiKTsKLSAgICAgfSwKLSAgICAgImV4Y2VwdGlv
biIpOwotdGVzdCgiUGFzc2luZyBhIGJ1ZmZlciBub3QgbGFyZ2UgZW5vdWdoIHRvIHRleFN1Yklt
YWdlMkQgc2hvdWxkIGdlbmVyYXRlIGFuIElOVkFMSURfT1BFUkFUSU9OIiwKLSAgICAgZnVuY3Rp
b24gKCkgewotICAgICAgICB2YXIgdG9vU21hbGwgPSBuZXcgVWludDhBcnJheSg2NCk7Ci0gICAg
ICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgNjQsIDY0LCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCB0b29TbWFsbCk7Ci0gICAgIH0sCi0gICAgIGdsLklOVkFM
SURfT1BFUkFUSU9OKTsKLQotdGVzdCgiUGFzc2luZyB0ZXhTdWJJbWFnZTJEIHBhcmFtZXRlciBk
YXRhIG9mIE51bWJlciB0eXBlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciIsCi0gICAgIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAw
LCA2NCwgNjQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIDQyKTsKLSAgICAgfSwKLSAgICAg
ImV4Y2VwdGlvbiIpOwotCi10ZXN0KCJQYXNzaW5nIHRleFN1YkltYWdlMkQgcGFyYW1ldGVyIGRh
dGEgb2YgU3RyaW5nIHR5cGUgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIiwKLSAgICAgZnVuY3Rp
b24gKCkgewotICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAs
IDY0LCA2NCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgIm5vdCBhIGJ1ZmZlciIpOwotICAg
ICB9LAotICAgICAiZXhjZXB0aW9uIik7Ci0KLWRlYnVnKCIiKTsKLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFsaWRhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5wdXQtdmFsaWRhdGlvbi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODNmY2JmYzFkZWY3ZTlkYzU5Y2ExMjE0MzUwMmZm
MTQwOGJiNTJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM4NCArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgot
Ki8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0
IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IG51bGw7Ci12YXIgdGV4ID0g
bnVsbDsKLXZhciBlcnJvciA9IDA7Ci0KLWZ1bmN0aW9uIGVudW1Ub1N0cmluZyh2YWx1ZSkgewot
ICByZXR1cm4gd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB2YWx1ZSk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RUZXhJbWFnZTJEKHRlc3RDYXNlKQotewotICAgIHZhciBsZXZlbCA9IDA7Ci0gICAgdmFyIHdp
ZHRoID0gMTY7Ci0gICAgdmFyIGhlaWdodCA9IDE2OwotICAgIHZhciBtc2cgPSAiIiArCi0gICAg
ICAiIGludGVybmFsRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmludGVybmFsRm9y
bWF0KSArCi0gICAgICAiIHRhcmdldDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS50YXJnZXQp
ICsKLSAgICAgICIgZm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmZvcm1hdCkgKwot
ICAgICAgIiB0eXBlOiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnR5cGUpICsKLSAgICAgICIg
Ym9yZGVyOiAiICsgdGVzdENhc2UuYm9yZGVyOwotCi0gICAgZ2wudGV4SW1hZ2UyRCh0ZXN0Q2Fz
ZS50YXJnZXQsIGxldmVsLCB0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dGVzdENhc2UuYm9yZGVyLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIG51bGwpOwot
ICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0VGV4U3ViSW1hZ2UyRCh0ZXN0Q2Fz
ZSkKLXsKLSAgICB2YXIgbGV2ZWwgPSAwOwotICAgIHZhciB4b2Zmc2V0ID0gMDsKLSAgICB2YXIg
eW9mZnNldCA9IDA7Ci0gICAgdmFyIHdpZHRoID0gMTY7Ci0gICAgdmFyIGhlaWdodCA9IDE2Owot
ICAgIHZhciBtc2cgPSAiIisKLSAgICAgICAgIiBmb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVz
dENhc2UuZm9ybWF0KSArCi0gICAgICAgICIgdHlwZTogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2Fz
ZS50eXBlKTsKLSAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAq
IDQpOwotICAgIGdsLnRleFN1YkltYWdlMkQodGVzdENhc2UudGFyZ2V0LCBsZXZlbCwgeG9mZnNl
dCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBl
LCBhcnJheSk7Ci0gICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVycm9yOwotICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RUZXhQYXJhbWV0
ZXIodGVzdENhc2UpCi17Ci0gICAgdmFyIG1zZyA9ICJwYXJhbU5hbWU6ICIgKyBlbnVtVG9TdHJp
bmcodGVzdENhc2UucG5hbWUpOwotICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsK
LSAgICBnbC50ZXhQYXJhbWV0ZXJpKHRlc3RDYXNlLnRhcmdldCwgdGVzdENhc2UucG5hbWUsIHRl
c3RDYXNlLnBhcmFtKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOwotICAg
IGdsLnRleFBhcmFtZXRlcmYodGVzdENhc2UudGFyZ2V0LCB0ZXN0Q2FzZS5wbmFtZSwgdGVzdENh
c2UucGFyYW0pOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RHZXRUZXhQYXJhbWV0ZXIodGVzdENhc2UpCi17Ci0gICAgdmFyIG1zZyA9ICJw
YXJhbU5hbWU6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UucG5hbWUpOwotICAgIGVycm9yID0g
dGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBnbC5nZXRUZXhQYXJhbWV0ZXIodGVzdENhc2Uu
dGFyZ2V0LCB0ZXN0Q2FzZS5wbmFtZSk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwg
bXNnKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvcHlUZXhJbWFnZTJEKHRlc3RDYXNlKQotewotICAg
IHZhciBsZXZlbCA9IDA7Ci0gICAgdmFyIHggPSAwOwotICAgIHZhciB5ID0gMDsKLSAgICB2YXIg
d2lkdGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0ID0gMTY7Ci0KLSAgICB2YXIgbXNnID0gIiIgKwot
ICAgICAgIiBjb2xvckJ1ZmZlckZvcm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5jb2xv
ckJ1ZmZlckZvcm1hdCkgKwotICAgICAgIiBpbnRlcm5hbEZvcm1hdDogIiArIGVudW1Ub1N0cmlu
Zyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCkgKwotICAgICAgIiB0YXJnZXQ6ICIgKyBlbnVtVG9T
dHJpbmcodGVzdENhc2UudGFyZ2V0KSArCi0gICAgICAiIGJvcmRlcjogIiArIHRlc3RDYXNlLmJv
cmRlcjsKLQotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0
Q2FzZS5jb2xvckJ1ZmZlckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgc2hvdWxkQmUoImdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIiwgImdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFIik7Ci0KLSAg
ICBnbC5jb3B5VGV4SW1hZ2UyRCh0ZXN0Q2FzZS50YXJnZXQsIGxldmVsLCB0ZXN0Q2FzZS5pbnRl
cm5hbEZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGVzdENhc2UuYm9yZGVyKTsKLSAgICBl
cnJvciA9IHRlc3RDYXNlLmV4cGVjdGVkRXJyb3I7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBl
cnJvciwgbXNnKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvcHlUZXhTdWJJbWFnZTJEKHRlc3RDYXNl
KQotewotICAgIHZhciBsZXZlbCA9IDA7Ci0gICAgdmFyIHggPSAwOwotICAgIHZhciB5ID0gMDsK
LSAgICB2YXIgd2lkdGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0ID0gMTY7Ci0gICAgdmFyIHhvZmZz
ZXQgPSAwOwotICAgIHZhciB5b2Zmc2V0ID0gMDsKLSAgICB2YXIgYm9yZGVyID0gMDsKLSAgICB2
YXIgdHlwZSA9IGdsLlVOU0lHTkVEX0JZVEU7Ci0gICAgdmFyIG1zZyA9ICIiICsKLSAgICAgICIg
Y29sb3JCdWZmZXJGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UuY29sb3JCdWZmZXJG
b3JtYXQpICsKLSAgICAgICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENh
c2UuaW50ZXJuYWxGb3JtYXQpICsKLSAgICAgICIgdGFyZ2V0OiAiICsgZW51bVRvU3RyaW5nKHRl
c3RDYXNlLnRhcmdldCk7Ci0KLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJV
RkZFUiwgdGVzdENhc2UuY29sb3JCdWZmZXJGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIHNob3VsZEJlKCJnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSIsICJnbC5GUkFNRUJVRkZFUl9DT01QTEVU
RSIpOwotCi0gICAgZ2wudGV4SW1hZ2UyRCh0ZXN0Q2FzZS50YXJnZXQsIGxldmVsLCB0ZXN0Q2Fz
ZS5pbnRlcm5hbEZvcm1hdCwgeG9mZnNldCArIHdpZHRoLCB5b2Zmc2V0ICsgaGVpZ2h0LCBib3Jk
ZXIsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB0eXBlLCBudWxsKTsKLSAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIGdsLmNvcHlUZXhTdWJJbWFnZTJEKHRlc3RD
YXNlLnRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQp
OwotICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29weUZyb21JbnRlcm5hbEZC
Tyh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgdGFyZ2V0ID0gZ2wuVEVYVFVSRV8yRDsKLSAgICB2YXIg
bGV2ZWwgPSAwOwotICAgIHZhciB4ID0gMDsKLSAgICB2YXIgeSA9IDA7Ci0gICAgdmFyIHdpZHRo
ID0gMTY7Ci0gICAgdmFyIGhlaWdodCA9IDE2OwotICAgIHZhciB4b2Zmc2V0ID0gMDsKLSAgICB2
YXIgeW9mZnNldCA9IDA7Ci0gICAgdmFyIGJvcmRlciA9IDA7Ci0gICAgdmFyIHR5cGUgPSBnbC5V
TlNJR05FRF9CWVRFOwotICAgIHZhciBtc2cgPSAiIiArCi0gICAgICAiIGNvbG9yQnVmZmVyRm9y
bWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmNvbnRleHRBbHBoYSA/IGdsLlJHQkEgOiBn
bC5SR0IpICsKLSAgICAgICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENh
c2UuaW50ZXJuYWxGb3JtYXQpOwotCi0gICAgaWYgKHRlc3RDYXNlLmNvbnRleHRBbHBoYSkKLSAg
ICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHsgYWxwaGE6IHRydWUgfSk7Ci0g
ICAgZWxzZQotICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQobnVsbCwgeyBhbHBoYTog
ZmFsc2UgfSk7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJnbCIpOwotICAgIHNob3VsZEJlTm9uTnVs
bCgidGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpIik7Ci0gICAgZ2wuYmluZFRleHR1cmUodGFyZ2V0
LCB0ZXgpOwotICAgIGlmICh0ZXN0Q2FzZS5zdWJJbWFnZSkgewotICAgICAgICBnbC50ZXhJbWFn
ZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4b2Zmc2V0ICsgd2lk
dGgsIHlvZmZzZXQgKyBoZWlnaHQsIGJvcmRlciwgdGVzdENhc2UuaW50ZXJuYWxGb3JtYXQsIHR5
cGUsIG51bGwpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAg
ICAgICAgZ2wuY29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNl
dCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIGdsLmNvcHlUZXhJbWFnZTJEKHRhcmdl
dCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBi
b3JkZXIpOwotICAgIH0KLSAgICBlcnJvciA9IHRlc3RDYXNlLmV4cGVjdGVkRXJyb3I7Ci0gICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0KLQotZGVzY3JpcHRpb24oIlZhbGlk
YXRlIHRleCBmdW5jdGlvbnMgaW5wdXQgcGFyYW1ldGVycyIpOwotCi1zaG91bGRCZU5vbk51bGwo
ImdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpIik7Ci1zaG91bGRCZU5vbk51bGwoInRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKSIpOwotZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsK
LWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1Zygi
Q2hlY2tpbmcgVGV4SW1hZ2UyRDogYSBzZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdM
IGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7Ci0KLXZhciB0ZXN0Q2FzZXMgPQotICBbIHt0YXJnZXQ6
IDB4ODA2NCwgLy8gR0xfUFJPWFlfVEVYVFVSRV8yRAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wu
UkdCQSwKLSAgICAgYm9yZGVyOiAwLAotICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHR5cGU6
IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0s
Ci0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IDB4MTkw
MywgLy8gR0xfUkVECi0gICAgIGJvcmRlcjogMCwKLSAgICAgZm9ybWF0OiAweDE5MDMsIC8vIEdM
X1JFRAotICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICBleHBlY3RlZEVycm9yOiBn
bC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGludGVy
bmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBib3JkZXI6IDEsCi0gICAgIGZvcm1hdDogZ2wuUkdC
QSwKLSAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wu
SU5WQUxJRF9WQUxVRX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgaW50ZXJu
YWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMCwKLSAgICAgZm9ybWF0OiBnbC5SR0Is
Ci0gICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklO
VkFMSURfT1BFUkFUSU9OfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBpbnRl
cm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgYm9yZGVyOiAwLAotICAgICBmb3JtYXQ6IGdsLlJH
QkEsCi0gICAgIHR5cGU6IGdsLkJZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURf
RU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6
IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMCwKLSAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICB0
eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0g
XTsKLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAg
dGVzdFRleEltYWdlMkQodGVzdENhc2VzW2lpXSk7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVj
a2luZyBUZXhTdWJJbWFnZTJEOiBhIHNldCBvZiBpbnB1dHMgdGhhdCBhcmUgdmFsaWQgaW4gR0wg
YnV0IGludmFsaWQgaW4gR0xFUzIiKTsKLQotdGVzdENhc2VzID0KLSAgWyB7dGFyZ2V0OiBnbC5U
RVhUVVJFXzJELAotICAgICBmb3JtYXQ6IDB4MTkwMywgLy8gR0xfUkVECi0gICAgIHR5cGU6IGds
LlVOU0lHTkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0g
ICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICB0
eXBlOiBnbC5CWVRFLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAg
IHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgdHlw
ZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9IF07
Ci0KLWZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQotICAgIHRl
c3RUZXhTdWJJbWFnZTJEKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hl
Y2tpbmcgVGV4UGFyYW1ldGVyOiBhIHNldCBvZiBpbnB1dHMgdGhhdCBhcmUgdmFsaWQgaW4gR0wg
YnV0IGludmFsaWQgaW4gR0xFUzIiKTsKLQotdGVzdENhc2VzID0KLSAgWyB7dGFyZ2V0OiAweDBE
RTAsIC8vIEdMX1RFWFRVUkVfMUQKLSAgICAgcG5hbWU6IGdsLlRFWFRVUkVfV1JBUF9ULAotICAg
ICBwYXJhbTogZ2wuUkVQRUFULAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19
LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIHBuYW1lOiAweDgxM0EsIC8vIEdM
X1RFWFRVUkVfTUlOX0xPRAotICAgICBwYXJhbTogMCwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wu
SU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBwbmFtZTog
Z2wuVEVYVFVSRV9XUkFQX1QsCi0gICAgIHBhcmFtOiAweDI5MDAsIC8vIEdMX0NMQU1QCi0gICAg
IGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVS
RV8yRCwKLSAgICAgcG5hbWU6IGdsLlRFWFRVUkVfV1JBUF9ULAotICAgICBwYXJhbTogZ2wuUkVQ
RUFULAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0gXTsKLQotZm9yICh2YXIgaWkg
PSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAgdGVzdFRleFBhcmFtZXRlcih0
ZXN0Q2FzZXNbaWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNraW5nIEdldFRleFBhcmFt
ZXRlcjogYSBzZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdMIGJ1dCBpbnZhbGlkIGlu
IEdMRVMyIik7Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge3RhcmdldDogMHgwREUwLCAvLyBHTF9URVhU
VVJFXzFECi0gICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKLSAgICAgZXhwZWN0ZWRFcnJv
cjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBw
bmFtZTogMHg4MTNBLCAvLyBHTF9URVhUVVJFX01JTl9MT0QKLSAgICAgZXhwZWN0ZWRFcnJvcjog
Z2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBwbmFt
ZTogZ2wuVEVYVFVSRV9XUkFQX1QsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9SfSBd
OwotCi1mb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytpaSkKLSAgICB0
ZXN0R2V0VGV4UGFyYW1ldGVyKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1ZygiIik7Ci1kZWJ1Zygi
Q2hlY2tpbmcgQ29weVRleEltYWdlMkQ6IGEgc2V0IG9mIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBp
biBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOwotCi12YXIgY29sb3JCdWZmZXIgPSBudWxsOwot
dmFyIGZibyA9IG51bGw7Ci0KLXNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSIpOwotZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotc2hv
dWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci1n
bC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotCi10ZXN0Q2FzZXMgPQotICBbIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0g
ICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCi0gICAgIGludGVybmFsRm9ybWF0OiAw
eDgwNTQsIC8vIEdMX1JHQjE2Ci0gICAgIGJvcmRlcjogMCwKLSAgICAgZXhwZWN0ZWRFcnJvcjog
Z2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBjb2xv
ckJ1ZmZlckZvcm1hdDogZ2wuUkdCNTY1LAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwK
LSAgICAgYm9yZGVyOiAxLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX1ZBTFVFfSwK
LSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBjb2xvckJ1ZmZlckZvcm1hdDogZ2wu
UkdCNTY1LAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgYm9yZGVyOiAwLAot
ICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09QRVJBVElPTn0sCi0gICAge3RhcmdldDog
Z2wuVEVYVFVSRV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJHQjU2NSwKLSAgICAg
aW50ZXJuYWxGb3JtYXQ6IGdsLlJHQiwKLSAgICAgYm9yZGVyOiAwLAotICAgICBleHBlY3RlZEVy
cm9yOiBnbC5OT19FUlJPUn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5s
ZW5ndGg7ICsraWkpCi0gICAgdGVzdENvcHlUZXhJbWFnZTJEKHRlc3RDYXNlc1tpaV0pOwotCi1k
ZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2tpbmcgQ29weVRleFN1YkltYWdlMkQ6IGEgc2V0IG9mIGlu
cHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOwotCi10ZXN0
Q2FzZXMgPQotICBbIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGNvbG9yQnVmZmVyRm9y
bWF0OiBnbC5SR0I1X0ExLAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0g
ICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCi0gICAgIGludGVybmFsRm9ybWF0OiBn
bC5SR0JBLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09QRVJBVElPTn0gXTsKLQot
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAgdGVzdENv
cHlUZXhTdWJJbWFnZTJEKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hl
Y2tpbmcgQ29weVRleHtTdWJ9SW1hZ2UyRDogY29weSBmcm9tIFdlYkdMIGludGVybmFsIGZyYW1l
YnVmZmVyIik7Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge2NvbnRleHRBbHBoYTogdHJ1ZSwKLSAgICAg
aW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHN1YkltYWdlOiBmYWxzZSwKLSAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9LAotICAgIHtjb250ZXh0QWxwaGE6IGZhbHNlLAotICAg
ICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgc3ViSW1hZ2U6IGZhbHNlLAotICAgICBl
eHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09QRVJBVElPTn0sCi0gICAge2NvbnRleHRBbHBoYTog
dHJ1ZSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHN1YkltYWdlOiB0cnVl
LAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0sCi0gICAge2NvbnRleHRBbHBoYTog
ZmFsc2UsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBzdWJJbWFnZTogdHJ1
ZSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9PUEVSQVRJT059IF07Ci0KLWZvciAo
dmFyIGlpID0gMDsgaWkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQotICAgIHRlc3RDb3B5RnJv
bUludGVybmFsRkJPKHRlc3RDYXNlc1tpaV0pOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTBkYWQ2NTQyOGYxMzQyZmJmMjkzZjE4ODVmZDBk
NDAzYTYyZTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0
IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQot
KiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRv
Ci0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQot
KiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFM
Uy4KLSovCi0KLS0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9InRlc3RiZWQi
IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0aD0i
MTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3Jp
cHRpb24oJ1Rlc3RzIHRleFN1YkltYWdlMkQgd2l0aCBiYWQgYXJndW1lbnRzJyk7Ci0KLXZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMi
KTsKLQotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgidGVzdGJlZCIpOwotdmFyIHRleCA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7
Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNldHVw
IHNob3VsZCBzdWNjZWVkIik7IAotCi1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IDAsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX1ZBTFVFLCAieSArIGhlaWdodCA+IHRleHR1cmUgaGVpZ2h0Iik7Ci1nbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAieCArIHdp
ZHRoID4gdGV4dHVyZSB3aWR0aCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAtMSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfVkFMVUUsICJuZWdhdGl2ZSB4Iik7Ci1nbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsIC0xLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5lZ2F0aXZlIHkiKTsKLWdsLnRl
eFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgLTEsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAibmVnYXRp
dmUgbGV2ZWwiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuRkxPQVQsIDAsIDAsMCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRU5V
TSwgImJhZCB0YXJnZXQiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwg
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiZ29vZCBhcmdzIik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3JtYXQgbm90IHNhbWUgYXMgb3JpZ2luYWwiKTsK
LWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9TSE9SVF80XzRfNF80LCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9P
UEVSQVRJT04sICJ0eXBlIG5vdCBzYW1lIGFzIG9yaWdpbmFsIik7Ci1nbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJtYWtlIHRleHR1cmUgUkdCIik7Ci1nbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9C
WVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJmb3JtYXQgc2FtZSBh
cyBvcmlnaW5hbCBSR0IiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCww
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sICJmb3JtYXQgbm90IHNhbWUgYXMgb3JpZ2luYWwgUkdCIik7Ci1n
bC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05F
RF9TSE9SVF81XzZfNSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLCAidHlwZSBub3Qgc2FtZSBhcyBvcmlnaW5hbCBSR0IiKTsKLWdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRf
NCwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAibWFrZSB0ZXh0dXJlIFJH
QkEgNF80XzRfNCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGMpOwotZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgImZvcm1hdCBzYW1lIGFzIG9yaWdpbmFsIFJHQkEgNF80XzRfNCIpOwot
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5TSUdO
RURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAi
Zm9ybWF0IG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQkEgNF80XzRfNCIpOwotZ2wudGV4U3ViSW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMp
OwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInR5cGUgbm90IHNh
bWUgYXMgb3JpZ2luYWwgUkdCQSA0XzRfNF80Iik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2UtMmQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5MWNmMDk2YTUzYTdkYjU5YTFlZDMzZWVlYzU5Njc5OWJmZTQxZDRmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICsw
LDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCB0ZXg7Ci12YXJ5aW5nIHZlYzIgdGV4
Q29vcmQ7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgZmxvYXQgaW50ZW5zaXR5ID0gdGV4dHVyZTJE
KHRleCwgdGV4Q29vcmQpLmE7Ci0gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChpbnRlbnNpdHksIGlu
dGVuc2l0eSwgaW50ZW5zaXR5LCAxLjApOwotfQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLTxib2R5
PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIxIj48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCdUZXN0cyB0ZXhTdWJJbWFnZTJE
IHVwbG9hZCBwYXRoIGZyb20gVWludDhBcnJheScpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci12YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLXZh
ciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKLWdsLmRpc2FibGUoZ2wuRElUSEVS
KTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICBnbCwKLSAgICBbd3R1LnNl
dHVwU2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlcihnbCksICJmc2hhZGVyIl0sCi0gICAgWyd2UG9z
aXRpb24nLCAndGV4Q29vcmQwJ10pOwotd3R1LnNldHVwVW5pdFF1YWQoZ2wpOwotdmFyIHRleHR1
cmVXaWR0aCA9IDI1NjsKLXZhciB0ZXh0dXJlSGVpZ2h0ID0gMTsKLQotdmFyIHRleHR1cmVMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotCi12YXIgdGV4dHVyZSA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1
cmUpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywg
Z2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLWdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsK
LS8vIEFsbG9jYXRlIHRoZSB0ZXh0dXJlIG9iamVjdAotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5BTFBIQSwgdGV4dHVyZVdpZHRoLCB0ZXh0dXJlSGVpZ2h0LCAwLCBnbC5BTFBI
QSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0vLyBQcmVwYXJlIHRoZSBpbWFnZSBkYXRhCi12
YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSh0ZXh0dXJlV2lkdGgpOwotZm9yICh2YXIgaSA9IDA7
IGkgPCB0ZXh0dXJlV2lkdGg7IGkrKykKLSAgICBhcnJheVtpXSA9IGk7Ci0vLyBGaWxsIHRoZSB0
ZXh0dXJlIG9iamVjdCB3aXRoIGRhdGEgLS0gdGhpcyBpcyBhY3R1YWxseSB0aGUgY29kZSBwYXRo
IGJlaW5nIHRlc3RlZAotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0
ZXh0dXJlV2lkdGgsIHRleHR1cmVIZWlnaHQsIGdsLkFMUEhBLCBnbC5VTlNJR05FRF9CWVRFLCBh
cnJheSk7Ci0KLS8vIENsZWFyIGFuZCBzZXQgdXAKLWdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9C
SVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOwotZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKLWdsLnVuaWZvcm0xaSh0ZXh0dXJl
TG9jLCAwKTsKLS8vIERyYXcgdGhlIHRleHR1cmUgdG8gdGhlIGZyYW1lIGJ1ZmZlcgotZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotCi0vLyBSZWFkIGJhY2sgdGhlIGZyYW1lIGJ1
ZmZlcgotdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHRleHR1cmVXaWR0aCAqIHRleHR1cmVIZWln
aHQgKiA0KTsKLWdsLnJlYWRQaXhlbHMoMCwgMCwgdGV4dHVyZVdpZHRoLCB0ZXh0dXJlSGVpZ2h0
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotCi0vLyBWZXJpZnkgdGhlIGZyYW1l
IGJ1ZmZlcidzIGNvbnRlbnRzCi12YXIgcGFzc2VkID0gdHJ1ZTsKLWZvciAodmFyIGkgPSAwOyBp
IDwgdGV4dHVyZVdpZHRoOyBpKyspIHsKLSAgICB2YXIgdmFsID0gaTsKLSAgICBpZiAoYnVmWzQg
KiBpICsgMF0gIT0gdmFsIHx8Ci0gICAgICAgIGJ1Zls0ICogaSArIDFdICE9IHZhbCB8fAotICAg
ICAgICBidWZbNCAqIGkgKyAyXSAhPSB2YWwpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgicGl4ZWwg
YXQgKCIgKyBpICsgIiwgMCkgd2FzICgiICsKLSAgICAgICAgICAgICAgICAgICBidWZbNCAqIGkg
KyAwXSArICIsICIgKwotICAgICAgICAgICAgICAgICAgIGJ1Zls0ICogaSArIDFdICsgIiwgIiAr
Ci0gICAgICAgICAgICAgICAgICAgYnVmWzQgKiBpICsgMl0gKyAiKSwgc2hvdWxkIGJlICgiICsK
LSAgICAgICAgICAgICAgICAgICB2YWwgKyAiLCAiICsgdmFsICsgIiwgIiArIHZhbCArICIpIik7
Ci0gICAgICAgIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLWlm
IChwYXNzZWQpCi0gICAgdGVzdFBhc3NlZCgiIik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc5YzQ0NTIzMzJiZWFiM2M2MDkzNjc2NTc4MjVmNjk4MjI4MDU3YWYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXhwYXJhbWV0ZXItdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjA2
ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioK
LSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAg
PHRpdGxlPldlYkdMIFRleFBhcmFtZXRlciBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci0gICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMi
PiA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZhczJkIiB3
aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC12ZXJ0ZXgiPgotdW5pZm9ybSBtYXQ0IHdvcmxkOwotYXR0cmlidXRlIHZlYzMg
dlBvc2l0aW9uOwotYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQwOwotdmFyeWluZyB2ZWMyIHRleENv
b3JkOwotdm9pZCBtYWluKCkKLXsKLSAgZ2xfUG9zaXRpb24gPSB3b3JsZCAqIHZlYzQodlBvc2l0
aW9uLCAxKTsKLSAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgdGV4OwotdmFyeWluZyB2ZWMyIHRleENv
b3JkOwotdm9pZCBtYWluKCkKLXsKLSAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHRleCwgdGV4
Q29vcmQpOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlv
biBpbml0KCkKLXsKLSAgZGVzY3JpcHRpb24oIlRlc3RzIFRleFBhcmFtZXRlciB3b3JrcyBhcyBl
eHBlY3RlZCIpOwotICBkZWJ1ZygiIik7Ci0KLSAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNhbnZhczJkIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZhczJkLmdldENvbnRl
eHQoIjJkIik7Ci0KLSAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICB2YXIgZ2wgPSB3dHUu
Y3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJv
Z3JhbShnbCwgWyJ2c2hhZGVyIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRpb24iLCAidGV4Q29vcmQw
Il0pOwotCi0gIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmlu
ZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEo
Ci0gICAgICBnbC5BUlJBWV9CVUZGRVIsCi0gICAgICBuZXcgRmxvYXQzMkFycmF5KFstMSwgMSww
LCAxLDEsMCwgLTEsLTEsMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLC0xLDAsIDEs
MSwwLCAgMSwtMSwwXSksCi0gICAgICBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KDApOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OwotICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wu
YnVmZmVyRGF0YSgKLSAgICAgIGdsLkFSUkFZX0JVRkZFUiwKLSAgICAgIG5ldyBGbG9hdDMyQXJy
YXkoWyAtMi41LC0yLjUsIDMuNSwtMi41LCAtMi41LDMuNSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtMi41LDMuNSwgMy41LC0yLjUsIDMuNSwzLjVdKSwKLSAgICAgIGdsLlNUQVRJQ19E
UkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7Ci0gIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICB2YXIgY29sb3JzID0g
WwotICAgICAgWzAsMjU1LDEyOCwyNTVdLAotICAgICAgWzEyOCw2NCwyNTUsMjU1XSwKLSAgICAg
IFsxOTIsMjU1LDY0LDI1NV0sCi0gICAgICBbMjAwLDAsMjU1LDI1NV1dOwotICB2YXIgdGV4UGFy
YW0gPSBbCi0gICAgZ2wuUkVQRUFULAotICAgIGdsLkNMQU1QX1RPX0VER0UsCi0gICAgZ2wuTUlS
Uk9SRURfUkVQRUFULAotICAgIGdsLlJFUEVBVF07Ci0KLSAgLy8gTWFrZSB0ZXh0dXJlcyBzZXR0
aW5nIHRoZSB0ZXh0dXJlIHBhcmFtZXRlcnMgZGlmZmVyZW50bHkgZWFjaCB0aW1lLi4KLSAgLy8g
VGhpcyB2ZXJpZmllcyBib3RoIHRoYXQgdGhlIHJlbmRlciBjb3JyZWN0IEFORCB0aGF0IHRleHR1
cmUgcGFyYW1ldGVycwotICAvLyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZXh0dXJlcywgbm90
IHdpdGggdGhlIHRleHR1cmUtdW5pdHMuCi0gIHZhciB0ZXh0dXJlcyA9IFtdOwotICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBjID0gY29sb3Jz
W2lpXTsKLSAgICBjdHgyZC5maWxsU3R5bGUgPQotICAgICAgICAicmdiYSgiICsgY1swXSArICIs
IiArIGNbMV0gKyAiLCIgKyBjWzJdICsgIiwiICsgY1szXSArICIpIjsKLSAgICBjdHgyZC5maWxs
UmVjdCgwLCAwLCAxLCAxKTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52
YXMyZCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01B
R19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCB0ZXhQYXJhbVtpaV0pOwotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIHRleFBh
cmFtW2lpXSk7Ci0gICAgdGV4dHVyZXNbaWldID0gdGV4OwotICB9Ci0KLSAgdmFyIHRleHR1cmVM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotICB2YXIgd29ybGRM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgIndvcmxkIik7Ci0KLSAgZ2wuY2xl
YXJDb2xvcigxLDEsMSwxKTsKLSAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRF
UFRIX0JVRkZFUl9CSVQpOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMubGVuZ3Ro
OyArK2lpKSB7Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBNYXRoLmZsb29yKGlp
IC8gMik7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZXNbaWldKTsK
LSAgICBnbC51bmlmb3JtTWF0cml4NGZ2KAotICAgICAgICB3b3JsZExvYywgZmFsc2UsCi0gICAg
ICAgIFswLjUsIDAsIDAsIDAsCi0gICAgICAgICAwLCAwLjUsIDAsIDAsCi0gICAgICAgICAwLCAw
LCAxLCAwLAotICAgICAgICAgLTAuNSArIHgsIC0wLjUgKyB5LCAwLCAxXSk7Ci0gICAgZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotICB9Ci0KLSAgdmFyIGJ1ZiA9IG5ldyBVaW50
OEFycmF5KDI0ICogMjQgKiA0KTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCAyNCwgMjQsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIHZhciBwYXNzZWQgPSB0cnVlOwotICBmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciB4ID0gaWkg
JSAyOwotICAgIHZhciB5ID0gTWF0aC5mbG9vcihpaSAvIDIpOwotICAgIHZhciBjID0gY29sb3Jz
W2lpXTsKLSAgICBmb3IgKHZhciB5eSA9IDA7IHl5IDwgMTI7ICsreXkpIHsKLSAgICAgIGZvciAo
dmFyIHh4ID0gMDsgeHggPCAxMjsgKyt4eCkgewotICAgICAgICB2YXIgZWMgPSBbMCwwLDAsMF07
Ci0gICAgICAgIHN3aXRjaCAodGV4UGFyYW1baWldKSB7Ci0gICAgICAgICAgY2FzZSBnbC5SRVBF
QVQ6Ci0gICAgICAgICAgICBpZiAoeHggJSAyID09IDEgJiYgeXkgJSAyID09IDApIHsKLSAgICAg
ICAgICAgICAgZWMgPSBjOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgY2FzZSBnbC5DTEFNUF9UT19FREdFOgotICAgICAgICAgICAgaWYgKHh4IDwgNiAmJiB5
eSA+PSA2KSB7Ci0gICAgICAgICAgICAgIGVjID0gYzsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgZ2wuTUlSUk9SRURfUkVQRUFUOgotICAgICAgICAg
ICAgaWYgKHh4ICUgNCA8IDIgJiYgeXkgJSA0ID49IDIpIHsKLSAgICAgICAgICAgICAgZWMgPSBj
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
dmFyIG9mZiA9ICgoeSAqIDEyICsgeXkpICogMjQgKyB4ICogMTIgKyB4eCkgKiA0OwotICAgICAg
ICBpZiAoYnVmW29mZiArIDBdICE9IGVjWzBdIHx8Ci0gICAgICAgICAgICBidWZbb2ZmICsgMV0g
IT0gZWNbMV0gfHwKLSAgICAgICAgICAgIGJ1ZltvZmYgKyAyXSAhPSBlY1syXSB8fAotICAgICAg
ICAgICAgYnVmW29mZiArIDNdICE9IGVjWzNdKSB7Ci0gICAgICAgICAgdmFyIG1zZyA9ICdhdCAo
JyArICh4ICogMTIgKyB4eCkgKyAnLCAnICsgKHkgKiAxMiArIHl5KSArCi0gICAgICAgICAgICAg
ICcpIGV4cGVjdGVkOiAnICsKLSAgICAgICAgICAgICAgZWNbMF0gKyAnLCAnICsgZWNbMV0gKyAn
LCAnICsgZWNbMl0gKyAnLCAnICsgZWNbM10gKyAnIGZvdW5kOiAnICsKLSAgICAgICAgICAgICAg
YnVmW29mZiArIDBdICsgJywgJyArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAxXSArICcsICcg
KwotICAgICAgICAgICAgICBidWZbb2ZmICsgMl0gKyAnLCAnICsKLSAgICAgICAgICAgICAgYnVm
W29mZiArIDNdOwotICAgICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLSAgICAgICAgICBwYXNzZWQg
PSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgfQotICBpZiAocGFzc2VkKSB7
Ci0gICAgdGVzdFBhc3NlZCgicmVuZGVyZWQgYXMgZXhwZWN0ZWQiKTsKLSAgIH0KLX0KLQotaW5p
dCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5
PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtYWN0aXZlLWJpbmQtMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJl
LWFjdGl2ZS1iaW5kLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjk5NjIy
MTVjOGFjMjVmNGI2ODNhYTg3NGYzZGQxNzFjNjczZGEwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtYWN0aXZlLWJpbmQtMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTkyICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLSAgPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPldlYkdM
IEFjdGl2ZVRleHR1cmUgQmluZFRleHR1cmUgY29uZm9ybWFuY2UgdGVzdCAjMjwvdGl0bGU+Ci0g
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPiA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7
Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZhczJkIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBz
dHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0IGlkPSJ2
c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci11bmlmb3JtIG1hdDQgd29ybGQ7Ci1h
dHRyaWJ1dGUgdmVjMyB2UG9zaXRpb247Ci1hdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZDA7Ci12YXJ5
aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICBnbF9Qb3NpdGlvbiA9IHdvcmxk
ICogdmVjNCh2UG9zaXRpb24sIDEpOwotICB0ZXhDb29yZCA9IHRleENvb3JkMDsKLX0KLTwvc2Ny
aXB0PgotPHNjcmlwdCBpZD0iZnNoYWRlcjJkIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
LXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCB0ZXgyZDsKLXZh
cnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gIGdsX0ZyYWdDb2xvciA9IHRl
eHR1cmUyRCh0ZXgyZCwgdGV4Q29vcmQpOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJmc2hh
ZGVyQ3ViZSIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXhDdWJlOwotdm9pZCBtYWluKCkKLXsKLSAg
Z2xfRnJhZ0NvbG9yID0gdGV4dHVyZUN1YmUodGV4Q3ViZSwgdmVjMygwLDEsMCkpOwotfQotPC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiBpbml0KCkKLXsKLSAg
ZGVzY3JpcHRpb24oCi0gICAgICAiVGVzdHMgdGhhdCBiaW5kaW5nIGJvdGggVEVYVFVSRV8yRCBh
bmQgVEVYVFVSRV9DVUJFX01BUCB0byB0aGUgc2FtZSIgKwotICAgICAgImFjdGl2ZSB0ZXh0dXJl
IHVuaXQgd29ya3MgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgdXNlZCIgKwotICAgICAgInNpbXVs
dGFuZW91c2x5IGluIHRoZSBzYW1lIHNoYWRlciBwcm9ncmFtLiIpOwotCi0gIHZhciBjYW52YXMy
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIpOwotICB2YXIgY3R4MmQgPSBj
YW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotICBjdHgyZC5nbG9iYWxDb21wb3NpdGVPcGVyYXRp
b24gPSAiY29weSI7Ci0KLSAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICB2YXIgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVw
UHJvZ3JhbSgKLSAgICAgIGdsLCBbInZzaGFkZXIiLCAiZnNoYWRlcjJkIl0sIFsidlBvc2l0aW9u
IiwgInRleENvb3JkMCJdKTsKLQotICB2YXIgcHJvZ3JhbTJkID0gcHJvZ3JhbTsKLSAgdmFyIHBy
b2dyYW1DdWJlID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLCBbInZzaGFkZXIiLCAiZnNo
YWRlckN1YmUiXSwgWyJ2UG9zaXRpb24iLCAidGV4Q29vcmQwIl0pOwotCi0gIHZhciB2ZXJ0ZXhP
YmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZG
RVIsIHZlcnRleE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEoCi0gICAgICBnbC5BUlJBWV9CVUZG
RVIsCi0gICAgICBuZXcgRmxvYXQzMkFycmF5KFstMSwgMSwwLCAxLDEsMCwgLTEsLTEsMCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIC0xLC0xLDAsIDEsMSwwLCAgMSwtMSwwXSksCi0gICAgICBn
bC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwotICBnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0KLSAgdmFy
IHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0YSgKLSAgICAgIGdsLkFS
UkFZX0JVRkZFUiwKLSAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAsIDEsMCwgMCwxLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsMSwgMSwwLCAxLDFdKSwKLSAgICAgIGdsLlNUQVRJQ19E
UkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7Ci0gIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICAvLyBNYWtlIHRleHR1
cmUgdW5pdCAxIGFjdGl2ZS4KLSAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMSk7Ci0KLSAg
Ly8gTWFrZSBhIDJkIHRleHR1cmUKLSAgdmFyIHRleDJkID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwot
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgyZCk7Ci0gIGN0eDJkLmZpbGxTdHls
ZSA9ICJyZ2JhKDAsIDAsIDI1NSwgMjU1KSI7Ci0gIGN0eDJkLmZpbGxSZWN0KDAsIDAsIDEsIDEp
OwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLQotICAvLyBtYWtlIGEgY3ViZSB0ZXh0dXJlCi0g
IHZhciB0ZXhDdWJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlKTsKLSAgY3R4MmQuZmlsbFN0eWxlID0gInJnYmEoMjU1
LCAwLCAyNTUsIDI1NSkiOwotICBjdHgyZC5maWxsUmVjdCgwLCAwLCAxLCAxKTsKLSAgdmFyIHRh
cmdldHMgPSBbCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lU
SVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1pdOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGFyZ2V0cy5sZW5ndGg7ICsraWkpIHsKLSAg
ICBnbC50ZXhJbWFnZTJEKHRhcmdldHNbaWldLCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjYW52YXMyZCk7Ci0gIH0KLQotICAvLyBTZXR1cCBwcm9ncmFtMmQgYW5kIHBy
b2dyYW1DdWJlCi0gIHZhciB0ZXgyZExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
MmQsICJ0ZXgyZCIpOwotICB2YXIgd29ybGQyZExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihw
cm9ncmFtMmQsICJ3b3JsZCIpOwotICB2YXIgdGV4Q3ViZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihwcm9ncmFtQ3ViZSwgInRleEN1YmUiKTsKLSAgdmFyIHdvcmxkQ3ViZUxvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtQ3ViZSwgIndvcmxkIik7Ci0KLSAgZ2wudXNlUHJvZ3Jh
bShwcm9ncmFtMmQpOwotICBnbC51bmlmb3JtMWkodGV4MmRMb2MsIDEpOwotICBnbC51c2VQcm9n
cmFtKHByb2dyYW1DdWJlKTsKLSAgZ2wudW5pZm9ybTFpKHRleEN1YmVMb2MsIDEpOwotCi0gIGds
LmNsZWFyQ29sb3IoMSwwLDAsMSk7Ci0gIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBn
bC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICB2YXIgcHJvZ3JhbXMgPSBbcHJvZ3JhbTJkLCBwcm9n
cmFtQ3ViZV07Ci0gIHZhciB3b3JsZExvY3MgPSBbd29ybGQyZExvYywgd29ybGRDdWJlTG9jXTsK
LSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDQ7ICsraWkpIHsKLSAgICB2YXIgeCA9IGlpICUgMjsK
LSAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAyKTsKLSAgICBnbC51c2VQcm9ncmFtKHByb2dy
YW1zW3hdKTsKLSAgICBnbC51bmlmb3JtTWF0cml4NGZ2KAotICAgICAgICB3b3JsZExvY3NbeF0s
IGZhbHNlLAotICAgICAgICBbMC41LCAwLCAwLCAwLAotICAgICAgICAgMCwgMC41LCAwLCAwLAot
ICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgIC0wLjUgKyB4LCAtMC41ICsgeSwgMCwgMV0p
OwotICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLSAgfQotCi0gIHZhciBj
b2xvcnMgPSBbCi0gICAgICBbMCwwLDI1NSwyNTVdLAotICAgICAgWzI1NSwwLDI1NSwyNTVdLAot
ICAgICAgWzAsMCwyNTUsMjU1XSwKLSAgICAgIFsyNTUsMCwyNTUsMjU1XV07Ci0KLSAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgYyA9IGNvbG9y
c1tpaV07Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBNYXRoLmZsb29yKGlpIC8g
Mik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgeCwgeSwgMSwgMSwgYyk7Ci0gIH0KLX0K
LQotaW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQot
PC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1hY3RpdmUtYmluZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjlh
NzkyMTU0ODRhNWI5ZDA4ZWM4MmRiZGM1YjE5MzZiOWYyM2MwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1hY3RpdmUtYmluZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU3ICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIEFjdGl2
ZVRleHR1cmUgQmluZFRleHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBz
dHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0i
Y2FudmFzMmQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0
OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
dmVydGV4Ij4KLXVuaWZvcm0gbWF0NCB3b3JsZDsKLWF0dHJpYnV0ZSB2ZWMzIHZQb3NpdGlvbjsK
LWF0dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQg
bWFpbigpCi17Ci0gIGdsX1Bvc2l0aW9uID0gd29ybGQgKiB2ZWM0KHZQb3NpdGlvbiwgMSk7Ci0g
IHRleENvb3JkID0gdGV4Q29vcmQwOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJp
Y3QiOwotdmFyIGdsOwotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAgZGVzY3JpcHRpb24oCi0gICAg
ICAiVGVzdHMgdGhhdCBnbEFjdGl2ZVRleHR1cmUgYW5kIGdsQmluZFRleHR1cmUgd29yayBhcyBl
eHBlY3RlZCIgKwotICAgICAgIlNwZWNpZmljYWxseSB0ZXh0dXJlIHRhcmdldHMgYXJlIHBlciBh
Y3RpdmUgdGV4dHVyZSB1bml0LiIpOwotCi0gIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjYW52YXMyZCIpOwotICB2YXIgY3R4MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0
KCIyZCIpOwotCi0gIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgK
LSAgICAgIGdsLAotICAgICAgWyJ2c2hhZGVyIiwgd3R1LnNldHVwU2ltcGxlVGV4dHVyZUZyYWdt
ZW50U2hhZGVyKGdsKV0sCi0gICAgICBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSk7Ci0gIHd0
dS5zZXR1cFVuaXRRdWFkKGdsKTsKLSAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLSAgZ2wu
ZGlzYWJsZShnbC5CTEVORCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
Ci0gIHZhciBjb2xvcnMgPSBbCi0gICAgICBbMCwxOTIsMTI4LDI1NV0sCi0gICAgICBbMTI4LDY0
LDI1NSwyNTVdLAotICAgICAgWzE5MiwyNTUsNjQsMjU1XSwKLSAgICAgIFsyMDAsMCwyNTUsMjU1
XV07Ci0KLSAgLy8gTWFrZSA0IHRleHR1cmVzIGJ5IHVzaW5nIDQgYWN0aXZlIHRleHR1cmUgdW5p
dHMgaWYgYXZhaWxhYmxlLgotICB2YXIgdGV4dW5pdHMgPSBNYXRoLm1pbihjb2xvcnMubGVuZ3Ro
LCBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMpKQot
ICB2YXIgdGV4dHVyZXMgPSBbXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRleHVuaXRzOyAr
K2lpKSB7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5hY3RpdmVU
ZXh0dXJlKGdsLlRFWFRVUkUwICsgaWkpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleCk7Ci0gICAgdGV4dHVyZXNbaWldID0gdGV4OwotICB9Ci0gIGdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gIC8vIG5vdyB1c2UgZWFjaCB0ZXh0dXJlIHVuaXQgdG8g
d3JpdGUgaW50byB0aGUgdGV4dHVyZXMsCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXh1bml0
czsgKytpaSkgewotICAgIHZhciBjID0gY29sb3JzW2lpXTsKLSAgICBjdHgyZC5maWxsU3R5bGUg
PQotICAgICAgICAicmdiYSgiICsgY1swXSArICIsIiArIGNbMV0gKyAiLCIgKyBjWzJdICsgIiwi
ICsgY1szXSArICIpIjsKLSAgICBjdHgyZC5maWxsUmVjdCgwLCAwLCAxLCAxKTsKLSAgICBnbC5h
Y3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsgaWkpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQp
OwotICB9Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gIHZhciB0ZXh0
dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgdmFyIHdv
cmxkTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ3b3JsZCIpOwotICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICBnbC5jbGVhckNvbG9yKDEsMCwwLDEp
OwotICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7
Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRleHVuaXRzOyArK2lpKSB7Ci0gICAgdmFyIHgg
PSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBNYXRoLmZsb29yKGlpIC8gMik7Ci0gICAgZ2wudW5pZm9y
bTFpKHRleHR1cmVMb2MsIGlpKTsKLSAgICBnbC51bmlmb3JtTWF0cml4NGZ2KAotICAgICAgICB3
b3JsZExvYywgZmFsc2UsCi0gICAgICAgIFswLjUsIDAsIDAsIDAsCi0gICAgICAgICAwLCAwLjUs
IDAsIDAsCi0gICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgLTAuNSArIHgsIC0wLjUgKyB5
LCAwLCAxXSk7Ci0gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotICB9Ci0g
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gIGZvciAodmFyIGlpID0gMDsg
aWkgPCB0ZXh1bml0czsgKytpaSkgewotICAgIHZhciBjID0gY29sb3JzW2lpXTsKLSAgICB2YXIg
eCA9IGlpICUgMjsKLSAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAyKTsKLSAgICB2YXIgYnVm
ID0gbmV3IFVpbnQ4QXJyYXkoNCk7Ci0gICAgZ2wucmVhZFBpeGVscyh4LCB5LCAxLCAxLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIHZhciBtc2cgPSAnZXhwZWN0ZWQ6JyAr
Ci0gICAgICAgIGNbMF0gKyAnLCAnICsgY1sxXSArICcsICcgKyBjWzJdICsgJywgJyArIGNbM10g
KyAnIGZvdW5kOiAnICsKLSAgICAgICAgYnVmWzBdICsgJywgJyArCi0gICAgICAgIGJ1ZlsxXSAr
ICcsICcgKwotICAgICAgICBidWZbMl0gKyAnLCAnICsKLSAgICAgICAgYnVmWzNdOwotICAgIGlm
IChidWZbMF0gIT0gY1swXSB8fAotICAgICAgICBidWZbMV0gIT0gY1sxXSB8fAotICAgICAgICBi
dWZbMl0gIT0gY1syXSB8fAotICAgICAgICBidWZbM10gIT0gY1szXSkKLSAgICAgIHRlc3RGYWls
ZWQobXNnKTsKLSAgICBlbHNlCi0gICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gIH0KLX0KLQotaW5p
dCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2Jv
ZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1hdHRhY2htZW50LWZvcm1hdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4dHVyZS1hdHRhY2htZW50LWZvcm1hdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmE5YTI4ZDMyOTdlZDY4ZGUwNGNlODBkMDYzMDU2YTJjYzI5NzQ0OS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxOTkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0q
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
Ci0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+V2ViR0wgVGV4dHVyZSBBdHRhY2htZW50IEZvcm1hdCBDb25mb3JtYW5jZSBUZXN0czwv
dGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIy
IiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDoxMDBweDsgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7Ij4gPC9jYW52YXM+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVz
Y3JpcHRpb24oKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dCgiY2FudmFzIik7Ci1pZiAoIWdsKSB7Ci0gIHRlc3RGYWlsZWQoImNvbnRl
eHQgZG9lcyBub3QgZXhpc3QiKTsKLX0gZWxzZSB7Ci0gIHRlc3RQYXNzZWQoImNvbnRleHQgZXhp
c3RzIik7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiQ2hlY2tpbmcgdGV4dHVyZSBmb3JtYXRz
LiIpOwotCi0gIHZhciBudW1WYWxpZEZvcm1hdHMgPSAwOwotICB2YXIgY2xlYXJDb2xvciA9IFsw
LjI1LCAwLjUsIDAuNzUsIDAuMjVdOwotCi0gIHZhciBmbG9hdFRvQml0cyA9IGZ1bmN0aW9uKHZh
bHVlLCBiaXRzKSB7Ci0gICAgdmFyIHJhbmdlID0gKDEgPDwgYml0cykgLSAxOwotICAgIHZhciBy
ZXN1bHQgPSAwOwotICAgIGlmIChyYW5nZSA+IDApIHsKLSAgICAgIHJlc3VsdCA9IE1hdGguZmxv
b3IoTWF0aC5mbG9vcih2YWx1ZSAqIHJhbmdlKSAqIDI1NSAvIHJhbmdlKTsKLSAgICB9Ci0KLSAg
ICAvL2RlYnVnKCJ2ID0gIiArIHZhbHVlICsgIiwgYml0cyA9ICIgKyBiaXRzICsgIiwgcmFuZ2Ug
PSAiICsgcmFuZ2UgICsgIiwgcmVzdWx0ID0gIiArIHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLSAgfQotCi0gIHZhciB0ZXN0Rm9ybWF0ID0gZnVuY3Rpb24oaW5mbykgewotICAgIGRlYnVn
KCIiKTsKLSAgICBkZWJ1ZygidGVzdGluZzogIiArIGluZm8uZm9ybWF0ICsgIiwgIiArIGluZm8u
dHlwZSk7Ci0KLSAgICB2YXIgZm9ybWF0ID0gZ2xbaW5mby5mb3JtYXRdOwotICAgIHZhciB0eXBl
ID0gZ2xbaW5mby50eXBlXTsKLQotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwKLSAg
ICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAvLyBsZXZlbAotICAgICAgICAgICAg
ICAgICAgZm9ybWF0LCAgICAgICAgICAgIC8vIGludGVybmFsRm9ybWF0Ci0gICAgICAgICAgICAg
ICAgICAxNiwgICAgICAgICAgICAgICAgLy8gd2lkdGgKLSAgICAgICAgICAgICAgICAgIDE2LCAg
ICAgICAgICAgICAgICAvLyBoZWlnaHQKLSAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAg
ICAgICAvLyBib3JkZXIKLSAgICAgICAgICAgICAgICAgIGZvcm1hdCwgICAgICAgICAgICAvLyBm
b3JtYXQKLSAgICAgICAgICAgICAgICAgIHR5cGUsICAgICAgICAgICAgICAvLyB0eXBlCi0gICAg
ICAgICAgICAgICAgICBudWxsKTsgICAgICAgICAgICAgLy8gZGF0YQotICAgIHZhciBmYlN0YXR1
cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwotICAgIGRlYnVn
KHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgZmJTdGF0dXMpKTsKLSAgICBpZiAoZmJTdGF0dXMgIT0g
Z2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgIGRlYnVnKCJmb3JtYXQgdW5zdXBwb3J0
ZWQiKTsKLSAgICAgIGlmIChpbmZvLm11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGUpIHsKLSAgICAg
ICAgdGVzdEZhaWxlZChpbmZvLmZvcm1hdCArICIgbXVzdCBiZSBGUkFNRUJVRkZFUl9DT01QTEVU
RSIpOwotICAgICAgfQotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgICsrbnVtVmFsaWRGb3Jt
YXRzOwotCi0gICAgdmFyIHN0YXJ0RXhwZWN0ZWQgPSBbMCwgMCwgMCwgaW5mby5jaGFubmVsc1sz
XSA8IDAgPyAyNTUgOiAwXTsKLQotICAgIHZhciBleHBlY3RlZCA9IFtdOwotICAgIHZhciB0b2xl
cmFuY2UgPSBbXTsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgNDsgKytpaSkgewotICAgICAg
dmFyIGNvbG9yID0gMDsKLSAgICAgIHZhciBjaGFubmVsID0gaW5mby5jaGFubmVsc1tpaV07Ci0g
ICAgICBpZiAoY2hhbm5lbCA8IDApIHsKLSAgICAgICAgY29sb3IgPSBpaSA8IDMgPyAwIDogMjU1
Ci0gICAgICB9IGVsc2UgewotICAgICAgICBjb2xvciA9IGZsb2F0VG9CaXRzKGNsZWFyQ29sb3Jb
Y2hhbm5lbF0sIGluZm8uYml0c1tpaV0pOwotICAgICAgfQotICAgICAgZXhwZWN0ZWQucHVzaChj
b2xvcik7Ci0gICAgICB0b2xlcmFuY2UucHVzaChjaGFubmVsIDwgMCA/IDAgOiAoMSArICgxIDw8
ICg4IC0gaW5mby5iaXRzW2lpXSkpKSk7Ci0gICAgfQotCi0gICAgd3R1LmNoZWNrQ2FudmFzKGds
LCBzdGFydEV4cGVjdGVkLCAic2hvdWxkIGJlICIgKyBzdGFydEV4cGVjdGVkKTsKLSAgICBnbC5j
bGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLSAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGV4cGVj
dGVkLCAic2hvdWxkIGJlICIgKyBleHBlY3RlZCArICIgd2l0aCB0b2xlcmFuY2UgIiArIHRvbGVy
YW5jZSwgdG9sZXJhbmNlKTsKLSAgfQotCi0gIHZhciB2YWxpZEZvcm1hdHMgPSBbCi0gICAgeyBm
b3JtYXQ6ICdSR0JBJywKLSAgICAgIHR5cGU6ICAnVU5TSUdORURfQllURScsCi0gICAgICBjaGFu
bmVsczogWzAsIDEsIDIsIDNdLAotICAgICAgYml0czogWzgsIDgsIDgsIDhdLAotICAgICAgbXVz
dEJlRnJhbWVidWZmZXJDb21wbGV0ZTogdHJ1ZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdBTFBI
QScsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAgY2hhbm5lbHM6IFstMSwg
LTEsIC0xLCAzXSwKLSAgICAgIGJpdHM6IFswLCAwLCAwLCA4XSwKLSAgICAgIG11c3RCZUZyYW1l
YnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1hdDogJ1JHQicsCi0gICAg
ICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAgY2hhbm5lbHM6IFswLCAxLCAyLCAtMV0s
Ci0gICAgICBiaXRzOiBbOCwgOCwgOCwgMF0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBs
ZXRlOiBmYWxzZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdSR0InLAotICAgICAgdHlwZTogICdV
TlNJR05FRF9TSE9SVF81XzZfNScsCi0gICAgICBjaGFubmVsczogWzAsIDEsIDIsIC0xXSwKLSAg
ICAgIGJpdHM6IFs1LCA2LCA1LCAwXSwKLSAgICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6
IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1hdDogJ1JHQkEnLAotICAgICAgdHlwZTogICdVTlNJ
R05FRF9TSE9SVF81XzVfNV8xJywKLSAgICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgM10sCi0gICAg
ICBiaXRzOiBbNSwgNSwgNSwgMV0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBm
YWxzZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdSR0JBJywKLSAgICAgIHR5cGU6ICAnVU5TSUdO
RURfU0hPUlRfNF80XzRfNCcsCi0gICAgICBjaGFubmVsczogWzAsIDEsIDIsIDNdLAotICAgICAg
Yml0czogWzQsIDQsIDQsIDRdLAotICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFs
c2UKLSAgICB9LAotICAgIHsgZm9ybWF0OiAnTFVNSU5BTkNFJywKLSAgICAgIHR5cGU6ICAnVU5T
SUdORURfQllURScsCi0gICAgICBjaGFubmVsczogWzAsIDAsIDAsIC0xXSwKLSAgICAgIGJpdHM6
IFs4LCA4LCA4LCAtMV0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQot
ICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdMVU1JTkFOQ0VfQUxQSEEnLAotICAgICAgdHlwZTogICdV
TlNJR05FRF9CWVRFJywKLSAgICAgIGNoYW5uZWxzOiBbMCwgMCwgMCwgM10sCi0gICAgICBiaXRz
OiBbOCwgOCwgOCwgOF0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQot
ICAgIH0KLSAgXTsKLQotICBnbC5jbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3Jb
MV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwotICB2YXIgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8p
OwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5F
QVIpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJ
TFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoCi0gICAgICBnbC5G
UkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7
Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHZhbGlkRm9ybWF0cy5sZW5ndGg7ICsraWkpIHsK
LSAgICB2YXIgaW5mbyA9IHZhbGlkRm9ybWF0c1tpaV07Ci0gICAgdGVzdEZvcm1hdChpbmZvKTsK
LSAgfQotCi0gIGRlYnVnKCIiKTsKLSAgc2hvdWxkQmVUcnVlKCJudW1WYWxpZEZvcm1hdHMgPiAw
Iik7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ0aGVyZSBzaG91bGQgYmUg
bm8gZXJyb3JzIik7Ci19Ci0KLWRlYnVnKCIiKTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtY2xlYXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGM3Njc5ZmQ3MDA5ZjJiNTc3Y2E0NWYwNzcwZDYyMjQ1NzBhYjcxNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHR1cmUtY2xlYXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRleHR1
cmUgY2xlYXIgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQiIGhlaWdodD0iNCIgc3R5bGU9IndpZHRo
OiA0MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsK
LWRlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
LXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLXZhciBwcm9ncmFtID0g
d3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotdmFyIHRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKLWdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci1n
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhB
cnJheShbMCwyNTUsMCwyNTVdKSk7Ci13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1
LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVu
Iik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9y
cyBmcm9tIHNldHVwLiIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleHR1cmUtY29tcGxldGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4dHVyZS1jb21wbGV0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjJj
ZjRlZDljNWE4ZjQ3NThkZTRhZDU0ZDgwZGFjNjY3ZWI0NmRmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1jb21wbGV0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPCEtLQot
Ci0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0q
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGlu
IHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlh
bHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFM
UyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoq
IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgIlRleHR1cmUg
Q29tcGxldGUiIHRleHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHN0
eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJj
YW52YXMyZCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdo
dDogNDBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gaW5p
dCgpCi17Ci0gIGRlc2NyaXB0aW9uKAotICAgICAgIkNoZWNrcyB0aGF0IGEgdGV4dHVyZSB0aGF0
IGlzIG5vdCAtdGV4dHVyZS1jb21wbGV0ZS0gZG9lcyBub3QgZHJhdyBpZiIrCi0gICAgICAiIGZp
bHRlcmluZyBuZWVkcyBtaXBzIik7Ci0KLSAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNhbnZhczJkIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZhczJkLmdldENvbnRleHQo
IjJkIik7Ci0gIGN0eDJkLmZpbGxTdHlsZSA9ICJyZ2JhKDAsMTkyLDEyOCwxKSI7Ci0gIGN0eDJk
LmZpbGxSZWN0KDAsIDAsIDE2LCAxNik7Ci0KLSAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLSAgdmFy
IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICB2YXIgcHJvZ3JhbSA9IHd0dS5z
ZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLSAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLSAg
Z2wuZGlzYWJsZShnbC5CTEVORCk7Ci0KLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsK
LSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgLy8gMTZ4MTYgdGV4dHVy
ZSBubyBtaXBzCi0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOwotCi0gIHZhciBsb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotICBnbC51bmlmb3JtMWkobG9jLCAwKTsK
LQotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUuY2hlY2tDYW52YXMoZ2ws
IFswLDAsMCwyNTVdLAotICAgICAgInRleHR1cmUgdGhhdCBpcyBub3QgLXRleHR1cmUtY29tcGxl
dGUtIHdoZW4gIiArCi0gICAgICAiVEVYVFVSRV9NSU5fRklMVEVSIG5vdCBORUFSRVNUIG9yIExJ
TkVBUiBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOwotfQotCi1pbml0KCk7Ci12YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWZvcm1hdHMt
dGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWZvcm1hdHMtdGVz
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjQ3ZmE1MDk1ODU5NGRlNTJh
M2MzMjY5NGY5YTAyZGFmMzQ0ZDczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1mb3JtYXRzLXRl
c3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5MSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBUZXh0dXJlIEZvcm1hdCBDb25m
b3JtYW5jZSBUZXN0czwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdpZHRoPSIyIiBoZWlnaHQ9
IjIiIHN0eWxlPSJ3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIy
IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOyI+IDwvY2FudmFzPgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgYWxsb3cgdGhlIE9wZW5HTCBF
UyAyLjAgdGV4dHVyZSBmb3JtYXRzIGFuZCBkbyBub3QgYWxsb3cgRGVza3RvcEdMIHRleHR1cmUg
Zm9ybWF0cy4iKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7Ci0K
LXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
ImNhbnZhcyIpOwotaWYgKCFnbCkgewotICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4
aXN0Iik7Ci19IGVsc2UgewotICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOwotCi0gIGRl
YnVnKCIiKTsKLSAgZGVidWcoIkNoZWNraW5nIHRleHR1cmUgZm9ybWF0cy4iKTsKLQotICB2YXIg
Y3JlYXRlVGV4dHVyZSA9IGZ1bmN0aW9uKGludGVybmFsRm9ybWF0LCBmb3JtYXQsIG9wdF9ib3Jk
ZXIpIHsKLSAgICAgIHZhciBib3JkZXIgPSAob3B0X2JvcmRlciA9PT0gdW5kZWZpbmVkKSA/IDAg
OiBvcHRfYm9yZGVyOwotICAgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsCi0gICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAv
LyBsZXZlbAotICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbEZvcm1hdCwgICAgLy8gaW50ZXJu
YWxGb3JtYXQKLSAgICAgICAgICAgICAgICAgICAgMTYsICAgICAgICAgICAgICAgIC8vIHdpZHRo
Ci0gICAgICAgICAgICAgICAgICAgIDE2LCAgICAgICAgICAgICAgICAvLyBoZWlnaHQKLSAgICAg
ICAgICAgICAgICAgICAgYm9yZGVyLCAgICAgICAgICAgIC8vIGJvcmRlcgotICAgICAgICAgICAg
ICAgICAgICBmb3JtYXQsICAgICAgICAgICAgLy8gZm9ybWF0Ci0gICAgICAgICAgICAgICAgICAg
IGdsLlVOU0lHTkVEX0JZVEUsICAvLyB0eXBlCi0gICAgICAgICAgICAgICAgICAgIG51bGwpOyAg
ICAgICAgICAgICAvLyBkYXRhCi0gIH0KLQotICB2YXIgdGVzdFZhbGlkRm9ybWF0ID0gZnVuY3Rp
b24oaW50ZXJuYWxGb3JtYXQsIGZvcm1hdE5hbWUpIHsKLSAgICAgIGNyZWF0ZVRleHR1cmUoaW50
ZXJuYWxGb3JtYXQsIGludGVybmFsRm9ybWF0KTsKLSAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsCi0gICAgICAgICAgICAgICAgIndhcyBhYmxlIHRvIGNyZWF0ZSB0ZXh0dXJl
IG9mICIgKyBmb3JtYXROYW1lKTsKLSAgfQotCi0gIHZhciB0ZXN0SW52YWxpZEZvcm1hdCA9IGZ1
bmN0aW9uKGludGVybmFsRm9ybWF0LCBmb3JtYXROYW1lKSB7Ci0gICAgICBjcmVhdGVUZXh0dXJl
KGludGVybmFsRm9ybWF0LCBpbnRlcm5hbEZvcm1hdCk7Ci0gICAgICB2YXIgZXJyID0gZ2wuZ2V0
RXJyb3IoKTsKLSAgICAgIGlmIChlcnIgPT0gZ2wuTk9fRVJST1IpIHsKLSAgICAgICAgICB0ZXN0
RmFpbGVkKCJzaG91bGQgTk9UIGJlIGFibGUgdG8gY3JlYXRlIHRleHR1cmUgb2YgdHlwZSAiICsg
Zm9ybWF0TmFtZSk7Ci0gICAgICB9IGVsc2UgaWYgKGVyciA9PSBnbC5JTlZBTElEX09QRVJBVElP
TikgewotICAgICAgICAgIHRlc3RGYWlsZWQoInNob3VsZCByZXR1cm4gZ2wuSU5WQUxJRF9FTlVN
IGZvciB0eXBlICIgKyBmb3JtYXROYW1lKTsKLSAgICAgIH0gZWxzZSBpZiAoZXJyID09IGdsLklO
VkFMSURfRU5VTSkgewotICAgICAgICAgIHRlc3RQYXNzZWQoIm5vdCBhYmxlIHRvIGNyZWF0ZSBp
bnZhbGlkIGZvcm1hdDogIiArIGZvcm1hdE5hbWUpOwotICAgICAgfQotICB9Ci0KLSAgdmFyIGlu
dmFsaWRFbnVtcyA9IFsKLSAgICAnMScsCi0gICAgJzInLAotICAgICczJywKLSAgICAnNCcsCi0g
ICAgJ1JHQjQnLAotICAgICdSR0I1JywKLSAgICAnUkdCOCcsCi0gICAgJ1JHQjEwJywKLSAgICAn
UkdCMTInLAotICAgICdSR0IxNicsCi0gICAgJ1JHQkEyJywKLSAgICAnUkdCQTQnLAotICAgICdS
R0I1X0ExJywKLSAgICAnUkdCQTgnLAotICAgICdSR0IxMF9BMicsCi0gICAgJ1JHQkExMicsCi0g
ICAgJ1JHQkExNicsCi0gICAgJ0JHUicsCi0gICAgJ0JHUkEnLAotICAgICdBTFBIQTRfRVhUJywK
LSAgICAnQUxQSEE4X0VYVCcsCi0gICAgJ0FMUEhBMTJfRVhUJywKLSAgICAnQUxQSEExNl9FWFQn
LAotICAgICdDT01QUkVTU0VEX0FMUEhBJywKLSAgICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0UnLAot
ICAgICdDT01QUkVTU0VEX0xVTUlOQU5DRV9BTFBIQScsCi0gICAgJ0NPTVBSRVNTRURfSU5URU5T
SVRZJywKLSAgICAnQ09NUFJFU1NFRF9SR0InLAotICAgICdDT01QUkVTU0VEX1JHQkEnLAotICAg
ICdERVBUSF9DT01QT05FTlQxNicsCi0gICAgJ0RFUFRIX0NPTVBPTkVOVDI0JywKLSAgICAnREVQ
VEhfQ09NUE9ORU5UMzInLAotICAgICdMVU1JTkFOQ0U0X0VYVCcsCi0gICAgJ0xVTUlOQU5DRThf
RVhUJywKLSAgICAnTFVNSU5BTkNFMTJfRVhUJywKLSAgICAnTFVNSU5BTkNFMTZfRVhUJywKLSAg
ICAnTFVNSU5BTkNFNF9BTFBIQTRfRVhUJywKLSAgICAnTFVNSU5BTkNFNl9BTFBIQTJfRVhUJywK
LSAgICAnTFVNSU5BTkNFOF9BTFBIQThfRVhUJywKLSAgICAnTFVNSU5BTkNFMTJfQUxQSEE0X0VY
VCcsCi0gICAgJ0xVTUlOQU5DRTEyX0FMUEhBMTJfRVhUJywKLSAgICAnTFVNSU5BTkNFMTZfQUxQ
SEExNl9FWFQnLAotICAgICdJTlRFTlNJVFlfRVhUJywKLSAgICAnSU5URU5TSVRZNF9FWFQnLAot
ICAgICdJTlRFTlNJVFk4X0VYVCcsCi0gICAgJ0lOVEVOU0lUWTEyX0VYVCcsCi0gICAgJ0lOVEVO
U0lUWTE2X0VYVCcsCi0gICAgJ1JHQjRfRVhUJywKLSAgICAnUkdCNV9FWFQnLAotICAgICdSR0I4
X0VYVCcsCi0gICAgJ1JHQjEwX0VYVCcsCi0gICAgJ1JHQjEyX0VYVCcsCi0gICAgJ1JHQjE2X0VY
VCcsCi0gICAgJ1JHQkEyX0VYVCcsCi0gICAgJ1JHQkE0X0VYVCcsCi0gICAgJ1JHQjVfQTFfRVhU
JywKLSAgICAnUkdCQThfRVhUJywKLSAgICAnUkdCMTBfQTJfRVhUJywKLSAgICAnUkdCQTEyX0VY
VCcsCi0gICAgJ1JHQkExNl9FWFQnLAotICAgICdTTFVNSU5BTkNFX0VYVCcsCi0gICAgJ1NMVU1J
TkFOQ0U4X0VYVCcsCi0gICAgJ1NMVU1JTkFOQ0VfQUxQSEFfRVhUJywKLSAgICAnU0xVTUlOQU5D
RThfQUxQSEE4X0VYVCcsCi0gICAgJ1NSR0JfRVhUJywKLSAgICAnU1JHQjhfRVhUJywKLSAgICAn
U1JHQl9BTFBIQV9FWFQnLAotICAgICdTUkdCOF9BTFBIQTgnCi0gIF07Ci0KLSAgZm9yICh2YXIg
aWkgPSAwOyBpaSA8IGludmFsaWRFbnVtcy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgZm9ybWF0
TmFtZSA9IGludmFsaWRFbnVtc1tpaV0KLSAgICBpZiAoZGVza3RvcEdMW2Zvcm1hdE5hbWVdID09
PSB1bmRlZmluZWQpIHsKLSAgICAgIGRlYnVnKCJiYWQgZm9ybWF0IiArIGZvcm1hdE5hbWUpCi0g
ICAgfSBlbHNlIHsKLSAgICAgIHRlc3RJbnZhbGlkRm9ybWF0KGRlc2t0b3BHTFtmb3JtYXROYW1l
XSwgIkdMXyIgKyBmb3JtYXROYW1lKTsKLSAgICB9Ci0gIH0KLQotICB2YXIgdmFsaWRFbnVtcyA9
IFsKLSAgICAnQUxQSEEnLAotICAgICdSR0InLAotICAgICdSR0JBJywKLSAgICAnTFVNSU5BTkNF
JywKLSAgICAnTFVNSU5BTkNFX0FMUEhBJwotICBdOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkg
PCB2YWxpZEVudW1zLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBmb3JtYXROYW1lID0gdmFsaWRF
bnVtc1tpaV0KLSAgICB0ZXN0VmFsaWRGb3JtYXQoZ2xbZm9ybWF0TmFtZV0sICJnbC4iICsgZm9y
bWF0TmFtZSk7Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVja2luZyBub24gMCBi
b3JkZXIgcGFyYW1ldGVyIHRvIGdsLlRleEltYWdlMkQiKTsKLSAgY3JlYXRlVGV4dHVyZShnbFsn
UkdCQSddLCBnbFsnUkdCQSddLCAxKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLAotICAgICAgICAgICAgIm5vbiAwIGJvcmRlciB0byBnbC5UZXhJbWFnZTJEIHNob3Vs
ZCByZXR1cm4gSU5WQUxJRF9WQUxVRSIpOwotCi0KLSAgdmFyIGNoZWNrVHlwZXMgPSBmdW5jdGlv
bigpIHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURH
RSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9G
SUxURVIsIGdsLkxJTkVBUik7Ci0KLSAgICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9u
KHByb2dyYW0sICJ0ZXgiKTsKLSAgICBnbC51bmlmb3JtMWkobG9jLCAwKTsKLQotICAgIHZhciBj
aGVja1R5cGUgPSBmdW5jdGlvbihyLCBnLCBiLCBhLCB0eXBlLCBmb3JtYXQsIGJ1ZikgewotICAg
ICAgdmFyIHR5cGVOYW1lID0gd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0eXBlKTsKLSAgICAgIHZh
ciBmb3JtYXROYW1lID0gd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBmb3JtYXQpOwotICAgICAgdmFy
IGRlc2MgPSAiZm9ybWF0OiAiICsgZm9ybWF0TmFtZSArICIsIHR5cGU6ICIgKyB0eXBlTmFtZTsK
LSAgICAgIGRlYnVnKCIiKTsKLSAgICAgIGRlYnVnKCJjaGVja2luZyBnbC50ZXhJbWFnZTJEIHdp
dGggIiArIGRlc2MpOwotICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELAotICAgICAg
ICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgLy8gbGV2ZWwKLSAgICAgICAgICAgICAg
ICAgICAgZm9ybWF0LCAgICAgICAgICAgIC8vIGludGVybmFsRm9ybWF0Ci0gICAgICAgICAgICAg
ICAgICAgIDIsICAgICAgICAgICAgICAgICAvLyB3aWR0aAotICAgICAgICAgICAgICAgICAgICAy
LCAgICAgICAgICAgICAgICAgLy8gaGVpZ2h0Ci0gICAgICAgICAgICAgICAgICAgIDAsICAgICAg
ICAgICAgICAgICAvLyBib3JkZXIKLSAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCAgICAgICAg
ICAgIC8vIGZvcm1hdAotICAgICAgICAgICAgICAgICAgICB0eXBlLCAgICAgICAgICAgICAgLy8g
dHlwZQotICAgICAgICAgICAgICAgICAgICBidWYpOyAgICAgICAgICAgICAgLy8gZGF0YQotCi0g
ICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICAgICAgICAgICAgICJn
bC50ZXhJbWFnZTJEIHdpdGggIiArIGRlc2MgKyAiIHNob3VsZCBnZW5lcmF0ZSBOT19FUlJPUiIp
OwotCi0gICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFsyNTUsIDAsIDAsIDI1NV0p
OwotICAgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbcixnLGIsYV0sCi0gICAgICAgICAgICAgICAg
ICAgICAgInRleHR1cmUgIiArIGRlc2MgKyAiIHNob3VsZCBkcmF3IHdpdGggIiArCi0gICAgICAg
ICAgICAgICAgICAgICAgciArICIsICIgKyBnICsgIiwgIiArIGIgKyAiLCAiICsgYSk7Ci0KLSAg
IH0KLSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAyNTUsIDAsIDI1NSwgZ2wuVU5TSUdORURfQllU
RSwgZ2wuUkdCQSwKLSAgICAgICBuZXcgVWludDhBcnJheSgKLSAgICAgICAgIFsgMCwgMjU1LCAw
LCAyNTUsCi0gICAgICAgICAgIDAsIDI1NSwgMCwgMjU1LAotICAgICAgICAgICAwLCAyNTUsIDAs
IDI1NSwKLSAgICAgICAgICAgMCwgMjU1LCAwLCAyNTVdKSk7Ci0gICBjaGVja1R5cGUoCi0gICAg
ICAgMCwgMCwgMjU1LCAyNTUsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGdsLlJHQkEsCi0g
ICAgICAgbmV3IFVpbnQxNkFycmF5KAotICAgICAgICAgWyAyNTUsIDI1NSwKLSAgICAgICAgICAg
MjU1LCAyNTUsCi0gICAgICAgICAgIDI1NSwgMjU1LAotICAgICAgICAgICAyNTUsIDI1NV0pKTsK
LSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAyNTUsIDAsIDI1NSwgZ2wuVU5TSUdORURfU0hPUlRf
NV82XzUsIGdsLlJHQiwKLSAgICAgICBuZXcgVWludDE2QXJyYXkoCi0gICAgICAgICBbIDIwMTYs
IDIwMTYsCi0gICAgICAgICAgIDIwMTYsIDIwMTYsCi0gICAgICAgICAgIDIwMTYsIDIwMTYsCi0g
ICAgICAgICAgIDIwMTYsIDIwMTZdKSk7Ci0gICBjaGVja1R5cGUoCi0gICAgICAgMCwgMCwgMjU1
LCAyNTUsIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIGdsLlJHQkEsCi0gICAgICAgbmV3IFVp
bnQxNkFycmF5KAotICAgICAgICAgWyA2MywgNjMsCi0gICAgICAgICAgIDYzLCA2MywKLSAgICAg
ICAgICAgNjMsIDYzLAotICAgICAgICAgICA2MywgNjNdKSk7Ci0gICBjaGVja1R5cGUoCi0gICAg
ICAgMjU1LCAyNTUsIDI1NSwgMjU1LCBnbC5VTlNJR05FRF9CWVRFLCBnbC5MVU1JTkFOQ0UsCi0g
ICAgICAgbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAgICAyNTUsCi0gICAgICAgICAgIDI1NSwK
LSAgICAgICAgICAgMjU1LAotICAgICAgICAgICAyNTVdKSk7Ci0gICBjaGVja1R5cGUoCi0gICAg
ICAgMCwgMCwgMCwgMTI4LCBnbC5VTlNJR05FRF9CWVRFLCBnbC5BTFBIQSwKLSAgICAgICBuZXcg
VWludDhBcnJheShbCi0gICAgICAgICAgIDEyOCwKLSAgICAgICAgICAgMTI4LAotICAgICAgICAg
ICAxMjgsCi0gICAgICAgICAgIDEyOF0pKTsKLSAgIGNoZWNrVHlwZSgKLSAgICAgICAxMjgsIDEy
OCwgMTI4LCAxOTIsIGdsLlVOU0lHTkVEX0JZVEUsIGdsLkxVTUlOQU5DRV9BTFBIQSwKLSAgICAg
ICBuZXcgVWludDhBcnJheShbCi0gICAgICAgICAgIDEyOCwgMTkyLAotICAgICAgICAgICAxMjgs
IDE5MiwKLSAgICAgICAgICAgMTI4LCAxOTIsCi0gICAgICAgICAgIDEyOCwgMTkyXSkpOwotICB9
Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLSAgZ2wucGl4ZWxT
dG9yZWkoZ2wuVU5QQUNLX0FMSUdOTUVOVCwgMSk7Ci0gIGNoZWNrVHlwZXMoKTsKLX0KLQotZGVi
dWcoIiIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtaGQtZHBpLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQt
ZHBpLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxYWUyZjhmNDM5ZDQxYmI0
NGRmMmY4MGQ4OGRkMmE3YzliZDhmOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhkLWRwaS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHly
aWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxz
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRo
ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJp
YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFu
ZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoq
Ci0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0
aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoq
IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRF
UklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIEhELURQSSBpc3N1ZXMgdGV4dHVyZSBj
b25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFz
IGlkPSJleGFtcGxlIiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhl
aWdodDogMzBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRp
b24oKTsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENv
bnRleHQoImV4YW1wbGUiKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGds
KTsKLQotZnVuY3Rpb24gZmlsbEluTWlwcyhnbCwgc2l6ZSkgewotICAvLyBmaWxsIGluIHRoZSBt
aXBzCi0gIHZhciBsZXZlbCA9IDE7Ci0gIGZvciAoOzspIHsKLSAgICBzaXplIC89IDI7Ci0gICAg
aWYgKHNpemUgPCAxKSB7Ci0gICAgICBicmVhazsKLSAgICB9Ci0gICAgdmFyIG51bUJ5dGVzID0g
c2l6ZSAqIHNpemUgKiA0OwotICAgIHZhciBwaXhlbHMgPSBuZXcgVWludDhBcnJheShudW1CeXRl
cyk7Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG51bUJ5dGVzOyBqaiArPSA0KSB7Ci0gICAg
ICBwaXhlbHNbamogKyAwXSA9IDA7Ci0gICAgICBwaXhlbHNbamogKyAxXSA9IDI1NTsKLSAgICAg
IHBpeGVsc1tqaiArIDJdID0gMDsKLSAgICAgIHBpeGVsc1tqaiArIDNdID0gMjU1OwotICAgIH0K
LSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHNpemUsIHNpemUs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7Ci0gIH0KLX0KLQotZnVuY3Rp
b24gdGVzdENhbnZhcyhzaXplKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoInRlc3RpbmcgMkQg
Y2FudmFzIHNpemUgIiArIHNpemUgKyAiLCAiICsgc2l6ZSk7Ci0KLSAgdmFyIGNhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBjYW52YXMud2lkdGggPSBzaXplOwot
ICBjYW52YXMuaGVpZ2h0ID0gc2l6ZTsKLSAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOwotICBjdHguZmlsbFN0eWxlID0gInJnYigwLDI1NSwwKSI7Ci0gIGN0eC5maWxsUmVjdCgw
LCAwLCBzaXplLCBzaXplKTsKLQotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhcyk7
Ci0KLSAgZmlsbEluTWlwcyhnbCwgc2l6ZSk7Ci0KLSAgLy8gRHJhdy4gSWYgdGhpcyBhbiBIRC1E
UEkgZGV2aWNlIGFuZCB0aGUgMmQgY2FudmFzIGlzIGRvdWJsZSByZXMgb3IgbGFyZ2VyCi0gIC8v
IHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHNjYWxlIHRvIENTUyBwaXhlbHMgKGllLCBjYW52YXMu
d2lkdGgsIGNhbnZhcy5oZWlnaHQpKAotICAvLyB3aGVuIGRvaW5nIHRoZSBjb3B5IGluIHRleElt
YWdlMkQuIElmIGl0IGhhcyBub3Qgc2NhbGVkIGFuZCBpbnN0ZWFkIGRvbmUKLSAgLy8gYSBkaXJl
Y3QgY29weSBvZiB0aGUgbGFyZ2VyIHRleHR1cmUgdGhpcyB0ZXN0IHdpbGwgbm90IGhhdmUgY3Jl
YXRlZCBlbm91Z2ggbWlwcwotICAvLyBhbmQgd2lsbCB0aGVyZWZvcmUgbm90IGJlICJ0ZXh0dXJl
IGNvbXBsZXRlIiBhbmQgd2lsbCByZW5kZXIgaW4gYmxhY2suCi0gIHd0dS5jbGVhckFuZERyYXdV
bml0UXVhZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1NSwgMCwgMjU1XSwgInNo
b3VsZCBiZSBncmVlbiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0V2ViR0woc2l6ZSkgewotICBkZWJ1
ZygiIik7Ci0gIGRlYnVnKCJ0ZXN0aW5nIFdlYkdMIGNhbnZhcyBzaXplICIgKyBzaXplICsgIiwg
IiArIHNpemUpOwotCi0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52
YXMiKTsKLSAgY2FudmFzLndpZHRoID0gc2l6ZTsKLSAgY2FudmFzLmhlaWdodCA9IHNpemU7Ci0g
IHZhciBnbDIgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gIGdsMi5jbGVhckNvbG9y
KDAsMSwwLDEpOwotICBnbDIuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7Ci0KLSAgdmFyIHRl
eCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMpOwotCi0gIGZpbGxJbk1pcHMoZ2wsIHNpemUpOwot
Ci0gIC8vIERyYXcuIElmIHRoaXMgYW4gSEQtRFBJIGRldmljZSBjaGVjayBmb3IgMiBwb3NzaWJs
ZSBidWdzLgotICAvLwotICAvLyAxKSB0aGUgV2ViR0wgY2FudmFzIGlzIGRvdWJsZSByZXMgb3Ig
bGFyZ2VyLiBUaGF0J3MganVzdCBhIGJ1ZyBwZXJpb2QgYW5kCi0gIC8vICAgIGlzIGNoZWNrZWQg
Zm9yIGluIGFub3RoZXIgdGVzdCBidXQgd291bGQgYWxzbyBmYWlsIGhlcmUuCi0gIC8vCi0gIC8v
IDIpIHRoZSBXZWJHTCBjYW52YXMgaXMgc2luZ2xlIHJlcyBidXQgdGhlIGNvZGUgdGhlIHNjYWxl
cyBhIGRvdWJsZSByZXMKLSAgLy8gICAgMmQgY2FudmFzIGFsc28gbWlzdGFrZW5seSBzY2FsZXMg
YSBzaW5nbGUgcmVzIFdlYkdMIGNhbnZhcy4KLSAgLy8KLSAgLy8gSWYgaXQgaGFzIGJlZW4gc2Nh
bGVkIHRoZW4gd2UnbGwgaGF2ZSB0aGUgd3Jvbmcga2luZCBvZiBtaXBzIGNoYWluIGhlcmUuCi0g
IC8vIExldmVsIDAgd2lsbCBiZSBoYWxmIHJlc29sdXRpb24uIExldmVsIDEgd2lsbCBiZSB0aGUg
c2FtZSByZXNvbHV0aW9uCi0gIC8vIGFuZCB3aWxsIHRoZXJlZm9yZSBub3QgYmUgInRleHR1cmUg
Y29tcGxldGUiIGFuZCB3aWxsIHJlbmRlciBpbiBibGFjay4KLSAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAic2hv
dWxkIGJlIGdyZWVuIik7Ci19Ci0KLXRlc3RDYW52YXMoNCk7Ci10ZXN0Q2FudmFzKDUxMik7Ci10
ZXN0V2ViR0woNCk7Ci10ZXN0V2ViR0woNTEyKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbWlwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLW1pcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTRjMmU4MGYyOGVjNThhZmRmMzBiMjQyMTZhM2I1ZDAxODMwY2ZmNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleHR1cmUtbWlwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzE5ICswLDAgQEAK
LTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
Ci0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRl
eHR1cmUgbWlwcyBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0
aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLXVuaWZvcm0gdmVjNCB1TXVsdDsKLWF0dHJpYnV0ZSB2
ZWM0IHZQb3NpdGlvbjsKLWF0dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0
ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb24gKiB1
TXVsdDsKLSAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0
IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OwotdW5pZm9ybSBzYW1wbGVyMkQgdGV4OwotdmFyeWluZyB2ZWMyIHRleENvb3Jk
Owotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4LCB0ZXhD
b29yZCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgY2FudmFz
OwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotZnVuY3Rpb24gaW5pdCgpCi17Ci0gIGRlc2Ny
aXB0aW9uKCJDaGVja3MgbWlwIGlzc3VlcyIpOwotCi0gIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJleGFtcGxlIik7Ci0gIHNob3VsZEJlKCJjYW52YXMud2lkdGgiLCAiMiIpOwot
ICBzaG91bGRCZSgiY2FudmFzLmhlaWdodCIsICIyIik7Ci0KLSAgdmFyIGdsID0gd3R1LmNyZWF0
ZTNEQ29udGV4dChjYW52YXMpOwotCi0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0g
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLmdlbmVyYXRlTWlwbWFw
KGdsLlRFWFRVUkVfMkQpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLCAiZm9yIGdlbmVyYXRlTWlwbWFwIHdpdGggbWlwIDAgaXMgMHgwIik7Ci0gIGdsLnRleElt
YWdlMkQoCi0gICAgICBnbC5URVhUVVJFXzJELCAxLCBnbC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpOwotICBnbC5nZW5l
cmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTiwgImZvciBnZW5lcmF0ZU1pcG1hcCB3aXRoIG1pcCAwIGlzIDB4MCIpOwot
Ci0gIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV9DVUJFX01BUCwgdGV4KTsKLSAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9DVUJFX01B
UCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3IgZ2Vu
ZXJhdGVNaXBtYXAgd2l0aCBtaXAgMCBpcyAweDAiKTsKLQotICB2YXIgZmFjZXMgPSBbCi0gICAg
Z2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgZ2wu
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWiwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKLSAgXTsKLSAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IGZhY2VzLmxlbmd0aDsgKytpaSkgewotICAgIGdsLnRleEltYWdl
MkQoCi0gICAgICAgIGZhY2VzW2lpXSwgMCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCAqIDIgKiAyKSk7Ci0gICAg
Z2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9DVUJFX01BUCk7Ci0gICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBpaSA9PSA1ID8gZ2wuTk9fRVJST1IgOiBnbC5JTlZBTElEX09QRVJBVElPTiwgImZv
ciBnZW5lcmF0ZU1pcG1hcCB3aXRoICIgKyAoaWkgKyAxKSArICIgZmFjZXMiKTsKLSAgfQotCi0g
IHd0dS5zZXR1cFVuaXRRdWFkKGdsLCAwLCAxKTsKLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQ
cm9ncmFtKAotICAgICAgZ2wsIFsndnNoYWRlcicsICdmc2hhZGVyJ10sIFsndlBvc2l0aW9uJywg
J3RleENvb3JkMCddLCBbMCwgMV0pOwotCi0gIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0g
IGdsLmRpc2FibGUoZ2wuQkxFTkQpOwotCi0gIHZhciBjb2xvcnMgPSB7Ci0gICAgYmx1ZTogWzAs
IDAsIDI1NSwgMjU1XSwKLSAgICByZWQ6IFsyNTUsIDAsIDAsIDI1NV0sCi0gICAgZ3JlZW46ICBb
MCwgMjU1LCAwLCAyNTVdLAotICAgIGN5YW46IFsxMjgsIDI1NSwgMjU1LCAyNTVdLAotICAgIGJs
YWNrOiBbMCwgMCwgMCwgMjU1XSwKLSAgICBibGFuazogWzAsIDAsIDAsIDBdCi0gIH07Ci0KLSAg
dmFyIG1pcHMgPSBbCi0gIF07Ci0KLSAgdmFyIHRleExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAidGV4Iik7Ci0gIGdsLnVuaWZvcm0xaSh0ZXhMb2MsIDApOwotICB2YXIgbXVs
dExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidU11bHQiKTsKLQotICAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIHZh
ciBjbGVhclRleCA9IGNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDEs
IDEsIDEsIDEpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBjbGVhclRleCk7Ci0g
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTYsIDE2LCAwLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgZGVidWcoJ2dsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTYsIDE2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBudWxsKTsnKTsKLSAgc2V0TWlwRGF0YSgwLCAxNiwgJ2JsYW5rJyk7Ci0gIG1ha2VEaXZN
aXBDaGFpbigpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwotICBjaGVjaygnYmxhbmsnLCAidGV4dHVy
ZSBjcmVhdGVkIHdpdGggbnVsbCB0aGF0IGhhcyBhbGwgbWlwcyIpOwotCi0gIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgdmFyIHRleCA9
IGNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDEsIDEsIDEsIDEpOwot
Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIC8vIDE2eDE2IHRleHR1
cmUgbm8gbWlwcwotICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwgJ2N5YW4nKTsKLQotICBjaGVjaygn
YmxhY2snLAotICAgICAgICAidGV4dHVyZSB0aGF0IGlzIG1pc3NpbmcgbWlwcyB3aGVuIFRFWFRV
UkVfTUlOX0ZJTFRFUiBub3QgTkVBUkVTVCBvciBMSU5FQVIiKTsKLQotICBnZW5lcmF0ZU1pcG1h
cCgpOwotCi0gIGNoZWNrKCdjeWFuJywgInRleHR1cmUgdGhhdCBoYXMgYWxsIG1pcHMiKTsKLQot
ICAvLyBGaWxsIGluIHRoZSBib3R0b20gMiBtaXBzIHdpdGggYSBkaWZmZXJlbnQgY29sb3IuCi0g
IGZpbGxMZXZlbCh0ZXgsIDQsIDEsICdncmVlbicpOwotICBmaWxsTGV2ZWwodGV4LCAzLCAyLCAn
Z3JlZW4nKTsKLQotICAvLyBDaG9vc2UgdGhlIG5lYXJlc3QgbWlwCi0gIHRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX05F
QVJFU1QpOwotCi0gIGNoZWNrKCdncmVlbicsICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1c2luZyB0
aGUgc21hbGxlc3QgMiBtaXBzIik7Ci0KLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDE2LCAxNiwg
MSwgMSk7Ci0KLSAgY2hlY2soJ2N5YW4nLCAidGV4dHVyZSB0aGF0IGlzIHVzaW5nIG9ubHkgdGhl
IGxhcmdlc3QgMiBtaXBzIik7Ci0KLSAgLy8gU2V0IHRoZSB0b3AgbGV2ZWwKLSAgZmlsbExldmVs
KHRleCwgMCwgMSwgJ3JlZCcpOwotICBjaGVjaygncmVkJywKLSAgICAgICAgInRleHR1cmUgdGhh
dCBpcyBvbmx5IHVzaW5nIHRoZSB0b3AgbGV2ZWwgZXZlbiB0aG91Z2ggb3RoZXIgbGV2ZWxzIGFy
ZSBkZWZpbmVkIik7Ci0KLSAgLy8gU2V0IHRoZSB0b3AgMiBsZXZlbHMgdXNpbmcgZ2VuZXJhdGVN
aXBtYXAKLSAgZmlsbExldmVsKHRleCwgMCwgMiwgJ2JsdWUnKTsKLSAgZ2VuZXJhdGVNaXBtYXAo
KTsKLQotICBjaGVjaygnYmx1ZScsCi0gICAgICAgICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1c2lu
ZyB0aGUgdG9wIDIgbGV2ZWxzIGV2ZW4gdGhvdWdoIG90aGVyIGxldmVscyBhcmUgZGVmaW5lZCIp
OwotCi0gIC8vIFNldCB0aGUgdG9wIDIgbGV2ZWxzIGJhY2sgdG8gc2l6ZXMgdGhhdCBlbmQgdXAg
dXNpbmcgbGV2ZWxzIDIsIDMsIGFuZCA0IGFnYWluLgotICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwg
J2JsdWUnKTsKLSAgZmlsbExldmVsKHRleCwgMSwgOCwgJ2JsdWUnKTsKLSAgY2hlY2soJ2JsdWUn
LCAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdGhlIGxhcmdlc3QgMiBtaXBzIik7Ci0gIGds
LnVuaWZvcm00ZihtdWx0TG9jLCAxLCAxLCAxLCAxKTsKLSAgY2hlY2soJ2dyZWVuJywgInRleHR1
cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRoZSBzbWFsbGVzdCAyIG1pcHMiKTsKLQotICAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIHZhciB0
ZXggPSBjcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9jLCAxLCAxLCAxLCAx
KTsKLSAgZmlsbExldmVsKHRleCwgMCwgOCwgJ2N5YW4nKTsKLSAgZ2VuZXJhdGVNaXBtYXAoKTsK
LSAgY2hlY2soJ2N5YW4nLCAidGV4dHVyZSB0aGF0IGhhcyAzIG1pcHMiKTsKLQotICBmaWxsTGV2
ZWwodGV4LCAwLCAxNiwgJ2JsdWUnKTsKLSAgdGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGNoZWNrKCdibHVlJywgInRleHR1
cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRvcCBtaXBzIik7Ci0KLSAgZmlsbExldmVsKHRleCwgMCwg
OCwgJ3JlZCcpOwotICB0ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlO
X0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9ORUFSRVNUKTsKLSAgY2hlY2soJ2N5YW4nLCAidGV4
dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgc21hbGxlc3QgbWlwcyIpOwotCi0gIGdsLnVuaWZvcm00
ZihtdWx0TG9jLCAxNiwgMTYsIDEsIDEpOwotICBjaGVjaygncmVkJywgInRleHR1cmUgdGhhdCBp
cyB1c2luZyBvbmx5IHRoZSBsYXJnZXN0IG1pcCIpOwotCi0gIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgdmFyIHRleCA9IGNyZWF0ZVRl
eHR1cmUoKTsKLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDEsIDEsIDEsIDEpOwotICBmaWxsTGV2
ZWwodGV4LCAyLCAxLCAnZ3JlZW4nKTsKLSAgZmlsbExldmVsKHRleCwgMSwgMiwgJ2dyZWVuJyk7
Ci0gIGZpbGxMZXZlbCh0ZXgsIDAsIDQsICdncmVlbicpOwotICBjaGVjaygnZ3JlZW4nLCAidGV4
dHVyZSB0aGF0IHdhcyBidWlsdCBzbWFsbGVzdCBtaXAgZmlyc3QiKTsKLQotICAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIHZhciB0ZXgg
PSBjcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9jLCAxLCAxLCAxLCAxKTsK
LSAgZmlsbExldmVsKHRleCwgMCwgMTYsICdyZWQnKTsKLSAgZ2VuZXJhdGVNaXBtYXAoKTsKLSAg
Y2hlY2soJ3JlZCcsICJ0ZXh0dXJlIHdpdGggMSBnZW5taXBtYXBzIik7Ci0gIGZpbGxMZXZlbCh0
ZXgsIDAsIDE2LCAnYmx1ZScpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwotICBmaWxsTGV2ZWwodGV4
LCAwLCAxNiwgJ2dyZWVuJyk7Ci0gIGdlbmVyYXRlTWlwbWFwKCk7Ci0gIGNoZWNrKCdncmVlbics
ICJ0ZXh0dXJlIHdpdGggMiBnZW5taXBtYXBzIik7Ci0KLSAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycy4iKTsKLQotICBmdW5jdGlvbiBjcmVh
dGVUZXh0dXJlKCkgewotICAgIGRlYnVnKCI8aHIvPmdsLmNyZWF0ZVRleHR1cmUoKSIpOwotICAg
IG1pcHMgPSBbXTsKLSAgICBtYWtlRGl2TWlwQ2hhaW4oKTsKLSAgICByZXR1cm4gZ2wuY3JlYXRl
VGV4dHVyZSgpOwotICB9Ci0KLSAgZnVuY3Rpb24gdGV4UGFyYW1ldGVyaSh0YXJnZXQsIHBuYW1l
LCB2YWx1ZSkgewotICAgIGRlYnVnKCJnbC50ZXhQYXJhbWV0ZXJpKCIgKwotICAgICAgICAgIHd0
dS5nbEVudW1Ub1N0cmluZyhnbCwgdGFyZ2V0KSArICIsICIgKwotICAgICAgICAgIHd0dS5nbEVu
dW1Ub1N0cmluZyhnbCwgcG5hbWUpICsgIiwgIiArCi0gICAgICAgICAgd3R1LmdsRW51bVRvU3Ry
aW5nKGdsLCB2YWx1ZSkgKyAiKSIpCi0gICAgZ2wudGV4UGFyYW1ldGVyaSh0YXJnZXQsIHBuYW1l
LCB2YWx1ZSk7Ci0gIH0KLQotICBmdW5jdGlvbiBnZW5lcmF0ZU1pcG1hcCgpIHsKLSAgICBkZWJ1
ZygiZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCkiKTsKLSAgICBnbC5nZW5lcmF0ZU1p
cG1hcChnbC5URVhUVVJFXzJEKTsKLSAgICB2YXIgbWlwMCA9IG1pcHNbMF07Ci0gICAgdmFyIHNp
emUgPSBtaXAwLnNpemU7Ci0gICAgdmFyIGxldmVsID0gMTsKLSAgICBmb3IoOzspIHsKLSAgICAg
IHNpemUgPSBNYXRoLmZsb29yKHNpemUgLyAyKTsKLSAgICAgIGlmICghc2l6ZSkgewotICAgICAg
ICBicmVhazsKLSAgICAgIH0KLSAgICAgIHNldE1pcERhdGEobGV2ZWwsIHNpemUsIG1pcDAuY29s
b3IpOwotICAgICAgKytsZXZlbDsKLSAgICB9Ci0gICAgbWFrZURpdk1pcENoYWluKCk7Ci0gIH0K
LQotICBmdW5jdGlvbiBjaGVjayhjb2xvciwgbXNnKSB7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvbG9yc1tjb2xvcl0sIG1zZyAr
ICIgc2hvdWxkIGRyYXcgd2l0aCAiICsgY29sb3IpOwotICB9Ci0KLSAgZnVuY3Rpb24gZmlsbExl
dmVsKHRleCwgbGV2ZWwsIHNpemUsIGNvbG9yKSB7Ci0gICAgc2V0TWlwRGF0YShsZXZlbCwgc2l6
ZSwgY29sb3IpOwotICAgIGRlYnVnKCJnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsICIgKyBs
ZXZlbCArICIsIGdsLlJHQkEsICIgKyBzaXplICsgIiwgIiArIHNpemUgKwotICAgICAgICAgICIs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsICIgKyBjb2xvciArICIpOyIpOwotICAgIHd0
dS5maWxsVGV4dHVyZShnbCwgdGV4LCBzaXplLCBzaXplLCBjb2xvcnNbY29sb3JdLCBsZXZlbCk7
Ci0gICAgbWFrZURpdk1pcENoYWluKCk7Ci0gIH0KLQotICBmdW5jdGlvbiBzZXRNaXBEYXRhKGxl
dmVsLCBzaXplLCBjb2xvcikgewotICAgIG1pcHNbbGV2ZWxdID0gewotICAgICAgc2l6ZTogc2l6
ZSwKLSAgICAgIGNvbG9yOiBjb2xvcgotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlRGl2
TWlwQ2hhaW4oY29sb3IpIHsKLSAgICB2YXIgaHRtbCA9IFsKLSAgICAgICc8ZGl2IHN0eWxlPSJo
ZWlnaHQ6IDY4cHg7IG1hcmdpbi10b3A6IDVweCI+JywKLSAgICAgICc8ZGl2IHN0eWxlPSJmbG9h
dDpsZWZ0OyI+bWlwczogPC9kaXY+J107Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDU7ICsr
aWkpIHsKLSAgICAgIHZhciBtaXAgPSBtaXBzW2lpXTsKLSAgICAgIGlmIChtaXApIHsKLSAgICAg
ICAgaHRtbC5wdXNoKG1ha2VEaXZTcXVhcmUobWlwLnNpemUsIG1pcC5jb2xvcikpOwotICAgICAg
fSBlbHNlIHsKLSAgICAgICAgaHRtbC5wdXNoKG1ha2VEaXZTcXVhcmUoMTYsIHVuZGVmaW5lZCkp
OwotICAgICAgfQotICAgIH0KLSAgICBodG1sLnB1c2goIjwvZGl2PiIpOwotICAgIGRlYnVnKGh0
bWwuam9pbigiIikpOwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZURpdlNxdWFyZShzaXplLCBjb2xv
cikgewotICAgIHNpemUgKj0gNDsKLSAgICB2YXIgYyA9IGNvbG9yID8gY29sb3JzW2NvbG9yXSA6
IFsyNTUsMjU1LDI1NV07Ci0gICAgdmFyIGJvcmRlciA9IGNvbG9yID8gJ3NvbGlkJyA6ICdkYXNo
ZWQnOwotICAgIHJldHVybiAnPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsgd2lkdGg6ICcgKyBzaXpl
ICsgJ3B4OyBoZWlnaHQ6ICcgKyBzaXplICsKLSAgICAgICAgICAgJ3B4OyBiYWNrZ3JvdW5kLWNv
bG9yOiAnICsgcmdiKGMpICsKLSAgICAgICAgICAgJzsgYm9yZGVyOiAxcHggJyArIGJvcmRlciAr
ICcgYmxhY2s7IG1hcmdpbi1yaWdodDogM3B4OyI+PC9kaXY+JzsKLSAgfQotCi0gIGZ1bmN0aW9u
IHJnYihjKSB7Ci0gICAgcmV0dXJuICdyZ2IoJyArIGNbMF0gKyAnLCcgKyBjWzFdICsgJywnICsg
Y1syXSArJyknOwotICB9Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtdmlkZW8uaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90LXZpZGVvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAxZmI0ODMwYWQ2MGFjZjc5OTM0YTU3M2RhODZiODA1OTE3MGZmODMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtdmlkZW8uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDE3NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
Ci0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
LSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIg
Z2wgPSBudWxsOwotdmFyIHRleHR1cmVMb2MgPSBudWxsOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IGZhbHNlOwotdmFyIHZpZGVvOwotCi1pbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25l
KCk7Ci0KLWZ1bmN0aW9uIGluaXQoKQotewotICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgbnBvdCB2
aWRlbycpOwotCi0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFt
cGxlIik7Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gICAgdmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0gICAgZ2wuY2xlYXJDb2xvcigw
LDAsMCwxKTsKLSAgICBnbC5jbGVhckRlcHRoKDEpOwotCi0gICAgdGV4dHVyZUxvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0KLSAgICB2aWRlbyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ2aWQiKTsKLSAgICB3dHUuc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZp
ZGVvKHZpZGVvLCBydW5UZXN0KTsKLX0KLQotLy8gVGhlc2UgdHdvIGRlY2xhcmF0aW9ucyBuZWVk
IHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0byBzZWUgdGhlbQotdmFyIGJ1ZiA9IG51bGw7
Ci12YXIgaWR4ID0gMDsKLXZhciBwaXhlbCA9IFswLCAwLCAwXTsKLXZhciBjb3JyZWN0Q29sb3Ig
PSBudWxsOwotdmFyIHRleHR1cmU7Ci0KLWZ1bmN0aW9uIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0Vs
ZW1lbnQsIHVzZVRleFN1YkltYWdlMkQsIGZsaXBZLCB0b3BDb2xvciwgYm90dG9tQ29sb3IsIGJh
ZE1pbkZpbHRlciwgYmFkQ2xhbXAsIGdlbk1pcHMpCi17Ci0gICAgZGVidWcoJ1Rlc3RpbmcgJyAr
ICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCi0g
ICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIC8vIERpc2FibGUgYW55IHdy
aXRlcyB0byB0aGUgYWxwaGEgY2hhbm5lbAotICAgIGdsLmNvbG9yTWFzaygxLCAxLCAxLCAwKTsK
LSAgICBpZiAoIXRleHR1cmUpIHsKLSAgICAgICAgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgICB9Ci0gICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIC8vIFNldCB1cCBw
aXhlbCBzdG9yZSBwYXJhbWV0ZXJzCi0gICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBf
WV9XRUJHTCwgZmxpcFkpOwotICAgIC8vIFVwbG9hZCB0aGUgdmlkZW9FbGVtZW50IGludG8gdGhl
IHRleHR1cmUKLSAgICBkZWJ1Zygic2l6ZTogIiArIHZpZGVvRWxlbWVudC52aWRlb1dpZHRoICsg
IngiICsgdmlkZW9FbGVtZW50LnZpZGVvSGVpZ2h0KTsKLSAgICBpZiAodXNlVGV4U3ViSW1hZ2Uy
RCkgewotICAgICAgICAvLyBJbml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0g
ICAgICAgIGRlYnVnKCJ1c2UgdGV4U3ViSW1hZ2UyRCIpOwotICAgICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsCi0gICAgICAgICAgICAgICAgICAgICAgdmlkZW9F
bGVtZW50LnZpZGVvV2lkdGgsIHZpZGVvRWxlbWVudC52aWRlb0hlaWdodCwgMCwKLSAgICAgICAg
ICAgICAgICAgICAgICBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgICAgICAg
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCB2aWRlb0VsZW1lbnQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlYnVnKCJ1
c2UgdGV4SW1hZ2UyRCIpOwotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVvRWxlbWVudCk7Ci0gICAg
fQotCi0gICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICAg
IGlmIChiYWRNaW5GaWx0ZXIpIHsKLSAgICAgICAgZGVidWcoImJhZCBtaW4gZmlsdGVyIik7Ci0g
ICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSLCBnbC5MSU5FQVJfTUlQTUFQX05FQVJFU1QpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRl
YnVnKCJnb29kIG1pbiBmaWx0ZXIiKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgfQotICAgIGlm
IChiYWRDbGFtcCkgewotICAgICAgICBkZWJ1ZygiYmFkIGNsYW1wIik7Ci0gICAgICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLlJFUEVBVCk7
Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1QsIGdsLlJFUEVBVCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVidWcoImdvb2QgY2xhbXAi
KTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dS
QVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIH0KLSAg
ICBpZiAoZ2VuTWlwcykgewotICAgICAgICBkZWJ1ZygiZ2VuZXJhdGUgbWlwcyIpOwotICAgICAg
ICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgICAgICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInNob3VsZCBiZSBJTlZBTElEX09QRVJBVElP
TiIpOwotICAgIH0KLQotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwot
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotCi0vLyAgICB2YXIg
YyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotLy8gICAgYy53aWR0aCA9IDE2
OwotLy8gICAgYy5oZWlnaHQgPSAxNjsKLS8vICAgIGMuc3R5bGUuYm9yZGVyID0gIjFweCBzb2xp
ZCBibGFjayI7Ci0vLyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCIyZCIpOwotLy8gICAgY3R4
LmRyYXdJbWFnZSh2aWRlb0VsZW1lbnQsIDAsIDAsIDE2LCAxNik7Ci0vLyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGMpOwotCi0gICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0
byB0ZXh0dXJlIHVuaXQgMAotICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAv
LyBEcmF3IHRoZSB0cmlhbmdsZXMKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFsw
LCAwLCAwLCAyNTVdKTsKLSAgICAvLyBDaGVjayBhIGZldyBwaXhlbHMgbmVhciB0aGUgdG9wIGFu
ZCBib3R0b20gYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKLSAgICAvLyB0aGUgcmlnaHQgY29sb3Iu
Ci0gICAgdmFyIHRvbGVyYW5jZSA9IDU7Ci0gICAgZGVidWcoIkNoZWNraW5nIGxvd2VyIGxlZnQg
Y29ybmVyIik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwgNCwgMiwgMiwgYm90dG9t
Q29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAic2hvdWxkQmUgIiArIGJvdHRvbUNvbG9y
LCB0b2xlcmFuY2UpOwotICAgIGRlYnVnKCJDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lciIpOwot
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDQsIGdsLmNhbnZhcy5oZWlnaHQgLSA4LCAyLCAy
LCB0b3BDb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgdG9wQ29s
b3IsIHRvbGVyYW5jZSk7Ci0gICAgZGVidWcoIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KHZp
ZGVvRWxlbWVudCkKLXsKLSAgICB2YXIgcmVkID0gWzI1NSwgMCwgMF07Ci0gICAgdmFyIGdyZWVu
ID0gWzAsIDI1NSwgMF07Ci0gICAgdmFyIGJsYWNrID0gWzAsIDAsIDBdOwotICAgIHJ1bk9uZUl0
ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0cnVlLCBibGFjaywgYmxhY2ssIHRydWUsIHRy
dWUsIHRydWUpOwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0cnVl
LCBibGFjaywgYmxhY2ssIHRydWUsIGZhbHNlLCBmYWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0aW9u
KHZpZGVvRWxlbWVudCwgZmFsc2UsIHRydWUsIGJsYWNrLCBibGFjaywgZmFsc2UsIHRydWUsIGZh
bHNlKTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCBmYWxzZSwgdHJ1ZSwgYmxh
Y2ssIGJsYWNrLCB0cnVlLCB0cnVlLCBmYWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0aW9uKHZpZGVv
RWxlbWVudCwgZmFsc2UsIHRydWUsIGdyZWVuLCByZWQsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwot
ICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCBmYWxzZSwgcmVkLCBncmVl
biwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVu
dCwgdHJ1ZSwgdHJ1ZSwgZ3JlZW4sIHJlZCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0gICAgcnVu
T25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgdHJ1ZSwgZmFsc2UsIHJlZCwgZ3JlZW4sIGZhbHNl
LCBmYWxzZSwgZmFsc2UpOwotCi0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
InNob3VsZCBiZSBubyBlcnJvcnMiKTsKLSAgICBmaW5pc2hUZXN0KCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdp
ZHRoPSI2NCIgaGVpZ2h0PSI0OCI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTx2aWRlbyBpZD0idmlkIiBzdHlsZT0iZGlz
cGxheTpub25lOyI+Ci0gIDxzb3VyY2Ugc3JjPSIuLi9yZXNvdXJjZXMvbnBvdC12aWRlby5tcDQi
ICB0eXBlPSd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MkUwMUUiJyAvPgotICA8c291cmNlIHNy
Yz0iLi4vcmVzb3VyY2VzL25wb3QtdmlkZW8ud2VibXZwOC53ZWJtIiB0eXBlPSd2aWRlby93ZWJt
OyBjb2RlY3M9InZwOCInIC8+Ci0gIDxzb3VyY2Ugc3JjPSIuLi9yZXNvdXJjZXMvbnBvdC12aWRl
by50aGVvcmEub2d2IiAgdHlwZT0ndmlkZW8vb2dnOyBjb2RlY3M9InRoZW9yYSInIC8+Ci08L3Zp
ZGVvPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLW5wb3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVy
ZS1ucG90Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZDhhZjI4MmUxNDRm
Nzk3ZTAxZTNiMDJiNGJiYzQ2ODk3Y2EyMTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3Qu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0OCArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5
cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu
ZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFs
cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0
aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3Ry
aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBh
bmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0q
KgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp
Y2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y
dGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0q
KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFU
RVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBOb24tUG93ZXIgb2YgMiB0ZXh0dXJl
IGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52
YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHN0eWxlPSJ3aWR0aDogNDBweDsg
aGVpZ2h0OiAzMHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKLWF0dHJpYnV0ZSB2ZWMy
IHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAg
Z2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci0gICAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7Ci19Ci08
L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVu
dCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLXVuaWZvcm0gc2FtcGxlckN1YmUgdGV4Owot
dmFyeWluZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9GcmFnQ29sb3Ig
PSB0ZXh0dXJlQ3ViZSh0ZXgsIG5vcm1hbGl6ZSh2ZWMzKHRleENvb3JkLCAxKSkpOwotfQotPC9z
Y3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oZG9jdW1lbnQudGl0
bGUpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dCgiZXhhbXBsZSIpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wp
OwotCi1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9y
cyBmcm9tIHNldHVwLiIpOwotCi12YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotCi0vLyBD
aGVjayB0aGF0IGFuIE5QT1QgdGV4dHVyZSBub3Qgb24gbGV2ZWwgMCBnZW5lcmF0ZXMgSU5WQUxJ
RF9WQUxVRQotd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDUsIDMsIFswLCAxOTIsIDEyOCwgMjU1
XSwgMSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsCi0gICAgImdsLnRl
eEltYWdlMkQgd2l0aCBOUE9UIHRleHR1cmUgd2l0aCBsZXZlbCA+IDAgc2hvdWxkIHJldHVybiBJ
TlZBTElEX1ZBTFVFIik7Ci0KLS8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJlIG9uIGxldmVs
IDAgc3VjY2VlZHMKLXd0dS5maWxsVGV4dHVyZShnbCwgdGV4LCA1LCAzLCBbMCwgMTkyLCAxMjgs
IDI1NV0pOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAiZ2wudGV4SW1h
Z2UyRCB3aXRoIE5QT1QgdGV4dHVyZSBhdCBsZXZlbCAwIHNob3VsZCBzdWNjZWVkIik7Ci0KLS8v
IENoZWNrIHRoYXQgZ2VuZXJhdGVNaXBtYXAgZmFpbHMgb24gTlBPVAotZ2wuZ2VuZXJhdGVNaXBt
YXAoZ2wuVEVYVFVSRV8yRCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLAotICAgICJnbC5nZW5lcmF0ZU1pcG1hcCB3aXRoIE5QT1QgdGV4dHVyZSBzaG91bGQgcmV0
dXJuIElOVkFMSURfT1BFUkFUSU9OIik7Ci0KLXZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24ocHJvZ3JhbSwgInRleCIpOwotZ2wudW5pZm9ybTFpKGxvYywgMCk7Ci0KLS8vIENoZWNrIHRo
YXQgbm90aGluZyBpcyBkcmF3biBpZiBmaWx0ZXJpbmcgaXMgbm90IGNvcnJlY3QgZm9yIE5QT1QK
LWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1MsIGdsLlJFUEVBVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5SRVBFQVQpOwotCi13dHUuY2xlYXJBbmREcmF3
VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMCwgMCwgMjU1XSwK
LSAgICAiTlBPVCB0ZXh0dXJlIHdpdGggVEVYVFVSRV9XUkFQIHNldCB0byBSRVBFQVQgc2hvdWxk
IGRyYXcgd2l0aCAwLDAsMCwyNTUiKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBf
VE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlO
X0ZJTFRFUiwgZ2wuTkVBUkVTVF9NSVBNQVBfTElORUFSKTsKLQotd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAsIDAsIDAsIDI1NV0sCi0g
ICAgIk5QT1QgdGV4dHVyZSB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBub3QgTkVBUkVTVCBvciBM
SU5FQVIgc2hvdWxkIGRyYXcgd2l0aCAwLDAsMCwyNTUiKTsKLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5F
QVIpOwotCi13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAot
ICAgIGdsLCBbMCwgMTkyLCAxMjgsIDI1NV0sCi0gICAgIk5QT1QgdGV4dHVyZSB3aXRoIFRFWFRV
UkVfTUlOX0ZJTFRFUiBzZXQgdG8gTElORUFSIHNob3VsZCBkcmF3LiIpOwotCi1nbC5jb3B5VGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCBnbC5SR0JBLCAwLCAwLCA1LCAzLCAwKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKLSAgICAiY29weVRleEltYWdlMkQgd2l0
aCBOUE9UIHRleHR1cmUgd2l0aCBsZXZlbCA+IDAgc2hvdWxkIHJldHVybiBJTlZBTElEX1ZBTFVF
LiIpOwotCi0vLyBDaGVjayB0aGF0IGdlbmVyYXRlTWlwbWFwIGZvciBhbiBQT1QgdGV4dHVyZSBz
dWNjZWVkcwotd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDQsIDQsIFswLCAxOTIsIDEyOCwgMjU1
XSk7Ci1nbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsCi0gICAgImdsLnRleEltYWdlMkQgYW5kIGdsLmdlbmVyYXRlTWlwbWFw
IHdpdGggUE9UIHRleHR1cmUgYXQgbGV2ZWwgMCBzaG91bGQgc3VjY2VlZCIpOwotCi1nbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFS
X01JUE1BUF9MSU5FQVIpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFUKTsKLQotd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAsIDE5MiwgMTI4
LCAyNTVdLAotICAgICJQT1QgdGV4dHVyZSB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBzZXQgdG8g
TElORUFSX01JUE1BUF9MSU5FQVIgc2hvdWxkIGRyYXcuIik7Ci1nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotCi1kZWJ1
ZygiIik7Ci1kZWJ1ZygiY2hlY2sgdXNpbmcgY3ViZW1hcCIpOwotdmFyIHByb2dyYW0gPSB3dHUu
c2V0dXBQcm9ncmFtKAotICAgIGdsLCBbJ3ZzaGFkZXInLCAnZnNoYWRlciddLCBbJ3ZQb3NpdGlv
bicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKLXZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0KLS8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJlIG5vdCBvbiBsZXZlbCAwIGdlbmVyYXRl
cyBJTlZBTElEX1ZBTFVFCi1maWxsQ3ViZVRleHR1cmUoZ2wsIHRleCwgNSwgMywgWzAsIDE5Miwg
MTI4LCAyNTVdLCAxKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKLSAg
ICAiZ2wudGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSB3aXRoIGxldmVsID4gMCBzaG91bGQg
cmV0dXJuIElOVkFMSURfVkFMVUUiKTsKLQotLy8gQ2hlY2sgdGhhdCBhbiBOUE9UIHRleHR1cmUg
b24gbGV2ZWwgMCBzdWNjZWVkcwotZmlsbEN1YmVUZXh0dXJlKGdsLCB0ZXgsIDUsIDUsIFswLCAx
OTIsIDEyOCwgMjU1XSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICJn
bC50ZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0dXJlIGF0IGxldmVsIDAgc2hvdWxkIHN1Y2NlZWQi
KTsKLQotLy8gQ2hlY2sgdGhhdCBnZW5lcmF0ZU1pcG1hcCBmYWlscyBvbiBOUE9UCi1nbC5nZW5l
cmF0ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImdsLmdlbmVyYXRlTWlwbWFwIHdpdGggTlBPVCB0ZXh0
dXJlIHNob3VsZCByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT04iKTsKLQotdmFyIGxvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci1nbC51bmlmb3JtMWkobG9jLCAwKTsK
LQotLy8gQ2hlY2sgdGhhdCBub3RoaW5nIGlzIGRyYXduIGlmIGZpbHRlcmluZyBpcyBub3QgY29y
cmVjdCBmb3IgTlBPVAotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5U
RVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuUkVQ
RUFUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9X
UkFQX1QsIGdsLlJFUEVBVCk7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUu
Y2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAwLCAwLCAyNTVdLAotICAgICJOUE9UIGN1YmVtYXAg
d2l0aCBURVhUVVJFX1dSQVAgc2V0IHRvIFJFUEVBVCBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1
NSIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMgZnJvbSBzZXR1cC4iKTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQ
LCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdF
KTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5ORUFSRVNUX01JUE1BUF9MSU5FQVIpOwotCi13dHUuY2xlYXJBbmREcmF3VW5p
dFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMCwgMCwgMjU1XSwKLSAg
ICAiTlBPVCBjdWJlbWFwIHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIG5vdCBORUFSRVNUIG9yIExJ
TkVBUiBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGds
LkxJTkVBUik7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUuY2hlY2tDYW52
YXMoCi0gICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1XSwKLSAgICAiTlBPVCBjdWJlbWFwIHdpdGgg
VEVYVFVSRV9NSU5fRklMVEVSIHNldCB0byBMSU5FQVIgc2hvdWxkIGRyYXcuIik7Ci0KLS8vIENo
ZWNrIHRoYXQgYW4gUE9UIHRleHR1cmUgb24gbGV2ZWwgMCBzdWNjZWVkcwotZmlsbEN1YmVUZXh0
dXJlKGdsLCB0ZXgsIDQsIDQsIFswLCAxOTIsIDEyOCwgMjU1XSk7Ci1nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLAotICAgICJnbC50ZXhJbWFnZTJEIHdpdGggUE9UIHRleHR1cmUgYXQg
bGV2ZWwgMCBzaG91bGQgc3VjY2VlZCIpOwotCi1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
Q1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9MSU5FQVIp
OwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01BR19G
SUxURVIsIGdsLkxJTkVBUik7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAs
IGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFUKTsKLQotd3R1LmNsZWFy
QW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAsIDAsIDAs
IDI1NV0sCi0gICAgIlBPVCBjdWJlbWFwIHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIHNldCB0byBM
SU5FQVJfTUlQTUFQX0xJTkVBUiBidXQgbm8gbWlwcyBkcmF3IHdpdGggMCwwLDAsMjU1Iik7Ci0K
LS8vIENoZWNrIHRoYXQgZ2VuZXJhdGVNaXBtYXAgc3VjY2VlZHMgb24gUE9UCi1nbC5nZW5lcmF0
ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsCi0gICAgImdsLmdlbmVyYXRlTWlwbWFwIHdpdGggUE9UIHRleHR1cmUgc2hvdWxkIHJl
dHVybiBzdWNjZWVkIik7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUuY2hl
Y2tDYW52YXMoCi0gICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1XSwKLSAgICAiUE9UIGN1YmVtYXAg
d2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0IHRvIExJTkVBUl9NSVBNQVBfTElORUFSIHNob3Vs
ZCBkcmF3LiIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotZnVuY3Rpb24g
ZmlsbEN1YmVUZXh0dXJlKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfbGV2ZWwp
IHsKLSAgb3B0X2xldmVsID0gb3B0X2xldmVsIHx8IDA7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgY2FudmFzLndpZHRoID0gd2lkdGg7Ci0gIGNh
bnZhcy5oZWlnaHQgPSBoZWlnaHQ7Ci0gIHZhciBjdHgyZCA9IGNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOwotICBjdHgyZC5maWxsU3R5bGUgPSAicmdiYSgiICsgY29sb3JbMF0gKyAiLCIgKyBjb2xv
clsxXSArICIsIiArIGNvbG9yWzJdICsgIiwiICsgY29sb3JbM10gKyAiKSI7Ci0gIGN0eDJkLmZp
bGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
X0NVQkVfTUFQLCB0ZXgpOwotICB2YXIgdGFyZ2V0cyA9IFsKLSAgICBnbC5URVhUVVJFX0NVQkVf
TUFQX1BPU0lUSVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAotICAg
IGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQ
X05FR0FUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgIGds
LlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl07Ci0gIGZvciAodmFyIHR0ID0gMDsgdHQgPCB0
YXJnZXRzLmxlbmd0aDsgKyt0dCkgewotICAgIGdsLnRleEltYWdlMkQoCi0gICAgICAgIHRhcmdl
dHNbdHRdLCBvcHRfbGV2ZWwsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNh
bnZhcyk7Ci0gIH0KLX07Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtY3ViZS1tYXBzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNDU0YzQzYjkxZWU1OWYyMGZlZTIw
ZmEzODc5YTEzZmIyYzhhOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtY3ViZS1tYXBz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNTUgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot
KioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVyZSBzaXplIGN1YmUgbWFw
IGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHN0eWxlPSJ3aWR0aDogNDBw
eDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKLXVuaWZvcm0gbWF0
NCByb3RhdGlvbjsKLXZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAg
Z2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci0gICAgdmVjNCBkaXJlY3Rpb24gPSB2ZWM0KHZQb3Np
dGlvbi54ICogMC41LCB2UG9zaXRpb24ueSAqIDAuNSwgMSwgMSk7Ci0gICAgdGV4Q29vcmQgPSBu
b3JtYWxpemUoKHJvdGF0aW9uICogZGlyZWN0aW9uKS54eXopOwotfQotPC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7Ci11bmlmb3JtIHNhbXBsZXJDdWJlIHRleDsKLXZhcnlpbmcgdmVjMyB0
ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZUN1YmUo
dGV4LCBub3JtYWxpemUodGV4Q29vcmQpKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLXZhciBjYW52YXM7Ci1kZXNjcmlwdGlvbigiQ2hlY2tzIGlzc3VlcyB3aXRoIHNp
emUgb2YgY3ViZSBtYXAgdGV4dHVyZXMiKTsKLWRlYnVnKCIiKTsKLQotdmFyIHd0dSA9IFdlYkdM
VGVzdFV0aWxzOwotdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxl
Iik7Ci0KLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKLXd0dS5zZXR1cFVu
aXRRdWFkKGdsLCAwLCAxKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICBn
bCwKLSAgICBbJ3ZzaGFkZXInLCAnZnNoYWRlciddLAotICAgIFsndlBvc2l0aW9uJywgJ3RleENv
b3JkMCddLCBbMCwgMV0pOwotdmFyIHJvdExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9n
cmFtLCAicm90YXRpb24iKTsKLQotZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLWdsLmRpc2Fi
bGUoZ2wuQkxFTkQpOwotCi12YXIgbWF4U2l6ZSA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfQ1VC
RV9NQVBfVEVYVFVSRV9TSVpFKTsKLWRlYnVnKCJtYXggY3ViZSBtYXAgc2l6ZTogIiArIG1heFNp
emUpOwotbWF4U2l6ZSA9IE1hdGgubWluKDUxMiwgbWF4U2l6ZSk7Ci0KLS8vIGEgY3ViZSBtYXAg
b2YgNTEyeDUxMiB0YWtlcyA2bWVnLiBJJ20gYXNzdW1pbmcgaXQncyBub3QKLS8vIHVucmVhc29u
YWJsZSB0byBleHBlY3QgdG8gYmUgYWJsZSB0byBhbGxvY2F0ZSBhIDZtZWcgdGV4dHVyZQotCi12
YXIgY29sb3JzID0gWwotICB7bmFtZTogJ3JlZCcsICAgICBjb2xvcjogWzI1NSwgICAwLCAgIDAs
IDI1NV19LAotICB7bmFtZTogJ2dyZWVuJywgICBjb2xvcjogWyAgMCwgMjU1LCAgIDAsIDI1NV19
LAotICB7bmFtZTogJ2JsdWUnLCAgICBjb2xvcjogWyAgMCwgICAwLCAyNTUsIDI1NV19LAotICB7
bmFtZTogJ3llbGxvdycsICBjb2xvcjogWzI1NSwgMjU1LCAgIDAsIDI1NV19LAotICB7bmFtZTog
J2N5YW4nLCAgICBjb2xvcjogWyAgMCwgMjU1LCAyNTUsIDI1NV19LAotICB7bmFtZTogJ21hZ2Vu
dGEnLCBjb2xvcjogWzI1NSwgICAwLCAyNTUsIDI1NV19Ci1dOwotCi12YXIgdGFyZ2V0cyA9IFsK
LSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICBnbC5URVhUVVJFX0NVQkVfTUFQ
X05FR0FUSVZFX1gsCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1osCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl07Ci0KLXZhciByb3RhdGlvbnMg
PSBbCi0gIHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICB7YXhpczog
WzAsIDEsIDBdLCBhbmdsZTogLU1hdGguUEkgLyAyfSwKLSAge2F4aXM6IFsxLCAwLCAwXSwgYW5n
bGU6IC1NYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAv
IDJ9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIDB9LAotICB7YXhpczogWzAsIDEsIDBd
LCBhbmdsZTogIE1hdGguUEl9LAotXTsKLQotdmFyIGhhbGZSb3RhdGlvbnMgPSBbCi0gIHtjb2xv
cnM6IFszLCA0XSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6ICBNYXRoLlBJ
IC8gNH1dfSwKLSAge2NvbG9yczogWzQsIDJdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBd
LCBhbmdsZTogLU1hdGguUEkgLyA0fV19LAotICB7Y29sb3JzOiBbNSwgM10sIHJvdGF0aW9uczog
W3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDQgKiAzfV19LAotICB7Y29sb3Jz
OiBbMiwgNV0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAv
IDQgKiAzfV19LAotICB7Y29sb3JzOiBbMywgMF0sIHJvdGF0aW9uczogW3theGlzOiBbMCwgMSwg
MF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDR9XX0sCi0gIHtjb2xvcnM6IFsw
LCAyXSwgcm90YXRpb25zOiBbe2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gMn0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6
IC1NYXRoLlBJIC8gNH1dfSwKLV07Ci0KLXZhciBjb3VudCA9IDA7Ci12YXIgc2l6ZUNvdW50ID0g
MDsKLQotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkgewotICB2YXIgc2l6ZSA9IE1hdGgucG93
KDIsIHNpemVDb3VudCk7Ci0gIGlmIChzaXplID4gbWF4U2l6ZSB8fCAhdGVzdFNpemUoc2l6ZSkp
IHsKLSAgICBmaW5pc2hUZXN0KCk7Ci0gIH0gZWxzZSB7Ci0gICAgKytzaXplQ291bnQ7Ci0gICAg
c2V0VGltZW91dCh0ZXN0LCAwKTsKLSAgfQotfQotCi1mdW5jdGlvbiB0ZXN0U2l6ZShzaXplKSB7
Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoInRlc3Rpbmcgc2l6ZTogIiArIHNpemUpOwotICB2YXIg
Y2FudmFzU2l6ZSA9IE1hdGgubWF4KHNpemUgLyA0LCAyKTsKLSAgY2FudmFzLndpZHRoID0gY2Fu
dmFzU2l6ZTsKLSAgY2FudmFzLmhlaWdodCA9IGNhbnZhc1NpemU7Ci0gIGdsLnZpZXdwb3J0KDAs
IDAsIGNhbnZhc1NpemUsIGNhbnZhc1NpemUpOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXgpOwotCi0gIC8v
IFNlZW1zIGxpa2UgSSBzaG91bGQgYmUgdXNpbmcgTElORUFSIGhlcmUgd2l0aCBzb21lIG90aGVy
IG1hdGgKLSAgLy8gdG8gbWFrZSBzdXJlIEkgZ2V0IG1vcmUgbWlwIGNvdmVyYWdlIGJ1dCB0aGF0
J3MgZWFzaWVyIHNhaWQKLSAgLy8gdGhhbiBkb25lLgotCi0gIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01BR19GSUxU
RVIsIGdsLk5FQVJFU1QpOwotCi0gIGZvciAodmFyIGpqID0gMDsgamogPCAyOyArK2pqKSB7Ci0g
ICAgZm9yICh2YXIgdHQgPSAwOyB0dCA8IHRhcmdldHMubGVuZ3RoOyArK3R0KSB7Ci0gICAgICB2
YXIgY29sb3IgPSBjb2xvcnNbKHR0ICsgY291bnQpICUgY29sb3JzLmxlbmd0aF07Ci0gICAgICBm
aWxsTGV2ZWwodGFyZ2V0c1t0dF0sIDAsIHNpemUsIGNvbG9yLmNvbG9yKTsKLSAgICB9Ci0gICAg
aWYgKGpqID09IDEpIHsKLSAgICAgIGRlYnVnKCJ1c2UgbWlwbWFwIik7Ci0gICAgICBnbC50ZXhQ
YXJhbWV0ZXJpKAotICAgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlO
X0ZJTFRFUiwKLSAgICAgICAgICBnbC5ORUFSRVNUX01JUE1BUF9ORUFSRVNUKTsKLSAgICAgIGds
LmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOwotICAgIH0KLQotICAgIHZhciBl
cnIgPSBnbC5nZXRFcnJvcigpOwotICAgIGlmIChlcnIgPT0gZ2wuT1VUX09GX01FTU9SWSkgewot
ICAgICAgZGVidWcoIm91dCBvZiBtZW1vcnkiKTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAgICAgdGVzdEZhaWxlZCgidW5leHBl
Y3RlZCBnbCBlcnJvcjogIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgZXJyKSk7Ci0gICAgfQot
Ci0KLSAgICBmb3IgKHZhciByciA9IDA7IHJyIDwgcm90YXRpb25zLmxlbmd0aDsgKytycikgewot
ICAgICAgdmFyIHJvdCA9IHJvdGF0aW9uc1tycl07Ci0gICAgICB2YXIgY29sb3IgPSBjb2xvcnNb
KHJyICsgY291bnQpICUgY29sb3JzLmxlbmd0aF07Ci0gICAgICB2YXIgcm90TWF0ID0gYXhpc1Jv
dGF0aW9uKHJvdC5heGlzLCByb3QuYW5nbGUpOwotICAgICAgZ2wudW5pZm9ybU1hdHJpeDRmdihy
b3RMb2MsIGZhbHNlLCByb3RNYXQpOwotICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGds
KTsKLSAgICAgIHd0dS5jaGVja0NhbnZhcygKLSAgICAgICAgICBnbCwgY29sb3IuY29sb3IsCi0g
ICAgICAgICAgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJnZXRzW3JyXSkgKyAiIHNob3VsZCBi
ZSAiICsgY29sb3IubmFtZSk7Ci0gICAgfQotCi0gICAgZm9yICh2YXIgcnIgPSAwOyByciA8IGhh
bGZSb3RhdGlvbnMubGVuZ3RoOyArK3JyKSB7Ci0gICAgICB2YXIgaCA9IGhhbGZSb3RhdGlvbnNb
cnJdOwotICAgICAgdmFyIHJvdHMgPSBoLnJvdGF0aW9uczsKLSAgICAgIHZhciByb3RNYXQgPSBh
eGlzUm90YXRpb24ocm90c1swXS5heGlzLCByb3RzWzBdLmFuZ2xlKTsKLSAgICAgIGZvciAodmFy
IGlpID0gMTsgaWkgPCByb3RzLmxlbmd0aDsgKytpaSkgewotICAgICAgICB2YXIgdG1wTWF0ID0g
YXhpc1JvdGF0aW9uKHJvdHNbaWldLmF4aXMsIHJvdHNbaWldLmFuZ2xlKTsKLSAgICAgICAgdmFy
IHJvdE1hdCA9IG11bE1hdHJpeCh0bXBNYXQsIHJvdE1hdCk7Ci0gICAgICB9Ci0gICAgICBnbC51
bmlmb3JtTWF0cml4NGZ2KHJvdExvYywgZmFsc2UsIHJvdE1hdCk7Ci0gICAgICB3dHUuY2xlYXJB
bmREcmF3VW5pdFF1YWQoZ2wpOwotCi0gICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsgKytp
aSkgewotICAgICAgICBjaGVja1JlY3QoCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgY2Fu
dmFzU2l6ZSAvIDIgKiBpaSwKLSAgICAgICAgICAgIGNhbnZhc1NpemUsCi0gICAgICAgICAgICBj
YW52YXNTaXplIC8gMiwKLSAgICAgICAgICAgIGNvbG9yc1soaC5jb2xvcnNbaWldICsgY291bnQp
ICUgY29sb3JzLmxlbmd0aF0pOwotICAgICAgfQotICAgIH0KLSAgICArK2NvdW50OwotICB9Ci0K
LSAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMuIik7Ci0KLWZ1bmN0
aW9uIGNoZWNrUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcikgewotICB3dHUuY2hlY2tD
YW52YXNSZWN0KAotICAgICAgIGdsLAotICAgICAgIHgsCi0gICAgICAgeSwKLSAgICAgICB3aWR0
aCwKLSAgICAgICBoZWlnaHQsCi0gICAgICAgY29sb3IuY29sb3IsCi0gICAgICAgIiIgKyB4ICsg
IiwgIiArIHkgKyAiLCAiICsgd2lkdGggKyAiLCAiICsgaGVpZ2h0ICsKLSAgICAgICAiIHNob3Vs
ZCBiZSAiICsgY29sb3IubmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIGZpbGxMZXZlbCh0YXJnZXQsIGxl
dmVsLCBzaXplLCBjb2xvcikgewotICB2YXIgbnVtUGl4ZWxzID0gc2l6ZSAqIHNpemU7Ci0gIHZh
ciBwaXhlbHMgPSBuZXcgVWludDhBcnJheShudW1QaXhlbHMgKiA0KTsKLSAgdmFyIHBpeGVsUm93
ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSAqIDQpOwotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgc2l6
ZTsgKytqaikgewotICAgIHZhciBvZmYgPSBqaiAqIDQ7Ci0gICAgcGl4ZWxSb3dbb2ZmICsgMF0g
PSBjb2xvclswXTsKLSAgICBwaXhlbFJvd1tvZmYgKyAxXSA9IGNvbG9yWzFdOwotICAgIHBpeGVs
Um93W29mZiArIDJdID0gY29sb3JbMl07Ci0gICAgcGl4ZWxSb3dbb2ZmICsgM10gPSBjb2xvclsz
XTsKLSAgfQotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgc2l6ZTsgKytqaikgewotICAgIHZhciBv
ZmYgPSBqaiAqIHNpemUgKiA0OwotICAgIHBpeGVscy5zZXQocGl4ZWxSb3csIG9mZik7Ci0gIH0K
LSAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgIHRhcmdldCwgbGV2ZWwsIGdsLlJHQkEsIHNpemUsIHNp
emUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICBwaXhlbHMpOwotfQotCi1m
dW5jdGlvbiBwcmludE1hdChtYXQpIHsKLSAgZGVidWcoIiIgKyBtYXRbMF0gKyAiLCAiICsgbWF0
WzFdICsgIiwgIiArIG1hdFsyXSArICIsICIgKyBtYXRbM10gKyAiLCAiKTsKLSAgZGVidWcoIiIg
KyBtYXRbNF0gKyAiLCAiICsgbWF0WzVdICsgIiwgIiArIG1hdFs2XSArICIsICIgKyBtYXRbN10g
KyAiLCAiKTsKLSAgZGVidWcoIiIgKyBtYXRbOF0gKyAiLCAiICsgbWF0WzldICsgIiwgIiArIG1h
dFsxMF0gKyAiLCAiICsgbWF0WzExXSArICIsICIpOwotICBkZWJ1ZygiIiArIG1hdFsxMl0gKyAi
LCAiICsgbWF0WzEzXSArICIsICIgKyBtYXRbMTRdICsgIiwgIiArIG1hdFsxNV0gKyAiLCAiKTsK
LX0KLQotZnVuY3Rpb24gYXhpc1JvdGF0aW9uKGF4aXMsIGFuZ2xlKSB7Ci0gIHZhciBkc3QgPSBu
ZXcgRmxvYXQzMkFycmF5KDE2KTsKLSAgdmFyIHggPSBheGlzWzBdOwotICB2YXIgeSA9IGF4aXNb
MV07Ci0gIHZhciB6ID0gYXhpc1syXTsKLSAgdmFyIG4gPSBNYXRoLnNxcnQoeCAqIHggKyB5ICog
eSArIHogKiB6KTsKLSAgeCAvPSBuOwotICB5IC89IG47Ci0gIHogLz0gbjsKLSAgdmFyIHh4ID0g
eCAqIHg7Ci0gIHZhciB5eSA9IHkgKiB5OwotICB2YXIgenogPSB6ICogejsKLSAgdmFyIGMgPSBN
YXRoLmNvcyhhbmdsZSk7Ci0gIHZhciBzID0gTWF0aC5zaW4oYW5nbGUpOwotICB2YXIgb25lTWlu
dXNDb3NpbmUgPSAxIC0gYzsKLQotICBkc3RbIDBdID0geHggKyAoMSAtIHh4KSAqIGM7Ci0gIGRz
dFsgMV0gPSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lICsgeiAqIHM7Ci0gIGRzdFsgMl0gPSB4ICog
eiAqIG9uZU1pbnVzQ29zaW5lIC0geSAqIHM7Ci0gIGRzdFsgM10gPSAwOwotICBkc3RbIDRdID0g
eCAqIHkgKiBvbmVNaW51c0Nvc2luZSAtIHogKiBzOwotICBkc3RbIDVdID0geXkgKyAoMSAtIHl5
KSAqIGM7Ci0gIGRzdFsgNl0gPSB5ICogeiAqIG9uZU1pbnVzQ29zaW5lICsgeCAqIHM7Ci0gIGRz
dFsgN10gPSAwOwotICBkc3RbIDhdID0geCAqIHogKiBvbmVNaW51c0Nvc2luZSArIHkgKiBzOwot
ICBkc3RbIDldID0geSAqIHogKiBvbmVNaW51c0Nvc2luZSAtIHggKiBzOwotICBkc3RbMTBdID0g
enogKyAoMSAtIHp6KSAqIGM7Ci0gIGRzdFsxMV0gPSAwOwotICBkc3RbMTJdID0gMDsKLSAgZHN0
WzEzXSA9IDA7Ci0gIGRzdFsxNF0gPSAwOwotICBkc3RbMTVdID0gMTsKLQotICByZXR1cm4gZHN0
OwotfTsKLQotZnVuY3Rpb24gbXVsTWF0cml4KGEsIGIpIHsKLSAgdmFyIGRzdCA9IG5ldyBGbG9h
dDMyQXJyYXkoMTYpOwotICB2YXIgYTAwID0gYVswXTsKLSAgdmFyIGEwMSA9IGFbMV07Ci0gIHZh
ciBhMDIgPSBhWzJdOwotICB2YXIgYTAzID0gYVszXTsKLSAgdmFyIGExMCA9IGFbIDQgKyAwXTsK
LSAgdmFyIGExMSA9IGFbIDQgKyAxXTsKLSAgdmFyIGExMiA9IGFbIDQgKyAyXTsKLSAgdmFyIGEx
MyA9IGFbIDQgKyAzXTsKLSAgdmFyIGEyMCA9IGFbIDggKyAwXTsKLSAgdmFyIGEyMSA9IGFbIDgg
KyAxXTsKLSAgdmFyIGEyMiA9IGFbIDggKyAyXTsKLSAgdmFyIGEyMyA9IGFbIDggKyAzXTsKLSAg
dmFyIGEzMCA9IGFbMTIgKyAwXTsKLSAgdmFyIGEzMSA9IGFbMTIgKyAxXTsKLSAgdmFyIGEzMiA9
IGFbMTIgKyAyXTsKLSAgdmFyIGEzMyA9IGFbMTIgKyAzXTsKLSAgdmFyIGIwMCA9IGJbMF07Ci0g
IHZhciBiMDEgPSBiWzFdOwotICB2YXIgYjAyID0gYlsyXTsKLSAgdmFyIGIwMyA9IGJbM107Ci0g
IHZhciBiMTAgPSBiWyA0ICsgMF07Ci0gIHZhciBiMTEgPSBiWyA0ICsgMV07Ci0gIHZhciBiMTIg
PSBiWyA0ICsgMl07Ci0gIHZhciBiMTMgPSBiWyA0ICsgM107Ci0gIHZhciBiMjAgPSBiWyA4ICsg
MF07Ci0gIHZhciBiMjEgPSBiWyA4ICsgMV07Ci0gIHZhciBiMjIgPSBiWyA4ICsgMl07Ci0gIHZh
ciBiMjMgPSBiWyA4ICsgM107Ci0gIHZhciBiMzAgPSBiWzEyICsgMF07Ci0gIHZhciBiMzEgPSBi
WzEyICsgMV07Ci0gIHZhciBiMzIgPSBiWzEyICsgMl07Ci0gIHZhciBiMzMgPSBiWzEyICsgM107
Ci0gIGRzdFsgMF0gPSBhMDAgKiBiMDAgKyBhMDEgKiBiMTAgKyBhMDIgKiBiMjAgKyBhMDMgKiBi
MzA7Ci0gIGRzdFsgMV0gPSBhMDAgKiBiMDEgKyBhMDEgKiBiMTEgKyBhMDIgKiBiMjEgKyBhMDMg
KiBiMzE7Ci0gIGRzdFsgMl0gPSBhMDAgKiBiMDIgKyBhMDEgKiBiMTIgKyBhMDIgKiBiMjIgKyBh
MDMgKiBiMzI7Ci0gIGRzdFsgM10gPSBhMDAgKiBiMDMgKyBhMDEgKiBiMTMgKyBhMDIgKiBiMjMg
KyBhMDMgKiBiMzM7Ci0gIGRzdFsgNF0gPSBhMTAgKiBiMDAgKyBhMTEgKiBiMTAgKyBhMTIgKiBi
MjAgKyBhMTMgKiBiMzA7Ci0gIGRzdFsgNV0gPSBhMTAgKiBiMDEgKyBhMTEgKiBiMTEgKyBhMTIg
KiBiMjEgKyBhMTMgKiBiMzE7Ci0gIGRzdFsgNl0gPSBhMTAgKiBiMDIgKyBhMTEgKiBiMTIgKyBh
MTIgKiBiMjIgKyBhMTMgKiBiMzI7Ci0gIGRzdFsgN10gPSBhMTAgKiBiMDMgKyBhMTEgKiBiMTMg
KyBhMTIgKiBiMjMgKyBhMTMgKiBiMzM7Ci0gIGRzdFsgOF0gPSBhMjAgKiBiMDAgKyBhMjEgKiBi
MTAgKyBhMjIgKiBiMjAgKyBhMjMgKiBiMzA7Ci0gIGRzdFsgOV0gPSBhMjAgKiBiMDEgKyBhMjEg
KiBiMTEgKyBhMjIgKiBiMjEgKyBhMjMgKiBiMzE7Ci0gIGRzdFsxMF0gPSBhMjAgKiBiMDIgKyBh
MjEgKiBiMTIgKyBhMjIgKiBiMjIgKyBhMjMgKiBiMzI7Ci0gIGRzdFsxMV0gPSBhMjAgKiBiMDMg
KyBhMjEgKiBiMTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzM7Ci0gIGRzdFsxMl0gPSBhMzAgKiBi
MDAgKyBhMzEgKiBiMTAgKyBhMzIgKiBiMjAgKyBhMzMgKiBiMzA7Ci0gIGRzdFsxM10gPSBhMzAg
KiBiMDEgKyBhMzEgKiBiMTEgKyBhMzIgKiBiMjEgKyBhMzMgKiBiMzE7Ci0gIGRzdFsxNF0gPSBh
MzAgKiBiMDIgKyBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBiMzI7Ci0gIGRzdFsxNV0g
PSBhMzAgKiBiMDMgKyBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMgKiBiMzM7Ci0gIHJldHVy
biBkc3Q7Ci19OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4dHVyZS1zaXplLWxpbWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtc2l6ZS1saW1pdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0M2Rh
OWE2M2QzZTE3ODEzNGUyMDU5NzE1NWFjYzc5OGQ4MjNlNTY3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1zaXplLWxpbWl0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTkgKzAsMCBAQAotPCEt
LQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoq
Ci0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
LSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVy
ZSBzaXplIGxpbWl0IGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBzdHlsZT0i
d2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJp
Y3QiOwotZGVzY3JpcHRpb24oIkNoZWNrcyB0aGF0IHZhcmlvdXMgc2l6ZXMgbGltaXRzIG9mIHRl
eHR1cmVzICIpCi12YXIgY2FudmFzOwotCi1mdW5jdGlvbiBudW1MZXZlbHNGcm9tU2l6ZShzaXpl
KSB7Ci0gIHZhciBsZXZlbHMgPSAwOwotICB3aGlsZSAoKHNpemUgPj4gbGV2ZWxzKSA+IDApIHsK
LSAgICArK2xldmVsczsKLSAgfQotICByZXR1cm4gbGV2ZWxzOwotfQotCi12YXIgd3R1ID0gV2Vi
R0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci12
YXIgdGVzdHMgPSBbCi0gIHsgZm9ybWF0OiBnbC5BTFBIQSwgICAgICAgICAgIHR5cGU6IGdsLlVO
U0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6IDEsIGRhdGFUeXBlOiBVaW50OEFycmF5ICB9LAot
ICB7IGZvcm1hdDogZ2wuTFVNSU5BTkNFLCAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLCAg
ICAgICAgICBzaXplOiAxLCBkYXRhVHlwZTogVWludDhBcnJheSAgfSwKLSAgeyBmb3JtYXQ6IGds
LkxVTUlOQU5DRV9BTFBIQSwgdHlwZTogZ2wuVU5TSUdORURfQllURSwgICAgICAgICAgc2l6ZTog
MiwgZGF0YVR5cGU6IFVpbnQ4QXJyYXkgIH0sCi0gIHsgZm9ybWF0OiBnbC5SR0IsICAgICAgICAg
ICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6IDMsIGRhdGFUeXBlOiBV
aW50OEFycmF5ICB9LAotICB7IGZvcm1hdDogZ2wuUkdCLCAgICAgICAgICAgICB0eXBlOiBnbC5V
TlNJR05FRF9TSE9SVF81XzZfNSwgICBzaXplOiAxLCBkYXRhVHlwZTogVWludDE2QXJyYXkgfSwK
LSAgeyBmb3JtYXQ6IGdsLlJHQkEsICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwg
ICAgICAgICAgc2l6ZTogNCwgZGF0YVR5cGU6IFVpbnQ4QXJyYXkgIH0sCi0gIHsgZm9ybWF0OiBn
bC5SR0JBLCAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHNpemU6
IDEsIGRhdGFUeXBlOiBVaW50MTZBcnJheSB9LAotICB7IGZvcm1hdDogZ2wuUkdCQSwgICAgICAg
ICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xLCBzaXplOiAxLCBkYXRhVHlwZTog
VWludDE2QXJyYXkgfQotXTsKLQotLy8gTm90ZTogV2UgZXhwcmVzc2x5IG9ubHkgdXNlIDIgdGV4
dHVyZXMgYmVjYXVzZSBmaXJzdCBhIHRleHR1cmUgd2lsbCBiZSBkZWZpbmVkCi0vLyBhcyB1c2lu
ZyBhbGwgbWlwcyBvZiAxIGZvcm1hdCwgdGhlbiBmb3IgYSBtb21lbnQgaXQgd2lsbCBoYXZlIG1p
eGVkIGZvcm1hdHMgd2hpY2gKLS8vIG1heSB1bmNvdmVyIGJ1Z3MuCi12YXIgdGFyZ2V0cyA9IFsK
LSAgeyB0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgbWF4U2l6ZTogZ2wuZ2V0UGFyYW1ldGVy
KGdsLk1BWF9URVhUVVJFX1NJWkUpLAotICAgIG1heExldmVsOiAxMDAwLAotICAgIHRleDogZ2wu
Y3JlYXRlVGV4dHVyZSgpLAotICAgIHRhcmdldHM6IFtnbC5URVhUVVJFXzJEXQotICB9LAotICB7
IHRhcmdldDogZ2wuVEVYVFVSRV9DVUJFX01BUCwKLSAgICBtYXhTaXplOiBnbC5nZXRQYXJhbWV0
ZXIoZ2wuTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSksCi0gICAgbWF4TGV2ZWw6IDUsCi0gICAg
dGV4OiBnbC5jcmVhdGVUZXh0dXJlKCksCi0gICAgdGFyZ2V0czogWwotICAgICAgZ2wuVEVYVFVS
RV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9YLAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgICAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9aLAotICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCi0gICAgXQotICB9
Ci1dOwotCi1nbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCAxKTsKLQotdmFyIHRy
ZyA9IDA7Ci12YXIgdHQgPSAwOwotcnVuTmV4dFRlc3QoKTsKLQotZnVuY3Rpb24gcnVuTmV4dFRl
c3QoKSB7Ci0gIHZhciB0ID0gdGFyZ2V0c1t0cmddOwotCi0gIGlmICh0dCA9PSAwKSB7Ci0gICAg
dmFyIHRleCA9IHQudGV4OwotICAgIGdsLmJpbmRUZXh0dXJlKHQudGFyZ2V0LCB0ZXgpOwotCi0g
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJtYXggc2l6ZSBmb3IgIiArIHd0dS5nbEVudW1Ub1N0
cmluZyhnbCwgdC50YXJnZXQpICsgIjogIiArIHQubWF4U2l6ZSk7Ci0gICAgdmFyIG51bUxldmVs
cyA9IG51bUxldmVsc0Zyb21TaXplKHQubWF4U2l6ZSk7Ci0gICAgZGVidWcoIm51bSBsZXZlbHMg
IiArIG51bUxldmVscyk7Ci0gIH0KLQotICB2YXIgdGVzdCA9IHRlc3RzW3R0XTsKLSAgdGVzdEZv
cm1hdFR5cGUodCwgdGVzdCk7Ci0gICsrdHQ7Ci0gIGlmICh0dCA9PSB0ZXN0cy5sZW5ndGgpIHsK
LSAgICB0dCA9IDA7Ci0gICAgKyt0cmc7Ci0gICAgaWYgKHRyZyA9PSB0YXJnZXRzLmxlbmd0aCkg
ewotICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgfQotICB3dHUu
d2FpdEZvckNvbXBvc2l0ZShnbCwgcnVuTmV4dFRlc3QpCi19Ci0KLWZ1bmN0aW9uIHRlc3RGb3Jt
YXRUeXBlKHQsIHRlc3QpIHsKLSAgZGVidWcoIiIpOwotICBkZWJ1ZygidGVzdGluZzogIiArIHd0
dS5nbEVudW1Ub1N0cmluZyhnbCwgdGVzdC5mb3JtYXQpICsgIiwgIiArIHd0dS5nbEVudW1Ub1N0
cmluZyhnbCwgdGVzdC50eXBlKSk7Ci0gIGZvciAodmFyIGogPSAwOyBqIDwgdC50YXJnZXRzLmxl
bmd0aDsgKytqKSB7Ci0gICAgdmFyIHRhcmdldCA9IHQudGFyZ2V0c1tqXTsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZGVidWcod3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJnZXQpKTsKLSAgICB2YXIg
bnVtTGV2ZWxzID0gbnVtTGV2ZWxzRnJvbVNpemUodC5tYXhTaXplKTsKLSAgICB2YXIgbnVtVGVz
dExldmVscyA9IE1hdGgubWluKG51bUxldmVscywgdC5tYXhMZXZlbCk7Ci0gICAgZm9yICh2YXIg
bCA9IDA7IGwgPCBudW1UZXN0TGV2ZWxzOyArK2wpIHsKLSAgICAgIC8vIERvIGJvdHRvbSBsZXZl
bHMgZmlyc3Q7Ci0gICAgICB2YXIgc2l6ZSA9IDEgPDwgbDsKLSAgICAgIHZhciBsZXZlbCA9IG51
bUxldmVscyAtIGwgLSAxOwotICAgICAgdmFyIG90aGVyRGltZW5zaW9uID0gdC50YXJnZXQgPT0g
Z2wuVEVYVFVSRV8yRCA/IDEgOiBzaXplOwotICAgICAgdmFyIGJhZFNpemUgPSBzaXplICogMjsK
LSAgICAgIHZhciBiYWRPdGhlckRpbWVuc2lvbiA9IHQudGFyZ2V0ID09IGdsLlRFWFRVUkVfMkQg
PyAxIDogYmFkU2l6ZTsKLSAgICAgIHZhciBwaXhlbHMgPSBuZXcgdGVzdC5kYXRhVHlwZShiYWRT
aXplICogYmFkT3RoZXJEaW1lbnNpb24gKiB0ZXN0LnNpemUpOwotICAgICAgZ2wudGV4SW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCB0ZXN0LmZvcm1hdCwgc2l6ZSwgb3RoZXJEaW1lbnNpb24sIDAsIHRl
c3QuZm9ybWF0LCB0ZXN0LnR5cGUsIHBpeGVscyk7Ci0gICAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAidGhlcmUgc2hvdWxkIGJlIG5vIGVycm9yIGZvciBsZXZlbDogIiArIGxl
dmVsICsgIiAiICsgc2l6ZSArICJ4IiArIG90aGVyRGltZW5zaW9uKTsKLSAgICAgIGdsLnRleElt
YWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdC5mb3JtYXQsIG90aGVyRGltZW5zaW9uLCBzaXplLCAw
LCB0ZXN0LmZvcm1hdCwgdGVzdC50eXBlLCBwaXhlbHMpOwotICAgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJvciBmb3IgbGV2ZWw6ICIg
KyBsZXZlbCArICIgIiArIG90aGVyRGltZW5zaW9uICsgIngiICsgc2l6ZSk7Ci0gICAgICBnbC50
ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3QuZm9ybWF0LCBiYWRTaXplLCBiYWRPdGhlckRp
bWVuc2lvbiwgMCwgdGVzdC5mb3JtYXQsIHRlc3QudHlwZSwgcGl4ZWxzKTsKLSAgICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInNob3VsZCBnZW5lcmF0ZSBJTlZBTElE
X1ZBTFVFIGZvciBsZXZlbDogIiArIGxldmVsICsgIiAiICsgYmFkU2l6ZSArICJ4IiArIGJhZE90
aGVyRGltZW5zaW9uKTsKLSAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdC5m
b3JtYXQsIGJhZE90aGVyRGltZW5zaW9uLCBiYWRTaXplLCAwLCB0ZXN0LmZvcm1hdCwgdGVzdC50
eXBlLCBwaXhlbHMpOwotICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVF
LCAic2hvdWxkIGdlbmVyYXRlIElOVkFMSURfVkFMVUUgZm9yIGxldmVsOiAiICsgbGV2ZWwgKyAi
ICIgKyBiYWRPdGhlckRpbWVuc2lvbiArICJ4IiArIGJhZFNpemUpOwotICAgIH0KLSAgfQotfQot
Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU2N2VkN2JkMmYyYzMyNzg5YjBkNjBkMmFhOGIz
Yjc5ZjdjMDY3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjM4ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
LSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
LSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0t
LT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHRpdGxlPldlYkdMIHRleHR1cmUgc2l6ZSBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+
Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIg
aGVpZ2h0PSIzMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRl
IHZlYzQgdlBvc2l0aW9uOwotYXR0cmlidXRlIHZlYzMgdGV4Q29vcmQwOwotdmFyeWluZyB2ZWMz
IHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsK
LSAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0IGlkPSJm
c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OwotdW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXg7Ci12YXJ5aW5nIHZlYzMgdGV4Q29vcmQ7Ci12
b2lkIG1haW4oKQotewotICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmVDdWJlKHRleCwgbm9ybWFs
aXplKHRleENvb3JkKSk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1k
ZXNjcmlwdGlvbigiQ2hlY2tzIHRoYXQgdmFyaW91cyBzaXplcyBvZiB0ZXh0dXJlcyByZW5kZXIi
KQotdmFyIGNhbnZhczsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotdmFyIHByb2dyYW0yRCA9IHd0dS5zZXR1cFRl
eHR1cmVkUXVhZChnbCk7Ci12YXIgcHJvZ3JhbUN1YmVNYXAgPSB3dHUuc2V0dXBQcm9ncmFtKAot
ICAgIGdsLCBbJ3ZzaGFkZXInLCAnZnNoYWRlciddLCBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAn
XSwgWzAsIDFdKTsKLWdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci1nbC5kaXNhYmxlKGdsLkJM
RU5EKTsKLXZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci12YXIgbWF4MkRTaXplID0gZ2wu
Z2V0UGFyYW1ldGVyKGdsLk1BWF9URVhUVVJFX1NJWkUpOwotdmFyIG1heEN1YmVNYXBTaXplID0g
Z2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUpOwotZGVidWcoIk1B
WF9URVhUVVJFX1NJWkU6IiArIG1heDJEU2l6ZSk7Ci1kZWJ1ZygiTUFYX0NVQkVfTUFQX1RFWFRV
UkVfU0laRToiICsgbWF4Q3ViZU1hcFNpemUpOwotLy8gQXNzdW1pbmcgMjA0OHgyMDQ4eFJHQkEg
KDIybWVnIHdpdGggbWlwcykgd2lsbCBydW4gb24gYWxsIFdlYkdMIHBsYXRmb3JtcwotdmFyIG1h
eDJEU3F1YXJlU2l6ZSA9IE1hdGgubWluKG1heDJEU2l6ZSwgMjA0OCk7Ci0vLyBJJ2QgcHJlZmVy
IHRoaXMgdG8gYmUgMjA0OCBidXQgdGhhdCdzIDE2bWVnIHggNiBmYWNlcyBvciAxMjhtZWcgKHdp
dGggbWlwcykKLS8vIDEwMjQgaXMgMzMuNSBtZWcgKHdpdGggbWlwcykKLXZhciBtYXhDdWJlTWFw
U2l6ZSA9IE1hdGgubWluKG1heEN1YmVNYXBTaXplLCAxMDI0KTsKLQotdmFyIGNvbG9ycyA9IFsK
LSAgeyBuYW1lOiAiZ3JlZW4iLCByZ2JhOiBbMCwgMCwgMjU1LCAyNTVdIH0sCi0gIHsgbmFtZTog
InJlZCIsIHJnYmE6IFsyNTUsIDAsIDAsIDI1NV0gfSwKLSAgeyBuYW1lOiAiYmx1ZSIsIHJnYmE6
IFswLCAyNTUsIDAsIDI1NV0gfSwKLSAgeyBuYW1lOiAieWVsbG93IiwgcmdiYTogWzI1NSwgMjU1
LCAwLCAyNTVdIH0sCi0gIHsgbmFtZTogIm1hZ2VudGEiLCByZ2JhOiBbMjU1LCAwLCAyNTUsIDI1
NV0gfSwKLSAgeyBuYW1lOiAiY3lhbiIsIHJnYmE6IFswLCAyNTUsIDI1NSwgMjU1XSB9Ci1dOwot
Ci12YXIgY291bnQgPSAwOwotdmFyIHBvd2VyID0gMDsKLXJ1blRlc3QoKTsKLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIHZhciBzaXplID0gTWF0aC5w
b3coMiwgcG93ZXIpOwotICAgIGlmIChzaXplID4gbWF4MkRTaXplKSB7Ci0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbTJEKTsKLSAgICBpZiAoIWNo
ZWNrVGV4dHVyZShzaXplLCAxLCBmYWxzZSkpIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWNoZWNr
VGV4dHVyZSgxLCBzaXplLCBmYWxzZSkpIHJldHVybiBmYWxzZTsKLSAgICBpZiAoc2l6ZSA8PSBt
YXgyRFNxdWFyZVNpemUpIHsKLSAgICAgIGlmICghY2hlY2tUZXh0dXJlKHNpemUsIHNpemUsIGZh
bHNlKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0gICAgfQotICAgIGlmIChz
aXplIDw9IG1heEN1YmVNYXBTaXplKSB7Ci0gICAgICBnbC51c2VQcm9ncmFtKHByb2dyYW1DdWJl
TWFwKTsKLSAgICAgIGlmICghY2hlY2tUZXh0dXJlKHNpemUsIHNpemUsIHRydWUpKSB7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0K
LQotICBpZiAoZG9UZXN0KCkpIHsKLSAgICArK3Bvd2VyOwotICAgIHNldFRpbWVvdXQocnVuVGVz
dCwgMCk7Ci0gIH0gZWxzZSB7Ci0gICAgZmluaXNoVGVzdCgpOwotICB9Ci19Ci0KLWZ1bmN0aW9u
IGNoZWNrVGV4dHVyZSh3aWR0aCwgaGVpZ2h0LCBjdWJlTWFwKSB7Ci0gIGRlYnVnKCIiKTsKLSAg
Y291bnQgPSAoY291bnQgKyAxKSAlIGNvbG9ycy5sZW5ndGg7Ci0gIHZhciBjb2xvciA9IGNvbG9y
c1tjb3VudF07Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIHZhciB0YXJnZXQg
PSBjdWJlTWFwID8gZ2wuVEVYVFVSRV9DVUJFX01BUCA6IGdsLlRFWFRVUkVfMkQ7Ci0gIHZhciB0
eXBlID0gY3ViZU1hcCA/ICJjdWJlIG1hcCIgOiAiMkQgdGV4dHVyZSI7Ci0gIGRlYnVnKCJjaGVj
ayAiICsgd2lkdGggKyAiLCAiICsgaGVpZ2h0ICsgIiAiICsgdHlwZSk7Ci0gIGdsLmJpbmRUZXh0
dXJlKHRhcmdldCwgdGV4KTsKLSAgZ2wudGV4UGFyYW1ldGVyaSh0YXJnZXQsIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wudGV4UGFyYW1ldGVyaSh0YXJnZXQsIGdsLlRF
WFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVyaSh0YXJn
ZXQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZmlsbExldmVsKDAs
IHdpZHRoLCBoZWlnaHQsIGNvbG9yLnJnYmEsIGN1YmVNYXApOwotICB2YXIgZXJyID0gZ2wuZ2V0
RXJyb3IoKTsKLSAgaWYgKGVyciA9PSBnbC5PVVRfT0ZfTUVNT1JZKSB7Ci0gICAgZGVidWcoIm91
dCBvZiBtZW1vcnkiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgaWYgKGVyciAhPSBnbC5O
T19FUlJPUikgewotICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZ2wgZXJyb3I6ICIgKyB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIGVycikpOwotICB9Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVh
ZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgY29sb3IucmdiYSwKLSAgICAgIHR5cGUgKyAi
IG9mIHNpemUgIiArIHdpZHRoICsgIngiICsgaGVpZ2h0ICsgIiB3aXRoIG5vIG1pcHMgc2hvdWxk
IGRyYXcgd2l0aCAiICsgY29sb3IubmFtZSk7Ci0gIGNvdW50ID0gKGNvdW50ICsgMSkgJSBjb2xv
cnMubGVuZ3RoOwotICBjb2xvciA9IGNvbG9yc1tjb3VudF07Ci0gIGZpbGxMZXZlbCgwLCB3aWR0
aCwgaGVpZ2h0LCBjb2xvci5yZ2JhLCBjdWJlTWFwKTsKLSAgZ2wuZ2VuZXJhdGVNaXBtYXAodGFy
Z2V0KTsKLSAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gIGlmIChlcnIgPT0gZ2wuT1VUX09G
X01FTU9SWSkgewotICAgIGRlYnVnKCJvdXQgb2YgbWVtb3J5Iik7Ci0gICAgcmV0dXJuIGZhbHNl
OwotICB9Ci0gIGlmIChlcnIgIT0gZ2wuTk9fRVJST1IpIHsKLSAgICB0ZXN0RmFpbGVkKCJ1bmV4
cGVjdGVkIGdsIGVycm9yOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBlcnIpKTsKLSAgfQot
ICBnbC50ZXhQYXJhbWV0ZXJpKHRhcmdldCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5F
QVJfTUlQTUFQX05FQVJFU1QpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3
dHUuY2hlY2tDYW52YXMoZ2wsIGNvbG9yLnJnYmEsCi0gICAgICB0eXBlICsgIiBvZiBzaXplICIg
KyB3aWR0aCArICJ4IiArIGhlaWdodCArICIgd2l0aCBtaXBzIHNob3VsZCBkcmF3IHdpdGggIiAr
IGNvbG9yLm5hbWUpOwotCi0gIGNvdW50ID0gKGNvdW50ICsgMSkgJSBjb2xvcnMubGVuZ3RoOwot
ICBjb2xvciA9IGNvbG9yc1tjb3VudF07Ci0gIGZpbGxMZXZlbCgwLCB3aWR0aCwgaGVpZ2h0LCBj
b2xvci5yZ2JhLCBjdWJlTWFwLCB0cnVlKTsKLSAgZ2wuZ2VuZXJhdGVNaXBtYXAodGFyZ2V0KTsK
LQotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUuY2hlY2tDYW52YXMoZ2ws
IGNvbG9yLnJnYmEsCi0gICAgICB0eXBlICsgIiBvZiBzaXplICIgKyB3aWR0aCArICJ4IiArIGhl
aWdodCArICIgd2l0aCBtaXBzIHNob3VsZCBkcmF3IHdpdGggIiArIGNvbG9yLm5hbWUpOwotCi0g
IGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgIlNob3VsZCBiZSBubyBlcnJvcnMuIik7Ci0gIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlv
biBmaWxsTGV2ZWwobGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfY3ViZW1hcCwgb3B0
X3N1YlRleCkgewotICB2YXIgbnVtUGl4ZWxzID0gd2lkdGggKiBoZWlnaHQ7Ci0gIHZhciBwaXhl
bHMgPSBudWxsOwotICB2YXIgbGFyZ2VEaW0gPSBNYXRoLm1heCh3aWR0aCwgaGVpZ2h0KTsKLSAg
dmFyIHNtYWxsRGltID0gTWF0aC5taW4od2lkdGgsIGhlaWdodCk7Ci0KLSAgdmFyIHBpeGVsUm93
ID0gbmV3IFVpbnQ4QXJyYXkobGFyZ2VEaW0gKiA0KTsKLSAgZm9yICh2YXIgamogPSAwOyBqaiA8
IGxhcmdlRGltOyArK2pqKSB7Ci0gICAgdmFyIG9mZiA9IGpqICogNDsKLSAgICBwaXhlbFJvd1tv
ZmYgKyAwXSA9IGNvbG9yWzBdOwotICAgIHBpeGVsUm93W29mZiArIDFdID0gY29sb3JbMV07Ci0g
ICAgcGl4ZWxSb3dbb2ZmICsgMl0gPSBjb2xvclsyXTsKLSAgICBwaXhlbFJvd1tvZmYgKyAzXSA9
IGNvbG9yWzNdOwotICB9Ci0KLSAgaWYgKGxhcmdlRGltID09IG51bVBpeGVscykgewotICAgIHBp
eGVscyA9IHBpeGVsUm93OwotICB9IGVsc2UgewotICAgIHZhciBwaXhlbHMgPSBuZXcgVWludDhB
cnJheShudW1QaXhlbHMgKiA0KTsKLSAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgc21hbGxEaW07
ICsramopIHsKLSAgICAgIHZhciBvZmYgPSBqaiAqIGxhcmdlRGltICogNDsKLSAgICAgIHBpeGVs
cy5zZXQocGl4ZWxSb3csIG9mZik7Ci0gICAgfQotICB9Ci0gCi0gIHZhciB0YXJnZXRzID0gb3B0
X2N1YmVtYXAgPyBbCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgIGds
LlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1pdIDoKLSAgICBbZ2wuVEVYVFVSRV8yRF07Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8
IHRhcmdldHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgLy8gZGVidWcod3R1LmdsRW51bVRvU3RyaW5n
KGdsLCB0YXJnZXRzW2lpXSkpOwotICAgIHZhciBpbmRleCA9IChpaSArIHBvd2VyKSAlIHRhcmdl
dHMubGVuZ3RoOwotICAgIHZhciB0YXJnZXQgPSB0YXJnZXRzW2luZGV4XTsKLSAgICBpZiAob3B0
X3N1YlRleCkgewotICAgICAgZ2wudGV4U3ViSW1hZ2UyRCgKLSAgICAgICAgICB0YXJnZXQsIGxl
dmVsLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAg
ICAgICAgIHBpeGVscyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGdsLnRleEltYWdlMkQoCi0gICAg
ICAgICAgdGFyZ2V0LCBsZXZlbCwgZ2wuUkdCQSwgd2lkdGgsIGhlaWdodCwgMCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBwaXhlbHMpOwotICAgIH0KLSAgfQotfQotCi12
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWlt
YWdlLWN1YmUtbWFwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1
Yi1pbWFnZS1jdWJlLW1hcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg0
ZTAzYTQwMTljM2EyYjg2MTY3ZDA1YTNmYjFkY2ZkMDI4ZGY2NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzM3ICsw
LDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldl
YkdMIHRleHR1cmUgdGV4U3ViSW1hZ2UyRHMgY3ViZSBtYXAgY29uZm9ybWFuY2UgdGVzdC48L3Rp
dGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4g
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
MjU2IiBoZWlnaHQ9IjI1NiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2Nh
bnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0
cmlidXRlIHZlYzQgdlBvc2l0aW9uOwotdW5pZm9ybSBtYXQ0IHJvdGF0aW9uOwotdmFyeWluZyB2
ZWMzIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlv
bjsKLSAgICB2ZWM0IGRpcmVjdGlvbiA9IHZlYzQodlBvc2l0aW9uLnggKiAwLjUsIHZQb3NpdGlv
bi55ICogMC41LCAxLCAxKTsKLSAgICB0ZXhDb29yZCA9IG5vcm1hbGl6ZSgocm90YXRpb24gKiBk
aXJlY3Rpb24pLnh5eik7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlw
ZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLXVuaWZv
cm0gc2FtcGxlckN1YmUgdGV4OwotdmFyeWluZyB2ZWMzIHRleENvb3JkOwotdm9pZCBtYWluKCkK
LXsKLSAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlQ3ViZSh0ZXgsIG5vcm1hbGl6ZSh0ZXhDb29y
ZCkpOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIGNhbnZhczsK
LWRlc2NyaXB0aW9uKCJDaGVja3MgaXNzdWVzIHdpdGggc2l6ZSBvZiBjdWJlIG1hcCB0ZXh0dXJl
cyIpOwotZGVidWcoIiIpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLQotdmFyIGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dChjYW52YXMpOwotd3R1LnNldHVwVW5pdFF1YWQoZ2wsIDAsIDEpOwotdmFy
IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgIGdsLAotICAgIFsndnNoYWRlcicsICdm
c2hhZGVyJ10sCi0gICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sIFswLCAxXSk7Ci12YXIg
cm90TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJyb3RhdGlvbiIpOwotCi12
YXIgc2l6ZSA9IDE2OwotCi12YXIgY29sb3JzID0gWwotICB7bmFtZTogJ3JlZCcsICAgICBjb2xv
cjogWzI1NSwgICAwLCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2dyZWVuJywgICBjb2xvcjogWyAg
MCwgMjU1LCAgIDAsIDI1NV19LAotICB7bmFtZTogJ2JsdWUnLCAgICBjb2xvcjogWyAgMCwgICAw
LCAyNTUsIDI1NV19LAotICB7bmFtZTogJ3llbGxvdycsICBjb2xvcjogWzI1NSwgMjU1LCAgIDAs
IDI1NV19LAotICB7bmFtZTogJ2N5YW4nLCAgICBjb2xvcjogWyAgMCwgMjU1LCAyNTUsIDI1NV19
LAotICB7bmFtZTogJ21hZ2VudGEnLCBjb2xvcjogWzI1NSwgICAwLCAyNTUsIDI1NV19Ci1dOwot
Ci12YXIgdGFyZ2V0cyA9IFsKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICBn
bC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWSwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICBnbC5URVhUVVJF
X0NVQkVfTUFQX1BPU0lUSVZFX1osCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl07
Ci0KLXZhciByb3RhdGlvbnMgPSBbCi0gIHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5Q
SSAvIDJ9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogLU1hdGguUEkgLyAyfSwKLSAge2F4
aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMSwgMCwgMF0s
IGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIDB9LAot
ICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEl9LAotXTsKLQotdmFyIGhhbGZSb3Rh
dGlvbnMgPSBbCi0gIHtjb2xvcnM6IFszLCA0XSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAw
XSwgYW5nbGU6ICBNYXRoLlBJIC8gNH1dfSwKLSAge2NvbG9yczogWzQsIDJdLCByb3RhdGlvbnM6
IFt7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0fV19LAotICB7Y29sb3JzOiBb
NSwgM10sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDQg
KiAzfV19LAotICB7Y29sb3JzOiBbMiwgNV0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0s
IGFuZ2xlOiAtTWF0aC5QSSAvIDQgKiAzfV19LAotICB7Y29sb3JzOiBbMywgMF0sIHJvdGF0aW9u
czogW3theGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDR9
XX0sCi0gIHtjb2xvcnM6IFswLCAyXSwgcm90YXRpb25zOiBbe2F4aXM6IFswLCAxLCAwXSwgYW5n
bGU6ICBNYXRoLlBJIC8gMn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2F4aXM6
IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNH1dfSwKLV07Ci0KLXZhciBjb3VudCA9IDA7
Ci10ZXN0U2l6ZShzaXplKTsKLQotZnVuY3Rpb24gdGVzdFNpemUoc2l6ZSkgewotICBkZWJ1Zygi
Iik7Ci0gIGRlYnVnKCJ0ZXN0aW5nIHNpemU6ICIgKyBzaXplKTsKLSAgdmFyIGNhbnZhc1NpemUg
PSBNYXRoLm1heChzaXplIC8gNCwgMik7Ci0gIGNhbnZhcy53aWR0aCA9IGNhbnZhc1NpemU7Ci0g
IGNhbnZhcy5oZWlnaHQgPSBjYW52YXNTaXplOwotICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXNT
aXplLCBjYW52YXNTaXplKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4KTsKLQotICAvLyBTZWVtcyBsaWtl
IEkgc2hvdWxkIGJlIHVzaW5nIExJTkVBUiBoZXJlIHdpdGggc29tZSBvdGhlciBtYXRoCi0gIC8v
IHRvIG1ha2Ugc3VyZSBJIGdldCBtb3JlIG1pcCBjb3ZlcmFnZSBidXQgdGhhdCdzIGVhc2llciBz
YWlkCi0gIC8vIHRoYW4gZG9uZS4KLQotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VC
RV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFS
RVNUKTsKLQotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMjsgKytqaikgewotICAgIGZvciAodmFy
IHR0ID0gMDsgdHQgPCB0YXJnZXRzLmxlbmd0aDsgKyt0dCkgewotICAgICAgdmFyIGNvbG9yID0g
Y29sb3JzWyh0dCArIGNvdW50KSAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgZmlsbExldmVsKHRh
cmdldHNbdHRdLCAwLCBzaXplLCBjb2xvci5jb2xvcik7Ci0gICAgfQotICAgIGlmIChqaiA9PSAx
KSB7Ci0gICAgICBkZWJ1ZygidXNlIG1pcG1hcCIpOwotICAgICAgZ2wudGV4UGFyYW1ldGVyaSgK
LSAgICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9GSUxURVIsCi0g
ICAgICAgICAgZ2wuTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCk7Ci0gICAgICBnbC5nZW5lcmF0ZU1p
cG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLSAgICB9Ci0KLSAgICB2YXIgZXJyID0gZ2wuZ2V0
RXJyb3IoKTsKLSAgICBpZiAoZXJyID09IGdsLk9VVF9PRl9NRU1PUlkpIHsKLSAgICAgIGRlYnVn
KCJvdXQgb2YgbWVtb3J5Iik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmIChl
cnIgIT0gZ2wuTk9fRVJST1IpIHsKLSAgICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZ2wgZXJy
b3I6ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGVycikpOwotICAgIH0KLQotCi0gICAgZm9y
ICh2YXIgcnIgPSAwOyByciA8IHJvdGF0aW9ucy5sZW5ndGg7ICsrcnIpIHsKLSAgICAgIHZhciBy
b3QgPSByb3RhdGlvbnNbcnJdOwotICAgICAgdmFyIGNvbG9yID0gY29sb3JzWyhyciArIGNvdW50
KSAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgdmFyIHJvdE1hdCA9IGF4aXNSb3RhdGlvbihyb3Qu
YXhpcywgcm90LmFuZ2xlKTsKLSAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYocm90TG9jLCBmYWxz
ZSwgcm90TWF0KTsKLSAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gICAgICB3
dHUuY2hlY2tDYW52YXMoCi0gICAgICAgICAgZ2wsIGNvbG9yLmNvbG9yLAotICAgICAgICAgIHd0
dS5nbEVudW1Ub1N0cmluZyhnbCwgdGFyZ2V0c1tycl0pICsgIiBzaG91bGQgYmUgIiArIGNvbG9y
Lm5hbWUpOwotICAgIH0KLQotICAgIGZvciAodmFyIHJyID0gMDsgcnIgPCBoYWxmUm90YXRpb25z
Lmxlbmd0aDsgKytycikgewotICAgICAgdmFyIGggPSBoYWxmUm90YXRpb25zW3JyXTsKLSAgICAg
IHZhciByb3RzID0gaC5yb3RhdGlvbnM7Ci0gICAgICB2YXIgcm90TWF0ID0gYXhpc1JvdGF0aW9u
KHJvdHNbMF0uYXhpcywgcm90c1swXS5hbmdsZSk7Ci0gICAgICBmb3IgKHZhciBpaSA9IDE7IGlp
IDwgcm90cy5sZW5ndGg7ICsraWkpIHsKLSAgICAgICAgdmFyIHRtcE1hdCA9IGF4aXNSb3RhdGlv
bihyb3RzW2lpXS5heGlzLCByb3RzW2lpXS5hbmdsZSk7Ci0gICAgICAgIHZhciByb3RNYXQgPSBt
dWxNYXRyaXgodG1wTWF0LCByb3RNYXQpOwotICAgICAgfQotICAgICAgZ2wudW5pZm9ybU1hdHJp
eDRmdihyb3RMb2MsIGZhbHNlLCByb3RNYXQpOwotICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRR
dWFkKGdsKTsKLQotICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDI7ICsraWkpIHsKLSAgICAg
ICAgY2hlY2tSZWN0KAotICAgICAgICAgICAgMCwKLSAgICAgICAgICAgIGNhbnZhc1NpemUgLyAy
ICogaWksCi0gICAgICAgICAgICBjYW52YXNTaXplLAotICAgICAgICAgICAgY2FudmFzU2l6ZSAv
IDIsCi0gICAgICAgICAgICBjb2xvcnNbKGguY29sb3JzW2lpXSArIGNvdW50KSAlIGNvbG9ycy5s
ZW5ndGhdKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgKytjb3VudDsKLSAgfQotCi0gIGdsLmRlbGV0
ZVRleHR1cmUodGV4KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzLiIpOwotCi1mdW5jdGlvbiBjaGVja1Jl
Y3QoeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IpIHsKLSAgd3R1LmNoZWNrQ2FudmFzUmVjdCgK
LSAgICAgICBnbCwKLSAgICAgICB4LAotICAgICAgIHksCi0gICAgICAgd2lkdGgsCi0gICAgICAg
aGVpZ2h0LAotICAgICAgIGNvbG9yLmNvbG9yLAotICAgICAgICIiICsgeCArICIsICIgKyB5ICsg
IiwgIiArIHdpZHRoICsgIiwgIiArIGhlaWdodCArCi0gICAgICAgIiBzaG91bGQgYmUgIiArIGNv
bG9yLm5hbWUpOwotfQotCi1mdW5jdGlvbiBmaWxsTGV2ZWwodGFyZ2V0LCBsZXZlbCwgc2l6ZSwg
Y29sb3IpIHsKLSAgdmFyIG51bVBpeGVscyA9IHNpemUgKiBzaXplOwotICB2YXIgaGFsZlBpeGVs
Um93ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSAqIDIpOwotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwg
c2l6ZTsgKytqaikgewotICAgIHZhciBvZmYgPSBqaiAqIDQ7Ci0gICAgaGFsZlBpeGVsUm93W29m
ZiArIDBdID0gY29sb3JbMF07Ci0gICAgaGFsZlBpeGVsUm93W29mZiArIDFdID0gY29sb3JbMV07
Ci0gICAgaGFsZlBpeGVsUm93W29mZiArIDJdID0gY29sb3JbMl07Ci0gICAgaGFsZlBpeGVsUm93
W29mZiArIDNdID0gY29sb3JbM107Ci0gIH0KLSAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgIHRhcmdl
dCwgbGV2ZWwsIGdsLlJHQkEsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICBudWxsKTsKLSAgZm9yICh2YXIgamogPSAwOyBqaiA8IHNpemU7ICsramopIHsK
LSAgICAgIGdsLnRleFN1YkltYWdlMkQoCi0gICAgICAgICAgdGFyZ2V0LCBsZXZlbCwgMCwgamos
IHNpemUgLyAyLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBoYWxmUGl4ZWxSb3cpOwot
ICAgICAgZ2wudGV4U3ViSW1hZ2UyRCgKLSAgICAgICAgICB0YXJnZXQsIGxldmVsLCBzaXplIC8g
MiwgamosIHNpemUgLyAyLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBoYWxmUGl4ZWxS
b3cpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHByaW50TWF0KG1hdCkgewotICBkZWJ1ZygiIiArIG1h
dFswXSArICIsICIgKyBtYXRbMV0gKyAiLCAiICsgbWF0WzJdICsgIiwgIiArIG1hdFszXSArICIs
ICIpOwotICBkZWJ1ZygiIiArIG1hdFs0XSArICIsICIgKyBtYXRbNV0gKyAiLCAiICsgbWF0WzZd
ICsgIiwgIiArIG1hdFs3XSArICIsICIpOwotICBkZWJ1ZygiIiArIG1hdFs4XSArICIsICIgKyBt
YXRbOV0gKyAiLCAiICsgbWF0WzEwXSArICIsICIgKyBtYXRbMTFdICsgIiwgIik7Ci0gIGRlYnVn
KCIiICsgbWF0WzEyXSArICIsICIgKyBtYXRbMTNdICsgIiwgIiArIG1hdFsxNF0gKyAiLCAiICsg
bWF0WzE1XSArICIsICIpOwotfQotCi1mdW5jdGlvbiBheGlzUm90YXRpb24oYXhpcywgYW5nbGUp
IHsKLSAgdmFyIGRzdCA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpOwotICB2YXIgeCA9IGF4aXNbMF07
Ci0gIHZhciB5ID0gYXhpc1sxXTsKLSAgdmFyIHogPSBheGlzWzJdOwotICB2YXIgbiA9IE1hdGgu
c3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopOwotICB4IC89IG47Ci0gIHkgLz0gbjsKLSAgeiAv
PSBuOwotICB2YXIgeHggPSB4ICogeDsKLSAgdmFyIHl5ID0geSAqIHk7Ci0gIHZhciB6eiA9IHog
KiB6OwotICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKLSAgdmFyIHMgPSBNYXRoLnNpbihhbmds
ZSk7Ci0gIHZhciBvbmVNaW51c0Nvc2luZSA9IDEgLSBjOwotCi0gIGRzdFsgMF0gPSB4eCArICgx
IC0geHgpICogYzsKLSAgZHN0WyAxXSA9IHggKiB5ICogb25lTWludXNDb3NpbmUgKyB6ICogczsK
LSAgZHN0WyAyXSA9IHggKiB6ICogb25lTWludXNDb3NpbmUgLSB5ICogczsKLSAgZHN0WyAzXSA9
IDA7Ci0gIGRzdFsgNF0gPSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lIC0geiAqIHM7Ci0gIGRzdFsg
NV0gPSB5eSArICgxIC0geXkpICogYzsKLSAgZHN0WyA2XSA9IHkgKiB6ICogb25lTWludXNDb3Np
bmUgKyB4ICogczsKLSAgZHN0WyA3XSA9IDA7Ci0gIGRzdFsgOF0gPSB4ICogeiAqIG9uZU1pbnVz
Q29zaW5lICsgeSAqIHM7Ci0gIGRzdFsgOV0gPSB5ICogeiAqIG9uZU1pbnVzQ29zaW5lIC0geCAq
IHM7Ci0gIGRzdFsxMF0gPSB6eiArICgxIC0genopICogYzsKLSAgZHN0WzExXSA9IDA7Ci0gIGRz
dFsxMl0gPSAwOwotICBkc3RbMTNdID0gMDsKLSAgZHN0WzE0XSA9IDA7Ci0gIGRzdFsxNV0gPSAx
OwotCi0gIHJldHVybiBkc3Q7Ci19OwotCi1mdW5jdGlvbiBtdWxNYXRyaXgoYSwgYikgewotICB2
YXIgZHN0ID0gbmV3IEZsb2F0MzJBcnJheSgxNik7Ci0gIHZhciBhMDAgPSBhWzBdOwotICB2YXIg
YTAxID0gYVsxXTsKLSAgdmFyIGEwMiA9IGFbMl07Ci0gIHZhciBhMDMgPSBhWzNdOwotICB2YXIg
YTEwID0gYVsgNCArIDBdOwotICB2YXIgYTExID0gYVsgNCArIDFdOwotICB2YXIgYTEyID0gYVsg
NCArIDJdOwotICB2YXIgYTEzID0gYVsgNCArIDNdOwotICB2YXIgYTIwID0gYVsgOCArIDBdOwot
ICB2YXIgYTIxID0gYVsgOCArIDFdOwotICB2YXIgYTIyID0gYVsgOCArIDJdOwotICB2YXIgYTIz
ID0gYVsgOCArIDNdOwotICB2YXIgYTMwID0gYVsxMiArIDBdOwotICB2YXIgYTMxID0gYVsxMiAr
IDFdOwotICB2YXIgYTMyID0gYVsxMiArIDJdOwotICB2YXIgYTMzID0gYVsxMiArIDNdOwotICB2
YXIgYjAwID0gYlswXTsKLSAgdmFyIGIwMSA9IGJbMV07Ci0gIHZhciBiMDIgPSBiWzJdOwotICB2
YXIgYjAzID0gYlszXTsKLSAgdmFyIGIxMCA9IGJbIDQgKyAwXTsKLSAgdmFyIGIxMSA9IGJbIDQg
KyAxXTsKLSAgdmFyIGIxMiA9IGJbIDQgKyAyXTsKLSAgdmFyIGIxMyA9IGJbIDQgKyAzXTsKLSAg
dmFyIGIyMCA9IGJbIDggKyAwXTsKLSAgdmFyIGIyMSA9IGJbIDggKyAxXTsKLSAgdmFyIGIyMiA9
IGJbIDggKyAyXTsKLSAgdmFyIGIyMyA9IGJbIDggKyAzXTsKLSAgdmFyIGIzMCA9IGJbMTIgKyAw
XTsKLSAgdmFyIGIzMSA9IGJbMTIgKyAxXTsKLSAgdmFyIGIzMiA9IGJbMTIgKyAyXTsKLSAgdmFy
IGIzMyA9IGJbMTIgKyAzXTsKLSAgZHN0WyAwXSA9IGEwMCAqIGIwMCArIGEwMSAqIGIxMCArIGEw
MiAqIGIyMCArIGEwMyAqIGIzMDsKLSAgZHN0WyAxXSA9IGEwMCAqIGIwMSArIGEwMSAqIGIxMSAr
IGEwMiAqIGIyMSArIGEwMyAqIGIzMTsKLSAgZHN0WyAyXSA9IGEwMCAqIGIwMiArIGEwMSAqIGIx
MiArIGEwMiAqIGIyMiArIGEwMyAqIGIzMjsKLSAgZHN0WyAzXSA9IGEwMCAqIGIwMyArIGEwMSAq
IGIxMyArIGEwMiAqIGIyMyArIGEwMyAqIGIzMzsKLSAgZHN0WyA0XSA9IGExMCAqIGIwMCArIGEx
MSAqIGIxMCArIGExMiAqIGIyMCArIGExMyAqIGIzMDsKLSAgZHN0WyA1XSA9IGExMCAqIGIwMSAr
IGExMSAqIGIxMSArIGExMiAqIGIyMSArIGExMyAqIGIzMTsKLSAgZHN0WyA2XSA9IGExMCAqIGIw
MiArIGExMSAqIGIxMiArIGExMiAqIGIyMiArIGExMyAqIGIzMjsKLSAgZHN0WyA3XSA9IGExMCAq
IGIwMyArIGExMSAqIGIxMyArIGExMiAqIGIyMyArIGExMyAqIGIzMzsKLSAgZHN0WyA4XSA9IGEy
MCAqIGIwMCArIGEyMSAqIGIxMCArIGEyMiAqIGIyMCArIGEyMyAqIGIzMDsKLSAgZHN0WyA5XSA9
IGEyMCAqIGIwMSArIGEyMSAqIGIxMSArIGEyMiAqIGIyMSArIGEyMyAqIGIzMTsKLSAgZHN0WzEw
XSA9IGEyMCAqIGIwMiArIGEyMSAqIGIxMiArIGEyMiAqIGIyMiArIGEyMyAqIGIzMjsKLSAgZHN0
WzExXSA9IGEyMCAqIGIwMyArIGEyMSAqIGIxMyArIGEyMiAqIGIyMyArIGEyMyAqIGIzMzsKLSAg
ZHN0WzEyXSA9IGEzMCAqIGIwMCArIGEzMSAqIGIxMCArIGEzMiAqIGIyMCArIGEzMyAqIGIzMDsK
LSAgZHN0WzEzXSA9IGEzMCAqIGIwMSArIGEzMSAqIGIxMSArIGEzMiAqIGIyMSArIGEzMyAqIGIz
MTsKLSAgZHN0WzE0XSA9IGEzMCAqIGIwMiArIGEzMSAqIGIxMiArIGEzMiAqIGIyMiArIGEzMyAq
IGIzMjsKLSAgZHN0WzE1XSA9IGEzMCAqIGIwMyArIGEzMSAqIGIxMyArIGEzMiAqIGIyMyArIGEz
MyAqIGIzMzsKLSAgcmV0dXJuIGRzdDsKLX07Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXpl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBp
eGVscy1pbml0aWFsaXplZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjMy
MTU3NDMzMmExMzI4NWVmYTliMDM0YWRhZmM1MmIwNThiZDcyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDEwOSArMCwwIEBACi08IS0tCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0q
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
Ci0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0tLT4KLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ii8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBn
bCA9IG51bGw7Ci12YXIgdGV4dHVyZTsKLXZhciB0ZXh0dXJlTG9jID0gbnVsbDsKLXZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLQotZnVuY3Rpb24gaW5pdCgpCi17Ci0gICAgaW5pdFRl
c3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwotCi0gICAgZGVzY3JpcHRpb24oJ1Rlc3RzIHRo
ZXJlIGlzIG5vIGdhcmJhZ2UgaW4gdHJhbnNwYXJlbnQgcmVnaW9ucyBvZiBpbWFnZXMgdXBsb2Fk
ZWQgYXMgdGV4dHVyZXMnKTsKLQotICAgIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNl
dHVwVGV4dHVyZWRRdWFkKGdsKTsKLSAgICBnbC5jbGVhckNvbG9yKDAuNSwwLjUsMC41LDEpOwot
ICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0KLSAgICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLQotICAgIC8vIFRoZSBpbnB1dCB0ZXh0dXJlIGhhcyA4
IGNoYXJhY3RlcnM7IHRha2UgdGhlIGxlZnRtb3N0IG9uZQotICAgIHZhciBjb2VmZiA9IDEuMCAv
IDguMDsKLSAgICB2YXIgdGV4Q29vcmRzID0gbmV3IEZsb2F0MzJBcnJheShbCi0gICAgICAgIGNv
ZWZmLCAxLjAsCi0gICAgICAgIDAuMCwgMS4wLAotICAgICAgICAwLjAsIDAuMCwKLSAgICAgICAg
Y29lZmYsIDEuMCwKLSAgICAgICAgMC4wLCAwLjAsCi0gICAgICAgIGNvZWZmLCAwLjBdKTsKLQot
ICAgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgdmJvKTsKLSAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdGV4
Q29vcmRzLCBnbC5TVEFUSUNfRFJBVyk7Ci0gICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
MSk7Ci0gICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAs
IDApOwotCi0gICAgdGV4dHVyZSA9IHd0dS5sb2FkVGV4dHVyZShnbCwgIi4uL3Jlc291cmNlcy9i
dWctMzI4ODgtdGV4dHVyZS5wbmciLCBydW5UZXN0KTsKLX0KLQotLy8gVGhlc2UgdHdvIGRlY2xh
cmF0aW9ucyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0byBzZWUgdGhlbQotdmFy
IGJ1ZiA9IG51bGw7Ci12YXIgaWR4ID0gMDsKLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAg
Z2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAg
IGdsLmVuYWJsZShnbC5CTEVORCk7Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wu
T05FX01JTlVTX1NSQ19BTFBIQSk7Ci0gICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0dXJl
IHVuaXQgMAotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAg
IC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBnbC51
bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0gICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAg
d3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0KLSAgICAvLyBT
cG90IGNoZWNrIGEgY291cGxlIG9mIDJ4MiByZWdpb25zIGluIHRoZSB1cHBlciBhbmQgbG93ZXIg
bGVmdAotICAgIC8vIGNvcm5lcnM7IHRoZXkgc2hvdWxkIGJlIHRoZSByZ2IgdmFsdWVzIGluIHRo
ZSB0ZXh0dXJlLgotICAgIHZhciBjb2xvciA9IFswLCAwLCAwXTsKLSAgICBkZWJ1ZygiQ2hlY2tp
bmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAxLCBn
bC5jYW52YXMuaGVpZ2h0IC0gMywgMiwgMiwgY29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAic2hvdWxkQmUgIiArIGNvbG9yKTsKLSAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBj
b3JuZXIiKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAxLCAxLCAyLCAyLCBjb2xvciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgY29sb3IpOwotCi0gICAgZmlu
aXNoVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+
Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2FudmFzPgot
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmRiNjU0YzNiYTZkM2U1ZGM0OTEwY2U0MjNiMzIxZDEwYmQyY2RhYi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQg
KzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFs
cyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiog
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgot
KiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB
Q1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0Ug
T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjIiIGhlaWdodD0iMiI+
PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbignVGVzdHMgdGV4
SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB1cGxvYWQgcGF0aCBmb3IgVEVYVFVSRV9DVUJFX01B
UCcpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
Y2FudmFzKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8g
ZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWZ1bmN0aW9uIHRlc3RPbmVUYXJnZXQodGFyZ2V0LCB3
aWR0aCwgaGVpZ2h0KSB7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7Ci0gIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gYmluZFRleHR1cmUoVEVY
VFVSRV9DVUJFX01BUCkuIik7Ci0KLSAgZ2wudGV4SW1hZ2UyRCh0YXJnZXQsIDAsIGdsLlJHQiwg
d2lkdGgsIGhlaWdodCwgMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSB0
ZXhJbWFnZTJELiIpOwotCi0gIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdo
dCAqIDMpOwotICBnbC50ZXhTdWJJbWFnZTJEKHRhcmdldCwgMCwgMCwgMCwgd2lkdGgsIGhlaWdo
dCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHRleFN1YkltYWdlMkQuIik7
Ci19Ci0KLXRlc3RPbmVUYXJnZXQoZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLCAxNiwg
MTYpOwotdGVzdE9uZVRhcmdldChnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksIDE2LCAx
Nik7Ci10ZXN0T25lVGFyZ2V0KGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwgMTYsIDE2
KTsKLXRlc3RPbmVUYXJnZXQoZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLCAxNiwgMTYp
OwotdGVzdE9uZVRhcmdldChnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksIDE2LCAxNik7
Ci10ZXN0T25lVGFyZ2V0KGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWiwgMTYsIDE2KTsK
LQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZiZWEwYWNiNGU0ZmE4OGZhMTY4MzRkMjRjNDBiMDljMjdlNDc0YzYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNv
dXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNjQ1ICsw
LDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgot
KioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRl
YWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv
ZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1h
dGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFU
RVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD
T05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJ
TiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBE
RUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLy8gRGVmaW5lcyBhIGJ1bmNoIG9mIERl
c2t0b3BHTCBjb25zdGFudHMgc28gd2UgY2FuIG1ha2Ugc3VyZSBXZWJHTAotLy8gaW1wbGVtZW50
YXRpb25zIGRpc2FsbG93IHRoZW0uCi0KLXZhciBkZXNrdG9wR0wgPSB7Ci0gICdNSU4nOiAweDgw
MDcsCi0gICdNQVgnOiAweDgwMDgsCi0gICdRVUFEUyc6IDB4MDAwNywKLSAgJ1FVQURfU1RSSVAn
OiAweDAwMDgsCi0gICdQT0xZR09OJzogMHgwMDA5LAotICAnMSc6IDB4MDAwMSwKLSAgJzInOiAw
eDAwMDIsCi0gICczJzogMHgwMDAzLAotICAnNCc6IDB4MDAwNCwKLSAgJ1NUQVRJQ19SRUFEJzog
MHg4OEU1LAotICAnQ0xJUF9QTEFORTAnOiAweDMwMDAsCi0gICdQRVJTUEVDVElWRV9DT1JSRUNU
SU9OX0hJTlQnOiAweDBDNTAsCi0gICdBQ0NVTV9CVUZGRVJfQklUJzogMHgwMjAwLAotICAnUkdC
NCc6IDB4ODA0RiwKLSAgJ1JHQjUnOiAweDgwNTAsCi0gICdSR0I4JzogMHg4MDUxLAotICAnUkdC
MTAnOiAweDgwNTIsCi0gICdSR0IxMic6IDB4ODA1MywKLSAgJ1JHQjE2JzogMHg4MDU0LAotICAn
UkdCQTInOiAweDgwNTUsCi0gICdSR0JBNCc6IDB4ODA1NiwKLSAgJ1JHQjVfQTEnOiAweDgwNTcs
Ci0gICdSR0JBOCc6IDB4ODA1OCwKLSAgJ1JHQjEwX0EyJzogMHg4MDU5LAotICAnUkdCQTEyJzog
MHg4MDVBLAotICAnUkdCQTE2JzogMHg4MDVCLAotICAnU01PT1RIX1BPSU5UX1NJWkVfUkFOR0Un
OiAweDBCMTIsCi0gICdTTU9PVEhfUE9JTlRfU0laRV9HUkFOVUxBUklUWSc6IDB4MEIxMywKLSAg
J1NNT09USF9MSU5FX1dJRFRIX1JBTkdFJzogMHgwQjIyLAotICAnU01PT1RIX0xJTkVfV0lEVEhf
R1JBTlVMQVJJVFknOiAweDBCMjMsCi0gICdVTlNJR05FRF9CWVRFXzNfM18yJzogMHg4MDMyLAot
ICAnVU5TSUdORURfU0hPUlRfNF80XzRfNCc6IDB4ODAzMywKLSAgJ1VOU0lHTkVEX1NIT1JUXzVf
NV81XzEnOiAweDgwMzQsCi0gICdVTlNJR05FRF9JTlRfOF84XzhfOCc6IDB4ODAzNSwKLSAgJ1VO
U0lHTkVEX0lOVF8xMF8xMF8xMF8yJzogMHg4MDM2LAotICAnUkVTQ0FMRV9OT1JNQUwnOiAweDgw
M0EsCi0gICdURVhUVVJFX0JJTkRJTkdfM0QnOiAweDgwNkEsCi0gICdQQUNLX1NLSVBfSU1BR0VT
JzogMHg4MDZCLAotICAnUEFDS19JTUFHRV9IRUlHSFQnOiAweDgwNkMsCi0gICdVTlBBQ0tfU0tJ
UF9JTUFHRVMnOiAweDgwNkQsCi0gICdVTlBBQ0tfSU1BR0VfSEVJR0hUJzogMHg4MDZFLAotICAn
VEVYVFVSRV8zRCc6IDB4ODA2RiwKLSAgJ1BST1hZX1RFWFRVUkVfM0QnOiAweDgwNzAsCi0gICdU
RVhUVVJFX0RFUFRIJzogMHg4MDcxLAotICAnVEVYVFVSRV9XUkFQX1InOiAweDgwNzIsCi0gICdN
QVhfM0RfVEVYVFVSRV9TSVpFJzogMHg4MDczLAotICAnQkdSJzogMHg4MEUwLAotICAnQkdSQSc6
IDB4ODBFMSwKLSAgJ01BWF9FTEVNRU5UU19WRVJUSUNFUyc6IDB4ODBFOCwKLSAgJ01BWF9FTEVN
RU5UU19JTkRJQ0VTJzogMHg4MEU5LAotICAnQ0xBTVBfVE9fRURHRSc6IDB4ODEyRiwKLSAgJ1RF
WFRVUkVfTUlOX0xPRCc6IDB4ODEzQSwKLSAgJ1RFWFRVUkVfTUFYX0xPRCc6IDB4ODEzQiwKLSAg
J1RFWFRVUkVfQkFTRV9MRVZFTCc6IDB4ODEzQywKLSAgJ1RFWFRVUkVfTUFYX0xFVkVMJzogMHg4
MTNELAotICAnTElHSFRfTU9ERUxfQ09MT1JfQ09OVFJPTCc6IDB4ODFGOCwKLSAgJ1NJTkdMRV9D
T0xPUic6IDB4ODFGOSwKLSAgJ1NFUEFSQVRFX1NQRUNVTEFSX0NPTE9SJzogMHg4MUZBLAotICAn
VU5TSUdORURfQllURV8yXzNfM19SRVYnOiAweDgzNjIsCi0gICdVTlNJR05FRF9TSE9SVF81XzZf
NSc6IDB4ODM2MywKLSAgJ1VOU0lHTkVEX1NIT1JUXzVfNl81X1JFVic6IDB4ODM2NCwKLSAgJ1VO
U0lHTkVEX1NIT1JUXzRfNF80XzRfUkVWJzogMHg4MzY1LAotICAnVU5TSUdORURfU0hPUlRfMV81
XzVfNV9SRVYnOiAweDgzNjYsCi0gICdVTlNJR05FRF9JTlRfOF84XzhfOF9SRVYnOiAweDgzNjcs
Ci0gICdVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVYnOiAweDgzNjgsCi0gICdBTElBU0VEX1BP
SU5UX1NJWkVfUkFOR0UnOiAweDg0NkQsCi0gICdBTElBU0VEX0xJTkVfV0lEVEhfUkFOR0UnOiAw
eDg0NkUsCi0gICdNVUxUSVNBTVBMRSc6IDB4ODA5RCwKLSAgJ1NBTVBMRV9BTFBIQV9UT19DT1ZF
UkFHRSc6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBIQV9UT19PTkUnOiAweDgwOUYsCi0gICdTQU1Q
TEVfQ09WRVJBR0UnOiAweDgwQTAsCi0gICdTQU1QTEVfQlVGRkVSUyc6IDB4ODBBOCwKLSAgJ1NB
TVBMRVMnOiAweDgwQTksCi0gICdTQU1QTEVfQ09WRVJBR0VfVkFMVUUnOiAweDgwQUEsCi0gICdT
QU1QTEVfQ09WRVJBR0VfSU5WRVJUJzogMHg4MEFCLAotICAnQ0xBTVBfVE9fQk9SREVSJzogMHg4
MTJELAotICAnVEVYVFVSRTAnOiAweDg0QzAsCi0gICdURVhUVVJFMSc6IDB4ODRDMSwKLSAgJ1RF
WFRVUkUyJzogMHg4NEMyLAotICAnVEVYVFVSRTMnOiAweDg0QzMsCi0gICdURVhUVVJFNCc6IDB4
ODRDNCwKLSAgJ1RFWFRVUkU1JzogMHg4NEM1LAotICAnVEVYVFVSRTYnOiAweDg0QzYsCi0gICdU
RVhUVVJFNyc6IDB4ODRDNywKLSAgJ1RFWFRVUkU4JzogMHg4NEM4LAotICAnVEVYVFVSRTknOiAw
eDg0QzksCi0gICdURVhUVVJFMTAnOiAweDg0Q0EsCi0gICdURVhUVVJFMTEnOiAweDg0Q0IsCi0g
ICdURVhUVVJFMTInOiAweDg0Q0MsCi0gICdURVhUVVJFMTMnOiAweDg0Q0QsCi0gICdURVhUVVJF
MTQnOiAweDg0Q0UsCi0gICdURVhUVVJFMTUnOiAweDg0Q0YsCi0gICdURVhUVVJFMTYnOiAweDg0
RDAsCi0gICdURVhUVVJFMTcnOiAweDg0RDEsCi0gICdURVhUVVJFMTgnOiAweDg0RDIsCi0gICdU
RVhUVVJFMTknOiAweDg0RDMsCi0gICdURVhUVVJFMjAnOiAweDg0RDQsCi0gICdURVhUVVJFMjEn
OiAweDg0RDUsCi0gICdURVhUVVJFMjInOiAweDg0RDYsCi0gICdURVhUVVJFMjMnOiAweDg0RDcs
Ci0gICdURVhUVVJFMjQnOiAweDg0RDgsCi0gICdURVhUVVJFMjUnOiAweDg0RDksCi0gICdURVhU
VVJFMjYnOiAweDg0REEsCi0gICdURVhUVVJFMjcnOiAweDg0REIsCi0gICdURVhUVVJFMjgnOiAw
eDg0REMsCi0gICdURVhUVVJFMjknOiAweDg0REQsCi0gICdURVhUVVJFMzAnOiAweDg0REUsCi0g
ICdURVhUVVJFMzEnOiAweDg0REYsCi0gICdBQ1RJVkVfVEVYVFVSRSc6IDB4ODRFMCwKLSAgJ0NM
SUVOVF9BQ1RJVkVfVEVYVFVSRSc6IDB4ODRFMSwKLSAgJ01BWF9URVhUVVJFX1VOSVRTJzogMHg4
NEUyLAotICAnVFJBTlNQT1NFX01PREVMVklFV19NQVRSSVgnOiAweDg0RTMsCi0gICdUUkFOU1BP
U0VfUFJPSkVDVElPTl9NQVRSSVgnOiAweDg0RTQsCi0gICdUUkFOU1BPU0VfVEVYVFVSRV9NQVRS
SVgnOiAweDg0RTUsCi0gICdUUkFOU1BPU0VfQ09MT1JfTUFUUklYJzogMHg4NEU2LAotICAnU1VC
VFJBQ1QnOiAweDg0RTcsCi0gICdDT01QUkVTU0VEX0FMUEhBJzogMHg4NEU5LAotICAnQ09NUFJF
U1NFRF9MVU1JTkFOQ0UnOiAweDg0RUEsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRV9BTFBIQSc6
IDB4ODRFQiwKLSAgJ0NPTVBSRVNTRURfSU5URU5TSVRZJzogMHg4NEVDLAotICAnQ09NUFJFU1NF
RF9SR0InOiAweDg0RUQsCi0gICdDT01QUkVTU0VEX1JHQkEnOiAweDg0RUUsCi0gICdURVhUVVJF
X0NPTVBSRVNTSU9OX0hJTlQnOiAweDg0RUYsCi0gICdOT1JNQUxfTUFQJzogMHg4NTExLAotICAn
UkVGTEVDVElPTl9NQVAnOiAweDg1MTIsCi0gICdURVhUVVJFX0NVQkVfTUFQJzogMHg4NTEzLAot
ICAnVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQJzogMHg4NTE0LAotICAnVEVYVFVSRV9DVUJFX01B
UF9QT1NJVElWRV9YJzogMHg4NTE1LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YJzog
MHg4NTE2LAotICAnVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZJzogMHg4NTE3LAotICAnVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZJzogMHg4NTE4LAotICAnVEVYVFVSRV9DVUJFX01BUF9Q
T1NJVElWRV9aJzogMHg4NTE5LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aJzogMHg4
NTFBLAotICAnUFJPWFlfVEVYVFVSRV9DVUJFX01BUCc6IDB4ODUxQiwKLSAgJ01BWF9DVUJFX01B
UF9URVhUVVJFX1NJWkUnOiAweDg1MUMsCi0gICdDT01CSU5FJzogMHg4NTcwLAotICAnQ09NQklO
RV9SR0InOiAweDg1NzEsCi0gICdDT01CSU5FX0FMUEhBJzogMHg4NTcyLAotICAnUkdCX1NDQUxF
JzogMHg4NTczLAotICAnQUREX1NJR05FRCc6IDB4ODU3NCwKLSAgJ0lOVEVSUE9MQVRFJzogMHg4
NTc1LAotICAnQ09OU1RBTlQnOiAweDg1NzYsCi0gICdQUklNQVJZX0NPTE9SJzogMHg4NTc3LAot
ICAnUFJFVklPVVMnOiAweDg1NzgsCi0gICdTT1VSQ0UwX1JHQic6IDB4ODU4MCwKLSAgJ1NPVVJD
RTFfUkdCJzogMHg4NTgxLAotICAnU09VUkNFMl9SR0InOiAweDg1ODIsCi0gICdTT1VSQ0UwX0FM
UEhBJzogMHg4NTg4LAotICAnU09VUkNFMV9BTFBIQSc6IDB4ODU4OSwKLSAgJ1NPVVJDRTJfQUxQ
SEEnOiAweDg1OEEsCi0gICdPUEVSQU5EMF9SR0InOiAweDg1OTAsCi0gICdPUEVSQU5EMV9SR0In
OiAweDg1OTEsCi0gICdPUEVSQU5EMl9SR0InOiAweDg1OTIsCi0gICdPUEVSQU5EMF9BTFBIQSc6
IDB4ODU5OCwKLSAgJ09QRVJBTkQxX0FMUEhBJzogMHg4NTk5LAotICAnT1BFUkFORDJfQUxQSEEn
OiAweDg1OUEsCi0gICdURVhUVVJFX0NPTVBSRVNTRURfSU1BR0VfU0laRSc6IDB4ODZBMCwKLSAg
J1RFWFRVUkVfQ09NUFJFU1NFRCc6IDB4ODZBMSwKLSAgJ05VTV9DT01QUkVTU0VEX1RFWFRVUkVf
Rk9STUFUUyc6IDB4ODZBMiwKLSAgJ0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTJzogMHg4NkEz
LAotICAnRE9UM19SR0InOiAweDg2QUUsCi0gICdET1QzX1JHQkEnOiAweDg2QUYsCi0gICdNVUxU
SVNBTVBMRV9CSVQnOiAweDIwMDAwMDAwLAotICAnQkxFTkRfRFNUX1JHQic6IDB4ODBDOCwKLSAg
J0JMRU5EX1NSQ19SR0InOiAweDgwQzksCi0gICdCTEVORF9EU1RfQUxQSEEnOiAweDgwQ0EsCi0g
ICdCTEVORF9TUkNfQUxQSEEnOiAweDgwQ0IsCi0gICdQT0lOVF9TSVpFX01JTic6IDB4ODEyNiwK
LSAgJ1BPSU5UX1NJWkVfTUFYJzogMHg4MTI3LAotICAnUE9JTlRfRkFERV9USFJFU0hPTERfU0la
RSc6IDB4ODEyOCwKLSAgJ1BPSU5UX0RJU1RBTkNFX0FUVEVOVUFUSU9OJzogMHg4MTI5LAotICAn
R0VORVJBVEVfTUlQTUFQJzogMHg4MTkxLAotICAnR0VORVJBVEVfTUlQTUFQX0hJTlQnOiAweDgx
OTIsCi0gICdERVBUSF9DT01QT05FTlQxNic6IDB4ODFBNSwKLSAgJ0RFUFRIX0NPTVBPTkVOVDI0
JzogMHg4MUE2LAotICAnREVQVEhfQ09NUE9ORU5UMzInOiAweDgxQTcsCi0gICdNSVJST1JFRF9S
RVBFQVQnOiAweDgzNzAsCi0gICdGT0dfQ09PUkRJTkFURV9TT1VSQ0UnOiAweDg0NTAsCi0gICdG
T0dfQ09PUkRJTkFURSc6IDB4ODQ1MSwKLSAgJ0ZSQUdNRU5UX0RFUFRIJzogMHg4NDUyLAotICAn
Q1VSUkVOVF9GT0dfQ09PUkRJTkFURSc6IDB4ODQ1MywKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZ
X1RZUEUnOiAweDg0NTQsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9TVFJJREUnOiAweDg0NTUs
Ci0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9QT0lOVEVSJzogMHg4NDU2LAotICAnRk9HX0NPT1JE
SU5BVEVfQVJSQVknOiAweDg0NTcsCi0gICdDT0xPUl9TVU0nOiAweDg0NTgsCi0gICdDVVJSRU5U
X1NFQ09OREFSWV9DT0xPUic6IDB4ODQ1OSwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9TSVpF
JzogMHg4NDVBLAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX1RZUEUnOiAweDg0NUIsCi0gICdT
RUNPTkRBUllfQ09MT1JfQVJSQVlfU1RSSURFJzogMHg4NDVDLAotICAnU0VDT05EQVJZX0NPTE9S
X0FSUkFZX1BPSU5URVInOiAweDg0NUQsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVknOiAweDg0
NUUsCi0gICdNQVhfVEVYVFVSRV9MT0RfQklBUyc6IDB4ODRGRCwKLSAgJ1RFWFRVUkVfRklMVEVS
X0NPTlRST0wnOiAweDg1MDAsCi0gICdURVhUVVJFX0xPRF9CSUFTJzogMHg4NTAxLAotICAnSU5D
Ul9XUkFQJzogMHg4NTA3LAotICAnREVDUl9XUkFQJzogMHg4NTA4LAotICAnVEVYVFVSRV9ERVBU
SF9TSVpFJzogMHg4ODRBLAotICAnREVQVEhfVEVYVFVSRV9NT0RFJzogMHg4ODRCLAotICAnVEVY
VFVSRV9DT01QQVJFX01PREUnOiAweDg4NEMsCi0gICdURVhUVVJFX0NPTVBBUkVfRlVOQyc6IDB4
ODg0RCwKLSAgJ0NPTVBBUkVfUl9UT19URVhUVVJFJzogMHg4ODRFLAotICAnQlVGRkVSX1NJWkUn
OiAweDg3NjQsCi0gICdCVUZGRVJfVVNBR0UnOiAweDg3NjUsCi0gICdRVUVSWV9DT1VOVEVSX0JJ
VFMnOiAweDg4NjQsCi0gICdDVVJSRU5UX1FVRVJZJzogMHg4ODY1LAotICAnUVVFUllfUkVTVUxU
JzogMHg4ODY2LAotICAnUVVFUllfUkVTVUxUX0FWQUlMQUJMRSc6IDB4ODg2NywKLSAgJ0FSUkFZ
X0JVRkZFUic6IDB4ODg5MiwKLSAgJ0VMRU1FTlRfQVJSQVlfQlVGRkVSJzogMHg4ODkzLAotICAn
QVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTQsCi0gICdFTEVNRU5UX0FSUkFZX0JVRkZFUl9C
SU5ESU5HJzogMHg4ODk1LAotICAnVkVSVEVYX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODk2
LAotICAnTk9STUFMX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODk3LAotICAnQ09MT1JfQVJS
QVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTgsCi0gICdJTkRFWF9BUlJBWV9CVUZGRVJfQklORElO
Ryc6IDB4ODg5OSwKLSAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4
OUEsCi0gICdFREdFX0ZMQUdfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OUIsCi0gICdTRUNP
TkRBUllfQ09MT1JfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OUMsCi0gICdGT0dfQ09PUkRJ
TkFURV9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5RCwKLSAgJ1dFSUdIVF9BUlJBWV9CVUZG
RVJfQklORElORyc6IDB4ODg5RSwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJ
TkcnOiAweDg4OUYsCi0gICdSRUFEX09OTFknOiAweDg4QjgsCi0gICdXUklURV9PTkxZJzogMHg4
OEI5LAotICAnUkVBRF9XUklURSc6IDB4ODhCQSwKLSAgJ0JVRkZFUl9BQ0NFU1MnOiAweDg4QkIs
Ci0gICdCVUZGRVJfTUFQUEVEJzogMHg4OEJDLAotICAnQlVGRkVSX01BUF9QT0lOVEVSJzogMHg4
OEJELAotICAnU1RSRUFNX0RSQVcnOiAweDg4RTAsCi0gICdTVFJFQU1fUkVBRCc6IDB4ODhFMSwK
LSAgJ1NUUkVBTV9DT1BZJzogMHg4OEUyLAotICAnU1RBVElDX0RSQVcnOiAweDg4RTQsCi0gICdT
VEFUSUNfUkVBRCc6IDB4ODhFNSwKLSAgJ1NUQVRJQ19DT1BZJzogMHg4OEU2LAotICAnRFlOQU1J
Q19EUkFXJzogMHg4OEU4LAotICAnRFlOQU1JQ19SRUFEJzogMHg4OEU5LAotICAnRFlOQU1JQ19D
T1BZJzogMHg4OEVBLAotICAnU0FNUExFU19QQVNTRUQnOiAweDg5MTQsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZX0VOQUJMRUQnOiAweDg2MjIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUn
OiAweDg2MjMsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSc6IDB4ODYyNCwKLSAgJ1ZF
UlRFWF9BVFRSSUJfQVJSQVlfVFlQRSc6IDB4ODYyNSwKLSAgJ0NVUlJFTlRfVkVSVEVYX0FUVFJJ
Qic6IDB4ODYyNiwKLSAgJ1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUnOiAweDg2NDIsCi0gICdW
RVJURVhfUFJPR1JBTV9UV09fU0lERSc6IDB4ODY0MywKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlf
UE9JTlRFUic6IDB4ODY0NSwKLSAgJ1NURU5DSUxfQkFDS19GVU5DJzogMHg4ODAwLAotICAnU1RF
TkNJTF9CQUNLX0ZBSUwnOiAweDg4MDEsCi0gICdTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlM
JzogMHg4ODAyLAotICAnU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyc6IDB4ODgwMywKLSAg
J01BWF9EUkFXX0JVRkZFUlMnOiAweDg4MjQsCi0gICdEUkFXX0JVRkZFUjAnOiAweDg4MjUsCi0g
ICdEUkFXX0JVRkZFUjEnOiAweDg4MjYsCi0gICdEUkFXX0JVRkZFUjInOiAweDg4MjcsCi0gICdE
UkFXX0JVRkZFUjMnOiAweDg4MjgsCi0gICdEUkFXX0JVRkZFUjQnOiAweDg4MjksCi0gICdEUkFX
X0JVRkZFUjUnOiAweDg4MkEsCi0gICdEUkFXX0JVRkZFUjYnOiAweDg4MkIsCi0gICdEUkFXX0JV
RkZFUjcnOiAweDg4MkMsCi0gICdEUkFXX0JVRkZFUjgnOiAweDg4MkQsCi0gICdEUkFXX0JVRkZF
UjknOiAweDg4MkUsCi0gICdEUkFXX0JVRkZFUjEwJzogMHg4ODJGLAotICAnRFJBV19CVUZGRVIx
MSc6IDB4ODgzMCwKLSAgJ0RSQVdfQlVGRkVSMTInOiAweDg4MzEsCi0gICdEUkFXX0JVRkZFUjEz
JzogMHg4ODMyLAotICAnRFJBV19CVUZGRVIxNCc6IDB4ODgzMywKLSAgJ0RSQVdfQlVGRkVSMTUn
OiAweDg4MzQsCi0gICdCTEVORF9FUVVBVElPTl9BTFBIQSc6IDB4ODgzRCwKLSAgJ1BPSU5UX1NQ
UklURSc6IDB4ODg2MSwKLSAgJ0NPT1JEX1JFUExBQ0UnOiAweDg4NjIsCi0gICdNQVhfVkVSVEVY
X0FUVFJJQlMnOiAweDg4NjksCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQnOiAw
eDg4NkEsCi0gICdNQVhfVEVYVFVSRV9DT09SRFMnOiAweDg4NzEsCi0gICdNQVhfVEVYVFVSRV9J
TUFHRV9VTklUUyc6IDB4ODg3MiwKLSAgJ0ZSQUdNRU5UX1NIQURFUic6IDB4OEIzMCwKLSAgJ1ZF
UlRFWF9TSEFERVInOiAweDhCMzEsCi0gICdNQVhfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRT
JzogMHg4QjQ5LAotICAnTUFYX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMnOiAweDhCNEEsCi0g
ICdNQVhfVkFSWUlOR19GTE9BVFMnOiAweDhCNEIsCi0gICdNQVhfVkVSVEVYX1RFWFRVUkVfSU1B
R0VfVU5JVFMnOiAweDhCNEMsCi0gICdNQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUyc6
IDB4OEI0RCwKLSAgJ1NIQURFUl9UWVBFJzogMHg4QjRGLAotICAnRkxPQVRfVkVDMic6IDB4OEI1
MCwKLSAgJ0ZMT0FUX1ZFQzMnOiAweDhCNTEsCi0gICdGTE9BVF9WRUM0JzogMHg4QjUyLAotICAn
SU5UX1ZFQzInOiAweDhCNTMsCi0gICdJTlRfVkVDMyc6IDB4OEI1NCwKLSAgJ0lOVF9WRUM0Jzog
MHg4QjU1LAotICAnQk9PTCc6IDB4OEI1NiwKLSAgJ0JPT0xfVkVDMic6IDB4OEI1NywKLSAgJ0JP
T0xfVkVDMyc6IDB4OEI1OCwKLSAgJ0JPT0xfVkVDNCc6IDB4OEI1OSwKLSAgJ0ZMT0FUX01BVDIn
OiAweDhCNUEsCi0gICdGTE9BVF9NQVQzJzogMHg4QjVCLAotICAnRkxPQVRfTUFUNCc6IDB4OEI1
QywKLSAgJ1NBTVBMRVJfMUQnOiAweDhCNUQsCi0gICdTQU1QTEVSXzJEJzogMHg4QjVFLAotICAn
U0FNUExFUl8zRCc6IDB4OEI1RiwKLSAgJ1NBTVBMRVJfQ1VCRSc6IDB4OEI2MCwKLSAgJ1NBTVBM
RVJfMURfU0hBRE9XJzogMHg4QjYxLAotICAnU0FNUExFUl8yRF9TSEFET1cnOiAweDhCNjIsCi0g
ICdERUxFVEVfU1RBVFVTJzogMHg4QjgwLAotICAnQ09NUElMRV9TVEFUVVMnOiAweDhCODEsCi0g
ICdMSU5LX1NUQVRVUyc6IDB4OEI4MiwKLSAgJ1ZBTElEQVRFX1NUQVRVUyc6IDB4OEI4MywKLSAg
J0lORk9fTE9HX0xFTkdUSCc6IDB4OEI4NCwKLSAgJ0FUVEFDSEVEX1NIQURFUlMnOiAweDhCODUs
Ci0gICdBQ1RJVkVfVU5JRk9STVMnOiAweDhCODYsCi0gICdBQ1RJVkVfVU5JRk9STV9NQVhfTEVO
R1RIJzogMHg4Qjg3LAotICAnU0hBREVSX1NPVVJDRV9MRU5HVEgnOiAweDhCODgsCi0gICdBQ1RJ
VkVfQVRUUklCVVRFUyc6IDB4OEI4OSwKLSAgJ0FDVElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCc6
IDB4OEI4QSwKLSAgJ0ZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlQnOiAweDhCOEIsCi0g
ICdTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04nOiAweDhCOEMsCi0gICdDVVJSRU5UX1BST0dSQU0n
OiAweDhCOEQsCi0gICdQT0lOVF9TUFJJVEVfQ09PUkRfT1JJR0lOJzogMHg4Q0EwLAotICAnTE9X
RVJfTEVGVCc6IDB4OENBMSwKLSAgJ1VQUEVSX0xFRlQnOiAweDhDQTIsCi0gICdTVEVOQ0lMX0JB
Q0tfUkVGJzogMHg4Q0EzLAotICAnU1RFTkNJTF9CQUNLX1ZBTFVFX01BU0snOiAweDhDQTQsCi0g
ICdTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLJzogMHg4Q0E1LAotICAnQ1VSUkVOVF9SQVNURVJfU0VD
T05EQVJZX0NPTE9SJzogMHg4NDVGLAotICAnUElYRUxfUEFDS19CVUZGRVInOiAweDg4RUIsCi0g
ICdQSVhFTF9VTlBBQ0tfQlVGRkVSJzogMHg4OEVDLAotICAnUElYRUxfUEFDS19CVUZGRVJfQklO
RElORyc6IDB4ODhFRCwKLSAgJ1BJWEVMX1VOUEFDS19CVUZGRVJfQklORElORyc6IDB4ODhFRiwK
LSAgJ0ZMT0FUX01BVDJ4Myc6IDB4OEI2NSwKLSAgJ0ZMT0FUX01BVDJ4NCc6IDB4OEI2NiwKLSAg
J0ZMT0FUX01BVDN4Mic6IDB4OEI2NywKLSAgJ0ZMT0FUX01BVDN4NCc6IDB4OEI2OCwKLSAgJ0ZM
T0FUX01BVDR4Mic6IDB4OEI2OSwKLSAgJ0ZMT0FUX01BVDR4Myc6IDB4OEI2QSwKLSAgJ1NSR0In
OiAweDhDNDAsCi0gICdTUkdCOCc6IDB4OEM0MSwKLSAgJ1NSR0JfQUxQSEEnOiAweDhDNDIsCi0g
ICdTUkdCOF9BTFBIQTgnOiAweDhDNDMsCi0gICdTTFVNSU5BTkNFX0FMUEhBJzogMHg4QzQ0LAot
ICAnU0xVTUlOQU5DRThfQUxQSEE4JzogMHg4QzQ1LAotICAnU0xVTUlOQU5DRSc6IDB4OEM0NiwK
LSAgJ1NMVU1JTkFOQ0U4JzogMHg4QzQ3LAotICAnQ09NUFJFU1NFRF9TUkdCJzogMHg4QzQ4LAot
ICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhBJzogMHg4QzQ5LAotICAnQ09NUFJFU1NFRF9TTFVNSU5B
TkNFJzogMHg4QzRBLAotICAnQ09NUFJFU1NFRF9TTFVNSU5BTkNFX0FMUEhBJzogMHg4QzRCLAot
ICAnQ09OVEVYVF9GTEFHX0ZPUldBUkRfQ09NUEFUSUJMRV9CSVQnOiAweDAwMDEsCi0gICdNQUpP
Ul9WRVJTSU9OJzogMHg4MjFCLAotICAnTUlOT1JfVkVSU0lPTic6IDB4ODIxQywKLSAgJ05VTV9F
WFRFTlNJT05TJzogMHg4MjFELAotICAnQ09OVEVYVF9GTEFHUyc6IDB4ODIxRSwKLSAgJ0RFUFRI
X0JVRkZFUic6IDB4ODIyMywKLSAgJ1NURU5DSUxfQlVGRkVSJzogMHg4MjI0LAotICAnQ09NUFJF
U1NFRF9SRUQnOiAweDgyMjUsCi0gICdDT01QUkVTU0VEX1JHJzogMHg4MjI2LAotICAnUkdCQTMy
Ric6IDB4ODgxNCwKLSAgJ1JHQjMyRic6IDB4ODgxNSwKLSAgJ1JHQkExNkYnOiAweDg4MUEsCi0g
ICdSR0IxNkYnOiAweDg4MUIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX0lOVEVHRVInOiAweDg4
RkQsCi0gICdNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMnOiAweDg4RkYsCi0gICdNSU5fUFJPR1JB
TV9URVhFTF9PRkZTRVQnOiAweDg5MDQsCi0gICdNQVhfUFJPR1JBTV9URVhFTF9PRkZTRVQnOiAw
eDg5MDUsCi0gICdDTEFNUF9WRVJURVhfQ09MT1InOiAweDg5MUEsCi0gICdDTEFNUF9GUkFHTUVO
VF9DT0xPUic6IDB4ODkxQiwKLSAgJ0NMQU1QX1JFQURfQ09MT1InOiAweDg5MUMsCi0gICdGSVhF
RF9PTkxZJzogMHg4OTFELAotICAnVEVYVFVSRV9SRURfVFlQRSc6IDB4OEMxMCwKLSAgJ1RFWFRV
UkVfR1JFRU5fVFlQRSc6IDB4OEMxMSwKLSAgJ1RFWFRVUkVfQkxVRV9UWVBFJzogMHg4QzEyLAot
ICAnVEVYVFVSRV9BTFBIQV9UWVBFJzogMHg4QzEzLAotICAnVEVYVFVSRV9MVU1JTkFOQ0VfVFlQ
RSc6IDB4OEMxNCwKLSAgJ1RFWFRVUkVfSU5URU5TSVRZX1RZUEUnOiAweDhDMTUsCi0gICdURVhU
VVJFX0RFUFRIX1RZUEUnOiAweDhDMTYsCi0gICdVTlNJR05FRF9OT1JNQUxJWkVEJzogMHg4QzE3
LAotICAnVEVYVFVSRV8xRF9BUlJBWSc6IDB4OEMxOCwKLSAgJ1BST1hZX1RFWFRVUkVfMURfQVJS
QVknOiAweDhDMTksCi0gICdURVhUVVJFXzJEX0FSUkFZJzogMHg4QzFBLAotICAnUFJPWFlfVEVY
VFVSRV8yRF9BUlJBWSc6IDB4OEMxQiwKLSAgJ1RFWFRVUkVfQklORElOR18xRF9BUlJBWSc6IDB4
OEMxQywKLSAgJ1RFWFRVUkVfQklORElOR18yRF9BUlJBWSc6IDB4OEMxRCwKLSAgJ1IxMUZfRzEx
Rl9CMTBGJzogMHg4QzNBLAotICAnVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVic6IDB4OEMz
QiwKLSAgJ1JHQjlfRTUnOiAweDhDM0QsCi0gICdVTlNJR05FRF9JTlRfNV85XzlfOV9SRVYnOiAw
eDhDM0UsCi0gICdURVhUVVJFX1NIQVJFRF9TSVpFJzogMHg4QzNGLAotICAnVFJBTlNGT1JNX0ZF
RURCQUNLX1ZBUllJTkdfTUFYX0xFTkdUSCc6IDB4OEM3NiwKLSAgJ1RSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJfTU9ERSc6IDB4OEM3RiwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJB
VEVfQ09NUE9ORU5UUyc6IDB4OEM4MCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HUyc6
IDB4OEM4MywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQnOiAweDhDODQsCi0g
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUnOiAweDhDODUsCi0gICdQUklNSVRJVkVT
X0dFTkVSQVRFRCc6IDB4OEM4NywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dS
SVRURU4nOiAweDhDODgsCi0gICdSQVNURVJJWkVSX0RJU0NBUkQnOiAweDhDODksCi0gICdNQVhf
VFJBTlNGT1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMnOiAweDhDOEEsCi0gICdN
QVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJQlMnOiAweDhDOEIsCi0gICdJTlRF
UkxFQVZFRF9BVFRSSUJTJzogMHg4QzhDLAotICAnU0VQQVJBVEVfQVRUUklCUyc6IDB4OEM4RCwK
LSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVInOiAweDhDOEUsCi0gICdUUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSX0JJTkRJTkcnOiAweDhDOEYsCi0gICdSR0JBMzJVSSc6IDB4OEQ3MCwKLSAg
J1JHQjMyVUknOiAweDhENzEsCi0gICdSR0JBMTZVSSc6IDB4OEQ3NiwKLSAgJ1JHQjE2VUknOiAw
eDhENzcsCi0gICdSR0JBOFVJJzogMHg4RDdDLAotICAnUkdCOFVJJzogMHg4RDdELAotICAnUkdC
QTMySSc6IDB4OEQ4MiwKLSAgJ1JHQjMySSc6IDB4OEQ4MywKLSAgJ1JHQkExNkknOiAweDhEODgs
Ci0gICdSR0IxNkknOiAweDhEODksCi0gICdSR0JBOEknOiAweDhEOEUsCi0gICdSR0I4SSc6IDB4
OEQ4RiwKLSAgJ1JFRF9JTlRFR0VSJzogMHg4RDk0LAotICAnR1JFRU5fSU5URUdFUic6IDB4OEQ5
NSwKLSAgJ0JMVUVfSU5URUdFUic6IDB4OEQ5NiwKLSAgJ0FMUEhBX0lOVEVHRVInOiAweDhEOTcs
Ci0gICdSR0JfSU5URUdFUic6IDB4OEQ5OCwKLSAgJ1JHQkFfSU5URUdFUic6IDB4OEQ5OSwKLSAg
J0JHUl9JTlRFR0VSJzogMHg4RDlBLAotICAnQkdSQV9JTlRFR0VSJzogMHg4RDlCLAotICAnU0FN
UExFUl8xRF9BUlJBWSc6IDB4OERDMCwKLSAgJ1NBTVBMRVJfMkRfQVJSQVknOiAweDhEQzEsCi0g
ICdTQU1QTEVSXzFEX0FSUkFZX1NIQURPVyc6IDB4OERDMywKLSAgJ1NBTVBMRVJfMkRfQVJSQVlf
U0hBRE9XJzogMHg4REM0LAotICAnU0FNUExFUl9DVUJFX1NIQURPVyc6IDB4OERDNSwKLSAgJ1VO
U0lHTkVEX0lOVF9WRUMyJzogMHg4REM2LAotICAnVU5TSUdORURfSU5UX1ZFQzMnOiAweDhEQzcs
Ci0gICdVTlNJR05FRF9JTlRfVkVDNCc6IDB4OERDOCwKLSAgJ0lOVF9TQU1QTEVSXzFEJzogMHg4
REM5LAotICAnSU5UX1NBTVBMRVJfMkQnOiAweDhEQ0EsCi0gICdJTlRfU0FNUExFUl8zRCc6IDB4
OERDQiwKLSAgJ0lOVF9TQU1QTEVSX0NVQkUnOiAweDhEQ0MsCi0gICdJTlRfU0FNUExFUl8xRF9B
UlJBWSc6IDB4OERDRSwKLSAgJ0lOVF9TQU1QTEVSXzJEX0FSUkFZJzogMHg4RENGLAotICAnVU5T
SUdORURfSU5UX1NBTVBMRVJfMUQnOiAweDhERDEsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8y
RCc6IDB4OEREMiwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzNEJzogMHg4REQzLAotICAnVU5T
SUdORURfSU5UX1NBTVBMRVJfQ1VCRSc6IDB4OERENCwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVS
XzFEX0FSUkFZJzogMHg4REQ2LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkRfQVJSQVknOiAw
eDhERDcsCi0gICdRVUVSWV9XQUlUJzogMHg4RTEzLAotICAnUVVFUllfTk9fV0FJVCc6IDB4OEUx
NCwKLSAgJ1FVRVJZX0JZX1JFR0lPTl9XQUlUJzogMHg4RTE1LAotICAnUVVFUllfQllfUkVHSU9O
X05PX1dBSVQnOiAweDhFMTYsCi0gICdNVUxUSVNBTVBMRV8zREZYJzogMHg4NkIyLAotICAnU0FN
UExFX0JVRkZFUlNfM0RGWCc6IDB4ODZCMywKLSAgJ1NBTVBMRVNfM0RGWCc6IDB4ODZCNCwKLSAg
J01VTFRJU0FNUExFX0JJVF8zREZYJzogMHgyMDAwMDAwMCwKLSAgJ0NPTVBSRVNTRURfUkdCX0ZY
VDFfM0RGWCc6IDB4ODZCMCwKLSAgJ0NPTVBSRVNTRURfUkdCQV9GWFQxXzNERlgnOiAweDg2QjEs
Ci0gICdVTlBBQ0tfQ0xJRU5UX1NUT1JBR0VfQVBQTEUnOiAweDg1QjIsCi0gICdFTEVNRU5UX0FS
UkFZX0FQUExFJzogMHg4NzY4LAotICAnRUxFTUVOVF9BUlJBWV9UWVBFX0FQUExFJzogMHg4NzY5
LAotICAnRUxFTUVOVF9BUlJBWV9QT0lOVEVSX0FQUExFJzogMHg4NzZBLAotICAnSEFMRl9BUFBM
RSc6IDB4MTQwQiwKLSAgJ1JHQkFfRkxPQVQzMl9BUFBMRSc6IDB4ODgxNCwKLSAgJ1JHQl9GTE9B
VDMyX0FQUExFJzogMHg4ODE1LAotICAnQUxQSEFfRkxPQVQzMl9BUFBMRSc6IDB4ODgxNiwKLSAg
J0lOVEVOU0lUWV9GTE9BVDMyX0FQUExFJzogMHg4ODE3LAotICAnTFVNSU5BTkNFX0ZMT0FUMzJf
QVBQTEUnOiAweDg4MTgsCi0gICdMVU1JTkFOQ0VfQUxQSEFfRkxPQVQzMl9BUFBMRSc6IDB4ODgx
OSwKLSAgJ1JHQkFfRkxPQVQxNl9BUFBMRSc6IDB4ODgxQSwKLSAgJ1JHQl9GTE9BVDE2X0FQUExF
JzogMHg4ODFCLAotICAnQUxQSEFfRkxPQVQxNl9BUFBMRSc6IDB4ODgxQywKLSAgJ0lOVEVOU0lU
WV9GTE9BVDE2X0FQUExFJzogMHg4ODFELAotICAnTFVNSU5BTkNFX0ZMT0FUMTZfQVBQTEUnOiAw
eDg4MUUsCi0gICdMVU1JTkFOQ0VfQUxQSEFfRkxPQVQxNl9BUFBMRSc6IDB4ODgxRiwKLSAgJ0NP
TE9SX0ZMT0FUX0FQUExFJzogMHg4QTBGLAotICAnQlVGRkVSX1NFUklBTElaRURfTU9ESUZZX0FQ
UExFJzogMHg4QTEyLAotICAnQlVGRkVSX0ZMVVNISU5HX1VOTUFQX0FQUExFJzogMHg4QTEzLAot
ICAnTUlOX1BCVUZGRVJfVklFV1BPUlRfRElNU19BUFBMRSc6IDB4OEExMCwKLSAgJ0xJR0hUX01P
REVMX1NQRUNVTEFSX1ZFQ1RPUl9BUFBMRSc6IDB4ODVCMCwKLSAgJ1RFWFRVUkVfUkFOR0VfTEVO
R1RIX0FQUExFJzogMHg4NUI3LAotICAnVEVYVFVSRV9SQU5HRV9QT0lOVEVSX0FQUExFJzogMHg4
NUI4LAotICAnVEVYVFVSRV9TVE9SQUdFX0hJTlRfQVBQTEUnOiAweDg1QkMsCi0gICdTVE9SQUdF
X1BSSVZBVEVfQVBQTEUnOiAweDg1QkQsCi0gICdTVE9SQUdFX0NBQ0hFRF9BUFBMRSc6IDB4ODVC
RSwKLSAgJ1NUT1JBR0VfU0hBUkVEX0FQUExFJzogMHg4NUJGLAotICAnVFJBTlNGT1JNX0hJTlRf
QVBQTEUnOiAweDg1QjEsCi0gICdWRVJURVhfQVJSQVlfQklORElOR19BUFBMRSc6IDB4ODVCNSwK
LSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9BUFBMRSc6IDB4ODUxRCwKLSAgJ1ZFUlRFWF9BUlJBWV9S
QU5HRV9MRU5HVEhfQVBQTEUnOiAweDg1MUUsCi0gICdWRVJURVhfQVJSQVlfU1RPUkFHRV9ISU5U
X0FQUExFJzogMHg4NTFGLAotICAnTUFYX1ZFUlRFWF9BUlJBWV9SQU5HRV9FTEVNRU5UX0FQUExF
JzogMHg4NTIwLAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX1BPSU5URVJfQVBQTEUnOiAweDg1MjEs
Ci0gICdTVE9SQUdFX0NBQ0hFRF9BUFBMRSc6IDB4ODVCRSwKLSAgJ1NUT1JBR0VfU0hBUkVEX0FQ
UExFJzogMHg4NUJGLAotICAnWUNCQ1JfNDIyX0FQUExFJzogMHg4NUI5LAotICAnVU5TSUdORURf
U0hPUlRfOF84X0FQUExFJzogMHg4NUJBLAotICAnVU5TSUdORURfU0hPUlRfOF84X1JFVl9BUFBM
RSc6IDB4ODVCQiwKLSAgJ1JHQkFfRkxPQVRfTU9ERV9BUkInOiAweDg4MjAsCi0gICdDTEFNUF9W
RVJURVhfQ09MT1JfQVJCJzogMHg4OTFBLAotICAnQ0xBTVBfRlJBR01FTlRfQ09MT1JfQVJCJzog
MHg4OTFCLAotICAnQ0xBTVBfUkVBRF9DT0xPUl9BUkInOiAweDg5MUMsCi0gICdGSVhFRF9PTkxZ
X0FSQic6IDB4ODkxRCwKLSAgJ0RFUFRIX0NPTVBPTkVOVDMyRic6IDB4OENBQywKLSAgJ0RFUFRI
MzJGX1NURU5DSUw4JzogMHg4Q0FELAotICAnRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVW
JzogMHg4REFELAotICAnREVQVEhfQ09NUE9ORU5UMTZfQVJCJzogMHg4MUE1LAotICAnREVQVEhf
Q09NUE9ORU5UMjRfQVJCJzogMHg4MUE2LAotICAnREVQVEhfQ09NUE9ORU5UMzJfQVJCJzogMHg4
MUE3LAotICAnVEVYVFVSRV9ERVBUSF9TSVpFX0FSQic6IDB4ODg0QSwKLSAgJ0RFUFRIX1RFWFRV
UkVfTU9ERV9BUkInOiAweDg4NEIsCi0gICdNQVhfRFJBV19CVUZGRVJTX0FSQic6IDB4ODgyNCwK
LSAgJ0RSQVdfQlVGRkVSMF9BUkInOiAweDg4MjUsCi0gICdEUkFXX0JVRkZFUjFfQVJCJzogMHg4
ODI2LAotICAnRFJBV19CVUZGRVIyX0FSQic6IDB4ODgyNywKLSAgJ0RSQVdfQlVGRkVSM19BUkIn
OiAweDg4MjgsCi0gICdEUkFXX0JVRkZFUjRfQVJCJzogMHg4ODI5LAotICAnRFJBV19CVUZGRVI1
X0FSQic6IDB4ODgyQSwKLSAgJ0RSQVdfQlVGRkVSNl9BUkInOiAweDg4MkIsCi0gICdEUkFXX0JV
RkZFUjdfQVJCJzogMHg4ODJDLAotICAnRFJBV19CVUZGRVI4X0FSQic6IDB4ODgyRCwKLSAgJ0RS
QVdfQlVGRkVSOV9BUkInOiAweDg4MkUsCi0gICdEUkFXX0JVRkZFUjEwX0FSQic6IDB4ODgyRiwK
LSAgJ0RSQVdfQlVGRkVSMTFfQVJCJzogMHg4ODMwLAotICAnRFJBV19CVUZGRVIxMl9BUkInOiAw
eDg4MzEsCi0gICdEUkFXX0JVRkZFUjEzX0FSQic6IDB4ODgzMiwKLSAgJ0RSQVdfQlVGRkVSMTRf
QVJCJzogMHg4ODMzLAotICAnRFJBV19CVUZGRVIxNV9BUkInOiAweDg4MzQsCi0gICdGUkFHTUVO
VF9QUk9HUkFNX0FSQic6IDB4ODgwNCwKLSAgJ1BST0dSQU1fQUxVX0lOU1RSVUNUSU9OU19BUkIn
OiAweDg4MDUsCi0gICdQUk9HUkFNX1RFWF9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODA2LAotICAn
UFJPR1JBTV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgwNywKLSAgJ1BST0dSQU1fTkFUSVZF
X0FMVV9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODA4LAotICAnUFJPR1JBTV9OQVRJVkVfVEVYX0lO
U1RSVUNUSU9OU19BUkInOiAweDg4MDksCi0gICdQUk9HUkFNX05BVElWRV9URVhfSU5ESVJFQ1RJ
T05TX0FSQic6IDB4ODgwQSwKLSAgJ01BWF9QUk9HUkFNX0FMVV9JTlNUUlVDVElPTlNfQVJCJzog
MHg4ODBCLAotICAnTUFYX1BST0dSQU1fVEVYX0lOU1RSVUNUSU9OU19BUkInOiAweDg4MEMsCi0g
ICdNQVhfUFJPR1JBTV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgwRCwKLSAgJ01BWF9QUk9H
UkFNX05BVElWRV9BTFVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwRSwKLSAgJ01BWF9QUk9HUkFN
X05BVElWRV9URVhfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwRiwKLSAgJ01BWF9QUk9HUkFNX05B
VElWRV9URVhfSU5ESVJFQ1RJT05TX0FSQic6IDB4ODgxMCwKLSAgJ01BWF9URVhUVVJFX0NPT1JE
U19BUkInOiAweDg4NzEsCi0gICdNQVhfVEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDg4NzIs
Ci0gICdGUkFHTUVOVF9TSEFERVJfQVJCJzogMHg4QjMwLAotICAnTUFYX0ZSQUdNRU5UX1VOSUZP
Uk1fQ09NUE9ORU5UU19BUkInOiAweDhCNDksCi0gICdGUkFHTUVOVF9TSEFERVJfREVSSVZBVElW
RV9ISU5UX0FSQic6IDB4OEI4QiwKLSAgJ0lOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OJzog
MHgwNTA2LAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyc6IDB4ODIx
MCwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUnOiAweDgyMTEsCi0g
ICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFJzogMHg4MjEyLAotICAnRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9HUkVFTl9TSVpFJzogMHg4MjEzLAotICAnRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9CTFVFX1NJWkUnOiAweDgyMTQsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhB
X1NJWkUnOiAweDgyMTUsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUnOiAw
eDgyMTYsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1NURU5DSUxfU0laRSc6IDB4ODIxNywK
LSAgJ0ZSQU1FQlVGRkVSX0RFRkFVTFQnOiAweDgyMTgsCi0gICdGUkFNRUJVRkZFUl9VTkRFRklO
RUQnOiAweDgyMTksCi0gICdERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQnOiAweDgyMUEsCi0gICdJ
TkRFWCc6IDB4ODIyMiwKLSAgJ01BWF9SRU5ERVJCVUZGRVJfU0laRSc6IDB4ODRFOCwKLSAgJ0RF
UFRIX1NURU5DSUwnOiAweDg0RjksCi0gICdVTlNJR05FRF9JTlRfMjRfOCc6IDB4ODRGQSwKLSAg
J0RFUFRIMjRfU1RFTkNJTDgnOiAweDg4RjAsCi0gICdURVhUVVJFX1NURU5DSUxfU0laRSc6IDB4
ODhGMSwKLSAgJ1VOU0lHTkVEX05PUk1BTElaRUQnOiAweDhDMTcsCi0gICdTUkdCJzogMHg4QzQw
LAotICAnRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HJzogMHg4Q0E2LAotICAnRlJBTUVCVUZGRVJf
QklORElORyc6IDB4OENBNiwKLSAgJ1JFTkRFUkJVRkZFUl9CSU5ESU5HJzogMHg4Q0E3LAotICAn
UkVBRF9GUkFNRUJVRkZFUic6IDB4OENBOCwKLSAgJ0RSQVdfRlJBTUVCVUZGRVInOiAweDhDQTks
Ci0gICdSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcnOiAweDhDQUEsCi0gICdSRU5ERVJCVUZGRVJf
U0FNUExFUyc6IDB4OENBQiwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUn
OiAweDhDRDAsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FJzogMHg4Q0Qx
LAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMJzogMHg4Q0QyLAotICAn
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0UnOiAweDhDRDMsCi0g
ICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVInOiAweDhDRDQsCi0gICdGUkFN
RUJVRkZFUl9DT01QTEVURSc6IDB4OENENSwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRU
QUNITUVOVCc6IDB4OENENiwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UJzogMHg4Q0Q3LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9EUkFXX0JVRkZFUic6
IDB4OENEQiwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfUkVBRF9CVUZGRVInOiAweDhDREMs
Ci0gICdGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCc6IDB4OENERCwKLSAgJ01BWF9DT0xPUl9BVFRB
Q0hNRU5UUyc6IDB4OENERiwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQwJzogMHg4Q0UwLAotICAnQ09M
T1JfQVRUQUNITUVOVDEnOiAweDhDRTEsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMic6IDB4OENFMiwK
LSAgJ0NPTE9SX0FUVEFDSE1FTlQzJzogMHg4Q0UzLAotICAnQ09MT1JfQVRUQUNITUVOVDQnOiAw
eDhDRTQsCi0gICdDT0xPUl9BVFRBQ0hNRU5UNSc6IDB4OENFNSwKLSAgJ0NPTE9SX0FUVEFDSE1F
TlQ2JzogMHg4Q0U2LAotICAnQ09MT1JfQVRUQUNITUVOVDcnOiAweDhDRTcsCi0gICdDT0xPUl9B
VFRBQ0hNRU5UOCc6IDB4OENFOCwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ5JzogMHg4Q0U5LAotICAn
Q09MT1JfQVRUQUNITUVOVDEwJzogMHg4Q0VBLAotICAnQ09MT1JfQVRUQUNITUVOVDExJzogMHg4
Q0VCLAotICAnQ09MT1JfQVRUQUNITUVOVDEyJzogMHg4Q0VDLAotICAnQ09MT1JfQVRUQUNITUVO
VDEzJzogMHg4Q0VELAotICAnQ09MT1JfQVRUQUNITUVOVDE0JzogMHg4Q0VFLAotICAnQ09MT1Jf
QVRUQUNITUVOVDE1JzogMHg4Q0VGLAotICAnREVQVEhfQVRUQUNITUVOVCc6IDB4OEQwMCwKLSAg
J1NURU5DSUxfQVRUQUNITUVOVCc6IDB4OEQyMCwKLSAgJ0ZSQU1FQlVGRkVSJzogMHg4RDQwLAot
ICAnUkVOREVSQlVGRkVSJzogMHg4RDQxLAotICAnUkVOREVSQlVGRkVSX1dJRFRIJzogMHg4RDQy
LAotICAnUkVOREVSQlVGRkVSX0hFSUdIVCc6IDB4OEQ0MywKLSAgJ1JFTkRFUkJVRkZFUl9JTlRF
Uk5BTF9GT1JNQVQnOiAweDhENDQsCi0gICdTVEVOQ0lMX0lOREVYMSc6IDB4OEQ0NiwKLSAgJ1NU
RU5DSUxfSU5ERVg0JzogMHg4RDQ3LAotICAnU1RFTkNJTF9JTkRFWDgnOiAweDhENDgsCi0gICdT
VEVOQ0lMX0lOREVYMTYnOiAweDhENDksCi0gICdSRU5ERVJCVUZGRVJfUkVEX1NJWkUnOiAweDhE
NTAsCi0gICdSRU5ERVJCVUZGRVJfR1JFRU5fU0laRSc6IDB4OEQ1MSwKLSAgJ1JFTkRFUkJVRkZF
Ul9CTFVFX1NJWkUnOiAweDhENTIsCi0gICdSRU5ERVJCVUZGRVJfQUxQSEFfU0laRSc6IDB4OEQ1
MywKLSAgJ1JFTkRFUkJVRkZFUl9ERVBUSF9TSVpFJzogMHg4RDU0LAotICAnUkVOREVSQlVGRkVS
X1NURU5DSUxfU0laRSc6IDB4OEQ1NSwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElT
QU1QTEUnOiAweDhENTYsCi0gICdNQVhfU0FNUExFUyc6IDB4OEQ1NywKLSAgJ0ZSQU1FQlVGRkVS
X1NSR0InOiAweDhEQjksCi0gICdMSU5FU19BREpBQ0VOQ1lfQVJCJzogMHhBLAotICAnTElORV9T
VFJJUF9BREpBQ0VOQ1lfQVJCJzogMHhCLAotICAnVFJJQU5HTEVTX0FESkFDRU5DWV9BUkInOiAw
eEMsCi0gICdUUklBTkdMRV9TVFJJUF9BREpBQ0VOQ1lfQVJCJzogMHhELAotICAnUFJPR1JBTV9Q
T0lOVF9TSVpFX0FSQic6IDB4ODY0MiwKLSAgJ01BWF9HRU9NRVRSWV9URVhUVVJFX0lNQUdFX1VO
SVRTX0FSQic6IDB4OEMyOSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlF
Uic6IDB4OENENCwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfTEFZRVJFRF9BUkInOiAweDhE
QTcsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0xBWUVSX1RBUkdFVFNfQVJCJzogMHg4REE4
LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9MQVlFUl9DT1VOVF9BUkInOiAweDhEQTksCi0g
ICdHRU9NRVRSWV9TSEFERVJfQVJCJzogMHg4REQ5LAotICAnR0VPTUVUUllfVkVSVElDRVNfT1VU
X0FSQic6IDB4OEREQSwKLSAgJ0dFT01FVFJZX0lOUFVUX1RZUEVfQVJCJzogMHg4RERCLAotICAn
R0VPTUVUUllfT1VUUFVUX1RZUEVfQVJCJzogMHg4RERDLAotICAnTUFYX0dFT01FVFJZX1ZBUllJ
TkdfQ09NUE9ORU5UU19BUkInOiAweDhEREQsCi0gICdNQVhfVkVSVEVYX1ZBUllJTkdfQ09NUE9O
RU5UU19BUkInOiAweDhEREUsCi0gICdNQVhfR0VPTUVUUllfVU5JRk9STV9DT01QT05FTlRTX0FS
Qic6IDB4OERERiwKLSAgJ01BWF9HRU9NRVRSWV9PVVRQVVRfVkVSVElDRVNfQVJCJzogMHg4REUw
LAotICAnTUFYX0dFT01FVFJZX1RPVEFMX09VVFBVVF9DT01QT05FTlRTX0FSQic6IDB4OERFMSwK
LSAgJ0hBTEZfRkxPQVRfQVJCJzogMHgxNDBCLAotICAnSEFMRl9GTE9BVCc6IDB4MTQwQiwKLSAg
J0NPTlNUQU5UX0NPTE9SJzogMHg4MDAxLAotICAnT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SJzog
MHg4MDAyLAotICAnQ09OU1RBTlRfQUxQSEEnOiAweDgwMDMsCi0gICdPTkVfTUlOVVNfQ09OU1RB
TlRfQUxQSEEnOiAweDgwMDQsCi0gICdCTEVORF9DT0xPUic6IDB4ODAwNSwKLSAgJ0ZVTkNfQURE
JzogMHg4MDA2LAotICAnTUlOJzogMHg4MDA3LAotICAnTUFYJzogMHg4MDA4LAotICAnQkxFTkRf
RVFVQVRJT04nOiAweDgwMDksCi0gICdGVU5DX1NVQlRSQUNUJzogMHg4MDBBLAotICAnRlVOQ19S
RVZFUlNFX1NVQlRSQUNUJzogMHg4MDBCLAotICAnQ09OVk9MVVRJT05fMUQnOiAweDgwMTAsCi0g
ICdDT05WT0xVVElPTl8yRCc6IDB4ODAxMSwKLSAgJ1NFUEFSQUJMRV8yRCc6IDB4ODAxMiwKLSAg
J0NPTlZPTFVUSU9OX0JPUkRFUl9NT0RFJzogMHg4MDEzLAotICAnQ09OVk9MVVRJT05fRklMVEVS
X1NDQUxFJzogMHg4MDE0LAotICAnQ09OVk9MVVRJT05fRklMVEVSX0JJQVMnOiAweDgwMTUsCi0g
ICdSRURVQ0UnOiAweDgwMTYsCi0gICdDT05WT0xVVElPTl9GT1JNQVQnOiAweDgwMTcsCi0gICdD
T05WT0xVVElPTl9XSURUSCc6IDB4ODAxOCwKLSAgJ0NPTlZPTFVUSU9OX0hFSUdIVCc6IDB4ODAx
OSwKLSAgJ01BWF9DT05WT0xVVElPTl9XSURUSCc6IDB4ODAxQSwKLSAgJ01BWF9DT05WT0xVVElP
Tl9IRUlHSFQnOiAweDgwMUIsCi0gICdQT1NUX0NPTlZPTFVUSU9OX1JFRF9TQ0FMRSc6IDB4ODAx
QywKLSAgJ1BPU1RfQ09OVk9MVVRJT05fR1JFRU5fU0NBTEUnOiAweDgwMUQsCi0gICdQT1NUX0NP
TlZPTFVUSU9OX0JMVUVfU0NBTEUnOiAweDgwMUUsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0FMUEhB
X1NDQUxFJzogMHg4MDFGLAotICAnUE9TVF9DT05WT0xVVElPTl9SRURfQklBUyc6IDB4ODAyMCwK
LSAgJ1BPU1RfQ09OVk9MVVRJT05fR1JFRU5fQklBUyc6IDB4ODAyMSwKLSAgJ1BPU1RfQ09OVk9M
VVRJT05fQkxVRV9CSUFTJzogMHg4MDIyLAotICAnUE9TVF9DT05WT0xVVElPTl9BTFBIQV9CSUFT
JzogMHg4MDIzLAotICAnSElTVE9HUkFNJzogMHg4MDI0LAotICAnUFJPWFlfSElTVE9HUkFNJzog
MHg4MDI1LAotICAnSElTVE9HUkFNX1dJRFRIJzogMHg4MDI2LAotICAnSElTVE9HUkFNX0ZPUk1B
VCc6IDB4ODAyNywKLSAgJ0hJU1RPR1JBTV9SRURfU0laRSc6IDB4ODAyOCwKLSAgJ0hJU1RPR1JB
TV9HUkVFTl9TSVpFJzogMHg4MDI5LAotICAnSElTVE9HUkFNX0JMVUVfU0laRSc6IDB4ODAyQSwK
LSAgJ0hJU1RPR1JBTV9BTFBIQV9TSVpFJzogMHg4MDJCLAotICAnSElTVE9HUkFNX0xVTUlOQU5D
RV9TSVpFJzogMHg4MDJDLAotICAnSElTVE9HUkFNX1NJTksnOiAweDgwMkQsCi0gICdNSU5NQVgn
OiAweDgwMkUsCi0gICdNSU5NQVhfRk9STUFUJzogMHg4MDJGLAotICAnTUlOTUFYX1NJTksnOiAw
eDgwMzAsCi0gICdUQUJMRV9UT09fTEFSR0UnOiAweDgwMzEsCi0gICdDT0xPUl9NQVRSSVgnOiAw
eDgwQjEsCi0gICdDT0xPUl9NQVRSSVhfU1RBQ0tfREVQVEgnOiAweDgwQjIsCi0gICdNQVhfQ09M
T1JfTUFUUklYX1NUQUNLX0RFUFRIJzogMHg4MEIzLAotICAnUE9TVF9DT0xPUl9NQVRSSVhfUkVE
X1NDQUxFJzogMHg4MEI0LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfR1JFRU5fU0NBTEUnOiAweDgw
QjUsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX1NDQUxFJzogMHg4MEI2LAotICAnUE9TVF9D
T0xPUl9NQVRSSVhfQUxQSEFfU0NBTEUnOiAweDgwQjcsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9S
RURfQklBUyc6IDB4ODBCOCwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0dSRUVOX0JJQVMnOiAweDgw
QjksCi0gICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX0JJQVMnOiAweDgwQkEsCi0gICdQT1NUX0NP
TE9SX01BVFJJWF9BTFBIQV9CSUFTJzogMHg4MEJCLAotICAnQ09MT1JfVEFCTEUnOiAweDgwRDAs
Ci0gICdQT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFJzogMHg4MEQxLAotICAnUE9TVF9DT0xP
Ul9NQVRSSVhfQ09MT1JfVEFCTEUnOiAweDgwRDIsCi0gICdQUk9YWV9DT0xPUl9UQUJMRSc6IDB4
ODBEMywKLSAgJ1BST1hZX1BPU1RfQ09OVk9MVVRJT05fQ09MT1JfVEFCTEUnOiAweDgwRDQsCi0g
ICdQUk9YWV9QT1NUX0NPTE9SX01BVFJJWF9DT0xPUl9UQUJMRSc6IDB4ODBENSwKLSAgJ0NPTE9S
X1RBQkxFX1NDQUxFJzogMHg4MEQ2LAotICAnQ09MT1JfVEFCTEVfQklBUyc6IDB4ODBENywKLSAg
J0NPTE9SX1RBQkxFX0ZPUk1BVCc6IDB4ODBEOCwKLSAgJ0NPTE9SX1RBQkxFX1dJRFRIJzogMHg4
MEQ5LAotICAnQ09MT1JfVEFCTEVfUkVEX1NJWkUnOiAweDgwREEsCi0gICdDT0xPUl9UQUJMRV9H
UkVFTl9TSVpFJzogMHg4MERCLAotICAnQ09MT1JfVEFCTEVfQkxVRV9TSVpFJzogMHg4MERDLAot
ICAnQ09MT1JfVEFCTEVfQUxQSEFfU0laRSc6IDB4ODBERCwKLSAgJ0NPTE9SX1RBQkxFX0xVTUlO
QU5DRV9TSVpFJzogMHg4MERFLAotICAnQ09MT1JfVEFCTEVfSU5URU5TSVRZX1NJWkUnOiAweDgw
REYsCi0gICdJR05PUkVfQk9SREVSJzogMHg4MTUwLAotICAnQ09OU1RBTlRfQk9SREVSJzogMHg4
MTUxLAotICAnV1JBUF9CT1JERVInOiAweDgxNTIsCi0gICdSRVBMSUNBVEVfQk9SREVSJzogMHg4
MTUzLAotICAnQ09OVk9MVVRJT05fQk9SREVSX0NPTE9SJzogMHg4MTU0LAotICAnVkVSVEVYX0FU
VFJJQl9BUlJBWV9ESVZJU09SX0FSQic6IDB4ODhGRSwKLSAgJ01BUF9SRUFEX0JJVCc6IDB4MDAw
MSwKLSAgJ01BUF9XUklURV9CSVQnOiAweDAwMDIsCi0gICdNQVBfSU5WQUxJREFURV9SQU5HRV9C
SVQnOiAweDAwMDQsCi0gICdNQVBfSU5WQUxJREFURV9CVUZGRVJfQklUJzogMHgwMDA4LAotICAn
TUFQX0ZMVVNIX0VYUExJQ0lUX0JJVCc6IDB4MDAxMCwKLSAgJ01BUF9VTlNZTkNIUk9OSVpFRF9C
SVQnOiAweDAwMjAsCi0gICdNQVRSSVhfUEFMRVRURV9BUkInOiAweDg4NDAsCi0gICdNQVhfTUFU
UklYX1BBTEVUVEVfU1RBQ0tfREVQVEhfQVJCJzogMHg4ODQxLAotICAnTUFYX1BBTEVUVEVfTUFU
UklDRVNfQVJCJzogMHg4ODQyLAotICAnQ1VSUkVOVF9QQUxFVFRFX01BVFJJWF9BUkInOiAweDg4
NDMsCi0gICdNQVRSSVhfSU5ERVhfQVJSQVlfQVJCJzogMHg4ODQ0LAotICAnQ1VSUkVOVF9NQVRS
SVhfSU5ERVhfQVJCJzogMHg4ODQ1LAotICAnTUFUUklYX0lOREVYX0FSUkFZX1NJWkVfQVJCJzog
MHg4ODQ2LAotICAnTUFUUklYX0lOREVYX0FSUkFZX1RZUEVfQVJCJzogMHg4ODQ3LAotICAnTUFU
UklYX0lOREVYX0FSUkFZX1NUUklERV9BUkInOiAweDg4NDgsCi0gICdNQVRSSVhfSU5ERVhfQVJS
QVlfUE9JTlRFUl9BUkInOiAweDg4NDksCi0gICdNVUxUSVNBTVBMRV9BUkInOiAweDgwOUQsCi0g
ICdTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0VfQVJCJzogMHg4MDlFLAotICAnU0FNUExFX0FMUEhB
X1RPX09ORV9BUkInOiAweDgwOUYsCi0gICdTQU1QTEVfQ09WRVJBR0VfQVJCJzogMHg4MEEwLAot
ICAnU0FNUExFX0JVRkZFUlNfQVJCJzogMHg4MEE4LAotICAnU0FNUExFU19BUkInOiAweDgwQTks
Ci0gICdTQU1QTEVfQ09WRVJBR0VfVkFMVUVfQVJCJzogMHg4MEFBLAotICAnU0FNUExFX0NPVkVS
QUdFX0lOVkVSVF9BUkInOiAweDgwQUIsCi0gICdNVUxUSVNBTVBMRV9CSVRfQVJCJzogMHgyMDAw
MDAwMCwKLSAgJ1RFWFRVUkUwX0FSQic6IDB4ODRDMCwKLSAgJ1RFWFRVUkUxX0FSQic6IDB4ODRD
MSwKLSAgJ1RFWFRVUkUyX0FSQic6IDB4ODRDMiwKLSAgJ1RFWFRVUkUzX0FSQic6IDB4ODRDMywK
LSAgJ1RFWFRVUkU0X0FSQic6IDB4ODRDNCwKLSAgJ1RFWFRVUkU1X0FSQic6IDB4ODRDNSwKLSAg
J1RFWFRVUkU2X0FSQic6IDB4ODRDNiwKLSAgJ1RFWFRVUkU3X0FSQic6IDB4ODRDNywKLSAgJ1RF
WFRVUkU4X0FSQic6IDB4ODRDOCwKLSAgJ1RFWFRVUkU5X0FSQic6IDB4ODRDOSwKLSAgJ1RFWFRV
UkUxMF9BUkInOiAweDg0Q0EsCi0gICdURVhUVVJFMTFfQVJCJzogMHg4NENCLAotICAnVEVYVFVS
RTEyX0FSQic6IDB4ODRDQywKLSAgJ1RFWFRVUkUxM19BUkInOiAweDg0Q0QsCi0gICdURVhUVVJF
MTRfQVJCJzogMHg4NENFLAotICAnVEVYVFVSRTE1X0FSQic6IDB4ODRDRiwKLSAgJ1RFWFRVUkUx
Nl9BUkInOiAweDg0RDAsCi0gICdURVhUVVJFMTdfQVJCJzogMHg4NEQxLAotICAnVEVYVFVSRTE4
X0FSQic6IDB4ODREMiwKLSAgJ1RFWFRVUkUxOV9BUkInOiAweDg0RDMsCi0gICdURVhUVVJFMjBf
QVJCJzogMHg4NEQ0LAotICAnVEVYVFVSRTIxX0FSQic6IDB4ODRENSwKLSAgJ1RFWFRVUkUyMl9B
UkInOiAweDg0RDYsCi0gICdURVhUVVJFMjNfQVJCJzogMHg4NEQ3LAotICAnVEVYVFVSRTI0X0FS
Qic6IDB4ODREOCwKLSAgJ1RFWFRVUkUyNV9BUkInOiAweDg0RDksCi0gICdURVhUVVJFMjZfQVJC
JzogMHg4NERBLAotICAnVEVYVFVSRTI3X0FSQic6IDB4ODREQiwKLSAgJ1RFWFRVUkUyOF9BUkIn
OiAweDg0REMsCi0gICdURVhUVVJFMjlfQVJCJzogMHg4NERELAotICAnVEVYVFVSRTMwX0FSQic6
IDB4ODRERSwKLSAgJ1RFWFRVUkUzMV9BUkInOiAweDg0REYsCi0gICdBQ1RJVkVfVEVYVFVSRV9B
UkInOiAweDg0RTAsCi0gICdDTElFTlRfQUNUSVZFX1RFWFRVUkVfQVJCJzogMHg4NEUxLAotICAn
TUFYX1RFWFRVUkVfVU5JVFNfQVJCJzogMHg4NEUyLAotICAnUVVFUllfQ09VTlRFUl9CSVRTX0FS
Qic6IDB4ODg2NCwKLSAgJ0NVUlJFTlRfUVVFUllfQVJCJzogMHg4ODY1LAotICAnUVVFUllfUkVT
VUxUX0FSQic6IDB4ODg2NiwKLSAgJ1FVRVJZX1JFU1VMVF9BVkFJTEFCTEVfQVJCJzogMHg4ODY3
LAotICAnU0FNUExFU19QQVNTRURfQVJCJzogMHg4OTE0LAotICAnUElYRUxfUEFDS19CVUZGRVJf
QVJCJzogMHg4OEVCLAotICAnUElYRUxfVU5QQUNLX0JVRkZFUl9BUkInOiAweDg4RUMsCi0gICdQ
SVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODhFRCwKLSAgJ1BJWEVMX1VOUEFDS19C
VUZGRVJfQklORElOR19BUkInOiAweDg4RUYsCi0gICdQT0lOVF9TSVpFX01JTl9BUkInOiAweDgx
MjYsCi0gICdQT0lOVF9TSVpFX01BWF9BUkInOiAweDgxMjcsCi0gICdQT0lOVF9GQURFX1RIUkVT
SE9MRF9TSVpFX0FSQic6IDB4ODEyOCwKLSAgJ1BPSU5UX0RJU1RBTkNFX0FUVEVOVUFUSU9OX0FS
Qic6IDB4ODEyOSwKLSAgJ1BPSU5UX1NQUklURV9BUkInOiAweDg4NjEsCi0gICdDT09SRF9SRVBM
QUNFX0FSQic6IDB4ODg2MiwKLSAgJ1BST0dSQU1fT0JKRUNUX0FSQic6IDB4OEI0MCwKLSAgJ1NI
QURFUl9PQkpFQ1RfQVJCJzogMHg4QjQ4LAotICAnT0JKRUNUX1RZUEVfQVJCJzogMHg4QjRFLAot
ICAnT0JKRUNUX1NVQlRZUEVfQVJCJzogMHg4QjRGLAotICAnRkxPQVRfVkVDMl9BUkInOiAweDhC
NTAsCi0gICdGTE9BVF9WRUMzX0FSQic6IDB4OEI1MSwKLSAgJ0ZMT0FUX1ZFQzRfQVJCJzogMHg4
QjUyLAotICAnSU5UX1ZFQzJfQVJCJzogMHg4QjUzLAotICAnSU5UX1ZFQzNfQVJCJzogMHg4QjU0
LAotICAnSU5UX1ZFQzRfQVJCJzogMHg4QjU1LAotICAnQk9PTF9BUkInOiAweDhCNTYsCi0gICdC
T09MX1ZFQzJfQVJCJzogMHg4QjU3LAotICAnQk9PTF9WRUMzX0FSQic6IDB4OEI1OCwKLSAgJ0JP
T0xfVkVDNF9BUkInOiAweDhCNTksCi0gICdGTE9BVF9NQVQyX0FSQic6IDB4OEI1QSwKLSAgJ0ZM
T0FUX01BVDNfQVJCJzogMHg4QjVCLAotICAnRkxPQVRfTUFUNF9BUkInOiAweDhCNUMsCi0gICdT
QU1QTEVSXzFEX0FSQic6IDB4OEI1RCwKLSAgJ1NBTVBMRVJfMkRfQVJCJzogMHg4QjVFLAotICAn
U0FNUExFUl8zRF9BUkInOiAweDhCNUYsCi0gICdTQU1QTEVSX0NVQkVfQVJCJzogMHg4QjYwLAot
ICAnU0FNUExFUl8xRF9TSEFET1dfQVJCJzogMHg4QjYxLAotICAnU0FNUExFUl8yRF9TSEFET1df
QVJCJzogMHg4QjYyLAotICAnU0FNUExFUl8yRF9SRUNUX0FSQic6IDB4OEI2MywKLSAgJ1NBTVBM
RVJfMkRfUkVDVF9TSEFET1dfQVJCJzogMHg4QjY0LAotICAnT0JKRUNUX0RFTEVURV9TVEFUVVNf
QVJCJzogMHg4QjgwLAotICAnT0JKRUNUX0NPTVBJTEVfU1RBVFVTX0FSQic6IDB4OEI4MSwKLSAg
J09CSkVDVF9MSU5LX1NUQVRVU19BUkInOiAweDhCODIsCi0gICdPQkpFQ1RfVkFMSURBVEVfU1RB
VFVTX0FSQic6IDB4OEI4MywKLSAgJ09CSkVDVF9JTkZPX0xPR19MRU5HVEhfQVJCJzogMHg4Qjg0
LAotICAnT0JKRUNUX0FUVEFDSEVEX09CSkVDVFNfQVJCJzogMHg4Qjg1LAotICAnT0JKRUNUX0FD
VElWRV9VTklGT1JNU19BUkInOiAweDhCODYsCi0gICdPQkpFQ1RfQUNUSVZFX1VOSUZPUk1fTUFY
X0xFTkdUSF9BUkInOiAweDhCODcsCi0gICdPQkpFQ1RfU0hBREVSX1NPVVJDRV9MRU5HVEhfQVJC
JzogMHg4Qjg4LAotICAnU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OX0FSQic6IDB4OEI4QywKLSAg
J1RFWFRVUkVfQ09NUEFSRV9NT0RFX0FSQic6IDB4ODg0QywKLSAgJ1RFWFRVUkVfQ09NUEFSRV9G
VU5DX0FSQic6IDB4ODg0RCwKLSAgJ0NPTVBBUkVfUl9UT19URVhUVVJFX0FSQic6IDB4ODg0RSwK
LSAgJ1RFWFRVUkVfQ09NUEFSRV9GQUlMX1ZBTFVFX0FSQic6IDB4ODBCRiwKLSAgJ0NMQU1QX1RP
X0JPUkRFUl9BUkInOiAweDgxMkQsCi0gICdURVhUVVJFX0JVRkZFUl9BUkInOiAweDhDMkEsCi0g
ICdNQVhfVEVYVFVSRV9CVUZGRVJfU0laRV9BUkInOiAweDhDMkIsCi0gICdURVhUVVJFX0JJTkRJ
TkdfQlVGRkVSX0FSQic6IDB4OEMyQywKLSAgJ1RFWFRVUkVfQlVGRkVSX0RBVEFfU1RPUkVfQklO
RElOR19BUkInOiAweDhDMkQsCi0gICdURVhUVVJFX0JVRkZFUl9GT1JNQVRfQVJCJzogMHg4QzJF
LAotICAnQ09NUFJFU1NFRF9BTFBIQV9BUkInOiAweDg0RTksCi0gICdDT01QUkVTU0VEX0xVTUlO
QU5DRV9BUkInOiAweDg0RUEsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRV9BTFBIQV9BUkInOiAw
eDg0RUIsCi0gICdDT01QUkVTU0VEX0lOVEVOU0lUWV9BUkInOiAweDg0RUMsCi0gICdDT01QUkVT
U0VEX1JHQl9BUkInOiAweDg0RUQsCi0gICdDT01QUkVTU0VEX1JHQkFfQVJCJzogMHg4NEVFLAot
ICAnVEVYVFVSRV9DT01QUkVTU0lPTl9ISU5UX0FSQic6IDB4ODRFRiwKLSAgJ1RFWFRVUkVfQ09N
UFJFU1NFRF9JTUFHRV9TSVpFX0FSQic6IDB4ODZBMCwKLSAgJ1RFWFRVUkVfQ09NUFJFU1NFRF9B
UkInOiAweDg2QTEsCi0gICdOVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFNfQVJCJzogMHg4
NkEyLAotICAnQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFNfQVJCJzogMHg4NkEzLAotICAnQ09N
UFJFU1NFRF9SRURfUkdUQzEnOiAweDhEQkIsCi0gICdDT01QUkVTU0VEX1NJR05FRF9SRURfUkdU
QzEnOiAweDhEQkMsCi0gICdDT01QUkVTU0VEX1JHX1JHVEMyJzogMHg4REJELAotICAnQ09NUFJF
U1NFRF9TSUdORURfUkdfUkdUQzInOiAweDhEQkUsCi0gICdOT1JNQUxfTUFQX0FSQic6IDB4ODUx
MSwKLSAgJ1JFRkxFQ1RJT05fTUFQX0FSQic6IDB4ODUxMiwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBf
QVJCJzogMHg4NTEzLAotICAnVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQX0FSQic6IDB4ODUxNCwK
LSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWF9BUkInOiAweDg1MTUsCi0gICdURVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1hfQVJCJzogMHg4NTE2LAotICAnVEVYVFVSRV9DVUJFX01BUF9Q
T1NJVElWRV9ZX0FSQic6IDB4ODUxNywKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWV9B
UkInOiAweDg1MTgsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1pfQVJCJzogMHg4NTE5
LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aX0FSQic6IDB4ODUxQSwKLSAgJ1BST1hZ
X1RFWFRVUkVfQ1VCRV9NQVBfQVJCJzogMHg4NTFCLAotICAnTUFYX0NVQkVfTUFQX1RFWFRVUkVf
U0laRV9BUkInOiAweDg1MUMsCi0gICdTVUJUUkFDVF9BUkInOiAweDg0RTcsCi0gICdDT01CSU5F
X0FSQic6IDB4ODU3MCwKLSAgJ0NPTUJJTkVfUkdCX0FSQic6IDB4ODU3MSwKLSAgJ0NPTUJJTkVf
QUxQSEFfQVJCJzogMHg4NTcyLAotICAnUkdCX1NDQUxFX0FSQic6IDB4ODU3MywKLSAgJ0FERF9T
SUdORURfQVJCJzogMHg4NTc0LAotICAnSU5URVJQT0xBVEVfQVJCJzogMHg4NTc1LAotICAnQ09O
U1RBTlRfQVJCJzogMHg4NTc2LAotICAnUFJJTUFSWV9DT0xPUl9BUkInOiAweDg1NzcsCi0gICdQ
UkVWSU9VU19BUkInOiAweDg1NzgsCi0gICdTT1VSQ0UwX1JHQl9BUkInOiAweDg1ODAsCi0gICdT
T1VSQ0UxX1JHQl9BUkInOiAweDg1ODEsCi0gICdTT1VSQ0UyX1JHQl9BUkInOiAweDg1ODIsCi0g
ICdTT1VSQ0UwX0FMUEhBX0FSQic6IDB4ODU4OCwKLSAgJ1NPVVJDRTFfQUxQSEFfQVJCJzogMHg4
NTg5LAotICAnU09VUkNFMl9BTFBIQV9BUkInOiAweDg1OEEsCi0gICdPUEVSQU5EMF9SR0JfQVJC
JzogMHg4NTkwLAotICAnT1BFUkFORDFfUkdCX0FSQic6IDB4ODU5MSwKLSAgJ09QRVJBTkQyX1JH
Ql9BUkInOiAweDg1OTIsCi0gICdPUEVSQU5EMF9BTFBIQV9BUkInOiAweDg1OTgsCi0gICdPUEVS
QU5EMV9BTFBIQV9BUkInOiAweDg1OTksCi0gICdPUEVSQU5EMl9BTFBIQV9BUkInOiAweDg1OUEs
Ci0gICdET1QzX1JHQl9BUkInOiAweDg2QUUsCi0gICdET1QzX1JHQkFfQVJCJzogMHg4NkFGLAot
ICAnUkdCQTMyRl9BUkInOiAweDg4MTQsCi0gICdSR0IzMkZfQVJCJzogMHg4ODE1LAotICAnQUxQ
SEEzMkZfQVJCJzogMHg4ODE2LAotICAnSU5URU5TSVRZMzJGX0FSQic6IDB4ODgxNywKLSAgJ0xV
TUlOQU5DRTMyRl9BUkInOiAweDg4MTgsCi0gICdMVU1JTkFOQ0VfQUxQSEEzMkZfQVJCJzogMHg4
ODE5LAotICAnUkdCQTE2Rl9BUkInOiAweDg4MUEsCi0gICdSR0IxNkZfQVJCJzogMHg4ODFCLAot
ICAnQUxQSEExNkZfQVJCJzogMHg4ODFDLAotICAnSU5URU5TSVRZMTZGX0FSQic6IDB4ODgxRCwK
LSAgJ0xVTUlOQU5DRTE2Rl9BUkInOiAweDg4MUUsCi0gICdMVU1JTkFOQ0VfQUxQSEExNkZfQVJC
JzogMHg4ODFGLAotICAnVEVYVFVSRV9SRURfVFlQRV9BUkInOiAweDhDMTAsCi0gICdURVhUVVJF
X0dSRUVOX1RZUEVfQVJCJzogMHg4QzExLAotICAnVEVYVFVSRV9CTFVFX1RZUEVfQVJCJzogMHg4
QzEyLAotICAnVEVYVFVSRV9BTFBIQV9UWVBFX0FSQic6IDB4OEMxMywKLSAgJ1RFWFRVUkVfTFVN
SU5BTkNFX1RZUEVfQVJCJzogMHg4QzE0LAotICAnVEVYVFVSRV9JTlRFTlNJVFlfVFlQRV9BUkIn
OiAweDhDMTUsCi0gICdURVhUVVJFX0RFUFRIX1RZUEVfQVJCJzogMHg4QzE2LAotICAnVU5TSUdO
RURfTk9STUFMSVpFRF9BUkInOiAweDhDMTcsCi0gICdNSVJST1JFRF9SRVBFQVRfQVJCJzogMHg4
MzcwLAotICAnVEVYVFVSRV9SRUNUQU5HTEVfQVJCJzogMHg4NEY1LAotICAnVEVYVFVSRV9CSU5E
SU5HX1JFQ1RBTkdMRV9BUkInOiAweDg0RjYsCi0gICdQUk9YWV9URVhUVVJFX1JFQ1RBTkdMRV9B
UkInOiAweDg0RjcsCi0gICdNQVhfUkVDVEFOR0xFX1RFWFRVUkVfU0laRV9BUkInOiAweDg0Rjgs
Ci0gICdTQU1QTEVSXzJEX1JFQ1RfQVJCJzogMHg4QjYzLAotICAnU0FNUExFUl8yRF9SRUNUX1NI
QURPV19BUkInOiAweDhCNjQsCi0gICdSRUQnOiAweDE5MDMsCi0gICdSRyc6IDB4ODIyNywKLSAg
J1JHX0lOVEVHRVInOiAweDgyMjgsCi0gICdSOCc6IDB4ODIyOSwKLSAgJ1IxNic6IDB4ODIyQSwK
LSAgJ1JHOCc6IDB4ODIyQiwKLSAgJ1JHMTYnOiAweDgyMkMsCi0gICdSMTZGJzogMHg4MjJELAot
ICAnUjMyRic6IDB4ODIyRSwKLSAgJ1JHMTZGJzogMHg4MjJGLAotICAnUkczMkYnOiAweDgyMzAs
Ci0gICdSOEknOiAweDgyMzEsCi0gICdSOFVJJzogMHg4MjMyLAotICAnUjE2SSc6IDB4ODIzMywK
LSAgJ1IxNlVJJzogMHg4MjM0LAotICAnUjMySSc6IDB4ODIzNSwKLSAgJ1IzMlVJJzogMHg4MjM2
LAotICAnUkc4SSc6IDB4ODIzNywKLSAgJ1JHOFVJJzogMHg4MjM4LAotICAnUkcxNkknOiAweDgy
MzksCi0gICdSRzE2VUknOiAweDgyM0EsCi0gICdSRzMySSc6IDB4ODIzQiwKLSAgJ1JHMzJVSSc6
IDB4ODIzQywKLSAgJ1RSQU5TUE9TRV9NT0RFTFZJRVdfTUFUUklYX0FSQic6IDB4ODRFMywKLSAg
J1RSQU5TUE9TRV9QUk9KRUNUSU9OX01BVFJJWF9BUkInOiAweDg0RTQsCi0gICdUUkFOU1BPU0Vf
VEVYVFVSRV9NQVRSSVhfQVJCJzogMHg4NEU1LAotICAnVFJBTlNQT1NFX0NPTE9SX01BVFJJWF9B
UkInOiAweDg0RTYsCi0gICdWRVJURVhfQVJSQVlfQklORElORyc6IDB4ODVCNSwKLSAgJ01PREVM
VklFVzBfQVJCJzogMHgxNzAwLAotICAnTU9ERUxWSUVXMV9BUkInOiAweDg1MEEsCi0gICdNQVhf
VkVSVEVYX1VOSVRTX0FSQic6IDB4ODZBNCwKLSAgJ0FDVElWRV9WRVJURVhfVU5JVFNfQVJCJzog
MHg4NkE1LAotICAnV0VJR0hUX1NVTV9VTklUWV9BUkInOiAweDg2QTYsCi0gICdWRVJURVhfQkxF
TkRfQVJCJzogMHg4NkE3LAotICAnQ1VSUkVOVF9XRUlHSFRfQVJCJzogMHg4NkE4LAotICAnV0VJ
R0hUX0FSUkFZX1RZUEVfQVJCJzogMHg4NkE5LAotICAnV0VJR0hUX0FSUkFZX1NUUklERV9BUkIn
OiAweDg2QUEsCi0gICdXRUlHSFRfQVJSQVlfU0laRV9BUkInOiAweDg2QUIsCi0gICdXRUlHSFRf
QVJSQVlfUE9JTlRFUl9BUkInOiAweDg2QUMsCi0gICdXRUlHSFRfQVJSQVlfQVJCJzogMHg4NkFE
LAotICAnTU9ERUxWSUVXMl9BUkInOiAweDg3MjIsCi0gICdNT0RFTFZJRVczX0FSQic6IDB4ODcy
MywKLSAgJ01PREVMVklFVzRfQVJCJzogMHg4NzI0LAotICAnTU9ERUxWSUVXNV9BUkInOiAweDg3
MjUsCi0gICdNT0RFTFZJRVc2X0FSQic6IDB4ODcyNiwKLSAgJ01PREVMVklFVzdfQVJCJzogMHg4
NzI3LAotICAnTU9ERUxWSUVXOF9BUkInOiAweDg3MjgsCi0gICdNT0RFTFZJRVc5X0FSQic6IDB4
ODcyOSwKLSAgJ01PREVMVklFVzEwX0FSQic6IDB4ODcyQSwKLSAgJ01PREVMVklFVzExX0FSQic6
IDB4ODcyQiwKLSAgJ01PREVMVklFVzEyX0FSQic6IDB4ODcyQywKLSAgJ01PREVMVklFVzEzX0FS
Qic6IDB4ODcyRCwKLSAgJ01PREVMVklFVzE0X0FSQic6IDB4ODcyRSwKLSAgJ01PREVMVklFVzE1
X0FSQic6IDB4ODcyRiwKLSAgJ01PREVMVklFVzE2X0FSQic6IDB4ODczMCwKLSAgJ01PREVMVklF
VzE3X0FSQic6IDB4ODczMSwKLSAgJ01PREVMVklFVzE4X0FSQic6IDB4ODczMiwKLSAgJ01PREVM
VklFVzE5X0FSQic6IDB4ODczMywKLSAgJ01PREVMVklFVzIwX0FSQic6IDB4ODczNCwKLSAgJ01P
REVMVklFVzIxX0FSQic6IDB4ODczNSwKLSAgJ01PREVMVklFVzIyX0FSQic6IDB4ODczNiwKLSAg
J01PREVMVklFVzIzX0FSQic6IDB4ODczNywKLSAgJ01PREVMVklFVzI0X0FSQic6IDB4ODczOCwK
LSAgJ01PREVMVklFVzI1X0FSQic6IDB4ODczOSwKLSAgJ01PREVMVklFVzI2X0FSQic6IDB4ODcz
QSwKLSAgJ01PREVMVklFVzI3X0FSQic6IDB4ODczQiwKLSAgJ01PREVMVklFVzI4X0FSQic6IDB4
ODczQywKLSAgJ01PREVMVklFVzI5X0FSQic6IDB4ODczRCwKLSAgJ01PREVMVklFVzMwX0FSQic6
IDB4ODczRSwKLSAgJ01PREVMVklFVzMxX0FSQic6IDB4ODczRiwKLSAgJ0JVRkZFUl9TSVpFX0FS
Qic6IDB4ODc2NCwKLSAgJ0JVRkZFUl9VU0FHRV9BUkInOiAweDg3NjUsCi0gICdBUlJBWV9CVUZG
RVJfQVJCJzogMHg4ODkyLAotICAnRUxFTUVOVF9BUlJBWV9CVUZGRVJfQVJCJzogMHg4ODkzLAot
ICAnQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODk0LAotICAnRUxFTUVOVF9BUlJBWV9C
VUZGRVJfQklORElOR19BUkInOiAweDg4OTUsCi0gICdWRVJURVhfQVJSQVlfQlVGRkVSX0JJTkRJ
TkdfQVJCJzogMHg4ODk2LAotICAnTk9STUFMX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4
ODg5NywKLSAgJ0NPTE9SX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5OCwKLSAgJ0lO
REVYX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5OSwKLSAgJ1RFWFRVUkVfQ09PUkRf
QVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODlBLAotICAnRURHRV9GTEFHX0FSUkFZX0JV
RkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5QiwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9CVUZG
RVJfQklORElOR19BUkInOiAweDg4OUMsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9CVUZGRVJf
QklORElOR19BUkInOiAweDg4OUQsCi0gICdXRUlHSFRfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJC
JzogMHg4ODlFLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAw
eDg4OUYsCi0gICdSRUFEX09OTFlfQVJCJzogMHg4OEI4LAotICAnV1JJVEVfT05MWV9BUkInOiAw
eDg4QjksCi0gICdSRUFEX1dSSVRFX0FSQic6IDB4ODhCQSwKLSAgJ0JVRkZFUl9BQ0NFU1NfQVJC
JzogMHg4OEJCLAotICAnQlVGRkVSX01BUFBFRF9BUkInOiAweDg4QkMsCi0gICdCVUZGRVJfTUFQ
X1BPSU5URVJfQVJCJzogMHg4OEJELAotICAnU1RSRUFNX0RSQVdfQVJCJzogMHg4OEUwLAotICAn
U1RSRUFNX1JFQURfQVJCJzogMHg4OEUxLAotICAnU1RSRUFNX0NPUFlfQVJCJzogMHg4OEUyLAot
ICAnU1RBVElDX0RSQVdfQVJCJzogMHg4OEU0LAotICAnU1RBVElDX1JFQURfQVJCJzogMHg4OEU1
LAotICAnU1RBVElDX0NPUFlfQVJCJzogMHg4OEU2LAotICAnRFlOQU1JQ19EUkFXX0FSQic6IDB4
ODhFOCwKLSAgJ0RZTkFNSUNfUkVBRF9BUkInOiAweDg4RTksCi0gICdEWU5BTUlDX0NPUFlfQVJC
JzogMHg4OEVBLAotICAnQ09MT1JfU1VNX0FSQic6IDB4ODQ1OCwKLSAgJ1ZFUlRFWF9QUk9HUkFN
X0FSQic6IDB4ODYyMCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRF9BUkInOiAweDg2
MjIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1NJWkVfQVJCJzogMHg4NjIzLAotICAnVkVSVEVY
X0FUVFJJQl9BUlJBWV9TVFJJREVfQVJCJzogMHg4NjI0LAotICAnVkVSVEVYX0FUVFJJQl9BUlJB
WV9UWVBFX0FSQic6IDB4ODYyNSwKLSAgJ0NVUlJFTlRfVkVSVEVYX0FUVFJJQl9BUkInOiAweDg2
MjYsCi0gICdQUk9HUkFNX0xFTkdUSF9BUkInOiAweDg2MjcsCi0gICdQUk9HUkFNX1NUUklOR19B
UkInOiAweDg2MjgsCi0gICdNQVhfUFJPR1JBTV9NQVRSSVhfU1RBQ0tfREVQVEhfQVJCJzogMHg4
NjJFLAotICAnTUFYX1BST0dSQU1fTUFUUklDRVNfQVJCJzogMHg4NjJGLAotICAnQ1VSUkVOVF9N
QVRSSVhfU1RBQ0tfREVQVEhfQVJCJzogMHg4NjQwLAotICAnQ1VSUkVOVF9NQVRSSVhfQVJCJzog
MHg4NjQxLAotICAnVkVSVEVYX1BST0dSQU1fUE9JTlRfU0laRV9BUkInOiAweDg2NDIsCi0gICdW
RVJURVhfUFJPR1JBTV9UV09fU0lERV9BUkInOiAweDg2NDMsCi0gICdWRVJURVhfQVRUUklCX0FS
UkFZX1BPSU5URVJfQVJCJzogMHg4NjQ1LAotICAnUFJPR1JBTV9FUlJPUl9QT1NJVElPTl9BUkIn
OiAweDg2NEIsCi0gICdQUk9HUkFNX0JJTkRJTkdfQVJCJzogMHg4Njc3LAotICAnTUFYX1ZFUlRF
WF9BVFRSSUJTX0FSQic6IDB4ODg2OSwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpF
RF9BUkInOiAweDg4NkEsCi0gICdQUk9HUkFNX0VSUk9SX1NUUklOR19BUkInOiAweDg4NzQsCi0g
ICdQUk9HUkFNX0ZPUk1BVF9BU0NJSV9BUkInOiAweDg4NzUsCi0gICdQUk9HUkFNX0ZPUk1BVF9B
UkInOiAweDg4NzYsCi0gICdQUk9HUkFNX0lOU1RSVUNUSU9OU19BUkInOiAweDg4QTAsCi0gICdN
QVhfUFJPR1JBTV9JTlNUUlVDVElPTlNfQVJCJzogMHg4OEExLAotICAnUFJPR1JBTV9OQVRJVkVf
SU5TVFJVQ1RJT05TX0FSQic6IDB4ODhBMiwKLSAgJ01BWF9QUk9HUkFNX05BVElWRV9JTlNUUlVD
VElPTlNfQVJCJzogMHg4OEEzLAotICAnUFJPR1JBTV9URU1QT1JBUklFU19BUkInOiAweDg4QTQs
Ci0gICdNQVhfUFJPR1JBTV9URU1QT1JBUklFU19BUkInOiAweDg4QTUsCi0gICdQUk9HUkFNX05B
VElWRV9URU1QT1JBUklFU19BUkInOiAweDg4QTYsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfVEVN
UE9SQVJJRVNfQVJCJzogMHg4OEE3LAotICAnUFJPR1JBTV9QQVJBTUVURVJTX0FSQic6IDB4ODhB
OCwKLSAgJ01BWF9QUk9HUkFNX1BBUkFNRVRFUlNfQVJCJzogMHg4OEE5LAotICAnUFJPR1JBTV9O
QVRJVkVfUEFSQU1FVEVSU19BUkInOiAweDg4QUEsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfUEFS
QU1FVEVSU19BUkInOiAweDg4QUIsCi0gICdQUk9HUkFNX0FUVFJJQlNfQVJCJzogMHg4OEFDLAot
ICAnTUFYX1BST0dSQU1fQVRUUklCU19BUkInOiAweDg4QUQsCi0gICdQUk9HUkFNX05BVElWRV9B
VFRSSUJTX0FSQic6IDB4ODhBRSwKLSAgJ01BWF9QUk9HUkFNX05BVElWRV9BVFRSSUJTX0FSQic6
IDB4ODhBRiwKLSAgJ1BST0dSQU1fQUREUkVTU19SRUdJU1RFUlNfQVJCJzogMHg4OEIwLAotICAn
TUFYX1BST0dSQU1fQUREUkVTU19SRUdJU1RFUlNfQVJCJzogMHg4OEIxLAotICAnUFJPR1JBTV9O
QVRJVkVfQUREUkVTU19SRUdJU1RFUlNfQVJCJzogMHg4OEIyLAotICAnTUFYX1BST0dSQU1fTkFU
SVZFX0FERFJFU1NfUkVHSVNURVJTX0FSQic6IDB4ODhCMywKLSAgJ01BWF9QUk9HUkFNX0xPQ0FM
X1BBUkFNRVRFUlNfQVJCJzogMHg4OEI0LAotICAnTUFYX1BST0dSQU1fRU5WX1BBUkFNRVRFUlNf
QVJCJzogMHg4OEI1LAotICAnUFJPR1JBTV9VTkRFUl9OQVRJVkVfTElNSVRTX0FSQic6IDB4ODhC
NiwKLSAgJ1RSQU5TUE9TRV9DVVJSRU5UX01BVFJJWF9BUkInOiAweDg4QjcsCi0gICdNQVRSSVgw
X0FSQic6IDB4ODhDMCwKLSAgJ01BVFJJWDFfQVJCJzogMHg4OEMxLAotICAnTUFUUklYMl9BUkIn
OiAweDg4QzIsCi0gICdNQVRSSVgzX0FSQic6IDB4ODhDMywKLSAgJ01BVFJJWDRfQVJCJzogMHg4
OEM0LAotICAnTUFUUklYNV9BUkInOiAweDg4QzUsCi0gICdNQVRSSVg2X0FSQic6IDB4ODhDNiwK
LSAgJ01BVFJJWDdfQVJCJzogMHg4OEM3LAotICAnTUFUUklYOF9BUkInOiAweDg4QzgsCi0gICdN
QVRSSVg5X0FSQic6IDB4ODhDOSwKLSAgJ01BVFJJWDEwX0FSQic6IDB4ODhDQSwKLSAgJ01BVFJJ
WDExX0FSQic6IDB4ODhDQiwKLSAgJ01BVFJJWDEyX0FSQic6IDB4ODhDQywKLSAgJ01BVFJJWDEz
X0FSQic6IDB4ODhDRCwKLSAgJ01BVFJJWDE0X0FSQic6IDB4ODhDRSwKLSAgJ01BVFJJWDE1X0FS
Qic6IDB4ODhDRiwKLSAgJ01BVFJJWDE2X0FSQic6IDB4ODhEMCwKLSAgJ01BVFJJWDE3X0FSQic6
IDB4ODhEMSwKLSAgJ01BVFJJWDE4X0FSQic6IDB4ODhEMiwKLSAgJ01BVFJJWDE5X0FSQic6IDB4
ODhEMywKLSAgJ01BVFJJWDIwX0FSQic6IDB4ODhENCwKLSAgJ01BVFJJWDIxX0FSQic6IDB4ODhE
NSwKLSAgJ01BVFJJWDIyX0FSQic6IDB4ODhENiwKLSAgJ01BVFJJWDIzX0FSQic6IDB4ODhENywK
LSAgJ01BVFJJWDI0X0FSQic6IDB4ODhEOCwKLSAgJ01BVFJJWDI1X0FSQic6IDB4ODhEOSwKLSAg
J01BVFJJWDI2X0FSQic6IDB4ODhEQSwKLSAgJ01BVFJJWDI3X0FSQic6IDB4ODhEQiwKLSAgJ01B
VFJJWDI4X0FSQic6IDB4ODhEQywKLSAgJ01BVFJJWDI5X0FSQic6IDB4ODhERCwKLSAgJ01BVFJJ
WDMwX0FSQic6IDB4ODhERSwKLSAgJ01BVFJJWDMxX0FSQic6IDB4ODhERiwKLSAgJ1ZFUlRFWF9T
SEFERVJfQVJCJzogMHg4QjMxLAotICAnTUFYX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFNfQVJC
JzogMHg4QjRBLAotICAnTUFYX1ZBUllJTkdfRkxPQVRTX0FSQic6IDB4OEI0QiwKLSAgJ01BWF9W
RVJURVhfVEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDhCNEMsCi0gICdNQVhfQ09NQklORURf
VEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDhCNEQsCi0gICdPQkpFQ1RfQUNUSVZFX0FUVFJJ
QlVURVNfQVJCJzogMHg4Qjg5LAotICAnT0JKRUNUX0FDVElWRV9BVFRSSUJVVEVfTUFYX0xFTkdU
SF9BUkInOiAweDhCOEEsCi0gICdURVhUVVJFX1BPSU5UX01PREVfQVRJWCc6IDB4NjBCMCwKLSAg
J1RFWFRVUkVfUE9JTlRfT05FX0NPT1JEX0FUSVgnOiAweDYwQjEsCi0gICdURVhUVVJFX1BPSU5U
X1NQUklURV9BVElYJzogMHg2MEIyLAotICAnUE9JTlRfU1BSSVRFX0NVTExfTU9ERV9BVElYJzog
MHg2MEIzLAotICAnUE9JTlRfU1BSSVRFX0NVTExfQ0VOVEVSX0FUSVgnOiAweDYwQjQsCi0gICdQ
T0lOVF9TUFJJVEVfQ1VMTF9DTElQX0FUSVgnOiAweDYwQjUsCi0gICdNT0RVTEFURV9BRERfQVRJ
WCc6IDB4ODc0NCwKLSAgJ01PRFVMQVRFX1NJR05FRF9BRERfQVRJWCc6IDB4ODc0NSwKLSAgJ01P
RFVMQVRFX1NVQlRSQUNUX0FUSVgnOiAweDg3NDYsCi0gICdTRUNPTkRBUllfQ09MT1JfQVRJWCc6
IDB4ODc0NywKLSAgJ1RFWFRVUkVfT1VUUFVUX1JHQl9BVElYJzogMHg4NzQ4LAotICAnVEVYVFVS
RV9PVVRQVVRfQUxQSEFfQVRJWCc6IDB4ODc0OSwKLSAgJ09VVFBVVF9QT0lOVF9TSVpFX0FUSVgn
OiAweDYxMEUsCi0gICdNQVhfRFJBV19CVUZGRVJTX0FUSSc6IDB4ODgyNCwKLSAgJ0RSQVdfQlVG
RkVSMF9BVEknOiAweDg4MjUsCi0gICdEUkFXX0JVRkZFUjFfQVRJJzogMHg4ODI2LAotICAnRFJB
V19CVUZGRVIyX0FUSSc6IDB4ODgyNywKLSAgJ0RSQVdfQlVGRkVSM19BVEknOiAweDg4MjgsCi0g
ICdEUkFXX0JVRkZFUjRfQVRJJzogMHg4ODI5LAotICAnRFJBV19CVUZGRVI1X0FUSSc6IDB4ODgy
QSwKLSAgJ0RSQVdfQlVGRkVSNl9BVEknOiAweDg4MkIsCi0gICdEUkFXX0JVRkZFUjdfQVRJJzog
MHg4ODJDLAotICAnRFJBV19CVUZGRVI4X0FUSSc6IDB4ODgyRCwKLSAgJ0RSQVdfQlVGRkVSOV9B
VEknOiAweDg4MkUsCi0gICdEUkFXX0JVRkZFUjEwX0FUSSc6IDB4ODgyRiwKLSAgJ0RSQVdfQlVG
RkVSMTFfQVRJJzogMHg4ODMwLAotICAnRFJBV19CVUZGRVIxMl9BVEknOiAweDg4MzEsCi0gICdE
UkFXX0JVRkZFUjEzX0FUSSc6IDB4ODgzMiwKLSAgJ0RSQVdfQlVGRkVSMTRfQVRJJzogMHg4ODMz
LAotICAnRFJBV19CVUZGRVIxNV9BVEknOiAweDg4MzQsCi0gICdFTEVNRU5UX0FSUkFZX0FUSSc6
IDB4ODc2OCwKLSAgJ0VMRU1FTlRfQVJSQVlfVFlQRV9BVEknOiAweDg3NjksCi0gICdFTEVNRU5U
X0FSUkFZX1BPSU5URVJfQVRJJzogMHg4NzZBLAotICAnQlVNUF9ST1RfTUFUUklYX0FUSSc6IDB4
ODc3NSwKLSAgJ0JVTVBfUk9UX01BVFJJWF9TSVpFX0FUSSc6IDB4ODc3NiwKLSAgJ0JVTVBfTlVN
X1RFWF9VTklUU19BVEknOiAweDg3NzcsCi0gICdCVU1QX1RFWF9VTklUU19BVEknOiAweDg3Nzgs
Ci0gICdEVURWX0FUSSc6IDB4ODc3OSwKLSAgJ0RVOERWOF9BVEknOiAweDg3N0EsCi0gICdCVU1Q
X0VOVk1BUF9BVEknOiAweDg3N0IsCi0gICdCVU1QX1RBUkdFVF9BVEknOiAweDg3N0MsCi0gICdS
RURfQklUX0FUSSc6IDB4MDAwMDAwMDEsCi0gICcyWF9CSVRfQVRJJzogMHgwMDAwMDAwMSwKLSAg
JzRYX0JJVF9BVEknOiAweDAwMDAwMDAyLAotICAnR1JFRU5fQklUX0FUSSc6IDB4MDAwMDAwMDIs
Ci0gICdDT01QX0JJVF9BVEknOiAweDAwMDAwMDAyLAotICAnQkxVRV9CSVRfQVRJJzogMHgwMDAw
MDAwNCwKLSAgJzhYX0JJVF9BVEknOiAweDAwMDAwMDA0LAotICAnTkVHQVRFX0JJVF9BVEknOiAw
eDAwMDAwMDA0LAotICAnQklBU19CSVRfQVRJJzogMHgwMDAwMDAwOCwKLSAgJ0hBTEZfQklUX0FU
SSc6IDB4MDAwMDAwMDgsCi0gICdRVUFSVEVSX0JJVF9BVEknOiAweDAwMDAwMDEwLAotICAnRUlH
SFRIX0JJVF9BVEknOiAweDAwMDAwMDIwLAotICAnU0FUVVJBVEVfQklUX0FUSSc6IDB4MDAwMDAw
NDAsCi0gICdGUkFHTUVOVF9TSEFERVJfQVRJJzogMHg4OTIwLAotICAnUkVHXzBfQVRJJzogMHg4
OTIxLAotICAnUkVHXzFfQVRJJzogMHg4OTIyLAotICAnUkVHXzJfQVRJJzogMHg4OTIzLAotICAn
UkVHXzNfQVRJJzogMHg4OTI0LAotICAnUkVHXzRfQVRJJzogMHg4OTI1LAotICAnUkVHXzVfQVRJ
JzogMHg4OTI2LAotICAnQ09OXzBfQVRJJzogMHg4OTQxLAotICAnQ09OXzFfQVRJJzogMHg4OTQy
LAotICAnQ09OXzJfQVRJJzogMHg4OTQzLAotICAnQ09OXzNfQVRJJzogMHg4OTQ0LAotICAnQ09O
XzRfQVRJJzogMHg4OTQ1LAotICAnQ09OXzVfQVRJJzogMHg4OTQ2LAotICAnQ09OXzZfQVRJJzog
MHg4OTQ3LAotICAnQ09OXzdfQVRJJzogMHg4OTQ4LAotICAnTU9WX0FUSSc6IDB4ODk2MSwKLSAg
J0FERF9BVEknOiAweDg5NjMsCi0gICdNVUxfQVRJJzogMHg4OTY0LAotICAnU1VCX0FUSSc6IDB4
ODk2NSwKLSAgJ0RPVDNfQVRJJzogMHg4OTY2LAotICAnRE9UNF9BVEknOiAweDg5NjcsCi0gICdN
QURfQVRJJzogMHg4OTY4LAotICAnTEVSUF9BVEknOiAweDg5NjksCi0gICdDTkRfQVRJJzogMHg4
OTZBLAotICAnQ05EMF9BVEknOiAweDg5NkIsCi0gICdET1QyX0FERF9BVEknOiAweDg5NkMsCi0g
ICdTRUNPTkRBUllfSU5URVJQT0xBVE9SX0FUSSc6IDB4ODk2RCwKLSAgJ05VTV9GUkFHTUVOVF9S
RUdJU1RFUlNfQVRJJzogMHg4OTZFLAotICAnTlVNX0ZSQUdNRU5UX0NPTlNUQU5UU19BVEknOiAw
eDg5NkYsCi0gICdOVU1fUEFTU0VTX0FUSSc6IDB4ODk3MCwKLSAgJ05VTV9JTlNUUlVDVElPTlNf
UEVSX1BBU1NfQVRJJzogMHg4OTcxLAotICAnTlVNX0lOU1RSVUNUSU9OU19UT1RBTF9BVEknOiAw
eDg5NzIsCi0gICdOVU1fSU5QVVRfSU5URVJQT0xBVE9SX0NPTVBPTkVOVFNfQVRJJzogMHg4OTcz
LAotICAnTlVNX0xPT1BCQUNLX0NPTVBPTkVOVFNfQVRJJzogMHg4OTc0LAotICAnQ09MT1JfQUxQ
SEFfUEFJUklOR19BVEknOiAweDg5NzUsCi0gICdTV0laWkxFX1NUUl9BVEknOiAweDg5NzYsCi0g
ICdTV0laWkxFX1NUUV9BVEknOiAweDg5NzcsCi0gICdTV0laWkxFX1NUUl9EUl9BVEknOiAweDg5
NzgsCi0gICdTV0laWkxFX1NUUV9EUV9BVEknOiAweDg5NzksCi0gICdTV0laWkxFX1NUUlFfQVRJ
JzogMHg4OTdBLAotICAnU1dJWlpMRV9TVFJRX0RRX0FUSSc6IDB4ODk3QiwKLSAgJ1BOX1RSSUFO
R0xFU19BVEknOiAweDg3RjAsCi0gICdNQVhfUE5fVFJJQU5HTEVTX1RFU1NFTEFUSU9OX0xFVkVM
X0FUSSc6IDB4ODdGMSwKLSAgJ1BOX1RSSUFOR0xFU19QT0lOVF9NT0RFX0FUSSc6IDB4ODdGMiwK
LSAgJ1BOX1RSSUFOR0xFU19OT1JNQUxfTU9ERV9BVEknOiAweDg3RjMsCi0gICdQTl9UUklBTkdM
RVNfVEVTU0VMQVRJT05fTEVWRUxfQVRJJzogMHg4N0Y0LAotICAnUE5fVFJJQU5HTEVTX1BPSU5U
X01PREVfTElORUFSX0FUSSc6IDB4ODdGNSwKLSAgJ1BOX1RSSUFOR0xFU19QT0lOVF9NT0RFX0NV
QklDX0FUSSc6IDB4ODdGNiwKLSAgJ1BOX1RSSUFOR0xFU19OT1JNQUxfTU9ERV9MSU5FQVJfQVRJ
JzogMHg4N0Y3LAotICAnUE5fVFJJQU5HTEVTX05PUk1BTF9NT0RFX1FVQURSQVRJQ19BVEknOiAw
eDg3RjgsCi0gICdTVEVOQ0lMX0JBQ0tfRlVOQ19BVEknOiAweDg4MDAsCi0gICdTVEVOQ0lMX0JB
Q0tfRkFJTF9BVEknOiAweDg4MDEsCi0gICdTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMX0FU
SSc6IDB4ODgwMiwKLSAgJ1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1NfQVRJJzogMHg4ODAz
LAotICAnVEVYVF9GUkFHTUVOVF9TSEFERVJfQVRJJzogMHg4MjAwLAotICAnQ09NUFJFU1NFRF9M
VU1JTkFOQ0VfQUxQSEFfM0RDX0FUSSc6IDB4ODgzNywKLSAgJ01PRFVMQVRFX0FERF9BVEknOiAw
eDg3NDQsCi0gICdNT0RVTEFURV9TSUdORURfQUREX0FUSSc6IDB4ODc0NSwKLSAgJ01PRFVMQVRF
X1NVQlRSQUNUX0FUSSc6IDB4ODc0NiwKLSAgJ1JHQkFfRkxPQVQzMl9BVEknOiAweDg4MTQsCi0g
ICdSR0JfRkxPQVQzMl9BVEknOiAweDg4MTUsCi0gICdBTFBIQV9GTE9BVDMyX0FUSSc6IDB4ODgx
NiwKLSAgJ0lOVEVOU0lUWV9GTE9BVDMyX0FUSSc6IDB4ODgxNywKLSAgJ0xVTUlOQU5DRV9GTE9B
VDMyX0FUSSc6IDB4ODgxOCwKLSAgJ0xVTUlOQU5DRV9BTFBIQV9GTE9BVDMyX0FUSSc6IDB4ODgx
OSwKLSAgJ1JHQkFfRkxPQVQxNl9BVEknOiAweDg4MUEsCi0gICdSR0JfRkxPQVQxNl9BVEknOiAw
eDg4MUIsCi0gICdBTFBIQV9GTE9BVDE2X0FUSSc6IDB4ODgxQywKLSAgJ0lOVEVOU0lUWV9GTE9B
VDE2X0FUSSc6IDB4ODgxRCwKLSAgJ0xVTUlOQU5DRV9GTE9BVDE2X0FUSSc6IDB4ODgxRSwKLSAg
J0xVTUlOQU5DRV9BTFBIQV9GTE9BVDE2X0FUSSc6IDB4ODgxRiwKLSAgJ01JUlJPUl9DTEFNUF9B
VEknOiAweDg3NDIsCi0gICdNSVJST1JfQ0xBTVBfVE9fRURHRV9BVEknOiAweDg3NDMsCi0gICdT
VEFUSUNfQVRJJzogMHg4NzYwLAotICAnRFlOQU1JQ19BVEknOiAweDg3NjEsCi0gICdQUkVTRVJW
RV9BVEknOiAweDg3NjIsCi0gICdESVNDQVJEX0FUSSc6IDB4ODc2MywKLSAgJ09CSkVDVF9CVUZG
RVJfU0laRV9BVEknOiAweDg3NjQsCi0gICdPQkpFQ1RfQlVGRkVSX1VTQUdFX0FUSSc6IDB4ODc2
NSwKLSAgJ0FSUkFZX09CSkVDVF9CVUZGRVJfQVRJJzogMHg4NzY2LAotICAnQVJSQVlfT0JKRUNU
X09GRlNFVF9BVEknOiAweDg3NjcsCi0gICdNQVhfVkVSVEVYX1NUUkVBTVNfQVRJJzogMHg4NzZC
LAotICAnVkVSVEVYX1NPVVJDRV9BVEknOiAweDg3NkMsCi0gICdWRVJURVhfU1RSRUFNMF9BVEkn
OiAweDg3NkQsCi0gICdWRVJURVhfU1RSRUFNMV9BVEknOiAweDg3NkUsCi0gICdWRVJURVhfU1RS
RUFNMl9BVEknOiAweDg3NkYsCi0gICdWRVJURVhfU1RSRUFNM19BVEknOiAweDg3NzAsCi0gICdW
RVJURVhfU1RSRUFNNF9BVEknOiAweDg3NzEsCi0gICdWRVJURVhfU1RSRUFNNV9BVEknOiAweDg3
NzIsCi0gICdWRVJURVhfU1RSRUFNNl9BVEknOiAweDg3NzMsCi0gICdWRVJURVhfU1RSRUFNN19B
VEknOiAweDg3NzQsCi0gICc0MjJfRVhUJzogMHg4MENDLAotICAnNDIyX1JFVl9FWFQnOiAweDgw
Q0QsCi0gICc0MjJfQVZFUkFHRV9FWFQnOiAweDgwQ0UsCi0gICc0MjJfUkVWX0FWRVJBR0VfRVhU
JzogMHg4MENGLAotICAnQ0dfVkVSVEVYX1NIQURFUl9FWFQnOiAweDg5MEUsCi0gICdDR19GUkFH
TUVOVF9TSEFERVJfRVhUJzogMHg4OTBGLAotICAnQUJHUl9FWFQnOiAweDgwMDAsCi0gICdCR1Jf
RVhUJzogMHg4MEUwLAotICAnQkdSQV9FWFQnOiAweDgwRTEsCi0gICdNQVhfVkVSVEVYX0JJTkRB
QkxFX1VOSUZPUk1TX0VYVCc6IDB4OERFMiwKLSAgJ01BWF9GUkFHTUVOVF9CSU5EQUJMRV9VTklG
T1JNU19FWFQnOiAweDhERTMsCi0gICdNQVhfR0VPTUVUUllfQklOREFCTEVfVU5JRk9STVNfRVhU
JzogMHg4REU0LAotICAnTUFYX0JJTkRBQkxFX1VOSUZPUk1fU0laRV9FWFQnOiAweDhERUQsCi0g
ICdVTklGT1JNX0JVRkZFUl9FWFQnOiAweDhERUUsCi0gICdVTklGT1JNX0JVRkZFUl9CSU5ESU5H
X0VYVCc6IDB4OERFRiwKLSAgJ0NPTlNUQU5UX0NPTE9SX0VYVCc6IDB4ODAwMSwKLSAgJ09ORV9N
SU5VU19DT05TVEFOVF9DT0xPUl9FWFQnOiAweDgwMDIsCi0gICdDT05TVEFOVF9BTFBIQV9FWFQn
OiAweDgwMDMsCi0gICdPTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEFfRVhUJzogMHg4MDA0LAotICAn
QkxFTkRfQ09MT1JfRVhUJzogMHg4MDA1LAotICAnQkxFTkRfRVFVQVRJT05fUkdCX0VYVCc6IDB4
ODAwOSwKLSAgJ0JMRU5EX0VRVUFUSU9OX0FMUEhBX0VYVCc6IDB4ODgzRCwKLSAgJ0JMRU5EX0RT
VF9SR0JfRVhUJzogMHg4MEM4LAotICAnQkxFTkRfU1JDX1JHQl9FWFQnOiAweDgwQzksCi0gICdC
TEVORF9EU1RfQUxQSEFfRVhUJzogMHg4MENBLAotICAnQkxFTkRfU1JDX0FMUEhBX0VYVCc6IDB4
ODBDQiwKLSAgJ0ZVTkNfQUREX0VYVCc6IDB4ODAwNiwKLSAgJ01JTl9FWFQnOiAweDgwMDcsCi0g
ICdNQVhfRVhUJzogMHg4MDA4LAotICAnQkxFTkRfRVFVQVRJT05fRVhUJzogMHg4MDA5LAotICAn
RlVOQ19TVUJUUkFDVF9FWFQnOiAweDgwMEEsCi0gICdGVU5DX1JFVkVSU0VfU1VCVFJBQ1RfRVhU
JzogMHg4MDBCLAotICAnQ0xJUF9WT0xVTUVfQ0xJUFBJTkdfSElOVF9FWFQnOiAweDgwRjAsCi0g
ICdDTVlLX0VYVCc6IDB4ODAwQywKLSAgJ0NNWUtBX0VYVCc6IDB4ODAwRCwKLSAgJ1BBQ0tfQ01Z
S19ISU5UX0VYVCc6IDB4ODAwRSwKLSAgJ1VOUEFDS19DTVlLX0hJTlRfRVhUJzogMHg4MDBGLAot
ICAnQVJSQVlfRUxFTUVOVF9MT0NLX0ZJUlNUX0VYVCc6IDB4ODFBOCwKLSAgJ0FSUkFZX0VMRU1F
TlRfTE9DS19DT1VOVF9FWFQnOiAweDgxQTksCi0gICdDT05WT0xVVElPTl8xRF9FWFQnOiAweDgw
MTAsCi0gICdDT05WT0xVVElPTl8yRF9FWFQnOiAweDgwMTEsCi0gICdTRVBBUkFCTEVfMkRfRVhU
JzogMHg4MDEyLAotICAnQ09OVk9MVVRJT05fQk9SREVSX01PREVfRVhUJzogMHg4MDEzLAotICAn
Q09OVk9MVVRJT05fRklMVEVSX1NDQUxFX0VYVCc6IDB4ODAxNCwKLSAgJ0NPTlZPTFVUSU9OX0ZJ
TFRFUl9CSUFTX0VYVCc6IDB4ODAxNSwKLSAgJ1JFRFVDRV9FWFQnOiAweDgwMTYsCi0gICdDT05W
T0xVVElPTl9GT1JNQVRfRVhUJzogMHg4MDE3LAotICAnQ09OVk9MVVRJT05fV0lEVEhfRVhUJzog
MHg4MDE4LAotICAnQ09OVk9MVVRJT05fSEVJR0hUX0VYVCc6IDB4ODAxOSwKLSAgJ01BWF9DT05W
T0xVVElPTl9XSURUSF9FWFQnOiAweDgwMUEsCi0gICdNQVhfQ09OVk9MVVRJT05fSEVJR0hUX0VY
VCc6IDB4ODAxQiwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fUkVEX1NDQUxFX0VYVCc6IDB4ODAxQywK
LSAgJ1BPU1RfQ09OVk9MVVRJT05fR1JFRU5fU0NBTEVfRVhUJzogMHg4MDFELAotICAnUE9TVF9D
T05WT0xVVElPTl9CTFVFX1NDQUxFX0VYVCc6IDB4ODAxRSwKLSAgJ1BPU1RfQ09OVk9MVVRJT05f
QUxQSEFfU0NBTEVfRVhUJzogMHg4MDFGLAotICAnUE9TVF9DT05WT0xVVElPTl9SRURfQklBU19F
WFQnOiAweDgwMjAsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0dSRUVOX0JJQVNfRVhUJzogMHg4MDIx
LAotICAnUE9TVF9DT05WT0xVVElPTl9CTFVFX0JJQVNfRVhUJzogMHg4MDIyLAotICAnUE9TVF9D
T05WT0xVVElPTl9BTFBIQV9CSUFTX0VYVCc6IDB4ODAyMywKLSAgJ1RBTkdFTlRfQVJSQVlfRVhU
JzogMHg4NDM5LAotICAnQklOT1JNQUxfQVJSQVlfRVhUJzogMHg4NDNBLAotICAnQ1VSUkVOVF9U
QU5HRU5UX0VYVCc6IDB4ODQzQiwKLSAgJ0NVUlJFTlRfQklOT1JNQUxfRVhUJzogMHg4NDNDLAot
ICAnVEFOR0VOVF9BUlJBWV9UWVBFX0VYVCc6IDB4ODQzRSwKLSAgJ1RBTkdFTlRfQVJSQVlfU1RS
SURFX0VYVCc6IDB4ODQzRiwKLSAgJ0JJTk9STUFMX0FSUkFZX1RZUEVfRVhUJzogMHg4NDQwLAot
ICAnQklOT1JNQUxfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODQ0MSwKLSAgJ1RBTkdFTlRfQVJSQVlf
UE9JTlRFUl9FWFQnOiAweDg0NDIsCi0gICdCSU5PUk1BTF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4
ODQ0MywKLSAgJ01BUDFfVEFOR0VOVF9FWFQnOiAweDg0NDQsCi0gICdNQVAyX1RBTkdFTlRfRVhU
JzogMHg4NDQ1LAotICAnTUFQMV9CSU5PUk1BTF9FWFQnOiAweDg0NDYsCi0gICdNQVAyX0JJTk9S
TUFMX0VYVCc6IDB4ODQ0NywKLSAgJ0RFUFRIX0JPVU5EU19URVNUX0VYVCc6IDB4ODg5MCwKLSAg
J0RFUFRIX0JPVU5EU19FWFQnOiAweDg4OTEsCi0gICdQUk9HUkFNX01BVFJJWF9FWFQnOiAweDhF
MkQsCi0gICdUUkFOU1BPU0VfUFJPR1JBTV9NQVRSSVhfRVhUJzogMHg4RTJFLAotICAnUFJPR1JB
TV9NQVRSSVhfU1RBQ0tfREVQVEhfRVhUJzogMHg4RTJGLAotICAnTUFYX0VMRU1FTlRTX1ZFUlRJ
Q0VTJzogMHg4MEU4LAotICAnTUFYX0VMRU1FTlRTX0lORElDRVMnOiAweDgwRTksCi0gICdGT0df
Q09PUkRJTkFURV9TT1VSQ0VfRVhUJzogMHg4NDUwLAotICAnRk9HX0NPT1JESU5BVEVfRVhUJzog
MHg4NDUxLAotICAnRlJBR01FTlRfREVQVEhfRVhUJzogMHg4NDUyLAotICAnQ1VSUkVOVF9GT0df
Q09PUkRJTkFURV9FWFQnOiAweDg0NTMsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9UWVBFX0VY
VCc6IDB4ODQ1NCwKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZX1NUUklERV9FWFQnOiAweDg0NTUs
Ci0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODQ1NiwKLSAgJ0ZPR19D
T09SRElOQVRFX0FSUkFZX0VYVCc6IDB4ODQ1NywKLSAgJ0ZSQUdNRU5UX0xJR0hUSU5HX0VYVCc6
IDB4ODQwMCwKLSAgJ0ZSQUdNRU5UX0NPTE9SX01BVEVSSUFMX0VYVCc6IDB4ODQwMSwKLSAgJ0ZS
QUdNRU5UX0NPTE9SX01BVEVSSUFMX0ZBQ0VfRVhUJzogMHg4NDAyLAotICAnRlJBR01FTlRfQ09M
T1JfTUFURVJJQUxfUEFSQU1FVEVSX0VYVCc6IDB4ODQwMywKLSAgJ01BWF9GUkFHTUVOVF9MSUdI
VFNfRVhUJzogMHg4NDA0LAotICAnTUFYX0FDVElWRV9MSUdIVFNfRVhUJzogMHg4NDA1LAotICAn
Q1VSUkVOVF9SQVNURVJfTk9STUFMX0VYVCc6IDB4ODQwNiwKLSAgJ0xJR0hUX0VOVl9NT0RFX0VY
VCc6IDB4ODQwNywKLSAgJ0ZSQUdNRU5UX0xJR0hUX01PREVMX0xPQ0FMX1ZJRVdFUl9FWFQnOiAw
eDg0MDgsCi0gICdGUkFHTUVOVF9MSUdIVF9NT0RFTF9UV09fU0lERV9FWFQnOiAweDg0MDksCi0g
ICdGUkFHTUVOVF9MSUdIVF9NT0RFTF9BTUJJRU5UX0VYVCc6IDB4ODQwQSwKLSAgJ0ZSQUdNRU5U
X0xJR0hUX01PREVMX05PUk1BTF9JTlRFUlBPTEFUSU9OX0VYVCc6IDB4ODQwQiwKLSAgJ0ZSQUdN
RU5UX0xJR0hUMF9FWFQnOiAweDg0MEMsCi0gICdGUkFHTUVOVF9MSUdIVDdfRVhUJzogMHg4NDEz
LAotICAnRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HX0VYVCc6IDB4OENBNiwKLSAgJ1JFQURfRlJB
TUVCVUZGRVJfRVhUJzogMHg4Q0E4LAotICAnRFJBV19GUkFNRUJVRkZFUl9FWFQnOiAweDhDQTks
Ci0gICdSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4Q0FBLAotICAnUkVOREVSQlVG
RkVSX1NBTVBMRVNfRVhUJzogMHg4Q0FCLAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NVUxU
SVNBTVBMRV9FWFQnOiAweDhENTYsCi0gICdNQVhfU0FNUExFU19FWFQnOiAweDhENTcsCi0gICdJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTl9FWFQnOiAweDA1MDYsCi0gICdNQVhfUkVOREVS
QlVGRkVSX1NJWkVfRVhUJzogMHg4NEU4LAotICAnRlJBTUVCVUZGRVJfQklORElOR19FWFQnOiAw
eDhDQTYsCi0gICdSRU5ERVJCVUZGRVJfQklORElOR19FWFQnOiAweDhDQTcsCi0gICdGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFX0VYVCc6IDB4OENEMCwKLSAgJ0ZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX05BTUVfRVhUJzogMHg4Q0QxLAotICAnRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9URVhUVVJFX0xFVkVMX0VYVCc6IDB4OENEMiwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFX0VYVCc6IDB4OENEMywKLSAgJ0ZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfVEVYVFVSRV8zRF9aT0ZGU0VUX0VYVCc6IDB4OENENCwKLSAgJ0ZSQU1FQlVG
RkVSX0NPTVBMRVRFX0VYVCc6IDB4OENENSwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRU
QUNITUVOVF9FWFQnOiAweDhDRDYsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdf
QVRUQUNITUVOVF9FWFQnOiAweDhDRDcsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVO
U0lPTlNfRVhUJzogMHg4Q0Q5LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9GT1JNQVRTX0VY
VCc6IDB4OENEQSwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRFJBV19CVUZGRVJfRVhUJzog
MHg4Q0RCLAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9SRUFEX0JVRkZFUl9FWFQnOiAweDhD
REMsCi0gICdGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRF9FWFQnOiAweDhDREQsCi0gICdNQVhfQ09M
T1JfQVRUQUNITUVOVFNfRVhUJzogMHg4Q0RGLAotICAnQ09MT1JfQVRUQUNITUVOVDBfRVhUJzog
MHg4Q0UwLAotICAnQ09MT1JfQVRUQUNITUVOVDFfRVhUJzogMHg4Q0UxLAotICAnQ09MT1JfQVRU
QUNITUVOVDJfRVhUJzogMHg4Q0UyLAotICAnQ09MT1JfQVRUQUNITUVOVDNfRVhUJzogMHg4Q0Uz
LAotICAnQ09MT1JfQVRUQUNITUVOVDRfRVhUJzogMHg4Q0U0LAotICAnQ09MT1JfQVRUQUNITUVO
VDVfRVhUJzogMHg4Q0U1LAotICAnQ09MT1JfQVRUQUNITUVOVDZfRVhUJzogMHg4Q0U2LAotICAn
Q09MT1JfQVRUQUNITUVOVDdfRVhUJzogMHg4Q0U3LAotICAnQ09MT1JfQVRUQUNITUVOVDhfRVhU
JzogMHg4Q0U4LAotICAnQ09MT1JfQVRUQUNITUVOVDlfRVhUJzogMHg4Q0U5LAotICAnQ09MT1Jf
QVRUQUNITUVOVDEwX0VYVCc6IDB4OENFQSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxMV9FWFQnOiAw
eDhDRUIsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUJzogMHg4Q0VDLAotICAnQ09MT1JfQVRU
QUNITUVOVDEzX0VYVCc6IDB4OENFRCwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxNF9FWFQnOiAweDhD
RUUsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUJzogMHg4Q0VGLAotICAnREVQVEhfQVRUQUNI
TUVOVF9FWFQnOiAweDhEMDAsCi0gICdTVEVOQ0lMX0FUVEFDSE1FTlRfRVhUJzogMHg4RDIwLAot
ICAnRlJBTUVCVUZGRVJfRVhUJzogMHg4RDQwLAotICAnUkVOREVSQlVGRkVSX0VYVCc6IDB4OEQ0
MSwKLSAgJ1JFTkRFUkJVRkZFUl9XSURUSF9FWFQnOiAweDhENDIsCi0gICdSRU5ERVJCVUZGRVJf
SEVJR0hUX0VYVCc6IDB4OEQ0MywKLSAgJ1JFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVRfRVhU
JzogMHg4RDQ0LAotICAnU1RFTkNJTF9JTkRFWDFfRVhUJzogMHg4RDQ2LAotICAnU1RFTkNJTF9J
TkRFWDRfRVhUJzogMHg4RDQ3LAotICAnU1RFTkNJTF9JTkRFWDhfRVhUJzogMHg4RDQ4LAotICAn
U1RFTkNJTF9JTkRFWDE2X0VYVCc6IDB4OEQ0OSwKLSAgJ1JFTkRFUkJVRkZFUl9SRURfU0laRV9F
WFQnOiAweDhENTAsCi0gICdSRU5ERVJCVUZGRVJfR1JFRU5fU0laRV9FWFQnOiAweDhENTEsCi0g
ICdSRU5ERVJCVUZGRVJfQkxVRV9TSVpFX0VYVCc6IDB4OEQ1MiwKLSAgJ1JFTkRFUkJVRkZFUl9B
TFBIQV9TSVpFX0VYVCc6IDB4OEQ1MywKLSAgJ1JFTkRFUkJVRkZFUl9ERVBUSF9TSVpFX0VYVCc6
IDB4OEQ1NCwKLSAgJ1JFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkVfRVhUJzogMHg4RDU1LAotICAn
RlJBTUVCVUZGRVJfU1JHQl9FWFQnOiAweDhEQjksCi0gICdGUkFNRUJVRkZFUl9TUkdCX0NBUEFC
TEVfRVhUJzogMHg4REJBLAotICAnTElORVNfQURKQUNFTkNZX0VYVCc6IDB4QSwKLSAgJ0xJTkVf
U1RSSVBfQURKQUNFTkNZX0VYVCc6IDB4QiwKLSAgJ1RSSUFOR0xFU19BREpBQ0VOQ1lfRVhUJzog
MHhDLAotICAnVFJJQU5HTEVfU1RSSVBfQURKQUNFTkNZX0VYVCc6IDB4RCwKLSAgJ1BST0dSQU1f
UE9JTlRfU0laRV9FWFQnOiAweDg2NDIsCi0gICdNQVhfVkFSWUlOR19DT01QT05FTlRTX0VYVCc6
IDB4OEI0QiwKLSAgJ01BWF9HRU9NRVRSWV9URVhUVVJFX0lNQUdFX1VOSVRTX0VYVCc6IDB4OEMy
OSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlFUl9FWFQnOiAweDhDRDQs
Ci0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0xBWUVSRURfRVhUJzogMHg4REE3LAotICAnRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9MQVlFUl9UQVJHRVRTX0VYVCc6IDB4OERBOCwKLSAgJ0ZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfTEFZRVJfQ09VTlRfRVhUJzogMHg4REE5LAotICAnR0VPTUVUUllf
U0hBREVSX0VYVCc6IDB4OEREOSwKLSAgJ0dFT01FVFJZX1ZFUlRJQ0VTX09VVF9FWFQnOiAweDhE
REEsCi0gICdHRU9NRVRSWV9JTlBVVF9UWVBFX0VYVCc6IDB4OEREQiwKLSAgJ0dFT01FVFJZX09V
VFBVVF9UWVBFX0VYVCc6IDB4OEREQywKLSAgJ01BWF9HRU9NRVRSWV9WQVJZSU5HX0NPTVBPTkVO
VFNfRVhUJzogMHg4RERELAotICAnTUFYX1ZFUlRFWF9WQVJZSU5HX0NPTVBPTkVOVFNfRVhUJzog
MHg4RERFLAotICAnTUFYX0dFT01FVFJZX1VOSUZPUk1fQ09NUE9ORU5UU19FWFQnOiAweDhEREYs
Ci0gICdNQVhfR0VPTUVUUllfT1VUUFVUX1ZFUlRJQ0VTX0VYVCc6IDB4OERFMCwKLSAgJ01BWF9H
RU9NRVRSWV9UT1RBTF9PVVRQVVRfQ09NUE9ORU5UU19FWFQnOiAweDhERTEsCi0gICdWRVJURVhf
QVRUUklCX0FSUkFZX0lOVEVHRVJfRVhUJzogMHg4OEZELAotICAnU0FNUExFUl8xRF9BUlJBWV9F
WFQnOiAweDhEQzAsCi0gICdTQU1QTEVSXzJEX0FSUkFZX0VYVCc6IDB4OERDMSwKLSAgJ1NBTVBM
RVJfQlVGRkVSX0VYVCc6IDB4OERDMiwKLSAgJ1NBTVBMRVJfMURfQVJSQVlfU0hBRE9XX0VYVCc6
IDB4OERDMywKLSAgJ1NBTVBMRVJfMkRfQVJSQVlfU0hBRE9XX0VYVCc6IDB4OERDNCwKLSAgJ1NB
TVBMRVJfQ1VCRV9TSEFET1dfRVhUJzogMHg4REM1LAotICAnVU5TSUdORURfSU5UX1ZFQzJfRVhU
JzogMHg4REM2LAotICAnVU5TSUdORURfSU5UX1ZFQzNfRVhUJzogMHg4REM3LAotICAnVU5TSUdO
RURfSU5UX1ZFQzRfRVhUJzogMHg4REM4LAotICAnSU5UX1NBTVBMRVJfMURfRVhUJzogMHg4REM5
LAotICAnSU5UX1NBTVBMRVJfMkRfRVhUJzogMHg4RENBLAotICAnSU5UX1NBTVBMRVJfM0RfRVhU
JzogMHg4RENCLAotICAnSU5UX1NBTVBMRVJfQ1VCRV9FWFQnOiAweDhEQ0MsCi0gICdJTlRfU0FN
UExFUl8yRF9SRUNUX0VYVCc6IDB4OERDRCwKLSAgJ0lOVF9TQU1QTEVSXzFEX0FSUkFZX0VYVCc6
IDB4OERDRSwKLSAgJ0lOVF9TQU1QTEVSXzJEX0FSUkFZX0VYVCc6IDB4OERDRiwKLSAgJ0lOVF9T
QU1QTEVSX0JVRkZFUl9FWFQnOiAweDhERDAsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8xRF9F
WFQnOiAweDhERDEsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8yRF9FWFQnOiAweDhERDIsCi0g
ICdVTlNJR05FRF9JTlRfU0FNUExFUl8zRF9FWFQnOiAweDhERDMsCi0gICdVTlNJR05FRF9JTlRf
U0FNUExFUl9DVUJFX0VYVCc6IDB4OERENCwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX1JF
Q1RfRVhUJzogMHg4REQ1LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMURfQVJSQVlfRVhUJzog
MHg4REQ2LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkRfQVJSQVlfRVhUJzogMHg4REQ3LAot
ICAnVU5TSUdORURfSU5UX1NBTVBMRVJfQlVGRkVSX0VYVCc6IDB4OEREOCwKLSAgJ0hJU1RPR1JB
TV9FWFQnOiAweDgwMjQsCi0gICdQUk9YWV9ISVNUT0dSQU1fRVhUJzogMHg4MDI1LAotICAnSElT
VE9HUkFNX1dJRFRIX0VYVCc6IDB4ODAyNiwKLSAgJ0hJU1RPR1JBTV9GT1JNQVRfRVhUJzogMHg4
MDI3LAotICAnSElTVE9HUkFNX1JFRF9TSVpFX0VYVCc6IDB4ODAyOCwKLSAgJ0hJU1RPR1JBTV9H
UkVFTl9TSVpFX0VYVCc6IDB4ODAyOSwKLSAgJ0hJU1RPR1JBTV9CTFVFX1NJWkVfRVhUJzogMHg4
MDJBLAotICAnSElTVE9HUkFNX0FMUEhBX1NJWkVfRVhUJzogMHg4MDJCLAotICAnSElTVE9HUkFN
X0xVTUlOQU5DRV9TSVpFX0VYVCc6IDB4ODAyQywKLSAgJ0hJU1RPR1JBTV9TSU5LX0VYVCc6IDB4
ODAyRCwKLSAgJ01JTk1BWF9FWFQnOiAweDgwMkUsCi0gICdNSU5NQVhfRk9STUFUX0VYVCc6IDB4
ODAyRiwKLSAgJ01JTk1BWF9TSU5LX0VYVCc6IDB4ODAzMCwKLSAgJ0ZSQUdNRU5UX01BVEVSSUFM
X0VYVCc6IDB4ODM0OSwKLSAgJ0ZSQUdNRU5UX05PUk1BTF9FWFQnOiAweDgzNEEsCi0gICdGUkFH
TUVOVF9DT0xPUl9FWFQnOiAweDgzNEMsCi0gICdBVFRFTlVBVElPTl9FWFQnOiAweDgzNEQsCi0g
ICdTSEFET1dfQVRURU5VQVRJT05fRVhUJzogMHg4MzRFLAotICAnVEVYVFVSRV9BUFBMSUNBVElP
Tl9NT0RFX0VYVCc6IDB4ODM0RiwKLSAgJ1RFWFRVUkVfTElHSFRfRVhUJzogMHg4MzUwLAotICAn
VEVYVFVSRV9NQVRFUklBTF9GQUNFX0VYVCc6IDB4ODM1MSwKLSAgJ1RFWFRVUkVfTUFURVJJQUxf
UEFSQU1FVEVSX0VYVCc6IDB4ODM1MiwKLSAgJ0ZSQUdNRU5UX0RFUFRIX0VYVCc6IDB4ODQ1MiwK
LSAgJ01VTFRJU0FNUExFX0VYVCc6IDB4ODA5RCwKLSAgJ1NBTVBMRV9BTFBIQV9UT19NQVNLX0VY
VCc6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBIQV9UT19PTkVfRVhUJzogMHg4MDlGLAotICAnU0FN
UExFX01BU0tfRVhUJzogMHg4MEEwLAotICAnMVBBU1NfRVhUJzogMHg4MEExLAotICAnMlBBU1Nf
MF9FWFQnOiAweDgwQTIsCi0gICcyUEFTU18xX0VYVCc6IDB4ODBBMywKLSAgJzRQQVNTXzBfRVhU
JzogMHg4MEE0LAotICAnNFBBU1NfMV9FWFQnOiAweDgwQTUsCi0gICc0UEFTU18yX0VYVCc6IDB4
ODBBNiwKLSAgJzRQQVNTXzNfRVhUJzogMHg4MEE3LAotICAnU0FNUExFX0JVRkZFUlNfRVhUJzog
MHg4MEE4LAotICAnU0FNUExFU19FWFQnOiAweDgwQTksCi0gICdTQU1QTEVfTUFTS19WQUxVRV9F
WFQnOiAweDgwQUEsCi0gICdTQU1QTEVfTUFTS19JTlZFUlRfRVhUJzogMHg4MEFCLAotICAnU0FN
UExFX1BBVFRFUk5fRVhUJzogMHg4MEFDLAotICAnTVVMVElTQU1QTEVfQklUX0VYVCc6IDB4MjAw
MDAwMDAsCi0gICdERVBUSF9TVEVOQ0lMX0VYVCc6IDB4ODRGOSwKLSAgJ1VOU0lHTkVEX0lOVF8y
NF84X0VYVCc6IDB4ODRGQSwKLSAgJ0RFUFRIMjRfU1RFTkNJTDhfRVhUJzogMHg4OEYwLAotICAn
VEVYVFVSRV9TVEVOQ0lMX1NJWkVfRVhUJzogMHg4OEYxLAotICAnUjExRl9HMTFGX0IxMEZfRVhU
JzogMHg4QzNBLAotICAnVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVl9FWFQnOiAweDhDM0Is
Ci0gICdSR0JBX1NJR05FRF9DT01QT05FTlRTX0VYVCc6IDB4OEMzQywKLSAgJ1VOU0lHTkVEX0JZ
VEVfM18zXzJfRVhUJzogMHg4MDMyLAotICAnVU5TSUdORURfU0hPUlRfNF80XzRfNF9FWFQnOiAw
eDgwMzMsCi0gICdVTlNJR05FRF9TSE9SVF81XzVfNV8xX0VYVCc6IDB4ODAzNCwKLSAgJ1VOU0lH
TkVEX0lOVF84XzhfOF84X0VYVCc6IDB4ODAzNSwKLSAgJ1VOU0lHTkVEX0lOVF8xMF8xMF8xMF8y
X0VYVCc6IDB4ODAzNiwKLSAgJ1RFWFRVUkVfMUQnOiAweDBERTAsCi0gICdURVhUVVJFXzJEJzog
MHgwREUxLAotICAnUFJPWFlfVEVYVFVSRV8xRCc6IDB4ODA2MywKLSAgJ1BST1hZX1RFWFRVUkVf
MkQnOiAweDgwNjQsCi0gICdURVhUVVJFXzNEX0VYVCc6IDB4ODA2RiwKLSAgJ1BST1hZX1RFWFRV
UkVfM0RfRVhUJzogMHg4MDcwLAotICAnQ09MT1JfVEFCTEVfRk9STUFUX0VYVCc6IDB4ODBEOCwK
LSAgJ0NPTE9SX1RBQkxFX1dJRFRIX0VYVCc6IDB4ODBEOSwKLSAgJ0NPTE9SX1RBQkxFX1JFRF9T
SVpFX0VYVCc6IDB4ODBEQSwKLSAgJ0NPTE9SX1RBQkxFX0dSRUVOX1NJWkVfRVhUJzogMHg4MERC
LAotICAnQ09MT1JfVEFCTEVfQkxVRV9TSVpFX0VYVCc6IDB4ODBEQywKLSAgJ0NPTE9SX1RBQkxF
X0FMUEhBX1NJWkVfRVhUJzogMHg4MERELAotICAnQ09MT1JfVEFCTEVfTFVNSU5BTkNFX1NJWkVf
RVhUJzogMHg4MERFLAotICAnQ09MT1JfVEFCTEVfSU5URU5TSVRZX1NJWkVfRVhUJzogMHg4MERG
LAotICAnQ09MT1JfSU5ERVgxX0VYVCc6IDB4ODBFMiwKLSAgJ0NPTE9SX0lOREVYMl9FWFQnOiAw
eDgwRTMsCi0gICdDT0xPUl9JTkRFWDRfRVhUJzogMHg4MEU0LAotICAnQ09MT1JfSU5ERVg4X0VY
VCc6IDB4ODBFNSwKLSAgJ0NPTE9SX0lOREVYMTJfRVhUJzogMHg4MEU2LAotICAnQ09MT1JfSU5E
RVgxNl9FWFQnOiAweDgwRTcsCi0gICdURVhUVVJFX0lOREVYX1NJWkVfRVhUJzogMHg4MEVELAot
ICAnVEVYVFVSRV9DVUJFX01BUF9BUkInOiAweDg1MTMsCi0gICdQUk9YWV9URVhUVVJFX0NVQkVf
TUFQX0FSQic6IDB4ODUxQiwKLSAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0VYVCc6IDB4ODhFQiwKLSAg
J1BJWEVMX1VOUEFDS19CVUZGRVJfRVhUJzogMHg4OEVDLAotICAnUElYRUxfUEFDS19CVUZGRVJf
QklORElOR19FWFQnOiAweDg4RUQsCi0gICdQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkdfRVhU
JzogMHg4OEVGLAotICAnUElYRUxfVFJBTlNGT1JNXzJEX0VYVCc6IDB4ODMzMCwKLSAgJ1BJWEVM
X01BR19GSUxURVJfRVhUJzogMHg4MzMxLAotICAnUElYRUxfTUlOX0ZJTFRFUl9FWFQnOiAweDgz
MzIsCi0gICdQSVhFTF9DVUJJQ19XRUlHSFRfRVhUJzogMHg4MzMzLAotICAnQ1VCSUNfRVhUJzog
MHg4MzM0LAotICAnQVZFUkFHRV9FWFQnOiAweDgzMzUsCi0gICdQSVhFTF9UUkFOU0ZPUk1fMkRf
U1RBQ0tfREVQVEhfRVhUJzogMHg4MzM2LAotICAnTUFYX1BJWEVMX1RSQU5TRk9STV8yRF9TVEFD
S19ERVBUSF9FWFQnOiAweDgzMzcsCi0gICdQSVhFTF9UUkFOU0ZPUk1fMkRfTUFUUklYX0VYVCc6
IDB4ODMzOCwKLSAgJ1BPSU5UX1NJWkVfTUlOX0VYVCc6IDB4ODEyNiwKLSAgJ1BPSU5UX1NJWkVf
TUFYX0VYVCc6IDB4ODEyNywKLSAgJ1BPSU5UX0ZBREVfVEhSRVNIT0xEX1NJWkVfRVhUJzogMHg4
MTI4LAotICAnRElTVEFOQ0VfQVRURU5VQVRJT05fRVhUJzogMHg4MTI5LAotICAnUE9MWUdPTl9P
RkZTRVRfRVhUJzogMHg4MDM3LAotICAnUE9MWUdPTl9PRkZTRVRfRkFDVE9SX0VYVCc6IDB4ODAz
OCwKLSAgJ1BPTFlHT05fT0ZGU0VUX0JJQVNfRVhUJzogMHg4MDM5LAotICAnUkVTQ0FMRV9OT1JN
QUxfRVhUJzogMHg4MDNBLAotICAnQ09MT1JfU1VNX0VYVCc6IDB4ODQ1OCwKLSAgJ0NVUlJFTlRf
U0VDT05EQVJZX0NPTE9SX0VYVCc6IDB4ODQ1OSwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9T
SVpFX0VYVCc6IDB4ODQ1QSwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9UWVBFX0VYVCc6IDB4
ODQ1QiwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9TVFJJREVfRVhUJzogMHg4NDVDLAotICAn
U0VDT05EQVJZX0NPTE9SX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4NDVELAotICAnU0VDT05EQVJZ
X0NPTE9SX0FSUkFZX0VYVCc6IDB4ODQ1RSwKLSAgJ0xJR0hUX01PREVMX0NPTE9SX0NPTlRST0xf
RVhUJzogMHg4MUY4LAotICAnU0lOR0xFX0NPTE9SX0VYVCc6IDB4ODFGOSwKLSAgJ1NFUEFSQVRF
X1NQRUNVTEFSX0NPTE9SX0VYVCc6IDB4ODFGQSwKLSAgJ1NIQVJFRF9URVhUVVJFX1BBTEVUVEVf
RVhUJzogMHg4MUZCLAotICAnU1RFTkNJTF9UQUdfQklUU19FWFQnOiAweDg4RjIsCi0gICdTVEVO
Q0lMX0NMRUFSX1RBR19WQUxVRV9FWFQnOiAweDg4RjMsCi0gICdTVEVOQ0lMX1RFU1RfVFdPX1NJ
REVfRVhUJzogMHg4OTEwLAotICAnQUNUSVZFX1NURU5DSUxfRkFDRV9FWFQnOiAweDg5MTEsCi0g
ICdJTkNSX1dSQVBfRVhUJzogMHg4NTA3LAotICAnREVDUl9XUkFQX0VYVCc6IDB4ODUwOCwKLSAg
J0FMUEhBNF9FWFQnOiAweDgwM0IsCi0gICdBTFBIQThfRVhUJzogMHg4MDNDLAotICAnQUxQSEEx
Ml9FWFQnOiAweDgwM0QsCi0gICdBTFBIQTE2X0VYVCc6IDB4ODAzRSwKLSAgJ0xVTUlOQU5DRTRf
RVhUJzogMHg4MDNGLAotICAnTFVNSU5BTkNFOF9FWFQnOiAweDgwNDAsCi0gICdMVU1JTkFOQ0Ux
Ml9FWFQnOiAweDgwNDEsCi0gICdMVU1JTkFOQ0UxNl9FWFQnOiAweDgwNDIsCi0gICdMVU1JTkFO
Q0U0X0FMUEhBNF9FWFQnOiAweDgwNDMsCi0gICdMVU1JTkFOQ0U2X0FMUEhBMl9FWFQnOiAweDgw
NDQsCi0gICdMVU1JTkFOQ0U4X0FMUEhBOF9FWFQnOiAweDgwNDUsCi0gICdMVU1JTkFOQ0UxMl9B
TFBIQTRfRVhUJzogMHg4MDQ2LAotICAnTFVNSU5BTkNFMTJfQUxQSEExMl9FWFQnOiAweDgwNDcs
Ci0gICdMVU1JTkFOQ0UxNl9BTFBIQTE2X0VYVCc6IDB4ODA0OCwKLSAgJ0lOVEVOU0lUWV9FWFQn
OiAweDgwNDksCi0gICdJTlRFTlNJVFk0X0VYVCc6IDB4ODA0QSwKLSAgJ0lOVEVOU0lUWThfRVhU
JzogMHg4MDRCLAotICAnSU5URU5TSVRZMTJfRVhUJzogMHg4MDRDLAotICAnSU5URU5TSVRZMTZf
RVhUJzogMHg4MDRELAotICAnUkdCMl9FWFQnOiAweDgwNEUsCi0gICdSR0I0X0VYVCc6IDB4ODA0
RiwKLSAgJ1JHQjVfRVhUJzogMHg4MDUwLAotICAnUkdCOF9FWFQnOiAweDgwNTEsCi0gICdSR0Ix
MF9FWFQnOiAweDgwNTIsCi0gICdSR0IxMl9FWFQnOiAweDgwNTMsCi0gICdSR0IxNl9FWFQnOiAw
eDgwNTQsCi0gICdSR0JBMl9FWFQnOiAweDgwNTUsCi0gICdSR0JBNF9FWFQnOiAweDgwNTYsCi0g
ICdSR0I1X0ExX0VYVCc6IDB4ODA1NywKLSAgJ1JHQkE4X0VYVCc6IDB4ODA1OCwKLSAgJ1JHQjEw
X0EyX0VYVCc6IDB4ODA1OSwKLSAgJ1JHQkExMl9FWFQnOiAweDgwNUEsCi0gICdSR0JBMTZfRVhU
JzogMHg4MDVCLAotICAnVEVYVFVSRV9SRURfU0laRV9FWFQnOiAweDgwNUMsCi0gICdURVhUVVJF
X0dSRUVOX1NJWkVfRVhUJzogMHg4MDVELAotICAnVEVYVFVSRV9CTFVFX1NJWkVfRVhUJzogMHg4
MDVFLAotICAnVEVYVFVSRV9BTFBIQV9TSVpFX0VYVCc6IDB4ODA1RiwKLSAgJ1RFWFRVUkVfTFVN
SU5BTkNFX1NJWkVfRVhUJzogMHg4MDYwLAotICAnVEVYVFVSRV9JTlRFTlNJVFlfU0laRV9FWFQn
OiAweDgwNjEsCi0gICdSRVBMQUNFX0VYVCc6IDB4ODA2MiwKLSAgJ1BST1hZX1RFWFRVUkVfMURf
RVhUJzogMHg4MDYzLAotICAnUFJPWFlfVEVYVFVSRV8yRF9FWFQnOiAweDgwNjQsCi0gICdQQUNL
X1NLSVBfSU1BR0VTX0VYVCc6IDB4ODA2QiwKLSAgJ1BBQ0tfSU1BR0VfSEVJR0hUX0VYVCc6IDB4
ODA2QywKLSAgJ1VOUEFDS19TS0lQX0lNQUdFU19FWFQnOiAweDgwNkQsCi0gICdVTlBBQ0tfSU1B
R0VfSEVJR0hUX0VYVCc6IDB4ODA2RSwKLSAgJ1RFWFRVUkVfM0RfRVhUJzogMHg4MDZGLAotICAn
UFJPWFlfVEVYVFVSRV8zRF9FWFQnOiAweDgwNzAsCi0gICdURVhUVVJFX0RFUFRIX0VYVCc6IDB4
ODA3MSwKLSAgJ1RFWFRVUkVfV1JBUF9SX0VYVCc6IDB4ODA3MiwKLSAgJ01BWF8zRF9URVhUVVJF
X1NJWkVfRVhUJzogMHg4MDczLAotICAnQ09NUEFSRV9SRUZfREVQVEhfVE9fVEVYVFVSRV9FWFQn
OiAweDg4NEUsCi0gICdNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlNfRVhUJzogMHg4OEZGLAotICAn
VEVYVFVSRV8xRF9BUlJBWV9FWFQnOiAweDhDMTgsCi0gICdQUk9YWV9URVhUVVJFXzFEX0FSUkFZ
X0VYVCc6IDB4OEMxOSwKLSAgJ1RFWFRVUkVfMkRfQVJSQVlfRVhUJzogMHg4QzFBLAotICAnUFJP
WFlfVEVYVFVSRV8yRF9BUlJBWV9FWFQnOiAweDhDMUIsCi0gICdURVhUVVJFX0JJTkRJTkdfMURf
QVJSQVlfRVhUJzogMHg4QzFDLAotICAnVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZX0VYVCc6IDB4
OEMxRCwKLSAgJ1RFWFRVUkVfQlVGRkVSX0VYVCc6IDB4OEMyQSwKLSAgJ01BWF9URVhUVVJFX0JV
RkZFUl9TSVpFX0VYVCc6IDB4OEMyQiwKLSAgJ1RFWFRVUkVfQklORElOR19CVUZGRVJfRVhUJzog
MHg4QzJDLAotICAnVEVYVFVSRV9CVUZGRVJfREFUQV9TVE9SRV9CSU5ESU5HX0VYVCc6IDB4OEMy
RCwKLSAgJ1RFWFRVUkVfQlVGRkVSX0ZPUk1BVF9FWFQnOiAweDhDMkUsCi0gICdDT01QUkVTU0VE
X1JHQl9TM1RDX0RYVDFfRVhUJzogMHg4M0YwLAotICAnQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhU
MV9FWFQnOiAweDgzRjEsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRV9MQVRDMV9FWFQnOiAweDhD
NzAsCi0gICdDT01QUkVTU0VEX1NJR05FRF9MVU1JTkFOQ0VfTEFUQzFfRVhUJzogMHg4QzcxLAot
ICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEFfTEFUQzJfRVhUJzogMHg4QzcyLAotICAnQ09N
UFJFU1NFRF9TSUdORURfTFVNSU5BTkNFX0FMUEhBX0xBVEMyX0VYVCc6IDB4OEM3MywKLSAgJ0NP
TVBSRVNTRURfUkVEX1JHVEMxX0VYVCc6IDB4OERCQiwKLSAgJ0NPTVBSRVNTRURfU0lHTkVEX1JF
RF9SR1RDMV9FWFQnOiAweDhEQkMsCi0gICdDT01QUkVTU0VEX1JFRF9HUkVFTl9SR1RDMl9FWFQn
OiAweDhEQkQsCi0gICdDT01QUkVTU0VEX1NJR05FRF9SRURfR1JFRU5fUkdUQzJfRVhUJzogMHg4
REJFLAotICAnQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCc6IDB4ODNGMCwKLSAgJ0NPTVBS
RVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUJzogMHg4M0YxLAotICAnQ09NUFJFU1NFRF9SR0JBX1Mz
VENfRFhUM19FWFQnOiAweDgzRjIsCi0gICdDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVCc6
IDB4ODNGMywKLSAgJ05PUk1BTF9NQVBfRVhUJzogMHg4NTExLAotICAnUkVGTEVDVElPTl9NQVBf
RVhUJzogMHg4NTEyLAotICAnVEVYVFVSRV9DVUJFX01BUF9FWFQnOiAweDg1MTMsCi0gICdURVhU
VVJFX0JJTkRJTkdfQ1VCRV9NQVBfRVhUJzogMHg4NTE0LAotICAnVEVYVFVSRV9DVUJFX01BUF9Q
T1NJVElWRV9YX0VYVCc6IDB4ODUxNSwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWF9F
WFQnOiAweDg1MTYsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1lfRVhUJzogMHg4NTE3
LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZX0VYVCc6IDB4ODUxOCwKLSAgJ1RFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWl9FWFQnOiAweDg1MTksCi0gICdURVhUVVJFX0NVQkVfTUFQ
X05FR0FUSVZFX1pfRVhUJzogMHg4NTFBLAotICAnUFJPWFlfVEVYVFVSRV9DVUJFX01BUF9FWFQn
OiAweDg1MUIsCi0gICdNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFX0VYVCc6IDB4ODUxQywKLSAg
J0NMQU1QX1RPX0VER0VfRVhUJzogMHg4MTJGLAotICAnQ09NQklORV9FWFQnOiAweDg1NzAsCi0g
ICdDT01CSU5FX1JHQl9FWFQnOiAweDg1NzEsCi0gICdDT01CSU5FX0FMUEhBX0VYVCc6IDB4ODU3
MiwKLSAgJ1JHQl9TQ0FMRV9FWFQnOiAweDg1NzMsCi0gICdBRERfU0lHTkVEX0VYVCc6IDB4ODU3
NCwKLSAgJ0lOVEVSUE9MQVRFX0VYVCc6IDB4ODU3NSwKLSAgJ0NPTlNUQU5UX0VYVCc6IDB4ODU3
NiwKLSAgJ1BSSU1BUllfQ09MT1JfRVhUJzogMHg4NTc3LAotICAnUFJFVklPVVNfRVhUJzogMHg4
NTc4LAotICAnU09VUkNFMF9SR0JfRVhUJzogMHg4NTgwLAotICAnU09VUkNFMV9SR0JfRVhUJzog
MHg4NTgxLAotICAnU09VUkNFMl9SR0JfRVhUJzogMHg4NTgyLAotICAnU09VUkNFMF9BTFBIQV9F
WFQnOiAweDg1ODgsCi0gICdTT1VSQ0UxX0FMUEhBX0VYVCc6IDB4ODU4OSwKLSAgJ1NPVVJDRTJf
QUxQSEFfRVhUJzogMHg4NThBLAotICAnT1BFUkFORDBfUkdCX0VYVCc6IDB4ODU5MCwKLSAgJ09Q
RVJBTkQxX1JHQl9FWFQnOiAweDg1OTEsCi0gICdPUEVSQU5EMl9SR0JfRVhUJzogMHg4NTkyLAot
ICAnT1BFUkFORDBfQUxQSEFfRVhUJzogMHg4NTk4LAotICAnT1BFUkFORDFfQUxQSEFfRVhUJzog
MHg4NTk5LAotICAnT1BFUkFORDJfQUxQSEFfRVhUJzogMHg4NTlBLAotICAnRE9UM19SR0JfRVhU
JzogMHg4NzQwLAotICAnRE9UM19SR0JBX0VYVCc6IDB4ODc0MSwKLSAgJ1RFWFRVUkVfTUFYX0FO
SVNPVFJPUFlfRVhUJzogMHg4NEZFLAotICAnTUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhU
JzogMHg4NEZGLAotICAnUkdCQTMyVUlfRVhUJzogMHg4RDcwLAotICAnUkdCMzJVSV9FWFQnOiAw
eDhENzEsCi0gICdBTFBIQTMyVUlfRVhUJzogMHg4RDcyLAotICAnSU5URU5TSVRZMzJVSV9FWFQn
OiAweDhENzMsCi0gICdMVU1JTkFOQ0UzMlVJX0VYVCc6IDB4OEQ3NCwKLSAgJ0xVTUlOQU5DRV9B
TFBIQTMyVUlfRVhUJzogMHg4RDc1LAotICAnUkdCQTE2VUlfRVhUJzogMHg4RDc2LAotICAnUkdC
MTZVSV9FWFQnOiAweDhENzcsCi0gICdBTFBIQTE2VUlfRVhUJzogMHg4RDc4LAotICAnSU5URU5T
SVRZMTZVSV9FWFQnOiAweDhENzksCi0gICdMVU1JTkFOQ0UxNlVJX0VYVCc6IDB4OEQ3QSwKLSAg
J0xVTUlOQU5DRV9BTFBIQTE2VUlfRVhUJzogMHg4RDdCLAotICAnUkdCQThVSV9FWFQnOiAweDhE
N0MsCi0gICdSR0I4VUlfRVhUJzogMHg4RDdELAotICAnQUxQSEE4VUlfRVhUJzogMHg4RDdFLAot
ICAnSU5URU5TSVRZOFVJX0VYVCc6IDB4OEQ3RiwKLSAgJ0xVTUlOQU5DRThVSV9FWFQnOiAweDhE
ODAsCi0gICdMVU1JTkFOQ0VfQUxQSEE4VUlfRVhUJzogMHg4RDgxLAotICAnUkdCQTMySV9FWFQn
OiAweDhEODIsCi0gICdSR0IzMklfRVhUJzogMHg4RDgzLAotICAnQUxQSEEzMklfRVhUJzogMHg4
RDg0LAotICAnSU5URU5TSVRZMzJJX0VYVCc6IDB4OEQ4NSwKLSAgJ0xVTUlOQU5DRTMySV9FWFQn
OiAweDhEODYsCi0gICdMVU1JTkFOQ0VfQUxQSEEzMklfRVhUJzogMHg4RDg3LAotICAnUkdCQTE2
SV9FWFQnOiAweDhEODgsCi0gICdSR0IxNklfRVhUJzogMHg4RDg5LAotICAnQUxQSEExNklfRVhU
JzogMHg4RDhBLAotICAnSU5URU5TSVRZMTZJX0VYVCc6IDB4OEQ4QiwKLSAgJ0xVTUlOQU5DRTE2
SV9FWFQnOiAweDhEOEMsCi0gICdMVU1JTkFOQ0VfQUxQSEExNklfRVhUJzogMHg4RDhELAotICAn
UkdCQThJX0VYVCc6IDB4OEQ4RSwKLSAgJ1JHQjhJX0VYVCc6IDB4OEQ4RiwKLSAgJ0FMUEhBOElf
RVhUJzogMHg4RDkwLAotICAnSU5URU5TSVRZOElfRVhUJzogMHg4RDkxLAotICAnTFVNSU5BTkNF
OElfRVhUJzogMHg4RDkyLAotICAnTFVNSU5BTkNFX0FMUEhBOElfRVhUJzogMHg4RDkzLAotICAn
UkVEX0lOVEVHRVJfRVhUJzogMHg4RDk0LAotICAnR1JFRU5fSU5URUdFUl9FWFQnOiAweDhEOTUs
Ci0gICdCTFVFX0lOVEVHRVJfRVhUJzogMHg4RDk2LAotICAnQUxQSEFfSU5URUdFUl9FWFQnOiAw
eDhEOTcsCi0gICdSR0JfSU5URUdFUl9FWFQnOiAweDhEOTgsCi0gICdSR0JBX0lOVEVHRVJfRVhU
JzogMHg4RDk5LAotICAnQkdSX0lOVEVHRVJfRVhUJzogMHg4RDlBLAotICAnQkdSQV9JTlRFR0VS
X0VYVCc6IDB4OEQ5QiwKLSAgJ0xVTUlOQU5DRV9JTlRFR0VSX0VYVCc6IDB4OEQ5QywKLSAgJ0xV
TUlOQU5DRV9BTFBIQV9JTlRFR0VSX0VYVCc6IDB4OEQ5RCwKLSAgJ1JHQkFfSU5URUdFUl9NT0RF
X0VYVCc6IDB4OEQ5RSwKLSAgJ01BWF9URVhUVVJFX0xPRF9CSUFTX0VYVCc6IDB4ODRGRCwKLSAg
J1RFWFRVUkVfRklMVEVSX0NPTlRST0xfRVhUJzogMHg4NTAwLAotICAnVEVYVFVSRV9MT0RfQklB
U19FWFQnOiAweDg1MDEsCi0gICdNSVJST1JfQ0xBTVBfRVhUJzogMHg4NzQyLAotICAnTUlSUk9S
X0NMQU1QX1RPX0VER0VfRVhUJzogMHg4NzQzLAotICAnTUlSUk9SX0NMQU1QX1RPX0JPUkRFUl9F
WFQnOiAweDg5MTIsCi0gICdURVhUVVJFX1BSSU9SSVRZX0VYVCc6IDB4ODA2NiwKLSAgJ1RFWFRV
UkVfUkVTSURFTlRfRVhUJzogMHg4MDY3LAotICAnVEVYVFVSRV8xRF9CSU5ESU5HX0VYVCc6IDB4
ODA2OCwKLSAgJ1RFWFRVUkVfMkRfQklORElOR19FWFQnOiAweDgwNjksCi0gICdURVhUVVJFXzNE
X0JJTkRJTkdfRVhUJzogMHg4MDZBLAotICAnUEVSVFVSQl9FWFQnOiAweDg1QUUsCi0gICdURVhU
VVJFX05PUk1BTF9FWFQnOiAweDg1QUYsCi0gICdURVhUVVJFX1JFQ1RBTkdMRV9FWFQnOiAweDg0
RjUsCi0gICdURVhUVVJFX0JJTkRJTkdfUkVDVEFOR0xFX0VYVCc6IDB4ODRGNiwKLSAgJ1BST1hZ
X1RFWFRVUkVfUkVDVEFOR0xFX0VYVCc6IDB4ODRGNywKLSAgJ01BWF9SRUNUQU5HTEVfVEVYVFVS
RV9TSVpFX0VYVCc6IDB4ODRGOCwKLSAgJ1NSR0JfRVhUJzogMHg4QzQwLAotICAnU1JHQjhfRVhU
JzogMHg4QzQxLAotICAnU1JHQl9BTFBIQV9FWFQnOiAweDhDNDIsCi0gICdTUkdCOF9BTFBIQThf
RVhUJzogMHg4QzQzLAotICAnU0xVTUlOQU5DRV9BTFBIQV9FWFQnOiAweDhDNDQsCi0gICdTTFVN
SU5BTkNFOF9BTFBIQThfRVhUJzogMHg4QzQ1LAotICAnU0xVTUlOQU5DRV9FWFQnOiAweDhDNDYs
Ci0gICdTTFVNSU5BTkNFOF9FWFQnOiAweDhDNDcsCi0gICdDT01QUkVTU0VEX1NSR0JfRVhUJzog
MHg4QzQ4LAotICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhBX0VYVCc6IDB4OEM0OSwKLSAgJ0NPTVBS
RVNTRURfU0xVTUlOQU5DRV9FWFQnOiAweDhDNEEsCi0gICdDT01QUkVTU0VEX1NMVU1JTkFOQ0Vf
QUxQSEFfRVhUJzogMHg4QzRCLAotICAnQ09NUFJFU1NFRF9TUkdCX1MzVENfRFhUMV9FWFQnOiAw
eDhDNEMsCi0gICdDT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19EWFQxX0VYVCc6IDB4OEM0RCwK
LSAgJ0NPTVBSRVNTRURfU1JHQl9BTFBIQV9TM1RDX0RYVDNfRVhUJzogMHg4QzRFLAotICAnQ09N
UFJFU1NFRF9TUkdCX0FMUEhBX1MzVENfRFhUNV9FWFQnOiAweDhDNEYsCi0gICdSR0I5X0U1X0VY
VCc6IDB4OEMzRCwKLSAgJ1VOU0lHTkVEX0lOVF81XzlfOV85X1JFVl9FWFQnOiAweDhDM0UsCi0g
ICdURVhUVVJFX1NIQVJFRF9TSVpFX0VYVCc6IDB4OEMzRiwKLSAgJ1RFWFRVUkVfU1dJWlpMRV9S
X0VYVCc6IDB4OEU0MiwKLSAgJ1RFWFRVUkVfU1dJWlpMRV9HX0VYVCc6IDB4OEU0MywKLSAgJ1RF
WFRVUkVfU1dJWlpMRV9CX0VYVCc6IDB4OEU0NCwKLSAgJ1RFWFRVUkVfU1dJWlpMRV9BX0VYVCc6
IDB4OEU0NSwKLSAgJ1RFWFRVUkVfU1dJWlpMRV9SR0JBX0VYVCc6IDB4OEU0NiwKLSAgJ1RJTUVf
RUxBUFNFRF9FWFQnOiAweDg4QkYsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR19NQVhf
TEVOR1RIX0VYVCc6IDB4OEM3NiwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERV9F
WFQnOiAweDhDN0YsCi0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0NPTVBPTkVO
VFNfRVhUJzogMHg4QzgwLAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdTX0VYVCc6IDB4
OEM4MywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlRfRVhUJzogMHg4Qzg0LAot
ICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFX0VYVCc6IDB4OEM4NSwKLSAgJ1BSSU1J
VElWRVNfR0VORVJBVEVEX0VYVCc6IDB4OEM4NywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19QUklN
SVRJVkVTX1dSSVRURU5fRVhUJzogMHg4Qzg4LAotICAnUkFTVEVSSVpFUl9ESVNDQVJEX0VYVCc6
IDB4OEM4OSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5U
U19FWFQnOiAweDhDOEEsCi0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJ
QlNfRVhUJzogMHg4QzhCLAotICAnSU5URVJMRUFWRURfQVRUUklCU19FWFQnOiAweDhDOEMsCi0g
ICdTRVBBUkFURV9BVFRSSUJTX0VYVCc6IDB4OEM4RCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfRVhUJzogMHg4QzhFLAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5H
X0VYVCc6IDB4OEM4RiwKLSAgJ0RPVUJMRV9FWFQnOiAweDE0MEEsCi0gICdWRVJURVhfQVJSQVlf
RVhUJzogMHg4MDc0LAotICAnTk9STUFMX0FSUkFZX0VYVCc6IDB4ODA3NSwKLSAgJ0NPTE9SX0FS
UkFZX0VYVCc6IDB4ODA3NiwKLSAgJ0lOREVYX0FSUkFZX0VYVCc6IDB4ODA3NywKLSAgJ1RFWFRV
UkVfQ09PUkRfQVJSQVlfRVhUJzogMHg4MDc4LAotICAnRURHRV9GTEFHX0FSUkFZX0VYVCc6IDB4
ODA3OSwKLSAgJ1ZFUlRFWF9BUlJBWV9TSVpFX0VYVCc6IDB4ODA3QSwKLSAgJ1ZFUlRFWF9BUlJB
WV9UWVBFX0VYVCc6IDB4ODA3QiwKLSAgJ1ZFUlRFWF9BUlJBWV9TVFJJREVfRVhUJzogMHg4MDdD
LAotICAnVkVSVEVYX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA3RCwKLSAgJ05PUk1BTF9BUlJBWV9U
WVBFX0VYVCc6IDB4ODA3RSwKLSAgJ05PUk1BTF9BUlJBWV9TVFJJREVfRVhUJzogMHg4MDdGLAot
ICAnTk9STUFMX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4MCwKLSAgJ0NPTE9SX0FSUkFZX1NJWkVf
RVhUJzogMHg4MDgxLAotICAnQ09MT1JfQVJSQVlfVFlQRV9FWFQnOiAweDgwODIsCi0gICdDT0xP
Ul9BUlJBWV9TVFJJREVfRVhUJzogMHg4MDgzLAotICAnQ09MT1JfQVJSQVlfQ09VTlRfRVhUJzog
MHg4MDg0LAotICAnSU5ERVhfQVJSQVlfVFlQRV9FWFQnOiAweDgwODUsCi0gICdJTkRFWF9BUlJB
WV9TVFJJREVfRVhUJzogMHg4MDg2LAotICAnSU5ERVhfQVJSQVlfQ09VTlRfRVhUJzogMHg4MDg3
LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9TSVpFX0VYVCc6IDB4ODA4OCwKLSAgJ1RFWFRVUkVf
Q09PUkRfQVJSQVlfVFlQRV9FWFQnOiAweDgwODksCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX1NU
UklERV9FWFQnOiAweDgwOEEsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX0NPVU5UX0VYVCc6IDB4
ODA4QiwKLSAgJ0VER0VfRkxBR19BUlJBWV9TVFJJREVfRVhUJzogMHg4MDhDLAotICAnRURHRV9G
TEFHX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4RCwKLSAgJ1ZFUlRFWF9BUlJBWV9QT0lOVEVSX0VY
VCc6IDB4ODA4RSwKLSAgJ05PUk1BTF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA4RiwKLSAgJ0NP
TE9SX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDkwLAotICAnSU5ERVhfQVJSQVlfUE9JTlRFUl9F
WFQnOiAweDgwOTEsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDky
LAotICAnRURHRV9GTEFHX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDkzLAotICAnQkdSQSc6IDB4
ODBFMSwKLSAgJ1ZFUlRFWF9TSEFERVJfRVhUJzogMHg4NzgwLAotICAnVkVSVEVYX1NIQURFUl9C
SU5ESU5HX0VYVCc6IDB4ODc4MSwKLSAgJ09QX0lOREVYX0VYVCc6IDB4ODc4MiwKLSAgJ09QX05F
R0FURV9FWFQnOiAweDg3ODMsCi0gICdPUF9ET1QzX0VYVCc6IDB4ODc4NCwKLSAgJ09QX0RPVDRf
RVhUJzogMHg4Nzg1LAotICAnT1BfTVVMX0VYVCc6IDB4ODc4NiwKLSAgJ09QX0FERF9FWFQnOiAw
eDg3ODcsCi0gICdPUF9NQUREX0VYVCc6IDB4ODc4OCwKLSAgJ09QX0ZSQUNfRVhUJzogMHg4Nzg5
LAotICAnT1BfTUFYX0VYVCc6IDB4ODc4QSwKLSAgJ09QX01JTl9FWFQnOiAweDg3OEIsCi0gICdP
UF9TRVRfR0VfRVhUJzogMHg4NzhDLAotICAnT1BfU0VUX0xUX0VYVCc6IDB4ODc4RCwKLSAgJ09Q
X0NMQU1QX0VYVCc6IDB4ODc4RSwKLSAgJ09QX0ZMT09SX0VYVCc6IDB4ODc4RiwKLSAgJ09QX1JP
VU5EX0VYVCc6IDB4ODc5MCwKLSAgJ09QX0VYUF9CQVNFXzJfRVhUJzogMHg4NzkxLAotICAnT1Bf
TE9HX0JBU0VfMl9FWFQnOiAweDg3OTIsCi0gICdPUF9QT1dFUl9FWFQnOiAweDg3OTMsCi0gICdP
UF9SRUNJUF9FWFQnOiAweDg3OTQsCi0gICdPUF9SRUNJUF9TUVJUX0VYVCc6IDB4ODc5NSwKLSAg
J09QX1NVQl9FWFQnOiAweDg3OTYsCi0gICdPUF9DUk9TU19QUk9EVUNUX0VYVCc6IDB4ODc5NywK
LSAgJ09QX01VTFRJUExZX01BVFJJWF9FWFQnOiAweDg3OTgsCi0gICdPUF9NT1ZfRVhUJzogMHg4
Nzk5LAotICAnT1VUUFVUX1ZFUlRFWF9FWFQnOiAweDg3OUEsCi0gICdPVVRQVVRfQ09MT1IwX0VY
VCc6IDB4ODc5QiwKLSAgJ09VVFBVVF9DT0xPUjFfRVhUJzogMHg4NzlDLAotICAnT1VUUFVUX1RF
WFRVUkVfQ09PUkQwX0VYVCc6IDB4ODc5RCwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMV9FWFQn
OiAweDg3OUUsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDJfRVhUJzogMHg4NzlGLAotICAnT1VU
UFVUX1RFWFRVUkVfQ09PUkQzX0VYVCc6IDB4ODdBMCwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JE
NF9FWFQnOiAweDg3QTEsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDVfRVhUJzogMHg4N0EyLAot
ICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ2X0VYVCc6IDB4ODdBMywKLSAgJ09VVFBVVF9URVhUVVJF
X0NPT1JEN19FWFQnOiAweDg3QTQsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDhfRVhUJzogMHg4
N0E1LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ5X0VYVCc6IDB4ODdBNiwKLSAgJ09VVFBVVF9U
RVhUVVJFX0NPT1JEMTBfRVhUJzogMHg4N0E3LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxMV9F
WFQnOiAweDg3QTgsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDEyX0VYVCc6IDB4ODdBOSwKLSAg
J09VVFBVVF9URVhUVVJFX0NPT1JEMTNfRVhUJzogMHg4N0FBLAotICAnT1VUUFVUX1RFWFRVUkVf
Q09PUkQxNF9FWFQnOiAweDg3QUIsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDE1X0VYVCc6IDB4
ODdBQywKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTZfRVhUJzogMHg4N0FELAotICAnT1VUUFVU
X1RFWFRVUkVfQ09PUkQxN19FWFQnOiAweDg3QUUsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDE4
X0VYVCc6IDB4ODdBRiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTlfRVhUJzogMHg4N0IwLAot
ICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyMF9FWFQnOiAweDg3QjEsCi0gICdPVVRQVVRfVEVYVFVS
RV9DT09SRDIxX0VYVCc6IDB4ODdCMiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjJfRVhUJzog
MHg4N0IzLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyM19FWFQnOiAweDg3QjQsCi0gICdPVVRQ
VVRfVEVYVFVSRV9DT09SRDI0X0VYVCc6IDB4ODdCNSwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JE
MjVfRVhUJzogMHg4N0I2LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyNl9FWFQnOiAweDg3Qjcs
Ci0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDI3X0VYVCc6IDB4ODdCOCwKLSAgJ09VVFBVVF9URVhU
VVJFX0NPT1JEMjhfRVhUJzogMHg4N0I5LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyOV9FWFQn
OiAweDg3QkEsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDMwX0VYVCc6IDB4ODdCQiwKLSAgJ09V
VFBVVF9URVhUVVJFX0NPT1JEMzFfRVhUJzogMHg4N0JDLAotICAnT1VUUFVUX0ZPR19FWFQnOiAw
eDg3QkQsCi0gICdTQ0FMQVJfRVhUJzogMHg4N0JFLAotICAnVkVDVE9SX0VYVCc6IDB4ODdCRiwK
LSAgJ01BVFJJWF9FWFQnOiAweDg3QzAsCi0gICdWQVJJQU5UX0VYVCc6IDB4ODdDMSwKLSAgJ0lO
VkFSSUFOVF9FWFQnOiAweDg3QzIsCi0gICdMT0NBTF9DT05TVEFOVF9FWFQnOiAweDg3QzMsCi0g
ICdMT0NBTF9FWFQnOiAweDg3QzQsCi0gICdNQVhfVkVSVEVYX1NIQURFUl9JTlNUUlVDVElPTlNf
RVhUJzogMHg4N0M1LAotICAnTUFYX1ZFUlRFWF9TSEFERVJfVkFSSUFOVFNfRVhUJzogMHg4N0M2
LAotICAnTUFYX1ZFUlRFWF9TSEFERVJfSU5WQVJJQU5UU19FWFQnOiAweDg3QzcsCi0gICdNQVhf
VkVSVEVYX1NIQURFUl9MT0NBTF9DT05TVEFOVFNfRVhUJzogMHg4N0M4LAotICAnTUFYX1ZFUlRF
WF9TSEFERVJfTE9DQUxTX0VYVCc6IDB4ODdDOSwKLSAgJ01BWF9PUFRJTUlaRURfVkVSVEVYX1NI
QURFUl9JTlNUUlVDVElPTlNfRVhUJzogMHg4N0NBLAotICAnTUFYX09QVElNSVpFRF9WRVJURVhf
U0hBREVSX1ZBUklBTlRTX0VYVCc6IDB4ODdDQiwKLSAgJ01BWF9PUFRJTUlaRURfVkVSVEVYX1NI
QURFUl9JTlZBUklBTlRTX0VYVCc6IDB4ODdDQywKLSAgJ01BWF9PUFRJTUlaRURfVkVSVEVYX1NI
QURFUl9MT0NBTF9DT05TVEFOVFNfRVhUJzogMHg4N0NELAotICAnTUFYX09QVElNSVpFRF9WRVJU
RVhfU0hBREVSX0xPQ0FMU19FWFQnOiAweDg3Q0UsCi0gICdWRVJURVhfU0hBREVSX0lOU1RSVUNU
SU9OU19FWFQnOiAweDg3Q0YsCi0gICdWRVJURVhfU0hBREVSX1ZBUklBTlRTX0VYVCc6IDB4ODdE
MCwKLSAgJ1ZFUlRFWF9TSEFERVJfSU5WQVJJQU5UU19FWFQnOiAweDg3RDEsCi0gICdWRVJURVhf
U0hBREVSX0xPQ0FMX0NPTlNUQU5UU19FWFQnOiAweDg3RDIsCi0gICdWRVJURVhfU0hBREVSX0xP
Q0FMU19FWFQnOiAweDg3RDMsCi0gICdWRVJURVhfU0hBREVSX09QVElNSVpFRF9FWFQnOiAweDg3
RDQsCi0gICdYX0VYVCc6IDB4ODdENSwKLSAgJ1lfRVhUJzogMHg4N0Q2LAotICAnWl9FWFQnOiAw
eDg3RDcsCi0gICdXX0VYVCc6IDB4ODdEOCwKLSAgJ05FR0FUSVZFX1hfRVhUJzogMHg4N0Q5LAot
ICAnTkVHQVRJVkVfWV9FWFQnOiAweDg3REEsCi0gICdORUdBVElWRV9aX0VYVCc6IDB4ODdEQiwK
LSAgJ05FR0FUSVZFX1dfRVhUJzogMHg4N0RDLAotICAnWkVST19FWFQnOiAweDg3REQsCi0gICdP
TkVfRVhUJzogMHg4N0RFLAotICAnTkVHQVRJVkVfT05FX0VYVCc6IDB4ODdERiwKLSAgJ05PUk1B
TElaRURfUkFOR0VfRVhUJzogMHg4N0UwLAotICAnRlVMTF9SQU5HRV9FWFQnOiAweDg3RTEsCi0g
ICdDVVJSRU5UX1ZFUlRFWF9FWFQnOiAweDg3RTIsCi0gICdNVlBfTUFUUklYX0VYVCc6IDB4ODdF
MywKLSAgJ1ZBUklBTlRfVkFMVUVfRVhUJzogMHg4N0U0LAotICAnVkFSSUFOVF9EQVRBVFlQRV9F
WFQnOiAweDg3RTUsCi0gICdWQVJJQU5UX0FSUkFZX1NUUklERV9FWFQnOiAweDg3RTYsCi0gICdW
QVJJQU5UX0FSUkFZX1RZUEVfRVhUJzogMHg4N0U3LAotICAnVkFSSUFOVF9BUlJBWV9FWFQnOiAw
eDg3RTgsCi0gICdWQVJJQU5UX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4N0U5LAotICAnSU5WQVJJ
QU5UX1ZBTFVFX0VYVCc6IDB4ODdFQSwKLSAgJ0lOVkFSSUFOVF9EQVRBVFlQRV9FWFQnOiAweDg3
RUIsCi0gICdMT0NBTF9DT05TVEFOVF9WQUxVRV9FWFQnOiAweDg3RUMsCi0gICdMT0NBTF9DT05T
VEFOVF9EQVRBVFlQRV9FWFQnOiAweDg3RUQsCi0gICdNT0RFTFZJRVcwX1NUQUNLX0RFUFRIX0VY
VCc6IDB4MEJBMywKLSAgJ01PREVMVklFVzBfTUFUUklYX0VYVCc6IDB4MEJBNiwKLSAgJ01PREVM
VklFVzBfRVhUJzogMHgxNzAwLAotICAnTU9ERUxWSUVXMV9TVEFDS19ERVBUSF9FWFQnOiAweDg1
MDIsCi0gICdNT0RFTFZJRVcxX01BVFJJWF9FWFQnOiAweDg1MDYsCi0gICdWRVJURVhfV0VJR0hU
SU5HX0VYVCc6IDB4ODUwOSwKLSAgJ01PREVMVklFVzFfRVhUJzogMHg4NTBBLAotICAnQ1VSUkVO
VF9WRVJURVhfV0VJR0hUX0VYVCc6IDB4ODUwQiwKLSAgJ1ZFUlRFWF9XRUlHSFRfQVJSQVlfRVhU
JzogMHg4NTBDLAotICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9TSVpFX0VYVCc6IDB4ODUwRCwKLSAg
J1ZFUlRFWF9XRUlHSFRfQVJSQVlfVFlQRV9FWFQnOiAweDg1MEUsCi0gICdWRVJURVhfV0VJR0hU
X0FSUkFZX1NUUklERV9FWFQnOiAweDg1MEYsCi0gICdWRVJURVhfV0VJR0hUX0FSUkFZX1BPSU5U
RVJfRVhUJzogMHg4NTEwLAotICAnT0NDTFVTSU9OX1RFU1RfSFAnOiAweDgxNjUsCi0gICdPQ0NM
VVNJT05fVEVTVF9SRVNVTFRfSFAnOiAweDgxNjYsCi0gICdNSVJST1JFRF9SRVBFQVRfSUJNJzog
MHg4MzcwLAotICAnUkVEX01JTl9DTEFNUF9JTkdSJzogMHg4NTYwLAotICAnR1JFRU5fTUlOX0NM
QU1QX0lOR1InOiAweDg1NjEsCi0gICdCTFVFX01JTl9DTEFNUF9JTkdSJzogMHg4NTYyLAotICAn
QUxQSEFfTUlOX0NMQU1QX0lOR1InOiAweDg1NjMsCi0gICdSRURfTUFYX0NMQU1QX0lOR1InOiAw
eDg1NjQsCi0gICdHUkVFTl9NQVhfQ0xBTVBfSU5HUic6IDB4ODU2NSwKLSAgJ0JMVUVfTUFYX0NM
QU1QX0lOR1InOiAweDg1NjYsCi0gICdBTFBIQV9NQVhfQ0xBTVBfSU5HUic6IDB4ODU2NywKLSAg
J0lOVEVSTEFDRV9SRUFEX0lOR1InOiAweDg1NjgsCi0gICdQQVJBTExFTF9BUlJBWVNfSU5URUwn
OiAweDgzRjQsCi0gICdWRVJURVhfQVJSQVlfUEFSQUxMRUxfUE9JTlRFUlNfSU5URUwnOiAweDgz
RjUsCi0gICdOT1JNQUxfQVJSQVlfUEFSQUxMRUxfUE9JTlRFUlNfSU5URUwnOiAweDgzRjYsCi0g
ICdDT0xPUl9BUlJBWV9QQVJBTExFTF9QT0lOVEVSU19JTlRFTCc6IDB4ODNGNywKLSAgJ1RFWFRV
UkVfQ09PUkRfQVJSQVlfUEFSQUxMRUxfUE9JTlRFUlNfSU5URUwnOiAweDgzRjgsCi0gICdLVFhf
RlJPTlRfUkVHSU9OJzogMHgwLAotICAnS1RYX0JBQ0tfUkVHSU9OJzogMHgxLAotICAnS1RYX1pf
UkVHSU9OJzogMHgyLAotICAnS1RYX1NURU5DSUxfUkVHSU9OJzogMHgzLAotICAnVEVYVFVSRV8x
RF9TVEFDS19NRVNBWCc6IDB4ODc1OSwKLSAgJ1RFWFRVUkVfMkRfU1RBQ0tfTUVTQVgnOiAweDg3
NUEsCi0gICdQUk9YWV9URVhUVVJFXzFEX1NUQUNLX01FU0FYJzogMHg4NzVCLAotICAnUFJPWFlf
VEVYVFVSRV8yRF9TVEFDS19NRVNBWCc6IDB4ODc1QywKLSAgJ1RFWFRVUkVfMURfU1RBQ0tfQklO
RElOR19NRVNBWCc6IDB4ODc1RCwKLSAgJ1RFWFRVUkVfMkRfU1RBQ0tfQklORElOR19NRVNBWCc6
IDB4ODc1RSwKLSAgJ1BBQ0tfSU5WRVJUX01FU0EnOiAweDg3NTgsCi0gICdVTlNJR05FRF9TSE9S
VF84XzhfTUVTQSc6IDB4ODVCQSwKLSAgJ1VOU0lHTkVEX1NIT1JUXzhfOF9SRVZfTUVTQSc6IDB4
ODVCQiwKLSAgJ1lDQkNSX01FU0EnOiAweDg3NTcsCi0gICdRVUVSWV9XQUlUX05WJzogMHg4RTEz
LAotICAnUVVFUllfTk9fV0FJVF9OVic6IDB4OEUxNCwKLSAgJ1FVRVJZX0JZX1JFR0lPTl9XQUlU
X05WJzogMHg4RTE1LAotICAnUVVFUllfQllfUkVHSU9OX05PX1dBSVRfTlYnOiAweDhFMTYsCi0g
ICdERVBUSF9TVEVOQ0lMX1RPX1JHQkFfTlYnOiAweDg4NkUsCi0gICdERVBUSF9TVEVOQ0lMX1RP
X0JHUkFfTlYnOiAweDg4NkYsCi0gICdERVBUSF9DT01QT05FTlQzMkZfTlYnOiAweDhEQUIsCi0g
ICdERVBUSDMyRl9TVEVOQ0lMOF9OVic6IDB4OERBQywKLSAgJ0ZMT0FUXzMyX1VOU0lHTkVEX0lO
VF8yNF84X1JFVl9OVic6IDB4OERBRCwKLSAgJ0RFUFRIX0JVRkZFUl9GTE9BVF9NT0RFX05WJzog
MHg4REFGLAotICAnREVQVEhfQ0xBTVBfTlYnOiAweDg2NEYsCi0gICdTQU1QTEVfQ09VTlRfQklU
U19OVic6IDB4ODg2NCwKLSAgJ0NVUlJFTlRfU0FNUExFX0NPVU5UX1FVRVJZX05WJzogMHg4ODY1
LAotICAnUVVFUllfUkVTVUxUX05WJzogMHg4ODY2LAotICAnUVVFUllfUkVTVUxUX0FWQUlMQUJM
RV9OVic6IDB4ODg2NywKLSAgJ1NBTVBMRV9DT1VOVF9OVic6IDB4ODkxNCwKLSAgJ0VWQUxfMkRf
TlYnOiAweDg2QzAsCi0gICdFVkFMX1RSSUFOR1VMQVJfMkRfTlYnOiAweDg2QzEsCi0gICdNQVBf
VEVTU0VMTEFUSU9OX05WJzogMHg4NkMyLAotICAnTUFQX0FUVFJJQl9VX09SREVSX05WJzogMHg4
NkMzLAotICAnTUFQX0FUVFJJQl9WX09SREVSX05WJzogMHg4NkM0LAotICAnRVZBTF9GUkFDVElP
TkFMX1RFU1NFTExBVElPTl9OVic6IDB4ODZDNSwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjBfTlYn
OiAweDg2QzYsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxX05WJzogMHg4NkM3LAotICAnRVZBTF9W
RVJURVhfQVRUUklCMl9OVic6IDB4ODZDOCwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjNfTlYnOiAw
eDg2QzksCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUI0X05WJzogMHg4NkNBLAotICAnRVZBTF9WRVJU
RVhfQVRUUklCNV9OVic6IDB4ODZDQiwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjZfTlYnOiAweDg2
Q0MsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUI3X05WJzogMHg4NkNELAotICAnRVZBTF9WRVJURVhf
QVRUUklCOF9OVic6IDB4ODZDRSwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjlfTlYnOiAweDg2Q0Ys
Ci0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxMF9OVic6IDB4ODZEMCwKLSAgJ0VWQUxfVkVSVEVYX0FU
VFJJQjExX05WJzogMHg4NkQxLAotICAnRVZBTF9WRVJURVhfQVRUUklCMTJfTlYnOiAweDg2RDIs
Ci0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxM19OVic6IDB4ODZEMywKLSAgJ0VWQUxfVkVSVEVYX0FU
VFJJQjE0X05WJzogMHg4NkQ0LAotICAnRVZBTF9WRVJURVhfQVRUUklCMTVfTlYnOiAweDg2RDUs
Ci0gICdNQVhfTUFQX1RFU1NFTExBVElPTl9OVic6IDB4ODZENiwKLSAgJ01BWF9SQVRJT05BTF9F
VkFMX09SREVSX05WJzogMHg4NkQ3LAotICAnU0FNUExFX1BPU0lUSU9OX05WJzogMHg4RTUwLAot
ICAnU0FNUExFX01BU0tfTlYnOiAweDhFNTEsCi0gICdTQU1QTEVfTUFTS19WQUxVRV9OVic6IDB4
OEU1MiwKLSAgJ1RFWFRVUkVfQklORElOR19SRU5ERVJCVUZGRVJfTlYnOiAweDhFNTMsCi0gICdU
RVhUVVJFX1JFTkRFUkJVRkZFUl9EQVRBX1NUT1JFX0JJTkRJTkdfTlYnOiAweDhFNTQsCi0gICdU
RVhUVVJFX1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1NSwKLSAgJ1NBTVBMRVJfUkVOREVSQlVGRkVS
X05WJzogMHg4RTU2LAotICAnSU5UX1NBTVBMRVJfUkVOREVSQlVGRkVSX05WJzogMHg4RTU3LAot
ICAnVU5TSUdORURfSU5UX1NBTVBMRVJfUkVOREVSQlVGRkVSX05WJzogMHg4RTU4LAotICAnTUFY
X1NBTVBMRV9NQVNLX1dPUkRTX05WJzogMHg4RTU5LAotICAnQUxMX0NPTVBMRVRFRF9OVic6IDB4
ODRGMiwKLSAgJ0ZFTkNFX1NUQVRVU19OVic6IDB4ODRGMywKLSAgJ0ZFTkNFX0NPTkRJVElPTl9O
Vic6IDB4ODRGNCwKLSAgJ0ZMT0FUX1JfTlYnOiAweDg4ODAsCi0gICdGTE9BVF9SR19OVic6IDB4
ODg4MSwKLSAgJ0ZMT0FUX1JHQl9OVic6IDB4ODg4MiwKLSAgJ0ZMT0FUX1JHQkFfTlYnOiAweDg4
ODMsCi0gICdGTE9BVF9SMTZfTlYnOiAweDg4ODQsCi0gICdGTE9BVF9SMzJfTlYnOiAweDg4ODUs
Ci0gICdGTE9BVF9SRzE2X05WJzogMHg4ODg2LAotICAnRkxPQVRfUkczMl9OVic6IDB4ODg4NywK
LSAgJ0ZMT0FUX1JHQjE2X05WJzogMHg4ODg4LAotICAnRkxPQVRfUkdCMzJfTlYnOiAweDg4ODks
Ci0gICdGTE9BVF9SR0JBMTZfTlYnOiAweDg4OEEsCi0gICdGTE9BVF9SR0JBMzJfTlYnOiAweDg4
OEIsCi0gICdURVhUVVJFX0ZMT0FUX0NPTVBPTkVOVFNfTlYnOiAweDg4OEMsCi0gICdGTE9BVF9D
TEVBUl9DT0xPUl9WQUxVRV9OVic6IDB4ODg4RCwKLSAgJ0ZMT0FUX1JHQkFfTU9ERV9OVic6IDB4
ODg4RSwKLSAgJ0ZPR19ESVNUQU5DRV9NT0RFX05WJzogMHg4NTVBLAotICAnRVlFX1JBRElBTF9O
Vic6IDB4ODU1QiwKLSAgJ0VZRV9QTEFORV9BQlNPTFVURV9OVic6IDB4ODU1QywKLSAgJ01BWF9G
UkFHTUVOVF9QUk9HUkFNX0xPQ0FMX1BBUkFNRVRFUlNfTlYnOiAweDg4NjgsCi0gICdGUkFHTUVO
VF9QUk9HUkFNX05WJzogMHg4ODcwLAotICAnTUFYX1RFWFRVUkVfQ09PUkRTX05WJzogMHg4ODcx
LAotICAnTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFNfTlYnOiAweDg4NzIsCi0gICdGUkFHTUVOVF9Q
Uk9HUkFNX0JJTkRJTkdfTlYnOiAweDg4NzMsCi0gICdQUk9HUkFNX0VSUk9SX1NUUklOR19OVic6
IDB4ODg3NCwKLSAgJ01BWF9QUk9HUkFNX0VYRUNfSU5TVFJVQ1RJT05TX05WJzogMHg4OEY0LAot
ICAnTUFYX1BST0dSQU1fQ0FMTF9ERVBUSF9OVic6IDB4ODhGNSwKLSAgJ01BWF9QUk9HUkFNX0lG
X0RFUFRIX05WJzogMHg4OEY2LAotICAnTUFYX1BST0dSQU1fTE9PUF9ERVBUSF9OVic6IDB4ODhG
NywKLSAgJ01BWF9QUk9HUkFNX0xPT1BfQ09VTlRfTlYnOiAweDg4RjgsCi0gICdSRU5ERVJCVUZG
RVJfQ09WRVJBR0VfU0FNUExFU19OVic6IDB4OENBQiwKLSAgJ1JFTkRFUkJVRkZFUl9DT0xPUl9T
QU1QTEVTX05WJzogMHg4RTEwLAotICAnTUFYX01VTFRJU0FNUExFX0NPVkVSQUdFX01PREVTX05W
JzogMHg4RTExLAotICAnTVVMVElTQU1QTEVfQ09WRVJBR0VfTU9ERVNfTlYnOiAweDhFMTIsCi0g
ICdHRU9NRVRSWV9QUk9HUkFNX05WJzogMHg4QzI2LAotICAnTUFYX1BST0dSQU1fT1VUUFVUX1ZF
UlRJQ0VTX05WJzogMHg4QzI3LAotICAnTUFYX1BST0dSQU1fVE9UQUxfT1VUUFVUX0NPTVBPTkVO
VFNfTlYnOiAweDhDMjgsCi0gICdNSU5fUFJPR1JBTV9URVhFTF9PRkZTRVRfTlYnOiAweDg5MDQs
Ci0gICdNQVhfUFJPR1JBTV9URVhFTF9PRkZTRVRfTlYnOiAweDg5MDUsCi0gICdQUk9HUkFNX0FU
VFJJQl9DT01QT05FTlRTX05WJzogMHg4OTA2LAotICAnUFJPR1JBTV9SRVNVTFRfQ09NUE9ORU5U
U19OVic6IDB4ODkwNywKLSAgJ01BWF9QUk9HUkFNX0FUVFJJQl9DT01QT05FTlRTX05WJzogMHg4
OTA4LAotICAnTUFYX1BST0dSQU1fUkVTVUxUX0NPTVBPTkVOVFNfTlYnOiAweDg5MDksCi0gICdN
QVhfUFJPR1JBTV9HRU5FUklDX0FUVFJJQlNfTlYnOiAweDhEQTUsCi0gICdNQVhfUFJPR1JBTV9H
RU5FUklDX1JFU1VMVFNfTlYnOiAweDhEQTYsCi0gICdIQUxGX0ZMT0FUX05WJzogMHgxNDBCLAot
ICAnTUFYX1NISU5JTkVTU19OVic6IDB4ODUwNCwKLSAgJ01BWF9TUE9UX0VYUE9ORU5UX05WJzog
MHg4NTA1LAotICAnTVVMVElTQU1QTEVfRklMVEVSX0hJTlRfTlYnOiAweDg1MzQsCi0gICdQSVhF
TF9DT1VOVEVSX0JJVFNfTlYnOiAweDg4NjQsCi0gICdDVVJSRU5UX09DQ0xVU0lPTl9RVUVSWV9J
RF9OVic6IDB4ODg2NSwKLSAgJ1BJWEVMX0NPVU5UX05WJzogMHg4ODY2LAotICAnUElYRUxfQ09V
TlRfQVZBSUxBQkxFX05WJzogMHg4ODY3LAotICAnREVQVEhfU1RFTkNJTF9OVic6IDB4ODRGOSwK
LSAgJ1VOU0lHTkVEX0lOVF8yNF84X05WJzogMHg4NEZBLAotICAnTUFYX1BST0dSQU1fUEFSQU1F
VEVSX0JVRkZFUl9CSU5ESU5HU19OVic6IDB4OERBMCwKLSAgJ01BWF9QUk9HUkFNX1BBUkFNRVRF
Ul9CVUZGRVJfU0laRV9OVic6IDB4OERBMSwKLSAgJ1ZFUlRFWF9QUk9HUkFNX1BBUkFNRVRFUl9C
VUZGRVJfTlYnOiAweDhEQTIsCi0gICdHRU9NRVRSWV9QUk9HUkFNX1BBUkFNRVRFUl9CVUZGRVJf
TlYnOiAweDhEQTMsCi0gICdGUkFHTUVOVF9QUk9HUkFNX1BBUkFNRVRFUl9CVUZGRVJfTlYnOiAw
eDhEQTQsCi0gICdXUklURV9QSVhFTF9EQVRBX1JBTkdFX05WJzogMHg4ODc4LAotICAnUkVBRF9Q
SVhFTF9EQVRBX1JBTkdFX05WJzogMHg4ODc5LAotICAnV1JJVEVfUElYRUxfREFUQV9SQU5HRV9M
RU5HVEhfTlYnOiAweDg4N0EsCi0gICdSRUFEX1BJWEVMX0RBVEFfUkFOR0VfTEVOR1RIX05WJzog
MHg4ODdCLAotICAnV1JJVEVfUElYRUxfREFUQV9SQU5HRV9QT0lOVEVSX05WJzogMHg4ODdDLAot
ICAnUkVBRF9QSVhFTF9EQVRBX1JBTkdFX1BPSU5URVJfTlYnOiAweDg4N0QsCi0gICdQT0lOVF9T
UFJJVEVfTlYnOiAweDg4NjEsCi0gICdDT09SRF9SRVBMQUNFX05WJzogMHg4ODYyLAotICAnUE9J
TlRfU1BSSVRFX1JfTU9ERV9OVic6IDB4ODg2MywKLSAgJ0ZSQU1FX05WJzogMHg4RTI2LAotICAn
RklFTERTX05WJzogMHg4RTI3LAotICAnQ1VSUkVOVF9USU1FX05WJzogMHg4RTI4LAotICAnTlVN
X0ZJTExfU1RSRUFNU19OVic6IDB4OEUyOSwKLSAgJ1BSRVNFTlRfVElNRV9OVic6IDB4OEUyQSwK
LSAgJ1BSRVNFTlRfRFVSQVRJT05fTlYnOiAweDhFMkIsCi0gICdQUklNSVRJVkVfUkVTVEFSVF9O
Vic6IDB4ODU1OCwKLSAgJ1BSSU1JVElWRV9SRVNUQVJUX0lOREVYX05WJzogMHg4NTU5LAotICAn
UkVHSVNURVJfQ09NQklORVJTX05WJzogMHg4NTIyLAotICAnVkFSSUFCTEVfQV9OVic6IDB4ODUy
MywKLSAgJ1ZBUklBQkxFX0JfTlYnOiAweDg1MjQsCi0gICdWQVJJQUJMRV9DX05WJzogMHg4NTI1
LAotICAnVkFSSUFCTEVfRF9OVic6IDB4ODUyNiwKLSAgJ1ZBUklBQkxFX0VfTlYnOiAweDg1Mjcs
Ci0gICdWQVJJQUJMRV9GX05WJzogMHg4NTI4LAotICAnVkFSSUFCTEVfR19OVic6IDB4ODUyOSwK
LSAgJ0NPTlNUQU5UX0NPTE9SMF9OVic6IDB4ODUyQSwKLSAgJ0NPTlNUQU5UX0NPTE9SMV9OVic6
IDB4ODUyQiwKLSAgJ1BSSU1BUllfQ09MT1JfTlYnOiAweDg1MkMsCi0gICdTRUNPTkRBUllfQ09M
T1JfTlYnOiAweDg1MkQsCi0gICdTUEFSRTBfTlYnOiAweDg1MkUsCi0gICdTUEFSRTFfTlYnOiAw
eDg1MkYsCi0gICdESVNDQVJEX05WJzogMHg4NTMwLAotICAnRV9USU1FU19GX05WJzogMHg4NTMx
LAotICAnU1BBUkUwX1BMVVNfU0VDT05EQVJZX0NPTE9SX05WJzogMHg4NTMyLAotICAnVU5TSUdO
RURfSURFTlRJVFlfTlYnOiAweDg1MzYsCi0gICdVTlNJR05FRF9JTlZFUlRfTlYnOiAweDg1Mzcs
Ci0gICdFWFBBTkRfTk9STUFMX05WJzogMHg4NTM4LAotICAnRVhQQU5EX05FR0FURV9OVic6IDB4
ODUzOSwKLSAgJ0hBTEZfQklBU19OT1JNQUxfTlYnOiAweDg1M0EsCi0gICdIQUxGX0JJQVNfTkVH
QVRFX05WJzogMHg4NTNCLAotICAnU0lHTkVEX0lERU5USVRZX05WJzogMHg4NTNDLAotICAnU0lH
TkVEX05FR0FURV9OVic6IDB4ODUzRCwKLSAgJ1NDQUxFX0JZX1RXT19OVic6IDB4ODUzRSwKLSAg
J1NDQUxFX0JZX0ZPVVJfTlYnOiAweDg1M0YsCi0gICdTQ0FMRV9CWV9PTkVfSEFMRl9OVic6IDB4
ODU0MCwKLSAgJ0JJQVNfQllfTkVHQVRJVkVfT05FX0hBTEZfTlYnOiAweDg1NDEsCi0gICdDT01C
SU5FUl9JTlBVVF9OVic6IDB4ODU0MiwKLSAgJ0NPTUJJTkVSX01BUFBJTkdfTlYnOiAweDg1NDMs
Ci0gICdDT01CSU5FUl9DT01QT05FTlRfVVNBR0VfTlYnOiAweDg1NDQsCi0gICdDT01CSU5FUl9B
Ql9ET1RfUFJPRFVDVF9OVic6IDB4ODU0NSwKLSAgJ0NPTUJJTkVSX0NEX0RPVF9QUk9EVUNUX05W
JzogMHg4NTQ2LAotICAnQ09NQklORVJfTVVYX1NVTV9OVic6IDB4ODU0NywKLSAgJ0NPTUJJTkVS
X1NDQUxFX05WJzogMHg4NTQ4LAotICAnQ09NQklORVJfQklBU19OVic6IDB4ODU0OSwKLSAgJ0NP
TUJJTkVSX0FCX09VVFBVVF9OVic6IDB4ODU0QSwKLSAgJ0NPTUJJTkVSX0NEX09VVFBVVF9OVic6
IDB4ODU0QiwKLSAgJ0NPTUJJTkVSX1NVTV9PVVRQVVRfTlYnOiAweDg1NEMsCi0gICdNQVhfR0VO
RVJBTF9DT01CSU5FUlNfTlYnOiAweDg1NEQsCi0gICdOVU1fR0VORVJBTF9DT01CSU5FUlNfTlYn
OiAweDg1NEUsCi0gICdDT0xPUl9TVU1fQ0xBTVBfTlYnOiAweDg1NEYsCi0gICdDT01CSU5FUjBf
TlYnOiAweDg1NTAsCi0gICdDT01CSU5FUjFfTlYnOiAweDg1NTEsCi0gICdDT01CSU5FUjJfTlYn
OiAweDg1NTIsCi0gICdDT01CSU5FUjNfTlYnOiAweDg1NTMsCi0gICdDT01CSU5FUjRfTlYnOiAw
eDg1NTQsCi0gICdDT01CSU5FUjVfTlYnOiAweDg1NTUsCi0gICdDT01CSU5FUjZfTlYnOiAweDg1
NTYsCi0gICdDT01CSU5FUjdfTlYnOiAweDg1NTcsCi0gICdQRVJfU1RBR0VfQ09OU1RBTlRTX05W
JzogMHg4NTM1LAotICAnRU1CT1NTX0xJR0hUX05WJzogMHg4NTVELAotICAnRU1CT1NTX0NPTlNU
QU5UX05WJzogMHg4NTVFLAotICAnRU1CT1NTX01BUF9OVic6IDB4ODU1RiwKLSAgJ05PUk1BTF9N
QVBfTlYnOiAweDg1MTEsCi0gICdSRUZMRUNUSU9OX01BUF9OVic6IDB4ODUxMiwKLSAgJ0NPTUJJ
TkU0X05WJzogMHg4NTAzLAotICAnU09VUkNFM19SR0JfTlYnOiAweDg1ODMsCi0gICdTT1VSQ0Uz
X0FMUEhBX05WJzogMHg4NThCLAotICAnT1BFUkFORDNfUkdCX05WJzogMHg4NTkzLAotICAnT1BF
UkFORDNfQUxQSEFfTlYnOiAweDg1OUIsCi0gICdURVhUVVJFX1VOU0lHTkVEX1JFTUFQX01PREVf
TlYnOiAweDg4OEYsCi0gICdURVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODRGNSwKLSAgJ1RFWFRV
UkVfQklORElOR19SRUNUQU5HTEVfTlYnOiAweDg0RjYsCi0gICdQUk9YWV9URVhUVVJFX1JFQ1RB
TkdMRV9OVic6IDB4ODRGNywKLSAgJ01BWF9SRUNUQU5HTEVfVEVYVFVSRV9TSVpFX05WJzogMHg4
NEY4LAotICAnT0ZGU0VUX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4NjRDLAotICAnT0ZGU0VU
X1RFWFRVUkVfUkVDVEFOR0xFX1NDQUxFX05WJzogMHg4NjRELAotICAnRE9UX1BST0RVQ1RfVEVY
VFVSRV9SRUNUQU5HTEVfTlYnOiAweDg2NEUsCi0gICdSR0JBX1VOU0lHTkVEX0RPVF9QUk9EVUNU
X01BUFBJTkdfTlYnOiAweDg2RDksCi0gICdVTlNJR05FRF9JTlRfUzhfUzhfOF84X05WJzogMHg4
NkRBLAotICAnVU5TSUdORURfSU5UXzhfOF9TOF9TOF9SRVZfTlYnOiAweDg2REIsCi0gICdEU0RU
X01BR19JTlRFTlNJVFlfTlYnOiAweDg2REMsCi0gICdTSEFERVJfQ09OU0lTVEVOVF9OVic6IDB4
ODZERCwKLSAgJ1RFWFRVUkVfU0hBREVSX05WJzogMHg4NkRFLAotICAnU0hBREVSX09QRVJBVElP
Tl9OVic6IDB4ODZERiwKLSAgJ0NVTExfTU9ERVNfTlYnOiAweDg2RTAsCi0gICdPRkZTRVRfVEVY
VFVSRV8yRF9NQVRSSVhfTlYnOiAweDg2RTEsCi0gICdPRkZTRVRfVEVYVFVSRV9NQVRSSVhfTlYn
OiAweDg2RTEsCi0gICdPRkZTRVRfVEVYVFVSRV8yRF9TQ0FMRV9OVic6IDB4ODZFMiwKLSAgJ09G
RlNFVF9URVhUVVJFX1NDQUxFX05WJzogMHg4NkUyLAotICAnT0ZGU0VUX1RFWFRVUkVfQklBU19O
Vic6IDB4ODZFMywKLSAgJ09GRlNFVF9URVhUVVJFXzJEX0JJQVNfTlYnOiAweDg2RTMsCi0gICdQ
UkVWSU9VU19URVhUVVJFX0lOUFVUX05WJzogMHg4NkU0LAotICAnQ09OU1RfRVlFX05WJzogMHg4
NkU1LAotICAnUEFTU19USFJPVUdIX05WJzogMHg4NkU2LAotICAnQ1VMTF9GUkFHTUVOVF9OVic6
IDB4ODZFNywKLSAgJ09GRlNFVF9URVhUVVJFXzJEX05WJzogMHg4NkU4LAotICAnREVQRU5ERU5U
X0FSX1RFWFRVUkVfMkRfTlYnOiAweDg2RTksCi0gICdERVBFTkRFTlRfR0JfVEVYVFVSRV8yRF9O
Vic6IDB4ODZFQSwKLSAgJ0RPVF9QUk9EVUNUX05WJzogMHg4NkVDLAotICAnRE9UX1BST0RVQ1Rf
REVQVEhfUkVQTEFDRV9OVic6IDB4ODZFRCwKLSAgJ0RPVF9QUk9EVUNUX1RFWFRVUkVfMkRfTlYn
OiAweDg2RUUsCi0gICdET1RfUFJPRFVDVF9URVhUVVJFX0NVQkVfTUFQX05WJzogMHg4NkYwLAot
ICAnRE9UX1BST0RVQ1RfRElGRlVTRV9DVUJFX01BUF9OVic6IDB4ODZGMSwKLSAgJ0RPVF9QUk9E
VUNUX1JFRkxFQ1RfQ1VCRV9NQVBfTlYnOiAweDg2RjIsCi0gICdET1RfUFJPRFVDVF9DT05TVF9F
WUVfUkVGTEVDVF9DVUJFX01BUF9OVic6IDB4ODZGMywKLSAgJ0hJTE9fTlYnOiAweDg2RjQsCi0g
ICdEU0RUX05WJzogMHg4NkY1LAotICAnRFNEVF9NQUdfTlYnOiAweDg2RjYsCi0gICdEU0RUX01B
R19WSUJfTlYnOiAweDg2RjcsCi0gICdISUxPMTZfTlYnOiAweDg2RjgsCi0gICdTSUdORURfSElM
T19OVic6IDB4ODZGOSwKLSAgJ1NJR05FRF9ISUxPMTZfTlYnOiAweDg2RkEsCi0gICdTSUdORURf
UkdCQV9OVic6IDB4ODZGQiwKLSAgJ1NJR05FRF9SR0JBOF9OVic6IDB4ODZGQywKLSAgJ1NJR05F
RF9SR0JfTlYnOiAweDg2RkUsCi0gICdTSUdORURfUkdCOF9OVic6IDB4ODZGRiwKLSAgJ1NJR05F
RF9MVU1JTkFOQ0VfTlYnOiAweDg3MDEsCi0gICdTSUdORURfTFVNSU5BTkNFOF9OVic6IDB4ODcw
MiwKLSAgJ1NJR05FRF9MVU1JTkFOQ0VfQUxQSEFfTlYnOiAweDg3MDMsCi0gICdTSUdORURfTFVN
SU5BTkNFOF9BTFBIQThfTlYnOiAweDg3MDQsCi0gICdTSUdORURfQUxQSEFfTlYnOiAweDg3MDUs
Ci0gICdTSUdORURfQUxQSEE4X05WJzogMHg4NzA2LAotICAnU0lHTkVEX0lOVEVOU0lUWV9OVic6
IDB4ODcwNywKLSAgJ1NJR05FRF9JTlRFTlNJVFk4X05WJzogMHg4NzA4LAotICAnRFNEVDhfTlYn
OiAweDg3MDksCi0gICdEU0RUOF9NQUc4X05WJzogMHg4NzBBLAotICAnRFNEVDhfTUFHOF9JTlRF
TlNJVFk4X05WJzogMHg4NzBCLAotICAnU0lHTkVEX1JHQl9VTlNJR05FRF9BTFBIQV9OVic6IDB4
ODcwQywKLSAgJ1NJR05FRF9SR0I4X1VOU0lHTkVEX0FMUEhBOF9OVic6IDB4ODcwRCwKLSAgJ0hJ
X1NDQUxFX05WJzogMHg4NzBFLAotICAnTE9fU0NBTEVfTlYnOiAweDg3MEYsCi0gICdEU19TQ0FM
RV9OVic6IDB4ODcxMCwKLSAgJ0RUX1NDQUxFX05WJzogMHg4NzExLAotICAnTUFHTklUVURFX1ND
QUxFX05WJzogMHg4NzEyLAotICAnVklCUkFOQ0VfU0NBTEVfTlYnOiAweDg3MTMsCi0gICdISV9C
SUFTX05WJzogMHg4NzE0LAotICAnTE9fQklBU19OVic6IDB4ODcxNSwKLSAgJ0RTX0JJQVNfTlYn
OiAweDg3MTYsCi0gICdEVF9CSUFTX05WJzogMHg4NzE3LAotICAnTUFHTklUVURFX0JJQVNfTlYn
OiAweDg3MTgsCi0gICdWSUJSQU5DRV9CSUFTX05WJzogMHg4NzE5LAotICAnVEVYVFVSRV9CT1JE
RVJfVkFMVUVTX05WJzogMHg4NzFBLAotICAnVEVYVFVSRV9ISV9TSVpFX05WJzogMHg4NzFCLAot
ICAnVEVYVFVSRV9MT19TSVpFX05WJzogMHg4NzFDLAotICAnVEVYVFVSRV9EU19TSVpFX05WJzog
MHg4NzFELAotICAnVEVYVFVSRV9EVF9TSVpFX05WJzogMHg4NzFFLAotICAnVEVYVFVSRV9NQUdf
U0laRV9OVic6IDB4ODcxRiwKLSAgJ1VOU0lHTkVEX0lOVF9TOF9TOF84XzhfTlYnOiAweDg2REEs
Ci0gICdVTlNJR05FRF9JTlRfOF84X1M4X1M4X1JFVl9OVic6IDB4ODZEQiwKLSAgJ0RTRFRfTUFH
X0lOVEVOU0lUWV9OVic6IDB4ODZEQywKLSAgJ0RPVF9QUk9EVUNUX1RFWFRVUkVfM0RfTlYnOiAw
eDg2RUYsCi0gICdISUxPX05WJzogMHg4NkY0LAotICAnRFNEVF9OVic6IDB4ODZGNSwKLSAgJ0RT
RFRfTUFHX05WJzogMHg4NkY2LAotICAnRFNEVF9NQUdfVklCX05WJzogMHg4NkY3LAotICAnSElM
TzE2X05WJzogMHg4NkY4LAotICAnU0lHTkVEX0hJTE9fTlYnOiAweDg2RjksCi0gICdTSUdORURf
SElMTzE2X05WJzogMHg4NkZBLAotICAnU0lHTkVEX1JHQkFfTlYnOiAweDg2RkIsCi0gICdTSUdO
RURfUkdCQThfTlYnOiAweDg2RkMsCi0gICdTSUdORURfUkdCX05WJzogMHg4NkZFLAotICAnU0lH
TkVEX1JHQjhfTlYnOiAweDg2RkYsCi0gICdTSUdORURfTFVNSU5BTkNFX05WJzogMHg4NzAxLAot
ICAnU0lHTkVEX0xVTUlOQU5DRThfTlYnOiAweDg3MDIsCi0gICdTSUdORURfTFVNSU5BTkNFX0FM
UEhBX05WJzogMHg4NzAzLAotICAnU0lHTkVEX0xVTUlOQU5DRThfQUxQSEE4X05WJzogMHg4NzA0
LAotICAnU0lHTkVEX0FMUEhBX05WJzogMHg4NzA1LAotICAnU0lHTkVEX0FMUEhBOF9OVic6IDB4
ODcwNiwKLSAgJ1NJR05FRF9JTlRFTlNJVFlfTlYnOiAweDg3MDcsCi0gICdTSUdORURfSU5URU5T
SVRZOF9OVic6IDB4ODcwOCwKLSAgJ0RTRFQ4X05WJzogMHg4NzA5LAotICAnRFNEVDhfTUFHOF9O
Vic6IDB4ODcwQSwKLSAgJ0RTRFQ4X01BRzhfSU5URU5TSVRZOF9OVic6IDB4ODcwQiwKLSAgJ1NJ
R05FRF9SR0JfVU5TSUdORURfQUxQSEFfTlYnOiAweDg3MEMsCi0gICdTSUdORURfUkdCOF9VTlNJ
R05FRF9BTFBIQThfTlYnOiAweDg3MEQsCi0gICdPRkZTRVRfUFJPSkVDVElWRV9URVhUVVJFXzJE
X05WJzogMHg4ODUwLAotICAnT0ZGU0VUX1BST0pFQ1RJVkVfVEVYVFVSRV8yRF9TQ0FMRV9OVic6
IDB4ODg1MSwKLSAgJ09GRlNFVF9QUk9KRUNUSVZFX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4
ODUyLAotICAnT0ZGU0VUX1BST0pFQ1RJVkVfVEVYVFVSRV9SRUNUQU5HTEVfU0NBTEVfTlYnOiAw
eDg4NTMsCi0gICdPRkZTRVRfSElMT19URVhUVVJFXzJEX05WJzogMHg4ODU0LAotICAnT0ZGU0VU
X0hJTE9fVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAweDg4NTUsCi0gICdPRkZTRVRfSElMT19QUk9K
RUNUSVZFX1RFWFRVUkVfMkRfTlYnOiAweDg4NTYsCi0gICdPRkZTRVRfSElMT19QUk9KRUNUSVZF
X1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4ODU3LAotICAnREVQRU5ERU5UX0hJTE9fVEVYVFVS
RV8yRF9OVic6IDB4ODg1OCwKLSAgJ0RFUEVOREVOVF9SR0JfVEVYVFVSRV8zRF9OVic6IDB4ODg1
OSwKLSAgJ0RFUEVOREVOVF9SR0JfVEVYVFVSRV9DVUJFX01BUF9OVic6IDB4ODg1QSwKLSAgJ0RP
VF9QUk9EVUNUX1BBU1NfVEhST1VHSF9OVic6IDB4ODg1QiwKLSAgJ0RPVF9QUk9EVUNUX1RFWFRV
UkVfMURfTlYnOiAweDg4NUMsCi0gICdET1RfUFJPRFVDVF9BRkZJTkVfREVQVEhfUkVQTEFDRV9O
Vic6IDB4ODg1RCwKLSAgJ0hJTE84X05WJzogMHg4ODVFLAotICAnU0lHTkVEX0hJTE84X05WJzog
MHg4ODVGLAotICAnRk9SQ0VfQkxVRV9UT19PTkVfTlYnOiAweDg4NjAsCi0gICdCQUNLX1BSSU1B
UllfQ09MT1JfTlYnOiAweDhDNzcsCi0gICdCQUNLX1NFQ09OREFSWV9DT0xPUl9OVic6IDB4OEM3
OCwKLSAgJ1RFWFRVUkVfQ09PUkRfTlYnOiAweDhDNzksCi0gICdDTElQX0RJU1RBTkNFX05WJzog
MHg4QzdBLAotICAnVkVSVEVYX0lEX05WJzogMHg4QzdCLAotICAnUFJJTUlUSVZFX0lEX05WJzog
MHg4QzdDLAotICAnR0VORVJJQ19BVFRSSUJfTlYnOiAweDhDN0QsCi0gICdUUkFOU0ZPUk1fRkVF
REJBQ0tfQVRUUklCU19OVic6IDB4OEM3RSwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJf
TU9ERV9OVic6IDB4OEM3RiwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQ09N
UE9ORU5UU19OVic6IDB4OEM4MCwKLSAgJ0FDVElWRV9WQVJZSU5HU19OVic6IDB4OEM4MSwKLSAg
J0FDVElWRV9WQVJZSU5HX01BWF9MRU5HVEhfTlYnOiAweDhDODIsCi0gICdUUkFOU0ZPUk1fRkVF
REJBQ0tfVkFSWUlOR1NfTlYnOiAweDhDODMsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVS
X1NUQVJUX05WJzogMHg4Qzg0LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFX05W
JzogMHg4Qzg1LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX1JFQ09SRF9OVic6IDB4OEM4NiwKLSAg
J1BSSU1JVElWRVNfR0VORVJBVEVEX05WJzogMHg4Qzg3LAotICAnVFJBTlNGT1JNX0ZFRURCQUNL
X1BSSU1JVElWRVNfV1JJVFRFTl9OVic6IDB4OEM4OCwKLSAgJ1JBU1RFUklaRVJfRElTQ0FSRF9O
Vic6IDB4OEM4OSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9O
RU5UU19OVic6IDB4OEM4QSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRU
UklCU19OVic6IDB4OEM4QiwKLSAgJ0lOVEVSTEVBVkVEX0FUVFJJQlNfTlYnOiAweDhDOEMsCi0g
ICdTRVBBUkFURV9BVFRSSUJTX05WJzogMHg4QzhELAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9OVic6IDB4OEM4RSwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElOR19O
Vic6IDB4OEM4RiwKLSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9OVic6IDB4ODUxRCwKLSAgJ1ZFUlRF
WF9BUlJBWV9SQU5HRV9MRU5HVEhfTlYnOiAweDg1MUUsCi0gICdWRVJURVhfQVJSQVlfUkFOR0Vf
VkFMSURfTlYnOiAweDg1MUYsCi0gICdNQVhfVkVSVEVYX0FSUkFZX1JBTkdFX0VMRU1FTlRfTlYn
OiAweDg1MjAsCi0gICdWRVJURVhfQVJSQVlfUkFOR0VfUE9JTlRFUl9OVic6IDB4ODUyMSwKLSAg
J1ZFUlRFWF9BUlJBWV9SQU5HRV9XSVRIT1VUX0ZMVVNIX05WJzogMHg4NTMzLAotICAnVkVSVEVY
X1BST0dSQU1fTlYnOiAweDg2MjAsCi0gICdWRVJURVhfU1RBVEVfUFJPR1JBTV9OVic6IDB4ODYy
MSwKLSAgJ0FUVFJJQl9BUlJBWV9TSVpFX05WJzogMHg4NjIzLAotICAnQVRUUklCX0FSUkFZX1NU
UklERV9OVic6IDB4ODYyNCwKLSAgJ0FUVFJJQl9BUlJBWV9UWVBFX05WJzogMHg4NjI1LAotICAn
Q1VSUkVOVF9BVFRSSUJfTlYnOiAweDg2MjYsCi0gICdQUk9HUkFNX0xFTkdUSF9OVic6IDB4ODYy
NywKLSAgJ1BST0dSQU1fU1RSSU5HX05WJzogMHg4NjI4LAotICAnTU9ERUxWSUVXX1BST0pFQ1RJ
T05fTlYnOiAweDg2MjksCi0gICdJREVOVElUWV9OVic6IDB4ODYyQSwKLSAgJ0lOVkVSU0VfTlYn
OiAweDg2MkIsCi0gICdUUkFOU1BPU0VfTlYnOiAweDg2MkMsCi0gICdJTlZFUlNFX1RSQU5TUE9T
RV9OVic6IDB4ODYyRCwKLSAgJ01BWF9UUkFDS19NQVRSSVhfU1RBQ0tfREVQVEhfTlYnOiAweDg2
MkUsCi0gICdNQVhfVFJBQ0tfTUFUUklDRVNfTlYnOiAweDg2MkYsCi0gICdNQVRSSVgwX05WJzog
MHg4NjMwLAotICAnTUFUUklYMV9OVic6IDB4ODYzMSwKLSAgJ01BVFJJWDJfTlYnOiAweDg2MzIs
Ci0gICdNQVRSSVgzX05WJzogMHg4NjMzLAotICAnTUFUUklYNF9OVic6IDB4ODYzNCwKLSAgJ01B
VFJJWDVfTlYnOiAweDg2MzUsCi0gICdNQVRSSVg2X05WJzogMHg4NjM2LAotICAnTUFUUklYN19O
Vic6IDB4ODYzNywKLSAgJ0NVUlJFTlRfTUFUUklYX1NUQUNLX0RFUFRIX05WJzogMHg4NjQwLAot
ICAnQ1VSUkVOVF9NQVRSSVhfTlYnOiAweDg2NDEsCi0gICdWRVJURVhfUFJPR1JBTV9QT0lOVF9T
SVpFX05WJzogMHg4NjQyLAotICAnVkVSVEVYX1BST0dSQU1fVFdPX1NJREVfTlYnOiAweDg2NDMs
Ci0gICdQUk9HUkFNX1BBUkFNRVRFUl9OVic6IDB4ODY0NCwKLSAgJ0FUVFJJQl9BUlJBWV9QT0lO
VEVSX05WJzogMHg4NjQ1LAotICAnUFJPR1JBTV9UQVJHRVRfTlYnOiAweDg2NDYsCi0gICdQUk9H
UkFNX1JFU0lERU5UX05WJzogMHg4NjQ3LAotICAnVFJBQ0tfTUFUUklYX05WJzogMHg4NjQ4LAot
ICAnVFJBQ0tfTUFUUklYX1RSQU5TRk9STV9OVic6IDB4ODY0OSwKLSAgJ1ZFUlRFWF9QUk9HUkFN
X0JJTkRJTkdfTlYnOiAweDg2NEEsCi0gICdQUk9HUkFNX0VSUk9SX1BPU0lUSU9OX05WJzogMHg4
NjRCLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTBfTlYnOiAweDg2NTAsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZMV9OVic6IDB4ODY1MSwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkyX05WJzogMHg4
NjUyLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTNfTlYnOiAweDg2NTMsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZNF9OVic6IDB4ODY1NCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVk1X05WJzogMHg4
NjU1LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTZfTlYnOiAweDg2NTYsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZN19OVic6IDB4ODY1NywKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVk4X05WJzogMHg4
NjU4LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTlfTlYnOiAweDg2NTksCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZMTBfTlYnOiAweDg2NUEsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTFfTlYnOiAw
eDg2NUIsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTJfTlYnOiAweDg2NUMsCi0gICdWRVJURVhf
QVRUUklCX0FSUkFZMTNfTlYnOiAweDg2NUQsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTRfTlYn
OiAweDg2NUUsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZMTVfTlYnOiAweDg2NUYsCi0gICdNQVAx
X1ZFUlRFWF9BVFRSSUIwXzRfTlYnOiAweDg2NjAsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIxXzRf
TlYnOiAweDg2NjEsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIyXzRfTlYnOiAweDg2NjIsCi0gICdN
QVAxX1ZFUlRFWF9BVFRSSUIzXzRfTlYnOiAweDg2NjMsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI0
XzRfTlYnOiAweDg2NjQsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI1XzRfTlYnOiAweDg2NjUsCi0g
ICdNQVAxX1ZFUlRFWF9BVFRSSUI2XzRfTlYnOiAweDg2NjYsCi0gICdNQVAxX1ZFUlRFWF9BVFRS
SUI3XzRfTlYnOiAweDg2NjcsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUI4XzRfTlYnOiAweDg2Njgs
Ci0gICdNQVAxX1ZFUlRFWF9BVFRSSUI5XzRfTlYnOiAweDg2NjksCi0gICdNQVAxX1ZFUlRFWF9B
VFRSSUIxMF80X05WJzogMHg4NjZBLAotICAnTUFQMV9WRVJURVhfQVRUUklCMTFfNF9OVic6IDB4
ODY2QiwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjEyXzRfTlYnOiAweDg2NkMsCi0gICdNQVAxX1ZF
UlRFWF9BVFRSSUIxM180X05WJzogMHg4NjZELAotICAnTUFQMV9WRVJURVhfQVRUUklCMTRfNF9O
Vic6IDB4ODY2RSwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjE1XzRfTlYnOiAweDg2NkYsCi0gICdN
QVAyX1ZFUlRFWF9BVFRSSUIwXzRfTlYnOiAweDg2NzAsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIx
XzRfTlYnOiAweDg2NzEsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIyXzRfTlYnOiAweDg2NzIsCi0g
ICdNQVAyX1ZFUlRFWF9BVFRSSUIzXzRfTlYnOiAweDg2NzMsCi0gICdNQVAyX1ZFUlRFWF9BVFRS
SUI0XzRfTlYnOiAweDg2NzQsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUI1XzRfTlYnOiAweDg2NzUs
Ci0gICdNQVAyX1ZFUlRFWF9BVFRSSUI2XzRfTlYnOiAweDg2NzYsCi0gICdNQVAyX1ZFUlRFWF9B
VFRSSUI3XzRfTlYnOiAweDg2NzcsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUI4XzRfTlYnOiAweDg2
NzgsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUI5XzRfTlYnOiAweDg2NzksCi0gICdNQVAyX1ZFUlRF
WF9BVFRSSUIxMF80X05WJzogMHg4NjdBLAotICAnTUFQMl9WRVJURVhfQVRUUklCMTFfNF9OVic6
IDB4ODY3QiwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjEyXzRfTlYnOiAweDg2N0MsCi0gICdNQVAy
X1ZFUlRFWF9BVFRSSUIxM180X05WJzogMHg4NjdELAotICAnTUFQMl9WRVJURVhfQVRUUklCMTRf
NF9OVic6IDB4ODY3RSwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjE1XzRfTlYnOiAweDg2N0YsCi0g
ICdNQVhfUFJPR1JBTV9FWEVDX0lOU1RSVUNUSU9OU19OVic6IDB4ODhGNCwKLSAgJ01BWF9QUk9H
UkFNX0NBTExfREVQVEhfTlYnOiAweDg4RjUsCi0gICdNQVhfVkVSVEVYX1RFWFRVUkVfSU1BR0Vf
VU5JVFNfQVJCJzogMHg4QjRDLAotICAnQllURSc6IDB4MTQwMCwKLSAgJ1BBTEVUVEU0X1JHQjhf
T0VTJzogMHg4QjkwLAotICAnUEFMRVRURTRfUkdCQThfT0VTJzogMHg4QjkxLAotICAnUEFMRVRU
RTRfUjVfRzZfQjVfT0VTJzogMHg4QjkyLAotICAnUEFMRVRURTRfUkdCQTRfT0VTJzogMHg4Qjkz
LAotICAnUEFMRVRURTRfUkdCNV9BMV9PRVMnOiAweDhCOTQsCi0gICdQQUxFVFRFOF9SR0I4X09F
Uyc6IDB4OEI5NSwKLSAgJ1BBTEVUVEU4X1JHQkE4X09FUyc6IDB4OEI5NiwKLSAgJ1BBTEVUVEU4
X1I1X0c2X0I1X09FUyc6IDB4OEI5NywKLSAgJ1BBTEVUVEU4X1JHQkE0X09FUyc6IDB4OEI5OCwK
LSAgJ1BBTEVUVEU4X1JHQjVfQTFfT0VTJzogMHg4Qjk5LAotICAnSU1QTEVNRU5UQVRJT05fQ09M
T1JfUkVBRF9UWVBFX09FUyc6IDB4OEI5QSwKLSAgJ0lNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURf
Rk9STUFUX09FUyc6IDB4OEI5QiwKLSAgJ0lOVEVSTEFDRV9PTUwnOiAweDg5ODAsCi0gICdJTlRF
UkxBQ0VfUkVBRF9PTUwnOiAweDg5ODEsCi0gICdQQUNLX1JFU0FNUExFX09NTCc6IDB4ODk4NCwK
LSAgJ1VOUEFDS19SRVNBTVBMRV9PTUwnOiAweDg5ODUsCi0gICdSRVNBTVBMRV9SRVBMSUNBVEVf
T01MJzogMHg4OTg2LAotICAnUkVTQU1QTEVfWkVST19GSUxMX09NTCc6IDB4ODk4NywKLSAgJ1JF
U0FNUExFX0FWRVJBR0VfT01MJzogMHg4OTg4LAotICAnUkVTQU1QTEVfREVDSU1BVEVfT01MJzog
MHg4OTg5LAotICAnRk9STUFUX1NVQlNBTVBMRV8yNF8yNF9PTUwnOiAweDg5ODIsCi0gICdGT1JN
QVRfU1VCU0FNUExFXzI0NF8yNDRfT01MJzogMHg4OTgzLAotICAnVkVSVEVYMjNfQklUX1BHSSc6
IDB4MDAwMDAwMDQsCi0gICdWRVJURVg0X0JJVF9QR0knOiAweDAwMDAwMDA4LAotICAnQ09MT1Iz
X0JJVF9QR0knOiAweDAwMDEwMDAwLAotICAnQ09MT1I0X0JJVF9QR0knOiAweDAwMDIwMDAwLAot
ICAnRURHRUZMQUdfQklUX1BHSSc6IDB4MDAwNDAwMDAsCi0gICdJTkRFWF9CSVRfUEdJJzogMHgw
MDA4MDAwMCwKLSAgJ01BVF9BTUJJRU5UX0JJVF9QR0knOiAweDAwMTAwMDAwLAotICAnTUFUX0FN
QklFTlRfQU5EX0RJRkZVU0VfQklUX1BHSSc6IDB4MDAyMDAwMDAsCi0gICdNQVRfRElGRlVTRV9C
SVRfUEdJJzogMHgwMDQwMDAwMCwKLSAgJ01BVF9FTUlTU0lPTl9CSVRfUEdJJzogMHgwMDgwMDAw
MCwKLSAgJ01BVF9DT0xPUl9JTkRFWEVTX0JJVF9QR0knOiAweDAxMDAwMDAwLAotICAnTUFUX1NI
SU5JTkVTU19CSVRfUEdJJzogMHgwMjAwMDAwMCwKLSAgJ01BVF9TUEVDVUxBUl9CSVRfUEdJJzog
MHgwNDAwMDAwMCwKLSAgJ05PUk1BTF9CSVRfUEdJJzogMHgwODAwMDAwMCwKLSAgJ1RFWENPT1JE
MV9CSVRfUEdJJzogMHgxMDAwMDAwMCwKLSAgJ1RFWENPT1JEMl9CSVRfUEdJJzogMHgyMDAwMDAw
MCwKLSAgJ1RFWENPT1JEM19CSVRfUEdJJzogMHg0MDAwMDAwMCwKLSAgJ1RFWENPT1JENF9CSVRf
UEdJJzogMHg4MDAwMDAwMCwKLSAgJ1NDUkVFTl9DT09SRElOQVRFU19SRU5EJzogMHg4NDkwLAot
ICAnSU5WRVJURURfU0NSRUVOX1dfUkVORCc6IDB4ODQ5MSwKLSAgJ1JHQl9TM1RDJzogMHg4M0Ew
LAotICAnUkdCNF9TM1RDJzogMHg4M0ExLAotICAnUkdCQV9TM1RDJzogMHg4M0EyLAotICAnUkdC
QTRfUzNUQyc6IDB4ODNBMywKLSAgJ1JHQkFfRFhUNV9TM1RDJzogMHg4M0E0LAotICAnUkdCQTRf
RFhUNV9TM1RDJzogMHg4M0E1LAotICAnRVhURU5ERURfUkFOR0VfU0dJUyc6IDB4ODVBNSwKLSAg
J01JTl9SRURfU0dJUyc6IDB4ODVBNiwKLSAgJ01BWF9SRURfU0dJUyc6IDB4ODVBNywKLSAgJ01J
Tl9HUkVFTl9TR0lTJzogMHg4NUE4LAotICAnTUFYX0dSRUVOX1NHSVMnOiAweDg1QTksCi0gICdN
SU5fQkxVRV9TR0lTJzogMHg4NUFBLAotICAnTUFYX0JMVUVfU0dJUyc6IDB4ODVBQiwKLSAgJ01J
Tl9BTFBIQV9TR0lTJzogMHg4NUFDLAotICAnTUFYX0FMUEhBX1NHSVMnOiAweDg1QUQsCi0gICdH
RU5FUkFURV9NSVBNQVBfU0dJUyc6IDB4ODE5MSwKLSAgJ0dFTkVSQVRFX01JUE1BUF9ISU5UX1NH
SVMnOiAweDgxOTIsCi0gICdNVUxUSVNBTVBMRV9TR0lTJzogMHg4MDlELAotICAnU0FNUExFX0FM
UEhBX1RPX01BU0tfU0dJUyc6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBIQV9UT19PTkVfU0dJUyc6
IDB4ODA5RiwKLSAgJ1NBTVBMRV9NQVNLX1NHSVMnOiAweDgwQTAsCi0gICcxUEFTU19TR0lTJzog
MHg4MEExLAotICAnMlBBU1NfMF9TR0lTJzogMHg4MEEyLAotICAnMlBBU1NfMV9TR0lTJzogMHg4
MEEzLAotICAnNFBBU1NfMF9TR0lTJzogMHg4MEE0LAotICAnNFBBU1NfMV9TR0lTJzogMHg4MEE1
LAotICAnNFBBU1NfMl9TR0lTJzogMHg4MEE2LAotICAnNFBBU1NfM19TR0lTJzogMHg4MEE3LAot
ICAnU0FNUExFX0JVRkZFUlNfU0dJUyc6IDB4ODBBOCwKLSAgJ1NBTVBMRVNfU0dJUyc6IDB4ODBB
OSwKLSAgJ1NBTVBMRV9NQVNLX1ZBTFVFX1NHSVMnOiAweDgwQUEsCi0gICdTQU1QTEVfTUFTS19J
TlZFUlRfU0dJUyc6IDB4ODBBQiwKLSAgJ1NBTVBMRV9QQVRURVJOX1NHSVMnOiAweDgwQUMsCi0g
ICdNVUxUSVNBTVBMRV9CSVRfRVhUJzogMHgyMDAwMDAwMCwKLSAgJ0VZRV9ESVNUQU5DRV9UT19Q
T0lOVF9TR0lTJzogMHg4MUYwLAotICAnT0JKRUNUX0RJU1RBTkNFX1RPX1BPSU5UX1NHSVMnOiAw
eDgxRjEsCi0gICdFWUVfRElTVEFOQ0VfVE9fTElORV9TR0lTJzogMHg4MUYyLAotICAnT0JKRUNU
X0RJU1RBTkNFX1RPX0xJTkVfU0dJUyc6IDB4ODFGMywKLSAgJ0VZRV9QT0lOVF9TR0lTJzogMHg4
MUY0LAotICAnT0JKRUNUX1BPSU5UX1NHSVMnOiAweDgxRjUsCi0gICdFWUVfTElORV9TR0lTJzog
MHg4MUY2LAotICAnT0JKRUNUX0xJTkVfU0dJUyc6IDB4ODFGNywKLSAgJ0NMQU1QX1RPX0JPUkRF
Ul9TR0lTJzogMHg4MTJELAotICAnQ0xBTVBfVE9fRURHRV9TR0lTJzogMHg4MTJGLAotICAnVEVY
VFVSRV9NSU5fTE9EX1NHSVMnOiAweDgxM0EsCi0gICdURVhUVVJFX01BWF9MT0RfU0dJUyc6IDB4
ODEzQiwKLSAgJ1RFWFRVUkVfQkFTRV9MRVZFTF9TR0lTJzogMHg4MTNDLAotICAnVEVYVFVSRV9N
QVhfTEVWRUxfU0dJUyc6IDB4ODEzRCwKLSAgJ0FTWU5DX01BUktFUl9TR0lYJzogMHg4MzI5LAot
ICAnQVNZTkNfSElTVE9HUkFNX1NHSVgnOiAweDgzMkMsCi0gICdNQVhfQVNZTkNfSElTVE9HUkFN
X1NHSVgnOiAweDgzMkQsCi0gICdBU1lOQ19URVhfSU1BR0VfU0dJWCc6IDB4ODM1QywKLSAgJ0FT
WU5DX0RSQVdfUElYRUxTX1NHSVgnOiAweDgzNUQsCi0gICdBU1lOQ19SRUFEX1BJWEVMU19TR0lY
JzogMHg4MzVFLAotICAnTUFYX0FTWU5DX1RFWF9JTUFHRV9TR0lYJzogMHg4MzVGLAotICAnTUFY
X0FTWU5DX0RSQVdfUElYRUxTX1NHSVgnOiAweDgzNjAsCi0gICdNQVhfQVNZTkNfUkVBRF9QSVhF
TFNfU0dJWCc6IDB4ODM2MSwKLSAgJ0FMUEhBX01JTl9TR0lYJzogMHg4MzIwLAotICAnQUxQSEFf
TUFYX1NHSVgnOiAweDgzMjEsCi0gICdDT05WT0xVVElPTl9ISU5UX1NHSVgnOiAweDgzMTYsCi0g
ICdERVBUSF9DT01QT05FTlQxNl9TR0lYJzogMHg4MUE1LAotICAnREVQVEhfQ09NUE9ORU5UMjRf
U0dJWCc6IDB4ODFBNiwKLSAgJ0RFUFRIX0NPTVBPTkVOVDMyX1NHSVgnOiAweDgxQTcsCi0gICdG
T0dfT0ZGU0VUX1NHSVgnOiAweDgxOTgsCi0gICdGT0dfT0ZGU0VUX1ZBTFVFX1NHSVgnOiAweDgx
OTksCi0gICdJTlRFUkxBQ0VfU0dJWCc6IDB4ODA5NCwKLSAgJ1BBQ0tfUkVTQU1QTEVfU0dJWCc6
IDB4ODQyRSwKLSAgJ1VOUEFDS19SRVNBTVBMRV9TR0lYJzogMHg4NDJGLAotICAnUkVTQU1QTEVf
REVDSU1BVEVfU0dJWCc6IDB4ODQzMCwKLSAgJ1JFU0FNUExFX1JFUExJQ0FURV9TR0lYJzogMHg4
NDMzLAotICAnUkVTQU1QTEVfWkVST19GSUxMX1NHSVgnOiAweDg0MzQsCi0gICdURVhUVVJFX0NP
TVBBUkVfU0dJWCc6IDB4ODE5QSwKLSAgJ1RFWFRVUkVfQ09NUEFSRV9PUEVSQVRPUl9TR0lYJzog
MHg4MTlCLAotICAnVEVYVFVSRV9MRVFVQUxfUl9TR0lYJzogMHg4MTlDLAotICAnVEVYVFVSRV9H
RVFVQUxfUl9TR0lYJzogMHg4MTlELAotICAnU0hBRE9XX0FNQklFTlRfU0dJWCc6IDB4ODBCRiwK
LSAgJ1RFWFRVUkVfTUFYX0NMQU1QX1NfU0dJWCc6IDB4ODM2OSwKLSAgJ1RFWFRVUkVfTUFYX0NM
QU1QX1RfU0dJWCc6IDB4ODM2QSwKLSAgJ1RFWFRVUkVfTUFYX0NMQU1QX1JfU0dJWCc6IDB4ODM2
QiwKLSAgJ1RFWFRVUkVfTVVMVElfQlVGRkVSX0hJTlRfU0dJWCc6IDB4ODEyRSwKLSAgJ1JHQl9T
SUdORURfU0dJWCc6IDB4ODVFMCwKLSAgJ1JHQkFfU0lHTkVEX1NHSVgnOiAweDg1RTEsCi0gICdB
TFBIQV9TSUdORURfU0dJWCc6IDB4ODVFMiwKLSAgJ0xVTUlOQU5DRV9TSUdORURfU0dJWCc6IDB4
ODVFMywKLSAgJ0lOVEVOU0lUWV9TSUdORURfU0dJWCc6IDB4ODVFNCwKLSAgJ0xVTUlOQU5DRV9B
TFBIQV9TSUdORURfU0dJWCc6IDB4ODVFNSwKLSAgJ1JHQjE2X1NJR05FRF9TR0lYJzogMHg4NUU2
LAotICAnUkdCQTE2X1NJR05FRF9TR0lYJzogMHg4NUU3LAotICAnQUxQSEExNl9TSUdORURfU0dJ
WCc6IDB4ODVFOCwKLSAgJ0xVTUlOQU5DRTE2X1NJR05FRF9TR0lYJzogMHg4NUU5LAotICAnSU5U
RU5TSVRZMTZfU0lHTkVEX1NHSVgnOiAweDg1RUEsCi0gICdMVU1JTkFOQ0UxNl9BTFBIQTE2X1NJ
R05FRF9TR0lYJzogMHg4NUVCLAotICAnUkdCX0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RUMs
Ci0gICdSR0JBX0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RUQsCi0gICdBTFBIQV9FWFRFTkRF
RF9SQU5HRV9TR0lYJzogMHg4NUVFLAotICAnTFVNSU5BTkNFX0VYVEVOREVEX1JBTkdFX1NHSVgn
OiAweDg1RUYsCi0gICdJTlRFTlNJVFlfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGMCwKLSAg
J0xVTUlOQU5DRV9BTFBIQV9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUYxLAotICAnUkdCMTZf
RVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGMiwKLSAgJ1JHQkExNl9FWFRFTkRFRF9SQU5HRV9T
R0lYJzogMHg4NUYzLAotICAnQUxQSEExNl9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUY0LAot
ICAnTFVNSU5BTkNFMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGNSwKLSAgJ0lOVEVOU0lU
WTE2X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjYsCi0gICdMVU1JTkFOQ0UxNl9BTFBIQTE2
X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjcsCi0gICdNSU5fTFVNSU5BTkNFX1NHSVMnOiAw
eDg1RjgsCi0gICdNQVhfTFVNSU5BTkNFX1NHSVMnOiAweDg1RjksCi0gICdNSU5fSU5URU5TSVRZ
X1NHSVMnOiAweDg1RkEsCi0gICdNQVhfSU5URU5TSVRZX1NHSVMnOiAweDg1RkIsCi0gICdQT1NU
X1RFWFRVUkVfRklMVEVSX0JJQVNfU0dJWCc6IDB4ODE3OSwKLSAgJ1BPU1RfVEVYVFVSRV9GSUxU
RVJfU0NBTEVfU0dJWCc6IDB4ODE3QSwKLSAgJ1BPU1RfVEVYVFVSRV9GSUxURVJfQklBU19SQU5H
RV9TR0lYJzogMHg4MTdCLAotICAnUE9TVF9URVhUVVJFX0ZJTFRFUl9TQ0FMRV9SQU5HRV9TR0lY
JzogMHg4MTdDLAotICAnVkVSVEVYX1BSRUNMSVBfU0dJWCc6IDB4ODNFRSwKLSAgJ1ZFUlRFWF9Q
UkVDTElQX0hJTlRfU0dJWCc6IDB4ODNFRiwKLSAgJ1ZFUlRFWF9QUkVDTElQX1NHSVgnOiAweDgz
RUUsCi0gICdWRVJURVhfUFJFQ0xJUF9ISU5UX1NHSVgnOiAweDgzRUYsCi0gICdDT0xPUl9NQVRS
SVhfU0dJJzogMHg4MEIxLAotICAnQ09MT1JfTUFUUklYX1NUQUNLX0RFUFRIX1NHSSc6IDB4ODBC
MiwKLSAgJ01BWF9DT0xPUl9NQVRSSVhfU1RBQ0tfREVQVEhfU0dJJzogMHg4MEIzLAotICAnUE9T
VF9DT0xPUl9NQVRSSVhfUkVEX1NDQUxFX1NHSSc6IDB4ODBCNCwKLSAgJ1BPU1RfQ09MT1JfTUFU
UklYX0dSRUVOX1NDQUxFX1NHSSc6IDB4ODBCNSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0JMVUVf
U0NBTEVfU0dJJzogMHg4MEI2LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQUxQSEFfU0NBTEVfU0dJ
JzogMHg4MEI3LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfUkVEX0JJQVNfU0dJJzogMHg4MEI4LAot
ICAnUE9TVF9DT0xPUl9NQVRSSVhfR1JFRU5fQklBU19TR0knOiAweDgwQjksCi0gICdQT1NUX0NP
TE9SX01BVFJJWF9CTFVFX0JJQVNfU0dJJzogMHg4MEJBLAotICAnUE9TVF9DT0xPUl9NQVRSSVhf
QUxQSEFfQklBU19TR0knOiAweDgwQkIsCi0gICdDT0xPUl9UQUJMRV9TR0knOiAweDgwRDAsCi0g
ICdQT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBEMSwKLSAgJ1BPU1RfQ09M
T1JfTUFUUklYX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBEMiwKLSAgJ1BST1hZX0NPTE9SX1RBQkxF
X1NHSSc6IDB4ODBEMywKLSAgJ1BST1hZX1BPU1RfQ09OVk9MVVRJT05fQ09MT1JfVEFCTEVfU0dJ
JzogMHg4MEQ0LAotICAnUFJPWFlfUE9TVF9DT0xPUl9NQVRSSVhfQ09MT1JfVEFCTEVfU0dJJzog
MHg4MEQ1LAotICAnQ09MT1JfVEFCTEVfU0NBTEVfU0dJJzogMHg4MEQ2LAotICAnQ09MT1JfVEFC
TEVfQklBU19TR0knOiAweDgwRDcsCi0gICdDT0xPUl9UQUJMRV9GT1JNQVRfU0dJJzogMHg4MEQ4
LAotICAnQ09MT1JfVEFCTEVfV0lEVEhfU0dJJzogMHg4MEQ5LAotICAnQ09MT1JfVEFCTEVfUkVE
X1NJWkVfU0dJJzogMHg4MERBLAotICAnQ09MT1JfVEFCTEVfR1JFRU5fU0laRV9TR0knOiAweDgw
REIsCi0gICdDT0xPUl9UQUJMRV9CTFVFX1NJWkVfU0dJJzogMHg4MERDLAotICAnQ09MT1JfVEFC
TEVfQUxQSEFfU0laRV9TR0knOiAweDgwREQsCi0gICdDT0xPUl9UQUJMRV9MVU1JTkFOQ0VfU0la
RV9TR0knOiAweDgwREUsCi0gICdDT0xPUl9UQUJMRV9JTlRFTlNJVFlfU0laRV9TR0knOiAweDgw
REYsCi0gICdURVhUVVJFX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBCQywKLSAgJ1BST1hZX1RFWFRV
UkVfQ09MT1JfVEFCTEVfU0dJJzogMHg4MEJELAotICAnVU5QQUNLX0NPTlNUQU5UX0RBVEFfU1VO
WCc6IDB4ODFENSwKLSAgJ1RFWFRVUkVfQ09OU1RBTlRfREFUQV9TVU5YJzogMHg4MUQ2LAotICAn
V1JBUF9CT1JERVJfU1VOJzogMHg4MUQ0LAotICAnR0xPQkFMX0FMUEhBX1NVTic6IDB4ODFEOSwK
LSAgJ0dMT0JBTF9BTFBIQV9GQUNUT1JfU1VOJzogMHg4MURBLAotICAnUVVBRF9NRVNIX1NVTic6
IDB4ODYxNCwKLSAgJ1RSSUFOR0xFX01FU0hfU1VOJzogMHg4NjE1LAotICAnU0xJQ0VfQUNDVU1f
U1VOJzogMHg4NUNDLAotICAnUkVTVEFSVF9TVU4nOiAweDAxLAotICAnUkVQTEFDRV9NSURETEVf
U1VOJzogMHgwMiwKLSAgJ1JFUExBQ0VfT0xERVNUX1NVTic6IDB4MDMsCi0gICdUUklBTkdMRV9M
SVNUX1NVTic6IDB4ODFENywKLSAgJ1JFUExBQ0VNRU5UX0NPREVfU1VOJzogMHg4MUQ4LAotICAn
UkVQTEFDRU1FTlRfQ09ERV9BUlJBWV9TVU4nOiAweDg1QzAsCi0gICdSRVBMQUNFTUVOVF9DT0RF
X0FSUkFZX1RZUEVfU1VOJzogMHg4NUMxLAotICAnUkVQTEFDRU1FTlRfQ09ERV9BUlJBWV9TVFJJ
REVfU1VOJzogMHg4NUMyLAotICAnUkVQTEFDRU1FTlRfQ09ERV9BUlJBWV9QT0lOVEVSX1NVTic6
IDB4ODVDMywKLSAgJ1IxVUlfVjNGX1NVTic6IDB4ODVDNCwKLSAgJ1IxVUlfQzRVQl9WM0ZfU1VO
JzogMHg4NUM1LAotICAnUjFVSV9DM0ZfVjNGX1NVTic6IDB4ODVDNiwKLSAgJ1IxVUlfTjNGX1Yz
Rl9TVU4nOiAweDg1QzcsCi0gICdSMVVJX0M0Rl9OM0ZfVjNGX1NVTic6IDB4ODVDOCwKLSAgJ1Ix
VUlfVDJGX1YzRl9TVU4nOiAweDg1QzksCi0gICdSMVVJX1QyRl9OM0ZfVjNGX1NVTic6IDB4ODVD
QSwKLSAgJ1IxVUlfVDJGX0M0Rl9OM0ZfVjNGX1NVTic6IDB4ODVDQiwKLSAgJ1BIT05HX1dJTic6
IDB4ODBFQSwKLSAgJ1BIT05HX0hJTlRfV0lOJzogMHg4MEVCLAotICAnRk9HX1NQRUNVTEFSX1RF
WFRVUkVfV0lOJzogMHg4MEVDCi19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmZDVhNDBmZTJmYjY3MzljYzFlNDJiOGU0ZDA5ZDEyYmE3ZmU5Mjc4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8q
Ci0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
LSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
LSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgotKi8KLQotc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQi
KTsKLWRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4n
KTsKLW5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NDk1NmVkNDhhYWY4YmQyYThkMzgwM2ZkN2VlNjMxMGNh
Mjg0YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0ODUgKzAsMCBA
QAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgot
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0q
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0oZnVuY3Rpb24oKSB7Ci0gIHZhciB0ZXN0SGFy
bmVzc0luaXRpYWxpemVkID0gZmFsc2U7Ci0KLSAgdmFyIGluaXROb25LaHJvbm9zRnJhbWV3b3Jr
ID0gZnVuY3Rpb24od2FpdFVudGlsRG9uZSkgewotICAgIGlmICh0ZXN0SGFybmVzc0luaXRpYWxp
emVkKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQg
PSB0cnVlOwotCi0gICAgLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2RlIC0tICovCi0KLSAgICAv
LyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgotICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5lcjsKLSAgICB9Ci0K
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7Ci0gICAgfQotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAv
LyBUaGUgV2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNvbXBhcmVzIGNvbnNvbGUgb3V0cHV0LgotICAg
ICAgLy8gQmVjYXVzZSB0aGUgb3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0cyBpcyBHUFUgZGVwZW5k
ZW50Ci0gICAgICAvLyB3ZSB0dXJuIG9mZiBjb25zb2xlIG1lc3NhZ2VzLgotICAgICAgd2luZG93
LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07Ci0gICAgICB3aW5kb3cuY29uc29sZS5lcnJv
ciA9IGZ1bmN0aW9uKCkgeyB9OwotICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRX
ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi0gICAgICAvLyBSQUYgZG9lc24n
dCB3b3JrIGluIExheW91dFRlc3RzLiBEaXNhYmxlIGl0IHNvIHRoZSB0ZXN0cyB3aWxsCi0gICAg
ICAvLyB1c2Ugc2V0VGltZW91dCBpbnN0ZWFkLgotICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRp
b25GcmFtZSA9IHVuZGVmaW5lZDsKLSAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUgPSB1bmRlZmluZWQ7Ci0gICAgfQotCi0gICAgLyogLS0gZW5kIHBsYXRmb3JtIHNwZWNp
ZmljIGNvZGUgLS0qLwotICB9Ci0KLSAgdGhpcy5pbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxE
b25lID0gZnVuY3Rpb24oKSB7Ci0gICAgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsodHJ1ZSk7Ci0g
IH0KLQotICB0aGlzLmluaXRUZXN0aW5nSGFybmVzcyA9IGZ1bmN0aW9uKCkgewotICAgIGluaXRO
b25LaHJvbm9zRnJhbWV3b3JrKGZhbHNlKTsKLSAgfQotfSgpKTsKLQotZnVuY3Rpb24gbm9uS2hy
b25vc0ZyYW1ld29ya05vdGlmeURvbmUoKSB7Ci0gIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBB
ZGQgeW91ciBjb2RlIGhlcmUuCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gIH0KLX0KLQotZnVuY3Rp
b24gcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3Moc3VjY2VzcywgbXNnKSB7Ci0gIGlmICh3aW5k
b3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLSAgICB3aW5kb3cucGFyZW50LndlYmdsVGVz
dEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3Ms
IG1zZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7Ci0g
IGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLSAgICB3aW5kb3cucGFyZW50
LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1l
KTsKLSAgfQotICBpZiAod2luZG93Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKSB7Ci0g
ICAgd2luZG93Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCk7Ci0gIH0KLX0KLQotZnVu
Y3Rpb24gZGVzY3JpcHRpb24obXNnKQotewotICAgIGluaXRUZXN0aW5nSGFybmVzcygpOwotICAg
IGlmIChtc2cgPT09IHVuZGVmaW5lZCkgewotICAgICAgbXNnID0gZG9jdW1lbnQudGl0bGU7Ci0g
ICAgfQotICAgIC8vIEZvciBNU0lFIDYgY29tcGF0aWJpbGl0eQotICAgIHZhciBzcGFuID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIHNwYW4uaW5uZXJIVE1MID0gJzxwPicg
KyBtc2cgKyAnPC9wPjxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiPHNw
YW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIjxzcGFu
IGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPiIuPC9wPic7Ci0gICAgdmFyIGRlc2Ny
aXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIik7Ci0gICAgaWYg
KGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpCi0gICAgICAgIGRlc2NyaXB0aW9uLnJlcGxhY2VDaGls
ZChzcGFuLCBkZXNjcmlwdGlvbi5maXJzdENoaWxkKTsKLSAgICBlbHNlCi0gICAgICAgIGRlc2Ny
aXB0aW9uLmFwcGVuZENoaWxkKHNwYW4pOwotfQotCi1mdW5jdGlvbiBkZWJ1Zyhtc2cpCi17Ci0g
ICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChzcGFuKTsgLy8gaW5zZXJ0
IGl0IGZpcnN0IHNvIFhIVE1MIGtub3dzIHRoZSBuYW1lc3BhY2UKLSAgICBzcGFuLmlubmVySFRN
TCA9IG1zZyArICc8YnIgLz4nOwotfQotCi1mdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQpCi17Ci0g
ICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICImbHQ7
Iik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQYXNzZWQobXNnKQotewotICAgIHJlcG9ydFRlc3RSZXN1
bHRzVG9IYXJuZXNzKHRydWUsIG1zZyk7Ci0gICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNzPSJw
YXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpCi17Ci0gICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5l
c3MoZmFsc2UsIG1zZyk7Ci0gICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNzPSJmYWlsIj5GQUlM
PC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKLX0KLQotZnVuY3Rpb24g
YXJlQXJyYXlzRXF1YWwoX2EsIF9iKQotewotICAgIHRyeSB7Ci0gICAgICAgIGlmIChfYS5sZW5n
dGggIT09IF9iLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBfYS5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIGlmIChfYVtpXSAh
PT0gX2JbaV0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gY2F0Y2ggKGV4
KSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LWZ1bmN0aW9uIGlzTWludXNaZXJvKG4pCi17Ci0gICAgLy8gdGhlIG9ubHkgd2F5IHRvIHRlbGwg
MCBmcm9tIC0wIGluIEpTIGlzIHRoZSBmYWN0IHRoYXQgMS8tMCBpcwotICAgIC8vIC1JbmZpbml0
eSBpbnN0ZWFkIG9mIEluZmluaXR5Ci0gICAgcmV0dXJuIG4gPT09IDAgJiYgMS9uIDwgMDsKLX0K
LQotZnVuY3Rpb24gaXNSZXN1bHRDb3JyZWN0KF9hY3R1YWwsIF9leHBlY3RlZCkKLXsKLSAgICBp
ZiAoX2V4cGVjdGVkID09PSAwKQotICAgICAgICByZXR1cm4gX2FjdHVhbCA9PT0gX2V4cGVjdGVk
ICYmICgxL19hY3R1YWwpID09PSAoMS9fZXhwZWN0ZWQpOwotICAgIGlmIChfYWN0dWFsID09PSBf
ZXhwZWN0ZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh0eXBlb2YoX2V4cGVjdGVk
KSA9PSAibnVtYmVyIiAmJiBpc05hTihfZXhwZWN0ZWQpKQotICAgICAgICByZXR1cm4gdHlwZW9m
KF9hY3R1YWwpID09ICJudW1iZXIiICYmIGlzTmFOKF9hY3R1YWwpOwotICAgIGlmIChPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoX2V4cGVjdGVkKSA9PSBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwoW10pKQotICAgICAgICByZXR1cm4gYXJlQXJyYXlzRXF1YWwoX2FjdHVhbCwg
X2V4cGVjdGVkKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWZ1bmN0aW9uIHN0cmluZ2lmeSh2
KQotewotICAgIGlmICh2ID09PSAwICYmIDEvdiA8IDApCi0gICAgICAgIHJldHVybiAiLTAiOwot
ICAgIGVsc2UgcmV0dXJuICIiICsgdjsKLX0KLQotZnVuY3Rpb24gZXZhbEFuZExvZyhfYSkKLXsK
LSAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKLSAgICBkZWJ1ZygiV0FSTjogdHJ5QW5kTG9n
KCkgZXhwZWN0cyBhIHN0cmluZyBhcmd1bWVudCIpOwotCi0gIC8vIExvZyBmaXJzdCBpbiBjYXNl
IHRoaW5ncyBnbyBob3JyaWJseSB3cm9uZyBvciB0aGlzIGNhdXNlcyBhIHN5bmMgZXZlbnQuCi0g
IGRlYnVnKF9hKTsKLQotICB2YXIgX2F2OwotICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsK
LSAgfSBjYXRjaCAoZSkgewotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAi
ICsgZSk7Ci0gIH0KLSAgcmV0dXJuIF9hdjsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9i
LCBxdWlldCkKLXsKLSAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAh
PSAic3RyaW5nIikKLSAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJp
bmcgYXJndW1lbnRzIik7Ci0gICAgdmFyIGV4Y2VwdGlvbjsKLSAgICB2YXIgX2F2OwotICAgIHRy
eSB7Ci0gICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ZXhjZXB0aW9uID0gZTsKLSAgICB9Ci0gICAgdmFyIF9idiA9IGV2YWwoX2IpOwotCi0gICAgaWYg
KGV4Y2VwdGlvbikKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYg
KyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gICAgZWxzZSBpZiAoaXNSZXN1
bHRDb3JyZWN0KF9hdiwgX2J2KSkgewotICAgICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgX2IpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlm
ICh0eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKLSAg
ICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIiAo
b2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiAr
IHR5cGVvZiBfYXYgKyAiKS4iKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkTm90QmUoX2EsIF9iLCBx
dWlldCkKLXsKLSAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAi
c3RyaW5nIikKLSAgICAgICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhwZWN0cyBzdHJp
bmcgYXJndW1lbnRzIik7Ci0gICAgdmFyIGV4Y2VwdGlvbjsKLSAgICB2YXIgX2F2OwotICAgIHRy
eSB7Ci0gICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ZXhjZXB0aW9uID0gZTsKLSAgICB9Ci0gICAgdmFyIF9idiA9IGV2YWwoX2IpOwotCi0gICAgaWYg
KGV4Y2VwdGlvbikKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsg
X2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICAgIGVsc2UgaWYgKCFp
c1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7Ci0gICAgICAgIGlmICghcXVpZXQpIHsKLSAgICAg
ICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOwotICAgICAgICB9Ci0gICAg
fSBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiAr
ICIuIik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlVHJ1ZShfYSkgeyBzaG91bGRCZShfYSwgInRy
dWUiKTsgfQotZnVuY3Rpb24gc2hvdWxkQmVGYWxzZShfYSkgeyBzaG91bGRCZShfYSwgImZhbHNl
Iik7IH0KLWZ1bmN0aW9uIHNob3VsZEJlTmFOKF9hKSB7IHNob3VsZEJlKF9hLCAiTmFOIik7IH0K
LWZ1bmN0aW9uIHNob3VsZEJlTnVsbChfYSkgeyBzaG91bGRCZShfYSwgIm51bGwiKTsgfQotCi1m
dW5jdGlvbiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYSwgYikKLXsKLSAgdmFyIHVuZXZhbGVkU3Ry
aW5nID0gJyInICsgYi5yZXBsYWNlKC8iL2csICJcIiIpICsgJyInOwotICBzaG91bGRCZShhLCB1
bmV2YWxlZFN0cmluZyk7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEV2YWx1YXRlVG8oYWN0dWFsLCBl
eHBlY3RlZCkgewotICAvLyBBIGdlbmVyYWwtcHVycG9zZSBjb21wYXJhdG9yLiAgJ2FjdHVhbCcg
c2hvdWxkIGJlIGEgc3RyaW5nIHRvIGJlCi0gIC8vIGV2YWx1YXRlZCwgYXMgZm9yIHNob3VsZEJl
KCkuICdleHBlY3RlZCcgbWF5IGJlIGFueSB0eXBlIGFuZCB3aWxsIGJlCi0gIC8vIHVzZWQgd2l0
aG91dCBiZWluZyBldmFsJ2VkLgotICBpZiAoZXhwZWN0ZWQgPT0gbnVsbCkgewotICAgIC8vIERv
IHRoaXMgYmVmb3JlIHRoZSBvYmplY3QgdGVzdCwgc2luY2UgbnVsbCBpcyBvZiB0eXBlICdvYmpl
Y3QnLgotICAgIHNob3VsZEJlTnVsbChhY3R1YWwpOwotICB9IGVsc2UgaWYgKHR5cGVvZiBleHBl
Y3RlZCA9PSAidW5kZWZpbmVkIikgewotICAgIHNob3VsZEJlVW5kZWZpbmVkKGFjdHVhbCk7Ci0g
IH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJmdW5jdGlvbiIpIHsKLSAgICAvLyBBbGwg
dGhpcyBmdXNzIGlzIHRvIGF2b2lkIHRoZSBzdHJpbmctYXJnIHdhcm5pbmcgZnJvbSBzaG91bGRC
ZSgpLgotICAgIHRyeSB7Ci0gICAgICBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKLSAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJFdmFsdWF0aW5nICIgKyBhY3R1YWwgKyAi
OiBUaHJldyBleGNlcHRpb24gIiArIGUpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBzaG91
bGRCZSgiJyIgKyBhY3R1YWxWYWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIiKSArICIn
IiwKLSAgICAgICAgICAgICAiJyIgKyBleHBlY3RlZC50b1N0cmluZygpLnJlcGxhY2UoL1xuL2cs
ICIiKSArICInIik7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJvYmplY3QiKSB7
Ci0gICAgc2hvdWxkQmVUcnVlKGFjdHVhbCArICIgPT0gJyIgKyBleHBlY3RlZCArICInIik7Ci0g
IH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJzdHJpbmciKSB7Ci0gICAgc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCk7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJib29s
ZWFuIikgewotICAgIHNob3VsZEJlKCJ0eXBlb2YgIiArIGFjdHVhbCwgIidib29sZWFuJyIpOwot
ICAgIGlmIChleHBlY3RlZCkKLSAgICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwpOwotICAgIGVsc2UK
LSAgICAgIHNob3VsZEJlRmFsc2UoYWN0dWFsKTsKLSAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0
ZWQgPT0gIm51bWJlciIpIHsKLSAgICBzaG91bGRCZShhY3R1YWwsIHN0cmluZ2lmeShleHBlY3Rl
ZCkpOwotICB9IGVsc2UgewotICAgIGRlYnVnKGV4cGVjdGVkICsgIiBpcyB1bmtub3duIHR5cGUg
IiArIHR5cGVvZiBleHBlY3RlZCk7Ci0gICAgc2hvdWxkQmVUcnVlKGFjdHVhbCwgIiciICArZXhw
ZWN0ZWQudG9TdHJpbmcoKSArICInIik7Ci0gIH0KLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVOb25a
ZXJvKF9hKQotewotICB2YXIgZXhjZXB0aW9uOwotICB2YXIgX2F2OwotICB0cnkgewotICAgICBf
YXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBlOwotICB9
Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9u
LXplcm8uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgZWxzZSBpZiAoX2F2ICE9
IDApCi0gICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9uLXplcm8uIik7Ci0gIGVsc2UKLSAgICB0
ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFdhcyAiICsgX2F2KTsKLX0KLQot
ZnVuY3Rpb24gc2hvdWxkQmVOb25OdWxsKF9hKQotewotICB2YXIgZXhjZXB0aW9uOwotICB2YXIg
X2F2OwotICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewotICAg
ICBleGNlcHRpb24gPSBlOwotICB9Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVk
KF9hICsgIiBzaG91bGQgYmUgbm9uLW51bGwuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9u
KTsKLSAgZWxzZSBpZiAoX2F2ICE9IG51bGwpCi0gICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9u
LW51bGwuIik7Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLW51
bGwuIFdhcyAiICsgX2F2KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVVbmRlZmluZWQoX2EpCi17
Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwo
X2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0KLQotICBpZiAo
ZXhjZXB0aW9uKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFRo
cmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAi
dW5kZWZpbmVkIikKLSAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyB1bmRlZmluZWQuIik7Ci0gIGVs
c2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgIiArIF9h
dik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlRGVmaW5lZChfYSkKLXsKLSAgdmFyIGV4Y2VwdGlv
bjsKLSAgdmFyIF9hdjsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2gg
KGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIGlmIChleGNlcHRpb24pCi0gICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uKTsKLSAgZWxzZSBpZiAoX2F2ICE9PSB1bmRlZmluZWQpCi0gICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgZGVmaW5lZC4iKTsKLSAgZWxzZQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSBkZWZpbmVkLiBXYXMgIiArIF9hdik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlR3Jl
YXRlclRoYW5PckVxdWFsKF9hLCBfYikgewotICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIg
fHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQotICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVH
cmVhdGVyVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7Ci0KLSAgICB2YXIg
ZXhjZXB0aW9uOwotICAgIHZhciBfYXY7Ci0gICAgdHJ5IHsKLSAgICAgICAgX2F2ID0gZXZhbChf
YSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBleGNlcHRpb24gPSBlOwotICAgIH0KLSAg
ICB2YXIgX2J2ID0gZXZhbChfYik7Ci0KLSAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOwotICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIgfHwg
X2F2IDwgX2J2KQotICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9i
ICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Ci0g
ICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsgX2IpOwotfQotCi1m
dW5jdGlvbiBleHBlY3RUcnVlKHYsIG1zZykgewotICBpZiAodikgewotICAgIHRlc3RQYXNzZWQo
bXNnKTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0gIH0KLX0KLQotZnVuY3Rp
b24gc2hvdWxkVGhyb3coX2EsIF9lKQotewotICB2YXIgZXhjZXB0aW9uOwotICB2YXIgX2F2Owot
ICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewotICAgICBleGNl
cHRpb24gPSBlOwotICB9Ci0KLSAgdmFyIF9ldjsKLSAgaWYgKF9lKQotICAgICAgX2V2ID0gIGV2
YWwoX2UpOwotCi0gIGlmIChleGNlcHRpb24pIHsKLSAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRl
ZmluZWQiIHx8IGV4Y2VwdGlvbiA9PSBfZXYpCi0gICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJl
dyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Ci0gICAgZWxzZQotICAgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8g
ImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24g
KyAiLiIpOwotICB9IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCi0gICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQi
ID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKLSAgZWxzZQot
ICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5k
ZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsK
LX0KLQotZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkgewotCXZhciBleGNlcHRpb247
Ci0JdmFyIF9hdjsKLQl0cnkgewotCQlfYXYgPSBldmFsKF9hKTsKLQl9IGNhdGNoIChlKSB7Ci0J
CWV4Y2VwdGlvbiA9IGU7Ci0JfQotCi0JdmFyIF90eXBldiA9IGV2YWwoX3R5cGUpOwotCi0JaWYg
KF9hdiBpbnN0YW5jZW9mIF90eXBldikgewotCQl0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0
YW5jZSBvZiAiICsgX3R5cGUpOwotCX0gZWxzZSB7Ci0JCXRlc3RGYWlsZWQoX2EgKyAiIGlzIG5v
dCBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOwotCX0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0TXNn
KGFzc2VydGlvbiwgbXNnKSB7Ci0gICAgaWYgKGFzc2VydGlvbikgewotICAgICAgICB0ZXN0UGFz
c2VkKG1zZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxlZChtc2cpOwotICAgIH0K
LX0KLQotZnVuY3Rpb24gZ2MoKSB7Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpIHsKLSAg
ICAgICAgd2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAod2luZG93Lm9wZXJhICYmIHdpbmRvdy5vcGVyYS5jb2xsZWN0KSB7Ci0g
ICAgICAgIHdpbmRvdy5vcGVyYS5jb2xsZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICB0cnkgewotICAgICAgICB3aW5kb3cuUXVlcnlJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRl
cmZhY2VzLm5zSUludGVyZmFjZVJlcXVlc3RvcikKLSAgICAgICAgICAgICAgLmdldEludGVyZmFj
ZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJRE9NV2luZG93VXRpbHMpCi0gICAgICAgICAgICAg
IC5nYXJiYWdlQ29sbGVjdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfSBjYXRjaChlKSB7fQot
Ci0gICAgZnVuY3Rpb24gZ2NSZWMobikgewotICAgICAgICBpZiAobiA8IDEpCi0gICAgICAgICAg
ICByZXR1cm4ge307Ci0gICAgICAgIHZhciB0ZW1wID0ge2k6ICJhYiIgKyBpICsgKGkgLyAxMDAw
MDApfTsKLSAgICAgICAgdGVtcCArPSAiZm9vIjsKLSAgICAgICAgZ2NSZWMobi0xKTsKLSAgICB9
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCi0gICAgICAgIGdjUmVjKDEwKTsK
LX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKLSAgdmFyIGVwaWxvZ3VlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Ci0K
LSAgdmFyIGJhc2VQYXRoID0gIiI7Ci0gIHZhciBleHBlY3RlZEJhc2UgPSAianMtdGVzdC1wcmUu
anMiOwotICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3Jp
cHQnKTsKLSAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2NyaXB0c1tpXTsgaSsr
KSB7Ci0gICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7Ci0gICAgdmFyIGwgPSBzcmMubGVuZ3RoOwot
ICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9PSBleHBlY3RlZEJh
c2UpIHsKLSAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhwZWN0ZWRCYXNlLmxl
bmd0aCk7Ci0gICAgICBicmVhazsKLSAgICB9Ci0gIH0KLSAgZXBpbG9ndWUuc3JjID0gYmFzZVBh
dGggKyAianMtdGVzdC1wb3N0LmpzIjsKLSAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGls
b2d1ZSk7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYxMjE0N2NhNDMyODk1NDY4YWEyNzQ5ZTRjYTQ0MzZjY2VlZTg1YWIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0ucGFzcyB7
Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgY29sb3I6IGdyZWVuOwotfQotLmZhaWwgewot
ICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgIGNvbG9yOiByZWQ7Ci19Ci0jY29uc29sZSB7Ci0g
ICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwotICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L3Jlc291cmNlcy93ZWJnbC10ZXN0LWhhcm5lc3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRjZDllZWM4NGMwZjhhYzhkNDFkOTEyZjJjNjY0ODg4ZGNlNGFiOTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTg0ICswLDAgQEAKLS8qCi0q
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgotKi8KLQotLy8gVGhpcyBpcyBhIHRlc3QgaGFybmVzcyBmb3IgcnVubmlu
ZyBqYXZhc2NyaXB0IHRlc3RzIGluIHRoZSBicm93c2VyLgotLy8gVGhlIG9ubHkgaWRlbnRpZmll
ciBleHBvc2VkIGJ5IHRoaXMgaGFybmVzcyBpcyBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLgotLy8K
LS8vIFRvIHVzZSBpdCBtYWtlIGFuIEhUTUwgcGFnZSB3aXRoIGFuIGlmcmFtZS4gVGhlbiBjYWxs
IHRoZSBoYXJuZXNzIGxpa2UgdGhpcwotLy8KLS8vICAgIGZ1bmN0aW9uIHJlcG9ydFJlc3VsdHMo
dHlwZSwgbXNnLCBzdWNjZXNzKSB7Ci0vLyAgICAgIC4uLgotLy8gICAgICByZXR1cm4gdHJ1ZTsK
LS8vICAgIH0KLS8vCi0vLyAgICB2YXIgZmlsZUxpc3RVUkwgPSAnMDBfdGVzdF9saXN0LnR4dCc7
Ci0vLyAgICB2YXIgdGVzdEhhcm5lc3MgPSBuZXcgV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0
SGFybmVzcygKLS8vICAgICAgICBpZnJhbWUsCi0vLyAgICAgICAgZmlsZUxpc3RVUkwsCi0vLyAg
ICAgICAgcmVwb3J0UmVzdWx0cywKLS8vICAgICAgICBvcHRpb25zKTsKLS8vCi0vLyBUaGUgaGFy
bmVzcyB3aWxsIGxvYWQgdGhlIGZpbGVMaXN0VVJMIGFuZCBwYXJzZSBpdCBmb3IgdGhlIFVSTHMs
IG9uZSBVUkwKLS8vIHBlciBsaW5lIHByZWNlZGVkIGJ5IG9wdGlvbnMsIHNlZSBiZWxvdy4gVVJM
cyBzaG91bGQgYmUgb24gdGhlIHNhbWUgZG9tYWluCi0vLyBhbmQgYXQgdGhlICBzYW1lIGZvbGRl
ciBsZXZlbCBvciBiZWxvdyB0aGUgbWFpbiBodG1sIGZpbGUuICBJZiBhbnkgVVJMIGVuZHMKLS8v
IGluIC50eHQgaXQgd2lsbCBiZSBwYXJzZWQgYXMgd2VsbCBzbyB5b3UgY2FuIG5lc3QgLnR4dCBm
aWxlcy4gVVJMcyBpbnNpZGUgYQotLy8gLnR4dCBmaWxlIHNob3VsZCBiZSByZWxhdGl2ZSB0byB0
aGF0IHRleHQgZmlsZS4KLS8vCi0vLyBEdXJpbmcgc3RhcnR1cCwgZm9yIGVhY2ggcGFnZSBmb3Vu
ZCB0aGUgcmVwb3J0RnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aAotLy8gV2ViR0xUZXN0SGFy
bmVzc01vZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRUeXBlLkFERF9QQUdFIGFuZCBtc2cgd2lsbCBi
ZQotLy8gdGhlIFVSTCBvZiB0aGUgdGVzdC4KLS8vCi0vLyBFYWNoIHRlc3QgaXMgcmVxdWlyZWQg
dG8gY2FsbCB0ZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzLiBUaGlzIGlzIG1vc3QgZWFzaWx5Ci0v
LyBhY2NvbXBsaXNoZWQgYnkgc3RvcmluZyB0aGF0IHZhbHVlIG9uIHRoZSBtYWluIHdpbmRvdyB3
aXRoCi0vLwotLy8gICAgIHdpbmRvdy53ZWJnbFRlc3RIYXJuZXNzID0gdGVzdEhhcm5lc3MKLS8v
Ci0vLyBhbmQgdGhlbiBhZGRpbmcgdGhlc2UgdG8gZnVuY3Rpb25zIHRvIHlvdXIgdGVzdHMuCi0v
LwotLy8gICAgIGZ1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1z
ZykgewotLy8gICAgICAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgewotLy8g
ICAgICAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyhzdWNj
ZXNzLCBtc2cpOwotLy8gICAgICAgfQotLy8gICAgIH0KLS8vCi0vLyAgICAgZnVuY3Rpb24gbm90
aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7Ci0vLyAgICAgICBpZiAod2luZG93LnBhcmVudC53ZWJn
bFRlc3RIYXJuZXNzKSB7Ci0vLyAgICAgICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVz
cy5ub3RpZnlGaW5pc2hlZCgpOwotLy8gICAgICAgfQotLy8gICAgIH0KLS8vCi0vLyBUaGlzIHdh
eSB5b3VyIHRlc3RzIHdpbGwgc3RpbGwgcnVuIHdpdGhvdXQgdGhlIGhhcm5lc3MgYW5kIHlvdSBj
YW4gdXNlCi0vLyBhbnkgdGVzdGluZyBmcmFtZXdvcmsgeW91IHdhbnQuCi0vLwotLy8gRWFjaCB0
ZXN0IHNob3VsZCBjYWxsIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzIHdpdGggdHJ1ZSBmb3Ig
c3VjY2VzcyBpZiBpdAotLy8gc3VjY2VlZGVkIGFuZCBmYWxzZSBpZiBpdCBmYWlsIGZvbGxvd2Vk
IGFuZCBhbnkgbWVzc2FnZSBpdCB3YW50cyB0bwotLy8gYXNzb2NpYXRlIHdpdGggdGhlIHRlc3Qu
IElmIHlvdXIgdGVzdGluZyBmcmFtZXdvcmsgc3VwcG9ydHMgY2hlY2tpbmcgZm9yCi0vLyB0aW1l
b3V0IHlvdSBjYW4gY2FsbCBpdCB3aXRoIHN1Y2Nlc3MgZXF1YWwgdG8gdW5kZWZpbmVkIGluIHRo
YXQgY2FzZS4KLS8vCi0vLyBUbyBydW4gdGhlIHRlc3RzLCBjYWxsIHRlc3RIYXJuZXNzLnJ1blRl
c3RzKG9wdGlvbnMpOwotLy8KLS8vIEZvciBlYWNoIHRlc3QgcnVuLCBiZWZvcmUgdGhlIHBhZ2Ug
aXMgbG9hZGVkIHRoZSByZXBvcnRGdW5jdGlvbiB3aWxsIGJlCi0vLyBjYWxsZWQgd2l0aCBXZWJH
TFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuU1RBUlRfUEFHRSBhbmQg
bXNnCi0vLyB3aWxsIGJlIHRoZSBVUkwgb2YgdGhlIHRlc3QuIFlvdSBtYXkgcmV0dXJuIGZhbHNl
IGlmIHlvdSB3YW50IHRoZSB0ZXN0IHRvIGJlCi0vLyBza2lwcGVkLgotLy8KLS8vIEZvciBlYWNo
IHRlc3QgY29tcGxldGVkIHRoZSByZXBvcnRGdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoCi0v
LyB3aXRoIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5URVNU
X1JFU1VMVCwKLS8vIHN1Y2Nlc3MgPSB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG9uIGZhaWx1cmUs
IHVuZGVmaW5lZCBvbiB0aW1lb3V0Ci0vLyBhbmQgbXNnIGlzIGFueSBtZXNzYWdlIHRoZSB0ZXN0
IGNob29zZSB0byBwYXNzIG9uLgotLy8KLS8vIFdoZW4gYWxsIHRoZSB0ZXN0cyBvbiB0aGUgcGFn
ZSBoYXZlIGZpbmlzaGVkIHlvdXIgcGFnZSBtdXN0IGNhbGwKLS8vIG5vdGlmeUZpbmlzaGVkVG9I
YXJuZXNzLiAgSWYgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MgaXMgbm90IGNhbGxlZAotLy8gdGhl
IGhhcm5lc3Mgd2lsbCBhc3N1bWUgdGhlIHRlc3QgdGltZWQgb3V0LgotLy8KLS8vIFdoZW4gYWxs
IHRoZSB0ZXN0cyBvbiBhIHBhZ2UgaGF2ZSBmaW5pc2hlZCBPUiB0aGUgcGFnZSBhcyB0aW1lZCBv
dXQgdGhlCi0vLyByZXBvcnRGdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoCi0vLyBXZWJHTFRl
c3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIX1BBR0UKLS8vIHdo
ZXJlIHN1Y2Nlc3MgPSB0cnVlIGlmIHRoZSBwYWdlIGhhcyBjb21wbGV0ZWQgb3IgdW5kZWZpbmVk
IGlmIHRoZSBwYWdlIHRpbWVkCi0vLyBvdXQuCi0vLwotLy8gRmluYWxseSwgd2hlbiBhbGwgdGhl
IHRlc3RzIGhhdmUgY29tcGxldGVkIHRoZSByZXBvcnRGdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAot
Ly8gd2l0aCBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklO
SVNIRURfQUxMX1RFU1RTLgotLy8KLS8vIEhhcm5lc3MgT3B0aW9ucwotLy8KLS8vIFRoZXNlIGFy
ZSBwYXNzZWQgaW4gdG8gdGhlIFRlc3RIYXJuZXNzIGFzIGEgSmF2YVNjcmlwdCBvYmplY3QKLS8v
Ci0vLyB2ZXJzaW9uOiAocmVxdWlyZWQhKQotLy8KLS8vICAgICBTcGVjaWZpZXMgYSB2ZXJzaW9u
IHVzZWQgdG8gZmlsdGVyIHRlc3RzLiBUZXN0cyBtYXJrZWQgYXMgcmVxdWlyaW5nCi0vLyAgICAg
YSB2ZXJzaW9uIGdyZWF0ZXIgdGhhbiB0aGlzIHZlcnNpb24gd2lsbCBub3QgYmUgaW5jbHVkZWQu
Ci0vLwotLy8gICAgIGV4YW1wbGU6IG5ldyBUZXN0SGFybmVzcyguLi4uLCB7dmVyc2lvbjogIjMu
MS4yIn0pOwotLy8KLS8vIG1pblZlcnNpb246Ci0vLwotLy8gICAgIFNwZWNpZmllcyB0aGUgbWlu
aW11bSB2ZXJzaW9uIGEgdGVzdCBtdXN0IHJlcXVpcmUgdG8gYmUgaW5jbHVkZWQuCi0vLyAgICAg
VGhpcyBiYXNpY2FsbHkgZmxpcHMgdGhlIGZpbHRlciBzbyB0aGF0IG9ubHkgdGVzdHMgbWFya2Vk
IHdpdGgKLS8vICAgICAtLW1pbi12ZXJzaW9uIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUg
YXQgdGhpcyBtaW5WZXJzaW9uIG9yCi0vLyAgICAgZ3JlYXRlci4KLS8vCi0vLyAgICAgZXhhbXBs
ZTogbmV3IFRlc3RIYXJuZXNzKC4uLi4sIHttaW5WZXJzaW9uOiAiMi4zLjEifSk7Ci0vLwotLy8g
ZmFzdDoKLS8vCi0vLyAgICAgU3BlY2lmaWVzIHRvIHNraXAgYW55IHRlc3RzIG1hcmtlZCBhcyBz
bG93LgotLy8KLS8vICAgICBleGFtcGxlOiBuZXcgVGVzdEhhcm5lc3MoLi4uLCB7ZmFzdDogdHJ1
ZX0pOwotLy8KLS8vIFRlc3QgT3B0aW9uczoKLS8vCi0vLyBBbnkgdGVzdCBVUkwgb3IgLnR4dCBm
aWxlIGNhbiBiZSBwcmVmaXhlZCBieSB0aGUgZm9sbG93aW5nIG9wdGlvbnMKLS8vCi0vLyBtaW4t
dmVyc2lvbjoKLS8vCi0vLyAgICAgU2V0cyB0aGUgbWluaW11bSB2ZXJzaW9uIHJlcXVpcmVzIHRv
IGluY2x1ZGUgdGhpcyB0ZXN0LiBBIHZlcnNpb24gaXMKLS8vICAgICBwYXNzZWQgaW50byB0aGUg
aGFybmVzcyBvcHRpb25zLiBBbnkgdGVzdCBtYXJrZWQgYXMgcmVxdWlyaW5nIGEKLS8vICAgICBt
aW4tdmVyc2lvbiBncmVhdGVyIHRoYW4gdGhlIHZlcnNpb24gcGFzc2VkIHRvIHRoZSBoYXJuZXNz
IGlzIHNraXBwZWQuCi0vLyAgICAgVGhpcyBhbGxvd3MgeW91IHRvIGFkZCBuZXcgdGVzdHMgdG8g
YSBzdWl0ZSBvZiB0ZXN0cyBmb3IgYSBmdXR1cmUKLS8vICAgICB2ZXJzaW9uIG9mIHRoZSBzdWl0
ZSB3aXRob3V0IGluY2x1ZGluZyB0aGUgdGVzdCBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLgotLy8g
ICAgIElmIG5vIC1taW4tdmVyc2lvbiBpcyBzcGVjaWZpZWQgaXQgaXMgaW5oZXJpaXRlZCBmcm9t
IHRoZSAudHh0IGZpbGUKLS8vICAgICBpbmNsdWRpbmcgaXQuIFRoZSBkZWZhdWx0IGlzIDEuMC4w
Ci0vLwotLy8gICAgIGV4YW1wbGU6ICAtLW1pbi12ZXJzaW9uIDIuMS4zIHNvbWV0ZXN0Lmh0bWwK
LS8vCi0vLyBzbG93OgotLy8KLS8vICAgICBNYXJrcyBhIHRlc3QgYXMgc2xvdy4gU2xvdyB0ZXN0
cyBjYW4gYmUgc2tpcHBlZCBieSBwYXNzaW5nIGZhc3RPbmx5OiB0cnVlCi0vLyAgICAgdG8gdGhl
IFRlc3RIYXJuZXNzLiBPZiBjb3Vyc2UgeW91IG5lZWQgdG8gcGFzcyBhbGwgdGVzdHMgYnV0IHNv
bWV0aW1lcwotLy8gICAgIHlvdSdkIGxpa2UgdG8gdGVzdCBxdWlja2x5IGFuZCBydW4gb25seSB0
aGUgZmFzdCBzdWJzZXQgb2YgdGVzdHMuCi0vLwotLy8gICAgIGV4YW1wbGU6ICAtLXNsb3cgc29t
ZS10ZXN0LXRoYXQtdGFrZXMtMi1taW5zLmh0bWwKLS8vCi0KLVdlYkdMVGVzdEhhcm5lc3NNb2R1
bGUgPSBmdW5jdGlvbigpIHsKLQotLyoqCi0gKiBXcmFwcGVkIGxvZ2dpbmcgZnVuY3Rpb24uCi0g
Ki8KLXZhciBsb2cgPSBmdW5jdGlvbihtc2cpIHsKLSAgaWYgKHdpbmRvdy5jb25zb2xlICYmIHdp
bmRvdy5jb25zb2xlLmxvZykgewotICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOwotICB9Ci19
OwotCi0vKioKLSAqIExvYWRzIHRleHQgZnJvbSBhbiBleHRlcm5hbCBmaWxlLiBUaGlzIGZ1bmN0
aW9uIGlzIHN5bmNocm9ub3VzLgotICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgdXJsIG9mIHRo
ZSBleHRlcm5hbCBmaWxlLgotICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgc3RyaW5nKTogdm9p
ZH0gY2FsbGJhY2sgdGhhdCBpcyBzZW50IGEgYm9vbCBmb3IKLSAqICAgICBzdWNjZXNzIGFuZCB0
aGUgc3RyaW5nLgotICovCi12YXIgbG9hZFRleHRGaWxlQXN5bmNocm9ub3VzID0gZnVuY3Rpb24o
dXJsLCBjYWxsYmFjaykgewotICBsb2cgKCJsb2FkaW5nOiAiICsgdXJsKTsKLSAgdmFyIGVycm9y
ID0gJ2xvYWRUZXh0RmlsZVN5bmNocm9ub3VzIGZhaWxlZCB0byBsb2FkIHVybCAiJyArIHVybCAr
ICciJzsKLSAgdmFyIHJlcXVlc3Q7Ci0gIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpIHsKLSAg
ICByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgaWYgKHJlcXVlc3Qub3ZlcnJp
ZGVNaW1lVHlwZSkgewotICAgICAgcmVxdWVzdC5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWlu
Jyk7Ci0gICAgfQotICB9IGVsc2UgewotICAgIHRocm93ICdYTUxIdHRwUmVxdWVzdCBpcyBkaXNh
YmxlZCc7Ci0gIH0KLSAgdHJ5IHsKLSAgICByZXF1ZXN0Lm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7
Ci0gICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKLSAgICAgIGlm
IChyZXF1ZXN0LnJlYWR5U3RhdGUgPT0gNCkgewotICAgICAgICB2YXIgdGV4dCA9ICcnOwotICAg
ICAgICAvLyBIVFRQIHJlcG9ydHMgc3VjY2VzcyB3aXRoIGEgMjAwIHN0YXR1cy4gVGhlIGZpbGUg
cHJvdG9jb2wgcmVwb3J0cwotICAgICAgICAvLyBzdWNjZXNzIHdpdGggemVyby4gSFRUUCBkb2Vz
IG5vdCB1c2UgemVybyBhcyBhIHN0YXR1cyBjb2RlICh0aGV5Ci0gICAgICAgIC8vIHN0YXJ0IGF0
IDEwMCkuCi0gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL0VuL1VzaW5n
X1hNTEh0dHBSZXF1ZXN0Ci0gICAgICAgIHZhciBzdWNjZXNzID0gcmVxdWVzdC5zdGF0dXMgPT0g
MjAwIHx8IHJlcXVlc3Quc3RhdHVzID09IDA7Ci0gICAgICAgIGlmIChzdWNjZXNzKSB7Ci0gICAg
ICAgICAgdGV4dCA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwotICAgICAgICB9Ci0gICAgICAgIGxv
ZygibG9hZGVkOiAiICsgdXJsKTsKLSAgICAgICAgY2FsbGJhY2soc3VjY2VzcywgdGV4dCk7Ci0g
ICAgICB9Ci0gICAgfTsKLSAgICByZXF1ZXN0LnNlbmQobnVsbCk7Ci0gIH0gY2F0Y2ggKGUpIHsK
LSAgICBsb2coImZhaWxlZCB0byBsb2FkOiAiICsgdXJsKTsKLSAgICBjYWxsYmFjayhmYWxzZSwg
JycpOwotICB9Ci19OwotCi0vKioKLSAqIENvbXBhcmUgdmVyc2lvbiBzdHJpbmdzLgotICovCi12
YXIgZ3JlYXRlclRoYW5PckVxdWFsVG9WZXJzaW9uID0gZnVuY3Rpb24oaGF2ZSwgd2FudCkgewot
ICBoYXZlID0gaGF2ZS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7Ci0gIHdhbnQgPSB3YW50LnNw
bGl0KCIgIilbMF0uc3BsaXQoIi4iKTsKLQotICAvL2hhdmUgMS4yLjMgICB3YW50ICAxLjEKLSAg
Ly9oYXZlIDEuMS4xICAgd2FudCAgMS4xCi0gIC8vaGF2ZSAxLjAuOSAgIHdhbnQgIDEuMQotICAv
L2hhdmUgMS4xICAgICB3YW50ICAxLjEuMQotCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB3YW50
Lmxlbmd0aDsgKytpaSkgewotICAgIHZhciB3YW50TnVtID0gcGFyc2VJbnQod2FudFtpaV0pOwot
ICAgIHZhciBoYXZlTnVtID0gaGF2ZVtpaV0gPyBwYXJzZUludChoYXZlW2lpXSkgOiAwCi0gICAg
aWYgKGhhdmVOdW0gPCB3YW50TnVtKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9
Ci0gIHJldHVybiB0cnVlOwotfTsKLQotLyoqCi0gKiBSZWFkcyBhIGZpbGUsIHJlY3Vyc2l2ZWx5
IGFkZGluZyBmaWxlcyByZWZlcmVuY2VkIGluc2lkZS4KLSAqCi0gKiBFYWNoIGxpbmUgb2YgVVJM
IGlzIHBhcnNlZCwgY29tbWVudHMgc3RhcnRpbmcgd2l0aCAnIycgb3IgJzsnCi0gKiBvciAnLy8n
IGFyZSBzdHJpcHBlZC4KLSAqCi0gKiBhcmd1bWVudHMgYmVnaW5uaW5nIHdpdGggLS0gYXJlIGV4
dHJhY3RlZAotICoKLSAqIGxpbmVzIHRoYXQgZW5kIGluIC50eHQgYXJlIHJlY3Vyc2l2ZWx5IHNj
YW5uZWQgZm9yIG1vcmUgZmlsZXMKLSAqIG90aGVyIGxpbmVzIGFyZSBhZGRlZCB0byB0aGUgbGlz
dCBvZiBmaWxlcy4KLSAqCi0gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSB1cmwgb2YgdGhlIGZp
bGUgdG8gcmVhZC4KLSAqIEBwYXJhbSB7dm9pZCBmdW5jdGlvbihib29sZWFuLCAhQXJyYXkuPHN0
cmluZz4pfSBjYWxsYmFjay4KLSAqICAgICAgQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2l0aCB0
cnVlIGZvciBzdWNjZXNzIGFuZCBhbgotICogICAgICBhcnJheSBvZiBmaWxlbmFtZXMuCi0gKiBA
cGFyYW0ge09iamVjdH0gb3B0aW9ucy4gT3B0aW9uYWwgb3B0aW9ucwotICoKLSAqIE9wdGlvbnM6
Ci0gKiAgICB2ZXJzaW9uOiB7c3RyaW5nfSBUaGUgdmVyc2lvbiBvZiB0aGUgY29uZm9ybWFuY2Ug
dGVzdC4KLSAqICAgIFRlc3RzIHdpdGggdGhlIGFyZ3VtZW50IC0tbWluLXZlcnNpb24gPHZlcnNp
b24+IHdpbGwKLSAqICAgIGJlIGlnbm9yZWQgdmVyc2lvbiBpcyBsZXNzIHRoZW4gPHZlcnNpb24+
Ci0gKgotICovCi12YXIgZ2V0RmlsZUxpc3QgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrLCBvcHRp
b25zKSB7Ci0gIHZhciBmaWxlcyA9IFtdOwotCi0gIHZhciBjb3B5T2JqZWN0ID0gZnVuY3Rpb24o
b2JqKSB7Ci0gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7Ci0gIH07
Ci0KLSAgdmFyIHRvQ2FtZWxDYXNlID0gZnVuY3Rpb24oc3RyKSB7Ci0gICAgcmV0dXJuIHN0ci5y
ZXBsYWNlKC8tKFthLXpdKS9nLCBmdW5jdGlvbiAoZykgeyByZXR1cm4gZ1sxXS50b1VwcGVyQ2Fz
ZSgpIH0pOwotICB9OwotCi0gIHZhciBnbG9iYWxPcHRpb25zID0gY29weU9iamVjdChvcHRpb25z
KTsKLSAgZ2xvYmFsT3B0aW9ucy5kZWZhdWx0VmVyc2lvbiA9ICIxLjAiOwotCi0gIHZhciBnZXRG
aWxlTGlzdEltcGwgPSBmdW5jdGlvbihwcmVmaXgsIGxpbmUsIGxpbmVOdW0sIGhpZXJhcmNoaWNh
bE9wdGlvbnMsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIGZpbGVzID0gW107Ci0KLSAgICB2YXIgYXJn
cyA9IGxpbmUuc3BsaXQoL1xzKy8pOwotICAgIHZhciBub25PcHRpb25zID0gW107Ci0gICAgdmFy
IHVzZVRlc3QgPSB0cnVlOwotICAgIHZhciB0ZXN0T3B0aW9ucyA9IHt9OwotICAgIGZvciAodmFy
IGpqID0gMDsgamogPCBhcmdzLmxlbmd0aDsgKytqaikgewotICAgICAgdmFyIGFyZyA9IGFyZ3Nb
ampdOwotICAgICAgaWYgKGFyZ1swXSA9PSAnLScpIHsKLSAgICAgICAgaWYgKGFyZ1sxXSAhPSAn
LScpIHsKLSAgICAgICAgICB0aHJvdyAoImJhZCBvcHRpb24gYXQgaW4gIiArIHVybCArICI6IiAr
IGxpbmVOdW0gKyAiOiAiICsgYXJnKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgb3B0aW9uID0g
YXJnLnN1YnN0cmluZygyKTsKLSAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKLSAgICAgICAgICAv
LyBubyBhcmd1bWVudCBvcHRpb25zLgotICAgICAgICAgIGNhc2UgJ3Nsb3cnOgotICAgICAgICAg
ICAgdGVzdE9wdGlvbnNbdG9DYW1lbENhc2Uob3B0aW9uKV0gPSB0cnVlOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgLy8gb25lIGFyZ3VtZW50IG9wdGlvbnMuCi0gICAgICAgICAgY2Fz
ZSAnbWluLXZlcnNpb24nOgotICAgICAgICAgICAgKytqajsKLSAgICAgICAgICAgIHRlc3RPcHRp
b25zW3RvQ2FtZWxDYXNlKG9wdGlvbildID0gYXJnc1tqal07Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgKCJiYWQgdW5rbm93biBvcHRp
b24gJyIgKyBvcHRpb24gKyAiJyBhdCBpbiAiICsgdXJsICsgIjoiICsgbGluZU51bSArICI6ICIg
KyBhcmcpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBub25PcHRpb25zLnB1
c2goYXJnKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgdmFyIHVybCA9IHByZWZpeCArIG5vbk9wdGlv
bnMuam9pbigiICIpOwotCi0gICAgaWYgKHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpICE9ICcu
dHh0JykgewotICAgICAgdmFyIG1pblZlcnNpb24gPSB0ZXN0T3B0aW9ucy5taW5WZXJzaW9uOwot
ICAgICAgaWYgKCFtaW5WZXJzaW9uKSB7Ci0gICAgICAgIG1pblZlcnNpb24gPSBoaWVyYXJjaGlj
YWxPcHRpb25zLmRlZmF1bHRWZXJzaW9uOwotICAgICAgfQotICAgICAgdmFyIHNsb3cgPSB0ZXN0
T3B0aW9ucy5zbG93OwotICAgICAgaWYgKCFzbG93KSB7Ci0gICAgICAgIHNsb3cgPSBoaWVyYXJj
aGljYWxPcHRpb25zLmRlZmF1bHRTbG93OwotICAgICAgfQotCi0gICAgICBpZiAoZ2xvYmFsT3B0
aW9ucy5mYXN0ICYmIHNsb3cpIHsKLSAgICAgICAgdXNlVGVzdCA9IGZhbHNlOwotICAgICAgfSBl
bHNlIGlmIChnbG9iYWxPcHRpb25zLm1pblZlcnNpb24pIHsKLSAgICAgICAgdXNlVGVzdCA9IGdy
ZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbihtaW5WZXJzaW9uLCBnbG9iYWxPcHRpb25zLm1pblZl
cnNpb24pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdXNlVGVzdCA9IGdyZWF0ZXJUaGFuT3JF
cXVhbFRvVmVyc2lvbihnbG9iYWxPcHRpb25zLnZlcnNpb24sIG1pblZlcnNpb24pOwotICAgICAg
fQotICAgIH0KLQotICAgIGlmICghdXNlVGVzdCkgewotICAgICAgY2FsbGJhY2sodHJ1ZSwgW10p
OwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh1cmwuc3Vic3RyKHVybC5sZW5ndGgg
LSA0KSA9PSAnLnR4dCcpIHsKLSAgICAgIC8vIElmIGEgdmVyc2lvbiB3YXMgZXhwbGljaXR5IHNw
ZWNpZmllZCBwYXNzIGl0IGRvd24uCi0gICAgICBpZiAodGVzdE9wdGlvbnMubWluVmVyc2lvbikg
ewotICAgICAgICBoaWVyYXJjaGljYWxPcHRpb25zLmRlZmF1bHRWZXJzaW9uID0gdGVzdE9wdGlv
bnMubWluVmVyc2lvbjsKLSAgICAgIH0KLSAgICAgIGlmICh0ZXN0T3B0aW9ucy5zbG93KSB7Ci0g
ICAgICAgIGhpZXJhcmNoaWNhbE9wdGlvbnMuZGVmYXVsdFNsb3cgPSB0ZXN0T3B0aW9ucy5zbG93
OwotICAgICAgfQotICAgICAgbG9hZFRleHRGaWxlQXN5bmNocm9ub3VzKHVybCwgZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCB0ZXh0KSB7Ci0gICAgICAgICAg
aWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgJycpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbGluZXMgPSB0ZXh0LnNw
bGl0KCdcbicpOwotICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICAgICAgICB2YXIgbGFz
dFNsYXNoID0gdXJsLmxhc3RJbmRleE9mKCcvJyk7Ci0gICAgICAgICAgaWYgKGxhc3RTbGFzaCA+
PSAwKSB7Ci0gICAgICAgICAgICBwcmVmaXggPSB1cmwuc3Vic3RyKDAsIGxhc3RTbGFzaCArIDEp
OwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgZmFpbCA9IGZhbHNlOwotICAgICAgICAgIHZh
ciBjb3VudCA9IDE7Ci0gICAgICAgICAgdmFyIGluZGV4ID0gMDsKLSAgICAgICAgICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgbGluZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgICAgICB2YXIgc3Ry
ID0gbGluZXNbaWldLnJlcGxhY2UoL15cc1xzKi8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7
Ci0gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IDQgJiYKLSAgICAgICAgICAgICAgICBzdHJb
MF0gIT0gJyMnICYmCi0gICAgICAgICAgICAgICAgc3RyWzBdICE9ICI7IiAmJgotICAgICAgICAg
ICAgICAgIHN0ci5zdWJzdHIoMCwgMikgIT0gIi8vIikgewotICAgICAgICAgICAgICArK2NvdW50
OwotICAgICAgICAgICAgICBnZXRGaWxlTGlzdEltcGwocHJlZml4LCBzdHIsIGlpICsgMSwgY29w
eU9iamVjdChoaWVyYXJjaGljYWxPcHRpb25zKSwgZnVuY3Rpb24oaW5kZXgpIHsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2VzcywgbmV3X2ZpbGVzKSB7Ci0gICAgICAgICAg
ICAgICAgICAvL2xvZygiZ290IGZpbGVzOiAiICsgbmV3X2ZpbGVzLmxlbmd0aCk7Ci0gICAgICAg
ICAgICAgICAgICBpZiAoc3VjY2VzcykgewotICAgICAgICAgICAgICAgICAgICBmaWxlc1tpbmRl
eF0gPSBuZXdfZmlsZXM7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBm
aW5pc2goc3VjY2Vzcyk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgfShpbmRl
eCsrKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGZpbmlzaCh0cnVl
KTsKLQotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChzdWNjZXNzKSB7Ci0gICAgICAgICAgICBp
ZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgICAgICAgZmFpbCA9IHRydWU7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAtLWNvdW50OwotICAgICAgICAgICAgLy9sb2coImNvdW50OiAiICsgY291
bnQpOwotICAgICAgICAgICAgaWYgKCFjb3VudCkgewotICAgICAgICAgICAgICBjYWxsYmFjaygh
ZmFpbCwgZmlsZXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgfSgpKTsKLSAgICB9IGVsc2UgewotICAgICAgZmlsZXMucHVzaCh1cmwpOwotICAgICAgY2Fs
bGJhY2sodHJ1ZSwgZmlsZXMpOwotICAgIH0KLSAgfTsKLQotICBnZXRGaWxlTGlzdEltcGwoJycs
IHVybCwgMSwgZ2xvYmFsT3B0aW9ucywgZnVuY3Rpb24oc3VjY2VzcywgZmlsZXMpIHsKLSAgICAv
LyBmbGF0dGVuCi0gICAgdmFyIGZsYXQgPSBbXTsKLSAgICBmbGF0dGVuKGZpbGVzKTsKLSAgICBm
dW5jdGlvbiBmbGF0dGVuKGZpbGVzKSB7Ci0gICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZmls
ZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IGZpbGVzW2lpXTsKLSAgICAg
ICAgaWYgKHR5cGVvZih2YWx1ZSkgPT0gInN0cmluZyIpIHsKLSAgICAgICAgICBmbGF0LnB1c2go
dmFsdWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGZsYXR0ZW4odmFsdWUpOwotICAg
ICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIGZsYXQpOwotICB9
KTsKLX07Ci0KLXZhciBGaWx0ZXJVUkwgPSAoZnVuY3Rpb24oKSB7Ci0gIHZhciBwcmVmaXggPSB3
aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7Ci0gIHByZWZpeCA9IHByZWZpeC5zdWJzdHJpbmcoMCwg
cHJlZml4Lmxhc3RJbmRleE9mKCIvIikgKyAxKTsKLSAgcmV0dXJuIGZ1bmN0aW9uKHVybCkgewot
ICAgIGlmICh1cmwuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgpID09IHByZWZpeCkgewotICAg
ICAgdXJsID0gdXJsLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTsKLSAgICB9Ci0gICAgcmV0dXJu
IHVybDsKLSAgfTsKLX0oKSk7Ci0KLXZhciBUZXN0RmlsZSA9IGZ1bmN0aW9uKHVybCkgewotICB0
aGlzLnVybCA9IHVybDsKLX07Ci0KLXZhciBUZXN0ID0gZnVuY3Rpb24oZmlsZSkgewotICB0aGlz
LmZpbGUgPSBmaWxlOwotfTsKLQotdmFyIFRlc3RIYXJuZXNzID0gZnVuY3Rpb24oaWZyYW1lLCBm
aWxlbGlzdFVybCwgcmVwb3J0RnVuYywgb3B0aW9ucykgewotICB0aGlzLndpbmRvdyA9IHdpbmRv
dzsKLSAgdGhpcy5pZnJhbWVzID0gaWZyYW1lLmxlbmd0aCA/IGlmcmFtZSA6IFtpZnJhbWVdOwot
ICB0aGlzLnJlcG9ydEZ1bmMgPSByZXBvcnRGdW5jOwotICB0aGlzLnRpbWVvdXREZWxheSA9IDIw
MDAwOwotICB0aGlzLmZpbGVzID0gW107Ci0gIHRoaXMuYWxsb3dTa2lwID0gb3B0aW9ucy5hbGxv
d1NraXA7Ci0KLSAgdmFyIHRoYXQgPSB0aGlzOwotICBnZXRGaWxlTGlzdChmaWxlbGlzdFVybCwg
ZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIGZpbGVzKSB7Ci0gICAg
ICB0aGF0LmFkZEZpbGVzXyhzdWNjZXNzLCBmaWxlcyk7Ci0gICAgfTsKLSAgfSgpLCBvcHRpb25z
KTsKLQotfTsKLQotVGVzdEhhcm5lc3MucmVwb3J0VHlwZSA9IHsKLSAgQUREX1BBR0U6IDEsCi0g
IFJFQURZOiAyLAotICBTVEFSVF9QQUdFOiAzLAotICBURVNUX1JFU1VMVDogNCwKLSAgRklOSVNI
X1BBR0U6IDUsCi0gIEZJTklTSEVEX0FMTF9URVNUUzogNgotfTsKLQotVGVzdEhhcm5lc3MucHJv
dG90eXBlLmFkZEZpbGVzXyA9IGZ1bmN0aW9uKHN1Y2Nlc3MsIGZpbGVzKSB7Ci0gIGlmICghc3Vj
Y2VzcykgewotICAgIHRoaXMucmVwb3J0RnVuYygKLSAgICAgICAgVGVzdEhhcm5lc3MucmVwb3J0
VHlwZS5GSU5JU0hFRF9BTExfVEVTVFMsCi0gICAgICAgICcnLAotICAgICAgICAnVW5hYmxlIHRv
IGxvYWQgdGVzdHMuIEFyZSB5b3UgcnVubmluZyBsb2NhbGx5P1xuJyArCi0gICAgICAgICdZb3Ug
bmVlZCB0byBydW4gZnJvbSBhIHNlcnZlciBvciBjb25maWd1cmUgeW91clxuJyArCi0gICAgICAg
ICdicm93c2VyIHRvIGFsbG93IGFjY2VzcyB0byBsb2NhbCBmaWxlcyAobm90IHJlY29tbWVuZGVk
KS5cblxuJyArCi0gICAgICAgICdOb3RlOiBBbiBlYXN5IHdheSB0byBydW4gZnJvbSBhIHNlcnZl
cjpcblxuJyArCi0gICAgICAgICdcdGNkIHBhdGhfdG9fdGVzdHNcbicgKwotICAgICAgICAnXHRw
eXRob24gLW0gU2ltcGxlSFRUUFNlcnZlclxuXG4nICsKLSAgICAgICAgJ3RoZW4gcG9pbnQgeW91
ciBicm93c2VyIHRvICcgKwotICAgICAgICAgICc8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuaHRtbCI+JyArCi0gICAgICAgICAgJ2h0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC93ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy5odG1sPC9hPicsCi0gICAgICAg
IGZhbHNlKQotICAgIHJldHVybjsKLSAgfQotICBsb2coInRvdGFsIGZpbGVzOiAiICsgZmlsZXMu
bGVuZ3RoKTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZpbGVzLmxlbmd0aDsgKytpaSkgewot
ICAgIGxvZygiIiArIGlpICsgIjogIiArIGZpbGVzW2lpXSk7Ci0gICAgdGhpcy5maWxlcy5wdXNo
KG5ldyBUZXN0RmlsZShmaWxlc1tpaV0pKTsKLSAgICB0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5l
c3MucmVwb3J0VHlwZS5BRERfUEFHRSwgJycsIGZpbGVzW2lpXSwgdW5kZWZpbmVkKTsKLSAgfQot
ICB0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5SRUFEWSwgJycsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKTsKLX0KLQotVGVzdEhhcm5lc3MucHJvdG90eXBlLnJ1blRlc3RzID0g
ZnVuY3Rpb24ob3B0X29wdGlvbnMpIHsKLSAgdmFyIG9wdGlvbnMgPSBvcHRfb3B0aW9ucyB8fCB7
IH07Ci0gIG9wdGlvbnMuc3RhcnQgPSBvcHRpb25zLnN0YXJ0IHx8IDA7Ci0gIG9wdGlvbnMuY291
bnQgPSBvcHRpb25zLmNvdW50IHx8IHRoaXMuZmlsZXMubGVuZ3RoOwotCi0gIHRoaXMuaWRsZUlG
cmFtZXMgPSB0aGlzLmlmcmFtZXMuc2xpY2UoMCk7Ci0gIHRoaXMucnVubmluZ1Rlc3RzID0ge307
Ci0gIHZhciB0ZXN0c1RvUnVuID0gW107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBvcHRpb25z
LmNvdW50OyArK2lpKSB7Ci0gICAgdGVzdHNUb1J1bi5wdXNoKGlpICsgb3B0aW9ucy5zdGFydCk7
Ci0gIH0KLSAgdGhpcy5udW1UZXN0c1JlbWFpbmluZyA9IG9wdGlvbnMuY291bnQ7Ci0gIHRoaXMu
dGVzdHNUb1J1biA9IHRlc3RzVG9SdW47Ci0gIHRoaXMuc3RhcnROZXh0VGVzdCgpOwotfTsKLQot
VGVzdEhhcm5lc3MucHJvdG90eXBlLnNldFRpbWVvdXQgPSBmdW5jdGlvbih0ZXN0KSB7Ci0gIHZh
ciB0aGF0ID0gdGhpczsKLSAgdGVzdC50aW1lb3V0SWQgPSB0aGlzLndpbmRvdy5zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewotICAgICAgdGhhdC50aW1lb3V0KHRlc3QpOwotICAgIH0sIHRoaXMudGlt
ZW91dERlbGF5KTsKLX07Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5jbGVhclRpbWVvdXQgPSBm
dW5jdGlvbih0ZXN0KSB7Ci0gIHRoaXMud2luZG93LmNsZWFyVGltZW91dCh0ZXN0LnRpbWVvdXRJ
ZCk7Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuc3RhcnROZXh0VGVzdCA9IGZ1bmN0aW9u
KCkgewotICBpZiAodGhpcy5udW1UZXN0c1JlbWFpbmluZyA9PSAwKSB7Ci0gICAgbG9nKCJkb25l
Iik7Ci0gICAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIRURf
QUxMX1RFU1RTLAotICAgICAgICAgICAgICAgICAgICAnJywgJycsIHRydWUpOwotICB9IGVsc2Ug
ewotICAgIHdoaWxlICh0aGlzLnRlc3RzVG9SdW4ubGVuZ3RoID4gMCAmJiB0aGlzLmlkbGVJRnJh
bWVzLmxlbmd0aCA+IDApIHsKLSAgICAgIHZhciB0ZXN0SWQgPSB0aGlzLnRlc3RzVG9SdW4uc2hp
ZnQoKTsKLSAgICAgIHZhciBpZnJhbWUgPSB0aGlzLmlkbGVJRnJhbWVzLnNoaWZ0KCk7Ci0gICAg
ICB0aGlzLnN0YXJ0VGVzdChpZnJhbWUsIHRoaXMuZmlsZXNbdGVzdElkXSk7Ci0gICAgfQotICB9
Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuc3RhcnRUZXN0ID0gZnVuY3Rpb24oaWZyYW1l
LCB0ZXN0RmlsZSkgewotICB2YXIgdGVzdCA9IHsKLSAgICBpZnJhbWU6IGlmcmFtZSwKLSAgICB0
ZXN0RmlsZTogdGVzdEZpbGUKLSAgfTsKLSAgdmFyIHVybCA9IHRlc3RGaWxlLnVybDsKLSAgdGhp
cy5ydW5uaW5nVGVzdHNbdXJsXSA9IHRlc3Q7Ci0gIGxvZygibG9hZGluZzogIiArIHVybCk7Ci0g
IGlmICh0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5TVEFSVF9QQUdFLCB1
cmwsIHVybCwgdW5kZWZpbmVkKSkgewotICAgIGlmcmFtZS5zcmMgPSB1cmw7Ci0gICAgdGhpcy5z
ZXRUaW1lb3V0KHRlc3QpOwotICB9IGVsc2UgewotICAgIHRoaXMucmVwb3J0UmVzdWx0cyh1cmws
ICEhdGhpcy5hbGxvd1NraXAsICJza2lwcGVkIiwgdHJ1ZSk7Ci0gICAgdGhpcy5ub3RpZnlGaW5p
c2hlZCh1cmwpOwotICB9Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuZ2V0VGVzdCA9IGZ1
bmN0aW9uKHVybCkgewotICB2YXIgdGVzdCA9IHRoaXMucnVubmluZ1Rlc3RzW0ZpbHRlclVSTCh1
cmwpXTsKLSAgaWYgKCF0ZXN0KSB7Ci0gICAgdGhyb3coInVua25vd24gdGVzdDoiICsgdXJsKTsK
LSAgfQotICByZXR1cm4gdGVzdDsKLX07Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5yZXBvcnRS
ZXN1bHRzID0gZnVuY3Rpb24odXJsLCBzdWNjZXNzLCBtc2csIHNraXBwZWQpIHsKLSAgdXJsID0g
RmlsdGVyVVJMKHVybCk7Ci0gIHZhciB0ZXN0ID0gdGhpcy5nZXRUZXN0KHVybCk7Ci0gIHRoaXMu
Y2xlYXJUaW1lb3V0KHRlc3QpOwotICBsb2coc3VjY2VzcyA/ICJQQVNTIiA6ICJGQUlMIiwgbXNn
KTsKLSAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuVEVTVF9SRVNVTFQs
IHVybCwgbXNnLCBzdWNjZXNzLCBza2lwcGVkKTsKLSAgLy8gRm9yIGVhY2ggcmVzdWx0IHdlIGdl
dCwgcmVzZXQgdGhlIHRpbWVvdXQKLSAgdGhpcy5zZXRUaW1lb3V0KHRlc3QpOwotfTsKLQotVGVz
dEhhcm5lc3MucHJvdG90eXBlLmRlcXVlVGVzdCA9IGZ1bmN0aW9uKHRlc3QpIHsKLSAgdGhpcy5j
bGVhclRpbWVvdXQodGVzdCk7Ci0gIHRoaXMuaWRsZUlGcmFtZXMucHVzaCh0ZXN0LmlmcmFtZSk7
Ci0gIGRlbGV0ZSB0aGlzLnJ1bm5pbmdUZXN0c1t0ZXN0LnRlc3RGaWxlLnVybF07Ci0gIC0tdGhp
cy5udW1UZXN0c1JlbWFpbmluZzsKLX0KLQotVGVzdEhhcm5lc3MucHJvdG90eXBlLm5vdGlmeUZp
bmlzaGVkID0gZnVuY3Rpb24odXJsKSB7Ci0gIHVybCA9IEZpbHRlclVSTCh1cmwpOwotICB2YXIg
dGVzdCA9IHRoaXMuZ2V0VGVzdCh1cmwpOwotICBsb2codXJsICsgIjogZmluaXNoZWQiKTsKLSAg
dGhpcy5kZXF1ZVRlc3QodGVzdCk7Ci0gIHRoaXMucmVwb3J0RnVuYyhUZXN0SGFybmVzcy5yZXBv
cnRUeXBlLkZJTklTSF9QQUdFLCB1cmwsIHVybCwgdHJ1ZSk7Ci0gIHRoaXMuc3RhcnROZXh0VGVz
dCgpOwotfTsKLQotVGVzdEhhcm5lc3MucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbih0ZXN0
KSB7Ci0gIHRoaXMuZGVxdWVUZXN0KHRlc3QpOwotICB2YXIgdXJsID0gdGVzdC50ZXN0RmlsZS51
cmw7Ci0gIGxvZyh1cmwgKyAiOiB0aW1lb3V0Iik7Ci0gIHRoaXMucmVwb3J0RnVuYyhUZXN0SGFy
bmVzcy5yZXBvcnRUeXBlLkZJTklTSF9QQUdFLCB1cmwsIHVybCwgdW5kZWZpbmVkKTsKLSAgdGhp
cy5zdGFydE5leHRUZXN0KCk7Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuc2V0VGltZW91
dERlbGF5ID0gZnVuY3Rpb24oeCkgewotICB0aGlzLnRpbWVvdXREZWxheSA9IHg7Ci19OwotCi1y
ZXR1cm4gewotICAgICdUZXN0SGFybmVzcyc6IFRlc3RIYXJuZXNzCi0gIH07Ci0KLX0oKTsKLQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGM5MWMyM2ViZTcwMTVkM2I0OTExYjE3MDZhODQz
YmVkMDI1MzM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0idXNlIHN0
cmljdCI7Ci0oZnVuY3Rpb24oKSB7Ci0gIHZhciBudW1GYWlsdXJlcyA9IDA7Ci0KLSAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5lcjsKLSAgfQotCi0g
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwotCi0gICAgLy8gVHVybiBvZmYgY29uc29sZSBtZXNzYWdlcyBiZWNhdXNlIGZvciB0aGUg
V2ViR0wgdGVzdHMgdGhleSBhcmUKLSAgICAvLyBHUFUgY2FwYWJpbGl0eSBkZXBlbmRlbnQuCi0g
ICAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07Ci0gICAgd2luZG93LmNvbnNv
bGUuZXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKLSAgfQotCi0KLSAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25z
b2xlRW5hYmxlZChmYWxzZSk7Ci0gIH0KLQotICB2YXIgbG9nID0gZnVuY3Rpb24obXNnLCBjb2xv
cikgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBk
aXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7Ci0gICAgaWYgKGNv
bG9yKSB7Ci0gICAgICBkaXYuc3R5bGUuY29sb3IgPSBjb2xvcjsKLSAgICB9Ci0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFwcGVuZENoaWxkKGRpdik7Ci0gIH07Ci0KLSAg
d2luZG93LndlYmdsVGVzdEhhcm5lc3MgPSB7Ci0gICAgcmVwb3J0UmVzdWx0czogZnVuY3Rpb24o
dXJsLCBzdWNjZXNzLCBtc2cpIHsKLSAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICArK251
bUZhaWx1cmVzOwotICAgICAgfQotICAgIH0sCi0KLSAgICBub3RpZnlGaW5pc2hlZDogZnVuY3Rp
b24odXJsKSB7Ci0gICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlm
cmFtZSIpOwotICAgICAgaWZyYW1lLmlubmVySFRNTCA9ICIiOwotICAgICAgaWYgKG51bUZhaWx1
cmVzID4gMCkgewotICAgICAgICBsb2coIkZBSUwiLCAicmVkIik7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICBsb2coIlBBU1MiLCAiZ3JlZW4iKTsKLSAgICAgIH0KLQotICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Ci0gICAgICB9Ci0gICAgfSwKLSAgfQotfSgpKTsKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFnZTJESFRNTC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1M
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTJiZTU1ZDdlZGZi
MTY1ZGNhODZhN2Y1Njc3MDY4ZjYxMzdmNDFjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Rl
eEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAot
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IHJlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKLVBBU1MK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFn
ZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFn
ZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGY5MmI5MmRmODIw
MjdiZGQ4OTUxZGYzZGZmZTlhMTlhNmZhMWMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4
SW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBO
T1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRl
eEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0icmVzb3VyY2VzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9InJlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1M
Lmh0bWwiPnJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLmh0bWw8L2E+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPGRp
diBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhU
TUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhT
dWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRjNDNkNmFlMzYzMDUwZTAyZjM4YmVhYzRhZTZhOWVkYmNhMDgyODEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiByZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC5odG1sCi1QQVNTCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2ZhZDdlNTEzYmFjNDk5Zjg0ZTY4ZWE1MDNjNjZiYjA2YmQ2YTdiNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBn
ZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29u
Zm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJESFRNTC5odG1sPC90aXRsZT4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+Ci1UZXN0OiA8YSBocmVmPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sIj5yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5o
dG1sPC9hPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZy
YW1lIHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQ
aXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFkYTU5Y2JjM2VjMThhYjM5MjU5Y2IzNDMwZTE0Yzk2YmE1NWU2
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVW5hYmxlIHRvIGdldCBpbWFnZSBk
YXRhIGZyb20gY2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVlbiB0YWludGVkIGJ5IGNy
b3NzLW9yaWdpbiBkYXRhLgorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0Jh
ZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmY2YWJkOGE5ZjE2MDkzMGMzYzAzNGQ3ZTA0MTQ0ZmQy
NDJlZjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHJlYWRQaXhlbHNCYWRB
cmdzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvYT4KKzxkaXYg
aWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iY2NiMmU0MjYxMDI1ZmI2NjkxNmEzZDRlMzUzMmYwMmVlMjVhMDhmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZiN2U2MDJjNjI0YmU0MTViYmZmNDViZWMyMTQ2MjYyNDI5NGY0NTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4SW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitU
ZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIj4uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJh
bWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwZDFhOTAyMGJkNmQ2MzBh
YzQyYWRmODk0MDljMDgyMDc4YjFjNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1Yklt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJhMWZmMzg5MjQ1
NDIwYTgwNjgyNDk4ZjMwNjdkZmViNGM2M2FjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciB0ZXhTdWJJbWFnZTJESFRNTC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFt
ZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZmYWM5
N2NhZWIyMTgzNTViZDZhOTM1YTk0ZDVmOWNlOTk3NDExNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
Q09OU09MRSBNRVNTQUdFOiBbbG9hZENyb3NzT3JpZ2luSW1hZ2VdCitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAor
WyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIy
ZDY3MmUyZTc3NWQyNGFiNTU0MzQ4NmRmMTA2N2RmY2EwOGY0ZTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVz
L21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2FkQ3Jvc3NPcmlnaW5JbWFn
ZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBh
c3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5j
YW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDBhNTEzY2NlZmEwZDU3Yjk0NzVjNzI2YzNhNWNlN2Q1MTAxZTlk
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2Ny
ZWVuY2FudmFzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbDwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yY2M1OGY4N2M0NWE2MDZjMzYwNDhmNTNhZDc0YzkzMDdjYzg2Y2EzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5o
dG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L2E+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFk
QXJncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc1NmMyMjljZTk2M2FmNWM2NmVkNmY5NjU4
NDU5ZTJkNzcwNjQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBVbmFibGUgdG8g
Z2V0IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0aGUgY2FudmFzIGhhcyBiZWVuIHRh
aW50ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuCitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJn
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzMWFlODcx
YWQxYzI1ZTlmZWQwNDZlZTJlYjE0NDZmYTk4NjY2ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFu
Y2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8
YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yIj4u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1s
P3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMzY3ZDFkZDU0NGYwZTg2OTU3MGZlYmUyZmQwZDNm
YjQwMWQ4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI4ZjVhZDE5ZWJiYzZkZWM0NGY1MmJm
YTRlNTU2MjhlMmM3N2ZhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVE
SVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhJbWFn
ZTJESFRNTC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0
bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhl
aWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzhkNTY3Nzk0YmZkOWIxNTQxMDE2M2FhYTNmY2NhMDZjYTE3OThmMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRI
VE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMzBiZTY1ZGRmZjQyYjM0YzczMzczNmUzNTNkYzg2YTgzNDU2
MzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleFN1YkltYWdlMkRIVE1M
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2Uy
REhUTUwuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNGRhZjkwNjgzMDIwNjkzYTJkMzM0ODY3MzhjYjZmYWJiYTcyMmIyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2FkQ3Jvc3NPcmlnaW5JbWFn
ZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVl
bmNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk0ZjQzY2FiZWJiMGQ5MmU4NGU2MTM1
NjNjN2MwZWE5NDEzMGIwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NP
TlNPTEUgTUVTU0FHRTogW2xvYWRDcm9zc09yaWdpbkltYWdlXQorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVl
bmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44MjEwN2U5ZmNkMTliY2FkMDkyNzkwMTgyMWNlNjE4OWI4NzQyN2ExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9U
IEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNWVkN2RlOWEwNjll
MDA0MmY5OTJlM2IyNWRkN2ExMDA2NzIwZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFu
Y2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJn
bFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZl
cnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAyNmY2MDgzN2Zk
OTEzZTVjNThhNjhlOTQwYjQyMWUxODA5ZjRhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2FkQ3Jvc3NPcmlnaW5JbWFnZV0KK1RoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0
ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2Ny
ZWVuY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIyMTRjYTk0MGMyMDI4NzRlODEwMTA0NTQwNjM0
NzI5MDc0YTUyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1h
bmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249
MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0
aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YmRiY2VkNzEx
NjBmMTE2M2M2MTE1M2E2YzZhM2JiMWJkMDA5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwpAQCAtMCwwICsx
LDUxOSBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCisoZnVuY3Rpb24oKSB7CisgIHZhciB0
ZXN0SGFybmVzc0luaXRpYWxpemVkID0gZmFsc2U7CisKKyAgdmFyIGluaXROb25LaHJvbm9zRnJh
bWV3b3JrID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQpIHsK
KyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IHRydWU7
CisKKyAgICAvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUgLS0gKi8KKworICAgIC8vIFdlYktp
dCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0UnVubmVyOworICAgIH0KKworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgIC8vIFRoZSBX
ZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMgY29uc29sZSBvdXRwdXQuCisgICAgICAvLyBC
ZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAg
ICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMuCisgICAgICB3aW5kb3cuY29uc29s
ZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVu
Y3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJy
b3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisKKyAgICAgIC8vIFJBRiBkb2Vzbid0IHdvcmsg
aW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhlIHRlc3RzIHdpbGwKKyAgICAgIC8vIHVz
ZSBzZXRUaW1lb3V0IGluc3RlYWQuCisgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
ID0gdW5kZWZpbmVkOworICAgICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSA9
IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICAvKiAtLSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMgY29k
ZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0aW5nSGFybmVzcyA9IGZ1bmN0aW9uKCkgewor
ICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKCk7CisgIH0KK30oKSk7CisKK2Z1bmN0aW9uIG5v
bktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgeworICAvLyBXZWJLaXQgU3BlY2lmaWMgY29k
ZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9Cit9CisKK2Z1
bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBpZiAo
d2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53ZWJn
bFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNj
ZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkg
eworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBh
cmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRo
bmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSkg
eworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSgpOworICB9Cit9CisK
K2Z1bmN0aW9uIF9sb2dUb0NvbnNvbGUobXNnKQoreworICAgIGlmICh3aW5kb3cuY29uc29sZSkK
KyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOworfQorCit2YXIgX2pzVGVzdFByZVZlcmJv
c2VMb2dnaW5nID0gZmFsc2U7CisKK2Z1bmN0aW9uIGVuYWJsZUpTVGVzdFByZVZlcmJvc2VMb2dn
aW5nKCkKK3sKKyAgICBfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcgPSB0cnVlOworfQorCitmdW5j
dGlvbiBkZXNjcmlwdGlvbihtc2cpCit7CisgICAgaW5pdFRlc3RpbmdIYXJuZXNzKCk7CisgICAg
aWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICBtc2cgPSBkb2N1bWVudC50aXRsZTsKKyAg
ICB9CisgICAgLy8gRm9yIE1TSUUgNiBjb21wYXRpYmlsaXR5CisgICAgdmFyIHNwYW4gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSAnPHA+JyAr
IG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICI8c3Bh
biBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4g
Y2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Ii48L3A+JzsKKyAgICB2YXIgZGVzY3Jp
cHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKKyAgICBpZiAo
ZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkKKyAgICAgICAgZGVzY3JpcHRpb24ucmVwbGFjZUNoaWxk
KHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpOworICAgIGVsc2UKKyAgICAgICAgZGVzY3Jp
cHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2lu
ZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBf
YWRkU3Bhbihjb250ZW50cykKK3sKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVu
ZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5hbWVz
cGFjZQorICAgIHNwYW4uaW5uZXJIVE1MID0gY29udGVudHMgKyAnPGJyIC8+JzsKK30KKworZnVu
Y3Rpb24gZGVidWcobXNnKQoreworICAgIF9hZGRTcGFuKG1zZyk7CisgICAgaWYgKF9qc1Rlc3RQ
cmVWZXJib3NlTG9nZ2luZykgeworCV9sb2dUb0NvbnNvbGUobXNnKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIGVzY2FwZUhUTUwodGV4dCkKK3sKKyAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2cs
ICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZsdDsiKTsKK30KKworZnVuY3Rpb24gdGVzdFBhc3Nl
ZChtc2cpCit7CisgICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwgbXNnKTsKKyAg
ICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2Nh
cGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgIGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dp
bmcpIHsKKwlfbG9nVG9Db25zb2xlKCdQQVNTICcgKyBtc2cpOworICAgIH0KK30KKworZnVuY3Rp
b24gdGVzdEZhaWxlZChtc2cpCit7CisgICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3MoZmFs
c2UsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNzPSJmYWlsIj5GQUlMPC9z
cGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAgICBfbG9nVG9Db25zb2xl
KCdGQUlMICcgKyBtc2cpOworfQorCitmdW5jdGlvbiBhcmVBcnJheXNFcXVhbChfYSwgX2IpCit7
CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKF9hLmxlbmd0aCAhPT0gX2IubGVuZ3RoKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IF9hLmxlbmd0
aDsgaSsrKQorICAgICAgICAgICAgaWYgKF9hW2ldICE9PSBfYltpXSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gaXNNaW51c1plcm8obikK
K3sKKyAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZyb20gLTAgaW4gSlMgaXMgdGhlIGZh
Y3QgdGhhdCAxLy0wIGlzCisgICAgLy8gLUluZmluaXR5IGluc3RlYWQgb2YgSW5maW5pdHkKKyAg
ICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOworfQorCitmdW5jdGlvbiBpc1Jlc3VsdENvcnJl
Y3QoX2FjdHVhbCwgX2V4cGVjdGVkKQoreworICAgIGlmIChfZXhwZWN0ZWQgPT09IDApCisgICAg
ICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQgJiYgKDEvX2FjdHVhbCkgPT09ICgxL19l
eHBlY3RlZCk7CisgICAgaWYgKF9hY3R1YWwgPT09IF9leHBlY3RlZCkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQpID09ICJudW1iZXIiICYmIGlzTmFOKF9l
eHBlY3RlZCkpCisgICAgICAgIHJldHVybiB0eXBlb2YoX2FjdHVhbCkgPT0gIm51bWJlciIgJiYg
aXNOYU4oX2FjdHVhbCk7CisgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChf
ZXhwZWN0ZWQpID09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChbXSkpCisgICAgICAg
IHJldHVybiBhcmVBcnJheXNFcXVhbChfYWN0dWFsLCBfZXhwZWN0ZWQpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworZnVuY3Rpb24gc3RyaW5naWZ5KHYpCit7CisgICAgaWYgKHYgPT09IDAgJiYg
MS92IDwgMCkKKyAgICAgICAgcmV0dXJuICItMCI7CisgICAgZWxzZSByZXR1cm4gIiIgKyB2Owor
fQorCitmdW5jdGlvbiBldmFsQW5kTG9nKF9hKQoreworICBpZiAodHlwZW9mIF9hICE9ICJzdHJp
bmciKQorICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRMb2coKSBleHBlY3RzIGEgc3RyaW5nIGFyZ3Vt
ZW50Iik7CisKKyAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdzIGdvIGhvcnJpYmx5IHdyb25n
IG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KKyAgZGVidWcoX2EpOworCisgIHZhciBfYXY7
CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVz
dEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgfQorICByZXR1cm4gX2F2
OworfQorCitmdW5jdGlvbiBzaG91bGRCZShfYSwgX2IsIHF1aWV0KQoreworICAgIGlmICh0eXBl
b2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1
ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgICB2YXIg
ZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChf
YSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAg
ICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmIChpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7Cisg
ICAgICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIg
KyBfYik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGVvZihfYXYpID09IHR5cGVvZihf
YnYpKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFdh
cyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2J2ICsg
IikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOworfQor
CitmdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIHF1aWV0KQoreworICAgIGlmICh0eXBlb2Yg
X2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1Zygi
V0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgICB2YXIg
ZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChf
YSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAg
ICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikp
IHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIg
aXMgbm90ICIgKyBfYik7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKK30KKworZnVuY3Rpb24gc2hv
dWxkQmVUcnVlKF9hKSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIpOyB9CitmdW5jdGlvbiBzaG91bGRC
ZUZhbHNlKF9hKSB7IHNob3VsZEJlKF9hLCAiZmFsc2UiKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVO
YU4oX2EpIHsgc2hvdWxkQmUoX2EsICJOYU4iKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVOdWxsKF9h
KSB7IHNob3VsZEJlKF9hLCAibnVsbCIpOyB9CisKK2Z1bmN0aW9uIHNob3VsZEJlRXF1YWxUb1N0
cmluZyhhLCBiKQoreworICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyBiLnJlcGxhY2UoLyIv
ZywgIlwiIikgKyAnIic7CisgIHNob3VsZEJlKGEsIHVuZXZhbGVkU3RyaW5nKTsKK30KKworZnVu
Y3Rpb24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7CisgIC8vIEEgZ2VuZXJh
bC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUgYSBzdHJpbmcgdG8gYmUK
KyAgLy8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVjdGVkJyBtYXkgYmUgYW55
IHR5cGUgYW5kIHdpbGwgYmUKKyAgLy8gdXNlZCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuCisgIGlm
IChleHBlY3RlZCA9PSBudWxsKSB7CisgICAgLy8gRG8gdGhpcyBiZWZvcmUgdGhlIG9iamVjdCB0
ZXN0LCBzaW5jZSBudWxsIGlzIG9mIHR5cGUgJ29iamVjdCcuCisgICAgc2hvdWxkQmVOdWxsKGFj
dHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1bmRlZmluZWQiKSB7Cisg
ICAgc2hvdWxkQmVVbmRlZmluZWQoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0
ZWQgPT0gImZ1bmN0aW9uIikgeworICAgIC8vIEFsbCB0aGlzIGZ1c3MgaXMgdG8gYXZvaWQgdGhl
IHN0cmluZy1hcmcgd2FybmluZyBmcm9tIHNob3VsZEJlKCkuCisgICAgdHJ5IHsKKyAgICAgIGFj
dHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHRlc3RG
YWlsZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6IFRocmV3IGV4Y2VwdGlvbiAiICsgZSk7
CisgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJlKCInIiArIGFjdHVhbFZhbHVlLnRv
U3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciLAorICAgICAgICAgICAgICInIiArIGV4
cGVjdGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKKyAgICBzaG91bGRCZVRydWUoYWN0dWFs
ICsgIiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0
ZWQgPT0gInN0cmluZyIpIHsKKyAgICBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKTsKKyAgfSBl
bHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xlYW4iKSB7CisgICAgc2hvdWxkQmUoInR5
cGVvZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7CisgICAgaWYgKGV4cGVjdGVkKQorICAgICAg
c2hvdWxkQmVUcnVlKGFjdHVhbCk7CisgICAgZWxzZQorICAgICAgc2hvdWxkQmVGYWxzZShhY3R1
YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAibnVtYmVyIikgeworICAgIHNo
b3VsZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVkKSk7CisgIH0gZWxzZSB7CisgICAgZGVi
dWcoZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkKTsKKyAg
ICBzaG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBlY3RlZC50b1N0cmluZygpICsgIiciKTsK
KyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZU5vblplcm8oX2EpCit7CisgIHZhciBleGNlcHRp
b247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNo
IChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gVGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gMCkKKyAgICB0ZXN0UGFzc2VkKF9hICsg
IiBpcyBub24temVyby4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSBub24temVyby4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZU5vbk51bGwo
X2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9
IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKwor
ICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVs
bC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gbnVs
bCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24tbnVsbC4iKTsKKyAgZWxzZQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIgKyBfYXYpOworfQorCitm
dW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRp
b24pOworICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQorICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxk
QmVEZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgewor
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBl
OworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChf
YXYgIT09IHVuZGVmaW5lZCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBkZWZpbmVkLiIpOwor
ICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFdhcyAiICsg
X2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7
CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIp
CisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3Rz
IHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsK
KyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKwor
ICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+
PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBp
ZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCisgICAgICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIgKG9m
IHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdFRydWUodiwgbXNn
KSB7CisgIGlmICh2KSB7CisgICAgdGVzdFBhc3NlZChtc2cpOworICB9IGVsc2UgeworICAgIHRl
c3RGYWlsZWQobXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhfYSwgX2UpCit7
CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwo
X2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICB2YXIg
X2V2OworICBpZiAoX2UpCisgICAgICBfZXYgPSAgZXZhbChfZSk7CisKKyAgaWYgKGV4Y2VwdGlv
bikgeworICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgZXhjZXB0aW9uID09IF9l
dikKKyAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9u
ICsgIi4iKTsKKyAgICBlbHNlCisgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cg
IiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAi
LiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7CisgIH0gZWxzZSBpZiAodHlw
ZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhy
b3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikg
KyAiLiBXYXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIg
OiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVR5
cGUoX2EsIF90eXBlKSB7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRy
eSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZXhjZXB0aW9uID0gZTsKKyAgICB9CisKKyAgICB2YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7CisK
KyAgICBpZihfdHlwZXYgPT09IE51bWJlcil7CisgICAgICAgIGlmKF9hdiBpbnN0YW5jZW9mIE51
bWJlcil7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiBO
dW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKHR5cGVvZihfYXYpID09PSAnbnVt
YmVyJyl7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiBO
dW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNleworICAgICAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9CisgICAg
fQorICAgIGVsc2UgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICB0ZXN0UGFz
c2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUp
OworICAgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0TXNnKGFzc2VydGlvbiwgbXNnKSB7CisgICAg
aWYgKGFzc2VydGlvbikgeworICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgdGVzdEZhaWxlZChtc2cpOworICAgIH0KK30KKworZnVuY3Rpb24gZ2MoKSB7Cisg
ICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LkdDQ29udHJvbGxl
ci5jb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2luZG93Lm9w
ZXJhICYmIHdpbmRvdy5vcGVyYS5jb2xsZWN0KSB7CisgICAgICAgIHdpbmRvdy5vcGVyYS5jb2xs
ZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICB3aW5k
b3cuUXVlcnlJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSUludGVyZmFjZVJlcXVl
c3RvcikKKyAgICAgICAgICAgICAgLmdldEludGVyZmFjZShDb21wb25lbnRzLmludGVyZmFjZXMu
bnNJRE9NV2luZG93VXRpbHMpCisgICAgICAgICAgICAgIC5nYXJiYWdlQ29sbGVjdCgpOworICAg
ICAgICByZXR1cm47CisgICAgfSBjYXRjaChlKSB7fQorCisgICAgZnVuY3Rpb24gZ2NSZWMobikg
eworICAgICAgICBpZiAobiA8IDEpCisgICAgICAgICAgICByZXR1cm4ge307CisgICAgICAgIHZh
ciB0ZW1wID0ge2k6ICJhYiIgKyBpICsgKGkgLyAxMDAwMDApfTsKKyAgICAgICAgdGVtcCArPSAi
Zm9vIjsKKyAgICAgICAgZ2NSZWMobi0xKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwOyBpKyspCisgICAgICAgIGdjUmVjKDEwKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgdmFyIGVwaWxvZ3VlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgIHZhciBiYXNlUGF0aCA9ICIiOworICB2
YXIgZXhwZWN0ZWRCYXNlID0gImpzLXRlc3QtcHJlLmpzIjsKKyAgdmFyIHNjcmlwdHMgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CisgIGZvciAodmFyIHNjcmlwdCwg
aSA9IDA7IHNjcmlwdCA9IHNjcmlwdHNbaV07IGkrKykgeworICAgIHZhciBzcmMgPSBzY3JpcHQu
c3JjOworICAgIHZhciBsID0gc3JjLmxlbmd0aDsKKyAgICBpZiAoc3JjLnN1YnN0cihsIC0gZXhw
ZWN0ZWRCYXNlLmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7CisgICAgICBiYXNlUGF0aCA9IHNy
Yy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOworICAgICAgYnJlYWs7CisgICAg
fQorICB9CisgIGVwaWxvZ3VlLnNyYyA9IGJhc2VQYXRoICsgImpzLXRlc3QtcG9zdC5qcyI7Cisg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBpbG9ndWUpOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Qx
NTVlZDYxYmY1MDFiZGQzZTZkNzZlMGEwMzJmZTQzMWIwNDY5ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApAQCAtMCww
ICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3Mi
IC8+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0i
Li4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+PGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZh
cz4KKzxjYW52YXMgaWQ9ImMiIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij48L2NhbnZhcz4KKzxp
bWcgaWQ9ImkiPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KK3ZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0Lndl
YmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKK3ZhciBsb2Nh
bEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKKworVGVzdHMu
YXV0b2luaXQgPSBmYWxzZTsgLy8gUHJldmVudHMgdGhlIHRlc3QgZnJvbSBydW5uaW5nIHVudGls
IHRoZSBpbWFnZSBpcyBsb2FkZWQKKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgewor
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgIHZhciBnbCA9
IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICByZXR1cm4gW2dsXTsKK30K
KworVGVzdHMudGVzdFJlYWRQaXhlbHMgPSBmdW5jdGlvbihnbCkgeworICAvLyB3ZSBjYW4ndCBr
bm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRoCisg
IC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVuc2lv
bnMuCisgIGFzc2VydFNvbWVHTEVycm9yKGdsLCAibmVnYXRpdmUgd2lkdGgiLAorICAgICAgZnVu
Y3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwtMSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKKyAgYXNzZXJ0U29tZUdMRXJyb3Io
Z2wsICAibmVnYXRpdmUgaGVpZ2h0IiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygw
LDAsMSwtMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhB
cnJheSg0KSk7fSk7CisgIGFzc2VydE9rKCJuZWdhdGl2ZSB4IiwKKyAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygtMSwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAgICAg
ICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgIGFzc2VydE9rKCJuZWdhdGl2ZSB5IiwKKyAg
ICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLC0xLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgIGFzc2VydE9rKCJo
ZWlnaHQgPiBiYWNrYnVmZmVyIGhlaWdodCIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhl
bHMoMCwwLDE2LDE3LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBV
aW50OEFycmF5KDE2KjE3KjQpKTt9KTsKKyAgYXNzZXJ0T2soIndpZHRoID4gYmFja2J1ZmZlciB3
aWR0aCIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDE3LDE2LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDE3KjE2KjQpKTt9
KTsKKyAgYXNzZXJ0T2soIndpZHRoLCBoZWlnaHQgPSAwIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wu
cmVhZFBpeGVscygwLDAsMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAg
IG5ldyBVaW50OEFycmF5KDApKTt9KTsKKyAgLy8gd2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdv
aW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAorICAvLyBvciBiZWNhdXNlIHRo
ZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25zLgorICBhc3NlcnRTb21l
R0xFcnJvcihnbCwgImJhZCBmb3JtYXQiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxz
KDAsMCwxLDEsIGdsLkZMT0FULCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50
OEFycmF5KDQqNCkpO30pOworICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8g
ZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRoCisgIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZl
ciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVuc2lvbnMuCisgIGFzc2VydFNvbWVHTEVycm9y
KGdsLCAiYmFkIHR5cGUiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEs
IGdsLkFMUEhBLCBnbC5GTE9BVCwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSgxKjQpKTt9KTsK
K30KKworVGVzdHMudGVzdFJlYWRQaXhlbHNTT1BJTUcgPSBmdW5jdGlvbihnbCkgeworICAgIHZh
ciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIpOworICAgIHZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsK
KyAgICAvLyBTT1AgZmFpbHVyZQorICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGhyb3cg
YmVjYXVzZSBpbWcgaXMgZnJvbSBhbm90aGVyIGRvbWFpbiIsCisgICAgICBmdW5jdGlvbigpe2ds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgaW1nKTt9KTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxs
KTsKKyAgICBhc3NlcnRPaygiY2FudmFzIHN0aWxsIG9yaWdpbi1jbGVhbiIsCisgICAgICBmdW5j
dGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwK
KyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgICAgZ2wuZGVsZXRlVGV4dHVyZSh0
ZXgpOworfQorVGVzdHMudGVzdFJlYWRQaXhlbHNTT1BDYW52YXMgPSBmdW5jdGlvbihnbCkgewor
ICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaSIpOworICAgIHZhciBjID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMiKTsKKyAgICBjLmdldENvbnRleHQoIjJkIikuZHJh
d0ltYWdlKGltZywgMCwgMCk7CisgICAgYXNzZXJ0RmFpbCgiY2FudmFzIHRocm93cyBiZWNhdXNl
IG5vdCBvcmlnaW4gY2xlYW4iLAorICAgICAgZnVuY3Rpb24oKXtjLmdldENvbnRleHQoIjJkIiku
Z2V0SW1hZ2VEYXRhKDAsMCwxLDEpO30pOworICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJl
KCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICAvLyBTT1Ag
ZmFpbHVyZQorICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGhyb3cgYmVjYXVzZSBjYW52
YXMgaXMgbm90IG9yaWdpbiBjbGVhbiIsCisgICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7
fSk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgYXNzZXJ0
T2soImNhbnZhcyBzdGlsbCBvcmlnaW4tY2xlYW4iLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFk
UGl4ZWxzKDAsMCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3
IFVpbnQ4QXJyYXkoNCkpO30pOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKK30KKworVGVz
dHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGdsKSB7Cit9OworCisoYXN5bmMgZnVuY3Rpb24oKSB7Cisg
IGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpJyk7CisgIHRyeSB7CisgICAg
YXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRl
ZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFp
bGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICByZXR1cm47CisgIH0KKyAgaW5pdFRlc3RzKCk7Cit9KSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJE
SFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVjYzc4ZDE2MzU3NTY1ZmU2NTM4ZWViZmY5ZjdmMTMxNGFlM2U5MTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1M
Lmh0bWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBz
cmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94
LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CithdHRyaWJ1dGUgdmVjMiBUZXg7CisK
K3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHRleENvb3JkMCA9
IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOworICAgIGdsX1Bvc2l0aW9uID0gdmVj
NChWZXJ0ZXgsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImlkZW50aXR5LWhmbGlw
LXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMzIFZlcnRleDsK
K2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFp
bigpCit7CisgICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50LCAwLjAsIDAuMCk7
CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2NyaXB0PgorPHNj
cmlwdCBpZD0iaWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKKwordmFy
eWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCBjID0gdGV4dHVy
ZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCk7CisgICAgZ2xfRnJhZ0NvbG9yID0gYzsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVp
Z2h0PSIyNTYiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIy
NTYiPjwvY2FudmFzPgorPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9
ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNB
WUFBQUJjY3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZB
NVZmQkd6YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2
L2FFQkFVSEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUF3T3ZCa2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4
NVUzWHY1WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05G
TytaTTFmMmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFW
dG1ONnA0TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1w
ZlRXK3B5VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4
Ym90UmxqNWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2
Nnd5aldoWUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxi
c2RjdWR0NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5
VUY0RWpWU21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFF
eXQvTm1XYTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJK
WEpnRWNpMHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIr
WFc1MnpGYTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFX
U202NWRLWUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2
S29EVFgwVlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlU
SlZEZ05FbGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1
cCtXbDBGcGpyMmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9M
OVdBV1NiREpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytW
czJSNDV2ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxD
cFRrMlQzR1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4
dTFwY3ZSQWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQ
eEg5OG5ac3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMy
a0pDZWpxeVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZY
TEZPeUFBb3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxv
TmtuM1ZmUFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVt
Zit1U0xQOGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdi
Y1hBSGtXbE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBy
cEwvWkp6Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1m
WFY0ZDJiM3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9L
ODlJbU50SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8r
YVY2NS84RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNN
aVZRVnVLb1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90
OFN1bkpZN04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQ
ZWFSN28rZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThR
Qjk5WHFZbmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjlt
NDhyUXJ4UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1
WXcwMTUrUWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDRE
ZGxjZnkzNkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZu
ODF0dnJoLzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQ
TGtqSGUyZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtL
c3V5OGQ5cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5x
MzdQUmZsZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9p
NTdsVHgzMnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJj
RnFNVXUyMFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpv
TE5XeG1NMU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNK
aDFxb2hGcjF3WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45
SzhPOTFOOGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9w
dStiNXBPWGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRF
bjJuV3FZNjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHht
S2h2NDlHZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpC
ak5rcHhyazJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1k
dGZISmpwcnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3Ay
cGN0SHdZclphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3
QmdPWk4yVjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tp
VkJ6MFhYeGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2
MGlwbXpEcmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5
eXo0OVM4Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1Za
UXRId1FxWlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2
S3BGUDJtclRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3
YW1XeW95WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpu
TmduWFIrK0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2
VGQ5WU5acDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVw
TXROYzhtZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJW
WlhrU2VmdWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFq
UC9BYWlhTm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0
ejNXem50bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2
ZytSZUI3Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRM
UFJsdkR6SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHVi
QzcwbXgzemYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMw
d0JaS1hyWlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQ
dFFjWi9ZRG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91
ZUE5Slg1TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4
WTFKbzNoaTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1ky
MUJHVzBMeGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9x
eUxlSTlWaVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlU
NWw5VDA5U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6
U05UbmJXdjZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1
cDF5bjlzVkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndP
L0gya0w4dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0ph
eG1LaHRVUC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lz
MWJ4dmtXbmZHclJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3
dis0aHB1RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExu
V2NFeUdXdjB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9s
SDdBVkZyMHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9W
UEFETXR6cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5K
Zng5cHBub1YvdmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAw
MnZTcGcwNnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdF
WHd6K3d2TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpL
OUYzcTJVa0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1v
eWFoOWxtL2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0Vlhi
YVU3VUJsOFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3
aGxvQ2x1M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3Uv
Uk5PKzgwRzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdv
K0Zac2Rqb2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1Ax
eE1PeDdQQmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0
TzlZV21odU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRh
UFkrSElqNFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEz
TUxhMzY0TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpX
RjBCYXNIVzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJ
cm1XaGIzays5SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9X
N0IydURVWUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VP
M2dKOFB2U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3
dzRuODBHUEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQ
Zkgrelo3NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3
cjVIQTJIdjdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9M
YnRYTDJHV255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85
cjl2aTM5MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gz
QXZnVjdkeXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9n
OXRQSkVRdTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KKzxpbWcgaWQ9ImkyIj4KKworPHNjcmlw
dD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBz
Oi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02
NHg2NC5wbmciOwordmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy90aHVuZGVy
YmlyZC1sb2dvLTY0eDY0LnBuZyI7CisKK1Rlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZl
bnRzIHRoZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCisKK1Rl
c3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgICAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENv
bnRleHQoY2FudmFzKSk7CisgICAgZ2wudmlld3BvcnQoMCwwLGNhbnZhcy53aWR0aCxjYW52YXMu
aGVpZ2h0KTsKKyAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOworICAgIGdsLmNsZWFyKGdsLkNP
TE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICBnbC5kaXNhYmxlKGds
LkRFUFRIX1RFU1QpOworICAgIHJldHVybiBbZ2xdOworfQorCitUZXN0cy5zZXR1cCA9IGZ1bmN0
aW9uKGdsKSB7CisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRl
eEN1YmVNYXApOworICAgIHJldHVybiBbZ2xdCit9CisKK1Rlc3RzLnRlYXJkb3duID0gZnVuY3Rp
b24oZ2wsIHRleCwgdGV4Q3ViZU1hcCkgeworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIG51bGwpOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKKyAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFX0NVQkVfTUFQLCBudWxsKTsKKyAgICBnbC5kZWxldGVUZXh0dXJlKHRleEN1
YmVNYXApOworfQorCitUZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7CisgICAg
Z2wuZW5hYmxlKGdsLkJMRU5EKTsKKyAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2knKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7CisgICAg
dmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHguZHJhd0ltYWdlKGltZywwLDAp
OworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgaW1nKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdF
KTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJ
TFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICB2YXIgZiA9IG5ldyBGaWx0ZXIo
Z2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOworICAgIGdsLmJsZW5k
RnVuYyhnbC5PTkUsIGdsLlpFUk8pOworICAgIGYuYXBwbHkoKTsKKyAgICBmLmRlc3Ryb3koKTsK
KyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGMpOworICAgIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZs
aXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7CisgICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBI
QSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7CisgICAgZi5hcHBseSgpOworICAgIGYuZGVzdHJv
eSgpOworICAgIHZhciB2YWxpZF90YXJnZXRzID0gWworICAgICAgICBnbC5URVhUVVJFXzJELAor
ICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCisgICAgICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZLAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCisgICAgICAg
IGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9ORUdBVElWRV9aCisgICAgXTsKKyAgICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rp
b24odCkgeworICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnRleEltYWdlMkQodCwgMCwg
Z2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7CisgICAgICAgIGFzc2Vy
dE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBjKTt9KTsKKyAgICB9KTsKK30KKworVGVzdHMudGVzdFRleEltYWdlMkRO
b25TT1AgPSBmdW5jdGlvbihnbCkgeworICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaTInKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Cisg
ICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHguZHJhd0ltYWdlKGltZyww
LDApOworICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGNyb3Nz
LW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCisgICAgICBmdW5jdGlvbigp
e2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgaW1nKTt9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleElt
YWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwK
KyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKK30KKworVGVzdHMuZW5kVW5pdCA9
IGZ1bmN0aW9uKGdsKSB7Cit9OworCisoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgY29uc3QgaW1n
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CisgICAgdHJ5IHsKKyAgICAgICAgYXdh
aXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRlZmF1
bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0
RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaW5pdFRlc3RzKCk7Cit9KSgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY4ZWMyYWEwOTdiMWZkMzE0ZTgx
NzVjNzE1YWMzYmVmMDE2NmYzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsxLDE2MCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPCEtLQor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0eS1m
bGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMzIFZlcnRl
eDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQg
bWFpbigpCit7CisgICAgdGV4Q29vcmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCAwLjAsIDAu
MCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iaWRlbnRpdHktaGZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PgorYXR0cmlidXRlIHZlYzMgVmVydGV4OworYXR0cmlidXRlIHZlYzIgVGV4OworCit2YXJ5aW5n
IHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhDb29yZDAgPSB2ZWM0KDEu
MC1UZXgucywgVGV4LnQsIDAuMCwgMC4wKTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4
LCAxLjApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlmb3Jt
IHNhbXBsZXIyRCBUZXh0dXJlOworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWlu
KCkKK3sKKyAgICB2ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKKyAg
ICBnbF9GcmFnQ29sb3IgPSBjOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+PGJvZHk+Cis8Y2FudmFz
IGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0i
YyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgorPGltZyBpZD0iaSIgd2lkdGg9
IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3
SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZBNVZmQkd6YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZa
N01hcG1TbTNNbHNodTh4T2RDcERKdDN2L2FFQkFVSEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMy
YkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3T3ZCa2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJR
NDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4NVUzWHY1WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5
MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05GTytaTTFmMmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJT
RW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFWdG1ONnA0TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4
SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1wZlRXK3B5VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JH
bmFNU1pxcE5zazE3eWJLbFM2RFRML2l4Ym90UmxqNWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5T
bDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2Nnd5aldoWUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdz
NnhTbW11WGNyY3pVZTUyeHN0ekhmUGxic2RjdWR0NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlT
amVRUmtBcnplYlFWbGxNNnA3YlViMTQ5VUY0RWpWU21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRz
aEZYbVpVcEhuWEZFR0IvT3pKc3JkanFFeXQvTm1XYTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJx
M21aUXo5Z002dTlYRkVCcXNnQ2NhVHJKWEpnRWNpMHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZK
UWZ6TXFVOHo1a29kenNTWmJtT2VJWGIrWFc1MnpGYTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9y
WEZabEJIYkFiMTF6YWora21HVWJOdUFXU202NWRLWUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2
VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2S29EVFgwVlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRx
WHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlUSlZEZ05FbGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3Qz
eU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1cCtXbDBGcGpyMmxKTWNSTE02eW55dk96amh4SUl0N0Er
QlhZOUdyNnEwTDQvOVNBYVJveEw3dy9MOVdBV1NiREpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2Vt
K2VrNmlsMC9MQjc0cWFUeFRKb0dqKytWczJSNDV2ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJj
em4rdmNEc215bkx0UXlVNUdUZUxjekxDcFRrMlQzR1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZ
ak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4dTFwY3ZSQWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5R
eUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQeEg5OG5ac3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9M
czd3N2xaMzViN25iOHNjeHQvN2RTbDMya0pDZWpxeVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJx
MTJaUVBiWWExSDlmdXdCMFN3V1FsYTZYTEZPeUFBb3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQv
c3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxvTmtuM1ZmUFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0
T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVtZit1U0xQOGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYv
QUc4V2lWOVZiOWFvWnExNDFhek9veFdiY1hBSGtXbE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJV
QkgyWDVZdmJsK1JCejBXNWU2TkJKdHBycEwvWkp6Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhW
Yy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlF
MnYrdHFxVi8ydzJRTElOaGtrUDJOaC9LODlJbU50SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIv
MXR0eS8yU2gzdXh2a3p2VjZHWStGcE8rYVY2NS84RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRV
N2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNNaVZRVnVLb1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFW
WSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90OFN1bkpZN04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZI
NzdiWG5RYzFIdWRUZklURmVkakxXRnBQZWFSN28rZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJ
NVZad25WUVU1aWJjcTlueDF1alMvNThRQjk5WHFZbmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9H
QmVDeUdLWEVuU0UxMVFlazU1UHpjdjltNDhyUXJ4UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVO
TWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1WXcwMTUrUWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0
OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDREZGxjZnkzNkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhX
QXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZuODF0dnJoLzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpy
YnBTWjYvVXkxVlVua3gyMU10d1NrSjVQTGtqSGUyZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09t
ejFXNUhyWStGYkY0UjFNQThEbVdMVEtLc3V5OGQ5cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1
bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5xMzdQUmZsZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hs
cThVdlB4K2VsL2NvWnVWWjNYQzZmcS9pNTdsVHgzMnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJl
b2xmTldQU3FXYXRCOWRPYUJiREdsNEJjRnFNVXUyMFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9X
QXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpvTE5XeG1NMU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4
eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNKaDFxb2hGcjF3WS81WHhad1d3L3RlQXM5S1R2d3R3Wkgr
MlhBMVZ5WEJyVUI3MFhGei90Rjluek45SzhPOTFOOGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2
a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZ
NHRPK2FORnIwcHN0Z0QyT05MbHpNSGRFbjJuV3FZNjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldm
Z1gxOHoxNUpydXFwT3B6bHFaYUE4bHhtS2h2NDlHZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZo
MHlsbXJUdm1UVlorOEFGejVIc0R6QlpCak5rcHhyazJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZt
ZzMvbityUHd6MXl2azVtdU9wbGVXSk1kdGZISmpwcnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQ
MWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3AycGN0SHdZclphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDll
QlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3QmdPWk4yVjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxF
QXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tpVkJ6MFhYeGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4
NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2MGlwbXpEcmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpu
dHd2TjY3K1RtYXUxeWREdm1ib3QzNng5eXo0OVM4Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhh
eGVQZjRyNGhzVmdIUGg5d0J6clNsU1ZaUXRId1FxWlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21z
VGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2S3BGUDJtclRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJl
THkyWFRzcEVlNDNjZjhHei9UWUVYeVk3YW1XeW95WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtX
WXRXK1pORnA1VE5GRUMyeVNEN1hWWUpuTmduWFIrK0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpF
OTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2VGQ5WU5acDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95
VE96Y2F0dnd4M3NZMytyOG8rRExaRVVwTXROYzhtZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0
MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJWWlhrU2VmdWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdK
enBxWktLOVJzYmJRL0hKOXREM2s1MDFqUC9BYWlhTm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdD
eVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0ejNXem50bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3
NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2ZytSZUI3Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01
WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRMUFJsdkR6SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JM
WUM4akRRNVZaWW40WXNuWkxRdEtIZHViQzcwbXgzemYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIy
ZjhCNTZUcmxIVXAyc1YweWFOWW1uODMwd0JaS1hyWlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExS
LytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQdFFjWi9ZRG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXAr
TnV1VVl0bWdBQnlwV25GWmpIS29JRk91ZUE5Slg1TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZu
NHpIZ296L3dHb216YTdkNlpwZE1aTkc4WTFKbzNoaTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNE
UW9NOWRmM1dtL012ZzFXdzcrV0N3a1kyMUJHVzBMeGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlh
VFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9xeUxlSTlWaVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZL
YURRb0k5SEEvR2hiOEp1eEtPTS84QnlUNWw5VDA5U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZ
RnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6U05UbmJXdjZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0z
L0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1cDF5bjlzVkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcith
MFgvc3ovSzBGZnpRYWxORm9JSG42UndPL0gya0w4dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJY
TFlBVWpXU202NlF3eXl6ZVk0VVN1M0pheG1LaHRVUC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdv
NEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lzMWJ4dmtXbmZHclJLK05yRllBOVJTdlpab01jM091VWR6
d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3dis0aHB1RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZL
aFJhZDhhbDN6NThDMDRyYWx5SW1TWExuV2NFeUdXdjB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJI
V2dNeTNCcVE0VmIvL0hCcjRORkkxTS9sSDdBVkZyMHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9D
ck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9WUEFETXR6cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8x
cnNLUnJKTmhta1lxOURMbCtva0Z1Zm5KZng5cHBub1YvdmMvdXRudmF4TmNiOFRRVS9JTU90Zmhs
cThjZUhXL3pmRDBjREY3WjdJNEhmcXAwMnZTcGcwNnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hK
cC9WSFpURGlrNG1PelkzNEwzM2FiKzdFWHd6K3d2TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZ
RE9vSDJZWTFVK2RhYnA0UWFaSkxoelpLOUYzcTJVa0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZ
anZ5VkJMNEozdDNqemdUYkRUWmxRSE1veWFoOWxtL2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1
VHdWOVlFVjk4c01VL05SRG04Zzk0VlhiYVU3VUJsOFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6
MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3aGxvQ2x1M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94
VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3UvUk5PKzgwRzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1Ri
VHphcWd5MFBQeHVmQklOQkFiYnc4OUdvK0Zac2Rqb2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NB
eCtncE8rK0cxeHZ4VndSK00rR1F3N1AxeE1PeDdQQmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tk
NndpRlI5dERzZkgybXRoSUxQUm9yQzA0TzlZV21odU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBo
ZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRhUFkrSElqNFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dC
Nk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEzTUxhMzY0TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dO
aHo1LzdtNzBqQTJIUG1XM2VFK0QvclpXRjBCYXNIVzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYz
K09lR1cveHpRNjMrK2FFV2YzeW94WmRJcm1XaGIzays5SU5Mb1Y4S3Z2UTNlK01EemQ0Zitwczkv
OUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9XN0IydURVWUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpR
MUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdN
VmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3dzRuODBHUEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5
OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQZkgrelo3NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pj
NFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3cjVIQTJIdjdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3Mr
ZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9MYnRYTDJHV255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJE
M1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85cjl2aTM5MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNH
dzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gzQXZnVjdkeXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9nOXRQSkVRdTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4K
KzxpbWcgaWQ9ImkyIj4KKworPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3Zh
ciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNv
dXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5wbmciOwordmFyIGxvY2FsSW1nVXJsID0gIi4u
Ly4uLy4uL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBuZyI7CisKK1Rlc3RzLmF1
dG9pbml0ID0gZmFsc2U7IC8vIFByZXZlbnRzIHRoZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0
aGUgaW1hZ2UgaXMgbG9hZGVkCisKK1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7CisgICAgdmFyIGds
ID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7CisKKyAgICBnbC52aWV3cG9y
dCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQpOworICAgIGdsLmNsZWFyQ29sb3IoMCww
LDEsMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZF
Ul9CSVQpOworICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7CisgICAgcmV0dXJuIFtnbF07
Cit9CisKK1Rlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIgdGV4ID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Cisg
ICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1hcCk7CisgICAgcmV0dXJuIFtnbF0KK30K
KworVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwgdGV4LCB0ZXhDdWJlTWFwKSB7CisgICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgZ2wuZGVsZXRlVGV4dHVy
ZSh0ZXgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIG51bGwpOwor
ICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7Cit9CisKK1Rlc3RzLnRlc3RUZXhJbWFn
ZTJEID0gZnVuY3Rpb24oZ2wpIHsKKyAgICBnbC5lbmFibGUoZ2wuQkxFTkQpOworICAgIHZhciBp
bWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScpOworICAgIHZhciBjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2MnKTsKKyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwor
ICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOworICAgIGds
LnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgaW1nKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICB2YXIgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVu
dGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOworICAgIGdsLmJsZW5kRnVuYyhnbC5P
TkUsIGdsLlpFUk8pOworICAgIGYuYXBwbHkoKTsKKyAgICBmLmRlc3Ryb3koKTsKKyAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpOworICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7CisgICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdp
ZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKKyAgICBnbC5ibGVuZEZ1bmMo
Z2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKKyAgICBmLmFwcGx5KCk7Cisg
ICAgZi5kZXN0cm95KCk7CisgICAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCisgICAgICAgIGdsLlRF
WFRVUkVfMkQsCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKKyAgICAg
ICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAorICAgICAgICBnbC5URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1ksCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVf
WSwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAorICAgICAgICBnbC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKKyAgICBdOworICAgIHZhbGlkX3RhcmdldHMuZm9y
RWFjaChmdW5jdGlvbih0KSB7CisgICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7CisgICAgICAg
ICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBjKTsKKyAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKHQsIDAsIDAsIDAs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgICAgICB9KTsKKyAgICAgICAgYXNz
ZXJ0T2soZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKHQsIDEsIGds
LlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgICAgICAgICAgICAgIGds
LnRleFN1YkltYWdlMkQodCwgMSwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7
CisgICAgICAgIH0pOworICAgIH0pOworfQorCitUZXN0cy50ZXN0VGV4SW1hZ2UyRE5vblNPUCA9
IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
MicpOworICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKKyAgICB2YXIg
Y3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Cisg
ICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2lu
IGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBpbWcpO30pOworICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2Uy
RCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCisgICAg
ICBmdW5jdGlvbigpe2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOworICAgIGFzc2VydFRocm93Tm9HTEVycm9y
KGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4
Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOworICAgIGFzc2Vy
dFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52
YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
Yyk7fSk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgeworfTsKKworKGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
MicpOworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9h
ZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgk
e2V9KS5gKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGluaXRUZXN0cygpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNz
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNzU4YjQzYmQ5ZGRmMGJmMWMwMmFmNWE1ZjYxNjk0ZmY4MGU1M2M2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3NzCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCitUZXN0cyBmb3IgdGhlIE9wZW5HTCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAor
CitDb3B5cmlnaHQgKEMpIDIwMDkgIElsbWFyaSBIZWlra2luZW4gPGlsbWFyaS5oZWlra2luZW5A
Z21haWwuY29tPgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbgorb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24KK2ZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwg
aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKK3Jlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLAorY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29m
dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorU29mdHdhcmUgaXMgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKK2NvbmRpdGlvbnM6CisK
K1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKK09GIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECitOT05JTkZSSU5HRU1FTlQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVAorSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCitXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKK0ZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKK09U
SEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKworKi8KKy5vayB7CisgIGNvbG9yOiBncmVl
bjsKK30KKy5mYWlsIHsKKyAgY29sb3I6IHJlZDsKK30KK2NhbnZhcyB7CisgIGRpc3BsYXk6IG5v
bmU7Cit9CisjdGVzdC1zdGF0dXMgeworICBmb250LXNpemU6IGxhcmdlOworfQorCisjdGVzdC1s
b2cgeworICBwYWRkaW5nLWxlZnQ6IDAuNWVtOworICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTsKKyAg
YmFja2dyb3VuZDogd2hpdGU7CisgIGNvbG9yOiBibGFjazsKK30KKyN0ZXN0LWxvZyA+IGRpdiB7
CisgIHBhZGRpbmctYm90dG9tOiAwLjVlbTsKK30KKyN0ZXN0LWxvZyBoMiB7CisgIGZvbnQtc2l6
ZTogMWVtOworICBtYXJnaW4tYm90dG9tOiAwZW07CisgIHBhZGRpbmctdG9wOiAwLjVlbTsKK30K
KyN0ZXN0LWxvZyBoMyB7CisgIGZvbnQtc2l6ZTogc21hbGw7CisgIG1hcmdpbi1sZWZ0OiAxLjVl
bTsKKyAgbWFyZ2luLWJvdHRvbTogMGVtOworICBtYXJnaW4tdG9wOiAwLjVlbTsKK30KKyN0ZXN0
LWxvZyBwIHsKKyAgbWFyZ2luLWxlZnQ6IDRlbTsKKyAgZm9udC1zaXplOiBzbWFsbDsKKyAgbWFy
Z2luLXRvcDogMGVtOworICBtYXJnaW4tYm90dG9tOiAwLjJlbTsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS91bml0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2NhMjFjNGNhZTgyMjI2ZTVhMmNjMzViNzc0MTc1MjVkYWNjZTAzMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzCkBAIC0wLDAgKzEsOTcwIEBACisvKgorVW5p
dCB0ZXN0aW5nIGxpYnJhcnkgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFzIGNvbnRl
eHQKKyovCisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworLyog
LS0gcGxhZm9ybSBzcGVjaWZpYyBjb2RlIC0tICovCisKKy8vIFdlYktpdAoraWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyID0gd2luZG93LnRlc3RSdW5uZXI7Cit9CisKK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgLy8gVGhl
IFdlYktpdCB0ZXN0aW5nIHN5c3RlbSBjb21wYXJlcyBjb25zb2xlIG91dHB1dC4KKyAgLy8gQmVj
YXVzZSB0aGUgb3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0cyBpcyBHUFUgZGVwZW5kZW50CisgIC8v
IHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMuCisgIHdpbmRvdy5jb25zb2xlLmxvZyA9IGZ1
bmN0aW9uKCkgeyB9OworICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9Owor
CisgIC8vIFJBRiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhl
IHRlc3RzIHdpbGwKKyAgLy8gdXNlIHNldFRpbWVvdXQgaW5zdGVhZC4KKyAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgd2luZG93LndlYmtpdFJlcXVlc3RBbmlt
YXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQo
ZmFsc2UpOworfQorCisvKiAtLSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSAtLSovCitUZXN0
cyA9IHsKKyAgYXV0b3J1biA6IHRydWUsCisgIG1lc3NhZ2UgOiBudWxsLAorICBkZWxheSA6IDAs
CisgIGF1dG9pbml0OiB0cnVlLAorCisgIHN0YXJ0VW5pdCA6IGZ1bmN0aW9uKCl7IHJldHVybiBb
XTsgfSwKKyAgc2V0dXAgOiBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSwKKyAgdGVh
cmRvd24gOiBmdW5jdGlvbigpIHt9LAorICBlbmRVbml0IDogZnVuY3Rpb24oKSB7fQorfQorCit2
YXIgX190ZXN0U3VjY2Vzc19fID0gdHJ1ZTsKK3ZhciBfX3Rlc3RGYWlsQ291bnRfXyA9IDA7Cit2
YXIgX190ZXN0TG9nX187Cit2YXIgX19iYWNrbG9nX18gPSBbXTsKKwordmFyIGdldFVybE9wdGlv
bnMgPSAoZnVuY3Rpb24oKSB7CisgIHZhciBfdXJsT3B0aW9uc1BhcnNlZCA9IGZhbHNlOworICB2
YXIgX3VybE9wdGlvbnMgPSB7fTsKKyAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgIGlmICghX3Vy
bE9wdGlvbnNQYXJzZWQpIHsKKyAgICAgIHZhciBzID0gd2luZG93LmxvY2F0aW9uLmhyZWY7Cisg
ICAgICB2YXIgcSA9IHMuaW5kZXhPZigiPyIpOworICAgICAgdmFyIGUgPSBzLmluZGV4T2YoIiMi
KTsKKyAgICAgIGlmIChlIDwgMCkgeworICAgICAgICBlID0gcy5sZW5ndGg7CisgICAgICB9Cisg
ICAgICB2YXIgcXVlcnkgPSBzLnN1YnN0cmluZyhxICsgMSwgZSk7CisgICAgICB2YXIgcGFpcnMg
PSBxdWVyeS5zcGxpdCgiJiIpOworICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxl
bmd0aDsgKytpaSkgeworICAgICAgICB2YXIga2V5VmFsdWUgPSBwYWlyc1tpaV0uc3BsaXQoIj0i
KTsKKyAgICAgICAgdmFyIGtleSA9IGtleVZhbHVlWzBdOworICAgICAgICB2YXIgdmFsdWUgPSBk
ZWNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgICAgICBfdXJsT3B0aW9uc1trZXld
ID0gdmFsdWU7CisgICAgICB9CisgICAgICBfdXJsT3B0aW9uc1BhcnNlZCA9IHRydWU7CisgICAg
fQorCisgICAgcmV0dXJuIF91cmxPcHRpb25zOworICB9Cit9KSgpOworCitpZiAodHlwZW9mIHF1
aWV0TW9kZSA9PSAndW5kZWZpbmVkJykgeworICB2YXIgcXVpZXRNb2RlID0gKGZ1bmN0aW9uKCkg
eworICAgIHZhciBfcXVpZXRNb2RlQ2hlY2tlZCA9IGZhbHNlOworICAgIHZhciBfaXNRdWlldCA9
IGZhbHNlOworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghX3F1aWV0TW9kZUNo
ZWNrZWQpIHsKKyAgICAgICAgX2lzUXVpZXQgPSAoZ2V0VXJsT3B0aW9ucygpLnF1aWV0ID09IDEp
OworICAgICAgICBfcXVpZXRNb2RlQ2hlY2tlZCA9IHRydWU7CisgICAgICB9CisgICAgICByZXR1
cm4gX2lzUXVpZXQ7CisgICAgfQorICB9KSgpOworfQorCitPYmplY3QudG9Tb3VyY2UgPSBmdW5j
dGlvbihhLCBzZWVuKXsKKyAgaWYgKGEgPT0gbnVsbCkgcmV0dXJuICJudWxsIjsKKyAgaWYgKHR5
cGVvZiBhID09ICdib29sZWFuJykgcmV0dXJuIGEgPyAidHJ1ZSIgOiAiZmFsc2UiOworICBpZiAo
dHlwZW9mIGEgPT0gJ3N0cmluZycpIHJldHVybiAnIicgKyBhLnJlcGxhY2UoLyIvZywgJ1xcIicp
ICsgJyInOworICBpZiAoYSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSByZXR1cm4gYS50b1N0cmlu
ZygpOworICBpZiAoYS53aWR0aCAmJiBhLmhlaWdodCAmJiBhLmRhdGEpIHJldHVybiAiW0ltYWdl
RGF0YV0iOworICBpZiAoYSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgaWYgKCFzZWVuKSBzZWVu
ID0gW107CisgICAgdmFyIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKKyAgICBpZiAoaWR4ICE9IC0x
KSByZXR1cm4gJyMnKyhpZHgrMSkrJyMnOworICAgIHNlZW4udW5zaGlmdChhKTsKKyAgICB2YXIg
c3JjcyA9IGEubWFwKGZ1bmN0aW9uKG8peyByZXR1cm4gT2JqZWN0LnRvU291cmNlKG8sc2Vlbikg
fSk7CisgICAgdmFyIHByZWZpeCA9ICcnOworICAgIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKKyAg
ICBpZiAoaWR4ICE9IC0xKSBwcmVmaXggPSAnIycrKGlkeCsxKSsnPSc7CisgICAgcmV0dXJuIHBy
ZWZpeCArICdbJyArIHNyY3Muam9pbigiLCAiKSArICddJzsKKyAgfQorICBpZiAodHlwZW9mIGEg
PT0gJ29iamVjdCcpIHsKKyAgICBpZiAoIXNlZW4pIHNlZW4gPSBbXTsKKyAgICB2YXIgaWR4ID0g
c2Vlbi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHJldHVybiAnIycrKGlkeCsxKSsn
Iyc7CisgICAgc2Vlbi51bnNoaWZ0KGEpOworICAgIHZhciBtZW1iZXJzID0gW107CisgICAgdmFy
IG5hbWU7CisgICAgdHJ5IHsKKyAgICAgIGZvciAodmFyIGkgaW4gYSkgeworICAgICAgICBpZiAo
aS5zZWFyY2goL15bYS16QS1aMC05XSskLykgIT0gLTEpCisgICAgICAgICAgbmFtZSA9IGk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICBuYW1lID0gJyInICsgaS5yZXBsYWNlKC8iL2csICdcXCIn
KSArICciJzsKKyAgICAgICAgdmFyIGFpOworICAgICAgICB0cnkgeyBhaSA9IGFbaV07IH0KKyAg
ICAgICAgY2F0Y2goZSkgeyBhaSA9ICdudWxsIC8qRVJST1JfQUNDRVNTSU5HKi8nOyB9CisgICAg
ICAgIHZhciBzID0gbmFtZSArICc6JyArIE9iamVjdC50b1NvdXJjZShhaSwgc2Vlbik7CisgICAg
ICAgIG1lbWJlcnMucHVzaChzKTsKKyAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7fQorICAgIHZh
ciBwcmVmaXggPSAnJzsKKyAgICBpZHggPSBzZWVuLmluZGV4T2YoYSk7CisgICAgaWYgKGlkeCAh
PSAtMSkgcHJlZml4ID0gJyMnKyhpZHgrMSkrJz0nOworICAgIHJldHVybiBwcmVmaXggKyAneycg
KyBtZW1iZXJzLmpvaW4oIiwgIikgKyAnfScKKyAgfQorICBpZiAodHlwZW9mIGEgPT0gJ2Z1bmN0
aW9uJykKKyAgICByZXR1cm4gJygnK2EudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiICIpLnJl
cGxhY2UoL1xzKy9nLCAiICIpKycpJzsKKyAgcmV0dXJuIGEudG9TdHJpbmcoKTsKK30KKworZnVu
Y3Rpb24gZm9ybWF0RXJyb3IoZSkgeworICBpZiAod2luZG93LmNvbnNvbGUpIGNvbnNvbGUubG9n
KGUpOworICB2YXIgcGF0aFNlZ3MgPSBsb2NhdGlvbi5ocmVmLnRvU3RyaW5nKCkuc3BsaXQoIi8i
KTsKKyAgdmFyIGN1cnJlbnREb2MgPSBlLmxpbmVOdW1iZXIgIT0gbnVsbCA/IHBhdGhTZWdzW3Bh
dGhTZWdzLmxlbmd0aCAtIDFdIDogbnVsbDsKKyAgdmFyIHRyYWNlID0gKGUuZmlsZW5hbWUgfHwg
Y3VycmVudERvYykgKyAiOiIgKyBlLmxpbmVOdW1iZXIgKyAoZS50cmFjZSA/ICJcbiIrZS50cmFj
ZSA6ICIiKTsKKyAgcmV0dXJuIGUubWVzc2FnZSArICJcbiIgKyB0cmFjZTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdHMoKSB7CisgIHZhciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qt
c3RhdHVzJyk7CisgIGlmIChoID09IG51bGwpIHsKKyAgICBoID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaDEnKTsKKyAgICBoLmlkID0gJ3Rlc3Qtc3RhdHVzJzsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGgpOworICB9CisgIGgudGV4dENvbnRlbnQgPSAiIjsKKyAgdmFyIGxvZyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWxvZycpOworICBpZiAobG9nID09IG51bGwp
IHsKKyAgICBsb2cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBsb2cuaWQg
PSAndGVzdC1sb2cnOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9nKTsKKyAgfQor
ICB3aGlsZSAobG9nLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkKKyAgICBsb2cucmVtb3ZlQ2hpbGQo
bG9nLmZpcnN0Q2hpbGQpOworCisgIHZhciBzZXR1cF9hcmdzID0gW107CisKKyAgaWYgKFRlc3Rz
LnN0YXJ0VW5pdCAhPSBudWxsKSB7CisgICAgX190ZXN0TG9nX18gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICB0cnkgeworICAgICAgc2V0dXBfYXJncyA9IFRlc3RzLnN0YXJ0
VW5pdCgpOworICAgICAgaWYgKF9fdGVzdExvZ19fLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkKKyAg
ICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAg
ICAgIHRlc3RGYWlsZWQoInN0YXJ0VW5pdCIsIGZvcm1hdEVycm9yKGUpKTsKKyAgICAgIGxvZy5h
cHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7CisgICAgICBwcmludFRlc3RTdGF0dXMoKTsKKyAgICAg
IHJldHVybjsKKyAgICB9CisgIH0KKworICB2YXIgdGVzdHNSdW4gPSBmYWxzZTsKKyAgdmFyIGFs
bFRlc3RzU3VjY2Vzc2Z1bCA9IHRydWU7CisKKyAgZm9yICh2YXIgaSBpbiBUZXN0cykgeworICAg
IGlmIChpLnN1YnN0cmluZygwLDQpICE9ICJ0ZXN0IikgY29udGludWU7CisgICAgX190ZXN0TG9n
X18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBfX3Rlc3RTdWNjZXNzX18g
PSB0cnVlOworICAgIHRyeSB7CisgICAgICBkb1Rlc3ROb3RpZnkgKGkpOworICAgICAgdmFyIGFy
Z3MgPSBzZXR1cF9hcmdzOworICAgICAgaWYgKFRlc3RzLnNldHVwICE9IG51bGwpCisgICAgICAg
IGFyZ3MgPSBUZXN0cy5zZXR1cC5hcHBseShUZXN0cywgc2V0dXBfYXJncyk7CisgICAgICBUZXN0
c1tpXS5hcHBseShUZXN0cywgYXJncyk7CisgICAgICBpZiAoVGVzdHMudGVhcmRvd24gIT0gbnVs
bCkKKyAgICAgICAgVGVzdHMudGVhcmRvd24uYXBwbHkoVGVzdHMsIGFyZ3MpOworICAgIH0KKyAg
ICBjYXRjaCAoZSkgeworICAgICAgdGVzdEZhaWxlZChpLCBlLm5hbWUsIGZvcm1hdEVycm9yKGUp
KTsKKyAgICB9CisgICAgaWYgKF9fdGVzdFN1Y2Nlc3NfXyA9PSBmYWxzZSkgeworICAgICAgKytf
X3Rlc3RGYWlsQ291bnRfXzsKKyAgICB9CisgICAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdoMicpOworICAgIGgudGV4dENvbnRlbnQgPSBpOworICAgIF9fdGVzdExvZ19fLmluc2Vy
dEJlZm9yZShoLCBfX3Rlc3RMb2dfXy5maXJzdENoaWxkKTsKKyAgICBsb2cuYXBwZW5kQ2hpbGQo
X190ZXN0TG9nX18pOworICAgIGFsbFRlc3RzU3VjY2Vzc2Z1bCA9IGFsbFRlc3RzU3VjY2Vzc2Z1
bCAmJiBfX3Rlc3RTdWNjZXNzX18gPT0gdHJ1ZTsKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFy
bmVzcyhfX3Rlc3RTdWNjZXNzX18sIGkpOworICAgIGRvVGVzdE5vdGlmeSAoaSsiLS0iKyhfX3Rl
c3RTdWNjZXNzX18/Ik9LIjoiRkFJTCIpKTsKKyAgICB0ZXN0c1J1biA9IHRydWU7CisgIH0KKwor
ICBwcmludFRlc3RTdGF0dXModGVzdHNSdW4pOworICBpZiAoVGVzdHMuZW5kVW5pdCAhPSBudWxs
KSB7CisgICAgX190ZXN0TG9nX18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICB0cnkgeworICAgICAgVGVzdHMuZW5kVW5pdC5hcHBseShUZXN0cywgc2V0dXBfYXJncyk7Cisg
ICAgICBpZiAoX190ZXN0TG9nX18uY2hpbGROb2Rlcy5sZW5ndGggPiAwKQorICAgICAgICBsb2cu
YXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOworICAgIH0gY2F0Y2goZSkgeworICAgICAgdGVzdEZh
aWxlZCgiZW5kVW5pdCIsIGUubmFtZSwgZm9ybWF0RXJyb3IoZSkpOworICAgICAgbG9nLmFwcGVu
ZENoaWxkKF9fdGVzdExvZ19fKTsKKyAgICB9CisgIH0KKyAgbm90aWZ5RmluaXNoZWRUb0hhcm5l
c3MoYWxsVGVzdHNTdWNjZXNzZnVsLCAiZmluaXNoZWQgdGVzdHMiKTsKK30KKworZnVuY3Rpb24g
ZG9UZXN0Tm90aWZ5KG5hbWUpIHsKKyAgLy90cnnCoHsKKyAgLy8gIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKKyAgLy8gIHhoci5vcGVuKCJHRVQiLCAiaHR0cDovL2xvY2FsaG9zdDo4
ODg4LyIrbmFtZSwgdHJ1ZSk7CisgIC8vICB4aHIuc2VuZChudWxsKTsKKyAgLy99IGNhdGNoKGUp
IHt9Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWlsZWQoYXNzZXJ0TmFtZSwgbmFtZSkgeworICB2YXIg
ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICB2YXIgaCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2gzJyk7CisgIHZhciBkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKKyAgaC5hcHBlbmRDaGlsZChkMSk7CisgIGQxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJGQUlMOiAiKSk7CisgIGQxLnN0eWxlLmNvbG9yID0gInJlZCI7CisgIGgu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoCisgICAgICBuYW1lPT1udWxsID8g
YXNzZXJ0TmFtZSA6IG5hbWUgKyAiIChpbiAiICsgYXNzZXJ0TmFtZSArICIpIikpOworICBkLmFw
cGVuZENoaWxkKGgpOworICB2YXIgYXJncyA9IFtdCisgIGZvciAodmFyIGk9MjsgaTxhcmd1bWVu
dHMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgYSA9IGFyZ3VtZW50c1tpXTsKKyAgICB2YXIgcCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgICBwLnN0eWxlLndoaXRlU3BhY2UgPSAn
cHJlJzsKKyAgICBwLnRleHRDb250ZW50ID0gKGEgPT0gbnVsbCkgPyAibnVsbCIgOgorICAgICAg
ICAgICAgICAgICAgICAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiBhID09ICdzdHJp
bmcnKSA/IGEgOiBPYmplY3QudG9Tb3VyY2UoYSk7CisgICAgYXJncy5wdXNoKHAudGV4dENvbnRl
bnQpOworICAgIGQuYXBwZW5kQ2hpbGQocCk7CisgIH0KKyAgX190ZXN0TG9nX18uYXBwZW5kQ2hp
bGQoZCk7CisgIF9fdGVzdFN1Y2Nlc3NfXyA9IGZhbHNlOworICBkb1Rlc3ROb3RpZnkoW2Fzc2Vy
dE5hbWUsIG5hbWVdLmNvbmNhdChhcmdzKS5qb2luKCItLSIpKTsKK30KKworZnVuY3Rpb24gdGVz
dFBhc3NlZChhc3NlcnROYW1lLCBuYW1lKSB7CisgIGlmICghcXVpZXRNb2RlKCkpIHsKKyAgICB2
YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciBoID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKKyAgICB2YXIgZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CisgICAgaC5hcHBlbmRDaGlsZChkMSk7CisgICAgZDEuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1M6ICIpKTsKKyAgICBkMS5zdHlsZS5jb2xvciA9
ICJncmVlbiI7CisgICAgaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKKyAg
ICAgICAgbmFtZT09bnVsbCA/IGFzc2VydE5hbWUgOiBuYW1lICsgIiAoaW4gIiArIGFzc2VydE5h
bWUgKyAiKSIpKTsKKyAgICBkLmFwcGVuZENoaWxkKGgpOworICAgIHZhciBhcmdzID0gW10KKyAg
ICBmb3IgKHZhciBpPTI7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgYSA9
IGFyZ3VtZW50c1tpXTsKKyAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcp
OworICAgICAgcC5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZSc7CisgICAgICBwLnRleHRDb250ZW50
ID0gKGEgPT0gbnVsbCkgPyAibnVsbCIgOgorICAgICAgICAgICAgICAgICAgICAgICh0eXBlb2Yg
YSA9PSAnYm9vbGVhbicgfHwgdHlwZW9mIGEgPT0gJ3N0cmluZycpID8gYSA6IE9iamVjdC50b1Nv
dXJjZShhKTsKKyAgICAgIGFyZ3MucHVzaChwLnRleHRDb250ZW50KTsKKyAgICAgIGQuYXBwZW5k
Q2hpbGQocCk7CisgICAgfQorICAgIF9fdGVzdExvZ19fLmFwcGVuZENoaWxkKGQpOworICB9Cisg
IGRvVGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFyZ3MpLmpvaW4oIi0tIikp
OworfQorCitmdW5jdGlvbiBjaGVja1Rlc3RTdWNjZXNzKCkgeworICByZXR1cm4gX190ZXN0RmFp
bENvdW50X18gPT0gMDsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5j
dGlvbigpeworICBmb3IgKHZhciBpPTA7IGk8X19iYWNrbG9nX18ubGVuZ3RoOyBpKyspCisgICAg
bG9nKF9fYmFja2xvZ19fW2ldKTsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gbG9nKG1zZykgewor
ICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgdmFyIGEgPSBbXTsKKyAg
Zm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykKKyAgICBhLnB1c2goYXJndW1l
bnRzW2ldKTsKKyAgcC50ZXh0Q29udGVudCA9IGEuam9pbigiLCAiKTsKKyAgaWYgKCFfX3Rlc3RM
b2dfXykgeworICAgIGlmIChkb2N1bWVudC5ib2R5KQorICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChwKTsKKyAgICBlbHNlCisgICAgICBfX2JhY2tsb2dfXy5wdXNoKG1zZyk7CisgIH0g
ZWxzZSB7CisgICAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQocCk7CisgIH0KK30KKworZnVuY3Rp
b24gcHJpbnRUZXN0U3RhdHVzKHRlc3RzUnVuKSB7CisgIHZhciBzdGF0dXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKKyAgaWYgKHRlc3RzUnVuKSB7CisgICAgc3Rh
dHVzLmNsYXNzTmFtZSA9IGNoZWNrVGVzdFN1Y2Nlc3MoKSA/ICdvaycgOiAnZmFpbCc7CisgICAg
c3RhdHVzLnRleHRDb250ZW50ID0gY2hlY2tUZXN0U3VjY2VzcygpID8gIlBBU1MiIDogIkZBSUwi
OworICB9IGVsc2UgeworICAgIHN0YXR1cy5jbGFzc05hbWUgPSAnZmFpbCc7CisgICAgc3RhdHVz
LnRleHRDb250ZW50ID0gIk5PIFRFU1RTIEZPVU5EIjsKKyAgfQorfQorCitmdW5jdGlvbiBhc3Nl
cnRGYWlsKG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51
bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVl
OyB9CisgIGlmICghcikgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEZhaWwiLCBuYW1lLCBmKTsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiYXNzZXJ0RmFp
bCIsIG5hbWUsIGYpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dE9rKG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7
IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGVycjsKKyAgdHJ5IHsgZigpOyByPXRydWU7IH0g
Y2F0Y2goZSkgeyBlcnIgPSBlOyB9CisgIGlmICghcikgeworICAgIHRlc3RGYWlsZWQoImFzc2Vy
dE9rIiwgbmFtZSwgZiwgZXJyLnRvU3RyaW5nKCkpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBl
bHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnRPayIsIG5hbWUsIGYpOworICAgIHJldHVybiB0
cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydChuYW1lLCB2KSB7CisgIGlmICh2ID09IG51
bGwpIHsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIGlmICghdikgeworICAgIHRlc3RGYWls
ZWQoImFzc2VydCIsIG5hbWUsIHYpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAg
ICB0ZXN0UGFzc2VkKCJhc3NlcnQiLCBuYW1lLCB2KTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQor
fQorCitmdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShuYW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51
bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0gcDsgfQorICBpZiAodltwXSA9PSBudWxsKSB7
CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiYXNzZXJ0UHJvcGVydHkiLCBuYW1lKTsK
KyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlvbiBjb21wYXJlKGEsYikgeworICBp
ZiAodHlwZW9mIGEgPT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT0gJ251bWJlcicpIHsKKyAgICBy
ZXR1cm4gYSA9PSBiOworICB9IGVsc2UgeworICAgIHJldHVybiBPYmplY3QudG9Tb3VyY2UoYSkg
PT0gT2JqZWN0LnRvU291cmNlKGIpOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydEVxdWFscyhu
YW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBuYW1lID0g
bnVsbDsgfQorICBpZiAoIWNvbXBhcmUodiwgcCkpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRF
cXVhbHMiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAg
dGVzdFBhc3NlZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwgdiwgcCk7CisgICAgcmV0dXJuIHRydWU7
CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0QXJyYXlFcXVhbHMobmFtZSwgdiwgcCkgeworICBp
ZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgaWYgKCF2
KSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHM6IGZpcnN0IGFycmF5IHVuZGVm
aW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoIXApIHsK
KyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsczogc2Vjb25kIGFycmF5IHVuZGVmaW5l
ZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAodi5sZW5ndGgg
IT0gcC5sZW5ndGgpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFscyIsIG5hbWUs
IHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBmb3IgKHZhciBpaSA9IDA7IGlpIDwg
di5sZW5ndGg7ICsraWkpIHsKKyAgICBpZiAodltpaV0gIT0gcFtpaV0pIHsKKyAgICAgIHRlc3RG
YWlsZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7CisgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwg
diwgcCk7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBhc3NlcnRBcnJheUVxdWFsc1dp
dGhFcHNpbG9uKG5hbWUsIHYsIHAsIGwpIHsKKyAgaWYgKGwgPT0gbnVsbCkgeyBsID0gcDsgcCA9
IHY7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoIXYpIHsKKyAgICB0ZXN0RmFpbGVk
KCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uOiBmaXJzdCBhcnJheSB1bmRlZmluZWQiLCBu
YW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFwKSB7CisgICAgdGVz
dEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbjogc2Vjb25kIGFycmF5IHVuZGVm
aW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoIWwpIHsK
KyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uOiBsaW1pdCBhcnJh
eSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYg
KHYubGVuZ3RoICE9IHAubGVuZ3RoKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVh
bHNXaXRoRXBzaWxvbiIsIG5hbWUsIHYsIHAsIGwpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQor
ICBpZiAodi5sZW5ndGggIT0gbC5sZW5ndGgpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJh
eUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwgcCwgbCk7CisgICAgcmV0dXJuIGZhbHNlOwor
ICB9CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCB2Lmxlbmd0aDsgKytpaSkgeworICAgIGlmIChN
YXRoLmFicyh2W2lpXS0gcFtpaV0pPmxbaWldKSB7CisgICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRB
cnJheUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwgcCwgbCk7CisgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2ls
b24iLCBuYW1lLCB2LCBwLCBsKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dE5vdEVxdWFscyhuYW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBu
YW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoY29tcGFyZSh2LCBwKSkgeworICAgIHRlc3RGYWls
ZWQoImFzc2VydE5vdEVxdWFscyIsIG5hbWUsIHYsIHApCisgICAgcmV0dXJuIGZhbHNlOworICB9
IGVsc2UgeworICAgIHRlc3RQYXNzZWQoImFzc2VydE5vdEVxdWFscyIsIG5hbWUsIHYsIHApCisg
ICAgcmV0dXJuIHRydWU7CisgIH0KK30KKworZnVuY3Rpb24gdGltZShlbGVtZW50SWQsIGYpIHsK
KyAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFy
IHQwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgZigpOworICAgIHZhciB0MSA9IG5ldyBE
YXRlKCkuZ2V0VGltZSgpOworICAgIHMudGV4dENvbnRlbnQgPSAnRWxhcHNlZDogJysodDEtdDAp
KycgbXMnOworfQorCitmdW5jdGlvbiByYW5kb21GbG9hdCAoKSB7CisgICAgLy8gbm90ZSB0aGF0
IGluIGZ1enotdGVzdGluZywgdGhpcyBjYW4gdXNlZCBhcyB0aGUgc2l6ZSBvZiBhIGJ1ZmZlciB0
byBhbGxvY2F0ZS4KKyAgICAvLyBzbyBpdCBzaG91bGRuJ3QgcmV0dXJuIGFzdHJvbm9taWMgdmFs
dWVzLiBUaGUgbWF4aW11bSB2YWx1ZSAxMDAwMDAwMCBpcyBhbHJlYWR5IHF1aXRlIGJpZy4KKyAg
ICB2YXIgZmFjID0gMS4wOworICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKKyAgICBpZiAociA8
IDAuMjUpCisgICAgICAgIGZhYyA9IDEwOworICAgIGVsc2UgaWYgKHIgPCAwLjQpCisgICAgICAg
IGZhYyA9IDEwMDsKKyAgICBlbHNlIGlmIChyIDwgMC41KQorICAgICAgICBmYWMgPSAxMDAwOwor
ICAgIGVsc2UgaWYgKHIgPCAwLjYpCisgICAgICAgIGZhYyA9IDEwMDAwMDsKKyAgICBlbHNlIGlm
IChyIDwgMC43KQorICAgICAgICBmYWMgPSAxMDAwMDAwMDsKKyAgICBlbHNlIGlmIChyIDwgMC44
KQorICAgICAgICBmYWMgPSBOYU47CisgICAgcmV0dXJuIC0wLjUqZmFjICsgTWF0aC5yYW5kb20o
KSAqIGZhYzsKK30KK2Z1bmN0aW9uIHJhbmRvbUZsb2F0RnJvbVJhbmdlKGxvLCBoaSkgeworICB2
YXIgciA9IE1hdGgucmFuZG9tKCk7CisgIGlmIChyIDwgMC4wNSkKKyAgICByZXR1cm4gbG87Cisg
IGVsc2UgaWYgKHIgPiAwLjk1KQorICAgIHJldHVybiBoaTsKKyAgZWxzZQorICAgIHJldHVybiBs
byArIE1hdGgucmFuZG9tKCkqKGhpLWxvKTsKK30KK2Z1bmN0aW9uIHJhbmRvbUludCAoc3opIHsK
KyAgaWYgKHN6ICE9IG51bGwpCisgICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpz
eik7CisgIGVsc2UKKyAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21GbG9hdCgpKTsKK30KK2Z1
bmN0aW9uIHJhbmRvbUludEZyb21SYW5nZShsbywgaGkpIHsKKyAgcmV0dXJuIE1hdGguZmxvb3Io
cmFuZG9tRmxvYXRGcm9tUmFuZ2UobG8sIGhpKSk7Cit9CitmdW5jdGlvbiByYW5kb21MZW5ndGgg
KCkgeworICAgIHZhciBsID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU2KTsKKyAgICBp
ZiAoTWF0aC5yYW5kb20gPCAwLjUpIGwgPSBsIC8gMTA7CisgICAgaWYgKE1hdGgucmFuZG9tIDwg
MC4zKSBsID0gbCAvIDEwOworICAgIHJldHVybiBsOworfQorZnVuY3Rpb24gcmFuZG9tU21hbGxJ
bnRBcnJheSAoKSB7CisgICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKKyAgICB2YXIgcyA9IG5l
dyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQorICAgICAgICBzW2ldID0g
TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU2KS0xOworICAgIHJldHVybiBzOworfQorZnVu
Y3Rpb24gcmFuZG9tRmxvYXRBcnJheSAoKSB7CisgICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsK
KyAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQor
ICAgICAgICBzW2ldID0gcmFuZG9tRmxvYXQoKTsKKyAgICByZXR1cm4gczsKK30KK2Z1bmN0aW9u
IHJhbmRvbUludEFycmF5ICgpIHsKKyAgICB2YXIgbCA9IHJhbmRvbUxlbmd0aCgpOworICAgIHZh
ciBzID0gbmV3IEFycmF5KGwpOworICAgIGZvciAodmFyIGk9MDsgaTxsOyBpKyspCisgICAgICAg
IHNbaV0gPSByYW5kb21GbG9hdCgpOworICAgIHJldHVybiBzOworfQorZnVuY3Rpb24gcmFuZG9t
TWl4ZWRBcnJheSAoKSB7CisgICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKKyAgICB2YXIgcyA9
IG5ldyBBcnJheShsKTsKKyAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQorICAgICAgICBzW2ld
ID0gcmFuZG9tTm9uQXJyYXkoKTsKKyAgICByZXR1cm4gczsKK30KK2Z1bmN0aW9uIHJhbmRvbUFy
cmF5ICgpIHsKKyAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7CisgICAgaWYgKHIgPCAwLjMpCisg
ICAgICAgIHJldHVybiByYW5kb21GbG9hdEFycmF5KCk7CisgICAgZWxzZSBpZiAociA8IDAuNikK
KyAgICAgICAgcmV0dXJuIHJhbmRvbUludEFycmF5KCk7CisgICAgZWxzZSBpZiAociA8IDAuOCkK
KyAgICAgICAgcmV0dXJuIHJhbmRvbVNtYWxsSW50QXJyYXkoKTsKKyAgICBlbHNlCisgICAgICAg
IHJldHVybiByYW5kb21NaXhlZEFycmF5KCk7Cit9CitmdW5jdGlvbiByYW5kb21TdHJpbmcgKCkg
eworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgcmFuZG9tU21h
bGxJbnRBcnJheSgpKTsKK30KK2Z1bmN0aW9uIHJhbmRvbUdMQ29uc3RhbnQgKCkgeworICAgIHJl
dHVybiBHTENvbnN0YW50c1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBHTENvbnN0YW50cy5s
ZW5ndGgpXTsKK30KKworZnVuY3Rpb24gcmFuZG9tTm9uQXJyYXkoKSB7CisgICAgdmFyIHIgPSBN
YXRoLnJhbmRvbSgpOworICAgIGlmIChyIDwgMC4yNSkgeworICAgICAgICByZXR1cm4gcmFuZG9t
RmxvYXQoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjYpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRv
bUludCgpOworICAgIH0gZWxzZSBpZiAociA8IDAuNykgeworICAgICAgICByZXR1cm4gKHIgPCAw
LjY1KTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjg3KSB7CisgICAgICAgIHJldHVybiByYW5kb21T
dHJpbmcoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjk4KSB7CisgICAgICAgIHJldHVybiByYW5k
b21HTENvbnN0YW50KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
fQorfQorCitmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUFyZyhwb3MsIGNvdW50KSB7CisgICAgaWYg
KHBvcyA9PSAwICYmIE1hdGgucmFuZG9tKCkgPCAwLjUpCisgICAgICAgIHJldHVybiByYW5kb21H
TENvbnN0YW50KCk7CisgICAgaWYgKHBvcyA9PSBjb3VudC0xICYmIE1hdGgucmFuZG9tKCkgPCAw
LjI1KQorICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuNSkKKyAgICAgICAgICAgIHJldHVy
biByYW5kb21TdHJpbmcoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHJhbmRv
bUFycmF5KCk7CisgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOworICAgIGlmIChyIDwgMC4yNSkg
eworICAgICAgICByZXR1cm4gcmFuZG9tRmxvYXQoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjYp
IHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUludCgpOworICAgIH0gZWxzZSBpZiAociA8IDAuNykg
eworICAgICAgICByZXR1cm4gKHIgPCAwLjY1KTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjc3KSB7
CisgICAgICAgIHJldHVybiByYW5kb21TdHJpbmcoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjg0
KSB7CisgICAgICAgIHJldHVybiByYW5kb21BcnJheSgpOworICAgIH0gZWxzZSBpZiAociA8IDAu
OTgpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CisKKworZnVuY3Rpb24gZ2VuZXJhdGVSYW5k
b21BcmdzKGNvdW50KSB7CisgICAgdmFyIGFyciA9IG5ldyBBcnJheShjb3VudCk7CisgICAgZm9y
ICh2YXIgaT0wOyBpPGNvdW50OyBpKyspCisgICAgICAgIGFycltpXSA9IGdlbmVyYXRlUmFuZG9t
QXJnKGksIGNvdW50KTsKKyAgICByZXR1cm4gYXJyOworfQorCisvLyBxYyAoYXJnMWdlbiwgYXJn
MmdlbiwgLi4uLCBwcmVkaWNhdGUpCisvLyBxYyAocmFuZG9tU3RyaW5nLCByYW5kb21JbnQsIHJh
bmRvbUludCwgZnVuY3Rpb24ocyxpLGopeyBzLnN1YnN0cmluZyhpLGopIH0pCitmdW5jdGlvbiBx
YygpIHsKK30KKworR0xDb25zdGFudHMgPSBbCisxLAorMHgwMDAwMDEwMCwKKzB4MDAwMDA0MDAs
CisweDAwMDA0MDAwLAorMHgwMDAwLAorMHgwMDAxLAorMHgwMDAyLAorMHgwMDAzLAorMHgwMDA0
LAorMHgwMDA1LAorMHgwMDA2LAorMCwKKzEsCisweDAzMDAsCisweDAzMDEsCisweDAzMDIsCisw
eDAzMDMsCisweDAzMDQsCisweDAzMDUsCisweDAzMDYsCisweDAzMDcsCisweDAzMDgsCisweDgw
MDYsCisweDgwMDksCisweDgwMDksCisweDg4M0QsCisweDgwMEEsCisweDgwMEIsCisweDgwQzgs
CisweDgwQzksCisweDgwQ0EsCisweDgwQ0IsCisweDgwMDEsCisweDgwMDIsCisweDgwMDMsCisw
eDgwMDQsCisweDgwMDUsCisweDg4OTIsCisweDg4OTMsCisweDg4OTQsCisweDg4OTUsCisweDg4
RTAsCisweDg4RTQsCisweDg4RTgsCisweDg3NjQsCisweDg3NjUsCisweDg2MjYsCisweDA0MDQs
CisweDA0MDUsCisweDA0MDgsCisweDBERTEsCisweDBCNDQsCisweDBCRTIsCisweDBCRDAsCisw
eDBCOTAsCisweDBCNzEsCisweDBDMTEsCisweDgwMzcsCisweDgwOUUsCisweDgwQTAsCiswLAor
MHgwNTAwLAorMHgwNTAxLAorMHgwNTAyLAorMHgwNTA1LAorMHgwOTAwLAorMHgwOTAxLAorMHgw
QjIxLAorMHg4NDZELAorMHg4NDZFLAorMHgwQjQ1LAorMHgwQjQ2LAorMHgwQjcwLAorMHgwQjcy
LAorMHgwQjczLAorMHgwQjc0LAorMHgwQjkxLAorMHgwQjkyLAorMHgwQjk0LAorMHgwQjk1LAor
MHgwQjk2LAorMHgwQjk3LAorMHgwQjkzLAorMHgwQjk4LAorMHg4ODAwLAorMHg4ODAxLAorMHg4
ODAyLAorMHg4ODAzLAorMHg4Q0EzLAorMHg4Q0E0LAorMHg4Q0E1LAorMHgwQkEyLAorMHgwQzEw
LAorMHgwQzIyLAorMHgwQzIzLAorMHgwQ0Y1LAorMHgwRDA1LAorMHgwRDMzLAorMHgwRDNBLAor
MHgwRDUwLAorMHgwRDUyLAorMHgwRDUzLAorMHgwRDU0LAorMHgwRDU1LAorMHgwRDU2LAorMHgw
RDU3LAorMHgyQTAwLAorMHg4MDM4LAorMHg4MDY5LAorMHg4MEE4LAorMHg4MEE5LAorMHg4MEFB
LAorMHg4MEFCLAorMHg4NkEyLAorMHg4NkEzLAorMHgxMTAwLAorMHgxMTAxLAorMHgxMTAyLAor
MHg4MTkyLAorMHgxNDAwLAorMHgxNDAxLAorMHgxNDAyLAorMHgxNDAzLAorMHgxNDA0LAorMHgx
NDA1LAorMHgxNDA2LAorMHgxNDBDLAorMHgxOTAyLAorMHgxOTA2LAorMHgxOTA3LAorMHgxOTA4
LAorMHgxOTA5LAorMHgxOTBBLAorMHg4MDMzLAorMHg4MDM0LAorMHg4MzYzLAorMHg4QjMwLAor
MHg4QjMxLAorMHg4ODY5LAorMHg4REZCLAorMHg4REZDLAorMHg4QjRELAorMHg4QjRDLAorMHg4
ODcyLAorMHg4REZELAorMHg4QjRGLAorMHg4QjgwLAorMHg4QjgyLAorMHg4QjgzLAorMHg4Qjg1
LAorMHg4Qjg2LAorMHg4Qjg3LAorMHg4Qjg5LAorMHg4QjhBLAorMHg4QjhDLAorMHg4QjhELAor
MHgwMjAwLAorMHgwMjAxLAorMHgwMjAyLAorMHgwMjAzLAorMHgwMjA0LAorMHgwMjA1LAorMHgw
MjA2LAorMHgwMjA3LAorMHgxRTAwLAorMHgxRTAxLAorMHgxRTAyLAorMHgxRTAzLAorMHgxNTBB
LAorMHg4NTA3LAorMHg4NTA4LAorMHgxRjAwLAorMHgxRjAxLAorMHgxRjAyLAorMHgxRjAzLAor
MHgyNjAwLAorMHgyNjAxLAorMHgyNzAwLAorMHgyNzAxLAorMHgyNzAyLAorMHgyNzAzLAorMHgy
ODAwLAorMHgyODAxLAorMHgyODAyLAorMHgyODAzLAorMHgxNzAyLAorMHg4NTEzLAorMHg4NTE0
LAorMHg4NTE1LAorMHg4NTE2LAorMHg4NTE3LAorMHg4NTE4LAorMHg4NTE5LAorMHg4NTFBLAor
MHg4NTFDLAorMHg4NEMwLAorMHg4NEMxLAorMHg4NEMyLAorMHg4NEMzLAorMHg4NEM0LAorMHg4
NEM1LAorMHg4NEM2LAorMHg4NEM3LAorMHg4NEM4LAorMHg4NEM5LAorMHg4NENBLAorMHg4NENC
LAorMHg4NENDLAorMHg4NENELAorMHg4NENFLAorMHg4NENGLAorMHg4NEQwLAorMHg4NEQxLAor
MHg4NEQyLAorMHg4NEQzLAorMHg4NEQ0LAorMHg4NEQ1LAorMHg4NEQ2LAorMHg4NEQ3LAorMHg4
NEQ4LAorMHg4NEQ5LAorMHg4NERBLAorMHg4NERCLAorMHg4NERDLAorMHg4NERELAorMHg4NERF
LAorMHg4NERGLAorMHg4NEUwLAorMHgyOTAxLAorMHg4MTJGLAorMHg4MzcwLAorMHg4QjUwLAor
MHg4QjUxLAorMHg4QjUyLAorMHg4QjUzLAorMHg4QjU0LAorMHg4QjU1LAorMHg4QjU2LAorMHg4
QjU3LAorMHg4QjU4LAorMHg4QjU5LAorMHg4QjVBLAorMHg4QjVCLAorMHg4QjVDLAorMHg4QjVF
LAorMHg4QjYwLAorMHg4NjIyLAorMHg4NjIzLAorMHg4NjI0LAorMHg4NjI1LAorMHg4ODZBLAor
MHg4NjQ1LAorMHg4ODlGLAorMHg4QjlBLAorMHg4QjlCLAorMHg4QjgxLAorMHg4Qjg0LAorMHg4
Qjg4LAorMHg4REZBLAorMHg4REY4LAorMHg4REY5LAorMHg4REYwLAorMHg4REYxLAorMHg4REYy
LAorMHg4REYzLAorMHg4REY0LAorMHg4REY1LAorMHg4RDQwLAorMHg4RDQxLAorMHg4MDU2LAor
MHg4MDU3LAorMHg4RDYyLAorMHg4MUE1LAorMHgxOTAxLAorMHg4RDQ4LAorMHg4RDQyLAorMHg4
RDQzLAorMHg4RDQ0LAorMHg4RDUwLAorMHg4RDUxLAorMHg4RDUyLAorMHg4RDUzLAorMHg4RDU0
LAorMHg4RDU1LAorMHg4Q0QwLAorMHg4Q0QxLAorMHg4Q0QyLAorMHg4Q0QzLAorMHg4Q0UwLAor
MHg4RDAwLAorMHg4RDIwLAorMCwKKzB4OENENSwKKzB4OENENiwKKzB4OENENywKKzB4OENEOSwK
KzB4OENERCwKKzB4OENBNiwKKzB4OENBNywKKzB4ODRFOCwKKzB4MDUwNiwKKzB4ODA5RAorXTsK
KworZnVuY3Rpb24gcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3Moc3VjY2VzcywgbXNnKSB7Cisg
IGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKKyAgICB3aW5kb3cucGFyZW50
LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUs
IHN1Y2Nlc3MsIG1zZyk7CisgIH0KK30KKworZnVuY3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5l
c3MoKSB7CisgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKKyAgICB3aW5k
b3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQod2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lKTsKKyAgfQorfQorCitmdW5jdGlvbiBpbml0VGVzdHMoKSB7CisgIGlmIChUZXN0
cy5tZXNzYWdlICE9IG51bGwpIHsKKyAgICB2YXIgaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0LW1lc3NhZ2UnKTsKKyAgICBpZiAoaCA9PSBudWxsKSB7CisgICAgICBoID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgncCcpOworICAgICAgaC5pZCA9ICd0ZXN0LW1lc3NhZ2UnOworICAg
ICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaCwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxk
KTsKKyAgICB9CisgICAgaC50ZXh0Q29udGVudCA9IFRlc3RzLm1lc3NhZ2U7CisgIH0KKyAgaWYg
KFRlc3RzLmF1dG9ydW4pIHsKKyAgICBydW5UZXN0cygpOworICB9IGVsc2UgeworICAgIHZhciBo
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtcnVuJyk7CisgICAgaWYgKGggPT0gbnVs
bCkgeworICAgICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisgICAgICBo
LnR5cGUgPSAnc3VibWl0JzsKKyAgICAgIGgudmFsdWUgPSAiUnVuIHRlc3RzIjsKKyAgICAgIGgu
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CisgICAgICAgIHJ1blRlc3Rz
KCk7CisgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CisgICAgICB9LCBmYWxzZSk7CisgICAg
ICBoLmlkID0gJ3Rlc3QtcnVuJzsKKyAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGgs
IGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CisgICAgfQorICAgIGgudGV4dENvbnRlbnQgPSBU
ZXN0cy5tZXNzYWdlOworICB9CisKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBmdW5jdGlvbigpeworICBpZiAoVGVzdHMuYXV0b2luaXQpIHsKKyAgICAvLyBsZXQgdGhlIGJy
b3dzZXIgaG9wZWZ1bGx5IGZpbmlzaCB1cGRhdGluZyB0aGUgZ2wgY2FudmFzIHN1cmZhY2VzIGlm
IHdlIGFyZSBnaXZlbiBhIGRlbGF5CisgICAgaWYgKFRlc3RzLmRlbGF5KQorICAgICAgc2V0VGlt
ZW91dChpbml0VGVzdHMsIFRlc3RzLmRlbGF5KTsKKyAgICBlbHNlCisgICAgICBpbml0VGVzdHMo
KQorICB9Cit9LCBmYWxzZSk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91dGlsLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhjYzA4YTY1MmI5ZjVkMTRl
NDA2ZmU0ZGI3Nzk5MGRjZjAwNTIxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS91dGlsLmpzCkBAIC0wLDAgKzEsMTI4NyBAQAorLyoKK1V0aWxpdGllcyBmb3IgdGhlIE9wZW5H
TCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAorKi8KKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCitmdW5jdGlvbiBsb2FkVGV4dHVyZShnbCwgZWxlbSwgbWlw
bWFwcykgeworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXgpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGVsZW0pOworICBpZiAobWlwbWFw
cyAhPSBmYWxzZSkKKyAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKKyAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9X
UkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgaWYgKG1pcG1hcHMpCisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIs
IGdsLkxJTkVBUl9NSVBNQVBfTElORUFSKTsKKyAgZWxzZQorICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOworICByZXR1
cm4gdGV4OworfQorCitmdW5jdGlvbiBnZXRTaGFkZXIoZ2wsIGlkKSB7CisgIHZhciBzaGFkZXJT
Y3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgIGlmICghc2hhZGVyU2NyaXB0
KSB7CisgICAgdGhyb3cobmV3IEVycm9yKCJObyBzaGFkZXIgZWxlbWVudCB3aXRoIGlkOiAiK2lk
KSk7CisgIH0KKworICB2YXIgc3RyID0gIiI7CisgIHZhciBrID0gc2hhZGVyU2NyaXB0LmZpcnN0
Q2hpbGQ7CisgIHdoaWxlIChrKSB7CisgICAgaWYgKGsubm9kZVR5cGUgPT0gMykKKyAgICAgIHN0
ciArPSBrLnRleHRDb250ZW50OworICAgIGsgPSBrLm5leHRTaWJsaW5nOworICB9CisKKyAgdmFy
IHNoYWRlcjsKKyAgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50
IikgeworICAgIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOwor
ICB9IGVsc2UgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LXZlcnRleCIpIHsK
KyAgICBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CisgIH0gZWxz
ZSB7CisgICAgdGhyb3cobmV3IEVycm9yKCJVbmtub3duIHNoYWRlciB0eXBlICIrc2hhZGVyU2Ny
aXB0LnR5cGUpKTsKKyAgfQorCisgIGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHN0cik7CisgIGds
LmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKworICBpZiAoZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNo
YWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpICE9IDEpIHsKKyAgICB2YXIgaWxvZyA9IGdsLmdldFNo
YWRlckluZm9Mb2coc2hhZGVyKTsKKyAgICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgICB0
aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0byBjb21waWxlIHNoYWRlciAiK3NoYWRlclNjcmlwdC5p
ZCArICIsIFNoYWRlciBpbmZvIGxvZzogIiArIGlsb2cpKTsKKyAgfQorICByZXR1cm4gc2hhZGVy
OworfQorCitmdW5jdGlvbiBsb2FkU2hhZGVyQXJyYXkoZ2wsIHNoYWRlcnMpIHsKKyAgdmFyIGlk
ID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICB2YXIgc2hhZGVyT2JqcyA9IFtdOworICBmb3IgKHZh
ciBpPTA7IGk8c2hhZGVycy5sZW5ndGg7ICsraSkgeworICAgIHRyeSB7CisgICAgICB2YXIgc2gg
PSBnZXRTaGFkZXIoZ2wsIHNoYWRlcnNbaV0pOworICAgICAgc2hhZGVyT2Jqcy5wdXNoKHNoKTsK
KyAgICAgIGdsLmF0dGFjaFNoYWRlcihpZCwgc2gpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
IHZhciBwciA9IHtwcm9ncmFtOiBpZCwgc2hhZGVyczogc2hhZGVyT2Jqc307CisgICAgICBkZWxl
dGVTaGFkZXIoZ2wsIHByKTsKKyAgICAgIHRocm93IChlKTsKKyAgICB9CisgIH0KKyAgdmFyIHBy
b2cgPSB7cHJvZ3JhbTogaWQsIHNoYWRlcnM6IHNoYWRlck9ianN9OworICBnbC5saW5rUHJvZ3Jh
bShpZCk7CisgIGdsLnZhbGlkYXRlUHJvZ3JhbShpZCk7CisgIGlmIChnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKGlkLCBnbC5MSU5LX1NUQVRVUykgIT0gMSkgeworICAgIGRlbGV0ZVNoYWRlcihnbCxw
cm9nKTsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0byBsaW5rIHNoYWRlciIpKTsKKyAg
fQorICBpZiAoZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihpZCwgZ2wuVkFMSURBVEVfU1RBVFVTKSAh
PSAxKSB7CisgICAgZGVsZXRlU2hhZGVyKGdsLHByb2cpOworICAgIHRocm93KG5ldyBFcnJvcigi
RmFpbGVkIHRvIHZhbGlkYXRlIHNoYWRlciIpKTsKKyAgfQorICByZXR1cm4gcHJvZzsKK30KK2Z1
bmN0aW9uIGxvYWRTaGFkZXIoZ2wpIHsKKyAgdmFyIHNoID0gW107CisgIGZvciAodmFyIGk9MTsg
aTxhcmd1bWVudHMubGVuZ3RoOyArK2kpCisgICAgc2gucHVzaChhcmd1bWVudHNbaV0pOworICBy
ZXR1cm4gbG9hZFNoYWRlckFycmF5KGdsLCBzaCk7Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZVNoYWRl
cihnbCwgc2gpIHsKKyAgZ2wudXNlUHJvZ3JhbShudWxsKTsKKyAgc2guc2hhZGVycy5mb3JFYWNo
KGZ1bmN0aW9uKHMpeworICAgIGdsLmRldGFjaFNoYWRlcihzaC5wcm9ncmFtLCBzKTsKKyAgICBn
bC5kZWxldGVTaGFkZXIocyk7CisgIH0pOworICBnbC5kZWxldGVQcm9ncmFtKHNoLnByb2dyYW0p
OworfQorCitmdW5jdGlvbiBnZXRHTEVycm9yQXNTdHJpbmcoY3R4LCBlcnIpIHsKKyAgaWYgKGVy
ciA9PT0gY3R4Lk5PX0VSUk9SKSB7CisgICAgcmV0dXJuICJOT19FUlJPUiI7CisgIH0KKyAgZm9y
ICh2YXIgbmFtZSBpbiBjdHgpIHsKKyAgICBpZiAoY3R4W25hbWVdID09PSBlcnIpIHsKKyAgICAg
IHJldHVybiBuYW1lOworICAgIH0KKyAgfQorICByZXR1cm4gZXJyLnRvU3RyaW5nKCk7Cit9CisK
K2Z1bmN0aW9uIGNoZWNrRXJyb3IoZ2wsIG1zZykgeworICB2YXIgZSA9IGdsLmdldEVycm9yKCk7
CisgIGlmIChlICE9IGdsLk5PX0VSUk9SKSB7CisgICAgbG9nKCJFcnJvciAiICsgZ2V0R0xFcnJv
ckFzU3RyaW5nKGdsLCBlKSArICIgYXQgIiArIG1zZyk7CisgIH0KKyAgcmV0dXJuIGU7Cit9CisK
K2Z1bmN0aW9uIHRocm93RXJyb3IoZ2wsIG1zZykgeworICB2YXIgZSA9IGdsLmdldEVycm9yKCk7
CisgIGlmIChlICE9IDApIHsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkVycm9yICIgKyBnZXRHTEVy
cm9yQXNTdHJpbmcoZ2wsIGUpICsgIiBhdCAiICsgbXNnKSk7CisgIH0KK30KKworTWF0aC5jb3Qg
PSBmdW5jdGlvbih6KSB7IHJldHVybiAxLjAgLyBNYXRoLnRhbih6KTsgfQorCisvKgorICBNYXRy
aXggdXRpbGl0aWVzLCB1c2luZyB0aGUgT3BlbkdMIGVsZW1lbnQgb3JkZXIgd2hlcmUKKyAgdGhl
IGxhc3QgNCBlbGVtZW50cyBhcmUgdGhlIHRyYW5zbGF0aW9uIGNvbHVtbi4KKworICBVc2VzIGZs
YXQgYXJyYXlzIGFzIG1hdHJpY2VzIGZvciBwZXJmb3JtYW5jZS4KKworICBNb3N0IG9wZXJhdGlv
bnMgaGF2ZSBpbi1wbGFjZSB2YXJpYW50cyB0byBhdm9pZCBhbGxvY2F0aW5nIHRlbXBvcmFyeSBt
YXRyaWNlcy4KKworICBOYW1pbmcgbG9naWM6CisgICAgTWF0cml4Lm1ldGhvZCBvcGVyYXRlcyBv
biBhIDR4NCBNYXRyaXggYW5kIHJldHVybnMgYSBuZXcgTWF0cml4LgorICAgIE1hdHJpeC5tZXRo
b2QzeDMgb3BlcmF0ZXMgb24gYSAzeDMgTWF0cml4IGFuZCByZXR1cm5zIGEgbmV3IE1hdHJpeC4g
Tm90IGFsbCBvcGVyYXRpb25zIGhhdmUgYSAzeDMgdmVyc2lvbiAoYXMgM3gzIGlzIHVzdWFsbHkg
b25seSB1c2VkIGZvciB0aGUgbm9ybWFsIG1hdHJpeDogTWF0cml4LnRyYW5zcG9zZTN4MyhNYXRy
aXguaW52ZXJzZVRvM3gzKG1hdDR4NCkpKQorICAgIE1hdHJpeC5tZXRob2RbM3gzXUluUGxhY2Uo
YXJncywgdGFyZ2V0KSBzdG9yZXMgaXRzIHJlc3VsdCBpbiB0aGUgdGFyZ2V0IG1hdHJpeC4KKwor
ICAgIE1hdHJpeC5zY2FsZShbc3gsIHN5LCBzel0pIC0tIG5vbi11bmlmb3JtIHNjYWxlIGJ5IHZl
Y3RvcgorICAgIE1hdHJpeC5zY2FsZTEocykgICAgICAgICAgIC0tIHVuaWZvcm0gc2NhbGUgYnkg
c2NhbGFyCisgICAgTWF0cml4LnNjYWxlMyhzeCwgc3ksIHN6KSAgLS0gbm9uLXVuaWZvcm0gc2Nh
bGUgYnkgc2NhbGFycworCisgICAgRGl0dG8gZm9yIHRyYW5zbGF0ZS4KKyovCitNYXRyaXggPSB7
CisgIGlkZW50aXR5IDogWworICAgIDEuMCwgMC4wLCAwLjAsIDAuMCwKKyAgICAwLjAsIDEuMCwg
MC4wLCAwLjAsCisgICAgMC4wLCAwLjAsIDEuMCwgMC4wLAorICAgIDAuMCwgMC4wLCAwLjAsIDEu
MAorICBdLAorCisgIG5ld0lkZW50aXR5IDogZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIFsKKyAg
ICAgIDEuMCwgMC4wLCAwLjAsIDAuMCwKKyAgICAgIDAuMCwgMS4wLCAwLjAsIDAuMCwKKyAgICAg
IDAuMCwgMC4wLCAxLjAsIDAuMCwKKyAgICAgIDAuMCwgMC4wLCAwLjAsIDEuMAorICAgIF07Cisg
IH0sCisKKyAgbmV3SWRlbnRpdHkzeDMgOiBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gWworICAg
ICAgMS4wLCAwLjAsIDAuMCwKKyAgICAgIDAuMCwgMS4wLCAwLjAsCisgICAgICAwLjAsIDAuMCwg
MS4wCisgICAgXTsKKyAgfSwKKworICBjb3B5TWF0cml4IDogZnVuY3Rpb24oc3JjLCBkc3QpIHsK
KyAgICBmb3IgKHZhciBpPTA7IGk8MTY7IGkrKykgZHN0W2ldID0gc3JjW2ldOworICAgIHJldHVy
biBkc3Q7CisgIH0sCisKKyAgdG8zeDMgOiBmdW5jdGlvbihtKSB7CisgICAgcmV0dXJuIFsKKyAg
ICAgIG1bMF0sIG1bMV0sIG1bMl0sCisgICAgICBtWzRdLCBtWzVdLCBtWzZdLAorICAgICAgbVs4
XSwgbVs5XSwgbVsxMF0KKyAgICBdOworICB9LAorCisgIC8vIG9ydGhvbm9ybWFsIG1hdHJpeCBp
bnZlcnNlCisgIGludmVyc2VPTiA6IGZ1bmN0aW9uKG0pIHsKKyAgICB2YXIgbiA9IHRoaXMudHJh
bnNwb3NlNHg0KG0pOworICAgIHZhciB0ID0gW21bMTJdLCBtWzEzXSwgbVsxNF1dOworICAgIG5b
M10gPSBuWzddID0gblsxMV0gPSAwOworICAgIG5bMTJdID0gLVZlYzMuZG90KFtuWzBdLCBuWzRd
LCBuWzhdXSwgdCk7CisgICAgblsxM10gPSAtVmVjMy5kb3QoW25bMV0sIG5bNV0sIG5bOV1dLCB0
KTsKKyAgICBuWzE0XSA9IC1WZWMzLmRvdChbblsyXSwgbls2XSwgblsxMF1dLCB0KTsKKyAgICBy
ZXR1cm4gbjsKKyAgfSwKKworICBpbnZlcnNlVG8zeDMgOiBmdW5jdGlvbihtKSB7CisgICAgcmV0
dXJuIHRoaXMuaW52ZXJzZTR4NHRvM3gzSW5QbGFjZShtLCB0aGlzLm5ld0lkZW50aXR5M3gzKCkp
OworICB9LAorCisgIGludmVyc2VUbzN4M0luUGxhY2UgOiBmdW5jdGlvbihtLG4pIHsKKyAgICB2
YXIgYTExID0gbVsxMF0qbVs1XS1tWzZdKm1bOV0sCisgICAgICAgIGEyMSA9IC1tWzEwXSptWzFd
K21bMl0qbVs5XSwKKyAgICAgICAgYTMxID0gbVs2XSptWzFdLW1bMl0qbVs1XSwKKyAgICAgICAg
YTEyID0gLW1bMTBdKm1bNF0rbVs2XSptWzhdLAorICAgICAgICBhMjIgPSBtWzEwXSptWzBdLW1b
Ml0qbVs4XSwKKyAgICAgICAgYTMyID0gLW1bNl0qbVswXSttWzJdKm1bNF0sCisgICAgICAgIGEx
MyA9IG1bOV0qbVs0XS1tWzVdKm1bOF0sCisgICAgICAgIGEyMyA9IC1tWzldKm1bMF0rbVsxXSpt
WzhdLAorICAgICAgICBhMzMgPSBtWzVdKm1bMF0tbVsxXSptWzRdOworICAgIHZhciBkZXQgPSBt
WzBdKihhMTEpICsgbVsxXSooYTEyKSArIG1bMl0qKGExMyk7CisgICAgaWYgKGRldCA9PSAwKSAv
LyBubyBpbnZlcnNlCisgICAgICByZXR1cm4gWzEsMCwwLDAsMSwwLDAsMCwxXTsKKyAgICB2YXIg
aWRldCA9IDEgLyBkZXQ7CisgICAgblswXSA9IGlkZXQqYTExOworICAgIG5bMV0gPSBpZGV0KmEy
MTsKKyAgICBuWzJdID0gaWRldCphMzE7CisgICAgblszXSA9IGlkZXQqYTEyOworICAgIG5bNF0g
PSBpZGV0KmEyMjsKKyAgICBuWzVdID0gaWRldCphMzI7CisgICAgbls2XSA9IGlkZXQqYTEzOwor
ICAgIG5bN10gPSBpZGV0KmEyMzsKKyAgICBuWzhdID0gaWRldCphMzM7CisgICAgcmV0dXJuIG47
CisgIH0sCisKKyAgaW52ZXJzZTN4MyA6IGZ1bmN0aW9uKG0pIHsKKyAgICByZXR1cm4gdGhpcy5p
bnZlcnNlM3gzSW5QbGFjZShtLCB0aGlzLm5ld0lkZW50aXR5M3gzKCkpOworICB9LAorCisgIGlu
dmVyc2UzeDNJblBsYWNlIDogZnVuY3Rpb24obSxuKSB7CisgICAgdmFyIGExMSA9IG1bOF0qbVs0
XS1tWzVdKm1bN10sCisgICAgICAgIGEyMSA9IC1tWzhdKm1bMV0rbVsyXSptWzddLAorICAgICAg
ICBhMzEgPSBtWzVdKm1bMV0tbVsyXSptWzRdLAorICAgICAgICBhMTIgPSAtbVs4XSptWzNdK21b
NV0qbVs2XSwKKyAgICAgICAgYTIyID0gbVs4XSptWzBdLW1bMl0qbVs2XSwKKyAgICAgICAgYTMy
ID0gLW1bNV0qbVswXSttWzJdKm1bM10sCisgICAgICAgIGExMyA9IG1bN10qbVs0XS1tWzRdKm1b
OF0sCisgICAgICAgIGEyMyA9IC1tWzddKm1bMF0rbVsxXSptWzZdLAorICAgICAgICBhMzMgPSBt
WzRdKm1bMF0tbVsxXSptWzNdOworICAgIHZhciBkZXQgPSBtWzBdKihhMTEpICsgbVsxXSooYTEy
KSArIG1bMl0qKGExMyk7CisgICAgaWYgKGRldCA9PSAwKSAvLyBubyBpbnZlcnNlCisgICAgICBy
ZXR1cm4gWzEsMCwwLDAsMSwwLDAsMCwxXTsKKyAgICB2YXIgaWRldCA9IDEgLyBkZXQ7CisgICAg
blswXSA9IGlkZXQqYTExOworICAgIG5bMV0gPSBpZGV0KmEyMTsKKyAgICBuWzJdID0gaWRldCph
MzE7CisgICAgblszXSA9IGlkZXQqYTEyOworICAgIG5bNF0gPSBpZGV0KmEyMjsKKyAgICBuWzVd
ID0gaWRldCphMzI7CisgICAgbls2XSA9IGlkZXQqYTEzOworICAgIG5bN10gPSBpZGV0KmEyMzsK
KyAgICBuWzhdID0gaWRldCphMzM7CisgICAgcmV0dXJuIG47CisgIH0sCisKKyAgZnJ1c3R1bSA6
IGZ1bmN0aW9uIChsZWZ0LCByaWdodCwgYm90dG9tLCB0b3AsIHpuZWFyLCB6ZmFyKSB7CisgICAg
dmFyIFggPSAyKnpuZWFyLyhyaWdodC1sZWZ0KTsKKyAgICB2YXIgWSA9IDIqem5lYXIvKHRvcC1i
b3R0b20pOworICAgIHZhciBBID0gKHJpZ2h0K2xlZnQpLyhyaWdodC1sZWZ0KTsKKyAgICB2YXIg
QiA9ICh0b3ArYm90dG9tKS8odG9wLWJvdHRvbSk7CisgICAgdmFyIEMgPSAtKHpmYXIrem5lYXIp
Lyh6ZmFyLXpuZWFyKTsKKyAgICB2YXIgRCA9IC0yKnpmYXIqem5lYXIvKHpmYXItem5lYXIpOwor
CisgICAgcmV0dXJuIFsKKyAgICAgIFgsIDAsIDAsIDAsCisgICAgICAwLCBZLCAwLCAwLAorICAg
ICAgQSwgQiwgQywgLTEsCisgICAgICAwLCAwLCBELCAwCisgICAgXTsKKyB9LAorCisgIHBlcnNw
ZWN0aXZlIDogZnVuY3Rpb24gKGZvdnksIGFzcGVjdCwgem5lYXIsIHpmYXIpIHsKKyAgICB2YXIg
eW1heCA9IHpuZWFyICogTWF0aC50YW4oZm92eSAqIE1hdGguUEkgLyAzNjAuMCk7CisgICAgdmFy
IHltaW4gPSAteW1heDsKKyAgICB2YXIgeG1pbiA9IHltaW4gKiBhc3BlY3Q7CisgICAgdmFyIHht
YXggPSB5bWF4ICogYXNwZWN0OworCisgICAgcmV0dXJuIHRoaXMuZnJ1c3R1bSh4bWluLCB4bWF4
LCB5bWluLCB5bWF4LCB6bmVhciwgemZhcik7CisgIH0sCisKKyAgbXVsNHg0IDogZnVuY3Rpb24g
KGEsYikgeworICAgIHJldHVybiB0aGlzLm11bDR4NEluUGxhY2UoYSxiLHRoaXMubmV3SWRlbnRp
dHkoKSk7CisgIH0sCisKKyAgbXVsNHg0SW5QbGFjZSA6IGZ1bmN0aW9uIChhLCBiLCBjKSB7Cisg
ICAgICAgIGNbMF0gPSAgIGJbMF0gKiBhWzBdICsKKyAgICAgICAgICAgICAgICAgYlswKzFdICog
YVs0XSArCisgICAgICAgICAgICAgICAgIGJbMCsyXSAqIGFbOF0gKworICAgICAgICAgICAgICAg
ICBiWzArM10gKiBhWzEyXTsKKyAgICAgICAgY1swKzFdID0gYlswXSAqIGFbMV0gKworICAgICAg
ICAgICAgICAgICBiWzArMV0gKiBhWzVdICsKKyAgICAgICAgICAgICAgICAgYlswKzJdICogYVs5
XSArCisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTNdOworICAgICAgICBjWzArMl0gPSBi
WzBdICogYVsyXSArCisgICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFbNl0gKworICAgICAgICAg
ICAgICAgICBiWzArMl0gKiBhWzEwXSArCisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTRd
OworICAgICAgICBjWzArM10gPSBiWzBdICogYVszXSArCisgICAgICAgICAgICAgICAgIGJbMCsx
XSAqIGFbN10gKworICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzExXSArCisgICAgICAgICAg
ICAgICAgIGJbMCszXSAqIGFbMTVdOworICAgICAgICBjWzRdID0gICBiWzRdICogYVswXSArCisg
ICAgICAgICAgICAgICAgIGJbNCsxXSAqIGFbNF0gKworICAgICAgICAgICAgICAgICBiWzQrMl0g
KiBhWzhdICsKKyAgICAgICAgICAgICAgICAgYls0KzNdICogYVsxMl07CisgICAgICAgIGNbNCsx
XSA9IGJbNF0gKiBhWzFdICsKKyAgICAgICAgICAgICAgICAgYls0KzFdICogYVs1XSArCisgICAg
ICAgICAgICAgICAgIGJbNCsyXSAqIGFbOV0gKworICAgICAgICAgICAgICAgICBiWzQrM10gKiBh
WzEzXTsKKyAgICAgICAgY1s0KzJdID0gYls0XSAqIGFbMl0gKworICAgICAgICAgICAgICAgICBi
WzQrMV0gKiBhWzZdICsKKyAgICAgICAgICAgICAgICAgYls0KzJdICogYVsxMF0gKworICAgICAg
ICAgICAgICAgICBiWzQrM10gKiBhWzE0XTsKKyAgICAgICAgY1s0KzNdID0gYls0XSAqIGFbM10g
KworICAgICAgICAgICAgICAgICBiWzQrMV0gKiBhWzddICsKKyAgICAgICAgICAgICAgICAgYls0
KzJdICogYVsxMV0gKworICAgICAgICAgICAgICAgICBiWzQrM10gKiBhWzE1XTsKKyAgICAgICAg
Y1s4XSA9ICAgYls4XSAqIGFbMF0gKworICAgICAgICAgICAgICAgICBiWzgrMV0gKiBhWzRdICsK
KyAgICAgICAgICAgICAgICAgYls4KzJdICogYVs4XSArCisgICAgICAgICAgICAgICAgIGJbOCsz
XSAqIGFbMTJdOworICAgICAgICBjWzgrMV0gPSBiWzhdICogYVsxXSArCisgICAgICAgICAgICAg
ICAgIGJbOCsxXSAqIGFbNV0gKworICAgICAgICAgICAgICAgICBiWzgrMl0gKiBhWzldICsKKyAg
ICAgICAgICAgICAgICAgYls4KzNdICogYVsxM107CisgICAgICAgIGNbOCsyXSA9IGJbOF0gKiBh
WzJdICsKKyAgICAgICAgICAgICAgICAgYls4KzFdICogYVs2XSArCisgICAgICAgICAgICAgICAg
IGJbOCsyXSAqIGFbMTBdICsKKyAgICAgICAgICAgICAgICAgYls4KzNdICogYVsxNF07CisgICAg
ICAgIGNbOCszXSA9IGJbOF0gKiBhWzNdICsKKyAgICAgICAgICAgICAgICAgYls4KzFdICogYVs3
XSArCisgICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbMTFdICsKKyAgICAgICAgICAgICAgICAg
Yls4KzNdICogYVsxNV07CisgICAgICAgIGNbMTJdID0gICBiWzEyXSAqIGFbMF0gKworICAgICAg
ICAgICAgICAgICBiWzEyKzFdICogYVs0XSArCisgICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBh
WzhdICsKKyAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTJdOworICAgICAgICBjWzEyKzFd
ID0gYlsxMl0gKiBhWzFdICsKKyAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFbNV0gKworICAg
ICAgICAgICAgICAgICBiWzEyKzJdICogYVs5XSArCisgICAgICAgICAgICAgICAgIGJbMTIrM10g
KiBhWzEzXTsKKyAgICAgICAgY1sxMisyXSA9IGJbMTJdICogYVsyXSArCisgICAgICAgICAgICAg
ICAgIGJbMTIrMV0gKiBhWzZdICsKKyAgICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbMTBdICsK
KyAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTRdOworICAgICAgICBjWzEyKzNdID0gYlsx
Ml0gKiBhWzNdICsKKyAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFbN10gKworICAgICAgICAg
ICAgICAgICBiWzEyKzJdICogYVsxMV0gKworICAgICAgICAgICAgICAgICBiWzEyKzNdICogYVsx
NV07CisgICAgcmV0dXJuIGM7CisgIH0sCisKKyAgbXVsdjQgOiBmdW5jdGlvbiAoYSwgdikgewor
ICAgIGMgPSBuZXcgQXJyYXkoNCk7CisgICAgZm9yICh2YXIgaT0wOyBpPDQ7ICsraSkgeworICAg
ICAgdmFyIHggPSAwOworICAgICAgZm9yICh2YXIgaz0wOyBrPDQ7ICsraykKKyAgICAgICAgeCAr
PSB2W2tdICogYVtrKjQraV07CisgICAgICBjW2ldID0geDsKKyAgICB9CisgICAgcmV0dXJuIGM7
CisgIH0sCisKKyAgcm90YXRlIDogZnVuY3Rpb24gKGFuZ2xlLCBheGlzKSB7CisgICAgYXhpcyA9
IFZlYzMubm9ybWFsaXplKGF4aXMpOworICAgIHZhciB4PWF4aXNbMF0sIHk9YXhpc1sxXSwgej1h
eGlzWzJdOworICAgIHZhciBjID0gTWF0aC5jb3MoYW5nbGUpOworICAgIHZhciBjMSA9IDEtYzsK
KyAgICB2YXIgcyA9IE1hdGguc2luKGFuZ2xlKTsKKyAgICByZXR1cm4gWworICAgICAgeCp4KmMx
K2MsIHkqeCpjMSt6KnMsIHoqeCpjMS15KnMsIDAsCisgICAgICB4KnkqYzEteipzLCB5KnkqYzEr
YywgeSp6KmMxK3gqcywgMCwKKyAgICAgIHgqeipjMSt5KnMsIHkqeipjMS14KnMsIHoqeipjMStj
LCAwLAorICAgICAgMCwwLDAsMQorICAgIF07CisgIH0sCisgIHJvdGF0ZUluUGxhY2UgOiBmdW5j
dGlvbihhbmdsZSwgYXhpcywgbSkgeworICAgIGF4aXMgPSBWZWMzLm5vcm1hbGl6ZShheGlzKTsK
KyAgICB2YXIgeD1heGlzWzBdLCB5PWF4aXNbMV0sIHo9YXhpc1syXTsKKyAgICB2YXIgYyA9IE1h
dGguY29zKGFuZ2xlKTsKKyAgICB2YXIgYzEgPSAxLWM7CisgICAgdmFyIHMgPSBNYXRoLnNpbihh
bmdsZSk7CisgICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4OworICAgIHZhciB0bXBN
YXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOworICAgIHRtcE1hdHJpeFswXSA9IHgqeCpjMStjOyB0
bXBNYXRyaXhbMV0gPSB5KngqYzEreipzOyB0bXBNYXRyaXhbMl0gPSB6KngqYzEteSpzOyB0bXBN
YXRyaXhbM10gPSAwOworICAgIHRtcE1hdHJpeFs0XSA9IHgqeSpjMS16KnM7IHRtcE1hdHJpeFs1
XSA9IHkqeSpjMStjOyB0bXBNYXRyaXhbNl0gPSB5KnoqYzEreCpzOyB0bXBNYXRyaXhbN10gPSAw
OworICAgIHRtcE1hdHJpeFs4XSA9IHgqeipjMSt5KnM7IHRtcE1hdHJpeFs5XSA9IHkqeipjMS14
KnM7IHRtcE1hdHJpeFsxMF0gPSB6KnoqYzErYzsgdG1wTWF0cml4WzExXSA9IDA7CisgICAgdG1w
TWF0cml4WzEyXSA9IDA7IHRtcE1hdHJpeFsxM10gPSAwOyB0bXBNYXRyaXhbMTRdID0gMDsgdG1w
TWF0cml4WzE1XSA9IDE7CisgICAgdGhpcy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOworICAg
IHJldHVybiB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKKyAg
fSwKKworICBzY2FsZSA6IGZ1bmN0aW9uKHYpIHsKKyAgICByZXR1cm4gWworICAgICAgdlswXSwg
MCwgMCwgMCwKKyAgICAgIDAsIHZbMV0sIDAsIDAsCisgICAgICAwLCAwLCB2WzJdLCAwLAorICAg
ICAgMCwgMCwgMCwgMQorICAgIF07CisgIH0sCisgIHNjYWxlMyA6IGZ1bmN0aW9uKHgseSx6KSB7
CisgICAgcmV0dXJuIFsKKyAgICAgIHgsIDAsIDAsIDAsCisgICAgICAwLCB5LCAwLCAwLAorICAg
ICAgMCwgMCwgeiwgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOworICB9LAorICBzY2FsZTEg
OiBmdW5jdGlvbihzKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHMsIDAsIDAsIDAsCisgICAgICAw
LCBzLCAwLCAwLAorICAgICAgMCwgMCwgcywgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOwor
ICB9LAorICBzY2FsZTNJblBsYWNlIDogZnVuY3Rpb24oeCwgeSwgeiwgbSkgeworICAgIHZhciB0
bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJpeDsKKyAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1w
TWF0cml4MjsKKyAgICB0bXBNYXRyaXhbMF0gPSB4OyB0bXBNYXRyaXhbMV0gPSAwOyB0bXBNYXRy
aXhbMl0gPSAwOyB0bXBNYXRyaXhbM10gPSAwOworICAgIHRtcE1hdHJpeFs0XSA9IDA7IHRtcE1h
dHJpeFs1XSA9IHk7IHRtcE1hdHJpeFs2XSA9IDA7IHRtcE1hdHJpeFs3XSA9IDA7CisgICAgdG1w
TWF0cml4WzhdID0gMDsgdG1wTWF0cml4WzldID0gMDsgdG1wTWF0cml4WzEwXSA9IHo7IHRtcE1h
dHJpeFsxMV0gPSAwOworICAgIHRtcE1hdHJpeFsxMl0gPSAwOyB0bXBNYXRyaXhbMTNdID0gMDsg
dG1wTWF0cml4WzE0XSA9IDA7IHRtcE1hdHJpeFsxNV0gPSAxOworICAgIHRoaXMuY29weU1hdHJp
eChtLCB0bXBNYXRyaXgyKTsKKyAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJp
eDIsIHRtcE1hdHJpeCwgbSk7CisgIH0sCisgIHNjYWxlMUluUGxhY2UgOiBmdW5jdGlvbihzLCBt
KSB7IHJldHVybiB0aGlzLnNjYWxlM0luUGxhY2UocywgcywgcywgbSk7IH0sCisgIHNjYWxlSW5Q
bGFjZSA6IGZ1bmN0aW9uKHMsIG0pIHsgcmV0dXJuIHRoaXMuc2NhbGUzSW5QbGFjZShzWzBdLHNb
MV0sc1syXSxtKTsgfSwKKworICB0cmFuc2xhdGUzIDogZnVuY3Rpb24oeCx5LHopIHsKKyAgICBy
ZXR1cm4gWworICAgICAgMSwgMCwgMCwgMCwKKyAgICAgIDAsIDEsIDAsIDAsCisgICAgICAwLCAw
LCAxLCAwLAorICAgICAgeCwgeSwgeiwgMQorICAgIF07CisgIH0sCisKKyAgdHJhbnNsYXRlIDog
ZnVuY3Rpb24odikgeworICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZTModlswXSwgdlsxXSwgdlsy
XSk7CisgIH0sCisgIHRtcE1hdHJpeCA6IFswLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwLCAwLDAs
MCwwXSwKKyAgdG1wTWF0cml4MiA6IFswLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCww
XSwKKyAgdHJhbnNsYXRlM0luUGxhY2UgOiBmdW5jdGlvbih4LHkseixtKSB7CisgICAgdmFyIHRt
cE1hdHJpeCA9IHRoaXMudG1wTWF0cml4OworICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBN
YXRyaXgyOworICAgIHRtcE1hdHJpeFswXSA9IDE7IHRtcE1hdHJpeFsxXSA9IDA7IHRtcE1hdHJp
eFsyXSA9IDA7IHRtcE1hdHJpeFszXSA9IDA7CisgICAgdG1wTWF0cml4WzRdID0gMDsgdG1wTWF0
cml4WzVdID0gMTsgdG1wTWF0cml4WzZdID0gMDsgdG1wTWF0cml4WzddID0gMDsKKyAgICB0bXBN
YXRyaXhbOF0gPSAwOyB0bXBNYXRyaXhbOV0gPSAwOyB0bXBNYXRyaXhbMTBdID0gMTsgdG1wTWF0
cml4WzExXSA9IDA7CisgICAgdG1wTWF0cml4WzEyXSA9IHg7IHRtcE1hdHJpeFsxM10gPSB5OyB0
bXBNYXRyaXhbMTRdID0gejsgdG1wTWF0cml4WzE1XSA9IDE7CisgICAgdGhpcy5jb3B5TWF0cml4
KG0sIHRtcE1hdHJpeDIpOworICAgIHJldHVybiB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4
MiwgdG1wTWF0cml4LCBtKTsKKyAgfSwKKyAgdHJhbnNsYXRlSW5QbGFjZSA6IGZ1bmN0aW9uKHYs
bSl7IHJldHVybiB0aGlzLnRyYW5zbGF0ZTNJblBsYWNlKHZbMF0sIHZbMV0sIHZbMl0sIG0pOyB9
LAorCisgIGxvb2tBdCA6IGZ1bmN0aW9uIChleWUsIGNlbnRlciwgdXApIHsKKyAgICB2YXIgeiA9
IFZlYzMuZGlyZWN0aW9uKGV5ZSwgY2VudGVyKTsKKyAgICB2YXIgeCA9IFZlYzMubm9ybWFsaXpl
SW5QbGFjZShWZWMzLmNyb3NzKHVwLCB6KSk7CisgICAgdmFyIHkgPSBWZWMzLm5vcm1hbGl6ZUlu
UGxhY2UoVmVjMy5jcm9zcyh6LCB4KSk7CisKKyAgICB2YXIgbSA9IFsKKyAgICAgIHhbMF0sIHlb
MF0sIHpbMF0sIDAsCisgICAgICB4WzFdLCB5WzFdLCB6WzFdLCAwLAorICAgICAgeFsyXSwgeVsy
XSwgelsyXSwgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOworCisgICAgdmFyIHQgPSBbCisg
ICAgICAxLCAwLCAwLCAwLAorICAgICAgMCwgMSwgMCwgMCwKKyAgICAgIDAsIDAsIDEsIDAsCisg
ICAgICAtZXllWzBdLCAtZXllWzFdLCAtZXllWzJdLCAxCisgICAgXTsKKworICAgIHJldHVybiB0
aGlzLm11bDR4NChtLHQpOworICB9LAorCisgIHRyYW5zcG9zZTR4NCA6IGZ1bmN0aW9uKG0pIHsK
KyAgICByZXR1cm4gWworICAgICAgbVswXSwgbVs0XSwgbVs4XSwgbVsxMl0sCisgICAgICBtWzFd
LCBtWzVdLCBtWzldLCBtWzEzXSwKKyAgICAgIG1bMl0sIG1bNl0sIG1bMTBdLCBtWzE0XSwKKyAg
ICAgIG1bM10sIG1bN10sIG1bMTFdLCBtWzE1XQorICAgIF07CisgIH0sCisKKyAgdHJhbnNwb3Nl
NHg0SW5QbGFjZSA6IGZ1bmN0aW9uKG0pIHsKKyAgICB2YXIgdG1wID0gMC4wOworICAgIHRtcCA9
IG1bMV07IG1bMV0gPSBtWzRdOyBtWzRdID0gdG1wOworICAgIHRtcCA9IG1bMl07IG1bMl0gPSBt
WzhdOyBtWzhdID0gdG1wOworICAgIHRtcCA9IG1bM107IG1bM10gPSBtWzEyXTsgbVsxMl0gPSB0
bXA7CisgICAgdG1wID0gbVs2XTsgbVs2XSA9IG1bOV07IG1bOV0gPSB0bXA7CisgICAgdG1wID0g
bVs3XTsgbVs3XSA9IG1bMTNdOyBtWzEzXSA9IHRtcDsKKyAgICB0bXAgPSBtWzExXTsgbVsxMV0g
PSBtWzE0XTsgbVsxNF0gPSB0bXA7CisgICAgcmV0dXJuIG07CisgIH0sCisKKyAgdHJhbnNwb3Nl
M3gzIDogZnVuY3Rpb24obSkgeworICAgIHJldHVybiBbCisgICAgICBtWzBdLCBtWzNdLCBtWzZd
LAorICAgICAgbVsxXSwgbVs0XSwgbVs3XSwKKyAgICAgIG1bMl0sIG1bNV0sIG1bOF0KKyAgICBd
OworICB9LAorCisgIHRyYW5zcG9zZTN4M0luUGxhY2UgOiBmdW5jdGlvbihtKSB7CisgICAgdmFy
IHRtcCA9IDAuMDsKKyAgICB0bXAgPSBtWzFdOyBtWzFdID0gbVszXTsgbVszXSA9IHRtcDsKKyAg
ICB0bXAgPSBtWzJdOyBtWzJdID0gbVs2XTsgbVs2XSA9IHRtcDsKKyAgICB0bXAgPSBtWzVdOyBt
WzVdID0gbVs3XTsgbVs3XSA9IHRtcDsKKyAgICByZXR1cm4gbTsKKyAgfSwKK30KKworVmVjMyA9
IHsKKyAgbWFrZSA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gWzAsMCwwXTsgfSwKKyAgY29weSA6IGZ1
bmN0aW9uKHYpIHsgcmV0dXJuIFt2WzBdLHZbMV0sdlsyXV07IH0sCisKKyAgYWRkIDogZnVuY3Rp
b24gKHUsdikgeworICAgIHJldHVybiBbdVswXSt2WzBdLCB1WzFdK3ZbMV0sIHVbMl0rdlsyXV07
CisgIH0sCisKKyAgc3ViIDogZnVuY3Rpb24gKHUsdikgeworICAgIHJldHVybiBbdVswXS12WzBd
LCB1WzFdLXZbMV0sIHVbMl0tdlsyXV07CisgIH0sCisKKyAgbmVnYXRlIDogZnVuY3Rpb24gKHUp
IHsKKyAgICByZXR1cm4gWy11WzBdLCAtdVsxXSwgLXVbMl1dOworICB9LAorCisgIGRpcmVjdGlv
biA6IGZ1bmN0aW9uICh1LHYpIHsKKyAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVJblBsYWNlKHRo
aXMuc3ViKHUsdikpOworICB9LAorCisgIG5vcm1hbGl6ZUluUGxhY2UgOiBmdW5jdGlvbih2KSB7
CisgICAgdmFyIGltYWcgPSAxLjAgLyBNYXRoLnNxcnQodlswXSp2WzBdICsgdlsxXSp2WzFdICsg
dlsyXSp2WzJdKTsKKyAgICB2WzBdICo9IGltYWc7IHZbMV0gKj0gaW1hZzsgdlsyXSAqPSBpbWFn
OworICAgIHJldHVybiB2OworICB9LAorCisgIG5vcm1hbGl6ZSA6IGZ1bmN0aW9uKHYpIHsKKyAg
ICByZXR1cm4gdGhpcy5ub3JtYWxpemVJblBsYWNlKHRoaXMuY29weSh2KSk7CisgIH0sCisKKyAg
c2NhbGUgOiBmdW5jdGlvbihmLCB2KSB7CisgICAgcmV0dXJuIFtmKnZbMF0sIGYqdlsxXSwgZip2
WzJdXTsKKyAgfSwKKworICBkb3QgOiBmdW5jdGlvbih1LHYpIHsKKyAgICByZXR1cm4gdVswXSp2
WzBdICsgdVsxXSp2WzFdICsgdVsyXSp2WzJdOworICB9LAorCisgIGlubmVyIDogZnVuY3Rpb24o
dSx2KSB7CisgICAgcmV0dXJuIFt1WzBdKnZbMF0sIHVbMV0qdlsxXSwgdVsyXSp2WzJdXTsKKyAg
fSwKKworICBjcm9zcyA6IGZ1bmN0aW9uKHUsdikgeworICAgIHJldHVybiBbCisgICAgICB1WzFd
KnZbMl0gLSB1WzJdKnZbMV0sCisgICAgICB1WzJdKnZbMF0gLSB1WzBdKnZbMl0sCisgICAgICB1
WzBdKnZbMV0gLSB1WzFdKnZbMF0KKyAgICBdOworICB9Cit9CisKK1NoYWRlciA9IGZ1bmN0aW9u
KGdsKXsKKyAgdGhpcy5nbCA9IGdsOworICB0aGlzLnNoYWRlcnMgPSBbXTsKKyAgdGhpcy51bmlm
b3JtTG9jYXRpb25zID0ge307CisgIHRoaXMuYXR0cmliTG9jYXRpb25zID0ge307CisgIGZvciAo
dmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICB0aGlzLnNoYWRlcnMucHVz
aChhcmd1bWVudHNbaV0pOworICB9Cit9CitTaGFkZXIucHJvdG90eXBlID0geworICBpZCA6IG51
bGwsCisgIGdsIDogbnVsbCwKKyAgY29tcGlsZWQgOiBmYWxzZSwKKyAgc2hhZGVyIDogbnVsbCwK
KyAgc2hhZGVycyA6IFtdLAorCisgIGRlc3Ryb3kgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAodGhp
cy5zaGFkZXIgIT0gbnVsbCkgZGVsZXRlU2hhZGVyKHRoaXMuZ2wsIHRoaXMuc2hhZGVyKTsKKyAg
fSwKKworICBjb21waWxlIDogZnVuY3Rpb24oKSB7CisgICAgdGhpcy5zaGFkZXIgPSBsb2FkU2hh
ZGVyQXJyYXkodGhpcy5nbCwgdGhpcy5zaGFkZXJzKTsKKyAgfSwKKworICB1c2UgOiBmdW5jdGlv
bigpIHsKKyAgICBpZiAodGhpcy5zaGFkZXIgPT0gbnVsbCkKKyAgICAgIHRoaXMuY29tcGlsZSgp
OworICAgIHRoaXMuZ2wudXNlUHJvZ3JhbSh0aGlzLnNoYWRlci5wcm9ncmFtKTsKKyAgfSwKKwor
ICB1bmlmb3JtMWZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhp
cy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTFmdihsb2MsIHZhbHVlKTsKKyAg
fSwKKworICB1bmlmb3JtMmZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9j
ID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTJmdihsb2MsIHZhbHVl
KTsKKyAgfSwKKworICB1bmlmb3JtM2Z2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2
YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTNmdihsb2Ms
IHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtNGZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsK
KyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTRm
dihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtMWYgOiBmdW5jdGlvbihuYW1lLCB2YWx1
ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlm
b3JtMWYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTJmIDogZnVuY3Rpb24obmFtZSwg
djEsdjIpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wu
dW5pZm9ybTJmKGxvYywgdjEsdjIpOworICB9LAorCisgIHVuaWZvcm0zZiA6IGZ1bmN0aW9uKG5h
bWUsIHYxLHYyLHYzKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0
aGlzLmdsLnVuaWZvcm0zZihsb2MsIHYxLHYyLHYzKTsKKyAgfSwKKworICB1bmlmb3JtNGYgOiBm
dW5jdGlvbihuYW1lLCB2MSx2Mix2Myx2NCkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0o
bmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtNGYobG9jLCB2MSwgdjIsIHYzLCB2NCk7CisgIH0s
CisKKyAgdW5pZm9ybTFpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9
IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0xaXYobG9jLCB2YWx1ZSk7
CisgIH0sCisKKyAgdW5pZm9ybTJpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFy
IGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0yaXYobG9jLCB2
YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTNpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Cisg
ICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0zaXYo
bG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTRpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVl
KSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZv
cm00aXYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTFpIDogZnVuY3Rpb24obmFtZSwg
dmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wu
dW5pZm9ybTFpKGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZvcm0yaSA6IGZ1bmN0aW9uKG5h
bWUsIHYxLHYyKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlz
LmdsLnVuaWZvcm0yaShsb2MsIHYxLHYyKTsKKyAgfSwKKworICB1bmlmb3JtM2kgOiBmdW5jdGlv
bihuYW1lLCB2MSx2Mix2MykgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Cisg
ICAgdGhpcy5nbC51bmlmb3JtM2kobG9jLCB2MSx2Mix2Myk7CisgIH0sCisKKyAgdW5pZm9ybTRp
IDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMsdjQpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlm
b3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTRpKGxvYywgdjEsIHYyLCB2MywgdjQpOwor
ICB9LAorCisgIHVuaWZvcm1NYXRyaXg0ZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAg
IHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtTWF0cml4
NGZ2KGxvYywgZmFsc2UsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtTWF0cml4M2Z2IDogZnVu
Y3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwor
ICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDNmdihsb2MsIGZhbHNlLCB2YWx1ZSk7CisgIH0sCisK
KyAgdW5pZm9ybU1hdHJpeDJmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxv
YyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm1NYXRyaXgyZnYobG9j
LCBmYWxzZSwgdmFsdWUpOworICB9LAorCisgIGF0dHJpYiA6IGZ1bmN0aW9uKG5hbWUpIHsKKyAg
ICBpZiAodGhpcy5hdHRyaWJMb2NhdGlvbnNbbmFtZV0gPT0gbnVsbCkgeworICAgICAgdmFyIGxv
YyA9IHRoaXMuZ2wuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5zaGFkZXIucHJvZ3JhbSwgbmFtZSk7
CisgICAgICB0aGlzLmF0dHJpYkxvY2F0aW9uc1tuYW1lXSA9IGxvYzsKKyAgICB9CisgICAgcmV0
dXJuIHRoaXMuYXR0cmliTG9jYXRpb25zW25hbWVdOworICB9LAorCisgIHVuaWZvcm0gOiBmdW5j
dGlvbihuYW1lKSB7CisgICAgaWYgKHRoaXMudW5pZm9ybUxvY2F0aW9uc1tuYW1lXSA9PSBudWxs
KSB7CisgICAgICB2YXIgbG9jID0gdGhpcy5nbC5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5zaGFk
ZXIucHJvZ3JhbSwgbmFtZSk7CisgICAgICB0aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV0gPSBs
b2M7CisgICAgfQorICAgIHJldHVybiB0aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV07CisgIH0K
K30KK0ZpbHRlciA9IGZ1bmN0aW9uKGdsLCBzaGFkZXIpIHsKKyAgU2hhZGVyLmFwcGx5KHRoaXMs
IGFyZ3VtZW50cyk7Cit9CitGaWx0ZXIucHJvdG90eXBlID0gbmV3IFNoYWRlcigpOworRmlsdGVy
LnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uKGluaXQpIHsKKyAgdGhpcy51c2UoKTsKKyAgdmFy
IHZhID0gdGhpcy5hdHRyaWIoIlZlcnRleCIpOworICB2YXIgdGEgPSB0aGlzLmF0dHJpYigiVGV4
Iik7CisgIHZhciB2Ym8gPSBRdWFkLmdldENhY2hlZFZCTyh0aGlzLmdsKTsKKyAgaWYgKGluaXQp
IGluaXQodGhpcyk7CisgIHZiby5kcmF3KHZhLCBudWxsLCB0YSk7Cit9CisKKworVkJPID0gZnVu
Y3Rpb24oZ2wpIHsKKyAgdGhpcy5nbCA9IGdsOworICB0aGlzLmRhdGEgPSBbXTsKKyAgdGhpcy5l
bGVtZW50c1ZCTyA9IG51bGw7CisgIGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyBp
KyspIHsKKyAgICBpZiAoYXJndW1lbnRzW2ldLmVsZW1lbnRzKQorICAgICAgdGhpcy5lbGVtZW50
cyA9IGFyZ3VtZW50c1tpXTsKKyAgICBlbHNlCisgICAgICB0aGlzLmRhdGEucHVzaChhcmd1bWVu
dHNbaV0pOworICB9Cit9CisKK1ZCTy5wcm90b3R5cGUgPSB7CisgIGluaXRpYWxpemVkIDogZmFs
c2UsCisgIGxlbmd0aCA6IDAsCisgIHZib3MgOiBudWxsLAorICB0eXBlIDogJ1RSSUFOR0xFUycs
CisgIGVsZW1lbnRzVkJPIDogbnVsbCwKKyAgZWxlbWVudHMgOiBudWxsLAorCisgIHNldERhdGEg
OiBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmRlc3Ryb3koKTsKKyAgICB0aGlzLmRhdGEgPSBbXTsK
KyAgICBmb3IgKHZhciBpPTA7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICBpZiAo
YXJndW1lbnRzW2ldLmVsZW1lbnRzKQorICAgICAgICB0aGlzLmVsZW1lbnRzID0gYXJndW1lbnRz
W2ldOworICAgICAgZWxzZQorICAgICAgICB0aGlzLmRhdGEucHVzaChhcmd1bWVudHNbaV0pOwor
ICAgIH0KKyAgfSwKKworICBkZXN0cm95IDogZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMudmJv
cyAhPSBudWxsKQorICAgICAgZm9yICh2YXIgaT0wOyBpPHRoaXMudmJvcy5sZW5ndGg7IGkrKykK
KyAgICAgICAgdGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy52Ym9zW2ldKTsKKyAgICBpZiAodGhp
cy5lbGVtZW50c1ZCTyAhPSBudWxsKQorICAgICAgdGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy5l
bGVtZW50c1ZCTyk7CisgICAgdGhpcy5sZW5ndGggPSB0aGlzLmVsZW1lbnRzTGVuZ3RoID0gMDsK
KyAgICB0aGlzLnZib3MgPSB0aGlzLmVsZW1lbnRzVkJPID0gbnVsbDsKKyAgICB0aGlzLmluaXRp
YWxpemVkID0gZmFsc2U7CisgIH0sCisKKyAgaW5pdCA6IGZ1bmN0aW9uKCkgeworICAgIHRoaXMu
ZGVzdHJveSgpOworICAgIHZhciBnbCA9IHRoaXMuZ2w7CisKKyAgICBnbC5nZXRFcnJvcigpOwor
ICAgIHZhciB2Ym9zID0gW107CisgICAgdmFyIGxlbmd0aCA9IDA7CisgICAgZm9yICh2YXIgaT0w
OyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKykKKyAgICAgIHZib3MucHVzaChnbC5jcmVhdGVCdWZm
ZXIoKSk7CisgICAgaWYgKHRoaXMuZWxlbWVudHMgIT0gbnVsbCkKKyAgICAgIHRoaXMuZWxlbWVu
dHNWQk8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICB0cnkgeworICAgICAgdGhyb3dFcnJvcihn
bCwgImdlbkJ1ZmZlcnMiKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5n
dGg7IGkrKykgeworICAgICAgICB2YXIgZCA9IHRoaXMuZGF0YVtpXTsKKyAgICAgICAgdmFyIGRs
ZW4gPSBNYXRoLmZsb29yKGQuZGF0YS5sZW5ndGggLyBkLnNpemUpOworICAgICAgICBpZiAoaSA9
PSAwIHx8IGRsZW4gPCBsZW5ndGgpCisgICAgICAgICAgICBsZW5ndGggPSBkbGVuOworICAgICAg
ICBpZiAoIWQuZmxvYXRBcnJheSkKKyAgICAgICAgICBkLmZsb2F0QXJyYXkgPSBuZXcgRmxvYXQz
MkFycmF5KGQuZGF0YSk7CisgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2
Ym9zW2ldKTsKKyAgICAgICAgdGhyb3dFcnJvcihnbCwgImJpbmRCdWZmZXIiKTsKKyAgICAgICAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGQuZmxvYXRBcnJheSwgZ2wuU1RBVElDX0RS
QVcpOworICAgICAgICB0aHJvd0Vycm9yKGdsLCAiYnVmZmVyRGF0YSIpOworICAgICAgfQorICAg
ICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkgeworICAgICAgICB2YXIgZCA9IHRoaXMu
ZWxlbWVudHM7CisgICAgICAgIHRoaXMuZWxlbWVudHNMZW5ndGggPSBkLmRhdGEubGVuZ3RoOwor
ICAgICAgICB0aGlzLmVsZW1lbnRzVHlwZSA9IGQudHlwZSA9PSBnbC5VTlNJR05FRF9CWVRFID8g
ZC50eXBlIDogZ2wuVU5TSUdORURfU0hPUlQ7CisgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMuZWxlbWVudHNWQk8pOworICAgICAgICB0aHJvd0Vycm9y
KGdsLCAiYmluZEJ1ZmZlciBFTEVNRU5UX0FSUkFZX0JVRkZFUiIpOworICAgICAgICBpZiAodGhp
cy5lbGVtZW50c1R5cGUgPT0gZ2wuVU5TSUdORURfU0hPUlQgJiYgIWQudXNob3J0QXJyYXkpIHsK
KyAgICAgICAgICBkLnVzaG9ydEFycmF5ID0gbmV3IFVpbnQxNkFycmF5KGQuZGF0YSk7CisgICAg
ICAgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgZC51c2hvcnRBcnJh
eSwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZWxlbWVudHNUeXBl
ID09IGdsLlVOU0lHTkVEX0JZVEUgJiYgIWQudWJ5dGVBcnJheSkgeworICAgICAgICAgIGQudWJ5
dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGQuZGF0YSk7CisgICAgICAgICAgZ2wuYnVmZmVyRGF0
YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgZC51Ynl0ZUFycmF5LCBnbC5TVEFUSUNfRFJBVyk7
CisgICAgICAgIH0KKyAgICAgICAgdGhyb3dFcnJvcihnbCwgImJ1ZmZlckRhdGEgRUxFTUVOVF9B
UlJBWV9CVUZGRVIiKTsKKyAgICAgIH0KKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgIGZvciAodmFy
IGk9MDsgaTx2Ym9zLmxlbmd0aDsgaSsrKQorICAgICAgICBnbC5kZWxldGVCdWZmZXIodmJvc1tp
XSk7CisgICAgICB0aHJvdyhlKTsKKyAgICB9CisKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZ
X0JVRkZFUiwgbnVsbCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZF
UiwgbnVsbCk7CisKKyAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDsKKyAgICB0aGlzLnZib3MgPSB2
Ym9zOworCisgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisgIH0sCisKKyAgdXNlIDogZnVu
Y3Rpb24oKSB7CisgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB0aGlzLmluaXQoKTsKKyAgICB2
YXIgZ2wgPSB0aGlzLmdsOworICAgIGZvciAodmFyIGk9MDsgaTxhcmd1bWVudHMubGVuZ3RoOyBp
KyspIHsKKyAgICAgIGlmIChhcmd1bWVudHNbaV0gPT0gbnVsbCB8fCBhcmd1bWVudHNbaV0gPT0g
LTEpIGNvbnRpbnVlOworICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRoaXMu
dmJvc1tpXSk7CisgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGFyZ3VtZW50c1tpXSwgdGhp
cy5kYXRhW2ldLnNpemUsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheShhcmd1bWVudHNbaV0pOworICAgIH0KKyAgICBpZiAodGhpcy5lbGVt
ZW50c1ZCTyAhPSBudWxsKSB7CisgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlf
QlVGRkVSLCB0aGlzLmVsZW1lbnRzVkJPKTsKKyAgICB9CisgIH0sCisKKyAgZHJhdyA6IGZ1bmN0
aW9uKCkgeworICAgIHZhciBhcmdzID0gW107CisgICAgdGhpcy51c2UuYXBwbHkodGhpcywgYXJn
dW1lbnRzKTsKKyAgICB2YXIgZ2wgPSB0aGlzLmdsOworICAgIGlmICh0aGlzLmVsZW1lbnRzVkJP
ICE9IG51bGwpIHsKKyAgICAgIGdsLmRyYXdFbGVtZW50cyhnbFt0aGlzLnR5cGVdLCB0aGlzLmVs
ZW1lbnRzTGVuZ3RoLCB0aGlzLmVsZW1lbnRzVHlwZSwgMCk7CisgICAgfSBlbHNlIHsKKyAgICAg
IGdsLmRyYXdBcnJheXMoZ2xbdGhpcy50eXBlXSwgMCwgdGhpcy5sZW5ndGgpOworICAgIH0KKyAg
fQorfQorCitGQk8gPSBmdW5jdGlvbihnbCwgd2lkdGgsIGhlaWdodCwgdXNlX2RlcHRoKSB7Cisg
IHRoaXMuZ2wgPSBnbDsKKyAgdGhpcy53aWR0aCA9IHdpZHRoOworICB0aGlzLmhlaWdodCA9IGhl
aWdodDsKKyAgaWYgKHVzZV9kZXB0aCAhPSBudWxsKQorICAgIHRoaXMudXNlRGVwdGggPSB1c2Vf
ZGVwdGg7Cit9CitGQk8ucHJvdG90eXBlID0geworICBpbml0aWFsaXplZCA6IGZhbHNlLAorICB1
c2VEZXB0aCA6IHRydWUsCisgIGZibyA6IG51bGwsCisgIHJibyA6IG51bGwsCisgIHRleHR1cmUg
OiBudWxsLAorCisgIGRlc3Ryb3kgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAodGhpcy5mYm8pIHRo
aXMuZ2wuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5mYm8pOworICAgIGlmICh0aGlzLnJibykgdGhp
cy5nbC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5yYm8pOworICAgIGlmICh0aGlzLnRleHR1cmUp
IHRoaXMuZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLnRleHR1cmUpOworICB9LAorCisgIGluaXQgOiBm
dW5jdGlvbigpIHsKKyAgICB2YXIgZ2wgPSB0aGlzLmdsOworICAgIHZhciB3ID0gdGhpcy53aWR0
aCwgaCA9IHRoaXMuaGVpZ2h0OworICAgIHZhciBmYm8gPSB0aGlzLmZibyAhPSBudWxsID8gdGhp
cy5mYm8gOiBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICAgIHZhciByYjsKKworICAgIGdsLmJp
bmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKKyAgICBjaGVja0Vycm9yKGdsLCAi
RkJPLmluaXQgYmluZEZyYW1lYnVmZmVyIik7CisgICAgaWYgKHRoaXMudXNlRGVwdGgpIHsKKyAg
ICAgIHJiID0gdGhpcy5yYm8gIT0gbnVsbCA/IHRoaXMucmJvIDogZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCk7CisgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmIpOwor
ICAgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmRSZW5kZXJidWZmZXIiKTsKKyAgICAg
IGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05F
TlQxNiwgdywgaCk7CisgICAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgcmVuZGVyYnVmZmVy
U3RvcmFnZSIpOworICAgIH0KKworICAgIHZhciB0ZXggPSB0aGlzLnRleHR1cmUgIT0gbnVsbCA/
IHRoaXMudGV4dHVyZSA6IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpOworICAgIHRyeSB7CisgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIHcsIGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IG51bGwpOworICAgIH0gY2F0Y2ggKGUpIHsgLy8gYXJnaCwgbm8gbnVsbCB0ZXh0dXJlIHN1cHBv
cnQKKyAgICAgIHZhciB0bXAgPSB0aGlzLmdldFRlbXBDYW52YXModyxoKTsKKyAgICAgIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgdG1wKTsKKyAgICB9CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIs
IGdsLkxJTkVBUik7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0
IHRleCIpOworCisgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGds
LkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOworICAgIGNoZWNrRXJy
b3IoZ2wsICJGQk8uaW5pdCBiaW5kIHRleCIpOworCisgICAgaWYgKHRoaXMudXNlRGVwdGgpIHsK
KyAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBU
SF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJiKTsKKyAgICAgIGNoZWNrRXJyb3IoZ2ws
ICJGQk8uaW5pdCBiaW5kIGRlcHRoIGJ1ZmZlciIpOworICAgIH0KKworICAgIHZhciBmYnN0YXQg
PSBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKKyAgICBpZiAoZmJz
dGF0ICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICB2YXIgZ2x2OworICAgICAg
Zm9yICh2YXIgdiBpbiBnbCkgeworICAgICAgICB0cnkgeyBnbHYgPSBnbFt2XTsgfSBjYXRjaCAo
ZSkgeyBnbHYgPSBudWxsOyB9CisgICAgICAgIGlmIChnbHYgPT0gZmJzdGF0KSB7IGZic3RhdCA9
IHY7IGJyZWFrOyB9fQorICAgICAgICBsb2coIkZyYW1lYnVmZmVyIHN0YXR1czogIiArIGZic3Rh
dCk7CisgICAgfQorICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBjaGVjayBmYm8iKTsKKwor
ICAgIHRoaXMuZmJvID0gZmJvOworICAgIHRoaXMucmJvID0gcmI7CisgICAgdGhpcy50ZXh0dXJl
ID0gdGV4OworICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworICB9LAorCisgIGdldFRlbXBD
YW52YXMgOiBmdW5jdGlvbih3LCBoKSB7CisgICAgaWYgKCFGQk8udGVtcENhbnZhcykgeworICAg
ICAgRkJPLnRlbXBDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAg
ICB9CisgICAgRkJPLnRlbXBDYW52YXMud2lkdGggPSB3OworICAgIEZCTy50ZW1wQ2FudmFzLmhl
aWdodCA9IGg7CisgICAgcmV0dXJuIEZCTy50ZW1wQ2FudmFzOworICB9LAorCisgIHVzZSA6IGZ1
bmN0aW9uKCkgeworICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgdGhpcy5pbml0KCk7CisgICAg
dGhpcy5nbC5iaW5kRnJhbWVidWZmZXIodGhpcy5nbC5GUkFNRUJVRkZFUiwgdGhpcy5mYm8pOwor
ICB9Cit9CisKK2Z1bmN0aW9uIEdMRXJyb3IoZXJyLCBtc2csIGZpbGVOYW1lLCBsaW5lTnVtYmVy
KSB7CisgIHRoaXMubWVzc2FnZSA9IG1zZzsKKyAgdGhpcy5nbEVycm9yID0gZXJyOworfQorCitH
TEVycm9yLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpOworCitmdW5jdGlvbiBtYWtlR0xFcnJvcldy
YXBwZXIoZ2wsIGZuYW1lKSB7CisgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgdHJ5IHsKKyAg
ICAgIHZhciBydiA9IGdsW2ZuYW1lXS5hcHBseShnbCwgYXJndW1lbnRzKTsKKyAgICAgIHZhciBl
cnIgPSBnbC5nZXRFcnJvcigpOworICAgICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgeworICAg
ICAgICB0aHJvdyhuZXcgR0xFcnJvcigKKyAgICAgICAgICAgIGVyciwgIkdMIGVycm9yICIrZ2V0
R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpKyIgaW4gIitmbmFtZSkpOworICAgICAgfQorICAgICAg
cmV0dXJuIHJ2OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGlmIChlLmdsRXJyb3IgIT09IHVu
ZGVmaW5lZCkgeworICAgICAgICB0aHJvdyBlOworICAgICAgfQorICAgICAgdGhyb3cobmV3IEVy
cm9yKCJUaHJldyAiICsgZS5uYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGluICIgKyBm
bmFtZSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICAgIGUubWVzc2FnZSArICJcbiIgKwor
ICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyKSk7CisgICAgfQor
ICB9KTsKK30KKworZnVuY3Rpb24gd3JhcEdMQ29udGV4dChnbCkgeworICB2YXIgd3JhcCA9IHt9
OworICBmb3IgKHZhciBpIGluIGdsKSB7CisgICAgdHJ5IHsKKyAgICAgIGlmICh0eXBlb2YgZ2xb
aV0gPT0gJ2Z1bmN0aW9uJykgeworICAgICAgICAgIHdyYXBbaV0gPSBtYWtlR0xFcnJvcldyYXBw
ZXIoZ2wsIGkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB3cmFwW2ldID0gZ2xbaV07Cisg
ICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgLy8gbG9nKCJ3cmFwR0xDb250ZXh0OiBF
cnJvciBhY2Nlc3NpbmcgIiArIGkpOworICAgIH0KKyAgfQorICB3cmFwLmdldEVycm9yID0gZnVu
Y3Rpb24oKXsgcmV0dXJuIGdsLmdldEVycm9yKCk7IH07CisgIHJldHVybiB3cmFwOworfQorCitm
dW5jdGlvbiBnZXRHTENvbnRleHQoY2FudmFzKSB7CisgIHJldHVybiBjYW52YXMuZ2V0Q29udGV4
dChHTF9DT05URVhUX0lELCB7YW50aWFsaWFzOiBmYWxzZX0pOworfQorCisvLyBBc3NlcnQgdGhh
dCBmIGdlbmVyYXRlcyBhIHNwZWNpZmljIEdMIGVycm9yLgorZnVuY3Rpb24gYXNzZXJ0R0xFcnJv
cihnbCwgZXJyLCBuYW1lLCBmKSB7CisgIGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUg
PSBudWxsOyB9CisgIHZhciByID0gZmFsc2U7CisgIHZhciBnbEVyciA9IDA7CisgIHRyeSB7IGYo
KTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IH0KKyAgaWYgKGdsRXJy
ICE9PSBlcnIpIHsKKyAgICBpZiAoZ2xFcnIgPT09IHVuZGVmaW5lZCkgeworICAgICAgdGVzdEZh
aWxlZCgiYXNzZXJ0R0xFcnJvcjogVU5FWFBFQ1RFRCBFWENFUFRJT04iLCBuYW1lLCBmKTsKKyAg
ICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogZXhwZWN0ZWQ6ICIg
KyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKworICAgICAgICAgICAgICAgICAiIGFjdHVh
bDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9CisgIHJldHVybiB0cnVlOworfQorCisvLyBBc3NlcnQgdGhh
dCBmIGdlbmVyYXRlcyBhIEdMIGVycm9yIGZyb20gYSBsaXN0LgorZnVuY3Rpb24gYXNzZXJ0R0xF
cnJvckluKGdsLCBleHBlY3RlZEVycm9yTGlzdCwgbmFtZSwgZikgeworICBpZiAoZiA9PSBudWxs
KSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorCisgIHZhciBhY3R1YWxFcnJvciA9IDA7Cisg
IHRyeSB7CisgICAgZigpOworICB9IGNhdGNoKGUpIHsKKyAgICBpZiAoJ2dsRXJyb3InIGluIGUp
IHsKKyAgICAgIGFjdHVhbEVycm9yID0gZS5nbEVycm9yOworICAgIH0gZWxzZSB7CisgICAgICB0
ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBVTkVYUENFVEVEIEVYQ0VQVElPTiIsIG5hbWUsIGYp
OworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorCisgIHZhciBleHBlY3RlZEVycm9y
U3RyTGlzdCA9IFtdOworICB2YXIgZXhwZWN0ZWRFcnJvclNldCA9IHt9OworICBmb3IgKHZhciBp
IGluIGV4cGVjdGVkRXJyb3JMaXN0KSB7CisgICAgdmFyIGN1ciA9IGV4cGVjdGVkRXJyb3JMaXN0
W2ldOworICAgIGV4cGVjdGVkRXJyb3JTZXRbY3VyXSA9IHRydWU7CisgICAgZXhwZWN0ZWRFcnJv
clN0ckxpc3QucHVzaChnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGN1cikpOworICB9CisgIHZhciBl
eHBlY3RlZEVycm9yTGlzdFN0ciA9ICJbIiArIGV4cGVjdGVkRXJyb3JTdHJMaXN0LmpvaW4oIiwg
IikgKyAiXSI7CisKKyAgaWYgKGFjdHVhbEVycm9yIGluIGV4cGVjdGVkRXJyb3JTZXQpIHsKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IGV4cGVj
dGVkOiAiICsgZXhwZWN0ZWRFcnJvckxpc3RTdHIgKworICAgICAgICAgICAgICIgYWN0dWFsOiAi
ICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBhY3R1YWxFcnJvciksIG5hbWUsIGYpOworICByZXR1
cm4gZmFsc2U7Cit9CisKKy8vIEFzc2VydCB0aGF0IGYgZ2VuZXJhdGVzIHNvbWUgR0wgZXJyb3Iu
IFVzZWQgaW4gc2l0dWF0aW9ucyB3aGVyZSBpdCdzCisvLyBhbWJpZ2lvdXMgd2hpY2ggb2YgbXVs
dGlwbGUgcG9zc2libGUgZXJyb3JzIHdpbGwgYmUgZ2VuZXJhdGVkLgorZnVuY3Rpb24gYXNzZXJ0
U29tZUdMRXJyb3IoZ2wsIG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsg
bmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxzZTsKKyAgdmFyIGdsRXJyID0gMDsKKyAgdmFy
IGVyciA9IDA7CisgIHRyeSB7IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmds
RXJyb3I7IH0KKyAgaWYgKGdsRXJyID09PSAwKSB7CisgICAgaWYgKGdsRXJyID09PSB1bmRlZmlu
ZWQpIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IFVORVhQRUNURUQgRVhDRVBU
SU9OIiwgbmFtZSwgZik7CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdM
RXJyb3I6IGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsKKyAgICAg
ICAgICAgICAgICAgIiBhY3R1YWw6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyKSwg
bmFtZSwgZik7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsK
K30KKworLy8gQXNzZXJ0IHRoYXQgZiB0aHJvd3MgYW4gZXhjZXB0aW9uIGJ1dCBkb2VzIG5vdCBn
ZW5lcmF0ZSBhIEdMIGVycm9yLgorZnVuY3Rpb24gYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsIG5h
bWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAg
dmFyIHIgPSBmYWxzZTsKKyAgdmFyIGdsRXJyID0gdW5kZWZpbmVkOworICB2YXIgZXhwOworICB0
cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyByPXRydWU7IGdsRXJyID0gZS5nbEVycm9yOyBleHAgPSBl
O30KKyAgaWYgKCFyKSB7CisgICAgdGVzdEZhaWxlZCgKKyAgICAgICJhc3NlcnRUaHJvd05vR0xF
cnJvcjogc2hvdWxkIGhhdmUgdGhyb3duIGV4Y2VwdGlvbiIsIG5hbWUsIGYpOworICAgIHJldHVy
biBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICBpZiAoZ2xFcnIgIT09IHVuZGVmaW5lZCkgeworICAg
ICAgdGVzdEZhaWxlZCgKKyAgICAgICAgImFzc2VydFRocm93Tm9HTEVycm9yOiBzaG91bGQgYmUg
bm8gR0wgZXJyb3IgYnV0IGdlbmVyYXRlZDogIiArCisgICAgICAgIGdldEdMRXJyb3JBc1N0cmlu
ZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0K
KyAgdGVzdFBhc3NlZCgiYXNzZXJ0VGhyb3dOb0dMRXJyb3IiLCBuYW1lLCBmKTsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2Z1bmN0aW9uIGFzc2VydFRocm93cyhnbCwgc2hvdWxkVGhyb3csIGluZm8s
IGZ1bmMpIHsKKyAgdmFyIGRpZFRocm93ID0gZmFsc2U7CisgIHRyeSB7CisgICAgZnVuYygpOwor
ICB9IGNhdGNoIChlKSB7CisgICAgdmFyIGRpZEdMRXJyb3IgPSAoZSBpbnN0YW5jZW9mIEdMRXJy
b3IpOworICAgIGlmICghZGlkR0xFcnJvcikgeworICAgICAgZGlkVGhyb3cgPSB0cnVlOworICAg
IH0KKyAgfQorCisgIHZhciB0ZXh0ID0gc2hvdWxkVGhyb3cgPyAiU2hvdWxkIHRocm93OiAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgOiAiU2hvdWxkIG5vdCB0aHJvdzogIjsKKyAgdmFyIGZ1
bmMgPSAoZGlkVGhyb3cgPT0gc2hvdWxkVGhyb3cpID8gdGVzdFBhc3NlZCA6IHRlc3RGYWlsZWQ7
CisKKyAgZnVuYyh0ZXh0ICsgaW5mbyk7Cit9CisKK1F1YWQgPSB7CisgIHZlcnRpY2VzIDogWwor
ICAgIC0xLC0xLDAsCisgICAgMSwtMSwwLAorICAgIC0xLDEsMCwKKyAgICAxLC0xLDAsCisgICAg
MSwxLDAsCisgICAgLTEsMSwwCisgIF0sCisgIG5vcm1hbHMgOiBbCisgICAgMCwwLC0xLAorICAg
IDAsMCwtMSwKKyAgICAwLDAsLTEsCisgICAgMCwwLC0xLAorICAgIDAsMCwtMSwKKyAgICAwLDAs
LTEKKyAgXSwKKyAgdGV4Y29vcmRzIDogWworICAgIDAsMCwKKyAgICAxLDAsCisgICAgMCwxLAor
ICAgIDEsMCwKKyAgICAxLDEsCisgICAgMCwxCisgIF0sCisgIGluZGljZXMgOiBbMCwxLDIsMSw1
LDJdLAorICBtYWtlVkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAgICByZXR1cm4gbmV3IFZCTyhnbCwK
KyAgICAgICAge3NpemU6MywgZGF0YTogUXVhZC52ZXJ0aWNlc30sCisgICAgICAgIHtzaXplOjMs
IGRhdGE6IFF1YWQubm9ybWFsc30sCisgICAgICAgIHtzaXplOjIsIGRhdGE6IFF1YWQudGV4Y29v
cmRzfQorICAgICkKKyAgfSwKKyAgY2FjaGU6IHt9LAorICBnZXRDYWNoZWRWQk8gOiBmdW5jdGlv
bihnbCkgeworICAgIGlmICghdGhpcy5jYWNoZVtnbF0pCisgICAgICB0aGlzLmNhY2hlW2dsXSA9
IHRoaXMubWFrZVZCTyhnbCk7CisgICAgcmV0dXJuIHRoaXMuY2FjaGVbZ2xdOworICB9Cit9CitD
dWJlID0geworICB2ZXJ0aWNlcyA6IFsgIDAuNSwgLTAuNSwgIDAuNSwgLy8gK1gKKyAgICAgICAg
ICAgICAgICAwLjUsIC0wLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41LCAgMC41LCAtMC41
LAorICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwKKworICAgICAgICAgICAgICAgIDAu
NSwgIDAuNSwgIDAuNSwgLy8gK1kKKyAgICAgICAgICAgICAgICAwLjUsICAwLjUsIC0wLjUsCisg
ICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAtMC41LCAg
MC41LCAgMC41LAorCisgICAgICAgICAgICAgICAgMC41LCAgMC41LCAgMC41LCAvLyArWgorICAg
ICAgICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgLTAu
NSwgIDAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsICAwLjUsCisKKyAgICAgICAgICAg
ICAgICAtMC41LCAtMC41LCAgMC41LCAvLyAtWAorICAgICAgICAgICAgICAgIC0wLjUsICAwLjUs
ICAwLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAgICAgICAg
ICAtMC41LCAtMC41LCAtMC41LAorCisgICAgICAgICAgICAgICAgLTAuNSwgLTAuNSwgIDAuNSwg
Ly8gLVkKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LAorICAgICAgICAgICAgICAg
IDAuNSwgLTAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsICAwLjUsCisKKyAg
ICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LCAvLyAtWgorICAgICAgICAgICAgICAgIC0w
LjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41LCAgMC41LCAtMC41LAorICAgICAg
ICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKKyAgICAgIF0sCisKKyAgbm9ybWFscyA6IFsgMSwg
MCwgMCwKKyAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgMSwgMCwgMCwKKyAg
ICAgICAgICAgICAgMSwgMCwgMCwKKworICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAg
ICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAwLCAx
LCAwLAorCisgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgIDAsIDAsIDEsCisg
ICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgIDAsIDAsIDEsCisKKyAgICAgICAg
ICAgICAgLTEsIDAsIDAsCisgICAgICAgICAgICAgIC0xLCAwLCAwLAorICAgICAgICAgICAgICAt
MSwgMCwgMCwKKyAgICAgICAgICAgICAgLTEsIDAsIDAsCisKKyAgICAgICAgICAgICAgMCwtMSwg
MCwKKyAgICAgICAgICAgICAgMCwtMSwgMCwKKyAgICAgICAgICAgICAgMCwtMSwgMCwKKyAgICAg
ICAgICAgICAgMCwtMSwgMCwKKworICAgICAgICAgICAgICAwLCAwLC0xLAorICAgICAgICAgICAg
ICAwLCAwLC0xLAorICAgICAgICAgICAgICAwLCAwLC0xLAorICAgICAgICAgICAgICAwLCAwLC0x
CisgICAgICBdLAorCisgIGluZGljZXMgOiBbXSwKKyAgY3JlYXRlIDogZnVuY3Rpb24oKXsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDY7IGkrKykgeworICAgICAgQ3ViZS5pbmRpY2VzLnB1c2go
aSo0ICsgMCk7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAxKTsKKyAgICAgIEN1YmUu
aW5kaWNlcy5wdXNoKGkqNCArIDMpOworICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMSk7
CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAyKTsKKyAgICAgIEN1YmUuaW5kaWNlcy5w
dXNoKGkqNCArIDMpOworICAgIH0KKyAgfSwKKworICBtYWtlVkJPIDogZnVuY3Rpb24oZ2wpIHsK
KyAgICByZXR1cm4gbmV3IFZCTyhnbCwKKyAgICAgICAge3NpemU6MywgZGF0YTogQ3ViZS52ZXJ0
aWNlc30sCisgICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUubm9ybWFsc30sCisgICAgICAgIHtl
bGVtZW50czogdHJ1ZSwgZGF0YTogQ3ViZS5pbmRpY2VzfQorICAgICkKKyAgfSwKKyAgY2FjaGUg
OiB7fSwKKyAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAgICBpZiAoIXRoaXMuY2Fj
aGVbZ2xdKQorICAgICAgdGhpcy5jYWNoZVtnbF0gPSB0aGlzLm1ha2VWQk8oZ2wpOworICAgIHJl
dHVybiB0aGlzLmNhY2hlW2dsXTsKKyAgfQorfQorQ3ViZS5jcmVhdGUoKTsKKworU3BoZXJlID0g
eworICB2ZXJ0aWNlcyA6IFtdLAorICBub3JtYWxzIDogW10sCisgIGluZGljZXMgOiBbXSwKKyAg
Y3JlYXRlIDogZnVuY3Rpb24oKXsKKyAgICB2YXIgciA9IDAuNzU7CisgICAgZnVuY3Rpb24gdmVy
dCh0aGV0YSwgcGhpKQorICAgIHsKKyAgICAgIHZhciByID0gMC43NTsKKyAgICAgIHZhciB4LCB5
LCB6LCBueCwgbnksIG56OworCisgICAgICBueCA9IE1hdGguc2luKHRoZXRhKSAqIE1hdGguY29z
KHBoaSk7CisgICAgICBueSA9IE1hdGguc2luKHBoaSk7CisgICAgICBueiA9IE1hdGguY29zKHRo
ZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAgICBTcGhlcmUubm9ybWFscy5wdXNoKG54KTsKKyAg
ICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobnkpOworICAgICAgU3BoZXJlLm5vcm1hbHMucHVzaChu
eik7CisKKyAgICAgIHggPSByICogTWF0aC5zaW4odGhldGEpICogTWF0aC5jb3MocGhpKTsKKyAg
ICAgIHkgPSByICogTWF0aC5zaW4ocGhpKTsKKyAgICAgIHogPSByICogTWF0aC5jb3ModGhldGEp
ICogTWF0aC5jb3MocGhpKTsKKyAgICAgIFNwaGVyZS52ZXJ0aWNlcy5wdXNoKHgpOworICAgICAg
U3BoZXJlLnZlcnRpY2VzLnB1c2goeSk7CisgICAgICBTcGhlcmUudmVydGljZXMucHVzaCh6KTsK
KyAgICB9CisgICAgZm9yICh2YXIgcGhpID0gLU1hdGguUEkvMjsgcGhpIDwgTWF0aC5QSS8yOyBw
aGkgKz0gTWF0aC5QSS8yMCkgeworICAgICAgdmFyIHBoaTIgPSBwaGkgKyBNYXRoLlBJLzIwOwor
ICAgICAgZm9yICh2YXIgdGhldGEgPSAtTWF0aC5QSS8yOyB0aGV0YSA8PSBNYXRoLlBJLzI7IHRo
ZXRhICs9IE1hdGguUEkvMjApIHsKKyAgICAgICAgdmVydCh0aGV0YSwgcGhpKTsKKyAgICAgICAg
dmVydCh0aGV0YSwgcGhpMik7CisgICAgICB9CisgICAgfQorICB9Cit9CisKK1NwaGVyZS5jcmVh
dGUoKTsKKworaW5pdEdMX0NPTlRFWFRfSUQgPSBmdW5jdGlvbigpeworICB2YXIgYyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICB2YXIgY29udGV4dE5hbWVzID0gWyd3ZWJn
bCcsICdleHBlcmltZW50YWwtd2ViZ2wnXTsKKyAgR0xfQ09OVEVYVF9JRCA9IG51bGw7CisgIGZv
ciAodmFyIGk9MDsgaTxjb250ZXh0TmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICB0cnkgeworICAg
ICAgaWYgKGMuZ2V0Q29udGV4dChjb250ZXh0TmFtZXNbaV0pKSB7CisgICAgICAgIEdMX0NPTlRF
WFRfSUQgPSBjb250ZXh0TmFtZXNbaV07CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICB9CisgIH0KKyAgaWYgKCFHTF9DT05URVhUX0lEKSB7CisgICAgbG9n
KCJObyBXZWJHTCBjb250ZXh0IGZvdW5kLiBVbmFibGUgdG8gcnVuIHRlc3RzLiIpOworICB9Cit9
CisKK2luaXRHTF9DT05URVhUX0lEKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5j
YW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDg2OTZlOThhOGVjZmVkNDlmM2I2YWU3Y2Y5ZTg3Y2Vl
ZmZhNWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApAQCAtMCwwICsxLDEyNSBA
QAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgT3JpZ2luIFJlc3RyaWN0aW9ucyBDb25mb3JtYW5jZSBUZXN0cyBmb3IgT2Zmc2NyZWVu
Q2FudmFzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZh
cyI+PC9jYW52YXM+Cis8aW1nIGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KKzxzY3Jp
cHQ+CisidXNlIHN0cmljdCI7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisKKy8vIENoZWNr
cyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgorZnVuY3Rpb24gY2F1c2VkRXhjZXB0
aW9uKGZ1bmMpIHsKKyAgdmFyIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOworICB0cnkgeworICAgIGZ1
bmMoKTsKKyAgfSBjYXRjaChlKSB7CisgICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKKyAgfQorICBy
ZXR1cm4gaGFkRXhjZXB0aW9uOworfQorCit2YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dl
dC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Cit2YXIg
bG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7CisKK3Zh
ciBpbWdEb21haW47Cit2YXIgcGFnZURvbWFpbjsKKworZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1n
KSB7CisgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlv
bnMgZm9yIE9mZnNjcmVlbkNhbnZhcyBmb2xsb3cgcHJvcGVyIHNhbWUtb3JpZ2luIHJlc3RyaWN0
aW9ucy4iKTsKKworICBpZiAoIXdpbmRvdy5PZmZzY3JlZW5DYW52YXMpIHsKKyAgICB0ZXN0UGFz
c2VkKCJObyBPZmZzY3JlZW5DYW52YXMgc3VwcG9ydCIpOworICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICByZXR1cm47CisgIH0KKworICBhc3NlcnRNc2coaW1nLndpZHRoID4gMCAmJiBpbWcuaGVpZ2h0
ID4gMCwgImltZyB3YXMgbG9hZGVkIik7CisgIGltZ0RvbWFpbiA9IHd0dS5nZXRCYXNlRG9tYWlu
KHd0dS5nZXRIb3N0KGltZy5zcmMpKTsKKyAgcGFnZURvbWFpbiA9IHd0dS5nZXRCYXNlRG9tYWlu
KHdpbmRvdy5sb2NhdGlvbi5ob3N0KTsKKyAgYXNzZXJ0TXNnKGltZ0RvbWFpbiAhPSBwYWdlRG9t
YWluLAorICAgICAgICAgICAgImltZyBkb21haW4gKCIgKyBpbWdEb21haW4gKyAiKSBhbmQgcGFn
ZSBkb21haW4gKCIgKyBwYWdlRG9tYWluICsgIikgYXJlIG5vdCB0aGUgc2FtZS4iKTsKKworICBm
dW5jdGlvbiBtYWtlVGV4SW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkg
eworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtl
VGV4U3ViSW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAg
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtlUmVhZFBpeGVs
cyhnbCkgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBidWYgPSBuZXcgVWlu
dDhBcnJheSg0KTsKKyAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYnVmKTsKKyAgICB9OworICB9CisKKyAgdmFyIG9mZnNjcmVlbmNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgdmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChvZmZzY3JlZW5jYW52YXMpOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoImNoZWNr
IHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9yaWdpbiB0
aHJvd3MgYW4gZXhjZXB0aW9uLiIpOworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwor
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBudWxsKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2Uy
RChnbCwgaW1nKSksCisgICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBp
bWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0
aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJbWFn
ZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisK
KyAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2FpbnN0
IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbiht
YWtlUmVhZFBpeGVscyhnbCkpLAorICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVy
IHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdM
IGNhbnZhcy4iKTsKKworICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBh
IHRhaW50ZWQgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24uIik7CisgIHZhciBjYW52YXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgIHZhciBjdHgyZCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCIyZCIpOworICBjdHgyZC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgYXNzZXJ0
TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2FudmFzKSksCisgICAgICAg
ICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJv
dyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1Yklt
YWdlMkQoZ2wsIGNhbnZhcykpLAorICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBOT04g
b3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworCisgIGRlYnVn
KCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9m
ZnNjcmVlbmNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQ
aXhlbHMoZ2wpKSwKKyAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBl
eGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBjYW52YXMu
Iik7CisKKyAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgorICAvLyBUT0RPOiBTaG91bGQg
Y2hlY2sgQ09SUyBzdXBwb3J0LgorCisgIGZpbmlzaFRlc3QoKTsKK30KKworKGFzeW5jIGZ1bmN0
aW9uKCkgeworICBjb25zdCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nJyk7Cisg
IHRyeSB7CisgICAgYXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5J
bWFnZShpbWcsIGRlZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICB0ZXN0RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgIGZpbmlz
aFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKyAgaW1hZ2VMb2FkZWQoaW1nKTsKK30pKCk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjdmNTcy
MTczNWYwMTczNGE3ZTFkNmJlMzkzY2UwN2E2MTJhZjAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCkBAIC0w
LDAgKzEsMTM3IEBACis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+
CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBPcmlnaW4gUmVzdHJpY3Rpb25zIENvbmZvcm1hbmNlIFRlc3RzPC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhczEiPjwvY2Fu
dmFzPgorPGNhbnZhcyBpZD0iY2FudmFzMiI+PC9jYW52YXM+Cis8aW1nIGlkPSJpbWciIHN0eWxl
PSJkaXNwbGF5Om5vbmU7Ij4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Cit2YXIgd3R1ID0gV2Vi
R0xUZXN0VXRpbHM7CisKKy8vIENoZWNrcyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9u
LgorZnVuY3Rpb24gY2F1c2VkRXhjZXB0aW9uKGZ1bmMpIHsKKyAgdmFyIGhhZEV4Y2VwdGlvbiA9
IGZhbHNlOworICB0cnkgeworICAgIGZ1bmMoKTsKKyAgfSBjYXRjaChlKSB7CisgICAgaGFkRXhj
ZXB0aW9uID0gdHJ1ZTsKKyAgfQorICByZXR1cm4gaGFkRXhjZXB0aW9uOworfQorCit2YXIgZGVm
YXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2Vz
L29wZW5nbF9sb2dvLmpwZyI7Cit2YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2Vz
L29wZW5nbF9sb2dvLmpwZyI7CisKK3ZhciBpbWdEb21haW47Cit2YXIgcGFnZURvbWFpbjsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQ7CisKK2Z1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgeworICBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvbGxv
dyBwcm9wZXIgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLiIpOworCisgIGFzc2VydE1zZyhpbWcu
d2lkdGggPiAwICYmIGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKKyAgaW1nRG9t
YWluID0gd3R1LmdldEJhc2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOworICBwYWdlRG9t
YWluID0gd3R1LmdldEJhc2VEb21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOworICBhc3NlcnRN
c2coaW1nRG9tYWluICE9IHBhZ2VEb21haW4sCisgICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiAr
IGltZ0RvbWFpbiArICIpIGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUg
bm90IHRoZSBzYW1lLiIpOworCisgIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsK
KyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7CisgICAgfTsK
KyAgfQorCisgIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsKKyAgICByZXR1
cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7CisgICAgfTsKKyAgfQorCisg
IGZ1bmN0aW9uIG1ha2VSZWFkUGl4ZWxzKGdsKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewor
ICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDQpOworICAgICAgZ2wucmVhZFBpeGVscygw
LCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICAgIH07CisgIH0K
KworICBmdW5jdGlvbiBtYWtlVG9EYXRhVVJMKGNhbnZhcykgeworICAgIHJldHVybiBmdW5jdGlv
bigpIHsKKyAgICAgIHZhciBkYXRhID0gY2FudmFzLnRvRGF0YVVSTCgpOworICAgIH0KKyAgfQor
CisgIHZhciBjYW52YXMxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczEiKTsKKyAg
dmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMxKTsKKworICBkZWJ1ZygiIik7Cisg
IGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5v
dGhlciBvcmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKKyAgdmFyIHRleCA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24o
bWFrZVRleEltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBj
cm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0TXNn
KGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCisgICAgICAgICAg
ICAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhj
ZXB0aW9uLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgYW5kIHRvRGF0YVVS
TCBjb250aW51ZSB0byB3b3JrIGFnYWluc3QgdGhpcyBjYW52YXMuIik7CisgIGFzc2VydE1zZygh
Y2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCisgICAgICAgICAgICAicmVhZFBp
eGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0
eSBvcmlnaW4gb2YgV2ViR0wgY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlv
bihtYWtlVG9EYXRhVVJMKGNhbnZhczEpKSwKKyAgICAgICAgICAgICJzaG91bGQgbm90IHRocm93
IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIFdlYkdMIGNhbnZhcywgd2hpY2ggc2hvdWxkIHN0
YXkgb3JpZ2luIGNsZWFuLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8g
dXBsb2FkIGEgdGFpbnRlZCBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKKyAgdmFyIGNh
bnZhczIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMiIpOworICB2YXIgY3R4MmQg
PSBjYW52YXMyLmdldENvbnRleHQoIjJkIik7CisgIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDAp
OworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMikpLAor
ICAgICAgICAgICAgInNob3VsZCB0aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBOT04g
b3JpZ2luIGNsZWFuIGNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtl
VGV4SW1hZ2UyRChnbCwgY2FudmFzMikpLAorICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBO
T04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3Nl
cnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMyKSksCisg
ICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNo
b3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKyAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVs
cyBhbmQgdG9EYXRhVVJMIGNvbnRpbnVlIHRvIHdvcmsgYWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsK
KyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKKyAgICAg
ICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBv
c3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBjYW52YXMuIik7CisgIGFzc2VydE1zZygh
Y2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMSkpLAorICAgICAgICAgICAgInNo
b3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uIGJ5IHRvRGF0YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3
aGljaCBzaG91bGQgc3RheSBvcmlnaW4gY2xlYW4uIik7CisKKyAgLy8gVE9ETzogU2hvdWxkIGNo
ZWNrIHZpZGVvLgorICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgQ09SUyBzdXBwb3J0LgorCisgIGRl
YnVnKCIiKTsKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgc2hvdWxkQmVUcnVlKCJz
dWNjZXNzZnVsbHlQYXJzZWQiKTsKKyAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5U
RVNUIENPTVBMRVRFPC9zcGFuPicpOworICBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpOworfQor
CisoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbWcnKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1Lmxv
YWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSku
YCk7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorICBpbWFnZUxvYWRlZChp
bWcpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzZhMTE4Y2MxZGRhZjU3
MzE0YTQyN2UwYjA0MjhiZWQwOGQ0Njk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0
bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPldlYkdMMiBPcmlnaW4gUmVzdHJpY3Rpb25zIENvbmZvcm1hbmNl
IFRlc3RzIGZvciBPZmZzY3JlZW5DYW52YXM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKzxpbWcgaWQ9ImltZyIgc3R5bGU9ImRp
c3BsYXk6bm9uZTsiPgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK3ZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKKworLy8gQ2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCitm
dW5jdGlvbiBjYXVzZWRFeGNlcHRpb24oZnVuYykgeworICB2YXIgaGFkRXhjZXB0aW9uID0gZmFs
c2U7CisgIHRyeSB7CisgICAgZnVuYygpOworICB9IGNhdGNoKGUpIHsKKyAgICBoYWRFeGNlcHRp
b24gPSB0cnVlOworICB9CisgIHJldHVybiBoYWRFeGNlcHRpb247Cit9CisKK3ZhciBkZWZhdWx0
SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3Bl
bmdsX2xvZ28uanBnIjsKK3ZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3Bl
bmdsX2xvZ28uanBnIjsKKwordmFyIGltZ0RvbWFpbjsKK3ZhciBwYWdlRG9tYWluOworCitmdW5j
dGlvbiBpbWFnZUxvYWRlZChpbWcpIHsKKyAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVz
IFdlYkdMMiBpbXBsZW1lbnRhdGlvbnMgZm9yIE9mZnNjcmVlbkNhbnZhcyBmb2xsb3cgcHJvcGVy
IHNhbWUtb3JpZ2luIHJlc3RyaWN0aW9ucy4iKTsKKworICBpZiAoIXdpbmRvdy5PZmZzY3JlZW5D
YW52YXMpIHsKKyAgICB0ZXN0UGFzc2VkKCJObyBPZmZzY3JlZW5DYW52YXMgc3VwcG9ydCIpOwor
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKworICBhc3NlcnRNc2coaW1nLndp
ZHRoID4gMCAmJiBpbWcuaGVpZ2h0ID4gMCwgImltZyB3YXMgbG9hZGVkIik7CisgIGltZ0RvbWFp
biA9IHd0dS5nZXRCYXNlRG9tYWluKHd0dS5nZXRIb3N0KGltZy5zcmMpKTsKKyAgcGFnZURvbWFp
biA9IHd0dS5nZXRCYXNlRG9tYWluKHdpbmRvdy5sb2NhdGlvbi5ob3N0KTsKKyAgYXNzZXJ0TXNn
KGltZ0RvbWFpbiAhPSBwYWdlRG9tYWluLAorICAgICAgICAgICAgImltZyBkb21haW4gKCIgKyBp
bWdEb21haW4gKyAiKSBhbmQgcGFnZSBkb21haW4gKCIgKyBwYWdlRG9tYWluICsgIikgYXJlIG5v
dCB0aGUgc2FtZS4iKTsKKworICBmdW5jdGlvbiBtYWtlVGV4SW1hZ2UyRChnbCwgc3JjKSB7Cisg
ICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0JBLCAxMCwgMTAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7
CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsK
KyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsIDAsIDEwLCAxMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsK
KyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVRleEltYWdlM0QoZ2wsIHNyYykgeworICAg
IHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGdsLnRleEltYWdlM0QoZ2wuVEVYVFVSRV8zRCwg
MCwgZ2wuUkdCQSwgMTAsIDEwLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMp
OworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtlVGV4U3ViSW1hZ2UzRChnbCwgc3JjKSB7
CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgZ2wudGV4U3ViSW1hZ2UzRChnbC5URVhU
VVJFXzNELCAwLCAwLCAwLCAwLCAxMCwgMTAsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHNyYyk7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VSZWFkUGl4ZWxzKGdsKSB7Cisg
ICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDQp
OworICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBidWYpOworICAgIH07CisgIH0KKworICB2YXIgb2Zmc2NyZWVuY2FudmFzID0gbmV3IE9m
ZnNjcmVlbkNhbnZhcygxMCwgMTApOworICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG9m
ZnNjcmVlbmNhbnZhcywgbnVsbCwgMik7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sg
dGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhbiBpbWFnZSBmcm9tIGFub3RoZXIgb3JpZ2luIHRo
cm93cyBhbiBleGNlcHRpb24uIik7CisgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cisg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMjU2LCAyNTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIG51bGwpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJE
KGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGlt
YWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRp
b24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAgICAgInRleFN1YkltYWdl
MkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKyAg
YXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UzRChnbCwgaW1nKSksCisgICAg
ICAgICAgICAidGV4SW1hZ2UzRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cg
ZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFn
ZTNEKGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTNEIHdpdGggY3Jvc3Mtb3Jp
Z2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKworICBkZWJ1ZygiY2hlY2sg
dGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5j
YW52YXMuIik7CisgIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGds
KSksCisgICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9u
IC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wyIGNhbnZhcy4iKTsKKwor
ICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhIHRhaW50ZWQgY2FudmFz
IHRocm93cyBhbiBleGNlcHRpb24uIik7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY2FudmFzIik7CisgIHZhciBjdHgyZCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OworICBjdHgyZC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2Vw
dGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2FudmFzKSksCisgICAgICAgICAgICAidGV4SW1hZ2Uy
RCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7
CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGNhbnZh
cykpLAorICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNh
bnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0
aW9uKG1ha2VUZXhJbWFnZTNEKGdsLCBjYW52YXMpKSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTNE
IHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsK
KyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UzRChnbCwgY2FudmFz
KSksCisgICAgICAgICAgICAidGV4U3ViSW1hZ2UzRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2Fu
dmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKyAgZGVidWcoImNoZWNrIHRoYXQgcmVh
ZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2FpbnN0IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIp
OworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAorICAg
ICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3Qg
cG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMMiBjYW52YXMuIik7CisKKyAgLy8gVE9E
TzogU2hvdWxkIGNoZWNrIHZpZGVvLgorICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgQ09SUyBzdXBw
b3J0LgorCisgIGZpbmlzaFRlc3QoKTsKK30KKworKGFzeW5jIGZ1bmN0aW9uKCkgeworICBjb25z
dCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nJyk7CisgIHRyeSB7CisgICAgYXdh
aXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRlZmF1
bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSwgMTAwMCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0
RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgIGZpbmlzaFRlc3QoKTsK
KyAgICByZXR1cm47CisgIH0KKyAgaW1hZ2VMb2FkZWQoaW1nKTsKK30pKCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10
ZXN0LXBvc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNkZjU1MDNkMTI4Y2E1YmQ5MDQ5ZmQxMzlmZTAyY2Fk
YzVhODA1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzCkBAIC0wLDAgKzEs
MjcgQEAKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworc2hvdWxk
QmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKK19hZGRTcGFuKCc8YnIgLz48c3BhbiBjbGFz
cz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKK2lmIChfanNUZXN0UHJlVmVyYm9zZUxv
Z2dpbmcpIHsKKyAgICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ1RFU1QgQ09NUExFVEUnKTsKK30K
KworeworICAgIGNvbnN0IGVfcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGxldCBmYWlsc19jbGFzcyA9ICdwYXNzJzsKKyAgICBpZiAoUkVTVUxUUy5mYWlsKSB7
CisgICAgICAgIGZhaWxzX2NsYXNzID0gJ2ZhaWwnOworICAgIH0KKyAgICBlX3Jlc3VsdHMuY2xh
c3NMaXN0LmFkZCgncGFzcycpOworICAgIGVfcmVzdWx0cy5pbm5lckhUTUwgPSBgPHA+VEVTVCBD
T01QTEVURTogJHtSRVNVTFRTLnBhc3N9IFBBU1MsIGAgKworICAgICAgYDxzcGFuIGNsYXNzPSIk
e2ZhaWxzX2NsYXNzfSI+JHtSRVNVTFRTLmZhaWx9IEZBSUw8L3NwYW4+PC9wPmA7CisKKyAgICBj
b25zdCBlX2Rlc2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKKyAg
ICBlX2Rlc2MuYXBwZW5kQ2hpbGQoZV9yZXN1bHRzKTsKK30KKworbm90aWZ5RmluaXNoZWRUb0hh
cm5lc3MoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTFjYjlmNzQ5YzAyMmFhYWMwOGZiMTBiMGMyZjY0OTBiMGZhYWY2MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKQEAgLTAsMCArMSw4MDEgQEAKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworKGZ1bmN0aW9uKCkgeworICB2
YXIgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IGZhbHNlOworCisgIHZhciBpbml0Tm9uS2hyb25v
c0ZyYW1ld29yayA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh0ZXN0SGFybmVzc0luaXRpYWxpemVk
KSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQgPSB0
cnVlOworCisgICAgLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2RlIC0tICovCisKKyAgICAvLyBX
ZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5lcjsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMgY29uc29sZSBv
dXRwdXQuCisgICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRlc3RzIGlz
IEdQVSBkZXBlbmRlbnQKKyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMuCisg
ICAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdpbmRvdy5j
b25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisgICAgfQorCisg
ICAgLyogLS0gZW5kIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgLS0qLworICB9CisKKyAgdGhpcy5p
bml0VGVzdGluZ0hhcm5lc3MgPSBmdW5jdGlvbigpIHsKKyAgICBpbml0Tm9uS2hyb25vc0ZyYW1l
d29yaygpOworICB9Cit9KCkpOworCit2YXIgZ2V0VXJsT3B0aW9ucyA9IChmdW5jdGlvbigpIHsK
KyAgdmFyIF91cmxPcHRpb25zUGFyc2VkID0gZmFsc2U7CisgIHZhciBfdXJsT3B0aW9ucyA9IHt9
OworICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgaWYgKCFfdXJsT3B0aW9uc1BhcnNlZCkgewor
ICAgICAgdmFyIHMgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKKyAgICAgIHZhciBxID0gcy5pbmRl
eE9mKCI/Iik7CisgICAgICB2YXIgZSA9IHMuaW5kZXhPZigiIyIpOworICAgICAgaWYgKGUgPCAw
KSB7CisgICAgICAgIGUgPSBzLmxlbmd0aDsKKyAgICAgIH0KKyAgICAgIHZhciBxdWVyeSA9IHMu
c3Vic3RyaW5nKHEgKyAxLCBlKTsKKyAgICAgIHZhciBwYWlycyA9IHF1ZXJ5LnNwbGl0KCImIik7
CisgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgcGFpcnMubGVuZ3RoOyArK2lpKSB7CisgICAg
ICAgIHZhciBrZXlWYWx1ZSA9IHBhaXJzW2lpXS5zcGxpdCgiPSIpOworICAgICAgICB2YXIga2V5
ID0ga2V5VmFsdWVbMF07CisgICAgICAgIHZhciB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChr
ZXlWYWx1ZVsxXSk7CisgICAgICAgIF91cmxPcHRpb25zW2tleV0gPSB2YWx1ZTsKKyAgICAgIH0K
KyAgICAgIF91cmxPcHRpb25zUGFyc2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gX3Vy
bE9wdGlvbnM7CisgIH0KK30pKCk7CisKK2lmICh0eXBlb2YgcXVpZXRNb2RlID09ICd1bmRlZmlu
ZWQnKSB7CisgIHZhciBxdWlldE1vZGUgPSAoZnVuY3Rpb24oKSB7CisgICAgdmFyIF9xdWlldE1v
ZGVDaGVja2VkID0gZmFsc2U7CisgICAgdmFyIF9pc1F1aWV0ID0gZmFsc2U7CisgICAgcmV0dXJu
IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCFfcXVpZXRNb2RlQ2hlY2tlZCkgeworICAgICAgICBf
aXNRdWlldCA9IChnZXRVcmxPcHRpb25zKCkucXVpZXQgPT0gMSk7CisgICAgICAgIF9xdWlldE1v
ZGVDaGVja2VkID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBfaXNRdWlldDsKKyAgICB9
CisgIH0pKCk7Cit9CisKK2Z1bmN0aW9uIG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkg
eworICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorCitjb25zdCBSRVNVTFRTID0geworICBwYXNz
OiAwLAorICBmYWlsOiAwLAorfTsKKworZnVuY3Rpb24gcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5l
c3Moc3VjY2VzcywgbXNnKSB7CisgIGlmIChzdWNjZXNzKSB7CisgICAgUkVTVUxUUy5wYXNzICs9
IDE7CisgIH0gZWxzZSB7CisgICAgUkVTVUxUUy5mYWlsICs9IDE7CisgIH0KKyAgaWYgKHdpbmRv
dy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0
SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgc3VjY2Vzcywg
bXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiByZXBvcnRTa2lwcGVkVGVzdFJlc3VsdHNUb0hhcm5l
c3Moc3VjY2VzcywgbXNnKSB7CisgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mp
IHsKKyAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5k
b3cubG9jYXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZywgdHJ1ZSk7CisgIH0KK30KKworZnVu
Y3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7CisgIGlmICh3aW5kb3cuX2RpZE5vdGlm
eUZpbmlzaGVkVG9IYXJuZXNzKSB7CisgICAgdGVzdEZhaWxlZCgiRHVwbGljYXRlIG5vdGlmeUZp
bmlzaGVkVG9IYXJuZXNzKCkiKTsKKyAgfQorICB3aW5kb3cuX2RpZE5vdGlmeUZpbmlzaGVkVG9I
YXJuZXNzID0gdHJ1ZTsKKworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7
CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRv
dy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3
b3JrTm90aWZ5RG9uZSkgeworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9u
ZSgpOworICB9Cit9CisKK3ZhciBfYnVmZmVyZWRDb25zb2xlTG9ncyA9IFtdOworCitmdW5jdGlv
biBfYnVmZmVyZWRMb2dUb0NvbnNvbGUobXNnKQoreworICBpZiAoX2J1ZmZlcmVkQ29uc29sZUxv
Z3MpIHsKKyAgICBfYnVmZmVyZWRDb25zb2xlTG9ncy5wdXNoKG1zZyk7CisgIH0gZWxzZSBpZiAo
d2luZG93LmNvbnNvbGUpIHsKKyAgICB3aW5kb3cuY29uc29sZS5sb2cobXNnKTsKKyAgfQorfQor
CisvLyBQdWJsaWMgZW50cnkgcG9pbnQgZXhwb3NlZCB0byBtYW55IG90aGVyIGZpbGVzLgorZnVu
Y3Rpb24gYnVmZmVyZWRMb2dUb0NvbnNvbGUobXNnKQoreworICBfYnVmZmVyZWRMb2dUb0NvbnNv
bGUobXNnKTsKK30KKworLy8gQ2FsbGVkIGltcGxpY2l0bHkgYnkgdGVzdEZhaWxlZCgpLgorZnVu
Y3Rpb24gX2ZsdXNoQnVmZmVyZWRMb2dzVG9Db25zb2xlKCkKK3sKKyAgaWYgKF9idWZmZXJlZENv
bnNvbGVMb2dzKSB7CisgICAgaWYgKHdpbmRvdy5jb25zb2xlKSB7CisgICAgICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgX2J1ZmZlcmVkQ29uc29sZUxvZ3MubGVuZ3RoOyArK2lpKSB7CisgICAgICAg
IHdpbmRvdy5jb25zb2xlLmxvZyhfYnVmZmVyZWRDb25zb2xlTG9nc1tpaV0pOworICAgICAgfQor
ICAgIH0KKyAgICBfYnVmZmVyZWRDb25zb2xlTG9ncyA9IG51bGw7CisgIH0KK30KKwordmFyIF9q
c1Rlc3RQcmVWZXJib3NlTG9nZ2luZyA9IGZhbHNlOworCitmdW5jdGlvbiBlbmFibGVKU1Rlc3RQ
cmVWZXJib3NlTG9nZ2luZygpCit7CisgICAgX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nID0gdHJ1
ZTsKK30KKworZnVuY3Rpb24gZGVzY3JpcHRpb24obXNnKQoreworICAgIGluaXRUZXN0aW5nSGFy
bmVzcygpOworICAgIGlmIChtc2cgPT09IHVuZGVmaW5lZCkgeworICAgICAgbXNnID0gZG9jdW1l
bnQudGl0bGU7CisgICAgfQorICAgIC8vIEZvciBNU0lFIDYgY29tcGF0aWJpbGl0eQorICAgIHZh
ciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHNwYW4uaW5uZXJI
VE1MID0gJzxwPicgKyBtc2cgKyAnPC9wPjxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiPHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+IiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPiIuPC9wPic7Cisg
ICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9u
Iik7CisgICAgaWYgKGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpCisgICAgICAgIGRlc2NyaXB0aW9u
LnJlcGxhY2VDaGlsZChzcGFuLCBkZXNjcmlwdGlvbi5maXJzdENoaWxkKTsKKyAgICBlbHNlCisg
ICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHNwYW4pOworICAgIGlmIChfanNUZXN0UHJl
VmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKG1zZyk7Cisg
ICAgfQorfQorCitmdW5jdGlvbiBfYWRkU3Bhbihjb250ZW50cykKK3sKKyAgICB2YXIgc3BhbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28g
WEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQorICAgIHNwYW4uaW5uZXJIVE1MID0gY29udGVudHMg
KyAnPGJyIC8+JzsKK30KKworZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIGlmICghcXVpZXRN
b2RlKCkpCisgICAgICBfYWRkU3Bhbihtc2cpOworICAgIGlmIChfanNUZXN0UHJlVmVyYm9zZUxv
Z2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKG1zZyk7CisgICAgfQorfQor
CitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQpCit7CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgv
Ji9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICImbHQ7Iik7Cit9CisvKioKKyAqIERlZmluZXMg
dGhlIGV4Y2VwdGlvbiB0eXBlIGZvciBhIHRlc3QgZmFpbHVyZS4KKyAqIEBjb25zdHJ1Y3Rvcgor
ICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCisgKi8KK3ZhciBU
ZXN0RmFpbGVkRXhjZXB0aW9uID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHsKKyAgIHRoaXMubWVzc2Fn
ZSA9IG1lc3NhZ2U7CisgICB0aGlzLm5hbWUgPSAiVGVzdEZhaWxlZEV4Y2VwdGlvbiI7Cit9Owor
CisvKioKKyAqIEBwYXJhbSAge3N0cmluZz19IG1zZworICovCitmdW5jdGlvbiB0ZXN0UGFzc2Vk
KG1zZykgeworICAgIG1zZyA9IG1zZyB8fCAnUGFzc2VkJzsKKyAgICBpZiAoX2N1cnJlbnRUZXN0
TmFtZSkKKyAgICAgIG1zZyA9IF9jdXJyZW50VGVzdE5hbWUgKyAnOiAnICsgbXNnOworCisgICAg
cmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwgbXNnKTsKKworICAgIGlmICghcXVpZXRN
b2RlKCkpCisgICAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3Nw
YW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgIGlmIChfanNUZXN0UHJl
VmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdQQVNTICcg
KyBtc2cpOworICAgIH0KK30KKworLyoqCisgKiBAcGFyYW0gIHtzdHJpbmc9fSBtc2cKKyAqLwor
ZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpIHsKKyAgICBtc2cgPSBtc2cgfHwgJ0ZhaWxlZCc7Cisg
ICAgaWYgKF9jdXJyZW50VGVzdE5hbWUpCisgICAgICBtc2cgPSBfY3VycmVudFRlc3ROYW1lICsg
JzogJyArIG1zZzsKKworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKGZhbHNlLCBtc2cp
OworICAgIF9hZGRTcGFuKCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyAr
IGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xl
KCdGQUlMICcgKyBtc2cpOworICAgIF9mbHVzaEJ1ZmZlcmVkTG9nc1RvQ29uc29sZSgpOworfQor
Cit2YXIgX2N1cnJlbnRUZXN0TmFtZTsKKworLyoqCisgKiBTZXRzIHRoZSBjdXJyZW50IHRlc3Qg
bmFtZSBmb3IgdXNhZ2Ugd2l0aGluIHRlc3RQYXNzZWRPcHRpb25zL3Rlc3RGYWlsZWRPcHRpb25z
LgorICogQHBhcmFtIHtzdHJpbmc9fSBuYW1lIFRoZSBuYW1lIHRvIHNldCBhcyB0aGUgY3VycmVu
dCB0ZXN0IG5hbWUuCisgKi8KK2Z1bmN0aW9uIHNldEN1cnJlbnRUZXN0TmFtZShuYW1lKQorewor
ICAgIF9jdXJyZW50VGVzdE5hbWUgPSBuYW1lOworfQorCisvKioKKyAqIEdldHMgdGhlIGN1cnJl
bnQgdGVzdCBuYW1lIGluIHVzZSB3aXRoaW4gdGVzdFBhc3NlZE9wdGlvbnMvdGVzdEZhaWxlZE9w
dGlvbnMuCisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHRlc3Qu
CisgKi8KK2Z1bmN0aW9uIGdldEN1cnJlbnRUZXN0TmFtZSgpCit7CisgICAgcmV0dXJuIF9jdXJy
ZW50VGVzdE5hbWU7Cit9CisKKy8qKgorICogVmFyaWF0aW9uIG9mIHRoZSB0ZXN0UGFzc2VkIGZ1
bmN0aW9uLCB3aXRoIHRoZSBvcHRpb24gdG8gbm90IHNob3cgKGFuZCB0aHVzIG5vdCBjb3VudCkg
dGhlIHRlc3QncyBwYXNzIHJlc3VsdC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgVGhlIG1lc3Nh
Z2UgdG8gYmUgc2hvd24gaW4gdGhlIHBhc3MgcmVzdWx0LgorICogQHBhcmFtIHtib29sZWFufSBh
ZGRTcGFuIEluZGljYXRlcyB3aGV0aGVyIHRoZSBtZXNzYWdlIHdpbGwgYmUgdmlzaWJsZSAodGh1
cyBjb3VudGVkIGluIHRoZSByZXN1bHRzKSBvciBub3QuCisgKi8KK2Z1bmN0aW9uIHRlc3RQYXNz
ZWRPcHRpb25zKG1zZywgYWRkU3BhbikKK3sKKyAgICBpZiAoYWRkU3BhbiAmJiAhcXVpZXRNb2Rl
KCkpCisgICAgeworICAgICAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyh0cnVlLCBfY3Vy
cmVudFRlc3ROYW1lICsgIjogIiArIG1zZyk7CisgICAgICAgIF9hZGRTcGFuKCc8c3Bhbj48c3Bh
biBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVzY2FwZUhUTUwoX2N1cnJlbnRUZXN0TmFt
ZSkgKyAiOiAiICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAgICB9CisgICAgaWYg
KF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfYnVmZmVyZWRMb2dUb0NvbnNv
bGUoJ1BBU1MgJyArIG1zZyk7CisgICAgfQorfQorCisvKioKKyAqIFJlcG9ydCBza2lwcGVkIHRl
c3RzLgorICogQHBhcmFtIHtzdHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0byBiZSBzaG93biBpbiB0
aGUgc2tpcCByZXN1bHQuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGFkZFNwYW4gSW5kaWNhdGVzIHdo
ZXRoZXIgdGhlIG1lc3NhZ2Ugd2lsbCBiZSB2aXNpYmxlICh0aHVzIGNvdW50ZWQgaW4gdGhlIHJl
c3VsdHMpIG9yIG5vdC4KKyAqLworZnVuY3Rpb24gdGVzdFNraXBwZWRPcHRpb25zKG1zZywgYWRk
U3BhbikKK3sKKyAgICBpZiAoYWRkU3BhbiAmJiAhcXVpZXRNb2RlKCkpCisgICAgeworICAgICAg
ICByZXBvcnRTa2lwcGVkVGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwgX2N1cnJlbnRUZXN0TmFt
ZSArICI6ICIgKyBtc2cpOworICAgICAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9Indh
cm4iPlNLSVA8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKF9jdXJyZW50VGVzdE5hbWUpICsgIjogIiAr
IGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgfQorICAgIGlmIChfanNUZXN0UHJl
VmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdTS0lQJyAr
IG1zZyk7CisgICAgfQorfQorCisvKioKKyAqIFZhcmlhdGlvbiBvZiB0aGUgdGVzdEZhaWxlZCBm
dW5jdGlvbiwgd2l0aCB0aGUgb3B0aW9uIHRvIHRocm93IGFuIGV4Y2VwdGlvbiBvciBub3QuCisg
KiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGJlIHNob3duIGluIHRoZSBmYWls
IHJlc3VsdC4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gZXh0aHJvdyBJbmRpY2F0ZXMgd2hldGhlciB0
aGUgZnVuY3Rpb24gd2lsbCB0aHJvdyBhIFRlc3RGYWlsZWRFeGNlcHRpb24gb3Igbm90LgorICov
CitmdW5jdGlvbiB0ZXN0RmFpbGVkT3B0aW9ucyhtc2csIGV4dGhyb3cpCit7CisgICAgcmVwb3J0
VGVzdFJlc3VsdHNUb0hhcm5lc3MoZmFsc2UsIF9jdXJyZW50VGVzdE5hbWUgKyAiOiAiICsgbXNn
KTsKKyAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcg
KyBlc2NhcGVIVE1MKF9jdXJyZW50VGVzdE5hbWUpICsgIjogIiArIGVzY2FwZUhUTUwobXNnKSAr
ICc8L3NwYW4+Jyk7CisgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdGQUlMICcgKyBtc2cpOwor
ICAgIF9mbHVzaEJ1ZmZlcmVkTG9nc1RvQ29uc29sZSgpOworICAgIGlmIChleHRocm93KSB7Cisg
ICAgICAgIF9jdXJyZW50VGVzdE5hbWUgPSAiIjsgLy9SZW1lbWJlcmluZyB0byBzZXQgdGhlIG5h
bWUgb2YgY3VycmVudCB0ZXN0Y2FzZSB0byBlbXB0eSBzdHJpbmcuCisgICAgICAgIHRocm93IG5l
dyBUZXN0RmFpbGVkRXhjZXB0aW9uKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBhcmVBcnJh
eXNFcXVhbChfYSwgX2IpCit7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKF9hLmxlbmd0aCAhPT0g
X2IubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IF9hLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKF9hW2ldICE9PSBfYltp
XSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rp
b24gaXNNaW51c1plcm8obikKK3sKKyAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZyb20g
LTAgaW4gSlMgaXMgdGhlIGZhY3QgdGhhdCAxLy0wIGlzCisgICAgLy8gLUluZmluaXR5IGluc3Rl
YWQgb2YgSW5maW5pdHkKKyAgICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOworfQorCitmdW5j
dGlvbiBpc1Jlc3VsdENvcnJlY3QoX2FjdHVhbCwgX2V4cGVjdGVkKQoreworICAgIGlmIChfZXhw
ZWN0ZWQgPT09IDApCisgICAgICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQgJiYgKDEv
X2FjdHVhbCkgPT09ICgxL19leHBlY3RlZCk7CisgICAgaWYgKF9hY3R1YWwgPT09IF9leHBlY3Rl
ZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQpID09ICJu
dW1iZXIiICYmIGlzTmFOKF9leHBlY3RlZCkpCisgICAgICAgIHJldHVybiB0eXBlb2YoX2FjdHVh
bCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CisgICAgaWYgKE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChfZXhwZWN0ZWQpID09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbChbXSkpCisgICAgICAgIHJldHVybiBhcmVBcnJheXNFcXVhbChfYWN0dWFsLCBfZXhwZWN0
ZWQpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gc3RyaW5naWZ5KHYpCit7Cisg
ICAgaWYgKHYgPT09IDAgJiYgMS92IDwgMCkKKyAgICAgICAgcmV0dXJuICItMCI7CisgICAgZWxz
ZSByZXR1cm4gIiIgKyB2OworfQorCitmdW5jdGlvbiBldmFsQW5kTG9nKF9hKQoreworICBpZiAo
dHlwZW9mIF9hICE9ICJzdHJpbmciKQorICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRMb2coKSBleHBl
Y3RzIGEgc3RyaW5nIGFyZ3VtZW50Iik7CisKKyAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdz
IGdvIGhvcnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KKyAgZGVidWco
X2EpOworCisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNh
dGNoIChlKSB7CisgICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBlKTsK
KyAgfQorICByZXR1cm4gX2F2OworfQorCitmdW5jdGlvbiBzaG91bGRCZVN0cmluZyhldmFsYWJs
ZSwgZXhwZWN0ZWQpIHsKKyAgICBjb25zdCB2YWwgPSBldmFsKGV2YWxhYmxlKTsKKyAgICBjb25z
dCB0ZXh0ID0gZXZhbGFibGUgKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWQgKyAiLiI7CisgICAg
aWYgKHZhbCA9PSBleHBlY3RlZCkgeworICAgICAgICB0ZXN0UGFzc2VkKHRleHQpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQodGV4dCArICIgKHdhcyAiICsgdmFsICsgIikiKTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYg
KHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAg
IGRlYnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAg
IHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBl
dmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAg
fQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9u
ICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikp
IHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIg
aXMgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlw
ZW9mKF9idikpCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsg
Ii4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBf
YnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5
cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRl
YnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAg
IHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBl
dmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAg
fQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwg
X2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9h
ICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiIpOworfQorCitmdW5jdGlv
biBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0KK2Z1bmN0aW9uIHNo
b3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9CitmdW5jdGlvbiBzaG91
bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU51
bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KKworZnVuY3Rpb24gc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKGEsIGIpCit7CisgIHZhciB1bmV2YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFj
ZSgvIi9nLCAiXCIiKSArICciJzsKKyAgc2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQor
CitmdW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgLy8gQSBn
ZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRvci4gICdhY3R1YWwnIHNob3VsZCBiZSBhIHN0cmluZyB0
byBiZQorICAvLyBldmFsdWF0ZWQsIGFzIGZvciBzaG91bGRCZSgpLiAnZXhwZWN0ZWQnIG1heSBi
ZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQorICAvLyB1c2VkIHdpdGhvdXQgYmVpbmcgZXZhbCdlZC4K
KyAgaWYgKGV4cGVjdGVkID09IG51bGwpIHsKKyAgICAvLyBEbyB0aGlzIGJlZm9yZSB0aGUgb2Jq
ZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlwZSAnb2JqZWN0Jy4KKyAgICBzaG91bGRCZU51
bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gInVuZGVmaW5lZCIp
IHsKKyAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBl
eHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7CisgICAgLy8gQWxsIHRoaXMgZnVzcyBpcyB0byBhdm9p
ZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5nIGZyb20gc2hvdWxkQmUoKS4KKyAgICB0cnkgeworICAg
ICAgdmFyIGFjdHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgIHRlc3RGYWlsZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6IFRocmV3IGV4Y2VwdGlv
biAiICsgZSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJlKCInIiArIGFjdHVh
bFZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciLAorICAgICAgICAgICAg
ICInIiArIGV4cGVjdGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciKTsKKyAg
fSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKKyAgICBzaG91bGRCZVRy
dWUoYWN0dWFsICsgIiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKKyAgfSBlbHNlIGlmICh0eXBl
b2YgZXhwZWN0ZWQgPT0gInN0cmluZyIpIHsKKyAgICBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xlYW4iKSB7CisgICAgc2hv
dWxkQmUoInR5cGVvZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7CisgICAgaWYgKGV4cGVjdGVk
KQorICAgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCk7CisgICAgZWxzZQorICAgICAgc2hvdWxkQmVG
YWxzZShhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAibnVtYmVyIikg
eworICAgIHNob3VsZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVkKSk7CisgIH0gZWxzZSB7
CisgICAgZGVidWcoZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAiICsgdHlwZW9mIGV4cGVj
dGVkKTsKKyAgICBzaG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBlY3RlZC50b1N0cmluZygp
ICsgIiciKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZU5vblplcm8oX2EpCit7CisgIHZh
ciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOwor
ICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0
aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gVGhyZXcgZXhj
ZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gMCkKKyAgICB0ZXN0UGFz
c2VkKF9hICsgIiBpcyBub24temVyby4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSBub24temVyby4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRC
ZU5vbk51bGwoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7Cisg
ICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7
CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSBub24tbnVsbC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChf
YXYgIT0gbnVsbCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24tbnVsbC4iKTsKKyAgZWxz
ZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIgKyBfYXYp
OworfQorCitmdW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlv
bjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOworICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQorICAg
IHRlc3RQYXNzZWQoX2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rp
b24gc2hvdWxkQmVEZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2Owor
ICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNl
cHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgYmUgZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBl
bHNlIGlmIChfYXYgIT09IHVuZGVmaW5lZCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBkZWZp
bmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQu
IFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVMZXNzVGhhbk9yRXF1YWwoX2Es
IF9iKSB7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0
cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUxlc3NUaGFuT3JFcXVhbCBleHBl
Y3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9h
djsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsK
KworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSA8PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxz
ZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPiBfYnYpCisgICAgICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIg
KG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzIDw9ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlR3JlYXRl
clRoYW5PckVxdWFsKF9hLCBfYikgeworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwg
dHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisKKyAgICB2YXIgZXhj
ZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChfYSk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAgICB2
YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBl
eGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIgfHwgX2F2
IDwgX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsg
Ii4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsgX2IpOworfQorCitmdW5j
dGlvbiBleHBlY3RUcnVlKHYsIG1zZykgeworICBpZiAodikgeworICAgIHRlc3RQYXNzZWQobXNn
KTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKG1zZyk7CisgIH0KK30KKworZnVuY3Rpb24g
bWF4QXJyYXlEaWZmKGEsIGIpIHsKKyAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcihgYSBhbmQgYiBoYXZlIGRpZmZlcmVudCBsZW5ndGhzOiAke2Eu
bGVuZ3RofSB2cyAke2IubGVuZ3RofWApOworCisgICAgbGV0IGRpZmYgPSAwOworICAgIGZvciAo
Y29uc3QgaSBpbiBhKSB7CisgICAgICAgIGRpZmYgPSBNYXRoLm1heChkaWZmLCBNYXRoLmFicyhh
W2ldIC0gYltpXSkpOworICAgIH0KKyAgICByZXR1cm4gZGlmZjsKK30KKworZnVuY3Rpb24gZXhw
ZWN0QXJyYXkod2FzLCBleHBlY3RlZCwgbWF4RGlmZj0wKSB7CisgICAgY29uc3QgZGlmZiA9IG1h
eEFycmF5RGlmZihleHBlY3RlZCwgd2FzKTsKKyAgICBsZXQgc3RyID0gYEV4cGVjdGVkIFske2V4
cGVjdGVkLnRvU3RyaW5nKCl9XWA7CisgICAgbGV0IGZuID0gdGVzdFBhc3NlZDsKKyAgICBpZiAo
bWF4RGlmZikgeworICAgICAgICBzdHIgKz0gJyArLy0gJyArIG1heERpZmY7CisgICAgfQorICAg
IGlmIChkaWZmID4gbWF4RGlmZikgeworICAgICAgICBmbiA9IHRlc3RGYWlsZWQ7CisgICAgICAg
IHN0ciArPSBgLCB3YXMgWyR7d2FzLnRvU3RyaW5nKCl9XWA7CisgICAgfQorICAgIGZuKHN0cik7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsK
KyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIHZhciBfZXY7CisgIGlmIChfZSkKKyAg
ICAgIF9ldiA9ICBldmFsKF9lKTsKKworICBpZiAoZXhjZXB0aW9uKSB7CisgICAgaWYgKHR5cGVv
ZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0gX2V2KQorICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOworICAgIGVsc2UK
KyAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAi
dW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmlu
ZWQiKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9
PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyB1bmRlZmluZWQu
Iik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBl
b2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiAr
IF9hdiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdFRocm93KGV2YWxTdHIsIGRlc2Mp
IHsKKyAgZGVzYyA9IGRlc2MgfHwgYFxgJHtldmFsU3RyfVxgYDsKKyAgdHJ5IHsKKyAgICBldmFs
KGV2YWxTdHIpOworICAgIHRlc3RQYXNzZWQoYCR7ZGVzY30gc2hvdWxkIG5vdCB0aHJvdy5gKTsK
KyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYCR7ZGVzY30gc2hvdWxkIG5vdCB0aHJv
dywgYnV0IHRocmV3IGV4Y2VwdGlvbiAke2V9LmApOworICB9Cit9CisKKworZnVuY3Rpb24gc2hv
dWxkQmVUeXBlKF9hLCBfdHlwZSkgeworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsK
KyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorCisgICAgdmFyIF90eXBldiA9IGV2YWwoX3R5
cGUpOworCisgICAgaWYoX3R5cGV2ID09PSBOdW1iZXIpeworICAgICAgICBpZihfYXYgaW5zdGFu
Y2VvZiBOdW1iZXIpeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFu
Y2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZih0eXBlb2YoX2F2KSA9
PT0gJ251bWJlcicpeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFu
Y2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZXsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICBlbHNlIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlwZXYpIHsKKyAgICAgICAg
dGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgICB9IGVs
c2UgeworICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgIiAr
IF90eXBlKTsKKyAgICB9Cit9CisKKy8qKgorICogU2hvd3MgYSBtZXNzYWdlIGluIGNhc2UgZXhw
cmVzc2lvbiB0ZXN0IGZhaWxzLgorICogQHBhcmFtIHtib29sZWFufSBleHAKKyAqIEBwYXJhbSB7
c3RyYWluZ30gbWVzc2FnZQorICovCitmdW5jdGlvbiBjaGVja01lc3NhZ2UoZXhwLCBtZXNzYWdl
KSB7CisgICAgaWYgKCAhZXhwICkKKyAgICAgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNz
PSJ3YXJuIj5XQVJOSU5HPC9zcGFuPiAnICsgZXNjYXBlSFRNTChfY3VycmVudFRlc3ROYW1lKSAr
ICI6ICIgKyBlc2NhcGVIVE1MKG1lc3NhZ2UpICsgJzwvc3Bhbj4nKTsKK30KKworZnVuY3Rpb24g
YXNzZXJ0TXNnKGFzc2VydGlvbiwgbXNnKSB7CisgICAgaWYgKGFzc2VydGlvbikgeworICAgICAg
ICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChtc2cp
OworICAgIH0KK30KKworLyoqCisgKiBWYXJpYXRpb24gb2YgdGhlIGFzc2VydE1zZyBmdW5jdGlv
biwgd2l0aCB0aGUgb3B0aW9uIHRvIG5vdCBzaG93IChhbmQgdGh1cyBub3QgY291bnQpIHRoZSB0
ZXN0J3MgcGFzcyByZXN1bHQsCisgKiBhbmQgdGhyb3cgb3Igbm90IGEgVGVzdEZhaWxlZEV4Y2Vw
dGlvbiBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGFzc2VydGlvbiBJ
ZiB0aGlzIGlzIHRydWUsIG1lYW5zIHN1Y2Nlc3MsIGVsc2UgZmFpbHVyZS4KKyAqIEBwYXJhbSB7
P3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGJlIHNob3duIGluIHRoZSByZXN1bHQuCisgKiBA
cGFyYW0ge2Jvb2xlYW59IHZlcmJvc2UgSW4gY2FzZSBvZiBzdWNjZXNzLCBkZXRlcm1pbmVzIGlm
IHRoZSB0ZXN0IHdpbGwgc2hvdyBpdCdzIHJlc3VsdCBhbmQgY291bnQgaW4gdGhlIHJlc3VsdHMu
CisgKiBAcGFyYW0ge2Jvb2xlYW59IGV4dGhyb3cgSW4gY2FzZSBvZiBmYWlsdXJlLCBkZXRlcm1p
bmVzIGlmIHRoZSBmdW5jdGlvbiB3aWxsIHRocm93IGEgVGVzdEZhaWxlZEV4Y2VwdGlvbi4KKyAq
LworZnVuY3Rpb24gYXNzZXJ0TXNnT3B0aW9ucyhhc3NlcnRpb24sIG1zZywgdmVyYm9zZSwgZXh0
aHJvdykgeworICAgIGlmIChhc3NlcnRpb24pIHsKKyAgICAgICAgdGVzdFBhc3NlZE9wdGlvbnMo
bXNnLCB2ZXJib3NlKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkT3B0aW9ucyht
c2csIGV4dGhyb3cpOworICAgIH0KK30KKworCitmdW5jdGlvbiB3ZWJnbEhhcm5lc3NDb2xsZWN0
R2FyYmFnZSgpIHsKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikgeworICAgICAgICB3aW5k
b3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICh3aW5kb3cub3BlcmEgJiYgd2luZG93Lm9wZXJhLmNvbGxlY3QpIHsKKyAgICAgICAgd2lu
ZG93Lm9wZXJhLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyeSB7
CisgICAgICAgIHdpbmRvdy5RdWVyeUludGVyZmFjZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJ
SW50ZXJmYWNlUmVxdWVzdG9yKQorICAgICAgICAgICAgICAuZ2V0SW50ZXJmYWNlKENvbXBvbmVu
dHMuaW50ZXJmYWNlcy5uc0lET01XaW5kb3dVdGlscykKKyAgICAgICAgICAgICAgLmdhcmJhZ2VD
b2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGNhdGNoKGUpIHt9CisKKyAgICBpZiAo
d2luZG93LmdjKSB7CisgICAgICAgIHdpbmRvdy5nYygpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKHdpbmRvdy5Db2xsZWN0R2FyYmFnZSkgeworICAgICAgICBDb2xsZWN0R2Fy
YmFnZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2ViS2l0J3MgTWluaUJy
b3dzZXIuCisgICAgaWYgKHdpbmRvdy4kdm0pIHsKKyAgICAgICAgd2luZG93LiR2bS5nYygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2NSZWMobikgeworICAgICAg
ICBpZiAobiA8IDEpCisgICAgICAgICAgICByZXR1cm4ge307CisgICAgICAgIHZhciB0ZW1wID0g
e2k6ICJhYiIgKyBpICsgKGkgLyAxMDAwMDApfTsKKyAgICAgICAgdGVtcCArPSAiZm9vIjsKKyAg
ICAgICAgZ2NSZWMobi0xKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBp
KyspCisgICAgICAgIGdjUmVjKDEwKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgdmFyIGVwaWxvZ3VlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic2NyaXB0Iik7CisgIHZhciBiYXNlUGF0aCA9ICIiOworICB2YXIgZXhwZWN0
ZWRCYXNlID0gImpzLXRlc3QtcHJlLmpzIjsKKyAgdmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CisgIGZvciAodmFyIHNjcmlwdCwgaSA9IDA7IHNj
cmlwdCA9IHNjcmlwdHNbaV07IGkrKykgeworICAgIHZhciBzcmMgPSBzY3JpcHQuc3JjOworICAg
IHZhciBsID0gc3JjLmxlbmd0aDsKKyAgICBpZiAoc3JjLnN1YnN0cihsIC0gZXhwZWN0ZWRCYXNl
Lmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7CisgICAgICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIo
MCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOworICAgICAgYnJlYWs7CisgICAgfQorICB9Cisg
IGVwaWxvZ3VlLnNyYyA9IGJhc2VQYXRoICsgImpzLXRlc3QtcG9zdC5qcyI7CisgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZXBpbG9ndWUpOworfQorCisvLy8gUHJlZmVyIGBjYWxsKCgpID0+
IHsgLi4uIH0pYCB0byBgKCgpID0+IHsgLi4uIH0pKClgXAorLy8vIFRoaXMgd2F5LCBpdCdzIGNs
ZWFyIHVwLWZyb250IHRoYXQgd2UncmUgY2FsbGluZyBub3QganVzdCBkZWZpbmluZy4KK2Z1bmN0
aW9uIGNhbGwoZm4pIHsKKyAgICByZXR1cm4gZm4oKTsKK30KKworLy8vIGBmb3IgKGNvbnN0IGkg
b2YgcmFuZ2UoMykpYCA9PiAwLCAxLCAyCisvLy8gRG9uJ3QgdXNlIGBmb3IuLi5pbiByYW5nZShu
KWAsIGl0IHdpbGwgbm90IHdvcmsuCitmdW5jdGlvbiogcmFuZ2UobikgeworICBmb3IgKGxldCBp
ID0gMDsgaSA8IG47IGkrKykgeworICAgIHlpZWxkIGk7CisgIH0KK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
d2ViZ2wtdGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YWZmYTEwODIzMDQ0YjE2NDkwZTBlMzdiZjhhYzJiM2NjOTFjNzNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzCkBAIC0wLDAgKzEsMzU1MiBAQAorLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwordmFyIFdlYkdMVGVzdFV0aWxzID0gKGZ1bmN0
aW9uKCkgeworInVzZSBzdHJpY3QiOworCisvKioKKyAqIFdyYXBwZWQgbG9nZ2luZyBmdW5jdGlv
bi4KKyAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgVGhlIG1lc3NhZ2UgdG8gbG9nLgorICovCit2YXIg
bG9nID0gZnVuY3Rpb24obXNnKSB7CisgIGJ1ZmZlcmVkTG9nVG9Db25zb2xlKG1zZyk7Cit9Owor
CisvKioKKyAqIFdyYXBwZWQgbG9nZ2luZyBmdW5jdGlvbi4KKyAqIEBwYXJhbSB7c3RyaW5nfSBt
c2cgVGhlIG1lc3NhZ2UgdG8gbG9nLgorICovCit2YXIgZXJyb3IgPSBmdW5jdGlvbihtc2cpIHsK
KyAgLy8gRm9yIHRoZSB0aW1lIGJlaW5nLCBkaXZlcnRpbmcgdGhpcyB0byB3aW5kb3cuY29uc29s
ZS5sb2cgcmF0aGVyCisgIC8vIHRoYW4gd2luZG93LmNvbnNvbGUuZXJyb3IuIElmIGFueW9uZSBj
YXJlcyBlbm91Z2ggdGhleSBjYW4KKyAgLy8gZ2VuZXJhbGl6ZSB0aGUgbWVjaGFuaXNtIGluIGpz
LXRlc3QtcHJlLmpzLgorICBsb2cobXNnKTsKK307CisKKy8qKgorICogVHVybiBvZmYgYWxsIGxv
Z2dpbmcuCisgKi8KK3ZhciBsb2dnaW5nT2ZmID0gZnVuY3Rpb24oKSB7CisgIGxvZyA9IGZ1bmN0
aW9uKCkge307CisgIGVycm9yID0gZnVuY3Rpb24oKSB7fTsKK307CisKK2NvbnN0IEVOVU1fTkFN
RV9SRUdFWCA9IFJlZ0V4cCgnW0EtWl1bQS1aMC05X10qJyk7Citjb25zdCBFTlVNX05BTUVfQllf
VkFMVUUgPSB7fTsKK2NvbnN0IEVOVU1fTkFNRV9QUk9UT1RZUEVTID0gbmV3IE1hcCgpOworCisv
KioKKyAqIENvbnZlcnRzIGEgV2ViR0wgZW51bSB0byBhIHN0cmluZy4KKyAqIEBwYXJhbSB7IVdl
YkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2Uu
CisgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIGVudW0gdmFsdWUuCisgKiBAcmV0dXJuIHtz
dHJpbmd9IFRoZSBlbnVtIGFzIGEgc3RyaW5nLgorICovCit2YXIgZ2xFbnVtVG9TdHJpbmcgPSBm
dW5jdGlvbihnbE9yRXh0LCB2YWx1ZSkgeworICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoJ2dsRW51bVRvU3RyaW5nOiBgdmFsdWVgIG11c3Qgbm90IGJlIHVu
ZGVmaW5lZCcpOworCisgIGNvbnN0IHByb3RvID0gZ2xPckV4dC5fX3Byb3RvX187CisgIGlmICgh
RU5VTV9OQU1FX1BST1RPVFlQRVMuaGFzKHByb3RvKSkgeworICAgIEVOVU1fTkFNRV9QUk9UT1RZ
UEVTLnNldChwcm90bywgdHJ1ZSk7CisKKyAgICBmb3IgKGNvbnN0IGsgaW4gcHJvdG8pIHsKKyAg
ICAgIGlmICghRU5VTV9OQU1FX1JFR0VYLnRlc3QoaykpIGNvbnRpbnVlOworCisgICAgICBjb25z
dCB2ID0gZ2xPckV4dFtrXTsKKyAgICAgIGlmIChFTlVNX05BTUVfQllfVkFMVUVbdl0gPT09IHVu
ZGVmaW5lZCkgeworICAgICAgICBFTlVNX05BTUVfQllfVkFMVUVbdl0gPSBrOworICAgICAgfSBl
bHNlIHsKKyAgICAgICAgRU5VTV9OQU1FX0JZX1ZBTFVFW3ZdICs9ICcvJyArIGs7CisgICAgICB9
CisgICAgfQorICB9CisKKyAgY29uc3Qga2V5ID0gRU5VTV9OQU1FX0JZX1ZBTFVFW3ZhbHVlXTsK
KyAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSByZXR1cm4ga2V5OworCisgIHJldHVybiAiMHgiICsg
TnVtYmVyKHZhbHVlKS50b1N0cmluZygxNik7Cit9OworCit2YXIgbGFzdEVycm9yID0gIiI7CisK
Ky8qKgorICogUmV0dXJucyB0aGUgbGFzdCBjb21waWxlci9saW5rZXIgZXJyb3IuCisgKiBAcmV0
dXJuIHtzdHJpbmd9IFRoZSBsYXN0IGNvbXBpbGVyL2xpbmtlciBlcnJvci4KKyAqLwordmFyIGdl
dExhc3RFcnJvciA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4gbGFzdEVycm9yOworfTsKKworLyoq
CisgKiBXaGV0aGVyIGEgaGF5c3RhY2sgZW5kcyB3aXRoIGEgbmVlZGxlLgorICogQHBhcmFtIHtz
dHJpbmd9IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKKyAqIEBwYXJhbSB7c3RyaW5nfSBuZWVk
bGUgU3RyaW5nIHRvIHNlYXJjaCBmb3IuCisgKiBAcGFyYW0ge2Jvb2xlYW59IFRydWUgaWYgaGF5
c3RhY2sgZW5kcyB3aXRoIG5lZWRsZS4KKyAqLwordmFyIGVuZHNXaXRoID0gZnVuY3Rpb24oaGF5
c3RhY2ssIG5lZWRsZSkgeworICByZXR1cm4gaGF5c3RhY2suc3Vic3RyKGhheXN0YWNrLmxlbmd0
aCAtIG5lZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Cit9OworCisvKioKKyAqIFdoZXRoZXIgYSBo
YXlzdGFjayBzdGFydHMgd2l0aCBhIG5lZWRsZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBoYXlzdGFj
ayBTdHJpbmcgdG8gc2VhcmNoCisgKiBAcGFyYW0ge3N0cmluZ30gbmVlZGxlIFN0cmluZyB0byBz
ZWFyY2ggZm9yLgorICogQHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhheXN0YWNrIHN0YXJ0cyB3
aXRoIG5lZWRsZS4KKyAqLwordmFyIHN0YXJ0c1dpdGggPSBmdW5jdGlvbihoYXlzdGFjaywgbmVl
ZGxlKSB7CisgIHJldHVybiBoYXlzdGFjay5zdWJzdHIoMCwgbmVlZGxlLmxlbmd0aCkgPT09IG5l
ZWRsZTsKK307CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJl
LgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIg
PSBbCisgICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ2F0dHJpYnV0ZSB2ZWMyIHRl
eENvb3JkMDsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisgICd2b2lkIG1haW4oKSB7
JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnICAgIHRleENvb3JkID0g
dGV4Q29vcmQwOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIHZlcnRleCBzaGFk
ZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2lt
cGxlVGV4dHVyZVZlcnRleFNoYWRlckVTU0wzMDAgPSBbCisgICcjdmVyc2lvbiAzMDAgZXMnLAor
ICAnbGF5b3V0KGxvY2F0aW9uPTApIGluIHZlYzQgdlBvc2l0aW9uOycsCisgICdsYXlvdXQobG9j
YXRpb249MSkgaW4gdmVjMiB0ZXhDb29yZDA7JywKKyAgJ291dCB2ZWMyIHRleENvb3JkOycsCisg
ICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAn
ICAgIHRleENvb3JkID0gdGV4Q29vcmQwOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisg
KiBBIGZyYWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJp
bmd9CisgKi8KK3ZhciBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIgPSBbCisgICdwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSBzYW1wbGVyMkQgdGV4OycsCisgICd2YXJ5
aW5nIHZlYzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdE
YXRhWzBdID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOycsCisgICd9J10uam9pbignXG4nKTsK
KworLyoqCisgKiBBIGZyYWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KKyAqIEB0
eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXJFU1NMMzAw
ID0gWworICAnI3ZlcnNpb24gMzAwIGVzJywKKyAgJ3ByZWNpc2lvbiBoaWdocCBmbG9hdDsnLAor
ICAndW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OycsCisgICdpbiB2ZWMyIHRleENvb3JkOycs
CisgICdvdXQgdmVjNCBvdXRfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIG91
dF9jb2xvciA9IHRleHR1cmUodGV4LCB0ZXhDb29yZCk7JywKKyAgJ30nXS5qb2luKCdcbicpOwor
CisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJlIHdpdGggaGln
aCBwcmVjaXNpb24uCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxlSGlnaFByZWNp
c2lvblRleHR1cmVGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lvbiBoaWdocCBmbG9hdDsn
LAorICAndW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OycsCisgICd2YXJ5aW5nIHZlYzIgdGV4
Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdGV4
dHVyZTJEKHRleCwgdGV4Q29vcmQpOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBB
IGZyYWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgY3ViZSBtYXAgdGV4dHVyZS4KKyAqIEB0eXBl
IHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVDdWJlTWFwVGV4dHVyZUZyYWdtZW50U2hhZGVyID0g
WworICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAgJ3VuaWZvcm0gc2FtcGxlckN1YmUg
dGV4OycsCisgICd1bmlmb3JtIGhpZ2hwIGludCBmYWNlOycsCisgICd2YXJ5aW5nIHZlYzIgdGV4
Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAvLyBUcmFuc2Zvcm0gWzAsIDFdIC0+IFst
MSwgMV0KKyAgJyAgICB2ZWMyIHRleEMyID0gKHRleENvb3JkICogMi4pIC0gMS47JywKKyAgLy8g
VHJhbnNmb3JtIDJkIHRleCBjb29yZC4gdG8gZWFjaCBmYWNlIG9mIFRFWFRVUkVfQ1VCRV9NQVAg
Y29vcmQuCisgICcgICAgdmVjMyB0ZXhDdWJlID0gdmVjMygwLiwgMC4sIDAuKTsnLAorICAnICAg
IGlmIChmYWNlID09IDM0MDY5KSB7JywgICAgICAgICAvLyBURVhUVVJFX0NVQkVfTUFQX1BPU0lU
SVZFX1gKKyAgJyAgICAgICAgdGV4Q3ViZSA9IHZlYzMoMS4sIC10ZXhDMi55LCAtdGV4QzIueCk7
JywKKyAgJyAgICB9IGVsc2UgaWYgKGZhY2UgPT0gMzQwNzApIHsnLCAgLy8gVEVYVFVSRV9DVUJF
X01BUF9ORUdBVElWRV9YCisgICcgICAgICAgIHRleEN1YmUgPSB2ZWMzKC0xLiwgLXRleEMyLnks
IHRleEMyLngpOycsCisgICcgICAgfSBlbHNlIGlmIChmYWNlID09IDM0MDcxKSB7JywgIC8vIFRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWQorICAnICAgICAgICB0ZXhDdWJlID0gdmVjMyh0ZXhD
Mi54LCAxLiwgdGV4QzIueSk7JywKKyAgJyAgICB9IGVsc2UgaWYgKGZhY2UgPT0gMzQwNzIpIHsn
LCAgLy8gVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZCisgICcgICAgICAgIHRleEN1YmUgPSB2
ZWMzKHRleEMyLngsIC0xLiwgLXRleEMyLnkpOycsCisgICcgICAgfSBlbHNlIGlmIChmYWNlID09
IDM0MDczKSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWgorICAnICAgICAgICB0
ZXhDdWJlID0gdmVjMyh0ZXhDMi54LCAtdGV4QzIueSwgMS4pOycsCisgICcgICAgfSBlbHNlIGlm
IChmYWNlID09IDM0MDc0KSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWgorICAn
ICAgICAgICB0ZXhDdWJlID0gdmVjMygtdGV4QzIueCwgLXRleEMyLnksIC0xLik7JywKKyAgJyAg
ICB9JywKKyAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHRleHR1cmVDdWJlKHRleCwgdGV4Q3ViZSk7
JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSBz
aW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBub1RleENvb3JkVGV4
dHVyZVZlcnRleFNoYWRlciA9IFsKKyAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAorICAn
dmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9Q
b3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnICAgIHRleENvb3JkID0gdlBvc2l0aW9uLnh5ICog
MC41ICsgMC41OycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIHZlcnRleCBzaGFk
ZXIgZm9yIGEgdW5pZm9ybSBjb2xvci4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1w
bGVWZXJ0ZXhTaGFkZXIgPSBbCisgICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ3Zv
aWQgbWFpbigpIHsnLAorICAnICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCisgICd9J10u
am9pbignXG4nKTsKKworLyoqCisgKiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgdW5pZm9ybSBjb2xv
ci4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVWZXJ0ZXhTaGFkZXJFU1NMMzAw
ID0gWworICAnI3ZlcnNpb24gMzAwIGVzJywKKyAgJ2luIHZlYzQgdlBvc2l0aW9uOycsCisgICd2
b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnfSdd
LmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIGEgdW5pZm9ybSBj
b2xvci4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVDb2xvckZyYWdtZW50U2hh
ZGVyID0gWworICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAgJ3VuaWZvcm0gdmVjNCB1
X2NvbG9yOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHVf
Y29sb3I7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVy
IGZvciBhIHVuaWZvcm0gY29sb3IuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxl
Q29sb3JGcmFnbWVudFNoYWRlckVTU0wzMDAgPSBbCisgICcjdmVyc2lvbiAzMDAgZXMnLAorICAn
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAgJ291dCB2ZWM0IG91dF9jb2xvcjsnLAorICAn
dW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIG91dF9j
b2xvciA9IHVfY29sb3I7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgdmVydGV4
IHNoYWRlciBmb3IgdmVydGV4IGNvbG9ycy4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBz
aW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciA9IFsKKyAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3Np
dGlvbjsnLAorICAnYXR0cmlidXRlIHZlYzQgYV9jb2xvcjsnLAorICAndmFyeWluZyB2ZWM0IHZf
Y29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0
aW9uOycsCisgICcgICAgdl9jb2xvciA9IGFfY29sb3I7JywKKyAgJ30nXS5qb2luKCdcbicpOwor
CisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciB2ZXJ0ZXggY29sb3JzLgorICogQHR5cGUg
e3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCisg
ICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAorICAndmFyeWluZyB2ZWM0IHZfY29sb3I7JywK
KyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdl9jb2xvcjsnLAor
ICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVz
IHNoYWRlcnMsIGJpbmRzIGF0dHJpYiBsb2NhdGlvbnMsIGxpbmtzIHRoZQorICogcHJvZ3JhbSBh
bmQgY2FsbHMgdXNlUHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0g
Z2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48
IVdlYkdMU2hhZGVyfHN0cmluZz59IHNoYWRlcnMgVGhlIHNoYWRlcnMgdG8KKyAqICAgICAgICBh
dHRhY2gsIG9yIHRoZSBzb3VyY2UsIG9yIHRoZSBpZCBvZiBhIHNjcmlwdCB0byBnZXQKKyAqICAg
ICAgICB0aGUgc291cmNlIGZyb20uCisgKiBAcGFyYW0geyFBcnJheS48c3RyaW5nPn0gb3B0X2F0
dHJpYnMgVGhlIGF0dHJpYnMgbmFtZXMuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gb3B0
X2xvY2F0aW9ucyBUaGUgbG9jYXRpb25zIGZvciB0aGUgYXR0cmlicy4KKyAqIEBwYXJhbSB7Ym9v
bGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0byBsb2cgc2hhZGVyIHNvdXJjZS4KKyAqLwor
dmFyIHNldHVwUHJvZ3JhbSA9IGZ1bmN0aW9uKAorICAgIGdsLCBzaGFkZXJzLCBvcHRfYXR0cmli
cywgb3B0X2xvY2F0aW9ucywgb3B0X2xvZ1NoYWRlcnMpIHsKKyAgdmFyIHJlYWxTaGFkZXJzID0g
W107CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICB2YXIgc2hhZGVyQ291
bnQgPSAwOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc2hhZGVycy5sZW5ndGg7ICsraWkpIHsK
KyAgICB2YXIgc2hhZGVyID0gc2hhZGVyc1tpaV07CisgICAgdmFyIHNoYWRlclR5cGUgPSB1bmRl
ZmluZWQ7CisgICAgaWYgKHR5cGVvZiBzaGFkZXIgPT0gJ3N0cmluZycpIHsKKyAgICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2hhZGVyKTsKKyAgICAgIGlmIChlbGVt
ZW50KSB7CisgICAgICAgIGlmIChlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtdmVydGV4IiAm
JiBlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQorICAgICAgICAgIHNoYWRl
clR5cGUgPSBpaSA/IGdsLkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRFWF9TSEFERVI7CisgICAg
ICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBzaGFkZXIsIHNoYWRlclR5cGUs
IHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRlcnMpOworICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChz
aGFkZXIsICIudmVydCIpKSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShn
bCwgc2hhZGVyLCBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzKTsK
KyAgICAgIH0gZWxzZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLmZyYWciKSkgeworICAgICAgICBz
aGFkZXIgPSBsb2FkU2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVS
LCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHNo
YWRlciA9IGxvYWRTaGFkZXIoZ2wsIHNoYWRlciwgaWkgPyBnbC5GUkFHTUVOVF9TSEFERVIgOiBn
bC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzKTsKKyAgICAgIH0KKyAg
ICB9IGVsc2UgaWYgKG9wdF9sb2dTaGFkZXJzKSB7CisgICAgICB0aHJvdyAnU2hhZGVyIHNvdXJj
ZSBsb2dnaW5nIHJlcXVlc3RlZCBidXQgbm8gc2hhZGVyIHNvdXJjZSBwcm92aWRlZCc7CisgICAg
fQorICAgIGlmIChzaGFkZXIpIHsKKyAgICAgICsrc2hhZGVyQ291bnQ7CisgICAgICBnbC5hdHRh
Y2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVyKTsKKyAgICB9CisgIH0KKyAgaWYgKHNoYWRlckNvdW50
ICE9IDIpIHsKKyAgICBlcnJvcigiRXJyb3IgaW4gY29tcGlsaW5nIHNoYWRlciIpOworICAgIHJl
dHVybiBudWxsOworICB9CisgIGlmIChvcHRfYXR0cmlicykgeworICAgIGZvciAodmFyIGlpID0g
MDsgaWkgPCBvcHRfYXR0cmlicy5sZW5ndGg7ICsraWkpIHsKKyAgICAgIGdsLmJpbmRBdHRyaWJM
b2NhdGlvbigKKyAgICAgICAgICBwcm9ncmFtLAorICAgICAgICAgIG9wdF9sb2NhdGlvbnMgPyBv
cHRfbG9jYXRpb25zW2lpXSA6IGlpLAorICAgICAgICAgIG9wdF9hdHRyaWJzW2lpXSk7CisgICAg
fQorICB9CisgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworCisgIC8vIENoZWNrIHRoZSBsaW5r
IHN0YXR1cworICB2YXIgbGlua2VkID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBn
bC5MSU5LX1NUQVRVUyk7CisgIGlmICghbGlua2VkKSB7CisgICAgICAvLyBzb21ldGhpbmcgd2Vu
dCB3cm9uZyB3aXRoIHRoZSBsaW5rCisgICAgICBsYXN0RXJyb3IgPSBnbC5nZXRQcm9ncmFtSW5m
b0xvZyAocHJvZ3JhbSk7CisgICAgICBlcnJvcigiRXJyb3IgaW4gcHJvZ3JhbSBsaW5raW5nOiIg
KyBsYXN0RXJyb3IpOworCisgICAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAgICAg
cmV0dXJuIG51bGw7CisgIH0KKworICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICByZXR1cm4g
cHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHNoYWRl
ciwgc2V0cyB1cCB0cmFzbmZvcm0gZmVlZGJhY2sgdmFyeWluZ3MsCisgKiBiaW5kcyBhdHRyaWIg
bG9jYXRpb25zLCBsaW5rcyB0aGUgcHJvZ3JhbSBhbmQgY2FsbHMgdXNlUHJvZ3JhbS4KKyAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48IVdlYkdMU2hhZGVyfHN0cmluZz59IHNoYWRl
cnMgVGhlIHNoYWRlcnMgdG8KKyAqICAgICAgICBhdHRhY2gsIG9yIHRoZSBzb3VyY2UsIG9yIHRo
ZSBpZCBvZiBhIHNjcmlwdCB0byBnZXQKKyAqICAgICAgICB0aGUgc291cmNlIGZyb20uCisgKiBA
cGFyYW0geyFBcnJheS48c3RyaW5nPn0gdmFyeWluZ3MgVGhlIHRyYW5zZm9ybSBmZWVkYmFjayB2
YXJ5aW5nIG5hbWVzLgorICogQHBhcmFtIHtudW1iZXJ9IGJ1ZmZlck1vZGUgVGhlIG1vZGUgdXNl
ZCB0byBjYXB0dXJlIHRoZSB2YXJ5aW5nIHZhcmlhYmxlcy4KKyAqIEBwYXJhbSB7IUFycmF5Ljxz
dHJpbmc+fSBvcHRfYXR0cmlicyBUaGUgYXR0cmlicyBuYW1lcy4KKyAqIEBwYXJhbSB7IUFycmF5
LjxudW1iZXI+fSBvcHRfbG9jYXRpb25zIFRoZSBsb2NhdGlvbnMgZm9yIHRoZSBhdHRyaWJzLgor
ICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9nU2hhZGVycyBXaGV0aGVyIHRvIGxvZyBzaGFkZXIg
c291cmNlLgorICovCit2YXIgc2V0dXBUcmFuc2Zvcm1GZWVkYmFja1Byb2dyYW0gPSBmdW5jdGlv
bigKKyAgICBnbCwgc2hhZGVycywgdmFyeWluZ3MsIGJ1ZmZlck1vZGUsIG9wdF9hdHRyaWJzLCBv
cHRfbG9jYXRpb25zLCBvcHRfbG9nU2hhZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVzKSB7Cisg
IHZhciByZWFsU2hhZGVycyA9IFtdOworICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0o
KTsKKyAgdmFyIHNoYWRlckNvdW50ID0gMDsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHNoYWRl
cnMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHNoYWRlciA9IHNoYWRlcnNbaWldOworICAgIHZh
ciBzaGFkZXJUeXBlID0gdW5kZWZpbmVkOworICAgIGlmICh0eXBlb2Ygc2hhZGVyID09ICdzdHJp
bmcnKSB7CisgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNoYWRl
cik7CisgICAgICBpZiAoZWxlbWVudCkgeworICAgICAgICBpZiAoZWxlbWVudC50eXBlICE9ICJ4
LXNoYWRlci94LXZlcnRleCIgJiYgZWxlbWVudC50eXBlICE9ICJ4LXNoYWRlci94LWZyYWdtZW50
IikKKyAgICAgICAgICBzaGFkZXJUeXBlID0gaWkgPyBnbC5GUkFHTUVOVF9TSEFERVIgOiBnbC5W
RVJURVhfU0hBREVSOworICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwg
c2hhZGVyLCBzaGFkZXJUeXBlLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzLCBvcHRfc2tpcENv
bXBpbGVTdGF0dXMpOworICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChzaGFkZXIsICIudmVydCIp
KSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShnbCwgc2hhZGVyLCBnbC5W
RVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzLCBvcHRfc2tpcENvbXBpbGVT
dGF0dXMpOworICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChzaGFkZXIsICIuZnJhZyIpKSB7Cisg
ICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShnbCwgc2hhZGVyLCBnbC5GUkFHTUVO
VF9TSEFERVIsIHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1
cyk7CisgICAgICB9IGVsc2UgeworICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyKGdsLCBzaGFk
ZXIsIGlpID8gZ2wuRlJBR01FTlRfU0hBREVSIDogZ2wuVkVSVEVYX1NIQURFUiwgdW5kZWZpbmVk
LCBvcHRfbG9nU2hhZGVycywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9wdF9za2lwQ29tcGlsZVN0
YXR1cyk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChvcHRfbG9nU2hhZGVycykgeworICAgICAg
dGhyb3cgJ1NoYWRlciBzb3VyY2UgbG9nZ2luZyByZXF1ZXN0ZWQgYnV0IG5vIHNoYWRlciBzb3Vy
Y2UgcHJvdmlkZWQnOworICAgIH0KKyAgICBpZiAoc2hhZGVyKSB7CisgICAgICArK3NoYWRlckNv
dW50OworICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRlcik7CisgICAgfQorICB9
CisgIGlmIChzaGFkZXJDb3VudCAhPSAyKSB7CisgICAgZXJyb3IoIkVycm9yIGluIGNvbXBpbGlu
ZyBzaGFkZXIiKTsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIGlmIChvcHRfYXR0cmlicykg
eworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBvcHRfYXR0cmlicy5sZW5ndGg7ICsraWkpIHsK
KyAgICAgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbigKKyAgICAgICAgICBwcm9ncmFtLAorICAgICAg
ICAgIG9wdF9sb2NhdGlvbnMgPyBvcHRfbG9jYXRpb25zW2lpXSA6IGlpLAorICAgICAgICAgIG9w
dF9hdHRyaWJzW2lpXSk7CisgICAgfQorICB9CisKKyAgZ2wudHJhbnNmb3JtRmVlZGJhY2tWYXJ5
aW5ncyhwcm9ncmFtLCB2YXJ5aW5ncywgYnVmZmVyTW9kZSk7CisKKyAgZ2wubGlua1Byb2dyYW0o
cHJvZ3JhbSk7CisKKyAgLy8gQ2hlY2sgdGhlIGxpbmsgc3RhdHVzCisgIHZhciBsaW5rZWQgPSBn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKTsKKyAgaWYgKCFs
aW5rZWQpIHsKKyAgICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKKyAg
ICAgIGxhc3RFcnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChwcm9ncmFtKTsKKyAgICAgIGVy
cm9yKCJFcnJvciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGxhc3RFcnJvcik7CisKKyAgICAgIGds
LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIGds
LnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBD
cmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVy
aW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcmV0
dXJuIHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3Jh
bSA9IGZ1bmN0aW9uKGdsKSB7CisgIHJldHVybiBzZXR1cFByb2dyYW0oZ2wsCisgICAgICAgICAg
ICAgICAgICAgICAgW25vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVyLCBzaW1wbGVUZXh0dXJl
RnJhZ21lbnRTaGFkZXJdLAorICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJ10sCisg
ICAgICAgICAgICAgICAgICAgICAgWzBdKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBs
ZSB0ZXh0dXJlIHByb2dyYW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9w
dF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICog
QHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24g
Zm9yIHRleHR1cmUgY29vcmRzLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF9mcmFnbWVudFNoYWRl
ck92ZXJyaWRlIFRoZSBhbHRlcm5hdGl2ZSBmcmFnbWVudCBzaGFkZXIgdG8gdXNlLgorICogQHJl
dHVybiB7V2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbSA9
IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9j
YXRpb24sIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlKSB7CisgIG9wdF9wb3NpdGlvbkxvY2F0
aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgb3B0X3RleGNvb3JkTG9jYXRpb24g
PSBvcHRfdGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICBvcHRfZnJhZ21lbnRTaGFkZXJPdmVycmlk
ZSA9IG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlIHx8IHNpbXBsZVRleHR1cmVGcmFnbWVudFNo
YWRlcjsKKyAgcmV0dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAgICAgICAgICAgICAgICBb
c2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlciwgb3B0X2ZyYWdtZW50U2hhZGVyT3ZlcnJpZGVdLAor
ICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAorICAgICAg
ICAgICAgICAgICAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRp
b25dKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHByb2dyYW0gdXNp
bmcgZ2xzbCB2ZXJzaW9uIDMwMC4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0g
Z2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0g
b3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisg
KiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlv
biBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X2ZyYWdtZW50U2hh
ZGVyT3ZlcnJpZGUgVGhlIGFsdGVybmF0aXZlIGZyYWdtZW50IHNoYWRlciB0byB1c2UuCisgKiBA
cmV0dXJuIHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFt
RVNTTDMwMCA9IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3Rl
eGNvb3JkTG9jYXRpb24sIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlKSB7CisgIG9wdF9wb3Np
dGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgb3B0X3RleGNvb3Jk
TG9jYXRpb24gPSBvcHRfdGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICBvcHRfZnJhZ21lbnRTaGFk
ZXJPdmVycmlkZSA9IG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlIHx8IHNpbXBsZVRleHR1cmVG
cmFnbWVudFNoYWRlckVTU0wzMDA7CisgIHJldHVybiBzZXR1cFByb2dyYW0oZ2wsCisgICAgICAg
ICAgICAgICAgICAgICAgW3NpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXJFU1NMMzAwLCBvcHRfZnJh
Z21lbnRTaGFkZXJPdmVycmlkZV0sCisgICAgICAgICAgICAgICAgICAgICAgWyd2UG9zaXRpb24n
LCAndGV4Q29vcmQwJ10sCisgICAgICAgICAgICAgICAgICAgICAgW29wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgc2lt
cGxlIGN1YmUgbWFwIHRleHR1cmUgcHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5n
Q29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0g
e251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9z
aXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJp
YiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19
CisgKi8KK3ZhciBzZXR1cFNpbXBsZUN1YmVNYXBUZXh0dXJlUHJvZ3JhbSA9IGZ1bmN0aW9uKAor
ICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKKyAg
b3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICBvcHRf
dGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8IDE7CisgIHJldHVybiBz
ZXR1cFByb2dyYW0oZ2wsCisgICAgICAgICAgICAgICAgICAgICAgW3NpbXBsZVRleHR1cmVWZXJ0
ZXhTaGFkZXIsIHNpbXBsZUN1YmVNYXBUZXh0dXJlRnJhZ21lbnRTaGFkZXJdLAorICAgICAgICAg
ICAgICAgICAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAorICAgICAgICAgICAgICAg
ICAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb25dKTsKK307
CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSB2ZXJ0ZXggY29sb3IgcHJvZ3JhbS4KKyAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0
dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3ZlcnRl
eENvbG9yTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbgorICogICAgICAgIGZvciB2ZXJ0ZXgg
Y29sb3JzLgorICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBTaW1wbGVW
ZXJ0ZXhDb2xvclByb2dyYW0gPSBmdW5jdGlvbigKKyAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRp
b24sIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uKSB7CisgIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0g
b3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgb3B0X3ZlcnRleENvbG9yTG9jYXRpb24gPSBv
cHRfdmVydGV4Q29sb3JMb2NhdGlvbiB8fCAxOworICByZXR1cm4gc2V0dXBQcm9ncmFtKGdsLAor
ICAgICAgICAgICAgICAgICAgICAgIFtzaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciwgc2lt
cGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlcl0sCisgICAgICAgICAgICAgICAgICAgICAgWyd2
UG9zaXRpb24nLCAnYV9jb2xvciddLAorICAgICAgICAgICAgICAgICAgICAgIFtvcHRfcG9zaXRp
b25Mb2NhdGlvbiwgb3B0X3ZlcnRleENvbG9yTG9jYXRpb25dKTsKK307CisKKy8qKgorICogQ3Jl
YXRlcyBhIHNpbXBsZSBjb2xvciBwcm9ncmFtLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdD
b250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7
bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3Np
dGlvbi4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwU2ltcGxlQ29s
b3JQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uKSB7CisgIG9wdF9w
b3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgcmV0dXJuIHNl
dHVwUHJvZ3JhbShnbCwKKyAgICAgICAgICAgICAgICAgICAgICBbc2ltcGxlVmVydGV4U2hhZGVy
LCBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyXSwKKyAgICAgICAgICAgICAgICAgICAgICBbJ3ZQ
b3NpdGlvbiddLAorICAgICAgICAgICAgICAgICAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbl0p
OworfTsKKworLyoqCisgKiBDcmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4dHVyZWQgdW5pdCBxdWFk
IGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleCBhdHRyaWJzLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBU
aGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAqIEBwYXJhbSB7IU9iamVj
dH0gdmFyaW91cyBvcHRpb25zLiBTZWUgc2V0dXBRdWFkIGZvciBkZXRhaWxzLgorICogQHJldHVy
biB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0aGF0IHdlcmUKKyAq
ICAgICAgY3JlYXRlZC4KKyAqLwordmFyIHNldHVwVW5pdFF1YWQgPSBmdW5jdGlvbihnbCwgb3B0
X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uLCBvcHRpb25zKSB7CisgIHJl
dHVybiBzZXR1cFF1YWRXaXRoVGV4Q29vcmRzKGdsLCBbIDAuMCwgMC4wIF0sIFsgMS4wLCAxLjAg
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24s
IG9wdF90ZXhjb29yZExvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25zKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBidWZmZXJzIGZvciBhIHRleHR1cmVkIHF1
YWQgd2l0aCBzcGVjaWZpZWQgbG93ZXIgbGVmdAorICogYW5kIHVwcGVyIHJpZ2h0IHRleHR1cmUg
Y29vcmRpbmF0ZXMsIGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleAorICogYXR0cmlicy4KKyAq
IEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gbG93ZXJMZWZ0VGV4Q29v
cmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgbG93ZXIgbGVmdCBjb3JuZXIuCisg
KiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gdXBwZXJSaWdodFRleENvb3JkcyBUaGUgdGV4dHVy
ZSBjb29yZGluYXRlcyBmb3IgdGhlIHVwcGVyIHJpZ2h0IGNvcm5lci4KKyAqIEBwYXJhbSB7bnVt
YmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlv
bi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxv
Y2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAqIEBwYXJhbSB7IU9iamVjdH0gdmFyaW91cyBv
cHRpb25zLiBTZWUgc2V0dXBRdWFkIGZvciBkZXRhaWxzLgorICogQHJldHVybiB7IUFycmF5LjxX
ZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0aGF0IHdlcmUKKyAqICAgICAgY3JlYXRl
ZC4KKyAqLwordmFyIHNldHVwUXVhZFdpdGhUZXhDb29yZHMgPSBmdW5jdGlvbigKKyAgICBnbCwg
bG93ZXJMZWZ0VGV4Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29vcmRzLAorICAgIG9wdF9wb3NpdGlv
bkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgb3B0aW9ucykgeworICB2YXIgZGVmYXVs
dE9wdGlvbnMgPSB7CisgICAgcG9zaXRpb25Mb2NhdGlvbjogb3B0X3Bvc2l0aW9uTG9jYXRpb24g
fHwgMCwKKyAgICB0ZXhjb29yZExvY2F0aW9uOiBvcHRfdGV4Y29vcmRMb2NhdGlvbiB8fCAxLAor
ICAgIGxvd2VyTGVmdFRleENvb3JkczogbG93ZXJMZWZ0VGV4Q29vcmRzLAorICAgIHVwcGVyUmln
aHRUZXhDb29yZHM6IHVwcGVyUmlnaHRUZXhDb29yZHMKKyAgfTsKKyAgaWYgKG9wdGlvbnMpIHsK
KyAgICBmb3IgKHZhciBwcm9wIGluIG9wdGlvbnMpIHsKKyAgICAgIGRlZmF1bHRPcHRpb25zW3By
b3BdID0gb3B0aW9uc1twcm9wXQorICAgIH0KKyAgfQorICByZXR1cm4gc2V0dXBRdWFkKGdsLCBk
ZWZhdWx0T3B0aW9ucyk7Cit9OworCisvKioKKyAqIE1ha2VzIGEgcXVhZCB3aXRoIHZhcmlvdXMg
b3B0aW9ucy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFPYmplY3R9IG9wdGlvbnMKKyAq
CisgKiBzY2FsZTogc2NhbGUgdG8gbXVsdGlwbHkgdW5pdCBxdWFkIHZhbHVlcyBieS4gZGVmYXVs
dCAxLjAuCisgKiBwb3NpdGlvbkxvY2F0aW9uOiBhdHRyaWJ1dGUgbG9jYXRpb24gZm9yIHBvc2l0
aW9uLgorICogdGV4Y29vcmRMb2NhdGlvbjogYXR0cmlidXRlIGxvY2F0aW9uIGZvciB0ZXhjb29y
ZHMuCisgKiAgICAgSWYgdGhpcyBkb2VzIG5vdCBleGlzdCBubyB0ZXh0dXJlIGNvb3JkcyBhcmUg
Y3JlYXRlZC4KKyAqIGxvd2VyTGVmdFRleENvb3JkczogYW4gYXJyYXkgb2YgMiB2YWx1ZXMgZm9y
IHRoZQorICogICAgIGxvd2VyTGVmdFRleENvb3Jkcy4KKyAqIHVwcGVyUmlnaHRUZXhDb29yZHM6
IGFuIGFycmF5IG9mIDIgdmFsdWVzIGZvciB0aGUKKyAqICAgICB1cHBlclJpZ2h0VGV4Q29vcmRz
LgorICovCit2YXIgc2V0dXBRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdGlvbnMpIHsKKyAgdmFyIHBv
c2l0aW9uTG9jYXRpb24gPSBvcHRpb25zLnBvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgdmFyIHNj
YWxlID0gb3B0aW9ucy5zY2FsZSB8fCAxOworCisgIHZhciBvYmplY3RzID0gW107CisKKyAgdmFy
IHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFS
UkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAgIDEuMCAqIHNjYWxlICwgIDEuMCAqIHNjYWxl
LAorICAgICAgLTEuMCAqIHNjYWxlICwgIDEuMCAqIHNjYWxlLAorICAgICAgLTEuMCAqIHNjYWxl
ICwgLTEuMCAqIHNjYWxlLAorICAgICAgIDEuMCAqIHNjYWxlICwgIDEuMCAqIHNjYWxlLAorICAg
ICAgLTEuMCAqIHNjYWxlICwgLTEuMCAqIHNjYWxlLAorICAgICAgIDEuMCAqIHNjYWxlICwgLTEu
MCAqIHNjYWxlXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkocG9zaXRpb25Mb2NhdGlvbik7CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIocG9zaXRpb25M
b2NhdGlvbiwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgb2JqZWN0cy5wdXNoKHZlcnRl
eE9iamVjdCk7CisKKyAgaWYgKG9wdGlvbnMudGV4Y29vcmRMb2NhdGlvbiAhPT0gdW5kZWZpbmVk
KSB7CisgICAgdmFyIGxseCA9IG9wdGlvbnMubG93ZXJMZWZ0VGV4Q29vcmRzWzBdOworICAgIHZh
ciBsbHkgPSBvcHRpb25zLmxvd2VyTGVmdFRleENvb3Jkc1sxXTsKKyAgICB2YXIgdXJ4ID0gb3B0
aW9ucy51cHBlclJpZ2h0VGV4Q29vcmRzWzBdOworICAgIHZhciB1cnkgPSBvcHRpb25zLnVwcGVy
UmlnaHRUZXhDb29yZHNbMV07CisKKyAgICB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAg
ICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisgICAg
ICAgIHVyeCwgdXJ5LAorICAgICAgICBsbHgsIHVyeSwKKyAgICAgICAgbGx4LCBsbHksCisgICAg
ICAgIHVyeCwgdXJ5LAorICAgICAgICBsbHgsIGxseSwKKyAgICAgICAgdXJ4LCBsbHldKSwgZ2wu
U1RBVElDX0RSQVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9wdGlvbnMudGV4
Y29vcmRMb2NhdGlvbik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRpb25zLnRleGNv
b3JkTG9jYXRpb24sIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgb2JqZWN0cy5wdXNo
KHZlcnRleE9iamVjdCk7CisgIH0KKworICByZXR1cm4gb2JqZWN0czsKK307CisKKy8qKgorICog
Q3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBhIHRleHR1cmVkIHF1
YWQuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0
aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yCisgKiAgICAgICAgcG9zaXRpb24uIERlZmF1bHQg
PSAwLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIg
bG9jYXRpb24gZm9yCisgKiAgICAgICAgdGV4dHVyZSBjb29yZHMuIERlZmF1bHQgPSAxLgorICog
QHBhcmFtIHshT2JqZWN0fSB2YXJpb3VzIG9wdGlvbnMgZGVmaW5lZCBieSBzZXR1cFF1YWQsIHBs
dXMgYW4gb3B0aW9uCisgICAgICAgICAgZnJhZ21lbnRTaGFkZXJPdmVycmlkZSB0byBzcGVjaWZ5
IGEgY3VzdG9tIGZyYWdtZW50IHNoYWRlci4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19Cisg
Ki8KK3ZhciBzZXR1cFRleHR1cmVkUXVhZCA9IGZ1bmN0aW9uKAorICAgIGdsLCBvcHRfcG9zaXRp
b25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24sIG9wdGlvbnMpIHsKKyAgdmFyIHByb2dy
YW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAorICAgICAgZ2wsIG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgb3B0aW9ucyAmJiBvcHRpb25zLmZyYWdtZW50
U2hhZGVyT3ZlcnJpZGUpOworICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlv
biwgb3B0X3RleGNvb3JkTG9jYXRpb24sIG9wdGlvbnMpOworICByZXR1cm4gcHJvZ3JhbTsKK307
CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBh
IGNvbG9yIHF1YWQuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFt
IHshT2JqZWN0fSB2YXJpb3VzIG9wdGlvbnMuIFNlZSBzZXR1cFF1YWQgZm9yIGRldGFpbHMuCisg
KiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBDb2xvclF1YWQgPSBmdW5j
dGlvbihnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdGlvbnMpIHsKKyAgb3B0X3Bvc2l0aW9u
TG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICB2YXIgcHJvZ3JhbSA9IHNl
dHVwU2ltcGxlQ29sb3JQcm9ncmFtKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbik7CisgIHNldHVw
VW5pdFF1YWQoZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCAwLCBvcHRpb25zKTsKKyAgcmV0dXJu
IHByb2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtIGFuZCBidWZmZXJzIGZv
ciByZW5kZXJpbmcgYSB0ZXh0dXJlZCBxdWFkIHdpdGgKKyAqIHNwZWNpZmllZCBsb3dlciBsZWZ0
IGFuZCB1cHBlciByaWdodCB0ZXh0dXJlIGNvb3JkaW5hdGVzLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBsb3dlckxlZnRUZXhDb29yZHMgVGhlIHRleHR1cmUg
Y29vcmRpbmF0ZXMgZm9yIHRoZSBsb3dlciBsZWZ0IGNvcm5lci4KKyAqIEBwYXJhbSB7IUFycmF5
LjxudW1iZXI+fSB1cHBlclJpZ2h0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZv
ciB0aGUgdXBwZXIgcmlnaHQgY29ybmVyLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlv
bkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFtIHtu
dW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1
cmUgY29vcmRzLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwVGV4
dHVyZWRRdWFkV2l0aFRleENvb3JkcyA9IGZ1bmN0aW9uKAorICAgIGdsLCBsb3dlckxlZnRUZXhD
b29yZHMsIHVwcGVyUmlnaHRUZXhDb29yZHMsCisgICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9w
dF90ZXhjb29yZExvY2F0aW9uKSB7CisgIHZhciBwcm9ncmFtID0gc2V0dXBTaW1wbGVUZXh0dXJl
UHJvZ3JhbSgKKyAgICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9j
YXRpb24pOworICBzZXR1cFF1YWRXaXRoVGV4Q29vcmRzKGdsLCBsb3dlckxlZnRUZXhDb29yZHMs
IHVwcGVyUmlnaHRUZXhDb29yZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3Bvc2l0
aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9
OworCisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcg
YSB0ZXh0dXJlZCBxdWFkIHdpdGgKKyAqIGEgY3ViZSBtYXAgdGV4dHVyZS4KKyAqIEBwYXJhbSB7
IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1
c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBs
b2NhdGlvbiBmb3IKKyAqICAgICAgICBwb3NpdGlvbi4gRGVmYXVsdCA9IDAuCisgKiBAcGFyYW0g
e251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IKKyAq
ICAgICAgICB0ZXh0dXJlIGNvb3Jkcy4gRGVmYXVsdCA9IDEuCisgKiBAcmV0dXJuIHshV2ViR0xQ
cm9ncmFtfQorICovCit2YXIgc2V0dXBUZXh0dXJlZFF1YWRXaXRoQ3ViZU1hcCA9IGZ1bmN0aW9u
KAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsK
KyAgdmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZUN1YmVNYXBUZXh0dXJlUHJvZ3JhbSgKKyAgICAg
IGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pOworICBzZXR1
cFVuaXRRdWFkKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24s
IHVuZGVmaW5lZCk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEg
dW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiByZXNvbHV0aW9uLgorICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFRoZSByZXNvbHV0aW9uIG9m
IHRoZSBtZXNoIGdyaWQsCisgKiAgICAgZXhwcmVzc2VkIGluIHRoZSBudW1iZXIgb2YgcXVhZHMg
YWNyb3NzIGFuZCBkb3duLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9u
IFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICovCit2YXIgc2V0dXBJbmRleGVk
UXVhZCA9IGZ1bmN0aW9uICgKKyAgICBnbCwgZ3JpZFJlcywgb3B0X3Bvc2l0aW9uTG9jYXRpb24s
IG9wdF9mbGlwT2RkVHJpYW5nbGVzKSB7CisgIHJldHVybiBzZXR1cEluZGV4ZWRRdWFkV2l0aE9w
dGlvbnMoZ2wsCisgICAgeyBncmlkUmVzOiBncmlkUmVzLAorICAgICAgcG9zaXRpb25Mb2NhdGlv
bjogb3B0X3Bvc2l0aW9uTG9jYXRpb24sCisgICAgICBmbGlwT2RkVHJpYW5nbGVzOiBvcHRfZmxp
cE9kZFRyaWFuZ2xlcworICAgIH0pOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgcXVhZCB3aXRo
IHZhcmlvdXMgb3B0aW9ucy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wg
VGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFPYmplY3R9IG9w
dGlvbnMgVGhlIG9wdGlvbnMuIFNlZSBiZWxvdy4KKyAqIEByZXR1cm4geyFBcnJheS48V2ViR0xC
dWZmZXI+fSBUaGUgY3JlYXRlZCBidWZmZXJzLgorICogICAgIFtwb3NpdGlvbnMsIDxjb2xvcnM+
LCBpbmRpY2VzXQorICoKKyAqIE9wdGlvbnM6CisgKiAgIGdyaWRSZXM6IG51bWJlciBvZiBxdWFk
cyBhY3Jvc3MgYW5kIGRvd24gZ3JpZC4KKyAqICAgcG9zaXRpb25Mb2NhdGlvbjogYXR0cmliIGxv
Y2F0aW9uIGZvciBwb3NpdGlvbgorICogICBmbGlwT2RkVHJpYW5nbGVzOiByZXZlcnNlIG9yZGVy
IG9mIHZlcnRpY2VzIG9mIGV2ZXJ5IG90aGVyCisgKiAgICAgICB0cmlhbmdsZQorICogICBwb3Np
dGlvbk9mZnNldDogb2Zmc2V0IGFkZGVkIHRvIGVhY2ggdmVydGV4CisgKiAgIHBvc2l0aW9uTXVs
dDogbXVsdGlwaWVyIGZvciBlYWNoIHZlcnRleAorICogICBjb2xvckxvY2F0aW9uOiBhdHRyaWIg
bG9jYXRpb24gZm9yIHZlcnRleCBjb2xvcnMuIElmCisgKiAgICAgIHVuZGVmaW5lZCBubyB2ZXJ0
ZXggY29sb3JzIHdpbGwgYmUgY3JlYXRlZC4KKyAqLwordmFyIHNldHVwSW5kZXhlZFF1YWRXaXRo
T3B0aW9ucyA9IGZ1bmN0aW9uIChnbCwgb3B0aW9ucykgeworICB2YXIgcG9zaXRpb25Mb2NhdGlv
biA9IG9wdGlvbnMucG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICB2YXIgb2JqZWN0cyA9IFtdOwor
CisgIHZhciBncmlkUmVzID0gb3B0aW9ucy5ncmlkUmVzIHx8IDE7CisgIHZhciBwb3NpdGlvbk9m
ZnNldCA9IG9wdGlvbnMucG9zaXRpb25PZmZzZXQgfHwgMDsKKyAgdmFyIHBvc2l0aW9uTXVsdCA9
IG9wdGlvbnMucG9zaXRpb25NdWx0IHx8IDE7CisgIHZhciB2ZXJ0c0Fjcm9zcyA9IGdyaWRSZXMg
KyAxOworICB2YXIgbnVtVmVydHMgPSB2ZXJ0c0Fjcm9zcyAqIHZlcnRzQWNyb3NzOworICB2YXIg
cG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShudW1WZXJ0cyAqIDMpOworICB2YXIgaW5kaWNl
cyA9IG5ldyBVaW50MTZBcnJheSg2ICogZ3JpZFJlcyAqIGdyaWRSZXMpOworICB2YXIgcG9mZnNl
dCA9IDA7CisKKyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVzOyArK3l5KSB7CisgICAg
Zm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVzOyArK3h4KSB7CisgICAgICBwb3NpdGlvbnNb
cG9mZnNldCArIDBdID0gKC0xICsgMiAqIHh4IC8gZ3JpZFJlcykgKiBwb3NpdGlvbk11bHQgKyBw
b3NpdGlvbk9mZnNldDsKKyAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsgMV0gPSAoLTEgKyAyICog
eXkgLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zmc2V0OworICAgICAgcG9z
aXRpb25zW3BvZmZzZXQgKyAyXSA9IDA7CisKKyAgICAgIHBvZmZzZXQgKz0gMzsKKyAgICB9Cisg
IH0KKworICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wu
QVJSQVlfQlVGRkVSLCBidWYpOworICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgcG9z
aXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHBv
c2l0aW9uTG9jYXRpb24pOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRp
b24sIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgIG9iamVjdHMucHVzaChidWYpOworCisg
IGlmIChvcHRpb25zLmNvbG9yTG9jYXRpb24gIT09IHVuZGVmaW5lZCkgeworICAgIHZhciBjb2xv
cnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogNCk7CisgICAgcG9mZnNldCA9IDA7Cisg
ICAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVzOyArK3l5KSB7CisgICAgICBmb3IgKHZh
ciB4eCA9IDA7IHh4IDw9IGdyaWRSZXM7ICsreHgpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuY29s
b3IgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSBvcHRp
b25zLmNvbG9yWzBdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMV0gPSBvcHRpb25zLmNv
bG9yWzFdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMl0gPSBvcHRpb25zLmNvbG9yWzJd
OworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgM10gPSBvcHRpb25zLmNvbG9yWzNdOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSB4eCAvIGdyaWRS
ZXM7CisgICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAxXSA9IHl5IC8gZ3JpZFJlczsKKyAgICAg
ICAgICBjb2xvcnNbcG9mZnNldCArIDJdID0gKHh4IC8gZ3JpZFJlcykgKiAoeXkgLyBncmlkUmVz
KTsKKyAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDNdID0gKHl5ICUgMikgKiAwLjUgKyAwLjU7
CisgICAgICAgIH0KKyAgICAgICAgcG9mZnNldCArPSA0OworICAgICAgfQorICAgIH0KKworICAg
IGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCBidWYpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBjb2xvcnMsIGds
LlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShvcHRpb25zLmNv
bG9yTG9jYXRpb24pOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIob3B0aW9ucy5jb2xvckxv
Y2F0aW9uLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworICAgIG9iamVjdHMucHVzaChidWYp
OworICB9CisKKyAgdmFyIHRiYXNlID0gMDsKKyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8IGdyaWRS
ZXM7ICsreXkpIHsKKyAgICB2YXIgaW5kZXggPSB5eSAqIHZlcnRzQWNyb3NzOworICAgIGZvciAo
dmFyIHh4ID0gMDsgeHggPCBncmlkUmVzOyArK3h4KSB7CisgICAgICBpbmRpY2VzW3RiYXNlICsg
MF0gPSBpbmRleCArIDA7CisgICAgICBpbmRpY2VzW3RiYXNlICsgMV0gPSBpbmRleCArIDE7Cisg
ICAgICBpbmRpY2VzW3RiYXNlICsgMl0gPSBpbmRleCArIHZlcnRzQWNyb3NzOworICAgICAgaW5k
aWNlc1t0YmFzZSArIDNdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsKKyAgICAgIGluZGljZXNbdGJh
c2UgKyA0XSA9IGluZGV4ICsgMTsKKyAgICAgIGluZGljZXNbdGJhc2UgKyA1XSA9IGluZGV4ICsg
dmVydHNBY3Jvc3MgKyAxOworCisgICAgICBpZiAob3B0aW9ucy5mbGlwT2RkVHJpYW5nbGVzKSB7
CisgICAgICAgIGluZGljZXNbdGJhc2UgKyA0XSA9IGluZGV4ICsgdmVydHNBY3Jvc3MgKyAxOwor
ICAgICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCArIDE7CisgICAgICB9CisKKyAgICAg
IGluZGV4ICs9IDE7CisgICAgICB0YmFzZSArPSA2OworICAgIH0KKyAgfQorCisgIGJ1ZiA9IGds
LmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBidWYpOworICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2Vz
LCBnbC5TVEFUSUNfRFJBVyk7CisgIG9iamVjdHMucHVzaChidWYpOworCisgIHJldHVybiBvYmpl
Y3RzOworfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBjb25zdHJ1Y3RvciBmb3IgYSB0eXBlZCBh
cnJheSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBnaXZlbgorICogV2ViR0wgdHlwZS4KKyAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgQSBXZWJHTFJlbmRlcmluZ0NvbnRleHQu
CisgKiBAcGFyYW0ge251bWJlcn0gdHlwZSBUaGUgV2ViR0wgdHlwZSAoZWcsIGdsLlVOU0lHTkVE
X0JZVEUpCisgKiBAcmV0dXJuIHshQ29uc3RydWN0b3J9IFRoZSB0eXBlZCBhcnJheSBjb25zdHJ1
Y3RvciB0aGF0CisgKiAgICAgIGNvcnJlc3BvbmRzIHRvIHRoZSBnaXZlbiB0eXBlLgorICovCit2
YXIgZ2xUeXBlVG9UeXBlZEFycmF5VHlwZSA9IGZ1bmN0aW9uKGdsLCB0eXBlKSB7CisgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgZ2wuQllURToKKyAgICAgIHJldHVybiB3aW5kb3cuSW50OEFy
cmF5OworICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgIHJldHVybiB3aW5kb3cuVWlu
dDhBcnJheTsKKyAgICBjYXNlIGdsLlNIT1JUOgorICAgICAgcmV0dXJuIHdpbmRvdy5JbnQxNkFy
cmF5OworICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9T
SE9SVF81XzZfNToKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgY2Fz
ZSBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xOgorICAgICAgcmV0dXJuIHdpbmRvdy5VaW50MTZB
cnJheTsKKyAgICBjYXNlIGdsLklOVDoKKyAgICAgIHJldHVybiB3aW5kb3cuSW50MzJBcnJheTsK
KyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVDoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF81Xzlf
OV85X1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVY6CisgICAg
Y2FzZSBnbC5VTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVY6CisgICAgY2FzZSBnbC5VTlNJR05F
RF9JTlRfMjRfODoKKyAgICAgIHJldHVybiB3aW5kb3cuVWludDMyQXJyYXk7CisgICAgY2FzZSBn
bC5IQUxGX0ZMT0FUOgorICAgIGNhc2UgMHg4RDYxOiAgLy8gSEFMRl9GTE9BVF9PRVMKKyAgICAg
IHJldHVybiB3aW5kb3cuVWludDE2QXJyYXk7CisgICAgY2FzZSBnbC5GTE9BVDoKKyAgICAgIHJl
dHVybiB3aW5kb3cuRmxvYXQzMkFycmF5OworICAgIGRlZmF1bHQ6CisgICAgICB0aHJvdyAndW5r
bm93biBnbCB0eXBlICcgKyBnbEVudW1Ub1N0cmluZyhnbCwgdHlwZSk7CisgIH0KK307CisKKy8q
KgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBlciBjb21wb25lbnQgZm9yIGEgZ2l2
ZW4gV2ViR0wgdHlwZS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgQSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQuCisgKiBAcGFyYW0ge0dMZW51bX0gdHlwZSBUaGUgV2ViR0wg
dHlwZSAoZWcsIGdsLlVOU0lHTkVEX0JZVEUpCisgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBudW1i
ZXIgb2YgYnl0ZXMgcGVyIGNvbXBvbmVudC4KKyAqLwordmFyIGdldEJ5dGVzUGVyQ29tcG9uZW50
ID0gZnVuY3Rpb24oZ2wsIHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBnbC5C
WVRFOgorICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgIHJldHVybiAxOworICAgIGNh
c2UgZ2wuU0hPUlQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVDoKKyAgICBjYXNlIGdsLlVO
U0lHTkVEX1NIT1JUXzVfNl81OgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNDoK
KyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6CisgICAgY2FzZSBnbC5IQUxGX0ZM
T0FUOgorICAgIGNhc2UgMHg4RDYxOiAgLy8gSEFMRl9GTE9BVF9PRVMKKyAgICAgIHJldHVybiAy
OworICAgIGNhc2UgZ2wuSU5UOgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UOgorICAgIGNhc2Ug
Z2wuVU5TSUdORURfSU5UXzVfOV85XzlfUkVWOgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UXzEw
Rl8xMUZfMTFGX1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVjoK
KyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8yNF84OgorICAgIGNhc2UgZ2wuRkxPQVQ6CisgICAg
ICByZXR1cm4gNDsKKyAgICBkZWZhdWx0OgorICAgICAgdGhyb3cgJ3Vua25vd24gZ2wgdHlwZSAn
ICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHR5cGUpOworICB9Cit9OworCisvKioKKyAqIFJldHVybnMg
dGhlIG51bWJlciBvZiB0eXBlZCBhcnJheSBlbGVtZW50cyBwZXIgcGl4ZWwgZm9yIGEgZ2l2ZW4g
V2ViR0wKKyAqIGZvcm1hdC90eXBlIGNvbWJpbmF0aW9uLiBUaGUgY29ycmVzcG9uZGluZyB0eXBl
ZCBhcnJheSB0eXBlIGNhbiBiZSBkZXRlcm1pbmVkCisgKiBieSBjYWxsaW5nIGdsVHlwZVRvVHlw
ZWRBcnJheVR5cGUuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIEEgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LgorICogQHBhcmFtIHtHTGVudW19IGZvcm1hdCBUaGUgV2ViR0wg
Zm9ybWF0IChlZywgZ2wuUkdCQSkKKyAqIEBwYXJhbSB7R0xlbnVtfSB0eXBlIFRoZSBXZWJHTCB0
eXBlIChlZywgZ2wuVU5TSUdORURfQllURSkKKyAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJl
ciBvZiB0eXBlZCBhcnJheSBlbGVtZW50cyBwZXIgcGl4ZWwuCisgKi8KK3ZhciBnZXRUeXBlZEFy
cmF5RWxlbWVudHNQZXJQaXhlbCA9IGZ1bmN0aW9uKGdsLCBmb3JtYXQsIHR5cGUpIHsKKyAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzZfNToKKyAgICBjYXNl
IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81
XzVfNV8xOgorICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBnbC5VTlNJR05FRF9CWVRFOgorICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHRocm93ICdub3QgYSBnbCB0eXBlIGZvciBj
b2xvciBpbmZvcm1hdGlvbiAnICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHR5cGUpOworICB9CisKKyAg
c3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIGdsLlJHQkE6CisgICAgICByZXR1cm4gNDsKKyAg
ICBjYXNlIGdsLlJHQjoKKyAgICAgIHJldHVybiAzOworICAgIGNhc2UgZ2wuTFVNSU5BTkNFX0FM
UEhBOgorICAgICAgcmV0dXJuIDI7CisgICAgY2FzZSBnbC5MVU1JTkFOQ0U6CisgICAgY2FzZSBn
bC5BTFBIQToKKyAgICAgIHJldHVybiAxOworICAgIGRlZmF1bHQ6CisgICAgICB0aHJvdyAndW5r
bm93biBnbCBmb3JtYXQgJyArIGdsRW51bVRvU3RyaW5nKGdsLCBmb3JtYXQpOworICB9Cit9Owor
CisvKioKKyAqIEZpbGxzIHRoZSBnaXZlbiB0ZXh0dXJlIHdpdGggYSBzb2xpZCBjb2xvci4KKyAq
IEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFXZWJHTFRleHR1cmV9IHRleCBUaGUgdGV4dHVyZSB0
byBmaWxsLgorICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVy
ZSB0byBjcmVhdGUuCisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IFRoZSBoZWlnaHQgb2YgdGhl
IHRleHR1cmUgdG8gY3JlYXRlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRo
ZSBjb2xvciB0byBmaWxsIHdpdGguCisgKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGlu
IHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfbGV2ZWwgVGhlIGxl
dmVsIG9mIHRoZSB0ZXh0dXJlIHRvIGZpbGwuIERlZmF1bHQgPSAwLgorICogQHBhcmFtIHtudW1i
ZXJ9IG9wdF9mb3JtYXQgVGhlIGZvcm1hdCBmb3IgdGhlIHRleHR1cmUuCisgKiBAcGFyYW0ge251
bWJlcn0gb3B0X2ludGVybmFsRm9ybWF0IFRoZSBpbnRlcm5hbCBmb3JtYXQgZm9yIHRoZSB0ZXh0
dXJlLgorICovCit2YXIgZmlsbFRleHR1cmUgPSBmdW5jdGlvbihnbCwgdGV4LCB3aWR0aCwgaGVp
Z2h0LCBjb2xvciwgb3B0X2xldmVsLCBvcHRfZm9ybWF0LCBvcHRfdHlwZSwgb3B0X2ludGVybmFs
Rm9ybWF0KSB7CisgIG9wdF9sZXZlbCA9IG9wdF9sZXZlbCB8fCAwOworICBvcHRfZm9ybWF0ID0g
b3B0X2Zvcm1hdCB8fCBnbC5SR0JBOworICBvcHRfdHlwZSA9IG9wdF90eXBlIHx8IGdsLlVOU0lH
TkVEX0JZVEU7CisgIG9wdF9pbnRlcm5hbEZvcm1hdCA9IG9wdF9pbnRlcm5hbEZvcm1hdCB8fCBv
cHRfZm9ybWF0OworICB2YXIgcGFjayA9IGdsLmdldFBhcmFtZXRlcihnbC5VTlBBQ0tfQUxJR05N
RU5UKTsKKyAgdmFyIG51bUNvbXBvbmVudHMgPSBjb2xvci5sZW5ndGg7CisgIHZhciBieXRlc1Bl
ckNvbXBvbmVudCA9IGdldEJ5dGVzUGVyQ29tcG9uZW50KGdsLCBvcHRfdHlwZSk7CisgIHZhciBy
b3dTaXplID0gbnVtQ29tcG9uZW50cyAqIHdpZHRoICogYnl0ZXNQZXJDb21wb25lbnQ7CisgIC8v
IFNlZSBlcXVhdGlvbiAzLjEwIGluIEVTIDIuMCBzcGVjIGFuZCBlcXVhdGlvbiAzLjEzIGluIEVT
IDMuMCBzcGVjIGZvciBwYWRkZWRSb3dMZW5ndGggY2FsY3VsYXRpb24uCisgIC8vIGsgaXMgcGFk
ZGVkUm93TGVuZ3RoLgorICAvLyBuIGlzIG51bUNvbXBvbmVudHMuCisgIC8vIGwgaXMgd2lkdGgu
CisgIC8vIGEgaXMgcGFjay4KKyAgLy8gcyBpcyBieXRlc1BlckNvbXBvbmVudC4KKyAgdmFyIHBh
ZGRlZFJvd0xlbmd0aDsKKyAgaWYgKGJ5dGVzUGVyQ29tcG9uZW50ID49IHBhY2spCisgICAgcGFk
ZGVkUm93TGVuZ3RoID0gbnVtQ29tcG9uZW50cyAqIHdpZHRoOworICBlbHNlCisgICAgcGFkZGVk
Um93TGVuZ3RoID0gTWF0aC5mbG9vcigocm93U2l6ZSArIHBhY2sgLSAxKSAvIHBhY2spICogcGFj
ayAvIGJ5dGVzUGVyQ29tcG9uZW50OworICB2YXIgc2l6ZSA9IHdpZHRoICogbnVtQ29tcG9uZW50
cyArIChoZWlnaHQgLSAxKSAqIHBhZGRlZFJvd0xlbmd0aDsKKyAgdmFyIGJ1ZiA9IG5ldyAoZ2xU
eXBlVG9UeXBlZEFycmF5VHlwZShnbCwgb3B0X3R5cGUpKShzaXplKTsKKyAgZm9yICh2YXIgeXkg
PSAwOyB5eSA8IGhlaWdodDsgKyt5eSkgeworICAgIHZhciBvZmYgPSB5eSAqIHBhZGRlZFJvd0xl
bmd0aDsKKyAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwgd2lkdGg7ICsreHgpIHsKKyAgICAgIGZv
ciAodmFyIGpqID0gMDsgamogPCBudW1Db21wb25lbnRzOyArK2pqKSB7CisgICAgICAgIGJ1Zltv
ZmYrK10gPSBjb2xvcltqal07CisgICAgICB9CisgICAgfQorICB9CisgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGdsLnRleEltYWdlMkQoCisgICAgICBnbC5URVhUVVJF
XzJELCBvcHRfbGV2ZWwsIG9wdF9pbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwKKyAg
ICAgIG9wdF9mb3JtYXQsIG9wdF90eXBlLCBidWYpOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEg
dGV4dHVyZSBhbmQgZmlsbHMgaXQgd2l0aCBhIHNvbGlkIGNvbG9yLgorICogQHBhcmFtIHshV2Vi
R0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4K
KyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCBUaGUgd2lkdGggb2YgdGhlIHRleHR1cmUgdG8gY3Jl
YXRlLgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCBUaGUgaGVpZ2h0IG9mIHRoZSB0ZXh0dXJl
IHRvIGNyZWF0ZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3Ig
dG8gZmlsbCB3aXRoLiBBIDQgZWxlbWVudCBhcnJheQorICogICAgICAgIHdoZXJlIGVhY2ggZWxl
bWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcmV0dXJuIHshV2ViR0xUZXh0dXJl
fQorICovCit2YXIgY3JlYXRlQ29sb3JlZFRleHR1cmUgPSBmdW5jdGlvbihnbCwgd2lkdGgsIGhl
aWdodCwgY29sb3IpIHsKKyAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgZmlsbFRl
eHR1cmUoZ2wsIHRleCwgd2lkdGgsIGhlaWdodCwgY29sb3IpOworICByZXR1cm4gdGV4OworfTsK
KwordmFyIHVieXRlVG9GbG9hdCA9IGZ1bmN0aW9uKGMpIHsKKyAgcmV0dXJuIGMgLyAyNTU7Cit9
OworCit2YXIgdWJ5dGVDb2xvclRvRmxvYXRDb2xvciA9IGZ1bmN0aW9uKGNvbG9yKSB7CisgIHZh
ciBmbG9hdENvbG9yID0gW107CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvci5sZW5ndGg7
ICsraWkpIHsKKyAgICBmbG9hdENvbG9yW2lpXSA9IHVieXRlVG9GbG9hdChjb2xvcltpaV0pOwor
ICB9CisgIHJldHVybiBmbG9hdENvbG9yOworfTsKKworLyoqCisgKiBTZXRzIHRoZSAidV9jb2xv
ciIgdW5pZm9ybSBvZiB0aGUgY3VycmVudCBwcm9ncmFtIHRvIGNvbG9yLgorICogQHBhcmFtIHsh
V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVz
ZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciA0IGVsZW1lbnQgYXJyYXkgb2Yg
MC0xIGNvbG9yCisgKiAgICAgIGNvbXBvbmVudHMuCisgKi8KK3ZhciBzZXRGbG9hdERyYXdDb2xv
ciA9IGZ1bmN0aW9uKGdsLCBjb2xvcikgeworICB2YXIgcHJvZ3JhbSA9IGdsLmdldFBhcmFtZXRl
cihnbC5DVVJSRU5UX1BST0dSQU0pOworICB2YXIgY29sb3JMb2NhdGlvbiA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihwcm9ncmFtLCAidV9jb2xvciIpOworICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9j
YXRpb24sIGNvbG9yKTsKK307CisKKy8qKgorICogU2V0cyB0aGUgInVfY29sb3IiIHVuaWZvcm0g
b2YgdGhlIGN1cnJlbnQgcHJvZ3JhbSB0byBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVy
aW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFy
YW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgNCBlbGVtZW50IGFycmF5IG9mIDAtMjU1IGNvbG9y
CisgKiAgICAgIGNvbXBvbmVudHMuCisgKi8KK3ZhciBzZXRVQnl0ZURyYXdDb2xvciA9IGZ1bmN0
aW9uKGdsLCBjb2xvcikgeworICBzZXRGbG9hdERyYXdDb2xvcihnbCwgdWJ5dGVDb2xvclRvRmxv
YXRDb2xvcihjb2xvcikpOworfTsKKworLyoqCisgKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXAg
cXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRl
eHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJy
YXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAorICogICAgICAg
IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCisg
KiAgICAgICAgMS4KKyAqLwordmFyIGRyYXdGbG9hdENvbG9yUXVhZCA9IGZ1bmN0aW9uKGdsLCBj
b2xvcikgeworICB2YXIgcHJvZ3JhbSA9IGdsLmdldFBhcmFtZXRlcihnbC5DVVJSRU5UX1BST0dS
QU0pOworICB2YXIgY29sb3JMb2NhdGlvbiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
LCAidV9jb2xvciIpOworICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jYXRpb24sIGNvbG9yKTsKKyAg
Z2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworfTsKKworCisvKioKKyAqIERyYXdz
IGEgcHJldmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBnaXZlbiBjb2xvci4KKyAqIEBwYXJhbSB7
IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1
c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGRyYXcg
d2l0aC4gQSA0CisgKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMg
aW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAyNTUuCisgKi8KK3ZhciBkcmF3VUJ5dGVDb2xv
clF1YWQgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKKyAgZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCB1
Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNvbG9yKSk7Cit9OworCisvKioKKyAqIERyYXdzIGEgcHJl
dmlvdXNseSBzZXR1cFVuaXRRdWFkLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0
fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqLwordmFyIGRyYXdVbml0
UXVhZCA9IGZ1bmN0aW9uKGdsKSB7CisgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2
KTsKK307CisKK3ZhciBkdW1teVNldFByb2dyYW1BbmREcmF3Tm90aGluZyA9IGZ1bmN0aW9uKGds
KSB7CisgIGlmICghZ2wuX3d0dUR1bW15UHJvZ3JhbSkgeworICAgIGdsLl93dHVEdW1teVByb2dy
YW0gPSBzZXR1cFByb2dyYW0oZ2wsIFsKKyAgICAgICJ2b2lkIG1haW4oKSB7IGdsX1Bvc2l0aW9u
ID0gdmVjNCgwLjApOyB9IiwKKyAgICAgICJ2b2lkIG1haW4oKSB7IGdsX0ZyYWdDb2xvciA9IHZl
YzQoMC4wKTsgfSIKKyAgICBdLCBbXSwgW10pOworICB9CisgIGdsLnVzZVByb2dyYW0oZ2wuX3d0
dUR1bW15UHJvZ3JhbSk7CisgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsKK307
CisKKy8qKgorICogQ2xlYXJzIHRoZW4gRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwVW5pdFF1YWQu
CisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IG9wdF9jb2xvciBU
aGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQorICogICAgICAgIGRyYXdpbmcuIEEg
NCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0bwor
ICogICAgICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1XQorICovCit2YXIgY2xl
YXJBbmREcmF3VW5pdFF1YWQgPSBmdW5jdGlvbihnbCwgb3B0X2NvbG9yKSB7CisgIG9wdF9jb2xv
ciA9IG9wdF9jb2xvciB8fCBbMjU1LCAyNTUsIDI1NSwgMjU1XTsKKyAgZ2wuY2xlYXJDb2xvcigK
KyAgICAgIG9wdF9jb2xvclswXSAvIDI1NSwKKyAgICAgIG9wdF9jb2xvclsxXSAvIDI1NSwKKyAg
ICAgIG9wdF9jb2xvclsyXSAvIDI1NSwKKyAgICAgIG9wdF9jb2xvclszXSAvIDI1NSk7CisgIGds
LmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgZHJh
d1VuaXRRdWFkKGdsKTsKK307CisKKy8qKgorICogRHJhd3MgYSBxdWFkIHByZXZpb3VzbHkgc2V0
dXAgd2l0aCBzZXR1cEluZGV4ZWRRdWFkLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250
ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVt
YmVyfSBncmlkUmVzIFJlc29sdXRpb24gb2YgZ3JpZC4KKyAqLwordmFyIGRyYXdJbmRleGVkUXVh
ZCA9IGZ1bmN0aW9uKGdsLCBncmlkUmVzKSB7CisgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdM
RVMsIGdyaWRSZXMgKiBncmlkUmVzICogNiwgZ2wuVU5TSUdORURfU0hPUlQsIDApOworfTsKKwor
LyoqCisgKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXBJbmRleGVkUXVhZAorICogQHBhcmFtIHsh
V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVz
ZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFJlc29sdXRpb24gb2YgZ3JpZC4KKyAqIEBw
YXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIg
d2l0aCBiZWZvcmUKKyAqICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAyNTUuIERlZmF1bHQg
WzI1NSwgMjU1LCAyNTUsIDI1NV0KKyAqLwordmFyIGNsZWFyQW5kRHJhd0luZGV4ZWRRdWFkID0g
ZnVuY3Rpb24oZ2wsIGdyaWRSZXMsIG9wdF9jb2xvcikgeworICBvcHRfY29sb3IgPSBvcHRfY29s
b3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1NV07CisgIGdsLmNsZWFyQ29sb3IoCisgICAgICBvcHRf
Y29sb3JbMF0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbMV0gLyAyNTUsCisgICAgICBvcHRfY29s
b3JbMl0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbM10gLyAyNTUpOworICBnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgIGRyYXdJbmRleGVkUXVh
ZChnbCwgZ3JpZFJlcyk7Cit9OworCisvKioKKyAqIENsaXBzIGEgcmFuZ2UgdG8gbWluLCBtYXgK
KyAqIChFZy4gY2xpcFRvUmFuZ2UoLTUsNywwLDIwKSB3b3VsZCByZXR1cm4ge3ZhbHVlOjAsZXh0
ZW50OjJ9CisgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgc3RhcnQgb2YgcmFuZ2UKKyAqIEBwYXJh
bSB7bnVtYmVyfSBleHRlbnQgZXh0ZW50IG9mIHJhbmdlCisgKiBAcGFyYW0ge251bWJlcn0gbWlu
IG1pbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBtYXggbWF4LgorICogQHJldHVybiB7IXt2YWx1ZTpu
dW1iZXIsZXh0ZW50Om51bWJlcn19IFRoZSBjbGlwcGVkIHZhbHVlLgorICovCit2YXIgY2xpcFRv
UmFuZ2UgPSBmdW5jdGlvbih2YWx1ZSwgZXh0ZW50LCBtaW4sIG1heCkgeworICBpZiAodmFsdWUg
PCBtaW4pIHsKKyAgICBleHRlbnQgLT0gbWluIC0gdmFsdWU7CisgICAgdmFsdWUgPSBtaW47Cisg
IH0KKyAgdmFyIGVuZCA9IHZhbHVlICsgZXh0ZW50OworICBpZiAoZW5kID4gbWF4KSB7CisgICAg
ZXh0ZW50IC09IGVuZCAtIG1heDsKKyAgfQorICBpZiAoZXh0ZW50IDwgMCkgeworICAgIHZhbHVl
ID0gbWF4OworICAgIGV4dGVudCA9IDA7CisgIH0KKyAgcmV0dXJuIHt2YWx1ZTp2YWx1ZSwgZXh0
ZW50OiBleHRlbnR9OworfTsKKworLyoqCisgKiBEZXRlcm1pbmVzIGlmIHRoZSBwYXNzZWQgY29u
dGV4dCBpcyBhbiBpbnN0YW5jZSBvZiBhIFdlYkdMUmVuZGVyaW5nQ29udGV4dAorICogb3IgbGF0
ZXIgdmFyaWFudCAobGlrZSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KQorICogQHBhcmFtIHtDYW52
YXNSZW5kZXJpbmdDb250ZXh0fSBjdHggVGhlIGNvbnRleHQgdG8gY2hlY2suCisgKi8KK3ZhciBp
c1dlYkdMQ29udGV4dCA9IGZ1bmN0aW9uKGN0eCkgeworICBpZiAoY3R4IGluc3RhbmNlb2YgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KQorICAgIHJldHVybiB0cnVlOworCisgIGlmICgnV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dCcgaW4gd2luZG93ICYmIGN0eCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQpCisgICAgcmV0dXJuIHRydWU7CisKKyAgcmV0dXJuIGZhbHNlOworfTsKKworLyoq
CisgKiBDcmVhdGVzIGEgY2hlY2sgcmVjdCBpcyB1c2VkIGJ5IGNoZWNrQ2FudmFzUmVjdHMuCisg
KiBAcGFyYW0ge251bWJlcn0geCBsZWZ0IGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCisgKiBA
cGFyYW0ge251bWJlcn0geSBib3R0b20gY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjayBpbiBjYXNl
IG9mIGNoZWNraW5nIGZyb20KKyAqICAgICAgICBhIEdMIGNvbnRleHQgb3IgdG9wIGNvcm5lciBp
biBjYXNlIG9mIGNoZWNraW5nIGZyb20gYSAyRCBjb250ZXh0LgorICogQHBhcmFtIHtudW1iZXJ9
IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSBoZWln
aHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59
IGNvbG9yIFRoZSBjb2xvciBleHBlY3RlZC4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUKKyAqICAg
ICAgICBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICogQHBhcmFtIHtz
dHJpbmd9IG9wdF9tc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCBzdWNjZXNzLiBFZworICog
ICAgICAgICgic2hvdWxkIGJlIHJlZCIpLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJvclJh
bmdlIE9wdGlvbmFsLiBBY2NlcHRhYmxlIGVycm9yIGluCisgKiAgICAgICAgY29sb3IgY2hlY2tp
bmcuIDAgYnkgZGVmYXVsdC4KKyAqLwordmFyIG1ha2VDaGVja1JlY3QgPSBmdW5jdGlvbih4LCB5
LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgbXNnLCBlcnJvclJhbmdlKSB7CisgIHZhciByZWN0ID0g
eworICAgICd4JzogeCwgJ3knOiB5LAorICAgICd3aWR0aCc6IHdpZHRoLCAnaGVpZ2h0JzogaGVp
Z2h0LAorICAgICdjb2xvcic6IGNvbG9yLCAnbXNnJzogbXNnLAorICAgICdlcnJvclJhbmdlJzog
ZXJyb3JSYW5nZSwKKworICAgICdjaGVja1JlY3QnOiBmdW5jdGlvbiAoYnVmLCBsLCBiLCB3KSB7
CisgICAgICBmb3IgKHZhciBweCA9ICh4IC0gbCkgOyBweCA8ICh4ICsgd2lkdGggLSBsKSA7ICsr
cHgpIHsKKyAgICAgICAgZm9yICh2YXIgcHkgPSAoeSAtIGIpIDsgcHkgPCAoeSArIGhlaWdodCAt
IGIpIDsgKytweSkgeworICAgICAgICAgIHZhciBvZmZzZXQgPSAocHkgKiB3ICsgcHgpICogNDsK
KyAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7CisgICAg
ICAgICAgICBpZiAoTWF0aC5hYnMoYnVmW29mZnNldCArIGpdIC0gY29sb3Jbal0pID4gZXJyb3JS
YW5nZSkgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7CisgICAgICAgICAgICAgIHZh
ciB3YXMgPSBidWZbb2Zmc2V0ICsgMF0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgZm9yIChq
ID0gMTsgaiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgd2FzICs9ICIs
IiArIGJ1ZltvZmZzZXQgKyBqXTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBkZWJ1
ZygnYXQgKCcgKyBweCArICcsICcgKyBweSArCisgICAgICAgICAgICAgICAgICAgICcpIGV4cGVj
dGVkOiAnICsgY29sb3IgKyAnIHdhcyAnICsgd2FzKTsKKyAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgICAgdGVz
dFBhc3NlZChtc2cpOworICAgIH0KKyAgfQorICByZXR1cm4gcmVjdDsKK307CisKKy8qKgorICog
Q2hlY2tzIHRoYXQgYSBwb3J0aW9ucyBvZiBhIGNhbnZhcyBvciB0aGUgY3VycmVudGx5IGF0dGFj
aGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnbCBUaGUKKyAqICAgICAgICAgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXku
PGNoZWNrUmVjdD59IGFycmF5IG9mIHJlY3RzIHRvIGNoZWNrIGZvciBtYXRjaGluZyBjb2xvci4K
KyAqLwordmFyIGNoZWNrQ2FudmFzUmVjdHMgPSBmdW5jdGlvbihnbCwgcmVjdHMpIHsKKyAgaWYg
KHJlY3RzLmxlbmd0aCA+IDApIHsKKyAgICB2YXIgbGVmdCA9IHJlY3RzWzBdLng7CisgICAgdmFy
IHJpZ2h0ID0gcmVjdHNbMF0ueCArIHJlY3RzWzFdLndpZHRoOworICAgIHZhciBib3R0b20gPSBy
ZWN0c1swXS55OworICAgIHZhciB0b3AgPSByZWN0c1swXS55ICsgcmVjdHNbMF0uaGVpZ2h0Owor
ICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcmVjdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgIGxlZnQg
PSBNYXRoLm1pbihsZWZ0LCByZWN0c1tpXS54KTsKKyAgICAgIHJpZ2h0ID0gTWF0aC5tYXgocmln
aHQsIHJlY3RzW2ldLnggKyByZWN0c1tpXS53aWR0aCk7CisgICAgICBib3R0b20gPSBNYXRoLm1p
bihib3R0b20sIHJlY3RzW2ldLnkpOworICAgICAgdG9wID0gTWF0aC5tYXgodG9wLCByZWN0c1tp
XS55ICsgcmVjdHNbaV0uaGVpZ2h0KTsKKyAgICB9CisgICAgdmFyIHdpZHRoID0gcmlnaHQgLSBs
ZWZ0OworICAgIHZhciBoZWlnaHQgPSB0b3AgLSBib3R0b207CisgICAgdmFyIGJ1ZiA9IG5ldyBV
aW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7CisgICAgZ2wucmVhZFBpeGVscyhsZWZ0LCBi
b3R0b20sIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWN0cy5sZW5ndGg7ICsraSkgeworICAgICAgcmVjdHNb
aV0uY2hlY2tSZWN0KGJ1ZiwgbGVmdCwgYm90dG9tLCB3aWR0aCk7CisgICAgfQorICB9Cit9Owor
CisvKioKKyAqIENoZWNrcyB0aGF0IGEgcG9ydGlvbiBvZiBhIGNhbnZhcyBvciB0aGUgY3VycmVu
dGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJl
bmRlcmluZ0NvbnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnbCBUaGUKKyAqICAgICAg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRleHQgdG8gdXNlLgorICogQHBhcmFt
IHtudW1iZXJ9IHggbGVmdCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtu
dW1iZXJ9IHkgYm90dG9tIGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2sgaW4gY2FzZSBvZiBjaGVj
a2luZyBmcm9tCisgKiAgICAgICAgYSBHTCBjb250ZXh0IG9yIHRvcCBjb3JuZXIgaW4gY2FzZSBv
ZiBjaGVja2luZyBmcm9tIGEgMkQgY29udGV4dC4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCB3
aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IHdpZHRo
IG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBU
aGUgY29sb3IgZXhwZWN0ZWQuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlCisgKiAgICAgICAgZWFj
aCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbgorICogICAgICAgIGNv
bG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisgKiBAcGFyYW0geyFmdW5jdGlvbigpfSBzYW1l
Rm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhbGwgcGl4ZWxzCisgKiAgICAgICAgYXJlIHRoZSBzYW1l
IGFzIGNvbG9yLgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gZGlmZmVyZW50Rm4gRnVuY3Rpb24g
dG8gY2FsbCBpZiBhIHBpeGVsCisgKiAgICAgICAgaXMgZGlmZmVyZW50IHRoYW4gY29sb3IKKyAq
IEBwYXJhbSB7IWZ1bmN0aW9uKCl9IGxvZ0ZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGxvZ2dpbmcu
CisgKiBAcGFyYW0ge1R5cGVkQXJyYXl9IG9wdF9yZWFkQmFja0J1ZiBvcHRpb25hbCBidWZmZXIg
dG8gcmVhZCBiYWNrIGludG8uCisgKiAgICAgICAgVHlwaWNhbGx5IHBhc3NlZCB0byBlaXRoZXIg
cmV1c2UgYnVmZmVyLCBvciBzdXBwb3J0IHJlYWRiYWNrcyBmcm9tCisgKiAgICAgICAgZmxvYXRp
bmctcG9pbnQvbm9ybTE2IGZyYW1lYnVmZmVycy4KKyAqIEBwYXJhbSB7R0xlbnVtfSBvcHRfcmVh
ZEJhY2tUeXBlIG9wdGlvbmFsIHJlYWQgYmFjayB0eXBlLCBkZWZhdWx0aW5nIHRvCisgKiAgICAg
ICAgZ2wuVU5TSUdORURfQllURS4gQ2FuIGJlIHVzZWQgdG8gc3VwcG9ydCByZWFkYmFjayBmcm9t
IGZsb2F0aW5nLXBvaW50CisgKiAgICAgICAgL25vcm0xNiBmcmFtZWJ1ZmZlcnMuCisgKiBAcGFy
YW0ge0dMZW51bX0gb3B0X3JlYWRCYWNrRm9ybWF0IG9wdGlvbmFsIHJlYWQgYmFjayBmb3JtYXQs
IGRlZmF1bHRpbmcgdG8KKyAqICAgICAgICBnbC5SR0JBLiBDYW4gYmUgdXNlZCB0byBzdXBwb3J0
IHJlYWRiYWNrIGZyb20gbm9ybTE2CisgKiAgICAgICAgZnJhbWVidWZmZXJzLgorICovCit2YXIg
Y2hlY2tDYW52YXNSZWN0Q29sb3IgPSBmdW5jdGlvbihnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwg
Y29sb3IsIG9wdF9lcnJvclJhbmdlLCBzYW1lRm4sIGRpZmZlcmVudEZuLCBsb2dGbiwgb3B0X3Jl
YWRCYWNrQnVmLCBvcHRfcmVhZEJhY2tUeXBlLCBvcHRfcmVhZEJhY2tGb3JtYXQpIHsKKyAgaWYg
KGlzV2ViR0xDb250ZXh0KGdsKSAmJiAhZ2wuZ2V0UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSX0JJ
TkRJTkcpKSB7CisgICAgLy8gV2UncmUgcmVhZGluZyB0aGUgYmFja2J1ZmZlciBzbyBjbGlwLgor
ICAgIHZhciB4ciA9IGNsaXBUb1JhbmdlKHgsIHdpZHRoLCAwLCBnbC5jYW52YXMud2lkdGgpOwor
ICAgIHZhciB5ciA9IGNsaXBUb1JhbmdlKHksIGhlaWdodCwgMCwgZ2wuY2FudmFzLmhlaWdodCk7
CisgICAgaWYgKCF4ci5leHRlbnQgfHwgIXlyLmV4dGVudCkgeworICAgICAgbG9nRm4oImNoZWNr
aW5nIHJlY3Q6IGVmZmVjdGl2ZSB3aWR0aCBvciBoZWlnaHQgaXMgemVybyIpOworICAgICAgc2Ft
ZUZuKCk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHggPSB4ci52YWx1ZTsKKyAgICB5ID0g
eXIudmFsdWU7CisgICAgd2lkdGggPSB4ci5leHRlbnQ7CisgICAgaGVpZ2h0ID0geXIuZXh0ZW50
OworICB9CisgIHZhciBlcnJvclJhbmdlID0gb3B0X2Vycm9yUmFuZ2UgfHwgMDsKKyAgaWYgKCFl
cnJvclJhbmdlLmxlbmd0aCkgeworICAgIGVycm9yUmFuZ2UgPSBbZXJyb3JSYW5nZSwgZXJyb3JS
YW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZV0KKyAgfQorICB2YXIgYnVmOworICBpZiAoaXNX
ZWJHTENvbnRleHQoZ2wpKSB7CisgICAgYnVmID0gb3B0X3JlYWRCYWNrQnVmID8gb3B0X3JlYWRC
YWNrQnVmIDogbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKKyAgICB2YXIgcmVh
ZEJhY2tUeXBlID0gb3B0X3JlYWRCYWNrVHlwZSA/IG9wdF9yZWFkQmFja1R5cGUgOiBnbC5VTlNJ
R05FRF9CWVRFOworICAgIHZhciByZWFkQmFja0Zvcm1hdCA9IG9wdF9yZWFkQmFja0Zvcm1hdCA/
IG9wdF9yZWFkQmFja0Zvcm1hdCA6IGdsLlJHQkE7CisgICAgZ2wucmVhZFBpeGVscyh4LCB5LCB3
aWR0aCwgaGVpZ2h0LCByZWFkQmFja0Zvcm1hdCwgcmVhZEJhY2tUeXBlLCBidWYpOworICB9IGVs
c2UgeworICAgIGJ1ZiA9IGdsLmdldEltYWdlRGF0YSh4LCB5LCB3aWR0aCwgaGVpZ2h0KS5kYXRh
OworICB9CisgIGZvciAodmFyIGkgPSAwOyBpIDwgd2lkdGggKiBoZWlnaHQ7ICsraSkgeworICAg
IHZhciBvZmZzZXQgPSBpICogNDsKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbG9yLmxlbmd0
aDsgKytqKSB7CisgICAgICBpZiAoTWF0aC5hYnMoYnVmW29mZnNldCArIGpdIC0gY29sb3Jbal0p
ID4gZXJyb3JSYW5nZVtqXSkgeworICAgICAgICB2YXIgd2FzID0gYnVmW29mZnNldCArIDBdLnRv
U3RyaW5nKCk7CisgICAgICAgIGZvciAoaiA9IDE7IGogPCBjb2xvci5sZW5ndGg7ICsraikgewor
ICAgICAgICAgIHdhcyArPSAiLCIgKyBidWZbb2Zmc2V0ICsgal07CisgICAgICAgIH0KKyAgICAg
ICAgZGlmZmVyZW50Rm4oJ2F0ICgnICsgKHggKyAoaSAlIHdpZHRoKSkgKyAnLCAnICsgKHkgKyBN
YXRoLmZsb29yKGkgLyB3aWR0aCkpICsKKyAgICAgICAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6
ICcgKyBjb2xvciArICcgd2FzICcgKyB3YXMsIGJ1Zik7CisgICAgICAgIHJldHVybjsKKyAgICAg
IH0KKyAgICB9CisgIH0KKyAgc2FtZUZuKCk7Cit9OworCisvKioKKyAqIENoZWNrcyB0aGF0IGEg
cG9ydGlvbiBvZiBhIGNhbnZhcyBvciB0aGUgY3VycmVudGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVy
IGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR8Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEfSBnbCBUaGUKKyAqICAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IG9yIDJEIGNvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHggbGVmdCBjb3JuZXIg
b2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IHkgYm90dG9tIGNvcm5lciBv
ZiByZWdpb24gdG8gY2hlY2sgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9tCisgKiAgICAgICAgYSBH
TCBjb250ZXh0IG9yIHRvcCBjb3JuZXIgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9tIGEgMkQgY29u
dGV4dC4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2su
CisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgZXhwZWN0ZWQuIEEgNCBl
bGVtZW50IGFycmF5IHdoZXJlCisgKiAgICAgICAgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5n
ZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE1lc3NhZ2UgdG8gYXNzb2Np
YXRlIHdpdGggc3VjY2VzcyBvciBmYWlsdXJlLiBFZworICogICAgICAgICgic2hvdWxkIGJlIHJl
ZCIpLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFsLiBBY2NlcHRh
YmxlIGVycm9yIGluCisgKiAgICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVsdC4KKyAq
IEBwYXJhbSB7VHlwZWRBcnJheX0gb3B0X3JlYWRCYWNrQnVmIG9wdGlvbmFsIGJ1ZmZlciB0byBy
ZWFkIGJhY2sgaW50by4KKyAqICAgICAgICBUeXBpY2FsbHkgcGFzc2VkIHRvIGVpdGhlciByZXVz
ZSBidWZmZXIsIG9yIHN1cHBvcnQgcmVhZGJhY2tzIGZyb20KKyAqICAgICAgICBmbG9hdGluZy1w
b2ludC9ub3JtMTYgZnJhbWVidWZmZXJzLgorICogQHBhcmFtIHtHTGVudW19IG9wdF9yZWFkQmFj
a1R5cGUgb3B0aW9uYWwgcmVhZCBiYWNrIHR5cGUsIGRlZmF1bHRpbmcgdG8KKyAqICAgICAgICBn
bC5VTlNJR05FRF9CWVRFLiBDYW4gYmUgdXNlZCB0byBzdXBwb3J0IHJlYWRiYWNrIGZyb20gZmxv
YXRpbmctcG9pbnQKKyAqICAgICAgICAvbm9ybTE2IGZyYW1lYnVmZmVycy4KKyAqIEBwYXJhbSB7
R0xlbnVtfSBvcHRfcmVhZEJhY2tGb3JtYXQgb3B0aW9uYWwgcmVhZCBiYWNrIGZvcm1hdCwgZGVm
YXVsdGluZyB0bworICogICAgICAgIGdsLlJHQkEuIENhbiBiZSB1c2VkIHRvIHN1cHBvcnQgcmVh
ZGJhY2sgZnJvbSBmbG9hdGluZy1wb2ludAorICogICAgICAgIC9ub3JtMTYgZnJhbWVidWZmZXJz
LgorICovCit2YXIgY2hlY2tDYW52YXNSZWN0ID0gZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRoLCBo
ZWlnaHQsIGNvbG9yLCBvcHRfbXNnLCBvcHRfZXJyb3JSYW5nZSwgb3B0X3JlYWRCYWNrQnVmLCBv
cHRfcmVhZEJhY2tUeXBlLCBvcHRfcmVhZEJhY2tGb3JtYXQpIHsKKyAgY2hlY2tDYW52YXNSZWN0
Q29sb3IoCisgICAgICBnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9lcnJvclJh
bmdlLAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBtc2cgPSBvcHRfbXNnOworICAg
ICAgICBpZiAobXNnID09PSB1bmRlZmluZWQpCisgICAgICAgICAgbXNnID0gInNob3VsZCBiZSAi
ICsgY29sb3IudG9TdHJpbmcoKTsKKyAgICAgICAgdGVzdFBhc3NlZChtc2cpOworICAgICAgfSwK
KyAgICAgIGZ1bmN0aW9uKGRpZmZlcmVudE1zZykgeworICAgICAgICB2YXIgbXNnID0gb3B0X21z
ZzsKKyAgICAgICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIG1zZyA9ICJzaG91
bGQgYmUgIiArIGNvbG9yLnRvU3RyaW5nKCk7CisgICAgICAgIHRlc3RGYWlsZWQobXNnICsgIlxu
IiArIGRpZmZlcmVudE1zZyk7CisgICAgICB9LAorICAgICAgZGVidWcsCisgICAgICBvcHRfcmVh
ZEJhY2tCdWYsCisgICAgICBvcHRfcmVhZEJhY2tUeXBlLAorICAgICAgb3B0X3JlYWRCYWNrRm9y
bWF0KTsKK307CisKKy8qKgorICogQ2hlY2tzIHRoYXQgYW4gZW50aXJlIGNhbnZhcyBvciB0aGUg
Y3VycmVudGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFX
ZWJHTFJlbmRlcmluZ0NvbnRleHR8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnbCBUaGUKKyAq
ICAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIDJEIGNvbnRleHQgdG8gdXNlLgorICog
QHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciBleHBlY3RlZC4gQSA0IGVs
ZW1lbnQgYXJyYXkgd2hlcmUKKyAqICAgICAgICBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdl
IDAgdG8gMjU1LgorICogQHBhcmFtIHtzdHJpbmd9IG1zZyBNZXNzYWdlIHRvIGFzc29jaWF0ZSB3
aXRoIHN1Y2Nlc3MuIEVnICgic2hvdWxkIGJlIHJlZCIpLgorICogQHBhcmFtIHtudW1iZXJ9IGVy
cm9yUmFuZ2UgT3B0aW9uYWwuIEFjY2VwdGFibGUgZXJyb3IgaW4KKyAqICAgICAgICBjb2xvciBj
aGVja2luZy4gMCBieSBkZWZhdWx0LgorICovCit2YXIgY2hlY2tDYW52YXMgPSBmdW5jdGlvbihn
bCwgY29sb3IsIG1zZywgZXJyb3JSYW5nZSkgeworICBjaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAs
IGdsLmNhbnZhcy53aWR0aCwgZ2wuY2FudmFzLmhlaWdodCwgY29sb3IsIG1zZywgZXJyb3JSYW5n
ZSk7Cit9OworCisvKioKKyAqIENoZWNrcyBhIHJlY3Rhbmd1bGFyIGFyZWEgYm90aCBpbnNpZGUg
dGhlIGFyZWEgYW5kIG91dHNpZGUKKyAqIHRoZSBhcmVhLgorICogQHBhcmFtIHshV2ViR0xSZW5k
ZXJpbmdDb250ZXh0fENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZ2wgVGhlCisgKiAgICAgICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvciAyRCBjb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7
bnVtYmVyfSB4IGxlZnQgY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVt
YmVyfSB5IGJvdHRvbSBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrIGluIGNhc2Ugb2YgY2hlY2tp
bmcgZnJvbQorICogICAgICAgIGEgR0wgY29udGV4dCBvciB0b3AgY29ybmVyIGluIGNhc2Ugb2Yg
Y2hlY2tpbmcgZnJvbSBhIDJEIGNvbnRleHQuCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggd2lk
dGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCB3aWR0aCBv
ZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gaW5uZXJDb2xv
ciBUaGUgY29sb3IgZXhwZWN0ZWQgaW5zaWRlCisgKiAgICAgdGhlIGFyZWEuIEEgNCBlbGVtZW50
IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUKKyAqICAgICByYW5nZSAwIHRvIDI1
NS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBvdXRlckNvbG9yIFRoZSBjb2xvciBleHBl
Y3RlZAorICogICAgIG91dHNpZGUuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVu
dCBpcyBpbiB0aGUKKyAqICAgICByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7IW51bWJlcn0g
b3B0X2VkZ2VTaXplOiBUaGUgbnVtYmVyIG9mIHBpeGVscyB0byBza2lwCisgKiAgICAgYXJvdW5k
IHRoZSBlZGdlcyBvZiB0aGUgYXJlYS4gRGVmYXV0IDAuCisgKiBAcGFyYW0geyF7d2lkdGg6bnVt
YmVyLCBoZWlnaHQ6bnVtYmVyfX0gb3B0X291dGVyRGltZW5zaW9ucworICogICAgIFRoZSBvdXRl
ciBkaW1lbnNpb25zLiBEZWZhdWx0IHRoZSBzaXplIG9mIGdsLmNhbnZhcy4KKyAqLwordmFyIGNo
ZWNrQXJlYUluQW5kT3V0ID0gZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGlubmVy
Q29sb3IsIG91dGVyQ29sb3IsIG9wdF9lZGdlU2l6ZSwgb3B0X291dGVyRGltZW5zaW9ucykgewor
ICB2YXIgb3V0ZXJEaW1lbnNpb25zID0gb3B0X291dGVyRGltZW5zaW9ucyB8fCB7IHdpZHRoOiBn
bC5jYW52YXMud2lkdGgsIGhlaWdodDogZ2wuY2FudmFzLmhlaWdodCB9OworICB2YXIgZWRnZVNp
emUgPSBvcHRfZWRnZVNpemUgfHwgMDsKKyAgY2hlY2tDYW52YXNSZWN0KGdsLCB4ICsgZWRnZVNp
emUsIHkgKyBlZGdlU2l6ZSwgd2lkdGggLSBlZGdlU2l6ZSAqIDIsIGhlaWdodCAtIGVkZ2VTaXpl
ICogMiwgaW5uZXJDb2xvcik7CisgIGNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgeCAtIGVkZ2VT
aXplLCBvdXRlckRpbWVuc2lvbnMuaGVpZ2h0LCBvdXRlckNvbG9yKTsKKyAgY2hlY2tDYW52YXNS
ZWN0KGdsLCB4ICsgd2lkdGggKyBlZGdlU2l6ZSwgMCwgb3V0ZXJEaW1lbnNpb25zLndpZHRoIC0g
eCAtIHdpZHRoIC0gZWRnZVNpemUsIG91dGVyRGltZW5zaW9ucy5oZWlnaHQsIG91dGVyQ29sb3Ip
OworICBjaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIG91dGVyRGltZW5zaW9ucy53aWR0aCwgeSAt
IGVkZ2VTaXplLCBvdXRlckNvbG9yKTsKKyAgY2hlY2tDYW52YXNSZWN0KGdsLCAwLCB5ICsgaGVp
Z2h0ICsgZWRnZVNpemUsIG91dGVyRGltZW5zaW9ucy53aWR0aCwgb3V0ZXJEaW1lbnNpb25zLmhl
aWdodCAtIHkgLSBoZWlnaHQgLSBlZGdlU2l6ZSwgb3V0ZXJDb2xvcik7Cit9OworCisvKioKKyAq
IENoZWNrcyB0aGF0IGFuIGVudGlyZSBidWZmZXIgbWF0Y2hlcyB0aGUgZmxvYXRpbmcgcG9pbnQg
dmFsdWVzIHByb3ZpZGVkLgorICogKFdlYkdMIDIuMCBvbmx5KQorICogQHBhcmFtIHshV2ViR0wy
UmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgor
ICogQHBhcmFtIHtudW1iZXJ9IHRhcmdldCBUaGUgYnVmZmVyIHRhcmdldCB0byBiaW5kIHRvLgor
ICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGV4cGVjdGVkIFRoZSB2YWx1ZXMgZXhwZWN0ZWQu
CisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X21zZyBPcHRpb25hbC4gTWVzc2FnZSB0byBhc3NvY2lh
dGUgd2l0aCBzdWNjZXNzLiBFZyAoInNob3VsZCBiZSByZWQiKS4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbiB2YWx1ZSBjaGVj
a2luZy4gMC4wMDEgYnkgZGVmYXVsdC4KKyAqLwordmFyIGNoZWNrRmxvYXRCdWZmZXIgPSBmdW5j
dGlvbihnbCwgdGFyZ2V0LCBleHBlY3RlZCwgb3B0X21zZywgb3B0X2Vycm9yUmFuZ2UpIHsKKyAg
aWYgKG9wdF9tc2cgPT09IHVuZGVmaW5lZCkKKyAgICBvcHRfbXNnID0gImJ1ZmZlciBzaG91bGQg
bWF0Y2ggZXhwZWN0ZWQgdmFsdWVzIjsKKworICBpZiAob3B0X2Vycm9yUmFuZ2UgPT09IHVuZGVm
aW5lZCkKKyAgICBvcHRfZXJyb3JSYW5nZSA9IDAuMDAxOworCisgIHZhciBmbG9hdEFycmF5ID0g
bmV3IEZsb2F0MzJBcnJheShleHBlY3RlZC5sZW5ndGgpOworICBnbC5nZXRCdWZmZXJTdWJEYXRh
KHRhcmdldCwgMCwgZmxvYXRBcnJheSk7CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3Rl
ZC5sZW5ndGg7IGkrKykgeworICAgIGlmIChNYXRoLmFicyhmbG9hdEFycmF5W2ldIC0gZXhwZWN0
ZWRbaV0pID4gb3B0X2Vycm9yUmFuZ2UpIHsKKyAgICAgIHRlc3RGYWlsZWQob3B0X21zZyk7Cisg
ICAgICBkZWJ1ZygnYXQgWycgKyBpICsgJ10gZXhwZWN0ZWQ6ICcgKyBleHBlY3RlZFtpXSArICcg
d2FzICcgKyBmbG9hdEFycmF5W2ldKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgIH0KKyAgdGVz
dFBhc3NlZChvcHRfbXNnKTsKK307CisKKy8qKgorICogTG9hZHMgYSB0ZXh0dXJlLCBjYWxscyBj
YWxsYmFjayB3aGVuIGZpbmlzaGVkLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0
fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwgVVJMIG9mIGltYWdlIHRvIGxvYWQKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oIUltYWdlKTog
dm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBhZnRlcgorICogICAgICAg
IGltYWdlIGhhcyBsb2FkZWQKKyAqIEByZXR1cm4geyFXZWJHTFRleHR1cmV9IFRoZSBjcmVhdGVk
IHRleHR1cmUuCisgKi8KK3ZhciBsb2FkVGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB1cmwsIGNhbGxi
YWNrKSB7CisgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5O
RUFSRVNUKTsKKyAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWFnZS5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
dHVyZSk7CisgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIHRy
dWUpOworICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlKTsKKyAgICAgICAgY2FsbGJhY2soaW1hZ2Up
OworICAgIH07CisgICAgaW1hZ2Uuc3JjID0gdXJsOworICAgIHJldHVybiB0ZXh0dXJlOworfTsK
KworLyoqCisgKiBDaGVja3Mgd2hldGhlciB0aGUgYm91bmQgdGV4dHVyZSBoYXMgZXhwZWN0ZWQg
ZGltZW5zaW9ucy4gT25lIGNvcm5lciBwaXhlbAorICogb2YgdGhlIHRleHR1cmUgd2lsbCBiZSBj
aGFuZ2VkIGFzIGEgc2lkZSBlZmZlY3QuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRl
eHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshV2Vi
R0xUZXh0dXJlfSB0ZXh0dXJlIFRoZSB0ZXh0dXJlIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1i
ZXJ9IHdpZHRoIEV4cGVjdGVkIHdpZHRoLgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCBFeHBl
Y3RlZCBoZWlnaHQuCisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X2Zvcm1hdCBUaGUgdGV4dHVyZSdz
IGZvcm1hdC4gRGVmYXVsdHMgdG8gUkdCQS4KKyAqIEBwYXJhbSB7R0xlbnVtfSBvcHRfdHlwZSBU
aGUgdGV4dHVyZSdzIHR5cGUuIERlZmF1bHRzIHRvIFVOU0lHTkVEX0JZVEUuCisgKi8KK3ZhciBj
aGVja1RleHR1cmVTaXplID0gZnVuY3Rpb24oZ2wsIHdpZHRoLCBoZWlnaHQsIG9wdF9mb3JtYXQs
IG9wdF90eXBlKSB7CisgIG9wdF9mb3JtYXQgPSBvcHRfZm9ybWF0IHx8IGdsLlJHQkE7CisgIG9w
dF90eXBlID0gb3B0X3R5cGUgfHwgZ2wuVU5TSUdORURfQllURTsKKworICB2YXIgbnVtRWxlbWVu
dHMgPSBnZXRUeXBlZEFycmF5RWxlbWVudHNQZXJQaXhlbChnbCwgb3B0X2Zvcm1hdCwgb3B0X3R5
cGUpOworICB2YXIgYnVmID0gbmV3IChnbFR5cGVUb1R5cGVkQXJyYXlUeXBlKGdsLCBvcHRfdHlw
ZSkpKG51bUVsZW1lbnRzKTsKKworICB2YXIgZXJyb3JzID0gMDsKKyAgZ2wudGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCB3aWR0aCAtIDEsIGhlaWdodCAtIDEsIDEsIDEsIG9wdF9mb3Jt
YXQsIG9wdF90eXBlLCBidWYpOworICBpZiAoZ2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikg
eworICAgIHRlc3RGYWlsZWQoIlRleHR1cmUgd2FzIHNtYWxsZXIgdGhhbiB0aGUgZXhwZWN0ZWQg
c2l6ZSAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQpOworICAgICsrZXJyb3JzOworICB9CisgIGds
LnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgd2lkdGggLSAxLCBoZWlnaHQsIDEsIDEs
IG9wdF9mb3JtYXQsIG9wdF90eXBlLCBidWYpOworICBpZiAoZ2wuZ2V0RXJyb3IoKSA9PSBnbC5O
T19FUlJPUikgeworICAgIHRlc3RGYWlsZWQoIlRleHR1cmUgd2FzIHRhbGxlciB0aGFuICIgKyBo
ZWlnaHQpOworICAgICsrZXJyb3JzOworICB9CisgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgd2lkdGgsIGhlaWdodCAtIDEsIDEsIDEsIG9wdF9mb3JtYXQsIG9wdF90eXBlLCBi
dWYpOworICBpZiAoZ2wuZ2V0RXJyb3IoKSA9PSBnbC5OT19FUlJPUikgeworICAgIHRlc3RGYWls
ZWQoIlRleHR1cmUgd2FzIHdpZGVyIHRoYW4gIiArIHdpZHRoKTsKKyAgICArK2Vycm9yczsKKyAg
fQorICBpZiAoZXJyb3JzID09IDApIHsKKyAgICB0ZXN0UGFzc2VkKCJUZXh0dXJlIGhhZCB0aGUg
ZXhwZWN0ZWQgc2l6ZSAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQpOworICB9Cit9OworCisvKioK
KyAqIE1ha2VzIGEgc2hhbGxvdyBjb3B5IG9mIGFuIG9iamVjdC4KKyAqIEBwYXJhbSB7IU9iamVj
dH0gc3JjIE9iamVjdCB0byBjb3B5CisgKiBAcmV0dXJuIHshT2JqZWN0fSBUaGUgY29weSBvZiBz
cmMuCisgKi8KK3ZhciBzaGFsbG93Q29weU9iamVjdCA9IGZ1bmN0aW9uKHNyYykgeworICB2YXIg
ZHN0ID0ge307CisgIGZvciAodmFyIGF0dHIgaW4gc3JjKSB7CisgICAgaWYgKHNyYy5oYXNPd25Q
cm9wZXJ0eShhdHRyKSkgeworICAgICAgZHN0W2F0dHJdID0gc3JjW2F0dHJdOworICAgIH0KKyAg
fQorICByZXR1cm4gZHN0OworfTsKKworLyoqCisgKiBDaGVja3MgaWYgYW4gYXR0cmlidXRlIGV4
aXN0cyBvbiBhbiBvYmplY3QgY2FzZSBpbnNlbnNpdGl2ZS4KKyAqIEBwYXJhbSB7IU9iamVjdH0g
b2JqIE9iamVjdCB0byBjaGVjaworICogQHBhcmFtIHtzdHJpbmd9IGF0dHIgTmFtZSBvZiBhdHRy
aWJ1dGUgdG8gbG9vayBmb3IuCisgKiBAcmV0dXJuIHtzdHJpbmc/fSBUaGUgbmFtZSBvZiB0aGUg
YXR0cmlidXRlIGlmIGl0IGV4aXN0cywKKyAqICAgICAgICAgdW5kZWZpbmVkIGlmIG5vdC4KKyAq
LwordmFyIGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSA9IGZ1bmN0aW9uKG9iaiwgYXR0cikg
eworICB2YXIgbG93ZXIgPSBhdHRyLnRvTG93ZXJDYXNlKCk7CisgIGZvciAodmFyIGtleSBpbiBv
YmopIHsKKyAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5LnRvTG93ZXJDYXNl
KCkgPT0gbG93ZXIpIHsKKyAgICAgIHJldHVybiBrZXk7CisgICAgfQorICB9Cit9OworCisvKioK
KyAqIFJldHVybnMgYSBtYXAgb2YgVVJMIHF1ZXJ5c3RyaW5nIG9wdGlvbnMKKyAqIEByZXR1cm4g
e09iamVjdD99IE9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgdmFsdWVzIGluIHRoZSBVUkwgcXVl
cnlzdHJpbmcKKyAqLwordmFyIGdldFVybE9wdGlvbnMgPSAoZnVuY3Rpb24oKSB7CisgIHZhciBf
dXJsT3B0aW9uc1BhcnNlZCA9IGZhbHNlOworICB2YXIgX3VybE9wdGlvbnMgPSB7fTsKKyAgcmV0
dXJuIGZ1bmN0aW9uKCkgeworICAgIGlmICghX3VybE9wdGlvbnNQYXJzZWQpIHsKKyAgICAgIHZh
ciBzID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CisgICAgICB2YXIgcSA9IHMuaW5kZXhPZigiPyIp
OworICAgICAgdmFyIGUgPSBzLmluZGV4T2YoIiMiKTsKKyAgICAgIGlmIChlIDwgMCkgeworICAg
ICAgICBlID0gcy5sZW5ndGg7CisgICAgICB9CisgICAgICB2YXIgcXVlcnkgPSBzLnN1YnN0cmlu
ZyhxICsgMSwgZSk7CisgICAgICB2YXIgcGFpcnMgPSBxdWVyeS5zcGxpdCgiJiIpOworICAgICAg
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB2YXIg
a2V5VmFsdWUgPSBwYWlyc1tpaV0uc3BsaXQoIj0iKTsKKyAgICAgICAgdmFyIGtleSA9IGtleVZh
bHVlWzBdOworICAgICAgICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVb
MV0pOworICAgICAgICBfdXJsT3B0aW9uc1trZXldID0gdmFsdWU7CisgICAgICB9CisgICAgICBf
dXJsT3B0aW9uc1BhcnNlZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIF91cmxPcHRpb25z
OworICB9Cit9KSgpOworCit2YXIgZGVmYXVsdDNEQ29udGV4dFZlcnNpb24gPSAxOworCisvKioK
KyAqIFNldCB0aGUgZGVmYXVsdCBjb250ZXh0IHZlcnNpb24gZm9yIGNyZWF0ZTNEQ29udGV4dC4K
KyAqIEluaXRpYWxseSB0aGUgZGVmYXVsdCB2ZXJzaW9uIGlzIDEuCisgKiBAcGFyYW0ge251bWJl
cn0gRGVmYXVsdCB2ZXJzaW9uIG9mIFdlYkdMIGNvbnRleHRzLgorICovCit2YXIgc2V0RGVmYXVs
dDNEQ29udGV4dFZlcnNpb24gPSBmdW5jdGlvbih2ZXJzaW9uKSB7CisgICAgZGVmYXVsdDNEQ29u
dGV4dFZlcnNpb24gPSB2ZXJzaW9uOworfTsKKworLyoqCisgKiBHZXQgdGhlIGRlZmF1bHQgY29u
dGV4IHZlcnNpb24gZm9yIGNyZWF0ZTNEQ29udGV4dC4KKyAqIEZpcnN0IGl0IGxvb2tzIGF0IHRo
ZSBVUkkgb3B0aW9uIHx3ZWJnbFZlcnNpb258LiBJZiBpdCBkb2VzIG5vdCBleGlzdCwKKyAqIHRo
ZW4gbG9vayBhdCB0aGUgZ2xvYmFsIGRlZmF1bHQzRENvbnRleHRWZXJzaW9uIHZhcmlhYmxlLgor
ICovCit2YXIgZ2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24gPSBmdW5jdGlvbigpIHsKKyAgICBy
ZXR1cm4gcGFyc2VJbnQoZ2V0VXJsT3B0aW9ucygpLndlYmdsVmVyc2lvbiwgMTApIHx8IGRlZmF1
bHQzRENvbnRleHRWZXJzaW9uOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgd2ViZ2wgY29udGV4
dC4KKyAqIEBwYXJhbSB7IUNhbnZhc3xzdHJpbmd9IG9wdF9jYW52YXMgVGhlIGNhbnZhcyB0YWcg
dG8gZ2V0CisgKiAgICAgY29udGV4dCBmcm9tLiBJZiBvbmUgaXMgbm90IHBhc3NlZCBpbiBvbmUg
d2lsbCBiZQorICogICAgIGNyZWF0ZWQuIElmIGl0J3MgYSBzdHJpbmcgaXQncyBhc3N1bWVkIHRv
IGJlIHRoZSBpZCBvZiBhCisgKiAgICAgY2FudmFzLgorICogQHBhcmFtIHtPYmplY3R9IG9wdF9h
dHRyaWJ1dGVzIENvbnRleHQgYXR0cmlidXRlcy4KKyAqIEBwYXJhbSB7IW51bWJlcn0gb3B0X3Zl
cnNpb24gVmVyc2lvbiBvZiBXZWJHTCBjb250ZXh0IHRvIGNyZWF0ZS4KKyAqICAgICBUaGUgZGVm
YXVsdCB2ZXJzaW9uIGNhbiBiZSBzZXQgYnkgY2FsbGluZyBzZXREZWZhdWx0M0RDb250ZXh0VmVy
c2lvbi4KKyAqIEByZXR1cm4geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IFRoZSBjcmVhdGVkIGNv
bnRleHQuCisgKi8KK3ZhciBjcmVhdGUzRENvbnRleHQgPSBmdW5jdGlvbihvcHRfY2FudmFzLCBv
cHRfYXR0cmlidXRlcywgb3B0X3ZlcnNpb24pIHsKKyAgaWYgKHdpbmRvdy5pbml0VGVzdGluZ0hh
cm5lc3MpIHsKKyAgICB3aW5kb3cuaW5pdFRlc3RpbmdIYXJuZXNzKCk7CisgIH0KKyAgdmFyIGF0
dHJpYnV0ZXMgPSBzaGFsbG93Q29weU9iamVjdChvcHRfYXR0cmlidXRlcyB8fCB7fSk7CisgIGlm
ICghaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlKGF0dHJpYnV0ZXMsICJhbnRpYWxpYXMiKSkg
eworICAgIGF0dHJpYnV0ZXMuYW50aWFsaWFzID0gZmFsc2U7CisgIH0KKyAgaWYgKCFvcHRfdmVy
c2lvbikgeworICAgIG9wdF92ZXJzaW9uID0gZ2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24oKTsK
KyAgfQorICBvcHRfY2FudmFzID0gb3B0X2NhbnZhcyB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJjYW52YXMiKTsKKyAgaWYgKHR5cGVvZiBvcHRfY2FudmFzID09ICdzdHJpbmcnKSB7CisgICAg
b3B0X2NhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdF9jYW52YXMpOworICB9Cisg
IHZhciBjb250ZXh0ID0gbnVsbDsKKworICB2YXIgbmFtZXM7CisgIHN3aXRjaCAob3B0X3ZlcnNp
b24pIHsKKyAgICBjYXNlIDI6CisgICAgICBuYW1lcyA9IFsid2ViZ2wyIl07IGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICBuYW1lcyA9IFsid2ViZ2wiLCAiZXhwZXJpbWVudGFsLXdlYmdsIl07
IGJyZWFrOworICB9CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkg
eworICAgIHRyeSB7CisgICAgICBjb250ZXh0ID0gb3B0X2NhbnZhcy5nZXRDb250ZXh0KG5hbWVz
W2ldLCBhdHRyaWJ1dGVzKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgfQorICAgIGlmIChjb250
ZXh0KSB7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgaWYgKCFjb250ZXh0KSB7CisgICAg
dGVzdEZhaWxlZCgiVW5hYmxlIHRvIGZldGNoIFdlYkdMIHJlbmRlcmluZyBjb250ZXh0IGZvciBD
YW52YXMiKTsKKyAgfSBlbHNlIHsKKyAgICBpZiAoIXdpbmRvdy5fd3R1X2NvbnRleHRzKSB7Cisg
ICAgICB3aW5kb3cuX3d0dV9jb250ZXh0cyA9IFtdCisgICAgfQorICAgIHdpbmRvdy5fd3R1X2Nv
bnRleHRzLnB1c2goY29udGV4dCk7CisgIH0KKyAgcmV0dXJuIGNvbnRleHQ7Cit9OworCisvKioK
KyAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBnaXZlbiBjb250ZXh0IGlzIFdlYkdMIDIuMCBvciBn
cmVhdGVyLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhl
IGdpdmVuIGNvbnRleHQgaXMgV2ViR0wgMi4wIG9yIGdyZWF0ZXIuCisgKi8KK3ZhciBpc1dlYkdM
MiA9IGZ1bmN0aW9uKGdsKSB7CisgIC8vIER1Y2sgdHlwaW5nIGlzIHVzZWQgc28gdGhhdCB0aGUg
Y29uZm9ybWFuY2Ugc3VpdGUgY2FuIGJlIHJ1bgorICAvLyBhZ2FpbnN0IGxpYnJhcmllcyBlbXVs
YXRpbmcgV2ViR0wgMS4wIG9uIHRvcCBvZiBXZWJHTCAyLjAuCisgIHJldHVybiAhIWdsLmRyYXdB
cnJheXNJbnN0YW5jZWQ7Cit9OworCisvKioKKyAqIERlZmluZXMgdGhlIGV4Y2VwdGlvbiB0eXBl
IGZvciBhIEdMIGVycm9yLgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge3N0cmluZ30gbWVz
c2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvciBHTCBlcnJv
ciBjb2RlCisgKi8KK2Z1bmN0aW9uIEdMRXJyb3JFeGNlcHRpb24gKG1lc3NhZ2UsIGVycm9yKSB7
CisgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgdGhpcy5uYW1lID0gIkdMRXJyb3JFeGNl
cHRpb24iOworICAgdGhpcy5lcnJvciA9IGVycm9yOworfTsKKworLyoqCisgKiBXcmFwcyBhIFdl
YkdMIGZ1bmN0aW9uIHdpdGggYSBmdW5jdGlvbiB0aGF0IHRocm93cyBhbiBleGNlcHRpb24gaWYg
dGhlcmUgaXMKKyAqIGFuIGVycm9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0
fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5n
fSBmbmFtZSBOYW1lIG9mIGZ1bmN0aW9uIHRvIHdyYXAuCisgKiBAcmV0dXJuIHtmdW5jdGlvbigp
fSBUaGUgd3JhcHBlZCBmdW5jdGlvbi4KKyAqLwordmFyIGNyZWF0ZUdMRXJyb3JXcmFwcGVyID0g
ZnVuY3Rpb24oY29udGV4dCwgZm5hbWUpIHsKKyAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgIHZh
ciBydiA9IGNvbnRleHRbZm5hbWVdLmFwcGx5KGNvbnRleHQsIGFyZ3VtZW50cyk7CisgICAgdmFy
IGVyciA9IGNvbnRleHQuZ2V0RXJyb3IoKTsKKyAgICBpZiAoZXJyICE9IGNvbnRleHQuTk9fRVJS
T1IpIHsKKyAgICAgIHZhciBtc2cgPSAiR0wgZXJyb3IgIiArIGdsRW51bVRvU3RyaW5nKGNvbnRl
eHQsIGVycikgKyAiIGluICIgKyBmbmFtZTsKKyAgICAgIHRocm93IG5ldyBHTEVycm9yRXhjZXB0
aW9uKG1zZywgZXJyKTsKKyAgICB9CisgICAgcmV0dXJuIHJ2OworICB9OworfTsKKworLyoqCisg
KiBDcmVhdGVzIGEgV2ViR0wgY29udGV4dCB3aGVyZSBhbGwgZnVuY3Rpb25zIGFyZSB3cmFwcGVk
IHRvIHRocm93IGFuIGV4Y2VwdGlvbgorICogaWYgdGhlcmUgaXMgYW4gZXJyb3IuCisgKiBAcGFy
YW0geyFDYW52YXN9IGNhbnZhcyBUaGUgSFRNTCBjYW52YXMgdG8gZ2V0IGEgY29udGV4dCBmcm9t
LgorICogQHBhcmFtIHtPYmplY3R9IG9wdF9hdHRyaWJ1dGVzIENvbnRleHQgYXR0cmlidXRlcy4K
KyAqIEBwYXJhbSB7IW51bWJlcn0gb3B0X3ZlcnNpb24gVmVyc2lvbiBvZiBXZWJHTCBjb250ZXh0
IHRvIGNyZWF0ZQorICogQHJldHVybiB7IU9iamVjdH0gVGhlIHdyYXBwZWQgY29udGV4dC4KKyAq
LworZnVuY3Rpb24gY3JlYXRlM0RDb250ZXh0V2l0aFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9y
KGNhbnZhcywgb3B0X2F0dHJpYnV0ZXMsIG9wdF92ZXJzaW9uKSB7CisgIHZhciBjb250ZXh0ID0g
Y3JlYXRlM0RDb250ZXh0KGNhbnZhcywgb3B0X2F0dHJpYnV0ZXMsIG9wdF92ZXJzaW9uKTsKKyAg
dmFyIHdyYXAgPSB7fTsKKyAgZm9yICh2YXIgaSBpbiBjb250ZXh0KSB7CisgICAgdHJ5IHsKKyAg
ICAgIGlmICh0eXBlb2YgY29udGV4dFtpXSA9PSAnZnVuY3Rpb24nKSB7CisgICAgICAgIHdyYXBb
aV0gPSBjcmVhdGVHTEVycm9yV3JhcHBlcihjb250ZXh0LCBpKTsKKyAgICAgIH0gZWxzZSB7Cisg
ICAgICAgIHdyYXBbaV0gPSBjb250ZXh0W2ldOworICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgIGVycm9yKCJjcmVhdGVDb250ZXh0V3JhcHBlclRoYXRUaHJvd3NPbkdMRXJyb3I6IEVy
cm9yIGFjY2Vzc2luZyAiICsgaSk7CisgICAgfQorICB9CisgIHdyYXAuZ2V0RXJyb3IgPSBmdW5j
dGlvbigpIHsKKyAgICAgIHJldHVybiBjb250ZXh0LmdldEVycm9yKCk7CisgIH07CisgIHJldHVy
biB3cmFwOworfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IGFuIGV2YWx1YXRlZCBleHByZXNzaW9u
IGdlbmVyYXRlcyBhIHNwZWNpZmljIEdMIGVycm9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJp
bmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJh
bSB7bnVtYmVyfEFycmF5LjxudW1iZXI+fSBnbEVycm9ycyBUaGUgZXhwZWN0ZWQgZ2wgZXJyb3Ig
b3IgYW4gYXJyYXkgb2YgZXhwZWN0ZWQgZXJyb3JzLgorICogQHBhcmFtIHtzdHJpbmd9IGV2YWxT
dHIgVGhlIHN0cmluZyB0byBldmFsdWF0ZS4KKyAqLwordmFyIHNob3VsZEdlbmVyYXRlR0xFcnJv
ciA9IGZ1bmN0aW9uKGdsLCBnbEVycm9ycywgZXZhbFN0ciwgb3B0X21zZykgeworICB2YXIgZXhj
ZXB0aW9uOworICB0cnkgeworICAgIGV2YWwoZXZhbFN0cik7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICBleGNlcHRpb24gPSBlOworICB9CisgIGlmIChleGNlcHRpb24pIHsKKyAgICB0ZXN0RmFpbGVk
KGV2YWxTdHIgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICByZXR1cm4g
LTE7CisgIH0gZWxzZSB7CisgICAgaWYgKCFvcHRfbXNnKSB7CisgICAgICBvcHRfbXNnID0gImFm
dGVyIGV2YWx1YXRpbmc6ICIgKyBldmFsU3RyOworICAgIH0KKyAgICByZXR1cm4gZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbEVycm9ycywgb3B0X21zZyk7CisgIH0KK307CisKKy8qKgorICogVGVzdHMg
dGhhdCBhbiBldmFsdWF0ZWQgZXhwcmVzc2lvbiBkb2VzIG5vdCBnZW5lcmF0ZSBhIEdMIGVycm9y
LgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBldmFsU3RyIFRoZSBzdHJpbmcg
dG8gZXZhbHVhdGUuCisgKi8KK3ZhciBmYWlsSWZHTEVycm9yID0gZnVuY3Rpb24oZ2wsIGV2YWxT
dHIpIHsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdHJ5IHsKKyAgICBldmFsKGV2YWxTdHIpOworICB9
IGNhdGNoIChlKSB7CisgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorICBpZiAoZXhjZXB0aW9uKSB7
CisgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlv
bik7CisgIH0gZWxzZSB7CisgICAgZ2xFcnJvclNob3VsZEJlSW1wbChnbCwgZ2wuTk9fRVJST1Is
IGZhbHNlLCAiYWZ0ZXIgZXZhbHVhdGluZzogIiArIGV2YWxTdHIpOworICB9Cit9OworCisvKioK
KyAqIFRlc3RzIHRoYXQgdGhlIGZpcnN0IGVycm9yIEdMIHJldHVybnMgaXMgdGhlIHNwZWNpZmll
ZCBlcnJvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcnxBcnJheS48bnVtYmVy
Pn0gZ2xFcnJvcnMgVGhlIGV4cGVjdGVkIGdsIGVycm9yIG9yIGFuIGFycmF5IG9mIGV4cGVjdGVk
IGVycm9ycy4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE9wdGlvbmFsIGFkZGl0aW9uYWwg
bWVzc2FnZS4KKyAqLwordmFyIGdsRXJyb3JTaG91bGRCZSA9IGZ1bmN0aW9uKGdsLCBnbEVycm9y
cywgb3B0X21zZykgeworICByZXR1cm4gZ2xFcnJvclNob3VsZEJlSW1wbChnbCwgZ2xFcnJvcnMs
IHRydWUsIG9wdF9tc2cpOworfTsKKworY29uc3QgZ2xFcnJvckFzc2VydCA9IGZ1bmN0aW9uKGds
LCBnbEVycm9ycywgb3B0X21zZykgeworICByZXR1cm4gZ2xFcnJvclNob3VsZEJlSW1wbChnbCwg
Z2xFcnJvcnMsIGZhbHNlLCBvcHRfbXNnKTsKK307CisKKy8qKgorICogVGVzdHMgdGhhdCB0aGUg
Z2l2ZW4gZnJhbWVidWZmZXIgaGFzIGEgc3BlY2lmaWMgc3RhdHVzCisgKiBAcGFyYW0geyFXZWJH
TFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgor
ICogQHBhcmFtIHtudW1iZXJ8QXJyYXkuPG51bWJlcj59IGdsU3RhdHVzZXMgVGhlIGV4cGVjdGVk
IGdsCisgKiAgICAgICAgc3RhdHVzIG9yIGFuIGFycmF5IG9mIGV4cGVjdGVkIHN0YXR1c2VzLgor
ICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgT3B0aW9uYWwgYWRkaXRpb25hbCBtZXNzYWdlLgor
ICovCit2YXIgZnJhbWVidWZmZXJTdGF0dXNTaG91bGRCZSA9IGZ1bmN0aW9uKGdsLCB0YXJnZXQs
IGdsU3RhdHVzZXMsIG9wdF9tc2cpIHsKKyAgaWYgKCFnbFN0YXR1c2VzLmxlbmd0aCkgeworICAg
IGdsU3RhdHVzZXMgPSBbZ2xTdGF0dXNlc107CisgIH0KKyAgb3B0X21zZyA9IG9wdF9tc2cgfHwg
IiI7CisgIGNvbnN0IHN0YXR1cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXModGFyZ2V0KTsK
KyAgY29uc3QgbmR4ID0gZ2xTdGF0dXNlcy5pbmRleE9mKHN0YXR1cyk7CisgIGNvbnN0IGV4cGVj
dGVkID0gZ2xTdGF0dXNlcy5tYXAoKHN0YXR1cykgPT4geworICAgIHJldHVybiBnbEVudW1Ub1N0
cmluZyhnbCwgc3RhdHVzKTsKKyAgfSkuam9pbignIG9yICcpOworICBpZiAobmR4IDwgMCkgewor
ICAgIGxldCBtc2cgPSAiY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyBleHBlY3RlZCIgKyAoKGdsU3Rh
dHVzZXMubGVuZ3RoID4gMSkgPyAiIG9uZSBvZjogIiA6ICI6ICIpICsKKyAgICAgIGV4cGVjdGVk
ICsgICIuIFdhcyAiICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHN0YXR1cyk7CisgICAgaWYgKG9wdF9t
c2cpIHsKKyAgICAgIG1zZyArPSAiOiAiICsgb3B0X21zZzsKKyAgICB9CisgICAgdGVzdEZhaWxl
ZChtc2cpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBsZXQgbXNnID0gYGNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMgd2FzICR7Z2xFbnVtVG9TdHJpbmcoZ2wsIHN0YXR1cyl9YDsKKyAgaWYgKGds
U3RhdHVzZXMubGVuZ3RoID4gMSkgeworICAgIG1zZyArPSBgLCBvbmUgb2Y6ICR7ZXhwZWN0ZWR9
YDsKKyAgfQorICBpZiAob3B0X21zZykgeworICAgIG1zZyArPSAiOiAiICsgb3B0X21zZzsKKyAg
fQorICB0ZXN0UGFzc2VkKG1zZyk7CisgIHJldHVybiBbc3RhdHVzXTsKK30KKworLyoqCisgKiBU
ZXN0cyB0aGF0IHRoZSBmaXJzdCBlcnJvciBHTCByZXR1cm5zIGlzIHRoZSBzcGVjaWZpZWQgZXJy
b3IuIEFsbG93cyBzdXBwcmVzc2lvbiBvZiBzdWNjZXNzZXMuCisgKiBAcGFyYW0geyFXZWJHTFJl
bmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICog
QHBhcmFtIHtudW1iZXJ8QXJyYXkuPG51bWJlcj59IGdsRXJyb3JzIFRoZSBleHBlY3RlZCBnbCBl
cnJvciBvciBhbiBhcnJheSBvZiBleHBlY3RlZCBlcnJvcnMuCisgKiBAcGFyYW0ge2Jvb2xlYW59
IHJlcG9ydFN1Y2Nlc3NlcyBXaGV0aGVyIHRvIHJlcG9ydCBzdWNjZXNzZXMgYXMgcGFzc2VzLCBv
ciB0byBzaWxlbnRseSBwYXNzLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgT3B0aW9uYWwg
YWRkaXRpb25hbCBtZXNzYWdlLgorICovCit2YXIgZ2xFcnJvclNob3VsZEJlSW1wbCA9IGZ1bmN0
aW9uKGdsLCBnbEVycm9ycywgcmVwb3J0U3VjY2Vzc2VzLCBvcHRfbXNnKSB7CisgIGlmICghZ2xF
cnJvcnMubGVuZ3RoKSB7CisgICAgZ2xFcnJvcnMgPSBbZ2xFcnJvcnNdOworICB9CisgIG9wdF9t
c2cgPSBvcHRfbXNnIHx8ICIiOworCisgIGNvbnN0IGZuRXJyU3RyID0gZnVuY3Rpb24oZXJyVmFs
KSB7CisgICAgaWYgKGVyclZhbCA9PSAwKSByZXR1cm4gIk5PX0VSUk9SIjsKKyAgICByZXR1cm4g
Z2xFbnVtVG9TdHJpbmcoZ2wsIGVyclZhbCk7CisgIH07CisKKyAgdmFyIGVyciA9IGdsLmdldEVy
cm9yKCk7CisgIHZhciBuZHggPSBnbEVycm9ycy5pbmRleE9mKGVycik7CisgIHZhciBlcnJTdHJz
ID0gW107CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBnbEVycm9ycy5sZW5ndGg7ICsraWkpIHsK
KyAgICBlcnJTdHJzLnB1c2goZm5FcnJTdHIoZ2xFcnJvcnNbaWldKSk7CisgIH0KKyAgdmFyIGV4
cGVjdGVkID0gZXJyU3Rycy5qb2luKCIgb3IgIik7CisgIGlmIChuZHggPCAwKSB7CisgICAgdmFy
IG1zZyA9ICJnZXRFcnJvciBleHBlY3RlZCIgKyAoKGdsRXJyb3JzLmxlbmd0aCA+IDEpID8gIiBv
bmUgb2Y6ICIgOiAiOiAiKTsKKyAgICB0ZXN0RmFpbGVkKG1zZyArIGV4cGVjdGVkICsgICIuIFdh
cyAiICsgZm5FcnJTdHIoZXJyKSArICIgOiAiICsgb3B0X21zZyk7CisgIH0gZWxzZSBpZiAocmVw
b3J0U3VjY2Vzc2VzKSB7CisgICAgdmFyIG1zZyA9ICJnZXRFcnJvciB3YXMgIiArICgoZ2xFcnJv
cnMubGVuZ3RoID4gMSkgPyAib25lIG9mOiAiIDogImV4cGVjdGVkIHZhbHVlOiAiKTsKKyAgICB0
ZXN0UGFzc2VkKG1zZyArIGV4cGVjdGVkICsgIiA6ICIgKyBvcHRfbXNnKTsKKyAgfQorICByZXR1
cm4gZXJyOworfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IGEgZnVuY3Rpb24gdGhyb3dzIG9yIG5v
dC4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2Uu
CisgKiBAcGFyYW0gdGhyb3dUeXBlIFR5cGUgb2YgdGhyb3duIGVycm9yIChlLmcuIFR5cGVFcnJv
ciksIG9yIGZhbHNlLgorICogQHBhcmFtIHtzdHJpbmd9IGluZm8gSW5mbyBvbiB3aGF0J3MgYmVp
bmcgdGVzdGVkCisgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jIHRvIHRlc3QuCisg
Ki8KK3ZhciBzaG91bGRUaHJvdyA9IGZ1bmN0aW9uKGdsLCB0aHJvd1R5cGUsIGluZm8sIGZ1bmMp
IHsKKyAgd2hpbGUgKGdsLmdldEVycm9yKCkpIHt9CisKKyAgdmFyIHNob3VsZFRocm93ID0gKHRo
cm93VHlwZSAhPSBmYWxzZSk7CisKKyAgdHJ5IHsKKyAgICBmdW5jKCk7CisKKyAgICBpZiAoc2hv
dWxkVGhyb3cpIHsKKyAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCB0aHJvdyBhICIgKyB0aHJvd1R5
cGUubmFtZSArICI6ICIgKyBpbmZvKTsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdFBhc3NlZCgi
U2hvdWxkIG5vdCBoYXZlIHRocm93bjogIiArIGluZm8pOworICAgIH0KKyAgfSBjYXRjaCAoZSkg
eworICAgIGlmIChzaG91bGRUaHJvdykgeworICAgICAgaWYgKGUgaW5zdGFuY2VvZiB0aHJvd1R5
cGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIHRocm93IGEgIiArIHRocm93VHlwZS5u
YW1lICsgIjogIiArIGluZm8pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgi
U2hvdWxkIHRocm93IGEgIiArIHRocm93VHlwZS5uYW1lICsgIiwgdGhyZXcgIiArIGUubmFtZSAr
ICI6ICIgKyBpbmZvKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgi
U2hvdWxkIG5vdCBoYXZlIHRocm93bjogIiArIGluZm8pOworICAgIH0KKworICAgIGlmIChnbC5n
ZXRFcnJvcigpKSB7CisgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgbm90IGdlbmVyYXRlIGFuIGVy
cm9yIHdoZW4gdGhyb3dpbmc6ICIgKyBpbmZvKTsKKyAgICB9CisgIH0KKworICB3aGlsZSAoZ2wu
Z2V0RXJyb3IoKSkge30KK307CisKKy8qKgorICogTGlua3MgYSBXZWJHTCBwcm9ncmFtLCB0aHJv
d3MgaWYgdGhlcmUgYXJlIGVycm9ycy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4
dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFXZWJH
TFByb2dyYW19IHByb2dyYW0gVGhlIFdlYkdMUHJvZ3JhbSB0byBsaW5rLgorICogQHBhcmFtIHtm
dW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJy
b3JzLgorICovCit2YXIgbGlua1Byb2dyYW0gPSBmdW5jdGlvbihnbCwgcHJvZ3JhbSwgb3B0X2Vy
cm9yQ2FsbGJhY2spIHsKKyAgdmFyIGVyckZuID0gb3B0X2Vycm9yQ2FsbGJhY2sgfHwgdGVzdEZh
aWxlZDsKKyAgLy8gTGluayB0aGUgcHJvZ3JhbQorICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsK
KworICAvLyBDaGVjayB0aGUgbGluayBzdGF0dXMKKyAgdmFyIGxpbmtlZCA9IGdsLmdldFByb2dy
YW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpOworICBpZiAoIWxpbmtlZCkgewor
ICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKKyAgICB2YXIgZXJyb3Ig
PSBnbC5nZXRQcm9ncmFtSW5mb0xvZyAocHJvZ3JhbSk7CisKKyAgICBlcnJGbigiRXJyb3IgaW4g
cHJvZ3JhbSBsaW5raW5nOiIgKyBlcnJvcik7CisKKyAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dy
YW0pOworICB9Cit9OworCisvKioKKyAqIExvYWRzIHRleHQgZnJvbSBhbiBleHRlcm5hbCBmaWxl
LiBUaGlzIGZ1bmN0aW9uIGlzIGFzeW5jaHJvbm91cy4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwg
VGhlIHVybCBvZiB0aGUgZXh0ZXJuYWwgZmlsZS4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKGJvb2ws
IHN0cmluZyk6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2VudCBhIGJvb2wgZm9yCisgKiAgICAg
c3VjY2VzcyBhbmQgdGhlIHN0cmluZy4KKyAqLwordmFyIGxvYWRUZXh0RmlsZUFzeW5jID0gZnVu
Y3Rpb24odXJsLCBjYWxsYmFjaykgeworICBsb2cgKCJsb2FkaW5nOiAiICsgdXJsKTsKKyAgdmFy
IGVycm9yID0gJ2xvYWRUZXh0RmlsZUFzeW5jIGZhaWxlZCB0byBsb2FkIHVybCAiJyArIHVybCAr
ICciJzsKKyAgdmFyIHJlcXVlc3Q7CisgIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpIHsKKyAg
ICByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgaWYgKHJlcXVlc3Qub3ZlcnJp
ZGVNaW1lVHlwZSkgeworICAgICAgcmVxdWVzdC5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWlu
Jyk7CisgICAgfQorICB9IGVsc2UgeworICAgIHRocm93ICdYTUxIdHRwUmVxdWVzdCBpcyBkaXNh
YmxlZCc7CisgIH0KKyAgdHJ5IHsKKyAgICByZXF1ZXN0Lm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7
CisgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKyAgICAgIGlm
IChyZXF1ZXN0LnJlYWR5U3RhdGUgPT0gNCkgeworICAgICAgICB2YXIgdGV4dCA9ICcnOworICAg
ICAgICAvLyBIVFRQIHJlcG9ydHMgc3VjY2VzcyB3aXRoIGEgMjAwIHN0YXR1cy4gVGhlIGZpbGUg
cHJvdG9jb2wgcmVwb3J0cworICAgICAgICAvLyBzdWNjZXNzIHdpdGggemVyby4gSFRUUCBkb2Vz
IG5vdCB1c2UgemVybyBhcyBhIHN0YXR1cyBjb2RlICh0aGV5CisgICAgICAgIC8vIHN0YXJ0IGF0
IDEwMCkuCisgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL0VuL1VzaW5n
X1hNTEh0dHBSZXF1ZXN0CisgICAgICAgIHZhciBzdWNjZXNzID0gcmVxdWVzdC5zdGF0dXMgPT0g
MjAwIHx8IHJlcXVlc3Quc3RhdHVzID09IDA7CisgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAg
ICAgICAgdGV4dCA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OworICAgICAgICAgIGxvZygiY29tcGxl
dGVkIGxvYWQgcmVxdWVzdDogIiArIHVybCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
bG9nKCJsb2FkaW5nICIgKyB1cmwgKyAiIHJlc3VsdGVkIGluIHVuZXhwZWN0ZWQgc3RhdHVzOiAi
ICsgcmVxdWVzdC5zdGF0dXMgKyAiICIgKyByZXF1ZXN0LnN0YXR1c1RleHQpOworICAgICAgICB9
CisgICAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIHRleHQpOworICAgICAgfQorICAgIH07CisgICAg
cmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXJyb3JFdmVudCkgeworICAgICAgbG9nKCJlcnJv
ciBvY2N1cnJlZCBsb2FkaW5nICIgKyB1cmwpOworICAgICAgY2FsbGJhY2soZmFsc2UsICcnKTsK
KyAgICB9OworICAgIHJlcXVlc3Quc2VuZChudWxsKTsKKyAgfSBjYXRjaCAoZXJyKSB7CisgICAg
bG9nKCJmYWlsZWQgdG8gbG9hZDogIiArIHVybCArICIgd2l0aCBleGNlcHRpb24gIiArIGVyci5t
ZXNzYWdlKTsKKyAgICBjYWxsYmFjayhmYWxzZSwgJycpOworICB9Cit9OworCisvKioKKyAqIFJl
Y3Vyc2l2ZWx5IGxvYWRzIGEgZmlsZSBhcyBhIGxpc3QuIEVhY2ggbGluZSBpcyBwYXJzZWQgZm9y
IGEgcmVsYXRpdmUKKyAqIHBhdGguIElmIHRoZSBmaWxlIGVuZHMgaW4gLnR4dCB0aGUgY29udGVu
dHMgb2YgdGhhdCBmaWxlIGlzIGluc2VydGVkIGluCisgKiB0aGUgbGlzdC4KKyAqCisgKiBAcGFy
YW0ge3N0cmluZ30gdXJsIFRoZSB1cmwgb2YgdGhlIGV4dGVybmFsIGZpbGUuCisgKiBAcGFyYW0g
eyFmdW5jdGlvbihib29sLCBBcnJheTxzdHJpbmc+KTogdm9pZH0gY2FsbGJhY2sgdGhhdCBpcyBz
ZW50IGEgYm9vbAorICogICAgIGZvciBzdWNjZXNzIGFuZCB0aGUgYXJyYXkgb2Ygc3RyaW5ncy4K
KyAqLwordmFyIGdldEZpbGVMaXN0QXN5bmMgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Cisg
IHZhciBmaWxlcyA9IFtdOworCisgIHZhciBnZXRGaWxlTGlzdEltcGwgPSBmdW5jdGlvbih1cmws
IGNhbGxiYWNrKSB7CisgICAgdmFyIGZpbGVzID0gW107CisgICAgaWYgKHVybC5zdWJzdHIodXJs
Lmxlbmd0aCAtIDQpID09ICcudHh0JykgeworICAgICAgbG9hZFRleHRGaWxlQXN5bmModXJsLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIHRleHQpIHsKKyAg
ICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBsaW5lcyA9
IHRleHQuc3BsaXQoJ1xuJyk7CisgICAgICAgICAgdmFyIHByZWZpeCA9ICcnOworICAgICAgICAg
IHZhciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2YoJy8nKTsKKyAgICAgICAgICBpZiAobGFz
dFNsYXNoID49IDApIHsKKyAgICAgICAgICAgIHByZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFzdFNs
YXNoICsgMSk7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBmYWlsID0gZmFsc2U7CisgICAg
ICAgICAgdmFyIGNvdW50ID0gMTsKKyAgICAgICAgICB2YXIgaW5kZXggPSAwOworICAgICAgICAg
IGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgICAg
IHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxzXHMqLywgJycpLnJlcGxhY2UoL1xzXHMq
JC8sICcnKTsKKyAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoID4gNCAmJgorICAgICAgICAgICAg
ICAgIHN0clswXSAhPSAnIycgJiYKKyAgICAgICAgICAgICAgICBzdHJbMF0gIT0gIjsiICYmCisg
ICAgICAgICAgICAgICAgc3RyLnN1YnN0cigwLCAyKSAhPSAiLy8iKSB7CisgICAgICAgICAgICAg
IHZhciBuYW1lcyA9IHN0ci5zcGxpdCgvICsvKTsKKyAgICAgICAgICAgICAgdmFyIG5ld191cmwg
PSBwcmVmaXggKyBzdHI7CisgICAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPT0gMSkgewor
ICAgICAgICAgICAgICAgIG5ld191cmwgPSBwcmVmaXggKyBzdHI7CisgICAgICAgICAgICAgICAg
Kytjb3VudDsKKyAgICAgICAgICAgICAgICBnZXRGaWxlTGlzdEltcGwobmV3X3VybCwgZnVuY3Rp
b24oaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCBu
ZXdfZmlsZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJnb3QgZmlsZXM6ICIgKyBuZXdf
ZmlsZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICBmaWxlc1tpbmRleF0gPSBuZXdfZmlsZXM7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZmluaXNoKHN1Y2Nlc3MpOworICAgICAgICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KGluZGV4KyspKTsKKyAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgcyA9ICIiOworICAgICAgICAgICAgICAgIHZh
ciBwID0gIiI7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG5hbWVzLmxl
bmd0aDsgKytqaikgeworICAgICAgICAgICAgICAgICAgcyArPSBwICsgcHJlZml4ICsgbmFtZXNb
ampdOworICAgICAgICAgICAgICAgICAgcCA9ICIgIjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgZmlsZXNbaW5kZXgrK10gPSBzOworICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGZpbmlzaCh0cnVlKTsKKworICAgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaChzdWNjZXNzKSB7CisgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsK
KyAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAt
LWNvdW50OworICAgICAgICAgICAgbG9nKCJjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAg
IGlmICghY291bnQpIHsKKyAgICAgICAgICAgICAgY2FsbGJhY2soIWZhaWwsIGZpbGVzKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0oKSk7CisKKyAgICB9
IGVsc2UgeworICAgICAgZmlsZXMucHVzaCh1cmwpOworICAgICAgY2FsbGJhY2sodHJ1ZSwgZmls
ZXMpOworICAgIH0KKyAgfTsKKworICBnZXRGaWxlTGlzdEltcGwodXJsLCBmdW5jdGlvbihzdWNj
ZXNzLCBmaWxlcykgeworICAgIC8vIGZsYXR0ZW4KKyAgICB2YXIgZmxhdCA9IFtdOworICAgIGZs
YXR0ZW4oZmlsZXMpOworICAgIGZ1bmN0aW9uIGZsYXR0ZW4oZmlsZXMpIHsKKyAgICAgIGZvciAo
dmFyIGlpID0gMDsgaWkgPCBmaWxlcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgdmFyIHZhbHVl
ID0gZmlsZXNbaWldOworICAgICAgICBpZiAodHlwZW9mKHZhbHVlKSA9PSAic3RyaW5nIikgewor
ICAgICAgICAgIGZsYXQucHVzaCh2YWx1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ZmxhdHRlbih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgY2FsbGJhY2so
c3VjY2VzcywgZmxhdCk7CisgIH0pOworfTsKKworLyoqCisgKiBHZXRzIGEgZmlsZSBmcm9tIGEg
ZmlsZS9VUkwuCisgKiBAcGFyYW0ge3N0cmluZ30gZmlsZSB0aGUgVVJMIG9mIHRoZSBmaWxlIHRv
IGdldC4KKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlLgorICov
Cit2YXIgcmVhZEZpbGUgPSBmdW5jdGlvbihmaWxlKSB7CisgIHZhciB4aHIgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKKyAgeGhyLm9wZW4oIkdFVCIsIGZpbGUsIGZhbHNlKTsKKyAgeGhyLm92ZXJy
aWRlTWltZVR5cGUoInRleHQvcGxhaW4iKTsKKyAgeGhyLnNlbmQoKTsKKyAgcmV0dXJuIHhoci5y
ZXNwb25zZVRleHQucmVwbGFjZSgvXHIvZywgIiIpOworfTsKKwordmFyIHJlYWRGaWxlTGlzdCA9
IGZ1bmN0aW9uKHVybCkgeworICB2YXIgZmlsZXMgPSBbXTsKKyAgaWYgKHVybC5zdWJzdHIodXJs
Lmxlbmd0aCAtIDQpID09ICcudHh0JykgeworICAgIHZhciBsaW5lcyA9IHJlYWRGaWxlKHVybCku
c3BsaXQoJ1xuJyk7CisgICAgdmFyIHByZWZpeCA9ICcnOworICAgIHZhciBsYXN0U2xhc2ggPSB1
cmwubGFzdEluZGV4T2YoJy8nKTsKKyAgICBpZiAobGFzdFNsYXNoID49IDApIHsKKyAgICAgIHBy
ZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFzdFNsYXNoICsgMSk7CisgICAgfQorICAgIGZvciAodmFy
IGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgIHZhciBzdHIgPSBsaW5l
c1tpaV0ucmVwbGFjZSgvXlxzXHMqLywgJycpLnJlcGxhY2UoL1xzXHMqJC8sICcnKTsKKyAgICAg
IGlmIChzdHIubGVuZ3RoID4gNCAmJgorICAgICAgICAgIHN0clswXSAhPSAnIycgJiYKKyAgICAg
ICAgICBzdHJbMF0gIT0gIjsiICYmCisgICAgICAgICAgc3RyLnN1YnN0cigwLCAyKSAhPSAiLy8i
KSB7CisgICAgICAgIHZhciBuYW1lcyA9IHN0ci5zcGxpdCgvICsvKTsKKyAgICAgICAgaWYgKG5h
bWVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgdmFyIG5ld191cmwgPSBwcmVmaXggKyBzdHI7
CisgICAgICAgICAgZmlsZXMgPSBmaWxlcy5jb25jYXQocmVhZEZpbGVMaXN0KG5ld191cmwpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB2YXIgcyA9ICIiOworICAgICAgICAgIHZhciBw
ID0gIiI7CisgICAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG5hbWVzLmxlbmd0aDsgKytq
aikgeworICAgICAgICAgICAgcyArPSBwICsgcHJlZml4ICsgbmFtZXNbampdOworICAgICAgICAg
ICAgcCA9ICIgIjsKKyAgICAgICAgICB9CisgICAgICAgICAgZmlsZXMucHVzaChzKTsKKyAgICAg
ICAgfQorICAgICAgfQorICAgIH0KKyAgfSBlbHNlIHsKKyAgICBmaWxlcy5wdXNoKHVybCk7Cisg
IH0KKyAgcmV0dXJuIGZpbGVzOworfTsKKworLyoqCisgKiBMb2FkcyBhIHNoYWRlci4KKyAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gc2hhZGVyU291cmNlIFRoZSBzaGFkZXIgc291
cmNlLgorICogQHBhcmFtIHtudW1iZXJ9IHNoYWRlclR5cGUgVGhlIHR5cGUgb2Ygc2hhZGVyLgor
ICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBjYWxs
YmFjayBmb3IgZXJyb3JzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9nU2hhZGVycyBXaGV0
aGVyIHRvIGxvZyBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF9zaGFkZXJM
YWJlbCBMYWJlbCB0aGF0IGlkZW50aWZpZXMgdGhlIHNoYWRlciBzb3VyY2UgaW4KKyAqICAgICB0
aGUgbG9nLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF91cmwgVVJMIGZyb20gd2hlcmUgdGhlIHNo
YWRlciBzb3VyY2Ugd2FzIGxvYWRlZCBmcm9tLgorICogICAgIElmIG9wdF9sb2dTaGFkZXJzIGlz
IHNldCwgdGhlbiBhIGxpbmsgdG8gdGhlIHNvdXJjZSBmaWxlIHdpbGwgYWxzbyBiZQorICogICAg
IGFkZGVkLgorICogQHBhcmFtIHtib29sZWFufSBTa2lwIGNvbXBpbGF0aW9uIHN0YXR1cyBjaGVj
ay4gRGVmYXVsdCA9IGZhbHNlLgorICogQHJldHVybiB7IVdlYkdMU2hhZGVyfSBUaGUgY3JlYXRl
ZCBzaGFkZXIuCisgKi8KK3ZhciBsb2FkU2hhZGVyID0gZnVuY3Rpb24oCisgICAgZ2wsIHNoYWRl
clNvdXJjZSwgc2hhZGVyVHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJzLAor
ICAgIG9wdF9zaGFkZXJMYWJlbCwgb3B0X3VybCwgb3B0X3NraXBDb21waWxlU3RhdHVzKSB7Cisg
IHZhciBlcnJGbiA9IG9wdF9lcnJvckNhbGxiYWNrIHx8IGVycm9yOworICAvLyBDcmVhdGUgdGhl
IHNoYWRlciBvYmplY3QKKyAgdmFyIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihzaGFkZXJUeXBl
KTsKKyAgaWYgKHNoYWRlciA9PSBudWxsKSB7CisgICAgZXJyRm4oIioqKiBFcnJvcjogdW5hYmxl
IHRvIGNyZWF0ZSBzaGFkZXIgJyIrc2hhZGVyU291cmNlKyInIik7CisgICAgcmV0dXJuIG51bGw7
CisgIH0KKworICAvLyBMb2FkIHRoZSBzaGFkZXIgc291cmNlCisgIGdsLnNoYWRlclNvdXJjZShz
aGFkZXIsIHNoYWRlclNvdXJjZSk7CisKKyAgLy8gQ29tcGlsZSB0aGUgc2hhZGVyCisgIGdsLmNv
bXBpbGVTaGFkZXIoc2hhZGVyKTsKKworICBpZiAob3B0X2xvZ1NoYWRlcnMpIHsKKyAgICB2YXIg
bGFiZWwgPSBzaGFkZXJUeXBlID09IGdsLlZFUlRFWF9TSEFERVIgPyAndmVydGV4IHNoYWRlcicg
OiAnZnJhZ21lbnRfc2hhZGVyJzsKKyAgICBpZiAob3B0X3NoYWRlckxhYmVsKSB7CisgICAgICBs
YWJlbCA9IG9wdF9zaGFkZXJMYWJlbCArICcgJyArIGxhYmVsOworICAgIH0KKyAgICBhZGRTaGFk
ZXJTb3VyY2VzKAorICAgICAgICBnbCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KSwgbGFiZWwsIHNoYWRlciwgc2hhZGVyU291cmNlLCBvcHRfdXJsKTsKKyAgfQorCisgIC8vIENo
ZWNrIHRoZSBjb21waWxlIHN0YXR1cworICBpZiAoIW9wdF9za2lwQ29tcGlsZVN0YXR1cykgewor
ICAgIHZhciBjb21waWxlZCA9IGdsLmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIGdsLkNPTVBJ
TEVfU1RBVFVTKTsKKyAgICBpZiAoIWNvbXBpbGVkKSB7CisgICAgICAvLyBTb21ldGhpbmcgd2Vu
dCB3cm9uZyBkdXJpbmcgY29tcGlsYXRpb247IGdldCB0aGUgZXJyb3IKKyAgICAgIGxhc3RFcnJv
ciA9IGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKKyAgICAgIGVyckZuKCIqKiogRXJyb3Ig
Y29tcGlsaW5nICIgKyBnbEVudW1Ub1N0cmluZyhnbCwgc2hhZGVyVHlwZSkgKyAiICciICsgc2hh
ZGVyICsgIic6IiArIGxhc3RFcnJvcik7CisgICAgICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsK
KyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfQorCisgIHJldHVybiBzaGFkZXI7Cit9CisK
Ky8qKgorICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIFVSTC4KKyAqIEBwYXJhbSB7IVdlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0ge2ZpbGV9IGZpbGUgVGhlIFVSTCBvZiB0aGUgc2hhZGVyIHNvdXJjZS4KKyAqIEBwYXJh
bSB7bnVtYmVyfSB0eXBlIFRoZSB0eXBlIG9mIHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAq
IEBwYXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0byBsb2cgc2hhZGVyIHNv
dXJjZS4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gU2tpcCBjb21waWxhdGlvbiBzdGF0dXMgY2hlY2su
IERlZmF1bHQgPSBmYWxzZS4KKyAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0gVGhlIGNyZWF0ZWQg
c2hhZGVyLgorICovCit2YXIgbG9hZFNoYWRlckZyb21GaWxlID0gZnVuY3Rpb24oCisgICAgZ2ws
IGZpbGUsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycywgb3B0X3NraXBD
b21waWxlU3RhdHVzKSB7CisgIHZhciBzaGFkZXJTb3VyY2UgPSByZWFkRmlsZShmaWxlKTsKKyAg
cmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNoYWRlclNvdXJjZSwgdHlwZSwgb3B0X2Vycm9yQ2FsbGJh
Y2ssCisgICAgICBvcHRfbG9nU2hhZGVycywgdW5kZWZpbmVkLCBmaWxlLCBvcHRfc2tpcENvbXBp
bGVTdGF0dXMpOworfTsKKwordmFyIGxvYWRTaGFkZXJGcm9tRmlsZUFzeW5jID0gZnVuY3Rpb24o
CisgICAgZ2wsIGZpbGUsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycywg
b3B0X3NraXBDb21waWxlU3RhdHVzLCBjYWxsYmFjaykgeworICBsb2FkVGV4dEZpbGVBc3luYyhm
aWxlLCBmdW5jdGlvbihnbCwgdHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJz
LCBmaWxlLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpeworICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1
Y2Nlc3MsIHNoYWRlclNvdXJjZSkgeworICAgICAgICBpZiAoc3VjY2VzcykgeworICAgICAgICAg
IHZhciBzaGFkZXIgPSBsb2FkU2hhZGVyKGdsLCBzaGFkZXJTb3VyY2UsIHR5cGUsIG9wdF9lcnJv
ckNhbGxiYWNrLAorICAgICAgICAgICAgICBvcHRfbG9nU2hhZGVycywgdW5kZWZpbmVkLCBmaWxl
LCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpOworICAgICAgICAgIGNhbGxiYWNrKHRydWUsIHNoYWRl
cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgY2FsbGJhY2soZmFsc2UsIG51bGwpOwor
ICAgICAgICB9CisgICAgICB9CisgIH0oZ2wsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRf
bG9nU2hhZGVycywgZmlsZSwgb3B0X3NraXBDb21waWxlU3RhdHVzKSk7Cit9OworCisvKioKKyAq
IEdldHMgdGhlIGNvbnRlbnQgb2Ygc2NyaXB0LgorICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdElk
IFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvbnRl
bnQgb2YgdGhlIHNjcmlwdC4KKyAqLwordmFyIGdldFNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElk
KSB7CisgIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHRJ
ZCk7CisgIGlmICghc2hhZGVyU2NyaXB0KSB7CisgICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93
biBzY3JpcHQgZWxlbWVudCAiICsgc2NyaXB0SWQpOworICB9CisgIHJldHVybiBzaGFkZXJTY3Jp
cHQudGV4dDsKK307CisKKy8qKgorICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIHNjcmlwdCB0YWcu
CisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdElkIFRoZSBpZCBvZiB0
aGUgc2NyaXB0IHRhZy4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfc2hhZGVyVHlwZSBUaGUgdHlw
ZSBvZiBzaGFkZXIuIElmIG5vdCBwYXNzZWQgaW4gaXQgd2lsbAorICogICAgIGJlIGRlcml2ZWQg
ZnJvbSB0aGUgdHlwZSBvZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3Ry
aW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqIEBw
YXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0byBsb2cgc2hhZGVyIHNvdXJj
ZS4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gU2tpcCBjb21waWxhdGlvbiBzdGF0dXMgY2hlY2suIERl
ZmF1bHQgPSBmYWxzZS4KKyAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0gVGhlIGNyZWF0ZWQgc2hh
ZGVyLgorICovCit2YXIgbG9hZFNoYWRlckZyb21TY3JpcHQgPSBmdW5jdGlvbigKKyAgICBnbCwg
c2NyaXB0SWQsIG9wdF9zaGFkZXJUeXBlLCBvcHRfZXJyb3JDYWxsYmFjaywgb3B0X2xvZ1NoYWRl
cnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cykgeworICB2YXIgc2hhZGVyU291cmNlID0gIiI7Cisg
IHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHRJZCk7Cisg
IGlmICghc2hhZGVyU2NyaXB0KSB7CisgICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93biBzY3Jp
cHQgZWxlbWVudCAiICsgc2NyaXB0SWQpOworICB9CisgIHNoYWRlclNvdXJjZSA9IHNoYWRlclNj
cmlwdC50ZXh0LnRyaW0oKTsKKworICBpZiAoIW9wdF9zaGFkZXJUeXBlKSB7CisgICAgaWYgKHNo
YWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LXZlcnRleCIpIHsKKyAgICAgIG9wdF9zaGFk
ZXJUeXBlID0gZ2wuVkVSVEVYX1NIQURFUjsKKyAgICB9IGVsc2UgaWYgKHNoYWRlclNjcmlwdC50
eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50IikgeworICAgICAgb3B0X3NoYWRlclR5cGUgPSBn
bC5GUkFHTUVOVF9TSEFERVI7CisgICAgfSBlbHNlIHsKKyAgICAgIHRocm93KCIqKiogRXJyb3I6
IHVua25vd24gc2hhZGVyIHR5cGUiKTsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfQor
CisgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBzaGFkZXJTb3VyY2UsIG9wdF9zaGFkZXJUeXBlLCBv
cHRfZXJyb3JDYWxsYmFjaywKKyAgICAgIG9wdF9sb2dTaGFkZXJzLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKK307CisKK3ZhciBsb2FkU3RhbmRhcmRQcm9n
cmFtID0gZnVuY3Rpb24oZ2wpIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7
CisgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wp
KTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVy
KGdsKSk7CisgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAwLCAiYV92ZXJ0ZXgiKTsK
KyAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIDEsICJhX25vcm1hbCIpOworICBsaW5r
UHJvZ3JhbShnbCwgcHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKwordmFyIGxvYWRT
dGFuZGFyZFByb2dyYW1Bc3luYyA9IGZ1bmN0aW9uKGdsLCBjYWxsYmFjaykgeworICBsb2FkU3Rh
bmRhcmRWZXJ0ZXhTaGFkZXJBc3luYyhnbCwgZnVuY3Rpb24oZ2wpIHsKKyAgICByZXR1cm4gZnVu
Y3Rpb24oc3VjY2VzcywgdnMpIHsKKyAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgIGxvYWRT
dGFuZGFyZEZyYWdtZW50U2hhZGVyQXN5bmMoZ2wsIGZ1bmN0aW9uKHZzKSB7CisgICAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIGZzKSB7CisgICAgICAgICAgICBpZiAoc3VjY2Vzcykg
eworICAgICAgICAgICAgICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgICAg
ICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTsKKyAgICAgICAgICAgICAgZ2wu
YXR0YWNoU2hhZGVyKHByb2dyYW0sIGZzKTsKKyAgICAgICAgICAgICAgZ2wuYmluZEF0dHJpYkxv
Y2F0aW9uKHByb2dyYW0sIDAsICJhX3ZlcnRleCIpOworICAgICAgICAgICAgICBnbC5iaW5kQXR0
cmliTG9jYXRpb24ocHJvZ3JhbSwgMSwgImFfbm9ybWFsIik7CisgICAgICAgICAgICAgIGxpbmtQ
cm9ncmFtKGdsLCBwcm9ncmFtKTsKKyAgICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgcHJvZ3Jh
bSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwg
bnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfTsKKyAgICAgICAgfSh2cykpOworICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgY2FsbGJhY2soZmFsc2UsIG51bGwpOworICAgICAgfQorICAg
IH07CisgIH0oZ2wpKTsKK307CisKKy8qKgorICogTG9hZHMgc2hhZGVycyBmcm9tIGZpbGVzLCBj
cmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kIGxpbmtzLgorICogQHBh
cmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhTaGFkZXJQYXRoIFRoZSBVUkwgb2Yg
dGhlIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTaGFkZXJQYXRo
IFRoZSBVUkwgb2YgdGhlIGZyYWdtZW50IHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3Ry
aW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqIEBy
ZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCisgKi8KK3ZhciBsb2Fk
UHJvZ3JhbUZyb21GaWxlID0gZnVuY3Rpb24oCisgICAgZ2wsIHZlcnRleFNoYWRlclBhdGgsIGZy
YWdtZW50U2hhZGVyUGF0aCwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIHByb2dyYW0gPSBn
bC5jcmVhdGVQcm9ncmFtKCk7CisgIHZhciB2cyA9IGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAg
IGdsLCB2ZXJ0ZXhTaGFkZXJQYXRoLCBnbC5WRVJURVhfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFj
ayk7CisgIHZhciBmcyA9IGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBmcmFnbWVudFNo
YWRlclBhdGgsIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spOworICBpZiAo
dnMgJiYgZnMpIHsKKyAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdnMpOworICAgIGdsLmF0
dGFjaFNoYWRlcihwcm9ncmFtLCBmcyk7CisgICAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9w
dF9lcnJvckNhbGxiYWNrKTsKKyAgfQorICBpZiAodnMpIHsKKyAgICBnbC5kZWxldGVTaGFkZXIo
dnMpOworICB9CisgIGlmIChmcykgeworICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7CisgIH0KKyAg
cmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBzY3JpcHQg
dGFncywgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFuZAorICogbGlu
a3MuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHZlcnRleFNjcmlwdElkIFRo
ZSBpZCBvZiB0aGUgc2NyaXB0IHRhZyB0aGF0IGNvbnRhaW5zIHRoZQorICogICAgICAgIHZlcnRl
eCBzaGFkZXIuCisgKiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTY3JpcHRJZCBUaGUgaWQgb2Yg
dGhlIHNjcmlwdCB0YWcgdGhhdCBjb250YWlucyB0aGUKKyAqICAgICAgICBmcmFnbWVudCBzaGFk
ZXIuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9wdF9lcnJvckNhbGxiYWNr
IGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfSBUaGUgY3Jl
YXRlZCBwcm9ncmFtLgorICovCit2YXIgbG9hZFByb2dyYW1Gcm9tU2NyaXB0ID0gZnVuY3Rpb24g
bG9hZFByb2dyYW1Gcm9tU2NyaXB0KAorICAgIGdsLCB2ZXJ0ZXhTY3JpcHRJZCwgZnJhZ21lbnRT
Y3JpcHRJZCwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQ
cm9ncmFtKCk7CisgIGdsLmF0dGFjaFNoYWRlcigKKyAgICAgIHByb2dyYW0sCisgICAgICBsb2Fk
U2hhZGVyRnJvbVNjcmlwdCgKKyAgICAgICAgICBnbCwgdmVydGV4U2NyaXB0SWQsIGdsLlZFUlRF
WF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKSk7CisgIGdsLmF0dGFjaFNoYWRlcigKKyAgICAg
IHByb2dyYW0sCisgICAgICBsb2FkU2hhZGVyRnJvbVNjcmlwdCgKKyAgICAgICAgICBnbCwgZnJh
Z21lbnRTY3JpcHRJZCwgIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spKTsK
KyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgcmV0dXJu
IHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0
ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKKyAqIGxpbmtzLgorICogQHBh
cmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7IVdlYkdMU2hhZGVyfSB2ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRl
eCBzaGFkZXIuCisgKiBAcGFyYW0geyFXZWJHTFNoYWRlcn0gZnJhZ21lbnRTaGFkZXIgVGhlIGZy
YWdtZW50IHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZH0gb3B0X2Vy
cm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dy
YW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCisgKi8KK3ZhciBjcmVhdGVQcm9ncmFtID0gZnVuY3Rp
b24oZ2wsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIsIG9wdF9lcnJvckNhbGxiYWNrKSB7
CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFkZXIo
cHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdt
ZW50U2hhZGVyKTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNr
KTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBz
b3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKKyAqIGxp
bmtzLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhTaGFkZXIgVGhl
IHZlcnRleCBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtzdHJpbmd9IGZyYWdtZW50U2hhZGVy
IFRoZSBmcmFnbWVudCBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcp
OiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgorICogQHBhcmFt
IHtib29sZWFufSBvcHRfbG9nU2hhZGVycyBXaGV0aGVyIHRvIGxvZyBzaGFkZXIgc291cmNlLgor
ICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KKyAqLwordmFy
IGxvYWRQcm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRT
aGFkZXIsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycykgeworICB2YXIgcHJvZ3Jh
bTsKKyAgdmFyIHZzID0gbG9hZFNoYWRlcigKKyAgICAgIGdsLCB2ZXJ0ZXhTaGFkZXIsIGdsLlZF
UlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycyk7CisgIHZhciBm
cyA9IGxvYWRTaGFkZXIoCisgICAgICBnbCwgZnJhZ21lbnRTaGFkZXIsIGdsLkZSQUdNRU5UX1NI
QURFUiwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJzKTsKKyAgaWYgKHZzICYmIGZz
KSB7CisgICAgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0oZ2wsIHZzLCBmcywgb3B0X2Vycm9yQ2Fs
bGJhY2spCisgIH0KKyAgaWYgKHZzKSB7CisgICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKKyAgfQor
ICBpZiAoZnMpIHsKKyAgICBnbC5kZWxldGVTaGFkZXIoZnMpOworICB9CisgIHJldHVybiBwcm9n
cmFtOworfTsKKworLyoqCisgKiBMb2FkcyBzaGFkZXJzIGZyb20gc291cmNlLCBjcmVhdGVzIGEg
cHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kCisgKiBsaW5rcyBidXQgZXhwZWN0cyBl
cnJvci4KKyAqCisgKiBHTFNMIDEuMC4xNyAxMC4yNyBlZmZlY3RpdmVseSBzYXlzIHRoYXQgY29t
cGlsZVNoYWRlciBjYW4KKyAqIGFsd2F5cyBzdWNjZWVkIGFzIGxvbmcgYXMgbGlua1Byb2dyYW0g
ZmFpbHMgc28gd2UgY2FuJ3QKKyAqIHJlbHkgb24gY29tcGlsZVNoYWRlciBmYWlsaW5nLiBUaGlz
IGZ1bmN0aW9uIGV4cGVjdHMKKyAqIG9uZSBvZiB0aGUgc2hhZGVyIHRvIGZhaWwgT1IgbGlua2lu
ZyB0byBmYWlsLgorICoKKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhl
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4
U2hhZGVyU2NyaXB0SWQgVGhlIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0ge3N0cmluZ30gZnJh
Z21lbnRTaGFkZXJTY3JpcHRJZCBUaGUgZnJhZ21lbnQgc2hhZGVyLgorICogQHJldHVybiB7V2Vi
R0xQcm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFtLgorICovCit2YXIgbG9hZFByb2dyYW1Gcm9t
U2NyaXB0RXhwZWN0RXJyb3IgPSBmdW5jdGlvbigKKyAgICBnbCwgdmVydGV4U2hhZGVyU2NyaXB0
SWQsIGZyYWdtZW50U2hhZGVyU2NyaXB0SWQpIHsKKyAgdmFyIHZlcnRleFNoYWRlciA9IGxvYWRT
aGFkZXJGcm9tU2NyaXB0KGdsLCB2ZXJ0ZXhTaGFkZXJTY3JpcHRJZCk7CisgIGlmICghdmVydGV4
U2hhZGVyKSB7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKyAgdmFyIGZyYWdtZW50U2hhZGVyID0g
bG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIGZyYWdtZW50U2hhZGVyU2NyaXB0SWQpOworICBpZiAo
IWZyYWdtZW50U2hhZGVyKSB7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKyAgdmFyIGxpbmtTdWNj
ZXNzID0gdHJ1ZTsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgIGdsLmF0
dGFjaFNoYWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOworICBnbC5hdHRhY2hTaGFkZXIocHJv
Z3JhbSwgZnJhZ21lbnRTaGFkZXIpOworICBsaW5rU3VjY2VzcyA9IHRydWU7CisgIGxpbmtQcm9n
cmFtKGdsLCBwcm9ncmFtLCBmdW5jdGlvbigpIHsKKyAgICAgIGxpbmtTdWNjZXNzID0gZmFsc2U7
CisgICAgfSk7CisgIHJldHVybiBsaW5rU3VjY2VzcyA/IHByb2dyYW0gOiBudWxsOworfTsKKwor
Cit2YXIgZ2V0QWN0aXZlTWFwID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0sIHR5cGVJbmZvKSB7Cisg
IHZhciBudW1WYXJpYWJsZXMgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsW3R5
cGVJbmZvLnBhcmFtXSk7CisgIHZhciB2YXJpYWJsZXMgPSB7fTsKKyAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IG51bVZhcmlhYmxlczsgKytpaSkgeworICAgIHZhciBpbmZvID0gZ2xbdHlwZUluZm8u
YWN0aXZlRm5dKHByb2dyYW0sIGlpKTsKKyAgICB2YXJpYWJsZXNbaW5mby5uYW1lXSA9IHsKKyAg
ICAgIG5hbWU6IGluZm8ubmFtZSwKKyAgICAgIHNpemU6IGluZm8uc2l6ZSwKKyAgICAgIHR5cGU6
IGluZm8udHlwZSwKKyAgICAgIGxvY2F0aW9uOiBnbFt0eXBlSW5mby5sb2NGbl0ocHJvZ3JhbSwg
aW5mby5uYW1lKQorICAgIH07CisgIH0KKyAgcmV0dXJuIHZhcmlhYmxlczsKK307CisKKy8qKgor
ICogUmV0dXJucyBhIG1hcCBvZiBhdHRyaWIgbmFtZXMgdG8gaW5mbyBhYm91dCB0aG9zZQorICog
YXR0cmlicy4KKyAqCisgKiBlZzoKKyAqICAgIHsgImF0dHJpYjFOYW1lIjoKKyAqICAgICAgewor
ICogICAgICAgIG5hbWU6ICJhdHRyaWIxTmFtZSIsCisgKiAgICAgICAgc2l6ZTogMSwKKyAqICAg
ICAgICB0eXBlOiBnbC5GTE9BVF9NQVQyLAorICogICAgICAgIGxvY2F0aW9uOiAwCisgKiAgICAg
IH0sCisgKiAgICAgICJhdHRyaWIyTmFtZVswXSI6CisgKiAgICAgIHsKKyAqICAgICAgICAgbmFt
ZTogImF0dHJpYjJOYW1lWzBdIiwKKyAqICAgICAgICAgc2l6ZTogNCwKKyAqICAgICAgICAgdHlw
ZTogZ2wuRkxPQVQsCisgKiAgICAgICAgIGxvY2F0aW9uOiAxCisgKiAgICAgIH0sCisgKiAgICB9
CisgKgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3Jh
bSB0byBxdWVyeSBmb3IgYXR0cmlicy4KKyAqIEByZXR1cm4gdGhlIG1hcC4KKyAqLwordmFyIGdl
dEF0dHJpYk1hcCA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtKSB7CisgIHJldHVybiBnZXRBY3RpdmVN
YXAoZ2wsIHByb2dyYW0sIHsKKyAgICAgIHBhcmFtOiAiQUNUSVZFX0FUVFJJQlVURVMiLAorICAg
ICAgYWN0aXZlRm46ICJnZXRBY3RpdmVBdHRyaWIiLAorICAgICAgbG9jRm46ICJnZXRBdHRyaWJM
b2NhdGlvbiIKKyAgfSk7Cit9OworCisvKioKKyAqIFJldHVybnMgYSBtYXAgb2YgdW5pZm9ybSBu
YW1lcyB0byBpbmZvIGFib3V0IHRob3NlIHVuaWZvcm1zLgorICoKKyAqIGVnOgorICogICAgeyAi
dW5pZm9ybTFOYW1lIjoKKyAqICAgICAgeworICogICAgICAgIG5hbWU6ICJ1bmlmb3JtMU5hbWUi
LAorICogICAgICAgIHNpemU6IDEsCisgKiAgICAgICAgdHlwZTogZ2wuRkxPQVRfTUFUMiwKKyAq
ICAgICAgICBsb2NhdGlvbjogV2ViR0xVbmlmb3JtTG9jYXRpb24KKyAqICAgICAgfSwKKyAqICAg
ICAgInVuaWZvcm0yTmFtZVswXSI6CisgKiAgICAgIHsKKyAqICAgICAgICAgbmFtZTogInVuaWZv
cm0yTmFtZVswXSIsCisgKiAgICAgICAgIHNpemU6IDQsCisgKiAgICAgICAgIHR5cGU6IGdsLkZM
T0FULAorICogICAgICAgICBsb2NhdGlvbjogV2ViR0xVbmlmb3JtTG9jYXRpb24KKyAqICAgICAg
fSwKKyAqICAgIH0KKyAqCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRo
ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtXZWJHTFByb2dyYW19
IFRoZSBwcm9ncmFtIHRvIHF1ZXJ5IGZvciB1bmlmb3Jtcy4KKyAqIEByZXR1cm4gdGhlIG1hcC4K
KyAqLwordmFyIGdldFVuaWZvcm1NYXAgPSBmdW5jdGlvbihnbCwgcHJvZ3JhbSkgeworICByZXR1
cm4gZ2V0QWN0aXZlTWFwKGdsLCBwcm9ncmFtLCB7CisgICAgICBwYXJhbTogIkFDVElWRV9VTklG
T1JNUyIsCisgICAgICBhY3RpdmVGbjogImdldEFjdGl2ZVVuaWZvcm0iLAorICAgICAgbG9jRm46
ICJnZXRVbmlmb3JtTG9jYXRpb24iCisgIH0pOworfTsKKwordmFyIGJhc2VQYXRoOwordmFyIGdl
dFJlc291cmNlUGF0aCA9IGZ1bmN0aW9uKCkgeworICBpZiAoIWJhc2VQYXRoKSB7CisgICAgdmFy
IGV4cGVjdGVkQmFzZSA9ICJqcy93ZWJnbC10ZXN0LXV0aWxzLmpzIjsKKyAgICB2YXIgc2NyaXB0
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKTsKKyAgICBmb3IgKHZh
ciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKyspIHsKKyAgICAgIHZhciBz
cmMgPSBzY3JpcHQuc3JjOworICAgICAgdmFyIGwgPSBzcmMubGVuZ3RoOworICAgICAgaWYgKHNy
Yy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVjdGVkQmFzZSkgeworICAg
ICAgICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOwor
ICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gYmFzZVBhdGggKyAicmVzb3VyY2VzLyI7Cit9
OworCit2YXIgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgcmV0
dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBnZXRSZXNvdXJjZVBhdGgoKSArICJ2
ZXJ0ZXhTaGFkZXIudmVydCIsIGdsLlZFUlRFWF9TSEFERVIpOworfTsKK3ZhciBsb2FkU3RhbmRh
cmRWZXJ0ZXhTaGFkZXJBc3luYyA9IGZ1bmN0aW9uKGdsLCBjYWxsYmFjaykgeworICBsb2FkU2hh
ZGVyRnJvbUZpbGVBc3luYyhnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAidmVydGV4U2hhZGVyLnZl
cnQiLCBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBj
YWxsYmFjayk7Cit9OworCit2YXIgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIgPSBmdW5jdGlv
bihnbCkgeworICByZXR1cm4gbG9hZFNoYWRlckZyb21GaWxlKAorICAgICAgZ2wsIGdldFJlc291
cmNlUGF0aCgpICsgImZyYWdtZW50U2hhZGVyLmZyYWciLCBnbC5GUkFHTUVOVF9TSEFERVIpOwor
fTsKK3ZhciBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlckFzeW5jID0gZnVuY3Rpb24oZ2wsIGNh
bGxiYWNrKSB7CisgIGxvYWRTaGFkZXJGcm9tRmlsZUFzeW5jKGdsLCBnZXRSZXNvdXJjZVBhdGgo
KSArICJmcmFnbWVudFNoYWRlci5mcmFnIiwgZ2wuRlJBR01FTlRfU0hBREVSLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjYWxsYmFjayk7Cit9OworCit2YXIgbG9hZFVuaWZvcm1C
bG9ja1Byb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVBy
b2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRVbmlmb3JtQmxvY2tWZXJ0
ZXhTaGFkZXIoZ2wpKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRVbmlmb3JtQmxv
Y2tGcmFnbWVudFNoYWRlcihnbCkpOworICBnbC5iaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwg
MCwgImFfdmVydGV4Iik7CisgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAxLCAiYV9u
b3JtYWwiKTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0pOworICByZXR1cm4gcHJvZ3JhbTsK
K307CisKK3ZhciBsb2FkVW5pZm9ybUJsb2NrVmVydGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsK
KyAgcmV0dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBnZXRSZXNvdXJjZVBhdGgo
KSArICJ1bmlmb3JtQmxvY2tTaGFkZXIudmVydCIsIGdsLlZFUlRFWF9TSEFERVIpOworfTsKKwor
dmFyIGxvYWRVbmlmb3JtQmxvY2tGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7CisgIHJl
dHVybiBsb2FkU2hhZGVyRnJvbUZpbGUoCisgICAgICBnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAi
dW5pZm9ybUJsb2NrU2hhZGVyLmZyYWciLCBnbC5GUkFHTUVOVF9TSEFERVIpOworfTsKKworLyoq
CisgKiBMb2FkcyBhbiBpbWFnZSBhc3luY2hyb25vdXNseS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1
cmwgVVJMIG9mIGltYWdlIHRvIGxvYWQuCisgKiBAcGFyYW0geyFmdW5jdGlvbighRWxlbWVudCk6
IHZvaWR9IGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwKKyAqICAgICB3aXRoIGxvYWRlZCBpbWFn
ZS4KKyAqLwordmFyIGxvYWRJbWFnZUFzeW5jID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewor
ICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGltZy5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICBjYWxsYmFjayhpbWcpOworICB9OworICBpbWcuc3JjID0gdXJs
OworfTsKKworLyoqCisgKiBMb2FkcyBhbiBhcnJheSBvZiBpbWFnZXMuCisgKiBAcGFyYW0geyFB
cnJheS48c3RyaW5nPn0gdXJscyBVUkxzIG9mIGltYWdlcyB0byBsb2FkLgorICogQHBhcmFtIHsh
ZnVuY3Rpb24oIXtzdHJpbmcsIGltZ30pOiB2b2lkfSBjYWxsYmFjayBDYWxsYmFjaworICogICAg
IHRoYXQgZ2V0cyBwYXNzZWQgbWFwIG9mIHVybHMgdG8gaW1nIHRhZ3MuCisgKi8KK3ZhciBsb2Fk
SW1hZ2VzQXN5bmMgPSBmdW5jdGlvbih1cmxzLCBjYWxsYmFjaykgeworICB2YXIgY291bnQgPSAx
OworICB2YXIgaW1hZ2VzID0geyB9OworICBmdW5jdGlvbiBjb3VudERvd24oKSB7CisgICAgLS1j
b3VudDsKKyAgICBpZiAoY291bnQgPT0gMCkgeworICAgICAgbG9nKCJsb2FkSW1hZ2VzQXN5bmM6
IGFsbCBpbWFnZXMgbG9hZGVkIik7CisgICAgICBjYWxsYmFjayhpbWFnZXMpOworICAgIH0KKyAg
fQorICBmdW5jdGlvbiBpbWFnZUxvYWRlZCh1cmwpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oaW1n
KSB7CisgICAgICBpbWFnZXNbdXJsXSA9IGltZzsKKyAgICAgIGxvZygibG9hZEltYWdlc0FzeW5j
OiBsb2FkZWQgIiArIHVybCk7CisgICAgICBjb3VudERvd24oKTsKKyAgICB9CisgIH0KKyAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IHVybHMubGVuZ3RoOyArK2lpKSB7CisgICAgKytjb3VudDsKKyAg
ICBsb2FkSW1hZ2VBc3luYyh1cmxzW2lpXSwgaW1hZ2VMb2FkZWQodXJsc1tpaV0pKTsKKyAgfQor
ICBjb3VudERvd24oKTsKK307CisKKy8qKgorICogUmV0dXJucyBhIG1hcCBvZiBrZXk9dmFsdWUg
dmFsdWVzIGZyb20gdXJsLgorICogQHJldHVybiB7IU9iamVjdC48c3RyaW5nLCBudW1iZXI+fSBt
YXAgb2Yga2V5cyB0byB2YWx1ZXMuCisgKi8KK3ZhciBnZXRVcmxBcmd1bWVudHMgPSBmdW5jdGlv
bigpIHsKKyAgdmFyIGFyZ3MgPSB7fTsKKyAgdHJ5IHsKKyAgICB2YXIgcyA9IHdpbmRvdy5sb2Nh
dGlvbi5ocmVmOworICAgIHZhciBxID0gcy5pbmRleE9mKCI/Iik7CisgICAgdmFyIGUgPSBzLmlu
ZGV4T2YoIiMiKTsKKyAgICBpZiAoZSA8IDApIHsKKyAgICAgIGUgPSBzLmxlbmd0aDsKKyAgICB9
CisgICAgdmFyIHF1ZXJ5ID0gcy5zdWJzdHJpbmcocSArIDEsIGUpOworICAgIHZhciBwYWlycyA9
IHF1ZXJ5LnNwbGl0KCImIik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxlbmd0
aDsgKytpaSkgeworICAgICAgdmFyIGtleVZhbHVlID0gcGFpcnNbaWldLnNwbGl0KCI9Iik7Cisg
ICAgICB2YXIga2V5ID0ga2V5VmFsdWVbMF07CisgICAgICB2YXIgdmFsdWUgPSBkZWNvZGVVUklD
b21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgICAgYXJnc1trZXldID0gdmFsdWU7CisgICAgfQor
ICB9IGNhdGNoIChlKSB7CisgICAgdGhyb3cgImNvdWxkIG5vdCBwYXJzZSB1cmwiOworICB9Cisg
IHJldHVybiBhcmdzOworfTsKKworLyoqCisgKiBNYWtlcyBhbiBpbWFnZSBmcm9tIGEgc3JjLgor
ICogQHBhcmFtIHtzdHJpbmd9IHNyYyBJbWFnZSBzb3VyY2UgVVJMLgorICogQHBhcmFtIHtmdW5j
dGlvbigpfSBvbmxvYWQgQ2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBpbWFnZSBoYXMgZmluaXNl
ZCBsb2FkaW5nLgorICogQHBhcmFtIHtmdW5jdGlvbigpfSBvbmVycm9yIENhbGxiYWNrIHRvIGNh
bGwgd2hlbiBhbiBlcnJvciBvY2N1cnMuCisgKiBAcmV0dXJuIHshSW1hZ2V9IFRoZSBjcmVhdGVk
IGltYWdlLgorICovCit2YXIgbWFrZUltYWdlID0gZnVuY3Rpb24oc3JjLCBvbmxvYWQsIG9uZXJy
b3IpIHsKKyAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOworICBpZiAo
b25sb2FkKSB7CisgICAgaW1nLm9ubG9hZCA9IG9ubG9hZDsKKyAgfQorICBpZiAob25lcnJvcikg
eworICAgIGltZy5vbmVycm9yID0gb25lcnJvcjsKKyAgfSBlbHNlIHsKKyAgICBpbWcub25lcnJv
ciA9IGZ1bmN0aW9uKCkgeworICAgICAgbG9nKCJXQVJOSU5HOiBjcmVhdGluZyBpbWFnZSBmYWls
ZWQ7IHNyYzogIiArIHRoaXMuc3JjKTsKKyAgICB9OworICB9CisgIGlmIChzcmMpIHsKKyAgICBp
bWcuc3JjID0gc3JjOworICB9CisgIHJldHVybiBpbWc7Cit9CisKKy8qKgorICogTWFrZXMgYW4g
aW1hZ2UgZWxlbWVudCBmcm9tIGEgY2FudmFzLgorICogQHBhcmFtIHshSFRNTENhbnZhc30gY2Fu
dmFzIENhbnZhcyB0byBtYWtlIGltYWdlIGZyb20uCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCl9IG9u
bG9hZCBDYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGltYWdlIGhhcyBmaW5pc2VkIGxvYWRpbmcu
CisgKiBAcGFyYW0ge3N0cmluZ30gaW1hZ2VGb3JtYXQgSW1hZ2UgZm9ybWF0IHRvIGJlIHBhc3Nl
ZCB0byB0b0RhdGFVcmwoKS4KKyAqIEByZXR1cm4geyFJbWFnZX0gVGhlIGNyZWF0ZWQgaW1hZ2Uu
CisgKi8KK3ZhciBtYWtlSW1hZ2VGcm9tQ2FudmFzID0gZnVuY3Rpb24oY2FudmFzLCBvbmxvYWQs
IGltYWdlRm9ybWF0KSB7CisgIHJldHVybiBtYWtlSW1hZ2UoY2FudmFzLnRvRGF0YVVSTChpbWFn
ZUZvcm1hdCksIG9ubG9hZCk7Cit9OworCisvKioKKyAqIE1ha2VzIGEgdmlkZW8gZWxlbWVudCBm
cm9tIGEgc3JjLgorICogQHBhcmFtIHtzdHJpbmd9IHNyYyBWaWRlbyBzb3VyY2UgVVJMLgorICog
QHBhcmFtIHtmdW5jdGlvbigpfSBvbmVycm9yIENhbGxiYWNrIHRvIGNhbGwgd2hlbiBhbiBlcnJv
ciBvY2N1cnMuCisgKiBAcmV0dXJuIHshVmlkZW99IFRoZSBjcmVhdGVkIHZpZGVvLgorICovCit2
YXIgbWFrZVZpZGVvID0gZnVuY3Rpb24oc3JjLCBvbmVycm9yKSB7CisgIHZhciB2aWQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICB2aWQubXV0ZWQgPSB0cnVlOworICBpZiAo
b25lcnJvcikgeworICAgIHZpZC5vbmVycm9yID0gb25lcnJvcjsKKyAgfSBlbHNlIHsKKyAgICB2
aWQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgbG9nKCJXQVJOSU5HOiBjcmVhdGluZyB2
aWRlbyBmYWlsZWQ7IHNyYzogIiArIHRoaXMuc3JjKTsKKyAgICB9OworICB9CisgIGlmIChzcmMp
IHsKKyAgICB2aWQuc3JjID0gc3JjOworICB9CisgIHJldHVybiB2aWQ7Cit9CisKKy8qKgorICog
SW5zZXJ0cyBhbiBpbWFnZSB3aXRoIGEgY2FwdGlvbiBpbnRvICdlbGVtZW50Jy4KKyAqIEBwYXJh
bSB7IUhUTUxFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdG8gYXBwZW5kIGltYWdlIHRvLgorICog
QHBhcmFtIHtzdHJpbmd9IGNhcHRpb24gY2FwdGlvbiB0byBhc3NvY2lhdGUgd2l0aCBpbWFnZS4K
KyAqIEBwYXJhbSB7IUltYWdlfSBpbWcgaW1hZ2UgdG8gaW5zZXJ0LgorICovCit2YXIgaW5zZXJ0
SW1hZ2UgPSBmdW5jdGlvbihlbGVtZW50LCBjYXB0aW9uLCBpbWcpIHsKKyAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgbGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoY2FwdGlvbikpOworICBkaXYuYXBwZW5kQ2hpbGQobGFiZWwpOworICBkaXYuYXBwZW5k
Q2hpbGQoaW1nKTsKKyAgZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOworfTsKKworLyoqCisgKiBJ
bnNlcnRzIGEgJ2xhYmVsJyB0aGF0IHdoZW4gY2xpY2tlZCBleHBhbmRzIHRvIHRoZSBwcmUgZm9y
bWF0dGVkIHRleHQKKyAqIHN1cHBsaWVkIGJ5ICdzb3VyY2UnLgorICogQHBhcmFtIHshSFRNTEVs
ZW1lbnR9IGVsZW1lbnQgZWxlbWVudCB0byBhcHBlbmQgbGFiZWwgdG8uCisgKiBAcGFyYW0ge3N0
cmluZ30gbGFiZWwgbGFiZWwgZm9yIGFuY2hvci4KKyAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2Ug
cHJlZm9ybWF0dGVkIHRleHQgdG8gZXhwYW5kIHRvLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF91
cmwgVVJMIG9mIHNvdXJjZS4gSWYgcHJvdmlkZWQgYSBsaW5rIHRvIHRoZSBzb3VyY2UgZmlsZQor
ICogICAgIHdpbGwgYWxzbyBiZSBhZGRlZC4KKyAqLwordmFyIGFkZFNoYWRlclNvdXJjZSA9IGZ1
bmN0aW9uKGVsZW1lbnQsIGxhYmVsLCBzb3VyY2UsIG9wdF91cmwpIHsKKyAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInByZSIpOworICBzLmNsYXNzTmFtZSA9ICJzaGFkZXItc291cmNlIjsKKyAgcy5zdHls
ZS5kaXNwbGF5ID0gIm5vbmUiOworICB2YXIgb2wgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJv
bCIpOworICAvL3MuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc291cmNlKSk7
CisgIHZhciBsaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKKyAgZm9yICh2YXIgaWkgPSAwOyBp
aSA8IGxpbmVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBsaW5lID0gbGluZXNbaWldOworICAg
IHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgbGkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOworICAgIG9sLmFwcGVuZENoaWxkKGxp
KTsKKyAgfQorICBzLmFwcGVuZENoaWxkKG9sKTsKKyAgdmFyIGwgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJhIik7CisgIGwuaHJlZiA9ICJzaG93LXNoYWRlci1zb3VyY2UiOworICBsLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxhYmVsKSk7CisgIGwuYWRkRXZlbnRMaXN0
ZW5lcignY2xpY2snLCBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYgKGV2ZW50LnByZXZlbnRE
ZWZhdWx0KSB7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICB9CisgICAg
ICBzLnN0eWxlLmRpc3BsYXkgPSAocy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykgPyAnYmxvY2sn
IDogJ25vbmUnOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sIGZhbHNlKTsKKyAgZGl2LmFw
cGVuZENoaWxkKGwpOworICBpZiAob3B0X3VybCkgeworICAgIHZhciB1ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiYSIpOworICAgIHUuaHJlZiA9IG9wdF91cmw7CisgICAgZGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOworICAgIHUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIigiICsgb3B0X3VybCArICIpIikpOworICAgIGRpdi5hcHBl
bmRDaGlsZCh1KTsKKyAgfQorICBkaXYuYXBwZW5kQ2hpbGQocyk7CisgIGVsZW1lbnQuYXBwZW5k
Q2hpbGQoZGl2KTsKK307CisKKy8qKgorICogSW5zZXJ0cyBsYWJlbHMgdGhhdCB3aGVuIGNsaWNr
ZWQgZXhwYW5kIHRvIHNob3cgdGhlIG9yaWdpbmFsIHNvdXJjZSBvZiB0aGUKKyAqIHNoYWRlciBh
bmQgYWxzbyB0cmFuc2xhdGVkIHNvdXJjZSBvZiB0aGUgc2hhZGVyLCBpZiB0aGF0IGlzIGF2YWls
YWJsZS4KKyAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUhUTUxFbGVtZW50fSBlbGVtZW50IGVs
ZW1lbnQgdG8gYXBwZW5kIGxhYmVsIHRvLgorICogQHBhcmFtIHtzdHJpbmd9IGxhYmVsIGxhYmVs
IGZvciBhbmNob3IuCisgKiBAcGFyYW0ge1dlYkdMU2hhZGVyfSBzaGFkZXIgU2hhZGVyIHRvIHNo
b3cgdGhlIHNvdXJjZXMgZm9yLgorICogQHBhcmFtIHtzdHJpbmd9IHNoYWRlclNvdXJjZSBPcmln
aW5hbCBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF91cmwgVVJMIG9mIHNv
dXJjZS4gSWYgcHJvdmlkZWQgYSBsaW5rIHRvIHRoZSBzb3VyY2UgZmlsZQorICogICAgIHdpbGwg
YWxzbyBiZSBhZGRlZC4KKyAqLwordmFyIGFkZFNoYWRlclNvdXJjZXMgPSBmdW5jdGlvbigKKyAg
ICBnbCwgZWxlbWVudCwgbGFiZWwsIHNoYWRlciwgc2hhZGVyU291cmNlLCBvcHRfdXJsKSB7Cisg
IGFkZFNoYWRlclNvdXJjZShlbGVtZW50LCBsYWJlbCwgc2hhZGVyU291cmNlLCBvcHRfdXJsKTsK
KworICB2YXIgZGVidWdTaGFkZXJzID0gZ2wuZ2V0RXh0ZW5zaW9uKCdXRUJHTF9kZWJ1Z19zaGFk
ZXJzJyk7CisgIGlmIChkZWJ1Z1NoYWRlcnMgJiYgc2hhZGVyKSB7CisgICAgdmFyIHRyYW5zbGF0
ZWRTb3VyY2UgPSBkZWJ1Z1NoYWRlcnMuZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZShzaGFkZXIp
OworICAgIGlmICh0cmFuc2xhdGVkU291cmNlICE9ICcnKSB7CisgICAgICBhZGRTaGFkZXJTb3Vy
Y2UoZWxlbWVudCwgbGFiZWwgKyAnIHRyYW5zbGF0ZWQgZm9yIGRyaXZlcicsIHRyYW5zbGF0ZWRT
b3VyY2UpOworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBTZW5kcyBzaGFkZXIgaW5mb3JtYXRp
b24gdG8gdGhlIHNlcnZlciB0byBiZSBkdW1wZWQgaW50byB0ZXh0IGZpbGVzCisgKiB3aGVuIHRl
c3RzIGFyZSBydW4gZnJvbSB3aXRoaW4gdGhlIHRlc3QtcnVubmVyIGhhcm5lc3MuCisgKiBAcGFy
YW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0
byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBvZiBjdXJyZW50LgorICogQHBhcmFt
IHtzdHJpbmd9IHBhc3NNc2cgVGVzdCBkZXNjcmlwdGlvbi4KKyAqIEBwYXJhbSB7b2JqZWN0fSB2
SW5mbyBPYmplY3QgY29udGFpbmluZyB2ZXJ0ZXggc2hhZGVyIGluZm9ybWF0aW9uLgorICogQHBh
cmFtIHtvYmplY3R9IGZJbmZvIE9iamVjdCBjb250YWluaW5nIGZyYWdtZW50IHNoYWRlciBpbmZv
cm1hdGlvbi4KKyAqLwordmFyIGR1bXBTaGFkZXJzSW5mbyA9IGZ1bmN0aW9uKGdsLCB1cmwsIHBh
c3NNc2csIHZJbmZvLCBmSW5mbykgeworICB2YXIgc2hhZGVySW5mbyA9IHt9OworICBzaGFkZXJJ
bmZvLnVybCA9IHVybDsKKyAgc2hhZGVySW5mby50ZXN0RGVzY3JpcHRpb24gPSBwYXNzTXNnOwor
ICBzaGFkZXJJbmZvLnZMYWJlbCA9IHZJbmZvLmxhYmVsOworICBzaGFkZXJJbmZvLnZTaG91bGRD
b21waWxlID0gdkluZm8uc2hhZGVyU3VjY2VzczsKKyAgc2hhZGVySW5mby52U291cmNlID0gdklu
Zm8uc291cmNlOworICBzaGFkZXJJbmZvLmZMYWJlbCA9IGZJbmZvLmxhYmVsOworICBzaGFkZXJJ
bmZvLmZTaG91bGRDb21waWxlID0gZkluZm8uc2hhZGVyU3VjY2VzczsKKyAgc2hhZGVySW5mby5m
U291cmNlID0gZkluZm8uc291cmNlOworICBzaGFkZXJJbmZvLnZUcmFuc2xhdGVkU291cmNlID0g
bnVsbDsKKyAgc2hhZGVySW5mby5mVHJhbnNsYXRlZFNvdXJjZSA9IG51bGw7CisgIHZhciBkZWJ1
Z1NoYWRlcnMgPSBnbC5nZXRFeHRlbnNpb24oJ1dFQkdMX2RlYnVnX3NoYWRlcnMnKTsKKyAgaWYg
KGRlYnVnU2hhZGVycykgeworICAgIGlmICh2SW5mby5zaGFkZXIpCisgICAgICBzaGFkZXJJbmZv
LnZUcmFuc2xhdGVkU291cmNlID0gZGVidWdTaGFkZXJzLmdldFRyYW5zbGF0ZWRTaGFkZXJTb3Vy
Y2UodkluZm8uc2hhZGVyKTsKKyAgICBpZiAoZkluZm8uc2hhZGVyKQorICAgICAgc2hhZGVySW5m
by5mVHJhbnNsYXRlZFNvdXJjZSA9IGRlYnVnU2hhZGVycy5nZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlKGZJbmZvLnNoYWRlcik7CisgIH0KKworICB2YXIgZHVtcFNoYWRlckluZm9SZXF1ZXN0ID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIGR1bXBTaGFkZXJJbmZvUmVxdWVzdC5vcGVuKCdQT1NU
JywgIi9kdW1wU2hhZGVySW5mbyIsIHRydWUpOworICBkdW1wU2hhZGVySW5mb1JlcXVlc3Quc2V0
UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKTsKKyAgZHVtcFNoYWRl
ckluZm9SZXF1ZXN0LnNlbmQoSlNPTi5zdHJpbmdpZnkoc2hhZGVySW5mbykpOworfTsKKworLy8g
QWRkIHlvdXIgcHJlZml4IGhlcmUuCit2YXIgYnJvd3NlclByZWZpeGVzID0gWworICAiIiwKKyAg
Ik1PWl8iLAorICAiT1BfIiwKKyAgIldFQktJVF8iCitdOworCisvKioKKyAqIEdpdmVuIGFuIGV4
dGVuc2lvbiBuYW1lIGxpa2UgV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMKKyAqIHJldHVy
bnMgdGhlIG5hbWUgb2YgdGhlIHN1cHBvcnRlZCB2ZXJzaW9uIGV4dGVuc2lvbiwgbGlrZQorICog
V0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV0dXJlX3MzdGMKKyAqIEBwYXJhbSB7c3RyaW5nfSBu
YW1lIE5hbWUgb2YgZXh0ZW5zaW9uIHRvIGxvb2sgZm9yLgorICogQHJldHVybiB7c3RyaW5nfSBu
YW1lIG9mIGV4dGVuc2lvbiBmb3VuZCBvciB1bmRlZmluZWQgaWYgbm90CisgKiAgICAgZm91bmQu
CisgKi8KK3ZhciBnZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcyA9IGZ1bmN0
aW9uKGdsLCBuYW1lKSB7CisgIHZhciBzdXBwb3J0ZWQgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKCk7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBicm93c2VyUHJlZml4ZXMubGVuZ3RoOyAr
K2lpKSB7CisgICAgdmFyIHByZWZpeGVkTmFtZSA9IGJyb3dzZXJQcmVmaXhlc1tpaV0gKyBuYW1l
OworICAgIGlmIChzdXBwb3J0ZWQuaW5kZXhPZihwcmVmaXhlZE5hbWUpID49IDApIHsKKyAgICAg
IHJldHVybiBwcmVmaXhlZE5hbWU7CisgICAgfQorICB9Cit9OworCisvKioKKyAqIEBwYXJhbSB7
V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVz
ZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5zaW9uIHRvIGxvb2sgZm9y
LgorICogQHBhcmFtIHtib29sZWFufSBleHRlbnNpb25FbmFibGVkIFRydWUgaWYgdGhlIGV4dGVu
c2lvbiB3YXMgZW5hYmxlZCBzdWNjZXNzZnVsbHkgdmlhIGdsLmdldEV4dGVuc2lvbigpLgorICov
Cit2YXIgcnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdCA9IGZ1bmN0aW9uKGdsLCBuYW1lLCBleHRl
bnNpb25FbmFibGVkKSB7CisgIHZhciBwcmVmaXhlZE5hbWUgPSBnZXRTdXBwb3J0ZWRFeHRlbnNp
b25XaXRoS25vd25QcmVmaXhlcyhnbCwgbmFtZSk7CisgIGlmIChwcmVmaXhlZE5hbWUgIT09IHVu
ZGVmaW5lZCkgeworICAgICAgaWYgKGV4dGVuc2lvbkVuYWJsZWQpIHsKKyAgICAgICAgICB0ZXN0
UGFzc2VkKG5hbWUgKyAiIGxpc3RlZCBhcyBzdXBwb3J0ZWQgYW5kIGdldEV4dGVuc2lvbiBzdWNj
ZWVkZWQiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGVzdEZhaWxlZChuYW1lICsgIiBs
aXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gZmFpbGVkIik7CisgICAgICB9Cisg
IH0gZWxzZSB7CisgICAgICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgIHRlc3RG
YWlsZWQobmFtZSArICIgbm90IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBz
dWNjZWVkZWQiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGVzdFBhc3NlZChuYW1lICsg
IiBub3QgbGlzdGVkIGFzIHN1cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9uIGZhaWxlZCAtLSB0aGlz
IGlzIGxlZ2FsIik7CisgICAgICB9CisgIH0KK30KKworLyoqCisgKiBHaXZlbiBhbiBleHRlbnNp
b24gbmFtZSBsaWtlIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjCisgKiByZXR1cm5zIHRo
ZSBzdXBwb3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxpa2UKKyAqIFdFQktJVF9XRUJHTF9jb21w
cmVzc2VkX3RldHVyZV9zM3RjCisgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIGV4dGVu
c2lvbiB0byBsb29rIGZvci4KKyAqIEByZXR1cm4ge1dlYkdMRXh0ZW5zaW9ufSBUaGUgZXh0ZW5z
aW9uIG9yIHVuZGVmaW5lZCBpZiBub3QKKyAqICAgICBmb3VuZC4KKyAqLwordmFyIGdldEV4dGVu
c2lvbldpdGhLbm93blByZWZpeGVzID0gZnVuY3Rpb24oZ2wsIG5hbWUpIHsKKyAgZm9yICh2YXIg
aWkgPSAwOyBpaSA8IGJyb3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgcHJl
Zml4ZWROYW1lID0gYnJvd3NlclByZWZpeGVzW2lpXSArIG5hbWU7CisgICAgdmFyIGV4dCA9IGds
LmdldEV4dGVuc2lvbihwcmVmaXhlZE5hbWUpOworICAgIGlmIChleHQpIHsKKyAgICAgIHJldHVy
biBleHQ7CisgICAgfQorICB9Cit9OworCisvKioKKyAqIFJldHVybnMgcG9zc2libGUgcHJlZml4
ZWQgdmVyc2lvbnMgb2YgYW4gZXh0ZW5zaW9uJ3MgbmFtZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBu
YW1lIE5hbWUgb2YgZXh0ZW5zaW9uLiBNYXkgYWxyZWFkeSBpbmNsdWRlIGEgcHJlZml4LgorICog
QHJldHVybiB7QXJyYXkuPHN0cmluZz59IFZhcmlhdGlvbnMgb2YgdGhlIGV4dGVuc2lvbiBuYW1l
IHdpdGgga25vd24KKyAqICAgICBicm93c2VyIHByZWZpeGVzLgorICovCit2YXIgZ2V0RXh0ZW5z
aW9uUHJlZml4ZWROYW1lcyA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgdmFyIHVucHJlZml4ID0gZnVu
Y3Rpb24obmFtZSkgeworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBicm93c2VyUHJlZml4ZXMu
bGVuZ3RoOyArK2lpKSB7CisgICAgICBpZiAoYnJvd3NlclByZWZpeGVzW2lpXS5sZW5ndGggPiAw
ICYmCisgICAgICAgICAgbmFtZS5zdWJzdHJpbmcoMCwgYnJvd3NlclByZWZpeGVzW2lpXS5sZW5n
dGgpLnRvTG93ZXJDYXNlKCkgPT09CisgICAgICAgICAgYnJvd3NlclByZWZpeGVzW2lpXS50b0xv
d2VyQ2FzZSgpKSB7CisgICAgICAgIHJldHVybiBuYW1lLnN1YnN0cmluZyhicm93c2VyUHJlZml4
ZXNbaWldLmxlbmd0aCk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiBuYW1lOworICB9CisK
KyAgdmFyIHVucHJlZml4ZWQgPSB1bnByZWZpeChuYW1lKTsKKworICB2YXIgdmFyaWF0aW9ucyA9
IFtdOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0aDsgKytp
aSkgeworICAgIHZhcmlhdGlvbnMucHVzaChicm93c2VyUHJlZml4ZXNbaWldICsgdW5wcmVmaXhl
ZCk7CisgIH0KKworICByZXR1cm4gdmFyaWF0aW9uczsKK307CisKK3ZhciByZXBsYWNlUkUgPSAv
XCRcKChcdyspXCkvZzsKKworLyoqCisgKiBSZXBsYWNlcyBzdHJpbmdzIHdpdGggcHJvcGVydHkg
dmFsdWVzLgorICogR2l2ZW4gYSBzdHJpbmcgbGlrZSAiaGVsbG8gJChmaXJzdCkgJChsYXN0KSIg
YW5kIGFuIG9iamVjdAorICogbGlrZSB7Zmlyc3Q6IkpvaG4iLCBsYXN0OiJTbWl0aCJ9IHdpbGwg
cmV0dXJuCisgKiAiaGVsbG8gSm9obiBTbWl0aCIuCisgKiBAcGFyYW0ge3N0cmluZ30gc3RyIFN0
cmluZyB0byBkbyByZXBsYWNlbWVudHMgaW4uCisgKiBAcGFyYW0gey4uLn0gMSBvciBtb3JlIG9i
amVjdHMgY29udGFpbmluZyBwcm9wZXJ0aWVzLgorICovCit2YXIgcmVwbGFjZVBhcmFtcyA9IGZ1
bmN0aW9uKHN0cikgeworICB2YXIgYXJncyA9IGFyZ3VtZW50czsKKyAgcmV0dXJuIHN0ci5yZXBs
YWNlKHJlcGxhY2VSRSwgZnVuY3Rpb24oc3RyLCBwMSwgb2Zmc2V0LCBzKSB7CisgICAgZm9yICh2
YXIgaWkgPSAxOyBpaSA8IGFyZ3MubGVuZ3RoOyArK2lpKSB7CisgICAgICBpZiAoYXJnc1tpaV1b
cDFdICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcmV0dXJuIGFyZ3NbaWldW3AxXTsKKyAgICAg
IH0KKyAgICB9CisgICAgdGhyb3cgInVua25vd24gc3RyaW5nIHBhcmFtICciICsgcDEgKyAiJyI7
CisgIH0pOworfTsKKwordmFyIHVwcGVyQ2FzZUZpcnN0TGV0dGVyID0gZnVuY3Rpb24oc3RyKSB7
CisgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHIuc3Vic3Ry
aW5nKDEpOworfTsKKworLyoqCisgKiBHZXRzIGEgcHJlZml4ZWQgcHJvcGVydHkuIEZvciBleGFt
cGxlLAorICoKKyAqICAgICB2YXIgZm4gPSBnZXRQcmVmaXhlZFByb3BlcnR5KAorICogICAgICAg
IHdpbmRvdywKKyAqICAgICAgICAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIik7CisgKgorICogV2ls
bCByZXR1cm4gZWl0aGVyOgorICogICAgIndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAor
ICogICAgIndpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKKyAqICAgICJ3aW5kb3cubXNS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAorICogICAgIndpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUiLAorICogICAgIndpbmRvdy53ZWJLaXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAorICog
ICAgdW5kZWZpbmVkCisgKgorICogdGhlIG5vbi1wcmVmaXhlZCBmdW5jdGlvbiBpcyB0cmllZCBm
aXJzdC4KKyAqLwordmFyIHByb3BlcnR5UHJlZml4ZXMgPSBbIiIsICJtb3oiLCAibXMiLCAibyIs
ICJ3ZWJraXQiXTsKK3ZhciBnZXRQcmVmaXhlZFByb3BlcnR5ID0gZnVuY3Rpb24ob2JqLCBwcm9w
ZXJ0eU5hbWUpIHsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHByb3BlcnR5UHJlZml4ZXMubGVu
Z3RoOyArK2lpKSB7CisgICAgdmFyIHByZWZpeCA9IHByb3BlcnR5UHJlZml4ZXNbaWldOworICAg
IHZhciBuYW1lID0gcHJlZml4ICsgcHJvcGVydHlOYW1lOworICAgIGxvZyhuYW1lKTsKKyAgICB2
YXIgcHJvcGVydHkgPSBvYmpbbmFtZV07CisgICAgaWYgKHByb3BlcnR5KSB7CisgICAgICByZXR1
cm4gcHJvcGVydHk7CisgICAgfQorICAgIGlmIChpaSA9PSAwKSB7CisgICAgICBwcm9wZXJ0eU5h
bWUgPSB1cHBlckNhc2VGaXJzdExldHRlcihwcm9wZXJ0eU5hbWUpOworICAgIH0KKyAgfQorICBy
ZXR1cm4gdW5kZWZpbmVkOworfTsKKwordmFyIF9yZXF1ZXN0QW5pbUZyYW1lOworCisvKioKKyAq
IFByb3ZpZGVzIHJlcXVlc3RBbmltYXRpb25GcmFtZSBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5Lgor
ICovCit2YXIgcmVxdWVzdEFuaW1GcmFtZSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgIGlmICgh
X3JlcXVlc3RBbmltRnJhbWUpIHsKKyAgICBfcmVxdWVzdEFuaW1GcmFtZSA9IGdldFByZWZpeGVk
UHJvcGVydHkod2luZG93LCAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIikgfHwKKyAgICAgIGZ1bmN0
aW9uKGNhbGxiYWNrLCBlbGVtZW50KSB7CisgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91
dChjYWxsYmFjaywgMTAwMCAvIDcwKTsKKyAgICAgIH07CisgIH0KKyAgX3JlcXVlc3RBbmltRnJh
bWUuY2FsbCh3aW5kb3csIGNhbGxiYWNrKTsKK307CisKK3ZhciBfY2FuY2VsQW5pbUZyYW1lOwor
CisvKioKKyAqIFByb3ZpZGVzIGNhbmNlbEFuaW1hdGlvbkZyYW1lIGluIGEgY3Jvc3MgYnJvd3Nl
ciB3YXkuCisgKi8KK3ZhciBjYW5jZWxBbmltRnJhbWUgPSBmdW5jdGlvbihyZXF1ZXN0KSB7Cisg
IGlmICghX2NhbmNlbEFuaW1GcmFtZSkgeworICAgIF9jYW5jZWxBbmltRnJhbWUgPSBnZXRQcmVm
aXhlZFByb3BlcnR5KHdpbmRvdywgImNhbmNlbEFuaW1hdGlvbkZyYW1lIikgfHwKKyAgICAgIHdp
bmRvdy5jbGVhclRpbWVvdXQ7CisgIH0KKyAgX2NhbmNlbEFuaW1GcmFtZS5jYWxsKHdpbmRvdywg
cmVxdWVzdCk7Cit9OworCisvKioKKyAqIFByb3ZpZGVzIHJlcXVlc3RGdWxsU2NyZWVuIGluIGEg
Y3Jvc3MgYnJvd3NlciB3YXkuCisgKi8KK3ZhciByZXF1ZXN0RnVsbFNjcmVlbiA9IGZ1bmN0aW9u
KGVsZW1lbnQpIHsKKyAgdmFyIGZuID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eShlbGVtZW50LCAicmVx
dWVzdEZ1bGxTY3JlZW4iKTsKKyAgaWYgKGZuKSB7CisgICAgZm4uY2FsbChlbGVtZW50KTsKKyAg
fQorfTsKKworLyoqCisgKiBQcm92aWRlcyBjYW5jZWxGdWxsU2NyZWVuIGluIGEgY3Jvc3MgYnJv
d3NlciB3YXkuCisgKi8KK3ZhciBjYW5jZWxGdWxsU2NyZWVuID0gZnVuY3Rpb24oKSB7CisgIHZh
ciBmbiA9IGdldFByZWZpeGVkUHJvcGVydHkoZG9jdW1lbnQsICJjYW5jZWxGdWxsU2NyZWVuIik7
CisgIGlmIChmbikgeworICAgIGZuLmNhbGwoZG9jdW1lbnQpOworICB9Cit9OworCit2YXIgZnVs
bFNjcmVlblN0YXRlTmFtZTsKKyhmdW5jdGlvbigpIHsKKyAgdmFyIGZ1bGxTY3JlZW5TdGF0ZU5h
bWVzID0gWworICAgICJpc0Z1bGxTY3JlZW4iLAorICAgICJmdWxsU2NyZWVuIgorICBdOworICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgZnVsbFNjcmVlblN0YXRlTmFtZXMubGVuZ3RoOyArK2lpKSB7
CisgICAgdmFyIHByb3BlcnR5TmFtZSA9IGZ1bGxTY3JlZW5TdGF0ZU5hbWVzW2lpXTsKKyAgICBm
b3IgKHZhciBqaiA9IDA7IGpqIDwgcHJvcGVydHlQcmVmaXhlcy5sZW5ndGg7ICsramopIHsKKyAg
ICAgIHZhciBwcmVmaXggPSBwcm9wZXJ0eVByZWZpeGVzW2pqXTsKKyAgICAgIGlmIChwcmVmaXgu
bGVuZ3RoKSB7CisgICAgICAgIHByb3BlcnR5TmFtZSA9IHVwcGVyQ2FzZUZpcnN0TGV0dGVyKHBy
b3BlcnR5TmFtZSk7CisgICAgICAgIGZ1bGxTY3JlZW5TdGF0ZU5hbWUgPSBwcmVmaXggKyBwcm9w
ZXJ0eU5hbWU7CisgICAgICAgIGlmIChkb2N1bWVudFtmdWxsU2NyZWVuU3RhdGVOYW1lXSAhPT0g
dW5kZWZpbmVkKSB7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICB9CisgICAg
fQorICAgIGZ1bGxTY3JlZW5TdGF0ZU5hbWUgPSB1bmRlZmluZWQ7CisgIH0KK30oKSk7CisKKy8q
KgorICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBmdWxsc2NyZWVuIG1vZGUgaXMgYWN0aXZl
LgorICovCit2YXIgZ2V0RnVsbFNjcmVlblN0YXRlID0gZnVuY3Rpb24oKSB7CisgIGxvZygiZnVs
bHNjcmVlbnN0YXRlbmFtZToiICsgZnVsbFNjcmVlblN0YXRlTmFtZSk7CisgIGxvZyhkb2N1bWVu
dFtmdWxsU2NyZWVuU3RhdGVOYW1lXSk7CisgIHJldHVybiBkb2N1bWVudFtmdWxsU2NyZWVuU3Rh
dGVOYW1lXTsKK307CisKKy8qKgorICogQHBhcmFtIHshSFRNTEVsZW1lbnR9IGVsZW1lbnQgVGhl
IGVsZW1lbnQgdG8gZ28gZnVsbHNjcmVlbi4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKGJvb2xlYW4p
fSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQKKyAqICAgICAgICB3aGVu
IGVudGVyaW5nL2V4aXRpbmcgZnVsbHNjcmVlbi4gSXQgaXMgcGFzc2VkIHRydWUgaWYKKyAqICAg
ICAgICBlbnRlcmluZyBmdWxsc2NyZWVuLCBmYWxzZSBpZiBleGl0aW5nLgorICovCit2YXIgb25G
dWxsU2NyZWVuQ2hhbmdlID0gZnVuY3Rpb24oZWxlbWVudCwgY2FsbGJhY2spIHsKKyAgcHJvcGVy
dHlQcmVmaXhlcy5mb3JFYWNoKGZ1bmN0aW9uKHByZWZpeCkgeworICAgIHZhciBldmVudE5hbWUg
PSBwcmVmaXggKyAiZnVsbHNjcmVlbmNoYW5nZSI7CisgICAgbG9nKCJhZGRldmVudDogIiArIGV2
ZW50TmFtZSk7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICBsb2coImV2ZW50OiAiICsgZXZlbnROYW1lKTsKKyAgICAgIGNh
bGxiYWNrKGdldEZ1bGxTY3JlZW5TdGF0ZSgpKTsKKyAgICB9KTsKKyAgfSk7Cit9OworCisvKioK
KyAqIEBwYXJhbSB7IXN0cmluZ30gYnV0dG9uSWQgVGhlIGlkIG9mIHRoZSBidXR0b24gdGhhdCB3
aWxsIHRvZ2dsZSBmdWxsc2NyZWVuCisgKiAgICAgICAgbW9kZS4KKyAqIEBwYXJhbSB7IXN0cmlu
Z30gZnVsbHNjcmVlbklkIFRoZSBpZCBvZiB0aGUgZWxlbWVudCB0byBnbyBmdWxsc2NyZWVuLgor
ICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbGVhbil9IGNhbGxiYWNrIEEgZnVuY3Rpb24gdGhhdCB3
aWxsIGJlIGNhbGxlZAorICogICAgICAgIHdoZW4gZW50ZXJpbmcvZXhpdGluZyBmdWxsc2NyZWVu
LiBJdCBpcyBwYXNzZWQgdHJ1ZSBpZgorICogICAgICAgIGVudGVyaW5nIGZ1bGxzY3JlZW4sIGZh
bHNlIGlmIGV4aXRpbmcuCisgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGZ1bGxzY3JlZW4g
bW9kZSBpcyBzdXBwb3J0ZWQuCisgKi8KK3ZhciBzZXR1cEZ1bGxzY3JlZW4gPSBmdW5jdGlvbihi
dXR0b25JZCwgZnVsbHNjcmVlbklkLCBjYWxsYmFjaykgeworICBpZiAoIWZ1bGxTY3JlZW5TdGF0
ZU5hbWUpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICB2YXIgZnVsbHNjcmVlbkVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmdWxsc2NyZWVuSWQpOworICBvbkZ1bGxTY3Jl
ZW5DaGFuZ2UoZnVsbHNjcmVlbkVsZW1lbnQsIGNhbGxiYWNrKTsKKworICB2YXIgdG9nZ2xlRnVs
bFNjcmVlbiA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGdldEZ1bGxTY3JlZW5TdGF0ZSgp
KSB7CisgICAgICBjYW5jZWxGdWxsU2NyZWVuKGZ1bGxzY3JlZW5FbGVtZW50KTsKKyAgICB9IGVs
c2UgeworICAgICAgcmVxdWVzdEZ1bGxTY3JlZW4oZnVsbHNjcmVlbkVsZW1lbnQpOworICAgIH0K
KyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIHJldHVybiBmYWxzZTsKKyAgfTsKKwor
ICB2YXIgYnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJ1dHRvbklkKTsK
KyAgYnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRvZ2dsZUZ1bGxTY3Jl
ZW4pOworCisgIHJldHVybiB0cnVlOworfTsKKworLyoqCisgKiBXYWl0cyBmb3IgdGhlIGJyb3dz
ZXIgdG8gY29tcG9zaXRlIHRoZSB3ZWIgcGFnZS4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0gY2Fs
bGJhY2sgQSBmdW5jdGlvbiB0byBjYWxsIGFmdGVyIGNvbXBvc2l0aW5nIGhhcyB0YWtlbgorICog
ICAgICAgIHBsYWNlLgorICovCit2YXIgd2FpdEZvckNvbXBvc2l0ZSA9IGZ1bmN0aW9uKGNhbGxi
YWNrKSB7CisgIHZhciBmcmFtZXMgPSA1OworICB2YXIgY291bnREb3duID0gZnVuY3Rpb24oKSB7
CisgICAgaWYgKGZyYW1lcyA9PSAwKSB7CisgICAgICAvLyBUT0RPKGticik6IHVuaWZ5IHdpdGgg
anMtdGVzdC1wcmUuanMgYW5kIGVuYWJsZSB0aGVzZSB3aXRoCisgICAgICAvLyB2ZXJib3NlIGxv
Z2dpbmcuCisgICAgICAvLyBsb2coIndhaXRGb3JDb21wb3NpdGU6IGNhbGxiYWNrIik7CisgICAg
ICBjYWxsYmFjaygpOworICAgIH0gZWxzZSB7CisgICAgICAvLyBsb2coIndhaXRGb3JDb21wb3Np
dGU6IGNvdW50ZG93bigiICsgZnJhbWVzICsgIikiKTsKKyAgICAgIC0tZnJhbWVzOworICAgICAg
cmVxdWVzdEFuaW1GcmFtZS5jYWxsKHdpbmRvdywgY291bnREb3duKTsKKyAgICB9CisgIH07Cisg
IGNvdW50RG93bigpOworfTsKKwordmFyIHNldFplcm9UaW1lb3V0ID0gKGZ1bmN0aW9uKCkgewor
ICAvLyBTZWUgaHR0cHM6Ly9kYmFyb24ub3JnL2xvZy8yMDEwMDMwOS1mYXN0ZXItdGltZW91dHMK
KworICB2YXIgdGltZW91dHMgPSBbXTsKKyAgdmFyIG1lc3NhZ2VOYW1lID0gInplcm8tdGltZW91
dC1tZXNzYWdlIjsKKworICAvLyBMaWtlIHNldFRpbWVvdXQsIGJ1dCBvbmx5IHRha2VzIGEgZnVu
Y3Rpb24gYXJndW1lbnQuICBUaGVyZSdzCisgIC8vIG5vIHRpbWUgYXJndW1lbnQgKGFsd2F5cyB6
ZXJvKSBhbmQgbm8gYXJndW1lbnRzICh5b3UgaGF2ZSB0bworICAvLyB1c2UgYSBjbG9zdXJlKS4K
KyAgZnVuY3Rpb24gc2V0WmVyb1RpbWVvdXQoZm4pIHsKKyAgICAgIHRpbWVvdXRzLnB1c2goZm4p
OworICAgICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2VOYW1lLCAiKiIpOworICB9CisKKyAg
ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkgeworICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9
PSB3aW5kb3cgJiYgZXZlbnQuZGF0YSA9PSBtZXNzYWdlTmFtZSkgeworICAgICAgICAgIGV2ZW50
LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgIGlmICh0aW1lb3V0cy5sZW5ndGggPiAwKSB7
CisgICAgICAgICAgICAgIHZhciBmbiA9IHRpbWVvdXRzLnNoaWZ0KCk7CisgICAgICAgICAgICAg
IGZuKCk7CisgICAgICAgICAgfQorICAgICAgfQorICB9CisKKyAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBoYW5kbGVNZXNzYWdlLCB0cnVlKTsKKworICByZXR1cm4gc2V0WmVy
b1RpbWVvdXQ7Cit9KSgpOworCitmdW5jdGlvbiBkaXNwYXRjaFByb21pc2UoZm4pIHsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKChmbl9yZXNvbHZlLCBmbl9yZWplY3QpID0+IHsKKyAgICBzZXRaZXJv
VGltZW91dCgoKSA9PiB7CisgICAgICBsZXQgdmFsOworICAgICAgaWYgKGZuKSB7CisgICAgICAg
IHZhbCA9IGZuKCk7CisgICAgICB9CisgICAgICBmbl9yZXNvbHZlKHZhbCk7CisgICAgfSk7Cisg
IH0pOworfQorCisvKioKKyAqIFJ1bnMgYW4gYXJyYXkgb2YgZnVuY3Rpb25zLCB5aWVsZGluZyB0
byB0aGUgYnJvd3NlciBiZXR3ZWVuIGVhY2ggc3RlcC4KKyAqIElmIHlvdSB3YW50IHRvIGtub3cg
d2hlbiBhbGwgdGhlIHN0ZXBzIGFyZSBmaW5pc2hlZCBhZGQgYSBsYXN0IHN0ZXAuCisgKiBAcGFy
YW0geyFBcnJheS48ZnVuY3Rpb24oKTogdm9pZD59IHN0ZXBzIEFycmF5IG9mIGZ1bmN0aW9ucy4K
KyAqLwordmFyIHJ1blN0ZXBzID0gZnVuY3Rpb24oc3RlcHMpIHsKKyAgaWYgKCFzdGVwcy5sZW5n
dGgpIHsKKyAgICByZXR1cm47CisgIH0KKworICAvLyBjb3B5IHN0ZXBzIHNvIHRoZXkgY2FuJ3Qg
YmUgbW9kaWZlZC4KKyAgdmFyIHN0ZXBzVG9SdW4gPSBzdGVwcy5zbGljZSgpOworICB2YXIgY3Vy
cmVudFN0ZXAgPSAwOworICB2YXIgcnVuTmV4dFN0ZXAgPSBmdW5jdGlvbigpIHsKKyAgICBzdGVw
c1RvUnVuW2N1cnJlbnRTdGVwKytdKCk7CisgICAgaWYgKGN1cnJlbnRTdGVwIDwgc3RlcHNUb1J1
bi5sZW5ndGgpIHsKKyAgICAgIHNldFRpbWVvdXQocnVuTmV4dFN0ZXAsIDEpOworICAgIH0KKyAg
fTsKKyAgcnVuTmV4dFN0ZXAoKTsKK307CisKKy8qKgorICogU3RhcnRzIHBsYXlpbmcgYSB2aWRl
byBhbmQgd2FpdHMgZm9yIGl0IHRvIGJlIGNvbnN1bWFibGUuCisgKiBAcGFyYW0geyFIVE1MVmlk
ZW9FbGVtZW50fSB2aWRlbyBBbiBIVE1MNSBWaWRlbyBlbGVtZW50LgorICogQHBhcmFtIHshZnVu
Y3Rpb24oIUhUTUxWaWRlb0VsZW1lbnQpOiB2b2lkfSBjYWxsYmFjayBGdW5jdGlvbiB0byBjYWxs
IHdoZW4KKyAqICAgICAgICB2aWRlbyBpcyByZWFkeS4KKyAqLworYXN5bmMgZnVuY3Rpb24gc3Rh
cnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBjYWxsYmFjaykgeworICBpZiAodmlkZW8u
ZXJyb3IpIHsKKyAgICB0ZXN0RmFpbGVkKCdWaWRlbyBmYWlsZWQgdG8gbG9hZDogJyArIHZpZGVv
LmVycm9yKTsKKyAgICByZXR1cm47CisgIH0KKworICB2aWRlby5sb29wID0gdHJ1ZTsKKyAgdmlk
ZW8ubXV0ZWQgPSB0cnVlOworICAvLyBTZWUgd2hldGhlciBzZXR0aW5nIHRoZSBwcmVsb2FkIGZs
YWcgZGUtZmxha2VzIHZpZGVvLXJlbGF0ZWQgdGVzdHMuCisgIHZpZGVvLnByZWxvYWQgPSAnYXV0
byc7CisKKyAgdHJ5IHsKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICB0ZXN0RmFpbGVkKCd2aWRlby5wbGF5IGZhaWxlZDogJyArIGUpOworICAgIHJldHVybjsK
KyAgfQorCisgIGlmICh2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKSB7CisgICAgYXdh
aXQgbmV3IFByb21pc2UoZ28gPT4gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhnbykp
OworICB9CisKKyAgY2FsbGJhY2sodmlkZW8pOworfQorCit2YXIgZ2V0SG9zdCA9IGZ1bmN0aW9u
KHVybCkgeworICB1cmwgPSB1cmwucmVwbGFjZSgiXFwiLCAiLyIpOworICB2YXIgcG9zID0gdXJs
LmluZGV4T2YoIjovLyIpOworICBpZiAocG9zID49IDApIHsKKyAgICB1cmwgPSB1cmwuc3Vic3Ry
KHBvcyArIDMpOworICB9CisgIHZhciBwYXJ0cyA9IHVybC5zcGxpdCgnLycpOworICByZXR1cm4g
cGFydHNbMF07Cit9CisKKy8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGFzdCAyIHdvcmRz
IG9mIHRoZSBkb21haW4gb2YgYSBVUkwKKy8vIFRoaXMgaXMgcHJvYmFibHkgbm90IHRoZSBjb3Jy
ZWN0IGNoZWNrIGJ1dCBpdCB3aWxsIGRvIGZvciBub3cuCit2YXIgZ2V0QmFzZURvbWFpbiA9IGZ1
bmN0aW9uKGhvc3QpIHsKKyAgdmFyIHBhcnRzID0gaG9zdC5zcGxpdCgiOiIpOworICB2YXIgaG9z
dG5hbWUgPSBwYXJ0c1swXTsKKyAgdmFyIHBvcnQgPSBwYXJ0c1sxXSB8fCAiODAiOworICBwYXJ0
cyA9IGhvc3RuYW1lLnNwbGl0KCIuIik7CisgIGlmKHBhcnRzLmxlbmd0aCA8IDIpCisgICAgcmV0
dXJuIGhvc3RuYW1lICsgIjoiICsgcG9ydDsKKyAgdmFyIHRsZCA9IHBhcnRzW3BhcnRzLmxlbmd0
aC0xXTsKKyAgdmFyIGRvbWFpbiA9IHBhcnRzW3BhcnRzLmxlbmd0aC0yXTsKKyAgcmV0dXJuIGRv
bWFpbiArICIuIiArIHRsZCArICI6IiArIHBvcnQ7Cit9CisKK3ZhciBydW5uaW5nT25Mb2NhbGhv
c3QgPSBmdW5jdGlvbigpIHsKKyAgbGV0IGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3Ru
YW1lOworICByZXR1cm4gaG9zdG5hbWUgPT0gImxvY2FsaG9zdCIgfHwKKyAgICBob3N0bmFtZSA9
PSAiMTI3LjAuMC4xIiB8fAorICAgIGhvc3RuYW1lID09ICI6OjEiOworfQorCit2YXIgZ2V0TG9j
YWxDcm9zc09yaWdpbiA9IGZ1bmN0aW9uKCkgeworICB2YXIgZG9tYWluOworICBpZiAod2luZG93
LmxvY2F0aW9uLmhvc3QuaW5kZXhPZigibG9jYWxob3N0IikgIT0gLTEpIHsKKyAgICAvLyBUT0RP
KGticik6IGZpZ3VyZSBvdXQgd2hldGhlciB0byB1c2UgYW4gSVB2NiBsb29wYmFjayBhZGRyZXNz
LgorICAgIGRvbWFpbiA9ICIxMjcuMC4wLjEiOworICB9IGVsc2UgeworICAgIGRvbWFpbiA9ICJs
b2NhbGhvc3QiOworICB9CisKKyAgdmFyIHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydCB8fCAi
ODAiOworICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGRvbWFpbiAr
ICI6IiArIHBvcnQKK30KKwordmFyIGdldFJlbGF0aXZlUGF0aCA9IGZ1bmN0aW9uKHBhdGgpIHsK
KyAgdmFyIHJlbHBhcnRzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCIvIik7Cisg
IHJlbHBhcnRzLnBvcCgpOyAvLyBQb3Agb2ZmIGZpbGVuYW1lCisgIHZhciBwYXRocGFydHMgPSBw
YXRoLnNwbGl0KCIvIik7CisKKyAgdmFyIGk7CisgIGZvciAoaSA9IDA7IGkgPCBwYXRocGFydHMu
bGVuZ3RoOyArK2kpIHsKKyAgICBzd2l0Y2ggKHBhdGhwYXJ0c1tpXSkgeworICAgICAgY2FzZSAi
IjogYnJlYWs7CisgICAgICBjYXNlICIuIjogYnJlYWs7CisgICAgICBjYXNlICIuLiI6CisgICAg
ICAgIHJlbHBhcnRzLnBvcCgpOworICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJlbHBhcnRzLnB1c2gocGF0aHBhcnRzW2ldKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICB9CisKKyAgcmV0dXJuIHJlbHBhcnRzLmpvaW4oIi8iKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
bG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCB3ZWJVcmwsIGxvY2FsVXJsKSB7CisgIGlmIChydW5u
aW5nT25Mb2NhbGhvc3QoKSkgeworICAgIGltZy5zcmMgPSBnZXRMb2NhbENyb3NzT3JpZ2luKCkg
KyBnZXRSZWxhdGl2ZVBhdGgobG9jYWxVcmwpOworICAgIGNvbnNvbGUubG9nKCdbbG9hZENyb3Nz
T3JpZ2luSW1hZ2VdJywgJyAgdHJ5aW5nJywgaW1nLnNyYyk7CisgICAgYXdhaXQgaW1nLmRlY29k
ZSgpOworICAgIHJldHVybjsKKyAgfQorCisgIHRyeSB7CisgICAgaW1nLnNyYyA9IGdldFVybE9w
dGlvbnMoKS5pbWdVcmwgfHwgd2ViVXJsOworICAgIGNvbnNvbGUubG9nKCdbbG9hZENyb3NzT3Jp
Z2luSW1hZ2VdJywgJ3RyeWluZycsIGltZy5zcmMpOworICAgIGF3YWl0IGltZy5kZWNvZGUoKTsK
KyAgICByZXR1cm47CisgIH0gY2F0Y2gge30KKworICB0aHJvdyAnY3JlYXRlQ3Jvc3NPcmlnaW5J
bWFnZSBmYWlsZWQnOworfQorCisvKioKKyAqIENvbnZlcnQgc1JHQiBjb2xvciB0byBsaW5lYXIg
Y29sb3IuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGJl
IGNvbnZlcnRlZC4KKyAqICAgICAgICBUaGUgYXJyYXkgaGFzIDQgZWxlbWVudHMsIGZvciBleGFt
cGxlIFtSLCBHLCBCLCBBXS4KKyAqICAgICAgICB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhl
IHJhbmdlIDAgdG8gMjU1LgorICogQHJldHVybiB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUg
Y29sb3IgdG8gYmUgY29udmVydGVkLgorICogICAgICAgIFRoZSBhcnJheSBoYXMgNCBlbGVtZW50
cywgZm9yIGV4YW1wbGUgW1IsIEcsIEIsIEFdLgorICogICAgICAgIHdoZXJlIGVhY2ggZWxlbWVu
dCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKi8KK3ZhciBzUkdCVG9MaW5lYXIgPSBmdW5j
dGlvbihjb2xvcikgeworICAgIHJldHVybiBbc1JHQkNoYW5uZWxUb0xpbmVhcihjb2xvclswXSks
CisgICAgICAgICAgICBzUkdCQ2hhbm5lbFRvTGluZWFyKGNvbG9yWzFdKSwKKyAgICAgICAgICAg
IHNSR0JDaGFubmVsVG9MaW5lYXIoY29sb3JbMl0pLAorICAgICAgICAgICAgY29sb3JbM11dCit9
CisKKy8qKgorICogQ29udmVydCBsaW5lYXIgY29sb3IgdG8gc1JHQiBjb2xvci4KKyAqIEBwYXJh
bSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gYmUgY29udmVydGVkLgorICog
ICAgICAgIFRoZSBhcnJheSBoYXMgNCBlbGVtZW50cywgZm9yIGV4YW1wbGUgW1IsIEcsIEIsIEFd
LgorICogICAgICAgIHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUu
CisgKiBAcmV0dXJuIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBiZSBjb252
ZXJ0ZWQuCisgKiAgICAgICAgVGhlIGFycmF5IGhhcyA0IGVsZW1lbnRzLCBmb3IgZXhhbXBsZSBb
UiwgRywgQiwgQV0uCisgKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5n
ZSAwIHRvIDI1NS4KKyAqLwordmFyIGxpbmVhclRvU1JHQiA9IGZ1bmN0aW9uKGNvbG9yKSB7Cisg
ICAgcmV0dXJuIFtsaW5lYXJDaGFubmVsVG9TUkdCKGNvbG9yWzBdKSwKKyAgICAgICAgICAgIGxp
bmVhckNoYW5uZWxUb1NSR0IoY29sb3JbMV0pLAorICAgICAgICAgICAgbGluZWFyQ2hhbm5lbFRv
U1JHQihjb2xvclsyXSksCisgICAgICAgICAgICBjb2xvclszXV0KK30KKworZnVuY3Rpb24gc1JH
QkNoYW5uZWxUb0xpbmVhcih2YWx1ZSkgeworICAgIHZhbHVlID0gdmFsdWUgLyAyNTU7CisgICAg
aWYgKHZhbHVlIDw9IDAuMDQwNDUpCisgICAgICAgIHZhbHVlID0gdmFsdWUgLyAxMi45MjsKKyAg
ICBlbHNlCisgICAgICAgIHZhbHVlID0gTWF0aC5wb3coKHZhbHVlICsgMC4wNTUpIC8gMS4wNTUs
IDIuNCk7CisgICAgcmV0dXJuIE1hdGgudHJ1bmModmFsdWUgKiAyNTUgKyAwLjUpOworfQorCitm
dW5jdGlvbiBsaW5lYXJDaGFubmVsVG9TUkdCKHZhbHVlKSB7CisgICAgdmFsdWUgPSB2YWx1ZSAv
IDI1NTsKKyAgICBpZiAodmFsdWUgPD0gMC4wKSB7CisgICAgICAgIHZhbHVlID0gMC4wOworICAg
IH0gZWxzZSBpZiAodmFsdWUgPCAwLjAwMzEzMDgpIHsKKyAgICAgICAgdmFsdWUgPSB2YWx1ZSAq
IDEyLjkyOworICAgIH0gZWxzZSBpZiAodmFsdWUgPCAxKSB7CisgICAgICAgIHZhbHVlID0gTWF0
aC5wb3codmFsdWUsIDAuNDE2NjYpICogMS4wNTUgLSAwLjA1NTsKKyAgICB9IGVsc2UgeworICAg
ICAgICB2YWx1ZSA9IDEuMDsKKyAgICB9CisgICAgcmV0dXJuIE1hdGgudHJ1bmModmFsdWUgKiAy
NTUgKyAwLjUpOworfQorCitmdW5jdGlvbiBjb21wYXJlUGl4ZWxzKGNtcCwgcmVmLCB0b2xlcmFu
Y2UsIGRpZmYpIHsKKyAgICBpZiAoY21wLmxlbmd0aCAhPSByZWYubGVuZ3RoKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoImludmFsaWQgcGl4ZWwgc2l6ZS4iKTsKKyAgICB9CisKKyAgICB2YXIgY291
bnQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY21wLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgIGlmIChkaWZmKSB7CisgICAgICAgICAgICBkaWZmW2kgKiA0XSA9IDA7CisgICAgICAgICAg
ICBkaWZmW2kgKiA0ICsgMV0gPSAyNTU7CisgICAgICAgICAgICBkaWZmW2kgKiA0ICsgMl0gPSAw
OworICAgICAgICAgICAgZGlmZltpICogNCArIDNdID0gMjU1OworICAgICAgICB9CisgICAgICAg
IGlmIChNYXRoLmFicyhjbXBbaSAqIDRdIC0gcmVmW2kgKiA0XSkgPiB0b2xlcmFuY2UgfHwKKyAg
ICAgICAgICAgIE1hdGguYWJzKGNtcFtpICogNCArIDFdIC0gcmVmW2kgKiA0ICsgMV0pID4gdG9s
ZXJhbmNlIHx8CisgICAgICAgICAgICBNYXRoLmFicyhjbXBbaSAqIDQgKyAyXSAtIHJlZltpICog
NCArIDJdKSA+IHRvbGVyYW5jZSB8fAorICAgICAgICAgICAgTWF0aC5hYnMoY21wW2kgKiA0ICsg
M10gLSByZWZbaSAqIDQgKyAzXSkgPiB0b2xlcmFuY2UpIHsKKyAgICAgICAgICAgIGlmIChjb3Vu
dCA8IDEwKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGl4ZWwgIiArIGkgKyAiOiBl
eHBlY3RlZCAoIiArCisgICAgICAgICAgICAgICAgW3JlZltpICogNF0sIHJlZltpICogNCArIDFd
LCByZWZbaSAqIDQgKyAyXSwgcmVmW2kgKiA0ICsgM11dICsgIiksIGdvdCAoIiArCisgICAgICAg
ICAgICAgICAgW2NtcFtpICogNF0sIGNtcFtpICogNCArIDFdLCBjbXBbaSAqIDQgKyAyXSwgY21w
W2kgKiA0ICsgM11dICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7
CisgICAgICAgICAgICBpZiAoZGlmZikgeworICAgICAgICAgICAgICAgIGRpZmZbaSAqIDRdID0g
MjU1OworICAgICAgICAgICAgICAgIGRpZmZbaSAqIDQgKyAxXSA9IDA7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9CisKK2Z1bmN0aW9uIGRl
c3Ryb3lDb250ZXh0KGdsKSB7CisgIGNvbnN0IGV4dCA9IGdsLmdldEV4dGVuc2lvbignV0VCR0xf
bG9zZV9jb250ZXh0Jyk7CisgIGlmIChleHQpIHsKKyAgICBleHQubG9zZUNvbnRleHQoKTsKKyAg
fQorICBnbC5jYW52YXMud2lkdGggPSAxOworICBnbC5jYW52YXMuaGVpZ2h0ID0gMTsKK30KKwor
ZnVuY3Rpb24gZGVzdHJveUFsbENvbnRleHRzKCkgeworICBpZiAoIXdpbmRvdy5fd3R1X2NvbnRl
eHRzKQorICAgIHJldHVybjsKKyAgZm9yIChjb25zdCB4IG9mIHdpbmRvdy5fd3R1X2NvbnRleHRz
KSB7CisgICAgZGVzdHJveUNvbnRleHQoeCk7CisgIH0KKyAgd2luZG93Ll93dHVfY29udGV4dHMg
PSBbXTsKK30KKworZnVuY3Rpb24gZGlzcGxheUltYWdlRGlmZihjbXAsIHJlZiwgZGlmZiwgd2lk
dGgsIGhlaWdodCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKworICAgIHZhciBjbXBJbWcgPSBjcmVhdGVJbWFnZUZyb21QaXhlbChjbXAsIHdpZHRoLCBo
ZWlnaHQpOworICAgIHZhciByZWZJbWcgPSBjcmVhdGVJbWFnZUZyb21QaXhlbChyZWYsIHdpZHRo
LCBoZWlnaHQpOworICAgIHZhciBkaWZmSW1nID0gY3JlYXRlSW1hZ2VGcm9tUGl4ZWwoZGlmZiwg
d2lkdGgsIGhlaWdodCk7CisgICAgd3R1Lmluc2VydEltYWdlKGRpdiwgIlJlZmVyZW5jZSIsIHJl
ZkltZyk7CisgICAgd3R1Lmluc2VydEltYWdlKGRpdiwgIlJlc3VsdCIsIGNtcEltZyk7CisgICAg
d3R1Lmluc2VydEltYWdlKGRpdiwgIkRpZmZlcmVuY2UiLCBkaWZmSW1nKTsKKworICAgIHZhciBj
b25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICBjb25zb2xl
LmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUltYWdlRnJvbVBpeGVsKGJ1
Ziwgd2lkdGgsIGhlaWdodCkgeworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJjYW52YXMiKTsKKyAgICBjYW52YXMud2lkdGggPSB3aWR0aDsKKyAgICBjYW52YXMuaGVp
Z2h0ID0gaGVpZ2h0OworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICB2YXIgaW1nRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykKKyAgICAgICAgaW1nRGF0
YS5kYXRhW2ldID0gYnVmW2ldOworICAgIGN0eC5wdXRJbWFnZURhdGEoaW1nRGF0YSwgMCwgMCk7
CisgICAgdmFyIGltZyA9IHd0dS5tYWtlSW1hZ2VGcm9tQ2FudmFzKGNhbnZhcyk7CisgICAgcmV0
dXJuIGltZzsKK30KKworYXN5bmMgZnVuY3Rpb24gYXdhaXRUaW1lb3V0KG1zKSB7CisgIGF3YWl0
IG5ldyBQcm9taXNlKHJlcyA9PiB7CisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICByZXMo
KTsKKyAgICB9LCBtcyk7CisgIH0pOworfQorCithc3luYyBmdW5jdGlvbiBhd2FpdE9yVGltZW91
dChwcm9taXNlLCBvcHRfdGltZW91dF9tcykgeworICBhc3luYyBmdW5jdGlvbiB0aHJvd09uVGlt
ZW91dChtcykgeworICAgIGF3YWl0IGF3YWl0VGltZW91dChtcyk7CisgICAgdGhyb3cgJ3RpbWVv
dXQnOworICB9CisKKyAgbGV0IHRpbWVvdXRfbXMgPSBvcHRfdGltZW91dF9tczsKKyAgaWYgKHRp
bWVvdXRfbXMgPT09IHVuZGVmaW5lZCkKKyAgICB0aW1lb3V0X21zID0gNTAwMDsKKworICBhd2Fp
dCBQcm9taXNlLnJhY2UoW3Byb21pc2UsIHRocm93T25UaW1lb3V0KHRpbWVvdXRfbXMpXSk7Cit9
CisKK3ZhciBBUEkgPSB7CisgIGFkZFNoYWRlclNvdXJjZTogYWRkU2hhZGVyU291cmNlLAorICBh
ZGRTaGFkZXJTb3VyY2VzOiBhZGRTaGFkZXJTb3VyY2VzLAorICBjYW5jZWxBbmltRnJhbWU6IGNh
bmNlbEFuaW1GcmFtZSwKKyAgY3JlYXRlM0RDb250ZXh0OiBjcmVhdGUzRENvbnRleHQsCisgIEdM
RXJyb3JFeGNlcHRpb246IEdMRXJyb3JFeGNlcHRpb24sCisgIGNyZWF0ZTNEQ29udGV4dFdpdGhX
cmFwcGVyVGhhdFRocm93c09uR0xFcnJvcjogY3JlYXRlM0RDb250ZXh0V2l0aFdyYXBwZXJUaGF0
VGhyb3dzT25HTEVycm9yLAorICBjaGVja0FyZWFJbkFuZE91dDogY2hlY2tBcmVhSW5BbmRPdXQs
CisgIGNoZWNrQ2FudmFzOiBjaGVja0NhbnZhcywKKyAgY2hlY2tDYW52YXNSZWN0OiBjaGVja0Nh
bnZhc1JlY3QsCisgIGNoZWNrQ2FudmFzUmVjdENvbG9yOiBjaGVja0NhbnZhc1JlY3RDb2xvciwK
KyAgY2hlY2tDYW52YXNSZWN0czogY2hlY2tDYW52YXNSZWN0cywKKyAgY2hlY2tGbG9hdEJ1ZmZl
cjogY2hlY2tGbG9hdEJ1ZmZlciwKKyAgY2hlY2tUZXh0dXJlU2l6ZTogY2hlY2tUZXh0dXJlU2l6
ZSwKKyAgY2xpcFRvUmFuZ2U6IGNsaXBUb1JhbmdlLAorICBjcmVhdGVDb2xvcmVkVGV4dHVyZTog
Y3JlYXRlQ29sb3JlZFRleHR1cmUsCisgIGNyZWF0ZVByb2dyYW06IGNyZWF0ZVByb2dyYW0sCisg
IGNsZWFyQW5kRHJhd1VuaXRRdWFkOiBjbGVhckFuZERyYXdVbml0UXVhZCwKKyAgY2xlYXJBbmRE
cmF3SW5kZXhlZFF1YWQ6IGNsZWFyQW5kRHJhd0luZGV4ZWRRdWFkLAorICBjb21wYXJlUGl4ZWxz
OiBjb21wYXJlUGl4ZWxzLAorICBkZXN0cm95QWxsQ29udGV4dHM6IGRlc3Ryb3lBbGxDb250ZXh0
cywKKyAgZGVzdHJveUNvbnRleHQ6IGRlc3Ryb3lDb250ZXh0LAorICBkaXNwYXRjaFByb21pc2U6
IGRpc3BhdGNoUHJvbWlzZSwKKyAgZGlzcGxheUltYWdlRGlmZjogZGlzcGxheUltYWdlRGlmZiwK
KyAgZHJhd1VuaXRRdWFkOiBkcmF3VW5pdFF1YWQsCisgIGRyYXdJbmRleGVkUXVhZDogZHJhd0lu
ZGV4ZWRRdWFkLAorICBkcmF3VUJ5dGVDb2xvclF1YWQ6IGRyYXdVQnl0ZUNvbG9yUXVhZCwKKyAg
ZHJhd0Zsb2F0Q29sb3JRdWFkOiBkcmF3RmxvYXRDb2xvclF1YWQsCisgIGR1bW15U2V0UHJvZ3Jh
bUFuZERyYXdOb3RoaW5nOiBkdW1teVNldFByb2dyYW1BbmREcmF3Tm90aGluZywKKyAgZHVtcFNo
YWRlcnNJbmZvOiBkdW1wU2hhZGVyc0luZm8sCisgIGVuZHNXaXRoOiBlbmRzV2l0aCwKKyAgZmFp
bElmR0xFcnJvcjogZmFpbElmR0xFcnJvciwKKyAgZmlsbFRleHR1cmU6IGZpbGxUZXh0dXJlLAor
ICBmcmFtZWJ1ZmZlclN0YXR1c1Nob3VsZEJlOiBmcmFtZWJ1ZmZlclN0YXR1c1Nob3VsZEJlLAor
ICBnZXRCeXRlc1BlckNvbXBvbmVudDogZ2V0Qnl0ZXNQZXJDb21wb25lbnQsCisgIGdldERlZmF1
bHQzRENvbnRleHRWZXJzaW9uOiBnZXREZWZhdWx0M0RDb250ZXh0VmVyc2lvbiwKKyAgZ2V0RXh0
ZW5zaW9uUHJlZml4ZWROYW1lczogZ2V0RXh0ZW5zaW9uUHJlZml4ZWROYW1lcywKKyAgZ2V0RXh0
ZW5zaW9uV2l0aEtub3duUHJlZml4ZXM6IGdldEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzLAor
ICBnZXRGaWxlTGlzdEFzeW5jOiBnZXRGaWxlTGlzdEFzeW5jLAorICBnZXRMYXN0RXJyb3I6IGdl
dExhc3RFcnJvciwKKyAgZ2V0UHJlZml4ZWRQcm9wZXJ0eTogZ2V0UHJlZml4ZWRQcm9wZXJ0eSwK
KyAgZ2V0U2NyaXB0OiBnZXRTY3JpcHQsCisgIGdldFN1cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93
blByZWZpeGVzOiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcywKKyAgZ2V0
VHlwZWRBcnJheUVsZW1lbnRzUGVyUGl4ZWw6IGdldFR5cGVkQXJyYXlFbGVtZW50c1BlclBpeGVs
LAorICBnZXRVcmxBcmd1bWVudHM6IGdldFVybEFyZ3VtZW50cywKKyAgZ2V0VXJsT3B0aW9uczog
Z2V0VXJsT3B0aW9ucywKKyAgZ2V0QXR0cmliTWFwOiBnZXRBdHRyaWJNYXAsCisgIGdldFVuaWZv
cm1NYXA6IGdldFVuaWZvcm1NYXAsCisgIGdsRW51bVRvU3RyaW5nOiBnbEVudW1Ub1N0cmluZywK
KyAgZ2xFcnJvckFzc2VydDogZ2xFcnJvckFzc2VydCwKKyAgZ2xFcnJvclNob3VsZEJlOiBnbEVy
cm9yU2hvdWxkQmUsCisgIGdsVHlwZVRvVHlwZWRBcnJheVR5cGU6IGdsVHlwZVRvVHlwZWRBcnJh
eVR5cGUsCisgIGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZTogaGFzQXR0cmlidXRlQ2FzZUlu
c2Vuc2l0aXZlLAorICBpbnNlcnRJbWFnZTogaW5zZXJ0SW1hZ2UsCisgIGlzV2ViR0wyOiBpc1dl
YkdMMiwKKyAgbGlua1Byb2dyYW06IGxpbmtQcm9ncmFtLAorICBsb2FkQ3Jvc3NPcmlnaW5JbWFn
ZTogbG9hZENyb3NzT3JpZ2luSW1hZ2UsCisgIGxvYWRJbWFnZUFzeW5jOiBsb2FkSW1hZ2VBc3lu
YywKKyAgbG9hZEltYWdlc0FzeW5jOiBsb2FkSW1hZ2VzQXN5bmMsCisgIGxvYWRQcm9ncmFtOiBs
b2FkUHJvZ3JhbSwKKyAgbG9hZFByb2dyYW1Gcm9tRmlsZTogbG9hZFByb2dyYW1Gcm9tRmlsZSwK
KyAgbG9hZFByb2dyYW1Gcm9tU2NyaXB0OiBsb2FkUHJvZ3JhbUZyb21TY3JpcHQsCisgIGxvYWRQ
cm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yOiBsb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RF
cnJvciwKKyAgbG9hZFNoYWRlcjogbG9hZFNoYWRlciwKKyAgbG9hZFNoYWRlckZyb21GaWxlOiBs
b2FkU2hhZGVyRnJvbUZpbGUsCisgIGxvYWRTaGFkZXJGcm9tU2NyaXB0OiBsb2FkU2hhZGVyRnJv
bVNjcmlwdCwKKyAgbG9hZFN0YW5kYXJkUHJvZ3JhbTogbG9hZFN0YW5kYXJkUHJvZ3JhbSwKKyAg
bG9hZFN0YW5kYXJkUHJvZ3JhbUFzeW5jOiBsb2FkU3RhbmRhcmRQcm9ncmFtQXN5bmMsCisgIGxv
YWRTdGFuZGFyZFZlcnRleFNoYWRlcjogbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyLAorICBsb2Fk
U3RhbmRhcmRWZXJ0ZXhTaGFkZXJBc3luYzogbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyQXN5bmMs
CisgIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyOiBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRl
ciwKKyAgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXJBc3luYzogbG9hZFN0YW5kYXJkRnJhZ21l
bnRTaGFkZXJBc3luYywKKyAgbG9hZFVuaWZvcm1CbG9ja1Byb2dyYW06IGxvYWRVbmlmb3JtQmxv
Y2tQcm9ncmFtLAorICBsb2FkVW5pZm9ybUJsb2NrVmVydGV4U2hhZGVyOiBsb2FkVW5pZm9ybUJs
b2NrVmVydGV4U2hhZGVyLAorICBsb2FkVW5pZm9ybUJsb2NrRnJhZ21lbnRTaGFkZXI6IGxvYWRV
bmlmb3JtQmxvY2tGcmFnbWVudFNoYWRlciwKKyAgbG9hZFRleHRGaWxlQXN5bmM6IGxvYWRUZXh0
RmlsZUFzeW5jLAorICBsb2FkVGV4dHVyZTogbG9hZFRleHR1cmUsCisgIGxvZzogbG9nLAorICBs
b2dnaW5nT2ZmOiBsb2dnaW5nT2ZmLAorICBtYWtlQ2hlY2tSZWN0OiBtYWtlQ2hlY2tSZWN0LAor
ICBtYWtlSW1hZ2U6IG1ha2VJbWFnZSwKKyAgbWFrZUltYWdlRnJvbUNhbnZhczogbWFrZUltYWdl
RnJvbUNhbnZhcywKKyAgbWFrZVZpZGVvOiBtYWtlVmlkZW8sCisgIGVycm9yOiBlcnJvciwKKyAg
cnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdDogcnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdCwKKyAg
c2hhbGxvd0NvcHlPYmplY3Q6IHNoYWxsb3dDb3B5T2JqZWN0LAorICBzZXREZWZhdWx0M0RDb250
ZXh0VmVyc2lvbjogc2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24sCisgIHNldHVwQ29sb3JRdWFk
OiBzZXR1cENvbG9yUXVhZCwKKyAgc2V0dXBQcm9ncmFtOiBzZXR1cFByb2dyYW0sCisgIHNldHVw
VHJhbnNmb3JtRmVlZGJhY2tQcm9ncmFtOiBzZXR1cFRyYW5zZm9ybUZlZWRiYWNrUHJvZ3JhbSwK
KyAgc2V0dXBRdWFkOiBzZXR1cFF1YWQsCisgIHNldHVwUXVhZFdpdGhUZXhDb29yZHM6IHNldHVw
UXVhZFdpdGhUZXhDb29yZHMsCisgIHNldHVwSW5kZXhlZFF1YWQ6IHNldHVwSW5kZXhlZFF1YWQs
CisgIHNldHVwSW5kZXhlZFF1YWRXaXRoT3B0aW9uczogc2V0dXBJbmRleGVkUXVhZFdpdGhPcHRp
b25zLAorICBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbTogc2V0dXBTaW1wbGVDb2xvclByb2dyYW0s
CisgIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW06IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0s
CisgIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW1FU1NMMzAwOiBzZXR1cFNpbXBsZVRleHR1cmVQ
cm9ncmFtRVNTTDMwMCwKKyAgc2V0dXBTaW1wbGVDdWJlTWFwVGV4dHVyZVByb2dyYW06IHNldHVw
U2ltcGxlQ3ViZU1hcFRleHR1cmVQcm9ncmFtLAorICBzZXR1cFNpbXBsZVZlcnRleENvbG9yUHJv
Z3JhbTogc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclByb2dyYW0sCisgIHNldHVwTm9UZXhDb29yZFRl
eHR1cmVQcm9ncmFtOiBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbSwKKyAgc2V0dXBUZXh0
dXJlZFF1YWQ6IHNldHVwVGV4dHVyZWRRdWFkLAorICBzZXR1cFRleHR1cmVkUXVhZFdpdGhUZXhD
b29yZHM6IHNldHVwVGV4dHVyZWRRdWFkV2l0aFRleENvb3JkcywKKyAgc2V0dXBUZXh0dXJlZFF1
YWRXaXRoQ3ViZU1hcDogc2V0dXBUZXh0dXJlZFF1YWRXaXRoQ3ViZU1hcCwKKyAgc2V0dXBVbml0
UXVhZDogc2V0dXBVbml0UXVhZCwKKyAgc2V0RmxvYXREcmF3Q29sb3I6IHNldEZsb2F0RHJhd0Nv
bG9yLAorICBzZXRVQnl0ZURyYXdDb2xvcjogc2V0VUJ5dGVEcmF3Q29sb3IsCisgIHN0YXJ0UGxh
eWluZ0FuZFdhaXRGb3JWaWRlbzogc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvLAorICBzdGFy
dHNXaXRoOiBzdGFydHNXaXRoLAorICBzaG91bGRHZW5lcmF0ZUdMRXJyb3I6IHNob3VsZEdlbmVy
YXRlR0xFcnJvciwKKyAgc2hvdWxkVGhyb3c6IHNob3VsZFRocm93LAorICByZWFkRmlsZTogcmVh
ZEZpbGUsCisgIHJlYWRGaWxlTGlzdDogcmVhZEZpbGVMaXN0LAorICByZXBsYWNlUGFyYW1zOiBy
ZXBsYWNlUGFyYW1zLAorICByZXF1ZXN0QW5pbUZyYW1lOiByZXF1ZXN0QW5pbUZyYW1lLAorICBy
dW5TdGVwczogcnVuU3RlcHMsCisgIHdhaXRGb3JDb21wb3NpdGU6IHdhaXRGb3JDb21wb3NpdGUs
CisKKyAgLy8gZnVsbHNjcmVlbiBhcGkKKyAgc2V0dXBGdWxsc2NyZWVuOiBzZXR1cEZ1bGxzY3Jl
ZW4sCisKKyAgLy8gc1JHQiBjb252ZXJ0ZXIgYXBpCisgIHNSR0JUb0xpbmVhcjogc1JHQlRvTGlu
ZWFyLAorICBsaW5lYXJUb1NSR0I6IGxpbmVhclRvU1JHQiwKKworICBnZXRIb3N0OiBnZXRIb3N0
LAorICBnZXRCYXNlRG9tYWluOiBnZXRCYXNlRG9tYWluLAorICBydW5uaW5nT25Mb2NhbGhvc3Q6
IHJ1bm5pbmdPbkxvY2FsaG9zdCwKKyAgZ2V0TG9jYWxDcm9zc09yaWdpbjogZ2V0TG9jYWxDcm9z
c09yaWdpbiwKKyAgZ2V0UmVsYXRpdmVQYXRoOiBnZXRSZWxhdGl2ZVBhdGgsCisgIGF3YWl0T3JU
aW1lb3V0OiBhd2FpdE9yVGltZW91dCwKKyAgYXdhaXRUaW1lb3V0OiBhd2FpdFRpbWVvdXQsCisK
KyAgbm9uZTogZmFsc2UKK307CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEFQSSwgeworICBu
b1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlcjogeyB2YWx1ZTogbm9UZXhDb29yZFRleHR1cmVW
ZXJ0ZXhTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVUZXh0dXJlVmVydGV4U2hh
ZGVyOiB7IHZhbHVlOiBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyLCB3cml0YWJsZTogZmFsc2Ug
fSwKKyAgc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlckVTU0wzMDA6IHsgdmFsdWU6IHNpbXBsZVRl
eHR1cmVWZXJ0ZXhTaGFkZXJFU1NMMzAwLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlQ29s
b3JGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlciwgd3Jp
dGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXJFU1NMMzAwOiB7IHZh
bHVlOiBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyRVNTTDMwMCwgd3JpdGFibGU6IGZhbHNlIH0s
CisgIHNpbXBsZVZlcnRleFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlVmVydGV4U2hhZGVyLCB3cml0
YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVmVydGV4U2hhZGVyRVNTTDMwMDogeyB2YWx1ZTogc2lt
cGxlVmVydGV4U2hhZGVyRVNTTDMwMCwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZVRleHR1
cmVGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyLCB3
cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyRVNTTDMwMDog
eyB2YWx1ZTogc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyRVNTTDMwMCwgd3JpdGFibGU6IGZh
bHNlIH0sCisgIHNpbXBsZUhpZ2hQcmVjaXNpb25UZXh0dXJlRnJhZ21lbnRTaGFkZXI6IHsgdmFs
dWU6IHNpbXBsZUhpZ2hQcmVjaXNpb25UZXh0dXJlRnJhZ21lbnRTaGFkZXIsIHdyaXRhYmxlOiBm
YWxzZSB9LAorICBzaW1wbGVDdWJlTWFwVGV4dHVyZUZyYWdtZW50U2hhZGVyOiB7IHZhbHVlOiBz
aW1wbGVDdWJlTWFwVGV4dHVyZUZyYWdtZW50U2hhZGVyLCB3cml0YWJsZTogZmFsc2UgfSwKKyAg
c2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlVmVydGV4Q29s
b3JGcmFnbWVudFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZVZlcnRleENvbG9y
VmVydGV4U2hhZGVyOiB7IHZhbHVlOiBzaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciwgd3Jp
dGFibGU6IGZhbHNlIH0KK30pOworCityZXR1cm4gQVBJOworCit9KCkpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZjY4MzliNjIxNDc3M2IwYTAwYmM4YTJiM2I2MmFjZjY0ZGMxZGVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MKQEAgLTAsMCArMSwyMCBA
QAorLnBhc3MgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGNvbG9yOiBncmVlbjsKK30K
Ky5mYWlsIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBjb2xvcjogcmVkOworfQorLndh
cm4geworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgdGV4
dC1zaGFkb3c6IDFweCAxcHggI2ZmMDAwMAorfQorI2NvbnNvbGUgeworICAgIHdoaXRlLXNwYWNl
OiBwcmUtd3JhcDsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworfQorYm9keSB7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL29wZW5n
bF9sb2dvLmpwZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2I3MGJl
ZjNmMmM3ODczNmM3MmUyNjNiNjNhY2VhOGQ5YTk0NjdhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCA1ODI3CnpjbWEpZmNUZntmd3t7e09maz42IUxRejVLT31aZXhnRVJ3NT9fSDRJZG9MbW9nd1Ay
c2JWNWdJNWZCan1iZFV9Swp6Z0xMVSFlKCF6ZntsMEkkYF5TQ3VvU0JfSGQhRG5pdiU5bTs/YWJ7
bTtETVR3c3VCUXI0Kjs7ZllrPUZ8MENHaWQKekQ8P2t5NVAlQiswSHA0UV81ZnReKV4zKEkwUER8
cEJmIzV2S3FMU2s3Wig9fjdhdER+cDl1Zlg/LVN6VjZXJTh3CnpDY2FOaE8hOSFfVXdBLTUyNl9N
QEJjWV9FcU4xY15XTUUpbVdjZCQoMU94PTZCJjQodDk/O1RMbFQqfEdDLUFAUgp6KzxwZC02OU95
JTNwaFk+eiYmeXg0bXQzKTl7e351QTEpNT9aa2hpOUUqP0dzQEUjNSE1RDM3el5aeUk/YUJ6V20K
ejQqPlVvSVFNWElhMHJOVGFTODZDY1hJKmNjUyZwbDZhQDBSbG9sVEJWUUdjK2YtazdYXig7TnA4
XkEpO2drTShsCnpBTVBJcigtaWU4V0U2OTctUFFqR3xGSGtOXmNARXxFfU1XWmcqLWRlOWZQMUFf
O3dDSmF1Pld1anpiUVIxKU9MQwp6Ym5wUD9wI3dMTElKcVBBZUVNfi1uMFp8d0NVeSllYzlVV3M3
ZTJGfk16IWt5PllUdWVZRi1LVVVANz9FQDNSeW0KekdZNyZ8WE1BQ2l1ZzF8S29QelR5cEhYUWAz
IUM4bUduTVdtZjlSQ0MrUntBM2ByaDdfbS1xM2MtQEI5e0o9M3FYCnpDdHRVMmNKP35ucHlma3Mp
WCRWWlVzRGA8QyR3SntLQWstMT5ZTjBANE1MO3tifVk5ODI1Ul9AMWQ1enw0eyl7LQp6IVM/NmU3
YVBsLTFBbnc2UngtbTQmWn5rPVlqKTFLVENQJHErYExYKEVEUmlTblpfYWBWIWw1Q25aRiNMTiNK
T08Kej1JM1JIKWVDfk5uUHFZQTF2ezF3NnJuaT1mKj9HUjtVfU1NK3dYLXdgaFJUemw/VXdPNkpu
c0M2amU7MXZXbH1eCno9QmEkelAxd2ZLI3dyPW5MRj5EeWdHc3dVTkRUazdaQn0/YTFSWDdEPU5X
ekR5VzVeQzBERjg5QjAhcThVODVVbQp6WF9ibDRjPkI+KFJnQnstITtuTE1DRCFpeVV9eSQhZUUh
SjZjX3B7TnZMLVg0NXZmSGMpdSNNO0ZmdilUXmgrPV8KenJDa3kybmNCYEk+OWMrZDswN3A0Wktl
ZzZie1U+cD9JIyNFQ3dpYn1DOHM8Tm5nbVhLcEVTWk05REFsJkBUeWQ9Cno+T0ZudGVPcXE8KSVC
LX1wY19aJjk+UENzdypidSlyQHR8YXFpZ0d5R31rKkB5U0QmPiltd207cHdDZU5ZSntCKgp6bCVj
ZUg7O255RE9DWmJlVjZeNF5jUUhFdDshbDQ0cj9PWEpqdkVjI0QkPVRxZztPRn1ie21LSyF+SlpB
bFBGJFQKelF4LUwheTxqO31lP0IoPCg1Njx5IzV0I0twR2h1N0hgckF+Nk03S3ooNVBZQnpEWmJt
d3NgbEU/MHg9fEtucXZVCnpxMkhBMTxaNG9DdiVudVhHYkdSdkZXT0N4M2l5QlFWU3haelBHSFhy
VTJibjJ0dlZ6OE8qUkkhIzhxeWxfMHJJXgp6TmJmUz95YCVyK0AxdFF1M2ZJJk1SXm5wfCh7UVF0
bmEhYDRxb315NT1aX1NFZ0RjMm5gdnl2K1hnRjgzVFJsWUsKem8jM2pjYCN1dmItSjRTLU96TE5r
ODI1RmFaLTkzeT9mbEs/Y1BCJFFGNVBfZXNxaXdgTDU2YUNKSnVvOC1CdmMkCnpqYWBqcXteTWI5
Rl5pb08wemRwQ3N4cWdlVDNfKztIaUtIe0xvfnd8YEQ7Tjg5dEFZWUcwQzViYm9aenZHZHc4Qgp6
PGFEZ1pVaWolKWV+QU99bGFldzFCQjBUM3JodWh+ekR6PzM0QEQpKT5BSnQ/RmZ6cTVGSEdKU040
P0IhUSlAQWkKemIjVCR3eEE4JjxWam09X3dAOC0xJSRPZWNvVT0pWk0rc20mRSpkfXcpYyYoMGVM
YEpJYEllfT47PkVWKnVeNUhMCnopRHx2Q0F7KitmY1M5bypQaypvPENiOXlfZHQ2KWJYa28yQyFC
KSZqPygraChxTT9EcWJCTiF4b092anBvSzxEJAp6PXMma3RoYUwqZEBPRzY3eTA3VispdV5fPm1V
c3FqZkNtVXh4Iyt5NHRhZCMyJiRyR28oSzEmUyEjUHE7dHlMM0gKemJAJWhpYiNfY3c3JWNmKCRr
Xno0ZFFrWDxpKWBpUnlQVTtxNXRzO1VFJW1fU19ld0E8eXtoP1QhJG1wZ2NjU2pPCnpLVXx7MVZQ
dHZ0ZVR+Zl5tazRvYUBlJWpMdik2KVZNYXkjP3k5eF9CbDxfeThjNiY3KCNRRCM4Z20qa2RVWkJ9
RQp6QndwRTZrOGEtITlvOzY7cChgSzspRDtOMHhoVD4lNncrOUQ9OzRCY0g1PVg4Umh3VGE0Smt+
Z3UmNml5XitUZXMKekQoOSopdyMoK05zR305TTFJZURtXjRJayNtV09ARnl8ISNaPT58M21Cazlp
PW8wY3h0dlIrTnJzVENwKFFXO1hFCnpFPGhYYkY8bkc8dChXdmleVVB8OElSdjkkRDx3aW5fO2RF
VWcxZypCNzEoJHMqQn1FemRSZ2w9ZlpXJUFXXmg4Qwp6VFY3Jio2fCFPWT5QLWltT2E3LXNOd0ll
RSshVFhKY1AjPGI2P3I1V2ZfemcrM2o+a0dXNn1PWEFMalJScTtee0kKekUxbjdjYkRacjVyK1l3
ZDZOLVltbDdIUVlEdEdwUHZONGZxXmsqempqdmJAUEh7TThualR3MXJ1RVVZOFo+M1B8CnpvVnd4
SW8tZFBAaF43MUJ5YGszbWxlK29xWH11YDVTPnM4dkk9cEkwXklgQjt0V1JFMjFsQHliXjcmOSpU
Wj5JcAp6UE9ZZSheWUkjMDhYRyNtNEIxUiNNTzlaTkNMRjg8ZzRRKXgoNng1UCQqYUltdSQwRUwo
NEpLUip4NWBYNlVSRGQKekJJSD00TXs9LT51PSZ2fnBnaDtvZG5FajVqdjw9Vk8kcWZxYXpCJiRe
QzFiSlRZQmVUTSZeOGZ0Qm5FMFpIU1RKCnp5XnxrSTNPNXBnJE4yc09aRjhZeE0mfi0jRDRtVTlW
Zl5RPDlfTE87JWJQbSR0dGFxekwxM19xX0JGTE0+c2hYUQp6TVgkYGEjSTJuTUtPPkpffEw8JGw+
OWklP0peQEh8Qnl+TGJEZkhKPGVeUihJS2B0JmZnUyo0N3pUTC1NYTNxNTwKemhpdD9yLV9NIz9k
I0NEMjNiZ0pQVkMhYlU7bX5udUlzWFJPT2x5eyRBTCpZKVZaR2g5R1Z2fFY2eUMjXkF2ITx7CnpB
cTxmMU9lVnUqc0U1cnFVQ24lMyR7e0dfZHtHJE5PMCMzUWFVO1U/cTQ5KEV0TF99VHp1fEs4Sl9Q
MzRQWSV2Vwp6bTVteCsyVF8raGZeR29+bFFyaXZyYEkxNVNmNXpUQHQ2fCM0RC0lY1hSKjZ1U2lz
PG9maWg5KjxjTGY4OXlWT3wKelFrdW9ETjRER0w5K3ZJQzRfTWtuQDglMm5TdzFHKyMlKkF4IXMm
NzFIeyRsKT5kNV43QGVQJVFzIzZ9dl9hWFRyCnplb1VHKlBHcGJzPlRveT4keUp5MkhOJVBqY0Zl
c0srPWoodFpySih0bCFaSzwlJldIV3JKTCYwZHVBbkwjSSYmcAp6XnxofmgjX0l3YzttZEd9aFcr
fE9ZRUM+SiFWVXBiT1dKXnhwNXx7ViRKZ1lfRUJyQnFxSj5oNF5oUyhsdilTfEMKeihMO3xFeFNi
NEQ+Qn47YGw7LWxkTWwyVV9gfkBqRkRCIVhXYTFZRj4/VyYhNXl6PD1nNlV0cnhiYTkpYHQwTStp
CnoqcDVkIW9yNWBUVDVWKURTQndgIW9FZmdPNU5odXNkIyo9fCYmI3cjN24xYUc9KVNxN2FVe197
eWgwUUNhNWFoMAp6VSM8X3wwIWw2ZkJIQjY8a2pCPkVBKF5YaFozV2tjM3EwTj0jS1hMYF8hR3c9
ZDh4aU9YJSZDQVBoQF58QlRGVVgKek9+NXAodThGUk1xUjNndHFSTnt5O24jSyhvRThNMCRTR3Yw
TFcjWmxSSUJXbFp8RFhhdyRmQXo2YEJxZnAxRT1uCnohald8Tjx0U212O15NJVpTNk57dWMhQF88
UktobCRzRUVaTEZvaWlhTVdfaVNwbG48ezVzK2khcHJNOFJvbDZFdgp6OWBjXjNvQyhmTz1pIW5k
Wj41SSo5TWBxcjFVJDMoSzxlUk5iUSVrKnNBdiZfVlApUV8+aldibzc9aUc/Jjw/R2wKenZHMlgh
Um5EJWtRfVlJZHVjKzllZj8hOGczdjNkVk4ldylHIyokRH1YNkh3PCY4I3ZlTVMpQ29kdTl4UUla
SCRGCnp0JX1mQEszWj5PMUYyQGp1P0QqKzhIa0tYbEUke3dOJk5OdWYmRkc0O2VBNHQ1WkVraks3
NHc/bGw9MnckdXdAQwp6SDA4MyFaMDx+PWRfdE5UX0JObzN0IzBYYEFCSE0/SEpBczdvOVp5MUpO
XzFjWGVrMTdlJVhMOyolPXghMkBZWnoKejtlSih4bjcyV0xDJT17UndkdkpLKDZ6JWNXWEBTcV81
YGxLWXwzKUZieFdsTTkzTyFWcjJycW5RJDZCVkNNfDEmCnpuJFEte2FaRD0qaCoqNDtJS21odGhl
NkF8JUtOKEBlaTBtK0p4fkspRzZjKkc3cTllbVJUKHlIYVhvR0cydUclewp6YUJFX1glR1FlZiRq
d2xnYGUofUQoUjBrVXZtO1ppWTJ2P3E7LWFffkNoVituM0NZaWNIZHAmRU5BMnA3VT5oZkwKelc2
cSRUS2wjaCV5b05BdmRsTkg0biE0dUxeVTZgWHpmV2ZTOz8jY0VENm9sWXdaJGopM1NfYXZuU3Ep
OS01KjZ0CnpgJFh5Vkwld1BeeyM5Jk9xQSR4U3clK0trPCpEQUt2JDNeM09YMCY9UTxvTnN7eXJe
OXV8Z3JPK3kqYE1BKF9kKgp6NCRWKSMyJUJVMHp+U3xwJSRyY0R4ITFiPDU5Y3U1Pkg2SnNgREkk
NVZMNkxWbUs/a2BAQ2Y0PyY2WUNjPjArazYKenI9O3RNUF89djhSMUhiJGlRfFp5UjdvMz47azk7
eGooQS0lSlZ3RCt1NnRNSW5QO14lP19HaVYxMmNVWmV2aEBCCnpEVFh7Ryo2NXpaPjtXeE9zRjsr
JCh1VEkzemtEM3hCVEQxTWUjIUd4eE1udllMalo/RzBBQ1VyLWxKb0U7cnBzWAp6V004KyttTlIw
KWtNX1h2eGsyezhFRn5BMUxDVVc1IX1HWnZDKnFhJFc5YVl+eV4pen5BJl44UD1nMF96UiRYMDQK
elVEbHwjQVlUazg/K3dISl40TD4qRF8oP2EmdEpvNnQ0cnxYM25fN2JIJmFCMkszQnUjYTxnUjRW
K0woNCsjeyE3CnppdzJHZVAwNjRLITlUa0dNd2VzN3VVZ09lJU89KTBWTTc9eWFEbTV1YiN6fkZC
QFI9dGEhZWt1OENYRkBrbCVyOQp6O2g0WHlYIWNGKERSRldgZ01zQDQqKWwoMik7O3pDUFBTYnps
QX18e3pHMyFXNnMpXk5oJVBsdDc9SX09Zldtb0wKejBTc3k/Vk9US28kfHV8VV5zI0ptdWYldkpG
MFJzS2otTmBTMXZoTXlBanZXeGQ4NF5NY2RAQXUtTHswU0RxOXRmCno5cCN2Nj1QQHo3SVR8Y3pl
dl97NHohelNtVGwqZzVmdlZXKiRDT3J3dHRMJVllNXolQSp2b24wPSVlfTQ7ejFjdwp6PzR4RH10
VGMobykpS3JnRDNzJiZgQFN3M280MF5Abns9QWhtTSFUSWBuLXdyajdadmRrST84PE5jQHpPU3p4
OGwKeiZ5dTZgX0Y4dmlFMGs5VXNAJjF2PS03cGhLSlolK0hRVmNsOUVWS2MhPUxSUkI7MztWbmBl
OEtNRGhEYSV9VWR2CnpvekloTmdnOyVGempyT3UzR0J1aUFUSE90Q1Q7O15FTVRRIWJXPmdyT2FA
amxDYC1hTHwwNlhyb3kqRHhTTTB1Rgp6KytAazJaTFApaGlHOWRZKlUjQihkUHU3TWdCdT4+cCpM
RUR4KGNiVWArK0JEaz9ITmprI2NgJUZZU2BsMGBzaGYKemgobTsobiNtIVRQdE83OGorLVd0KUNZ
SU8mbS1Rbm5UUkx7M0soYGRxSntyVEtJd1BSQSVGRiRZPCpHZk1TTXRXCnpNVWlHUmVNZTx1Uml2
Sj9fQXtkemBtc2pReG93ajxVZEYpZHczTjhpSmE9bzAtc0YtcStVY0UyIzxwUlI3NGM9bgp6YDw1
VHk9Uz5kRjNeWVlRVlNUK2BxPDZ7YXo1WlFTZ05Cc1VqZm9DM0dWNSQxQzJRZHI8RW9VaSUmJWJ0
ejNHRFcKeklLIUoqTlR4dlFZbD9WcypaalRSJVdPblNzUzx9RUtTangjNSMzZHJqTCFqOEB2Vkw3
QXdMYlBOaHRqSi1KVVl3Cnplb0cmdCtDbWZoUUJ3S19qSD1DWWxXV2t8SEFwdFhTNX5ufW9Tc31O
MkA5Mz0mRFVyeGdwOWhGUzBjNGZUITtISAp6V1Q/VVkmezg4Vnstak9IOERfVXp3ZlVoI2E5VHBT
TH5aNGREKmBXOVV3ZSs0V3o5cStENyomTDNFbEktUEkjfm4Kem47YjBoTSo5TUJyNHE7bXFHZk9A
RTgzZj5ROHRzV0FGSm9iRigqey1yYU94SiR0RlJLcHVYd2NlJVZiJlJEKU5GCnpwZD0/JnFyaFlZ
Zkt8SSluSzYyR3QkLUw8P0NGQSliKzxwS0ghTEt+ZGRUTTdIPXc7fUJaS1B+enZKdHQyPVNXVAp6
I0c7VmlYMU51MmRJIXotM14hMjt6dWJ1PFZZemA+bTk8dUAkez5xNypQRHokeXRpKEwwTTBAX1R6
JlRGYjFDJnAKenZiUiVBTEpBSGxCY2I5fUsyaSNBWDVeYGZzeXxMITg8QTRGKVgmJUMhVWV9Ny13
T1ZVPy1eaSt2MnJ+MXw2K0hYCnpWcHB0USt4cFFicmx8PWwlbWQjfGVaOUtCR1EzYihZbyorOSNA
ZSRXJCMtMyFOWk9oTUFjelMrS2RPME4pa3JxQwp6b1p8RCMhYWdfRyZZQFUkUCZMUUhZVE5FanRj
ZjIhd01OTk5nZCohRmVkYGhCLSVEfCZCal9YJm9pfHc4PXs0NHkKenZeOEIlN3NeRC1kfGx+QGNi
KDI4OXdiaXlqQU1DPDc9fWYmPUswKkgjNVVoRnNoKWhKKXQ9QFVOPERyMSRPNCFaCnpiSDs0YWVH
Uy1US1Bub1pKMjRnKzVadS1RJTE/SUwqRzR+NndLV19XN2lAeEkmVytRb2ArYGVWaTthTXRIPmBv
WAp6WH5BOExQVGJPc1A1ZSNOI3xOKmg2ODRub3FqZFo4NkBLWnVAb35SaSlAfTFhQih3QGQoa0ZB
IW5MUnYpK1cmbCEKendLYWhAKHttfmtqSkg2eCs7QnozVEU8bz87ZTd4X3kkRXxONlZMSHxnV1BP
JTtWQjRnbDtEY2Rjfitaa3FySDxACnplaGE4Z04obzhZJG9oUlV8R1FTbTVibDM/IyQpJl9lUH1S
dit+dWo+P0JnaUJQcm5rP1dKMilfJVo0dExLV2BQRQp6Y0JvOW0kRjMhQD4kfDVfIWRFcntZcFNC
RTk1S0EzRn4hPkhqbnphOTY+VD1KYUE2X08xN3lQMENDKHBpeHp4eXQKejByP052UkIxJW09KkVw
fXU0OyNLRUp9V0gxWUI0QTswdCpuY35jYXU3TkR8SzJ8NnY4eTlLPEVveldoR29UbTBaCnp3Pig4
RDRkJlM8YjEwaUB6emI0NzVOQmxBOFIjazJ2Uzx5MllhNUROKGMhLTlUI0B0OVR7Zk1UcyQ/fmlx
cnh4SQp6QSUhazJPXjgkenhxQ0RFOTxvQk85b1FGR3pgdGUyMlRNd1JJMChpc0dGMj1ESTJzTkFo
O1YjdkhnclhxSjQkfk8KemFwKjRIQkdTOzZFRm9aMHdWYmYjV2M7JX1UNCgwYGFqJU12VVVtNmdp
RndtTmBKdDVxO3ojTWE1KGBuUTQ4KkJLCnpMbT98T2cqQmFzVVFGTkpVPi14WWFfUykoN2FYQChn
OUBkUWBiZHxTYV5qM1M0SXt1KkE1UUJEX2NAdnE8VDxfbgp6P1huaWR7SCZ3PU4qNkx7bDlRP0tn
X004dXF7ZUNKLUgyaG8lXlhKdWN9cSlIWS1fN1RKK0UzSmQtNjQjIUZ9SyQKelQ1JmhzN09vfSFN
TzMzeGN7S3hrbk40M2FhSz1AVisrQjFZemV6aFJGeGt6R0RGOzZxS2xJNEo0ayFHMSVoTVcrCnp1
Vl5CZnBuIVVxRH0lPl4wOE1KRHpBel5YN3pqK3Z4JkFpU1N9QE4mQn5fZyVLRihnQHszUzU7SS10
angpJnNlKwp6T3phMCVAcjhMTno9e3kyTHE1N3MlbEJpbzRCSG1XNGp3NShVQVI/ISkoYTRkNWtu
OTZLdSNXfjI5VG41LWJmcVMKek9CJHM/WXxGRlU3KUI/O2E2RC1uaUFIMz8qUT9vLW1QWFlVJDN6
MnZVZjtKV0k/QSpkYEMmOF9TQFJFP2c4VG83CnpWWjVrK1g8fEhwWTNTeUROeTUoXlQwZVN4MSpE
TnYlaGEtWV4oVFc5KUolNHVBbTJ7PVlgMiU1ekVjcXl2MDBgJAp6YUBLNkx2QE04MWF5cig3X0ZW
M29mfTc8XnE+UkI+Tkx4M01vYUNGP0x9QCshJEYlMUslZUltSkBEU1YwK04xK3AKejZRQHo0cTZL
PVpeamh3K3pVPFVAdXh4YV4+USQhMjhPQGlSRERLJXpRIzkrM21kOXc3P2JRMzg3fSpXUS1kaksj
CnojSShpUFkyVWoyR0NNd0ExPWItWm5QREoqM3hLUkc5ZWRafVQmUyRiVT8tYFZ5V35JcUR1P0xB
PlpoVkpJPiVLJgp6QFEqVWBOIX1OUUlpSmBrUGxEdVkhWGgjPUwlUkRXUW5yR2ozQy0ra0lWIz4w
cl9jVU8mSWI3emtAMG09LVFTVkwKekI3MD5WaShXSTZAPXFMVXBDV0F6MVdHaD10YWQqIXZ9cFk1
JnN3K0xJNWFkZGNebjhXSG4xQUUja0BBc29TMHJ0Cno2dU5tJkFIZ0xSZ3xsOEQrV2haTHtNVX5E
Y09PXi0yYjIhUF9IPjZUcSFsfk52VyFObDl3RkNAWGNoM3c9WXUtbgp6X3FZYT08cmMwTGpqb3NO
T1U0SD8mZStlcEJJZz4/dEBATFFaVU5kQXZoVSY+RlYlKyNHXjl1PVp2ayN8X0JYbVkKeihpNV8w
T0M4czxFTXVVMVJ4Xlp3Kzs9TUUqRGNebClePTk3RUVOQ1hsO0doWDtqdXFDVmAjXjxacEhqZ29l
cVhOCnpmNztiRUkwe3ZoY01JQEtRb2RzcChOSERKbklva0hveDJZKHdIKyV9MjhaYy1JWVcmKGpC
fmtfIX40cmttX3lQRgp6S007SGhsQjhxPVFkemhSX3FPQkY2b34kIzFwakFhbCRhKUJJM3ZjO0k0
REcpe0lHWFErITE5PUFfQnwyNkwqdz0KUEdLbSNfe3tRbERaZkV9cyZgdE9rCgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0
LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUy
MzI2ZjU1MTBhMGQyZjg5NjAxYzYyNDU5MDMyYmU5ZDY0NTg1ZGEKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDYzODQzCnpjbWElaVdtNm5YKTkmSyM0dlZ7TWtsLTRlMEt3Zk14STJxJGFDWnhtOzFW
RiVCRWV5PzFiMjVeVX4lNjJzcStXVQp6cjxvZSp4fjhrQXVkZUJ5eFg8ZEp1K1lpVDBSUkEmbEFA
ZHowMDglMjdZPX1tezlqfTJRRWR3VkpoQ2F0TnFfTk0KeklTV1E5RnROI2ZeSz5hVDx6d3MtIWs/
PjdXZ0NKSVhMJkcjcWlGMTReTkN2aiNpPnYxP09hbWRRUFVPUU5mVGV6Cno4ajdufXQpeklGJVA9
Mzwjb3lsVTMzKDZSeWUjbVg/I1ZeI05XaXF8ZVF+KWNHKlctdkkxSnUrYT54T3VUWH1SXwp6IzBi
dSFAUTUmdD9CI1V1cTU9TGw2Z0kqRFApIT1VTXk1JiF7Qk1UQlBaaHB6RjkremxfNVpWPXA7WXQ2
U01xeEIKenduKUFHeWx+V0prdUxXXntVJFleRCg3Zjc1N0BCJnBOeGh1JjZ8eik0KldfVnFNbzN0
d1diMVd6d1VPckZIZVBnCno0ViNqRHZtLSh4cmQ/TH0wTW0te0MpeExQeittPyomdHlMNGU1NndR
eEIhNCg0MWtHTVBgTEs9WVJCfE0kfkB1LQp6YFZVPT1sWWw5IzJIRX4jcz8la28mKGY2fjg4YUQy
ZmVFWHAya0ZVRTFFTjhlWl4tbHslc2deeF59b2dUbFcjfF4KenoyLVQ/YnFyOU5EVUJUc14zQnNJ
c3pteDhNKyZ9WWtmMD1qcmA3fVckYj12aCs/RWF4YW1kTDxpfFR4TGM0VipTCnprJVVyaj17eldl
eF9QaSVRUzRwN3ZoSUNlQCR5I1Z3bjtye2FXTXhtNnBkO14wQGsoYUhUV1FLOG8yT01YJip1eQp6
QX5gMitBeSpVeEtpZUI8SkV6eWheclpoRTQlaCMxQVNWOE1fcXI2cmhtSShuUExwJl84KlUwakp2
bUE8ejY+VGkKek9NUW40TDYxKklEcWlwMi00PTxLbGlIdnlGfGMpViQod3dva3tscW58TnIpWG9B
MzQ1Qnd7IyU5WWhyZ2ZFaXpDCnp3bCYoWSVIRnB9QEY7dEkoTll9QVR9QW1OZGBPJX05JjlSR1RF
ekhnOSFybjFzTmNWcU8qP3ladyslQUB4KDlZQQp6alZ7MjtKYyZqP3F2RlU3bykzIU94VkwxUmd+
RSVUc1lWcHZ0P1VyaXQpaWM3Tzw8Yz84X2o4ZlNuRmI8P3BITVUKek0jYTQ+Yz5YdTNhVDR1ZypE
RG4xZkdoTVFzN3ZxXypFJnl3Uj5tZTRmSnFFYTU8ZUt2WXdhMHZfTn1nWHAkUXNlCno8IW0qfXtD
PXFYNWFkZXs5WChvRU40b3hVYlZxamYpYlJoTDBSSlo/dkhma2VeSEF3d2FscXJBRVVRSk1gJjl5
bQp6Rk9EUFdFa0ltaCkkRzleSjZ9PzRLYDt3KyhKc2peUiY9VTFBNW5VaiYoalV2cnRtcmdNQFph
c149MVlDN2BlXmUKejFhRDF+MXtldDEqPCNWXylnOXVGJlIhcT1RU2NCazBWdXlnbnRxaGcrbVZ2
WjMrKCleUmNNJWMmXjhNaFFRMjdCCnpeWWN6cDB6NlA4Qy1nb217dShKNG1wMlROWikod3llLWdp
V3gpUHRaRm96dzs4aUA2X2BjV19rb2tAO3xYYTNVMgp6cko3Y3tkWUZNN0Y9MDlmLSFkQ0d5JGp6
QWExUks+KHRTZjNlTD5vR1V0aHNLPlY8QyR4enRaJTtLPFUpWSQrJXcKekUjVHtubmtROGxCKkA9
Nj1SPkU5NnRtbyUhT1hGKyt9NSU5VjFVTmtmaSorT2BCUEUtPkJ+cGU7LU88diZSZiZzCnpCTDFo
Yj8mSGIqMmlOaitOSzNgdD1CREl2TWk1Yyp7e1NhVnhSe3ckSXQqKjNXaDw8WDlVPXAkM308ND5W
VjY9UAp6UGopSCZ5Tk9Lck5LSjMpdUg3eyYxbjN7flhUSFdobTRnUGt5aj1CUlVmOXpgeUtmdWVq
eEpwVGRYbXUxUHN5ITkKemtoXmE/LXpLSmBnKzlsZCVsfXs7UnJiUmczfiorVlVjYHU4ITQxPEpu
OHdrVWFuJVImKklnUEd1WSEzQSkwO01ACno0T2FQVXI7bURnI018YXcrdm80d1A3IWZ1Q1N9SjBD
SE0/UmM+NGRsJTVUeFRtbHU5SkVOQkJrYFMrKEJ1V2pvWgp6SUlnM35ePWViWGUkJV83SGM3XnJ7
Ul45JkFuLWtnWn1BYVkqNGckKWZXfU82UTVBTlh8R0tNYTckPntMIT5gTVEKejA+MlloKkotNG1U
PGNkZGhidXs4KUBvZGBAYTtBZl4pRHxLRWNxKzNVVGhKQGc2dUxYS3gkaWN3QVErQGdrUm5ECno2
a0twWiQjOEtwe1NlVElUY2lYSUZkQm93c2p0WlpAbWFMQVVZQCNWTVd1bXlSPClNZCtEWWw8KmVi
b2BLVTRtbgp6UVdJLUhaUUs1TnlOO1Jkbl9kT01lM3dlTlZ6a3RCQ2duPnt5RF9QeEV7NTZ0KEZ5
QmQkPXphNWl8fVZuQDdUQy0KekF5VFBMaH5SRGdZSFlpU3VnbD5XTndJO2hDUDZKM3ghVWdVTFgp
R1RJT1BpfFNofWVEJCgoWFFASCU1YGwkRylgCnpjfiZMbG50JClJcGttZkpZKzl0akJ5V1MqalJK
N2d7PTQ4IylSQ2c/XlFwZ0BZblRGVypYU2gqRnwtTkw9Zjd8Ugp6eC0zMlhiYVhBeV5DLTlUbU9S
NHpXWkdOd3BVWnkxOHZYemRkZzgqcnVoRX1STDw0diY4XzJyNkp9VFV2RkdVTWIKemQ5MjUla1o9
cGJ7LXooODEmeSEybX5iOTNtYypLR2YrUnY2ITJ6dTVVMXZhUmVBWlU0Qj1nLVlBR3NaZWhnVmJV
CnpiZGcpaDRtYGIoVzBVSDw0K0tCX25xei1iKlVVT15kIyUxMkl+YzI4cEtvQEI0T1lJMjlRcSNj
dTV1ekgmSis3bAp6UylxZzgjUDJCbSpIeCF8YkU0Wk05IUUhZlJkMEtPZGxIb1plel93dEFuNGhZ
MEw7fjBEXk59NDNKRXwrXlB1dH4Keit+TEF+elhvTWs1QURyfCpReG9hI3ZpUTFsYDhgTi1xcyFU
X3xMQXlRbiY3ZkRTTmhRe35wRXRBZ2JraCEkPjAxCnpPRHN4dUQjRVd3MDM+S1BhUU5ATHh4S2p0
I1crZipgdy17bEMlUD5CdSEpbSNlYGRvVERHSyh5M3d3YHQ1JWF5TQp6a0tCe34oT1pwaGo7aygk
RFRePXVCXkZZPWF0fGdsa2NoWDFIRnpeal8mJDlhSm1oQHolRSRFd3RLdD4wUz1pR1oKeiZ3bklm
MUVsVjxuX3BHM1VsaWREUU1uPlF0JWolOG4yRExhejtrK2xMP3xaVF92O3lJXzxVU0d2VG4lTSY5
PU5sCnpmeWt7bEFBakhIemx3JW1AP00wXzFtd0JUeVNoZTc+VzdQPzFVOCtUZ0M3VjQpVyV8bnVT
emAhTyglWn15N2dtUwp6RHRITig5cmM8aks2fCV3Tjx7TmRDJjgwcXRBc01IUztAbTB0NGxkYk0k
X0x1UDdocz1GfjRnR2ZNeVJ9S0Y9Z3MKekFtNn53ZDlJKWo+QlNxT3YjX15jQU84b0l5dHZuUUxN
JChSTipVU30qP2FWaGR2QzszRzd2cHgoTiY/T21UKVcqCnpodiorfCFGfD8jd1lXMiE3a241SE8l
bGApWHZnZ0h3dXRjWDdpMWJ5Vk9La0ZaJGkxV0UmJCtHPXx5SiNESjF8OQp6PUxRYWNGfmRLNjhM
V3Mre0Y4K0RIPTcpM0NaWVBKTGxaeiF7PCh6TGhwLVBBdkVYUnNARktKRno4RWdZRVdSbXwKenle
cXNgUmIxI3JfZVMoVEdPeFVUbHlwOTJseT4jOWVCbDV6eyhPJGFCMn0pMmBScTJpTnswRmMwWlFr
UDNqJndGCno4aGV9QCM3MmZNZDBHUGsxV340VEBzSnplOTZAfnxtJlQjNmtvfH15PT5jJUQjRytX
OWVUYn5ESmR3VFJidCRUdAp6MzhuQzFGYlE0eSpzTHR+P04kUERqMTQkPl9uYk9uVG9nMFo/NkNI
ZCt6UGF+cCNVTGB4SGxTalBPfUc3KGdueFMKeiZgTWREcD44cElITVMySXl9bnEjXntiSG4kM1Q0
RktxMi1jOzlRP211SSNOPFleaXlWNUp5dVNzXjwrZXgxLTtqCnpgdTxPUiMqZlByWnNZejU/al55
YmBNekg5WmN3TkQ/QzdoM2g5WV50WHt3LVc5SENPN3VhPllrc14zTiZnIWxLfQp6RHhkI0FzdCUx
bU14NllfJiZaRFhFTXA0PytNSz1MbTRtfVghPXNXIUgmP1ZSTDhtMjBZNllGS14hY0BkXmBXWj0K
emN4UUctNDxsQm5feEEtbldrZE1wYTJPbWtESiRxdW0qaHsrVDQjXmI4aUpvaUFwZUNNQDRGOHQx
Y0I0and6cWRmCnprWTFULUZxJiYkYSp9eEEhKGpJMWtPO310UEAtPVR1cztvZS1IdklBZiEwMjBo
VzdaIzxLfjUkOVFeOEg5QyN8cQp6PnZedVUpWUspNTdBdUVTT0szQDd0ZT9AK1Q5PlR+I35vWiNg
JlQxNSlRS25pKnw3fDtgKyFgKShRajFfPXY9Kk0Kelp4aFdMVWZfdFN7Oz4rTT11PVQweHJFTk5B
WEFIQHB0aW4qO0RtYyY8P042MC0hd3l0bD8zXylnRzswcyhrSl4lCnpwc0tAamlwPFNCIXUhPlZU
IXApQD5vcz1ZSyEwJlUtMEBMfHxFRzJrPkhPalBMekFOYF89WSpHSW1LU3o9IXl0fgp6MmcodUpk
JitEOXg8eHJ7ZGZtbykqYSQ4akl1VUErNHFVfUc2PCYlXylrU2UmJmpiP1E/cHxMP2VxKGJiKUMw
WWoKekZhMikrNnNkMHkmYjE+SjxiPSZ8LWxCQX5Gan1CUjJocGolZ2F9VF57NVUqK0JUMGxPYmlD
bSQxN1AhZnFlZ1BXCno9eWVFJjN7M0EwZjVOUUptQEw3RXVsOWhpMjJpQGpDZ21lWjtALX5xM1pV
QEUkMyVnP3U5RUx7aTgmNFQlTkNUfgp6PTFKNHdQMHtlPyRwcn5WRXEjVlJ3dHNAYClyJUx5ejFo
dXUrOUxuJk5QMD0qb2Y/OE9sVkR5IVZBdGAkRFdvMz4KejFSez13aT1DPjhxKnttKyRoMCQjVCMx
PzgoMHNXYDJNQG88UzNJblU3az9WUXZLOzkqamtJRVFLakUjcDMrT3FqCnpnaSpjVVV0YVlaYW1W
LWAwT2JhRjhERkJzbSQ1IWtXWn4pfkRuMFo3KFo5b2wmJDFednAlMHZ3LVNwcEdWaFdFUgp6NUhQ
YlRpQGh1MERTWCk2cjFAcj5NQm9oST10cmc1JmcmeUxGQmoheipwRDt+QFp8akU2X2ZJbHZ3d2p0
UlVlSmYKejAmXy02TGo1UDckeFI0dGFWQ0xZTGImZVZxaF9MRXtZKnE9JHhkdUJpWGRSekhVblNO
QnYjPzZPTlVrMjtjU2h+CnplP2gxVUZtcWxLTUU3R1MteXluKG5MeHYwPHQ1PDEwSmNGUF56Nj4q
PDA7ISFsWGZ1TnlkXy03VCEwYnZRcShpcAp6bXMtTEREKGQjZ3lxVn02XztFJipGbmpFNEsyYHlC
QmxMfXVSTT9Id180aEhsOUd5ZSV2JmNqfldUZzxQPW0pUHgKeiRRI0Y/ak1COzReLVN7cUdJdTtZ
VmYwQjcwZ3tfMm9YTCtxRTFPNE47WVFxOzdtMTlfTUA+RUxgMWwoZFd0RV9eCnpOQUhCVCkkayRe
KXE3cSgxb1k/JkpQb0ljcV4pTXREfWlTfTh6MEdNSXdAOF4tQ0B7MlcmYWt8Sk5jfENLWSNUawp6
SzFFZjAkVW5VaXZgaTdBbmZWYEtyRTJuPzdCQVJXeHtGUi13VFJSVk8mKk4pUEh5RzdudVl5eUhI
Y25QKWF0Y2MKelRBNk59SCl0X3Y+cjdfM3BtcSZMTUc/Ql9eUUMmaD9Eb0RCVWkqMFQqfGJVI3dF
IW4yKTdjKiRabCF7MnI4cjdfCnppQENvRiNkUTt7ZWc3N3wpSnJDKXtzQVBoejhEV2I+ZyVOXkpk
RmV0JT1BVjAxZmZLZGwwYTAlNSMkI3BpXzczLQp6bj9UNlhHS3RVb2lLfm95QzZHe21zIS1+S3ZL
SD00K3s/QEA7SiFEdVh9RnklITJXVmZnciVfPFMmdn5Te1dWTGUKemtHIzBwO05ZPTlTY05aWlJH
Nm1SVjNRWSVoXnF1PGI9IzVJeFpRPF8+XmVHa3BhZFlidiVlRm5iSTM3I0Q+VVd7CnpoS3R6fipk
NyNOaClwWEZ4SkVhWUJAfnk8UXhHc3EpcktmTnt5T3VmYn5yTiZkNHJLazFkejZpLU9Bczd2ekJZ
egp6NT1KKnNtc04yU05IfVFPbmx+bTxOUypyNChuYTl1T1NFeFJLYWRhNCk1ekxvMTNTYlZEUjdH
cUArIXkwMSR2ZVcKenYmS3JyYHtZZlhBZ1k/O0pxKXdqdStaT145ZClHb0I3N19ERitsQzFgZiU9
fntSaUtkYWpTbVF6WitNKHp3LThGCnpoMjckXys2SUJ4M2BaJCEmJitYUSEhaXp0SlEoLUYhRUgl
VmBIViRpd3MhbD1IYHVmNmFHaFA4MzlpS2MzKWxPdwp6VyFaeWQhJXlyJjZOOElTcGpCS3wmRVc2
Tys3N2VCI2psU2Fhc3FkfXs9fSowOXEyMWJNZ2d7SFMzPyRlUUJzbWQKejhjKWpwUyFUMWI8dEd5
PUBfKC1VV3R4b0luYHxlTEZ8JitnIXAraHxOJDwmUnd2O30tPUlNQyVwQzFSQk56R213CnpZbGRR
P05nei1+WGF6ZzdleXZmQyt6fTFOTzVfeT9uNTdPbjtQX3JhVGZGfWVpTnRjITtVX0V3QFRQUUBK
X0lxfAp6aW9TN3okM30qK3pwU0grLXJSZWcySm5zWW5rVWdldDNSWXtQUzVxJnhIYWlkKyFeJj1V
a0l0alI0NCUmNl4yZSsKel8yejNJPEJHO2loWHxiUnlVQjBjRndJLUpXZUJyPko3SGg8bFd6RSZs
UmEkZFpOey1VV0hsS0U9R3R6JmBSYzx0CnpaXzJMQkYkQ2wqKiU5KlNyQHw5fEVMd0E3ZWh5T1pR
Z1NMbk4reGhzJXw5c1RxMjhQdVJvNXZsSFMmalh4JCRfaAp6Pm4wREpOJUYjTkRXQUNPb1FYN2VX
NjA0fERudWhAeXk5czhsJEUoIzJCejlheDtYbHIlNnlhdGMmZ2VKeV95OyoKejBtNEVAPTJxQVNg
ZXstYTJ4Nm1GUVh3ejRgPUI9eXFGam0+KGZSUXhpMW1eMEZ+PCY/JlFtU3huT0VxYkdBYFRTCnpo
ZGxWTD1GZm5BOCN2NVYpeyRwaGYtd0RJK05XKERCaz1YYlYofDRXMTdOMEZBOXxrZXUmYE0rJiVq
MlhDfTx+Kgp6aDFxPFVAOVJ0Vj5BcUoxeHUtfXEwZWE1dmB5WXBwMit9Q29PMW5vUyF2b3hPOzBg
RHdxQmlYcVVBMnZLbHBvTksKekFLWHVfP3N5ez9wQ0cpZzs0Ui1GZmxaY3BeZChIMFRvTipmRGcq
NkwjLUd6azs+Y2xeVF9IfU5pWkIzOTZlaWstCno2ZVozKT5HKnslXkxffmYmfFdKdkJ6VVUzKHdV
SUEtZVNPQGhMaUd0dH1mVio8RWNSdjUlfnZYMTlndGY8YyRoaQp6OWlObyUlV0RAdldVSjkycnZi
dD0zRCoySiV5LWZ1d3NJfkNfOCtvaTNKN2BROUhBZndqQkM2QGkxTCFVPj1qVGoKekAhISUpTklW
WX5YUk9RUDZoWGUhPWJ5WjJuQz9MeTAhYXhDQV8kOVhGWTEzMygkI31ETGxmWVpDajd9QmpSRWE1
CnpEaDBxd3REMms3bSMxdj1rVX0zKFU5JFMhb181d2kzd1pUNlUjPTlsckJGLTR1T1J0dyg+Xloz
KmpSOF9oPyg/Qwp6VE09VGhMMkIxYHw1XisxQzkrYGhUPWg7WGJtX2s5ISllQW1tdXB3UFpkU1Be
eWFAQjtBcyU8e1E9SnZ8bTgmKHEKelRmTFJUNDdYd0xaITFLIXhxfjNGJHkpVEpyWCV5bWNWTzdt
Y3R4VkhNTCFgIXhgQH1qeGElcEV7SlVIRFJDQ1ZzCno8IWBxVXAkMHpfVUZ1JDF4UlJHTVlKcihy
PTYpZ1c4R1kyYmtHXn12K2M+Rk52LX4zMG9lbTUrS2xJVD5ZPntuMwp6ak5rdUZAWW9tPCY4WlQ3
bjdVcFFCe3orZlA1KX4hJiZWT2p2cVZ5MENNd1UqKSRyUHM+M2d5QUIxU1BmfDBZSlcKekh7bmtk
Slo8PSt0RmV6fEh3VktPaiQpTUxhZ1FLYUtmUVZEcEkpe2lPTEI1PG1eNWtvOzVBZnhNOXd0bE9w
WER+CnpEQmtCQEEwanFrQENufDVnbnYyUSR1JGI4c0tKMENQZUNsI0l9TmwlSndVIz4rWjNrVlFn
NT95KmRJRCVeKkhjeAp6KHkzTlQkTntROGNNdV9Xekk9S0s0YmFAUCR+Y0ZMYyZgNkohI0hVU2FF
SihFZnZCI3k3JWo1Z1EmU1F1TlI4WU4KenQtcyRGRWYlSTxWVzl4XzRffiZkMVNVY1R6R18lS1hQ
JGpaSlViS2RiUX5xVlJwQ3dnSD9MZUlFfSgqK2lVe2ZTCnpMKmpicyVUS1hRMmFJYV89Y0RDdDMy
cyVzeDVaRyRsS319cHpLJX5qPDZSXmJ1VGgkejFeY0NrbzZSWFlzZTlNZwp6dW5OOWRnNmlDMTti
bDtwaTF9KzwqKkRuJE1tcDRKX2l3WmttOWxDQHMqSGJ9KnFRKlJZNW4la2Q7YzFMYnJkJF4Kem9P
V0o/MnBoIXk2MFJ9bmVIcnNnNUBfWl81bDlmTUs5WUd1NiRuSWteaytVcGF5KlBMcmM7QTh5UnN6
Rko2bTh6Cno2NnA0WDlqc0I8R007QFlrUGRDfkdPWkk5ST04WVdwaT92cW5AVDBRX2JNK2AjbyZg
SHk4bjcwelk0eDlUMiN2fQp6NlQkPiFtX0MjdiZtRG83TzNmMDBjOGZmS2x0I1FLamVPSXYmUUFQ
X04wUn5XVHhXcn1DRU00bFlfOCRrV29eYWgKeiEhT348Mm1sfGYxUGFXKmhuKXRiandEfnQ7UUBv
fE5qMCUpaHFWUjFhcVdqVXRFYG87WkZSLS1uUWdGblBSPWBqCnolfTtGbmBHU3AtUkckVyhDSlBW
RW9NMF59eSFMK143bmxLfDZTQEFBSlludiYwMSs3NVEhdlhPXkhpPXZ7OEV9Ywp6Q0dkVkw1fHpe
aUFfRlhRRyopdG9WQ3x3QGchdktXbjsmaXszZk5UMGI8SWFYJEsoV0Fib0hYJDQpU3QkQ2JsXn0K
ej5qOWZGU3JBUlFAWCReQWt4RCtvKlhwMEJWPVg1N2AjRyNzLWs1T1U8VGxxV1NUWXJ6VX19bl4+
YDJHYG9oNSFaCnpFdWlHQVBPXkxNP15LdDttQUZfOUN4QSFrIU18KmhAbmptZl9OQm14Rz5xdz1C
bDE4YHhxazJwYUxvO0JxZDNmOwp6MWx4Y0ViTz59YS1wPVdhNVN3TjxGNlMrX1pMWVYxSTBWZkpY
V2otQkQxNkVfSGo9WDZ1djJVP0pTdTY+TEp+YDkKejZ7TFFOVz1mPz16KTBFRHszZV50MktUb2Mq
emcrcEY8Vjl2aWlPTm92KEpxbVdVd1NJYTI+OVBTTVZQdG4wRmVsCnp6VURPXz9zdENtLXZvZTE5
dWUxOzZgUClBejw+dzxzRTd2RnpBQko1R25xPj1Afl4+K3Bncz5wV3JvR3VIQDF3ZAp6aHF+eGY8
cjFSamFBQjBrcG87c3hzdnZ4SUZ1V3QhdlJQUDM5I14rZEI1WlJGTyE3TUR7dWkmc0pPdkdATkFM
VikKekF1dUZpQHhqam9MRiFvNDYtS3w/bE9YVUtzREM4dSNYbzs3cHUjRXUkel5fJGJQZjw5QyFo
RnBKVk1ZdlNrZHRQCnoqVX4tcEltTTlxMihIV1BySzleMzU7S2hnZmRNZDN1JiYpK2xCMGlHQUhM
WXpXfWU3eiQzJEpRTjBJKDstaEltSQp6SmNLMFR2cXx2cjJmTUE9T31LJkQmPF9eRHc7X3Izdzh+
I1hlQSFxQjhXUW80OHI4bFBAWmlIcyYmOGhZK3RHZmcKeikkYk54M3h9amZBIVdzfERUWjYzPm1E
U1otJigxZW54Mz1ee1FlfjQ2PTlMZE9WJnlVYTd5USYodUo9QSN5cU9fCnpjMUxfRUlgJGhaY05q
YVhxMm11ciZPfU9ZQTJmKVdxKl91a3ooPW9eVl8rI3BhMj90ZXJqZyErbWk5Mm1hfFUqUAp6cDJg
RHJ1dzxzYzFSP3xEKz5ZM0k8TkUyOE9Yay19aDlEOGF2Qk5fK0d7cklZWDVOMT8/MkZzYVVOMUkt
eX5fP0MKei0pKntHOzdWQGlpVk1gV2VrO3VlQXoqcDBJV1dndW5ITk1Cc0VidHtpOERYezcwVCNt
S3JjfG93UDZnREJ2WUY2CnojQmJWV1E1VWctPmpsOSttQ1JjMnA5IzVkODR3Z25oZitRfTtGbnBl
NkFjTnNadGdxcjUyTzlJRnxpT0dvSStsVQp6Njd1PDJGST8qLUxWX2Mlelo5RyNzVjxBZzgpYFRv
QXE9OylBT35je2RtQ153dnY+I0hgNyl4eDF3SmBUY0BGQ3oKemNZT31tdkRDVHA3dGl5P1FaMnBh
bjVpfUIkdlJ3YmdPTGRjM2wkZjc7Rm0jSiUmK2BEdSgjbWN0bjNRSTFtSlhHCnpBQ1dqMyZ6Mjla
Plh+cT5jalh4N3sreFpeSX1oYTQ/WiorTS0mO0NeJlNiRXJEJXYpQW57bnNEND1PKCE5YWAldgp6
JHprSGdHcVR8QiE3TGRiJko9SC1aKU9xNEYxYG88VTM4PCVjISNgaDIzfiQzNVpgPW4tfU9jVlI5
dHJNTWhMSzkKelRJV3AqTj51JnlrVCthU21CeW5YIyNDZFJQO21pUTlffXJWK1F5T1hNTHg7T2ZZ
OD53UFdLPUJuN08zPGdieFZJCnpNc0dfPFlBdHFlVXQzKTtkUjVHXnZPZyEhR3F5SzI0Kng9cCFK
P2BVM1E3OHNAP34la28wcHc/cWN5VEJqUmxsPQp6el89fmMjN3tQMiZ4TWopUGhAPyZUcT9LV3Ft
Y0U9QyRIXl4/aXlCKHZuJT9ETiVEJSpoPiNkRXZFUzFsOGheYW4KekdBNXZ6QHZ9eVhDVWRnJXg4
cS1VT2t0WHpybz5Tc1lKYDYwaiUrSDhVekhGQjVHUzNjSj4kN0FCZ2c9WXZeP2pCCnpiQ3dHUzlI
WlQ0TnRvWHxjdyswOWRDKytDPjBYS28paDhudzV9WjlxaUJwIUpfWVY8c3dHYW01dFBWJm82VDsj
Vwp6UWs3K1Q/X3lsS1pVKjl0VkRJX1lvZH1fNjZQRkxVbUFlNnFGQ3NGPmUzTG5iVld4UWs7Knw3
UEV4TDQxUENwNVMKekVafjVMSThVKml5Mno8Jm0zV2t+cXRGYzJpaWU/eVYoSW4yJUNuZWFVcndz
U1c+dkV5JkdmdzE9RTZ0SFUlNDBmCnpCYEBoNDJmV1dKd3tHP0NEQFIlXm5ANlhiNW1vSERuMiVE
bl56Z3hJXlA7UXhYcHpTcTB5VVZ3T05qZn1rakl0KAp6NzBwIyFrRmIkbjdMWDBZWmVAcT1NYUlw
Mj18NkMpamJgTThNTlh0SWtKJCNFV2hQSUBad0F0d2w/Mml4YVk1PHsKekE8NFlIeTR8aURJRVRt
cl96N0tHWU13fGVQY2l0eXMoSWJ6JXlpaFEkZlRrPko2fFlRezFGPFZfKio2REFjKDUlCnpSfSt5
V3BHY2tBdGpxI3lRVEUzVUc3YkBIREkyR3N5VzV3MVRSYUc0cjBRanpZPDs8QGBQbERRQ3FpbnNG
WWteYwp6cl5vPUFfc2Z4eHNhdH01QXF9a28qT0dkc05RYis5ZH5eeSopc2g8TE5QKFc0dy0kYiRF
aTBAWWNfZEJjcjF6TT4KelBkck94I09BUz5eNnZrPD9ZMyokTyVuYStfVyNfX0JlR2RFSkl2MWt7
JCU4VVhRMUpqViFxNEhyaFVsPChwNFEtCnohfCgoYiskbkxrRGZDWWNtRUtrSFElUXZfbGdQKXZI
JT9gTGozZlh4IV9WY09RUmI4JXAhOzE+TkRfakRePmtDegp6NEJLezZxIzdfMShNTnJBVlZmLUgl
V1h8PkB2fVkzSX1yd0xaYkJNZXNhMCZsdyVebXJmRSNeX1BERj5qUjdHQEkKemRlKWMjbEN5VGpy
KnBeJThMUHoyUnZNSHpabjA8el5VZFpgTnxuNkE9VEBPRW9PWXJ+NCt0aGpTYkJKPkhDemNACnpQ
UiNWUFJHfmx+UCFqUE9pRVFlZkhjeXtBdH1qNkg9RUFVRDlPWHdhUk1TREQtbj1pRD8wbmpiJVpk
V3FjNT93cgp6WlYpN2tRenU5UjY+QXBWb1huVUBFdHNkaUpATDZgXio2YHhFNDR4Uz1MOGQ/aWw7
dDhvPlhRZCZzP2FheW07dTsKenJNVFdLbjcyUzFQKSp+OUJwcCZwck8+K2ZII3VeODJKNm0kRm01
fH1NN2EoUmBDb1RQUEJoQHk9PTg5fHZSNXRUCnpOJUc9OE12KiopSlNxamxPbjY2S2VOfnElQjZ5
NWNIcGk+ZjtrJSFSeCREPTZFM3IqfXdLcW14PUEqfn1aTjF0awp6KmtCVTNrNTVtSTVMbjt1PzJe
QnZ4JD16U1RMUkIyTTNCbWRIZmg4cjhSfX1fVyZxNGg7KHQoZXRmdSlxUmcmRy0Kei14UHczSG92
YmJVfGRvckg5LUZYYiVKRVVpbnZLNikzQ040V2o8SjlMPnYpKl4mV04qaEVgdihjI2NTaWZfTVh3
Cnp4MFBEIzRVOTVRTT0yNXVYUjsqSFRER150b3RzYC1RPl5lJTd2YU97LUJkWUhANlg3P3d9Zis3
NjhwKT5LWGh2egp6eEMjYmVlbjViNEBDVzJQIU5BNns+R3E7X3AxaSpua0FKN1JZIXhgQDtFeEQt
dHxjZV5FQmpoS00jfkZfTk5nZj0Keng0b2Z4YHdPZEkoWjt7ZlJPZzA1JF4zZHBWWGZ6KWd7NlY1
QX0oSih6SVQtYFBZUDFAQipJXjtZcVdMNmp0KSFBCnpPbV4pRTRUb2NwOVZsV3JQWTA/aVFIeEZ5
USgrK3F2UWh7OW89JEtHMUI3S1dtQTEkLUpmTlRmb0wwPDY8PD4kXwp6V28yeUk0eUtkRWE5UFlr
QHNEPERNV34hNDhmaVEjRFp2S31gQihQaVhzMWRhaW84UHZ0dnMwM3RgOEhmYj19cCUKemcwZTV2
cnArO0IlYSFufmY4NUFRdzJtfGRBYjxPYS0lTzZ5XkI2aFFwJmVuK05TNHlVY0Flezd4WVhUYzFj
JlYkCnpOc3NyXkdpI3JCUTQwU2hgSUR6V0FjVT5zWHskPjtMc2QlTUd+bzh3X1dIQHdPRFpnc05u
Uz0xb2BiaXo3Vyh0TQp6PEpjVm51PFVqb3dsWWM+SCo/MypmS0gxNmVTP1RmeEdsPn40NkJlZUh+
P30yMlZFZj1tM01iUU44OW1mdyMtI1UKek5VO0hASUBANWBeVDZ6SlQkcSR3VldJRSRlPCs7X3hS
bWo2M3hfZXZxdG1xSE4hdSZRMXFxazA0LXJSe053ak1DCnpnTWItZ0J7blA8IUA3bjxuSDcqfiFE
fipsa3RuNX0xOHRrNW05PzN8dipsY3lhPzgkIVRmRnNfQFNeQGgmNUx5bAp6YT5RMlR1aDdNV3RT
e3RVVyRzR2VBQkp6YV94TiNDaDdAM2lXOHpWPTxuZX5zOX4/TWBfa1M7WjQyOCZUR1puVigKekRw
PX5BSislQjE2Q0xkY2paVihySlZiR3c9IXVQdSNIcChsQzhHTHIkZFhaTD5VKnAzTXx4NTUlI3dW
MFo9UGEmCnpENXg8JU03WW9MO0ZNK1UxOURyN2ArUGxAKTVAfVo9dkpuZUo7Y195dD1qYTQhWXwy
ZmgmdTMyS0JaSjk0SV4ldAp6SjZBfFBZMVp9SmFUbnY8Jm87MTFTbXt5cHtfVSg5e3haRUdpbjdn
YD1ZR3g9aGwpe05yWlRhTHVUTFVaSDFLVVYKelZvfG1BVGxiUlI2bnIwQUAkY3NzTF5NI08za3lr
LW58P0I3O0N4a3ZRZ2dLT3Y1dzYyJUl2fSRUR3tpVWJ4Ul8pCnpUdEFXJlJkZXgmbnZHJj1BUlp+
QHgxQn1NM25DPE5MPlV3Sl5IcExwcDc+PWY2UXkwVHchaHcmNyZCQ087bygpKwp6OVE1Un1AMDwj
cTwlKnk5e3JpMCNnUWhBVGtEcUBAT0lCdGclYlN5fkpzc3g9Q0NmI3c8YWJWNzIlKkVLKGhDY04K
eih9MjVXSHkwTG0yVGcpalMkKFh0clljN3NTcGFBeD5gXj1rYEEqO2VXbHw8TzdPNTNLPWpKV2Y7
ITlTe2NrNjd+CnpEMTFDWDBsckREbSttfmFRSys5OHIlQ3pJTnBpZVo1PmwjY2FEa2ZAakw9JXo4
YWJyX0J+PHVHemE9SjQrQVgjegp6IU1AYG90K3MmaEdhMDs+eChkbUg8I3t8PWpgfTJ7LTVwaG0z
QHpXZ3dUVjNUVyE/cCRJcm9DPSpGa01XTGAqdCgKeiEhdFI9K08/PTRaVHlEKUUkZi0+Iyl+NDhf
M0gxKGd4cFglPVJDOHNfdklNVmV8SEVDTiZ4LUdXTj8+MnJyXmNsCno3d3JYZi1oaExHNWNPQ0Nm
aHEtP3tOdFpCKiErTm5gWmN9KVlubXw5V3pQVTZjNTxfTW9vczMkMDdMOVNnWWdGZgp6LTtIPEh5
Z0xhND5qPl83VCErO1FlUHkoKDRpJWdJdHtiNTJHdn1wTzBsPmJ8aXR4SnNkJFVjP1ZAZ0lrdnN1
WmIKeitUUiVYOTgrP3dGJG4+QF54S1A7S3xGV0c5YTUkPUEkazNEJmpCcGFPWXtsejUlcytmYnpm
fFcxdThjUj09LSslCnoyaT5DZm93blB4ZWFNNlo7Pkx4MWxaMDNDJl41cXooemRwPXZ2N08tcCUl
V0VPQD18JigyJSozR3hPR0dnc1ZJMgp6YE9xSUMyKG1ORU9QVjhBJUU8S2pjSmNqd2dmQCNBVjV8
UHh1ZT1FVWE1YF98N31zVUxmOWR+ZilxRndTTX51WngKekdGVyNaUHFRPHItUyE4QVAxPm5mVlJ5
PDlJQ2RmbFdTXiYlRl9sTzNQbnB2Q0c5ISFweil3KCE+RUYzYWx5TEh9CnooNl4kfV9zJEMoMCM1
JGojNj0qVzs0TT1VX2dyV0pEen5qUEY3JDNjKFA7MD4tQll5dVM9d1g1fExQLU9UJj94bgp6a2l5
KDtLXlRPd1F0VlVDZzxaP2ZvJDBkSXBTdjItcztDNi17K0E8ZWJHWnEpV05ISzB1RC0pKk42aDRg
PlREKnkKejRsZz9qbHYoWDJiTz04P3FKe2NDQVI7KV5sUVB4MHJrSHl+O0M2OD1weT9VI2YxYzBD
aU1gNTM8WllxKmomSHs/CnopeHJ2dHd4ZCUhYlFHYig1O3huKXBMbk1BWWVjcmVzP2FoJHVNdXZH
MGd+VTgzUGBtd285K0lMNTNTez0keWkwLQp6e0VjbkdCKVF0KG1IKHNebng1MSQqU2QzcFUmRDxO
dERFSnNITllWRG18Pk94cD8xTTM/K05AbkNUUlU+SDRmdWMKelEtfCEmeXBiczRlXjBYOGZFKXht
LTlzOFpXWTRfNT9lYHZNKjI7eTxvcTd+bExQSj04M0s8NTtJfG5VfnpUJFhVCnpYYDNxSXZidWEq
aXg/U1QkQCpjViY/dTdETy07KGdUWDhaeV5kSUpzcGNPRFpsRktVOzBGN0UtPWpwT1UmM3U/cQp6
NW5ePypUfnEqRlp8bThkX2NAe2lBYTUoaG4/KEBQKH1DfnV7JU4od2JEPnlyfER0Mj91Yntjc1lD
bz41WG4yaykKeiRzQTtmOTtfNyE9QjlHQkRDaCNIQmN3NURHIzxUQzBDY2JBOW95OTAxQmMpQHVF
O182bilickB2MzdaVSgqMSN+CnpyanJ7aVVxWFFUKEcoPCY7dn0pYCh3PW44LWYtTil4byo0aShm
Xz5SaTEpcHxofj5URHI8UzcjNDtKbHpGXihlVQp6XlFUPUo2YTZKVE1RLUVmZHwxUU50LX1ielFi
KkNTQUREOzFQSChFfG8oTEw+bT1sYnFUMVpDWXF6cmw5KyFRKyEKemUoIzd9Tld4dihAVSFLMVYp
eHZeSjtaRmg7I3U5SVpwXmExWUU7OHMyNzY7UV5tX2V2ZzclSyZAc08qSHgja1JhCnoxO2UtOXdA
cWkjNk05emE+PHBoU2pKc1lLX3lQajRhYmpJKnYkZDB5Qn1mKTdVVjQ3cSpgIWdGO14hMDJaKyt7
Ugp6bD1OUlJKY1pqcXdOQENFczJ1TCg2VHotUjNBYUg8TH1OaWQ3QXAjQEN4WjViJGkrIXZyVENE
T29eWHUzbikoMEoKeiFSeGdKWXo/P2R2QCZKPllqNjNLe2JNemtjYEQ7LTUrUFlnTm5oMGxMSkVv
QzJZOWtsKCZvOSVBMHUtY2V1O3IoCnooRWBfMyVnS1k5dVU3dlM3b31Ub1BNZHY+RiV5M3claDFX
NyQoPERiN2ttWn48SElMV0Y2MXVkezVwSWI1M2s2Xgp6Tj1ZI1AzYU9OeWVHPkQjU3VKSH5rQzwr
WUo3NDVAKFlFKTFHX2RNbjJgbyMwVEIrZW85cV5RO3w5S2dyJD9FRSEKeiRFeyVyTnpeKzxDR0A1
THl4WU9+SkteS3U2MWhwMTViVVEqY0w9bEc1MmRtJUB1OFcmY0dyJm8jb3xMeHNKPjBTCnpJcHdk
THpELTx8X2cjOURyWDs2fHpQZlMkKiVeYCtNdFQxdWZBe2VCU3RGSCs1KylJVlRYITJZOXlnRVp3
SCE5Twp6OH57V2JII0VzT21vQEE5OHI9eCFCYCl9TTc1SD5NemJkKiVEejFDX3B9aSN3SmZhJSZO
KlJQRGF5b05DLSlHbWkKel5gfSZJTChrYmUmSV5BaFJ4Iz59PFdwQFZ7bER4aC1fezBsRXZmbUpr
WHVMT3JfeEtaLV9UMXZeO1JISkAqKk9ACnpfK354RW1jaTRJU3B6d3dSKTZ3KE9CcEVxRiphc1Zz
REdzSGQmUTNlbXhAUkRlX3E8UWttYFlmRERQXzhsbCF5WAp6NzxXR245OX1xYGVkYWNCLUspZFNB
SF9jSyVRXmQxS0xzU2MpcnxFUHVQYStYbT08KHVGR0tYWXF+MjI/U359dX0Kej8mSF4oYV9jS1Up
N0MpRWBxNmE2LXhlKGEwaU5sYHolJU8jPmh0d0BpRFhlbnxKcHJQaUo7PU9fTDNzMkdpMiY3CnpJ
ej4zNEgoPHhQQzJLKjgpeE5ZdXhiWnUwPj5rbT5rYDwkPDAyVUdZdVllcXAyWGpNTyYkPCM5QXYz
YEs2PUpzYgp6WX5AWEQ/eH58blYtQWE7X0VGbkt0Z3U3UmhTK01ET3tiZC1QVC1iNU1aeEdHbEkr
PntpTm03XiNFRkNpaCsoS3UKelRAbWYtUnpUPmNxe3J2WkgpQWhJUChpb1QmJkMpRCVkaTQtWVhr
dHMoWktSUV9+dm8xdEp1ZXpuUEdaQV5GY2YkCnpjJU5qclF8cSZPXil+UHptcyVUfmReVjwzYVJ6
aEN5SGVmISo1Rl4oaXQxdTVyYyZqNSZae1A7anJsfn1TM2g/ZQp6N05AIXhDWSQxLW8pM0B0STNT
MHp7VntSVkpIWFkmPmNab0VyeXgqY2VfVyhFa1pRSyFILThOU1p2QF9kTnFoK30Kei1eNXMpUF4y
aVUkcFUqVjYmVyt4VFEwR2J6Rn17YSs0WWEjME05TUFibXRvMmlJbj9kVWlMX3t3UmUjKHNTOWRq
CnpHU3B3PyY1RVIpOEQxaStKQGMoMUA3RkEoaDs3Xk1qUENEQnQ4RGElTWp5QHdOUCh3azI8Vzc2
bW57WU1gIV8jNgp6O0o7WilXOWtkU3FUaEhyY1ViWXAhYHJzJXVabz9ZRFNSbFVuR3BDaEJaY3RG
UFkxbWJ6WUBfTUwkcjAjSFQ7cGYKemJyPXxJX0Q9dkVPYW12QmVhOGJ4Z1VWT2U/KCZRK0gzZ2Jt
Nz4lYmR4b0dhcXhUNCFqVVIlI3preHFnNCVobG18CnpMMXtTUG9zV3N5TzhLNm1UKlFqXllhezZu
a0p1Ty10NEJmSEhYITU4T1Q3fW0jZmF4ZGNTalVtK2BpJj1BOGQ2fgp6MzdyPXJSITV6XmZgN2JB
UXl2Zjl6dDxqPHQoQz1JeyVUZ0NlYGRjNENkODJNall3Z0lwRHMtTV8qezshV28/RVcKekteITN3
ZmdYVkAlM09oJmA7M0pRWl9oeFNTfnxVJjJ0O2xrIT9AaUhkNU1lNVZoYCotZiFpe1gzfiY7MU5G
bDBLCno+ITdpSUVNdnVndkthYUhDdEYwYShCLTNzYW9tKGxpPW1ZTmpJXytkK0VZMHhTdUMzSDY9
RkxwbkNZPWdQSTVPbQp6SFZTOFp1KCU2ZkRDQmdQbDx+WlFaezxzTXRkUnB7QmBodHNLPmpqO2Mp
SmxYcjNVRiErPlBNKlFOSlFjNj4tUkMKeldoe3puYUlwQiZ3VGdwO18+R0FGPnR7TlEmfSFtc016
MFd+ODJUaz85SCFoTTM7Qk8mIWtndntyfFJOQHMqN2EtCnotUlRAO2h0QExScUR2RG9XZkhKZU15
en1rcEg1RWphenJSTG8pckFUWTVpbnF8TlYkNXRmKllDcl9jJT4yX0g2Mwp6SWp8WFJAa3h5MnZ0
az9YWHpsb1c7KVlvfGdRPSlpWEVGOHk0S05rfUpwUkhhb34tUWBzaFMpe2dIfGNKQyFaKSkKenA5
UHVwRi1odUZsdlgzVlVwVEw9YUF+NGU/cDhKQUx9I2l7RnUyRlE1KEdLPCliSXF4TXg/Zyt1UXMm
cjtPMGc7Cnp3Syhkb2dafjFUYWBQMXxFSzsxfHVlJlY/Vm0zd0FAVXAxRmVHcyZ8dT17KGYod2Z4
e3lIY2J8PG1sNT1MZ3YrQgp6PUU0JDd2Q25UbUt4SC08ZXdoZTtmdFArYW85V0FJU093MCpvKzsy
YWdLOWIxRjVTe2hkfkVIWmVTZnx5WG04PkEKeih3eiptJDkxaXJVdUhSWFJSRWx1UVN9NE9aN1Eq
SytCKks9PnZnZnE7RUdVanhUNCZuIXg+X2hiaEN9b2ZjdzgrCnppfWUkfTEpPCt3QD0hcyhQIyRk
T1E8LVJpcVVxdkFqLWs5X29zS1MmQXtOdWkmaE57KmtYbV5nQzdNbXE7LW5oVQp6JXdlPDZYbHV8
PD8qLUNVJl5NbHY9SnM8KEw9O3AzbXpqfGJIVkV9N1pWZWUzZUNMV2VfTUheUHhuOSVqa05ORmwK
ei1rNzRRZW81eiNRIyZhaDJlVGpjMVJUX2xlJFk9JXE2emtncTclZkFZQFIkaEklPGc7K2FEZno8
fX1DfUlfe14jCnpKTX1rKlN0QjxJd093WVgrUGN5cCtoeU9hRVVwanBaQDdqPlVaVktBTktaP3hV
MkVfTmF+Z2Upc1glMGEjPEtEYQp6bnNZaW8+LStKaiotXloxZlByNjEjYnRAdUdIWUJVSnZoaX1o
KDVCRGNqZT4jUn56fjA2dkJ0PFVMMWlpQzQxOCYKeik8fWRjUURmTWQzYElyTTdzcnxfYUcwb0VW
N3o9QTlVfFp+dDU+LT5wYGQ8djlBPyl4Y3koIWVUeThUR3NMfn1hCnpIPmNwU3RGVGBBXipje3Eh
YH43c0ohYHFgSClVTitqR1I/fjR3d1pBcGYmeiEzKHRqVitxSDdER1BNJEd2UVVWYAp6U0teTDs0
bWt3QiM1ZzFzPWdIVExDRTg2Wj5mSit+eWtSQD9OazF6dT9uY1BANX4zWTRyM1FzY2gwQHMtcVlA
RSoKenUtU0h7aU1HLT1pRmg+amh6ITgtI2tRbkxaTXUwJCo0OEBYTC1gOSZETD4jRUhITXliaiNt
WH16cS1Ud040cjlhCnpIRilMe0hTMzxDOGJieEkraWI+TyooWVIwMz1idmxTMjVxQl8zVCV5ViQy
djVmeWFhfHo/bnxzWH4+KispdGcmQgp6V0UrIU11cm5HSnE+QjVGdkVzOFR1K0NhQ3skcyhFIXlm
YUFwTXFWfTFUT2A0Q0swNnRyb1A/WDQwI2k0eVMoJXkKelc9VnhlJlM/U1pZUntJNzdkfl5UJCRk
VGdLI2o2YEllbUV+Mk5FdF91eGdBZnFSY09OJn1KZV8pZzJfNktpOXQtCnpeS1ZZbSV1U2BASE1w
bEZZWCFLVHtocUFzR2xtY1MqcjBMbk1SY2trQD98R3I/S3V3M0VPYnU/NFkycz91YDZibwp6Sisr
cU5FfVdKQEYrZCpYdFlMc1ErXm5zV098RXQlNG0rMGdFMWBiJl5gXiVnT0Y2SE48RFk0SnRSUzx0
Qm4tSVoKeiR7Q1kqPlNJb3F2PkNvJG5CZVlqNTRxLTY5TDcoJmcwfDVnVmAzOGtfRSFDVllYeWAj
VH5gKjAraSVRUTxyKD13CnoyVjdUMk13WHVJVk5VK1d5antwR1VuZ3Vmc2NOMmBXMHt1dWRqXis4
TkhjZEJ8STQ2YyZ2UEg0N29aQGFrb3hQMwp6dmZ1e0FWM2ghWGY4aGVII2ttcjVyOW1pZyhnYyVY
SzJQNkh4ME4wJFJpailGajFoXnNxcEk0fT9aR3tVXyhIZH0KempCdlhaMUlsJWw8VnRua1E5PiQ7
cH5CTmVLaWE0RG1nLWxuSUReS3d3JVIqeVJ0YHREUmJBOHwxN2w+LTFyRFB6CnpxQ0E4bjdsV19P
Smc3TDhaJEwpTk0yXll2TzZVYz8jcCMhMnhrZiE9K3RMRlJwfD9HbHppOVZLPlE3O1QhYnN9Owp6
KmA8R3A9I2ZFYjBQazRSRWs4JVJyT0d+aE9EKTxiXzR1Uz9IQD5MVXsoQStudz56e0NOVCEocHhB
VmVqT2xJdzYKekArM3gyVlRiLSZeNTNqJHZyIWIqSDtoRGYjSCojT1duWXt2Jk5mI2chWSl7WFVM
PWIzYnc5a01wa1JRJDt7P0ViCnphK1g8d2s5X1lsYEsmckZoTGQ7Ri0jc1dUNWU0cmZ3PXcycitD
WEw7ajlfMmI5KUdQTnY/cVQ+e3NCUCVaMyhsSAp6ZjMyWGJpUHV6PUJsTyV+T0haWHokQks3Mzw2
ZWUjWlpCTHcoP31yQitaalJrdn5IKGYjJFJ3dDVNe1hSSEUmblQKel9hcT9NMHZVMnhYe245UFph
eXlsN28rN0lGeGpqN2xydSQtazhYemE7KDBnLV85TkBJWDFoV2N8SlZkU0hKKXc8CnpGYmB3PCNS
cklodiQ2OTtPX2NSNyRld09wR3g8OG50eWV0NWc2Wmx5QTlfTV5iU0hldXheI2RBKCZVVih6YVVe
Zgp6VFQlJmtaYCl7JT02ZSlCKHs1RXNURTdUIzZ3VkhQR2l2SVBKfX1ndFhhdz9TIXlwQlF2P2xT
K3kwJXJFZm5wYUkKenZnaSombW5ZS0glb0lkJDZ0I2lWQXhYekBsRDBAWGBGQ01YKnFfcWw/dl4o
fVBCSWo2LTZ3I3BhJGoqQEJmZElOCnotVmFiQEhUa042VzBvM0dUfW87dEBhRzNUWWs/P2luR01A
IV9MeCFSSnd3MW50bTdSZDRMc0RNSyhHTEdgQmQtNwp6dTRhR25gSUxSaFoyYTM2eVgyI3VAIU1N
aDkkQjByZ25HX2pQOHZKeS1zWW8yJlZeeCF3ejYwOSNxclJfO21TNn4Kejl7KCptKCg2KXAyPCkp
QzdTPXRDVVJ6e0B2b0YpS2ZNbmdrX3hkX2ctWHIlcXA5VHQxWjN6M1gyK25IdSV9VV4lCnopSGR3
ZGF8KCNTSyNFRSNINWlQRF8jQkpaST1lfCQ/VmEqXjE8NkJzazVBdCFsK2FkUlZGKytFTUFHKXJ2
ajd1OAp6dGlOOGlTaVR8K1g1SyZoa2AmVVkyQDUkbldWNEE/VVR7M3t5Mk0rMHBHMHw2N0Z0YjdU
QVpKZEB3cTBvOyRTJEUKeiNAUipeI1dzeEE3K14wQUlJO0FTNmlgaloqQCRBX21ldlVVKUMhYX08
JnxCRU0yJFRUMyVeNWk7QFFmSiFPS2ZOCnpPWmpWKEN+S3tNWkprY3lVdHkoaFhjJiRecD0qQ3xk
b3owXz97X3UpaUFqMEdSMG5ZTlZeYlV5IXNifFN3ezZGMQp6NWRwOT5gSGBRaUFpNGFYMn0oYWJU
UG5LSVZwVFo9KVZaYDYpYSo5WTJmWG81Mzg1SUpvR3hNaCRZSTN+cDw/d1UKeis8Y2tCeG41QTJt
U3pCSXRgdnU/UC18P1gmVnQ2cUp5KlFocnpHV2BIKG5JZSpQT2F8aG5vSVViTTtSJXpnKEcxCnp5
RClxVmVBLWM5VXZONTFjVnhNSHpFWWokRFl+U314e3gwLTMwaHdVLVM1IThKRmJ7PHl6R1Z7O3Z8
MTxOaTIwQwp6YnErLVJCNUhuITszZ3pfJHpoM0RxYUl+PGc2WVduJnNiVX14c2NQclFOMGNvQGo7
X14oTil9MjB3VT8wbCg4dUIKekApdkltWXBWZD4pKkw4ci1aRz1eblJWX2JhTS1jRDMlMW5rYEhw
aWJ5dV9VdXVYNkFZSjttKnFGTlJMVXFtKT5yCnpEVHt1V2Z5dDdJVXVqMGVnamNPP2lnOVNMKXkj
c3BBVlZHJi19MWhNUVczeWZRaUFyZ0NtTnRmUGJLYDNWVjMzYQp6eUpERkNeVm5eSDIkSGM1VSpe
VC1UM1Uke2puYXNGJHxQano1e3lyaT88a1lTNEFPej9WLTlJdy11c1NTZ2ooUiMKenwwNWdkeGJN
PGZhNlV4SFNAPjd9REVNcWk8RnVMPzN5LS1nSDl5b28+SGFZOEc9Z154eHlOfXZDdlRHcTZSYFBx
CnpjaXojNTFRMUtZRWolVDhEcWlmMS1XT1ZadiohUHBobTY7JWBAPFZVI0w7flVLMXlhQlhCSDc/
JVR+VHc3YFRJKAp6NSVYNnwqQytZb2gyZmcpO21iJitpP3czJlJDdD9abzckPTJzQkFteXlTeDRT
Yj56eCpJUz5RWWY0Ym9HZ1g8fjwKelpnS3B3WEhLWk8oQnYma2FObDcrYEE1Vn1IMTtoTWZBclFs
S0NMPmtPbClWQ09FQ25JUDEhYzYle0gheVp6VDtWCnoqOzlCVTxReyZxTlNBaDdtVXR9JjY7VXtI
XmNBcVlKWChXJU8tRWgoJnBeNlNZRT9+QXEjbz9eJnI3d0FKRylLLQp6VHRvNTdAS0JYJT9yREx+
UE5YaCR1ekI7YyF5KHNPM0grITM1di0xQXloUHBlSl48bkppfVVfdFUqPG1qTnN2P0kKenhCYlI5
d2pYVFA7Sz1wTWxtX2c0UUt0PkRkIzQwXmp7RjtVI1E+cUhMNFR+N25tREJ5ZT1jX0oleitRS2M7
e21SCnpoSUhsYUo4I3BmaXMzVWckTi03dzd8IT5pYVo7aGk3K3JFNntxU2koLSszKz47aGdSU3lF
VyFtcWZ0fDxiV1Q1WAp6eTdsMXNSVjYxbXNgeUFCK0xDbnVPWEBOY2d6SjUrUy1tPD9uTzNrQy10
aHkkP3ZyUztBUj9eb1h7I0RTUEZ9KUUKemhnNCNTNXgpI2w/X3YwemhqVjEja3cydi1GJXt+IyFg
c2tpRWEoakE9Pyk7SEt9OzNXR25uI1NfUFAkMjRENFcoCno3eVl3dFlhVEJLdCYoO2xjWnVPXjUh
cklqWDdMOWpxK2soYm8tPTE3bEI2JmlYKHNJdjdnQkxHaCE+eXFlWHRFZQp6Y1UyTTZeeDVPak9T
JmRGcFpjYU9saXE2ZSZKUnVlKzByeUA3S1hgJEs9KTZEOSooS2x5fkpta2hsYkI2TFI5QHcKeihh
eHFJX2QqOEpZdUxPUE49RjMjNmNNcng0eX50LSZTJnBeVWJQOGdxM2IyankwcHwkb3pRfGQkNHpj
cTNAMHNSCnoqUz9nXklJZzgmb0IlWkkwTi0wV3dhWXN7JW89MWw2Rl9+TTZBZSRrWHBlRzFreTly
Unp3blkrPGVgcmphWmJvZgp6QE1oS15qfDI4bSY0Q2kqMzApcUZIYXkjMHBWK2F2SyR6Uio/Qm1r
SWQ2dTV4Zygocj5EakJybUxDMU99S0M3P2IKeiFuU0Z5RmR2KXdNQTRFMTVFPkhAX0FNeVZGY1A2
O1pZWVFqeWorajQ7NndaS21ZciE4ZDtjanEjVzVpS08rQiZaCnpAd157ISkhX1JFSTVoS1U7e28p
dHZhWTxuWkQ9eUk1Q2luRlMkdTlPKlh4YD43eWZvOyhzQklyYSozQGwrTXZpKgp6cTRtJTB3NDx3
NiRna0NBNS02QDxLUD0pajhidSspPGIjKkNaJXBnaFckYCRhJDMpd1VTYkQzQztlWDEoWTReI0YK
eiZ0VE1aNUd6Zjsyb2swUGYte2R7SkY4JEh3cj1gekVsQ2swYD9mJn5GKUVAM0YyJlhkUk47JFdL
bE02fTtXM3xmCno0dHwkQyVFSVZPNGY2Jn1VP1ZaPT4ja0t5cWt8cHUwcHVyYnljeDV8dnJpV2Z2
UUZ9XmtQP2dlS3o2LVF3UCtMfQp6VT8kQCpAI0skR151Q2x8NHs7e2VIWTFQYylycXlBNndNfDYw
KkFNQFhANEFIcXw7c05TOCtQeDxTNj9zWkk4KnoKeml8UENDI3xOTno7Q05rZlg/K2cxKnhUcmE3
bDl2OFNoKXtFTW5xPE5hPX5GdUpXekJCelZGck8tb2Z0SUxqdFZiCno5eSs3TT9RbjFKVT9pPEo/
PFRYaTMtNUJYYW5QdSYoOSFTcigzVjlYX0JkZHg4fVRDfnpnM3srN2RhQWk4RUVhTwp6PHteJFRj
KkdRaXJVSUV2MikocEtaUE42b0ZQO1loWnUyPDNAZT47YHBGYXY7UEE+QF5zKFFyZjY+WXNuRnMy
NFoKejBnZH4hXmhkNH5WY2M2JmNLPWwkVTxyOSFLQTNrUU11P2tzTVFedz8qbz5wTWNIM15tTlA8
YF4pNVMqX2hrUlA1CnpZMyVBfD89UlFabGkpc0BIQ1hReCpXdkhRISZtPzVaVzUzaiN0bmVNWmF+
UUAmJmR8cFIhJl88bzxxb1ZHZSskTAp6bkM7UnN3SF5sIV9US3lASjsoNiZBRnoxJVMkYCo7ZDBG
K19CfkVVZXZeNlk0KzdqXjIwJlM7MTNubUg9IUt6P3EKelFnI3wmUk4raCFHYlJFVW5mPz9PM0Z3
dCRBQVhTUXFJUkdwdUE7Tl48eDR6ZEM+YCRmXz5AeTloUDV7KCgkKDF6Cno9cW5saFR5NzV+bSpN
JFVNdHRKNEshYTE5TiZSYG9ISEA3RyRFej19a3ppU3lna0dveUpNO0diVz9haW85NFVoOQp6cygl
KFNgZXt7bllzfmQ1bjk7XnswQiNFZCN+R1k8dzY/QWFHZyRRYENUUzFjMikzNzYweXVgYWtZcUEh
N2ZhVG0Kejl+S0J3Szx5VUktYF56R1V7JTNhaVpOIXwtdFFLKTRndHRkaXRNQGQoZ25aMEc2Wjdk
N1QkMl9sKEByVU4jWTduCnpoX2ZPSFQrbDR0KjQzeS1WazgxVD59ZFc5d1ZzMHVFJHxEYG5PRTFv
Y2AwVW9EeUVeeD5SQUArbWZKNW8/OyYwQwp6ey1YOE85fnQrRHljVWY5SkZvYl42MSQlN2lGfClW
d2YmeUVHelI2Zmk8Nz80byZVKzBLdmt1M0NGX2ZCZ0pYM1IKel53TFk8dD1nSTRsTn1+e2JCfUQl
emNTbHtIYVdhNihQI25xezxMPENqdnVYSV53PzRGTmlFOzwmM30pTjNuJmlZCno7JkhfQGlOSEx8
K1ZOVENQNVEwRCshY0pec3l4WUw9LWpAdUxuPG58dzFnUnBFNHNKO3k5MGxRYDFiY2FkKCRebgp6
YmtvZ2cofH5tPkw/MklfQnBVSUBBb2VgTm44RlEmN0pEdlVgbU4wOWcxPygoYS04WlhKSkMlaHN7
ITg7dn5nbUoKekV6bW1MJnkwenVyZjFkR2twUUxgZlZAdWckKC07PkJARGM+U01DT3VPejRpUU41
KiZOJT5IZFI+JWE/KlZuMkNgCnpjeShkRzNwOFNOPXo4UzEqU05hPl90cU5LKlREbjlBRlBLUkpl
eiRWPGpDfjZlckE3YiptZ3EpenByelJKPyV6UAp6VW0qMVRvd3J8eEQtUlVhVihJXnglV0U3Y29q
ZzchRDFkTHZ7aU5eYCVLKDJ3YWM0eSVsUk9KcGlSU2xQNGRmbkMKeitrNnlBeVordWhwfTZHWmdU
K29BVEVZMEJvUVRjWGJUPk9WSWBgWj5gTjhvKkEzdkJJXyhkRjk1anQ7Ui1kamNECnpTZC10PiRR
eTMxMUwjcX1xN29ORmN7WVI+ZWxPZWFjJXRURmZRdE9FWEtOekNoUGBefDxxSD88I30+JVR0ZXA+
ZQp6QHE/Mm5hV3NTUDtWSE5pPztXanpUe194ZWklLWI0KTZpWnh3S0FtUCYrTkJ0b0xPa1pqakhm
WlhMfktCb0YpfW8KeiVfYkAtYHk2ZG56OT43JEd8aVQmKStCN0RkI0NgPitxMTBvJTJHaCZGLSlm
UHt1ZXh1PkJqJVhYOEBjM3pjZEtxCnoxKmw5WipDVVAwTVZWPlcqcGt9UV9LUSt0TDxYd1NFOUlI
OEc8UT5Te2QjY2h0LWBGZDdCdyNzcyZIbHNtcUIpSAp6Qm9eU19geGxfa3ZvKlVWSVlxPTlQc1Rl
X1UkWWRMbHFUQz5hcDtBSUxqYXtiYWc/T2Myemt4YlEre0oyMW9TcSQKekpXdV9vXn5XZHw2Pj5J
YiN0WER1NzdjNl89Y3VkdG9pSkhEdGheNSNYWjtEPThib09YeGkpOzNqZjF0MjFYTlF6CnpoMjRj
Qyo7cSUxeXpIbjhkYFZxU1h7b3RaYipNYXN7LWo3QmJIQD12Q2czOV4/azAxVGVBUFo4JVM4UHs1
TVpaQQp6WUVjZ20mez8yXy1uYHZ3byZffTxwaXluPVUhO04/cURaQnYjVFo2YEUpbys8RnxiQUY7
VzgxMiQoJlI5QXVzTHwKekpBfiZsZXomKUYkZTtMQGdgSz9RcTY5ZSgjYE1DZVl7fDNCZmwzSk5I
RCpgMz42Iy0oanVxO2JPOEcwLUhifShiCnp7aEJtM3lIOXV5cWkwX1B7eElAcDVZP01EKWFhVll7
Tk0yIWYoZkhUcUdtdzA4SmZzdShIe3MwMmJHez1eQSZmSQp6a1VTfTNLQnxPOSRQfDI2PkRWUkoz
T0FEK2pke05QJnphY3MyUXVDNlZnaVVUb0IyZFRPcGZYTXdnc2pEN008Kn4KenEldmwtNzBHPlNo
eDlWbklkT0QzMzduSz9MIyZhSDMmT2FEVkpMeCQ/M19XfnAoWXpwX1A8KEYmdXN4OUlqWmFRCno+
dGxLWURNayh0Ozk8QnRlKip1djZvKSFfKEk4KENlZkF0eVlvVz1VPylhQXBlV2VSWUF0IyEhenp8
UFNLPyFkewp6WF92byFSM1A8TWI7Z3VjQ2BrWW5CTnAoX2VpaTF7T1F5dmk/Y0tuND1UR1VqLT93
VENWeytmIXo+ITc1MHopZ2kKelM1az1RZ1M+ViEmNzZ5Pzxpa1orb05RUGJoPFh8b3YqNWVYVDZS
KXFERlkqZDtvNyZyRHxwSjVfUC1KN2M3RTUjCnpMTVRudk8oZyQzbj4oSmBKYkE+UjxpP0wxYF99
NSNVeHFnbztvcDFlPGJsQGV6ZTxWdCtzZ3ErdCgkcWR8OXReKAp6XkxSQ3pjX1g+UUFgRihlY2hD
OGBEYUQ3YDxJTyskPHZUODc3OU9CaHFFTkxSKnR9ZnVtSChiQDVWOGElV0xgNj4KenM7Sk45OGtu
cWtvbi1JflUtZm01WiNFcUwoK0ItTzBCJTUkenVVU2JBRHxkVz5eYTlrQTxhbXVMSzJkITs3LWJQ
CnpZKHM0JE5RfFc1citwNl5JeSFtandIR15ISjRFWFMwOGE4TTN0YHA7dDF6dnFSNEVvXzlXO05B
SmgyT04mcGk9YAp6TmdqcWVfTUw9aGYzVnx+a2khV0JmU1Z1UF5AVVZNem0rfXhPI2ZOKSYhOEt8
blJseylNbE42UyRfTDViPEdwMH0KenVZMl42MnRLZCZxdkhLdTc+NzImPS0mPyNESi02diNQdF87
aUJIIXMjQG85bEU4ei1hPnFKak9SaGFTcXBRQ0tyCnpHTlNpTTBmI09VJT42d2hzLVhubUQ0SH1x
aGxqQjVzYTheT08jZ2pJNFVKLUdYT2xQISZwQkB5ZSlFJn1Wc0c7dgp6eXl0el9CR1RWMGRwZDJG
NUJHaCU5TWhNaUBzWGR0blFZO0khZjkpMkIjZypTQiE5V1I2KzZoPjJ5KmR7dEdMSHIKek5Zb3Jk
eEw9Z155OHVId2pffCVMd0V2anpPMmN6bVRhaFFjbkgrYER3aVJhRE8ySE5vJGloNn5iWDEqbjQk
MS09CnpJeE1eMT5tPkNRNHluVHJzPk1oLUF8eihPN35rVnpVcTJ+RG1oUXI7Zk17U09EYjt2Ungt
YGJ4anxLS3RVT15RQgp6XiEjOEBeJldKKEFwPFJCP3VFJldAb0w4ckE0OVBLKjZeTiM3NjdvKSRt
RnAyIXF1cHJUfkFYX1J+d2BxQEE8PkMKem42cVg5UXVPfGotbDZybTJTNUZhTDxBLVQwS1dkQGM3
Rz1BJkRjcGxke2E1IXBVV3todV9LcHJ1Yl5ZMWx5M2YhCno9M3pYcj9qVyora2kwNmNeIXEzSygo
R3gwZXNGYGhYUDdub3tyVE5FVk5NYz4pRUs5eCp7UHRtbFNvWkMhXm9vawp6byE+O3duIystaWtJ
SWM1QWQwQE5aQWZKVHZRMD1yLT9wYUAyY0dMZHUqNEAwemp6MVBoRFNPUEM0MnJtLUBPVnEKemUq
VyNVbzNxWTMzKHIzTHRoM3d5eH4yQCpVMUgkSWA+c1VZZDdtVEdCcSFTYzJyLU8xSFhUdEQpXnNp
QVg/Z3F8CnomRnw5YTxJP155WjI2YjBgQjRORVZ9dEA8KWJYZTtCKSFHYW40Q09KKChwM0RpMj47
Q2QmJXlLVFI5bUZZLTlxZwp6SntLcWJ6bChyJDhhd3YmNjZvbnRYOyhaWCQla2s7Y2xBQVpXS2dL
SHY8QEBJSz48NUcqdCZObVB8PW8qKkpecD4KekJ1SUBUNmtkPHFoYmVSe3ZxTTRXQH5kYlBSNTFA
N3YjdVJTZlVFXipQeihVWGM8TDk9I1FkfEQkeDJYbSlaeEcqCnordkZiMXp2eUpfP0hmZztaTzQz
VWA7VjV0dV8jVXEwTm5EfXR7Yy0/PDJ6QXEpZzRVPjE/MUxISk9TK0hubU1jRwp6N049TXFaNFRw
c00tTCFGZldkYU1IMj50M3lpXmpvb3NZLV88QjtEPlBZPlIqcXpnKzxzKiV+UjFqdD1gP3tWZW8K
emRtSW9qa2BhYGpePkl1Jnw4cD5DVFJkazZxQTklNElfTmFLV1QjKXAhMnVqMzBOfkVBMzs/bVY5
PmlMRWtrJm5UCno9ZDRhI2VkYEMlK31lKD5lRUJPI0NYPiRqZSpkWmZLNzM5JnpUZipAJXZebVl5
aGMoeXpyV2JwZil+ajQ9Ym5aKwp6KklJc3RQNWEkfmh+djxIX2s8cUw7YTZsOTk3RnBIR1g5UlVw
WWVgRThtUSF5PTclTngwdFVKWT8yKyZyVTU3fjYKejZEcHllLVkyNjZwKT1sITNxSkc/eTYjREEr
dFZ2K3tuLW5DSUQ7Y0YjSW52Xko0YlR2Y09LfE5OdlU2OWwwR2lZCnpRLXtvRCFEUU87M2QkWFBK
YSpCUlZIU0dwLU5VRGZrWUBTKVhiQWRZSEZrQ2A0YWU+fiReN2RmUV40bXJqdEg/cwp6aVhELU1A
JkxmaEZJWldFNkR+ZChKfVZpQj1pczVnPl9EXzlqT0ZoKjhHUilzWHpsNX05ZT9AOSZ3dzNWT3F1
PmgKelY/cUduVW1vMlJPezg8PjM7XjhXbStRM1cmOG44VHpidDBxc2BfSFlle31zfXE7MjhueUNF
eShgZTdWLTBZPkxlCno8VE5nYEc7biZeOXs0Z3pFTGMmMmgwRHElYVZYenxQcVQhY2tIQ3tSMGhy
IXA2M2BhRDFyMyt9c3xXKSg8bjlWNQp6dShNLVdudklBRjs5KTE9Mm82Mm5DYTx+YU4xfVRXKElY
dSZ7R35YMV98Skc2JV4waWc+ens3YDdPeSVWNCtucFEKenhAdWlZTCVHU3c/TjErYUg0LSVpMENs
fWs9I1EoPmp9aHUzaHVgc3ArQk9sIWl+PH1CQ31WMVY5KXtgSV9OSmoqCnpMWjhqUUhuTkhwRnhn
N1NWUmp1PjRuUFNKPUQ+fkU4e1lrMXl6UG9KQn05MCpicUVMT288fH5Td0dNKW5BPDJuNgp6PWV9
dCE3U1RNcHxLUzR8PHtBKlk4SHRrO2VlQTV9eDBxR1RCWmZGZ3cwI0loSzlYUllSSy1sZk5CNWpw
bTxrM2sKemd8aj0wT2E9ejExUFNzWDRqY1BDN31wWjhJdklKSUleajltMmt9Q2lzJEtrfF5IKlpa
eWhkUkdvVyNgZiVtTVc1CnpZc0grQzdvdkwyTGhTQXRMaDZhe21tXytWRjRwU14wS1dkJXVEN1Jp
PH5xQjxDdWRKXyooRzt3Tm44RWdXSSt0Tgp6RE8rfVI8SnJ5YSglQ2xeJVVKUCNvYGlIRSF2bzBl
eyk+Y15RbmNPb1VweGg/WVA7fnpafSpfSVQqSnZ7Tytqc2EKelA/Jl9oNmNzbmViWTUjNzJOPUFo
dHhgM01RR2ZYbDVEYi16N0hiYGZWSzRVQGd6V0BXUUdsanIrRWpSblNDa292CnpWUHd3e3E8dG0w
QkptaGFAT303ZyhmTTlfMGBSTWtQcjxzJXBDVm5nTzArLU0jczctNXxBciVkKCh9KCo5b1k4dgp6
azRPN09YemczM2phbE5XeG9aUkxiLT4xYDdtekkrMlNpP3khX1Q0cEVeVGsqRUU3Tz91PmppfmZG
dWw9ZVZyQ2wKelV7dUg7USZOajEqSSRiPiZzWmVBM3ByMiFYaj5TfjFpO351bCFSUj90NGk/cEgh
cnwrbmshQSl4YHszSFY4b0FuCnpJPTFObzB7NnNib3ghfiM+My1MbiU4UUAxUmApM3dfUEpTXmZV
KnVGWkY/YSVSVUpjMm08MWRtMDJ0MD5CXm9xbAp6SHhNZnZDPy1KcjBFYVQ8P09aeUdYKUVWcSZT
e0crS0xJSSg9TVNOOFohMWJgRHpOTzVRKmUrTlhuIy1wXzFPM3wKelpXezc4ViojJT8wTm5ESS1N
Zj9OK3pLfVVhSyNvRWk/SFRyYm1lJk8jd3tKI3YlZVJPKXVrdjRgcTAlbU8xM2AoCnpmRj1gQi19
NUJRcCUmNlIwYVRaSmFyOyt6PV9meWF8ST59d19kKytPJkk7al92K0liZVlhJXE3KSRsXnwqbzhW
Qwp6JDBYcD9wajVDOS1pdj5MIylqIU1VJFojVzdlUTArc01BPTJVeGZTUFhkKHV7dzNBSCR1Nmkz
SzA3I0B3b1NmWnsKenRDSCgrc0RrS1JmVkxZVE1sIT8xXiVxczRkRmVPTVR5aGJEVDAqVEpHbiZN
JGtNRU89TCh9RSFGcElTP0VUTk1DCnp4bkk0PG9xS3JNdnQwSUEwRHhWVFdWUVhXQTYmXzJEcSoh
QnZTOHtNPkJNOHZleTZ6VG4xbXBHOU5LVE8wYzhqKQp6MkVZWWJkUGFSYGNvMncxb3Bmb19Cdldx
Y1FtbnJJZUs9KSNnSW8ofnhzfVJjYTV5MS0xVU9sIXVDXyNlIT1+V2cKejRLMykzck8/TjVkMmYt
KmNiaTFNZTRGdXc5eld1d2VZPisreCtJP1FUbGx+XmI8OGdiM0pjSShFUCNLLWV4ZX1+Cnp7LWRK
X21BMV49RHtjczR3V3t+LVhAJUI1QktgbjVMQHNAPEVHMEFHUkN1amsyYCRlYUs+d2ptYEYhYmxF
MEp1aAp6IVFxflBKPXVwcCVkTnk7OXt9KTteKmlVS3ZSWDV6Xn5OaiFVPl5YZGd6e1NKb2M3RCps
K1NNT2woT0Z2eH5SK00Keil1RkY5ZjxZMkt1Yz5PIyZFOGglYF9ffE9gO2V2eWFNanpZQHNUVFFr
cyh7MCg+OHptIV5iZilsKXx6IyltVjFZCno2az9Ycighc0wlSl41I2thX2lXPV9gflBsaEsySyYo
cD00OFVzbzZ7Z1F9bXVablghQ2hmYHQjPSNtSVR6flM+RAp6LXFNOT09S3c7dklJZDBxNTArSiRz
R1MyOyZuLXBlJCFETnpAJTg5MEp5bkZDWiRHYkdlRTBUTitfJFNrKHdjMyUKelUoRjErTHIrc0p5
bUB2K05veC1GYXdaYlkoUDA/VERELSMmaEg2I2V5MkFYczA4TipHPGxsUlBBJFpCMl5vQn5ICnoo
Y2NLcnYhN3B3PXNQNylTdTFWO2FCYXEtX1F5SU10PUEmcHg9ZHpDXnMlK1BWTEpmbkp1PTZUT35O
MyVVKDJLPAp6Njw3ZVEqYjhxKDQpaiVUIyN2V2lnY0lqaTJeKjl5ekUqUXB5UFROdSV1aG5vdmEx
Sk9gdikqVSpQeEdCcGswQUUKei1qTHBXXnkzKkdGT0hEP3A1cFozZkVQSDlDIWdtOzcyVl4tcjZL
M0MqaEJLcT0kUTdDRFZNZDx5NSZ1KUM3aVZaCnpTKExgUnk5TEAlIX5wPWlrWU1UQ1BlRGFQck0l
VSk8dUgxN3g2MTNmYEJPMlFPb1opaXtZYlZ4eDVDKTxLYiMpPwp6SHZ4Zkg2YWM+Wip6VEtDOFR9
Unh7bCVycVBre2h1YHw7SGM2WWIkZTkjaEdqIzcyM1V1VVlpaXh3QWAzZjdLJE4KemJYfDg0LTUl
K1psLXUlPDJqQm1+R3xabXZOMThOb3M0UiNiV0xyUHs+bGVyckBMPXIpR2Z+NSkwNlB2WHQ/dytz
Cno8KzEqVG4ocyRYYHhaYEViT0omaTlhfiFtKFokVWBFZ3R8b2d8YUNmMlJGN04hej11LT9aPSZJ
Mm4tX2FKKlhtPAp6R1BmKl4jWl4lKFRybT8zRF5AfFBUTHt3fGZac0B7bVJCXkg8TWpRVCpYPjRz
Qnh4OzlRQUdSc3dPNGdGI3ZwZyYKelhAYiQhaEZtSTZsYjk+WWVOeTMyNWoyU3o+OWtHS0NVI3d0
I2MwXjwkPHEwYiM3I3NwbndVcmBLaV5ONXUjZTBhCnp6dGslKjVOTSVOMFI9RTljbW5pWmlOemR2
Xjs9KXdlNlNAejkrcWIzNVVRUzUmKUtBO0ktOHZSTX1sdWtxTDA7dQp6bk9UQjgtTCFFYz0pQDhY
S2hmPjtGVVEjem9RVU5NWU5jWVp4UUMpMC1zODQheUVpbjhRPmA8ZGtAJFJwPEZJKTEKelAhYEF7
QUYrVX1mJWJHLWg0Szh5WDlFMVlyRFl8azxRMGREU09ETEBCZzZvPlhRU2Zgdn0xKWJzVVR9cmN3
Y0NPCnptUTFPQlpgUi10O090V3VWJUE5dTFsK21eQi0rUmZVfW90TGBteXx5UV8pN3ArMG9zM0Ux
dnd5bSsqUTNmUFo7KAp6UzJ+ZioxKkZXXjY4OyM2MCFnNGE4N1AqX05abWo4X2JWcnE9TEpBd2t1
KGsrPSREbSRISTVeKl9UUmYrQ1ROT28KeiRVRHhnI0VzWTJrPT5ZWTYyVTNEX3k2fSgqdUFMPnZs
bztTMitZWiF1dCUtPXR9NE43S3YyVDdkRmo3az5CNk8kCnpNa2Q4bU99IStmc2UqPGUyQ3JYNzBL
Zn0tYXhRP34oWUxmTGZSRFVxNFc+XzwwJT0rIzhkUjQ9N3EzVGBoOGVQMAp6Q1Z8OCtIWFgmRU4m
NSU5cypQMkZjSUUwaTF8XzElPTdIX2RKRFFPcHAoaD1Qc3BVR0JPOzJKJGVGQllAOEJ+PiEKelR9
K1NDME91MiFSOy0lNDZaeGU2QVdMajBvYlkySDdEOHstaHdmcDFjclh6MFZtUWk5RVNebzgjVU5C
JmdqTCVJCnpoZUAjNjBoaWA0by1OfCYlVUI8MU1QRzZ+WWNGd3tuUTBpKW1jVm83ZypiZ3hCaTFh
Uj1DbypZZEo5P3dKNnRNIQp6VX4+b2hUMUpSUWR2R0xAMEdEIWtlQiotdiElIW4jPEVpdkdvSmM3
YUZkbHVrZT8kQTg4VnEyNVh7WjFJYz0raXoKelR7TGY3Qmt7dFYwUStra2Fve3hedztXUG47UTkq
dDBqQTd2I0ZEcUg1cGU2OypeSmdyaHV8YU8mISNlMSU5VnEmCno+VCQ0aEFlPiRJbk9aMFM7UEpB
OHokKnAtVTtFMz4oQEZWbGlZQyVocVJEbU9RNDB0aEZ5UXktYjF3SD8lM1hrfgp6T1ZIWG5qRT9x
RWMqUGQ9en1XcVM8ZUQyYUtART9JWit+dG8pLTI8R2YlJEx7UV5jWFpRUVkmUiN9TiVAYU1EPmIK
enV3KyVlNiFZVyghMWYyXmF7YGBPX3l0VXpKfDhGNG10ZyZZWmoyX2ZtZSpGJWJrNXVFKnhyTTEr
bFQtRlotKi12CnpGVFpkSiZPM0ZFPFNAd2c+OylxPXdkXjt5YEN7dC0qcjZXJF55d3oyVSV6UW5a
Q1BLTTFUSGNSOU5kanVhfSZ8YQp6QiVQclRDKFRMWD84UEhrSFo0S0kmZlNtYlNZJX0mdEt9ajBF
M19QaXJYe1ElUHJrRlReeWxaXmRaZ1hjeCh8dTAKejUzITZGVD83Y2RCWXB3fUZaeEh3b3tmNGk2
N3dReUkhVWdvQXR2QmRRSTB1JVVhRH12bHApTjV1SmZCTmc1RWVBCnpyPUQxa3dJfFAlRnRKbCtZ
aGBlOUhSZUZhREU1I14jeVJ+RlVjUVpjSXg+MGprRFZ3YTVkciVCVnF6TDJiZ3d2Kwp6PU5KeWBF
QVhrIyNxTzQ2RWNCJnh7Z3pqaDJ9VHJ9MFVBYz17eD1QKURwSms4Qk9jN01gb3IrPFpIM2IrJHtK
aF4KelQyZmh0NkR+ZGxwe2kxSlphZC10ME90elNsSkwqRGE1Wip5YUhRIyhsZCRoRCZKMjluUy0+
aj4wNT9Dbj56QiFsCnp7dmw1TTtUMyh0cX1mTCFPNiVKSXBnPHNseGw9Mk17I1FhTGIkWW1JMEFY
SEdnMDwwTDVBPEQraVNROEYjTEQ/NAp6X191JFdZRV5SOz9rYGp0en02PVo7TCpGYnFyQSRHYjFx
cW9zIz9ud3UmS1l0KXNCbiktWj1Mcl8kc0k0cSF8QD4Kem5peFBkWCNzJGhwa3ZWWTJhZ1ApWiVA
Qj9lent0NCNpOW1XYko+YzU3R1FTSUlCRD99QFJSbn11eD8qQmUpMFNmCnopeDUle2hjWUFtJH1U
Pjw1NXxHcjFSX3hxZG1xLSRQdlVKV01zVUpaVmpDVz1QfUI8OHhVIXBGR3RTSnYmY0FkVQp6X0JR
TDBmKFdVMT1MdUA/ZikhYVdmZ0xlfTclKCpJTER3SmBQU0p4dlZsPV5AYkR1JjUzfldldlVeO2FD
V2dvO1MKendDWlZ+OCVBdSgjRGFNPklRTlhYO3NuJWxZVjgyY1lCU0RqRnprNXBDe25TazBQPism
UWhHPjhZaiokR09uQClACnpUKU83djtPezM/SzBaYFBrVUtQYTMwUXtOJEhWcyEzWkkkWUZEKS1j
Z3xqTks4aGpyVSsmZn0wWUF0RzdnZ1ZAPwp6bHBfR0dlTkZfeGVha287YztjbX1xR29taitQNT8q
MDA7JEN7fE5mKyUxY2hjaykpMkVwN3ZZSmpra1EyZXBOPH4Kem1vK1QtaVVHaXYqNnA8RGVAYSZL
PV4+JSFlKmJJJkQySEhMSyV1cldoKCRBTk01ODRMRURyNEpCX0xwLUBzb2YmCnoyY3coKUF3ZEVG
MUUwUkM0d3R7Smw3NCReR0tnaitsaWNeODg/az9ENDtDITEjK2gkaD48Q2RfXz8wdXpCdSU8dQp6
PTRYKjlYfjQzXkdWSmFjTXFHUm9ycWdfcjg5PU5yaEteMDBsMy1GKzYyUGI0ZT00VGNsfVV9ZSg9
NWA8b3FjXm0KejUhKilNeE5tMCVvO3V2O1dSalVLeHtyPCluMHZQKDc0RzN4MSthUW40d3RQUyFL
JkZ3YENkQXdzdT4rWWM0ZkkwCnp6aH1RP3kxallNT1QmNmNYKEV9Zj8xUFhGeis/Yz5AdEU+Vlk9
UFQtXjl0JVlXKDl1cWg1ZmA1ZH0hfn0mX2laSwp6Qjw/e2hZZXhgT2d2OX1kbXQjaDgzR3ZFdjs5
SSV8PD1Lb1olWURpenZvTEw1dHFSZHV3SVpBY3V3ejNEYGE0SVoKej8hUElYbHFLQUpvUGd1QXNK
Jkhrb0E9OV5zUTNBI1BrJEBUI1F+eipVZHN0d0xIQkhGVD9LfTdJZHFkXk5eKlVNCnpiPGRXUXd5
cHtJMztoNWQpbWRuRl9iQFZzQ2ZUQSsxajNgandCQnVwcD5jemxHNWl4YnkxNUleUyUjVWI9Yzll
PQp6NXd2Vj41KFhmQzlBV3tCJnNZa35zbUdxOS1HfXRZWmQ/SmUlVSoqM2FQdVNFUG8jNipxcV9U
S3JQYHswSUY3RX4KejchcExHeER5YTMxbzhVfFhIPzYmX2szWGVlTmkrWTktPHBXUjROZ056VV5V
QjVEQlUwRkFIazsoYXFEKkZ2VnhKCnozT3t5bSpQaDw/VmNkUCZWQFJpVW9PQUpGJXZzVnYzTzhx
JjBBNmVRKCE/I0RnN3gqK0JUQmtxTXI4bjlMdihCegp6U0FtWVQ3Q0BSbnNjVGFnQjZQZyh5V35W
JXV5KEY2ZnErLV9uZkZfMzFHTGxtSjxCIXpoa0ckWnpYQDZgdUROTjYKelgjTFI8Vjl5cTBUQUwm
elpnITFeJVRKRXI+P0h9QkQrWllzd3RhM0prTks+PUxKYmUrdiN+K0piYnJOcWshSj1UCno0YCgk
Sk85Xz8wVXM0ODdwYWVOJFRQI0NxSng3Y3NMeipgeSQ2Kio9QnZQYXlCTzFCfj5IWktINDM1eGE2
ekNsPwp6a1JxbSN3UiRic1V9cnl5ODFWNTJJfU9YS2YlRCZ1IyE5KiQ/MH08ZkhxTmZYPzQ9RTtY
KCk1bkRjcmpMMj5RckcKekVUeV5BbDEhdFVaU0lVKCV8fnt+QWkofHF0JkJVP19fYmFWYmtlaiNY
PG1GSHBSdmpKWEwpQGs4aStse05VKD0hCnpaaVl6XklhNn5eU3FSMFkzWmcqdEVWZ1pXMG9pT053
MXlnKHdkS2stPEU3S3Zge0NLJmNDN1pkMjI9ZzFDKE0kaAp6cHlvfFk9LWwwPTAwNTglR0U/VV9W
Q3JkJHUmYUYjQGxBS2skS1hDKkxtKkBRe0FCQHdSfEVqUV56YVZse2tRNy0Kenh3TXotMDFoPHwo
UFQ8VlUkK25tPi00JkVEZV5JTSVKd3tYdXBjOHMzQSVyTiRzcDRZWmp9ODA2bHReYlBBYlBnCnpm
Myk3cHEjSitWWXpqUjBATlRVQyF5WXV1RVg5U0Z1Uj8oQWFuYERLTThMPnBGPXI5a1RRamY0MUE3
Tmg5clZnbAp6Kkk4RkhQQ0Y5NzJ8STBAeVJmamI2cmEySEc7djA7TmZWPDw3b2lEcmNwIUBIb25i
VCZNbGMtRHNLcV5EPHIxKE4KeiE7WjdWYChjcFFQcDZ9emJ1S3c2Z15PM21QKmJXQz14OHc5JSlN
Q2ZUXmgoTjdJTiF6dio+c0VLYjche2FGUH1iCnptNlZ7T3ZJWjRaKXVeYWUmdypmeDxQR3F1TDx6
RXloYXdSU2pme3xLRmhWOTwxZ1NJJmo4NSFVdiNLWkFKTUtkdwp6PXxlYz9Mb1dlQyo4bmc7eiVW
PllIZ2UyRkxicz15Q2FYMlFCb2wmSWZWU2RuN3xZalM3RU9sZkJ8KFZfdTxjKlYKemlEUj4+V0tH
RG4wfFROaGQzb2BeYk91TEJ0OXpLZk5hJERqX1UyVFVBVkdmKCh8eVgpYDhOe2FQM0hfaGRhcjNU
Cnpmbj81YiFnfStuT0VIQHNlNk5gcTxQI3E0PiNGN2QqQSREfHtgKV43Tyh0NXYrVz0hJEVzVk08
WHZGLXlONGd7bQp6RmtYfl9PYDN9T0R5K0tWTypyeXc2TTdIIzI9JXdgbnhCcXdgUCl7YURWI3VH
JWlpbTtfNFola1dvN31kMm10KV4KejFLVz0jKHoqRjt8RmY1JDgkR1o8NDJ+bypLJD87ckcyQzA3
Nkt2U3EmbGYlKFAyPUdIS0pmIzFKT0xIQDgqWlp1CnpMKXdZNyhQdXdVa0lPRW9BVWI7ZFR5Vn01
PEwmPGJqd2pLKVp4RS1QSHdQITN2bCFYNUVfT2ZEQEp1cD4pbntGWAp6aEkyb09rTnhyKUBre1Vv
eDBgWGd5WVhnN1ZAOGUpO25FV3VROFN9ZkxXUjczQVNkXjkocSFWTTl5IWEtY2I0JiUKentnQ2tZ
Y0xUZE9CaVkqfm07VXRten0wOFF1eXxVUTBFZG52PWFUI2EwNUoxPHp2ekFFRWYqTT0/KGFZV2cq
fFAzCnpNMTlOMyUyNyRlVVE8Xyhzd3dwLUV2LU54NmVJQFlSfHxJNzZPQH43NUN4Qj9RVyVYIShL
aj9Da04pOHlgOCVDcgp6UG1DZVZobkw5O2AyRiQtKG1yeSFrSno0OU8wcyhmSDNBU1hJe1FzfVpI
Tmh4QWNtODFgNm09R3NKO3k8dnliTD8KelN1TTE7VWR8MnJhNih4U204MmMqX0dxQHhnJXs/fkI+
RGpuPFhzfiV3TWtBWj1ZfUNuPiNOSjt0dF4zQm55di02CnpUbFpVei1fQj9mZWFYQlRQKilubih1
UnRIMC0qN1BoTWxZMnJGIUA4P25mJXBmPylYeSNxaGpWYyp0e25Dbj1qVQp6cF42ZiRlRF8raz9R
QkV1a3ZeNEdYdCQ1Ml5JVVB4Njc8dEt3Nj1ITloqMlZYV3E2dFcwRHA0O2AwQiZZbXFvTEkKelNV
aSF6RDdTR1kwcFhmIUV9X2xIQlBUK2AqPFJBdCVhRlEwYmFzck9xY3UkMHBYcTs7PT5IPSRDKnBN
R3F5ZnNqCnpfYCNRX3B9eTg5TGklRE9LPHVKfUY3Nz0pZF9vKlZaQGNuVEcpJThtZUZqV2JadjU4
Mnt8Kn1HdUViTV5kVTVqfgp6dzxEVFQrTTkqUnUxP0ktJWBHI05tXzIrNTM0Yn5FYHNQVWFGcTxI
QHI8fmJ7diUpT0BtU2dGdXIxSXxYK2VLTz8KemZyYmh7LXV0RkJFO3kwYiRUUjhPWjUhV29KbyMj
dkV9UHlRcEF7VlFTc29iZCZjUXlgX0AhbTJ0IzNlbTwxfCFOCnoqUF43MTFmTiVgdXxsRTY0OHVM
eFZVXjBUdU9eT3hhRn5FIzVJcTl9NyN0b1o/YSRYQnQ1fi1jdWpsQEZUKiQ+OAp6YjIqdVpvdyk0
QiRyKmtFMDU1SFclP0ooc1ZHcTNxWk9aXzZWUHxLZj9ONS11UFE0SmgjbWk3YitoMUIhP3BRPGkK
eiFZajZFITZwR35eaipVLXEkU2dsZklGR1A5MV5ldzVeOHFqdlhEbylyOCN9UytAbHNLVlRhJCo1
dyZWRFl4eHA3Cno/bHRVIyVJe19qRFkzYyooT2lsUiNJV3pkall5NWBmeGx1MkppJDZ1Vih1UX1s
Xl5wbHtlU0EtMTVVMjlJdjsrZgp6bSEwanM3d3V8U3RLS0NgdkpKKTxRdyMpMTB7SWYpNDx4aU5A
QnQ8ZU5GV0klKmtDWmwyODtvbFZndDV1bTJCRFMKenlfZU5XK2s1WWBKSDZmaUlxeGxWWExlUSU+
LSZpZFlmWmcjJVheO2xvS0N7TTxTblopKUc+fXBWdlp0PXNwUDVmCnowRyFKREJEbV5gKGJQRkc4
aHJIJjRUdVo9PmpEQmQ5MDAhYiFsXmR+IW0oWklrUG9pKyZrPkQzQmZAck8hU0BIRQp6dlNVWXRg
aU4hfEZrRWFOTVVaUjFOJjhDIVozKjskP1AzU01eVGlfaT92O2dLLVBqYl5eWEpwcF94dlQpRXpR
TjkKemY0ZjsrPE4kJW87JnBHc21pSyU/YHxPfXMhdU9zI2k4SX0hIXBYeW5JXjdnU1VldHxAaUIz
b3BKdmVWJGdkVyNZCno3XjZZbXB3OVNjP2tFWXFwIzZRX2tqQGBSeilrZHkqdnArT0I+ZXI+NUs2
TFJxI1heNFVtKTImUn5+Qz9Ne24wbAp6SSVYZSNKKD4yYS0hbDxfSUAzdC1eOXFuI0s9eU5QMFg9
dCNlZ144eTAhZ35eYnlPUiloK2NsLUZmcTlSblF2fGsKemtCdGRkRmdgdG5uWW1kNF96PXt3VUhi
MjtsWE1zdTchVnchJjdFWTJ2LXVFLTcpYz5tMVk+OSlrZyl4Yk1XazFvCnpYcEl+NERgMHJ6K2w2
LUtqSiFmKGp9YS1jaUtxTTxHNipvR0FOST5oSn5sfkM7JGYjVjl9bm02X1hMQm0oZW9tVQp6TU8t
UkIoZVBHZkJzXzEtQ3t+bmFpJXcxWUk3X097TFcqVmghVHtSJG9rckFxNWhpQzUlJnRYcDdOb2xB
aT88VCkKejV0Si1TM0g1aVojMl9pV1N1ITd1clpAbV92UVE/TyNkVnUmYWhsZW1fdnttRXFgfHsj
NUI5JGYwUWthbEMlKStxCnpNKnAyMWVWaFFxRFcyUWBIVn17amZQc0t0NkdjOUI2RkI1REd+aDsw
X21yVDhCS0ZeUTlJP1NCSSRFMG1mUkRVMAp6Mm1rUVN0YzJNQWx7UVdlM0tHQCghO2ZDWVExPXx9
YzwoQUtTK19gcGxIVCZzPzspcG5rQCgjQXpWfV4+NEVFI0cKelU7R2NXUEtNRmNKQkZ+fE9GfTtZ
UGsjP2FkZkc1SClgUXtmPHJwZDRNcFY8QUlISD8wb3J1d282NVZlO2pvPzcxCnpOWkc5fHdCUjNh
aSg+UVFzNHhxSUF4Wjcqa3I9e0Q+QVh0PmZjU2N2enFxdHwwIzI1KCtLYD0taV5BZWs2OD1KQAp6
eG08ej8wRVZqKWBqaVZzQTBycDZBUEJkfGdWQml6XmJIU1RXUEV+dlYyOzIhc0g4WnsmTnJiPXJU
SFF5bnN6RUoKenk5Ni1VamQ8ZGZZI2hBZ2ZFYExULTV1e2x0ZX1ZNFJ9M3ExKGx1d0M5dDM3LUVv
QnBedTwqQiNTKkFBSiVxS3pTCnpkMytvY1ZDfj1IMygje2IzYXU4b0JeWjUoMGwqdU0kakxfWm91
JFFAJFpeP31ab2heRnVMR3dOeDl6IXJrdFEtdAp6ISktOF90dVNYVGxmUj9odENhVCVUSmwjVTZo
YEhTSSFzUUpzV3QxNSZvTlghIVlwST9tUFAyRTN0K0pNO1FNam0KeipEcFpNMmpEYy1uOyFyXmBe
QG9FSzdWQTUlbTZ+LXFHeilTcGZDVX5feiplWFRzNmg/blFwYC12aTwjWUF6PSNlCno2cmt3WW9z
Y3tla1BJZl8jSlQ/cU1PZjQ1ZmNGe3pmSCN9TmcwezFMYz4zWGskalchJT9oa0I2P2RuQF8reCEx
cAp6K3xhKGhKflQ4bWgrNihsK2l0X1JBOSlmenFmOzJgQDVkfUBeMTs/fjcjIT9eQT9rLUdWLWRQ
YS1YY21eTVZgOUIKekQzV3BfbGo5PHVBOHU8UU82b19wIS17KTA4Z1M0MDcmNHBeWD89TT8jMDdY
aGVOVSRLaUoqfG83fi0kMUF4PCYxCnoqNU49TjJ+QU9YQzMxNHxXVTg8M09IenslVVl8fDBgWCpL
fEdkcWhCRzdTYnNNbGRpc2lmT2wtNysqLU1kQjVWdQp6X0JrIT4oTWJtJGYyQi1yRVg9TE4+KDs9
cWAzO0IhZD8tKHwza1BnVzJQUztKLTZUOV5GMXVKdVhDYEt+VypzY3gKem9XeyRRZWJjMXZlRk9y
RjlDcVhAQXczMykpKEg9JCpia3VlNXYodURMPHVSV2h9dGhlY2opUnYqMz07cS10I1k+CnpMVTdX
SGhgJHc1KUMrNj0ySEQ/KFNwNDRUWWJmO3BAfjNGTXlOWXVXR31+dz9NZEhePE5xUCMwVl8zZXYw
PCMyVQp6dDxDNH0kSTAoPEs3ZzdLXmNTOyQ4eDg+U3hHIzBpVXIxYUtwN1pWeCVFSGcjSWtyPlRf
R2dPTC0kJUFUX3VjMSUKeldBQ3hnZ1VJUVpMfCE/NnlELXk/YEBUZEFKSV5kQChRNzxnOCk9RTFQ
YWViSlMzOXdDVi1ZQGl7e3ZYTT9mdjVJCnpDIVRsJEFOYXJyQFZEPUtGUDUlWWgzc1k5NUhtWTQp
N181RlF+TlIwLXl1N2tNMWkzWlU0P2dIST12RXhwYnVmdgp6ZXYkVHpoOygtIzZxJHBLKnZneU1u
REV8UDM+P1p1QVM/O1pBNzIhejIrITlOXlRULXkzNEowc2h5KVVEZXZ6R3gKemVBNDx3QzF0fDEm
IUlsZWt0bkFoPlQ+IyVlKmJ6RzU+cjtYaHJ2KXRJMCpZa2hTNTdYaH5iSEclejM8WU98RXZHCnpO
fWBxZmF8Y1JydH5Zfk5Lb0NnRmhWaWJ5Zm4+OWJETVF1aVBXcDMqUVloQmlFWXdYVCM3bGBUK2Fr
ZEU4NHVpJQp6YyswTXMhbEh9ezZSQ0ZDUEBuXlZFQEJMJFdTJHo4UiQlby04N1J3MTZBbmpoO1VG
JDchYjRCbWV7Z1ViP2J9YUAKekZtPT9eaUFab3IwRCFAa0MyQVl1X1lkPjZ6eHBxbU9MU2dfXm1I
VklNd0VYVSZ9IS1renpiWUItX348OXk4bytwCnpMeWlQNjFHdT5YO0Ihd09FJWs/X2Ztdl5TI3Zo
K2hMOVNCPktaNWB4OU4hQHBjPXI1WHgtPSV7e0U0MV9rX3BtUwp6QUVLQWBZdVNIbnw5fFdBTWFy
bkdZZDxFPWZNY3JsYHYrZGVebXFWMiohP1AmWjxYN3hlZGFUdGZ6TGFLTX1GfjMKejlPPDZNc2tS
PT40aGBWcWYkYlJYWCg3fSVZbCVZXlYrMDs0NlYzaWJAYndOTUsmQW1MZX1aTlVaZHEhPi1gcnh0
CnpAK3lPSDF+WDdlRzZ6PUpjX0lKXk97ZGh7M2E2YlI/KWNORV9eUkt+VVE9SUdfUWojUz83VGRi
Um81WG16ZmlEJQp6eFEjRHEzcit4bG4zXjdvem94eCt7WG4yPEZTYyNqVktfdyRwcjY9NF9yTCVL
TUBOWUxfKGNscm05bUJHKStvQSQKelR6Rnp2blk8Mm8rfU4lNjAyUzNsd1BoQXI8Z31xQyg8JDtS
RT1fcWNMZXplQmVnPDVtYGlCQWBib2wmMnAoSm0tCnpXVUFAQWcmZTcxME5fcWZaWFg1KzFjVzF6
dzA+PTIyS31XWWwrPGxWYnFvcmlwZnp5aldILUVMeD9yTXhNTG9UVQp6XzxDVEBTcTQqam5PcWVL
VHBqPyMwVEdQUl9tUD03UHgjZnxnZ0dRSFdlbypyPktZN3JVaW98PjstTnNifElCclIKenp6cWR9
UHlPLWVkcX40U0NDfllqMGV9VSpxIyV1R2MwP1kkITcqNCM/I2p+QUl1MUFZZXdYQ1ZLUm82dSoz
KDNQCnpDJC18QXd7T2tCenh7SlFYX0BIdDlUZmVSSjxXPTwyaXZnWWNQSEAzJHRGfVVUXyRNa2Nm
UncjX2BDUTIxRXgkRgp6SU0rMm8wNU9MMUpEKSorK2dTbipuXkBweEJ8SkRmOTcxMmE3Yzw9QTNR
PVUqR3FINzw0Ul4wS1ZNKFB0ZERhKDUKeiZmWiU8K3ZeMXtmZFN+dmZhS1RXNWQoZ1k+bU0/Uz5Y
JW00cUpUOE5nLWUxcHBed0VNQlQ/OTs2dEJINVU7c0ptCnomUFBKZVBRdnp7WlVUWnFPd1lRN3hw
MVpMYSYrWVB1YXUpXyFieiokNTV1Q0IhVkQwRE1JYWFIKmlFdTBLZnV1KAp6TGQ3TS00MDU/eUUz
S1ZvVmpYXi0ta2h8O01VNmt0X09uXiM4VlkpJForc1RSQX1wK29aNylkMmw5RWpFSThfKmMKeiRD
WShYYytxdlY5aFQ4KUYreDQmQTM9RWI1PTxGMkZ5fTI1eSR8QVJQRmZmTSlKQ2NWKztTREQ/MDMr
bnBGXkgmCnp1eWshMW50RGV0YE5DKUc9YDNhdCpaek1JMyVIPkdAR3JrVkA9ZW42fDJgK0N7PmE1
WTlRR15EPWtDOFRkOXJJdgp6aj5gKF8telFVbEcyQFMyeSsqbzhFciQ+cnkre3xyQ2dSMillX3N5
JT95Wl5kX152fHpzfnVqRkhoSFd4QGJkM1oKejs0OG03ZyM2TkM1ejUtUGNPUG9qWSFNI1VzYVk+
aEtMMTtFcEYwWVItNjtneE04WkVrOXprMSs0XnU+UU8+a2gtCno+UG8hal9Id0skb3VrRCFFVyhf
anUlc21PcSl5Njd1PDdUOGBTaD5wN21NQytmVmNvTmRtPWlVbFY2MEFzdjZgTAp6NmJwTWxMOWlE
UHtgcnElSXpVUGA2UnJhYypyX0gtZzhwK2RRRD1XWStJeEYzR0JHWmtncVBjRikpPnlWVyNSZHcK
ek1kSHJHbHx5RjBkcjEwQlN8Z08wYXk9TFhJRWtsJDAzaEVjcmJNRUw3KHVeM24zNHI3Yn4ldG0q
TmpLSGQ0e0laCnopemt1aU9fZk4xOyQpKjUoKjhAenZTYXtBK1NwO3EzMGBOcUN4TW9KbV5nTXgw
M1piPjV0PSM7cXE3OSZrX35iTAp6bHE1a25CLX5Ia1YqKjQmUEJzaXFoWHclcCV0PS19alZwYE1Q
b189SnpUZSkxKGYhQnAqOGwoP2BPVSVZMU9SdCkKej8+YHY7PFYtK3J8SFUrI0dyNCVPJmpnYHFk
KXRLND1VKTxZeylHSj5HYWAwckE3V0VvMHN3ZTxlJnlvQCp0VlYrCnpNQnM3Jnp6YkZgZWk1T1Q2
ZSFNSi0lUXFnLTJRPkAhUkFjRW9JaXctREt8UE57VFBgRztuYl9vO2xsM2NVP3lRUQp6bmRHWCQ/
Iz0qT0pFbWJJbyVEZnN1Zj5OeXY8WXdBUipVR3w3fX0yPXooN34wSm5+dmctQXtKdkI/JlZweX5H
cUAKekgkZHhoWXRUZ2xSNHMyJW9xV24/NEthRFlaMWQrOW1ZfXF6NCV6dHlOdCQxMF9hX1V6X0ZR
ZDc2ODhzNGxHMW5+Cnp3ZzZDRTJRJVFnZD4qZTR5KDdiRD5GN1pCOzJfO1l8QUtvbW5fYCZyU0A4
SkY2P0FXbUxYZUh5LWIhWGJnJUZ0Sgp6alI5YVcwWUlUbTk9WG9CMDJoZWJodCFmXi1QVnwlQ0pL
OEQrQDB4Y0Y5dUhATDhQR3VENks9LUFIYnNHNEFocXIKejB8PmAtYGFAMVM7ezI2VVU2YihBekhR
d2pxVHZWRWJ4NUlFZ3ZYQU97aHRHS2A2aitJQG9PdXRaejc7NGZCfko0CnppNj0rcj1Gb2tPTFBg
cDZAKUJPZXJTVXxTRkNPMFVOd2ghdDFZUmRVenpxZH01Qn07djNraUp2b0hGOzE+aX1qNQp6M14p
LWVrSkJ5YjAjQXxzKjN+dElhM0JKYyhuP3ZoezEjb05CKG5lYUt5blh+QExOUFojZS1paE1wYzxy
WHhXc1QKekIkc2J3N0wrM2Bze202JjlxQGFtPHpeWVdFZngoVUoqTmNRe19lWV4yXjwpaG9EKz5l
YD18WUFJJn08M3BNRiVkCnp3WCVydk9iT0BDJXdtaV9eTSp8O0BVXmVMNFkkM2lVaGFHRV9HNHlq
NUl0dU9WYHtpeElIe0JhTngwIzlgWSRERQp6ZnopOT5efDMpWUN4aC1haCppTmhlQDFwTEQoVn1O
TTxCcU5kX3M2TnBgSWBKUWk5TkAwKVFLOUNhfnJvOTI+KSMKek9CY3hgPW9pY0ApZ0koQS03Jm15
dSFzYU04K0thamhLNV5VU2hKRE5KdjhyVSooOWpxcCZKZ0g7QG1UMGZFWW1NCnpvTD55fFExMXdA
Zj5sfVJ1ISt2VXF7TWZlIUVFbiYjUGFQaHRoLWJBQz5sdWt0TWIhRExZRkZ0RWNfZzxLR1FYVQp6
WCk8NH1KbGReeU9sazZBNmlJNX47bHJaMmluKEc3ZVpkKmAxTClSNCFlZj04KGx6MXkydW9TOShy
R0V+UG0jeCUKeiNaWD5Gej47T2hpMzdYOGgyfUBATjFgOSM8XnpEd0piZ1RFZTlBeE5eQHBzWStL
Kj8hbFltVlImTEV1T0tzSllMCno9ekAtbyVuQmVkREdmaG1gWSR8Rzs9KThQNSYteG5JTj1tX24q
bCVuTWslcn5PYmNXSE48IW1qPTJ1fEptVW9oWAp6N1paaXdNfUs9ckdsdnNFS3g2PlleRSpITTJ6
Jis/ZFBiJSZOVyRGTkg7N2slXiNIdDY8SFFXPzIjfjM5XmJwU24KenU7SVZ8O35zcU9eS1hYSFZG
OUBJVHlZWjNPJD8jPz49OFAqVVhzZ3JfWnZ5Q15ePSleT2FWa0haOS1QeHllSSo1Cnpmfkp9V0Y7
UiteTnkxLUx3RnBKIVJSbVBfeElwVyp5WX5BITBvUTs/QztTUCZ5TzVjblIxfDh6IV9TZmM9UEgo
NQp6RmhxamMtLW9qO0UkQUI+NnBAMmUtP1VueVh6eCRRKHxiJDdZdSF7KDRhM0dlJFEtYUQqI3Bi
flApJUMyJXhSTzgKemtkI2NwWDE1cDkhTGFjNV5BYnhWIUMjaHsxfW04V0dsUD84LVBNR3NlfjNW
UzVKcC12djl2NUtETlJSWmV1ZnFXCnpVYEhWeypSdiUydGlVVypWdVY5KDdgVDJ+WClNRVk1V18+
cUx8WmctXjtRX3sqLUNwZk1hWXZwfE1BTn4/LTRVSAp6Tm0xQXJSY0o1aXtRJGhxXjJzYzUoY2lJ
UyN+ekVGZGY8eWwlbXVoXjdJNEQ9O1F1XiFhSXdjMVlVT2ZZUDZGfk0KemVFPXM8YnM8b2VGSXNq
UlIwbSpHdkg3RDR7VEJlQmpRVmNiRWs7YW5Sek92dVJuLTVkSWdRRlIqdTskJnJaWTFTCnp3UUpz
bGlwRT5TSFMkZE48SEVrREZmcV4/Wng2MH5tWns7b2NZaE47VFI4IzFCITxhTSs0SSFuWGcjek8m
SX1qKQp6ejk8Z3ZBSCg4Qm1INmMmQUhrO0Vtdzs1M0pQMV5gO084YnImfnVJZnBqK3tCTHFgRGdf
ST9VO0FlRW1XJHVFISQKekIpbUQmR2YtU3ZpPXY4M0k5d1N9IUVadFBldTNBZDZhcWZhMmNRUiRS
SUsxUyVtazBtaHhSQEswYiY5fVcyMG5tCnpOOUhYP1NeRjlBKnA1bX1jfXhRMjRCT3JYV1YrPCN1
bG9zMyl2aDdpekFWa0FtRiNqRCZfbkMjIWktbSMwdF5oTAp6IzFKQC16e3FfQzRfKDRnUSRQTGdC
JTsxe1ZpO1J0dFhxSzw8PkBGT2hSVkJQQ05XTlF6cXY7KTU5YjBYejdFRXwKekRIMXpuOWpFez5O
VHp3ajE5UjFGRnIqakJqPTsrfnxKMDR2eHJ4am5Ne09tSEhtbGdibyZoaiRXbnxjcFUhSU1vCno9
OEw8Z19rOF9oTll3cn05e195ZGstYn5We3khal5lUnlSMCYobjZAaGd1TFEmMHtaKk5iLUBYek19
UW4yZiRqRAp6QTlKLUg1Ql9NfnFYOXJlZyQ+e1FkPzdKYGAyWXxqPlNTfWNQYCZidnM5diFSV34m
UW8jcmp+fDMweWstSk9aOTYKelEzOTtvMFo0UiVPNGp9KGpGb1JpPz5LM0x3bD0pPj0+MjU9TW5y
bio/bWVTO15LR2x9YGA+KlV4dXJSQFlRME04CnpaZF8zSzAoeiFLKFI9T35yVXJWMVhgI2c0bCNs
NGB7ek5jSGQ+PWFEUWErUT87fnhfaGR4YUc+RDUrVkRHPiN1QAp6WDJMPihlSEZyKi1+YG09MlN+
QjJgdT8/PTNILXtPJEFpfE1aZWp3TEx8czkwaD4jeXklclUlcnE1d3gpYklBK3sKeiE/Xml2Rnlz
fj9XO2V1I2RfZVhBRUZzTmE/Nml1PD5jJHsyT0BpN3M+bDE/MW5DVjBvZms0MClLPVg/eTUjcj51
CnokZH57Q0RaMnU7RXBObTZ4OyZBciMpKWRaQlhqNSliXzsrSmVnRjczPXtwOGBPKj09Pzg7O2hA
QEZ+Um5xY0IoQQp6M00xX2M1dUt3bUlVSzB8RC1TKEBWUns7X2hIOUE4KTh3d3JuaUR8JmhhJi17
KWo0U0c+Z2dKSz41RSh4PFZEO0UKemFOVENXNEZpRHBKLXF1cGZuZWsqZVcjeH05LT9geTlidmwt
RDlodF5EdjNmTGk5ZVF5ZWcrVX1CTEUwWUJTM2M2Cnp0dC0rKjJgfihhM3tWb1NwKUR3RCpvZWpK
LXZWMTIoSiFyQCVTZmglN2hQeGZweSZMNDFPcHk5Rl4wYnZAeHhaSQp6OU9oTzNPMThmYk1fJjhg
RSoqRllSITE1Uj9WckhpY1dsSih7YGVVKDErMCp+SzFIeCYzQnQ9SC1ad0xlek5RbkgKej9DVF5k
OFBhOHBCbiFXdWV5ZGBqKlllNClBP1o3T29AUWpfN294MHc4TTFRbzxyWmkyPXpUSTFQfFN1QG50
bWFGCnp6IWlaY0BwSCspRW5WKCtsI1JpM1g0V2tMOzlQNGZXKGczSVE8T087cHJ0UHpQbXZqNXFC
VSs+dkkoZUpMN0YmPAp6c0tjeXZPSklHbEVHckZwY0ZWaiQ5XysjbUM9OV5DcCtsbm9xbkc7OHpX
MEp+QDx4THIxT1EhI25lMUBne3d7M1UKeilRRXx4SWRsLXM9ZUc1dDshdiVZViMrYDZmbmhHNyZH
bk57Q1Bufm84WnBsPiU7ZyhrJSYoUDtmKT12PEgzPyl1CnpxNE9SYUxxXzh3U281O3VHWlBIKVpq
MWMkUnJMa3Y+S19ic0peZE4+R0lBKko8Xl9PdnxMOFIoMVNvZz01Jml4Kwp6Xnx5SGQ3QDlfR1pM
UkQ8V25vdXJ8OUpvcUJtaWpORDtOTmA9aUl0SDRQWDk1elVDUiN0fUFeZnI9JGpyK3VubUwKenZK
Pk98dyR4S0ohYXB+VCk/K1ViOCNvekhPPVQpYXBCKmR2S2JVallWOXpoVkUkc08tckBkSSF4RU1R
antmfXRYCnpDbExATyp2TEFZb2NIZFpveUlgKE5zUlpqNSFpJjFEKGd9P3t9ejVOZiRyO3BMWHRu
NW1PPDNOeCptbTlINnF0dgp6aXNeKHBMSExtYjM9MFZLbH59PW8tX2lSR2w3UnlYbzZ2bmUpJGJW
T2lOMmc5Ym4/T2xHNntPO2ckRzREdzRlI1UKemRBUn5wVUoxNmMyMUhsaGhLaDdFR09gQEZOUC0l
b1ltakMoVk8zcytYeEA/QnlwdVBoO3U4PXFWelV0IXgxWWp2CnotI0FQZjBRQXJpTWNgYjI3dCQ2
clZzZ1NRJk80I2dGeUN4OFRnTjxkeHZ6R1E0Wl99IWokQS0mWlYyWCo8dURmMwp6aWBVfFpxOUot
QjBCfmEoKCpEeEtJOXl9YHE/SCVhZFg2VWcwVGhDX2h5Yjh4Y25xeWllcXRORkkqM0ghUGNAWTQK
emlyV25YZlZZNERtN24rbmt4JE1rP1l7KkI7S0g5I0ghT1JiNW5FUD9TU2JsSl91VyY0VUlUKWQy
I0BqV2s8SjU8Cno9JU5NKXw1RV9+LXoybGVpbj9gb3FofEZSPChfd2xCXmB9PzZ7bSpVYXEtWmZG
KkRZdVUwfHkqakQwT1IyLW15fgp6OVM0NGtybjNfbT07KjttWl9VUjhGRiMyZCFZUX05VVZzSipD
JDR1NkJkdXBLKHMyPFhHRnZwQ3ZxcyskN2JmK3cKelBUTmNLN1JHI1lmJmEobm5PfDBnVnhzPTgl
cTtDWVFjNUFidllea2A/eiV9ciQkMD9VYXFFNkJDRUhsd3hBaEBPCnp7cT0qS0VZI2xIZ0VKU0sy
QEZPTjxoWiFiNnRMVChffHZYM1RwWH4kbVF3PWJoUCR6KGx6PWVQZmlZaFkxTjZ1Nwp6ZjZman1D
SChyMGIwKnh3bGVqP2lVdG99bCRHaV9CPmdTO3g1dWtoLSokSkQ0USU8fTcrQTw8eEJ9UU95Mmpn
YSoKelZnaiVeWCY0KHNXVlEjVXlpJUNVUnRpbjdGWWxJZ3xJclNVMGJxTyMoJlFBSjZ+KUx9VHBA
ZnA+aVNlITBOPDtNCno+UmdQPiUlYlY+ZjR6Z2BvZXgrdzFGcVctYUtpeEx1S1JaIUFwcURrcnxi
WGsyfUJUXjRadzEhU3pMKGRzIz9DZwp6cVZiKlQwfXhAcmE3PEMrMjFMNkxBPzdCezBQe1Fta2Qo
IW1RJk5wKHhCZXxNQCsjJDxtfnUwVW83QzVHOVBLQXwKejVGP2x0ejQ1SVUxRzsqQmN4O3l3RkBw
eX4/SzQ8eXlOSWQ1OEdQKlBwVGErVj9PVXxWc1Jhe2pnaUBkZEpsNUhhCno7a05TI2Rna0lrc2ZH
Q1QwKmBzLUtxQjJ3PykpUFFEcFVPb3FXb29iT09aKD9mS2hRcSNmM0Z+VHZ4UW03WkIyVAp6TF8k
cHcpO35gNTlyXnVoYGFTKHxMTE5OQS09QyVIY0NvIXhtOytve3MyNXtTM09hRXE4IXc7OGd+ZHIp
cDZ2OU0Kel8ycUNfPFM5fEFsbEBBPCZsYDgjPkRZR3hnWGVvaUlXRyhaMFJBMlZmbml4NyhzTitr
Xm98NVNqd1VKRzw2fUE/CnpEPTgkc1B1a3V2SGowUzVpdlhZaW1oelFLK2pKentQdShxI3VhViZx
TlY5WFc3aTElRSluYSpaWWsyPyRXcDBJcAp6XjIlJlhkSGd1fXRJeXchKm14SWlXJm44T3dfaFJ2
MnlhcS0wUX4wPE1uI0p4Xk87VDxNdV8oMFdnXnk0QzZBdkgKei03Z15uZldpV30yV188ZjFZJVJJ
MU9PSW5CTE1pNDlzc3oyJFl3fEYrQmNJfmNwRmhXSkxZU0R7Ym9jc0lFU3w1CnpKSjgjRlNoTkQ7
c3hCQDt7b1hHfHZIaD9ZLUBVZ1M4UE81Xns+Tyk1Y2k4YVk/cV5XOVctQUBudjtaVjJBP3lfcwp6
dkAja0FWelJkYiE8V3RvYjBBVE88SnZRSUVgVXgkc0tUc1lGcDdaS29sWD1+RWg2ZSkyZG13b3Yj
VFlZKXxQYXkKekJTfG4qYz0qK0coVkk2MyVwbUUjaDBLNzI/PUFFQG1qTUp9M1BkbkFJZXwwSE8q
cjQkZiZpT2MzSllMSTtLLUM2CnprOExqI20zRlJNLSt7R2o4O0NKMzFvakt1ZVkpM3lJWH0pbGRy
YjcrN3V9QiUwRHhQbFRWWXZ5SD1AfkR4QCFadQp6RVpJbHYjVCR7d0diWT8pY3xqVVIjfVM/RmhC
MzxwVGgkdWI0NE1iPj5Ralh8a08+cylBMCN1RVIoTTdsTjtXVHAKeitONEhuZExyQ0I2N21aKDVG
fT1EX18/MmQ1PGAxO0F4ezBUSjBhK1gwbD9QKGQ3KztHcGlKKXM8UEluN2tURXFBCnoxQDllfEY5
NHhsdGcxeFRgZThLKk5DNSF1MXUlTE0oWGs3ezNBa2xoOHZneTBkSHskYnRGUXtvWn51RHtgJlRM
VAp6PHVeMHRydXhWZmNuOyZlbXFmT3Apbll7ZE5FbDVtMG8/UFpPcjlUJG1tV1dlTHdrRiRfMER5
O1p+Rl4hdDckTzsKekRAb2goQmVMME1NfHZAUUBpZ1dwTSYpcHZjQyEtYGVOcURoNWB7PXhCPz9X
WmdfPkRkakZRP1ZOTjJ+TiE4bzdsCnpyPTs/Xz83biRJMndZWSRePXU7TD89MGx0aSRSVDYlPT9g
eUZheXBIPXBhK3okZkBIWkdebWJEVj9SSjNXV3RsTAp6bVNNO1o8WlFWST4kazIkRUVyNSNzPUxz
fThvJkVeQztoZFBJaS0kOEd3QT84WnNfVipPbl9ncTJ0ampIK3AjR3UKeiFRdUBvcnk5QE1rVT9G
Xkkyez43Ylohc15tbDRqfDRUd2lvKVhOaUpvOGxvU2w5QXY/eF9mMCltZV9Ffj1BfCYlCno8UVMq
Z2NUaT9IVHlremVYMHtEeWNSZ3todWtGUj5hV2V6SnJ2SDNTNSo+ZSlFST1SR2Btd01hZHBDQkV6
e3JDVAp6blp8TzlyczZ6RU1Gb04jaHxyKWcyY3EoWW9nRzRpU1VgeyNRQTM0WVIwNDhCUCpsdWBH
b2ZQWEVvZE9oWDB8JFUKemRGYCltdmhXT2Rva1EhZjd2WV41NlBMazQzeGI9c2ErZWA0dGVLdG07
YGF9e2Z9dnFRelZ6XmE7aGk3PEh+UVM5Cno/KFY0ejd5XnhhUXt4ekZJU3V6dkZFTlhfV3xFU0dK
PUpTYyhtb1QrMHM3LXE8KVRGbSRTPCNeXlJ6K3B2fHA4bQp6emw+bUNCfj8lREdmMHNeY299ZTZG
bUZLVFEwMT88PWlFNW1iT3peSUV7Z3NGIVhEPThPSCZOYkExdWIlOXZpWSYKei0rfWRhWT1iRWx6
OVFVZmNiJjk5WXlHbj9vPCtkcG0tfT1JQUF8e0VfZUkxKTZRYmFaMmJucS1aR14zQ0RNQUdKCno1
Z3ppd0E7Nkc0UjheOG9IOG5QOyE4Tn0oRyVDYDw0SDx4fGNBYntteWBVZH1kcV8tOUJRaTgxX1JI
bzs+RT1kUQp6KTFCSHtRQjQzUUQ/PkFXcWA5bl4+TnQ0KyNLflglTGl1VTZGekM3fTE4KjFydG9f
T301KH5aUjB9eFlycUhediMKejRAeHYkPXZKb1U4MDF7KW9KPmVXeTl+LWFIRj5VRk9lOWw7eVow
aFFHYHAoTWhWT3A0NyoyO2xSMkFCcz1+JU1xCno5K1l1dEQxTGRiVztxfWRAfWN8dUtKK3ZsSyom
RiolTVh3QE4xNj8lX0ZjbUJqfispc1NxPmdQQCskSm5ZTFZiPAp6KW9KU3hFIUAkel5KRUlOQk43
WkdqKV9yZHZjNnh4NnE2RilIX1UlY1FuV3dAKzVEdnFFOHhuYFJhY3UlJn47YD4KemcwfEl2P3JI
PVlOa1hrO1ZAZ3BaM3c3TVB1bHYyckc3SSZiXnBzZGlHQyQ8V0tNXnZeYFVkLVB7T2w9b14+dmRl
Cno1RU5eflheVWUyeGplamZIVW52aypKSmZ2Y091aG5qMU59NSFwMTR4Sj9IdytkN0BpJTdTXlVE
bFN2VnRKViRJfAp6TFlNPVI2b1J2QTlVTGBsQSUqO01te0VlKDshTSZEemg9KEtadTtvSjJtIXpa
bkUqeHRmWW15biltO1c8QyZLYkUKem4tVDJwTHU3aFpIWmgyMG1UZylCQ3otfWxHP3JpamFJPSFa
REliRkxkU0stMkZKQDJ1e0M7SWBVZm15V0h3T1QkCnpfX3dEdDBBVHZoe21xT0B5MDN4cns/RHxf
VzNJVWNqN2JAaTtjITRvYklNbld3SjJ3WWFvQFBVVitnczIjMn03Rwp6ekZDRzBtcX1DPVcpKU9v
YEt8OUdkZCM3fVliXzVwQT5mQHgkRWxzQHpqI0N6SGVJU1BZYU9se2VEO3cmSUNYM2cKekBCWXZ8
X3xtVnFFMytULWZyYzBmRXRXfWM3dU1EIXE1XyYxSks2U0VTNWJtTEt2Xk1CKHtsfSlmU2F2JDxY
Nl9CCnp1eDJxV1ZxMDhqdVFxcG9BJnM2d2xWNFNLVXk5ZVIkVjMpTU5seHVwMXc1V3ZUeGU7PW5H
MHR6SFpkcyppTEItcgp6KzZQPkNXXlcjJU1OODU2KjFKKHY7MW9SQHVlMkdKRE1GYHJrfTJzNCRm
M1Boe0Z1VUhyeSZKcjFPdGRrZW1GfjQKekEtIT57eFRoKSokOFZXVl5HaitgN2xBT1g8IzZ2SFYq
WGhldnJSfl5VOUoldWpSenp3OC1ya3F7PGQhVj9VMXw9CnpkYk1tcjEyUVl9PkFoJXpBQXBDPTN7
Q25sR1VKMFphcWJzXjMlXlBSZmE/a2MtWUBgSV4wX31xb0lsTjNmWlg/QQp6amAyJmZSXzdNXiV7
PyU8SndvV2tXRSEoUHN0V3VzZ00jUTE2b24tIzFDaFpkYDEoKTVZXyNLdFVuQGdac2ExM20KekRx
Z2UtT1Npcll3bHZtXio5cmh+ZSEkRlY3biU8fjFOVjQ7ZH56XmtucjxibiE3flBiYktnc0YmeEc7
cVhDSnxxCnpjbDx4fT8pMUVVdXxIeVZiTzU2KlhHSTtzeWlqMCprU0QqRlghcHg2JWU0eTUleG8w
Wkg2bysxN3pXaTlFdHUyUQp6Mzg8dE9iZSQlS0AqREhtZi0yUDQxTyMhUm1vQiQme3I4ajNLfmk2
WEI8VDZIZGxDbmFBSTc7MEIoJVlSU1E9aXgKejNCUHs2MWlya0wkaCtsTXRnZytgWEktYjxjKSMz
Vnp2S0o+eHwpV0JzVFQpOWhfYzx0QEpaNzRacDghJCE/a0R3CnpZNEVpSzAwSCYxYm9UfD97WmJ2
WXFIelpTSyZYcSV6a25hNjkxQWlSSF9+YXhrMWw/VDxeOFo8Q3AwdyFVdVZDUAp6JXE1QkRBTFNl
Q2srWX5vPmAkeUwoSSh2fTBIQU4mZ0pFSTtoUGxvaWZ6djx3RWFaWTlVWDBmcjNBa1laUTJZTnIK
ekFAU2YkWlVuKyp6WHI5JktQcjM5NGdGJjxiYEp4WVdINEUrVmt7TU9BaSM3O0c+anlHaCkocmt3
Jl51K3BWK1RgCnp4JiZMK3FgQERJcD0hbWdTaUlwYUZxc3s9SXtRQylHbH53YnowRjY2M0F+RE0o
NXVgR2JAQX16VW1GaFpJRXhwNQp6Y003I2ola2goZ3lXcTtvcWp2KUhfVTNtX1ZWb0dpJXV0YEU9
QE1ASWc4bCR5c1YzMko2RjJvTnR2fl4zZjFBQDQKeipVfkE0QHAyaGAmXmhJPEFrPGY3X2c/YC1h
RSgzJiRpNStOK3pNaU9BKT5eR19NT0R1eSQzTjk3PXQ2enRXRE5fCno/MWZAWEo2NktEWSFqOWMw
RilfWColc1FeY3t9RzA7T3hPSihTVERjIXhld3JiazljJD05c0FGbEt+KXglcTYjdwp6OEwkK3dQ
KjZ3bilsKk09RWMqYVMwbm9rIXF8SWFENVhgd1kwKVUxRD5uSEpFTG9pLSVNO301SClBWH0pJVFw
NkYKelJTKkU9SDxaekROMSVga3hkQURtViZ7Kz42U0s3TD02WkpwUEpSRUF4UzBXPEApTiVrNDFq
OV48UmwqQChAI3xLCno1ZGNpaiFQd2pkeFk4aEhXWEw3fTFBeTVpWVRXdDhAeFRjbGx3YyhMYU8o
SnJAY0Ywa0ZZaFZBS2ZFJj1LRHJLZAp6PitlU08lRypUZXB6OHd3YVZMbCMmWXxuPFpWYUBYQXA2
fWZnTWgqV21fRzZpX2BgIVE7b1I5VmVFOGxFO31pRWkKemdqNmhtenNxTDhXTEYjQSUjZUU1Yits
aWxfaUMxJGVzU3J2d3NLP2F0XzxYcEBNamczaVBHTz4hSVMwKjkmamJRCnp8TUNMKjdpOU5jJkZ7
X29vU2dHK1BQMj1lXz5zTzU/QXYpOWR0Vyg8X0xjIVVmMXQ0MWorYDwobkxqMm1fNHVYegp6eG9E
WUwwbXNfZ1ZRP0M7cHxNREc9IXhwYHxGdGAhJXhPRyNWZ010OVpaVj09cXk5cDNsTEdLZkJocjZW
dUg1NzIKeihJXyQtSHpCPXhJaG4wTmpwaXAle3Y8I1VFeGkzZl8lM3pJNE87VC0kWm5gZC0xbm53
JTZeMmUhfFI4ZSpNQlR0Cnp7fTJnO1BgMGlYV296cmlgMCEqQ3BydjtUbGJuUCEqUnZ+ZDxfRGl1
X1Vjc0A8SU0jQyNVSnwoMGY2bE1HaXBnYgp6a3tzXmlZc1BXZG1MNUAyQl40Q1ZZUFNtelVAZ0ZI
eEE8Ul5qcz5gel9HN1p8RVooc0lrM2V3MHRxNVFLTD1pbEcKenYrKHx4SCpOJjNOQ2RCUjI/Jmtk
QmpgQiFEbmAxX1gqV3NUdEljampmQlBfZ19xfl9KVCo0cGplZztjNnlwaTU8CnpDK3RVeE0mS1Vs
JDlWZmkxYnJTfCpLZUkqc2YkSnZiaUpifT9nIXZ7MXlfQyVZNSNnU3YkQjxKbSF0JXBnPWxvTAp6
Y0BScXlKUy0lalNLJnhaK0dtMlBwI0hYWTQ3JjRIVUszdEBkVHdedSNLNnBgKk4wT18mU1RGQGhq
SU1pOEJDMSUKek1GNUQwN3BJZGd5PVprMkdLJHphNyREc2MhVHdXT0k2U1pwMSQ2eiNOa2YrdXhV
aDBAZmpxdUZYJGtQeXcqS0J9Cnp2XkVXRSV1WjV8TmVDYCF7SkJ2P2RKZkNPVEUqJGNraEE8MnhH
RVklVTVET1c2RGBEbWdpdjVpU3UycWw1NGBPPwp6MHN0KWU0JipHVTd1VkR2RFVDQFh3PyE4bG93
dWlKNVdiO3RTXkYjWm99Jn5NPis0WGxQNmh5VmQ4ejwjcmdmQVEKekRnbzc4SHZ6emQzOy1OMjxT
NCsrMkxTbVd7PFNheEIwU2tRNT50b1NEQGled3tXNWg4MDI1T3tSdS1oZkxlYWxYCnopQkZxcTNL
T3V7WjNzXmRxVVllVlNoKit6X3gpU0JzRUF2PD1ebTZVVVc+bUIwT0ZUbmE8Qn4tND9QZGglJE9M
Ywp6cTBoIyQ1KHc7bnt5NFYoO1M0dDF3Z0x+bHhgV3Q+SFN1fiZpVyQmeE4lI1N6bjllclZJa14m
VGVmZTVRWVc7JDsKek5WKVZpcj1sOSE2KldxJmV+T1R2dzImfF9QflY+X2dzMGM7Un5aZ1dlbDV7
b3V5OVIrPSZXUzUyJG5aV3cobyhMCno0YGM4NDE4QmUwMyRJc0xnNXFvV3JSaTlfc3M+OXApV2U9
PkxRbUh2T3BGZWJyVnJwO1laX2otYTB8K30reVBHewp6ZkB4dzd3ZEw3cHNMbH07cUFIbE9AWHIk
VUtZd2F+T2krMXBHeHZSemxuellkVSF4ZmtuVXwzc1ZnUDJGY0NZaFIKei13SD16Zy04QGooRD0k
ZE9aRXd7S25GKnM7TyopYyZ1cylzSWdOR2tPUWp8YjNDdUIpXzc3bCt3Nz5CNT52fDFgCnppQTdY
eHM2IT5PZk4mdEo5Rk4/Pmp2M0NgT0ppYittTmVWQkR7JUhsX2JPamhpLU44ejd2UDJnSzt9T19J
dXtCPwp6VTIqeSFsaVBlTFY4RiNiaEg8aWdgaUYkKEgmJkZ2b2JEbkprUTR4cndaOHhhcDBpSCR1
Vj8zVE5RO2YoYChMamAKeldteUpsKjFhN2liKn4yaSRkYGhmZDJxI0dIP2ZVcUZlb0FjTilLT2c5
NlhjbWNsWkFwN2NXaVdeWT8hZGZBQHZ8CnpmdERNZj4/MGJhbj4pfUFfWWZfdGZYK3sjNCtBRGUy
STNJe04lSXZyR1A4O1AqQ1JjQFAhM1VFJmkrcCtjPTNJdQp6NnpVWTh6MmYmMEtEVGglYUg1JEk2
WiFXYmpVUlQ7cVdRIUh5IVFNYTlOJXt1TGohWmQ+Zj1McVdmKU9oUmZ2XmEKem0hZldFNFlDV2VO
Tz9yeUN1SGRGP1o1IzJNWjwxJTRjUEdYdX5qSSh7WExAaiNzbzEpcDVrMHIkc212bUhFbnUmCnor
Sn5PamFybjQmKkNmYTgqfnVtO3Q8PVE3SlpFQ35CQkh+VyNOYndiLUFKSE51Pks5Tz1NLXI5OUdi
SGFOQ0VgOwp6dUNXJlBiUHZIbEZkfC1lUnBjWVB6RG51T2ZRMFl5WFEkZnc7VUFsVSFFQjBPSjli
Qy1MI1c8Uml8VGJYMm5RcFkKejNCVnloRX5oYCtHQWJKM05PUWZYe2IjPWFRRHRTX29CLWZffDA3
NEZOTmtmcVk1TlZtNkh1QEx1N2VLMyp3cmcxCnowSilzN0ZSR0xVLWVnRSUwQmpPaW9vU2VFSkJP
YSp1aSgzMXNLYl5HMSpsbHtSc3cpRWN6cG5YSCF9aj5OcHpsbQp6alpBP0hxKXxlMFdJKHhyY0Jj
KVUmMypYSXtvQ1A0UHMyazhVcW5TYzFDU2VQITRYRlRKbWFJNz8oYXJtJlllSy0KejZOTyU5NGp9
T3tRQC0/cVYmb0EzKndadU9EQGEtKFUqOFoqUDRpPDUyPXJCSGBrMm1xUUxuOXpoM0g/NCZIdF8j
CnpKO3Uhfmg8VDU5X1RrX3cyZUUoMEwwbWwzQkQ2akdeZjsjfUd1TUc3Pip+P0NaWlRjVVFka0hx
Y3ItUS1oPj4mUAp6VzA+VElFMWoyIW5HSXVqKyZ9PVo5TkFrd0sqfU8yOUR3NlFvZGZpcCNaQF98
RCRUXzNARXBibFhUX2pkU0BYLXMKekM1RE5fcGdIcFJOKFp9NzV4ZVhjYDJlRSZrQislYDxESWEk
R0s0PU1lIUM+eVpQMC1NMH1rME0/JmVNZSMtXyNSCnooPD0oZTFnTW1VLUt3alRLNCZDPl9mNT1W
cUhTUWxAVWFPJTA4cTJCN0IlWkAxT3JlYlFYSUxNbkRwWnUwUlhTWgp6bX5VampjakRWVEEzKkky
cSVSRz1JUkw9JT91U3AmS1dsXnlCJHw5RylMKlVvUSspITJuZytMOXd6YlBrVUA2UmwKei1EPVJa
S21XXlZuPl5DV0FjYit9UGZ5QE9aPylpS3w1JF5IbTNQMDYzP1AwdisrKTR5SVExR1BocjFGJmdV
cld4CnojXjVXeitsUUIqWXI8UktfZU9tRTReUHB7QT9UZnVBK0hCQjFIRzc9NyElPGZXeDQydE90
bTFCZkkjKCM2WXlvMQp6NSZmQFJCeClUbHJ8QjFMYGd2SmxQdHBCMWxAbC0ocXF4aigkVD9qa18l
MXRRKHszfiFKQlFzYj8hbUYkTT17KHgKenFpOGM4KShUV0NGMiVCcU9IajlaNXdpMk0jUUJHVjtX
KTE3P3VmQGJpfmdRZ2oxRzJVWDJ5QEZqO0A0Izt8RjBqCnokU3Q/SG07YkM3PVBuYExQSiZFfktw
cEtaI1V5UzFxRj99JDZiQXRNXkVVNUMjNkslb21LZHlKeDE7aip4NipVNwp6RnMxYUdVT1Fkdzk/
QmJrWnxZbi0hbX1SbklEMnQ5dmdedTRnQSl9anhiQT0lJkZJQm1nbmMxfVQ+fDxPNGlOeTwKelpD
ciMhM0lNMyh6JnRqc3Q4V18zI0F2TUMmZkdnWjs1KyY0ZHo3IUswQn5KPjBkNSFvcX1fSmtiRU5J
PmsjYUwtCno0WCtCbG1oVWUrTkRNUXh6fGdTVlI+PV49O3h9ITtsLX4lT1MmRXdnM0p9PVJvV3Va
KkJZV1ppOXtTRUlsJmBvRwp6PCZCJFJjLTtVJXhnPlBzTXx6cT9YZlFCMEV0aE82enJmUjZnV2Uj
MV5QUSpBLVJae0hldGtkZ2ByeE9PZG13TG8KejxHcXZQV0NqYyUjTFhUT3M2WFB1MTZBPEZCaDda
ViY/M3lPc3pyS0h1fj4tbiZ1dzhMT2YxTmBUeUZxPThsUFN4Cno9fGctOEVDV2FsQjlpdCE1dkpu
d1JXOWdaWk5HQ3JfUD8rajdmeEo0TmE+R2FDUzhAND1SbWBuI2FPemowYVhuWgp6XmNyalh1Oz5Y
Tz9CaiZucGliajRBUkd4fFleV2MtVUNvJUM4T05XRkVRZXxCTWAxQ0I8NiR7VDl1eU4odzV9JVAK
enZBRHA/Mz9RIWtkRFBoS2cjKk1DIWxHZFNmN2lpSFI9Mz1kcjBHK0h7P3UjNWc2I2BuOyFHUXZl
PDhWbC18fWk/Cnopbz82N3N5aTE2VntPQzQ0Jjh6WUJwe3ZnbTtxcSVyZHJna3VOR2opbl43NUst
YkM4SnBJRDhCdTM1fUdHfmhlKwp6em9gSj1udjtRVW9DKXllQDg0JH1wMXdDJG8pNkxBRkI7VzMw
Yn13Z2FKQlktWGI1NENBNjFvM3tQPF9AI3V0OGcKejNFckBvJXRrezMwQnx+SWkwRUdMX1RTPlom
KnRGYD98Y1ZKOG56MWhjS3U8JVJHVWUzNSNveCR7KzhuK3dVLWZHCnp5PUM/Xko2Y2I1O1BMeGtM
PW0wZUx4KjJRUEVuT3w/ZDN9dl9XOXIqOSl4I2RMVWFtX3ZqQVllTG9vMypkd00hQAp6dDgzeE4l
RE1idT5kZ3MjR1MxYWo7VSZHNlghb1pPZSUpaHtwdShseEpWa2VRNHJoO14hVCNyVjteMjxHNyQq
dUkKelE5U3VmXkk2K0J0WCspOF80VVhwJW9mN05fZmJqfXg9VVY/JTJaPGElbWxqSUZKTn1FNk1z
RDFpMEYhcyEpZ3g0Cnoxek03blZWKV4kZUh8RllSTnh8RDRVNy1MLUZpd0JXVlpQOyVkMWViV317
e3sldW9BR2U5WWxsfEpXNDkyPntyXgp6N2JWLWhibl9DVm0qdERjVmxgUHo4MUVnJldiY0dMe1RJ
NTNmT2FuPjApUX47SGBTbmlMcDVFV3U7S3RUaWxNVXkKemtNK2FubGREJndHaV51eD1ZT0p4MFhZ
SjI2OVR8e2ZBJDVfeHR7eEQxekI8dk07LXphbHs3enFvRC1sZHZle1hMCnoyMWlpNHhFTD99WlhO
I2t7NllOaylLYlhuJU9GZXVsP35YXigkSUdCMj0xdmtoY0VyLWR5IXZ2YCF5NS1VQ1UrXgp6SnB8
aU56bFFPaU9XSTxUfEI8NXRGRm0jc0o2fitaZHE0Q0plQ2IhZXIrNEhqTEJnUihMaHFaSkFgbG9O
aXN7JDEKemw1KTNvOGF3YDYqb2t6VyZZV0NpKD9WcHckSkh8JU1KPVVCXz5uRm5eYjBATV4jfDFY
Rn5zeSpoaDQwa3ZDYllHCnplUihmbGB7TjV9SjVSUX5NXjU3OHVqQ2NHUF93KVdEe2ZndjA4aj5w
JU9OeWVHYGk0eigpOXV+JXp3fUNeUHNRMAp6Nj1NVkVAeHFCcF8/Q1ZhVypxfk5eeDlub2dKaThR
c3BJNCU7cTtzQlpoQE92Z159cUEtI0ckK2ZgJiNFRT9wQHsKejBDWWBmUXV6WUozdUhSREl8ZVlf
KzdFKzg0KFhMfFNxZik8cmVGWWtLY3xQPzgwe0w8RCpJQXRmOEgxWG1ma2BECnp1JnpufjBCX3Ri
ZH1gVzwhXml2TmtSVFRqT304RUpIJDl8QTBkNyhOYztDPDhWbWpIckx5UyRURlghbylhaUxlYwp6
MDd2QTQzPWFIO2hlbENla2NQKHx0YiUjdzIlYyVLI1k+JHZhTX5vJXc4Ti18MWcoVkohNUdyb3BV
MWE4Kk43JEMKei1VWHxKZGpNWU5zSVYoc255SH5xYmVgRlJ4eWQwcG1hTSRUJEtqcHo7bkR3bzU8
PiZDeGJPSyNhbShBXnVpT3VYCnoxXjVHKTlUfGImSnVQeShIRFQ3WXQkM25RU096ZzhOc3VlUTBH
WSlsdl9AXlhkSF9oO2w3dn0pUDBkYj5geXZ1ZQp6Z01+QnczQHIye0RBNzV4P0dLO0NZZm5DbDxH
VClIcTw9PGJ4SmIofHByb2M0JVFyN1lKeUhGPDsjQChBQmpKYiQKeiE3WCUrN3JnJHVwJlhHJjJx
U35OODA8V085cF8zZ1F+UiRsOF5ZUUlya0dDQ15NNSNPV3t+NzJBcWl8aVdlTUMxCnp4Y0w7a3FY
UHMwUmBEOVFiRXthbDVqaSFyTilBQXI/azc5YFJRY3kpOCMjRml7KXQpZnpMXnc1PCptekwmdjEl
TQp6SCRGNmooZTgwTXVmKFhrb2s8YGRPY2M2U3Q4VDRCUmIjUjY3d340WVRYMyN2N19EdCVCREJk
bkFxSjJQME19ZykKemFLaXc9e3g1Jm5YeFZ3e3NBMU5OPSpsfFRqdDs0JXpEaXZIM2tDbzJjPERK
R0R6blhhQExtSTQjJGlzPCNnaThzCnphQTI/IThJR3U2MC1QTFZHO3VgMDBaKDVDSzZsJEYtdF9M
amZpMUhQdVJqM0RteHNJajR6YH5gJi1udm5tLSohOwp6NjYhZ1VEUkJOIUdhbWN5Yn1VfEFMOGli
aShzV0dRZ0hSJl57dXd2ZmVkQzFneyZAQF8/aGdSZUZkeTZoPjRpbHwKeiVnWXJac2xWS31wP3A2
IVUkfmAoZDwyUlUoN0BfazIhfDJGdHJ1fjBgITRLej9xIyVgSmBaa3UjUUtodlhDflM5CnppJnho
ditQKWtQeC1SVStSfk5EVmRadD0maUwtWVJ1WjI+TXBMNXxeYylZV2Q9eHNUTTlUJjFPU29tP18x
bXF8fAp6K19RZmYxXl51WjdgUVBeMEsrRV4pNHg4ZzIjZmA9WDNKSiZtWHNoSTNNQn03RGdhPWk0
cyVQZ0xsK1JgKUxyJT0KejxoWmN0akA4MStIX3wmdmpBY2VrPVVxdGlzfHRiN1c5PUwyPW8lSVom
fTgtPyhTRytJPSkjMDIzPTQtZDRUPWZTCnpecE1eSnhjTENVYG85T05aSTVwNkc3TzkoTXZGcXEm
eWw8Uz0kd0U7X0BuWTRYRmc+KTI+P0RaaDJvc0JLeVdVegp6ZTVRUX5QTEckdFhfc1VXRmN9MGJp
b2xIOWkjemVMY2goYGpiZHxFdVVvU19YZWx2K0tMY0pHYFY3VCp+TkRveVAKejRCdTBXJjVDRCN7
dnZrMmF0Ui1+X3J2KTNlTHNPNTdMPD1BNSk4cFJINyRUM0RuP3JBb3FwUXRmP0UxKGFYT0p2CnpS
MHMjQk07bVV5P1lUbmt6VzdORjtsWUtGY0xXeT85bW4/SHt0MExIOUw2diRYMHc4UzR6Zjs0WWY3
K1U+azJHaAp6UmczKFJlNCp2VHApZUExLXNMTkduUDx1PzF8KW4+OT5pKmZqVHNUS2sySkNleHVi
S18+QW0+RmFXbEZ5S097MiUKekV3THhqKjRHPz11fCF9SHF2KG1ZZG5kKiphUG8rcFZffWUhZ2Ut
T2tZUFc1TEo+NFozK2RfN34+YSNJZyUkVnNPCnohUlZPfEFARSVCbnAwRFY7YEkmYUJoNWNjKlVL
YSZvcDFgPHBTUEc4P1FYIzRII2VaTEVLQWV7YTA4UmttTzw+Pgp6KWRvWFI5dEAmWTd5KkYwP0tB
PHZDelU7QHNsZUEmNWA0bnwhMVNsaUVYUCtMOVdAUzNUSXVjflIjeXFSXyMmJEYKejE0SnxjO0o8
KGBmPUJRNXB0aDk5T1ZhYHslOT83PUtyUXg8KWAxKFAqZXNHPEcoc2tVIXhZODtfb2dVVHVWKDtJ
CnpYNSF0RCU/U1ZPMWlIQGMkOVI3JDxuV0FxPjl9SWg8TSFnR1U7UTtFTjQ8RHA9TXp9LU10MEU3
S3ZpV3l1T0JgRgp6ZnVQcVhTYj80ZiN6UlZTayg0ZE4xeUAweVhhYUkkSHpeU2ExbHdSPU4mdz9N
b24rVmw4SGIrUmZyfUBhIUFeNGkKenE+YmJEZDErWCh3ak43MkhsbGlJbD9ZMzUrQDhKcGFaaTM/
UHk1OHBGeit9ZCNyNE1+bVdBJUNqUmVjZExRajhBCnpgY1p6KUtBP2MjaG8mPzhAYXY7eVRyfEg2
N0c/bStnMEUpelheKjhPR1hYK3lobnQhKCswfilne3t+X0lyeyFkJAp6e2BQSStJSGFpbC1hdz0y
YHF4PEsyYW1QRC05SWooTG40N0ktR05BRTJLLXI+Rm5kRj9xUHZYVXVSZHE/IUYyeiYKenc+S2dx
K289R08xOz9LX2pFPz9VbjUjOyhwe1M5R0dkbHZVa0FGK353d2VsalQ/SWltYlQobDZsQ08zZU15
RzFuCnowVnRJZjUofihjOC1ReGBVazNwNklPTER3TjF5ZCRkNXNKSnltNGxyJHIjMVNpQXdBbFpB
OFJLY3cmYD1rX3lJNQp6U1dfPEgtdUc2TD9ac1ZrVXZFY1g7JGBBZztmXzxnO3JHbk1YQTk3S09u
Sns5SmRhPUJfV35NTVNMNUwkYC12SF8KejA0d0ZCK3tENC1nPlR2fDNPK1Fhb1VYSTFuISlDdiNn
bXFvUDBaVlJCWDVuZUBpfW13MFNvYU1QVlJnU2Q7YXUxCnpQVkQzeTIoUCVCIWpuJVFzalJRU2lZ
PzMwdSZ4MV9JVD9iVTJLXy1yWWNKSDclUHt7WEt4YVFnWGtRK15XaFdxVQp6bDlvPitFJGtwVytE
QDhaOT9CWXprfSFrbllDRE1eP3o1cHF4KmIraVNRQmF+MT1Vdnt2bWR+cXVtTCZhR2x0R1gKemh2
PElIWGJ3T0l1LXdXcilOazc/YWBLYjRlZXo+Kns8QSlHP0xIXk16TiRqdERuOF9BNkZuK2AhTEl7
KmVjfUt4Cno0LW5Xbm4mel9NdUo8ZSN3bXg/VW5pLXpLdTdfVm0kbU4yZXFGRDNVZ2ghNCU1JHQt
M0l8QXs2LW47PGRUSj5NQQp6ODMhbHMwNT8xIWlIJWoya3pIdyg9Syh9QDBLa251PXIyR1E+PkQy
bztrTU5oZHxHPld2SDxEc1MmYjMmZHZrR1UKemRJPChYaDJaUWAmSl9zNzRFWFR2Kj83fk1CRHtW
SEw4JiRsI3tAQ2hkSjZxNUMmPWQwbkYxdVo5Mk5NfWtEa1dmCnpTMTtreXxNaDhuQElVV15Kfngw
aE9ue2d8VjlyYUFxZmlyVl5yMUo3ND9ENmw7R3tuaEU1MmJIWWtRdDM8VlN6bwp6MT8rIWpKTjde
UUd9X0x6aWAhdzZlTkQoS1BSRWpVT044SztFR21KKz1AM0claFJFaGBoSn5OJSk8MGhfN0ozSlAK
em9QJmhrWD1pUDNnTyUyWiQhTzQ9aVV+Q2hrUENeJTJWM3g4dVYkaD52SykzKFdGRm01JG9OYWEw
OWZFPk1ARz9wCno9eEJWZEEyV2J4MVFqYjlRUHg7NXp+RDtSZT1NTFEmM3phPy15XzAmbndgTD0x
RFFqVCF5eW01PEBLKDlTTm82cgp6S3p8OURNZGNUfGFNI31+NlVXS1M+Y302RHBrPzFCU2MtRVlS
Z2BFdTIjKzNuRCVrblFoakZ0NUstdyske2x3SlgKenw0QWBKanFNayp0KSFBLXJUMmQlZmRMcDQ2
WDQkV05BYSVQQzNwayNTQ0VaQkFTOVZfJHkxNTtVP3BhZSR3Uik4CnpwS2lpZS0mK29zXkdhUVR8
SSRxXjlxemt1NmwxLVlNOUh0OWk7fj1PWUk8eDJLbHwhMDtoaFdQaGtMblZAREF1Sgp6MjNoPDI9
WD9uSjBzYD8zc2BnaF8xcShlM3pkaDRBWjxfSnphcU1pQF5YOGl5NSlRb3NlfGA/ZmNrYWE4YldH
T3YKel5idSE8NW1nUDxTZitVTGF8JmZvS0hLKFU3OzRoIUY2Zl5uM0IyfFgkRnUydHhHeyU9SDln
VUtydVBuO09fY0pnCnpqI1d1Yk5ZYUhKXl9oek4pOSM1cmVDRH00akckNW0wNFdzIUFobDBgdUw3
WjRANDFUQFk7SntfJEo0MnJvNmM+Pwp6dHM5WURRWHAqa2RDNVBCMyV7dVVyfWY7dnVOblNudWpw
TTcyTEwpSStKe0shOyVVdXhkO0MybGdGcm1RJGIpaWcKem1sV1daSGBFOWRXdnB1cUpBYi1NYlEm
X0dyd1FlJFIpbUs3VXdKNHJAYW9nSj0+Z3lrNUJ7c0VyVGFscXlzeHpLCnptQmBLbG0keCM/Pkgm
YkJgK1lIZF8tISUjXkxxXk5gc2VTREZGWiNGbTw8R0RSKFBVel8jYEtDaV57UWEoPyZTYwp6R0kz
Kn4wczZ+anp9KGFAZE1fTnReaGw0VUwzcmE+X3dtPEc7NVFHdmh9RXwmITRMTkFCbjd+QmJ4XnQ0
RiM+QHcKemZ9V3REblghbHhtUSh1Z2FqIWFPbUozI3trQUdicGZGazFfR1IrVTVfMmRhMGUoQCNq
YFF1WDw+Pkw2IVU3SzB7CnpzZS1hPnFXQVMheHBnSDxzIUwhYTBTeUkkVmw9aGszYndyZGVaNXVf
ankkJk1Oemw/ckJlRkEoSE5LVGd5JCN5TAp6M3ImYTxxWSUoTmhna1RtWCMwaklAeF88KEZsI0Qr
I1NsJWZfNE5eZVJKajRYdjM3NUk/R1R3e0tHfT5Ab2J6MDsKendEUWlhdSN5ckhHWWFSfntfKTRH
QGhBSHgoMCFzKU9ZRzV2b1lRe2BhJHVuU1RlN3B8ZEkqKjZBXkFHUlE4RXlTCnpWRG9KP1NobHVR
OVJJNjcrbEFpcXtscUxTVnM9S1hyYjNhU0QxdHJELVg5KTBeZkdSRzBKIXJmVGFFMyMyTWtrZwp6
WGYwaEIxaFU5cD1iQEdnMiM3NGZLdFNOY0orfWcxYElyZUZwTCYzKTwzPml2Kj1UJW1VMERVRlQ1
fjVkXjArbmwKempSWE1vbDFaMng+X3FwdXtqYHdXVDFfYEVENlUrNTsoO2Z5ZXxJWkJefGVwbyEo
WnB0WlNrbDhGR1M3fDxEP0c7CnpnSj5rKWJram84WHdPT2AmMUMpeWs1U2UzRi0ocDA7QEhiT3ZI
UXRDcCF2djIlKzFDYF9oVGt4bktAUn1FVVUpeQp6JV9+czV2S0hDMmE5UHZLOGNAJXF0YE0oUiZQ
ejE1R3t7akpvN0YwYEpQU1ZDX2NyZUcjNTRBRT45dlhEIz8+Zn0KemwqOW55Jm4qQFM9UX08NHVs
K0BjKilsfDxuMXR8T0Rzdzs9QklHZSgxTHZDMWUpMUFNd3JqXjhyUytGbm9SN3dCCnpZWHhZPClM
c1dWMjlSS34pQkJlV2NmZFJDa14ya2tRbHJLQyZVQz56P1N7M1k2IU9LXm93SUohaGRSVC1EREhl
YAp6QldqbHc8SjMhTWFxeCt3dS1NSj01d2lKUVMwJjMoRUNUPGZwV2hwR2NVKyklSmgrKHchMTN8
dDNlMDs/anY1OT4Keld5NFpgPTRvaz1vTzFoUDFJSnZ3VVUpKCNZK0dmKGdJfV4/SFl1OEVOUDNg
cGpeISNWR2IkVDVwfHBPanFMRld1CnpBMFUxWkIwciRANm94dl5EY3loTS0/aUFTQnk+fUZfeykh
Q1pxQVAlP3xUa1EqMFUpdjEtLUR1IVpESFU2YD5tKwp6aV5fdV9FRGtlbFgqUVdzVWRKKVhVVkh8
UlMpQUVAMj5ZTFhNdEpoYTJkNzEmVyFAeyM2ZSs2QUMpPlVlJVdxa00KeihuViEqcCRZKnAkRFd9
R2EhVGs7PjAmWDZAM1lYYE54KW8rITFKRnFMRm5+ZWZ1UTkqWHpLeDIhMnN5a19ucjtuCno4OzZV
THBQTUVHSF5LOS1pPkdTXkskMDUhSDtDJUspNmMkeW5PVjY5emsyLVBVPGckITdOYyhNNWBeZm5h
MlA3Ygp6Nj9afHp3ZnspWjFpSD0tRDVpXkVfJDlnOGlHPFdkPzgoa3IraTFgTEJ5bmJKK15rQDgo
QlpKKTlVb1c/LT8kc2sKemVRJEBqN2JkbDRmQn5Ta04mXjd6blF3ZWozZTklb1coTlM/KHdHMFlX
RWRGTXg/eVA+TCRpZiFCdzkyfnxDdFQ9CnpxODJRejBVcjdmaHhVPHFobnZGQiNNJnlpV0R5cHZj
Pn1CdEV9eS1UZWdOS3RIQSZpazhoc2EhVlFSUXI3R2xNMgp6eDA1TXdjSGUwe14zNllDJkROISZk
NUcxeyFXbH1+MSRWS0RoM0dGTEZNNTtCQnlSZkVvQnNrZkFYOXVgdSVucjUKemB8YTVDcj5EP0tj
SkF5UG5NPXdWJUZlZjtkZyZzcHpJNj4yRXZyUihQUCR4bjgmc3ptOCFxIUpZS3YxZnt3MWZSCnph
LTd+RkpvazFId2k4MG5Bdi1uYUNBbj54ZGc1QTR7Yz1KLXA5eHMoNX1yQnwjZS0pYFFDKH5rPTFE
eF5Ne1Z7Mgp6VlZ8b2h6ajlwd2d1b0EtSkEqU2pfUTZ1ZiV7dF9pWjhlSXFZfSthblIyRkpRSVA+
RUVBYFJMfDNATCoxTXwlK1AKejJJYUo5REcyfT15ci1yRjZTUWx6SitVbnFwYVR9I3hXUjRwOyNf
Ukx3SGh5Y1ojeU9pclVlXys0dXNaM1kqOGdRCnpyNFlSZmVQX1AkUTdJYmE7aD9KRS0rWHhoPmdI
TzEtKzUjMno7YllaY1ZwN1pQQmEpMWpHOXFpREI7MWNxIy1aYwp6MVgmQDsxMClqLVFBNSZoMnRt
Xl9QYFB8N14yK01zU04yQTFuem9XMyZyU0BacE99RH57eHp0NS0wNlckTDxSbmMKem9rWnQ4Xnxl
b3VEZXp0Qk9AWU1TTnk7VEtUOygwJTR7P34kNDlgcUlQVkwlPHkoSU1LNDs7YlImPlltUipKPGVu
CnooKG9sakBtSGE3TG44Xytpb359eWh1JnJMYj5kSWROV0hBLSZCQ1VhSkA+TEImJXptK2FvMnM0
VT9XTlJeKE1mVAp6WG4qezUoTUY3SHslXmx4IyEqaU52Und3enBrPCp2MERXUFE/N0FgRyZgJSU2
XmMrRUU7VWFsLXc/Vz5BRXpPUCUKemNXO0UlWTd4Jj4wbzZjMkllYm48WkApTi17O3NLez8hdm1g
PWNJe3xRQ009YjtIKW13M0JRenBhcTtedmlCM2xLCnp0NGM3QEZeSH1gN2hyU1E7LThVWlJ2fWZF
S19kRGwxdHlzUmE1RTRVMEIrN3FLeWBDJWQrLU5fb2BLSTgrX1VvbQp6QVpaSW40TT14Tl99LVRA
dShadyFnQyRlTVkrMkleb1l0JHhfelo0WUFKY248KXMzaUp4YH05LTlYQUY5XmZ6MTkKejlHdXVR
SW5hcS0wKWRkPE9VR2RuTjVsWHlIey0jQnBMLUN+bFJvQHQmKG0xQ2BPVk4wZ3N5cWhRK3l2VDl5
XlhoCnomJVohX0ZRS29zVWokbkM2UCFNZlF7WTE1IyR7TiNYKnBeZFloWldVMTxobl9wSjt8RUxh
UDltcjA0amBLYi03aAp6SGQqOTJ5XkBeNlJHJjVkIWF8PSlgMVJkIV5yZ3BgNCtRZ0dtak5JfkVi
KDhTYXpaTXNoQXxlX0xWVV4yS0doNlIKemZ4JTNJISk0XmhwTCFDT2ZATHRLPWdaRCNGXkQ5QnFL
WlBTeF95PUsjfFdeSzxYUXAhWGZHRTJpN191T29nTER3CnpCel42SF85QXlYODVufUN2SXVFYUIo
JmtNbVpQZm4yYjJge3FoNChXKSokYFg/QWRsJDhKUDVQa15sZnMjSnF6Ywp6LX0oRExNKF4tUXRH
QDtTX35BYnAjd0gjITQzQXpCMFFoRXhmKWVpa1FVPX58Myg/QkYyNG9qalY2XjhWK35XaUMKenVt
b0t9antZb3xfQnFxRFFONDAyRzdITUZmV2RuRytkXzJKens4Nnw4MUJBXjtqUm1eMlUlZSZqeDtD
RTlYeH1kCnplZUppWFVzOzJQa00xRTtmSzMkdFJzTntSJWpHP1JPXiVfaVd9SkhVUnFURUc4TUt9
fWtFIVZwWSlUak52PHhGRQp6OD4pJW91U05adWRKKD9rRSQ5ITtQdDcmVmQhUmNmKl9wfTNQSWp3
SjIpJmE4JFkhJCRrR3sheElaZU5TQGFxSVEKekxITHR1QlFFQ3lGZEhSfFBEayszS2opeWR3cDE+
JGp3dVdQZEl3O2xMeSVLX3hlakNaNDxDWWlZNyh9eEhHbk9oCnpnaSpGaCsyJnRDVz9JI2ZheHJX
cys1MGJGNCs4QEpGcStRfSF7LWYmPWdFeWxSM3w5aTZpQjBFYU1xTjtOc0tFTgp6TiopdVpvdzIl
bjVHTGd7SjFgMjwoNVVQfk5NM2gzMEVvSWYybUJZc09hUFZvLTw7S2U+WHlGayRFentwSzVaQm4K
elJLXn1KQFJRMnh2b2xmcmA9Pk1UX2lyYjluT2wkUTY8Y1ckZG9WKGFmNHNqPGx4ZX4rLSQ1bUV2
JD55SlJSaFpFCnoqRDlIS3VhaHF6Y19Baytjdj11VjdRQzxKRy1rI0oxIzZNM3pZTVVHMFI4IT1m
NUxOckpjMThAXzg7KStAQmI5Qwp6QDgpdmcjQW9MY3w4bVUhKU5BeyhAOUMjO1g3NTNhNCRjV1Bs
Tm1od1B6JWNRdjVZQUdeM0JWSUx5d3ptMnY1RjkKekhqKXplSXElWXw8WCkhdDlIJHJGZCloSG1l
N25zZStPb35sXnZTfHs3NTJMJUUlM1F7KkVLWip1LUdLTGE0ZHtSCnpKRX5BeG1afDBIJEw0OCY5
VjRMZ0c4MD1sQCNORUpLQ314fmIyaU43WXZja2EjYj8waHhBfD5ya2lrQllQJjZVYwp6U0ZSaDdx
WE1sPkJnRXZxO2AwZj1xY3xIU0J8amtBUFlodmg0akpgVHVuYERMa3gyWWI+JmNheG0lI0dAV198
RnIKemI7QjVtJlgqNHIwNGZMbzlCR0o1bztAOUNgeFUxRnw4KVFXWnxTUz1sTUpKeUpvOU5qM3lA
MnQ8Un0zTmolUE5FCno1OFJXNiZ3ZU5rWH1KfXNVVWVJNmp3fVJ5KC1gaC01X0NKbjEzWXhgX3hL
YnAmYyk2fjwrOUNVWX1vNCk1P3B8bQp6PktDPl9adCVjPGZXZUxuTUV4ZmU1M3hiK0FtazY/O1Y9
SVg5aGIpTm9vNjEjd3MoSm8ta1Y3SjlzV0YxZTIkaioKeiRldXJscXVZMWo9I0UjPWQkQVlubzhu
SiFWcCZHRTlTIVQzViVhN1ItX15zRkE9ZUdhK0NKSWFpZ303JmRzJEBVCnphaCU/a0FvTnhPNXA1
bCZhXnppO19ELVNzdUx1fT18QWhSV2ctcFokeyE8SzE8fFFifXZrPGBQSE5Ne1N1WEcwRAp6WSZ2
M0t7YncpV3dWKGM2byYjdmZoTlhJZ0c2VFJNMkc7UTAkSVdrOXJUN3pLeTJGciVtR0l9ZlRFe1Js
RyQkSTwKej14S2lmPTx0Xn48LTVJRyUoY3YzUnRybTN4fHxuKWAwMSZVRTdfen5udz5PdkE/JSl1
dytLJklldiYqbnREO28rCnowSyZydWNMYU4lPH01JUtfUC1KVVNhV307VlA+V1ZsYXEwUW0pbzds
ZTx9Y1F5NmtLSzgmfSFNNDlHJVNSdnMhPgp6WShzaT5reXI/a3Bid003SiglY2dnTktBbmw0NDAy
Yjg8ZD9WZjlpfUc7YTlJTHhOWFd3MjdVNEFpXytPQlloYV4KelkoXiokMlBzRkkxMDdCNl98WEBD
TGcoYmRrTjBqemBRcHshYUdtVk1YOHtoUF90SlNCZCp3QTh7UFZOdUlNPDk+CnpjTkEpdHNsI1BK
V3FsPTlZKn5aKXdUJm4mRkJEbUFMNFFDal9TODJyKFVCKkk+PGw3OWpmR3lPX2pXPD1FZ1o3cgp6
KUwzUDsjOyNKWnVTUj4lWiZNQ2o4OTN0Qy0peGRGSHk2Z3xjVnhtP1VJKFd8PWxvbHNCTT5Me2N1
QTtVe0xULUUKem01bWEzVDd7TW1XaTV3ZmFmKkcxTiNpYkdVclEhYXdjTWRkYCp9JWJhQ0dfbHlR
ZVlLS09AdEE8K0xQU1R3ZT9FCnphZkU8PUZWTlgxMVVZWVFKeG1VcENAUDl5aGxIZ0gwfDgyNCh2
NnY+aj99YGhldT18PylmR1prTGpCdHgza35uKQp6RUlfXll8S3tybnNOZDM4ZUVTQ29oZCpOJkFE
N0psUUVzWXFofTFJeFpWY2t+cUE9SGwkR0BBOF5zRj9MKX5gbz8KemNeJVgmSmt9MGdfWE5nelRR
TlB7TCRvY0omXzlrX2QlTG09djFzK0p1KURIeC1EYmNRWG4hakVTMXQoK1ZRakRxCnpWfF5WNmlg
TD9ES1NBeXl7TXdUe0BZXjUxZkhqKk1AdHFne2pFdms4MDw/QTxkR1IkSWV8Wk57YH4jU29pYT9E
bgp6QGllZiFsNjxWJXdwSXZ6V2taIUhLanNsdjVoWSE5elQ7aj9sK2EjZE89Y2xgbzxueHhqfiNq
UiskXlJaI21gcWkKenVwfkEzVTdIfEYzdz9KJTI5TyNBbkR2fSY0ZExyMnM8M0tKODNMbDZuNGFv
R1l4bCtmYSR7MlYjY2NvbiZqP2hUCno9JEJuK0Q0SWRacUM2YndVayNIaFEtQyN4VHlLQkpEITRN
OGE7RzltYn1JNjlWSDJ2aVlZTzhkOStBdFNVSkRJdQp6YmxQOU1PWlZCPUtMVVU2NUc/NlY2bURE
Xj9geG5Ge0NIPCpoISRkIz1RPEZhUCtFa2lUISU2TU5IdGFUbT10OCEKekA5eiYhb2otO3w/WFB3
T3pEV1VLKipEKXBsRFdnY0NJQVZBVHkwe0FZayR0Q1M0QE4wKUhKTXk3PUhObTA8M0l3CnpCRC11
VU82eWs5I1pzR05EQlg1USE7VE1oVX1+VFhLRl5HSlBxYSpxYWFwQWtSViF7bVIkKWNyKXhYKjs8
KVZ4dwp6RW89Wk9HIz8qYkRCIzBUY01HT1EyRFBnIUxURj9USm9mRUp1eElDYS0xZXJtYlk2OGhN
aWhVMVY0OTAwTUpfJkgKem55aTh9KG5eZylAbUZIOz5JUzRgeGEyUz9TS3A9UnRmVGpjc0s+P3tn
fCN8Kz4+VjdaY2doSm05TENjYygjQiNiCnombW5QITtxXz41RFFPQDJAMjEjYUdWUnhlNGRvJU5H
NWxudzBtcUVYUUJoMVpJMj12MV4+cXh1QnpsczhYI2VBQQp6STwlaTJ4PUAlTiFVeWxfI0RSZyRJ
NjFUb0hVZVcjYkZRY0AjTzZDMSNoUXNKV3hIYWEyKGkkUG1UQHNybX1+U0cKenIyUlRhcGBofVl4
KUNCX2JgPDVIVXsjJlFOWXIhR1RRd34zITVJJUcmYkdfYmw5QyZTPStgMHhLeUB7SiZJakx4Cnoy
bVU9NG5yXzI8MEp5b0BnNnBeUiN7Vmd4dDEtJlNKfGdRKyhmWDFPMEtefkxJK0lnfmM+TVV2cn1P
YU14MTx3Vgp6bXklN3QzMDZsczYxNiFHPklsSXpJZnt2KUYzZTYyKCslP3JKQiVteGxzQiRMTDFo
RTNFZ0YhQCk9eWx0c1RjTnEKejViKElDRnhZajgqdmdGTl91dlhJJiYoX3l7Xz16OXhIS1luKUde
RUI7V0JjcXNCVDxAPHklJmgmQFZ4TE5yNn10CnpURklAWllVYlpFSEpRYnJiTDJUMzR6bFpJcCpM
eVhkLTw1LUFkKUReUWNCSTdjPlkobS0hSkZ6T1R7RlR1WTJPTAp6OEheSExnRTBRfXI5OSo9WnpT
YXFQM3JGLWY2UFRSVHZNXzBwfnJEPHw4NjF0MT9nZURfeDFzbD02ZGp9PDlER3EKenZfZHAwPCVT
IVo/YFN+djt6RVJpVkZBIWdeOVBDVXBFQH1KaHN9KDx5Zm5HWGE0TW5LSnMwNmIoSFhjRUcxXnh+
CnpidW5AcXRLXyk/aTVMKFVKbz5IaTNxQTBTUDBJO0lgdF92JEFtMXl4bXJfTHFxfko2Pj1sX1J1
ME16V2l6WVlONAp6RXEoRVNjOUwrYFhwc1FEe2pVUTZaVik9eEpDMSpQVW9PNy0+MEFWJlh+TGUq
RUdVYUZqSEpWbGcjNEh6QWFHOSUKeiFPdn5IaTN0P2ZFRiVVYGo7antfJWk2WDR8QWpQez96MVdZ
Ny1ZPmZMJnI0UytsaXBoRD81Q153QkN1e21NO0FDCnpEP2YmaCtuX2ErVzk3RFdzOW84Ql40ZkE/
KkstO3V8SCV8VCloJnY5P0BkTnxhdVZEMEVjOUd5JDNWbCpKdU9vVwp6YWN7Tk9gYiQwalJRYDxE
aDR4P0d1MV5pTmlKdVlMLXl6fUU2SmIwKXo1P30yXjVzbERvJVdBUEdMeHxxJWk7SDQKemUme2hX
clNeY01EMXtrZXl5dnotNnleOVo3aldTQiRHMmpfejc4ZlNoXipXKy0we3Y4V0x9dVd5X3FBZWZB
UFd5CnpJQD4yamlnN0tPM2w2KFE9fWVgSStiZkpDaFdJZ1hEKjg8NEFsJnJGTFNMfTU3TVdGclQz
Y3tRMTVhaHUoIUtHSAp6UEdoWE9DcThvYFNAX2sqRiopMkxtNmpzcjhHeUl0YHlZZlg/NHlYPXwy
Ti1ren5uN2AoTmBhI2xsZHJuJVNETX4Kemtfakx9ZHo9UkE0YDhtWDU4RjFuQFc1QSMxI1FsJlQj
Qk5hI3N6eGhzbEVZO2dlSEsxY1RRWTFkd0xkcV9pQ0dKCnpVYWpXV2V8Qk58MyZue1BqZjYyVkdK
eEArZSRqQUo8PSFeMyF+NUhONSMoV3ppITAkRVArKDBIPFpRezVocFNzOAp6Tn1xVnZebWU7TFBR
ZXc5SmdkbWE2T0tvPGBEYVhfKjRsWD8jaikjcTZKRis9N0d3dzRMO0VpJHszOy1jaVZLKXgKejVx
I357M2A4MiVBPkFnQSZgJDlCKTJIbGRQRTdPPDxBb25RaXVVdjh6YHxkWj1mXnY/Mz9aOTlmRSUp
bWB9NlJKCno8TGVOfVQxQyZwKm1RZD5tYWl8ejxkX0U/WjQpSDs2WSRJaGd7UG0qZmE7b0RGLT0m
RjN9X3w2K0ZTdUMwazRLbgp6d2p3WWloaiZYaWtsOXc0dCZJM3FLTGpvOCRIaTdkWEYzcV8xbXBv
QiR3SUhjY0FRc3xrdUdMdU0jcy1oYCs2USUKemF7dzNzUlBGIVEwMDNXa0JWRW0xMkpSVjBudV89
LWwlI1VtYClvQUdxcXNUcXVkNSZGPH1pTiF7WXNQLVN6Kmc0CnpMVjNlbCpoSVBTbURAX2t3YCZt
bzFPVyQ5KCpBYHN6eTM5eWFFSygyUCFRdzh7Z0BtYjYxbzR7eEZAU3ppIU4oPQp6PCtvQiVkYDsr
Oys8UEpMdmJNTFducUc8MUMmdVUjJnRXMCRFaUN8RypRJmlRZX5tOHgtRyVtTHdHKjhgSSl8dEkK
ejg/Ym4zdjhiVGI3eWh1UHBTQUNXSjskO0EkQiQhalk2TDkmdEUlMCZZcmAwOTc5SmhPTHVTSjA4
cWRlbU8+Y21kCnpRLT9IezhFZHZ3az9feDx3fGtuanpieUZiN19zenA4Pih0QFdZKDc0USYwfkVr
fT8tP2JPd1dgSjQ3aGhZX3Aoagp6THBeTmljRmxheXVRZ19QcXBnRk8/dz02Wmc9KGVYZigoR29p
MG12TkNsfSVWLUEjZCE3ZFohamc8SilJPm47UloKek5OUjRfbVFuZHtsSDNLRFBPS21nTSFKRH4o
S0c8eUtoa1dXe3ZrfkRqTl8tQHVFdVNmVTVIM19scjNJYEVIUWxKCnpidTlFclVob084VF5zRzY0
K0BnN01fQ35VJE9JVmI/WiV2WU14MUJMcmtMQEFRbjB8Rnc5N0lIIz10YEY8VnJpegp6X0dUcXly
flpEekdAIzRjQDM7IXV6Yzh5d3o1aT5We2cqWWY7ekdzR1N2SUM7eSFnaEU2NjleejIpaSpOWWsm
RzUKek0/eT95M3grJVR1PE1zazxNZl9HQjZaaEFuKX12TzZJZlMyTy1xY3hITDdHfVRFalRvVTVJ
Qn0/fURxMCl7cyRWCno1fjQkcE5naEx8Wlg4YEhEIzxgKWJxK21fQj9gUjswJiYqRnp9JERINlNH
NnBCMzs+JD9MeV9JZE81WFAxMmxReAp6VDsofUM7PkoqT3pmeTNTUjd8dUcwT2FNODhRPyZtP2FB
bEVvLTxFQzdJLXhrKm8qNWQxV0kwY0grOyh8empyXlcKeiFFSFAqJUlIZGl4d3VlVkchKzB1Rz5g
eHc7LTE2VXhpMCtrMk1YfXtlPWZxREgtX0JPWUx3TmxxOG56M0ZRVUlfCnp5WWt7c1VDRE1pMG54
cCMtdylyTiolXiF1X1FVVXNQWSs1dzk3WEl8PW1vdShzbDd1ZnVRbGxsWnAwelE3Qn4pbQp6bys0
bzw9XlJxaXslaENYbXZ7S2gyYzd4WFRlbUxfUX58M3doKERmbztDJFkjQ0BIV0REJGUwTzFLdDBA
anNjdV8Kent4dXdaYn5rMXtsYm1VUmhFZ0FIVXA8YigrI3JHPlZ9ajxqaz9DO2dUbj1eKi1Ibykk
OGdNdm1wKFZqKU1hYG1JCno2Y3VOUCo1LStoemVFNkZJYDVoQ3B6RTBJJD4ld2MrMndnQ1UlTjx8
M0tYeVU8Tk4zTDJHTWkyN3R1Z3lla0d5KQp6SV9hUERlYTxnSCVuKEFMe25ybWcwekMoaThVVV8y
Mj8rVEE4dnNmX3t9SDt2ell2eygybjF7dXJMYkBWTU02ME4KejB0VXFscGFuTzB0UUJoO0VPYDZ9
d2VXWiZXWWNHJnZUK0BwOE0qTz1ibHFEaitNZyY0UW9ANDkhYXtIYmIzanRSCnpMcE80azd7S0p7
MiFWaTRjTHhrZyFIcm9zP154aTQoQSNiRT0pSDYkZnhTeFl7Zz1+elRfY1pjVm4rKWZzfiQpIQp6
cjBwLWNHcUJzVDE/bC0mMWZEQG1QdDJqZXdJOFE8OXdFeFZwTTs1TE4ySC01S1oqQFlybShvJkJO
UndEbEdMYjcKejxVdlQtZWtkMGdCNnFgMWliUFpicmRren1KZGJrND5RWHFJN0V6QEtveWozVjJM
X05jYDhyUUBWdFF+fDl2QEhhCnp3eHFFUGA4OTx+RHpeTU5XKk5haTFVPkVKMiNuN3AzT31IPWhE
I35APj50WjNLJE9uYy1+UTBJJFV0c19PI018Uwp6OzluNX5ERVZ3RHFTQW45b0piKFJKQDh4JkhM
JG9HVm8/YklwYzZKKE9fKiNNZk9UZEp6azA5JW04RGo/djdGKTgKemZjJVBEYGtYMWdwc3NiaGcw
TShlQkx0VkZ7cWZJOXk2PWg8cmRTbFNHdChGITlWUHE9MzlWcVlzPz9xWi16SyFiCnpOejEqRDN0
Mzl4VXl6b143Q2VWfXdFdjMhajE9YiZLKU5jPihaN3hxKkp9UjB4YWVvWDFOPnBBNChBN2ZfTkhE
OAp6YnElOFhUbmklOC1RZDx7PChWMVN4O18oeVN3bkV5MjFzYVFxXiU4dF85dCZqQ3AhSDByRDlB
THkkek99cTZHbmYKemVLZVVGNHk7O1ZGOG5mRGUqc0E/MzA0YkBWdUdub15pUUdmYyZEdHEjQVRP
SWNndGNwdnooZl8haGpPPWgweFY4CnozSUFMR3xGXncyZnNXKDYmUDJjM2RPPGgjalVkMWsxYjAj
LXdOYktVTVVwTWNtTXo8ezt3QUJPI3VIRVNNdzFzRQp6SklSfVFOPjBZSip6P1p1bzAoK0I8QyZj
Sm9VeHRFSUVrJHx3azFvSk1KPVEjaTR3JlArIXVmWkw0WDlZdWYwfmkKemQ7aDx4eVNoLWxWNCtC
Z2VKS2R0anFhLUlzPUQ5KD8pcSFWTTFISCFFYHxHYjRnbTdaalFVMlQyVHglNyFlOC1mCnpLKWts
TjB7e3l1MCY/IWxfZilFeXtAXmtKSyhpUX5MfEBSVGpHJClBOFpsKitVKm5VPms3R293RjY9I2xa
fmZeQwp6ZUVPcGU3QHRUWlFkNXVDajsjbnF0MSYrU0QxUChMSHtqPkp2MiFUNF5PJTdAbUJoc09J
QVN2fjFsWUcxdCtqPiMKeks5TjRtdT58P0Q1M34xfHYhNGFpeyhSUWtZeHpDTEYtT3tPYEZzWnZJ
SkZtJHk0WDk4bXRNYiFeQXxAXjVtSztYCnpTdU03I3RIcjlOS0A1KnZ6I0glR0wpVjNWKFMoeXZH
eTteN2kyIzFeXkNkOVhKX0BhLVNwdEMxP1pYOHx0Mi1MZAp6dkEjKFI4e3VPVGorV0N8MjxhbG80
M0NLO3Vic3heJGRzYEQ3OHh+TzZRRTtmeUxgQFVmKUBAUW4/YHFNRlF5YzcKejw5RzszSmR0flR7
SjtQPERgNGFiMVlrdWdrP1B4Km0+R0Q2K2trbGs0KmckSDRTPzlzSmhXJipRZFIldHwzaGM+Cnpv
Nlo7STY8TmROMX5oRDRCUyZFaVVyIU5fUHJsVE4mcHNIIXBNN25XU1B6aXRQKCRsI1ZnVmZAMnNB
ZWtDflVuOwp6dmkjMCN2dT1ES1NOWG1CJD13RjB3P3FLU3g2OTVhXipCJVchfk5OTDFeaiNmWDNu
JWY0fWUoKDA4R1MlZyFRRTcKekprbShGRFlJQiYtYjgkSThpJFNfJEQwVEM8TVFDdVklYmtMZmAq
Q0NiNTsySDh9JGdSZUZTUUN2bzhZPm48dTVkCno8RFRWTShwclQ/SlBxSH1BTE1MK3Z4aEY+e1A4
fGZIcTJWWURfYnBELUg0VDJpOU9KRUlOJiRoS1pmJU15QWNQdQp6YXkzO0RMbU5gNS0yMCtYNUt6
PHJNOHVTIyNKUWlIaWNoYHViPEEhOHkxNCkjVEsmYVVzIzRrSWV2Tn1DayhMSEQKelplNUspQnEt
MzdTLXttWnttfWFeOzc4eFJqVnpAcVAmciYjZ19pYkIjMERCc2F6PGItTys5bjx1WUxWayZ3SmUk
CnpUMFJqc3hvPk4yRzM3N097Y3R7TzBrZ2tQS0lUeUhkamorQTw8SEJHTzhnR2xaT0ZrTyk2PiY5
ZURXQ0hJZFR3Sgp6aGxkTFNLcVFwSEZXemp5bzJSMFB1NnIwdHJOMFh4PUpIaHBAUFArO2ZRcGY9
SD9XWk5uYDtEa0xEYSowJms0JCgKejg0Tjw3QDdQWUAoY1h3U1FUQEtOMUwhKypTcmh8bHIySVZr
RTs5dT9iR317WSE0Q3UmMExjMVYkd3xhY2VEQz1iCnpkVmhmMjZ5U250MDlmOTAwQVEpQWA5RmAp
dUQ3XmY7e1p5aXdoflFTUi10TjF0cikmSUdkXyo4RkNNX1J8SUtSTAp6Y1h1NktfX1FkZHNhdnVQ
JWA0YTB0R1gwcDBtWDBycVFOIXN4Y0pSKW0ybVVWSXU0KXhXb2R1RGxHKU8mY1MremoKelhXQ3pZ
MT85RTtAVVd4Jj80VkhLayNFQFhpM3VEeWJ7T3YtP1pvSyNTWTgwb0d6PE5NQS1yfj01bldleE1B
bSk/CnpOfGdmdXglVW1YMkRoJUxBcGxyfGNzeXpRYG1Wc0E3LTZZbWF5KjgmVU9KNSNeNlE9UVlR
QT9YcUNzckF3O2REWQp6NjctekJqRU87UkI5ZEsjaChfJiFvfkNEIVI9QEtPKnJTWVAwSGROMz0x
M1EyRWAwQVZPaVVqQCo3fnk+O0xaVHQKekpPRUh4e1gyaTREMXBFNXpSbzktM25lT0I+UUxRUUZC
V2IlYFRBKm1AIzhpNGNtSHg3TSNxeGsjMkFGOGpWbjQoCnopNyotSndmPUpzXyFVcnNkXmRheytD
TEJMeT5ReH1lY2tkPTxoZmFJQUlvMnwlUHsqcFNpWi1hWElwdTxQan48TAp6REJlREZmTE9xQk9p
b1N0MClYPzwrc0E5XnJ3KHlxblNyJCpDSUlsYjBHN09rY29AaT9fcFFSfWJxeFh4eWEyIWYKelRX
JVNDXlgwUGB4LXViYD5iQjElemJfT3Y1Ukw+ZU02e25AKTExa3UtMGF+ajQmcDhRYnNuMk8qVHl0
dVg/IVN4CnpedTskWmVmMzhpMENhcVJ6WkJyajB8MjRXZUttcDVtSno/ZGlMTmV0XmNQPiluVjV4
Kj5uaVpTez52dU9TMDdLeAp6KW5sVTdiIWJfJDkpWGFZZT9OT2U9SXFDd24/RkJnX3Z1V197NkB9
YWF6fFVjMlUqUEJkaXpeYDl8Z3wqJlRxWX4KejV7XkJ1XzA5bmlfaChKZFo9ZGJXYFZSMjF7R1FM
dmBrVmp4Y2NBfDImPjtFJEA4YkJgKTBtRlVfeVBjRDJGNH09CnpffC1laklOS2tBZmYpM1RNYGk8
bmViNGImXkc4MGxrcj1tfUhrXnQ0dm9hZ0hYemt2JmAjZ0Z0ajNOK2xFZH1QQgp6QDNkVXRRO2Iw
dVUlQF9aOTxVR3kkQF5LJjlWcF5uOGA3NSVYbVVUdl5EaU1iYDNrUUY/RCtsT0tfSyhXMEVva3oK
eiZ4YU82RHkjcTVQWmRSZnl4OUJyVCpNTz1lKTh2YXhiTXl5akxjTFpwQGQ7LTUhQUo9TFZlM0pk
IWYjQj91VXc0CnpAQT1ieXpZPH0xd2xSMD4/S15iYGQwczA1REF0QG1pJkA4M1F1ZXw3eV44dCNy
TU1xP0t+S0pCVDUwck16S3AmNQp6LUApMFEzdl9TOWVGMT1qZS17VFRAeHghV0FaX3hCUWJnSFQt
VXFkUTx0elo7dyVfKmtqa3hjXzlZVHBzWEtfKEIKejs2WXVpPyE1USFldH1DPDRHOGpqN0M5RSV4
eVFXY0x4R2k7NjhFSk50cnUrfHM7PWg1Nmt0RWpJal8haGxTZT8mCnplVnYjPXtNP1RfNlh7YnRS
QHlIRWFCfjdjd0RPNkVSSVBEV0Rlb1Bod0Q1YVJYIXlxT2hZKlhZZ3ZiTntZOFhubQp6OStqPHw1
TlRSWT1vKjBwZnJSSSM8U29wJXNtSnImPClkMFQrZHpJTEQ0RiZiMEhGKnMkK3RoWiNWIVBYeCN5
eFYKejZZPHtBZXhMUkUtb0NXSSM5PChyXkUoXkI8ZGh6Y3FvdlYoQGQ5M2RfWnteMV9hVHsxYEYy
ZCFSfnpVJipNekAqCnpzUjk5b15Yb315JVhkTztYd0x4dlhEcylGQTY8dHY4PUotT1B1TDJ8b3F7
N0hOJG1kbjdqZ04+QXc7KSsqek9sRgp6R2hmfkVEISVpaD5hZlE5IUhHbipXO3Jub1FARlB8P1pv
IX12cDhwZVI/KjFzP30xdj8wKDB5VlZtJnxqYVQqZ20KejEheiQtMDQmIUgwOWRNT2VzNi0jUko3
UnB4SmhueDh9UWZQdXV2N3s8JnR5K0cqJE13WVhKblNtbXU3QDNQeG9NCnpiZiRPO3VaUERzVTBU
azZiQ2pjbW84UkJaMm1JND5nPlV8eCpYRT5iXlJ3UF9PNytkIXBBVSRYJTVkXm5aPiFMOwp6bWpH
dCYmc3VVJkgoQzR5UElhQmI4d2Q4fDNiX0xBRGFgZ0I1REVtKXpOe0l+ekZ2akRlPVV4WHB4T2ln
T1NlTl4KenZNfm4kSU5EIWJTQWtGZDx+R3B+QiEtSUVqWF8tfXVWVVpwN2NxUXI3WG9EWWdSQWJN
VkBQRU5lUGpUQDQrdk9eCnp1TjtSR3NWNEBvZ3VEUCVSRDQ9eTdVV0RqZ1claismUmhyWFIhbTwk
MzlWQFood0Z2UVg4MGV6TiFSdWlhK1FCVQp6TytiIVpGOTZ7MWVYX0ZweEJvfntEIXhfaCU/ITlh
VUhPfjtSfTdFY1hKSUM4MiVuQTFYVD1acTVZUF9+NEdCYyoKejVVTnsmVkJLPTQ7Y0NLeU57SEhU
R25IK1J3VGokOz9oN2Y4entncXgxI2VwTXhVbHN1WVdaYEgmMk44PmEjKFp2Cno0cyltZCNiT2Uo
MG1VbCRJfXw+VD8oQHhoSzBQeXkhelllby17Q19Ub2Z3MCY/Z3REMT1LaElnT1BhQnZ5I3MmeAp6
b2V9SWhJNj9yUk4mc2x1MihAKXZqIX5HSVBVN0ImK09oTjMrTDFgNGgxSClKaXthaDk9Vyo7e3BQ
PjhKPUArMjIKelkoUkwkWktSeT4ld2l2WTAzZUB8NStgU256Vko0KikqVm5vNXNfTWlKcHxOd2V9
KU5VRnV+JHg3XkpVdUF3NGshCnp0JDdvWVhQelNpeFI/RVpjbTRtTzFPVDBMY0hQN1h0WnhjZUph
OSRNeURjbn1Rd2twYXp6cUs2cEgwdzMzQ00qdwp6U14wVFFkQ2RVPjZ9bD5hNDh1U20rSkkwXkQr
MEFkIU4/QyZjeVQkcDhMWUdmZ3dobip4akg0I3soTil2R0l2SnkKemhBJj05MylsWWhFMDh0b0kw
fTQrUWZSLWdyQUNxTz4xODU3PjlwVHtaZ09BdXJYSEU8Ykp9bTtrJUtyeUFUVGA+CnolaUpHKUJV
ZVNEU2haeyFIZ35LPld1eWBKZSkoTXRqTFpuKnooem8rU3FYalJQVyMkUj4oN2UkYFFOPThPLW17
PAp6SXl7NHVOQlZIISVecipuUDllYTlJTDNSQz5WNTtrYi0jdkMoPXQpWD1eUkB3bUN1MyFoP09T
JGo9fik1aFBMKkAKekFgdVhkMjZHa085UzE7bWVFfGxFKnMmTCgpVVNvMmhtaCN7JEY3OFIrOEcx
eD9nNXpoQncpOChQWExmQ3B6NUZlCnptNy1SQkMzNz82NWYwPjNnd3B1ZFNGYUdsXlpZa21HfFJC
IU9JSlhHZiU2KkEhe2VISW9xaHM9NURhMW1wXyprZAp6WUZsQkAmN2xNPHZXaEolZn1nZHstbmRx
WUheMlhUa2g0dnpncXkjKDEkT0d2dFhiZXYlNGZaLXF8X0M5My03UGcKejtVYSRUbmY8KmolKVRh
OXUzcDducVc+cXo0TS0tWEdPe3M8UilvPjlhdXFoTz18S0RQWDFzb0k1fSl8JGUmSGc+Cno/P3dP
K1hAY0pJa1BOVyNxOUN5cD8hMTIkP3N7TX5qPXROQTxBP2Zpd1NRZERmMWF8JEcoTyQpNCRgOSs1
IXY8JAp6MVM9fnUrc2wzPiZ4YDxqTVdOV3k3bTFFa0x0QXppTFAxMz1fdkl8ZFdAVDhMM2tkaUww
WV9AXjAlbElWNHQ/RSsKelZVNmA2KjhqS1V8NDtFITtFT2Z9JXFgYSYwMXlhbllZVDtVYzluN3tR
IV5eUUBhUGMhJHRTUFU8RGp0Z1R5TCRACno0V01STkskYU9lOzklSVZeUCpqYjVoUEA8QjZpUzda
byYlYTxUOXdpTn1DeFpaNkxeUHdhcnpJNV5uSUtLJDFfdgp6eXIxUkF7Jjk9Pih8JThvdTduYHYh
ZkFnQVc1cztnUVREVTRuSlJfdU9URX4kZT9LbDx4PHAxSEV0K2o9RHl5KW4Kelo1ZyglVFpmajBN
cFFPTkBjO2VnOFRgdntwRn5Ka1dTcWNDM3dLYW9gO1o5R0lzMkB2MzUmR2YydzhtSCZfbzxTCnoy
KWhtRzFkPUQ4cjw9NEFSWGFXfG1NNz1vcDtxUXZ4KXM8NDBvcnpRcSN2O3B6bDdkOzd1NVE4TEBM
UTMxJnkzIwp6JEZyYDB7aDA0UmF5Tzw5fDNZKlU4ZnpYej5jVT5jQ1NNQGBBNnotPloyKCRPMSl3
OT44dnI8M0gmdDJ2PCkxMV8KemAwLSphQVFvNCN0Ujtxal9oZEoqMGdFbzJDUmVVdUFXJlV3SyRS
MTVINVdzMDBELXxtdy0+fVBfJE8zfVV7dz4wCnokfGVNPVRnWGpfJE8qKmtgfDxqN01VXzh+I2Rj
bnM2WWJCIzAyYU5NZXtxfDdXLUQhcDQ0PyRzP3xmRUZUVFVjIQp6P0NmZG1KIy1MUGhsWWpBKkla
d1p3UGc5JUVNSX05aEkkMGFeKW82b3tNUD97NWRac0VtcnpNUUohY01oNE0kIVAKek5NSDNxQz4x
cXc1LVZnMEZ6LV4mMzxhQHxrS1N0emJzPT9lRlo5TXVzTSZtPD07MDd1Znw8azRfNlRIQG5TQSle
Cno2TU0qI3BDQmNFNms0UEspZVJNSjZ5TiFkWmcpV1pqfHxoeWcoSHxndytDQU5XJih+NUJ2MWJZ
YVU2WExTP2xqcQp6fDFDLVlrbWI2QDBBUlpUcTN7UWAyWkNEO2x5VyVKRiU/aCEpJkwmNGNiSU1u
JmU8d3JuSm0ra0FpelUxMXNoT3AKenREZ1lgQkxAKXB4bksrOEdqdCR5ITN9Wj9me31VeGYrZigy
QSprVVJYJGVmR2VRQ1M2Vn05MHFhY0k5TTRseTY9CnpKIWpoUWVJMnZASG1CZlcwbmpRSVY0YXdu
I1F2ajRhcDNxZGtxdXp3LT9EYkNRMnVKNz1YX20qaEp3TTcxUm5ZUQp6e1cjdD1BKWJyRDk8MTwr
MSUzSEZQLT5QNz56LWN9ayVMY25rcz9vP040V2lBKVU8QzklaEZ7bUgjfFcrJU15a28Kekp+NTh6
ISFPOHZ0JHEtfT5TfFFnZylfXlR5WE9peFV5YXU8T2loaHI/Nyp8K29sTD00QGorT3ozQjwzdypx
T3A1Cnp1OSMmN19YX35kWVgqU2xuX2dHUnZWZntEfDNYcDJBMSVmTGMrMytJZGZjP0trNyE+Qzgm
Oz5WcXljbVRTUnp4OQp6T3YrVitkNml4UDIlNEc9N318ZyF6YC0zbnF7b0tDNCh2ZHA1c0h3alB6
IV43ZVB2dSFaX3hJX0U9I1IrM2RxdmsKekFSdnZiKGhicyROT3dzckErMjt1MzZjXzA1YHlmfjRH
SWNLRWgqZ3slUmM8eV94YiNzWnpxNH0tMW5TJj05Oy0/CnpDSmI1TzYwTkdQentJRSNyb2JMPVd8
bVNEM3t3Yj0qSCNMQDwzbnRFTV4qZEYmUkdmP1pRPGxCPzM7TEYpZGVAOQp6PXE4VG5WP0ArZWhK
VFZRTnFmPDMxXz19dW00V0h6VVp0RXtZVFUhNDdMRDwtSnM1NkAtWT42a3B1JnFyVHR4dU4KellL
JD9SYzJkOXBlVGMjZV5TK3ZUdUFDb2E1UkNZO3BUc25ga2N0JlhLWVdNe29ZRUJ2eWElUHF2PTxy
SE02MkA0CnpgYFlUQztnPkxBUC1zYXRQNSp5Skp3fV8odkY0SHJtcmdpbTdjdDJQYTxOekl3VEI7
TDVtNV5lV2Jya0lTRFhPQQp6cyNwfXsyVTJZTFZYJjdoTDYpYSg/Qmd9QSplQjZsMWp1WHcoOUxr
cGJ7Zk5PeShte2Mkd1dub0pUMSE7WDY9JkMKekAmdTBVXjN6Q0tLX2c7YFh6KHRYVnkmN0FEKHF7
bDl3NFBNRVRmN0pVeSNKZHROQmxVJkUxMkpsRD09PUk1bntWCnpZZU5NazlwPmNKMCNnaVRaMipS
M1M2d2YheV58dCtyNCRDMmVDdyg2OVcpOEUtMXAtdDl+Xkptdj4qTzAydGZkdAp6P1YhYzBTMTgj
SisrSH1YWig9ZTh4QHVZdCQoK3RyLTs1azhYYFVDbiFyUGgoaUFpfVBqbV8yeWRMJCtIVipiJVEK
em1WNlIrSkpRT0RIK3B0eDIyYzkhcj44RUZ6ckl1WWojJiQ+dnglNWQ5ODVlPHp0eXk4aS0/UHlu
N1dMOFVTc3k2CnprbklNKFYmNkwhWEApdUV7NHRNI3FYMit9MWYxYVFtK19CN2lmSVQqVXtyQlR0
bVdmS0dGWlYkKWpQM0lITzc3Vwp6cmFtcWY8dS1xV0RabC1aP2crPEtfWWhRYHdwQW5YMEVBXk1r
Zjx+MXk7PXFYTiRxfmB3Xz1yMytyTGx7akVzTncKeiM/MUxzNDZCUi13NjRKeT5gaSNKMFlBS1pn
T0RSSjNSTHx9OWRuVSY1R3NNe1EhTWZaKEUpZ2lGKE1NRWh2cWswCnope2VIb2BweV5pME0mOFZF
XiVHdTl1Q0E/NWBpQndAOFVta20pJmBzPCVAdTtrKmV9ME0mbTc7WDk7I3NpQG0oJQp6ajRgaWI2
Tyo3blRTLTZvaHYwcTU3X05UIyg4MX4yeWJiQiMjMm1oVHBQKzB4JWhPIWR5Y0JtZD1fbEgoKVZO
RlkKejlqVH1icnhlbFNkaGNAKEJ7dTNTZCk4SnF6dlQ7ejh4aEQ7RXphNlR0ZXB5JjBGeThDJS11
WiFWZD43ayZKcmdwCnpkViN5eDN5YjxAWD0xK2R7RkIpTDVTM3F9P3k2YGkxX3JsT3dXfEJ9eWY0
M0g4eW05WU94Y0FPej9vbzFXKHA/cAp6OXJMN2lkSHJiem5gQmBXPX1gfkZobl5nVVltNTJWZkxA
ZWZuTi1CaitHP3Y7cSp4YHQyO0M0RWB3enNleUgjMkoKenRXRWNgNz9vfDcmWGw4YFVIJUphQktm
I0RZTHtfaT82SnBAU1UtZD5CdmJqWlN7NjV1Wnc2KElVMj8/SFVVcWMrCnptNyNta2h8SEBLZiZ+
eCZzb3BjU1ZAcXF2VGx6QWx6dExrUyR0R1FUVmhsZ3M7VlIqMHIwNmVvTFpqY3opQDRYWAp6MmU9
KGckZCpeJSllbExxTT9WO05KfHg/fXJuS0tYejJSWSRIK0tlZEpNKHhNUWIrODFTS29jNjdHUDRU
amViYmsKejZQUy1YYDsoQHVqeVVjU1dwQ0FBJUVrQyZjJEtmQ1JRWV4+Mn5aLXkoUDU/WGhJe2J5
c21HV0FEbmJ1SzsjRHZ7CnplP0p0fnRqblVUUyYmKz5mNldhNiRCak92c0Q3aGNBNyN8RnBYKnl+
VVE7WXc5Sl8yTyY4NDk1NEgpYVBaIW1fMQp6VntTPFE8en15I0MyfG9ZbGN3XyU5fENGTWZBTVlz
XmN1fGM4bXRnQkNhKDgxKzJ7YWpnWE5ENXtsUGtDM0RNUzgKenpvdTVjSjtnR3oqem9eI3BTbnRR
YWM7KncoUmlpTCpQZnBGR1F0NGRjYDhuUTZheD45bVJJemZsIVFRRTBHTlRFCnpUKmI0eU1jLVdW
OEV7RX1wc0RVbGFxX2hAKGJ6S0woOG5wP09Ad0I5YmlGRE9wWUxvVigqenlabGI8MVNuPGFzegp6
NFVjWTReNH1PNnkhPlBiaDI2ZH4xMFpqNlhiWmNKe3kzSnJCfVA3JDg0I0M5KlJKOGpYam0rS1gh
Ullgeik7SXoKejNhXkk9N20+Xj1WMzFGVXFidXlKcDhxPTR7d3F0eGFLPH1ZZktOX3dxJlpHei1h
fjhKI2Vpcz5efFdfdklTT0lUCnpHaUskPmVsfEdzKTZRRSlyTnktLXIzdCtuTyExciZXQzxQO0B9
SGltOWBaa0hwdFJfQz9MYVBFaX5WKHU5MiRuRgp6S3JBOHg2fnQ1ZTFZVEY8WSlCZyZlTkF6KWFD
Z216UThlNS09Z3ZudHErREtpSUR4Jnd4PVFjWmFBNGwwS2U+fVcKejhnPFRoUSlCak1MZmhPeWx2
dUZRTCkqQ3RwfEVZb2NCaH1KaWdDUTh5d0lSV2R1eldWMVlfRWomQHU/OC0lVTF1Cnp6bEw8bl9B
VzMjMFQ8PU9OeGF9c0FgXyVod3Y+ZjxaPjM5Kl9zP3MkejIqNnNePWd4c213N2VoJXN1IWBzPVYj
dgp6P1FRRjlZS3R0Rmx4PXRxXypaIXt7b2lAbThTM2s7YD4jcChmJWpYTSpqeVl8OSVlPX4hPWUh
dlpuVEclQ3tJVzwKeikrYGtIYEl+TFctYylRWFBQKHE8WCFuYlVhS3I7JCZkUnRrKzgyY0ZAQUIo
Y3J5QC02MmVYTnx0dFUrQmpSOTs3CnpNOTJvMTZ+aiVHZnxgTGYxaE1AZ1VISnhyKnckTWBvTEd0
cz0tU2ojZDVYXl49QSFgcWpZflp1JiRHVDd8RGpBJgp6Vj9PcnV7Nn1BVW9OOWxyT29ZOyQ5NXBe
VF9QKCZOYD9ENFVtR2lgNFd2QURXaGVnQihUS1J3M1NLbUVrPFNXP3EKenNDY0otYUZ1LWI/fTw7
RUxaPkojTSZKSHdJX0diPWV+TnhOZVdJMHkhfXdqNGArJTheO3JXK2NGPXB6aWp5LXs8CnpqWjVw
SFhyZnxfZntxJmBfdkNhZlduXyhwRl4/biUrPDNeNHkrKncpUXBgQHxXS1RGK1MqMlY7NDQ+Jk81
a1VgKAp6MGpVMDlzNGF0dj0he3J9X0R+UylnXyshbj5ZR1Y3KmF4P0lEUVJKLW0xSUtmaTMkUyly
TzMzQnByRThsSSEte30KekYxelJ9dUd3YWw5eno/aj45a2AtV3ZVelkjNzc0fFdGX3ArZiNScT0q
ZXwrRSZuRz5PWm5wMHdhfmJqKzdYJF9gCnoyQWZvbmViR3NBYm9mUnVLUy1CTnsmTF5lKWpPbTlP
cmByc3IoQHlMPW1BMEM/b1VpOEMxK2hzel9SYip4NDRfZgp6VWxIPz4lN1llRFQ3YTspJHwyZW1v
SShFSG9VcGtMTnxVdTQ3WUZGPWVQc0RpRGtCOWNEPiUtY0lNayNCR2EyX3oKenJyN2Y3Pkg4R3lC
biNUQ1BINns3RWpgO1Zke1E+fip9RUI7Km98Rk5QfXlMfXZvTjZ1U30kN3RmLXxZbXhHbF9sCnpM
Nkc2K0hIUHdfbGRZLWJPak9kbkttYFdIXlB0cjBUOC10UUcjdyR7ZzI0bSlsTDR7cy0wYlpTeWpE
QWlxPn5+YQp6KTNTVmdkN2wtRiFASXsqJTFndi07ekxVellSSj4tYFo8fioqWE99JXs8JTtRLXwx
UVZ5cEZlPy1AUi1jYDNUUj0Kelo8JkpMZW1EaG9vS29PdUd6bnpkPUp0Ui1iY0JoOStLQitDJUpT
RyVuOypPfHNMd3VaPChtek1JWUcjWUwqTShhCnpTSW5pU2w7KFFMdFJGRmQlYWN+ZCMjT0tadSZh
OXJmSj5OIWRgKWs0Jmk7Rko4KmxjNldQUkFeWVFyfGo3JGFpPwp6Q3w5e2E2bjgkVmRVNmRCPF5p
VWlhTSpHfEV8WUE2MTYxRlpgUzFtOTtXbVA0d1Y7NW5XKjsqMWlIalReT0l4RW0Kem55eClDR3sk
SV5FYGFfQEgrI3g2dHl8VWlnI0ZPb01CQ0RfQzd7WSNGIWRvOCtBX1BEeDNkKjElb3dSKGEteFUm
CnoqO0p8KHBQUnhfdVckSko7VUVDYmlPJVhuaFVyJW16UEB3MWMqaWZsO0QkWGlgOEh6I15nIXlL
YGxhQmVYI09GPgp6Tn1KVDFLcThGdTMtTy0/XkBzeD8qc1ZuWU9lc2RJPnw9eDlSYzhmeVROaHVn
bC0+RC16Wl9TfUdnMT1nPyUhKGUKek01dmErb1RiO3omKGI+Pm1kaWFeXzBRdnJCMnd3Jkd5SUBA
eHY5aHMoYD1AajJ8JSl4bkRUKzFiMzQlSy0wTjY2CnpxKXBHbkdtN14rPDshXzxNI1l9fmA1XytW
U2w0PU47Kj1BUHA/IVRac2pibUo1JEc3SkxfaHE7NkE9RjJfWF5kVwp6ciUhYmxnJXg/amYkIzhk
TU9JMWxyN1ElIWBVXzAwNkkkS1ZWc21qalZSZH44QEJtdDVAZjNXeTl+K1FxX0ZvKksKejRmYGNV
REtvZCphNVQ4eUBILUhAISFMfDFwe3Y2dT1rNjtQRH5Id35vdGJnUlM5e3xWbXl3VHJJRkVGMmE7
SF9PCnp0Pj9qeUswRmVCamcoSlQ5P3RsbjxlZj9meHZDRWU0SlJhbFhrN2tnUjJLWjEmRVJwQTN7
Vzd7a00rYF9Saz9VZwp6eldscnE0WiFCQ3VERVhRNlVjbj9CTHJEKWxgX0gxRGQpfmleWEs+d0dh
enw0O3tldCtWRGlRa3BDc0QzeE0wYGsKel56UE1MKD9oQ1ZxQmAjXmo2ezB1UVlAKXkwVEQjK3Mr
e1VDJE98SiZhZkIzbjNNbTdmZj0kZmVlTTlvZSUlKVMzCnolSTNqNlZCSTsoM0w7N2RNa1BWQT8l
IU1LTXNNXk56Q2RVKzwyX0c9Q3g1dHlReiFiTyVKWGl1YXdBI3JjVDEqagp6Y0tPbGZYSXQ+c2g9
Z3hORmZzdWBzTzU2PT9lbXA8SWZgMDlsRD4mKnItMn1wRDM5WjdnSDAodkY7cXQ0MSNkTysKel9H
fS1fOHRlTXFPcXVmQl53KVlfJTdkPFBTSyk4NyV9UVdxYTwwVVNrdiYqNnI5PygtWkNMU0M9VXkt
SWQmcU9hCnp0QD16cEJqRUBlJFlUZGBRNWpaaDwhXlNRTlh1KXJ5MVVnUGd4OSFhZkR5c0lmRGIo
KE4jZWEwPkRjYGhCZzR4SAp6YE52cGAhJmV3fU9pV0NfbDhBUWF1YSVwSXB1eHc1ayY+UCZNeElt
Z01RJnNKNj8/NjhFYT5PNDhVdWFKYGVPYHMKem5adm18Zm9ieH5Ac1FQSFdKPHFBYVN9P0VVSFVM
NHptdlVlP2k4JHBpOERoTEYzTXNUbWlYPyhJS0lFaXhWSXBgCnphZmhlVFkwe0kjJmRTQmI1ODco
Jl9RIU1kNiUmdikjRXpJbW9lKmoqQiVlK0BqR0tpfjx8PXNJcSUoWnI8S3EjdQp6dG1pZk1TI1FP
RXF+a0A3MmE8VTBLXz4qe2YzXzs/IVQoSVBscCtUKXR4dHolY2lYVlN7bjlVc1k0ZVB1Nis1bjIK
elF5fm0xSlokX3AoeGFLUjRJcSpZTV40fl5mPkM8MEdEYktUP0g+NHNJfDJXdyhOe2IwQUYmP1ZD
VVo/UGpxWGxQCnpWM3dYVzk0ZXl2Y1dlXzNNN0R+flpUU21oaE1aXkwtTiYlNz5MaClMdyE+TDtR
PSl1MWVwPWpQe2QmZXJmTHZmYwp6Zk1KKVk5VT8jT08oPnheUCo2eXd5KFpMK1ZQeWZhYzYtWioy
fm9vZT4laigqI35PeHNXXz5ZaUAlKE0qVEslJWwKekhPfWF2eH19PDZwZjcwM0pPb3RvblZEeDwk
cjhuKlZuUmcyU3dZQSVzfGM8MFdlOFZua0tSeW8jVSRPKnEhTmlGCnpiSFEqKTh0UT5rJmRadTJK
OHBpVCtKJVh1P0xjcG4wY0BQdjtyVXcwcyQyUG5yaEBJLVZIZWFWXkReX3B4IzMyMwp6Qk5OUTtk
Q302Pm4xWmc7TC1pdXo+Ujc4bk19Y1l+XjxnPGxGK1NiNEsoO2t1WmVhPFVZVzl8OHBiZ2V6UjAm
OSYKenBsQEkoXilRMUw2dHN9ZGRHR2pSRHdNQ3FDV0RfV3lpWHsqcmAkVjNqLXs4cW5sTU9yM25T
I2tnUTVDeTBsejQ0CnpTM2huNUpRdlRiQSQlM1E/aHNFIzU9Q0NMcCs+cztSS0F2fGFmWGF1PyQ/
S19wQXYxQEdKPFFiWUFibj9VK24+awp6KlZ1b2pZUnpAM192TnAleUJ1aSRRZ3VAbGB+PmFxTnpu
TFhLYE5RNmBkan1gdC1Pen56fFB5VVdsbX41JGI2fGIKejhfaUo/bFIzeWg0RF81I2JiPEZ0Nk9S
ZD5rKW81KHEzRFk5ciNvSlNoTzN0bz5kVzQ2elpaZmAzVFFyamZaMFhSCnojKS1EdThEaV8oVDNm
aGooUjU5SElYSk1kZEhzamB7QktrenFNRzhZSWxtYW14I2BVZWtSSzJtYnQjJUVMI3ZMWAp6MCtC
VjI4ViU8aEQzbms3e2xgRHxLXnJleyF8MTY8QWdJJFF0RTEreEJZXm0qSHY8SWs5eXthVTlwUlAj
VUtmb2YKek58VmRWRDtuVX4+UW96QHFPfEk+SHAlfDwoa3Jfc24wMSRaQE5xTnUlP3N5TyZhP2c3
ZVBmUzU/aWxGNXF4e3U5CnpgVkROTm5JRTIrWWlRU3hHek59TTYpeUEzSC1zeUZgLXwweGViM2lg
QEFHOCs/WXArVz9faz4tRXZrKz9UJUhVQQp6bEZEX2UxQkt7NTxHYlpQUGtvcihXfSEmRXptSmRO
Ni1LcGtQSmtWMzVTSS1JNz9QYVk0M09ORV5UP3lQUUY8Q04KekB3czJvbXBNQ29qbEV1Qzc9Qkl6
M0o2SCpPOVltVEUmO2pEZipCaWNANHU9WCRaZThQcH0rN0pORExTRGZWaGhwCnpHMmQkaTtDYS14
YG9QQ2RFITdIalduYCspOT85NVFvdFgoZEd6Z3RTS1lmMzgpK1J9ZllwK0Zrb2pNSUw3aXAtZAp6
WHRwZFFCI0d0c3lCWVhwYH4wcWkqV2ZwOG9naHRKNVJ4KUJjbHR9V01zbD90PkJGeH07My1WLXU/
cUNwQmE1Wm8KejJGSWxBWG1CdTVlIy04dDs+TTFzYz5efD5MTU5hJXZxOVUqb3Y1cCl4Q3RIKGxN
Ti1xdDd2XmoqMFh0ayMoU2ZwCno1JUdRTWlpUEBvPiMmX1dJe0hpTFc1NUF2ZyRhP3kmI05uIXZo
R2xmay0lZ1lAJW9GU1pFdXJQelpefVVZNlBjdwp6YDZZM0koJVlrdzQoaX5mPWNBSH1xZFJ3bWxk
Y0ArbzdDM2BfQWBgWjFmOVgxUTVmTGVuP0lZTyluNlhEdlJ8OU4KelYxM3szJTdDWURoKHxjIThM
c0JlQEd7czF7Q2MkOytZQnAlOys+aXpGOFNqZj57QUA5MU9UJHZCUCY5P0NJVDcqCnotZD51NyZT
I2d9e0kxTFdTIVAzNUEyRyk4SVArVVl0V3JRaEkyJF95U0EzP2M7Vj4zfVByUFB9VHpYVSh0V2dJ
NQp6NkJ1TUxCejBJTUlea0NFQV9CcSVAQmx9aihTNEtlNmFKSEUlPGJSTXlDRisrMSM9RFUoTyty
JjBLdzwrc1FJOGkKenxFfWFhPHxHfkdTJFRmPl84Oz0pNDVNcjVqTzdGWmApUjVORz9kbjg9ZVQ9
Um50PXo9RmQweWM8OEE1NSRsUXdZCno/UD9RYVZTRD1EblZqeEdpfU0tJGQtS3g7Z3NHYnkhME5h
ayt2IVNAT0lOU3k9MlQ4RXkmYCooRUg9NytKPCU2JAp6TXlVXik5TXtRbykpfDxwKiRfdHxQRlB5
TCojKX0jVTl4Mjxoa2k9VntuckhfVGk1enUxNEJhQ0pMRWRSKWMwRG8KelBEU0M8aHRNcns9dTh3
M2E/ayZpbmFWa2ljQT9vflQ8bmMySXxwbV5ASGJNal8ke1V4ZUdjenNoQD5aVyt9bStwCnpDNX1X
U2JVQmVsIWtkSWJpaVMleWs4LVJzWlVqdFh7QkxtdChSJHgkOFphazkzX18yPXl7WEQ/OD5aIz5H
TTVZPQp6SV5XUnJ1LUtOR1ZuI0RrRFlJPWphZyNRUGx3ZGRHQUhUPXpxZTUtS0xSbHdgSHMxWnF7
NUN8Y3NiVkZvZippTmoKemk1NmpPYkg1KzA4d2dwYXVnMiEhQjRDVWN7NVJKSE0pMmktU085ODU/
Wk5GOSRmOGp2bzdyKkVBKlg4OG5gdTBLCnoqaVhPOXdAUXp6SykjKHZIIytZdlhvPnxTIXE8T3Ey
ZzEjNTA2c2hlPn0tPDZGWEpBYGI5K15heEFAPnBfRmBgbAp6KFNFflhXbiRLfUdvamM1ZnhHX1Bp
SyNGUT9RNHNtQGhOP2hzKlU7U0dNO3smcyo4VmUrVD9VI1djUysyTD19dmUKekN2UV9HJHUtcWs/
YSlwc0NJYlhWR3JaQ2t2OWh7K0NkaTVCMjNgQ1YreUBKazApRE9FYUtMfUBzSDYzaztRbVBKCno2
JHReWXFHU0hCLTF2M2oxMnUqQFhaU3Jua0hMQ19Xb0MheVRiIW55aGdpSHBjVDd2RlVZbU5WZEd3
WlUlQl9RKwp6bThOQnNxP2pfYmdOZW5kQktWfnAoYmR3OVR0P0hsbHMlJlE+O1E9cDgkb1o8NH53
LWFDaCVCTEEpKHFtNHVUfUoKemNPRGgxT0o3ZS12Ky0kR3BkVllSbUYoNXt4RyheSSNfaDZRRC1z
ViYja1hZK1BpZ199U1pPeyo0QEh9VjZ4czd4CnpFanRaaWVBJlpsVHBSMlRSTExjLW8rJllATzRB
U01PcCFtUmwlIUU4bzM/czIxSmRFOW4wX0A3VXJLTj1TN3lyLQp6LWxoQjIhR0lEaWdZfk98YnJE
cCEhWEVlPGBtN2NSaklpRktXJCgmeGArYFR+KWVefkYmRFU7X049cmVAXlImdnsKej5Oc2xtVWU5
ajdAWG5CV04hQiYpSktXR0Q8PnM/MyEoKTF3Qj9fNVdnUDNqUnBFKmM3eX1mRHx7Iy19LUg+clIz
CnpxNnhLTGYpNHElc145P28kSXN7ZCptTERKcCNjPmZnMyZ4bStRYEhPUD9IRCgxanorU0EmY2xK
dDJlaT11R1VSKwp6SFZ7PzwxMT55fFUlNkAmdSQyaSl5ZD8yaDImK21IPyY4QFVXI1lBPyM4Uk0k
WVg5eHMwI2xETDU4bipAKk11RkUKellEfFRQb29OVGc4aFpOdkRMKGtZP0dlVClMY2p9PSp7PjNI
ZEJmcFhteXhaSTg/UE0yYCN6cWRmaW1gY24mSGB+CnplQk5UKGF5JVZQYkpjUUtjcjV1KGNlUTNN
b0BPdGVLKkVeWDUzNXBTNWEoSXswMUN0ezxFOylZS0hsNiEpPFAzNQp6KyRWb0ctfUdwTEVqLUtg
REV9LT9CZ31rJGctM0hHVj96R3BUfXdFeHB7ZzxVNjd5diRfMSYyWD1DYiM0ZmAwdGwKeishMXBe
RjMjKSQwMD8qfE1NOGtXV1hPOT10cCVkSkZWO3BgUV5gNDRWWXp6SlZkenVSeGdHdGx5bWEzMHs+
dE4yCnpUNGNsP3NkNCQ4SGZCakcpWEx3ej4yRnYhISFBO2FVV211ZnJCIWtqd2BQRio4Wl5FQ3ZN
d3wxQU41OUxCKHRKZQp6JEkldXlpYH1eYlopQiYzVVI8R3N2PU88UyRZXkpkNkV2QmttJD4mYWZ8
WX1oMk9GVU9rS09ERVBqKXlldyQ3UjUKentwSmhoekU+RDthZl5Ne1R9R3Z7LTZWeUFzezhUNiEo
NVNiPlF+e2k8ZEM2MERIYFI7WDBgZ08/JFBtfitzTWwyCnpfMDUpPCFobChYakhBS3xmZ2xPZz8w
OHg0aDFGVVFFbk17VTVvSig/R1FjcEhWbn1DRiM9MX1LOF9BP3M4ckBIcgp6cFAmT2xESH5fODZB
N01aUms2alZiTzJNO2A0I18tM15QaUFLWVNQNEgyVEt9Y2BBfVVIK2tyPTgjZFo4Z1A8VW0KenN8
JCpnR2Y2bnZZfW92ejtYYDAhSDA0PXFedWp4UilvSSRKZG9MJSotb1c8P1Q1WDNjN082ZFh7fkww
PDtQQWcwCnpQRmJ9MHVkUGw3ZEd3QFQ7NSU0I0tIIyVEJW5ARn1vZDZJSW9QJTIkKSRsUEJSTV9Z
c1ZCLT8zXyotdWpjRDJeUQp6dFN2fH1EdjBtIUB1KVo9dG5Rd2paMklxfTI0cjhNZDFyekY7NF4q
R1VlPCplV2lsVzZBa2M3Q2hOSHNlJSFoQFkKek50ITVxRzckWiVvJnxgVmM7ZHx4Jjk0d1BCfnFF
UCk+emQqSyleRzU2ZFRubSZyZkxPJD9JRGVYTklrLUV2eUMkCnpoeFhNKzlWUUh1YW1NYH1ORmY5
eW5wKHZUVV8oRzhsNVdAbmpsLTFvanR2KiVpYF4pPGVGNj1BTW1PV0hfU3Ntcwp6S2s8Y2RidylK
QkNsfHM1K2lpdF8xbTY9RnclKSQzXytyeko3ZTU0cmhDfDg0alk8K0c5TWJjUDxuQXdFOWZ+eUwK
el9LNUwzYDZiTms3T1E0e3J4bVdpQ1ZUYUkqUWFvODw/JXpVY3xkWjVVUDF5QntieTJ4Y3A4PH5Y
WlB7Zl9jUXZ9CnplVipwSzQ3PzNqSUd9NUJBZk96TmdfNHBuUkYmQXJoNGs+Qnk+OzZjd1pAbkBG
WXpLeD5jQV99KFVkZVZaPzwycwp6Vz93eCZaVUowPzN0TG84Y0pQI1VyPF5XTkk4LUZ1V3x8Nkx7
ZD1yJmhkZUZ9U3wmbHNpdG11eSVxTnoyNzNSIXsKeilza3k5ITBJQi1SSHNRPTlgblolSHJpfl9g
fDtQcENqdnR4LXs/WUBrelAkYWZzITk3QDY/fU1EK2toc3NGeUZ3CnpKY2t5NHlzP3slKldBJSo1
eTVYNWoxOEEzQUMrJS03bG47PWR5a3UjeFooXyM8VzxkWXFoRHdtM0MmNSFsVTxBfgp6TzN+Um08
LURgJGQjfEx9VFp2czlgT18xdG0oJGFtNmduRDVZVUVqYktZKHp6aipoezcjc0VLWEx0TF8rNm5l
anoKemQ1ZkZDRH5xS3RLdUgyYzkpdXx6QWskdTBwXjEqcTEzcj1AUUxLNXxqMFk9PkwoQyt4eXwy
Xykldj0qPV4pMVJyCnpOeWx7ZS1lPnJJZTR8WTJPenwkNGppbU1PTDtTdiZGNUM9ak4oe1ZzRDZ1
ZSZkSVl3eXFfd0srLUwqa1V7c2okYQp6Qz08ck9PZzBTRU02MkNqKXFBKG9YTj8wajFCT1gpTmhB
WEB3PjN6UHV7NS11I3h8YjNgSXhFbSl9NX1BKyl+QCsKel4pZXZMc1dJfGU1YUBSTzJrKWZkbylJ
MGVQaCk9Y3NUJH5VZChXWmVIKCVsJmRKaX03KXZ3RigwUnR3cGI1dXI7CnpsfjREUE0wWjctXjIw
bDgoVHMqSm1sMkdLSmotUWhkJXokfEFVODtvbFQjUTcwaGdSZyFLRnklezFEbyojcn1xQAp6SHRv
UEs5eXFnWCVhUkJHbWJ1ZFZLQHdyJklaKmFHdHk9Q2I+WCVCZj1DYllFWns3YUZYQ084WTluUXdv
cnk5SEQKenMwPGYhNHdWN2czez1hMS1UTlBmKEUrTVEqVVlTdnpuMTUzQChVKmExeGUhUzVGR2tT
Tzdic3NqPl4lXnF+PztPCnpkUTw3ejVFWHh7V0ZDREArMy1qOylEZ0RXTjBpcks1MmxiTCZBTCNE
dWdXJjtIe2ZLeU9WbD4lJVo9JGpFPUx1VAp6K14kT0VKP0lUXyZsNHJfPTspVzVkJCRTdVEoJjYp
b3Q+KEV6Xjc1YjVrI1NZXmBZQUEmPHxHJW9vNm1LNXk2PHgKem4jJlhRSDswYVkzSitJKVApb0ll
U0pOb045cyV+cWo1TjszQHVTX35xQkk/Nz50aVpAbiMjKFFNaTkmO3RmRUZVCno3SW4mPjNnb2Iz
TUopR2FLMmx1byoqYHY+SF4yWFcrdlhqd0xIR0NYdDQoM0xOVFBSSz9ZZTY3IU89QG5SPTZQWgp6
ZDAhRm1oeSFEJD5wNDAqZTJyYSNTSFRBYzNvUUpTS3prJWg/eHpKdkdCUT8kRkUkeEk8PypmN2tE
NW80YF9iWk0KekdnVy1TT2diJVglPkdEQWchQnhLc19YQiFDQmAjd3tMSDR6X0ZEaW4/JD5NJHl3
YlFeWTVCVCpndV82b3pfYSQqCnpKM2cpSUtDeTc/PEV1SFhKbExFJiZNKFopal9Va283Qz15al4w
ezxAa3B2KnRKKWBWMmNyUyolWjFKfW9zO1NXVgp6JEBTJXYjV0J1bkdifilaWUBETT5mdUEyUFpo
S2E0M3p5PitfJjx9fF9IfHBRPSZsfC1iN1JyVzMhKno3OFE4WD0Kel9Rbk9KVVp4JXtSbUs5SWNv
fTlVNkwzQWpGJm9HXktGb2tMUkdBc1JrbUxUKkAxdndLaT0rNHl6JlcoQVplX1VMCnpJNnJ7e1kp
XiNaMEBoSnAzIXFrRD8zb3UmeFBwRmozM29COy16S2NgWngoJHdlO3l4dipQdVNZKT4zezdmeFRE
VAp6KypVdXgkWFowPkh8fDIzTWd7ZXMqOHo+PXckN2RvVypYVDZXMWs0KHJKaUh7PGJKKiltV3hr
MmFrZCUkSSgwRzkKek5KamliVElUQkBmfkRnfV52JmFVYVdfWUowKUJpblJ1VUQxWmIlenxKT1E8
by1nSyNyQjw2REFYNUAyd1U+YEJhCnpzUjQ/VjxDZjlGNzUhb1ZRc1FvelRKIyRnbEBeKGsoPnBe
d0V9TTR7MFFYfEhoe0lDdlMqZmlaSWlWMCVzRWtVMAp6PzFjeW4xazcwOXZtRks8Vkp9VW4wK3VL
MHh+bysxMl9XRl5ufFoofF82K0lVPF5+c31qdkd8bTZoTWNVWFBhe18KemUkfFEoaWp3fTl6NmpE
M0EjZ3FuS21feFMqKGYkNz8kYTVwdT5Vc1g+SzBDaih4M2RoMVI2YEVVVD8qOWF5dF5fCnpOVkJx
PUc0Tk9iUUV9N14weig3NzlMKEglZm49VWIlbHtldT5DQEA8TCp8dm9vKml7cCozKyotJHE/cT9K
VDtSWQp6OTEpZEwtUnshWnYwa0M0UG1TeHE2ezBKdWxjV3Z6OUVobEg5cihpPEpgQilLWkppLUlp
by0/dkp5YzM2YVVTfEUKelpsTHJlTk92a1Q7JW9KXmVpQVlqRWNxKWRpKTdRbE01e0E9Qz9VVGdx
eTxwUU82M3QmWW1mekQ9UFdvYyYxPig2CnpqTmFRI2NkUDlkOG9iVExrc25HWUFncGkxVWZQI1I1
e15JVVNUeldVJHEye31yLXFFbVE+bVhsbUl8WVpAXn5kJAp6cTZBUCZSQ0JMMnMwKnlnT1laUT5W
T3tfPXImZ0E1RTU2Uz1AWDluZTx1NFh+UC1CMHkhfDRsYT1ZYStyUGckJlMKejtITHxNX2NMRn5E
KTZ7IUwqWiZhUHRtdUR3JEdqLXpRfW5wO00qMGE1UXF2P1FsSDgzOERoUS0tZV81U0lYTnhPCnpY
QjVaWnFfcTAzT1poY3ckcFNwZUAwUnAtQyVpO31mQ1BVOVFtclpOZW0xQi1sK1NgVk83MUVydFVn
cTEpPW1Fdgp6dj9JODNpKyFDZ2shUGJuNWZOOGsrcTJzTD5nMi0xbzdaWUpGcVV1JjFvfVo0R0pi
NHRnSD1ub1laJl9MKjQ7OT0KemA5Nm14dFYmPFBBLURFUXZDP1h9VmBodjxvdGckMj5YSFFIbX1h
JHt1cDx2JWU4KG97Q0Z5c2RIUVYmIWBTWTVHCnpSc0Ftcl4kYnxQPDFyMkNINF9oS2R9VDxwKXQx
K2RLb19SUHZiN1FqblAmSGRnO2J4P2UtR21DR0Q4MDUmfTM7Jgp6SzZ6eWJPSTl6I1g7ZGE3Rj1M
PnEkQmk1SkE0eD5Qe3tAbk56U1ZDMXlaTjA5O2F3dSQ5IzkyWlI4V1h7KUg/WXQKeig7NzU9MEV6
TmpCQ2FDaXpScE43O0VOVFYhOGFLYS1gVXkqKChFbnAxZylOMldlV1F8SnI7PjJ0ZWd3Jk5NYGst
CnooMjM9LWZidzd7PTJzb2V2NDJARjFMOTZ3cSVIcn10ZEQhUTJUZjRwPHl9Nk1FUnVHQ1FiUVVY
VktLQ0l4ZztqIwp6diNeKCRyU2JJK25tT3ZgSUJvZDNxVi1HNnhNYUM+YntZVkd7eFNeJUJEUiYr
WT5TUGQ1ZyomYjJvT316ODdSZmkKenFhVH1MQXNuSl9eWjNTQkUrSXNUdE5TNEBWTl9PfnZke0VG
QX17Sn5VPHRGKUs+b0VnSik3SDhFKUc5KU9VPihpCnpScFhGRWw7dHBVcCpfR1RZI3BFQVMtNjVZ
LXFCaTk1cUZCZ05fPFNBX0JUVT9qdmxebTcwZ2gpS2w8QCt1WnFVfgp6Sis2T04hNHxOPDtvRi1r
a05BZ3QzVSN9MmRgJGdmNGhSOHRIU204Tkk+RHh5bSEzJVVfZ3hJbUJJcktQZkM2SC0KemZGIUdn
KFRacmhpZXFKRmlzMDU0c2Rse31sfjBHZ1JMZ3E5eWZ3VHdESCZFVjJoPiNKIXhIRDtKfUNYO3Fa
RF87Cnp4S0ZVXlpkcHIpbFEjJnV4MHsrVWJAI0ZIRDFnWiZtZWghVGU3cC1uWjxoOXkyM1ojKS0w
YE1GTDxtMSYlKUM4KQp6ZyZwKEpobEJyYVBmUEQ9dElpeik1ZjV8KE0hYk4+Rj9rVjg4S0p0WGho
NTdURn5CYUBVOTBHI0N7ZDtQJDBYKnUKekY8KGpfKE1VSGx7PHlXXlN8eTQjbE1SPnVaYVMySEBs
V2NUPHw0ZlJkOzRBSj1BaiF7a2tQWG87JXlQPmRXfVhSCnpXI0xPTTVmIWUzUUBQODZwa0Vjfjxu
cmwyJjI+TXomdEM/YVVGSXVuZG1kQSZKdk1rWlJKZ2hIUEpkMm5MRnhIVgp6WkJpfXAoZFJ7MW5q
RU8lckA8IXIrZjh+PVkwcU4xe0RGeEYkUDFmTFNgeDktTzApUDtfOTJtdGI0elpkeDBpemQKem9R
TX5DR05GTGJEWmJ8anVyQFZ4TCVjNGVkdlJeTnF5PDA8PEZYXjYkZ2t4UDRRSGM9R05xPz1Xejdv
WEtfYUJDCnpsPj9MZTNeZTwpQGRAdGFjdCl4Z3tfQFgyXzJ4fUFwV2BjSiM/TmxzWkdaPVFIMzVy
UTZEWD4raFYpZi1pUGRwLQp6eU9FRkhpeSZNYHA2a2N4NDZhYkdjNjxmP21xZGZiOUE0elM/ZV82
blBlYjAwZlpOPTxHa3Z8N0RCRzZIeEV0e0EKekIkVDlnWVNPQWFfWXtFO0sxViZjK0hWKCNJWVp4
VzVLLUo0dj84e1Qzd3FiN3NAfT1CRCpLN2NUb3M9QVVSJVUqCnorKSR2S0Rkb20we19nckVBOFJi
Pkxqa0dARjJIeEQzSXhtSE9NbiNAMDkoQHFBb2gxaFZGLSpKSnwrZTErVFljJAp6MGx5WXppaGUp
TT4peVE7KXRGNXkzNDxveyYjSjBaLXZpS2wlPExyZkJTQzVSUk9ZKHluUXJhekx6d1JVLTxPIygK
ejB4KTFLemhRRWtrb141SztQb3Q3NjBBJDg5aUx2X2ctdCRJSTVIS2VuTX5gVU9QOGBYZEFMLVkm
O31rY294UzFrCnorP213djJ6bVE/dSl3Pm9QK3Q9VStQTFdPMHwwd14ybnBgdVNsRnt7KEJCT3pz
PXZySEduTW4hb299aXIrQSNmOwp6NmFtbTRZWj5Mc0hPLXUjQ1J8QnZiazJ6RjlBO2NUQGFsOSY4
OVdeRG93NlMjR3NPU3dgJUVYa0tta0V7QjFueCkKejMzKnJAZE9mY2xveWFQNFBTMWltbHNULXdq
NDBqRnsoWkxCYm8tM1RHOXA1Rl9jeWZ7VTJUKytwWjI3QVJXY1RzCnpyS05JKVA5KnYzXiNHKEhz
Y3s+MlUoPz16QThsbzxsOWo4aTt0K3k8WV8qeUF4RlYlcEBZI0BXKz5tKzs7e1g5cwp6TS1iVWR0
cGFuQjJZNEElMU5XdHpifm9jUCt8QjVjQml8Z3F1ejQ+cHBXQXJ1dSN3Y2JmeXYzSklySFl9KEEk
TVMKeipNWXhXYFUqaG07KC0/QXArQDElMXl2eUlKYnJiJEZENTd8JGJOdjR4TUEkQ1dxTSM7SDdG
YilASnR4MFcmWkU9CnozWjNMVXdvQmFQeWFhQXw4RlYoeEdSaVgxKzJhRSpvTXxZSTZ4OHVgajBp
Z0pxfD1PQSEzRlNeSnQ5bFlnQFhPdwp6RWBXPzNORjNDKGxBWileU3Ywa1hyeF8lc1pNMyotJXoo
dDt6TCVsKElaKyRgPzA0S3h8TX1fOUQ4WVdueGhIK1QKemNiRzhHRD9pfX4pSWUtJXMyX2NiKH5T
czQyQUxoMERsWilaa2czJDVmVnNwQkoldEtFbDMydUZkNkooXntibGtWCnp5SiEjeTMtJSROVGo3
YVZLfHZkNkIjKC12ZXtsNlFGMzt9IT8mSVM9eztzNiRPZXY/eHU+NjFDZyVfN3xDKUJCSgp6dEB4
YypSeD5ucW83NGV9cm5RTUdwYCgxR2IhVWRVSnpLIWJyTzJCM1kzMyZoXkZUP3ZQaX1VMF56OWFK
PkMmYnwKejI7Ki1XPigxUkJzfFRWcl9MVylGeD0qflg0fVgyJD80X3gxIXZZfTBSUiRObzRLemcp
VGx4SyokbFhPKS0tV2c7Cno7UTIzb3FtWDtaZlJIRnxVQiN3LXReR04rcEVoKiNKKE1aSj1IdU0m
KlB2PEZYJl9JbzxPfTVLaWU5fSUhfSUqNQp6NW9NbXxEMn5lXyF7X1RkIyFPcCs1JjloQUxuNDBQ
MShHJCs8RUckMXRndSVkM2NZKklqYXw/bD16PT1IN2AlKUYKekc+K3twbmtvXj9ZfjM4a0p3KTZk
dj17RnNje2RlME5eWStGSjtlTTthOV4zczIqPVRiPiFxVz13NX16N2gqaiNECnp5ZGcqVzZ0PSUz
e0RCN1hkKkBUQ0deM3RmOGF8RTsrTWB9SCM2JjszeGVpRylScD5ZZkx6e1ppZ3AoNnskVX5XUAp6
MEoqXzwmfTV4TTMxWi1mSCpaYUlObktGWWpee2MmM0BqdXhDQXJAJjxzWHY9d1BHd2A2JmF4aTlN
Q3U4IVZ6YmUKekRvbU9+RC00PXVOUCpgYnBILU5rQiQkYXhRNkN4cFZGKzJ0OW9AYFFeVilNX3ht
Rlg8JkUmVEZYSlZlK3JOeCteCnpaRnIkX1lUYz9maSNyKXhNbEZ6ZkJTbFdrKE5CcClkUCR5LUB2
NmprTCVUV01GI2ZZWnRWWTVSYFZFQWUlKU5JQwp6LVN4UHNpKVQ2dEotYmZeR0lLIyVtMWNRamI+
MyFeM2dVNF8raGszVihYaV9PZXNQOXVWREJUQ3sjYVNIPXd0ZmMKekJUbmYwbl9tM1ojWTQjO1FY
QDZ9T1kwQHNrUjNraylUfDhTVlIpbGliV31QXnlJS2xtV0lFJFdYNj44WC0pbClTCnpFK0J8ZE5L
RE0wRnU7UnBJdm1ZJClJVDVOWG5QWU9idDE5PGl1U3tETDZDYzZaZyUjPWE8amFzTjBYbk85cUZ2
Mgp6ZX5vXkZrbE1tYyQ2RWZiRHd+Qyo2K2ZzMCV5Xz5CPlIhNy0xP3s/JG8qeiR7Xj1OU2pLUEV9
PVB9REZZMU1QV1AKens8Jn1PQ3E0UkIwJDJuQVNPJTs0Yko4QlFFXlJzeHQ+U3xKJmQ5aGFZRmE4
VEpYVS05YHt+bj1nVH0lZU1iX0BGCnpSO0FZKGF7TCNQcTFBLSNlKjAtVVgqZ2lDKCE1filiaVRq
NCFmRU89WXFaIWVINGlGdG5Ha1BmdTRpblc9cFM2Vwp6LTY5dFdPSlJrVUEyN2IjQ3AtcGpXbTBi
U3lAYzR+d3otY3VwOCVGOFhDTUhqNjJeJWRyMGBmNDRsc1d6NSs0U2MKek9hQTQkU3N6P0RoMFFD
d2B2dj1taF5wLWB6c2tLIWdjZz88KUo9byFPTDVCSnJyZDJNJDFhXnlpYU0pRU15UGM5Cno+QjhU
SHRMcTg+Z3FlUiZHNzk8QihLOVZ5ZCNDckVRKGAla0RtXkV6TCtLQGE2c3JUWkFHZHA/VkB7Tlpw
SkFUYwp6UUZkZ1hBVTEpcnxHMzVIN25gJG4heWErK3g1KGRUc3RULVBnOyRlfTRDd3h7LV5nWDJw
N25rS2p+bEBIaXt8SkwKentjRSlYa1M5WDdCbj1TYWg0T1dZSD5gVjteWSZLTDdASlhJJlBFRER6
RWAkY2ZMN1BQJFR8diVaRERpJF5QVns5CnoqWE0wc3dxZVg8PCR+TH5AO3dRQChpe1M5Mn1ae1o5
UTd9O2JaPkJlRmR5N2E+RUdaeyp9WCRDU04kJksjNX4lKgp6b1ZmUkVzY2x0MjF8SHkoYW5vdlJL
UU8kcDA5WFc+VzdyTVQxLUQ/SWZnM3RNYiR+M3VEaHBDfGZiUXZKalZpVmYKeiRFVUdkMUtmUmhV
QSt4Kjc9diQpNmteXndKMnpefTZXc3t5Nk43KkB1dEpCUzZScSk0a2Awc0FsU2I2VXI8MDxHCnpI
MU40T1pXfGdkYiorSz0rZHV3NyFhXiM1dzI0Rmk3RTdzMiV5MzVmcE04VlNPTGgzQm5EXz1fQj9F
PGFiQHZAdwp6cXZDdlY7TkU7Tz9qM1ZPMj0lRCR2OylSSnNqSEU1KEgyYW5fZzRAflNJX3dMY3Up
cSttYl5LOHcrX1l5UndAWk8KemYyXipGYFdrJWd0dERYRSQlQD5Ub2wzbUllVTliaGY0OyhqSVQ5
ez1VOFcqTHtwNlZYNz9qPDUyJU43a3YmfUskCnpPI2o8b0ZoZi1Be3orUms8KlNNKyNicEl2V0lL
KVNtUStUPSt4KU9YK20lSjJZekchMV9yYShjMXw7Kn5naDkhaAp6THxEKE1obipoPUI1fnJZNngz
PThqcztrNGA1NEZXaDlDUzFXTShNMFl6Xj9uaVFMYGVVciMpPDZMO3dVbjd2eEcKemdqdX18Sj45
S3cpeGdUeCZEdjtEWHQ7Qmp4TDlRaj9JMjk2LS1mQU4jKVNmbEBCTGxwLSFiXnRRckMyTCRoazI7
CnozbzYxQFVfKSl8XmpfN2JgKEU9SVJHTzYqd2RMSFElXmV9MERhMVN0UXJ8WXF1ZiszRE0lPk0q
PGNfQGBDNns3Vwp6fE1+cTJFVzA1Wm8zWkR9VE1mZlBFTWZ1MTJFU3V6bmlYKlowO3JnZVd5V3Ax
X35nNEJFVytza3ZuUndGViF4bU0KejNFZlVXK0BHYFlKP2JWYSpLMFY+PGIhVihPPGk0azJNSjM0
a1FrbUlZaDBjRXtmcXhEdzNjJW5VKyhMblk/JDhXCnorYnVpQ3o9K1ZDemFpMyVATF5mWSNINUs7
ek1aeWhKX0woQmZSazQ/USh+Plh7bVlHTD9qIyklVlJFKG5MJTE0QAp6PVVhNGlhO1ZBOSlCey1Y
I0QkN2VWTkQzfWZ9eSsoPnFlbk1xO2N1K3JuZFQ7WlU0P1lJP0ohXzYpJV96TXRLfFUKekt8WHUl
VFojSylqO359eG5nWGlHcV5Kenwqb2wzPm5KcHRwclI+MmUzTyhFfDthOD54YyNqenllfjhOMXds
aSRfCnpyX1YwN1dvZDFASjhke3swcCVUNjRTMTh6c2lEaWRxMnw5cSRWOUBVNjYrQm4zZWBTO2RC
OVReazkzUnJeME9OJQp6elAyUW0yV2c1b3pLSF83bGkzKiFpWnBGMz0mTW08ayNjTUlBOGBtcHZ1
R1dVcUQkKVQlJDdlaCFJSiFjRyFZOVIKem5rYEZLczd6M1kkX3VKaWVVbnRkZC1iO0BIUHN8b2gj
OEFPLTJDISFDZUVeRipRVEx1eGArNj5fdnRNTEdkY2tlCnpNeXZAT0w2M1E0eH1+USszPXM3OU9o
K2JMeFV0Vm41RU9XcjBxNmpHeWtRYHE2eCo5ZEs7TFZVRkZaZHZgRDVxKwp6QyprciFQblhOTDY4
NkFHUHBJVjtDUkxOaWV1JG5BTWl6RXJTZHh9NURPb0JVYGR5RCNiSnVNM3U3KlV1RS0jTVQKemBV
ck82ajRxQilIczZoOEg3IXBTMjlrKTBXaWJEXzlOOSRtPUEyUnxuQXxAUU1GeXlKZnJII2xyYkIy
WCliYX4pCno+cmlAT0RGbCRmJWwhcXkwc01wKWRCRTlPSytkWkYrQm8hMnNDMVM1UHxlWDJxNnEy
VFk5VDtEJilaS0I/NiZqJQp6UGZKWFcqR0tvJUMyQClLQWpAa3N5d2lTVUY2UD58VjQoOzgybjVO
S1MmVT9xWWIyQmpMNl9XZztpeGI4R1Q8PTAKeiRoKXNgYV8lZEtxblVwSGN+eWomZ29ZamAlPX1z
bSFlP1VKSV8yN0smWUB3U2dZVUV0OHRlcTBFIXwjfjRWX1lfCnoyP0lLQ2krUVNHZzQqfTc1bHBY
TUQ2fHFzQHJIQmBfZyNPLUlyUmEpbzRqNHg2NTghbl9PJVAjZX0lWnZMZSU+Pgp6Pmc4NXspNTVv
dSVXcG9LdEdZZElFSlE+YjJeWU5OK1ZtRXMoeiZFKmNBWDdOZn1jY0lkYFZwSHtwQldveCRwJD8K
ektKalBoLUkzPD5OcUozcDNoUUB4WSZDWSlEKGQkN00hYVVqemM4aHRCWmZAN2N+PHElNGs5ZTso
T0p4ajcjUDMzCnpPR2woekYkRktKYWc0e0ZPMl5BLTVQMH5rZUA/blBLcXJOK2hyMTc3LSVSZF5Z
I2VVNHlAJWZvQGtuXkFnU3JhJQp6QlNIdSpJbkFpOVMrYEw/ezlWWTBDJEBXTUY2bnkoRUNhfHpo
S3ZnSTMrYjBxVWJzNjlmQTdGO09HbVhVQ2FyLWYKenhjQXomR3lhPlI4RHF1YSNWQlRVUX58Wl9u
Y31lQWZLZ2I+dWF+NWZjTXspVThzWGxyVGNZUlhvR2NxfUBhdm5YCnp4WnFHXkRFd3BmZWYhbjZt
U3h4TThIbmAkQyRufl87fTZNIWlTVkFKO0JeYj5vQkFOM1hUc3FRZ15RNlBoZCNxZgp6eVZha0hP
WVozUilKenM5YTxpcGZGLTYqITElKF45T0J7eCVBaXJUUlVAWXpmZGVpWmNvM3JHa1RGJF9SQWdp
dTQKejROd3dYeV9KPjNhJVgre05wa25JZyk9aVZ6ZllFbEVSTFMqUHxfZG5iISVhYzRkXjhVPDhB
SzxkM1N4P0NZbWJ0CnopfEJDe087bXtVejlqMmB7b1AtST4oIWpoLSshVlUxfUhtUDhtc3J6dFVY
eG1lTlVQQnVYVGVDcDR7OGBGYXtLSQp6QjVvbUI4e2t5M0UrfWRARCk/Uzs4a01tKzA9WlY2YGBq
XiREak9KM3dzeEI5eXVqN00/QURtaHp8LX1EdDk/NTMKelUlNEx3M2dDVk03OXJPUnEjMmdrVWt7
QzMzeighOEdJTGlyVmpucF9KMVJ3bUxlM3dGMXNyUyE5V20/TlhYaExoCnotOEM0UG54R1RmKSEq
a2dWM3htS14tVHNMWi00RnRQNTJuUWM/Pi1gY1hkWjZDeHFDdGptaFFqRz49PEZkPlNUeQp6aGFR
Til1WVVpeUpQMkBkYlNCNE1VcHdgOVdPISVVYz83bSM4PHUrfV5nQGJvd0RFJkBWYGZCbExvUiFq
dEZhITcKejxMXyNzaWJueD08aXlLcWdgeDg0TTNeeitmfVhhNUN4cyFCTlRLSGdBKkNXOExNXmY7
V01aZShFKSZNfmY+N0xACnp4OT5BSCp2VDJBay17KEkzcns3Ykcmbk9NKUI+dSpBPTtjMTxNVlF1
Pno4c0ROZEtwOUYydGd1KEA7e2FxVl82awp6IzlMMkJpfT9gMWJLQSZ1SVBPMjRVej4oRU8/NE5K
JkpgbWR0eWZOU1NmYW1jTyZnekItYn51UWFkYnFBJGkybUgKencrTi1IKlUhNj5ONVpaZDUrPHl+
ZFZ4fVlPczQmJjYoMSsmeUVYKkBvOEhKPHF3OVBnP2FhJllidTY0cnZkR1l+CnpBTTA2KUBkISlL
P3IxU2EjOTt6dmZDRGtMUjNFSjc/OUI0SVkpISlKTzRLNFdQfGdBc0xiNnV4c1Q9JjlWbV9UfQp6
KFZ0a01VUC1eOD0zQ3FgazZuR3pCdExIMDV4M1IkeGJocVAoNnU8P202PDBVPUdGS3xtKyh0d2Vx
d1c5O31HJEgKei1xdVY2a054PXA2ViNLWnZwdWV5Vmk+TXc2dz5sd3ItdHozZ210az1TNGFBO0hN
TVJkdTBMUj1ufHhIfTttJDUhCnpmfCUpdlI9cUdKN1k4ISRYT3hlJUBAMkk/bDUpVHhIJWJkPSl+
WDhPPkAyOCNldH5GQiUyZjUkbk9WfmBIKG17TQp6Ni1FYz1KbTlKOz07KE1ySHRlYHc8ISV3eDhF
Zms+SzhwcUdgU3Y0Uzt+ZSoqI1BlSFBeTW9ieGBYUypFaihULUEKel9VZ2ckTzJxYGZNcSFxJnk0
XiFjX1Y+MXolRTduO2cqeWt8U3puKHJOTytMTkVYaFIwXkA1PFBJUnd7Tlp1U21CCnpgfD9ZcEMy
XkgqPGV3TUkjM1pkU3pZTCMhIT4+UlRSKUB8ciUocER0R1BZfH52KSorUng/Nz57SExYI05qIUx3
UQp6KEImO3ZUUHNHX3MoRWghezxgalVGbDkoZjNGNDZCS0AlcT1mNm1gTHhaZ2RMeHQqPmctfjJD
SiFoYjx6I1Z5SG4KelBYKXlwT2BJNl5BNW9VR0YhP3UyTmxzcF87ciN5WStFTXJFNm4teWs0fFE+
UjZCRXVSPD4lNyY9dSluWmZwUjY4CnpiMVFKSXJsKGo8dTtrcng3QGxrU096JDVWTjlYRCszcCQx
NyRDRW01VFpBYHhSP2YkRnlsLXo/KHBSTikhQz8pcAp6QzJNcitrI2J7eTs9YT5jdHI5ZkZRSEdG
RnNxNHlAWTl3QjFgbGNLfWxBe2pBWUkzbDJaKjw7RCtyV18pIUU3OFAKemp5I3JxaXp6PiZsV0w5
c2dmcTBiaG40WEpaMDRePzFuO3BQTW9OUEIjWntgVVo1WC1reEx5K3RVV2k8fHhLRiNrCnpZK0d6
WTJlYlZjX2o2TnUoRH13Knoxbmp1K316PypIVDl8e21LSSRPWj12PypLRX1GUU0pLWtvejgwYz0/
UV5OOAp6WXZjanotJC1eMFV1fShhSGR2cCY1U15hKylYRFh9PCR9SmFaUnlGKXR6OHhvST0lRkx7
eSVqPDFIcTJMVGRVQGMKejN2UmZxeX0jRGhrQiRHZzNmcHRCVWtzfl5LYU84d257bSlFMERFRHti
QUYwe15DNy04PkdYandiPktHZGVYfGdeCnp3NnRfZS1AMWxsNmwta3N4ZlRzMHB4MHZCeFV8S3h3
P3VAY1Z9MFRjVTJSR0tYdTdoOUk2WV5SU1QhX2lMN0Embwp6SFdVVyVvWlY0SzdqfGM1cCNIT301
KCl6ez1Ca2R5eSQ/SUVIXz5pNXIrTj5XSiRRSXp3V3ozVWREJVlQO28tdm4KemU7SXt8JClkWmwq
eWF4bG9KKjRoOCRoeXFuTC0yZDt3fXR8M0wwS2I1ZUI1UTZ8VT1EREJqRGUkdldwSWctK08pCnpT
cWxOPSEjQ31afE13KUZ3Qyk+YU4xK1hXZ2xyKj15YnptITkkSGVCN0JILTx0amVJWW5oYHUpc0M2
UEg5R0RTTQp6eUkwSCREfWV3VyMtUmBWZmcpOXh2TFc0LTNPbDE9YndjayFgWklNKV4ofXU7QnBo
YndoUU1EQTZDamxUbFpqRFMKelpQYTw7aH5HIyZWKGBFSF5iTSo5OGJOdn5aJWZeT3FoYTNgXmBQ
SkV4a21WU0FIR2A2KnY8T0MyXzV6I1JRdkFACm1HRUkmQ2R2TD0tX3kydD5NKCtGMVNGQlI7Q1Z2
NEJuK2ktKnNhRFl7OyhxfHtGP0VVbgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg2MTViZTUwMGFiN2U5Njg5
ZDIzZWVmZWVjMWNmYzZjNDA5NDAyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMKQEAg
LTAsMCArMSw3NyBAQAorInVzZSBzdHJpY3QiOworKGZ1bmN0aW9uKCkgeworICB2YXIgbnVtRmFp
bHVyZXMgPSAwOworICB2YXIgcmVzdWx0c0xpc3QgPSBudWxsOworICB2YXIgcmVzdWx0TnVtID0g
MTsKKworICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0UnVu
bmVyOworICB9CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAvLyBUdXJuIG9mZiBjb25zb2xlIG1lc3NhZ2VzIGJl
Y2F1c2UgZm9yIHRoZSBXZWJHTCB0ZXN0cyB0aGV5IGFyZQorICAgIC8vIEdQVSBjYXBhYmlsaXR5
IGRlcGVuZGVudC4KKyAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAg
ICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9OworICB9CisKKworICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2Vi
R0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKKyAgfQorCisgIHZhciBsaXN0ID0gZnVu
Y3Rpb24obXNnLCBjb2xvcikgeworICAgIGlmICghcmVzdWx0c0xpc3QpIHsKKyAgICAgIHJlc3Vs
dHNMaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidWwiKTsKKyAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5hcHBlbmRDaGlsZChyZXN1bHRzTGlzdCk7CisgICAgfQor
CisgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIGl0ZW0u
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7CisgICAgaWYgKGNvbG9y
KSB7CisgICAgICBpdGVtLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgfQorCisgICAgcmVzdWx0
c0xpc3QuYXBwZW5kQ2hpbGQoaXRlbSk7CisgIH0KKworICB2YXIgbG9nID0gZnVuY3Rpb24obXNn
LCBjb2xvcikgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7CisgICAg
aWYgKGNvbG9yKSB7CisgICAgICBkaXYuc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICB9CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFwcGVuZENoaWxkKGRpdik7CisgIH07
CisKKyAgd2luZG93LndlYmdsVGVzdEhhcm5lc3MgPSB7CisgICAgcmVwb3J0UmVzdWx0czogZnVu
Y3Rpb24odXJsLCBzdWNjZXNzLCBtc2cpIHsKKyAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAg
IGxpc3QoYFsgJHtyZXN1bHROdW19OiBQQVNTIF0gJHttc2d9YCwgImdyZWVuIik7CisgICAgICB9
IGVsc2UgeworICAgICAgICBsaXN0KGBbICR7cmVzdWx0TnVtfTogRkFJTCBdICR7bXNnfWAsICJy
ZWQiKTsKKyAgICAgICAgKytudW1GYWlsdXJlczsKKyAgICAgIH0KKworICAgICAgKytyZXN1bHRO
dW07CisgICAgfSwKKworICAgIG5vdGlmeUZpbmlzaGVkOiBmdW5jdGlvbih1cmwpIHsKKyAgICAg
IHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIik7CisgICAgICBp
ZiAobnVtRmFpbHVyZXMgPiAwKSB7CisgICAgICAgIGxvZyhgWyBGQUlMIF0gJHtudW1GYWlsdXJl
c30gZmFpbHVyZXMgcmVwb3J0ZWRgLCAicmVkIik7CisgICAgICB9IGVsc2UgeworICAgICAgICBy
ZXN1bHRzTGlzdC5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgaWZyYW1lLmlubmVySFRNTCA9ICIi
OworICAgICAgICBsb2coIlsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQiLCAiZ3JlZW4iKTsKKyAg
ICAgIH0KKworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICB9CisgICAgfSwKKyAg
fQorfSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGUwNTM0ZGU2N2JiN2UzMTNkZDI5ZjNmNzlmZjhiOTI4OWI1MjI0ZjIuLmRjMDZi
MTU4Yzg5YWE5NDFkZjEyNGJmOWExYjJiNTM5ZmYwNmI4YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA0MSw4ICsyMDQxLDYgQEAg
aHR0cC90ZXN0cy9taXNjL2xhcmdlLWpzLXByb2dyYW0ucHkgWyBTa2lwIF0gIyBUaW1lb3V0CiBo
dHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5weSBbIEZhaWx1cmUgXQogaHR0
cC90ZXN0cy9taXNjL3dlYnRpbWluZy10d28tcmVkaXJlY3RzLnB5IFsgRmFpbHVyZSBdCiBodHRw
L3Rlc3RzL3BlcmZvcm1hbmNlL3BhaW50LXRpbWluZy9wZXJmb3JtYW5jZS1wYWludC10aW1pbmct
ZmNwLWFmdGVyLXZpc3VhbGx5LW5vbi1lbXB0eS1mb3Itc3R5bGUuaHRtbCBbIFRpbWVvdXQgXQot
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBbIEZh
aWx1cmUgXQotaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIFsg
RmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC93ZWItc29ja2V0LWxvYWRzLWNhcHR1cmVk
LWluLXBlci1wYWdlLWRvbWFpbnMuaHRtbCBbIFNraXAgXSAjIENyYXNoIGJ5IGFzc2VydGlvbiBm
YWlsdXJlCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFs
bG93LWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvY2h1bmtlZC1wcm9ncmVzcy1ldmVudC1leHBlY3RlZExlbmd0aC5odG1sIFsg
RmFpbHVyZSBUaW1lb3V0IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJs
LWFmdGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU4NzM0M2QzMTQ1Y2Qw
ZWVjZjU1Nzc1ZDM1YWU1MjY2YWVhYTMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3Np
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
CisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbAorWyBQQVNTIF0gQWxsIHRl
c3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3MzAyZDNiZmJkMDJjOWY3ODUyMzJkYmQxODk4MTU3Yjk3MzU2
NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRl
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5o
dG1sIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52
YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVh
ZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkOGMzMmRlYTZhZWI5YTVkNjRiNDNkYWZmMmMzNTJkOTczNDhiZWQxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
Ci0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKLVsgUEFTUyBdIEFsbCB0
ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmY2YWJkOGE5ZjE2MDkzMGMzYzAz
NGQ3ZTA0MTQ0ZmQyNDJlZjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA
Ci08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFkQXJncy5odG1sPC90aXRs
ZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwi
Pi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgot
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwiIHdpZHRoPSI4MDAi
IGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNjYjJl
NDI2MTAyNWZiNjY5MTZhM2Q0ZTM1MzJmMDJlZTI1YTA4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmI3ZTYwMmM2MjRiZTQxNWJiZmY0NWJlYzIxNDYyNjI0Mjk0ZjQ1OC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgdGV4SW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1s
PC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJE
SFRNTC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZDFhOTAyMGJkNmQ2MzBhYzQyYWRmODk0MDljMDgyMDc4
YjFjNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1h
Z2UyREhUTUwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwu
aHRtbAotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgy
YTFmZjM4OTI0NTQyMGE4MDY4MjQ5OGYzMDY3ZGZlYjRjNjNhY2YuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJ
VCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleFN1Yklt
YWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDwvYT4K
LTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3Rv
XzAwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MWY0YzAxNjlkMjAzNTE3ODdkZTk5Y2ZjNmRjMDkyMzliZjI1MWM2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCitb
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDFfdG9fMDA4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUxM2Q2N2U5ZGJmNGIzYmMxZDlkODJhMDFlNDBl
NjYwODAzMDZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMDFfdG9fMDA4Lmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAx
X3RvXzAwOC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw8L2E+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgu
aHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAx
Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmQ5
OTAzMGE3YmJlYTE5NWQ3MTk5MDZhOTBjMjQ1NjY2MjRkNjE2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDA5X3RvXzAxNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlf
dG9fMDE2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRkOTAzZWZlZmQyZTU3NjkwMWExMDU1ZDQwNTBjMTVk
MzE1MzgzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMDlfdG9fMDE2Lmh0bWw8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3Rv
XzAxNi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw8L2E+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wMTdfdG9fMDI0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTBmMTM5
YTBmMDVmMWMyZDU2NzhhYTAwMzNkZjFmMDk5YzNjMzJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3
X3RvXzAyNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9f
MDI0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDIwM2VmOGFhODk4OTgyZTJiMGU0NjE2ODMxZDkyNDY5YzUy
NWI0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMTdfdG9fMDI0Lmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAy
NC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGVhNzM3YTFl
N2IyZDI5NGM1YzY3ZWMyNmU3NjlkZjlhMzNkNzY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3Rv
XzAzMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCitbIFBBU1MgXSBB
bGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWQ4MDI1NWMyNTZiYzM3MWJiZTY3YmNlODZjNThhM2Q3NGU2ODVi
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29u
Zm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMjVfdG9fMDMyLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5o
dG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJh
bWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMzNfdG9fMDQwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWI5ZTkyNjdjMDM3
NGZiY2E2MzBmODhjNGUxZGM1ZWM1Yjc0YzhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0
MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzM1ZDY1YThlYzMwYmIyZjE3MmIxNzJjNDMwODI1NzUwOWY3MDU0ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMzNfdG9fMDQwLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1s
Ij4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNDFfdG9fMDQ4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGYyNDM0MWNhNjJiMDNj
YzdkNTdkOWFiOTljZDRhOTJiM2JmYmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCitbIFBBU1MgXSBBbGwgdGVz
dHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDE2OWU5ZDhkZjJkYjdlZTA3MTBlNWY2YmM3YTYwODc5ZTU5OTc5OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sIj4u
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgor
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wNDlfdG9fMDU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjA4NTU2OGE4ZDQ0NzFmMTY4
YTc4Nzc3YjU2ZjI3MTczYTYzMjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMg
cGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGY5NzgzNzkwMzU1Mjc4OWY5YTBiYzRmNTJiMWM4MWI5N2U4YThmNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBidWlsZF8wNDlfdG9fMDU2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sIj4uLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NTdfdG9fMDY0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDE5YWExOGVmNzkwYWVlYjdiMTIw
NTc3YTA0ZGM1ZTViM2ZmNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzZhZDFlNjFhMDk3ZDQ1NTY4MTVjOTUyZTE4ZWQ3YmUwMjQ0NTUzNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3Jt
YW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciBidWlsZF8wNTdfdG9fMDY0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sIj4uLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbCIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVf
dG9fMDcyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTU2MzY2MTUzODNhNDFhZWU5MGQxOTI1
ZTAyZDliZTlhN2ZlODc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTQwZmNiN2VjYTBlMTJkZWE5ODA3Y2QzYzljYjhiZDVmZjliZThlMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA2NV90b18wNzIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBp
cyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5j
ZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBX
cmFwcGVyIGZvciBidWlsZF8wNjVfdG9fMDcyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sIj4uLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0
PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9f
MDgwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWYyYjdlZWNkNWU5ODc2ZDM4MzgxMGM3OWY0
OGU1ZTI5MGVkMDJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjAyNzczNzVkYzQ3MDNiYTU5MWE3ZTIyNmFjYjkwZjVjYjFjYzYwMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA3M190b18wODAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciBidWlsZF8wNzNfdG9fMDgwLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sIj4uLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNzNfdG9fMDgwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODQzOTZmMmU3NjkwMzg0NTdiZGNmMWU5NTQxYzA5
MWFjYTRkNTRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I5
YWJhYzM0ZmFmYTlkMTY1YWNiOTI5MDRmOTg3NGE3ZTgzZWZlZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA4MV90b18wODguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0
cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVy
IGZvciBidWlsZF8wODFfdG9fMDg4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEg
aHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sIj4uLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wODFfdG9fMDg4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjY4N2YwZTA0M2E1MjJiNDE0YTEyOWM5NjYxZDIwZGIx
MWRiYjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDg5X3RvXzA5Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODlfdG9fMDk2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJlNTJh
OGNjNTY2ZWZkODczZDY2ZjUwMGU0YTY1ZGU3MjBmMTYyNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4
OV90b18wOTYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4g
RE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZv
ciBidWlsZF8wODlfdG9fMDk2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJl
Zj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
ODlfdG9fMDk2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MWRkYjI1M2JkZjEyMDA3ZTIwMjIwZTY5YzA2YjIwMmRkM2Iz
ZGZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDk3X3RvXzEwNC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wOTdfdG9fMTA0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA3ZTRjMTk5
ODQ2M2UwMTUwMTE5YzRiMmZjZmQyZTRiZjIxODhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190
b18xMDQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBi
dWlsZF8wOTdfdG9fMTA0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdf
dG9fMTA0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZy
YW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNDVjZWVjYTdmNTY3ZmFiOGYzOTg0YzI4ZmQ1ZDBiYWZhYTMzNDU1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTA1X3RvXzExMi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MDVfdG9fMTEyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQxNDE2Mzc5NDQ0
MTk4NTAyZDE2YzhmZTdkZmEzZWU2MzFlMDUxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18x
MTIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9U
IEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWls
ZF8xMDVfdG9fMTEyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9f
MTEyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEwNV90b18xMTIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZmNkZTE2ODU5ZTI3ZGNjYmM4MzY4YWY2MTI2MzIwMTRkNjc4ZTE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEz
X3RvXzEyMC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNf
dG9fMTIwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiNTI0NjEyZTc1M2Q2
MGNiZTcyYzM5YmQ3MzMwM2ZiNmY4NTQ1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVE
SVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8x
MTNfdG9fMTIwLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIw
Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzExM190b18xMjAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNzI1ZmYyYjUzYmM5NGEzYzhiZWQyYjlkZGYyZDQ2ZmExODFjNDgyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3Rv
XzEyOC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9f
MTI4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUwZTkxYTFiNjMyNDdhMTcw
NzA1MzZiMTBiYjA5ODQ2ZjRhZDQ2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMjFf
dG9fMTI4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0
bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEyMV90b18xMjguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDIzZDZiYTA1MDFiYzY4NjViZmM2ZGM2ODNiN2E4YjFmYTFlMGYwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEz
Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI5YWY3ZTg1MzI0MTZlMDkzOGRi
ZjNmOGU4MjExZGExMzg2MDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMjlfdG9f
MTM2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTI5X3RvXzEzNi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWw8
L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEy
OV90b18xMzYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTM3X3RvXzE0NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iY2RlNjZhMDNlYjEyMjcxM2I4OWQ1ZDExYTIyNTRlODIxODdkYmZjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5o
dG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xMzdfdG9fMTQ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAzYTIwMTI2MTYzZjQ4YjQzZWMyZTc1
NjIzMTA3M2NiYTAzZjIyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMzdfdG9fMTQ0
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTM3X3RvXzE0NC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw8L2E+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190
b18xNDQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1
X3RvXzE1Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yOTRkYTYxYTM3NjUzNjkxN2UyYWNhYmU5ZmFjMmI4ZjUwYjM2ZDExCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1s
CitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xNDVfdG9fMTUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM2ZjlhYmI4ZDcwNjE1ZWY4Nzg4ZmE3ODAz
NjIzY2ExOWE3M2Y3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbApAQCAtMCww
ICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNDVfdG9fMTUyLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTQ1X3RvXzE1Mi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw8L2E+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18x
NTIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3Rv
XzE2MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MmQwZDViNzYyNjdlNzNlM2NjNTBiYzUwNzI5MDk4NjQ3MjQzZGRlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCitb
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NTNfdG9fMTYwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhZWE4YWVhMTcyOWEyMWZlZGFhMDQzZTZlYzI4
ZWM5MDNlMzE3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNTNfdG9fMTYwLmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUz
X3RvXzE2MC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw8L2E+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAu
aHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2
OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Mzhj
OWZmOWMyYzMwOWY2YTExZDQ3N2JiZGM0NjdlNjIzMjgwMzkxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTYxX3RvXzE2OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFf
dG9fMTY4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYzZjg0YmU1MzcyZjllNThiYjYwOGI1YjZkYmQzN2Fk
YzE2NGZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNjFfdG9fMTY4Lmh0bWw8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3Rv
XzE2OC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw8L2E+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGIzNWYx
MWM0OWRmN2VlMGY0M2Y2NTViZDc3ZmE1ODJlYWM5ZjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5
X3RvXzE3Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9f
MTc2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhMzE1NWQ2NjliMTJjMWZmZGM4YmQ4ZWI4YTcwNzVmYjU5
NWM3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNjlfdG9fMTc2Lmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3
Ni5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNzdfdG9fMTc4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDhkOWEwMjQ3
N2RkNmZhZjk5MDFmM2VkNjY0ZGQyOTQzMTc5NjEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3Rv
XzE3OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCitbIFBBU1MgXSBB
bGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTVkMTY2ODExNjM0MGZiZDA1NWFjYzAwNjc4NjAzMzgyNWU0NTJk
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29u
Zm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNzdfdG9fMTc4Lmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5o
dG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJh
bWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0
aC1zY2lzc29yLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29y
LXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMmY4NjIxYjM3Y2E5NWMyMzRmMzgzMWVh
ZTIwNjYzOTFjMTRlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNj
aXNzb3ItdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29y
LXRlc3QuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJh
bWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Np
c3Nvci10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFjY2FiMDRjMDJmNWEyOGNkZDI4NmM3NmFkMDBl
ZjcyNjYxYWNlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nv
ci10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5l
cmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERP
IE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Ig
Y2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sPC90aXRsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4K
K1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10
ZXN0Lmh0bWwiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0
bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZy
YW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3Jl
bmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVm
ZmVyLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFz
ZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU0OTE3
ZThkZDA3OWYyNDBlY2VjOGI3ZmUwZDllNjkyNWJlMTY3MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNo
b3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmlu
Zy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJl
c29sdXRpb24uaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hv
dWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2st
c2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI5MTc2OTM1MWVjYzM4YzIwOGM1ODIxZGI3ZTkwZjg3OWEzYTc4NjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9yZW5k
ZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZl
ci1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZl
ci1yZXNvbHV0aW9uLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hv
dWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sIj4u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcv
Y29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNv
bHV0aW9uLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1t
YXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24u
aHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJs
ZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjRjNzc4YTAwNzcyYTE5ZTRmZjMzNWEwNGZiYWU1Y2Y1NzBkZDFm
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBw
YXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJs
ZS1yZW5kZXJhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4OTllYjk1NTAwMmM0MmJiZTQwZjNhYmJm
YjA2NzcxYzRkNTE1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJ
VCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGZvcm1hdC1m
aWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCI+Li4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI5Y2I0MmFkZWRiOTZhMDkxNTgwMWRkM2UwZDU3NTI1NGQzZGYxYmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2UuaHRtbAotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGEwNGQ3OTYxNjUyODVlYzFmYmNiODFmZGY3ZDJhMmI1Y2QwNzJlMjYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkMGE1MTNjY2VmYTBkNTdiOTQ3NWM3MjZjM2E1Y2U3ZDUxMDFlOWRiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIj4uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvYT4KLTxkaXYgaWQ9
ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
LTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2M1OGY4N2M0NWE2MDZjMzYwNDhmNTNhZDc0
YzkzMDdjYzg2Y2EzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA
Ci08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRt
bDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sPC9hPgot
PGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4K
LTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFn
ZS10eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2ZhZTBkOWVjNDIxZGZmMjc5NjFkN2IyN2JiNjkzZjA1OGM0Y2VlYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5n
LWltYWdlLXR5cGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5z
IHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFT
UyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMjU1OWJlMDkzNmM0Y2Y0ZjM1YmMzNGYzMTRjNDQyOTkxNmE2NTM1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciBwbmctaW1hZ2UtdHlwZXMuaHRtbDwvdGl0bGU+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+
CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIj4uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3Bu
Zy1pbWFnZS10eXBlcy5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9p
ZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9jYW52YXMv
dG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkOGU4NmJkN2JiMjhlOTVjMDJiZjc5Njg1ZmZlYzYw
N2U3YmRjMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11
cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0
cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZjI1YTQxNTkxZjcwZDM4OTAyNmQ2ZmFhODViYjVhMDE1NmIxZGMz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
Y2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRl
LXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBD
b25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5o
dG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRt
bD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sP3dlYmdsVmVy
c2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0
ZXItY29tcG9zaXRlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ4MGE0NGI4OTQ2
Y2Q1NmM4NzIzNmYxZGYyMGVlZjVkYThlZWM5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yCi1bIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3Mu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMxYWU4NzFhZDFjMjVlOWZlZDA0
NmVlMmViMTQ0NmZhOTg2NjZkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0
bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1s
P3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVy
c2lvbj0yPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFk
UGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYw
MCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMzY3ZDFkZDU0NGYwZTg2
OTU3MGZlYmUyZmQwZDNmYjQwMWQ4ZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3Nl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQyOGY1YWQxOWViYmM2ZGVjNDRmNTJiZmE0ZTU1NjI4ZTJjNzdm
YWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNl
LXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdy
YXBwZXIgZm9yIHRleEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJl
Zj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+
Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249
MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjOGQ1Njc3OTRiZmQ5YjE1NDEwMTYzYWFhM2ZjY2EwNmNhMTc5OGYzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2Vi
Z2xWZXJzaW9uPTIKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjMzBiZTY1ZGRmZjQyYjM0YzczMzczNmUzNTNkYzg2YTgzNDU2MzcxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8g
Tk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0
ZXhTdWJJbWFnZTJESFRNTC5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgot
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdjOWE1
NWNmMDAzMTE3MWQ5YmE2NDM4NTEyYzk3OTI2ZTI3ZjBhOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAw
MV90b18wMDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAw
OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMjYzOTBjMTk2NGM3MjM2YjI1
NTcxYzhlZWM5MDBkNmJiOWMyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDAxX3Rv
XzAwOC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAwMV90b18wMDguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDAxX3RvXzAwOC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEyNTk2
MTE0Y2ZkYTk2MWExZDFmOWQ4YWRhYzViY2M4OWE2NDRkOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAw
OV90b18wMTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAx
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3N2E3NDlkMzc2MzNiYWFkNGI2
ZDNhZDllZTQ4ZTg3YzRjNWVhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDA5X3Rv
XzAxNi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAwOV90b18wMTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDA5X3RvXzAxNi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RlODU2
OGY5YmU4YmZmMjZmOGFhZWFjNzA0OGIwN2Q3NzNmM2EyZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAx
N190b18wMjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAy
NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyYjdhOTU5NTBjNjBjZGVkYjU4
NjU0ZDY5ZjQ4ZjI4N2UzNGJjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDE3X3Rv
XzAyNC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAxN190b18wMjQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDE3X3RvXzAyNC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIxYjgy
YWJmZjBmYmI3NTNiYzVjNTFiNWU3YzU5NGE0ZTBhZTgxNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAy
NV90b18wMzItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAz
Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NTM3YjU4ZWViYWY4ZjQzZTJj
YTViYWYzZjRjMWYyZDU5YTU4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDI1X3Rv
XzAzMi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAyNV90b18wMzIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDI1X3RvXzAzMi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RkNDRl
NTFiN2EyOWQ1YWZlNzUzNDliYTc5YTlkYmU4NjJkZjgzMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAz
M190b18wNDAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0
MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MDNlZTI5YWE0ZjNiYjVkNDEz
ZTRmMjRmZjU1ZjcwZWQwMzI4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDMzX3Rv
XzA0MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAzM190b18wNDAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDMzX3RvXzA0MC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBhMTk5
YTlhMTNlN2I1OTQ2ZDViYTNhZmJkZjgyMTc2NjRmOGFjYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0
MV90b18wNDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0
OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5YWI1NTRjZjUwNDkxNjNlNjQ2
NGM4OTg2NDM2OWQ2YWU4NjUxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDQxX3Rv
XzA0OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA0MV90b18wNDguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDQxX3RvXzA0OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRmOTU1
NzAxMGZiMjhmOGU4ODQ0MzI1MjllMTE5ZjhlNTAwYTA3YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0
OV90b18wNTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YmQ3MDA5ZjZiZTcyOWQ3ZDUw
ZTJhNjZkM2Q1OWMxMjcyYjNiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDQ5X3Rv
XzA1Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA0OV90b18wNTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDQ5X3RvXzA1Ni5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkzYThi
YzcyNDdmOTYzZmNjODNmZmY5YjNiYjRiMzEzMjUzMDYxZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1
N190b18wNjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2
NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmVhY2Q2YTVmYzUxYWI5OGQ1
ODlhY2NkZTVlNGJkMmIwN2M3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDU3X3Rv
XzA2NC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA1N190b18wNjQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDU3X3RvXzA2NC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY4NzVm
MmZkYjY4ZTRiYjI5Mjk4YzM5N2NiMDYxYzQyZmYyMTZkZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2
NV90b18wNzItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3
Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNjhkMDZhNjQ3Y2IyODFkOTgy
N2E5NjdlNTU3NTFiNWIwMjgwYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDY1X3Rv
XzA3Mi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA2NV90b18wNzIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDY1X3RvXzA3Mi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5NzA4
N2UwNjJlZTY5M2E5ZmYxYjVjN2NhYjg5YjVlMGQwMTAwYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3
M190b18wODAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4
MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDczX3RvXzA4MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YThmZWQzNGJkNTE2ZDI4YzU1
YWQ1MDhhYmM5ODgzZGE0YzEwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDczX3Rv
XzA4MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA3M190b18wODAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDczX3RvXzA4MC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUyZjY1
MWY0OGQ3MWIzMzVhYjBiY2RkYjMyNmYwYTI1ZTgwOWY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4
MV90b18wODgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4
OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNhNTdkYTkzY2VjMGM5Y2Vm
ODc1MWM2NjA1NGRiZWQzNWIxZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDgxX3Rv
XzA4OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA4MV90b18wODguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDgxX3RvXzA4OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM4Mjgz
YTEyM2UyMjEyNDZlMGYzMTNiNzJjODNmMDExYzQzZWY3MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4
OV90b18wOTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYmZiMWIxYjE3M2FmOGQyNjg5
ZTE2NDBlNjlmYzAwZTFmZTI0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDg5X3Rv
XzA5Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA4OV90b18wOTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDg5X3RvXzA5Ni5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhYmJk
NDdlNzhiNTdhODk3ZTNjN2FmZDdjY2I0NmQ2OGYwYjJjMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5
N190b18xMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEw
NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYTM3NGE4ODJkMDJiNDRmNTVk
NTQyZTExMjA2NjAyODgxYzM3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDk3X3Rv
XzEwNC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA5N190b18xMDQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDk3X3RvXzEwNC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI0NTM1
OWQyMTM0ZWI5MDU3Njk2Mjc0ZmUzYjI0ZTIxMjM4ZDQwMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEw
NV90b18xMTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzEx
Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTA1X3RvXzExMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYWFlZjdlNTM4YmM1YWJmOTMy
M2IyNmIxY2VmZDNkZDZiY2ViMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTA1X3Rv
XzExMi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEwNV90b18xMTIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTA1X3RvXzExMi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE1NTE0
MzIxYWVlYTRiZTU5M2Q3YTI5NWU0NjhjNGUyNDNlN2I2NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEx
M190b18xMjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEy
MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiODRjODQ1YjcyMGM0MDU2NzVk
ZmVjZDE5ZDAyNWMxMmEyNWI0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTEzX3Rv
XzEyMC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzExM190b18xMjAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTEzX3RvXzEyMC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwMDI4
NWExZGJkMjkxNjYxYWRiMWQxMzllNWJiYTIyOTdmMWRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEy
MV90b18xMjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEy
OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhmZWM4M2FiZmY3OTExYzAw
OWU4ZTM4YzYzZDU4ZjFiNmI4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTIxX3Rv
XzEyOC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEyMV90b18xMjguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTIxX3RvXzEyOC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIyZDNi
ZjcxZGMxY2JjNjlmMGM2YzU2NmRlNzJlMjc1ZjRjZWQzNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEy
OV90b18xMzYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEz
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMDFjNjkzNWVhNWIwZWU0MjY0
NjA5ZmU2OGZmMWY0MWM1OTk3YTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTI5X3Rv
XzEzNi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEyOV90b18xMzYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTI5X3RvXzEzNi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU5ZTc2
YmMyNTMzYTA3ZjE3N2I5NWMxYzFkMWFiMmE1MzU1YWI2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEz
N190b18xNDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0
NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzMyNjY4YmE4N2U0MTA3ZDli
MGM5NWYyZWM0ZjkyMTE1MjJiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTM3X3Rv
XzE0NC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEzN190b18xNDQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTM3X3RvXzE0NC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGE2NGE0
ODk0YWRhNGFmZmIzZGVjN2Y0YmQxMzhlZWNhMGQ0YTAwYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0
NV90b18xNTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1
Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZTEwNWMxYjhjMWE3MzM0ZTll
NDc2MGFlMGQ1OWU5MWIxMDMzODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTQ1X3Rv
XzE1Mi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE0NV90b18xNTIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTQ1X3RvXzE1Mi5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYxOWI0
MjIzMzQ0ZGE2NjY1ZGY3NmRkYjkwY2YwZmIwMjBiMGFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1
M190b18xNjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2
MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNGVjZmQ4NzQwYzIyZWM0NTdk
OTFhNzg4Y2JkN2E1M2ZkMzNhMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTUzX3Rv
XzE2MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE1M190b18xNjAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTUzX3RvXzE2MC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY3NmQw
MmJhZDAwMzk3M2E2ZmFlMDc3YWViN2JiOTQ5YjgzOWJjNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2
MV90b18xNjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2
OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNDhkZmU3ODYwYjMwYWU2NDll
MGRlYjIyMWM3MWU5ZmM0ZDE1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTYxX3Rv
XzE2OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE2MV90b18xNjguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTYxX3RvXzE2OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMxODQ4
ODg4NGExNjY1NWUwNDRiOTUwMjM3Yzk3ZTVhYjRhYzIzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2
OV90b18xNzYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMDJkNWU3NzExYzM2MGVjNTk2
OTI4ZWI2ZmUyZmY2MzNlODQwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTY5X3Rv
XzE3Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE2OV90b18xNzYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTY5X3RvXzE3Ni5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JhNjc1
YmQ3NjJlYTc2NmRkZjc5MjFmNDQ5NGMzZjJhY2E1ZDI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3
N190b18xNzgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbD93ZWJnbFZl
cnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3
OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzg1MWU5ZDdlMzc5MzUwODkw
NDA5Y2M1YWE2NzVkODg4YTJlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTc3X3Rv
XzE3OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE3N190b18xNzguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTc3X3RvXzE3OC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw/d2ViZ2xWZXJzaW9u
PTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVm
ZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgt
c2Npc3Nvci10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWMzMGNlNTdlNmNiMzUyN2Ew
NmExMTQwODQyNGY4MThiYWY0YzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXIt
d2l0aC1zY2lzc29yLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgt
c2Npc3Nvci10ZXN0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNz
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRl
cmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVs
dC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxNmJjMTg4
YzUyZjM4NWU5OTA1YjMwZGM5N2NhZGRmMTlhZGVhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1m
cmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0g
VGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmds
LWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3Jt
YW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lz
c29yLXRlc3QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFt
ZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVm
YXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0yPC9h
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1
ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNl
ZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0
LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg0MWYzZmI5YmRkOGJmNGVmZjk5NTU5ZDMyZjQ3YzcyZDkyZWM3MDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29s
b3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFt
ZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0
cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1l
YnVmZmVyLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZy
YW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmYwZWIxZmM0NzljNjhiNjY1
ZTQxZWY1NTk5MzczNTc0ZmQyYjEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZl
Y3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZl
Y3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1l
YnVmZmVyLXJlc29sdXRpb24uaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxk
LW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sP3dlYmds
VmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFz
ay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9y
bWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRl
cmFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3Yjg1ZmIwNGU5N2M5NGZhZjNiODdkNzc0
MDdiMmQ1NGI0NjFlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sP3dlYmdsVmVy
c2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxl
LXJlbmRlcmFibGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk4MWVhMjYyODJmMTAyOGYzN2QzNmI2ODkzZTE0MjI1OTQ5NmVmNGMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zv
cm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciBmb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5k
ZXJhYmxlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVu
ZGVyYWJsZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJh
bWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbD93ZWJnbFZl
cnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTkwZjI0NjAzYTI0NmUzYWU1ZGM5MTA4
MDdmMTkzMGYzNmQ5Yzg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTIKLVsgUEFTUyBdIEFsbCB0
ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDM3ZjE5NDMxNDRlYTllMjhi
YjM4YzE0NWVkNjg0ZDY2OTg5MjgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVz
L21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMuaHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODIxMDdlOWZjZDE5YmNhZDA5Mjc5MDE4MjFjZTYxODliODc0MjdhMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNv
bmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJz
aW9uPTI8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3
aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTM1ZWQ3ZGU5YTA2OWUwMDQyZjk5MmUzYjI1ZGQ3YTEwMDY3MjBlNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNp
b249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249
MjwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxN2YyMTVmYzBmMjEwNGM4NGUyMGU1Y2U1ZWYzNzQ4ZmUz
MDVhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1h
Z2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA2
ZDYzZjIxMDZhOGVkYjk4MDY5ZTdjNzQzOGVjODMzMjM3NmUzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWlt
YWdlLXR5cGVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgcG5nLWltYWdlLXR5cGVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1h
Z2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZy
YW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9y
ZXF1aXJlZC1leHRlbnNpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWQyMWRhN2ZlOWMz
ZTU1MzlmMWE2ZjU3ODg4NzgwZTY5Mzk0MGUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRl
bnNpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU0Yjc1NTNhMTE3ZTdiZDJhMmIzMjc4N2U4MTNkZjJm
NDI4OTkxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZXF1aXJlZC1leHRlbnNpb25zLmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sP3dlYmds
VmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMu
aHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50
LXNoYWRlci1sb29wLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWI0ZDEyMmU3NTg2OWRjMWExN2ExYzEwYzNhMDM2MmUwODFjNDY1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9n
bHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29w
LWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFn
bWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDU5YTdmZjYwMTQ4NmYxMzJmZTU0MjU5MjMyNDZhZmIxYzJjMTI3ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVu
dC1zaGFkZXItbG9vcC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1h
bmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIGZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIi
Pi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9m
cmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxvb3AtY3Jhc2guaHRtbD93
ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3Fy
dC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVh
cmVzLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWQ4OGZmOGM4Zjc0N2VkYzMyZWI0
YjRjOTdjNmIxMTM3MDAxYTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJl
cy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1s
P3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0
LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNo
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzFlMGUwZWM2MTZjMGY5NzU5Y2VlZDIzODQ0ODI4OGNjMDE2Nzli
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
Mi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWNpcHJvY2FsLXNxcnQt
b2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXBy
b2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNp
cHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbD93ZWJnbFZlcnNpb249Mjwv
YT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0t
b2Ytc3F1YXJlcy1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9
IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE3MWFlNzA0YWE2MjhhYmI2YWFhMWEwYmZjZWVlYWJhZjlhYTBkOWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1p
bnRlZ2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFs
bCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTZiNjJm
NWU4Y2Q0MDA0NTU3YzEyYmI2ZjRiYzI2YzhkNjg1MDFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJsZW5kLWludGVn
ZXIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw/d2ViZ2xWZXJz
aW9uPTIiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9t
aXNjL2JsZW5kLWludGVnZXIuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFt
ZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNv
bG9ybWFzay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZlNzU2MWFjZGM2YjEyYzI0MzVlOWYwZjI1MDVkYTFiMWNm
ODhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29sb3JtYXNrLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitU
ZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVu
ZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmds
VmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11
bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1h
c2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOTNkOWFjY2Q0NTBkNDE2Yzk3ZjE0MjRkOWEzMzIzOTc5Nzcw
MTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBibGl0ZnJhbWVi
dWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVm
PSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVy
aW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmdsVmVy
c2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dl
YmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRm
cmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmdsVmVyc2lvbj0yIiB3
aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0
LWxvY2F0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ4YzgxODYzM2YyODgyYjE0MDYyMWFjMTkyOTk0NDdjMjhh
OGIyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVy
aW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lv
bj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0
cHV0LWxvY2F0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MjYyMTIwMGM2NTNlMzc5MjY5M2MwNGU2MDhlNDgwNzc2MzI4MWY3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmlu
Zy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBkcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1
dC1sb2NhdGlvbnMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13
ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1z
cGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVy
cy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxv
Y2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9p
ZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWYzYTUwNDg3MjJiZTQ3NTdlOGVkMTg1NzQ1
ZTlhNTFkZWRjOTgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVz
dDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1s
P3dlYmdsVmVyc2lvbj0yCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4t
Y2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgy
MjE0Y2E5NDBjMjAyODc0ZTgxMDEwNDU0MDYzNDcyOTA3NGE1MmEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVl
bmNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5o
dG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lv
bj0yPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4t
Y2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdp
ZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDk0OTFiODFkOTQ1
YzhkZDExYzQ0YzRiN2Y1MGFmODVhMGRmZjE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25h
bC9nbGVzMy9tdWx0aXNhbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICsw
LDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUu
aHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTIzYzA1ZWU5
NzhkOWIwN2I1MmE4YjZmYmFlMTkwMzMxNDNlMGU0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg
QEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG11bHRpc2FtcGxlLmh0bWw8L3RpdGxlPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw/d2ViZ2xWZXJzaW9uPTIi
Pi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9tdWx0aXNhbXBsZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRpdiBpZD0iaWZyYW1l
Ij4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9kZWZhdWx0X2Ziby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU5MjJkNjlh
MTRlNGNjOWRlYjVmNDEzNWI1NWI4NzE4YmE1MzgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZh
dWx0X2Ziby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw/d2ViZ2xW
ZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0
X2Ziby5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMz
L211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAyZTY3YmIwMTFmMjVi
ZGExODk0ZTRiOGIzMGMwZTE3YzMzZDAxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Zi
by5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
IGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1Qg
RURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGRlZmF1
bHRfZmJvLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211
bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNh
bXBsZS9kZWZhdWx0X2Ziby5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1l
Ij4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8uaHRtbD93ZWJn
bFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zi
b180X3NhbXBsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9m
dW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU4NDAyMTRjZjZmMmEzYzI2YmZjMmMwYzVhODNlOGRmZmExN2E0MmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xl
czMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zi
b180X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3Nl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2ds
ZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmY1ZmM3NWNhYzQ4NzE0NTI5MTUzYzdmMjg3YzFjMDBmM2FjYzQxNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
Z2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZv
cm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZmJvXzRfc2FtcGxlcy5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw/
d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVz
My9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0
aXNhbXBsZS9mYm9fOF9zYW1wbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmQ1NDM3NGQ3
ZTJhNjNlMTBkNjljMWU0MGYwYzhkYTczYWNiMjg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184
X3NhbXBsZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLmh0bWw/d2Vi
Z2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9f
OF9zYW1wbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwv
Z2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNjBkNDRl
MmVmMjZiMGVmYzZlOTNiZDE1OTMxMGM5OTU1YjMyNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJv
Xzhfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3Rz
LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIGZib184X3NhbXBsZXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVm
PSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9u
YWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yIj4u
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwv
Z2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhf
c2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9p
ZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xl
czMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3Nh
bXBsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMzJjZjU1ZTk0NTljODYzODNiNzllYmM4
ZWQ2ZmFiMTk1NTFhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9u
YWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIK
K1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0
aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDg2NWNkYTkwZjZlYjdl
NzUzZDRlY2YxNjgyMGQ4NzUwYzY4NGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2Ft
cGxlcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGZi
b19tYXhfc2FtcGxlcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2ds
ZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21h
eF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48
L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJk
LW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wt
dG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBjYjc1OTNjZWM1N2Nh
MTk0YjBlMzdkNjk3YTA3MjA5NzNjYWU3OWM4Li5jNTg4OWIxMjU0Njc3ZDNiNjJlNDBlNzZiNTk1
YjA5ZmRiOWViNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRv
LWNvbnRleHQyZC1tZW1vcnktdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0y
LDYgKzIsOCBAQCBUaGlzIHRlc3QgY2hlY2tpbmcgdGhhdCBkcmF3aW5nIFdlYkdMIGNhbnZhcyB0
byBDb250ZXh0MkQgY2FudmFzIHdpdGggZHJhd0ltYWdlCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KIAorVEVTVCBDT01QTEVURTogMjcgUEFTUywgMCBGQUlMCisKIFBBU1MgZHJhd0ltYWdl
OiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5MiwgMjU1XQogUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBi
ZSBbNjQsIDEyOCwgMTkyLCAyNTVdCiBQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4
LCAxOTIsIDI1NV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9wZW5k
aW5nX3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2Ut
dmlkZW8tcmVwZWF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9wZW5kaW5n
X3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2Utdmlk
ZW8tcmVwZWF0ZWQuaHRtbAppbmRleCA1MmMxNjc2ZmRkMzE4ZTlmNDA4MjFlNzg3MGM0M2E1OWE2
NjE1ZDU5Li45MTBhZmJhODY4OWQxNjJlNTk4YzFiY2UwNTQ3MTk4NjIyNzQ5MTE1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvcGVuZGluZ193ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVhdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3BlbmRpbmdfd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3RleC1pbWFnZS12aWRlby1yZXBlYXRlZC5odG1s
CkBAIC0xNiw3ICsxNiw3IEBAIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKIHZhciBnbCA9IG51
bGw7CiB2YXIgdGV4dHVyZUxvYyA9IG51bGw7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFs
c2U7Ci12YXIgYmx1ZSA9IFswLCAwLCAyNDhdOwordmFyIGJsdWUgPSBbMCwgMCwgMjU1XTsKIHZh
ciB5ZWxsb3cgPSBbMjU1LCAyNTUsIDBdOwogdmFyIGJsYWNrID0gWzAsIDAsIDBdOwogaW5pdFRl
c3RpbmdIYXJuZXNzKCk7CkBAIC01MCw5ICs1MCw5IEBAIGZ1bmN0aW9uIGNoZWNrRnJhbWVidWZm
ZXJIYXNWaWRlbzIoZ2wpCiAgICAgY29uc3QgcmlnaHRDb2xvciA9IHllbGxvdzsKICAgICBjb25z
dCB0b2xlcmFuY2UgPSA1OwogICAgIGRlYnVnKCJDaGVja2luZyBtaWQgbGVmdCBib3JkZXIiKTsK
LSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0LCAyMCwgMiwgMiwgbGVmdENvbG9yLCAic2hv
dWxkQmUgIiArIGxlZnRDb2xvciwgdG9sZXJhbmNlKTsKKyAgICB3dHUuY2hlY2tDYW52YXNSZWN0
KGdsLCA0LCAxNywgMiwgMiwgbGVmdENvbG9yLCAic2hvdWxkQmUgIiArIGxlZnRDb2xvciwgdG9s
ZXJhbmNlKTsKICAgICBkZWJ1ZygiQ2hlY2tpbmcgbWlkIHJpZ2h0IGJvcmRlciIpOwotICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGdsLmNhbnZhcy53aWR0aCAtIDQsIGdsLmNhbnZhcy5oZWln
aHQgLSAyMCwgMiwgMiwgcmlnaHRDb2xvciwgInNob3VsZEJlICIgKyByaWdodENvbG9yLCB0b2xl
cmFuY2UpOworICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDYwLCAyOCwgMiwgMiwgcmlnaHRD
b2xvciwgInNob3VsZEJlICIgKyByaWdodENvbG9yLCB0b2xlcmFuY2UpOwogfQogCiBmdW5jdGlv
biB0ZXN0VHdvVGV4dHVyZXNCdWcxKHZpZGVvMSwgdmlkZW8yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmli
cy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBv
aW50ZXIuaHRtbAppbmRleCA1MmQ0MTE3MzI5ZDY2MmE1M2ZiYzdhMmVmMjFiN2RhOTBmMGVmNzVj
Li4xMjc2Y2VjN2M5Y2M5YzhjODg1MTFmN2Q5NjNlNzE5NWE2NDFhYjI0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRl
eGF0dHJpYnBvaW50ZXIuaHRtbApAQCAtMTUyLDcgKzE1Miw3IEBAIGlmICghZ2wpIHsKICAgICAg
ICAgICAgICAgZ2wsIHNpemUgPCBpbmZvLm1pblNpemUgPyBnbC5JTlZBTElEX09QRVJBVElPTiA6
IGdsLk5PX0VSUk9SLCAiYXQgc3RyaWRlIGxpbWl0IiwKICAgICAgICAgICAgICAgc2l6ZSwgaW5m
by50eXBlLCBmYWxzZSwgc3RyaWRlLCBvZmZzZXQpOwogICAgICAgICAgIGNoZWNrVmVydGV4QXR0
cmliUG9pbnRlcigKLSAgICAgICAgICAgICAgZ2wsIHNpemUgPCBpbmZvLm1pblNpemUgPyBnbC5J
TlZBTElEX09QRVJBVElPTiA6IGdsLklOVkFMSURfVkFMVUUsICJvdmVyIHN0cmlkZSBsaW1pdCIs
CisgICAgICAgICAgICAgIGdsLCBzaXplIDwgaW5mby5taW5TaXplID8gW2dsLklOVkFMSURfT1BF
UkFUSU9OLCBnbC5JTlZBTElEX1ZBTFVFXSA6IGdsLklOVkFMSURfVkFMVUUsICJvdmVyIHN0cmlk
ZSBsaW1pdCIsCiAgICAgICAgICAgICAgIHNpemUsIGluZm8udHlwZSwgZmFsc2UsCiAgICAgICAg
ICAgICAgIHN0cmlkZSArIGluZm8uYnl0ZXNQZXJDb21wb25lbnQsIG9mZnNldCk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Njhi
OWM3MTU0NzFmYTk5MTdiNWI5NTExN2MwZDBiZWMwNmY3MmQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
Y2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAK
KzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCB0b0RhdGFVUkwgYWZ0ZXIgY29tcG9zaXRlIHRlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8Y2FudmFzIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOyB3aWR0aDogMTI4cHg7IGhlaWdodDogMTI4cHgiIGlkPSJjM2QiPjwvY2FudmFzPgor
PGNhbnZhcyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsgd2lkdGg6IDEyOHB4OyBoZWlnaHQ6IDEyOHB4IiBpZD0iYzJkIj48L2NhbnZhcz4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KK2NvbnN0IHd0dSA9IFdlYkdMVGVz
dFV0aWxzOworbGV0IGdsOworbGV0IGN0eDsKKworZnVuY3Rpb24gbWFpbigpIHsKKyAgZGVzY3Jp
cHRpb24oKTsKKyAgY29uc3QgYzJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMyZCIpOwor
ICBjdHggPSBjMmQuZ2V0Q29udGV4dCgiMmQiKTsKKyAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KCJjM2QiLCB7IHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSB9KTsKKworICAvLyBDbGVhciB0
byBncmVlbgorICBnbC5jbGVhckNvbG9yKDAuMCwgMS4wLCAwLjAsIDEuMCk7CisgIGdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgIHd0dS53YWl0Rm9yQ29tcG9zaXRlKCgpID0+IHsK
KyAgICAvLyBQZXJmb3JtcyBnbC5jYW52YXMudG9EYXRhVVJMKCkgaW50ZXJuYWxseQorICAgIGxl
dCBpbWcgPSB3dHUubWFrZUltYWdlRnJvbUNhbnZhcyhnbC5jYW52YXMsIGZ1bmN0aW9uKCkgewor
ICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOworICAgICAgd3R1LmNoZWNrQ2FudmFzKGN0
eCwgWzAsIDI1NSwgMF0sICJ0b0RhdGFVUkwgbG9hZGVkIGludG8gaW1hZ2UsIGRyYXduIGludG8g
MkQgY29udGV4dCwgc2hvdWxkIGJlIGdyZWVuIiwgNSk7CisgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgfSk7CisgIH0pOworCit9OworCittYWluKCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0
L2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
Y29udGV4dC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMu
aHRtbAppbmRleCBhYzc5Njk4OGNlMGNhZjI4NTI3NWY2ZDg4MmE0MTQ0YWUyYzVmYjJkLi40MGY0
NmE3NDRhYzU5YzNmYmNmODc4OTc4MWMxNmM0NDM4ZDg4MDU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0
L2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFs
aWFzLmh0bWwKQEAgLTQ3LDYgKzQ3LDcgQEAgdmFyIGZyYW1lYnVmZmVyOwogdmFyIGZiSGFzQ29s
b3I7CiB2YXIgZmJIYXNEZXB0aDsKIHZhciBmYkhhc1N0ZW5jaWw7Cit2YXIgY29udGV4dFZlcnNp
b24gPSB3dHUuZ2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24oKTsKIAogZnVuY3Rpb24gaW5pdCgp
CiB7CkBAIC01NSw2ICs1NiwyMyBAQCBmdW5jdGlvbiBpbml0KCkKICAgICBydW5UZXN0KCk7CiB9
CiAKK3ZhciB2ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoWworICAgIDEuMCwgMS4wLCAwLjAs
CisgICAgLTEuMCwgMS4wLCAwLjAsCisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgIDEuMCwgMS4w
LCAwLjAsCisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgIDEuMCwgLTEuMCwgMC4wXSk7CisKK3Zh
ciBjb2xvcnMgPSBuZXcgVWludDhBcnJheShbCisgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgMjU1
LCAwLCAwLCAyNTUsCisgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgMjU1LCAwLCAwLCAyNTUsCisg
ICAgMjU1LCAwLCAwLCAyNTUsCisgICAgMjU1LCAwLCAwLCAyNTVdKTsKKworCiBmdW5jdGlvbiBn
ZXRXZWJHTChjYW52YXNXaWR0aCwgY2FudmFzSGVpZ2h0LCBjb250ZXh0QXR0cmlicywgY2xlYXJD
b2xvciwgY2xlYXJEZXB0aCwgY2xlYXJTdGVuY2lsKQogewogICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKQEAgLTYzLDcgKzgxLDcgQEAgZnVuY3Rpb24g
Z2V0V2ViR0woY2FudmFzV2lkdGgsIGNhbnZhc0hlaWdodCwgY29udGV4dEF0dHJpYnMsIGNsZWFy
Q29sb3IsIGNsZWFyRGUKICAgICBjYW52YXMud2lkdGggPSBjYW52YXNXaWR0aDsKICAgICBjYW52
YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0OwogCi0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KGNhbnZhcywgY29udGV4dEF0dHJpYnMpOworICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChj
YW52YXMsIGNvbnRleHRBdHRyaWJzLCBjb250ZXh0VmVyc2lvbik7CiAgICAgaWYgKCFnbCkKICAg
ICAgICAgcmV0dXJuIG51bGw7CiAKQEAgLTEwMiwyMjcgKzEyMCwxNTggQEAgZnVuY3Rpb24gZ2V0
V2ViR0woY2FudmFzV2lkdGgsIGNhbnZhc0hlaWdodCwgY29udGV4dEF0dHJpYnMsIGNsZWFyQ29s
b3IsIGNsZWFyRGUKICAgICAgIH0KICAgICB9CiAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBudWxsKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKLQotICAgIHJldHVybiBnbDsKLX0KIAotZnVuY3Rp
b24gZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycykKLXsKICAgICB2YXIgY29s
b3JPZmZzZXQgPSB2ZXJ0aWNlcy5ieXRlTGVuZ3RoOwotCiAgICAgdmFyIHZibyA9IGdsLmNyZWF0
ZUJ1ZmZlcigpOwogICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOwogICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBjb2xvck9mZnNldCArIGNvbG9ycy5ieXRl
TGVuZ3RoLCBnbC5TVEFUSUNfRFJBVyk7CiAgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9C
VUZGRVIsIDAsIHZlcnRpY2VzKTsKICAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZF
UiwgY29sb3JPZmZzZXQsIGNvbG9ycyk7Ci0KICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAs
IDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CiAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkoMCk7CiAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5VTlNJR05FRF9CWVRF
LCB0cnVlLCAwLCBjb2xvck9mZnNldCk7CiAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
MSk7CiAKLSAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdmVydGljZXMubGVuZ3Ro
IC8gMyk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQg
YmUgbm8gZXJyb3JzIik7CisgICAgcmV0dXJuIGdsOwogfQogCi1mdW5jdGlvbiB0ZXN0RGVmYXVs
dCgpCitmdW5jdGlvbiBkcmF3KGdsLCB2ZXJ0aWNlc0NvdW50KQogewotICAgIGRlYnVnKCJUZXN0
aW5nIGRlZmF1bHQgYXR0cmlidXRlczogeyBzdGVuY2lsOmZhbHNlIH0iKTsKLSAgICBzaG91bGRC
ZU5vbk51bGwoImdsID0gZ2V0V2ViR0woMSwgMSwgbnVsbCwgWyAwLCAwLCAwLCAwIF0sIDEsIDAp
Iik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5zdGVuY2ls
Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9
PSAwIik7CisgICAgdmVydGljZXNDb3VudCA9IHZlcnRpY2VzQ291bnQgfHwgdmVydGljZXMubGVu
Z3RoIC8gMzsKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdmVydGljZXNDb3Vu
dCk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RBbHBoYShhbHBoYSkKK2Z1bmN0aW9uIGNoZWNrRHJhdyho
YXNBbHBoYSwgaGFzU3RlbmNpbCwgaGFzRGVwdGgsIGhhc0FudGlhbGlhcykKIHsKLSAgICBkZWJ1
ZygiVGVzdGluZyBhbHBoYSA9ICIgKyBhbHBoYSk7Ci0gICAgaWYgKGFscGhhKSB7Ci0gICAgICAg
IHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7IGFscGhhOiB0cnVlLCBkZXB0
aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwg
MCBdLCAxLCAwKSIpOwotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5B
TFBIQV9CSVRTKSA+PSA4Iik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxs
KCJnbCA9IGdldFdlYkdMKDEsIDEsIHsgYWxwaGE6IGZhbHNlLCBkZXB0aDogZmFsc2UsIHN0ZW5j
aWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIpOwot
ICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA9PSAw
Iik7Ci0gICAgfQotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRT
KSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklU
UykgPj0gOCIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklU
UykgPj0gOCIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJ
VFMpID09IDAiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lM
X0JJVFMpID09IDAiKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSBn
bC5nZXRDb250ZXh0QXR0cmlidXRlcygpIik7Ci0gICAgc2hvdWxkQmVUcnVlKCJjb250ZXh0QXR0
cmlicy5hbHBoYSA9PSAiICsgYWxwaGEpOworICAgIGxldCByZWQgPSBbMjU1LCAwLCAwLCAyNTUg
XTsKKyAgICBsZXQgYmxhY2sgPSBbMCwgMCwgMCwgaGFzQWxwaGEgPyAwIDogMjU1IF07CisgICAg
ZGVidWcoYFRlc3RpbmcgdGhhdCBzdGVuY2lsICR7IGhhc1N0ZW5jaWwgPyAnYWZmZWN0cyc6ICdk
b2VzIG5vdCBhZmZlY3QnfSB0aGUgcmVuZGVyaW5nLmApOworICAgIGdsLnN0ZW5jaWxGdW5jKGds
Lk5FVkVSLCAxLCAxKTsKKyAgICBnbC5zdGVuY2lsT3AoZ2wuS0VFUCwgZ2wuS0VFUCwgZ2wuS0VF
UCk7CisgICAgZHJhdyhnbCk7CisgICAgY29ycmVjdENvbG9yID0gaGFzU3RlbmNpbCA/IGJsYWNr
IDogcmVkOworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgY29ycmVjdENvbG9yKQorICAgIGdsLmNs
ZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wuU1RFTkNJ
TF9CVUZGRVJfQklUKTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNrKTsKKyAgICBnbC5z
dGVuY2lsRnVuYyhnbC5BTFdBWVMsIDEsIDEpOwogCi0gICAgdmFyIGNvcnJlY3RDb2xvciA9IChj
b250ZXh0QXR0cmlicy5hbHBoYSA/IFswLCAwLCAwLCAwXSA6IFswLCAwLCAwLCAyNTVdKTsKLSAg
ICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBjb3JyZWN0Q29sb3IpOworICAg
IGRlYnVnKGBUZXN0aW5nIHRoYXQgZGVwdGggJHsgaGFzRGVwdGggPyAnYWZmZWN0cyc6ICdkb2Vz
IG5vdCBhZmZlY3QnfSB0aGUgcmVuZGVyaW5nLmApOworICAgIGdsLmRlcHRoRnVuYyhnbC5ORVZF
Uik7CisgICAgZHJhdyhnbCk7CisgICAgY29ycmVjdENvbG9yID0gaGFzRGVwdGggPyBibGFjayA6
IHJlZDsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvcnJlY3RDb2xvcik7CisgICAgZ2wuY2xl
YXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQgfCBnbC5TVEVOQ0lM
X0JVRkZFUl9CSVQpOworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgYmxhY2spOworICAgIGdsLmRl
cHRoRnVuYyhnbC5BTFdBWVMpOwogCi0gICAgaWYgKGZiSGFzQ29sb3IpIHsKLSAgICAgIGdsLmJp
bmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIpOwotICAgICAgZ2wuY2xl
YXJDb2xvcigwLjUsIDAuNSwgMC41LCAwLjUpOwotICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCk7Ci0gICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMTI3
LCAxMjcsIDEyNywgMTI3XSwgdW5kZWZpbmVkLCAxKTsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7CisgICAgZGVidWcoYFRlc3RpbmcgdGhhdCByZW5kZXJp
bmcgaXMgJHtoYXNBbnRpYWxpYXMgPyAnYW50aWFsaWFzZWQnIDogJ2FsaWFzZWQnfS5gKTsKKyAg
ICBkcmF3KGdsLCAzKTsKKyAgICBsZXQgTiA9IDI7CisgICAgbGV0IGJ1ZiA9IG5ldyBVaW50OEFy
cmF5KE4gKiBOICogNCk7CisgICAgZ2wucmVhZFBpeGVscygwLCAwLCBOLCBOLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBidWYpOworICAgIHJlZENoYW5uZWxzWzBdID0gYnVmWzQgKiAoTiAr
IDEpXTsgLy8gKDEsIDEpCisgICAgcmVkQ2hhbm5lbHNbMV0gPSBidWZbNCAqIE4gKiAoTiAtIDEp
XTsgLy8gbGVmdCB0b3AKKyAgICByZWRDaGFubmVsc1syXSA9IGJ1Zls0ICogKE4gLSAxKV07IC8v
IHJpZ2h0IGJvdHRvbQorICAgIHNob3VsZEJlKCJyZWRDaGFubmVsc1sxXSIsICIyNTUiKTsKKyAg
ICBzaG91bGRCZSgicmVkQ2hhbm5lbHNbMl0iLCAiMCIpOworICAgIGlmIChoYXNBbnRpYWxpYXMp
IHsKKyAgICAgICAgc2hvdWxkTm90QmUoInJlZENoYW5uZWxzWzBdIiwgIjI1NSIpOworICAgICAg
ICBzaG91bGROb3RCZSgicmVkQ2hhbm5lbHNbMF0iLCAiMCIpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHNob3VsZEJlVHJ1ZSgicmVkQ2hhbm5lbHNbMF0gPT0gMjU1IHx8IHJlZENoYW5uZWxzWzBd
ID09IDAiKTsKICAgICB9CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRF
UFRIX0JVRkZFUl9CSVQgfCBnbC5TVEVOQ0lMX0JVRkZFUl9CSVQpOworICAgIHd0dS5jaGVja0Nh
bnZhcyhnbCwgYmxhY2spOworCisgICAgZGVidWcoIlRlc3RpbmcgdGhhdCByZW5kZXJpbmcgd29y
a3MuIik7CisgICAgZHJhdyhnbCk7CisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCByZWQpOworICAg
IGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wu
U1RFTkNJTF9CVUZGRVJfQklUKTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNrKTsKIH0K
IAotZnVuY3Rpb24gdGVzdERlcHRoKGRlcHRoKQorZnVuY3Rpb24gdGVzdERlZmF1bHQoKQogewot
ICAgIGRlYnVnKCJUZXN0aW5nIGRlcHRoID0gIiArIGRlcHRoKTsKLSAgICBpZiAoZGVwdGgpIHsK
LSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJnbCA9IGdldFdlYkdMKDEsIDEsIHsgc3RlbmNpbDog
ZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIik7Ci0gICAg
ICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2Iik7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJnbCA9IGdldFdlYkdMKDEs
IDEsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBb
IDAsIDAsIDAsIDEgXSwgMSwgMCkiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJh
bWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCIpOwotICAgIH0KLSAgICBzaG91bGRCZVRydWUoImds
LmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgPj0gOCIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZ2wu
Z2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImds
LmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImds
LmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSA4Iik7CisgICAgZGVidWcoIlRlc3Rpbmcg
ZGVmYXVsdCBhdHRyaWJ1dGVzOiB7IHN0ZW5jaWw6ZmFsc2UgfSIpOworICAgIHNob3VsZEJlTm9u
TnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCBudWxsLCBbIDAsIDAsIDAsIDAgXSwgMSwgMCkiKTsK
KyAgICBzaG91bGRCZUZhbHNlKCJnbC5nZXRDb250ZXh0QXR0cmlidXRlcygpLnN0ZW5jaWwiKTsK
KyAgICBzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykiLCAiMCIpOwor
fQogCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlc0FmZmVjdENvbnRleHQoYWxwaGEsIHN0ZW5jaWws
IGRlcHRoLCBhbnRpYWxpYXMpCit7CisgICAgc2hvdWxkQmVOb25OdWxsKGBnbCA9IGdldFdlYkdM
KDIsIDIsIHsgZGVwdGg6ICR7ZGVwdGh9LCBzdGVuY2lsOiAke3N0ZW5jaWx9LCBhbnRpYWxpYXM6
ICR7YW50aWFsaWFzfSwgYWxwaGE6ICR7YWxwaGF9IH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKWAp
OwogICAgIHNob3VsZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSBnbC5nZXRDb250ZXh0QXR0
cmlidXRlcygpIik7CiAKLSAgICBnbC5kZXB0aEZ1bmMoZ2wuTkVWRVIpOwotCi0gICAgdmFyIHZl
cnRpY2VzID0gbmV3IEZsb2F0MzJBcnJheShbCi0gICAgICAgICAxLjAsICAxLjAsIDAuMCwKLSAg
ICAgICAgLTEuMCwgIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAg
ICAxLjAsICAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAgICAgMS4w
LCAtMS4wLCAwLjBdKTsKLSAgICB2YXIgY29sb3JzID0gbmV3IFVpbnQ4QXJyYXkoWwotICAgICAg
ICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwg
MCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAy
NTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1XSk7Ci0KLSAgICBkcmF3QW5kUmVhZFBpeGVsKGds
LCB2ZXJ0aWNlcywgY29sb3JzLCAwLCAwKTsKLSAgICBjb3JyZWN0Q29sb3IgPSAoY29udGV4dEF0
dHJpYnMuZGVwdGggPyBbMCwgMCwgMCwgMjU1XSA6IFsyNTUsIDAsIDAsIDI1NV0pOwotICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIGNvcnJlY3RDb2xvcik7Ci0KLSAgICBp
ZiAoZmJIYXNEZXB0aCkgewotICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBmcmFtZWJ1ZmZlcik7Ci0gICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wu
REVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICBkcmF3QW5kUmVhZFBpeGVsKGdsLCB2ZXJ0aWNlcywg
Y29sb3JzLCAwLCAwKTsKLSAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEs
IFswLCAwLCAwLCAyNTVdKTsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgbnVsbCk7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdldFBhcmFtZXRl
cihnbC5SRURfQklUUykiLCAiOCIpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJn
bC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykiLCAiOCIpOworICAgIHNob3VsZEJlR3JlYXRl
clRoYW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSIsICI4Iik7CisKKyAg
ICBzaG91bGRCZSgiY29udGV4dEF0dHJpYnMuYWxwaGEiLCAiIiArIGFscGhhKTsKKyAgICBpZiAo
Y29udGV4dFZlcnNpb24gPCAyKSB7CisgICAgICAgIGlmICghc3RlbmNpbCkKKyAgICAgICAgICAg
IHNob3VsZEJlRmFsc2UoImNvbnRleHRBdHRyaWJzLnN0ZW5jaWwiKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc3RlbmNpbCA9IGNvbnRleHRBdHRyaWJzLnN0ZW5jaWw7CisgICAgICAgIGlm
ICghZGVwdGgpCisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb250ZXh0QXR0cmlicy5kZXB0
aCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZXB0aCA9IGNvbnRleHRBdHRyaWJzLmRl
cHRoOworICAgICAgICBpZiAoIWFudGlhbGlhcykKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2Uo
ImNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBh
bnRpYWxpYXMgPSBjb250ZXh0QXR0cmlicy5hbnRpYWxpYXM7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgc2hvdWxkQmUoImNvbnRleHRBdHRyaWJzLnN0ZW5jaWwiLCAiIiArIHN0ZW5jaWwpOworICAg
ICAgICBzaG91bGRCZSgiY29udGV4dEF0dHJpYnMuZGVwdGgiLCAiIiArIGRlcHRoKTsKKyAgICAg
ICAgc2hvdWxkQmUoImNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyIsICIiICsgYW50aWFsaWFzKTsK
ICAgICB9Ci19CiAKLWZ1bmN0aW9uIHRlc3RTdGVuY2lsQW5kRGVwdGgoc3RlbmNpbCwgZGVwdGgp
Ci17Ci0gICAgZGVidWcoIlRlc3Rpbmcgc3RlbmNpbCA9ICIgKyBzdGVuY2lsICsgIiwgZGVwdGgg
PSAiICsgZGVwdGgpOwotICAgIHZhciBjcmVhdGlvblN0cmluZyA9Ci0gICAgICAgICJnbCA9IGdl
dFdlYkdMKDEsIDEsIHsgZGVwdGg6ICIgKyBkZXB0aCArICIsIHN0ZW5jaWw6ICIgKyBzdGVuY2ls
ICsgIiwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDEgXSwgMSwgMCkiOwotICAgIHNo
b3VsZEJlTm9uTnVsbChjcmVhdGlvblN0cmluZyk7Ci0KLSAgICBzaG91bGRCZVRydWUoImdsLmdl
dFBhcmFtZXRlcihnbC5SRURfQklUUykgPj0gOCIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0
UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdl
dFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdl
dFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSA4Iik7Ci0gICAgaWYgKGRlcHRoKQotICAgICAg
ICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiIpOwor
ICAgIGlmIChhbHBoYSkKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdl
dFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSIsICI4Iik7CiAgICAgZWxzZQotICAgICAgICBzaG91
bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIik7Ci0KKyAgICAg
ICAgc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSIsICIwIik7CiAgICAg
aWYgKHN0ZW5jaWwpCi0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNU
RU5DSUxfQklUUykgPj0gOCIpOworICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgi
Z2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykiLCAiOCIpOwogICAgIGVsc2UKLSAgICAg
ICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIik7
Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gZ2wuZ2V0Q29udGV4dEF0
dHJpYnV0ZXMoKSIpOwotICAgIGlmICghZGVwdGggJiYgY29udGV4dEF0dHJpYnMuZGVwdGgpIHsK
LSAgICAgICAgdGVzdEZhaWxlZCgiV2ViR0wgaW1wbGVtZW50YXRpb24gcHJvdmlkZWQgYSBkZXB0
aCBidWZmZXIgd2hlbiBpdCBzaG91bGQgbm90IGhhdmUiKTsKLSAgICB9Ci0gICAgaWYgKCFjb250
ZXh0QXR0cmlicy5kZXB0aCkKLSAgICAgICAgZGVwdGggPSBmYWxzZTsKLSAgICBpZiAoIXN0ZW5j
aWwgJiYgY29udGV4dEF0dHJpYnMuc3RlbmNpbCkgewotICAgICAgICB0ZXN0RmFpbGVkKCJXZWJH
TCBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBhIHN0ZW5jaWwgYnVmZmVyIHdoZW4gaXQgc2hvdWxk
IG5vdCBoYXZlIik7Ci0gICAgfQotICAgIGlmICghY29udGV4dEF0dHJpYnMuc3RlbmNpbCkKLSAg
ICAgICAgc3RlbmNpbCA9IGZhbHNlOworICAgICAgICBzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVy
KGdsLlNURU5DSUxfQklUUykiLCAiMCIpOworICAgIGlmIChkZXB0aCkKKyAgICAgICAgc2hvdWxk
QmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSIsICIx
NiIpOworICAgIGVsc2UKKyAgICAgICAgc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBU
SF9CSVRTKSIsICIwIik7CiAKLSAgICBnbC5kZXB0aEZ1bmMoZ2wuQUxXQVlTKTsKKyAgICB2YXIg
Y29ycmVjdENvbG9yID0gYWxwaGEgPyBbMCwgMCwgMCwgMF0gOiBbMCwgMCwgMCwgMjU1XTsKKyAg
ICB3dHUuY2hlY2tDYW52YXMoZ2wsIGNvcnJlY3RDb2xvcik7CiAKLSAgICBnbC5zdGVuY2lsRnVu
YyhnbC5ORVZFUiwgMSwgMSk7Ci0gICAgZ2wuc3RlbmNpbE9wKGdsLktFRVAsIGdsLktFRVAsIGds
LktFRVApOworICAgIGRlYnVnKCJUZXN0aW5nIGRlZmF1bHQgZnJhbWVidWZmZXIuIik7CisgICAg
Y2hlY2tEcmF3KGFscGhhLCBzdGVuY2lsLCBkZXB0aCwgYW50aWFsaWFzKTsKIAotICAgIHZhciB2
ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAgICAgMS4wLCAxLjAsIDAuMCwKLSAg
ICAgICAgLTEuMCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAg
IDEuMCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAgIDEuMCwg
LTEuMCwgMC4wXSk7Ci0gICAgdmFyIGNvbG9ycyA9IG5ldyBVaW50OEFycmF5KFsKLSAgICAgICAg
MjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAs
IDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1
LAotICAgICAgICAyNTUsIDAsIDAsIDI1NV0pOwotCi0gICAgZHJhd0FuZFJlYWRQaXhlbChnbCwg
dmVydGljZXMsIGNvbG9ycywgMCwgMCk7Ci0gICAgY29ycmVjdENvbG9yID0gKHN0ZW5jaWwgPyBb
MCwgMCwgMCwgMjU1XSA6IFsyNTUsIDAsIDAsIDI1NV0pOwotICAgIHd0dS5jaGVja0NhbnZhc1Jl
Y3QoZ2wsIDAsIDAsIDEsIDEsIGNvcnJlY3RDb2xvcikKLQotICAgIGlmIChmYkhhc1N0ZW5jaWwp
IHsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIp
OwotICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOwotICAgICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycywgMCwgMCk7
Ci0gICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwgMCwgMjU1
XSk7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOworICAg
IGlmIChmYkhhc0NvbG9yKSB7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIGJvdW5kIGZyYW1lYnVm
ZmVyIG9iamVjdC4iKTsKKyAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBmcmFtZWJ1ZmZlcik7CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CisgICAg
ICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwg
Z2wuU1RFTkNJTF9CVUZGRVJfQklUKTsKKyAgICAgICAgY2hlY2tEcmF3KHRydWUsIGZiSGFzU3Rl
bmNpbCwgZmJIYXNEZXB0aCwgZmFsc2UpOworICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wu
RlJBTUVCVUZGRVIsIG51bGwpOwogICAgIH0KIH0KIAotZnVuY3Rpb24gdGVzdEFudGlhbGlhcyhh
bnRpYWxpYXMpCi17Ci0gICAgZGVidWcoIlRlc3RpbmcgYW50aWFsaWFzID0gIiArIGFudGlhbGlh
cyk7Ci0gICAgLy8gQm90aCB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBjYW52YXMgYXJlIE4uCi0g
ICAgdmFyIE4gPSAyOwotICAgIGlmIChhbnRpYWxpYXMpCi0gICAgICAgIHNob3VsZEJlTm9uTnVs
bCgiZ2wgPSBnZXRXZWJHTCgiICsgTiArICIsICIgKyBOICsgIiwgeyBkZXB0aDogZmFsc2UsIHN0
ZW5jaWw6IGZhbHNlLCBhbHBoYTogZmFsc2UsIGFudGlhbGlhczogdHJ1ZSB9LCBbIDAsIDAsIDAs
IDEgXSwgMSwgMCkiKTsKLSAgICBlbHNlCi0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBn
ZXRXZWJHTCgiICsgTiArICIsICIgKyBOICsgIiwgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZh
bHNlLCBhbHBoYTogZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEs
IDApIik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJjb250ZXh0QXR0cmlicyA9IGdsLmdldENvbnRl
eHRBdHRyaWJ1dGVzKCkiKTsKLQotICAgIHZhciB2ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXko
WwotICAgICAgICAgMS4wLCAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwgMS4wLCAwLjAsCi0gICAg
ICAgIC0xLjAsIC0xLjAsIDAuMF0pOwotICAgIHZhciBjb2xvcnMgPSBuZXcgVWludDhBcnJheShb
Ci0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAg
ICAgMjU1LCAwLCAwLCAyNTVdKTsKLSAgICBkcmF3QW5kUmVhZFBpeGVsKGdsLCB2ZXJ0aWNlcywg
Y29sb3JzLCAwLCAwKTsKLSAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoTiAqIE4gKiA0KTsK
LSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIE4sIE4sIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGJ1Zik7Ci0gICAgcmVkQ2hhbm5lbHNbMF0gPSBidWZbNCAqIChOICsgMSldOyAvLyAoMSwgMSkK
LSAgICByZWRDaGFubmVsc1sxXSA9IGJ1Zls0ICogTiAqIChOIC0gMSldOyAvLyBsZWZ0IHRvcAot
ICAgIHJlZENoYW5uZWxzWzJdID0gYnVmWzQgKiAoTiAtIDEpXTsgLy8gcmlnaHQgYm90dG9tCi0g
ICAgc2hvdWxkQmVUcnVlKCJyZWRDaGFubmVsc1sxXSA9PSAyNTUgJiYgcmVkQ2hhbm5lbHNbMl0g
PT0gMCIpOwotICAgIHNob3VsZEJlKCJyZWRDaGFubmVsc1swXSAhPSAyNTUgJiYgcmVkQ2hhbm5l
bHNbMF0gIT0gMCIsICJjb250ZXh0QXR0cmlicy5hbnRpYWxpYXMiKTsKLX0KLQogZnVuY3Rpb24g
cnVuVGVzdCgpCiB7CiAgICAgdGVzdERlZmF1bHQoKTsKLSAgICB0ZXN0QWxwaGEodHJ1ZSk7Ci0g
ICAgdGVzdEFscGhhKGZhbHNlKTsKLSAgICB0ZXN0RGVwdGgodHJ1ZSk7Ci0gICAgdGVzdERlcHRo
KGZhbHNlKTsKLSAgICB0ZXN0U3RlbmNpbEFuZERlcHRoKHRydWUsIGZhbHNlKTsKLSAgICB0ZXN0
U3RlbmNpbEFuZERlcHRoKGZhbHNlLCBmYWxzZSk7Ci0gICAgdGVzdFN0ZW5jaWxBbmREZXB0aCh0
cnVlLCB0cnVlKTsKLSAgICB0ZXN0U3RlbmNpbEFuZERlcHRoKGZhbHNlLCB0cnVlKTsKLSAgICB0
ZXN0QW50aWFsaWFzKHRydWUpOwotICAgIHRlc3RBbnRpYWxpYXMoZmFsc2UpOwotCisgICAgbGV0
IGNhc2VzID0gW2ZhbHNlLCB0cnVlXTsKKyAgICBmb3IgKGxldCBhbHBoYSBvZiBjYXNlcykgewor
ICAgICAgICBmb3IgKGxldCBzdGVuY2lsIG9mIGNhc2VzKSB7CisgICAgICAgICAgICBmb3IgKGxl
dCBkZXB0aCBvZiBjYXNlcykgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGFudGlhbGlhcyBv
ZiBjYXNlcykgeworICAgICAgICAgICAgICAgICAgICB0ZXN0QXR0cmlidXRlc0FmZmVjdENvbnRl
eHQoYWxwaGEsIHN0ZW5jaWwsIGRlcHRoLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KICAgICBmaW5pc2hUZXN0KCk7CiB9Ci0K
IDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJpbml0KCkiPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
Y29udGV4dC9tZXRob2RzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L21ldGhvZHMuaHRtbAppbmRleCBlNTI3NGZi
OTgwNDU4YWZkMGM3MzU1OGZjYzkwNDE1OWIwMzhiZDNiLi5kMWU0N2YzMmEzYjA1YzIwZDQ5ZDZl
MGQ2OTYyODJhYjFhNGJhYmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L21ldGhvZHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9jb250ZXh0L21ldGhvZHMuaHRtbApAQCAtMTEsNiArMTEsNyBAQCBmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Rlc3RzL2NvbnRleHQtbWV0aG9k
cy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KQEAgLTIwLDcgKzIxLDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAi
dXNlIHN0cmljdCI7CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgV2Vi
R0wgY29udGV4dCBoYXMgYWxsIHRoZSBtZXRob2RzIGluIHRoZSBzcGVjaWZpY2F0aW9uLiIpOwog
Ci12YXIgbWV0aG9kcyA9IFsKK2NvbnN0IG1ldGhvZHMgPSBbCiAgICJnZXRDb250ZXh0QXR0cmli
dXRlcyIsCiAgICJhY3RpdmVUZXh0dXJlIiwKICAgImF0dGFjaFNoYWRlciIsCkBAIC0xNTksNTUg
KzE2MCwxNCBAQCB2YXIgbWV0aG9kcyA9IFsKICAgInZpZXdwb3J0IgogXTsKIAotLy8gUHJvcGVy
dGllcyB0byBiZSBpZ25vcmVkIGJlY2F1c2UgdGhleSB3ZXJlIGFkZGVkIGluIHZlcnNpb25zIG9m
IHRoZQotLy8gc3BlYyB0aGF0IGFyZSBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGggdGhpcyB2ZXJz
aW9uCi12YXIgaWdub3JlZE1ldGhvZHMgPSBbCi0gIC8vIFRoZXJlIGlzIG5vIG9mZmljaWFsIHNw
ZWMgZm9yIHRoZSBjb21taXQgQVBJIHlldCwgdGhlIHByb3Bvc2FsIGxpbmsgaXM6Ci0gIC8vIGh0
dHBzOi8vd2lraS53aGF0d2cub3JnL3dpa2kvT2Zmc2NyZWVuQ2FudmFzCi0gICJjb21taXQiCi1d
OwotCi1mdW5jdGlvbiBhc3NlcnRGdW5jdGlvbih2LCBmKSB7Ci0gIHRyeSB7Ci0gICAgaWYgKHR5
cGVvZiB2W2ZdICE9ICJmdW5jdGlvbiIpIHsKLSAgICAgIHRlc3RGYWlsZWQoIlByb3BlcnR5IGVp
dGhlciBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBmdW5jdGlvbjogIiArIGYpOwotICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0g
IH0gY2F0Y2goZSkgewotICAgIHRlc3RGYWlsZWQoIlRyeWluZyB0byBhY2Nlc3MgdGhlIHByb3Bl
cnR5ICciICsgZiArICInIHRocmV3IGFuIGVycm9yOiAiK2UudG9TdHJpbmcoKSk7Ci0gIH0KLX0K
LQogZGVidWcoIiIpOwogZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CiAKLXZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2Fu
dmFzIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci12YXIgcGFzc2Vk
ID0gdHJ1ZTsKLWZvciAodmFyIGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7Ci0gIHZhciBy
ID0gYXNzZXJ0RnVuY3Rpb24oZ2wsIG1ldGhvZHNbaV0pOwotICBwYXNzZWQgPSBwYXNzZWQgJiYg
cjsKLX0KLWlmIChwYXNzZWQpIHsKLSAgdGVzdFBhc3NlZCgiQWxsIFdlYkdMIG1ldGhvZHMgZm91
bmQuIik7Ci19Ci12YXIgZXh0ZW5kZWQgPSBmYWxzZTsKLWZvciAodmFyIGkgaW4gZ2wpIHsKLSAg
aWYgKHR5cGVvZiBnbFtpXSA9PSAiZnVuY3Rpb24iICYmIG1ldGhvZHMuaW5kZXhPZihpKSA9PSAt
MSAmJiBpZ25vcmVkTWV0aG9kcy5pbmRleE9mKGkpID09IC0xKSB7Ci0gICAgaWYgKCFleHRlbmRl
ZCkgewotICAgICAgZXh0ZW5kZWQgPSB0cnVlOwotICAgICAgdGVzdEZhaWxlZCgiQWxzbyBmb3Vu
ZCB0aGUgZm9sbG93aW5nIGV4dHJhIG1ldGhvZHM6Iik7Ci0gICAgfQotICAgIHRlc3RGYWlsZWQo
aSk7Ci0gIH0KLX0KK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3QgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworY29uc3QgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KGNhbnZhcyk7CiAKLWlmICghZXh0ZW5kZWQpIHsKLSAgdGVzdFBhc3NlZCgiTm8g
ZXh0cmEgbWV0aG9kcyBmb3VuZCBvbiBXZWJHTCBjb250ZXh0LiIpOwotfQordGVzdENvbnRleHRN
ZXRob2RzKGdsLCBtZXRob2RzKTsKIAogZGVidWcoIiIpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9u
LWJwdGMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tYnB0Yy5odG1s
CmluZGV4IDFmZWQ5ZDlmZDczNWFmZTQ5N2U2MmNkOTVhZDQ0YzU3YTU4ZGZjYzMuLjBiY2U3Mzc2
YTU1NmRkYmI2ZTA1MzhhYzQ2YTBmZjJiNzk4YzU2YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
ZXh0LXRleHR1cmUtY29tcHJlc3Npb24tYnB0Yy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRl
eHR1cmUtY29tcHJlc3Npb24tYnB0Yy5odG1sCkBAIC02MCw3ICs2MCw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3RFeHRlbnNpb24oKSB7CiAgIC8vICogPGhlaWdodD4gaXMgbm90IGEgbXVsdGlwbGUgb2Yg
Zm91ciwgYW5kIDxoZWlnaHQ+IHBsdXMgPHlvZmZzZXQ+IGlzCiAgIC8vICAgICAgICAgICBub3Qg
ZXF1YWwgdG8gVEVYVFVSRV9IRUlHSFQ7IG9yCiAgIC8vICogPHhvZmZzZXQ+IG9yIDx5b2Zmc2V0
PiBpcyBub3QgYSBtdWx0aXBsZSBvZiBmb3VyLgotICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5z
aW9ucyhnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5z
aW9ucywKKyAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRGb3Jt
YXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywKICAgICAxNiwgMTYs
IFsKICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywK
ICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaGVp
Z2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCkBAIC03Nyw3ICs3NywxNyBAQCBmdW5jdGlv
biBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAvLyBUZXN0IFRleEltYWdlIHZhbGlkYXRpb24gb24g
bGV2ZWwgZGltZW5zaW9ucyBjb21iaW5hdGlvbnMuCiAgIC8vIFdoZW4gbGV2ZWwgZXF1YWxzIDAs
IHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuCiAgIC8vIFdoZW4gbGV2
ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNuJ3QgYXBwbHkuCi0gIGN0
dS50ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMoZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRC
eXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisKKyAgbGV0IG5wb3RFeHBlY3RhdGlvbiwg
bnBvdE1lc3NhZ2U7CisgIGlmIChjb250ZXh0VmVyc2lvbiA+PSAyKSB7CisgICAgbnBvdEV4cGVj
dGF0aW9uID0gZ2wuTk9fRVJST1I7CisgICAgbnBvdE1lc3NhZ2UgPSAidmFsaWQiOworICB9IGVs
c2UgeworICAgIG5wb3RFeHBlY3RhdGlvbiA9IGdsLklOVkFMSURfVkFMVUU7CisgICAgbnBvdE1l
c3NhZ2UgPSAiaW52YWxpZCI7CisgIH0KKworICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNp
b25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0Rp
bWVuc2lvbnMsCiAgICAgWwogICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywK
ICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAibGV2
ZWwgaXMgMCwgaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCkBAIC04NywxMCArOTcs
MTYgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICAgICAgZXhwZWN0YXRpb246
IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAibGV2ZWwgaXMgMCwgd2lkdGggaXMgbm90
IGEgbXVsdGlwbGUgb2YgNCIgfSwKICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6
IDQsCiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImlzIHZhbGlk
IiB9LAorICAgICAgeyBsZXZlbDogMSwgd2lkdGg6IDEsIGhlaWdodDogMSwKKyAgICAgICAgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNlIG1p
cCAyeDIgaXMgaW52YWxpZCIgfSwKKyAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6
IDIsCisgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTog
ImltcGxpZWQgYmFzZSBtaXAgMng0IGlzIGludmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3
aWR0aDogMiwgaGVpZ2h0OiAxLAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVS
QVRJT04sIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4MiBpcyBpbnZhbGlkIiB9LAogICAg
ICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMiwKLSAgICAgICAgZXhwZWN0YXRpb246
IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAibGV2ZWwgPiAwLCBpcyB2YWxpZCIgfSwKLSAgICAgIHsg
bGV2ZWw6IDIsIHdpZHRoOiAxLCBoZWlnaHQ6IDEsCi0gICAgICAgIGV4cGVjdGF0aW9uOiBnbC5O
T19FUlJPUiwgbWVzc2FnZTogImxldmVsID4gMCwgaXMgdmFsaWQiIH0sCisgICAgICAgIGV4cGVj
dGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgNHg0IGlzIHZh
bGlkIiB9LAorICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdodDogMywKKyAgICAgICAg
ZXhwZWN0YXRpb246IG5wb3RFeHBlY3RhdGlvbiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAg
NHgxMiBpcyAiICsgbnBvdE1lc3NhZ2UgfSwKICAgXSk7CiAKICAgLy8gVGVzdCB0aGF0IEJQVEMg
ZW51bXMgYXJlIG5vdCBhY2NlcHRlZCBieSB0ZXhJbWFnZTJECmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRl
eHR1cmUtY29tcHJlc3Npb24tcmd0Yy5odG1sCmluZGV4IGMyYTJkNDE2OTA4NzU1MjY5NzRmMGNl
ZGYxNmVjY2FmZGYyZTBiZDMuLjcwZGNmOWJhN2I3Y2JmMzc2ZjM3MGNjYWIwYjgwZmRjMzQ2YWQ0
ZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tcmd0Yy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tcmd0Yy5odG1sCkBA
IC02NSw3ICs2NSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgIC8vICogPGhl
aWdodD4gaXMgbm90IGEgbXVsdGlwbGUgb2YgZm91ciwgYW5kIDxoZWlnaHQ+IHBsdXMgPHlvZmZz
ZXQ+IGlzCiAgIC8vICAgICAgICAgICBub3QgZXF1YWwgdG8gVEVYVFVSRV9IRUlHSFQ7IG9yCiAg
IC8vICogPHhvZmZzZXQ+IG9yIDx5b2Zmc2V0PiBpcyBub3QgYSBtdWx0aXBsZSBvZiBmb3VyLgot
ICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3Rl
ZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywKKyAgY3R1LnRlc3RUZXhTdWJJbWFnZURp
bWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJs
b2NrRGltZW5zaW9ucywKICAgICAxNiwgMTYsIFsKICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNl
dDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywKICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFM
SURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0s
CkBAIC04Miw3ICs4MiwxNyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAvLyBU
ZXN0IFRleEltYWdlIHZhbGlkYXRpb24gb24gbGV2ZWwgZGltZW5zaW9ucyBjb21iaW5hdGlvbnMu
CiAgIC8vIFdoZW4gbGV2ZWwgZXF1YWxzIDAsIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11
bHRpcGxlIG9mIDQuCiAgIC8vIFdoZW4gbGV2ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25z
dHJhaW50IGRvZXNuJ3QgYXBwbHkuCi0gIGN0dS50ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMo
Z2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMs
CisKKyAgbGV0IG5wb3RFeHBlY3RhdGlvbiwgbnBvdE1lc3NhZ2U7CisgIGlmIChjb250ZXh0VmVy
c2lvbiA+PSAyKSB7CisgICAgbnBvdEV4cGVjdGF0aW9uID0gZ2wuTk9fRVJST1I7CisgICAgbnBv
dE1lc3NhZ2UgPSAidmFsaWQiOworICB9IGVsc2UgeworICAgIG5wb3RFeHBlY3RhdGlvbiA9IGds
LklOVkFMSURfVkFMVUU7CisgICAgbnBvdE1lc3NhZ2UgPSAiaW52YWxpZCI7CisgIH0KKworICBj
dHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhw
ZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCiAgICAgWwogICAgICAgeyBsZXZl
bDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywKICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFM
SURfT1BFUkFUSU9OLCBtZXNzYWdlOiAibGV2ZWwgaXMgMCwgaGVpZ2h0IGlzIG5vdCBhIG11bHRp
cGxlIG9mIDQiIH0sCkBAIC05MiwxMCArMTAyLDE2IEBAIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNp
b24oKSB7CiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2Fn
ZTogImxldmVsIGlzIDAsIHdpZHRoIGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCiAgICAgICB7
IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0LAogICAgICAgICBleHBlY3RhdGlvbjogZ2wu
Tk9fRVJST1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICAgIHsgbGV2ZWw6IDEsIHdpZHRo
OiAxLCBoZWlnaHQ6IDEsCisgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElP
TiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgMngyIGlzIGludmFsaWQiIH0sCisgICAgICB7
IGxldmVsOiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAyLAorICAgICAgICBleHBlY3RhdGlvbjogZ2wu
SU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDJ4NCBpcyBpbnZh
bGlkIiB9LAorICAgICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMSwKKyAgICAgICAg
ZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNl
IG1pcCA0eDIgaXMgaW52YWxpZCIgfSwKICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWln
aHQ6IDIsCi0gICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImxldmVs
ID4gMCwgaXMgdmFsaWQiIH0sCi0gICAgICB7IGxldmVsOiAyLCB3aWR0aDogMSwgaGVpZ2h0OiAx
LAotICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJsZXZlbCA+IDAs
IGlzIHZhbGlkIiB9LAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6
ICJpbXBsaWVkIGJhc2UgbWlwIDR4NCBpcyB2YWxpZCIgfSwKKyAgICAgIHsgbGV2ZWw6IDIsIHdp
ZHRoOiAxLCBoZWlnaHQ6IDMsCisgICAgICAgIGV4cGVjdGF0aW9uOiBucG90RXhwZWN0YXRpb24s
IG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4MTIgaXMgIiArIG5wb3RNZXNzYWdlIH0sCiAg
IF0pOwogCiAgIC8vIFRlc3QgdGhhdCBSR1RDIGVudW1zIGFyZSBub3QgYWNjZXB0ZWQgYnkgdGV4
SW1hZ2UyRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3RjLWFuZC1yZ3RjLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRl
bnNpb25zL3MzdGMtYW5kLXJndGMuaHRtbAppbmRleCBhZGRkZTU0YjVmYTYwYmMyODM2NGZmNDg3
MzIxZTZjOTRhZGJlMGExLi4zYjcyNWZmZTIyOTcxMGRiODY4Yzg0YWU5MDdjYWFiYTc5NWVmZjVm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3MzdGMtYW5kLXJndGMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL3MzdGMtYW5kLXJndGMuaHRtbApAQCAtMzksNiArMzksMTEgQEAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCB2ZXJpZmllcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXIKIAogZGVidWcoIiIpOwogCisvLyBBY2NlcHRhYmxlIGludGVycG9sYXRpb24gZXJy
b3IgZGVwZW5kcyBvbiBlbmRwb2ludHM6CisvLyAxLjAgLyAyNTUuMCArIDAuMDMgKiBtYXgoYWJz
KGVuZHBvaW50MCAtIGVuZHBvaW50MSksIGFicyhlbmRwb2ludDBfcCAtIGVuZHBvaW50MV9wKSkK
Ky8vIEZvciBzaW1wbGljaXR5LCBhc3N1bWUgdGhlIHdvcnN0IGNhc2UgKGUwIGlzIDAuMCwgZTEg
aXMgMS4wKS4gQWZ0ZXIgY29udmVyc2lvbiB0byB1bm9ybTgsIGl0IGlzIDkuCitjb25zdCBERUZB
VUxUX0NPTE9SX0VSUk9SID0gOTsKKwogLyoKIEJDMSAoRFhUMSkgYmxvY2sKIGUwID0gWyAgMCwg
MjU1LCAwXQpAQCAtMjY3LDYgKzI3Miw4NyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkg
ewogICAgIGlmIChjb250ZXh0VmVyc2lvbiA+PSAyKSB7CiAgICAgICAgIHRlc3REWFQ1X1JHQkFf
UEJPKCk7CiAgICAgfQorCisgICAgLy8gVGVzdCBUZXhJbWFnZSB2YWxpZGF0aW9uIG9uIGxldmVs
IGRpbWVuc2lvbnMgY29tYmluYXRpb25zLgorICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiV2hl
biBsZXZlbCBlcXVhbHMgMCwgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIGEgbXVsdGlwbGUgb2Yg
NC4iKTsKKyAgICBkZWJ1ZygiV2hlbiBsZXZlbCBpcyBsYXJnZXIgdGhhbiAwLCB0aGlzIGNvbnN0
cmFpbnQgZG9lc24ndCBhcHBseS4iKTsKKyAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNp
b25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0Rp
bWVuc2lvbnMsCisgICAgICBbCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6
IDMsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDR4MyIg
fSwKKyAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwgZXhwZWN0YXRpb246
IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMDogM3g0IiB9LAorICAgICAgICB7IGxl
dmVsOiAwLCB3aWR0aDogMiwgaGVpZ2h0OiAyLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVS
QVRJT04sIG1lc3NhZ2U6ICIwOiAyeDIiIH0sCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0
LCBoZWlnaHQ6IDQsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDR4NCIg
fSwKKyAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246
IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMTogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAyLCB3
aWR0aDogMSwgaGVpZ2h0OiAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIy
OiAxeDEiIH0sCisgICAgXSk7CisKKyAgICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhn
bCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNp
b25zLCAxNiwgMTYsCisgICAgICBbCisgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwg
d2lkdGg6IDQsIGhlaWdodDogMywKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9P
UEVSQVRJT04sIG1lc3NhZ2U6ICJoZWlnaHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAg
ICAgICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMywgaGVpZ2h0OiA0LAorICAg
ICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIndpZHRo
IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNl
dDogMCwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5W
QUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ4b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQi
IH0sCisgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMSwgd2lkdGg6IDQsIGhlaWdodDog
NCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6
ICJ5b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDog
MTIsIHlvZmZzZXQ6IDEyLCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgIGV4cGVjdGF0
aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgIF0pOworCisgICAg
aWYgKGNvbnRleHRWZXJzaW9uID49IDIpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBk
ZWJ1ZygiVGVzdGluZyBOUE9UIHRleHR1cmVzIik7CisgICAgICAgIGN0dS50ZXN0VGV4SW1hZ2VM
ZXZlbERpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgs
IGdldEJsb2NrRGltZW5zaW9ucywKKyAgICAgICAgICBbCisgICAgICAgICAgICB7IGxldmVsOiAw
LCB3aWR0aDogMCwgaGVpZ2h0OiAwLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6
ICIwOiAweDAgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMSwg
aGVpZ2h0OiAxLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIw
OiAxeDEgaXMgaW52YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiAyLCBo
ZWlnaHQ6IDIsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6
IDJ4MiBpcyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDMsIGhl
aWdodDogMywgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMDog
M3gzIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTAsIGhl
aWdodDogMTAsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6
IDEweDEwIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTEs
IGhlaWdodDogMTEsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTog
IjA6IDExeDExIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDog
MTEsIGhlaWdodDogMTIsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2Fn
ZTogIjA6IDExeDEyIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0
aDogMTIsIGhlaWdodDogMTEsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVz
c2FnZTogIjA6IDEyeDExIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3
aWR0aDogMTIsIGhlaWdodDogMTIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTog
IjA6IDEyeDEyIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICAw
LCBoZWlnaHQ6ICAwLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiAweDAs
IGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICAzLCBoZWlnaHQ6
ICAzLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIxOiAzeDMs
IGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogIDUsIGhlaWdo
dDogIDUsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjE6IDV4
NSwgaXMgaW52YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgNSwgaGVp
Z2h0OiAgNiwgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMTog
NXg2LCBpcyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA2LCBo
ZWlnaHQ6ICA1LCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIx
OiA2eDUsIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogIDYs
IGhlaWdodDogIDYsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjE6IDZ4Niwg
aXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAyLCB3aWR0aDogIDAsIGhlaWdodDog
IDAsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjI6IDB4MCwgaXMgdmFsaWQi
IH0sCisgICAgICAgICAgICB7IGxldmVsOiAyLCB3aWR0aDogIDMsIGhlaWdodDogIDMsIGV4cGVj
dGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjI6IDN4MywgaXMgdmFsaWQiIH0sCisgICAg
ICAgICAgICB7IGxldmVsOiAzLCB3aWR0aDogIDEsIGhlaWdodDogIDMsIGV4cGVjdGF0aW9uOiBn
bC5OT19FUlJPUiwgbWVzc2FnZTogIjM6IDF4MywgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7
IGxldmVsOiAzLCB3aWR0aDogIDEsIGhlaWdodDogIDEsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJP
UiwgbWVzc2FnZTogIjM6IDF4MSwgaXMgdmFsaWQiIH0sCisgICAgICAgIF0pOworCisgICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3RpbmcgcGFydGlhbCB1cGRhdGVzIik7Cisg
ICAgICAgIGN0dS50ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0
cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsIDEyLCAxMiwKKyAgICAg
ICAgWworICAgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdo
dDogMywKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVz
c2FnZTogImhlaWdodCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsgeG9m
ZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwKKyAgICAgICAgICAgIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIndpZHRoIGlzIG5vdCBh
IG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgICAgeyB4b2Zmc2V0OiAxLCB5b2Zmc2V0OiAwLCB3
aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURf
T1BFUkFUSU9OLCBtZXNzYWdlOiAieG9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAor
ICAgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMSwgd2lkdGg6IDQsIGhlaWdodDogNCwK
KyAgICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTog
InlvZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6
IDgsIHlvZmZzZXQ6IDgsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3Rh
dGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICAgICAgXSk7CisK
KyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiVGVzdGluZyBpbW11dGFibGUgTlBP
VCB0ZXh0dXJlcyIpOworICAgICAgICBjdHUudGVzdFRleFN0b3JhZ2VMZXZlbERpbWVuc2lvbnMo
Z2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5z
aW9ucywKKyAgICAgICAgICBbCisgICAgICAgICAgICB7IHdpZHRoOiAxMiwgaGVpZ2h0OiAxMiwg
ZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMDogMTJ4MTIgaXMgdmFsaWQiIH0s
CisgICAgICAgICAgICB7IHdpZHRoOiAgNiwgaGVpZ2h0OiAgNiwgZXhwZWN0YXRpb246IGdsLk5P
X0VSUk9SLCBtZXNzYWdlOiAiMTogNng2LCBpcyB2YWxpZCIgfSwKKyAgICAgICAgICAgIHsgd2lk
dGg6ICAzLCBoZWlnaHQ6ICAzLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIy
OiAzeDMsIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyB3aWR0aDogIDEsIGhlaWdodDogIDEs
IGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjM6IDF4MSwgaXMgdmFsaWQiIH0s
CisgICAgICAgIF0pOworICAgIH0KIH0KIAogZnVuY3Rpb24gcnVuVGVzdFJHVEMoKSB7CkBAIC0y
OTgsNiArMzg0LDggQEAgZnVuY3Rpb24gcnVuVGVzdFJHVEMoKSB7CiAgICAgICAgICAgICBkYXRh
OiBpbWdfNHg0X3NpZ25lZF9yZ19iYzUsCiAgICAgICAgICAgICBmb3JtYXQ6IGV4dF9yZ3RjLkNP
TVBSRVNTRURfU0lHTkVEX1JFRF9HUkVFTl9SR1RDMl9FWFQsCiAgICAgICAgICAgICBoYXNBbHBo
YTogZmFsc2UsCisgICAgICAgICAgICBlcnJvcjogMTgsIC8vIFNpZ25lZCwgc28gdHdpY2UgdGhl
IG5vcm1hbCBlcnJvci4KKyAgICAgICAgICAgICAgICAgICAgICAgLy8gRXhwZXJpbWVudGFsbHkg
bmVlZGVkIGJ5IGUuZy4gUlRYIDMwNzAuCiAgICAgICAgIH0sCiAgICAgICAgIHsgICB3aWR0aDog
OCwKICAgICAgICAgICAgIGhlaWdodDogOCwKQEAgLTQ3NCwxMCArNTYyLDEzIEBAIGZ1bmN0aW9u
IHVuY29tcHJlc3NEWFRCbG9jaygKICAgICAgICAgIGZvcm1hdCA9PSBleHRfcmd0Yy5DT01QUkVT
U0VEX1JFRF9HUkVFTl9SR1RDMl9FWFQgfHwKICAgICAgICAgIGZvcm1hdCA9PSBleHRfcmd0Yy5D
T01QUkVTU0VEX1NJR05FRF9SRURfUkdUQzFfRVhUIHx8CiAgICAgICAgICBmb3JtYXQgPT0gZXh0
X3JndGMuQ09NUFJFU1NFRF9TSUdORURfUkVEX0dSRUVOX1JHVEMyX0VYVCk7CisgICAgbGV0IGNv
bG9yT2Zmc2V0ID0gc3JjT2Zmc2V0OwogICAgIGlmICghaXNCQzQ1KSB7CiAgICAgICAgIHZhciBp
c0RYVDEgPSBmb3JtYXQgPT0gZXh0LkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQgfHwKICAg
ICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9PSBleHQuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhU
MV9FWFQ7Ci0gICAgICAgIHZhciBjb2xvck9mZnNldCA9IHNyY09mZnNldCArIChpc0RYVDEgPyAw
IDogOCk7CisgICAgICAgIGlmICghaXNEWFQxKSB7CisgICAgICAgICAgICBjb2xvck9mZnNldCAr
PSA4OworICAgICAgICB9CiAgICAgICAgIHZhciBjb2xvcjAgPSBtYWtlNTY1KHNyYywgY29sb3JP
ZmZzZXQgKyAwKTsKICAgICAgICAgdmFyIGNvbG9yMSA9IG1ha2U1NjUoc3JjLCBjb2xvck9mZnNl
dCArIDIpOwogICAgICAgICB2YXIgYzBndGMxID0gY29sb3IwID4gY29sb3IxIHx8ICFpc0RYVDE7
CkBAIC02NTgsNiArNzQ5LDggQEAgZnVuY3Rpb24gY29weVJlY3QoZGF0YSwgc3JjWCwgc3JjWSwg
ZHN0WCwgZHN0WSwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSB7CiB9CiAKIGZ1bmN0aW9uIHRlc3RE
WFRUZXh0dXJlKHRlc3QsIHVzZVRleFN0b3JhZ2UpIHsKKyAgICB0ZXN0LmVycm9yID0gdGVzdC5l
cnJvciB8fCBERUZBVUxUX0NPTE9SX0VSUk9SOworCiAgICAgdmFyIGRhdGEgPSBuZXcgVWludDhB
cnJheSh0ZXN0LmRhdGEpOwogICAgIHZhciB3aWR0aCA9IHRlc3Qud2lkdGg7CiAgICAgdmFyIGhl
aWdodCA9IHRlc3QuaGVpZ2h0OwpAQCAtNjk2LDcgKzc4OSw3IEBAIGZ1bmN0aW9uIHRlc3REWFRU
ZXh0dXJlKHRlc3QsIHVzZVRleFN0b3JhZ2UpIHsKIAogICAgICAgICAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1YWQgMSIpOwotICAgICAgICAgICAgY29tcGFyZVJl
Y3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YVN1YiwgIk5F
QVJFU1QiKTsKKyAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hh
bm5lbHMsIHVuY29tcHJlc3NlZERhdGFTdWIsICJORUFSRVNUIiwgdGVzdC5lcnJvcik7CiAKICAg
ICAgICAgICAgIC8vIENsZWFuIHVwIGFuZCByZWNvdmVyCiAgICAgICAgICAgICBnbC5kZWxldGVU
ZXh0dXJlKHRleDEpOwpAQCAtNzIwLDEzICs4MTMsMTMgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1
cmUodGVzdCwgdXNlVGV4U3RvcmFnZSkgewogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiYWZ0ZXIgY2xlYXJpbmcgZ2VuZXJhdGVNaXBtYXAgZXJyb3IiKTsKICAgICB3
dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1YWQgMSIpOwotICAgIGNvbXBhcmVSZWN0KHdp
ZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJORUFSRVNUIik7
CisgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVz
c2VkRGF0YSwgIk5FQVJFU1QiLCB0ZXN0LmVycm9yKTsKICAgICAvLyBUZXN0IGFnYWluIHdpdGgg
bGluZWFyIGZpbHRlcmluZy4KICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICB3dHUu
Y2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1YWQgMiIpOwotICAgIGNvbXBhcmVSZWN0KHdpZHRo
LCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJMSU5FQVIiKTsKKyAg
ICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWRE
YXRhLCAiTElORUFSIiwgdGVzdC5lcnJvcik7CiAKICAgICBpZiAoIXVzZVRleFN0b3JhZ2UpIHsK
ICAgICAgICAgLy8gSXQncyBub3QgYWxsb3dlZCB0byByZWRlZmluZSB0ZXh0dXJlcyBkZWZpbmVk
IHZpYSB0ZXhTdG9yYWdlMkQuCkBAIC03NTIsMTIgKzg0NSwxNCBAQCBmdW5jdGlvbiB0ZXN0RFhU
VGV4dHVyZSh0ZXN0LCB1c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxpZCBkaW1lbnNpb25zIik7CiAKICAg
ICAgICAgaWYgKHdpZHRoID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRoZSB3aWR0aC9oZWlnaHQg
b2YgdGhlIGltcGxpZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGJsb2Nr
IHNpemUuCiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAxLCBmb3JtYXQsIDEsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyBm
b3IgbGV2ZWwgPiAwIik7CiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAxLCBmb3JtYXQsIDIsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInZhbGlkIGRpbWVuc2lvbnMgZm9y
IGxldmVsID4gMCIpOwogICAgICAgICB9CiAgICAgICAgIGlmIChoZWlnaHQgPT0gNCkgeworICAg
ICAgICAgICAgLy8gVGhlIHdpZHRoL2hlaWdodCBvZiB0aGUgaW1wbGllZCBiYXNlIGxldmVsIG11
c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGUgYmxvY2sgc2l6ZS4KICAgICAgICAgICAgIGdsLmNvbXBy
ZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDEsIDAsIGRh
dGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIpOwogICAgICAgICAgICAg
Z2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCB3aWR0aCwg
MiwgMCwgZGF0YSk7CkBAIC04MzUsMTQgKzkzMCwxNCBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVy
ZSh0ZXN0LCB1c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CiAgICAgICAg
ICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRF
UiwgZ2wuTkVBUkVTVCk7CiAgICAgICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wp
OwotICAgICAgICAgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywg
dW5jb21wcmVzc2VkRGF0YSwgIk5FQVJFU1QiKTsKKyAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdp
ZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJORUFSRVNUIiwg
dGVzdC5lcnJvcik7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgImRyYXdpbmcgdW5pdCBxdWFkIik7CiAgICAgICAgICAgICAvLyBOZXh0IHRlc3QgTElO
RUFSIGZpbHRlcmluZy4KICAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwogICAgICAgICAgICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVB
Uik7CiAgICAgICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwogICAgICAgICAg
ICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3aW5nIHVuaXQgcXVh
ZCIpOwotICAgICAgICAgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVs
cywgdW5jb21wcmVzc2VkRGF0YSwgIkxJTkVBUiIpOworICAgICAgICAgICAgY29tcGFyZVJlY3Qo
d2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YSwgIkxJTkVBUiIs
IHRlc3QuZXJyb3IpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtODczLDcgKzk2OCw3IEBAIGZ1
bmN0aW9uIHRlc3REWFQ1X1JHQkFfUEJPKCkgewogICAgIGdsLmJpbmRCdWZmZXIoZ2wuUElYRUxf
VU5QQUNLX0JVRkZFUiwgbnVsbCk7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsK
ICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImRyYXdpbmcgdW5pdCBx
dWFkIik7Ci0gICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIHVuY29tcHJl
c3NlZERhdGEsICJORUFSRVNUIik7CisgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hh
bm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJORUFSRVNUIiwgREVGQVVMVF9DT0xPUl9FUlJPUik7
CiAKICAgICAvLyBDbGVhciB0aGUgdGV4dHVyZSBiZWZvcmUgdGhlIG5leHQgdGVzdAogICAgIGds
LmJpbmRCdWZmZXIoZ2wuUElYRUxfVU5QQUNLX0JVRkZFUiwgbnVsbCk7CkBAIC04OTAsMTAgKzk4
NSwxMCBAQCBmdW5jdGlvbiB0ZXN0RFhUNV9SR0JBX1BCTygpIHsKICAgICBnbC5iaW5kQnVmZmVy
KGdsLlBJWEVMX1VOUEFDS19CVUZGRVIsIG51bGwpOwogICAgIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7CiAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3
aW5nIHVuaXQgcXVhZCIpOwotICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxz
LCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIpOworICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBo
ZWlnaHQsIGNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIsIERFRkFVTFRfQ09M
T1JfRVJST1IpOwogfQogCi1mdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFu
bmVscywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJpbmdNb2RlKSB7CitmdW5jdGlvbiBjb21wYXJlUmVj
dCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJpbmdNb2RlLCBj
b2xvckVycm9yKSB7CiAgICAgdmFyIGFjdHVhbCA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVp
Z2h0ICogNCk7CiAgICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBhY3R1YWwpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAicmVhZGluZyBiYWNrIHBpeGVscyIpOwpAQCAtOTEwLDE5ICsxMDA1LDE1
IEBAIGZ1bmN0aW9uIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCBleHBlY3Rl
ZERhdGEsIGZpbHRlcmluZ01vZGUpIHsKICAgICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IHdp
ZHRoOyArK3h4KSB7CiAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gKHl5ICogd2lkdGggKyB4eCkg
KiA0OwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gZXhwZWN0ZWREYXRhLnNsaWNlKG9mZnNl
dCwgb2Zmc2V0ICsgNCk7CisgICAgICAgICAgICBjb25zdCB3YXMgPSBhY3R1YWwuc2xpY2Uob2Zm
c2V0LCBvZmZzZXQgKyA0KTsKKwogICAgICAgICAgICAgLy8gQ29tcGFyZSBSR0IgdmFsdWVzCiAg
ICAgICAgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMzsgKytqaikgewotICAgICAgICAgICAg
ICAgIC8vIEFjY2VwdGFibGUgaW50ZXJwb2xhdGlvbiBlcnJvciBkZXBlbmRzIG9uIGVuZHBvaW50
czoKLSAgICAgICAgICAgICAgICAvLyAxLjAgLyAyNTUuMCArIDAuMDMgKiBtYXgoYWJzKGVuZHBv
aW50MCAtIGVuZHBvaW50MSksIGFicyhlbmRwb2ludDBfcCAtIGVuZHBvaW50MV9wKSkKLSAgICAg
ICAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgYXNzdW1lIHRoZSB3b3JzdCBjYXNlIChlMCBp
cyAwLjAsIGUxIGlzIDEuMCkuIEFmdGVyIGNvbnZlcnNpb24gdG8gdW5vcm04LCBpdCBpcyA5Lgot
ICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhhY3R1YWxbb2Zmc2V0ICsgampdIC0gZXhwZWN0
ZWRbampdKSA+IDkpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHdhcyA9IGFjdHVhbFtvZmZz
ZXQgKyAwXS50b1N0cmluZygpOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMTsg
aiA8IDM7ICsraikgewotICAgICAgICAgICAgICAgICAgICAgICAgd2FzICs9ICIsIiArIGFjdHVh
bFtvZmZzZXQgKyBqXTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
IChNYXRoLmFicyh3YXNbampdIC0gZXhwZWN0ZWRbampdKSA+IGNvbG9yRXJyb3IpIHsKICAgICAg
ICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgnUkdCIGF0ICgnICsgeHggKyAnLCAnICsgeXkgKwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWQgKyAnIMKxIDkgd2Fz
ICcgKyB3YXMpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGBSR0IgYXQgKCR7eHh9
LCAke3l5fSkgZXhwZWN0ZWQ6ICR7ZXhwZWN0ZWR9YCArCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYCArLy0gJHtjb2xvckVycm9yfSwgd2FzICR7d2FzfWApOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTkz
NywxNSArMTAyOCwxNSBAQCBmdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFu
bmVscywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJpbmdNb2RlKSB7CiAgICAgICAgICAgICAgICAgICAg
IC8vIENoZWNrIFJHQiB2YWx1ZXMuIE5vdGljZSwgdGhhdCB0aGUgY29uZGl0aW9uIGhlcmUKICAg
ICAgICAgICAgICAgICAgICAgLy8gaXMgbW9yZSBwZXJtaXNzaXZlIHRoYW4gbmVlZGVkIHNpbmNl
IHdlIGRvbid0IGhhdmUKICAgICAgICAgICAgICAgICAgICAgLy8gY29tcHJlc3NlZCBkYXRhIGF0
IHRoaXMgcG9pbnQuCi0gICAgICAgICAgICAgICAgICAgIGlmIChhY3R1YWxbb2Zmc2V0XSA9PSAw
ICYmCi0gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxbb2Zmc2V0ICsgMV0gPT0gMCAmJgot
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsW29mZnNldCArIDJdID09IDAgJiYKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFjdHVhbFtvZmZzZXQgKyAzXSA9PSAwKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICh3YXNbMF0gPT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgd2Fz
WzFdID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhc1syXSA9PSAwICYmCisgICAg
ICAgICAgICAgICAgICAgICAgICB3YXNbM10gPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlYnVnKCI8Yj5EWFQxIFJHQiBpcyBtYXBwZWQgdG8gRFhUMSBSR0JBPC9iPiIpOwog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0FscGhhIGF0
ICgnICsgeHggKyAnLCAnICsgeXkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWRbM10gKyAnIHdhcyAnICsgYWN0
dWFsW29mZnNldCArIDNdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnKSBleHBlY3RlZDogJyArIGV4cGVjdGVkWzNdICsgJyB3YXMgJyArIHdhcyk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVs
c2UgewpAQCAtOTUzLDExICsxMDQ0LDEwIEBAIGZ1bmN0aW9uIGNvbXBhcmVSZWN0KHdpZHRoLCBo
ZWlnaHQsIGNoYW5uZWxzLCBleHBlY3RlZERhdGEsIGZpbHRlcmluZ01vZGUpIHsKICAgICAgICAg
ICAgICAgICAvLyBBY2NlcHRhYmxlIGludGVycG9sYXRpb24gZXJyb3IgZGVwZW5kcyBvbiBlbmRw
b2ludHM6CiAgICAgICAgICAgICAgICAgLy8gMS4wIC8gNjU1MzUuMCArIDAuMDMgKiBtYXgoYWJz
KGVuZHBvaW50MCAtIGVuZHBvaW50MSksIGFicyhlbmRwb2ludDBfcCAtIGVuZHBvaW50MV9wKSkK
ICAgICAgICAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgYXNzdW1lIHRoZSB3b3JzdCBjYXNl
IChlMCBpcyAwLjAsIGUxIGlzIDEuMCkuIEFmdGVyIGNvbnZlcnNpb24gdG8gdW5vcm04LCBpdCBp
cyA4LgotICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhhY3R1YWxbb2Zmc2V0ICsgM10gLSBl
eHBlY3RlZFszXSkgPiA4KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB3YXMgPSBhY3R1YWxb
b2Zmc2V0ICsgM10udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMod2Fz
WzNdIC0gZXhwZWN0ZWRbM10pID4gOCkgewogICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdBbHBoYSBhdCAoJyArIHh4ICsg
JywgJyArIHl5ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcp
IGV4cGVjdGVkOiAnICsgZXhwZWN0ZWQgKyAnIMKxIDggd2FzICcgKyB3YXMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6ICcgKyBleHBlY3Rl
ZCArICcgKy8tIDggd2FzICcgKyB3YXMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRl
eHR1cmUtczN0Yy1zcmdiLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVy
ZS1zM3RjLXNyZ2IuaHRtbAppbmRleCBhMWEyMWFiMTRiN2ZiODQ0N2I5YTRhZTJjNjhmZmQ3Y2I0
ZjY2MGU1Li45MWZjM2YwYjFjNmFhMWZhMTIyMjJmNTNjMWNkNmE1MmQxMjkwZjI0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRtbApA
QCAtMjI2LDYgKzIyNiw3MiBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAgIGlm
IChjb250ZXh0VmVyc2lvbiA+PSAyKSB7CiAgICAgICAgIHRlc3REWFQ1X1NSR0JfQUxQSEFfUEJP
KCk7CiAgICAgfQorCisgICAgLy8gVGVzdCBUZXhJbWFnZSB2YWxpZGF0aW9uIG9uIGxldmVsIGRp
bWVuc2lvbnMgY29tYmluYXRpb25zLgorICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiV2hlbiBs
ZXZlbCBlcXVhbHMgMCwgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNC4i
KTsKKyAgICBkZWJ1ZygiV2hlbiBsZXZlbCBpcyBsYXJnZXIgdGhhbiAwLCB0aGlzIGNvbnN0cmFp
bnQgZG9lc24ndCBhcHBseS4iKTsKKyAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25z
KGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVu
c2lvbnMsCisgICAgICBbCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMs
IGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDR4MyIgfSwK
KyAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwgZXhwZWN0YXRpb246IGds
LklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMDogM3g0IiB9LAorICAgICAgICB7IGxldmVs
OiAwLCB3aWR0aDogMiwgaGVpZ2h0OiAyLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sIG1lc3NhZ2U6ICIwOiAyeDIiIH0sCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBo
ZWlnaHQ6IDQsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDR4NCIgfSwK
KyAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246IGds
Lk5PX0VSUk9SLCBtZXNzYWdlOiAiMTogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAyLCB3aWR0
aDogMSwgaGVpZ2h0OiAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAx
eDEiIH0sCisgICAgXSk7CisKKyAgICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwg
ZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25z
LCAxNiwgMTYsCisgICAgICBbCisgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lk
dGg6IDQsIGhlaWdodDogMywKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVS
QVRJT04sIG1lc3NhZ2U6ICJoZWlnaHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAg
ICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMywgaGVpZ2h0OiA0LAorICAgICAg
ICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIndpZHRoIGlz
IG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNldDog
MCwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJ
RF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ4b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0s
CisgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMSwgd2lkdGg6IDQsIGhlaWdodDogNCwK
KyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ5
b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMTIs
IHlvZmZzZXQ6IDEyLCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgIGV4cGVjdGF0aW9u
OiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgIF0pOworCisgICAgaWYg
KGNvbnRleHRWZXJzaW9uID49IDIpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiVGVzdGluZyBOUE9UIHRleHR1cmVzIik7CisgICAgICAgIGN0dS50ZXN0VGV4SW1hZ2VMZXZl
bERpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdl
dEJsb2NrRGltZW5zaW9ucywKKyAgICAgICAgICBbCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3
aWR0aDogMTIsIGhlaWdodDogMTIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTog
IjA6IDEyeDEyIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA2
LCBoZWlnaHQ6ICA2LCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiA2eDYs
IGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6ICAzLCBoZWlnaHQ6
ICAzLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAzeDMsIGlzIHZhbGlk
IiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMywgd2lkdGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBl
Y3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIzOiAxeDEsIGlzIHZhbGlkIiB9LAorICAg
ICAgICBdKTsKKworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIHBh
cnRpYWwgdXBkYXRlcyIpOworICAgICAgICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhn
bCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNp
b25zLCAxMiwgMTIsCisgICAgICAgIFsKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6
IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5W
QUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJoZWlnaHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIg
fSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6
IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3Nh
Z2U6ICJ3aWR0aCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsgeG9mZnNl
dDogMSwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICAgIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogInhvZmZzZXQgaXMgbm90IGEg
bXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdp
ZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9P
UEVSQVRJT04sIG1lc3NhZ2U6ICJ5b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisg
ICAgICAgICAgeyB4b2Zmc2V0OiA4LCB5b2Zmc2V0OiA4LCB3aWR0aDogNCwgaGVpZ2h0OiA0LAor
ICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiaXMgdmFsaWQi
IH0sCisgICAgICAgIF0pOworCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRl
c3RpbmcgaW1tdXRhYmxlIE5QT1QgdGV4dHVyZXMiKTsKKyAgICAgICAgY3R1LnRlc3RUZXhTdG9y
YWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVu
Z3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgICAgICAgICAgWworICAgICAgICAgICAgeyB3aWR0
aDogMTIsIGhlaWdodDogMTIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6
IDEyeDEyIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyB3aWR0aDogIDYsIGhlaWdodDogIDYs
IGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjE6IDZ4NiwgaXMgdmFsaWQiIH0s
CisgICAgICAgICAgICB7IHdpZHRoOiAgMywgaGVpZ2h0OiAgMywgZXhwZWN0YXRpb246IGdsLk5P
X0VSUk9SLCBtZXNzYWdlOiAiMjogM3gzLCBpcyB2YWxpZCIgfSwKKyAgICAgICAgICAgIHsgd2lk
dGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIz
OiAxeDEsIGlzIHZhbGlkIiB9LAorICAgICAgICBdKTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIHRl
c3REWFQxX1NSR0IoKSB7CkBAIC02MTcsMTIgKzY4MywxNCBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4
dHVyZSh0ZXN0LCB1c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxpZCBkaW1lbnNpb25zIik7CiAKICAgICAg
ICAgaWYgKHdpZHRoID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRoZSB3aWR0aC9oZWlnaHQgb2Yg
dGhlIGltcGxpZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNp
emUuCiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAx
LCBmb3JtYXQsIDEsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyBmb3Ig
bGV2ZWwgPiAwIik7CiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAxLCBmb3JtYXQsIDIsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInZhbGlkIGRpbWVuc2lvbnMgZm9yIGxl
dmVsID4gMCIpOwogICAgICAgICB9CiAgICAgICAgIGlmIChoZWlnaHQgPT0gNCkgeworICAgICAg
ICAgICAgLy8gVGhlIHdpZHRoL2hlaWdodCBvZiB0aGUgaW1wbGllZCBiYXNlIGxldmVsIG11c3Qg
YmUgYSBtdWx0aXBsZSBvZiB0aGUgYmxvY2sgc2l6ZS4KICAgICAgICAgICAgIGdsLmNvbXByZXNz
ZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDEsIDAsIGRhdGEp
OwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sICJpbnZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIpOwogICAgICAgICAgICAgZ2wu
Y29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCB3aWR0aCwgMiwg
MCwgZGF0YSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXcuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy5odG1sCmluZGV4IGFkZWFiMzEyZTVkMDE3ODM5
YTA0ODc3MjM3NzZhZjI2NGE0MGRmZmEuLjQyNmU0NjMwN2U2OTAwNzdjYjZkYjhlMzIwZjgzMThk
NTUwYzkxODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy5odG1sCkBAIC0zNzEsNyArMzcxLDcgQEAg
ZnVuY3Rpb24gZG9UZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAgICAgd3R1LmNoZWNrQ2FudmFzKGds
LCBbMCwgMjU1LCAwLCAyNTVdLCAiZ2xfRHJhd0lEIGlzIDAgZm9yIG5vbi1NdWx0aSogZHJhdyBj
YWxscyIsIDApOwogICB9CiAKLSAgZnVuY3Rpb24gcnVuUGl4ZWxUZXN0cyhidWZmZXJVc2FnZSkg
eworICBmdW5jdGlvbiBydW5QaXhlbFRlc3RzKGJ1ZmZlclVzYWdlLCB1c2VTaGFyZWRBcnJheUJ1
ZmZlcikgewogICAgIC8vIEFuIGFycmF5IG9mIHF1YWRzIGlzIHRpbGVkIGFjcm9zcyB0aGUgc2Ny
ZWVuLgogICAgIC8vIGdsX0RyYXdJRCBpcyBjaGVja2VkIGJ5IHVzaW5nIGl0IHRvIHNlbGVjdCB0
aGUgY29sb3Igb2YgdGhlIGRyYXcuCiAgICAgLy8gSW5zdGFuY2VkIGVudHJ5cG9pbnRzIGFyZSB0
ZXN0ZWQgaGVyZSBzY2FsaW5nIGFuZCB0aGVuIGluc3RhbmNpbmcgdGhlCkBAIC01MDYsMTAgKzUw
NiwxOCBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0LCBpbnN0YW5jZWQpIHsKICAgICAgIHd0dS5jaGVj
a0NhbnZhc1JlY3RzKGdsLCByZWN0cyk7CiAgICAgfQogCi0gICAgY29uc3QgZmlyc3RzID0gbmV3
IFVpbnQzMkFycmF5KHRyaV9jb3VudCk7Ci0gICAgY29uc3QgY291bnRzID0gbmV3IFVpbnQzMkFy
cmF5KHRyaV9jb3VudCk7Ci0gICAgY29uc3Qgb2Zmc2V0cyA9IG5ldyBVaW50MzJBcnJheSh0cmlf
Y291bnQpOwotICAgIGNvbnN0IGluc3RhbmNlcyA9IG5ldyBVaW50MzJBcnJheSh0cmlfY291bnQp
OworICAgIGZ1bmN0aW9uIG5ld0ludEFycmF5KGNvdW50KSB7CisgICAgICBpZiAoIXVzZVNoYXJl
ZEFycmF5QnVmZmVyKSB7CisgICAgICAgIHJldHVybiBuZXcgSW50MzJBcnJheShjb3VudCk7Cisg
ICAgICB9CisgICAgICBsZXQgc2FiID0gbmV3IFNoYXJlZEFycmF5QnVmZmVyKGNvdW50ICogSW50
MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCk7CisgICAgICByZXR1cm4gbmV3IEludDMyQXJyYXko
c2FiKTsKKyAgICB9CisKKyAgICBjb25zdCBmaXJzdHMgPSBuZXdJbnRBcnJheSh0cmlfY291bnQp
OworICAgIGNvbnN0IGNvdW50cyA9IG5ld0ludEFycmF5KHRyaV9jb3VudCk7CisgICAgY29uc3Qg
b2Zmc2V0cyA9IG5ld0ludEFycmF5KHRyaV9jb3VudCk7CisgICAgY29uc3QgaW5zdGFuY2VzID0g
bmV3SW50QXJyYXkodHJpX2NvdW50KTsKIAogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlyc3Rz
Lmxlbmd0aDsgKytpKSBmaXJzdHNbaV0gPSBpICogMzsKICAgICBjb3VudHMuZmlsbCgzKTsKQEAg
LTUyMSw3ICs1MjksNyBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0LCBpbnN0YW5jZWQpIHsKICAgICBj
b25zdCBvZmZzZXRzT2Zmc2V0ID0gY291bnRzT2Zmc2V0ICsgY291bnRzLmxlbmd0aDsKICAgICBj
b25zdCBpbnN0YW5jZXNPZmZzZXQgPSBvZmZzZXRzT2Zmc2V0ICsgaW5zdGFuY2VzLmxlbmd0aDsK
IAotICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50MzJBcnJheShmaXJzdHNPZmZzZXQgKyBmaXJz
dHMubGVuZ3RoICsgY291bnRzLmxlbmd0aCArIG9mZnNldHMubGVuZ3RoICsgaW5zdGFuY2VzLmxl
bmd0aCk7CisgICAgY29uc3QgYnVmZmVyID0gbmV3SW50QXJyYXkoZmlyc3RzT2Zmc2V0ICsgZmly
c3RzLmxlbmd0aCArIGNvdW50cy5sZW5ndGggKyBvZmZzZXRzLmxlbmd0aCArIGluc3RhbmNlcy5s
ZW5ndGgpOwogICAgIGJ1ZmZlci5zZXQoZmlyc3RzLCBmaXJzdHNPZmZzZXQpOwogICAgIGJ1ZmZl
ci5zZXQoY291bnRzLCBjb3VudHNPZmZzZXQpOwogICAgIGJ1ZmZlci5zZXQob2Zmc2V0cywgb2Zm
c2V0c09mZnNldCk7CkBAIC02NjQsNiArNjcyLDggQEAgZnVuY3Rpb24gZG9UZXN0KGV4dCwgaW5z
dGFuY2VkKSB7CiAgICAgICAgIGNvbmZpZy5pbnN0YW5jZWQgPyAnIGluc3RhbmNlZCcgOiAnJwog
ICAgICAgKSArICgKICAgICAgICAgY29uZmlnLmRyYXdJRCA/ICcgd2l0aCBnbF9EcmF3SUQnIDog
JycKKyAgICAgICkgKyAoCisgICAgICAgIHVzZVNoYXJlZEFycmF5QnVmZmVyID8gJyBhbmQgU2hh
cmVkQXJyYXlCdWZmZXInIDogJycKICAgICAgICkpOwogCiAgICAgICBnbC5kaXNhYmxlVmVydGV4
QXR0cmliQXJyYXkoMCk7CkBAIC04MjcsNyArODM3LDEyIEBAIGZ1bmN0aW9uIGRvVGVzdChleHQs
IGluc3RhbmNlZCkgewogICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggQnVmZmVyVXNhZ2UgPSAiICsg
YnVmZmVyVXNhZ2UpOwogICAgIHJ1blZhbGlkYXRpb25UZXN0cyhidWZmZXJVc2FnZSk7CiAgICAg
cnVuU2hhZGVyVGVzdHMoYnVmZmVyVXNhZ2UpOwotICAgIHJ1blBpeGVsVGVzdHMoYnVmZmVyVXNh
Z2UpOworICAgIHJ1blBpeGVsVGVzdHMoYnVmZmVyVXNhZ2UsIGZhbHNlKTsKKyAgfQorCisgIC8v
IFJ1biBhIHN1YnNldCBvZiB0aGUgcGl4ZWwgdGVzdHMgd2l0aCBTaGFyZWRBcnJheUJ1ZmZlciBp
ZiBzdXBwb3J0ZWQuCisgIGlmICh3aW5kb3cuU2hhcmVkQXJyYXlCdWZmZXIpIHsKKyAgICBydW5Q
aXhlbFRlc3RzKGJ1ZmZlclVzYWdlU2V0WzBdLCB0cnVlKTsKICAgfQogfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL3dlYmdsLXdlYmNvZGVjcy12aWRlby1mcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9u
cy93ZWJnbC13ZWJjb2RlY3MtdmlkZW8tZnJhbWUuaHRtbAppbmRleCAxYjVjMTVkNmQyMTllZWYw
MGRkNDMyYzUyMmIyYmM3ZDM5MWI0ZmIyLi5mMGU0MTNlMmY2ZjQ3NGNjYjZiZWEyZTAzYjg4NTEz
MGUwZGZmNTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLXdlYmNvZGVjcy12aWRlby1m
cmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtd2ViY29kZWNzLXZpZGVvLWZyYW1lLmh0
bWwKQEAgLTEsMjExICsxLDIxMSBAQAotPCEtLQotQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08aGVhZD4KLSAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgotICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMvb3V0
LW9mLWJvdW5kcy10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2V4dGVuc2lvbnMvcHJvcG9zYWxzL1dFQkdMX3dlYmNvZGVjc192aWRlb19mcmFtZS93ZWJnbF93
ZWJjb2RlY3NfdmlkZW9fZnJhbWUuanMiPjwvc2NyaXB0PgotICA8c3R5bGU+Ci0gICAgY2FudmFz
IHsKLSAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICBiYWNrZ3JvdW5kOiBnb2xkOwotICAgIH0K
LQotICAgIGJ1dHRvbiB7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NTU1OwotICAgICAg
Ym9yZGVyOiBub25lOwotICAgICAgY29sb3I6IHdoaXRlOwotICAgICAgcGFkZGluZzogMTVweCAz
MnB4OwotICAgICAgd2lkdGg6IDE1MHB4OwotICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAg
ICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICBmb250LXNpemU6IDE2cHg7Ci0gICAgfQotICA8L3N0
eWxlPgotPC9oZWFkPgotCi08Ym9keT4KLSAgPGNhbnZhcyBpZD0ic3JjIiB3aWR0aD0iNjQwIiBo
ZWlnaHQ9IjQ4MCI+PC9jYW52YXM+Ci0gIDxjYW52YXMgaWQ9ImRzdCIgd2lkdGg9IjY0MCIgaGVp
Z2h0PSI0ODAiPjwvY2FudmFzPgotICA8cCBpZD0iaW5mbyI+PC9wPgotICA8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Ci0gIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICA8c2NyaXB0Pgot
ICAgICJ1c2Ugc3RyaWN0IjsKLSAgICBkZXNjcmlwdGlvbigiVGVzdCBvZiBpbXBvcnRpbmcgVmlk
ZW9mcmFtZSBmcm9tIFdlYmNvZGVjcyB0byBXZWJnbCIpOwotCi0gICAgY29uc3Qga0lzUnVubmlu
Z1Rlc3QgPSB0cnVlOwotICAgIGNvbnN0IGtNYXhGcmFtZSA9IDEwOwotICAgIGNvbnN0IGtUZXN0
UGl4ZWwgPSBbMjU1LCAxMjgsIDAsIDI1NV07Ci0gICAgLy8gU3VtIG9mIHBpeGVsIGRpZmZlcmVu
Y2Ugb2YgUi9HL0IgY2hhbm5lbC4gVXNlIHRvIGRlY2lkZSB3aGV0aGVyIGEKLSAgICAvLyBwaXhl
bCBpcyBtYXRjaGVkIHdpdGggYW5vdGhlci4KLSAgICBjb25zdCBjb2RlY19zdHJpbmcgPSAidnAw
OS4wMC41MS4wOC4wMCI7Ci0KLSAgICBsZXQgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gICAgbGV0
IGNudiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcmMiKTsKLSAgICBsZXQgc3JjX3dpZHRo
ID0gY252LndpZHRoOwotICAgIGxldCBzcmNfaGVpZ2h0ID0gY252LmhlaWdodDsKLSAgICBsZXQg
c3JjX2NvbG9yID0gInJnYmEoIiArIGtUZXN0UGl4ZWxbMF0udG9TdHJpbmcoKSArICIsIiArIGtU
ZXN0UGl4ZWxbMV0udG9TdHJpbmcoKSArICIsIgotICAgICAgKyBrVGVzdFBpeGVsWzJdLnRvU3Ry
aW5nKCkgKyAiLCIgKyBrVGVzdFBpeGVsWzNdLnRvU3RyaW5nKCkgKyAiKSI7Ci0gICAgbGV0IGZy
YW1lX2NvdW50ZXIgPSAwOwotICAgIGxldCBwaXhlbENvbXBhcmVUb2xlcmFuY2UgPSA1OwotCi0g
ICAgZnVuY3Rpb24gZ2V0UXVlcnlWYXJpYWJsZSh2YXJpYWJsZSkgewotICAgICAgdmFyIHF1ZXJ5
ID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7Ci0gICAgICB2YXIgdmFycyA9
IHF1ZXJ5LnNwbGl0KCImIik7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhcnMubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgdmFyIHBhaXIgPSB2YXJzW2ldLnNwbGl0KCI9Iik7Ci0gICAgICAg
IGlmIChwYWlyWzBdID09IHZhcmlhYmxlKSB7IHJldHVybiBwYWlyWzFdOyB9Ci0gICAgICB9Ci0g
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgbGV0IHRoID0gcGFyc2VJbnQoZ2V0UXVl
cnlWYXJpYWJsZSgndGhyZXNob2xkJykpOwotICAgIGlmICghaXNOYU4odGgpKQotICAgICAgcGl4
ZWxDb21wYXJlVG9sZXJhbmNlID0gdGg7Ci0KLSAgICBhc3luYyBmdW5jdGlvbiBzdGFydERyYXdp
bmcoKSB7Ci0gICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOwot
ICAgICAgdmFyIGN0eCA9IGNudi5nZXRDb250ZXh0KCcyZCcsIHsgYWxwaGE6IGZhbHNlIH0pOwot
Ci0gICAgICBjdHguZmlsbFN0eWxlID0gc3JjX2NvbG9yOwotICAgICAgbGV0IGRyYXdPbmVGcmFt
ZSA9IGZ1bmN0aW9uICh0aW1lKSB7Ci0gICAgICAgIGN0eC5maWxsU3R5bGUgPSBzcmNfY29sb3I7
Ci0gICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBzcmNfd2lkdGgsIHNyY19oZWlnaHQpOwotICAg
ICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRyYXdPbmVGcmFtZSk7Ci0gICAgICB9
Ci0gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRyYXdPbmVGcmFtZSk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gY2FwdHVyZUFuZEVuY29kZShwcm9jZXNzQ2h1bmspIHsKLSAgICAg
IGxldCBjbnYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3JjIik7Ci0gICAgICBsZXQgZnBz
ID0gNjA7Ci0gICAgICBsZXQgcGVuZGluZ19vdXRwdXRzID0gMDsKLSAgICAgIGxldCBzdHJlYW0g
PSBjbnYuY2FwdHVyZVN0cmVhbShmcHMpOwotICAgICAgbGV0IHByb2Nlc3NvciA9IG5ldyBNZWRp
YVN0cmVhbVRyYWNrUHJvY2Vzc29yKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdKTsKLQotICAg
ICAgY29uc3QgaW5pdCA9IHsKLSAgICAgICAgb3V0cHV0OiAoY2h1bmspID0+IHsKLSAgICAgICAg
ICB0ZXN0UGFzc2VkKCJFbmNvZGUgZnJhbWUgc3VjY2Vzc2Z1bGx5LiIpOwotICAgICAgICAgIHBl
bmRpbmdfb3V0cHV0cy0tOwotICAgICAgICAgIHByb2Nlc3NDaHVuayhjaHVuayk7Ci0gICAgICAg
IH0sCi0gICAgICAgIGVycm9yOiAoZSkgPT4gewotICAgICAgICAgIHRlc3RGYWlsZWQoIkZhaWxl
ZCB0byBlbmNvZGUgZnJhbWUuIik7Ci0gICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAg
IHZ0ci5zdG9wKCk7Ci0gICAgICAgIH0KLSAgICAgIH07Ci0KLSAgICAgIGNvbnN0IGNvbmZpZyA9
IHsKLSAgICAgICAgY29kZWM6IGNvZGVjX3N0cmluZywKLSAgICAgICAgd2lkdGg6IGNudi53aWR0
aCwKLSAgICAgICAgaGVpZ2h0OiBjbnYuaGVpZ2h0LAotICAgICAgICBiaXRyYXRlOiAxMGU2LAot
ICAgICAgICBmcmFtZXJhdGU6IGZwcywKLSAgICAgIH07Ci0KLSAgICAgIGxldCBlbmNvZGVyID0g
bmV3IFZpZGVvRW5jb2Rlcihpbml0KTsKLSAgICAgIGVuY29kZXIuY29uZmlndXJlKGNvbmZpZyk7
Ci0KLSAgICAgIGNvbnN0IGZyYW1lX3JlYWRlciA9IHByb2Nlc3Nvci5yZWFkYWJsZS5nZXRSZWFk
ZXIoKTsKLSAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiBwcm9jZXNzRnJh
bWUoe2RvbmUsIHZhbHVlfSkgewotICAgICAgICBpZiAoZG9uZSkKLSAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgaWYgKHBlbmRpbmdfb3V0cHV0cyA+IDMwKSB7Ci0gICAgICAgICAgY29uc29s
ZS5sb2coImRyb3AgdGhpcyBmcmFtZSIpOwotICAgICAgICAgIC8vIFRvbyBtYW55IGZyYW1lcyBp
biBmbGlnaHQsIGVuY29kZXIgaXMgb3ZlcndoZWxtZWQKLSAgICAgICAgICAvLyBsZXQncyBkcm9w
IHRoaXMgZnJhbWUuCi0gICAgICAgICAgdmFsdWUuY2xvc2UoKTsKLSAgICAgICAgICBmcmFtZV9y
ZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0ZyYW1lKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZihmcmFtZV9jb3VudGVyID09IGtNYXhGcmFtZSkgewotICAgICAg
ICAgIGZyYW1lX3JlYWRlci5yZWxlYXNlTG9jaygpOwotICAgICAgICAgIHByb2Nlc3Nvci5yZWFk
YWJsZS5jYW5jZWwoKTsKLSAgICAgICAgICB2YWx1ZS5jbG9zZSgpOwotICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIGZyYW1lX2NvdW50ZXIrKzsKLSAgICAgICAgcGVuZGlu
Z19vdXRwdXRzKys7Ci0gICAgICAgIGNvbnN0IGluc2VydF9rZXlmcmFtZSA9IChmcmFtZV9jb3Vu
dGVyICUgMTUwKSA9PSAwOwotICAgICAgICBlbmNvZGVyLmVuY29kZSh2YWx1ZSwgeyBrZXlGcmFt
ZTogaW5zZXJ0X2tleWZyYW1lIH0pOwotCi0gICAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhl
bihwcm9jZXNzRnJhbWUpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RhcnRE
ZWNvZGluZ0FuZFJlbmRlcmluZyhjbnYsIGhhbmRsZUZyYW1lKSB7Ci0gICAgICBjb25zdCBpbml0
ID0gewotICAgICAgICBvdXRwdXQ6IGhhbmRsZUZyYW1lLAotICAgICAgICBlcnJvcjogKGUpID0+
IHsKLSAgICAgICAgICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lLiIpOwotICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgfQotICAgICAgfTsKLQotICAgICAgY29uc3Qg
Y29uZmlnID0gewotICAgICAgICBjb2RlYzogY29kZWNfc3RyaW5nLAotICAgICAgICBjb2RlZFdp
ZHRoOiBjbnYud2lkdGgsCi0gICAgICAgIGNvZGVkSGVpZ2h0OiBjbnYuaGVpZ2h0LAotICAgICAg
ICBhY2NlbGVyYXRpb246ICJkZW55IiwKLQotICAgICAgfTsKLQotICAgICAgbGV0IGRlY29kZXIg
PSBuZXcgVmlkZW9EZWNvZGVyKGluaXQpOwotICAgICAgZGVjb2Rlci5jb25maWd1cmUoY29uZmln
KTsKLSAgICAgIHJldHVybiBkZWNvZGVyOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGlzRnJhbWVQ
aXhlbE1hdGNoZWQoZ2wsIHRoX3Blcl9waXhlbCA9IHBpeGVsQ29tcGFyZVRvbGVyYW5jZSkgewot
ICAgICAgV2ViR0xUZXN0VXRpbHMuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBzcmNfd2lkdGgs
IHNyY193aWR0aCwga1Rlc3RQaXhlbCwgInNob3VsZCBiZSBvcmFuZ2UiLCBwaXhlbENvbXBhcmVU
b2xlcmFuY2UpCi0gICAgfQotCi0gICAgZnVuY3Rpb24gbWFpbigpIHsKLSAgICAgIGlmICghKCJW
aWRlb0VuY29kZXIiIGluIHdpbmRvdykpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgiV2ViQ29kZWNz
IEFQSSBpcyBub3Qgc3VwcG9ydGVkLiIpOwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICAgIH0KLSAgICAgIGxldCBjbnYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZHN0Iik7Ci0KLSAgICAgIGxldCB3ZWJnbF93ZWJjb2RlY3NfdGVzdF9jb250ZXh0ID0gewot
ICAgICAgICBtYXhGcmFtZVRlc3RlZDoga01heEZyYW1lLAotICAgICAgICBkaXNwbGF5ZWRfZnJh
bWU6IDAsCi0gICAgICAgIGlzRnJhbWVQaXhlbE1hdGNoZWQ6IGlzRnJhbWVQaXhlbE1hdGNoZWQs
Ci0gICAgICAgIHRlc3RGYWlsZWQ6IHRlc3RGYWlsZWQsCi0gICAgICAgIHRlc3RQYXNzZWQ6IHRl
c3RQYXNzZWQsCi0gICAgICAgIGZpbmlzaFRlc3Q6IGZpbmlzaFRlc3QKLSAgICAgIH07Ci0gICAg
ICBzZXRUZXN0TW9kZSh3ZWJnbF93ZWJjb2RlY3NfdGVzdF9jb250ZXh0KTsKLSAgICAgIGxldCBo
YW5kbGVGcmFtZSA9IHJlcXVlc3RXZWJHTFZpZGVvRnJhbWVIYW5kbGVyKGNudik7Ci0gICAgICBp
ZiAoaGFuZGxlRnJhbWUgPT09IG51bGwpIHsKLSAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAg
ICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHN0YXJ0RHJhd2luZygpOwotICAgICAgbGV0IGRl
Y29kZXIgPSBzdGFydERlY29kaW5nQW5kUmVuZGVyaW5nKGNudiwgaGFuZGxlRnJhbWUpOwotICAg
ICAgY2FwdHVyZUFuZEVuY29kZSgoY2h1bmspID0+IHsKLSAgICAgICAgZGVjb2Rlci5kZWNvZGUo
Y2h1bmspOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBt
YWluOwotICA8L3NjcmlwdD4KLQotPC9ib2R5PgotCis8IS0tDQorQ29weXJpZ2h0IChjKSAyMDIx
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4NCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQ0KK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLg0KKy0tPg0KKw0KKzwhRE9DVFlQRSBodG1sPg0KKzxodG1sPg0KKw0K
KzxoZWFkPg0KKyAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KKyAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+DQorICA8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pg0KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Rlc3RzL291dC1vZi1ib3VuZHMtdGVzdC5qcyI+PC9zY3JpcHQ+DQorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZXh0ZW5zaW9ucy9wcm9wb3NhbHMvV0VCR0xfd2ViY29k
ZWNzX3ZpZGVvX2ZyYW1lL3dlYmdsX3dlYmNvZGVjc192aWRlb19mcmFtZS5qcyI+PC9zY3JpcHQ+
DQorICA8c3R5bGU+DQorICAgIGNhbnZhcyB7DQorICAgICAgcGFkZGluZzogMTBweDsNCisgICAg
ICBiYWNrZ3JvdW5kOiBnb2xkOw0KKyAgICB9DQorDQorICAgIGJ1dHRvbiB7DQorICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogIzU1NTU1NTsNCisgICAgICBib3JkZXI6IG5vbmU7DQorICAgICAgY29s
b3I6IHdoaXRlOw0KKyAgICAgIHBhZGRpbmc6IDE1cHggMzJweDsNCisgICAgICB3aWR0aDogMTUw
cHg7DQorICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KKyAgICAgIGRpc3BsYXk6IGJsb2NrOw0K
KyAgICAgIGZvbnQtc2l6ZTogMTZweDsNCisgICAgfQ0KKyAgPC9zdHlsZT4NCis8L2hlYWQ+DQor
DQorPGJvZHk+DQorICA8Y2FudmFzIGlkPSJzcmMiIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIj48
L2NhbnZhcz4NCisgIDxjYW52YXMgaWQ9ImRzdCIgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiPjwv
Y2FudmFzPg0KKyAgPHAgaWQ9ImluZm8iPjwvcD4NCisgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4NCisgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKyAgPHNjcmlwdD4NCisgICAgInVz
ZSBzdHJpY3QiOw0KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBvZiBpbXBvcnRpbmcgVmlkZW9mcmFt
ZSBmcm9tIFdlYmNvZGVjcyB0byBXZWJnbCIpOw0KKw0KKyAgICBjb25zdCBrSXNSdW5uaW5nVGVz
dCA9IHRydWU7DQorICAgIGNvbnN0IGtNYXhGcmFtZSA9IDEwOw0KKyAgICBjb25zdCBrVGVzdFBp
eGVsID0gWzI1NSwgMTI4LCAwLCAyNTVdOw0KKyAgICAvLyBTdW0gb2YgcGl4ZWwgZGlmZmVyZW5j
ZSBvZiBSL0cvQiBjaGFubmVsLiBVc2UgdG8gZGVjaWRlIHdoZXRoZXIgYQ0KKyAgICAvLyBwaXhl
bCBpcyBtYXRjaGVkIHdpdGggYW5vdGhlci4NCisgICAgY29uc3QgY29kZWNfc3RyaW5nID0gInZw
MDkuMDAuNTEuMDguMDAiOw0KKw0KKyAgICBsZXQgd3R1ID0gV2ViR0xUZXN0VXRpbHM7DQorICAg
IGxldCBjbnYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3JjIik7DQorICAgIGxldCBzcmNf
d2lkdGggPSBjbnYud2lkdGg7DQorICAgIGxldCBzcmNfaGVpZ2h0ID0gY252LmhlaWdodDsNCisg
ICAgbGV0IHNyY19jb2xvciA9ICJyZ2JhKCIgKyBrVGVzdFBpeGVsWzBdLnRvU3RyaW5nKCkgKyAi
LCIgKyBrVGVzdFBpeGVsWzFdLnRvU3RyaW5nKCkgKyAiLCINCisgICAgICArIGtUZXN0UGl4ZWxb
Ml0udG9TdHJpbmcoKSArICIsIiArIGtUZXN0UGl4ZWxbM10udG9TdHJpbmcoKSArICIpIjsNCisg
ICAgbGV0IGZyYW1lX2NvdW50ZXIgPSAwOw0KKyAgICBsZXQgcGl4ZWxDb21wYXJlVG9sZXJhbmNl
ID0gNTsNCisNCisgICAgZnVuY3Rpb24gZ2V0UXVlcnlWYXJpYWJsZSh2YXJpYWJsZSkgew0KKyAg
ICAgIHZhciBxdWVyeSA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOw0KKyAg
ICAgIHZhciB2YXJzID0gcXVlcnkuc3BsaXQoIiYiKTsNCisgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHZhcnMubGVuZ3RoOyBpKyspIHsNCisgICAgICAgIHZhciBwYWlyID0gdmFyc1tpXS5zcGxp
dCgiPSIpOw0KKyAgICAgICAgaWYgKHBhaXJbMF0gPT0gdmFyaWFibGUpIHsgcmV0dXJuIHBhaXJb
MV07IH0NCisgICAgICB9DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorDQorICAgIGxl
dCB0aCA9IHBhcnNlSW50KGdldFF1ZXJ5VmFyaWFibGUoJ3RocmVzaG9sZCcpKTsNCisgICAgaWYg
KCFpc05hTih0aCkpDQorICAgICAgcGl4ZWxDb21wYXJlVG9sZXJhbmNlID0gdGg7DQorDQorICAg
IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0RHJhd2luZygpIHsNCisgICAgICBsZXQgY252ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOw0KKyAgICAgIHZhciBjdHggPSBjbnYuZ2V0Q29udGV4
dCgnMmQnLCB7IGFscGhhOiBmYWxzZSB9KTsNCisNCisgICAgICBjdHguZmlsbFN0eWxlID0gc3Jj
X2NvbG9yOw0KKyAgICAgIGxldCBkcmF3T25lRnJhbWUgPSBmdW5jdGlvbiAodGltZSkgew0KKyAg
ICAgICAgY3R4LmZpbGxTdHlsZSA9IHNyY19jb2xvcjsNCisgICAgICAgIGN0eC5maWxsUmVjdCgw
LCAwLCBzcmNfd2lkdGgsIHNyY19oZWlnaHQpOw0KKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmlt
YXRpb25GcmFtZShkcmF3T25lRnJhbWUpOw0KKyAgICAgIH0NCisgICAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGRyYXdPbmVGcmFtZSk7DQorICAgIH0NCisNCisgICAgZnVuY3Rpb24g
Y2FwdHVyZUFuZEVuY29kZShwcm9jZXNzQ2h1bmspIHsNCisgICAgICBsZXQgY252ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOw0KKyAgICAgIGxldCBmcHMgPSA2MDsNCisgICAgICBs
ZXQgcGVuZGluZ19vdXRwdXRzID0gMDsNCisgICAgICBsZXQgc3RyZWFtID0gY252LmNhcHR1cmVT
dHJlYW0oZnBzKTsNCisgICAgICBsZXQgcHJvY2Vzc29yID0gbmV3IE1lZGlhU3RyZWFtVHJhY2tQ
cm9jZXNzb3Ioc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0pOw0KKw0KKyAgICAgIGNvbnN0IGlu
aXQgPSB7DQorICAgICAgICBvdXRwdXQ6IChjaHVuaykgPT4gew0KKyAgICAgICAgICB0ZXN0UGFz
c2VkKCJFbmNvZGUgZnJhbWUgc3VjY2Vzc2Z1bGx5LiIpOw0KKyAgICAgICAgICBwZW5kaW5nX291
dHB1dHMtLTsNCisgICAgICAgICAgcHJvY2Vzc0NodW5rKGNodW5rKTsNCisgICAgICAgIH0sDQor
ICAgICAgICBlcnJvcjogKGUpID0+IHsNCisgICAgICAgICAgdGVzdEZhaWxlZCgiRmFpbGVkIHRv
IGVuY29kZSBmcmFtZS4iKTsNCisgICAgICAgICAgZmluaXNoVGVzdCgpOw0KKyAgICAgICAgICB2
dHIuc3RvcCgpOw0KKyAgICAgICAgfQ0KKyAgICAgIH07DQorDQorICAgICAgY29uc3QgY29uZmln
ID0gew0KKyAgICAgICAgY29kZWM6IGNvZGVjX3N0cmluZywNCisgICAgICAgIHdpZHRoOiBjbnYu
d2lkdGgsDQorICAgICAgICBoZWlnaHQ6IGNudi5oZWlnaHQsDQorICAgICAgICBiaXRyYXRlOiAx
MGU2LA0KKyAgICAgICAgZnJhbWVyYXRlOiBmcHMsDQorICAgICAgfTsNCisNCisgICAgICBsZXQg
ZW5jb2RlciA9IG5ldyBWaWRlb0VuY29kZXIoaW5pdCk7DQorICAgICAgZW5jb2Rlci5jb25maWd1
cmUoY29uZmlnKTsNCisNCisgICAgICBjb25zdCBmcmFtZV9yZWFkZXIgPSBwcm9jZXNzb3IucmVh
ZGFibGUuZ2V0UmVhZGVyKCk7DQorICAgICAgZnJhbWVfcmVhZGVyLnJlYWQoKS50aGVuKGZ1bmN0
aW9uIHByb2Nlc3NGcmFtZSh7ZG9uZSwgdmFsdWV9KSB7DQorICAgICAgICBpZiAoZG9uZSkNCisg
ICAgICAgICAgcmV0dXJuOw0KKw0KKyAgICAgICAgaWYgKHBlbmRpbmdfb3V0cHV0cyA+IDMwKSB7
DQorICAgICAgICAgIGNvbnNvbGUubG9nKCJkcm9wIHRoaXMgZnJhbWUiKTsNCisgICAgICAgICAg
Ly8gVG9vIG1hbnkgZnJhbWVzIGluIGZsaWdodCwgZW5jb2RlciBpcyBvdmVyd2hlbG1lZA0KKyAg
ICAgICAgICAvLyBsZXQncyBkcm9wIHRoaXMgZnJhbWUuDQorICAgICAgICAgIHZhbHVlLmNsb3Nl
KCk7DQorICAgICAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihwcm9jZXNzRnJhbWUpOw0K
KyAgICAgICAgICByZXR1cm47DQorICAgICAgICB9DQorDQorICAgICAgICBpZihmcmFtZV9jb3Vu
dGVyID09IGtNYXhGcmFtZSkgew0KKyAgICAgICAgICBmcmFtZV9yZWFkZXIucmVsZWFzZUxvY2so
KTsNCisgICAgICAgICAgcHJvY2Vzc29yLnJlYWRhYmxlLmNhbmNlbCgpOw0KKyAgICAgICAgICB2
YWx1ZS5jbG9zZSgpOw0KKyAgICAgICAgICByZXR1cm47DQorICAgICAgICB9DQorDQorICAgICAg
ICBmcmFtZV9jb3VudGVyKys7DQorICAgICAgICBwZW5kaW5nX291dHB1dHMrKzsNCisgICAgICAg
IGNvbnN0IGluc2VydF9rZXlmcmFtZSA9IChmcmFtZV9jb3VudGVyICUgMTUwKSA9PSAwOw0KKyAg
ICAgICAgZW5jb2Rlci5lbmNvZGUodmFsdWUsIHsga2V5RnJhbWU6IGluc2VydF9rZXlmcmFtZSB9
KTsNCisNCisgICAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihwcm9jZXNzRnJhbWUpOw0K
KyAgICAgIH0pOw0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIHN0YXJ0RGVjb2RpbmdBbmRSZW5k
ZXJpbmcoY252LCBoYW5kbGVGcmFtZSkgew0KKyAgICAgIGNvbnN0IGluaXQgPSB7DQorICAgICAg
ICBvdXRwdXQ6IGhhbmRsZUZyYW1lLA0KKyAgICAgICAgZXJyb3I6IChlKSA9PiB7DQorICAgICAg
ICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIik7DQorICAgICAgICAgIGZp
bmlzaFRlc3QoKTsNCisgICAgICAgIH0NCisgICAgICB9Ow0KKw0KKyAgICAgIGNvbnN0IGNvbmZp
ZyA9IHsNCisgICAgICAgIGNvZGVjOiBjb2RlY19zdHJpbmcsDQorICAgICAgICBjb2RlZFdpZHRo
OiBjbnYud2lkdGgsDQorICAgICAgICBjb2RlZEhlaWdodDogY252LmhlaWdodCwNCisgICAgICAg
IGFjY2VsZXJhdGlvbjogImRlbnkiLA0KKw0KKyAgICAgIH07DQorDQorICAgICAgbGV0IGRlY29k
ZXIgPSBuZXcgVmlkZW9EZWNvZGVyKGluaXQpOw0KKyAgICAgIGRlY29kZXIuY29uZmlndXJlKGNv
bmZpZyk7DQorICAgICAgcmV0dXJuIGRlY29kZXI7DQorICAgIH0NCisNCisgICAgZnVuY3Rpb24g
aXNGcmFtZVBpeGVsTWF0Y2hlZChnbCwgdGhfcGVyX3BpeGVsID0gcGl4ZWxDb21wYXJlVG9sZXJh
bmNlKSB7DQorICAgICAgV2ViR0xUZXN0VXRpbHMuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBz
cmNfd2lkdGgsIHNyY193aWR0aCwga1Rlc3RQaXhlbCwgInNob3VsZCBiZSBvcmFuZ2UiLCBwaXhl
bENvbXBhcmVUb2xlcmFuY2UpDQorICAgIH0NCisNCisgICAgZnVuY3Rpb24gbWFpbigpIHsNCisg
ICAgICBpZiAoISgiVmlkZW9FbmNvZGVyIiBpbiB3aW5kb3cpKSB7DQorICAgICAgICB0ZXN0UGFz
c2VkKCJXZWJDb2RlY3MgQVBJIGlzIG5vdCBzdXBwb3J0ZWQuIik7DQorICAgICAgICBmaW5pc2hU
ZXN0KCk7DQorICAgICAgICByZXR1cm47DQorICAgICAgfQ0KKyAgICAgIGxldCBjbnYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZHN0Iik7DQorDQorICAgICAgbGV0IHdlYmdsX3dlYmNvZGVj
c190ZXN0X2NvbnRleHQgPSB7DQorICAgICAgICBtYXhGcmFtZVRlc3RlZDoga01heEZyYW1lLA0K
KyAgICAgICAgZGlzcGxheWVkX2ZyYW1lOiAwLA0KKyAgICAgICAgaXNGcmFtZVBpeGVsTWF0Y2hl
ZDogaXNGcmFtZVBpeGVsTWF0Y2hlZCwNCisgICAgICAgIHRlc3RGYWlsZWQ6IHRlc3RGYWlsZWQs
DQorICAgICAgICB0ZXN0UGFzc2VkOiB0ZXN0UGFzc2VkLA0KKyAgICAgICAgZmluaXNoVGVzdDog
ZmluaXNoVGVzdA0KKyAgICAgIH07DQorICAgICAgc2V0VGVzdE1vZGUod2ViZ2xfd2ViY29kZWNz
X3Rlc3RfY29udGV4dCk7DQorICAgICAgbGV0IGhhbmRsZUZyYW1lID0gcmVxdWVzdFdlYkdMVmlk
ZW9GcmFtZUhhbmRsZXIoY252KTsNCisgICAgICBpZiAoaGFuZGxlRnJhbWUgPT09IG51bGwpIHsN
CisgICAgICAgIGZpbmlzaFRlc3QoKTsNCisgICAgICAgIHJldHVybjsNCisgICAgICB9DQorDQor
ICAgICAgc3RhcnREcmF3aW5nKCk7DQorICAgICAgbGV0IGRlY29kZXIgPSBzdGFydERlY29kaW5n
QW5kUmVuZGVyaW5nKGNudiwgaGFuZGxlRnJhbWUpOw0KKyAgICAgIGNhcHR1cmVBbmRFbmNvZGUo
KGNodW5rKSA9PiB7DQorICAgICAgICBkZWNvZGVyLmRlY29kZShjaHVuayk7DQorICAgICAgfSk7
DQorICAgIH0NCisNCisgICAgZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBtYWluOw0KKyAgPC9zY3Jp
cHQ+DQorDQorPC9ib2R5Pg0KKw0KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2No
YXJhY3Rlci1zZXQuaHRtbAppbmRleCAxYmE4NTQ2MTNjNmFmMmZjOWZjZDViN2JmOTNlNjg4MGJl
YTQ4ZmFlLi42ZDZmY2E1Zjg5OWYzOGQ0NTBkNTU4YzhmZmJiNzQ1OTc2MDY3NDRjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jaGFyYWN0
ZXItc2V0Lmh0bWwKQEAgLTExMSw3ICsxMTEsNSBAQCBkZWJ1ZygiIik7CiB2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvZ2xzbC9jb25zdHJ1Y3RvcnMvZ2xzbC1jb25zdHJ1Y3QtdmVjLW1hdC1pbmRleC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
Z2xzbC9jb25zdHJ1Y3RvcnMvZ2xzbC1jb25zdHJ1Y3QtdmVjLW1hdC1pbmRleC5odG1sCmluZGV4
IDhhOWZiZWJjNTk0NWI1MjkxMjc2ZTc0YjlhNGNjMzRhZGFiMGFmYjUuLjA4NGQ1MzJmOGE2NGM1
ZWE5YTc4NmRkNTlmYjk3NDlmOTlmOTkzZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29uc3RydWN0b3Jz
L2dsc2wtY29uc3RydWN0LXZlYy1tYXQtaW5kZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2NvbnN0cnVjdG9y
cy9nbHNsLWNvbnN0cnVjdC12ZWMtbWF0LWluZGV4Lmh0bWwKQEAgLTQ5LDYgKzQ5LDUgQEAgdm9p
ZCBtYWluKCkKIEdMU0xDb25mb3JtYW5jZVRlc3Rlci5ydW5SZW5kZXJUZXN0KCk7CiB2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2QxNTVlZDYxYmY1MDFiZGQzZTZkNzZlMGEwMzJmZTQzMWIwNDY5ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEzICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0KLUNvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPjxib2R5PgotPGNhbnZhcyBpZD0i
Z2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0
aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PC9jYW52YXM+Ci08aW1nIGlkPSJpIj4KLTxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12
YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVz
b3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVz
b3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Ci0KLVRlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFBy
ZXZlbnRzIHRoZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCi0K
LVRlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdnbCcpOwotICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29u
dGV4dChjYW52YXMpKTsKLSAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnRlc3RSZWFkUGl4ZWxz
ID0gZnVuY3Rpb24oZ2wpIHsKLSAgLy8gd2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRv
IGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAotICAvLyBvciBiZWNhdXNlIHRoZSBidWZm
ZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25zLgotICBhc3NlcnRTb21lR0xFcnJv
cihnbCwgIm5lZ2F0aXZlIHdpZHRoIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygw
LDAsLTEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhB
cnJheSg0KSk7fSk7Ci0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAgIm5lZ2F0aXZlIGhlaWdodCIs
Ci0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsLTEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICBhc3NlcnRP
aygibmVnYXRpdmUgeCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoLTEsMCwxLDEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkp
O30pOwotICBhc3NlcnRPaygibmVnYXRpdmUgeSIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQ
aXhlbHMoMCwtMSwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3
IFVpbnQ4QXJyYXkoNCkpO30pOwotICBhc3NlcnRPaygiaGVpZ2h0ID4gYmFja2J1ZmZlciBoZWln
aHQiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxNiwxNywgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgxNioxNyo0KSk7fSk7
Ci0gIGFzc2VydE9rKCJ3aWR0aCA+IGJhY2tidWZmZXIgd2lkdGgiLAotICAgICAgZnVuY3Rpb24o
KXtnbC5yZWFkUGl4ZWxzKDAsMCwxNywxNiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAg
ICAgICAgICBuZXcgVWludDhBcnJheSgxNyoxNio0KSk7fSk7Ci0gIGFzc2VydE9rKCJ3aWR0aCwg
aGVpZ2h0ID0gMCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDAsMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgwKSk7fSk7
Ci0gIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2Yg
bmVnYXRpdmUgd2lkdGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBt
YXRjaCB0aGUgZGltZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgZm9ybWF0
IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5GTE9BVCwgZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KjQpKTt9KTsKLSAgLy8g
d2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2
ZSB3aWR0aAotICAvLyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRo
ZSBkaW1lbnNpb25zLgotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgImJhZCB0eXBlIiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5BTFBIQSwgZ2wuRkxPQVQsCi0g
ICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMSo0KSk7fSk7Ci19Ci0KLVRlc3RzLnRlc3RSZWFkUGl4
ZWxzU09QSU1HID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImkiKTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgLy8gU09QIGZhaWx1cmUKLSAg
ICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRocm93IGJlY2F1c2UgaW1nIGlzIGZyb20gYW5v
dGhlciBkb21haW4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7Ci0gICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgYXNzZXJ0T2soImNhbnZh
cyBzdGlsbCBvcmlnaW4tY2xlYW4iLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAs
MCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJy
YXkoNCkpO30pOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLX0KLVRlc3RzLnRlc3RSZWFk
UGl4ZWxzU09QQ2FudmFzID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImkiKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjIik7Ci0gICAgYy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICAg
IGFzc2VydEZhaWwoImNhbnZhcyB0aHJvd3MgYmVjYXVzZSBub3Qgb3JpZ2luIGNsZWFuIiwKLSAg
ICAgIGZ1bmN0aW9uKCl7Yy5nZXRDb250ZXh0KCIyZCIpLmdldEltYWdlRGF0YSgwLDAsMSwxKTt9
KTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgLy8gU09QIGZhaWx1cmUKLSAgICBhc3NlcnRUaHJv
d05vR0xFcnJvcihnbCwgInRocm93IGJlY2F1c2UgY2FudmFzIGlzIG5vdCBvcmlnaW4gY2xlYW4i
LAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3JpZ2lu
LWNsZWFuIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAg
ICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Ci19Ci0KLVRlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihn
bCkgewotfTsKLQotKGFzeW5jIGZ1bmN0aW9uKCkgewotICBjb25zdCBpbWcgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaScpOwotICB0cnkgewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91
dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1Vy
bCkpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVk
ICgke2V9KS5gKTsKLSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGluaXRU
ZXN0cygpOwotfSkoKTsKLTwvc2NyaXB0PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFn
ZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Y2M3OGQxNjM1NzU2
NWZlNjUzOGVlYmZmOWY3ZjEzMTRhZTNlOTEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIg
aHJlZj0iLi4vdW5pdC5jc3MiIC8+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L2phdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRl
eDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29v
cmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24g
PSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHkt
aGZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVy
dGV4OwotYXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9p
ZCBtYWluKCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwg
MC4wKTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+
Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
LXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOwot
Ci12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2ZWM0IGMgPSB0
ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29sb3IgPSBjOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2
IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0aD0iMjU2IiBoZWln
aHQ9IjI1NiI+PC9jYW52YXM+Ci08aW1nIGlkPSJpIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIg
IHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFB
QUVBQ0FZQUFBQmNjcWhtQUFBVFZFbEVRVlI0bk8zZCtWUFVkNTdIY2YyYjlrOVkrejQ0K3FLN09a
b0dGVkE1VmZCR3phaDljeHBOekdFT29SdWE1bEJFdWUvREs0Zlo3TWFwbVNtM01sc2h1OHhPZENw
REp0M3YvYUVCQVVIQU9NRzR6MGZWNTNmcVUvVjZmZDdmVC9lMzJiRURBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQXdPdkJrYXI3bCszK0d3QnNrOHhVclQwclRiOHZ4MlE0NWphbmx1N1lzV1Buc2dYZ1Rl
WXdhazg1VTNYdjVaaU0zK1hiVWgvbDJkSUNCYzYwODBXWjF1cjkyYmFTSFJRQjhHYXlHZFVXdTFI
em9TTkZPK1pNMWYyY2JUTE01MWxUNXdvYzVya0RPYmJaL1ZtMlNFbTIzVnZzeWpoVjVuSlFCc0Ni
eEdaUVZ0bU42cDRNby9ZUGRxTkdIS2xheVVyWEo5eldsRVNoMHhJdnpzbVlMM0haNTRwek1tNlZ1
UnlSTXBmVFcrcHlVQWJBbThCbVZOVm5HTlRUZHFQNnZ6T01HckduYU1TWnFwTnNrMTd5YktsUzZE
VEwvaXhib3RSbGo1ZmxPdWJMM0k2NU1wZmpWcm5iRWFsWUtJTlNsMzM1dlFHQTN3S2JVVzJ4R2RX
UkRLUDY2d3lqV2hZTHdKR2lGV2VhVHJKTkJuRmJVMlNQM1NUN3M2eFNtbXVYY3JjelVlNTJ4c3R6
SGZQbGJzZGN1ZHQ1cXl6WDNsS1dseGtzelhHZUs4bXhueXpKeVNqZVFSa0FyemViUVZsbE02cDdi
VWIxNDlVRjRFalZTbWFhVHJMUzllS3lwTWdlZTdvY3lMWkptZHNoRlhtWlVwSG5YRkVHQi9Pekpz
cmRqcUV5dC9ObVdhNDlYSmJ0OUphNk1rNFZ1N2hFQkY1TE5yMnEzbVpRejlnTTZ1OVhGRUJxc2dD
Y2FUckpYSmdFY2kwcHN0ZGhrdjNaTmluTlRaYkFvZndzT1pTZkpRZnpNcVU4ejVrb2R6c1NaYm1P
ZUlYYitYVzUyekZhNW5MY0tuUFpJMlVMbDRqRmZLSUF2QjdNT3JYRlpsQkhiQWIxMXphaitrbUdV
Yk51QVdTbTY1ZEtZSGRHbWhSbFdxUTh6eUZIQ25MaytMNWNPVjZVSzBjS1hWSzVKMXNPNW1kS2hk
c3BaYXZLb0RUWDBWUGljaVRMSUh0RkdWQUl3Sy9OWWxCVzJmVHFYcHRCL2RobVNKNytMeXFBckhT
OTVKaVRKVkRnTkVsbFFaWjRLZ3VscnJwVTZxdExKWEJzdjV3dDN5TW45cnZsYUlGTERpOHZnMXhI
NG1CKzVwK1dsMEZwanIybEpNY1JMTTZ5bnl2T3pqaHhJSXQ3QStCWFk5R3I2cTBMNC85U0FhUm94
TDd3L0w5V0FXU2JESkpyVFpGaWQ0WjRqeFpKVS8xeHVmSGhPZW0rZWs2aWwwL0xCNzRxYVR4VEpv
R2orK1ZzMlI0NXZqOVhqaFRreU9IZEM0OEpDMlZ3YUhmbW55cmN6bit2Y0RzbXluTHRReVU1R1Rl
TGN6TENwVGsyVDNHVzdWaHhWc2FlN2Q0ZjRJMWwxcWt0Vm9NNllqT292cllhMUQ4c0ZvQjlXUUU0
MTVrQTh1MXBjdlJBam53VU9pTERMUUc1MTkwbzkyNDJ5bFJIblF5Ry9YTHo2bm1KWHFxV0QzeVYw
bkM2VlB4SDk4blpzdDF5ZkYrdUhDMTBTZFhlYkRtVW55eURxb0xzN3c3bFozNWI3bmI4c2N4dC83
ZFNsMzJrSkNlanF5UW40MHBKVGtiWkRpWUM0Tld6YUpWVlZyMnExMlpRUGJZYTFIOWZ1d0IwU3dX
UWxhNlhMRk95QUFveVRmTFc0VDNTZnVXTTNMM1JJQS83TDh2RC9zdnlaZThsK2V6VzIzS3Z1MUVt
TzJwbG9Oa24zVmZQU2V2YjFmSyt0MUlhejVSSjdjbGk4UjBwa3RPbCtYS3NLRmtHQnhmS29ISnYx
bDhQNW1mK3VTTFA4ZnZ5WE1kTW1kc1JLWGM1cW90ZEdRWGJ2Vi9BRzhXaVY5VmI5YW9acTE0MWF6
T294V2JjWEFIa1dsT2tKQzlEYWs4WHk2MVBMOGlEbm90TEJiQlVCSDJYNVl2YmwrUkJ6MFc1ZTZO
Qkp0cHJwTC9aSnpjL09pL1hQM2hMV2k2ZWt2YzhoNld1dWtTOFZjL0tZUEVDOFdoaHpwT3FndXp2
S3ZkbWZYVjRkMmIzd2Z6TTl3L2xaVEVOQUsrQ1dhZXdXSFdxaUUydit0cXFWLzJ3MlFMSU5oa2tQ
Mk5oL0s4OUltTnRJZm1pOTlLejhQY2wxNWRMNjVKODBYdEpQci8xdHR5LzJTaDN1eHZrenZWNkdZ
K0ZwTythVjY1LzhEdUpYRHdwVnp5SHBPN1VRaG1VNU12UklwZFU3YzJSUTd1ejVNUis5eCtPRmJu
dUhpM01pVlFWdUtvUDc4NHUydTc5QTM3VExGcGxsVlduNnJYcVZZK3RldFdQR3hiQXNndkF2VTZU
dkhWb3Q4U3VuSlk3TitybHk3NjFnLzlsYjNKOXNXeDlmdnVTZkg3N2JYblFjMUh1ZFRmSVRGZWRq
TFdGcFBlYVI3bytlRXZDalNmbHlvVkRVbGRkS3NIakIrVEM0VUk1Vlp3blZRVTVpYmNxOW54MXVq
Uy81OFFCOTlYcVluZjVEcVlCNE9WWWRNL0dmNnRlOVkvazgvL0dCZUN5R0tYRW5TRTExUWVrNTVQ
emN2OW00OHJRcnhQOEwyNWZraTl1dnkyZnIxcWYzYnFZbkF4dU5NaDBaNTJNUklOeSsxT1BYUC93
ZDlKKzVZdzAxNStRZDg0ZmxKcVR4WExoY0lHY0xNNzcrVWhCenQ4dVZCYTJucXZjZS9ac3haNnk3
ZDVMNERkbGNmeTM2RlZmVy9TcUg2d0dsYXd1Z01XdkFUdlRsaFdBeVNCNUdhbHlkSCtPZkZSelJF
YWpRZm44MXR2cmgvNkZ3VjljRitXeld4Zmx3YTJMY3Ivbm90enJicFNaNi9VeTFWVW5reDIxTXR3
U2tKNVBMa2pIZTJlbHFmNjRYRDUzVUVJbkRpUXVIQzZZcnk3T216MVc1SHJZK0ZiRjRSMU1BOERt
V0xUS0tzdXk4ZDlxVUwrd0FKWi9DM0NQTTEzT0h0d3RiZStlbHVucjlmTEZ1c0YvUHZTZjMxbzcr
QTk2bnEzN1BSZmxmaytqM0wrWi9Gang3bzBHbWU2cWs0bjJHaGxxOFV2UHgrZWwvY29adVZaM1hD
NmZxL2k1N2xUeDMycE9IbmdVT2xVYy9qUjRsRXRDWUNNV25hcmVvbGZOV1BTcVdhdEI5ZE9hQmJE
R2w0QmNGcU1VdTIwU09uVkFibjU4VHU1Mk4yN3F0UDk4ZzlBL1dBejlRdkFYMTczRkV1aHVrTHZk
RGNuSm9MTld4bU0xTWhqeHk4MlB6a25uKzJjU3NYZFB6NGNiVDh4K0dLaDgrRkh3U08wT1NnQllt
MW1uc0poMXFvaEZyMXdZLzVYeFp3V3cvdGVBczlLVHZ3dHdaSCsyWEExVnlYQnJVQjcwWEZ6L3RG
OW56TjlLOE85MU44aTloZkF2cmpzM0d1VE9qWHFaWG5oRUdHK3ZrZEZvVUFiRC9wOTdQajcvdDU2
cjU3L3B1K2I1cE9YZDZxUGJ2ZGZBYThlaTNWVmwwYWw2TFhybFk0dE8rYU5GcjBwc3RnRDJPTkxs
ek1IZEVuMm5XcVk2NitTemx4enpIeXdiODU4TC9UckJ2M3ZqV2ZnWDE4ejE1SnJ1cXBPcHpscVph
QThseG1LaHY0OUdnMy9vRC9zKzN1NjlCbDQ3RnAyaTNxSlZ6VmgweWxtclR2bVRWWis4QUZ6NUhz
RHpCWkJqTmtweHJrMkNwdzVJOTBmbjVNNk5oaGVlOWxzT2Z2Zm1nMy9uK3JQd3oxeXZrNW11T3Bs
ZVdKTWR0ZkhKanBydkpqdHFLQUJndWVUNHI0aVlkY3F2emJwZFAxajB5dmpxQXJDdjlTSlF1bDdj
dGxTcDJwY3RId1lyWmFnbElQZHZOcTUvMnIvZ1ltOVR3Yit4OWVCUGQ5WEpWSElTbUovcXJQMW11
ck9HUndCZ09aTjJWNVZGcCt5MWFCZkdmNTB5c1ZRQWEzd0hZTEVBc3RMMXN0dVJMcWNyOHFYMThp
bVo3S2lWQnowWFh4ajZqWi92TnhuODZ4c0hQL2tJVUNkVG5YWHg2YzdhdjB4MTFQUnM5MTREcngy
VFRsRnYwaXBtekRybHJFV24vTW1pVjhsbUNpRGJiSkFEdVRZSm50d3ZONjcrVG1hdTF5ZER2bWJv
dDM2eDl5ejQ5UzhaL05yRk5UL2RWZnY3cWM2Nms5dTkxOEJyeGF4ZVBmNHI0aHNWZ0hQaDl3Qnpy
U2xTVlpRdEh3UXFaVERpbDd2ZGpWczc3YmNZL0ptdEIxK21PbXNUa3gyMVQ2YTZha2UyZTYrQjE0
NUp1NnZLcEZQMm1yVEt4MmJ0cy9GLzhWdUFMeXFBM2ZZME9WMmVMeTJYVHNwRWU0M2NmOEd6L1RZ
RVh5WTdhbVd5b3lZKzFWSHovVlJuWGZOMjd6WHcybGthLzdYS1dZdFcrWk5GcDVUTkZFQzJ5U0Q3
WFZZSm5OZ25YUisrSmROZGRacys3WCtkNE5mS1pFZU5USGJVekU5MjFEeWE1UElQV0NsTnJiQ1l0
Y254MzZUZDlZTlpwNGhiZEtxTkMyQmgvSzhzekpMMy9ZZGxJT3lUT3pjYXR2d3gzc1kzK3I4bytE
TFpFVXBNdE5jOG1laGcvQWVlWTFMdnFqSnBsYjBtamVLeFdhdjQwYXhWSmxZWHdGcHZBbWFtNlNU
Zm5pYlZaWGtTZWZ1a2pNVkNjcmQ3RXlQK2VxZjlsb0pmdTJId0p6cHFaS0s5UnNiYlEvSEo5dEQz
azUwMWpQL0FhaWFOb3Q2a1NZNy9acTNpSjdOT0tZc1hnQzhxZ0N5VFFmYmxXTVYvZko5MGZuQldK
anRyVjR6M1d6bnRuN3ZSdi81ODZMY2EvR2NyTkQvUkhubzAyYzc0RDZ5UXBsWllURnBGeEtSVkxJ
My9Ld3ZnK1JlQjdDbkozd0Z3V1ZMa2NHR1d2T2MvTFAzTlhwbTVYdi9MVC90TkJuOXlFOEVmVDRZ
L01SNExQUmx2RHpIK0E2dVpOWXBLazNaWGIvckMrRy9TS2hLYkxZQzhqRFE1VlpZbjRZc25aTFF0
S0hkdWJDNzBteDN6ZjBud3g5dERNaDRMeVZnc0ZCK1BCYjhmYjJmOEI1NlRybEhVcDJzVjB5YU5Z
bW44MzB3QlpLWHJaVisyUlh6SDkwbkgrMmRsb3FNbVdRQ3Y0TFIvK2VDSGxvSy9FSDRaandYbngy
UEJSMlB0UWNaL1lEbVRScG1hcmxZMG1UUzd2a3JUS1A1cTBpcCtOdXVVWXRtZ0FCeXBXbkZaakhL
b0lGT3VlQTlKWDVOSHBydnFOaDM2elo3MnZ5VDRDK0ZQakxZRm40ekhnb3ovd0dvbXphN2Q2WnBk
TVpORzhZMUpvM2hpMWk0OC8yK2lBUEl5VXVWa3FWdWFHay9JU0RRb005ZGYzV20vTXZnMVd3NytX
Q3drWTIxQkdXMEx4a2ZiZ3QrUHhVS00vOEJxYVpwZHU5UFVpaWFUUnZHVlNhdjR5OUluQUJzVVFH
YTZYb3F5TGVJOVZpVHQ3NTJSOGZiUXFzQy80dE4raThFZmF3dkthRFFvSTlIQS9HaGI4SnV4S09N
LzhCeVQ1bDlUMDlTS1FMcEdNV1RTS3Y3VHJGVThOZXVVaWVVRllGdjFZeUNPVksza21KUGovN3Zl
ZzlKN3pTTlRuYld2NkxSL0JjRmZXQ1BSUUh3a0d2akxTRFRBbTMvQWV0TFZ5anlUUnZtT1NhdVlO
T3NVMzVwMXluOXNWQUJ1VzZxY0xNMlZhdzNIWmJnMUlOTmRyK2EwWC9zei9LMEZmelFhbE5Gb0lI
bjZSd08vSDJrTDh1WWY4Q0ltemE1Q2syN1hlMmF0Y3NxaVU4YlhMWUFValdTbTY2UXd5eXplWTRV
U3UzSmF4bUtodFVQL2kwLzdtaFdoWHhIOHR2V0NINVNSYUVCR280SEVTS3YveVdocmdNcy9ZRFBT
ZGNvaXMxYnh2a1duZkdyUksrTnJGWUE5UlN2WlpvTWMzT3VVZHp3SDVmYTFDekxSVWZOUFBlM0gx
emp0MXd2KzRocHVEY1JIb29IdlI2SUJMditBelRMcmxFVm1uZktoUmFkOGFsM3o1OEMwNHJhbHlJ
bVNYTG5XY0V5R1d2MHkyVmtyVTEzUGgvNmxUdnNOZ2orNlFmQkhXZ015M0JxUTRWYi8vSEJyNE5G
STFNL2xIN0FWRnIwcVlOR3JIbHIxcXFjMmd5cSsvRTFBWjVwT0NyTk00amxhSUcxWFRzdG9XL0Nm
ZDlxL1ZQQURNdHpxVHd5MytKOE1NLzRETDJYbmloSXdxdUkybzFyc0tSckpOaG1rWXE5RExsK29r
RnVmbkpmeDlwcG5vVi92Yy91dG52YXhOY2I4VFFVL0lNT3RmaGxxOGNlSFcvemZEMGNERjdaN0k0
SGZxcDAydlNwZzA2c2UyZ3pxcHhsR1RkeWVvcEZjYTRvY0wzSEpwL1ZIWlREaWs0bU96WTM0TDMz
YWIrN0VYd3ord3ZMTkQ3Y0VibzIwQmpLM2V4T0IzN0tkTnFNNllET29IMllZMVUrZGFicDRRYVpK
TGh6Wks5RjNxMlVrR3BDSkRVLzcwS3M3N1RjTXZsK0dXbnlKd1lqdnlWQkw0SjN0M2p6Z1RiRFRa
bFFITW95YWg5bG0vZE9LUGM3NHBmUGwwdlB4T1JtTGhYNmQwMzVUd1Y5WUVWOThzTVUvTlJEbThn
OTRWWGJhVTdVQmw4WDQ4RVNKNitrbjlVZCtIZ2g3RXVQdG9WZHoycmR0SnZRdkR2NWd4TGV3dkg4
Y2lIZzdobG9DbHUzZU5PQk5zdE50U3czNGp4YzliSDJuZW5hb3hUYzMzaDZhSDR1RjR1UHR3Y1I0
OG4vdS9STk8rODBHM3lkREVkLy9ESVI5OXdiQ3ZzYnQzaXpnVGJUemFxZ3kwUFB4dWZCSU5CQWJi
dzg5R28rRlpzZGpvYm54OXREY2FDdzRQOW9XakkvRmdvbXhXQ0F4K2dwTysrRzF4dnhWd1IrTStH
UXc3UDF4TU94N1BCajI5ZlpIdkZYYnZWSEFtMnJuNHByc3JLa2Q2d2lGUjl0RHNmSDJtdGhJTFBS
b3JDMDRPOVlXbWh1TmhlWkcyd0x6STlGZ2ZMUXRrQmlOQmhMUGhmNFhuUGFMYXlEaWs0R3dUd2JD
M3Y4ZGFQWStISWo0UHVwdjlqTCtBNytDbmN2WGVIdE43V2dzR0I2TmhXS2pzVkJzSkJwOE5Cb056
bzVFQTNNTGEzNjROUkFmYWZVbmhwUHI1VTc3bGNHWGdiRDM3d05oejUvN203MGpBMkhQbVczZUUr
RC9yWldGMEJhc0hXNExoa2VpZ2RoSUxCUWJiZzA4R200TnpBNjMrT2VHVy94elE2MysrYUVXZjN5
b3haZElybVdoYjNrKzlJTkxvVjhLdnZRM2UrTUR6ZDRmK3BzOS85RWY5cllOUkh5T2JkNERBQXRX
Rk1Kb1c3QjJ1RFVZSG9vR1lrUFJRR3lveGY5b3FNVTNPeFR4elExRmZITkRMYjc1b1lndlBoanhK
cFpXZU8zZ0o4UHZTZlEzZVg4YUNIdG4rNXU5TTMzTlhQNEJyN01WaFREY0dxZ2RidldIQjF2OXNj
RldmMnd3NG44MEdQSE5Eb2E5YzRNUjM5eGcyRHMzRVBiT0Q0Uzk4WUd3SnpFUTlpVDZtNzNTMyt5
VnZtYlBmSCt6Wjc2dnlmTzB2OW43cDc1bWIyOS9NNWQvd0cvSmM0VXcxT0lQOTBmOHNjR0lQOVlm
OGNjR3dyNUhBMkh2N0VDemQyNmcyVHZYbHd4OXZLL1o4MjEvcytlLytwbzgzL1kzZVQ3cmEvWTBj
ZmtIL0xidFhMMkdXbnkxQTJGZnVDL3NqZldIdmJIK1pzK2p2ckQzWm0rVFo2aTN5VFBXMSt5WjdH
dnlYTzlyOXZpMzkwOEg4TSt3b2hCNm03eGx0Njk1VHc2RWZlY0d3MTVmZjVQbm5iNW1UNkQzMm9V
RDIveDNBdmdWN2R5eFk4Zk9nU2F2dTcvSms5VjN6YXZlN2o4SUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
SUNWL2c5dFBKRVF1MVh2bVFBQUFBQkpSVTVFcmtKZ2dnPT0iPgotPGltZyBpZD0iaTIiPgotCi08
c2NyaXB0PgotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGRlZmF1bHRJbWdVcmwgPSAi
aHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy90aHVuZGVyYmlyZC1s
b2dvLTY0eDY0LnBuZyI7Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL3Ro
dW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nIjsKLQotVGVzdHMuYXV0b2luaXQgPSBmYWxzZTsgLy8g
UHJldmVudHMgdGhlIHRlc3QgZnJvbSBydW5uaW5nIHVudGlsIHRoZSBpbWFnZSBpcyBsb2FkZWQK
LQotVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKLSAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdl
dEdMQ29udGV4dChjYW52YXMpKTsKLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNh
bnZhcy5oZWlnaHQpOwotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIo
Z2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2Fi
bGUoZ2wuREVQVEhfVEVTVCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0g
ZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBn
bC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01B
UCwgdGV4Q3ViZU1hcCk7Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBm
dW5jdGlvbihnbCwgdGV4LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgbnVsbCk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUo
dGV4Q3ViZU1hcCk7Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsK
LSAgICBnbC5lbmFibGUoZ2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaScpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsK
LSAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1n
LDAsMCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RP
X0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIHZhciBmID0gbmV3IEZp
bHRlcihnbCwgJ2lkZW50aXR5LWZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wu
YmxlbmRGdW5jKGdsLk9ORSwgZ2wuWkVSTyk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJv
eSgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0
eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JD
X0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5k
ZXN0cm95KCk7Ci0gICAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCi0gICAgICAgIGdsLlRFWFRVUkVf
MkQsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICAgICAgZ2wu
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQ
X1BPU0lUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAg
ICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgICAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1oKLSAgICBdOwotICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChm
dW5jdGlvbih0KSB7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0
LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICAgICAg
YXNzZXJ0T2soZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIH0pOwotfQotCi1UZXN0cy50ZXN0VGV4SW1h
Z2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpMicpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Mn
KTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2Uo
aW1nLDAsMCk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGgg
Y3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0
aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAi
dGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotfQotCi1UZXN0cy5lbmRV
bml0ID0gZnVuY3Rpb24oZ2wpIHsKLX07Ci0KLShhc3luYyBmdW5jdGlvbigpIHsKLSAgICBjb25z
dCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB0cnkgewotICAgICAg
ICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywg
ZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgICAgIGZpbmlz
aFRlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpbml0VGVzdHMoKTsKLX0pKCk7
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjhlYzJhYTA5N2IxZmQzMTRl
ODE3NWM3MTVhYzNiZWYwMTY2ZjM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJl
Zj0iLi4vdW5pdC5jc3MiIC8+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVy
L3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRleDsK
LQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29vcmQw
ID0gdmVjNChUZXgucywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktaGZs
aXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVydGV4
OwotYXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBt
YWluKCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwgMC4w
KTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+Ci08
c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXBy
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOwotCi12
YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2ZWM0IGMgPSB0ZXh0
dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29sb3IgPSBjOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+PGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVp
Z2h0PSIyNTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIy
NTYiPjwvY2FudmFzPgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9
ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNB
WUFBQUJjY3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZB
NVZmQkd6YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2
L2FFQkFVSEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUF3T3ZCa2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4
NVUzWHY1WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05G
TytaTTFmMmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFW
dG1ONnA0TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1w
ZlRXK3B5VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4
Ym90UmxqNWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2
Nnd5aldoWUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxi
c2RjdWR0NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5
VUY0RWpWU21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFF
eXQvTm1XYTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJK
WEpnRWNpMHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIr
WFc1MnpGYTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFX
U202NWRLWUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2
S29EVFgwVlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlU
SlZEZ05FbGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1
cCtXbDBGcGpyMmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9M
OVdBV1NiREpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytW
czJSNDV2ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxD
cFRrMlQzR1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4
dTFwY3ZSQWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQ
eEg5OG5ac3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMy
a0pDZWpxeVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZY
TEZPeUFBb3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxv
TmtuM1ZmUFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVt
Zit1U0xQOGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdi
Y1hBSGtXbE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBy
cEwvWkp6Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1m
WFY0ZDJiM3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9L
ODlJbU50SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8r
YVY2NS84RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNN
aVZRVnVLb1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90
OFN1bkpZN04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQ
ZWFSN28rZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThR
Qjk5WHFZbmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjlt
NDhyUXJ4UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1
WXcwMTUrUWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDRE
ZGxjZnkzNkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZu
ODF0dnJoLzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQ
TGtqSGUyZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtL
c3V5OGQ5cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5x
MzdQUmZsZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9p
NTdsVHgzMnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJj
RnFNVXUyMFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpv
TE5XeG1NMU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNK
aDFxb2hGcjF3WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45
SzhPOTFOOGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9w
dStiNXBPWGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRF
bjJuV3FZNjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHht
S2h2NDlHZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpC
ak5rcHhyazJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1k
dGZISmpwcnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3Ay
cGN0SHdZclphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3
QmdPWk4yVjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tp
VkJ6MFhYeGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2
MGlwbXpEcmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5
eXo0OVM4Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1Za
UXRId1FxWlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2
S3BGUDJtclRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3
YW1XeW95WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpu
TmduWFIrK0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2
VGQ5WU5acDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVw
TXROYzhtZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJW
WlhrU2VmdWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFq
UC9BYWlhTm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0
ejNXem50bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2
ZytSZUI3Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRM
UFJsdkR6SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHVi
QzcwbXgzemYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMw
d0JaS1hyWlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQ
dFFjWi9ZRG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91
ZUE5Slg1TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4
WTFKbzNoaTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1ky
MUJHVzBMeGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9x
eUxlSTlWaVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlU
NWw5VDA5U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6
U05UbmJXdjZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1
cDF5bjlzVkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndP
L0gya0w4dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0ph
eG1LaHRVUC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lz
MWJ4dmtXbmZHclJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3
dis0aHB1RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExu
V2NFeUdXdjB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9s
SDdBVkZyMHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9W
UEFETXR6cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5K
Zng5cHBub1YvdmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAw
MnZTcGcwNnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdF
WHd6K3d2TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpL
OUYzcTJVa0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1v
eWFoOWxtL2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0Vlhi
YVU3VUJsOFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3
aGxvQ2x1M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3Uv
Uk5PKzgwRzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdv
K0Zac2Rqb2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1Ax
eE1PeDdQQmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0
TzlZV21odU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRh
UFkrSElqNFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEz
TUxhMzY0TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpX
RjBCYXNIVzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJ
cm1XaGIzays5SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9X
N0IydURVWUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VP
M2dKOFB2U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3
dzRuODBHUEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQ
Zkgrelo3NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3
cjVIQTJIdjdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9M
YnRYTDJHV255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85
cjl2aTM5MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gz
QXZnVjdkeXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9n
OXRQSkVRdTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9ImkyIj4KLQotPHNjcmlw
dD4KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBz
Oi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02
NHg2NC5wbmciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy90aHVuZGVy
YmlyZC1sb2dvLTY0eDY0LnBuZyI7Ci0KLVRlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZl
bnRzIHRoZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCi0KLVRl
c3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2dsJyk7Ci0gICAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENv
bnRleHQoY2FudmFzKSk7Ci0KLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZh
cy5oZWlnaHQpOwotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIoZ2wu
Q09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2FibGUo
Z2wuREVQVEhfVEVTVCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0gZnVu
Y3Rpb24oZ2wpIHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwg
dGV4Q3ViZU1hcCk7Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBmdW5j
dGlvbihnbCwgdGV4LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgbnVsbCk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4
Q3ViZU1hcCk7Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKLSAg
ICBnbC5lbmFibGUoZ2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaScpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAg
ICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAs
MCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKLSAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9U
T19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsK
LSAgICB2YXIgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRp
dHktZnJhZycpOwotICAgIGdsLmJsZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOwotICAgIGYuYXBw
bHkoKTsKLSAgICBmLmRlc3Ryb3koKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGdsLnRleFN1
YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgYyk7Ci0gICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lk
ZW50aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlO
VVNfU1JDX0FMUEhBKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0gICAgdmFy
IHZhbGlkX3RhcmdldHMgPSBbCi0gICAgICAgIGdsLlRFWFRVUkVfMkQsCi0gICAgICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9O
RUdBVElWRV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAg
ICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICAgICAgZ2wuVEVYVFVSRV9D
VUJFX01BUF9QT1NJVElWRV9aLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1oKLSAgICBdOwotICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7Ci0gICAg
ICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0
LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgICAg
ICAgICBnbC50ZXhTdWJJbWFnZTJEKHQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpOwotICAgICAgICB9KTsKLSAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKLSAgICAg
ICAgICAgICAgICBnbC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGMpOwotICAgICAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQodCwgMSwgMCwg
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgIH0pOwotICAgIH0pOwot
fQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFy
IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOwotICAgIHZhciBjID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcp
OwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3Io
Z2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNl
cHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGFzc2Vy
dFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFn
ZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleFN1Yklt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBp
bWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRp
cnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rp
b24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4
U3ViSW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci19Ci0KLVRlc3RzLmVuZFVu
aXQgPSBmdW5jdGlvbihnbCkgewotfTsKLQotKGFzeW5jIGZ1bmN0aW9uKCkgewotICAgIGNvbnN0
IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOwotICAgIHRyeSB7Ci0gICAgICAg
IGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBk
ZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
dGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsKLSAgICAgICAgZmluaXNo
VGVzdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGluaXRUZXN0cygpOwotfSkoKTsK
LTwvc2NyaXB0PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NH
X0RhdGFfVHlwZXNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ0dfRGF0YV9UeXBlc19mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGYzMTA5MGViZjMyMDcyNzA1NmQwZmUwODY0ZDJjMDE4YjBiN2M4
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NHX0RhdGFfVHlwZXNfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMjggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisJaGFsZiBoMTsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwloYWxm
MiBoMjsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwloYWxmMyBoMzsgLy8gTm90IGEgYmFzaWMgdHlw
ZS4KKwloYWxmNCBoNDsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmbG9hdDIgZjI7IC8vIE5vdCBh
IGJhc2ljIHR5cGUuCisJZmxvYXQzIGYzOyAvLyBOb3QgYSBiYXNpYyB0eXBlLgorCWZsb2F0NCBm
NDsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmaXhlZCBmeDE7IC8vIE5vdCBhIGJhc2ljIHR5cGUu
CisJZml4ZWQyIGZ4MjsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmaXhlZDMgZngzOyAvLyBOb3Qg
YSBiYXNpYyB0eXBlLgorCWZpeGVkNCBmeDQ7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZmxvYXQz
eDMgZjN4MzsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmbG9hdDJ4NCBmMng0OyAvLyBOb3QgYSBi
YXNpYyB0eXBlLgorCWhhbGY0eDQgaDR4NDsgLy8gTm90IGEgYmFzaWMgdHlwZS4KK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ0dfU3RhbmRhcmRfTGlicmFyeV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzky
NjgwZWUxYWE4MjhkYjIwMTRhYWRmYzhhYjIzNDcyZGYwY2JhNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisJaW50IGkgPSByb3VuZCgxLjMpOyAvLyByb3VuZCBpcyBub3QgYSBidWlsdC1pbiBmdW5j
dGlvbi4KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RCdWlsdEluT3Zlcmlk
ZV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5m
cmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3YmEzZWYzN2I3YzU0NTA4YzliMmYzOTgyODIyYTZkZDI2ZGJkODIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgaW50Owor
I2VuZGlmCisKK2ludCByYWRpYW5zKGludCBmKQoreworICAgIHJldHVybiBmOworfQorCit2b2lk
IG1haW4oKQoreworICAgIGludCBmID0gNDU7CisgICAgZiA9IHJhZGlhbnMoZik7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29tbWFfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdENvbW1hX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjY3MWQ3OWI2ODI2Mzll
ZWVhNWYxZThhY2RlODIwNWViMzg1MTc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvQ29ycmVjdENvbW1hX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIyIEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgcyB7CisgICAgZmxvYXQgZjsKKyAgICB2
ZWMzIHY7Cit9OworCit2b2lkIG1haW4oKQoreworICAgIGNvbnN0IHZlYzQgdiA9ICh2ZWM0KDEs
MiwzLDQpLCB2ZWM0KDUsNiw3LDgpKTsgIC8vIDUsNiw3LDgKKyAgICBjb25zdCBzIHMxID0gKHMo
OS4wLCB2ZWMzKDEwLDExLDEyKSksIHMoMTMuMCwgdmVjMygxNCwxNSwxNikpKTsgLy8gMTMsMTQs
MTUsMTYKKyAgICBnbF9GcmFnQ29sb3IgPSB2ICsgdmVjNChzMS5mLCBzMS52KTsgIC8vIDE4LCAy
MCwgMjIsIDI0Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xk
aW5nMV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0
LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODlhM2JjNTg0ZmFlZTI5MWI3YTFkOWFkMDM0N2I0MDU4ZmEwZDNm
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcx
X3ZlcnQudmVydApAQCAtMCwwICsxLDM2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworCisgICBjb25zdCBzdHJ1Y3QgczIg
eworICAgICAgIGludCBpOworICAgICAgIHZlYzMgdjM7CisgICAgICAgYnZlYzQgYnY0OworICAg
fSBzMjIgID0gczIoOCwgdmVjMyg5LCAxMCwgMTEpLCBidmVjNCh0cnVlLCBmYWxzZSwgdHJ1ZSwg
ZmFsc2UpKTsKKworICAgc3RydWN0IHM0IHsKKyAgICAgICBpbnQgaWk7CisgICAgICAgdmVjNCB2
NDsKKyAgICAgIH07CisKKyAgIGNvbnN0IHN0cnVjdCBzMSB7CisgICAgICBzMiBzczsKKyAgICAg
IGludCBpOworICAgICAgZmxvYXQgZjsKKyAgICAgIG1hdDQgbTsKKyAJczQgczQ0OworICAgfSBz
MTEgPSBzMShzMjIsIDIsIDQuMCwgbWF0NCg1KSwgczQoNiwgdmVjNCg3LCA4LCA5LCAxMCkpKSA7
CisKKyAgY29uc3QgaW50IGZpZWxkMyA9IHMxMS5pICogczExLnNzLmk7ICAvLyBjb25zdGFudCBm
b2xkaW5nIChpbnQgKiBpbnQpCisgIGNvbnN0IHZlYzQgZmllbGQ0ID0gczExLnM0NC52NCAqIHMx
MS5zNDQudjQ7IC8vIGNvbnN0YW50IGZvbGRpbmcgKHZlYzQgKiB2ZWM0KQorIC8vIDQ5LCA2NCwg
ODEsIDEwMAorICBjb25zdCB2ZWM0IHY0ID0gdmVjNChzMTEuc3MudjMueSwgczExLm1bM11bM10s
IGZpZWxkMywgZmllbGQ0WzJdKTsgIC8vIDEwLjAsIDUuMCwgMTYuMCwgODEuMAorICBnbF9Qb3Np
dGlvbiA9IHY0OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9s
ZGluZzJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVy
dC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU1YzEzNjcyNDVjYTAyMmM2M2VkMDFkYmE2YjhjY2Q4ZDdkOGFl
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5n
Ml92ZXJ0LnZlcnQKQEAgLTAsMCArMSw0MjEgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgc3RydWN0IHM1IHsKKyAg
ICBmbG9hdCBrOworICAgIH07CisgICAgY29uc3Qgc3RydWN0IHMgeworICAgICAgICBpbnQgaTsK
KyAgICAJZmxvYXQgajsKKyAgICAgIHM1IHM1NTsKKyAgICB9IHNzID0gcyg0LDEuMCwgczUoMS4w
KSk7CisKKworICAgY29uc3Qgc3RydWN0IHMyIHsKKyAgICAgICBpbnQgaTsKKyAgICAgICB2ZWMz
IHYzOworICAgICAgIGJ2ZWM0IGJ2NDsKKyAgIH0gczIyICA9IHMyKDgsIHZlYzMoOSwgMTAsIDEx
KSwgYnZlYzQodHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisKKyAgc3RydWN0IHM0IHsKKyAg
ICAgICAgICBpbnQgaWk7CisgICAgICAgICAgdmVjNCB2NDsKKyAgICAgIH07CisKKyAgIGNvbnN0
IHN0cnVjdCBzMSB7CisgICAgICBzMiBzczsKKyAgICAgIGludCBpOworICAgICAgZmxvYXQgZjsK
KyAgICAgIG1hdDQgbTsKKyAgICAgIHM0IHM0NDsKKyAgICAgfSBzMTEgPSBzMShzMjIsIDIsIDQu
MCwgbWF0NCg1KSwgczQoNiwgdmVjNCg3LCA4LCA5LCAxMCkpKSA7CisKKworICAgY29uc3Qgc3Ry
dWN0IHM3IHsKKyAgICAgICBpbnQgaTsKKyAgICAgICBtYXQzIG0zOworICAgfSBzNzcgPSBzNygx
MiwgbWF0MygxNSkpOworCisgIHZlYzIgICAgICAgdjIxID0gdmVjMigxKTsgIC8vIE5vdCBhIGNv
bnN0YW50CisgIGNvbnN0IHZlYzIgdjIyID0gdmVjMigxMSk7IC8vIDExLjAsIDExLjAKKyAgY29u
c3QgdmVjNCB2NDEgPSB2ZWM0KDIpOyAgLy8gMi4wLCAyLjAsIDIuMCwgMi4wCisgIGNvbnN0IHZl
YzQgdjQzID0gdmVjNCg0LDQsNCw0KTsgLy8gNC4wLCA0LjAsIDQuMCwgNC4wCisgIGNvbnN0IHZl
YzQgdjQ0ID0gdmVjNCg1LjAsIDUuMCwgNS4wLCA1LjApOyAvLyA1LjAsIDUuMCwgNS4wLCA1LjAK
KyAgY29uc3QgdmVjNCB2NDUgPSB2ZWM0KHYyMiwgdjIyKTsgIC8vIDExLjAsIDExLjAsIDExLjAs
IDExLjAKKyAgY29uc3QgdmVjNCB2NDYgPSB2ZWM0KHZlYzIoMjAsIDIxKSwgdmVjMigyMiwgMjMp
KTsgIC8vIDIwLjAsIDIxLjAsIDIyLjAsIDIzLjAKKworICBjb25zdCB2ZWMzIHYzMSA9IHZlYzMo
czIyLnYzKTsgIC8vIDkuMCwgMTAuMCwgMTEuMAorICBjb25zdCB2ZWMzIHYzMiA9IHZlYzMoczc3
Lm0zKTsgIC8vIDE1LjAsIDAsIDAKKyAgY29uc3QgdmVjMyB2MzMgPSB2ZWMzKHM3Ny5tM1syXSk7
IC8vIDAsIDAsIDE1LjAKKyAgY29uc3QgdmVjMyB2MzQgPSB2ZWMzKHM3Ny5tM1syXVswXSk7ICAv
LyAwLDAsMAorCisKKyAgY29uc3QgbWF0NCBtNDEgPSBtYXQ0KDEpOyAgLy8gMSwwLDAsMCwwLDEs
MCwwLDAsMCwwLDEsMCwwLDAsMCwwLDEKKyAgY29uc3QgbWF0NCBtNDIgPSBtYXQ0KHY0NCwgdjQ0
LCB2NDQsIHY0NCk7ICAvLyBhbGwgNXMKKyAgY29uc3QgbWF0NCBtNDMgPSBtYXQ0KCB2NDMueCk7
ICAvLyA0LDAsMCwwLDAsNCwwLDAsMCwwLDAsNCwwLDAsMCwwLDAsNAorCisgIGNvbnN0IHZlYzQg
djQ3ID0gdmVjNChtNDFbMF1bMF0pOyAgLy8gMS4wLDEuMCwxLjAsMS4wCisKKyAgY29uc3QgbWF0
NCBtNDUgPSBtYXQ0KHMyMi52MywgdjQ0LCB2NDUsIHYzMiwgNTAsIDUyKTsgIC8vOSwxMCwxMSw1
LDUsNSw1LDExLDExLDExLDExLDE1LjAsIDAsMCwgNTAuMCwgNTIuMAorICAvL2NvbnN0IG1hdDMg
bTMxID0gbWF0MygxLCBtYXQyKDEpLCAyLjAsIHZlYzMoMSkpOyAgLy8gMS4wLCAxLDAsMCwxLDIs
MSwxLDEKKyAgY29uc3QgdmVjNCB2NDggPSB2ZWM0KHYzMVswXSwgdjIyWzFdLCB2NDFbMF0sIHY0
M1szXSk7ICAvLzksIDExLCAyLCA0CisgIGNvbnN0IHZlYzQgdjQ5ID0gdmVjNChzMjIudjMueHks
IHMyMi52My56eCk7IC8vIDksMTAsMTEsOQorICBjb25zdCB2ZWM0IHY0MTAgPSB2ZWM0KHY0NC54
eSwgdjQzLnp4KTsgIC8vNSw1LDQsNAorCisgIGNvbnN0IHZlYzQgdjQxMSA9IHZlYzQobTQyWzNd
KTsgIC8vIDUsNSw1LDUKKyAgY29uc3QgdmVjNCB2NDEyID0gdmVjNChtNDNbMl0pOyAgLy8gMCww
LDQsMAorCisgIGNvbnN0IHZlYzIgdjIzID0gdmVjMihtNDEpOyAgLy8gMSwwCisKKyAgY29uc3Qg
dmVjMiB2MjQgPSB2ZWMyKDMzLCBzMTEuaSk7ICAvLyAzMywgMgorCisgIGNvbnN0IHZlYzQgdjQx
MyA9IHZlYzQodmVjMigxLjAsMi4wKSxpdmVjMigzLjAsNC4wKSk7ICAvLyAxLDIsMyw0CisgIGNv
bnN0IGl2ZWM0IGk0MSA9IGl2ZWM0KDEuMCwgMi4wLCAzLjAsIDQuMCk7ICAvLyAxLDIsMyw0CisK
KyAgY29uc3QgaXZlYzQgaTQyID0gaXZlYzQoNik7ICAvLyA2LDYsNiw2CisgIGNvbnN0IGl2ZWM0
IGk0MyA9IGl2ZWM0KHY0NSk7ICAvLzExLDExLDExLDExCisKKyAgY29uc3QgaXZlYzQgaTQ0ID0g
aXZlYzQodjQ0WzBdKTsgIC8vIDUsNSw1LDUKKyAgY29uc3QgaXZlYzQgaTQ1ID0gaXZlYzQodmVj
MigyMCwgMjEpLCB2ZWMyKDIyLCAyMykpOyAgLy8gMjAsIDIxLCAyMiwgMjMKKyAgY29uc3QgdmVj
NCB2NDE0ID0gdmVjNChpdmVjMigyOSwgMzApLCBpdmVjMigzMSwgMzIpKTsgLy8gMjkuMCwgMzAu
MCwgMzEuMCwgMzIuMAorICBjb25zdCBpdmVjNCBpNDYgPSBpdmVjNChpdmVjMigyLjAsMy4wKSwg
aXZlYzMoNC4wLDUuMCw2LjApKTsKKyAgY29uc3QgaXZlYzQgaTQ3ID0gaXZlYzQoaTQ2KTsgIC8v
IDIsMyw0LDUKKyAgY29uc3QgaXZlYzQgaTQ4ID0gaXZlYzQodjQxNC54KTsgIC8vIDI5LDI5LDI5
LDI5CisKKyAgY29uc3QgaXZlYzQgaTQ5ID0gaXZlYzQodmVjNCgxKSk7IC8vIDEsMSwxLDEKKyAg
Y29uc3QgaXZlYzQgaTQxNCA9IGl2ZWM0KG1hdDQoMTQpKTsgLy8gMTQsIDAsMCwwLAorICBjb25z
dCBpdmVjNCBpNDEwID0gaXZlYzQobTQzKTsgIC8vIDQsMCwwLDAKKyAgY29uc3QgaXZlYzQgaTQx
MSA9IGl2ZWM0KG00M1sxXSk7ICAvLyAwLCA0LCAwLCAwCisgIGNvbnN0IGl2ZWM0IGk0MTIgPSBp
dmVjNChzNzcuaSk7IC8vIDEyLCAxMiwgMTIsIDEyCisgIGNvbnN0IGl2ZWM0IGk0MTYgPSBpdmVj
NChzMjIudjMuenl4LCAxMik7ICAvLyAxMSwgMTAsIDksIDEyCisKKyAgY29uc3QgdmVjNCB2NDE1
ID0gdmVjNChpdmVjMigzNSksIGl2ZWMyKDM2KSk7IC8vIDM1LjAsIDM1LjAgLDM2LjAgLCAzNi4w
CisKKyAgY29uc3QgYnZlYzQgYjQxID0gYnZlYzQoMS4wLCAyLjAsIDMuMCwgNC4wKTsgIC8vIHRy
dWUsdHJ1ZSx0cnVlLHRydWUKKworICBjb25zdCBidmVjNCBiNDIgPSBidmVjNCg2KTsgIC8vIHRy
dWUsdHJ1ZSx0cnVlLHRydWUKKyAgY29uc3QgYnZlYzQgYjQzID0gYnZlYzQodjQ1KTsgIC8vdHJ1
ZSx0cnVlLHRydWUsdHJ1ZQorCisgIGNvbnN0IGJ2ZWM0IGI0NCA9IGJ2ZWM0KHY0NFswXSk7ICAv
LyB0cnVlLHRydWUsdHJ1ZSx0cnVlCisgIGNvbnN0IGJ2ZWM0IGI0NSA9IGJ2ZWM0KHZlYzIoMCwg
MjEpLCB2ZWMyKDAsIDEpKTsgIC8vIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZQorICBjb25zdCBi
dmVjNCBiNDYgPSBidmVjNChpdmVjMigwLjAsMy4wKSwgaXZlYzMoMCw1LjAsNi4wKSk7IC8vIGZh
bHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZQorICBjb25zdCBidmVjNCBiNDcgPSBidmVjNChpNDYpOyAg
Ly8gdHJ1ZSx0cnVlLHRydWUsdHJ1ZQorICBjb25zdCBidmVjNCBiNDggPSBidmVjNCh2NDE0Lngp
OyAgLy8gdHJ1ZSx0cnVlLHRydWUsdHJ1ZQorCisgIGNvbnN0IGJ2ZWM0IGI0OSA9IGJ2ZWM0KHZl
YzQoMCkpOyAvLyBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZQorICBjb25zdCBidmVjNCBiNDE0ID0g
YnZlYzQobWF0NCgxNCkpOyAvLyB0cnVlLCBmYWxzZSxmYWxzZSxmYWxzZSwKKyAgY29uc3QgYnZl
YzQgYjQxMCA9IGJ2ZWM0KG00Myk7ICAvLyB0cnVlLGZhbHNlLGZhbHNlLGZhbHNlCisgIGNvbnN0
IGJ2ZWM0IGI0MTEgPSBidmVjNChtNDNbMV0pOyAgLy8gZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxz
ZQorICBjb25zdCBidmVjNCBiNDEyID0gYnZlYzQoczc3LmkpIDsgLy8gdHJ1ZSwgdHJ1ZSwgdHJ1
ZSwgdHJ1ZQorCisgIGNvbnN0IHZlYzMgdjM1ID0gdmVjMyhzMTEuczQ0LnY0KTsgIC8vIDcuMCw4
LjAsOS4wCisKKworICBzdHJ1Y3QgczEwIHsKKyAgICAgaW50IGs7CisgIH07CisgIHN0cnVjdCBz
OSB7CisgICAgICAgZmxvYXQgZjsKKyAgICAgIHMxMCBzMTAxOworICAgfTsKKyAgY29uc3Qgc3Ry
dWN0IHM4IHsKKyAgICAgIGludCBpOworICAgICAgczkgczk5OworICB9IHM4OCA9IHM4KDEsIHM5
KDIuMCwgczEwKDUpKSk7CisKKyAgIHN0cnVjdCBzdDQgeworICAgICAgIGludCBtOworICAgICAg
IHZlYzMgdjM7CisgICB9OworICAgc3RydWN0IHN0MyB7CisgICAgICBpbnQgazsKKyAgICAgIGlu
dCBsOworICAgICAgc3Q0IHN0NDQ7CisgICAgIH07CisgICBzdHJ1Y3Qgc3QyIHsKKyAgICAgICBm
bG9hdCBmOworICAgICAgIHN0MyBzdDMzOworICB9OworICBjb25zdCBzdHJ1Y3Qgc3QxIHsKKyAg
ICAgIGludCBpOworICAgICAgc3QyIHN0MjI7CisgIH0gc3QxMSA9IHN0MSgxLCBzdDIoMi4wLCBz
dDMoNSwgNiwgc3Q0KDcsIHYzNSkpKSk7CisKKyAgY29uc3QgdmVjNCB2NDE2ID0gdmVjNChzODgu
czk5LnMxMDEuayk7IC8vIGFsbCA1cworICBjb25zdCB2ZWM0IHY0MTcgPSB2ZWM0KHN0MTEuc3Qy
Mi5zdDMzLnN0NDQudjMsIHM4OC5zOTkuczEwMS5rKTsgIC8vIDcuMCwgOC4wLCA5LjAsIDUuMAor
ICBjb25zdCB2ZWMzIHYzNiA9IHZlYzMoczExLnNzLnYzKTsgIC8vIDksIDEwLCAxMQorCisgIHZl
YzQgdjQxOCA9IHY0MTY7ICAvLyBhbGwgNXMKKyAgY29uc3QgZmxvYXQgZjEgPSB2NDE2WzBdOyAg
Ly8gNS4wCisgIHZlYzQgdjQxOTsKKyAgdjQxOS54eXogPSBzdDExLnN0MjIuc3QzMy5zdDQ0LnYz
OworICBtYXQ0IG00NzsKKworICBzdHJ1Y3Qgc3RydWN0MiB7CisgICAgICBpbnQgazsKKyAgfSBz
dHJ1Y3QyMiA9IHN0cnVjdDIoNCk7CisKKyAgY29uc3Qgc3RydWN0IHN0cnVjdDEgeworICAgICAg
IHN0cnVjdDIgc3N0MjsKKyAgfSBzdHJ1Y3QxMSA9IHN0cnVjdDEoc3RydWN0MigyKSk7CisKKyAg
Y29uc3QgdmVjNCB2NDIwID0gdjQxNzsgIC8vIDcuMCwgOC4wLCA5LjAgLCA1LjAKKworICB2ZWM0
IHY0MjEgPSB2ZWM0KHMxMS5tKTsgIC8vIDUsIDAsIDAsIDAKKyAgdmVjNCB2NDIyID0gdjQyMDsg
IC8vIDcuMCwgOC4wLCA5LjAgLCA1LjAKKworICB2ZWM0IHY0MjMgPSBzMTEuczQ0LnY0OyAgIC8v
IDcsIDgsIDksIDEwCisKKyAgaW50IGludDEgPSBzcy5pICogc3MuaTsgIC8vIDE2CisgIGludCBp
bnQyID0gc3MuaSAqIDI7ICAvLyA4CisKKyAgY29uc3QgdmVjNCB2NDI1ID0gdjQyMCAqIHY0MjA7
ICAvLyA0OSwgNjQsIDgxLCAyNQorICBjb25zdCB2ZWM0IHY0MjYgPSBzMTEubSAqIHMxMS5zNDQu
djQ7IC8vIDM1LCA0MCwgNDUsIDUwCisgIGNvbnN0IHZlYzQgdjQyNyA9IHMxMS5zNDQudjQgKiBz
MTEubTsgLy8gMzUsIDQwLCA0NSwgNTAKKworICBmbG9hdCBmZiA9IDIuMDsKKyAgY29uc3QgZmxv
YXQgZmZDb25zdCA9IDIuMDsKKworICB2ZWM0IHY0MjggPSBmZiArIHY0MjU7ICAvLyBvcmRpbmFy
eSBhc3NpZ25tZW50IHdpdGggYmluYXJ5IG5vZGUKKyAgdmVjMyB2MzkgPSB2ZWMzKDUpOworCisg
IHZlYzMgdjMxMCA9IHMyMi52MyArIHYzOTsgIC8vMTQsIDE1LCAxNgorCisgIGNvbnN0IHZlYzQg
djQyOSA9IHY0MjAgKyB2NDIwOyAvLyAxNCwgMTYsIDE4LCAxMAorICBjb25zdCB2ZWM0IHY0MzAg
PSB2NDIwICsgZmZDb25zdDsgIC8vIDksIDEwLCAxMSw3CisgIGNvbnN0IHZlYzQgdjQzMiA9ICB2
NDI5ICsgczExLmY7ICAvLyAxOCwgMjAsIDIyLCAxNAorCisgIGNvbnN0IHZlYzQgdjQzMyA9IHZl
YzQoczExLmYgKyBzMTEuZik7ICAvLyBhbGwgOHMKKyAgY29uc3QgdmVjNCB2NDM0ID0gdjQzMiAr
IHZlYzQoMyk7ICAvLyAyMSwgMjMsIDI1LCAxNworICBjb25zdCBtYXQ0IG00OCA9IHMxMS5tICsg
ZmZDb25zdDsgIC8vIGRpYWdvbmFsIDdzIGFuZCBvdGhlcnMgMnMKKyAgY29uc3QgbWF0NCBtNDkg
PSBtYXQ0KGZmQ29uc3QgKyBzMTEuZik7ICAvLyBkaWFnb25hbCA2cworICBjb25zdCBtYXQ0IG00
MTAgPSBtNDggKyBzMTEuZjsgIC8vIGRpYWdvbmFsIDExLCBvdGhlcnMgLSA2cworCisgIGNvbnN0
IG1hdDQgbTQxMyA9IG00OCArIG00OCA7IC8vIGRpYWdvbmFsIDE0LCBvdGhlcnMgNAorICBjb25z
dCBtYXQ0IG00MTQgPSBtNDEzICsgZmZDb25zdCA7IC8vIGRpYWdvbmFsIDE2LCBvdGhlcnMgNgor
CisgIGNvbnN0IHZlYzQgdjQzNSA9IGZmQ29uc3QgKyB2NDIwOyAgLy8gOSwgMTAsIDExLDcKKyAg
Y29uc3QgdmVjNCB2NDM2ID0gIHMxMS5mICsgdjQyOTsgIC8vIDE4LCAyMCwgMjIsIDE0CisgIGNv
bnN0IG1hdDQgbTQxNSA9IGZmQ29uc3QgKyBzMTEubTsgIC8vIGRpYWdvbmFsIDdzIGFuZCBvdGhl
cnMgMnMKKyAgY29uc3QgbWF0NCBtNDE2ID0gczExLmYgKyBtNDggOyAgLy8gZGlhZ29uYWwgMTEs
IG90aGVycyAtIDZzCisgIGNvbnN0IG1hdDQgbTQxNyA9IGZmQ29uc3QgKyBtNDEzIDsgLy8gZGlh
Z29uYWwgMTYsIG90aGVycyA2CisKKyAgY29uc3QgdmVjNCB2NDM3ID0gdjQyMCAtIHY0MjA7IC8v
IDAsIDAsIDAsIDAKKyAgY29uc3QgdmVjNCB2NDM4ID0gdjQyMCAtIGZmQ29uc3Q7ICAvLyA1LCA2
LCA3LDMKKyAgY29uc3QgdmVjNCB2NDQwID0gIHY0MjkgLSBzMTEuZjsgIC8vIDEwLCAxMiwgMTQs
IDYKKworICBjb25zdCB2ZWM0IHY0NDEgPSB2ZWM0KHMxMS5mIC0gczExLmYpOyAgLy8gYWxsIDBz
CisgIGNvbnN0IHZlYzQgdjQ0MiA9IHY0MzIgLSB2ZWM0KDMpOyAgLy8gMTUsIDE3LCAxOSwgMTEK
KyAgY29uc3QgbWF0NCBtNDE4ID0gczExLm0gLSBmZkNvbnN0OyAgLy8gZGlhZ29uYWwgM3MgYW5k
IG90aGVycyAtMnMKKyAgY29uc3QgbWF0NCBtNDE5ID0gbWF0NChmZkNvbnN0IC0gczExLmYpOyAg
Ly8gZGlhZ29uYWwgLT4gLTJzCisgIGNvbnN0IG1hdDQgbTQyMCA9IG00OCAtIHMxMS5mOyAgLy8g
ZGlhZ29uYWwgMywgb3RoZXJzIC0+IC0yCisKKyAgY29uc3QgbWF0NCBtNDIzID0gbTQ4IC0gbTQ4
IDsgLy8gQWxsIDBzCisgIGNvbnN0IG1hdDQgbTQyNCA9IG00MTMgLSBmZkNvbnN0IDsgLy8gZGlh
Z29uYWwgMTIsIG90aGVycyAyCisKKyAgY29uc3QgdmVjNCB2NDQzID0gZmZDb25zdCAtIHY0MjA7
ICAvLyAtNSwgLTYsIC03LC0zCisgIGNvbnN0IHZlYzQgdjQ0NCA9ICBzMTEuZiAtIHY0Mjk7ICAv
LyAtMTAsIC0xMiwgLTE0LCAtNgorICBjb25zdCBtYXQ0IG00MjUgPSBmZkNvbnN0IC0gczExLm07
ICAvLyBkaWFnb25hbCAtM3MgYW5kIG90aGVycyAycworICBjb25zdCBtYXQ0IG00MjYgPSBzMTEu
ZiAtIG00OCA7ICAvLyBkaWFnb25hbCAtMywgb3RoZXJzICAycworICBjb25zdCBtYXQ0IG00Mjcg
PSBmZkNvbnN0IC0gbTQxMyA7IC8vIGRpYWdvbmFsIC0xMiwgb3RoZXJzIC0yCisKKyAgY29uc3Qg
dmVjNCB2NDQ1ID0gdjQyMCAqIHY0MjA7IC8vIDQ5LCA2NCwgODEsIDI1CisgIGNvbnN0IHZlYzQg
djQ0NiA9IHY0MjAgKiBmZkNvbnN0OyAgLy8gMTQsIDE2LCAxOCwxMAorICBjb25zdCB2ZWM0IHY0
NDggPSAgdjQyOSAqIHMxMS5mOyAgLy8gNTYsIDQ2LCA3MiwgNDAKKworICBjb25zdCB2ZWM0IHY0
NDkgPSB2ZWM0KHMxMS5mICogczExLmYpOyAgLy8gYWxsIDE2CisgIGNvbnN0IHZlYzQgdjQ1MCA9
IHY0MzIgKiB2ZWM0KDMpOyAgLy8gNTQsIDYwLCA2NiwgNDIKKyAgY29uc3QgbWF0NCBtNDI4ID0g
czExLm0gKiBmZkNvbnN0OyAgLy8gZGlhZ29uYWwgMTAgYW5kIG90aGVycyAwcworICBjb25zdCBt
YXQ0IG00MjkgPSBtYXQ0KGZmQ29uc3QgKiBzMTEuZik7ICAvLyBkaWFnb25hbCA4CisgIGNvbnN0
IG1hdDQgbTQzMCA9IG00OCAqIHMxMS5mOyAgLy8gZGlhZ29uYWwgMjgsIG90aGVycyA4CisKKyAg
Y29uc3QgbWF0NCBtNDMzID0gbTQ4ICogbTQ4IDsgLy8gZGlhZ29uYWwgNjEsIG90aGVycyAzNgor
ICBjb25zdCBtYXQ0IG00MzQgPSBtNDEzICogZmZDb25zdCA7IC8vIGRpYWdvbmFsIDI4LCBvdGhl
cnMgOAorCisgIGNvbnN0IHZlYzQgdjQ1MSA9IGZmQ29uc3QgKiB2NDIwOyAgLy8gMTQsIDE2LCAx
OCwxMAorICBjb25zdCB2ZWM0IHY0NTIgPSAgczExLmYgKiB2NDI5OyAgLy8gNTYsIDY0LCA3Miwg
NDAKKyAgY29uc3QgbWF0NCBtNDM1ID0gZmZDb25zdCAqIHMxMS5tOyAgLy8gIGRpYWdvbmFsIDEw
IGFuZCBvdGhlcnMgMHMKKyAgY29uc3QgbWF0NCBtNDM2ID0gczExLmYgKiBtNDggOyAgLy8gZGlh
Z29uYWwgMjgsIG90aGVycyAtIDhzCisgIGNvbnN0IG1hdDQgbTQzNyA9IGZmQ29uc3QgKiBtNDEz
IDsgLy8gZGlhZ29uYWwgMjgsIG90aGVycyA4CisKKyAgY29uc3QgdmVjNCB2NDUzID0gdjQyMCAv
IHY0MjA7IC8vIDEsIDEsIDEsIDEKKyAgY29uc3QgdmVjNCB2NDU0ID0gdjQyMCAvIGZmQ29uc3Q7
ICAvLyAzLjUsIDQsIDQuNSwyLjUKKworICBjb25zdCB2ZWM0IHY0NTcgPSB2ZWM0KHMxMS5mIC8g
czExLmYpOyAgLy8gYWxsIDFzCisgIGNvbnN0IHZlYzQgdjQ1OCA9IHY0MzIgLyB2ZWM0KDMpOyAg
Ly8gNiwgNi42NjY2LCA3LjMzMywgNC42NjY2CisgIGNvbnN0IG1hdDQgbTQzOCA9IHMxMS5tIC8g
ZmZDb25zdDsgIC8vIGRpYWdvbmFsIDIuNSBhbmQgb3RoZXJzIDBzCisgIGNvbnN0IG1hdDQgbTQz
OSA9IG1hdDQoZmZDb25zdCAvIHMxMS5mKTsgIC8vIGRpYWdvbmFsIDAuNXMKKyAgY29uc3QgbWF0
NCBtNDQwID0gbTQ4IC8gczExLmY7ICAvLyBkaWFnb25hbCAxLjc1LCBvdGhlcnMgMC41cworCisg
IGNvbnN0IG1hdDQgbTQ0MyA9IG00OCAvIG00OCA7IC8vIEFsbCAxcworICBjb25zdCBtYXQ0IG00
NDQgPSBtNDEzIC8gZmZDb25zdCA7IC8vIGRpYWdvbmFsIDcsIG90aGVycyAyCisKKyAgY29uc3Qg
dmVjNCB2NDU5ID0gZmZDb25zdCAvIHY0MjA7ICAvLyAuMjg1NyAsIC4yNSwgLjIyLCAuNAorICBj
b25zdCB2ZWM0IHY0NjAgPSAgczExLmYgLyB2NDI5OyAgLy8gLjI4NTcsIC4yNSwgLjIyLCAuNAor
ICAvL2NvbnN0IG1hdDQgbTQ0NSA9IGZmQ29uc3QgLyBzMTEubTsgIC8vIGRpdmlkZSBieSB6ZXJv
IGVycm9yCisgIGNvbnN0IG1hdDQgbTQ0NiA9IHMxMS5mIC8gbTQ4IDsgIC8vIGRpYWdvbmFsIC41
NzEsICBvdGhlcnMgMgorICBjb25zdCBtYXQ0IG00NDcgPSBmZkNvbnN0IC8gbTQxMyA7IC8vIGRp
YWdvbmFsIC4xNDI4LCBvdGhlcnMgMC41CisKKyAgY29uc3QgdmVjNCB2NDYxID0gdjQ1MyAqIG00
Mjg7IC8vIDEwLCAxMCwgMTAsIDEwCisgIGNvbnN0IHZlYzQgdjQ2MiA9IHY0NTMgKiBtNDM3OyAv
LyA1MiwgNTIsIDUyLCA1MgorICBjb25zdCB2ZWM0IHY0NjMgPSBtNDI4ICogdjQ1MTsgLy8gMTQw
LCAxNjAsIDE4MCwgMTAwCisgIGNvbnN0IHZlYzQgdjQ2NCA9IG00MzcgKiB2NDUxOyAvLyA3NDQs
IDc4NCwgODI0LCA2NjQKKworICBpbnQgaWkgPSAyOworICBjb25zdCBpbnQgaWlDb25zdCA9IDI7
CisKKyAgY29uc3QgaXZlYzQgaTQyMCA9IGl2ZWM0KCA3LDgsOSw1KTsgIC8vIDcsIDgsIDksIDUK
KworICBjb25zdCBpdmVjNCBpNDI5ID0gaTQyMCArIGk0MjA7IC8vIDE0LCAxNiwgMTgsIDEwCisg
IGNvbnN0IGl2ZWM0IGk0MzAgPSBpNDIwICsgaWlDb25zdDsgIC8vIDksIDEwLCAxMSw3CisgIGNv
bnN0IGl2ZWM0IGk0MzIgPSAgaTQyOSArIHNzLmk7ICAvLyAxOCwgMjAsIDIyLCAxNAorCisgIGNv
bnN0IGl2ZWM0IGk0MzMgPSBpdmVjNChzcy5pICsgc3MuaSk7ICAvLyBhbGwgOHMKKworICBjb25z
dCBpdmVjNCBpNDM1ID0gaWlDb25zdCArIGk0MjA7ICAvLyA5LCAxMCwgMTEsNworICBjb25zdCBp
dmVjNCBpNDM2ID0gIHNzLmkgKyBpNDI5OyAgLy8gMTgsIDIwLCAyMiwgMTQKKworICBjb25zdCBp
dmVjNCBpNDM3ID0gaTQyMCAtIGk0MjA7IC8vIDAsIDAsIDAsIDAKKyAgY29uc3QgaXZlYzQgaTQz
OCA9IGk0MjAgLSBpaUNvbnN0OyAgLy8gNSwgNiwgNywzCisgIGNvbnN0IGl2ZWM0IGk0NDAgPSAg
aTQyOSAtIHNzLmk7ICAvLyAxMCwgMTIsIDE0LCA2CisKKyAgY29uc3QgaXZlYzQgaTQ0MSA9IGl2
ZWM0KHNzLmkgLSBzcy5pKTsgIC8vIGFsbCAwcworCisgIGNvbnN0IGl2ZWM0IGk0NDMgPSBpaUNv
bnN0IC0gaTQyMDsgIC8vIC01LCAtNiwgLTcsLTMKKyAgY29uc3QgaXZlYzQgaTQ0NCA9ICBzcy5p
IC0gaTQyOTsgIC8vIC0xMCwgLTEyLCAtMTQsIC02CisKKyAgY29uc3QgaXZlYzQgaTQ0NSA9IGk0
MjAgKiBpNDIwOyAvLyA0OSwgNjQsIDgxLCAyNQorICBjb25zdCBpdmVjNCBpNDQ2ID0gaTQyMCAq
IGlpQ29uc3Q7ICAvLyAxNCwgMTYsIDE4LDEwCisgIGNvbnN0IGl2ZWM0IGk0NDggPSAgaTQyOSAq
IHNzLmk7ICAvLyA1NiwgNjQsIDcyLCA0MAorCisgIGNvbnN0IGl2ZWM0IGk0NDkgPSBpdmVjNChz
cy5pICogc3MuaSk7ICAvLyBhbGwgMTYKKworICBjb25zdCBpdmVjNCBpNDUxID0gaWlDb25zdCAq
IGk0MjA7ICAvLyAxNCwgMTYsIDE4LDEwCisgIGNvbnN0IGl2ZWM0IGk0NTIgPSAgc3MuaSAqIGk0
Mjk7ICAvLyA1NiwgNjQsIDcyLCA0MAorCisgIGNvbnN0IGl2ZWM0IGk0NTMgPSBpNDIwIC8gaTQy
MDsgLy8gMSwgMSwgMSwgMQorICBjb25zdCBpdmVjNCBpNDU0ID0gaTQyMCAvIGlpQ29uc3Q7ICAv
LyAzLCA0LCA0LDIKKyAgY29uc3QgaXZlYzQgaTQ1NiA9ICBpNDI5IC8gc3MuaTsgIC8vIDMsIDQs
IDQsIDIKKworICBjb25zdCBpdmVjNCBpNDU3ID0gaXZlYzQoc3MuaSAvIHNzLmkpOyAgLy8gYWxs
IDFzCisKKyAgY29uc3QgaXZlYzQgaTQ1OSA9IGlpQ29uc3QgLyBpNDIwOyAgLy8gMCAsIDAsIDAs
MAorICBjb25zdCBpdmVjNCBpNDYwID0gIHNzLmkgLyBpNDI5OyAgLy8gMCwgMCwgMCwwCisKKyAg
Y29uc3QgYnZlYzQgYjQyNCA9IGJ2ZWM0KHMyMi5idjQpOworCisgIGNvbnN0IGJvb2wgYjEgPSBz
MjIuYnY0ID09IGI0MjQ7ICAvLyB0cnVlCisgIGNvbnN0IGJvb2wgYjIgPSBpNDIwID09IGk0MjA7
ICAvLyB0cnVlCisgIGNvbnN0IGJvb2wgYjMgPSBpNDIwID09IGk0NDU7ICAvLyBmYWxzZQorICBj
b25zdCBib29sIGI0ID0gdjQyMCA9PSB2NDIwOyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGI1ID0g
bTQzMCA9PSBtNDM0OyAvLyB0cnVlCisKKyAgY29uc3QgdmVjNCB2NDY1ID0gLXY0MjA7IC8vIC03
LCAtOCwgLTksIC01CisgIGNvbnN0IG1hdDQgbTQ0OCA9IC1tNDQ3IDsgLy8gZGlhZ29uYWwgLS4x
NDI4LCBvdGhlcnMgLTAuNQorICBjb25zdCBpdmVjNCBpNDY1ID0gLWk0NTYgOyAgLy8gLTMsIC00
LCAtNCwtMgorCisgIGNvbnN0IGJvb2wgYjcgPSBzMjIgPT0gczIyOworCisgIGNvbnN0IHZlYzQg
djQ2NiA9IHY0MzIgKyB2ZWM0KDMsNCw1LDYpOyAgLy8gMjEsIDI0LCAyNywgMjAKKyAgY29uc3Qg
dmVjNCB2NDY3ID0gdjQzMiArIHZlYzQodmVjMigzLDQpLDUsNik7ICAvLyAyMSwgMjQsIDI3LCAy
MAorICBjb25zdCB2ZWM0IHY0NjggPSB2NDMyICsgdmVjNCgzLCB2ZWMyKDQsIDUpLHZlYzIoNiw3
KSk7ICAvLyAyMSwgMjQsIDI3LCAyMAorICBjb25zdCB2ZWM0IHY0NjkgPSB2ZWM0KHY0NjgpICsg
dmVjNCgzKSArIHY0NjggKyB2ZWM0KHM3Ny5tM1syXVswXSk7IC8vIDQ1LCA1MSwgNTcsIDQzCisK
KyAgY29uc3QgYm9vbCBiOCA9IHNzID09IHNzOyAgLy8gdHJ1ZQorCisgIHN0cnVjdCBzdDYgewor
ICAgICAgIHZlYzMgdjsKKyAgfTsKKworICBzdHJ1Y3Qgc3Q1IHsKKyAgICAgIGludCBpOworICAg
ICAgZmxvYXQgZjsKKyAgICAgIHN0NiAgc3Q2NjsKKyAgfSBzdDU1OworCisgIGNvbnN0IHN0NSBz
dDU1MSA9IHN0NSgyLCA0LjAsIHN0Nih2ZWMzKDcpKSk7CisgIGNvbnN0IHN0NSBzdDU1MiA9IHN0
NSgyLCA0LjAsIHN0Nih2ZWMzKDcpKSk7CisKKyAgY29uc3QgYm9vbCBiMTAgPSBzdDU1MSA9PSBz
dDU1MjsgIC8vIHRydWUKKworICBjb25zdCBib29sIGIxMSA9IHN0NTUxLnN0NjYgPT0gc3Q1NTIu
c3Q2NjsgIC8vIHRydWUKKworICBjb25zdCBzdDUgc3Q1NTMgPSBzdDUoMiwgNC4wLCBzdDYodmVj
Myg4KSkpOworCisgIGNvbnN0IGJvb2wgYjEyID0gc3Q1NTEuc3Q2NiA9PSBzdDU1My5zdDY2OyAg
Ly8gZmFsc2UKKyAgY29uc3QgYm9vbCBiMTMgPSBzdDU1MSA9PSBzdDU1MzsgIC8vIGZhbHNlCisK
KyAgY29uc3QgYm9vbCBiMTQgPSBzdDU1MSAhPSBzdDU1MjsgIC8vIGZhbHNlCisgIGNvbnN0IGJv
b2wgYjE1ID0gc3Q1NTEuc3Q2NiAhPSBzdDU1Mi5zdDY2OyAgLy8gZmFsc2UKKyAgY29uc3QgYm9v
bCBiMTYgPSBzdDU1MS5zdDY2ICE9IHN0NTUzLnN0NjY7ICAvLyB0cnVlCisgIGNvbnN0IGJvb2wg
YjE3ID0gc3Q1NTEgIT0gc3Q1NTM7ICAvLyB0cnVlCisKKyAgY29uc3QgYm9vbCBiMTggPSBzMjIu
YnY0ICE9IGI0MjQ7ICAvLyBmYWxzZQorICBjb25zdCBib29sIGIxOSA9IGk0MjAgIT0gaTQyMDsg
IC8vIGZhbHNlCisgIGNvbnN0IGJvb2wgYjIwID0gaTQyMCAhPSBpNDQ1OyAgLy8gdHJ1ZQorICBj
b25zdCBib29sIGIyMSA9IHY0MjAgIT0gdjQyMDsgIC8vIGZhbHNlCisgIGNvbnN0IGJvb2wgYjIy
ID0gbTQzMCAhPSBtNDM0OyAvLyBmYWxzZQorCisgIGNvbnN0IGludCBpbnQxMCA9IGk0MjAueHku
eTsgIC8vIDgKKworICAvL2Zsb2F0IGYgPSB2NDcwLng7CisKKworCisgIGNvbnN0IGludCBpbnQx
MyA9IC1zcy5pOworCisgIGNvbnN0IHZlYzQgdjQ3NCA9IC12ZWM0KDAuNSk7CisKKyAgaW50IGlu
dDE0ID0gaWkrKzsKKyAgaW50IGFycmF5WzNdOworICBhcnJheVsyXTsKKworICBjb25zdCB2ZWM0
IHY0NzggPSB2NDY2ICogMi4wOyAvLyA0MiwgNDgsIDU0LCA0MAorCisgIGNvbnN0IHZlYzQgdjQ3
OSA9IGlpQ29uc3QgPiAxID8gdjQ2NiA6IHY0Nzg7IC8vIDIxLCAyNCwgMjcsIDIwCisKKyAgY29u
c3Qgc3RydWN0IHN0NyB7CisgICAgICAgaW50IGk7CisgICAgICAgYm9vbCBiOworICB9IHN0Nzcg
PSBzdDcoc3MuaSwgdHJ1ZSk7CisKKyAgY29uc3QgdmVjNCB2NDgxID0gdmVjNChzdDc3LmkpOwor
CisgIGNvbnN0IHN0cnVjdCBzdDggeworICAgICAgaW50IGk7CisgIH0gOworCisKKyAgY29uc3Qg
c3RydWN0IHN0OSB7CisgICAgICBzMiBzczsKKyAgfSBzdDk5ID0gc3Q5KHMyMik7CisKKyAgY29u
c3QgdmVjMyB2MzEyID0gc3Q5OS5zcy52MzsgICAvLyA5LCAxMCwgMTEKKyAgY29uc3QgdmVjNCB2
NDgyID0gbWF0NCgxKVswXTsgIC8vIDEsIDAsIDAgLCAwCisKKyAgY29uc3QgbWF0NCBtNDUwID0g
bWF0NChzcy5pKTsgIC8vIG1hdDQoNCkKKyAgY29uc3QgbWF0NCBtNDUxID0gbWF0NChiMjApOyAg
IC8vIG1hdDQoMSkKKyAgY29uc3QgbWF0NCBtNDUyID0gbWF0NChzdDc3LmIpOyAvLyBtYXQ0KDEp
CisKKyAgY29uc3QgdmVjNCB2NDgzID0gdmVjNCh2ZWM0KDMpLngpOyAgLy8gMywzLDMsMworICBj
b25zdCBtYXQ0IG00NTMgPSBtYXQ0KHZlYzQoNSkueCk7ICAvLyBtYXQ1KDUpCisKKyAgY29uc3Qg
dmVjNCB2NDg0ID0gdmVjNChtYXQ0KDYpWzFdKTsgIC8vIDAsNiwwLDAKKyAgY29uc3QgbWF0NCBt
NDU0ID0gbWF0NChtYXQ0KDYpWzFdWzFdKTsgIC8vIG1hdDQoNikKKworICBjb25zdCB2ZWM0IHY0
ODUgPSB2ZWM0KHN0Nyg4LCB0cnVlKS5iKTsgIC8vIDEsMSwxLDEKKworICBjb25zdCB2ZWM0IHY0
ODcgPSB2ZWM0KHZlYzQoMTIsIDEzLCAxNCwgMTUpLmFiLCAxMiwgMTQpOworCisgIGludCBpMjAg
PSBzcy5pOworICBjb25zdCB2ZWM0IHY0ODkgPSAtdmVjNCg3LDgsOSw1KTsgLy8gLTcsIC04LCAt
OSwgLTUKKworICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0Q29uc3RydWN0X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RDb25zdHJ1Y3RfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZDliMzc4ZTU1ZGY5MmFlNDljODBi
OWU4MTY5NTE5NTJhYWVhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3Jy
ZWN0Q29uc3RydWN0X3ZlcnQudmVydApAQCAtMCwwICsxLDM3IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCitzdHJ1Y3QgcyB7CisgICAgZmxvYXQgZjsK
K30gczEgPSBzKDEuMCk7CisKK3N0cnVjdCBzMyB7CisgICBpbnQgaTsKK30gczNJbnN0OworCitz
dHJ1Y3QgczIgeworICAgIGZsb2F0IGY7CisgICAgczMgczNJbnN0OworfSBzMkluc3QgPSBzMigx
LjAsIHMzKDEpKTsKKwordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMzIGkgPSB2ZWMzKDUuMCwgNC4w
LCBpdmVjMigyLjAsIDEuMCkpOworICAgIGl2ZWM0IHYyID0gaXZlYzQoMS4wKTsKKyAgICB2ZWM0
IHY0ID0gdmVjNCh2Mik7CisgICAgYnZlYzQgdjUgPSBidmVjNCh2Mik7CisgICAgdmVjMyB2NiA9
IHZlYzModjUpOworICAgIHZlYzMgdiA9IHZlYzMoMiwgMi4wLCAxKTsKKyAgICB2ZWMzIHYxID0g
dmVjMygxLjIsIHYpOworCisgICAgbWF0MyBtMSA9IG1hdDModix2LHYpOworICAgIG1hdDIgbTIg
PSBtYXQyKHYsIHY2LngpOworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEuMCk7Cit9CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45ZjdlYjZhMDIyZWRjMTExODJmNTU1MDJjMWVjZWVlYTdkOGYzMzVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjEwX1YxMDBfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMjYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyN2ZXJzaW9uIDEwMAorI2V4dGVuc2lvbiBleHRlbnNpb25mb28gOiBlbmFi
bGUgIC8vIHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0ZW5z
aW9uZm9vIDogZGlzYWJsZSAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorI2V4
dGVuc2lvbiBleHRlbnNpb25mb28gOiB3YXJuICAvLyB3YXJuaW5nIGV4dGVuc2lvbiBub3Qgc3Vw
cG9ydGVkCisKKyNleHRlbnNpb24gYWxsIDogZGlzYWJsZSAvLyBubyBlcnJvciBpbiB0aGUgcHJv
Z3JhbQorI2V4dGVuc2lvbiBhbGwgOiB3YXJuIC8vIG5vIGVycm9yIGluIHRoZSBwcm9ncmFtCisK
KyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogZW5hYmxlICAvLyB3YXJuaW5nIGV4dGVuc2lvbiBu
b3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGRpc2FibGUgIC8vIHdhcm5p
bmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogd2Fy
biAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uMV9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNGQ0OTdkNDMzMjE4NjAxY2YyNDY0Nzg3ZGZhNjk4MDdkNzNmMzY2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2V4dGVuc2lvbiBhbGwgOiBkaXNhYmxlIC8vIG5vIGVycm9yIGluIHRoZSBwcm9ncmFt
CisjZXh0ZW5zaW9uIGFsbCA6IHdhcm4gLy8gbm8gZXJyb3IgaW4gdGhlIHByb2dyYW0KKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkK
K3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjRfVjEwMF9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTAxM2U4NWY4OTE0OWQ1YmJiYzE3OTkyOGJjNGNmNmFiYmQ3NThjMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogZW5hYmxlICAvLyB3
YXJuaW5nIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6
IGRpc2FibGUgIC8vIHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24g
ZXh0ZW5zaW9uZm9vIDogd2FybiAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorCit2b2lkIG1h
aW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bGxfdmVydC52
ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bGxfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMw
ZjE0YWQyN2JkMWJiZDQ3MDg2MTZlMmEzNDc3ZmJjYjdlNTEzNDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVsbF92ZXJ0LnZlcnQKQEAgLTAsMCArMSw2NTQgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3N0cnVjdCBn
dGZfTWF0ZXJpYWxQYXJhbWV0ZXJzCit7Cit2ZWM0IGVtaXNzaW9uOwordmVjNCBhbWJpZW50Owor
dmVjNCBkaWZmdXNlOwordmVjNCBzcGVjdWxhcjsKK2Zsb2F0IHNoaW5pbmVzczsKK307CitzdHJ1
Y3QgZ3RmX0xpZ2h0U291cmNlUGFyYW1ldGVycworewordmVjNCBhbWJpZW50OwordmVjNCBkaWZm
dXNlOwordmVjNCBzcGVjdWxhcjsKK3ZlYzQgcG9zaXRpb247Cit2ZWM0IGhhbGZWZWN0b3I7Cit2
ZWMzIHNwb3REaXJlY3Rpb247CitmbG9hdCBzcG90RXhwb25lbnQ7CitmbG9hdCBzcG90Q3V0b2Zm
OworZmxvYXQgc3BvdENvc0N1dG9mZjsKK2Zsb2F0IGNvbnN0YW50QXR0ZW51YXRpb247CitmbG9h
dCBsaW5lYXJBdHRlbnVhdGlvbjsKK2Zsb2F0IHF1YWRyYXRpY0F0dGVudWF0aW9uOworfTsKK3N0
cnVjdCBndGZfUG9pbnRQYXJhbWV0ZXJzIHsKK2Zsb2F0IHNpemU7CitmbG9hdCBzaXplTWluOwor
ZmxvYXQgc2l6ZU1heDsKK2Zsb2F0IGZhZGVUaHJlc2hvbGRTaXplOworZmxvYXQgZGlzdGFuY2VD
b25zdGFudEF0dGVudWF0aW9uOworZmxvYXQgZGlzdGFuY2VMaW5lYXJBdHRlbnVhdGlvbjsKK2Zs
b2F0IGRpc3RhbmNlUXVhZHJhdGljQXR0ZW51YXRpb247Cit9Oworc3RydWN0IGd0Zl9EZXB0aFJh
bmdlUGFyYW1ldGVycyB7CitmbG9hdCBuZWFyOworZmxvYXQgZmFyOworZmxvYXQgZGlmZjsKK307
CitzdHJ1Y3QgZ3RmX0xpZ2h0TW9kZWxQYXJhbWV0ZXJzIHsKK3ZlYzQgYW1iaWVudDsKK307Citz
dHJ1Y3QgZ3RmX0xpZ2h0TW9kZWxQcm9kdWN0cyB7Cit2ZWM0IHNjZW5lQ29sb3I7Cit9Oworc3Ry
dWN0IGd0Zl9MaWdodFByb2R1Y3RzIHsKK3ZlYzQgYW1iaWVudDsKK3ZlYzQgZGlmZnVzZTsKK3Zl
YzQgc3BlY3VsYXI7Cit9Oworc3RydWN0IGd0Zl9Gb2dQYXJhbWV0ZXJzIHsKK3ZlYzQgY29sb3I7
CitmbG9hdCBkZW5zaXR5OworZmxvYXQgc3RhcnQ7CitmbG9hdCBlbmQ7CitmbG9hdCBzY2FsZTsK
K307Cit1bmlmb3JtIGludCBndGZfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50czsKK3VuaWZv
cm0gaW50IGd0Zl9NYXhWZXJ0ZXhVbmlmb3JtQ29tcG9uZW50czsKK3VuaWZvcm0gaW50IGd0Zl9N
YXhWZXJ0ZXhUZXh0dXJlSW1hZ2VVbml0czsKK3VuaWZvcm0gaW50IGd0Zl9NYXhMaWdodHM7Cit1
bmlmb3JtIGludCBndGZfTWF4Q2xpcFBsYW5lczsKK3VuaWZvcm0gaW50IGd0Zl9NYXhDb21iaW5l
ZFRleHR1cmVJbWFnZVVuaXRzOwordW5pZm9ybSBpbnQgZ3RmX01heFRleHR1cmVDb29yZHM7Cit1
bmlmb3JtIGludCBndGZfTWF4VmVydGV4QXR0cmliczsKK3VuaWZvcm0gaW50IGd0Zl9NYXhWYXJ5
aW5nRmxvYXRzOwordW5pZm9ybSBpbnQgZ3RmX01heFRleHR1cmVVbml0czsKK3VuaWZvcm0gaW50
IGd0Zl9NYXhEcmF3QnVmZmVyczsKK3VuaWZvcm0gaW50IGd0Zl9NYXhUZXh0dXJlSW1hZ2VVbml0
czsKK3VuaWZvcm0gZ3RmX0xpZ2h0UHJvZHVjdHMgZ3RmX0Zyb250TGlnaHRQcm9kdWN0WzhdOwor
dW5pZm9ybSBndGZfTGlnaHRNb2RlbFByb2R1Y3RzIGd0Zl9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0
OwordW5pZm9ybSBndGZfRGVwdGhSYW5nZVBhcmFtZXRlcnMgZ3RmX0RlcHRoUmFuZ2U7Cit1bmlm
b3JtIGd0Zl9Gb2dQYXJhbWV0ZXJzIGd0Zl9Gb2c7Cit1bmlmb3JtIGd0Zl9Qb2ludFBhcmFtZXRl
cnMgZ3RmX1BvaW50OwordW5pZm9ybSBndGZfTGlnaHRNb2RlbFBhcmFtZXRlcnMgZ3RmX0xpZ2h0
TW9kZWw7Cit2YXJ5aW5nIHZlYzQgZ3RmX0ZvZ0ZyYWdDb29yZDsKK3ZhcnlpbmcgdmVjNCBndGZf
QmFja0NvbG9yOwordmFyeWluZyB2ZWM0IGd0Zl9CYWNrU2Vjb25kYXJ5Q29sb3I7Cit2YXJ5aW5n
IHZlYzQgZ3RmX0Zyb250U2Vjb25kYXJ5Q29sb3I7Cit2YXJ5aW5nIHZlYzQgZ3RmX1RleENvb3Jk
WzJdOwordmFyeWluZyB2ZWM0IGd0Zl9Gcm9udENvbG9yOwordW5pZm9ybSBndGZfTWF0ZXJpYWxQ
YXJhbWV0ZXJzIGd0Zl9Gcm9udE1hdGVyaWFsOwordW5pZm9ybSBndGZfTGlnaHRTb3VyY2VQYXJh
bWV0ZXJzIGd0Zl9MaWdodFNvdXJjZVs4XTsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9NdWx0aVRleENv
b3JkMTsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9NdWx0aVRleENvb3JkMjsKK2F0dHJpYnV0ZSB2ZWM0
IGd0Zl9TZWNvbmRhcnlDb2xvcjsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9Db2xvcjsKK2F0dHJpYnV0
ZSB2ZWM0IGd0Zl9NdWx0aVRleENvb3JkMzsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9NdWx0aVRleENv
b3JkMDsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9Ob3JtYWw7CithdHRyaWJ1dGUgdmVjNCBndGZfVmVy
dGV4OwordW5pZm9ybSBtYXQ0IGd0Zl9Ob3JtYWxNYXRyaXg7Cit1bmlmb3JtIG1hdDQgZ3RmX1By
b2plY3Rpb25NYXRyaXg7Cit1bmlmb3JtIG1hdDQgZ3RmX1RleHR1cmVNYXRyaXhbOF07Cit1bmlm
b3JtIG1hdDQgZ3RmX01vZGVsVmlld01hdHJpeDsKK3VuaWZvcm0gbWF0NCBndGZfTW9kZWxWaWV3
UHJvamVjdGlvbk1hdHJpeDsKK3ZvaWQgdGVzdF9mdW5jdGlvbihjb25zdCBpbiBpbnQgaW5faW50
LCBpbm91dCBpbnQgb3V0X2ludCk7CitpbnQgdGVzdF9mdW5jdGlvbjEoaW4gaW50IGluX2ludDEs
IGlub3V0IGludCBpbl9vdXRfaW50KTsKKwordW5pZm9ybSBmbG9hdCBhcnJheV9mbG9hdFsyXTsK
Kworc3RydWN0IG5lc3RlZAoreworICAgaW50IGE7CisgICBmbG9hdCBmOworfTsKKworc3RydWN0
IGxpZ2h0MQoreworICAgZmxvYXQgaW50ZW5zaXR5OworICAgdmVjMyBwb3NpdGlvbjsKKyAgIGlu
dCB0ZXN0X2ludFsyXTsKKyAgIG5lc3RlZCBsaWdodDI7Cit9IGxpZ2h0VmFyOworbGlnaHQxIGxs
MjsKKwordm9pZCBBc3NpZ24gKG91dCBsaWdodDEgb3V0MSwgaW4gbGlnaHQxIGluMSkKK3sKKyAg
ICBvdXQxLmludGVuc2l0eSA9IGluMS5pbnRlbnNpdHk7CisgICAgIG91dDEucG9zaXRpb24gPSBp
bjEucG9zaXRpb247CisgIG91dDEudGVzdF9pbnRbMF0gPSBpbjEudGVzdF9pbnRbMF07CisgIG91
dDEudGVzdF9pbnRbMV0gPSBpbjEudGVzdF9pbnRbMV07CisgICAgICAgb3V0MS5saWdodDIgPSBp
bjEubGlnaHQyOworfQorCitzdHJ1Y3QgbGlnaHQzIHsKKyAgICBmbG9hdCBpOworfTsKKworc3Ry
dWN0IGxpZ2h0NCB7CisgICAgZmxvYXQgaTsKK307CisKK3N0cnVjdCBsaWdodDUgeworICAgIGZs
b2F0IGkgOworICAgIGZsb2F0IGFbMl07Cit9IGxpZ2h0NV9pbnN0OworCit1bmlmb3JtIGxpZ2h0
MyB1bmlmb3JtTGlnaHQzOworCitzdHJ1Y3QgbGlnaHQ2IHsKKyAgICBmbG9hdCBpOworfTsKK3Vu
aWZvcm0gbGlnaHQ2IHVuaWZvcm1MaWdodDY7CisKK3N0cnVjdCBzbGlnaHQxMHsKKyAgICAgZmxv
YXQgZjsKKyAgICAgfTsKK3N0cnVjdCBzbGlnaHQ5eworICAgICBzbGlnaHQxMCBsaWdodDEwOwor
ICAgICB9Oworc3RydWN0IHNsaWdodDh7CisgICAgIHNsaWdodDkgbGlnaHQ5OworICAgICB9Owor
c3RydWN0IGxpZ2h0NyB7CisgIHNsaWdodDggbGlnaHQ4OworfSA7CisKKworbGlnaHQzIHN0cnVj
dF92YXIgPSBsaWdodDMoNS4wKTsKKworLy8gQXR0cmlidHVlIHZhcmlhYmxlcyBjYW4gb25seSBi
ZSBHbG9iYWwKK2F0dHJpYnV0ZSBmbG9hdCBmbHRfYXR0cmliOworYXR0cmlidXRlIHZlYzIgdmVj
Ml9hdHRyaWI7CithdHRyaWJ1dGUgdmVjMyB2ZWMzX2F0dHJpYjsKK2F0dHJpYnV0ZSB2ZWM0IHZl
YzRfYXR0cmliOworYXR0cmlidXRlIG1hdDIgbWF0Ml9hdHRyaWI7CithdHRyaWJ1dGUgbWF0MyBt
YXQzX2F0dHJpYjsKK2F0dHJpYnV0ZSBtYXQ0IG1hdDRfYXR0cmliOworCit1bmlmb3JtIGZsb2F0
IGZsdF91bmlmb3JtOwordW5pZm9ybSB2ZWMzIHVuaWZvcm1fdmVjMzsKK3VuaWZvcm0gbWF0MyB1
bmlmb3JtX21hdDM7CisKK3VuaWZvcm0gc2FtcGxlcjJEIHNhbXBbM107Cit1bmlmb3JtIHNhbXBs
ZXIyRCBzYW1wMTsKKworY29uc3Qgc3RydWN0IGxpZ2h0MTIgeworICAgIGludCBhOworfSB1bmlm
b3JtX3N0cnVjdCA9IGxpZ2h0MTIoMik7CisKK3ZhcnlpbmcgdmVjMyB2YXJ5aW5nX3ZlYzM7Cit2
YXJ5aW5nIHZlYzIgdmFyeWluZ192ZWMyOwordmFyeWluZyB2ZWM0IHZhcnlpbmdfdmVjNDsKK3Zh
cnlpbmcgbWF0NCB2YXJ5aW5nX21hdDQ7Cit2YXJ5aW5nIG1hdDIgdmFyeWluZ19tYXQyOwordmFy
eWluZyBtYXQzIHZhcnlpbmdfbWF0MzsKK3ZhcnlpbmcgZmxvYXQgdmFyeWluZ19mbHQ7CisKK2Zs
b2F0IGZyZXF1ZW5jaWVzWzJdOworCit2b2lkIHRlc3RfZnVuY3Rpb24yKGludCBmdW5jX2ludCkK
K3sKK30KKwordm9pZCB0ZXN0X2Z1bmN0aW9uMyhsaWdodDMpOwordm9pZCB0ZXN0X2Z1bmN0aW9u
NChsaWdodDUgbGwyMCk7Cit2b2lkIHRlc3RfZnVuY3Rpb241KGxpZ2h0MSk7CitsaWdodDYgdGVz
dF9mdW5jdGlvbjYoaW50IGEpOworCitjb25zdCBmbG9hdCBGbG9hdENvbnN0MSA9IDMuMCAqIDgu
MCwgZmxvYXRDb25zdDIgPSA0LjA7Citjb25zdCBib29sIEJvb2xDb25zdDEgPSB0cnVlICYmIHRy
dWUgfHwgZmFsc2U7Citjb25zdCBib29sIEJvb2xDb25zdDIgPSBmYWxzZSB8fCAhZmFsc2UgJiYg
ZmFsc2U7CisKK3ZvaWQgbWFpbih2b2lkKQoreworCisgICAgaW50IHRlc3RfaW50MSA9IDI7Cisg
ICAgY29uc3QgaW50IGNvbnN0X3Rlc3RfaW50MSA9IDI7CisKKyAgICBzdHJ1Y3Qgc3RydWN0TWFp
biB7CisgICAgICAgIGZsb2F0IGk7CisgICAgfSB0ZXN0U3RydWN0OworCisgICAgc3RydWN0IHsK
KyAgICAgICAgc3RydWN0TWFpbiBhOworICAgIH0gYVN0cnVjdDsKKworICAgIHRlc3RTdHJ1Y3Qu
aSA9IDUuMCA7CisgICAgc3RydWN0X3Zhci5pID0gNS4wOworCisgICAgc3RydWN0TWFpbiBuZXdT
dHJ1Y3QsIG5ld1N0cnVjdDE7CisgICAgdGVzdFN0cnVjdCA9IG5ld1N0cnVjdDsKKyAgICBuZXdT
dHJ1Y3QgPSBuZXdTdHJ1Y3QxOworCisgICAgbGlnaHRWYXIubGlnaHQyLmYgPSAxLjE7CisKKyAg
ICBsaWdodDEgbGwxOworICAgIGxsMS5saWdodDIuYSA9IDE7CisKKyAgICAgY29uc3Qgc3RydWN0
IGNvbnN0X3N0cnVjdCB7CisgICAgICAgIGZsb2F0IGk7CisgICAgfSBjb25zdF9zdHJ1Y3RfaW5z
dCA9IGNvbnN0X3N0cnVjdCgxLjApOworCisgICAgLy9sbDEgPSBsbDI7CisgICAgQXNzaWduIChs
bDEsIGxsMik7CisgICAgbGwxLmxpZ2h0MiA9IGxsMi5saWdodDI7CisgICAgbGwxLmxpZ2h0MiA9
IGxsMS5saWdodDI7CisgICAgbGwxLmxpZ2h0Mi5mID0gbGwyLmxpZ2h0Mi5mOworICAgIGxsMS5s
aWdodDIuZiA9IGxsMS5saWdodDIuZjsKKworICAgIC8vICAgIGxpZ2h0VmFyID0gbGwyOworICAg
IC8vICAgIGxsMiA9IGxpZ2h0VmFyOworICAgIEFzc2lnbiAobGlnaHRWYXIsIGxsMik7CisgICAg
QXNzaWduIChsbDIsIGxpZ2h0VmFyKTsKKworICAgIGxpZ2h0NSBsbDEwOworCisgICAgbGlnaHQ3
IGxsN1s0XTsKKyAgICBzdHJ1Y3RNYWluIG5ld1N0cnVjdDJbMl07CisgICAgbmV3U3RydWN0Mlsw
XS5pID0gMS4xOworCisgICAgbGw3WzBdLmxpZ2h0OC5saWdodDkubGlnaHQxMC5mID0gMS4xOwor
CisKKyAgICBib29sIHRlc3RfYm9vbDQgPSBmYWxzZSA7CisKKyAgICBib29sIHRlc3RfYm9vbDUg
PSAxLjIgPiAzLjAgOworCisgICAgaW50IHRlc3RfaW50MiA9ICAwNDc7CisgICAgaW50IHRlc3Rf
aW50NCA9ICAweGE4OyAgLy8gdGVzdGluZyBmb3IgaGV4YWRlY2ltYWwgbnVtYmVycworCisgICAg
ZmxvYXQgdGVzdF9mbG9hdDEgPSAxLjU7CisgICAgZmxvYXQgdGVzdF9mbG9hdDIgPSAuMDE7Cisg
ICAgZmxvYXQgdGVzdF9mbG9hdDMgPSAxMC47CisgICAgZmxvYXQgdGVzdF9mbG9hdDQgPSAxMC4w
MTsKKyAgICBmbG9hdCB0ZXN0X2Zsb2F0NSA9IDIzZSsyOworICAgIGZsb2F0IHRlc3RfZmxvYXQ2
ID0gMjNFLTM7CisgICAgZmxvYXQgdGVzdF9mbG9hdDggPSAyM0UyOworICAgIGJvb2wgdGVzdF9i
b29sNiA9IEJvb2xDb25zdDEgJiYgISAodGVzdF9pbnQxICE9IDApICYmICEgQm9vbENvbnN0MSAg
JiYgISAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAodGVz
dF9mbG9hdDEgIT0gMC4wKTsKKworICAgIHZlYzQgY29sb3IgPSB2ZWM0KDAuMCwgMS4wLCAwLjAs
IDEuMCk7CisgICAgdmVjNCBjb2xvcjIgPSB2ZWM0KDAuMCk7CisKKyAgICB2ZWMzIGNvbG9yNCA9
IHZlYzModGVzdF9mbG9hdDgpOworCisgICAgaXZlYzQgdGVzdF9pbnRfdmVjdDEgPSBpdmVjNCgx
LjAsMS4wLDEuMCwxLjApOworICAgIGl2ZWMzIHRlc3RfaW50X3ZlYzMgPSBpdmVjMygxLCAxLCAx
KSA7CisKKyAgICBidmVjNCB0ZXN0X2Jvb2xfdmVjdDEgPSBidmVjNCgxLiwgMS4sIDEuICwgMS4g
KTsKKworICAgIHZlYzIgdGVzdF92ZWMyID0gdmVjMigxLiwgMS4pOworICAgIHZlYzIgdGVzdF92
ZWMzID0gdmVjMigxLiwgMSk7CisgICAgdmVjNCB0ZXN0X3ZlYzQgPSB2ZWM0KHRlc3RfaW50X3Zl
Y3QxKTsKKworICAgIHZlYzIgdGVzdF92ZWM1ID0gdmVjMihjb2xvcjQpOworICAgIHZlYzMgdGVz
dF92ZWM3ID0gdmVjMyhjb2xvcik7CisgICAgdmVjMyB0ZXN0X3ZlYzggPSB2ZWMzKHRlc3RfdmVj
MiwgdGVzdF9mbG9hdDQpOworICAgIHZlYzMgdGVzdF92ZWM5ID0gdmVjMyh0ZXN0X2Zsb2F0NCwg
dGVzdF92ZWMyKTsKKworICAgIHZlYzQgdGVzdF92ZWMxMCA9IHZlYzQodGVzdF92ZWM5LCAwLjAx
KTsKKyAgICB2ZWM0IHRlc3RfdmVjMTEgPSB2ZWM0KDAuMDEsIHRlc3RfdmVjOSk7CisKKyAgICB2
ZWM0IHRlc3RfdmVjMTIgPSB2ZWM0KHRlc3RfdmVjMiwgdGVzdF92ZWMyKTsKKworICAgIG1hdDIg
dGVzdF9tYXQyID0gbWF0Mih0ZXN0X2Zsb2F0Myk7CisgICAgbWF0MyB0ZXN0X21hdDMgPSBtYXQz
KHRlc3RfZmxvYXQzKTsKKyAgICBtYXQ0IHRlc3RfbWF0NCA9IG1hdDQodGVzdF9mbG9hdDMpOwor
CisgICAgbWF0MiB0ZXN0X21hdDcgPSBtYXQyKHRlc3RfdmVjMiwgdGVzdF92ZWMyKTsKKyAgICBt
YXQyIHRlc3RfbWF0OCA9IG1hdDIoMDEuMDEsIDIuMDEsIDMuMDEsIDQuMDEpOworCisgICAgbWF0
MyB0ZXN0X21hdDkgPSBtYXQzKHRlc3RfdmVjNywgdGVzdF92ZWM3LCB0ZXN0X3ZlYzcpOworICAg
IG1hdDQgdGVzdF9tYXQxMCA9IG1hdDQodGVzdF92ZWMxMCwgdGVzdF92ZWMxMCwgdGVzdF92ZWMx
MCwgdGVzdF92ZWMxMCk7CisgICAgdGVzdF9tYXQxMFsxXSA9IHRlc3RfdmVjMTA7CisKKworICAg
IG1hdDIgdGVzdF9tYXQxMiA9IG1hdDIodGVzdF92ZWMyLCAwLjAxLCAwLjAxKTsKKyAgICBtYXQy
IHRlc3RfbWF0MTMgPSBtYXQyKDAuMDEsIDUuLCB0ZXN0X3ZlYzIpOworICAgIG1hdDIgdGVzdF9t
YXQxNSA9IG1hdDIoMC4xLCA1LiwgdGVzdF92ZWMyICk7CisKKyAgICAvL21hdDIgdGVzdF9tYXQx
NiA9IG1hdDIodGVzdF9tYXQ5KTsKKyAgICAvL21hdDIgdGVzdF9tYXQxNyA9IG1hdDIodGVzdF9t
YXQxMCk7CisKKyAgICBmbG9hdCBmcmVxMVsyXTsKKyAgICBmbG9hdCBmcmVxMlsyNV07CisKKyAg
ICBmb3IgKGludCBpPTA7IGk8MTAwOyBpKyspCisgICAgeworICAgICAgaWYgKHRlc3RfZmxvYXQx
IDwgMS4wKQorICAgICAgeworCisgICAgICB9CisgICAgICBlbHNlCisgICAgICB7CisgICAgICAg
IGJyZWFrOworICAgICAgfQorICAgIH0KKworICAgIGZyZXEyWzFdID0gMS45IDsKKyAgICBjb25z
dCBpbnQgYXJyYXlfaW5kZXggPSAyOworICAgIGZyZXEyW2NvbnN0X3Rlc3RfaW50MV0gPSAxLjkg
OworICAgIGZyZXEyW2FycmF5X2luZGV4XSA9IDEuODsKKworICAgIGNvbnN0IGludCBjb25zdF9p
bnQgPSA1OworCisgICAgdGVzdF9mbG9hdDEgPSB2YXJ5aW5nX2ZsdDsKKworICAgIGludCBvdXRf
aW50OworICAgIGludCBpbnRBcnJheVs2XTsKKyAgICB0ZXN0X2Z1bmN0aW9uKHRlc3RfaW50MSwg
dGVzdF9pbnQxKTsKKyAgICB0ZXN0X2Z1bmN0aW9uKHRlc3RfaW50MSwgaW50QXJyYXlbMl0pOwor
CisgICAgdmVjMyB2diA9IHZlYzModGVzdF9mdW5jdGlvbjEodGVzdF9pbnQxLCBvdXRfaW50KSk7
CisgICAgYm9vbCBib29sX3ZhciA9IHRydWU7CisgICAgaW50IHRlc3RfaW50NiA9IGludChib29s
X3Zhcik7CisgICAgdGVzdF9mbG9hdDEgPSBmbG9hdChib29sX3Zhcik7CisgICAgdGVzdF9mbG9h
dDEgPSBmbG9hdCh0ZXN0X2ludDYpOworICAgIHRlc3RfaW50NiA9IGludCh0ZXN0X2Zsb2F0MSk7
CisgICAgYm9vbF92YXIgPSBib29sKHRlc3RfaW50Nik7CisgICAgYm9vbF92YXIgPSBib29sKHRl
c3RfZmxvYXQxKTsKKyAgICB0ZXN0X2Zsb2F0MSA9IGZsb2F0KHRlc3RfdmVjOSk7CisKKyAgICB0
ZXN0X3ZlYzIueCA9IDEuMjsKKyAgICB0ZXN0X3ZlYzIueSA9IDEuNDsKKyAgICB0ZXN0X3ZlYzIu
eHk7CisKKworICAgIGNvbG9yLnp5ID0gdGVzdF92ZWMyOworCisgICB0ZXN0X3ZlYzJbMV0gPSAx
LjE7CisKKyAgICAgdGVzdF9tYXQyWzBdWzBdID0gMS4xOworCisgICAgdGVzdF9mbG9hdDEgKz0g
MS4wOworICAgIHRlc3RfZmxvYXQxIC09IDEuMDsKKyAgICB0ZXN0X2Zsb2F0MSAqPSAxLjA7Cisg
ICAgdGVzdF9mbG9hdDEgLz0gMS4wOworCisgICAgdGVzdF9tYXQxMiAqPSB0ZXN0X21hdDEzIDsK
KyAgICB0ZXN0X21hdDEyICAqPSB0ZXN0X2Zsb2F0MTsKKyAgICB0ZXN0X3ZlYzIgKj0gdGVzdF9m
bG9hdDE7CisgICAgdGVzdF92ZWMyICo9IHRlc3RfbWF0MTI7CisgICAgdGVzdF9mbG9hdDErKzsK
KyAgICB0ZXN0X2Zsb2F0MS0tOworICAgIC0tdGVzdF9mbG9hdDE7CisgICAgKyt0ZXN0X2Zsb2F0
MTsKKyAgICB0ZXN0X2Zsb2F0MTsKKyAgICB0ZXN0X2ludDErKzsKKyAgICB0ZXN0X2ludDEtLTsK
KworICAgIHRlc3RfdmVjMiA9IHRlc3RfdmVjMiArIHRlc3RfZmxvYXQxOworICAgIHRlc3RfdmVj
MiA9IHRlc3RfZmxvYXQxICsgdGVzdF92ZWMyOworCisgICAgdGVzdF9tYXQxMiA9IHRlc3RfbWF0
MTIgKiB0ZXN0X21hdDEzOworICAgIHRlc3RfdmVjMiA9IHRlc3RfdmVjMiAqIHRlc3RfdmVjNTsK
KworICAgIHRlc3RfdmVjMisrOworICAgIHRlc3RfbWF0MisrOworCisgICAgYm9vbCB0ZXN0X2Jv
b2wyID0gdGVzdF9mbG9hdDIgPiB0ZXN0X2Zsb2F0MzsKKworICAgIGJvb2wgdGVzdF9ib29sMyA9
IHRlc3RfaW50MSA+IHRlc3RfaW50NiA7CisKKyAgICB0ZXN0X2Jvb2wzID0gdGVzdF92ZWMyID09
IHRlc3RfdmVjNTsKKworICAgIHRlc3RfYm9vbDIgPSB0ZXN0X2Jvb2wzICYmIHRlc3RfYm9vbDQ7
CisgICAgdGVzdF9ib29sMiA9IHRlc3RfYm9vbDMgfHwgdGVzdF9ib29sNDsKKyAgICB0ZXN0X2Jv
b2wyID0gdGVzdF9ib29sMyBeXiB0ZXN0X2Jvb2w0OworCisgICAgdGVzdF9ib29sMiA9ICF0ZXN0
X2Jvb2wzOworCisgICAgdGVzdF9ib29sMyA9ICEodGVzdF9pbnQxID4gdGVzdF9pbnQ2KSA7CisK
KyAgICB0ZXN0X2Zsb2F0MSA9IHRlc3RfaW50MSA+IHRlc3RfaW50NiA/IHRlc3RfZmxvYXQyIDog
dGVzdF9mbG9hdDM7CisgICAgdGVzdF92ZWMyID0gdGVzdF9pbnQxID4gdGVzdF9pbnQ2ID8gdGVz
dF92ZWMyIDogdGVzdF92ZWM1OworICAgIGlmKHRlc3RfYm9vbDIpCisgICAgICAgIHRlc3RfZmxv
YXQxKys7CisgICAgZWxzZQorCXRlc3RfZmxvYXQxLS07CisKKyAgICBpZih0ZXN0X2Zsb2F0MSA+
IHRlc3RfZmxvYXQyKQorICAgICAgICB0ZXN0X2Zsb2F0MSsrOworCisgICAgaWYoIHRlc3RfYm9v
bDIgKQorICAgIHsKKyAgICAgICAgaW50IGlmX2ludDsKKyAgICAgICAgdGVzdF9mbG9hdDErKzsK
KyAgICB9CisKKyAgICBpZih0ZXN0X2Jvb2wyKQorICAgICAgIGlmKHRlc3RfYm9vbDMpCisgICAg
ICAgICAgIGlmKHRlc3RfYm9vbDMpCisJICAgICAgdGVzdF9mbG9hdDErKzsKKworICAgZm9yKGlu
dCBmb3JfaW50PTA7IGZvcl9pbnQgPCA1OyBmb3JfaW50KyspCisgICB7CisgICAgICAgLy8gZG8g
bm90aGluZyBhcyBzdWNoCisgICB9CisKKworICAgZm9yKGludCB4MT0wOyB4MSA8IDEwOyB4MSsr
KQorICAgeworICAgICBpZiAoIXRlc3RfYm9vbDIpCisgICAgICAgYnJlYWs7CisKKyAgICAgaW50
IGZvcl9pbnQ7CisgICB9CisKKyAgIGZvcihpbnQgeDI9LTEwOyB4MiA8IDEwMDsgeDIrKykKKyAg
IHsKKyAgICAgdGVzdF9ib29sMiA9ICh0ZXN0X2Zsb2F0MSA+IHRlc3RfZmxvYXQyKTsKKyAgICAg
aWYgKCF0ZXN0X2Jvb2wyKQorICAgICAgIGJyZWFrOworICAgfQorCisgICBmb3IoaW50IGZvcl9p
bnQxID0gMDsgZm9yX2ludDEgPCAxMDA7IGZvcl9pbnQxKyspCisgICB7CisgICAgIGlmICghdGVz
dF9ib29sMikKKyAgICAgICBicmVhazsKKworICAgICBpbnQgZm9yX2ludDsKKyAgIH0KKworICAg
Zm9yKGludCBmb3JfaW50MSA9IDA7IGZvcl9pbnQxIDwgMTAwOyBmb3JfaW50MSsrKQorICAgewor
ICAgICBpZiAoIXRlc3RfYm9vbDIpCisgICAgICAgY29udGludWU7CisKKyAgICAgaW50IGZvcl9p
bnQ7CisgICB9CisKKworICAgZm9yKGludCBpPTA7IGk8MTAwOyBpKyspCisgICB7CisgICAgIGlm
ICghKHRlc3RfZmxvYXQxID4gdGVzdF9mbG9hdDIpKQorICAgICB7CisgICAgICAgYnJlYWs7Cisg
ICAgIH0KKworICAgICBicmVhazsKKyAgICAgY29udGludWU7CisgICB9CisKKyAgIGZvcihpbnQg
aT0wOyBpPDEwMDsgaSsrKQorICAgeworICAgICBpZiAoIXRlc3RfYm9vbDIpCisgICAgICAgYnJl
YWs7CisKKyAgICAgYnJlYWs7CisgICB9CisKKyAgIGZvciAoaW50IGk9MDsgaTwxMDA7IGkrKykK
KyAgIHsKKyAgICAgaW50IGRvd2hpbGVfaW50OworICAgICBkb3doaWxlX2ludCA9IDM7CisKKyAg
ICAgaWYgKCF0ZXN0X2Jvb2wyKQorICAgICAgIGJyZWFrOworICAgfQorCisgICAgZ2xfUG9zaXRp
b24gPSB2ZWM0KDIuMCwgMy4wLCAxLjAsIDEuMSk7CisgICAgZ2xfUG9zaXRpb24gPSBndGZfVmVy
dGV4OworCisKKyAgICAvLyBWRVJURVggU0hBREVSIEJVSUxULUlOIEFUVFJJQlVURVMKKworICAg
IHZlYzQgYnVpbHRJblY0ID0gZ3RmX0NvbG9yICsgZ3RmX1NlY29uZGFyeUNvbG9yICsgZ3RmX1Zl
cnRleCArIGd0Zl9NdWx0aVRleENvb3JkMCArIGd0Zl9NdWx0aVRleENvb3JkMSArIGd0Zl9NdWx0
aVRleENvb3JkMiArICBndGZfTXVsdGlUZXhDb29yZDM7CisKKworICAgIGludCBidWlsdEluSSA9
IGd0Zl9NYXhMaWdodHMgKyBndGZfTWF4Q2xpcFBsYW5lcyArIGd0Zl9NYXhUZXh0dXJlVW5pdHMg
KyBndGZfTWF4VGV4dHVyZUNvb3JkcyArIGd0Zl9NYXhWZXJ0ZXhBdHRyaWJzICsgZ3RmX01heFZl
cnRleFVuaWZvcm1Db21wb25lbnRzICsgZ3RmX01heFZhcnlpbmdGbG9hdHMgKyBndGZfTWF4VmVy
dGV4VGV4dHVyZUltYWdlVW5pdHMgKyBndGZfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VVbml0cyAr
IGd0Zl9NYXhUZXh0dXJlSW1hZ2VVbml0cyArIGd0Zl9NYXhGcmFnbWVudFVuaWZvcm1Db21wb25l
bnRzICsgZ3RmX01heERyYXdCdWZmZXJzIDsKKworCisgICAgbWF0NCBidWlsdEluTTQgPSBndGZf
TW9kZWxWaWV3TWF0cml4ICsgZ3RmX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXggKyBndGZfUHJv
amVjdGlvbk1hdHJpeDsKKworICAgIGd0Zl9Ob3JtYWxNYXRyaXg7CisKKyAgICBndGZfVGV4dHVy
ZU1hdHJpeFtndGZfTWF4VGV4dHVyZUNvb3Jkcy0xXTsKKyAgICBndGZfVGV4dHVyZU1hdHJpeDsK
KworICAgIGd0Zl9EZXB0aFJhbmdlLm5lYXIgOworCisgICAgdGVzdF9mbG9hdDEgPSBndGZfRGVw
dGhSYW5nZS5uZWFyOworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0RlcHRoUmFuZ2UuZmFyOworICAg
IHRlc3RfZmxvYXQxID0gZ3RmX0RlcHRoUmFuZ2UuZGlmZjsKKworICAgIGd0Zl9Qb2ludC5zaXpl
OworICAgIGd0Zl9Qb2ludC5zaXplTWluOworICAgIGd0Zl9Qb2ludC5zaXplTWF4OworICAgIGd0
Zl9Qb2ludC5mYWRlVGhyZXNob2xkU2l6ZSA7CisgICAgZ3RmX1BvaW50LmRpc3RhbmNlQ29uc3Rh
bnRBdHRlbnVhdGlvbjsKKyAgICBndGZfUG9pbnQuZGlzdGFuY2VMaW5lYXJBdHRlbnVhdGlvbiA7
CisgICAgZ3RmX1BvaW50LmRpc3RhbmNlUXVhZHJhdGljQXR0ZW51YXRpb247CisKKyAgICBndGZf
TWF0ZXJpYWxQYXJhbWV0ZXJzIHRlc3Q7CisgICAgZ3RmX0Zyb250TWF0ZXJpYWwuZW1pc3Npb247
CisKKyAgICBjb2xvciA9IGd0Zl9Gcm9udE1hdGVyaWFsLmVtaXNzaW9uOworICAgIGNvbG9yID0g
Z3RmX0Zyb250TWF0ZXJpYWwuYW1iaWVudDsKKyAgICBjb2xvciA9IGd0Zl9Gcm9udE1hdGVyaWFs
LmRpZmZ1c2U7CisgICAgY29sb3IgPSBndGZfRnJvbnRNYXRlcmlhbC5zcGVjdWxhcjsKKyAgICB0
ZXN0X2Zsb2F0MSA9IGd0Zl9Gcm9udE1hdGVyaWFsLnNoaW5pbmVzczsKKworICAgIGd0Zl9MaWdo
dFNvdXJjZVBhcmFtZXRlcnMgbGlnaHRTb3VyY2U7CisKKyAgICBmbG9hdCBidWlsdEluRmxvYXQx
ID0gZ3RmX0xpZ2h0U291cmNlWzBdLnNwb3RFeHBvbmVudDsKKyAgICBjb2xvciA9IGd0Zl9MaWdo
dFNvdXJjZVswXS5hbWJpZW50OworICAgIGNvbG9yID0gbGlnaHRTb3VyY2UuYW1iaWVudDsKKyAg
ICBjb2xvciA9IGxpZ2h0U291cmNlLmRpZmZ1c2U7CisgICAgY29sb3IgPSBsaWdodFNvdXJjZS5z
cGVjdWxhcjsKKyAgICBjb2xvciA9IGxpZ2h0U291cmNlLnBvc2l0aW9uOworICAgIGNvbG9yID0g
bGlnaHRTb3VyY2UuaGFsZlZlY3RvcjsKKyAgICBjb2xvcjQgPSBsaWdodFNvdXJjZS5zcG90RGly
ZWN0aW9uOworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2Uuc3BvdEV4cG9uZW50OworICAg
IHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2Uuc3BvdEN1dG9mZjsKKyAgICB0ZXN0X2Zsb2F0MSA9
IGxpZ2h0U291cmNlLnNwb3RDb3NDdXRvZmY7CisgICAgdGVzdF9mbG9hdDEgPSBsaWdodFNvdXJj
ZS5jb25zdGFudEF0dGVudWF0aW9uOworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2UubGlu
ZWFyQXR0ZW51YXRpb247CisgICAgdGVzdF9mbG9hdDEgPSBsaWdodFNvdXJjZS5xdWFkcmF0aWNB
dHRlbnVhdGlvbjsKKworICAgIGNvbG9yID0gZ3RmX0xpZ2h0TW9kZWwuYW1iaWVudDsKKworICAg
IGd0Zl9MaWdodE1vZGVsUGFyYW1ldGVycyBsaWdodE1vZGVsOworICAgIGNvbG9yID0gZ3RmX0xp
Z2h0TW9kZWwuYW1iaWVudDsKKyAgICBjb2xvciA9IGxpZ2h0TW9kZWwuYW1iaWVudDsKKworICAg
IGNvbG9yID0gZ3RmX0Zyb250TGlnaHRNb2RlbFByb2R1Y3Quc2NlbmVDb2xvciA7CisKKyAgICBn
dGZfTGlnaHRNb2RlbFByb2R1Y3RzIGxpZ2h0TW9kZWxQcm9kOworCisgICAgY29sb3IgPSBsaWdo
dE1vZGVsUHJvZC5zY2VuZUNvbG9yOworICAgIGNvbG9yID0gZ3RmX0Zyb250TGlnaHRNb2RlbFBy
b2R1Y3Quc2NlbmVDb2xvcjsKKworICAgIGNvbG9yID0gZ3RmX0Zyb250TGlnaHRQcm9kdWN0WzBd
LmFtYmllbnQ7CisgICAgY29sb3IgPSBndGZfRnJvbnRMaWdodFByb2R1Y3RbMF0uYW1iaWVudDsK
KyAgICBndGZfTGlnaHRQcm9kdWN0cyBsaWdodFByb2Q7CisKKyAgICBjb2xvciA9ICBsaWdodFBy
b2QuYW1iaWVudDsKKyAgICBjb2xvciA9ICBsaWdodFByb2QuZGlmZnVzZTsKKyAgICBjb2xvciA9
ICBsaWdodFByb2Quc3BlY3VsYXI7CisKKworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0ZvZy5kZW5z
aXR5IDsKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuc3RhcnQgOworICAgIHRlc3RfZmxvYXQx
ID0gZ3RmX0ZvZy5lbmQgIDsKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuc2NhbGUgOworICAg
IGNvbG9yID0gZ3RmX0ZvZy5jb2xvciA7CisKKyAgICBndGZfRnJvbnRDb2xvciA9ICB2ZWM0KDEu
MCwgMS4wLCAxLjAsIDEuMCk7CisgICAgZ3RmX0JhY2tDb2xvciA9ICB2ZWM0KDEuMCwgMS4wLCAx
LjAsIDEuMCk7CisgICAgZ3RmX0Zyb250U2Vjb25kYXJ5Q29sb3IgPSAgdmVjNCgxLjAsIDEuMCwg
MS4wLCAxLjApOworICAgIGd0Zl9CYWNrU2Vjb25kYXJ5Q29sb3IgPSAgdmVjNCgxLjAsIDEuMCwg
MS4wLCAxLjApOworCisKKyAgICAvLyBWQVJZSU5HIFZBUklBQkxFUyBBVkFJTEFCTEUgSU4gRlJB
R01FTlQgQU5EIFZFUlRFWCBTSEFERVJTIEJPVEgKKyAgICBndGZfVGV4Q29vcmRbMF0gPSAgdmVj
NCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAgIGd0Zl9Gb2dGcmFnQ29vcmQgPSAgdmVjNCgxLjAs
IDEuMCwgMS4wLCAxLjApOworCit9CisKK3ZvaWQgdGVzdF9mdW5jdGlvbihjb25zdCBpbiBpbnQg
aW5faW50LCBpbm91dCBpbnQgb3V0X2ludCkKK3sKKyAgICBvdXRfaW50ID0gNTsKKyAgICBpbnQg
aSA9IDU7CisgICAgcmV0dXJuIDsKK30KKworaW50IHRlc3RfZnVuY3Rpb24xKGluIGludCBpbl9p
bnQxLCBpbm91dCBpbnQgaW5fb3V0X2ludCkKK3sKKyAgIGZsb2F0IGZmOworICAgaW5faW50MSA9
IDU7CisgICByZXR1cm4gaW5faW50MTsKK30KKwordm9pZCB0ZXN0X2Z1bmN0aW9uMyhsaWdodDMg
bGwpCit7CisgICAgbGwuaSA9IDUuMDsKKyAgICB2YXJ5aW5nX2ZsdCA9IDEuMjsKK30KKwordm9p
ZCB0ZXN0X2Z1bmN0aW9uNChsaWdodDUgbGwyMCkKK3sKKyAgICBsbDIwLmkgPSAxMC4wOworfQor
Cit2b2lkIHRlc3RfZnVuY3Rpb241KGxpZ2h0MSBzdHJ1Y3RfbGlnaHQxKQoreworICAgIHN0cnVj
dF9saWdodDEubGlnaHQyLmEgPSAxOworICAgIGxpZ2h0NSBsbDU7CisgICAgc3RydWN0X2xpZ2h0
MS5saWdodDIuZiA9IGxsNS5pOworICAgIHN0cnVjdF9saWdodDEubGlnaHQyLmYrKzsKKyAgICBz
dHJ1Y3RfbGlnaHQxLmxpZ2h0Mi5hKys7Cit9CisKK2xpZ2h0NiB0ZXN0X2Z1bmN0aW9uNihpbnQg
YSkKK3sKKyAgICBpbnQgeDsKKyAgICBsaWdodDYgZnVuY1N0cnVjdDsKKyAgICBsaWdodDcgZnVu
Y1N0cnVjdDE7CisgICAgLXg7CisgICAgeCA9IHggLSB4IDsKKyAgICBtYXQyIG07CisgICAgbSsr
OworICAgIC1tOworICAgIChtKSsrOworICAgIHJldHVybiBmdW5jU3RydWN0OworfQorCitmbG9h
dCB0ZXN0X2Z1bmN0aW9uNyhsaWdodDEgbGwxLCBpbnQgbGlnaHQxICkKK3sKKyAgICBmbG9hdCBm
OworCisgICAgc3RydWN0IHNzMSB7CisgICAgICAgIGludCBhOworICAgIH07CisKKyAgICByZXR1
cm4gZmxvYXQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092
ZXJsb2FkX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jT3ZlcmxvYWRfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU4ZTlhOTU1NGI0MjUzMDc3MzY4ZGZiNzg4ZmUwMWM3ZmU2MjE2
OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2Fk
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDI3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2b2lkIHRlc3RWb2lkICh2ZWM0IHYsIHZlYzQgdjEpCit7Cit9CisKK3ZvaWQg
dGVzdFZvaWQgKGl2ZWM0IHYsIGl2ZWM0IHYxKQoreworfQorCit2b2lkIG1haW4odm9pZCkKK3sK
KyAgICB2ZWM0IHY7CisgICAgaXZlYzQgaTsKKyAgICB0ZXN0Vm9pZChpLCBpKTsKKyAgICB0ZXN0
Vm9pZCh2LCB2KTsKKyAgICBnbF9GcmFnQ29sb3IgPSB2OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEZ1bmNPdmVybG9hZF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0RnVuY092ZXJsb2FkX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTJmN2U2MDdiOTRjY2Ri
NTQ4ODg4MjAzOTE5YTdiMDlhZjI0NzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvQ29ycmVjdEZ1bmNPdmVybG9hZF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwzNyBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworc3RydWN0IFMyCit7Cisg
ICAgICAgIGZsb2F0IGY7Cit9OworCitzdHJ1Y3QgUzEKK3sKKyAgICAgICAgZmxvYXQgZjsKKyAg
ICAgICAgUzIgczI7Cit9OworCitmbG9hdCBwcm9jZXNzKFMxIHMxKTsKK2Zsb2F0IHByb2Nlc3Mo
UzIgczIpOworCit2b2lkIG1haW4oKQoreworICAgICAgICBTMSBzMSA9IFMxKDEuMCwgUzIoMS4w
KSk7CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNChwcm9jZXNzKHMxKSk7Cit9CisKK2Zsb2F0
IHByb2Nlc3MoUzEgczEpCit7CisgICAgICAgIHJldHVybiBzMS5mICsgcHJvY2VzcyhzMS5zMik7
Cit9CisKK2Zsb2F0IHByb2Nlc3MoUzIgczIpCit7CisgICAgICAgIHJldHVybiBzMi5mOworfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RGdW5jdGlvbjFfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmN0aW9u
MV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM4NGNjNTdiNDIwMjk5YjgyYjM0N2ZmZWIyOTQxOWFj
YWU2MTEwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jdGlv
bjFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMzYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKK3ZlYzMgYmFyKHZlYzMsIHZlYzMpOworCit1bmlmb3JtIHZl
YzIgdjsKKworYm9vbCBmb28ob3V0IHZlYzMpOworCit2b2lkIG1haW4oKQoreworICAgIGJvb2wg
YjEsIGIyLCBiMywgYjQsIGI1LCBiNjsKKworICAgIGIxID0gYW55KGxlc3NUaGFuKHYsIHYpKTsK
KworICAgIGIyID0gYWxsKGxlc3NUaGFuRXF1YWwodiwgdikpOworCisgICAgYjMgPSBhbnkobm90
KGdyZWF0ZXJUaGFuKHYsIHYpKSk7CisKKyAgICBiNCA9IGFueShncmVhdGVyVGhhbkVxdWFsKHYs
IHYpKTsKKworICAgIGI1ID0gYW55KG5vdEVxdWFsKHYsIHYpKTsKKworICAgIGI2ID0gYW55KGVx
dWFsKHYsIHYpKTsKKworICAgIHZlYzIgdTsKKyAgICBpZiAoYjEgJiYgYjIgJiYgYjMgJiYgYjQg
JiYgYjUgJiYgYjYpCisgICAgICAgIHUgPSB2OworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KHUs
IHUpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0TW9kdWxlX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
M2JjNjk4MTVmOWRjMjY0YjQyNDljNDUzOTY5ZWUyOTBmMjU5MjE4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWcKQEAgLTAsMCArMSw2NCBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordmVjNCB0ZXN0X2Z1bmN0
aW9uNChmbG9hdCk7Cit2ZWM0IHRlc3RfZnVuY3Rpb24xKGZsb2F0KTsKK3ZlYzQgdGVzdF9mdW5j
dGlvbjIoZmxvYXQpOwordmVjNCB0ZXN0X2Z1bmN0aW9uMyhmbG9hdCk7CitmbG9hdCBmID0gMi42
OworCisKK3ZlYzQgdGVzdF9mdW5jdGlvbjEoZmxvYXQgZmYpCit7CisgICAgdmVjNCBmdW5jX3Zl
YzQgPSB2ZWM0KGZmK2YpOworICAgIHJldHVybiBmdW5jX3ZlYzQ7Cit9CisKK2Zsb2F0IGYxID0g
MS41OworCit2ZWM0IHRlc3RfZnVuY3Rpb240KGZsb2F0IGZmKQoreworICAgIHZlYzQgZnVuY192
ZWM0ID0gdmVjNChmMSk7CisgICAgcmV0dXJuIGZ1bmNfdmVjNDsKK30KKworZmxvYXQgZjIgPSAz
LjU7CisKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCB2MSA9IHRlc3RfZnVuY3Rpb240KGYyKTsK
KyAgICB2ZWM0IHYyID0gdGVzdF9mdW5jdGlvbjEoZjIpOworICAgIHZlYzQgdjMgPSB0ZXN0X2Z1
bmN0aW9uMihmMik7CisgICAgdmVjNCB2NCA9IHRlc3RfZnVuY3Rpb24zKGYyKTsKKworICAgIGlm
IChmMSA+IGYyKSB7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHYxICsgdjIgKyB2MyArIHY0Owor
ICAgIH0gZWxzZQorICAgICAgICBnbF9GcmFnQ29sb3IgPSB2MSArIHYyICsgdjMgKyB2NDsKK30K
KworZmxvYXQgZjQgPSA1LjU7Cit2ZWM0IHRlc3RfZnVuY3Rpb24zKGZsb2F0IGZmKQoreworICAg
IGlmIChmZiA+IGY0KQorCXJldHVybiB2ZWM0KGZmKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVy
biB2ZWM0KGY0KTsKK30KKworZmxvYXQgZjMgPSA0LjU7Cit2ZWM0IHRlc3RfZnVuY3Rpb24yKGZs
b2F0IGZmKQoreworICAgIHZlYzQgZnVuY192ZWM0ID0gdmVjNChmZitmMyk7CisgICAgcmV0dXJu
IGZ1bmNfdmVjNDsKK30KKworZmxvYXQgZjUgPSA2LjU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9Db3JyZWN0UGFyc2UxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJz
ZTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YTlmYjA3ZmJjMGI1MGM4OGE1ZDJiNDJlZjlhNzAy
ZTgyOWZkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2Ux
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDUxIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit1bmlmb3JtIHZlYzMgYVs4XTsKKwordW5pZm9ybSBib29sIHViOwordmFyeWlu
ZyBtYXQ0IHZtOworCitpbnQgZm9vKGZsb2F0KTsKKworZmxvYXQgYmFyKGludCBpKQoreworICAg
IHJldHVybiBmbG9hdChpKTsKK30KKwordm9pZCBtYWluICh2b2lkKQoreworICAgIGNvbnN0IGlu
dCB4ID0gMzsKKyAgICBtYXQ0IGFbNF07CisgICAgdmVjNCB2OworCisgICAgZm9yIChmbG9hdCBm
ID0gMC4wOyBmICE9IDMuMDsgKytmKQorICAgIHsKKyAgICB9CisKKyAgICB2ZWMzIHYzW3ggKyB4
XTsKKworICAgIGludCB2aSA9IGZvbygyLjMpOworCisgICAgdmVjMyB2M18xID0gdjNbeF07CisK
KyAgICBmbG9hdCBmMSA9IGFbeF1bMl0ueiAqIGZsb2F0KHgpOworICAgIGYxID0gYVt4XVsyXVsy
XSAqIGZsb2F0KHgpOworICAgIGYxID0gdlsyXSAqIHZbMV07CisKKyAgICBjb25zdCBpbnQgY2kg
PSAyOworCit9CisKK2ludCBmb28oZmxvYXQgZikKK3sKKyAgICByZXR1cm4gMjsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdFBhcnNlMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJmZTJlYzU3YWYzMTRj
YTI1MGFhNmJlNzE5NTkwODA5MDBlYjY5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL0NvcnJlY3RQYXJzZTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTM2IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitjb25zdCBmbG9hdCBGbG9hdENvbnN0MSA9IDMu
MCAqIDguMCwgZmxvYXRDb25zdDIgPSA0LjA7Citjb25zdCBib29sIEJvb2xDb25zdDEgPSB0cnVl
ICYmIHRydWUgfHwgZmFsc2U7Citjb25zdCBib29sIEJvb2xDb25zdDIgPSBmYWxzZSB8fCAhZmFs
c2UgJiYgZmFsc2U7CisKK3ZvaWQgbWFpbiAodm9pZCkKK3sKKyAgICBmbG9hdCBmbG9hdDEgPSA0
LjAsIGZsb2F0MiA9IGZsb2F0Q29uc3QyOworICAgIGludCBpbnRfMSA9IGludChGbG9hdENvbnN0
MSk7CisgICAgdmVjNCB2ZWM0XzE7CisgICAgdmVjMyB2ZWMzXzE7CisvLyAgdW5zaWduZWQgaW50
IHVuc2lnbmVkX2ludF8xOworICAgIGJvb2wgYm9vbDQsIGJvb2w1OworCisgICAgYm9vbDQgPSBi
b29sNTsKKyAgICAvL2Zsb2F0MSA9IGJvb2w1OworICAgIC8vYm9vbDUgPSBmbG9hdDE7CisKKyAg
ICBib29sNCA9IDQuMCA+IDUuMDsKKyAgICBib29sNCA9ICEoMy4yICE9IDAuMCk7CisgICAgYm9v
bDQgPSBib29sKGZsb2F0MSk7CisgICAgYm9vbDQgPSBib29sKGludF8xKTsKKyAgICBmbG9hdDEg
PSBmbG9hdChib29sNCk7CisgICAgZmxvYXQxID0gZmxvYXQoaW50XzEpOworICAgIGludF8xID0g
aW50KGZsb2F0MSk7CisgICAgaW50XzEgPSBpbnQoYm9vbDQpOworCisgICAgeworICAgICAgICBp
bnQgYSwgYiwgYzsKKworICAgICAgICBhID0gYjsKKyAgICAgICAgYiA9IGM7CisgICAgICAgIHsK
KyAgICAgICAgICAgIGludCBiLCBjLCBkOworCisgICAgICAgICAgICBiID0gYzsKKyAgICAgICAg
ICAgIGMgPSBkOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBhLCBkLCBlOwor
CisgICAgICAgICAgICAgICAgYSA9IGQ7CisgICAgICAgICAgICAgICAgZCA9IGU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IGEsIGIsIGM7CisgICAg
ICAgICAgICAgICAgYSA9IGI7CisgICAgICAgICAgICAgICAgYiA9IGM7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgYSA9IGI7CisgICAgICAgIGIgPSBjOworICAgIH0KKworICAg
IHsKKyAgICAgICAgZmxvYXQgZjEsIGYyOworICAgICAgICB2ZWMzIHYzMSwgdjMyOworCisgICAg
ICAgIG1heChmMSwgZjIpOworICAgICAgICBtYXgodjMxLCB2MzIpOworCisgICAgICAgIHZlYzQg
djQgPSB2ZWM0KDMuMCk7CisgICAgICAgIHZlYzMgdjMgPSAtdmVjMygyLjAsIDEuMCwgMy4wKTsK
KyAgICAgICAgbWF0MiBtMiA9IG1hdDIoMy4wLCA0LjAsIDYuMCwgMy4wKTsKKyAgICAgICAgLy9t
YXQ0IG00ID0gbWF0NCgxLjAsIG0yLCB2MywgdjQsIG0yKTsKKyAgICB9CisKKyAgICBpZiAoQm9v
bENvbnN0MSkKKyAgICAgICAgKyt2ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsK
KworICAgIGlmIChCb29sQ29uc3QyKQorICAgICAgICArK3ZlYzNfMTsKKyAgICBlbHNlCisgICAg
ICAgIC0tdmVjM18xOworCisgICAgaWYgKEJvb2xDb25zdDEgfHwgQm9vbENvbnN0MikKKyAgICAg
ICAgKyt2ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29s
Q29uc3QyICYmIEJvb2xDb25zdDEpCisgICAgICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAg
ICAgLS12ZWMzXzE7CisKKyAgICBpZiAoRmxvYXRDb25zdDEgIT0gMC4wKQorICAgICAgICAtLWlu
dF8xOworICAgIGVsc2UKKyAgICAgICAgKytpbnRfMTsKKworICAgIGlmICgwICE9IDApCisgICAg
ICAgICsraW50XzE7CisgICAgZWxzZQorICAgICAgICAtLWludF8xOworCisgICAgYm9vbDQgPSBC
b29sQ29uc3QxICYmICEgKGludF8xICE9IDApICYmICEgQm9vbENvbnN0MSAgJiYgISAoRmxvYXRD
b25zdDEgIT0gMC4wKSAmJiAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAoZmxvYXQxICE9IDAuMCk7
CisKKyAgICBmbG9hdDEgPSA1ICE9IDAgPyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisgICAgZmxv
YXQxID0gMCAhPSAwID8gZmxvYXQxIDogZmxvYXQoaW50XzEpOworCisgICAgaWYgKGZsb2F0MSAh
PSBmbG9hdDEpCisgICAgICAgICsraW50XzE7CisgICAgZWxzZQorICAgICAgICAtLWludF8xOwor
CisgICAgZmxvYXQxID0gZmxvYXQxICE9IGZsb2F0MSA/IGZsb2F0MSA6IGZsb2F0KGludF8xKTsK
KworICAgIC0taW50XzE7CisgICAgKytmbG9hdDE7CisgICAgKHZlYzRfMS54KS0tOworICAgIHZl
YzNfMSsrOworCisJaWYgKGludF8xICE9IDQpCisJCWRpc2NhcmQ7CisKKyAgICBmbG9hdDEgPSA0
LjAgKyA2LjA7CisgICAgaW50IGlpLGpqLGtrOworICAgIGZsb2F0IGZmOworICAgIGlpID0gamos
IGtrLCBmZjsKKworICAgIHZlYzRfMSA9IHZlYzRfMSArIDIuMDsKKyAgICBpdmVjNCBpdjsKKyAg
ICBpdiA9IGl2ICsgMjsKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGZsb2F0MStmbG9hdDEsIGZs
b2F0MSwgZmxvYXQxLCBmbG9hdChpbnRfMSkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvQ29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2Uy
X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjY4NjQ0MmE5YTYxOGQ1YzViZjI1NTg3M2U3ZmNlYTNi
NjZiMjA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMl92
ZXJ0LnZlcnQKQEAgLTAsMCArMSwxNDkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKK2NvbnN0IGZsb2F0IEZsb2F0Q29uc3QxID0gMy4wICogOC4wLCBm
bG9hdENvbnN0MiA9IDQuMDsKK2NvbnN0IGJvb2wgQm9vbENvbnN0MSA9IHRydWUgJiYgdHJ1ZSB8
fCBmYWxzZTsKK2NvbnN0IGJvb2wgQm9vbENvbnN0MiA9IGZhbHNlIHx8ICFmYWxzZSAmJiBmYWxz
ZTsKKwordm9pZCBtYWluICh2b2lkKQoreworICAgIGZsb2F0IGZsb2F0MSA9IDQuMCwgZmxvYXQy
ID0gZmxvYXRDb25zdDI7CisgICAgaW50IGludF8xID0gaW50KEZsb2F0Q29uc3QxKTsKKyAgICB2
ZWM0IHZlYzRfMTsKKyAgICB2ZWMzIHZlYzNfMSA9IHZlYzMoMSwgMSwgMSk7CisJdmVjMyB2ZWMz
XzIgPSB2ZWMzKDAsIDAsIDApOworLy8gIHVuc2lnbmVkIGludCB1bnNpZ25lZF9pbnRfMTsKKyAg
ICBib29sIGJvb2w0LCBib29sNTsKKworICAgIGJvb2w0ID0gYm9vbDU7CisgICAgLy9mbG9hdDEg
PSBib29sNTsKKyAgICAvL2Jvb2w1ID0gZmxvYXQxOworCisgICAgYm9vbDQgPSA0ID4gNTsKKyAg
ICBib29sNCA9ICEoMy4yICE9IDAuMCk7CisgICAgYm9vbDQgPSBib29sKGZsb2F0MSk7CisgICAg
Ym9vbDQgPSBib29sKGludF8xKTsKKyAgICBmbG9hdDEgPSBmbG9hdChib29sNCk7CisgICAgZmxv
YXQxID0gZmxvYXQoaW50XzEpOworICAgIGludF8xID0gaW50KGZsb2F0MSk7CisgICAgaW50XzEg
PSBpbnQoYm9vbDQpOworCisgICAgeworICAgICAgICBpbnQgYSwgYiwgYzsKKworICAgICAgICBh
ID0gYjsKKyAgICAgICAgYiA9IGM7CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBiLCBjLCBk
OworCisgICAgICAgICAgICBiID0gYzsKKyAgICAgICAgICAgIGMgPSBkOworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGludCBhLCBkLCBlOworCisgICAgICAgICAgICAgICAgYSA9IGQ7
CisgICAgICAgICAgICAgICAgZCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgaW50IGEsIGIsIGM7CisgICAgICAgICAgICAgICAgYSA9IGI7CisgICAg
ICAgICAgICAgICAgYiA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYSA9
IGI7CisgICAgICAgIGIgPSBjOworICAgIH0KKworICAgIHsKKyAgICAgICAgZmxvYXQgZjEsIGYy
OworICAgICAgICB2ZWMzIHYzMSwgdjMyOworCisgICAgICAgIG1heChmMSwgZjIpOworICAgICAg
ICBtYXgodjMxLCB2MzIpOworCisgICAgICAgIHZlYzQgdjQgPSB2ZWM0KDMuMCk7CisgICAgICAg
IHZlYzMgdjMgPSAtdmVjMygyLjAsIDEuMCwgMy4wKTsKKyAgICAgICAgbWF0MiBtMiA9IG1hdDIo
My4wLCA0LjAsIDYuMCwgMy4wKTsKKyAgICAgICAgLy9tYXQ0IG00ID0gbWF0NCgxLjAsIG0yLCB2
MywgdjQsIG0yKTsKKyAgICB9CisKKyAgICBpZiAoQm9vbENvbnN0MSkKKyAgICAgICAgKyt2ZWMz
XzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29sQ29uc3QyKQor
ICAgICAgICArK3ZlYzNfMTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18xOworCisgICAgaWYg
KEJvb2xDb25zdDEgfHwgQm9vbENvbnN0MikKKyAgICAgICAgKyt2ZWMzXzE7CisgICAgZWxzZQor
ICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29sQ29uc3QyICYmIEJvb2xDb25zdDEpCisg
ICAgICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAo
RmxvYXRDb25zdDEgIT0gMC4wKQorICAgICAgICAtLWludF8xOworICAgIGVsc2UKKyAgICAgICAg
KytpbnRfMTsKKworICAgIGlmICgwICE9IDApCisgICAgICAgICsraW50XzE7CisgICAgZWxzZQor
ICAgICAgICAtLWludF8xOworCisgICAgYm9vbDQgPSBCb29sQ29uc3QxICYmICEgKGludF8xICE9
IDApICYmICEgQm9vbENvbnN0MSAgJiYgISAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAoRmxvYXRD
b25zdDEgIT0gMC4wKSAmJiAoZmxvYXQxICE9IDAuMCk7CisKKyAgICBmbG9hdDEgPSA1ICE9IDAg
PyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisgICAgZmxvYXQxID0gQm9vbENvbnN0MSA/IGZsb2F0
MSA6IGZsb2F0KGludF8xKTsKKworICAgIGlmIChmbG9hdDEgIT0gZmxvYXQxKQorICAgICAgICAr
K2ludF8xOworICAgIGVsc2UKKyAgICAgICAgLS1pbnRfMTsKKworICAgIGZsb2F0MSA9IGZsb2F0
MSAhPSBmbG9hdDEgPyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisKKyAgICAtLWludF8xOworICAg
ICsrZmxvYXQxOworICAgICh2ZWM0XzEueCktLTsKKyAgICB2ZWMzXzErKzsKKworICAgIGlmICh2
ZWMzXzEueCA+IHZlYzNfMi54KQorICAgICAgICBmbG9hdDEgPSA0LjAgKyA2LjA7CisKKyAgICBp
ZiAoYm9vbDQgXl4gYm9vbDUpCisgICAgICAgIGZsb2F0MSAqPSAyLjQ7CisKKyAgICBpZiAoZmFs
c2UgXl4gZmFsc2UpCisgICAgICAgIGZsb2F0MSAqPSAyLjU7CisKKyAgICBpZiAodHJ1ZSBeXiBm
YWxzZSkKKyAgICAgICAgZmxvYXQxICo9IDIuNjsKKworICAgIHsKKyAgICAgICAgaW50IGk7Cisg
ICAgfQorCisgICAgaWYgKGJvb2w0KSB7CisgICAgICAgIGludCBpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGludCBpOworICAgICAgICBpID0gNTsKKyAgICB9CisKKyAgICBtYXQ0IG0xOworICAg
IG0xWzJdWzFdID0gNC4wOworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGZsb2F0MStmbG9hdDEs
IGZsb2F0MSwgZmxvYXQxLCBmbG9hdChpbnRfMSkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdFBhcnNlVGVzdDFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dFBhcnNlVGVzdDFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YzEwNjEwM2JhNjlmNjMxNzA3Y2U0
MWE0MTUyZjNlOTNjYzZmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3Jy
ZWN0UGFyc2VUZXN0MV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIHZlYzQgdjsKK30gczI7CisK
K3ZvaWQgbWFpbigpCit7CisgICAgcyBzMSA9IHModmVjNChpdmVjNCg0LjAsIHZlYzIoNSw2KSwg
Ny4wKSkpOworICAgIHZlYzQgdiA9IHZlYzQoMixpdmVjMigzLjAsIDQuMCksIDUuMCk7CisgICAg
dmVjNCB2NCA9IHZlYzQoaXZlYzQoOC4wKSk7CisKKyAgICBnbF9GcmFnQ29sb3IgPSB2NCArIHYg
KyBzMS52OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2VUZXN0X2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NmI2ZGRjNjAxM2RiZmNkZDVmNWFlNWQ5MjI5M2FlOWZiM2ZmYTc0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwyNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3Ry
dWN0IHN7CisgICAgZmxvYXQgZjsKKyAgICB2ZWMzICB2OworfSBzMSA7Cit2b2lkIG1haW4oKQor
eworICAgIHZlYzQgdiA9IHZlYzQoZmxvYXQodmVjMigxLDIpKSwgNSw2LDcpOyAgLy8gMSwgNSwg
NiwgNworICAgIHZlYzQgdjEgPSB2ZWM0KDMsIHZlYzIoaXZlYzIoMSwyKSksIDQpOyAgLy8gMywg
MSwgMiwgNAorICAgIHZlYzQgdjIgPSB2ZWM0KDgsIDksIHZlYzQoaXZlYzQoMSwyLDMsNCkpKTsg
Ly8gOCw5LCAxLDIKKyAgICB2ZWMyIHYzID0gdmVjMih2Mik7ICAvLyA4LDkKKyAgICB2ZWM0IHY0
ID0gdmVjNCh2MywgdjIueiwgdjIudyk7ICAvLyA4LDksMSwyCisKKyAgICBjb25zdCB2ZWM0IHY1
ID0gdmVjNCgyLjAsIHMoMi4wLCB2ZWMzKDMsNCw1KSkudik7IC8vIDIsMyw0LDUKKyAgICBnbF9G
cmFnQ29sb3IgPSB2NSArIHYgKyB2MSArIHY0IDsgIC8vIDE0LCAxOCwgMTMsIDE4Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczVfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGJh
YzFhMDExMWZkYTdlMDYzNzczZjRjYzQ1Y2YwZTA2OTQ3YjYwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDMx
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvL211dGlwbGUgbGlu
ZSBtYWNyb3MgLSB0ZXN0IGNhc2UuCisKKyNkZWZpbmUgdGVzdCA1CisjZGVmaW5lIHQxIDEKKyNk
ZWZpbmUgdDIgMgorI2RlZmluZSB0b2tlbiAodDErdDIpCisjZGVmaW5lIHRlc3QxIGludCBzdW0g
PTE7IHN1bSA9IHRlc3Q7IHN1bSA9IHRlc3QrdGVzdDsKKworI2RlZmluZSB0ZXN0MiB7IHRlc3Qx
IHN1bSA9IHN1bSArdG9rZW47IHN1bSA9IHQyKnQxOyB9CisKK3ZvaWQgbWFpbih2b2lkKQorewor
IGludCB0ZXN0Mz0xOworIHRlc3QxCisgdGVzdDI7CisgdGVzdDMgPSB0ZXN0OworIHN1bSA9IHRl
c3QzOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNz
OF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczhfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxYTM0NjZlOWFiZmU0MTNiZjIwNTJkYTNiNzBkZjg1MDcwODQ5NjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczhfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2Vu
ZGlmCisvLyBFeHRlbnNpdmUgdGVzdGluZyBvbiAjaWYgI2Vsc2UgI2VsaWYgI2lmZGVmLCAjaWZu
ZGVmIGFuZCAjZW5kaWYuCisKKworI2RlZmluZSB0MSAxCisKKyNpZih0MT09MSkKKyAgI2RlZmlu
ZSB0MiAyCisjZW5kaWYKKworI2lmICh0MiE9MikKKyAgI2RlZmluZSB0MyAzMworI2Vsc2UKKyAg
I2RlZmluZSB0MyAzCisjZW5kaWYKKworI2lmICh0MyE9MykKKyAjZGVmaW5lIHQ0IDQKKyNlbGlm
ICh0Mz09MykKKyAjZGVmaW5lIHQ0IDQ0CisjZWxzZQorICAjZGVmaW5lIHQ0IDAKKyNlbmRpZgor
CisjaWYgZGVmaW5lZCh0NSkKKyAjZGVmaW5lIHQ2IDYKKyNlbGlmICh0MyE9MykKKyAjZGVmaW5l
IHQ1IDUKKyNlbGlmICh0Mz09MykKKyAjZGVmaW5lIHQ1IDUKKyNlbmRpZgorCisjaWZkZWYgdDUK
KyAjZGVmaW5lIHQ2IDYKKyNlbHNlCisgI2RlZmluZSB0NyA3CisjZW5kaWYKKworI2lmbmRlZiB0
OAorICNkZWZpbmUgdDggOAorI2VuZGlmCisKKyNpZiBkZWZpbmVkIHQ4CisgI2RlZmluZSB0OQor
ICNpZmRlZiB0OQorICAjZGVmaW5lICB0MTAgMTAKKyAjZW5kaWYKKyNlbGlmCisgI2RlZmluZSB0
MTEgMTEKKyNlbmRpZgorCisjaWZuZGVmIHQ4CisgI2RlZmluZSB0MTIgMTIKKyNlbHNlCisgI2Rl
ZmluZSB0MTIgMTIKKyAjaWZuZGVmIHQxMworICAjZGVmaW5lIHQxMyAxMworICNlbmRpZgorICNp
ZmRlZiB0MTQKKyAgI2RlZmluZSB0MTUgMTUKKyAjZWxzZQorICAjaWYgZGVmaW5lZCB0OAorICAg
I2RlZmluZSB0MTYgMTYKKyAgI2VuZGlmCisgI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIHQxCisg
ICAjaWZkZWYgdDEwCisgICAgICAjaWYgZGVmaW5lZCB0OAorICAgICAgICAgI2lmIGRlZmluZWQo
dDMpCisgICAgICAgICAgICAgICAjaWZuZGVmIHQyMAorICAgICAgICAgICAgICAgICAgI2RlZmlu
ZSB0MjUgMjUKKyAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgI2Vsc2UKKyAgICAgICAg
ICAgICNkZWZpbmUgdDE1IDE1CisgICAgICAgICAgICAjZGVmaW5lIHQyNCAyNAorICAgICAgICAg
I2VuZGlmCisgICAgICAjZW5kaWYKKyAgICNlbmRpZgorI2Vsc2UKKyAgICNpZmRlZiB0MjEKKyAg
ICAgI2RlZmluZSB0MjIgMjIKKyAgICNlbHNlCisgICAgICNkZWZpbmUgdDIzIDIzCisgICAjZW5k
aWYKKyNlbmRpZgorI2RlZmluZSB0NyA3CisjZGVmaW5lIHQxMSAxMQorI2RlZmluZSB0MTQgMTQK
KyNkZWZpbmUgdDE1IDE1CisjZGVmaW5lIHQyMCAyMAorI2RlZmluZSB0MjIgMjIKKyNkZWZpbmUg
dDIzIDIzCisjZGVmaW5lIHQyNCA0MgorCit2b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgc3VtID0w
OworIHN1bSA9IHQxK3QyK3QzK3Q0K3Q1OworIHN1bSA9IHQ2K3Q3K3Q4K3Q5K3QxMDsKKyBzdW0g
PSB0MTErdDEyK3QxMyt0MTQrdDE1OworIHN1bSA9IHQxNit0MjArdDIyK3QyMyt0MjUrdDI0Owor
fQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczlfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OTQ2MzEyOTM0MjlhNjRmYzMxNzQ5NDY1NGFhNjVhMzEzYTJkOGU3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDMyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisjZGVm
aW5lIHQxIDIuMzMzMzMzMzMzMzMzMzMzMworI2RlZmluZSB0MiAoMC45NzgyOTM2MDAtMS4wKQor
I2RlZmluZSB0MyAuOTA5MDkwOTA5MAorI2RlZmluZSB0NCAyNjU3ODIzNS4wMDAwMDAwODM0ODcK
KyNkZWZpbmUgdDUgNzhlLTAzCisjZGVmaW5lIHQ2IDc4LjEwMDAwNUUrMDUKKyNkZWZpbmUgdDcg
NjI3OC43OGUtNQorCit2b2lkIG1haW4odm9pZCl7CisgICAgZmxvYXQgdGVzPTJlLTM7CisgICAg
ZmxvYXQgdGVzdD0zLjJlLTU7CisgICAgZmxvYXQgdGVzdDE9MC45OTk5NTUwMDsKKyAgICBmbG9h
dCB0ZXN0Mj02Nzg5Ljk4MzsKKworICAgIHRlc3QgPSB0MSt0MjsKKyAgICB0ZXN0ID0gdDMtdDQ7
CisgICAgdGVzICA9IHQ1ICogdDY7CisgICAgdGVzdDIgPSB0NzsKKworICAgIGdsX0ZyYWdDb2xv
ciA9IHZlYzQodGVzdCwgdGVzLCB0ZXN0MSwgdGVzdDIpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RTd2l6emxlMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIyNmYxODZjMWU3NjFjMDkwMTJlZjJm
MmU5NzNlNDQ4ZTA0ZDBkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RTd2l6emxlMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyNCBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHYgPSB2ZWMyKDEs
NSk7CisgICAgLy8gYXQgdGhlIGVuZCBvZiBuZXh0IHN0YXRlbWVudCwgdmFsdWVzIGluCisgICAg
Ly8gdi54ID0gMTIsIHYueSA9IDEyCisgICAgdi54eSArPSB2Lnl4ICs9IHYueHk7CisgICAgLy8g
djEgYW5kIHYyLCBib3RoIGFyZSBpbml0aWFsaXplZCB3aXRoIDEyCisgICAgdmVjMiB2MSA9IHYs
IHYyID0gdjsKKworICAgIHYxLnh5ICs9IHYyLnl4ICs9ICsrKHYueHkpOyAgLy8gdjEgPSAzNywg
djIgPSAyNSBlYWNoCisgICAgdjEueHkgKz0gdjIueXggKz0gKHYueHkpKys7ICAvLyB2MSA9IDc1
LCB2MiA9IDM4IGVhY2gKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHYxLHYyKTsgIC8vIDc1LCA3
NSwgMzgsIDM4Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFf
dmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNmNlM2IzZWUzMzIyMDk3YTNmNDM3OWE1YTJiYjJmNmQ2NTYzNjI2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydApAQCAt
MCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCithdHRyaWJ1dGUgdmVjNCBndGZfTm9ybWFsOwordW5pZm9ybSBtYXQ0IGd0Zl9Ob3JtYWxN
YXRyaXg7Cit2b2lkIG1haW4odm9pZCkKK3sKKyAgIHZlYzQgdiA9IHZlYzQoMSwyLDMsNCk7Cisg
ICB2ZWMzIHYzID0gdmVjMyg1LDYsNyk7CisgICB2ZWM0IHY0ICA9IHZlYzQobm9ybWFsaXplKHYz
Lnl6eSkueHl6Lnp5eCwgMS4wKTsKKyAgIGdsX1Bvc2l0aW9uID0gdjQgKyB2ZWM0KG5vcm1hbGl6
ZShndGZfTm9ybWFsTWF0cml4ICogZ3RmX05vcm1hbCkueHl6Lnp5eCwgdjQueSk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTJfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDA3NGFhMmE3
N2ViNTQyNjI0ZWI3OTA1NmFmMjdjNDliNjc2MjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDM5IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZs
b2F0IGYsIGYxLCBmMjsKKyAgICBmID0gZjEgPSBmMjsKKyAgICBmICs9IGYxICs9IGYyOworCisg
ICAgdmVjNCB2LCB2MSwgdjI7CisgICAgdiA9IHYxID0gdjI7CisgICAgdiArPSB2MSArPSB2MjsK
KyAgICB2Lnd4ID0gdjEuenggPSB2Mi55eDsKKyAgICB2Lnd4ICs9IHYxLnp4ICs9IHYyLnl4Owor
CisgICAgbWF0NCAgbSwgbTEsIG0yOworICAgIG0gPSBtMSA9IG0yOworICAgIG0gKz0gbTEgKz0g
bTI7CisgICAgbVszXS53eCA9IG0xWzJdLnp4ID0gbTJbMV0ueXg7CisgICAgbVszXS53eCArPSBt
MVsyXS56eCArPSBtMlsxXS55eDsKKworICAgIG1hdDQgIGFtWzRdLCBhbTFbNF0sIGFtMls0XTsK
KyAgICBhbVszXSA9IGFtMVsyXSA9IGFtMlsxXTsKKyAgICBhbVszXSArPSBhbTFbMl0gKz0gYW0y
WzFdOworICAgIGFtWzNdWzNdLnd4ID0gYW0xWzJdWzJdLnp4ID0gYW0yWzFdWzFdLnl4OworICAg
IGFtWzNdWzNdLnd4ICs9IGFtMVsyXVsyXS56eCArPSBhbTJbMV1bMV0ueXg7CisgICAgYW1bM11b
M10ud3ggKz0gYW0xWzJdWzJdLnp4ICs9ICsrKGFtMlsxXVsxXS55eCk7CisgICAgYW1bM11bM10u
d3ggKz0gYW0xWzJdWzJdLnp4ICs9IChhbTJbMV1bMV0ueXgpKys7CisKKyAgICBnbF9GcmFnQ29s
b3IgPSB2ZWM0KGFtWzNdWzNdLnosIG1bM10udywgdi53LCBmKTsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0U3dpenpsZTJfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxOTdjYzBiYWMzZGE2Mzg2NTQ0
NTM4ZjA3YTI3NWU3MjhjMzdjYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0U3dpenpsZTJfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgdmVj
NCB2MSA9IHZlYzQoNSw2LDcsOCk7CisgICAgdmVjNCB2MiA9IHZlYzQoOSwxMCwgMTEsIDEyKTsK
KyAgICB2ZWMzIHYzID0gKHYxICogdjIpLnl3eDsKKyAgICBmbG9hdCBmID0gKHYyICogdjEpLno7
CisgICAgdmVjMyB2NCA9IG5vcm1hbGl6ZSgodjEueXd4ICogdjMpLnh5eikueHl6OworICAgIGds
X1Bvc2l0aW9uID0gdmVjNCh2NCwgZik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0U3dpenpsZTNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUz
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjI2NjVjMTNlYWI2ODZlNWM0NzA5MDExNzMzOGEyNzdi
ZGFiZDIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUz
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDI0IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzQgdiA9IHZlYzQoNSw2LDcsOCk7Cisg
ICAgLy8gdmFsdWUgY2hhbmdlcyBmb3IgbGhzCisgICAgLy8gODc2NSwgNjc1OCwgODU3LCA3NSBp
LmUuIHJlcGxhY2Ugdi56eAorICAgIC8vIHZhbHVlIGNoYW5nZXMgZm9yIHJocworICAgIC8vIDg3
NjUsIDY3NTgsIDg2IGkuZSByZXBsYWNlIHdpdGggdi53eQorICAgIC8vIHJlcGxhY2Ugdi56IHdp
dGggdi53CisgICAgLy8gcmVwbGFjZSB2Lnggd2l0aCB2LnkKKyAgICAvLyBhZGQgMS4wMDAwMDAg
dG8gdi53IGFuZCB2LnkKKyAgICB2Lnd6eXguenl3eC53enkuenkgPSAodi53enl4Lnp5d3gud3gp
Kys7CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2KTsgIC8vIDYsNyw4LDkKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFZlcnNpb25fVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEwNDA1
YTI2NGMzZWQ2NzJhMTM0MWFiYTUzZjdiNGM1ZWRjYmFjNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyN2ZXJz
aW9uIDEwMAorI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
LyogI3ZlcnNpb24gY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgbnVtYmVyIDEwMC4gVGhlIG9ubHkg
c3RhdGVtZW50cyBiZWZvcmUKKyAgICN2ZXJzaW9uIGNhbiBiZSBjb21tZW50IG9yIHdoaXRlIHNw
YWNlcyAqLworCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxKTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvRHVwbGljYXRlVmVyc2lvbjFfVjEwMF9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmNlODFlNThiNWE4Y2ExOGQ2N2NjMWVjOTdjN2I0NDcyN2E5ZTc3NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyN2ZXJzaW9uIDEwMAorI3ZlcnNpb24gMTAwCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvKiBUd28gdmVyc2lvbiBzdGF0ZW1lbnRz
IGFyZSBub3QgYWxsb3dlZCBzaW5jZSBhbnkgI3ZlcnNpb24gbXVzdCBiZSB0aGUgZmlyc3Qgbm9u
LXdoaXRlc3BhY2UsIG5vbi1jb21tZW50ICovCisKK3ZvaWQgbWFpbigpCit7CisgICBnbF9GcmFn
Q29sb3IgPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25Q
YXJhbV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9GdW5jdGlvblBhcmFtX3ZlcnQudmVydApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40Yjc0OTQzYmRmNWZmOWQ3NDZkZTY4ZDZkZGJiMTgzNTI1NmNlYzhiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25QYXJhbV92ZXJ0LnZlcnQKQEAg
LTAsMCArMSwyMSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworaW50IHkgPSAxOworCitpbnQgZm9vKGludCwgaW50IGJbeV0pICAvLyBhcnJheSBzaXpl
IHNob3VsZCBiZSBjb25zdGFudAoreworICAgIHJldHVybiAxOworfQorCit2b2lkIG1haW4oKQor
eworICAgIGludCBhWzFdOworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEuMCk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9JbmNsdWRlX1ByZXByb2Nlc3Nvcl9EaXJlY3RpdmVfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYjdkNjc0YjhkOTllMmUzZDA2YWQ2NmZmMGVkMGQ1YzgxZDM2
ZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNz
b3JfRGlyZWN0aXZlX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCisjaW5jbHVkZSAiR0wvYnVpbGQvTlZJRElBX1Rlc3RfSW5j
bHVkZV9mcmFnLmZyYWciCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Mb3dfTGV2ZWxfQXNz
ZW1ibHlfUmVzZXJ2ZWRfV29yZHNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTG93X0xldmVs
X0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDg2ODMwNDc3
NmNjNzU2ZjYzY2JmNWIwZDgwNDkzMGZkNjNiYzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDI3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlm
b3JtIGZsb2F0IE1JTjsKK3VuaWZvcm0gZmxvYXQgUjA7Cit1bmlmb3JtIGZsb2F0IEZPR0M7Cit1
bmlmb3JtIGZsb2F0IENVQkU7Cit1bmlmb3JtIGZsb2F0IGY7Cit1bmlmb3JtIGZsb2F0IG87Cit1
bmlmb3JtIGZsb2F0IHA7Cit1bmlmb3JtIGZsb2F0IHc7Cit1bmlmb3JtIGZsb2F0IHg7Cit1bmlm
b3JtIGZsb2F0IHk7Cit1bmlmb3JtIGZsb2F0IHo7CisKK3ZvaWQgbWFpbigpCit7CisJZ2xfRnJh
Z0NvbG9yID0gdmVjNChmLCBvLCBwLCB3KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L01haW5fUGFyYW1ldGVyc192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFtZXRl
cnNfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMGYzOWQ3NGIzMWUxMjQ2MzdhNzdmZjg3MzZlODg4
ODUwZjExZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFtZXRl
cnNfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbih2ZWM0IHBvc2l0aW9uIDogUE9TSVRJT04p
Cit7CisJZ2xfUG9zaXRpb24gPSBwb3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL1BhcnNlVGVzdDNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0M19mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTI0MjQ2N2EwODhjZjdlYjMxODE1NTU3NDEwMGZkYTgxY2IzYTBh
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1BhcnNlVGVzdDNfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMjAgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgY29uc3QgdmVjNCB2ID0gdmVjNChub3JtYWxpemUodmVjNCgx
KSkpOyAgICAvLyBCdWlsdGluIGZ1bmN0aW9ucyBhcmUgY29uc3RhbnQgZXhwcmVzc2lvbnMgaWYg
YWxsIHRoZWlyIHBhcmFtZXRlcnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zIC0gY29kZSBvawor
ICAgIGNvbnN0IHZlYzQgdjEgPSB2ZWM0KGNsYW1wKDEuMCwgLjIwLCAzLjApKTsgLy8gQnVpbHRp
biBmdW5jdGlvbnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zIGlmIGFsbCB0aGVpciBwYXJhbWV0
ZXJzIGFyZSBjb25zdGFudCBleHByZXNzaW9ucyAtIGNvZGUgb2sKKyAgICBmbG9hdCBmID0gMS4w
OworICAgIGNvbnN0IHZlYzQgdjIgPSB2ZWM0KGZsb2F0KHZlYzQoMSwyLDMsZikpKTsgLy8gZiBp
cyBub3QgY29uc3RhbnQgLSBjb2RlIGZhaWxzIGFuZCB0ZXN0IGRvZXMgbm90IGNvbXBpbGUgKGV4
cGVjdGVkKQorCisgICAgZ2xfRnJhZ0NvbG9yID0gdiArIHYxICsgdjI7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3Q0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Bh
cnNlVGVzdDRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZWY2ZDMxYjEzYjJlOGM4YWUyMjkzYzJj
NTE4YTA2NTVjYTE1Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRl
c3Q0X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGNvbnN0IHZlYzQgdiA9IHZlYzIoMi4w
LCAzLjApOworICAgIGdsX0ZyYWdDb2xvciA9IHY7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9QZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL1Blcm1pc3NpdmVfQ29uc3RhbnRfQ29udmVyc2lvbnNfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUyNmQ2MmIyMGRiM2VkZTk4NzY2ODQ3MTI2NjM4ZjdjZjVkMjU0ZWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2b2lkIG1haW4oKQoreworCWZsb2F0IGYgPSAyOyAvLyBTaG91bGQgYmUgMi4wCit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNzaXZlX1NjYWxhcl9WZWN0b3JfRXhw
cmVzc2lvbnNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9TY2FsYXJfVmVj
dG9yX0V4cHJlc3Npb25zX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzY3YzdmZmIxNzUxYzNmYTlm
MTRiZjliYmMxNzQ4ZDRhYjQ4Yzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
UGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworCXZlYzIgdiA9IHZlYzIoMS4wLCAyLjApOworCXYgKj0gMi4wOyAvLyBMZWdhbCBpbiBH
TFNMLgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvVGVybmFyeU9wX2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL1Rlcm5hcnlPcF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM1NmYwMDU5
NjkyM2MxNjA0NzczN2E4YmQ3YTVmZmMyMTA0ODJkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL1Rlcm5hcnlPcF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBtYXQ0IG07
CisgICAgdmVjNCB2OworICAgIGJvb2wgYjsKKyAgICBnbF9GcmFnQ29sb3IgPSBiID8gdiA6IG07
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVy
c19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19m
cmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhiYjBkNjA5ZTUxZjlhNzAwM2YyNzdmYTAwY2Q2NGNhOWUy
ZDE2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1RleHR1cmVfUmVjdGFuZ2xl
X1NhbXBsZXJzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc2FtcDsKKwordm9pZCBt
YWluKCkKK3sKKwlnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNhbXAsIHZlYzIoMC4wLCAw
LjApKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MTBfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYXJyYXkxMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ2NjgxY2YzNjVk
YmFjZDgwMTYxODk3NDJjMDljZTFlODdkYTZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2FycmF5MTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmW107
CisgICAgZmxvYXQgZmx0ID0gZls1XTsKKyAgICBmbG9hdCBmWzNdOyAgLy8gaGlnaGVyIGFycmF5
IGluZGV4IGhhcyBhbHJlYWR5IGJlZW4gdXNlZAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYXJyYXkxMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTExX2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZmQ3YWJkYWRmNmEzMDYwM2RmZTM5OWFkZGFmMzIzOThkZDRlMjdmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMV9mcmFnLmZyYWcKQEAgLTAsMCAr
MSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWlu
KCkKK3sKKyAgICBmbG9hdCBmW107CisgICAgaW50IGZbNF07ICAvLyBhcnJheSByZWRlY2xhcmVk
IHdpdGggYSBkaWZmZXJlbnQgdHlwZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJy
YXkxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MV9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWI0MDJiYTkyYjc2ZTdjOWM3Y2Y0YzgxNjBiZWYwNjVmYjcwMjhmNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAg
ICBpbnQgYXJyYXlbMl1bMl07ICAvLyB0d28gZGltZW50aW9uYWwgYXJyYXlzIGFyZSBub3QgYWxs
b3dlZAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkyX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2FycmF5Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdkMGNiYzI0MjkzMGNl
ZGVmMWY5YWViOWU1MTdlNjNlNGIzMGE0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2FycmF5Ml9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCBpbnQgYXJyYXlb
Ml07ICAvLyBjYW5ub3QgZGVjbGFyZSBjb25zdCBhcnJheXMKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2FycmF5M19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTNfZnJhZy5m
cmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ4ZDcwNjFiZDFkOWFmYzY5Y2M1N2ZhNDA4NTA1NDZmN2IzNDVlY2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTNfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
bWFpbigpCit7CisgICAgaW50IGFycmF5MVsyXSwgYXJyYXkyWzJdOworICAgIGJvb2wgYiA9IGFy
cmF5MSA9PSBhcnJheTI7IC8vIGVxdWFsaXR5IG9wZXJhdG9yIGRvZXMgbm90IHdvcmsgb24gYXJy
YXlzIGJ1dCB3b3JrcyBvbiBhcnJheSBlbGVtZW50cworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYXJyYXk0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5NF9mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTJhYmViODI2YzhiZTFkNjNlOTVlNGYxMzNmOWVhMzcyOGM1ZWVjNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5NF9mcmFnLmZyYWcKQEAgLTAsMCAr
MSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWlu
KCkKK3sKKyAgICBmbG9hdCBmWy0yXTsgLy8gY2Fubm90IGRlY2xhcmUgYXJyYXlzIHdpdGggbmVn
YXRpdmUgc2l6ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk1X2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5NV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQxMzU2MjA4
NGUyMjYwMzgzNTA4NGE0MzQxZmZkMDBmYWZkY2RhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2FycmF5NV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSA9IDM7
CisgICAgZmxvYXQgZltpXTsgLy8gYXJyYXlzIHNob3VsZCBiZSBkZWNsYXJlZCB3aXRoIGEgY29u
c3RhbnQgc2l6ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk2X2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5Nl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDgzZjQ5YWY5
ZWUyNTg2OGVlYjk1ZDU3NWNiZWQxNGRlOTRjNmU5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2FycmF5Nl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCBmbG9h
dCBpbmRleCA9IDMuMDsKKyAgICBmbG9hdCBmW2luZGV4XTsgIC8vIGFycmF5cyBzaG91bGQgYmUg
ZGVjbGFyZWQgd2l0aCBhbiBpbnRlZ2VyIGV4cHJlc3Npb24gbm90IGZsb2F0Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTdfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJy
YXk3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGRkNmU2ZDlhOTBkYzg0NzdkNDFhYjU1YjY5NTUy
NDU3ZjIzNzU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk3X2ZyYWcu
ZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2Vu
ZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGZbNV07CisgICAgZltdOyAgLy8gYXJyYXkg
dXNlZCB3aXRob3V0IGEgc2l6ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk4
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTdkYjg4MTlkNmRiZTg3MWJjMmRjOTJmY2Y4ODE1MDMzMWE5ODcwNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5OF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBm
bG9hdCBmWzVdOworICAgIGZsb2F0IGZbXTsgIC8vIHJlZGVjbGFyYXRpb24gb2YgYXJyYXkgYWxy
ZWFkeSBkZWNsYXJlZCB3aXRoIGEgc2l6ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YXJyYXk5X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OV9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc1ZWRjNzVkYzA5MjAxOTk0MDI1NDYwZDdlZjVmNTc5Nzc1NTg0MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sK
KyAgICB2ZWMyIGFycmF5WzJdOworICAgIGFycmF5Lnh5OyAgLy8gYXJyYXlzIGNhbm5vdCBkaXJl
Y3RseSBiZSBzd2l6emxlZCwgaG93ZXZlciwgYW4gZWxlbWVudCBvZiBhcnJheSBjYW4gYmUgc3dp
enpsZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTFfdmVydC52ZXJ0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlMV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIyZjFi
ZTZkNjdlOTM1ZGIwNDllZWQ3MjY0YzU1ZjgxODA1MTIzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2F0dHJpYnV0ZTFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTQgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0dHJpYnV0ZSBpbnQg
aTsgIC8vIGF0dHJpYnV0ZXMgY2Fubm90IGJlIGludCBvciBib29sCisKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYXR0cmlidXRlMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGUyX3ZlcnQu
dmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZTMzMDliNTMwM2QzMzJhNDYwZmI2YmJjYTVmOTU2ZWJjZWI4YmVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlMl92ZXJ0LnZlcnQK
QEAgLTAsMCArMSwxNCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworYXR0cmlidXRlIGZsb2F0IGZbMl07ICAvLyBhdHRyaWJ1dGVzIGNhbm5vdCBiZSBh
cnJheXMKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGVfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYXR0cmlidXRlX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTQxOTdiZTM3NGNkMzM5OGM0
Yjk4ODAyN2M4NTcyMmEwYTJhNjg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YXR0cmlidXRlX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGF0dHJpYnV0ZSBmbG9hdCBm
b287ICAvLyBhdHRyaWJ1dGVzIGNhbiBiZSBkZWNsYXJlZCBhdCBnbG9iYWwgc2NvcGUgaW4gdmVy
dGV4IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGVf
dmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVydApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Y2YxNjI5OWEyMGU5NDQ0ZjZkNjkxZjE4NTE0MDhlMGJiYWNlMGY3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1h
aW4oKQoreworICAgIGF0dHJpYnV0ZSBmbG9hdCBmb287ICAvLyBhdHRyaWJ1dGVzIGNhbiBiZSBk
ZWNsYXJlZCBhdCBhIGdsb2JhbCBzY29wZSBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9icmVha19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9icmVha19mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmJmZGNiZDM2NzAwNjUxMzRkMTE5ZjgwZjdmZjcxODNmYTdkNzgwNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2JyZWFrX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGJyZWFrOyAvLyBicmVhayBrZXl3b3JkIGFsbG93ZWQgb25seSBpbnNpZGUgdGhlIGxv
b3BzCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmMTBm
NDM2ZThiYzA3MjUxNzJiODNmMTc2ZDQxYmY3ZWVlZjI3OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVE
SVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNv
bmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAwMV90b18wMDguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
NTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2Nh
bnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5l
ci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RCdWls
dEluT3ZlcmlkZV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEJ1
aWx0SW5PdmVyaWRlX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisg
ICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29y
cmVjdENvbW1hX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29t
bWFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21w
c3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0Q29u
c3RGb2xkaW5nMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVs
dC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RDb25zdEZvbGRpbmcxX3Zl
cnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQi
OiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdENvbnN0Rm9s
ZGluZzJfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29uc3RGb2xkaW5nMl92ZXJ0LnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNvcnJlY3RDb25zdHJ1Y3RfdmVy
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29uc3RydWN0X3ZlcnQudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdEV4dGVuc2lvbjEwX1YxMDBfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEV4dGVuc2lvbjFfVjEw
MF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBz
dGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RFeHRlbnNp
b240X1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RFeHRl
bnNpb240X1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAg
ICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18w
MTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jM2Y2NjU4MjkwNDg0NDkyN2ViMDI4MzQzZmUxYTExMmJlYTkw
MDVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5o
dG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDA5X3RvXzAx
Ni5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxj
YW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6
IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBz
dHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdEZ1bGxfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3Jy
ZWN0RnVsbF92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAg
ImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RG
dW5jT3ZlcmxvYWRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RG
dW5jT3ZlcmxvYWRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAg
ICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJD
b3JyZWN0RnVuY092ZXJsb2FkX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEZ1bmNPdmVy
bG9hZF92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNv
bXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNvcnJlY3RG
dW5jdGlvbjFfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RnVuY3Rpb24xX3ZlcnQudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdE1vZHVsZV9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RQYXJzZTFfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RQYXJzZTFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJDb3JyZWN0UGFyc2UyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJDb3JyZWN0UGFyc2UyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiQ29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RQ
YXJzZTJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJj
b21wc3RhdCI6IHRydWUKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAxN190b18wMjQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xODY5ZWNhNDhjNGE4YjQ0ZDY0OWUzYjU1NGVjOTI1NzIzMDBhMTM1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCkBA
IC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDE3X3RvXzAyNC5odG1s
PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7
IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3Qi
OworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiQ29ycmVjdFBhcnNlVGVzdDFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJu
YW1lIjogIkNvcnJlY3RQYXJzZVRlc3QxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiQ29ycmVjdFBhcnNlVGVzdF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiQ29ycmVjdFBhcnNlVGVzdF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogIkNvcnJlY3RQcmVwcm9jZXNzNV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiQ29ycmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJDb3JyZWN0UHJlcHJvY2VzczhfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJDb3JyZWN0UHJlcHJvY2VzczlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogIkNvcnJlY3RQcmVwcm9jZXNzOV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogIkNvcnJlY3RTd2l6emxlMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiQ29ycmVjdFN3aXp6bGUxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVj
dFN3aXp6bGUxX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAg
ICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVj
dFN3aXp6bGUyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0U3dp
enpsZTJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJj
b21wc3RhdCI6IHRydWUKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAyNV90b18wMzIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMzJmMGNlNzM0NWNkMzkwN2MzMzNlOTI4MWQ1OWExYzU1ZDg4ODZhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCkBA
IC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDI1X3RvXzAzMi5odG1s
PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7
IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3Qi
OworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiQ29ycmVjdFN3aXp6bGUyX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVj
dFN3aXp6bGUyX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAg
ICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVj
dFN3aXp6bGUzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0U3dp
enpsZTNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJj
b21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJEdXBsaWNhdGVW
ZXJzaW9uMV9WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJEdXBsaWNh
dGVWZXJzaW9uMV9WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJDb3JyZWN0VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJDb3JyZWN0VmVyc2lvbl9WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiRnVuY3Rpb25QYXJhbV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkZ1bmN0aW9uUGFy
YW1fdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29t
cHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlBhcnNlVGVzdDNf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIlBhcnNlVGVzdDNfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlBhcnNlVGVzdDRfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogIlBhcnNlVGVzdDRfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5MTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImFycmF5MTBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDMzX3RvXzA0MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyYzcwYjczZjVhNzU5MDRhMTEyYmJlNzA0ZjVj
NWI0ODU4NDJmMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNf
dG9fMDQwLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8w
MzNfdG9fMDQwLmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxl
PSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+
CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWwor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheTExX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJhcnJheTExX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZh
bHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJhcnJheTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5MV9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXkyX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTJfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5M19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiYXJyYXkzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJhcnJheTRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5NF9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk1X2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTVfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogImFycmF5Nl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiYXJyYXk2X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJh
cnJheTdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5N19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9f
MDQ4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzUxNmVkYjE5MDAyMmRkMzViNWZkYmIzNTc3Yzc2ZmI3YTlkMTUzYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbApAQCAtMCwwICsxLDEx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4g
RE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzA0MV90b18wNDguaHRtbDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVT
VGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImFy
cmF5OF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXJyYXk4X2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheTlfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5OV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiYXR0cmlidXRlMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImF0dHJp
YnV0ZTFfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImF0dHJp
YnV0ZTJfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhdHRyaWJ1dGUyX3ZlcnQudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhdHRyaWJ1dGVfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogImF0dHJpYnV0ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiYXR0cmlidXRlX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXR0cmlidXRl
X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJicmVha19mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYnJlYWtfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogImNvbW1hMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNv
bW1hMV92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNDlfdG9fMDU2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGIwOWJlOTcwZTc4YmJiNDUwOTM1MGY5Y2M0M2Y4NmM3NjhlYmYyNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbApA
QCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzA0OV90b18wNTYuaHRt
bDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFz
IGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4
OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0
IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogImNvbW1hMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29t
bWEyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJjb21tYTJf
dmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJjb21tYTJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogImNvbW1hM192ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbW1hM192
ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29tbWVudF9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29tbWVudF9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29uZGl0aW9uYWwxX2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJjb25kaXRpb25hbDFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogImNvbmRpdGlvbmFsMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiY29uZGl0aW9uYWwyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJjb25kaXRpb25hbDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
ImNvbmRpdGlvbmFsM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
Y29uc3RGdW5jX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdEZ1bmNf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDU3X3RvXzA2NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhjZTQ4YjdhMTc2MGYyNDJkMmVlMDlhOGY5NDJmYjhjNDMzYjFmMmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwKQEAgLTAs
MCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5l
cmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wNTdfdG9fMDY0Lmh0bWw8L3Rp
dGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVp
Z2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitP
cGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJjb25zdHJ1Y3RvcjFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNv
bnN0cnVjdG9yMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29u
c3RydWN0b3IyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdHJ1Y3Rv
cjJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29t
cHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnN0cnVjdG9y
M19WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdHJ1Y3RvcjNf
VjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29udGludWVf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbnRpbnVlX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTEwX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTExX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJkYXRhVHlwZTExX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJkYXRhVHlwZTEyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJk
YXRhVHlwZTEyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRh
VHlwZTEzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTEzX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2
NV90b18wNzIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jZjViMDIxN2RmNTc4YThiNzVlZjZkZDQwZmIxZDU0MWI4OGZhY2JhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCkBAIC0wLDAg
KzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDY1X3RvXzA3Mi5odG1sPC90aXRs
ZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9v
Z2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdo
dDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3Bl
bkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAiZGF0YVR5cGUxOV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5
cGUxOV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUx
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTFfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBlMl9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImRhdGFUeXBlM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiZGF0YVR5cGU0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRh
VHlwZTRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBl
NV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGU1X2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTZfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImRhdGFUeXBlNl9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGU3X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJkYXRhVHlwZTdfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDczX3RvXzA4MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwOTY0M2YxNjc3NzYxZDM2NjE2OWU1M2Qx
NjM1NmQzNGFlMzU2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NzNfdG9fMDgwLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWls
ZF8wNzNfdG9fMDgwLmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0
eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3Jp
cHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjog
WworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZThfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogImRhdGFUeXBlOF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiZGF0YVR5cGU5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJkYXRhVHlwZTlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRv
d2hpbGVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImRvd2hpbGVfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImR2ZWMyX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJkdmVjMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiZHZlYzNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
ImR2ZWMzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkdmVjNF9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZHZlYzRfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uMl9WMTAwX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb24zX1YxMDBfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjNfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQor
ICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EwNmMyM2Ez
OGUzNGIxNGEyN2QwZGYxMjg2M2I3YTRmZDIzNmRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQu
IC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZv
cm1hbmNlIHRlc3Q6IGJ1aWxkXzA4MV90b18wODguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIg
Lz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29n
bGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAw
IiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZh
cz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5y
dW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjVfVjEw
MF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uNV9WMTAwX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb242X1YxMDBf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjZfVjEwMF9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uN19WMTAwX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJleHRlbnNpb243X1YxMDBfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjhfVjEwMF9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uOF9WMTAwX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb245X1YxMDBfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjlfVjEwMF9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZmxvYXQyX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJmbG9hdDJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogImZsb2F0M19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
ZmxvYXQzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmbG9hdDRf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZsb2F0NF9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTky
NTk0YTYwNDU0NGY2Yjc2YTQ1YTRlMjMyMjU2NDZkMzczZDU3ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbApAQCAtMCwwICsxLDExMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9U
IEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNM
IGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzA4OV90b18wOTYuaHRtbDwvdGl0bGU+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0
aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48
L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1
bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImZyYWdt
ZW50T25seTFfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHkxX3ZlcnQudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHkyX3ZlcnQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiZnJhZ21lbnRPbmx5Ml92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiZnJhZ21lbnRPbmx5M192ZXJ0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZy
YWdtZW50T25seTNfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
ImZyYWdtZW50T25seTRfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRl
ZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHk0X3ZlcnQu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHlfdmVy
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHlfdmVydC50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogImZ1bmN0aW9uMTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImZ1bmN0aW9uMTBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogImZ1bmN0aW9uMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVu
Y3Rpb24xX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlv
bjJfVjEwMF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb24yX1Yx
MDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29t
cHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDk3X3RvXzEwNC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI3Y2U1NDBjOTE3MTQ4M2IwZjQ2MDEwNWY3OGZmYzFmZmQyODgzZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKQEAg
LTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wOTdfdG9fMTA0Lmh0bWw8
L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBp
ZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsg
aGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7
CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJmdW5jdGlvbjNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1
bmN0aW9uM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVuY3Rp
b240X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmdW5jdGlvbjRfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0aW9uNl9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb242X2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlvbjdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogImZ1bmN0aW9uN19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZnVuY3Rpb244X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJm
dW5jdGlvbjhfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0
aW9uOV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb245X2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJodmVjMl9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiaHZlYzJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogImh2ZWMzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJodmVjM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjg0ZmE5OGY4NmJhYmE3MDQyZDEzNTQwZjBjNGZhOTg1YjAxZDg5
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRt
bApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEwNV90b18xMTIu
aHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2Fu
dmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAx
NnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3Ry
aWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogImh2ZWM0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJo
dmVjNF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaWRlbnRpZmll
cjFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImlkZW50aWZpZXIxX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJpZGVudGlmaWVyMl9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaWRlbnRpZmllcjJfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImlkZW50aWZpZXIzX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJpZGVudGlmaWVyM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAiaWYxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJpZjFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImlmMl9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaWYyX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJpbmNyZW1lbnQxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJpbmNyZW1lbnQxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJpbmNyZW1lbnQyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJpbmNyZW1lbnQyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190
b18xMjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzE4MTAwMDgzNjYyNmE3ZTE5ZGQ3MWJmOTE3MjUxZTFm
ZDY3MThiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEy
MC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTEzX3Rv
XzEyMC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lk
dGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAiaW5jcmVtZW50M19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiaW5jcmVtZW50M19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiaW5jcmVtZW50NF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5j
cmVtZW50NF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaW5jcmVt
ZW50Nl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5jcmVtZW50Nl9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibWFpbjFfdmVydC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJtYWluMV92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAibWFpbjJfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRl
ZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJtYWluMl92ZXJ0LnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibWFpbjNfdmVydC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJtYWluM192ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAibWF0
cml4X1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIm1hdHJpeF9WMTAw
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0
YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibm9ybWFsX3ZlcnQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAibm9ybWFsX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEyMV90b18xMjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjQ1NDY1ZTI3MmZhMWNiZTNiY2Vl
ZTg1OWE0ZDg4NmQ5MGM3NjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTIxX3RvXzEyOC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwh
LS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDog
YnVpbGRfMTIxX3RvXzEyOC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3Nz
IiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAw
IiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8
c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0
cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyMTBfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogInBhcnNlcjEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICJwYXJzZXIxX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyMV92
ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyM19mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyM19mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyNF9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAicGFyc2VyNF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAicGFyc2VyNV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2Vy
NV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyNl9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyNl9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyN19mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAicGFyc2VyN19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAicGFyc2VyOF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFy
c2VyOF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xMjlfdG9fMTM2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWFiZTQwYzM1MThkMmMyM2U0YzJkYjU2ZmM5ZjU5NjNkOTAwYTFhOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbApA
QCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEyOV90b18xMzYuaHRt
bDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFz
IGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4
OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0
IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogInBhcnNlcjlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBh
cnNlcjlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nl
c3MwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzMF9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicHJlcHJvY2VzczEwX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzMTBfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3MxX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzMV9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAicHJlcHJvY2VzczJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogInByZXByb2Nlc3MyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJwcmVwcm9jZXNzM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAicHJlcHJvY2VzczNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
InByZXByb2Nlc3M0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9j
ZXNzNF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicHJlcHJvY2Vz
czZfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInByZXByb2Nlc3M2X2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190
b18xNDQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OGQyMzM4MDlmYWVhOTY0MGJiMGRhZjg2YzMxNTViOGEyNjQyZGRmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sCkBAIC0wLDAgKzEs
MTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
LiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTM3X3RvXzE0NC5odG1sPC90aXRsZT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xl
cy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDog
MTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdM
RVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
cHJlcHJvY2VzczdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInByZXByb2Nl
c3M3X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzY29waW5nMV9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic2NvcGluZzFfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInNjb3BpbmcyX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJzY29waW5nMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAic3RydWN0MTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogInN0cnVjdDEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJz
dHJ1Y3QxMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0MTFfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN0cnVjdDFfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0cnVjdDFfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogInN0cnVjdDJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogInN0cnVjdDJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogInN0cnVjdDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0cnVjdDNf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTQ1X3RvXzE1Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA4OTIwZGQ4MjQ3ZWM0MDU5ODU0MGQ4YjhmNDViYjY3OTYzZTdhN2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwKQEAgLTAs
MCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5l
cmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNDVfdG9fMTUyLmh0bWw8L3Rp
dGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVp
Z2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitP
cGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJzdHJ1Y3Q0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q0
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q1X2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q1X2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q2X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJzdHJ1Y3Q2X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJzdHJ1Y3Q3X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1
Y3Q3X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q4X2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q4X2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAg
ICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3Jh
bSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIs
CisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q5X2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJzdHJ1Y3Q5X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJzd2l6emxlMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
c3dpenpsZTFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN3aXp6
bGUyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzd2l6emxlMl9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9f
MTYwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWI5NTBlM2NmYWU4MmNkNzc2YTdmOWZjMzhiZjA5YzY3NzdlZGI1OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbApAQCAtMCwwICsxLDEx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4g
RE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzE1M190b18xNjAuaHRtbDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVT
VGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN3
aXp6bGUzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzd2l6emxlM19mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidHlwZWNhc3RfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInR5cGVjYXN0X2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJ1bmlmb3JtMV9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAidW5pZm9ybTFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogInVuaWZvcm1fZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInVuaWZv
cm1fZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29t
cHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInZhcnlpbmcxX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2YXJ5aW5nMV9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmFyeWluZzJfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogInZhcnlpbmcyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJ2YXJ5aW5nM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAidmFyeWluZzNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInZh
cnlpbmdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInZhcnlpbmdfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3Rv
XzE2OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjljNjYxNzFiZmNlZGZkMDMyNmZkMWI5ZTA4Mjg2MGQ5ZjhiOTdhZWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwKQEAgLTAsMCArMSwx
MTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQu
IERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNjFfdG9fMTY4Lmh0bWw8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVz
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAx
NnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xF
U1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ2
ZWN0b3JfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInZlY3Rvcl9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmVyc2lvbjJfVjEwMF9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAidmVyc2lvbjJfVjEwMF9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmVyc2lvbjNfVjEwMF9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAidmVyc2lvbjNfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmVydGV4T25seTJfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogInZlcnRleE9ubHkyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJ2ZXJ0ZXhPbmx5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJ2ZXJ0ZXhPbmx5X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICJ2ZXJ0ZXhfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1
bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2ZXJ0ZXhfdmVydC50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIndoaWxlMV9mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAid2hpbGUxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJ3aGlsZTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIndoaWxl
Ml9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xNjlfdG9fMTc2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWJkM2M2M2M0NzNiMGUwMmU3ODVmZWU2ZDkzNjg0MjdhMTY3ZWYyNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbApAQCAt
MCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzE2OV90b18xNzYuaHRtbDwv
dGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlk
PSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBo
ZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsK
K09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogIndoaWxlX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ3aGlsZV9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiVGVybmFyeU9wX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJUZXJuYXJ5T3BfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImRlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJDR19EYXRhX1R5cGVzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJDR19EYXRhX1R5cGVzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
Q0dfU3RhbmRhcmRfTGlicmFyeV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
Q0dfU3RhbmRhcmRfTGlicmFyeV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkluY2x1
ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJMb3dfTGV2ZWxfQXNzZW1ibHlfUmVzZXJ2ZWRfV29y
ZHNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21w
c3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJNYWluX1BhcmFt
ZXRlcnNfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJNYWluX1BhcmFtZXRlcnNfdmVydC50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImRlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJQZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJQZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZl
cnNpb25zX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE3N190b18xNzguaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzgu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZGMyYjM4YmNjMjY0ZWNiZmVkZjE3ZGE0MjQ2NzkwNzkzOWE4NzU1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNzdfdG9fMTc4Lmh0
bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZw
eDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmlj
dCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
UGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJQZXJtaXNzaXZlX1NjYWxhcl9WZWN0b3JfRXhwcmVzc2lvbnNfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6
IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiVGV4dHVyZV9SZWN0YW5nbGVfU2FtcGxlcnNfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIlRleHR1cmVfUmVjdGFuZ2xlX1NhbXBs
ZXJzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Nv
bW1hMV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2NDczZTQ2ZTkyZmIzMTNlZTE1MzU3YzZjMmUwMGU1ZWEyYTY5MGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTYgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFp
bigpCit7CisgICAgaW50IGksIGosIGs7CisgICAgZmxvYXQgZjsKKyAgICBpID0gaiwgaywgZjsK
KyAgICBpID0gKGosIGssIGYpOyAgIC8vIGZsb2F0IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBpbnQK
KyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9jb21tYTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNzA2MWY3YWU3MmQwOWQ3ODU4ZDc2Y2M0Yjc5YzgwMTAyYmM2OGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE4
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGNvbnN0IHZlYzQgdiA9ICh2ZWM0KDEsMiwzLDQpLCB2ZWM0KDUsNiw3LDgpLCAxLjIp
OyAvLyByaWdodCBtb3N0IHZhbHVlIG9mIGNvbW1hIG9wZXJhdG9yIHNob3VsIGJlIGEgdmVjNAor
ICAgIGNvbnN0IHZlYzQgdjEgPSAodmVjMygwLjIsIDIuMCksIHZlYzQoMSwyLDMsNCksIHZlYzQo
NSw2LDcsOCkpOworICAgIGNvbnN0IHZlYzQgdjIgPSAodmVjNCgxLDIsMyw0KSwgdmVjMigyLjEs
IDIpLCAgdmVjNCg1LDYsNyw4KSk7CisgICAgZ2xfRnJhZ0NvbG9yID0gdiArIHYxICsgdjI7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvY29tbWEyX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzMyMzY4OWY2OGYwZmEwZWUxMzA0
NjJjZjc4Nzg4YjlhOWNiNjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29t
bWEyX3ZlcnQudmVydApAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGludCBpLCBqLCBrOwor
ICAgIGZsb2F0IGY7CisgICAgaSA9IGosIGssIGY7CisgICAgaSA9IChqID0gaywgZiA9IDEuMCk7
ICAgLy8gZmxvYXQgY2Fubm90IGJlIGFzc2lnbmVkIHRvIGludAorICAgIGdsX1Bvc2l0aW9uID0g
dmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hM192ZXJ0LnZlcnQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9jb21tYTNfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZGNiOThiMjFk
OTI4YjQyNWY0YWE1YmJkZmNjMTEyNGUxZjJmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9jb21tYTNfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50
IGksIGosIGs7CisgICAgZmxvYXQgZjsKKyAgICBpID0gaiwgaywgZjsKKyAgICBpID0gaiA9IGss
IGYgPSAxLjA7CisgICAgaSA9IGosIGsgPSAoMywgZik7ICAgIC8vIGZsb2F0IGNhbm5vdCBiZSBh
c3NpZ25lZCB0byBpbnQKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9jb21tZW50X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1l
bnRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMGEzODI4NzQwYjU5MGM2YmZmMmQ0ZjNhMGIzNjBm
MDEwZmE5MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tZW50X2ZyYWcu
ZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2Vu
ZGlmCit2b2lkIG1haW4oKQoreworICAgIC8qKioqKiogIC8vIGNvbW1lbnQgbm90IGNsb3NlZAor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwxX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2NvbmRpdGlvbmFsMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI4MzBmNGZj
YzgzMmE0ZGVlNzBhYzQ2ZmIwNzljMjJjZjA5MDA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2NvbmRpdGlvbmFsMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9h
dCBmMSxmMjsKKyAgICBpbnQgaTsKKyAgICBmbG9hdCBmMyA9IGkgPyBmMSA6IGYyOyAgLy8gZXhw
cmVzc2lvbiBtdXN0IGJlIGJvb2xlYW4gYW5kIG5vdCBpbnQKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2NvbmRpdGlvbmFsMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRp
b25hbDJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MWE4YmQ5ZWIwNDA5ZjYzMmVjNzZjYzQ3NmM1
NDAwMDRiNmUyZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25h
bDJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjEsZjI7CisgICAgaW50IGk7
CisgICAgYm9vbCBiOworICAgIGZsb2F0IGYzID0gYiA/IGkgOiBmMjsgLy8gc2Vjb25kIGFuZCB0
aGlyZCBleHByZXNzaW9uIHNob3VsZCBvZiB0aGUgdHlwZSBmbG9hdAorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Nv
bmRpdGlvbmFsM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjViMWI0NmJiYjBjOTI0YmQ2YjY5Mjhj
NzNhOTcwYjAzNzY3ZGY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbmRp
dGlvbmFsM19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmMSxmMjsKKyAgICBi
b29sIGI7CisgICAgaW50IGkgPSBiID8gZjEgOiBmMjsgLy8gc2Vjb25kIGFuZCB0aGlyZCBleHBy
ZXNzaW9uIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIGx2YWx1ZSB0eXBlCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9jb25zdEZ1bmNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29u
c3RGdW5jX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTNhMmE2NTI0MWUyMDBhNTQ3ZmI0MDA0MTUy
Mjg1NWQwN2I3YWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RGdW5j
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2ZWMyIGZ1bmMoKQoreworICAgIHZlYzIgdjsKKyAgICByZXR1cm4gdjsKK30K
Kwordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCB2ZWMzIHYgPSB2ZWMzKDEuMCwgZnVuYygpKTsg
Ly8gdXNlciBkZWZpbmVkIGZ1bmN0aW9ucyBkbyBub3QgcmV0dXJuIGNvbnN0IHZhbHVlCisgICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCh2LCB2KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2NvbnN0cnVjdG9yMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjFfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmNzNiY2RlYWUxZDMxNmE3OWFjYWIwZmZiZDdkOTFkNjM3NWJi
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjFfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCB2ID0gdmVjNCgxLDIsMyk7IC8vIGluc3VmZmlj
aWVudCBkYXRhIHByb3ZpZGVkIGZvciBjb25zdHJ1Y3RvciwgNCB2YWx1ZXMgYXJlIHJlcXVpcmVk
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjJfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjdiZGJh
NTY0MzhlNGE0OWUwMzMzOTI4ZWFlYWRlZjE3MWJmMmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZl
YzMgdjsKKyAgICB2ZWM0IHYxID0gdmVjNCh2KTsgLy8gaW5zdWZmaWNpZW50IGRhdGEgc3BlY2lm
aWVkIGZvciBjb25zdHJ1Y3Rpb24KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0
cnVjdG9yM19WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9yM19WMTAw
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzEyNTg3NzEwODJhZjBjYjQ2ZjJlNDkxMGQyOGYwNjc0
NDY2ZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IzX1Yx
MDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMyB2OworICAgIHZlYzQgdjEgPSB2
ZWM0KHYsdix2KTsgLy8gdG9vIG1hbnkgYXJndW1lbnRzIGluIHRoZSBjb25zdHJ1Y3RvcgorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29udGludWVfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvY29udGludWVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkZjgzZTJhYmViMzYxMzJiMDk0
ODAwNmMzNDhlNjlhOTMyMWEzMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9j
b250aW51ZV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb250aW51ZTsgLy8gY29udGlu
dWUga2V5d29yZCBhbGxvd2VkIG9ubHkgaW5zaWRlIHRoZSBsb29wcworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDU2ZDY0MTc4NzAyOTQ4ODdhZTU4MDg4NmUz
MmJjMjQ1NDU0MTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUx
MF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmOworICAgIGZsb2F0IGY7ICAv
LyByZWRlY2xhcmF0aW9uIG9mIGEgdmFyaWFibGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlMTFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMV9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmZlY2JiZjhmNWY4OWZlNjBhNWI0MmU4OTliOTcxZDVmNWYzODFh
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTFfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgaW50IGkgPSAwODsgIC8vIGludmFsaWQgb2N0YWwgbnVtYmVy
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEyX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RhdGFUeXBlMTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZjhiMThhZjAw
ZGVmMDFiOTc0MGJjM2E4ZDRmZDNmYTkyMjdjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9kYXRhVHlwZTEyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGludCBpID0g
MHhhOGc7ICAvLyBpbnZhbGlkIGhleGFkZWNpbWFsIG51bWJlcgorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZGF0YVR5cGUxM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlw
ZTEzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTIxZTZmNjMzMjI5ZDllOTRiMGYyNzIyOTJhMTRl
ZGFkNDUxNDZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxM19m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSA9IDE7CisgICAgZmxvYXQgZiA9IDEu
MjsKKyAgICBmbG9hdCByZXN1bHQgPSBmICogaTsgLy8gYXV0byBwcm9tb3Rpb24gbm93IGFsbG93
ZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTlfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxOV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI5OGM3NTMw
ODc3M2JjMGU5MWIxZjgxNDE2NzFiNWJiZmIwNGYzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2RhdGFUeXBlMTlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3VuaWZvcm0gc2FtcGxlcjJEIHM7Cit2b2lk
IG1haW4oKQoreworICAgIGludCBpID0gaW50KHMpOyAvLyBjb252ZXJzaW9uIG5vdCBhbGxvd2Vk
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTFfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZGF0YVR5cGUxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjNiYWEyYjE5M2Y0
MjJkZmI2ZjljNmQ1NTI0ZTRkNGUxODRjM2FjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZGF0YVR5cGUxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZvaWQgdjsgLy8g
dmFyaWFibGUgY2Fubm90IGJlIGRlY2xhcmVkIG9mIHRoZSB0eXBlIHZvaWQKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlYzJhYTA1NzQ3ZjUxN2M1ZWEyN2VhM2Q3
MzUyZGYxOTA3YzRjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlw
ZTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3VuaWZvcm0gc2FtcGxlcjJEIHNhbXAxOwordW5pZm9ybSBzYW1wbGVyMkQg
c2FtcDIgPSBzYW1wMTsgLy8gdW5pZm9ybXMgYXJlIHJlYWQgb25seQorCit2b2lkIG1haW4oKQor
eworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUzX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RhdGFUeXBlM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI2YmE4ODgxNDFm
NjZkNmE3ODdhYTI5N2Y4MTc1ZTgyYjBkNzkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2RhdGFUeXBlM19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBpbnQgaSA9IDE7IC8vIHVuaWZvcm1z
IGFyZSByZWFkIG9ubHkKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2RhdGFUeXBlNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTRfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiYWVhMGE2MjRlZjBkZTk3ZmVmNzZmYWE2NmZiMjA0MDRjMTcx
OTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTRfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgaW50IGkgPSAxLjA7ICAvLyBhdXRvbWF0aWMgdHlwZSBjb252
ZXJzaW9uIGRvZXMgbm90IHRha2UgcGxhY2UsIGZsb2F0IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8g
aW50Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTVfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU1X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTFmZjc1MjA5
OWNlM2U5NWM5MjdjZmI1NjBhYzkwOGYxZjI3YjBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZGF0YVR5cGU1X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYg
PSAxOyAvLyBpbnQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBmbG9hdCwgdXNlIGNvbnN0cnVjdG9y
IHRvIGRvIHRoZSBjb252ZXJzaW9uIGV4cGxpY2l0bHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2RhdGFUeXBlNl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTZfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU2ZmY0MjEzZTg4NDEzNmIxYTg3N2U5YjYzMGYyZmMwMWE5OTAy
Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTZfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgY29uc3QgZmxvYXQgZjsgIC8vIGNvbnN0YW50cyBtdXN0IGJl
IGluaXRpYWxpemVkCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTdfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZTMxYTNjYmExYmViNmJjZGJkZGUxMjcxZDVlZGY3ZWViYTUyYTE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlmb3JtIGZsb2F0IGY7Cit2
b2lkIG1haW4oKQoreworICAgIGYgPSAxLjA7ICAvLyB1bmlmb3JtcyBhcmUgcmVhZCBvbmx5Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZThfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZGF0YVR5cGU4X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGRlY2M0YTE3NTRhMzQy
ZTVmOTIxZDZhNmIxNWRmZDg0NDU0ODA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZGF0YVR5cGU4X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2YXJ5aW5nIGZsb2F0IGY7Cit2b2lkIG1haW4oKQorewor
ICAgIGYgPSAxLjA7ICAvLyB2YXJ5aW5ncyBjYW5ub3QgYmUgd3JpdHRlbiB0byBpbiBhIGZyYWdt
ZW50IHNoYWRlciwgdGhleSBjYW4gYmUgd3JpdHRlbiB0byBpbiBhIHZlcnRleCBzaGFkZXIKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlOV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9kYXRhVHlwZTlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMjlkM2Q0NDU2YmMxODY2
YjMyNWM0MTA1OWVkNmU5NDgxNWVkYTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9kYXRhVHlwZTlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZhcnlpbmcgZmxvYXQgZjsKK3ZvaWQgbWFpbigpCit7Cisg
ICAgZmxvYXQgZmx0ID0gMS4wOworICAgIGZsdCsrOworICAgIGYrKzsgIC8vIHZhcnlpbmdzIGlu
IGEgZnJhZ21lbnQgc2hhZGVyIGFyZSByZWFkIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2RlZmF1bHQuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RlZmF1bHQuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZjdiMGUwNWExZjdiYTAxYjA2NDUwNjk1NTZkZTE0MGUxNDdmODdhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGVmYXVsdC5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbiAodm9pZCkKK3sK
KwlnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LnZl
cnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGM3MzZhYmQ1ZjI0MzZhMzE2Yzc2MThkYjI2Zjg1Mjg3ZjRhZDM5MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RlZmF1bHQudmVydApAQCAtMCwwICsx
LDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCith
dHRyaWJ1dGUgdmVjNCBndGZfVmVydGV4OwordW5pZm9ybSBtYXQ0IGd0Zl9Nb2RlbFZpZXdQcm9q
ZWN0aW9uTWF0cml4Owordm9pZCBtYWluICh2b2lkKQoreworCWdsX1Bvc2l0aW9uID0gZ3RmX01v
ZGVsVmlld1Byb2plY3Rpb25NYXRyaXggKiBndGZfVmVydGV4OworCWdsX1BvaW50U2l6ZSA9IDEu
MDsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rvd2hpbGVfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZG93aGlsZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE0M2RjNGMzNmNiZWQ3
ZDE3MzM2ZTkzMjUzYzk3OTEyYzlhZTgzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2Rvd2hpbGVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjsKKyAgICBk
byB7CisgICAgfSB3aGlsZShmKTsgIC8vIGNvbmRpdGlvbiBzaG91bGQgYmUgYm9vbGVhbgorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZHZlYzJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NTFiNTVkNmZlMDU1OGQyZTk5ZmRlMTA0
N2VjMjIyMWY3YmU3ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjMl9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBkdmVjMiBkOyAvLyBkdmVjMiBpcyBub3QgYSB2
YWxpZCBkYXRhdHlwZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2R2ZWMzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMzX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iN2Y3ODE3MTY4OTEwNDAyZTkwMGRiNWE1YTc1NzgwYjgwNGY1NTJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzNfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
bWFpbigpCit7CisgICAgZHZlYzMgZDsgLy8gZHZlYzMgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUs
IHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
dmVjNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjNF9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTZiZWI2YTVhN2VlNGNhNDE5NmM1Yjk3MDQyODQwMWVhZWVmZDNiOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWM0X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAg
IGR2ZWM0IGQ7IC8vIGR2ZWM0IGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3Ig
ZnV0dXJlIHVzZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uMl9WMTAw
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDg1YTdlMzUzNTQ0MGEzNzJmNTdlZWJiMjJhMmIzNDI5MjcyYTEyNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4
dGVuc2lvbiBhbGwgOiByZXF1aXJlIC8vIGNhbm5vdCB1c2UgcmVxdWlyZSBvciBlbmFibGUgd2l0
aCBhbGwKKyNleHRlbnNpb24gYWxsIDogZW5hYmxlIC8vIGNhbm5vdCB1c2UgcmVxdWlyZSBvciBl
bmFibGUgd2l0aCBhbGwKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2V4dGVuc2lvbjNfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNp
b24zX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwMDVjMTRlZGZiZDUxMDZmYzE5ZWFmYjJk
MjNlZmUxODUwOWRiNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNp
b24zX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vIDogcmVxdWlyZSAgLy8gZXJyb3IgZXh0
ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2V4dGVuc2lvbjVfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb241X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxOThkNmZmZTNjYmQzYzQ0NTk1
NDZiZmFlM2Y3NzAzNWViOTMxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb241X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gYWxsIDogZGRpc2FibGVlICAvLyBl
cnJvciwgYmVoYXZpb3IgaXMgbm90IHN1cHBvcnRlZAorCit2b2lkIG1haW4oKQoreworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNl9WMTAwX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2V4dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzM2ZhNGZl
Yjk2NGNiMDY0NDNkMWMwODFlNTk0NzRmZGRmMDIxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2V4dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiAgIC8vIGVycm9y
IG5hbWUgYW5kIGJlaGF2aW9yIG5vdCBzcGVjaWZpZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjdfVjEwMF9mcmFnLmZyYWcgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9leHRlbnNpb243X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNjM2ZDUx
MjVmZDU5MTQwMmU4OGJkMjE4YTk4YmMyOWZjNjRmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9leHRlbnNpb243X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vICAvLyAi
OiIgbWlzc2luZyBhZnRlciBleHRlbnNpb24gbmFtZQorCit2b2lkIG1haW4oKQoreworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uOF9WMTAwX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2V4dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MxMjQzMjU2
ODljMjkwNGVhZTczZjg0OTRkNGE0YzhiNTJmNDU0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2V4dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiBmb28gOiAvLyAg
YmVoYXZpb3Igbm90IHNwZWNpZmllZAorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uOV9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2V4dGVuc2lvbjlfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ3ZDY5ZGNhZjY4ZWYwMGM1
MjMzN2ZlNTY0MjZiNjM0ODYyNzY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2V4dGVuc2lvbjlfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiBmb28gIGJlaGF2aW9yIC8vICI6
IiBtaXNzaW5nIGFmdGVyIGV4dGVuc2lvbiBuYW1lCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZmxvYXQyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2EzMWNhOTkwNDEwNjM2NDJhNjNkYmY5ZWQy
NGQ5OWJhMmY5ZTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZmxvYXQyX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0MiBmOyAvLyBmbG9hdDIgaXMgbm90IGEg
dmFsaWQgZGF0YXR5cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0M19mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3M2Qz
ZDQ0NTRhYTA3NDBmNTEwOTZmMTQ4M2I1NjQ0YjI0MjYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9mbG9hdDNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQz
IGY7IC8vIGZsb2F0MyBpcyBub3QgYSB2YWxpZCBkYXRhdHlwZQorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZmxvYXQ0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0NF9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDM4MTM3M2FkOGUzMTYwYTM3NmY0YWVhNWQ1NjBhYmJmMjVjNzE3
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0NF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICBmbG9hdDQgZjsgLy8gZmxvYXQ0IGlzIG5vdCBhIHZhbGlkIGRhdGF0
eXBlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVy
dCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTFfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVl
YmJhMzNkOTQ3NDdiYTdiNTVmNmJkZDdjMDkzNDI1ZGJiYWNjMWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1h
aW4oKQoreworICAgIGdsX0Zyb250RmFjaW5nID0gdHJ1ZTsgIC8vIGNhbiBiZSB1c2VkIGluIGZy
YWdtZW50IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVu
dE9ubHkyX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTJfdmVydC52ZXJ0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ4MDA1NmIwNzk0ODFkNmMxZjFiNzM3ODZkYjhkOGM5ZjMyNmJlZDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkyX3ZlcnQudmVydApA
QCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb29yZCA9IHZlYzQoMS4wKTsgIC8v
IGNhbiBiZSB1c2VkIGluIGZyYWdtZW50IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mcmFnbWVudE9ubHkzX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdt
ZW50T25seTNfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlOWNiMDA4MTU5MDUxZDM4MWJhNTYxNDBj
MjdlY2UzZTNlYTY5ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVu
dE9ubHkzX3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xv
ciA9IHZlYzQoMS4wKTsgIC8vIGNhbiBiZSB1c2VkIGluIGZyYWdtZW50IHNoYWRlciBvbmx5Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHk0X3ZlcnQudmVydCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTRfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNjQ0ODM2
OWYzYWZiN2UyMmRlMmY2N2U3YzhmM2EwZjBhNzNjYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mcmFnbWVudE9ubHk0X3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQor
eworICAgIGRpc2NhcmQ7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFkZXIgb25seQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5X3ZlcnQudmVydCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2ZyYWdtZW50T25seV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhlYTAwZWY0
ZjVhODdlNGRiMzMwNDlhMjRjMDkyZWU0YjFjZTdhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2ZyYWdtZW50T25seV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sK
KyAgICBnbF9GcmFnRGVwdGggPSAxLjA7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFk
ZXIgb25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2Rm
YWRiZmQ5Y2Y4ZGNhNmNlZjBhZDNlNjNjYmYzMWFkZGQ4YWUzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwyNCBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihpbiBpbnQg
aSk7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjsKKyAgICAvLyBvdmVybG9hZGVkIGZ1
bmN0aW9uIG5vdCBwcmVzZW50CisgICAgZnVuY3Rpb24oZik7Cit9CisKK3ZvaWQgZnVuY3Rpb24o
aW4gaW50IGkpCit7CisgICBpID0gMzsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1
bmN0aW9uMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJhZy5mcmFnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEzMzI3YTZhZGI0ZTBmYjQyODBhN2Y0YzE4NjdkMGQ4ZTgyNWZhMmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVu
Y3Rpb24oaW50IGkpCit7CisgICAgcmV0dXJuIGk7ICAvLyB2b2lkIGZ1bmN0aW9uIGNhbm5vdCBy
ZXR1cm4gYSB2YWx1ZQorfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIGZ1bmN0
aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAw
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAwX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YjlkNTdkYzUxYjA5NWM3NzkzZjQ0NTgyNmRmYjA2NzQ3MWRkYWExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24yX1YxMDBfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMjIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
ZnVuY3Rpb24oaW50IGlbXSkgIC8vIHNpemUgb2YgYXJyYXkgbXVzdCBiZSBzcGVjaWZpZWQKK3sK
K30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaVsyXTsKKyAgICBmdW5jdGlvbihpKTsKK30K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjNfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZnVuY3Rpb24zX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDgzNWRlN2ZhY2M0
NTNjODc0ZmIyNzAwODNiYzk2OTJjMzgxNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZnVuY3Rpb24zX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIzIEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGNvbnN0IGludCBpKQorewor
ICAgIGkgPSAzOyAgLy8gY29uc3QgdmFsdWUgY2FudCBiZSBtb2RpZmllZAorfQorCit2b2lkIG1h
aW4oKQoreworICAgIGludCBpOworICAgIGZ1bmN0aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5j
dGlvbjRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYWJkZTliN2VkM2MyYzMzYzgyNWFhMGFlOTEw
MTQ3NDI4OTY2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjRf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3VuaWZvcm0gaW50IHVuaWZvcm1JbnQ7CisKK3ZvaWQgZnVuY3Rpb24ob3V0IGlu
dCBpKQoreworICAgIGkgPSAxOworfQorCit2b2lkIG1haW4oKQoreworICAgIGZ1bmN0aW9uKHVu
aWZvcm1JbnQpOyAgLy8gb3V0IGFuZCBpbm91dCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSB1bmlmb3Jt
IHNpbmNlIHVuaWZvcm1zIGNhbm5vdCBiZSBtb2RpZmllZAorfQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mdW5jdGlvbjZfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb242
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmNjNDMzZWIzMzA2ZWFhZmI5N2Y2MzAzMzcxOGRmZDZh
ODQyZGM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb242X2ZyYWcu
ZnJhZwpAQCAtMCwwICsxLDIzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2Vu
ZGlmCit2b2lkIGZ1bmN0aW9uKGNvbnN0IG91dCBpbnQgaSkKK3sgIC8vIG91dCBwYXJhbWV0ZXJz
IGNhbm5vdCBiZSBjb25zdAorICAgaSA9IDM7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50
IGk7CisgICAgZnVuY3Rpb24oaSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZnVuY3Rpb243X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGMwOTAyODgxYzVjYTI4ZTUxMmYwMDZmMmQyODA5ODc3MmI0NDk0NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19mcmFnLmZyYWcKQEAgLTAs
MCArMSwyMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBm
dW5jdGlvbih1bmlmb3JtIGludCBpKQoreyAgLy8gdW5pZm9ybSBxdWFsaWZpZXIgY2Fubm90IGJl
IHVzZWQgd2l0aCBmdW5jdGlvbiBwYXJhbWV0ZXJzCit9CisKK3ZvaWQgbWFpbigpCit7CisgICAg
aW50IGk7CisgICAgZnVuY3Rpb24oaSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnVuY3Rpb244X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOF9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGViZTZlODA1ODc4ZWFiOGQ0YzVlYjhlNjUzYTQ5NjFmYTIzMzhhYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBmdW5jdGlvbihjb25zdCBpbm91dCBpbnQgaSkKK3sgIC8vIGlub3V0IHBhcmFtZXRlcnMgY2Fu
bm90IGJlIGNvbnN0CisgICBpID0gMzsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsK
KyAgICBmdW5jdGlvbihpKTsKK30KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5j
dGlvbjlfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NmFmNzRiZjk3NTlkNzk4MWNmYjdhNzNhZTgyYmVjZDgyYjNiODMyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDI0IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0
aW9uKGlub3V0IGludCBpKTsKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICBmdW5j
dGlvbihpKTsKK30KKworLy8gZnVuY3Rpb24gZGVmaW5pdGlvbiBoYXMgZGlmZmVyZW50IHBhcmFt
ZXRlciBxdWFsaWZpZXJzIHRoYW4gZnVuY3Rpb24gZGVjbGFyYXRpb24KK3ZvaWQgZnVuY3Rpb24o
aW4gaW50IGkpCit7CisgICBpID0gMzsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2
ZWMyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2ZWMyX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44OTExYjY5ZTY0NDFlZjliNzA3NDQwMGRhMzU0ODJmNGEwOGFjYmFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAg
aHZlYzIgZjsgLy8gaHZlYzIgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUsIHJlc2VydmVkIGZvciBm
dXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjM19mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9odmVjM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNiNjFkZjJlMjVh
OWFkMGM0MzE0ZDBjZjM4MmQwODA2NjEwMDgzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2h2ZWMzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGh2ZWMzIGY7IC8vIGh2
ZWMzIGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvaHZlYzRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZTc5NzBmYThjZDI1YTk2ZGMwZmY5OWE2
MThhNDM3ZTk2MGQ2ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjNF9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBodmVjNCBmOyAvLyBodmVjNCBpcyBub3QgYSB2
YWxpZCBkYXRhdHlwZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2lkZW50aWZpZXIxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50
aWZpZXIxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGQxZDljODBlNjM5N2Q4NDhlODY0OTNmYThi
NjI0YWNhNWZkYzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWRlbnRpZmll
cjFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IDFpOyAvLyBpbmNvcnJlY3QgaWRl
bnRpZmllciBuYW1lCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMl9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMl9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzE2ZTkzNDUxOTEzMjVlZGVkYjE1NjQ5NDMyYzA0OWYwYzZmODNkOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGludCBnbF9pbnQ7ICAvLyBpZGVudGlmaWVyIG5hbWUgY2Fubm90IGJlZ2luIHdpdGgg
ImdsXyIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmJl
YWY2NTIwMzkwODVjN2M2NGI3MGIwZDkzNzllMTMwN2UyNzUzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaWRlbnRpZmllcjNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAg
aW50IGk7CisgICAgeDsgIC8vIGlkZW50aWZpZXIgeCB1c2VkIHdpdGhvdXQgYmVpbmcgZGVjbGFy
ZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9pZjFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMDE2ODQ4MzE5ZDZlY2NhMTRhNWUx
MGIyMzZmNjUyY2MzMzA4NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjFf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgaWYgKGkpIC8vIGNvbmRp
dGlvbiBvZiBpZiBzdGF0ZW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4KKyAgICAgICAgaSsrOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2lmMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRmYmZkZmMyMzFjMTM3YWJmZTc3OTQyYjk3MjFj
YTQ5YjMxMDc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMl9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHY7CisgICAgaW50IGk7CisgICAgaWYgKHYpIC8v
IHZlY3RvcnMgY2Fubm90IGJlIHVzZWQgYXMgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBmb3IgaWYg
c3RhdGVtZW50CisgICAgICAgIGkrKzsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lu
Y3JlbWVudDFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50MV9mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGVlYjViNjBiZjY1YjkzYTQ4MTFkM2Y3NmQxOWJmMTJlNTY3YWY1ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDFfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMjAgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVj
dCBzIHsKKyAgICBpbnQgaTsKK30gczE7CisKK3ZvaWQgbWFpbigpCit7CisgICBzMS5pKys7Cisg
ICBzMSsrOyAgLy8gc3RydWN0dXJlIGNhbm5vdCBiZSBpbmNyZW1lbnRlZAorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Ml9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9p
bmNyZW1lbnQyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjE2NzhiMGNhMzhiMzYwNTZlMzI2NjQz
MmZhZjFiZTdjZGUyZDg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVt
ZW50Ml9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICAoaStpKSsrOyAg
Ly8gaStpIGlzIG5vdCBhbiBsLXZhbHVlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9p
bmNyZW1lbnQzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDNfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBhMzI1MDQ3MzRkYWUzNzliNmE3Y2IzYWJmMmExNDM1MmVjNTEyZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQzX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlm
b3JtIHNhbXBsZXIyRCBzYW1wbGVyMmQ7CisKK3ZvaWQgbWFpbigpCit7CisgICAgc2FtcGxlcjJk
Kys7ICAvLyB1bmlmb3JtcyBjYW5ub3QgYmUgbW9kaWZpZWQKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2luY3JlbWVudDRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50
NF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNmZjZiNDNlODcxZWQ1YzMwZTc2Mjc0ZjU0NjFjNmMw
ZjZiMjYzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDRfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgaSsrID0gNTsgIC8vIGkrKyBp
cyBub3QgYW4gbC12YWx1ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50
Nl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQ2X2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wYmM1MDA0M2FjYzRkMDAyMDQ1ZjY1NzVkYTI3NjQ2Mzg3MTRlY2EzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Nl9mcmFnLmZyYWcKQEAgLTAsMCArMSwx
NiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lm
ZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkK
K3sKKyAgICBpbnQgaTsKKyAgICArK2krKzsgIC8vICsraSsrIGlzIGVxdWl2YWxlbnQgdG8gKyso
aSsrKSB3aGljaCBmYWlscyBiZWNhdXNlIGkrKyBpcyBub3QgYW4gbHZhbHVlLiAgKCsraSkrKzsg
aXMgbGVnYWwuCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbnB1dC5ydW4udHh0IGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaW5wdXQucnVuLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGRkZTdkNjI5YmYwOTY5
NjhhNTZiM2JhOWFjMmYwMzgwNTg0NmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvaW5wdXQucnVuLnR4dApAQCAtMCwwICsxLDI0IEBACisjIHRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZC4gRE8gTk9UIEVESVQuCitidWlsZF8wMDFfdG9fMDA4Lmh0bWwKK2J1aWxkXzAwOV90
b18wMTYuaHRtbAorYnVpbGRfMDE3X3RvXzAyNC5odG1sCitidWlsZF8wMjVfdG9fMDMyLmh0bWwK
K2J1aWxkXzAzM190b18wNDAuaHRtbAorYnVpbGRfMDQxX3RvXzA0OC5odG1sCitidWlsZF8wNDlf
dG9fMDU2Lmh0bWwKK2J1aWxkXzA1N190b18wNjQuaHRtbAorYnVpbGRfMDY1X3RvXzA3Mi5odG1s
CitidWlsZF8wNzNfdG9fMDgwLmh0bWwKK2J1aWxkXzA4MV90b18wODguaHRtbAorYnVpbGRfMDg5
X3RvXzA5Ni5odG1sCitidWlsZF8wOTdfdG9fMTA0Lmh0bWwKK2J1aWxkXzEwNV90b18xMTIuaHRt
bAorYnVpbGRfMTEzX3RvXzEyMC5odG1sCitidWlsZF8xMjFfdG9fMTI4Lmh0bWwKK2J1aWxkXzEy
OV90b18xMzYuaHRtbAorYnVpbGRfMTM3X3RvXzE0NC5odG1sCitidWlsZF8xNDVfdG9fMTUyLmh0
bWwKK2J1aWxkXzE1M190b18xNjAuaHRtbAorYnVpbGRfMTYxX3RvXzE2OC5odG1sCitidWlsZF8x
NjlfdG9fMTc2Lmh0bWwKK2J1aWxkXzE3N190b18xNzguaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvbWFpbjFfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjFfdmVydC52ZXJ0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk1YzI2NjMxMGFkYzQ3Njc3NmRkZWYyODU2NDdmNDkwZTYxNGM4YWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluMV92ZXJ0LnZlcnQKQEAgLTAsMCAr
MSwxMSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
bWFpbigpIC8vIHJldHVybiB0eXBlIG9mIG1haW4gc2hvdWxkIGJlIHZvaWQKK3sKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4yX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21h
aW4yX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Y2RmZTk4YjQ2M2U5OTQ4NzlmNDkyNDhhY2YyMzhh
YWU2ZjQ4MjZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjJfdmVydC52
ZXJ0CkBAIC0wLDAgKzEsMTIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKK3ZvaWQgbWFpbihpbnQgaSkgIC8vIG1haW4gZnVuY3Rpb24gY2Fubm90IHRh
a2UgYW55IHBhcmFtZXRlcnMKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluM192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9t
YWluM192ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlhMjFhOWU5MjkzMDMxZDZhMTdhY2M5ZjExMGNj
MDZjODgxNWU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4zX3ZlcnQu
dmVydApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCitpbnQgbWFpbigpIC8vIHJldHVybiB0eXBlIG9mIG1haW4gc2hvdWxkIGJl
IHZvaWQKK3sKKyAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWF0
cml4X1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWF0cml4X1YxMDBfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzZGMwYWRiNjRiOTRmYmVhNzE1MWM2YzcxM2RkMTMzYjNlZDMxZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYXRyaXhfVjEwMF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICBtYXQzIG07CisgICAgbWF0NCBtMSA9IG1hdDQobSk7Cit9ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbm9ybWFs
X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzY5YmNlOTlmOTFhNjI3NWM2MGIzMTNmMTAyYjdkN2JmNjcwNTRjNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMyBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0cmlidXRlIHZl
YzQgZ3RmX05vcm1hbDsKK3ZvaWQgbWFpbigpCit7CisgICAgZ3RmX05vcm1hbCA9IHZlYzMoMS4w
LDIuMCwzLjApOyAgLy8gY2Fubm90IGJlIG1vZGlmaWVkIGFuIGF0dHJpYnV0ZQorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMTBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
cGFyc2VyMTBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMjU3MzQ0NzM4MGI3NTJhNTFhZjJmYjJk
MmEyZGRiNGIzNDEzODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXIx
MF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICA1ICs9IDU7IC8vIGwtdmFsdWUgbWlzc2lu
ZworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMV92ZXJ0LnZlcnQgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9wYXJzZXIxX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGE2MjYzZGQyOGMwMGVk
YjQyZTU5ZDJlYmQxZWVkYmM5NjU2ODgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvcGFyc2VyMV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMyBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgYSAg
Ly8gc2VtaWNvbG9uIG1pc3NpbmcgYXQgdGhlIGVuZCBvZiB0aGUgc3RhdGVtZW50CisgICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KGEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2Vy
M19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXIzX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjU0M2FkOGZkZmQ4YWU3Njg4ZmYxOTJjNDYwYzIxYjRlOThmNzBiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyM19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAg
ICBmbG9hdCBmWzNdOworICAgIGZbM10gPSAxLjA7IC8vIGluZGV4IG9mIGFycmF5IGdyZWF0ZXIg
dGhhbiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3BhcnNlcjRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNF9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzczZTRiM2QzMTM4ZDQxMjQ4OTU3ZWI0NTFjYTdjNTk4ZGQ2YjZmYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjRfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgY29uc3QgaW50IGkgPSA1OworICAgIGkrKzsgIC8vIGNvbnN0IGNhbm5vdCBiZSBt
b2RpZmllZAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNV9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI1X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTljYmRhYWM1
OWI0OGI1MWViNjFhM2RhYTI4NTdkMDAzOGM3MzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyNV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHY7Cisg
ICAgdi56ID0gMS4yOyAgIC8vIHZlYzIgZG9lcyBub3QgaGF2ZSBhIHogY29tcG9uZW50Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI2X2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3BhcnNlcjZfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNGQwMjFmZDI5OTNmMmY1ZDJhMDUz
NTNiN2ZhYmY4OWQ0Y2Q1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJz
ZXI2X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYxLGYyLGYzOworICAgIGYz
ID0gZjEgPiBmMjsgIC8vIGYxID4gZjIgcmVzdWx0IGluIGEgYm9vbCB0aGF0IGNhbm5vdCBiZSBh
c3NpZ25lZCB0byBhIGZsb2F0Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI3
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjdfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ5MDMyMzEwY2Q4ZTMyY2IwZmNlZDU1ZTcyYmY2OWJhOTQ2M2YwNjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAg
IG1hdDIgbTEsbTI7CisgICAgYm9vbCBiID0gbTEgPiBtMjsgIC8vIGdyZWF0ZXItdGhhbiBvcGVy
YXRvciBjYW4gbm90IG9wZXJhdGUgb24gbWF0cmljZXMsIGhvd2V2ZXIsIGVxdWFsICg9PSkgYW5k
IG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9ycyBjYW4gYmUgdXNlZCB3aXRoIG1hdHJpY2VzCit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI4X2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3BhcnNlcjhfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2NjQ5YzU0ZWU1MmNlMTU5OWQxZjdm
N2YyMmYxZWY0NTI5M2U3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJz
ZXI4X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzIgdjI7CisgICAgdmVjMyB2MzsK
KyAgICBib29sIGIgPSB2MiA9PSB2MzsgLy8gZXF1YWwgb3BlcmF0b3IgY2Fubm90IG9wZXJhdG9y
IG9uIHZlY3RvcnMgb2YgZGlmZmVyZW50IHNpemVzCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9wYXJzZXI5X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjlfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEyODNjMjI2OGQ2OWQ1MWQzYzUxZWU5YWI0YmZhZjc1YWIwNWQyN2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI5X2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1h
aW4oKQoreworICAgIGZsb2F0IGYxLGYyOworICAgIGJvb2wgYiA9IGYxICYmIGYyOyAgLy8gJiYs
IHx8IGFuZCBeXiBvcGVyYXRlIG9uIGEgYm9vbGVhbiBleHByZXNzaW9uIG9ubHkKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3ByZXByb2Nlc3MwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWQxZDlmY2QxM2RkYjNlMzY0
ZGVlNGQxY2FjYmMzZWNlMWY0MDIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
cHJlcHJvY2VzczBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsNjMgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vdGVzdCBmb3IgZWxzZSBlbGlmIG1pc21hdGNoCisjZGVm
aW5lIHRlc3QoeCx5KSAoeCt5KQorCit2b2lkICBtYWluKHZvaWQpeworIGludCBzdW0gPTA7Cisg
I2RlZmluZSB4IDgKKyAjZW5kaWYKKyAjaWYgKHg9PTgpCisgICAjdW5kZWYgeAorICNlbmRpZgor
CisgI2lmIDEKKyAgICN1bmRlZiB4CisgI2VuZGlmCisKKyAjaWYgMQorICAgI2RlZmluZSB0NCA0
CisgI2VuZGlmCisKKyBzdW09dGVzdCgzLDYpK3Q0OworICNpZiAxCisgICNpZiAxCisgICAjaWYg
MQorICAgICNpZiAxCisgICAgICNpZiAwCisgICAgICAgI3VuZGVmIHRlc3QKKyAgICAgI2Vsc2UK
KyAgICAgICAjaWYgMQorICAgICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAjZW5kaWYKKyAgICAg
ICAjaWYgMAorICAgICAgICAjdW5kZWYgdGVzdAorICAgICAgICNlbHNlCisgICAgICAgICAgI2lm
IDAKKyAgICAgICAgICAgICAjdW5kZWYgdGVzdAorICAgICAgICAgICNlbHNlCisgICAgICAgICAg
ICAgI2lmIDEKKyAgICAgICAgICAgICAgICAjdW5kZWYgdGVzdAorICAgICAgICAgICAgICNlbHNl
CisgICAgICAgICAgICAgICAjdW5kZWYgdGVzdAorICAgICAgICAgICAgICNlbHNlCisgICAgICAg
ICAgICAgICAjamRoZ2oKKyAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAjZW5kaWYKKyAg
ICAgICAjZW5kaWYKKyAgICAgI2VuZGlmCisgICAgI2VuZGlmCisgICAjZW5kaWYKKyAgI2VuZGlm
CisgI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxMF9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZlYjIyNzk3MGQxNzllN2M0NTI3NzA4NmY5NTZhY2I3YjFlYTVjY2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8qIFRoZSBwcm9n
cmFtIHNob3VsZCB0ZXJtaW5hdGUgd2l0aCBhbiBlcnJvciBtZXNzYWdlIGFuZCBub3QgZ2V0IGlu
dG8gYW4KKyAgIGluZmluaXRlIGxvb3AgKi8KKyNpZmRlZiBuYW1lCisKK3ZvaWQgbWFpbigpCit7
CisgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvcHJlcHJvY2VzczFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczFfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyZjRkMTQyNTg4MTUwODVlYTM2ZjkyY2ViMDM2MjY2ODk0MThm
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMV9mcmFnLmZy
YWcKQEAgLTAsMCArMSw2NCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
ZgorLy8gdGVzdHMgZm9yIG1hY3JvIHJlZGlmaW5pdGlvbiAodDIpIGFuZCB0aGUgI2lmIGFuZCAj
ZWxzZSBuZXN0aW5ncy4KKy8vIHRha2VzIGNhcmUgb2YgZWxpZiBhbHNvLgorCisjZGVmaW5lIHQx
ICgxKzIpCisjZGVmaW5lIHQyIDIKKyNkZWZpbmUgdDIgMworCisvLyB0ZXN0aW5nIHRoZSBpZiBk
ZXB0aAorI2lmICh0MT09MykKKyAgI2RlZmluZSB0MyAzCisgICNpZiBkZWZpbmVkIHQyCisgICAg
I2RlZmluZSB0NCA0CisgICAgICAjaWYgZGVmaW5lZCh0MykKKyAgICAgICAgICAjZGVmaW5lIHQ1
IDUKKyAgICAgICAgICAgICAjaWZkZWYgdDUKKyAgICAgICAgICAgICAgICNkZWZpbmUgdDYgNgor
ICAgICAgICAgICAgICAgICAjaWZuZGVmIHQ3CisgICAgICAgICAgICAgICAgICAgI2RlZmluZSB0
NyA3CisgICAgICAgICAgICAgICAgICNlbHNlCisgICAgICAgICAgICAgICAgICAgI2RlZmluZSB0
OCA4CisgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICNlbmRpZgorICAgICAg
I2Vsc2UKKyAgICAgICAgICNpZm5kZWYgdDgKKyAgICAgICAgICAgICAjZGVmaW5lIHQ4IDgKKyAg
ICAgICAgICNlbGlmICh0OD09OCkKKyAgICAgICAgICAgICNkZWZpbmUgdDkgOQorICAgICAgICAg
I2Vsc2UKKyAgICAgICAgICAgICNpZiBkZWZpbmVkIHQ3CisgICAgICAgICAgICAgICNkZWZpbmUg
dDkgOQorICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAjZW5kaWYKKyAgICAgICNlbmRpZgor
ICAjZWxzZQorICAgICNkZWZpbmUgdDEwIDEwCisgICNlbmRpZgorI2VuZGlmCisKKworI2RlZmlu
ZSB0OCA4CisjZGVmaW5lIHQ5IDkKKyNkZWZpbmUgdDEwIDEwCisKK3ZvaWQgbWFpbih2b2lkKQor
eworIGludCBzdW09MSA7Cisgc3VtID0gdDErdDI7Cisgc3VtID0gdDMrdDQ7Cisgc3VtID0gdDUr
dDY7Cisgc3VtID0gdDcrdDg7Cisgc3VtID0gdDkrdDEwOworfQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9wcmVwcm9jZXNzMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9j
ZXNzMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFhMDBlODQ5ZGQyNDQyYTM4OWNmZmRhYzkwZTYw
ZDcxMjczOGI2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3My
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDYwIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCisvLyAjbGluZSBkaXJlY3RpdmUtLSB0ZXN0IGNhc2VzLgorLy8gY2hrcyBmb3Ig
SW52YWxpZCBkaXJlY3RpdmVzLCBhbGwgcG9zc2libGUgI2xpbmUgZXJyb3JzCisvLyBBbHNvIGNo
ZWNrcyB0aGUgY29ycmVjdCB2ZXJpb25zIG9mICNsaW5lIGRvcmVjdGl2ZS4KKworI2RlZmluZSB0
MSAxCisjZGVmaW5lIHQyIDIKKworIworIworIworIworI2xpbmUgOAorI2xpbmUgIiIKKyNsaW5l
IDMgMworCisjbGluZWtmagorI2xpbmUgYyBjCisjbGluZSB0MSB0MgorI2xpbmUgNzcgODkKKyNs
aW5lIDY1LjQKKyNsaW5lIG1lc3NhZ2UgdG8gdGhlIHVzZXIKKyNsaW5lCisjbGluZTM0NQorCit2
b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgc3VtID0xOworIHN1bSA9IF9fTElORV9fOworIHN1bSA9
IF9fRklMRV9fOworICNsaW5lIDQgNQorIHN1bSA9IF9fTElORV9fOworIHN1bSA9IF9fRklMRV9f
OworICNsaW5lIDkKKyBzdW0gPSBfX0xJTkVfXyArIF9fRklMRV9fIDsKKyBzdW0gPSBfX0ZJTEVf
XzsKKyAjCisgIworIHN1bSA9IF9fVkVSU0lPTl9fOworIHN1bSA9IHN1bSArIF9fTElORV9fIDsK
KyAjbGluZSA0IDUKKyAjbGluZSA1IDgKKyBzdW0gPSBfX0xJTkVfXzsKKyBzdW0gPSBfX0ZJTEVf
XzsKKyBzdW0gPSBfX1ZFUlNJT05fXzsKKworfQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvcHJlcHJvY2VzczNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczNf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ZTIwMDZhOTdkNThlMTMxOTk2YWY5N2FiZWIzNjdmODEz
ZmIxNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzM19mcmFn
LmZyYWcKQEAgLTAsMCArMSw0MyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNl
bmRpZgorLy8gc2ltcGxlIG1hY3JvIGV4cGFuc2lvbnMuCisvLyBUZXN0cyBmb3IgVG9vIGZldyBt
YWNybyBhcmd1bWVudHMsIHRvbyBtYW55IG1hY3JvIGFyZ3VtZW50cy4KKy8vIE1hY3JvcyB3aXRo
IG5vIGFyZ3VtZW50cy4KKworI2RlZmluZSB0MSAtMQorI2RlZmluZSB0MiAyCisKKyNkZWZpbmUg
dGVzdCAtMjU4CisjZGVmaW5lIHRlc3QxICh0ZXN0KnRlc3QpCisjZGVmaW5lIHRlc3QyKHgpICh4
K3Rlc3QxKQorI2RlZmluZSB0ZXN0MygpICh0ZXN0Mig4KSoodGVzdCp0ZXN0MSkpCisjZGVmaW5l
IHRlc3Q0KHgseSkgKHgreSkKKwordm9pZCBtYWluKHZvaWQpCit7CisgaW50IHN1bSA9MDsKKyBz
dW0gPSB0ZXN0MygpOworIHN1bSA9IHRlc3QzKDMpOworCisgc3VtID0gdGVzdDIoOSk7Cisgc3Vt
ID0gdGVzdDIoOSw4KTsKKworIHN1bSA9IHRlc3Q0OworIHN1bSA9IHRlc3QyKDgsNSw3OCw5KTsK
KyBzdW0gPSBzdW0gKyB0ZXN0MTsKKyBzdW0gPSA4KzU4K3N1bTsKKyBzdW0gPSBzdW0gK3Rlc3Q7
Cisgc3VtID0gKHQxK3QyKTsKKyBzdW0gPSB0ZXN0NCh0ZXN0MygpLHRlc3QyKHRlc3QzKCkpKTsK
KyBzdW0gPSB0ZXN0NCgzLDgsNSk7Cisgc3VtID0gdGVzdDQoKTsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3ByZXByb2Nlc3M0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXBy
b2Nlc3M0X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDljNzU2YTYzY2U1YTA5N2RiMDVlNmQ3YTBi
ZjJkM2Q3MmFmMmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2Vz
czRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsNjAgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKKy8vICNlcnJvciBhbmQgI3ByYWdtYSBkaXJlY3RpdmVzIC0tIHRlc3QgY2Fz
ZXMuCisvLyB0ZXN0cyBmb3IgZXJyb3JzIGluICNwcmFnbWEgZGlyZWN0aXZlLgorCisjcHJhZ21h
IG9wdGltaXplKG9uKQorI3ByYWdtYSBkZWJ1ZyhvZmYpCisKK2ludCBmb28oaW50KTsKKwordm9p
ZCBtYWluKHZvaWQpCit7CisgaW50IHN1bSA9MDsKKyAjZXJyb3IgOworICNlcnJvciA3OAorICNl
cnJvciBjCisgI2Vycm9yICJtZXNzYWdlIHRvIHRoZSB1c2VyICIKKyAjZXJyb3IgbWVzc2FnZSB0
byB0aGUgdXNlcgorICNlcnJvcgorICNlcnJvcgorICNkZWZpbmUgdDEgMQorIHN1bSA9IHQxKnQx
OworIGZvbyhzdW0pOworCit9CisKKyNwcmFnbWEgb3B0aW1pemUob2ZmKQorI3ByYWdtYSBiaW5k
KG9uKQorI3ByYWdtYSBwYWNrKG9mZikKKworaW50IGZvbyhpbnQgdGVzdCkKK3sKKyBpbnQgYmlu
ZGluZz0wOworIGJpbmRpbmcgPSB0ZXN0OworIHJldHVybiBiaW5kaW5nOworfQorCisjbGluZSA0
CisjcHJhZ21hCisjbGluZSA1IDYKKyNwcmFnbWEgb3B0bWltaXplIG9uCisjcHJhZ21hIGRlYnVn
IG9mZgorI3ByYWdtYSBkZWJ1ZyhvZmYKKyNsaW5lIDkKKyNwcmdtYSBiaW5kKG9mZikKKyNwcmFn
bWEgYmluZAorI3ByYWdtYSAob24pCisjcHJhZ21hIG9uIChvbikKKyNwcmFnbWEgb3B0bWl6ZShv
bgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M2X2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M2X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZiZDAy
MjNmNWVhZTRlMTQ3NGRmZTNhMGRmODA0NWY3ZGJlNGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvcHJlcHJvY2VzczZfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMzcgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIG9wZXJhdG9yIHByZWNlZGVuY2Ug
YW5kIHNvbWUgbWFjcm8gZXhwYW5zaW9ucy4KKworI2RlZmluZSB0ZXN0ICgxKzIpCisjZGVmaW5l
IHRlc3QxICh0ZXN0KjQpCisjZGVmaW5lIHRlc3QyICh0ZXN0MS90ZXN0KQorLy8jZGVmaW5lIHRl
c3QzICgtMSsyKjMvNCV0ZXN0KQorI2RlZmluZSB0ZXN0MyAoLTErMiozLzQpCisvLyNkZWZpbmUg
dGVzdDQgKHRlc3QgJiB0ZXN0MSB8dGVzdDIpCisjZGVmaW5lIHRlc3Q0ICh0ZXN0KQorI2RlZmlu
ZSB0ZXN0NSAoITgrfjQrNC02KQorI2RlZmluZSB0ZXN0NiAodGVzdDE+PjEpCisjZGVmaW5lIHRl
c3Q3ICh0ZXN0MTw8MSkKKyNkZWZpbmUgdGVzdDggKHRlc3QyXjYpCisjZGVmaW5lIHRlc3Q5ICh0
ZXN0NCB8fCB0ZXN0NSAmJiB0ZXN0MSkKKyNkZWZpbmUgdGVzdDEwICgwKQorCit2b2lkIG1haW4o
dm9pZCkKK3sKKyBpbnQgc3VtID0wOworIHN1bSA9IHRlc3Q0OworIHN1bSA9IHRlc3QzKnRlc3Qy
K3Rlc3QxLXRlc3Q7CisvLyBzdW0gPSB0ZXN0My90ZXN0NiArIHRlc3Q0KnRlc3Q3IC0gdGVzdDcg
JSB0ZXN0OTsKKy8vIHN1bSA9IHRlc3QzL3Rlc3Q2ICsgdGVzdDQqdGVzdDcgLSB0ZXN0NzsKKyBz
dW0gPSB0ZXN0MTAqdGVzdDU7Cit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXBy
b2Nlc3M3X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M3X2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wOGY2MmIxMTEwYjFiMTgxN2YwYWQyOGVlN2M5MjNkNjMyZTI5NTVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczdfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsNTEgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIHRl
c3RpbmcgZm9yIGNoYXIgY29uc3RhbnRzIGluICNpZiBhbmQgI2VsaWYKKy8vIEFsc28gY2hlY2tp
bmcgd2hldGhlciByZXNlcnZlZCB3b3JkcyBjYW4gYmUgcmVkZWZpbmVkLgorCisjZGVmaW5lIHQx
IGMKKyNkZWZpbmUgdDIgZAorI2RlZmluZSBhc20gYQorCisgI2lmKHQxPT1jKQorICAjZGVmaW5l
IHQzIDMKKyAjZWxpZih0MT09ZCkKKyAgI2RlZmluZSB0NCA0CisgI2VsaWYodDI9PWMpCisgICNk
ZWZpbmUgdDUgNQorICNlbmRpZgorCisgI2lmbmRlZiB0MQorICAgI2RlZmluZSB0NyA3CisgI2Vs
aWYgKHQyPT1kKQorICAjZGVmaW5lIHQ2IDYKKyAjZW5kaWYKKworICNpZiAodDI9PSdkJykKKyAg
I2RlZmluZSBoYWxmIDUKKyAjZWxzZQorICAjZGVmaW5lIGhhbGYgOAorICNlbmRpZgorCisgI2lm
ZGVmIHQyMgorICAjZGVmaW5lIHggNQorICNlbmRpZgorCisgdm9pZCBtYWluKHZvaWQpCisgIHsK
KyAgIGludCBzdW0gPTAsYT05OworCisgICBzdW0gPSBoYWxmICsgc3VtOworICAgc3VtID0gYXNt
ICsgYTsKKworICB9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3BpbmcxX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3BpbmcxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWM5
YTUxMjA5NWMxYmNkNGRhY2YzYWI4NGNjMDRiNjA1YmMwNjBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvc2NvcGluZzFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjEgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgYm9v
bCBiOworICAgIGlmIChiKQorICAgIHsKKyAgICAgICAgaW50IGkgPSAxOworICAgICAgICBpKys7
CisgICAgfQorICAgIGkrKzsgIC8vIGkgaXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2NvcGUKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3BpbmcyX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3Njb3BpbmcyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjY3ZjQwMDYxNGYzZGY0ZTY0
YTRmYWQ3NmQ1ODBmZmVhNTAyZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
c2NvcGluZzJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgeworICAgICAgICBpbnQgaSA9
IDE7CisgICAgICAgIGkrKzsKKyAgICB9CisgICAgaSsrOyAgLy8gaSBpcyBub3QgZGVjbGFyZWQg
aW4gdGhpcyBzY29wZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MTBfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MTBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZi
MGM3ODI5OWRhOTM4ZmUwMjQxNWVmYTE2ZTY5ZTVkZjc3ZjBlNzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOSBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGludCBp
OworfSBzMVsyXTsKKwordm9pZCBtYWluKCkKK3sKKyAgIHMxLmkgPSAxOyAgLy8gczEgaXMgYW4g
YXJyYXkuIHMxWzBdLmkgaXMgY29ycmVjdCB0byB1c2UKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3N0cnVjdDExX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDExX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNTJjZTQ5YWVkMGQ1NmEyOTgwYmRmMWIzZmI5N2ZkNzJjYjcxYjUy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MTFfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0
cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczE7CisKK3ZvaWQgbWFpbigpCit7CisgICBzMSA9IC1z
MTsgLy8gY2Fubm90IGNhbGN1bGF0ZSBuZWdhdGl2ZSBvZiBhIHN0cnVjdHVyZQorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9z
dHJ1Y3QxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmNiYjg1OTlmYTgzMDM3MmU3ZGNkNTc1ZTZk
NGU0MWJhY2I4NzhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgorc3RydWN0IHMgeworICAgIGludCBpOworfSB1bmlmb3JtIHVuaWZvcm1TdHJ1Y3Q7
ICAvLyB1bmlmb3JtIGtleXdvcmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIHRoZSBrZXl3b3JkIHN0
cnVjdAorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3Ry
dWN0Ml9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QyX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NjgyZjY3ZGZjMTExMDZkYzIzZDVhNmI3N2I5ODI2MzUyOTU1MDBhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Ml9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAg
IGludCBpID0gMS4wOyAgLy8gc3RydWN0IG1lbWJlcnMgY2Fubm90IGJlIGluaXRpYWxpemVkIGF0
IHRoZSB0aW1lIG9mIHN0cnVjdHVyZSBkZWNsYXJhdGlvbgorfSBzMTsKKwordm9pZCBtYWluKCkK
K3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDNfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvc3RydWN0M19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmVjMWU1MzYxNjJjMWI5
YTBkNDRhNDhmNzhhZWZiMDAyMDg0ZTgzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3N0cnVjdDNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICB1bmlmb3JtIGludCBpOyAgLy8g
c3RydWN0dXJlIG1lbWJlcnMgY2Fubm90IGJlIGRlY2xhcmVkIHdpdGggY29uc3QgcXVhbGlmaWVy
Cit9IHMxOworCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
c3RydWN0NF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q0X2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZTdkNTQ3YWUxMmNmODRkYzFmNWFjNjhjMWY3MmU5NjMxNTIzNTA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0NF9mcmFnLmZyYWcKQEAgLTAsMCArMSwx
OCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lm
ZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgewor
ICAgIGNvbnN0IGludCBpID0gMTsgIC8vIHN0cnVjdHVyZSBtZW1iZXJzIGNhbm5vdCBiZSBkZWNs
YXJlZCB3aXRoIGNvbnN0IHF1YWxpZmllcgorfSBzMTsKKwordm9pZCBtYWluKCkKK3sKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3RydWN0NV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ2MjMyMDc2MTMxYTY0YWViNDMxYjg3
Mzk2N2QzNmE4MWM0MDRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVj
dDVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3VuaWZvcm0gc3RydWN0IHMgeworICAgIGludCBpOworfSBzMTsKKwordm9p
ZCBtYWluKCkKK3sKKyAgIHMxLmkgPSAxOyAgLy8gdW5pZm9ybXMgYXJlIHJlYWQgb25seQorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Nl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9zdHJ1Y3Q2X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDk4Y2MwMWM2MjNhNjdkZWUyNTZk
MDgzYzllZTViNjIwMjBkMWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3Ry
dWN0Nl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordmFyeWluZyBzdHJ1Y3QgcyB7CisgICAgaW50IGk7Cit9IHMxOyAgLy8g
c3RydWN0dXJlcyBjYW5ub3QgYmUgZGVjbGFyZWQgd2l0aCB2YXJ5aW5nIHF1YWxpZmllcgorCit2
b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0N19mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWEz
MjA2NTA1OTI5ODMzNDEzNGFlYWM2ODJiNTM3MmU0MDUwMTI4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvc3RydWN0N19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBzdHJ1
Y3QgcyB7CisgICAgfSBzMTsgIC8vIHN0cnVjdHVyZXMgaGF2ZSB0byBiZSBkZWNsYXJlZCB3aXRo
IGF0bGVhc3Qgb25lIG1lbWJlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0
OF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q4X2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOTAwYmM5MGMzMzUxMjMyNTg5Mjk2NGZhYmYyNTY0NDA4YzA0MGZkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OF9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGlu
dCBpOworfSBzMTsKKworc3RydWN0IHNzIHsKKyAgICBpbnQgaTsKK30gczI7CisKK3ZvaWQgbWFp
bigpCit7CisgICAgczEgPSBzMjsgIC8vIHR3byBkaWZmZXJlbnQgc3RydWN0dXJlcyBjYW5ub3Qg
YmUgYXNzaWduZWQgdG8gZWFjaCBvdGhlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
c3RydWN0OV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q5X2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNjYxZDI1MDEyOGYzZGRhNDJjZDM4MTI4NzNhM2YwM2I5YzBhODUzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OV9mcmFnLmZyYWcKQEAgLTAsMCArMSwx
OSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lm
ZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorY29uc3Qgc3RydWN0
IHMgeworICAgIGludCBpOworfSBzMSA9IHMoMSk7CisKK3ZvaWQgbWFpbigpCit7CisgICBzMS5p
ID0gMTsgIC8vIGNvbnN0IHN0cnVjdCBtZW1iZXJzIGNhbm5vdCBiZSBtb2RpZmllZAorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenpsZTFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3dpenpsZTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMWVhM2NmOTFhMTVjNTFkMmU2Y2Jj
YzFlYjQxNGZmY2ZmNjI4NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6
emxlMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHY7CisgICAgdi54eSA9IDEu
MjsgLy8gc3dpenpsZSBuZWVkcyB0d28gdmFsdWVzLCB2Lnh5ID0gdmVjMigxLjIpIGlzIGNvcnJl
Y3QKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUyX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N3aXp6bGUyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDViZDE4Nzc2ODY3
YTY0ZjRhZGQ2NGYxN2EzOTc1OTA3ZWU5ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvc3dpenpsZTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAg
IHYueHggPSB2ZWMyKDEsMSk7ICAvLyB4IGNhbm5vdCBiZSB1c2VkIHR3aWNlIGluIGwtdmFsdWUK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUzX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3N3aXp6bGUzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWI5ZmQ2MDQ4MzIzODVj
YWRjNGFlZTk0Yjg1NjM1ZjUwNmU5ZmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3dpenpsZTNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHZl
YzMgdjMgPSB2Lnh5ejsgLy8gdiBpcyBhIHZlYzIgYW5kIGRvZXMgbm90IGhhdmUgYSB6IGNvbXBv
bmVudAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdHlwZWNhc3RfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvdHlwZWNhc3RfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMWIxMjRmNjZj
MDc1NDhmYTQ3NGU3MjE1YTMwOTEyZjQ3YWY1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC90eXBlY2FzdF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWM0IHY7Cisg
ICAgdmVjNCB2MSA9ICh2ZWM0KSB2OyAvLyBpbmNvcnJlY3QgdHlwZWNhc3RpbmcsIHZlYzQodikg
aXMgY29ycmVjdAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybTFfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNzA2
NDdmYWFiMDU2MThlOWRmMWVjYzg1NTJlNTI3YTJhMThlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC91bmlmb3JtMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IGd0Zl9Gb2dQYXJhbWV0ZXJz
IHsKK3ZlYzQgY29sb3I7CitmbG9hdCBkZW5zaXR5OworZmxvYXQgc3RhcnQ7CitmbG9hdCBlbmQ7
CitmbG9hdCBzY2FsZTsKK307Cit1bmlmb3JtIGd0Zl9Gb2dQYXJhbWV0ZXJzIGd0Zl9Gb2c7Cit2
b2lkIG1haW4oKQoreworICAgIGd0Zl9Gb2cuZGVuc2l0eSA9IDEuMDsgIC8vIGNhbm5vdCBtb2Rp
ZnkgYSB1bmlmb3JtCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC91bmlmb3JtX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3VuaWZvcm1fZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NWVh
Y2VkNDZjZWJiMzcwYTBkOGY0ZDU2NTU4OWUxMTdjOGMxOWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC91bmlmb3JtX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHVuaWZv
cm0gZmxvYXQgZm9vOyAgLy8gdW5pZm9ybXMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgYSBnbG9i
YWwgc2NvcGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmcxX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmcxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjUxMjJl
YTk4YTdiZmIwMTQyMGIzNDBmZGM1ZTZiZjAwMGYyZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvdmFyeWluZzFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZhcnlpbmcgZmxvYXQgZm9vOworCit2b2lk
IG1haW4oKQoreworICAgIGZvbyA9IDUuMDsgLy8gdmFyeWluZyBjYW5ub3QgYmUgd3JpdHRlbiBi
eSBhIGZyYWdtZW50IHNoYWRlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWlu
ZzJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzJfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0Y2M5ZjQ5ZjQ5OTNkYjYyODEwNWNlODg0NzZhZTA5OGU2ZGNjNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordmFyeWluZyBpbnQgZm9v
OyAvLyB2YXJ5aW5ncyBjYW5ub3QgYmUgaW50IG9yIGJvb2wKKwordm9pZCBtYWluKCkKK3sKKwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzNfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvdmFyeWluZzNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYWI2NWVjOTk2NTM0ODU2
Y2EwZGU2YjMzZGZkOGQxOWMxMDcwNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC92YXJ5aW5nM19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordmFyeWluZyB2ZWM0IHYgPSB2ZWM0KDEsMSwxLDEpOy8vZ2xf
VGV4Q29vcmRbMF07IC8vIHZhcnlpbmdzIGNhbm5vdCBiZSBpbml0aWFsaXplZAorCit2b2lkIG1h
aW4oKQoreworCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmdfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NWQ5ZmRi
N2IzNmZiZjBhOGU1MjUxMGQ1YjZhYTQ1YTg1MGZkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC92YXJ5aW5nX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZhcnlpbmcg
ZmxvYXQgZm9vOyAvLyB2YXJ5aW5ncyBjYW4gb25seSBiZSBkZWNsYXJlZCBhdCBhIGdsb2JhbCBz
Y29wZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVjdG9yX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3ZlY3Rvcl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJjMjk4ZWIxZDNlNzQx
MGQ3NTZlNTAzYmZmODFlYjEzZTcwYjU0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3ZlY3Rvcl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpdmVjNCB2NDsKKyAgICB2
NCA9IHY0ICsgMi4wOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjJfVjEw
MF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uMl9WMTAwX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iODNmYzZhNDY3ZmM3MDMyNzMwY2Q2YmQyMWU2NGIxOWMyYzQ2ZmZjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjJfVjEwMF9mcmFnLmZyYWcKQEAgLTAs
MCArMSwxOSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI3ByYWdtYSBkZWJ1ZyhvbikKKyN2ZXJzaW9uIDEwMCAgLy8gZXJyb3IgI3ZlcnNpb24gc2hv
dWxkIGJlIHRoZSBmaXJzdCBzdGF0ZW1lbnQgaW4gdGhlIHByb2dyYW0KKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKworCit2b2lkIG1haW4oKQoreworICAg
Z2xfRnJhZ0NvbG9yID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Zl
cnNpb24zX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjNfVjEwMF9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjFkZmNjMzNjZWUyODQyNmYxNWFmOWJlY2Q1ZjFlOGEzZWE3NWRm
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1YxMDBfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKy8qIFRoaXMgaXMgIGEgY29tbWVudCovIGludCBpOyAvLyBUaGlzIGlzIGEg
Z2xvYmFsIGRlY2wKKyN2ZXJzaW9uIDEwMCAgLy8gZXJyb3IgI3ZlcnNpb24gc2hvdWxkIGJlIHRo
ZSBmaXJzdCBzdGF0ZW1lbnQgaW4gdGhlIHByb2dyYW0KKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKworCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0Nv
bG9yID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHky
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHkyX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xYzg1ZTIyMWNlZGE1YjkyMTc1OTExNjlhNTYzNmRhMTM5OGM3NTI1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVydGV4T25seTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDQuMCk7ICAvLyBjYW4gYmUgdXNlZCBpbiB2ZXJ0
ZXggc2hhZGVyIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHlf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVydGV4T25seV9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDFhZGEyYmYwODQ1ZjVmYmZmZGQwNzcwZjI5ODFiZDk3MGYyYTlmNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjUg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBndGZfUG9p
bnRQYXJhbWV0ZXJzIHsKK2Zsb2F0IHNpemU7CitmbG9hdCBzaXplTWluOworZmxvYXQgc2l6ZU1h
eDsKK2Zsb2F0IGZhZGVUaHJlc2hvbGRTaXplOworZmxvYXQgZGlzdGFuY2VDb25zdGFudEF0dGVu
dWF0aW9uOworZmxvYXQgZGlzdGFuY2VMaW5lYXJBdHRlbnVhdGlvbjsKK2Zsb2F0IGRpc3RhbmNl
UXVhZHJhdGljQXR0ZW51YXRpb247Cit9OwordW5pZm9ybSBndGZfRm9nUGFyYW1ldGVycyBndGZf
UG9pbnQ7Cit2b2lkIG1haW4oKQoreworICAgIGd0Zl9Qb2ludFNpemUgPSA0LjA7ICAvLyBjYW4g
YmUgdXNlZCBpbiB2ZXJ0ZXggc2hhZGVyIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3ZlcnRleF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhfdmVydC52ZXJ0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFiOGNjNDU1NWUzMzhjM2YzNzBkNDA0ZGUzNmM5OWE0ZjkyNTQ4NDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhfdmVydC52ZXJ0CkBAIC0wLDAgKzEs
MTMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0
dHJpYnV0ZSB2ZWM0IGd0Zl9WZXJ0ZXg7Cit2b2lkIG1haW4oKQoreworICAgIGd0Zl9WZXJ0ZXgg
PSB2ZWM0KDEuMCwyLjAsMy4wLCA0LjApOyAvLyBjYW5ub3QgbW9kaWZ5IGFuIGF0dHJpYnV0ZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUxX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3doaWxlMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODllMmM2YmJiMjg5NzlmNjQzNTJj
NGMyNTYzMjljMThhZDdiZWUzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3do
aWxlMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICB3aGlsZShpKSB7
ICAvLyBjb25kaXRpb24gc2hvdWxkIGJlIGJvb2xlYW4KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC93aGlsZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUyX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMWU3NWNmYTkwZGVmZGMxNTFkM2UwOWNjNmI4NTlhZjVkZTY1
OTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUyX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIG1haW4oKQoreworICAgIHdoaWxlKGZsb2F0IGYgPSA1LjApIHsgIC8vIGNhbm5vdCBkZWNs
YXJlIHZhcmlhYmxlcyBpbiBjb25kaXRpb24KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC93aGlsZV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZV9mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODkxZDA5OTJiMDAyOGU3MGRlMmE3MTNlYTkxMjI2OWMwYzQxZTMzYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworICAgIGZsb2F0IGY7CisgICAgd2hpbGUoZikgeyAgLy8gY29uZGl0aW9uIHNob3VsZCBi
ZSBib29sZWFuCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvcHJvZ3JhbS10ZXN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9wcm9ncmFtcy9wcm9ncmFtLXRlc3QuaHRtbAppbmRleCBiNWQ1YjU5MWQ1MTJkOTU5Y2Zm
ZDRjMDc5NmM3N2JkZTc1ODcxZTU1Li4zNGNhNjhmMWQ3NWE1OTA5MWMwYmZjMThlMWQ3Zjk0NDJk
MTM2MjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9wcm9ncmFtLXRlc3QuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9n
cmFtcy9wcm9ncmFtLXRlc3QuaHRtbApAQCAtMzEyLDkgKzMxMiw5IEBAIGZ1bmN0aW9uIGdvKCkg
ewogICAgIGFzc2VydE1zZyhnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dHb29kMiwgZ2wuTElO
S19TVEFUVVMpID09IGZhbHNlLAogICAgICAgICAgICAgICAibGlua2luZyBzaG91bGQgZmFpbCB3
aXRoIGluLXVzZSBmb3JtZXJseSBnb29kIHByb2dyYW0sIHdpdGggbmV3IGJhZCBzaGFkZXIgYXR0
YWNoZWQiKTsKIAotICAgIC8vIEludmFsaWQgbGluayBsZWF2ZXMgcHJldmlvdXMgdmFsaWQgcHJv
Z3JhbSBpbnRhY3QuCisgICAgLy8gSW4gV2ViR0wsIGFuIHVuc3VjY2Vzc2Z1bCBsaW5rIGltbWVk
aWF0ZWx5IGludmFsaWRhdGVzIHRoZSBwcmV2aW91cyB2YWxpZCBwcm9ncmFtLgogICAgIGdsLmRy
YXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgImRyYXdpbmcgd2l0aCBhIHZhbGlkIHByb2dyYW0gc2hvdWxkbid0IGdl
bmVyYXRlIGEgR0wgZXJyb3IiKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTiwgImRyYXdpbmcgd2l0aCBhIG5ld2x5LWludmFsaWRhdGVkIHByb2dyYW0g
c2hvdWxkIGdlbmVyYXRlIElOVkFMSURfT1BFUkFUSU9OIik7CiAKICAgICBnbC51c2VQcm9ncmFt
KHByb2dHb29kMSk7CiAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDQpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29y
LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Np
c3Nvci10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzNTU1ZjJiYmZlYTlmZDViYjIxZjFjMmMyNDkx
MzRhMTJjYzlkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZy
YW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCEtLQor
Q29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Q2xlYXIgd2l0
aCBzY2lzc29yIGJ1ZyBvbiBXZWJHTCBjYW52YXM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNh
bnZhcyBpZD0iY2FudmFzLXdlYmdsIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiPiA8L2NhbnZhcz4K
KzxjYW52YXMgaWQ9ImNhbnZhcy0yZCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj4gPC9jYW52YXM+
CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CisvLyBUaGlzIHRlc3QgZXhwb3NlcyBhbiBpc3N1
ZSBpbiBvbGRlciBJbnRlbCBEM0QgZHJpdmVycy4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
KworZnVuY3Rpb24gdGVzdF9jbGVhcl93aXRoX3NjaXNzb3Jfb25fY2FudmFzKCkKK3sKKyAgdmFy
IGNhbnZhc1dlYkdMID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcy13ZWJnbCIpOwor
ICB2YXIgZ2wgPSBjYW52YXNXZWJHTC5nZXRDb250ZXh0KCJ3ZWJnbCIsIHsgYW50aWFsaWFzOmZh
bHNlIH0pOworICBjb25zdCBzY2lzc29yUmVjdFNpemUgPSAxNjsKKyAgZ2wuZW5hYmxlKGdsLlND
SVNTT1JfVEVTVCk7CisgIGdsLnNjaXNzb3IoMCwgMCwgc2Npc3NvclJlY3RTaXplLCBzY2lzc29y
UmVjdFNpemUpOworICBnbC5jbGVhckNvbG9yKDAsIDEsIDAsIDEpOworICBnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUKTsKKworICAvLyBUaGUgaXNzdWUgaXMgZm91bmQgaW4gdGhlIENocm9t
aXVtIGNvbXBvc2l0b3Igc28gd2UgbmVlZCBhbm90aGVyIGNhbnZhcyBlbGVtZW50IGZvciByZXBy
b2R1Y3Rpb24uCisgIHZhciBjYW52YXMyRCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMtMmQiKTsKKyAgdmFyIGNvbnRleHQyRCA9IGNhbnZhczJELmdldENvbnRleHQoJzJkJyk7Cisg
IGNvbnRleHQyRC5kcmF3SW1hZ2UoY2FudmFzV2ViR0wsIDAsIDApOworICBjb250ZXh0MkQuZmls
bCgpOworCisgIHZhciBpbWFnZURhdGEgPQorICAgIGNvbnRleHQyRC5nZXRJbWFnZURhdGEoMCwg
Y2FudmFzMkQuY2xpZW50SGVpZ2h0IC0gc2Npc3NvclJlY3RTaXplLCBzY2lzc29yUmVjdFNpemUs
IHNjaXNzb3JSZWN0U2l6ZSk7CisgIHZhciBkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CisgIHZhciBl
eHBlY3RlZENvbG9yID0gWzAsIDI1NSwgMCwgMjU1XTsKKyAgZm9yICh2YXIgcGl4ZWxJbmRleCA9
IDA7IHBpeGVsSW5kZXggPCBzY2lzc29yUmVjdFNpemUgKiBzY2lzc29yUmVjdFNpemU7ICsrcGl4
ZWxJbmRleCkgeworICAgIGZvciAodmFyIGNvbG9ySW5kZXggPSAwOyBjb2xvckluZGV4IDwgNDsg
Kytjb2xvckluZGV4KSB7CisgICAgICBpZiAoZGF0YVtwaXhlbEluZGV4ICogNCArIGNvbG9ySW5k
ZXhdICE9PSBleHBlY3RlZENvbG9yW2NvbG9ySW5kZXhdKSB7CisgICAgICAgIHZhciB5ID0gTWF0
aC5mbG9vcihwaXhlbEluZGV4IC8gc2Npc3NvclJlY3RTaXplKTsKKyAgICAgICAgdmFyIHggPSBw
aXhlbEluZGV4ICUgc2Npc3NvclJlY3RTaXplOworICAgICAgICB0ZXN0RmFpbGVkKCJUaGUgY2Fu
dmFzIGNvbG9yIGF0ICgiICsgeCArICIsICIgKyB5ICsgIikgaXMgbm90IGV4cGVjdGVkIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICB9CisgIH0KK30KKwordGVzdF9jbGVhcl93aXRo
X3NjaXNzb3Jfb25fY2FudmFzKCk7CisKK2Rlc2NyaXB0aW9uKCJFeHBvc2VzIGNsZWFyaW5nIFdl
YkdMIGNhbnZhcyB3aXRoIHNjaXNzb3IgYnVnIG9uIEludGVsIEQzRCBkcml2ZXJzIC0gc2VlIGh0
dHBzOi8vY3JidWcuY29tLzEyMDY3NjMiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3It
bWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNl
ZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JiYTUyZTlhOTcwYmJi
OTQwZjZiZGQ4NzgyMWVlMzFkMTRlNDcxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9j
b2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29s
dXRpb24uaHRtbApAQCAtMCwwICsxLDcxIEBACis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb2xvck1hc2sgU2hvdWxkIE5vdCBBZmZl
Y3QgQW50aWFsaWFzZWQgRnJhbWVidWZmZXIgUmVzb2x1dGlvbjwvdGl0bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iOCIgaGVpZ2h0PSI4Ij48L2NhbnZhcz4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgY29sb3JNYXNrIHN0YXRl
IGRvZXMgbm90IGFmZmVjdCByZXNvbHV0aW9uIG9mIHRoZSBhbnRpYWxpYXNlZCBmcmFtZWJ1ZmZl
ci4iKTsKKworZGVidWcoJ1JlZ3Jlc3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9jcmJ1
Zy5jb20vMTI1Nzc2OSI+aHR0cHM6Ly9jcmJ1Zy5jb20vMTI1Nzc2OTwvYT4gYW5kIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjkiPmh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjk8L2E+Jyk7CisKK2Z1bmN0aW9u
IHJ1bigpIHsKKyAgICBjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIsIHsg
YW50aWFsaWFzOiB0cnVlLCBhbHBoYTogdHJ1ZSB9KTsKKworICAgIGlmICghZ2wpIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0ZXN0UGFzc2VkKCJX
ZWJHTCBjb250ZXh0IGV4aXN0cyIpOworCisgICAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1cENv
bG9yUXVhZChnbCk7CisKKyAgICAvLyBDbGVhciB0aGUgZGVmYXVsdCAobXVsdGlzYW1wbGVkKSBm
cmFtZWJ1ZmZlciB0byByZWQuCisgICAgZ2wuY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKKyAgICBn
bC5jb2xvck1hc2sodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09M
T1JfQlVGRkVSX0JJVCk7CisKKyAgICAvLyBEcmF3IGEgdHJhbnNwYXJlbnQgZ3JlZW4gcXVhZC4K
KyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIHd0dS5kcmF3RmxvYXRDb2xvclF1YWQo
Z2wsIFsgMCwgMjU1LCAwLCAwIF0pOworCisgICAgLy8gQ2xlYXIgdGhlIGFscGhhIGNoYW5uZWwu
CisgICAgZ2wuY29sb3JNYXNrKGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUpOworICAgIGdsLmNs
ZWFyQ29sb3IoMCwgMCwgMCwgMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7
CisKKyAgICAvLyBBdCB0aGlzIHBvaW50LCBldmVuIHNldHRpbmcgdGhlIGNvbG9yTWFzayB0byBh
bGwtdHJ1ZSB3b24ndAorICAgIC8vIHdvcmsgYXJvdW5kIHRoZSBidWcsIHNpbmNlIHRoYXQgc3Rh
dGUgaXMgbGF0Y2hlZCBpbnNpZGUgQU5HTEUKKyAgICAvLyBvbmx5IGR1cmluZyBkcmF3cyAvIGNs
ZWFycy4KKworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgWyAwLCAyNTUsIDAsIDI1NSBdLCAic2hv
dWxkIGJlIGdyZWVuIiwgMSk7CisgICAgZmluaXNoVGVzdCgpOworfQorCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKworcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJ1bik7CisKKzwvc2Ny
aXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0
LWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKaW5kZXggNTMwYTRi
NDMxM2FmZTAxNDQyNzQ4MWNmYjFjNDZiNWMzMWU2MTMxYS4uN2FhMmNlZGY5OTk3Y2QxZmQ1ODVj
ZjY0NjQ2OWEwNjBiYWFhOTk1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxs
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbApAQCAtMjAsNyArMjAs
NSBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KIHZhciBjb250ZXh0VmVyc2lvbiA9
IDE7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy90ZXN0cy9nbC1vYmplY3QtZ2V0
LWNhbGxzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9y
bWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNzY5NGI4MjFlYjFl
ZjFiYzgzNjg1NDM0ODU0YjJhYTk4MDMyYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbApAQCAtMCwwICsxLDM3OCBAQAor
PCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCB3dHUgPSBXZWJH
TFRlc3RVdGlsczsKK2Rlc2NyaXB0aW9uKCk7CisKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dCgpOworZ2wuY2FudmFzLndpZHRoID0gZ2wuY2FudmFzLmhlaWdodCA9IDE7CisKK2Z1bmN0
aW9uIG1ha2VUZXhJbWFnZShmb3JtYXQsIHVucGFja0Zvcm1hdCwgdW5wYWNrVHlwZSwgZGF0YSkg
eworICAgIGRhdGEgPSBkYXRhIHx8IG51bGw7CisKKyAgICBjb25zdCB0ZXggPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2xbZm9ybWF0XSwgMiwgMiwgMCwKKyAgICAgICAgICAgICAgICBnbFt1bnBhY2tGb3Jt
YXRdLCBnbFt1bnBhY2tUeXBlXSwgbnVsbCk7CisgICAgcmV0dXJuIHRleDsKK30KKworY29uc3Qg
RFVNTVlfQ09MT1IgPSBtYWtlVGV4SW1hZ2UoJ1JHQkEnLCAnUkdCQScsICdVTlNJR05FRF9CWVRF
Jyk7CisKK2Z1bmN0aW9uIG1ha2VQcm9ncmFtKGdsLCB2c1NyYywgZnNTcmMpIHsKKyAgZnVuY3Rp
b24gbWFrZVNoYWRlcihwcm9nLCB0eXBlLCBzcmMpIHsKKyAgICBjb25zdCBzaGFkZXIgPSBnbC5j
cmVhdGVTaGFkZXIoZ2xbdHlwZV0pOworICAgIGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNyYy50
cmltKCkpOworICAgIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKyAgICBnbC5hdHRhY2hTaGFk
ZXIocHJvZywgc2hhZGVyKTsKKyAgICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgfTsKKwor
ICBjb25zdCBwcm9nID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBtYWtlU2hhZGVyKHByb2csICdW
RVJURVhfU0hBREVSJywgdnNTcmMpOworICBtYWtlU2hhZGVyKHByb2csICdGUkFHTUVOVF9TSEFE
RVInLCBmc1NyYyk7CisgIGdsLmxpbmtQcm9ncmFtKHByb2cpOworCisgIGlmICghZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcihwcm9nLCBnbC5MSU5LX1NUQVRVUykpIHsKKyAgICB0aHJvdyAnUHJvZ3Jh
bSBsaW5raW5nIGZhaWxlZCcgKyBmc1NyYzsKKyAgfQorICByZXR1cm4gcHJvZzsKK30KKworY29u
c3QgVEVYX0ZJTFRFUl9QUk9HX1QgPSAodmVyc2lvbiwgc2FtcGxlclQpID0+IG1ha2VQcm9ncmFt
KGdsLCBgXAorICAgICR7dmVyc2lvbn0KKyAgICB2b2lkIG1haW4oKSB7CisgICAgICAgIGdsX1Bv
aW50U2l6ZSA9IDEuMDsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuNSwwLjUsMCwxKTsK
KyAgICB9YCxgXAorICAgICR7dmVyc2lvbn0KKyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyAgICB1bmlmb3JtICR7c2FtcGxlclR9IHVfdGV4MDsKKyAgICAjaWYgX19WRVJTSU9OX18gPT0g
MzAwCisgICAgb3V0IHZlYzQgb19GcmFnQ29sb3I7CisgICAgI2Vsc2UKKyAgICAjZGVmaW5lIG9f
RnJhZ0NvbG9yIGdsX0ZyYWdDb2xvcgorICAgICNkZWZpbmUgdGV4dHVyZSB0ZXh0dXJlMkQKKyAg
ICAjZW5kaWYKKyAgICB2b2lkIG1haW4oKSB7CisgICAgICAgIG9fRnJhZ0NvbG9yID0gdmVjNCh0
ZXh0dXJlKHVfdGV4MCwgdmVjMigwLjgpKSk7CisgICAgfWApOworY29uc3QgVEVYX0ZJTFRFUl9Q
Uk9HX0JZX1RZUEVJU0ggPSB7CisgICAgJ2Zsb2F0JzogVEVYX0ZJTFRFUl9QUk9HX1QoJycsICdz
YW1wbGVyMkQnKSwKK307CitpZiAod3R1LmlzV2ViR0wyKGdsKSkgeworICAgIFRFWF9GSUxURVJf
UFJPR19CWV9UWVBFSVNIWydpbnQnXSA9CisgICAgICAgIFRFWF9GSUxURVJfUFJPR19UKCcjdmVy
c2lvbiAzMDAgZXMnLCAnaGlnaHAgaXNhbXBsZXIyRCcpOworICAgIFRFWF9GSUxURVJfUFJPR19C
WV9UWVBFSVNIWyd1aW50J10gPQorICAgICAgICBURVhfRklMVEVSX1BST0dfVCgnI3ZlcnNpb24g
MzAwIGVzJywgJ2hpZ2hwIHVzYW1wbGVyMkQnKTsKK30KKworZnVuY3Rpb24gcnVuUGl4ZWxQcm9n
cmFtKGdsLCBwcm9nKSB7CisgICAgZ2wudXNlUHJvZ3JhbShwcm9nKTsKKyAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7
CisgICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICBnbC5yZWFkUGl4ZWxz
KDAsMCwxLDEsZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnl0ZXMpOworICAgIHJldHVybiBb
XS5tYXAuY2FsbChieXRlcywgeCA9PiB4LzI1NS4wKTsKK30KKworLy8gR0xFUyAyLjAuMjUgcDYz
Citjb25zdCBGT1JNQVRfSU5GT19XRUJHTDEgPSB7CisgICAgUkdCQTggIDogeyBmaWx0ZXI6IHRy
dWUsIHJlbmRlcjogdHJ1ZSAgICAgLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9CWVRFJ10g
fSwKKyAgICBSR0I4ICAgOiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiB1bmRlZmluZWQsIHVucGFj
azogWydSR0InLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkdCQTQgIDogeyBmaWx0ZXI6IHRy
dWUsIHJlbmRlcjogdW5kZWZpbmVkLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9TSE9SVF80
XzRfNF80J10gfSwKKyAgICBSR0I1X0ExOiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiB1bmRlZmlu
ZWQsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnXSB9LAorICAgIFJH
QjU2NSA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IHVuZGVmaW5lZCwgdW5wYWNrOiBbJ1JHQics
ICdVTlNJR05FRF9TSE9SVF81XzZfNSddIH0sCisgICAgTEE4ICAgIDogeyBmaWx0ZXI6IHRydWUs
IHJlbmRlcjogZmFsc2UgICAgLCB1bnBhY2s6IFsnTFVNSU5BTkNFX0FMUEhBJywgJ1VOU0lHTkVE
X0JZVEUnXSB9LAorICAgIEw4ICAgICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IGZhbHNlICAg
ICwgdW5wYWNrOiBbJ0xVTUlOQU5DRScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBBOCAgICAg
OiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiBmYWxzZSAgICAsIHVucGFjazogWydBTFBIQScsICdV
TlNJR05FRF9CWVRFJ10gfSwKK307CisKKy8vIEdMRVMgMy4wLjYgcDEzMC0xMzIKK2NvbnN0IEZP
Uk1BVF9JTkZPX1dFQkdMMiA9IHsKKyAgICBSOCAgICAgICAgICAgIDogeyByZW5kZXI6IHRydWUg
LCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkVEJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAg
IFI4X1NOT1JNICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazog
WydSRUQnLCAnQllURSddIH0sCisgICAgUkc4ICAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwg
ZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJH
OF9TTk9STSAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydS
RycsICdCWVRFJ10gfSwKKyAgICBSR0I4ICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0
ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQjhf
U05PUk0gICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0In
LCAnQllURSddIH0sCisgICAgUkdCNTY1ICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVy
OiB0cnVlICwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9TSE9SVF81XzZfNSddIH0sCisgICAg
UkdCQTQgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBb
J1JHQkEnLCAnVU5TSUdORURfU0hPUlRfNF80XzRfNCddIH0sCisgICAgUkdCNV9BMSAgICAgICA6
IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdO
RURfU0hPUlRfNV81XzVfMSddIH0sCisgICAgUkdCQTggICAgICAgICA6IHsgcmVuZGVyOiB0cnVl
ICwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfQllURSddIH0sCisg
ICAgUkdCQThfU05PUk0gICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwgdW5wYWNr
OiBbJ1JHQkEnLCAnQllURSddIH0sCisgICAgUkdCMTBfQTIgICAgICA6IHsgcmVuZGVyOiB0cnVl
ICwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfSU5UXzEwXzEwXzEw
XzInXSB9LAorICAgIFJHQjEwX0EyVUkgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFs
c2UsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0lOVF8xMF8xMF8xMF8yJ10gfSwKKyAgICBT
UkdCOCAgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsn
UkdCJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFNSR0I4X0FMUEhBOCAgOiB7IHJlbmRlcjog
dHJ1ZSAsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0JZVEUnXSB9
LAorICAgIFIxNkYgICAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVu
cGFjazogWydSRUQnLCAnRkxPQVQnXSB9LAorICAgIFJHMTZGICAgICAgICAgOiB7IHJlbmRlcjog
ZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSRycsICdGTE9BVCddIH0sCisgICAgUkdC
MTZGICAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JH
QicsICdGTE9BVCddIH0sCisgICAgUkdCQTE2RiAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmls
dGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnRkxPQVQnXSB9LAorICAgIFIzMkYgICAgICAg
ICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnRkxP
QVQnXSB9LAorICAgIFJHMzJGICAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFs
c2UsIHVucGFjazogWydSRycsICdGTE9BVCddIH0sCisgICAgUkdCMzJGICAgICAgICA6IHsgcmVu
ZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdGTE9BVCddIH0sCisg
ICAgUkdCQTMyRiAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNr
OiBbJ1JHQkEnLCAnRkxPQVQnXSB9LAorICAgIFIxMUZfRzExRl9CMTBGOiB7IHJlbmRlcjogZmFs
c2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0InLCAnRkxPQVQnXSB9LAorICAgIFJHQjlf
RTUgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0In
LCAnRkxPQVQnXSB9LAorICAgIFI4SSAgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRl
cjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnQllURSddIH0sCisgICAgUjhVSSAgICAgICAgICA6
IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JFRCcsICdVTlNJR05F
RF9CWVRFJ10gfSwKKyAgICBSMTZJICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6
IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ0JZVEUnXSB9LAorICAgIFIxNlVJICAgICAgICAgOiB7
IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnVU5TSUdORURf
QllURSddIH0sCisgICAgUjMySSAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBm
YWxzZSwgdW5wYWNrOiBbJ1JFRCcsICdCWVRFJ10gfSwKKyAgICBSMzJVSSAgICAgICAgIDogeyBy
ZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ1VOU0lHTkVEX0JZ
VEUnXSB9LAorICAgIFJHOEkgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFs
c2UsIHVucGFjazogWydSRycsICdCWVRFJ10gfSwKKyAgICBSRzhVSSAgICAgICAgIDogeyByZW5k
ZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkcnLCAnVU5TSUdORURfQllURSdd
IH0sCisgICAgUkcxNkkgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwg
dW5wYWNrOiBbJ1JHJywgJ1NIT1JUJ10gfSwKKyAgICBSRzE2VUkgICAgICAgIDogeyByZW5kZXI6
IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkcnLCAnVU5TSUdORURfU0hPUlQnXSB9
LAorICAgIFJHMzJJICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVu
cGFjazogWydSRycsICdJTlQnXSB9LAorICAgIFJHMzJVSSAgICAgICAgOiB7IHJlbmRlcjogdHJ1
ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRycsICdVTlNJR05FRF9JTlQnXSB9LAorICAg
IFJHQjhJICAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazog
WydSR0InLCAnQllURSddIH0sCisgICAgUkdCOFVJICAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwg
ZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBS
R0IxNkkgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsn
UkdCJywgJ1NIT1JUJ10gfSwKKyAgICBSR0IxNlVJICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBm
aWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCJywgJ1VOU0lHTkVEX1NIT1JUJ10gfSwKKyAgICBS
R0IzMkkgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsn
UkdCJywgJ0lOVCddIH0sCisgICAgUkdCMzJVSSAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmls
dGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9JTlQnXSB9LAorICAgIFJHQkE4
SSAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JB
JywgJ0JZVEUnXSB9LAorICAgIFJHQkE4VUkgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRl
cjogZmFsc2UsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQkEx
NkkgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JB
JywgJ1NIT1JUJ10gfSwKKyAgICBSR0JBMTZVSSAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0
ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9TSE9SVCddIH0sCisgICAgUkdC
QTMySSAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JH
QkEnLCAnSU5UJ10gfSwKKyAgICBSR0JBMzJVSSAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0
ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9JTlQnXSB9LAorCisgICAgREVQ
VEhfQ09NUE9ORU5UMTY6ICB7IHJlbmRlcjogJ0RFUFRIX0FUVEFDSE1FTlQnLCBmaWx0ZXI6IGZh
bHNlIH0sCisgICAgREVQVEhfQ09NUE9ORU5UMjQ6ICB7IHJlbmRlcjogJ0RFUFRIX0FUVEFDSE1F
TlQnLCBmaWx0ZXI6IGZhbHNlIH0sCisgICAgREVQVEhfQ09NUE9ORU5UMzJGOiB7IHJlbmRlcjog
J0RFUFRIX0FUVEFDSE1FTlQnLCBmaWx0ZXI6IGZhbHNlIH0sCisgICAgREVQVEgyNF9TVEVOQ0lM
ODogICB7IHJlbmRlcjogJ0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVCcsIGZpbHRlcjogZmFsc2Ug
fSwKKyAgICBERVBUSDMyRl9TVEVOQ0lMODogIHsgcmVuZGVyOiAnREVQVEhfU1RFTkNJTF9BVFRB
Q0hNRU5UJywgZmlsdGVyOiBmYWxzZSB9LAorfTsKKworY29uc3QgT05FX0JZX1RZUEUgPSB7Cisg
ICAgJ0JZVEUnOiAoMTw8NyktMSwKKyAgICAnVU5TSUdORURfQllURSc6ICgxPDw4KS0xLAorICAg
ICdTSE9SVCc6ICgxPDwxNSktMSwKKyAgICAnVU5TSUdORURfU0hPUlQnOiAoMTw8MTYpLTEsCisg
ICAgJ0lOVCc6ICgxPDwzMSktMSwKKyAgICAnVU5TSUdORURfSU5UJzogTWF0aC5wb3coMiwzMikt
MSwKKyAgICAnRkxPQVQnOiAxLAorfTsKKworY29uc3QgQUJWX0JZX1RZUEUgPSB7CisgICAgJ0JZ
VEUnOiBJbnQ4QXJyYXksCisgICAgJ1VOU0lHTkVEX0JZVEUnOiBVaW50OEFycmF5LAorICAgICdT
SE9SVCc6IEludDE2QXJyYXksCisgICAgJ1VOU0lHTkVEX1NIT1JUJzogVWludDE2QXJyYXksCisg
ICAgJ0lOVCc6IEludDMyQXJyYXksCisgICAgJ1VOU0lHTkVEX0lOVCc6IFVpbnQzMkFycmF5LAor
ICAgICdGTE9BVCc6IEZsb2F0MzJBcnJheSwKK307CisKK2Z1bmN0aW9uIHB1c2hCaXRzVW5vcm0o
cHJldiwgYml0Q291bnQsIGZsb2F0VmFsKSB7CisgICAgbGV0IHJldCA9IHByZXYgPDwgYml0Q291
bnQ7CisgICAgcmV0IHw9IGZsb2F0VmFsICogKCgxIDw8IGJpdENvdW50KS0xKTsKKyAgICByZXR1
cm4gcmV0OworfQorCitjb25zdCBDSEFOTkVMU19CWV9GT1JNQVQgPSB7CisgICAgJ1JFRCc6IDEs
CisgICAgJ0xVTUlOQU5DRSc6IDEsCisgICAgJ0FMUEhBJzogMSwKKyAgICAnTFVNSU5BTkNFX0FM
UEhBJzogMiwKKyAgICAnUkcnOiAyLAorICAgICdSR0InOiAzLAorICAgICdSR0JBJzogNCwKK307
CisKK2Z1bmN0aW9uIHRocm93dih2YWwpIHsKKyAgICB0aHJvdyB2YWw7Cit9CisKK2Z1bmN0aW9u
IHBpeGVsRGF0YUZvclVucGFjayhmb3JtYXQsIHR5cGUsIGZsb2F0VmFsKSB7CisgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgJ1VOU0lHTkVEX1NIT1JUXzVfNl81JzogeworICAgICAg
ICAgICAgbGV0IGJpdHMgPSAwOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0
cywgNSwgZmxvYXRWYWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywg
NiwgZmxvYXRWYWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNSwg
ZmxvYXRWYWwpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MTZBcnJheShbYml0c10pOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzQnOiB7CisgICAg
ICAgICAgICBsZXQgYml0cyA9IDA7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShi
aXRzLCA0LCBmbG9hdFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRz
LCA0LCBmbG9hdFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA0
LCBmbG9hdFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA0LCBm
bG9hdFZhbCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQxNkFycmF5KFtiaXRzXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSAnVU5TSUdORURfU0hPUlRfNV81XzVfMSc6IHsKKyAgICAg
ICAgICAgIGxldCBiaXRzID0gMDsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJp
dHMsIDUsIGZsb2F0VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMs
IDUsIGZsb2F0VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUs
IGZsb2F0VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDEsIGZs
b2F0VmFsKTsgLy8gT2ssIHNpbGx5IGZvciAxIGJpdCBoZXJlLgorICAgICAgICAgICAgcmV0dXJu
IG5ldyBVaW50MTZBcnJheShbYml0c10pOworICAgICAgICB9CisgICAgICAgIGNhc2UgJ1VOU0lH
TkVEX0lOVF8xMF8xMF8xMF8yJzogeworICAgICAgICAgICAgbGV0IGJpdHMgPSAwOworICAgICAg
ICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgMTAsIGZsb2F0VmFsKTsKKyAgICAgICAg
ICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDEwLCBmbG9hdFZhbCk7CisgICAgICAgICAg
ICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCAxMCwgZmxvYXRWYWwpOworICAgICAgICAgICAg
Yml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgMiwgZmxvYXRWYWwpOyAvLyAyIGJpdHMgaXNuJ3Qg
bXVjaCBtb3JlIHVzZWZ1bAorICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MzJBcnJheShbYml0
c10pOworICAgICAgICB9CisgICAgfQorCisgICAgY29uc3QgY2hhbm5lbHMgPSBDSEFOTkVMU19C
WV9GT1JNQVRbZm9ybWF0XSB8fCB0aHJvd3YoZm9ybWF0KTsKKyAgICBjb25zdCBvbmUgPSBPTkVf
QllfVFlQRVt0eXBlXSB8fCB0aHJvd3YoJzI0MCcsIHR5cGUpOworICAgIGNvbnN0IGFidlR5cGUg
PSBBQlZfQllfVFlQRVt0eXBlXSB8fCB0aHJvd3YoJzI0MScsIHR5cGUpOworCisgICAgY29uc3Qg
dmFsID0gZmxvYXRWYWwgKiBvbmU7CisgICAgY29uc3QgYXJyID0gW107CisgICAgZm9yIChjb25z
dCBpIG9mIHJhbmdlKGNoYW5uZWxzKSkgeworICAgICAgICBhcnIucHVzaCh2YWwpOworICAgIH0K
KyAgICByZXR1cm4gbmV3IGFidlR5cGUoYXJyKTsKK30KKworZnVuY3Rpb24gZXhwZWN0KG5hbWUs
IHdhcywgZXhwZWN0ZWQpIHsKKyAgICBsZXQgdGV4dCA9IGAke25hbWV9IHdhcyAke3dhc31gOwor
ICAgIGNvbnN0IGNvbmQgPSB3YXMgPT0gZXhwZWN0ZWQ7CisgICAgaWYgKCFjb25kKSB7CisgICAg
ICAgIHRleHQgKz0gYCwgYnV0IGV4cGVjdGVkICR7ZXhwZWN0ZWR9YDsKKyAgICB9CisgICAgZXhw
ZWN0VHJ1ZShjb25kLCB0ZXh0KTsKK30KKworZnVuY3Rpb24gdG9UeXBlaXNoKHNpemVkRm9ybWF0
KSB7CisgICAgaWYgKHNpemVkRm9ybWF0LmVuZHNXaXRoKCdVSScpKSB7CisgICAgICAgIHJldHVy
biAnaW50JzsKKyAgICB9IGVsc2UgaWYgKHNpemVkRm9ybWF0LmVuZHNXaXRoKCdJJykpIHsKKyAg
ICAgICAgcmV0dXJuICd1aW50JzsKKyAgICB9CisgICAgcmV0dXJuICdmbG9hdCc7Cit9CisKK2Nh
bGwoYXN5bmMgKCkgPT4geworICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19BTElHTk1FTlQs
IDEpOworCisgICAgbGV0IGZvcm1hdExpc3QgPSBGT1JNQVRfSU5GT19XRUJHTDE7CisgICAgaWYg
KHd0dS5pc1dlYkdMMihnbCkpIHsKKyAgICAgICAgZm9ybWF0TGlzdCA9IEZPUk1BVF9JTkZPX1dF
QkdMMjsKKyAgICB9CisgICAgZm9yIChjb25zdCBbc2l6ZWRGb3JtYXQsIGluZm9dIG9mIE9iamVj
dC5lbnRyaWVzKGZvcm1hdExpc3QpKSB7CisgICAgICAgIGF3YWl0IHd0dS5kaXNwYXRjaFByb21p
c2UoKTsKKyAgICAgICAgZGVidWcoYGApOworICAgICAgICBkZWJ1ZyhgJHtzaXplZEZvcm1hdH06
ICR7SlNPTi5zdHJpbmdpZnkoaW5mbyl9YCk7CisKKyAgICAgICAgY29uc3QgdHlwZWlzaCA9IHRv
VHlwZWlzaChzaXplZEZvcm1hdCk7CisKKyAgICAgICAgLy8gIHwtLS18LS0tfAorICAgICAgICAv
LyAgfCAwIHwgMSB8CisgICAgICAgIC8vICB8LS0tfC0tLXwKKyAgICAgICAgLy8gMHwgMCB8IDAg
fAorICAgICAgICAvLyAgfC0tLXwtLS18CisgICAgICAgIC8vICAgIDAKKyAgICAgICAgY29uc3Qg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOworICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisKKyAg
ICAgICAgaWYgKGdsLnRleFN0b3JhZ2UyRCkgeworICAgICAgICAgICAgZ2wudGV4U3RvcmFnZTJE
KGdsLlRFWFRVUkVfMkQsIDEsIGdsW3NpemVkRm9ybWF0XSwgMiwgMik7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW2luZm8u
dW5wYWNrWzBdXSwKKyAgICAgICAgICAgICAgICAyLCAyLCAwLCBnbFtpbmZvLnVucGFja1swXV0s
IGdsW2luZm8udW5wYWNrWzFdXSwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5m
by51bnBhY2spIHsKKyAgICAgICAgICAgIGNvbnN0IG9uZSA9IHBpeGVsRGF0YUZvclVucGFjaygu
Li5pbmZvLnVucGFjaywgMS4wKTsKKyAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgb25lLmNv
bnN0cnVjdG9yKG9uZS5sZW5ndGgqNCk7CisgICAgICAgICAgICBkYXRhLnNldChvbmUsIG9uZS5s
ZW5ndGgqMyk7CisgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IDAsMCwKKyAgICAgICAgICAgICAgICAyLDIsIGdsW2luZm8udW5wYWNrWzBdXSwgZ2xbaW5mby51
bnBhY2tbMV1dLCBkYXRhKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGluZm8ucmVu
ZGVyIHx8IHRocm93dihgJHtzaXplZEZvcm1hdH0gd2l0aG91dCB1bnBhY2sgb3IgcmVuZGVyYCk7
CisgICAgICAgIH0KKworICAgICAgICAvLyAtCisgICAgICAgIC8vIGNvbG9yLXJlbmRlcmFibGUg
dGVzdAorCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGZiID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKTsKKyAgICAgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
ZmIpOworICAgICAgICAgICAgbGV0IGF0dGFjaCA9IGluZm8ucmVuZGVyIHx8IHRydWU7CisgICAg
ICAgICAgICBjb25zdCBpc0NvbG9yID0gKGF0dGFjaCA9PT0gdHJ1ZSk7CisgICAgICAgICAgICBp
ZiAoaXNDb2xvcikgeworICAgICAgICAgICAgICAgIGF0dGFjaCA9ICdDT0xPUl9BVFRBQ0hNRU5U
MCc7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVy
VGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5URVhUVVJFXzJELCBEVU1NWV9DT0xP
UiwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUy
RChnbC5GUkFNRUJVRkZFUiwgZ2xbYXR0YWNoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7CisgICAgICAgICAgICBjb25zdCBzdGF0
dXMgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKKyAgICAgICAg
ICAgIGNvbnN0IHdhc1JlbmRlcmFibGUgPSAoc3RhdHVzID09IGdsLkZSQU1FQlVGRkVSX0NPTVBM
RVRFKTsKKyAgICAgICAgICAgIGlmIChpbmZvLnJlbmRlciA9PT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgICAgICAgICAgZGVidWcoYE5vbi1ub3JtYXRpdmU6IGNvbG9yLXJlbmRlcmFibGUgd2FzICR7
d2FzUmVuZGVyYWJsZX1gKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ZXhwZWN0KCdjb2xvci1yZW5kZXJhYmxlJywgd2FzUmVuZGVyYWJsZSwgISFpbmZvLnJlbmRlcik7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAod2FzUmVuZGVyYWJsZSkgeworICAgICAg
ICAgICAgICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMCk7CisgICAgICAgICAgICAgICAgZ2wuY2xl
YXJEZXB0aCgwKTsKKyAgICAgICAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklU
IHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgICAgICAgICAgICAgICAgZ2wuZW5hYmxlKGdsLlND
SVNTT1JfVEVTVCk7CisgICAgICAgICAgICAgICAgZ2wuc2Npc3NvcigxLDEsMSwxKTsKKyAgICAg
ICAgICAgICAgICBnbC5jbGVhckNvbG9yKDEsMSwxLDEpOworICAgICAgICAgICAgICAgIGdsLmNs
ZWFyRGVwdGgoMSk7CisgICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgICAgICAgICAgICAgIGdsLmRpc2FibGUoZ2wu
U0NJU1NPUl9URVNUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdsLmRlbGV0ZUZyYW1l
YnVmZmVyKGZiKTsKKyAgICAgICAgICAgIGlmICghd2FzUmVuZGVyYWJsZSAmJiAhaW5mby51bnBh
Y2spIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdObyB1bnBhY2sgcHJvdmlkZWQgYW5k
ICF3YXNSZW5kZXJhYmxlLCBza2lwcGluZyBmaWx0ZXJpbmcgc3VidGVzdC4uLicpOworICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
Ly8gLQorICAgICAgICAvLyBmaWx0ZXJhYmxlIHRlc3QKKworICAgICAgICBjb25zdCBwcm9nID0g
VEVYX0ZJTFRFUl9QUk9HX0JZX1RZUEVJU0hbdHlwZWlzaF07CisgICAgICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMCk7
CisgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7CisgICAg
ICAgIGdsLnZpZXdwb3J0KDAsMCwxLDEpOworICAgICAgICBjb25zdCB2ID0gcnVuUGl4ZWxQcm9n
cmFtKGdsLCBwcm9nKTsKKyAgICAgICAgaWYgKHNpemVkRm9ybWF0ICE9ICdBOCcpIHsKKyAgICAg
ICAgICAgIHZbM10gPSAwOyAvLyBJbmNvbXBsZXRlIG5vLWFscGhhIGZvcm1hdHMgcHV0IDEgaW4g
YWxwaGEuCisgICAgICAgIH0KKyAgICAgICAgY29uc3Qgd2FzRmlsdGVyYWJsZSA9IHYuc29tZSh4
ID0+ICEheCk7CisgICAgICAgIGV4cGVjdCgnZmlsdGVyYWJsZScsIHdhc0ZpbHRlcmFibGUsIGlu
Zm8uZmlsdGVyKTsKKyAgICB9CisKKyAgICBmaW5pc2hUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMDg2OTZlOThhOGVjZmVkNDlmM2I2YWU3Y2Y5ZTg3Y2VlZmZhNWFkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFu
Y2UgVGVzdHMgZm9yIE9mZnNjcmVlbkNhbnZhczwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgotPGltZyBpZD0iaW1nIiBzdHlsZT0i
ZGlzcGxheTpub25lOyI+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdlYkdM
VGVzdFV0aWxzOwotCi0vLyBDaGVja3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlvbi4K
LWZ1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihmdW5jKSB7Ci0gIHZhciBoYWRFeGNlcHRpb24gPSBm
YWxzZTsKLSAgdHJ5IHsKLSAgICBmdW5jKCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGhhZEV4Y2Vw
dGlvbiA9IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGhhZEV4Y2VwdGlvbjsKLX0KLQotdmFyIGRlZmF1
bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy9v
cGVuZ2xfbG9nby5qcGciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy9v
cGVuZ2xfbG9nby5qcGciOwotCi12YXIgaW1nRG9tYWluOwotdmFyIHBhZ2VEb21haW47Ci0KLWZ1
bmN0aW9uIGltYWdlTG9hZGVkKGltZykgewotICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3Vy
ZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvciBPZmZzY3JlZW5DYW52YXMgZm9sbG93IHByb3Bl
ciBzYW1lLW9yaWdpbiByZXN0cmljdGlvbnMuIik7Ci0KLSAgaWYgKCF3aW5kb3cuT2Zmc2NyZWVu
Q2FudmFzKSB7Ci0gICAgdGVzdFBhc3NlZCgiTm8gT2Zmc2NyZWVuQ2FudmFzIHN1cHBvcnQiKTsK
LSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgYXNzZXJ0TXNnKGltZy53
aWR0aCA+IDAgJiYgaW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIpOwotICBpbWdEb21h
aW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3dHUuZ2V0SG9zdChpbWcuc3JjKSk7Ci0gIHBhZ2VEb21h
aW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3aW5kb3cubG9jYXRpb24uaG9zdCk7Ci0gIGFzc2VydE1z
ZyhpbWdEb21haW4gIT0gcGFnZURvbWFpbiwKLSAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsg
aW1nRG9tYWluICsgIikgYW5kIHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBu
b3QgdGhlIHNhbWUuIik7Ci0KLSAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgewot
ICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9Owot
ICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVy
biBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
MCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAg
ZnVuY3Rpb24gbWFrZVJlYWRQaXhlbHMoZ2wpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0g
ICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAs
IDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQot
Ci0gIHZhciBvZmZzY3JlZW5jYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7Ci0g
IHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQob2Zmc2NyZWVuY2FudmFzKTsKLQotICBkZWJ1
ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdl
IGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1Niwg
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRF
eGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleEltYWdl
MkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAg
YXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0g
ICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQg
dGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29u
dGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNhbnZhcy4iKTsKLSAgYXNzZXJ0
TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJy
ZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRv
IGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBjYW52YXMuIik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQg
YW4gYXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVkIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9u
LiIpOwotICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwot
ICB2YXIgY3R4MmQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdl
KGltZywgMCwgMCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQo
Z2wsIGNhbnZhcykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNs
ZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2Vk
RXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0
ZXhTdWJJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4
Y2VwdGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0
byB3b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1
c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVs
cyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBv
cmlnaW4gb2YgV2ViR0wgY2FudmFzLiIpOwotCi0gIC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRl
by4KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KLQotICBmaW5pc2hUZXN0
KCk7Ci19Ci0KLShhc3luYyBmdW5jdGlvbigpIHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2ltZycpOwotICB0cnkgewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91
dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1Vy
bCkpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVk
ICgke2V9KS5gKTsKLSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGltYWdl
TG9hZGVkKGltZyk7Ci19KSgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmI3ZjU3MjE3MzVmMDE3MzRhN2UxZDZiZTM5M2NlMDdhNjEyYWYwMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICsw
LDAgQEAKLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi1V
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPldlYkdMIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzMSI+PC9jYW52YXM+Ci08
Y2FudmFzIGlkPSJjYW52YXMyIj48L2NhbnZhcz4KLTxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3Bs
YXk6bm9uZTsiPgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RV
dGlsczsKLQotLy8gQ2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1mdW5j
dGlvbiBjYXVzZWRFeGNlcHRpb24oZnVuYykgewotICB2YXIgaGFkRXhjZXB0aW9uID0gZmFsc2U7
Ci0gIHRyeSB7Ci0gICAgZnVuYygpOwotICB9IGNhdGNoKGUpIHsKLSAgICBoYWRFeGNlcHRpb24g
PSB0cnVlOwotICB9Ci0gIHJldHVybiBoYWRFeGNlcHRpb247Ci19Ci0KLXZhciBkZWZhdWx0SW1n
VXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3Blbmds
X2xvZ28uanBnIjsKLXZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3Blbmds
X2xvZ28uanBnIjsKLQotdmFyIGltZ0RvbWFpbjsKLXZhciBwYWdlRG9tYWluOwotdmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZDsKLQotZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1nKSB7Ci0gIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IHByb3Bl
ciBzYW1lLW9yaWdpbiByZXN0cmljdGlvbnMuIik7Ci0KLSAgYXNzZXJ0TXNnKGltZy53aWR0aCA+
IDAgJiYgaW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIpOwotICBpbWdEb21haW4gPSB3
dHUuZ2V0QmFzZURvbWFpbih3dHUuZ2V0SG9zdChpbWcuc3JjKSk7Ci0gIHBhZ2VEb21haW4gPSB3
dHUuZ2V0QmFzZURvbWFpbih3aW5kb3cubG9jYXRpb24uaG9zdCk7Ci0gIGFzc2VydE1zZyhpbWdE
b21haW4gIT0gcGFnZURvbWFpbiwKLSAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsgaW1nRG9t
YWluICsgIikgYW5kIHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBub3QgdGhl
IHNhbWUuIik7Ci0KLSAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgewotICAgIHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0K
LSAgZnVuY3Rpb24gbWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rp
b24gbWFrZVJlYWRQaXhlbHMoZ2wpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2
YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEs
IDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQotCi0gIGZ1
bmN0aW9uIG1ha2VUb0RhdGFVUkwoY2FudmFzKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewot
ICAgICAgdmFyIGRhdGEgPSBjYW52YXMudG9EYXRhVVJMKCk7Ci0gICAgfQotICB9Ci0KLSAgdmFy
IGNhbnZhczEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMSIpOwotICB2YXIgZ2wg
PSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhczEpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWco
ImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9y
aWdpbiB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBudWxsKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4
SW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9y
aWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2Vk
RXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhT
dWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24u
Iik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRp
bnVlIHRvIHdvcmsgYWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRF
eGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNo
b3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdp
biBvZiBXZWJHTCBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VU
b0RhdGFVUkwoY2FudmFzMSkpLAotICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0
aW9uIGJ5IHRvRGF0YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmln
aW4gY2xlYW4uIik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQg
YSB0YWludGVkIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgY2FudmFzMiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZh
czIuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gIGFz
c2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMyKSksCi0gICAgICAg
ICAgICAic2hvdWxkIHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIE5PTiBvcmlnaW4g
Y2xlYW4gY2FudmFzLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFn
ZTJEKGdsLCBjYW52YXMyKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmln
aW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhj
YXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGNhbnZhczIpKSwKLSAgICAgICAg
ICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRo
cm93IGV4Y2VwdGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGFuZCB0
b0RhdGFVUkwgY29udGludWUgdG8gd29yayBhZ2FpbnN0IHRoaXMgY2FudmFzLiIpOwotICBhc3Nl
cnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAg
InJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUg
dG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRF
eGNlcHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMxKSksCi0gICAgICAgICAgICAic2hvdWxkIG5v
dCB0aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBXZWJHTCBjYW52YXMsIHdoaWNoIHNo
b3VsZCBzdGF5IG9yaWdpbiBjbGVhbi4iKTsKLQotICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlk
ZW8uCi0gIC8vIFRPRE86IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCi0KLSAgZGVidWcoIiIp
OwotICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICBzaG91bGRCZVRydWUoInN1Y2Nlc3Nm
dWxseVBhcnNlZCIpOwotICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09N
UExFVEU8L3NwYW4+Jyk7Ci0gIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCk7Ci19Ci0KLShhc3lu
YyBmdW5jdGlvbigpIHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lt
ZycpOwotICB0cnkgewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENyb3Nz
T3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOwotICB9IGNhdGNo
IChlKSB7Ci0gICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsKLSAg
ICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGltYWdlTG9hZGVkKGltZyk7Ci19
KSgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZWI5OGIxNDA1NmQyMGFjODc1Nzg2Nzc4MTg0NmZlYmVlMDY0NmJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbApA
QCAtMCwwICsxLDE2NCBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorCis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICAg
IDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKyAgICA8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2
ZXJpZmllcyBjb3JyZWN0IGNoYW5uZWwgbWFwcGluZyBvZiBkaWZmZXJlbnQgUE5HIGltYWdlIHR5
cGVzLiIpOworCitjb25zdCB0ZXN0RGF0YSA9IHsKKyAgICAiR3JheXNjYWxlIjogeworICAgICAg
ICBzcmM6IFsKKyAgICAgICAgICAgIC8vIFsweDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2Uv
cG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBQUFBQUE2ZnB0VkFB
QUFDa2xFUVZRSTEyTndBQUFBUWdCQmc3bnNyUUFBQUFCSlJVNUVya0pnZ2c9PSIsCisgICAgICAg
ICAgICAvLyBbMHg0MDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkVBQUFBQUJxN2tjV0FBQUFDMGxFUVZRSTEyTndj
QUFBQU1NQWdVZW5MRUlBQUFBQVNVVk9SSzVDWUlJPSIKKyAgICAgICAgXSwKKyAgICAgICAgZXhw
ZWN0YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBbMHgwMCwgMHgwMCwgMHgwMCwgMHhG
Rl0sIGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAs
IDB4NDAsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0
MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIlJHQkEiIH0sCisgICAgICAgICAgICB7IGNv
bG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRSIgfSwKKyAg
ICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweEZGXSwgZm9ybWF0OiAiTFVN
SU5BTkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4MDAsIDB4MDAs
IDB4RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDogIlI4IiB9LAorICAgICAgICAg
ICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRyIsIGludGVy
bmFsZm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKyAgICB9LAorICAgICJHcmF5c2NhbGUgQWxw
aGEiOiB7CisgICAgICAgIHNyYzogWworICAgICAgICAgICAgLy8gWzB4NDAsIDB4ODBdCisgICAg
ICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFB
RUFBQUFCQ0FRQUFBQzFIQXdDQUFBQUMwbEVRVlFJMTJOd2FBQUFBUU1Bd1V4WlRsNEFBQUFBU1VW
T1JLNUNZSUk9IiwKKyAgICAgICAgICAgIC8vIFsweDQwNDAsIDB4ODA4MF0KKyAgICAgICAgICAg
ICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJF
QVFBQUFEbGpOQkJBQUFBRFVsRVFWUUkxMk53Y0dob0FBQURSUUdCb3hzc1BnQUFBQUJKUlU1RXJr
SmdnZz09IgorICAgICAgICBdLAorICAgICAgICBleHBlY3RhdGlvbnM6IFsKKyAgICAgICAgICAg
IHsgY29sb3I6IFsweDAwLCAweDAwLCAweDAwLCAweDgwXSwgZm9ybWF0OiAiQUxQSEEiIH0sCisg
ICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIlJH
QiIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweDgwXSwgZm9y
bWF0OiAiUkdCQSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAw
eEZGXSwgZm9ybWF0OiAiTFVNSU5BTkNFIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAs
IDB4NDAsIDB4NDAsIDB4ODBdLCBmb3JtYXQ6ICJMVU1JTkFOQ0VfQUxQSEEiIH0sCisgICAgICAg
ICAgICB7IGNvbG9yOiBbMHg0MCwgMHgwMCwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJFRCIsIGlu
dGVybmFsZm9ybWF0OiAiUjgiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwg
MHgwMCwgMHhGRl0sIGZvcm1hdDogIlJHIiwgaW50ZXJuYWxmb3JtYXQ6ICJSRzgiIH0KKyAgICAg
ICAgXQorICAgIH0sCisgICAgIkNvbG9yIjogeworICAgICAgICBzcmM6IFsKKyAgICAgICAgICAg
IC8vIFsweEJGLCAweDdGLCAweEZGXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2
NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBSUFBQUNRZDFQZUFBQUFERWxFUVZR
STEyUFlYLzhmQUFRK0FqNUJxd3ByQUFBQUFFbEZUa1N1UW1DQyIsCisgICAgICAgICAgICAvLyBb
MHhCRkJGLCAweDdGN0YsIDB4RkZGRl0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNl
NjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJFQUlBQUFEQTU0K2RBQUFBRDBsRVFW
UUkxMlBZdjcrKy92OS9BQTZ5Qkh2dGJnQk5BQUFBQUVsRlRrU3VRbUNDIgorICAgICAgICBdLAor
ICAgICAgICBleHBlY3RhdGlvbnM6IFsKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDAwLCAweDAw
LCAweDAwLCAweEZGXSwgZm9ybWF0OiAiQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBb
MHhCRiwgMHg3RiwgMHhGRiwgMHhGRl0sIGZvcm1hdDogIlJHQiIgfSwKKyAgICAgICAgICAgIHsg
Y29sb3I6IFsweEJGLCAweDdGLCAweEZGLCAweEZGXSwgZm9ybWF0OiAiUkdCQSIgfSwKKyAgICAg
ICAgICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweEZGXSwgZm9ybWF0OiAiTFVNSU5B
TkNFIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4QkYsIDB4QkYsIDB4RkZdLCBm
b3JtYXQ6ICJMVU1JTkFOQ0VfQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwg
MHgwMCwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJFRCIsIGludGVybmFsZm9ybWF0OiAiUjgiIH0s
CisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwgMHg3RiwgMHgwMCwgMHhGRl0sIGZvcm1hdDog
IlJHIiwgaW50ZXJuYWxmb3JtYXQ6ICJSRzgiIH0KKyAgICAgICAgXQorCisgICAgfSwKKyAgICAi
Q29sb3IgQWxwaGEiOiB7CisgICAgICAgIHNyYzogWworICAgICAgICAgICAgLy8gWzB4QkYsIDB4
N0YsIDB4RkYsIDB4NDBdCisgICAgICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FZQUFBQWZGY1NKQUFBQURVbEVRVlFJMTJQWVgv
L2ZBUUFHdkFKK3hQTXdLUUFBQUFCSlJVNUVya0pnZ2c9PSIsCisgICAgICAgICAgICAvLyBbMHhC
RkJGLCAweDdGN0YsIDB4RkZGRiwgMHg0MDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5n
O2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkVBWUFBQUJQaFJqS0FBQUFF
VWxFUVZRSTEyUFl2NysrL3Y5L0J3Y0FHR2dFKzhZTjRYVUFBQUFBU1VWT1JLNUNZSUk9IgorICAg
ICAgICBdLAorICAgICAgICBleHBlY3RhdGlvbnM6IFsKKyAgICAgICAgICAgIHsgY29sb3I6IFsw
eDAwLCAweDAwLCAweDAwLCAweDQwXSwgZm9ybWF0OiAiQUxQSEEiIH0sCisgICAgICAgICAgICB7
IGNvbG9yOiBbMHhCRiwgMHg3RiwgMHhGRiwgMHhGRl0sIGZvcm1hdDogIlJHQiIgfSwKKyAgICAg
ICAgICAgIHsgY29sb3I6IFsweEJGLCAweDdGLCAweEZGLCAweDQwXSwgZm9ybWF0OiAiUkdCQSIg
fSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweEZGXSwgZm9ybWF0
OiAiTFVNSU5BTkNFIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4QkYsIDB4QkYs
IDB4NDBdLCBmb3JtYXQ6ICJMVU1JTkFOQ0VfQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9y
OiBbMHhCRiwgMHgwMCwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJFRCIsIGludGVybmFsZm9ybWF0
OiAiUjgiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwgMHg3RiwgMHgwMCwgMHhGRl0s
IGZvcm1hdDogIlJHIiwgaW50ZXJuYWxmb3JtYXQ6ICJSRzgiIH0KKyAgICAgICAgXQorICAgIH0K
K307CisKK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3QgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCk7CisKK3d0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CitnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCBnbC5jcmVhdGVUZXh0dXJlKCkpOworCisoYXN5bmMgKCkgPT4gewor
ICAgIGZvciAoY29uc3QgW3R5cGUsIHRlc3RDYXNlXSBvZiBPYmplY3QuZW50cmllcyh0ZXN0RGF0
YSkpIHsKKyAgICAgICAgaWYgKHRlc3RDYXNlLnNyYy5sZW5ndGggIT0gMikgdGhyb3cgbmV3IEVy
cm9yKCd0ZXN0Q2FzZS5zcmMubGVuZ3RoICE9IDInKTsKKyAgICAgICAgbGV0IGltYWdlcyA9IHRl
c3RDYXNlLnNyYy5tYXAoc3JjID0+IGxvYWRJbWFnZShzcmMpKTsKKyAgICAgICAgaW1hZ2VzID0g
YXdhaXQgUHJvbWlzZS5hbGwoaW1hZ2VzKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBk
ZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKGBQTkcgaW1hZ2UgdHlwZSAke3R5cGV9IHdpdGggUkdC
QSB2YWx1ZXMgb2YgJHt0ZXN0Q2FzZS5leHBlY3RhdGlvbnNbMl0uY29sb3J9YCk7CisgICAgICAg
IGxldCBmb3JtYXRzID0gdGVzdENhc2UuZXhwZWN0YXRpb25zOworICAgICAgICBpZiAoIXd0dS5p
c1dlYkdMMihnbCkpIHsKKyAgICAgICAgICAgIGZvcm1hdHMgPSBmb3JtYXRzLmZpbHRlcigoZikg
PT4gIWYuaW50ZXJuYWxmb3JtYXQpOworICAgICAgICB9CisgICAgICAgIGZvciAoY29uc3QgZiBv
ZiBmb3JtYXRzKSB7CisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICBkZWJ1Zyhg
R0wgZm9ybWF0OiAke2YuZm9ybWF0fWApOworCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVjayhk
YXRhLCBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgICAgIGRlYnVnKGBVcGxvYWQgJHtkZXNj
cmlwdGlvbn1gKTsKKyAgICAgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKAorICAgICAgICAgICAg
ICAgICAgICBnbC5URVhUVVJFXzJELAorICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAg
ICAgICAgICAgICBnbFtmLmludGVybmFsZm9ybWF0IHx8IGYuZm9ybWF0XSwKKyAgICAgICAgICAg
ICAgICAgICAgZ2xbZi5mb3JtYXRdLAorICAgICAgICAgICAgICAgICAgICBnbC5VTlNJR05FRF9C
WVRFLAorICAgICAgICAgICAgICAgICAgICBkYXRhCisgICAgICAgICAgICAgICAgKTsKKyAgICAg
ICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgICAg
ICAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKKyAgICAgICAgICAgICAgICB3
dHUuY2hlY2tDYW52YXMoZ2wsIGYuY29sb3IsIHVuZGVmaW5lZCwgMSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGNoZWNrKGltYWdlc1swXS5pbWFnZSwgIjgtYml0IFBORyBmcm9tIElt
YWdlIik7CisgICAgICAgICAgICBjaGVjayhpbWFnZXNbMV0uaW1hZ2UsICIxNi1iaXQgUE5HIGZy
b20gSW1hZ2UiKTsKKworICAgICAgICAgICAgaWYgKGltYWdlc1swXS5iaXRtYXApIHsKKyAgICAg
ICAgICAgICAgICBjaGVjayhpbWFnZXNbMF0uYml0bWFwLCAiOC1iaXQgUE5HIGZyb20gSW1hZ2VC
aXRtYXAiKTsKKyAgICAgICAgICAgICAgICBjaGVjayhpbWFnZXNbMV0uYml0bWFwLCAiMTYtYml0
IFBORyBmcm9tIEltYWdlQml0bWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisgICAgZmluaXNoVGVzdCgpOworfSkoKTsKKworYXN5bmMgZnVuY3Rpb24gbG9hZEltYWdlKHNy
YykgeworICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpOworICAgIGltZy5zcmMgPSBzcmM7Cisg
ICAgYXdhaXQgaW1nLmRlY29kZSgpOworICAgIGNvbnN0IHJldCA9IHsgaW1hZ2U6IGltZyB9Owor
ICAgIGlmIChzZWxmLmNyZWF0ZUltYWdlQml0bWFwKSB7CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICByZXQuYml0bWFwID0gYXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAoaW1nLCB7CisgICAgICAg
ICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogIm5vbmUiLAorICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0gY2F0Y2gge30KKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdmlkZW8tcm90YXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvdmlkZW8tcm90YXRpb24uaHRtbAppbmRleCBiNmQyOGYxNWRjMGJmM2I1ZjAzYzQyOGI0NGYz
ZDBjYzU5NTc2NmM4Li5iMzM2ZWQ2ZWRlZjE4YjRiN2UzZjIwYjhkNGJjNTMxMTY0NmI5Y2NjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3ZpZGVvLXJvdGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy92aWRlby1yb3RhdGlvbi5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCEtLQotQ29weXJp
Z2h0IChjKSAyMDIwIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK0NvcHlyaWdodCAoYykgMjAyMSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCiAtLT4KQEAgLTI5LDcgKzI5LDkgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCiAgICAgICAgIGxldCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsK
ICAgICAgICAgbGV0IHByb2dyYW0gPSB0aXUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wsIGdsLlJHQkEp
OwogICAgICAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiLi4vLi4vLi4vcmVzb3VyY2VzLyI7Ci0g
ICAgICAgIGNvbnN0IHRvbGVyYW5jZSA9IDEwOworICAgICAgICBjb25zdCBtcDRUb2xlcmFuY2Ug
PSAxMDsKKyAgICAgICAgLy8gU2lnbmlmaWNhbnRseSBoaWdoZXIgdG9sZXJhbmNlIG5lZWRlZCBm
b3IgVlA5IHRlc3RzLiBodHRwOi8vY3JidWcuY29tLzEyMTkwMTUgLgorICAgICAgICBjb25zdCB2
cDlUb2xlcmFuY2UgPSA0NTsKIAogICAgICAgICBjb25zdCBleHBlY3RlZENvbG9ycyA9IHsKICAg
ICAgICAgICAgIHRvcDogeyBsb2NhdGlvbjogWzAuNSwgMC4yNV0sIGNvbG9yOiBbMjU1LCAwLCAw
XSB9LApAQCAtNDMsNyArNDUsNyBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAg
ICAgICAgICAgIGJ1ZmZlcmVkTG9nVG9Db25zb2xlKHN0cik7CiAgICAgICAgIH0KIAotICAgICAg
ICBmdW5jdGlvbiBjaGVja1BpeGVscygpIHsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tQaXhlbHMo
dG9sZXJhbmNlKSB7CiAgICAgICAgICAgICBmb3IgKGxldCBwbGFjZSBpbiBleHBlY3RlZENvbG9y
cykgewogICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IGV4cGVjdGVkQ29sb3JzW3BsYWNlXTsK
ICAgICAgICAgICAgICAgICBsZXQgbG9jID0gY29sb3IubG9jYXRpb247CkBAIC02NCw3ICs2Niw3
IEBAIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0KIAotICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0VmlkZW9FbGVtZW50KGZpbGVuYW1l
KSB7CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RWaWRlb0VsZW1lbnQoZmlsZW5hbWUsIGlz
VlA5KSB7CiAgICAgICAgICAgICBjb25zdCB2aWRlbyA9IGF3YWl0IGxvYWRWaWRlb0VsZW1lbnQo
ZmlsZW5hbWUpOwogCiAgICAgICAgICAgICBvdXRwdXQoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKQEAgLTczLDgwICs3
NSw4NyBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICAgICAgICAgIG91dHB1
dCgiICBUZXN0aW5nIHRleEltYWdlMkQiKTsKICAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdmlkZW8p
OwogICAgICAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1
XSk7Ci0gICAgICAgICAgICBjaGVja1BpeGVscygpOworICAgICAgICAgICAgY29uc3QgbG9jYWxU
b2xlcmFuY2UgPSBpc1ZQOSA/IHZwOVRvbGVyYW5jZSA6IG1wNFRvbGVyYW5jZTsKKyAgICAgICAg
ICAgIGNoZWNrUGl4ZWxzKGxvY2FsVG9sZXJhbmNlKTsKIAogICAgICAgICAgICAgb3V0cHV0KCIg
IFRlc3RpbmcgdGV4U3ViSW1hZ2UyRCIpOwogICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCB2aWRlby52aWRlb1dpZHRoLCB2aWRlby52aWRlb0hlaWdo
dCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CiAgICAgICAgICAgICBnbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIHZpZGVvKTsKICAgICAgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwg
WzAsIDAsIDAsIDI1NV0pOwotICAgICAgICAgICAgY2hlY2tQaXhlbHMoKTsKKyAgICAgICAgICAg
IGNoZWNrUGl4ZWxzKGxvY2FsVG9sZXJhbmNlKTsKICAgICAgICAgfQogCiAgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIHJ1bigpIHsKLSAgICAgICAgICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgndmlkZW8nKTsKLSAgICAgICAgICAgIGlmICghdmlkZW8uY2FuUGxheVR5cGUp
IHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJ2aWRlby5jYW5QbGF5VHlwZSByZXF1aXJl
ZCBtZXRob2QgbWlzc2luZyIpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgbGV0IHN1cHBvcnRzX2gyNjQgPSAhIXZpZGVvLmNhblBsYXlUeXBl
KCd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MkUwMUUiJykucmVwbGFjZSgvbm8vLCAnJyk7Ci0g
ICAgICAgICAgICBsZXQgc3VwcG9ydHNfdnA5ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8v
bXA0OyBjb2RlY3M9InZwMDkuMDAuMTAuMDgiJykucmVwbGFjZSgvbm8vLCAnJyk7Ci0gICAgICAg
ICAgICBpZiAoIXN1cHBvcnRzX2gyNjQgJiYgIXN1cHBvcnRzX3ZwOSkgewotICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk5vIHN1cHBvcnRlZCB2aWRlbyB0eXBlcy4iKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxldCB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRoZSBk
ZWZhdWx0IHRleHR1cmUgdW5pdCAwCi0gICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOwotICAgICAgICAgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwot
ICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01J
Tl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICAg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wu
Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLQotICAgICAgICAgICAg
Ly8gVGhlc2UgZmlsZXMgd2VyZSBjcmVhdGVkIGJ5IGNvbnZlcnRpbmcgZXhpZi1vcmllbnRhdGlv
bi10ZXN0LTEtbm9ybWFsLmpwZyB0byBtcDQKLSAgICAgICAgICAgIC8vIGZpbGVzLCByb3RhdGlu
ZyB0aGVtIHVzaW5nIHRoZSB0cmFuc3Bvc2UgZmlsdGVyLCBhbmQgYWRkaW5nIHJvdGF0ZSBtZXRh
ZGF0YSwgYWxsCi0gICAgICAgICAgICAvLyB1c2luZyB0aGUgZmZtcGVnIGNvbW1hbmQtbGluZSB0
b29sLgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIEZyb20gc2RrL3Rlc3RzL3Jlc291
cmNlcy8gZGlyZWN0b3J5OgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIDA6Ci0gICAg
ICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLXRlc3Qt
MS1ub3JtYWwuanBnIC1waXhfZm10IHl1djQyMHAgLXkgdGVtcC5tcDQgJiYKLSAgICAgICAgICAg
IC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MCB2
aWRlby1yb3RhdGlvbi0wLm1wNAotICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUg
LWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpwZyAtcGl4X2ZtdCB5dXY0MjBwIC1j
cmYgMCAtdmNvZGVjIGxpYnZweC12cDkgLXkgdGVtcC5tcDQgJiYKLSAgICAgICAgICAgIC8vIGZm
bXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MCB2aWRlby1y
b3RhdGlvbi0wLnZwOS5tcDQKLSAgICAgICAgICAgIC8vIDkwOgotICAgICAgICAgICAgLy8gZmZt
cGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpwZyAt
dmYgInRyYW5zcG9zZT0yIiAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAg
ICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRl
PTI3MCB2aWRlby1yb3RhdGlvbi05MC5tcDQKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRv
cm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bv
c2U9MiIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAu
bXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRh
dGE6czp2OjAgcm90YXRlPTI3MCB2aWRlby1yb3RhdGlvbi05MC52cDkubXA0Ci0gICAgICAgICAg
ICAvLyAxODA6Ci0gICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9y
aWVudGF0aW9uLXRlc3QtMS1ub3JtYWwuanBnIC12ZiAidHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIi
IC1waXhfZm10IHl1djQyMHAgLXkgdGVtcC5tcDQgJiYKLSAgICAgICAgICAgIC8vIGZmbXBlZyAt
aSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MTgwIHZpZGVvLXJvdGF0
aW9uLTE4MC5tcDQKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYt
b3JpZW50YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9Mix0cmFuc3Bvc2U9
MiIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0
ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6
czp2OjAgcm90YXRlPTE4MCB2aWRlby1yb3RhdGlvbi0xODAudnA5Lm1wNAotICAgICAgICAgICAg
Ly8gMjcwOgotICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmll
bnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpwZyAtdmYgInRyYW5zcG9zZT0xIiAtcGl4X2ZtdCB5dXY0
MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMg
Y29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTkwIHZpZGVvLXJvdGF0aW9uLTI3MC5tcDQKLSAg
ICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVz
dC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9MSIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAg
LXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcg
LWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTkwIHZpZGVvLXJvdGF0
aW9uLTI3MC52cDkubXA0Ci0gICAgICAgICAgICBjb25zdCBmaWxlbmFtZXMgPSBbCi0gICAgICAg
ICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTAiLAotICAgICAgICAgICAgICAgICJ2aWRlby1yb3Rh
dGlvbi05MCIsCi0gICAgICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTE4MCIsCi0gICAgICAg
ICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTI3MCIsCi0gICAgICAgICAgICBdOwotCi0gICAgICAg
ICAgICBpZiAoc3VwcG9ydHNfaDI2NCkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGZuIG9m
IGZpbGVuYW1lcykKLSAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGVzdFZpZGVvRWxlbWVudChm
biArICIubXA0Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChzdXBwb3J0c192
cDkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMpCi0gICAgICAg
ICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0VsZW1lbnQoZm4gKyAiLnZwOS5tcDQiKTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGF3YWl0IChhc3luYyAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc3QgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAg
ICAgICAgICAgICAgIGlmICghdmlkZW8uY2FuUGxheVR5cGUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgidmlkZW8uY2FuUGxheVR5cGUgcmVxdWlyZWQgbWV0aG9kIG1pc3Npbmci
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGxldCBzdXBwb3J0c19oMjY0ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlk
ZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDJFMDFFIicpLnJlcGxhY2UoL25vLywgJycpOworICAgICAg
ICAgICAgICAgIGxldCBzdXBwb3J0c192cDkgPSAhIXZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9t
cDQ7IGNvZGVjcz0idnAwOS4wMC4xMC4wOCInKS5yZXBsYWNlKC9uby8sICcnKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIXN1cHBvcnRzX2gyNjQgJiYgIXN1cHBvcnRzX3ZwOSkgeworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBzdXBwb3J0ZWQgdmlkZW8gdHlwZXMuIik7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICAgICAgICAgIC8vIEJp
bmQgdGhlIHRleHR1cmUgdG8gdGhlIGRlZmF1bHQgdGV4dHVyZSB1bml0IDAKKyAgICAgICAgICAg
ICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgICAgICAgICAgICAg
IC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
CisgICAgICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgICAgICAgICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0Up
OworICAgICAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworCisgICAgICAgICAgICAgICAgLy8gVGhl
c2UgZmlsZXMgd2VyZSBjcmVhdGVkIGJ5IGNvbnZlcnRpbmcgZXhpZi1vcmllbnRhdGlvbi10ZXN0
LnBzZCB0byBtcDQKKyAgICAgICAgICAgICAgICAvLyBmaWxlcywgcm90YXRpbmcgdGhlbSB1c2lu
ZyB0aGUgdHJhbnNwb3NlIGZpbHRlciwgYW5kIGFkZGluZyByb3RhdGUgbWV0YWRhdGEsIGFsbAor
ICAgICAgICAgICAgICAgIC8vIHVzaW5nIHRoZSBmZm1wZWcgY29tbWFuZC1saW5lIHRvb2wuCisg
ICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyBGcm9tIHNkay90ZXN0cy9yZXNv
dXJjZXMvIGRpcmVjdG9yeToKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8v
IDA6CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmll
bnRhdGlvbi1vcmlnaW5hbHNcZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4
eDk2IC1waXhfZm10IHl1djQyMHAgLXkgdGVtcC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1w
ZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAgdmlkZW8tcm90
YXRpb24tMC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBl
eGlmLW9yaWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBz
Y2FsZT0xMjh4OTYgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15
IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkg
LW1ldGFkYXRhOnM6djowIHJvdGF0ZT0wIHZpZGVvLXJvdGF0aW9uLTAudnA5Lm1wNAorICAgICAg
ICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gOTA6CisgICAgICAgICAgICAgICAgLy8g
ZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmlnaW5hbHNcZXhpZi1v
cmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2LHRyYW5zcG9zZT0yIC1waXhfZm10
IHl1djQyMHAgLXkgdGVtcC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5t
cDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTI3MCB2aWRlby1yb3RhdGlvbi05MC5t
cDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVu
dGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBzY2FsZT0xMjh4
OTYsdHJhbnNwb3NlPTIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5
IC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNv
cHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0yNzAgdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNAor
ICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gMTgwOgorICAgICAgICAgICAg
ICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxz
XGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9Mix0
cmFuc3Bvc2U9MiAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAg
Ly8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0xODAg
dmlkZW8tcm90YXRpb24tMTgwLm1wNAorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRv
cm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRpb24tdGVz
dC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9Mix0cmFuc3Bvc2U9MiAtcGl4X2ZtdCB5
dXY0MjBwIC1jcmYgMCAtdmNvZGVjIGxpYnZweC12cDkgLXkgdGVtcC5tcDQKKyAgICAgICAgICAg
ICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRl
PTE4MCB2aWRlby1yb3RhdGlvbi0xODAudnA5Lm1wNAorICAgICAgICAgICAgICAgIC8vCisgICAg
ICAgICAgICAgICAgLy8gMjcwOgorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90
YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRpb24tdGVzdC5w
c2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9MSAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAu
bXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFk
YXRhOnM6djowIHJvdGF0ZT05MCB2aWRlby1yb3RhdGlvbi0yNzAubXA0CisgICAgICAgICAgICAg
ICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmlnaW5hbHNc
ZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2LHRyYW5zcG9zZT0xIC1w
aXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNAorICAg
ICAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6
MCByb3RhdGU9OTAgdmlkZW8tcm90YXRpb24tMjcwLnZwOS5tcDQKKworICAgICAgICAgICAgICAg
IGNvbnN0IGZpbGVuYW1lcyA9IFsKKyAgICAgICAgICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9u
LTAiLAorICAgICAgICAgICAgICAgICAgICAidmlkZW8tcm90YXRpb24tOTAiLAorICAgICAgICAg
ICAgICAgICAgICAidmlkZW8tcm90YXRpb24tMTgwIiwKKyAgICAgICAgICAgICAgICAgICAgInZp
ZGVvLXJvdGF0aW9uLTI3MCIsCisgICAgICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgICAg
IGlmIChzdXBwb3J0c19oMjY0KSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGZuIG9m
IGZpbGVuYW1lcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0VsZW1l
bnQoZm4gKyAiLm1wNCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBpZiAoc3VwcG9ydHNfdnA5KSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGZu
IG9mIGZpbGVuYW1lcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0Vs
ZW1lbnQoZm4gKyAiLnZwOS5tcDQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9KSgpOwogCiAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgICAgIH0KQEAgLTE1
NSw0ICsxNjQsNCBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICA8L3Njcmlw
dD4KIDwvYm9keT4KIAotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9k
cy0yLmh0bWwKaW5kZXggNTBhNWI4MGQ3OTEyYmMyNmEyZDRmYTdlZjRmNjhkMDlhNzQ0NjVkMi4u
YTM4OTMyOWFhMzM2NjNkZTJiNWMwY2U4NmUwZTM5ZGExMjM5YWU1NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2Nv
bnRleHQvbWV0aG9kcy0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9kcy0yLmh0bWwKQEAgLTEx
LDYgKzExLDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgogPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CkBAIC0yMCw3ICsyMSw3IEBAIGZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogInVzZSBzdHJpY3QiOwogZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIFdlYkdMIGNvbnRleHQgaGFzIGFsbCB0aGUgbWV0aG9k
cyBpbiB0aGUgc3BlY2lmaWNhdGlvbi4iKTsKIAotdmFyIG1ldGhvZHMgPSBbCitjb25zdCBtZXRo
b2RzID0gWwogICAiZ2V0Q29udGV4dEF0dHJpYnV0ZXMiLAogICAiYWN0aXZlVGV4dHVyZSIsCiAg
ICJhdHRhY2hTaGFkZXIiLApAQCAtMjQ5LDU1ICsyNTAsMTQgQEAgdmFyIG1ldGhvZHMgPSBbCiAg
ICJiaW5kVmVydGV4QXJyYXkiLAogXTsKIAotLy8gUHJvcGVydGllcyB0byBiZSBpZ25vcmVkIGJl
Y2F1c2UgdGhleSB3ZXJlIGFkZGVkIGluIHZlcnNpb25zIG9mIHRoZQotLy8gc3BlYyB0aGF0IGFy
ZSBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGggdGhpcyB2ZXJzaW9uCi12YXIgaWdub3JlZE1ldGhv
ZHMgPSBbCi0gIC8vIFRoZXJlIGlzIG5vIG9mZmljaWFsIHNwZWMgZm9yIHRoZSBjb21taXQgQVBJ
IHlldCwgdGhlIHByb3Bvc2FsIGxpbmsgaXM6Ci0gIC8vIGh0dHBzOi8vd2lraS53aGF0d2cub3Jn
L3dpa2kvT2Zmc2NyZWVuQ2FudmFzCi0gICJjb21taXQiCi1dOwotCi1mdW5jdGlvbiBhc3NlcnRG
dW5jdGlvbih2LCBmKSB7Ci0gIHRyeSB7Ci0gICAgaWYgKHR5cGVvZiB2W2ZdICE9ICJmdW5jdGlv
biIpIHsKLSAgICAgIHRlc3RGYWlsZWQoIlByb3BlcnR5IGVpdGhlciBkb2VzIG5vdCBleGlzdCBv
ciBpcyBub3QgYSBmdW5jdGlvbjogIiArIGYpOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
ZWxzZSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH0gY2F0Y2goZSkgewotICAgIHRl
c3RGYWlsZWQoIlRyeWluZyB0byBhY2Nlc3MgdGhlIHByb3BlcnR5ICciICsgZiArICInIHRocmV3
IGFuIGVycm9yOiAiK2UudG9TdHJpbmcoKSk7Ci0gIH0KLX0KLQogZGVidWcoIiIpOwogZGVidWco
IkNhbnZhcy5nZXRDb250ZXh0Iik7CiAKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBj
YW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Ci12YXIgZ2wgPSB3dHUu
Y3JlYXRlM0RDb250ZXh0KGNhbnZhcywgbnVsbCwgMik7Ci12YXIgcGFzc2VkID0gdHJ1ZTsKLWZv
ciAodmFyIGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7Ci0gIHZhciByID0gYXNzZXJ0RnVu
Y3Rpb24oZ2wsIG1ldGhvZHNbaV0pOwotICBwYXNzZWQgPSBwYXNzZWQgJiYgcjsKLX0KLWlmIChw
YXNzZWQpIHsKLSAgdGVzdFBhc3NlZCgiQWxsIFdlYkdMIG1ldGhvZHMgZm91bmQuIik7Ci19Ci12
YXIgZXh0ZW5kZWQgPSBmYWxzZTsKLWZvciAodmFyIGkgaW4gZ2wpIHsKLSAgaWYgKHR5cGVvZiBn
bFtpXSA9PSAiZnVuY3Rpb24iICYmIG1ldGhvZHMuaW5kZXhPZihpKSA9PSAtMSAmJiBpZ25vcmVk
TWV0aG9kcy5pbmRleE9mKGkpID09IC0xKSB7Ci0gICAgaWYgKCFleHRlbmRlZCkgewotICAgICAg
ZXh0ZW5kZWQgPSB0cnVlOwotICAgICAgdGVzdEZhaWxlZCgiQWxzbyBmb3VuZCB0aGUgZm9sbG93
aW5nIGV4dHJhIG1ldGhvZHM6Iik7Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoaSk7Ci0gIH0KLX0K
K2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNhbnZhcyIpOworY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNh
bnZhcywgbnVsbCwgMik7CiAKLWlmICghZXh0ZW5kZWQpIHsKLSAgdGVzdFBhc3NlZCgiTm8gZXh0
cmEgbWV0aG9kcyBmb3VuZCBvbiBXZWJHTCBjb250ZXh0LiIpOwotfQordGVzdENvbnRleHRNZXRo
b2RzKGdsLCBtZXRob2RzKTsKIAogZGVidWcoIiIpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9leHQtY29sb3ItYnVmZmVyLWZsb2F0Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZTIvZXh0ZW5zaW9ucy9leHQtY29sb3ItYnVmZmVyLWZsb2F0Lmh0bWwKaW5kZXggZTJlZWJk
MTEzYTkxYjhjODhiMTY2YjYzOWM4MjFlZjkyZWY1ZGY0MC4uYjU3YTZjYTEwZDZiZmIzNjk0ZThm
YjFlYmU2MjMxMDQyNjMwMmE1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvZXh0LWNvbG9yLWJ1
ZmZlci1mbG9hdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC1jb2xvci1idWZmZXItZmxvYXQu
aHRtbApAQCAtMjg0LDcgKzI4NCw3IEBAIGZ1bmN0aW9uIHJ1bkludGVybmFsRm9ybWF0UXVlcnlU
ZXN0KCkKICAgICBkZWJ1ZygidGVzdGluZyB0aGUgaW50ZXJuYWwgZm9ybWF0IHF1ZXJ5Iik7CiAK
ICAgICB2YXIgbWF4U2FtcGxlcyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfU0FNUExFUyk7Ci0g
ICAgdmFyIGZvcm1hdHMgPSBuZXcgQXJyYXkoZ2wuUkdCQTE2RiwgZ2wuUjMyRiwgZ2wuUkczMkYs
IGdsLlJHQkEzMkYsIGdsLlIxNkYsIGdsLlJHMTZGLCBnbC5SMTFGX0cxMUZfQjEwRik7CisgICAg
Y29uc3QgZm9ybWF0cyA9IFtnbC5SR0JBMTZGLCBnbC5SMzJGLCBnbC5SRzMyRiwgZ2wuUkdCQTMy
RiwgZ2wuUjE2RiwgZ2wuUkcxNkYsIGdsLlIxMUZfRzExRl9CMTBGXTsKICAgICB2YXIgZmlyc3RN
dWx0aU9ubHlGb3JtYXQgPSA0OwogICAgIGZvciAodmFyIGZtdCA9IDA7IGZtdCA8IGZvcm1hdHMu
bGVuZ3RoOyArK2ZtdCkgewogICAgICAgICB2YXIgc2FtcGxlcyA9IGdsLmdldEludGVybmFsZm9y
bWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZm9ybWF0c1tmbXRdLCBnbC5TQU1QTEVTKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC10ZXh0dXJlLW5vcm0xNi5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVu
c2lvbnMvZXh0LXRleHR1cmUtbm9ybTE2Lmh0bWwKaW5kZXggMWQ5ZmY2NDVlYmVkNGNjZmZiYmE5
YTkwYTUzODcwMjRmZGFiMDA4Mi4uMzFlZDhmMzdhYmMwZDg5ODk2MTkxNmE1ZGU0MTVhNjI1OGU0
MGU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtbm9ybTE2Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtbm9ybTE2Lmh0bWwKQEAgLTE1Myw2ICsxNTMsMjMg
QEAgZnVuY3Rpb24gdGVzdFNub3JtMTZVbnJlbmRlcmFibGUoaW50ZXJuYWxGb3JtYXQsIGZvcm1h
dCwgdHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVidWZmZXIg
c2hvdWxkIG5vdCBiZSBjb21wbGV0ZSB3aXRoIFNOT1JNMTYgdGV4dHVyZSBhdHRhY2hlZCIpOwog
fQogCitmdW5jdGlvbiBydW5JbnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpCit7CisgICAgZGVidWco
IiIpOworICAgIGRlYnVnKCJ0ZXN0aW5nIHRoZSBpbnRlcm5hbCBmb3JtYXQgcXVlcnkiKTsKKwor
ICAgIHZhciBtYXhTYW1wbGVzID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9TQU1QTEVTKTsKKyAg
ICBjb25zdCBmb3JtYXRzID0gW2V4dC5SMTZfRVhULCBleHQuUkcxNl9FWFQsIGV4dC5SR0JBMTZf
RVhUXTsKKyAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7CisgICAgICAgIHZhciBz
YW1wbGVzID0gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBm
b3JtYXQsIGdsLlNBTVBMRVMpOworICAgICAgICBpZiAoc2FtcGxlcyA9PSBudWxsIHx8IHNhbXBs
ZXMubGVuZ3RoID09IDAgfHwgc2FtcGxlc1swXSA8IG1heFNhbXBsZXMpIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoInRoZSBtYXhpbXVtIHZhbHVlIGluIFNBTVBMRVMgc2hvdWxkIGJlIGF0IGxl
YXN0ICIgKyBtYXhTYW1wbGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKyAgICB0ZXN0UGFzc2VkKCJJbnRlcm5hbCBmb3JtYXQgcXVlcnkgc3VjY2VlZGVkIik7Cit9
CisKIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgIHRleHR1cmVzID0gW2dsLmNyZWF0
ZVRleHR1cmUoKSwgZ2wuY3JlYXRlVGV4dHVyZSgpXTsKICAgZmJvcyA9IFtnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpLCBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpXTsKQEAgLTIwNyw2ICsyMjQsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgIHd0dS5ydW5FeHRlbnNpb25TdXBwb3J0ZWRUZXN0KGds
LCAiRVhUX3RleHR1cmVfbm9ybTE2IiwgZXh0ICE9PSBudWxsKTsKIAogICAgIGlmIChleHQgIT09
IG51bGwpIHsKKyAgICAgIHJ1bkludGVybmFsRm9ybWF0UXVlcnlUZXN0KCk7CiAgICAgICBydW5U
ZXN0RXh0ZW5zaW9uKCk7CiAgICAgfSBlbHNlIHsKICAgICAgIHRlc3RQYXNzZWQoIk5vIEVYVF90
ZXh0dXJlX25vcm0xNiBzdXBwb3J0IC0tIHRoaXMgaXMgbGVnYWwiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9l
eHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvb2Vz
LWRyYXctYnVmZmVycy1pbmRleGVkLmh0bWwKaW5kZXggM2JlNzcxN2JjNDE0ZDU1NzJiYzliMzdh
OTliODMwMWVhOTEyNWRlZS4uZTM1Y2MyNjlhYTIwZTU1NzkwMDdhMGIyODA1NzU3NTM3ZTYwMjA3
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvb2VzLWRyYXctYnVmZmVycy1pbmRleGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvb2VzLWRyYXctYnVmZmVycy1pbmRleGVkLmh0bWwKQEAgLTc5LDYg
Kzc5LDggQEAgZnVuY3Rpb24gZW5hYmxlRGlzYWJsZVRlc3QoKSB7CiAKICAgICAvLyBJbnZhbGlk
IGlucHV0CiAgICAgZXh0LmVuYWJsZWlPRVMoZ2wuREVQVEhfVEVTVCwgMCk7CisgICAgd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLCAndGFyZ2V0IGNvdWxkIG9ubHkgYmUg
Z2wuQkxFTkQnKTsKKwogICAgIGV4dC5kaXNhYmxlaU9FUyhnbC5ERVBUSF9URVNULCAwKTsKICAg
ICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0VOVU0sICd0YXJnZXQgY291bGQg
b25seSBiZSBnbC5CTEVORCcpOwogCkBAIC0xNjQsNyArMTY2LDEwIEBAIGZ1bmN0aW9uIGNvbnN0
YW50QWxwaGFCbGVuZENvbG9yVmFsaWRhdGlvblRlc3QoKSB7CiB9CiAKIGZ1bmN0aW9uIGluZGV4
ZWRCbGVuZENvbG9yVGVzdCgpIHsKKyAgICBkZWJ1ZygnJyk7CiAgICAgZGVidWcoIlRlc3Rpbmcg
YmxlbmRFcXVhdGlvbmlPRVMgYW5kIGJsZW5kRnVuY2lPRVMiKTsKKyAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCAwLCAndG9wIG9mIGluZGV4ZWRCbGVuZENvbG9yVGVzdCcpOworCiAgICAgZ2wu
Y2xlYXJDb2xvcigwLCAwLCAxLCAxKTsKICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklU
KTsKIApAQCAtMjExLDIyICsyMTYsMzIgQEAgZnVuY3Rpb24gaW5kZXhlZEJsZW5kQ29sb3JUZXN0
KCkgewogICAgIGdsLnJlYWRCdWZmZXIoZ2wuQ09MT1JfQVRUQUNITUVOVDEpOwogICAgIHd0dS5j
aGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIFswLCAwLCAyNTUsIDBdKTsKIAorICAgIGRl
YnVnKCcnKTsKKyAgICBkZWJ1ZyhgVGVzdGluZyB0aGF0IG5ldyB0b2tlbnMgYXJlbid0IG9uIHRo
ZSBleHRlbnNpb24uYCk7CisgICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9FUVVBVElPTl9SR0InLCAn
dW5kZWZpbmVkJyk7CisgICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9FUVVBVElPTl9BTFBIQScsICd1
bmRlZmluZWQnKTsKKyAgICBzaG91bGRCZSgnZXh0LkJMRU5EX1NSQ19SR0InLCAndW5kZWZpbmVk
Jyk7CisgICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9TUkNfQUxQSEEnLCAndW5kZWZpbmVkJyk7Cisg
ICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9EU1RfUkdCJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3Vs
ZEJlKCdleHQuQkxFTkRfRFNUX0FMUEhBJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3VsZEJlKCdl
eHQuQ09MT1JfV1JJVEVNQVNLJywgJ3VuZGVmaW5lZCcpOworCiAgICAgZGVidWcoIlRlc3Rpbmcg
bmV3IHRva2VucyBmb3IgZ2V0SW5kZXhlZFBhcmFtZXRlclRlc3QiKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fUkdCLCAwKScsICdnbC5G
VU5DX0FERCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVO
RF9FUVVBVElPTl9BTFBIQSwgMCknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOwotICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfUkdCLCAwKScsICdnbC5PTkUn
KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNUX1JH
QiwgMCknLCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIo
ZXh0LkJMRU5EX1NSQ19BTFBIQSwgMCknLCAnZ2wuWkVSTycpOwotICAgIHNob3VsZEJlKCdnbC5n
ZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9EU1RfQUxQSEEsIDApJywgJ2dsLlpFUk8nKTsK
LSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05f
UkdCLCAxKScsICdnbC5GVU5DX0FERCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGV4dC5CTEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19TVUJUUkFDVCcp
OwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfUkdC
LCAxKScsICdnbC5TUkNfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFt
ZXRlcihleHQuQkxFTkRfRFNUX1JHQiwgMSknLCAnZ2wuT05FX01JTlVTX1NSQ19BTFBIQScpOwot
ICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfQUxQSEEs
IDEpJywgJ2dsLlpFUk8nKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihl
eHQuQkxFTkRfRFNUX0FMUEhBLCAxKScsICdnbC5aRVJPJyk7Ci0KLSAgICBzaG91bGRCZSgnZ2wu
Z2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQ09MT1JfV1JJVEVNQVNLLCAwKScsICdbZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2VdJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0
ZXIoZXh0LkNPTE9SX1dSSVRFTUFTSywgMSknLCAnW3RydWUsIHRydWUsIHRydWUsIHRydWVdJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJT05f
UkdCLCAwKScsICdnbC5GVU5DX0FERCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAwKScsICdnbC5GVU5DX1NVQlRSQUNUJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX1JHQiwg
MCknLCAnZ2wuT05FJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wu
QkxFTkRfRFNUX1JHQiwgMCknLCAnZ2wuT05FJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX0FMUEhBLCAwKScsICdnbC5aRVJPJyk7CisgICAgc2hv
dWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX0FMUEhBLCAwKScsICdn
bC5aRVJPJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRf
RVFVQVRJT05fUkdCLCAxKScsICdnbC5GVU5DX0FERCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRJ
bmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAxKScsICdnbC5GVU5DX1NV
QlRSQUNUJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRf
U1JDX1JHQiwgMSknLCAnZ2wuU1JDX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX1JHQiwgMSknLCAnZ2wuT05FX01JTlVTX1NSQ19BTFBI
QScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19B
TFBIQSwgMSknLCAnZ2wuWkVSTycpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1l
dGVyKGdsLkJMRU5EX0RTVF9BTFBIQSwgMSknLCAnZ2wuWkVSTycpOworCisgICAgc2hvdWxkQmUo
J2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQ09MT1JfV1JJVEVNQVNLLCAwKScsICdbZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2VdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJh
bWV0ZXIoZ2wuQ09MT1JfV1JJVEVNQVNLLCAxKScsICdbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0n
KTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIG5vbi1pbmRleGVkIGdldFBhcmFtdGVyIGdldCBzdGF0
ZSBmcm9tIGRyYXcgYnVmZmVyIDAiKTsKICAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGds
LkJMRU5EX1NSQ19SR0IpJywgJ2dsLk9ORScpOwpAQCAtMjUxLDI2ICsyNjYsMjggQEAgZnVuY3Rp
b24gaW5kZXhlZEJsZW5kQ29sb3JUZXN0KCkgewogICAgIHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0
ZXIoZ2wuQkxFTkRfRFNUX0FMUEhBKScsICdnbC5PTkUnKTsKICAgICBzaG91bGRCZSgnZ2wuZ2V0
UGFyYW1ldGVyKGdsLkNPTE9SX1dSSVRFTUFTSyknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxz
ZV0nKTsKIAotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9F
UVVBVElPTl9SR0IsIDApJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKLSAgICBzaG91bGRCZSgnZ2wu
Z2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fQUxQSEEsIDApJywgJ2dsLkZV
TkNfQUREJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5E
X1NSQ19SR0IsIDApJywgJ2dsLk9ORV9NSU5VU19EU1RfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNUX1JHQiwgMCknLCAnZ2wuRFNUX0FM
UEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NS
Q19BTFBIQSwgMCknLCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJh
bWV0ZXIoZXh0LkJMRU5EX0RTVF9BTFBIQSwgMCknLCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxkQmUo
J2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX1JHQiwgMSknLCAnZ2wu
RlVOQ19TVUJUUkFDVCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4
dC5CTEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19BREQnKTsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX1JHQiwgMSknLCAnZ2wuT05F
X01JTlVTX0RTVF9BTFBIQScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVy
KGV4dC5CTEVORF9EU1RfUkdCLCAxKScsICdnbC5EU1RfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX0FMUEhBLCAxKScsICdnbC5PTkUn
KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNUX0FM
UEhBLCAxKScsICdnbC5PTkUnKTsKLQotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1l
dGVyKGV4dC5DT0xPUl9XUklURU1BU0ssIDApJywgJ1t0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2Vd
Jyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkNPTE9SX1dSSVRF
TUFTSywgMSknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0nKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElPTl9SR0IsIDApJywgJ2dsLkZV
TkNfU1VCVFJBQ1QnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5C
TEVORF9FUVVBVElPTl9BTFBIQSwgMCknLCAnZ2wuRlVOQ19BREQnKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfUkdCLCAwKScsICdnbC5PTkVfTUlO
VVNfRFNUX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wu
QkxFTkRfRFNUX1JHQiwgMCknLCAnZ2wuRFNUX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX0FMUEhBLCAwKScsICdnbC5PTkUnKTsKKyAg
ICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9EU1RfQUxQSEEsIDAp
JywgJ2dsLk9ORScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJM
RU5EX0VRVUFUSU9OX1JHQiwgMSknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOworICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAxKScsICdn
bC5GVU5DX0FERCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJM
RU5EX1NSQ19SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19EU1RfQUxQSEEnKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9EU1RfUkdCLCAxKScsICdnbC5EU1Rf
QUxQSEEnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9T
UkNfQUxQSEEsIDEpJywgJ2dsLk9ORScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGdsLkJMRU5EX0RTVF9BTFBIQSwgMSknLCAnZ2wuT05FJyk7CisKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5DT0xPUl9XUklURU1BU0ssIDApJywgJ1t0cnVl
LCBmYWxzZSwgdHJ1ZSwgZmFsc2VdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJh
bWV0ZXIoZ2wuQ09MT1JfV1JJVEVNQVNLLCAxKScsICdbdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNl
XScpOwogfQogCiBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAgIHNldHVwKCk7CiAK
KyAgICB0ZXN0SW52YWxpZFZhbHVlcygpOworCiAgICAgZW5hYmxlRGlzYWJsZVRlc3QoKTsKIAog
ICAgIC8vIGJsZW5kaW5nIHNob3VsZCBiZSBlbmFibGVkIGZvciBkcmF3QnVmZmVycyAwIGFuZCAx
IGF0IHRoaXMgcG9pbnQKQEAgLTI3OCw2ICsyOTUsOCBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5z
aW9uKCkgewogICAgIGNvbnN0YW50QWxwaGFCbGVuZENvbG9yVmFsaWRhdGlvblRlc3QoKTsKIAog
ICAgIGluZGV4ZWRCbGVuZENvbG9yVGVzdCgpOworCisgICAgdGVzdENvbG9yTWFza0RyYXdOb09w
KCk7CiB9CiAKIGZ1bmN0aW9uIHJ1bkludmFsaWRFbnVtc1Rlc3QoKSB7CkBAIC0yOTgsNiArMzE3
LDIwNiBAQCBmdW5jdGlvbiBydW5JbnZhbGlkRW51bXNUZXN0KCkgewogICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIFtnbC5JTlZBTElEX09QRVJBVElPTiwgZ2wuSU5WQUxJRF9FTlVNXSwgJ2lu
dmFsaWQgb3BlcmF0aW9ucyBvciBpbnZhbGlkIGVudW1zIGZvciBDT0xPUl9XUklURU1BU0snKTsK
IH0KIAorZnVuY3Rpb24gdGVzdEludmFsaWRWYWx1ZXMoKSB7CisgICAgY29uc3QgbnVtRHJhd0J1
ZmZlcnMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0RSQVdfQlVGRkVSUyk7CisgICAgaWYgKCFu
dW1EcmF3QnVmZmVycykgdGhyb3cgbmV3IEVycm9yKCchbnVtRHJhd0J1ZmZlcnMnKTsKKyAgICB3
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmVuYWJs
ZWlPRVMoZ2wuQkxFTkQsIC0xKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLklOVkFMSURfVkFMVUUsIGBleHQuZW5hYmxlaU9FUyhnbC5CTEVORCwgJHtudW1EcmF3QnVm
ZmVyc30pYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5lbmFi
bGVpT0VTKGdsLkJMRU5ELCAke251bURyYXdCdWZmZXJzLTF9KWApOworCisgICAgd3R1LnNob3Vs
ZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5kaXNhYmxlaU9FUyhn
bC5CTEVORCwgLTEpYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5W
QUxJRF9WQUxVRSwgYGV4dC5kaXNhYmxlaU9FUyhnbC5CTEVORCwgJHtudW1EcmF3QnVmZmVyc30p
YCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5kaXNhYmxlaU9F
UyhnbC5CTEVORCwgJHtudW1EcmF3QnVmZmVycy0xfSlgKTsKKworICAgIHd0dS5zaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuYmxlbmRFcXVhdGlvbmlPRVMo
LTEsIGdsLkZVTkNfQUREKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGds
LklOVkFMSURfVkFMVUUsIGBleHQuYmxlbmRFcXVhdGlvbmlPRVMoJHtudW1EcmF3QnVmZmVyc30s
IGdsLkZVTkNfQUREKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBl
eHQuYmxlbmRFcXVhdGlvbmlPRVMoJHtudW1EcmF3QnVmZmVycy0xfSwgZ2wuRlVOQ19BREQpYCk7
CisKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBg
ZXh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZWlPRVMoLTEsIGdsLkZVTkNfQURELCBnbC5GVU5DX0FE
RClgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVF
LCBgZXh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLkZV
TkNfQURELCBnbC5GVU5DX0FERClgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCAwLCBgZXh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVycy0xfSwg
Z2wuRlVOQ19BREQsIGdsLkZVTkNfQUREKWApOworCisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEZ1bmNpT0VTKC0xLCBnbC5PTkUs
IGdsLk9ORSlgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLCBgZXh0LmJsZW5kRnVuY2lPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLk9ORSwgZ2wu
T05FKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuYmxlbmRG
dW5jaU9FUygke251bURyYXdCdWZmZXJzLTF9LCBnbC5PTkUsIGdsLk9ORSlgKTsKKworICAgIHd0
dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuYmxlbmRG
dW5jU2VwYXJhdGVpT0VTKC0xLCBnbC5PTkUsIGdsLlpFUk8sIGdsLk9ORSwgZ2wuWkVSTylgKTsK
KyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0
LmJsZW5kRnVuY1NlcGFyYXRlaU9FUygke251bURyYXdCdWZmZXJzfSwgZ2wuT05FLCBnbC5aRVJP
LCBnbC5PTkUsIGdsLlpFUk8pYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwg
MCwgYGV4dC5ibGVuZEZ1bmNTZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVycy0xfSwgZ2wuT05F
LCBnbC5aRVJPLCBnbC5PTkUsIGdsLlpFUk8pYCk7CisKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmNvbG9yTWFza2lPRVMoLTEsIDEsMSwx
LDEpYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxV
RSwgYGV4dC5jb2xvck1hc2tpT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCAxLDEsMSwxKWApOworICAg
IHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuY29sb3JNYXNraU9FUygke251
bURyYXdCdWZmZXJzLTF9LCAxLDEsMSwxKWApOworfQorCitmdW5jdGlvbiogcmFuZ2Uobikgewor
ICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgeworICAgIHlpZWxkIGk7CisgIH0KK30KKwor
ZnVuY3Rpb24gdGVzdENvbG9yTWFza0RyYXdOb09wKCkgeworICAgIGRlYnVnKCcnKTsKKyAgICBk
ZWJ1ZygndGVzdENvbG9yTWFza0RyYXdOb09wJykKKyAgICAvLyA+IElmIGFueSBkcmF3IGJ1ZmZl
ciB3aXRoIGFuIGF0dGFjaG1lbnQgZG9lcyBub3QgaGF2ZSBhIGRlZmluZWQKKyAgICAvLyAgIGZy
YWdtZW50IHNoYWRlciBvdXRwdXQsIGRyYXdzIGdlbmVyYXRlIElOVkFMSURfT1BFUkFUSU9OLAor
ICAgIC8vICAgdW5sZXNzIGFsbCA0IGNoYW5uZWxzIG9mIGNvbG9yTWFzayBhcmUgc2V0IHRvIGZh
bHNlLgorICAgIGNvbnN0IE5VTV9PVVRQVVRTID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xP
Ul9BVFRBQ0hNRU5UUyk7CisgICAgc2hvdWxkQmVUcnVlKGAke05VTV9PVVRQVVRTfSA+IDFgKTsK
KworICAgIGNvbnN0IGZiID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKKyAgICBnbC5iaW5kRnJh
bWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKyAgICBnbC52aWV3cG9ydCgwLDAsMSwxKTsK
KworICAgIGNvbnN0IERSQVdfQlVGRkVSUyA9IFtdOworICAgIGZvciAoY29uc3QgaSBvZiByYW5n
ZShOVU1fT1VUUFVUUykpIHsKKyAgICAgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgICAgICBn
bC50ZXhTdG9yYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZ2wuUkdCQTgsIDEsIDEpOworICAgICAg
ICBjb25zdCBjYSA9IGdsLkNPTE9SX0FUVEFDSE1FTlQwK2k7CisgICAgICAgIERSQVdfQlVGRkVS
Uy5wdXNoKGNhKQorICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZF
UiwgY2EsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsIHRl
eCwgMCk7CisgICAgfQorICAgIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOworCisgICAgZ2wuZHJh
d0J1ZmZlcnMoRFJBV19CVUZGRVJTKTsKKyAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMSk7Cisg
ICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDAp
OworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgICAgZm9yIChjb25zdCBp
IG9mIHJhbmdlKE5VTV9PVVRQVVRTKSkgeworICAgICAgICBnbC5yZWFkQnVmZmVyKGdsLkNPTE9S
X0FUVEFDSE1FTlQwK2kpOworICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAx
LCAxLCBbMCwgMCwgMCwgMF0sIGBDT0xPUl9BVFRBQ0hNRU5UJHtpfSBpbml0aWFsbHkgYmxhY2tg
KTsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0IHZhbGlkT3V0cHV0IG9mIHJhbmdlKE5VTV9PVVRQ
VVRTKSkgeworICAgICAgICBjb25zdCBpbnZhbGlkT3V0cHV0ID0gdmFsaWRPdXRwdXQgXiAwYjEx
OworICAgICAgICBkZWJ1ZyhgdmFsaWRPdXRwdXQ6ICR7dmFsaWRPdXRwdXR9LCBpbnZhbGlkT3V0
cHV0OiAke2ludmFsaWRPdXRwdXR9YCk7CisgICAgICAgIGNvbnN0IHByb2cgPSB3dHUuc2V0dXBQ
cm9ncmFtKGdsLCBbCisgICAgICAgICAgICBgXAorI3ZlcnNpb24gMzAwIGVzCit2b2lkIG1haW4o
KSB7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDEpOworICAgIGdsX1BvaW50U2l6ZSA9
IDEuMGY7Cit9CitgLAorICAgICAgICAgICAgYFwKKyN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CitsYXlvdXQobG9jYXRpb249JHt2YWxpZE91dHB1dH0pIG91dCB2ZWM0
IG9fY29sb3I7Cit2b2lkIG1haW4oKSB7CisgICAgb19jb2xvciA9IHZlYzQoMSwxLDEsMSk7Cit9
CitgCisgICAgICAgIF0pOworICAgICAgICBnbC51c2VQcm9ncmFtKHByb2cpOworCisgICAgICAg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgJ0FmdGVy
IGluaXQuJyk7CisKKyAgICAgICAgZ2wuY29sb3JNYXNrKDEsMSwxLDEpOworICAgICAgICBnbC5k
cmF3QnVmZmVycyhEUkFXX0JVRkZFUlMpOworICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5U
UywgMCwgMSk7CisgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BF
UkFUSU9OLAorICAgICAgICAgICAgJ0RyYXdpbmcgd2l0aCB1bm1hc2tlZCB1bmRlZmluZWQgY29s
b3Igb3V0cHV0cy4nKTsKKworICAgICAgICBnbC5jb2xvck1hc2soMCwwLDAsMCk7CisgICAgICAg
IGdsLmRyYXdCdWZmZXJzKERSQVdfQlVGRkVSUyk7CisgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wu
UE9JTlRTLCAwLCAxKTsKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IsCisgICAgICAgICAgICAnRHJhd2luZyB3aXRoIGNvbG9yTWFzay1tYXNrZWQtb3V0IHVuZGVm
aW5lZCBjb2xvciBvdXRwdXRzLicpOworCisgICAgICAgIGdsLmNvbG9yTWFzaygxLDEsMSwxKTsK
KyAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJBV19CVUZGRVJTLm1hcCgoeCxpKSA9PiAoaSA9PSBp
bnZhbGlkT3V0cHV0KSA/IHggOiAwKSk7CisgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRT
LCAwLCAxKTsKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sCisgICAgICAgICAgICAnRHJhd2luZyB3aXRoIHdyb25nLWlkIGRyYXdCdWZmZXItbWFz
a2VkLW91dCB1bmRlZmluZWQgY29sb3Igb3V0cHV0cy4nKTsKKworICAgICAgICBnbC5kcmF3QnVm
ZmVycyhEUkFXX0JVRkZFUlMubWFwKCh4LGkpID0+IChpID09IHZhbGlkT3V0cHV0KSA/IHggOiAw
KSk7CisgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAnRHJhd2luZyB3
aXRoIGRyYXdCdWZmZXItbWFza2VkLW91dCB1bmRlZmluZWQgY29sb3Igb3V0cHV0cy4nKTsKKwor
ICAgICAgICBnbC5jb2xvck1hc2soMCwwLDAsMCk7CisgICAgICAgIGdsLmRyYXdCdWZmZXJzKFtd
KTsKKyAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICB3dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICdEcmF3aW5nIHdp
dGggY29sb3JNYXNrK2RyYXdCdWZmZXItbWFza2VkLW91dCB1bmRlZmluZWQgY29sb3Igb3V0cHV0
cy4nKTsKKworICAgICAgICBjb25zdCB0ZXN0TWFzayA9IChyLGcsYixhKSA9PiB7CisgICAgICAg
ICAgICBkZWJ1ZyhgdGVzdE1hc2soJHtbcixnLGIsYV19KWApOworICAgICAgICAgICAgZ2wuZHJh
d0J1ZmZlcnMoRFJBV19CVUZGRVJTKTsKKworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKDEsMSwx
LDEpOworICAgICAgICAgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICAgICAgICAg
IGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworICAgICAgICAgICAgZ2wuY29sb3JNYXNr
KDAsMCwwLDApOworICAgICAgICAgICAgZXh0LmNvbG9yTWFza2lPRVModmFsaWRPdXRwdXQsIHIs
ZyxiLGEpOworICAgICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAg
ICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAg
ICAgICAgYERyYXdpbmcgd2l0aCBzb2xlIGRlZmluZWQgY29sb3Ike3ZhbGlkT3V0cHV0fSBvdXRw
dXQgd3JpdGVtYXNrOiAke1tyLGcsYixhXX0uYCk7CisKKyAgICAgICAgICAgIGZvciAoY29uc3Qg
aSBvZiByYW5nZShOVU1fT1VUUFVUUykpIHsKKyAgICAgICAgICAgICAgICBnbC5yZWFkQnVmZmVy
KGdsLkNPTE9SX0FUVEFDSE1FTlQwK2kpOworICAgICAgICAgICAgICAgIGxldCBleHBlY3QgPSBb
MCwwLDAsMF07CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gdmFsaWRPdXRwdXQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgZXhwZWN0ID0gW3IsZyxiLGFdLm1hcCh4ID0+IDB4ZmYqeCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAs
IDAsIDEsIDEsIGV4cGVjdCwgYENPTE9SX0FUVEFDSE1FTlQke2l9OiBbJHtleHBlY3R9XWApOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBnbC5jb2xvck1hc2soMSwxLDEsMSk7CisgICAg
ICAgICAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDApOworICAgICAgICAgICAgZ2wuY2xlYXIo
Z2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgICAgICAgICAgICBnbC5jb2xvck1hc2socixnLGIsYSk7
CisgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoTlVNX09VVFBVVFMpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGkgPT0gdmFsaWRPdXRwdXQpIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIGV4dC5jb2xvck1hc2tpT0VTKGksIDAsMCwwLDApOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAgICAgYERyYXdpbmcg
d2l0aCBzb2xlIHJlbWFpbmluZyBkZWZpbmVkIGNvbG9yJHt2YWxpZE91dHB1dH0gb3V0cHV0IHdy
aXRlbWFzazogJHtbcixnLGIsYV19LmApOworCisgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2Yg
cmFuZ2UoTlVNX09VVFBVVFMpKSB7CisgICAgICAgICAgICAgICAgZ2wucmVhZEJ1ZmZlcihnbC5D
T0xPUl9BVFRBQ0hNRU5UMCtpKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ID0gWzAsMCww
LDBdOworICAgICAgICAgICAgICAgIGlmIChpID09IHZhbGlkT3V0cHV0KSB7CisgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdCA9IFtyLGcsYixhXS5tYXAoeCA9PiAweGZmKngpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAx
LCAxLCBleHBlY3QsIGBDT0xPUl9BVFRBQ0hNRU5UJHtpfTogWyR7ZXhwZWN0fV1gKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHIgfHwgZyB8fCBiIHx8IGEpIHsKKyAgICAgICAg
ICAgICAgICBnbC5jb2xvck1hc2soMCwwLDAsMCk7CisgICAgICAgICAgICAgICAgZXh0LmNvbG9y
TWFza2lPRVMoaW52YWxpZE91dHB1dCwgcixnLGIsYSk7CisgICAgICAgICAgICAgICAgZ2wuZHJh
d0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAorICAgICAgICAgICAgICAgICAgICBgRHJh
d2luZyB3aXRoIHdyb25nLWlkIHVuZGVmaW5lZCBjb2xvciBvdXRwdXQgY29sb3IgbWFza2VkOiAk
e1tyLGcsYixhXX0uYCk7CisKKyAgICAgICAgICAgICAgICBnbC5kcmF3QnVmZmVycyhbXSk7Cisg
ICAgICAgICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAg
ICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAg
ICAgICAgICAnRHJhd2luZyB3aXRoIHdyb25nLWlkIGNvbG9yTWFzaywgYnV0IGFsbC1vZmYgZHJh
d0J1ZmZlcnMuJyk7CisKKyAgICAgICAgICAgICAgICBnbC5kcmF3QnVmZmVycyhEUkFXX0JVRkZF
UlMubWFwKCh4LGkpID0+IChpID09IHZhbGlkT3V0cHV0KSA/IHggOiAwKSk7CisgICAgICAgICAg
ICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgICAgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAn
RHJhd2luZyB3aXRoIHdyb25nLWlkIGNvbG9yTWFzaywgYnV0IHJpZ2h0LWlkIGRyYXdCdWZmZXJz
IG1hc2tlZC4nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0ZXN0TWFz
aygwLDAsMCwwKTsKKyAgICAgICAgdGVzdE1hc2soMSwwLDAsMCk7CisgICAgICAgIHRlc3RNYXNr
KDAsMSwwLDApOworICAgICAgICB0ZXN0TWFzaygwLDAsMSwwKTsKKyAgICAgICAgdGVzdE1hc2so
MCwwLDAsMSk7CisgICAgICAgIHRlc3RNYXNrKDEsMSwxLDEpOworICAgIH0KK30KKwogZnVuY3Rp
b24gcnVuVGVzdCgpIHsKICAgaWYgKCFnbCkgewogICAgIHRlc3RGYWlsZWQoImNvbnRleHQgZG9l
cyBub3QgZXhpc3QiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lv
bnMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jM2RlMmE1Njc3Nzc2ZmY5YTIzNzFkMWU3YWY2MWViZWMxNGY3MDBmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sCkBAIC0wLDAgKzEsNTgg
QEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworY29uc3Qgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7CitsZXQgZ2w7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCByZXF1aXJlZCBleHRl
bnNpb25zIGFyZSBzdXBwb3J0ZWQiKTsKKworc2hvdWxkQmVOb25OdWxsKCJnbCA9IHd0dS5jcmVh
dGUzRENvbnRleHQodW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpIik7CisKK2NvbnN0IHN1cHBvcnRl
ZEV4dHMgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisKK2Z1bmN0aW9uIGhhc0V4dChu
YW1lKSB7CisgICAgcmV0dXJuIHN1cHBvcnRlZEV4dHMuaW5kZXhPZihuYW1lKSA+PSAwOworfQor
Citjb25zdCBoYXNfczN0YyA9IGhhc0V4dCgnV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMn
KTsKK2NvbnN0IGhhc19zM3RjX3NyZ2IgPSBoYXNFeHQoJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9zM3RjX3NyZ2InKTsKK2NvbnN0IGhhc19yZ3RjID0gaGFzRXh0KCdFWFRfdGV4dHVyZV9jb21w
cmVzc2lvbl9yZ3RjJyk7Citjb25zdCBoYXNfZXRjID0gaGFzRXh0KCdXRUJHTF9jb21wcmVzc2Vk
X3RleHR1cmVfZXRjJyk7CisKK2RlYnVnKGBoYXNfczN0YzogJHtoYXNfczN0Y31gKTsKK2RlYnVn
KGBoYXNfczN0Y19zcmdiOiAke2hhc19zM3RjX3NyZ2J9YCk7CitkZWJ1ZyhgaGFzX3JndGM6ICR7
aGFzX3JndGN9YCk7CitkZWJ1ZyhgaGFzX2V0YzogJHtoYXNfZXRjfWApOworCitzaG91bGRCZVRy
dWUoIigoaGFzX3MzdGMgJiYgaGFzX3MzdGNfc3JnYiAmJiBoYXNfcmd0YykgfHwgaGFzX2V0Yyki
KTsKKworLy8gRVRDMSBleHRlbnNpb24gbXVzdCBub3QgYmUgZXhwb3NlZCBvbiBXZWJHTCAyLjAg
Y29udGV4dHMgd2l0aG91dCBFVEMyLgorZGVidWcoIiIpOworY29uc3QgaGFzX2V0YzEgPSBoYXNF
eHQoJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMxJyk7CitkZWJ1ZyhgaGFzX2V0YzE6ICR7
aGFzX2V0YzF9YCk7CitzaG91bGRCZVRydWUoImhhc19ldGMxID09IGhhc19ldGMiKTsKKworZGVi
dWcoIiIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3LWluc3RhbmNl
ZC1iYXNlLXZlcnRleC1iYXNlLWluc3RhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0
aS1kcmF3LWluc3RhbmNlZC1iYXNlLXZlcnRleC1iYXNlLWluc3RhbmNlLmh0bWwKaW5kZXggOTU1
NWIwNDY1NjQ1ZjA3YTVhYzRiMWE1MDgzYTVkZTkzOGJmNTI2Yy4uMTI4YTRmYzY3NWNmMDgzM2Qw
MWZmZTAzMWRjYjFjOTZkN2JkYzI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVs
dGktZHJhdy1pbnN0YW5jZWQtYmFzZS12ZXJ0ZXgtYmFzZS1pbnN0YW5jZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9l
eHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXctaW5zdGFuY2VkLWJhc2UtdmVydGV4LWJhc2UtaW5z
dGFuY2UuaHRtbApAQCAtOSw3ICs5LDcgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBpZD0idnNo
YWRlcklsbGVnYWxCYXNlSW5zdGFuY2UiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lv
biAzMDAgZXMKKzxzY3JpcHQgaWQ9InZzaGFkZXJCYXNlSW5zdGFuY2VXaXRob3V0RXh0IiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCiBsYXlvdXQobG9jYXRpb24gPSAw
KSBpbiB2ZWMyIHZQb3NpdGlvbjsKIG91dCB2ZWM0IGNvbG9yOwogdm9pZCBtYWluKCkKQEAgLTE4
LDIwICsxOCw2IEBAIHZvaWQgbWFpbigpCiAgIGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRpb24g
KiAyLjAgLSAxLjAsIGdsX0Jhc2VJbnN0YW5jZSwgMSk7CiB9CiA8L3NjcmlwdD4KLTxzY3JpcHQg
aWQ9InZzaGFkZXJCYXNlSW5zdGFuY2VaZXJvIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3Zl
cnNpb24gMzAwIGVzCi0jZXh0ZW5zaW9uIEdMX0FOR0xFX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFu
Y2UgOiByZXF1aXJlCi1sYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQb3NpdGlvbjsKLW91
dCB2ZWM0IGNvbG9yOwotdm9pZCBtYWluKCkKLXsKLSAgaWYgKGdsX0Jhc2VJbnN0YW5jZSA9PSAw
KSB7Ci0gICAgY29sb3IgPSB2ZWM0KDAsIDEsIDAsIDEpOwotICB9IGVsc2UgewotICAgIGNvbG9y
ID0gdmVjNCgxLCAwLCAwLCAxKTsKLSAgfQotICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9u
ICogMi4wIC0gMS4wLCAwLCAxKTsKLX0KLTwvc2NyaXB0PgogPCEtLSBDaGVjayBnbF9JbnN0YW5j
ZUlEIHN0YXJ0cyBhdCAwIHJlZ2FyZGxlc3Mgb2YgZ2xfQmFzZUluc3RhbmNlIC0tPgogPHNjcmlw
dCBpZD0idnNoYWRlckluc3RhbmNlSURDaGVjayIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2
ZXJzaW9uIDMwMCBlcwogbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247CkBA
IC00Niw3ICszMiw3IEBAIHZvaWQgbWFpbigpCiAgIGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRp
b24gKiAyLjAgLSAxLjAsIDAsIDEpOwogfQogPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2c2hhZGVy
SWxsZWdhbEJhc2VWZXJ0ZXgiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAg
ZXMKKzxzY3JpcHQgaWQ9InZzaGFkZXJCYXNlVmVydGV4V2l0aG91dEV4dCIgdHlwZT0ieC1zaGFk
ZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwogbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVj
MiB2UG9zaXRpb247CiBvdXQgdmVjNCBjb2xvcjsKIHZvaWQgbWFpbigpCkBAIC01NSwxNyArNDEs
MTMgQEAgdm9pZCBtYWluKCkKICAgZ2xfUG9zaXRpb24gPSB2ZWM0KHZQb3NpdGlvbiAqIDIuMCAt
IDEuMCwgZ2xfQmFzZVZlcnRleCwgMSk7CiB9CiA8L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZzaGFk
ZXJCYXNlVmVydGV4WmVybyIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBl
cworPHNjcmlwdCBpZD0idnNoYWRlcldpdGhFeHQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4j
dmVyc2lvbiAzMDAgZXMKICNleHRlbnNpb24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0
YW5jZSA6IHJlcXVpcmUKIGxheW91dChsb2NhdGlvbiA9IDApIGluIHZlYzIgdlBvc2l0aW9uOwog
b3V0IHZlYzQgY29sb3I7CiB2b2lkIG1haW4oKQogewotICBpZiAoZ2xfQmFzZVZlcnRleCA9PSAw
KSB7Ci0gICAgY29sb3IgPSB2ZWM0KDAsIDEsIDAsIDEpOwotICB9IGVsc2UgewotICAgIGNvbG9y
ID0gdmVjNCgxLCAwLCAwLCAxKTsKLSAgfQorICBjb2xvciA9IHZlYzQoMCwgMSwgMCwgMSk7CiAg
IGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRpb24gKiAyLjAgLSAxLjAsIDAsIDEpOwogfQogPC9z
Y3JpcHQ+CkBAIC04NCw3ICs2Niw2IEBAIHZvaWQgbWFpbigpCiB9CiA8L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InZzaGFkZXJTaW1wbGUiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAz
MDAgZXMKLSAgI2V4dGVuc2lvbiBHTF9BTkdMRV9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlIDog
cmVxdWlyZQogICBsYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQb3NpdGlvbjsKICAgbGF5
b3V0KGxvY2F0aW9uID0gMSkgaW4gZmxvYXQgdkluc3RhbmNlOwogICBvdXQgdmVjNCBjb2xvcjsK
QEAgLTEyMSw3ICsxMDIsMTMgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGUg
ZnVuY3Rpb25hbGl0eSBvZiB0aGUgV0VCR0xfW211bHRpXV9kcmF3X2Jhc2UKIAogY29uc3Qgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7CiBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY2FudmFzIik7Ci1jb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCBudWxs
LCAyKTsKK2NhbnZhcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzAwMCc7CitjYW52YXMuc3R5
bGUuaW1hZ2VSZW5kZXJpbmcgPSAncGl4ZWxhdGVkJzsgLy8gQmVjYXVzZSBDaHJvbWUgZG9lc24n
dCBzdXBwb3J0IGNyaXNwLWVkZ2VzLgorY2FudmFzLnN0eWxlLmltYWdlUmVuZGVyaW5nID0gJ2Ny
aXNwLWVkZ2VzJzsKK2NvbnN0IGF0dHJpYnMgPSB7CisgIGFudGlhbGlhczogZmFsc2UsCit9Owor
Y29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgYXR0cmlicywgMik7CiAKIGNv
bnN0IHdpZHRoID0gZ2wuY2FudmFzLndpZHRoOwogY29uc3QgaGVpZ2h0ID0gZ2wuY2FudmFzLmhl
aWdodDsKQEAgLTI3MCw4ICsyNTcsMjUwIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgZG9U
ZXN0KCdXRUJHTF9kcmF3X2luc3RhbmNlZF9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlJywgZmFs
c2UpOwogICBkb1Rlc3QoJ1dFQkdMX211bHRpX2RyYXdfaW5zdGFuY2VkX2Jhc2VfdmVydGV4X2Jh
c2VfaW5zdGFuY2UnLCB0cnVlKTsKKworICB0ZXN0R2xzbEJ1aWx0aW5zKCk7Cit9CisKKy8vIC0K
KworZnVuY3Rpb24qIHJhbmdlKG4pIHsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHsK
KyAgICB5aWVsZCBpOworICB9CiB9CiAKK2Z1bmN0aW9uIGNyb3NzQ29tYmluZSguLi5hcmdzKSB7
CisgIGZ1bmN0aW9uIGNyb3NzQ29tYmluZTIobGlzdEEsIGxpc3RCKSB7CisgICAgY29uc3QgbGlz
dEMgPSBbXTsKKyAgICBmb3IgKGNvbnN0IGEgb2YgbGlzdEEpIHsKKyAgICAgIGZvciAoY29uc3Qg
YiBvZiBsaXN0QikgeworICAgICAgICBjb25zdCBjID0gT2JqZWN0LmFzc2lnbih7fSwgYSwgYik7
CisgICAgICAgIGxpc3RDLnB1c2goYyk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiBsaXN0
QzsKKyAgfQorCisgIGxldCByZXMgPSBbe31dOworICB3aGlsZSAoYXJncy5sZW5ndGgpIHsKKyAg
ICBjb25zdCBuZXh0ID0gYXJncy5zaGlmdCgpOworICAgIG5leHRbMF0uZGVmaW5lZDsKKyAgICBy
ZXMgPSBjcm9zc0NvbWJpbmUyKHJlcywgbmV4dCk7CisgIH0KKyAgcmV0dXJuIHJlczsKK30KKwor
Ly8gLQorCitjb25zdCBQQVNTVEhST1VHSF9GUkFHX1NSQyA9IGBcCisjdmVyc2lvbiAzMDAgZXMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworaW4gdmVjNCB2X2NvbG9yOworb3V0IHZlYzQgb19j
b2xvcjsKKwordm9pZCBtYWluKCkgeworICBvX2NvbG9yID0gdl9jb2xvcjsKK30KK2A7CisKK2Z1
bmN0aW9uIHRlc3RHbHNsQnVpbHRpbnMoKSB7CisgIGNvbnN0IEVYVCA9IGdsLmdldEV4dGVuc2lv
bignV0VCR0xfZHJhd19pbnN0YW5jZWRfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZScpOworCisg
IGNvbnN0IHZlcnRpZF9wcm9nID0gKCgpID0+IHsKKyAgICAgIGNvbnN0IHZlcnRfc3JjID0gYFwK
KyN2ZXJzaW9uIDMwMCBlcworI2xpbmUgNDA1CitsYXlvdXQobG9jYXRpb24gPSAwKSBpbiBpbnQg
YV92ZXJ0ZXhfaWQ7IC8vIFNhbWUgYXMgZ2xfVmVydGV4SUQKK291dCB2ZWM0IHZfY29sb3I7CisK
K3ZvaWQgbWFpbigpIHsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDEpOworICBnbF9Qb2lu
dFNpemUgPSAxLjA7CisgIHZfY29sb3IgPSB2ZWM0KGZsb2F0KGdsX1ZlcnRleElEKSwgZmxvYXQo
YV92ZXJ0ZXhfaWQpLDAsMCk7CisgIHZfY29sb3IgLz0gMjU1LjA7Cit9CitgOworICAgICAgY29u
c3QgcHJvZyA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFt2ZXJ0X3NyYywgUEFTU1RIUk9VR0hfRlJB
R19TUkNdLAorICAgICAgICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwgLypsb2dTaGFkZXJz
Ki8gdHJ1ZSk7CisgICAgICBleHBlY3RUcnVlKCEhcHJvZywgYG1ha2VfdmVydGlkX3Byb2cgZmFp
bGVkYCk7CisgICAgICByZXR1cm4gcHJvZzsKKyAgICB9KSgpOworCisgIGNvbnN0IGluc3RpZF9w
cm9nID0gKCgpID0+IHsKKyAgICAgIGNvbnN0IHZlcnRfc3JjID0gYFwKKyN2ZXJzaW9uIDMwMCBl
cworI2xpbmUgNDI1CitsYXlvdXQobG9jYXRpb24gPSAwKSBpbiBpbnQgYV92ZXJ0ZXhfaWQ7IC8v
IFNhbWUgYXMgZ2xfVmVydGV4SUQKK2xheW91dChsb2NhdGlvbiA9IDEpIGluIGludCBhX2luc3Rh
bmNlX2RpdjE7IC8vIFNhbWUgYXMgYmFzZV9pbnN0YW5jZStnbF9JbnN0YW5jZUlECitsYXlvdXQo
bG9jYXRpb24gPSAyKSBpbiBpbnQgYV9pbnN0YW5jZV9kaXYyOyAvLyBTYW1lIGFzIGJhc2VfaW5z
dGFuY2UrZmxvb3IoZ2xfSW5zdGFuY2VJRC8yKQorbGF5b3V0KGxvY2F0aW9uID0gMykgaW4gaW50
IGFfaW5zdGFuY2VfZGl2MzsgLy8gU2FtZSBhcyBiYXNlX2luc3RhbmNlK2Zsb29yKGdsX0luc3Rh
bmNlSUQvMykKK291dCB2ZWM0IHZfY29sb3I7CisKK3ZvaWQgbWFpbigpIHsKKyAgZ2xfUG9zaXRp
b24gPSB2ZWM0KDAsMCwwLDEpOworICBnbF9Qb2ludFNpemUgPSAxLjA7CisgIHZfY29sb3IgPSB2
ZWM0KGZsb2F0KGdsX0luc3RhbmNlSUQpLCBmbG9hdChhX2luc3RhbmNlX2RpdjEpLAorICAgICAg
ICAgICAgICAgICBmbG9hdChhX2luc3RhbmNlX2RpdjIpLCBmbG9hdChhX2luc3RhbmNlX2RpdjMp
KTsKKyAgdl9jb2xvciAvPSAyNTUuMDsKK30KK2A7CisgICAgICBjb25zdCBwcm9nID0gd3R1LnNl
dHVwUHJvZ3JhbShnbCwgW3ZlcnRfc3JjLCBQQVNTVEhST1VHSF9GUkFHX1NSQ10sCisgICAgICAg
ICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAvKmxvZ1NoYWRlcnMqLyB0cnVlKTsKKyAgICAg
IGV4cGVjdFRydWUoISFwcm9nLCBgbWFrZV9pbnN0aWRfcHJvZyBmYWlsZWRgKTsKKyAgICAgIHJl
dHVybiBwcm9nOworICAgIH0pKCk7CisKKyAgY29uc3QgQ09VTlRfVVBfREFUQSA9IG5ldyBJbnQz
MkFycmF5KDEwMDApOworICBmb3IgKGNvbnN0IGkgaW4gQ09VTlRfVVBfREFUQSkgeworICAgIENP
VU5UX1VQX0RBVEFbaV0gPSBpOworICB9CisKKyAgY29uc3QgdmVydGV4X2lkX2J1ZiA9IGdsLmNy
ZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4X2lk
X2J1Zik7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBDT1VOVF9VUF9EQVRBLCBn
bC5TVEFUSUNfRFJBVyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICBnbC52
ZXJ0ZXhBdHRyaWJJUG9pbnRlcigwLCAxLCBnbC5JTlQsIDAsIDApOworCisgIGdsLmVuYWJsZVZl
cnRleEF0dHJpYkFycmF5KDEpOworICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigxLCAxLCBnbC5J
TlQsIDAsIDApOworICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDEsIDEpOworCisgIGdsLmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KDIpOworICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigyLCAxLCBn
bC5JTlQsIDAsIDApOworICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDIsIDIpOworCisgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KDMpOworICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigzLCAx
LCBnbC5JTlQsIDAsIDApOworICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDMsIDMpOworCisgIGNv
bnN0IGluZGV4X2J1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkVM
RU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleF9idWYpOworICBnbC5idWZmZXJEYXRhKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBDT1VOVF9VUF9EQVRBLCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgZ2wu
Y2FudmFzLndpZHRoID0gZ2wuY2FudmFzLmhlaWdodCA9IDE7CisgIGdsLmNhbnZhcy5zdHlsZS53
aWR0aCA9IGdsLmNhbnZhcy5zdHlsZS5oZWlnaHQgPSAnMWVtJzsKKyAgZ2wudmlld3BvcnQoMCwg
MCwgMSwgMSk7CisKKyAgY29uc3QgZXhwZWN0X3BpeGVsID0gKCgpID0+IHsKKyAgICBjb25zdCB3
YXMgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICByZXR1cm4gKGRlc2MsIHN1YnRlc3QsIGV4cGVj
dGVkKSA9PiB7CisgICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIHdhcyk7CisgICAgICBpZiAoIWFyZUFycmF5c0VxdWFsKHdhcywgZXhwZWN0
ZWQpKSB7CisgICAgICAgIHRlc3RGYWlsZWQoYCR7c3VidGVzdH06IEV4cGVjdGVkIFske2V4cGVj
dGVkfV0sIHdhcyBbJHt3YXN9XS4gZGVzYzogJHtKU09OLnN0cmluZ2lmeShkZXNjKX1gKTsKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVnKGAke3N1YnRlc3R9OiBXYXMgWyR7d2FzfV0gYXMg
ZXhwZWN0ZWQuYCk7CisgICAgICB9CisgICAgfTsKKyAgfSkoKTsKKworICAvLyBDb21tb24gc2V0
dXAgY29tcGxldGUKKyAgLy8gLQorICAvLyBDcmVhdGUgdGVzdGNhc2VzCisKKyAgY29uc3QgRFJB
V19GVU5DX0NPTUJJTkVSID0gW3sKKyAgICBuYW1lOiAnZHJhd0FycmF5c0luc3RhbmNlZCcsCisg
ICAgZHJhdzogZGVzYyA9PiB7CisgICAgICBpZiAoZGVzYy5iYXNlX3ZlcnQpIHJldHVybiBmYWxz
ZTsKKyAgICAgIGlmIChkZXNjLmJhc2VfaW5zdCkgcmV0dXJuIGZhbHNlOworICAgICAgZ2wuZHJh
d0FycmF5c0luc3RhbmNlZChnbFtkZXNjLm1vZGVdLCBkZXNjLmZpcnN0X3ZlcnQsCisgICAgICAg
ICAgZGVzYy52ZXJ0X2NvdW50LCBkZXNjLmluc3RfY291bnQpOworICAgICAgcmV0dXJuIHRydWU7
CisgICAgfSwKKyAgfSwgeworICAgIG5hbWU6ICdkcmF3RWxlbWVudHNJbnN0YW5jZWQnLAorICAg
IGRyYXc6IGRlc2MgPT4geworICAgICAgaWYgKGRlc2MuYmFzZV92ZXJ0KSByZXR1cm4gZmFsc2U7
CisgICAgICBpZiAoZGVzYy5iYXNlX2luc3QpIHJldHVybiBmYWxzZTsKKyAgICAgIGdsLmRyYXdF
bGVtZW50c0luc3RhbmNlZChnbFtkZXNjLm1vZGVdLCBkZXNjLnZlcnRfY291bnQsCisgICAgICAg
ICAgZ2wuVU5TSUdORURfSU5ULCA0KmRlc2MuZmlyc3RfdmVydCwgZGVzYy5pbnN0X2NvdW50KTsK
KyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisgIH0sIHsKKyAgICBuYW1lOiAnZHJhd0FycmF5
c0luc3RhbmNlZEJhc2VJbnN0YW5jZVdFQkdMJywKKyAgICBkcmF3OiBkZXNjID0+IHsKKyAgICAg
IGlmIChkZXNjLmJhc2VfdmVydCkgcmV0dXJuIGZhbHNlOworICAgICAgaWYgKCFFWFQpIHJldHVy
biBmYWxzZTsKKyAgICAgIEVYVC5kcmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlV0VCR0wo
Z2xbZGVzYy5tb2RlXSwKKyAgICAgICAgZGVzYy5maXJzdF92ZXJ0LCBkZXNjLnZlcnRfY291bnQs
IGRlc2MuaW5zdF9jb3VudCwKKyAgICAgICAgZGVzYy5iYXNlX2luc3QpOworICAgICAgcmV0dXJu
IHRydWU7CisgICAgfSwKKyAgfSwgeworICAgIG5hbWU6ICdkcmF3RWxlbWVudHNJbnN0YW5jZWRC
YXNlVmVydGV4QmFzZUluc3RhbmNlV0VCR0wnLAorICAgIGRyYXc6IGRlc2MgPT4geworICAgICAg
aWYgKCFFWFQpIHJldHVybiBmYWxzZTsKKyAgICAgIEVYVC5kcmF3RWxlbWVudHNJbnN0YW5jZWRC
YXNlVmVydGV4QmFzZUluc3RhbmNlV0VCR0woCisgICAgICAgICAgZ2xbZGVzYy5tb2RlXSwgZGVz
Yy52ZXJ0X2NvdW50LCBnbC5VTlNJR05FRF9JTlQsIDQqZGVzYy5maXJzdF92ZXJ0LAorICAgICAg
ICAgIGRlc2MuaW5zdF9jb3VudCwgZGVzYy5iYXNlX3ZlcnQsIGRlc2MuYmFzZV9pbnN0KTsKKyAg
ICAgIHJldHVybiB0cnVlOworICAgIH0sCisgIH1dOworCisgIC8vIC0KKworICBmdW5jdGlvbiBt
YWtlX2tleV9jb21iaW5lcihrZXksIHZhbHMpIHsKKyAgICBjb25zdCByZXQgPSBbXTsKKyAgICBm
b3IgKGNvbnN0IHYgb2YgdmFscykgeworICAgICAgY29uc3QgY3VyID0ge307CisgICAgICBjdXJb
a2V5XSA9IHY7CisgICAgICByZXQucHVzaChjdXIpOworICAgIH0KKyAgICByZXR1cm4gcmV0Owor
ICB9CisKKyAgY29uc3QgVEVTVF9ERVNDUyA9IGNyb3NzQ29tYmluZSgKKyAgICBEUkFXX0ZVTkNf
Q09NQklORVIsCisgICAgbWFrZV9rZXlfY29tYmluZXIoJ2Jhc2VfdmVydCcsIFswLDEsMl0pLAor
ICAgIG1ha2Vfa2V5X2NvbWJpbmVyKCd2ZXJ0X2NvdW50JywgWzAsMSwyXSksCisgICAgbWFrZV9r
ZXlfY29tYmluZXIoJ2Jhc2VfaW5zdCcsIFswLDEsMl0pLAorICAgIG1ha2Vfa2V5X2NvbWJpbmVy
KCdpbnN0X2NvdW50JywgcmFuZ2UoMTApKSwKKyAgICBtYWtlX2tleV9jb21iaW5lcignZmlyc3Rf
dmVydCcsIFswLDEsMl0pLAorICApOworICBjb25zb2xlLmxvZygnVEVTVF9ERVNDUycsIFRFU1Rf
REVTQ1MpOworCisgIC8vIC0KKyAgLy8gUnVuIHRlc3RjYXNlcworCisgIGdsLmRpc2FibGUoZ2wu
REVQVEhfVEVTVCk7CisgIGdsLmRpc2FibGUoZ2wuU1RFTkNJTF9URVNUKTsKKyAgZ2wuZGlzYWJs
ZShnbC5CTEVORCk7CisKKyAgZm9yIChjb25zdCBkZXNjIG9mIFRFU1RfREVTQ1MpIHsKKyAgICBn
bC5kaXNhYmxlKGdsLlNDSVNTT1JfVEVTVCk7CisgICAgZ2wuY2xlYXJCdWZmZXJmdihnbC5DT0xP
UiwgMCwgWzEsMCwwLDFdKTsKKworICAgIC8vIEZyb20gT3BlbkdMIEVTIDMuMiBzcGVjIHNlY3Rp
b24gMTAuNQorICAgIC8vIGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L09wZW5HTC9z
cGVjcy9lcy8zLjIvZXNfc3BlY18zLjIucGRmCisgICAgLy8gVGhlIGluZGV4IG9mIGFueSBlbGVt
ZW50IHRyYW5zZmVycmVkIHRvIHRoZSBHTCBieSBEcmF3QXJyYXlzT25lSW5zdGFuY2UKKyAgICAv
LyBpcyByZWZlcnJlZCB0byBhcyBpdHMgdmVydGV4IElELCBhbmQgbWF5IGJlIHJlYWQgYnkgYSB2
ZXJ0ZXggc2hhZGVyIGFzIGdsX1ZlcnRleElELgorICAgIC8vIFRoZSB2ZXJ0ZXggSUQgb2YgdGhl
IGl0aCBlbGVtZW50IHRyYW5zZmVycmVkIGlzIGZpcnN0ICsgaS4KKyAgICBjb25zdCBsYXN0X2ds
X3ZlcnRfaWQgPSBkZXNjLmJhc2VfdmVydCArIGRlc2MuZmlyc3RfdmVydCArIGRlc2MudmVydF9j
b3VudCAtIDE7CisgICAgY29uc3QgbGFzdF92ZXJ0X2lkID0gbGFzdF9nbF92ZXJ0X2lkOworICAg
IGNvbnN0IGxhc3RfaW5zdF9pZCA9IGRlc2MuaW5zdF9jb3VudCAtIDE7CisgICAgY29uc3QgbGFz
dF9pbnN0X2RpdjEgPSBkZXNjLmJhc2VfaW5zdCArIGxhc3RfaW5zdF9pZDsKKyAgICBjb25zdCBs
YXN0X2luc3RfZGl2MiA9IGRlc2MuYmFzZV9pbnN0ICsgTWF0aC5mbG9vcihsYXN0X2luc3RfaWQg
LyAyKTsKKyAgICBjb25zdCBsYXN0X2luc3RfZGl2MyA9IGRlc2MuYmFzZV9pbnN0ICsgTWF0aC5m
bG9vcihsYXN0X2luc3RfaWQgLyAzKTsKKworICAgIGdsLnVzZVByb2dyYW0odmVydGlkX3Byb2cp
OworICAgIGlmICghZGVzYy5kcmF3KGRlc2MpKSBjb250aW51ZTsKKyAgICBkZWJ1ZygnXG5kZXNj
OiAnICsgSlNPTi5zdHJpbmdpZnkoZGVzYykpOworCisgICAgd3R1LmdsRXJyb3JBc3NlcnQoZ2ws
IDApOworICAgIGlmICghZGVzYy52ZXJ0X2NvdW50IHx8ICFkZXNjLmluc3RfY291bnQpIHsKKyAg
ICAgIGV4cGVjdF9waXhlbChkZXNjLCAndmVydGlkX3Byb2cnLCBbMjU1LCAwLCAwLCAyNTVdKTsK
KyAgICAgIGNvbnRpbnVlOworICAgIH0KKworICAgIGV4cGVjdF9waXhlbChkZXNjLCAndmVydGlk
X3Byb2cnLCBbbGFzdF9nbF92ZXJ0X2lkLCBsYXN0X3ZlcnRfaWQsIDAsIDBdKTsKKworICAgIGds
LnVzZVByb2dyYW0oaW5zdGlkX3Byb2cpOworICAgIGRlc2MuZHJhdyhkZXNjKTsKKyAgICBleHBl
Y3RfcGl4ZWwoZGVzYywgJ2luc3RpZF9wcm9nJywgW2xhc3RfaW5zdF9pZCwgbGFzdF9pbnN0X2Rp
djEsIGxhc3RfaW5zdF9kaXYyLCBsYXN0X2luc3RfZGl2M10pOworICB9Cit9CisKKy8vIC0KKwog
ZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICBjb25zdCBleHQg
PSBnbC5nZXRFeHRlbnNpb24oZXh0ZW5zaW9uTmFtZSk7CiAgIGlmICghcnVuU3VwcG9ydGVkVGVz
dChleHRlbnNpb25OYW1lLCBleHQpKSB7CkBAIC0yODIsMjEgKzUxMSwxOSBAQCBmdW5jdGlvbiBk
b1Rlc3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgICAgY29uc3QgdnMgPSBbCiAgICAg
ICAnI3ZlcnNpb24gMzAwIGVzJywKICAgICAgIGNvbmZpZy5pc011bHRpRHJhdyA/ICcjZXh0ZW5z
aW9uIEdMX0FOR0xFX211bHRpX2RyYXcgOiByZXF1aXJlJyA6ICcnLAotICAgICAgJyNleHRlbnNp
b24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSA6IHJlcXVpcmUnLAogICAgICAg
JyNkZWZpbmUga0NvdW50WCAnICsgY291bnRYLnRvU3RyaW5nKCksCiAgICAgICAnI2RlZmluZSBr
Q291bnRZICcgKyBjb3VudFkudG9TdHJpbmcoKSwKICAgICAgICdsYXlvdXQobG9jYXRpb24gPSAw
KSBpbiB2ZWMyIHZQb3NpdGlvbjsnLAotICAgICAgY29uZmlnLnVzZUJhc2VJbnN0YW5jZUJ1aWx0
aW4gPyAnJyA6ICdsYXlvdXQobG9jYXRpb24gPSAxKSBpbiBmbG9hdCB2SW5zdGFuY2VJRDsnLAor
ICAgICAgJ2xheW91dChsb2NhdGlvbiA9IDEpIGluIGZsb2F0IHZJbnN0YW5jZUlEOycsCiAgICAg
ICAnb3V0IHZlYzQgY29sb3I7JywKICAgICAgICd2b2lkIG1haW4oKScsCiAgICAgICAneycsCiAg
ICAgICAnICBjb25zdCBmbG9hdCB4U3RlcCA9IDEuMCAvIGZsb2F0KGtDb3VudFgpOycsCiAgICAg
ICAnICBjb25zdCBmbG9hdCB5U3RlcCA9IDEuMCAvIGZsb2F0KGtDb3VudFkpOycsCi0gICAgICAn
ICBmbG9hdCB4SUQgPSAnICsgKGNvbmZpZy51c2VCYXNlSW5zdGFuY2VCdWlsdGluID8gJ2Zsb2F0
KGdsX0luc3RhbmNlSUQgKyBnbF9CYXNlSW5zdGFuY2UpJyA6ICd2SW5zdGFuY2VJRCcpICsgJzsn
LAorICAgICAgJyAgZmxvYXQgeElEID0gdkluc3RhbmNlSUQ7JywKICAgICAgICcgIGZsb2F0IHhD
b2xvciA9IDEuMCAtIHhTdGVwICogeElEOycsCiAgICAgICAnICBmbG9hdCB5SUQgPSBmbG9vcihm
bG9hdChnbF9WZXJ0ZXhJRCkgLyAnICsgKGNvbmZpZy5pc0RyYXdBcnJheXMgPyAnNi4wJyA6ICc0
LjAnKSArICcgKyAwLjAxKTsnLAotICAgICAgJyAgY29sb3IgPSB2ZWM0KHhDb2xvciwgMS4wIC0g
eVN0ZXAgKiB5SUQsICcsCi0gICAgICBjb25maWcudXNlQmFzZVZlcnRleEJ1aWx0aW4gPyAnMS4w
IC0geVN0ZXAgKiBmbG9hdChnbF9CYXNlVmVydGV4KSAvIDQuMCcgOiAnMS4wJywKKyAgICAgICcg
IGNvbG9yID0gdmVjNCh4Q29sb3IsIDEuMCAtIHlTdGVwICogeUlELCAxLjAnLAogICAgICAgJyAg
LCAxLjApOycsCiAgICAgICAnICBtYXQzIHRyYW5zZm9ybSA9IG1hdDMoMS4wKTsnLAogICAgICAg
JyAgdHJhbnNmb3JtWzJdWzBdID0geElEICogeFN0ZXA7JywKQEAgLTMyMiw3ICs1NDksNyBAQCBm
dW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgICAgZ2wuYmluZEJ1
ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGluc3RhbmNlQnVmZmVyKTsKICAgICBnbC5idWZmZXJEYXRh
KGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAsIDEsIDIgXSksIGJ1ZmZlclVz
YWdlKTsKIAotICAgIGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbJ3ZzaGFk
ZXJTaW1wbGUnLCAnZnNoYWRlciddLCBbJ3ZQb3NpdGlvbiwgdkluc3RhbmNlSUQnXSwgWzAsIDFd
KTsKKyAgICBjb25zdCBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyd2c2hhZGVyU2lt
cGxlJywgJ2ZzaGFkZXInXSwgWyd2UG9zaXRpb24sIHZJbnN0YW5jZUlEJ10sIFswLCAxXSwgdHJ1
ZSk7CiAgICAgZXhwZWN0VHJ1ZShwcm9ncmFtICE9IG51bGwsICJjYW4gY29tcGlsZSBzaW1wbGUg
cHJvZ3JhbSIpOwogCiAgICAgZnVuY3Rpb24gc2V0dXBJbnN0YW5jZWQoKSB7CkBAIC00OTAsMzgg
KzcxNywyNyBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAg
IH0KIAogICBmdW5jdGlvbiBydW5TaGFkZXJUZXN0cyhidWZmZXJVc2FnZSkgewotICAgIGNvbnN0
IGlsbGVnYWxCYXNlSW5zdGFuY2VQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hh
ZGVySWxsZWdhbEJhc2VJbnN0YW5jZSIsICJmc2hhZGVyIl0pOwotICAgIGV4cGVjdFRydWUoaWxs
ZWdhbEJhc2VJbnN0YW5jZVByb2dyYW0gPT0gbnVsbCwgImNhbm5vdCBjb21waWxlIHByb2dyYW0g
d2l0aCBnbF9CYXNlSW5zdGFuY2UgYnV0IG5vIGV4dGVuc2lvbiBkaXJlY3RpdmUiKTsKLSAgICBj
b25zdCBpbGxlZ2FsQmFzZVZlcnRleFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZz
aGFkZXJJbGxlZ2FsQmFzZVZlcnRleCIsICJmc2hhZGVyIl0pOwotICAgIGV4cGVjdFRydWUoaWxs
ZWdhbEJhc2VWZXJ0ZXhQcm9ncmFtID09IG51bGwsICJjYW5ub3QgY29tcGlsZSBwcm9ncmFtIHdp
dGggZ2xfQmFzZVZlcnRleCBidXQgbm8gZXh0ZW5zaW9uIGRpcmVjdGl2ZSIpOworICAgIGxldCBi
YWRQcm9ncmFtOworCisgICAgYmFkUHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNo
YWRlckJhc2VJbnN0YW5jZVdpdGhvdXRFeHQiLCAiZnNoYWRlciJdKTsKKyAgICBleHBlY3RUcnVl
KCFiYWRQcm9ncmFtLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VJbnN0YW5j
ZSBidXQgbm8gZXh0ZW5zaW9uIGRpcmVjdGl2ZSIpOworICAgIGJhZFByb2dyYW0gPSB3dHUuc2V0
dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlVmVydGV4V2l0aG91dEV4dCIsICJmc2hhZGVyIl0p
OworICAgIGV4cGVjdFRydWUoIWJhZFByb2dyYW0sICJjYW5ub3QgY29tcGlsZSBwcm9ncmFtIHdp
dGggZ2xfQmFzZVZlcnRleCBidXQgbm8gZXh0ZW5zaW9uIGRpcmVjdGl2ZSIpOworCisgICAgYmFk
UHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlcldpdGhFeHQiLCAiZnNoYWRl
ciJdKTsKKyAgICBleHBlY3RUcnVlKCFiYWRQcm9ncmFtLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3Jh
bSB3aXRoICNleHRlbnNpb24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSIpOwog
CiAgICAgY29uc3QgeCA9IE1hdGguZmxvb3Iod2lkdGggKiAwLjQpOwogICAgIGNvbnN0IHkgPSBN
YXRoLmZsb29yKGhlaWdodCAqIDAuNCk7CiAgICAgY29uc3QgeFNpemUgPSBNYXRoLmZsb29yKHdp
ZHRoICogMC4yKTsKICAgICBjb25zdCB5U2l6ZSA9IE1hdGguZmxvb3IoaGVpZ2h0ICogMC4yKTsK
IAotICAgIC8vIGdsX0Jhc2VJbnN0YW5jZSBhbmQgZ2xfSW5zdGFuY2VJRAorICAgIC8vIGdsX0lu
c3RhbmNlSUQKICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuY3JlYXRlQnVm
ZmVyKCkpOwogICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFy
cmF5KFsgMCwwLCAxLDAsIDAuNSwxLCAwLDEsIDAuNSwwLCAxLDEgXSksIGJ1ZmZlclVzYWdlKTsK
ICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKICAgICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKDAsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CiAKLSAgICBjb25zdCBiYXNlSW5z
dGFuY2VaZXJvUHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckJhc2VJbnN0
YW5jZVplcm8iLCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdLCBbMF0pOwotICAgIGV4cGVjdFRy
dWUoYmFzZUluc3RhbmNlWmVyb1Byb2dyYW0gIT09IG51bGwsICJjYW4gY29tcGlsZSBwcm9ncmFt
IHdpdGggZ2xfQmFzZUluc3RhbmNlIik7Ci0gICAgZ2wudXNlUHJvZ3JhbShiYXNlSW5zdGFuY2Va
ZXJvUHJvZ3JhbSk7Ci0KLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7Ci0gICAgaWYgKCFtdWx0aURyYXcpIHsKLSAgICAgIGV4dC5kcmF3QXJy
YXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlV0VCR0woZ2wuVFJJQU5HTEVTLCAwLCA2LCAxLCA1KTsK
LSAgICB9IGVsc2UgewotICAgICAgZXh0Lm11bHRpRHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0
YW5jZVdFQkdMKGdsLlRSSUFOR0xFUywgWzBdLCAwLCBbNl0sIDAsIFsxXSwgMCwgWzVdLCAwLCAx
KTsKLSAgICB9Ci0KLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7Ci0gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotCi0g
ICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgeCwgeSwgeFNpemUsIHlTaXplLCBbMCwgMjU1LCAw
LCAyNTVdLCAiZ2xfQmFzZUluc3RhbmNlIGlzIDAgZm9yIG5vbi1CYXNlSW5zdGFuY2UgZHJhdyBj
YWxscyIpOwotCiAgICAgY29uc3QgaW5zdGFuY2VJRFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFt
KGdsLCBbInZzaGFkZXJJbnN0YW5jZUlEQ2hlY2siLCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJd
LCBbMF0pOwogICAgIGV4cGVjdFRydWUoaW5zdGFuY2VJRFByb2dyYW0gIT09IG51bGwsICJjYW4g
Y29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfSW5zdGFuY2VJRCIpOwogICAgIGdsLnVzZVByb2dyYW0o
aW5zdGFuY2VJRFByb2dyYW0pOwpAQCAtNTM1LDcgKzc1MSw3IEBAIGZ1bmN0aW9uIGRvVGVzdChl
eHRlbnNpb25OYW1lLCBtdWx0aURyYXcpIHsKIAogICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2ws
IHgsIHksIHhTaXplLCB5U2l6ZSwgWzAsIDI1NSwgMCwgMjU1XSwgImdsX0luc3RhbmNlSUQgc2hv
dWxkIGFsd2F5cyBzdGFydHMgZnJvbSAwIik7CiAKLSAgICAvLyBnbF9CYXNlVmVydGV4IGFuZCBn
bF9WZXJ0ZXhJRAorICAgIC8vIGdsX1ZlcnRleElECiAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIGdsLmNyZWF0ZUJ1ZmZlcigpKTsKICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAsMCwgMSwwLCAwLjUsMSwgMCwxLCAwLjUsMCwg
MSwxLCAwLDAsIDEsMCwgMC41LDEsIDAsMSBdKSwgYnVmZmVyVXNhZ2UpOwogICAgIGdsLmJpbmRC
dWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGdsLmNyZWF0ZUJ1ZmZlcigpKTsKQEAgLTU0
MywyMiArNzU5LDYgQEAgZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykg
ewogICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwogICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMCwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKIAotICAgIGNvbnN0IGJhc2VW
ZXJ0ZXhaZXJvUHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckJhc2VWZXJ0
ZXhaZXJvIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRpb24iXSwgWzBdKTsKLSAgICBleHBlY3RUcnVl
KGJhc2VWZXJ0ZXhaZXJvUHJvZ3JhbSAhPT0gbnVsbCwgImNhbiBjb21waWxlIHByb2dyYW0gd2l0
aCBnbF9CYXNlVmVydGV4Iik7Ci0gICAgZ2wudXNlUHJvZ3JhbShiYXNlVmVydGV4WmVyb1Byb2dy
YW0pOwotCi0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZF
Ul9CSVQpOwotICAgIGlmICghbXVsdGlEcmF3KSB7Ci0gICAgICBleHQuZHJhd0VsZW1lbnRzSW5z
dGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZVdFQkdMKGdsLlRSSUFOR0xFUywgNiwgZ2wuVU5T
SUdORURfQllURSwgMCwgMSwgMywgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGV4dC5tdWx0aURy
YXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2VXRUJHTChnbC5UUklBTkdM
RVMsIFs2XSwgMCwgZ2wuVU5TSUdORURfQllURSwgWzBdLCAwLCBbMV0sIDAsIFszXSwgMCwgWzBd
LCAwLCAxKTsKLSAgICB9Ci0KLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wu
REVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgNiwg
Z2wuVU5TSUdORURfQllURSwgMCk7Ci0KLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCB4LCB5
LCB4U2l6ZSwgeVNpemUsIFswLCAyNTUsIDAsIDI1NV0sICJnbF9CYXNlVmVydGV4IGlzIDAgZm9y
IG5vbi1CYXNlVmVydGV4IGRyYXcgY2FsbHMiKTsKLQogICAgIGNvbnN0IHZlcnRleElEUHJvZ3Jh
bSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlclZlcnRleElEQ2hlY2siLCAiZnNoYWRl
ciJdLCBbInZQb3NpdGlvbiJdLCBbMF0pOwogICAgIGV4cGVjdFRydWUodmVydGV4SURQcm9ncmFt
ICE9PSBudWxsLCAiY2FuIGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX1ZlcnRleElEIik7CiAgICAg
Z2wudXNlUHJvZ3JhbSh2ZXJ0ZXhJRFByb2dyYW0pOwpAQCAtNjc3LDMwICs4NzcsNiBAQCBmdW5j
dGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgICAgICB1c2VCYXNlSW5z
dGFuY2VCdWlsdGluOiBmYWxzZQogICAgIH0pOwogCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRy
YXdGdW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2Ug
OiBkcmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlLAotICAgICAgaXNEcmF3QXJyYXlzOiB0
cnVlLAotICAgICAgaXNNdWx0aURyYXc6IG11bHRpRHJhdywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhC
dWlsdGluOiB0cnVlLAotICAgICAgdXNlQmFzZUluc3RhbmNlQnVpbHRpbjogZmFsc2UKLSAgICB9
KTsKLQotICAgIGNoZWNrRHJhdyh7Ci0gICAgICBkcmF3RnVuYzogbXVsdGlEcmF3ID8gbXVsdGlE
cmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlIDogZHJhd0FycmF5c0luc3RhbmNlZEJhc2VJ
bnN0YW5jZSwKLSAgICAgIGlzRHJhd0FycmF5czogdHJ1ZSwKLSAgICAgIGlzTXVsdGlEcmF3OiBt
dWx0aURyYXcsCi0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogZmFsc2UsCi0gICAgICB1c2VC
YXNlSW5zdGFuY2VCdWlsdGluOiB0cnVlCi0gICAgfSk7Ci0KLSAgICBjaGVja0RyYXcoewotICAg
ICAgZHJhd0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0
YW5jZSA6IGRyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UsCi0gICAgICBpc0RyYXdBcnJh
eXM6IHRydWUsCi0gICAgICBpc011bHRpRHJhdzogbXVsdGlEcmF3LAotICAgICAgdXNlQmFzZVZl
cnRleEJ1aWx0aW46IHRydWUsCi0gICAgICB1c2VCYXNlSW5zdGFuY2VCdWlsdGluOiB0cnVlCi0g
ICAgfSk7Ci0KICAgICBjaGVja0RyYXcoewogICAgICAgZHJhd0Z1bmM6IG11bHRpRHJhdyA/IG11
bHRpRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZSA6IGRyYXdFbGVt
ZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UsCiAgICAgICBpc0RyYXdBcnJheXM6
IGZhbHNlLApAQCAtNzA4LDMwICs4ODQsNiBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFt
ZSwgbXVsdGlEcmF3KSB7CiAgICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogZmFsc2UsCiAgICAg
ICB1c2VCYXNlSW5zdGFuY2VCdWlsdGluOiBmYWxzZQogICAgIH0pOwotCi0gICAgY2hlY2tEcmF3
KHsKLSAgICAgIGRyYXdGdW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdFbGVtZW50c0luc3RhbmNl
ZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UgOiBkcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4
QmFzZUluc3RhbmNlLAotICAgICAgaXNEcmF3QXJyYXlzOiBmYWxzZSwKLSAgICAgIGlzTXVsdGlE
cmF3OiBtdWx0aURyYXcsCi0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogdHJ1ZSwKLSAgICAg
IHVzZUJhc2VJbnN0YW5jZUJ1aWx0aW46IGZhbHNlCi0gICAgfSk7Ci0KLSAgICBjaGVja0RyYXco
ewotICAgICAgZHJhd0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0VsZW1lbnRzSW5zdGFuY2Vk
QmFzZVZlcnRleEJhc2VJbnN0YW5jZSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhC
YXNlSW5zdGFuY2UsCi0gICAgICBpc0RyYXdBcnJheXM6IGZhbHNlLAotICAgICAgaXNNdWx0aURy
YXc6IG11bHRpRHJhdywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGluOiBmYWxzZSwKLSAgICAg
IHVzZUJhc2VJbnN0YW5jZUJ1aWx0aW46IHRydWUKLSAgICB9KTsKLQotICAgIGNoZWNrRHJhdyh7
Ci0gICAgICBkcmF3RnVuYzogbXVsdGlEcmF3ID8gbXVsdGlEcmF3RWxlbWVudHNJbnN0YW5jZWRC
YXNlVmVydGV4QmFzZUluc3RhbmNlIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZSwKLSAgICAgIGlzRHJhd0FycmF5czogZmFsc2UsCi0gICAgICBpc011bHRpRHJh
dzogbXVsdGlEcmF3LAotICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IHRydWUsCi0gICAgICB1
c2VCYXNlSW5zdGFuY2VCdWlsdGluOiB0cnVlCi0gICAgfSk7CiAgIH0KIAogICBmb3IgKGxldCBp
ID0gMDsgaSA8IGJ1ZmZlclVzYWdlU2V0Lmxlbmd0aDsgaSsrKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xz
bDMvYXJyYXktZXF1YWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sCmluZGV4
IGEzZWVmZDViZjQwNWRmYzUzZTA2Y2FmMzkwMWM1MGIyYmI1YjhlNTEuLmRjZmZhMmMwYTMyNzdj
MWM3OGE4OTVhMjUwOWY0YTg5OGFiODRkZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9hcnJheS1lcXVh
bGl0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sCkBAIC02MSw2ICs2MSw1
NCBAQCB2b2lkIG1haW4oKSB7CiAgICAgbXlfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIChzdWNjZXNz
ID8gMS4wIDogMC4wKSwgMC4wLCAxLjApOwogfQogPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzaW1w
bGUtZmxvYXQtYXJyYXktZnMiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMw
MCBlcworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZvcm0gZmxvYXQgYVszXTsKK3Vu
aWZvcm0gZmxvYXQgYlszXTsKKworb3V0IHZlYzQgZnJhZ0NvbG9yOworCit2b2lkIG1haW4odm9p
ZCkgeworICAgIGZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKKworICAgIGlm
IChhID09IGIpIHsKKyAgICAgICAgZnJhZ0NvbG9yLmcgPSAxLjA7CisgICAgfQorfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IGlkPSJzaW1wbGUtdmVjLWFycmF5LWZzIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlm
b3JtIHZlYzMgYVszXTsKK3VuaWZvcm0gdmVjMyBiWzNdOworCitvdXQgdmVjNCBmcmFnQ29sb3I7
CisKK3ZvaWQgbWFpbih2b2lkKSB7CisgICAgZnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4w
LCAxLjApOworCisgICAgaWYgKGEgPT0gYikgeworICAgICAgICBmcmFnQ29sb3IuZyA9IDEuMDsK
KyAgICB9Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InNpbXBsZS1tYXQtYXJyYXktZnMiIHR5
cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisKK3VuaWZvcm0gbWF0MyBhWzNdOwordW5pZm9ybSBtYXQzIGJbM107CisKK291
dCB2ZWM0IGZyYWdDb2xvcjsKKwordm9pZCBtYWluKHZvaWQpIHsKKyAgICBmcmFnQ29sb3IgPSB2
ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisKKyAgICBpZiAoYSA9PSBiKSB7CisgICAgICAgIGZy
YWdDb2xvci5nID0gMS4wOworICAgIH0KK30KKzwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0Ij4KICJ1c2Ugc3RyaWN0IjsKIGRlc2NyaXB0aW9uKCJDb21wYXJp
bmcgYXJyYXlzIHNob3VsZCB3b3JrLiIpOwpAQCAtNzcsNyArMTI1LDExNCBAQCBHTFNMQ29uZm9y
bWFuY2VUZXN0ZXIucnVuUmVuZGVyVGVzdHMoWwogICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKICAg
bGlua1N1Y2Nlc3M6IHRydWUsCiAgIHBhc3NNc2c6ICdBcnJheXMgb2Ygc3RydWN0cycKLX0KK30s
Cit7CisgIGZTaGFkZXJJZDogInNpbXBsZS1mbG9hdC1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNj
ZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICBwYXNz
TXNnOiAiU2ltcGxlIGZsb2F0IGFycmF5IHdpdGggZGVmYXVsdCB2YWx1ZXMiLAorfSwKK3sKKyAg
ZlNoYWRlcklkOiAic2ltcGxlLWZsb2F0LWFycmF5LWZzIiwKKyAgZlNoYWRlclN1Y2Nlc3M6IHRy
dWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6IHRydWUsCisgIHJlbmRlckNvbG9y
OiBbMCwgMCwgMCwgMjU1XSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7IG5hbWU6ICdhJywgZnVuY3Rp
b25OYW1lOiAndW5pZm9ybTFmdicsIHZhbHVlOiBbMSwgMiwgM119LAorICAgIHsgbmFtZTogJ2In
LCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtMWZ2JywgdmFsdWU6IFsxLCAyLCA0XX0sCisgIF0sCisg
IHBhc3NNc2c6ICJTaW1wbGUgZmxvYXQgYXJyYXkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIiwKK30s
Cit7CisgIGZTaGFkZXJJZDogInNpbXBsZS1mbG9hdC1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNj
ZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICB1bmlm
b3JtczogWworICAgIHsgbmFtZTogJ2EnLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtMWZ2JywgdmFs
dWU6IFsxLCAyLCAzXX0sCisgICAgeyBuYW1lOiAnYicsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm0x
ZnYnLCB2YWx1ZTogWzEsIDIsIDNdfSwKKyAgXSwKKyAgcGFzc01zZzogIlNpbXBsZSBmbG9hdCBh
cnJheSB3aXRoIHNhbWUgdmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDogInNpbXBsZS12ZWMt
YXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUs
CisgIHJlbmRlcjogdHJ1ZSwKKyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBkZWZh
dWx0IHZhbHVlcyIsCit9LAoreworICBmU2hhZGVySWQ6ICJzaW1wbGUtdmVjLWFycmF5LWZzIiwK
KyAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6
IHRydWUsCisgIHJlbmRlckNvbG9yOiBbMCwgMCwgMCwgMjU1XSwKKyAgdW5pZm9ybXM6IFsKKyAg
ICB7IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTNmdicsIHZhbHVlOiBbMSwgMiwg
MywgNCwgNSwgNiwgNywgOCwgOV19LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1
bmlmb3JtM2Z2JywgdmFsdWU6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCAxMF19LAorICBdLAor
ICBwYXNzTXNnOiAiU2ltcGxlIHZlYyBhcnJheSB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLAorfSwK
K3sKKyAgZlNoYWRlcklkOiAic2ltcGxlLXZlYy1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNz
OiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICB1bmlmb3Jt
czogWworICAgIHsgbmFtZTogJ2EnLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtM2Z2JywgdmFsdWU6
IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XX0sCisgICAgeyBuYW1lOiAnYicsIGZ1bmN0aW9u
TmFtZTogJ3VuaWZvcm0zZnYnLCB2YWx1ZTogWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDldfSwK
KyAgXSwKKyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBzYW1lIHZhbHVlcyIsCit9
LAoreworLy8gICAgICAgICAgICJzaW1wbGUtbWF0LWFycmF5LWZzIgorICBmU2hhZGVySWQ6ICJz
aW1wbGUtbWF0LWFycmF5LWZzIiwKKyAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgIGxpbmtTdWNj
ZXNzOiB0cnVlLAorICByZW5kZXI6IHRydWUsCisgIHBhc3NNc2c6ICJTaW1wbGUgbWF0IGFycmF5
IHdpdGggZGVmYXVsdCB2YWx1ZXMiLAorfSwKK3sKKyAgZlNoYWRlcklkOiAic2ltcGxlLW1hdC1h
cnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwK
KyAgcmVuZGVyOiB0cnVlLAorICByZW5kZXJDb2xvcjogWzAsIDAsIDAsIDI1NV0sCisgIHVuaWZv
cm1zOiBbCisgICAgeyBuYW1lOiAnYScsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm1NYXRyaXgzZnYn
LCB2YWx1ZTogWworICAgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKKyAg
ICAgIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksCisgICAgICAzMSwgMzIsIDMz
LCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LAorICAgIF19LAorICAgIHsgbmFtZTogJ2InLCBmdW5j
dGlvbk5hbWU6ICd1bmlmb3JtTWF0cml4M2Z2JywgdmFsdWU6IFsKKyAgICAgIDExLCAxMiwgMTMs
IDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksCisgICAgICAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAy
NywgMjgsIDI5LAorICAgICAgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDMwLCAzOSwKKyAg
ICBdfSwKKyAgXSwKKyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBkaWZmZXJlbnQg
dmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDogInNpbXBsZS1tYXQtYXJyYXktZnMiLAorICBm
U2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1
ZSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9y
bU1hdHJpeDNmdicsIHZhbHVlOiBbCisgICAgICAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywg
MTgsIDE5LAorICAgICAgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwKKyAgICAg
IDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksCisgICAgXX0sCisgICAgeyBuYW1l
OiAnYicsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm1NYXRyaXgzZnYnLCB2YWx1ZTogWworICAgICAg
MTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKKyAgICAgIDIxLCAyMiwgMjMsIDI0
LCAyNSwgMjYsIDI3LCAyOCwgMjksCisgICAgICAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywg
MzgsIDM5LAorICAgIF19LAorICBdLAorICBwYXNzTXNnOiAiU2ltcGxlIHZlYyBhcnJheSB3aXRo
IHNhbWUgdmFsdWVzIiwKK30sCiBdLCAyKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21l
bnQtc2hhZGVyLWxvb3AtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTcxYjk0ZTI2YTEwYjJmNGEz
MmE2NzU3M2M5YTY2Y2I0NTMxMGM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50
LXNoYWRlci1sb29wLWNyYXNoLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCEtLQorQ29weXJpZ2h0
IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+RnJhZ21lbnQgc2hhZGVyIGNv
bnRhaW5pbmcgbG9vcCBzaG91bGQgbm90IGNyYXNoPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9nbHNsLWZlYXR1cmUtdGVzdHMu
Y3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0
ZXgiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIGhpZ2hwIGZsb2F0Oworb3V0IHZlYzIgdl90
ZXhfY29vcmQ7Cit1bmlmb3JtIG1hdDQgbWF0cml4OworCit2b2lkIG1haW4oKSB7CisgICB2X3Rl
eF9jb29yZCA9IHZlYzIoMC4wLCAwLjApOworICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4w
LCAwLjAsIDAuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIGhpZ2hwIGZsb2F0
OworCitpbiB2ZWMyIHZfdGV4X2Nvb3JkOworb3V0IHZlYzQgb3V0X2NvbG9yOworCit1bmlmb3Jt
IHNhbXBsZXIyRCB0ZXh0dXJlXzE7Cit1bmlmb3JtIHZlYzIgcmVzb2x1dGlvbjsKKwordmVjNCBk
b19sb29wcyh2ZWM0IHopCit7CisgICAgdmVjNCB2WzE2XTsKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IDE2OyBpKyspCisgICAgeworICAgICAgICB2W2ldID0gejsKKyAgICB9CisgICAgcmV0dXJu
IHZbMV07Cit9CisKK3ZvaWQgbWFpbigpIHsKKyAgICBvdXRfY29sb3IgPSBkb19sb29wcyh2ZWM0
KDAuMiwgMC40LCAwLjYsIDEuMCkpIC0gdGV4dHVyZSh0ZXh0dXJlXzEsIHZfdGV4X2Nvb3JkKTsK
K30KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKyJ1
c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCk7Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
K2NvbnN0IHRlc3RzID0gWworICAgIHsKKyAgICAgICAgdlNoYWRlclNvdXJjZTogd3R1LmdldFNj
cmlwdCgndnNoYWRlcicpLAorICAgICAgICBmU2hhZGVyU291cmNlOiB3dHUuZ2V0U2NyaXB0KCdm
c2hhZGVyJyksCisgICAgICAgIHZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICAgICAgICBmU2hhZGVy
U3VjY2VzczogdHJ1ZSwKKyAgICAgICAgbGlua1N1Y2Nlc3M6IHRydWUsCisgICAgICAgIHBhc3NN
c2c6ICdGcmFnbWVudCBzaGFkZXIgY29udGFpbmluZyBhIHNpbXBsZSBsb29wIHNob3VsZCBjb21w
aWxlIGFuZCBsaW5rJworICAgIH0KK107CisKK0dMU0xDb25mb3JtYW5jZVRlc3Rlci5ydW5UZXN0
cyh0ZXN0cywgMik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9n
bHNsMy9tYXRyaXgtcm93LW1ham9yLWR5bmFtaWMtaW5kZXhpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9tYXRy
aXgtcm93LW1ham9yLWR5bmFtaWMtaW5kZXhpbmcuaHRtbAppbmRleCA4Y2JjYjk5MzRjMjJiOTdk
OGZiYTBhNzkwYTU2Y2EwYTIzNWVlOWNiLi5lYzZhOWJiZDFiZTQ1M2ZiMmIyYzAxMTkwMDBlYWU0
NWMzODE3NmU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJvdy1tYWpvci1keW5hbWljLWlu
ZGV4aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL21hdHJpeC1yb3ctbWFqb3ItZHluYW1pYy1pbmRleGlu
Zy5odG1sCkBAIC0zMyw2ICszMywyMiBAQCB2b2lkIG1haW4oKSB7CiAgICAgbXlfRnJhZ0NvbG9y
ID0gdmVjNCgxLjAgLSBmLCBmLCAwLjAsIDEuMCk7CiB9CiA8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9
ImZzaGFkZXJSb3dNYXRyaXhJbmRleGVkQnlSb3dNYXRyaXhJblVuaWZvcm1CbG9jayIgdHlwZT0i
eC1zaGFkZXIveC1mcmFnbWVudCI+I3ZlcnNpb24gMzAwIGVzCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKwordW5pZm9ybSBTdHVmZiB7CisgIGxheW91dChyb3dfbWFqb3IpIG1hdDQgdV9tYXRb
M107CisgIGxheW91dChyb3dfbWFqb3IpIG1hdDQgdV9uZHhbM107Cit9IHN0dWZmOworCisKK291
dCB2ZWM0IG15X0ZyYWdDb2xvcjsKKwordm9pZCBtYWluKCkgeworICB2ZWM0IHJvdyA9IHN0dWZm
LnVfbWF0W2ludChzdHVmZi51X25keFsxXVsxXVszXSldWzJdOworICBteV9GcmFnQ29sb3IgPSBy
b3cgPT0gdmVjNCg5LCAxMCwgMTEsIDEyKSA/IHZlYzQoMCwgMSwgMCwgMSkgOiB2ZWM0KDEsIDAs
IDAsIDEpOworfQorPC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiPgogInVzZSBzdHJpY3QiOwogZGVzY3JpcHRpb24oIkluZGV4aW5nIHJvdy1tYWpvciBtYXRy
aWNlcyB3aXRoaW4gYSB1bmlmb3JtIGJsb2NrIHNob3VsZCB3b3JrIik7CkBAIC00OSw2ICs2NSw1
MSBAQCBHTFNMQ29uZm9ybWFuY2VUZXN0ZXIucnVuUmVuZGVyVGVzdHMoWwogICAgIDAsIDAsIDAs
IDAsCiAgICAgMCwgMCwgMCwgMCwKICAgXSl9XSwKK30sCit7CisgIGZTaGFkZXJJZDogJ2ZzaGFk
ZXJSb3dNYXRyaXhJbmRleGVkQnlSb3dNYXRyaXhJblVuaWZvcm1CbG9jaycsCisgIGZTaGFkZXJT
dWNjZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcGFzc01zZzogJycsCisgIHVu
aWZvcm1CbG9ja3M6IFt7bmFtZTogIlN0dWZmIiwgdmFsdWU6IG5ldyBGbG9hdDMyQXJyYXkoWwor
ICAgIC8vIG1hdDQgdV9tYXRbM10KKyAgICAgMSwgIDIsICAzLCAgNCwKKyAgICAgNSwgIDYsICA3
LCAgOCwKKyAgICAgOSwgMTAsIDExLCAxMiwKKyAgICAxMywgMTQsIDE1LCAxNiwKKworICAgICAg
ICAgLy8gICstLSB3ZSBzaG91bGQgYmUgcHVsbGluZyBvdXQgdGhpcyBjb2x1bW4KKyAgICAgICAg
IC8vICB8CisgICAgICAgICAvLyAgVgorICAgICAxLCAgNSwgIDksIDEzLAorICAgICAyLCAgNiwg
MTAsIDE0LAorICAgICAzLCAgNywgMTEsIDE1LAorICAgICA0LCAgOCwgMTIsIDE2LAorCisgICAg
IDIsIDEwLCAxOCwgMjIsCisgICAgIDQsIDEyLCAyMCwgMjgsCisgICAgIDYsIDE0LCAyMiwgMzAs
CisgICAgIDgsIDE2LCAyNCwgMzIsCisKKyAgICAvLyBtYXQ0IHVfbmR4WzNdCisgICAgMCwgMCwg
MCwgMCwKKyAgICAwLCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwK
KworICAgIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMiwKKyAgICAwLCAwLCAwLCAwLAorICAg
IDAsIDEsIDAsIDAsCisgICAgLy8gXgorICAgIC8vIHwKKyAgICAvLyArLS0gd2Ugc2hvdWxkIGJl
IHJlYWRpbmcgdGhpcyB2YWx1ZSBhcyBhbiBpbmRleCBpbnRvIHVfbWF0CisKKyAgICAwLCAwLCAw
LCAwLAorICAgIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLAor
ICBdKX1dLAogfQogXSwgMik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJv
Y2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2Fs
LXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTE1MjNhZWEw
NWQwZjhkY2NkM2QyNTZlN2VjYjZlZjZkMjRkOGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wz
L3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sCkBAIC0wLDAgKzEs
NjYgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPlNoYWRlciBpZGVudGlmaWVkIGFzIGNvbnRhaW5pbmcgcmVjaXByb2NhbCBzcXVhcmUgcm9v
dCBvZiBzdW0gb2Ygc3F1YXJlcyBzaG91bGQgbm90IGNyYXNoPC90aXRsZT4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9nbHNsLWZlYXR1cmUt
dGVzdHMuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwordm9pZCBtYWluKCkgeworICAgZ2xfUG9zaXRpb24g
PSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDAuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZz
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lz
aW9uIGhpZ2hwIGZsb2F0OworCisjZGVmaW5lIENSQVNIIDEKKworb3V0IHZlYzQgZnJhZ21lbnRD
b2xvcjsKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiBwID0gZ2xfRnJhZ0Nvb3JkLnh5OworICAg
IC8vIFRoaXMgZXhwcmVzc2lvbiBtZWV0cyB0aGUgcmVxdWlyZW1lbnQgb2YgYmVpbmcgdGhlIHJl
Y2lwcm9jYWwKKyAgICAvLyBzcXVhcmUgcm9vdCBvZiBhIHN1bSBvZiBzcXVhcmVzLgorICAgIGZs
b2F0IGQgPSAxLjAgLyBsZW5ndGgocCk7CisjaWYgQ1JBU0gKKyAgICBpZiAocC54ID4gMC4wKQor
ICAgIHsKKyAgICAgICAgZCAqPSAyLjA7CisgICAgfQorI2VuZGlmCisgICAgZnJhZ21lbnRDb2xv
ciA9IHZlYzQoZCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2
YXNjcmlwdCI+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigpOworZGVidWcoJ1JlZ3Jlc3Np
b24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTA3OTMwOSI+Y3JidWcuY29t
LzEwNzkzMDk8L2E+Jyk7Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHRlc3Rz
ID0gWworICAgIHsKKyAgICAgICAgdlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgndnNoYWRl
cicpLAorICAgICAgICBmU2hhZGVyU291cmNlOiB3dHUuZ2V0U2NyaXB0KCdmc2hhZGVyJyksCisg
ICAgICAgIHZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICAgICAgICBmU2hhZGVyU3VjY2VzczogdHJ1
ZSwKKyAgICAgICAgbGlua1N1Y2Nlc3M6IHRydWUsCisgICAgICAgIHBhc3NNc2c6ICdTaGFkZXIg
Y29udGFpbmluZyBleHByZXNzaW9uIHRoYXQgZHJpdmVyIHJlY29nbml6ZXMgYXMgcmVjaXByb2Nh
bCBzcXVhcmUgcm9vdCBvZiBzdW0gb2Ygc3F1YXJlcyBzaG91bGQgY29tcGlsZSBhbmQgbGluaycK
KyAgICB9CitdOworCitHTFNMQ29uZm9ybWFuY2VUZXN0ZXIucnVuVGVzdHModGVzdHMsIDIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRl
Z2VyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjY2ZkMGQ4
NjBjZWIzMjllOGQ0YWRiNGU5N2U5NjEyZDE0OGIzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNj
L2JsZW5kLWludGVnZXIuaHRtbApAQCAtMCwwICsxLDE3NiBAQAorPCEtLQorQ29weXJpZ2h0IChj
KSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgMiBCbGVuZCBJbnRlZ2Vy
IENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGlkPSJv
dXRwdXRWZXJ0ZXhTaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyN2ZXJzaW9uIDMw
MCBlcworaW4gdmVjNCB2UG9zaXRpb247Cit2b2lkIG1haW4oKQoreworICBnbF9Qb3NpdGlvbiA9
IHZQb3NpdGlvbjsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0ib3V0cHV0RnJhZ21lbnRTaGFk
ZXJTaWduZWQiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorI3ZlcnNpb24gMzAwIGVzCits
YXlvdXQobG9jYXRpb24gPSAxKSBvdXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIxOworbGF5b3V0
KGxvY2F0aW9uID0gMikgb3V0IGhpZ2hwIGl2ZWM0IG9fZHJhd0J1ZmZlcjI7CitsYXlvdXQobG9j
YXRpb24gPSAzKSBvdXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIzOwordm9pZCBtYWluKHZvaWQp
Cit7CisgIG9fZHJhd0J1ZmZlcjEgPSB2ZWM0KDAsIDAsIDAsIDApOworICBvX2RyYXdCdWZmZXIy
ID0gaXZlYzQoMCwgMCwgMCwgMCk7CisgIG9fZHJhd0J1ZmZlcjMgPSB2ZWM0KDAsIDAsIDAsIDAp
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJvdXRwdXRGcmFnbWVudFNoYWRlclVuc2lnbmVk
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgI3ZlcnNpb24gMzAwIGVzCisgIGxheW91
dChsb2NhdGlvbiA9IDEpIG91dCBoaWdocCB2ZWM0IG9fZHJhd0J1ZmZlcjE7CisgIGxheW91dChs
b2NhdGlvbiA9IDIpIG91dCBoaWdocCB1dmVjNCBvX2RyYXdCdWZmZXIyOworICBsYXlvdXQobG9j
YXRpb24gPSAzKSBvdXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIzOworICB2b2lkIG1haW4odm9p
ZCkKKyAgeworICAgIG9fZHJhd0J1ZmZlcjEgPSB2ZWM0KDAsIDAsIDAsIDApOworICAgIG9fZHJh
d0J1ZmZlcjIgPSB1dmVjNCgwLCAwLCAwLCAwKTsKKyAgICBvX2RyYXdCdWZmZXIzID0gdmVjNCgw
LCAwLCAwLCAwKTsKKyAgfQorICA8L3NjcmlwdD4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgY29ycmVjdCBiZWhhdmlvciBvZiBtaW4v
bWF4IGJsZW5kaW5nIG9wZXJhdGlvbnMgb24gaW50ZWdlciBhdHRhY2htZW50cy4iKTsKKworZGVi
dWcoIiIpOworCitjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dChudWxsLCB1bmRlZmluZWQsIDIpOworCitpZiAoIWdsKSB7CisgIHRlc3RG
YWlsZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgIHRlc3RQ
YXNzZWQoIldlYkdMIGNvbnRleHQgZXhpc3RzIik7CisKKyAgZGVidWcoIiIpCisgIGRlYnVnKCJH
TF9NSU4iKTsKKyAgcnVuVGVzdChmYWxzZSwgZ2wuTUlOKTsKKyAgcnVuVGVzdCh0cnVlLCBnbC5N
SU4pOworCisgIGRlYnVnKCIiKQorICBkZWJ1ZygiR0xfTUFYIik7CisgIHJ1blRlc3QoZmFsc2Us
IGdsLk1BWCk7CisgIHJ1blRlc3QodHJ1ZSwgZ2wuTUFYKTsKK30KKworZnVuY3Rpb24gY29tcGFy
ZVZhbHVlKHZhbHVlLCBhdHRhY2htZW50LCBpc1NpZ25lZCkgeworICBjb25zdCBwaXhlbCA9IGlz
U2lnbmVkID8gbmV3IEludDMyQXJyYXkoNCkgOiBuZXcgVWludDMyQXJyYXkoNCk7CisgIGdsLnJl
YWRCdWZmZXIoYXR0YWNobWVudCk7CisgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdC
QV9JTlRFR0VSLCBpc1NpZ25lZCA/IGdsLklOVCA6IGdsLlVOU0lHTkVEX0lOVCwgcGl4ZWwpOwor
ICBsZXQgcGFzcyA9IHRydWU7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAg
aWYgKHZhbHVlW2ldICE9IHBpeGVsW2ldKSB7CisgICAgICB0ZXN0RmFpbGVkKGBSZWFkIHZhbHVl
IG9mIGNoYW5uZWwgJHtpfSBzaG91bGQgYmUgJHtwaXhlbFtpXX0sIHdhcyAke3ZhbHVlW2ldfS5g
KTsKKyAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHBhc3M7Cit9CisK
K2Z1bmN0aW9uIHJ1blRlc3QoaXNTaWduZWQsIG9wZXJhdGlvbikgeworICBnbC52aWV3cG9ydCgw
LCAwLCAxLCAxKTsKKyAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAgY29uc3QgcHJvZ3JhbSA9
IHd0dS5zZXR1cFByb2dyYW0oZ2wsCisgICAgWyJvdXRwdXRWZXJ0ZXhTaGFkZXIiLAorICAgICAg
aXNTaWduZWQgPyAib3V0cHV0RnJhZ21lbnRTaGFkZXJTaWduZWQiIDogIm91dHB1dEZyYWdtZW50
U2hhZGVyVW5zaWduZWQiXSwKKyAgICBbJ3ZQb3NpdGlvbiddLCBbMF0pOworICBjb25zdCBxdWFk
UGFyYW1ldGVycyA9IHd0dS5zZXR1cFVuaXRRdWFkKGdsLCAwLCAxKTsKKworICAvLyBTZXR1cCBy
ZW5kZXIgdGFyZ2V0cworICBjb25zdCBmYiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgIGds
LmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmIpOworCisgIGNvbnN0IHJiMSA9IGds
LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJV
RkZFUiwgcmIxKTsKKyAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGds
LlJHQkE4LCA1MCwgNTApOworICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDEsIGdsLlJFTkRFUkJVRkZFUiwgcmIxKTsKKworICBj
b25zdCByYjIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKKyAgZ2wuYmluZFJlbmRlcmJ1ZmZl
cihnbC5SRU5ERVJCVUZGRVIsIHJiMik7CisgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVO
REVSQlVGRkVSLCBpc1NpZ25lZCA/IGdsLlJHQkEzMkkgOiBnbC5SR0JBMzJVSSwgNTAsIDUwKTsK
KyAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQyLCBnbC5SRU5ERVJCVUZGRVIsIHJiMik7CisKKyAgY29uc3QgcmIzID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCk7CisgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVS
LCByYjMpOworICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdC
QTgsIDUwLCA1MCk7CisgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMywgZ2wuUkVOREVSQlVGRkVSLCByYjMpOworCisgIGdsLmRy
YXdCdWZmZXJzKFtnbC5OT05FLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMSwgZ2wuQ09MT1JfQVRUQUNI
TUVOVDIsIGdsLkNPTE9SX0FUVEFDSE1FTlQzXSk7CisKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJQaXBlbGluZSBzZXR1cCBjb21wbGV0ZS4iKTsKKworICBpZiAoaXNT
aWduZWQpIHsKKyAgICBjb25zdCBjbGVhclZhbHVlID0gbmV3IEludDMyQXJyYXkoWy0xLCAyLCAt
MywgNF0pOworICAgIGdsLmNsZWFyQnVmZmVyaXYoZ2wuQ09MT1IsIDIsIGNsZWFyVmFsdWUpOwor
ICAgIGlmIChjb21wYXJlVmFsdWUoY2xlYXJWYWx1ZSwgZ2wuQ09MT1JfQVRUQUNITUVOVDIsIGlz
U2lnbmVkKSkgeworICAgICAgdGVzdFBhc3NlZCgiU2lnbmVkIGNsZWFyIHBhc3NlZC4iKTsKKyAg
ICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiU2lnbmVkIGNsZWFyIGZhaWxlZC4iKTsKKyAg
ICB9CisgIH0gZWxzZSB7CisgICAgY29uc3QgY2xlYXJWYWx1ZSA9IG5ldyBVaW50MzJBcnJheShb
MSwgMiwgMywgNF0pOworICAgIGdsLmNsZWFyQnVmZmVydWl2KGdsLkNPTE9SLCAyLCBjbGVhclZh
bHVlKTsKKyAgICBpZiAoY29tcGFyZVZhbHVlKGNsZWFyVmFsdWUsIGdsLkNPTE9SX0FUVEFDSE1F
TlQyLCBpc1NpZ25lZCkpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlVuc2lnbmVkIGNsZWFyIHBhc3Nl
ZC4iKTsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiVW5zaWduZWQgY2xlYXIgZmFp
bGVkLiIpOworICAgIH0KKyAgfQorCisgIGdsLmJsZW5kRXF1YXRpb24ob3BlcmF0aW9uKTsKKyAg
Z2wuZW5hYmxlKGdsLkJMRU5EKTsKKworICB3dHUuZHJhd1VuaXRRdWFkKGdsKTsKKyAgd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJEcmF3IGNvbXBsZXRlLiIpOworCisgIGlm
IChpc1NpZ25lZCkgeworICAgIGNvbnN0IGRyYXdWYWx1ZSA9IG5ldyBJbnQzMkFycmF5KFswLCAw
LCAwLCAwXSk7CisgICAgaWYgKGNvbXBhcmVWYWx1ZShkcmF3VmFsdWUsIGdsLkNPTE9SX0FUVEFD
SE1FTlQyLCBpc1NpZ25lZCkpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlNpZ25lZCBkcmF3IHBhc3Nl
ZC4iKTsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiU2lnbmVkIGRyYXcgZmFpbGVk
LiIpOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBjb25zdCBkcmF3VmFsdWUgPSBuZXcgVWludDMy
QXJyYXkoWzAsIDAsIDAsIDBdKTsKKyAgICBpZiAoY29tcGFyZVZhbHVlKGRyYXdWYWx1ZSwgZ2wu
Q09MT1JfQVRUQUNITUVOVDIsIGlzU2lnbmVkKSkgeworICAgICAgdGVzdFBhc3NlZCgiVW5zaWdu
ZWQgZHJhdyBwYXNzZWQuIik7CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlVuc2ln
bmVkIGRyYXcgZmFpbGVkLiIpOworICAgIH0KKyAgfQorICBnbC5kZWxldGVSZW5kZXJidWZmZXIo
cmIxKTsKKyAgZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKHJiMik7CisgIGdsLmRlbGV0ZVJlbmRlcmJ1
ZmZlcihyYjMpOworICBnbC5kZWxldGVGcmFtZWJ1ZmZlcihmYik7CisgIGdsLmRlbGV0ZVByb2dy
YW0ocHJvZ3JhbSk7Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Byb2dyYW1zL2dsLWdl
dC1mcmFnLWRhdGEtbG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1nZXQtZnJhZy1kYXRhLWxv
Y2F0aW9uLmh0bWwKaW5kZXggZmY2NjI4MmMwNGY0ZGZlNmE5MDcwMzY0NDFkYjg4NGQ0MGY4MzU1
YS4uMWUwMDZlYmQyODA5YzJkNGNmNzNhOGI4NzljMTQwMTM2Y2VhMGZkOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3Byb2dyYW1zL2dsLWdldC1mcmFnLWRhdGEtbG9jYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcHJvZ3JhbXMv
Z2wtZ2V0LWZyYWctZGF0YS1sb2NhdGlvbi5odG1sCkBAIC0xLDUgKzEsNSBAQAog77u/PCEtLQot
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK0NvcHlyaWdodCAoYykg
MjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCiAtLT4KQEAgLTQzLDYgKzQzLDE4IEBAIHZvaWQgbWFpbigpIHsK
IH0KIDwvc2NyaXB0PgogCis8c2NyaXB0IGlkPSJ2cy1lczIiIHR5cGU9Ingtc2hhZGVyL3gtdmVy
dGV4Ij4KK3ZvaWQgbWFpbigpIHsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsIDAsIDAsIDEpOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmcy1lczIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21l
bnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit2b2lkIG1haW4oKSB7CisgIGdsX0ZyYWdD
b2xvciA9IHZlYzQoMCwgMSwgMCwgMSk7Cit9Cis8L3NjcmlwdD4KKwogPHNjcmlwdD4KICJ1c2Ug
c3RyaWN0IjsKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgZ2V0RnJhZ0RhdGFMb2Nh
dGlvbiBiZWhhdmlvcnMuIik7CkBAIC02MSwxNCArNzMsMjMgQEAgaWYgKCFnbCkgewogfQogCiBm
dW5jdGlvbiBydW5UZXN0cygpIHsKLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGds
LCBbInZzIiwgImZzIl0pOwotICB2YXIgcHJvZ3JhbUFycmF5ID0gd3R1LnNldHVwUHJvZ3JhbShn
bCwgWyJ2cyIsICJmcy1hcnJheSJdKTsKLSAgaWYgKCFwcm9ncmFtIHx8ICFwcm9ncmFtQXJyYXkp
IHsKKyAgd2luZG93LnByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzIiwgImZzIl0p
OworICB3aW5kb3cucHJvZ3JhbUFycmF5ID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJm
cy1hcnJheSJdKTsKKyAgd2luZG93LnByb2dyYW1FczIgPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBb
InZzLWVzMiIsICJmcy1lczIiXSk7CisgIGlmICghcHJvZ3JhbSB8fCAhcHJvZ3JhbUFycmF5IHx8
ICFwcm9ncmFtRXMyKSB7CiAgICAgdGVzdEZhaWxlZCgiU2V0IHVwIHByb2dyYW0gZmFpbGVkIik7
CiAgICAgcmV0dXJuOwogICB9CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiTm8gR0wgZXJyb3IgZnJvbSBzZXQgdXAiKTsKIAorICBzaG91bGRCZSgiZ2wuZ2V0RnJhZ0Rh
dGFMb2NhdGlvbihwcm9ncmFtLCAnZ2xfRnJhZ0NvbG9yJykiLCAiLTEiKTsKKyAgc2hvdWxkQmUo
ImdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbUFycmF5LCAnZ2xfRnJhZ0NvbG9yJykiLCAi
LTEiKTsKKyAgc2hvdWxkQmUoImdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbUVzMiwgJ2ds
X0ZyYWdDb2xvcicpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFnRGF0YUxvY2F0aW9u
KHByb2dyYW0sICdnbF9GcmFnRGF0YScpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFn
RGF0YUxvY2F0aW9uKHByb2dyYW1BcnJheSwgJ2dsX0ZyYWdEYXRhJykiLCAiLTEiKTsKKyAgc2hv
dWxkQmUoImdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbUVzMiwgJ2dsX0ZyYWdEYXRhJyki
LCAiLTEiKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJObyBHTCBl
cnJvciBmcm9tIGdsXyogcXVlcmllcyIpOworCiAgIHZhciBsb2MwID0gZ2wuZ2V0RnJhZ0RhdGFM
b2NhdGlvbihwcm9ncmFtLCAiZnJhZ0NvbG9yMCIpOwogICB2YXIgbG9jMSA9IGdsLmdldEZyYWdE
YXRhTG9jYXRpb24ocHJvZ3JhbSwgImZyYWdDb2xvcjEiKTsKICAgaWYgKGxvYzAgIT0gMiB8fCBs
b2MxICE9IDApIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZm
ZWN0ZWQtYnktY29sb3JtYXNrLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFm
ZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMmQ3ZjU0YmNhNWYyMDEwZmI4
MmYzNGUyMGQ4YTE2MmZhOGUxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRm
cmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sCkBAIC0wLDAgKzEsMTAyIEBA
Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5C
bGl0RnJhbWVidWZmZXIgU2hvdWxkIEJlIFVuYWZmZWN0ZWQgYnkgQ29sb3JNYXNrPC90aXRsZT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI4IiBoZWlnaHQ9Ijgi
PjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CisKK2NvbnN0IHd0dSA9IFdlYkdM
VGVzdFV0aWxzOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBibGl0
RnJhbWVidWZmZXIgaXMgdW5hZmZlY3RlZCBieSB0aGUgY29sb3JNYXNrIHN0YXRlLiIpOworCitk
ZWJ1ZygnUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2NyYnVnLmNvbS8xMjU3
NzY5Ij5odHRwczovL2NyYnVnLmNvbS8xMjU3NzY5PC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDEyOSI+aHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDEyOTwvYT4nKTsKKworZnVuY3Rpb24gYWxsb2NhdGVU
ZXh0dXJlKGdsLCBzaXplKSB7CisgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwor
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBOCwgc2l6ZSwgc2l6ZSwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgbnVsbCk7CisgICAgcmV0dXJuIHRleDsKK30KKworZnVuY3Rpb24gYWxs
b2NhdGVGQk8oZ2wsIHRleCkgeworICAgIGNvbnN0IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCk7CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkRSQVdfRlJBTUVCVUZGRVIsIGZibyk7Cisg
ICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRFJBV19GUkFNRUJVRkZFUiwgZ2wuQ09MT1Jf
QVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7CisgICAgcmV0dXJuIGZibzsKK30K
KworZnVuY3Rpb24gcnVuKCkgeworICAgIGNvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgi
Y2FudmFzIiwgeyBhbnRpYWxpYXM6IGZhbHNlIH0sIDIpOworCisgICAgaWYgKCFnbCkgeworICAg
ICAgICB0ZXN0RmFpbGVkKCJXZWJHTCBjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7CisgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IHNpemUg
PSA4OworCisgICAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8v
IEFsbG9jYXRlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdGV4dHVyZXMgYW5kIGZyYW1lYnVmZmVy
IG9iamVjdHMuCisgICAgY29uc3Qgc291cmNlVGV4ID0gYWxsb2NhdGVUZXh0dXJlKGdsLCBzaXpl
KTsKKyAgICBjb25zdCBzb3VyY2VGQk8gPSBhbGxvY2F0ZUZCTyhnbCwgc291cmNlVGV4KTsKKwor
ICAgIGNvbnN0IGRlc3RUZXggPSBhbGxvY2F0ZVRleHR1cmUoZ2wsIHNpemUpOworICAgIGNvbnN0
IGRlc3RGQk8gPSBhbGxvY2F0ZUZCTyhnbCwgZGVzdFRleCk7CisKKyAgICBjb25zdCBwcm9ncmFt
ID0gd3R1LnNldHVwQ29sb3JRdWFkKGdsKTsKKworICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgc291cmNlRkJPKTsKKworICAgIC8vIENsZWFyIHRoZSBzb3VyY2UgZnJhbWVi
dWZmZXIgdG8gcmVkLgorICAgIGdsLmNsZWFyQ29sb3IoMSwgMCwgMCwgMSk7CisgICAgZ2wuY29s
b3JNYXNrKHRydWUsIHRydWUsIHRydWUsIHRydWUpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQpOworCisgICAgLy8gRHJhdyBhIHRyYW5zcGFyZW50IGdyZWVuIHF1YWQuCisgICAg
Z2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKKyAgICB3dHUuZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCBb
IDAsIDI1NSwgMCwgMCBdKTsKKworICAgIC8vIENsZWFyIHRoZSBhbHBoYSBjaGFubmVsLgorICAg
IGdsLmNvbG9yTWFzayhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICBnbC5jbGVhckNv
bG9yKDAsIDAsIDAsIDEpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisg
ICAgLy8gQXQgdGhpcyBwb2ludCwgZXZlbiBzZXR0aW5nIHRoZSBjb2xvck1hc2sgdG8gYWxsLXRy
dWUgd29uJ3QKKyAgICAvLyB3b3JrIGFyb3VuZCB0aGUgYnVnLCBzaW5jZSB0aGF0IHN0YXRlIGlz
IGxhdGNoZWQgaW5zaWRlIEFOR0xFCisgICAgLy8gb25seSBkdXJpbmcgZHJhd3MgLyBjbGVhcnMu
CisKKyAgICAvLyBCbGl0IHNvdXJjZSB0byBkZXN0LgorICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihn
bC5EUkFXX0ZSQU1FQlVGRkVSLCBkZXN0RkJPKTsKKyAgICBnbC5ibGl0RnJhbWVidWZmZXIoMCwg
MCwgc2l6ZSwgc2l6ZSwgMCwgMCwgc2l6ZSwgc2l6ZSwgZ2wuQ09MT1JfQlVGRkVSX0JJVCwgZ2wu
TkVBUkVTVCk7CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLlJFQURfRlJBTUVCVUZGRVIsIGRl
c3RGQk8pOworCisgICAgLy8gTm90ZSB0aGF0IHRoZSBvbi1zY3JlZW4gY2FudmFzIGlzIGFsd2F5
cyBibGFjayAtIHdlIGRvbid0IGJsaXQgdGhlIHJlc3VsdCB0byBpdC4KKyAgICB3dHUuY2hlY2tD
YW52YXMoZ2wsIFsgMCwgMjU1LCAwLCAyNTUgXSwgInNob3VsZCBiZSBncmVlbiIsIDEpOworICAg
IGZpbmlzaFRlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3Jl
cXVlc3RBbmltYXRpb25GcmFtZShydW4pOworCis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2Nh
dGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRp
b25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM2NzlkZjZhMjk0MDlmZTUwNjY4MDRhYjE0YzI1YTdkYzI4
NzNhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1v
dXRwdXQtbG9jYXRpb25zLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKK++7vzwhLS0KK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3RzOiBWZXJpZnkgZHJhd0J1ZmZlcnMgc3BhcnNlIG91dHB1dCBsb2NhdGlvbnM8L3RpdGxl
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxjYW52YXMg
aWQ9ImNhbnZhcyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgc3R5bGU9IndpZHRoOiA0cHg7IGhlaWdo
dDogNHB4OyI+IDwvY2FudmFzPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQg
aWQ9InZzIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCit2b2lkIG1h
aW4oKSB7CisgIGdsX1BvaW50U2l6ZSA9IDEwMC4wOworICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwg
MCwgMCwgMSk7Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0iZnMiIHR5cGU9Ingtc2hhZGVy
L3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworLy8gZnJhZ21lbnQgc2hhZGVyIG9ubHkgb3V0
cHV0cyB0byBhdHRhY2htZW50cyAxIGFuZCAzCitwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CitsYXlv
dXQobG9jYXRpb24gPSAxKSBvdXQgdmVjNCBvdXRwdXQxOworbGF5b3V0KGxvY2F0aW9uID0gMykg
b3V0IHZlYzQgb3V0cHV0MjsKK3ZvaWQgbWFpbigpCit7CisgICAgb3V0cHV0MSA9IHZlYzQoMC4w
LCAxLjAsIDAuMCwgMS4wKTsKKyAgICBvdXRwdXQyID0gdmVjNCgwLjAsIDAuMCwgMS4wLCAxLjAp
OworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IHZlcmlmaWVzIHNwYXJzZSBvdXRwdXQgbG9jYXRpb25zIG9mIGZyYWdtZW50IHNo
YWRlcnMgcmVuZGVyIGNvcnJlY3RseSIpOworCitkZWJ1ZygiIik7CisKK3ZhciB3dHUgPSBXZWJH
TFRlc3RVdGlsczsKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFz
Iik7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgbnVsbCwgMik7CisKK2lm
ICghZ2wpIHsKKyAgdGVzdEZhaWxlZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwor
fSBlbHNlIHsKKyAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsKKyAgcnVuVGVz
dHMoKTsKK30KKworZnVuY3Rpb24gdGVzdEF0dGFjaG1lbnQoYXR0YWNobWVudCwgZXhwZWN0ZWQp
IHsKKyAgZ2wucmVhZEJ1ZmZlcihnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGF0dGFjaG1lbnQpOwor
ICB3dHUuY2hlY2tDYW52YXMoZ2wsIGV4cGVjdGVkLCBgY2hlY2sgQ09MT1JfQVRUQUNITUVOVCR7
YXR0YWNobWVudH1gLCAxKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgIHZhciBwcm9n
cmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJmcyJdKTsKKyAgaWYgKCFwcm9ncmFt
KSB7CisgICAgdGVzdEZhaWxlZCgiU2V0IHVwIHByb2dyYW0gZmFpbGVkIik7CisgICAgcmV0dXJu
OworICB9CisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisKKyAgLy8gY3JlYXRlIGEgZnJhbWVi
dWZmZXIgd2l0aCA0IDF4MSBwaXhlbCBjb2xvciBhdHRhY2htZW50cworICBjb25zdCBmYiA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZmIpOworCisgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgY29uc3QgdGV4
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBOCwgMSwg
MSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgICAgZ2wuZnJhbWVidWZm
ZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgaSwgZ2wu
VEVYVFVSRV8yRCwgdGV4LCAwKTsKKyAgfQorCisgIC8vIGRyYXcgb25seSB0byB0aGUgMXN0IGFu
ZCAzcmQgYXR0YWNobWVudHMKKyAgZ2wuZHJhd0J1ZmZlcnMoWworICAgIGdsLk5PTkUsCisgICAg
Z2wuQ09MT1JfQVRUQUNITUVOVDEsCisgICAgZ2wuTk9ORSwKKyAgICBnbC5DT0xPUl9BVFRBQ0hN
RU5UMywKKyAgXSk7CisKKyAgLy8gZHJhdworICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwg
MSk7CisKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJObyBHTCBlcnJv
ciBmcm9tIHNldCB1cCIpOworCisgIC8vIGNoZWNrIHdlIGdvdCB0aGUgY29ycmVjdCB2YWx1ZXMK
KyAgdGVzdEF0dGFjaG1lbnQoMCwgWzAsIDAsIDAsIDBdKTsKKyAgdGVzdEF0dGFjaG1lbnQoMSwg
WzAsIDI1NSwgMCwgMjU1XSk7CisgIHRlc3RBdHRhY2htZW50KDIsIFswLCAwLCAwLCAwXSk7Cisg
IHRlc3RBdHRhY2htZW50KDMsIFswLCAwLCAyNTUsIDI1NV0pOworCisgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3IgZnJvbSB0ZXN0aW5nIik7Cit9CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1v
YmplY3QtZ2V0LWNhbGxzLmh0bWwKaW5kZXggZWY3NzU5M2Q5MmMyY2ZlYWE2NDNjZDA3OTQ5N2U1
YTIzNzkzODJjYi4uNjJlZDcwZDViZDQ3YmU5OTJjYzY4YmMwMzhhMjM5NjMxM2FkYjFjZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wt
b2JqZWN0LWdldC1jYWxscy5odG1sCkBAIC0xNSwxMiArMTUsOSBAQCBmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KIDxib2R5PgogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci0KIDxzY3JpcHQ+CiB2YXIgY29udGV4dFZlcnNpb24gPSAy
OwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1j
YWxscy5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzZhMTE4Y2MxZGRhZjU3MzE0YTQyN2UwYjA0
MjhiZWQwOGQ0Njk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTDIgT3JpZ2luIFJlc3Ry
aWN0aW9ucyBDb25mb3JtYW5jZSBUZXN0cyBmb3IgT2Zmc2NyZWVuQ2FudmFzPC90aXRsZT4KLTxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+Ci08aW1n
IGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7
Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0KLS8vIENoZWNrcyBpZiBmdW5jdGlvbiB0aHJv
d3MgYW4gZXhjZXB0aW9uLgotZnVuY3Rpb24gY2F1c2VkRXhjZXB0aW9uKGZ1bmMpIHsKLSAgdmFy
IGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICB0cnkgewotICAgIGZ1bmMoKTsKLSAgfSBjYXRjaChl
KSB7Ci0gICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKLSAgfQotICByZXR1cm4gaGFkRXhjZXB0aW9u
OwotfQotCi12YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9y
bWFuY2UtcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4v
Li4vLi4vcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Ci0KLXZhciBpbWdEb21haW47Ci12YXIg
cGFnZURvbWFpbjsKLQotZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1nKSB7Ci0gIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTDIgaW1wbGVtZW50YXRpb25zIGZvciBPZmZzY3JlZW5D
YW52YXMgZm9sbG93IHByb3BlciBzYW1lLW9yaWdpbiByZXN0cmljdGlvbnMuIik7Ci0KLSAgaWYg
KCF3aW5kb3cuT2Zmc2NyZWVuQ2FudmFzKSB7Ci0gICAgdGVzdFBhc3NlZCgiTm8gT2Zmc2NyZWVu
Q2FudmFzIHN1cHBvcnQiKTsKLSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0K
LSAgYXNzZXJ0TXNnKGltZy53aWR0aCA+IDAgJiYgaW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxv
YWRlZCIpOwotICBpbWdEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3dHUuZ2V0SG9zdChpbWcu
c3JjKSk7Ci0gIHBhZ2VEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3aW5kb3cubG9jYXRpb24u
aG9zdCk7Ci0gIGFzc2VydE1zZyhpbWdEb21haW4gIT0gcGFnZURvbWFpbiwKLSAgICAgICAgICAg
ICJpbWcgZG9tYWluICgiICsgaW1nRG9tYWluICsgIikgYW5kIHBhZ2UgZG9tYWluICgiICsgcGFn
ZURvbWFpbiArICIpIGFyZSBub3QgdGhlIHNhbWUuIik7Ci0KLSAgZnVuY3Rpb24gbWFrZVRleElt
YWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTAsIDEwLCAwLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBzcmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVGV4U3Vi
SW1hZ2UyRChnbCwgc3JjKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCAxMCwgMTAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFn
ZTNEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhJbWFn
ZTNEKGdsLlRFWFRVUkVfM0QsIDAsIGdsLlJHQkEsIDEwLCAxMCwgMSwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRleFN1
YkltYWdlM0QoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRl
eFN1YkltYWdlM0QoZ2wuVEVYVFVSRV8zRCwgMCwgMCwgMCwgMCwgMTAsIDEwLCAxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtl
UmVhZFBpeGVscyhnbCkgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBidWYg
PSBuZXcgVWludDhBcnJheSg0KTsKLSAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgICB9OwotICB9Ci0KLSAgdmFyIG9mZnNj
cmVlbmNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKLSAgdmFyIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dChvZmZzY3JlZW5jYW52YXMsIG51bGwsIDIpOwotCi0gIGRlYnVnKCIi
KTsKLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJv
bSBhbm90aGVyIG9yaWdpbiB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgdGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwot
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2Vw
dGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3
aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3Nl
cnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAg
ICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJv
dyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdl
M0QoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleEltYWdlM0Qgd2l0aCBjcm9zcy1vcmlnaW4g
aW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2Vw
dGlvbihtYWtlVGV4U3ViSW1hZ2UzRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4U3ViSW1h
Z2UzRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwot
Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2Fp
bnN0IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlv
bihtYWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5l
dmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdl
YkdMMiBjYW52YXMuIik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxv
YWQgYSB0YWludGVkIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotICB2YXIgY3R4MmQgPSBjYW52
YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gIGFz
c2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGNhbnZhcykpLAotICAg
ICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQg
dGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhT
dWJJbWFnZTJEKGdsLCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGgg
Tk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNz
ZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UzRChnbCwgY2FudmFzKSksCi0gICAg
ICAgICAgICAidGV4SW1hZ2UzRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0
aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1
YkltYWdlM0QoZ2wsIGNhbnZhcykpLAotICAgICAgICAgICAgInRleFN1YkltYWdlM0Qgd2l0aCBO
T04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRl
YnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlz
IG9mZnNjcmVlbmNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJl
YWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJv
dyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTDIgY2Fu
dmFzLiIpOwotCi0gIC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRlby4KLSAgLy8gVE9ETzogU2hv
dWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KLQotICBmaW5pc2hUZXN0KCk7Ci19Ci0KLShhc3luYyBm
dW5jdGlvbigpIHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZycp
OwotICB0cnkgewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3Jp
Z2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCksIDEwMDApOwotICB9IGNh
dGNoIChlKSB7Ci0gICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsK
LSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGltYWdlTG9hZGVkKGltZyk7
Ci19KSgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVy
ZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZvcm1hdHMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9t
aXNjL3RleC1zdG9yYWdlLWNvbXByZXNzZWQtZm9ybWF0cy5odG1sCmluZGV4IGFkYTc3Y2E0YjY2
N2Q5MmEzYzk3MjFhYzBmZWVlMWY0ZmRhNzRjZDIuLmUxNTQ2MzFlYWQ3NjYyZjdiZjQ5MDc1YmE2
ODI3ZmRmYmI3ZTBlMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL3RleC1zdG9yYWdlLWNv
bXByZXNzZWQtZm9ybWF0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL3RleC1zdG9yYWdlLWNv
bXByZXNzZWQtZm9ybWF0cy5odG1sCkBAIC05OCw3ICs5OCw3IEBAIGZ1bmN0aW9uIHJ1blRleENv
bXByZXNzZWRGb3JtYXRzVGVzdCh0ZXhDb21wcmVzc2VkRm9ybWF0cykKICAgICAgICAgLy8gVGVz
dCBhIDJEIHRleHR1cmUuCiAgICAgICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiAg
ICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICAgIGdsLnRl
eFN0b3JhZ2UyRChnbC5URVhUVVJFXzJELCAxLCBpbnRlcm5hbGZvcm1hdCwgMSwgMSk7CisgICAg
ICAgIGdsLnRleFN0b3JhZ2UyRChnbC5URVhUVVJFXzJELCAxLCBpbnRlcm5hbGZvcm1hdCwgNCwg
NCk7CiAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0ZXhTdG9yYWdlMkQgc2hvdWxkIHN1Y2NlZWQgZm9yICIg
KyBlbnVtVG9TdHJpbmcoaW50ZXJuYWxmb3JtYXQpKTsKICAgICAgICAgZ2wuZGVsZXRlVGV4dHVy
ZSh0ZXgpOwpAQCAtMTExLDE0ICsxMTEsMTQgQEAgZnVuY3Rpb24gcnVuVGV4Q29tcHJlc3NlZEZv
cm1hdHNUZXN0KHRleENvbXByZXNzZWRGb3JtYXRzKQogICAgICAgICAvLyBUZXN0IHRoZSAzRCB0
ZXh0dXJlIHRhcmdldHMuCiAgICAgICAgIHZhciB0ZXgzZCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsK
ICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8zRCwgdGV4M2QpOwotICAgICAgICBn
bC50ZXhTdG9yYWdlM0QoZ2wuVEVYVFVSRV8zRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDEsIDEsIDEp
OworICAgICAgICBnbC50ZXhTdG9yYWdlM0QoZ2wuVEVYVFVSRV8zRCwgMSwgaW50ZXJuYWxmb3Jt
YXQsIDQsIDQsIDEpOwogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X09QRVJBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4U3RvcmFnZTNEKFRF
WFRVUkVfM0QpIHNob3VsZCBmYWlsIGZvciAiICsgZW51bVRvU3RyaW5nKGludGVybmFsZm9ybWF0
KSk7CiAgICAgICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4M2QpOwogCiAgICAgICAgIHZhciB0ZXgy
ZEFyciA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRF9BUlJBWSwgdGV4MmRBcnIpOwotICAgICAgICBnbC50ZXhTdG9yYWdlM0QoZ2wuVEVY
VFVSRV8yRF9BUlJBWSwgMSwgaW50ZXJuYWxmb3JtYXQsIDEsIDEsIDEpOworICAgICAgICBnbC50
ZXhTdG9yYWdlM0QoZ2wuVEVYVFVSRV8yRF9BUlJBWSwgMSwgaW50ZXJuYWxmb3JtYXQsIDQsIDQs
IDEpOwogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGV4U3RvcmFnZTNEKFRFWFRVUkVfMkRfQVJSQVkpIHNo
b3VsZCBzdWNjZWVkIGZvciAiICsgZW51bVRvU3RyaW5nKGludGVybmFsZm9ybWF0KSk7CiAgICAg
ICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
ZXMzZk11bHRpc2FtcGxlVGVzdHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2FtcGxlVGVzdHMu
anMKaW5kZXggNTBlMmEyMTk5MmY5OGZhOTllOGYzNzg5ZDA0YWEwNTg3ZGY4YjkxYy4uNDdlNjI2
N2QzNWQzNzI3ZjM5MjM5ZDAyNmVlZGU1YjQwNDJiY2VhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMz
L2VzM2ZNdWx0aXNhbXBsZVRlc3RzLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9lczNmTXVsdGlzYW1wbGVU
ZXN0cy5qcwpAQCAtMTcxMyw3ICsxNzEzLDcgQEAgZ29vZy5zY29wZShmdW5jdGlvbigpIHsKICAg
ICAgKiBSdW4gdGVzdAogICAgICAqIEBwYXJhbSB7V2ViR0wyUmVuZGVyaW5nQ29udGV4dH0gY29u
dGV4dAogICAgICAqLwotICAgICBlczNmTXVsdGlzYW1wbGVUZXN0cy5ydW4gPSBmdW5jdGlvbihj
b250ZXh0KSB7CisgICAgZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuID0gZnVuY3Rpb24oY29udGV4
dCwgcmFuZ2UpIHsKICAgICAgICAgZ2wgPSBjb250ZXh0OwogICAgICAgICAvL1NldCB1cCBUZXN0
IFJvb3QgcGFyYW1ldGVycwogICAgICAgICB2YXIgdGVzdE5hbWUgPSAnbXVsdGlzYW1wbGUnOwpA
QCAtMTczMCw2ICsxNzMwLDggQEAgZ29vZy5zY29wZShmdW5jdGlvbigpIHsKICAgICAgICAgdHJ5
IHsKICAgICAgICAgICAgIC8vQ3JlYXRlIHRlc3QgY2FzZXMKICAgICAgICAgICAgIGVzM2ZNdWx0
aXNhbXBsZVRlc3RzLmluaXQoKTsKKyAgICAgICAgICAgIGlmIChyYW5nZSkKKyAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRSYW5nZShyYW5nZSk7CiAgICAgICAgICAgICAvL1J1biB0ZXN0IGNhc2Vz
CiAgICAgICAgICAgICB0Y3VUZXN0Q2FzZS5ydW5UZXN0Q2FzZXMoKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmltaXRpdmVSZXN0YXJ0VGVzdHMuanMgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xl
czMvZXMzZlByaW1pdGl2ZVJlc3RhcnRUZXN0cy5qcwppbmRleCA4NTk3MzY2NWFkOGMxNTc1NmE5
NWFjZDMwOTQwZDJmYmY4YTE1OWY4Li5hYzBkYTJmZTY2NDZmMzA2NWYzNmFmMWE3MzM5ZTcyNWI1
MThjNzBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZlByaW1pdGl2ZVJlc3RhcnRUZXN0cy5q
cworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFw
L2Z1bmN0aW9uYWwvZ2xlczMvZXMzZlByaW1pdGl2ZVJlc3RhcnRUZXN0cy5qcwpAQCAtMzM0LDEw
ICszMzQsMTUgQEAgdmFyIGdsdVRleHR1cmVVdGlsID0gZnJhbWV3b3JrLm9wZW5nbC5nbHVUZXh0
dXJlVXRpbDsKICAgICAgICAgICAgICdcbicgKwogICAgICAgICAgICAgJ3ZvaWQgbWFpbigpXG4n
ICsKICAgICAgICAgICAgICcge1xuJyArCi0gICAgICAgICAgICAnIGdsX1Bvc2l0aW9uID0gYV9w
b3NpdGlvbjtcbicgKwotICAgICAgICAgICAgJ31cbic7CisgICAgICAgICAgICAnIGdsX1Bvc2l0
aW9uID0gYV9wb3NpdGlvbjtcbic7CisKKyAgICAgICAgaWYgKHRoaXMubV9wcmltVHlwZSA9PSBl
czNmUHJpbWl0aXZlUmVzdGFydFRlc3RzLlByaW1pdGl2ZVR5cGUuUFJJTUlUSVZFX1BPSU5UUykg
eworICAgICAgICAgICAgdmVydFNoYWRlclNvdXJjZSArPSAnIGdsX1BvaW50U2l6ZSA9IDEuMDtc
bic7CisgICAgICAgIH0KKworICAgICAgICB2ZXJ0U2hhZGVyU291cmNlICs9ICd9XG4nOwogCi0g
ICAgICAgICAgICAvKiogQHR5cGUge3N0cmluZ30gKi8gdmFyIGZyYWdTaGFkZXJTb3VyY2UgPQor
ICAgICAgICAvKiogQHR5cGUge3N0cmluZ30gKi8gdmFyIGZyYWdTaGFkZXJTb3VyY2UgPQogICAg
ICAgICAgICAgJyN2ZXJzaW9uIDMwMCBlc1xuJyArCiAgICAgICAgICAgICAnbGF5b3V0KGxvY2F0
aW9uID0gMCkgb3V0IG1lZGl1bXAgdmVjNCBvX2NvbG9yO1xuJyArCiAgICAgICAgICAgICAnXG4n
ICsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211
bHRpc2FtcGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMmRiMzAzNWU5
MjY3YzUwZGYxZmZjMDY0YmFjNDliMmY2ZjYyYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotPHRpdGxl
PldlYkdMIE11bHRpc2FtcGxlIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vY2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29vZy9iYXNlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9kZXFwLWRlcHMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD5nb29nLnJlcXVpcmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVz
dHMnKTs8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRo
PSIyNTYiIGhlaWdodD0iMjU2Ij4gPC9jYW52YXM+Ci08c2NyaXB0PgotdmFyIHd0dSA9IFdlYkdM
VGVzdFV0aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2FudmFzJywgbnVsbCwg
Mik7Ci0KLWZ1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuKGdsKTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlL2RlZmF1bHRfZmJvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MWQzZjA2YmY5ODA5YmUzMmVlN2E4MjJmOWFlNTIxZjM4MzgxMjhi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0
bWwKQEAgLTAsMCArMSwzMSBAQAorPCEtLQorCitUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
ZnJvbSBtdWx0aXNhbXBsZV90ZXN0X2dlbmVyYXRvci5weQorRE8gTk9UIEVESVQhCisKKy0tPgor
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPldlYkdMIE11bHRpc2FtcGxlIENv
bmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vY2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29vZy9iYXNlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9kZXFwLWRlcHMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD5nb29nLnJlcXVpcmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMnKTs8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyNTYi
IGhlaWdodD0iMjU2Ij4gPC9jYW52YXM+Cis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2FudmFzJywgbnVsbCwgMik7CisK
K2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuKGdsLCBbMCwgMV0pOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlz
YW1wbGUvZmJvXzRfc2FtcGxlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3Nh
bXBsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDIxZjU3YmE5YTU4NGIzMDZhZjI3NGIyY2QzMDMyNWI4
NTJhMTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3Nh
bXBsZXMuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IS0tCisKK1RoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZCBmcm9tIG11bHRpc2FtcGxlX3Rlc3RfZ2VuZXJhdG9yLnB5CitETyBOT1QgRURJVCEK
KworLS0+CisKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
IGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+V2ViR0wgTXVsdGlz
YW1wbGUgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9jbG9zdXJlLWxpYnJhcnkvY2xvc3VyZS9nb29nL2Jhc2UuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2RlcXAtZGVwcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0Pmdvb2cucmVxdWlyZSgnZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVU
ZXN0cycpOzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lk
dGg9IjI1NiIgaGVpZ2h0PSIyNTYiPiA8L2NhbnZhcz4KKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2Vi
R0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCdjYW52YXMnLCBudWxs
LCAyKTsKKworZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0cy5ydW4oZ2wsIFsx
LCAyXSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVz
My9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUv
ZmJvXzhfc2FtcGxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkY2E1YWVhZmVjYzg0NDI4ZDg0MmE5NGRk
OWQ2ZDQ0M2UxYmI2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUv
ZmJvXzhfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhLS0KKworVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGZyb20gbXVsdGlzYW1wbGVfdGVzdF9nZW5lcmF0b3IucHkKK0RPIE5P
VCBFRElUIQorCistLT4KKworPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBNdWx0aXNhbXBsZSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cv
YmFzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZGVxcC1kZXBzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Z29vZy5yZXF1aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0
aXNhbXBsZVRlc3RzJyk7PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2Fu
dmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+IDwvY2FudmFzPgorPHNjcmlwdD4KK3ZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZh
cycsIG51bGwsIDIpOworCitmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1
bihnbCwgWzIsIDNdKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlv
bmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211
bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYzc1YzcyMWZhNzAw
MDVkZjkxNjk3MjVkZWIwZTkxYTNiZWMwNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCEtLQor
CitUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBtdWx0aXNhbXBsZV90ZXN0X2dlbmVy
YXRvci5weQorRE8gTk9UIEVESVQhCisKKy0tPgorCis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi
PgorPHRpdGxlPldlYkdMIE11bHRpc2FtcGxlIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vY2xvc3VyZS1saWJyYXJ5
L2Nsb3N1cmUvZ29vZy9iYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9k
ZXFwLWRlcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD5nb29nLnJlcXVpcmUoJ2Z1bmN0aW9uYWwu
Z2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMnKTs8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij4gPC9jYW52YXM+Cis8
c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dCgnY2FudmFzJywgbnVsbCwgMik7CisKK2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRp
c2FtcGxlVGVzdHMucnVuKGdsLCBbMywgNF0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMKaW5kZXggZWQ2
ZWFhZDUwZjRiMWNhNzg3Y2Q1Y2JhYmY1MGYwOGM3YmI4ZmNlNi4uMTJhMDU2Y2UyMTQ0OTg5MTlh
M2I5NWY5YTM2ZDZlOTdlNjQxMTJkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2dsc2wtY29u
Zm9ybWFuY2UtdGVzdC5qcwpAQCAtMjc3LDEyICsyNzcsMTcgQEAgZnVuY3Rpb24gcnVuT25lVGVz
dChnbCwgaW5mbykgewogCiAgIGlmIChpbmZvLnVuaWZvcm1zICE9PSB1bmRlZmluZWQpIHsKICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGluZm8udW5pZm9ybXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
IHZhciB1bmlmb3JtTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgaW5m
by51bmlmb3Jtc1tpXS5uYW1lKTsKKyAgICAgIHZhciB1bmlmb3JtID0gaW5mby51bmlmb3Jtc1tp
XTsKKyAgICAgIHZhciB1bmlmb3JtTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJv
Z3JhbSwgdW5pZm9ybS5uYW1lKTsKICAgICAgIGlmICh1bmlmb3JtTG9jYXRpb24gIT09IG51bGwp
IHsKLSAgICAgICAgZ2xbaW5mby51bmlmb3Jtc1tpXS5mdW5jdGlvbk5hbWVdKHVuaWZvcm1Mb2Nh
dGlvbiwgaW5mby51bmlmb3Jtc1tpXS52YWx1ZSk7Ci0gICAgICAgIGRlYnVnKGluZm8udW5pZm9y
bXNbaV0ubmFtZSArICcgc2V0IHRvICcgKyBpbmZvLnVuaWZvcm1zW2ldLnZhbHVlKTsKKyAgICAg
ICAgaWYgKHVuaWZvcm0uZnVuY3Rpb25OYW1lLmluY2x1ZGVzKCJNYXRyaXgiKSkgeworICAgICAg
ICAgIGdsW3VuaWZvcm0uZnVuY3Rpb25OYW1lXSh1bmlmb3JtTG9jYXRpb24sIGZhbHNlLCB1bmlm
b3JtLnZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBnbFt1bmlmb3JtLmZ1bmN0
aW9uTmFtZV0odW5pZm9ybUxvY2F0aW9uLCB1bmlmb3JtLnZhbHVlKTsKKyAgICAgICAgfQorICAg
ICAgICBkZWJ1Zyh1bmlmb3JtLm5hbWUgKyAnIHNldCB0byAnICsgdW5pZm9ybS52YWx1ZSk7CiAg
ICAgICB9IGVsc2UgewotICAgICAgICBkZWJ1ZygndW5pZm9ybSAnICsgaW5mby51bmlmb3Jtc1tp
XS5uYW1lICsgJyBoYWQgbnVsbCBsb2NhdGlvbiBhbmQgd2FzIG5vdCBzZXQnKTsKKyAgICAgICAg
ZGVidWcoJ3VuaWZvcm0gJyArIHVuaWZvcm0ubmFtZSArICcgaGFkIG51bGwgbG9jYXRpb24gYW5k
IHdhcyBub3Qgc2V0Jyk7CiAgICAgICB9CiAgICAgfQogICB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXBvc3QuanMg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0
LXBvc3QuanMKaW5kZXggZmY4OWU1ODZlYmRhZmNkMTVjYjQ2ODVkMDcwZGZkMjY4NTkxNjY2NS4u
MjNkZjU1MDNkMTI4Y2E1YmQ5MDQ5ZmQxMzlmZTAyY2FkYzVhODA1MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0
LmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L2pzLXRlc3QtcG9zdC5qcwpAQCAtOSw0ICs5LDE5IEBAIF9hZGRTcGFuKCc8YnIgLz48c3BhbiBj
bGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKIGlmIChfanNUZXN0UHJlVmVyYm9z
ZUxvZ2dpbmcpIHsKICAgICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ1RFU1QgQ09NUExFVEUnKTsK
IH0KKworeworICAgIGNvbnN0IGVfcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIGxldCBmYWlsc19jbGFzcyA9ICdwYXNzJzsKKyAgICBpZiAoUkVTVUxUUy5mYWls
KSB7CisgICAgICAgIGZhaWxzX2NsYXNzID0gJ2ZhaWwnOworICAgIH0KKyAgICBlX3Jlc3VsdHMu
Y2xhc3NMaXN0LmFkZCgncGFzcycpOworICAgIGVfcmVzdWx0cy5pbm5lckhUTUwgPSBgPHA+VEVT
VCBDT01QTEVURTogJHtSRVNVTFRTLnBhc3N9IFBBU1MsIGAgKworICAgICAgYDxzcGFuIGNsYXNz
PSIke2ZhaWxzX2NsYXNzfSI+JHtSRVNVTFRTLmZhaWx9IEZBSUw8L3NwYW4+PC9wPmA7CisKKyAg
ICBjb25zdCBlX2Rlc2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsK
KyAgICBlX2Rlc2MuYXBwZW5kQ2hpbGQoZV9yZXN1bHRzKTsKK30KKwogbm90aWZ5RmluaXNoZWRU
b0hhcm5lc3MoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwppbmRleCBhMGRhMzQ4OWU3ZTNk
ZTc3OGMxMmM5YmEyYjlmMTUxOTcyNjg4ZDAwLi5lMWNiOWY3NDljMDIyYWFhYzA4ZmIxMGIwYzJm
NjQ5MGIwZmFhZjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwpAQCAtODgsNyArODgs
MTcgQEAgZnVuY3Rpb24gbm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKSB7CiAgIH0KIH0K
IAorY29uc3QgUkVTVUxUUyA9IHsKKyAgcGFzczogMCwKKyAgZmFpbDogMCwKK307CisKIGZ1bmN0
aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBpZiAoc3Vj
Y2VzcykgeworICAgIFJFU1VMVFMucGFzcyArPSAxOworICB9IGVsc2UgeworICAgIFJFU1VMVFMu
ZmFpbCArPSAxOworICB9CiAgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsK
ICAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cu
bG9jYXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7CiAgIH0KQEAgLTEwMSw2ICsxMTEsMTEg
QEAgZnVuY3Rpb24gcmVwb3J0U2tpcHBlZFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1z
ZykgewogfQogCiBmdW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIHsKKyAgaWYgKHdp
bmRvdy5fZGlkTm90aWZ5RmluaXNoZWRUb0hhcm5lc3MpIHsKKyAgICB0ZXN0RmFpbGVkKCJEdXBs
aWNhdGUgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSIpOworICB9CisgIHdpbmRvdy5fZGlkTm90
aWZ5RmluaXNoZWRUb0hhcm5lc3MgPSB0cnVlOworCiAgIGlmICh3aW5kb3cucGFyZW50LndlYmds
VGVzdEhhcm5lc3MpIHsKICAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5
RmluaXNoZWQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgfQpAQCAtNzcxLDMgKzc4Niwx
NiBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGVwaWxvZ3VlKTsKIH0KIAorLy8vIFByZWZlciBgY2FsbCgoKSA9PiB7IC4uLiB9KWAgdG8gYCgo
KSA9PiB7IC4uLiB9KSgpYFwKKy8vLyBUaGlzIHdheSwgaXQncyBjbGVhciB1cC1mcm9udCB0aGF0
IHdlJ3JlIGNhbGxpbmcgbm90IGp1c3QgZGVmaW5pbmcuCitmdW5jdGlvbiBjYWxsKGZuKSB7Cisg
ICAgcmV0dXJuIGZuKCk7Cit9CisKKy8vLyBgZm9yIChjb25zdCBpIG9mIHJhbmdlKDMpKWAgPT4g
MCwgMSwgMgorLy8vIERvbid0IHVzZSBgZm9yLi4uaW4gcmFuZ2UobilgLCBpdCB3aWxsIG5vdCB3
b3JrLgorZnVuY3Rpb24qIHJhbmdlKG4pIHsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKysp
IHsKKyAgICB5aWVsZCBpOworICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVzc2VkLXRleHR1cmUtdXRp
bHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90
ZXN0cy9jb21wcmVzc2VkLXRleHR1cmUtdXRpbHMuanMKaW5kZXggZDZmMDJjNGQ0M2IzOWYwYWE0
ODUzZTc0ODlmNDA1OGZjMmQ2YmNmNS4uNDZkMTU1ZjVmMWRhNjM4ZDZlOGEyYzhkNTU2NjczMTli
MWFhMzdiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvdGVzdHMvY29tcHJlc3NlZC10ZXh0dXJlLXV0aWxzLmpzCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2NvbXByZXNz
ZWQtdGV4dHVyZS11dGlscy5qcwpAQCAtMTY1LDcgKzE2NSw3IEBAIGxldCB0ZXN0Rm9ybWF0UmVz
dHJpY3Rpb25zT25CdWZmZXJTaXplID0gZnVuY3Rpb24oZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0
ZWRCeXRlCiAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IEhlaWdodCBvZiB0aGUgaW1hZ2UgaW4g
cGl4ZWxzLgogICogQHBhcmFtIHtPYmplY3R9IHN1YkltYWdlQ29uZmlncyBjb25maWdzIGZvciBj
b21wcmVzc2VkVGV4U3ViSW1hZ2UgY2FsbHMKICAqLwotbGV0IHRlc3RUZXhTdWJJbWFnZURpbWVu
c2lvbnMgPSBmdW5jdGlvbihnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdl
dEJsb2NrRGltZW5zaW9ucywgd2lkdGgsIGhlaWdodCwgc3ViSW1hZ2VDb25maWdzKSB7CitsZXQg
dGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCBleHQsIHZhbGlkRm9ybWF0
cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsIHdpZHRoLCBoZWlnaHQs
IHN1YkltYWdlQ29uZmlncykgewogICAgIGxldCB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiAg
ICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKIApAQCAtMTczLDYgKzE3Myw3
IEBAIGxldCB0ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIHZhbGlkRm9y
bWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnCiAgICAgICAgIGlmICh2YWxpZEZvcm1hdHMuaGFz
T3duUHJvcGVydHkoZm9ybWF0SWQpKSB7CiAgICAgICAgICAgICBsZXQgZm9ybWF0ID0gdmFsaWRG
b3JtYXRzW2Zvcm1hdElkXTsKICAgICAgICAgICAgIGxldCBibG9ja1NpemUgPSBnZXRCbG9ja0Rp
bWVuc2lvbnMoZm9ybWF0KTsKKyAgICAgICAgICAgIGRlYnVnKCJ0ZXN0aW5nICIgKyBjdHUuZm9y
bWF0VG9TdHJpbmcoZXh0LCBmb3JtYXQpKTsKICAgICAgICAgICAgIGxldCBleHBlY3RlZFNpemUg
PSBleHBlY3RlZEJ5dGVMZW5ndGgod2lkdGgsIGhlaWdodCwgZm9ybWF0KTsKICAgICAgICAgICAg
IGxldCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoZXhwZWN0ZWRTaXplKTsKIApAQCAtMTkyLDcgKzE5
Myw3IEBAIGxldCB0ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIHZhbGlk
Rm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnCiAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgp
OwogfTsKIAotbGV0IHRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2
YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCBpbWFn
ZUNvbmZpZ3MpIHsKK2xldCB0ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihn
bCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNp
b25zLCBpbWFnZUNvbmZpZ3MpIHsKICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwog
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CiAKQEAgLTIwMCw2ICsyMDEs
NyBAQCBsZXQgdGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIHZhbGlk
Rm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLAogICAgICAgICBpZiAodmFsaWRGb3JtYXRzLmhh
c093blByb3BlcnR5KGZvcm1hdElkKSkgewogICAgICAgICAgICAgbGV0IGZvcm1hdCA9IHZhbGlk
Rm9ybWF0c1tmb3JtYXRJZF07CiAgICAgICAgICAgICBsZXQgYmxvY2tTaXplID0gZ2V0QmxvY2tE
aW1lbnNpb25zKGZvcm1hdCk7CisgICAgICAgICAgICBkZWJ1ZygidGVzdGluZyAiICsgY3R1LmZv
cm1hdFRvU3RyaW5nKGV4dCwgZm9ybWF0KSk7CiAKICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
LCBsZW4gPSBpbWFnZUNvbmZpZ3MubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgICAg
ICAgICBsZXQgYyA9IGltYWdlQ29uZmlnc1tpXTsKQEAgLTIxNCw2ICsyMTYsMzIgQEAgbGV0IHRl
c3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4
cGVjdGVkQnl0ZUxlbmd0aCwKICAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7CiB9CiAKK2xldCB0
ZXN0VGV4U3RvcmFnZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCBleHQsIHZhbGlkRm9y
bWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsIGltYWdlQ29uZmln
cykgeworICAgIGZvciAobGV0IGZvcm1hdElkIGluIHZhbGlkRm9ybWF0cykgeworICAgICAgICBs
ZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCB0ZXgpOworCisgICAgICAgIGlmICh2YWxpZEZvcm1hdHMuaGFzT3duUHJvcGVy
dHkoZm9ybWF0SWQpKSB7CisgICAgICAgICAgICBsZXQgZm9ybWF0ID0gdmFsaWRGb3JtYXRzW2Zv
cm1hdElkXTsKKyAgICAgICAgICAgIGxldCBibG9ja1NpemUgPSBnZXRCbG9ja0RpbWVuc2lvbnMo
Zm9ybWF0KTsKKyAgICAgICAgICAgIGRlYnVnKCJ0ZXN0aW5nICIgKyBjdHUuZm9ybWF0VG9TdHJp
bmcoZXh0LCBmb3JtYXQpKTsKKworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlt
YWdlQ29uZmlncy5sZW5ndGg7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgICAgIGxldCBj
ID0gaW1hZ2VDb25maWdzW2ldOworICAgICAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IFVpbnQ4
QXJyYXkoZXhwZWN0ZWRCeXRlTGVuZ3RoKGMud2lkdGgsIGMuaGVpZ2h0LCBmb3JtYXQpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdsLnRleFN0
b3JhZ2UyRChnbC5URVhUVVJFXzJELCBpbWFnZUNvbmZpZ3MubGVuZ3RoLCBmb3JtYXQsIGMud2lk
dGgsIGMuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgYy5leHBlY3RhdGlvbiwgYy5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgZ2wuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgaSwgMCwg
MCwgYy53aWR0aCwgYy5oZWlnaHQsIGZvcm1hdCwgZGF0YSk7CisgICAgICAgICAgICAgICAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgYy5leHBlY3RhdGlvbiwgYy5tZXNzYWdlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBu
dWxsKTsKKyAgICAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOworICAgIH0KK30KKwogcmV0dXJu
IHsKICAgICBmb3JtYXRUb1N0cmluZzogZm9ybWF0VG9TdHJpbmcsCiAgICAgaW5zZXJ0Q2FwdGlv
bmVkSW1nOiBpbnNlcnRDYXB0aW9uZWRJbWcsCkBAIC0yMjQsNiArMjUyLDcgQEAgcmV0dXJuIHsK
ICAgICB0ZXN0Rm9ybWF0UmVzdHJpY3Rpb25zT25CdWZmZXJTaXplOiB0ZXN0Rm9ybWF0UmVzdHJp
Y3Rpb25zT25CdWZmZXJTaXplLAogICAgIHRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnM6IHRlc3RU
ZXhTdWJJbWFnZURpbWVuc2lvbnMsCiAgICAgdGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zOiB0
ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMsCisgICAgdGVzdFRleFN0b3JhZ2VMZXZlbERpbWVu
c2lvbnM6IHRlc3RUZXhTdG9yYWdlTGV2ZWxEaW1lbnNpb25zLAogfTsKIAogfSkoKTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb250ZXh0
LW1ldGhvZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY0NzY0NjNkMjcwZmQ3MDZkYTkzODM4ZWU1MTA4OTUy
YzBmOGY4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2NvbnRleHQtbWV0aG9kcy5qcwpAQCAtMCwwICsxLDUy
IEBACisidXNlIHN0cmljdCI7CisKKy8vIFByb3BlcnRpZXMgdG8gYmUgaWdub3JlZCBiZWNhdXNl
IHRoZXkgd2VyZSBhZGRlZCBpbiB2ZXJzaW9ucyBvZiB0aGUKKy8vIHNwZWMgdGhhdCBhcmUgYmFj
a3dhcmQtY29tcGF0aWJsZSB3aXRoIHRoaXMgdmVyc2lvbgorY29uc3QgSUdOT1JFRF9NRVRIT0RT
ID0gWworICAvLyBUaGVyZSBpcyBubyBvZmZpY2lhbCBzcGVjIGZvciB0aGUgY29tbWl0IEFQSSB5
ZXQsIHRoZSBwcm9wb3NhbCBsaW5rIGlzOgorICAvLyBodHRwczovL3dpa2kud2hhdHdnLm9yZy93
aWtpL09mZnNjcmVlbkNhbnZhcworICAiY29tbWl0IiwKKworICAvLyBGb3IgV2ViWFIgaW50ZWdy
YXRpb246CisgICJtYWtlWFJDb21wYXRpYmxlIiwKK107CisKK2Z1bmN0aW9uIGFzc2VydEZ1bmN0
aW9uKHYsIGYpIHsKKyAgdHJ5IHsKKyAgICBpZiAodHlwZW9mIHZbZl0gIT0gImZ1bmN0aW9uIikg
eworICAgICAgdGVzdEZhaWxlZChgUHJvcGVydHkgZWl0aGVyIGRvZXMgbm90IGV4aXN0IG9yIGlz
IG5vdCBhIGZ1bmN0aW9uOiAke2Z9YCk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNl
IHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgfSBjYXRjaChlKSB7CisgICAgdGVzdEZh
aWxlZChgVHJ5aW5nIHRvIGFjY2VzcyB0aGUgcHJvcGVydHkgJyR7Zn0nIHRocmV3IGFuIGVycm9y
OiAke2UudG9TdHJpbmcoKX1gKTsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0Q29udGV4dE1ldGhv
ZHMoZ2wsIHJlcXVpcmVkQ29udGV4dE1ldGhvZHMpIHsKKyAgY29uc3QgYWNjZXB0YWJsZU1ldGhv
ZHMgPSBbXS5jb25jYXQocmVxdWlyZWRDb250ZXh0TWV0aG9kcywgSUdOT1JFRF9NRVRIT0RTKTsK
KworICBsZXQgcGFzc2VkID0gdHJ1ZTsKKyAgcmVxdWlyZWRDb250ZXh0TWV0aG9kcy5mb3JFYWNo
KG1ldGhvZCA9PiB7CisgICAgY29uc3QgciA9IGFzc2VydEZ1bmN0aW9uKGdsLCBtZXRob2QpOwor
ICAgIHBhc3NlZCA9IHBhc3NlZCAmJiByOworICB9KTsKKyAgaWYgKHBhc3NlZCkgeworICAgIHRl
c3RQYXNzZWQoIkFsbCBXZWJHTCBtZXRob2RzIGZvdW5kLiIpOworICB9CisgIGxldCBleHRlbmRl
ZCA9IGZhbHNlOworICBmb3IgKGxldCBwcm9wZXJ0eU5hbWUgb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5TmFtZXMoZ2wpKSB7CisgICAgaWYgKHR5cGVvZiBnbFtwcm9wZXJ0eU5hbWVdID09ICJmdW5j
dGlvbiIgJiYgIWFjY2VwdGFibGVNZXRob2RzLmluY2x1ZGVzKHByb3BlcnR5TmFtZSkpIHsKKyAg
ICAgIGlmICghZXh0ZW5kZWQpIHsKKyAgICAgICAgZXh0ZW5kZWQgPSB0cnVlOworICAgICAgICB0
ZXN0RmFpbGVkKCJBbHNvIGZvdW5kIHRoZSBmb2xsb3dpbmcgZXh0cmEgbWV0aG9kczoiKTsKKyAg
ICAgIH0KKyAgICAgIHRlc3RGYWlsZWQocHJvcGVydHlOYW1lKTsKKyAgICB9CisgIH0KKworICBp
ZiAoIWV4dGVuZGVkKSB7CisgICAgdGVzdFBhc3NlZCgiTm8gZXh0cmEgbWV0aG9kcyBmb3VuZCBv
biBXZWJHTCBjb250ZXh0LiIpOworICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9leHQtY29sb3ItYnVmZmVyLWhh
bGYtZmxvYXQuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy90ZXN0cy9leHQtY29sb3ItYnVmZmVyLWhhbGYtZmxvYXQuanMKaW5kZXggOTNkZThiNjdl
ZmZkMTdhNTdhOWFhODgxOGViZDZhMWZmZDczNjZlOS4uNTE1MDllOGE2ZTQ2Y2U4MDE4NmQzYzI0
MmIwY2YwYTA5NDNjNDMzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZXh0LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0Lmpz
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rl
c3RzL2V4dC1jb2xvci1idWZmZXItaGFsZi1mbG9hdC5qcwpAQCAtMjQ0LDcgKzI0NCw3IEBAIGZ1
bmN0aW9uIHJ1bkludGVybmFsRm9ybWF0UXVlcnlUZXN0KCkKICAgICBkZWJ1ZygidGVzdGluZyB0
aGUgaW50ZXJuYWwgZm9ybWF0IHF1ZXJ5Iik7CiAKICAgICB2YXIgbWF4U2FtcGxlcyA9IGdsLmdl
dFBhcmFtZXRlcihnbC5NQVhfU0FNUExFUyk7Ci0gICAgdmFyIGZvcm1hdHMgPSBuZXcgQXJyYXko
Z2wuUkdCQTE2RiwgZ2wuUjE2RiwgZ2wuUkcxNkYpOworICAgIGNvbnN0IGZvcm1hdHMgPSBbZ2wu
UkdCQTE2RiwgZ2wuUjE2RiwgZ2wuUkcxNkZdOwogICAgIHZhciBmaXJzdE11bHRpT25seUZvcm1h
dCA9IDQ7CiAgICAgZm9yICh2YXIgZm10ID0gMDsgZm10IDwgZm9ybWF0cy5sZW5ndGg7ICsrZm10
KSB7CiAgICAgICAgIHZhciBzYW1wbGVzID0gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBmb3JtYXRzW2ZtdF0sIGdsLlNBTVBMRVMpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZ2wt
b2JqZWN0LWdldC1jYWxscy5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQtY2FsbHMuanMKaW5kZXggMjhkYzMwNTQ5
NzZjZWFhNTM1ZmVmZTc0MjgxZDc3YmQ0Y2E3Mjg1MS4uYmQ5NzQzNGI3N2ZlNjg1OGI5Njc0Yzg0
YjQ5ZDdhOWMwOWRmNTdkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qcworKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9nbC1v
YmplY3QtZ2V0LWNhbGxzLmpzCkBAIC05LDI2ICs5LDMyIEBAIGZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgogLy8gb24gLS0gMSBmb3IgV2ViR0wgMS4wLCAyIGZvciBXZWJHTCAyLjAsIGV0
Yy4KIAogInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3Qgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7CiBkZXNjcmlwdGlvbigiVGVzdCBvZiBnZXQgY2FsbHMgYWdhaW5z
dCBHTCBvYmplY3RzIGxpa2UgZ2V0QnVmZmVyUGFyYW1ldGVyLCBldGMuIik7CiAKLXZhciBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQodW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHRWZXJzaW9u
KTsKK2xldCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQodW5kZWZpbmVkLCB1bmRlZmluZWQsIGNv
bnRleHRWZXJzaW9uKTsKIAotZnVuY3Rpb24gdGVzdEludmFsaWRBcmd1bWVudChmdW5jTmFtZSwg
YXJndW1lbnROYW1lLCB2YWxpZEFyZ3VtZW50QXJyYXksIGZ1bmMpIHsKLSAgdmFyIHZhbGlkQXJn
dW1lbnRzID0ge307Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB2YWxpZEFyZ3VtZW50QXJyYXku
bGVuZ3RoOyArK2lpKSB7Cithc3luYyBmdW5jdGlvbiB0ZXN0SW52YWxpZEFyZ3VtZW50KGZ1bmNO
YW1lLCBhcmd1bWVudE5hbWUsIHZhbGlkQXJndW1lbnRBcnJheSwgZnVuYykgeworICBsZXQgdmFs
aWRBcmd1bWVudHMgPSB7fTsKKyAgZm9yIChsZXQgaWkgPSAwOyBpaSA8IHZhbGlkQXJndW1lbnRB
cnJheS5sZW5ndGg7ICsraWkpIHsKICAgICB2YWxpZEFyZ3VtZW50c1t2YWxpZEFyZ3VtZW50QXJy
YXlbaWldXSA9IHRydWU7CiAgIH0KLSAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgMHgxMDAwMDsgKytpaSkgeworICBsZXQgc3VjY2VzcyA9IHRydWU7CisgIGNv
bnN0IE1BWCA9IDB4MTAwMDA7CisgIGNvbnN0IFNURVAgPSBNYXRoLmNlaWwoTUFYIC8gMTApOwor
ICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgTUFYOyBpaSArPSAxKSB7CisgICAgaWYgKGlpICYmIGlp
ICUgU1RFUCA9PSAwKSB7CisgICAgICBkZWJ1ZyhgKCR7aWl9IG9mICR7TUFYfTogJHsoaWkvTUFY
KjEwMCkudG9GaXhlZCgxKX0lKWApOworICAgICAgYXdhaXQgd3R1LmRpc3BhdGNoUHJvbWlzZSgp
OyAvLyBTcGluIHRoZSBldmVudCBsb29wLgorICAgIH0KICAgICBpZiAoIXZhbGlkQXJndW1lbnRz
W2lpXSkgewotICAgICAgdmFyIHJlc3VsdCA9IGZ1bmMoaWkpOworICAgICAgbGV0IHJlc3VsdCA9
IGZ1bmMoaWkpOwogICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgewogICAgICAgICBzdWNjZXNz
ID0gZmFsc2U7CiAgICAgICAgIHRlc3RGYWlsZWQoZnVuY05hbWUgKyAiIHJldHVybmVkICIgKyBy
ZXN1bHQgKyAiIGluc3RlYWQgb2YgbnVsbCBmb3IgaW52YWxpZCAiICsgYXJndW1lbnROYW1lICsg
IiBlbnVtOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBpaSkpOwogICAgICAgICBicmVhazsK
ICAgICAgIH0KLSAgICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICAgICAgbGV0IGVyciA9
IGdsLmdldEVycm9yKCk7CiAgICAgICBpZiAoZXJyICE9IGdsLklOVkFMSURfRU5VTSkgewogICAg
ICAgICBzdWNjZXNzID0gZmFsc2U7CiAgICAgICAgIHRlc3RGYWlsZWQoZnVuY05hbWUgKyAiIGRp
ZCBub3QgZ2VuZXJhdGUgSU5WQUxJRF9FTlVNIGZvciBpbnZhbGlkICIgKyBhcmd1bWVudE5hbWUg
KyAiIGVudW06ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGlpKSk7CkBAIC00MSw3MiArNDcs
NTggQEAgZnVuY3Rpb24gdGVzdEludmFsaWRBcmd1bWVudChmdW5jTmFtZSwgYXJndW1lbnROYW1l
LCB2YWxpZEFyZ3VtZW50QXJyYXksIGZ1bmMpIHsKICAgfQogfQogCi1kZWJ1ZygiIik7Ci1kZWJ1
ZygidGVzdCBnZXRCdWZmZXJQYXJhbWV0ZXIiKTsKLS8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVy
Ci12YXIgYnVmZmVyVHlwZXMgPSBbZ2wuQVJSQVlfQlVGRkVSLCBnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUl07Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGJ1ZmZlclR5cGVzID0gYnVmZmVy
VHlwZXMuY29uY2F0KFtnbC5DT1BZX1JFQURfQlVGRkVSLCBnbC5DT1BZX1dSSVRFX0JVRkZFUiwg
Z2wuUElYRUxfUEFDS19CVUZGRVIsIGdsLlBJWEVMX1VOUEFDS19CVUZGRVIsIGdsLlRSQU5TRk9S
TV9GRUVEQkFDS19CVUZGRVIsIGdsLlVOSUZPUk1fQlVGRkVSXSk7Ci19Ci1mb3IgKHZhciBiYiA9
IDA7IGJiIDwgYnVmZmVyVHlwZXMubGVuZ3RoOyArK2JiKSB7Ci0gIHZhciBidWZmZXJUeXBlID0g
YnVmZmVyVHlwZXNbYmJdOwotICB2YXIgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGds
LmJpbmRCdWZmZXIoYnVmZmVyVHlwZSwgYnVmZmVyKTsKLSAgZ2wuYnVmZmVyRGF0YShidWZmZXJU
eXBlLCAxNiwgZ2wuRFlOQU1JQ19EUkFXKTsKLSAgdmFyIGV4cHJlc3Npb24xID0gImdsLmdldEJ1
ZmZlclBhcmFtZXRlcigiICsgYnVmZmVyVHlwZSArICIsIGdsLkJVRkZFUl9TSVpFKSI7Ci0gIHZh
ciBleHByZXNzaW9uMiA9ICJnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoIiArIGJ1ZmZlclR5cGUgKyAi
LCBnbC5CVUZGRVJfVVNBR0UpIjsKLSAgc2hvdWxkQmUoZXhwcmVzc2lvbjEsICcxNicpOwotICBz
aG91bGRCZShleHByZXNzaW9uMiwgJ2dsLkRZTkFNSUNfRFJBVycpOwotICB0ZXN0SW52YWxpZEFy
Z3VtZW50KCJnZXRCdWZmZXJQYXJhbWV0ZXIiLCAicGFyYW1ldGVyIiwgW2dsLkJVRkZFUl9TSVpF
LCBnbC5CVUZGRVJfVVNBR0VdLCBmdW5jdGlvbihidWZmZXJUeXBlKSB7Ci0gICAgcmV0dXJuIGZ1
bmN0aW9uKHBhcmFtZXRlcikgewotICAgICAgcmV0dXJuIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihi
dWZmZXJUeXBlLCBwYXJhbWV0ZXIpOwotICAgIH07Ci0gIH0oYnVmZmVyVHlwZSkpOwotICBnbC5i
aW5kQnVmZmVyKGJ1ZmZlclR5cGUsIG51bGwpOwotfQotdGVzdEludmFsaWRBcmd1bWVudCgKLSAg
ICAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwKLSAgICAidGFyZ2V0IiwKLSAgICBidWZmZXJUeXBlcywK
LSAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAgIHJldHVybiBnbC5nZXRCdWZmZXJQYXJhbWV0
ZXIodGFyZ2V0LCBnbC5CVUZGRVJfU0laRSk7Ci0gICAgfQotKTsKLXd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyhhc3luYyAoKSA9PiB7CisgIGRlYnVnKCIiKTsKKyAgZGVi
dWcoInRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyIik7CisgIC8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1l
dGVyCisgIGxldCBidWZmZXJUeXBlcyA9IFtnbC5BUlJBWV9CVUZGRVIsIGdsLkVMRU1FTlRfQVJS
QVlfQlVGRkVSXTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGJ1ZmZlclR5cGVz
ID0gYnVmZmVyVHlwZXMuY29uY2F0KFtnbC5DT1BZX1JFQURfQlVGRkVSLCBnbC5DT1BZX1dSSVRF
X0JVRkZFUiwgZ2wuUElYRUxfUEFDS19CVUZGRVIsIGdsLlBJWEVMX1VOUEFDS19CVUZGRVIsIGds
LlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGdsLlVOSUZPUk1fQlVGRkVSXSk7CisgIH0KKyAg
Zm9yIChsZXQgYmIgPSAwOyBiYiA8IGJ1ZmZlclR5cGVzLmxlbmd0aDsgKytiYikgeworICAgIGxl
dCBidWZmZXJUeXBlID0gYnVmZmVyVHlwZXNbYmJdOworICAgIGxldCBidWZmZXIgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGJ1ZmZlclR5cGUsIGJ1ZmZlcik7CisgICAg
Z2wuYnVmZmVyRGF0YShidWZmZXJUeXBlLCAxNiwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICBsZXQg
ZXhwcmVzc2lvbjEgPSAiZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKCIgKyBidWZmZXJUeXBlICsgIiwg
Z2wuQlVGRkVSX1NJWkUpIjsKKyAgICBsZXQgZXhwcmVzc2lvbjIgPSAiZ2wuZ2V0QnVmZmVyUGFy
YW1ldGVyKCIgKyBidWZmZXJUeXBlICsgIiwgZ2wuQlVGRkVSX1VTQUdFKSI7CisgICAgc2hvdWxk
QmUoZXhwcmVzc2lvbjEsICcxNicpOworICAgIHNob3VsZEJlKGV4cHJlc3Npb24yLCAnZ2wuRFlO
QU1JQ19EUkFXJyk7CisgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgiZ2V0QnVmZmVyUGFy
YW1ldGVyIiwgInBhcmFtZXRlciIsIFtnbC5CVUZGRVJfU0laRSwgZ2wuQlVGRkVSX1VTQUdFXSwg
ZnVuY3Rpb24oYnVmZmVyVHlwZSkgeworICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhcmFtZXRlcikg
eworICAgICAgICByZXR1cm4gZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGJ1ZmZlclR5cGUsIHBhcmFt
ZXRlcik7CisgICAgICB9OworICAgIH0oYnVmZmVyVHlwZSkpOworICAgIGdsLmJpbmRCdWZmZXIo
YnVmZmVyVHlwZSwgbnVsbCk7CisgIH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAg
ICAgICJnZXRCdWZmZXJQYXJhbWV0ZXIiLAorICAgICAgInRhcmdldCIsCisgICAgICBidWZmZXJU
eXBlcywKKyAgICAgIGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICByZXR1cm4gZ2wuZ2V0QnVm
ZmVyUGFyYW1ldGVyKHRhcmdldCwgZ2wuQlVGRkVSX1NJWkUpOworICAgICAgfQorICApOworICB3
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLXZhciB0ZXN0Q2FzZXMgPSBb
Ci0gIHsgY29udGV4dFN0ZW5jaWw6IHRydWV9LAotICB7IGNvbnRleHRTdGVuY2lsOiBmYWxzZX0K
LV07CisgIGxldCB0ZXN0Q2FzZXMgPSBbCisgICAgeyBjb250ZXh0U3RlbmNpbDogdHJ1ZX0sCisg
ICAgeyBjb250ZXh0U3RlbmNpbDogZmFsc2V9CisgIF07CiAKLWZvciAodmFyIHJ1biA9IDA7IHJ1
biA8IHRlc3RDYXNlcy5sZW5ndGg7ICsrcnVuKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoIlRl
c3QgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIHdpdGggc3RlbmNpbCAiICsgdGVz
dENhc2VzW3J1bl0uY29udGV4dFN0ZW5jaWwpOworICBmb3IgKGxldCBydW4gPSAwOyBydW4gPCB0
ZXN0Q2FzZXMubGVuZ3RoOyArK3J1bikgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVz
dCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIgd2l0aCBzdGVuY2lsICIgKyB0ZXN0
Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCk7CiAKLSAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRl
eHRTdGVuY2lsKSB7Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHtzdGVuY2ls
OiB0cnVlfSwgY29udGV4dFZlcnNpb24pOwotICB9IGVsc2UgewotICAgIGdsID0gd3R1LmNyZWF0
ZTNEQ29udGV4dChudWxsLCB7c3RlbmNpbDogZmFsc2V9LCBjb250ZXh0VmVyc2lvbik7Ci0gIH0K
KyAgICBpZiAodGVzdENhc2VzW3J1bl0uY29udGV4dFN0ZW5jaWwpIHsKKyAgICAgIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7c3RlbmNpbDogdHJ1ZX0sIGNvbnRleHRWZXJzaW9uKTsK
KyAgICB9IGVsc2UgeworICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHtzdGVu
Y2lsOiBmYWxzZX0sIGNvbnRleHRWZXJzaW9uKTsKKyAgICB9CiAKLSAgdmFyIHRleHR1cmUgPSBn
bC5jcmVhdGVUZXh0dXJlKCk7Ci0gIHZhciBhbm90aGVyVGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1
cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICBuZXcgVWludDhBcnJheShbCi0gICAgICAg
ICAgICAgICAgICAgIDAsIDAsIDAsIDI1NSwKLSAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUs
IDI1NSwgMjU1LAotICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsCi0gICAg
ICAgICAgICAgICAgICAgIDAsIDAsIDAsIDI1NV0pKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIp
OwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgdmFyIGZyYW1lYnVm
ZmVyID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmcmFtZWJ1ZmZlcik7Ci0gIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSwg
MCk7Ci0gIHZhciBjb2xvckF0dGFjaG1lbnRzTnVtID0gMTsKLSAgaWYgKGNvbnRleHRWZXJzaW9u
ID4gMSkgewotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJl
KTsKKyAgICB3aW5kb3cudGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICB3aW5kb3cu
YW5vdGhlclRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CiAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0JBLCAyLCAyLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAogICAgICAg
ICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoWwogICAgICAgICAgICAgICAgICAgICAgIDAsIDAs
IDAsIDI1NSwKQEAgLTExNiw5NjAgKzEwOCw5ODMgQEAgZm9yICh2YXIgcnVuID0gMDsgcnVuIDwg
dGVzdENhc2VzLmxlbmd0aDsgKytydW4pIHsKICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsK
ICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBjb2xvckF0dGFj
aG1lbnRzTnVtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyk7Ci0g
ICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFD
SE1FTlQwICsgY29sb3JBdHRhY2htZW50c051bSAtIDEsIGdsLlRFWFRVUkVfMkQsIGFub3RoZXJU
ZXh0dXJlLCAwKTsKLSAgfQotICB2YXIgcmVuZGVyYnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCk7Ci0gIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgZ2wuYmlu
ZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7Ci0gIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgaWYgKGNvbnRleHRWZXJzaW9uID09IDEp
Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX0NP
TVBPTkVOVDE2LCAyLCAyKTsKLSAgZWxzZQotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5ERVBUSDI0X1NURU5DSUw4LCAyLCAyKTsKLSAgd3R1LmdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5k
ZXJidWZmZXIpOwotICBpZiAoY29udGV4dFZlcnNpb24gPiAxKQotICAgIGdsLmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLlJF
TkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsKLSAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7Ci0g
IC8vIFRoZSBmb3IgbG9vcCB0ZXN0cyB0d28gY29sb3IgYXR0YWNobWVudHMgZm9yIFdlYkdMIDI6
IHRoZSBmaXJzdCBvbmUgKGdsLkNPTE9SX0FUVEFDSE1FTlQwKQotICAvLyBhbmQgdGhlIGxhc3Qg
b25lIChnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyAtIDEp
LgotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JBdHRhY2htZW50c051bTsgaWkgKz0gKGNv
bG9yQXR0YWNobWVudHNOdW0gPiAxID8gY29sb3JBdHRhY2htZW50c051bSAtIDEgOiAxKSkgewot
ICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuVEVYVFVSRScpOwotICAgIGlmIChpaSA9
PSAwKQotICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICd0ZXh0dXJlJyk7Ci0gICAgZWxz
ZQotICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICdhbm90aGVyVGV4dHVyZScpOwotICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9URVhUVVJFX0xFVkVMKScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVf
Q1VCRV9NQVBfRkFDRSknLCAnMCcpOworICAgIHdpbmRvdy5mcmFtZWJ1ZmZlciA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCk7CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBm
cmFtZWJ1ZmZlcik7CisgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIs
IGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKKyAgICBs
ZXQgY29sb3JBdHRhY2htZW50c051bSA9IDE7CiAgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkg
ewotICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9SRURfU0laRSknKTsKLSAgICAgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfR1JFRU5fU0laRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hN
RU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFKScp
OwotICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFKScpOwotICAgICAgc2hvdWxkQmVO
b25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1Jf
RU5DT0RJTkcpJyk7Ci0gICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSAr
ICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlFUiknLCAnMCcpOworICAg
ICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgYW5vdGhlclRleHR1cmUpOworICAgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyLCAyLCAwLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAgICAgICBuZXcgVWludDhBcnJheShb
CisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAyNTUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAyNTUs
IDI1NSwgMjU1LCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAyNTVdKSk7
CisgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTElORUFSKTsKKyAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgICAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgICBjb2xvckF0dGFjaG1lbnRzTnVtID0gZ2wuZ2V0
UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyk7CisgICAgICBnbC5mcmFtZWJ1ZmZl
clRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyBjb2xvckF0
dGFjaG1lbnRzTnVtIC0gMSwgZ2wuVEVYVFVSRV8yRCwgYW5vdGhlclRleHR1cmUsIDApOwogICAg
IH0KLSAgfQotICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5SRU5ERVJCVUZGRVInKTsKLSAgc2hvdWxkQmUoJ2ds
LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQ
VEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAn
cmVuZGVyYnVmZmVyJyk7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZ
UEUpJywgJ2dsLlJFTkRFUkJVRkZFUicpOwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVO
VCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAncmVuZGVyYnVmZmVy
Jyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5SRU5ERVJCVUZGRVInKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBU
SF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUpJyk7Ci0g
ICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIo
Z2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9TVEVOQ0lMX1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFD
SE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAg
c2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfQ09MT1JfRU5DT0RJTkcpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNI
TUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICBz
aG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5G
UkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HKScpOwotICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLklOVkFMSURfT1BFUkFUSU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJv
KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xP
Ul9FTkNPRElORyknKTsKLSAgfQotICB2YXIgdmFsaWRQYXJhbWV0ZXJzRm9yRkJBdHRhY2htZW50
ID0KLSAgICAgIFsgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSwKLSAgICAg
ICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSwKLSAgICAgICAgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMLAotICAgICAgICBnbC5GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRQotICAgICAgXTsKLSAgaWYgKGNvbnRl
eHRWZXJzaW9uID4gMSkgewotICAgIHZhbGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCA9IHZh
bGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudC5jb25jYXQoWwotICAgICAgICBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0dSRUVOX1NJWkUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9T
SVpFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUsCi0gICAg
ICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSwKLSAgICAgICAgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQ09MT1JfRU5DT0RJTkcsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
VEVYVFVSRV9MQVlFUgotICAgIF0pOwotICB9Ci0gIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAg
ICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKLSAgICAgICJwYXJhbWV0ZXIi
LAotICAgICAgdmFsaWRQYXJhbWV0ZXJzRm9yRkJBdHRhY2htZW50LAotICAgICAgZnVuY3Rpb24o
cGFyYW1ldGVyKSB7Ci0gICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQsIHBhcmFtZXRlcik7
Ci0gICAgICB9Ci0gICk7Ci0gIHZhciB2YWxpZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQgPSBbZ2wu
RlJBTUVCVUZGRVJdOwotICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gICAgdmFsaWRUYXJn
ZXRzRm9yRkJBdHRhY2htZW50ID0gdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50LmNvbmNhdChb
Z2wuUkVBRF9GUkFNRUJVRkZFUiwgZ2wuRFJBV19GUkFNRUJVRkZFUl0pOwotICB9Ci0gIHRlc3RJ
bnZhbGlkQXJndW1lbnQoCi0gICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
IiwKLSAgICAgICJ0YXJnZXQiLAotICAgICAgdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50LAot
ICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5DT0xPUl9BVFRBQ0hNRU5ULCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKKyAgICB3aW5kb3cucmVuZGVyYnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOworICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBy
ZW5kZXJidWZmZXIpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
KyAgICBpZiAoY29udGV4dFZlcnNpb24gPT0gMSkKKyAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3Jh
Z2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgMiwgMik7CisgICAgZWxz
ZQorICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRI
MjRfU1RFTkNJTDgsIDIsIDIpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKKyAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
REVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOworICAgIGlm
IChjb250ZXh0VmVyc2lvbiA+IDEpCisgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJl
bmRlcmJ1ZmZlcik7CisgICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgLy8gVGhlIGZv
ciBsb29wIHRlc3RzIHR3byBjb2xvciBhdHRhY2htZW50cyBmb3IgV2ViR0wgMjogdGhlIGZpcnN0
IG9uZSAoZ2wuQ09MT1JfQVRUQUNITUVOVDApCisgICAgLy8gYW5kIHRoZSBsYXN0IG9uZSAoZ2wu
Q09MT1JfQVRUQUNITUVOVDAgKyBnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMgLSAxKS4KKyAgICBm
b3IgKGxldCBpaSA9IDA7IGlpIDwgY29sb3JBdHRhY2htZW50c051bTsgaWkgKz0gKGNvbG9yQXR0
YWNobWVudHNOdW0gPiAxID8gY29sb3JBdHRhY2htZW50c051bSAtIDEgOiAxKSkgeworICAgICAg
c2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5URVhUVVJFJyk7CisgICAgICBpZiAoaWkgPT0g
MCkKKyAgICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICd0ZXh0dXJlJyk7CisgICAgICBl
bHNlCisgICAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAnYW5vdGhlclRleHR1cmUnKTsK
KyAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMKScsICcwJyk7CisgICAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
VEVYVFVSRV9DVUJFX01BUF9GQUNFKScsICcwJyk7CisgICAgICBpZiAoY29udGV4dFZlcnNpb24g
PiAxKSB7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBp
aSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUpJyk7CisgICAgICAgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSknKTsKKyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9C
TFVFX1NJWkUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCAr
ICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSknKTsKKyAg
ICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAgICAgc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKKyAgICAgICAgc2hvdWxkQmUoJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVf
TEFZRVIpJywgJzAnKTsKICAgICAgIH0KLSAgKTsKLSAgdmFyIHZhbGlkQXR0YWNobWVudHNGb3JG
QkF0dGFjaG1lbnQgPSBuZXcgQXJyYXkoCi0gICAgICBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwKLSAg
ICAgIGdsLkRFUFRIX0FUVEFDSE1FTlQsCi0gICAgICBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsCi0g
ICAgICBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLSAgKTsKLSAgaWYgKGNvbnRleHRWZXJz
aW9uID4gMSkgewotICAgIGZvciAodmFyIGlpID0gMTsgaWkgPCBnbC5nZXRQYXJhbWV0ZXIoZ2wu
TUFYX0NPTE9SX0FUVEFDSE1FTlRTKTsgKytpaSkgewotICAgICAgdmFsaWRBdHRhY2htZW50c0Zv
ckZCQXR0YWNobWVudFt2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50Lmxlbmd0aF0gPSBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCArIGlpOwogICAgIH0KLSAgfQotICB0ZXN0SW52YWxpZEFyZ3Vt
ZW50KAotICAgICAgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCi0gICAgICAi
YXR0YWNobWVudCIsCi0gICAgICB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50LAotICAg
ICAgZnVuY3Rpb24oYXR0YWNobWVudCkgewotICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKLSAgICAgIH0KLSAgKTsKLSAgaWYgKGNv
bnRleHRWZXJzaW9uID4gMSkgewotICAgIC8vIHRlc3QgZGVmYXVsdCBmcmFtZWJ1ZmZlcgotICAg
IGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7Ci0gICAgc2hvdWxkQmUo
J2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVG
RkVSX0NPTVBMRVRFJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcpOwotICAgIHNob3Vs
ZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRILCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5G
UkFNRUJVRkZFUl9ERUZBVUxUJyk7Ci0gICAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVu
Y2lsKQotICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcpOwotICAgIGVsc2UKLSAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUp
JywgJ2dsLk5PTkUnKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9SRURfU0laRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9TSVpFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5C
QUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSknKTsKLSAgICBzaG91bGRC
ZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFKScpOwot
ICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBU
SF9TSVpFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOwotICAgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5ERVBUSCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsK
LSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09M
T1JfRU5DT0RJTkcpJyk7Ci0gICAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7
Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9TVEVOQ0lMX1NJWkUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICAgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScp
OwotICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJB
VElPTiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUpJyk7
Ci0gICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsK
LSAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9O
LCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEUpJywgJ2dsLlJFTkRFUkJVRkZFUicpOworICAgIHNob3VsZEJlKCdnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FU
VEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRl
cmJ1ZmZlcicpOworICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIHNob3VsZEJl
KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQ
RSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1F
TlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZl
cicpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5SRU5ERVJCVUZGRVInKTsKKyAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfTkFNRSknLCAncmVuZGVyYnVmZmVyJyk7CisgICAgICBzaG91bGRCZU5vblpl
cm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpF
KScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8o
J2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
REVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQ
RSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgICAgc2hvdWxkQmVOb25aZXJv
KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRf
VFlQRSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAgICB3dHUuc2hvdWxk
R2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOwor
ICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKKyAgICB9CisgICAgbGV0IHZhbGlk
UGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCA9CisgICAgICAgIFsgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfVFlQRSwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVS
RV9MRVZFTCwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VC
RV9NQVBfRkFDRQorICAgICAgICBdOworICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAg
ICAgIHZhbGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCA9IHZhbGlkUGFyYW1ldGVyc0ZvckZC
QXR0YWNobWVudC5jb25jYXQoWworICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
UkVEX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9TSVpF
LAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFLAorICAgICAg
ICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSwKKyAgICAgICAgICBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9DT01QT05FTlRfVFlQRSwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
VEVYVFVSRV9MQVlFUgorICAgICAgXSk7CiAgICAgfQotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQo
CisgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKICAgICAgICAgImdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlciIsCiAgICAgICAgICJwYXJhbWV0ZXIiLAogICAgICAgICB2YWxp
ZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQsCiAgICAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikg
ewotICAgICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIo
Z2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIHBhcmFtZXRlcik7CisgICAgICAgICAgcmV0dXJuIGds
LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09M
T1JfQVRUQUNITUVOVCwgcGFyYW1ldGVyKTsKICAgICAgICAgfQogICAgICk7Ci0gICAgdGVzdElu
dmFsaWRBcmd1bWVudCgKKyAgICBsZXQgdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50ID0gW2ds
LkZSQU1FQlVGRkVSXTsKKyAgICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICB2YWxp
ZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQgPSB2YWxpZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQuY29u
Y2F0KFtnbC5SRUFEX0ZSQU1FQlVGRkVSLCBnbC5EUkFXX0ZSQU1FQlVGRkVSXSk7CisgICAgfQor
ICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCiAgICAgICAgICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLAogICAgICAgICAidGFyZ2V0IiwKICAgICAgICAgdmFsaWRUYXJn
ZXRzRm9yRkJBdHRhY2htZW50LAogICAgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAgICAg
ICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdldCwgZ2wu
QkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7CisgICAgICAgICAg
cmV0dXJuIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGdsLkNP
TE9SX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpOwog
ICAgICAgICB9CiAgICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgIGxldCB2YWxp
ZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50ID0gbmV3IEFycmF5KAorICAgICAgICBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCwKKyAgICAgICAgZ2wuREVQVEhfQVRUQUNITUVOVCwKKyAgICAgICAgZ2wu
U1RFTkNJTF9BVFRBQ0hNRU5ULAorICAgICAgICBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQK
KyAgICApOworICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIGZvciAobGV0IGlp
ID0gMTsgaWkgPCBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NPTE9SX0FUVEFDSE1FTlRTKTsgKytp
aSkgeworICAgICAgICB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50W3ZhbGlkQXR0YWNo
bWVudHNGb3JGQkF0dGFjaG1lbnQubGVuZ3RoXSA9IGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgaWk7
CisgICAgICB9CisgICAgfQorICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCiAgICAgICAg
ICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLAogICAgICAgICAiYXR0YWNobWVu
dCIsCi0gICAgICAgIFsgZ2wuQkFDSywKLSAgICAgICAgICBnbC5ERVBUSCwKLSAgICAgICAgICBn
bC5TVEVOQ0lMCi0gICAgICAgIF0sCisgICAgICAgIHZhbGlkQXR0YWNobWVudHNGb3JGQkF0dGFj
aG1lbnQsCiAgICAgICAgIGZ1bmN0aW9uKGF0dGFjaG1lbnQpIHsKICAgICAgICAgICByZXR1cm4g
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBhdHRh
Y2htZW50LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKICAgICAgICAg
fQogICAgICk7Ci0gIH0KLX0KLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LQotZGVidWcoIiIpOwotZGVidWcoInRlc3QgZ2V0QXR0YWNoZWRTaGFkZXJzIik7Ci12YXIgc3Rh
bmRhcmRWZXJ0ID0gd3R1LmxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcihnbCk7Ci12YXIgc3RhbmRh
cmRGcmFnID0gd3R1LmxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGdsKTsKLXZhciBzdGFuZGFy
ZFByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci1nbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQ
cm9ncmFtLCBzdGFuZGFyZFZlcnQpOwotZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwg
c3RhbmRhcmRGcmFnKTsKLWdsLmxpbmtQcm9ncmFtKHN0YW5kYXJkUHJvZ3JhbSk7Ci12YXIgc2hh
ZGVycyA9IGdsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFByb2dyYW0pOwotc2hvdWxkQmUo
J3NoYWRlcnMubGVuZ3RoJywgJzInKTsKLXNob3VsZEJlVHJ1ZSgnc2hhZGVyc1swXSA9PSBzdGFu
ZGFyZFZlcnQgJiYgc2hhZGVyc1sxXSA9PSBzdGFuZGFyZEZyYWcgfHwgc2hhZGVyc1sxXSA9PSBz
dGFuZGFyZFZlcnQgJiYgc2hhZGVyc1swXSA9PSBzdGFuZGFyZEZyYWcnKTsKLXd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLXNob3VsZFRocm93KCdnbC5nZXRBdHRhY2hlZFNo
YWRlcnMobnVsbCknKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLXNo
b3VsZFRocm93KCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KScpOwotd3R1Lmds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVz
dCBnZXRQcm9ncmFtUGFyYW1ldGVyIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihzdGFuZGFyZFByb2dyYW0sIGdsLkRFTEVURV9TVEFUVVMpJywgJ2ZhbHNlJyk7Ci1zaG91bGRC
ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkxJTktfU1RBVFVT
KScsICd0cnVlJyk7Ci1zaG91bGRCZSgndHlwZW9mIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3Rh
bmRhcmRQcm9ncmFtLCBnbC5WQUxJREFURV9TVEFUVVMpJywgJyJib29sZWFuIicpOwotc2hvdWxk
QmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BVFRBQ0hFRF9T
SEFERVJTKScsICcyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFy
ZFByb2dyYW0sIGdsLkFDVElWRV9BVFRSSUJVVEVTKScsICcyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFDVElWRV9VTklGT1JNUyknLCAn
MScpOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICB2YXIgYnVmZmVyID0gZ2wuY3JlYXRl
QnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwg
YnVmZmVyKTsKLSAgZ2wuYnVmZmVyRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCAx
MDI0LCBnbC5EWU5BTUlDX0RSQVcpOwotICB2YXIgdW5pZm9ybUJsb2NrUHJvZ3JhbSA9IHd0dS5s
b2FkVW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7Ci0gIHZhciB0cmFuc2Zvcm1GZWVkYmFja1ZhcnMg
PSBbIm5vcm1hbCIsICJlY1Bvc2l0aW9uIl07Ci0gIGdsLnRyYW5zZm9ybUZlZWRiYWNrVmFyeWlu
Z3ModW5pZm9ybUJsb2NrUHJvZ3JhbSwgdHJhbnNmb3JtRmVlZGJhY2tWYXJzLCBnbC5JTlRFUkxF
QVZFRF9BVFRSSUJTKTsKLSAgZ2wubGlua1Byb2dyYW0odW5pZm9ybUJsb2NrUHJvZ3JhbSk7Ci0g
IHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGds
LkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2ds
Lk5PX0VSUk9SJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1C
bG9ja1Byb2dyYW0sIGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUyknLCAnMScpOwotICBzaG91bGRC
ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfVkFSWUlOR1MpJywgJzInKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1Q
YXJhbWV0ZXIodW5pZm9ybUJsb2NrUHJvZ3JhbSwgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFKScsICdnbC5JTlRFUkxFQVZFRF9BVFRSSUJTJyk7Ci19Ci12YXIgcHJvZ3JhbSA9IHN0
YW5kYXJkUHJvZ3JhbTsKLXZhciB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlciA9IFsKLSAg
ICBnbC5ERUxFVEVfU1RBVFVTLAotICAgIGdsLkxJTktfU1RBVFVTLAotICAgIGdsLlZBTElEQVRF
X1NUQVRVUywKLSAgICBnbC5BVFRBQ0hFRF9TSEFERVJTLAotICAgIGdsLkFDVElWRV9BVFRSSUJV
VEVTLAotICAgIGdsLkFDVElWRV9VTklGT1JNUwotXTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEp
IHsKLSAgdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIgPSB2YWxpZEFycmF5Rm9yUHJvZ3Jh
bVBhcmFtZXRlci5jb25jYXQoWwotICAgICAgZ2wuQUNUSVZFX1VOSUZPUk1fQkxPQ0tTLAotICAg
ICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdTLAotICAgICAgZ2wuVFJBTlNGT1JNX0ZF
RURCQUNLX0JVRkZFUl9NT0RFCi0gIF0pOwotICBwcm9ncmFtID0gdW5pZm9ybUJsb2NrUHJvZ3Jh
bTsKLX0KLXRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgImdldFByb2dyYW1QYXJhbWV0ZXIiLAot
ICAgICJwYXJhbWV0ZXIiLAotICAgIHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVyLAotICAg
IGZ1bmN0aW9uKHBhcmFtZXRlcikgewotICAgICAgcmV0dXJuIGdsLmdldFByb2dyYW1QYXJhbWV0
ZXIocHJvZ3JhbSwgcGFyYW1ldGVyKTsKLSAgICB9Ci0pOwotd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIiKTsKLXNob3VsZEJlKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpJywgJzInKTsKLXNob3VsZEJlKCdn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfSEVJR0hUKScsICcyJyk7Ci0vLyBOb3RlOiB3ZSBjYW4ndCB0ZXN0IHRoZSBhY3R1YWwgdmFs
dWUgb2YgdGhlIGludGVybmFsIGZvcm1hdCBzaW5jZQotLy8gdGhlIGltcGxlbWVudGF0aW9uIGlz
IGFsbG93ZWQgdG8gY2hhbmdlIGl0Lgotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9S
TUFUKScpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSknKTsKLXZhciBjb2xvcmJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOwotZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRl
cmJ1ZmZlcik7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1nbC5yZW5k
ZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDIsIDIpOwotc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpJyk7Ci1zaG91bGRCZU5vblplcm8oJ2dsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9T
SVpFKScpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKScpOwotc2hvdWxkQmVOb25a
ZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfQUxQSEFfU0laRSknKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgZ2wu
cmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKGdsLlJFTkRFUkJVRkZFUiwgNCwgZ2wuUkdC
QTQsIDIsIDIpOwotICBzaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJF
TkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1NBTVBMRVMpJywgJzQnKTsKLX0KLXZhciB2YWxp
ZEFycmF5Rm9yUmVuZGVyYnVmZmVyID0gbmV3IEFycmF5KAotICAgIGdsLlJFTkRFUkJVRkZFUl9X
SURUSCwKLSAgICBnbC5SRU5ERVJCVUZGRVJfSEVJR0hULAotICAgIGdsLlJFTkRFUkJVRkZFUl9J
TlRFUk5BTF9GT1JNQVQsCi0gICAgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFLAotICAgIGdsLlJF
TkRFUkJVRkZFUl9HUkVFTl9TSVpFLAotICAgIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUsCi0g
ICAgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUsCi0gICAgZ2wuUkVOREVSQlVGRkVSX0RFUFRI
X1NJWkUsCi0gICAgZ2wuUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRQotKTsKLWlmIChjb250ZXh0
VmVyc2lvbiA+IDEpIHsKLSAgdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZlclt2YWxpZEFycmF5Rm9y
UmVuZGVyYnVmZmVyLmxlbmd0aF0gPSBnbC5SRU5ERVJCVUZGRVJfU0FNUExFUzsKLX0KLXRlc3RJ
bnZhbGlkQXJndW1lbnQoCi0gICAgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsCi0gICAgInBh
cmFtZXRlciIsCi0gICAgdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZlciwKLSAgICBmdW5jdGlvbihw
YXJhbWV0ZXIpIHsKLSAgICAgIHJldHVybiBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBwYXJhbWV0ZXIpOwotICAgIH0pOwotdGVzdEludmFsaWRBcmd1bWVudCgK
LSAgICAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwKLSAgICAidGFyZ2V0IiwKLSAgICBbIGds
LlJFTkRFUkJVRkZFUiBdLAotICAgIGZ1bmN0aW9uKHRhcmdldCkgewotICAgICAgcmV0dXJuIGds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcih0YXJnZXQsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCk7
Ci0gICAgfQotKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotZGVi
dWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0U2hhZGVyUGFyYW1ldGVyIik7Ci1zaG91bGRCZSgnZ2wu
Z2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuU0hBREVSX1RZUEUpJywgJ2dsLlZF
UlRFWF9TSEFERVInKTsKLXNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRW
ZXJ0LCBnbC5ERUxFVEVfU1RBVFVTKScsICdmYWxzZScpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRl
clBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7Ci10
ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICJnZXRTaGFkZXJQYXJhbWV0ZXIiLAotICAgICJwYXJh
bWV0ZXIiLAotICAgIFsgZ2wuREVMRVRFX1NUQVRVUywKLSAgICAgIGdsLkNPTVBJTEVfU1RBVFVT
LAotICAgICAgZ2wuU0hBREVSX1RZUEUKLSAgICBdLAotICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikg
ewotICAgICAgcmV0dXJuIGdsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIHBhcmFt
ZXRlcik7CisgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgICAgLy8gdGVzdCBkZWZh
dWx0IGZyYW1lYnVmZmVyCisgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IG51bGwpOworICAgICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5C
QUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5GUkFNRUJV
RkZFUl9ERUZBVUxUJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSCwgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcpOworICAgICAg
aWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKQorICAgICAgICBzaG91bGRCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVO
Q0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5GUkFNRUJV
RkZFUl9ERUZBVUxUJyk7CisgICAgICBlbHNlCisgICAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLk5PTkUnKTsKKyAgICAg
IHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpF
KScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfR1JFRU5fU0laRSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNL
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUpJyk7CisgICAgICBzaG91bGRC
ZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSknKTsK
KyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NP
TVBPTkVOVF9UWVBFKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8o
J2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
REVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAg
ICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1Jf
RU5DT0RJTkcpJyk7CisgICAgICBpZiAodGVzdENhc2VzW3J1bl0uY29udGV4dFN0ZW5jaWwpIHsK
KyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfU1RFTkNJTF9TSVpFKScpOworICAgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAgICAgc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJ
TkcpJyk7CisgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1NURU5D
SUxfU0laRSknKTsKKyAgICAgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sICdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9O
RU5UX1RZUEUpJyk7CisgICAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9S
X0VOQ09ESU5HKScpOworICAgICAgfQorICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgK
KyAgICAgICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKKyAgICAgICAg
ICAicGFyYW1ldGVyIiwKKyAgICAgICAgICB2YWxpZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQs
CisgICAgICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgICAgICByZXR1cm4gZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNL
LCBwYXJhbWV0ZXIpOworICAgICAgICAgIH0KKyAgICAgICk7CisgICAgICBhd2FpdCB0ZXN0SW52
YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIiLAorICAgICAgICAgICJ0YXJnZXQiLAorICAgICAgICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0
YWNobWVudCwKKyAgICAgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVy
biBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5CQUNLLCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKKyAgICAgICAgICB9CisgICAg
ICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAiZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKKyAgICAgICAgICAiYXR0YWNobWVudCIsCisg
ICAgICAgICAgWyBnbC5CQUNLLAorICAgICAgICAgICAgZ2wuREVQVEgsCisgICAgICAgICAgICBn
bC5TVEVOQ0lMCisgICAgICAgICAgXSwKKyAgICAgICAgICBmdW5jdGlvbihhdHRhY2htZW50KSB7
CisgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9UWVBFKTsKKyAgICAgICAgICB9CisgICAgICApOwogICAgIH0KLSk7Ci13dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIH0KKyAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwogCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRUZXhQYXJhbWV0
ZXIiKTsKLWdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIpOwot
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci1nbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9T
LCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotc2hvdWxkQmUoJ2dsLmdldFRleFBh
cmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIpJywgJ2dsLk5FQVJF
U1QnKTsKLXNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VGV4UGFy
YW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TKScsICdnbC5DTEFNUF9UT19F
REdFJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9UKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci1pZiAoY29udGV4dFZlcnNpb24g
PiAxKSB7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9CQVNF
X0xFVkVMLCAwKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X0NPTVBBUkVfRlVOQywgZ2wuTEVRVUFMKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSwgZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRSk7
Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTEVWRUws
IDEwKTsKLSAgZ2wudGV4UGFyYW1ldGVyZihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BWF9M
T0QsIDEwKTsKLSAgZ2wudGV4UGFyYW1ldGVyZihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01J
Tl9MT0QsIDApOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9SLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRl
cihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0JBU0VfTEVWRUwpJywgJzAnKTsKLSAgc2hvdWxk
QmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVf
RlVOQyknLCAnZ2wuTEVRVUFMJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUpJywgJ2dsLkNPTVBBUkVfUkVGX1RP
X1RFWFRVUkUnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01BWF9MRVZFTCknLCAnMTAnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRleFBh
cmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BWF9MT0QpJywgJzEwJyk7Ci0gIHNo
b3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5f
TE9EKScsICcwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1IpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKLSAgc2hvdWxkQmUo
J2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0lNTVVUQUJMRV9G
T1JNQVQpJywgJ2ZhbHNlJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfTEVWRUxTKScsICcwJyk7Ci19Ci12YXIgdmFs
aWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSA9IFsKLSAgICBnbC5URVhUVVJFX01BR19GSUxURVIsCi0g
ICAgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLAotICAgIGdsLlRFWFRVUkVfV1JBUF9TLAotICAgIGds
LlRFWFRVUkVfV1JBUF9ULAotXTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFsaWRQ
YXJhbWV0ZXJzRm9yVGV4dHVyZSA9IHZhbGlkUGFyYW1ldGVyc0ZvclRleHR1cmUuY29uY2F0KFsK
LSAgICAgIGdsLlRFWFRVUkVfQkFTRV9MRVZFTCwKLSAgICAgIGdsLlRFWFRVUkVfQ09NUEFSRV9G
VU5DLAotICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUsCi0gICAgICBnbC5URVhUVVJFX01B
WF9MRVZFTCwKLSAgICAgIGdsLlRFWFRVUkVfTUFYX0xPRCwKLSAgICAgIGdsLlRFWFRVUkVfTUlO
X0xPRCwKLSAgICAgIGdsLlRFWFRVUkVfV1JBUF9SLAotICAgICAgZ2wuVEVYVFVSRV9JTU1VVEFC
TEVfRk9STUFULAotICAgICAgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfTEVWRUxTLAotICBdKTsKLX0K
LXRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgImdldFRleFBhcmFtZXRlciIsCi0gICAgInBhcmFt
ZXRlciIsCi0gICAgdmFsaWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSwKLSAgICBmdW5jdGlvbihwYXJh
bWV0ZXIpIHsKLSAgICAgIHJldHVybiBnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwg
cGFyYW1ldGVyKTsKLSAgICB9Ci0pOwotdmFyIHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUgPSBbIGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfQ1VCRV9NQVBdOwotaWYgKGNvbnRleHRWZXJzaW9uID4g
MSkgewotICB2YWxpZFRhcmdldHNGb3JUZXh0dXJlID0gdmFsaWRUYXJnZXRzRm9yVGV4dHVyZS5j
b25jYXQoWyBnbC5URVhUVVJFXzNELCBnbC5URVhUVVJFXzJEX0FSUkFZXSk7Ci19Ci10ZXN0SW52
YWxpZEFyZ3VtZW50KAotICAgICJnZXRUZXhQYXJhbWV0ZXIiLAotICAgICJ0YXJnZXQiLAotICAg
IHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUsCi0gICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICBy
ZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKHRhcmdldCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKTsK
LSAgICB9Ci0pOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBkZWJ1
ZygiIik7CisgIGRlYnVnKCJ0ZXN0IGdldEF0dGFjaGVkU2hhZGVycyIpOworICB3aW5kb3cuc3Rh
bmRhcmRWZXJ0ID0gd3R1LmxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcihnbCk7CisgIHdpbmRvdy5z
dGFuZGFyZEZyYWcgPSB3dHUubG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIoZ2wpOworICB3aW5k
b3cuc3RhbmRhcmRQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFk
ZXIoc3RhbmRhcmRQcm9ncmFtLCBzdGFuZGFyZFZlcnQpOworICBnbC5hdHRhY2hTaGFkZXIoc3Rh
bmRhcmRQcm9ncmFtLCBzdGFuZGFyZEZyYWcpOworICBnbC5saW5rUHJvZ3JhbShzdGFuZGFyZFBy
b2dyYW0pOworICB3aW5kb3cuc2hhZGVycyA9IGdsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFy
ZFByb2dyYW0pOworICBzaG91bGRCZSgnc2hhZGVycy5sZW5ndGgnLCAnMicpOworICBzaG91bGRC
ZVRydWUoJ3NoYWRlcnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMV0gPT0gc3RhbmRh
cmRGcmFnIHx8IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMF0gPT0gc3Rh
bmRhcmRGcmFnJyk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAg
c2hvdWxkVGhyb3coJ2dsLmdldEF0dGFjaGVkU2hhZGVycyhudWxsKScpOworICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIHNob3VsZFRocm93KCdnbC5nZXRBdHRhY2hl
ZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KScpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CiAKLWRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0IGdldFVuaWZvcm0gd2l0aCBhbGwg
dmFyaWFudHMgb2YgZGF0YSB0eXBlcyIpOwotZGVidWcoIkJvb2xlYW4gdW5pZm9ybSB2YXJpYWJs
ZXMiKTsKLXZhciBib29sUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4v
Li4vcmVzb3VyY2VzL2Jvb2xVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL25v
b3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KGJvb2xQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIGJ2YWxMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsIik7Ci12YXIgYnZhbDJMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsMiIpOwotdmFyIGJ2YWwz
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDMiKTsKLXZhciBi
dmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWw0Iik7Ci1n
bC51c2VQcm9ncmFtKGJvb2xQcm9ncmFtKTsKLWdsLnVuaWZvcm0xaShidmFsTG9jLCAxKTsKLWds
LnVuaWZvcm0yaShidmFsMkxvYywgMSwgMCk7Ci1nbC51bmlmb3JtM2koYnZhbDNMb2MsIDEsIDAs
IDEpOwotZ2wudW5pZm9ybTRpKGJ2YWw0TG9jLCAxLCAwLCAxLCAwKTsKLXd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9n
cmFtLCBidmFsTG9jKScsICd0cnVlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJv
Z3JhbSwgYnZhbDJMb2MpJywgJ1t0cnVlLCBmYWxzZV0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlm
b3JtKGJvb2xQcm9ncmFtLCBidmFsM0xvYyknLCAnW3RydWUsIGZhbHNlLCB0cnVlXScpOwotc2hv
dWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWw0TG9jKScsICdbdHJ1ZSwgZmFs
c2UsIHRydWUsIGZhbHNlXScpOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJUZXN0IGdldFByb2dyYW1QYXJhbWV0ZXIiKTsKKyAg
c2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5ERUxF
VEVfU1RBVFVTKScsICdmYWxzZScpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihzdGFuZGFyZFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7CisgIHNob3VsZEJl
KCd0eXBlb2YgZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLlZBTElE
QVRFX1NUQVRVUyknLCAnImJvb2xlYW4iJyk7CisgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuQVRUQUNIRURfU0hBREVSUyknLCAnMicpOworICBz
aG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFDVElW
RV9BVFRSSUJVVEVTKScsICcyJyk7CisgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KHN0YW5kYXJkUHJvZ3JhbSwgZ2wuQUNUSVZFX1VOSUZPUk1TKScsICcxJyk7CisgIGlmIChjb250
ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICBsZXQgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7Cisg
ICAgZ2wuYmluZEJ1ZmZlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCBidWZmZXIpOwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMTAyNCwgZ2wu
RFlOQU1JQ19EUkFXKTsKKyAgICB3aW5kb3cudW5pZm9ybUJsb2NrUHJvZ3JhbSA9IHd0dS5sb2Fk
VW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7CisgICAgbGV0IHRyYW5zZm9ybUZlZWRiYWNrVmFycyA9
IFsibm9ybWFsIiwgImVjUG9zaXRpb24iXTsKKyAgICBnbC50cmFuc2Zvcm1GZWVkYmFja1Zhcnlp
bmdzKHVuaWZvcm1CbG9ja1Byb2dyYW0sIHRyYW5zZm9ybUZlZWRiYWNrVmFycywgZ2wuSU5URVJM
RUFWRURfQVRUUklCUyk7CisgICAgZ2wubGlua1Byb2dyYW0odW5pZm9ybUJsb2NrUHJvZ3JhbSk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodW5pZm9ybUJsb2NrUHJvZ3Jh
bSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3Io
KScsICdnbC5OT19FUlJPUicpOworICAgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUyknLCAnMScpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0s
IGdsLlRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HUyknLCAnMicpOworICAgIHNob3VsZEJlKCdn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLlRSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVJfTU9ERSknLCAnZ2wuSU5URVJMRUFWRURfQVRUUklCUycpOworICB9Cisg
IHdpbmRvdy5wcm9ncmFtID0gc3RhbmRhcmRQcm9ncmFtOworICBsZXQgdmFsaWRBcnJheUZvclBy
b2dyYW1QYXJhbWV0ZXIgPSBbCisgICAgICBnbC5ERUxFVEVfU1RBVFVTLAorICAgICAgZ2wuTElO
S19TVEFUVVMsCisgICAgICBnbC5WQUxJREFURV9TVEFUVVMsCisgICAgICBnbC5BVFRBQ0hFRF9T
SEFERVJTLAorICAgICAgZ2wuQUNUSVZFX0FUVFJJQlVURVMsCisgICAgICBnbC5BQ1RJVkVfVU5J
Rk9STVMKKyAgXTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIHZhbGlkQXJyYXlG
b3JQcm9ncmFtUGFyYW1ldGVyID0gdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIuY29uY2F0
KFsKKyAgICAgICAgZ2wuQUNUSVZFX1VOSUZPUk1fQkxPQ0tTLAorICAgICAgICBnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfVkFSWUlOR1MsCisgICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfTU9ERQorICAgIF0pOworICAgIHByb2dyYW0gPSB1bmlmb3JtQmxvY2tQcm9ncmFtOworICB9
CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0UHJvZ3JhbVBhcmFtZXRl
ciIsCisgICAgICAicGFyYW1ldGVyIiwKKyAgICAgIHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1l
dGVyLAorICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgIHJldHVybiBnbC5nZXRQ
cm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBhcmFtZXRlcik7CisgICAgICB9CisgICk7CisgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIkludGVnZXIgdW5p
Zm9ybSB2YXJpYWJsZXMiKTsKLXZhciBpbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZp
bGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvaW50VW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jl
c291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcihpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIGl2
YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWwiKTsKLXZhciBp
dmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbDIiKTsKLXZh
ciBpdmFsM0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbDMiKTsK
LXZhciBpdmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbDQi
KTsKLWdsLnVzZVByb2dyYW0oaW50UHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoaXZhbExvYywgMSk7
Ci1nbC51bmlmb3JtMmkoaXZhbDJMb2MsIDIsIDMpOwotZ2wudW5pZm9ybTNpKGl2YWwzTG9jLCA0
LCA1LCA2KTsKLWdsLnVuaWZvcm00aShpdmFsNExvYywgNywgOCwgOSwgMTApOwotd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50
UHJvZ3JhbSwgaXZhbExvYyknLCAnMScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50UHJv
Z3JhbSwgaXZhbDJMb2MpJywgJ1syLCAzXScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50
UHJvZ3JhbSwgaXZhbDNMb2MpJywgJ1s0LCA1LCA2XScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm0oaW50UHJvZ3JhbSwgaXZhbDRMb2MpJywgJ1s3LCA4LCA5LCAxMF0nKTsKLXd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBn
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCknLCAnMicp
OworICBzaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCknLCAnMicpOworICAvLyBOb3RlOiB3ZSBjYW4ndCB0
ZXN0IHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlIGludGVybmFsIGZvcm1hdCBzaW5jZQorICAvLyB0
aGUgaW1wbGVtZW50YXRpb24gaXMgYWxsb3dlZCB0byBjaGFuZ2UgaXQuCisgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVO
REVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCknKTsKKyAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQ
VEhfU0laRSknKTsKKyAgbGV0IGNvbG9yYnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7
CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7CisgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5E
RVJCVUZGRVIsIGdsLlJHQkE0LCAyLCAyKTsKKyAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJ
WkUpJyk7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpJyk7CisgIHNob3VsZEJl
Tm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX0JMVUVfU0laRSknKTsKKyAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFf
U0laRSknKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGdsLnJlbmRlcmJ1ZmZl
clN0b3JhZ2VNdWx0aXNhbXBsZShnbC5SRU5ERVJCVUZGRVIsIDQsIGdsLlJHQkE0LCAyLCAyKTsK
KyAgICBzaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX1NBTVBMRVMpJywgJzQnKTsKKyAgfQorICBsZXQgdmFsaWRBcnJh
eUZvclJlbmRlcmJ1ZmZlciA9IG5ldyBBcnJheSgKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9XSURU
SCwKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQsCisgICAgICBnbC5SRU5ERVJCVUZGRVJf
SU5URVJOQUxfRk9STUFULAorICAgICAgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFLAorICAgICAg
Z2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUsCisgICAgICBnbC5SRU5ERVJCVUZGRVJfQkxVRV9T
SVpFLAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUsCisgICAgICBnbC5SRU5ERVJC
VUZGRVJfREVQVEhfU0laRSwKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUKKyAg
KTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIHZhbGlkQXJyYXlGb3JSZW5kZXJi
dWZmZXJbdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZlci5sZW5ndGhdID0gZ2wuUkVOREVSQlVGRkVS
X1NBTVBMRVM7CisgIH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICJnZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIiLAorICAgICAgInBhcmFtZXRlciIsCisgICAgICB2YWxpZEFy
cmF5Rm9yUmVuZGVyYnVmZmVyLAorICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAg
IHJldHVybiBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBwYXJh
bWV0ZXIpOworICAgICAgfSk7CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAi
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwKKyAgICAgICJ0YXJnZXQiLAorICAgICAgWyBnbC5S
RU5ERVJCVUZGRVIgXSwKKyAgICAgIGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICByZXR1cm4g
Z2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgZ2wuUkVOREVSQlVGRkVSX1dJRFRI
KTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwogCi1kZWJ1ZygiRmxvYXQgdW5pZm9ybSB2YXJpYWJsZXMiKTsKLXZhciBmbG9hdFByb2dyYW0g
PSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9mbG9hdFVuaWZv
cm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIp
Owotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoZmxvYXRQcm9ncmFtLCBnbC5MSU5L
X1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIGZ2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
ZmxvYXRQcm9ncmFtLCAiZnZhbCIpOwotdmFyIGZ2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWwyIik7Ci12YXIgZnZhbDNMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbDMiKTsKLXZhciBmdmFsNExvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsNCIpOwotZ2wudXNlUHJvZ3JhbShmbG9h
dFByb2dyYW0pOwotZ2wudW5pZm9ybTFmKGZ2YWxMb2MsIDExKTsKLWdsLnVuaWZvcm0yZihmdmFs
MkxvYywgMTIsIDEzKTsKLWdsLnVuaWZvcm0zZihmdmFsM0xvYywgMTQsIDE1LCAxNik7Ci1nbC51
bmlmb3JtNGYoZnZhbDRMb2MsIDE3LCAxOCwgMTksIDIwKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwg
ZnZhbExvYyknLCAnMTEnKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwg
ZnZhbDJMb2MpJywgJ1sxMiwgMTNdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFBy
b2dyYW0sIGZ2YWwzTG9jKScsICdbMTQsIDE1LCAxNl0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlm
b3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDRMb2MpJywgJ1sxNywgMTgsIDE5LCAyMF0nKTsKLXd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1Zygi
VGVzdCBnZXRTaGFkZXJQYXJhbWV0ZXIiKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFt
ZXRlcihzdGFuZGFyZFZlcnQsIGdsLlNIQURFUl9UWVBFKScsICdnbC5WRVJURVhfU0hBREVSJyk7
CisgIHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBnbC5ERUxF
VEVfU1RBVFVTKScsICdmYWxzZScpOworICBzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVy
KHN0YW5kYXJkVmVydCwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsKKyAgYXdhaXQgdGVz
dEludmFsaWRBcmd1bWVudCgKKyAgICAgICJnZXRTaGFkZXJQYXJhbWV0ZXIiLAorICAgICAgInBh
cmFtZXRlciIsCisgICAgICBbIGdsLkRFTEVURV9TVEFUVVMsCisgICAgICAgIGdsLkNPTVBJTEVf
U1RBVFVTLAorICAgICAgICBnbC5TSEFERVJfVFlQRQorICAgICAgXSwKKyAgICAgIGZ1bmN0aW9u
KHBhcmFtZXRlcikgeworICAgICAgICByZXR1cm4gZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5k
YXJkVmVydCwgcGFyYW1ldGVyKTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOwogCi1kZWJ1ZygiU2FtcGxlciB1bmlmb3JtIHZhcmlhYmxlcyIp
OwotdmFyIHNhbXBsZXJQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8u
Li9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvc2Ft
cGxlclVuaWZvcm1TaGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0
ZXIoc2FtcGxlclByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci12YXIgczJEVmFs
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJQcm9ncmFtLCAiczJEIik7Ci12YXIg
c0N1YmVWYWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oc2FtcGxlclByb2dyYW0sICJzQ3Vi
ZSIpOwotZ2wudXNlUHJvZ3JhbShzYW1wbGVyUHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoczJEVmFs
TG9jLCAwKTsKLWdsLnVuaWZvcm0xaShzQ3ViZVZhbExvYywgMSk7Ci13dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyUHJv
Z3JhbSwgczJEVmFsTG9jKScsICcwJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVy
UHJvZ3JhbSwgc0N1YmVWYWxMb2MpJywgJzEnKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBnZXRUZXhQYXJhbWV0ZXIi
KTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNU
KTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxU
RVIsIGdsLk5FQVJFU1QpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgIHNob3Vs
ZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklM
VEVSKScsICdnbC5ORUFSRVNUJyk7CisgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7CisgIHNo
b3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRl
cihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCknLCAnZ2wuQ0xBTVBfVE9fRURHRScp
OworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX0JBU0VfTEVWRUwsIDApOworICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMsIGdsLkxFUVVBTCk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVfTU9E
RSwgZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BWF9MRVZFTCwgMTApOworICAgIGdsLnRleFBhcmFtZXRl
cmYoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAxMCk7CisgICAgZ2wudGV4UGFy
YW1ldGVyZihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9MT0QsIDApOworICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1IsIGdsLkNMQU1QX1RP
X0VER0UpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9CQVNFX0xFVkVMKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBh
cmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQyknLCAnZ2wuTEVR
VUFMJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX0NPTVBBUkVfTU9ERSknLCAnZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRScpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NQVhfTEVWRUwpJywgJzEwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BWF9MT0QpJywgJzEwJyk7CisgICAgc2hvdWxkQmUo
J2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9MT0QpJywg
JzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfV1JBUF9SKScsICdnbC5DTEFNUF9UT19FREdFJyk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0lNTVVUQUJMRV9GT1JN
QVQpJywgJ2ZhbHNlJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX0lNTVVUQUJMRV9MRVZFTFMpJywgJzAnKTsKKyAgfQorICBsZXQg
dmFsaWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSA9IFsKKyAgICAgIGdsLlRFWFRVUkVfTUFHX0ZJTFRF
UiwKKyAgICAgIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwKKyAgICAgIGdsLlRFWFRVUkVfV1JBUF9T
LAorICAgICAgZ2wuVEVYVFVSRV9XUkFQX1QsCisgIF07CisgIGlmIChjb250ZXh0VmVyc2lvbiA+
IDEpIHsKKyAgICB2YWxpZFBhcmFtZXRlcnNGb3JUZXh0dXJlID0gdmFsaWRQYXJhbWV0ZXJzRm9y
VGV4dHVyZS5jb25jYXQoWworICAgICAgICBnbC5URVhUVVJFX0JBU0VfTEVWRUwsCisgICAgICAg
IGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLAorICAgICAgICBnbC5URVhUVVJFX0NPTVBBUkVfTU9E
RSwKKyAgICAgICAgZ2wuVEVYVFVSRV9NQVhfTEVWRUwsCisgICAgICAgIGdsLlRFWFRVUkVfTUFY
X0xPRCwKKyAgICAgICAgZ2wuVEVYVFVSRV9NSU5fTE9ELAorICAgICAgICBnbC5URVhUVVJFX1dS
QVBfUiwKKyAgICAgICAgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFULAorICAgICAgICBnbC5U
RVhUVVJFX0lNTVVUQUJMRV9MRVZFTFMsCisgICAgXSk7CisgIH0KKyAgYXdhaXQgdGVzdEludmFs
aWRBcmd1bWVudCgKKyAgICAgICJnZXRUZXhQYXJhbWV0ZXIiLAorICAgICAgInBhcmFtZXRlciIs
CisgICAgICB2YWxpZFBhcmFtZXRlcnNGb3JUZXh0dXJlLAorICAgICAgZnVuY3Rpb24ocGFyYW1l
dGVyKSB7CisgICAgICAgIHJldHVybiBnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwg
cGFyYW1ldGVyKTsKKyAgICAgIH0KKyAgKTsKKyAgbGV0IHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUg
PSBbIGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfQ1VCRV9NQVBdOworICBpZiAoY29udGV4dFZl
cnNpb24gPiAxKSB7CisgICAgdmFsaWRUYXJnZXRzRm9yVGV4dHVyZSA9IHZhbGlkVGFyZ2V0c0Zv
clRleHR1cmUuY29uY2F0KFsgZ2wuVEVYVFVSRV8zRCwgZ2wuVEVYVFVSRV8yRF9BUlJBWV0pOwor
ICB9CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0VGV4UGFyYW1ldGVy
IiwKKyAgICAgICJ0YXJnZXQiLAorICAgICAgdmFsaWRUYXJnZXRzRm9yVGV4dHVyZSwKKyAgICAg
IGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICByZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKHRh
cmdldCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogCi1kZWJ1ZygiTWF0cml4IHVuaWZvcm0gdmFy
aWFibGVzIik7Ci12YXIgbWF0UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAi
Li4vLi4vcmVzb3VyY2VzL21hdFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMv
bm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0
ZXIobWF0UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBtdmFsMkxvYyA9
IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDIiKTsKLXZhciBtdmFsM0xv
YyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDMiKTsKLXZhciBtdmFs
NExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDQiKTsKLWdsLnVz
ZVByb2dyYW0obWF0UHJvZ3JhbSk7Ci1nbC51bmlmb3JtTWF0cml4MmZ2KG12YWwyTG9jLCBmYWxz
ZSwgWzEsIDIsIDMsIDRdKTsKLWdsLnVuaWZvcm1NYXRyaXgzZnYobXZhbDNMb2MsIGZhbHNlLCBb
NSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTNdKTsKLWdsLnVuaWZvcm1NYXRyaXg0ZnYobXZh
bDRMb2MsIGZhbHNlLCBbMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0
LCAyNSwgMjYsIDI3LCAyOCwgMjldKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWwyTG9jKScsICdb
MSwgMiwgMywgNF0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWwz
TG9jKScsICdbNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTNdJyk7Ci1zaG91bGRCZSgnZ2wu
Z2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsNExvYyknLCAnWzE0LCAxNSwgMTYsIDE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XScpOwotd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJUZXN0
IGdldFVuaWZvcm0gd2l0aCBhbGwgdmFyaWFudHMgb2YgZGF0YSB0eXBlcyIpOworICBkZWJ1Zygi
Qm9vbGVhbiB1bmlmb3JtIHZhcmlhYmxlcyIpOworICB3aW5kb3cuYm9vbFByb2dyYW0gPSB3dHUu
bG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9ib29sVW5pZm9ybVNoYWRl
ci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNo
b3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGJvb2xQcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknLCAndHJ1ZScpOworICB3aW5kb3cuYnZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihi
b29sUHJvZ3JhbSwgImJ2YWwiKTsKKyAgd2luZG93LmJ2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDIiKTsKKyAgd2luZG93LmJ2YWwzTG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDMiKTsKKyAgd2luZG93LmJ2YWw0TG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDQiKTsKKyAgZ2wudXNl
UHJvZ3JhbShib29sUHJvZ3JhbSk7CisgIGdsLnVuaWZvcm0xaShidmFsTG9jLCAxKTsKKyAgZ2wu
dW5pZm9ybTJpKGJ2YWwyTG9jLCAxLCAwKTsKKyAgZ2wudW5pZm9ybTNpKGJ2YWwzTG9jLCAxLCAw
LCAxKTsKKyAgZ2wudW5pZm9ybTRpKGJ2YWw0TG9jLCAxLCAwLCAxLCAwKTsKKyAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShi
b29sUHJvZ3JhbSwgYnZhbExvYyknLCAndHJ1ZScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9y
bShib29sUHJvZ3JhbSwgYnZhbDJMb2MpJywgJ1t0cnVlLCBmYWxzZV0nKTsKKyAgc2hvdWxkQmUo
J2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWwzTG9jKScsICdbdHJ1ZSwgZmFsc2UsIHRy
dWVdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsNExvYykn
LCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0nKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwogCi1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGRlYnVnKCJV
bnNpZ25lZCBJbnRlZ2VyIHVuaWZvcm0gdmFyaWFibGVzIik7Ci0gIHZhciB1aW50UHJvZ3JhbSA9
IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL3VpbnRVbmlmb3Jt
U2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLmZyYWci
KTsKLSAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodWludFByb2dyYW0sIGdsLkxJ
TktfU1RBVFVTKScsICd0cnVlJyk7Ci0gIHZhciB1dmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHVpbnRQcm9ncmFtLCAidXZhbCIpOwotICB2YXIgdXZhbDJMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsMiIpOwotICB2YXIgdXZhbDNMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsMyIpOwotICB2YXIgdXZhbDRMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsNCIpOwotICBnbC51c2VQcm9n
cmFtKHVpbnRQcm9ncmFtKTsKLSAgZ2wudW5pZm9ybTF1aSh1dmFsTG9jLCAxKTsKLSAgZ2wudW5p
Zm9ybTJ1aSh1dmFsMkxvYywgMiwgMyk7Ci0gIGdsLnVuaWZvcm0zdWkodXZhbDNMb2MsIDQsIDUs
IDYpOwotICBnbC51bmlmb3JtNHVpKHV2YWw0TG9jLCA3LCA4LCA5LCAxMCk7CisgIGRlYnVnKCJJ
bnRlZ2VyIHVuaWZvcm0gdmFyaWFibGVzIik7CisgIHdpbmRvdy5pbnRQcm9ncmFtID0gd3R1Lmxv
YWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvaW50VW5pZm9ybVNoYWRlci52
ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNob3Vs
ZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGludFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScs
ICd0cnVlJyk7CisgIHdpbmRvdy5pdmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGludFBy
b2dyYW0sICJpdmFsIik7CisgIHdpbmRvdy5pdmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihpbnRQcm9ncmFtLCAiaXZhbDIiKTsKKyAgd2luZG93Lml2YWwzTG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKGludFByb2dyYW0sICJpdmFsMyIpOworICB3aW5kb3cuaXZhbDRMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWw0Iik7CisgIGdsLnVzZVByb2dyYW0o
aW50UHJvZ3JhbSk7CisgIGdsLnVuaWZvcm0xaShpdmFsTG9jLCAxKTsKKyAgZ2wudW5pZm9ybTJp
KGl2YWwyTG9jLCAyLCAzKTsKKyAgZ2wudW5pZm9ybTNpKGl2YWwzTG9jLCA0LCA1LCA2KTsKKyAg
Z2wudW5pZm9ybTRpKGl2YWw0TG9jLCA3LCA4LCA5LCAxMCk7CiAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dy
YW0sIHV2YWxMb2MpJywgJzEnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dy
YW0sIHV2YWwyTG9jKScsICdbMiwgM10nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWlu
dFByb2dyYW0sIHV2YWwzTG9jKScsICdbNCwgNSwgNl0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0odWludFByb2dyYW0sIHV2YWw0TG9jKScsICdbNywgOCwgOSwgMTBdJyk7CisgIHNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWxMb2MpJywgJzEnKTsKKyAgc2hvdWxk
QmUoJ2dsLmdldFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZhbDJMb2MpJywgJ1syLCAzXScpOworICBz
aG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsM0xvYyknLCAnWzQsIDUsIDZd
Jyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWw0TG9jKScsICdb
NywgOCwgOSwgMTBdJyk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
IAotICBkZWJ1ZygiTWF0cml4IHVuaWZvcm0gdmFyaWFibGVzIGZvciBXZWJHTCAyIik7CisgIGRl
YnVnKCJGbG9hdCB1bmlmb3JtIHZhcmlhYmxlcyIpOworICB3aW5kb3cuZmxvYXRQcm9ncmFtID0g
d3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvZmxvYXRVbmlmb3Jt
U2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsK
KyAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoZmxvYXRQcm9ncmFtLCBnbC5MSU5L
X1NUQVRVUyknLCAndHJ1ZScpOworICB3aW5kb3cuZnZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihmbG9hdFByb2dyYW0sICJmdmFsIik7CisgIHdpbmRvdy5mdmFsMkxvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsMiIpOworICB3aW5kb3cuZnZhbDNMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbDMiKTsKKyAgd2luZG93
LmZ2YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWw0Iik7
CisgIGdsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKTsKKyAgZ2wudW5pZm9ybTFmKGZ2YWxMb2Ms
IDExKTsKKyAgZ2wudW5pZm9ybTJmKGZ2YWwyTG9jLCAxMiwgMTMpOworICBnbC51bmlmb3JtM2Yo
ZnZhbDNMb2MsIDE0LCAxNSwgMTYpOworICBnbC51bmlmb3JtNGYoZnZhbDRMb2MsIDE3LCAxOCwg
MTksIDIwKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWxMb2MpJywgJzExJyk7CisgIHNo
b3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDJMb2MpJywgJ1sxMiwgMTNd
Jyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDNMb2MpJywg
J1sxNCwgMTUsIDE2XScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0s
IGZ2YWw0TG9jKScsICdbMTcsIDE4LCAxOSwgMjBdJyk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKIAotICB2YXIgbWF0Rm9yV2ViR0wyUHJvZ3JhbSA9IHd0dS5sb2Fk
UHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL21hdEZvcldlYkdMMlVuaWZvcm1T
aGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXJFUzMuZnJhZyIp
OwotICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihtYXRGb3JXZWJHTDJQcm9ncmFt
LCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotICB2YXIgbXZhbDJ4M0xvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDJ4MyIpOwotICB2YXIgbXZh
bDJ4NExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZh
bDJ4NCIpOwotICB2YXIgbXZhbDN4MkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JX
ZWJHTDJQcm9ncmFtLCAibXZhbDN4MiIpOwotICB2YXIgbXZhbDN4NExvYyA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDN4NCIpOwotICB2YXIgbXZhbDR4
MkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDR4
MiIpOwotICB2YXIgbXZhbDR4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJH
TDJQcm9ncmFtLCAibXZhbDR4MyIpOwotICBnbC51c2VQcm9ncmFtKG1hdEZvcldlYkdMMlByb2dy
YW0pOwotICBnbC51bmlmb3JtTWF0cml4MngzZnYobXZhbDJ4M0xvYywgZmFsc2UsIFsxLCAyLCAz
LCA0LCA1LCA2XSk7Ci0gIGdsLnVuaWZvcm1NYXRyaXgyeDRmdihtdmFsMng0TG9jLCBmYWxzZSwg
WzcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0pOwotICBnbC51bmlmb3JtTWF0cml4M3gyZnYo
bXZhbDN4MkxvYywgZmFsc2UsIFsxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSk7Ci0gIGdsLnVuaWZv
cm1NYXRyaXgzeDRmdihtdmFsM3g0TG9jLCBmYWxzZSwgWzIxLCAyMiwgMjMsIDI0LCAyNSwgMjYs
IDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdKTsKLSAgZ2wudW5pZm9ybU1hdHJpeDR4MmZ2KG12YWw0
eDJMb2MsIGZhbHNlLCBbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSk7Ci0gIGdsLnVu
aWZvcm1NYXRyaXg0eDNmdihtdmFsNHgzTG9jLCBmYWxzZSwgWzQxLCA0MiwgNDMsIDQ0LCA0NSwg
NDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTJdKTsKKyAgZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2
YXJpYWJsZXMiKTsKKyAgd2luZG93LnNhbXBsZXJQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJv
bUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8u
Li9yZXNvdXJjZXMvc2FtcGxlclVuaWZvcm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihzYW1wbGVyUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3Ry
dWUnKTsKKyAgd2luZG93LnMyRFZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVy
UHJvZ3JhbSwgInMyRCIpOworICB3aW5kb3cuc0N1YmVWYWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24oc2FtcGxlclByb2dyYW0sICJzQ3ViZSIpOworICBnbC51c2VQcm9ncmFtKHNhbXBsZXJQ
cm9ncmFtKTsKKyAgZ2wudW5pZm9ybTFpKHMyRFZhbExvYywgMCk7CisgIGdsLnVuaWZvcm0xaShz
Q3ViZVZhbExvYywgMSk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDJ4M0xv
YyknLCAnWzEsIDIsIDMsIDQsIDUsIDZdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1h
dEZvcldlYkdMMlByb2dyYW0sIG12YWwyeDRMb2MpJywgJ1s3LCA4LCA5LCAxMCwgMTEsIDEyLCAx
MywgMTRdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0s
IG12YWwzeDJMb2MpJywgJ1sxNSwgMTYsIDE3LCAxOCwgMTksIDIwXScpOwotICBzaG91bGRCZSgn
Z2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3g0TG9jKScsICdbMjEsIDIy
LCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl0nKTsKLSAgc2hvdWxkQmUo
J2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDR4MkxvYyknLCAnWzMzLCAz
NCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0o
bWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDR4M0xvYyknLCAnWzQxLCA0MiwgNDMsIDQ0LCA0NSwg
NDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTJdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3Jt
KHNhbXBsZXJQcm9ncmFtLCBzMkRWYWxMb2MpJywgJzAnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0oc2FtcGxlclByb2dyYW0sIHNDdWJlVmFsTG9jKScsICcxJyk7CiAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotICBkZWJ1ZygiU2FtcGxlciB1bmlmb3JtIHZh
cmlhYmxlcyBmb3IgV2ViR0wyIik7Ci0gIHZhciBzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSA9IHd0
dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hh
ZGVyRVMzLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXJGb3JXZWJHTDJVbmlmb3JtU2hh
ZGVyLmZyYWciKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc2FtcGxlckZv
cldlYkdMMlByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci0gIHZhciBzM0RWYWxM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oc2FtcGxlckZvcldlYkdMMlByb2dyYW0sICJzM0Qi
KTsKLSAgdmFyIHMyREFycmF5VmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJG
b3JXZWJHTDJQcm9ncmFtLCAiczJEQXJyYXkiKTsKLSAgZ2wudXNlUHJvZ3JhbShzYW1wbGVyRm9y
V2ViR0wyUHJvZ3JhbSk7Ci0gIGdsLnVuaWZvcm0xaShzM0RWYWxMb2MsIDApOwotICBnbC51bmlm
b3JtMWkoczJEQXJyYXlWYWxMb2MsIDEpOworICBkZWJ1ZygiTWF0cml4IHVuaWZvcm0gdmFyaWFi
bGVzIik7CisgIHdpbmRvdy5tYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2ws
ICIuLi8uLi9yZXNvdXJjZXMvbWF0VW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNl
cy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKG1hdFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7CisgIHdpbmRvdy5t
dmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDIiKTsKKyAg
d2luZG93Lm12YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFs
MyIpOworICB3aW5kb3cubXZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3Jh
bSwgIm12YWw0Iik7CisgIGdsLnVzZVByb2dyYW0obWF0UHJvZ3JhbSk7CisgIGdsLnVuaWZvcm1N
YXRyaXgyZnYobXZhbDJMb2MsIGZhbHNlLCBbMSwgMiwgMywgNF0pOworICBnbC51bmlmb3JtTWF0
cml4M2Z2KG12YWwzTG9jLCBmYWxzZSwgWzUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXSk7
CisgIGdsLnVuaWZvcm1NYXRyaXg0ZnYobXZhbDRMb2MsIGZhbHNlLCBbMTQsIDE1LCAxNiwgMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjldKTsKICAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICBzaG91bGRCZSgnZ2wuZ2V0VW5p
Zm9ybShzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgczNEVmFsTG9jKScsICcwJyk7Ci0gIHNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtLCBzMkRBcnJheVZhbExv
YyknLCAnMScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsMkxv
YyknLCAnWzEsIDIsIDMsIDRdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dy
YW0sIG12YWwzTG9jKScsICdbNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTNdJyk7CisgIHNo
b3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWw0TG9jKScsICdbMTQsIDE1LCAx
NiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjldJyk7
CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KIAotZGVidWcoIiIp
OwotZGVidWcoInRlc3QgZ2V0VmVydGV4QXR0cmliIik7Ci12YXIgYXJyYXkgPSBuZXcgRmxvYXQz
MkFycmF5KFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1
LCAxNl0pOwotdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotZ2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcik7Ci1nbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwg
YXJyYXksIGdsLkRZTkFNSUNfRFJBVyk7Ci0vLyBWZXJ0ZXggYXR0cmlidXRlIDAgaXMgc3BlY2lh
bCBpbiB0aGF0IGl0IGhhcyBubyBjdXJyZW50IHN0YXRlLCBzbwotLy8gZmV0Y2hpbmcgR0xfQ1VS
UkVOVF9WRVJURVhfQVRUUklCIGdlbmVyYXRlcyBhbiBlcnJvci4gVXNlIGF0dHJpYnV0ZQotLy8g
MSBmb3IgdGhlc2UgdGVzdHMgaW5zdGVhZC4KLWdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEp
OwotZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwot
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HKScsICdidWZmZXInKTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIo
MSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKScsICd0cnVlJyk7Ci1zaG91bGRCZSgn
Z2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSknLCAnNCcp
OwotLy8gU3RyaWRlIE1VU1QgYmUgdGhlIHZhbHVlIHRoZSB1c2VyIHB1dCBpbi4KLXNob3VsZEJl
KCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpJywg
JzAnKTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9UWVBFKScsICdnbC5GTE9BVCcpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQpJywgJ2ZhbHNlJyk7Ci1pZiAoY29u
dGV4dFZlcnNpb24gPiAxKSB7Ci0gIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SKScsICcwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRW
ZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSKScsICdmYWxzZScp
OwotICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDEsIDIpOwotICBzaG91bGRCZSgnZ2wuZ2V0VmVy
dGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUiknLCAnMicpOwotfQot
Z2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDM2LCAxMik7Ci1z
aG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RS
SURFKScsICczNicpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYk9mZnNldCgxLCBnbC5W
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIpJywgJzEyJyk7Ci1nbC5kaXNhYmxlVmVydGV4QXR0
cmliQXJyYXkoMSk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfRU5BQkxFRCknLCAnZmFsc2UnKTsKLWdsLnZlcnRleEF0dHJpYjRmKDEsIDUs
IDYsIDcsIDgpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5DVVJSRU5UX1ZF
UlRFWF9BVFRSSUIpJywgJ1s1LCA2LCA3LCA4XScpOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkg
ewotICB2YXIgaW50QXJyYXkgPSBuZXcgSW50MzJBcnJheShbMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdKTsKLSAgZ2wuYnVmZmVyRGF0YShnbC5B
UlJBWV9CVUZGRVIsIGludEFycmF5LCBnbC5EWU5BTUlDX0RSQVcpOwotICBnbC5lbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheSgxKTsKLSAgLy8gZmVlZCBmaXhlZC1wb2ludCBkYXRhIHRvIGJ1ZmZlcgot
ICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigxLCA0LCBnbC5JTlQsIGZhbHNlLCAwLCAwKTsKLSAg
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1RZ
UEUpJywgJ2dsLklOVCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZF
UlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUiknLCAndHJ1ZScpOwotfQotd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotdmFyIHZhbGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIgPSBu
ZXcgQXJyYXkoCi0gICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORywKLSAg
ICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQsCi0gICAgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9TSVpFLAotICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFLAotICAgIGdsLlZF
UlRFWF9BVFRSSUJfQVJSQVlfVFlQRSwKLSAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX05PUk1B
TElaRUQsCi0gICAgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCCi0pOwotaWYgKGNvbnRleHRWZXJz
aW9uID4gMSkgewotICB2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliW3ZhbGlkQXJyYXlGb3JWZXJ0
ZXhBdHRyaWIubGVuZ3RoXSA9IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUjsKLSAgdmFs
aWRBcnJheUZvclZlcnRleEF0dHJpYlt2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0aF0g
PSBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0lOVEVHRVI7Ci19Ci10ZXN0SW52YWxpZEFyZ3VtZW50
KAotICAgICJnZXRWZXJ0ZXhBdHRyaWIiLAotICAgICJwYXJhbWV0ZXIiLAotICAgIHZhbGlkQXJy
YXlGb3JWZXJ0ZXhBdHRyaWIsCi0gICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7Ci0gICAgICByZXR1
cm4gZ2wuZ2V0VmVydGV4QXR0cmliKDEsIHBhcmFtZXRlcik7Ci0gICAgfQotKTsKLXZhciBudW1W
ZXJ0ZXhBdHRyaWJzID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WRVJURVhfQVRUUklCUyk7Ci13
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAnZ2wuZ2V0VmVy
dGV4QXR0cmliKCcgKyBudW1WZXJ0ZXhBdHRyaWJzICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRU
UklCKScpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgZGVidWcoIlVuc2lnbmVk
IEludGVnZXIgdW5pZm9ybSB2YXJpYWJsZXMiKTsKKyAgICB3aW5kb3cudWludFByb2dyYW0gPSB3
dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy91aW50VW5pZm9ybVNo
YWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy5mcmFnIik7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodWludFByb2dyYW0sIGdsLkxJ
TktfU1RBVFVTKScsICd0cnVlJyk7CisgICAgd2luZG93LnV2YWxMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsIik7CisgICAgd2luZG93LnV2YWwyTG9jID0gZ2wu
Z2V0VW5pZm9ybUxvY2F0aW9uKHVpbnRQcm9ncmFtLCAidXZhbDIiKTsKKyAgICB3aW5kb3cudXZh
bDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsMyIpOworICAg
IHdpbmRvdy51dmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbih1aW50UHJvZ3JhbSwgInV2
YWw0Iik7CisgICAgZ2wudXNlUHJvZ3JhbSh1aW50UHJvZ3JhbSk7CisgICAgZ2wudW5pZm9ybTF1
aSh1dmFsTG9jLCAxKTsKKyAgICBnbC51bmlmb3JtMnVpKHV2YWwyTG9jLCAyLCAzKTsKKyAgICBn
bC51bmlmb3JtM3VpKHV2YWwzTG9jLCA0LCA1LCA2KTsKKyAgICBnbC51bmlmb3JtNHVpKHV2YWw0
TG9jLCA3LCA4LCA5LCAxMCk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsTG9jKScs
ICcxJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2YWwyTG9j
KScsICdbMiwgM10nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSh1aW50UHJvZ3JhbSwg
dXZhbDNMb2MpJywgJ1s0LCA1LCA2XScpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVp
bnRQcm9ncmFtLCB1dmFsNExvYyknLCAnWzcsIDgsIDksIDEwXScpOworICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgY2Fz
ZXMgd2hlcmUgbmFtZSA9PSAwIik7Ci1nbC5kZWxldGVUZXh0dXJlKHRleHR1cmUpOwotc2hvdWxk
QmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZ
UEUpJywgJ2dsLk5PTkUnKTsKLWdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyZW5kZXJidWZmZXIpOwot
Z2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7Ci13dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTik7Ci1zaG91bGRCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBU
SF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdn
bC5OT05FJyk7Ci1nbC5kZWxldGVCdWZmZXIoYnVmZmVyKTsKLXNob3VsZEJlTnVsbCgnZ2wuZ2V0
VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpJyk7
Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgZGVidWcoIk1hdHJp
eCB1bmlmb3JtIHZhcmlhYmxlcyBmb3IgV2ViR0wgMiIpOworICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciIpCisg
ICAgd2luZG93Lm1hdEZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShn
bCwgIi4uLy4uL3Jlc291cmNlcy9tYXRGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4v
Li4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLmZyYWciKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihtYXRGb3JXZWJHTDJQcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknLCAndHJ1ZScpOworICAgIHdpbmRvdy5tdmFsMngzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsMngzIik7CisgICAgd2luZG93Lm12YWwyeDRM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwyeDQi
KTsKKyAgICB3aW5kb3cubXZhbDN4MkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JX
ZWJHTDJQcm9ncmFtLCAibXZhbDN4MiIpOworICAgIHdpbmRvdy5tdmFsM3g0TG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsM3g0Iik7CisgICAgd2lu
ZG93Lm12YWw0eDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3Jh
bSwgIm12YWw0eDIiKTsKKyAgICB3aW5kb3cubXZhbDR4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDR4MyIpOworICAgIGdsLnVzZVByb2dyYW0o
bWF0Rm9yV2ViR0wyUHJvZ3JhbSk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDJ4M2Z2KG12YWwyeDNM
b2MsIGZhbHNlLCBbMSwgMiwgMywgNCwgNSwgNl0pOworICAgIGdsLnVuaWZvcm1NYXRyaXgyeDRm
dihtdmFsMng0TG9jLCBmYWxzZSwgWzcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0pOworICAg
IGdsLnVuaWZvcm1NYXRyaXgzeDJmdihtdmFsM3gyTG9jLCBmYWxzZSwgWzE1LCAxNiwgMTcsIDE4
LCAxOSwgMjBdKTsKKyAgICBnbC51bmlmb3JtTWF0cml4M3g0ZnYobXZhbDN4NExvYywgZmFsc2Us
IFsyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXSk7CisgICAg
Z2wudW5pZm9ybU1hdHJpeDR4MmZ2KG12YWw0eDJMb2MsIGZhbHNlLCBbMzMsIDM0LCAzNSwgMzYs
IDM3LCAzOCwgMzksIDQwXSk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDR4M2Z2KG12YWw0eDNMb2Ms
IGZhbHNlLCBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLCA1Ml0p
OworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsMngzTG9jKScsICdbMSwg
MiwgMywgNCwgNSwgNl0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJH
TDJQcm9ncmFtLCBtdmFsMng0TG9jKScsICdbNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XScp
OworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWwz
eDJMb2MpJywgJ1sxNSwgMTYsIDE3LCAxOCwgMTksIDIwXScpOworICAgIHNob3VsZEJlKCdnbC5n
ZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWwzeDRMb2MpJywgJ1syMSwgMjIsIDIz
LCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXScpOworICAgIHNob3VsZEJlKCdn
bC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWw0eDJMb2MpJywgJ1szMywgMzQs
IDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0o
bWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDR4M0xvYyknLCAnWzQxLCA0MiwgNDMsIDQ0LCA0NSwg
NDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTJdJyk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwogCi0gICAgc2hvdWxkQmVOb25OdWxsKCdnbC5nZXRJbnRlcm5hbGZv
cm1hdFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlIzMkksIGdsLlNBTVBMRVMpJyk7Cisg
ICAgZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMgZm9yIFdlYkdMMiIpOworICAgIHdp
bmRvdy5zYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGds
LCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLnZlcnQiLCAiLi4vLi4vcmVz
b3VyY2VzL3NhbXBsZXJGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLmZyYWciKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgZ2wuTElO
S19TVEFUVVMpJywgJ3RydWUnKTsKKyAgICB3aW5kb3cuczNEVmFsTG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtLCAiczNEIik7CisgICAgd2luZG93LnMy
REFycmF5VmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJGb3JXZWJHTDJQcm9n
cmFtLCAiczJEQXJyYXkiKTsKKyAgICBnbC51c2VQcm9ncmFtKHNhbXBsZXJGb3JXZWJHTDJQcm9n
cmFtKTsKKyAgICBnbC51bmlmb3JtMWkoczNEVmFsTG9jLCAwKTsKKyAgICBnbC51bmlmb3JtMWko
czJEQXJyYXlWYWxMb2MsIDEpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyRm9yV2ViR0wyUHJvZ3Jh
bSwgczNEVmFsTG9jKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxl
ckZvcldlYkdMMlByb2dyYW0sIHMyREFycmF5VmFsTG9jKScsICcxJyk7CisgICAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICB9CiAKLSAgICB0ZXN0SW52YWxpZEFyZ3Vt
ZW50KAotICAgICAgICAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiLAotICAgICAgICAidGFy
Z2V0IiwKLSAgICAgICAgWyBnbC5SRU5ERVJCVUZGRVIgXSwKLSAgICAgICAgZnVuY3Rpb24odGFy
Z2V0KSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIo
dGFyZ2V0LCBnbC5SMzJJLCBnbC5TQU1QTEVTKTsKLSAgICB9KTsKKyAgZGVidWcoIiIpOworICBk
ZWJ1ZygidGVzdCBnZXRWZXJ0ZXhBdHRyaWIiKTsKKyAgbGV0IGFycmF5ID0gbmV3IEZsb2F0MzJB
cnJheShbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg
MTZdKTsKKyAgd2luZG93LmJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVm
ZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIGFycmF5LCBnbC5EWU5BTUlDX0RSQVcpOworICAvLyBWZXJ0ZXggYXR0cmlidXRlIDAg
aXMgc3BlY2lhbCBpbiB0aGF0IGl0IGhhcyBubyBjdXJyZW50IHN0YXRlLCBzbworICAvLyBmZXRj
aGluZyBHTF9DVVJSRU5UX1ZFUlRFWF9BVFRSSUIgZ2VuZXJhdGVzIGFuIGVycm9yLiBVc2UgYXR0
cmlidXRlCisgIC8vIDEgZm9yIHRoZXNlIHRlc3RzIGluc3RlYWQuCisgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KDEpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyknLCAnYnVmZmVyJyk7CisgIHNob3VsZEJl
KCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKScs
ICd0cnVlJyk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9TSVpFKScsICc0Jyk7CisgIC8vIFN0cmlkZSBNVVNUIGJlIHRoZSB2YWx1ZSB0
aGUgdXNlciBwdXQgaW4uCisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpJywgJzAnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFZlcnRl
eEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1RZUEUpJywgJ2dsLkZMT0FUJyk7Cisg
IHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9O
T1JNQUxJWkVEKScsICdmYWxzZScpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAg
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1IpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZF
UlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUiknLCAnZmFsc2UnKTsKKyAgICBnbC52ZXJ0ZXhBdHRy
aWJEaXZpc29yKDEsIDIpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SKScsICcyJyk7CisgIH0KKyAgZ2wudmVydGV4QXR0
cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDM2LCAxMik7CisgIHNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpJywgJzM2
Jyk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoMSwgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9QT0lOVEVSKScsICcxMicpOworICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJy
YXkoMSk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9FTkFCTEVEKScsICdmYWxzZScpOworICBnbC52ZXJ0ZXhBdHRyaWI0ZigxLCA1LCA2
LCA3LCA4KTsKKyAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5DVVJSRU5UX1ZF
UlRFWF9BVFRSSUIpJywgJ1s1LCA2LCA3LCA4XScpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAx
KSB7CisgICAgbGV0IGludEFycmF5ID0gbmV3IEludDMyQXJyYXkoWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSk7CisgICAgZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIGludEFycmF5LCBnbC5EWU5BTUlDX0RSQVcpOworICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOworICAgIC8vIGZlZWQgZml4ZWQtcG9pbnQgZGF0YSB0
byBidWZmZXIKKyAgICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigxLCA0LCBnbC5JTlQsIGZhbHNl
LCAwLCAwKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfVFlQRSknLCAnZ2wuSU5UJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRl
eEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0lOVEVHRVIpJywgJ3RydWUnKTsKKyAg
fQorICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIGxldCB2YWxpZEFy
cmF5Rm9yVmVydGV4QXR0cmliID0gbmV3IEFycmF5KAorICAgICAgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9CVUZGRVJfQklORElORywKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxF
RCwKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSwKKyAgICAgIGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfU1RSSURFLAorICAgICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFLAor
ICAgICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVELAorICAgICAgZ2wuQ1VSUkVO
VF9WRVJURVhfQVRUUklCCisgICk7CisgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2
YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliW3ZhbGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIubGVuZ3Ro
XSA9IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUjsKKyAgICB2YWxpZEFycmF5Rm9yVmVy
dGV4QXR0cmliW3ZhbGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIubGVuZ3RoXSA9IGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfSU5URUdFUjsKKyAgfQorICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAor
ICAgICAgImdldFZlcnRleEF0dHJpYiIsCisgICAgICAicGFyYW1ldGVyIiwKKyAgICAgIHZhbGlk
QXJyYXlGb3JWZXJ0ZXhBdHRyaWIsCisgICAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKKyAgICAg
ICAgcmV0dXJuIGdsLmdldFZlcnRleEF0dHJpYigxLCBwYXJhbWV0ZXIpOworICAgICAgfQorICAp
OworICBsZXQgbnVtVmVydGV4QXR0cmlicyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVkVSVEVY
X0FUVFJJQlMpOworICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZB
TFVFLCAnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBudW1WZXJ0ZXhBdHRyaWJzICsgJywgZ2wuQ1VS
UkVOVF9WRVJURVhfQVRUUklCKScpOwogCi0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAg
ICAgImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAg
ICAgWyBnbC5TQU1QTEVTIF0sCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SR0JBNCwgcG5hbWUpOwotICAgIH0pOworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJUZXN0IGNh
c2VzIHdoZXJlIG5hbWUgPT0gMCIpOworICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGZyYW1lYnVmZmVyKTsKIAotICAgIHZhciB2YWxpZEFycmF5Rm9ySW50ZXJmb3JtYXQgPSBu
ZXcgQXJyYXkoCi0gICAgICAgIGdsLlI4LCBnbC5SOF9TTk9STSwgZ2wuUkc4LCBnbC5SRzhfU05P
Uk0sCi0gICAgICAgIGdsLlJHQjgsIGdsLlJHQjhfU05PUk0sIGdsLlJHQjU2NSwgZ2wuUkdCQTQs
Ci0gICAgICAgIGdsLlJHQjVfQTEsIGdsLlJHQkE4LCBnbC5SR0JBOF9TTk9STSwgZ2wuUkdCMTBf
QTIsCi0gICAgICAgIGdsLlJHQjEwX0EyVUksIGdsLlNSR0I4LCBnbC5TUkdCOF9BTFBIQTgsIGds
LlIxNkYsCi0gICAgICAgIGdsLlJHMTZGLCBnbC5SR0IxNkYsIGdsLlJHQkExNkYsIGdsLlIzMkYs
Ci0gICAgICAgIGdsLlJHMzJGLCBnbC5SR0IzMkYsIGdsLlJHQkEzMkYsIGdsLlIxMUZfRzExRl9C
MTBGLAotICAgICAgICBnbC5SR0I5X0U1LCBnbC5SOEksIGdsLlI4VUksIGdsLlIxNkksCi0gICAg
ICAgIGdsLlIxNlVJLCBnbC5SMzJJLCBnbC5SMzJVSSwgZ2wuUkc4SSwKLSAgICAgICAgZ2wuUkc4
VUksIGdsLlJHMTZJLCBnbC5SRzE2VUksIGdsLlJHMzJJLAotICAgICAgICBnbC5SRzMyVUksIGds
LlJHQjhJLCBnbC5SR0I4VUksIGdsLlJHQjE2SSwKLSAgICAgICAgZ2wuUkdCMTZVSSwgZ2wuUkdC
MzJJLCBnbC5SR0IzMlVJLCBnbC5SR0JBOEksCi0gICAgICAgIGdsLlJHQkE4VUksIGdsLlJHQkEx
NkksIGdsLlJHQkExNlVJLCBnbC5SR0JBMzJJLAotICAgICAgICBnbC5SR0JBMzJVSSwgZ2wuUkdC
LCBnbC5SR0JBLCBnbC5ERVBUSF9TVEVOQ0lMLCBnbC5ERVBUSF9DT01QT05FTlQxNiwKLSAgICAg
ICAgZ2wuREVQVEhfQ09NUE9ORU5UMjQsIGdsLkRFUFRIX0NPTVBPTkVOVDMyRiwgZ2wuREVQVEgy
NF9TVEVOQ0lMOCwKLSAgICAgICAgZ2wuREVQVEgzMkZfU1RFTkNJTDgsIGdsLlNURU5DSUxfSU5E
RVg4Ci0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgICAiZ2V0SW50ZXJu
YWxmb3JtYXRQYXJhbWV0ZXIiLAotICAgICAgICAiaW50ZXJuYWxmb3JtYXQiLAotICAgICAgICB2
YWxpZEFycmF5Rm9ySW50ZXJmb3JtYXQsCi0gICAgICAgIGZ1bmN0aW9uKGludGVybmFsZm9ybWF0
KSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBpbnRlcm5hbGZvcm1hdCwgZ2wuU0FNUExFUyk7Ci0gICAgfSk7CisgIHNo
b3VsZE5vdEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgIGdsLmRlbGV0ZVRleHR1cmUodGV4dHVyZSk7Cisg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKIAorICBzaG91bGROb3RCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgIGdsLmRlbGV0ZVJlbmRl
cmJ1ZmZlcihyZW5kZXJidWZmZXIpOworICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBk
ZWJ1ZygiVGVzdCBnZXRJbmRleGVkUGFyYW1ldGVyIik7Ci0gICAgdmFyIGJ1ZmZlciA9IGdsLmNy
ZWF0ZUJ1ZmZlcigpOwotICAgIGdsLmJpbmRCdWZmZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUiwgYnVmZmVyKTsKLSAgICBnbC5idWZmZXJEYXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOwotICAgIGdsLmJpbmRCdWZmZXJSYW5nZShnbC5U
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCAwLCBidWZmZXIsIDQsIDgpOwotICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklO
RElORywgMCknLCAnYnVmZmVyJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0
ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFLCAwKScsICc4Jyk7Ci0gICAgc2hv
dWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9TVEFSVCwgMCknLCAnNCcpOwotICAgIHZhciBidWZmZXIxID0gZ2wuY3JlYXRlQnVmZmVyKCk7
Ci0gICAgZ2wuYmluZEJ1ZmZlcihnbC5VTklGT1JNX0JVRkZFUiwgYnVmZmVyMSk7Ci0gICAgZ2wu
YnVmZmVyRGF0YShnbC5VTklGT1JNX0JVRkZFUiwgNjQsIGdsLkRZTkFNSUNfRFJBVyk7Ci0gICAg
dmFyIG9mZnNldFVuaWZvcm0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfT0ZG
U0VUX0FMSUdOTUVOVCk7Ci0gICAgZ2wuYmluZEJ1ZmZlclJhbmdlKGdsLlVOSUZPUk1fQlVGRkVS
LCAxLCBidWZmZXIxLCBvZmZzZXRVbmlmb3JtLCA4KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihnbC5VTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKScsICdidWZmZXIxJyk7
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJf
U0laRSwgMSknLCAnOCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGds
LlVOSUZPUk1fQlVGRkVSX1NUQVJULCAxKScsICdvZmZzZXRVbmlmb3JtJyk7CisgIGdsLmRlbGV0
ZUJ1ZmZlcihidWZmZXIpOworICBzaG91bGRCZU51bGwoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBn
bC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKScpOworICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLSAgICBnbC5iaW5kQnVmZmVyQmFzZShnbC5VTklG
T1JNX0JVRkZFUiwgMSwgbnVsbCk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0
ZXIoZ2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAnbnVsbCcpOworICBpZiAoY29udGV4
dFZlcnNpb24gPiAxKSB7CisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRJ
bnRlcm5hbGZvcm1hdFBhcmFtZXRlciIpCiAKLSAgICB2YXIgdmFsaWRBcnJheUZvclRhcmdldCA9
IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5H
LAotICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUsCi0gICAgICAgIGds
LlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQsCi0gICAgICAgIGdsLlVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsCi0gICAgICAgIGdsLlVOSUZPUk1fQlVGRkVSX1NJWkUsCi0gICAgICAgIGds
LlVOSUZPUk1fQlVGRkVSX1NUQVJUCi0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAot
ICAgICAgICAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsCi0gICAgICAgICJ0YXJnZXQiLAotICAgICAg
ICB2YWxpZEFycmF5Rm9yVGFyZ2V0LAotICAgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAg
ICAgICAgIHJldHVybiBnbC5nZXRJbmRleGVkUGFyYW1ldGVyKHRhcmdldCwgMCk7Ci0gICAgfSk7
CisgICAgICBzaG91bGRCZU5vbk51bGwoJ2dsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUjMySSwgZ2wuU0FNUExFUyknKTsKKyAgICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygi
VGVzdCBnZXRTYW1wbGVyUGFyYW1ldGVyIik7Ci0gICAgdmFyIHNhbXBsZXIgPSBnbC5jcmVhdGVT
YW1wbGVyKCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9D
T01QQVJFX0ZVTkMsIGdsLkxFUVVBTCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxl
ciwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUsIGdsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUpOwot
ICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwg
Z2wuTkVBUkVTVCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmYoc2FtcGxlciwgZ2wuVEVYVFVS
RV9NQVhfTE9ELCAxMCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVY
VFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC5zYW1wbGVyUGFyYW1ldGVyZihz
YW1wbGVyLCBnbC5URVhUVVJFX01JTl9MT0QsIDApOwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJp
KHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9SLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC5z
YW1wbGVyUGFyYW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9f
RURHRSk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQ
X1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1l
dGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DKScsICdnbC5MRVFVQUwnKTsKLSAg
ICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX0NP
TVBBUkVfTU9ERSknLCAnZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRScpOwotICAgIHNob3VsZEJl
KCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUikn
LCAnZ2wuTkVBUkVTVCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNh
bXBsZXIsIGdsLlRFWFRVUkVfTUFYX0xPRCknLCAnMTAnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0
U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01JTl9GSUxURVIpJywgJ2dsLk5F
QVJFU1QnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBn
bC5URVhUVVJFX01JTl9MT0QpJywgJzAnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBh
cmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX1dSQVBfUiknLCAnZ2wuQ0xBTVBfVE9fRURHRScp
OwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRV
UkVfV1JBUF9TKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNh
bXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QpJywgJ2dsLkNMQU1QX1RP
X0VER0UnKTsKLSAgICB2YXIgdmFsaWRBcnJheUZvclNhbXBsZXJQYXJhbWV0ZXIgPSBuZXcgQXJy
YXkoCi0gICAgICAgIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLAotICAgICAgICBnbC5URVhUVVJF
X0NPTVBBUkVfTU9ERSwKLSAgICAgICAgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLAotICAgICAgICBn
bC5URVhUVVJFX01BWF9MT0QsCi0gICAgICAgIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwKLSAgICAg
ICAgZ2wuVEVYVFVSRV9NSU5fTE9ELAotICAgICAgICBnbC5URVhUVVJFX1dSQVBfUiwKLSAgICAg
ICAgZ2wuVEVYVFVSRV9XUkFQX1MsCi0gICAgICAgIGdsLlRFWFRVUkVfV1JBUF9UCi0gICAgKTsK
LSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgICAiZ2V0U2FtcGxlclBhcmFtZXRlciIs
Ci0gICAgICAgICJwbmFtZSIsCi0gICAgICAgIHZhbGlkQXJyYXlGb3JTYW1wbGVyUGFyYW1ldGVy
LAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAgICAgICAgcmV0dXJuIGdsLmdldFNh
bXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgcG5hbWUpOwotICAgIH0pOworICAgICAgYXdhaXQgdGVz
dEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIi
LAorICAgICAgICAgICJ0YXJnZXQiLAorICAgICAgICAgIFsgZ2wuUkVOREVSQlVGRkVSIF0sCisg
ICAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7CisgICAgICAgICAgICAgIHJldHVybiBnbC5nZXRJ
bnRlcm5hbGZvcm1hdFBhcmFtZXRlcih0YXJnZXQsIGdsLlIzMkksIGdsLlNBTVBMRVMpOworICAg
ICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0U3luY1BhcmFtZXRl
ciIpOwotICAgIHZhciBzeW5jID0gZ2wuZmVuY2VTeW5jKGdsLlNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFLCAwKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5P
QkpFQ1RfVFlQRSknLCAnZ2wuU1lOQ19GRU5DRScpOwotICAgIHZhciBzeW5jX3N0YXR1cyA9IGds
LmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19TVEFUVVMpOwotICAgIHN3aXRjaCAoc3lu
Y19zdGF0dXMpIHsKLSAgICAgIGNhc2UgZ2wuVU5TSUdOQUxFRDoKLSAgICAgICAgdGVzdFBhc3Nl
ZCgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgaXMgZ2wuVU5T
SUdOQUxFRCcpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgZ2wuU0lHTkFMRUQ6Ci0gICAg
ICAgIHRlc3RQYXNzZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJ
T04pIGlzIGdsLlNJR05BTEVEJyk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgdGVzdEZhaWxlZCgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJ
VElPTikgd2FzICcgKyBzeW5jX3N0YXR1cyArCi0gICAgICAgICAgICAgICAgICAgJywgZXhwZWN0
ZWQgZ2wuVU5TSUdOQUxFRCBvciBnbC5TSUdOQUxFRCcpOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJ
T04pJywgJ2dsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFJyk7Ci0gICAgc2hvdWxkQmUoJ2ds
LmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19GTEFHUyknLCAnMCcpOwotICAgIHZhciB2
YWxpZEFycmF5Rm9yU3luY1BhcmFtZXRlciA9IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuT0JKRUNU
X1RZUEUsCi0gICAgICAgIGdsLlNZTkNfU1RBVFVTLAotICAgICAgICBnbC5TWU5DX0NPTkRJVElP
TiwKLSAgICAgICAgZ2wuU1lOQ19GTEFHUwotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVu
dCgKLSAgICAgICAgImdldFN5bmNQYXJhbWV0ZXIiLAotICAgICAgICAicG5hbWUiLAotICAgICAg
ICB2YWxpZEFycmF5Rm9yU3luY1BhcmFtZXRlciwKLSAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsK
LSAgICAgICAgICAgIHJldHVybiBnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIHBuYW1lKTsKLSAg
ICB9KTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldElu
dGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAgIFsg
Z2wuU0FNUExFUyBdLAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7CisgICAgICAgICAgICAg
IHJldHVybiBnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGds
LlJHQkE0LCBwbmFtZSk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygi
VGVzdCBnZXRRdWVyeVBhcmFtZXRlciIpOwotICAgIHZhciBxdWVyeSA9IGdsLmNyZWF0ZVF1ZXJ5
KCk7Ci0gICAgZ2wuYmVnaW5RdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19X
UklUVEVOLCBxdWVyeSk7Ci0gICAgZ2wuZW5kUXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BS
SU1JVElWRVNfV1JJVFRFTik7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFF1ZXJ5UGFyYW1ldGVyKHF1
ZXJ5LCBnbC5RVUVSWV9SRVNVTFRfQVZBSUxBQkxFKScsICdmYWxzZScpOwotICAgIC8vIFF1ZXJp
ZXMnIHJlc3VsdHMgYXJlIHRlc3RlZCBlbHNld2hlcmUgaW4gdGhlIGNvbmZvcm1hbmNlIHN1aXRl
LiBJdCdzIGNvbXBsaWNhdGVkCi0gICAgLy8gdG8gd2FpdCBmb3IgdGhpcyBxdWVyeSdzIHJlc3Vs
dCB0byBiZWNvbWUgYXZhaWxhYmxlIGFuZCB2ZXJpZnkgaXQuCi0gICAgdmFyIHZhbGlkQXJyYXlG
b3JQbmFtZSA9IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuUVVFUllfUkVTVUxULAotICAgICAgICBn
bC5RVUVSWV9SRVNVTFRfQVZBSUxBQkxFCi0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50
KAotICAgICAgICAiZ2V0UXVlcnlQYXJhbWV0ZXIiLAotICAgICAgICAicG5hbWUiLAotICAgICAg
ICB2YWxpZEFycmF5Rm9yUG5hbWUsCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIHBuYW1lKTsKLSAgICAgICAg
fQotICAgICk7CisgICAgICBsZXQgdmFsaWRBcnJheUZvckludGVyZm9ybWF0ID0gbmV3IEFycmF5
KAorICAgICAgICAgIGdsLlI4LCBnbC5SOF9TTk9STSwgZ2wuUkc4LCBnbC5SRzhfU05PUk0sCisg
ICAgICAgICAgZ2wuUkdCOCwgZ2wuUkdCOF9TTk9STSwgZ2wuUkdCNTY1LCBnbC5SR0JBNCwKKyAg
ICAgICAgICBnbC5SR0I1X0ExLCBnbC5SR0JBOCwgZ2wuUkdCQThfU05PUk0sIGdsLlJHQjEwX0Ey
LAorICAgICAgICAgIGdsLlJHQjEwX0EyVUksIGdsLlNSR0I4LCBnbC5TUkdCOF9BTFBIQTgsIGds
LlIxNkYsCisgICAgICAgICAgZ2wuUkcxNkYsIGdsLlJHQjE2RiwgZ2wuUkdCQTE2RiwgZ2wuUjMy
RiwKKyAgICAgICAgICBnbC5SRzMyRiwgZ2wuUkdCMzJGLCBnbC5SR0JBMzJGLCBnbC5SMTFGX0cx
MUZfQjEwRiwKKyAgICAgICAgICBnbC5SR0I5X0U1LCBnbC5SOEksIGdsLlI4VUksIGdsLlIxNkks
CisgICAgICAgICAgZ2wuUjE2VUksIGdsLlIzMkksIGdsLlIzMlVJLCBnbC5SRzhJLAorICAgICAg
ICAgIGdsLlJHOFVJLCBnbC5SRzE2SSwgZ2wuUkcxNlVJLCBnbC5SRzMySSwKKyAgICAgICAgICBn
bC5SRzMyVUksIGdsLlJHQjhJLCBnbC5SR0I4VUksIGdsLlJHQjE2SSwKKyAgICAgICAgICBnbC5S
R0IxNlVJLCBnbC5SR0IzMkksIGdsLlJHQjMyVUksIGdsLlJHQkE4SSwKKyAgICAgICAgICBnbC5S
R0JBOFVJLCBnbC5SR0JBMTZJLCBnbC5SR0JBMTZVSSwgZ2wuUkdCQTMySSwKKyAgICAgICAgICBn
bC5SR0JBMzJVSSwgZ2wuUkdCLCBnbC5SR0JBLCBnbC5ERVBUSF9TVEVOQ0lMLCBnbC5ERVBUSF9D
T01QT05FTlQxNiwKKyAgICAgICAgICBnbC5ERVBUSF9DT01QT05FTlQyNCwgZ2wuREVQVEhfQ09N
UE9ORU5UMzJGLCBnbC5ERVBUSDI0X1NURU5DSUw4LAorICAgICAgICAgIGdsLkRFUFRIMzJGX1NU
RU5DSUw4LCBnbC5TVEVOQ0lMX0lOREVYOAorICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RJbnZh
bGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKKyAg
ICAgICAgICAiaW50ZXJuYWxmb3JtYXQiLAorICAgICAgICAgIHZhbGlkQXJyYXlGb3JJbnRlcmZv
cm1hdCwKKyAgICAgICAgICBmdW5jdGlvbihpbnRlcm5hbGZvcm1hdCkgeworICAgICAgICAgICAg
ICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBp
bnRlcm5hbGZvcm1hdCwgZ2wuU0FNUExFUyk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZygiVGVzdCBnZXRGcmFnRGF0YUxvY2F0aW9uIik7Ci0gICAgdmFyIGJhc2VWZXJ0
U2hhZGVyID0gJycgKwotICAgICcjdmVyc2lvbiAzMDAgZXNcbicgKwotICAgICd1bmlmb3JtIG1h
dDQgbW9kZWxWaWV3TWF0cml4O1xuJyArCi0gICAgJ3VuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0
cml4O1xuJyArCi0gICAgJ2luIHZlYzQgdmVydGV4O1xuJyArCi0gICAgJ291dCB2ZWM0IHBvc2l0
aW9uO1xuJyArCi0gICAgJ3ZvaWQgbWFpbiAodm9pZClcbicgKwotICAgICd7XG4nICsKLSAgICAn
ICAgICAgIHBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVydGV4O1xuJyArCi0gICAgJyAg
ICAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBwb3NpdGlvbjtcbicgKwotICAg
ICd9XG4nOwotICAgIHZhciBiYXNlRnJhZ1NoYWRlciA9ICcnICsKLSAgICAnI3ZlcnNpb24gMzAw
IGVzXG4nICsKLSAgICAnaW4gbG93cCB2ZWM0IHBvc2l0aW9uO1xuJyArCi0gICAgJ2xheW91dChs
b2NhdGlvbiA9IDApIG91dCBtZWRpdW1wIHZlYzQgZnJhZ0NvbG9yO1xuJyArCi0gICAgJ3ZvaWQg
bWFpbiAodm9pZClcbicgKwotICAgICd7XG4nICsKLSAgICAnICAgICAgIGZyYWdDb2xvciA9IHBv
c2l0aW9uO1xuJyArCi0gICAgJ31cbic7Ci0gICAgdmFyIHZlcnRTaGFkZXIgPSBnbC5jcmVhdGVT
aGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7Ci0gICAgZ2wuc2hhZGVyU291cmNlKHZlcnRTaGFkZXIs
IGJhc2VWZXJ0U2hhZGVyKTsKLSAgICBnbC5jb21waWxlU2hhZGVyKHZlcnRTaGFkZXIpOwotICAg
IHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIodmVydFNoYWRlciwgZ2wuQ09NUElMRV9T
VEFUVVMpJywgJ3RydWUnKTsKLSAgICB2YXIgZnJhZ1NoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihn
bC5GUkFHTUVOVF9TSEFERVIpOwotICAgIGdsLnNoYWRlclNvdXJjZShmcmFnU2hhZGVyLCBiYXNl
RnJhZ1NoYWRlcik7Ci0gICAgZ2wuY29tcGlsZVNoYWRlcihmcmFnU2hhZGVyKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKGZyYWdTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVT
KScsICd0cnVlJyk7Ci0gICAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gICAg
Z2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRTaGFkZXIpOwotICAgIGdsLmF0dGFjaFNoYWRl
cihwcm9ncmFtLCBmcmFnU2hhZGVyKTsKLSAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLSAg
ICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknLCd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3Jh
bSwgInZlcnRleENvbG9yIiknLCAnLTEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFM
b2NhdGlvbihwcm9ncmFtLCAibW9kZWxWaWV3TWF0cml4IiknLCAnLTEnKTsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAicHJvamVjdGlvbk1hdHJpeCIpJywg
Jy0xJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInBv
c2l0aW9uIiknLCAnLTEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihw
cm9ncmFtLCAiZnJhZ0NvbG9yIiknLCAnMCcpOwogCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVn
KCJUZXN0IGdldEFjdGl2ZVVuaWZvcm1zIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUubG9hZFVu
aWZvcm1CbG9ja1Byb2dyYW0oZ2wpOwotICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOwotICAg
IHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVT
KScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1In
KTsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJUZXN0IGdldEluZGV4ZWRQYXJhbWV0
ZXIiKTsKKyAgICAgIHdpbmRvdy5idWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICAgIGds
LmJpbmRCdWZmZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgYnVmZmVyKTsKKyAgICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgNjQsIGdsLkRZTkFN
SUNfRFJBVyk7CisgICAgICBnbC5iaW5kQnVmZmVyUmFuZ2UoZ2wuVFJBTlNGT1JNX0ZFRURCQUNL
X0JVRkZFUiwgMCwgYnVmZmVyLCA0LCA4KTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVk
UGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCknLCAnYnVm
ZmVyJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUsIDApJywgJzgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5n
ZXRJbmRleGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQsIDAp
JywgJzQnKTsKKyAgICAgIHdpbmRvdy5idWZmZXIxID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAg
ICBnbC5iaW5kQnVmZmVyKGdsLlVOSUZPUk1fQlVGRkVSLCBidWZmZXIxKTsKKyAgICAgIGdsLmJ1
ZmZlckRhdGEoZ2wuVU5JRk9STV9CVUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOworICAgICAg
d2luZG93Lm9mZnNldFVuaWZvcm0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJf
T0ZGU0VUX0FMSUdOTUVOVCk7CisgICAgICBnbC5iaW5kQnVmZmVyUmFuZ2UoZ2wuVU5JRk9STV9C
VUZGRVIsIDEsIGJ1ZmZlcjEsIG9mZnNldFVuaWZvcm0sIDgpOworICAgICAgc2hvdWxkQmUoJ2ds
LmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAnYnVm
ZmVyMScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9S
TV9CVUZGRVJfU0laRSwgMSknLCAnOCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfU1RBUlQsIDEpJywgJ29mZnNldFVuaWZvcm0nKTsK
IAotICAgIHZhciBudW1BY3RpdmVVbmlmb3JtcyA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJv
Z3JhbSwgZ2wuQUNUSVZFX1VOSUZPUk1TKTsKLSAgICB2YXIgYmxvY2tJbmRleCA9IGdsLmdldFVu
aWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJUcmFuc2Zvcm0iKTsKLSAgICB2YXIgdW5pZm9ybUlu
ZGljZXMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUFjdGl2ZVVuaWZvcm1zOyBp
KyspCi0gICAgICB1bmlmb3JtSW5kaWNlcy5wdXNoKGkpOwotICAgIHZhciB0eXBlcyA9IGdsLmdl
dEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX1RZUEUp
OwotICAgIHZhciBzaXplcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1J
bmRpY2VzLCBnbC5VTklGT1JNX1NJWkUpOwotICAgIHZhciBibG9ja0luZGljZXMgPSBnbC5nZXRB
Y3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9CTE9DS19J
TkRFWCk7Ci0gICAgdmFyIG9mZnNldHMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1
bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9PRkZTRVQpOwotICAgIHZhciBhcnJheVN0cmlkZXMg
PSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9S
TV9BUlJBWV9TVFJJREUpOwotICAgIHZhciBtYXRyaXhTdHJpZGVzID0gZ2wuZ2V0QWN0aXZlVW5p
Zm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fTUFUUklYX1NUUklERSk7
Ci0gICAgdmFyIHJvd01ham9ycyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZv
cm1JbmRpY2VzLCBnbC5VTklGT1JNX0lTX1JPV19NQUpPUik7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBudW1BY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICBpZiAodHlwZXNbaV0gIT0gZ2wu
RkxPQVRfTUFUNCAmJiB0eXBlc1tpXSAhPSBnbC5GTE9BVF9NQVQzKQotICAgICAgICB0ZXN0RmFp
bGVkKCJleHBlY3RlZCB2YWx1ZTogR0xfRkxPQVRfTUFUNCBvciBHTF9GTE9BVF9NQVQzIiArICIg
YWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX1RZUEUgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAi
XToiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0eXBlc1tpXSkpOwotICAgICAgaWYgKHNpemVz
W2ldICE9IDEpCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAxIiArICIgYWN0
dWFsIHZhbHVlIGZvciBVTklGT1JNX1NJWkUgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToi
ICsgc2l6ZXNbaV0pOwotICAgICAgaWYgKGJsb2NrSW5kaWNlc1tpXSAhPSBibG9ja0luZGV4KQot
ICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBm
b3IgVU5JRk9STV9CTE9DS19JTkRFWCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBi
bG9ja0luZGljZXNbaV0pOwotICAgICAgaWYgKG9mZnNldHNbaV0gPCAwKQotICAgICAgICB0ZXN0
RmFpbGVkKCJleHBlY3RlZCB2YWx1ZSA+PSAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JN
X09GRlNFVCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBvZmZzZXRzW2ldKTsKLSAg
ICAgIGlmIChhcnJheVN0cmlkZXNbaV0gIT0gMCkKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0
ZWQgdmFsdWU6IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fQVJSQVlfU1RSSURFIGZv
ciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIGFycmF5U3RyaWRlc1tpXSk7Ci0gICAgICBp
ZiAobWF0cml4U3RyaWRlc1tpXSA8IDApCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZh
bHVlID49IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fTUFUUklYX1NUUklERSBmb3Ig
dW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBtYXRyaXhTdHJpZGVzW2ldKTsKLSAgICAgIHNo
b3VsZEJlKCd0eXBlb2Ygcm93TWFqb3JzW2ldJywgJyJib29sZWFuIicpOwotICAgICAgaWYgKHJv
d01ham9yc1tpXSAhPSBmYWxzZSkKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6
IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fSVNfUk9XX01BSk9SIGZvciB1bmlmb3Jt
IGluZGV4WyIgKyBpICsgIl06IiArIHJvd01ham9yc1tpXSk7Ci0gICAgfQorICAgICAgZ2wuYmlu
ZEJ1ZmZlckJhc2UoZ2wuVU5JRk9STV9CVUZGRVIsIDEsIG51bGwpOworICAgICAgc2hvdWxkQmUo
J2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAn
bnVsbCcpOwogCi0gICAgdmFyIHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKLSAgICAg
ICAgZ2wuVU5JRk9STV9UWVBFLAotICAgICAgICBnbC5VTklGT1JNX1NJWkUsCi0gICAgICAgIGds
LlVOSUZPUk1fQkxPQ0tfSU5ERVgsCi0gICAgICAgIGdsLlVOSUZPUk1fT0ZGU0VULAotICAgICAg
ICBnbC5VTklGT1JNX0FSUkFZX1NUUklERSwKLSAgICAgICAgZ2wuVU5JRk9STV9NQVRSSVhfU1RS
SURFLAotICAgICAgICBnbC5VTklGT1JNX0lTX1JPV19NQUpPUgotICAgICk7Ci0gICAgdGVzdElu
dmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdldEFjdGl2ZVVuaWZvcm1zIiwKLSAgICAgICAgInBu
YW1lIiwKLSAgICAgICAgdmFsaWRBcnJheUZvclBuYW1lLAotICAgICAgICBmdW5jdGlvbihwbmFt
ZSkgewotICAgICAgICAgICAgcmV0dXJuIGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVu
aWZvcm1JbmRpY2VzLCBwbmFtZSk7Ci0gICAgICAgIH0KLSAgICApOworICAgICAgbGV0IHZhbGlk
QXJyYXlGb3JUYXJnZXQgPSBuZXcgQXJyYXkoCisgICAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUl9CSU5ESU5HLAorICAgICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfU0laRSwKKyAgICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJULAor
ICAgICAgICAgIGdsLlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsCisgICAgICAgICAgZ2wuVU5JRk9S
TV9CVUZGRVJfU0laRSwKKyAgICAgICAgICBnbC5VTklGT1JNX0JVRkZFUl9TVEFSVAorICAgICAg
KTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEluZGV4
ZWRQYXJhbWV0ZXIiLAorICAgICAgICAgICJ0YXJnZXQiLAorICAgICAgICAgIHZhbGlkQXJyYXlG
b3JUYXJnZXQsCisgICAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7CisgICAgICAgICAgICAgIHJl
dHVybiBnbC5nZXRJbmRleGVkUGFyYW1ldGVyKHRhcmdldCwgMCk7CisgICAgICB9KTsKIAotICAg
IGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRVbmlmb3JtQmxvY2tJbmRleCIpOwotICAg
IHZhciBwcm9ncmFtID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKLSAgICBnbC5s
aW5rUHJvZ3JhbShwcm9ncmFtKTsKLSAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJh
bWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJUcmFuc2Zvcm0iKScsICcwJyk7Ci0gICAgc2hvdWxk
QmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIp
JywgJ2dsLklOVkFMSURfSU5ERVgnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2Nr
SW5kZXgocHJvZ3JhbSwgIm5vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgInVfbm9ybWFsIiknLCAnZ2wu
SU5WQUxJRF9JTkRFWCcpOwotICAgIHZhciBub1VuaWZvcm1Qcm9ncmFtID0gd3R1LmxvYWRTdGFu
ZGFyZFByb2dyYW0oZ2wpOwotICAgIGdsLmxpbmtQcm9ncmFtKG5vVW5pZm9ybVByb2dyYW0pOwot
ICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihub1VuaWZvcm1Qcm9ncmFt
LCBnbC5MSU5LX1NUQVRVUyknKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5k
ZXgobm9Vbmlmb3JtUHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpJywgJ2dsLklOVkFM
SURfSU5ERVgnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgobm9Vbmlm
b3JtUHJvZ3JhbSwgInVfbm9ybWFsIiknLCAnZ2wuSU5WQUxJRF9JTkRFWCcpOworICAgICAgZGVi
dWcoIiIpOworICAgICAgZGVidWcoIlRlc3QgZ2V0U2FtcGxlclBhcmFtZXRlciIpOworICAgICAg
d2luZG93LnNhbXBsZXIgPSBnbC5jcmVhdGVTYW1wbGVyKCk7CisgICAgICBnbC5zYW1wbGVyUGFy
YW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywgZ2wuTEVRVUFMKTsKKyAg
ICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9NT0RF
LCBnbC5DT01QQVJFX1JFRl9UT19URVhUVVJFKTsKKyAgICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJp
KHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgICBnbC5z
YW1wbGVyUGFyYW1ldGVyZihzYW1wbGVyLCBnbC5URVhUVVJFX01BWF9MT0QsIDEwKTsKKyAgICAg
IGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7CisgICAgICBnbC5zYW1wbGVyUGFyYW1ldGVyZihzYW1wbGVyLCBnbC5URVhUVVJF
X01JTl9MT0QsIDApOworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVY
VFVSRV9XUkFQX1IsIGdsLkNMQU1QX1RPX0VER0UpOworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRl
cmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgICAg
Z2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1Q
X1RPX0VER0UpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxl
ciwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMpJywgJ2dsLkxFUVVBTCcpOworICAgICAgc2hvdWxk
QmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9DT01QQVJFX01P
REUpJywgJ2dsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5n
ZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiknLCAnZ2wu
TkVBUkVTVCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxl
ciwgZ2wuVEVYVFVSRV9NQVhfTE9EKScsICcxMCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFNh
bXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFS
RVNUJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBn
bC5URVhUVVJFX01JTl9MT0QpJywgJzAnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVy
UGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9SKScsICdnbC5DTEFNUF9UT19FREdF
Jyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5U
RVhUVVJFX1dSQVBfUyknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICAgICAgc2hvdWxkQmUoJ2ds
LmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QpJywgJ2dsLkNM
QU1QX1RPX0VER0UnKTsKKyAgICAgIGxldCB2YWxpZEFycmF5Rm9yU2FtcGxlclBhcmFtZXRlciA9
IG5ldyBBcnJheSgKKyAgICAgICAgICBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywKKyAgICAgICAg
ICBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSwKKyAgICAgICAgICBnbC5URVhUVVJFX01BR19GSUxU
RVIsCisgICAgICAgICAgZ2wuVEVYVFVSRV9NQVhfTE9ELAorICAgICAgICAgIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwKKyAgICAgICAgICBnbC5URVhUVVJFX01JTl9MT0QsCisgICAgICAgICAgZ2wu
VEVYVFVSRV9XUkFQX1IsCisgICAgICAgICAgZ2wuVEVYVFVSRV9XUkFQX1MsCisgICAgICAgICAg
Z2wuVEVYVFVSRV9XUkFQX1QKKyAgICAgICk7CisgICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3Vt
ZW50KAorICAgICAgICAgICJnZXRTYW1wbGVyUGFyYW1ldGVyIiwKKyAgICAgICAgICAicG5hbWUi
LAorICAgICAgICAgIHZhbGlkQXJyYXlGb3JTYW1wbGVyUGFyYW1ldGVyLAorICAgICAgICAgIGZ1
bmN0aW9uKHBuYW1lKSB7CisgICAgICAgICAgICAgIHJldHVybiBnbC5nZXRTYW1wbGVyUGFyYW1l
dGVyKHNhbXBsZXIsIHBuYW1lKTsKKyAgICAgIH0pOwogCi0gICAgZGVidWcoIiIpOwotICAgIGRl
YnVnKCJUZXN0IGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUiKTsKLSAgICB2YXIgcHJvZ3JhbSA9
IHd0dS5sb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlua1Byb2dyYW0ocHJv
Z3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0s
IGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZ2wuZ2V0QWN0
aXZlVW5pZm9ybUJsb2NrTmFtZShwcm9ncmFtLCAwKScsICdUcmFuc2Zvcm0nKTsKLSAgICBzaG91
bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUocHJvZ3JhbSwgLTEpJyk7Ci0g
ICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Ci0gICAgc2hvdWxk
QmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIDEpJyk7Ci0gICAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Ci0gICAgc2hvdWxkQmVO
dWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIGdsLklOVkFMSURfSU5E
RVgpJyk7Ci0gICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Ci0g
ICAgdmFyIG5vTGlua1Byb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gICAgc2hvdWxkQmVG
YWxzZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihub0xpbmtQcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknKTsKLSAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJB
VElPTiwgJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9MaW5rUHJvZ3JhbSwgMCknKTsK
LSAgICB2YXIgbm9Vbmlmb3JtUHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsK
LSAgICBnbC5saW5rUHJvZ3JhbShub1VuaWZvcm1Qcm9ncmFtKTsKLSAgICBzaG91bGRCZVRydWUo
J2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMp
Jyk7Ci0gICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vVW5p
Zm9ybVByb2dyYW0sIC0xKScpOwotICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfVkFMVUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFt
ZShub1VuaWZvcm1Qcm9ncmFtLCAwKScpOwotICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfVkFMVUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrTmFtZShub1VuaWZvcm1Qcm9ncmFtLCBnbC5JTlZBTElEX0lOREVYKScpOwotICAgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgICAgZGVidWcoIiIpOwor
ICAgICAgZGVidWcoIlRlc3QgZ2V0U3luY1BhcmFtZXRlciIpOworICAgICAgd2luZG93LnN5bmMg
PSBnbC5mZW5jZVN5bmMoZ2wuU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUsIDApOworICAgICAg
c2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuT0JKRUNUX1RZUEUpJywgJ2ds
LlNZTkNfRkVOQ0UnKTsKKyAgICAgIGxldCBzeW5jX3N0YXR1cyA9IGdsLmdldFN5bmNQYXJhbWV0
ZXIoc3luYywgZ2wuU1lOQ19TVEFUVVMpOworICAgICAgc3dpdGNoIChzeW5jX3N0YXR1cykgewor
ICAgICAgICBjYXNlIGdsLlVOU0lHTkFMRUQ6CisgICAgICAgICAgdGVzdFBhc3NlZCgnZ2wuZ2V0
U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgaXMgZ2wuVU5TSUdOQUxFRCcp
OworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGdsLlNJR05BTEVEOgorICAgICAgICAg
IHRlc3RQYXNzZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04p
IGlzIGdsLlNJR05BTEVEJyk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgdGVzdEZhaWxlZCgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NP
TkRJVElPTikgd2FzICcgKyBzeW5jX3N0YXR1cyArCisgICAgICAgICAgICAgICAgICAgICAnLCBl
eHBlY3RlZCBnbC5VTlNJR05BTEVEIG9yIGdsLlNJR05BTEVEJyk7CisgICAgICAgICAgYnJlYWs7
CisgICAgICB9CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5T
WU5DX0NPTkRJVElPTiknLCAnZ2wuU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUnKTsKKyAgICAg
IHNob3VsZEJlKCdnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfRkxBR1MpJywgJzAn
KTsKKyAgICAgIGxldCB2YWxpZEFycmF5Rm9yU3luY1BhcmFtZXRlciA9IG5ldyBBcnJheSgKKyAg
ICAgICAgICBnbC5PQkpFQ1RfVFlQRSwKKyAgICAgICAgICBnbC5TWU5DX1NUQVRVUywKKyAgICAg
ICAgICBnbC5TWU5DX0NPTkRJVElPTiwKKyAgICAgICAgICBnbC5TWU5DX0ZMQUdTCisgICAgICAp
OworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAiZ2V0U3luY1Bh
cmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9yU3lu
Y1BhcmFtZXRlciwKKyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICBy
ZXR1cm4gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBwbmFtZSk7CisgICAgICB9KTsKIAotICAg
IGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0
ZXIiKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0dS5sb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7
Ci0gICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQ
cm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNob3VsZEJl
KCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9S
TV9CTE9DS19CSU5ESU5HKScsICcwJyk7Ci0gICAgZ2wudW5pZm9ybUJsb2NrQmluZGluZyhwcm9n
cmFtLCAwLCAxKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1l
dGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklORElORyknLCAnMScpOwotICAgIC8v
IFRoZSBhY3R1YWwgYmxvY2sgZGF0YSBzaXplIGNhbiBiZSBiaWdnZXIgdGhhbiAxNjQsIGRlcGVu
ZGluZyBvbiB0aGUgdW5pZm9ybSBibG9jayBsYXlvdXQuCi0gICAgc2hvdWxkQmVUcnVlKCdnbC5n
ZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9D
S19EQVRBX1NJWkUpID49IDE2NCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRBY3RpdmVVbmlmb3Jt
QmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9S
TVMpJywgJzMnKTsKLSAgICBzaG91bGRCZVRydWUoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1Bh
cmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllfVkVSVEVY
X1NIQURFUiknKTsKLSAgICBzaG91bGRCZUZhbHNlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdN
RU5UX1NIQURFUiknKTsKLSAgICB2YXIgaW5kaWNlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9j
a1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7Ci0gICAgICBpZiAoaW5k
aWNlc1tpXSA8IDApCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlID49IDAiICsg
IiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5ESUNFUyBm
b3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBpbmRpY2VzW2ldKTsKLSAgICB9Ci0gICAg
dmFyIHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuVU5JRk9STV9C
TE9DS19CSU5ESU5HLAotICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0RBVEFfU0laRSwKLSAgICAg
ICAgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMsCi0gICAgICAgIGdsLlVOSUZPUk1f
QkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5ESUNFUywKLSAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19S
RUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVIsCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIKLSAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1l
bnQoCi0gICAgICAgICJnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIiLAotICAgICAgICAi
cG5hbWUiLAotICAgICAgICB2YWxpZEFycmF5Rm9yUG5hbWUsCi0gICAgICAgIGZ1bmN0aW9uKHBu
YW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1l
dGVyKHByb2dyYW0sIDAsIHBuYW1lKTsKLSAgICAgICAgfQotICAgICk7Ci19CisgICAgICBkZWJ1
ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRRdWVyeVBhcmFtZXRlciIpOworICAgICAgd2lu
ZG93LnF1ZXJ5ID0gZ2wuY3JlYXRlUXVlcnkoKTsKKyAgICAgIGdsLmJlZ2luUXVlcnkoZ2wuVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgcXVlcnkpOworICAgICAgZ2wuZW5k
UXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTik7CisgICAgICBz
aG91bGRCZSgnZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIGdsLlFVRVJZX1JFU1VMVF9BVkFJ
TEFCTEUpJywgJ2ZhbHNlJyk7CisgICAgICAvLyBRdWVyaWVzJyByZXN1bHRzIGFyZSB0ZXN0ZWQg
ZWxzZXdoZXJlIGluIHRoZSBjb25mb3JtYW5jZSBzdWl0ZS4gSXQncyBjb21wbGljYXRlZAorICAg
ICAgLy8gdG8gd2FpdCBmb3IgdGhpcyBxdWVyeSdzIHJlc3VsdCB0byBiZWNvbWUgYXZhaWxhYmxl
IGFuZCB2ZXJpZnkgaXQuCisgICAgICBsZXQgdmFsaWRBcnJheUZvclBuYW1lID0gbmV3IEFycmF5
KAorICAgICAgICAgIGdsLlFVRVJZX1JFU1VMVCwKKyAgICAgICAgICBnbC5RVUVSWV9SRVNVTFRf
QVZBSUxBQkxFCisgICAgICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAg
ICAgICAgICAiZ2V0UXVlcnlQYXJhbWV0ZXIiLAorICAgICAgICAgICJwbmFtZSIsCisgICAgICAg
ICAgdmFsaWRBcnJheUZvclBuYW1lLAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7CisgICAg
ICAgICAgICAgIHJldHVybiBnbC5nZXRRdWVyeVBhcmFtZXRlcihxdWVyeSwgcG5hbWUpOworICAg
ICAgICAgIH0KKyAgICAgICk7CisKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJUZXN0
IGdldEZyYWdEYXRhTG9jYXRpb24iKTsKKyAgICAgIGxldCBiYXNlVmVydFNoYWRlciA9ICcnICsK
KyAgICAgICcjdmVyc2lvbiAzMDAgZXNcbicgKworICAgICAgJ3VuaWZvcm0gbWF0NCBtb2RlbFZp
ZXdNYXRyaXg7XG4nICsKKyAgICAgICd1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDtcbicg
KworICAgICAgJ2luIHZlYzQgdmVydGV4O1xuJyArCisgICAgICAnb3V0IHZlYzQgcG9zaXRpb247
XG4nICsKKyAgICAgICd2b2lkIG1haW4gKHZvaWQpXG4nICsKKyAgICAgICd7XG4nICsKKyAgICAg
ICcgICAgICAgcG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiB2ZXJ0ZXg7XG4nICsKKyAgICAg
ICcgICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogcG9zaXRpb247XG4nICsK
KyAgICAgICd9XG4nOworICAgICAgbGV0IGJhc2VGcmFnU2hhZGVyID0gJycgKworICAgICAgJyN2
ZXJzaW9uIDMwMCBlc1xuJyArCisgICAgICAnaW4gbG93cCB2ZWM0IHBvc2l0aW9uO1xuJyArCisg
ICAgICAnbGF5b3V0KGxvY2F0aW9uID0gMCkgb3V0IG1lZGl1bXAgdmVjNCBmcmFnQ29sb3I7XG4n
ICsKKyAgICAgICd2b2lkIG1haW4gKHZvaWQpXG4nICsKKyAgICAgICd7XG4nICsKKyAgICAgICcg
ICAgICAgZnJhZ0NvbG9yID0gcG9zaXRpb247XG4nICsKKyAgICAgICd9XG4nOworICAgICAgd2lu
ZG93LnZlcnRTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CisgICAg
ICBnbC5zaGFkZXJTb3VyY2UodmVydFNoYWRlciwgYmFzZVZlcnRTaGFkZXIpOworICAgICAgZ2wu
Y29tcGlsZVNoYWRlcih2ZXJ0U2hhZGVyKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQ
YXJhbWV0ZXIodmVydFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsKKyAgICAg
IHdpbmRvdy5mcmFnU2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7
CisgICAgICBnbC5zaGFkZXJTb3VyY2UoZnJhZ1NoYWRlciwgYmFzZUZyYWdTaGFkZXIpOworICAg
ICAgZ2wuY29tcGlsZVNoYWRlcihmcmFnU2hhZGVyKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRT
aGFkZXJQYXJhbWV0ZXIoZnJhZ1NoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsK
KyAgICAgIHdpbmRvdy5wcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICAgICAgZ2wuYXR0
YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRTaGFkZXIpOworICAgICAgZ2wuYXR0YWNoU2hhZGVyKHBy
b2dyYW0sIGZyYWdTaGFkZXIpOworICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAg
ICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknLCd0cnVlJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9n
cmFtLCAidmVydGV4Q29sb3IiKScsICctMScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdE
YXRhTG9jYXRpb24ocHJvZ3JhbSwgIm1vZGVsVmlld01hdHJpeCIpJywgJy0xJyk7CisgICAgICBz
aG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAicHJvamVjdGlvbk1hdHJp
eCIpJywgJy0xJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9n
cmFtLCAicG9zaXRpb24iKScsICctMScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRh
TG9jYXRpb24ocHJvZ3JhbSwgImZyYWdDb2xvciIpJywgJzAnKTsKKworICAgICAgZGVidWcoIiIp
OworICAgICAgZGVidWcoIlRlc3QgZ2V0QWN0aXZlVW5pZm9ybXMiKTsKKyAgICAgIHByb2dyYW0g
PSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dyYW0o
cHJvZ3JhbSk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEVycm9y
KCknLCAnZ2wuTk9fRVJST1InKTsKKworICAgICAgbGV0IG51bUFjdGl2ZVVuaWZvcm1zID0gZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STVMpOworICAgICAg
bGV0IGJsb2NrSW5kZXggPSBnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChwcm9ncmFtLCAiVHJhbnNm
b3JtIik7CisgICAgICBsZXQgdW5pZm9ybUluZGljZXMgPSBbXTsKKyAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgbnVtQWN0aXZlVW5pZm9ybXM7IGkrKykKKyAgICAgICAgdW5pZm9ybUluZGljZXMu
cHVzaChpKTsKKyAgICAgIGxldCB0eXBlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0s
IHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX1RZUEUpOworICAgICAgbGV0IHNpemVzID0gZ2wu
Z2V0QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fU0la
RSk7CisgICAgICBsZXQgYmxvY2tJbmRpY2VzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMocHJvZ3Jh
bSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fQkxPQ0tfSU5ERVgpOworICAgICAgbGV0IG9m
ZnNldHMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wu
VU5JRk9STV9PRkZTRVQpOworICAgICAgbGV0IGFycmF5U3RyaWRlcyA9IGdsLmdldEFjdGl2ZVVu
aWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX0FSUkFZX1NUUklERSk7
CisgICAgICBsZXQgbWF0cml4U3RyaWRlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0s
IHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX01BVFJJWF9TVFJJREUpOworICAgICAgbGV0IHJv
d01ham9ycyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBn
bC5VTklGT1JNX0lTX1JPV19NQUpPUik7CisgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUFj
dGl2ZVVuaWZvcm1zOyBpKyspIHsKKyAgICAgICAgaWYgKHR5cGVzW2ldICE9IGdsLkZMT0FUX01B
VDQgJiYgdHlwZXNbaV0gIT0gZ2wuRkxPQVRfTUFUMykKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJl
eHBlY3RlZCB2YWx1ZTogR0xfRkxPQVRfTUFUNCBvciBHTF9GTE9BVF9NQVQzIiArICIgYWN0dWFs
IHZhbHVlIGZvciBVTklGT1JNX1RZUEUgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsg
d3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0eXBlc1tpXSkpOworICAgICAgICBpZiAoc2l6ZXNbaV0g
IT0gMSkKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMSIgKyAiIGFjdHVh
bCB2YWx1ZSBmb3IgVU5JRk9STV9TSVpFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiAr
IHNpemVzW2ldKTsKKyAgICAgICAgaWYgKGJsb2NrSW5kaWNlc1tpXSAhPSBibG9ja0luZGV4KQor
ICAgICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0dWFsIHZhbHVl
IGZvciBVTklGT1JNX0JMT0NLX0lOREVYIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiAr
IGJsb2NrSW5kaWNlc1tpXSk7CisgICAgICAgIGlmIChvZmZzZXRzW2ldIDwgMCkKKyAgICAgICAg
ICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZSA+PSAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBV
TklGT1JNX09GRlNFVCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBvZmZzZXRzW2ld
KTsKKyAgICAgICAgaWYgKGFycmF5U3RyaWRlc1tpXSAhPSAwKQorICAgICAgICAgIHRlc3RGYWls
ZWQoImV4cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX0FSUkFZ
X1NUUklERSBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBhcnJheVN0cmlkZXNbaV0p
OworICAgICAgICBpZiAobWF0cml4U3RyaWRlc1tpXSA8IDApCisgICAgICAgICAgdGVzdEZhaWxl
ZCgiZXhwZWN0ZWQgdmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9NQVRS
SVhfU1RSSURFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIG1hdHJpeFN0cmlkZXNb
aV0pOworICAgICAgICBzaG91bGRCZShgIiR7dHlwZW9mIHJvd01ham9yc1tpXX0iYCwgJyJib29s
ZWFuIicpOworICAgICAgICBpZiAocm93TWFqb3JzW2ldICE9IGZhbHNlKQorICAgICAgICAgIHRl
c3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JN
X0lTX1JPV19NQUpPUiBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyByb3dNYWpvcnNb
aV0pOworICAgICAgfQorCisgICAgICB2YWxpZEFycmF5Rm9yUG5hbWUgPSBuZXcgQXJyYXkoCisg
ICAgICAgICAgZ2wuVU5JRk9STV9UWVBFLAorICAgICAgICAgIGdsLlVOSUZPUk1fU0laRSwKKyAg
ICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0lOREVYLAorICAgICAgICAgIGdsLlVOSUZPUk1fT0ZG
U0VULAorICAgICAgICAgIGdsLlVOSUZPUk1fQVJSQVlfU1RSSURFLAorICAgICAgICAgIGdsLlVO
SUZPUk1fTUFUUklYX1NUUklERSwKKyAgICAgICAgICBnbC5VTklGT1JNX0lTX1JPV19NQUpPUgor
ICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdl
dEFjdGl2ZVVuaWZvcm1zIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAgIHZhbGlkQXJy
YXlGb3JQbmFtZSwKKyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICBy
ZXR1cm4gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIHBuYW1l
KTsKKyAgICAgICAgICB9CisgICAgICApOworCisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1
ZygiVGVzdCBnZXRVbmlmb3JtQmxvY2tJbmRleCIpOworICAgICAgcHJvZ3JhbSA9IHd0dS5sb2Fk
VW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7CisgICAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsK
KyAgICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5M
SU5LX1NUQVRVUyknKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChw
cm9ncmFtLCAiVHJhbnNmb3JtIiknLCAnMCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm1CbG9ja0luZGV4KHByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIpJywgJ2dsLklOVkFMSURf
SU5ERVgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChwcm9ncmFt
LCAibm9ybWFsIiknLCAnZ2wuSU5WQUxJRF9JTkRFWCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdl
dFVuaWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJ1X25vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5E
RVgnKTsKKyAgICAgIHdpbmRvdy5ub1VuaWZvcm1Qcm9ncmFtID0gd3R1LmxvYWRTdGFuZGFyZFBy
b2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dyYW0obm9Vbmlmb3JtUHJvZ3JhbSk7CisgICAg
ICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwg
Z2wuTElOS19TVEFUVVMpJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5k
ZXgobm9Vbmlmb3JtUHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpJywgJ2dsLklOVkFM
SURfSU5ERVgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChub1Vu
aWZvcm1Qcm9ncmFtLCAidV9ub3JtYWwiKScsICdnbC5JTlZBTElEX0lOREVYJyk7CisKKyAgICAg
IGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJUZXN0IGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUi
KTsKKyAgICAgIHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOworICAg
ICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRydWUoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7CisgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUocHJvZ3JhbSwgMCkn
LCAnVHJhbnNmb3JtJyk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUocHJvZ3JhbSwgLTEpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX1ZBTFVFKTsKKyAgICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9y
bUJsb2NrTmFtZShwcm9ncmFtLCAxKScpOworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9WQUxVRSk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZv
cm1CbG9ja05hbWUocHJvZ3JhbSwgZ2wuSU5WQUxJRF9JTkRFWCknKTsKKyAgICAgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgICAgd2luZG93Lm5vTGlua1By
b2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgICAgICBzaG91bGRCZUZhbHNlKCdnbC5nZXRQ
cm9ncmFtUGFyYW1ldGVyKG5vTGlua1Byb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAg
d3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5n
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vTGlua1Byb2dyYW0sIDApJyk7CisgICAgICBub1Vu
aWZvcm1Qcm9ncmFtID0gd3R1LmxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOworICAgICAgZ2wubGlu
a1Byb2dyYW0obm9Vbmlmb3JtUHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRydWUoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7CisgICAg
ICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlmb3JtUHJv
Z3JhbSwgLTEpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZB
TFVFKTsKKyAgICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShu
b1VuaWZvcm1Qcm9ncmFtLCAwKScpOworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9WQUxVRSk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuSU5WQUxJRF9JTkRFWCknKTsKKyAgICAgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworCisgICAgICBkZWJ1Zygi
Iik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIiKTsK
KyAgICAgIHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOworICAgICAg
Z2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dy
YW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7CisgICAgICBzaG91bGRCZSgn
Z2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1f
QkxPQ0tfQklORElORyknLCAnMCcpOworICAgICAgZ2wudW5pZm9ybUJsb2NrQmluZGluZyhwcm9n
cmFtLCAwLCAxKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJh
bWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19CSU5ESU5HKScsICcxJyk7CisgICAg
ICAvLyBUaGUgYWN0dWFsIGJsb2NrIGRhdGEgc2l6ZSBjYW4gYmUgYmlnZ2VyIHRoYW4gMTY0LCBk
ZXBlbmRpbmcgb24gdGhlIHVuaWZvcm0gYmxvY2sgbGF5b3V0LgorICAgICAgc2hvdWxkQmVUcnVl
KCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9S
TV9CTE9DS19EQVRBX1NJWkUpID49IDE2NCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEFjdGl2
ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0FDVElW
RV9VTklGT1JNUyknLCAnMycpOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3RpdmVVbmlm
b3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VE
X0JZX1ZFUlRFWF9TSEFERVIpJyk7CisgICAgICBzaG91bGRCZUZhbHNlKCdnbC5nZXRBY3RpdmVV
bmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX0ZSQUdNRU5UX1NIQURFUiknKTsKKyAgICAgIGxldCBpbmRpY2VzID0gZ2wuZ2V0QWN0
aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQUNU
SVZFX1VOSUZPUk1fSU5ESUNFUyk7CisgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM7IGkrKykg
eworICAgICAgICBpZiAoaW5kaWNlc1tpXSA8IDApCisgICAgICAgICAgdGVzdEZhaWxlZCgiZXhw
ZWN0ZWQgdmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9CTE9DS19BQ1RJ
VkVfVU5JRk9STV9JTkRJQ0VTIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIGluZGlj
ZXNbaV0pOworICAgICAgfQorICAgICAgdmFsaWRBcnJheUZvclBuYW1lID0gbmV3IEFycmF5KAor
ICAgICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfQklORElORywKKyAgICAgICAgICBnbC5VTklGT1JN
X0JMT0NLX0RBVEFfU0laRSwKKyAgICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklG
T1JNUywKKyAgICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lORElDRVMs
CisgICAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVIs
CisgICAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdNRU5UX1NIQURF
UgorICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAg
ImdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAg
ICAgICAgICB2YWxpZEFycmF5Rm9yUG5hbWUsCisgICAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsK
KyAgICAgICAgICAgICAgcmV0dXJuIGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihw
cm9ncmFtLCAwLCBwbmFtZSk7CisgICAgICAgICAgfQorICAgICAgKTsKKyAgfQorCisgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOworICBmaW5pc2hUZXN0KCk7Cit9KSgpOwogCi12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKK2xldCBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVz
dHMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRl
by5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rl
c3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlk
ZW8uanMKaW5kZXggNmQ5MzZiNTA5NjBjZDZiNzgyYTI1NTEzNTdmNGU0ZTc5Njc0ODJhOS4uMTRj
ZjQ2MjhiZWMwMWY3NzI1ZjA0NzgxMzVmYjJlZTZhMTQ2YTJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcworKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpzCkBA
IC03MSw4ICs3MSw4IEBAIGZ1bmN0aW9uIGdlbmVyYXRlVGVzdChpbnRlcm5hbEZvcm1hdCwgcGl4
ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcHJvbG9ndWUsIHJlc291cmNlCiAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKICAgICAgICAgICAgIHZpZGVvLnR5cGUgPSBp
bmZvLnR5cGU7CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBpbmZvLnNyYzsKLSAgICAgICAgICAg
IHd0dS5zdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgIHJ1bkltYWdlQml0bWFwVGVzdCh2aWRlbywgMSwgaW50ZXJuYWxGb3JtYXQs
IHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIGdsLCB0aXUsIHd0dSwgZmFsc2UpOworICAgICAgICAg
ICAgd3R1LnN0YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgYXN5bmMgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgYXdhaXQgcnVuSW1hZ2VCaXRtYXBUZXN0KHZpZGVvLCAxLCBp
bnRlcm5hbEZvcm1hdCwgcGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgZ2wsIHRpdSwgd3R1LCBmYWxz
ZSk7CiAgICAgICAgICAgICAgICAgcnVuTmV4dFZpZGVvKCk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvdGVzdHMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1i
aXRtYXAtZnJvbS12aWRlby5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTNkLXdpdGgtaW1hZ2Ut
Yml0bWFwLWZyb20tdmlkZW8uanMKaW5kZXggODZkNzZmMjlkZTNiNTljMWJhY2JkOTU2OWE2OTg2
MTY4MWMzMmNlZC4uYTI2OGY3ZDhkNTUwZTZhZjRmOTQ1ZmYwZTg5MmJjYzlhOWQ5MGUyMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
dGVzdHMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12
aWRlby5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy90ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0zZC13aXRoLWltYWdlLWJpdG1hcC1m
cm9tLXZpZGVvLmpzCkBAIC03MSw4ICs3MSw4IEBAIGZ1bmN0aW9uIGdlbmVyYXRlVGVzdChpbnRl
cm5hbEZvcm1hdCwgcGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcHJvbG9ndWUsIHJlc291cmNlCiAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKICAgICAgICAgICAg
IHZpZGVvLnR5cGUgPSBpbmZvLnR5cGU7CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBpbmZvLnNy
YzsKLSAgICAgICAgICAgIHd0dS5zdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHJ1bkltYWdlQml0bWFwVGVzdCh2aWRlbywgMSwg
aW50ZXJuYWxGb3JtYXQsIHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIGdsLCB0aXUsIHd0dSwgdHJ1
ZSk7CisgICAgICAgICAgICB3dHUuc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBydW5JbWFnZUJpdG1hcFRl
c3QodmlkZW8sIDEsIGludGVybmFsRm9ybWF0LCBwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBnbCwg
dGl1LCB3dHUsIHRydWUpOwogICAgICAgICAgICAgICAgIHJ1bk5leHRWaWRlbygpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpz
CmluZGV4IDQ2ODRlYTgxMGJlYWY5ZjI3YTkwZDBmYTM4ZGE1ZjM0OTEyOGRmYjYuLjlhZmZhMTA4
MjMwNDRiMTY0OTBlMGUzN2JmOGFjMmIzY2M5MWM3M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2Vi
Z2wtdGVzdC11dGlscy5qcwpAQCAtMTczMyw2ICsxNzMzLDEwIEBAIHZhciBnbEVycm9yU2hvdWxk
QmUgPSBmdW5jdGlvbihnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKICAgcmV0dXJuIGdsRXJyb3JT
aG91bGRCZUltcGwoZ2wsIGdsRXJyb3JzLCB0cnVlLCBvcHRfbXNnKTsKIH07CiAKK2NvbnN0IGds
RXJyb3JBc3NlcnQgPSBmdW5jdGlvbihnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKKyAgcmV0dXJu
IGdsRXJyb3JTaG91bGRCZUltcGwoZ2wsIGdsRXJyb3JzLCBmYWxzZSwgb3B0X21zZyk7Cit9Owor
CiAvKioKICAqIFRlc3RzIHRoYXQgdGhlIGdpdmVuIGZyYW1lYnVmZmVyIGhhcyBhIHNwZWNpZmlj
IHN0YXR1cwogICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KQEAgLTI5MjMsMTQgKzI5MjcsNiBAQCB2YXIgcmVxdWVz
dEFuaW1GcmFtZSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgIF9yZXF1ZXN0QW5pbUZyYW1lLmNh
bGwod2luZG93LCBjYWxsYmFjayk7CiB9OwogCi0vKioKLSAqIFByb3ZpZGVzIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2sgaW4gYSBjcm9zcyBicm93c2VyIHdheS4KLSAqIFJldHVybnMg
YSBwcm9wZXJ0eSwgb3IgdW5kZWZpbmVkIGlmIHVuc3Vwb3J0ZWQuCi0gKi8KLXZhciBnZXRSZXF1
ZXN0VmlkRnJhbWVDYWxsYmFjayA9IGZ1bmN0aW9uKCkgewotICByZXR1cm4gSFRNTFZpZGVvRWxl
bWVudC5wcm90b3R5cGVbInJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siXTsKLX07Ci0KIHZhciBf
Y2FuY2VsQW5pbUZyYW1lOwogCiAvKioKQEAgLTMwOTksNyArMzA5NSwxMSBAQCB2YXIgc2V0WmVy
b1RpbWVvdXQgPSAoZnVuY3Rpb24oKSB7CiBmdW5jdGlvbiBkaXNwYXRjaFByb21pc2UoZm4pIHsK
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChmbl9yZXNvbHZlLCBmbl9yZWplY3QpID0+IHsKICAgICBz
ZXRaZXJvVGltZW91dCgoKSA9PiB7Ci0gICAgICBmbl9yZXNvbHZlKGZuKCkpOworICAgICAgbGV0
IHZhbDsKKyAgICAgIGlmIChmbikgeworICAgICAgICB2YWwgPSBmbigpOworICAgICAgfQorICAg
ICAgZm5fcmVzb2x2ZSh2YWwpOwogICAgIH0pOwogICB9KTsKIH0KQEAgLTMxMzIsMzggKzMxMzIs
MzAgQEAgdmFyIHJ1blN0ZXBzID0gZnVuY3Rpb24oc3RlcHMpIHsKICAqIEBwYXJhbSB7IWZ1bmN0
aW9uKCFIVE1MVmlkZW9FbGVtZW50KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdG8gY2FsbCB3
aGVuCiAgKiAgICAgICAgdmlkZW8gaXMgcmVhZHkuCiAgKi8KLWZ1bmN0aW9uIHN0YXJ0UGxheWlu
Z0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgY2FsbGJhY2spIHsKK2FzeW5jIGZ1bmN0aW9uIHN0YXJ0
UGxheWluZ0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgY2FsbGJhY2spIHsKICAgaWYgKHZpZGVvLmVy
cm9yKSB7CiAgICAgdGVzdEZhaWxlZCgnVmlkZW8gZmFpbGVkIHRvIGxvYWQ6ICcgKyB2aWRlby5l
cnJvcik7CiAgICAgcmV0dXJuOwogICB9CiAKLSAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigKLSAg
ICAgICdlcnJvcicsIGUgPT4geyB0ZXN0RmFpbGVkKCdWaWRlbyBwbGF5YmFjayBmYWlsZWQ6ICcg
KyBlLm1lc3NhZ2UpOyB9LAotICAgICAgdHJ1ZSk7Ci0KLSAgdmFyIHJ2ZmMgPSBnZXRSZXF1ZXN0
VmlkRnJhbWVDYWxsYmFjaygpOwotICBpZiAocnZmYyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgdmFy
IHRpbWVXYXRjaGVyID0gZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodmlkZW8uY3VycmVudFRpbWUg
PiAwKSB7Ci0gICAgICAgIGNhbGxiYWNrKHZpZGVvKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAg
IHJlcXVlc3RBbmltRnJhbWUuY2FsbCh3aW5kb3csIHRpbWVXYXRjaGVyKTsKLSAgICAgIH0KLSAg
ICB9OwotCi0gICAgdGltZVdhdGNoZXIoKTsKLSAgfSBlbHNlIHsKLSAgICAvLyBDYWxscyB2aWRl
by5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKF8gPT4geyBjYWxsYmFjayh2aWRlbykgfSkKLSAg
ICBydmZjLmNhbGwodmlkZW8sIF8gPT4geyBjYWxsYmFjayh2aWRlbykgfSk7Ci0gIH0KLQogICB2
aWRlby5sb29wID0gdHJ1ZTsKICAgdmlkZW8ubXV0ZWQgPSB0cnVlOwogICAvLyBTZWUgd2hldGhl
ciBzZXR0aW5nIHRoZSBwcmVsb2FkIGZsYWcgZGUtZmxha2VzIHZpZGVvLXJlbGF0ZWQgdGVzdHMu
CiAgIHZpZGVvLnByZWxvYWQgPSAnYXV0byc7Ci0gIHZpZGVvLnBsYXkoKTsKLX07CisKKyAgdHJ5
IHsKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFp
bGVkKCd2aWRlby5wbGF5IGZhaWxlZDogJyArIGUpOworICAgIHJldHVybjsKKyAgfQorCisgIGlm
ICh2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKSB7CisgICAgYXdhaXQgbmV3IFByb21p
c2UoZ28gPT4gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhnbykpOworICB9CisKKyAg
Y2FsbGJhY2sodmlkZW8pOworfQogCiB2YXIgZ2V0SG9zdCA9IGZ1bmN0aW9uKHVybCkgewogICB1
cmwgPSB1cmwucmVwbGFjZSgiXFwiLCAiLyIpOwpAQCAtMzQ1Myw2ICszNDQ1LDcgQEAgdmFyIEFQ
SSA9IHsKICAgZ2V0QXR0cmliTWFwOiBnZXRBdHRyaWJNYXAsCiAgIGdldFVuaWZvcm1NYXA6IGdl
dFVuaWZvcm1NYXAsCiAgIGdsRW51bVRvU3RyaW5nOiBnbEVudW1Ub1N0cmluZywKKyAgZ2xFcnJv
ckFzc2VydDogZ2xFcnJvckFzc2VydCwKICAgZ2xFcnJvclNob3VsZEJlOiBnbEVycm9yU2hvdWxk
QmUsCiAgIGdsVHlwZVRvVHlwZWRBcnJheVR5cGU6IGdsVHlwZVRvVHlwZWRBcnJheVR5cGUsCiAg
IGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZTogaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZl
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm0gYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12cDgud2Vi
bQppbmRleCAxZDlkNjAzODUyNzQ5ODA0YTIyOGI4NDJmOGE1NjdiNjBhNzAxOTI4Li5mZGU1OWEx
OGI0ZGRlOWExM2YzN2MzZjQ2MmFmODhhZDRiMGYzYzNhIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNo
CmRlbHRhIDQxODQKemNtYjZjWWZ6SXtfSV5QaUw1ZSZBMHdQVGlOYGs+OTVacntxJlBOYT5rKklg
K2ZVKyV3RDJUT14ycmF2SGxKR0poCnp1bis+cGZHbj98cC0ya3xeKVdqYHdMQW54NUdsSHlTc3py
WGIkNz5WY2VLQns9TykzMGM2V0NBJkhjWEliTTg2IQp6KzxWXlg0X2khal5wM3NQTmcoc3tXfVBp
TktCKDc0KHRNMTNUWE9raTt3UG88QkdaQXlVZD10cDx0bChZbEtTIXoKemR5NUg8MUB1WTBqNndF
ITN5QXB1M0BaTStiLSN1PiY3UWoyPSheZjlEIWgqczh5JlJKVSRSYX1PNEtMZ0dZYiFkCnpoaT0p
Ki14OUpuZExeWG5ze05fZURKdFRQYFZEVik0fik1QSY5Qns3cChPfFYlOyZfJXV4I2U/JDNFKz41
ZXBoWgp6SWpTTEFHe3xxTHI5XihAVjBsQH1KMUtra0JecU1XVm0rVTVRYU9GNSo+ZyN3UEoqOCNf
X2NEbntBTkt6MFp6JmEKelBIcHIlRFo4YVlRRFRYUF4xdiM8PDxBPCprZHxDSllDYnwldyNIZjN2
RjhRRkgtUlg4VXkrcm8jQXU1OEdEMUpXCnpnWXFmbi13VDl8V2k8I1A2LXYhTG56TG9NO3ZuTzJa
ZFF0IWk2TFR5aEh5aGQhYX5DdHRrXj1pcVVlSmh4a0FweQp6R1RxPm5BQ2JNRUVtdVQ9cUdYX2At
LWN9b0EjNSE+dlZ9MXoxZmx7Rkg9WiU3b35jYm4kUWh3YHtuPHxTMlNqWTYKenpNV09ucT5zYjEo
VTZLSmVUOGImUSZ6PHRUbUNTMyszcENmTDI0R1FydGA3cig2ciM3WEpDekBPXn5+YmV9LVhTCnpu
USZofnlZakVNV0prS3NjanEwTVcoUUU7TlZBMTJBfktGeU13akFHbVg9eFczNy09X2lWNWJLN0tL
QzUqfHVWYgp6JjxSRktlQ1UmfGBkdHhFJlVWJkJlOClPSkJVfkdOVVVmP3gmeig8Xl81SDt6PDBJ
dj9WNSFDV3BfeTtPZldydncKenl0MTh6UkpefkktUUE+c3kofH1GQVQ/WVI/V20pUmBzcXtzSn53
OWxjUiVNT3hQe00jI1U+XzZsSG49SCpqcCVICnpDQGZlZ0pmN0I2dyhyOTZ2PHFlWD92IVBgRVgo
dlAkM3E0MHRLO2B4OyRnbCNnRnRQWTFkV1VBNG5PYVhoa18yOQp6KCgreWslRW40eiZ+JCFtVThr
dH56QGZnfT1IWi1BaFRvZVM7N2tvVG5uQDQ9Qj1+OHxIRlc9Qzk3dD1GfEZAeDkKempVe3M/ZilF
TW45TUFVfCYtYWcmYGowQyhfR1RxZEFoMFZiPCV9d0xKQ3dYfVdoOUlwJEZeUDUkS1V1TmUlLVBp
Cnp1O34jWnhqdikkS0cjNFcoJT9Cb18rRGt5Zj5OPm8lRF81Vl57N0BzN3xAdVYyQ2wrOWVXM0E+
bmleSntYO3pGSAp6X1ZzTTEjeURDOzBmRHl0OC1gKVZAWnlIUiQ/Jk1uTH5vd15xOVVtfEBTPkB5
Kj0pcWEoX1Z7VVBXSSVmKFk4fUYKejJJYUtLKE98VTlpZD51UiZ6V3UrbCZXZDNyNTJ8I3VTXzch
eT1BYUItQXg3TnY+QyhXdmxyPHd0SSMoRzRxWiZMCnpZLW57Mik5K2lSellzaENqKjdvRj1VdD5f
ITBnQkRtVmUlJFZjZ0dNaHk+R1ItdGluZVVDY09NVzB5cnxifkVkSgp6a053SDF6S3VKPD9vIzx5
Kks4TT9PNz0qLTAqJUx0JjM5KVlSTylRQDw+aW1ycClKMUxySz0yQFdEUTtxbyNObjYKekA3M3Z1
cj1NTVFqJmJDa3phezJgZ0RZMUxKI0pPQDNGN2pNTHRtd0RIdE1CZnckVHotVXteK1ZaTTI9Mklh
SkQ8Cno2cTlWIzgzPk0qIyhVO30oYERvQWlnRUxNcDlJJGM3XypfbGlENk82TnkmUSktJUk8cjtP
byFKR1ZUPUlUUjQ3aQp6cTU3VG08KldVdVFUe3I5NVFJKnRJVytaSVJvd0JHbDNoWlkjbHw+KFJB
QUt8YFNrSFJwS0VwZ0l8dXdGdz5VU1IKel5MREBCJkFQPVZARmE9dThNRSNNYX58QDx0cj5JU14w
e1JCZTQrZ0F1emNVPSRKMihiVlBnck5ka1kwQztzKnpjCnpwUCooalBQZ1ZpQHpjaHRkQzBIWEIr
fmgoPkUwQDhKWG0yY29sPjx2Rj9CZm5FUCEkPCZvb3RAKE4tPkxZZ2lTSAp6eGZPPDxpeWVuMmA8
YEM8enZGZk0+YD9mX2ZjU30zX14qaGM1dzFAUiNNQSZzXjFeYVNSbiNvI15qUGZybHtQP1YKenF9
RmsjSWlWeS1nWGc4O15Vfm50cV5NdG4lRmh3PUpqb21uYmxaVEM3ZWUyM2I+SUdqbFdTSjNwZHZi
bEQqRG9BCnpiYnJLP21kXmNFQ3Ulb3M3eVd+b2MtP3U7a2hwMF5SN1N1M0YjWFUqV3p4eSZiSj1t
eCFOWCV4PUEqT3JrTn5OdQp6LTN2TDU2RnczZnBQZT5mRCpUQSVrYzNYJGFJPT02a3kjJDs3RGMr
bilAaW59ZlJMQjQyOE0rYzZWNF9QdnBnIzsKelA+cURlbER5PnFMN05heD58UX1qQCs0JUVXVnYy
TCReUFk3ci1IMnNDd00pQz9hYSotSEo/Qnk3RCpqTF5vKnlMCnpyOUYlTSZeekFrZXlUXzBJKW5Z
KEB+SSN9Sj9ETXM4QGFCVlI/QSEwWUphbU5tdHM5SUxYMDk8WGEoWHB5cy00ZQp6QF9CJlpTLWV7
fVpNTzZmQzMzRGJfWDtudzJYSit6WmReNCZZUWk0OCo9PkAxZVRkRkRTQV9Wdz5APio4YVhMQUgK
eiliZ31lZHhVaUlCSHVhPHNybmZjcD1LZDtxOWZKZ3NMdkZvTXdVa0VJQlZaY0xsVD0weS03Tk9p
NzhtWjIzfi1OCnpKJlR0ZWZTaGc3e2lGMSRUZkJzQ18+SVFnail7RUUmYmUpTWEhQ0NaZW10MUV2
QFI4Tyh7OD9pIT9HJG5hdyFsXwp6cGV0TGZ0RjFYPTZ+fTIkJlYoMi17TCNuKmUmZUh9NHB0P1Vq
aEBNVCZlViUtMzNOJGZhPm1EdHNmfGsmOVZ8bjQKeiYhc0lPPjgzZCpwe1Y1O1VaWiZ1SXlmRDhW
I2EjSTt8amIoUGZ5PWtwcSU0TGZPNWdNQmdmRWY+VmUyMSY0bHY+Cno4U0F4eFFeQjVuUGJydXhJ
YikkZ3VGZUk8T01NKWhCbiN9LSozPExkck19SG0yPHBiJjI2PnZAZUdDbjc1Vn03Pwp6QWpTd2E7
QGE1KD5JVFYkWE5jfVM7REB3ZSFtM08kKlhTczc2Knt6TSN0WSteKi1+aWArdnAkKzNUVGk8I35I
aCUKenEyZ2Q7cXR1cSFwaV94V2o0cjheWkh2PyFgUzdNdiVnVEcjcHl5RUtXY3NZQGYrY15VbkVT
WHo+Qj07RUxRKiU7CnpXak0zemJ6SkJXYzhSWXcwV1EjKDRSa0hfKGc/c2dMNiR1UkJ3YyFgQFlA
ejhCO0NfTUxMa3pqQFhFdXhMUl4hfgp6M1VAfiVfeFgoflZ7VTY4WGs0VzBFQH07Z2loVzRlV3gq
SUNaKDBwZClNezA7QV9FTTlSVFZJVyYxQ0I3YVI2dXoKelI4QHY2ZU5XSFJFNXEwWDNrOHs5V0Jv
dDlHeTx3R2tiN09nOEg9K1BxMjE2UzI3USlVUCtIJjdLTFV8V1FRO0koCnolQjhaUSlZdmgqb1B9
fWh2Zjk7dE9zSWlMP1FDdCZ3cEx8WVhaYTIqVGVrbCtaQCs0JGBjPjUydXstSGA9WX4+ewp6PVg5
QTNuTzBnSSo2Vi1UeX5ifDZfa2ImKyghbGMzVEpFPzBkWXhHOEYwMng7MHZhMEFFNilrRlQmbDZf
Y0tUdGkKeiQ0IUJLZHpVYEZsMEV6b1l5PnpKVHFiQDBUQmNFLWVsbUYydi12TytFU0NwM1ModGJU
YUIjZGxqYCQrcmBiUnpVCnpzJCpIcmB8eFZzeHA0TCk8PDk+M2JYbzd2VGIpJXBqTyFpeCUxPHYx
OWl1MTAldXBJS19SPj88JVV3I1pjZkluOwp6SCEmRTleU35jQVdtbFdWKCFxSVhAfll9ISl4Mkln
Wkh2ZSNKfFk3PXFYV0g/SnUqOUs+d1ZTT0lPcmxZKGNwaCQKeip2K3RXTnhNOWk7QUBPaCs9ekJq
JT9yXmBTSFd5dnZnTCpMUWtgQFhJUGUwPDNvemNjYUlrTz5BVTNeVEZ6V1NFCnpzdFBreCZEe1lz
PEc0bjxmKFByUnoqeDR0VTw4I28wRylZMzN7NSotTlZEYDRkTDdVaXRxVUx0MVh2ZTk1XlE3UAp6
ZkM9dEM4WmElTW43PH1HR3dNfVg1QDBQV1NRM0MxNnFXPl9id2pmeHkpPylJTE5jfCVkMm14dUBS
eiY3YFhWVmkKej0lTWtYSWRxe3hiKyskNnw1ZkBZUmY8V0c9dj5UcEA1Z09qY1NRRWdxMTJzbk0p
YWdlZTdjeSp3bGtHZzFzUilFCnpeXkwtKkNhR2lBWDZ+Xm4/aGU3REI7bUx4PG52O0xZK09SIXNC
fWBKYVlUR0Z1OWt1dik7ZXl5OGNVS31uNEtlUwp6Tjh8WntyPyg7JHQtYkRDcCZleSMrcjMjcS04
U2tgK3d6YWwjTFMoeiVOTnZKWjEmSExYNG5nPExnKFVDQUNqUSkKemA0N3FpfE1za09McllzPyhz
dn10a3M7KVI/bjVIR2l+UmdMUEF6YD4+PW1OOWNybj5yTDlgMzNCZVdJMExNVHFFCnopQHBNZV5D
S2RFTSsmIVhqfXlvNSs1P0c+RnFia0M1bWMoQjxIaihSYGV3ezxmdSs8c009V1YjMkIoTyhvZ0ZP
Kgp6eUhBJmpvbCp1SlR8YyRNQkA7aGFFPntnfFZtPzNkUWJULVM+XmdZNGRhIyg3VExzIT11TDlU
bnVuTSMqVD9KQ3oKelNBakkrRHNiKUEqSSlzYjxUJjtrIy1MTSo3NC1XTmdYQC03Zmk1NGMwXk8q
dUxIemdMZEwzV09BQVlPQF9gfmx5Ckp4Qy0/OUAheDYzQmFRJDcKCmRlbHRhIDU3Nwp6Y21hREh5
M3Y/YiVKdSVAYDRmM0d5KEFrMmVQQF5LXjQ7QVh5dCtseWI3ZmxhbiNQMz9vPjw3Ylkje0hOQDly
TDsKem9LVlEmXnghcDNqMHpDME96PmA/V1JwYnU4JTcyJmhAOTlNODM7MDlnVnl6cCZIUFJkejcw
Si1pRGhZfm1VOyR5CnpoNmFZPWp3b0UwJkpLc28qPGhVQGR5Y015OGU/PDRrK0p3XyRGZ2FMWVVf
Xm9SWk9tRFJIXjZPJj18MCp2MCt2dAp6NlVZJjdpO0pPWilzaGMxcUBSRnRCd1pKYHlaU2wleVNO
NnF3NCshQlM4dHFycGdTMzFjS1Y0JHU4VFdkTFczTWIKekpwS0ojK05UJjhTYj5tPG9+NX49MFQ/
aGEkVUFSaUQtRSFFLXBIYHxyO3hQKG83Pyo1Tz88K2U5aEJGeilqTkZJCnotTV9oIVZTQ3MyTSNo
ZyNqRlViekdWaCtheHJ1U1lfSExMKzZYUFkyNVZJblo1YzRkTTVYKGorQT1WXzI1U3ReQwp6NVc1
eWdpMlZ8aDVYVUV3NU44cnBzMnBmeDZXMXdfN31zWWNXanRXPmQ3Nj1nX19CNlMqYkg8eClUeDQo
Sn5YbWAKZl56a28mRGd1ZiRGPHQ9KTM3UX1ZRzRCQmgyXn5jZVYoa1MwY1ViZnkKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJj
ZXMvdmlkZW8tcm90YXRpb24tMC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMC5tcDQKaW5kZXggYWU3ZWVm
MTI1YWNkODMyZmZlOWVkYWYwNzE1OTQwOWU0ZmExMTU2MC4uOGY0NzEwMDljZDNiMzMxOWRjZjBm
MmM4OTY5ODgxOTNkNjFkOTg2NCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA5NTEKemNt
Y2FFdXZCMXprfmpsTFQyWDIkMHxVI0MrPzIhOzFfcWBEWV4/d1AmeldxX0VYUWEjSWdEOHNOVllK
VzBtPEZXCnpeNmJWfDF7SD5lIyotZzEje2ZtX1NuTF4lQyljcyRDbUpneCNUUWYtQ0ZXK1AqY3Qp
Wmk3QU4lQ0FOa0BSI0lrUwp6djh7blpOQGhgTkdEeEk2SDhWWTxCbmltTUZHJFVjUHRQdl4lMGRK
U2ZMZ090RD5MJi1ZPmk5fXB2P0goJXNlMT4KekdDISpwcXNlM3wpfGgmYSlRJVBnJkh2WG5oSHxI
aUhUNGB3YmVoNVVDX2pTRG89PDl+YW4xSCkzbEJkQHZobG9iCnpZaSgyTGFGQkp6RXswbk0/ZF9i
clJ6WmhkRHdwWF9KKyY+YT4kfiVFZnFNQlJOOVcoVHFWZHNMVEtTZzlNd2QwZQp6N25xcE1GN21U
IyVCIz5nSWdNWS18S3lhSGJDamt6dXVKWnJgfDtNVigwMGtUeEFWNjEpclZgSHkmXmM3WkRYTTYK
enE3Y14/cF4rQHk9QCopXzRvPngwN08/WTFYMFFsaiFuV0BZPmVLI1J5N0JTRzh8fE4hZEQzfXRt
VVl3cmY2ZG19CnpRaGRKSUxVfXt6KjNHUGJkLWNFNmVtaTVqcTR+PV57an1NP1RWaXdIN1hTTn13
UEliX3ZrS05YbSo8O3lHcmNmMQp6NWpwM3VIUFpDRXtMSigjdDhMJCVkMnFTQlVWTVF+IW8/M1lN
KGZ3RG1zbH12e2p8cGtjTVF5VDk4QG1JNHtUYGUKeis0SzZeVCR1JXhBSENuYW8zej9mcGtac3tS
cl9vNTh1SUA0V0EtaipgeyZnQkdJaW14R3JuN1VBMTd8fGN7JVopCnpXcU97PXZmYUIrTTc4ZDg2
bCZ2R1JJRFZCQmR8Xkg9SzEqVnFPeiRAI3IyYXMtNEFPWXZ0cTJqQjM3IS13ZVZwNQp6bz94PiN8
OTs5QDhYN1ZjLSNWTjBmNjxBY0N2JkUlPXU0bHlafjQtQ1YkWjhiSHcpQ3xUT1JIYUh8QXxQY1V7
eHoKej9ESlczJk9Mb3lZdmVPcT5nJkpxNDhBOWU7dl5SK2BAZ3VlYjVGeFBpfEU9diU4NUhtQik5
IXJ3YHA2IWBDWE9BCnpYU0tld3RlMnwzdFhIJT9ATElfZG1GJVF4VllobnpQYmpJTUlCI2Q1QGdi
KHlHeH5oYCtvJG03X20jQGJpRDB7Qgp6cU9rQXpNMllsUUpHM299bXAqRnpjRml8P2d7PCR2KyRa
OCk9NmUqRWYwOX5wPU9wdE1jR2djeXE3IXVNPU5rKmwKekpsTTg7Rk5mNn5NRnN8RClgPT5galFT
STIjNDt2S3tIRHBjZTZqKiMyeEhMWFFidjE4cTJpTEg5MG1yNGI7VHZjCnpETEAobzc9ZGArPGc8
K09qMHV6OUdNYylZQiRnI1JHb348YntlUT9IbyhgbmYrO3JreTJzOVVAbDl8RFhVcjJRdAp6Qkxp
RTs+JkteKzQqZFBgMTd3Q3NRYmBkb3VLQHdgP0ZKQkBvV1NISCNxdDN0MDVWPnJ4Rms2ckJudCF9
elFOPUAKTk9maFdjQ1ZHWWoxXmBNWmpXeiVQCgpkZWx0YSAxMDAwCnpjbVY8RTB+aD9JNVo0ZnBB
XzQ7YmxPelJtMFZ0RTAxemlEdmxsQkVFMGljczAyMj1xe2xYVjZeODRHaUNWciYyYQp6MEg8P3di
N1RNajAwMDAwMDA5NjEwR0VAXjF8ST17bGtFbUlKfXFIKFY/ek4jenpoSDMwMk9DS3p6Zip8MVpZ
NDIKejAwUkkoMDAwYncjUmAlRTAwbjV2Z1VjV1EwMDB6WGJhSGU2MDAwMDAxUEJOSzFQQk98WDlx
JFcxdHxhazAwOTYxCnowMkZne1Z7WlRlMDAwMDAwMDk2MTExXilwMlY1VURJVzkzVUZhUTdtMnhm
OStXZEh5TEY+UGRGYk5+UFhWRm1eTgp6fDZQJGU5c3d8c1NTPGxDayVsJF9GcDwzPDJRZk1AY3Jo
X0NrPmd3ZUZxMSQ1S0xJcThmQnxuSkZkJW5qWD1pQTMKemE2Sz59WWhgKDlaZ2YyfUZkJURYZDEt
RVJVdXxoX0p1e09+MHhBSkJsWTBWT2Y1MnNrZ2JSRk93IWE8I1JZZ2FjCnomYTB4Z0cpdUdAbHk1
VEs4aElHZ3skPUM1UFI5aDN1PXEoPjU+Oyh2WEM/VE1NXz0jYjQybnNMbk12ZHlGVGNjcQp6NEYm
XiUwNitAbyopI31HM3ZYNDBvQTN9YD01ZSVROSQoP0lqUWpnTztPb0ZxKEtEKjY+az8+fXlKITQx
O0JzSTkKek9TQDZuVFU9Mk9mN34xV2R0djhAaFEkTEJZOXk5VVBFSm0yUXhRPUpSPCNwZGI9Tz9i
UjFOP0kwZFBQNzVFQjNkCnpMSTQxT1U7eWNAdFhrS3Z8Rys8QndrUUF8QGM7bUA2JGsoVjAwMCRh
aHQ5YUNVcnhJSj1wRCkoZkVtb3ZBN2VaZQp6MVo4SFUmPGxxO3c3fip5JkBRQTRwTHNuRXp3THJT
ViY/JWRyMlRWbWV9UEl9K3lBWFQhRCg+QCVvcTBYYiZALV8Kej4/KGlCNXtOTTA9WX5XODJMVUV6
RXJeTSVMaW1PTERiISMhdWVKWD0zQ0N+JHUlOFp4cXMjcm1BVD0xUDBBPVg1Cno0bT1zVj48KVlV
KWlBcE1genxnNUY0UCZWQUhYJXJMflcmfjtpJiljKFNRVn49UH1WZVY7IVItPStsMVNGVmolcwp6
WE5peEBmMnZITFBZdmUoMz1yVW1BK0R4NVElKWg9S20wJWNnMGtDUDEzdDUzXk1Bc3NWfipWT3xL
PyRQUV9SSkIKenBgWHxQcGpJQS1vaH1rQyFyTX5oYF54JEtofX44SFp3c09aQiZFTTRLayZOaTQl
WmEmdiU4I2tAQmNKVkh+PEkrCnpmQysqQzBEIU9uNiRrKFlmemo2R3RYbEpIezZCelQ5MkZFR2Uq
aSY1cTdXaTgkcShtV1RINEpJaVpRPyNrZ1hRaAp6KjRFYjYqWHg3OzBaQ3MzU08oKXxnQ1NtVDM3
PX47Ym9EflRaYEsmdWwqYVkrXzV2NFMlS1BCMm5SSkElaWhaSHsKekJIZTFBSD10a3lXQ2oyajcl
YT1nWWM3JVZNYDBLeVFPY2ZYN3FaTlRjREExc2B+JD5CcCE3ZWNDMCg3YWIrezlUCnpNdHs0I2pD
VEdOO2pWanEtLWY/S0Y5N1B4UGBgYkFIZz0/fkhfeCsmOyhFUTtGVz5uOFY2Pm80Tys4bG8tJWZl
UQpXeWR8VSgoI1h0UmNvQ0xATnFVRnR1RGJCPTM4MXpCCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0
aW9uLTAudnA5Lm1wNCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0wLnZwOS5tcDQKaW5kZXggZWM0OTkwZTU5ZDJm
NzUxZDRlYTJiN2NkN2JmZWJmZDc0MDY4ODJiNS4uYmFlODVjZDMyNDcyYjRiMGJhY2IyNmUzZGVl
ZWQxNWU5ZjBlZmFkMCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzYyCnpjbVY8ODF8
OWszN04tLUNDVnZLJFpEZTZ8Zj1Qb3kwMC1+fF81ZTV9OTJmdXExSGdUYyp1QypMbFpxUzMmK01z
Xwp6eiZFRWI/clZCLXo/X0BEJihydCVfdTEoV3NQYC1PZGR9VkplSykkaDU5YSFoY2ROfmtjdXhB
PWZCPThPVT83OHIKel9oSzhnY3NIQng4eE9md0UmVFh5Xkp8KTkjcVIzd1ZFTCFgb2lvQU8yPUAp
KiZWVG8/Q3YkTCt1RzJhRzttO1NwCnolKGwpJDhWM1F5ZjNvdzZnaVZSVD1mbURYRWsmbkM0K2lV
dSkxTzNsSTg+NUZPM2AxZGtgMVlZdHhgcXRZRTReYQp6cn1rZ3pSO0h1VzhkZVJHPDBpaz5RaFhW
Plo7Q0p7TG0yTHtoPlMoQikmWUg3dHlGbzUralZ4fkVkKythRnFlbGwKelVZalBiWGFfOFF1WVpk
Zjd3c25sJWtJRV81dFlVdCkoaEhiRT5iTWZfck1uPnFZJT10YXhfSzt6aWYtVW9Eakx3CnoyfCtL
K2x5O3Z7a0JKQk5TPzdWKE45KEx6dnxlWThQeX54andtdUMkTXx6P2txPW0/KV94UVotPCp7USVl
ckwqYQp6V3hQfWFtWERYWTlTYWwjRDJlUjFBfVdpPDk8PFN9TntgV0lPQ2EqTl4/JktwP1hMNWFI
KHFmclBOWSZWXjhfY2oKeno/cHlYVlNnWUxrfU4qbVY5NkNAJDg+b2k/JTFgP2RQOzRtIWBHTHF5
WipxbClIKXpAN3l0ajA4UGU1IVRAe2RRCnpqaFAoVSp8YiF5TXlMaX5sMH03KCV4djNPSkQwTEtx
OD5PKE5PUTA+UyZwT2tkaGFXNkU1PT90VipoU0VIeTl2MQp6IT1KRigmd3BQPkx9UCpqI1k8d3wr
Z2kyVCRqI05icTlyUlZRakZZWSEtNEktdjJiM0YhcWRmez99Y1NoQilMfFkKemRQUlRZPkZnelVl
dmtRTHN3UHJJPUI7VzJiaS1CS2d9fGk5Rl43e1FYbD51Zy0rYU5ASnBHdEdBKSUtZD1ZWW5DCnpS
PkIlenlaMnlldU1RX0FgaDg9KENTOD0jS1Q0bVlKbn5UV259Mz5iJlUodnw5WUQ2JDBBJCYtd35k
akJlPTQ5awp6OU1HOXZHKlRKSk1Be1ZUVzE3UEgzLT1pfFM5U2JwX0E2cVNWKkM4RkQ2aH5fZmYo
YkhFSkVxfXppfmF1eU89I0gKejNwY202KCpBcVpJP0RUWl4tdEd8OWBLYXBsRDx0IyEhSnQjaUhP
SEdIZH5tcEs4e1ZeOzxeSFRBJXI1UXdaWjhQCnp8OT5ANTF2TzREcUA5YiNlO013cmB0fjdtOH49
cz1GRm58fV58flZPWWIqQ1MwSWoye2xzSj52NTM7YWhwa3V1Tgp6ZntCfjFeNUlCVGAhOzVjdHIr
Nko3S0p5IyQhMSQpRiN3ck49P3ZNVG5vWkhiaHBhaiNRVzZLSV9YTlE2aERga18KemdBbk1vemVg
Q2liWCt4LShtPnJoKWVaOVkteHF2UDVxflNveGlSeHpvXyp0UUh9cE94ZzRlb04/WEMlfF47SGpg
CnpTX3o5Vj0qcylDdWQrIS1EaUVvQF5Sbl9FTzIhMypEd2s5ekxEcWk7dCkoPjdTN2NTbmBwQWNJ
SFh3OTRHMW1pbQp6Z2ZmSWkzUWFXS0AzYVU7OGV+UzN5N196M3FSNiYzZDFLRTM+blQyZjAqfmp9
Pjl2fExEaD1iVVg/Q01eTlBpXmIKemdvJEAhU0Y1PDFUaEliN15QT3wrdCt0Iz9NWDVJckZpO3Up
eWEjWWA0SCNAQ0dHWlo+USFUbGlyQz5RTCtsTFd1CnpkaTgjPWg3UmxrSDY4QjxJekgtbUpSYHto
M3lGcnwqRmNseCZSXlZJOEI3NSpzRF5JfWtlTUhmYnhhTmZoR2c3YAp6JT1NYE0qVE07THVDUldv
N2JqLSVpNWRventEMENnZkY7QUlnTldAaWJXLUU/QCYwRXhfVys4cT1Sa295UW19Xz4Kel5LdzAl
Kko7UHtWTU93ZWNBUCk7UnFQbXhFbFoxQ3BkayNTYEIrcUR6M1gqUShzfjVJMldBRGFrMVAlOz1A
Yk9eCno2ZEkxdWwyazhGTFROTiRAelhjREx6UWRLSnRlIURTfUB0NGlBJnghXyhAaHNOKX1lUVV6
eF45ZDRGRkojPV9hdgp6SHFaPz43MSNqOUstXlBeVG1UOEdHTTg2JmMpb0xRenhpdXRoMG96JU9T
e3swLSZaYmJBNiN3TW42SUBxcFJWVCYKent8bUxSe1dQOS09N0RaUVdLSnxTJm1oJU0+SGRabXUq
Tl41V2I3SU57bFV7MWt6SW1yQzRRRUh4JW9hamNhZVNBCnpDX2VhIzI9IzRpIXotWCkwciErdypu
ZnZ9cnAxc316JU5ZeWhMWXdgN2trcSQ+SipvPDgxJHlJUlN9RGx0MXNybgp6JnZvTyVqQkYlK3ZQ
QDkqeWF8NzB5NUFFO1Z8VVNQeF5KUG8pTEFsWlRJbGBzdStacnhDbSRUO21LSk9pQEFuJXgKekdo
QlA+ZG1AVk50RjRmWnBNRWs5SSZ+PFpudU53U09YIWw7Pyo5dTAkUklZKk1pU1YjUGsoRV5TXkYy
czV5ZyVVCno1flZUO1hZZl9LZGV6S1oqd2xKeUR9SEVPO3Jham55bTN3REdFXj94YGBfVVA5QyFY
NXhaMW1NNHdoRnVRemdwKgp6P3RJP0I+LThJYTUoSGpqeTY2fCtmbXJuNzVJQWhSS25nWEImMFZN
NUU3ZF4rLXU1TnFsWDI2bGxNYEhFZkNZTEoKemdFKjZSWXcpfVpUZihWKiomYXo0LUg3c1ZVWVAx
SFMzYlA/RV9fTiFGfCQqOGdRamdfPiZ+NjdsWFZFejBicjklCnozSEFZQ2xTMndhQXAhc1owMDAw
QVdAJSs/MFJSOTEwMkU/JGEmIU95MDAwMDU5YmY8ajlibDhFM1BKKH5qRmFtTQpFZGMjRiZmQipt
aAoKZGVsdGEgMjIyOQp6Y21WO20ydWs7LTZYaDA9Q1Z2UTBaRGU2fGY9UG95QVA0WFZfNWU1fTky
ZnVxMWZZTDYtKCVrTS1ha2ZxdVhuVX0KenNgeXs+K3FjKHhrOUdmY00peGNEXytQNUAtc0thX19y
N2BsRDQ5R2JmTnFXZmRBSl8+LTRQP01eLXBRY29YT3hECnooe3dyQV58Xm9tZV5KTiV4OTFGIzlg
NlFjUWUpfjNKLT1xKEBzZ1FERzxpOyNjWWtMcjhoJUo7eHB6ZnZMbDBrPAp6TihVMntEVkN5Vl9R
OUFLWElyMkQjNTl2UWpNb21ePGliYWZ8TnFIbnNwcGRXd01SO1IqRTQ5akNeXnQ4fE5OajwKelN8
KSRhNmJhJnJQeTdiVmA4RUFVbUxwYFJTJXpBXnlnciVPTXM4dkoxcipBNSFLQ2BET0QkPnI3fjU4
eUdNNV5aCnpZeWpOb1AjNUxoOSlENigxSVJfdURjdn1vVUd4dlVuOEtQfSNxVG40KGdBJEM+fTAj
TWYqeGh1QUBrN29aXnRXQgp6ZTM7RThLRE1QSjYofSR9JjZfVT1PSlRJJSpYfWI3UlNaemFDP3V0
ZDtCUkQ2KmVVPmtfTHBEPjQ0MENUQUQ1cWkKeihjWXp7KXBWYi1NNikjT1JkQGItUWtFVjZncW5P
NGVGWiVwNjAwJGdTJHtKY3pnNWxoVSFWb3RNYUFqZHJKI0xOCnpmYWVuUEFLSmxVQGJwZTc9PUhE
aihER29yRHA1cl4yKjt+Vytedj9ISUVPNE9jWmZDbGNqS3xkZyEzIXpMWFJuNwp6WjNwQX10QFlw
eWs9X2o3eUtwZ3A4Syg7SyhAe18/MVNAPUQjKGF9ZDsldUReOTtSekxIPiU2SVNsYCsmdHhtI14K
ejZoSGc/NH1UdWordzxgMGg+O1hfKTspezAyb2opSyVyKmI/ZHg0a3VYWmh1RTh2QmZTKX58S2FE
JVJDSyNFYjZGCno3JW5IQCEwPGJ6TEtpVFJmTUM1Y2hCTGZwaTFkaDAmbGokaDRtOzNVKGZ0UV5l
LXFoSnd1UkdXTTtrYWZ5QUpaaQp6dWppVWZ4K29EMzQ3KVlrLTlNUmgpJF5aP190bTdJfEs2VGh1
enk1JVgpfVg7dmRTMFdkNFNHQ2B5IUFVKUpsa0YKeiR3Qnk4emUzelBmQmRJTXohOSRuYjxARThU
WlFuJTdBczA7JUdDeTA/UzFrSDR6dEVlYEclTUBjJExNb2kkUEUjCno1KSM2c25WeHVOSWc4YjQm
PT50WDdoQWomRW83Q1dFb0xtMTVZM3dXIyh6JUQpZU93IT9QV3VZQl9XSV9GUU0kbAp6T01tazE3
UlhBXiFHRiU4Q2VRXkhfIXV+WXp0V2l2aC1RNSV1V359Kl99fjN7LX5lUTBgTGRjdllQSyNCOTY4
cD4KejRIOGwjXkNpMklfUDA8YFQrUU5JcT9jYEhHQlp5eHlaSjJ1aW1rNDxaXzAweFhKaH1abCtU
NiVVZXtkR2JyIUBmCnozYjUoWVU8eT17OXI5JkA8VGBVditWM1M5XnJDRG83a2BsRGooJTYjVXRw
QDYjb3xocmdLYFU2SU12SjN5IV4yPgp6I3B3PSZ0Q2k4c09HLURPSTcha31CSiUmKWE+eDtCYDNT
R2oxO1FEMFpoXmNgVmVQJiY4QHN+RD5OQmxOPmtBY3kKenBEJDVCKj13bFFZOVZjSGdYUVd3eD9i
QU0ocUQ9NGEmcitlWmZfNTk4cGJaK21ua19lO3NEWXo3Q2dCQDdrP34qCnpGZEpaYGBRYF5YNy0y
ZDgxcD8lZzRGemBNUnNFNUVCIzcpOSQrNjIlRHt0NnFuJDkhITxIK1J2SzNIcVQzZy01NQp6YUcm
WCtDNlVGbTlXOSM7Q2R6SisycXs0QjxFLSUwN3lvelNCe1drTE9IfiZUZkR1cylrWCoqV2JuNVEt
aihjVV8KemIlbThqNDw4fEdkJUNebWduP2pDc3tGSzNaLTNWfGBfbX5yQDlqRGx3dEBsSihhS3km
KiliWW5ZZkgzcTJVPEl7Cnp0PUVaM2hwTzdUUTNJXjM4QWRSSERTfis7QjRMXkMzUD10P2wxJVFF
S3tFUnZSVlAqLTB8cUkkZE51TS1NdzlnSwp6aDh9Tl5qO3d5Nl9RfiVXSF5eczxQVUt3Zj0pRD9G
aFJhZDtEUn0xZllxPChKQytyJTQpZSV3WmplbXFgdXBga2MKeko7R3dubElrS01nOylLZDI0Q3po
WX4+YnxlfEAtI2FhJWNnPyF+Q0ExOEwtKiomQHFneip4U31KTHJ6aiMrYzFCCnpAQmdRR01+RX02
eTdUaXtZOHNLYiF5JGluI2hoRnlVSTFRVGp5TCl2Ql9IZihKUz56MS1oTWtkZXYlNl5EcWBFZwp6
dD9mc2JtWikpaU14ZUltd09fMVpufTEybXYmMlJwQEsxeUZRfk1jZWRPKW1qMFlIOXREWkl0Uzhp
cEpmdVU8U3gKenNBP1VlZiZOY19jXkhDKilPNnB9LUleP2FsMkZBWFpGUSZpcWIyRT45PW4mdV5R
MWFIRyhQZGlmcCN+Ny1jUDBlCnpObklGdGl8aUFyTCN9d0Y/MFR4V0o3QjI2bUlAdGk3ZDdzWmBu
d2wtMnY4KCZydkpxXmkrPnohYGN1dyRnM2dOWgp6a3chRH5SXz12NXBES0N+QHBlbF5xYHUzdzB3
Zz8oVmpiZ0BqY1RQUW9HQlgqR3MyJjJeVz15WjhzbTJtWUhRUDgKem0qdy12Wk9hbnZpc18jN0JN
ezlNdypgR3lAXihRMig3KX0/N04/NHtyIXUqY3s2ZVk1WFYzcS1jT2JSZkpUOD4rCnpOfVArVysq
QW1La0ZGO0o2QFFOPGNgXiEkaHNqTnlGKiYraT8rPCF0Y2xBS0o2TEl+ITZRY34yZVFmQ3YpSk1B
Mgp6OHQjVWpQR2RMeFIpQzxBKyk7ST43P0pNazt7e2Q+VTVBfUR1PHoraTJQSDUrZVllQH4pI2ZN
O15uRCN7JDtAQk8KemwjTz1oanNzOHM2UyVSSU5AaEE9MG4wWTJ7U01McCozdSMzXiRzTENkUDs1
fk0xTDhKMzEmYHAhWlc8NCEyZytRCnpgJTRxQnVLKWwwUU0lSisjXl9SM3c1Ml9Sb2gkSVRuMUE5
aG55XkxOSGk1REBqajRZLWx0YURuZll1aCMpTmxYJgp6Kmlaa0YyKFpoWnRII0lXU0hWfENQSDZh
KjljWFh4QzU4JEgmcEA8XjM1ND4oZG4kJkMlS0c8JG18bEprM2NjdUMKeldeN0FBa3Q4PD1ILUJk
azU7XytBX2R1cHJ4UHw0V005SkpnISQoRXIqY0tLc21GbmcpS09UTzh5USp1RyRofmopCnpPJHlO
TWBER3s5eiFnT2N0dzl0Vm8xSkR5R3U1Q3RqMntpI2tXKUFufEg9UVV5JjRDezdqKVFTZCQ9KlR7
aT9xdAp6allfKGFPdGI3eWtSRTh1M2A4OyV0XntCZG1wMUtfTTdjMVl0K3ExTlZfKVUzbFReK3ZD
Ujd2eUtRclFUKmJ9QWAKej00X28oMmxNSlNyeFJmditAOF87aEs4TE1TSyshSjI8fDBKRUJxfUUt
QXQrUSR4SEczbGRTJGFac0hXMXJGQn1CCno7KXRqI1NqYF98UndRc09qeXdEY1J+ezIoNmVjZnhx
TGE0PCkmWVElanRCTSFmQjtBVTAwMm1uVUkhUEdBT3tQUgp6QU97RE52PE1VLTFwb2o1MDAwVlJY
PVE4eTAwMDAwNms+RjhiTn5QVjAwMEpnJjtTTmAoMzl5MUxJTWElbFB3OCkKRGh5aEh3CgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVz
b3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTE4MC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMTgwLm1wNAppbmRl
eCA1YTRkNmU1NGZmNDk5MTQ2MzkwYzk5OTYyZmRhOGRkZmVkMTdiOGMzLi43YzVmZThlYTEzYTYy
NTMyYTFlNTRkYzBkNjI1OWZkNmRmODI4YTJkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRh
IDc4NAp6Y21WK3IxTW1GMDVUWCF9RGh+d3BaRGU2fDAwMDdAMV9sNUJvUksqbTBXcHpoRWRlbytt
SDdjUHZ5VEIrMGU/a2gKemg9YyhEeyk4WEVwWSYxWE5GbU1CIShFK0JaaDQxSXdVb1I5XiR7RWBt
JiQ0IyR7MmNoMSN3bU91NEZPdit1QTh+CnpnQENnKEU/YlVCV0YzMj1QWlIrR2s/em94VCY9eDJZ
S0NleCtZZlZpRFJ+VD1jKEYtRkUrUnQhKCVOOTw/ZFQ1dgp6ZiRvdHkpN3IrfCh7XlpWeylOOUFo
WXhjUCYzX1NkPWIqKzdrPl88OHtzR3J3ejxhSEBne3Q2WU5KI0tTKFl2cTIKek4oYHZrcSlOSzZi
dkApNiY0R2xTLXpKdUReR1Q7Xmp8PiloWE4/JVVHcz1HflNyNy1RbHtRT00taE0ydCZwc1ZHCnpK
TTZpYSUmKjBtI3JzQ1RXZ2V2Ukx1RG9LU3h0e1p1YWUoSC09MG8rWXt9VWFxTGN4amVoSEBhMSVE
Jmc1dH1Zewp6TnFyVF9IQX0xV2YyQXBNO0VgOG98TFdtZ3JRR0pQcXF3aV8+QEteV3VNYm9MYH5K
JURMOCF0R2A0RU50O0JzXmwKek5jM2RMMTxOR21wNyQpJD91djZYQG8lRkJfe1JleHNxV2I0NCpL
ZlVOWkBvfm9sZyFoK3JBOGt5TWQ2TyZ4TXRWCnpocl9vSj5SfTt4ZjBuS3xqbkRyV2ArdzNYPjt0
N1M3UkE+RjdyRV5HPSRmdG8+Rk4pIzljVklDKmhIbGsjRXZlcQp6dldEQDhpRzs+cmpCeDRtS3By
c0JzbEBlJFVMa15gRDRPczdWPiQoP0dfMW42dDEpe1l1dD1OY0BeVyRFQkBafmgKejBEZ05xeSkr
cCtRRVZ2fWNufEE1WUBlPiVXVz42T1cpOWNrUVF9WCQoKE93JE15X2JtT0hQSyY8OVlZUTZaMUR1
CnpIPClDbGg2bCRCKyV7fEc/bjtGKVA0UGlFYlQhQTZPfVIhWXtHaT9taVlBcXhvJkY5dTBJbkZv
Xjx1dUpjKFQ8PQp6VGEjenolKGt0JE1oJT5BMDAwOThsVDhKNDBXWHVtMXppRFBsT0Z+dDBqSEJt
MjI9cjNsYiF9WDlzdj9fYllnNCgKejAwNkZZYmFQfD8wMDAwMDAwMDMxMDA1cTBjNElNPDkwd1Qj
ZkI7flY3NiZ+JjNqZzUlN2lWTXUzYXJeZTRXUiU0Cnowe3tVNDAwUklyNC16R28wUlJTUT4qTEVK
ITJTNjYwMDAwMDZrPkY4Yk5+UFYwMDBCb0M7JFc1RDNnMiNMSU1RcwpPbGZWYWIxfilWPUYpJVFn
X0dCUmQKCmRlbHRhIDgwOAp6Y21WK0AxSzBlYjVWe2JNRGh+eEFaRGU2fDAwMDg3MV9sNUJ0QzJZ
IzVIS0tlR2NZa1JPKDBgcldqU0Z2R20lJj0KejBXZ3Q8YDJqU3VmQnt6bGVffn5iZ2FCezt5PVVm
RVJKa0t5JWd0JnU7b31JfXxEJFg0Q2NKIXJPYjNoMWQxODUqCnpgI1Z3PnshZm5JSj5mUz1CWF9a
PTJGcUNudU84YURDTF5TU0E1aiNHSXBBPVotWml2Kmp3MXRaUUVUfUdLUlFqIwp6TnFgQE8zNyhi
Nno3SkVsakZ9dSRhZlR0cnp3dy0rSFM3KDRCVEY3KXtxMEM+ZTt9NiUqP05nUDtLNn1qNn40dkMK
ekd2ezBZdm54Kz81UlYqRWtfODQjKTRJIS03TGNIMEZ3V3E7R2FOSVUyVmdpYGFoMm48fEVWYlI1
ZFl4cWtqfVhtCnpoKyZAK3FRZ3MwJlhUNFV5MU5wVUJCYGNAdCpKNDx2KDdLcWJsP1VVOVhZfFow
QmxmPmp0WmNOQT5tNDIxe18/Tgp6Ri1nIV5aa08jS2ZBcTBsQiRSMDYjU3dBVntldEhefEExTH1q
NXJEUWBSb3RuQHkzSGBTQzRKZ3V5NE81VEVZT0YKenc+eXlLKEJhQnJLa1lLdDdFeyEyRWMpT25j
RTVAXm0mTkBzR0N+aGY5SzhAUkZubSRNSShjOGV6JiVhKzAmWE8hCnp0WTg3WWBvS2JqYlhLKip3
e19neTRQZXZxdGtOPkctTV4jZVltZHhWZTxHbjJacWxOUkxJMTZOY0NDTEdqZDxHKgp6Pmc9MlFY
fEI3VWtFNEhJZ31+SX0/c3x+TzQ3djsxeHxHP2JUUCteRzJsR1lqISpnMFBJZHpLSSZAKF4+cHA7
NDQKem04QnR6VE9QUmRRcVNVNVBTc2ZFb1gmRiNfWlomdnAjY2I+cVNTZHFMfj5TSF9QYkJ+ZDtE
clA+TnZiWE5LIzZ+Cno/O09MfllrJnk+Yjt5Pn1IUVhiODdLWT5fV1J3RTV3a09fPWRieUNId3lj
M0BPYiFpZGsqRXpgdDtNKTZHeTJJKAp6SEpLUzVKRjRzb3pnRnw4cV9vUGJhTGI9VGZmfFhzUmJv
OyE9anc0VCZBQ150JkojNGBwezc0Vll2NWtrbyZUaDMKelVodSNGMDAwODxsT1k5ajBVTUsqMXpp
RHZsayl7QjBoNXkqMjI9cSlsWDM8PTlzdkd4YllnNCgwMDVlRWJhUHw/CnowMDAwMDAwMDMxMDA0
PyVjNElNPEBDRiRKZkI9QSM+SU9ZMjM7KkUmN2lWTXUzI3syZjFaWTQyMDBSSSgwMDBidwptI1Jf
R0IwUlJTUT4qTEVKITJTNjYwRnpffkxJTVJEbGMpIUQxfmZHO0YpJVFnUSpsV0UKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJj
ZXMvdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQK
aW5kZXggOWVlODYwOGIzNmNiNDQ3YWYzY2FmNDdhMDc1YjRmMWJiMTdmYmQ4ZC4uNmJiNTdkNTYy
NjRjN2Y5NTY0MmRkNzYyZjU1YzFiYWM5YjcwZDFkZSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSAxNzMzCnpjbVY7JDIwSG9mN00mQjJDVnZLc1pEZTZ8Zj1Qb3kwMC1+fF81ZTV9OTJmdXEx
QXU9dy07M1l4P31vZ2hJQSFVKQp6OU5PRl9eemFOSit9OEJuM0NYK3NfeDVfY1FTUXpyX2goYEp6
ZnRiP2lycWFrKlpQbDAwMDMlenxCV2NtZExgS3kKemtfMjVaTHstNSYqMH4lU0RQWTc7N30kfT0l
N096THJ0Q2k9RC1ENT1YalJlaXE8X0JZQSVJeVVJeFUwJmNSfCpyCnpBeH1DIzVmYXo7JVU7ZCgt
RlprKmxlNHZsV1hjJDZiVjdJc0pkbD9aRzQtJDs4VjBoNiVpc18wNHheV3goQG93Nwp6KlUtJCM1
Tns4SHRGYyFLUU92Yj9iKipXcGkjTVElcGNQRS00dz9VN21RQ35JLXthdWlCYnE8YTxAVDtLeV5J
P0cKentwTjJeNDEjKjhNU29EY09gUztzSDgoMlgxZC0mezkpJnxHWkszam1qfTZidCNrNzdVZX52
fkBCalk+ITdvVTM9CnpfWHA3MFdLVnBUZSVUZ3Ehb3A3K2dAZzJgNmNNO1Z5S3B+Xis8eSNFPVRe
e3xgKm1uQT9MTmJpbjc0T1BqQ0BsYwp6YUNnXkMlK2NjblMtODZTX3NXZHtYdjdmKSN5SUl3K2ZB
OFBZRTwzZTR1MXl3XyhMT2lNUWd0YE84elh+VW5YWHUKem1iMkRfSnlURHkxeEh4OWIkT0tkckN0
IT85WUx2Ql48cX1xWHt8YVgyO252Zm1aKS1CMkJGQ3VYYUErVTE9LTRrCnpiX1hpfWUwOWp9WlAp
O3xuMzY+KEV9ajFBNS1PRXVgOWJTcj85MjV6Zz5UKllKKHFrUVMwRzxTYUVTRTRlfE02Nwp6QTFt
QWRRLTNuZlR8YjMrXnY4IXpgbT5EMnZYLWFmejt+SUJKXzclYiZGfXdee1dJfkNvfnE8Yj11OEJH
U1lTOHQKemNnQXM7a21wMCUwTFNNYlJxVG05O05yO0UtYEl5UiE5X2ZVdXNPNWFWayRie25ZVnNN
JStwRT8mYlRERXt6MT9xCnotV2AqLUc+WkphWUVvfkA7bTAtOSFXc0g2UTBFdSZtOFFWJSV6dihg
MVY1R0Rpdit7PVNAcCFTeV9aTyRZYjBZMQp6ckZ5dVpYMSNOMCMkej5oQU9QWDhZZHFTITJ9Kysq
YXZzZ0UkKnw8IV9TaVdUbVFYQ2UkKWkmPj1OPk5AbnRTYmEKeiVOcTRfQ0wtUVoqQVU+dWdodDQq
bW16Tl5UTXZqN2t5VTs1T1M0amY8c1prMFFuJmhNRUJaKCtpJGV9dWQtak52CnolNn07aGopdWt5
UTE/N2FkfT8lPCVCWE1iVnZud2s7ek4xMT9IPnhSdHItZ1otM0dWVW1UOzI2VjBSRk5RNCVlUwp6
clNKKGlvfTZiQEc2SlctUWpNUXhMU3V6VzB6SnQkcUU2PSZ3UyNLZmRJYSVaPjxzdX1qayM1eVBF
PThGY1R8bUIKemJeZWlDdGQ7Y2RAbS1gdDd8VU1zMlRoeHJOcUZedGFldD1GYGM5U0dFbDdYPEI2
WG5PJCl0amswfno9V3J0O3kzCnpCNzFGbilvSzFQNlRNVClGOTBzdioxQytqR0dndGtyTVZCKHps
QkB5ISVWXk1hZHU7RztnSnQ7MH0+flJYZGY/Pgp6SHV+RihRU2VCPEZwLTZwWnBQJXNfNShKfCs/
PzJMdGBGelVJK3ljbGFnTFpRMjB0JE80X20jfkR6LTVlPndsU2UKek1FPWBmNU5iMGA9bEU2akl0
Nzt0PFR9V1pBXmd6X0x1RnkkREZOfDEmbzMyMUxmfjF1JlNAPkMlfC0jNUtoQldaCnpjWGJKTkBI
Snp7R04tViR0Um8+b1c8KFhLQFN6PX1OK34zPTIpR2RUTjBkR3NwfVdDPHBAekw3KSFCP2ckU2E5
KQp6SXE4aVFkUTx6Qy0/aHBZQmdkXyhQR2otYj9TSksmX0duSTQyc3UhcFdKdjU7JT54b3g+YFAj
TlFhRF84MmBaOHoKekZeSC0+Oz9gWWRIeyNARTdySjJIV2NVdlRfQDd0RmlQVm9GR0w5eVJIanpF
YjtTNTJqenlrVDFgeUw1S2BBYjVpCnooWTJ0ZGt+TT9lMmg9JU53M2puKE5HZW5IS3Mqd0QrYDhq
KztgbVVWOGNFVU17WERWIUAmP3JieHFxT0I3andzdQp6TjNFViV4R1creGIjPGQlQk1Jb0MrbVZh
NCQocitXUV40Y2BPR3U8ckQkST8pTFgpd2cyR3FlPHlXWj5aWDk7VkcKel5+TE5FcGRkNXZ5bUU+
Ujd0Yj52ZlF4K2cwX2RLO0o5NHhWVSo9YTxAcmBlRytnKT9Ya2AyKDtaI0Y5KiY4YUszCno1O083
PUBXa1Q1Njh7KisrdXwmQkhoO2kjIU15SlVQQiUpO0ZoeE0yO3xGdEFxVT93V3JJZ0AxJD1EWGdi
aHt7Mgp6ekZlSTIlSUwkNGVAWHkjWjFVV0RWMFliJVJoZFNBPitmMm5BbFQyUnJ1elUoe3JYb25F
UV9PU2AqaVBiZXF8TGUKenNAPUUxbnZDaikwTipvUSZVMXEtWTdMeUAxM0A5cTY8WiZ8Vk5wRCVU
U0t1RW9nIUk2RVByPnhrQFlZJURoa2FnCnopMjdvd2lUSzVyVFd2Pm1JUWpGSjhASy1Aak83RjNa
bTImO1V6QmIqSDk+RC0rSGBfMnZWRT9DeTA/KGtiI2p6YQp6MXVXOFRQNFZuUEdXZn1ndXYkWW12
czV8PT5fcT9gVndhe2RsSjh5e1hFPTNnbSF1RjhyOVY8bylMMHludUxVfVMKemJpfUMhN1FORmFn
VykwaUw9fSRDcngoWFl8SCVBSkAwb3R1ezJvLW1HUE9YSGUrYm45VjNTbnxfNW9tJU9iU0IqCmIw
K1d5bTgzelJ3a05eYzBrZHY/cUxJTVZZbGteSURfUm45SgoKZGVsdGEgMjIwMQp6Y21WO0syeGot
NDZZZHN9Q1Z2UTlaRGU2fGY9UG95QVA0WFZfNWU1fTkyZnVxMWg5V00mK0NvUm99PUNpTXRaTSMK
enVoRlZLSEBpTH5RK2g4RSEjemoyTURsczxvSWg0fDl2UUAyPnoyPXIqZWB6ci0mPjwwYD4kISpj
ZlIhOTZCflZSCnpQMD15OD8pdSFvMEN9cSl7RWhgYnxLUylJNGo9ISFxNjBtc3BOPHs+JURJQjll
dCV7RW0lPGYwSnF8QXYkTnZVKAp6Xm1UIUBRJFBkRUpSSTRSbm9RIy1fa0h7NSY5ekI2ZE5AU1p1
X3lefSY0UFA0WG1BKEVrMWtJVFE7ayNObyg3dz0KelViVHRDKlg3TiRWK007MG9NeX5fZ2tfXn5F
JTJ8TzhxMSpWTGZBMzAjPGFDZSE/OypWYih1Xn1RNGlheDtBQyM/CnpNKmdgKzR2RHpuUGspQFJs
Sm41d0xEKE52dHQqUWdCbFFWNHErQmJNdU1YczVeSHV1e29MJVAzcl9eZkEmfjhWUgp6cll0My1N
KSojU3xHcyY0Y0BwbVgpPG9CUClgQGBJN0dvTl5JcWw/ZWJTOCtjZjdDYzg1elp4OGZvRGN1Pksl
MzgKemJBcFN+b24rZXEwOGdaWHNJITwwRlhab0h2ZjxDciU0aCVtJFY2M3JldCZUODcxaDtIPylR
Qmk5KClFbT8ze2RSCnprUj9qez1sPmdoZXw3NHxxWDZUVExtN2xZZlRXeE14bXArWl4+OCUpNURK
KXBaKXAoI3FhPT9NRUpQXjN8MWtSOAp6enlKMkQ2TXNxeCNzQiNpWSQ7fFlJUCgpVyZ4JkhLOXlF
I1RgM3FOfmBPbWxyMmREPn5UbjhhXzJsWkdGTTxFLUsKemVfI0YwLUc3Y3RtaWVkN0ZabSlnWn5X
OGtTYnY+KSohfnp4bUNUVSF7XyE9TFNzNmZfJlBVemZYbXpMR3xONiFLCnpuT1NLV2w5TVgoRH1O
Z0g/b0w2NkV6TWY/ZnFCfEFzODYkQ04tPURlajNea2I3UU4mKlkyTGxpVnNGckM+ZXpfZgp6ST58
fU0mYE5GU3hGNH4tUno2PD54RjRXPjgtITFWT0VWcTVgK3NHOS05RjZJPkNnUjQhTTA8MnhvPHti
bVprQlkKek8jdkBBVHhUKFRFOXN5QVhNPXo4Z0R1YmZzUWAjJlE7eVhzanFDX3I0fFRgPyUkbUxj
KUBzayExTENgKSo2XjVHCnooTHw9U0Q3Z1dHJEcoSEVLcjkzRiFDQSs8dmtYJk56eD9QfXl1Ml5E
dUJqYWlgQnhEWjs0QEtiNjV3JSo0Tjx4Qwp6Q3gyQnVGVXZRN2cyYXhOKHUyd2RSaSNKVEFBNTJD
YDJ6UHhWNik2QW05WTlNby04YHd6X1g9cT5SeDteVCooYjYKenpuWWFofE5aciFmbWt3ezByYEpD
P19XfXQ+VlNMPWQzfW9GVVpDV2F4NWpVQ2k3JFRWaDY8XjJZNkJXblhlPVV1Cnp1OCEzPGNOK0xH
JUY3aj0hejVWMWJQaFokazApOGNTYnNTV2A2Ul5jYik5YVEmPlpeeGNVY151PCt8fnsjck5vKAp6
SnJCKipKc1BlWnpjfE1jOUdUK0A5XnBYbnk1aTk1eXIrQUdpeVhyaykla3V9R0dNTUtpVmtfeUN3
NiV0Njk0dW8KejckakMydig8Z2N6dUxAZ3cqeTF2YDs8U3xiSSlyfVhuN3I8bnclNk15NDxtJVMm
JUslRmt2UTQydzUpQER0fCtHCnolSmE/eFlwU2xffDhxc1YySnwhe1VedzlYeXZhPENCTk0qfDkq
VSt6UF88I0A0cFQ0SSE5Kj9aekhUQDJvPjwwfAp6YG1Qb0dFVDYyIyFnajRFPmslI00tRnx8Nj9F
c05WRUZEOSpLT1Job2hiLV5VYGBeUjU1UWR7NU9zQFVIaHQ1SUwKeklKcDJWQjZUXiNUcmo3NCNq
dEg5Qm15STtFUHBKdmg/ZlQqSUBLKTM0eCtnNzFVTVRBLVhJUWQtQ0p4Tk1DaX42CnpGPSNDeGtR
KFloeHJqI0tLfChxYkJGU218ZkJ6JjIqOXU7O3F5TSotVipIUyM9ZnEhO0c1PytQaFpDUmZnN2BE
Ugp6SUNlcnV5KzZyRnBSdFQpUiZHVG4pQilLdmxpek8jI2I1YXU2YWVvaEFSdGJyRVM/QkpVT2E5
YnU3NlVZVH1qOzMKenJZRGR9ez98bVN0fDs5Y2ojcjRQeEB3YCVgJU5+Vklzdjk/Rm8kQz5FOTle
bT1aUGMtUFhWQXEoU1Y+T0w0SXV1Cnpjd0UlQ3B3P30hcjx8KHllVjQyfE8zKXlhQHMxNUY7PShm
U0dLa3RWdVFRJTwjaFE+Q3JTeCkpSH4rKlgtSmIlfAp6KDJ1UGk9TGt4IU8yTj5tMWE+PFB4cXNZ
OUwhZD5ZbCE7RDQ4ZjhMa1ZUUShRMnoxbj90PzwrOFVZelF1Png7MFEKel9MTFNlI3ZBfGN1ZiFA
IVdNIX1ZTlUkT0l6aCs7PFB5VDM9an4wITZ1S20xb3FlbTJ0QWZXeU1xa05Idnc9dyl3CnpsYG8r
UWlkTnQhcGhvZ3MjZWw8cSY+UlZBan5WO2E2TUx+Mm0zXiZnYlUkWWVJfkVeKnw5X0ZAdmIkVzVz
T2pQOwp6KDh2fU55SnBhKWFqJntkIV9PZFplezRzNUM4QiRHUHQqdzV1WXpWO2Y0eiEyZU5MK2VX
PDlSdFFSbT5peV55IXsKekVUOHpeelNhN3grSklPNVRJVWZzSCNMPmRnVkJ8dihKR2JFVSVsPzAq
eFp2a2lgZjJ7YShoSFhgdzlnTUlOUkx7CnptaTVZc2QhQ0ZuUD0zK1k8Yk96KWZBYGEtcTV1YmU5
Zjs/eFI0ZzktYlJ5M0MoLXlRKl9VMG1kPkV2NFV3OTQjKAp6Y3YlUk0jV3JoU3Rfd3daVD9mJUFs
VFpSJnV+ZGBzZEZva3ZyUCQ+aHh8VyZkb0J9aFc2fjgkJXlPSTheJHp1a1gKej5yc24hX3VMcHco
cWhINTVOVm5+KD9ZTXZQR0tkMXlwU3pmKCUpYXc/OGx2bTkpRjkoQn52e2RqKW1Gcj5ULV5sCnol
SlNjaG9Nfjh+Sj5LIWtHKkdxZzxrP25FdT94Klg2RnArdW0maHt3dnMkemErN2pfWDMzVDdaNmBK
Sjg3Q3I0bwp6VGtsdVVjIW5pcFd1bnZuPF5mSGNJN0hIKHFANXxDJkVZK3xtfDUlLXBHOzwlQkIl
V1ElRXlGTm59KXlXRFhKR0YKel5UUzFZc1RpX288YlY0dSFYeklHQShfSChnajA9ez07VmpeY04x
eUZoXlA2SEAzeypgcUgmZipgJV5ndSk1bkZOCnpAUT0kbHtweCh5OEhHLUZSbG9uVzhWXkxzZXhs
ZkhNSDlPfmB7RCowX3lMdTh2KnRPQEFkbVgqPiZKaCNkUF5Kdwp6UFQ0ZGBDREE3P2RoXys0PU1q
dUI+ZTE+c2A0bngoWHd5ZCNlRmYkUlFmYTwrO0l3IXlAViZJfnNDLUZjQUF7X2gKenJZPlY7QlJF
ZmNfUypobDNyO3xFKCRPMUNhYlp+WFRXVSRhPXtIM2hrRW9JO0t9b192YzlOR1Y8IUtWSzJAeXlL
CnooI3o2eHc0TXQyRVkjen1rSChyWj9ndmxMXzNnWHEzKzlecV9ZMCRHY3VEfTF0X0lac2ZSbHM9
XzVweUNkazh9VApiMShVeEI4M3pWeypaPkJBKnB1R35MSU1hPWxPcVh3eFMzcjUKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJj
ZXMvdmlkZW8tcm90YXRpb24tMjcwLm1wNCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0yNzAubXA0CmluZGV4IDIx
MzQxOGM0YTNiYmRkMTVhNGY2NmNjNzY3MTdmYzMyODViMTZjZWIuLjVkZmI4ODZmNmRlYWU2YTc5
NDBjZWQ3NDQ2ZmYzNzllMGFhYjkwYjggMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgODMx
CnpjbVYtRjFIaztpNVk3O2dELUkhVFdNT213MDBOKX0xXkBxP2t2U2QjRl9DOTIwV3E8YVEzOEsp
V3ImMFRDSTNDRQp6dyRaTHxTPmY+IzQwKlNeTXtNYHpvYTQ8Q3owKjh0UDlzQlc+ciRvS0R+cj1Z
TSM3I1dBPlE8eDMrbWpNandkVzAKekNAWEZpMDBrKWokNzU2YilPMTdOZCtzWWdqe3dMe0x1Nngz
TSlueSVXZU1mWGBybTthckNnc3RhZjI4dkg2dz1DCnpBUk93eTFXd0gxWnE9TGI1PC04VFdQKG1q
NiYkOX14RHhOdWNlb2dXRVpeaG41eTB8THZ1cHFWR1FRUygqZ2Q5SAp6al9mQUlwa1gyUC1yNVlV
XzVoeEEzOGxiekM0QFY+USlNcjthJEF7JGE4dTt0TTRkRSlPNG8renNoSX05JmlHI30Kel8/KVY3
IzBjZHd2RTswV0hCWkw5VStZTCZIUG5oPy1JaE5FSDF7SipqRk1EfUwwVyZZbXZiS2xTZl9UclIy
X2tlCnpiYVp3M1Y4dyF7OGY0YkZ6Rj5VT0I0UkFSUWc4MCk7ZiNZb29wcDIqej1KWVR1NFJAPjJk
TXNKMGV+Kl9IUUNtRQp6K3R7YnRJdHdXWT1vcXAzV0pUYFEzQik+YUlzV3thQTRYZXhaV0otIUh7
YDN0QXUjaWhmWGN5Q1ROT0txcDV1WnYKelBURTR6bSghUFI+aGdjNDNjdjMlUjhRfWI3RlpwTT1g
YGpJR2R+KXAkQktANjNWakZONFh3T19xe2lTMXM4ZGslCnp3U1lnJjtze0Q+aWlneH5oMlFtXksq
emlnbWVAQ2dSJiNReTUkUEc9OTVKTlpnfUtlNGd8VHVUJEZCfk0mRlp+bgp6LWc2VHBPfDZRLSNP
e3lKRWctbkEmM25gUnQ/LVFQMV5VRz1FcDU3bWVoN2Jgcn08fElVKWNBPkNhLXxMek0pOWIKenck
VGdodVlJRENhO1BYaT5HVEVGNTBnSyhqMH5LTzlERSlOQGM9LT5tWnU8eStOTntARE0+Ymo8diFD
aj15aWpfCnptNiRqJFNqfGNiKSkqekpra2ViUUctUTBjSElzJiMhTlFgSVQyNXsjZXREQ1k0SlhV
X010bSNlLWNQNXJ3RXpHRQp6MSNORntiXnchRDEjU1RebGc5LSgwe3tQIzJOPyRkS21ZJiQwQVEw
TDF9eT1ubFRRWHowYUJCczIwamBBNV81RTcKell5YmNOdTUpeUFXQj5wRjAwMDAwMFJSOTFvfEY2
cjlSWG1JOFY1Zjszamc1JTdpVk11M2FyXmk1dXBHODB7e1U0CnowMFJJcjQtekdvMFJSU1E+KkxF
SiEyUzY2MDAwMDA2az5GOGJOflBWMDAwQn5oeVZsb2g/OVpgTGpmNisjc19vOwpKSCM5Q1dGZmNw
fmNqb3tBCgpkZWx0YSA4NDcKemNtVi1WMUYtemc1V288U0QtSWBaV01PbXcwME9URDFeQHI2a3ZT
ZF5GZCVYPkZmbFByQVkpYEBJYmtfN2t5dEdPCnpGdExWRjApSj5faD1jJWR7PUh9QlNsPTlVayFD
KWhoPzIwZWJWaCg4SXNke25CZ2dLQ3I5WSt1WjNsfjApRVZEQgp6PUZwel9mdjFRVD41KDxtbjZq
LVU5fDkxMWslM2AhbGZmNT5LJVlNRzV9OEViISFVXyMzPVlZUTElZ0dIRDB3cSUKelpkfiUmPTte
OXVBY0I2UUAjK1J2d2A4PU1pcmZSaSlQfTMqPTZ+PlhsVz40OURjIWpNMjZuQFQ0YG1BZ2I7UEo/
CnppLXZ+eFBAXno+VkVEYWlGMEhyRHY/cnBtVjhaX3FMSE15QnhpRCsqTGpjR2RoSFgyYjExVkps
KGgpMikwJGVNWAp6WEs3aE9WTWVOUjkpRENZOy1HPDt6S2g1R0Q+LXpOcyR+Xz16Z0N1KSQoMjlm
QEFWSDYlZDRIWihOc3xANHEmY1IKeno8PTZ7SXpUbWQzd0VfUigtPT5AWXxFcUZxKXQpSHtUSSN8
cHh5cEszYGk0Mnp0YWtrS2pkWi1QS3ZWKmQ3NXNqCnpUO3AoNm9aTWxvLVlOPktoYUdPYTVTMyhN
Q25BLUA3NFI3Yl47ZHMyQz9JeGpWVjBqJlVEPVVsZkJhRUMwNzVTcgp6Y0E4R0VPKDEkISFMYnlT
eEdOTWxoNlo7Kno5cXUwYiQ+JChnbStzXmxuJl9gdmhRYThnZ2R7ZzR6KVFZWW09dzwKemxIa0B7
WTRNZjdZfiVkblhRN0k3JnJrTWNSJU1PNVJ1VFpHTX5OLX5wQWNvOFVTQSNhanRycHg+UEQxRSkj
eVVUCnpwfXltbXBfbmp3X2pBT30qTlJFeTsoP00pNnVpeF49Yi13NmFLRlJkNDBzTFElQnY8c1pL
UyY1OzVYMkpmYDk0Ygp6OFpqUFlWXiV4WCotbHlVNXJBcThPcUlDbUF4akhTUXd5QHFWMlllQjlw
KD5fb0QlPmRzTFVMNmppYVJ3O2R+ZmoKekRnZ2hYTDsyTkIhU3h+OGdaTXtyO2hoWkxWUXE/YTRL
ZSMoWFQ9QXBleUlJJm5BTXM7MTN1ZDFVNDdIPytORyNGCno9PXQjZzAwUXhDWipPKTAwMDMtbGM0
JVkoMEZ6cTxXZFIkTCEzOCp6alJnb0F8Tmo2MDAwMDAwMDAwMDAwMDAwMAp6MDAwMDBLbVkmJDBE
ek1sMX15PVRsU3V8dDBYfnpTMjBrN0R7JlJGPFl5YmNObnNhbj5XQj5wRjAwMDAwMFJSOTEKemll
WXdSRl9Sbno4M0JOazZiQztrMzsqRSY3aVZNdTMjezJmMVpZNDIwMFJJKDAwMGJ3I1JfR0IwUlJT
UT4qTEVKClohMlM2NjBGI2doTGpmTz8pQ1k3MUcmTD9VRmZjKm9aenVvJgoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92
aWRlby1yb3RhdGlvbi0yNzAudnA5Lm1wNCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0yNzAudnA5Lm1wNAppbmRl
eCAwNjAzMzJhZDkzZGE2YWUzMzA3ZGIxOWZhMzMzZjM3N2UxZDM2Yzk1Li5kOTQ1YzNiZmI5NjA5
YmQyOTVkMDllYThhYmU5ZmNkZTRmMjQwOGZiIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRh
IDE3NzYKemNtVjxNMWBxbEI3UlZFakNWdkxDWkRlNnxmPVBveTAwcjt8XzVlNX05MmZ1cTFKSGpi
KGZqPHA9UF5nVEMkR184CnozO3RLdWJsK0wmeSV2YnstaXMzdy0yZFZFQHdndVliNm1zaypAdUti
JSQwcW9kVUg3RGx4RmVZVGQpOXNWRE9jbQp6aFQqWkBtK3J4UzYxbk9AQDh6QW09bDk7VzdZfE5P
Zms1VEI8big5SFBadWNpdTc1N3gxdE15Zklqdn1Ud3xiZl8KelQlWnZFZCV5ayUycndWVnctd089
bD4yc3NfeTY4QUNLfWtFZDZtaCpNTCtsfnBENE5yelpocnVWJmQ8RTtvc1ZMCno2eXlHR2kheSlh
aHNWcFk1ZXdqYU1pKE11U0xsKTg4IX41eSpjJnJfaUBNbilkSjRFLSR6fXVkZ1RtY2BubDxqSgp6
eitaYGBQJFAodXsobCRaaGJCdkdSUXdNMzVFYEQ5SWo2RCRlNFMwQj43MWl7RGxBWW89JnNWdHgz
WkM9a2hxKmIKejV1KHMxVGE1RVRyZXcmTnhVdEFDU2E7aWlAQml1RlJqblRLYy1DWTg8bG57MEEm
UGtaMWladFNhaTdjIzNPeCRPCno5ZVpfYzkqSFRVdWRhcEFDQE12a0tSQDJlSkl5WmBsdGNrbm5B
M3lxTnFfSVY2QnFhbntPTFd0MElvU01hI2lhJQp6ZXJaOEdjNlJPYGM7WFlXPWEobXc+a31STGF3
fXM9SUZ8MF56M0tqOyF7P0FzI3dFSldeUzAoMmIxUHxVJk5+ayMKej9CQ0QtXyY1TGshRDFySntB
Qk83K0UrKk4lfUJ5aDltS0Ajcko0NVlgekdodCliR3FrP2dYZCliNkZBZ1NOd0EjCnpMNi0lMm5T
VmEoNGApIUJZR0doeyl3KE1wOWwwYXhreHJBRSFUUyEwJXlObygyWGV6a2UzTEE3TVpsbUsyMWco
Ngp6d1lqJGdaQXV9MiYkWUtYO1B0I3N6clNpaXFRailaOD1WZUdOZWh5QDcjaU50VmNIcVMxN192
VFp8ZU48NlB9QnYKek18eik2K21nQGlwbihaRygoMmduNTMmUEE2QVlPPE9TcmpjJndyRT8pKXg7
X1Zme1dEKm99Y1NQYUZqbU9DaSVPCnpqVDUjK0BvNTQtJmdPMjtqaUxVJmowd0IrPjBzfkd1NWBk
UXcxNzdBVkVNP0F4fUghS2lHZnAoJnNAZUdKMGt0Qwp6MG19PFFyNntUeC03KD92YkRSSWZgJlpt
NjI3cF8mTCpsVnk+bS1AdU04YGhQUERISz4waHpYayMlNitfKiRXPDkKenE8PUFxQHtCempBVEc+
e2ZBNGthXjl7SUI7PSgqM0B6TlM3eHU7TDswZXwtKUJJJHBWdHczMnw5PHd8NXlPYVVGCnpaVVht
bUFsaUYkdlFMYTtiRFpAMnxDYzJqI3dyOHV5Z3d1dWtjKHMoRldjXkppRyRASXpQJSM+P0BXfT5P
Skcpbwp6dUsjKUJ1WTNyP19jSFJMUzY5SUt5KT1XPXs5d1M9NH1VQl5Ubm5YOXF6N1lXZHohYUgx
YUQ1NFMyZ3lhMTA4ZE8KeiY8ZUhZeElRNU48RTI7YSZNcX1GYmw9Sj0+aEcwdnI+YFd4T0JEeWRR
RHpIYjZYemlGJWlwfWhlIUAoaU4hJmQyCnp8TmhRZ0BhOCpGXkJXWElOdnUlTF93eGRjRG55cXJq
PXR5Y0QrNGRwZ2RMPXBQeHJJOGI9PD8qPStwYTQ8OXxGWAp6MypNZWtLTUhMZ3hsRylUdD0tJXA+
MEEzaFN+KioyPHlCTEQrO0EpbmJ0WTFwdzlNTmgpQGt7K0wtc3V2KUFEIVQKemRoUSVGazZoPENi
aW0+bVdsQXdHLVUrNHg2MCU7b15kbUdfMkY3UCoxLUwpYWY5Jj8rO3dSLSorI1ZPeE9JblB6Cno5
YlY1YF9nfWRtZzFQdUppcUMlRVFBe1UtPjM7X3lSaz5qbXlEPSlNbSF5KC0kJGA3TDItTlFUanNO
NSRMeEdeVgp6ZiFnfXQ4fS1KJHxDJCZ3MExSfmYwcHQ7KUwyRl8hZ015bV87Y0VFVDBESXI1bzhJ
eXFwSTt+dXolPiMjSlUzfjcKelE/X3oxIWNENilSZFopcVE8Q1c5QDtMTkpUPnByS2dSNUN9X0ZH
LTZBfl9+PXxCdkJ+YD85M2BvUFY5QShaUWpECnpqVXBLSzR+YFEkeDJra3Joc189dEV1QCUjX3hf
LVN1aT99c2h6VkprTSZXbzNAQTRGN3UrIWJJMit+UDdeSjR7fAp6dDY5UURrMk9GRHFlT3dDX0A4
N09DQDl5RF4qPkYyaHhgKnU1PmF8QEhyd3V4TEFhMXdIMWAkam8keWluM0UyIzMKenNHWnchc3Ep
bztneClsbGFmfld1eF89VmdmMDJQO0wtYD5UbD1QXipaQW1IJkw8anhlJnx9WWVDcS1RcXNjd05V
CnpIZzAra0V2fWJrMCVAK19MXiF0UGNPNUNjWkR7MlptUil6UExSO2x1YGcoQThELXJedCR2bmBh
eTB8fT48ZVJ5Tgp6JCNYQmJvN19VT0Z9KzY1NmYmVDsmRkJfM2B3WDh8eXdyfTM3VyZMRHVFTDNs
c0h5bl4jZWRSQy1rV31sWEx1X1AKel5aKEhFJnZjekdfJWt1NDMkZCh5VDI9fGF3RD09dE9FPHpW
ezdTVFFuKTRxbzRaalZ+dncjM0teeUZwKUtMeiElCnpfQDFGcEZ+YXglOHRiWVleWFA3cWd9b1FM
Wm1tRVg/el95JmNjUyUoZjhaYThnSkFaZzBuQmFoWCMhWG0qNU0tegp6ZTZ1K2dQMUt5fDBkfSND
UlkyNUUzOFZ3WWhwcE44ZFlESSNoUF5TRnBKX2skN0pAU1hWMmpUXlgxLTZZbW5NTTcKelpxakV+
VXBFfWJqdHpzMiRoY3FAdFh5Qj4rRl89MnFYM2hQMis7dnhsVUBuPDBicjk/M1BrfHxsYnMzfjJM
KDRNClMwMGxRRmxmNFE7MHRUJjwwU2tJKklFVz95CgpkZWx0YSAyMjQzCnpjbVY7ITJ0ND01Nlo7
bUJDVnZRTVpEZTZ8Zj1Qb3lBUDRYVl81ZTV9OTJmdXExZllMNi0oJWlXLWVWTWR5fUpFcAp6dG9O
QXg4bXJUTHg4Z29GbmpSeURkVCgteD02cFhyVWxPfGdefis/Ki1ARFV2ZH5hIWBAej1mVHAzfEEx
bkVmfVYKej0kTCE9ZVFzYT9lcVlifih0ZD5ZUl5sUzFEPHxNUFM3PExKbyhKPlctek0kRk10fEJv
PU9nRlRjdyFUSksqQ3JRCnokdXc5SG07TTV1aUMqcUtXSj5BS3p5SW1oSHtKSjMjZiohRStGOXZ3
a048dnV2WCthem50SnZqNjEkJUNnX0xqcQp6Kkc0KUwqJlUzKElEKksjMUJAMmdBUz1OS2Y1YXNu
cSMtZTIwaXZsdVomaks3VlBwJXtKTWRyQ2wmM3p4U05eVUkKekU5YlFFUFN6LWZsWWQtSWRgY015
e0k3d0B8TmR6PFZ6fng+cFJuK3c2KEV2JkZxRGowVVg8fkhwZWFUNXBDMn1rCnpTbXp0JnEkdCpv
KWIpaiRSUWFoU2BkLWkwVGhJdndvRzVjaT0wfm96cnZTekAleTdiMUpPSVQmI0x5ZClJLU40VAp6
X0c4JU49KH18PGsmYCNlSSZzPF5ieEsyXzMjWj0+JDV8O0YrVW5jKkN4NFVNa3FsZFMocnlINUhl
JlJ4RTJmRkMKejVScmpJWEI9PChsSzBFdFYkSi1AREx4cDAmP2xDX00kTj1nMHlyfVZLJlNxXk4/
dGUhLUpUb2lGNUJSQEhWQEErCnoqWXAkPigrO0k7dj5FPkZATW0rX1dlLTRyNjkmM1pBTUJXflhi
WkpCSG5QNU89a19iK0hkYVRzRiNtIUJCRGFkfAp6cj1NcyteP3hiTT9SNyRNNExtUmY3QTJLQVNC
PkU/ZD10ezwpU3BtWEgwR3NKKURteV8+Tlh7LVQmTFg5TjFqI0UKemwzVjZFO2hBPSVhNTEmdTI0
QUtffE5DelBHSnBUc0llKnxqKGFyP1hrTmRsQTlJKUM9M2EpVj9iK3VDJTVQJSlNCnpYRkZ2RT9G
c31iRkJRdnRhPmRHb3Akb1BManZJdj52dSV4a188dUNgRTZDemhpQnRiaFVKR0tMLXFxX0d3KlN6
Qgp6VHJrWGx7TWUjJVU5MVdiQzsjPnAmTnNOTUN3Nmk7bkpYU3VVek9ee21oYTEreVg3RkxgMVpi
V3JwKlJNeThOVyMKenche0NAO1NLVDNLNkl1eldGc1ltZ14jRlg9ZWQ1fmAoOHRoIVo8JD9xeGF2
SVR5M3toMjh7UmNRISFQJClTYTAmCnpLen5yV05wS2grdHZrd1dORG58MDhjX2srak9LRkByJnwy
PytTWGF+SGFBI15TUjczcWxTcThNNXBzSzlLMz1JfQp6KElrQDVGN2dhRVdBR0NkIXRQJGApfkl9
Z1Q1MHFYak0tIXJSM0RUMTFBZlRnfEpsKHlKMVhkcmVDPFBjUy0hUzwKejZ7JTJhTW8lflJIKmxa
LSEkIS1vT3ZvIThTTTRqdy1oWE1jK3l3RWVLfWFlM05uVUZ+QGRVZSFKUEhpZnRkQjwzCnpiQlRQ
P01uTWcrakNeQjVxRk0lNj5PUH5+dnFYKV4rR0JVWXYlbWwybzUhZHM1M3NIT3tWXllSV0c8UFh6
O0dmcAp6Y091d1pAZ001czR3Wnh1XiNHUTZ3MnNGfGNuQ2k8U0A7WjtiSEJQfGBqOz40KFlOcVEm
dTh1YXNASXskTmBHNXcKemxWNGFMcXJPTXw8bip3ZEFqOUQ+YU1QVGZndmVrRXNTTT0yLVctfUUy
NEhed1lwbk5uYlpzcTlESlVHRkUtVSV8CnpsVkMzbExFMzc9WS1zaCF3bjJgOGxzZlhZI2lKakhw
WVBxVXRPNDlXRHxoQE07SUgmdnpgY0x9enJRcHY8MSopRwp6ZihzRmt7SFBfYTl4VCZlMFcxQkpu
NzNna3JHRX08U0psMUhoe04zdkAwfUk2WH5CcHxSOytDdnJzbk4/Oyp8Q2gKem1Iek1YbH1IfjNE
eTNXOz1EITgrPFZzKyowZztJeSgrUShyX2FOfHxfeEd8NU9sejN7cUZkK1o2eyFKZDJxZHo9Cnor
M0ZnPSNzMTJFMV4/b0VBYHR9RjV5T0dfZygyQHFfRm5RVyZmKElgYmMwKExoQWVKR1JoZXFJPzA/
Sm01VlUwPQp6Mkt6QjE4dXJITypBcClxO1RHezhOfGBrQ1RBJnx9VjJ+LVNpRjxPQ2g8Q0lwUVlN
ZSR0O3A7PkJyJSs+KCNtS3UKelVfPzNAI01ZYm9tQG16QFNpaiFTYD5vVjthaDh9aDZWLTs+X0E2
fEM+enAhPj4jTGErejwobzg3cC1nMV9VU2xJCno3THh2eSQoek97d2FsezZkMmpvTDApTiMzeGIj
K1NecT1hZEg4fEsqP1lGeWRNYH1ZQU8rMVAlRXNzUEhnJWU2PAp6aWszT05zeyoyOTRMTGZiQVRT
MzhGPW1pbDNKP2JRT1VDdVgtcjxXdilYfmBjYys1M25yY2NUeGQkSDlaelU2KVkKek1aRnM/UDF2
dXo5TyY8TGchVXVMTHpTWjB6SWN7dVhtb2NkTzVMJHNQfkgmRmdXcFRzNk10RSo4REI4eFduI2FR
CnpwT34jUT9qalhKJW0+dzIrUVRoQFJzRWQwM1VLMnhHfjdCWXE2dEArcko2RjVgRmFEKys/Y2F5
YjRlRTJyU0Rjagp6Wk1SKFc/cipsb3d5WjFRYTI2NWBiYTFAand3fn1QbDU8Rm5OJm00djBJMTVV
dlB4YCVab0lPdk0oTC1XSi16LTUKej4zOVdVdHgqJHp1KkorbkElQmluK2tsazhLI1JpcjZSalZJ
MCFGVHl6ZHBYOWpjZExPeV8jPXxzaSFkSmswdH1oCnozU2M2YUQ1eSo8bmFZYkIxdmN1Sj1KQyh7
TDVMYT9gYHpeWENGMVI/QVpGR1B7blExUSNsSl9+XiM1RX4rYGNWQQp6ZHpoUldwVGJiSyhhP21u
e1RRXnAzV3Q3eWA+fTBBVHJkVTEtU0QyOD5jOyQ3PDl8ZD1WY3NaZzI4T15wPmQmdkAKemwjbj10
KXx+K0xhP1lEZTl0XlhRQUIwWnFDK19uNU1MdSQyUkZkM0xicW5mdTtkVC0rMWpoKm5geDUoUyRK
QlItCnpIfjA2eT4qLWZeNTFrOU5gUCt4TFhIWF57RyZHZWJzPF9LRU9wJnc8IzAyXmlGbVBrfE9N
USZNK3Q0eFNOWmtqKwp6K2BLUzF7aH0qVj4zQDBEa1I8ZFUpdEJaS21DdnY0aWJeVTVsbHJ0ViYp
LW45Vi1wWCErQj5Zb1dfM15lRXlSZGMKelpWISlZcjhQQmxsSkREcktKUFo8STIlOWg9SkYkeT1R
P2dNZnp5dH5VKyFQYHtZezMya2o+UjY0bCVSWS1xdC15CnoqZjgpbnswRCQwanxnK0drPUVhb2lv
QzdaVjlJWXFlcDgmN210RH4kQUFkJXw4Kjh7PF48cXtaU2BAdUR1cWxTaQp6Yn5HZ15oM3M3SHtX
c1VfZnlZJXk3MTJEJlQqa21pUDVmXzd6dlh5NlYjM1NpMFY/VmgzYFFJPXNJRmo4MyZDT3wKelFV
ST5seX18ST44SWVoVyh7KkQqbCYzNHBkM35IKD0rMS1MPWRgak8kcm9wWXc1Wmg2cSN7bnNyRitr
UzAwMDgtCnpaRXRVTzBGJllkJE5fK3BzfFdaMmZSbSZNTUlpK00wMDAwMDNUQTAjWXlraU8wMDB6
WGJhSGU2MDAwMDAyOCNkeQpSMjgjZmIzSkYzMjJ3Ozs9MzNebm1aX0B3KAoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92
aWRlby1yb3RhdGlvbi05MC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tOTAubXA0CmluZGV4IDI3OWYwOWI4
MzdjZDhlZDY0MTRiNjEwNjNkMjIwZDgzZWM3M2RiZDguLjQxZTNjMzY3NWE0ZDJhMmQzY2Q4OWU1
YWEwMTllMmU4ZjM0MDc1ZTIgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgODE5CnpjbWNh
MHV0czJsN0MrMVgrPzIhOzFfcWBEWV4/d1AmeldjYCQ3bmIpVTY7e3Q8SjNUPWRqSGdwNzYkR0F8
ODZ9MAp6dFRYOWUqOEsmU0dnKUh8VnFZe2NmMzQ/Z1MtZiloRGMqTyVuYm1GezlTPGpASn4oIzZe
KlFxbk5sfFgqK3psYjsKeno0eHppbiNpPk5mYz81dHtvPWghMHdIWEY5KSNYNntxSkdkZkIpfktO
ZnpndkA7K2B6eFNHbDdvPzFPc1ZSR2BMCnpALU1kSCZsS2M/d1Vfc3FVcklTRyZNPiNXZC1ta2l7
Pm1mektoJkYzRlJha3tfQCpaISgwZ3RFP1IhdEVjQkk9KQp6anIlZDxgJnE3Mm50aU1QemgmIWlW
YEd9QXEzQ25tIWY8MHRNc2UxYXI4a1N0SCYtZkhAeXRDdlVIJCZnWks2SFgKem1Uc3tBeTZAcnpS
byQtelVyVDEqO0l9IWNeVTBDLSo2SHtCND0lRVFeQStXTkUjLVVYO3FlemcrWExDIXZKY2lUCnpP
PiVwQT8lQ3tINDtPeFo8OFk+e0JqQ04xaj5OYFVObVhDc1c2RjI8TlVBJmFafX5NentKKnUkdHs+
WXtfdj1kQgp6JFhNYihANGMkZGpFPTNvRD8/bH13STJSd1NlRXhXeXowJTNnTyk3MkZFJDxBeDtE
YDNze1kpbFhDPG9qP3E5YncKenBUQk1PckooWnQ/YGs8XihTVjwhbVQ2aSNBN2dqU2tVaFJzU0do
aC1AbE0+akRYSiQjcitqSjlzQUZBaDcwSigwCnptSCU+d3stMzw8SG5EdjVVbzVvZEV0SEUpLV9e
LUJiJUc9QjtseSY4e1Z6Z351cFdGcld2KXtEI091WjBAcjdMPwp6VGI3eGhtRj9kQW1OfWZlcChp
IT93dlFtIXEpITMyZXdoQFF8TFhWbGFKZz1Nd0BLb2p0WndqIStZS1RMRWV7cHsKekhQLXMmdGdG
PEdAWHp2PUUxRC0rWGcyP0srazJpMWZ5ZUZjWG1rSTVWIXg0fVgtaFNPISsofVBPTytRJHpSQilr
CnpaKnojKlRPPzhOQSV3bH5WN1NBfmduSD54K2coREJaQjBIMzJjRntFOXNhIUcreGFRbVhVSVAo
V01FKXNvdCheQwp6JSYwJjRJOyh7ZTEwdz8le1FuUTNreDImLUN0PFE3bj1hJD4kPzxGPGo2c3ZQ
dS1WQm0zS2Y/bTxwOERENl8qc0oKemZZYm0xJGU0TUZXeXl3PDE9JURTNkREaTErdUwmZWY1OyU3
cDJFUGo9QkF0QUxaSFBVUm09PVZ7NmViSjcjWXx5CnZVT3pzcWJsfnJnQTBZaUFOaEwrVmQ7a1FA
NH1PNX48Vm95S09mMjZnVXQ9I31HZEl5UUcleEBGPFJXMnsKCmRlbHRhIDg1NQp6Y21WLWQxRX5E
MDVZUH5pRGh+eFdaRGU2fDAwMDg3MV9sNUJ0QzJZIzVIS0tlR2NZa1JPKDBgcldqU0Z2R20lJj0K
ejBXaChLUTM4Sz5XciYwVENJOG4hamQ8RFdAbVZ8Uz0xezkxQE09MWRZU2UwWDMqdmlwPWt4ZUpg
NHNCWWZsWDV3Cno2NmZ4WTMpNllwdTBvZmo7MHx7dSttSjxhTUpnYnMhJElscTxIKll3U215SEU5
fGhIPD1RdVI/SnxPXnBBYGxNSgp6JkFuPGVlUDhLPEgmSihuP2E0KmtIdz1hTy05fk1VMkJyKnNT
bl9gcD1+bl55O3tnQk5aJl9pPj9wdG5DRjkzXmcKeik8bGd9MzhrUWZ4THA8am0oOU1MUkNWUV8h
TU5rPDJWR0wtRmJBb31BMWFYekV0azRib1MybHh5VGJLeFMoS25SCnpFV01tPmk/YHtJcigoQEF0
U2tqbU16KlBvN3lHVG0/Xmx+OG5lYCZ5YS1zNT5Fb0FsMVEwSEdMXyozcGZVSjhwfgp6c21wKG88
YHhDP0ZIVWlZYUc+Tlp2NW07M2x4YDwqa29oPyo/cUo7eHsmfigrTnM1cTtKclFNdEF9ZjdXNnw/
aEEKemBeZHZqdiNpQWdTS0RubUllM2x3cilIXzVffHswZkohNFdMUUxhM18qMDhveiopPy1nOz9F
MjFXYzJISmROZFB+CnokbyNzYTtHZm8+M2RQN3AmeWU2UiVqREoydV5CTkokayVAWD9TUy1pRWNp
JTc1TFNwaWt1RmpkRUphaE0kTCNAYAp6Nj40anlVej43PWVlRiY5TFY2QjFFY1FoSzQrXjNLb1Ba
WXs3I05hQkUhQFFseWZ6UWI/S2JxY3FRcjJoOTZDMT0KelFCWmJaQ3E2QE0qV0lMTXBjVV8tJHxH
UW9DNjx1UTdEcXVXdmE2PjU4e1hsTTtMejs1bF9qTk5JT35ISkhmbnp3Cnp1X0RzeDNiNmc1bnlO
S2YjT31GR0JKcT5aSG0mJkZrbjtBQCtnTU9IfEh5cnAxUiswanJ3MXBpYT1yRjZseW5qJQp6Nj5a
aWxEREZPZnM7R0omQ0d8SCUtPU9MeGUtJlkkcXxjWTRUaG5edWpPezVSbn43MSlMaFYqPHtraUUx
P2wqJTAKem1yckdpZWsxa01ZXzI9NUMwUX1jWDdJMEowMDA2NEBzbGVCYXsoS1pwOU1HcXxOb1F2
MXt3eEgwMDAwMGZScChKCnpFZGk2MENrOWpqSzloVX5KfiNtV2I5Nz5DMDAwMSpiOThmTDAwMDAw
MDAwMDEwMDAxclZSbUNOMDAwMDAwMDAwMQp6MDAwMDAwMDAwMDAwMDAwMDAwMDAwRHpQNzIwdGth
fEtSYF5YSmh+aXRsMl5ZWGd+a30we31uKDAxU2kwM1QxISsKaDAwd0M1PEk1dHp7ckxDKmxXcXE+
MHRHTFZ2SWxlcUcmTD9VRmZpPENlYWA+QAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi05MC52
cDkubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVz
b3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTkwLnZwOS5tcDQKaW5kZXggM2E2NjA4M2VjNGRkMGMyMjcw
MGQ3NzEzZDcyM2U1NDI0YzAwY2U0My4uYjRhNGJlOTQ2NDlhMGVlZDU2MWQxYTFjZjg4Zjc3Y2Zm
YjJkMWNmYyAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzcxCnpjbVY8SDF7Qz4qN3FB
bk1DVnZLPFpEZTZ8Zj1Qb3kwMHI7fF81ZTV9OTJmdXExS0B1KihFSVdJQHB6LSYzckJqLQp6ZDU+
QXNlT0lMU1VxZ0NOTVdWZWlFJUpIemQ8e0tyalpLbFJyIWZDQi1CNztBelBYJXEzTEEmLXQ9SXFu
Yyk5dXsKejs4WEVyMk1ATUowTmFmRz9BYXxpdWZOOHpGTiYxSCNGLWZFd3p9Mi05NFpybEs3VTt2
UChwPGspQ2ZjPjA1T0xxCnohbz5VJi0jd2Btdj5DaH5AYVNkens8JEBmb1YxSE9gaClLQUtYe344
YXZpbz9iY1EpPEA8QGh7end+bjFUaDxKbQp6cWlCMnhhLTZSbXhgU35DMTFoRUtHY3B7bEJzM0Z2
OXRJWlBOdStNNXtUciloSFdnZ3hfXiolODRfc3x6VWg1VCQKej0we31VWnVfOE1NdH00blFLWmg7
NSN9M25tYlZjbmxsSj1gXyopKmFxYzZCZFcxeWxzTmk+OXhTJChvREtwP35nCnpqYkQ8JGxTfjY3
N3BpQ15xekA3WD12cXJBSExeSUJValQ0fDA3SUxrR0kkUk4mJmxeUTErbzlvUShRIzlAez1BTAp6
M1YtdGB6Vip2PEB4UTlCeHJocj17bi1fe0BmRSgkeHQ4MnZBSkUlVjlEZlN0O2IqUXlaMlB4VEdD
aFIxITg2UGQKenNfISpNWFQtWEV1TDYkcVUxZFVMUzxRbj8lIVMxTDg2MW9kdEA2cTQxSVV4cERj
MWBSSmduTmFvYD9JaEVfVWh2CnpIfEc5cDtrdipmSnxjZUpZVCoqO0lBalBZNUpCTTBBJE8lNGh7
SnNIWH4yYVhyTk1eZSZ4WXNXd3ZGTHBqQ2JXcwp6QV81MGo2QFNYU3Zhans/OSkyMHdEMD5gQWoo
fHd5RUROUDJWcmtkZFNTJGNDR00ydSZ2SGZ1S2M5fkAmOShxSDIKejFEaHhONFJ5NFZFcj10JEkj
WGhkRD5KfUM+Y1pnPU0jdygjS208RUxEeklnVGt1NSRtQTw7SkJ7RnI4YkYySlZeCnooMEYwJCZ1
X1NieGBNSD9Cem4oOTllM0tIOVolKS1OfTMmVT90aHg4cnZxRjFeKFYtR3hxMF9mISs0fW9Be356
Zwp6KSoqKEI+KUVra3t+T2lvbUFGVktnalV1d0FEZ2h4Sj5SamZsQnd+UWpVMC0lcWh7KGRJZDkw
RE5oa3olYj5XWmQKekd0UEBNcFhaSGJTSHpiLSooSSljQStWLWU7fH5NTSEhUm1UQHAqKCtANG1T
clYoJGBrLSYraz17PD1kS2I1MzFSCnpCITk3UXVrcGhyZ1E+TEQ7UmhBYDlvRCNje2M+X1E5OyFZ
QlAzQXJnQ2smcWB7e2UxfWN8c0ZLMjhgQlUxXlBHSgp6bE57c2doWFdtK2ojVylkT3s0b2hAQWRV
LWslezN2KlZ+KSkoZi1YMElTXkFZa0BNY0dpUylfRXtVNyhhOHFtUzQKendEeSRHPmZXRkJVUVUz
OyZIV2FBbS0tNnkzaWtnUD53azt6UzBta2hBIWk9YXcmTnpBd1k8ZWU0WF5BfUsoJWgjCnokIzxv
cmNHMHN0MWBrM0hpYk1uS08taG81SE1UYD0mTWNzdT59cXE4cXNzUHZuPXtuanAhYUd5Kkkqbzgw
V2VCPgp6ekZrQT0oQWtiZyR4SFJhezRudWJsU2JuVTU1PVFUM1VeI08yfXBtaXc4VWBSPlpBZk9l
VkRxTT9gbyFPXm5iSHMKelFvRSVIRih+Qm1WbGt4ZFYqcEEpU0gmNHByQWw8dC0+X2M9QnBUe2pe
YnVTXk4wRDN4T1dIO04pUGt1cmt7YkdJCnpDUm89JTsqRFVpZGNjQjArNUh0RGM8YmtFXnpTdSZT
MlpgQWFhOHMzLVUlYj56MzYzdF5TSW8tamVNbGQpfH16Rgp6VX5OJiNIcz5iNi1MX094P3MmaSpP
PF5Bc1EtMjskXiR2Kl5ucm0kK2R5NnV+Uz91Jm9HYzQjeEdSWlY4QSswdHoKenNSR2U3enB8NkIr
LUE0R3I3bigtcTJ9V3M7Zk9hYk8hNFNpMGVgeVQ/a2FpanV3Wj5MSyk1dFEzM1VHM0xqdDx4Cno/
bEFTemN6PGNHdyRGfT5BdG1wc0dfWGtUVGFFJC0lVm5EYUpwVD5KRmhrZX1AWXBhZFVXUHJsISsr
Vyk3fGVhMAp6Jmh6RCZBZU1jajx7cGZkJFVpPGZtMHJhM2E7RHZncH50TGNLVj8hKzI9eDw8QiVf
QTYxVWcwUHk8MXxhWVR1cUYKeksodzBhN3tDQVREWng8SW83V0BQRUgqWkZeXm5jM3FgPDJCTUs4
Pzw4dno5VTVBKHZmYXBELVQ3PDdTPS1vOFdnCnpjM24/KTlIOUx5Y0xJfHhNSUAtRVdxO351cDVM
WVg4I0pERUZzQV85WjZpRDgtMUkyUndZZzBkOW5uRGRZS2xiagp6PVJYZnF5bkA9I2hgaiV2Vzx6
M1F6VU9CWkgmNH0qRCFsZld5azdmJHg2OEtlJTFMMnY8QDRENUs4WnVYJTI2e2QKeiVFTy0leWt7
ZEZkc0F9IXVHfFRTWm9fQkdQJHdXZSglNSg0WHQwLV53cEpSKmxKOTFpMSVDdlk2STc2UCVJcTAz
CnpYe1U2WkpUYDVJdkd4cGZiX1ElMGYhYzBmJkVyTm1KQmBvOEVxX3IodEN5OVVXckdmUGpEOWpM
N2xNYU56aitucwp6dTRUM2teO2ZaY256SGReKkxXTSNFSngkNkNIJnBhdHlqKHA+czUxYXUlMHdf
R2o/Njt5dGY+PTlFKCtzPGZfdk0KenQ1Xk5zTU1xcHklOTR8YjRKVHF3RyhLYUVobX5UNTxvajN+
Zyg0blJaPC1aJTxLTlQ3VHJXck5hO0RlZlJmbG1rCnp6Pn01OyhnOSRUWCRrbE5WM1Q0Qk1JaXpK
MDAwMDAzVEEwI1l5a2lPMDAwelhiYUhlNjAwMDAwMXRlJHkxdGUmYgpOJE89TE4yOT1XeDN3cGA+
WVpDd2YKCmRlbHRhIDIyNDUKemNtVjskMnMteiQ2TlZSJUNWdlFYWkRlNnxmPVBveUFQNFhWXzVl
NX05MmZ1cTFPUl9HLWs7eDU9ezt0TV9relY8CnpeQjwjQmRUKH1yWEorVyRvN35NNj5BZXY8LWdg
R2J1VTFuMV59MDhgPEtUUGliYk12MHgqWjFlUDwhaWgwMDRadwp6enlJcDIhZWpzY1puQV5ffE1z
fk8xMTxnOTUjUnN1JGhafT13d04+aj1GQ1hqaEpQZFgpSm1IaHxMcFd6cGttZTMKenIjbmdfVHd9
KEA0am5YQStWIVRwPk52fD0hOH5oaU19JDZrO2h9bFBMRXB7VzVTOD9QRWRUa1IhXjlrRCU7U3hO
CnpUTVBOVCFjK2RxYDFOc2o/Xkw7UzFFTT84VGk8LTJUMF4xfUtDUklMWE5sMVA1TTE2QjBtJmUo
YFRmd2MzP0QwRgp6KGhwVVkzXlIjYnhQSmw5fEN+SmZJPVFWflN8dGk4aFVjZGl4IURrVXFfXyFD
X2B+Z3lHfXN8fVlvRntwZkkraTAKejY/aVJXaWQkZmt5R19pdCFTPFlQKDhVI3tfUWJHOEg2PkU4
V0xgQmZyZFhPeUo3KkdQZU1rMWskQGwmSE9PQ3J0CnpfVEBgaiZZaTdRPXlZV2xAZDJqckUzZ2tf
eDlwdHF4M2wtSlNPTmFGcG5yeCRQMFdLNkxhPSF4XzNEJS1GZ052Ngp6ZkF8V2UoUTg3PUx2JlNL
TDw/WjNlSnMhJXxFfnB2T3p2THRxfWMtckE9S0lUbDtjaDtOaThoZnVLXkh9KHZLRSoKenwxT351
TSptQSp5fTRII0IzeDVHPURuQDJgYEE2ZXMwPjlLIUtzUW0zJE9lPShFUFJmI14oKn0yKWY+VjU/
KGNiCnpyPVM/KSRBOGlkQ3BLJlRVSUtYJUs2a0pNb01We25oKUR3fUcrcSR4bnw3dkA+QE5UUmxm
bmtPKWRXcmQ8MClwWAp6WH49aWZTakJoJD9mPmxtKlA4JHFReE49XigmKG1VVzx6aCM3UFRsJjRJ
cm07I0FtISpuV0NMUlB5WGIwKH0yN18Kek84JDZlVnRRaldmRWRxZD03WnJYTzg/SGc7Y3tPRk8q
SmlzOSlIUmVFNj5zZjt1ZyZnWXZTMFI2NislPnZndTB2Cnp4dT1jbDNlfHNSRm9aIzN4SD8rUkdm
Q01+V2hnXmRrTl43aW9Dfmc1cD5CRCFLR3RKI204bjJON0xaNy1lalBkUwp6MXxRNT8rKDtYQU1f
RVV8dUhZO3opOWNKM2BIWFAxZGRfNF93YXlQMz4tIUVFS31tQ0EqUzBOKGxaPF9BJX5EaFUKelBK
Y0x6TihiPipTTDxge3xOb0owa3tXaW94MCNFQVlufVR+JXMleTdeejY7d3JRcm5oQE1+M0wxJlhR
SyU7TkoxCnozXkAoPyopKXErQ31LJX1JYTtnaiRCVlo9LXV3VWt6Zkx9USljc0NfNCpAeyVTMnpD
fThsIUBkYWJsSzYyKFE5Tgp6PCMmUmg4NihyZVFjWmxicDMkIWwre3Z4OFB4NjFOb1BYT2MyamAj
Q3t6WXdoUntVX013ZyN3dD42TG8/U3BYI3MKenh2OUppSzRRVXApZGE4diMrfHo0eWFEPng8Kish
TTt8TTVVVklhTDF7NDIrcHpTcEpXOzJvdHluaWkhUnMmUSZKCnpEMjlyb250RjJQelBaM3ZGeHB1
fWhBfnEoZGd0SiFMUzZvLWUtMWUxdEd1US1xWkpTOTd7OXtANmshT0daaHZfPAp6ZVNnKXxBM3JE
bGd1XmI8U1h5b1JZJVZ7WHttYC1XV2UxP352OCVzMXdtOHl6QnhCVFglZm9WUlpXbiRVYz4hPjEK
ekJubHFRPmlrRzN3bzZ4MitkXnhweWA/fFgtbUtMZT9MMmhMKlNgcD44T1I4R3tNI09HYjlgKWgr
VmxyfjxoKn1RCnp2ZzxsYXA/I0BFbldwU3lLTGBre19yQ3JgSiUxWGU3dXp7KXstXlcoUSM8Ujdn
UiQ+RnxLemN+e2wtTiM3O3toTwp6USh7bkhlbmhaNDtPSnZDb3NoYGk0aEgpR28oWVROQm1yNDFw
MnxpJGE9cHZITn1TajRDdm9AenRSPU5ZWkg3YCUKelYoPz1fZks5KyU0cylSPDNjZEA2KHdhZ3B0
T0VAe1JSKyN0TTY2NXIoQyRKMDJNYV5gWiohR35tVlhwSHs0eDgmCnpzVTR1MWk7NFEqbTQtPChn
R3AkME4kcmBFYT5hUDVYYURoeGkxQWAyJTVpO0FMO3BjIzM8eWAlJmRXZXBXR2IzTQp6aHIpMXBD
WG5wP2I9RXxEbE0/KCZmYHlpbVB5QDs/Z2dSWDd6NGNYVUNwRT1PVE5adzUpKTU7P2ZgXkVrSmZU
WFIKekIkRkZxYzh+bG1kVFQjZUZYYlhES1khU3JUKStBd3xOcD1FMj1TV3JNMyZ2IXpMc0koR1dx
LT9wVm5DQE1lUyg1CnpBUSMyLWlheClMTXZaMyFTJHoqbSpnTiQ5c2AoQ31RWE0+OF5xeXojVztm
Ny0wOFVeRCt6UkphY31FVmtkRSRGUQp6eWM5UHxeI24pXnokVyhnZD5eNTdMeUdHSGdLVyQ1QVFG
XlVAWHtZXntBMEpCNTwtViokQThjdmM7LUJyVEM+fGIKek5xK2VKKk0+b2g3RXR0KEtOZ0gqbjFM
cGdwPUJ9I2V3YDlUUV5JNWNyQzl+dlN8bkVMZVVYYEVhKVdfKmZ6cVM9CnpZd05FNSk8KShveWNe
NnorPXBneC11SjZ8K21SM0t7Ozs2aEQxZU9zQEdvJFpXX2IxYyVGTUltKClvUktSPGxrXwp6Qmpr
b2IxOXJhfGRyOFN+MiFEb35FIXR6O2gjaz9jN3lxeVFNMDc0PEZ+TnRsJHAjKVRvaUMldy1UKGpP
T2dIVVoKejglI3FsTUNCZUFHUEM5WjF5Kmlye2NTejU0WVNqT0o1MX15a1ojOGhSMHRyQitAd35S
JEFqRXlSTE8+azRYZkBCCnopUEV6KEdrZT1LYFVNZGNGODFqLWFmakhJQ3g7d2heUiMqWlh1bmxi
KmUheGQ+M0A9dGZgbDNWazxuKyMyKGZhNwp6KksqQmZDWjUkRnZFM2A+NituOGh1WilgP0RifDM9
aTkjbEUhZmJBLXl9UGhgJTI2ajRTWk1+R3lDREVeUU9JTkMKemc4ZlZUQFR9TD5jdmt8TkUlYkxh
KmdPQ3YzMXNNUElSKHRAR05ocjFlYEwtO3k/MzdscDNgRXtfWHhPfXMkdUE3CnpkXzw5O013JGRW
Z0AzKn5uZGhMO2s0RkA/eD83fCt7LTJZZ1MrO2xLOE00MU4waV5lcitHPkNkKGZpditKdmwkKAp6
JWhxJTZ0IVcmeUgoP2srSFckPnpUa0QwWSpuRmVjNFJ6TFdpQGckSElgdmpMSlJfZD9SQC1HQnw4
bGcrbmhmdFMKejdTLWNMM0ZsX0JuKyVeWmkyRnB1Mnc2ZmNke1FIbCh+fjFgYj1XY2pjel5yQkko
KVUjZ3RjREIwajctU0JrTEI9CnpvTnRtVlF1Zz1wKk9JTnFiVHoxbCZNMVpoY29aNz1ZMTFrWihg
bGgkeihrR3tUJWZSNzVZN1QkWE5DQjtwfk0lcgp6NVFWOVdWU2M4aHZnfn4qbV9xOUxYYF9QKiRx
djwqajZlR2deWTAjP3g+VGtIRVJeVElfR0ZnNndnbDt1YFhVdFAKekF5SzBjPkgmejh6eXtJKmZS
bUY0X3lLXkVqMGk7YDFwb2o1MDAwVlJYPVE4eTAwMDAwNms+RjhiTn5QVjAwMEopClRtO2VUb24z
TTdkTElNYkRsUXMhQFhVJURgCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450035</attachid>
            <date>2022-01-26 10:19:32 -0800</date>
            <delta_ts>2022-01-27 00:37:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235563-20220126201917.patch</filename>
            <type>text/plain</type>
            <size>1995065</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NjEwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDFjZDQ5ZDJhNDU0NDE5NDNiN2IwMzQ5ZTJkOTlkMTIy
NzkyNmU5Ni4uZjI5MGIwZjUwNzhjZDc5ZWU0ZmNjNjM5ZjZmOWU2ZWE3ZjAzODEwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIyLTAxLTI1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3Qgc3VpdGUgdG8gMjAyMi0wMS0x
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NTYz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZ1
bmN0aW9uYWxpdHkgdG8gVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHM6CisgICAgICAgICAtIENvcHkgaHR0cC1vbmx5IHRlc3RzIHRvIGh0dHAvdGVzdHMvd2ViZ2wK
KyAgICAgICAgIC0gQWRkIHRlbXBsYXRlIHRvIGpzLXRlc3QtcHJlLmpzCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVz
dC1wcmUtdGVtcGxhdGUuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5j
ZV90ZXN0c19saWIvbWFpbi5weToKKyAgICAgICAgKF9jb3B5X3RyZWUpOgorICAgICAgICAobWFp
bik6CisKIDIwMjItMDEtMjYgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGFsZXhtQGdub21lLm9y
Zz4KIAogICAgICAgICBbR1RLXSBSRUdSRVNTSU9OOiBUb3VjaCBzY3JvbGxpbmcgaXMgYnJva2Vu
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3Jt
YW5jZV90ZXN0c19saWIvanMtdGVzdC1wcmUtdGVtcGxhdGUuanMgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVzdC1wcmUtdGVt
cGxhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZkNDJlNTMwYjZlMGY3MWQ4NDY5ZmRiMGUyYzI0YjE0Nzk2
MGQyMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdXBkYXRlX3dl
YmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9qcy10ZXN0LXByZS10ZW1wbGF0ZS5qcwpAQCAtMCww
ICsxLDUxOSBAQAorLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQv
b3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwg
dG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwor
Kiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l
cmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29w
aWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0
aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNv
cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRI
RSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisq
KiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9U
SEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCisoZnVuY3Rpb24oKSB7CisgIHZh
ciB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gZmFsc2U7CisKKyAgdmFyIGluaXROb25LaHJvbm9z
RnJhbWV3b3JrID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQp
IHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IHRy
dWU7CisKKyAgICAvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUgLS0gKi8KKworICAgIC8vIFdl
YktpdCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0UnVubmVyOworICAgIH0KKworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgIC8vIFRo
ZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMgY29uc29sZSBvdXRwdXQuCisgICAgICAv
LyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdMIFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQK
KyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMuCisgICAgICB3aW5kb3cuY29u
c29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yID0g
ZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdM
RXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisKKyAgICAgIC8vIFJBRiBkb2Vzbid0IHdv
cmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhlIHRlc3RzIHdpbGwKKyAgICAgIC8v
IHVzZSBzZXRUaW1lb3V0IGluc3RlYWQuCisgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lID0gdW5kZWZpbmVkOworICAgICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFt
ZSA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICAvKiAtLSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMg
Y29kZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0aW5nSGFybmVzcyA9IGZ1bmN0aW9uKCkg
eworICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKCk7CisgIH0KK30oKSk7CisKK2Z1bmN0aW9u
IG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgeworICAvLyBXZWJLaXQgU3BlY2lmaWMg
Y29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9Cit9CisK
K2Z1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBp
ZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53
ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBz
dWNjZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNz
KCkgeworICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93
LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5w
YXRobmFtZSk7CisgIH0KKyAgaWYgKHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9u
ZSkgeworICAgIHdpbmRvdy5ub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSgpOworICB9Cit9
CisKK2Z1bmN0aW9uIF9sb2dUb0NvbnNvbGUobXNnKQoreworICAgIGlmICh3aW5kb3cuY29uc29s
ZSkKKyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyhtc2cpOworfQorCit2YXIgX2pzVGVzdFByZVZl
cmJvc2VMb2dnaW5nID0gZmFsc2U7CisKK2Z1bmN0aW9uIGVuYWJsZUpTVGVzdFByZVZlcmJvc2VM
b2dnaW5nKCkKK3sKKyAgICBfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcgPSB0cnVlOworfQorCitm
dW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCit7CisgICAgaW5pdFRlc3RpbmdIYXJuZXNzKCk7Cisg
ICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICBtc2cgPSBkb2N1bWVudC50aXRsZTsK
KyAgICB9CisgICAgLy8gRm9yIE1TSUUgNiBjb21wYXRpYmlsaXR5CisgICAgdmFyIHNwYW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSAnPHA+
JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICI8
c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNw
YW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Ii48L3A+JzsKKyAgICB2YXIgZGVz
Y3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKKyAgICBp
ZiAoZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkKKyAgICAgICAgZGVzY3JpcHRpb24ucmVwbGFjZUNo
aWxkKHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpOworICAgIGVsc2UKKyAgICAgICAgZGVz
Y3JpcHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9n
Z2luZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlv
biBfYWRkU3Bhbihjb250ZW50cykKK3sKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5h
bWVzcGFjZQorICAgIHNwYW4uaW5uZXJIVE1MID0gY29udGVudHMgKyAnPGJyIC8+JzsKK30KKwor
ZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIF9hZGRTcGFuKG1zZyk7CisgICAgaWYgKF9qc1Rl
c3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKG1zZyk7CisgICAg
fQorfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQpCit7CisgICAgcmV0dXJuIHRleHQucmVw
bGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICImbHQ7Iik7Cit9CisKK2Z1bmN0aW9u
IHRlc3RQYXNzZWQobXNnKQoreworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHRydWUs
IG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFu
PiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAgICBpZiAoX2pzVGVzdFByZVZl
cmJvc2VMb2dnaW5nKSB7CisgICAgICAgIF9sb2dUb0NvbnNvbGUoJ1BBU1MgJyArIG1zZyk7Cisg
ICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykKK3sKKyAgICByZXBvcnRUZXN0UmVz
dWx0c1RvSGFybmVzcyhmYWxzZSwgbXNnKTsKKyAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xh
c3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOwor
ICAgIF9sb2dUb0NvbnNvbGUoJ0ZBSUwgJyArIG1zZyk7Cit9CisKK2Z1bmN0aW9uIGFyZUFycmF5
c0VxdWFsKF9hLCBfYikKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAoX2EubGVuZ3RoICE9PSBf
Yi5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgX2EubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAoX2FbaV0gIT09IF9iW2ld
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGNhdGNoIChleCkgeworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlv
biBpc01pbnVzWmVybyhuKQoreworICAgIC8vIHRoZSBvbmx5IHdheSB0byB0ZWxsIDAgZnJvbSAt
MCBpbiBKUyBpcyB0aGUgZmFjdCB0aGF0IDEvLTAgaXMKKyAgICAvLyAtSW5maW5pdHkgaW5zdGVh
ZCBvZiBJbmZpbml0eQorICAgIHJldHVybiBuID09PSAwICYmIDEvbiA8IDA7Cit9CisKK2Z1bmN0
aW9uIGlzUmVzdWx0Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0ZWQpCit7CisgICAgaWYgKF9leHBl
Y3RlZCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIF9hY3R1YWwgPT09IF9leHBlY3RlZCAmJiAoMS9f
YWN0dWFsKSA9PT0gKDEvX2V4cGVjdGVkKTsKKyAgICBpZiAoX2FjdHVhbCA9PT0gX2V4cGVjdGVk
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlwZW9mKF9leHBlY3RlZCkgPT0gIm51
bWJlciIgJiYgaXNOYU4oX2V4cGVjdGVkKSkKKyAgICAgICAgcmV0dXJuIHR5cGVvZihfYWN0dWFs
KSA9PSAibnVtYmVyIiAmJiBpc05hTihfYWN0dWFsKTsKKyAgICBpZiAoT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKFtdKSkKKyAgICAgICAgcmV0dXJuIGFyZUFycmF5c0VxdWFsKF9hY3R1YWwsIF9leHBlY3Rl
ZCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiBzdHJpbmdpZnkodikKK3sKKyAg
ICBpZiAodiA9PT0gMCAmJiAxL3YgPCAwKQorICAgICAgICByZXR1cm4gIi0wIjsKKyAgICBlbHNl
IHJldHVybiAiIiArIHY7Cit9CisKK2Z1bmN0aW9uIGV2YWxBbmRMb2coX2EpCit7CisgIGlmICh0
eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVj
dHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3Mg
Z28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2ZW50LgorICBkZWJ1Zyhf
YSk7CisKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0
Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOwor
ICB9CisgIHJldHVybiBfYXY7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVpZXQp
Cit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmlu
ZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3Vt
ZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAg
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlv
biA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRp
b24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gVGhy
ZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVj
dChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVzdFBh
c3NlZChfYSArICIgaXMgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHlwZW9m
KF9hdikgPT0gdHlwZW9mKF9idikpCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSAiICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CisgICAgZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIgKG9mIHR5cGUg
IiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2Yg
X2F2ICsgIikuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBfYiwgcXVpZXQpCit7
CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIp
CisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3Vt
ZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAg
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlv
biA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRp
b24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIu
IFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICghaXNSZXN1bHRD
b3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAgICB0
ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiIpOwor
fQorCitmdW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0K
K2Z1bmN0aW9uIHNob3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9Citm
dW5jdGlvbiBzaG91bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9CitmdW5jdGlv
biBzaG91bGRCZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KKworZnVuY3Rpb24g
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKGEsIGIpCit7CisgIHZhciB1bmV2YWxlZFN0cmluZyA9ICci
JyArIGIucmVwbGFjZSgvIi9nLCAiXCIiKSArICciJzsKKyAgc2hvdWxkQmUoYSwgdW5ldmFsZWRT
dHJpbmcpOworfQorCitmdW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgLy8gQSBnZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRvci4gICdhY3R1YWwnIHNob3VsZCBi
ZSBhIHN0cmluZyB0byBiZQorICAvLyBldmFsdWF0ZWQsIGFzIGZvciBzaG91bGRCZSgpLiAnZXhw
ZWN0ZWQnIG1heSBiZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQorICAvLyB1c2VkIHdpdGhvdXQgYmVp
bmcgZXZhbCdlZC4KKyAgaWYgKGV4cGVjdGVkID09IG51bGwpIHsKKyAgICAvLyBEbyB0aGlzIGJl
Zm9yZSB0aGUgb2JqZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlwZSAnb2JqZWN0Jy4KKyAg
ICBzaG91bGRCZU51bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0g
InVuZGVmaW5lZCIpIHsKKyAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1YWwpOworICB9IGVsc2Ug
aWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7CisgICAgLy8gQWxsIHRoaXMgZnVz
cyBpcyB0byBhdm9pZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5nIGZyb20gc2hvdWxkQmUoKS4KKyAg
ICB0cnkgeworICAgICAgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgdGVzdEZhaWxlZCgiRXZhbHVhdGluZyAiICsgYWN0dWFsICsgIjogVGhyZXcg
ZXhjZXB0aW9uICIgKyBlKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2hvdWxkQmUoIici
ICsgYWN0dWFsVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIsCisgICAg
ICAgICAgICAgIiciICsgZXhwZWN0ZWQudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAi
JyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAib2JqZWN0IikgeworICAgIHNo
b3VsZEJlVHJ1ZShhY3R1YWwgKyAiID09ICciICsgZXhwZWN0ZWQgKyAiJyIpOworICB9IGVsc2Ug
aWYgKHR5cGVvZiBleHBlY3RlZCA9PSAic3RyaW5nIikgeworICAgIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiYm9vbGVhbiIpIHsK
KyAgICBzaG91bGRCZSgidHlwZW9mICIgKyBhY3R1YWwsICInYm9vbGVhbiciKTsKKyAgICBpZiAo
ZXhwZWN0ZWQpCisgICAgICBzaG91bGRCZVRydWUoYWN0dWFsKTsKKyAgICBlbHNlCisgICAgICBz
aG91bGRCZUZhbHNlKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJu
dW1iZXIiKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBzdHJpbmdpZnkoZXhwZWN0ZWQpKTsKKyAg
fSBlbHNlIHsKKyAgICBkZWJ1ZyhleHBlY3RlZCArICIgaXMgdW5rbm93biB0eXBlICIgKyB0eXBl
b2YgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwsICInIiAgK2V4cGVjdGVkLnRv
U3RyaW5nKCkgKyAiJyIpOworICB9Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9uWmVybyhfYSkK
K3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZh
bChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlm
IChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBU
aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPSAwKQorICAg
IHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi16ZXJvLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlTm9uTnVsbChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAg
dHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0
aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIGJlIG5vbi1udWxsLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVs
c2UgaWYgKF9hdiAhPSBudWxsKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi1udWxsLiIp
OworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMg
IiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVW5kZWZpbmVkKF9hKQoreworICB2YXIg
ZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlv
bikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBUaHJldyBleGNl
cHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5l
ZCIpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQor
CitmdW5jdGlvbiBzaG91bGRCZURlZmluZWQoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZh
ciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7Cisg
ICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlv
bik7CisgIGVsc2UgaWYgKF9hdiAhPT0gdW5kZWZpbmVkKQorICAgIHRlc3RQYXNzZWQoX2EgKyAi
IGlzIGRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
ZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFu
T3JFcXVhbChfYSwgX2IpIHsKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVv
ZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlR3JlYXRlclRo
YW5PckVxdWFsIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworCisgICAgdmFyIGV4Y2VwdGlv
bjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9i
diA9IGV2YWwoX2IpOworCisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0
aW9uKTsKKyAgICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiIHx8IF9hdiA8IF9i
dikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFdh
cyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgPj0gIiArIF9iKTsKK30KKworZnVuY3Rpb24g
ZXhwZWN0VHJ1ZSh2LCBtc2cpIHsKKyAgaWYgKHYpIHsKKyAgICB0ZXN0UGFzc2VkKG1zZyk7Cisg
IH0gZWxzZSB7CisgICAgdGVzdEZhaWxlZChtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZFRocm93KF9hLCBfZSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsK
KyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0g
ZTsKKyAgfQorCisgIHZhciBfZXY7CisgIGlmIChfZSkKKyAgICAgIF9ldiA9ICBldmFsKF9lKTsK
KworICBpZiAoZXhjZXB0aW9uKSB7CisgICAgaWYgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiB8
fCBleGNlcHRpb24gPT0gX2V2KQorICAgICAgdGVzdFBhc3NlZChfYSArICIgdGhyZXcgZXhjZXB0
aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOworICAgIGVsc2UKKyAgICAgIHRlc3RGYWlsZWQoX2Eg
KyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNl
cHRpb24iIDogX2V2KSArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uICsgIi4iKTsK
KyAgfSBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBl
eGNlcHRpb24iIDogX2V2KSArICIuIFdhcyB1bmRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIg
PyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7Cit9CisKK2Z1
bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpIHsKKyAgICB2YXIgZXhjZXB0aW9uOworICAg
IHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKworICAgIHZhciBfdHlwZXYg
PSBldmFsKF90eXBlKTsKKworICAgIGlmKF90eXBldiA9PT0gTnVtYmVyKXsKKyAgICAgICAgaWYo
X2F2IGluc3RhbmNlb2YgTnVtYmVyKXsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
IGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYodHlw
ZW9mKF9hdikgPT09ICdudW1iZXInKXsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
IGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9CisgICAgICAgIGVsc2V7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgTnVtYmVyIik7
CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoX2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7
CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mICIgKyBfdHlwZSk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgaXMgbm90IGFuIGluc3Rh
bmNlIG9mICIgKyBfdHlwZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRNc2coYXNzZXJ0
aW9uLCBtc2cpIHsKKyAgICBpZiAoYXNzZXJ0aW9uKSB7CisgICAgICAgIHRlc3RQYXNzZWQobXNn
KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7CisgICAgfQorfQorCitm
dW5jdGlvbiBnYygpIHsKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikgeworICAgICAgICB3
aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmICh3aW5kb3cub3BlcmEgJiYgd2luZG93Lm9wZXJhLmNvbGxlY3QpIHsKKyAgICAgICAg
d2luZG93Lm9wZXJhLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRy
eSB7CisgICAgICAgIHdpbmRvdy5RdWVyeUludGVyZmFjZShDb21wb25lbnRzLmludGVyZmFjZXMu
bnNJSW50ZXJmYWNlUmVxdWVzdG9yKQorICAgICAgICAgICAgICAuZ2V0SW50ZXJmYWNlKENvbXBv
bmVudHMuaW50ZXJmYWNlcy5uc0lET01XaW5kb3dVdGlscykKKyAgICAgICAgICAgICAgLmdhcmJh
Z2VDb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGNhdGNoKGUpIHt9CisKKyAgICBm
dW5jdGlvbiBnY1JlYyhuKSB7CisgICAgICAgIGlmIChuIDwgMSkKKyAgICAgICAgICAgIHJldHVy
biB7fTsKKyAgICAgICAgdmFyIHRlbXAgPSB7aTogImFiIiArIGkgKyAoaSAvIDEwMDAwMCl9Owor
ICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICBnY1JlYyhuLTEpOworICAgIH0KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgZ2NSZWMoMTApOworfQorCitm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICB2
YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgdmFyIGJh
c2VQYXRoID0gIiI7CisgIHZhciBleHBlY3RlZEJhc2UgPSAianMtdGVzdC1wcmUuanMiOworICB2
YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKTsKKyAg
Zm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2NyaXB0c1tpXTsgaSsrKSB7CisgICAg
dmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgdmFyIGwgPSBzcmMubGVuZ3RoOworICAgIGlmIChz
cmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9PSBleHBlY3RlZEJhc2UpIHsKKyAg
ICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhwZWN0ZWRCYXNlLmxlbmd0aCk7Cisg
ICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXBpbG9ndWUuc3JjID0gYmFzZVBhdGggKyAianMt
dGVzdC1wb3N0LmpzIjsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1ZSk7Cit9
CisKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdXBkYXRlX3dlYmdsX2NvbmZv
cm1hbmNlX3Rlc3RzX2xpYi9tYWluLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS91cGRhdGVf
d2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkKaW5kZXggYzYxMDU2M2VmMTYxZTcz
NmNmYmJkNmY1YzFjYmE2NGQ3NTcyYjY0Ny4uNTlhMGM3Y2YxMmM1NzcyM2NlODdhNGUzOTA4ZGI2
MjViZThhMjFmMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS91cGRhdGVfd2Vi
Z2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL21haW4ucHkKQEAgLTM0LDgg
KzM0LDggQEAKICAgIGNkIH4vdGVtcAogICAgZ2l0IGNsb25lIGdpdDovL2dpdGh1Yi5jb20vS2hy
b25vc0dyb3VwL1dlYkdMLmdpdAogICAgbWtkaXIgYmFja3VwCi0gICBtdiB+L1dlYktpdC9MYXlv
dXRUZXN0cy93ZWJnbC97MS4wLngsMi4wLnkscmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXN9IGJh
Y2t1cAotICAgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMgfi90ZW1wL1dlYkdMCisgICBtdiB+L1dlYktp
dC9MYXlvdXRUZXN0cy97aHR0cC8sfXdlYmdsL3sxLjAueCwyLjAueSxyZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlc30gYmFja3VwCisgICB1cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMgLWMg
fi90ZW1wL1dlYkdMCiAgICBydW4td2Via2l0LXRlc3RzIC0tZGVidWcgLS13ZWJnbCAtLW9yZGVy
PXJhbmRvbSB3ZWJnbAogICAgcnVuLXdlYmtpdC10ZXN0cyAtLXJlbGVhc2UgLS13ZWJnbCAtLW9y
ZGVyPXJhbmRvbSB3ZWJnbAogICAgY2hlY2stZm9yLWR1cGxpY2F0ZWQtcGxhdGZvcm0tdGVzdC1y
ZXN1bHRzIC1uIDI+JjEgfCBncmVwIHdlYmdsCkBAIC02NCw2ICs2NCw4IEBAIF9sYXlvdXRfdGVz
dHNfZGlyID0gUGF0aChfX2ZpbGVfXykucGFyZW50LnBhcmVudC5wYXJlbnQucGFyZW50LnBhcmVu
dCAvICJMYXlvdXRUCiAKIF91c2VfdmVyYm9zZV9vdXRwdXQgPSBGYWxzZQogCitfY2xlYW5fdGFy
Z2V0X2RpcnMgPSBGYWxzZQorCiBfSWdub3JlZEZpbGVuYW1lTWF0Y2hlciA9IENhbGxhYmxlW1tQ
YXRoXSwgYm9vbF0KIAogCkBAIC04NCw3ICs4Niw3IEBAIGRlZiBfbWFrZV9pZ25vcmVfZm5tYXRj
aF9ydWxlX21hdGNoZXIocnVsZXM6IEl0ZXJhYmxlW1VuaW9uW3N0ciwgVHVwbGVbc3RyXV1dKSAt
CiAgICAgcmV0dXJuIG1hdGNoX3J1bGVzCiAKIAotX2NvbmZvcm1hbmNlX3BhdHRlcm5zID0gX21h
a2VfaWdub3JlX2ZubWF0Y2hfcnVsZV9tYXRjaGVyKAorX2ZpbGVfcGF0dGVybnMgPSBfbWFrZV9p
Z25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIoCiAgICAgWwogICAgICAgICAiLmdpdCIsCiAgICAg
ICAgICIqLnB5YyIsCkBAIC0xMDQsNiArMTA2LDMxIEBAIF9jb25mb3JtYW5jZV9wYXR0ZXJucyA9
IF9tYWtlX2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigKICAgICAgICAgIiovZGVxcC90ZW1w
X2V4dGVybnMqIiwKICAgICAgICAgIiovZGVxcC90ZXN0LXdlYmdsMi5qcyIsCiAgICAgICAgICIq
L2RlcXAvdGVzdC13ZWJnbDIuc2giLAorICAgICAgICAiKi90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCIsCisgICAgICAgICIqL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiLAorICAgICAgICAiKi9tb3Jl
L2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIiwKKyAgICAgICAgIiovbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCIsCisgICAgICAgICIqL21vcmUvZnVuY3Rpb25zL3Rl
eFN1YkltYWdlMkRIVE1MLmh0bWwiLAorICAgIF0KKykKKworX2h0dHBfZmlsZV9wYXR0ZXJucyA9
IF9tYWtlX2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigKKyAgICBbCisgICAgICAgICIqIiwK
KyAgICAgICAgKCIqL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNj
cmVlbmNhbnZhcy5odG1sIiwgKSwKKyAgICAgICAgKCIqL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLmh0bWwiLCApLAorICAgICAgICAoIiovbW9yZS9mdW5jdGlvbnMvcmVh
ZFBpeGVsc0JhZEFyZ3MuaHRtbCIsICksCisgICAgICAgICgiKi9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC5odG1sIiwgKSwKKyAgICAgICAgKCIqL21vcmUvZnVuY3Rpb25zL3RleFN1Yklt
YWdlMkRIVE1MLmh0bWwiLCApLAorICAgICAgICAoIiovbW9yZS91bml0LmNzcyIsICksCisgICAg
ICAgICgiKi9tb3JlL3VuaXQuanMiLCApLAorICAgICAgICAoIiovbW9yZS91dGlsLmpzIiwgKSwK
KyAgICAgICAgKCIqL2pzL2pzLXRlc3QtcG9zdC5qcyIsICksCisgICAgICAgICgiKi9qcy9qcy10
ZXN0LXByZS5qcyIsICksCisgICAgICAgICgiKi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIiwgKSwK
KyAgICAgICAgKCIqL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIsICksCisgICAgICAgICgi
Ki9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIiwgKSwKKyAgICAgICAgKCIqL3Jlc291cmNlcy90
aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBuZyIsICksCiAgICAgXQogKQogCkBAIC0xMjAsNyArMTQ3
LDcgQEAgZGVmIF9jb3B5X3RyZWUoc3JjOiBQYXRoLCBkc3Q6IFBhdGgsIGlnbm9yZTogT3B0aW9u
YWxbX0lnbm9yZWRGaWxlbmFtZU1hdGNoZXJdID0KICAgICAgICAgZWxzZToKICAgICAgICAgICAg
IGlmIGlnbm9yZSBpcyBub3QgTm9uZSBhbmQgaWdub3JlKHNyY19uYW1lKToKICAgICAgICAgICAg
ICAgICBpZiBfdXNlX3ZlcmJvc2Vfb3V0cHV0OgotICAgICAgICAgICAgICAgICAgICBwcmludCgi
SWdub3Jpbmc6ICVzIiAlIChzcmNfbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIHByaW50KCJJ
Z25vcmluZzogJXMsIG1hdGNoZXMgaWdub3JlIGZpbHRlciIgJSAoc3JjX25hbWUpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBpZiBfdXNlX3ZlcmJvc2Vfb3V0cHV0Ogog
ICAgICAgICAgICAgICAgIHByaW50KCJDb3B5aW5nOiAlcyAtPiAlcyIgJSAoc3JjX25hbWUsIGRz
dF9uYW1lKSkKQEAgLTE4Nyw2ICsyMTQsOCBAQCBkZWYgX2NvcHlfd2ViZ2xfdGVzdF9maWxlcygK
ICAgICB0YXJnZXRfZGlyOiBQYXRoLAogKToKICAgICB0YXJnZXRfdGVzdF9maWxlc19kaXIgPSB0
YXJnZXRfZGlyIC8gInJlc291cmNlcyIgLyAid2ViZ2xfdGVzdF9maWxlcyIKKyAgICBpZiBfY2xl
YW5fdGFyZ2V0X2RpcnM6CisgICAgICAgIHNodXRpbC5ybXRyZWUodGFyZ2V0X3Rlc3RfZmlsZXNf
ZGlyKQogICAgIF9jb3B5X3RyZWUoc291cmNlX3Rlc3RzX2RpciwgdGFyZ2V0X3Rlc3RfZmlsZXNf
ZGlyLCBzb3VyY2VfcGF0dGVybnMpCiAKIApAQCAtMjAzLDYgKzIzMiw5IEBAIGRlZiBfZ2VuZXJh
dGVfd2Via2l0X3dlYmdsX3Rlc3RzKAogICAgIHRhcmdldF9qc190ZXN0X2hhcm5lc3MgPSB0YXJn
ZXRfZGlyIC8gInJlc291cmNlcyIgLyAid2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyIKICAg
ICB0YXJnZXRfanNfdGVzdF9oYXJuZXNzLnBhcmVudC5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0
X29rPVRydWUpCiAgICAgc2h1dGlsLmNvcHlmaWxlKHNvdXJjZV9qc190ZXN0X2hhcm5lc3MsIHRh
cmdldF9qc190ZXN0X2hhcm5lc3MpCisgICAgc291cmNlX2pzX3Rlc3RfaGFybmVzcyA9IF90b29s
X2RpciAvICJqcy10ZXN0LXByZS10ZW1wbGF0ZS5qcyIKKyAgICB0YXJnZXRfanNfdGVzdF9oYXJu
ZXNzID0gdGFyZ2V0X2RpciAvICJyZXNvdXJjZXMiIC8gImpzLXRlc3QtcHJlLmpzIgorICAgIHNo
dXRpbC5jb3B5ZmlsZShzb3VyY2VfanNfdGVzdF9oYXJuZXNzLCB0YXJnZXRfanNfdGVzdF9oYXJu
ZXNzKQogCiAgICAgdGVzdF90ZW1wbGF0ZSA9IChfdG9vbF9kaXIgLyAid2ViZ2wtdGVzdC1kcml2
ZXItdGVtcGxhdGUuaHRtbCIpLnJlYWRfdGV4dCgpCiAgICAgZXhwZWN0YXRpb25fdGVtcGxhdGUg
PSAoX3Rvb2xfZGlyIC8gIndlYmdsLWV4cGVjdGF0aW9uLXRlbXBsYXRlLnR4dCIpLnJlYWRfdGV4
dCgpCkBAIC0yMTAsNiArMjQyLDkgQEAgZGVmIF9nZW5lcmF0ZV93ZWJraXRfd2ViZ2xfdGVzdHMo
CiAgICAgdGVzdHMgPSBfcGFyc2Vfd2ViZ2xfdGVzdHMoc291cmNlX3Rlc3RzX2RpciwgKHNvdXJj
ZV90ZXN0c19kaXIgLyAiMDBfdGVzdF9saXN0LnR4dCIpLCBzdWl0ZV92ZXJzaW9uLCBzdWl0ZV92
ZXJzaW9uKQogCiAgICAgdGFyZ2V0X3Rlc3RzX2RpciA9IHRhcmdldF9kaXIgLyB0YXJnZXRfdmVy
c2lvbl9uYW1lCisgICAgaWYgX2NsZWFuX3RhcmdldF9kaXJzOgorICAgICAgICBzaHV0aWwucm10
cmVlKHRhcmdldF90ZXN0c19kaXIpCisKICAgICBmb3IgdGVzdF9wYXRoIGluIF9maWx0ZXJfd2Vi
Z2xfdGVzdF9wYXRoc19mb3Jfc3VpdGVfdmVyc2lvbih0ZXN0cywgc3VpdGVfdmVyc2lvbik6CiAg
ICAgICAgIHRhcmdldF90ZXN0ID0gdGFyZ2V0X3Rlc3RzX2RpciAvIHRlc3RfcGF0aAogICAgICAg
ICB0YXJnZXRfdGVzdF9pbXBsID0gdGFyZ2V0X3Rlc3RfZmlsZXNfZGlyIC8gdGVzdF9wYXRoCkBA
IC0yNTIsNiArMjg3LDcgQEAgZGVmIF9maW5kX2V4cGVjdGF0aW9uc19mb3JfcmVtb3ZlZF90ZXN0
cyhsYXlvdXRfdGVzdHNfZGlyOiBQYXRoKToKIGRlZiBtYWluKCk6CiAgICAgcGFyc2VyID0gYXJn
cGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249X19kb2NfXywgZm9ybWF0dGVyX2NsYXNz
PWFyZ3BhcnNlLlJhd1RleHRIZWxwRm9ybWF0dGVyKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9InByaW50IHZlcmJv
c2Ugb3V0cHV0LiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLWMiLCAiLS1jbGVhbi10YXJn
ZXQtZGlycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9InJlbW92ZSBhbGwgZmlsZXMgZnJv
bSB0YXJnZXQgc3ViZGlyZWN0b3JpZXMgYmVmb3JlIHVwZGF0aW5nIHRoZW0uIikKICAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCJ3ZWJnbF9yZXBvc2l0b3J5IiwgaGVscD0icGF0aCB0byBXZWJHTCBj
b25mb3JtYW5jZSB0ZXN0IHJlcG9zaXRvcnkgcm9vdC4iKQogICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoCiAgICAgICAgICItbCIsCkBAIC0yNjMsMTQgKzI5OSwyMyBAQCBkZWYgbWFpbigpOgogICAg
IG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygpCiAgICAgZ2xvYmFsIF91c2VfdmVyYm9zZV9v
dXRwdXQKICAgICBfdXNlX3ZlcmJvc2Vfb3V0cHV0ID0gb3B0aW9ucy52ZXJib3NlIG9yIEZhbHNl
CisgICAgZ2xvYmFsIF9jbGVhbl90YXJnZXRfZGlycworICAgIF9jbGVhbl90YXJnZXRfZGlycyA9
IG9wdGlvbnMuY2xlYW5fdGFyZ2V0X2RpcnMgb3IgRmFsc2UKICAgICBzb3VyY2VfZGlyID0gUGF0
aChvcHRpb25zLndlYmdsX3JlcG9zaXRvcnkpCiAgICAgdGFyZ2V0X2RpciA9IFBhdGgob3B0aW9u
cy5sYXlvdXRfdGVzdHNfZGlyKSAvICJ3ZWJnbCIKIAotICAgIF9jb3B5X3dlYmdsX3Rlc3RfZmls
ZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMiLCBzb3VyY2Vf
cGF0dGVybnM9X2NvbmZvcm1hbmNlX3BhdHRlcm5zLCB0YXJnZXRfZGlyPXRhcmdldF9kaXIpCisg
ICAgX2NvcHlfd2ViZ2xfdGVzdF9maWxlcyhzb3VyY2VfdGVzdHNfZGlyPXNvdXJjZV9kaXIgLyAi
c2RrIiAvICJ0ZXN0cyIsIHNvdXJjZV9wYXR0ZXJucz1fZmlsZV9wYXR0ZXJucywgdGFyZ2V0X2Rp
cj10YXJnZXRfZGlyKQogICAgIF9nZW5lcmF0ZV93ZWJraXRfd2ViZ2xfdGVzdHMoc291cmNlX3Rl
c3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMiLCBzdWl0ZV92ZXJzaW9uPVZlcnNp
b24oIjEuMC40IiksIHVzZV93ZWJnbDJfY29udGV4dD1GYWxzZSwgdGFyZ2V0X2Rpcj10YXJnZXRf
ZGlyLCB0YXJnZXRfdmVyc2lvbl9uYW1lPSIxLjAueCIpCiAgICAgX2dlbmVyYXRlX3dlYmtpdF93
ZWJnbF90ZXN0cyhzb3VyY2VfdGVzdHNfZGlyPXNvdXJjZV9kaXIgLyAic2RrIiAvICJ0ZXN0cyIs
IHN1aXRlX3ZlcnNpb249VmVyc2lvbigiMi4wLjEiKSwgdXNlX3dlYmdsMl9jb250ZXh0PVRydWUs
IHRhcmdldF9kaXI9dGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNpb25fbmFtZT0iMi4wLnkiKQotICAg
IGxheW91dF90ZXN0c19kaXIgPSBQYXRoKG9wdGlvbnMubGF5b3V0X3Rlc3RzX2RpcikKIAorICAg
IGlmIF91c2VfdmVyYm9zZV9vdXRwdXQ6CisgICAgICAgIHByaW50KCJVcGRhdGluZyBodHRwIHRl
c3RzIikKKyAgICBodHRwX3RhcmdldF9kaXIgPSBQYXRoKG9wdGlvbnMubGF5b3V0X3Rlc3RzX2Rp
cikgLyAiaHR0cCIgLyAidGVzdHMiIC8gIndlYmdsIgorICAgIF9jb3B5X3dlYmdsX3Rlc3RfZmls
ZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMiLCBzb3VyY2Vf
cGF0dGVybnM9X2h0dHBfZmlsZV9wYXR0ZXJucywgdGFyZ2V0X2Rpcj1odHRwX3RhcmdldF9kaXIp
CisgICAgX2dlbmVyYXRlX3dlYmtpdF93ZWJnbF90ZXN0cyhzb3VyY2VfdGVzdHNfZGlyPXNvdXJj
ZV9kaXIgLyAic2RrIiAvICJ0ZXN0cyIsIHN1aXRlX3ZlcnNpb249VmVyc2lvbigiMS4wLjQiKSwg
dXNlX3dlYmdsMl9jb250ZXh0PUZhbHNlLCB0YXJnZXRfZGlyPWh0dHBfdGFyZ2V0X2RpciwgdGFy
Z2V0X3ZlcnNpb25fbmFtZT0iMS4wLngiKQorICAgIF9nZW5lcmF0ZV93ZWJraXRfd2ViZ2xfdGVz
dHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMiLCBzdWl0ZV92
ZXJzaW9uPVZlcnNpb24oIjIuMC4xIiksIHVzZV93ZWJnbDJfY29udGV4dD1UcnVlLCB0YXJnZXRf
ZGlyPWh0dHBfdGFyZ2V0X2RpciwgdGFyZ2V0X3ZlcnNpb25fbmFtZT0iMi4wLnkiKQorCisgICAg
bGF5b3V0X3Rlc3RzX2RpciA9IFBhdGgob3B0aW9ucy5sYXlvdXRfdGVzdHNfZGlyKQogICAgIG9s
ZF9leHBlY3RhdGlvbnMgPSBfZmluZF9leHBlY3RhdGlvbnNfZm9yX3JlbW92ZWRfdGVzdHMobGF5
b3V0X3Rlc3RzX2RpcikKICAgICBvbGRfZXhwZWN0YXRpb25zID0gW2UgZm9yIGUgaW4gb2xkX2V4
cGVjdGF0aW9ucyBpZiAid2ViZ2wiIGluIHN0cihlKV0KICAgICBpZiBvbGRfZXhwZWN0YXRpb25z
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGNjMDY1ZDI4OTEzOWUzYmE1ZTkyYTQwMDYyMTU3YjFiNjBlYjlhOWQuLmMxOTRl
NWYyZmVlYTI0YjZjODk5ZTJhNmQ2OWEyODM5NzE3MDNiZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NTAg
QEAKKzIwMjItMDEtMjUgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVcGRhdGUgV2ViR0wgY29uZm9ybWFuY2UgdGVzdCBzdWl0ZSB0byAyMDIyLTAxLTEy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU1NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgVXBkYXRlIFdl
YkdMIHRlc3RzdWl0ZSB0byAyMDIyLTAxLTEyIDliNThmZDI0M2QzOGY0YjljNzJhYjZmNzVhZDcw
MWNhZmMxMzExMzcuCisKKyAgICAgICAgQWRkaXRpb25hbGx5OgorICAgICAgICBUaGUgaW1wb3J0
IHNjcmlwdCBjYW4gbm93IGNhdGVnb3JpemUgdGVzdHMgdG8gcmVndWxhciB0ZXN0cyBhbmQgc21h
bGwgYW1vdW50IG9mIGh0dHAKKyAgICAgICAgdGVzdHM6CisgICAgICAgICAtIFJlbW92ZSBvbGQg
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi8KKyAgICAgICAgIC0gQWRkIG5ldyBodHRwL3Rlc3RzL3dl
YmdsLzEuMC54IC8gMi4wLnkKKworICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3Mt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy8zeDMucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2JsdWUtMXgxLmpw
ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9idWctMzI4ODgtdGV4dHVyZS5w
bmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVy
LnZlcnQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIu
ZnJhZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LXdp
dGgtMTI4LWFscGhhLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5
LXJhbXAtMjU2LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJh
bXAtZGVmYXVsdC1nYW1tYS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
Z3JheS1yYW1wLWdhbW1hMC4xLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ncmF5LXJhbXAtZ2FtbWExLjAucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL2dyYXktcmFtcC1nYW1tYTIuMC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvZ3JheS1yYW1wLWdhbW1hNC4wLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9ncmF5LXJhbXAtZ2FtbWE5LjAucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL2dyYXktcmFtcC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJj
ZXMvZ3JlZW4tMngyLTE2Yml0LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ub29wVW5pZm9ybVNoYWRlci5mcmFnOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL25wb3QtdmlkZW8ubXA0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25w
b3QtdmlkZW8udGhlb3JhLm9ndjogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9u
cG90LXZpZGVvLndlYm12cDgud2VibTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9wbmdsaWIuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVu
Lm1wNDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi50aGVvcmEub2d2OiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm06
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWluZGV4ZWQucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNpZS1yZ2It
cHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1
YXJlLXdpdGgtY29sb3JtYXRjaC1wcm9maWxlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5qcGc6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGlu
LXByb2ZpbGUucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNx
dWFyZS13aXRoLWUtc3JnYi1wcm9maWxlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zbXB0ZS1jLXByb2ZpbGUucG5nOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNyZ2ItaWVjNjE5NjYt
Mi4xLXByb2ZpbGUucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0
YS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanM6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQ6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL3plcm8tYWxwaGEucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvMDBfdGVzdF9saXN0LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9jb3B5LXRleC1pbWFnZS0yZC1mb3JtYXRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtcGl4ZWxzdG9yZWkuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXRleGltYWdlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYjU2NS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1jYW52YXMtcmdiYTQ0NDQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYmE1NTUxLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWNhbnZhcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYjU2NS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE0NDQ0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEt
cmdiYTU1NTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1y
Z2I1NjUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTQ0NDQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
cmdiYTU1NTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiNTY1
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE0NDQ0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE1
NTUxLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2ViZ2wuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtaW52
YWxpZC1kYXRhLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW5w
dXQtdmFsaWRhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LXN1Yi1pbWFnZS0yZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4cGFyYW1ldGVyLXRlc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQtMi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hdHRhY2htZW50LWZvcm1hdHMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY2xlYXIuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY29tcGxldGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhkLWRwaS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1taXBzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtdmlkZW8uaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWxpbWl0Lmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhl
bHMtaW5pdGlhbGl6ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2Rlc2t0
b3AtZ2wtY29uc3RhbnRzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC10ZXN0LWhhcm5lc3MuanM6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFnZTJESFRNTC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFn
ZTJESFRNTC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
dGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Jl
YWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNC
YWRBcmdzLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFk
QXJncy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRt
bC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1M
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRI
VE1MLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhT
dWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkRIVE1MLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3NzOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3NzLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuanMuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L3V0aWwuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcy4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pz
LXRlc3QtcG9zdC5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qczogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9q
cy93ZWJnbC10ZXN0LXV0aWxzLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy90aHVuZGVyYmly
ZC1sb2dvLTY0eDY0LnBuZzogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qczogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhh
cm5lc3MuanMuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRh
dGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRh
LXVybC1hZnRlci1jb21wb3NpdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwOV90b18wMTYtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50
eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDA5X3RvXzAxNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0LWV4cGVjdGVkLnR4dDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3Rv
XzAzMi1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVf
dG9fMDMyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4LWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1M
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0ZWQu
dHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNjVfdG9fMDcyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA2NV90b18wNzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4
MV90b18wODgtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQu
CisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDgxX3RvXzA4OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2LWV4cGVjdGVkLnR4dDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEw
NC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9f
MTA0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJE
SFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLWV4cGVj
dGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYtZXhwZWN0ZWQudHh0
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMzdfdG9fMTQ0LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzEzN190b18xNDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQ6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190
b18xNjAtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUz
X3RvXzE2MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1l
eHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE3N190b18xNzgtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRN
TC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRo
LXNjaXNzb3ItdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Np
c3Nvci10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1l
YnVmZmVyLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1h
bnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUt
cmVuZGVyYWJsZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNC
YWRBcmdzLmh0bWwuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmct
aW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVz
L21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS5odG1sLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRh
LXVybC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvY2FudmFzL3Rv
LWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDE3X3RvXzAyNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDI1X3RvXzAzMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDMzX3RvXzA0MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQx
X3RvXzA0OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3Rv
XzA1Ni5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2
NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNzNfdG9fMDgwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wODFfdG9fMDg4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wODlfdG9fMDk2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wOTdfdG9fMTA0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MDVfdG9fMTEyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNf
dG9fMTIwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9f
MTI4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTY5X3RvXzE3Ni5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTc3X3RvXzE3OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVz
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9j
b2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1m
cmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBp
eGVsc0JhZEFyZ3MuaHRtbC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9wbmctaW1hZ2UtdHlwZXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwuCisgICAg
ICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5z
aW9ucy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRl
bnNpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9n
bHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxvb3AtY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0t
b2Ytc3F1YXJlcy1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIu
MC55L2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMt
Y3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL21p
c2MvYmxlbmQtaW50ZWdlci1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQt
aW50ZWdlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJp
bmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29sb3JtYXNrLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJz
LXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91
dHB1dC1sb2NhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25h
bC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmdsLzIuMC55
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9t
dWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVz
My9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
LzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFs
L2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2Ft
cGxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVu
Y3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sOgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRh
LXVybC1hZnRlci1jb21wb3NpdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWF0dHJpYnV0
ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L21ldGhvZHMuaHRt
bDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLWJwdGMuaHRtbDoKKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3MzdGMtYW5kLXJn
dGMuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRt
bDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXcuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLXdlYmNv
ZGVjcy12aWRlby1mcmFtZS5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jaGFyYWN0ZXItc2V0Lmh0bWw6CisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9j
b25zdHJ1Y3RvcnMvZ2xzbC1jb25zdHJ1Y3QtdmVjLW1hdC1pbmRleC5odG1sOgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL0NHX0RhdGFfVHlwZXNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9DR19TdGFu
ZGFyZF9MaWJyYXJ5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEJ1aWx0
SW5PdmVyaWRlX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbW1hX2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzFfdmVydC52
ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMl92ZXJ0LnZlcnQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdHJ1Y3RfdmVydC52ZXJ0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEZ1bGxfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3Jy
ZWN0RnVuY092ZXJsb2FkX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1
bmNPdmVybG9hZF92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jdGlv
bjFfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0TW9kdWxlX2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMV9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9Db3JyZWN0UGFyc2UyX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBh
cnNlVGVzdDFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2VUZXN0
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdFN3aXp6bGUyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6
bGUyX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUzX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFZlcnNpb25fVjEwMF9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9GdW5jdGlvblBhcmFtX3ZlcnQudmVydDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudmVydDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0M19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L1BhcnNlVGVzdDRfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNzaXZlX0Nv
bnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlz
c2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvVGVybmFyeU9wX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvVGV4dHVyZV9S
ZWN0YW5nbGVfU2FtcGxlcnNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTEw
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMV9mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2FycmF5MV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Fy
cmF5Ml9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5M19mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2FycmF5NV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5Nl9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5N19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2FycmF5OF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OV9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTFfdmVydC52ZXJ0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9hdHRyaWJ1dGUyX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0
cmlidXRlX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnJlYWtfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAw
OV90b18wMTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDQxX3RvXzA0OC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90
b18wODguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTEzX3RvXzEyMC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xNDVfdG9fMTUyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18x
NjAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzE3N190b18xNzguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWExX3Zl
cnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvY29tbWEyX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEz
X3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWVudF9mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2NvbmRpdGlvbmFsMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2NvbmRpdGlvbmFsMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbmRpdGlv
bmFsM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0RnVuY19mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9yMV9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2NvbnN0cnVjdG9yMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Nv
bnN0cnVjdG9yM19WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29udGludWVf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEwX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlMTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEz
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxOV9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlM19m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlNF9mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2RhdGFUeXBlNV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlNl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlN19mcmFn
LmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlOF9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2RhdGFUeXBlOV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rl
ZmF1bHQuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGVmYXVsdC52ZXJ0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9kb3doaWxlX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzJf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjM19mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2R2ZWM0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5z
aW9uMl9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uM19WMTAw
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNV9WMTAwX2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNl9WMTAwX2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uN19WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZXh0ZW5zaW9uOF9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0
ZW5zaW9uOV9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZmxvYXQyX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZmxvYXQzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZmxvYXQ0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRP
bmx5MV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTJfdmVydC52
ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkzX3ZlcnQudmVydDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5NF92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2ZyYWdtZW50T25seV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9u
MTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjJfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2Z1bmN0aW9uM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0
aW9uNF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uNl9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2Z1bmN0aW9uOF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9u
OV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2ZWMyX2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaHZlYzNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVj
NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIxX2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWRlbnRpZmllcjJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9pZGVudGlmaWVyM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMV9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMl9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2luY3JlbWVudDFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNy
ZW1lbnQyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50M19mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDRfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9pbmNyZW1lbnQ2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5w
dXQucnVuLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjFfdmVydC52ZXJ0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9tYWluMl92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4z
X3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWF0cml4X1YxMDBfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9ub3JtYWxfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9wYXJzZXIxMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjFfdmVydC52
ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXIzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyNF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjVf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI2X2ZyYWcuZnJhZzogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcGFyc2VyN19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Bh
cnNlcjhfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI5X2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVw
cm9jZXNzMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MyX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczNfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzNF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3ByZXByb2Nlc3M2X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2Vzczdf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zY29waW5nMV9mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3Njb3BpbmcyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
c3RydWN0MTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxMV9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9zdHJ1Y3QyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0M19m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9zdHJ1Y3Q1X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3Ry
dWN0Nl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDdfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q4X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3RydWN0OV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUxX2ZyYWcu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenpsZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9zd2l6emxlM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3R5cGVj
YXN0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybTFfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC91bmlmb3JtX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvdmFyeWluZzFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nMl9mcmFn
LmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmczX2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvdmFyeWluZ19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlY3Rv
cl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24yX1YxMDBfZnJhZy5mcmFn
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uM19WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvdmVydGV4T25seTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92
ZXJ0ZXhPbmx5X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVydGV4X3ZlcnQudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvd2hpbGUyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGVfZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9wcm9ncmFtcy9wcm9ncmFtLXRlc3QuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVm
YXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcv
Y29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNv
bHV0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbDoKKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy92aWRlby1yb3Rh
dGlvbi5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC1jb2xvci1i
dWZmZXItZmxvYXQuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9leHQtdGV4dHVyZS1ub3JtMTYuaHRtbDoKKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0
ZW5zaW9ucy9vZXMtZHJhdy1idWZmZXJzLWluZGV4ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJl
ZC1leHRlbnNpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXctaW5z
dGFuY2VkLWJhc2UtdmVydGV4LWJhc2UtaW5zdGFuY2UuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvYXJyYXktZXF1YWxp
dHkuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxvb3AtY3Jhc2guaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2ds
c2wzL21hdHJpeC1yb3ctbWFqb3ItZHluYW1pYy1pbmRleGluZy5odG1sOgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJv
Y2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQt
aW50ZWdlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvcHJvZ3JhbXMvZ2wtZ2V0LWZyYWctZGF0YS1sb2NhdGlvbi5o
dG1sOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29sb3JtYXNrLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25z
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWw6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21p
c2MvdGV4LXN0b3JhZ2UtY29tcHJlc3NlZC1mb3JtYXRzLmh0bWw6CisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZNdWx0
aXNhbXBsZVRlc3RzLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9lczNmUHJpbWl0aXZlUmVzdGFydFRlc3RzLmpzOgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25h
bC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9k
ZWZhdWx0X2Ziby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxl
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2dsc2wtY29uZm9y
bWFuY2UtdGVzdC5qczoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy9qcy10ZXN0LXBvc3QuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvY29tcHJlc3NlZC10ZXh0dXJlLXV0aWxzLmpzOgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2NvbnRleHQt
bWV0aG9kcy5qczogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvdGVzdHMvZXh0LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0LmpzOgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQt
Y2FsbHMuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
dGVzdHMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12
aWRlby5qczoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90
ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0zZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZp
ZGVvLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm06CisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTAubXA0
OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92
aWRlby1yb3RhdGlvbi0wLnZwOS5tcDQ6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTE4MC5tcDQ6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9u
LTE4MC52cDkubXA0OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0yNzAubXA0OgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0yNzAudnA5Lm1w
NDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMv
dmlkZW8tcm90YXRpb24tOTAubXA0OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi05MC52cDkubXA0OgorCiAyMDIyLTAx
LTI2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
R0wgY29uZm9ybWFuY2UgdGVzdHMgdGhhdCBhcmUgcGVuZGluZyB1cHN0cmVhbWluZyBzaG91bGQg
bm90IGR1cGxpY2F0ZSB1bm1vZGlmaWVkIGZpbGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2NDVk
MzgxYTI1ZjQxOGIxYmYxN2U2MmI3Njc1NmYyYTc4OWIxNmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFByb21vdGVkIFVSTCBmcm9tIGh0dHA6
Ly93d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnIHRvIGh0dHBzCi1CbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xv
Z28uanBnCi1DT05TT0xFIE1FU1NBR0U6IFByb21vdGVkIFVSTCBmcm9tIGh0dHA6Ly93d3cub3Bl
bmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnIHRvIGh0dHBzCi1CbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnCi1U
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKLUZB
SUwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDEwMzg4MzIzY2E2MTUwNDRlN2FjZmZmZjBmM2FhMmE3YWExZWRjZGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVk
IGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5o
dG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCI+cmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLmh0bWw8L2E+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPGRpdiBpZD0i
aWZyYW1lIj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQaXhlbHNCYWRBcmdz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBp
eGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
YWFjYTg2ZTc1NDc1NTA1MWU2Y2M1OTk2YzhlY2VmZDE4NTRhYjUzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFByb21vdGVkIFVSTCBmcm9tIGh0dHA6Ly93
d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnIHRvIGh0dHBzCi1CbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28u
anBnCi1DT05TT0xFIE1FU1NBR0U6IFByb21vdGVkIFVSTCBmcm9tIGh0dHA6Ly93d3cub3Blbmds
Lm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnIHRvIGh0dHBzCi1CbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cub3BlbmdsLm9yZy9pbWcvb3BlbmdsX2xvZ28uanBnCi1UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbAotRkFJTAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQ
aXhlbHNCYWRBcmdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2YmU3MTNh
MDdjMTQ0NTc1NWFhMDEyMGU1Y2E0MzhlY2ZjN2JiNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMu
cHkuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJl
c291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0i
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVh
ZFBpeGVsc0JhZEFyZ3MuaHRtbCI+cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvYT4KLTxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9InJlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRB
cmdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
ZTY5NjEzOTYwNTE2MzYzYjM1ZDRkMTcxOThjN2ZhY2JjN2QyOGU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
LSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQot
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci08bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KLTxzY3JpcHQg
dHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+Ci0K
LVRlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdnbCcpOwotICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29u
dGV4dChjYW52YXMpKTsKLSAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnRlc3RSZWFkUGl4ZWxz
ID0gZnVuY3Rpb24oZ2wpIHsKLSAgLy8gd2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRv
IGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAotICAvLyBvciBiZWNhdXNlIHRoZSBidWZm
ZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25zLgotICBhc3NlcnRTb21lR0xFcnJv
cihnbCwgIm5lZ2F0aXZlIHdpZHRoIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygw
LDAsLTEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhB
cnJheSg0KSk7fSk7Ci0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAgIm5lZ2F0aXZlIGhlaWdodCIs
Ci0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsLTEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICBhc3NlcnRP
aygibmVnYXRpdmUgeCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoLTEsMCwxLDEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkp
O30pOwotICBhc3NlcnRPaygibmVnYXRpdmUgeSIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQ
aXhlbHMoMCwtMSwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3
IFVpbnQ4QXJyYXkoNCkpO30pOwotICBhc3NlcnRPaygiaGVpZ2h0ID4gYmFja2J1ZmZlciBoZWln
aHQiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxNiwxNywgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgxNioxNyo0KSk7fSk7
Ci0gIGFzc2VydE9rKCJ3aWR0aCA+IGJhY2tidWZmZXIgd2lkdGgiLAotICAgICAgZnVuY3Rpb24o
KXtnbC5yZWFkUGl4ZWxzKDAsMCwxNywxNiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAg
ICAgICAgICBuZXcgVWludDhBcnJheSgxNyoxNio0KSk7fSk7Ci0gIGFzc2VydE9rKCJ3aWR0aCwg
aGVpZ2h0ID0gMCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDAsMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgwKSk7fSk7
Ci0gIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2Yg
bmVnYXRpdmUgd2lkdGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBt
YXRjaCB0aGUgZGltZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgZm9ybWF0
IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5GTE9BVCwgZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KjQpKTt9KTsKLSAgLy8g
d2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2
ZSB3aWR0aAotICAvLyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRo
ZSBkaW1lbnNpb25zLgotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgImJhZCB0eXBlIiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5BTFBIQSwgZ2wuRkxPQVQsCi0g
ICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMSo0KSk7fSk7Ci19Ci0KLVRlc3RzLnRlc3RSZWFkUGl4
ZWxzU09QSU1HID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImkiKTsKLSAgICB3aGlsZSAoIWltZy5jb21wbGV0ZSkge30KLSAgICB2YXIgdGV4
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleCk7Ci0gICAgLy8gU09QIGZhaWx1cmUKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwg
InRocm93IGJlY2F1c2UgaW1nIGlzIGZyb20gYW5vdGhlciBkb21haW4iLAotICAgICAgZnVuY3Rp
b24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgbnVsbCk7Ci0gICAgYXNzZXJ0T2soImNhbnZhcyBzdGlsbCBvcmlnaW4tY2xlYW4iLAotICAg
ICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICAgIGdsLmRlbGV0ZVRl
eHR1cmUodGV4KTsKLX0KLVRlc3RzLnRlc3RSZWFkUGl4ZWxzU09QQ2FudmFzID0gZnVuY3Rpb24o
Z2wpIHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImkiKTsKLSAgICB3
aGlsZSAoIWltZy5jb21wbGV0ZSkge30KLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjIik7Ci0gICAgYy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShpbWcsIDAsIDApOwot
ICAgIGFzc2VydEZhaWwoImNhbnZhcyB0aHJvd3MgYmVjYXVzZSBub3Qgb3JpZ2luIGNsZWFuIiwK
LSAgICAgIGZ1bmN0aW9uKCl7Yy5nZXRDb250ZXh0KCIyZCIpLmdldEltYWdlRGF0YSgwLDAsMSwx
KTt9KTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgLy8gU09QIGZhaWx1cmUKLSAgICBhc3NlcnRU
aHJvd05vR0xFcnJvcihnbCwgInRocm93IGJlY2F1c2UgY2FudmFzIGlzIG5vdCBvcmlnaW4gY2xl
YW4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3Jp
Z2luLWNsZWFuIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsK
LSAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Ci19Ci0KLVRlc3RzLmVuZFVuaXQgPSBmdW5jdGlv
bihnbCkgewotfQotCi08L3NjcmlwdD4KLTwvaGVhZD48Ym9keT4KLTxjYW52YXMgaWQ9ImdsIiB3
aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjEy
OCIgaGVpZ2h0PSIxMjgiPjwvY2FudmFzPgotPGltZyBpZD0iaSIgc3JjPSJodHRwOi8vd3d3Lm9w
ZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dvLmpwZyI+Ci08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGVmZDc4MWM5MGZiY2UzMDdlODJmODM4ZjFhZWYy
MjlkOTVkMmFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgot
Ki8KLQotLS0+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIu
Li91bml0LmNzcyIgLz4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBz
cmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWph
dmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCI+Ci0KLVRlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsK
LSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7Ci0gICAgdmFy
IGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7Ci0gICAgZ2wudmlld3Bv
cnQoMCwwLGNhbnZhcy53aWR0aCxjYW52YXMuaGVpZ2h0KTsKLSAgICBnbC5jbGVhckNvbG9yKDAs
MCwxLDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZG
RVJfQklUKTsKLSAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotICAgIHJldHVybiBbZ2xd
OwotfQotCi1UZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIHRleCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwot
ICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmVNYXApOwotICAgIHJldHVybiBbZ2xdCi19
Ci0KLVRlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24oZ2wsIHRleCwgdGV4Q3ViZU1hcCkgewotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1
cmUodGV4KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCBudWxsKTsK
LSAgICBnbC5kZWxldGVUZXh0dXJlKHRleEN1YmVNYXApOwotfQotCi1UZXN0cy50ZXN0VGV4SW1h
Z2UyRCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTsKLSAgICB2YXIg
aW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsK
LSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFS
KTsKLSAgICB2YXIgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRl
bnRpdHktZnJhZycpOwotICAgIGdsLmJsZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOwotICAgIGYu
YXBwbHkoKTsKLSAgICBmLmRlc3Ryb3koKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGYgPSBu
ZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7Ci0g
ICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7Ci0g
ICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAgIHZhciB2YWxpZF90YXJnZXRzID0g
WwotICAgICAgICBnbC5URVhUVVJFXzJELAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICAg
ICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgICAgICBnbC5URVhUVVJFX0NV
QkVfTUFQX05FR0FUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVf
WiwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCi0gICAgXTsKLSAgICB2
YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkgewotICAgICAgICBhc3NlcnRPayhmdW5j
dGlvbigpe2dsLnRleEltYWdlMkQodCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgYyk7fSk7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0
LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICB9KTsK
LX0KLQotVGVzdHMudGVzdFRleEltYWdlMkROb25TT1AgPSBmdW5jdGlvbihnbCkgewotICAgIHZh
ciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB3aGlsZSAoIWltZy5j
b21wbGV0ZSkge30KLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0g
ICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZyww
LDApOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGNyb3Nz
LW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigp
e2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgaW1nKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleElt
YWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwK
LSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLX0KLQotVGVzdHMuZW5kVW5pdCA9
IGZ1bmN0aW9uKGdsKSB7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktZmxp
cC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7
Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1h
aW4oKQotewotICAgIHRleENvb3JkMCA9IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgMC4wLCAwLjAp
OwotICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgaWQ9ImlkZW50aXR5LWhmbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4K
LWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2
ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29vcmQwID0gdmVjNCgxLjAt
VGV4LnMsIFRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwg
MS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktZnJhZyIgdHlwZT0ieC1z
aGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotdW5pZm9ybSBz
YW1wbGVyMkQgVGV4dHVyZTsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigp
Ci17Ci0gICAgdmVjNCBjID0gdGV4dHVyZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCk7Ci0gICAg
Z2xfRnJhZ0NvbG9yID0gYzsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPjxib2R5PgotPGNhbnZhcyBp
ZD0iZ2wiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImMi
IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZhcz4KLTxpbWcgaWQ9ImkiIHdpZHRoPSIy
NTYiIGhlaWdodD0iMjU2IiAgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29B
QUFBTlNVaEVVZ0FBQVFBQUFBRUFDQVlBQUFCY2NxaG1BQUFUVkVsRVFWUjRuTzNkK1ZQVWQ1N0hj
ZjJiOWs5WSt6NDQrcUs3T1pvR0ZWQTVWZkJHemFoOWN4cE56R0VPb1J1YTVsQkV1ZS9ESzRmWjdN
YXBtU20zTWxzaHU4eE9kQ3BESnQzdi9hRUJBVUhBT01HNHowZlY1M2ZxVS9WNmZkN2ZUL2UzMmJF
REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd092QmthcjdsKzMrR3dCc2s4eFVyVDByVGI4dngyUTQ1
amFubHU3WXNXUG5zZ1hnVGVZd2FrODVVM1h2NVppTTMrWGJVaC9sMmRJQ0JjNjA4MFdaMXVyOTJi
YVNIUlFCOEdheUdkVVd1MUh6b1NORk8rWk0xZjJjYlRMTTUxbFQ1d29jNXJrRE9iYlovVm0yU0Vt
MjNWdnN5amhWNW5KUUJzQ2J4R1pRVnRtTjZwNE1vL1lQZHFOR0hLbGF5VXJYSjl6V2xFU2gweEl2
enNtWUwzSFo1NHB6TW02VnVSeVJNcGZUVytweVVBYkFtOEJtVk5WbkdOVFRkcVA2dnpPTUdyR25h
TVNacXBOc2sxN3liS2xTNkRUTC9peGJvdFJsajVmbE91YkwzSTY1TXBmalZybmJFYWxZS0lOU2wz
MzV2UUdBM3dLYlVXMnhHZFdSREtQNjZ3eWpXaFlMd0pHaUZXZWFUckpOQm5GYlUyU1AzU1Q3czZ4
U21tdVhjcmN6VWU1MnhzdHpIZlBsYnNkY3VkdDVxeXpYM2xLV2x4a3N6WEdlSzhteG55ekp5U2pl
UVJrQXJ6ZWJRVmxsTTZwN2JVYjE0OVVGNEVqVlNtYWFUckxTOWVLeXBNZ2VlN29jeUxaSm1kc2hG
WG1aVXBIblhGRUdCL096SnNyZGpxRXl0L05tV2E0OVhKYnQ5SmE2TWs0VnU3aEVCRjVMTnIycTNt
WlF6OWdNNnU5WEZFQnFzZ0NjYVRySlhKZ0VjaTBwc3RkaGt2M1pOaW5OVFpiQW9md3NPWlNmSlFm
ek1xVTh6NWtvZHpzU1pibU9lSVhiK1hXNTJ6RmE1bkxjS25QWkkyVUxsNGpGZktJQXZCN01PclhG
WmxCSGJBYjExemFqK2ttR1ViTnVBV1NtNjVkS1lIZEdtaFJsV3FROHp5RkhDbkxrK0w1Y09WNlVL
MGNLWFZLNUoxc081bWRLaGRzcFphdktvRFRYMFZQaWNpVExJSHRGR1ZBSXdLL05ZbEJXMmZUcVhw
dEIvZGhtU0o3K0x5cUFySFM5NUppVEpWRGdORWxsUVpaNEtndWxycnBVNnF0TEpYQnN2NXd0M3lN
bjlydmxhSUZMRGk4dmcxeEg0bUIrNXArV2wwRnBqcjJsSk1jUkxNNnlueXZPempoeElJdDdBK0JY
WTlHcjZxMEw0LzlTQWFSb3hMN3cvTDlXQVdTYkRKSnJUWkZpZDRaNGp4WkpVLzF4dWZIaE9lbStl
azZpbDAvTEI3NHFhVHhUSm9HaisrVnMyUjQ1dmo5WGpoVGt5T0hkQzQ4SkMyVndhSGZtbnlyY3pu
K3ZjRHNteW5MdFF5VTVHVGVMY3pMQ3BUazJUM0dXN1ZoeFZzYWU3ZDRmNEkxbDFxa3RWb002WWpP
b3ZyWWExRDhzRm9COVdRRTQxNWtBOHUxcGN2UkFqbndVT2lMRExRRzUxOTBvOTI0MnlsUkhuUXlH
L1hMejZubUpYcXFXRDN5VjBuQzZWUHhIOThuWnN0MXlmRit1SEMxMFNkWGViRG1Vbnl5RHFvTHM3
dzdsWjM1YjduYjhzY3h0LzdkU2wzMmtKQ2VqcXlRbjQwcEpUa2JaRGlZQzROV3phSlZWVnIycTEy
WlFQYllhMUg5ZnV3QjBTd1dRbGE2WExGT3lBQW95VGZMVzRUM1NmdVdNM0wzUklBLzdMOHZEL3N2
eVplOGwrZXpXMjNLdnUxRW1PMnBsb05rbjNWZlBTZXZiMWZLK3QxSWF6NVJKN2NsaThSMHBrdE9s
K1hLc0tGa0dCeGZLb0hKdjFsOFA1bWYrdVNMUDhmdnlYTWRNbWRzUktYYzVxb3RkR1FYYnZWL0FH
OFdpVjlWYjlhb1pxMTQxYXpPb3hXYmNYQUhrV2xPa0pDOURhazhYeTYxUEw4aURub3RMQmJCVUJI
Mlg1WXZibCtSQnowVzVlNk5CSnRwcnBML1pKemMvT2kvWFAzaExXaTZla3ZjOGg2V3V1a1M4VmMv
S1lQRUM4V2hoenBPcWd1enZLdmRtZlhWNGQyYjN3ZnpNOXcvbFpURU5BSytDV2Fld1dIV3FpRTJ2
K3RxcVYvMncyUUxJTmhra1AyTmgvSzg5SW1OdElmbWk5OUt6OFBjbDE1ZEw2NUo4MFh0SlByLzF0
dHkvMlNoM3V4dmt6dlY2R1krRnBPK2FWNjUvOER1SlhEd3BWenlIcE83VVFobVU1TXZSSXBkVTdj
MlJRN3V6NU1SKzl4K09GYm51SGkzTWlWUVZ1S29QNzg0dTJ1NzlBMzdUTEZwbGxWV242clhxVlkr
dGV0V1BHeGJBc2d2QXZVNlR2SFZvdDhTdW5KWTdOK3JseTc2MWcvOWxiM0o5c1d4OWZ2dVNmSDc3
YlhuUWMxSHVkVGZJVEZlZGpMV0ZwUGVhUjdvK2VFdkNqU2ZseW9WRFVsZGRLc0hqQitUQzRVSTVW
WnduVlFVNWliY3E5bngxdWpTLzU4UUI5OVhxWW5mNURxWUI0T1ZZZE0vR2Y2dGU5WS9rOC8vR0Jl
Q3lHS1hFblNFMTFRZWs1NVB6Y3Y5bTQ4clFyeFA4TDI1ZmtpOXV2eTJmcjFxZjNicVluQXh1Tk1o
MFo1Mk1SSU55KzFPUFhQL3dkOUorNVl3MDE1K1FkODRmbEpxVHhYTGhjSUdjTE03NytVaEJ6dDh1
VkJhMm5xdmNlL1pzeFo2eTdkNUw0RGRsY2Z5MzZGVmZXL1NxSDZ3R2xhd3VnTVd2QVR2VGxoV0F5
U0I1R2FseWRIK09mRlJ6UkVhalFmbjgxdHZyaC82RndWOWNGK1d6V3hmbHdhMkxjci9ub3R6cmJw
U1o2L1V5MVZVbmt4MjFNdHdTa0o1UExrakhlMmVscWY2NFhENTNVRUluRGlRdUhDNllyeTdPbXox
VzVIclkrRmJGNFIxTUE4RG1XTFRLS3N1eThkOXFVTCt3QUpaL0MzQ1BNMTNPSHR3dGJlK2VsdW5y
OWZMRnVzRi9QdlNmMzFvNytBOTZucTM3UFJmbGZrK2ozTCtaL0ZqeDdvMEdtZTZxazRuMkdobHE4
VXZQeCtlbC9jb1p1VlozWEM2ZnEvaTU3bFR4MzJwT0huZ1VPbFVjL2pSNGxFdENZQ01XbmFyZW9s
Zk5XUFNxV2F0QjlkT2FCYkRHbDRCY0ZxTVV1MjBTT25WQWJuNThUdTUyTjI3cXRQOThnOUEvV0F6
OVF2QVgxNzNGRXVodWtMdmREY25Kb0xOV3htTTFNaGp4eTgyUHprbm4rMmNTc1hkUHo0Y2JUOHgr
R0toOCtGSHdTTzBPU2dCWW0xbW5zSmgxcW9oRnIxd1kvNVh4WndXdy90ZUFzOUtUdnd0d1pIKzJY
QTFWeVhCclVCNzBYRnovdEY5bnpOOUs4TzkxTjhpOWhmQXZyanMzR3VUT2pYcVpYbmhFR0crdmtk
Rm9VQWJEL3A5N1BqNy90NTZyNTcvcHUrYjVwT1hkNnFQYnZkZkFhOGVpM1ZWbDBhbDZMWHJsWTR0
TythTkZyMHBzdGdEMk9OTGx6TUhkRW4ybldxWTY2K1N6bHh6ekh5d2I4NThML1RyQnYzdmpXZmdY
MTh6MTVKcnVxcE9wemxxWmFBOGx4bUtodjQ5R2czL29EL3MrM3U2OUJsNDdGcDJpM3FKVnpWaDB5
bG1yVHZtVFZaKzhBRno1SHNEekJaQmpOa3B4cmsyQ3B3NUk5MGZuNU02TmhoZWU5bHNPZnZmbWcz
L24rclB3ejF5dms1bXVPcGxlV0pNZHRmSEpqcHJ2Smp0cUtBQmd1ZVQ0cjRpWWRjcXZ6YnBkUDFq
MHl2anFBckN2OVNKUXVsN2N0bFNwMnBjdEh3WXJaYWdsSVBkdk5xNS8yci9nWW05VHdiK3g5ZUJQ
ZDlYSlZISVNtSi9xclAxbXVyT0dSd0JnT1pOMlY1VkZwK3kxYUJmR2Y1MHlzVlFBYTN3SFlMRUFz
dEwxc3R1UkxxY3I4cVgxOGltWjdLaVZCejBYWHhqNmpaL3ZOeG44NnhzSFAva0lVQ2RUblhYeDZj
N2F2MHgxMVBSczkxNERyeDJUVGxGdjBpcG16RHJsckVXbi9NbWlWOGxtQ2lEYmJKQUR1VFlKbnR3
dk42NytUbWF1MXlkRHZtYm90MzZ4OXl6NDlTOFovTnJGTlQvZFZmdjdxYzY2azl1OTE4QnJ4YXhl
UGY0cjRoc1ZnSFBoOXdCenJTbFNWWlF0SHdRcVpURGlsN3ZkalZzNzdiY1kvSm10QjErbU9tc1Rr
eDIxVDZhNmFrZTJlNitCMTQ1SnU2dktwRlAybXJUS3gyYnRzL0YvOFZ1QUx5cUEzZlkwT1YyZUx5
MlhUc3BFZTQzY2Y4R3ovVFlFWHlZN2FtV3lveVkrMVZIei9WUm5YZk4yN3pYdzJsa2EvN1hLV1l0
VytaTkZwNVRORkVDMnlTRDdYVllKbk5nblhSKytKZE5kZFpzKzdYK2Q0TmZLWkVlTlRIYlV6RTky
MUR5YTVQSVBXQ2xOcmJDWXRjbngzNlRkOVlOWnA0aGJkS3FOQzJCaC9LOHN6SkwzL1lkbElPeVRP
emNhdHZ3eDNzWTMrcjhvK0RMWkVVcE10TmM4bWVoZy9BZWVZMUx2cWpKcGxiMG1qZUt4V2F2NDBh
eFZKbFlYd0ZwdkFtYW02U1RmbmliVlpYa1NlZnVrak1WQ2NyZDdFeVArZXFmOWxvSmZ1Mkh3Snpw
cVpLSzlSc2JiUS9ISjl0RDNrNTAxalAvQWFpYU5vdDZrU1k3L1pxM2lKN05PS1lzWGdDOHFnQ3lU
UWZibFdNVi9mSjkwZm5CV0pqdHJWNHozV3pudG43dlJ2LzU4NkxjYS9HY3JORC9SSG5vMDJjNzRE
NnlRcGxaWVRGcEZ4S1JWTEkzL0t3dmcrUmVCN0NuSjN3RndXVkxrY0dHV3ZPYy9MUDNOWHBtNVh2
L0xUL3ROQm45eUU4RWZUNFkvTVI0TFBSbHZEekgrQTZ1Wk5ZcEtrM1pYYi9yQytHL1NLaEtiTFlD
OGpEUTVWWlluNFlzblpMUXRLSGR1YkM3MG14M3pmMG53eDl0RE1oNEx5VmdzRkIrUEJiOGZiMmY4
QjU2VHJsSFVwMnNWMHlhTlltbjgzMHdCWktYclpWKzJSWHpIOTBuSCsyZGxvcU1tV1FDdjRMUi8r
ZUNIbG9LL0VINFpqd1hueDJQQlIyUHRRY1ovWURtVFJwbWFybFkwbVRTN3ZrclRLUDVxMGlwK051
dVVZdG1nQUJ5cFduRlpqSEtvSUZPdWVBOUpYNU5IcHJ2cU5oMzZ6WjcydnlUNEMrRlBqTFlGbjR6
SGdvei93R29temE3ZDZacGRNWk5HOFkxSm8zaGkxaTQ4LzIraUFQSXlVdVZrcVZ1YUdrL0lTRFFv
TTlkZjNXbS9NdmcxV3c3K1dDd2tZMjFCR1cwTHhrZmJndCtQeFVLTS84QnFhWnBkdTlQVWlpYVRS
dkdWU2F2NHk5SW5BQnNVUUdhNlhvcXlMZUk5VmlUdDc1MlI4ZmJRcXNDLzR0TitpOEVmYXd2S2FE
UW9JOUhBL0doYjhKdXhLT00vOEJ5VDVsOVQwOVNLUUxwR01XVFNLdjdUckZVOE5ldVVpZVVGWUZ2
MVl5Q09WSzNrbUpQai83dmVnOUo3elNOVG5iV3Y2TFIvQmNGZldDUFJRSHdrR3ZqTFNEVEFtMy9B
ZXRMVnlqeVRSdm1PU2F1WU5Pc1UzNXAxeW45c1ZBQnVXNnFjTE0yVmF3M0haYmcxSU5OZHIrYTBY
L3N6L0swRmZ6UWFsTkZvSUhuNlJ3Ty9IMmtMOHVZZjhDSW16YTVDazI3WGUyYXRjc3FpVThiWExZ
QVVqV1NtNjZRd3l5emVZNFVTdTNKYXhtS2h0VVAvaTAvN21oV2hYeEg4dHZXQ0g1U1JhRUJHbzRI
RVNLdi95V2hyZ01zL1lEUFNkY29pczFieHZrV25mR3JSSytOckZZQTlSU3ZaWm9NYzNPdVVkendI
NWZhMUN6TFJVZk5QUGUzSDF6anQxd3YrNGhwdURjUkhvb0h2UjZJQkx2K0F6VExybEVWbW5mS2hS
YWQ4YWwzejU4QzA0cmFseUltU1hMbldjRXlHV3YweTJWa3JVMTNQaC82bFR2c05nais2UWZCSFdn
TXkzQnFRNFZiLy9IQnI0TkZJMU0vbEg3QVZGcjBxWU5HckhscjFxcWMyZ3lxKy9FMUFaNXBPQ3JO
TTRqbGFJRzFYVHN0b1cvQ2ZkOXEvVlBBRE10enFUd3kzK0o4TU0vNERMMlhuaWhJd3F1STJvMXJz
S1JySk5obWtZcTlETGwrb2tGdWZuSmZ4OXBwbm9WL3ZjL3V0bnZheE5jYjhUUVUvSU1PdGZobHE4
Y2VIVy96ZkQwY0RGN1o3STRIZnFwMDJ2U3BnMDZzZTJnenFweGxHVGR5ZW9wRmNhNG9jTDNISnAv
VkhaVERpazRtT3pZMzRMMzNhYis3RVh3eit3dkxORDdjRWJvMjBCakszZXhPQjM3S2ROcU02WURP
b0gyWVkxVStkYWJwNFFhWkpMaHpaSzlGM3EyVWtHcENKRFUvNzBLczc3VGNNdmwrR1dueUp3WWp2
eVZCTDRKM3QzanpnVGJEVFpsUUhNb3lhaDlsbS9kT0tQYzc0cGZQbDB2UHhPUm1MaFg2ZDAzNVR3
VjlZRVY5OHNNVS9OUkRtOGc5NFZYYmFVN1VCbDhYNDhFU0o2K2tuOVVkK0hnaDdFdVB0b1ZkejJy
ZHRKdlF2RHY1Z3hMZXd2SDhjaUhnN2hsb0NsdTNlTk9CTnN0TnRTdzM0anhjOWJIMm5lbmFveFRj
MzNoNmFINHVGNHVQdHdjUjQ4bi91L1JOTys4MEczeWRERWQvL0RJUjk5d2JDdnNidDNpemdUYlR6
YXFneTBQUHh1ZkJJTkJBYmJ3ODlHbytGWnNkam9ibng5dERjYUN3NFA5b1dqSS9GZ29teFdDQXgr
Z3BPKytHMXh2eFZ3UitNK0dRdzdQMXhNT3g3UEJqMjlmWkh2RlhidlZIQW0ycm40cHJzcktrZDZ3
aUZSOXREc2ZIMm10aElMUFJvckMwNE85WVdtaHVOaGVaRzJ3THpJOUZnZkxRdGtCaU5CaExQaGY0
WG5QYUxheURpazRHd1R3YkMzdjhkYVBZK0hJajRQdXB2OWpMK0E3K0NuY3ZYZUh0TjdXZ3NHQjZO
aFdLanNWQnNKQnA4TkJvTnpvNUVBM01MYTM2NE5SQWZhZlVuaHBQcjVVNzdsY0dYZ2JEMzd3Tmh6
NS83bTcwakEySFBtVzNlRStEL3JaV0YwQmFzSFc0TGhrZWlnZGhJTEJRYmJnMDhHbTROekE2MytP
ZUdXL3h6UTYzKythRVdmM3lveFpkSXJtV2hiM2srOUlOTG9WOEt2dlEzZStNRHpkNGYrcHM5LzlF
ZjlyWU5SSHlPYmQ0REFBdFdGTUpvVzdCMnVEVVlIb29HWWtQUlFHeW94ZjlvcU1VM094VHh6UTFG
ZkhORExiNzVvWWd2UGhqeEpwWldlTzNnSjhQdlNmUTNlWDhhQ0h0bis1dTlNMzNOWFA0QnI3TVZo
VERjR3FnZGJ2V0hCMXY5c2NGV2Yyd3c0bjgwR1BITkRvYTljNE1SMzl4ZzJEczNFUGJPRDRTOThZ
R3dKekVROWlUNm03M1MzK3lWdm1iUGZIK3paNzZ2eWZPMHY5bjdwNzVtYjI5L001ZC93Ry9KYzRV
dzFPSVA5MGY4c2NHSVA5WWY4Y2NHd3I1SEEySHY3RUN6ZDI2ZzJUdlhsd3g5dksvWjgyMS9zK2Uv
K3BvODMvWTNlVDdyYS9ZMGNma0gvTGJ0WEwyR1dueTFBMkZmdUMvc2pmV0h2YkgrWnMranZyRDNa
bStUWjZpM3lUUFcxK3laN0d2eVhPOXI5dmkzOTA4SDhNK3dvaEI2bTd4bHQ2OTVUdzZFZmVjR3cx
NWZmNVBubmI1bVQ2RDMyb1VEMi94M0F2Z1Y3ZHl4WThmT2dTYXZ1Ny9KazlWM3phdmU3ajhJQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFJQ1YvZzl0UEpFUXUxWHZtUUFBQUFCSlJVNUVya0pnZ2c9PSI+Ci08
aW1nIGlkPSJpMiIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3NxdWFyZTEy
OC5wbmciPgotCi08L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxZGY4ODAzYjYyMGJjMjIxNDE2MTQyMzM3MDNhZDEwMjliZDY4OGQyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE2NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAi
TWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0
IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQK
LSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFs
cy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVU
IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS
IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H
IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci08
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIg
Lz4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiIHNy
Yz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2
YXNjcmlwdCI+Ci0KLVRlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsJyk7Ci0gICAgdmFyIGdsID0gd3JhcEdM
Q29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7Ci0gICAgZ2wudmlld3BvcnQoMCwwLGNhbnZh
cy53aWR0aCxjYW52YXMuaGVpZ2h0KTsKLSAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOwotICAg
IGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAg
ICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotICAgIHJldHVybiBbZ2xdOwotfQotCi1UZXN0
cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgIHZhciB0ZXhD
dWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfQ1VCRV9NQVAsIHRleEN1YmVNYXApOwotICAgIHJldHVybiBbZ2xdCi19Ci0KLVRlc3RzLnRl
YXJkb3duID0gZnVuY3Rpb24oZ2wsIHRleCwgdGV4Q3ViZU1hcCkgewotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCBudWxsKTsKLSAgICBnbC5kZWxl
dGVUZXh0dXJlKHRleEN1YmVNYXApOwotfQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0
aW9uKGdsKSB7Ci0gICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTsKLSAgICB2YXIgaW1nID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJh
d0ltYWdlKGltZywwLDApOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wu
UkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhTdWJJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGlt
Zyk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
UywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0g
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIs
IGdsLkxJTkVBUik7Ci0gICAgdmFyIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktZmxpcC12
ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5aRVJP
KTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsK
LSAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZs
aXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBI
QSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJv
eSgpOwotICAgIHZhciB2YWxpZF90YXJnZXRzID0gWwotICAgICAgICBnbC5URVhUVVJFXzJELAot
ICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgICAg
IGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9ORUdBVElWRV9aCi0gICAgXTsKLSAgICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rp
b24odCkgewotICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpewotICAgICAgICAgICAgICAgIGds
LnRleEltYWdlMkQodCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7
Ci0gICAgICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRCh0LCAwLCAwLCAwLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0
aW9uKCl7Ci0gICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFn
ZTJEKHQsIDEsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgICAgICB9
KTsKLSAgICB9KTsKLX0KLQotVGVzdHMudGVzdFRleEltYWdlMkROb25TT1AgPSBmdW5jdGlvbihn
bCkgewotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB3
aGlsZSAoIWltZy5jb21wbGV0ZSkge30KLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJh
d0ltYWdlKGltZywwLDApOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2Uy
RCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAg
ICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJv
cihnbCwgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93
IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAgICBh
c3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4gY2Fu
dmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBjKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleFN1YkltYWdlMkQgd2l0
aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1
bmN0aW9uKCl7Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24o
Z2wpIHsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0
ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0g
ICAgdGV4Q29vcmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0i
aWRlbnRpdHktaGZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRl
IHZlYzMgVmVydGV4OwotYXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29v
cmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4
LnQsIDAuMCwgMC4wKTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQot
PC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZy
YWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBU
ZXh0dXJlOwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2
ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29s
b3IgPSBjOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+PGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lk
dGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1
NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFzPgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0
PSIyNTYiICBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBUUFBQUFFQUNBWUFBQUJjY3FobUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0
NCtxSzdPWm9HRlZBNVZmQkd6YWg5Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNo
dTh4T2RDcERKdDN2L2FFQkFVSEFPTUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUF3T3ZCa2FyN2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQ
bnNnWGdUZVl3YWs4NVUzWHY1WmlNMytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5
R2RVV3UxSHpvU05GTytaTTFmMmNiVExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1
bkpRQnNDYnhHWlFWdG1ONnA0TW8vWVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0
cHpNbTZWdVJ5Uk1wZlRXK3B5VUFiQW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3
eWJLbFM2RFRML2l4Ym90UmxqNWZsT3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0ti
VVcyeEdkV1JES1A2Nnd5aldoWUx3SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pV
ZTUyeHN0ekhmUGxic2RjdWR0NXF5elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFW
bGxNNnA3YlViMTQ5VUY0RWpWU21hYVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZF
R0IvT3pKc3JkanFFeXQvTm1XYTQ5WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlY
RkVCcXNnQ2NhVHJKWEpnRWNpMHBzdGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29k
enNTWmJtT2VJWGIrWFc1MnpGYTVuTGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6
YWora21HVWJOdUFXU202NWRLWUhkR21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFz
TzVtZEtoZHNwWmF2S29EVFgwVlBpY2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcr
THlxQXJIUzk1SmlUSlZEZ05FbGxRWlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxE
aTh2ZzF4SDRtQis1cCtXbDBGcGpyMmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQv
OVNBYVJveEw3dy9MOVdBV1NiREpKclRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0
cWFUeFRKb0dqKytWczJSNDV2ajlYamhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0
UXlVNUdUZUxjekxDcFRrMlQzR1c3Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNG
b0I5V1FFNDE1a0E4dTFwY3ZSQWpud1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhx
cVdEM3lWMG5DNlZQeEg5OG5ac3QxeWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25i
OHNjeHQvN2RTbDMya0pDZWpxeVFuNDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlm
dXdCMFN3V1FsYTZYTEZPeUFBb3lUZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcy
M0t2dTFFbU8ycGxvTmtuM1ZmUFNldmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4
ZktvSEp2MWw4UDVtZit1U0xQOGZ2eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFv
WnExNDFhek9veFdiY1hBSGtXbE9rSkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JC
ejBXNWU2TkJKdHBycEwvWkp6Yy9PaS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6
cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dmek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJR
TElOaGtrUDJOaC9LODlJbU50SWZtaTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2
a3p2VjZHWStGcE8rYVY2NS84RHVKWER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIr
OXgrT0ZibnVIaTNNaVZRVnVLb1A3ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFz
Z3ZBdlU2VHZIVm90OFN1bkpZN04rcmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRU
ZklURmVkakxXRnBQZWFSN28rZUV2Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJj
cTlueDF1alMvNThRQjk5WHFZbmY1RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0Ux
MVFlazU1UHpjdjltNDhyUXJ4UDhMMjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkr
MU9QWFAvd2Q5Sis1WXcwMTUrUWQ4NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2Uv
WnN4WjZ5N2Q1TDREZGxjZnkzNkZWZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgr
T2ZGUnpSRWFqUWZuODF0dnJoLzZGd1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVu
a3gyMU10d1NrSjVQTGtqSGUyZWxxZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0
UjFNQThEbVdMVEtLc3V5OGQ5cVVMK3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2
U2YzMW83K0E5Nm5xMzdQUmZsZmsrajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2Nv
WnVWWjNYQzZmcS9pNTdsVHgzMnBPSG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRC
OWRPYUJiREdsNEJjRnFNVXUyMFNPblZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZF
dWh1a0x2ZERjbkpvTE5XeG1NMU1oanh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NP
ME9TZ0JZbTFtbnNKaDFxb2hGcjF3WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3
MFhGei90Rjluek45SzhPOTFOOGk5aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3
UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0
Z0QyT05MbHpNSGRFbjJuV3FZNjYrU3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFw
T3B6bHFaYUE4bHhtS2h2NDlHZzMvb0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlor
OEFGejVIc0R6QlpCak5rcHhyazJDcHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2
azVtdU9wbGVXSk1kdGZISmpwcnZKanRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5
U0pRdWw3Y3RsU3AycGN0SHdZclphZ2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21K
L3FyUDFtdXJPR1J3QmdPWk4yVjVWRnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFj
cjhxWDE4aW1aN0tpVkJ6MFhYeGo2alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJz
OTE0RHJ4MlRUbEZ2MGlwbXpEcmxyRVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUx
eWREdm1ib3QzNng5eXo0OVM4Wi9OckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdI
UGg5d0J6clNsU1ZaUXRId1FxWlREaWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtl
MmU2K0IxNDVKdTZ2S3BGUDJtclRLeDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNj
ZjhHei9UWUVYeVk3YW1XeW95WSsxVkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5G
RUMyeVNEN1hWWUpuTmduWFIrK0pkTmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdD
bE5yYkNZdGNueDM2VGQ5WU5acDRoYmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZ
MytyOG8rRExaRVVwTXROYzhtZWhnL0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2
QW1hbTZTVGZuaWJWWlhrU2VmdWtqTVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJR
L0hKOXREM2s1MDFqUC9BYWlhTm90NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZK
OTBmbkJXSmp0clY0ejNXem50bjd2UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZw
RnhLUlZMSTMvS3d2ZytSZUI3Q25KM3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5
RThFZlQ0WS9NUjRMUFJsdkR6SCtBNnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40
WXNuWkxRdEtIZHViQzcwbXgzemYwbnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAy
c1YweWFOWW1uODMwd0JaS1hyWlYrMlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0
Wmp3WG54MlBCUjJQdFFjWi9ZRG1UUnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlw
V25GWmpIS29JRk91ZUE5Slg1TkhwcnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216
YTdkNlpwZE1aTkc4WTFKbzNoaTFpNDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012
ZzFXdzcrV0N3a1kyMUJHVzBMeGtmYmd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJ
bkFCc1VRR2E2WG9xeUxlSTlWaVR0NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hi
OEp1eEtPTS84QnlUNWw5VDA5U0tRTHBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2tt
SlBqLzd2ZWc5Sjd6U05UbmJXdjZMUi9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2
bU9TYXVZTk9zVTM1cDF5bjlzVkFCdVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpR
YWxORm9JSG42UndPL0gya0w4dVlmOENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3
eXl6ZVk0VVN1M0pheG1LaHRVUC9pMC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJn
TXMvWURQU2Rjb2lzMWJ4dmtXbmZHclJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVm
TlBQZTNIMXpqdDF3dis0aHB1RGNSSG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThD
MDRyYWx5SW1TWExuV2NFeUdXdjB5MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIv
L0hCcjRORkkxTS9sSDdBVkZyMHFZTkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhU
c3RvVy9DZmQ5cS9WUEFETXR6cVR3eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lx
OURMbCtva0Z1Zm5KZng5cHBub1YvdmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBj
REY3WjdJNEhmcXAwMnZTcGcwNnNlMmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1P
elkzNEwzM2FiKzdFWHd6K3d2TE5EN2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2Rh
YnA0UWFaSkxoelpLOUYzcTJVa0dwQ0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNq
emdUYkRUWmxRSE1veWFoOWxtL2RPS1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01V
L05SRG04Zzk0VlhiYVU3VUJsOFg0OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVn
eExld3ZIOGNpSGc3aGxvQ2x1M2VOT0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0
dVB0d2NSNDhuL3UvUk5PKzgwRzN5ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVm
QklOQkFiYnc4OUdvK0Zac2Rqb2JueDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4
VndSK00rR1F3N1AxeE1PeDdQQmoyOWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgy
bXRoSUxQUm9yQzA0TzlZV21odU5oZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlr
NEd3VHdiQzN2OGRhUFkrSElqNFB1cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pC
cDhOQm9Oem81RUEzTUxhMzY0TlJBZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJI
UG1XM2VFK0QvclpXRjBCYXNIVzRMaGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMr
K2FFV2YzeW94WmRJcm1XaGIzays5SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9i
ZDREQUF0V0ZNSm9XN0IydURVWUhvb0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9Z
Z3ZQaGp4SnBaV2VPM2dKOFB2U2ZRM2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZX
SEIxdjlzY0ZXZjJ3dzRuODBHUEhORG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2
bTczUzMreVZ2bWJQZkgrelo3NnZ5Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhz
Y0dJUDlZZjhjY0d3cjVIQTJIdjdFQ3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VU
N3JhL1kwY2ZrSC9MYnRYTDJHV255MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQ
VzEreVo3R3Z5WE85cjl2aTM5MDhIOE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVt
VDZEMzJvVUQyL3gzQXZnVjdkeXhZOGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUlDVi9nOXRQSkVRdTFYdm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9Imky
IiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvc3F1YXJlMTI4LnBuZyI+Ci0K
LTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5j
c3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA3NThiNDNiZDlkZGYwYmYxYzAyYWY1YTVmNjE2OTRmZjgwZTUzYzYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL3VuaXQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLVRlc3Rz
IGZvciB0aGUgT3BlbkdMIEVTIDIuMCBIVE1MIENhbnZhcyBjb250ZXh0Ci0KLUNvcHlyaWdodCAo
QykgMjAwOSAgSWxtYXJpIEhlaWtraW5lbiA8aWxtYXJpLmhlaWtraW5lbkBnbWFpbC5jb20+Ci0K
LVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uCi1vYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbgotZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdh
cmUgd2l0aG91dAotcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsCi1jb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAotY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi1Tb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZwotY29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLWluY2x1
ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl
LgotCi1USEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLUVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUwotT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQKLU5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUCi1IT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwKLVdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgotT1RIRVIgREVBTElOR1Mg
SU4gVEhFIFNPRlRXQVJFLgotCi0qLwotLm9rIHsKLSAgY29sb3I6IGdyZWVuOwotfQotLmZhaWwg
ewotICBjb2xvcjogcmVkOwotfQotY2FudmFzIHsKLSAgZGlzcGxheTogbm9uZTsKLX0KLSN0ZXN0
LXN0YXR1cyB7Ci0gIGZvbnQtc2l6ZTogbGFyZ2U7Ci19Ci0KLSN0ZXN0LWxvZyB7Ci0gIHBhZGRp
bmctbGVmdDogMC41ZW07Ci0gIHBhZGRpbmctcmlnaHQ6IDAuNWVtOwotICBiYWNrZ3JvdW5kOiB3
aGl0ZTsKLSAgY29sb3I6IGJsYWNrOwotfQotI3Rlc3QtbG9nID4gZGl2IHsKLSAgcGFkZGluZy1i
b3R0b206IDAuNWVtOwotfQotI3Rlc3QtbG9nIGgyIHsKLSAgZm9udC1zaXplOiAxZW07Ci0gIG1h
cmdpbi1ib3R0b206IDBlbTsKLSAgcGFkZGluZy10b3A6IDAuNWVtOwotfQotI3Rlc3QtbG9nIGgz
IHsKLSAgZm9udC1zaXplOiBzbWFsbDsKLSAgbWFyZ2luLWxlZnQ6IDEuNWVtOwotICBtYXJnaW4t
Ym90dG9tOiAwZW07Ci0gIG1hcmdpbi10b3A6IDAuNWVtOwotfQotI3Rlc3QtbG9nIHAgewotICBt
YXJnaW4tbGVmdDogNGVtOwotICBmb250LXNpemU6IHNtYWxsOwotICBtYXJnaW4tdG9wOiAwZW07
Ci0gIG1hcmdpbi1ib3R0b206IDAuMmVtOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL3VuaXQuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzA2YmU1NWM3OWM2NmFhODA0Y2Y2NTc5Y2RiOTA4OGU0NWEx
OTAzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDkxMCArMCwwIEBA
Ci0vKgotVW5pdCB0ZXN0aW5nIGxpYnJhcnkgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2Fu
dmFzIGNvbnRleHQKLSovCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0q
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoq
Ci0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLyogLS0gcGxhZm9y
bSBzcGVjaWZpYyBjb2RlIC0tICovCi0KLS8vIFdlYktpdAotaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyID0gd2luZG93LnRlc3RSdW5uZXI7Ci19Ci0KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0KLSAgLy8gVGhlIFdlYktpdCB0
ZXN0aW5nIHN5c3RlbSBjb21wYXJlcyBjb25zb2xlIG91dHB1dC4KLSAgLy8gQmVjYXVzZSB0aGUg
b3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0cyBpcyBHUFUgZGVwZW5kZW50Ci0gIC8vIHdlIHR1cm4g
b2ZmIGNvbnNvbGUgbWVzc2FnZXMuCi0gIHdpbmRvdy5jb25zb2xlLmxvZyA9IGZ1bmN0aW9uKCkg
eyB9OwotICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9OwotCi0gIC8vIFJB
RiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28gdGhlIHRlc3RzIHdp
bGwKLSAgLy8gdXNlIHNldFRpbWVvdXQgaW5zdGVhZC4KLSAgd2luZG93LnJlcXVlc3RBbmltYXRp
b25GcmFtZSA9IHVuZGVmaW5lZDsKLSAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFt
ZSA9IHVuZGVmaW5lZDsKLX0KLQotaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwot
fQotCi0vKiAtLSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSAtLSovCi1UZXN0cyA9IHsKLSAg
YXV0b3J1biA6IHRydWUsCi0gIG1lc3NhZ2UgOiBudWxsLAotICBkZWxheSA6IDAsCi0KLSAgc3Rh
cnRVbml0IDogZnVuY3Rpb24oKXsgcmV0dXJuIFtdOyB9LAotICBzZXR1cCA6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gYXJndW1lbnRzOyB9LAotICB0ZWFyZG93biA6IGZ1bmN0aW9uKCkge30sCi0gIGVu
ZFVuaXQgOiBmdW5jdGlvbigpIHt9Ci19Ci0KLXZhciBfX3Rlc3RTdWNjZXNzX18gPSB0cnVlOwot
dmFyIF9fdGVzdEZhaWxDb3VudF9fID0gMDsKLXZhciBfX3Rlc3RMb2dfXzsKLXZhciBfX2JhY2ts
b2dfXyA9IFtdOwotCi1PYmplY3QudG9Tb3VyY2UgPSBmdW5jdGlvbihhLCBzZWVuKXsKLSAgaWYg
KGEgPT0gbnVsbCkgcmV0dXJuICJudWxsIjsKLSAgaWYgKHR5cGVvZiBhID09ICdib29sZWFuJykg
cmV0dXJuIGEgPyAidHJ1ZSIgOiAiZmFsc2UiOwotICBpZiAodHlwZW9mIGEgPT0gJ3N0cmluZycp
IHJldHVybiAnIicgKyBhLnJlcGxhY2UoLyIvZywgJ1xcIicpICsgJyInOwotICBpZiAoYSBpbnN0
YW5jZW9mIEhUTUxFbGVtZW50KSByZXR1cm4gYS50b1N0cmluZygpOwotICBpZiAoYS53aWR0aCAm
JiBhLmhlaWdodCAmJiBhLmRhdGEpIHJldHVybiAiW0ltYWdlRGF0YV0iOwotICBpZiAoYSBpbnN0
YW5jZW9mIEFycmF5KSB7Ci0gICAgaWYgKCFzZWVuKSBzZWVuID0gW107Ci0gICAgdmFyIGlkeCA9
IHNlZW4uaW5kZXhPZihhKTsKLSAgICBpZiAoaWR4ICE9IC0xKSByZXR1cm4gJyMnKyhpZHgrMSkr
JyMnOwotICAgIHNlZW4udW5zaGlmdChhKTsKLSAgICB2YXIgc3JjcyA9IGEubWFwKGZ1bmN0aW9u
KG8peyByZXR1cm4gT2JqZWN0LnRvU291cmNlKG8sc2VlbikgfSk7Ci0gICAgdmFyIHByZWZpeCA9
ICcnOwotICAgIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKLSAgICBpZiAoaWR4ICE9IC0xKSBwcmVm
aXggPSAnIycrKGlkeCsxKSsnPSc7Ci0gICAgcmV0dXJuIHByZWZpeCArICdbJyArIHNyY3Muam9p
bigiLCAiKSArICddJzsKLSAgfQotICBpZiAodHlwZW9mIGEgPT0gJ29iamVjdCcpIHsKLSAgICBp
ZiAoIXNlZW4pIHNlZW4gPSBbXTsKLSAgICB2YXIgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOwotICAg
IGlmIChpZHggIT0gLTEpIHJldHVybiAnIycrKGlkeCsxKSsnIyc7Ci0gICAgc2Vlbi51bnNoaWZ0
KGEpOwotICAgIHZhciBtZW1iZXJzID0gW107Ci0gICAgdmFyIG5hbWU7Ci0gICAgdHJ5IHsKLSAg
ICAgIGZvciAodmFyIGkgaW4gYSkgewotICAgICAgICBpZiAoaS5zZWFyY2goL15bYS16QS1aMC05
XSskLykgIT0gLTEpCi0gICAgICAgICAgbmFtZSA9IGk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICBuYW1lID0gJyInICsgaS5yZXBsYWNlKC8iL2csICdcXCInKSArICciJzsKLSAgICAgICAgdmFy
IGFpOwotICAgICAgICB0cnkgeyBhaSA9IGFbaV07IH0KLSAgICAgICAgY2F0Y2goZSkgeyBhaSA9
ICdudWxsIC8qRVJST1JfQUNDRVNTSU5HKi8nOyB9Ci0gICAgICAgIHZhciBzID0gbmFtZSArICc6
JyArIE9iamVjdC50b1NvdXJjZShhaSwgc2Vlbik7Ci0gICAgICAgIG1lbWJlcnMucHVzaChzKTsK
LSAgICAgIH0KLSAgICB9IGNhdGNoIChlKSB7fQotICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICBp
ZHggPSBzZWVuLmluZGV4T2YoYSk7Ci0gICAgaWYgKGlkeCAhPSAtMSkgcHJlZml4ID0gJyMnKyhp
ZHgrMSkrJz0nOwotICAgIHJldHVybiBwcmVmaXggKyAneycgKyBtZW1iZXJzLmpvaW4oIiwgIikg
KyAnfScKLSAgfQotICBpZiAodHlwZW9mIGEgPT0gJ2Z1bmN0aW9uJykKLSAgICByZXR1cm4gJygn
K2EudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiICIpLnJlcGxhY2UoL1xzKy9nLCAiICIpKycp
JzsKLSAgcmV0dXJuIGEudG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gZm9ybWF0RXJyb3IoZSkg
ewotICBpZiAod2luZG93LmNvbnNvbGUpIGNvbnNvbGUubG9nKGUpOwotICB2YXIgcGF0aFNlZ3Mg
PSBsb2NhdGlvbi5ocmVmLnRvU3RyaW5nKCkuc3BsaXQoIi8iKTsKLSAgdmFyIGN1cnJlbnREb2Mg
PSBlLmxpbmVOdW1iZXIgIT0gbnVsbCA/IHBhdGhTZWdzW3BhdGhTZWdzLmxlbmd0aCAtIDFdIDog
bnVsbDsKLSAgdmFyIHRyYWNlID0gKGUuZmlsZW5hbWUgfHwgY3VycmVudERvYykgKyAiOiIgKyBl
LmxpbmVOdW1iZXIgKyAoZS50cmFjZSA/ICJcbiIrZS50cmFjZSA6ICIiKTsKLSAgcmV0dXJuIGUu
bWVzc2FnZSArICJcbiIgKyB0cmFjZTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdHMoKSB7Ci0gIHZh
ciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qtc3RhdHVzJyk7Ci0gIGlmIChoID09
IG51bGwpIHsKLSAgICBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDEnKTsKLSAgICBoLmlk
ID0gJ3Rlc3Qtc3RhdHVzJzsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpOwotICB9
Ci0gIGgudGV4dENvbnRlbnQgPSAiIjsKLSAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0LWxvZycpOwotICBpZiAobG9nID09IG51bGwpIHsKLSAgICBsb2cgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBsb2cuaWQgPSAndGVzdC1sb2cnOwotICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9nKTsKLSAgfQotICB3aGlsZSAobG9nLmNoaWxkTm9k
ZXMubGVuZ3RoID4gMCkKLSAgICBsb2cucmVtb3ZlQ2hpbGQobG9nLmZpcnN0Q2hpbGQpOwotCi0g
IHZhciBzZXR1cF9hcmdzID0gW107Ci0KLSAgaWYgKFRlc3RzLnN0YXJ0VW5pdCAhPSBudWxsKSB7
Ci0gICAgX190ZXN0TG9nX18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0
cnkgewotICAgICAgc2V0dXBfYXJncyA9IFRlc3RzLnN0YXJ0VW5pdCgpOwotICAgICAgaWYgKF9f
dGVzdExvZ19fLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkKLSAgICAgICAgbG9nLmFwcGVuZENoaWxk
KF9fdGVzdExvZ19fKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgIHRlc3RGYWlsZWQoInN0YXJ0
VW5pdCIsIGZvcm1hdEVycm9yKGUpKTsKLSAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2df
Xyk7Ci0gICAgICBwcmludFRlc3RTdGF0dXMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gIH0K
LQotICB2YXIgdGVzdHNSdW4gPSBmYWxzZTsKLSAgdmFyIGFsbFRlc3RzU3VjY2Vzc2Z1bCA9IHRy
dWU7Ci0KLSAgZm9yICh2YXIgaSBpbiBUZXN0cykgewotICAgIGlmIChpLnN1YnN0cmluZygwLDQp
ICE9ICJ0ZXN0IikgY29udGludWU7Ci0gICAgX190ZXN0TG9nX18gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLSAgICBfX3Rlc3RTdWNjZXNzX18gPSB0cnVlOwotICAgIHRyeSB7Ci0g
ICAgICBkb1Rlc3ROb3RpZnkgKGkpOwotICAgICAgdmFyIGFyZ3MgPSBzZXR1cF9hcmdzOwotICAg
ICAgaWYgKFRlc3RzLnNldHVwICE9IG51bGwpCi0gICAgICAgIGFyZ3MgPSBUZXN0cy5zZXR1cC5h
cHBseShUZXN0cywgc2V0dXBfYXJncyk7Ci0gICAgICBUZXN0c1tpXS5hcHBseShUZXN0cywgYXJn
cyk7Ci0gICAgICBpZiAoVGVzdHMudGVhcmRvd24gIT0gbnVsbCkKLSAgICAgICAgVGVzdHMudGVh
cmRvd24uYXBwbHkoVGVzdHMsIGFyZ3MpOwotICAgIH0KLSAgICBjYXRjaCAoZSkgewotICAgICAg
dGVzdEZhaWxlZChpLCBlLm5hbWUsIGZvcm1hdEVycm9yKGUpKTsKLSAgICB9Ci0gICAgaWYgKF9f
dGVzdFN1Y2Nlc3NfXyA9PSBmYWxzZSkgewotICAgICAgKytfX3Rlc3RGYWlsQ291bnRfXzsKLSAg
ICB9Ci0gICAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMicpOwotICAgIGgudGV4
dENvbnRlbnQgPSBpOwotICAgIF9fdGVzdExvZ19fLmluc2VydEJlZm9yZShoLCBfX3Rlc3RMb2df
Xy5maXJzdENoaWxkKTsKLSAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOwotICAgIGFs
bFRlc3RzU3VjY2Vzc2Z1bCA9IGFsbFRlc3RzU3VjY2Vzc2Z1bCAmJiBfX3Rlc3RTdWNjZXNzX18g
PT0gdHJ1ZTsKLSAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhfX3Rlc3RTdWNjZXNzX18s
IGkpOwotICAgIGRvVGVzdE5vdGlmeSAoaSsiLS0iKyhfX3Rlc3RTdWNjZXNzX18/Ik9LIjoiRkFJ
TCIpKTsKLSAgICB0ZXN0c1J1biA9IHRydWU7Ci0gIH0KLQotICBwcmludFRlc3RTdGF0dXModGVz
dHNSdW4pOwotICBpZiAoVGVzdHMuZW5kVW5pdCAhPSBudWxsKSB7Ci0gICAgX190ZXN0TG9nX18g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0cnkgewotICAgICAgVGVzdHMu
ZW5kVW5pdC5hcHBseShUZXN0cywgc2V0dXBfYXJncyk7Ci0gICAgICBpZiAoX190ZXN0TG9nX18u
Y2hpbGROb2Rlcy5sZW5ndGggPiAwKQotICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9n
X18pOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgdGVzdEZhaWxlZCgiZW5kVW5pdCIsIGUubmFt
ZSwgZm9ybWF0RXJyb3IoZSkpOwotICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsK
LSAgICB9Ci0gIH0KLSAgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoYWxsVGVzdHNTdWNjZXNzZnVs
LCAiZmluaXNoZWQgdGVzdHMiKTsKLX0KLQotZnVuY3Rpb24gZG9UZXN0Tm90aWZ5KG5hbWUpIHsK
LSAgLy90cnnCoHsKLSAgLy8gIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgLy8g
IHhoci5vcGVuKCJHRVQiLCAiaHR0cDovL2xvY2FsaG9zdDo4ODg4LyIrbmFtZSwgdHJ1ZSk7Ci0g
IC8vICB4aHIuc2VuZChudWxsKTsKLSAgLy99IGNhdGNoKGUpIHt9Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RGYWlsZWQoYXNzZXJ0TmFtZSwgbmFtZSkgewotICB2YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICB2YXIgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7Ci0g
IHZhciBkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgaC5hcHBlbmRDaGls
ZChkMSk7Ci0gIGQxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJGQUlMOiAi
KSk7Ci0gIGQxLnN0eWxlLmNvbG9yID0gInJlZCI7Ci0gIGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoCi0gICAgICBuYW1lPT1udWxsID8gYXNzZXJ0TmFtZSA6IG5hbWUgKyAi
IChpbiAiICsgYXNzZXJ0TmFtZSArICIpIikpOwotICBkLmFwcGVuZENoaWxkKGgpOwotICB2YXIg
YXJncyA9IFtdCi0gIGZvciAodmFyIGk9MjsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAg
ICB2YXIgYSA9IGFyZ3VtZW50c1tpXTsKLSAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3AnKTsKLSAgICBwLnN0eWxlLndoaXRlU3BhY2UgPSAncHJlJzsKLSAgICBwLnRleHRDb250
ZW50ID0gKGEgPT0gbnVsbCkgPyAibnVsbCIgOgotICAgICAgICAgICAgICAgICAgICAodHlwZW9m
IGEgPT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiBhID09ICdzdHJpbmcnKSA/IGEgOiBPYmplY3QudG9T
b3VyY2UoYSk7Ci0gICAgYXJncy5wdXNoKHAudGV4dENvbnRlbnQpOwotICAgIGQuYXBwZW5kQ2hp
bGQocCk7Ci0gIH0KLSAgX190ZXN0TG9nX18uYXBwZW5kQ2hpbGQoZCk7Ci0gIF9fdGVzdFN1Y2Nl
c3NfXyA9IGZhbHNlOwotICBkb1Rlc3ROb3RpZnkoW2Fzc2VydE5hbWUsIG5hbWVdLmNvbmNhdChh
cmdzKS5qb2luKCItLSIpKTsKLX0KLQotZnVuY3Rpb24gdGVzdFBhc3NlZChhc3NlcnROYW1lLCBu
YW1lKSB7Ci0gIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gIHZhciBo
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKLSAgdmFyIGQxID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOwotICBoLmFwcGVuZENoaWxkKGQxKTsKLSAgZDEuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1M6ICIpKTsKLSAgZDEuc3R5bGUuY29sb3Ig
PSAiZ3JlZW4iOwotICBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAotICAg
ICAgbmFtZT09bnVsbCA/IGFzc2VydE5hbWUgOiBuYW1lICsgIiAoaW4gIiArIGFzc2VydE5hbWUg
KyAiKSIpKTsKLSAgZC5hcHBlbmRDaGlsZChoKTsKLSAgdmFyIGFyZ3MgPSBbXQotICBmb3IgKHZh
ciBpPTI7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdmFyIGEgPSBhcmd1bWVudHNb
aV07Ci0gICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7Ci0gICAgcC5zdHls
ZS53aGl0ZVNwYWNlID0gJ3ByZSc7Ci0gICAgcC50ZXh0Q29udGVudCA9IChhID09IG51bGwpID8g
Im51bGwiIDoKLSAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBhID09ICdib29sZWFuJyB8fCB0
eXBlb2YgYSA9PSAnc3RyaW5nJykgPyBhIDogT2JqZWN0LnRvU291cmNlKGEpOwotICAgIGFyZ3Mu
cHVzaChwLnRleHRDb250ZW50KTsKLSAgICBkLmFwcGVuZENoaWxkKHApOwotICB9Ci0gIF9fdGVz
dExvZ19fLmFwcGVuZENoaWxkKGQpOwotICBkb1Rlc3ROb3RpZnkoW2Fzc2VydE5hbWUsIG5hbWVd
LmNvbmNhdChhcmdzKS5qb2luKCItLSIpKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tUZXN0U3VjY2Vz
cygpIHsKLSAgcmV0dXJuIF9fdGVzdEZhaWxDb3VudF9fID09IDA7Ci19Ci0KLXdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKXsKLSAgZm9yICh2YXIgaT0wOyBpPF9fYmFj
a2xvZ19fLmxlbmd0aDsgaSsrKQotICAgIGxvZyhfX2JhY2tsb2dfX1tpXSk7Ci19LCBmYWxzZSk7
Ci0KLWZ1bmN0aW9uIGxvZyhtc2cpIHsKLSAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdwJyk7Ci0gIHZhciBhID0gW107Ci0gIGZvciAodmFyIGk9MDsgaTxhcmd1bWVudHMubGVuZ3Ro
OyBpKyspCi0gICAgYS5wdXNoKGFyZ3VtZW50c1tpXSk7Ci0gIHAudGV4dENvbnRlbnQgPSBhLmpv
aW4oIiwgIik7Ci0gIGlmICghX190ZXN0TG9nX18pIHsKLSAgICBpZiAoZG9jdW1lbnQuYm9keSkK
LSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocCk7Ci0gICAgZWxzZQotICAgICAgX19i
YWNrbG9nX18ucHVzaChtc2cpOwotICB9IGVsc2UgewotICAgIF9fdGVzdExvZ19fLmFwcGVuZENo
aWxkKHApOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHByaW50VGVzdFN0YXR1cyh0ZXN0c1J1bikgewot
ICB2YXIgc3RhdHVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qtc3RhdHVzJyk7Ci0g
IGlmICh0ZXN0c1J1bikgewotICAgIHN0YXR1cy5jbGFzc05hbWUgPSBjaGVja1Rlc3RTdWNjZXNz
KCkgPyAnb2snIDogJ2ZhaWwnOwotICAgIHN0YXR1cy50ZXh0Q29udGVudCA9IGNoZWNrVGVzdFN1
Y2Nlc3MoKSA/ICJQQVNTIiA6ICJGQUlMIjsKLSAgfSBlbHNlIHsKLSAgICBzdGF0dXMuY2xhc3NO
YW1lID0gJ2ZhaWwnOwotICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICJOTyBURVNUUyBGT1VORCI7
Ci0gIH0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0RmFpbChuYW1lLCBmKSB7Ci0gIGlmIChmID09IG51
bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIHZhciByID0gZmFsc2U7Ci0gIHRyeSB7
IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgfQotICBpZiAoIXIpIHsKLSAgICB0ZXN0RmFpbGVk
KCJhc3NlcnRGYWlsIiwgbmFtZSwgZik7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9IGVsc2Ugewot
ICAgIHRlc3RQYXNzZWQoImFzc2VydEZhaWwiLCBuYW1lLCBmKTsKLSAgICByZXR1cm4gdHJ1ZTsK
LSAgfQotfQotCi1mdW5jdGlvbiBhc3NlcnRPayhuYW1lLCBmKSB7Ci0gIGlmIChmID09IG51bGwp
IHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIHZhciByID0gZmFsc2U7Ci0gIHZhciBlcnI7
Ci0gIHRyeSB7IGYoKTsgcj10cnVlOyB9IGNhdGNoKGUpIHsgZXJyID0gZTsgfQotICBpZiAoIXIp
IHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRPayIsIG5hbWUsIGYsIGVyci50b1N0cmluZygpKTsK
LSAgICByZXR1cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0T2si
LCBuYW1lLCBmKTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBhc3NlcnQo
bmFtZSwgdikgewotICBpZiAodiA9PSBudWxsKSB7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQot
ICBpZiAoIXYpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnQiLCBuYW1lLCB2KTsKLSAgICByZXR1
cm4gZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0IiwgbmFtZSwgdik7
Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0UHJvcGVydHkobmFt
ZSwgdiwgcCkgewotICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IHA7
IH0KLSAgaWYgKHZbcF0gPT0gbnVsbCkgewotICAgIHRlc3RGYWlsZWQoImFzc2VydFByb3BlcnR5
IiwgbmFtZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9IGVsc2UgewotICAgIHRlc3RQYXNzZWQo
ImFzc2VydFByb3BlcnR5IiwgbmFtZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX0KLQotZnVu
Y3Rpb24gY29tcGFyZShhLGIpIHsKLSAgaWYgKHR5cGVvZiBhID09ICdudW1iZXInICYmIHR5cGVv
ZiBiID09ICdudW1iZXInKSB7Ci0gICAgcmV0dXJuIGEgPT0gYjsKLSAgfSBlbHNlIHsKLSAgICBy
ZXR1cm4gT2JqZWN0LnRvU291cmNlKGEpID09IE9iamVjdC50b1NvdXJjZShiKTsKLSAgfQotfQot
Ci1mdW5jdGlvbiBhc3NlcnRFcXVhbHMobmFtZSwgdiwgcCkgewotICBpZiAocCA9PSBudWxsKSB7
IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAgaWYgKCFjb21wYXJlKHYsIHApKSB7
Ci0gICAgdGVzdEZhaWxlZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotICB9IGVsc2UgewotICAgIHRlc3RQYXNzZWQoImFzc2VydEVxdWFscyIsIG5hbWUs
IHYsIHApOwotICAgIHJldHVybiB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEFycmF5
RXF1YWxzKG5hbWUsIHYsIHApIHsKLSAgaWYgKHAgPT0gbnVsbCkgeyBwID0gdjsgdiA9IG5hbWU7
IG5hbWUgPSBudWxsOyB9Ci0gIGlmICghdikgewotICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5
RXF1YWxzOiBmaXJzdCBhcnJheSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIH0KLSAgaWYgKCFwKSB7Ci0gICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVh
bHM6IHNlY29uZCBhcnJheSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKLSAgICByZXR1cm4gZmFs
c2U7Ci0gIH0KLSAgaWYgKHYubGVuZ3RoICE9IHAubGVuZ3RoKSB7Ci0gICAgdGVzdEZhaWxlZCgi
YXNzZXJ0QXJyYXlFcXVhbHMiLCBuYW1lLCB2LCBwKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0K
LSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHYubGVuZ3RoOyArK2lpKSB7Ci0gICAgaWYgKHZbaWld
ICE9IHBbaWldKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFscyIsIG5hbWUs
IHYsIHApOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotICB0ZXN0UGFzc2VkKCJh
c3NlcnRBcnJheUVxdWFscyIsIG5hbWUsIHYsIHApOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVu
Y3Rpb24gYXNzZXJ0Tm90RXF1YWxzKG5hbWUsIHYsIHApIHsKLSAgaWYgKHAgPT0gbnVsbCkgeyBw
ID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIGlmIChjb21wYXJlKHYsIHApKSB7Ci0g
ICAgdGVzdEZhaWxlZCgiYXNzZXJ0Tm90RXF1YWxzIiwgbmFtZSwgdiwgcCkKLSAgICByZXR1cm4g
ZmFsc2U7Ci0gIH0gZWxzZSB7Ci0gICAgdGVzdFBhc3NlZCgiYXNzZXJ0Tm90RXF1YWxzIiwgbmFt
ZSwgdiwgcCkKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfQotCi1mdW5jdGlvbiB0aW1lKGVsZW1l
bnRJZCwgZikgewotICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KTsKLSAgICB2YXIgdDAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKLSAgICBmKCk7Ci0gICAgdmFy
IHQxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7Ci0gICAgcy50ZXh0Q29udGVudCA9ICdFbGFwc2Vk
OiAnKyh0MS10MCkrJyBtcyc7Ci19Ci0KLWZ1bmN0aW9uIHJhbmRvbUZsb2F0ICgpIHsKLSAgICAv
LyBub3RlIHRoYXQgaW4gZnV6ei10ZXN0aW5nLCB0aGlzIGNhbiB1c2VkIGFzIHRoZSBzaXplIG9m
IGEgYnVmZmVyIHRvIGFsbG9jYXRlLgotICAgIC8vIHNvIGl0IHNob3VsZG4ndCByZXR1cm4gYXN0
cm9ub21pYyB2YWx1ZXMuIFRoZSBtYXhpbXVtIHZhbHVlIDEwMDAwMDAwIGlzIGFscmVhZHkgcXVp
dGUgYmlnLgotICAgIHZhciBmYWMgPSAxLjA7Ci0gICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOwot
ICAgIGlmIChyIDwgMC4yNSkKLSAgICAgICAgZmFjID0gMTA7Ci0gICAgZWxzZSBpZiAociA8IDAu
NCkKLSAgICAgICAgZmFjID0gMTAwOwotICAgIGVsc2UgaWYgKHIgPCAwLjUpCi0gICAgICAgIGZh
YyA9IDEwMDA7Ci0gICAgZWxzZSBpZiAociA8IDAuNikKLSAgICAgICAgZmFjID0gMTAwMDAwOwot
ICAgIGVsc2UgaWYgKHIgPCAwLjcpCi0gICAgICAgIGZhYyA9IDEwMDAwMDAwOwotICAgIGVsc2Ug
aWYgKHIgPCAwLjgpCi0gICAgICAgIGZhYyA9IE5hTjsKLSAgICByZXR1cm4gLTAuNSpmYWMgKyBN
YXRoLnJhbmRvbSgpICogZmFjOwotfQotZnVuY3Rpb24gcmFuZG9tRmxvYXRGcm9tUmFuZ2UobG8s
IGhpKSB7Ci0gIHZhciByID0gTWF0aC5yYW5kb20oKTsKLSAgaWYgKHIgPCAwLjA1KQotICAgIHJl
dHVybiBsbzsKLSAgZWxzZSBpZiAociA+IDAuOTUpCi0gICAgcmV0dXJuIGhpOwotICBlbHNlCi0g
ICAgcmV0dXJuIGxvICsgTWF0aC5yYW5kb20oKSooaGktbG8pOwotfQotZnVuY3Rpb24gcmFuZG9t
SW50IChzeikgewotICBpZiAoc3ogIT0gbnVsbCkKLSAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRo
LnJhbmRvbSgpKnN6KTsKLSAgZWxzZQotICAgIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbUZsb2F0
KCkpOwotfQotZnVuY3Rpb24gcmFuZG9tSW50RnJvbVJhbmdlKGxvLCBoaSkgewotICByZXR1cm4g
TWF0aC5mbG9vcihyYW5kb21GbG9hdEZyb21SYW5nZShsbywgaGkpKTsKLX0KLWZ1bmN0aW9uIHJh
bmRvbUxlbmd0aCAoKSB7Ci0gICAgdmFyIGwgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAy
NTYpOwotICAgIGlmIChNYXRoLnJhbmRvbSA8IDAuNSkgbCA9IGwgLyAxMDsKLSAgICBpZiAoTWF0
aC5yYW5kb20gPCAwLjMpIGwgPSBsIC8gMTA7Ci0gICAgcmV0dXJuIGw7Ci19Ci1mdW5jdGlvbiBy
YW5kb21TbWFsbEludEFycmF5ICgpIHsKLSAgICB2YXIgbCA9IHJhbmRvbUxlbmd0aCgpOwotICAg
IHZhciBzID0gbmV3IEFycmF5KGwpOwotICAgIGZvciAodmFyIGk9MDsgaTxsOyBpKyspCi0gICAg
ICAgIHNbaV0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTYpLTE7Ci0gICAgcmV0dXJu
IHM7Ci19Ci1mdW5jdGlvbiByYW5kb21GbG9hdEFycmF5ICgpIHsKLSAgICB2YXIgbCA9IHJhbmRv
bUxlbmd0aCgpOwotICAgIHZhciBzID0gbmV3IEFycmF5KGwpOwotICAgIGZvciAodmFyIGk9MDsg
aTxsOyBpKyspCi0gICAgICAgIHNbaV0gPSByYW5kb21GbG9hdCgpOwotICAgIHJldHVybiBzOwot
fQotZnVuY3Rpb24gcmFuZG9tSW50QXJyYXkgKCkgewotICAgIHZhciBsID0gcmFuZG9tTGVuZ3Ro
KCk7Ci0gICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7Ci0gICAgZm9yICh2YXIgaT0wOyBpPGw7IGkr
KykKLSAgICAgICAgc1tpXSA9IHJhbmRvbUZsb2F0KCk7Ci0gICAgcmV0dXJuIHM7Ci19Ci1mdW5j
dGlvbiByYW5kb21NaXhlZEFycmF5ICgpIHsKLSAgICB2YXIgbCA9IHJhbmRvbUxlbmd0aCgpOwot
ICAgIHZhciBzID0gbmV3IEFycmF5KGwpOwotICAgIGZvciAodmFyIGk9MDsgaTxsOyBpKyspCi0g
ICAgICAgIHNbaV0gPSByYW5kb21Ob25BcnJheSgpOwotICAgIHJldHVybiBzOwotfQotZnVuY3Rp
b24gcmFuZG9tQXJyYXkgKCkgewotICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKLSAgICBpZiAo
ciA8IDAuMykKLSAgICAgICAgcmV0dXJuIHJhbmRvbUZsb2F0QXJyYXkoKTsKLSAgICBlbHNlIGlm
IChyIDwgMC42KQotICAgICAgICByZXR1cm4gcmFuZG9tSW50QXJyYXkoKTsKLSAgICBlbHNlIGlm
IChyIDwgMC44KQotICAgICAgICByZXR1cm4gcmFuZG9tU21hbGxJbnRBcnJheSgpOwotICAgIGVs
c2UKLSAgICAgICAgcmV0dXJuIHJhbmRvbU1peGVkQXJyYXkoKTsKLX0KLWZ1bmN0aW9uIHJhbmRv
bVN0cmluZyAoKSB7Ci0gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5n
LCByYW5kb21TbWFsbEludEFycmF5KCkpOwotfQotZnVuY3Rpb24gcmFuZG9tR0xDb25zdGFudCAo
KSB7Ci0gICAgcmV0dXJuIEdMQ29uc3RhbnRzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIEdM
Q29uc3RhbnRzLmxlbmd0aCldOwotfQotCi1mdW5jdGlvbiByYW5kb21Ob25BcnJheSgpIHsKLSAg
ICB2YXIgciA9IE1hdGgucmFuZG9tKCk7Ci0gICAgaWYgKHIgPCAwLjI1KSB7Ci0gICAgICAgIHJl
dHVybiByYW5kb21GbG9hdCgpOwotICAgIH0gZWxzZSBpZiAociA8IDAuNikgewotICAgICAgICBy
ZXR1cm4gcmFuZG9tSW50KCk7Ci0gICAgfSBlbHNlIGlmIChyIDwgMC43KSB7Ci0gICAgICAgIHJl
dHVybiAociA8IDAuNjUpOwotICAgIH0gZWxzZSBpZiAociA8IDAuODcpIHsKLSAgICAgICAgcmV0
dXJuIHJhbmRvbVN0cmluZygpOwotICAgIH0gZWxzZSBpZiAociA8IDAuOTgpIHsKLSAgICAgICAg
cmV0dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGdlbmVyYXRlUmFuZG9tQXJnKHBvcywgY291bnQp
IHsKLSAgICBpZiAocG9zID09IDAgJiYgTWF0aC5yYW5kb20oKSA8IDAuNSkKLSAgICAgICAgcmV0
dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsKLSAgICBpZiAocG9zID09IGNvdW50LTEgJiYgTWF0aC5y
YW5kb20oKSA8IDAuMjUpCi0gICAgICAgIGlmIChNYXRoLnJhbmRvbSgpIDwgMC41KQotICAgICAg
ICAgICAgcmV0dXJuIHJhbmRvbVN0cmluZygpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBy
ZXR1cm4gcmFuZG9tQXJyYXkoKTsKLSAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7Ci0gICAgaWYg
KHIgPCAwLjI1KSB7Ci0gICAgICAgIHJldHVybiByYW5kb21GbG9hdCgpOwotICAgIH0gZWxzZSBp
ZiAociA8IDAuNikgewotICAgICAgICByZXR1cm4gcmFuZG9tSW50KCk7Ci0gICAgfSBlbHNlIGlm
IChyIDwgMC43KSB7Ci0gICAgICAgIHJldHVybiAociA8IDAuNjUpOwotICAgIH0gZWxzZSBpZiAo
ciA8IDAuNzcpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRvbVN0cmluZygpOwotICAgIH0gZWxzZSBp
ZiAociA8IDAuODQpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRvbUFycmF5KCk7Ci0gICAgfSBlbHNl
IGlmIChyIDwgMC45OCkgewotICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25zdGFudCgpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KLQotCi1mdW5jdGlvbiBn
ZW5lcmF0ZVJhbmRvbUFyZ3MoY291bnQpIHsKLSAgICB2YXIgYXJyID0gbmV3IEFycmF5KGNvdW50
KTsKLSAgICBmb3IgKHZhciBpPTA7IGk8Y291bnQ7IGkrKykKLSAgICAgICAgYXJyW2ldID0gZ2Vu
ZXJhdGVSYW5kb21BcmcoaSwgY291bnQpOwotICAgIHJldHVybiBhcnI7Ci19Ci0KLS8vIHFjIChh
cmcxZ2VuLCBhcmcyZ2VuLCAuLi4sIHByZWRpY2F0ZSkKLS8vIHFjIChyYW5kb21TdHJpbmcsIHJh
bmRvbUludCwgcmFuZG9tSW50LCBmdW5jdGlvbihzLGksail7IHMuc3Vic3RyaW5nKGksaikgfSkK
LWZ1bmN0aW9uIHFjKCkgewotfQotCi1HTENvbnN0YW50cyA9IFsKLTEsCi0weDAwMDAwMTAwLAot
MHgwMDAwMDQwMCwKLTB4MDAwMDQwMDAsCi0weDAwMDAsCi0weDAwMDEsCi0weDAwMDIsCi0weDAw
MDMsCi0weDAwMDQsCi0weDAwMDUsCi0weDAwMDYsCi0wLAotMSwKLTB4MDMwMCwKLTB4MDMwMSwK
LTB4MDMwMiwKLTB4MDMwMywKLTB4MDMwNCwKLTB4MDMwNSwKLTB4MDMwNiwKLTB4MDMwNywKLTB4
MDMwOCwKLTB4ODAwNiwKLTB4ODAwOSwKLTB4ODAwOSwKLTB4ODgzRCwKLTB4ODAwQSwKLTB4ODAw
QiwKLTB4ODBDOCwKLTB4ODBDOSwKLTB4ODBDQSwKLTB4ODBDQiwKLTB4ODAwMSwKLTB4ODAwMiwK
LTB4ODAwMywKLTB4ODAwNCwKLTB4ODAwNSwKLTB4ODg5MiwKLTB4ODg5MywKLTB4ODg5NCwKLTB4
ODg5NSwKLTB4ODhFMCwKLTB4ODhFNCwKLTB4ODhFOCwKLTB4ODc2NCwKLTB4ODc2NSwKLTB4ODYy
NiwKLTB4MDQwNCwKLTB4MDQwNSwKLTB4MDQwOCwKLTB4MERFMSwKLTB4MEI0NCwKLTB4MEJFMiwK
LTB4MEJEMCwKLTB4MEI5MCwKLTB4MEI3MSwKLTB4MEMxMSwKLTB4ODAzNywKLTB4ODA5RSwKLTB4
ODBBMCwKLTAsCi0weDA1MDAsCi0weDA1MDEsCi0weDA1MDIsCi0weDA1MDUsCi0weDA5MDAsCi0w
eDA5MDEsCi0weDBCMjEsCi0weDg0NkQsCi0weDg0NkUsCi0weDBCNDUsCi0weDBCNDYsCi0weDBC
NzAsCi0weDBCNzIsCi0weDBCNzMsCi0weDBCNzQsCi0weDBCOTEsCi0weDBCOTIsCi0weDBCOTQs
Ci0weDBCOTUsCi0weDBCOTYsCi0weDBCOTcsCi0weDBCOTMsCi0weDBCOTgsCi0weDg4MDAsCi0w
eDg4MDEsCi0weDg4MDIsCi0weDg4MDMsCi0weDhDQTMsCi0weDhDQTQsCi0weDhDQTUsCi0weDBC
QTIsCi0weDBDMTAsCi0weDBDMjIsCi0weDBDMjMsCi0weDBDRjUsCi0weDBEMDUsCi0weDBEMzMs
Ci0weDBEM0EsCi0weDBENTAsCi0weDBENTIsCi0weDBENTMsCi0weDBENTQsCi0weDBENTUsCi0w
eDBENTYsCi0weDBENTcsCi0weDJBMDAsCi0weDgwMzgsCi0weDgwNjksCi0weDgwQTgsCi0weDgw
QTksCi0weDgwQUEsCi0weDgwQUIsCi0weDg2QTIsCi0weDg2QTMsCi0weDExMDAsCi0weDExMDEs
Ci0weDExMDIsCi0weDgxOTIsCi0weDE0MDAsCi0weDE0MDEsCi0weDE0MDIsCi0weDE0MDMsCi0w
eDE0MDQsCi0weDE0MDUsCi0weDE0MDYsCi0weDE0MEMsCi0weDE5MDIsCi0weDE5MDYsCi0weDE5
MDcsCi0weDE5MDgsCi0weDE5MDksCi0weDE5MEEsCi0weDgwMzMsCi0weDgwMzQsCi0weDgzNjMs
Ci0weDhCMzAsCi0weDhCMzEsCi0weDg4NjksCi0weDhERkIsCi0weDhERkMsCi0weDhCNEQsCi0w
eDhCNEMsCi0weDg4NzIsCi0weDhERkQsCi0weDhCNEYsCi0weDhCODAsCi0weDhCODIsCi0weDhC
ODMsCi0weDhCODUsCi0weDhCODYsCi0weDhCODcsCi0weDhCODksCi0weDhCOEEsCi0weDhCOEMs
Ci0weDhCOEQsCi0weDAyMDAsCi0weDAyMDEsCi0weDAyMDIsCi0weDAyMDMsCi0weDAyMDQsCi0w
eDAyMDUsCi0weDAyMDYsCi0weDAyMDcsCi0weDFFMDAsCi0weDFFMDEsCi0weDFFMDIsCi0weDFF
MDMsCi0weDE1MEEsCi0weDg1MDcsCi0weDg1MDgsCi0weDFGMDAsCi0weDFGMDEsCi0weDFGMDIs
Ci0weDFGMDMsCi0weDI2MDAsCi0weDI2MDEsCi0weDI3MDAsCi0weDI3MDEsCi0weDI3MDIsCi0w
eDI3MDMsCi0weDI4MDAsCi0weDI4MDEsCi0weDI4MDIsCi0weDI4MDMsCi0weDE3MDIsCi0weDg1
MTMsCi0weDg1MTQsCi0weDg1MTUsCi0weDg1MTYsCi0weDg1MTcsCi0weDg1MTgsCi0weDg1MTks
Ci0weDg1MUEsCi0weDg1MUMsCi0weDg0QzAsCi0weDg0QzEsCi0weDg0QzIsCi0weDg0QzMsCi0w
eDg0QzQsCi0weDg0QzUsCi0weDg0QzYsCi0weDg0QzcsCi0weDg0QzgsCi0weDg0QzksCi0weDg0
Q0EsCi0weDg0Q0IsCi0weDg0Q0MsCi0weDg0Q0QsCi0weDg0Q0UsCi0weDg0Q0YsCi0weDg0RDAs
Ci0weDg0RDEsCi0weDg0RDIsCi0weDg0RDMsCi0weDg0RDQsCi0weDg0RDUsCi0weDg0RDYsCi0w
eDg0RDcsCi0weDg0RDgsCi0weDg0RDksCi0weDg0REEsCi0weDg0REIsCi0weDg0REMsCi0weDg0
REQsCi0weDg0REUsCi0weDg0REYsCi0weDg0RTAsCi0weDI5MDEsCi0weDgxMkYsCi0weDgzNzAs
Ci0weDhCNTAsCi0weDhCNTEsCi0weDhCNTIsCi0weDhCNTMsCi0weDhCNTQsCi0weDhCNTUsCi0w
eDhCNTYsCi0weDhCNTcsCi0weDhCNTgsCi0weDhCNTksCi0weDhCNUEsCi0weDhCNUIsCi0weDhC
NUMsCi0weDhCNUUsCi0weDhCNjAsCi0weDg2MjIsCi0weDg2MjMsCi0weDg2MjQsCi0weDg2MjUs
Ci0weDg4NkEsCi0weDg2NDUsCi0weDg4OUYsCi0weDhCOUEsCi0weDhCOUIsCi0weDhCODEsCi0w
eDhCODQsCi0weDhCODgsCi0weDhERkEsCi0weDhERjgsCi0weDhERjksCi0weDhERjAsCi0weDhE
RjEsCi0weDhERjIsCi0weDhERjMsCi0weDhERjQsCi0weDhERjUsCi0weDhENDAsCi0weDhENDEs
Ci0weDgwNTYsCi0weDgwNTcsCi0weDhENjIsCi0weDgxQTUsCi0weDE5MDEsCi0weDhENDgsCi0w
eDhENDIsCi0weDhENDMsCi0weDhENDQsCi0weDhENTAsCi0weDhENTEsCi0weDhENTIsCi0weDhE
NTMsCi0weDhENTQsCi0weDhENTUsCi0weDhDRDAsCi0weDhDRDEsCi0weDhDRDIsCi0weDhDRDMs
Ci0weDhDRTAsCi0weDhEMDAsCi0weDhEMjAsCi0wLAotMHg4Q0Q1LAotMHg4Q0Q2LAotMHg4Q0Q3
LAotMHg4Q0Q5LAotMHg4Q0RELAotMHg4Q0E2LAotMHg4Q0E3LAotMHg4NEU4LAotMHgwNTA2LAot
MHg4MDlECi1dOwotCi1mdW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNz
LCBtc2cpIHsKLSAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgewotICAgIHdp
bmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdpbmRvdy5sb2NhdGlv
bi5wYXRobmFtZSwgc3VjY2VzcywgbXNnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBub3RpZnlGaW5p
c2hlZFRvSGFybmVzcygpIHsKLSAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykg
ewotICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5ub3RpZnlGaW5pc2hlZCh3aW5k
b3cubG9jYXRpb24ucGF0aG5hbWUpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGluaXRUZXN0cygpIHsK
LSAgaWYgKFRlc3RzLm1lc3NhZ2UgIT0gbnVsbCkgewotICAgIHZhciBoID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QtbWVzc2FnZScpOwotICAgIGlmIChoID09IG51bGwpIHsKLSAgICAg
IGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7Ci0gICAgICBoLmlkID0gJ3Rlc3QtbWVz
c2FnZSc7Ci0gICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShoLCBkb2N1bWVudC5ib2R5
LmZpcnN0Q2hpbGQpOwotICAgIH0KLSAgICBoLnRleHRDb250ZW50ID0gVGVzdHMubWVzc2FnZTsK
LSAgfQotICBpZiAoVGVzdHMuYXV0b3J1bikgewotICAgIHJ1blRlc3RzKCk7Ci0gIH0gZWxzZSB7
Ci0gICAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1ydW4nKTsKLSAgICBp
ZiAoaCA9PSBudWxsKSB7Ci0gICAgICBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQn
KTsKLSAgICAgIGgudHlwZSA9ICdzdWJtaXQnOwotICAgICAgaC52YWx1ZSA9ICJSdW4gdGVzdHMi
OwotICAgICAgaC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKLSAgICAg
ICAgcnVuVGVzdHMoKTsKLSAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKLSAgICAgIH0sIGZh
bHNlKTsKLSAgICAgIGguaWQgPSAndGVzdC1ydW4nOwotICAgICAgZG9jdW1lbnQuYm9keS5pbnNl
cnRCZWZvcmUoaCwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKLSAgICB9Ci0gICAgaC50ZXh0
Q29udGVudCA9IFRlc3RzLm1lc3NhZ2U7Ci0gIH0KLQotfQotCi13aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCl7Ci0gIC8vIGxldCB0aGUgYnJvd3NlciBob3BlZnVsbHkg
ZmluaXNoIHVwZGF0aW5nIHRoZSBnbCBjYW52YXMgc3VyZmFjZXMgaWYgd2UgYXJlIGdpdmVuIGEg
ZGVsYXkKLSAgaWYgKFRlc3RzLmRlbGF5KQotICAgIHNldFRpbWVvdXQoaW5pdFRlc3RzLCBUZXN0
cy5kZWxheSk7Ci0gIGVsc2UKLSAgICBpbml0VGVzdHMoKQotfSwgZmFsc2UpOwotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS91dGlsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzY2Y2FmZTViNGRhNjhk
NzJlMDFmNzE3MzNjZDVjZjUzMTViODJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91dGlsLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTI1MiArMCwwIEBACi0vKgotVXRpbGl0aWVzIGZvciB0aGUgT3BlbkdMIEVTIDIu
MCBIVE1MIENhbnZhcyBjb250ZXh0Ci0qLwotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQot
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgot
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLWZ1
bmN0aW9uIGxvYWRUZXh0dXJlKGdsLCBlbGVtLCBtaXBtYXBzKSB7Ci0gIHZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0g
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgZWxlbSk7Ci0gIGlmIChtaXBtYXBzICE9IGZhbHNlKQotICAgIGdsLmdlbmVy
YXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7
Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVS
LCBnbC5MSU5FQVIpOwotICBpZiAobWlwbWFwcykKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9MSU5FQVIp
OwotICBlbHNlCi0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gIHJldHVybiB0ZXg7Ci19Ci0KLWZ1bmN0aW9uIGdl
dFNoYWRlcihnbCwgaWQpIHsKLSAgdmFyIHNoYWRlclNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKTsKLSAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKLSAgICB0aHJvdyhuZXcgRXJyb3Io
Ik5vIHNoYWRlciBlbGVtZW50IHdpdGggaWQ6ICIraWQpKTsKLSAgfQotCi0gIHZhciBzdHIgPSAi
IjsKLSAgdmFyIGsgPSBzaGFkZXJTY3JpcHQuZmlyc3RDaGlsZDsKLSAgd2hpbGUgKGspIHsKLSAg
ICBpZiAoay5ub2RlVHlwZSA9PSAzKQotICAgICAgc3RyICs9IGsudGV4dENvbnRlbnQ7Ci0gICAg
ayA9IGsubmV4dFNpYmxpbmc7Ci0gIH0KLQotICB2YXIgc2hhZGVyOwotICBpZiAoc2hhZGVyU2Ny
aXB0LnR5cGUgPT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKSB7Ci0gICAgc2hhZGVyID0gZ2wuY3Jl
YXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7Ci0gIH0gZWxzZSBpZiAoc2hhZGVyU2NyaXB0
LnR5cGUgPT0gIngtc2hhZGVyL3gtdmVydGV4IikgewotICAgIHNoYWRlciA9IGdsLmNyZWF0ZVNo
YWRlcihnbC5WRVJURVhfU0hBREVSKTsKLSAgfSBlbHNlIHsKLSAgICB0aHJvdyhuZXcgRXJyb3Io
IlVua25vd24gc2hhZGVyIHR5cGUgIitzaGFkZXJTY3JpcHQudHlwZSkpOwotICB9Ci0KLSAgZ2wu
c2hhZGVyU291cmNlKHNoYWRlciwgc3RyKTsKLSAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwot
Ci0gIGlmIChnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykg
IT0gMSkgewotICAgIHZhciBpbG9nID0gZ2wuZ2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpOwotICAg
IGdsLmRlbGV0ZVNoYWRlcihzaGFkZXIpOwotICAgIHRocm93KG5ldyBFcnJvcigiRmFpbGVkIHRv
IGNvbXBpbGUgc2hhZGVyICIrc2hhZGVyU2NyaXB0LmlkICsgIiwgU2hhZGVyIGluZm8gbG9nOiAi
ICsgaWxvZykpOwotICB9Ci0gIHJldHVybiBzaGFkZXI7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRTaGFk
ZXJBcnJheShnbCwgc2hhZGVycykgewotICB2YXIgaWQgPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0g
IHZhciBzaGFkZXJPYmpzID0gW107Ci0gIGZvciAodmFyIGk9MDsgaTxzaGFkZXJzLmxlbmd0aDsg
KytpKSB7Ci0gICAgdHJ5IHsKLSAgICAgIHZhciBzaCA9IGdldFNoYWRlcihnbCwgc2hhZGVyc1tp
XSk7Ci0gICAgICBzaGFkZXJPYmpzLnB1c2goc2gpOwotICAgICAgZ2wuYXR0YWNoU2hhZGVyKGlk
LCBzaCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgdmFyIHByID0ge3Byb2dyYW06IGlkLCBz
aGFkZXJzOiBzaGFkZXJPYmpzfTsKLSAgICAgIGRlbGV0ZVNoYWRlcihnbCwgcHIpOwotICAgICAg
dGhyb3cgKGUpOwotICAgIH0KLSAgfQotICB2YXIgcHJvZyA9IHtwcm9ncmFtOiBpZCwgc2hhZGVy
czogc2hhZGVyT2Jqc307Ci0gIGdsLmxpbmtQcm9ncmFtKGlkKTsKLSAgZ2wudmFsaWRhdGVQcm9n
cmFtKGlkKTsKLSAgaWYgKGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoaWQsIGdsLkxJTktfU1RBVFVT
KSAhPSAxKSB7Ci0gICAgZGVsZXRlU2hhZGVyKGdsLHByb2cpOwotICAgIHRocm93KG5ldyBFcnJv
cigiRmFpbGVkIHRvIGxpbmsgc2hhZGVyIikpOwotICB9Ci0gIGlmIChnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKGlkLCBnbC5WQUxJREFURV9TVEFUVVMpICE9IDEpIHsKLSAgICBkZWxldGVTaGFkZXIo
Z2wscHJvZyk7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJGYWlsZWQgdG8gdmFsaWRhdGUgc2hhZGVy
IikpOwotICB9Ci0gIHJldHVybiBwcm9nOwotfQotZnVuY3Rpb24gbG9hZFNoYWRlcihnbCkgewot
ICB2YXIgc2ggPSBbXTsKLSAgZm9yICh2YXIgaT0xOyBpPGFyZ3VtZW50cy5sZW5ndGg7ICsraSkK
LSAgICBzaC5wdXNoKGFyZ3VtZW50c1tpXSk7Ci0gIHJldHVybiBsb2FkU2hhZGVyQXJyYXkoZ2ws
IHNoKTsKLX0KLQotZnVuY3Rpb24gZGVsZXRlU2hhZGVyKGdsLCBzaCkgewotICBnbC51c2VQcm9n
cmFtKG51bGwpOwotICBzaC5zaGFkZXJzLmZvckVhY2goZnVuY3Rpb24ocyl7Ci0gICAgZ2wuZGV0
YWNoU2hhZGVyKHNoLnByb2dyYW0sIHMpOwotICAgIGdsLmRlbGV0ZVNoYWRlcihzKTsKLSAgfSk7
Ci0gIGdsLmRlbGV0ZVByb2dyYW0oc2gucHJvZ3JhbSk7Ci19Ci0KLWZ1bmN0aW9uIGdldEdMRXJy
b3JBc1N0cmluZyhjdHgsIGVycikgewotICBpZiAoZXJyID09PSBjdHguTk9fRVJST1IpIHsKLSAg
ICByZXR1cm4gIk5PX0VSUk9SIjsKLSAgfQotICBmb3IgKHZhciBuYW1lIGluIGN0eCkgewotICAg
IGlmIChjdHhbbmFtZV0gPT09IGVycikgewotICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgfQotICB9
Ci0gIHJldHVybiBlcnIudG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tFcnJvcihnbCwg
bXNnKSB7Ci0gIHZhciBlID0gZ2wuZ2V0RXJyb3IoKTsKLSAgaWYgKGUgIT0gZ2wuTk9fRVJST1Ip
IHsKLSAgICBsb2coIkVycm9yICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGUpICsgIiBhdCAi
ICsgbXNnKTsKLSAgfQotICByZXR1cm4gZTsKLX0KLQotZnVuY3Rpb24gdGhyb3dFcnJvcihnbCwg
bXNnKSB7Ci0gIHZhciBlID0gZ2wuZ2V0RXJyb3IoKTsKLSAgaWYgKGUgIT0gMCkgewotICAgIHRo
cm93KG5ldyBFcnJvcigiRXJyb3IgIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZSkgKyAiIGF0
ICIgKyBtc2cpKTsKLSAgfQotfQotCi1NYXRoLmNvdCA9IGZ1bmN0aW9uKHopIHsgcmV0dXJuIDEu
MCAvIE1hdGgudGFuKHopOyB9Ci0KLS8qCi0gIE1hdHJpeCB1dGlsaXRpZXMsIHVzaW5nIHRoZSBP
cGVuR0wgZWxlbWVudCBvcmRlciB3aGVyZQotICB0aGUgbGFzdCA0IGVsZW1lbnRzIGFyZSB0aGUg
dHJhbnNsYXRpb24gY29sdW1uLgotCi0gIFVzZXMgZmxhdCBhcnJheXMgYXMgbWF0cmljZXMgZm9y
IHBlcmZvcm1hbmNlLgotCi0gIE1vc3Qgb3BlcmF0aW9ucyBoYXZlIGluLXBsYWNlIHZhcmlhbnRz
IHRvIGF2b2lkIGFsbG9jYXRpbmcgdGVtcG9yYXJ5IG1hdHJpY2VzLgotCi0gIE5hbWluZyBsb2dp
YzoKLSAgICBNYXRyaXgubWV0aG9kIG9wZXJhdGVzIG9uIGEgNHg0IE1hdHJpeCBhbmQgcmV0dXJu
cyBhIG5ldyBNYXRyaXguCi0gICAgTWF0cml4Lm1ldGhvZDN4MyBvcGVyYXRlcyBvbiBhIDN4MyBN
YXRyaXggYW5kIHJldHVybnMgYSBuZXcgTWF0cml4LiBOb3QgYWxsIG9wZXJhdGlvbnMgaGF2ZSBh
IDN4MyB2ZXJzaW9uIChhcyAzeDMgaXMgdXN1YWxseSBvbmx5IHVzZWQgZm9yIHRoZSBub3JtYWwg
bWF0cml4OiBNYXRyaXgudHJhbnNwb3NlM3gzKE1hdHJpeC5pbnZlcnNlVG8zeDMobWF0NHg0KSkp
Ci0gICAgTWF0cml4Lm1ldGhvZFszeDNdSW5QbGFjZShhcmdzLCB0YXJnZXQpIHN0b3JlcyBpdHMg
cmVzdWx0IGluIHRoZSB0YXJnZXQgbWF0cml4LgotCi0gICAgTWF0cml4LnNjYWxlKFtzeCwgc3ks
IHN6XSkgLS0gbm9uLXVuaWZvcm0gc2NhbGUgYnkgdmVjdG9yCi0gICAgTWF0cml4LnNjYWxlMShz
KSAgICAgICAgICAgLS0gdW5pZm9ybSBzY2FsZSBieSBzY2FsYXIKLSAgICBNYXRyaXguc2NhbGUz
KHN4LCBzeSwgc3opICAtLSBub24tdW5pZm9ybSBzY2FsZSBieSBzY2FsYXJzCi0KLSAgICBEaXR0
byBmb3IgdHJhbnNsYXRlLgotKi8KLU1hdHJpeCA9IHsKLSAgaWRlbnRpdHkgOiBbCi0gICAgMS4w
LCAwLjAsIDAuMCwgMC4wLAotICAgIDAuMCwgMS4wLCAwLjAsIDAuMCwKLSAgICAwLjAsIDAuMCwg
MS4wLCAwLjAsCi0gICAgMC4wLCAwLjAsIDAuMCwgMS4wCi0gIF0sCi0KLSAgbmV3SWRlbnRpdHkg
OiBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gWwotICAgICAgMS4wLCAwLjAsIDAuMCwgMC4wLAot
ICAgICAgMC4wLCAxLjAsIDAuMCwgMC4wLAotICAgICAgMC4wLCAwLjAsIDEuMCwgMC4wLAotICAg
ICAgMC4wLCAwLjAsIDAuMCwgMS4wCi0gICAgXTsKLSAgfSwKLQotICBuZXdJZGVudGl0eTN4MyA6
IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBbCi0gICAgICAxLjAsIDAuMCwgMC4wLAotICAgICAg
MC4wLCAxLjAsIDAuMCwKLSAgICAgIDAuMCwgMC4wLCAxLjAKLSAgICBdOwotICB9LAotCi0gIGNv
cHlNYXRyaXggOiBmdW5jdGlvbihzcmMsIGRzdCkgewotICAgIGZvciAodmFyIGk9MDsgaTwxNjsg
aSsrKSBkc3RbaV0gPSBzcmNbaV07Ci0gICAgcmV0dXJuIGRzdDsKLSAgfSwKLQotICB0bzN4MyA6
IGZ1bmN0aW9uKG0pIHsKLSAgICByZXR1cm4gWwotICAgICAgbVswXSwgbVsxXSwgbVsyXSwKLSAg
ICAgIG1bNF0sIG1bNV0sIG1bNl0sCi0gICAgICBtWzhdLCBtWzldLCBtWzEwXQotICAgIF07Ci0g
IH0sCi0KLSAgLy8gb3J0aG9ub3JtYWwgbWF0cml4IGludmVyc2UKLSAgaW52ZXJzZU9OIDogZnVu
Y3Rpb24obSkgewotICAgIHZhciBuID0gdGhpcy50cmFuc3Bvc2U0eDQobSk7Ci0gICAgdmFyIHQg
PSBbbVsxMl0sIG1bMTNdLCBtWzE0XV07Ci0gICAgblszXSA9IG5bN10gPSBuWzExXSA9IDA7Ci0g
ICAgblsxMl0gPSAtVmVjMy5kb3QoW25bMF0sIG5bNF0sIG5bOF1dLCB0KTsKLSAgICBuWzEzXSA9
IC1WZWMzLmRvdChbblsxXSwgbls1XSwgbls5XV0sIHQpOwotICAgIG5bMTRdID0gLVZlYzMuZG90
KFtuWzJdLCBuWzZdLCBuWzEwXV0sIHQpOwotICAgIHJldHVybiBuOwotICB9LAotCi0gIGludmVy
c2VUbzN4MyA6IGZ1bmN0aW9uKG0pIHsKLSAgICByZXR1cm4gdGhpcy5pbnZlcnNlNHg0dG8zeDNJ
blBsYWNlKG0sIHRoaXMubmV3SWRlbnRpdHkzeDMoKSk7Ci0gIH0sCi0KLSAgaW52ZXJzZVRvM3gz
SW5QbGFjZSA6IGZ1bmN0aW9uKG0sbikgewotICAgIHZhciBhMTEgPSBtWzEwXSptWzVdLW1bNl0q
bVs5XSwKLSAgICAgICAgYTIxID0gLW1bMTBdKm1bMV0rbVsyXSptWzldLAotICAgICAgICBhMzEg
PSBtWzZdKm1bMV0tbVsyXSptWzVdLAotICAgICAgICBhMTIgPSAtbVsxMF0qbVs0XSttWzZdKm1b
OF0sCi0gICAgICAgIGEyMiA9IG1bMTBdKm1bMF0tbVsyXSptWzhdLAotICAgICAgICBhMzIgPSAt
bVs2XSptWzBdK21bMl0qbVs0XSwKLSAgICAgICAgYTEzID0gbVs5XSptWzRdLW1bNV0qbVs4XSwK
LSAgICAgICAgYTIzID0gLW1bOV0qbVswXSttWzFdKm1bOF0sCi0gICAgICAgIGEzMyA9IG1bNV0q
bVswXS1tWzFdKm1bNF07Ci0gICAgdmFyIGRldCA9IG1bMF0qKGExMSkgKyBtWzFdKihhMTIpICsg
bVsyXSooYTEzKTsKLSAgICBpZiAoZGV0ID09IDApIC8vIG5vIGludmVyc2UKLSAgICAgIHJldHVy
biBbMSwwLDAsMCwxLDAsMCwwLDFdOwotICAgIHZhciBpZGV0ID0gMSAvIGRldDsKLSAgICBuWzBd
ID0gaWRldCphMTE7Ci0gICAgblsxXSA9IGlkZXQqYTIxOwotICAgIG5bMl0gPSBpZGV0KmEzMTsK
LSAgICBuWzNdID0gaWRldCphMTI7Ci0gICAgbls0XSA9IGlkZXQqYTIyOwotICAgIG5bNV0gPSBp
ZGV0KmEzMjsKLSAgICBuWzZdID0gaWRldCphMTM7Ci0gICAgbls3XSA9IGlkZXQqYTIzOwotICAg
IG5bOF0gPSBpZGV0KmEzMzsKLSAgICByZXR1cm4gbjsKLSAgfSwKLQotICBpbnZlcnNlM3gzIDog
ZnVuY3Rpb24obSkgewotICAgIHJldHVybiB0aGlzLmludmVyc2UzeDNJblBsYWNlKG0sIHRoaXMu
bmV3SWRlbnRpdHkzeDMoKSk7Ci0gIH0sCi0KLSAgaW52ZXJzZTN4M0luUGxhY2UgOiBmdW5jdGlv
bihtLG4pIHsKLSAgICB2YXIgYTExID0gbVs4XSptWzRdLW1bNV0qbVs3XSwKLSAgICAgICAgYTIx
ID0gLW1bOF0qbVsxXSttWzJdKm1bN10sCi0gICAgICAgIGEzMSA9IG1bNV0qbVsxXS1tWzJdKm1b
NF0sCi0gICAgICAgIGExMiA9IC1tWzhdKm1bM10rbVs1XSptWzZdLAotICAgICAgICBhMjIgPSBt
WzhdKm1bMF0tbVsyXSptWzZdLAotICAgICAgICBhMzIgPSAtbVs1XSptWzBdK21bMl0qbVszXSwK
LSAgICAgICAgYTEzID0gbVs3XSptWzRdLW1bNF0qbVs4XSwKLSAgICAgICAgYTIzID0gLW1bN10q
bVswXSttWzFdKm1bNl0sCi0gICAgICAgIGEzMyA9IG1bNF0qbVswXS1tWzFdKm1bM107Ci0gICAg
dmFyIGRldCA9IG1bMF0qKGExMSkgKyBtWzFdKihhMTIpICsgbVsyXSooYTEzKTsKLSAgICBpZiAo
ZGV0ID09IDApIC8vIG5vIGludmVyc2UKLSAgICAgIHJldHVybiBbMSwwLDAsMCwxLDAsMCwwLDFd
OwotICAgIHZhciBpZGV0ID0gMSAvIGRldDsKLSAgICBuWzBdID0gaWRldCphMTE7Ci0gICAgblsx
XSA9IGlkZXQqYTIxOwotICAgIG5bMl0gPSBpZGV0KmEzMTsKLSAgICBuWzNdID0gaWRldCphMTI7
Ci0gICAgbls0XSA9IGlkZXQqYTIyOwotICAgIG5bNV0gPSBpZGV0KmEzMjsKLSAgICBuWzZdID0g
aWRldCphMTM7Ci0gICAgbls3XSA9IGlkZXQqYTIzOwotICAgIG5bOF0gPSBpZGV0KmEzMzsKLSAg
ICByZXR1cm4gbjsKLSAgfSwKLQotICBmcnVzdHVtIDogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0LCBi
b3R0b20sIHRvcCwgem5lYXIsIHpmYXIpIHsKLSAgICB2YXIgWCA9IDIqem5lYXIvKHJpZ2h0LWxl
ZnQpOwotICAgIHZhciBZID0gMip6bmVhci8odG9wLWJvdHRvbSk7Ci0gICAgdmFyIEEgPSAocmln
aHQrbGVmdCkvKHJpZ2h0LWxlZnQpOwotICAgIHZhciBCID0gKHRvcCtib3R0b20pLyh0b3AtYm90
dG9tKTsKLSAgICB2YXIgQyA9IC0oemZhcit6bmVhcikvKHpmYXItem5lYXIpOwotICAgIHZhciBE
ID0gLTIqemZhcip6bmVhci8oemZhci16bmVhcik7Ci0KLSAgICByZXR1cm4gWwotICAgICAgWCwg
MCwgMCwgMCwKLSAgICAgIDAsIFksIDAsIDAsCi0gICAgICBBLCBCLCBDLCAtMSwKLSAgICAgIDAs
IDAsIEQsIDAKLSAgICBdOwotIH0sCi0KLSAgcGVyc3BlY3RpdmUgOiBmdW5jdGlvbiAoZm92eSwg
YXNwZWN0LCB6bmVhciwgemZhcikgewotICAgIHZhciB5bWF4ID0gem5lYXIgKiBNYXRoLnRhbihm
b3Z5ICogTWF0aC5QSSAvIDM2MC4wKTsKLSAgICB2YXIgeW1pbiA9IC15bWF4OwotICAgIHZhciB4
bWluID0geW1pbiAqIGFzcGVjdDsKLSAgICB2YXIgeG1heCA9IHltYXggKiBhc3BlY3Q7Ci0KLSAg
ICByZXR1cm4gdGhpcy5mcnVzdHVtKHhtaW4sIHhtYXgsIHltaW4sIHltYXgsIHpuZWFyLCB6ZmFy
KTsKLSAgfSwKLQotICBtdWw0eDQgOiBmdW5jdGlvbiAoYSxiKSB7Ci0gICAgcmV0dXJuIHRoaXMu
bXVsNHg0SW5QbGFjZShhLGIsdGhpcy5uZXdJZGVudGl0eSgpKTsKLSAgfSwKLQotICBtdWw0eDRJ
blBsYWNlIDogZnVuY3Rpb24gKGEsIGIsIGMpIHsKLSAgICAgICAgY1swXSA9ICAgYlswXSAqIGFb
MF0gKwotICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzRdICsKLSAgICAgICAgICAgICAgICAg
YlswKzJdICogYVs4XSArCi0gICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTJdOwotICAgICAg
ICBjWzArMV0gPSBiWzBdICogYVsxXSArCi0gICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFbNV0g
KwotICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzldICsKLSAgICAgICAgICAgICAgICAgYlsw
KzNdICogYVsxM107Ci0gICAgICAgIGNbMCsyXSA9IGJbMF0gKiBhWzJdICsKLSAgICAgICAgICAg
ICAgICAgYlswKzFdICogYVs2XSArCi0gICAgICAgICAgICAgICAgIGJbMCsyXSAqIGFbMTBdICsK
LSAgICAgICAgICAgICAgICAgYlswKzNdICogYVsxNF07Ci0gICAgICAgIGNbMCszXSA9IGJbMF0g
KiBhWzNdICsKLSAgICAgICAgICAgICAgICAgYlswKzFdICogYVs3XSArCi0gICAgICAgICAgICAg
ICAgIGJbMCsyXSAqIGFbMTFdICsKLSAgICAgICAgICAgICAgICAgYlswKzNdICogYVsxNV07Ci0g
ICAgICAgIGNbNF0gPSAgIGJbNF0gKiBhWzBdICsKLSAgICAgICAgICAgICAgICAgYls0KzFdICog
YVs0XSArCi0gICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFbOF0gKwotICAgICAgICAgICAgICAg
ICBiWzQrM10gKiBhWzEyXTsKLSAgICAgICAgY1s0KzFdID0gYls0XSAqIGFbMV0gKwotICAgICAg
ICAgICAgICAgICBiWzQrMV0gKiBhWzVdICsKLSAgICAgICAgICAgICAgICAgYls0KzJdICogYVs5
XSArCi0gICAgICAgICAgICAgICAgIGJbNCszXSAqIGFbMTNdOwotICAgICAgICBjWzQrMl0gPSBi
WzRdICogYVsyXSArCi0gICAgICAgICAgICAgICAgIGJbNCsxXSAqIGFbNl0gKwotICAgICAgICAg
ICAgICAgICBiWzQrMl0gKiBhWzEwXSArCi0gICAgICAgICAgICAgICAgIGJbNCszXSAqIGFbMTRd
OwotICAgICAgICBjWzQrM10gPSBiWzRdICogYVszXSArCi0gICAgICAgICAgICAgICAgIGJbNCsx
XSAqIGFbN10gKwotICAgICAgICAgICAgICAgICBiWzQrMl0gKiBhWzExXSArCi0gICAgICAgICAg
ICAgICAgIGJbNCszXSAqIGFbMTVdOwotICAgICAgICBjWzhdID0gICBiWzhdICogYVswXSArCi0g
ICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNF0gKwotICAgICAgICAgICAgICAgICBiWzgrMl0g
KiBhWzhdICsKLSAgICAgICAgICAgICAgICAgYls4KzNdICogYVsxMl07Ci0gICAgICAgIGNbOCsx
XSA9IGJbOF0gKiBhWzFdICsKLSAgICAgICAgICAgICAgICAgYls4KzFdICogYVs1XSArCi0gICAg
ICAgICAgICAgICAgIGJbOCsyXSAqIGFbOV0gKwotICAgICAgICAgICAgICAgICBiWzgrM10gKiBh
WzEzXTsKLSAgICAgICAgY1s4KzJdID0gYls4XSAqIGFbMl0gKwotICAgICAgICAgICAgICAgICBi
WzgrMV0gKiBhWzZdICsKLSAgICAgICAgICAgICAgICAgYls4KzJdICogYVsxMF0gKwotICAgICAg
ICAgICAgICAgICBiWzgrM10gKiBhWzE0XTsKLSAgICAgICAgY1s4KzNdID0gYls4XSAqIGFbM10g
KwotICAgICAgICAgICAgICAgICBiWzgrMV0gKiBhWzddICsKLSAgICAgICAgICAgICAgICAgYls4
KzJdICogYVsxMV0gKwotICAgICAgICAgICAgICAgICBiWzgrM10gKiBhWzE1XTsKLSAgICAgICAg
Y1sxMl0gPSAgIGJbMTJdICogYVswXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzRd
ICsKLSAgICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbOF0gKwotICAgICAgICAgICAgICAgICBi
WzEyKzNdICogYVsxMl07Ci0gICAgICAgIGNbMTIrMV0gPSBiWzEyXSAqIGFbMV0gKwotICAgICAg
ICAgICAgICAgICBiWzEyKzFdICogYVs1XSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBh
WzldICsKLSAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTNdOwotICAgICAgICBjWzEyKzJd
ID0gYlsxMl0gKiBhWzJdICsKLSAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFbNl0gKwotICAg
ICAgICAgICAgICAgICBiWzEyKzJdICogYVsxMF0gKwotICAgICAgICAgICAgICAgICBiWzEyKzNd
ICogYVsxNF07Ci0gICAgICAgIGNbMTIrM10gPSBiWzEyXSAqIGFbM10gKwotICAgICAgICAgICAg
ICAgICBiWzEyKzFdICogYVs3XSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBhWzExXSAr
Ci0gICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzE1XTsKLSAgICByZXR1cm4gYzsKLSAgfSwK
LQotICBtdWx2NCA6IGZ1bmN0aW9uIChhLCB2KSB7Ci0gICAgYyA9IG5ldyBBcnJheSg0KTsKLSAg
ICBmb3IgKHZhciBpPTA7IGk8NDsgKytpKSB7Ci0gICAgICB2YXIgeCA9IDA7Ci0gICAgICBmb3Ig
KHZhciBrPTA7IGs8NDsgKytrKQotICAgICAgICB4ICs9IHZba10gKiBhW2sqNCtpXTsKLSAgICAg
IGNbaV0gPSB4OwotICAgIH0KLSAgICByZXR1cm4gYzsKLSAgfSwKLQotICByb3RhdGUgOiBmdW5j
dGlvbiAoYW5nbGUsIGF4aXMpIHsKLSAgICBheGlzID0gVmVjMy5ub3JtYWxpemUoYXhpcyk7Ci0g
ICAgdmFyIHg9YXhpc1swXSwgeT1heGlzWzFdLCB6PWF4aXNbMl07Ci0gICAgdmFyIGMgPSBNYXRo
LmNvcyhhbmdsZSk7Ci0gICAgdmFyIGMxID0gMS1jOwotICAgIHZhciBzID0gTWF0aC5zaW4oYW5n
bGUpOwotICAgIHJldHVybiBbCi0gICAgICB4KngqYzErYywgeSp4KmMxK3oqcywgeip4KmMxLXkq
cywgMCwKLSAgICAgIHgqeSpjMS16KnMsIHkqeSpjMStjLCB5KnoqYzEreCpzLCAwLAotICAgICAg
eCp6KmMxK3kqcywgeSp6KmMxLXgqcywgeip6KmMxK2MsIDAsCi0gICAgICAwLDAsMCwxCi0gICAg
XTsKLSAgfSwKLSAgcm90YXRlSW5QbGFjZSA6IGZ1bmN0aW9uKGFuZ2xlLCBheGlzLCBtKSB7Ci0g
ICAgYXhpcyA9IFZlYzMubm9ybWFsaXplKGF4aXMpOwotICAgIHZhciB4PWF4aXNbMF0sIHk9YXhp
c1sxXSwgej1heGlzWzJdOwotICAgIHZhciBjID0gTWF0aC5jb3MoYW5nbGUpOwotICAgIHZhciBj
MSA9IDEtYzsKLSAgICB2YXIgcyA9IE1hdGguc2luKGFuZ2xlKTsKLSAgICB2YXIgdG1wTWF0cml4
ID0gdGhpcy50bXBNYXRyaXg7Ci0gICAgdmFyIHRtcE1hdHJpeDIgPSB0aGlzLnRtcE1hdHJpeDI7
Ci0gICAgdG1wTWF0cml4WzBdID0geCp4KmMxK2M7IHRtcE1hdHJpeFsxXSA9IHkqeCpjMSt6KnM7
IHRtcE1hdHJpeFsyXSA9IHoqeCpjMS15KnM7IHRtcE1hdHJpeFszXSA9IDA7Ci0gICAgdG1wTWF0
cml4WzRdID0geCp5KmMxLXoqczsgdG1wTWF0cml4WzVdID0geSp5KmMxK2M7IHRtcE1hdHJpeFs2
XSA9IHkqeipjMSt4KnM7IHRtcE1hdHJpeFs3XSA9IDA7Ci0gICAgdG1wTWF0cml4WzhdID0geCp6
KmMxK3kqczsgdG1wTWF0cml4WzldID0geSp6KmMxLXgqczsgdG1wTWF0cml4WzEwXSA9IHoqeipj
MStjOyB0bXBNYXRyaXhbMTFdID0gMDsKLSAgICB0bXBNYXRyaXhbMTJdID0gMDsgdG1wTWF0cml4
WzEzXSA9IDA7IHRtcE1hdHJpeFsxNF0gPSAwOyB0bXBNYXRyaXhbMTVdID0gMTsKLSAgICB0aGlz
LmNvcHlNYXRyaXgobSwgdG1wTWF0cml4Mik7Ci0gICAgcmV0dXJuIHRoaXMubXVsNHg0SW5QbGFj
ZSh0bXBNYXRyaXgyLCB0bXBNYXRyaXgsIG0pOwotICB9LAotCi0gIHNjYWxlIDogZnVuY3Rpb24o
dikgewotICAgIHJldHVybiBbCi0gICAgICB2WzBdLCAwLCAwLCAwLAotICAgICAgMCwgdlsxXSwg
MCwgMCwKLSAgICAgIDAsIDAsIHZbMl0sIDAsCi0gICAgICAwLCAwLCAwLCAxCi0gICAgXTsKLSAg
fSwKLSAgc2NhbGUzIDogZnVuY3Rpb24oeCx5LHopIHsKLSAgICByZXR1cm4gWwotICAgICAgeCwg
MCwgMCwgMCwKLSAgICAgIDAsIHksIDAsIDAsCi0gICAgICAwLCAwLCB6LCAwLAotICAgICAgMCwg
MCwgMCwgMQotICAgIF07Ci0gIH0sCi0gIHNjYWxlMSA6IGZ1bmN0aW9uKHMpIHsKLSAgICByZXR1
cm4gWwotICAgICAgcywgMCwgMCwgMCwKLSAgICAgIDAsIHMsIDAsIDAsCi0gICAgICAwLCAwLCBz
LCAwLAotICAgICAgMCwgMCwgMCwgMQotICAgIF07Ci0gIH0sCi0gIHNjYWxlM0luUGxhY2UgOiBm
dW5jdGlvbih4LCB5LCB6LCBtKSB7Ci0gICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4
OwotICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOwotICAgIHRtcE1hdHJpeFsw
XSA9IHg7IHRtcE1hdHJpeFsxXSA9IDA7IHRtcE1hdHJpeFsyXSA9IDA7IHRtcE1hdHJpeFszXSA9
IDA7Ci0gICAgdG1wTWF0cml4WzRdID0gMDsgdG1wTWF0cml4WzVdID0geTsgdG1wTWF0cml4WzZd
ID0gMDsgdG1wTWF0cml4WzddID0gMDsKLSAgICB0bXBNYXRyaXhbOF0gPSAwOyB0bXBNYXRyaXhb
OV0gPSAwOyB0bXBNYXRyaXhbMTBdID0gejsgdG1wTWF0cml4WzExXSA9IDA7Ci0gICAgdG1wTWF0
cml4WzEyXSA9IDA7IHRtcE1hdHJpeFsxM10gPSAwOyB0bXBNYXRyaXhbMTRdID0gMDsgdG1wTWF0
cml4WzE1XSA9IDE7Ci0gICAgdGhpcy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOwotICAgIHJl
dHVybiB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKLSAgfSwK
LSAgc2NhbGUxSW5QbGFjZSA6IGZ1bmN0aW9uKHMsIG0pIHsgcmV0dXJuIHRoaXMuc2NhbGUzSW5Q
bGFjZShzLCBzLCBzLCBtKTsgfSwKLSAgc2NhbGVJblBsYWNlIDogZnVuY3Rpb24ocywgbSkgeyBy
ZXR1cm4gdGhpcy5zY2FsZTNJblBsYWNlKHNbMF0sc1sxXSxzWzJdLG0pOyB9LAotCi0gIHRyYW5z
bGF0ZTMgOiBmdW5jdGlvbih4LHkseikgewotICAgIHJldHVybiBbCi0gICAgICAxLCAwLCAwLCAw
LAotICAgICAgMCwgMSwgMCwgMCwKLSAgICAgIDAsIDAsIDEsIDAsCi0gICAgICB4LCB5LCB6LCAx
Ci0gICAgXTsKLSAgfSwKLQotICB0cmFuc2xhdGUgOiBmdW5jdGlvbih2KSB7Ci0gICAgcmV0dXJu
IHRoaXMudHJhbnNsYXRlMyh2WzBdLCB2WzFdLCB2WzJdKTsKLSAgfSwKLSAgdG1wTWF0cml4IDog
WzAsMCwwLDAsIDAsMCwwLDAsIDAsMCwwLDAsIDAsMCwwLDBdLAotICB0bXBNYXRyaXgyIDogWzAs
MCwwLDAsIDAsMCwwLDAsIDAsMCwwLDAsIDAsMCwwLDBdLAotICB0cmFuc2xhdGUzSW5QbGFjZSA6
IGZ1bmN0aW9uKHgseSx6LG0pIHsKLSAgICB2YXIgdG1wTWF0cml4ID0gdGhpcy50bXBNYXRyaXg7
Ci0gICAgdmFyIHRtcE1hdHJpeDIgPSB0aGlzLnRtcE1hdHJpeDI7Ci0gICAgdG1wTWF0cml4WzBd
ID0gMTsgdG1wTWF0cml4WzFdID0gMDsgdG1wTWF0cml4WzJdID0gMDsgdG1wTWF0cml4WzNdID0g
MDsKLSAgICB0bXBNYXRyaXhbNF0gPSAwOyB0bXBNYXRyaXhbNV0gPSAxOyB0bXBNYXRyaXhbNl0g
PSAwOyB0bXBNYXRyaXhbN10gPSAwOwotICAgIHRtcE1hdHJpeFs4XSA9IDA7IHRtcE1hdHJpeFs5
XSA9IDA7IHRtcE1hdHJpeFsxMF0gPSAxOyB0bXBNYXRyaXhbMTFdID0gMDsKLSAgICB0bXBNYXRy
aXhbMTJdID0geDsgdG1wTWF0cml4WzEzXSA9IHk7IHRtcE1hdHJpeFsxNF0gPSB6OyB0bXBNYXRy
aXhbMTVdID0gMTsKLSAgICB0aGlzLmNvcHlNYXRyaXgobSwgdG1wTWF0cml4Mik7Ci0gICAgcmV0
dXJuIHRoaXMubXVsNHg0SW5QbGFjZSh0bXBNYXRyaXgyLCB0bXBNYXRyaXgsIG0pOwotICB9LAot
ICB0cmFuc2xhdGVJblBsYWNlIDogZnVuY3Rpb24odixtKXsgcmV0dXJuIHRoaXMudHJhbnNsYXRl
M0luUGxhY2UodlswXSwgdlsxXSwgdlsyXSwgbSk7IH0sCi0KLSAgbG9va0F0IDogZnVuY3Rpb24g
KGV5ZSwgY2VudGVyLCB1cCkgewotICAgIHZhciB6ID0gVmVjMy5kaXJlY3Rpb24oZXllLCBjZW50
ZXIpOwotICAgIHZhciB4ID0gVmVjMy5ub3JtYWxpemVJblBsYWNlKFZlYzMuY3Jvc3ModXAsIHop
KTsKLSAgICB2YXIgeSA9IFZlYzMubm9ybWFsaXplSW5QbGFjZShWZWMzLmNyb3NzKHosIHgpKTsK
LQotICAgIHZhciBtID0gWwotICAgICAgeFswXSwgeVswXSwgelswXSwgMCwKLSAgICAgIHhbMV0s
IHlbMV0sIHpbMV0sIDAsCi0gICAgICB4WzJdLCB5WzJdLCB6WzJdLCAwLAotICAgICAgMCwgMCwg
MCwgMQotICAgIF07Ci0KLSAgICB2YXIgdCA9IFsKLSAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAw
LCAxLCAwLCAwLAotICAgICAgMCwgMCwgMSwgMCwKLSAgICAgIC1leWVbMF0sIC1leWVbMV0sIC1l
eWVbMl0sIDEKLSAgICBdOwotCi0gICAgcmV0dXJuIHRoaXMubXVsNHg0KG0sdCk7Ci0gIH0sCi0K
LSAgdHJhbnNwb3NlNHg0IDogZnVuY3Rpb24obSkgewotICAgIHJldHVybiBbCi0gICAgICBtWzBd
LCBtWzRdLCBtWzhdLCBtWzEyXSwKLSAgICAgIG1bMV0sIG1bNV0sIG1bOV0sIG1bMTNdLAotICAg
ICAgbVsyXSwgbVs2XSwgbVsxMF0sIG1bMTRdLAotICAgICAgbVszXSwgbVs3XSwgbVsxMV0sIG1b
MTVdCi0gICAgXTsKLSAgfSwKLQotICB0cmFuc3Bvc2U0eDRJblBsYWNlIDogZnVuY3Rpb24obSkg
ewotICAgIHZhciB0bXAgPSAwLjA7Ci0gICAgdG1wID0gbVsxXTsgbVsxXSA9IG1bNF07IG1bNF0g
PSB0bXA7Ci0gICAgdG1wID0gbVsyXTsgbVsyXSA9IG1bOF07IG1bOF0gPSB0bXA7Ci0gICAgdG1w
ID0gbVszXTsgbVszXSA9IG1bMTJdOyBtWzEyXSA9IHRtcDsKLSAgICB0bXAgPSBtWzZdOyBtWzZd
ID0gbVs5XTsgbVs5XSA9IHRtcDsKLSAgICB0bXAgPSBtWzddOyBtWzddID0gbVsxM107IG1bMTNd
ID0gdG1wOwotICAgIHRtcCA9IG1bMTFdOyBtWzExXSA9IG1bMTRdOyBtWzE0XSA9IHRtcDsKLSAg
ICByZXR1cm4gbTsKLSAgfSwKLQotICB0cmFuc3Bvc2UzeDMgOiBmdW5jdGlvbihtKSB7Ci0gICAg
cmV0dXJuIFsKLSAgICAgIG1bMF0sIG1bM10sIG1bNl0sCi0gICAgICBtWzFdLCBtWzRdLCBtWzdd
LAotICAgICAgbVsyXSwgbVs1XSwgbVs4XQotICAgIF07Ci0gIH0sCi0KLSAgdHJhbnNwb3NlM3gz
SW5QbGFjZSA6IGZ1bmN0aW9uKG0pIHsKLSAgICB2YXIgdG1wID0gMC4wOwotICAgIHRtcCA9IG1b
MV07IG1bMV0gPSBtWzNdOyBtWzNdID0gdG1wOwotICAgIHRtcCA9IG1bMl07IG1bMl0gPSBtWzZd
OyBtWzZdID0gdG1wOwotICAgIHRtcCA9IG1bNV07IG1bNV0gPSBtWzddOyBtWzddID0gdG1wOwot
ICAgIHJldHVybiBtOwotICB9LAotfQotCi1WZWMzID0gewotICBtYWtlIDogZnVuY3Rpb24oKSB7
IHJldHVybiBbMCwwLDBdOyB9LAotICBjb3B5IDogZnVuY3Rpb24odikgeyByZXR1cm4gW3ZbMF0s
dlsxXSx2WzJdXTsgfSwKLQotICBhZGQgOiBmdW5jdGlvbiAodSx2KSB7Ci0gICAgcmV0dXJuIFt1
WzBdK3ZbMF0sIHVbMV0rdlsxXSwgdVsyXSt2WzJdXTsKLSAgfSwKLQotICBzdWIgOiBmdW5jdGlv
biAodSx2KSB7Ci0gICAgcmV0dXJuIFt1WzBdLXZbMF0sIHVbMV0tdlsxXSwgdVsyXS12WzJdXTsK
LSAgfSwKLQotICBuZWdhdGUgOiBmdW5jdGlvbiAodSkgewotICAgIHJldHVybiBbLXVbMF0sIC11
WzFdLCAtdVsyXV07Ci0gIH0sCi0KLSAgZGlyZWN0aW9uIDogZnVuY3Rpb24gKHUsdikgewotICAg
IHJldHVybiB0aGlzLm5vcm1hbGl6ZUluUGxhY2UodGhpcy5zdWIodSx2KSk7Ci0gIH0sCi0KLSAg
bm9ybWFsaXplSW5QbGFjZSA6IGZ1bmN0aW9uKHYpIHsKLSAgICB2YXIgaW1hZyA9IDEuMCAvIE1h
dGguc3FydCh2WzBdKnZbMF0gKyB2WzFdKnZbMV0gKyB2WzJdKnZbMl0pOwotICAgIHZbMF0gKj0g
aW1hZzsgdlsxXSAqPSBpbWFnOyB2WzJdICo9IGltYWc7Ci0gICAgcmV0dXJuIHY7Ci0gIH0sCi0K
LSAgbm9ybWFsaXplIDogZnVuY3Rpb24odikgewotICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZUlu
UGxhY2UodGhpcy5jb3B5KHYpKTsKLSAgfSwKLQotICBzY2FsZSA6IGZ1bmN0aW9uKGYsIHYpIHsK
LSAgICByZXR1cm4gW2YqdlswXSwgZip2WzFdLCBmKnZbMl1dOwotICB9LAotCi0gIGRvdCA6IGZ1
bmN0aW9uKHUsdikgewotICAgIHJldHVybiB1WzBdKnZbMF0gKyB1WzFdKnZbMV0gKyB1WzJdKnZb
Ml07Ci0gIH0sCi0KLSAgaW5uZXIgOiBmdW5jdGlvbih1LHYpIHsKLSAgICByZXR1cm4gW3VbMF0q
dlswXSwgdVsxXSp2WzFdLCB1WzJdKnZbMl1dOwotICB9LAotCi0gIGNyb3NzIDogZnVuY3Rpb24o
dSx2KSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIHVbMV0qdlsyXSAtIHVbMl0qdlsxXSwKLSAgICAg
IHVbMl0qdlswXSAtIHVbMF0qdlsyXSwKLSAgICAgIHVbMF0qdlsxXSAtIHVbMV0qdlswXQotICAg
IF07Ci0gIH0KLX0KLQotU2hhZGVyID0gZnVuY3Rpb24oZ2wpewotICB0aGlzLmdsID0gZ2w7Ci0g
IHRoaXMuc2hhZGVycyA9IFtdOwotICB0aGlzLnVuaWZvcm1Mb2NhdGlvbnMgPSB7fTsKLSAgdGhp
cy5hdHRyaWJMb2NhdGlvbnMgPSB7fTsKLSAgZm9yICh2YXIgaT0xOyBpPGFyZ3VtZW50cy5sZW5n
dGg7IGkrKykgewotICAgIHRoaXMuc2hhZGVycy5wdXNoKGFyZ3VtZW50c1tpXSk7Ci0gIH0KLX0K
LVNoYWRlci5wcm90b3R5cGUgPSB7Ci0gIGlkIDogbnVsbCwKLSAgZ2wgOiBudWxsLAotICBjb21w
aWxlZCA6IGZhbHNlLAotICBzaGFkZXIgOiBudWxsLAotICBzaGFkZXJzIDogW10sCi0KLSAgZGVz
dHJveSA6IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLnNoYWRlciAhPSBudWxsKSBkZWxldGVT
aGFkZXIodGhpcy5nbCwgdGhpcy5zaGFkZXIpOwotICB9LAotCi0gIGNvbXBpbGUgOiBmdW5jdGlv
bigpIHsKLSAgICB0aGlzLnNoYWRlciA9IGxvYWRTaGFkZXJBcnJheSh0aGlzLmdsLCB0aGlzLnNo
YWRlcnMpOwotICB9LAotCi0gIHVzZSA6IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLnNoYWRl
ciA9PSBudWxsKQotICAgICAgdGhpcy5jb21waWxlKCk7Ci0gICAgdGhpcy5nbC51c2VQcm9ncmFt
KHRoaXMuc2hhZGVyLnByb2dyYW0pOwotICB9LAotCi0gIHVuaWZvcm0xZnYgOiBmdW5jdGlvbihu
YW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhp
cy5nbC51bmlmb3JtMWZ2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0yZnYgOiBmdW5j
dGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0g
ICAgdGhpcy5nbC51bmlmb3JtMmZ2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZvcm0zZnYg
OiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFt
ZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtM2Z2KGxvYywgdmFsdWUpOwotICB9LAotCi0gIHVuaWZv
cm00ZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZv
cm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtNGZ2KGxvYywgdmFsdWUpOwotICB9LAotCi0g
IHVuaWZvcm0xZiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMu
dW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0xZihsb2MsIHZhbHVlKTsKLSAgfSwK
LQotICB1bmlmb3JtMmYgOiBmdW5jdGlvbihuYW1lLCB2MSx2MikgewotICAgIHZhciBsb2MgPSB0
aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMmYobG9jLCB2MSx2Mik7Ci0g
IH0sCi0KLSAgdW5pZm9ybTNmIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMpIHsKLSAgICB2YXIg
bG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTNmKGxvYywgdjEs
djIsdjMpOwotICB9LAotCi0gIHVuaWZvcm00ZiA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzLHY0
KSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZv
cm00Zihsb2MsIHYxLCB2MiwgdjMsIHY0KTsKLSAgfSwKLQotICB1bmlmb3JtMWl2IDogZnVuY3Rp
b24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAg
IHRoaXMuZ2wudW5pZm9ybTFpdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3JtMml2IDog
ZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUp
OwotICAgIHRoaXMuZ2wudW5pZm9ybTJpdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3Jt
M2l2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3Jt
KG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTNpdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1
bmlmb3JtNGl2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51
bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTRpdihsb2MsIHZhbHVlKTsKLSAgfSwK
LQotICB1bmlmb3JtMWkgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0
aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMWkobG9jLCB2YWx1ZSk7Ci0g
IH0sCi0KLSAgdW5pZm9ybTJpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIpIHsKLSAgICB2YXIgbG9j
ID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTJpKGxvYywgdjEsdjIp
OwotICB9LAotCi0gIHVuaWZvcm0zaSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzKSB7Ci0gICAg
dmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0zaShsb2Ms
IHYxLHYyLHYzKTsKLSAgfSwKLQotICB1bmlmb3JtNGkgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2
Myx2NCkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51
bmlmb3JtNGkobG9jLCB2MSwgdjIsIHYzLCB2NCk7Ci0gIH0sCi0KLSAgdW5pZm9ybU1hdHJpeDRm
diA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShu
YW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm1NYXRyaXg0ZnYobG9jLCBmYWxzZSwgdmFsdWUpOwot
ICB9LAotCi0gIHVuaWZvcm1NYXRyaXgzZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAg
IHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtTWF0cml4
M2Z2KGxvYywgZmFsc2UsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3JtTWF0cml4MmZ2IDogZnVu
Y3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwot
ICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDJmdihsb2MsIGZhbHNlLCB2YWx1ZSk7Ci0gIH0sCi0K
LSAgYXR0cmliIDogZnVuY3Rpb24obmFtZSkgewotICAgIGlmICh0aGlzLmF0dHJpYkxvY2F0aW9u
c1tuYW1lXSA9PSBudWxsKSB7Ci0gICAgICB2YXIgbG9jID0gdGhpcy5nbC5nZXRBdHRyaWJMb2Nh
dGlvbih0aGlzLnNoYWRlci5wcm9ncmFtLCBuYW1lKTsKLSAgICAgIHRoaXMuYXR0cmliTG9jYXRp
b25zW25hbWVdID0gbG9jOwotICAgIH0KLSAgICByZXR1cm4gdGhpcy5hdHRyaWJMb2NhdGlvbnNb
bmFtZV07Ci0gIH0sCi0KLSAgdW5pZm9ybSA6IGZ1bmN0aW9uKG5hbWUpIHsKLSAgICBpZiAodGhp
cy51bmlmb3JtTG9jYXRpb25zW25hbWVdID09IG51bGwpIHsKLSAgICAgIHZhciBsb2MgPSB0aGlz
LmdsLmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlci5wcm9ncmFtLCBuYW1lKTsKLSAgICAg
IHRoaXMudW5pZm9ybUxvY2F0aW9uc1tuYW1lXSA9IGxvYzsKLSAgICB9Ci0gICAgcmV0dXJuIHRo
aXMudW5pZm9ybUxvY2F0aW9uc1tuYW1lXTsKLSAgfQotfQotRmlsdGVyID0gZnVuY3Rpb24oZ2ws
IHNoYWRlcikgewotICBTaGFkZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLX0KLUZpbHRlci5w
cm90b3R5cGUgPSBuZXcgU2hhZGVyKCk7Ci1GaWx0ZXIucHJvdG90eXBlLmFwcGx5ID0gZnVuY3Rp
b24oaW5pdCkgewotICB0aGlzLnVzZSgpOwotICB2YXIgdmEgPSB0aGlzLmF0dHJpYigiVmVydGV4
Iik7Ci0gIHZhciB0YSA9IHRoaXMuYXR0cmliKCJUZXgiKTsKLSAgdmFyIHZibyA9IFF1YWQuZ2V0
Q2FjaGVkVkJPKHRoaXMuZ2wpOwotICBpZiAoaW5pdCkgaW5pdCh0aGlzKTsKLSAgdmJvLmRyYXco
dmEsIG51bGwsIHRhKTsKLX0KLQotCi1WQk8gPSBmdW5jdGlvbihnbCkgewotICB0aGlzLmdsID0g
Z2w7Ci0gIHRoaXMuZGF0YSA9IFtdOwotICB0aGlzLmVsZW1lbnRzVkJPID0gbnVsbDsKLSAgZm9y
ICh2YXIgaT0xOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgIGlmIChhcmd1bWVudHNb
aV0uZWxlbWVudHMpCi0gICAgICB0aGlzLmVsZW1lbnRzID0gYXJndW1lbnRzW2ldOwotICAgIGVs
c2UKLSAgICAgIHRoaXMuZGF0YS5wdXNoKGFyZ3VtZW50c1tpXSk7Ci0gIH0KLX0KLQotVkJPLnBy
b3RvdHlwZSA9IHsKLSAgaW5pdGlhbGl6ZWQgOiBmYWxzZSwKLSAgbGVuZ3RoIDogMCwKLSAgdmJv
cyA6IG51bGwsCi0gIHR5cGUgOiAnVFJJQU5HTEVTJywKLSAgZWxlbWVudHNWQk8gOiBudWxsLAot
ICBlbGVtZW50cyA6IG51bGwsCi0KLSAgc2V0RGF0YSA6IGZ1bmN0aW9uKCkgewotICAgIHRoaXMu
ZGVzdHJveSgpOwotICAgIHRoaXMuZGF0YSA9IFtdOwotICAgIGZvciAodmFyIGk9MDsgaTxhcmd1
bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmIChhcmd1bWVudHNbaV0uZWxlbWVudHMpCi0g
ICAgICAgIHRoaXMuZWxlbWVudHMgPSBhcmd1bWVudHNbaV07Ci0gICAgICBlbHNlCi0gICAgICAg
IHRoaXMuZGF0YS5wdXNoKGFyZ3VtZW50c1tpXSk7Ci0gICAgfQotICB9LAotCi0gIGRlc3Ryb3kg
OiBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy52Ym9zICE9IG51bGwpCi0gICAgICBmb3IgKHZh
ciBpPTA7IGk8dGhpcy52Ym9zLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLmdsLmRlbGV0ZUJ1
ZmZlcih0aGlzLnZib3NbaV0pOwotICAgIGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpCi0g
ICAgICB0aGlzLmdsLmRlbGV0ZUJ1ZmZlcih0aGlzLmVsZW1lbnRzVkJPKTsKLSAgICB0aGlzLmxl
bmd0aCA9IHRoaXMuZWxlbWVudHNMZW5ndGggPSAwOwotICAgIHRoaXMudmJvcyA9IHRoaXMuZWxl
bWVudHNWQk8gPSBudWxsOwotICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgfSwKLQot
ICBpbml0IDogZnVuY3Rpb24oKSB7Ci0gICAgdGhpcy5kZXN0cm95KCk7Ci0gICAgdmFyIGdsID0g
dGhpcy5nbDsKLQotICAgIGdsLmdldEVycm9yKCk7Ci0gICAgdmFyIHZib3MgPSBbXTsKLSAgICB2
YXIgbGVuZ3RoID0gMDsKLSAgICBmb3IgKHZhciBpPTA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsr
KQotICAgICAgdmJvcy5wdXNoKGdsLmNyZWF0ZUJ1ZmZlcigpKTsKLSAgICBpZiAodGhpcy5lbGVt
ZW50cyAhPSBudWxsKQotICAgICAgdGhpcy5lbGVtZW50c1ZCTyA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OwotICAgIHRyeSB7Ci0gICAgICB0aHJvd0Vycm9yKGdsLCAiZ2VuQnVmZmVycyIpOwotICAgICAg
Zm9yICh2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBk
ID0gdGhpcy5kYXRhW2ldOwotICAgICAgICB2YXIgZGxlbiA9IE1hdGguZmxvb3IoZC5kYXRhLmxl
bmd0aCAvIGQuc2l6ZSk7Ci0gICAgICAgIGlmIChpID09IDAgfHwgZGxlbiA8IGxlbmd0aCkKLSAg
ICAgICAgICAgIGxlbmd0aCA9IGRsZW47Ci0gICAgICAgIGlmICghZC5mbG9hdEFycmF5KQotICAg
ICAgICAgIGQuZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZC5kYXRhKTsKLSAgICAgICAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZib3NbaV0pOwotICAgICAgICB0aHJvd0Vy
cm9yKGdsLCAiYmluZEJ1ZmZlciIpOwotICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgZC5mbG9hdEFycmF5LCBnbC5TVEFUSUNfRFJBVyk7Ci0gICAgICAgIHRocm93RXJyb3Io
Z2wsICJidWZmZXJEYXRhIik7Ci0gICAgICB9Ci0gICAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAh
PSBudWxsKSB7Ci0gICAgICAgIHZhciBkID0gdGhpcy5lbGVtZW50czsKLSAgICAgICAgdGhpcy5l
bGVtZW50c0xlbmd0aCA9IGQuZGF0YS5sZW5ndGg7Ci0gICAgICAgIHRoaXMuZWxlbWVudHNUeXBl
ID0gZC50eXBlID09IGdsLlVOU0lHTkVEX0JZVEUgPyBkLnR5cGUgOiBnbC5VTlNJR05FRF9TSE9S
VDsKLSAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5l
bGVtZW50c1ZCTyk7Ci0gICAgICAgIHRocm93RXJyb3IoZ2wsICJiaW5kQnVmZmVyIEVMRU1FTlRf
QVJSQVlfQlVGRkVSIik7Ci0gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzVHlwZSA9PSBnbC5VTlNJ
R05FRF9TSE9SVCAmJiAhZC51c2hvcnRBcnJheSkgewotICAgICAgICAgIGQudXNob3J0QXJyYXkg
PSBuZXcgVWludDE2QXJyYXkoZC5kYXRhKTsKLSAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkVM
RU1FTlRfQVJSQVlfQlVGRkVSLCBkLnVzaG9ydEFycmF5LCBnbC5TVEFUSUNfRFJBVyk7Ci0gICAg
ICAgIH0gZWxzZSBpZiAodGhpcy5lbGVtZW50c1R5cGUgPT0gZ2wuVU5TSUdORURfQllURSAmJiAh
ZC51Ynl0ZUFycmF5KSB7Ci0gICAgICAgICAgZC51Ynl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXko
ZC5kYXRhKTsKLSAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBkLnVieXRlQXJyYXksIGdsLlNUQVRJQ19EUkFXKTsKLSAgICAgICAgfQotICAgICAgICB0aHJv
d0Vycm9yKGdsLCAiYnVmZmVyRGF0YSBFTEVNRU5UX0FSUkFZX0JVRkZFUiIpOwotICAgICAgfQot
ICAgIH0gY2F0Y2goZSkgewotICAgICAgZm9yICh2YXIgaT0wOyBpPHZib3MubGVuZ3RoOyBpKysp
Ci0gICAgICAgIGdsLmRlbGV0ZUJ1ZmZlcih2Ym9zW2ldKTsKLSAgICAgIHRocm93KGUpOwotICAg
IH0KLQotICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKTsKLSAgICBnbC5i
aW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBudWxsKTsKLQotICAgIHRoaXMubGVu
Z3RoID0gbGVuZ3RoOwotICAgIHRoaXMudmJvcyA9IHZib3M7Ci0KLSAgICB0aGlzLmluaXRpYWxp
emVkID0gdHJ1ZTsKLSAgfSwKLQotICB1c2UgOiBmdW5jdGlvbigpIHsKLSAgICBpZiAoIXRoaXMu
aW5pdGlhbGl6ZWQpIHRoaXMuaW5pdCgpOwotICAgIHZhciBnbCA9IHRoaXMuZ2w7Ci0gICAgZm9y
ICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgICAgaWYgKGFyZ3VtZW50
c1tpXSA9PSBudWxsKSBjb250aW51ZTsKLSAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCB0aGlzLnZib3NbaV0pOwotICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihhcmd1bWVu
dHNbaV0sIHRoaXMuZGF0YVtpXS5zaXplLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotICAgICAg
Z2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYXJndW1lbnRzW2ldKTsKLSAgICB9Ci0gICAgaWYg
KHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkgewotICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVN
RU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5lbGVtZW50c1ZCTyk7Ci0gICAgfQotICB9LAotCi0gIGRy
YXcgOiBmdW5jdGlvbigpIHsKLSAgICB2YXIgYXJncyA9IFtdOwotICAgIHRoaXMudXNlLmFwcGx5
KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgdmFyIGdsID0gdGhpcy5nbDsKLSAgICBpZiAodGhpcy5l
bGVtZW50c1ZCTyAhPSBudWxsKSB7Ci0gICAgICBnbC5kcmF3RWxlbWVudHMoZ2xbdGhpcy50eXBl
XSwgdGhpcy5lbGVtZW50c0xlbmd0aCwgdGhpcy5lbGVtZW50c1R5cGUsIDApOwotICAgIH0gZWxz
ZSB7Ci0gICAgICBnbC5kcmF3QXJyYXlzKGdsW3RoaXMudHlwZV0sIDAsIHRoaXMubGVuZ3RoKTsK
LSAgICB9Ci0gIH0KLX0KLQotRkJPID0gZnVuY3Rpb24oZ2wsIHdpZHRoLCBoZWlnaHQsIHVzZV9k
ZXB0aCkgewotICB0aGlzLmdsID0gZ2w7Ci0gIHRoaXMud2lkdGggPSB3aWR0aDsKLSAgdGhpcy5o
ZWlnaHQgPSBoZWlnaHQ7Ci0gIGlmICh1c2VfZGVwdGggIT0gbnVsbCkKLSAgICB0aGlzLnVzZURl
cHRoID0gdXNlX2RlcHRoOwotfQotRkJPLnByb3RvdHlwZSA9IHsKLSAgaW5pdGlhbGl6ZWQgOiBm
YWxzZSwKLSAgdXNlRGVwdGggOiB0cnVlLAotICBmYm8gOiBudWxsLAotICByYm8gOiBudWxsLAot
ICB0ZXh0dXJlIDogbnVsbCwKLQotICBkZXN0cm95IDogZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRo
aXMuZmJvKSB0aGlzLmdsLmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuZmJvKTsKLSAgICBpZiAodGhp
cy5yYm8pIHRoaXMuZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKHRoaXMucmJvKTsKLSAgICBpZiAodGhp
cy50ZXh0dXJlKSB0aGlzLmdsLmRlbGV0ZVRleHR1cmUodGhpcy50ZXh0dXJlKTsKLSAgfSwKLQot
ICBpbml0IDogZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdsID0gdGhpcy5nbDsKLSAgICB2YXIgdyA9
IHRoaXMud2lkdGgsIGggPSB0aGlzLmhlaWdodDsKLSAgICB2YXIgZmJvID0gdGhpcy5mYm8gIT0g
bnVsbCA/IHRoaXMuZmJvIDogZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICB2YXIgcmI7Ci0K
LSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgY2hlY2tF
cnJvcihnbCwgIkZCTy5pbml0IGJpbmRGcmFtZWJ1ZmZlciIpOwotICAgIGlmICh0aGlzLnVzZURl
cHRoKSB7Ci0gICAgICByYiA9IHRoaXMucmJvICE9IG51bGwgPyB0aGlzLnJibyA6IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpOwotICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZG
RVIsIHJiKTsKLSAgICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kUmVuZGVyYnVmZmVy
Iik7Ci0gICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQ
VEhfQ09NUE9ORU5UMTYsIHcsIGgpOwotICAgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IHJl
bmRlcmJ1ZmZlclN0b3JhZ2UiKTsKLSAgICB9Ci0KLSAgICB2YXIgdGV4ID0gdGhpcy50ZXh0dXJl
ICE9IG51bGwgPyB0aGlzLnRleHR1cmUgOiBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICB0cnkgewotICAgICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB3LCBoLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBudWxsKTsKLSAgICB9IGNhdGNoIChlKSB7IC8vIGFyZ2gsIG5vIG51bGwgdGV4
dHVyZSBzdXBwb3J0Ci0gICAgICB2YXIgdG1wID0gdGhpcy5nZXRUZW1wQ2FudmFzKHcsaCk7Ci0g
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIHRtcCk7Ci0gICAgfQotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RP
X0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIGNoZWNrRXJyb3IoZ2ws
ICJGQk8uaW5pdCB0ZXgiKTsKLQotICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1F
QlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKLSAg
ICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZCB0ZXgiKTsKLQotICAgIGlmICh0aGlzLnVz
ZURlcHRoKSB7Ci0gICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByYik7Ci0gICAgICBjaGVj
a0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZCBkZXB0aCBidWZmZXIiKTsKLSAgICB9Ci0KLSAgICB2
YXIgZmJzdGF0ID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUik7Ci0g
ICAgaWYgKGZic3RhdCAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgdmFyIGds
djsKLSAgICAgIGZvciAodmFyIHYgaW4gZ2wpIHsKLSAgICAgICAgdHJ5IHsgZ2x2ID0gZ2xbdl07
IH0gY2F0Y2ggKGUpIHsgZ2x2ID0gbnVsbDsgfQotICAgICAgICBpZiAoZ2x2ID09IGZic3RhdCkg
eyBmYnN0YXQgPSB2OyBicmVhazsgfX0KLSAgICAgICAgbG9nKCJGcmFtZWJ1ZmZlciBzdGF0dXM6
ICIgKyBmYnN0YXQpOwotICAgIH0KLSAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgY2hlY2sg
ZmJvIik7Ci0KLSAgICB0aGlzLmZibyA9IGZibzsKLSAgICB0aGlzLnJibyA9IHJiOwotICAgIHRo
aXMudGV4dHVyZSA9IHRleDsKLSAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKLSAgfSwKLQot
ICBnZXRUZW1wQ2FudmFzIDogZnVuY3Rpb24odywgaCkgewotICAgIGlmICghRkJPLnRlbXBDYW52
YXMpIHsKLSAgICAgIEZCTy50ZW1wQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2Fu
dmFzJyk7Ci0gICAgfQotICAgIEZCTy50ZW1wQ2FudmFzLndpZHRoID0gdzsKLSAgICBGQk8udGVt
cENhbnZhcy5oZWlnaHQgPSBoOwotICAgIHJldHVybiBGQk8udGVtcENhbnZhczsKLSAgfSwKLQot
ICB1c2UgOiBmdW5jdGlvbigpIHsKLSAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHRoaXMuaW5p
dCgpOwotICAgIHRoaXMuZ2wuYmluZEZyYW1lYnVmZmVyKHRoaXMuZ2wuRlJBTUVCVUZGRVIsIHRo
aXMuZmJvKTsKLSAgfQotfQotCi1mdW5jdGlvbiBHTEVycm9yKGVyciwgbXNnLCBmaWxlTmFtZSwg
bGluZU51bWJlcikgewotICB0aGlzLm1lc3NhZ2UgPSBtc2c7Ci0gIHRoaXMuZ2xFcnJvciA9IGVy
cjsKLX0KLQotR0xFcnJvci5wcm90b3R5cGUgPSBuZXcgRXJyb3IoKTsKLQotZnVuY3Rpb24gbWFr
ZUdMRXJyb3JXcmFwcGVyKGdsLCBmbmFtZSkgewotICByZXR1cm4gKGZ1bmN0aW9uKCkgewotICAg
IHRyeSB7Ci0gICAgICB2YXIgcnYgPSBnbFtmbmFtZV0uYXBwbHkoZ2wsIGFyZ3VtZW50cyk7Ci0g
ICAgICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKLSAgICAgIGlmIChlcnIgIT0gZ2wuTk9fRVJS
T1IpIHsKLSAgICAgICAgdGhyb3cobmV3IEdMRXJyb3IoCi0gICAgICAgICAgICBlcnIsICJHTCBl
cnJvciAiK2dldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSsiIGluICIrZm5hbWUpKTsKLSAgICAg
IH0KLSAgICAgIHJldHVybiBydjsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICBpZiAoZS5nbEVy
cm9yICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhyb3cgZTsKLSAgICAgIH0KLSAgICAgIHRo
cm93KG5ldyBFcnJvcigiVGhyZXcgIiArIGUubmFtZSArCi0gICAgICAgICAgICAgICAgICAgICAg
IiBpbiAiICsgZm5hbWUgKyAiXG4iICsKLSAgICAgICAgICAgICAgICAgICAgICBlLm1lc3NhZ2Ug
KyAiXG4iICsKLSAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMuY2FsbGVlLmNhbGxlcikp
OwotICAgIH0KLSAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHdyYXBHTENvbnRleHQoZ2wpIHsKLSAgdmFy
IHdyYXAgPSB7fTsKLSAgZm9yICh2YXIgaSBpbiBnbCkgewotICAgIHRyeSB7Ci0gICAgICBpZiAo
dHlwZW9mIGdsW2ldID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICB3cmFwW2ldID0gbWFrZUdM
RXJyb3JXcmFwcGVyKGdsLCBpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgd3JhcFtpXSA9
IGdsW2ldOwotICAgICAgfQotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIC8vIGxvZygid3JhcEdM
Q29udGV4dDogRXJyb3IgYWNjZXNzaW5nICIgKyBpKTsKLSAgICB9Ci0gIH0KLSAgd3JhcC5nZXRF
cnJvciA9IGZ1bmN0aW9uKCl7IHJldHVybiBnbC5nZXRFcnJvcigpOyB9OwotICByZXR1cm4gd3Jh
cDsKLX0KLQotZnVuY3Rpb24gZ2V0R0xDb250ZXh0KGNhbnZhcykgewotICByZXR1cm4gY2FudmFz
LmdldENvbnRleHQoR0xfQ09OVEVYVF9JRCwge2FudGlhbGlhczogZmFsc2V9KTsKLX0KLQotLy8g
QXNzZXJ0IHRoYXQgZiBnZW5lcmF0ZXMgYSBzcGVjaWZpYyBHTCBlcnJvci4KLWZ1bmN0aW9uIGFz
c2VydEdMRXJyb3IoZ2wsIGVyciwgbmFtZSwgZikgewotICBpZiAoZiA9PSBudWxsKSB7IGYgPSBu
YW1lOyBuYW1lID0gbnVsbDsgfQotICB2YXIgciA9IGZhbHNlOwotICB2YXIgZ2xFcnIgPSAwOwot
ICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyByPXRydWU7IGdsRXJyID0gZS5nbEVycm9yOyB9Ci0g
IGlmIChnbEVyciAhPT0gZXJyKSB7Ci0gICAgaWYgKGdsRXJyID09PSB1bmRlZmluZWQpIHsKLSAg
ICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IFVORVhQRUNURUQgRVhDRVBUSU9OIiwgbmFt
ZSwgZik7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IGV4
cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsKLSAgICAgICAgICAgICAg
ICAgIiBhY3R1YWw6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7
Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8g
QXNzZXJ0IHRoYXQgZiBnZW5lcmF0ZXMgc29tZSBHTCBlcnJvci4gVXNlZCBpbiBzaXR1YXRpb25z
IHdoZXJlIGl0J3MKLS8vIGFtYmlnaW91cyB3aGljaCBvZiBtdWx0aXBsZSBwb3NzaWJsZSBlcnJv
cnMgd2lsbCBiZSBnZW5lcmF0ZWQuCi1mdW5jdGlvbiBhc3NlcnRTb21lR0xFcnJvcihnbCwgbmFt
ZSwgZikgewotICBpZiAoZiA9PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQotICB2
YXIgciA9IGZhbHNlOwotICB2YXIgZ2xFcnIgPSAwOwotICB2YXIgZXJyID0gMDsKLSAgdHJ5IHsg
ZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyBnbEVyciA9IGUuZ2xFcnJvcjsgfQotICBpZiAoZ2xF
cnIgPT09IDApIHsKLSAgICBpZiAoZ2xFcnIgPT09IHVuZGVmaW5lZCkgewotICAgICAgdGVzdEZh
aWxlZCgiYXNzZXJ0R0xFcnJvcjogVU5FWFBFQ1RFRCBFWENFUFRJT04iLCBuYW1lLCBmKTsKLSAg
ICB9IGVsc2UgewotICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogZXhwZWN0ZWQ6ICIg
KyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKwotICAgICAgICAgICAgICAgICAiIGFjdHVh
bDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIHJldHVybiB0cnVlOwotfQotCi0vLyBBc3NlcnQgdGhh
dCBmIHRocm93cyBhbiBleGNlcHRpb24gYnV0IGRvZXMgbm90IGdlbmVyYXRlIGEgR0wgZXJyb3Iu
Ci1mdW5jdGlvbiBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgbmFtZSwgZikgewotICBpZiAoZiA9
PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQotICB2YXIgciA9IGZhbHNlOwotICB2
YXIgZ2xFcnIgPSB1bmRlZmluZWQ7Ci0gIHZhciBleHA7Ci0gIHRyeSB7IGYoKTsgfSBjYXRjaChl
KSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IGV4cCA9IGU7fQotICBpZiAoIXIpIHsKLSAg
ICB0ZXN0RmFpbGVkKAotICAgICAgImFzc2VydFRocm93Tm9HTEVycm9yOiBzaG91bGQgaGF2ZSB0
aHJvd24gZXhjZXB0aW9uIiwgbmFtZSwgZik7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9IGVsc2Ug
ewotICAgIGlmIChnbEVyciAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICB0ZXN0RmFpbGVkKAotICAg
ICAgICAiYXNzZXJ0VGhyb3dOb0dMRXJyb3I6IHNob3VsZCBiZSBubyBHTCBlcnJvciBidXQgZ2Vu
ZXJhdGVkOiAiICsKLSAgICAgICAgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVyciksIG5hbWUs
IGYpOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotICB0ZXN0UGFzc2VkKCJhc3Nl
cnRUaHJvd05vR0xFcnJvciIsIG5hbWUsIGYpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotUXVhZCA9
IHsKLSAgdmVydGljZXMgOiBbCi0gICAgLTEsLTEsMCwKLSAgICAxLC0xLDAsCi0gICAgLTEsMSww
LAotICAgIDEsLTEsMCwKLSAgICAxLDEsMCwKLSAgICAtMSwxLDAKLSAgXSwKLSAgbm9ybWFscyA6
IFsKLSAgICAwLDAsLTEsCi0gICAgMCwwLC0xLAotICAgIDAsMCwtMSwKLSAgICAwLDAsLTEsCi0g
ICAgMCwwLC0xLAotICAgIDAsMCwtMQotICBdLAotICB0ZXhjb29yZHMgOiBbCi0gICAgMCwwLAot
ICAgIDEsMCwKLSAgICAwLDEsCi0gICAgMSwwLAotICAgIDEsMSwKLSAgICAwLDEKLSAgXSwKLSAg
aW5kaWNlcyA6IFswLDEsMiwxLDUsMl0sCi0gIG1ha2VWQk8gOiBmdW5jdGlvbihnbCkgewotICAg
IHJldHVybiBuZXcgVkJPKGdsLAotICAgICAgICB7c2l6ZTozLCBkYXRhOiBRdWFkLnZlcnRpY2Vz
fSwKLSAgICAgICAge3NpemU6MywgZGF0YTogUXVhZC5ub3JtYWxzfSwKLSAgICAgICAge3NpemU6
MiwgZGF0YTogUXVhZC50ZXhjb29yZHN9Ci0gICAgKQotICB9LAotICBjYWNoZToge30sCi0gIGdl
dENhY2hlZFZCTyA6IGZ1bmN0aW9uKGdsKSB7Ci0gICAgaWYgKCF0aGlzLmNhY2hlW2dsXSkKLSAg
ICAgIHRoaXMuY2FjaGVbZ2xdID0gdGhpcy5tYWtlVkJPKGdsKTsKLSAgICByZXR1cm4gdGhpcy5j
YWNoZVtnbF07Ci0gIH0KLX0KLUN1YmUgPSB7Ci0gIHZlcnRpY2VzIDogWyAgMC41LCAtMC41LCAg
MC41LCAvLyArWAotICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKLSAgICAgICAgICAg
ICAgICAwLjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgMC41LCAgMC41LCAgMC41LAot
Ci0gICAgICAgICAgICAgICAgMC41LCAgMC41LCAgMC41LCAvLyArWQotICAgICAgICAgICAgICAg
IDAuNSwgIDAuNSwgLTAuNSwKLSAgICAgICAgICAgICAgICAtMC41LCAgMC41LCAtMC41LAotICAg
ICAgICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCi0KLSAgICAgICAgICAgICAgICAwLjUsICAw
LjUsICAwLjUsIC8vICtaCi0gICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgIDAuNSwKLSAgICAg
ICAgICAgICAgICAtMC41LCAtMC41LCAgMC41LAotICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwg
IDAuNSwKLQotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUsIC8vIC1YCi0gICAgICAg
ICAgICAgICAgLTAuNSwgIDAuNSwgIDAuNSwKLSAgICAgICAgICAgICAgICAtMC41LCAgMC41LCAt
MC41LAotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsIC0wLjUsCi0KLSAgICAgICAgICAgICAg
ICAtMC41LCAtMC41LCAgMC41LCAvLyAtWQotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsIC0w
LjUsCi0gICAgICAgICAgICAgICAgMC41LCAtMC41LCAtMC41LAotICAgICAgICAgICAgICAgIDAu
NSwgLTAuNSwgIDAuNSwKLQotICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsIC0wLjUsIC8vIC1a
Ci0gICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKLSAgICAgICAgICAgICAgICAwLjUs
ICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgMC41LCAtMC41LCAtMC41LAotICAgICAgXSwK
LQotICBub3JtYWxzIDogWyAxLCAwLCAwLAotICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAg
ICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAxLCAwLCAwLAotCi0gICAgICAgICAgICAg
IDAsIDEsIDAsCi0gICAgICAgICAgICAgIDAsIDEsIDAsCi0gICAgICAgICAgICAgIDAsIDEsIDAs
Ci0gICAgICAgICAgICAgIDAsIDEsIDAsCi0KLSAgICAgICAgICAgICAgMCwgMCwgMSwKLSAgICAg
ICAgICAgICAgMCwgMCwgMSwKLSAgICAgICAgICAgICAgMCwgMCwgMSwKLSAgICAgICAgICAgICAg
MCwgMCwgMSwKLQotICAgICAgICAgICAgICAtMSwgMCwgMCwKLSAgICAgICAgICAgICAgLTEsIDAs
IDAsCi0gICAgICAgICAgICAgIC0xLCAwLCAwLAotICAgICAgICAgICAgICAtMSwgMCwgMCwKLQot
ICAgICAgICAgICAgICAwLC0xLCAwLAotICAgICAgICAgICAgICAwLC0xLCAwLAotICAgICAgICAg
ICAgICAwLC0xLCAwLAotICAgICAgICAgICAgICAwLC0xLCAwLAotCi0gICAgICAgICAgICAgIDAs
IDAsLTEsCi0gICAgICAgICAgICAgIDAsIDAsLTEsCi0gICAgICAgICAgICAgIDAsIDAsLTEsCi0g
ICAgICAgICAgICAgIDAsIDAsLTEKLSAgICAgIF0sCi0KLSAgaW5kaWNlcyA6IFtdLAotICBjcmVh
dGUgOiBmdW5jdGlvbigpewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNjsgaSsrKSB7Ci0gICAg
ICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAwKTsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkq
NCArIDEpOwotICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMyk7Ci0gICAgICBDdWJlLmlu
ZGljZXMucHVzaChpKjQgKyAxKTsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDIpOwot
ICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMyk7Ci0gICAgfQotICB9LAotCi0gIG1ha2VW
Qk8gOiBmdW5jdGlvbihnbCkgewotICAgIHJldHVybiBuZXcgVkJPKGdsLAotICAgICAgICB7c2l6
ZTozLCBkYXRhOiBDdWJlLnZlcnRpY2VzfSwKLSAgICAgICAge3NpemU6MywgZGF0YTogQ3ViZS5u
b3JtYWxzfSwKLSAgICAgICAge2VsZW1lbnRzOiB0cnVlLCBkYXRhOiBDdWJlLmluZGljZXN9Ci0g
ICAgKQotICB9LAotICBjYWNoZSA6IHt9LAotICBnZXRDYWNoZWRWQk8gOiBmdW5jdGlvbihnbCkg
ewotICAgIGlmICghdGhpcy5jYWNoZVtnbF0pCi0gICAgICB0aGlzLmNhY2hlW2dsXSA9IHRoaXMu
bWFrZVZCTyhnbCk7Ci0gICAgcmV0dXJuIHRoaXMuY2FjaGVbZ2xdOwotICB9Ci19Ci1DdWJlLmNy
ZWF0ZSgpOwotCi1TcGhlcmUgPSB7Ci0gIHZlcnRpY2VzIDogW10sCi0gIG5vcm1hbHMgOiBbXSwK
LSAgaW5kaWNlcyA6IFtdLAotICBjcmVhdGUgOiBmdW5jdGlvbigpewotICAgIHZhciByID0gMC43
NTsKLSAgICBmdW5jdGlvbiB2ZXJ0KHRoZXRhLCBwaGkpCi0gICAgewotICAgICAgdmFyIHIgPSAw
Ljc1OwotICAgICAgdmFyIHgsIHksIHosIG54LCBueSwgbno7Ci0KLSAgICAgIG54ID0gTWF0aC5z
aW4odGhldGEpICogTWF0aC5jb3MocGhpKTsKLSAgICAgIG55ID0gTWF0aC5zaW4ocGhpKTsKLSAg
ICAgIG56ID0gTWF0aC5jb3ModGhldGEpICogTWF0aC5jb3MocGhpKTsKLSAgICAgIFNwaGVyZS5u
b3JtYWxzLnB1c2gobngpOwotICAgICAgU3BoZXJlLm5vcm1hbHMucHVzaChueSk7Ci0gICAgICBT
cGhlcmUubm9ybWFscy5wdXNoKG56KTsKLQotICAgICAgeCA9IHIgKiBNYXRoLnNpbih0aGV0YSkg
KiBNYXRoLmNvcyhwaGkpOwotICAgICAgeSA9IHIgKiBNYXRoLnNpbihwaGkpOwotICAgICAgeiA9
IHIgKiBNYXRoLmNvcyh0aGV0YSkgKiBNYXRoLmNvcyhwaGkpOwotICAgICAgU3BoZXJlLnZlcnRp
Y2VzLnB1c2goeCk7Ci0gICAgICBTcGhlcmUudmVydGljZXMucHVzaCh5KTsKLSAgICAgIFNwaGVy
ZS52ZXJ0aWNlcy5wdXNoKHopOwotICAgIH0KLSAgICBmb3IgKHZhciBwaGkgPSAtTWF0aC5QSS8y
OyBwaGkgPCBNYXRoLlBJLzI7IHBoaSArPSBNYXRoLlBJLzIwKSB7Ci0gICAgICB2YXIgcGhpMiA9
IHBoaSArIE1hdGguUEkvMjA7Ci0gICAgICBmb3IgKHZhciB0aGV0YSA9IC1NYXRoLlBJLzI7IHRo
ZXRhIDw9IE1hdGguUEkvMjsgdGhldGEgKz0gTWF0aC5QSS8yMCkgewotICAgICAgICB2ZXJ0KHRo
ZXRhLCBwaGkpOwotICAgICAgICB2ZXJ0KHRoZXRhLCBwaGkyKTsKLSAgICAgIH0KLSAgICB9Ci0g
IH0KLX0KLQotU3BoZXJlLmNyZWF0ZSgpOwotCi1pbml0R0xfQ09OVEVYVF9JRCA9IGZ1bmN0aW9u
KCl7Ci0gIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gIHZhciBj
b250ZXh0TmFtZXMgPSBbJ3dlYmdsJywgJ2V4cGVyaW1lbnRhbC13ZWJnbCddOwotICBHTF9DT05U
RVhUX0lEID0gbnVsbDsKLSAgZm9yICh2YXIgaT0wOyBpPGNvbnRleHROYW1lcy5sZW5ndGg7IGkr
KykgewotICAgIHRyeSB7Ci0gICAgICBpZiAoYy5nZXRDb250ZXh0KGNvbnRleHROYW1lc1tpXSkp
IHsKLSAgICAgICAgR0xfQ09OVEVYVF9JRCA9IGNvbnRleHROYW1lc1tpXTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgICB9Ci0gICAgfSBjYXRjaCAoZSkgewotICAgIH0KLSAgfQotICBpZiAoIUdMX0NP
TlRFWFRfSUQpIHsKLSAgICBsb2coIk5vIFdlYkdMIGNvbnRleHQgZm91bmQuIFVuYWJsZSB0byBy
dW4gdGVzdHMuIik7Ci0gIH0KLX0KLQotaW5pdEdMX0NPTlRFWFRfSUQoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzLzN4My5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy8zeDMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2YxZTc0NDdh
M2E5YWNhNDBhODAzODNiNzU1MDAxNzg5OTQxZTZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgps
aXRlcmFsIDI4MDYKemNtVjxTM0pMWHpQKTxoOzNLfExrMDAwZTFOSkxUcTAwMDkzMDAwOUIwc3NJ
MiotOWVsMDAwMDlhN2JCbTAwMFhVCnowMDBYVTBSV251N3l0a1lQaWFGI1AqNy1aYlo+S0xaKlUr
PExxaX5OYSZLbTdZLUlvZGMtb3kpWEgtK143Q3JhZwp6Xmc+SUJmUnN5YlFXWGR3UWJMUD42cDx6
PkFxZnlsaCN7ZmI2O1oodk1NVlN+JGVAUz1qKmZ0ZzY7VWg8aVZEflYKejxSUE10Z1FKTHclS1BE
YXFpZmNAX3ZYJDF3YndyOXRuOzAtJmotSz00MzxiVVE4aj1Kc1hgdFI7RGc3KyNeS35ICnpLIUZN
Klp+emJwdnQlSzJ7VVpTWV88bFMqRDxaJUx6NW9HdSgrZGF5eiloUkxGZFQ+ZjU5JmdoVG1nV0Qw
bDsqVAp6STc8a0M2YVlZYWp6WHBZS3Q9KDhvdFAkNTBINmNfVjlSNC07e1pAQzBBTUc3PUY8Unhv
JW9yMTBSVVQrQXIlM2oKemtwTGhRV3IjIW9YZ2RJYCZzS14+MDlZXnA2bFAxcklSTXgjMDVDfmNX
PUhfQXcqYkotNURUJloybit4KVFIWF5wCnowMGVzZ1Y4fG1RY21SWiUwMkReQFMzTDE2dGBPJWMw
MDROSXZPS3ZZSVlvaDYyclkzM1M2NDBgRDklWTJELTw/aQp6MCU0aiFGMlpANDg4VSUxNTgoNjYw
MDV3bzYlcFdyXlpqX3Y0ekFBNUhqY0lxVW9HbXQyTEI+clYmbmVoJiNRMWkKejAwN34xZSRvQ2NG
UzhuZUl8aEpsey1QIUIxWlo5aHBtcTApWDBpYEp3RSY+JCtFPz4lXzxsUypNV0srbisxY2dmCno8
ayg4WUxSKD9WU0FHNnghZTc4d3tjUVB1SnBBfGQ7SilHe2ZpaGl6TStFcmIhcCF0Y3I1dythMzR+
KFk9OHM0Rwp6dytzTEw5biZKak5uKktKRGlxXlU1XjtgMW52Qy1AcjZQJCFrfTFVeygqST1RLXpA
dEJLSG9JfXV4ZFU1ZHl5QHUKelUxSjBHT0Q3T21iaW1eRzAwOHA0Wl42X2sybV5wPGdXPUQyfEw7
SGpOMSFERGZNIVhPYVIyfmJMP2tYJCVDa1NtCnoybWs7P3BuKW98S155ZUo3JWFkQjlLaStMITMr
RmdIaVNZWCNLSi1sTEpETW45Q0JiT3RiIyUpaFJ2YFlEcXRfdgp6S3BpeHxRRH15ZmExSmlRUmsj
ajRhMVopbjIlZjx4eW56Vj5MQzZSYlZJa1V4MGIrXytCYVIzY25UN1p2IUFKeFcKeml6RmIpaCFq
eUdPT1o4NUY7YT9EQVhQe21AOyEwX0lmcTxFeHsqN2AwNVhGN2hQKzJIbCEzQlFKPTZAZkwlRkNv
Cno4aVlvbzMoI2JBRmBBRFNwcXRRZ3Y+SDgoSGxnUnh0N3MzfWszS2BrRnU+Pi0yUSRRTUZmUFch
TGF7aDMzNm8+WAp6dV9DTXR0SHY2elI7JlpOaVM9WDh2M0NSI2ZrblV4SFV4SjxBWW1Sc05MV2wq
UFN7QU9BUkh0IzUhd2tpMj9LO3QKeiFZM2s9czd0Z2F4KUolcjctQkxwaGdlN35CaTBnKzZFNl5a
aChwOVRCb2N7M0dBRnJeMCFndT9STUhhQ00kJkZsCnpCazMldW4+MHVvQmFfTTZXTldlcUlnfjZR
RTY5YzlvI2V5aEd2cGlPQUBXLWFvbms8N3IxKD9mQ3tvSTVOKlUhNAp6PHV2NjZXdGNLU1JpbTB4
LUtlMmQ1akJybUxhbXs7UW07e21zMXIxR25tTnNiN0QtRWB0KWk5RjhmWGAyX2kzLV8KemJoOzdV
bF4jeCkme3h2Uz18fHw3PW1ZZTMzPU1gQWdVNSh4Qz5mZz0yTi03PWNObmpqT3J7eXJpeTZtTUZn
RyNsCnpuQ0Y9Zm5RdjhDRHorK282X0xzY2x9ZVErbF5aSEFSSD4/X3NAfCMjUnI2S0xSRkExJVEr
PSpSUldub0xzUmA3VQp6dDV2RjxRMHI0MFEpajY9c0U0WCZzQmN0MXE8JmZiaTNWQjJPdjZ0QHEq
MCk7VSpvKlNBUFp2fHZ2QDJhWVluVDAKemIlOGErQ2I3LWdlMEQwa25FZjVRaSNAOFRwKmNle047
NmxwUXVDQiVLTF9LT2FybTVjUDZfOElyPGUxN2lyeTZPCnpEZEgmYHJaaH5zRj1icTlzK08wUVNn
U35AUUw5Sm15Kjk0eHI9Nnl+TVl+ITFmZXR+KE4rKDw9TWB3QEQxKWIrcAp6KjtDITgzYTF1TEp2
I05TRX47eSM4PTw+SWNmVzNAP3dGcHdVVnhyVlo+UWRRejMyS0llSn1rfntjWlpFXit5YT8KejJE
MXojMkhPbkk3KEIlX2FjP3t3RlVRO1FRQTF0Qkt0cldybTBfM1JncHMrP0pmcWJ7alliY1FYfnRh
UkI7IyR5CnpaTntTfTF8fWdVT0hKeGM/d1YzZnh1eittSjRgIUYkSVo7bXFSck5zSEpkIyMqRH5q
dT1iUDc/LT92fnxjdj52Qgp6c0o2SWVOd1ZaeHJkalRgeWwjYkJJYSNHeFJhI3hNTXk7SyNDRHl5
R3lRZE1TeGxXVCN0RGU/cCE/NXdUJCtvR3QKejhMO0twMkhVUS1aTUo9M1hKUXY7eDVjaSo/dnVU
ZmVZJDsoe1hHV19odUlGUjlhPGZKYkZefDRJI3hRfm4kRGM9CnpLWWhqWW1nejVOU2tEbTgqZlpt
ezZVITtZWGBORz4oP0AzKVhTczhPXk41UnlPTT1UVG1wKDM9OF4renB6MnIpQwp6Xj5KT3tkZVpm
c28zb3EzP1dvKFk/bCRnZT91WG87JXJ1YFZvPj88PCg4SV8+OzhFcSNLTVM5Z0ZsKm5lZW9zU0IK
emZvSFluQlFJa3dreW93UHUoemRtc2Bwezw3ZTRrcmEtWldxPDIqT3NHVHZFViVzMFRkJGhYVCsh
KjhCbmgyS01lCnpCbVpSb2RqSFY/citfNV5YOUowV0w0aktXYH1sZiVBLXw0NElAQExUdmYxckhq
Ryh6ZTYrd0BKdCVCdmp0cyFYMAp6PzJ4Uz9fdmVfLWs8TXVqZzswTHoqM2J1Rz0zJEcmZWhlcHRo
bE4qJEthT3lTU1FebldtbzwwTSsoVUVVTUVYUlEKek1CYlpjRjs2K0tFbE0+aUtCX0tpSmxaJDlH
YGNePUVAb05HKW1XV2FOby0zVElXOCkkSGcwVWItfjg/S2h2Sj4kCnozKiZuaW1AbWooYUN4RTUh
dHtsdzdPNV4wRUlPN3pPbyZjNmw8K3xpRHlTQldDR3J6QEM1e1N0IVgzaEFBfWBUNAp6KFRMYlhU
cSsoO0A8PUw4ZFhuc3N5ZnR8dyNXU1RXPCsrMz5zZ1MlKDROVHBlSS1WQXFifDdzc0p2ek5IZ09a
VnUKemFZQ3ZnT19SMX4+U3lMPWNGVXx+Z3xoeXxaaX19czkrZH5sWXFPQjcxejlaJHduQz1wUjlZ
ejREaElNPldtamd1CnomNTZvNm1hQ3BDJkYjI3klRzsxUG9iUjlpP0duTmc7Z1l0Y2hEJXAxOWEh
ZVF0WkYmM0phS3YzM2daPDhEfjQ3RQp6dFVTMWl3a21EYVBwaj0kbSMlKWpDVkVZNGZuTEdOZzJB
LWBZd0hWRDNndn07PiloQXZUfkFtcVM+THJgYGk3a3cKekp7NV9JdGB5ckJtbGMyNURCTzdFODs1
Vm96blI+V3c1aEFheG4kMn4ocWAlQS1ZdVM2NHdrQnk9OWRtYDRjWGVYCno0Y31JQD9lK0ZXK2JA
XlJEQkhWKHduTXEyemRYM1NXdjl1YCV7eEMtcSpVfSZgY3lYViglclJUKlo2TUg/aStpJgp6X0I4
QygrZ3JUJXtYV1VRK2ZATm9QMVI9QVcmMjZ7di1keClpS14tTm1pdWo4dHhqIW0/WipTczFOe2Ro
NHp9MDEKeilZVG8qSnljU1UpK181cjQjeXc5eys7aTRFZSRwZVJnSWorO3Y7WkdkRjFLJDNFJWV+
NExhSShqQy11JTJoJCZSCno5Y0xYY1lDQFh3bm5zJmJuKV9RflRlP3JvS0dEfGQtZ144OythQ3t7
RygxXihPN20zN1kxLSs2KTAxY04meTFhdwp6b3Fje1RgUF5YSnFQQmJJVzZzfWQ0e3pfZjVPbT92
TWdOUUVKRz92MlQ9S1lkXjBNM0k2SVp4Ym55KSV2WlImTEQKekpwUGxAUHNoOFF5UEJAS1R4K0BS
ZGNDIUtYN31rRW87U3xqXnUybFU3WFF9T287Znw7ejRMbCtfcj5AMS14bDN8Cnphd3EtSCVlJmNr
QytAQWhQclA2Qks8ej08TCowa2ZLVUBDWCp6ZXFiWVFUNCheVT5UI19YZFQ3JjtGNzFqfUpveQp6
a0N+NmxoN0VANm87V0BeSXBSTlp7cHRMdEwoZ1EtQ1l+NG1xVztVUzdaeHZtX3xAeXomZTUzQnBf
bFRQbGZQfHoKenJUeXhfPmx2QHgjPV4hUHpSN3FxRjwkZ21gfFpKWis7PClDcXUmb3Q8YXs4MURG
MH5ydkdyNVhyfjh1YGxhdjFoCnoxRE55dFY+Mno9MDAwMFdWQE9nPjAwNFI9MDA0bDQwMDg7XzAw
NG1MMDA0Q2AwMDhQPjAwMjZlMDAwK25sMyZGfQp6MDAwMFhOa2w8WmMta3otdT5rLTgyKlYpeXxJ
dS1namZFS0wxQndGeDBSUjYzMERSUjRge1BhSUw7d0gpMDcqcW8KSU02TjwkZitreHVpVTBycgoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2JsdWUtMXgxLmpwZyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2JsdWUtMXgxLmpwZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYTcwYmJiMDIxOWRiOTEwMzVkOGUzN2Q1NmE2NTQ5OGMxMDg1MWI2Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAzMTkKemNtZXg9PE5wSCYwV1VYQ0h3SCNWTWd8
V2NXY2RHJkxCX2MjSEwpWiRNV0g7aUJ0eWE3KD5Gak5LVGpjMSE4YkFhCnp8N2B8bWtYbmlXJFBr
SlEwQlFiemZJKk9oZnN1aWNuTmYqPk5zeTZRa24jVCEyMnI1bjcqR0toUCpfOSZVNmNXJgptNy0k
VHRTYE0mY0t7UWNkcHhrMk1WUCp0YyF6ez5QJihLI097eX1eSHxDPDFaQl8rTjkKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9idWctMzI4ODgtdGV4dHVyZS5wbmcgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9idWctMzI4ODgtdGV4dHVyZS5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3OGNmZTc5OTc5Yjg1MjAyYmVjMTliOGE0NTRlNjY5MzYx
ZWU4Y2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTAwNTAKemNtWEF2Y1JaV2wr
czdrVD9BVXZjcUgzNDRSJX1JV1V1dGghZCkzfjFRPT01SXMjY0JLZGxwckBDfjhIaTYoZVpHCnpf
TjJlKGszMEFJRTNmLXAqRSFldVQ8XzBHKDl1I1FBIUh4fjAwMU59KVJnbzkwNCZUOXp5YHZAe043
YzQrUXk2bAp6Rk89akJ7MG9qa2cwanBFM3k8NVRwWlFqNl8wKTdxdD9nXzUkT2JFPHJ+QlpAPDBA
aFUmciYwY0EhPUxCNkJBeTwKelFefW5eeCN7JXYjWnhgdVdwLWNsVVUqT2BKQm8pKEU2K3RCMj91
PD5XbERFUi01dTllPmxeTmRUeHtMemhBNUN7CnomYUF6ej5sRUJEWHtxa0tvP3BLP3tNRzBGYURs
ISNHRkpqY18jc0t4Mk9mJmpAMFVwWUBsVzgpeDJNSW9VbEBfMwp6X3ROYXFZJVRUOTQ/Tk5Gd2xh
TkRheCQ4VWZMNTFmdVp2R0ZeUVNFUExoc0olPmdybmNzPEhfMHtSVkpwVTBqQDwKejV1RkZzSEtC
SXtXVEQ4c2VmSTtZT01RN09XUHh7cjIjP3JeLUJicnhHK1EqN3tSUEUpYEA5JEx6REE4MnlucnNF
CnplMmsyWVJfeF43WWdNM0hUVSthQDxed3BHVUl3PkpNfXV7UGlvIV8wc2A4WCN4aHl5U0lXKDtL
dVF2NGRiaEk4Mgp6S0JweGBeNW5AQVA+ZSF4KSp3MkIzRX19TEQ9Un12bGZBYkx5YHJvIXM8LWdI
U2F4Jnw9I3BaJFoxa0ZUbSs/PjkKejc0d0lZamheZWlQck5WLW50a1V4WGEzJG9lOHB2TWxLTzBm
Vikxa3trY3h1NihwaytWWF8jfE8ldjV3djdYQylKCnpAb3Y+PSpwPX5WSCNZI2pBe2V8ZispZSlf
V200PiZgS0ZxMm09cHJQSTt6bEhQKjxIPXozT2EhZTVLRD1WakB8KQp6WVdzI2JPU0llQj9mZ0Bk
Uj8lV3JidX0kdiV4eVJean0ob014cHYheCttcUlVUDdzanRmcC1ofiNyUHsoWmAxViUKenFnKHN0
WmY1VVRuVTM/YFlVXiZKeDtAX2xOPHZyI1FqU3hpUXkpTHRIdHk/ZGo8dn1nR09objVZQnU5dTt2
aXVFCno0Slc5MkxUcE96SDw9fUNtQW5DS3ZnbyhPUXB1QCYtJk4xNjkzMTR8SWM+fHBXJjhJcylG
fj5iVzc/cTxOd2grRQp6ZlVJJSpyQjsmWmI5ZXhZPTNJMGchdkNtYzVxWFdNan1uTztXZUdhYHR8
OFIoX3d9b3NXZG9fclRCTGlRfEVaQ1gKejheWGZQbjNWcSRaallWSzx8PSltVHhaa1A7Q14qa3oy
OWZzPjhYM2VtQG4jNlhnWXkkVyRWd3RJZ2V1SHA+JXRLCnptfk5+VXVkZSF6YF8lPG4lVT1JQXA5
Sz1ZM2NkejJCTj1IdSFfemdVS2czenkhWHVtWEppJFpKYn4pZ3RHdmolPgp6bGtVcVgrUnR2VTNz
O15NcVZPeDloQSNSSkopcE1GKFM2LUZHYnUxX1liaDMmKFV7bEU/WTlNZkFyQ3ZfKD5HZXUKekVS
cX08QG56TjM2fSpJbmh2K2BId2EoTyZgQGczeE1WRyhVKGgxbmUmdkpeWStLSWQzbz03aXRWNFl2
YyYzOU4yCnojYno/I04zOyQzKyRzRTh4azxBVD0rbElkTXNGJFR1b2hEZHFXWWZAV3U0MjBVVWEj
P3J4Z3FxWitCR0l0clFxUAp6YlVMeChAYyZFdSZ9LWVeKkgpLWNEaHZieUolQWlzO247OC1zfDly
QVZsO1U7X1ViTSM4OHo3Yit1UXA7PSlUWloKelM7IWBaKXAqVm1ONldYJV9TJXpxVikmTDEqTmZ6
WUYqPD97IWFwbFlySGxJPz53aTtYYHhwYnc2N2d0YVA1ODwjCnpFLTZ7bypULTZQfEZffntZd1Nf
Yz9hV3tkNSZCIT4jSFcwYU1QT34pKjIzRHxjKnlybmVaMSppNDtqKjt2d2RDYAp6ZkNzV1hxVTgk
YXJQfEtIRjNYQDB1IUoyZV5HJVY7bGI+XnFMY1pIVnY1YXtMeG8mZzMrIXkzcXlJeTdLdkRUS2UK
el9NOTJ6RX1kKDZhfFoxI2Bgc1pOTypIUGVzbChjT3FOc3goM0RLYjxiQktxPjM9Skl4e2soNiFx
Zz1FSUsrdFBjCnpFTWdOOXZrVHc5bHArbHxTT2BVXkM/VktgMj9lakwtcipPbUBDTDxHQ2srej0p
WlRyaVJ4VE1odmw4e2FgMWBrYwp6PFJFYGptLUdxT0tzaSYrSDJqaUQ2RU9Pcj5zbXdiP1MmeSEp
NmU4TSZzKkAtNFo3YW0pPmhKYzFAQjJWb1IrWm8Kems3KUQ+X1NRIShYfGlVJEpZflBgKX1Kentk
Q1ErNndfQV4mekhBIVdZK3lfdXU8S3p7cC08TU11UkRWM1U9NERFCnpRPiFLVyVkMWJ0ZldwdWpQ
bHtweTloTnR9STtWMkgoc3MwT0t8MHtTVDlYISZJcX4zcTRORCtjI3MxUERgS1ktOAp6OVclS1Vo
PHZ7e0ApaXMoa2xNb2JNOzljQ25DOWNJYmQlcGEtb1Z7dVFkQ3JZaUMqPWR7QCEpY2QoLUx4SVJ1
NmEKempKeG5oWjh+KmRuck0lUClySHlEQkp8czNWLVVKYXElbTdwJGRJPzklQiV4OXZ+TkVMcVcl
O3oqS0wqNUpBemkpCnpqKSZMUjteNXdsV3whJmxrQExOUTAlcWM1VSlwMH5LTDhebWcjTzVsPyRr
QkF1NnJgU0pDeTRxe2ZBV2ZeSjdAIQp6M2kqSDNTP3hxflhrOUFfOz9ZUiFTTHdKPjZaOGZOPzRQ
UXd4Tncoa0YyfDsmN0RMT1FGNk1weilMQnVeSVdqPCgKekRLbzgpQ1ptfSk/XzJDKTlIUjtNXmhr
P3s8RXVQfjslOENzcjQqdGAlRUxAU2dAZ1BONktQazgmYkswJGtpeD5rCnpxalNMclgpfUpFMkk8
QDA0UVEyPDt3QUFZJUIlejYkIThicGw/az1GKSQmOEhtRmwkOSF8Kkt4MWArIWFMNl5kMwp6KkBW
MmlAd3xqS0MxNjFEPypPX00wVilnc08tXz5LITsyMURHaTBVYGhifT01U2V7a1c9YTVKY3sjLSZ9
Mm5XNFAKelVpSnY2bnExXlRGR3s3UlJDUWtqajBFPVg1MG5aOWh1V0F6MXBtTGhrRnRpe0NTb2Nm
UilQMUAmQDtOT2socnh1CnpNYFdkK29KO3BXISpxJnRSMHlaZyoyISlORFRSalpPZ20xJUVmfjZ4
ZzRvK0xaZ1pMflcmWkdLeHc8K3E7KmxgNQp6YWNXVmgtUFYrJGMyOSNKdz5AIylENztoRnJSfmph
c3tSNiY3RVI4ZFBoa3hnWkdLQ3dhcUh7NEVeRjclZDZ7dWAKemxfJkQlbU9fcU5qT3JnTDRjbiZt
djxBO2omNit0UWg+NWNhMndNcis/Tig3ZW1pNjVNIUBsVSZSdGFEMl4zWU0qCno0aVRjcWBXY3tU
MSlYOSs3dHI0UEBOTCU1MEZ9QmctYj0jWCtLMD1GPFZGaGRQNlU7bkJuQUckUmRKM3xlcXBCdgp6
WTJFMExBbGA2ckIraUpPdkFBfVNodWpWOFErPWBvcUhxRlVtYmdQdkhOaHg1ZWdCV0RIM3N8JTJL
PEkrQSN6e28KekdNJEg7NT15KGVxfW5QeVgpM2BHVi1HOWhFTkdrdCplM1k1JSplYSZaeHF8PCND
YjBaMFlMWHJLYE8hT3pvP0sxCnpGfXlhTkBMcVM7aT0qYHY4QlJ7TiR3e0hIKi1BayZRV3p0KUM8
VkspM3xYaF41Sz1sRnBZXnNZUDA7TDt4WkkkTQp6U3sxVypEUDgwMnZxVkl0YXByc21MYV5jd1Ry
NU5DMDxwK25ETjlvKzgpIWheYVk2QmQoKl8lI1dTTFZvKipeTGkKemxkMXY4bXZEV34zaD9TK2Bt
QklBK2JnPWRBcmx3MSZnbXxDNF5YVl4td3kjMlE2X0V2ZlJOZzwkOX08d1d7PlMrCnpMZTJPJkRz
bjB9bk82OGVhcW5xMjhKfV49e0VOQHh1MG9TQjBER283Izg5KExabVpQJjtRKSRmYiMhelhJa05l
Twp6YnhEKm1KQ3lRQ0RwcmFwUT5pYEk5UX5iTnk+emQ1cDRJXlhzcj4tfDlPfD9AV05PV15PR3Jq
dG03R3s8bTdHP0oKej8hWjIodCRtNjNyMXVhJSl8ZE4oZ0RudzlmJXt1M21JZyljYDxGaVZFNlVA
a3BaOW17PVQ+X0EwIz8+dUpSIyt0CnoxKnRRKSQzYHMlYiteYE5jaGF1QSt6dXhgSk85RlJRUlpR
KyFDTVdtMmVNRz1QPzQ1O0twbiFydmU2NTt5dDBALQp6bXdxYUlVcXR+T0tZUnVVZzI2aF5AVHVy
K3lOWTYrbE1DUlBJQnhjSW1OKHlAa1pHY05wWTdeeCZYbFp9dDhiZHAKentMTFVnSlVKUyE7cDdD
aHdCQTJvVSVqblh0czEwRUZmWWYobXAlSTZRMD9AQSpNIURwOFhMPGRLTWRXKXhaeVgoCnpPOyVs
ZnVzflEhJCY5V2o0N2s4UCl6cSlwKWRkTXdZcF9IZFAoVDVWQUVFak5ZNmMoTT9rPE0yQk1KUm07
fVJfZgp6RG9aI0VeT3NSWjhARCU8ZzM0KGMwS3tVdzxAJTJ3eihyczdNMmU0VlUwfihfMDshcD4/
R08zeHk7cHQyTC03dj4Kek10I0A5MEdFJlc0WmwrUTc0ZUFETjA2N2srT2sqTWFkak8jQTU/K05Z
JnZSPmVoPmhWVH1Hcm4hNiVOPl8wJFNiCno1WXwtOWJlMVBYRnZkRGFTYiolKXBIaUVTXnA3dm5U
SUJrTFU9TVAlKGs/UmJpN0YtRFdPISZTYHBkbkYtVWRQOAp6UHs1Mkh4eSkoWGI/NH4pJjhRI01o
KVBCcGpXdllvbFpOTWtse29fNlY/RkNZSk5nUnlPVCVBfV49elRhVTZXdHoKelYtbUVYJEFoMEhe
Nl5tYkArUXFpZUM2ITthSzF5TndLaj1aXiRldTs8RHM+Q2p3YExMdVImO25yLTZZeTI4Tz8/Cnp6
e3RHdEV1IWQ8UkpDWiVveSE/QlVmNkNgbVkjaWVRPCRUcDw0dSp1TXgzISk+PnV4TkVPSjFKRzJL
ZXJKK2JBaAp6dE1gNWRkKmAqYXZ9aGs2cFU/UlJBKlImbFMrbXg9KnBaSkxkP0hLYUJrej17Visk
NlZzXighezlSKkJBSCZxaGUKel9jUnRGaiFNQnpLaUVuPmErajluWCp6dENlWlMpSCFDfUkpS24r
Z2RJYVF2SmRlXmlPSHJ2X3MkWVg4RGBRQkMkCnpMTE9tUSsyMlQje090SjtaXm98c01RcFNNb3lK
SlQ0d2xQbWApTVNtKT9nSWQjM0NPPlBnbm04NXdyVjUtTGd3Nwp6STY8aVplKTNZNno5TzIpTHg3
UXBlQXMqSTxZY0FvV0lrQmR2STMod0tqUytxNTN+KlR0NXEjRG58b00xNFZCZngKej43Q3dlVXMm
JDVTPm54PzBCdTQ3JmhjZnZoYThXNHt4Kjl7OTN6aDE3STBPfEtVU2RNeDtsNUVLNTU/JWVFdTxJ
Cnp2cD1qd2F9an4lQjB8P0htTUUoPTMpZUs/YFF9dDIyJmtPZikmZjh7U0s9OVdwNTcxbXJYOT1O
NCEzXkA3bD9zLQp6bEE3d1k0LVVOPjdHczVae3FiK3crbDZTXklxS2Q8KSQ8NWQ4RGE2QHY7KSpi
QFVPWHhfe1p7eTc/fUMzdTdKSkgKejNPQCspNG5ESU0qVk5Sd3s7VyFaZn51V2UyUjZyWDt6Z3Ba
NSZ0YGI0WW9lfWh7SkdiYHdATCVTVnU9a2deJk9ICnpaMHMjcyhpaUBoRmx3MFN2NGRmSiVedEJX
SCF3KlZ0bVQwSmF4T1ZXZm5BUG5UMkNgbiFsWFZVeUA9M3JpZCRMTgp6TmpqcmFjd3s+cTJZWlhg
QVhrdCpjdm5OSG99Yz5jaD5mWXZSbClCJlFjPmFJN3JPVXF2clJNPDQjNm8jMVV+bjcKeldmWml6
MX5JNmhPSzQqXzdyN2BCNjFPMWFGWHMrMTwrKU1kYWtmXilyYUR5eClvMjVOTTczXm1fdVNYaykp
dGtaCnpSSTEwd0BXRHlkcEdBNHRWP2RXMUZvSGBuUUZZUkpie2opPko5bnFPITh+IUJFVUxEaHQx
PEx+diYmIUM9PFI3fgp6K1hRczhIRk40QGI8SjkzYUlhMGtNfSlQakoqXlJMKzx1NzdzTktzUTdI
XzFnIUVCb3wqSTUkT1VSRDkkRFNibD4KeiMlWjBseHtgSH1jdzxpNmNhcjYrfEshMUd4Tm4yMT9O
YFFpSGMzWUhuSU1pMTNuU2ZyO0YoO0poMG1tOHk7XngwCno1JntwalNpbnZCbWFEWE1wUyFvZXxK
djBGbWcxcU5rVVh4JldsO0hxWno8YSVjJD10WiZkOT0+PGFZdjxHIUk7ZAp6YmFaIz17YD5pbldn
a043PSR+K1NZKmczbkkxcV4mUkd9d250MF4oXnh1Zn4zeWJQOEpqKyhPYXltbjt1TTV+aT4KelJu
byVmdTdnJjlIVj4+MjN1dyl0IW1kM1UkVXBuVHhseTMkU0FyV3FkdyY5eW1DPCRPXmhjN1BhVz0o
N1ZgYChtCnp7QT9BeCklfFgrUj9OaVZ0QGcpY1RNQjQ7MEglZHVmNXJkJUtQPGl2czxeNT1MMEBl
fEdRa2ArVXZnZz04TkVrSwp6M3ReSFYwPTk8T2VvWCVDU2otfWxKYjxHXk9ecll4TSlqJTtfJU87
UlN0T3Y4QzB2entjcFBnQkQyQVkxMy1qRnkKenNGQ3dKJXxsPmhiO1gpNkd1PGNiPjJvJHB0T1Qm
OzVUVFdnJExrTD0/YXFwaUAxUCYzd2RDY3JaTDwwWik4MSF7CnpQYWVvM0JKQiZeUmFAZC0yOUUw
X3cyWDMqa2JIbz9YY3VOQyEmSSZSb1pzRlYyP244RyNJZSFhSFg9R1YteUljaAp6SXAtfnFZO356
YjFBP2JMRWthJDZJM29reTZjdjc+VWlVaSFWTWx9ZCFHRWlXTjdFQntWKldNTD1rQ2BXOz50aTwK
enB4OFRXTkN4LT1qZXhUR3Akc29rYWI7SUpjY2hiQXROXih7RiM1KUdyU0Z+JD04d2RHZUI4MGl2
ZyRkPz5eRzRzCnp2Wlo3KkFUc2RtSnQ2MTElXmJsMW5tYm48c1BSPzRUJTFZdHpjPD96SiReOCtr
dnhKQGAzUy1VdXJPYXRgK00yQQp6dkBGNCM5cU1Da3VJM1ZkWCpaPVotTnpWdENAPFNUaFdlaVc8
Kkg0KXpCY1FPbXMmK3ZNMTYpQ2B9fT0oJjNPOykKejZIfmNhUTd0Kz1BOUxFP0VqR0xOPFBqPDBf
MEBaZnl5VkZvXld2cENxZ0l2fHBvei16QWxIUzZQYil0KUVnQFdLCnpaN0V3K3EobExOems2N2l5
ND8tJCFtZzMxX3ViP2hJfFcwe1g2LVAxMHppaGFEQChzPWd2ZntXRjJEMkdGSl9pMgp6bHxQZjFH
dXxUXkpGJjQ5bD56LW49biE4TXMhUTd2eklSWD56UTZJSlRyOXZjPkxyT2R1MVopK094Smo4cmsy
d3wKem1VeV95PzZnK19QdExAPkRDWmFmVHJIQ1I9ZmsjSz07NW1vVmAtTDBEOTsjKTV4fUErVG9q
K2h1USlDYG1sVzZACnpmYTF0PE4hJTxZR0hNJTtqdmFgTTlgSXoyU0hucjxSfiZiOFFqYVY3WmtT
ezhfUmJPY18xOG5zP15MUGR7dCl5VQp6Kzk8UDFRcTZ0KyNKfGN+V203RGMhZl84QElqPXFhdihF
fSFpVVZtcGcoeGh9S3MzQD02UEYhRiNYeDAhcTRFMG8KenVoRGVVWCZDSThuNWVQeVo0MVpjNz5h
YkokSSk/Z1g3Z0MwP0JrSGNWX19MYT5jdjZGYF9NbGhON2Vga2BwPjE/CnpRP1p2OSpgbm1EUFox
ej80dkdaR218ZGVaWSYlP3kzcklucG8mZG0tPmw5ZE1iKUVFR0wpc31TVDMla198SHEwNQp6OEZ9
V2k2MlYwUDI3PEFgM2hOaDdRdGN+TlRWSFFAR3ZhQVA/Y2U+bV5ZM2BEWElmdX55SXJDeTIxdUl3
JjI/JUIKel81PT9LTldiZC1BQHlWWiE/KGRRQ2MrR0dIdWN2bVZTKVR8KjEkamctJnRMUSVlUSpf
K1ZfU3xFRnBjfnFKUXY0CnpQSHNaS3dZcmpnKiZhSGJWSF9hP15vOTdgNGdJK193aUtZVCNjYzhS
Plh9TDtuK1BMP0FHPGYxWGhuM1k1YSp7LQp6K2BVZk5NWHM4dTkjc3JHX0MtOXdHIWlhRkhMOzc3
cCZZKSZgbHxPQHllSlM0NjdIcEBAVnBLUGh6R2Etd0dFNE0Kei17XkUxZSYyV2QkOT5uVTw5T15a
KX49YzhsZWpEcnFUY0NycCotRmspblohR3AleDgjNHdTczFaTT4zTHtJRndqCnpOZVFYJUdCMWM3
blRObVBqaHI5KHVgdmI5e3Z7YXdqa1A4PGxPMWM/X2ViQngtLSkjeC1BRyRUV0c/PT1jZig7Swp6
UyM1c011Z0RrV1dxc1VPa1dge0hBZEBIK2N3WD8+enpgKz12VDQqWHFfVWIyTlR2eTFWdUw/anl6
WFRebGgjSXMKeiRTTHN8TW93fk9jQjNVRHloIz1PZUpAekdza3p+fkd9SzdReDNyNztMJlRjNVUk
c2x3cyN5RlU/NT1YZi1yQX15CnpmIU5TPDRhSTdUSzV9MV5kaCNsS1I4Zy1TO3IqKF5gOUo8ZFg2
KXZ1SzxUKTZvSUh3bDZQekFBP1hhYG5tY0h3Pwp6I2w4an50KngoVDtNOS1ac2FeTmZgaiomSVZT
JHFtVShRP0JeOEgtYnUxJlpvUEI5JWFNI0tMXmhRaXZlSD1vbDsKems0QnNYZEhsNW9taCR6VSF+
cS1ZJkNoeGs7RVRSOHdaanl+VkpDJTd1b2ojfHJzM29ye2dRN0t0PSZrbCNkPHI8CnpOemxvMTth
VnB3Xno9b2BrQHYmeGlKRyF2ZTRJVTxWOWJIWUgjNGkqNCVWO05EOCYxRXZ5TDteKms3U3R2Kzgw
Ngp6cEROJmNWZDVrVCFmd3tpSFM4TWNOUGxDJmk2V18hNyk9I15uIzFwV0glWWM5TGl7T2UhJXlp
TmlPbCk+VFVFO1gKemZ8aFVnUF57e3FhdjVwe3BQVlBLYCU0ITZlNmxwSW5xOUx1WiVFQnsyMSox
NGRrPzw5aD9DSikxRWc7Q3ptdVdzCnoxcmprUnEoX3xjMEAjJiE2QlBeJVE2clIwOzFtXmtDajM8
Vj9LQmYlOXJmKH4lTClkRD1MfFRJLWBRJHhZflRnZAp6IS1eNmhjKWI3RHluR01tWXJCQ2lYQFJT
SEZ3RG82d34zYitIaSomMWw1UmI+SWYkUDxHQShAKHJvWCZjTmlCcmwKeiVwWnFydyt6T3p1KHYz
YDBMM3puUiNGYjlDO1RuVHc9fXQ1RyFpTzghZ21XYUZkPT5HOUBjOStQSzJuKCRITGhLCnpNLUhM
SilNbiFeRCZJSzRoI2VAam5CfT0hSCMxbjNtfSk+T150QFp9PGZ2I3lRODdtJDZZPEpSKVJAeDVP
UDxVPgp6WUZ4aUgjbV9Sd3w4JXg+VSNfbT12LXJidnJseUxUN21xPF5VdT1keXUhZj0rSURzM2ta
RUo3UWIrb0omMGg1ek8KemFVQTRvST94YXpMVlBXYEVoZC1NJWZHbXA/QlVeezFiWDE/UDxsdmdk
WSR9SkVed3YtRHpCeHY3TTBoaj1fMF5sCnpsdFExVTt+cEhYKCp3M3AzOHNGQjg/OFpNd2wtUTwy
U1hwNm18dGMoaU5DPnBKckUlYm5Zfn5sM1Rvfjd0MmA8Sgp6NTFgPmkhKiQ1Mj10PFRieUttTUNH
b0spR2FYanY/Y0hNeWheRl4kflFDez10ej5neDd4JlY2c3Z8UjU2UDhTVCoKeksjYmFtYThWRl5e
PF5HMVA/UV93VTVKbXhrbE1RZlokN0ptZUgrRWRIJW4+WlAhMCtaYEpDSXM+aU9KbyVDc3ZvCnpE
VWgrdldsM2dAWnV5YzxBfUh1ZihHOTMmPlkoPzhtTXB+b199I0VPIW1aeXtLMER6YV9WYTVHT3ls
UCNQR2FTcAp6TEUpRHJFKX5mNilUMmVNU1VfYVVMJj0pWnF6di1yNWdRfjFQRnhVWkhENHFqdlJr
JHdlOEBOcG41dWIoUmUpe0EKemNEYSRhUikycXtzU3V1NGNleUJKaGhWX04ySWV8Wjd6QDVmU2hU
IVpJUVlreUB6JDRVUkBjfHBVaj9uVEVMeitrCnpUYGhZO3sjM3w1LX55bSg0aDxsekUjZD94VjMw
RzEzMXRqOGFeajc7JWtoISNSMUFRRjlYQ1VWantJcTJ0V1dFcwp6a0taZ0JheGo+Q143VVluRUB4
TFY3YFZabTkhPDh4Tk8jRFpVcFQjc0Q0bmdPUFZZQzZSS2NaVio+ZS14PVheSFoKeilaYW1kaHFz
N0Vac3hvN2AwQFc/JklDez9tc0E7NForRSY/bitiMER2VThTOUNeMGBOJT5mOUVDaiRITD97MFJC
Cnp7TUd+RlJtdipRaHh8JEQ0e1B8ZTRHcSk0OUd9TWJIb15oeXI2V2pYTCtvND9ZOGApeiZhO1ZG
NSskSil6RTxxIwp6cUomP3I0NzEycyFwRzxaWj9fLSlHKFJucmEhPmxHPVlJM3c+UXRAaXVhKTwo
d1NkMWpScTtSOHZTI3x9Z3R0ZCQKejVmJEw0YGEwQ2tnWjdKYzUya1l0eWpfKHpLKjlrVGtFc0ZO
e3cybmRzU3kmR05PLURUQnMkOCNUbWdgc0Q+NVlmCno4XmRIO09yeH50YjFJNUx1WVd2c3tgbmJ7
WT1IcyhxUysmWlZwQ3NWWTAlVUBHZyVAVSF9MHdCWDJZUk1EQ1F6Pgp6SC1QNS1tZXY0fkgqdDc5
eXRYR1JBWDtKPjE8ZVlCcn4xaV5RWTtKJmc7PiVVRzU7RzRfVXZTY3ZranpzT01rKEAKej9mKnhf
cWI2TFRCPmcyOU1ZaGxMVDcydkNGKW5ROGx6WjQ+ZVIoZypoIzUjJmNuYlAjeFlWeWA7YVQ9c1k4
UT8lCnojPmk7dXlHUGE2emglUEQ3ZkZPTGNvS2V4NU1sZktOO21yPDtSNjghRERSeiMwWnNXQzhH
JWgpdH1sI2JzXjY8Pwp6WVIwdUlmREdZUVcrOzV0TS1rUEpnYlNCJGU+QzsrTHQtUT55Pnh1ZV9r
PnZiLUgzfUZYXj87MVNOI3glaXleXmwKeiZIcTdDaShJQXIoTWR0Klg2OUEyJCthWFNpPnN7KGp5
VGhSR3kyd1FLa3RlQWBpODRzUDl7Z1ZpZTIqemdqZz5QCnopWVFQbT1kMGJeK21GSldGai1vOTBY
dD9gSmEhJis1dVJBai1FT21oJHFBQz1TbWdsdy18QDhKcDFeZGp7Xkl7dQp6Z19IZGBHQWVQZFNs
dChMez44ZmU+XmVXa0BkdiR0TmpGYEIwWWZyVHVIYX0zWkk5cFpibENtKjZ4KmBuYE9mNjcKemZX
P3A0Y0spR1ZWQiEjejJgfEJgeVo0VHA9fTRyVEkjVDQ5QFNfV2cwJHREKV8lfkh2THdKX3ZwaDFH
bDtBK2F+CnptZGYrT3BPZ3RvJUdyYTxmbDxZS3p1QGFeI09LMk5KOGFUQj9iKyh3KV5zWVh0KiVk
STZuVy1nV3dWUHQmZCpUSAp6cGt3VWwwWX0tIWwkNXBGaWh9M2RDK0Y9cjRaJkF1czVJSEB5Izte
PUlBfHVFJGw2dlNyIT9CPUd6Y1JeclRAKy0Kek4mPXpZLWVNLUVybjhxZnEwLSlKQEJsU0I9JjlQ
UDR6cyRPeSpYPkdvdmQ2RkZ5TmlSK1QpajhLIXhoR3tlSE57CnpQPnNTMCEtYGBBZVM/YUNsez4r
OUtod3dTc2UhQUNsRTxCRzwqNERWKjNYRnghXkojYGEyRChna2V3bWtJYl4kRwp6ejZwTF4jbDc5
MF5+c01rd1Y1cEM0fCZvZkhpe1FXVn5QI2A5WjVlcXBZZEFOM3QpUzRnPHNCUkwtTUU1KEh5b3MK
elgkcmoxVC19MD00fHhWMGRnKWE+Rn44SEJYK1dlUCgod082ZzU8SCg3RCU5bVZYU09zO29wRTFz
PWtrNG03JE5LCnowZ2FrYXpJb192VklfVnAjX2R3ajlweUdNT0tBfDBlK1A7TlB8O3VobEklXlg1
OGdsRF98KzRILXRWbGRTZ2JRfAp6XkJOK21oWjIjNHdFSEpsO0hfejNQOzJrQz5GM1Y3aXA7Nl9F
VXR2biMjeEkxaTRCdU9NcEh0MXcoNGpEZnooKFgKejJSOUtqTz1YU0A3KUkyOClUYDF7OEN5TFJW
V3FaSUUlRkI0c1IoYFZQM0AlalJqZm5BSXVEO0AmaHx+SGl4flk+CnpefiFuPGo+TCtMQEp0az01
anJZUjU5bFdWIU1vMz1mQEorJjtuZHgrYFpfOHk0ej9sKFVzejRkMzJTUj4peW5tWgp6OD8zUDJf
QjRgQXhvPDVJTjBgJF5pMWl1KCFncUZkQkF+Kj0oWiNQJWFudSRyeGo3NnxTaHdSNTBnYiM9ezJn
SWUKeiE8PkhwRVc+K0YxbUA9V0dhR1VeP0EzKXJwKGt3X3dSLXRuKyMtSSpGNTs0b0I/dW1+TVNP
TX5QUnszMygldWZjCnpsIzV8T1lYJTI+WiNFQVg8VSlUVUt5aHxvRGYhcWthZXckT1N4RWVueVQ4
PHJ0MjFxT0dGS3VrQTIkJDQ4KylVYgp6e1ZYXy1nWCYjfCZRTmFsI0dkMT4yQGlFNXY0YjNxb2J6
fSpXZz87ekNROGlkdTxXKmt1OX4zM1dFLUNpTEsqR0oKeilBSCU4IWtKdSVSSW9afDBnRV8/Z09n
aXNFbmt6MXpmbig0ViVZPHBOZDVTeW5jcDE9Xld3JU9Fc344YkVyXk8tCnpkNCF3UkdHMDBEanQ2
flNiaTA+MmxDISpZZEw3RTh8SnErT3lpKyFyb2w9eD9zbUQ9bFhVZ0BVO1A4dThPVjxUVwp6TDRI
QCpVak9tYVdVKipGVG9Ydjc0PHpCTHN6V2wtLSE3RCs7TlMoUFhFcENEJEFjKEVJIUhKMzhuJT0h
RlBTX0sKelJLeGthJlpHeWkkTjd+ZkRXZ1Izc05lPVpmZXBmcjJoY0sreXdxUnVCckZJQT5gV0sr
SnYwXkY5Zz5BejR6WSZQCnowOH4hSkFuayshNkd9dk4oVnFVMmMrR0FHQDk/QF5hUntYMUR5KWpo
ZFcye0VKe0g2ZihIXzVrXk0tLSZ0cjlNbQp6RmYkOHUwbHB5fF89M2FHLUhMJEBlKV9QQzlQVH5w
NX11S2E+PmF4RWN0IUJSZ1BufkgyY0x+QzEzYyhxJV9RcEMKekFjXnhgK0MjcF5sVkZwNXVwKUhs
amt6WW1CNlIwQT1xRCt3YW4tT2JUTlNhSUljS3ZidnI0Y1d4K3lCfDckUmRECnpIYG5BRkE0e3o+
ckNUZ1dUcl5sdHdZeilaS0J3P0srQmV9Pmd3VWdubWEjXn0xdlM2b09XZ215Rn5HP0VtPnlBbAp6
dCM/TCkjMjFHMVpBRjl4PkVmakNUfm1vKTQ4PVZyNWZYUXYjQlEyRD9Ec0VTaVlFSUMqKTh5dnVu
YndDY0RfRmsKeitBdSMmJGR8PWVkQippaExBOzcxZ1Y2VEF5UUJTJSloSHNwZGNENnJ7NnYpYVNn
P1ByMygxVHY3bDsmR01JOXxUCnpeUUBkaUclI2EpK3F7YTImPVQyLXlIPnheKUZnOTJaIU5VTWxq
e1dvc2BPWjNBLVR8PTImK3F7fEZ+RHlNYUJhVgp6UVpAdTRYRVFZTmdSSk4qOFVednNqRDVtSVRu
JXRYPk92YiVVNXYxJT14SmFiS0h2RnZOMTAxNyRKZm5LK3J2MyQKem56Uj5rYShOMj96YE9mKjdo
bj5KXnh5Oy1BZjFnTilZY08hT2kzQmQ4YHh0c2JrUFl0T0dObF9AKj1VbmkySEdnCnpYYnVleDdt
fTFYdj5OYVY0cUx4YiU1eFlsX0VscGcyVnAlajxxYVFUSDYySF5PPGBISF5BPlBTTChJQVp1NG9r
Swp6Xztsa1MoQCt+eCZBSzZLaU83dCsmNGtRMUx6WkY0KHZgRX1qSzR5YnA+Pk10PCF0dGQ1KzFS
MTFOeUIwXm93aygKekJifClwaGZqNGJXYzsoWFIoSFBFUnlkUiljdVh6WCs+fGstcGltMjswSFIx
eWN7MUt1aVhvfjQ2VnlzWG5zZG9qCnpvKHUyR3NPKjl0ZGNlU3BfRmU4NWpSb3JFPlheUWpEUVMy
REJYXj99KnV6UlV1RClrS0tJdTUwbDRgTk1MdSleOwp6PnBtPj0ycUVwLT5yYWtOY2JmcXgjMS0+
V091UzFQWWB8Rk8zM31AaDJzJmZtLTZ4a3pGSWp1TnRNZW5kVWlgK0cKelNjfkc1N0orfVZIK2NW
P1p3XldNIUtQIU5kX302QmJ+dndKRGpNZig+TGY7WihjZ0BZMnBkI0V2NUw3VlZtZ3YmCnpXTjVk
P208bWF5UUswXmEpPClTI14keXwjJiFycik2OyR5c2crNUkmcnE+WDJuNGstfCs+RVI1KzQ8bmlM
UWhZaAp6aFhvK012OWYwNkRIWnlrbS18I3dsSSROVWBJYmJBSHxQVX5kaGphTUJFcV8oSUMhRloq
TXBDez5nJVJFZntBNHgKel93UkJHVGVJSFNnbzJfQ3heJnx1aXhrcyR6R1N8XjJpJEl7JURye0lE
SFVWQXBTQHROM0N1UCZoMHcoRGxTa1ZGCnohMzQzPloxN1VNWFlySWlnM2VsWHUqfkdRVENLMnRZ
fHktR0ByUSMjT2VoQ191QTJab20+eXheN0RZei1qKFdBXwp6MCFabTg3byowcnt9amIjTylNP3Rh
d1oqIUZiSS1EMzUleVhSMHZhflB5V0BkJiMjKkJFVXpjR24yWVh7dlUzK1oKeiFLdWdXVmVMU1Am
X2wqXlQpSjlWTSpIVG48P2psXyR4d3l0JjZyZiopdWVsPFlod3RRalpGY0FKMkFIMnRIN2d7Cnpo
ZS1lS3B2Nnh3alomelJfQUx3XnU/WFNfWXtiMisqJDVKK0A/ellYVChPWSFKQy1tcz82R1Q5an51
d2U9TXJBPAp6Pn5wO04pT3JrSyZ3NERGRCtDUn1vM19zdF5McW5pXk4zV0drN2BKTntvelprWGA1
Z1ZxT1BtPWRSfH1LVHB+bGsKenlUaT1TKVlRflNVdz0qcTxNSn53R1I4U2ghJFNQMDNaQ2A2ZUVD
dV9QeEJLVVc7dGM8NjlhZSs1QzVpeWd0KmNACnowdStCQkVKJHt+cmEjWkdTbXBja0Veb2NwSDdx
fmUoKWA1cyZGTSM8PWpCMmNVTCh6YUBSRkNiPks0NkxOS0pvSQp6Qm1mOHVtR3d4PEVKJDMocXFw
a30pYj9SLW1SbS1IQG43WGZfKjJgUjtWJEFHaGhhSiExOWUtK1k/T15nbTY+YFYKenRiIyVUQ3Uy
VXNyX354Z2Z3QT0mODVtVHNETGA+VSQ5Ql9eZmJnND56NldvTntDWHVLNGYpdiQma19Ac1lYY1Y7
CnojZ1JBeSY3fnhfcGxDTzx1cCFsLXdaPm07Q1pGdlZHekM9TzBTdHo5cnEyeTlpaDA7WkxgKzxL
ZXR1KFBMbHBCQwp6cElNUmVeWVFTfDt4Mk4+b2I/KnZJKW0xYXA0ekhkTE5hKFUwT0IzeV99fXY2
JSU3ekJrZWBxNUYhXkMmYWVpSnIKejN6UGoqfDVlYzc/QFpVbGZnYlpDKm1WQ2dxYSY5Rjh6a2co
VUxtflN3MUFONVYrPXpxYDd7UHN8QVY+ekpmWXNPCnpoeEBBKmJ8QGZNQ2dAQF9IYTIjKSErViRJ
JkZrMHVffkJNSDl7Jj1kcGBqNz4/PWQkd20oQTE2aTVkYElpMHpCbwp6U0FfeHhJRThQXmFKI01Z
OCEqWWxhOU1nciN1Xk19SU89cXh0MzBOdiNwcV45YXEobWEoTDlANGQ9RjcpYDA/P3YKeip9cSNx
dCokRk1eUyFMTUpqJX10Vkw0e1dSJWIrTmJ2bkZ1c3d5ZkQjQUlaV0c9d29PUlItIUViJlJyc1g/
QF5HCnolPjlCVzhCcjdwV3QpPGNHVzc1SEg8bi1UWiUlO0VnO1A+TSFMKUJOOCQ8QVk9MDZIUUcm
R2JWdVdHPWI5bFpzfgp6RDVlQz9jZlB+OENwcyR4bjNqcXZNV3VHXkd5Y1pGZ0FgTSgwam93Mm5T
JmFKUW1VN348SVBzKiEoPGA/QTR+YDMKeiYqc09DbEokNmFWQ3BecFJSOXxHPGNQS1k+VDltT2R3
JGk0blB5ZWIySFBtQnp3Skk0dmxjT2F6O31uSG45azE1CnorZ1VFaTAjfFZ4d21ZQng7PHx3X0Ja
Z0lBJGMjcTAtdUs0T1BPZyFQd2MrbkhkQiFve2w4I0Ikem9uY3VuJlJoaAp6Rlh5VmM5VlphITFU
QUw3NmlHUXVxbSFrX3l+T0YmZTJMbiV4JFMyfSpZT2dQWG10fUZpIXIyX1ZDRz09ITlpZVkKemBU
TWk/azxEO1NWYTU0aTFQdmN4aGxIdCVoNWRfI3Q1YW53Q3MwQUhWbEo+NGpLOGZAIX1We21VfSgj
YEZ9dGcyCnpQYWMyI1FCXkRPS3RHd0RTO1dDZCUqQi0zVSZzeUN1QWE9e1M9KSFiZ2hgQlBDNEI1
bXp5eyZib0QoO2w2WXNpKwp6KTRpdTZ1dV9tQ3E0fUg7KjswaEBLYF5DMWJ4WXxEKihHM3xFZ3Fe
JiFxVn4jJnxmcnFAfkowa3RMeUBlPHQhUDEKendJQmtmKD9NUU9xaSpXZmMkamFRT3lKazdnfSlm
VFVTcHBUZmptMFRFWT9ZSEVubG1ON3xWTH5zcjxWbF9kOzFxCktzWlBOdl44V3gofDYxayUKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIu
dmVydCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODk5MWI0NzQxNjRmM2NlOTdjZGZkZDAy
NTliYjc2YTA2NjRlZTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0
CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAw
OSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4K
LSAqICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogQVMgSVMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi11bmlmb3JtIGZsb2F0IGZ2YWw7Ci11
bmlmb3JtIHZlYzIgZnZhbDI7Ci11bmlmb3JtIHZlYzMgZnZhbDM7Ci11bmlmb3JtIHZlYzQgZnZh
bDQ7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgZmxvYXQgc3VtID0gZnZhbAotICAgICAgICAgICAg
KyBmdmFsMlswXSArIGZ2YWwyWzFdCi0gICAgICAgICAgICArIGZ2YWwzWzBdICsgZnZhbDNbMV0g
KyBmdmFsM1syXQotICAgICAgICAgICAgKyBmdmFsNFswXSArIGZ2YWw0WzFdICsgZnZhbDRbMl0g
KyBmdmFsNFszXTsKLSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoc3VtLCAwLjAsIDAuMCwgMS4wKTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVy
LmZyYWcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkY2VkYmRlZmNmNmMyODRkNjdhNzllNjkzNzEw
N2ZkYmE2N2NkYThiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZyYWcKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0vKgotQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi1hcmUgbWV0
OgotMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLTIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQVMgSVMg
QU5EIEFOWQotRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLUNPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi1QUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi1PRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSov
Ci0KLS8vIFdvcmthcm91bmQgZm9yIG5vbi1jb21wbGlhbnQgV2ViR0wgaW1wbGVtZW50YXRpb25z
IChGSVhNRSkKLXZhcnlpbmcgbWVkaXVtcCB2ZWMzIHZfbm9ybWFsOwotCi12b2lkIG1haW4oKQot
ewotICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQodl9ub3JtYWwvMi4wK3ZlYzMoMC41KSwgMSk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LXdp
dGgtMTI4LWFscGhhLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0y
NTYtd2l0aC0xMjgtYWxwaGEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODNl
NTVkZTIxOTBiYjYyNjEyNTEzYzNlNmRkZTY3NGRmMDAyYjc5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDgxCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykx
SWdwYUBiYTQhXj11SipaTlhTUz9ObEI0NwpleTB9ODUtLWRfYj8+cHhEVkNtYkFBUlY1cmVsRnty
NX1FKm9nQT02eQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXkt
cmFtcC0yNTYucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTQ4NmI1YTkyZTQwNTE1OGNmMzhm
NmRmYmI0NDQ0MGZkZmJkNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNzgKemNt
ZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ2s/ZGJhNCFePXVKKlowMEo0
LSNSKCFrCmI5dDtlPjNZcV9YT24lUz9SS1Zjcj5nVGV+RFdNNGZLU2RKOAoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1kZWZhdWx0LWdhbW1hLnBuZyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1kZWZhdWx0LWdhbW1hLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTVhODliZWI3MDliNGYwYzg3ODc3MjY2ZGFm
Mjg0MTY1YjIxZWExZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMjMKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ29QbGJhNCErbjNKNTYwMGIjMURK
bXwpCnpMZUE7SmhtV2hlXn5sJlYzSW9CO1BkQT5kJn4oZVMrazBrN05STmJOKHZ6MzA5PV58KUpX
KTtodFlLISFATSQ5UgpVS2pWdW0mcD44LXk4NX1TYjRxOWUwRDdiKT8qSVMqCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMC4xLnBuZyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTAuMS5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2M3OTJkYTAzYmE2MzNiNzA4YTNhODA4NjAxN2ZlOTFl
MWViNDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTMzCnpjbWVBU0BOPyhvbEh5
YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMyK1V7RHdFMnx3Zm08bEFfPAp6SUVH
bDlQRUtLOWEjSyluNWYqWXo3ZTBKayl2WlV5bVFoJD5mX0FAZS0+anI3Jm59PCNAakFMZihFSk9f
bDRacH4KZ3BNKkE2aXAtV19fJXhDRS0tOzx1TEZPYGV5ODV9U2I0cTllMEpTa0RDamJCZAoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5w
bmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWExLjAucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGNlZWIwNDY1MTY4ZDFhZTMyMTkwNzIwZmQ4
NDRiM2ExYmQ5YjBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEzMwp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnbnlXY2wzMitVfkY0cF8rblota1o8
R1oKejt1dkNhSXlyQGIkeFQ3UU1PZXI9VUhJXkVSa3QxKVRTajRsM0VLVT5lWTI5VEppQzBfJExy
X3tMR3YjeE9PX1B9CmdlRz1NT0RLY0F6O25QSXNlPURYdTEpMG0+PkZWZFEmTUJiQDA0U0Z5Yk5+
UFYKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2Ft
bWEyLjAucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMi4w
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNmY2Y3YjQxYjZiNDNkMjczNTQ5
ZjZiMTAzMDAyZGFhMjI2ZTRlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMzMK
emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ255V2NsMzIrVkNIcjM1
YDFfUCRoWXh5CnphU1g5SW90KG5KPGZmcURBfXIqYkVgMGQ3cyN9a1lFdSpsJjFucXZgekZBM0Vv
P1NsZTw4XmR9cCFwWTtDQ2lGfgpnSl8mOEM2cXpsPEBNJDlSelpGeFNnM00qYGJvRnl0PWFrUnsw
TkZuI2xtR3cjCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1y
YW1wLWdhbW1hNC4wLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1n
YW1tYTQuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NzhmMWU5NjdkYzRk
ZDI2ZDhlM2UyYjVkNmNkOWUzYmQyZWYwMGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVy
YWwgMTMzCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMy
K1YzVFVOV1Noelk8bEFfPAp6SUVHbDlQRUtLOWEjSyluNWYqWXo3ZTBKayl2WlV5bVFoJD5mX0FA
ZS0+anI3Jm59PCNAakFMZihFSk9fbDRacH4KZ3BNKkE2aXAtV19fJXhDRS0tOzx1TEZPYGV5ODV9
U2I0cTllMExSNTlSeyNKMgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L2dyYXktcmFtcC1nYW1tYTkuMC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5
LXJhbXAtZ2FtbWE5LjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTY5ZWQx
ZjNkMzE2OGNlMzQ2MmQxOTMyMzRlYzMwOWQ3NmUwN2MxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDEzMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUln
bnlXY2wzMis7Tjg2LU5KX21HJGhZeHkKemFTWDlJb3Qobko8ZmZxREF9cipiRWAwZDdzI31rWUV1
KmwmMW5xdmB6RkEzRW8/U2xlPDheZH1wIXBZO0NDaUZ+CmdKXyY4QzZxemw8QE0kOVJ6WkZ4U2cz
TSpgYm9GeXQ9YWtSezBQR2toeldATEwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9ncmF5LXJhbXAucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1y
YW1wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTVhODliZWI3MDliNGYwYzg3
ODc3MjY2ZGFmMjg0MTY1YjIxZWExZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAx
MjMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ29QbGJhNCErbjNK
NTYwMGIjMURKbXwpCnpMZUE7SmhtV2hlXn5sJlYzSW9CO1BkQT5kJn4oZVMrazBrN05STmJOKHZ6
MzA5PV58KUpXKTtodFlLISFATSQ5UgpVS2pWdW0mcD44LXk4NX1TYjRxOWUwRDdiKT8qSVMqCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JlZW4tMngyLTE2Yml0LnBu
ZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmY2I5Njk2MGUxNDJjY2NhNDlmNDQ3NTVkNjI5NDM1
MmNhZjBlNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTM0CnpjbWVBU0BOPyhv
bEh5YHVWQnEhaWEwdnBeT2R1PShCRzxhTzgyfkJIMCp9YUlBbmdJaFpZUSh0SyFSbGpqX0UpZQp6
dGVQUTlyPis2V1FUQjlrNEJAeip7NnU4TS1ReCFpZTM8PV5vdGF0cWJZaD1CNF5LezZlVnNBVHhK
Vns7Y205R0QKUURXR3gmUGdnJmVieHNMUTBHVURfRiNyR24KCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjJkZmM5ZjFkNGVkODM3NGMxMzA1MDFhNTJhYjI1OTlhMzc5ZjUyZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnCisrKyAvZGV2L251bGwKQEAgLTEs
MzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOSBUaGUgQ2hyb21pdW0gQXV0aG9y
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogQVMgSVMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0qLwotCi12b2lkIG1haW4oKQotewotICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4w
LCAwLjAsIDAuMCwgMS4wKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL25wb3QtdmlkZW8ubXA0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRl
by5tcDQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5ZjVmNzc0YTc4M2I0NTkzODU0
NTFiNGM1ZGYyMzgwMDFjYjlmMWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzgy
MTUKemNtZUk1ZVEqQHo5bWxgQmNZI1g/YTB3QSZOTzNPPjVIWlN1dV82T3heV3FFZExDflVOQSY+
eCh5cVA8cTtAZ0huCno1VVZwLTk2TH1iIUQlVjklRTBKUWJoSkg8UmRDU3koeTZ4UGszJX0wUi1H
fGdNYDxWWmBoOUw9dmJYTkVOcmNSKAp6emkwQng/KDttbSZ2WDBpXkxjKkg/fDF2JDA/MXQqeWAj
Q0l4biF5fjR2Vz5jRjRFS2hBaDVjbndpYW1uTHFrbjwKejZ3cWhaLWZ4KiQqVkkqZFlKV1M1QmMx
djFQWHg+KkBFP2p7VWZyZWxMbXZsKGVpZWomMFpANkgmJSh3fDFnXkVQCnpkSHUwdzFiK1o2cVlB
Oy1vQFR9LW1WY3stdChVMGAzKStZPHZMK2x8Yy0kNHYtMX5WKGQ+UjReRUxpKUlVSlkjagp6PChp
THhpV2lhQXt1cj9KNyY0MkBJRT4jdyZ1Sz8hUGg8cjJWUjN9IUt0S1BwRndabkNZe15BbmBeZ1Nn
OG43IyEKemBSYV5hdUNST05TeGhTSkR2ZHY+I2JCTzZJfD4lKHlrO09VblQ/VFNCS3VXbjdpSUU4
YFQ/VTZkZk05fDklc1FuCnpvU1NGPCU4WEc0M2k2Pn1kXnQxOVl2OFoyYU9KKyFIJFJhWTR1JXQ1
PWYmN3xyNkB3KzVuJUpBSDdgS1pPJDZfVAp6Iz0/V2cweFQ0bWB3c2wkVndrJjApb0l2dWVpbWtu
bHx2dUcmR0x3azRISDlQMy1INCRQcTQtMjByeGl9QFlKJW0KelRzUHpSQHdXej82bGFHQEZXYWY3
U3VlZGF5dlVDRCk2RlNJZH5AdWBrbGAhM0JOPTVvMTZmOTlnWX45bVhKekRRCno0O3sqQHZMbChm
aj53MzdNPGklQ0JINHdHTktUTz5HUD45aSRxaFJxY19vZld7eG5CcSt6ZHk9RmRkUENOPUt5ZAp6
OGJAVHBKViZJYyRgUDVnIzFTYzg+V0V5anRVSUY1QjVWZm97Km9BWj05VkgxJWtMVHJFakA8ZGRD
LWMoNz9uNWcKelUwe29heiU0SUE4KVlIdUoyQnFOWEtlXn13fikqKzdSbiFpfEkmamRYI2prQnt0
NlYjUzIrZ3BjQFh+RDJTPEl9Cnpre2EmMEFoR2VOPlZvWXNDUDgwbnFWVDtQVUY9ZEhMMGVtN3Bg
Wm82ajNCIVJKTSg/KWM1NCg9OF8oRT8tK2g4LQp6MWBVSz5mP2xZNFNWJXsqKHVJK1E2V3c5cSot
VDteNilPfkdCfmtkRDhpek9wODI1MTtkZVgkNDR4ZmNLNG1WQEQKek5zZERYRyM/TVlCc21UcHZ3
UXgwSDRnMjc3S3xnUz8mI2E9VDthamVMfFFaM1plJVAyYGdrRHB6PlpEfTx+SH4qCnpGaXs1aHJ8
Syt9Y3orNlE9cGtnRVFndzIpUUZZI31weUMrVWJgKmd6Q3UzfXdGIVdGaTEjaFVxWTd9aFQkQ1NB
NQp6TW9hWFFmaExgP1NyT1ZlPG4pIWN1K1prRmJmT29nTFI7I2YqJUI0bmRldzdaWGoybyhBY2g9
Q2JiT3hvMFE4cWoKekhPX1JKO1pITCRIeHZHc3dva0pWaWJLeWsldm9ke3s7UWpuJTdMd05tVGlI
UzdEdz5zJkAkaU8jdGY1K0ZxYWNOCnpsQFp7KT1RT25KYihefGVeU2VEOzY3aHBSJlVGNWNLISR9
IWdHaXNnP19PJCU4NzZNYjtRVlp0ZyV7S3VzZHdeNwp6NzFBQFNSQStLSFMyTmFgWUI9d2lSU3RN
VSlWQ0FhTThtPkw/XnNJak9pQH4yPkR5MnhydmF9Y2Alc0pAKHpHWFgKekghSSFGMX41OztLUDsq
QnJgbEBmRXRONkJNQ0NPMloqMDhtJiNyS0tXYTlae29MJUBqYnpZcmB6ey03aDgzLTBxCnprLWQo
ZiQhNH53PjBYRWJJU1hZVXo8PDxhb2pzRkJ3cGoxMWtgMj17ZEYqaF5EJG5NMGR6UHJTcDFFKmVW
YXBOTgp6K0BfM3xCX3B1ODJGPXw5VG1MbSV1RH5YK3JHVjUmLTslKUFmN3RRYEhpMW9HPmprSWE5
UXE+eig0UDJoWEpZZVgKejc3cVZqSW94KFopMmZpJjBkMzA5bCNseSV4fWhJOGt1P29rKT02YmMj
Y1c1c0BeUDJsNCohS0ZEeUF6UmNNIUlsCnpQLVQ/VWRwMGVHJUFLYzUtVHNHRGk4QntqYWZHSHIq
VnszRTZaOGNLX1IhJXVHS2tSfD5FKVlmQWlVUy1iVjFTcgp6Pkc0ZypjeEkwYVFkTWVuYHpGdChy
X0lBZm0qYEF2SmZSRyN4SDcyYkV2N1pBNDlVUEVVflVRZ2tFP0diKlpAZykKenBmWHhAOG0qVWVs
ZUF7JVMrP3syQnMwPnRBIWBKKihMWl5wXis7K3MrTDdxfHpRJTcxeTNtZS1EKEpaZl9SIXMqCno0
d1FXWUtNU3VnWHVfMzFvNGYrU0pFMntvb1ZHbkskUFc0PGR3aTJAbT53NlRhQHpMekNlTm1hKSlK
JHdVcStrcQp6ey0rQ1ZFPVFaRUx0SlFja0QzZEd3cUFZTTdaLWA1RWtrRyUrRVBqS2B0cmo9REdG
YDxyKWArZkNiUzd7andlNlAKenJRTWIodjxZb08rYVM/NFR4Yio4Z3RrR1Zqczd3NU52ODdWXzFL
X3pObTdaTkk4blNMNG5xNnRCXmZFU3JMeHV7CnpLMW1Pa2gpMHJtTiY0PzQ7VktTVVpJa2xsP2s9
eEtEUCo8SG1tVUYjTHNyey12MCRqTHkzSD9aK2ZySEVDQTlWSgp6QSNJXjswSl9aKi1SOG5nYmVt
Z2BkOUY3Vis2RipkT2xUOUBRdDxMeDBPNnRUZ3RxP0VtTF8oYTNwU1phZFo2V3oKekIoeDJISG5I
MTt3aU1Pb0ljKmYkXyopMkh7V25SeyNCTE1YZ2ZfPV9YWG88Q3R1KFJRZ2ZealZrWjJuc2NBTDs5
Cnp2PCgoKlZ6JnV4TGZjQGBDVSU/OUNiU0l9WkRPfHhaOT5+MShLYn08SGxhO3U4IVh6eVpXRyNz
dyF4eEo+XjdsSQp6WGQ1aXIjQkxNWGd0a0dUdCgzcEgjVURQRDd1PFlsVTkhakdOcU9hbFl0Xm0x
YT5JZFdVbHpDfWFTSUE9WnJiRHgKekh5XnZ1QD82al5aQEI1LWJJRDJFPG4/VkhzPn54dnczYGIt
KFFYNkxadTAmJTU0SnAjMVVKRiR0RX5lX1lCeTZSCnpsUU5sMUNDVGZEJDJ7SlRBZHxAZk9lVSlZ
SF5FSkNiNCgxKyl3LUxjYzNVQzEzMnhzXitfVmZKYH44TmRyZDl5Owp6NFh0Wnl4V3l9RmtBe14l
VGZQayEmWiZZMV8xN0N4QjIwRzAmRTZ4dV9VUCkqekFmNVB5XmZqN3FVKH0lNCgrTSkKemlfJW9S
PyU9QSZ0Nm5ZNGxNVz9NRVVjfUdNITEoPlRPV3liN297YnlON2EhbUU5PTlDbiEwTXs4NFdlQVlY
YDt3Cnp6Umw7b29JSkIrWkIyYmtjTnU3e3RFdjVCVXV+fnZ5dmRrZiVjNntIc3ZCJFNZdF5BeSta
Klp7UzkyJCl3SU54eQp6XlYxakIqbT9PaUV3JDx4Njt5dWFgaiZkYi1wXlZiaUxSe1l7Kk5Ra05i
PGhlPkRXQDt4QHJwZFJkQU1SQ3htKFIKeipLaypmM1IqX2xeJVhgJTZEd1J9cj9+JjtDSzYxViFj
ckA9QF8wXy02IU8tVFRSRCN8KT5uUzI/YDAjWFQ2fnpYCnpkdkV6Wk9NYCN5QG0xSUlneHA5cCp9
U1NhYi0tcU9pYC1TLT1fUzAzUnE5e3tBNFByaVZjbERIMzl1X0Ioe0FlQwp6R0ppeGQmKUw5dWNU
amNjV3NENFckT3k7MkdrdCpqZGJ6OC11VXEtJnhfellsKWMpdHtYSjdtTl5MNms0XjcqQkkKenh8
bUdTN3lsPHVfO3UrJlM5P2tPTmM7NE1DLTw/XmY0PEBVcl4wbzhYTTZyRTxeT059eyV2ZEB7PnF8
dVMwdVdzCnppRzVFNldrVkx4UntWZ2JXK08wVTAlYnBjMjdOaUBVN0RJU3ItelRGP0I/czFtcih1
KWpDem9rYGJmJmR6ISkwTwp6Vl94QUNpRVk0R3tfXzQ8K01WTk9RRFEpZEZTWlctOHo/KnNqNHo9
YVZPNlo3czF2eTg3ZU1oTyVIek9mKS1tflMKenp8QH10bW0wdWpadilARWsjWjhhO3Reb19Ya2Y7
eHopWlMxWDEpb1M1QWNQfW5TNUxHaSRMWDd6KllZTnVDezIkCno+JWczNl9gMnZCITJFdiMzK1Nw
QHpeX2RmKGFDWWBSQTkrX3o7KlMmKChoOUMwWE9pdlo7STJpdkp6TitLNGxsTQp6ZzA3NX15djl7
YWZ6PzZFa0FTK19sb1AtJDN4RWMkbnJxayFHfUU/Z1g4cElhe3NeNHtRQ3xPVCg8I3BhOHxYc1cK
ekBFTElEOWwkLVRfbnhQS0hyQ3RyQSVPan4pMEx9NWckV2RtIW4mY3s2cyFsOzZyS21SRWU9cWdy
fkhaWDVmNHFMCnpnZVhAfjdFJFViWkltNjkhPDZIY1E8USk0ZXI4Y0Z3MCF7ajRjeSpKKi1GXzxk
N0FQRDxzWkR+OHMmVi02dn1LJAp6SFJUVDB3fDQjZHh8O2IqRHdqT2ArQEBjYkV+P3puY3pQK0A5
JH1fayNaTnJ9N2VsQVpONWYoP3BePXw/S0tIODcKZWY7elBGRHgkQypLWll1VU1+em07VSZqe1hq
UlM5WkdXLXxBRjkmRz0KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9u
cG90LXZpZGVvLnRoZW9yYS5vZ3YgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ucG90LXZp
ZGVvLnRoZW9yYS5vZ3YKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0NTg2NzhmYmZk
ODE5OTdlZTVlZmY1NGY4YjVlN2ZiZDg1NTI2NGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxp
dGVyYWwgMjQ2MzAKemNtZUk0Y3w0Unx8SGxvbyVoKGxSbjZlZ3dFSmIjTSg5QnB1cH18PHZGcVNN
KWNHKzVwK0BmU2pRcnN5LUM9Pzx+CnpUMnhZenR4fVhrY1BZPWdXPm5NdCs+YyhyPWxTZFJhKCFS
cHlQZmtudTkte2sqRXlHMHd0MEc1R2NZbk4rRkV7RQp6OyV1U2pnVjZLdjQpaGBzLTVIcF40fTx1
VXpXOWZsWllzbUpVKUVOM3FtOFgmJHRefDVNK0pHMmB+cndmajBnc1AKejIyS1dxRzZUYSE+Yk4t
WTJ4Pjw0dztITGQoNEBkYVJ8cE5Uek1rPCU7Sl84U2B1VU89NmhRfUNBRyRiYjBteHtKCnooREx0
fDF0Zi1rekNrNDRwIUdJazZ3KVRpVX5oTWxwQXprMnhIKjNQVWVKb3JEJTtrIVBwXnohcHRHYVZH
PSV+Zgp6d2ZDbFlaUCpzekRZP2hubURaS1NZYHtwV0NAWDZ6WXBTUzclRyFBQzRmR31MYVZOP19w
UitYaEdQV3xAV0BKcHoKekAkZXYxTlMtUCopcTNSKEQoVlY+IU0rJUVFZnFFQlUwODNrQl5WbUpZ
X200aXc+SCgkQkJeTSl4b2NgKkdffS0tCnpuaXw5eW4oU0phPnxBWV5rNFYpeUdqbjhNP2llUE9r
V3F3VSE9JDwqPDR8bVJVPlRiNmxGT3w8KHtJaCZAeSY7Nwp6P2J0SVd8SXpFYmpWISskKzdiQ0pP
ZV5QKmhjJGNYQzBuXjtOJDhrV1khVFhQNHptPk1ON2RXTzMkUWMwcUNpODgKekR9a3t8Rkh1dWFz
REQmRk96fXR5UUs+Qzl2JTFeJFByS3dRZ0pfaj48OXdkK1c3IyEqQjt+QT53UztXVmJXX3lQCnpn
RXlLVTRlbk1HO2NSaXUqRT96PWcjP1lwVGV9bm0qa1lzZ0YyNEk7dCtEWXZOPyN2JD1ndHI+M1hq
KHQ5MFZtRQp6an5oYnBWbkQ8cmNwO0MrcW9AQGdQcGhhY3MkKiFaSzxLQWNHeSoqZS1fJiQqdW9z
an5PXnJoYzQ2JmxPd319QDYKenMtZEE/e3BnQ09VSiF1PzBWS2VuejtIMWk1ZmlJPXI/R0plUSZA
T3wwYHhKbDhQLXVseXVeRE9fYzlIa1QmO150CnpgaHQzNlJEKUlzOVRkREZ6JnNpcGw5Z1orLSFk
ITFWaUp0YFVrISFBcnt4MWY9QFglbGswKDtnZTQzfVdtVU8lKgp6OzxTTipmaiZ3PE1oYzM9NyhO
Z1RecnhaZl9vbU5faWtWZWNTSTQwNk1lQ3AjVTY9clp5Mj1ieHtvWEo/QDVGelgKenB9K149QUR2
ZFE3QEJCUlEhbGolP2lEbCFMaG9XMnFFJG1mKUYheHJ5dTdebntgdClhVDN8I2BEQEd8aSlNUygq
Cno7QXckP3ImYV8pOHFfMlooaEMrdEpfM1F6azhXbStyaUl3V3opV3ElR0JZRTw3em9TPVQzfShN
UnhFNmJmc0ctOwp6ZDF1Z209WWNvNk82Mzw8ZCZvcUBpIzkjcjQtZT14eklzQHJAeFVtYlFBMU5q
YHNXNyh3YSlVRU17KEA4biU9SWwKeiRtJTltbyMjJDFDRGVaajtjNEhUPSQtQTlRbypkMGhEfHQr
K3Y4cTtBWWpzVUpHTEBSaEpEVn5SNmx2XzkwPXZECnpGeyZBTldCYXV5WUVnfEhlUXRpYXkyPGJB
YDk1NWttc3dMUi1hQWUoWUdyKWc9VjZXV3h3ZExPM09nSVVQdkN0Owp6WFB2YShCclk2I0c5WlQ+
YSZofCNgQmIpUj0hRiNIM2pzVmVNd0BlN0NRO3NeVHJIV1dITFQxPmFDM2Z9KG0mY3sKenZWRzlC
JURuSnNnR01zMVEqPT51YC1fOGhkIUh9M3dAeUVqVzQrdjFJa0VZJHFNYUwwUkw1YkhMcT5Qb3N9
fUJgCnpzZUxTRkEwWipiZTdDKGFicDQ+fT56NmB5JSNMcERuYX5oPm5SeHZobWl4dkZPcHBIQiZ0
NG4lPUpTcVNXdDRUdAp6RXJWSlJWXiZrUHJjdm1KNjlXeGE+I314cGNWOHkqLVBobiQ7TVEjcyN+
ekBScmYwMF5KP1ZiNCY/UD1Jck0+LTMKektsV3J6QW84STk8UXxEdldNZiZqYSFTakRnS18yJnc5
QXRhbD19VnNmMjd7WCpadTVYeSplMnU5cH5WMV59fTFVCnp1Pjx7YU16dDRUST1hdFVhc0tmc3Qh
Sit3TEdnbCU/RWF+IXstbE02I2kxcnJNQGNzWDJLcU5fejhBV1NiSGJxewp6PmIxQ04jTU9LJmcm
bjU/ZilpJmxqcVlPcURtTExDNlllZj1Kb3c/UEtSSjIpNCMjZTlGVXFLaHI5d2FZIV9IS1YKeiZl
Z1JFdiZTK1l3R0spQG5QY141XnNMK31iSkZJbHM/NDRCIzJUSz4+S3lCNDlpKTc/LTtPSl5jPGRV
enp0NnA5Cno7WWpqMSQ3WTdsdiYjRzwxM3Z2NWErPyopMHVlKEJ1MU84KUktQ3lJaGlzKj9adSlK
V0tpVFN+Q14reW1ZUFNVJAp6ZCNSbkBEI2J4N3VKdj1nTz18Nj9adkpgU21BcjgrKypQd3FuPTcx
KE02PGcyIWh8SCk8T3dFSW9RQVY8K0dUREAKelo1cyo8MTFYKVdhWmctNHZKfTF2KWExSCQ2YDxZ
WT8hR04rKD5WRU1AYmlQcm1fKjhnZS1fUzB6RyQtLWA8WkBBCnp1ZCQoQWptOW1OXkI9e1c/Q3J3
aC1nWl9ENX5PaDQjYVJ3JkBzVXs4K1IofXkqUlh2RzcqQn4yX0RNZ1NnT2htKAp6YD1tNTtTNT1t
b05fPG5+d1V6TyFoV2VpJHdzOEgxdSQ3VXJfYF98NFdzPTlXYV9fV29VfTZXTmBtKjxpa24qbzIK
eipIVGx2aFAoaClvPGl7clVyQzxFKTQ/T2VMXmJrLSN+cD5UQGl0Y3dJVlN6MXNhTioxR2FaYjdC
VmhSe3h5NV8pCnpDZGIqSmgodms5OzY5QSM/KUtzIVZxfnlyekZuMmhPfFByc1RQMVRBWUZUK1VL
R2hrTUwwZ3QydTxUOGR2clAqJAp6SldFdSY2ZlFDVCRXYTNNKkEzQ21FNHJKcGYyeVZeP0RUcXRU
JGttb1FePEhDYitGUiQ4cT5KTW0wV0hDS0VDUTQKem14JCY7dFo+QXIxSWdVfUA/TiV4K1o/dE1S
fSZDezstWTtILWwyVE88Tz9VVGNgfUU0YnFYay1VKXpkWjspWXRNCnpURUQjdVBCSjtMaFM+YXNX
NjstKT5qaTdpVSlIIVB1SG5vNUVOKjV3SzhvMyF1M2MoKkNNR2hOdGtYS09QKEhmQwp6U2toaG5m
dlV4NXteMiFPbFB9JVc2Xz9nWXBBJE5DciVicUhtMElWTW8lV1d4VVZATFRhVmYqK3Y/UzhNMW8+
JFMKejU7azNyOHh4dHtRaSY/T2V1dH08ck43OD5MKXojbzY2dSsqK2B4elU+ail2LVEkKXdScW1+
TmZwbClyNkl5WmZpCnpgXyNTPyFZNVojXiM9LU9tcGMtNylhLXFFZlZmJj1lKjNQeCU9Mn5ueE15
ZFNTJHpyeXViaDNCeFY0P0R0SUdXRAp6bzxEe2I0JDlwKHhtM3wkaihmKkRnTFpDOEt+PGtTO2k+
ZWtRT29MVCU9N2MxNn5iO0V3d2g9cV5HNVF5ajRzdkkKems9YUNpQWo4TSRCWWshelEpTytMYXpi
Q0ZeR3VOIUV+RSt7UX1ORFdCS3l+VURfQz1PRF5AaEkrdSY3Nz1QRm40Cno5SjFHeSRBV3I8T19N
RiZXKCVMPFooN2FeOTNpUnxtYXNwZkx9dUx4UGomZDx1Kj1CUXlyMWtnYi1WQXJke05FcQp6Pnh8
MEs4I3xfRTxNUXNuIzZ2RU9lbDBvcVIjPmpCc2ZucSV3PDxaWFVgfjtPYFk7JldxNFpZI1c5eTZY
Myk+a3UKekZ4T30xODtrUklQYXp+Yj98U3MjS0YldlcqPDdpI1B4RmdeP1ZYJExtfH04T3JVfDxl
dyZPJTEmejFgcF5SOFNHCnpkS1cxbT9YUjd1bTFLKSUrWklgUXNwMmBsaEolVWhwdz1WQXVYS0Vo
V3E0Kkg4cHhGTWs4NTxIeTtnMWBlZGE0UQp6K1AxIW9fPFNjRHBKcW1VYEBecjN3cV8pRWdUU0hj
UVc1OHgrZHxvMlJCeVluST0/cVIrWlBpQi1IRD1aP0ooNH0KejV1VD9QTnl4bjBmfEdMUm09NUJP
QEsyWEZ4fnpHPTk9RlNNdHY5Qitifk0lVVM+MyFmWmZlfUZRQWF1QEd4TDxNCnohRis9PmkhXzxF
JmltQU17QHo5aDJWdlp+NjZ1SlZkWD88cmZKMFNuPnwkakZPa0t+OGo4OD0hPmNIT25UJCo8TQp6
Q145MzJ3PFdvRzxhfSMoXzVFZktgdnBKIWRncXZqM242WHNuSzhDRTZkZ1V0cjU/Z1BTaC1ELVNk
TFAyZGB7aEsKekRNcVoyVkNgRFlWcSlZbCpgbVRidVMyTTM9Kj5uIUxSNn1Re3FUWUlvazx5MTxu
cyMmX0xaR2lgLURIZjslYFNHCnp3V309a3h3fDd9bCtwYSkkSlpnQ3QmVUBrTCl0ajlkKEZPOypS
NCNzdERzQSlYI1BAYSZHNWRiSWs5WUBxT0cpaAp6SUw7YytiRWZ7Mm89SEFSN1dgMEh0Um8kb15P
Y3h1TnBBblA3aW9leHpGcm1sQmpLRlBucHBfQVJKRDtVQkkrcmgKenV9fWtMcVQqRyUhTShwP3NU
ViZjLTFGP0V5ajx2dT04ZUFUXllIPylxM3gpfEQ5Uj0taWY3dU1pQWpyMzUzeWVZCnozYUBXZjIk
TF4wZDdvfmAlUDwldUdUMDthX35BaElgfD1+UnF1MnctP1dTI1E0aF5GZHEhNWlTRi1AbjhGYUtH
cQp6SV94Q3p3JlU8dSNqPXNvYkFrailVSX5LbG95OSM+R081RXYpOV4oe09afk1Pcl5qbX5DT08+
XyZNNTc/ZSVmSXQKellmZ01TbXE9PXtjWHN1cT1lbiRzUVpJU04kMik4bEZHJTJwJVpCdFFycF83
UU9gMnU5I1hsfEZhbVRALTxLZXdlCnpDUE9taHVhWDhxMlFya2lrMUtTa2xGUk5KNiZEPTQ2K0pU
KEplKzR4Q21yUnhVVSF4MkpyeGgoOUd7PkRHajBRYwp6WkZid3VpPHJYMTUhMGtPdDRnMjN1YztL
empRVG9DVmFZOUlBKTRLfD9fenpuKGZFR2Qmbj4mMll9Vz1fb3YraHQKelo4RGQqZChgdDFeWTxl
TGJUKSZJSUFMMjZWRj1wa2tIS3puNUlSZGlWP3RhJCQzPngmKWNmek1VISUle0ghazUqCnpgPT1W
X3VGWENCXjhCQXV7d2F4WW0oVlokVSlxfHA9Wl5lb3pVQlFhdz9ydGtxOHt0WWV4ITIoWFZGSTRp
SHFGPgp6e0V2eERwJSVXaUQoKz11YjM/LTZJPEFSMk1hY2xXI2ZGZ3QjZHB9YTtfKllgMEw4NzFN
Skx4U1IkTFNGVz5gJCoKemViVyg3ay1AZ1pUO1pCK0VaUCplJEV9KX07YUtyKk93JG9Ea3ktITRU
JW0oKUU4V1dpb0xBUTBje2ZeK3lqciRnCnpaS3FkNE98TzM7RFVOJlc7SG1vRnUhMFlVSiZ2O1ox
PEF3NHQlKkt8Z2pjS0U+cGstZG85R2ZncGBAbiR1Xl5kfgp6K0xOVUFjKUkjZU9HXjViP3FeO2hN
K2ppS29ici13UmxyJW56VEU5anhlOF5QPCNuM2Q5c1FreERkbStmdUhIKSgKekw3JE4lYndvdkha
aSFDZDVAOUdgeDY/dlRQcD5CMUFHME45I21NZFV0WWI+K0J6SWNXYD5SU3lkVW9lSiZvc1AqCnor
JCZHY1hJVHlXRFpuV1hoMk5ia0BDV1dwdUZeaXw4N3IjOHhNdSZrNGspNmNQbEE7ZD9XMXJaWXVm
eXVoOT9BQQp6WWomJXFwS1M5VjJ5cV9EJkZFSDU5WFQ2TnUpPkhWUU9TcVZUMXpoWGJoSkxCRWhx
KCVAeyRjTCU8TUt1U3hLQjsKekNaM1R0JHNkZHxiRmN7QCpWXmNuTTlhcjhtJEdke293cUJ9QE9A
Zkc1YTN3QkJ4YXRFRUFjJnoobVRCY0IkMjRFCnpVKmB7QTBYOGtMZCF3a0JkNzBoJGFReDlpZTRn
RVQrcEdUdml7fXVLI3BONlBGMF40ZjFJN09DRztHKnFgN29WKAp6OE9AbjlLISF0fkhxJVJ3VWkr
V1J5JF93aEUzeVombUlZbk52P0NVNnc7KUhuS3xieiVpSCRzenk/dF9KJipSRzsKemkoejYlYDJI
TmxIKmJOeDByb1MjYz5+ViM7ODNwQCYxalVnR01iUyZpNFNkPkNkSkgjTD5uZFh4d2p2Y0dEPWMk
CnpaJUdrU3c2QWRlVUhJJDZjdShHemh+ST0+YTRNcU9zIW8lQCs7T2UkP0BwS2NgfiVjXlExaHJo
R1pNVjsjc1lYRgp6MHBSVlBrZ0xCO1U4REk5SDhzQ0ZII2I5SVpvcXk8SF93cFokdGVfQHhwaiNG
VXE8eTRhXipjc2I/fHlaUj1hMGUKentne3hQVk4tQk1RMSthJHhqZz5BRlIoeEZyZWNTT3dNdXFJ
WEU2ITtHZ1h6I3cpb05pPU9YanhgX3tVNTdRQyFaCnpaVkd4dUFId1ModDcqbGd4YHt4YShKSjde
SmU7MFZ6bDtTM3s5NlJAU2d7fTh6YkZrMnleXyVCPkJlWD9HYnV8Twp6Iz5HY2w8VjZDMGV9R2pR
dlRhUUdTMVNJZlhiLTUya2hCSipmYXFIcF5VKz1PJERBTEA1NnI/KWdgbztWXipkWikKenNReCNF
e2VLNDQ5ZHc5WDBmPVpeVElza25SMEhTfihDLVE0b1J0dHVFNmdObXNEJmBoM2V1NlRGWTNReV95
PldoCno2SlpSKTc9fCRuVnxXP3VaRmtXamtffHZtZXolOTsob2hZZFE/TFdZMSRFNTgoaDRoT0Zi
eD1sVkdhPHJZWUg4SQp6VkU5KThRfEd9TGhBfDlkN3s+NTIhWjMqcmsoPmE2Q0ZmUT9Tc0pQbGJQ
NnRANytBJURUVXVlUU4yTXpqIWB2WUsKel8/Qz1ARiNIYiRyY1EpMDN9WUNeRnBTfTRneUckS1JQ
cz5+eGV9eD0xKUJDTzRPTTtJUFghTjFnS0Y9YXtNZyZsCnpoODheeXZvS1Upc0tRVyVwfUxIcVlF
T3FxQiFGU1J7fnhKS0wpREs/ITN6ey12WmZvQlIrI0xmUTVKZnt6ejVRZQp6Ul94KmJoR0R2bUV7
dElxISFVK24zQDstTEpKQkgkYGQ+dEstQ0dZVzRiPm56ZyNie2JnIXI2WFRDdFNeclU4UjYKekVD
fUxBMCh5b1ghKm0zdSZWdy13VjtJSVRqTnhVM1ZPS2d0M0lQYk5le21zdlh7ZChMRFdJOTM+czJP
flJeWHpqCnpiZnNjZzFmPUdMKllfPUFgMG9VIVBKfVRHVjtJSVRqTnhVM1ZOV19sdF55RjtUKWJP
b1h7YThjUT4rRkd7djhrYwp6bVI4c3YxPUR+KnlJfX53Skxjbn5NRX5RaitaWSZONDhzX1BGJGBt
UDhEViUyOVV7ZDVCRFdedFBiPntwIV8jMEkKekZiSndeS3M/enNnYHxKUEtwaDBgYCRpWHJEaHlR
XnN4VlpTNW1YJmQoO3heVDY4YlltcU5MSkNPR0RNNFA5WHNsCnppN0xxNz59XmRpe2A/LTJBZjVk
ZG5laklhZTx2Xz9COCpgZSEhVStuM0A7LUx5VS15TDF0NiUjN1QmIXloSikhOAp6UWIxdXBLYlgw
KyFtXlB7U0wkdzk4bDtXZVZAclF4XyFrMEdDJkN6cEYkYGxFI18lJTJ1c2E8aChFeCghKW19X1gK
ekxwN1hFdUApJUNVI3R2U1QweXUyclU4Uj8tME1KTyt8a29TI3FocnFtXnUlfUZwT2FzISFVLUk1
cikwIzVHZXk3CnpJSl9UMlNzSlEoZ0glPmhwKCtjflQlPE1NJiVHXmVZfCZGTzNxdXUjRGh5UV5z
Pj10ZSV0bkpXMDdDbXRJZ215JgpMeTBURkorVCpfZjUqVThvCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby53ZWJtdnA4LndlYm0gYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy9ucG90LXZpZGVvLndlYm12cDgud2VibQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDcyNzdiZGFhYzFmNDdmODAzYmJlNjk2OTEzYTUzZmEyODU0OGY1OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA1MTI0MAp6Y21lSTU0TncmNDhPTHt6bExN
cFNwbFVFbUxEWjJkNXRSNTxzVD4lcENMbHlLQVZ0OV9lbndeZDAoQzY2MmRGaWUKeig5eHN7aH1V
M1pqSHJoTWwwciE2aGhVdihAVDF5QjRmcXVyS1M1Q2BNWHROPUYwJHxCZWN5MmtiZVljTU9ycm4h
Cnp4dHk7NUljfFQ/YjkqbV8qNXZhWGByI1J9Uz5RdCtpfnJwaF5kUyFmcnd+aGVhXmpvSUwkKE9J
a1BKY1I5JVd1Ngp6fEpKR28qWUtQKnJpdE5ZWiR9K1c/PnBfbCFsKGtGQ2NHP0RPI05tYVVLVWtn
O2VGKmVGc2UrN2YyeCtGYmV0SGcKek90K04+ZU5UU3VadVdvYXVjWjZ8Z05JKXpPbWhoX2dgM3xG
bzQwUF5uOShFMGp2d2hDOWpzMlBfaGxVb0p1fmpECnpiR2shQV5LKHZCY3tYMnA8dV9ZUm0mNEZz
T0ZBUlU3WWpZQ3szN3N6el5eX2dAVk5yI1U3VllpeE1JPWZqNXAlbgp6aCNhM0xAUG5fVnJTbVA7
UysmYVZIUUZxXmYybS1iRGc4V0N7RHRTX2xDPzUzSzM2QWpgTjhvNSRDPE8teGpwPUYKemY4Tkcl
MkIoYVN0cl9XQ0ltPntXY2RtVUxSRlRUOV5HJEs3Yi1DRmlDZGxoNnpKPnFKZXJqTj1MejY/Y0x5
TXV3CnpyUVVPOD55WmNOOTR7RmZfK1JfM0pKaGhDR0NBdCZGWHJ5SmN4JFp2MmVXbXwpeTdqZCpT
e0ItPGk1VWlRXmU/bwp6NFU0OCRuY1lMej9vS0hXRDl4QHA9I3Qqa0ZZTkNBLTZfZEsxZz4oOzFI
VHRPTn1qJjBJZEFlUU9YJWkqVDtie18Kek9kUyVse1FjNG9tVSMkK1BYJnhGLUU7MnpxWDhhZ0Nt
IzVJdUhVUkF4ND4ld0JNd31TKmNaRGxJO3UxO0BvTXZSCnp1R01aWTl1QHo2bloyZkBYNFVEUCpN
X1Yodn1lVEJtKE0oR0sza21xWkooeUNXPmN6dHVIRjlLPENVdzFSb3dnWQp6QHl5QGJVaSQwRypz
MT1OKV8xJWZhTChTbCVWKnZgODl3ckYkQnZ9NzlAOCg1OGcrQl42P2VCP0N3cjl+JFQwWCsKenA4
c2djXitUMXI/VD0yPl5GT2JmSkxDNDh0Q1ErV2BOQ0tFIVhmKm9SUFU/IXF3fU1wLTxgQy17X1pY
PVU7SmtwCnojUWojc0lUfGw8P3dvcyFVbkEjYSoyaG4rRWpxeT1JKztscUZsbU5ORTY4N1l6ZjU8
TD4yYUJeQT00alpzXyZEKQp6JX1lO0luKUJ2ZEh4MElZPEFlVXB7QnRzbUJPYzU5JUc1LXI7V0c2
aCkwSHc2Jih4MzNtRHA4MjMlYzUrVUY4ZDwKel5Vb1FiMjxKYW47THBsYlBvfEE1c19WPDc8Q3J2
dE4hS2ZzKml+SCleVmx6I15mSHMkPX5WMmhnQk50UU9TfGUyCnpPaDVtKmcyUXwhTz1yPiVuWTQ7
WXxILTB5WE4zfkdzdnA1VEhqR0peR3dIaUBEdDErR2dSWFhJU017Z3E9UmE0Xwp6S1ZaPXdlVkI5
JWxTVlVYM1h8P3VENnkrTyU5ekpxViR2cnA+Z1krUVZwa25hKEE2Jk9zXmRLUmBPZyZgKTBsSzAK
emxPQUt6SXU8b0pHM24wfk82O29QSFJpRXpHM2o8REp3bTVxUn1JekIpaF9MLXBARHc+YXxOZkxG
ekwlb0kqVW5ACnpuUkZNRXt6MEx7dH55PDA5XjFtQSZLXnR9TTVRViUoNXVla29CJj9uZjkzQF5C
bCY4SUx0Y1BOa3Ikdis8T1Flewp6Yz55WCNVVnV1RzdaNTQyeVJzTGM5Vj5lUURuKHZeTnw2XkpR
fUtCZ3lnKE5fdFRyenw/a2FjendiOWRvN3Rxd1YKemYpYE0/UTRlMEE4X3gjNzMjaHg9MUgzPnQ/
a2FjemJ5cDRHMS1meHAhMyhJbis2aTkzd1ctZUhSc21pQnlafnxiCnolUlBlXjtFbSZuJEk0IVNO
fDZfIVFzZjI1RyZsJShmcXFZU1RlY3s+RWU7bDQ8SEMkNG0jYXRTSGFJajFHaEJ9UQp6UmlxayYl
PWhlZG9TaT94d35DdUI3d2lYSENJcF4kY3tJI0Q/fHkzaigmNCFteFk+dkpqV09TREpNdW52Jmlk
MUIKeikyfklXND8wfmBkRWU5V180YmNIYEIjRVIrXmV3LWVZd1h3byh6YWNGfnttMjYmQ2w2X3ZI
QCstTyY0OERzTD5BCnp8N0gwY3g3diRVbj5LdnY8a2tPPEgjKXchX3cyZ14oY3p4MSk/eGlrenFv
Rm5xVGQ7fTxsZUM2dV4tJHF4N3U0OQp6cmszQmNLa1N7bilfJmkyPTsyIzZge09ecS0pfkZuIz9a
c3JIUm4oNCRnfHZmdlpifWJ7JHpPQzw8eXAoJkN6RVAKejt8ZXhwQTY+a0VRTTZ5KSpgaU5BWn5i
QGJ4VV5RenoyXj0wUUtNJH4yNH5rcSpuaFFsUmBabStgTD9zbTxFSS11CnpiOEU1PVUrSTcxP0RM
TW8hX1VJQFNgJm0hRkwkZjdvZyFjTj51Q1JTWGRpJHwoTFI5QTcpYm5BbS1oanY2enYwMAp6RGNU
MzFRblV9Q3FjfCNnQUFvdSsrNlNPZ3Y9MmF+PSg/WHcjViQodzBNTndfYld5JnBDIWdROGN8Vm4r
Y3xWbisKemN8Vm4rY3xWbitjfFZRSF5MfDx2PCN8OCNTVHlnYVFnbUhVckQpenlyZVlWUmN8VVpx
MTZgRF8rc1dzKlpKd18pCnpsRDYxIzEkbXc/YzdwaTQqYU9ZO3NUOXJnc1Q5cmdzVDlyZ01NYHd7
QDtzazxFU2wkMkRZfFpfUUYpJEVyZVlWUgp6Y3xMVHAxNmBEXyVnTmByWkMrMk1Ya0pnSFhrSmdI
WGtKZ0ZeMVBsKChZIyl5IzRnSjdkZ2AlZ1VRZWF5eHx+WVUKenlxLStPRT11IXk9d2IpREN8YEd6
JnVgbTJvPVZYP289Vlg/bz1WWD9vPVZYP289Vlg/VVpsaD4lSlg+WXYxbEdvCnpxdztrKG03O2so
blRsTz5QSmt8VT0tUzB1a29Gek89UW1leSZTJW9VRnpGMno/UCp8QUExMGxxUCt9SypFQEt7Pgp6
JCl0eXZeY3lOfC13a3A3ZCE1Q0BtTT9ad2Rkfjx2UGo9dldRaHJZZXQoKUBoMmJINFQ0PVAyd0E1
QEJWS2QyUCMKemVvIWZMSlImN19Re01mYzlWPEg/RG4qV21OfEVDc1E/Wk5FP2d3PFMxNl4hJEpt
bCpVZEFFYW5fQy1JV0kzRHRgCnpaSHxYUjZ+e3hOaXNQWnNYTDNCMFYtPzNrcF5EPzdQe3J8KHNN
dGt0SlJTNm5aSHxYQGUlbD1uZyh7QVJMS1ZrRAp6cF5EPzdQe3J8KD45YVc9JUNVOyRwLXshflBe
ald+TkwxYDFJR3pyNnZDWisyJlRxVHBBeWFUWD9lajttaXtOLVYKeipoTyRXP1MwQT48bFBJfVla
MyFFby1VbVVnNXl6bDVnZDx9XkojRUE+TXIpfDlMTThoMTteNn55QSRBZSlaT0k0CnpAcE9ZZDlg
ZS0rSTM5SVY8QGZLOVV0Tk9aPkcpMD1JMzlKfDxvRDswK2FfOERhNkRhbEVkITI2LTlgRVJIPyVJ
bwp6OSM3WnErSmZVemNNJStxbWU8d2JjK18xNCREP0h6IVNTZk8qaCE4akFQWEUxSTNEVn5VMV9m
WVZVTVQjemdHKCEKemtNenpwOXFqUkY9b2BXRHNKfn19PEkoYzxCUkMjKTdzMnNwKitwPFg+TW54
ZyhYeHgrYytfMTQkRD9IeiFTU2ZPCnoqaCE5T2t7S0tpSTM5MzN8QStWRTBtbFE1TjklaC1mI1hx
cyZqIWIlPD9CYXFKbkFsajxJJUU8O0NSJHMxam5PZwp6N3MydFV5OWthKSVQeFpCUUZwUEU5TTd+
UWE2STY2ITB+fE5rdzJMbT8jSmA9dihAM2ZUSlQ9MkFBZmR6K2RZQGIKejIyfklEPEJASjwtITFQ
JjR+fEZ1YFZrekRtZShAaWMrXzE0JEQ/SHohU1NmTzIjIWF+RWBzQXhjZD9UayZyST8yCnp4WiQ0
NTlzVnBNeEYzKFluPl5mKU41bDhXeiYpNE1VNC17KVk1NkBIX0lUNz9nZ3FXRHk5a2EpLTk+T2JU
NlBmfQp6a0doTkNjKG0qeUkzOUh1IVNRST5NUX1Yb0VfUmFSaUhgKXcxQTlFTSN7K3ZqdSpWYlEq
VF59d0tnWXJ6NUE1OzQKejk/eVY/Nm16V1pRREpmNGN3aGNOJjwoeGNyU2lzLWBDcGRMYWpVJnB3
UTBrclBHMEAqY3dkV0hBOVQ5N193MmdeCnp5WUdGPCExMSZ7d34zenk1MSpaYDtUIzRXa0doTkNj
KGxCKDJGSWlCQX4rcmB5OWthKS1OakNGSldFYUJjKTs8MQp6O3tuRzVqdDNsMU9VfngjR2xfOHA4
P3Vpcy1vTDA1byk9K3tOQnVuO19JUns+e1JvYW4tOT5PYlQ2UGZ9a0doTkMKemMobSp5STM5SHUh
U1FJPk1RfVhvRjg8ZSFYSkF5PkdNPHh1PW9nZV83NzUmRVRPSkYxZ041SHp3IU8mMFhKT0k3Cnoz
eVhSaTc5Q0FrRypufkpJWUVpOEpFZ0RPdm1UNFIldmdOaGgoI0FHN0czP1o9dkpZYEs/VHhSP2h9
Y3t6T2A2PAp6QXFrODlJVmBASWd+ZnFoU29FK2RGfkJCMGtmI1pZVWUjRmlQUWM+ZWRNcGsjVnt3
PWZpI31FKmhONSNkKyNpYzAKekR6TnhjQm87XjNWJG5ZZGk9I08jMjRwRVFJens+JGpxJD9iU1F7
M3tvM0o+YzhqQk1YdW96ZzYjWXR1KkV7VCZLCnokWWpKfnVvYTd3e2p2Qjsxcn5vOWlOel9rU2Ul
eG0jRW1CRGZuTVhWNz95Pl8+MFZmanV3bjZhNkJjSndWe3ZBSgp6NjFOWUw5JXhvUTdOZ0Jyb05k
SG50UUN1S3sjY3ctZnlNWXBDR0teUzl3P3l9aSpGYGphUkc8TCM0SWM+XjF8WGAKejh5MShFbHhW
dnhKPHpnaEVHfCNMOyk7NEtDWWlDZyU4MTMpKX5DQG1KWkZ2a2U4WVZoVVh+ZWtGeF8pPCQ9YXZf
CnFAZCpjdXR+Oz9mcn5yIXJIWXxxWHpkMVN1cWY2cWp4WTJ+Zz9MKUEqKjluV1oreTRRcUhRPF42
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcG5nbGliLmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcG5nbGliLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMmE5Yjk5ZTA4NWNhOTgwMzJiNTY1YmViNzhkNWU2Y2E4ZjZlYzEyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3BuZ2xpYi5qcworKysgL2Rldi9udWxsCkBAIC0xLDIwNyArMCwwIEBACi0vKioK
LSogQSBoYW5keSBjbGFzcyB0byBjYWxjdWxhdGUgY29sb3IgdmFsdWVzLgotKgotKiBAdmVyc2lv
biAxLjAKLSogQGF1dGhvciBSb2JlcnQgRWlzZWxlIDxyb2JlcnRAeGFyZy5vcmc+Ci0qIEBjb3B5
cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEwLCBSb2JlcnQgRWlzZWxlCi0qIEBsaW5rIGh0dHA6Ly93
d3cueGFyZy5vcmcvMjAxMC8wMy9nZW5lcmF0ZS1jbGllbnQtc2lkZS1wbmctZmlsZXMtdXNpbmct
amF2YXNjcmlwdC8KLSogQGxpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNl
cy9ic2QtbGljZW5zZS5waHAgQlNEIExpY2Vuc2UKLSoKLSovCi0KLShmdW5jdGlvbigpIHsKLQot
ICAgIC8vIGhlbHBlciBmdW5jdGlvbnMgZm9yIHRoYXQgY3R4Ci0gICAgZnVuY3Rpb24gd3JpdGUo
YnVmZmVyLCBvZmZzKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFyZ3VtZW50c1tp
XS5sZW5ndGg7IGorKykgewotICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzKytdID0gYXJndW1l
bnRzW2ldLmNoYXJBdChqKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGJ5dGUyKHcpIHsKLSAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUo
KHcgPj4gOCkgJiAyNTUsIHcgJiAyNTUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGJ5dGU0KHcp
IHsKLSAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoKHcgPj4gMjQpICYgMjU1LCAo
dyA+PiAxNikgJiAyNTUsICh3ID4+IDgpICYgMjU1LCB3ICYgMjU1KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBieXRlMmxzYih3KSB7Ci0gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2Rl
KHcgJiAyNTUsICh3ID4+IDgpICYgMjU1KTsKLSAgICB9Ci0KLSAgICB3aW5kb3cuUE5HbGliID0g
ZnVuY3Rpb24od2lkdGgsaGVpZ2h0LGRlcHRoKSB7Ci0KLSAgICAgICAgdGhpcy53aWR0aCAgID0g
d2lkdGg7Ci0gICAgICAgIHRoaXMuaGVpZ2h0ICA9IGhlaWdodDsKLSAgICAgICAgdGhpcy5kZXB0
aCAgID0gZGVwdGg7Ci0KLSAgICAgICAgLy8gcGl4ZWwgZGF0YSBhbmQgcm93IGZpbHRlciBpZGVu
dGlmaWVyIHNpemUKLSAgICAgICAgdGhpcy5waXhfc2l6ZSA9IGhlaWdodCAqICh3aWR0aCArIDEp
OwotCi0gICAgICAgIC8vIGRlZmxhdGUgaGVhZGVyLCBwaXhfc2l6ZSwgYmxvY2sgaGVhZGVycywg
YWRsZXIzMiBjaGVja3N1bQotICAgICAgICB0aGlzLmRhdGFfc2l6ZSA9IDIgKyB0aGlzLnBpeF9z
aXplICsgNSAqIE1hdGguZmxvb3IoKDB4ZmZmZSArIHRoaXMucGl4X3NpemUpIC8gMHhmZmZmKSAr
IDQ7Ci0KLSAgICAgICAgLy8gb2Zmc2V0cyBhbmQgc2l6ZXMgb2YgUG5nIGNodW5rcwotICAgICAg
ICB0aGlzLmloZHJfb2ZmcyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gSUhEUiBvZmZzZXQgYW5kIHNpemUKLSAgICAgICAgdGhpcy5paGRyX3NpemUgPSA0ICsgNCAr
IDEzICsgNDsKLSAgICAgICAgdGhpcy5wbHRlX29mZnMgPSB0aGlzLmloZHJfb2ZmcyArIHRoaXMu
aWhkcl9zaXplOyAgICAvLyBQTFRFIG9mZnNldCBhbmQgc2l6ZQotICAgICAgICB0aGlzLnBsdGVf
c2l6ZSA9IDQgKyA0ICsgMyAqIGRlcHRoICsgNDsKLSAgICAgICAgdGhpcy50cm5zX29mZnMgPSB0
aGlzLnBsdGVfb2ZmcyArIHRoaXMucGx0ZV9zaXplOyAgICAvLyB0Uk5TIG9mZnNldCBhbmQgc2l6
ZQotICAgICAgICB0aGlzLnRybnNfc2l6ZSA9IDQgKyA0ICsgZGVwdGggKyA0OwotICAgICAgICB0
aGlzLmlkYXRfb2ZmcyA9IHRoaXMudHJuc19vZmZzICsgdGhpcy50cm5zX3NpemU7ICAgIC8vIElE
QVQgb2Zmc2V0IGFuZCBzaXplCi0gICAgICAgIHRoaXMuaWRhdF9zaXplID0gNCArIDQgKyB0aGlz
LmRhdGFfc2l6ZSArIDQ7Ci0gICAgICAgIHRoaXMuaWVuZF9vZmZzID0gdGhpcy5pZGF0X29mZnMg
KyB0aGlzLmlkYXRfc2l6ZTsgICAgLy8gSUVORCBvZmZzZXQgYW5kIHNpemUKLSAgICAgICAgdGhp
cy5pZW5kX3NpemUgPSA0ICsgNCArIDQ7Ci0gICAgICAgIHRoaXMuYnVmZmVyX3NpemUgID0gdGhp
cy5pZW5kX29mZnMgKyB0aGlzLmllbmRfc2l6ZTsgICAgLy8gdG90YWwgUE5HIHNpemUKLQotICAg
ICAgICB0aGlzLmJ1ZmZlciAgPSBuZXcgQXJyYXkoKTsKLSAgICAgICAgdGhpcy5wYWxldHRlID0g
bmV3IE9iamVjdCgpOwotICAgICAgICB0aGlzLnBpbmRleCAgPSAwOwotCi0gICAgICAgIHZhciBf
Y3JjMzIgPSBuZXcgQXJyYXkoKTsKLQotICAgICAgICAvLyBpbml0aWFsaXplIGJ1ZmZlciB3aXRo
IHplcm8gYnl0ZXMKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJ1ZmZlcl9zaXpl
OyBpKyspIHsKLSAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gIlx4MDAiOwotICAgICAgICB9
Ci0KLSAgICAgICAgLy8gaW5pdGlhbGl6ZSBub24temVybyBlbGVtZW50cwotICAgICAgICB3cml0
ZSh0aGlzLmJ1ZmZlciwgdGhpcy5paGRyX29mZnMsIGJ5dGU0KHRoaXMuaWhkcl9zaXplIC0gMTIp
LCAnSUhEUicsIGJ5dGU0KHdpZHRoKSwgYnl0ZTQoaGVpZ2h0KSwgIlx4MDhceDAzIik7Ci0gICAg
ICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLnBsdGVfb2ZmcywgYnl0ZTQodGhpcy5wbHRlX3Np
emUgLSAxMiksICdQTFRFJyk7Ci0gICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLnRybnNf
b2ZmcywgYnl0ZTQodGhpcy50cm5zX3NpemUgLSAxMiksICd0Uk5TJyk7Ci0gICAgICAgIHdyaXRl
KHRoaXMuYnVmZmVyLCB0aGlzLmlkYXRfb2ZmcywgYnl0ZTQodGhpcy5pZGF0X3NpemUgLSAxMiks
ICdJREFUJyk7Ci0gICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLmllbmRfb2ZmcywgYnl0
ZTQodGhpcy5pZW5kX3NpemUgLSAxMiksICdJRU5EJyk7Ci0KLSAgICAgICAgLy8gaW5pdGlhbGl6
ZSBkZWZsYXRlIGhlYWRlcgotICAgICAgICB2YXIgaGVhZGVyID0gKCg4ICsgKDcgPDwgNCkpIDw8
IDgpIHwgKDMgPDwgNik7Ci0gICAgICAgIGhlYWRlcis9IDMxIC0gKGhlYWRlciAlIDMxKTsKLQot
ICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZGF0X29mZnMgKyA4LCBieXRlMihoZWFk
ZXIpKTsKLQotICAgICAgICAvLyBpbml0aWFsaXplIGRlZmxhdGUgYmxvY2sgaGVhZGVycwotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgKGkgPDwgMTYpIC0gMSA8IHRoaXMucGl4X3NpemU7IGkrKykg
ewotICAgICAgICAgICAgdmFyIHNpemUsIGJpdHM7Ci0gICAgICAgICAgICBpZiAoaSArIDB4ZmZm
ZiA8IHRoaXMucGl4X3NpemUpIHsKLSAgICAgICAgICAgICAgICBzaXplID0gMHhmZmZmOwotICAg
ICAgICAgICAgICAgIGJpdHMgPSAiXHgwMCI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHNpemUgPSB0aGlzLnBpeF9zaXplIC0gKGkgPDwgMTYpIC0gaTsKLSAgICAgICAg
ICAgICAgICBiaXRzID0gIlx4MDEiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgd3JpdGUo
dGhpcy5idWZmZXIsIHRoaXMuaWRhdF9vZmZzICsgOCArIDIgKyAoaSA8PCAxNikgKyAoaSA8PCAy
KSwgYml0cywgYnl0ZTJsc2Ioc2l6ZSksIGJ5dGUybHNiKH5zaXplKSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvKiBDcmVhdGUgY3JjMzIgbG9va3VwIHRhYmxlICovCi0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLSAgICAgICAgICAgIHZhciBjID0gaTsKLSAgICAgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGMg
JiAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGMgPSAtMzA2Njc0OTEyIF4gKChjID4+IDEpICYg
MHg3ZmZmZmZmZik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgYyA9IChjID4+IDEpICYgMHg3ZmZmZmZmZjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBfY3JjMzJbaV0gPSBjOwotICAgICAgICB9Ci0KLSAgICAgICAg
Ly8gY29tcHV0ZSB0aGUgaW5kZXggaW50byBhIHBuZyBmb3IgYSBnaXZlbiBwaXhlbAotICAgICAg
ICB0aGlzLmluZGV4ID0gZnVuY3Rpb24oeCx5KSB7Ci0gICAgICAgICAgICB2YXIgaSA9IHkgKiAo
dGhpcy53aWR0aCArIDEpICsgeCArIDE7Ci0gICAgICAgICAgICB2YXIgaiA9IHRoaXMuaWRhdF9v
ZmZzICsgOCArIDIgKyA1ICogTWF0aC5mbG9vcigoaSAvIDB4ZmZmZikgKyAxKSArIGk7Ci0gICAg
ICAgICAgICByZXR1cm4gajsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGNvbnZlcnQgYSBjb2xv
ciBhbmQgYnVpbGQgdXAgdGhlIHBhbGV0dGUKLSAgICAgICAgdGhpcy5jb2xvciA9IGZ1bmN0aW9u
KHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKSB7Ci0KLSAgICAgICAgICAgIGFscGhhID0gYWxwaGEg
Pj0gMCA/IGFscGhhIDogMjU1OwotICAgICAgICAgICAgdmFyIGNvbG9yID0gKCgoKChhbHBoYSA8
PCA4KSB8IHJlZCkgPDwgOCkgfCBncmVlbikgPDwgOCkgfCBibHVlOwotCi0gICAgICAgICAgICBp
ZiAodHlwZW9mIHRoaXMucGFsZXR0ZVtjb2xvcl0gPT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAg
ICAgICAgICBpZiAodGhpcy5waW5kZXggPT0gdGhpcy5kZXB0aCkgcmV0dXJuICJceDAwIjsKLQot
ICAgICAgICAgICAgICAgIHZhciBuZHggPSB0aGlzLnBsdGVfb2ZmcyArIDggKyAzICogdGhpcy5w
aW5kZXg7Ci0KLSAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltuZHggKyAwXSA9IFN0cmluZy5m
cm9tQ2hhckNvZGUocmVkKTsKLSAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltuZHggKyAxXSA9
IFN0cmluZy5mcm9tQ2hhckNvZGUoZ3JlZW4pOwotICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVy
W25keCArIDJdID0gU3RyaW5nLmZyb21DaGFyQ29kZShibHVlKTsKLSAgICAgICAgICAgICAgICB0
aGlzLmJ1ZmZlclt0aGlzLnRybnNfb2Zmcys4K3RoaXMucGluZGV4XSA9IFN0cmluZy5mcm9tQ2hh
ckNvZGUoYWxwaGEpOwotCi0gICAgICAgICAgICAgICAgdGhpcy5wYWxldHRlW2NvbG9yXSA9IFN0
cmluZy5mcm9tQ2hhckNvZGUodGhpcy5waW5kZXgrKyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5wYWxldHRlW2NvbG9yXTsKLSAgICAgICAgfQotCi0gICAgICAgIC8v
IG91dHB1dCBhIFBORyBzdHJpbmcsIEJhc2U2NCBlbmNvZGVkCi0gICAgICAgIHRoaXMuZ2V0QmFz
ZTY0ID0gZnVuY3Rpb24oKSB7Ci0KLSAgICAgICAgICAgIHZhciBzID0gdGhpcy5nZXREdW1wKCk7
Ci0KLSAgICAgICAgICAgIHZhciBjaCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7Ci0gICAgICAgICAgICB2YXIgYzEs
IGMyLCBjMywgZTEsIGUyLCBlMywgZTQ7Ci0gICAgICAgICAgICB2YXIgbCA9IHMubGVuZ3RoOwot
ICAgICAgICAgICAgdmFyIGkgPSAwOwotICAgICAgICAgICAgdmFyIHIgPSAiIjsKLQotICAgICAg
ICAgICAgZG8gewotICAgICAgICAgICAgICAgIGMxID0gcy5jaGFyQ29kZUF0KGkpOwotICAgICAg
ICAgICAgICAgIGUxID0gYzEgPj4gMjsKLSAgICAgICAgICAgICAgICBjMiA9IHMuY2hhckNvZGVB
dChpKzEpOwotICAgICAgICAgICAgICAgIGUyID0gKChjMSAmIDMpIDw8IDQpIHwgKGMyID4+IDQp
OwotICAgICAgICAgICAgICAgIGMzID0gcy5jaGFyQ29kZUF0KGkrMik7Ci0gICAgICAgICAgICAg
ICAgaWYgKGwgPCBpKzIpIHsgZTMgPSA2NDsgfSBlbHNlIHsgZTMgPSAoKGMyICYgMHhmKSA8PCAy
KSB8IChjMyA+PiA2KTsgfQotICAgICAgICAgICAgICAgIGlmIChsIDwgaSszKSB7IGU0ID0gNjQ7
IH0gZWxzZSB7IGU0ID0gYzMgJiAweDNmOyB9Ci0gICAgICAgICAgICAgICAgcis9IGNoLmNoYXJB
dChlMSkgKyBjaC5jaGFyQXQoZTIpICsgY2guY2hhckF0KGUzKSArIGNoLmNoYXJBdChlNCk7Ci0g
ICAgICAgICAgICB9IHdoaWxlICgoaSs9IDMpIDwgbCk7Ci0gICAgICAgICAgICByZXR1cm4gcjsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIG91dHB1dCBhIFBORyBzdHJpbmcKLSAgICAgICAgdGhp
cy5nZXREdW1wID0gZnVuY3Rpb24oKSB7Ci0KLSAgICAgICAgICAgIC8vIGNvbXB1dGUgYWRsZXIz
MiBvZiBvdXRwdXQgcGl4ZWxzICsgcm93IGZpbHRlciBieXRlcwotICAgICAgICAgICAgdmFyIEJB
U0UgPSA2NTUyMTsgLyogbGFyZ2VzdCBwcmltZSBzbWFsbGVyIHRoYW4gNjU1MzYgKi8KLSAgICAg
ICAgICAgIHZhciBOTUFYID0gNTU1MjsgIC8qIE5NQVggaXMgdGhlIGxhcmdlc3QgbiBzdWNoIHRo
YXQgMjU1bihuKzEpLzIgKyAobisxKShCQVNFLTEpIDw9IDJeMzItMSAqLwotICAgICAgICAgICAg
dmFyIHMxID0gMTsKLSAgICAgICAgICAgIHZhciBzMiA9IDA7Ci0gICAgICAgICAgICB2YXIgbiA9
IE5NQVg7Ci0KLSAgICAgICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgdGhpcy5oZWlnaHQ7IHkr
KykgewotICAgICAgICAgICAgICAgIGZvciAodmFyIHggPSAtMTsgeCA8IHRoaXMud2lkdGg7IHgr
KykgewotICAgICAgICAgICAgICAgICAgICBzMSs9IHRoaXMuYnVmZmVyW3RoaXMuaW5kZXgoeCwg
eSldLmNoYXJDb2RlQXQoMCk7Ci0gICAgICAgICAgICAgICAgICAgIHMyKz0gczE7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICgobi09IDEpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHMxJT0gQkFTRTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHMyJT0gQkFTRTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG4gPSBOTUFYOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgczElPSBCQVNFOwotICAgICAg
ICAgICAgczIlPSBCQVNFOwotICAgICAgICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMuaWRh
dF9vZmZzICsgdGhpcy5pZGF0X3NpemUgLSA4LCBieXRlNCgoczIgPDwgMTYpIHwgczEpKTsKLQot
ICAgICAgICAgICAgLy8gY29tcHV0ZSBjcmMzMiBvZiB0aGUgUE5HIGNodW5rcwotICAgICAgICAg
ICAgZnVuY3Rpb24gY3JjMzIocG5nLCBvZmZzLCBzaXplKSB7Ci0gICAgICAgICAgICAgICAgdmFy
IGNyYyA9IC0xOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSA0OyBpIDwgc2l6ZS00OyBp
ICs9IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgY3JjID0gX2NyYzMyWyhjcmMgXiBwbmdbb2Zm
cytpXS5jaGFyQ29kZUF0KDApKSAmIDB4ZmZdIF4gKChjcmMgPj4gOCkgJiAweDAwZmZmZmZmKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgd3JpdGUocG5nLCBvZmZzK3NpemUt
NCwgYnl0ZTQoY3JjIF4gLTEpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY3JjMzIo
dGhpcy5idWZmZXIsIHRoaXMuaWhkcl9vZmZzLCB0aGlzLmloZHJfc2l6ZSk7Ci0gICAgICAgICAg
ICBjcmMzMih0aGlzLmJ1ZmZlciwgdGhpcy5wbHRlX29mZnMsIHRoaXMucGx0ZV9zaXplKTsKLSAg
ICAgICAgICAgIGNyYzMyKHRoaXMuYnVmZmVyLCB0aGlzLnRybnNfb2ZmcywgdGhpcy50cm5zX3Np
emUpOwotICAgICAgICAgICAgY3JjMzIodGhpcy5idWZmZXIsIHRoaXMuaWRhdF9vZmZzLCB0aGlz
LmlkYXRfc2l6ZSk7Ci0gICAgICAgICAgICBjcmMzMih0aGlzLmJ1ZmZlciwgdGhpcy5pZW5kX29m
ZnMsIHRoaXMuaWVuZF9zaXplKTsKLQotICAgICAgICAgICAgLy8gY29udmVydCBQTkcgdG8gc3Ry
aW5nCi0gICAgICAgICAgICByZXR1cm4gIlwyMTFQTkdcclxuXDAzMlxuIit0aGlzLmJ1ZmZlci5q
b2luKCcnKTsKLSAgICAgICAgfQotICAgIH0KLQotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5tcDQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9yZWQtZ3JlZW4ubXA0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmQ2ZDU5
NjU4OTA2ZDIzNTY2ZjFhYTE0NDQzYzNkYzFlYWI0NjEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDkyMjI1CnpjbWVJNTN2PzlLOE9RSkpHeUJMVUs7RDJSQWM3VzR3MiV9TDVga0p1
M0FMcz90VilTJkI5dyVYWXpQa3BFPVUhUQp6UjFzPlMwcEhYSXdsb297Y3U/eVJENlBlNEtAMjR8
SzlXWWs5Kn4xUGk9PW13KDlMfUZXcWFxYFBFWEoyd30od08KenxMbnx2enUoUmBjamlBZzN1NyM7
cS14Plp2YmpVQSkyP1FQYHVBQ3BALW9JKVR1RWhkRzFHM3B4LTQ4JkM0UDRKCno2MjtlZTVBIXYm
RnFWOWRGJjdzPyRmTm5obGRxVmBuM0hMYFFhNH5GUGFKVyt1enY2RElqYWpzRXh0ZUhqc1h1Twp6
e0M0I3tpP2wtblVFZXNKKGZybzJtc2FnOWRIPEYjN3U+JlVSbXRGY1BuPjthPVplN1U9OTFIb3g2
UGgteE93eGkKenlsPyReKHVgWSF3WT9ffXglPFI3WiFMWGN7ZyZzQ28qZD5xXjUtM0lUdDBRZSlo
Q0NaYDEtcmA7fEtIQkBBWnV6CnpKPzZjSXA0TWxhUXx8aUIpUT5MQyU1aCMqZFU/cVFJZzFZNnxM
cmRgV3xzfW1KM3NDNHIqRkI+Qjw/ITI/NWtsXwp6eHdyVEdTI0M9RHJubUF9alF3NUNtVyplMmgh
XmVmV25VXkx6aVRtPlN2OU8+I0txT3k4eiReblNlX0JzdXN6YikKemxzS3FtPWlsQj1Vd0VTVj9K
dGJXQH4rRVhvPmltOCVAQG49dDhnfnZ3NE9VJCZ4WXNzOCFfQD07a3QlWDdYfmpkCnpGOFQmc2Jm
eFR+bmdQRlhieDZCdmhHTythPHl+UXxQSSpeWXQ1ZSQ1MGMmK2h5RTxVNHUyYDtGaUVqMnBAM3VG
QAp6bj8kIXgwPVhPMVAlSSotV2BNYUh4TExISyVwPEMxVCZrUHVUIUtuYSU+LTt2c1EreiUlQmNU
c3BzRVVXRzNgeyUKej99fkUmUn0pbz9zIyZ3NVIxI0QoRjRne3o1TDY1Kkg7WXlqSXtycyEoV1oo
KFFJJUFvRX17TjZ6WGkoVUtjeTtXCnpzTElGeF5KIUJ4USZzSyVNUGlsRnB4cHJqV1Zke2ozajxf
I3RTSHl1PlZ5SFpON35nMTE3d2Y5RTNETms/K1I9Ngp6TzFydlh0I1EoPkU/OEB2eWVxOExDK2BZ
dF5+R3xmN1I2ZVduPyktTWpWMV4hKWcyIz1DTkBBX0s+Y3J+cyhkc18KelhfNlZMXjNmIW5xN3po
dmZETXZ6fDVIWVh5ZXEyWEtrWmEpZk88RUx8N05QbntaQiljOExJTzVQYlhEMkt3VWB2CnpaPkNF
OVopVCNkc0UrP01uKyRtbVJIMEkrZjxvbnBZQyk8SCZ5OG1FWmtRblpyTCRaJk9weUp0dlJ0RHBP
cHBXZQp6dH1zQ2tOVnxHcXR3Q3Y1NTNEc1A/K1I7O212QEQ9IyFJXztWWFl4KVMxK3RKNnc4JnlY
bWp0Vz8pZEhAc1EtRFcKemJsemlURCRhWDJxRlJ0Pmo3RElvX0NFejVIYjdsVUo1QDdQPF5IRmsk
XyFPR09gXkhVSGJBQkVBQkQ7aClxK0c8CnpsTXE7ezwzQ05Ld0UtJGNeZTl4MHMxX3ZaZSp+Nmx8
STxtODROJlB3NkB8KFgpcSpyJUpVNXlxZHR1Z0BBZkd6SQp6dFRRMjI+UyVDe2dJUTt5dn0rdjlJ
dXFxeFZYWnluVTE2O35xK05abSl9R1I/SzNIb3tjfkA5I0ZMX3MzWXArPFkKemJkR05CSj1Ne0t1
MSVWbUR4YWJnUjFfKmxSMHxSdnFhKDBYYD04UWU4PXo3fGhlRzl1WUMpb0R2PE5LS3stPGVsCnpI
YkFBYk5mYXRhUjB8U357fEdHVmUqfXVFcXphWUJmOC1yZHpNNVBgPWxeRGBzKyVmSmRAd1VyS0w0
a2FEaWtWNQp6UjB8VE5EaE1wcXskREtDOEk5PXVGaEVYe2ombDdsS3UoR2s8ci1hS2ZTZkd2M0lw
VjFZMWFVKEhBVUpyMEJjUT0KemNaSWQ0JURjaV5RPjkmbHUrfXRiKkM0RGxFdFY/eyhkSGdpWkJl
QDVZaTZvR0g8P0JnbHF3PXhrbXdLe2Z1LTkyCnpedHM2PlJGMD8/QnViTUpTZ007VUxBMyFZUDU0
QmlhendRdChOUHJ3T1NTKUxzSW1ibl4qOylnQmRQXzc8fFpTcwp6UlFzUCFzJShIdFRQZ35iQmRQ
XzdfTm9YaCkmOGcxQnNNXmVoOz5GSWBYQ0lEKTgoVUY3JEIjfGlnRkZFQGkwS24KemthbXJTMGRq
YENFM0NEKnllcTc9eDNwXnIqNGp0ZkgzVnp6Qmt1fXA/Sk1zSll3YTckbF9HamBrMUVlaXB5MHl7
CnpScnhZSDlabEsqbTl8dEFEbzBjYzUoT1UhRVkraClubnBgZDVkdDx5JUh3fHA5YVdqJTdTO1p6
WD4/fCQkX0dfNgp6O1MrXyo1IUhmM1glWWZVd2Z8fVN3KmV8YHNWRyNBczFfc3xzdHtQSntaSHJy
SGI3azwqNkh2aWltJms9PTQpdFMKekVjcU5gRS1yK1NOQW8zZzRMYE5pMFZ7YzJzT0B9VntvZGw7
eHRYYHNwOGYycEdiTVctJH5tM1d6dmFOSD81eExZCno4IW5xdDwqTSNvQGJib19eKiM1elMkMVUy
bER5UjF4eXZkeGx7UmZIU2h7P0YkYThlXiFePUtSK3hsODRBPithRgp6dHNCR0J3ZyFlWVlGbTx6
b2djQzh6VihDQmNmTjRyeVQ8fmQhNUloWipLSyFpLWQ8T31aU31zWjc5Nl9udkJSYU8KellDbWZK
IS11VX5ydGhwd3MlPmpLXis7Uld4VipOUEs1U2ROXnNDYyVBNnQ3ZEAjRFB5bzhOdE8tMFBwKjtA
eTQyCno3fCoySVFMfEc9b3QlPW5IfUomeW5lKko9VW1hWD8+WVhKPyYqbCU8OTJvejQoXjNDcjg9
QXR1YDBDS25SfVF7Ngp6XmlTSSFzbmhPVXZIdj8rUz82d0MqP1JOMXBTLTx4JiM5P0hFO0toQGB8
Mk5TSHEwMTNZZ3FSRjwjfDg5PXx7aSoKelJxcCFGPiUtUz9OPXNUUVVffSNvVyhhLXpYVnRLbDVm
QGsyRXpnPTtQK2hsY0ArJHVlaGQoKmM8YStXS2hxdFg4Cno4T2k/TWJ4cD5fNFomfGxSKmp8eXpq
Y0V+UHJjVDhAN2xVPW8+K1k5d2FUOUomej8wZFd5cE4+clMjMUEten13ZQp6ZVJyOHkkfDIqVzg0
QT53bEpiSWVJaTxXe1R9fk08MmR2OF88Sz0qTHh3YFM5bFJMNVBmdCZJdkdZeSU1c1EjbnMKemtW
ekE7WkdjTVFFKCg8K3NzKU11TkUoNXErVyN+RyF2PzV5JThXd2doLXlLaTNEXmlNKSY4ZWJXKmVa
PU5RRlk+CnpoLXlLaWkza1dSKSY1XlZyPmJWRXMhKFlId3diQj1BN0luQEtTfnU1RWw5TGVNUFJB
K0thS3c9UkYwPz9COyZNcAp6MlRZNklRVkF8aGl7MEhNeFotdDExQThZLWkjOy00UE04KlpxYFk4
VlVNVmtGbXNpSGkxPyE1RkBwOGVzOy10Sl8KelR8T3g8U2VMSUdGRks0ZGNhckxFak9NN0JuSk5l
RmxudFgkSWlneVM9JVpje1NnUVJgKl5tdVRYLWg/K2F6d1F0CnpRUjBya1F0Zn5HS1EzKjZOKkNO
d3Myb3UoTll3dWJFWTwjfUB0PmR+MVo8RiQ9WjRYeWlvN2VUe1pCRWI0TiZRVgp6OHchO3BzcylM
ejRJIXxVYChMYXg4aUtvRlNuUVZ4YU5SSTBfSURIRDhvZ2p4OUZYI1lWUjFtbCVMRDVRJTZOSFQK
elR8cEA/U1hhRTE3cHlCQCM+KSVxM2R3a1JWT15uYXllTSF0Y2JzYSYoRmB7O1F9dVpSYmNxfEtp
aWoyQEleYWZOCnpzckVtbTcke1ZaczFfdTs7KWNMZC1CYztZdjtpdnBGJE1+aUJkUF83JmJTZCtz
e0shZ3N5MEJTWXJgbTFqO0l6Uwp6K0VmdShze0sjZHVua2FZcShZJWBNNzFFJVVLTjMqK1chP3xv
elpPQTN2PGxgc2pMeV5uaEQpeGpSdm5jbX1AND0KemMqVmg3R2Z+UDUqNDBERzMpYTtgIz4pcm0+
TTcmcGdMVTxrQGA4MnNsSmJJZV8zRmxwdlNEK19zV3UhOXhNcnM2CnoqKVYtI0FXOVZ4RWwzbiZB
aDE7WHA4fElqRG8wY2M2MitKWkVZKGV3Y0IoYyZySF40b3A+am1FQWtuNlp6KjZtaAp6YG52JWVw
aSt2N0xnazJSTDg1RjNmdS05Mnc1aSR2bUNwWkJzMm91KE5SK3JFdXZHaD5jQihjJkgzc2Z9NyMx
aFYKejFoez99N0FKS1I7RUxCRDRmcCpwRUtaajRmPzt2OGo4XzJHbF9LTDZmT1Z4dmRCTTY7ck16
SFdzV00oY1NYWXtpCnpSfWp7Zil7UGVoPyZna0R7K2x1eWFtYFNiS21MU0h4TlUkK2ZqYko3QmRQ
Xzc1X2JmYT5haWdPP2x3VEJvaGt+SQp6QmRQXzc1X2JmYVlYOCV3WTZEYVgrKT0wO1E3dVQ2NEkh
e3BgPTk8OCVMYj92eFQ4PXhxRlJ2WHRPfGpwK1cmTT8KeldkbF9EXmItXitNXnA8XndSbW5jMXJO
ZnNJOSkyaWc9dWttSHdtdTZEO31vQjg4VGsrRmZHb0lAYDgyc21oeXNpCnpeX0tBcCFNZ2ckYyFn
a0hlV2JpI1U0NW16VXxvSD9AdUl9dCsofFN4bjMqVW1zIShaY0s7OG83WWVSSXpqWiNISwp6M2xo
eTZLd3pvJUtWP0hHUkYwPz9Cc3pealY1eDRaMWwwenApYytfe2o7SXpTK0VmdShze0sjZHVua2JA
KCteUm8Kejk4b1B1RyZjLV5yUH19Vy09XjlDbUJ4UCpEbzBjY1FwZipBbkpBV3NfYl57VzN1RFJX
Nzt8d1VnZ2x4ciE0UHlGCno4bkJXRkx2N35ePi1RRyMmZHQyN19VdmEqb2hqTSNQfG9SYHt3KVZx
V29KRUoraT07R0RweiZ5ZnxvWll0PyMrIwp6JjlXbkZtZ0pAOCZSdGZxc2tFdT88aSs8TntxNWR5
S1ZJXntRKEohalYqMiEpUDFEWU5HV1cmNU9jXnElQEw9blkKejZBbkNHIUFJM0BuQUFHNFg4cHsm
MkJoUmkyMG5QLWxVZVdJYUJ0KyF7SnZsSUR8djN0XmUyS1hDI1V9LT1nN0FBCnpjVkQwUCNEUiVk
SmV1e3ViNUQoI0Zuc3l3ZzJjdm17eUs4QFJiUE1lVmZQMHxyPTVMdSVgJGY3XypicXVRb081cgp6
X19tcEU8JkRqYm9jc09wVVJPV2RjJjA5TmU4PFpabXUjK2xZflMrZGtCTXJkMFhafG93OE9KJVNq
Jml1dEc3MnkKeipzLXVZQmR9cTZxX0hWNmA9dlhFe2N6YUVqbUpMXns7SHQoaV5wMUB6Q0xzR0dK
bnpFVXU1amcoWDdWYEVuJXJ+CnpyR155dWhPOFAqUGpSPkp0OGd+dnc0T1UkJnhZc3M4fVdFaldh
Sy0pT210N15tJCZPTHtnZHVWSXNSbipmJkF0ewp6QU05PF5fSSVMJXdZbj9jY3locGU8OVpEX0A4
eDI+ZGQ+XmhKTXYpUnhgdEMxMX1gdXlzdXx1fXY4ViVpTiE9YEoKekslXzQhP2BpLWM3SW4oSSFk
aml1dGAxbk1PV01AfFlqd3FQcjhyJHxXOGtKYm9ZSlFXMUVCaGtzISVEVE00QHMtCnp3SUVUUGo9
LVcjNkBqOEU1bVoleiRudGJLNFN9TDhzY3h6P2UtKEtQUkgwSXdoQz0wdFlDKW9xMCllSHZzUztF
aAp6cGkpTU9MZ2syUkw4ODRYMCF5fDNZMzcjPVAtJi0lTGdrMlJMODRSemZ1LTkyMyZsRjRAd0B7
RCRacSo0N1k0fWcKelNXJkxRKWQ+UytrRj17MzJGTTxIUzZIaTgtV0FzQm0zRFEoVEh+WiRVOWk/
VGN+QEFnUHU+O1E+V2skezV4dSFiCnpSYT14czZFam93NHxTKT5TdHdPUnY+O0pMa0hBdnh7fGVm
dm55RChNJEBDYyRXfmo7K0s1M30zMFY/Zk9RSyVlSQp6RWwzbzZBaDEtMkQqN31lOD0lcmlnK2s/
c1lDKXBPKiQ2RHZ7LV5RWjJCPnMzMzVDaUwpcStHNTl9IXJwe2w3QDgKekdueXY1VmI8eEZQOTVE
YT4tNUo7OWdWSXE+a1A9ZCFtS2tPP2RwTkcyQmxwK3UtMmZ3RTM3cU0tV0Fwd0ZZVzR1Cnp3VDdm
IXl8QzYkRUxSRlglc3J+d3FCTlNBblgwR0JiZEhXdk1NTWh7byVrVElSUXNRe1IxXypsUjB8U2FP
K3NMKQp6Wm1JOzsyQjxXUDI4R0hJKXErSDZHNkdBcnwwJHhnMFY+VStNV0ojO3dJST5RS3FJaEpg
PTVeZ1pHY01TS01JdjIKenNzKU1xQUF6T1h8Q05qZDl4NXZAKkZSJnN3NSluJlNvaXFEO3ZXdng/
QGFzQThzXzxNRXpfOShGTTJjbEFZfH0hCnplKU81eEJQVX4/dVRAblIlQCk3Qnk9ciM1cn10bDtt
KTdRS0clVlkwMGV0P0E/LWotMkQqZnxlYFZeTiZzeWJKdQp6dX1rWjFVemh2b3ZoYmBUQHc/MmpG
c1BtRjxqbmFUT1d4YlE8anxTblFvKlhAN0FjPU09aDk+U2QhaElfb0xOdlQKelIrVHhmWGltN2FT
YndWZitodyFubCF5bjNrK1AwOz4oM1JwRTVhUm1wS3hXZHsoSnFWem5iOEAlRkBoXiRMPkkrCno+
ZHNRfV9fanpAcjJSZVYoQWpzKDxfXl9ndVlQTjxwIzcxOT43UmgzemhlRDF1czlPZD50QGIkQHh8
MzZLYmQqTgp6diVoUz15QiQ1JmNyPUlqTU92aCk5Z3FHQGVOeylyYk0/bjdoMjskV2Z3PWpfVUhf
ZkZkaX1lMj5zVWhQV0J0ak8KemJnfStfPkUxNTd1WnltKT4oY1hzVUcoQGFkTUsocFVscCVJenUw
bDxDU0lSNU4hJXhRZXk3SkJKY3Q4dl8jZktfCnoqbn4qY2pQbE9MNzVmV2syNGZrb0Y/TC1NVzg7
M3EqentXJW59M1MyaFh5aEJPYnVoTjJOLSpBQVktM3pWNEJtPAp6dzJXSnNjSV5lR2pUPGxhTm5n
WW1EKWp4QjcpYF93MSNrTV5zX1BCPm9VaX14V153MkcxSj16QHB8OTZAcSs+X3gKem4lVnRPRil5
MXIjQH5reDcxZ3VDI3FBRUFVbll5NiVTfVV0RTcmPHlCdnAzfDY8dUdnI0JreDwqRXc4bDJFKWJB
CnppbUdRXitpQmYob2dMRTZxV1c+LXA/PXFJbipZWWhWPX44LWl9QzVNNGg0UXFZaWtxSUQ2IVR0
VDB1VCpgPE0rSgp6U2Ricmx2fktKS1NINnlsOWk0dUN3KT9NK1c2S307WGAxN2hIdmgpKXlTRGQ7
VGVDKUV1MGNtMSVvSXoqYXAmamwKempEPGVLSTM4V25gKmF6UF5jd1ZnPWVYbiQxR3swMjVYLVA4
YWxiKl9OQm49PndYdmVrSmFOell8Rn47elFLIzc3Cnp2OG0kei0rWWgzSzg9WmVTNlZxXip9V0xN
c2ZlKkA7Jl5EQHZ5NDM7X0dfRCRoPVp9P2pPYGN1d0lsYjRFJXE0Rwp6UXBKOTQkWDJGKD53PFhR
YFpuRXVoJGJIRSQ1aT9ASnlQOERLTlh4Z1p7RG5NITRKbSU7TmpPK3lxeCNfdjVWJDMKelB1KHh7
WUB5dkdvX1FzXmhCP0goTXFgRG5vWHJ1LTZvXk1SdnIwQ0xSa0k+aSNYOXlsbmZmfSF2cl9jdVB1
ZVl4Ck1GVTNtMjs7IUhSMzZUZ1I4VU8kUQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3JlZC1ncmVlbi5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQt
Z3JlZW4ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDVhYzliYTFiYjg0NDRi
MDQ5NWIzNDY1NGYwZWI0YmQ0M2I1YTQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFs
IDE0NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXmo2bHI5ITJ+NDU5eEUxcjFkNDspb2Z5YGds
WChmYHUldFdzSXg7WTkKej9DMVdJJE9ffnVCenB3O0dCOHhCRiklYz1GZmpaQTNOXmY3VT8/P1VW
MGV8bHorZzNsZmtDYHImYU9aa3BhaD8lCmxpKGBtSGM9Q18pM0ByYTg4OTRxa3t4YGR7TElObm07
T1hrO3ZkJEA/Mj4/JXBCNWVRdwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL3JlZC1ncmVlbi50aGVvcmEub2d2IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVk
LWdyZWVuLnRoZW9yYS5vZ3YKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1NDM5MTVh
MTA4MGM4YmFjNWRlZDhiMTY1NTRiYWVjMjkwZDFjODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmxpdGVyYWwgMTAyOTIKemNtZUc/Y3w2bz5fdXNMT0hPdHQ9M3sjQXkzQFhISk94N3RIIT5DY0oh
TmlifkxBaDtYNE17Y0dzcUFJS2pTI0p0CnppfGprNGpTN2BnbSYmfkAqWUVreD13OTlUe0AoWmZe
dUItbktFTHlNSm0pIypKa0w0TEluVndibnx5cztBcHZMcwp6c2B1fjx6WjVpRk0tWC1+UyQrKDw0
PHpfaTREaj5DI05XYDFzelJILShKayVFbXlPbGp4UUViVmh4anF9MkdhIXYKejVSZnAwZ2RqMm12
MC1fcjVkO2FvO01HSnhraHZiPkZJdioqSlE8WGReXiQ8bEshb2lMX0Z9U05tSF8pWTFrRDQwCnot
WFZDbjJFbnQ+dU1UcTlIPXEoS0ZCczRqQWRgVn1VVkhhMkFPcGFIeTlXRFo2YmRvYEZhRntyJW1h
T2QqNi1hRAp6IXFeakg9b1RLdHV0MHx+ZUhlUkpeOEp0IVUjdClBQiYtN041KTgxfSNxYyVXLXxD
fT5gWWB2ZDxhO0N+eyV6O3MKejk+UTgpSTZCTm9ONU83Pmc7TnB5OV9Sejw3R3t2JmljUGAzPS1v
XiZKe09IJmZrenR+OEpRY0k4NV5UQC1UWHBYCnpkbDxXWT1zMzZ3K1RoUkRkSHA2RVRaK31MVTRj
T2lVdEBrTkwhJVlPdE15cjdkK0A4eGpaSE5gSFA9bTQlNmkpIQp6bl9Mfk5UXisyPFNEVHV6R1JG
SERuZlJFfipCQmN8QHwpZjIpU2F2QzN7YjhyYnxsSEx2TTJDfmw7aT5vNX0pV0wKejZPQk88ZkVx
cj8yOX4re2FfKVJ+bS1+RmNlQ3pIQno0dn5YKztydH1TUHotcyFfQmkhPn5hLTVQKGo2PWlOezgm
CnpBUC1xQ08lbG5zWDVWbnZMeH5BX1ZFe3YyR0ZHNlQ1TkQ+S0k1TklFK344eXJlUHY1ak5fQ2ds
UHdvai0jMFg9Swp6WlNJb0VHWns1UTQ1UEg7JVAxTFU5MCR5KVZ+ekU5TkJ2RWVDN1FmKTM4KEN8
V0J7WT8mUTFkcUdBZT5fYFIjdVMKemIjPWRCdGdYcENKITcmTTdaPHxsQz9IKjIkWVRndUppc21w
U3ZZcmIhU0U7LTdlMipmQGlNNWM5QVNPQnliaVItCnp4WVhCUTlfPEJXZVNPXiswIzdnUj9YOCFe
MThRdW4qRSp1U3o4N0dTMHxXe0hVPDYmeE1NT3JLXndpYWo7cSZ0dwp6Z0Z5U3BzQU8wNm1AS2Ay
UmpBKz8jPj0oOVpZWlFUKGotSiFAdDhzKk5AelQ2ZV9FX3RPdyRKKTV4WCRfZStuM2sKeiVqc01J
Nzs4Rj1hJFY+PUdNQXQ4U3BQSlcjbjVNbk00fm11SSNMVjleaGh+P2h9SlZPXns+SE43OENobF8z
RzdsCnpqNyEwQzcpUnZDMDxfeHI5WmRhZSEyZFpDLSZld2IwUEtyNlVBfTxvYEJaJWBqfHMqS21J
MmhlZlg0WEwqY2d1cQp6MjJmVTMpX1B4VjFBPm5QRmchez8lTFFmJVhpOzRGaH5tUGREM3NHTWxT
MUwtRXVkVGswJTBBfEFQflZ2UTQyX2oKeiRCWXNaTEk0PitMSV4kKjUjVWlHJE9WTGk0c0c4U2Eo
TWZMU0w7QG1Ufl4odGIwfGl3ZW8rMmthRUktK3EmME8lCnojXnIybyl8WWNXNHBLfXolOWAjKmlg
fVZ6eT53JCo3cnA5fFIzZXZoPEowfm50IXZ8JDhKQD8+Zzt0KW5rRyh8Ugp6P1FgUXVAVSspdmBe
czx+dXtvLVBiOzNrM0t4Tkk1Q2Rxd0tCYkhPT243WHpoQDRlYVU2NWlnQm80eHYzWEs5Zn0Kej88
Qj5oUz5XWitFPzA4RUVmcXRJe2ZDR2pRTk5VVFQtUFF7bE1tWFQ0YkJTT2V8Zlg4VUx4YHFjSyow
K04kYD55CnpvMyZYeHJaRyU0JCk9UT9IT3sxRzxoaXtUb2NDQGkkWFBTemwjO3RFKStFUyFNaWZN
fUp+PyhoXnpwbjteVVBoRwp6PSN7JDRza0tRND8lcXEtWkFvP35aMkRUTzxfOExFQDJQSiZxXlRw
KypJSWVOYU1hfUdiNDdPezVBVzYjU1JfYGUKemFwUlQ5ZmJHMkMtUU56MilrZVNpeE9IYn4oREdF
TGtTNF4wXkJieEk4I19HcDtITEJQRz1IaENEfEVTbUg0XiQjCno+elh2fGp8NmMhJC09IzdlU1hn
MDV0RE1md1k2fT57JWozUD1HZWFKLUlefX5aRlB9bEt9fU9NK213Xm85cnlRUgp6UnUzRmJQaSlM
eF90Qj9YSEchLWhPYH4wI2VlRjFMV0YqP0FfVlJOTnBFK2xWXmp9WVJoYm1BRU5fT1pUZSMwSiMK
enBDMndkVjVmRDgoVEk5NXZTTXhqZnQ/YWx3MlNQUThmdTVHPHZRemNKcl43bl9iJGJ6JjtHWH1K
TlhIdnVDbHNnCnp2bHNSU0NRU0ItYCFvSDUjKzlBKU4zZ1RvNjQhTDcqMmFEfmxYQUN0UlF2diU9
c3A0OCRfK1lhLTdjOHVeY2QxPgp6bWFKVlp6V2Y3Q0Q/c1k/cTwrKGBvI08qUGBxYSN5T2VwcWZm
SWZhT2w3SUZmVX1ReWhnRnpfXkZ7YllvZjBKVisKekxBeU9oKWteeiRAN205Mm9CYSRGOXoxMEda
dyQxclhxOSg5UEJWe2d7dXR3eVNabVFHfDlPd0pZOz09VSlkJGJECno8KD5zPFg8YyZSaWtlNzBp
cnBLRF4mZkRTclFZIV5FQXJOfWY7dj5tX2psfHspQmhiK2xrTEAraHhMaT5kdEtWSAp6PUlwMUBr
QW8/WmFZNklAKCNVUmwxI0E3cDNQK3MkQ2RSVlkpY3NLVGBNdFg1N1dlU3oqQiN9ZjZmTHE7UTV3
eE8Kej1CVH1CP1NhYjFUbFBjeGN3ZnpEViQqeGNHKjhsZ3YxeDZnJlo7eT08Q3l4UngxP2lLI3py
MHxaUz92YkxEa1hQCnpuQ3xeZFdPfDhMVyQyNiZFM09TdWVUQkpWZjd1cz83dVVpND1Ke2FKQ0hX
ZEZ6QSRga1hUcU0qPDRnbGY/elFGWAp6IzwqUVlXWjh8M0N0ZmApQ1VgOTc3MFQoP2dlSy0lM3kl
Kldodk1gb3FkKCUrezlCN2M9dHNsVWFeMCh9ZSloWWoKenU+cVltVW57eX4pa0NXWjlqdyNFU2Rx
fTxJTz1LRWBVYFpeaWk0VnljUmUmXmVycl9neFZtbnd7WkEmeF58JCVHCnprWGZGX3c4fElBT2RQ
SEJ4RnRCTGN7TilLQl9+JiV3Y305M3NKK3NtYVQ8ZlA8d197PlBgZngpXkk5eHxySiopTgp6Vjsr
enozTXxSQUtkK1AyWW4yIURAZy1IZ0xKRFNgWXlTT2hTaUllbHJTeWpUOy1oPUtDNyswUHxLPmBy
bDYtbikKek04dy1NRTVJUGI7I05ofEJYI0FgMWdxdn1eSlV9MHdySFEjZ0MtbHRiQ1pAe09RYHNI
b3JibSpYSE19JVBwUSZICno3MU5JVStxTzhaXkhhRiVOPFJMeSpqJHRJRFAqc2kwPiRFWF5ufil2
NTAja3crZFkhS0F8bk0oRF44RVVVQCN1LQp6ITlBRmJ4czZhSEtTWj4+Sj57ZXk3fTh+X2RFTUta
O3EmSWxpPERvejk5OXFOSjY+c3YrZ2NPKXswTG9EfE1UWFoKej1UazBTdzxiUi1HIWhOUzhAK25y
UVFVQEIkPDhXTC18cUNXYEQzXk55TmRGZ0I9VEY/Y2k4UnEkMSZCI25aN0gzCnp1UVBZUDdXdyRu
ZnBSNzlIbVZ0UkM4O2ozSUp3aUxgUHFqITdaJnQ+PUghc08tSjg7dTZyQUUwP2VoKllCXylZVQp6
WE47THlmYFIrNHxETHo+IVVsVl94R3YoMDt+Z3FxJSZiN2F0TT9RTDZwUUk1cnNNcHRGK1YkZk14
Q1VhPTNmLU0KejgrMF9TQG45bHRtYlROemZpeDI2e2ljMHJLKEM7dHtrREorP0FSR293O2dZZk9i
dHVvdCFvMWw/dTJKazlxYiVQCnpPcGAhWC1rZD1ZV19DMkpaUktsP19zdmZabVRaUV5Ad2VaN3R9
RHYqZX1oMUdeejltSFBuRmY0Wm0zLU9xdUhsQAp6d0xMJCM7KT8+U1F0WlQ1K1A3dUtFJX5BM143
KlMqNzJoNjNZNDVXPFp5cnlAQX56a2F0U0VvJVFYPylITkhndEwKemx3WDxwTSYjK2NzUis9X0Ne
dk9ZQylRN1Q2WFQ7QypKaEpwRGdFJl9xP31vRE96WkhNWHtzWmBoc1lZTTx8PVFtCnpYOztrbldZ
WD59eThSY0BnYHIzYEpRNCs2bWZASU4mejN5QSUjYjxYdH11LSY3Q2M1aURMKyRJd2AxdkpMLUow
Qwp6V2xWZl4/UmNXb3F3QWt0JCF7ano+I1Zlb3I9KjxRTDtRU0dUU1BtTXY3QzhzdndVd0lqaXk4
e3pObWV1PTd3PWIKelFTZ2JYN0JUaEdKaSpSS0NudypxUHFmK2hmOD9JTmVNJTtJemlkLU4hP1Ix
eDhQeCp+eVNCe2x3WjVARWEoSTQhCnpPSDR7NndiOCgxUzBIem5RbngrTTAmT3FPQ0FubD5mMmsj
NHVjJVBGT3JuVD5ebDlNNmFfMEZxI3FQMEpzfXZ+Zwp6TUIwfDhNX1JZVkNwIW1UbnZkTzUqPlA9
MT5IUTEmUipafmdtNk5xcCpISWxLdFVRPiR3QlZOTzsmYkJLd253e2AKent3UkloKitIcmI/cVll
dkMkMX4+T0xzJEQ+NFdrWFpyOVVqU0M9SilILTA3OTx6alRmcX1hSGVhYmorZD0zRy1rCno+K2hq
NWM4RjklNlI9MW1ycWtaZDJVaz9CTExPcDJsKFNYNTg4bFY/cUx0WUhUTkpQSjZINDhXcDZsVGJK
WlZfOQp6aHgwaUc2P0xFJDZVUHAra1BQeFl5P2JoVTxGQ1decE12dm1aX3AzZDxKJGVnU3VZRVho
QTVBQVl1eWB1a251fnwKeiRxKGM5TV5mRXFzQlJ+b1ZxPilzYjxncWo9V01WMVJCUTZvUX1jQ08o
aWVsJFhXVXsxTzM/WD4yKVZaI2AlTUJGCnpaRlhrc3BSX2dJeGJARVMtY3JxSjNHZGojbURfSVQo
NikoWSNrNUspQ2wpYT9zdypDXjZGc1crZTk3Y3c4YFlwaAp6KD96THRqMWM2b0pzQ0xabkJnN3NG
bj88Z2puKzJZfEV0fVlQVCZfYkcyfT9IUUFWbk1yJTdQeGZLNUB9bkw4MmgKei1pMTlxUHJSPHAt
ZWI1PCNqRD9WbXJfPGgkVzJFbkI1SVRTVz5TRyp4Q1VafEczUSh2a3BDcXkkVCNgTV5gUUtWCnpj
VnpPaFZ6eHQ8WilEZ145JHhwY1kzS2RUbVl9V0dtemlhNURnUntqeklgdmpGRUlHTVJGMm5TJTcl
Uz9EfUJYKwp6ezcyU09QK3s/dCQoe0ZATF82e3lPbHlxSHxFckhBZ2ZRUEtqPTBfKDBZNHwlU3tz
I3JYN2ArO0xYWnB1PCY+O1IKekokVUVsK0BwZ0w3d3U2ODxLV1dNNjhvTVg8N3o9XmBzTX1JZ1lB
SUZMWXcrMUsjJmxgI3Z3QzxNfk4/USZTfEpqCnokaHhUTndaTnNBYyV4Kk03Xns+S2sxNVFWMmdI
fEZsTnZ9Vm5sSj5PX3lpOy04Ynh1eSNDKitnaDNRQGl4VDE4Zwp6SHJ4ZXVSdExUWDlWS24/eXg8
SShEMjZLX2xrfCFVa3xgdl5BcklFe1AwQCN9SGBjJFJxaCpMZCQ9OGhNMk85SlIKekZueEdUU1Rr
UUEtel94JVA0OVJiKW4yYU4qe2swOWkrWj4wRzhlZ0p5fmMrOWx2Uz1LUiNaM0pLe3g3VnM7QjR2
Cnp6YD9NPCFQTE5FY1Y1OWdrWDlYZHxKJWZLOWdUbzt3OVByJUlGMSZNXlZFelo2ZGhZNDBRdFpu
JDxhLUNZTEBpTwp6QSEhK3R2bnhFK0gkTC1YTSZ8UzRiSzwtelVfSj0oLWsrbGY1KylCTWBHI3xO
ZEZCT1hYM0BXITIhNDA7QU9lVkcKeiVSWTV9dkpifEpAKjtjKHt6TzJhVXxXST4+eytIUUVLQjxr
bzBnRGB0O3VlIVJvZilLNGcmbFkwZkdxZjJEWXgyCnpFb1VzZDx5VXEwbnw4YE94dEtjant+TzVf
Nn5VVj96IUEqWlU4KCtUcXslNWRGRHpgSlJ5aH5CVVhwSktSRVchYwp6aFIqRUNvYjVFMSZLJUR2
TXJITmEkR2NfZSlFMXtfdkFXREJ2dityP0prNGZ4O28zNXFheCFge1N6VjVqblQ3bVAKenhMbFRL
WD5sTG1zWjNAfEg+PVA9SiFXNX5YenslKnBlP05AYksrdHgzWTZsTHZ2akl6LVQzLT1OP0JkUytx
MWpzCnomQnM4Q18+cnVEU317KmhgcHFZTXg+RjQxMGxOI0M3O3BMenpfYCl4RG1SfnZMPzJFUEBq
X3ZXRmxSSkVQRC1FMgp6IVFhNlpYcS1zMEJOYSFIREpuWEpBKDFASyhHVjBadnY/TGBWd0p0KEZj
LTNlI3F9OzBhMSEqfGJneSg2dztSQSYKek5uQEFBKWE2RSpeXio5P0s5YSR6TDNpJkhSVEprfVcj
JGU2ZztoZnlgaHtTRTt8bHBKM0pmYVI9YWpYRzNVN1ZICnpyVSEjbmtyT0d0YztNYip5SmVVNUU9
dHxNc0RzSk9wVT1GPk94K3c3Tkp8VTdlPktNUVpzX0NUITtnbmc+YDtuagp6JntEcmllQWpefDVX
Smp0JVE0dzI1I04jPjx4Q1hnNUFlZHV2RVBTa0lqIUQkOG9Rd2E+KHBuXkliKnRNKjBmak4KejdF
QmpjMTx6aUUoMClhUj51UyZiUmc4V3JWPSM8eXViUSMtPlMwPi07bTMxfShzMWJGbD4/VEltVStA
c2hpX0wtCnooaTV7SlpBVDg0IyN6bz1JbUg/MFVLSHAzVyMjMWZDMHN+UHhEYn54OEpEQ1JwVVJC
Uzxrc2Z4WlkhSSpfQWs+UAp6RCtlcVhrWmRWZitpekEqOWJTRHNTVWVSNVBQMlI7dCRNLWs1TXJ5
ZWNtTj0lP3YmJlBjcV9yV1B6KG50c3xHMkMKelI1dlQ/emspJHtYQFM2fEsjJlJxSEM4X0IzK19J
VjxEaDM+SE48ZmwkMk9efUNnZW9BdiFvUEU7fmJBO3l1PmxmCnpAdXxgbE1jRChZdH5lRXo4KjRZ
bEV6VktPcUtKWU1GK19yU2ktZEFqQW42dGF3cHs/YjtwP3xUJDl8fUQ3SFhkYgp6IXdMaFQmJE1w
RmxyVT9fQzt6aD8+bStFfTRXfFYpenxiWlgwd2d8TkgpQn5SWiZmRjZgPTQzaXdec2opRSNNSV8K
eilHZmJZM3dRKCF7Zy1WMEh+UmJrSXtyXmIwOEJmQ0gyNn5fPTM/eygqayVhbTd9bEREY0krYF9g
X090IXtadSF+CnpxaUtxIVFrZiRDe05vKnQyNE15V09yYFJXciVhYippYTE1LWUqTk1PTDEtb3JX
UXc+NUlseko8PiN1N0Z3Q2RSPwp6cE5EamJXKHJ2TE45eiglXnZ1NXhFRXxIQDJ2TFgpJCtyPnk9
dV9Tbk1GPXdFYysoKGcpUXJQR0t4X3NyNTFqVT8Kemg0RVR7dWpiJDl7PjMxSXRxVmNOZldhWDNj
N1leczhpOFhWdjZCWE0zaV8hTVB6Ym9QME5ndEAoYEFhSHh+NHdNCnpBUUBxM2wjRldjR2oofXBt
UmlXbnlLfnhMTCUrPncxfllScVc0VVNQPl8qd1YkP3podj9wZmVCR2EtKkYwRkQ8Qgp6YzQwV3x0
TmxtQChxejlvQm5YWCM+Yy00YyRIVmlVaHYpZmFhQCtQOXc5bmVPcHF5TigpUmQ9d3Nndjx9eHx1
fj4KenR7eVBkJXshdX5SOFBPbTFAXlRTbWZaYHJKKGJRKWhVZSlmNmN1eUpCd1NGbztOay18QExe
JH42dEs4MnVNdUQjCnpWMGtMVkBsfT5oMmBwNGZAbmtjKFRyTjBvMWwmTXs7WlROMzQmMDxuemEx
SjVeJkMhTiZfcVVvdzU8YUN0fXxNUAp6Zlk1YkZpYEkpM05Id1JMdy04RlRMSk51bWIwTHZWIVdU
KzwlTXJ6TT1eS2QtNyN8OG40XzdFbylMV0s5djM0amQKenBjcz0zM3NXaD1tPXE0RjcrcFoyO0Rq
T2VRWncrazFzTX10QV9VRVYrbnpVa1hpczheQj5ZNCtPQWJAMDN+bn5YCnpDfng/VmxnejxgaTtn
cXRNTE9XPTYjOEBrLVdpR29lRUQoMjZeNEsrO0JITlB0e3d2SkE3QCQ4TDxCX09NPn1EKwp6dnlx
JHxGV2RASC02JVg8PVg0VF5uMnd5SEBOPCojTU89U1EwZ3FHNntVZV5SZkVUQT0meEwzJVl0UXE4
IV5AUmAKekZPX2M4O1RaVVclakhmclJLc0IlNHlFNCpLP0c1JTEwZSQ7eWFPTksxYC1nb0RGfWt9
RjRJRyEmKllXWWZyQ3h9CnpKfTt5M05GMkN4LTlaPH41Rkt6YXJAbyMzMih9d3ckT00jdjNzciFX
SF5ATHFabjZYPmRBJEU+PF9AOTVWZyYxKQp6cW9wb3NYUU5JQ0UyPnQ9S31iPEJxU2tUdj1VOHhg
aTs/bH1hZGFyR1FyM0BGanZ8dnRyQiYmY2xqX2tGNH1aaHYKelhYY2FXZiZxXzJ7UEpQb05ueHRq
QCR3bylxOF9lbCRnOEFQSWZkZUhTZ2pvSnk2SXZ2WCM+N2xJbCFvUzA8SnZkCnphVTVAUFJjPUVm
elMkI013eil+c3lRRkdaRF5hJGhzbjRVZE8yaip7eXRlQURlYGw/LWM0Qz1mbTN1Jl5GcUNkLQp6
MWAoRnNIRVNnRyhaPjlPeiVHR2NLTEMjfkZpRWBPeGQ0VjdTeGlZWjJPUj9zcmAlKTtnKlNWXlpJ
RGRGNiY1N28KekN3S3oqZSMqbyNJP1ExS3hUei1oUUtxdDRwYXQqWnh+eTtqX2A/QGFORittYE4q
QWJ0PnckY3MxdDV6SGxOVlptCnpXYEteNzBYQkhgM1g7RnhmZFQxZ1Nkfm9DPHFNS0k5ellGRzcw
N0BnM1RaKD1BI0RLcVU+aUlzRkx6cllhZkpoTAp6R3JyVSMwMGZ3IyRGRW04OzFLfVNeWG9CN2Zn
dXR1Z3w4bEx5QWdzQWZpMFYmPXlnRzV2cXBycnhYU1Z6LXJWem4KekFqJGs+aWxkPXpxKmtHRktg
TD5YMCpnI1omfUIoZU57V2VIPW1+NX0wek51OSVGUzNiaDA8WHlqJHYlWGlJaz0mCnpUUXNOVnJ+
QipXZFB7O20pKjZCJFBLZ1BMPWhQOElBYXlqPjBSaERiJDRiajs1ZlRMaXBGWmdtZnpaZylEcTZE
VAp6JUdsKkBnMEBXfChCKyFDUSVmS2ZSVyt1UFFWKVlJYWpqO0dmVjQmdVdzVkUjcTdrQXg1OG5R
KWJ9bEdOSnx1eSgKemw9cSReMnR3ZU5oZ0JvaypxRX1ebXVoSURGPFJRI1d4T3ZFMyU0YytnMTw8
PnI7cWBYSUVBb1d1RVJmKWM4V2xuCno1YWNLPkJQLWpmWmh4I3IpRkpLOyhsTmVPajA4Pzl1JDJR
cXE5TzM+NHFSZng4R2A/X3doJnh+MHNkSlYqOEJjcAp6UXtLWGw8KTlLeiNRUit2bVcyenc9b0Zs
dj9fRFAjRn0laW5QaktWNUAhSXcpJWpYUUl3KiktNlN7dWtwb2l0ZTAKenNoP2R2ZVEhOHFZMHZ4
VnRxKDRUelNlKEdVNmE0aFBXOCEmQ2dsVjVRNmo0az81c2NEd2tEYldsa092enN3VEFyCnpxaFp0
QC1CK3pRXjI2O15YSEpaKEhMUXU9QCNiTjtwfCFSMTklUmpIaWdNVVJCdlNSfFMrbnVSUH43SCht
OGV8PQp6IVpQPU97Z280QWNJdCt+K28jVCUzSkZPYj0pWTk5Zjd8cWlpT3pJXjUwOGwhSmRrXzB6
MFhhKmtYKGBMTnhWUSoKeihDNTxKJThIIWA5I24rQ3o8fV9oQ3BsSHR7Kmk7aTdiOGV7IVp6WnUr
b01CNV53P0MwaSpWSHxlI2dCcXhRVG9JCnpXKW4oVzdlJl8xRzNsN0s/Qi09dFEmVTtzQDI4KjJq
QDxlS3VCNEVJYkg9Uzc5ek57NWF0OXgxMUVFWHBVRXN7Xgp6b1E4Jit2Y0V2R3UmJWgjXnxnRyF6
SXlkNHkmaHl7S1o0RyMzZiRwN1NRKTVrKlBIMyM7anNsaz08OT5xaGVCU2oKemI/I2QpWTE5Wihx
OFVpLVgpNmV8IU90WXBSJjEqYzl7LW01R198OUBRNWhmZ0hRaiFFX3stSnAhJk1WS3F0ZWpWCnpC
KF5gP0l3QiVNbT9tREs7Rz1oa2RnPkMhb21nXj1oaXlEfiRhWDkpTFVKQGhLdUVWWS18bm5NJFQq
SX4ke3FwVAp6UXJvKDl0Sj9raF9lVEo8ck1ndVY0KHJoPFpFMEpJODVgZ04ldDxrVGlMSGUmcWVw
PjlFSilyOTIpcFRXO3tRbVcKekpIRmlDeF47aXgwemUyb2wmKFdAJXRrJUJ0OVpJd0x5Pn0hdFBm
NDtsWSRaOEo9QyY0eVlDck40Ozt+I3hOUXxCCnptJFp9Mm8rUmpVWXBIRXopYzBHc1A0MFJsQzQ7
Knp0KWcqWFp9emBWZU1KNHVvJV9Sc1lnQUZeZnUrdmclRlh4Xwp6NT1teSQ3aVV2R3l5KEJXQyok
REkpdGRuYWB3azlOPTx4cUQxUn1XZUNwKX5yO1AoK3soQ2RzNlNUVFBHa2h0e1UKejBzcV9LbDB+
WnFSdXRMTFY3RWt5dWwjRiViU0IoY1EkWFhgVyRocVNHYHxfNGYtaSphIT5pSVBSNTBqJnY7VEwt
CnowZ3RhcGR5IyF1aypeemg0KXhYV1YhVThpbnFNRWIzcUo1Y2JCYHBnelJSeFJCRD03biYraSk9
I3M5UiZ4Myo/Ywp6QkByTXpHS1Y/IzUwJHs+b0NvbEt0QUh+WmBqUlc3YCpsd3VgMTZIdWNWUHYt
SW8weyEpbWAmTk0mUnZONnFedDMKelBZVz89ez9pRURmbStrZWpQRWtDVlVaQ3JwZVU/MSZfeGJ7
V0k9SDtmYSMhak9YVD9JUkVfS0BIV2ErYDBLWGc1CnpNWGxpPSp+UWwxfEElMEtrSDk+RGc5V1ok
UDtrc1orOD0mcyFQXz9mKDEza2hEYjFtTW1taXhLOEclcDMtSnVnTgp6fDFmZ29QYjA5OHozeW9U
enNtQDdrcjg7a3RXMk5LMWl8XyVATUZWVFIyZSlscHl+YjJzREZxSlZkVCVRITl2eEwKejJLc2so
RW83MGtCfHk9T0oxUiYyQFA5U2BhfCUybztRYHBQdz5SOy1qMnY1SjFib1NkZH1fenYlTDZQOFlo
NDdxCnoqJl82VnVWKH5HTXdKWEdeRnpBZiZ5N1NFSGo+a2UpVzgkJTtiKzRge30+dDBwUGh5V2x3
fEtlX2RUNSE7dy1XVApmNTd4VSs1XzFjWTVyUFctR3kpSWs0eSZpRGduOWNaWnYqPXVQN3x0eAoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4
LndlYm0gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDlkNjAzODUyNzQ5ODA0YTIyOGI4NDJm
OGE1NjdiNjBhNzAxOTI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDY1NzcKemNt
ZFR9ZHN0S1Y4OXBaJGw1bUhLMSpQTXJaNEgrfTYre0ZIZmxPVGlRTE5hPERneyYmOXUrflQqciFX
UTJxZEMlCno+MT9CMWJQXzsxNWtjbENIJGhlfFVmTG5MdlJOb3I5QVhFUG4/cSZFWnw4KWhyUXYq
az8ycjlIbytRdDZ6QmxpZQp6LXx4SzdkKE18UE9HRT56XlRJM3c3ZnpGfTM0JGVAQilDR1U/ODd+
PTJaVkJoQTxRSGd3dm0hfTlIU21+Z2pIREsKemslcTl3Nk9vcj5IWEE/UjgoQiRRbV8xcyZ3Sk1R
M2BYO1JMQiNCdlh7ZDBVfHI0KUNaSit6TihCdGZhSWR9T3V7CnpfTVchZ3xLcDhYUlctbDJDY3tE
fjIkUCUpalktPzx5fmV9UyFeX2h2RChHajJBOyVTaCtDPVJkc0t2S2U+REsxbwp6T1ctTihpdF45
QS1sKiEjSWEpK3UmZXdgRV84ZzRRJUc/JmNFeTZkMHorREQyV1ZxVG5gPU80KXQwcDJFMnVUNksK
enBmKjA1bEFeMT41IVdoLUA2c0xFaUJ4aD9jPGBuVyhVdVZUJnNPcnw9VTJ3SG97MFBEdEsrKiRM
QEd0ZHlJWD5gCnpacmxfZUIwdWZ2PXw/P1JkOH1GTzwqOXZPbV96V05RWH5BSDVTVTYoUGhnbkRs
N3wpSnswS35mVkh8RXxyWG98Twp6ekAqR3xzVXxOaDktNXpWWG0ja2VPUnslI2MoYHQwSS0jWVQj
amE5PitgYmBkcmsrOWg4eS1BV3BSTCMraTs3dkIKeitgeCNwSllfcSQ1N1ZJNV45YT50alRZT3Jg
WCo7ZGtsK3dQMlg4K1pAUkZxTEc1MUYzaSQ1WmJ6WmV+ZkxZalRVCnpaSnklbWlAbn16Y1JrbmdZ
YHRCSXgyeVA4JkZ+TXo4QjYyeDJkUHVoPDhGeH5gSDNAa3lVY2ZGS01wUE9eUFh5SQp6O2JKTiFm
ak1GMElMNUh0akBlP2kra1o4TWFUUEJsVDBsNHBffEY0JiZqUVFsMGh6UEZxSXRsQFMlNW5hPSRa
dnMKel5NSSMxVjleSXklbSojcW42dHx4ajlMfEwweClubDJuZDZLTCRyWTREdUwkI2F4UCE0bTlz
cTt7fH5PbG0zU01qCnpWVUQ3LU9LTlBiX3NOUH49VnFRSmVOPiNncjlZc1pWYkw8MFkySjZJdyY/
NFJiMGYkNShtbk5abUtgbUtEMDxzSgp6dXM8ODIoWkJCeEQ7P3ZySzl3Vk5gJGFUOWgtT00hKEJ5
aGlUWHtndHFqeUZkUVV8NzBDK2lDbSMreX5Vbjs5PXAKelRZcjF1ZCFFWjl7KShYSTslMGx2S2Zi
NjRlWFk3ZkslSlBZKU5VfSNkOFpQOzJMViQ2eipyMGN0MDc9SjFSVD09CnpoQmA2fEF4MEFmZDxP
eEQ3OWUkR0l4UmRNbk9mVj89Kld6dC1LTFVZWUhkZnlEMkV1RzVUTGFrTylIa01qJHg9SAp6JU4x
ekYoJU8hJClqXjFuTSs9WlR2VDdFZGo7dFFxLTYjbmJXSU1KRXorbjQ4MEF4Rk1JPmdaMSZRTTEt
V0lKfDAKeilRYUFBTzJXdkltTzwpaDZ0d1ZrRz1na3JCJXxGWHgmSlo8Zk5XPHAzQHx1KStabzs7
SWVPYX0+Y3xPJlQweXFzCno8VSkqVVQwcWM3YUMjKTN3QnRfTHltN316dT08c0Y8fSRhZ2RPfFQy
eEliO0pqc05HdFRMO1EteVBQP35QTHBBbgp6NzFLMT15WGtQPz9+LSZrTmNxeXN3RzlweFV5aDN9
eWgpQmZkemE9K1hkTTA5THREXkhwJlNpJXFHXiNCNGR1TVAKektqKFV5eUtVIVIrZVFNTD9GI312
RjNEfHFVWVJ4IzlyQE8wT1UmIzRzaExXfigkZl5adWkzRDYqZiohSUQhPUU8Cno8d15KSytQUmB2
KEBOZWlJZ18telF4ZT1vNUNHWWI4d0R7UzgqJlJFTXh6Y2UpUmhhX2tnRVkmQGY7dV5oIXprdQp6
NVdIQVAxZykrandzIThSeEg0eiUrMDdKUk1EXiRIbkphPWwpXylXKzwkZ3ZTbHw5YV5PfVpzTnhJ
WX1qRVVkWGYKelZSMXNZVStNPjBJaE9HMEMwWHg/XygxP2QtX35NSW9qV15MYVMrbEJlVUR5QEJs
WD5BXmltfj50Tll+RFMmQDZwCno9QjE+OWA9MDslSU1QJjI3WE18KFBScT81eVl0bjxrRmtrU3RD
QUlPcmdadkBqb2Q5PWUjPj1QSDhtTFdBVXBDUAp6Sk11YmMmalo7Q3ZaRkIlVT5OZnVLeU9Ed0om
Z31RajJzQXt4MSo5VXpEdnM+XikjTWJ4TyRwRUhaPHwzLUw4QF8KemZveTFVNms/bygwS0UranVl
JkNGSSk8VTFDVGdJU0RQJSlhMG1PKTwxeFAoakdad0MlcmxxdklRV0I8KzROYWNfCnozXk9oU0tz
R2RjMlYmQExYc0QrZFdKOXduUCVDO0hEaGFhKkl0Rzs9e1FBbGhzcmZIZHFfU2p5dXdidmVtXjBu
fQp6JFYpTzczPDI1JWYjJGFYbUlYMWkyPzhEQ0NkQndiMk4pX2xuO183JSFyZyZaY3NLLVQ2Tkd1
SzFVJj92NTlyeSkKeklhQ1pwTGNjWm9ZTzQwantMQ0JRT2gmaEA4KmBiR3BNTz8pXkdHUShiPVRT
VVpobTFfKWJJNXBsMmZBUWlPLWhzCnpXI1k/OVlEOTl7ZHxsKm9KM0khVmY0Syp1VG5FJXxnSFZD
cit3WFJNeFEtRC1iWm9lJDl2PH1BVGx3cnxVYnkzTAp6MF89blM7TlArJl9tRmtSXkBwIW96Uk05
TF9lRDkhdztzT29lKTg4fW9zTjNGYnFDKyljPChsNUAhdHdJX1BNIXIKemBrRkplKGFabXlGZ3lv
TjlHbyF0TFg3dHkwOEFLKUFWeEM7S25WakFxaCR5aHNlfmJrYzRHM28xfCZze0hnKSQ5Cnoteygm
SyY3UUpudH5VWXszNTh7TTQkS15yQ0cxT2R5SSo5X2ErS0o9KDJxPTZrSmt1UyU0KzxoaGN7QVRR
OThySQp6Wk99NkU2NEVAbl92NlNeIyhmelh5PW5RVz0qODV+ZHN3LTBeWmxFT0JFamluejhRZ0M/
PFdLX2k5fiFobnBXbDYKeipWKnYwYGImbG1zQ1BMbnFYY0NfeyR4Vl9ncmYkP3BHPEFTSF9zeUVt
eEVEKkhzSz1+aFE/KVM2RiE8JmFNVkVXCnpQeDNjNzVIJk9zdGc4IUhQITwmUiFJPVhUXnw1S0FL
SSN0eiFCa156RXJIYyNQWlJqSzYjcno1VV5lRjBPN1huOQp6NloobzJAMWFVZXIjVTVOMGFhcXYl
cWcqQnNnaEM5b0R6cG1se2hfZk81NiNtI0VZRiVHUUxIWGozPyltT3R0TXoKd0d2PGBjNkJfZXMk
QHtCcnJCKiMtMWRITlhsPEdjMlI7MmlTcyR7aWxQS250Pm04eyQ2bC1RXkszcWM4P2RqSjNjCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWluZGV4ZWQucG5nIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWluZGV4ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzMTg4ZDJkNzViNDcwZGI4ZjczODYxY2E3MTU5ZjdmNGQ4ZTgyMTIx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE2OAp6Y21lQVNATj8ob2xIeWB1VkJx
IWlhMHZwXmozQ1UmMz94LT1obilnYSVtRj9qdUt5VnJCcC0yXzFHJF85OStBWmkKejRCV3lYJSpa
Zm5qcyNGcHNsK3YrIzVxNFZII00oPiFNUHxrdV9RR2BwKip1QkwmNHFDSCRXampQYSNwa0ghLTw9
CnpNWSVJakhHN0d0dVBnZylNajBfSChaakp4LTlSQk9QWiE0IWpfYihAS3NGTnQ8MEhqQSN5fVE+
cj5tZEtJO1ZzdApFMEZYNSV7UXYqfQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNpZS1yZ2ItcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jaWUtcmdiLXByb2ZpbGUucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYThiZjM3NzE3OWViOWFiYjQ0MzUxNGM3M2Ux
YzFmYjAyZWM3MWU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDg2OAp6Y21WLXEx
RHBKYlApPGg7M0t8TGswMDBlMU5KTFRxMDAxaWgwMDFIZzBzc0kyTmllcngwMDAwOWE3YkJtMDAx
cnsKejAwMXJ7MGVHYzliXnJoWUdIRjlZUCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1w
T3p6ZT5ZVTZvPGJYCnoxZEJvdXlib31mZn1sZEVaY2EmQ048cE1WaGFfOCpoQTdlYCsrNjxAZDxA
XmYjbF9YaCotMjArSVFhPDlQQ159Rwp6dHhoOE4hR1o3bWhRcnw7dS0yVG0rcCQoKWxvez1IVUY4
UiVUNzA2JEdPS0t9R2w8Sz0+R3lYNXZPRylwaUdhNmYKejFpKW18WH1jWiUjIV81cDFIMSN4Vk4l
OCpZIz0lX2cjbUYxJG1xQipBZyUkYTU0O3dMSkR7RmN7czdkWSUzcHhHCnpfSmFfX0Q8RCVwMipD
bzdRUk5ibENPSjAldC1LaVBxeDhfSXJmdThHOFJrKTxfUSQxM015Mlh5YWp1Sjg0QEAheQp6c3tI
X3t3UiM9cGJ6U30mS00yK0F2WSNjdHZUd3ZFYGdIYUtZd1AhWktJN3NGSGcyY1c+Q0hVYjheTlJq
MyprSWwKenpYdXhkKiFUZCsqaU5rdHtyQz82MDAxQ2tOSyNEejBEPl85MEQ+XzkwVXNPeTBCM14k
MEJaO1UwVD5laTA2e3dkCnowMFZARjxyYDd9MDBGRT9MX3QofCtPJF9rbWM9aiNsWCV8RXtqWTF5
MHctfXhhcnhlKXljalNOZns9ZCNBZlo/Pgp6eUI3ZFp4SVQ7TmZpZnVxSmlqR0NsN31AQ0NJS01t
ant4THZORH19VU13WGkoblpOdDhAalJnRnZ5TWN0dmUkIVgKei0yKF8/UnM9KmhMdV57JURQYDM/
UjUmSjdlXjNFKiE5P2dUZzExWihBZlBMTWclNVVKanhGblo/Sn1eVDY1fEZHCno+PlVMaUJzQkp6
cCZ2eGhxQ2cmWG41QThObX1zQT43PyZ0KlUqUlBJYjs1YmNMYSFFbmZXakxfZHVwTDM2Wj85VAp6
b0Z6V1dOJjN2aDZGNmw/ZTNfOyt2MmAjMyFWeHJ3QmhWJSRyZCg+QTJpKCpPQjwwdkdGO1FHZyEp
a1p0V0cob1gKek5DKi1YaEVQemBIWVpnMW9STkhSVEZRWjhHNnd8Oz5RaFg4Q1IjQmE9djVDSSFx
fkNKdTM4djZMKV5vfWN+dkh9CnpfUSpYZ2EhUWU2T3JhQmBFc2g5TmlzVVRiQnY0QCMxOzM8WVly
fjgqZ0BVdylnY1M7fWc8VnZtMyE/VCNAWj9AdQp6O1lFKndLMzY+RiU2anE9aUZgUXRoNWAjO14z
aHArSEFzczRKMEBsKTsrTms0PEBhe0RKTStzU1pOUDk/cl8kTUcKdSZkTUNCJn5WPzBAMjMoS3pw
I31nTkUmSzN7e3NNYGwpSHRkPUBYeTswMDAwPE1OVU1uTFNUWSUpTnA/UQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9ybWF0Y2gt
cHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0
aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MzQ1NGVjMGRkN2NlZDg4ZDgyYzgyYWU3YTcyYzg2OTkzZGE0MzQyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpsaXRlcmFsIDg3MQp6Y21WLXQxRE8xWVApPGg7M0t8TGswMDBlMU5KTFRxMDAxaWgw
MDFIZzBzc0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAwMXJ7MGVHYzliXnJoWUhFQmFiUCo3LVpi
Wj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1wT3p6ZT5ZVTZvPGNDCnpwXjhJUCRmbTxaYVRLYjlQ
YDlNNVJadTk9QTw1UkhwKUl3ITtwWTBNdEl5I0JJTztwTmlpNHR5cW1Mays5Mn13cQp6Q2xVT25A
QkRfdDtyeVVkYkREMGV2SXloVVhzXylgS00zWFExNjVgS3BkMDZ6KTlELWxxJCpBTGlHYi1kMF5v
N08Kelh9VEBgIyhiUDwxQUc4bXkoRXU4KVBVaSskcWF9cXo+WT9sMGRXSl5gcSpvTHhDNSt5O1pK
fVM3NSlaVCs3Q2h5Cno/fHxMK2dBZ2luZkVeWFMwQHg8R0ZhUW1lUDR1dW9GbWtoQXVTPSg9cUNf
NHxhKzhkNnh1Mz5MWEcoV1goZ1RZNwp6MDlhX0s2UXZLa0NMVHp5P2VnI1ZLYDBCR3pKQzM4cl80
Jj9RK0BXYGd9REVIRV9ZbXhVXmo7OWNBMHI9YTZOKEwKem1vaSkzZ1FhITJtN2h2UVFiWXM5ZFN3
NnIwM2MmWFFjVkI9aFlBMXlqMHlrJV83KHNEZ3dGcn5iMnxWND57OT4kCnpJK3ArZDlaVU4yV3RS
V3wwang8eEt+Izkhdnt5JSMjVmBueWM7M3padVdRVyRDdmkpMGBRRF93NyUmb29rYmVSbwp6cDsk
NHk3WFZQV0s4eHZyR0FSTil6YT5ERGhjeXg9MFUrcCkwT1c1LTY5NT1TbVlYMSV6eCVUQkpmUH5j
anpxQXMKeipNbiU/MHw7WVExVmxHT1krQihkV3p7YFlJM2Bxb1B5dXdvTUNkTXB3QGVac3BldWlj
NHxaTFNFJGUmakdPKGMlCno7fDNKJDlSKGRFSDE/UkdBNEpmaUtwdTZOckNvY05YckhQV21uZHl0
O1V4aWUhZzxMO3VOSG9RIVclfD1ZTX58Kgp6YCtBZHtCfGdlWWBwbT09SUF1bkJuV2krY2J1YTxL
NWoyTSomP1k5UFR4eSZMK3wmdnI8PThEVFFDdiZJWUlvKmoKekUlPXM1Mm9lO0FQKkJyMENzZ15J
ayRpQWslN0l9cjJMJWYxUSVycChTfWA1eVJTejElKnM7Wn5Te09QKit7NDZxCnpSVks2YyRVUUFg
Tnw5bnJwJWJKbmp0RW5WPFNnREtQKz00V3pvY1ZwITtDYkFnMHpRKDYkLUN+VH53bkJxVmA0Ygp6
PFgmMGZNVVI2JVMzS3YrZGgheTlkXnFAcTB0O1hBKE9HPnBOUShQQUNUMXQlbSlgJjdfamI1RF5V
RVBeejtJWm4KeCglRUx0JHtlY0RhTm1qVnJ4RiN2dSQzZjg4ZnJIRzB8MjZ3eU0/Q2Q2UUJTOTAw
Mm92UERITGtWMWdXfGM4Q0F+CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJj
ZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUuanBnIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUuanBnCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTE4Njk2OGZiZDAzMzg1ZmRlM2QyNzhjYTgw
YTViMWQ4MTY2YWMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDkxNDUKemNtZUc+
WWp7JnR3KS1TKWwwSWsmRW1GS1FPYnBNRnc4PVNuWFF0TFBOdWYlaHF+K3lSZC1GSStRPEkhRElj
WkRQCnpLQGIoNGBENmY8KFEmODxzUEspU2p9Y010OVhrcnJuZlllITJvdzxneWErbUM7Y0B9N1NX
ITU0P1MxbTlxVlViVgp6R2s+TiMtKEZ8IXdib3ZIP1h9bF9XTithZTtSN2BHaEs5eGxMYGYpMEx1
bjhhaiEyKHliJSVvcHghdmVtZ3BkTnMKenNjfWRPN3pJQj5VNXlGfWoqeVN+bW5ffislfUMyZ0sh
ISNEKGYxJUhEMkN2YmZJb08mNyF7PUpaaWVzTXNDeEhuCnoydSZaR2BQdWBWazV4NmJhWGdvNzxL
aWt1dnE3fmU5MUN6PU55Ty1Bb3NGaCN2e14rUFk8aXV8WGFwNVZgVUVBbQp6RCttWlpBPDYyV2BH
aG8hdEZhJj84NnsySUQ5aTUkSDdWQipZRmQ2akJ2ZUtSUlVec2ptYjhvTiZ9e2dFTjVycD8Kej9A
TFNydTVjMlNsMExPTSs9dnFYMmJHWiQzZnpUajNoJHduczhwZCk2ZSZ1SmlifEN3I1U7d3w8KXgr
TjxFdHR2CnojI2RCU0ROOUw4ZjVnSnFBdkxDP1dLN3dadjFNZ3JFNmQ4dERsc1VsNnNzdCZNMWst
LXEqTmRebmtsOCFOVFFecQp6Tj1rU2l4LUF1VVFGVU50QXc/MXhqRlNgc3JKenRJUn0+WU9Lc2J6
S1FiOzFyRnZsWFFmUmFpSUIhek9CcUVLM0AKejJjfVk1YUxxV24mXzNUPXEzJjREJFNUKXRlNCYy
d2w8fVQ3ZTBvRC0jVTYpej5lfVloTjZ6P0AjO2N4dUAkUEJQCnpidTl0Y28xMXZrZ3VNJW52WS1C
RDw8NVBuNTY/RENlYHhiUEZGbXwjO0dAc0JZPTNNMlV4eVkzSk1WcXVzaDQqagp6YDFxVzgpfW0w
P2VlMGp6KFNQdlI9U24xemZWQm4wQ2JfSzhOS0NrZjkjO1NzYmZfeHxuZE5JTHU/MjU8X01GeUYK
ekBmfUk1U25Gc1c/QHQ9ZU9xRjIrPGtPNkE/Z2IrQE8kZkxhbjBXU1IpYFZ9alYwejkzO2F5WkpD
MmNCRTlYalN8CnpvY2R0dlR1PFlhJERYPT0+eD42MCpZIU1tVHRMRnhgMyQjYmUqMFEoIUVhbElK
O3l2WmApPlQrPnlNdm5KWHAyMQp6ZVomNTNIP0M/bFp+TCQzZ2hScWZnKWNXcF5mZndVc2MmPV9P
ZUYmfW1jVHJLZEQ0PzJrRDRoUSFtfktAQ0gxQmUKelVSa2I2LUNhbzNJRUsqaGpHYVV6Q3lwI2om
eXNReGZkRDh7M3VaRzsjYmpuK09oUE9lIVlJck1aNz5MJjJ0YiZGCnprZj0wZTxELXZkREdaX0Mx
VFo2bXIjZ2tJYX09VTs3fElDNlZWKyR3Tms3NXRPUnxMajN5PTZoZnBzST9TNkJmZwp6Kk5adnJ3
QEUtbldhU1kzY3JgOWNad0RhdTJOd31jSWZRMEhve1creGlvN1RTemlQbGNQenAqMyM2cWJIZyVP
WTEKejBQYGFiXyNEdWEoQm0rUTBXQShDNGg1a1UwY20waHo+eHtCUG5tPlUlZENZTjhhRHFNRGN2
bmhrRUozSl9+N01TCno9SHBWYUt5c2UxLTRDVTdKJiZLS3BAZjQzd1pNYGM7Ykl8LTwxfmoyXjct
WEBve09mLSMwKmNVRXlLc0EkJiEoPAp6cEdfYHwldD1DdDhxclE2O1FASVpXSH43YElgZWVQTGtU
VndBMz42RmlFdDwhVmBIZigpRzJpfVc5ezxANGEjR0AKekRXMDNmI0BLfEhYOUdZJEVsY0JVVERW
dmcjdVV0SGpEfVMzYEZyPFlubzJ9a1QjSCt2c2tDI2teRzh6TCRxK2smCnpCSilRMDdIPzwtdDwy
OXRKK18tfk93TWpgJismMHcxUz9jeiRSbVZ7K1BGbElKcldMT0pYSjFzZXMrY29IUlM7fAp6PXVK
ZzxLI014cjFiKyRmZyZGY2xAZSpJaSE5fT00b156Rj17YHkmMjIyPz9GeGZ1MyE1em9jdnJUOFM5
MkBLM0QKemp6QSFOZ0llbjJjbkdMKCZgViY1K3JCUE49SWppdDQzJEViKVNWYHtJNnZ7KEw9MGh5
JFlCWDJ4ZmNMLVRWfmQqCnpMYGI7YD08VFFxX1VfVCRlc3M3MF99bzhXdzxpJks0VVJ+KDA1WExg
dksta18wRzU2cUVjK19kMVJEZWcrWE0kJgp6MUlBIU9MPX41alAkMzZ1TWgyYDxvQ0Qme0IhfDtK
WCt0PW95cllmaDwySjF9bWFPc09iOXMlUWkpeT5RYVY9ZT0KeikxbntPYjtySF8rZ00pWlZffXU4
UmlGQ3pLRDg8d3M4dWdBeF4/Y2pnS1oxWD9uJHVDSiMkPDlKLTdMLTBkP0pWCnpzdm1kVHh9KSha
JVg/TWIoTVQrNT4ja0szPHU8QEVTKnVuTjUmcEpYSDkwRyo3UTM1TjRsY299M15oeSpRfDtIOAp6
XmVVc2lNc0grSGo2dEpmYlVLU3hYViZVPCl3SVAlR2Q5fHlOKyZoNm1rMCFIOSVuPGtIN00xcCk3
fFJvPlo8OXwKeipLbW9EbWJPfjBTezxXaG19LSF5UEEta3stdE92SGEma3Q0bFRHPik7VyFgV1Zr
KWZCM3AqaVNzfEgpZVBESkJiCnp3VV9pKE1saiZkJUVlKV5DeWZYRVN+a0spKiUrUyQmKGhjZEx9
QChwRkRQNE9nejdBdDNgZUZDSU0/bUliY017dwp6TVdmaiFsRHctRXk3Njcob1d1KmEqMjU7YlJL
bX0/ST5GNHpuYTIyVkZ6M3pAIyRuQ355SUEtYGRGaDVRQ28zQWEKeklURWF3aHdURWt0VntzcGo9
RmgmMmVBIWxZMVJvbGMmIUAkS2RoJGRZVERkRj51cEE+JjB3aDNTIV9DO0RDKl97Cno7byNENWls
K1pjanUzQDc0MHc2KFdyWUtOVGFaZ2N6MkwpZSlFaT44P1F1NHdSJU02QU1zXyU4OE8rbj8oO0ZS
Kgp6clVWeFpNfVI/T24mYVVadkQ1OWdITzcqPkh8QSM+b3dhSntXS0IzNnVzTXg3diZtdip0Zm1J
VyorQTN2Y0dfVnYKeiohMzJqd1Z0dS1LeyorRG8wSWRXYTQyUSEyNT89Jm1ETHJHTSY4S1pyVU1W
VDRPQnFtVU9aMX4pd0VoZ2g+TE9iCnpMe2NKPWZ2SU0tOG5tPHlRZChmaTxwZ3M0MStnJFZuQEx4
azNvVWlCJlR4b0xWeWUta1ZUQCtUN1JYaSZ0UGRLLQp6WT04X2ppJFA9NT5tYnZCMUtwejZmSE82
RTlqKCNSN1JYa09rJTZwZGZDaFRaST47YnYjJF9ZJEE/cG8jPTBgZUwKenoyMEUzbjs2RG12S3BO
X2xpNSkzYXh0e3M9YHVKP0c+aW19WGpAYWJufmZ9WGhHOCgwIzJiYllvRiNjMnkmK3ZFCno5U0w0
UE0xeyN7KUVtP0VrPUBqckVHQzEtcHRHOEUxVlJWUUckVFRXUCgtSyl4eyglVDM+c1heT2R4YT9J
c3oxYwp6S3J2WDFJcyYxaWZJfkx7ZkA5MmphMnRqbzU3M0lDMXRiQ0R3KUVnYzN+PylaYTR2Plc3
YSp3JXR+Sm1HOzk+flkKejB1KDdgZj9GYE9mfUg/fmpNV0lablphfjMzPEUkSUVDWCE/b2Z6Vn1S
dHY2Y3dPfD5tMTxQMmlNOC0tSjlCWj1ACnpaNGg0c0N2fndVdXIhITdGclhSOzAqeSZ5KT50JUY0
WS1EO0g4aTg0XiV+bHNmZEt7fitOXjxTVV9jZ1AxVlJMJgp6I3xWSzBhUjRDJGs/PHBuLUNXT0Q+
eTVQQ1dIdmtYXi1jIUQhfHJnXitaX2hsVllUMkxMITY0VSElMH1rbVp0WmgKelgwe2BaTVp6a3c/
JUtTNWFaMzJ7bEUoKHJYPiN+ZClCbXpsU1g5fjcjPV53UVVrU2dxeW9xOC1GMzVMejZSYlQxCnp2
LVBgfFM/I3g0JkJnRlBmdD1sT1peOD5aSUdhZTtzKUdxR3N1R3ZQY3Iydml4cGFaN2tLZHs/PkZ2
eV55UUNXfgp6eTkpbGorPmpte2YxNVdKViZST1ZScFZaMEBtVzl8Uz8kKmNvJCZJYDRIPERiajlA
Zi00IVNPTFN7ZVAwZFNLSzgKenFhR09iel5EZ0NKQDhORGYhc3xCOC10QG83dT1Id04yJWxSQUY7
S2BHcTBnPmoqREZTUTE3fiU4KEppQUg2TS1mCnozRDJ5MCkjND5Mc3BSfE5yRFl0dkwlezIjKlBv
MnJvMHtncDRHeE5sKlFwcklCKUIqX2NSOypaLWx4STNHSz8keQp6N1d2fXxkO15TY1BOeE9uTWcl
VTNzc0lta0BvfUoyY0t9fFEwSFhsXkltU2FHejhUe181cjJpcXcwSW1LXkMhVHwKekxWMzZeNTlp
X2I4dS1ZOyNnfiUlVHp0YEVSTHkyJWlMZ0pGUkpweU9TUEdzQUxfNHF+RCRmM3NDZEwwaGZjLTNM
CnpKTEA2LXFwdGM+al48bUIoMm5+TXN5ZFhUUDF5aTxiWn1xJV4zRUtNK1gkfmlAQ3FqVnhqJldZ
T2p9MSRmNmpYcQp6ejg8TEp0RlpYeWRQUHVAT1ZWdTB0QkshMEMwV0xtQjYrWEVAUWoqITZfJnhQ
QFJNTXNPYWQ+UCooNnVVM0paIykKeiNxZUdadWZqK3NoNCE7ZFVgZ2M/MXl6S0tPQ1V9dURaQzN5
dXwqUERRSHB7V1ZgYnF1Kil7U0NIQiEpKGM0cVNVCnpxV1NlI2Q4ZzxuY3NpQz5gUE5Lelk8JUpM
RygpMHo7djBMNih+bVRwUi05UztxX1pYSVlCMTA4JnNlWjwoYlhAJAp6eCVjUiZmeEcjMkU3P3VJ
Kn0zbi1BNmtORVFgY0g7dm0wKiFfbE1mVD9WVmxTT01DOVFfcjZ2NEtrKDRRa0Y1WDIKenFtT09n
XjM+RE1ZfkErS19McTBPXjZHMjUtckMqJmAjPTB+VkU9KUc/O0x2ZnFyWk45PzMyT2NwQURWK2VF
NXM9CnooMCUtbFRfN3ppQ0A3SDAzWnIxTTY1Zz4zWCZGKmkqeXFhYFopSnl+ZSk7NHo8MkBVRlNM
dXNobkRXTFJOODxFXgp6QlAkSD5vTCVMMm9fWEBjWH51fnlDUmJwM2Fxe2tVNExyN1kwaD9OQVVV
PzVPYDBOal9lcldTY18oQSgmQGtNKmEKenRWS2FmX0U5X2NxQ0k8WVRsY0Q4Sm9DISQtfXorTitQ
RWFWXiFgVjt6V1JxbGdJYD4weVd5dHhvKENTPV9TenJjCnpKJGA9ViF9R3djXkcrXiVSelMqQXJ8
IUFxd1ZpOHJyNmtTVj1MWkU7KFEkRmRfTCtPMWBSYVZBY1NIQWkwcXFkYgp6emgzQ3U5XlNkQj5P
Y0N8LXxSb0g5cXR8ZTwrNUczemlAVWlhJngpSWImfjZVeCV9eWQramVmOUdfKzRacFVHUT0Kencr
QytkViprWjIyU0l0cSt+K14pX2BaR0peOFI0fnQ9P1lKemgoWkpUSyY4V2IrKl8wUDZ9dyFmJDMj
R15LSVN3Cno+NF52S29OIV47YUJ0XyhVfVE8Wj1iPjgjXndWWCNgP21oejtDb35HSHlNdXtTa15Q
UmFDUHMpSGV0YGVFeUw5cAp6YHd0JmhTbWVMOU9ua2EyYURMaEEwKHhMfGAtSWd1ZTBjT0h8TX0/
Z3kxTCMpMUI+NH5hZ29AcT09K3VKZ0k8P18KelN9I3QyfDNYaHx4JEBqbGI9fjEqSkVVTFRgRiFf
PXBBRyFtJkBiUWJTK0gzXjZWeyghLTc0JUkyLT03MDRoWk8hCnpeemRRSD1AVmxQcDhvOWNebkRs
bHpDODdwP0tBdGdiVSs2Tkhnd2w1dGg9bDN4ZXNuJXtKNGVwRThkIVNeVzt9Ywp6YHE3MURAQVAo
RmNjPUY1UmJUY3pAXzZzKGhnWCFwYm5PMDVfU0R3KXtRMT1UR2Z4UW4ySE5LaEtpQnUkcHxkQigK
el5pJXV6VVRGOCVjVyU0MmNJTjclZ0IhVTBVdEV8cUlQfSRwK0dwb31mOHR4ZThgQHBoZkFIKihm
TnB1Y0A1NTd9Cml6aWZIX2p2RUpGeCFDdkw8ekY1cWRNKGVyY2NBcXJnUlFOP3E1bE9LVWJZYmMK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0
aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFs
bC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU5MjI2MjczNzY4ZTUwOTVmMjMwYTM5ZGNiYzM1ZGY5NzNiZGVjMWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODQxCnpjbVYtUDFHZkIkUCk8aDszS3xMazAwMGUx
TkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhZ
N2ltTDdQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2RjLXBPenktTEdTMDdsUVAKemc0aldl
MW5HRE9hZElldjtIclZAVjR4JSFsNTk7SFZuQ0J7Yks/JjwzYTtKVTFpQCFlY2hAP0pmPEE+SEl5
KGVPCno5UjwmSElNVzlvaCZSald5UjhsIVc/ST1oK3RUdmBJcm1KUEJ8NWEyOVkkcmJINWx2eFdP
KXx6OHYkUTAyIU4rRwp6JWp2dVBqcnBpaDhoOGcqTXt5Wn09bU1pLVUxJCh6ZlQyNzswNUp4UHIx
bCVZMnk0Rnc0Q1VHO2h6WVFlT25FcnYKekl6R189Vz9yMUNHfStnM3oxUTIyeUskentzNEFzM090
UHdrZEl0YilHZTV8Y1E9fVJIaXt9VGp3aHRRdGh+LUpzCnohYmBaamZiTUo0UjwyPDI5QnY8KW1T
NGw+QyhNa2FOKig9dEF8QWcxSyZ3WmBVQS1YaTAwMDBXVkBPZz4wMDRSPQp6MDA0bDQwMDRDYDAw
OFA9MDAyNmQwMDArbjAwODt7MDA0bUtwbH05KjAwMDUzTmtsPFpjLXBqQU4wIUFmMiRPaTsKeiZI
Yi15JT5wTkpPTDYoJHFgVmp+NWB2SV8wd0FHU0Z9b0s0UGBFeWU+NDdwUzB6QUpaSyQzP3c1Kyhz
ND0jSyM4CnpaJTdqVzcpRit4QWVxMVd2aGg1aT5hJmhTdShIPktYeCMke1ZeIyEySCQhWSU7VkVV
K0p5YlgqUkRWemJiaXFYRQp6RWBxbUE1K0ktfWV9eFpyVTUrajVkK2pvP3AlVVc7NnptLVo5Vjln
Tm40dXA7KDRzJmRiKHAxSGR6ZmdTc3UtNmoKelpDfkxmMGQ+Tjgkd0lGZGV0Xk9vTXRmP1pDS0xP
NWxial8hJTFRZG4jMWxBV010cXMzR19pRnMwbTJiOWhhPUQ/CnpDWj0zIW9DbjwwM01BIyZFaXFB
Q09UJWgrPTQzN1NtUGlOXjZveWJ4KD41bm1gSjluX2E5WVpOVktONT0zaEdsIwp6ZUl7Qmw5cTNn
TDhwN0RJI2phV3lJeiF5VSNDY1VGdi1aZTZFcGtlY1ZvYWVFcSVEcEpRO09zKS1YdV9BNmF+TWUK
elZ7NX5WRz0raytobENYaHVaM015cVlJKztNZXlXYVM+WipHZ0ZhVjA9Z05CVzV7WX5gXz1XLXRV
LUhwZWVLa21tCnpgI1VDUEMqcWdofEs7fn54STZSOUEjSzJMU2Z8cTJYM29rU3M/YyFYaVNNVHA2
fkN+UkJ1RS0rSHZhPHZxTGpPWgpUcnMpJSkwMDAwME5rdlhYdTBtamYyZEc7JAoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWUtc3JnYi1w
cm9maWxlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRo
LWUtc3JnYi1wcm9maWxlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc5MmIw
YWM1NzAzZjMwNjg1NmQyMjhmMTM1ZjRhYzkyZmY5NzM3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKbGl0ZXJhbCAxOTg1CnpjbVY7eTJSYF9UUCk8aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhn
MHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFyewp6MDAxcnswZUdjOWJecmhjazcrfGdQKjctWmJaPktM
WipVKzxMcWl+TmEmS203WS1Jb2RjLXJtUFljIU8zOTAmMDQKejdgS1dqbWxDJGdCfUl4TW1vWFI1
RnNOaUJRTD9vUlFWaTN+TlZabTZDI1RENWxQPXFCQmhyUG9pKT18Mz40dVVNCnpIa0dWUHYyMDNH
UkhGYUI9PEpicCt3RGM/WSVpWVF0S2FgUSYrfmlFXkV7dlB8REZkaEhseTV5QjRxJVE3PV9Idwp6
UV49WTxDeTFxMWlOVmtVMDNidnhtcl5ya2M7bGFvMGQhWWAwUlVDamwpRiZtbSU2MVhQfDBgTHoz
Wm11d1I0NnkKejtvb2JCU1NuS2g0MFFsOFZjfkt5eipxYGtUKWFaNjAydHsyYlZILTAzVkBMWkt2
eF9ZNShZM3owOEY2UkxLfWViCno5OGxkKHY0IWsrZFJzc304QnBDV1dLJVlQbUttVDFBKTh7cSk3
dHwyV2BHKGIoUSlHYj1ZZDllJSZlSUpgflZvaQp6NFk4MFMwV3ZKYTB6XlVxN1RCPFg0Y0s2VExL
dEVaaWcyKG42QTYkKmZwQUQ1Mk1iZFcxMkpNRGdBfW9sQXB7RDkKekJNY3c5cDlUT1VndUB6Z19g
d3N4Kj5pJGVaJV54ZyROazVjYFQpfW9QfShQdHV3JWNTclhjYFNZNipFWjdFbnQ4CnpgY2VzYnlf
Yi1fNDFpZStUdiNsamdlKEFIRzY0V0EwUFgtM2V8LT5mb05VUXxefXNqZks9Y3d8b0h4TVY1MHBM
egp6aFVveXpoayMpcVBedj5uO1o4ISVPKHZ3SXJUPHo2MDdqSGpyTHZ0JGlmWEdtWFZCV2c2Jm1g
UXZ4Y1Q8VUQ1NnkKelptS2c/U0U4NCFwRWFVajxhTEFGcXZ7TUJqcH5pPmVvO1FVa2Qtckx2cWAq
WmZTSWtpeF9RbW1nQkclSlBVQ3ZVCnpwUiR4JWprVVR4VllSaWpiPiYzKUI8KUdySFVnVXAraitM
Rj49XmJfSkU+aXBlVy1vKVdSSi13OUU9PVJJVyMlQwp6SXFxQG5jQURuJmxUKHxzZ0w5KHVDNXwl
M2prQUsyJnVNb1Y8S3BYKj15SiVWIWxqI1F6OykmWmElSjNQWlUqLWgKengwSEwyK3MqQFRJTTBt
ZCExTGstQHVHUSZ5ajAjSFVKPFhCX2xqQDhjajM/SHVpK28oKjlrTlEwKWF3c1NrVTVYCno/aSU1
bT9iPUNrc2RaRzFhSDIzdCp4PCVAT0xKRnRrOU5OIUApOHd6Km1+cjZqYHomPXZoZ31TTUtxOyk+
WXsxUAp6WD0mYTk/KzRTcl9pXi1UYEV1NmBlX3c2aW58QG5vJmh4a09AMChRX2E1IS1OWXs/d3xB
aT47OCFLUG1zJWA9IWsKej5UNmJyUlZZWDc2U2czSGI7U00hV3N4cnlTd3NhI1o8U1FWPlB6UD4m
WE0maFgydTxmQUclYllQYDdPUUB9Zmt9CnppdXskX1JoTCkkQntpKkN6UnFDJW5kSHpQdl5ITVk2
dTtTaU9WX3J1K3Q9PDQrSEpjPkdwJjhedDt+eUFjP1dWMQp6OW44dThJcm5KY0B5Wml6Q2tOJFE3
WCtNNUkpRDFZdnJCZVk1e2ZUaCg8X1RFRlI4R3NPMEM4bk1hfD5pQj13IzUKenppbDRjbEohdmRz
T2lhdVBWViFMN2RidUFlUVpLIzMkejg9MCZVQGEzIWYmSjVee200V3E/SUh6fUV2eDM7XnZtCnpm
WX1IYmpzJUorTFctc25he2QofCpNZXoodl9FPDtxQWshQ1hiVF9BQl9ae3BULXB3eF9NPnUxaUJV
NCh1VUNtdAp6e05CMlI1TW9MUUYoUVB4ZWF1V0hDOGRFUTA3UF58YlZQTGN5b310R15XJXRAbXNp
ZmMwOS1YcWswaXY9Vm9fWUgKem5wNFM5cXZMOEBeNT1fb1hsKUQxZF5GSmNYSW0yKWptJGtONW8o
LTRoQz5FeHMlejtGYklANittcGY4LVJFbnxYCno9b1hWUV5aTX50NlZCTUEramx1UDI/eygte04m
TEFPST1wbk5YbFJUJVNONWUqdFReP15YfFUxPThTej0pUGNmbQp6bGYjbEQ4T0pXPVJeP1RtRVh2
TztTYkExP2p1ZjZLM2NsRVRkQ09KUDtfT24oWW5mJHdIJiZNYWUkJTVPeXxVfDkKeihYRVp1KXB0
aFJeez80Kj9fJXc8SSMmSVpoUzxoVV9tNGQmWWllJXBZMCsjb3s9QFIyZUgtQD9fMUxaNXtSITI8
CnpkK058Pntta1VLWmtJfmVeWGBUaCpJKHduK1NUKmpZakxsciYtQE1aTyM/WVlLQzdaRiY9elA1
dzF4TlUpOHdDTwp6IW9hWmxgPGpzNjIxMHItNjRLe1M9TzY4eS10JVkrdjwyRzJ8NlA5cStpN0lD
TUkjaXkwMDAwV1ZAT2c+MDA0Uj8KejAwNGw2MDAwMDAwMDRabjAwMDNfMDBEKGowMDAwMDAwMDBB
UzA8aXMwMDA1M05rbDxaYy1wakFOMCFBZjIkT2k7CnomSGIteSU+cE5KT0w2KCRxYFZqfjVgdklf
MHdBR1NGfW9LNFBgRXllPjQ3cFMwekFKWkskMz93NSsoczQ9I0sjOAp6WiU3alc3KUYreEFlcTFX
dmhoNWk+YSZoU3UoSD5LWHgjJHtWXiMhMkgkIVklO1ZFVStKeWJYKlJEVnpiYmlxWEUKekVgcW1B
NStJLX1lfXhaclU1K2o1ZCtqbz9wJVVXOzZ6bS1aOVY5Z05uNHVwOyg0cyZkYihwMUhkemZnU3N1
LTZqCnpaQ35MZjBkPk44JHdJRmRldF5Pb010Zj9aQ0tMTzVsYmpfISUxUWRuIzFsQVdNdHFzM0df
aUZzMG0yYjloYT1EPwp6Q1o9MyFvQ248MDNNQSMmRWlxQUNPVCVoKz00MzdTbVBpTl42b3lieCg+
NW5tYEo5bl9hOVlaTlZLTjU9M2hHbCMKemVJe0JsOXEzZ0w4cDdESSNqYVd5SXoheVUjQ2NVRnYt
WmU2RXBrZWNWb2FlRXElRHBKUTtPcyktWHVfQTZhfk1lCnpWezV+Vkc9K2sraGxDWGh1WjNNeXFZ
SSs7TWV5V2FTPloqR2dGYVYwPWdOQlc1e1l+YF89Vy10VS1IcGVlS2ttbQp6YCNVQ1BDKnFnaHxL
O35+eEk2UjlBI0syTFNmfHEyWDNva1NzP2MhWGlTTVRwNn5DflJCdUUtK0h2YTx2cUxqT1oKVHJz
KSUpMDAwMDBOa3ZYWHUwbWpmY2V8cF8KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zbXB0ZS1jLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc21wdGUtYy1wcm9maWxlLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkwNGU4OTUyMzVjODg1YTJmZGFhYjI0Njk3
NTFlODczYTlkZjI0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA4NzEKemNtVi10
MURPMVlQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAw
MXJ7CnowMDFyezBlR2M5Yl5yaFlIRUJhYlAqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMt
cE96SjQ/ZjA2aE99eAp6MlRPJEBIMGIobXgpZWZ7OytqNFhMOFoxR2w1RVhgYGsrYnBeNy1ofUEw
Y2wzMG9AJU85USordDFpe0lsOzNoYVoKekkwT2shQjZ5fkEmdjNiTCFCfUBYdCopXlFsU0hmamMx
eWFSRkJoTXZ1dGJkfW8xLXcjb0wrQWlBVzQmJHA5dUpQCnpLPiQ0MG9sZExFLT44T30oIWVMc2h+
aGoxVkZTVXImTlBUQ3p6Uis+NGRNb3spVWUrTUBjQHxQIXNtYik2I2ZkQgp6JUpxQkBaLTZ5K0pz
JTdKRD02Rm9FRkU4SGZPZVdxKXpTRCslWjY+Kyh1dlhfbVY7QG88NEc9ZWt9eT9Tc3p5NEYKemZa
eyM/RHVjYj11dj41US0/Kk1IM3d1OTYwQWdpY3d2ekJ2b3Foa24qIVg9ZWNOfH5CKSp+IzskYDsr
aVRAX1lHCnpXbX4oM1NgK1R+eld7bDdQM2htPFNlcE88MDNjJlhRY1ZCPWRMO2s9ZlAoLTRfODAm
Rmd3WCYxY15Mb3o9eGhLMAp6SmN8R1Q4KDZ6TWlrPClmMGp4PHhLfiM5IXZ7eSUjI1ZgbnljOzN6
WnVXUVckQ3ZpKTBgUURfdzclJm9va2JlUm8KenA7JDR5N1hWUFdLOHh2ckdBUk4pemE+RERoY3l4
PTBVK3ApME9XNS02OTU9U21ZWDElenglVEJKZlB+Y2p6cUFzCnoqTW4lPzB8O1lRMVZsR09ZK0Io
ZFd6e2BZSTNgcW9QeXV3b01DZE1wd0BlWnNwZXVpYzR8WkxTRSRlJmpHTyhjJQp6O3wzSiQ5Uihk
RUgxP1JHQTRKZmlLcHU2TnJDb2NOWHJIUFdtbmR5dDtVeGllIWc8TDt1TkhvUSFXJXw9WU1+fCoK
emArQWR7QnxnZVlgcG09PUlBdW5CbldpK2NidWE8SzVqMk0qJj9ZOVBUeHkmTCt8JnZyPD04RFRR
Q3YmSVlJbypqCnpFJT1zNTJvZTtBUCpCcjBDc2deSWskaUFrJTdJfXIyTCVmMVElcnAoU31gNXlS
U3oxJSpzO1p+U3tPUCorezQ2cQp6UlZLNmMkVVFBYE58OW5ycCViSm5qdEVuVjxTZ0RLUCs9NFd6
b2NWcCE7Q2JBZzB6USg2JC1DflR+d25CcVZgNGIKejxYJjBmTVVSNiVTM0t2K2RoIXk5ZF5xQHEw
dDtYQShPRz5wTlEoUEFDVDF0JW0pYCY3X2piNUReVUVQXno7SVpuCngoJUVMdCR7ZWNEYU5talZy
eEYjdnUkM2Y4OGZySEcwfDI2d3lNP0NkNlFCUzkwMDJvdlBESExrVjFnP1Jafl8xVAoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNyZ2It
aWVjNjE5NjYtMi4xLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21h
bGwtc3F1YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmlsZS5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGEwMjAxZjExM2ZkYzhlOTcxZmFhMTdkYmZmODk1NDE5MmVhODY2
ZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzIwMQp6Y21WLXs0MVYqOFApPGg7
M0t8TGswMDBlMU5KTFRxMDAxaWgwMDFIZzBzc0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAwMXJ7
MGVHYzliXnJoaFBpYUYjUCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1veSlYSC0rXjdD
cmFnCnpeZz5JQmZSc3liUVdYZHdRYkxQPjZwPHo+QXFmeWxoI3tmYjY7Wih2TU1WU34kZUBTPWoq
ZnRnNjtVaDxpVkR+Vgp6PFJQTXRnUUpMdyVLUERhcWlmY0BfdlgkMXdid3I5dG47MC0mai1LPTQz
PGJVUThqPUpzWGB0UjtEZzcrI15LfkgKekshRk0qWn56YnB2dCVLMntVWlNZXzxsUypEPFolTHo1
b0d1KCtkYXl6KWhSTEZkVD5mNTkmZ2hUbWdXRDBsOypUCnpJNzxrQzZhWVlhanpYcFlLdD0oOG90
UCQ1MEg2Y19WOVI0LTt7WkBDMEFNRzc9RjxSeG8lb3IxMFJVVCtBciUzagp6a3BMaFFXciMhb1hn
ZElgJnNLXj4wOVlecDZsUDFySVJNeCMwNUN+Y1c9SF9BdypiSi01RFQmWjJuK3gpUUhYXnAKejAw
ZXNnVjh8bVFjbVJaJTAyRF5AUzNMMTZ0YE8lYzAwNE5Jdk9LdllJWW9oNjJyWTMzUzY0MGBEOSVZ
MkQtPD9pCnowJTRqIUYyWkA0ODhVJTE1OCg2NjAwNXdvNiVwV3JeWmpfdjR6QUE1SGpjSXFVb0dt
dDJMQj5yViZuZWgmI1ExaQp6MDA3fjFlJG9DY0ZTOG5lSXxoSmx7LVAhQjFaWjlocG1xMClYMGlg
SndFJj4kK0U/PiVfPGxTKk1XSytuKzFjZ2YKejxrKDhZTFIoP1ZTQUc2eCFlNzh3e2NRUHVKcEF8
ZDtKKUd7ZmloaXpNK0VyYiFwIXRjcjV3K2EzNH4oWT04czRHCnp3K3NMTDluJkpqTm4qS0pEaXFe
VTVeO2AxbnZDLUByNlAkIWt9MVV7KCpJPVEtekB0QktIb0l9dXhkVTVkeXlAdQp6VTFKMEdPRDdP
bWJpbV5HMDA4cDRaXjZfazJtXnA8Z1c9RDJ8TDtIak4xIUREZk0hWE9hUjJ+Ykw/a1gkJUNrU20K
ejJtazs/cG4pb3xLXnllSjclYWRCOUtpK0whMytGZ0hpU1lYI0tKLWxMSkRNbjlDQmJPdGIjJSlo
UnZgWURxdF92CnpLcGl4fFFEfXlmYTFKaVFSayNqNGExWiluMiVmPHh5bnpWPkxDNlJiVklrVXgw
YitfK0JhUjNjblQ3WnYhQUp4Vwp6aXpGYiloIWp5R09PWjg1RjthP0RBWFB7bUA7ITBfSWZxPEV4
eyo3YDA1WEY3aFArMkhsITNCUUo9NkBmTCVGQ28KejhpWW9vMygjYkFGYEFEU3BxdFFndj5IOChI
bGdSeHQ3czN9azNLYGtGdT4+LTJRJFFNRmZQVyFMYXtoMzM2bz5YCnp1X0NNdHRIdjZ6UjsmWk5p
Uz1YOHYzQ1IjZmtuVXhIVXhKPEFZbVJzTkxXbCpQU3tBT0FSSHQjNSF3a2kyP0s7dAp6IVkzaz1z
N3RnYXgpSiVyNy1CTHBoZ2U3fkJpMGcrNkU2XlpoKHA5VEJvY3szR0FGcl4wIWd1P1JNSGFDTSQm
RmwKekJrMyV1bj4wdW9CYV9NNldOV2VxSWd+NlFFNjljOW8jZXloR3ZwaU9BQFctYW9uazw3cjEo
P2ZDe29JNU4qVSE0Cno8dXY2Nld0Y0tTUmltMHgtS2UyZDVqQnJtTGFteztRbTt7bXMxcjFHbm1O
c2I3RC1FYHQpaTlGOGZYYDJfaTMtXwp6Ymg7N1VsXiN4KSZ7eHZTPXx8fDc9bVllMzM9TWBBZ1U1
KHhDPmZnPTJOLTc9Y05uampPcnt5cml5Nm1NRmdHI2wKem5DRj1mblF2OENEeisrbzZfTHNjbH1l
UStsXlpIQVJIPj9fc0B8IyNScjZLTFJGQTElUSs9KlJSV25vTHNSYDdVCnp0NXZGPFEwcjQwUSlq
Nj1zRTRYJnNCY3QxcTwmZmJpM1ZCMk92NnRAcSowKTtVKm8qU0FQWnZ8dnZAMmFZWW5UMAp6YiU4
YStDYjctZ2UwRDBrbkVmNVFpI0A4VHAqY2V7Tjs2bHBRdUNCJUtMX0tPYXJtNWNQNl84SXI8ZTE3
aXJ5Nk8KekRkSCZgclpofnNGPWJxOXMrTzBRU2dTfkBRTDlKbXkqOTR4cj02eX5NWX4hMWZldH4o
TisoPD1NYHdARDEpYitwCnoqO0MhODNhMXVMSnYjTlNFfjt5Izg9PD5JY2ZXM0A/d0Zwd1VWeHJW
Wj5RZFF6MzJLSWVKfWt+e2NaWkVeK3lhPwp6MkQxeiMySE9uSTcoQiVfYWM/e3dGVVE7UVFBMXRC
S3RyV3JtMF8zUmdwcys/SmZxYntqWWJjUVh+dGFSQjsjJHkKelpOe1N9MXx9Z1VPSEp4Yz93VjNm
eHV6K21KNGAhRiRJWjttcVJyTnNISmQjIypEfmp1PWJQNz8tP3Z+fGN2PnZCCnpzSjZJZU53Vlp4
cmRqVGB5bCNiQklhI0d4UmEjeE1NeTtLI0NEeXlHeVFkTVN4bFdUI3REZT9wIT81d1QkK29HdAp6
OEw7S3AySFVRLVpNSj0zWEpRdjt4NWNpKj92dVRmZVkkOyh7WEdXX2h1SUZSOWE8ZkpiRl58NEkj
eFF+biREYz0KektZaGpZbWd6NU5Ta0RtOCpmWm17NlUhO1lYYE5HPig/QDMpWFNzOE9eTjVSeU9N
PVRUbXAoMz04Xit6cHoycilDCnpePkpPe2RlWmZzbzNvcTM/V28oWT9sJGdlP3VYbzslcnVgVm8+
Pzw8KDhJXz47OEVxI0tNUzlnRmwqbmVlb3NTQgp6Zm9IWW5CUUlrd2t5b3dQdSh6ZG1zYHB7PDdl
NGtyYS1aV3E8MipPc0dUdkVWJXMwVGQkaFhUKyEqOEJuaDJLTWUKekJtWlJvZGpIVj9yK181Xlg5
SjBXTDRqS1dgfWxmJUEtfDQ0SUBATFR2ZjFySGpHKHplNit3QEp0JUJ2anRzIVgwCno/MnhTP192
ZV8tazxNdWpnOzBMeiozYnVHPTMkRyZlaGVwdGhsTiokS2FPeVNTUV5uV21vPDBNKyhVRVVNRVhS
UQp6TUJiWmNGOzYrS0VsTT5pS0JfS2lKbFokOUdgY149RUBvTkcpbVdXYU5vLTNUSVc4KSRIZzBV
Yi1+OD9LaHZKPiQKejMqJm5pbUBtaihhQ3hFNSF0e2x3N081XjBFSU83ek9vJmM2bDwrfGlEeVNC
V0NHcnpAQzV7U3QhWDNoQUF9YFQ0CnooVExiWFRxKyg7QDw9TDhkWG5zc3lmdHx3I1dTVFc8Kysz
PnNnUyUoNE5UcGVJLVZBcWJ8N3NzSnZ6TkhnT1pWdQp6YVlDdmdPX1Ixfj5TeUw9Y0ZVfH5nfGh5
fFppfX1zOStkfmxZcU9CNzF6OVokd25DPXBSOVl6NERoSU0+V21qZ3UKeiY1Nm82bWFDcEMmRiMj
eSVHOzFQb2JSOWk/R25OZztnWXRjaEQlcDE5YSFlUXRaRiYzSmFLdjMzZ1o8OER+NDdFCnp0VVMx
aXdrbURhUHBqPSRtIyUpakNWRVk0Zm5MR05nMkEtYFl3SFZEM2d2fTs+KWhBdlR+QW1xUz5McmBg
aTdrdwp6Sns1X0l0YHlyQm1sYzI1REJPN0U4OzVWb3puUj5XdzVoQWF4biQyfihxYCVBLVl1UzY0
d2tCeT05ZG1gNGNYZVgKejRjfUlAP2UrRlcrYkBeUkRCSFYod25NcTJ6ZFgzU1d2OXVgJXt4Qy1x
KlV9JmBjeVhWKCVyUlQqWjZNSD9pK2kmCnpfQjhDKCtnclQle1hXVVErZkBOb1AxUj1BVyYyNnt2
LWR4KWlLXi1ObWl1ajh0eGohbT9aKlNzMU57ZGg0en0wMQp6KVlUbypKeWNTVSkrXzVyNCN5dzl7
KztpNEVlJHBlUmdJais7djtaR2RGMUskM0UlZX40TGFJKGpDLXUlMmgkJlIKejljTFhjWUNAWHdu
bnMmYm4pX1F+VGU/cm9LR0R8ZC1nXjg7K2FDe3tHKDFeKE83bTM3WTEtKzYpMDFjTiZ5MWF3Cnpv
cWN7VGBQXlhKcVBCYklXNnN9ZDR7el9mNU9tP3ZNZ05RRUpHP3YyVD1LWWReME0zSTZJWnhibnkp
JXZaUiZMRAp6SnBQbEBQc2g4UXlQQkBLVHgrQFJkY0MhS1g3fWtFbztTfGpedTJsVTdYUX1Pbztm
fDt6NExsK19yPkAxLXhsM3wKemF3cS1IJWUmY2tDK0BBaFByUDZCSzx6PTxMKjBrZktVQENYKnpl
cWJZUVQ0KF5VPlQjX1hkVDcmO0Y3MWp9Sm95CnprQ342bGg3RUA2bztXQF5JcFJOWntwdEx0TChn
US1DWX40bXFXO1VTN1p4dm1ffEB5eiZlNTNCcF9sVFBsZlB8egp6clR5eF8+bHZAeCM9XiFQelI3
cXFGPCRnbWB8WkpaKzs8KUNxdSZvdDxhezgxREYwfnJ2R3I1WHJ+OHVgbGF2MWgKejFETnl0Vj4y
ej0wMDAwV1ZAT2c+MDA0Uj0wMDRsNDAwODtfMDA0bUwwMDRDYDAwOFA+MDAyNmUwMDArbmwzJkZ9
CnowMDA1M05rbDxaYy1wakFOMCFBZjIkT2k7JkhiLXklPnBOSk9MNigkcWBWan41YHZJXzB3QUdT
Rn1vSzRQYEV5ZQp6PjQ3cFMwekFKWkskMz93NSsoczQ9I0sjOFolN2pXNylGK3hBZXExV3ZoaDVp
PmEmaFN1KEg+S1h4IyR7Vl4jITIKekgkIVklO1ZFVStKeWJYKlJEVnpiYmlxWEVFYHFtQTUrSS19
ZX14WnJVNStqNWQram8/cCVVVzs2em0tWjlWOWdOCnpuNHVwOyg0cyZkYihwMUhkemZnU3N1LTZq
WkN+TGYwZD5OOCR3SUZkZXReT29NdGY/WkNLTE81bGJqXyElMVFkbgp6IzFsQVdNdHFzM0dfaUZz
MG0yYjloYT1EP0NaPTMhb0NuPDAzTUEjJkVpcUFDT1QlaCs9NDM3U21QaU5eNm95YngKeig+NW5t
YEo5bl9hOVlaTlZLTjU9M2hHbCNlSXtCbDlxM2dMOHA3REkjamFXeUl6IXlVI0NjVUZ2LVplNkVw
a2VjCnpWb2FlRXElRHBKUTtPcyktWHVfQTZhfk1lVns1flZHPStrK2hsQ1hodVozTXlxWUkrO01l
eVdhUz5aKkdnRmFWMAp6PWdOQlc1e1l+YF89Vy10VS1IcGVlS2ttbWAjVUNQQypxZ2h8Szt+fnhJ
NlI5QSNLMkxTZnxxMlgzb2tTcz9jIVgKbmlTTVRwNn5DflJCdUUtK0h2YTx2cUxqT1pycyklKTAw
MDAwTmt2WFh1MG1qZj5EJVliCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJj
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdjNzlmODQ4ZDk2Zjk0ZTlmNzcxN2Vh
NjlkM2NmMjM1N2M1Yjg5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWNhbnZhcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDIyMSArMCwwIEBACi0vKgot
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0q
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0q
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KLSovCi0KLWZ1bmN0aW9uIGdlbmVyYXRlVGVzdChwaXhlbEZvcm1hdCwg
cGl4ZWxUeXBlLCBwcm9sb2d1ZSkgewotICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAg
ICB2YXIgZ2wgPSBudWxsOwotICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLQot
ICAgIHZhciBpbml0ID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaW5pdFRlc3RpbmdIYXJu
ZXNzV2FpdFVudGlsRG9uZSgpOwotCi0gICAgICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1h
Z2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBjYW52YXMgZWxlbWVudHMg
KCcgKyBwaXhlbEZvcm1hdCArICcvJyArIHBpeGVsVHlwZSArICcpJyk7Ci0KLSAgICAgICAgZ2wg
PSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0KLSAgICAgICAgaWYgKCFwcm9sb2d1
ZShnbCkpIHsKLSAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFk
KGdsKTsKLQotICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgICAgICBnbC5jbGVh
ckRlcHRoKDEpOwotCi0gICAgICAgIHZhciB0ZXN0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnY2FudmFzJyk7Ci0gICAgICAgIHJ1blRlc3QodGVzdENhbnZhcyk7Ci0gICAgICAgIC8v
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q2FudmFzKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzZXRDYW52YXNUb1JlZEdyZWVuKGN0eCkgewotICAgICAgdmFyIHdpZHRoID0gY3R4LmNh
bnZhcy53aWR0aDsKLSAgICAgIHZhciBoZWlnaHQgPSBjdHguY2FudmFzLmhlaWdodDsKLSAgICAg
IHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWlnaHQgLyAyKTsKLSAgICAgIGN0eC5maWxs
U3R5bGUgPSAiI2ZmMDAwMCI7Ci0gICAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhhbGZI
ZWlnaHQpOwotICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjMDBmZjAwIjsKLSAgICAgIGN0eC5maWxs
UmVjdCgwLCBoYWxmSGVpZ2h0LCB3aWR0aCwgaGVpZ2h0IC0gaGFsZkhlaWdodCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gZHJhd1RleHRJbkNhbnZhcyhjdHgpIHsKLSAgICAgIHZhciB3aWR0aCA9
IGN0eC5jYW52YXMud2lkdGg7Ci0gICAgICB2YXIgaGVpZ2h0ID0gY3R4LmNhbnZhcy5oZWlnaHQ7
Ci0gICAgICBjdHguZmlsbFN0eWxlID0gIiNmZmZmZmYiOwotICAgICAgY3R4LmZpbGxSZWN0KDAs
IDAsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgY3R4LmZvbnQgPSAnMjBwdCBBcmlhbCc7Ci0gICAg
ICBjdHguZmlsbFN0eWxlID0gJ2JsYWNrJzsKLSAgICAgIGN0eC50ZXh0QWxpZ24gPSAiY2VudGVy
IjsKLSAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAibWlkZGxlIjsKLSAgICAgIGN0eC5maWxsVGV4
dCgiMTIzNDU2Nzg5MCIsIHdpZHRoIC8gMiwgaGVpZ2h0IC8gNCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc2V0Q2FudmFzVG8yNTd4MjU3KGN0eCkgewotICAgICAgY3R4LmNhbnZhcy53aWR0aCA9
IDI1NzsKLSAgICAgIGN0eC5jYW52YXMuaGVpZ2h0ID0gMjU3OwotICAgICAgc2V0Q2FudmFzVG9S
ZWRHcmVlbihjdHgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldENhbnZhc1RvMXgyKGN0eCkg
ewotICAgICAgY3R4LmNhbnZhcy53aWR0aCA9IDE7Ci0gICAgICBjdHguY2FudmFzLmhlaWdodCA9
IDI7Ci0gICAgICBzZXRDYW52YXNUb1JlZEdyZWVuKGN0eCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gcnVuT25lSXRlcmF0aW9uKGNhbnZhcywgdXNlVGV4U3ViSW1hZ2UyRCwgZmxpcFksIHRvcENv
bG9yLCBib3R0b21Db2xvciwgb3B0X3RleHR1cmUsIG9wdF9mb250VGVzdCkKLSAgICB7Ci0gICAg
ICAgIGRlYnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJE
JyA6ICd0ZXhJbWFnZTJEJykgKwotICAgICAgICAgICAgICAnIHdpdGggZmxpcFk9JyArIGZsaXBZ
ICsgJyBjYW52YXMgc2l6ZTogJyArIGNhbnZhcy53aWR0aCArICd4JyArIGNhbnZhcy5oZWlnaHQg
KwotICAgICAgICAgICAgICAob3B0X2ZvbnRUZXN0ID8gIiB3aXRoIGZvbnRzIiA6ICIgd2l0aCBy
ZWQtZ3JlZW4iKSk7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5E
RVBUSF9CVUZGRVJfQklUKTsKLSAgICAgICAgLy8gRGlzYWJsZSBhbnkgd3JpdGVzIHRvIHRoZSBh
bHBoYSBjaGFubmVsCi0gICAgICAgIC8vIE5vIGlkZWEgd2h5IHRoaXMgd2FzIGhlcmUuIElmIGl0
J3MgaW1wb3J0YW50IHB1dCBpdCBiYWNrIGFuZCBsZWF2ZSBhIGNvbW1lbnQgYXMgdG8gd2h5Ci0v
LyAgICAgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOwotICAgICAgICBpZiAoIW9wdF90ZXh0
dXJlKSB7Ci0gICAgICAgICAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAg
ICAgICAgICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgICAgICAg
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgICAgICAgICAg
Ly8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwotICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAg
ICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19G
SUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgICAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5D
TEFNUF9UT19FREdFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHZhciB0ZXh0dXJl
ID0gb3B0X3RleHR1cmU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU2V0IHVwIHBpeGVsIHN0b3Jl
IHBhcmFtZXRlcnMKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJH
TCwgZmxpcFkpOwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0NP
TE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCwgZ2wuTk9ORSk7Ci0gICAgICAgIC8vIFVwbG9hZCB0
aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQotICAgICAgICBpZiAodXNlVGV4U3ViSW1hZ2UyRCkg
ewotICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBibGFjayBmaXJzdAot
ICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtwaXhlbEZvcm1h
dF0sIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCwgMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBudWxsKTsKLSAgICAgICAgICAg
IGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2xbcGl4ZWxGb3JtYXRd
LCBnbFtwaXhlbFR5cGVdLCBjYW52YXMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVs
Rm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgY2FudmFzKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8v
IERyYXcgdGhlIHRyaWFuZ2xlcwotICAgICAgICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAyNTUsIDAs
IDI1NV0pOwotCi0gICAgICAgIGlmIChvcHRfZm9udFRlc3QpIHsKLSAgICAgICAgICAgIHZhciB3
aWR0aCA9IGdsLmNhbnZhcy53aWR0aDsKLSAgICAgICAgICAgIHZhciBoZWlnaHQgPSBnbC5jYW52
YXMuaGVpZ2h0OwotICAgICAgICAgICAgdmFyIGhhbGZIZWlnaHQgPSBNYXRoLmZsb29yKGhlaWdo
dCAvIDIpOwotICAgICAgICAgICAgdmFyIHRvcCA9IGZsaXBZID8gMCA6IChoZWlnaHQgLSBoYWxm
SGVpZ2h0KTsKLSAgICAgICAgICAgIHZhciBib3R0b20gPSBmbGlwWSA/IChoZWlnaHQgLSBoYWxm
SGVpZ2h0KSA6IDA7Ci0gICAgICAgICAgICAvLyBjaGVjayBoYWxmIGlzIGEgc29saWQgY29sb3Iu
Ci0gICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KAotICAgICAgICAgICAgICAgICAgZ2ws
IDAsIHRvcCwgd2lkdGgsIGhhbGZIZWlnaHQsCi0gICAgICAgICAgICAgICAgICBbMjU1LCAyNTUs
IDI1NSwgMjU1XSwKLSAgICAgICAgICAgICAgICAgICJzaG91bGQgYmUgd2hpdGUiKTsKLSAgICAg
ICAgICAgIC8vIGNoZWNrIG90aGVyIGhhbGYgaXMgbm90IGEgc29saWQgY29sb3IuCi0gICAgICAg
ICAgICB3dHUuY2hlY2tDYW52YXNSZWN0Q29sb3IoCi0gICAgICAgICAgICAgICAgICBnbCwgMCwg
Ym90dG9tLCB3aWR0aCwgaGFsZkhlaWdodCwKLSAgICAgICAgICAgICAgICAgIFsyNTUsIDI1NSwg
MjU1LCAyNTVdLCAwLAotICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoImZvbnQgbWlzc2luZyIpOwotICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJmb250IHJlbmRlcmVyZWQiKTsKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICBkZWJ1Zyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBD
aGVjayBhIGZldyBwaXhlbHMgbmVhciB0aGUgdG9wIGFuZCBib3R0b20gYW5kIG1ha2Ugc3VyZSB0
aGV5IGhhdmUKLSAgICAgICAgICAgIC8vIHRoZSByaWdodCBjb2xvci4KLSAgICAgICAgICAgIHZh
ciB3aWR0aCA9IGdsLmNhbnZhcy53aWR0aDsKLSAgICAgICAgICAgIHZhciBoZWlnaHQgPSBnbC5j
YW52YXMuaGVpZ2h0OwotICAgICAgICAgICAgdmFyIGhhbGZIZWlnaHQgPSBNYXRoLmZsb29yKGhl
aWdodCAvIDIpOwotICAgICAgICAgICAgZGVidWcoIkNoZWNraW5nIGJvdHRvbSIpOwotICAgICAg
ICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgd2lkdGgsIGhhbGZIZWlnaHQsIGJv
dHRvbUNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hvdWxkQmUgIiAr
IGJvdHRvbUNvbG9yKTsKLSAgICAgICAgICAgIGRlYnVnKCJDaGVja2luZyB0b3AiKTsKLSAgICAg
ICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIGhlaWdodCAtIGhhbGZIZWlnaHQsIHdp
ZHRoLCBoYWxmSGVpZ2h0LCB0b3BDb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNob3VsZEJlICIgKyB0b3BDb2xvcik7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZmFs
c2UpIHsKLSAgICAgICAgICB2YXIgbSA9IG5ldyBJbWFnZSgpOwotICAgICAgICAgIG0uc3JjID0g
Z2wuY2FudmFzLnRvRGF0YVVSTCgpOwotICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuYXBwZW5kQ2hpbGQobSk7Ci0gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIp
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB0ZXh0dXJlOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHJ1blRlc3QoY2FudmFzKQotICAgIHsKLSAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCIyZCIpOwotICAgICAgICB2YXIgcmVkID0gWzI1NSwgMCwgMF07Ci0gICAgICAg
IHZhciBncmVlbiA9IFswLCAyNTUsIDBdOwotCi0gICAgICAgIHZhciBjb3VudCA9IDQ7Ci0gICAg
ICAgIHZhciBjYXNlTmR4ID0gMDsKLQotICAgICAgICB2YXIgY2FzZXMgPSBbCi0gICAgICAgICAg
ICB7IHN1YjogZmFsc2UsIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAgYm90dG9tOiBncmVlbiwg
Zm9udDogZmFsc2UsIGluaXQ6IHNldENhbnZhc1RvMXgyIH0sCi0gICAgICAgICAgICB7IHN1Yjog
ZmFsc2UsIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAgZm9udDogZmFs
c2UgfSwKLSAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IHRydWUsICB0b3A6IHJlZCwg
ICBib3R0b206IGdyZWVuLCBmb250OiBmYWxzZSB9LAotICAgICAgICAgICAgeyBzdWI6IHRydWUs
ICBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTogcmVkLCAgIGZvbnQ6IGZhbHNlIH0s
Ci0gICAgICAgICAgICB7IHN1YjogZmFsc2UsIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAgYm90
dG9tOiBncmVlbiwgZm9udDogZmFsc2UsIGluaXQ6IHNldENhbnZhc1RvMjU3eDI1NyB9LAotICAg
ICAgICAgICAgeyBzdWI6IGZhbHNlLCBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTog
cmVkLCAgIGZvbnQ6IGZhbHNlIH0sCi0gICAgICAgICAgICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiB0
cnVlLCAgdG9wOiByZWQsICAgYm90dG9tOiBncmVlbiwgZm9udDogZmFsc2UgfSwKLSAgICAgICAg
ICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0b206IHJlZCwg
ICBmb250OiBmYWxzZSB9LAotICAgICAgICAgICAgeyBzdWI6IGZhbHNlLCBmbGlwWTogdHJ1ZSwg
IHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZvbnQ6IHRydWUsIGluaXQ6IGRyYXdUZXh0SW5D
YW52YXMgfSwKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IGZhbHNlLCB0b3A6IGdy
ZWVuLCBib3R0b206IHJlZCwgICBmb250OiB0cnVlIH0sCi0gICAgICAgICAgICB7IHN1YjogdHJ1
ZSwgIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAgYm90dG9tOiBncmVlbiwgZm9udDogdHJ1ZSB9
LAotICAgICAgICAgICAgeyBzdWI6IHRydWUsICBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJv
dHRvbTogcmVkLCAgIGZvbnQ6IHRydWUgfSwKLSAgICAgICAgXTsKLQotICAgICAgICB2YXIgdGV4
dHVyZTsKLSAgICAgICAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKSB7Ci0gICAgICAgICAgICB2YXIg
YyA9IGNhc2VzW2Nhc2VOZHhdOwotICAgICAgICAgICAgaWYgKGMuaW5pdCkgewotICAgICAgICAg
ICAgICBjLmluaXQoY3R4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRleHR1cmUgPSBy
dW5PbmVJdGVyYXRpb24oY2FudmFzLCBjLnN1YiwgYy5mbGlwWSwgYy50b3AsIGMuYm90dG9tLCB0
ZXh0dXJlLCBjLmZvbnQpOwotICAgICAgICAgICAgLy8gZm9yIHRoZSBmaXJzdCAyIGl0ZXJhdGlv
bnMgYWx3YXlzIG1ha2UgYSBuZXcgdGV4dHVyZS4KLSAgICAgICAgICAgIGlmIChjb3VudCA+IDIp
IHsKLSAgICAgICAgICAgICAgdGV4dHVyZSA9IHVuZGVmaW5lZDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICsrY2FzZU5keDsKLSAgICAgICAgICAgIGlmIChjYXNlTmR4ID09IGNhc2VzLmxl
bmd0aCkgewotICAgICAgICAgICAgICAgIGNhc2VOZHggPSAwOwotICAgICAgICAgICAgICAgIC0t
Y291bnQ7Ci0gICAgICAgICAgICAgICAgaWYgKCFjb3VudCkgewotICAgICAgICAgICAgICAgICAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIp
OwotICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB3
dHUud2FpdEZvckNvbXBvc2l0ZShnbCwgcnVuTmV4dFRlc3QpOwotICAgICAgICB9Ci0gICAgICAg
IHJ1bk5leHRUZXN0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGluaXQ7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLWRhdGEuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDhmOTZhOTIyMmM2NTczODQwZGQ3MDIwZjhmY2IyZWIwMTI5Nzg1MmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8K
LQotZnVuY3Rpb24gZ2VuZXJhdGVUZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3Vl
KSB7Ci0gICAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIHZhciBnbCA9IG51bGw7Ci0g
ICAgdmFyIHRleHR1cmVMb2MgPSBudWxsOwotICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBm
YWxzZTsKLSAgICB2YXIgaW1hZ2VEYXRhID0gbnVsbDsKLQotICAgIHZhciBpbml0ID0gZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwot
Ci0gICAgICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2Uy
RCBjb2RlIHBhdGhzIHRha2luZyBJbWFnZURhdGEgKCcgKyBwaXhlbEZvcm1hdCArICcvJyArIHBp
eGVsVHlwZSArICcpJyk7Ci0KLSAgICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7Ci0KLSAgICAgICAgaWYgKCFwcm9sb2d1ZShnbCkpIHsKLSAgICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBw
cm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLSAgICAgICAgZ2wuY2xlYXJDb2xv
cigwLDAsMCwxKTsKLSAgICAgICAgZ2wuY2xlYXJEZXB0aCgxKTsKLSAgICAgICAgZ2wuZGlzYWJs
ZShnbC5CTEVORCk7Ci0KLSAgICAgICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAidGV4Iik7Ci0KLSAgICAgICAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRleGNhbnZhcyIpOwotICAgICAgICB2YXIgY29udGV4dDJkID0gY2FudmFz
MmQuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAgICAgaW1hZ2VEYXRhID0gY29udGV4dDJkLmNyZWF0
ZUltYWdlRGF0YSgxLCAyKTsKLSAgICAgICAgdmFyIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKLSAg
ICAgICAgZGF0YVswXSA9IDI1NTsKLSAgICAgICAgZGF0YVsxXSA9IDA7Ci0gICAgICAgIGRhdGFb
Ml0gPSAwOwotICAgICAgICBkYXRhWzNdID0gMjU1OwotICAgICAgICBkYXRhWzRdID0gMDsKLSAg
ICAgICAgZGF0YVs1XSA9IDI1NTsKLSAgICAgICAgZGF0YVs2XSA9IDA7Ci0gICAgICAgIGRhdGFb
N10gPSAwOwotCi0gICAgICAgIHJ1blRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5P
bmVJdGVyYXRpb24odXNlVGV4U3ViSW1hZ2UyRCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRv
cENvbG9yLCBib3R0b21Db2xvcikKLSAgICB7Ci0gICAgICAgIGRlYnVnKCdUZXN0aW5nICcgKyAo
dXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJEJyA6ICd0ZXhJbWFnZTJEJykgKwotICAg
ICAgICAgICAgICAnIHdpdGggZmxpcFk9JyArIGZsaXBZICsgJyBhbmQgcHJlbXVsdGlwbHlBbHBo
YT0nICsgcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAgICAgLy8gRW5hYmxlIHdyaXRlcyB0
byB0aGUgUkdCQSBjaGFubmVscwotICAgICAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMCk7Ci0g
ICAgICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAvLyBCaW5k
IHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgICAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0
ZXJzCi0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICAvLyBT
ZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5V
TlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAg
IC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQotICAgICAgICBpZiAodXNlVGV4
U3ViSW1hZ2UyRCkgewotICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBi
bGFjayBmaXJzdAotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bFtwaXhlbEZvcm1hdF0sIDEsIDIsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGdsW3Bp
eGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgbnVsbCk7Ci0gICAgICAgICAgICBnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxU
eXBlXSwgaW1hZ2VEYXRhKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbEZvcm1hdF0s
IGdsW3BpeGVsVHlwZV0sIGltYWdlRGF0YSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBQb2lu
dCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgIGdsLnVuaWZv
cm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAg
ICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotCi0gICAgICAgIC8vIENoZWNr
IHRoZSB0b3AgcGl4ZWwgYW5kIGJvdHRvbSBwaXhlbCBhbmQgbWFrZSBzdXJlIHRoZXkgaGF2ZQot
ICAgICAgICAvLyB0aGUgcmlnaHQgY29sb3IuCi0gICAgICAgIGRlYnVnKCJDaGVja2luZyBib3R0
b20gcGl4ZWwiKTsKLSAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwg
Ym90dG9tQ29sb3IsICJzaG91bGRCZSAiICsgYm90dG9tQ29sb3IpOwotICAgICAgICBkZWJ1Zygi
Q2hlY2tpbmcgdG9wIHBpeGVsIik7Ci0gICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAs
IDEsIDEsIDEsIHRvcENvbG9yLCAic2hvdWxkQmUgIiArIHRvcENvbG9yKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKLSAgICB7Ci0gICAgICAgIHZhciByZWQgPSBbMjU1LCAwLCAw
LCAyNTVdOwotICAgICAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVdOwotICAgICAgICB2
YXIgcmVkUHJlbXVsdGlwbHlBbHBoYSA9IFsyNTUsIDAsIDAsIDI1NV07Ci0gICAgICAgIHZhciBn
cmVlblByZW11bHRpcGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKLQotICAgICAgICBydW5PbmVJ
dGVyYXRpb24oZmFsc2UsIHRydWUsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVk
LCBncmVlbik7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgZmFsc2UsIGZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJh
dGlvbihmYWxzZSwgdHJ1ZSwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11
bHRpcGx5QWxwaGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJh
dGlvbihmYWxzZSwgZmFsc2UsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBncmVlblBy
ZW11bHRpcGx5QWxwaGEsIHJlZFByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICBydW5PbmVJdGVy
YXRpb24odHJ1ZSwgdHJ1ZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICByZWQsIGdy
ZWVuKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIGZhbHNlLCBmYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQpOwotICAgICAgICBydW5PbmVJdGVyYXRpb24o
dHJ1ZSwgdHJ1ZSwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5
QWxwaGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0
cnVlLCBmYWxzZSwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlw
bHlBbHBoYSwgcmVkUHJlbXVsdGlwbHlBbHBoYSk7Ci0KLSAgICAgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKLSAgICAgICAgZmluaXNo
VGVzdCgpOwotICAgIH0KLQotICAgIHJldHVybiBpbml0OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFn
ZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtaW1hZ2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNDg4ZjM2
YmRlNWU4MDY4ZTNhMDJlZTQ0MzdiMzgxZWNkN2ExZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0
OSArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0q
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLWZ1bmN0aW9uIGdlbmVyYXRlVGVz
dChwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBwYXRoVG9UZXN0Um9vdCwgcHJvbG9ndWUpIHsKLSAg
ICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gICAgdmFyIGdsID0gbnVsbDsKLSAgICB2YXIg
dGV4dHVyZUxvYyA9IG51bGw7Ci0gICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwot
ICAgIHZhciBpbWdDYW52YXM7Ci0gICAgdmFyIHJlZCA9IFsyNTUsIDAsIDBdOwotICAgIHZhciBn
cmVlbiA9IFswLCAyNTUsIDBdOwotCi0gICAgdmFyIGluaXQgPSBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgZGVz
Y3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMg
dGFraW5nIGltYWdlIGVsZW1lbnRzICgnICsgcGl4ZWxGb3JtYXQgKyAnLycgKyBwaXhlbFR5cGUg
KyAnKScpOwotCi0gICAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwot
Ci0gICAgICAgIGlmICghcHJvbG9ndWUoZ2wpKSB7Ci0gICAgICAgICAgICBmaW5pc2hUZXN0KCk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcHJvZ3JhbSA9
IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLSAgICAgICAgZ2wuY2xlYXJDb2xvcigwLDAs
MCwxKTsKLSAgICAgICAgZ2wuY2xlYXJEZXB0aCgxKTsKLQotICAgICAgICB0ZXh0dXJlTG9jID0g
Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLQotICAgICAgICB3dHUubG9h
ZFRleHR1cmUoZ2wsIHBhdGhUb1Rlc3RSb290ICsgIi9yZXNvdXJjZXMvcmVkLWdyZWVuLnBuZyIs
IHJ1blRlc3QpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwg
dXNlVGV4U3ViSW1hZ2UyRCwgZmxpcFksIHRvcENvbG9yLCBib3R0b21Db2xvcikKLSAgICB7Ci0g
ICAgICAgIGRlYnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFn
ZTJEJyA6ICd0ZXhJbWFnZTJEJykgKwotICAgICAgICAgICAgICAnIHdpdGggZmxpcFk9JyArIGZs
aXBZKTsKLSAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JV
RkZFUl9CSVQpOwotICAgICAgICAvLyBEaXNhYmxlIGFueSB3cml0ZXMgdG8gdGhlIGFscGhhIGNo
YW5uZWwKLSAgICAgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOwotICAgICAgICB2YXIgdGV4
dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0
byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXh0dXJlKTsKLSAgICAgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwotICAgICAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgLy8gU2V0IHVwIHBpeGVsIHN0
b3JlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9X
RUJHTCwgZmxpcFkpOwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQ
TFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNL
X0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCwgZ2wuTk9ORSk7Ci0gICAgICAgIC8vIFVwbG9h
ZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQotICAgICAgICBpZiAodXNlVGV4U3ViSW1hZ2Uy
RCkgewotICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBibGFjayBmaXJz
dAotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtwaXhlbEZv
cm1hdF0sIGltYWdlLndpZHRoLCBpbWFnZS5oZWlnaHQsIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgbnVsbCk7Ci0gICAgICAgICAg
ICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsW3BpeGVsRm9ybWF0
XSwgZ2xbcGl4ZWxUeXBlXSwgaW1hZ2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVs
Rm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgaW1hZ2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
UG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC51
bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0gICAgICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwot
ICAgICAgICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLSAgICAgICAgLy8gQ2hl
Y2sgYSBmZXcgcGl4ZWxzIG5lYXIgdGhlIHRvcCBhbmQgYm90dG9tIGFuZCBtYWtlIHN1cmUgdGhl
eSBoYXZlCi0gICAgICAgIC8vIHRoZSByaWdodCBjb2xvci4KLSAgICAgICAgZGVidWcoIkNoZWNr
aW5nIGxvd2VyIGxlZnQgY29ybmVyIik7Ci0gICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2ws
IDQsIDQsIDIsIDIsIGJvdHRvbUNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
aG91bGRCZSAiICsgYm90dG9tQ29sb3IpOwotICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIg
bGVmdCBjb3JuZXIiKTsKLSAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwgZ2wuY2Fu
dmFzLmhlaWdodCAtIDgsIDIsIDIsIHRvcENvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzaG91bGRCZSAiICsgdG9wQ29sb3IpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRl
c3RPbkltYWdlKGltYWdlKSB7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwgZmFsc2Us
IHRydWUsIHJlZCwgZ3JlZW4pOwotICAgICAgICBydW5PbmVJdGVyYXRpb24oaW1hZ2UsIGZhbHNl
LCBmYWxzZSwgZ3JlZW4sIHJlZCk7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwgdHJ1
ZSwgdHJ1ZSwgcmVkLCBncmVlbik7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwgdHJ1
ZSwgZmFsc2UsIGdyZWVuLCByZWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoaW1h
Z2UpCi0gICAgewotICAgICAgICBydW5UZXN0T25JbWFnZShpbWFnZSk7Ci0KLSAgICAgICAgaW1n
Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gICAgICAgIGltZ0Nh
bnZhcy53aWR0aCA9IDE7Ci0gICAgICAgIGltZ0NhbnZhcy5oZWlnaHQgPSAyOwotICAgICAgICB2
YXIgaW1nQ3R4ID0gaW1nQ2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAgICAgIHZhciBpbWdE
YXRhID0gaW1nQ3R4LmNyZWF0ZUltYWdlRGF0YSgxLCAyKTsKLSAgICAgICAgaW1nRGF0YS5kYXRh
WzBdID0gcmVkWzBdOwotICAgICAgICBpbWdEYXRhLmRhdGFbMV0gPSByZWRbMV07Ci0gICAgICAg
IGltZ0RhdGEuZGF0YVsyXSA9IHJlZFsyXTsKLSAgICAgICAgaW1nRGF0YS5kYXRhWzNdID0gMjU1
OwotICAgICAgICBpbWdEYXRhLmRhdGFbNF0gPSBncmVlblswXTsKLSAgICAgICAgaW1nRGF0YS5k
YXRhWzVdID0gZ3JlZW5bMV07Ci0gICAgICAgIGltZ0RhdGEuZGF0YVs2XSA9IGdyZWVuWzJdOwot
ICAgICAgICBpbWdEYXRhLmRhdGFbN10gPSAyNTU7Ci0gICAgICAgIGltZ0N0eC5wdXRJbWFnZURh
dGEoaW1nRGF0YSwgMCwgMCk7Ci0KLSAgICAgICAgLy8gYXBwYXJlbnRseSBJbWFnZSBpcyBkaWZm
ZXJlbnQgdGhhbiA8aW1nPi4KLSAgICAgICAgdmFyIG5ld0ltYWdlID0gIG5ldyBJbWFnZSgpOwot
ICAgICAgICBuZXdJbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJ1blRl
c3QyKG5ld0ltYWdlKTsKLSAgICAgICAgfTsKLSAgICAgICAgbmV3SW1hZ2Uuc3JjID0gaW1nQ2Fu
dmFzLnRvRGF0YVVSTCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QyKGltYWdlKSB7
Ci0gICAgICAgIHJ1blRlc3RPbkltYWdlKGltYWdlKTsKLQotICAgICAgICB2YXIgbmV3SW1hZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgbmV3SW1hZ2Uub25sb2Fk
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBydW5UZXN0MyhuZXdJbWFnZSk7Ci0gICAgICAg
IH07Ci0gICAgICAgIG5ld0ltYWdlLnNyYyA9IGltZ0NhbnZhcy50b0RhdGFVUkwoKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0MyhpbWFnZSkgewotICAgICAgICBydW5UZXN0T25JbWFn
ZShpbWFnZSk7Ci0KLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNo
b3VsZCBiZSBubyBlcnJvcnMiKTsKLSAgICAgICAgZmluaXNoVGVzdCgpOwotICAgIH0KLQotICAg
IHJldHVybiBpbml0OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmZmJhNTk2ZDIyMTcwZmRlNjI2Y2YyMWVhNWVi
NDZlYzU3MDI3NTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC12aWRlby5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2OSArMCwwIEBACi0vKgotKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot
KioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KLSovCi0KLS8vIFRoaXMgYmxvY2sgbmVlZHMgdG8gYmUgb3V0c2lkZSB0aGUgb25s
b2FkIGhhbmRsZXIgaW4gb3JkZXIgZm9yIHRoaXMKLS8vIHRlc3QgdG8gcnVuIHJlbGlhYmx5IGlu
IFdlYktpdCdzIHRlc3QgaGFybmVzcyAoYXQgbGVhc3QgdGhlCi0vLyBDaHJvbWl1bSBwb3J0KS4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NDQ4Ci1pbml0VGVzdGlu
Z0hhcm5lc3NXYWl0VW50aWxEb25lKCk7Ci0KLXZhciBvbGQgPSBkZWJ1ZzsKLXZhciBkZWJ1ZyA9
IGZ1bmN0aW9uKG1zZykgewotICBjb25zb2xlLmxvZyhtc2cpOwotICBvbGQobXNnKTsKLX07Ci0K
LWZ1bmN0aW9uIGdlbmVyYXRlVGVzdChwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBwcm9sb2d1ZSkg
ewotICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgICB2YXIgZ2wgPSBudWxsOwotICAg
IHZhciB0ZXh0dXJlTG9jID0gbnVsbDsKLSAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFs
c2U7Ci0KLSAgICAvLyBUZXN0IGVhY2ggZm9ybWF0IHNlcGFyYXRlbHkgYmVjYXVzZSBtYW55IGJy
b3dzZXJzIGltcGxlbWVudCBlYWNoCi0gICAgLy8gZGlmZmVyZW50bHkuIFNvbWUgbWlnaHQgYmUg
R1BVIGFjY2VsZXJhdGVkLCBzb21lIG1pZ2h0IG5vdC4gRXRjLi4uCi0gICAgdmFyIHZpZGVvcyA9
IFsKLSAgICAgIHsgc3JjOiAiLi4vcmVzb3VyY2VzL3JlZC1ncmVlbi5tcDQiICAgICAgICAgLCB0
eXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDJFMDFFLCBtcDRhLjQwLjIiJywgfSwKLSAg
ICAgIHsgc3JjOiAiLi4vcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm0iLCB0eXBlOiAn
dmlkZW8vd2VibTsgY29kZWNzPSJ2cDgsIHZvcmJpcyInLCAgICAgICAgICAgfSwKLSAgICAgIHsg
c3JjOiAiLi4vcmVzb3VyY2VzL3JlZC1ncmVlbi50aGVvcmEub2d2IiwgICB0eXBlOiAndmlkZW8v
b2dnOyBjb2RlY3M9InRoZW9yYSwgdm9yYmlzIicsICAgICAgICAgfSwKLSAgICBdOwotCi0gICAg
dmFyIHZpZGVvTmR4ID0gMDsKLSAgICB2YXIgdmlkZW87Ci0gICAgdmFyIHJ1bk5leHRWaWRlbyA9
IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAodmlkZW9OZHggPT0gdmlkZW9zLmxlbmd0aCkgewot
ICAgICAgICAgICAgdmlkZW8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigicGxheWluZyIsIHJ1blRlc3Qp
OwotICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIHZhciBpbmZvID0gdmlkZW9zW3ZpZGVvTmR4KytdOwotICAgICAgICBkZWJ1
ZygiIik7Ci0gICAgICAgIGRlYnVnKCJ0ZXN0aW5nOiAiICsgaW5mby50eXBlKTsKLSAgICAgICAg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOwotICAgICAgICB2YXIgY2Fu
UGxheSA9IHRydWU7Ci0gICAgICAgIGlmICghdmlkZW8uY2FuUGxheVR5cGUpIHsKLSAgICAgICAg
ICB0ZXN0RmFpbGVkKCJ2aWRlby5jYW5QbGF5VHlwZSByZXF1aXJlZCBtZXRob2QgbWlzc2luZyIp
OwotICAgICAgICAgIHJ1bk5leHRUZXN0KCk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgaWYoIXZpZGVvLmNhblBsYXlUeXBlKGluZm8udHlwZSkucmVwbGFjZSgvbm8v
LCAnJykpIHsKLSAgICAgICAgICBkZWJ1ZyhpbmZvLnR5cGUgKyAiIHVuc3VwcG9ydGVkIik7Ci0g
ICAgICAgICAgcnVuTmV4dFZpZGVvKCk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Owot
Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOwotICAgICAgICB2aWRl
by5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICAgInBsYXlpbmciLCBmdW5jdGlvbigpIHsg
cnVuVGVzdCh2aWRlbyk7IH0sIHRydWUpOwotICAgICAgICB2aWRlby50eXBlID0gaW5mby50eXBl
OwotICAgICAgICB2aWRlby5zcmMgPSBpbmZvLnNyYzsKLSAgICAgICAgdmlkZW8ubG9vcCA9IHRy
dWU7Ci0gICAgICAgIHZpZGVvLnBsYXkoKTsKLSAgICB9Ci0KLSAgICB2YXIgaW5pdCA9IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQg
dGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyB2aWRlbyBlbGVtZW50cyAoJyArIHBpeGVs
Rm9ybWF0ICsgJy8nICsgcGl4ZWxUeXBlICsgJyknKTsKLQotICAgICAgICBnbCA9IHd0dS5jcmVh
dGUzRENvbnRleHQoImV4YW1wbGUiKTsKLQotICAgICAgICBpZiAoIXByb2xvZ3VlKGdsKSkgewot
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0g
ICAgICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMSk7Ci0gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7
Ci0KLSAgICAgICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAi
dGV4Iik7Ci0gICAgICAgIHJ1bk5leHRWaWRlbygpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1
bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIHVzZVRleFN1YkltYWdlMkQsIGZsaXBZLCB0b3BD
b2xvciwgYm90dG9tQ29sb3IpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVz
ZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcgOiAndGV4SW1hZ2UyRCcpICsKLSAgICAg
ICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSk7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNP
TE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAgICAgLy8gRGlzYWJs
ZSBhbnkgd3JpdGVzIHRvIHRoZSBhbHBoYSBjaGFubmVsCi0gICAgICAgIGdsLmNvbG9yTWFzaygx
LCAxLCAxLCAwKTsKLSAgICAgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0g
ICAgICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgICAgICAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgICAgIC8vIFNldCB1cCB0
ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICAgICAgLy8g
U2V0IHVwIHBpeGVsIHN0b3JlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wu
VU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkpOwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5V
TlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgICAgICAgLy8gVXBsb2Fk
IHRoZSB2aWRlb0VsZW1lbnQgaW50byB0aGUgdGV4dHVyZQotICAgICAgICBpZiAodXNlVGV4U3Vi
SW1hZ2UyRCkgewotICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBibGFj
ayBmaXJzdAotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtw
aXhlbEZvcm1hdF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRWxlbWVudC52aWRl
b1dpZHRoLCB2aWRlb0VsZW1lbnQudmlkZW9IZWlnaHQsIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgbnVsbCk7Ci0gICAgICAgICAg
ICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsW3BpeGVsRm9ybWF0
XSwgZ2xbcGl4ZWxUeXBlXSwgdmlkZW9FbGVtZW50KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBn
bFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIHZpZGVvRWxlbWVudCk7Ci0gICAgICAgIH0K
LQotICAgICAgICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAg
ICAgICBjLndpZHRoID0gMTY7Ci0gICAgICAgIGMuaGVpZ2h0ID0gMTY7Ci0gICAgICAgIGMuc3R5
bGUuYm9yZGVyID0gIjFweCBzb2xpZCBibGFjayI7Ci0gICAgICAgIHZhciBjdHggPSBjLmdldENv
bnRleHQoIjJkIik7Ci0gICAgICAgIGN0eC5kcmF3SW1hZ2UodmlkZW9FbGVtZW50LCAwLCAwLCAx
NiwgMTYpOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpOwotCi0gICAgICAg
IC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKLSAgICAgICAg
Z2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIDApOwotICAgICAgICAvLyBEcmF3IHRoZSB0cmlhbmds
ZXMKLSAgICAgICAgd3R1LmRyYXdRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgICAgIC8v
IENoZWNrIGEgZmV3IHBpeGVscyBuZWFyIHRoZSB0b3AgYW5kIGJvdHRvbSBhbmQgbWFrZSBzdXJl
IHRoZXkgaGF2ZQotICAgICAgICAvLyB0aGUgcmlnaHQgY29sb3IuCi0gICAgICAgIGRlYnVnKCJD
aGVja2luZyBsb3dlciBsZWZ0IGNvcm5lciIpOwotICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0
KGdsLCA0LCA0LCAyLCAyLCBib3R0b21Db2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic2hvdWxkQmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICAgICAgZGVidWcoIkNoZWNraW5nIHVw
cGVyIGxlZnQgY29ybmVyIik7Ci0gICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDQsIGds
LmNhbnZhcy5oZWlnaHQgLSA4LCAyLCAyLCB0b3BDb2xvciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic2hvdWxkQmUgIiArIHRvcENvbG9yKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBy
dW5UZXN0KHZpZGVvRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZWQgPSBbMjU1LCAwLCAw
XTsKLSAgICAgICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMF07Ci0gICAgICAgIHJ1bk9uZUl0ZXJh
dGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0cnVlLCByZWQsIGdyZWVuKTsKLSAgICAgICAgcnVu
T25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgZmFsc2UsIGZhbHNlLCBncmVlbiwgcmVkKTsKLSAg
ICAgICAgcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgdHJ1ZSwgdHJ1ZSwgcmVkLCBncmVl
bik7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIHRydWUsIGZhbHNlLCBn
cmVlbiwgcmVkKTsKLQotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
c2hvdWxkIGJlIG5vIGVycm9ycyIpOwotCi0gICAgICAgIHJ1bk5leHRWaWRlbygpOwotICAgIH0K
LQotICAgIHJldHVybiBpbml0OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvdmVydGV4U2hhZGVyLnZlcnQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0
ZXhTaGFkZXIudmVydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWE2OGJlODEyOTA1
YTQ5YWYyOTZmMDhmYWNlMTIxMWZkZTAzMTFmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFk
ZXIudmVydAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi1Db3B5cmlnaHQgKEMp
IDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLWFyZSBtZXQ6Ci0xLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBUyBJUyBBTkQgQU5ZCi1FWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi1QVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci1FWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi1QUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLVBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1P
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotKi8KLWF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4OwotYXR0cmlidXRlIHZlYzMg
YV9ub3JtYWw7Ci0KLXVuaWZvcm0gbWVkaXVtcCBtYXQ0IHVfbW9kZWxWaWV3UHJvak1hdHJpeDsK
LQotdmFyeWluZyB2ZWMzIHZfbm9ybWFsOwotCi12b2lkIG1haW4oKQotewotICAgIHZfbm9ybWFs
ID0gYV9ub3JtYWw7Ci0gICAgZ2xfUG9zaXRpb24gPSAgdV9tb2RlbFZpZXdQcm9qTWF0cml4ICog
YV92ZXJ0ZXg7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYyMTIyYzkwN2NkZWU5NTM0
NDQ0OTEzZDM2MThmYzc0MjU2MGZiYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxz
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTk5OCArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi12YXIgV2ViR0xUZXN0VXRpbHMgPSAoZnVuY3Rpb24oKSB7Ci0idXNlIHN0cmljdCI7Ci0K
LS8qKgotICogV3JhcHBlZCBsb2dnaW5nIGZ1bmN0aW9uLgotICogQHBhcmFtIHtzdHJpbmd9IG1z
ZyBUaGUgbWVzc2FnZSB0byBsb2cuCi0gKi8KLXZhciBsb2cgPSBmdW5jdGlvbihtc2cpIHsKLSAg
aWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykgewotICAgIHdpbmRvdy5j
b25zb2xlLmxvZyhtc2cpOwotICB9Ci19OwotCi0vKioKLSAqIFdyYXBwZWQgbG9nZ2luZyBmdW5j
dGlvbi4KLSAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgVGhlIG1lc3NhZ2UgdG8gbG9nLgotICovCi12
YXIgZXJyb3IgPSBmdW5jdGlvbihtc2cpIHsKLSAgaWYgKHdpbmRvdy5jb25zb2xlKSB7Ci0gICAg
aWYgKHdpbmRvdy5jb25zb2xlLmVycm9yKSB7Ci0gICAgICB3aW5kb3cuY29uc29sZS5lcnJvciht
c2cpOwotICAgIH0KLSAgICBlbHNlIGlmICh3aW5kb3cuY29uc29sZS5sb2cpIHsKLSAgICAgIHdp
bmRvdy5jb25zb2xlLmxvZyhtc2cpOwotICAgIH0KLSAgfQotfTsKLQotLyoqCi0gKiBUdXJuIG9m
ZiBhbGwgbG9nZ2luZy4KLSAqLwotdmFyIGxvZ2dpbmdPZmYgPSBmdW5jdGlvbigpIHsKLSAgbG9n
ID0gZnVuY3Rpb24oKSB7fTsKLSAgZXJyb3IgPSBmdW5jdGlvbigpIHt9OwotfTsKLQotLyoqCi0g
KiBDb252ZXJ0cyBhIFdlYkdMIGVudW0gdG8gYSBzdHJpbmcKLSAqIEBwYXJhbSB7IVdlYkdMQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gdmFs
dWUgVGhlIGVudW0gdmFsdWUuCi0gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBlbnVtIGFzIGEgc3Ry
aW5nLgotICovCi12YXIgZ2xFbnVtVG9TdHJpbmcgPSBmdW5jdGlvbihnbCwgdmFsdWUpIHsKLSAg
Zm9yICh2YXIgcCBpbiBnbCkgewotICAgIGlmIChnbFtwXSA9PSB2YWx1ZSkgewotICAgICAgcmV0
dXJuIHA7Ci0gICAgfQotICB9Ci0gIHJldHVybiAiMHgiICsgdmFsdWUudG9TdHJpbmcoMTYpOwot
fTsKLQotdmFyIGxhc3RFcnJvciA9ICIiOwotCi0vKioKLSAqIFJldHVybnMgdGhlIGxhc3QgY29t
cGlsZXIvbGlua2VyIGVycm9yLgotICogQHJldHVybiB7c3RyaW5nfSBUaGUgbGFzdCBjb21waWxl
ci9saW5rZXIgZXJyb3IuCi0gKi8KLXZhciBnZXRMYXN0RXJyb3IgPSBmdW5jdGlvbigpIHsKLSAg
cmV0dXJuIGxhc3RFcnJvcjsKLX07Ci0KLS8qKgotICogV2hldGhlciBhIGhheXN0YWNrIGVuZHMg
d2l0aCBhIG5lZWRsZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBoYXlzdGFjayBTdHJpbmcgdG8gc2Vh
cmNoCi0gKiBAcGFyYW0ge3N0cmluZ30gbmVlZGxlIFN0cmluZyB0byBzZWFyY2ggZm9yLgotICog
QHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhheXN0YWNrIGVuZHMgd2l0aCBuZWVkbGUuCi0gKi8K
LXZhciBlbmRzV2l0aCA9IGZ1bmN0aW9uKGhheXN0YWNrLCBuZWVkbGUpIHsKLSAgcmV0dXJuIGhh
eXN0YWNrLnN1YnN0cihoYXlzdGFjay5sZW5ndGggLSBuZWVkbGUubGVuZ3RoKSA9PT0gbmVlZGxl
OwotfTsKLQotLyoqCi0gKiBXaGV0aGVyIGEgaGF5c3RhY2sgc3RhcnRzIHdpdGggYSBuZWVkbGUu
Ci0gKiBAcGFyYW0ge3N0cmluZ30gaGF5c3RhY2sgU3RyaW5nIHRvIHNlYXJjaAotICogQHBhcmFt
IHtzdHJpbmd9IG5lZWRsZSBTdHJpbmcgdG8gc2VhcmNoIGZvci4KLSAqIEBwYXJhbSB7Ym9vbGVh
bn0gVHJ1ZSBpZiBoYXlzdGFjayBzdGFydHMgd2l0aCBuZWVkbGUuCi0gKi8KLXZhciBzdGFydHNX
aXRoID0gZnVuY3Rpb24oaGF5c3RhY2ssIG5lZWRsZSkgewotICByZXR1cm4gaGF5c3RhY2suc3Vi
c3RyKDAsIG5lZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Ci19OwotCi0vKioKLSAqIEEgdmVydGV4
IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZh
ciBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyID0gWwotICAnYXR0cmlidXRlIHZlYzQgdlBvc2l0
aW9uOycsCi0gICdhdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZDA7JywKLSAgJ3ZhcnlpbmcgdmVjMiB0
ZXhDb29yZDsnLAotICAndm9pZCBtYWluKCkgeycsCi0gICcgICAgZ2xfUG9zaXRpb24gPSB2UG9z
aXRpb247JywKLSAgJyAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsnLAotICAnfSddLmpvaW4oJ1xu
Jyk7Ci0KLS8qKgotICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCi0g
KiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIgc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyID0g
WwotICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKLSAgJ3VuaWZvcm0gc2FtcGxlcjJEIHRl
eDsnLAotICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCi0gICd2b2lkIG1haW4oKSB7JywKLSAg
JyAgICBnbF9GcmFnRGF0YVswXSA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKTsnLAotICAnfSdd
LmpvaW4oJ1xuJyk7Ci0KLS8qKgotICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0
dXJlLgotICogQHR5cGUge3N0cmluZ30KLSAqLwotdmFyIG5vVGV4Q29vcmRUZXh0dXJlVmVydGV4
U2hhZGVyID0gWwotICAnYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCi0gICd2YXJ5aW5nIHZl
YzIgdGV4Q29vcmQ7JywKLSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGdsX1Bvc2l0aW9uID0g
dlBvc2l0aW9uOycsCi0gICcgICAgdGV4Q29vcmQgPSB2UG9zaXRpb24ueHkgKiAwLjUgKyAwLjU7
JywKLSAgJ30nXS5qb2luKCdcbicpOwotCi0vKioKLSAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSB1
bmlmb3JtIGNvbG9yLgotICogQHR5cGUge3N0cmluZ30KLSAqLwotdmFyIHNpbXBsZUNvbG9yVmVy
dGV4U2hhZGVyID0gWwotICAnYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCi0gICd2b2lkIG1h
aW4oKSB7JywKLSAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAotICAnfSddLmpvaW4o
J1xuJyk7Ci0KLS8qKgotICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIGEgdW5pZm9ybSBjb2xvci4K
LSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZhciBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyID0g
WwotICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKLSAgJ3VuaWZvcm0gdmVjNCB1X2NvbG9y
OycsCi0gICd2b2lkIG1haW4oKSB7JywKLSAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHVfY29sb3I7
JywKLSAgJ30nXS5qb2luKCdcbicpOwotCi0vKioKLSAqIEEgdmVydGV4IHNoYWRlciBmb3IgdmVy
dGV4IGNvbG9ycy4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZhciBzaW1wbGVWZXJ0ZXhDb2xv
clZlcnRleFNoYWRlciA9IFsKLSAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAotICAnYXR0
cmlidXRlIHZlYzQgYV9jb2xvcjsnLAotICAndmFyeWluZyB2ZWM0IHZfY29sb3I7JywKLSAgJ3Zv
aWQgbWFpbigpIHsnLAotICAnICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCi0gICcgICAg
dl9jb2xvciA9IGFfY29sb3I7JywKLSAgJ30nXS5qb2luKCdcbicpOwotCi0vKioKLSAqIEEgZnJh
Z21lbnQgc2hhZGVyIGZvciB2ZXJ0ZXggY29sb3JzLgotICogQHR5cGUge3N0cmluZ30KLSAqLwot
dmFyIHNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCi0gICdwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsnLAotICAndmFyeWluZyB2ZWM0IHZfY29sb3I7JywKLSAgJ3ZvaWQgbWFpbigp
IHsnLAotICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdl9jb2xvcjsnLAotICAnfSddLmpvaW4oJ1xu
Jyk7Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHZlcnRleCBzaGFkZXIuCi0g
KiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICog
QHJldHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12YXIgc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4
U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcihnbCwgc2ltcGxl
VGV4dHVyZVZlcnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi0vKioKLSAqIENy
ZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSBmcmFnbWVudCBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7IVdlYkdM
U2hhZGVyfQotICovCi12YXIgc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIgPSBmdW5j
dGlvbihnbCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKAotICAgICAgICBnbCwgc2ltcGxlVGV4
dHVyZUZyYWdtZW50U2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIpOwotfTsKLQotLyoqCi0gKiBD
cmVhdGVzIGEgdGV4dHVyZSB2ZXJ0ZXggc2hhZGVyIHRoYXQgZG9lc24ndCBuZWVkIHRleGNvb3Jk
cy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2Uu
Ci0gKiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBzZXR1cE5vVGV4Q29vcmRUZXh0
dXJlVmVydGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcihn
bCwgbm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIpOwotfTsK
LQotLyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIHZlcnRleCBjb2xvciB2ZXJ0ZXggc2hhZGVyLgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEByZXR1cm4geyFXZWJHTFNoYWRlcn0KLSAqLwotdmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JW
ZXJ0ZXhTaGFkZXIgPSBmdW5jdGlvbihnbCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBz
aW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi0v
KioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgdmVydGV4IGNvbG9yIGZyYWdtZW50IHNoYWRlci4KLSAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBA
cmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVZlcnRleENvbG9yRnJh
Z21lbnRTaGFkZXIgPSBmdW5jdGlvbihnbCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKAotICAg
ICAgICBnbCwgc2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hB
REVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSBjb2xvciB2ZXJ0ZXggc2hhZGVy
LgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4K
LSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0KLSAqLwotdmFyIHNldHVwU2ltcGxlQ29sb3JWZXJ0
ZXhTaGFkZXIgPSBmdW5jdGlvbihnbCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBzaW1w
bGVDb2xvclZlcnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUik7Ci19OwotCi0vKioKLSAqIENy
ZWF0ZXMgYSBzaW1wbGUgY29sb3IgZnJhZ21lbnQgc2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4geyFXZWJHTFNo
YWRlcn0KLSAqLwotdmFyIHNldHVwU2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9u
KGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIoCi0gICAgICAgIGdsLCBzaW1wbGVDb2xvckZy
YWdtZW50U2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIpOwotfTsKLQotLyoqCi0gKiBDcmVhdGVz
IGEgcHJvZ3JhbSwgYXR0YWNoZXMgc2hhZGVycywgYmluZHMgYXR0cmliIGxvY2F0aW9ucywgbGlu
a3MgdGhlCi0gKiBwcm9ncmFtIGFuZCBjYWxscyB1c2VQcm9ncmFtLgotICogQHBhcmFtIHshQXJy
YXkuPCFXZWJHTFNoYWRlcnxzdHJpbmc+fSBzaGFkZXJzIFRoZSBzaGFkZXJzIHRvCi0gKiAgICAg
ICAgYXR0YWNoLCBvciB0aGUgc291cmNlLCBvciB0aGUgaWQgb2YgYSBzY3JpcHQgdG8gZ2V0Ci0g
KiAgICAgICAgdGhlIHNvdXJjZSBmcm9tLgotICogQHBhcmFtIHshQXJyYXkuPHN0cmluZz59IG9w
dF9hdHRyaWJzIFRoZSBhdHRyaWJzIG5hbWVzLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59
IG9wdF9sb2NhdGlvbnMgVGhlIGxvY2F0aW9ucyBmb3IgdGhlIGF0dHJpYnMuCi0gKi8KLXZhciBz
ZXR1cFByb2dyYW0gPSBmdW5jdGlvbihnbCwgc2hhZGVycywgb3B0X2F0dHJpYnMsIG9wdF9sb2Nh
dGlvbnMpIHsKLSAgdmFyIHJlYWxTaGFkZXJzID0gW107Ci0gIHZhciBwcm9ncmFtID0gZ2wuY3Jl
YXRlUHJvZ3JhbSgpOwotICB2YXIgc2hhZGVyVHlwZSA9IHVuZGVmaW5lZDsKLSAgZm9yICh2YXIg
aWkgPSAwOyBpaSA8IHNoYWRlcnMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIHNoYWRlciA9IHNo
YWRlcnNbaWldOwotICAgIGlmICh0eXBlb2Ygc2hhZGVyID09ICdzdHJpbmcnKSB7Ci0gICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNoYWRlcik7Ci0gICAgICBpZiAo
ZWxlbWVudCkgewotICAgICAgICBpZiAoZWxlbWVudC50eXBlICE9ICJ4LXNoYWRlci94LXZlcnRl
eCIgJiYgZWxlbWVudC50eXBlICE9ICJ4LXNoYWRlci94LWZyYWdtZW50IikKLSAgICAgICAgICBz
aGFkZXJUeXBlID0gaWkgPyBnbC5GUkFHTUVOVF9TSEFERVIgOiBnbC5WRVJURVhfU0hBREVSOwot
ICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgc2hhZGVyLCBzaGFkZXJU
eXBlKTsKLSAgICAgIH0gZWxzZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLnZlcnQiKSkgewotICAg
ICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuVkVSVEVYX1NI
QURFUik7Ci0gICAgICB9IGVsc2UgaWYgKGVuZHNXaXRoKHNoYWRlciwgIi5mcmFnIikpIHsKLSAg
ICAgICAgc2hhZGVyID0gbG9hZFNoYWRlckZyb21GaWxlKGdsLCBzaGFkZXIsIGdsLkZSQUdNRU5U
X1NIQURFUik7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyKGds
LCBzaGFkZXIsIGlpID8gZ2wuRlJBR01FTlRfU0hBREVSIDogZ2wuVkVSVEVYX1NIQURFUik7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBzaGFkZXIpOwotICB9
Ci0gIGlmIChvcHRfYXR0cmlicykgewotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBvcHRfYXR0
cmlicy5sZW5ndGg7ICsraWkpIHsKLSAgICAgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbigKLSAgICAg
ICAgICBwcm9ncmFtLAotICAgICAgICAgIG9wdF9sb2NhdGlvbnMgPyBvcHRfbG9jYXRpb25zW2lp
XSA6IGlpLAotICAgICAgICAgIG9wdF9hdHRyaWJzW2lpXSk7Ci0gICAgfQotICB9Ci0gIGdsLmxp
bmtQcm9ncmFtKHByb2dyYW0pOwotCi0gIC8vIENoZWNrIHRoZSBsaW5rIHN0YXR1cwotICB2YXIg
bGlua2VkID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyk7
Ci0gIGlmICghbGlua2VkKSB7Ci0gICAgICAvLyBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRo
ZSBsaW5rCi0gICAgICBsYXN0RXJyb3IgPSBnbC5nZXRQcm9ncmFtSW5mb0xvZyAocHJvZ3JhbSk7
Ci0gICAgICBlcnJvcigiRXJyb3IgaW4gcHJvZ3JhbSBsaW5raW5nOiIgKyBsYXN0RXJyb3IpOwot
Ci0gICAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOwotICAgICAgcmV0dXJuIG51bGw7Ci0g
IH0KLQotICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0K
LS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHByb2dyYW0uCi0gKiBAcGFyYW0geyFX
ZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1i
ZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9u
LgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9j
YXRpb24gZm9yIHRleHR1cmUgY29vcmRzLgotICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQotICov
Ci12YXIgc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbSA9IGZ1bmN0aW9uKAotICAgIGdsLCBvcHRf
cG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKLSAgb3B0X3Bvc2l0aW9u
TG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOwotICBvcHRfdGV4Y29vcmRMb2Nh
dGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8IDE7Ci0gIHZhciB2cyA9IHNldHVwU2ltcGxl
VGV4dHVyZVZlcnRleFNoYWRlcihnbCk7Ci0gIHZhciBmcyA9IHNldHVwU2ltcGxlVGV4dHVyZUZy
YWdtZW50U2hhZGVyKGdsKTsKLSAgaWYgKCF2cyB8fCAhZnMpIHsKLSAgICByZXR1cm4gbnVsbDsK
LSAgfQotICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLAotICAgICAgW3Zz
LCBmc10sCi0gICAgICBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwKLSAgICAgIFtvcHRfcG9z
aXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb25dKTsKLSAgaWYgKCFwcm9ncmFtKSB7
Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgICBnbC5kZWxldGVTaGFkZXIodnMpOwotICB9
Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoq
Ci0gKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdlYkdM
Q29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcmV0dXJuIHtXZWJHTFBy
b2dyYW19Ci0gKi8KLXZhciBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbSA9IGZ1bmN0aW9u
KGdsKSB7Ci0gIHZhciB2cyA9IHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIoZ2wp
OwotICB2YXIgZnMgPSBzZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcihnbCk7Ci0gIGlm
ICghdnMgfHwgIWZzKSB7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLSAgdmFyIHByb2dyYW0gPSBz
ZXR1cFByb2dyYW0oCi0gICAgICBnbCwKLSAgICAgIFt2cywgZnNdLAotICAgICAgWyd2UG9zaXRp
b24nXSwKLSAgICAgIFswXSk7Ci0gIGlmICghcHJvZ3JhbSkgewotICAgIGdsLmRlbGV0ZVNoYWRl
cihmcyk7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKLSAgfQotICBnbC51c2VQcm9ncmFtKHBy
b2dyYW0pOwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBs
ZSB0ZXh0dXJlIHByb2dyYW0uCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJH
TENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9u
IFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgotICogQHBhcmFtIHtudW1iZXJ9IG9w
dF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRz
LgotICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQotICovCi12YXIgc2V0dXBTaW1wbGVUZXh0dXJl
UHJvZ3JhbSA9IGZ1bmN0aW9uKAotICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3Rl
eGNvb3JkTG9jYXRpb24pIHsKLSAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25M
b2NhdGlvbiB8fCAwOwotICBvcHRfdGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0
aW9uIHx8IDE7Ci0gIHZhciB2cyA9IHNldHVwU2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlcihnbCk7
Ci0gIHZhciBmcyA9IHNldHVwU2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyKGdsKTsKLSAgaWYg
KCF2cyB8fCAhZnMpIHsKLSAgICByZXR1cm4gbnVsbDsKLSAgfQotICB2YXIgcHJvZ3JhbSA9IHNl
dHVwUHJvZ3JhbSgKLSAgICAgIGdsLAotICAgICAgW3ZzLCBmc10sCi0gICAgICBbJ3ZQb3NpdGlv
bicsICd0ZXhDb29yZDAnXSwKLSAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNv
b3JkTG9jYXRpb25dKTsKLSAgaWYgKCFwcm9ncmFtKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZz
KTsKLSAgICBnbC5kZWxldGVTaGFkZXIodnMpOwotICB9Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3Jh
bSk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIHZl
cnRleCBjb2xvciBwcm9ncmFtLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2Vi
R0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlv
biBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfdmVydGV4Q29sb3JMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uCi0gKiAgICAgICAgZm9y
IHZlcnRleCBjb2xvcnMuCi0gKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1
cFNpbXBsZVZlcnRleENvbG9yUHJvZ3JhbSA9IGZ1bmN0aW9uKAotICAgIGdsLCBvcHRfcG9zaXRp
b25Mb2NhdGlvbiwgb3B0X3ZlcnRleENvbG9yTG9jYXRpb24pIHsKLSAgb3B0X3Bvc2l0aW9uTG9j
YXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOwotICBvcHRfdmVydGV4Q29sb3JMb2Nh
dGlvbiA9IG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uIHx8IDE7Ci0gIHZhciB2cyA9IHNldHVwU2lt
cGxlVmVydGV4Q29sb3JWZXJ0ZXhTaGFkZXIoZ2wpOwotICB2YXIgZnMgPSBzZXR1cFNpbXBsZVZl
cnRleENvbG9yRnJhZ21lbnRTaGFkZXIoZ2wpOwotICBpZiAoIXZzIHx8ICFmcykgewotICAgIHJl
dHVybiBudWxsOwotICB9Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBQcm9ncmFtKAotICAgICAgZ2ws
Ci0gICAgICBbdnMsIGZzXSwKLSAgICAgIFsndlBvc2l0aW9uJywgJ2FfY29sb3InXSwKLSAgICAg
IFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3ZlcnRleENvbG9yTG9jYXRpb25dKTsKLSAgaWYg
KCFwcm9ncmFtKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKLSAgICBnbC5kZWxldGVTaGFk
ZXIodnMpOwotICB9Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci0gIHJldHVybiBwcm9ncmFt
OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgc2ltcGxlIGNvbG9yIHByb2dyYW0uCi0gKiBAcGFy
YW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFt
IHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBv
c2l0aW9uLgotICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQotICovCi12YXIgc2V0dXBTaW1wbGVD
b2xvclByb2dyYW0gPSBmdW5jdGlvbihnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24pIHsKLSAgb3B0
X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwOwotICB2YXIgdnMg
PSBzZXR1cFNpbXBsZUNvbG9yVmVydGV4U2hhZGVyKGdsKTsKLSAgdmFyIGZzID0gc2V0dXBTaW1w
bGVDb2xvckZyYWdtZW50U2hhZGVyKGdsKTsKLSAgaWYgKCF2cyB8fCAhZnMpIHsKLSAgICByZXR1
cm4gbnVsbDsKLSAgfQotICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLAot
ICAgICAgW3ZzLCBmc10sCi0gICAgICBbJ3ZQb3NpdGlvbiddLAotICAgICAgW29wdF9wb3NpdGlv
bkxvY2F0aW9uXSk7Ci0gIGlmICghcHJvZ3JhbSkgewotICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7
Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKLSAgfQotICBnbC51c2VQcm9ncmFtKHByb2dyYW0p
OwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBidWZmZXJzIGZvciBh
IHRleHR1cmVkIHVuaXQgcXVhZCBhbmQgYXR0YWNoZXMgdGhlbSB0byB2ZXJ0ZXggYXR0cmlicy4K
LSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0g
KiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlv
biBmb3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24g
VGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCi0gKiBAcmV0dXJuIHshQXJy
YXkuPFdlYkdMQnVmZmVyPn0gVGhlIGJ1ZmZlciBvYmplY3RzIHRoYXQgd2VyZQotICogICAgICBj
cmVhdGVkLgotICovCi12YXIgc2V0dXBVbml0UXVhZCA9IGZ1bmN0aW9uKGdsLCBvcHRfcG9zaXRp
b25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKLSAgcmV0dXJuIHNldHVwVW5pdFF1
YWRXaXRoVGV4Q29vcmRzKGdsLCBbIDAuMCwgMC4wIF0sIFsgMS4wLCAxLjAgXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4
Y29vcmRMb2NhdGlvbik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYnVmZmVycyBmb3IgYSB0ZXh0
dXJlZCB1bml0IHF1YWQgd2l0aCBzcGVjaWZpZWQgbG93ZXIgbGVmdAotICogYW5kIHVwcGVyIHJp
Z2h0IHRleHR1cmUgY29vcmRpbmF0ZXMsIGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleAotICog
YXR0cmlicy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0
byB1c2UuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gbG93ZXJMZWZ0VGV4Q29vcmRzIFRo
ZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgbG93ZXIgbGVmdCBjb3JuZXIuCi0gKiBAcGFy
YW0geyFBcnJheS48bnVtYmVyPn0gdXBwZXJSaWdodFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29y
ZGluYXRlcyBmb3IgdGhlIHVwcGVyIHJpZ2h0IGNvcm5lci4KLSAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvciB0ZXh0dXJlIGNvb3Jkcy4KLSAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+fSBU
aGUgYnVmZmVyIG9iamVjdHMgdGhhdCB3ZXJlCi0gKiAgICAgIGNyZWF0ZWQuCi0gKi8KLXZhciBz
ZXR1cFVuaXRRdWFkV2l0aFRleENvb3JkcyA9IGZ1bmN0aW9uKAotICAgIGdsLCBsb3dlckxlZnRU
ZXhDb29yZHMsIHVwcGVyUmlnaHRUZXhDb29yZHMsCi0gICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24s
IG9wdF90ZXhjb29yZExvY2F0aW9uKSB7Ci0gIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bv
c2l0aW9uTG9jYXRpb24gfHwgMDsKLSAgb3B0X3RleGNvb3JkTG9jYXRpb24gPSBvcHRfdGV4Y29v
cmRMb2NhdGlvbiB8fCAxOwotICB2YXIgb2JqZWN0cyA9IFtdOwotCi0gIHZhciB2ZXJ0ZXhPYmpl
Y3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIs
IHZlcnRleE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxv
YXQzMkFycmF5KFsKLSAgICAgICAxLjAsICAxLjAsIDAuMCwKLSAgICAgIC0xLjAsICAxLjAsIDAu
MCwKLSAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAxLjAsICAxLjAsIDAuMCwKLSAgICAg
IC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAxLjAsIC0xLjAsIDAuMF0pLCBnbC5TVEFUSUNfRFJB
Vyk7Ci0gIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9wdF9wb3NpdGlvbkxvY2F0aW9uKTsK
LSAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRfcG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxP
QVQsIGZhbHNlLCAwLCAwKTsKLSAgb2JqZWN0cy5wdXNoKHZlcnRleE9iamVjdCk7Ci0KLSAgdmFy
IGxseCA9IGxvd2VyTGVmdFRleENvb3Jkc1swXTsKLSAgdmFyIGxseSA9IGxvd2VyTGVmdFRleENv
b3Jkc1sxXTsKLSAgdmFyIHVyeCA9IHVwcGVyUmlnaHRUZXhDb29yZHNbMF07Ci0gIHZhciB1cnkg
PSB1cHBlclJpZ2h0VGV4Q29vcmRzWzFdOwotCi0gIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVj
dCk7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsK
LSAgICAgIHVyeCwgdXJ5LAotICAgICAgbGx4LCB1cnksCi0gICAgICBsbHgsIGxseSwKLSAgICAg
IHVyeCwgdXJ5LAotICAgICAgbGx4LCBsbHksCi0gICAgICB1cngsIGxseV0pLCBnbC5TVEFUSUNf
RFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9wdF90ZXhjb29yZExvY2F0aW9u
KTsKLSAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRfdGV4Y29vcmRMb2NhdGlvbiwgMiwgZ2wu
RkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgb2JqZWN0cy5wdXNoKHZlcnRleE9iamVjdCk7Ci0gIHJl
dHVybiBvYmplY3RzOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgcHJvZ3JhbSBhbmQgYnVmZmVy
cyBmb3IgcmVuZGVyaW5nIGEgdGV4dHVyZWQgcXVhZC4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4
dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bv
c2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IKLSAqICAgICAgICBwb3NpdGlv
bi4gRGVmYXVsdCA9IDAuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24g
VGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IKLSAqICAgICAgICB0ZXh0dXJlIGNvb3Jkcy4gRGVmYXVs
dCA9IDAuCi0gKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfQotICovCi12YXIgc2V0dXBUZXh0dXJl
ZFF1YWQgPSBmdW5jdGlvbigKLSAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhj
b29yZExvY2F0aW9uKSB7Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3Jh
bSgKLSAgICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24p
OwotICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3Jk
TG9jYXRpb24pOwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHBy
b2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBhIGNvbG9yIHF1YWQuCi0gKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtu
dW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0
aW9uLgotICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwQ29sb3JRdWFk
ID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uKSB7Ci0gIG9wdF9wb3NpdGlvbkxv
Y2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKLSAgdmFyIHByb2dyYW0gPSBzZXR1
cFNpbXBsZUNvbG9yUHJvZ3JhbShnbCk7Ci0gIHNldHVwVW5pdFF1YWQoZ2wsIG9wdF9wb3NpdGlv
bkxvY2F0aW9uKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBw
cm9ncmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSB0ZXh0dXJlZCBxdWFkIHdpdGgKLSAq
IHNwZWNpZmllZCBsb3dlciBsZWZ0IGFuZCB1cHBlciByaWdodCB0ZXh0dXJlIGNvb3JkaW5hdGVz
LgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4K
LSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBsb3dlckxlZnRUZXhDb29yZHMgVGhlIHRleHR1
cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSBsb3dlciBsZWZ0IGNvcm5lci4KLSAqIEBwYXJhbSB7IUFy
cmF5LjxudW1iZXI+fSB1cHBlclJpZ2h0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVz
IGZvciB0aGUgdXBwZXIgcmlnaHQgY29ybmVyLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgotICogQHBhcmFt
IHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRl
eHR1cmUgY29vcmRzLgotICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVw
VGV4dHVyZWRRdWFkV2l0aFRleENvb3JkcyA9IGZ1bmN0aW9uKAotICAgIGdsLCBsb3dlckxlZnRU
ZXhDb29yZHMsIHVwcGVyUmlnaHRUZXhDb29yZHMsCi0gICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24s
IG9wdF90ZXhjb29yZExvY2F0aW9uKSB7Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBTaW1wbGVUZXh0
dXJlUHJvZ3JhbSgKLSAgICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3Jk
TG9jYXRpb24pOwotICBzZXR1cFVuaXRRdWFkV2l0aFRleENvb3JkcyhnbCwgbG93ZXJMZWZ0VGV4
Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29vcmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pOwotICByZXR1cm4g
cHJvZ3JhbTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHVuaXQgcXVhZCB3aXRoIG9ubHkgcG9z
aXRpb25zIG9mIGEgZ2l2ZW4gcmVzb2x1dGlvbi4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gZ3JpZFJlcyBU
aGUgcmVzb2x1dGlvbiBvZiB0aGUgbWVzaCBncmlkLAotICogICAgIGV4cHJlc3NlZCBpbiB0aGUg
bnVtYmVyIG9mIHF1YWRzIGFjcm9zcyBhbmQgZG93bi4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRf
cG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAqLwot
dmFyIHNldHVwUXVhZCA9IGZ1bmN0aW9uICgKLSAgICBnbCwgZ3JpZFJlcywgb3B0X3Bvc2l0aW9u
TG9jYXRpb24sIG9wdF9mbGlwT2RkVHJpYW5nbGVzKSB7Ci0gIHJldHVybiBzZXR1cFF1YWRXaXRo
T3B0aW9ucyhnbCwKLSAgICB7IGdyaWRSZXM6IGdyaWRSZXMsCi0gICAgICBwb3NpdGlvbkxvY2F0
aW9uOiBvcHRfcG9zaXRpb25Mb2NhdGlvbiwKLSAgICAgIGZsaXBPZGRUcmlhbmdsZXM6IG9wdF9m
bGlwT2RkVHJpYW5nbGVzCi0gICAgfSk7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBxdWFkIHdp
dGggdmFyaW91cyBvcHRpb25zLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2Vi
R0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IU9iamVjdCkgb3B0aW9ucyBUaGUgb3B0aW9u
cy4gU2VlIGJlbG93LgotICogQHJldHVybiB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBjcmVh
dGVkIGJ1ZmZlcnMuCi0gKiAgICAgW3Bvc2l0aW9ucywgPGNvbG9ycz4sIGluZGljZXNdCi0gKgot
ICogT3B0aW9uczoKLSAqICAgZ3JpZFJlczogbnVtYmVyIG9mIHF1YWRzIGFjcm9zcyBhbmQgZG93
biBncmlkLgotICogICBwb3NpdGlvbkxvY2F0aW9uOiBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0
aW9uCi0gKiAgIGZsaXBPZGRUcmlhbmdsZXM6IHJldmVyc2Ugb3JkZXIgb2YgdmVydGljZXMgb2Yg
ZXZlcnkgb3RoZXIKLSAqICAgICAgIHRyaWFuZ2xlCi0gKiAgIHBvc2l0aW9uT2Zmc2V0OiBvZmZz
ZXQgYWRkZWQgdG8gZWFjaCB2ZXJ0ZXgKLSAqICAgcG9zaXRpb25NdWx0OiBtdWx0aXBpZXIgZm9y
IGVhY2ggdmVydGV4Ci0gKiAgIGNvbG9yTG9jYXRpb246IGF0dHJpYiBsb2NhdGlvbiBmb3IgdmVy
dGV4IGNvbG9ycy4gSWYKLSAqICAgICAgdW5kZWZpbmVkIG5vIHZlcnRleCBjb2xvcnMgd2lsbCBi
ZSBjcmVhdGVkLgotICovCi12YXIgc2V0dXBRdWFkV2l0aE9wdGlvbnMgPSBmdW5jdGlvbiAoZ2ws
IG9wdGlvbnMpIHsKLSAgdmFyIHBvc2l0aW9uTG9jYXRpb24gPSBvcHRpb25zLnBvc2l0aW9uTG9j
YXRpb24gfHwgMDsKLSAgdmFyIG9iamVjdHMgPSBbXTsKLQotICB2YXIgZ3JpZFJlcyA9IG9wdGlv
bnMuZ3JpZFJlcyB8fCAxOwotICB2YXIgcG9zaXRpb25PZmZzZXQgPSBvcHRpb25zLnBvc2l0aW9u
T2Zmc2V0IHx8IDA7Ci0gIHZhciBwb3NpdGlvbk11bHQgPSBvcHRpb25zLnBvc2l0aW9uTXVsdCB8
fCAxOwotICB2YXIgdmVydHNBY3Jvc3MgPSBncmlkUmVzICsgMTsKLSAgdmFyIG51bVZlcnRzID0g
dmVydHNBY3Jvc3MgKiB2ZXJ0c0Fjcm9zczsKLSAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMy
QXJyYXkobnVtVmVydHMgKiAzKTsKLSAgdmFyIGluZGljZXMgPSBuZXcgVWludDE2QXJyYXkoNiAq
IGdyaWRSZXMgKiBncmlkUmVzKTsKLSAgdmFyIHBvZmZzZXQgPSAwOwotCi0gIGZvciAodmFyIHl5
ID0gMDsgeXkgPD0gZ3JpZFJlczsgKyt5eSkgewotICAgIGZvciAodmFyIHh4ID0gMDsgeHggPD0g
Z3JpZFJlczsgKyt4eCkgewotICAgICAgcG9zaXRpb25zW3BvZmZzZXQgKyAwXSA9ICgtMSArIDIg
KiB4eCAvIGdyaWRSZXMpICogcG9zaXRpb25NdWx0ICsgcG9zaXRpb25PZmZzZXQ7Ci0gICAgICBw
b3NpdGlvbnNbcG9mZnNldCArIDFdID0gKC0xICsgMiAqIHl5IC8gZ3JpZFJlcykgKiBwb3NpdGlv
bk11bHQgKyBwb3NpdGlvbk9mZnNldDsKLSAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsgMl0gPSAw
OwotCi0gICAgICBwb2Zmc2V0ICs9IDM7Ci0gICAgfQotICB9Ci0KLSAgdmFyIGJ1ZiA9IGdsLmNy
ZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmKTsKLSAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHBvc2l0aW9ucywgZ2wuU1RBVElDX0RSQVcp
OwotICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwb3NpdGlvbkxvY2F0aW9uKTsKLSAgZ2wu
dmVydGV4QXR0cmliUG9pbnRlcihwb3NpdGlvbkxvY2F0aW9uLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDAsIDApOwotICBvYmplY3RzLnB1c2goYnVmKTsKLQotICBpZiAob3B0aW9ucy5jb2xvckxvY2F0
aW9uICE9PSB1bmRlZmluZWQpIHsKLSAgICB2YXIgY29sb3JzID0gbmV3IEZsb2F0MzJBcnJheShu
dW1WZXJ0cyAqIDQpOwotICAgIGZvciAodmFyIHl5ID0gMDsgeXkgPD0gZ3JpZFJlczsgKyt5eSkg
ewotICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVzOyArK3h4KSB7Ci0gICAgICAg
IGlmIChvcHRpb25zLmNvbG9yICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICBjb2xvcnNbcG9m
ZnNldCArIDBdID0gb3B0aW9ucy5jb2xvclswXTsKLSAgICAgICAgICBjb2xvcnNbcG9mZnNldCAr
IDFdID0gb3B0aW9ucy5jb2xvclsxXTsKLSAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDJdID0g
b3B0aW9ucy5jb2xvclsyXTsKLSAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDNdID0gb3B0aW9u
cy5jb2xvclszXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBjb2xvcnNbcG9mZnNldCAr
IDBdID0geHggLyBncmlkUmVzOwotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMV0gPSB5eSAv
IGdyaWRSZXM7Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAyXSA9ICh4eCAvIGdyaWRSZXMp
ICogKHl5IC8gZ3JpZFJlcyk7Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAzXSA9ICh5eSAl
IDIpICogMC41ICsgMC41OwotICAgICAgICB9Ci0gICAgICAgIHBvZmZzZXQgKz0gNDsKLSAgICAg
IH0KLSAgICB9Ci0KLSAgICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1Zik7Ci0gICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJB
WV9CVUZGRVIsIGNvbG9ycywgZ2wuU1RBVElDX0RSQVcpOwotICAgIGdsLmVuYWJsZVZlcnRleEF0
dHJpYkFycmF5KG9wdGlvbnMuY29sb3JMb2NhdGlvbik7Ci0gICAgZ2wudmVydGV4QXR0cmliUG9p
bnRlcihvcHRpb25zLmNvbG9yTG9jYXRpb24sIDQsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0g
ICAgb2JqZWN0cy5wdXNoKGJ1Zik7Ci0gIH0KLQotICB2YXIgdGJhc2UgPSAwOwotICBmb3IgKHZh
ciB5eSA9IDA7IHl5IDwgZ3JpZFJlczsgKyt5eSkgewotICAgIHZhciBpbmRleCA9IHl5ICogdmVy
dHNBY3Jvc3M7Ci0gICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IGdyaWRSZXM7ICsreHgpIHsKLSAg
ICAgIGluZGljZXNbdGJhc2UgKyAwXSA9IGluZGV4ICsgMDsKLSAgICAgIGluZGljZXNbdGJhc2Ug
KyAxXSA9IGluZGV4ICsgMTsKLSAgICAgIGluZGljZXNbdGJhc2UgKyAyXSA9IGluZGV4ICsgdmVy
dHNBY3Jvc3M7Ci0gICAgICBpbmRpY2VzW3RiYXNlICsgM10gPSBpbmRleCArIHZlcnRzQWNyb3Nz
OwotICAgICAgaW5kaWNlc1t0YmFzZSArIDRdID0gaW5kZXggKyAxOwotICAgICAgaW5kaWNlc1t0
YmFzZSArIDVdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zcyArIDE7Ci0KLSAgICAgIGlmIChvcHRpb25z
LmZsaXBPZGRUcmlhbmdsZXMpIHsKLSAgICAgICAgaW5kaWNlc1t0YmFzZSArIDRdID0gaW5kZXgg
KyB2ZXJ0c0Fjcm9zcyArIDE7Ci0gICAgICAgIGluZGljZXNbdGJhc2UgKyA1XSA9IGluZGV4ICsg
MTsKLSAgICAgIH0KLQotICAgICAgaW5kZXggKz0gMTsKLSAgICAgIHRiYXNlICs9IDY7Ci0gICAg
fQotICB9Ci0KLSAgdmFyIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVy
KGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBidWYpOwotICBnbC5idWZmZXJEYXRhKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzLCBnbC5TVEFUSUNfRFJBVyk7Ci0gIG9iamVjdHMucHVz
aChidWYpOwotCi0gIHJldHVybiBvYmplY3RzOwotfTsKLQotLyoqCi0gKiBGaWxscyB0aGUgZ2l2
ZW4gdGV4dHVyZSB3aXRoIGEgc29saWQgY29sb3IKLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFXZWJHTFRleHR1cmV9IHRl
eCBUaGUgdGV4dHVyZSB0byBmaWxsLgotICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIFRoZSB3aWR0
aCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCi0gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IFRo
ZSBoZWlnaHQgb2YgdGhlIHRleHR1cmUgdG8gY3JlYXRlLgotICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIHdpdGguIEEgNCBlbGVtZW50IGFycmF5Ci0g
KiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KLSAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfbGV2ZWwgVGhlIGxldmVsIG9mIHRoZSB0ZXh0dXJlIHRvIGZp
bGwuIERlZmF1bHQgPSAwLgotICovCi12YXIgZmlsbFRleHR1cmUgPSBmdW5jdGlvbihnbCwgdGV4
LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2xldmVsKSB7Ci0gIG9wdF9sZXZlbCA9IG9wdF9s
ZXZlbCB8fCAwOwotICB2YXIgbnVtUGl4ZWxzID0gd2lkdGggKiBoZWlnaHQ7Ci0gIHZhciBzaXpl
ID0gbnVtUGl4ZWxzICogNDsKLSAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHNpemUpOwotICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgbnVtUGl4ZWxzOyArK2lpKSB7Ci0gICAgdmFyIG9mZiA9IGlp
ICogNDsKLSAgICBidWZbb2ZmICsgMF0gPSBjb2xvclswXTsKLSAgICBidWZbb2ZmICsgMV0gPSBj
b2xvclsxXTsKLSAgICBidWZbb2ZmICsgMl0gPSBjb2xvclsyXTsKLSAgICBidWZbb2ZmICsgM10g
PSBjb2xvclszXTsKLSAgfQotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwot
ICBnbC50ZXhJbWFnZTJEKAotICAgICAgZ2wuVEVYVFVSRV8yRCwgb3B0X2xldmVsLCBnbC5SR0JB
LCB3aWR0aCwgaGVpZ2h0LCAwLAotICAgICAgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVm
KTsKLSAgfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgdGV4dHVyZXMgYW5kIGZpbGxzIGl0IHdpdGgg
YSBzb2xpZCBjb2xvcgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCBUaGUgd2lkdGggb2YgdGhlIHRl
eHR1cmUgdG8gY3JlYXRlLgotICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCBUaGUgaGVpZ2h0IG9m
IHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xv
ciBUaGUgY29sb3IgdG8gZmlsbCB3aXRoLiBBIDQgZWxlbWVudCBhcnJheQotICogICAgICAgIHdo
ZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCi0gKiBAcmV0dXJuIHsh
V2ViR0xUZXh0dXJlfQotICovCi12YXIgY3JlYXRlQ29sb3JlZFRleHR1cmUgPSBmdW5jdGlvbihn
bCwgd2lkdGgsIGhlaWdodCwgY29sb3IpIHsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgZmlsbFRleHR1cmUoZ2wsIHRleCwgd2lkdGgsIGhlaWdodCwgY29sb3IpOwotICByZXR1
cm4gdGV4OwotfTsKLQotdmFyIHVieXRlVG9GbG9hdCA9IGZ1bmN0aW9uKGMpIHsKLSAgcmV0dXJu
IGMgLyAyNTU7Ci19OwotCi12YXIgdWJ5dGVDb2xvclRvRmxvYXRDb2xvciA9IGZ1bmN0aW9uKGNv
bG9yKSB7Ci0gIHZhciBmbG9hdENvbG9yID0gW107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBj
b2xvci5sZW5ndGg7ICsraWkpIHsKLSAgICBmbG9hdENvbG9yW2lpXSA9IHVieXRlVG9GbG9hdChj
b2xvcltpaV0pOwotICB9Ci0gIHJldHVybiBmbG9hdENvbG9yOwotfTsKLQotLyoqCi0gKiBTZXRz
IHRoZSAidV9jb2xvciIgdW5pZm9ybSBvZiB0aGUgY3VycmVudCBwcm9ncmFtIHRvIGNvbG9yLgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+IGNvbG9yIDQgZWxlbWVudCBhcnJheSBvZiAwLTEgY29s
b3IKLSAqICAgICAgY29tcG9uZW50cy4KLSAqLwotdmFyIHNldEZsb2F0RHJhd0NvbG9yID0gZnVu
Y3Rpb24oZ2wsIGNvbG9yKSB7Ci0gIHZhciBwcm9ncmFtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLkNV
UlJFTlRfUFJPR1JBTSk7Ci0gIHZhciBjb2xvckxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHByb2dyYW0sICJ1X2NvbG9yIik7Ci0gIGdsLnVuaWZvcm00ZnYoY29sb3JMb2NhdGlvbiwg
Y29sb3IpOwotfTsKLQotLyoqCi0gKiBTZXRzIHRoZSAidV9jb2xvciIgdW5pZm9ybSBvZiB0aGUg
Y3VycmVudCBwcm9ncmFtIHRvIGNvbG9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBU
aGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+IGNvbG9y
IDQgZWxlbWVudCBhcnJheSBvZiAwLTI1NSBjb2xvcgotICogICAgICBjb21wb25lbnRzLgotICov
Ci12YXIgc2V0VUJ5dGVEcmF3Q29sb3IgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKLSAgc2V0Rmxv
YXREcmF3Q29sb3IoZ2wsIHVieXRlQ29sb3JUb0Zsb2F0Q29sb3IoY29sb3IpKTsKLX07Ci0KLS8q
KgotICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQgaW4gdGhlIGdpdmVuIGNvbG9yLgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZHJhdyB3aXRoLiBB
IDQKLSAqICAgICAgICBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUg
cmFuZ2UgMCB0bwotICogICAgICAgIDEuCi0gKi8KLXZhciBkcmF3RmxvYXRDb2xvclF1YWQgPSBm
dW5jdGlvbihnbCwgY29sb3IpIHsKLSAgdmFyIHByb2dyYW0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wu
Q1VSUkVOVF9QUk9HUkFNKTsKLSAgdmFyIGNvbG9yTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgInVfY29sb3IiKTsKLSAgZ2wudW5pZm9ybTRmdihjb2xvckxvY2F0aW9u
LCBjb2xvcik7Ci0gIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLX07Ci0KLQot
LyoqCi0gKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXAgcXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3Iu
Ci0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgot
ICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGgu
IEEgNAotICogICAgICAgIGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRo
ZSByYW5nZSAwIHRvCi0gKiAgICAgICAgMjU1LgotICovCi12YXIgZHJhd1VCeXRlQ29sb3JRdWFk
ID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7Ci0gIGRyYXdGbG9hdENvbG9yUXVhZChnbCwgdWJ5dGVD
b2xvclRvRmxvYXRDb2xvcihjb2xvcikpOwotfTsKLQotLyoqCi0gKiBEcmF3cyBhIHByZXZpb3Vz
bHkgc2V0dXAgcXVhZC4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29u
dGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2NvbG9yIFRoZSBj
b2xvciB0byBmaWxsIGNsZWFyIHdpdGggYmVmb3JlCi0gKiAgICAgICAgZHJhd2luZy4gQSA0IGVs
ZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCi0gKiAg
ICAgICAgMjU1LiBEZWZhdWx0IFsyNTUsIDI1NSwgMjU1LCAyNTVdCi0gKi8KLXZhciBkcmF3UXVh
ZCA9IGZ1bmN0aW9uKGdsLCBvcHRfY29sb3IpIHsKLSAgb3B0X2NvbG9yID0gb3B0X2NvbG9yIHx8
IFsyNTUsIDI1NSwgMjU1LCAyNTVdOwotICBnbC5jbGVhckNvbG9yKAotICAgICAgb3B0X2NvbG9y
WzBdIC8gMjU1LAotICAgICAgb3B0X2NvbG9yWzFdIC8gMjU1LAotICAgICAgb3B0X2NvbG9yWzJd
IC8gMjU1LAotICAgICAgb3B0X2NvbG9yWzNdIC8gMjU1KTsKLSAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICBnbC5kcmF3QXJyYXlzKGdsLlRS
SUFOR0xFUywgMCwgNik7Ci19OwotCi0vKioKLSAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBx
dWFkLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVz
ZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFJlc29sdXRpb24gb2YgZ3JpZC4KLSAqIEBw
YXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIg
d2l0aCBiZWZvcmUKLSAqICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KLSAqICAgICAgICAyNTUuIERlZmF1bHQg
WzI1NSwgMjU1LCAyNTUsIDI1NV0KLSAqLwotdmFyIGRyYXdJbmRleGVkUXVhZCA9IGZ1bmN0aW9u
KGdsLCBncmlkUmVzLCBvcHRfY29sb3IpIHsKLSAgb3B0X2NvbG9yID0gb3B0X2NvbG9yIHx8IFsy
NTUsIDI1NSwgMjU1LCAyNTVdOwotICBnbC5jbGVhckNvbG9yKAotICAgICAgb3B0X2NvbG9yWzBd
IC8gMjU1LAotICAgICAgb3B0X2NvbG9yWzFdIC8gMjU1LAotICAgICAgb3B0X2NvbG9yWzJdIC8g
MjU1LAotICAgICAgb3B0X2NvbG9yWzNdIC8gMjU1KTsKLSAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJ
QU5HTEVTLCBncmlkUmVzICogNiwgZ2wuVU5TSUdORURfU0hPUlQsIDApOwotfTsKLQotLyoqCi0g
KiBDaGVja3MgdGhhdCBhIHBvcnRpb24gb2YgYSBjYW52YXMgaXMgMSBjb2xvci4KLSAqIEBwYXJh
bSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0g
e251bWJlcn0geCBsZWZ0IGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0ge251
bWJlcn0geSBib3R0b20gY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJhbSB7bnVt
YmVyfSB3aWR0aCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0ge251bWJlcn0g
aGVpZ2h0IHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1i
ZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZSBkcmF3aW5nLiBB
Ci0gKiAgICAgICAgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUg
cmFuZ2UgMCB0byAyNTUuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X2Vycm9yUmFuZ2UgT3B0aW9u
YWwuIEFjY2VwdGFibGUgZXJyb3IgaW4KLSAqICAgICAgICBjb2xvciBjaGVja2luZy4gMCBieSBk
ZWZhdWx0LgotICogQHBhcmFtIHshZnVuY3Rpb24oKX0gc2FtZUZuIEZ1bmN0aW9uIHRvIGNhbGwg
aWYgYWxsIHBpeGVscwotICogICAgICAgIGFyZSB0aGUgc2FtZSBhcyBjb2xvci4KLSAqIEBwYXJh
bSB7IWZ1bmN0aW9uKCl9IGRpZmZlcmVudEZuIEZ1bmN0aW9uIHRvIGNhbGwgaWYgYSBwaXhlbAot
ICogICAgICAgIGlzIGRpZmZlcmVudCB0aGFuIGNvbG9yCi0gKiBAcGFyYW0geyFmdW5jdGlvbigp
fSBsb2dGbiBGdW5jdGlvbiB0byBjYWxsIGZvciBsb2dnaW5nLgotICovCi12YXIgY2hlY2tDYW52
YXNSZWN0Q29sb3IgPSBmdW5jdGlvbihnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IsIG9w
dF9lcnJvclJhbmdlLCBzYW1lRm4sIGRpZmZlcmVudEZuLCBsb2dGbikgewotICB2YXIgZXJyb3JS
YW5nZSA9IG9wdF9lcnJvclJhbmdlIHx8IDA7Ci0gIGlmICghZXJyb3JSYW5nZS5sZW5ndGgpIHsK
LSAgICBlcnJvclJhbmdlID0gW2Vycm9yUmFuZ2UsIGVycm9yUmFuZ2UsIGVycm9yUmFuZ2UsIGVy
cm9yUmFuZ2VdCi0gIH0KLSAgdmFyIGJ1ZjsKLSAgaWYgKGdsIGluc3RhbmNlb2YgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KSB7Ci0gICAgYnVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQg
KiA0KTsKLSAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIH0gZWxzZSB7Ci0gICAgYnVmID0gZ2wuZ2V0SW1hZ2VE
YXRhKHgsIHksIHdpZHRoLCBoZWlnaHQpLmRhdGE7Ci0gIH0KLSAgZm9yICh2YXIgaSA9IDA7IGkg
PCB3aWR0aCAqIGhlaWdodDsgKytpKSB7Ci0gICAgdmFyIG9mZnNldCA9IGkgKiA0OwotICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgY29sb3IubGVuZ3RoOyArK2opIHsKLSAgICAgIGlmIChNYXRoLmFi
cyhidWZbb2Zmc2V0ICsgal0gLSBjb2xvcltqXSkgPiBlcnJvclJhbmdlW2pdKSB7Ci0gICAgICAg
IGRpZmZlcmVudEZuKCk7Ci0gICAgICAgIHZhciB3YXMgPSBidWZbb2Zmc2V0ICsgMF0udG9TdHJp
bmcoKTsKLSAgICAgICAgZm9yIChqID0gMTsgaiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7Ci0gICAg
ICAgICAgd2FzICs9ICIsIiArIGJ1ZltvZmZzZXQgKyBqXTsKLSAgICAgICAgfQotICAgICAgICBs
b2dGbignYXQgKCcgKyAoaSAlIHdpZHRoKSArICcsICcgKyBNYXRoLmZsb29yKGkgLyB3aWR0aCkg
KwotICAgICAgICAgICAgICAnKSBleHBlY3RlZDogJyArIGNvbG9yICsgJyB3YXMgJyArIHdhcyk7
Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgc2FtZUZuKCk7Ci19Owot
Ci0vKioKLSAqIENoZWNrcyB0aGF0IGEgcG9ydGlvbiBvZiBhIGNhbnZhcyBpcyAxIGNvbG9yLgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBw
YXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBh
cmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJhbSB7
bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHshQXJy
YXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIGNsZWFyIHdpdGggYmVmb3JlIGRy
YXdpbmcuIEEKLSAqICAgICAgICA0IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlz
IGluIHRoZSByYW5nZSAwIHRvIDI1NS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE1lc3Nh
Z2UgdG8gYXNzb2NpYXRlIHdpdGggc3VjY2Vzcy4gRWcKLSAqICAgICAgICAoInNob3VsZCBiZSBy
ZWQiKS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0
YWJsZSBlcnJvciBpbgotICogICAgICAgIGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCi0g
Ki8KLXZhciBjaGVja0NhbnZhc1JlY3QgPSBmdW5jdGlvbihnbCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCwgY29sb3IsIG9wdF9tc2csIG9wdF9lcnJvclJhbmdlKSB7Ci0gIHZhciBtc2cgPSBvcHRfbXNn
OwotICBpZiAobXNnID09PSB1bmRlZmluZWQpIHsKLSAgICBtc2cgPSAic2hvdWxkIGJlICIgKyBj
b2xvci50b1N0cmluZygpOwotICB9Ci0gIGNoZWNrQ2FudmFzUmVjdENvbG9yKAotICAgICAgZ2ws
IHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfZXJyb3JSYW5nZSwKLSAgICAgIGZ1bmN0
aW9uKCkgewotICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gICAgICB9LAotICAgICAgZnVuY3Rp
b24oKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLSAgICAgIH0sCi0gICAgICBkZWJ1Zyk7
Ci19OwotCi0vKioKLSAqIENoZWNrcyB0aGF0IGFuIGVudGlyZSBjYW52YXMgaXMgMSBjb2xvci4K
LSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0g
KiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIg
d2l0aCBiZWZvcmUgZHJhd2luZy4gQQotICogICAgICAgIDQgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgotICogQHBhcmFtIHtzdHJpbmd9
IG1zZyBNZXNzYWdlIHRvIGFzc29jaWF0ZSB3aXRoIHN1Y2Nlc3MuIEVnICgic2hvdWxkIGJlIHJl
ZCIpLgotICogQHBhcmFtIHtudW1iZXJ9IGVycm9yUmFuZ2UgT3B0aW9uYWwuIEFjY2VwdGFibGUg
ZXJyb3IgaW4KLSAqICAgICAgICBjb2xvciBjaGVja2luZy4gMCBieSBkZWZhdWx0LgotICovCi12
YXIgY2hlY2tDYW52YXMgPSBmdW5jdGlvbihnbCwgY29sb3IsIG1zZywgZXJyb3JSYW5nZSkgewot
ICBjaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIGdsLmNhbnZhcy53aWR0aCwgZ2wuY2FudmFzLmhl
aWdodCwgY29sb3IsIG1zZywgZXJyb3JSYW5nZSk7Ci19OwotCi0vKioKLSAqIExvYWRzIGEgdGV4
dHVyZSwgY2FsbHMgY2FsbGJhY2sgd2hlbiBmaW5pc2hlZC4KLSAqIEBwYXJhbSB7IVdlYkdMQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gdXJs
IFVSTCBvZiBpbWFnZSB0byBsb2FkCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKCFJbWFnZSk6IHZvaWR9
IGNhbGxiYWNrIEZ1bmN0aW9uIHRoYXQgZ2V0cyBjYWxsZWQgYWZ0ZXIKLSAqICAgICAgICBpbWFn
ZSBoYXMgbG9hZGVkCi0gKiBAcmV0dXJuIHshV2ViR0xUZXh0dXJlfSBUaGUgY3JlYXRlZCB0ZXh0
dXJlLgotICovCi12YXIgbG9hZFRleHR1cmUgPSBmdW5jdGlvbihnbCwgdXJsLCBjYWxsYmFjaykg
ewotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVT
VCk7Ci0gICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7Ci0gICAgaW1hZ2Uub25sb2FkID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKTsK
LSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZSk7Ci0gICAgICAgIGNhbGxiYWNrKGltYWdlKTsKLSAg
ICB9OwotICAgIGltYWdlLnNyYyA9IHVybDsKLSAgICByZXR1cm4gdGV4dHVyZTsKLX07Ci0KLS8q
KgotICogTWFrZXMgYSBzaGFsbG93IGNvcHkgb2YgYW4gb2JqZWN0LgotICogQHBhcmFtIHshT2Jq
ZWN0KSBzcmMgT2JqZWN0IHRvIGNvcHkKLSAqIEByZXR1cm4geyFPYmplY3R9IFRoZSBjb3B5IG9m
IHNyYy4KLSAqLwotdmFyIHNoYWxsb3dDb3B5T2JqZWN0ID0gZnVuY3Rpb24oc3JjKSB7Ci0gIHZh
ciBkc3QgPSB7fTsKLSAgZm9yICh2YXIgYXR0ciBpbiBzcmMpIHsKLSAgICBpZiAoc3JjLmhhc093
blByb3BlcnR5KGF0dHIpKSB7Ci0gICAgICBkc3RbYXR0cl0gPSBzcmNbYXR0cl07Ci0gICAgfQot
ICB9Ci0gIHJldHVybiBkc3Q7Ci19OwotCi0vKioKLSAqIENoZWNrcyBpZiBhbiBhdHRyaWJ1dGUg
ZXhpc3RzIG9uIGFuIG9iamVjdCBjYXNlIGluc2Vuc2l0aXZlLgotICogQHBhcmFtIHshT2JqZWN0
KSBvYmogT2JqZWN0IHRvIGNoZWNrCi0gKiBAcGFyYW0ge3N0cmluZ30gYXR0ciBOYW1lIG9mIGF0
dHJpYnV0ZSB0byBsb29rIGZvci4KLSAqIEByZXR1cm4ge3N0cmluZz99IFRoZSBuYW1lIG9mIHRo
ZSBhdHRyaWJ1dGUgaWYgaXQgZXhpc3RzLAotICogICAgICAgICB1bmRlZmluZWQgaWYgbm90Lgot
ICovCi12YXIgaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlID0gZnVuY3Rpb24ob2JqLCBhdHRy
KSB7Ci0gIHZhciBsb3dlciA9IGF0dHIudG9Mb3dlckNhc2UoKTsKLSAgZm9yICh2YXIga2V5IGlu
IG9iaikgewotICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSAmJiBrZXkudG9Mb3dlckNh
c2UoKSA9PSBsb3dlcikgewotICAgICAgcmV0dXJuIGtleTsKLSAgICB9Ci0gIH0KLX07Ci0KLS8q
KgotICogQ3JlYXRlcyBhIHdlYmdsIGNvbnRleHQuCi0gKiBAcGFyYW0geyFDYW52YXN8c3RyaW5n
fSBvcHRfY2FudmFzIFRoZSBjYW52YXMgdGFnIHRvIGdldAotICogICAgIGNvbnRleHQgZnJvbS4g
SWYgb25lIGlzIG5vdCBwYXNzZWQgaW4gb25lIHdpbGwgYmUKLSAqICAgICBjcmVhdGVkLiBJZiBp
dCdzIGEgc3RyaW5nIGl0J3MgYXNzdW1lZCB0byBiZSB0aGUgaWQgb2YgYQotICogICAgIGNhbnZh
cy4KLSAqIEByZXR1cm4geyFXZWJHTENvbnRleHR9IFRoZSBjcmVhdGVkIGNvbnRleHQuCi0gKi8K
LXZhciBjcmVhdGUzRENvbnRleHQgPSBmdW5jdGlvbihvcHRfY2FudmFzLCBvcHRfYXR0cmlidXRl
cykgewotICBpZiAod2luZG93LmluaXRUZXN0aW5nSGFybmVzcykgewotICAgIHdpbmRvdy5pbml0
VGVzdGluZ0hhcm5lc3MoKTsKLSAgfQotICB2YXIgYXR0cmlidXRlcyA9IHNoYWxsb3dDb3B5T2Jq
ZWN0KG9wdF9hdHRyaWJ1dGVzIHx8IHt9KTsKLSAgaWYgKCFoYXNBdHRyaWJ1dGVDYXNlSW5zZW5z
aXRpdmUoYXR0cmlidXRlcywgImFudGlhbGlhcyIpKSB7Ci0gICAgYXR0cmlidXRlcy5hbnRpYWxp
YXMgPSBmYWxzZTsKLSAgfQotCi0gIG9wdF9jYW52YXMgPSBvcHRfY2FudmFzIHx8IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBpZiAodHlwZW9mIG9wdF9jYW52YXMgPT0gJ3N0
cmluZycpIHsKLSAgICBvcHRfY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3B0X2Nh
bnZhcyk7Ci0gIH0KLSAgdmFyIGNvbnRleHQgPSBudWxsOwotICB2YXIgbmFtZXMgPSBbIndlYmds
IiwgImV4cGVyaW1lbnRhbC13ZWJnbCJdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxl
bmd0aDsgKytpKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGNvbnRleHQgPSBvcHRfY2FudmFzLmdldENv
bnRleHQobmFtZXNbaV0sIGF0dHJpYnV0ZXMpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICB9Ci0g
ICAgaWYgKGNvbnRleHQpIHsKLSAgICAgIGJyZWFrOwotICAgIH0KLSAgfQotICBpZiAoIWNvbnRl
eHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJVbmFibGUgdG8gZmV0Y2ggV2ViR0wgcmVuZGVyaW5nIGNv
bnRleHQgZm9yIENhbnZhcyIpOwotICB9Ci0gIHJldHVybiBjb250ZXh0OwotfQotCi0vKioKLSAq
IEdldHMgYSBHTEVycm9yIHZhbHVlIGFzIGEgc3RyaW5nLgotICogQHBhcmFtIHshV2ViR0xDb250
ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBlcnIg
VGhlIHdlYmdsIGVycm9yIGFzIHJldHJpZXZlZCBmcm9tIGdsLmdldEVycm9yKCkuCi0gKiBAcmV0
dXJuIHtzdHJpbmd9IHRoZSBlcnJvciBhcyBhIHN0cmluZy4KLSAqLwotdmFyIGdldEdMRXJyb3JB
c1N0cmluZyA9IGZ1bmN0aW9uKGdsLCBlcnIpIHsKLSAgaWYgKGVyciA9PT0gZ2wuTk9fRVJST1Ip
IHsKLSAgICByZXR1cm4gIk5PX0VSUk9SIjsKLSAgfQotICBmb3IgKHZhciBuYW1lIGluIGdsKSB7
Ci0gICAgaWYgKGdsW25hbWVdID09PSBlcnIpIHsKLSAgICAgIHJldHVybiBuYW1lOwotICAgIH0K
LSAgfQotICByZXR1cm4gZXJyLnRvU3RyaW5nKCk7Ci19OwotCi0vKioKLSAqIFdyYXBzIGEgV2Vi
R0wgZnVuY3Rpb24gd2l0aCBhIGZ1bmN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0
aGVyZSBpcwotICogYW4gZXJyb3IuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJpbmd9IGZuYW1lIE5hbWUgb2YgZnVu
Y3Rpb24gdG8gd3JhcC4KLSAqIEByZXR1cm4ge2Z1bmN0aW9ufSBUaGUgd3JhcHBlZCBmdW5jdGlv
bi4KLSAqLwotdmFyIGNyZWF0ZUdMRXJyb3JXcmFwcGVyID0gZnVuY3Rpb24oY29udGV4dCwgZm5h
bWUpIHsKLSAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgIHZhciBydiA9IGNvbnRleHRbZm5hbWVd
LmFwcGx5KGNvbnRleHQsIGFyZ3VtZW50cyk7Ci0gICAgdmFyIGVyciA9IGNvbnRleHQuZ2V0RXJy
b3IoKTsKLSAgICBpZiAoZXJyICE9IGNvbnRleHQuTk9fRVJST1IpCi0gICAgICB0aHJvdyAiR0wg
ZXJyb3IgIiArIGdldEdMRXJyb3JBc1N0cmluZyhjb250ZXh0LCBlcnIpICsgIiBpbiAiICsgZm5h
bWU7Ci0gICAgcmV0dXJuIHJ2OwotICB9OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgV2ViR0wg
Y29udGV4dCB3aGVyZSBhbGwgZnVuY3Rpb25zIGFyZSB3cmFwcGVkIHRvIHRocm93IGFuIGV4Y2Vw
dGlvbgotICogaWYgdGhlcmUgaXMgYW4gZXJyb3IuCi0gKiBAcGFyYW0geyFDYW52YXN9IGNhbnZh
cyBUaGUgSFRNTCBjYW52YXMgdG8gZ2V0IGEgY29udGV4dCBmcm9tLgotICogQHJldHVybiB7IU9i
amVjdH0gVGhlIHdyYXBwZWQgY29udGV4dC4KLSAqLwotZnVuY3Rpb24gY3JlYXRlM0RDb250ZXh0
V2l0aFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9yKGNhbnZhcykgewotICB2YXIgY29udGV4dCA9
IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICB2YXIgd3JhcCA9IHt9OwotICBmb3IgKHZhciBp
IGluIGNvbnRleHQpIHsKLSAgICB0cnkgewotICAgICAgaWYgKHR5cGVvZiBjb250ZXh0W2ldID09
ICdmdW5jdGlvbicpIHsKLSAgICAgICAgd3JhcFtpXSA9IGNyZWF0ZUdMRXJyb3JXcmFwcGVyKGNv
bnRleHQsIGkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgd3JhcFtpXSA9IGNvbnRleHRbaV07
Ci0gICAgICB9Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgZXJyb3IoImNyZWF0ZUNvbnRleHRX
cmFwcGVyVGhhdFRocm93c09uR0xFcnJvcjogRXJyb3IgYWNjZXNzaW5nICIgKyBpKTsKLSAgICB9
Ci0gIH0KLSAgd3JhcC5nZXRFcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGNvbnRl
eHQuZ2V0RXJyb3IoKTsKLSAgfTsKLSAgcmV0dXJuIHdyYXA7Ci19OwotCi0vKioKLSAqIFRlc3Rz
IHRoYXQgYW4gZXZhbHVhdGVkIGV4cHJlc3Npb24gZ2VuZXJhdGVzIGEgc3BlY2lmaWMgR0wgZXJy
b3IuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNl
LgotICogQHBhcmFtIHtudW1iZXJ9IGdsRXJyb3IgVGhlIGV4cGVjdGVkIGdsIGVycm9yLgotICog
QHBhcmFtIHtzdHJpbmd9IGV2YWxTVHIgVGhlIHN0cmluZyB0byBldmFsdWF0ZS4KLSAqLwotdmFy
IHNob3VsZEdlbmVyYXRlR0xFcnJvciA9IGZ1bmN0aW9uKGdsLCBnbEVycm9yLCBldmFsU3RyKSB7
Ci0gIHZhciBleGNlcHRpb247Ci0gIHRyeSB7Ci0gICAgZXZhbChldmFsU3RyKTsKLSAgfSBjYXRj
aCAoZSkgewotICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0KLSAgaWYgKGV4Y2VwdGlvbikgewotICAg
IHRlc3RGYWlsZWQoZXZhbFN0ciArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwot
ICB9IGVsc2UgewotICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICAgIGlmIChlcnIgIT0g
Z2xFcnJvcikgewotICAgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiBleHBlY3RlZDogIiArIGdl
dEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnJvcikgKyAiLiBXYXMgIiArIGdldEdMRXJyb3JBc1N0
cmluZyhnbCwgZXJyKSArICIuIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRlc3RQYXNzZWQoZXZh
bFN0ciArICIgd2FzIGV4cGVjdGVkIHZhbHVlOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBn
bEVycm9yKSArICIuIik7Ci0gICAgfQotICB9Ci19OwotCi0vKioKLSAqIFRlc3RzIHRoYXQgdGhl
IGZpcnN0IGVycm9yIEdMIHJldHVybnMgaXMgdGhlIHNwZWNpZmllZCBlcnJvci4KLSAqIEBwYXJh
bSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0g
e251bWJlcn0gZ2xFcnJvciBUaGUgZXhwZWN0ZWQgZ2wgZXJyb3IuCi0gKiBAcGFyYW0ge3N0cmlu
Z30gb3B0X21zZwotICovCi12YXIgZ2xFcnJvclNob3VsZEJlID0gZnVuY3Rpb24oZ2wsIGdsRXJy
b3IsIG9wdF9tc2cpIHsKLSAgb3B0X21zZyA9IG9wdF9tc2cgfHwgIiI7Ci0gIHZhciBlcnIgPSBn
bC5nZXRFcnJvcigpOwotICBpZiAoZXJyICE9IGdsRXJyb3IpIHsKLSAgICB0ZXN0RmFpbGVkKCJn
ZXRFcnJvciBleHBlY3RlZDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnJvcikgKwot
ICAgICAgICAgICAgICAgIi4gV2FzICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKyAi
IDogIiArIG9wdF9tc2cpOwotICB9IGVsc2UgewotICAgIHRlc3RQYXNzZWQoImdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogIiArCi0gICAgICAgICAgICAgICAgZ2V0R0xFcnJvckFzU3RyaW5n
KGdsLCBnbEVycm9yKSArICIgOiAiICsgb3B0X21zZyk7Ci0gIH0KLX07Ci0KLS8qKgotICogTGlu
a3MgYSBXZWJHTCBwcm9ncmFtLCB0aHJvd3MgaWYgdGhlcmUgYXJlIGVycm9ycy4KLSAqIEBwYXJh
bSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0g
eyFXZWJHTFByb2dyYW19IHByb2dyYW0gVGhlIFdlYkdMUHJvZ3JhbSB0byBsaW5rLgotICogQHBh
cmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBm
b3IgZXJyb3JzLiAKLSAqLwotdmFyIGxpbmtQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0s
IG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBlcnJGbiA9IG9wdF9lcnJvckNhbGxiYWNrIHx8
IHRlc3RGYWlsZWQ7Ci0gIC8vIExpbmsgdGhlIHByb2dyYW0KLSAgZ2wubGlua1Byb2dyYW0ocHJv
Z3JhbSk7Ci0KLSAgLy8gQ2hlY2sgdGhlIGxpbmsgc3RhdHVzCi0gIHZhciBsaW5rZWQgPSBnbC5n
ZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKTsKLSAgaWYgKCFsaW5r
ZWQpIHsKLSAgICAvLyBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSBsaW5rCi0gICAgdmFy
IGVycm9yID0gZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cgKHByb2dyYW0pOwotCi0gICAgZXJyRm4oIkVy
cm9yIGluIHByb2dyYW0gbGlua2luZzoiICsgZXJyb3IpOwotCi0gICAgZ2wuZGVsZXRlUHJvZ3Jh
bShwcm9ncmFtKTsKLSAgfQotfTsKLQotLyoqCi0gKiBMb2FkcyB0ZXh0IGZyb20gYW4gZXh0ZXJu
YWwgZmlsZS4gVGhpcyBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cy4KLSAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJuYWwgZmlsZS4KLSAqIEBwYXJhbSB7IWZ1bmN0aW9u
KGJvb2wsIHN0cmluZyk6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2VudCBhIGJvb2wgZm9yCi0g
KiAgICAgc3VjY2VzcyBhbmQgdGhlIHN0cmluZy4KLSAqLwotdmFyIGxvYWRUZXh0RmlsZUFzeW5j
ID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewotICBsb2cgKCJsb2FkaW5nOiAiICsgdXJsKTsK
LSAgdmFyIGVycm9yID0gJ2xvYWRUZXh0RmlsZVN5bmNocm9ub3VzIGZhaWxlZCB0byBsb2FkIHVy
bCAiJyArIHVybCArICciJzsKLSAgdmFyIHJlcXVlc3Q7Ci0gIGlmICh3aW5kb3cuWE1MSHR0cFJl
cXVlc3QpIHsKLSAgICByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgaWYgKHJl
cXVlc3Qub3ZlcnJpZGVNaW1lVHlwZSkgewotICAgICAgcmVxdWVzdC5vdmVycmlkZU1pbWVUeXBl
KCd0ZXh0L3BsYWluJyk7Ci0gICAgfQotICB9IGVsc2UgewotICAgIHRocm93ICdYTUxIdHRwUmVx
dWVzdCBpcyBkaXNhYmxlZCc7Ci0gIH0KLSAgdHJ5IHsKLSAgICByZXF1ZXN0Lm9wZW4oJ0dFVCcs
IHVybCwgdHJ1ZSk7Ci0gICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigp
IHsKLSAgICAgIGlmIChyZXF1ZXN0LnJlYWR5U3RhdGUgPT0gNCkgewotICAgICAgICB2YXIgdGV4
dCA9ICcnOwotICAgICAgICAvLyBIVFRQIHJlcG9ydHMgc3VjY2VzcyB3aXRoIGEgMjAwIHN0YXR1
cy4gVGhlIGZpbGUgcHJvdG9jb2wgcmVwb3J0cwotICAgICAgICAvLyBzdWNjZXNzIHdpdGggemVy
by4gSFRUUCBkb2VzIG5vdCB1c2UgemVybyBhcyBhIHN0YXR1cyBjb2RlICh0aGV5Ci0gICAgICAg
IC8vIHN0YXJ0IGF0IDEwMCkuCi0gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEu
b3JnL0VuL1VzaW5nX1hNTEh0dHBSZXF1ZXN0Ci0gICAgICAgIHZhciBzdWNjZXNzID0gcmVxdWVz
dC5zdGF0dXMgPT0gMjAwIHx8IHJlcXVlc3Quc3RhdHVzID09IDA7Ci0gICAgICAgIGlmIChzdWNj
ZXNzKSB7Ci0gICAgICAgICAgdGV4dCA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwotICAgICAgICB9
Ci0gICAgICAgIGxvZygibG9hZGVkOiAiICsgdXJsKTsKLSAgICAgICAgY2FsbGJhY2soc3VjY2Vz
cywgdGV4dCk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICByZXF1ZXN0LnNlbmQobnVsbCk7Ci0gIH0g
Y2F0Y2ggKGUpIHsKLSAgICBsb2coImZhaWxlZCB0byBsb2FkOiAiICsgdXJsKTsKLSAgICBjYWxs
YmFjayhmYWxzZSwgJycpOwotICB9Ci19OwotCi0vKioKLSAqIFJlY3Vyc2l2ZWx5IGxvYWRzIGEg
ZmlsZSBhcyBhIGxpc3QuIEVhY2ggbGluZSBpcyBwYXJzZWQgZm9yIGEgcmVsYXRpdmUKLSAqIHBh
dGguIElmIHRoZSBmaWxlIGVuZHMgaW4gLnR4dCB0aGUgY29udGVudHMgb2YgdGhhdCBmaWxlIGlz
IGluc2VydGVkIGluCi0gKiB0aGUgbGlzdC4KLSAqCi0gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRo
ZSB1cmwgb2YgdGhlIGV4dGVybmFsIGZpbGUuCi0gKiBAcGFyYW0geyFmdW5jdGlvbihib29sLCBB
cnJheTxzdHJpbmc+KTogdm9pZH0gY2FsbGJhY2sgdGhhdCBpcyBzZW50IGEgYm9vbAotICogICAg
IGZvciBzdWNjZXNzIGFuZCB0aGUgYXJyYXkgb2Ygc3RyaW5ncy4KLSAqLwotdmFyIGdldEZpbGVM
aXN0QXN5bmMgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Ci0gIHZhciBmaWxlcyA9IFtdOwot
Ci0gIHZhciBnZXRGaWxlTGlzdEltcGwgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Ci0gICAg
dmFyIGZpbGVzID0gW107Ci0gICAgaWYgKHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcu
dHh0JykgewotICAgICAgbG9hZFRleHRGaWxlQXN5bmModXJsLCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIHRleHQpIHsKLSAgICAgICAgICBpZiAoIXN1Y2Nl
c3MpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7
Ci0gICAgICAgICAgdmFyIHByZWZpeCA9ICcnOwotICAgICAgICAgIHZhciBsYXN0U2xhc2ggPSB1
cmwubGFzdEluZGV4T2YoJy8nKTsKLSAgICAgICAgICBpZiAobGFzdFNsYXNoID49IDApIHsKLSAg
ICAgICAgICAgIHByZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFzdFNsYXNoICsgMSk7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHZhciBmYWlsID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGNvdW50ID0g
MTsKLSAgICAgICAgICB2YXIgaW5kZXggPSAwOwotICAgICAgICAgIGZvciAodmFyIGlpID0gMDsg
aWkgPCBsaW5lcy5sZW5ndGg7ICsraWkpIHsKLSAgICAgICAgICAgIHZhciBzdHIgPSBsaW5lc1tp
aV0ucmVwbGFjZSgvXlxzXHMqLywgJycpLnJlcGxhY2UoL1xzXHMqJC8sICcnKTsKLSAgICAgICAg
ICAgIGlmIChzdHIubGVuZ3RoID4gNCAmJgotICAgICAgICAgICAgICAgIHN0clswXSAhPSAnIycg
JiYKLSAgICAgICAgICAgICAgICBzdHJbMF0gIT0gIjsiICYmCi0gICAgICAgICAgICAgICAgc3Ry
LnN1YnN0cigwLCAyKSAhPSAiLy8iKSB7Ci0gICAgICAgICAgICAgIHZhciBuYW1lcyA9IHN0ci5z
cGxpdCgvICsvKTsKLSAgICAgICAgICAgICAgbmV3X3VybCA9IHByZWZpeCArIHN0cjsKLSAgICAg
ICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgbmV3X3Vy
bCA9IHByZWZpeCArIHN0cjsKLSAgICAgICAgICAgICAgICArK2NvdW50OwotICAgICAgICAgICAg
ICAgIGdldEZpbGVMaXN0SW1wbChuZXdfdXJsLCBmdW5jdGlvbihpbmRleCkgewotICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIG5ld19maWxlcykgewotICAgICAgICAg
ICAgICAgICAgICBsb2coImdvdCBmaWxlczogIiArIG5ld19maWxlcy5sZW5ndGgpOwotICAgICAg
ICAgICAgICAgICAgICBpZiAoc3VjY2VzcykgewotICAgICAgICAgICAgICAgICAgICAgIGZpbGVz
W2luZGV4XSA9IG5ld19maWxlczsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBmaW5pc2goc3VjY2Vzcyk7Ci0gICAgICAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgICAgIH0oaW5kZXgrKykpOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIHZhciBzID0gIiI7Ci0gICAgICAgICAgICAgICAgdmFyIHAgPSAiIjsKLSAgICAgICAgICAg
ICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgbmFtZXMubGVuZ3RoOyArK2pqKSB7Ci0gICAgICAg
ICAgICAgICAgICBzICs9IHAgKyBwcmVmaXggKyBuYW1lc1tqal07Ci0gICAgICAgICAgICAgICAg
ICBwID0gIiAiOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmaWxlc1tpbmRl
eCsrXSA9IHM7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0g
ICAgICAgICAgZmluaXNoKHRydWUpOwotCi0gICAgICAgICAgZnVuY3Rpb24gZmluaXNoKHN1Y2Nl
c3MpIHsKLSAgICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICAgICAgICBmYWlsID0g
dHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC0tY291bnQ7Ci0gICAgICAgICAgICBs
b2coImNvdW50OiAiICsgY291bnQpOwotICAgICAgICAgICAgaWYgKCFjb3VudCkgewotICAgICAg
ICAgICAgICBjYWxsYmFjayghZmFpbCwgZmlsZXMpOwotICAgICAgICAgICAgfQotICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgfSgpKTsKLQotICAgIH0gZWxzZSB7Ci0gICAgICBmaWxlcy5w
dXNoKHVybCk7Ci0gICAgICBjYWxsYmFjayh0cnVlLCBmaWxlcyk7Ci0gICAgfQotICB9OwotCi0g
IGdldEZpbGVMaXN0SW1wbCh1cmwsIGZ1bmN0aW9uKHN1Y2Nlc3MsIGZpbGVzKSB7Ci0gICAgLy8g
ZmxhdHRlbgotICAgIHZhciBmbGF0ID0gW107Ci0gICAgZmxhdHRlbihmaWxlcyk7Ci0gICAgZnVu
Y3Rpb24gZmxhdHRlbihmaWxlcykgewotICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZpbGVz
Lmxlbmd0aDsgKytpaSkgewotICAgICAgICB2YXIgdmFsdWUgPSBmaWxlc1tpaV07Ci0gICAgICAg
IGlmICh0eXBlb2YodmFsdWUpID09ICJzdHJpbmciKSB7Ci0gICAgICAgICAgZmxhdC5wdXNoKHZh
bHVlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBmbGF0dGVuKHZhbHVlKTsKLSAgICAg
ICAgfQotICAgICAgfQotICAgIH0KLSAgICBjYWxsYmFjayhzdWNjZXNzLCBmbGF0KTsKLSAgfSk7
Ci19OwotCi0vKioKLSAqIEdldHMgYSBmaWxlIGZyb20gYSBmaWxlL1VSTAotICogQHBhcmFtIHtz
dHJpbmd9IGZpbGUgdGhlIFVSTCBvZiB0aGUgZmlsZSB0byBnZXQuCi0gKiBAcmV0dXJuIHtzdHJp
bmd9IFRoZSBjb250ZW50cyBvZiB0aGUgZmlsZS4KLSAqLwotdmFyIHJlYWRGaWxlID0gZnVuY3Rp
b24oZmlsZSkgewotICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gIHhoci5vcGVu
KCJHRVQiLCBmaWxlLCBmYWxzZSk7Ci0gIHhoci5zZW5kKCk7Ci0gIHJldHVybiB4aHIucmVzcG9u
c2VUZXh0LnJlcGxhY2UoL1xyL2csICIiKTsKLX07Ci0KLXZhciByZWFkRmlsZUxpc3QgPSBmdW5j
dGlvbih1cmwpIHsKLSAgdmFyIGZpbGVzID0gW107Ci0gIGlmICh1cmwuc3Vic3RyKHVybC5sZW5n
dGggLSA0KSA9PSAnLnR4dCcpIHsKLSAgICB2YXIgbGluZXMgPSByZWFkRmlsZSh1cmwpLnNwbGl0
KCdcbicpOwotICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICB2YXIgbGFzdFNsYXNoID0gdXJsLmxh
c3RJbmRleE9mKCcvJyk7Ci0gICAgaWYgKGxhc3RTbGFzaCA+PSAwKSB7Ci0gICAgICBwcmVmaXgg
PSB1cmwuc3Vic3RyKDAsIGxhc3RTbGFzaCArIDEpOwotICAgIH0KLSAgICBmb3IgKHZhciBpaSA9
IDA7IGlpIDwgbGluZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICB2YXIgc3RyID0gbGluZXNbaWld
LnJlcGxhY2UoL15cc1xzKi8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7Ci0gICAgICBpZiAo
c3RyLmxlbmd0aCA+IDQgJiYKLSAgICAgICAgICBzdHJbMF0gIT0gJyMnICYmCi0gICAgICAgICAg
c3RyWzBdICE9ICI7IiAmJgotICAgICAgICAgIHN0ci5zdWJzdHIoMCwgMikgIT0gIi8vIikgewot
ICAgICAgICB2YXIgbmFtZXMgPSBzdHIuc3BsaXQoLyArLyk7Ci0gICAgICAgIGlmIChuYW1lcy5s
ZW5ndGggPT0gMSkgewotICAgICAgICAgIG5ld191cmwgPSBwcmVmaXggKyBzdHI7Ci0gICAgICAg
ICAgZmlsZXMgPSBmaWxlcy5jb25jYXQocmVhZEZpbGVMaXN0KG5ld191cmwpKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICB2YXIgcyA9ICIiOwotICAgICAgICAgIHZhciBwID0gIiI7Ci0g
ICAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG5hbWVzLmxlbmd0aDsgKytqaikgewotICAg
ICAgICAgICAgcyArPSBwICsgcHJlZml4ICsgbmFtZXNbampdOwotICAgICAgICAgICAgcCA9ICIg
IjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZmlsZXMucHVzaChzKTsKLSAgICAgICAgfQotICAg
ICAgfQotICAgIH0KLSAgfSBlbHNlIHsKLSAgICBmaWxlcy5wdXNoKHVybCk7Ci0gIH0KLSAgcmV0
dXJuIGZpbGVzOwotfTsKLQotLyoqCi0gKiBMb2FkcyBhIHNoYWRlci4KLSAqIEBwYXJhbSB7IVdl
YkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0cmlu
Z30gc2hhZGVyU291cmNlIFRoZSBzaGFkZXIgc291cmNlLgotICogQHBhcmFtIHtudW1iZXJ9IHNo
YWRlclR5cGUgVGhlIHR5cGUgb2Ygc2hhZGVyLiAKLSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5n
KTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0gKiBAcmV0
dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KLSAqLwotdmFyIGxvYWRTaGFk
ZXIgPSBmdW5jdGlvbihnbCwgc2hhZGVyU291cmNlLCBzaGFkZXJUeXBlLCBvcHRfZXJyb3JDYWxs
YmFjaykgewotICB2YXIgZXJyRm4gPSBvcHRfZXJyb3JDYWxsYmFjayB8fCBlcnJvcjsKLSAgLy8g
Q3JlYXRlIHRoZSBzaGFkZXIgb2JqZWN0Ci0gIHZhciBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIo
c2hhZGVyVHlwZSk7Ci0gIGlmIChzaGFkZXIgPT0gbnVsbCkgewotICAgIGVyckZuKCIqKiogRXJy
b3I6IHVuYWJsZSB0byBjcmVhdGUgc2hhZGVyICciK3NoYWRlclNvdXJjZSsiJyIpOwotICAgIHJl
dHVybiBudWxsOwotICB9Ci0KLSAgLy8gTG9hZCB0aGUgc2hhZGVyIHNvdXJjZQotICBnbC5zaGFk
ZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3VyY2UpOwotICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3Io
KTsKLSAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAgIGVyckZuKCIqKiogRXJyb3IgbG9h
ZGluZyBzaGFkZXIgJyIgKyBzaGFkZXIgKyAiJzoiICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIGVycikp
OwotICAgIHJldHVybiBudWxsOwotICB9Ci0KLSAgLy8gQ29tcGlsZSB0aGUgc2hhZGVyCi0gIGds
LmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKLQotICAvLyBDaGVjayB0aGUgY29tcGlsZSBzdGF0dXMK
LSAgdmFyIGNvbXBpbGVkID0gZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElM
RV9TVEFUVVMpOwotICBpZiAoIWNvbXBpbGVkKSB7Ci0gICAgLy8gU29tZXRoaW5nIHdlbnQgd3Jv
bmcgZHVyaW5nIGNvbXBpbGF0aW9uOyBnZXQgdGhlIGVycm9yCi0gICAgbGFzdEVycm9yID0gZ2wu
Z2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpOwotICAgIGVyckZuKCIqKiogRXJyb3IgY29tcGlsaW5n
ICIgKyBnbEVudW1Ub1N0cmluZyhnbCwgc2hhZGVyVHlwZSkgKyAiICciICsgc2hhZGVyICsgIic6
IiArIGxhc3RFcnJvcik7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7Ci0gICAgcmV0dXJu
IG51bGw7Ci0gIH0KLQotICByZXR1cm4gc2hhZGVyOwotfQotCi0vKioKLSAqIExvYWRzIGEgc2hh
ZGVyIGZyb20gYSBVUkwuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENv
bnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtmaWxlfSBmaWxlIFRoZSBVUkwgb2YgdGhlIHNoYWRl
ciBzb3VyY2UuCi0gKiBAcGFyYW0ge251bWJlcn0gdHlwZSBUaGUgdHlwZSBvZiBzaGFkZXIuCi0g
KiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxi
YWNrIGZvciBlcnJvcnMuIAotICogQHJldHVybiB7IVdlYkdMU2hhZGVyfSBUaGUgY3JlYXRlZCBz
aGFkZXIuCi0gKi8KLXZhciBsb2FkU2hhZGVyRnJvbUZpbGUgPSBmdW5jdGlvbihnbCwgZmlsZSwg
dHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKLSAgdmFyIHNoYWRlclNvdXJjZSA9IHJlYWRGaWxl
KGZpbGUpOwotICByZXR1cm4gbG9hZFNoYWRlcihnbCwgc2hhZGVyU291cmNlLCB0eXBlLCBvcHRf
ZXJyb3JDYWxsYmFjayk7Ci19OwotCi0vKioKLSAqIEdldHMgdGhlIGNvbnRlbnQgb2Ygc2NyaXB0
LgotICovCi12YXIgZ2V0U2NyaXB0ID0gZnVuY3Rpb24oc2NyaXB0SWQpIHsKLSAgdmFyIHNoYWRl
clNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdElkKTsKLSAgaWYgKCFzaGFk
ZXJTY3JpcHQpIHsKLSAgICB0aHJvdygiKioqIEVycm9yOiB1bmtub3duIHNjcmlwdCBlbGVtZW50
IiArIHNjcmlwdElkKTsKLSAgfQotICByZXR1cm4gc2hhZGVyU2NyaXB0LnRleHQ7Ci19OwotCi0v
KioKLSAqIExvYWRzIGEgc2hhZGVyIGZyb20gYSBzY3JpcHQgdGFnLgotICogQHBhcmFtIHshV2Vi
R0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5n
fSBzY3JpcHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0YWcuCi0gKiBAcGFyYW0ge251bWJlcn0g
b3B0X3NoYWRlclR5cGUgVGhlIHR5cGUgb2Ygc2hhZGVyLiBJZiBub3QgcGFzc2VkIGluIGl0IHdp
bGwKLSAqICAgICBiZSBkZXJpdmVkIGZyb20gdGhlIHR5cGUgb2YgdGhlIHNjcmlwdCB0YWcuCi0g
KiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxi
YWNrIGZvciBlcnJvcnMuIAotICogQHJldHVybiB7IVdlYkdMU2hhZGVyfSBUaGUgY3JlYXRlZCBz
aGFkZXIuCi0gKi8KLXZhciBsb2FkU2hhZGVyRnJvbVNjcmlwdCA9IGZ1bmN0aW9uKAotICAgIGds
LCBzY3JpcHRJZCwgb3B0X3NoYWRlclR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBz
aGFkZXJTb3VyY2UgPSAiIjsKLSAgdmFyIHNoYWRlclR5cGU7Ci0gIHZhciBzaGFkZXJTY3JpcHQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHRJZCk7Ci0gIGlmICghc2hhZGVyU2NyaXB0
KSB7Ci0gICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93biBzY3JpcHQgZWxlbWVudCAiICsgc2Ny
aXB0SWQpOwotICB9Ci0gIHNoYWRlclNvdXJjZSA9IHNoYWRlclNjcmlwdC50ZXh0OwotCi0gIGlm
ICghb3B0X3NoYWRlclR5cGUpIHsKLSAgICBpZiAoc2hhZGVyU2NyaXB0LnR5cGUgPT0gIngtc2hh
ZGVyL3gtdmVydGV4IikgewotICAgICAgc2hhZGVyVHlwZSA9IGdsLlZFUlRFWF9TSEFERVI7Ci0g
ICAgfSBlbHNlIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC1mcmFnbWVudCIp
IHsKLSAgICAgIHNoYWRlclR5cGUgPSBnbC5GUkFHTUVOVF9TSEFERVI7Ci0gICAgfSBlbHNlIGlm
IChzaGFkZXJUeXBlICE9IGdsLlZFUlRFWF9TSEFERVIgJiYgc2hhZGVyVHlwZSAhPSBnbC5GUkFH
TUVOVF9TSEFERVIpIHsKLSAgICAgIHRocm93KCIqKiogRXJyb3I6IHVua25vd24gc2hhZGVyIHR5
cGUiKTsKLSAgICAgIHJldHVybiBudWxsOwotICAgIH0KLSAgfQotCi0gIHJldHVybiBsb2FkU2hh
ZGVyKAotICAgICAgZ2wsIHNoYWRlclNvdXJjZSwgb3B0X3NoYWRlclR5cGUgPyBvcHRfc2hhZGVy
VHlwZSA6IHNoYWRlclR5cGUsCi0gICAgICBvcHRfZXJyb3JDYWxsYmFjayk7Ci19OwotCi12YXIg
bG9hZFN0YW5kYXJkUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsKSB7Ci0gIHZhciBwcm9ncmFtID0gZ2wu
Y3JlYXRlUHJvZ3JhbSgpOwotICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgbG9hZFN0YW5kYXJk
VmVydGV4U2hhZGVyKGdsKSk7Ci0gIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBsb2FkU3RhbmRh
cmRGcmFnbWVudFNoYWRlcihnbCkpOwotICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSk7Ci0gIHJl
dHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBMb2FkcyBzaGFkZXJzIGZyb20gZmlsZXMsIGNy
ZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQgbGlua3MuCi0gKiBAcGFy
YW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFt
IHtzdHJpbmd9IHZlcnRleFNoYWRlclBhdGggVGhlIFVSTCBvZiB0aGUgdmVydGV4IHNoYWRlci4K
LSAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNoYWRlclBhdGggVGhlIFVSTCBvZiB0aGUgZnJh
Z21lbnQgc2hhZGVyLgotICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJy
b3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFXZWJHTFByb2dy
YW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCi0gKi8KLXZhciBsb2FkUHJvZ3JhbUZyb21GaWxlID0g
ZnVuY3Rpb24oCi0gICAgZ2wsIHZlcnRleFNoYWRlclBhdGgsIGZyYWdtZW50U2hhZGVyUGF0aCwg
b3B0X2Vycm9yQ2FsbGJhY2spIHsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7
Ci0gIHZhciB2cyA9IGxvYWRTaGFkZXJGcm9tRmlsZSgKLSAgICAgIGdsLCB2ZXJ0ZXhTaGFkZXJQ
YXRoLCBnbC5WRVJURVhfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjayk7Ci0gIHZhciBmcyA9IGxv
YWRTaGFkZXJGcm9tRmlsZSgKLSAgICAgIGdsLCBmcmFnbWVudFNoYWRlclBhdGgsIGdsLkZSQUdN
RU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spOwotICBpZiAodnMgJiYgZnMpIHsKLSAgICBn
bC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdnMpOwotICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFt
LCBmcyk7Ci0gICAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsK
LSAgfQotICBpZiAodnMpIHsKLSAgICBnbC5kZWxldGVTaGFkZXIodnMpOwotICB9Ci0gIGlmIChm
cykgewotICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7Ci0gIH0KLSAgcmV0dXJuIHByb2dyYW07Ci19
OwotCi0vKioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBzY3JpcHQgdGFncywgY3JlYXRlcyBhIHBy
b2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFuZAotICogbGlua3MuCi0gKiBAcGFyYW0geyFX
ZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJp
bmd9IHZlcnRleFNjcmlwdElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRhZyB0aGF0IGNvbnRhaW5z
IHRoZQotICogICAgICAgIHZlcnRleCBzaGFkZXIuCi0gKiBAcGFyYW0ge3N0cmluZ30gZnJhZ21l
bnRTY3JpcHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0YWcgdGhhdCBjb250YWlucyB0aGUKLSAq
ICAgICAgICBmcmFnbWVudCBzaGFkZXIuCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZv
aWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAotICogQHJldHVybiB7
IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KLSAqLwotdmFyIGxvYWRQcm9ncmFt
RnJvbVNjcmlwdCA9IGZ1bmN0aW9uIGxvYWRQcm9ncmFtRnJvbVNjcmlwdCgKLSAgICBnbCwgdmVy
dGV4U2NyaXB0SWQsIGZyYWdtZW50U2NyaXB0SWQsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZh
ciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICBnbC5hdHRhY2hTaGFkZXIoCi0gICAg
ICBwcm9ncmFtLAotICAgICAgbG9hZFNoYWRlckZyb21TY3JpcHQoCi0gICAgICAgICAgZ2wsIHZl
cnRleFNjcmlwdElkLCBnbC5WRVJURVhfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjaykpOwotICBn
bC5hdHRhY2hTaGFkZXIoCi0gICAgICBwcm9ncmFtLAotICAgICAgbG9hZFNoYWRlckZyb21TY3Jp
cHQoCi0gICAgICAgICAgZ2wsIGZyYWdtZW50U2NyaXB0SWQsICBnbC5GUkFHTUVOVF9TSEFERVIs
IG9wdF9lcnJvckNhbGxiYWNrKSk7Ci0gIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtLCBvcHRfZXJy
b3JDYWxsYmFjayk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBMb2FkcyBzaGFk
ZXJzIGZyb20gc291cmNlLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMg
YW5kCi0gKiBsaW5rcy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29u
dGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFXZWJHTFNoYWRlcn0gdmVydGV4U2hhZGVyIFRoZSB2
ZXJ0ZXggc2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xTaGFkZXJ9IGZyYWdtZW50U2hhZGVyIFRo
ZSBmcmFnbWVudCBzaGFkZXIuCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9w
dF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCi0gKiBAcmV0dXJuIHshV2ViR0xQ
cm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFtLgotICovCi12YXIgY3JlYXRlUHJvZ3JhbSA9IGZ1
bmN0aW9uKGdsLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyLCBvcHRfZXJyb3JDYWxsYmFj
aykgewotICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKLSAgZ2wuYXR0YWNoU2hh
ZGVyKHByb2dyYW0sIHZlcnRleFNoYWRlcik7Ci0gIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBm
cmFnbWVudFNoYWRlcik7Ci0gIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtLCBvcHRfZXJyb3JDYWxs
YmFjayk7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBMb2FkcyBzaGFkZXJzIGZy
b20gc291cmNlLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kCi0g
KiBsaW5rcy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0
byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2hhZGVyIFRoZSB2ZXJ0ZXggc2hhZGVy
IHNvdXJjZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNoYWRlciBUaGUgZnJhZ21lbnQg
c2hhZGVyIHNvdXJjZS4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vy
cm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0gKiBAcmV0dXJuIHshV2ViR0xQcm9n
cmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFtLgotICovCi12YXIgbG9hZFByb2dyYW0gPSBmdW5jdGlv
bigKLSAgICBnbCwgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciwgb3B0X2Vycm9yQ2FsbGJh
Y2spIHsKLSAgdmFyIHByb2dyYW07Ci0gIHZhciB2cyA9IGxvYWRTaGFkZXIoCi0gICAgICBnbCwg
dmVydGV4U2hhZGVyLCBnbC5WRVJURVhfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjayk7Ci0gIHZh
ciBmcyA9IGxvYWRTaGFkZXIoCi0gICAgICBnbCwgZnJhZ21lbnRTaGFkZXIsIGdsLkZSQUdNRU5U
X1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spOwotICBpZiAodnMgJiYgZnMpIHsKLSAgICBwcm9n
cmFtID0gY3JlYXRlUHJvZ3JhbShnbCwgdnMsIGZzLCBvcHRfZXJyb3JDYWxsYmFjaykKLSAgfQot
ICBpZiAodnMpIHsKLSAgICBnbC5kZWxldGVTaGFkZXIodnMpOwotICB9Ci0gIGlmIChmcykgewot
ICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7Ci0gIH0KLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0v
KioKLSAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRh
Y2hlcyB0aGUgc2hhZGVycyBhbmQKLSAqIGxpbmtzIGJ1dCBleHBlY3RzIGVycm9yLgotICoKLSAq
IEdMU0wgMS4wLjE3IDEwLjI3IGVmZmVjdGl2ZWx5IHNheXMgdGhhdCBjb21waWxlU2hhZGVyIGNh
bgotICogYWx3YXlzIHN1Y2NlZWQgYXMgbG9uZyBhcyBsaW5rUHJvZ3JhbSBmYWlscyBzbyB3ZSBj
YW4ndAotICogcmVseSBvbiBjb21waWxlU2hhZGVyIGZhaWxpbmcuIFRoaXMgZnVuY3Rpb24gZXhw
ZWN0cwotICogb25lIG9mIHRoZSBzaGFkZXIgdG8gZmFpbCBPUiBsaW5raW5nIHRvIGZhaWwuCi0g
KgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4K
LSAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhTaGFkZXJTY3JpcHRJZCBUaGUgdmVydGV4IHNoYWRl
ci4KLSAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNoYWRlclNjcmlwdElkIFRoZSBmcmFnbWVu
dCBzaGFkZXIuCi0gKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0u
Ci0gKi8KLXZhciBsb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RFcnJvciA9IGZ1bmN0aW9uKAot
ICAgIGdsLCB2ZXJ0ZXhTaGFkZXJTY3JpcHRJZCwgZnJhZ21lbnRTaGFkZXJTY3JpcHRJZCkgewot
ICB2YXIgdmVydGV4U2hhZGVyID0gbG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIHZlcnRleFNoYWRl
clNjcmlwdElkKTsKLSAgaWYgKCF2ZXJ0ZXhTaGFkZXIpIHsKLSAgICByZXR1cm4gbnVsbDsKLSAg
fQotICB2YXIgZnJhZ21lbnRTaGFkZXIgPSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgZnJhZ21l
bnRTaGFkZXJTY3JpcHRJZCk7Ci0gIGlmICghZnJhZ21lbnRTaGFkZXIpIHsKLSAgICByZXR1cm4g
bnVsbDsKLSAgfQotICB2YXIgbGlua1N1Y2Nlc3MgPSB0cnVlOwotICB2YXIgcHJvZ3JhbSA9IGds
LmNyZWF0ZVByb2dyYW0oKTsKLSAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRleFNoYWRl
cik7Ci0gIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7Ci0gIGxpbmtT
dWNjZXNzID0gdHJ1ZTsKLSAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIGZ1bmN0aW9uKCkgewot
ICAgICAgbGlua1N1Y2Nlc3MgPSBmYWxzZTsKLSAgICB9KTsKLSAgcmV0dXJuIGxpbmtTdWNjZXNz
ID8gcHJvZ3JhbSA6IG51bGw7Ci19OwotCi0KLXZhciBnZXRBY3RpdmVNYXAgPSBmdW5jdGlvbihn
bCwgcHJvZ3JhbSwgdHlwZUluZm8pIHsKLSAgdmFyIG51bVZhcmlhYmxlcyA9IGdsLmdldFByb2dy
YW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2xbdHlwZUluZm8ucGFyYW1dKTsKLSAgdmFyIHZhcmlhYmxl
cyA9IHt9OwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgbnVtVmFyaWFibGVzOyArK2lpKSB7Ci0g
ICAgdmFyIGluZm8gPSBnbFt0eXBlSW5mby5hY3RpdmVGbl0ocHJvZ3JhbSwgaWkpOwotICAgIHZh
cmlhYmxlc1tpbmZvLm5hbWVdID0gewotICAgICAgbmFtZTogaW5mby5uYW1lLAotICAgICAgc2l6
ZTogaW5mby5zaXplLAotICAgICAgdHlwZTogaW5mby50eXBlLAotICAgICAgbG9jYXRpb246IGds
W3R5cGVJbmZvLmxvY0ZuXShwcm9ncmFtLCBpbmZvLm5hbWUpCi0gICAgfTsKLSAgfQotICByZXR1
cm4gdmFyaWFibGVzOwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgbWFwIG9mIGF0dHJpYiBuYW1l
cyB0byBpbmZvIGFib3V0IHRob3NlCi0gKiBhdHRyaWJzCi0gKgotICogZWc6Ci0gKiAgICB7ICJh
dHRyaWIxTmFtZSI6Ci0gKiAgICAgIHsKLSAqICAgICAgICBuYW1lOiAiYXR0cmliMU5hbWUiLAot
ICogICAgICAgIHNpemU6IDEsCi0gKiAgICAgICAgdHlwZTogZ2wuRkxPQVRfTUFUMiwKLSAqICAg
ICAgICBsb2NhdGlvbjogMAotICogICAgICB9LAotICogICAgICAiYXR0cmliMk5hbWVbMF0iOgot
ICogICAgICB7Ci0gKiAgICAgICAgIG5hbWU6ICJhdHRyaWIyTmFtZVswXSIsCi0gKiAgICAgICAg
IHNpemU6IDQsCi0gKiAgICAgICAgIHR5cGU6IGdsLkZMT0FULAotICogICAgICAgICBsb2NhdGlv
bjogMQotICogICAgICB9LAotICogICAgfQotICoKLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge1dlYkdMUHJvZ3JhbX0gVGhl
IHByb2dyYW0gdG8gcXVlcnkgZm9yIGF0dHJpYnMuCi0gKiBAcmV0dXJuIHRoZSBtYXAuCi0gKi8K
LXZhciBnZXRBdHRyaWJNYXAgPSBmdW5jdGlvbihnbCwgcHJvZ3JhbSkgewotICByZXR1cm4gZ2V0
QWN0aXZlTWFwKGdsLCBwcm9ncmFtLCB7Ci0gICAgICBwYXJhbTogIkFDVElWRV9BVFRSSUJTIiwK
LSAgICAgIGFjdGl2ZUZuOiAiZ2V0QWN0aXZlQXR0cmliIiwKLSAgICAgIGxvY0ZuOiAiZ2V0QXR0
cmliTG9jYXRpb24iCi0gIH0pOwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgbWFwIG9mIHVuaWZv
cm0gbmFtZXMgdG8gaW5mbyBhYm91dCB0aG9zZSB1bmlmb3JtCi0gKgotICogZWc6Ci0gKiAgICB7
ICJ1bmlmb3JtMU5hbWUiOgotICogICAgICB7Ci0gKiAgICAgICAgbmFtZTogInVuaWZvcm0xTmFt
ZSIsCi0gKiAgICAgICAgc2l6ZTogMSwKLSAqICAgICAgICB0eXBlOiBnbC5GTE9BVF9NQVQyLAot
ICogICAgICAgIGxvY2F0aW9uOiBXZWJHTFVuaWZvcm1Mb2NhdGlvbgotICogICAgICB9LAotICog
ICAgICAidW5pZm9ybTJOYW1lWzBdIjoKLSAqICAgICAgewotICogICAgICAgICBuYW1lOiAidW5p
Zm9ybTJOYW1lWzBdIiwKLSAqICAgICAgICAgc2l6ZTogNCwKLSAqICAgICAgICAgdHlwZTogZ2wu
RkxPQVQsCi0gKiAgICAgICAgIGxvY2F0aW9uOiBXZWJHTFVuaWZvcm1Mb2NhdGlvbgotICogICAg
ICB9LAotICogICAgfQotICoKLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdM
Q29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge1dlYkdMUHJvZ3JhbX0gVGhlIHByb2dyYW0gdG8g
cXVlcnkgZm9yIHVuaWZvcm1zLgotICogQHJldHVybiB0aGUgbWFwLgotICovCi12YXIgZ2V0VW5p
Zm9ybU1hcCA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtKSB7Ci0gIHJldHVybiBnZXRBY3RpdmVNYXAo
Z2wsIHByb2dyYW0sIHsKLSAgICAgIHBhcmFtOiAiQUNUSVZFX1VOSUZPUk1TIiwKLSAgICAgIGFj
dGl2ZUZuOiAiZ2V0QWN0aXZlVW5pZm9ybSIsCi0gICAgICBsb2NGbjogImdldFVuaWZvcm1Mb2Nh
dGlvbiIKLSAgfSk7Ci19OwotCi12YXIgYmFzZVBhdGg7Ci12YXIgZ2V0QmFzZVBhdGggPSBmdW5j
dGlvbigpIHsKLSAgaWYgKCFiYXNlUGF0aCkgewotICAgIHZhciBleHBlY3RlZEJhc2UgPSAid2Vi
Z2wtdGVzdC11dGlscy5qcyI7Ci0gICAgdmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnc2NyaXB0Jyk7Ci0gICAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0
ID0gc2NyaXB0c1tpXTsgaSsrKSB7Ci0gICAgICB2YXIgc3JjID0gc2NyaXB0LnNyYzsKLSAgICAg
IHZhciBsID0gc3JjLmxlbmd0aDsKLSAgICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJh
c2UubGVuZ3RoKSA9PSBleHBlY3RlZEJhc2UpIHsKLSAgICAgICAgYmFzZVBhdGggPSBzcmMuc3Vi
c3RyKDAsIGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAg
cmV0dXJuIGJhc2VQYXRoOwotfTsKLQotdmFyIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlciA9IGZ1
bmN0aW9uKGdsKSB7Ci0gIHJldHVybiBsb2FkU2hhZGVyRnJvbUZpbGUoCi0gICAgICBnbCwgZ2V0
QmFzZVBhdGgoKSArICJ2ZXJ0ZXhTaGFkZXIudmVydCIsIGdsLlZFUlRFWF9TSEFERVIpOwotfTsK
LQotdmFyIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgcmV0
dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKLSAgICAgIGdsLCBnZXRCYXNlUGF0aCgpICsgImZyYWdt
ZW50U2hhZGVyLmZyYWciLCBnbC5GUkFHTUVOVF9TSEFERVIpOwotfTsKLQotLyoqCi0gKiBMb2Fk
cyBhbiBpbWFnZSBhc3luY2hyb25vdXNseS4KLSAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIG9m
IGltYWdlIHRvIGxvYWQuCi0gKiBAcGFyYW0geyFmdW5jdGlvbighRWxlbWVudCk6IHZvaWR9IGNh
bGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwKLSAqICAgICB3aXRoIGxvYWRlZCBpbWFnZS4KLSAqLwot
dmFyIGxvYWRJbWFnZUFzeW5jID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewotICB2YXIgaW1n
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gIGltZy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKLSAgICBjYWxsYmFjayhpbWcpOwotICB9OwotICBpbWcuc3JjID0gdXJsOwotfTsKLQot
LyoqCi0gKiBMb2FkcyBhbiBhcnJheSBvZiBpbWFnZXMuCi0gKiBAcGFyYW0geyFBcnJheS48c3Ry
aW5nPn0gdXJscyBVUkxzIG9mIGltYWdlcyB0byBsb2FkLgotICogQHBhcmFtIHshZnVuY3Rpb24o
IXtzdHJpbmcsIGltZ30pOiB2b2lkfSBjYWxsYmFjay4gQ2FsbGJhY2sKLSAqICAgICB0aGF0IGdl
dHMgcGFzc2VkIG1hcCBvZiB1cmxzIHRvIGltZyB0YWdzLgotICovCi12YXIgbG9hZEltYWdlc0Fz
eW5jID0gZnVuY3Rpb24odXJscywgY2FsbGJhY2spIHsKLSAgdmFyIGNvdW50ID0gMTsKLSAgdmFy
IGltYWdlcyA9IHsgfTsKLSAgZnVuY3Rpb24gY291bnREb3duKCkgewotICAgIC0tY291bnQ7Ci0g
ICAgaWYgKGNvdW50ID09IDApIHsKLSAgICAgIGNhbGxiYWNrKGltYWdlcyk7Ci0gICAgfQotICB9
Ci0gIGZ1bmN0aW9uIGltYWdlTG9hZGVkKHVybCkgewotICAgIHJldHVybiBmdW5jdGlvbihpbWcp
IHsKLSAgICAgIGltYWdlc1t1cmxdID0gaW1nOwotICAgICAgY291bnREb3duKCk7Ci0gICAgfQot
ICB9Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB1cmxzLmxlbmd0aDsgKytpaSkgewotICAgICsr
Y291bnQ7Ci0gICAgbG9hZEltYWdlQXN5bmModXJsc1tpaV0sIGltYWdlTG9hZGVkKHVybHNbaWld
KSk7Ci0gIH0KLSAgY291bnREb3duKCk7Ci19OwotCi12YXIgZ2V0VXJsQXJndW1lbnRzID0gZnVu
Y3Rpb24oKSB7Ci0gIHZhciBhcmdzID0ge307Ci0gIHRyeSB7Ci0gICAgdmFyIHMgPSB3aW5kb3cu
bG9jYXRpb24uaHJlZjsKLSAgICB2YXIgcSA9IHMuaW5kZXhPZigiPyIpOwotICAgIHZhciBlID0g
cy5pbmRleE9mKCIjIik7Ci0gICAgaWYgKGUgPCAwKSB7Ci0gICAgICBlID0gcy5sZW5ndGg7Ci0g
ICAgfQotICAgIHZhciBxdWVyeSA9IHMuc3Vic3RyaW5nKHEgKyAxLCBlKTsKLSAgICB2YXIgcGFp
cnMgPSBxdWVyeS5zcGxpdCgiJiIpOwotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBwYWlycy5s
ZW5ndGg7ICsraWkpIHsKLSAgICAgIHZhciBrZXlWYWx1ZSA9IHBhaXJzW2lpXS5zcGxpdCgiPSIp
OwotICAgICAgdmFyIGtleSA9IGtleVZhbHVlWzBdOwotICAgICAgdmFyIHZhbHVlID0gZGVjb2Rl
VVJJQ29tcG9uZW50KGtleVZhbHVlWzFdKTsKLSAgICAgIGFyZ3Nba2V5XSA9IHZhbHVlOwotICAg
IH0KLSAgfSBjYXRjaCAoZSkgewotICAgIHRocm93ICJjb3VsZCBub3QgcGFyc2UgdXJsIjsKLSAg
fQotICByZXR1cm4gYXJnczsKLX07Ci0KLXZhciBtYWtlSW1hZ2UgPSBmdW5jdGlvbihjYW52YXMp
IHsKLSAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICBpbWcuc3Jj
ID0gY2FudmFzLnRvRGF0YVVSTCgpOwotICByZXR1cm4gaW1nOwotfTsKLQotdmFyIGluc2VydElt
YWdlID0gZnVuY3Rpb24oZWxlbWVudCwgY2FwdGlvbiwgaW1nKSB7Ci0gIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgZGl2LmFwcGVuZENoaWxkKGltZyk7Ci0gIHZh
ciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBsYWJlbC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjYXB0aW9uKSk7Ci0gIGRpdi5hcHBlbmRDaGls
ZChsYWJlbCk7Ci0gICBlbGVtZW50LmFwcGVuZENoaWxkKGRpdik7Ci19OwotCi12YXIgYWRkU2hh
ZGVyU291cmNlID0gZnVuY3Rpb24oZWxlbWVudCwgbGFiZWwsIHNvdXJjZSwgb3B0X3VybCkgewot
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gIHZhciBzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0gIHMuY2xhc3NOYW1lID0gInNoYWRlci1zb3Vy
Y2UiOwotICBzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Ci0gIHZhciBvbCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIm9sIik7Ci0gIC8vcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZShzb3VyY2UpKTsKLSAgdmFyIGxpbmVzID0gc291cmNlLnNwbGl0KCJcbiIpOwotICBmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgbGluZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIGxpbmUgPSBs
aW5lc1tpaV07Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAg
ICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsaW5lKSk7Ci0gICAgb2wu
YXBwZW5kQ2hpbGQobGkpOwotICB9Ci0gIHMuYXBwZW5kQ2hpbGQob2wpOwotICB2YXIgbCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKLSAgbC5ocmVmID0gInNob3ctc2hhZGVyLXNvdXJj
ZSI7Ci0gIGwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGFiZWwpKTsKLSAg
bC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBpZiAo
ZXZlbnQucHJldmVudERlZmF1bHQpIHsKLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
LSAgICAgIH0KLSAgICAgIHMuc3R5bGUuZGlzcGxheSA9IChzLnN0eWxlLmRpc3BsYXkgPT0gJ25v
bmUnKSA/ICdibG9jaycgOiAnbm9uZSc7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwgZmFs
c2UpOwotICBkaXYuYXBwZW5kQ2hpbGQobCk7Ci0gIGlmIChvcHRfdXJsKSB7Ci0gICAgdmFyIHUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Ci0gICAgdS5ocmVmID0gb3B0X3VybDsKLSAg
ICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7Ci0gICAgdS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiKCIgKyBvcHRfdXJsICsgIikiKSk7
Ci0gICAgZGl2LmFwcGVuZENoaWxkKHUpOwotICB9Ci0gIGRpdi5hcHBlbmRDaGlsZChzKTsKLSAg
ZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOwotfTsKLQotLy8gQWRkIHlvdXIgcHJlZml4IGhlcmUu
Ci12YXIgYnJvd3NlclByZWZpeGVzID0gWwotICAiIiwKLSAgIk1PWl8iLAotICAiT1BfIiwKLSAg
IldFQktJVF8iCi1dOwotCi0vKioKLSAqIEdpdmVuIGFuIGV4dGVuc2lvbiBuYW1lIGxpa2UgV0VC
R0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMKLSAqIHJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHN1
cHBvcnRlZCB2ZXJzaW9uIGV4dGVuc2lvbiwgbGlrZQotICogV0VCS0lUX1dFQkdMX2NvbXByZXNz
ZWRfdGV0dXJlX3MzdGMKLSAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5zaW9u
IHRvIGxvb2sgZm9yCi0gKiBAcmV0dXJuIHtzdHJpbmd9IG5hbWUgb2YgZXh0ZW5zaW9uIGZvdW5k
IG9yIHVuZGVmaW5lZCBpZiBub3QKLSAqICAgICBmb3VuZC4KLSAqLwotdmFyIGdldFN1cHBvcnRl
ZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzID0gZnVuY3Rpb24oZ2wsIG5hbWUpIHsKLSAgdmFy
IHN1cHBvcnRlZCA9IGdsLmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKTsKLSAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IGJyb3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgcHJlZml4
ZWROYW1lID0gYnJvd3NlclByZWZpeGVzW2lpXSArIG5hbWU7Ci0gICAgaWYgKHN1cHBvcnRlZC5p
bmRleE9mKHByZWZpeGVkTmFtZSkgPj0gMCkgewotICAgICAgcmV0dXJuIHByZWZpeGVkTmFtZTsK
LSAgICB9Ci0gIH0KLX07Ci0KLS8qKgotICogR2l2ZW4gYW4gZXh0ZW5zaW9uIG5hbWUgbGlrZSBX
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YwotICogcmV0dXJucyB0aGUgc3VwcG9ydGVkIHZl
cnNpb24gZXh0ZW5zaW9uLCBsaWtlCi0gKiBXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXR1cmVf
czN0YwotICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBleHRlbnNpb24gdG8gbG9vayBm
b3IKLSAqIEByZXR1cm4ge1dlYkdMRXh0ZW5zaW9ufSBUaGUgZXh0ZW5zaW9uIG9yIHVuZGVmaW5l
ZCBpZiBub3QKLSAqICAgICBmb3VuZC4KLSAqLwotdmFyIGdldEV4dGVuc2lvbldpdGhLbm93blBy
ZWZpeGVzID0gZnVuY3Rpb24oZ2wsIG5hbWUpIHsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGJy
b3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgcHJlZml4ZWROYW1lID0gYnJv
d3NlclByZWZpeGVzW2lpXSArIG5hbWU7Ci0gICAgdmFyIGV4dCA9IGdsLmdldEV4dGVuc2lvbihw
cmVmaXhlZE5hbWUpOwotICAgIGlmIChleHQpIHsKLSAgICAgIHJldHVybiBleHQ7Ci0gICAgfQot
ICB9Ci19OwotCi0KLXZhciByZXBsYWNlUkUgPSAvXCRcKChcdyspXCkvZzsKLQotLyoqCi0gKiBS
ZXBsYWNlcyBzdHJpbmdzIHdpdGggcHJvcGVydHkgdmFsdWVzLgotICogR2l2ZW4gYSBzdHJpbmcg
bGlrZSAiaGVsbG8gJChmaXJzdCkgJChsYXN0KSIgYW5kIGFuIG9iamVjdAotICogbGlrZSB7Zmly
c3Q6IkpvaG4iLCBsYXN0OiJTbWl0aCJ9IHdpbGwgcmV0dXJuCi0gKiAiaGVsbG8gSm9obiBTbWl0
aCIuCi0gKiBAcGFyYW0ge3N0cmluZ30gc3RyIFN0cmluZyB0byBkbyByZXBsYWNlbWVudHMgaW4K
LSAqIEBwYXJhbSB7Li4ufSAxIG9yIG1vcmUgb2JqZWN0cyBjb25haW5pbmcgcHJvcGVydGllcy4K
LSAqLwotdmFyIHJlcGxhY2VQYXJhbXMgPSBmdW5jdGlvbihzdHIpIHsKLSAgdmFyIGFyZ3MgPSBh
cmd1bWVudHM7Ci0gIHJldHVybiBzdHIucmVwbGFjZShyZXBsYWNlUkUsIGZ1bmN0aW9uKHN0ciwg
cDEsIG9mZnNldCwgcykgewotICAgIGZvciAodmFyIGlpID0gMTsgaWkgPCBhcmdzLmxlbmd0aDsg
KytpaSkgewotICAgICAgaWYgKGFyZ3NbaWldW3AxXSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAg
IHJldHVybiBhcmdzW2lpXVtwMV07Ci0gICAgICB9Ci0gICAgfQotICAgIHRocm93ICJ1bmtub3du
IHN0cmluZyBwYXJhbSAnIiArIHAxICsgIiciOwotICB9KTsKLX07Ci0KLQotLyoqCi0gKiBQcm92
aWRlcyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgaW4gYSBjcm9zcyBicm93c2VyIHdheS4KLSAqLwot
dmFyIHJlcXVlc3RBbmltRnJhbWVJbXBsXzsKLQotdmFyIHJlcXVlc3RBbmltRnJhbWUgPSBmdW5j
dGlvbihjYWxsYmFjaywgZWxlbWVudCkgewotICBpZiAoIXJlcXVlc3RBbmltRnJhbWVJbXBsXykg
ewotICAgIHJlcXVlc3RBbmltRnJhbWVJbXBsXyA9IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGZ1
bmN0aW9uTmFtZXMgPSBbCi0gICAgICAgICJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAotICAgICAg
ICAid2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKLSAgICAgICAgIm1velJlcXVlc3RBbmlt
YXRpb25GcmFtZSIsCi0gICAgICAgICJvUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKLSAgICAgICAg
Im1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIgotICAgICAgXTsKLSAgICAgIGZvciAodmFyIGpqID0g
MDsgamogPCBmdW5jdGlvbk5hbWVzLmxlbmd0aDsgKytqaikgewotICAgICAgICB2YXIgZnVuY3Rp
b25OYW1lID0gZnVuY3Rpb25OYW1lc1tqal07Ci0gICAgICAgIGlmICh3aW5kb3dbZnVuY3Rpb25O
YW1lXSkgewotICAgICAgICAgIHJldHVybiBmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oY2FsbGJhY2ssIGVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IHdpbmRvd1tuYW1lXS5jYWxsKHdpbmRvdywgY2FsbGJhY2ssIGVsZW1lbnQpOwotICAgICAgICAg
ICAgfTsKLSAgICAgICAgICB9KGZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAg
ICAgIHJldHVybiBmdW5jdGlvbihjYWxsYmFjaywgZWxlbWVudCkgewotICAgICAgICAgICByZXR1
cm4gd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2ssIDEwMDAgLyA3MCk7Ci0gICAgICAgIH07Ci0g
ICAgfSgpOwotICB9Ci0KLSAgcmV0dXJuIHJlcXVlc3RBbmltRnJhbWVJbXBsXyhjYWxsYmFjaywg
ZWxlbWVudCk7Ci19OwotCi0vKioKLSAqIFByb3ZpZGVzIGNhbmNlbEFuaW1hdGlvbkZyYW1lIGlu
IGEgY3Jvc3MgYnJvd3NlciB3YXkuCi0gKi8KLXZhciBjYW5jZWxBbmltRnJhbWUgPSAoZnVuY3Rp
b24oKSB7Ci0gIHJldHVybiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKLSAgICAgICAg
IHdpbmRvdy53ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZSB8fAotICAgICAgICAgd2luZG93Lm1v
ekNhbmNlbEFuaW1hdGlvbkZyYW1lIHx8Ci0gICAgICAgICB3aW5kb3cub0NhbmNlbEFuaW1hdGlv
bkZyYW1lIHx8Ci0gICAgICAgICB3aW5kb3cubXNDYW5jZWxBbmltYXRpb25GcmFtZSB8fAotICAg
ICAgICAgd2luZG93LmNsZWFyVGltZW91dDsKLX0pKCk7Ci0KLS8qKgotICogV2FpdHMgZm9yIHRo
ZSBicm93c2VyIHRvIGNvbXBvc2l0ZSB0aGUgY2FudmFzIGFzc29jaWF0ZWQgd2l0aAotICogdGhl
IFdlYkdMIGNvbnRleHQgcGFzc2VkIGluLgotICovCi12YXIgd2FpdEZvckNvbXBvc2l0ZSA9IGZ1
bmN0aW9uKGdsLCBjYWxsYmFjaykgewotICB2YXIgZnJhbWVzID0gNTsKLSAgdmFyIGNvdW50RG93
biA9IGZ1bmN0aW9uKCkgewotICAgIGlmIChmcmFtZXMgPT0gMCkgewotICAgICAgY2FsbGJhY2so
KTsKLSAgICB9IGVsc2UgewotICAgICAgLS1mcmFtZXM7Ci0gICAgICByZXF1ZXN0QW5pbUZyYW1l
KGNvdW50RG93bik7Ci0gICAgfQotICB9OwotICBjb3VudERvd24oKTsKLX07Ci0KLXJldHVybiB7
Ci0gIGFkZFNoYWRlclNvdXJjZTogYWRkU2hhZGVyU291cmNlLAotICBjYW5jZWxBbmltRnJhbWU6
IGNhbmNlbEFuaW1GcmFtZSwKLSAgY3JlYXRlM0RDb250ZXh0OiBjcmVhdGUzRENvbnRleHQsCi0g
IGNyZWF0ZTNEQ29udGV4dFdpdGhXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvcjoKLSAgICAgIGNy
ZWF0ZTNEQ29udGV4dFdpdGhXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvciwKLSAgY2hlY2tDYW52
YXM6IGNoZWNrQ2FudmFzLAotICBjaGVja0NhbnZhc1JlY3Q6IGNoZWNrQ2FudmFzUmVjdCwKLSAg
Y2hlY2tDYW52YXNSZWN0Q29sb3I6IGNoZWNrQ2FudmFzUmVjdENvbG9yLAotICBjcmVhdGVDb2xv
cmVkVGV4dHVyZTogY3JlYXRlQ29sb3JlZFRleHR1cmUsCi0gIGNyZWF0ZVByb2dyYW06IGNyZWF0
ZVByb2dyYW0sCi0gIGRyYXdRdWFkOiBkcmF3UXVhZCwKLSAgZHJhd0luZGV4ZWRRdWFkOiBkcmF3
SW5kZXhlZFF1YWQsCi0gIGRyYXdVQnl0ZUNvbG9yUXVhZDogZHJhd1VCeXRlQ29sb3JRdWFkLAot
ICBkcmF3RmxvYXRDb2xvclF1YWQ6IGRyYXdGbG9hdENvbG9yUXVhZCwKLSAgZW5kc1dpdGg6IGVu
ZHNXaXRoLAotICBmaWxsVGV4dHVyZTogZmlsbFRleHR1cmUsCi0gIGdldEV4dGVuc2lvbldpdGhL
bm93blByZWZpeGVzOiBnZXRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcywKLSAgZ2V0RmlsZUxp
c3RBc3luYzogZ2V0RmlsZUxpc3RBc3luYywKLSAgZ2V0TGFzdEVycm9yOiBnZXRMYXN0RXJyb3Is
Ci0gIGdldFNjcmlwdDogZ2V0U2NyaXB0LAotICBnZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25v
d25QcmVmaXhlczogZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMsCi0gIGdl
dFVybEFyZ3VtZW50czogZ2V0VXJsQXJndW1lbnRzLAotICBnZXRBdHRyaWJNYXA6IGdldEF0dHJp
Yk1hcCwKLSAgZ2V0VW5pZm9ybU1hcDogZ2V0VW5pZm9ybU1hcCwKLSAgZ2xFbnVtVG9TdHJpbmc6
IGdsRW51bVRvU3RyaW5nLAotICBnbEVycm9yU2hvdWxkQmU6IGdsRXJyb3JTaG91bGRCZSwKLSAg
aGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlOiBoYXNBdHRyaWJ1dGVDYXNlSW5zZW5zaXRpdmUs
Ci0gIGluc2VydEltYWdlOiBpbnNlcnRJbWFnZSwKLSAgbG9hZEltYWdlQXN5bmM6IGxvYWRJbWFn
ZUFzeW5jLAotICBsb2FkSW1hZ2VzQXN5bmM6IGxvYWRJbWFnZXNBc3luYywKLSAgbG9hZFByb2dy
YW06IGxvYWRQcm9ncmFtLAotICBsb2FkUHJvZ3JhbUZyb21GaWxlOiBsb2FkUHJvZ3JhbUZyb21G
aWxlLAotICBsb2FkUHJvZ3JhbUZyb21TY3JpcHQ6IGxvYWRQcm9ncmFtRnJvbVNjcmlwdCwKLSAg
bG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3I6IGxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4
cGVjdEVycm9yLAotICBsb2FkU2hhZGVyOiBsb2FkU2hhZGVyLAotICBsb2FkU2hhZGVyRnJvbUZp
bGU6IGxvYWRTaGFkZXJGcm9tRmlsZSwKLSAgbG9hZFNoYWRlckZyb21TY3JpcHQ6IGxvYWRTaGFk
ZXJGcm9tU2NyaXB0LAotICBsb2FkU3RhbmRhcmRQcm9ncmFtOiBsb2FkU3RhbmRhcmRQcm9ncmFt
LAotICBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXI6IGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlciwK
LSAgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXI6IGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVy
LAotICBsb2FkVGV4dEZpbGVBc3luYzogbG9hZFRleHRGaWxlQXN5bmMsCi0gIGxvYWRUZXh0dXJl
OiBsb2FkVGV4dHVyZSwKLSAgbG9nOiBsb2csCi0gIGxvZ2dpbmdPZmY6IGxvZ2dpbmdPZmYsCi0g
IG1ha2VJbWFnZTogbWFrZUltYWdlLAotICBlcnJvcjogZXJyb3IsCi0gIHNoYWxsb3dDb3B5T2Jq
ZWN0OiBzaGFsbG93Q29weU9iamVjdCwKLSAgc2V0dXBDb2xvclF1YWQ6IHNldHVwQ29sb3JRdWFk
LAotICBzZXR1cFByb2dyYW06IHNldHVwUHJvZ3JhbSwKLSAgc2V0dXBRdWFkOiBzZXR1cFF1YWQs
Ci0gIHNldHVwUXVhZFdpdGhPcHRpb25zOiBzZXR1cFF1YWRXaXRoT3B0aW9ucywKLSAgc2V0dXBT
aW1wbGVDb2xvckZyYWdtZW50U2hhZGVyOiBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIs
Ci0gIHNldHVwU2ltcGxlQ29sb3JWZXJ0ZXhTaGFkZXI6IHNldHVwU2ltcGxlQ29sb3JWZXJ0ZXhT
aGFkZXIsCi0gIHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtOiBzZXR1cFNpbXBsZUNvbG9yUHJvZ3Jh
bSwKLSAgc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXI6IHNldHVwU2ltcGxlVGV4dHVy
ZUZyYWdtZW50U2hhZGVyLAotICBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtOiBzZXR1cFNpbXBs
ZVRleHR1cmVQcm9ncmFtLAotICBzZXR1cFNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXI6IHNldHVw
U2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlciwKLSAgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvckZyYWdt
ZW50U2hhZGVyOiBzZXR1cFNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXIsCi0gIHNldHVw
U2ltcGxlVmVydGV4Q29sb3JQcm9ncmFtOiBzZXR1cFNpbXBsZVZlcnRleENvbG9yUHJvZ3JhbSwK
LSAgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlcjogc2V0dXBTaW1wbGVWZXJ0ZXhD
b2xvclZlcnRleFNoYWRlciwKLSAgc2V0dXBOb1RleENvb3JkVGV4dHVyZVByb2dyYW06IHNldHVw
Tm9UZXhDb29yZFRleHR1cmVQcm9ncmFtLAotICBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlVmVydGV4
U2hhZGVyOiBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVyLAotICBzZXR1cFRleHR1
cmVkUXVhZDogc2V0dXBUZXh0dXJlZFF1YWQsCi0gIHNldHVwVGV4dHVyZWRRdWFkV2l0aFRleENv
b3Jkczogc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzLAotICBzZXR1cFVuaXRRdWFkOiBz
ZXR1cFVuaXRRdWFkLAotICBzZXR1cFVuaXRRdWFkV2l0aFRleENvb3Jkczogc2V0dXBVbml0UXVh
ZFdpdGhUZXhDb29yZHMsCi0gIHNldEZsb2F0RHJhd0NvbG9yOiBzZXRGbG9hdERyYXdDb2xvciwK
LSAgc2V0VUJ5dGVEcmF3Q29sb3I6IHNldFVCeXRlRHJhd0NvbG9yLAotICBzdGFydHNXaXRoOiBz
dGFydHNXaXRoLAotICBzaG91bGRHZW5lcmF0ZUdMRXJyb3I6IHNob3VsZEdlbmVyYXRlR0xFcnJv
ciwKLSAgcmVhZEZpbGU6IHJlYWRGaWxlLAotICByZWFkRmlsZUxpc3Q6IHJlYWRGaWxlTGlzdCwK
LSAgcmVwbGFjZVBhcmFtczogcmVwbGFjZVBhcmFtcywKLSAgcmVxdWVzdEFuaW1GcmFtZTogcmVx
dWVzdEFuaW1GcmFtZSwKLSAgd2FpdEZvckNvbXBvc2l0ZTogd2FpdEZvckNvbXBvc2l0ZSwKLQot
ICBub25lOiBmYWxzZQotfTsKLQotfSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJn
bC10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTYyNDRlMzk1ZjI3N2Vj
YjBmNzUyNzU3YzM4MGMxMTI4MjYyOTVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwot
Ci1mdW5jdGlvbiB3ZWJnbFRlc3RMb2cobXNnKSB7Ci0gIGlmICh3aW5kb3cuY29uc29sZSAmJiB3
aW5kb3cuY29uc29sZS5sb2cpIHsKLSAgICB3aW5kb3cuY29uc29sZS5sb2cobXNnKTsKLSAgfQot
ICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKSkgewotICAgIHZhciBsb2cg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgIGxvZy5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGdldEdMRXJyb3JBc1N0cmluZyhj
dHgsIGVycikgewotICBpZiAoZXJyID09PSBjdHguTk9fRVJST1IpIHsKLSAgICByZXR1cm4gIk5P
X0VSUk9SIjsKLSAgfQotICBmb3IgKHZhciBuYW1lIGluIGN0eCkgewotICAgIGlmIChjdHhbbmFt
ZV0gPT09IGVycikgewotICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgfQotICB9Ci0gIHJldHVybiAi
MHgiICsgZXJyLnRvU3RyaW5nKDE2KTsKLX0KLQotLy8gUGFzcyB1bmRlZmluZWQgZm9yIGdsRXJy
b3IgdG8gdGVzdCB0aGF0IGl0IGF0IGxlYXN0IHRocm93cyBzb21lIGVycm9yCi1mdW5jdGlvbiBz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoY3R4LCBnbEVycm9ycywgZXZhbFN0cikgewotICBpZiAoIWds
RXJyb3JzLmxlbmd0aCkgewotICAgIGdsRXJyb3JzID0gW2dsRXJyb3JzXTsKLSAgfQotICB2YXIg
ZXhjZXB0aW9uOwotICB0cnkgewotICAgIGV2YWwoZXZhbFN0cik7Ci0gIH0gY2F0Y2ggKGUpIHsK
LSAgICBleGNlcHRpb24gPSBlOwotICB9Ci0gIGlmIChleGNlcHRpb24pIHsKLSAgICB0ZXN0RmFp
bGVkKGV2YWxTdHIgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgfSBlbHNl
IHsKLSAgICB2YXIgZXJyID0gY3R4LmdldEVycm9yKCk7Ci0gICAgdmFyIGVyclN0cnMgPSBbXTsK
LSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZ2xFcnJvcnMubGVuZ3RoOyArK2lpKSB7Ci0gICAg
ICBlcnJTdHJzLnB1c2goZ2V0R0xFcnJvckFzU3RyaW5nKGN0eCwgZ2xFcnJvcnNbaWldKSk7Ci0g
ICAgfQotICAgIHZhciBleHBlY3RlZCA9IGVyclN0cnMuam9pbigiIG9yICIpOwotICAgIGlmIChn
bEVycm9ycy5pbmRleE9mKGVycikgPCAwKSB7Ci0gICAgICB0ZXN0RmFpbGVkKGV2YWxTdHIgKyAi
IGV4cGVjdGVkOiAiICsgZXhwZWN0ZWQgKyAiLiBXYXMgIiArIGdldEdMRXJyb3JBc1N0cmluZyhj
dHgsIGVycikgKyAiLiIpOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgbXNnID0gKGdsRXJyb3Jz
Lmxlbmd0aCA9PSAxKSA/ICIgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiAiIDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBnZW5lcmF0ZWQgb25lIG9mIGV4
cGVjdGVkIEdMIGVycm9yczogIjsKLSAgICAgIHRlc3RQYXNzZWQoZXZhbFN0ciArIG1zZyArIGV4
cGVjdGVkICsgIi4iKTsKLSAgICB9Ci0gIH0KLX0KLQotLyoqCi0gKiBUZXN0cyB0aGF0IHRoZSBm
aXJzdCBlcnJvciBHTCByZXR1cm5zIGlzIHRoZSBzcGVjaWZpZWQgZXJyb3IuCi0gKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtu
dW1iZXJ8IUFycmF5LjxudW1iZXI+fSBnbEVycm9yIFRoZSBleHBlY3RlZCBnbAotICogICAgICAg
IGVycm9yLiBNdWx0aXBsZSBlcnJvcnMgY2FuIGJlIHBhc3NlZCBpbiB1c2luZyBhbgotICogICAg
ICAgIGFycmF5LgotICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgT3B0aW9uYWwgYWRkaXRpb25h
bCBtZXNzYWdlLgotICovCi1mdW5jdGlvbiBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsRXJyb3JzLCBv
cHRfbXNnKSB7Ci0gIGlmICghZ2xFcnJvcnMubGVuZ3RoKSB7Ci0gICAgZ2xFcnJvcnMgPSBbZ2xF
cnJvcnNdOwotICB9Ci0gIG9wdF9tc2cgPSBvcHRfbXNnIHx8ICIiOwotICB2YXIgZXJyID0gZ2wu
Z2V0RXJyb3IoKTsKLSAgdmFyIG5keCA9IGdsRXJyb3JzLmluZGV4T2YoZXJyKTsKLSAgdmFyIGVy
clN0cnMgPSBbXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGdsRXJyb3JzLmxlbmd0aDsgKytp
aSkgewotICAgIGVyclN0cnMucHVzaChnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3JzW2lp
XSkpOwotICB9Ci0gIHZhciBleHBlY3RlZCA9IGVyclN0cnMuam9pbigiIG9yICIpOwotICBpZiAo
bmR4IDwgMCkgewotICAgIHZhciBtc2cgPSAiZ2V0RXJyb3IgZXhwZWN0ZWQiICsgKChnbEVycm9y
cy5sZW5ndGggPiAxKSA/ICIgb25lIG9mOiAiIDogIjogIik7Ci0gICAgdGVzdEZhaWxlZChtc2cg
KyBleHBlY3RlZCArICAiLiBXYXMgIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArICIg
OiAiICsgb3B0X21zZyk7Ci0gIH0gZWxzZSB7Ci0gICAgdmFyIG1zZyA9ICJnZXRFcnJvciB3YXMg
IiArICgoZ2xFcnJvcnMubGVuZ3RoID4gMSkgPyAib25lIG9mOiAiIDogImV4cGVjdGVkIHZhbHVl
OiAiKTsKLSAgICB0ZXN0UGFzc2VkKG1zZyArIGV4cGVjdGVkICsgIiA6ICIgKyBvcHRfbXNnKTsK
LSAgfQotfTsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3pl
cm8tYWxwaGEucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NTYzMGMxMTYwMzhmOTBlZjcyY2RkMDJi
NjY0ZjhmMGRhYTA2ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODkKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB2cF4lcGxDYzF8LThZdyhiV34zWjU+R0FyKjV9UGoyTDhGeUxTfHhQ
MUVJCm1yOy15SGx9dzJyXjBvXn05Yzc+RXopPiQpYUIzRyZFclh9NHBVWE9AZ2VDeG0mbHN1egoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvMDBfdGVzdF9saXN0LnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvMDBfdGVzdF9saXN0LnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzY5YTI2ODA4ZmFmMWM0NjVlYjRiM2U0NTQyMzkyYzFiYmEzZjY5
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzLzAwX3Rlc3RfbGlzdC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
MCArMCwwIEBACi1jb21wcmVzc2VkLXRleC1pbWFnZS5odG1sCi1jb3B5LXRleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgY29weS10ZXgtaW1hZ2UtMmQt
Zm9ybWF0cy5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIGdsLWdldC10ZXgtcGFyYW1ldGVyLmh0
bWwKLWdsLXBpeGVsc3RvcmVpLmh0bWwKLWdsLXRleGltYWdlLmh0bWwKLW9yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1
ZmZlci12aWV3Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmh0
bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYjU2NS5odG1sCi10
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sCi10ZXgt
aW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNTU1MS5odG1sCi10ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbAotdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYjU2NS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRtbAotdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE1NTUxLmh0bWwKLXRleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1yZ2I1NjUuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1yZ2JhNDQ0NC5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LXJnYmE1NTUxLmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRt
bAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbAotdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNDQ0NC5odG1sCi10ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE1NTUxLmh0bWwKLXRleC1pbWFnZS1h
bmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXgtaW1h
Z2Utd2ViZ2wuaHRtbAotdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwKLXRleC1p
bWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sCi10ZXgtaW5wdXQtdmFsaWRhdGlvbi5odG1sCi10
ZXgtc3ViLWltYWdlLTJkLWJhZC1hcmdzLmh0bWwKLXRleC1zdWItaW1hZ2UtMmQuaHRtbAotdGV4
cGFyYW1ldGVyLXRlc3QuaHRtbAotdGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWwKLXRleHR1cmUt
YWN0aXZlLWJpbmQuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLWF0dGFjaG1lbnQt
Zm9ybWF0cy5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtY2xlYXIuaHRtbAotdGV4
dHVyZS1jb21wbGV0ZS5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtaGQtZHBpLmh0
bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgdGV4dHVyZS1mb3JtYXRzLXRlc3QuaHRtbAotdGV4dHVy
ZS1taXBzLmh0bWwKLXRleHR1cmUtbnBvdC12aWRlby5odG1sCi10ZXh0dXJlLW5wb3QuaHRtbAot
dGV4dHVyZS1zaXplLmh0bWwKLXRleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbAotLS1taW4tdmVy
c2lvbiAxLjAuMiB0ZXh0dXJlLXNpemUtbGltaXQuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0
ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1hcHMuaHRtbAotdGV4dHVyZS10cmFuc3BhcmVudC1waXhl
bHMtaW5pdGlhbGl6ZWQuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLXVwbG9hZC1j
dWJlLW1hcHMuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiBtaXBtYXAtZmJvLmh0bWwKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb21wcmVzc2VkLXRleC1pbWFnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb21wcmVzc2VkLXRleC1pbWFnZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTdiOTJjODQ1YjgyYzJmODQ4NTg5ZDFk
ZTExNTRhOTU1YzczZWQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
LSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0q
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
LSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbXByZXNzZWRUZXhJbWFnZSBhbmQgQ29t
cHJlc3NlZFRleFN1YkltYWdlIFRlc3RzPC90aXRsZT4KLTxMSU5LIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxz
Y3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2Vi
R0wgaW1wbGVtZW50YXRpb25zIGNvcnJlY3RseSBpbXBsZW1lbnQgY29tcHJlc3NlZFRleEltYWdl
MkQgYW5kIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJELiIpOwotCi1kZWJ1ZygiIik7Ci0KLXZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsKLQot
dmFyIENPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQgICAgICAgID0gMHg4M0YwOwotdmFyIENP
TVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUICAgICAgID0gMHg4M0YxOwotdmFyIENPTVBSRVNT
RURfUkdCQV9TM1RDX0RYVDVfRVhUICAgICAgID0gMHg4M0YzOwotdmFyIEVUQzFfUkdCOF9PRVMg
ICAgICAgICAgICAgICAgICAgICAgID0gMHg4RDY0OwotdmFyIENPTVBSRVNTRURfUkdCX1BWUlRD
XzRCUFBWMV9JTUcgICAgID0gMHg4QzAwOwotdmFyIENPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQ
VjFfSU1HICAgID0gMHg4QzAyOwotCi12YXIgZm9ybWF0cyA9IG51bGw7Ci0KLWlmICghZ2wpIHsK
LSAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwotfSBlbHNlIHsKLSAgdGVz
dFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKLQotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotCi0gIHNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCwgNCwgNCwg
MCwgbmV3IFVpbnQ4QXJyYXkoOCkpIik7Ci0gIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
SU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Q09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQsIDQsIDQsIDAsIG5ldyBVaW50OEFycmF5KDgp
KSIpOwotICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfRU5VTSwgImdsLmNv
bXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIENPTVBSRVNTRURfUkdCQV9TM1RD
X0RYVDVfRVhULCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSgxNikpIik7Ci0gIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgRVRDMV9SR0I4X09FUywgNCwgNCwgMCwgbmV3IFVpbnQ4QXJyYXko
OCkpIik7Ci0gIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiZ2wu
Y29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgQ09NUFJFU1NFRF9SR0JfUFZS
VENfNEJQUFYxX0lNRywgOCwgOCwgMCwgbmV3IFVpbnQ4QXJyYXkoOCkpIik7Ci0gIHNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiZ2wuY29tcHJlc3NlZFRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUcsIDgs
IDgsIDAsIG5ldyBVaW50OEFycmF5KDgpKSIpOwotCi0gIHNob3VsZEdlbmVyYXRlR0xFcnJvcihn
bCwgZ2wuTk9fRVJST1IsICJmb3JtYXRzID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLkNPTVBSRVNTRURf
VEVYVFVSRV9GT1JNQVRTKSIpOwotICBzaG91bGRCZU5vbk51bGwoImZvcm1hdHMiKTsKLSAgc2hv
dWxkQmUoImZvcm1hdHMubGVuZ3RoIiwgIjAiKTsKLX0KLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtMmQtZm9ybWF0cy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS0yZC1mb3JtYXRzLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxMmNkM2Y2YTMxMDI4YTk0ZDI3NzY5NDZiNjE1
YjdiMGIxOWVhZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS0yZC1mb3JtYXRzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODMgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJp
Z2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRp
b24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl
IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5k
IHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hl
ZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioK
LSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiog
TUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O
SU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJ
R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9S
IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI
RQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVS
SUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+VmVyaWZ5IGNvcHlUZXhJbWFnZTJEIGZvbGxvd3MgZm9ybWF0IHJlc3RpY3Rpb25zPC90aXRs
ZT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyIiBoZWln
aHQ9IjIiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iY2FudmFzTm9BbHBoYSIgd2lkdGg9IjIiIGhl
aWdodD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0i
dXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGdldENoYW5uZWxzRnJvbUZvcm1hdChmb3JtYXQpIHsK
LSAgc3dpdGNoIChnbFtmb3JtYXRdKSB7Ci0gIGNhc2UgZ2wuQUxQSEE6Ci0gICAgcmV0dXJuIDB4
MDAwMTsKLSAgY2FzZSBnbC5MVU1JTkFOQ0U6Ci0gIGNhc2UgZ2wuUkdCOgotICAgIHJldHVybiAw
eDExMTA7Ci0gIGNhc2UgZ2wuTFVNSU5BTkNFX0FMUEhBOgotICBjYXNlIGdsLlJHQkE6Ci0gICAg
cmV0dXJuIDB4MTExMTsKLSAgZGVmYXVsdDoKLSAgICByZXR1cm4gMDsKLSAgfQotfQotCi12YXIg
Zm9ybWF0cyA9IFsKLSAgJ0FMUEhBJywKLSAgJ0xVTUlOQU5DRScsCi0gICdMVU1JTkFOQ0VfQUxQ
SEEnLAotICAnUkdCJywKLSAgJ1JHQkEnCi1dOwotCi12YXIgZ2wgPSBudWxsOwotdmFyIHd0dSA9
IFdlYkdMVGVzdFV0aWxzOwotCi1kZXNjcmlwdGlvbigpOwotCi12YXIgY2FudmFzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFyIGNhbnZhc05vQWxwaGEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzTm9BbHBoYSIpOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChjYW52YXMsIHthbHBoYTp0cnVlfSk7Ci12YXIgZ2xOb0FscGhhID0gd3R1LmNyZWF0
ZTNEQ29udGV4dChjYW52YXNOb0FscGhhLCB7YWxwaGE6ZmFsc2V9KTsKLQotZGVidWcoInRlc3Qg
d2l0aCBhbiBSR0JBIGJhY2tidWZmZXIiKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVy
ZWRRdWFkKGdsKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJEdXJpbmcgSW5p
dGlhbGl6YXRpb24iKTsKLXRlc3RGb3JtYXRzKCdSR0JBJyk7Ci0KLXRlc3RCYWNrYnVmZmVyRm9y
bWF0cygpOwotCi1kZWJ1ZygidGVzdCB3aXRoIGFuIFJHQiBiYWNrYnVmZmVyIik7Ci12YXIgZ2wg
PSBnbE5vQWxwaGE7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci1n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiRHVyaW5nIEluaXRpYWxpemF0aW9uIik7
Ci10ZXN0Rm9ybWF0cygnUkdCJyk7Ci0KLWZ1bmN0aW9uIHRlc3RCYWNrYnVmZmVyRm9ybWF0cygp
IHsKLSAgdmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gIGdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZm9y
bWF0cy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgYmFja0Zvcm1hdCA9IGZvcm1hdHNbaWldOwot
Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2xbYmFja0Zvcm1hdF0sIDIsIDIsIDAsIGdsW2JhY2tGb3JtYXRdLCBnbC5VTlNJR05FRF9CWVRF
LCBudWxsKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotCi0gICAgZ2wuZnJhbWVi
dWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5U
RVhUVVJFXzJELCB0ZXgsIDApOwotICAgIHZhciBzdGF0dXMgPSBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKLQotICAgIGRlYnVnKCcnKTsKLSAgICBpZiAoc3RhdHVz
ID09IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAgICBkZWJ1ZygndGVzdCB3aXRoICcg
KyBiYWNrRm9ybWF0ICsgJyBmYm8nKTsKLSAgICAgIHRlc3RGb3JtYXRzKGJhY2tGb3JtYXQpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICBkZWJ1ZyhiYWNrRm9ybWF0ICsgJyBub3Qgc3VwcG9ydGVkIGFz
IGEgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQnKTsKLSAgICB9Ci0gIH0KLX0KLQotZnVuY3Rpb24g
dGVzdEZvcm1hdHMoYmFja0Zvcm1hdCkgewotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZm9ybWF0
cy5sZW5ndGg7ICsraWkpIHsKLSAgICB0ZXN0Q29weVRleEltYWdlMkQoYmFja0Zvcm1hdCwgZm9y
bWF0c1tpaV0pOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHRvQ2hhbm5lbHModmFsdWUpIHsKLSAgcmV0
dXJuICgodmFsdWUgJiAweDEwMDApID8gJ1InIDogJ18nKSArCi0gICAgICAgICAoKHZhbHVlICYg
MHgwMTAwKSA/ICdHJyA6ICdfJykgKwotICAgICAgICAgKCh2YWx1ZSAmIDB4MDAxMCkgPyAnQicg
OiAnXycpICsKLSAgICAgICAgICgodmFsdWUgJiAweDAwMDEpID8gJ0EnIDogJ18nKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdENvcHlUZXhJbWFnZTJEKGJhY2tGb3JtYXQsIHRleEZvcm1hdCkgewotICB2
YXIgbmVlZCA9IGdldENoYW5uZWxzRnJvbUZvcm1hdCh0ZXhGb3JtYXQpOwotICB2YXIgaGF2ZSA9
IGdldENoYW5uZWxzRnJvbUZvcm1hdChiYWNrRm9ybWF0KTsKLSAgdmFyIHNob3VsZFBhc3MgPSAo
bmVlZCAmIGhhdmUpID09IG5lZWQKLQotICAvL2RlYnVnKCJuZWVkOiAiICsgdG9DaGFubmVscyhu
ZWVkKSk7Ci0gIC8vZGVidWcoImhhdmU6ICIgKyB0b0NoYW5uZWxzKGhhdmUpKTsKLSAgLy9kZWJ1
ZygiYm90aDogIiArIHRvQ2hhbm5lbHMoaGF2ZSAmIG5lZWQpKTsKLQotICAvLyBjbGVhciBiYWNr
YnVmZmVyCi0gIGdsLmNsZWFyQ29sb3IoMC4yNSwgMSwgMC43NSwgMC41KTsKLSAgZ2wuY2xlYXIo
Z2wuQ09MT1JfQlVGRkVSX0JJVCk7Ci0KLSAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJl
KCk7Ci0gIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1Qp
OwotCi0gIGdsLmNvcHlUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3RleEZvcm1hdF0s
IDAsIDAsIDIsIDIsIDApOwotICBpZiAoIXNob3VsZFBhc3MpIHsKLSAgICBnbEVycm9yU2hvdWxk
QmUoCi0gICAgICAgIGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAgICAgInNob3VsZCBu
b3QgYmUgYWJsZSB0byBjb3B5VGV4SW1hZ2UyRCAiICsgdGV4Rm9ybWF0ICsgIiBmcm9tICIgKyBi
YWNrRm9ybWF0KTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBnbEVycm9yU2hvdWxkQmUoCi0gICAg
ICBnbCwgZ2wuTk9fRVJST1IsCi0gICAgICAic2hvdWxkIGJlIGFibGUgdG8gY29weVRleEltYWdl
MkQgIiArIHRleEZvcm1hdCArICIgZnJvbSAiICsgYmFja0Zvcm1hdCk7Ci0KLSAgLy8gRHJhdwot
ICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotCi0gIHZhciBleHBlY3RlZENvbG9ycyA9
IHsKLSAgICAnQUxQSEEnOiBbMCwgMCwgMCwgMTI3XSwKLSAgICAnTFVNSU5BTkNFJzogWzY0LCA2
NCwgNjQsIDI1NV0sCi0gICAgJ0xVTUlOQU5DRV9BTFBIQSc6IFs2NCwgNjQsIDY0LCAxMjddLAot
ICAgICdSR0InOiBbNjQsIDI1NSwgMTkxLCAyNTVdLAotICAgICdSR0JBJzogWzY0LCAyNTUsIDE5
MSwgMTI3XQotICB9OwotCi0gIHZhciBjb2xvciA9IGV4cGVjdGVkQ29sb3JzW3RleEZvcm1hdF07
Ci0KLSAgd3R1LmNoZWNrQ2FudmFzKGdsLCBjb2xvciwgInNob3VsZCBiZSAiICsgY29sb3IsIDE2
KTsKLQotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVy
cm9ycyIpOwotfQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29w
eS10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY1ZWI4ZjkzNGQyY2JkMTczMzQxOTdlZGU2NDkwZmIyN2RjOGY0ODAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9jb3B5LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSBmYWxzZTsKLQotZnVuY3Rpb24gaW5pdCgpCi17Ci0gICAgaW5pdFRlc3Rp
bmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwotCi0gICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSBjb3B5
VGV4SW1hZ2UyRCBhbmQgY29weVRleFN1YkltYWdlMkQnKTsKLQotICAgIHJ1blRlc3QoKTsKLX0K
LQotdmFyIGdsID0gbnVsbDsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLQotZnVuY3Rpb24g
cnVuVGVzdEl0ZXJhdGlvbihhbnRpYWxpYXMpCi17Ci0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKAotICAgICAgICBhbnRpYWxpYXMgPyAiYW50aWFsaWFzT24iIDogImFu
dGlhbGlhc09mZiIpOwotICAgIHZhciBhdHRyaWJzID0gYW50aWFsaWFzID8geyBhbnRpYWxpYXM6
IHRydWUgfSA6IHsgYW50aWFsaWFzOiBmYWxzZSB9OwotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dChjYW52YXMsIGF0dHJpYnMpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVy
ZWRRdWFkKGdsKTsKLSAgICB2YXIgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihw
cm9ncmFtLCAidGV4Iik7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIkR1
cmluZyBJbml0aWFsaXphdGlvbiIpOwotCi0gICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDEpOwot
ICAgIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwotICAgIGRlYnVnKCdUZXN0aW5nIGNvcHlUZXhJbWFn
ZTJEJyk7Ci0KLSAgICAvLyBSZWQgY2FudmFzCi0gICAgZ2wuY2xlYXJDb2xvcigxLCAwLCAwLCAx
KTsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJ
VCk7Ci0KLSAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAvLyBCaW5k
IHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgLy8gU2V0IHVwIHRleHR1cmUKLSAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDIsIDIsIDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIG51bGwpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wu
dW5pZm9ybTFpKHRleHR1cmVMb2MsIDApOwotCi0gICAgdmFyIGNvbG9ycyA9IFsKLSAgICAgIFsx
LCAwLCAwLCAxXSwKLSAgICAgIFswLCAxLCAwLCAxXSwKLSAgICAgIFswLCAwLCAxLCAxXSwKLSAg
ICAgIFswLjUsIDAuNSwgMC41LCAwLjVdLAotICAgIF07Ci0gICAgdmFyIGNvdW50ID0gMDsKLSAg
ICBmb3IgKHZhciB5eSA9IC0yOyB5eSA8PSAyOyArK3l5KSB7Ci0gICAgICBmb3IgKHZhciB4eCA9
IC0yOyB4eCA8PSAyOyArK3h4KSB7Ci0gICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjsg
KytpaSkgewotICAgICAgICAgIHZhciB0ZXhDb2xvciA9IGNvbG9yc1tjb3VudF07Ci0gICAgICAg
ICAgdmFyIGNsZWFyQ29sb3IgPSBjb2xvcnNbKGNvdW50ICsgMSkgJSBjb2xvcnMubGVuZ3RoXTsK
LSAgICAgICAgICAvLyBjbGVhciB0byBzb21lIGNvbG9yCi0gICAgICAgICAgZ2wuY2xlYXJDb2xv
cih0ZXhDb2xvclswXSwgdGV4Q29sb3JbMV0sIHRleENvbG9yWzJdLCB0ZXhDb2xvclszXSk7Ci0g
ICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOwotCi0gICAgICAgICAgLy8gY29weSB0aGF0IGNvbG9yIHRvIHRoZSB0ZXh0dXJlLgotICAg
ICAgICAgIHN3aXRjaCAoaWkpIHsKLSAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBnbC5j
b3B5VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB4eCwgeXksIDIsIDIsIDAp
OwotICAgICAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAgICAg
ICAgICAgICAidXNpbmcgY29weVRleEltYWdlMkQ6IHggPSIgKyB4eCArICIsIHkgPSAiICsgeXkp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgZ2wu
Y29weVRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgeHgsIHl5LCAyLCAyKTsK
LSAgICAgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgICAgICAg
ICAgICAgInVzaW5nIGNvcHlUZXhTdWJJbWFnZTJEOiB4ID0iICsgeHggKyAiLCB5ID0gIiArIHl5
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLQotICAgICAgICAgIC8vIGNsZWFy
IHRvIHNvbWUgb3RoZXIgY29sb3IuCi0gICAgICAgICAgZ2wuY2xlYXJDb2xvcihjbGVhckNvbG9y
WzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVhckNvbG9yWzNdKTsKLSAgICAg
ICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7
Ci0KLSAgICAgICAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKLSAgICAgICAgICB3dHUuY2xlYXJB
bmREcmF3VW5pdFF1YWQoZ2wpOwotCi0gICAgICAgICAgLy8gY2hlY2sgdGhlIHJlbmRlcmluZyBy
ZXN1bHRzCi0gICAgICAgICAgZm9yICh2YXIgaXkgPSAwOyBpeSA8IDI7ICsraXkpIHsKLSAgICAg
ICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCAyOyArK2l4KSB7Ci0gICAgICAgICAgICAgIHZh
ciB4ID0geHggKyBpeDsKLSAgICAgICAgICAgICAgdmFyIHkgPSB5eSArIGl5OwotICAgICAgICAg
ICAgICB2YXIgZXhwZWN0ZWRDb2xvciA9ICh4IDwgMCB8fCB5IDwgMCB8fCB4ID49IDIgfHwgeSA+
PSAyKSA/Ci0gICAgICAgICAgICAgICAgICBbMCwwLDAsMF0gOgotICAgICAgICAgICAgICAgICAg
W01hdGguZmxvb3IoMjU1ICogdGV4Q29sb3JbMF0pLAotICAgICAgICAgICAgICAgICAgIE1hdGgu
Zmxvb3IoMjU1ICogdGV4Q29sb3JbMV0pLAotICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3Io
MjU1ICogdGV4Q29sb3JbMl0pLAotICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoMjU1ICog
dGV4Q29sb3JbM10pXTsKLSAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaXgs
IGl5LCAxLCAxLCBleHBlY3RlZENvbG9yLAotICAgICAgICAgICAgICAgICAgIiIgKyBpeCArICIs
ICIgKyBpeSArICIgc2hvdWxkIHJlbmRlciAiICsgZXhwZWN0ZWRDb2xvciArICIgKCsvLTEpIiwg
MSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGNvdW50ID0gKGNvdW50
ICsgMSkgJSBjb2xvcnMubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotCi0gICAg
ZGVidWcoIiIpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KGFudGlhbGlhcykKLXsKLSAgICBkZWJ1
ZygiVGVzdGluZyB3aXRoIGFudGlhbGlhcyBvbiIpOwotICAgIHJ1blRlc3RJdGVyYXRpb24odHJ1
ZSk7Ci0gICAgZGVidWcoIlRlc3Rpbmcgd2l0aCBhbnRpYWxpYXMgb2ZmIik7Ci0gICAgcnVuVGVz
dEl0ZXJhdGlvbihmYWxzZSk7Ci0KLSAgICBmaW5pc2hUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTxjYW52YXMgaWQ9ImFudGlhbGlhc09uIiB3
aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImFudGlhbGlhc09mZiIg
d2lkdGg9IjIiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtZ2V0LXRleC1wYXJhbWV0ZXIuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtZ2V0LXRleC1wYXJhbWV0ZXIuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTljZGY1ZDU0ZmQ3NDI5YmY2ZGZiOTdmZGJhNDUx
ZTg3MjExYjJhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdldC10ZXgtcGFyYW1ldGVyLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgZ2V0VGV4UGFyYW1ldGVyIHRlc3Q8L3RpdGxlPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQiIGhl
aWdodD0iNCIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNj
cmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCk7Ci12YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0KLS8vIE5P
VEU6IFdlIGV4cGxpY2l0bHkgZG8gdGhpcyBpbiBhIGZ1bmt5IG9yZGVyCi0vLyB0byBob3BlZnVs
bHkgZmluZCBzdWJ0bGUgYnVncy4KLQotdmFyIHRhcmdldHMgPSBbCi0gICdURVhUVVJFXzJEJywK
LSAgJ1RFWFRVUkVfMkQnLAotICAnVEVYVFVSRV9DVUJFX01BUCcsCi0gICdURVhUVVJFX0NVQkVf
TUFQJwotXTsKLS8vIENyZWF0ZSB0ZXh0dXJlcyBvbiBkaWZmZXJlbnQgYWN0aXZlIHRleHR1cmVz
LgotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRhcmdldHMubGVuZ3RoOyArK2lpKSB7Ci0gIHZhciB0
YXJnZXQgPSB0YXJnZXRzW2lpXTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAg
Z2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCArIGlpKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2xb
dGFyZ2V0XSwgdGV4KTsKLX0KLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNo
b3VsZCBiZSBubyBlcnJvcnMiKTsKLQotdmFyIHN0YXRlcyA9IFsKLSAgeyBzdGF0ZTonVEVYVFVS
RV9XUkFQX1MnLCAgICAgZGVmYXVsdDogJ1JFUEVBVCcsICAgICAgICAgICAgICAgIHZhbHVlMTog
J0NMQU1QX1RPX0VER0UnLCAgICAgICAgdmFsdWUyOiAnUkVQRUFUJyAgICAgICAgfSwKLSAgeyBz
dGF0ZTonVEVYVFVSRV9XUkFQX1QnLCAgICAgZGVmYXVsdDogJ1JFUEVBVCcsICAgICAgICAgICAg
ICAgIHZhbHVlMTogJ0NMQU1QX1RPX0VER0UnLCAgICAgICAgdmFsdWUyOiAnUkVQRUFUJyAgICAg
ICAgfSwKLSAgeyBzdGF0ZTonVEVYVFVSRV9NQUdfRklMVEVSJywgZGVmYXVsdDogJ0xJTkVBUics
ICAgICAgICAgICAgICAgIHZhbHVlMTogJ05FQVJFU1QnLCAgICAgICAgICAgICAgdmFsdWUyOiAn
TElORUFSJyAgICAgICAgfSwKLSAgeyBzdGF0ZTonVEVYVFVSRV9NSU5fRklMVEVSJywgZGVmYXVs
dDogJ05FQVJFU1RfTUlQTUFQX0xJTkVBUicsIHZhbHVlMTogJ0xJTkVBUl9NSVBNQVBfTElORUFS
JywgdmFsdWUyOiAnTkVBUkVTVCcgICAgICAgfQotXTsKLQotZnVuY3Rpb24gYXBwbHlTdGF0ZXMo
Zm4pIHsKLSAgZm9yICh2YXIgc3MgPSAwOyBzcyA8IHN0YXRlcy5sZW5ndGg7ICsrc3MpIHsKLSAg
ICB2YXIgc3RhdGVJbmZvID0gc3RhdGVzW3NzXTsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwg
dGFyZ2V0cy5sZW5ndGg7ICsraWkpIHsKLQkgIHZhciB0YXJnZXQgPSB0YXJnZXRzW2lpXTsKLSAg
ICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAgKyBpaSk7Ci0gICAgICBmbih0YXJnZXQs
IHN0YXRlSW5mbyk7Ci0gICAgfQotICB9Ci19Ci0KLS8vIHRlc3QgdGhlIGRlZmF1bHQgc3RhdGUu
Ci1hcHBseVN0YXRlcyhmdW5jdGlvbih0YXJnZXQsIHN0YXRlSW5mbykgewotICB2YXIgYSA9ICdn
bC5nZXRUZXhQYXJhbWV0ZXIoZ2xbIicgKyB0YXJnZXQgKyAnIl0sIGdsWyInICsgc3RhdGVJbmZv
LnN0YXRlICsgJyJdKSc7Ci0gIHZhciBiID0gJ2dsWyInICsgc3RhdGVJbmZvLmRlZmF1bHQgKyAn
Il0nOwotICBzaG91bGRCZShhLCBiKTsKLX0pOwotCi0vLyB0ZXN0IG5ldyBzdGF0ZQotYXBwbHlT
dGF0ZXMoZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUluZm8pIHsKLSAgZ2wudGV4UGFyYW1ldGVyaShn
bFt0YXJnZXRdLCBnbFtzdGF0ZUluZm8uc3RhdGVdLCBnbFtzdGF0ZUluZm8udmFsdWUxXSk7Ci19
KTsKLQotYXBwbHlTdGF0ZXMoZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUluZm8pIHsKLSAgdmFyIGEg
PSAnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsWyInICsgdGFyZ2V0ICsgJyJdLCBnbFsiJyArIHN0YXRl
SW5mby5zdGF0ZSArICciXSknOwotICB2YXIgYiA9ICdnbFsiJyArIHN0YXRlSW5mby52YWx1ZTEg
KyAnIl0nOwotICBzaG91bGRCZShhLCBiKTsKLX0pOwotCi0vLyB0ZXN0IGRpZmZlcmVudCBzdGF0
ZXMgb24gZWFjaCB0YXJnZXQuCi1mdW5jdGlvbiBnZXRTdGF0ZVZhbHVlKGNvdW50LCBzdGF0ZUlu
Zm8pIHsKLSAgcmV0dXJuIChjb3VudCAlIDIpID8gc3RhdGVJbmZvLnZhbHVlMiA6IHN0YXRlSW5m
by52YWx1ZTE7Ci19Ci0KLWFwcGx5U3RhdGVzKGZ1bmN0aW9uKCkgewotICB2YXIgY291bnQgPSAw
OwotICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUluZm8pIHsKLSAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsW3RhcmdldF0sIGdsW3N0YXRlSW5mby5zdGF0ZV0sIGdsW2dldFN0YXRlVmFsdWUo
Y291bnQsIHN0YXRlSW5mbyldKTsKLSAgICArK2NvdW50OwotICB9Ci19KCkpOwotCi1hcHBseVN0
YXRlcyhmdW5jdGlvbigpIHsKLSAgdmFyIGNvdW50ID0gMDsKLSAgcmV0dXJuIGZ1bmN0aW9uKHRh
cmdldCwgc3RhdGVJbmZvKSB7Ci0gICAgdmFyIGEgPSAnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsWyIn
ICsgdGFyZ2V0ICsgJyJdLCBnbFsiJyArIHN0YXRlSW5mby5zdGF0ZSArICciXSknOwotICAgIHZh
ciBiID0gJ2dsWyInICsgZ2V0U3RhdGVWYWx1ZShjb3VudCwgc3RhdGVJbmZvKSArICciXSc7Ci0g
ICAgc2hvdWxkQmUoYSwgYik7Ci0gICAgKytjb3VudDsKLSAgfTsKLX0oKSk7Ci0KLWdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0KLXZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
LQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXBpeGVsc3RvcmVp
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXBpeGVsc3RvcmVpLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjMGM0NTE0ZjY5MWUwMjVjNTEyYWI1OGNlZmUw
OTdkYjQzNzE5MjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1waXhlbHN0b3JlaS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwot
Ci0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHRpdGxlPldlYkdMIHBpeGVsU3RvcmVpIFRlc3Q8L3RpdGxlPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSIy
ZDAwIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iMmQwMSIg
d2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9IjJkMDIiIHdpZHRo
PSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSIyZDAzIiB3aWR0aD0iNTAi
IGhlaWdodD0iNTAiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRl
ci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247Ci12b2lkIG1haW4oKSB7Ci0g
IGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9ImZz
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotdm9pZCBtYWluKCkgewotICBnbF9G
cmFnQ29sb3IgPSB2ZWM0KDEuMCwwLjAsMC4wLDEuMCk7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlw
dD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgY2hlY2tzIHRoYXQgZHJhd0ltYWdlIGFuZCByZWFkUGl4ZWxzIGFyZSBub3QgZWZmZWN0
ZWQgYnkgZ2wuUGl4ZWxzdG9yZWkoZ2wuUEFDS19BTElHTk1FTlQpIGFuZCB2aXNhIHZlcnNhIik7
Ci0KLSAgZGVidWcoIlRoZXJlIHNob3VsZCBiZSA1IHJlZCB0cmlhbmdsZXMgb24gNSBibGFjayBz
cXVhcmVzIGFib3ZlIik7Ci0gIGRlYnVnKCIiKTsKLQotICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci0gIHZhciBjYW52YXMzZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7
Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLSAgdmFyIHByb2dy
YW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAiZnNoYWRlciJdLCBbInZQb3Np
dGlvbiJdKTsKLQotICB2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOwotICBnbC5idWZmZXJE
YXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAsMC41LDAsIC0wLjUsLTAu
NSwwLCAwLjUsLTAuNSwwIF0pLCBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRleEF0
dHJpYkFycmF5KDApOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBm
YWxzZSwgMCwgMCk7Ci0KLSAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOwotICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMyk7Ci0KLSAg
ZnVuY3Rpb24gY2hlY2tEYXRhKGN0eCwgbmFtZSkgewotICAgIC8vIFRlc3Qgc2V2ZXJhbCBsb2Nh
dGlvbnMKLSAgICAvLyBGaXJzdCBsaW5lIHNob3VsZCBiZSBhbGwgYmxhY2sKLSAgICB3dHUuY2hl
Y2tDYW52YXNSZWN0KGN0eCwgMCwgMCwgNTAsIDEsIFswLCAwLCAwLCAwXSk7Ci0KLSAgICAvLyBM
aW5lIDI1IHNob3VsZCBiZSByZWQgZm9yIGF0IGxlYXN0IDYgcmVkIHBpeGVscyBzdGFydGluZyAy
MiBwaXhlbHMgaW4KLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGN0eCwgMjIsIDI1LCA2LCAxLCBb
MjU1LCAwLCAwLCAyNTVdKTsKLQotICAgIC8vIExhc3QgbGluZSBzaG91bGQgYmUgYWxsIGJsYWNr
Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChjdHgsIDAsIDQ5LCA1MCwgMSwgWzAsIDAsIDAsIDBd
KTsKLSAgfQotCi0gIHZhciBjdHgyZDsKLQotICBmdW5jdGlvbiBjaGVja0NvbG9ycygpIHsKLSAg
ICBjaGVja0RhdGEoZ2wsICIzZCBjb250ZXh0Iik7Ci0gICAgY2hlY2tEYXRhKGN0eDJkLCAiMmQg
Y29udGV4dCIpOwotICB9Ci0KLSAgdmFyIHRhYmxlID0gWzEsIDIsIDQsIDhdOwotICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgdGFibGUubGVuZ3RoOyArK2lpKSB7Ci0gICAgZ2wucGl4ZWxTdG9yZWko
Z2wuUEFDS19BTElHTk1FTlQsIHRhYmxlW2lpXSk7Ci0gICAgY3R4MmQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiMmQwIiArIGlpKS5nZXRDb250ZXh0KCIyZCIpOwotICAgIGN0eDJkLmdsb2Jh
bENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdjb3B5JzsKLSAgICBjdHgyZC5kcmF3SW1hZ2UoY2FudmFz
M2QsIDAsIDApOwotICAgIGNoZWNrQ29sb3JzKCk7Ci0gICAgYXNzZXJ0TXNnKGdsLmdldFBhcmFt
ZXRlcihnbC5QQUNLX0FMSUdOTUVOVCkgPT0gdGFibGVbaWldLAotICAgICAgICAiUEFDS19BTElH
Tk1FTlQgaXMgIiArIHRhYmxlW2lpXSk7Ci0gIH0KLX0KLQotaW5pdCgpOwotdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiMjk2MDMyNGY0MzM1OWUwNzg4NmFiOWUwZTkzOWM2MTE2MGVhNDE3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvZ2wtdGV4aW1hZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NiArMCww
IEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
LSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQot
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJH
TCB0ZXhJbWFnZTJEIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTYiIHN0eWxl
PSJ3aWR0aDogMjU2cHg7IGhlaWdodDogNDhweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBz
dHJpY3QiOwotZGVzY3JpcHRpb24oIlRlc3QgdGV4SW1hZ2UyRCBjb252ZXJzaW9ucy4iKTsKLXZh
ciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4
YW1wbGUiKTsKLWdsLmRpc2FibGUoZ2wuRElUSEVSKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVw
VGV4dHVyZWRRdWFkKGdsKTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQ7Ci0KLWdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7
Ci0KLXZhciBpbWdVUkxzID0gWwotICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0x
MjgtYWxwaGEucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LnBuZycsCi0gICcu
Li9yZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2FtbWEucG5nJywKLSAgJy4uL3Jlc291cmNl
cy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2Ft
bWExLjAucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEyLjAucG5nJywKLSAg
Jy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nJywKLSAgJy4uL3Jlc291cmNlcy9n
cmF5LXJhbXAtZ2FtbWE5LjAucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAucG5nJywK
LSAgJy4uL3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvM3gzLnBu
ZycsCi0gICcuLi9yZXNvdXJjZXMvYmx1ZS0xeDEuanBnJywKLSAgJy4uL3Jlc291cmNlcy9yZWQt
aW5kZXhlZC5wbmcnLAotICAnLi4vcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmcnLAotICAn
Li4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLmpwZycsCi0g
ICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUucG5nJywK
LSAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jaWUtcmdiLXByb2ZpbGUucG5nJywK
LSAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5n
JywKLSAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1lLXNyZ2ItcHJvZmlsZS5wbmcn
LAotICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMtcHJvZmlsZS5wbmcn
LAotICAnLi4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNyZ2ItaWVjNjE5NjYtMi4xLXBy
b2ZpbGUucG5nJ107Ci0KLQotd3R1LmxvYWRJbWFnZXNBc3luYyhpbWdVUkxzLCBydW5UZXN0cyk7
Ci0KLWZ1bmN0aW9uIHJ1blRlc3RzKGltZ3MpIHsKLSAgdmFyIGxvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0gIGdsLnVuaWZvcm0xaShsb2MsIDApOwotCi0gIGds
LmRpc2FibGUoZ2wuQkxFTkQpOwotICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotCi0gIHZh
ciB3aWR0aCA9IGdsLmNhbnZhcy53aWR0aDsKLSAgdmFyIGhlaWdodCA9IGdsLmNhbnZhcy5oZWln
aHQ7Ci0KLSAgZnVuY3Rpb24gY2hlY2tQaXhlbChidWYsIHgsIHksIGNvbG9yKSB7Ci0gICAgdmFy
IG9mZiA9ICh5ICogd2lkdGggKyB4KSAqIDQ7Ci0gICAgdmFyIG1zZyA9ICJwaXhlbCAiICsgeCAr
ICIsICIgKyB5ICsgIiBzaG91bGQgYmUgIiArCi0gICAgICAgICAgICAgIGNvbG9yWzBdICsgIiwg
IiArCi0gICAgICAgICAgICAgIGNvbG9yWzFdICsgIiwgIiArCi0gICAgICAgICAgICAgIGNvbG9y
WzJdICsgIiwgIiArCi0gICAgICAgICAgICAgIGNvbG9yWzNdICsgIiB3YXMgIiArCi0gICAgICAg
ICAgICAgIGJ1ZltvZmYgKyAwXSArICIsICIgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgMV0g
KyAiLCAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDJdICsgIiwgIiArCi0gICAgICAgICAg
ICAgIGJ1ZltvZmYgKyAzXTsKLQotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCA0OyArK2lpKSB7
Ci0gICAgICBpZiAoYnVmW29mZiArIGlpXSAhPSBjb2xvcltpaV0pIHsKLSAgICAgICAgdGVzdEZh
aWxlZChtc2cpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgfQotICAgIHRlc3RQYXNz
ZWQobXNnKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNoZWNrUGl4ZWxSYW5nZShidWYsIHgsIHksIGNv
bG9yLCBhbGxvd2VkUmFuZ2UpIHsKLSAgICB2YXIgb2ZmID0gKHkgKiB3aWR0aCArIHgpICogNDsK
LSAgICB2YXIgbXNnID0gInBpeGVsICIgKyB4ICsgIiwgIiArIHkgKyAiIHNob3VsZCBiZSB3aXRo
aW4gIiArCi0gICAgICAgICAgICAgIGFsbG93ZWRSYW5nZSArICIgdW5pdHMgb2YgIiArCi0gICAg
ICAgICAgICAgIGNvbG9yWzBdICsgIiwgIiArCi0gICAgICAgICAgICAgIGNvbG9yWzFdICsgIiwg
IiArCi0gICAgICAgICAgICAgIGNvbG9yWzJdICsgIiwgIiArCi0gICAgICAgICAgICAgIGNvbG9y
WzNdOwotICAgIHZhciBzdWJNc2cgPSAiIHdhcyAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiAr
IDBdICsgIiwgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAxXSArICIsICIgKwotICAgICAg
ICAgICAgICBidWZbb2ZmICsgMl0gKyAiLCAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDNd
OwotICAgIC8vIFdoZW4gcnVubmluZyBpbiBXZWJLaXQncyB0ZXN0IGhhcm5lc3MsIHdlIGRvbid0
IHdhbnQgdG8gcHJpbnQgdGhlCi0gICAgLy8gcGl4ZWwgdmFsdWUgd2hlbiB0aGUgdGVzdCBwYXNz
ZXMsIGJlY2F1c2UgZGlmZmVyZW50IG1hY2hpbmVzIG1pZ2h0Ci0gICAgLy8gaGF2ZSBkaWZmZXJl
bnQgcmVzdWx0cyBhbmQgd2UgcmVjb3JkIHRoZSB0ZXh0IG91dHB1dC4KLSAgICB2YXIgaW5EdW1w
UmVuZGVyVHJlZSA9IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcjsKLSAgICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgNDsgKytpaSkgewotICAgICAgaWYgKE1hdGguYWJzKGJ1ZltvZmYgKyBpaV0g
LSBjb2xvcltpaV0pID4gYWxsb3dlZFJhbmdlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQobXNnICsg
c3ViTXNnKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgIH0KLSAgICB0ZXN0UGFzc2Vk
KG1zZyArIChpbkR1bXBSZW5kZXJUcmVlID8gIiIgOiBzdWJNc2cpKTsKLSAgfQotCi0gIHZhciB0
ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7Ci0KLSAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICog
NCk7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcGl4ZWxzIGFyZSBOT1QgcHJlLW11
bHRpcGxpZWQiKTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGds
LlJHQiwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJj
ZXMvemVyby1hbHBoYS5wbmcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotCi0gIHZhciBsZWZ0ID0gMDsKLSAgdmFyIG1pZGRs
ZSA9IE1hdGguZmxvb3Iod2lkdGggLyAyKTsKLSAgdmFyIHJpZ2h0ID0gd2lkdGggLSAxOwotICB2
YXIgYm90dG9tID0gMDsKLSAgdmFyIGNlbnRlciA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0g
IHZhciB0b3AgPSBoZWlnaHQgLSAxOwotICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICB0b3AsICAg
IFsgIDAsICAgMCwgICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgdG9wLCAg
ICBbMjU1LCAgIDAsIDI1NSwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIHRvcCwg
ICAgWyAgMCwgICAwLCAyNTUsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICBjZW50
ZXIsIFsxMjgsIDEyOCwgMTI4LCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwgY2Vu
dGVyLCBbMjU1LCAyNTUsIDI1NSwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwgIGNl
bnRlciwgWyAgMCwgMjU1LCAyNTUsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgbGVmdCwgICBi
b3R0b20sIFsyNTUsICAgMCwgICAwLCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIG1pZGRsZSwg
Ym90dG9tLCBbMjU1LCAyNTUsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCByaWdodCwg
IGJvdHRvbSwgWyAgMCwgMjU1LCAgIDAsIDI1NV0pOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWco
ImNoZWNrIHF1YW50aXphdGlvbiIpOwotICB2YXIgcXVhbnRJbmZvID0gWwotICAgIHtmb3JtYXQ6
IGdsLlJHQkEsIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIGNvdW50czogWzI1Niwg
MjU2LCAyNTYsIDI1Nl19LAotICAgIHtmb3JtYXQ6IGdsLlJHQkEsIHR5cGU6IGdsLlVOU0lHTkVE
X1NIT1JUXzRfNF80XzQsIGNvdW50czogWyAxNiwgIDE2LCAgMTYsICAxNl19LAotICAgIHtmb3Jt
YXQ6IGdsLlJHQiwgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81LCAgIGNvdW50czogWyAz
MiwgIDY0LCAgMzIsICAgMV19LAotICAgIHtmb3JtYXQ6IGdsLlJHQkEsIHR5cGU6IGdsLlVOU0lH
TkVEX1NIT1JUXzVfNV81XzEsIGNvdW50czogWyAzMiwgIDMyLCAgMzIsICAgMl19XTsKLSAgZm9y
ICh2YXIgcXEgPSAwOyBxcSA8IHF1YW50SW5mby5sZW5ndGg7ICsrcXEpIHsKLSAgICB2YXIgaW5m
byA9IHF1YW50SW5mb1txcV07Ci0gICAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgICAgZ2wuVEVYVFVS
RV8yRCwgMCwgaW5mby5mb3JtYXQsIGluZm8uZm9ybWF0LCBpbmZvLnR5cGUsCi0gICAgICAgIGlt
Z3NbJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LnBuZyddKTsKLSAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwot
ICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gICAgZ2wucmVhZFBpeGVscygwLCAw
LCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIHZh
ciBjb3VudHMgPSBbeyB9LCB7IH0sIHsgfSwgeyB9XTsKLSAgICB2YXIgbnVtVW5pcXVlVmFsdWVz
ID0gWzAsIDAsIDAsIDBdOwotICAgIC8vIENvdW50IHRoZSBudW1iZXIgb2YgdW5pcXVlIHZhbHVl
cyBpbiBlYWNoIGNoYW5uZWwuCi0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHdpZHRoICogaGVp
Z2h0ICogNDsgaWkgKz0gNCkgewotICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDQ7ICsramop
IHsKLSAgICAgICAgdmFyIHYgPSBidWZbaWkgKyBqal07Ci0gICAgICAgIGlmICghY291bnRzW2pq
XVt2XSkgewotICAgICAgICAgIGNvdW50c1tqal1bdl0gPSAxOwotICAgICAgICAgICsrbnVtVW5p
cXVlVmFsdWVzW2pqXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICArK2NvdW50c1tqal1b
dl07Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8
IDQ7ICsraWkpIHsKLSAgICAgIGFzc2VydE1zZyhudW1VbmlxdWVWYWx1ZXNbaWldID09IGluZm8u
Y291bnRzW2lpXSwKLSAgICAgICAgICAgICAgICAiVGhlcmUgc2hvdWxkIGJlICIgKyBpbmZvLmNv
dW50c1tpaV0gKwotICAgICAgICAgICAgICAgICIgdW5pcXVlIHZhbHVlcyBpbiBjaGFubmVsICIg
KyBpaSArICIuIEZvdW5kICIgKwotICAgICAgICAgICAgICAgIG51bVVuaXF1ZVZhbHVlc1tpaV0p
OwotICAgIH0KLSAgfQotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoIkNoZWNrIHRoYXQgZ2FtbWEg
c2V0dGluZ3MgZG9uJ3QgZWZmZWN0IDhiaXQgcG5ncyIpOwotICBnbC5waXhlbFN0b3JlaShnbC5V
TlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMLCBnbC5OT05FKTsKLSAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwK
LSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2Ft
bWEucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJl
IG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wp
OwotICB2YXIgcmVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLSAgZ2wu
cmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCByZWYpOwotCi0gIHZhciBnYW1tYUltYWdlcyA9IFsKLSAgICAnLi4vcmVzb3VyY2VzL2dyYXkt
cmFtcC1nYW1tYTAuMS5wbmcnLAotICAgICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMS4w
LnBuZycsCi0gICAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEyLjAucG5nJywKLSAgICAn
Li4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTQuMC5wbmcnLAotICAgICcuLi9yZXNvdXJjZXMv
Z3JheS1yYW1wLWdhbW1hOS4wLnBuZyddOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZ2FtbWFJ
bWFnZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICAgIGlt
Z3NbZ2FtbWFJbWFnZXNbaWldXSk7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsK
LSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGJ1Zik7Ci0gICAgdmFyIHNhbWUgPSB0cnVlOwotICAgIGZvciAodmFyIGpqID0g
MDsgamogPCB3aWR0aCAqIGhlaWdodCAqIDQ7ICsramopIHsKLSAgICAgIGlmIChidWZbampdICE9
IHJlZltqal0pIHsKLSAgICAgICAgc2FtZSA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICAg
IH0KLSAgICB9Ci0gICAgYXNzZXJ0TXNnKHNhbWUsICJwaXhlbHMgc2hvdWxkIGJlIHNhbWUgcmVn
YXJkbGVzcyBvZiBnYW1tYSBzZXR0aW5ncy4iKTsKLSAgfQotCi0gIGRlYnVnKCIiKTsKLSAgZGVi
dWcoImNoZWNrIHBpeGVscyBhcmUgVU4gcHJlLW11bHRpcGxpZWQiKTsKLSAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IDI7ICsraWkpIHsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAg
IGlmIChpaSA9PSAwKSB7Ci0gICAgICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJjYW52YXMiKTsKLSAgICAgIGNhbnZhczJkLndpZHRoID0gMjU2OwotICAgICAgY2FudmFz
MmQuaGVpZ2h0ID0gMTsKLSAgICAgIHZhciBjdHggPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIp
OwotICAgICAgY3R4LmRyYXdJbWFnZShpbWdzWycuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13
aXRoLTEyOC1hbHBoYS5wbmcnXSwgMCwgMCk7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
LCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgICAgIGltZ3NbJy4u
L3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LXdpdGgtMTI4LWFscGhhLnBuZyddKTsKLSAgICB9Ci0g
ICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMg
ZnJvbSBzZXR1cC4iKTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgIHZh
ciBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwotICAgIGdsLnJlYWRQ
aXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVm
KTsKLSAgICB2YXIgbHQxMjhDb3VudCA9IFswLCAwLCAwXTsKLSAgICB2YXIgZ2UxMjhDb3VudCA9
IFswLCAwLCAwXTsKLSAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgd2lkdGg7ICsramopIHsKLSAg
ICAgIHZhciBvZmYgPSBqaiAqIDQ7Ci0gICAgICBmb3IgKHZhciBjYyA9IDA7IGNjIDwgMzsgKytj
YykgewotICAgICAgICBpZiAoYnVmW29mZiArIGNjXSA8IDEyOCkgewotICAgICAgICAgICsrbHQx
MjhDb3VudFtjY107Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgKytnZTEyOENvdW50W2Nj
XTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICAvLyBOb3Qgc3VyZSB0aGUgZXhhY3Qg
Y291bnQgaGVyZSBiZWNhdXNlIGdhbW1hIGRvZXMgZWZmZWN0IGRyYXdpbmcgaW50byB0aGUKLSAg
ICAvLyBjYW52YXMgYnV0IGl0IHNob3VsZCBiZSBjbG9zZSB0byA1MCUgc28gSSdsbCBwYXNzIDQ1
JQotICAgIGZvciAodmFyIGpqID0gMDsgamogPCAzOyArK2pqKSB7Ci0gICAgICBhc3NlcnRNc2co
Z2UxMjhDb3VudFtqal0gPiAyNTYgKiAwLjQ1LAotICAgICAgICAgICAgICAgICJIYWxmIHRoZSBw
aXhlbHMgaW4gY2hhbm5lbCAiICsgamogKwotICAgICAgICAgICAgICAgICIgc2hvdWxkIGJlID49
IDEyOCwxMjgsMTI4LiBmb3VuZCAiICsKLSAgICAgICAgICAgICAgICAoKGdlMTI4Q291bnRbampd
IC8gMjU2KSAqIDEwMCkudG9GaXhlZCgpICsgIiUiKTsKLSAgICAgIGFzc2VydE1zZyhsdDEyOENv
dW50W2pqXSA+IDI1NiAqIDAuNDUsCi0gICAgICAgICAgICAgICAgIkhhbGYgdGhlIHBpeGVscyBp
biBjaGFubmVsICIgKyBqaiArCi0gICAgICAgICAgICAgICAgIiBzaG91bGQgYmUgPCAxMjgsMTI4
LDEyOC4gZm91bmQgIiArCi0gICAgICAgICAgICAgICAgKChsdDEyOENvdW50W2pqXSAvIDI1Nikg
KiAxMDApLnRvRml4ZWQoKSArICIlIik7Ci0gICAgfQotICB9Ci0KLSAgZGVidWcoIiIpOwotICBk
ZWJ1ZygiY2hlY2sgY2FudmFzIHBpeGVscyBhcmUgVU4gcHJlLW11bHRpcGxpZWQiKTsKLSAgdmFy
IGNhbnZhczJkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGNhbnZhczJk
LndpZHRoID0gMTsKLSAgY2FudmFzMmQuaGVpZ2h0ID0gMTsKLSAgdmFyIGN0eCA9IGNhbnZhczJk
LmdldENvbnRleHQoIjJkIik7Ci0gIGN0eC5maWxsU3R5bGUgPSJyZ2JhKDI1NSwyNTUsMjU1LDAu
NSkiOwotICBjdHguZmlsbFJlY3QoMCwgMCwgMjU2LCAxKTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMy
ZCk7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwg
MCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBz
ZXR1cC4iKTsKLSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgMCwgMCwgWzI1NSwgMjU1LCAyNTUsIDEy
N10sIDQpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIGNhbnZhcyBwaXhlbHMgYXJl
IHByZS1tdWx0aXBsaWVkIik7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBM
WV9BTFBIQV9XRUJHTCwgdHJ1ZSk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOwotICB3dHUuY2xl
YXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWln
aHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0gIGNo
ZWNrUGl4ZWxSYW5nZShidWYsIDAsIDAsIFsxMjcsIDEyNywgMTI3LCAxMjddLCA0KTsKLQotCi0g
IGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHBpeGVscyBhcmUgcHJlLW11bHRpcGxpZWQiKTsK
LSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0cnVl
KTsKLSAgLy8gVE9ETyhnbWFuKTogdXNlIGRpZmZlcmVudCB0ZXh0dXJlIHRoYXQgd29uJ3QgcGFz
cyBvbiBmYWlsdXJlCi0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNv
dXJjZXMvemVyby1hbHBoYS5wbmcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotCi0gIHZhciBzYW1lID0gdHJ1ZTsKLSAgZm9y
ICh2YXIgamogPSAwOyBqaiA8IHdpZHRoICogaGVpZ2h0ICogNDsgKytqaikgewotICAgIGlmIChi
dWZbampdICE9IDApIHsKLSAgICAgIHNhbWUgPSBmYWxzZTsKLSAgICAgIGJyZWFrOwotICAgIH0K
LSAgfQotICBhc3NlcnRNc2coc2FtZSwgInBpeGVscyBzaG91bGQgYWxsIGJlIDAuIik7Ci0KLSAg
ZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgcGl4ZWxzIGFyZSBmbGlwcGVkIik7Ci0gIGdsLnBp
eGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFsc2UpOwotICBn
bC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKTsKLSAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwK
LSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvM3gzLnBuZyddKTsKLSAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1
cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAs
IDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0KLSAg
Y2hlY2tQaXhlbChidWYsIGxlZnQsICAgdG9wLCAgICBbMjU1LCAgIDAsICAgMCwgMjU1XSk7Ci0g
IGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIHRvcCwgICAgWzI1NSwgMjU1LCAgIDAsIDI1NV0pOwot
ICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICB0b3AsICAgIFsyNTUsICAgMCwgICAwLCAyNTVdKTsK
LSAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgY2VudGVyLCBbMjU1LCAgIDAsIDI1NSwgMjU1XSk7
Ci0gIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIGNlbnRlciwgWzI1NSwgICAwLCAgIDAsIDI1NV0p
OwotICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICBjZW50ZXIsIFsgIDAsIDI1NSwgICAwLCAyNTVd
KTsKLSAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgYm90dG9tLCBbICAwLCAgIDAsICAgMCwgMjU1
XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIGJvdHRvbSwgWyAgMCwgICAwLCAyNTUsIDI1
NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICBib3R0b20sIFsyNTUsICAgMCwgICAwLCAy
NTVdKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB1cGxvYWRpbmcgb2YgaW1hZ2Vz
IHdpdGggbm8gYWxwaGEgY2hhbm5lbCB3b3JrcyIpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wu
VU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmFsc2UpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAg
IGltZ3NbJy4uL3Jlc291cmNlcy9ibHVlLTF4MS5qcGcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICBjaGVja1BpeGVsUmFu
Z2UoYnVmLCBtaWRkbGUsIGNlbnRlciwgWyAgIDAsICAgMCwgMjU1LCAyNTVdLCAxMCk7Ci0gIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0K
LSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgdXBsb2FkaW5nIG9mIDE2LWJpdCBpbWFnZXMi
KTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBm
YWxzZSk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZhbHNlKTsK
LSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5T
SUdORURfQllURSwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvZ3JlZW4tMngy
LTE2Yml0LnBuZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3Vs
ZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQo
Z2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2VudGVy
LCBbICAgMTUsIDEyMSwgICAwLCAyNTVdLCAxMCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1
ZygiY2hlY2sgdXBsb2FkaW5nIG9mIGltYWdlcyB3aXRoIElDQyBwcm9maWxlcyIpOwotICBnbC5w
aXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAg
Z2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgZmFsc2UpOwotICBnbC5waXhl
bFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMLCBnbC5OT05FKTsK
LQotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5V
TlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9zbWFsbC1z
cXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5qcGcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAvLyBUaGUgaW1hZ2Ug
aXMgcmVkLiAgSG93ZXZlciwgaWYgd2UgaWdub3JlIHRoZSBjb2xvciBwcm9maWxlLCBpdCBpcyBi
bHVlLgotICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBtaWRkbGUsIGNlbnRlciwgWyAwLCAwLCAyNTUs
IDI1NV0sIDEwKTsKLQotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwg
Z2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291
cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmcnXSk7Ci0gIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0
dXAiKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygw
LCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAv
LyBUaGUgaW1hZ2UgaXMgcmVkLiAgSG93ZXZlciwgaWYgd2UgaWdub3JlIHRoZSBjb2xvciBwcm9m
aWxlLCBpdCBpcyBibHVlLgotICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBtaWRkbGUsIGNlbnRlciwg
WyAwLCAwLCAyNTUsIDI1NV0sIDEwKTsKLQotICB2YXIgaWNjUE5HcyA9IFsKLSAgICAnLi4vcmVz
b3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNpZS1yZ2ItcHJvZmlsZS5wbmcnLAotICAgICcuLi9y
ZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JtYXRjaC1wcm9maWxlLnBuZycsCi0gICAg
Jy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1lLXNyZ2ItcHJvZmlsZS5wbmcnLAotICAg
ICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc21wdGUtYy1wcm9maWxlLnBuZycsCi0g
ICAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdiLWllYzYxOTY2LTIuMS1wcm9m
aWxlLnBuZyddOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgaWNjUE5Hcy5sZW5ndGg7ICsraWkp
IHsKLSAgICB2YXIgYnVmMiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7Ci0g
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5T
SUdORURfQllURSwKLSAgICAgICAgICAgICAgICAgIGltZ3NbaWNjUE5Hc1tpaV1dKTsKLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9t
IHNldHVwIik7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgICBnbC5yZWFk
UGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1
ZjIpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8g
ZXJyb3JzIik7Ci0gICAgdmFyIHNhbWUgPSB0cnVlOwotICAgIGZvciAodmFyIGpqID0gMDsgamog
PCBidWYubGVuZ3RoOyArK2pqKSB7Ci0gICAgICBpZiAoYnVmW2pqXSAhPSBidWYyW2pqXSkgewot
ICAgICAgICBzYW1lID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0KLSAg
ICBhc3NlcnRNc2coc2FtZSwgInVwbG9hZGluZyBQTkdzIHdpdGggc2FtZSBkYXRhIGJ1dCB2YXJp
b3VzIElDQyBwcm9maWxlcyBzaG91bGQgZ2VuZXJhdGUgdGhlIHNhbWUgcmVzdWx0cyIpOwotICB9
Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgdXBsb2FkaW5nIG9mIGluZGV4ZWQgUE5H
IGltYWdlcyIpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwgZ2wu
UkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNl
cy9yZWQtaW5kZXhlZC5wbmcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAvLyBUaGUgaW1hZ2Ugc2hvdWxkIGJlIHJlZC4K
LSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgMjU1LCAwLCAwLCAyNTUg
XSwgMTApOwotCi0gIGRlYnVnKCIiKQotICBkZWJ1ZygiY2hlY2sgY2FsbGluZyB0ZXhJbWFnZTJE
IHdpdGggTlVMTCBjbGVhcnMgdGhlIHRleHR1cmUiKTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0IsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL3Jl
ZC1pbmRleGVkLnBuZyddLndpZHRoLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNl
cy9yZWQtaW5kZXhlZC5wbmcnXS5oZWlnaHQsCi0gICAgICAgICAgICAgICAgMCwgZ2wuUkdCLCBn
bC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cCIpOwotICB3dHUuY2xlYXJBbmREcmF3
VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIC8vIFRoZSBpbWFnZSBzaG91bGQgYmUgd2hp
dGUuCi0gIGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2VudGVyLCBbIDAsIDAsIDAsIDI1
NSBdLCAxMCk7Ci0KLSAgZGVidWcoIiIpOwotICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwot
ICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOwotICBkZWJ1ZygnPGJyIC8+PHNw
YW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Ci0gIG5vdGlmeUZpbmlzaGVk
VG9IYXJuZXNzKCk7Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pcG1hcC1mYm8uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzAyNWQwYjNlMWMzMmE4NDg1MjNkNzM3N2MzMjM5NzNhZTc2MjgyZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pcG1hcC1mYm8uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLSAgPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlRlc3Rz
IGlmIG1pcG1hcCBnZW5lcmF0aW9uIG9uIGEgdGV4dHVyZSBmaWxsZWQgYnkgYW4gRkJPIHdvcmtz
IGNvcnJlY3RseTwvdGl0bGU+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGluaXQoKXsKLSAgICB2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci0gICAgZGVzY3JpcHRpb24oKTsKLQotICAgIHZhciBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRl
eHR1cmVkUXVhZChnbCk7Ci0KLSAgICAvLyBzZXR1cCByZW5kZXIgdGFyZ2V0IHRleHR1cmUgLy8K
LSAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01J
UE1BUF9MSU5FQVIpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
LCAyLCAyLCAwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgICAgICAgICAgICAgIAotICAgIC8vIHNl
dHVwIGZyYW1lYnVmZmVyIC8vCi0gICAgdmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7
Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGdsLmZy
YW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwg
Z2wuVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBudWxsKTsKLSAgICAgICAgICAgICAgICAKLSAgICAvLyBmaWxsIHRoZSBmcmFt
ZWJ1ZmZlciAvLwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsK
LSAgICBnbC5jbGVhckNvbG9yKDEsIDAsIDEsIDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7
Ci0gICAgICAgICAgICAgICAgCi0gICAgLy8gZ2VuZXJhdGUgbWlwbWFwIC8vCi0gICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wuZ2VuZXJhdGVNaXBtYXAo
Z2wuVEVYVFVSRV8yRCk7Ci0KLSAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7
Ci0gICAgICAgICAgICAgICAgCi0gICAgLy8gcmVhZGJhY2sgLy8KLSAgICB3dHUuY2hlY2tDYW52
YXMoZ2wsIFsyNTUsIDAsIDI1NSwgMjU1XSk7Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0MTg1YjVkMmIxNTNmMWQ5NDlm
NWRmNDdjYTM2ZmRhZTU2MWU1ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi08IS0tCi0KLS8qCi0q
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBPcmlnaW4gUmVzdHJpY3Rp
b25zIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci0vLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxhc3QgMiB3b3JkcyBvZiB0aGUgZG9t
YWluIG9mIGEgVVJMCi0vLyBUaGlzIGlzIHByb2JhYmx5IG5vdCB0aGUgY29ycmVjdCBjaGVjayBi
dXQgaXQgd2lsbCBkbyBmb3Igbm93LgotZnVuY3Rpb24gZ2V0QmFzZURvbWFpbihzdHIpIHsKLSAg
c3RyID0gc3RyLnJlcGxhY2UoIlxcIiwgIi8iKTsKLSAgdmFyIHBvcyA9IHN0ci5pbmRleE9mKCI6
Ly8iKTsKLSAgaWYgKHBvcyA+PSAwKSB7Ci0gICAgc3RyID0gc3RyLnN1YnN0cihwb3MgKyAzKTsK
LSAgfQotICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoJy8nKTsKLSAgdmFyIGRvbWFpbiA9IHBhcnRz
WzBdLm1hdGNoKC9cdytcLlx3KyQvKTsKLSAgcmV0dXJuIGRvbWFpbiB8fCAnJzsKLX0KLQotLy8g
Q2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1mdW5jdGlvbiBjYXVzZWRF
eGNlcHRpb24oZnVuYykgewotICB2YXIgaGFkRXhjZXB0aW9uID0gZmFsc2U7Ci0gIHRyeSB7Ci0g
ICAgZnVuYygpOwotICB9IGNhdGNoKGUpIHsKLSAgICBoYWRFeGNlcHRpb24gPSB0cnVlOwotICB9
Ci0gIHJldHVybiBoYWRFeGNlcHRpb247Ci19Ci0KLXZhciBpbWdEb21haW47Ci12YXIgcGFnZURv
bWFpbjsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQ7Ci0KLXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKLSAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGltcGxlbWVudGF0
aW9ucyBmb2xsb3cgcHJvcGVyIHNhbWUtb3JpZ2luIHJlc3RyaWN0aW9ucy4iKTsKLSAgdmFyIGlt
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciKTsKLSAgYXNzZXJ0TXNnKGltZy53aWR0
aCA+IDAgJiYgaW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIpOwotICBpbWdEb21haW4g
PSBnZXRCYXNlRG9tYWluKGltZy5zcmMpOwotICBwYWdlRG9tYWluID0gZ2V0QmFzZURvbWFpbih3
aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKSk7Ci0gIGFzc2VydE1zZyhpbWdEb21haW4gIT0gcGFn
ZURvbWFpbiwKLSAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsgaW1nRG9tYWluICsgIikgYW5k
IHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBub3QgdGhlIHNhbWUuIik7Ci0K
LSAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlv
bigpIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24g
bWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAg
ICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVJlYWRQ
aXhlbHMoZ2wpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYnVmID0gbmV3
IFVpbnQ4QXJyYXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VU
b0RhdGFVUkwoY2FudmFzKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGRh
dGEgPSBjYW52YXMudG9EYXRhVVJMKCk7Ci0gICAgfQotICB9Ci0KLSAgdmFyIGNhbnZhczEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMSIpOwotICB2YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KGNhbnZhczEpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHRoYXQg
YW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9yaWdpbiB0aHJvd3Mg
YW4gZXhjZXB0aW9uLiIpOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBudWxsKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwg
aW1nKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBz
aG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1h
a2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdp
dGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0KLSAgZGVi
dWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRpbnVlIHRvIHdvcmsg
YWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFr
ZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0
aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBj
YW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2Fu
dmFzMSkpLAotICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uIGJ5IHRvRGF0
YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmlnaW4gY2xlYW4uIik7
Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVkIGNh
bnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgY2FudmFzMiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjYW52YXMyIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZhczIuZ2V0Q29udGV4
dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gIGFzc2VydE1zZyhjYXVz
ZWRFeGNlcHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMyKSksCi0gICAgICAgICAgICAic2hvdWxk
IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFz
LiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52
YXMyKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2Fu
dmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRp
b24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGNhbnZhczIpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJ
bWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGFuZCB0b0RhdGFVUkwgY29u
dGludWUgdG8gd29yayBhZ2FpbnN0IHRoaXMgY2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNl
ZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAgInJlYWRQaXhlbHMg
c2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3Jp
Z2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFr
ZVRvRGF0YVVSTChjYW52YXMxKSksCi0gICAgICAgICAgICAic2hvdWxkIG5vdCB0aHJvdyBleGNl
cHRpb24gYnkgdG9EYXRhVVJMIGZvciBXZWJHTCBjYW52YXMsIHdoaWNoIHNob3VsZCBzdGF5IG9y
aWdpbiBjbGVhbi4iKTsKLQotICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCi0gIC8vIFRP
RE86IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCi0KLSAgZGVidWcoIiIpOwotICBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIp
OwotICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+
Jyk7Ci0gIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMxIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZh
czIiPjwvY2FudmFzPgotPGltZyBpZD0iaW1nIiBzcmM9Imh0dHA6Ly93d3cub3BlbmdsLm9yZy9p
bWcvb3BlbmdsX2xvZ28uanBnIiBzdHlsZT0iZGlzcGxheTpub25lOyI+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQt
c3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXIt
dmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGY3NGRmNjRlYmJlOTE5
ODBjNDUxNTYxYTgwYTY2NzA0NmUxN2M4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjU5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAot
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxNiIgaGVp
Z2h0PSIxNiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbign
VmVyaWZpZXMgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBB
cnJheUJ1ZmZlclZpZXcnKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0g
bnVsbDsKLXZhciB0ZXh0dXJlTG9jID0gbnVsbDsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBm
YWxzZTsKLQotZnVuY3Rpb24gcm91bmRVcFRvQWxpZ25tZW50KHZhbHVlLCBhbGlnbm1lbnQpIHsK
LSAgcmV0dXJuIE1hdGguZmxvb3IoKHZhbHVlICsgYWxpZ25tZW50IC0gMSkgLyBhbGlnbm1lbnQp
ICogYWxpZ25tZW50OwotfQotCi1mdW5jdGlvbiBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFj
a0FsaWdubWVudCwgc291cmNlRGF0YSwgd2lkdGgsIGhlaWdodCkKLXsKLSAgICB2YXIgbnVtQ29s
b3JzID0gc291cmNlRGF0YS5sZW5ndGggLyA0OwotICAgIHZhciBjb2xvck9mZnNldCA9IGZ1bmN0
aW9uKHkpIHsKLSAgICAgIHJldHVybiA0ICogTWF0aC5mbG9vcih5ICogbnVtQ29sb3JzIC8gaGVp
Z2h0KTsKLSAgICB9OwotCi0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBnbC5VTlNJR05F
RF9CWVRFOiB7Ci0gICAgICAgIHZhciByb3dXaWR0aCA9IHJvdW5kVXBUb0FsaWdubWVudCh3aWR0
aCAqIDQsIHVucGFja0FsaWdubWVudCk7Ci0gICAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJy
YXkoaGVpZ2h0ICogcm93V2lkdGgpOwotICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdo
dDsgKyt5KSB7Ci0gICAgICAgICAgICB2YXIgaW5kZXggPSB5ICogcm93V2lkdGg7Ci0gICAgICAg
ICAgICB2YXIgb2Zmc2V0ID0gY29sb3JPZmZzZXQoeSk7Ci0gICAgICAgICAgICBmb3IgKHZhciBl
bGVtZW50ID0gMDsgZWxlbWVudCA8IHdpZHRoICogNDsgKytlbGVtZW50KSB7Ci0gICAgICAgICAg
ICAgICAgZGF0YVtpbmRleCArIGVsZW1lbnRdID0gc291cmNlRGF0YVtvZmZzZXQgKyBlbGVtZW50
ICUgNF07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0g
ICAgfQotICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNDogewotICAgICAgICB2YXIg
cm93V2lkdGggPSByb3VuZFVwVG9BbGlnbm1lbnQod2lkdGggKiAyLCB1bnBhY2tBbGlnbm1lbnQp
IC8gMjsKLSAgICAgICAgdmFyIGRhdGEgPSBuZXcgVWludDE2QXJyYXkoaGVpZ2h0ICogcm93V2lk
dGgpOwotICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7Ci0gICAgICAg
ICAgICB2YXIgb2Zmc2V0ID0gY29sb3JPZmZzZXQoeSk7Ci0gICAgICAgICAgICBmb3IgKHZhciB4
ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSB5ICog
cm93V2lkdGggKyB4OwotICAgICAgICAgICAgICAgIGRhdGFbaW5kZXhdID0gKCgoc291cmNlRGF0
YVtvZmZzZXQgKyAwXSAmIDB4RjApIDw8IDgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgKChzb3VyY2VEYXRhW29mZnNldCArIDFdICYgMHhGMCkgPDwgNCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMl0gJiAweEYwKSA+PiAwKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVtvZmZzZXQgKyAzXSAm
IDB4RjApID4+IDQpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
ZGF0YTsKLSAgICB9Ci0gICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xOiB7Ci0gICAg
ICAgIHZhciByb3dXaWR0aCA9IHJvdW5kVXBUb0FsaWdubWVudCh3aWR0aCAqIDIsIHVucGFja0Fs
aWdubWVudCkgLyAyOwotICAgICAgICB2YXIgZGF0YSA9IG5ldyBVaW50MTZBcnJheShoZWlnaHQg
KiByb3dXaWR0aCk7Ci0gICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsK
LSAgICAgICAgICAgIHZhciBvZmZzZXQgPSBjb2xvck9mZnNldCh5KTsKLSAgICAgICAgICAgIGZv
ciAodmFyIHggPSAwOyB4IDwgd2lkdGg7ICsreCkgewotICAgICAgICAgICAgICAgIHZhciBpbmRl
eCA9IHkgKiByb3dXaWR0aCArIHg7Ci0gICAgICAgICAgICAgICAgZGF0YVtpbmRleF0gPSAoKChz
b3VyY2VEYXRhW29mZnNldCArIDBdICYgMHhGOCkgPDwgOCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMV0gJiAweEY4KSA8PCAzKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVtvZmZzZXQgKyAyXSAmIDB4Rjgp
ID4+IDIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2VEYXRhW29mZnNl
dCArIDNdICYgMHg4MCkgPj4gNykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBkYXRhOwotICAgIH0KLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHR5cGVUb1N0cmluZyh0
eXBlKQotewotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgZ2wuVU5TSUdORURfQllURTog
ICAgICAgICAgIHJldHVybiAnVU5TSUdORURfQllURSc7Ci0gICAgY2FzZSBnbC5VTlNJR05FRF9T
SE9SVF81XzVfNV8xOiAgcmV0dXJuICdVTlNJR05FRF9TSE9SVF81XzVfNV8xJzsKLSAgICBjYXNl
IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6ICByZXR1cm4gJ1VOU0lHTkVEX1NIT1JUXzRfNF80
XzQnOwotICAgIH0KLSAgICByZXR1cm4gJ1Vua25vd24gdHlwZSAnICsgdHlwZTsKLX0KLQotZnVu
Y3Rpb24gcnVuT25lSXRlcmF0aW9uKHVzZVRleFN1YkltYWdlMkQsIHR5cGUsIHVucGFja0FsaWdu
bWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRvcENvbG9yLCBib3R0b21Db2xvciwgZXh0
cmFDb2xvcikKLXsKLSAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAn
dGV4U3ViSW1hZ2UyRCcgOiAndGV4SW1hZ2UyRCcpICsKLSAgICAgICAgICAnIHdpdGggdHlwZT0n
ICsgdHlwZVRvU3RyaW5nKHR5cGUpICsKLSAgICAgICAgICAnLCB1bnBhY2tBbGlnbm1lbnQ9JyAr
IHVucGFja0FsaWdubWVudCArCi0gICAgICAgICAgJywgZmxpcFk9JyArIGZsaXBZICsgJywgcHJl
bXVsdGlwbHlBbHBoYT0nICsgcHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgZ2wuY29sb3JNYXNrKHRy
dWUsIHRydWUsIHRydWUsIHRydWUpOwotICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMS4wKTsK
LSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7
Ci0gICAgLy8gRW5hYmxlIHdyaXRlcyB0byB0aGUgUkdCIGNoYW5uZWxzCi0gICAgZ2wuY29sb3JN
YXNrKHRydWUsIHRydWUsIHRydWUsIGZhbHNlKTsKLSAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLSAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0g
ICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgLy8gU2V0IHVw
IHRleHR1cmUgcGFyYW1ldGVycwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgLy8gU2V0IHVwIHBpeGVsIHN0b3Jl
IHBhcmFtZXRlcnMKLSAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCB1bnBh
Y2tBbGlnbm1lbnQpOwotICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0ws
IGZsaXBZKTsKLSAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFf
V0VCR0wsIHByZW11bHRpcGx5QWxwaGEpOwotICAgIC8vIEdlbmVyYXRlIHRoZSBkYXRhCi0gICAg
dmFyIHNvdXJjZURhdGEgPSBbIDI1NSwgICAwLCAgIDAsIDI1NSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgMCwgICAyNTUsICAgMCwgICAwIF07Ci0gICAgdmFyIHRleFdpZHRoID0gNTsgICAvLyB0
aGlzIG11c3QgYmUgbW9kIDQgKyAxIHRvIHRlc3QgdW5wYWNrQWxpZ25tZW50Ci0gICAgdmFyIHRl
eEhlaWdodCA9IDE2OwotICAgIHZhciBkYXRhID0gZ2VuZXJhdGVSR0JBRGF0YSh0eXBlLCB1bnBh
Y2tBbGlnbm1lbnQsIHNvdXJjZURhdGEsIHRleFdpZHRoLCB0ZXhIZWlnaHQpOwotICAgIGlmIChn
bC5nZXRFcnJvcigpICE9IGdsLk5PX0VSUk9SKQotICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJv
ciBiZWZvcmUgdGV4dHVyZSB1cGxvYWQiKTsKLSAgICAvLyBVcGxvYWQgdGhlIGltYWdlIGludG8g
dGhlIHRleHR1cmUKLSAgICBpZiAodXNlVGV4U3ViSW1hZ2UyRCkgewotICAgICAgICAvLyBJbml0
aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0Ci0gICAgICAgIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdGV4V2lkdGgsIHRleEhlaWdodCwgMCwKLSAgICAg
ICAgICAgICAgICAgICAgICBnbC5SR0JBLCB0eXBlLCBudWxsKTsKLSAgICAgICAgaWYgKGdsLmdl
dEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJv
ciBhZnRlciB0ZXhJbWFnZTJEKG51bGwpIik7Ci0gICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgMCwgMCwgdGV4V2lkdGgsIHRleEhlaWdodCwgZ2wuUkdCQSwgdHlwZSwg
ZGF0YSk7Ci0gICAgICAgIGlmIChnbC5nZXRFcnJvcigpICE9IGdsLk5PX0VSUk9SKQotICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiR0wgZXJyb3IgYWZ0ZXIgdGV4U3ViSW1hZ2UyRCIpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
dGV4V2lkdGgsIHRleEhlaWdodCwgMCwgZ2wuUkdCQSwgdHlwZSwgZGF0YSk7Ci0gICAgICAgIGlm
IChnbC5nZXRFcnJvcigpICE9IGdsLk5PX0VSUk9SKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
R0wgZXJyb3IgYWZ0ZXIgdGV4SW1hZ2UyRCIpOwotICAgIH0KLQotICAgIC8vIFBvaW50IHRoZSB1
bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBnbC51bmlmb3JtMWkodGV4dHVy
ZUxvYywgMCk7Ci0gICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAgd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0KLSAgICAvLyBDaGVjayB0aGUgdG9wIHBp
eGVsIGFuZCBib3R0b20gcGl4ZWwgYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKLSAgICAvLyB0aGUg
cmlnaHQgY29sb3IuCi0gICAgdmFyIHRlc3RXaWR0aCAgPSBnbC5kcmF3aW5nQnVmZmVyV2lkdGg7
Ci0gICAgdmFyIHRlc3RIZWlnaHQgPSBnbC5kcmF3aW5nQnVmZmVySGVpZ2h0IC8gMjsKLSAgICB3
dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCB0ZXN0V2lkdGgsIHRlc3RIZWlnaHQsIGJvdHRv
bUNvbG9yLCAiYm90dG9tIHBpeGVsIHNob3VsZCBiZSAiICsgYm90dG9tQ29sb3IpOwotICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIHRlc3RIZWlnaHQsIHRlc3RXaWR0aCwgdGVzdEhlaWdo
dCwgdG9wQ29sb3IsICJ0b3AgcGl4ZWwgc2hvdWxkIGJlICIgKyB0b3BDb2xvcik7Ci0KLSAgICAv
LyBDaGFuZ2UgcGFydCBvZiB0aGUgdGV4dHVyZS4KLSAgICB2YXIgcGFydFdpZHRoID0gODsKLSAg
ICB2YXIgcGFydEhlaWdodCA9IDE2OwotICAgIC8vIG1ha2UgdGV4dHVyZSBkb3VibGUgcmVzIG9m
IHBhcnQuCi0gICAgdmFyIGRhdGEgPSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdu
bWVudCwgc291cmNlRGF0YSwgcGFydFdpZHRoICogMiwgcGFydEhlaWdodCAqIDIpOwotICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgcGFydFdpZHRoICogMiwgcGFy
dEhlaWdodCAqIDIsIDAsIGdsLlJHQkEsIHR5cGUsIGRhdGEpOwotICAgIC8vIHNldCBwYXJ0Lgot
ICAgIHZhciBleHRyYURhdGEgPSBbCi0gICAgICAyNTUsICAgMCwgICAwLCAyNTUsCi0gICAgICAg
IDAsICAgMCwgMjU1LCAgIDAKLSAgICBdOwotICAgIHZhciBkYXRhID0gZ2VuZXJhdGVSR0JBRGF0
YSh0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGV4dHJhRGF0YSwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0
KTsKLSAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHBhcnRXaWR0
aCwgcGFydEhlaWdodCwgZ2wuUkdCQSwgdHlwZSwgZGF0YSk7Ci0gICAgd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgdmFyIGhhbGZXaWR0aCAgPSBnbC5k
cmF3aW5nQnVmZmVyV2lkdGggLyAyOwotICAgIHZhciBoYWxmSGVpZ2h0ID0gZ2wuZHJhd2luZ0J1
ZmZlckhlaWdodCAvIDI7Ci0gICAgdmFyIHF1YXJ0ZXJIZWlnaHQgPSBnbC5kcmF3aW5nQnVmZmVy
SGVpZ2h0IC8gNDsKLSAgICB2YXIgcmVkID0gWzI1NSwgMCwgMCwgMjU1XTsKLSAgICB2YXIgdGNv
bG9yMCA9IGZsaXBZID8gZXh0cmFDb2xvciA6IHJlZDsKLSAgICB2YXIgdGNvbG9yMSA9IGZsaXBZ
ID8gcmVkIDogZXh0cmFDb2xvcjsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBo
YWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRjb2xvcjAsICJib3R0b20gbGVmdCBib3R0b20gcGl4
ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMCk7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwg
MCwgcXVhcnRlckhlaWdodCwgaGFsZldpZHRoLCBxdWFydGVySGVpZ2h0LCB0Y29sb3IxLCAiYm90
dG9tIGxlZnQgdG9wIHBpeGVscyBzaG91bGQgYmUgIiArIHRjb2xvcjEpOwotICAgIHd0dS5jaGVj
a0NhbnZhc1JlY3QoZ2wsIGhhbGZXaWR0aCwgMCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0LCBib3R0
b21Db2xvciwgImJvdHRvbSByaWdodCBwaXhlbHMgc2hvdWxkIGJlICIgKyBib3R0b21Db2xvcik7
Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgaGFsZkhlaWdodCwgdGVzdFdpZHRoLCBo
YWxmSGVpZ2h0LCB0b3BDb2xvciwgInRvcCBwaXhlbHMgc2hvdWxkIGJlICIgKyB0b3BDb2xvcik7
Ci0gICAgLy8gc2V0IGZhciBjb3JuZXIuCi0gICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBwYXJ0V2lkdGgsIHBhcnRIZWlnaHQsIHBhcnRXaWR0aCwgcGFydEhlaWdodCwgZ2wu
UkdCQSwgdHlwZSwgZGF0YSk7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwg
MCwgMCwgMjU1XSk7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgaGFsZldpZHRo
LCBxdWFydGVySGVpZ2h0LCB0Y29sb3IwLCAiYm90dG9tIGxlZnQgYm90dG9tIHBpeGVscyBzaG91
bGQgYmUgIiArIHRjb2xvcjApOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIHF1YXJ0
ZXJIZWlnaHQsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwgdGNvbG9yMSwgImJvdHRvbSBsZWZ0
IHRvcCBwaXhlbHMgc2hvdWxkIGJlICIgKyB0Y29sb3IxKTsKLSAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCBoYWxmV2lkdGgsIDAsIGhhbGZXaWR0aCwgaGFsZkhlaWdodCwgYm90dG9tQ29sb3Is
ICJib3R0b20gbGVmdCBwaXhlbHMgc2hvdWxkIGJlICIgKyBib3R0b21Db2xvcik7Ci0gICAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgaGFsZkhlaWdodCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0
LCB0b3BDb2xvciwgInRvcCByaWdodCBwaXhlbHMgc2hvdWxkIGJlICIgKyB0b3BDb2xvcik7Ci0g
ICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgaGFsZldpZHRoLCBoYWxmSGVpZ2h0LCBoYWxmV2lk
dGgsIHF1YXJ0ZXJIZWlnaHQsIHRjb2xvcjAsICJ0b3AgcmlnaHQgYm90dG9tIHBpeGVscyBzaG91
bGQgYmUgIiArIHRjb2xvcjApOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGhhbGZXaWR0
aCwgaGFsZkhlaWdodCArIHF1YXJ0ZXJIZWlnaHQsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwg
dGNvbG9yMSwgInRvcCByaWdodCB0b3AgcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMSk7Ci19
Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIHZhciByZWQgPSBbMjU1LCAwLCAwLCAyNTVd
OwotICAgIHZhciBncmVlbiA9IFswLCAyNTUsIDAsIDI1NV07Ci0gICAgdmFyIGJsdWUgPSBbMCwg
MCwgMjU1LCAyNTVdOwotICAgIHZhciByZWRQcmVtdWx0aXBseUFscGhhID0gWzI1NSwgMCwgMCwg
MjU1XTsKLSAgICB2YXIgZ3JlZW5QcmVtdWx0aXBseUFscGhhID0gWzAsIDAsIDAsIDI1NV07Ci0g
ICAgdmFyIGJsdWVQcmVtdWx0aXBseUFscGhhID0gWzAsIDAsIDAsIDI1NV07Ci0KLSAgICB2YXIg
dHlwZXMgPSBbIGdsLlVOU0lHTkVEX0JZVEUsIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIGds
LlVOU0lHTkVEX1NIT1JUXzRfNF80XzQgXTsKLSAgICB2YXIgdW5wYWNrQWxpZ25tZW50cyA9IFsg
MSwgMiwgNCwgOCBdOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICB2YXIgdHlwZSA9IHR5cGVzW2ldOwotICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IHVucGFja0FsaWdubWVudHMubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgIHZhciB1
bnBhY2tBbGlnbm1lbnQgPSB1bnBhY2tBbGlnbm1lbnRzW2pdOwotICAgICAgICAgICAgcnVuT25l
SXRlcmF0aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIGZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4sIGJsdWUpOwotICAgICAgICAgICAg
cnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCBmYWxz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVlbiwgcmVkLCBibHVlKTsKLSAgICAg
ICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCB0cnVl
LCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5QWxwaGEs
IGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwgYmx1ZVByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICAg
ICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCB0
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwg
cmVkUHJlbXVsdGlwbHlBbHBoYSwgYmx1ZVByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICAgICAg
cnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgdHJ1ZSwgZmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkLCBncmVlbiwgYmx1ZSk7Ci0gICAgICAg
ICAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmYWxzZSwg
ZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCwgYmx1ZSk7Ci0g
ICAgICAgICAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCB0
cnVlLCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5QWxw
aGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwgYmx1ZVByZW11bHRpcGx5QWxwaGEpOwotICAgICAg
ICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2Us
IHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhh
LCByZWRQcmVtdWx0aXBseUFscGhhLCBibHVlUHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLX0KLQotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwot
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi10ZXh0dXJlTG9jID0g
Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLQotcnVuVGVzdCgpOwotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKLXZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYjU2NS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2I1NjUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg5MDhkOGQ3OWU5ZjNlMGE2ZjhhZWQ0MzM4
MGU5Yjk5MjVlZDNiNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtY2FudmFzLXJnYjU2NS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
PCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
LSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1
ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCIiwgIlVOU0lHTkVEX1NIT1JUXzVfNl81IiwgdGVzdFBy
b2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+
PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTQ0NDQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1jYW52YXMtcmdiYTQ0NDQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmZkMzhlZDM1MDVjNzI3MGYyMDhhNjVlNDM4OGZkODhmZTRhYTQyZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYmE0NDQ0Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JB
IiwgIlVOU0lHTkVEX1NIT1JUXzRfNF80XzQiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBp
ZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNTU1MS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNTU1
MS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTBhMzhhMDY2MDA0YTRhNGUz
MjAxNWE1MTllN2RkODcwYzY4YTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTU1NTEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5
ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioK
LSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
Y2FudmFzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0
ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNV81
XzVfMSIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIi
IGhlaWdodD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2Fu
dmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1
MjMyYjFmMzA3ZGU5YWQyNGU3MDNmMTM2NjcwOWUyMTI1NGY2MWEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
Ci0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgot
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1jYW52YXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1
bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9C
WVRFIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIg
aGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFn
ZS1kYXRhLXJnYjU2NS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiNTY1Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGIwOWYzOTBlMmFmOTA4NDQ0OWVkYjUyNjhlZjc1NjE1ODllZTJi
YTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LWRhdGEtcmdiNTY1Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi08IS0tCi0K
LS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShn
bCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9J2dlbmVyYXRlVGVzdCgiUkdCIiwgIlVOU0lHTkVEX1NIT1JUXzVfNl81IiwgdGVzdFByb2xv
Z3VlKSgpJz4KLTxjYW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9j
YW52YXM+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1kYXRhLXJnYmE0NDQ0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZhMWQyNDNmNWM2Y2ZjN2E2Yzg0ODJjZWJmYjJjNGI2OTYxNTAxYmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTQ0NDQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHly
aWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxz
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRo
ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJp
YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFu
ZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoq
Ci0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0
aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoq
IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRF
UklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVU
ZXN0KCJSR0JBIiwgIlVOU0lHTkVEX1NIT1JUXzRfNF80XzQiLCB0ZXN0UHJvbG9ndWUpKCknPgot
PGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxj
YW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LWRhdGEtcmdiYTU1NTEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJiZDAx
ZDZjMmNjNmVmYTY0MDdkNjZkZjFlZTYzZDBhOGIzMDI5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAy
MDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn
cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29w
eSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
IGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRB
QklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFU
RVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSov
Ci0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNl
IHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEi
LCAiVU5TSUdORURfU0hPUlRfNV81XzVfMSIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlk
PSJ0ZXhjYW52YXMiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWE0NjgwYjhhODZjNjcyODU4YWE5ZjdjNDNhNGEyZDg1
ZWE4YWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1kYXRhLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi08IS0tCi0KLS8q
Ci0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
LSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
LSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkg
ewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9CWVRFIiwgdGVzdFByb2xvZ3VlKSgpJz4K
LTxjYW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08
Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2NS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYjU2
NS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTAyNWIxODVkNGE0MDJkZTEz
ZDExMTc0YjI1NTZhNDZlNDNhMjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2I1NjUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICsw
LDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQ
cm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCIiwgIlVOU0lHTkVEX1NIT1JUXzVfNl81Iiwg
Ii4uIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIg
aGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFn
ZS1yZ2JhNDQ0NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0NDQ0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNjMzNiNDgyZDgzOTE0OGI4ZTNmMzM5NGU4ZjcyMmRhNTk4ZmNhNTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0
NDQ0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRl
c3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNF80XzRfNCIsICIuLiIsIHRlc3RQcm9sb2d1ZSko
KSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2FudmFz
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTU1NTEuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1yZ2JhNTU1MS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDQwNTU0
YzUxNTMwOGM2MWJmYzVkOGNmYmQ2ZDM1OTg5MjM3Mzg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNTU1MS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQot
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgot
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0t
PgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwot
ZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVE
X1NIT1JUXzVfNV81XzEiLCAiLi4iLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0iZXhh
bXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzRmMmQ1NWQzNDliMGIzMmU3Y2ViYjQzM2U5ZjZkZjNjNjVmODNkOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAo
YykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoq
IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwot
KiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoq
IE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMu
Ci0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIs
ICJVTlNJR05FRF9CWVRFIiwgIi4uIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2I1NjUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFjMTFlMjY5NmMyYjM0YTU5OWZjN2FkZWY2M2Zj
OWNmZjk0MmZjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtdmlkZW8tcmdiNTY1Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0t
Ci0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wp
IHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSdnZW5lcmF0ZVRlc3QoIlJHQiIsICJVTlNJR05FRF9TSE9SVF81XzZfNSIsIHRlc3RQcm9sb2d1
ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2Fu
dmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTQ0NDQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC12aWRlby1yZ2JhNDQ0NC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTkx
MWFhMDM3NmNlZmQ5NWJhN2U2MDY3YTE0OWQ0Y2JhNjc4NmRjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNDQ0NC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEy
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBv
ZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0
cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBN
YXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklM
SVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJ
QUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0K
LS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3Qi
OwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lH
TkVEX1NIT1JUXzRfNF80XzQiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLXZpZGVvLXJnYmE1NTUxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTU1NTEuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdlZjYyZmY3ZDhmYmMxZDZjN2Q5MmQ5MmYyNmQ1
NjkyNzdlYWU1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtdmlkZW8tcmdiYTU1NTEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShn
bCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF81XzVfNV8xIiwgdGVzdFBy
b2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+
PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZp
ZGVvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1YzRhN2Y1MzRiNjliZmI5
ZmQ4ZTI0YTczZDQwMzM1MDRmNjkwOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBA
Ci08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9n
dWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfQllURSIsIHRlc3RQcm9sb2d1
ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2Fu
dmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2Y3MGUxZDFkNWFiNjQ0YTZjM2M2YWJjZTAw
NDE0ZDYwYWZmZGYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRp
bmctYnVncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCEtLQotLyoKLSoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCi0qLwotLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0i
dXNlIHN0cmljdCI7Ci0KLWRlc2NyaXB0aW9uKCdUZXN0cyBwYXNzaW5nIGEgdmVjNCB0byBhIHVu
aWZvcm0gYW5kIGEgY2FudmFzIHRvIHRleEltYWdlMkQnKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVz
dFV0aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOwotdmFyIGZsb2F0UHJvZ3Jh
bSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vcmVzb3VyY2VzL2Zsb2F0VW5pZm9y
bVNoYWRlci52ZXJ0IiwgIi4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiZ2wudXNlUHJvZ3JhbShmbG9hdFByb2dyYW0pIik7Ci12YXIgZnZh
bDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbDQiKTsKLWds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotc2hvdWxkQmVVbmRlZmluZWQoImdsLnVu
aWZvcm00ZnYoZnZhbDRMb2MsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMSwgMC4yLCAwLjQsIDEuMF0p
KTsiKTsKLQotdmFyIHRtcGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIp
OwotdG1wY2FudmFzLndpZHRoID0gMjsKLXRtcGNhbnZhcy5oZWlnaHQgPSAyOwotdmFyIHRleHR1
cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSkiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIHRtcGNhbnZhcykiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2Utd2ViZ2wuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjI4
Yjc1MWQ3NWY3MTQ2ZDY3NjllZGJlYzg4YTMwYTAxODdiOGJlNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eC1pbWFnZS13ZWJnbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPCEtLQot
Ci0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0q
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGlu
IHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlh
bHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFM
UyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoq
IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4SW1hZ2Uy
RCBmcm9tIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTYiIHN0eWxl
PSJ3aWR0aDogMjU2cHg7IGhlaWdodDogNDhweDsiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0ic291
cmNlIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjE2IiBzdHlsZT0id2lkdGg6IDI1NnB4OyBoZWlnaHQ6
IDQ4cHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCJU
ZXN0IHRleEltYWdlMkQgZnJvbSBhIHdlYmdsIGNhbnZhcy4iKTsKLXZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLWdsLmRp
c2FibGUoZ2wuRElUSEVSKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGds
KTsKLXZhciBnbDEgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJzb3VyY2UiKTsKLWdsMS5kaXNhYmxl
KGdsLkRJVEhFUik7Ci0KLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQg
YmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wxLCBnbDEuTk9f
RVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWdsLmRpc2FibGUo
Z2wuQkxFTkQpOwotZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLQotZ2wxLmNsZWFyQ29sb3Io
MS4wLCAwLjAsIDAuMCwgMS4wKTsKLWdsMS5jbGVhcihnbDEuQ09MT1JfQlVGRkVSX0JJVCk7Ci0K
LXZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci1nbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXgpOwotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJH
QiwgZ2wuVU5TSUdORURfQllURSwgZ2wxLmNhbnZhcyk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VE
R0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxU
RVIsIGdsLkxJTkVBUik7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7
Ci0KLXd0dS5jaGVja0NhbnZhcyhnbCwgWzI1NSwgMCwgMCwgMjU1XSwgIkNhbnZhcyBzaG91bGQg
YmUgcmVkIik7Ci0KLWdsMS5jbGVhckNvbG9yKDAuMCwgMS4wLCAwLjAsIDEuMCk7Ci1nbDEuY2xl
YXIoZ2wxLkNPTE9SX0JVRkZFUl9CSVQpOwotCi1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQiwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBnbDEuY2FudmFzKTsKLXd0dS5j
bGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0KLXd0dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1NSwg
MCwgMjU1XSwgIkNhbnZhcyBzaG91bGQgYmUgZ3JlZW4iKTsKLQotZGVidWcoIiIpOwotdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3Jt
YXQtYW5kLXR5cGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdp
dGgtZm9ybWF0LWFuZC10eXBlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3
NzFlZjYwOWQzMjFjY2Q0MDA1ZWNjNjc4ZDA0NGFlZmI4MWU2ZWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0
NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0q
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoq
Ci0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ii8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcG5nbGliLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gbnVs
bDsKLXZhciB0ZXh0dXJlTG9jID0gbnVsbDsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxz
ZTsKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBIYXJuZXNzCi0KLXZhciB0ZXN0Q2FzZXMgPSBbXTsK
LQotdmFyIERhdGFNb2RlID0gewotICAgIElNQUdFOiAwLAotICAgIElNQUdFX0RBVEE6IDEsCi0K
LSAgICBOVU1fSFRNTF9NT0RFUzogMiwKLQotICAgIFJBV19EQVRBOiAyLAotCi0gICAgLy8gVGhp
cyBtdXN0IHJlbWFpbiB0aGUgbGFzdCBtb2RlLgotICAgIE5VTV9NT0RFUzogMwotfTsKLQotZnVu
Y3Rpb24gaW5pdCgpCi17Ci0gICAgaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwot
Ci0gICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNv
ZGUgcGF0aHMgdGFraW5nIGJvdGggSFRNTCBhbmQgdXNlci1zcGVjaWZpZWQgZGF0YSB3aXRoIGFs
bCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbnMnKTsKLQotICAgIHZhciBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4
dChjYW52YXMpOwotICAgIGdsLmRpc2FibGUoZ2wuRElUSEVSKTsKLSAgICB2YXIgcHJvZ3JhbSA9
IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLSAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEp
OwotICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0gICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0KLSAg
ICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLQot
ICAgIGluaXRpYWxpemVUZXN0cygpOwotfQotCi1mdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQot
ewotICAgIC8vIFZlcmlmeSB0aGF0IHVwbG9hZGluZyB0byBwYWNrZWQgcGl4ZWwgZm9ybWF0cyBw
ZXJmb3JtcyB0aGUKLSAgICAvLyByZXF1aXJlZCBjb252ZXJzaW9uIGFuZCBhc3NvY2lhdGVkIGxv
c3Mgb2YgcHJlY2lzaW9uLgotICAgIGZvciAodmFyIGRhdGFNb2RlID0gMDsgZGF0YU1vZGUgPCBE
YXRhTW9kZS5OVU1fSFRNTF9NT0RFUzsgKytkYXRhTW9kZSkgewotICAgICAgICBmb3IgKHZhciB1
c2VUZXhTdWJJbWFnZTJEID0gMDsgdXNlVGV4U3ViSW1hZ2UyRCA8IDI7ICsrdXNlVGV4U3ViSW1h
Z2UyRCkgewotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIGRh
dGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVz
ZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAg
ICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1
ZUdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogZmFsc2Us
Ci0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICAgICAgICAgICAgIHR5cGU6
IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxz
SW5jcmVhc2VCeU5vTW9yZVRoYW4sCi0gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxLAotICAg
ICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxLAotICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAiUkdCQS9VTlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBv
ZiBkYXRhIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0g
ICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRl
eFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDog
MjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0
b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0
aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAg
ICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwKLSAgICAgICAgICAg
ICAgICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5QXRMZWFzdCwKLSAgICAgICAgICAg
ICAgICB0aHJlc2hvbGQ6IDE1LAotICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxMCwK
LSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQkEvVU5TSUdORURfU0hPUlRfNF80XzRf
NCBtdXN0IGRyb3AgbG93IGZvdXIgYml0cyBvZiBwcmVjaXNpb24iCi0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTog
ZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJ
bWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVp
Z2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2Nh
bGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAg
ICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJ
R05FRF9TSE9SVF81XzVfNV8xLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVs
c0luY3JlYXNlQnlBdExlYXN0LAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogNywKLSAgICAg
ICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMjAsCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRp
b246ICJSR0JBL1VOU0lHTkVEX1NIT1JUXzVfNV81XzEgbXVzdCBkcm9wIGxvdyB0aHJlZSBiaXRz
IG9mIHByZWNpc2lvbiIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1
c2goewotICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAg
ICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAg
d2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAg
Z2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAg
cHJlbXVsdGlwbHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0Is
Ci0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAg
ICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9Nb3JlVGhhbiwKLSAgICAgICAgICAg
ICAgICB0aHJlc2hvbGQ6IDEsCi0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEsCi0g
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0IvVU5TSUdORURfQllURSBzaG91bGQgbWFp
bnRhaW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwK
LSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0g
ICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0g
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0g
ICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5SR0IsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRf
NV82XzUsCi0gICAgICAgICAgICAgICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeUF0
TGVhc3QsCi0gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAzLAotICAgICAgICAgICAgICAgIG51
bU9jY3VycmVuY2VzOiAyMCwKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQi9VTlNJ
R05FRF9TSE9SVF81XzZfNSBtdXN0IGRyb3AgbG93IHR3byBvciB0aHJlZSBiaXRzIG9mIHByZWNp
c2lvbiIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAg
ICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1
NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9y
OiBnZW5lcmF0ZVRyYW5zbHVjZW50R3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVt
dWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLkFMUEhBLAot
ICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAg
dmVyaWZpZXI6IGFscGhhQ2hhbm5lbEluY3JlYXNlc0J5Tm9Nb3JlVGhhbiwKLSAgICAgICAgICAg
ICAgICB0aHJlc2hvbGQ6IDEsCi0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEsCi0g
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJBTFBIQS9VTlNJR05FRF9CWVRFIHNob3VsZCBt
YWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgotICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2Rl
LAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwK
LSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwK
LSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwK
LSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAg
ICBmb3JtYXQ6IGdsLkxVTUlOQU5DRSwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05F
RF9CWVRFLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNlQnlO
b01vcmVUaGFuLAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwKLSAgICAgICAgICAgICAg
ICBudW1PY2N1cnJlbmNlczogMSwKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkxVTUlO
QU5DRS9VTlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRh
IgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAg
ICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1Yklt
YWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAot
ICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdl
bmVyYXRlT3BhcXVlR3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFs
cGhhOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLkxVTUlOQU5DRV9BTFBIQSwK
LSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAg
IHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNlQnlOb01vcmVUaGFuLAotICAgICAgICAgICAg
ICAgIHRocmVzaG9sZDogMSwKLSAgICAgICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMSwKLSAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkxVTUlOQU5DRV9BTFBIQS9VTlNJR05FRF9CWVRF
IHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBWZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBVTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgcGl4ZWwKLSAgICAvLyBzdG9yZSBwYXJhbWV0ZXIg
YW5kIHNlbmRpbmcgZG93biBhIHplcm8gYWxwaGEgY2F1c2VzIHRoZSBjb2xvcgotICAgIC8vIGNo
YW5uZWxzIHRvIGdvIHRvIHplcm8uCi0gICAgZm9yICh2YXIgZGF0YU1vZGUgPSAwOyBkYXRhTW9k
ZSA8IERhdGFNb2RlLk5VTV9NT0RFUzsgKytkYXRhTW9kZSkgewotICAgICAgICBmb3IgKHZhciB1
c2VUZXhTdWJJbWFnZTJEID0gMDsgdXNlVGV4U3ViSW1hZ2UyRCA8IDI7ICsrdXNlVGV4U3ViSW1h
Z2UyRCkgewotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIGRh
dGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVz
ZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAg
ICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5z
cGFyZW50R3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0
cnVlLAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgICAgICAgICAgICB0
eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNo
YW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVN
VUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfQllURSIKLSAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIGRhdGFN
b2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRl
eFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAg
ICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFy
ZW50R3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVl
LAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgICAgICAgICAgICB0eXBl
OiBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80LAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBj
b2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFD
S19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfU0hPUlRfNF80XzRf
NCIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAg
ICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJ
bWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwK
LSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBn
ZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0
aXBseUFscGhhOiB0cnVlLAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAg
ICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xLAotICAgICAgICAgICAg
ICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdO
RURfU0hPUlRfNV81XzVfMSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgLy8gVGhlIGZv
bGxvd2luZyBmZXcgdGVzdHMgYXJlIGludmFsaWQgZm9yIHRoZSByYXcgZGF0YQotICAgICAgICAg
ICAgLy8gbW9kZSBiZWNhdXNlIHRoZXJlIGlzIGVpdGhlciBubyBhbHBoYSBjaGFubmVsIG9yIG5v
Ci0gICAgICAgICAgICAvLyBzZXBhcmF0ZSBhbHBoYSBjaGFubmVsLgotICAgICAgICAgICAgaWYg
KGRhdGFNb2RlICE9IERhdGFNb2RlLlJBV19EQVRBKSB7Ci0gICAgICAgICAgICAgICAgdGVzdENh
c2VzLnB1c2goewotICAgICAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAg
ICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAg
ICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
OiAxLAotICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRH
cmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVl
LAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgICAgICAgICAgICAg
ICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6
IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAotICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjog
IlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQi9VTlNJR05FRF9CWVRFIgot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAg
ICAgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgICAg
ICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAg
ICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAg
ICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwK
LSAgICAgICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgZm9ybWF0OiBnbC5SR0IsCi0gICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVO
U0lHTkVEX1NIT1JUXzVfNl81LAotICAgICAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JD
aGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNL
X1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdCL1VOU0lHTkVEX1NIT1JUXzVfNl81Igot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAg
ICAgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgICAg
ICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAg
ICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAg
ICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwK
LSAgICAgICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgZm9ybWF0OiBnbC5BTFBIQSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5l
bHNBcmVaZXJvLAotICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVN
VUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIEFMUEhBL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAg
ICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgICAgIHVzZVRleFN1
YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICAgICAgd2lkdGg6
IDI1NiwKLSAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgICAg
ICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAg
ICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBm
b3JtYXQ6IGdsLkxVTUlOQU5DRSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdO
RURfQllURSwKLSAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVa
ZXJvLAotICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBM
WV9BTFBIQV9XRUJHTCB3aXRoIExVTUlOQU5DRS9VTlNJR05FRF9CWVRFIgotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAg
ICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1
NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9y
OiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICBwcmVt
dWx0aXBseUFscGhhOiB0cnVlLAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNF
X0FMUEhBLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAg
ICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAotICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggTFVNSU5B
TkNFX0FMUEhBL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIC8vIFByb2R1Y2UgZGF0YSBmb3IgYWxsIHRlc3RjYXNlcy4gQmVjYXVzZSB3ZSBs
b2FkIGltYWdlcywgc29tZSBvZgotICAgIC8vIHRoZXNlIG1heSBnZW5lcmF0ZSB0aGVpciBkYXRh
IGFzeW5jaHJvbm91c2x5LgotICAgIGdlbmVyYXRlVGVzdERhdGEoKTsKLX0KLQotZnVuY3Rpb24g
Z2VuZXJhdGVUZXN0RGF0YSgpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMu
bGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHRlc3RDYXNlID0gdGVzdENhc2VzW2ldOwotICAg
ICAgICB2YXIgd3JhcHBlciA9IG51bGw7Ci0gICAgICAgIHN3aXRjaCAodGVzdENhc2UuZGF0YU1v
ZGUpIHsKLSAgICAgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKLSAgICAgICAgICAgIHdyYXBwZXIg
PSBuZXcgSW1hZ2VXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKLSAgICAg
ICAgICAgIHdyYXBwZXIgPSBuZXcgSW1hZ2VEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVz
dENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERhdGFNb2Rl
LlJBV19EQVRBOgotICAgICAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS50eXBlKSB7Ci0gICAgICAg
ICAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6Ci0gICAgICAgICAgICAgICAgc3dpdGNoICh0ZXN0
Q2FzZS5mb3JtYXQpIHsKLSAgICAgICAgICAgICAgICBjYXNlIGdsLlJHQkE6Ci0gICAgICAgICAg
ICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCQThEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwg
dGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBnbC5SR0I6Ci0gICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdC
OERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGdsLkFMUEhBOgotICAgICAg
ICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IEE4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgs
IHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgIGNhc2UgZ2wuTFVNSU5BTkNFOgotICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0g
bmV3IEw4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgZ2wuTFVNSU5BTkNF
X0FMUEhBOgotICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IExBOERhdGFXcmFwcGVy
KHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6Ci0gICAgICAgICAgICAgICAgd3Jh
cHBlciA9IG5ldyBSR0JBNDQ0NERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5o
ZWlnaHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBnbC5VTlNJ
R05FRF9TSE9SVF81XzVfNV8xOgotICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCQTU1
NTFEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV82XzU6
Ci0gICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0I1NjVEYXRhV3JhcHBlcih0ZXN0Q2Fz
ZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB0ZXN0Q2FzZS53cmFwcGVyID0gd3JhcHBlcjsK
LSAgICAgICAgdGVzdENhc2UuZ2VuZXJhdG9yKHdyYXBwZXIpOwotICAgICAgICB0ZXN0Q2FzZS53
cmFwcGVyLmdlbmVyYXRlRGF0YSgpOwotICAgIH0KLQotICAgIC8vIFNlZSB3aGV0aGVyIHdlIG5l
ZWQgdG8gcnVuIHRoZSB0ZXN0cywgaW4gY2FzZSBhbGwgb2YgdGhlbQotICAgIC8vIGdlbmVyYXRl
ZCB0aGVpciByZXN1bHRzIHN5bmNocm9ub3VzbHkuCi0gICAgbWF5YmVSdW5UZXN0cygpOwotfQot
Ci12YXIgcmFuVGVzdHMgPSBmYWxzZTsKLQotZnVuY3Rpb24gbWF5YmVSdW5UZXN0cygpCi17Ci0g
ICAgaWYgKCFyYW5UZXN0cykKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMu
bGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBpZiAoIXRlc3RDYXNlc1tpXS53cmFwcGVyIHx8ICF0
ZXN0Q2FzZXNbaV0ud3JhcHBlci5kYXRhKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAg
IHJhblRlc3RzID0gdHJ1ZTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxl
bmd0aDsgKytpKQotICAgICAgICBydW5PbmVUZXN0KHRlc3RDYXNlc1tpXSk7Ci0KLSAgICBmaW5p
c2hUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDYXNlVG9TdHJpbmcodGVzdENhc2UpCi17Ci0g
ICAgdmFyIG1vZGU7Ci0gICAgc3dpdGNoICh0ZXN0Q2FzZS5kYXRhTW9kZSkgewotICAgIGNhc2Ug
RGF0YU1vZGUuSU1BR0U6Ci0gICAgICAgIG1vZGUgPSAiSW1hZ2UiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIERhdGFNb2RlLklNQUdFX0RBVEE6Ci0gICAgICAgIG1vZGUgPSAiSW1hZ2VEYXRh
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBEYXRhTW9kZS5SQVdfREFUQToKLSAgICAgICAg
bW9kZSA9ICJyYXcgZGF0YSI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gKHRl
c3RDYXNlLnVzZVRleFN1YkltYWdlMkQgPyAidGV4U3ViSW1hZ2UyRCIgOiAidGV4SW1hZ2UyRCIp
ICsKLSAgICAgICAgICAgICIgd2l0aCAiICsgbW9kZSArICAiIGF0ICIgKyB0ZXN0Q2FzZS53aWR0
aCArICJ4IiArIHRlc3RDYXNlLmhlaWdodDsKLX0KLQotZnVuY3Rpb24gcnVuT25lVGVzdCh0ZXN0
Q2FzZSkKLXsKLSAgICBkZWJ1ZygiVGVzdGluZyAiICsgdGVzdENhc2VUb1N0cmluZyh0ZXN0Q2Fz
ZSkpOwotICAgIHZhciBkYXRhID0gdGVzdENhc2Uud3JhcHBlci5kYXRhOwotICAgIGdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICB2YXIgdGV4
dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRl
eHR1cmUgdW5pdCAwLgotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OwotICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMuCi0gICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBn
bC5ORUFSRVNUKTsKLSAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycy4KLSAgICBn
bC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRlc3RDYXNl
LnByZW11bHRpcGx5QWxwaGEpOwotICAgIC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4
dHVyZS4KLSAgICBpZiAodGVzdENhc2UudXNlVGV4U3ViSW1hZ2UyRCkgewotICAgICAgICAvLyBJ
bml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0LgotICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2Uud2lkdGgsIHRl
c3RDYXNlLmhlaWdodCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZS5mb3JtYXQs
IHRlc3RDYXNlLnR5cGUsIG51bGwpOwotICAgIH0KLSAgICBzd2l0Y2ggKHRlc3RDYXNlLmRhdGFN
b2RlKSB7Ci0gICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKLSAgICBjYXNlIERhdGFNb2RlLklNQUdF
X0RBVEE6Ci0gICAgICAgIGlmICh0ZXN0Q2FzZS51c2VUZXhTdWJJbWFnZTJEKQotICAgICAgICAg
ICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXN0Q2FzZS5mb3Jt
YXQsIHRlc3RDYXNlLnR5cGUsIGRhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UuZm9y
bWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBEYXRh
TW9kZS5SQVdfREFUQToKLSAgICAgICAgaWYgKHRlc3RDYXNlLnVzZVRleFN1YkltYWdlMkQpCi0g
ICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRlc3RD
YXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlw
ZSwgZGF0YSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVp
Z2h0LCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGRhdGEpOwotICAgICAgICBi
cmVhazsKLSAgICB9Ci0gICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJl
IHVuaXQgMC4KLSAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0gICAgLy8gRHJhdyB0
aGUgdHJpYW5nbGVzLgotICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLSAg
ICAvLyBDbGVhbiB1cCB0aGUgdGV4dHVyZS4KLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleHR1cmUp
OwotCi0gICAgLy8gUmVhZCBiYWNrIHRoZSByZW5kZXJpbmcgcmVzdWx0cy4KLSAgICB2YXIgYnVm
ID0gbmV3IFVpbnQ4QXJyYXkodGVzdENhc2Uud2lkdGggKiB0ZXN0Q2FzZS5oZWlnaHQgKiA0KTsK
LSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgLy8gUnVuIHRoZSB2ZXJpZmlj
YXRpb24gcm91dGluZS4KLSAgICBpZiAodGVzdENhc2UudmVyaWZpZXIoYnVmLCB0ZXN0Q2FzZS50
aHJlc2hvbGQsIHRlc3RDYXNlLm51bU9jY3VycmVuY2VzKSkKLSAgICAgICAgdGVzdFBhc3NlZCh0
ZXN0Q2FzZS5kZXNjcmlwdGlvbik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKHRlc3RD
YXNlLmRlc2NyaXB0aW9uKTsKLX0KLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBXcmFwcGVycyBmb3Ig
cHJvZ3JhbW1hdGljIGNvbnN0cnVjdGlvbiBvZiBJbWFnZSwgSW1hZ2VEYXRhIGFuZCByYXcgdGV4
dHVyZSBkYXRhCi0vLwotCi1mdW5jdGlvbiBJbWFnZVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsK
LSAgICB0aGlzLnBuZ0J1aWxkZXJfID0gbmV3IFBOR2xpYih3aWR0aCwgaGVpZ2h0LCAyNTYpOwot
fQotCi1JbWFnZVdyYXBwZXIucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rpb24oKSB7Ci0gICAg
cmV0dXJuIHRoaXMucG5nQnVpbGRlcl8ud2lkdGg7Ci19OwotCi1JbWFnZVdyYXBwZXIucHJvdG90
eXBlLmdldEhlaWdodCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLnBuZ0J1aWxkZXJf
LmhlaWdodDsKLX07Ci0KLUltYWdlV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlv
bih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdGhpcy5wbmdCdWlsZGVyXy5idWZmZXJbdGhpcy5w
bmdCdWlsZGVyXy5pbmRleCh4LCB5KV0gPSB0aGlzLnBuZ0J1aWxkZXJfLmNvbG9yKHIsIGcsIGIs
IGEpOwotfTsKLQotLy8gR2VuZXJhdGVzIGRhdGEgaW50byAiZGF0YSIgcHJvcGVydHksIHBvc3Np
Ymx5IGFzeW5jaHJvbm91c2x5LgotSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5nZW5lcmF0ZURhdGEg
PSBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGhhdCA9IHRoaXM7Ci0gICAgdmFyIGltZyA9IG5ldyBJ
bWFnZSgpOwotICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhhdC5kYXRh
ID0gaW1nOwotICAgICAgICBtYXliZVJ1blRlc3RzKCk7Ci0gICAgfTsKLSAgICBpbWcuc3JjID0g
ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwiICsgdGhpcy5wbmdCdWlsZGVyXy5nZXRCYXNlNjQoKTsK
LX07Ci0KLWZ1bmN0aW9uIEltYWdlRGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBp
ZiAoIUltYWdlRGF0YVdyYXBwZXIudGVtcENhbnZhcykgewotICAgICAgICBJbWFnZURhdGFXcmFw
cGVyLnRlbXBDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgICB9
Ci0gICAgdGhpcy5pbWFnZURhdGFfID0gSW1hZ2VEYXRhV3JhcHBlci50ZW1wQ2FudmFzLmdldENv
bnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKHdpZHRoLCBoZWlnaHQpOwotfQotCi1JbWFnZURh
dGFXcmFwcGVyLnRlbXBDYW52YXMgPSBudWxsOwotCi1JbWFnZURhdGFXcmFwcGVyLnByb3RvdHlw
ZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmltYWdlRGF0YV8ud2lk
dGg7Ci19OwotCi1JbWFnZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRIZWlnaHQgPSBmdW5jdGlv
bigpIHsKLSAgICByZXR1cm4gdGhpcy5pbWFnZURhdGFfLmhlaWdodDsKLX07Ci0KLUltYWdlRGF0
YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkg
ewotICAgIHZhciBpbmRleCA9IDQgKiAodGhpcy5pbWFnZURhdGFfLndpZHRoICogeSArIHgpOwot
ICAgIHRoaXMuaW1hZ2VEYXRhXy5kYXRhW2luZGV4XSA9IHI7Ci0gICAgdGhpcy5pbWFnZURhdGFf
LmRhdGFbaW5kZXggKyAxXSA9IGc7Ci0gICAgdGhpcy5pbWFnZURhdGFfLmRhdGFbaW5kZXggKyAy
XSA9IGI7Ci0gICAgdGhpcy5pbWFnZURhdGFfLmRhdGFbaW5kZXggKyAzXSA9IGE7Ci19OwotCi1J
bWFnZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZW5lcmF0ZURhdGEgPSBmdW5jdGlvbigpIHsKLSAg
ICB0aGlzLmRhdGEgPSB0aGlzLmltYWdlRGF0YV87Ci0gICAgbWF5YmVSdW5UZXN0cygpOwotfTsK
LQotZnVuY3Rpb24gVGV4dHVyZURhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgdGhp
cy53aWR0aF8gPSB3aWR0aDsKLSAgICB0aGlzLmhlaWdodF8gPSBoZWlnaHQ7Ci19Ci0KLVRleHR1
cmVEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHsKLSAgICByZXR1
cm4gdGhpcy53aWR0aF87Ci19OwotCi1UZXh0dXJlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdldEhl
aWdodCA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0aGlzLmhlaWdodF87Ci19OwotCi1UZXh0
dXJlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdlbmVyYXRlRGF0YSA9IGZ1bmN0aW9uKCkgewotICAg
IHRoaXMuZGF0YSA9IHRoaXMuZGF0YV87Ci0gICAgbWF5YmVSdW5UZXN0cygpOwotfTsKLQotZnVu
Y3Rpb24gUkdCQThEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIFRleHR1cmVEYXRh
V3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAgIHRoaXMuZGF0YV8gPSBuZXcg
VWludDhBcnJheSg0ICogd2lkdGggKiBoZWlnaHQpOwotfQotCi1SR0JBOERhdGFXcmFwcGVyLnBy
b3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7Ci0KLVJHQkE4RGF0YVdyYXBwZXIucHJv
dG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHZhciBp
bmRleCA9IDQgKiAodGhpcy53aWR0aF8gKiB5ICsgeCk7Ci0gICAgdGhpcy5kYXRhX1tpbmRleF0g
PSByOwotICAgIHRoaXMuZGF0YV9baW5kZXggKyAxXSA9IGc7Ci0gICAgdGhpcy5kYXRhX1tpbmRl
eCArIDJdID0gYjsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgM10gPSBhOwotfTsKLQotZnVuY3Rp
b24gUkdCQTU1NTFEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIFRleHR1cmVEYXRh
V3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAgIHRoaXMuZGF0YV8gPSBuZXcg
VWludDE2QXJyYXkod2lkdGggKiBoZWlnaHQpOwotfQotCi1SR0JBNTU1MURhdGFXcmFwcGVyLnBy
b3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7Ci0KLVJHQkE1NTUxRGF0YVdyYXBwZXIu
cHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHZh
ciB2YWx1ZSA9ICgoKHIgJiAweEY4KSA8PCA4KQotICAgICAgICAgICAgICAgICB8ICgoZyAmIDB4
RjgpIDw8IDMpCi0gICAgICAgICAgICAgICAgIHwgKChiICYgMHhGOCkgPj4gMikKLSAgICAgICAg
ICAgICAgICAgfCAoYSA+PiA3KSk7Ci0gICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4
XSA9IHZhbHVlOwotfTsKLQotZnVuY3Rpb24gUkdCQTQ0NDREYXRhV3JhcHBlcih3aWR0aCwgaGVp
Z2h0KQotewotICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQp
OwotICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDE2QXJyYXkod2lkdGggKiBoZWlnaHQpOwotfQot
Ci1SR0JBNDQ0NERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7
Ci0KLVJHQkE0NDQ0RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwg
eSwgciwgZywgYiwgYSkgewotICAgIHZhciB2YWx1ZSA9ICgoKHIgJiAweEYwKSA8PCA4KQotICAg
ICAgICAgICAgICAgICB8ICgoZyAmIDB4RjApIDw8IDQpCi0gICAgICAgICAgICAgICAgIHwgKGIg
JiAweEYwKQotICAgICAgICAgICAgICAgICB8IChhID4+IDQpKTsKLSAgICB0aGlzLmRhdGFfW3Ro
aXMud2lkdGhfICogeSArIHhdID0gdmFsdWU7Ci19OwotCi1mdW5jdGlvbiBSR0I4RGF0YVdyYXBw
ZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0aGlzLCB3
aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQ4QXJyYXkoMyAqIHdpZHRo
ICogaGVpZ2h0KTsKLX0KLQotUkdCOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJl
RGF0YVdyYXBwZXI7Ci0KLVJHQjhEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5j
dGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIGluZGV4ID0gMyAqICh0aGlzLndpZHRo
XyAqIHkgKyB4KTsKLSAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7Ci0gICAgdGhpcy5kYXRhX1tp
bmRleCArIDFdID0gZzsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMl0gPSBiOwotfTsKLQotZnVu
Y3Rpb24gUkdCNTY1RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBUZXh0dXJlRGF0
YVdyYXBwZXIuY2FsbCh0aGlzLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlzLmRhdGFfID0gbmV3
IFVpbnQxNkFycmF5KHdpZHRoICogaGVpZ2h0KTsKLX0KLQotUkdCNTY1RGF0YVdyYXBwZXIucHJv
dG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotUkdCNTY1RGF0YVdyYXBwZXIucHJv
dG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHZhciB2
YWx1ZSA9ICgoKHIgJiAweEY4KSA8PCA4KQotICAgICAgICAgICAgICAgICB8ICgoZyAmIDB4RkMp
IDw8IDMpCi0gICAgICAgICAgICAgICAgIHwgKChiICYgMHhGOCkgPj4gMykpOwotICAgIHRoaXMu
ZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0gPSB2YWx1ZTsKLX07Ci0KLWZ1bmN0aW9uIEE4RGF0
YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0
aGlzLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQ4QXJyYXkod2lk
dGggKiBoZWlnaHQpOwotfQotCi1BOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJl
RGF0YVdyYXBwZXI7Ci0KLUE4RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rp
b24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHRoaXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsg
eF0gPSBhOwotfTsKLQotZnVuY3Rpb24gTDhEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewot
ICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAgIHRo
aXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0KLUw4RGF0YVdy
YXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKLQotTDhEYXRhV3JhcHBl
ci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAg
dGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IHI7Ci19OwotCi1mdW5jdGlvbiBMQThE
YXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxs
KHRoaXMsIHdpZHRoLCBoZWlnaHQpOwotICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSgy
ICogd2lkdGggKiBoZWlnaHQpOwotfQotCi1MQThEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcg
VGV4dHVyZURhdGFXcmFwcGVyOwotCi1MQThEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwg
PSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Ci0gICAgdmFyIGluZGV4ID0gMiAqICh0aGlz
LndpZHRoXyAqIHkgKyB4KTsKLSAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7Ci0gICAgdGhpcy5k
YXRhX1tpbmRleCArIDFdID0gYTsKLX07Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gQ29sb3IgcmFt
cCBnZW5lcmF0aW9uIGZ1bmN0aW9ucwotLy8KLQotZnVuY3Rpb24gZ2VuZXJhdGVPcGFxdWVHcmF5
c2NhbGVSYW1wKHdyYXBwZXIpCi17Ci0gICAgdmFyIHdpZHRoID0gd3JhcHBlci5nZXRXaWR0aCgp
OwotICAgIHZhciBoZWlnaHQgPSB3cmFwcGVyLmdldEhlaWdodCgpOwotICAgIGZvciAodmFyIHgg
PSAwOyB4IDwgd2lkdGg7ICsreCkgewotICAgICAgICB2YXIgdmFsdWUgPSBNYXRoLnJvdW5kKDI1
NS4wICogeCAvIHdpZHRoKTsKLSAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsr
eSkKLSAgICAgICAgICAgIHdyYXBwZXIuc2V0UGl4ZWwoeCwgeSwgdmFsdWUsIHZhbHVlLCB2YWx1
ZSwgMjU1KTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGdlbmVyYXRlVHJhbnNsdWNlbnRHcmF5c2Nh
bGVSYW1wKHdyYXBwZXIpCi17Ci0gICAgdmFyIHdpZHRoID0gd3JhcHBlci5nZXRXaWR0aCgpOwot
ICAgIHZhciBoZWlnaHQgPSB3cmFwcGVyLmdldEhlaWdodCgpOwotICAgIGZvciAodmFyIHggPSAw
OyB4IDwgd2lkdGg7ICsreCkgewotICAgICAgICB2YXIgdmFsdWUgPSBNYXRoLnJvdW5kKDI1NS4w
ICogeCAvIHdpZHRoKTsKLSAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkK
LSAgICAgICAgICAgIHdyYXBwZXIuc2V0UGl4ZWwoeCwgeSwgdmFsdWUsIHZhbHVlLCB2YWx1ZSwg
dmFsdWUpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2Fs
ZVJhbXAod3JhcHBlcikKLXsKLSAgICB2YXIgd2lkdGggPSB3cmFwcGVyLmdldFdpZHRoKCk7Ci0g
ICAgdmFyIGhlaWdodCA9IHdyYXBwZXIuZ2V0SGVpZ2h0KCk7Ci0gICAgZm9yICh2YXIgeCA9IDA7
IHggPCB3aWR0aDsgKyt4KSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IE1hdGgucm91bmQoMjU1LjAg
KiB4IC8gd2lkdGgpOwotICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KQot
ICAgICAgICAgICAgd3JhcHBlci5zZXRQaXhlbCh4LCB5LCB2YWx1ZSwgdmFsdWUsIHZhbHVlLCAw
KTsKLSAgICB9Ci19Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gVmVyaWZpY2F0aW9uIHJvdXRpbmVz
Ci0vLwotCi1mdW5jdGlvbiBhbGxDaGFubmVsc0luY3JlYXNlQnlOb01vcmVUaGFuKGFycmF5LCB0
aHJlc2hvbGQsIG51bU9jY3VycmVuY2VzKSB7Ci0gICAgdmFyIG51bUZvdW5kID0gMDsKLSAgICBm
b3IgKHZhciBpID0gNDsgaSA8IGFycmF5Lmxlbmd0aDsgaSArPSA0KQotICAgICAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IDQ7IGorKykKLSAgICAgICAgICAgIGlmIChhcnJheVtpICsgal0gLSBhcnJh
eVtpICsgaiAtIDRdID4gdGhyZXNob2xkKQotICAgICAgICAgICAgICAgICsrbnVtRm91bmQ7Ci0K
LSAgICByZXR1cm4gbnVtRm91bmQgPCBudW1PY2N1cnJlbmNlczsKLX0KLQotZnVuY3Rpb24gYWxw
aGFDaGFubmVsSW5jcmVhc2VzQnlOb01vcmVUaGFuKGFycmF5LCB0aHJlc2hvbGQsIG51bU9jY3Vy
cmVuY2VzKSB7Ci0gICAgdmFyIG51bUZvdW5kID0gMDsKLSAgICBmb3IgKHZhciBpID0gNzsgaSA8
IGFycmF5Lmxlbmd0aDsgaSArPSA0KQotICAgICAgICBpZiAoYXJyYXlbaV0gLSBhcnJheVtpIC0g
NF0gPiB0aHJlc2hvbGQpCi0gICAgICAgICAgICArK251bUZvdW5kOwotCi0gICAgcmV0dXJuIG51
bUZvdW5kIDwgbnVtT2NjdXJyZW5jZXM7Ci19Ci0KLWZ1bmN0aW9uIGFsbENoYW5uZWxzSW5jcmVh
c2VCeUF0TGVhc3QoYXJyYXksIHRocmVzaG9sZCwgbnVtT2NjdXJyZW5jZXMpIHsKLSAgICB2YXIg
bnVtRm91bmQgPSAwOwotICAgIGZvciAodmFyIGkgPSA0OyBpIDwgYXJyYXkubGVuZ3RoOyBpICs9
IDQpCi0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgNDsgKytqKQotICAgICAgICAgICAgaWYg
KGFycmF5W2kgKyBqXSAtIGFycmF5W2kgKyBqIC0gNF0gPiB0aHJlc2hvbGQpCi0gICAgICAgICAg
ICAgICAgKytudW1Gb3VuZDsKLQotICAgIHJldHVybiBudW1Gb3VuZCA+IG51bU9jY3VycmVuY2Vz
OwotfQotCi1mdW5jdGlvbiBjb2xvckNoYW5uZWxzQXJlWmVybyhhcnJheSwgdGhyZXNob2xkLCBu
dW1PY2N1cnJlbmNlcykgewotICAgIHZhciBwYXNzZWQgPSB0cnVlOwotICAgIHZhciBudW1GYWls
dXJlcyA9IDA7Ci0KLSAgICBmb3IgKHZhciBpID0gNDsgaSA8IGFycmF5Lmxlbmd0aDsgaSArPSA0
KQotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDM7ICsraikKLSAgICAgICAgICAgIGlmIChh
cnJheVtpICsgal0gIT0gMCkgewotICAgICAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgIGlmICgrK251bUZhaWx1cmVzIDw9IDUpCi0gICAgICAgICAgICAgICAgICAg
IGRlYnVnKCIgIGFycmF5WyIgKyAoaSArIGopICsgIl0gc2hvdWxkIGhhdmUgYmVlbiAwLCB3YXMg
IiArIGFycmF5W2kgKyBqXSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICByZXR1cm4gcGFzc2VkOwot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMSI+PC9jYW52YXM+Ci08ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdp
dGgtaW52YWxpZC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS13aXRoLWludmFsaWQtZGF0YS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NjIzYmUyNGI0Y2IzMmRhYzViMGQ3NjY4NGViNWMzMWMzZTJkZjVlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4LWltYWdlLXdpdGgtaW52YWxpZC1kYXRhLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjkg
KzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFs
cyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiog
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgot
KiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB
Q1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0Ug
T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRs
ZT50ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRlc3RzIHdpdGggaW52YWxpZCBkYXRhPC90
aXRsZT4KLSAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iMiIgaGVpZ2h0PSIyIj4gPC9jYW52YXM+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci1kZXNjcmlwdGlvbigidGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB0ZXN0cyB3
aXRoIGludmFsaWQgZGF0YSIpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFyIGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dChjYW52YXMpOwotaWYgKCFnbCkKLSAgdGVzdEZhaWxlZCgiQ29udGV4dCBj
cmVhdGVkLiIpOwotZWxzZQotICB0ZXN0UGFzc2VkKCJDb250ZXh0IGNyZWF0ZWQuIik7Ci0KLXZh
ciB0ZXg7Ci0KLWZ1bmN0aW9uIHNldHVwKCkgewotICAgIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBidWczMjYxOV90ZXN0cy50ZXgp
OwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgNjQsIDY0LCAw
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLX0KLQotZnVuY3Rpb24gdGVhcmRv
d24oKSB7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KGRl
c2MsIGZ1bmMsIGV4cGVjdGVkKSB7Ci0gICAgZGVidWcoZGVzYyk7Ci0KLSAgICB2YXIgZXhjID0g
bnVsbDsKLSAgICB0cnkgewotICAgICAgICBmdW5jKCk7Ci0gICAgfSBjYXRjaCAoeCkgewotICAg
ICAgICBleGMgPSB4OwotICAgIH0KLQotICAgIGlmIChleHBlY3RlZCA9PSBnbC5JTlZBTElEX09Q
RVJBVElPTikgewotICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBleHBlY3RlZCk7Ci0gICAgfSBl
bHNlIGlmIChleHBlY3RlZCA9PSAiZXhjZXB0aW9uIikgewotICAgICAgICBpZiAoZXhjKSB7Ci0g
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJ0aHJldyBleGNlcHRpb24iKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIik7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KLXRlc3QoIlBhc3NpbmcgYSBidWZmZXIgbm90IGxhcmdlIGVu
b3VnaCB0byB0ZXhJbWFnZTJEIHNob3VsZCBnZW5lcmF0ZSBhbiBJTlZBTElEX09QRVJBVElPTiIs
Ci0gICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgdmFyIHRvb1NtYWxsID0gbmV3IFVpbnQ4QXJyYXko
NjQpOwotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDY0
LCA2NCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdG9vU21hbGwpOwotICAgICB9LAot
ICAgICBnbC5JTlZBTElEX09QRVJBVElPTik7Ci0KLXRlc3QoIlBhc3NpbmcgdGV4SW1hZ2UyRCBw
YXJhbWV0ZXIgZGF0YSBvZiBOdW1iZXIgdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIiwK
LSAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIDY0LCA2NCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgNDIpOwot
ICAgICB9LAotICAgICAiZXhjZXB0aW9uIik7Ci0KLXRlc3QoIlBhc3NpbmcgdGV4SW1hZ2UyRCBw
YXJhbWV0ZXIgZGF0YSBvZiBTdHJpbmcgdHlwZSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IiLAot
ICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgNjQsIDY0LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCAibm90IGEg
YnVmZmVyIik7Ci0gICAgIH0sCi0gICAgICJleGNlcHRpb24iKTsKLXRlc3QoIlBhc3NpbmcgYSBi
dWZmZXIgbm90IGxhcmdlIGVub3VnaCB0byB0ZXhTdWJJbWFnZTJEIHNob3VsZCBnZW5lcmF0ZSBh
biBJTlZBTElEX09QRVJBVElPTiIsCi0gICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIHRv
b1NtYWxsID0gbmV3IFVpbnQ4QXJyYXkoNjQpOwotICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIDAsIDAsIDY0LCA2NCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
dG9vU21hbGwpOwotICAgICB9LAotICAgICBnbC5JTlZBTElEX09QRVJBVElPTik7Ci0KLXRlc3Qo
IlBhc3NpbmcgdGV4U3ViSW1hZ2UyRCBwYXJhbWV0ZXIgZGF0YSBvZiBOdW1iZXIgdHlwZSBzaG91
bGQgdGhyb3cgYSBUeXBlRXJyb3IiLAotICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGdsLnRl
eFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgNjQsIDY0LCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCA0Mik7Ci0gICAgIH0sCi0gICAgICJleGNlcHRpb24iKTsKLQotdGVzdCgi
UGFzc2luZyB0ZXhTdWJJbWFnZTJEIHBhcmFtZXRlciBkYXRhIG9mIFN0cmluZyB0eXBlIHNob3Vs
ZCB0aHJvdyBhIFR5cGVFcnJvciIsCi0gICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCA2NCwgNjQsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsICJub3QgYSBidWZmZXIiKTsKLSAgICAgfSwKLSAgICAgImV4Y2VwdGlvbiIp
OwotCi1kZWJ1ZygiIik7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjgzZmNiZmMxZGVmN2U5ZGM1OWNhMTIxNDM1MDJmZjE0MDhiYjUyYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzODQgKzAs
MCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu
ZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIp
LCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
Ci0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj
b3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9t
IHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiog
VEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQg
T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleCA9IG51bGw7Ci12YXIgZXJyb3IgPSAwOwot
Ci1mdW5jdGlvbiBlbnVtVG9TdHJpbmcodmFsdWUpIHsKLSAgcmV0dXJuIHd0dS5nbEVudW1Ub1N0
cmluZyhnbCwgdmFsdWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0VGV4SW1hZ2UyRCh0ZXN0Q2FzZSkK
LXsKLSAgICB2YXIgbGV2ZWwgPSAwOwotICAgIHZhciB3aWR0aCA9IDE2OwotICAgIHZhciBoZWln
aHQgPSAxNjsKLSAgICB2YXIgbXNnID0gIiIgKwotICAgICAgIiBpbnRlcm5hbEZvcm1hdDogIiAr
IGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCkgKwotICAgICAgIiB0YXJnZXQ6
ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UudGFyZ2V0KSArCi0gICAgICAiIGZvcm1hdDogIiAr
IGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5mb3JtYXQpICsKLSAgICAgICIgdHlwZTogIiArIGVudW1U
b1N0cmluZyh0ZXN0Q2FzZS50eXBlKSArCi0gICAgICAiIGJvcmRlcjogIiArIHRlc3RDYXNlLmJv
cmRlcjsKLQotICAgIGdsLnRleEltYWdlMkQodGVzdENhc2UudGFyZ2V0LCBsZXZlbCwgdGVzdENh
c2UuaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHRlc3RDYXNlLmJvcmRlciwgdGVzdENh
c2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBudWxsKTsKLSAgICBlcnJvciA9IHRlc3RDYXNlLmV4
cGVjdGVkRXJyb3I7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdFRleFN1YkltYWdlMkQodGVzdENhc2UpCi17Ci0gICAgdmFyIGxldmVsID0g
MDsKLSAgICB2YXIgeG9mZnNldCA9IDA7Ci0gICAgdmFyIHlvZmZzZXQgPSAwOwotICAgIHZhciB3
aWR0aCA9IDE2OwotICAgIHZhciBoZWlnaHQgPSAxNjsKLSAgICB2YXIgbXNnID0gIiIrCi0gICAg
ICAgICIgZm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmZvcm1hdCkgKwotICAgICAg
ICAiIHR5cGU6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UudHlwZSk7Ci0gICAgdmFyIGFycmF5
ID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLSAgICBnbC50ZXhTdWJJbWFn
ZTJEKHRlc3RDYXNlLnRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHdpZHRoLCBoZWln
aHQsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgYXJyYXkpOwotICAgIGVycm9yID0g
dGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBt
c2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0VGV4UGFyYW1ldGVyKHRlc3RDYXNlKQotewotICAgIHZh
ciBtc2cgPSAicGFyYW1OYW1lOiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnBuYW1lKTsKLSAg
ICBlcnJvciA9IHRlc3RDYXNlLmV4cGVjdGVkRXJyb3I7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaSh0
ZXN0Q2FzZS50YXJnZXQsIHRlc3RDYXNlLnBuYW1lLCB0ZXN0Q2FzZS5wYXJhbSk7Ci0gICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJmKHRlc3RD
YXNlLnRhcmdldCwgdGVzdENhc2UucG5hbWUsIHRlc3RDYXNlLnBhcmFtKTsKLSAgICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0R2V0VGV4UGFyYW1l
dGVyKHRlc3RDYXNlKQotewotICAgIHZhciBtc2cgPSAicGFyYW1OYW1lOiAiICsgZW51bVRvU3Ry
aW5nKHRlc3RDYXNlLnBuYW1lKTsKLSAgICBlcnJvciA9IHRlc3RDYXNlLmV4cGVjdGVkRXJyb3I7
Ci0gICAgZ2wuZ2V0VGV4UGFyYW1ldGVyKHRlc3RDYXNlLnRhcmdldCwgdGVzdENhc2UucG5hbWUp
OwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RDb3B5VGV4SW1hZ2UyRCh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgbGV2ZWwgPSAwOwotICAgIHZh
ciB4ID0gMDsKLSAgICB2YXIgeSA9IDA7Ci0gICAgdmFyIHdpZHRoID0gMTY7Ci0gICAgdmFyIGhl
aWdodCA9IDE2OwotCi0gICAgdmFyIG1zZyA9ICIiICsKLSAgICAgICIgY29sb3JCdWZmZXJGb3Jt
YXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UuY29sb3JCdWZmZXJGb3JtYXQpICsKLSAgICAg
ICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UuaW50ZXJuYWxGb3Jt
YXQpICsKLSAgICAgICIgdGFyZ2V0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnRhcmdldCkg
KwotICAgICAgIiBib3JkZXI6ICIgKyB0ZXN0Q2FzZS5ib3JkZXI7Ci0KLSAgICBnbC5yZW5kZXJi
dWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgdGVzdENhc2UuY29sb3JCdWZmZXJGb3JtYXQs
IHdpZHRoLCBoZWlnaHQpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
ICAgIHNob3VsZEJlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSIs
ICJnbC5GUkFNRUJVRkZFUl9DT01QTEVURSIpOwotCi0gICAgZ2wuY29weVRleEltYWdlMkQodGVz
dENhc2UudGFyZ2V0LCBsZXZlbCwgdGVzdENhc2UuaW50ZXJuYWxGb3JtYXQsIHgsIHksIHdpZHRo
LCBoZWlnaHQsIHRlc3RDYXNlLmJvcmRlcik7Ci0gICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3Rl
ZEVycm9yOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RDb3B5VGV4U3ViSW1hZ2UyRCh0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgbGV2ZWwgPSAw
OwotICAgIHZhciB4ID0gMDsKLSAgICB2YXIgeSA9IDA7Ci0gICAgdmFyIHdpZHRoID0gMTY7Ci0g
ICAgdmFyIGhlaWdodCA9IDE2OwotICAgIHZhciB4b2Zmc2V0ID0gMDsKLSAgICB2YXIgeW9mZnNl
dCA9IDA7Ci0gICAgdmFyIGJvcmRlciA9IDA7Ci0gICAgdmFyIHR5cGUgPSBnbC5VTlNJR05FRF9C
WVRFOwotICAgIHZhciBtc2cgPSAiIiArCi0gICAgICAiIGNvbG9yQnVmZmVyRm9ybWF0OiAiICsg
ZW51bVRvU3RyaW5nKHRlc3RDYXNlLmNvbG9yQnVmZmVyRm9ybWF0KSArCi0gICAgICAiIGludGVy
bmFsRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmludGVybmFsRm9ybWF0KSArCi0g
ICAgICAiIHRhcmdldDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS50YXJnZXQpOwotCi0gICAg
Z2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIHRlc3RDYXNlLmNvbG9yQnVm
ZmVyRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKLSAgICBzaG91bGRCZSgiZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikiLCAiZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUiKTsKLQotICAgIGdsLnRleEltYWdl
MkQodGVzdENhc2UudGFyZ2V0LCBsZXZlbCwgdGVzdENhc2UuaW50ZXJuYWxGb3JtYXQsIHhvZmZz
ZXQgKyB3aWR0aCwgeW9mZnNldCArIGhlaWdodCwgYm9yZGVyLCB0ZXN0Q2FzZS5pbnRlcm5hbEZv
cm1hdCwgdHlwZSwgbnVsbCk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7
Ci0KLSAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRCh0ZXN0Q2FzZS50YXJnZXQsIGxldmVsLCB4b2Zm
c2V0LCB5b2Zmc2V0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBlcnJvciA9IHRlc3RDYXNl
LmV4cGVjdGVkRXJyb3I7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0K
LQotZnVuY3Rpb24gdGVzdENvcHlGcm9tSW50ZXJuYWxGQk8odGVzdENhc2UpCi17Ci0gICAgdmFy
IHRhcmdldCA9IGdsLlRFWFRVUkVfMkQ7Ci0gICAgdmFyIGxldmVsID0gMDsKLSAgICB2YXIgeCA9
IDA7Ci0gICAgdmFyIHkgPSAwOwotICAgIHZhciB3aWR0aCA9IDE2OwotICAgIHZhciBoZWlnaHQg
PSAxNjsKLSAgICB2YXIgeG9mZnNldCA9IDA7Ci0gICAgdmFyIHlvZmZzZXQgPSAwOwotICAgIHZh
ciBib3JkZXIgPSAwOwotICAgIHZhciB0eXBlID0gZ2wuVU5TSUdORURfQllURTsKLSAgICB2YXIg
bXNnID0gIiIgKwotICAgICAgIiBjb2xvckJ1ZmZlckZvcm1hdDogIiArIGVudW1Ub1N0cmluZyh0
ZXN0Q2FzZS5jb250ZXh0QWxwaGEgPyBnbC5SR0JBIDogZ2wuUkdCKSArCi0gICAgICAiIGludGVy
bmFsRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmludGVybmFsRm9ybWF0KTsKLQot
ICAgIGlmICh0ZXN0Q2FzZS5jb250ZXh0QWxwaGEpCi0gICAgICAgIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChudWxsLCB7IGFscGhhOiB0cnVlIH0pOwotICAgIGVsc2UKLSAgICAgICAgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHsgYWxwaGE6IGZhbHNlIH0pOwotICAgIHNob3VsZEJl
Tm9uTnVsbCgiZ2wiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRleCA9IGdsLmNyZWF0ZVRleHR1
cmUoKSIpOwotICAgIGdsLmJpbmRUZXh0dXJlKHRhcmdldCwgdGV4KTsKLSAgICBpZiAodGVzdENh
c2Uuc3ViSW1hZ2UpIHsKLSAgICAgICAgZ2wudGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB0ZXN0
Q2FzZS5pbnRlcm5hbEZvcm1hdCwgeG9mZnNldCArIHdpZHRoLCB5b2Zmc2V0ICsgaGVpZ2h0LCBi
b3JkZXIsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB0eXBlLCBudWxsKTsKLSAgICAgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIGdsLmNvcHlUZXhTdWJJbWFn
ZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwotICAgICAgICBnbC5jb3B5VGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB0ZXN0Q2FzZS5pbnRl
cm5hbEZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgYm9yZGVyKTsKLSAgICB9Ci0gICAgZXJy
b3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVycm9yOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJy
b3IsIG1zZyk7Ci19Ci0KLWRlc2NyaXB0aW9uKCJWYWxpZGF0ZSB0ZXggZnVuY3Rpb25zIGlucHV0
IHBhcmFtZXRlcnMiKTsKLQotc2hvdWxkQmVOb25OdWxsKCJnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoKSIpOwotc2hvdWxkQmVOb25OdWxsKCJ0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCkiKTsKLWds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNraW5nIFRleEltYWdlMkQ6IGEg
c2V0IG9mIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIp
OwotCi12YXIgdGVzdENhc2VzID0KLSAgWyB7dGFyZ2V0OiAweDgwNjQsIC8vIEdMX1BST1hZX1RF
WFRVUkVfMkQKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMCwK
LSAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAg
ICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRV
UkVfMkQsCi0gICAgIGludGVybmFsRm9ybWF0OiAweDE5MDMsIC8vIEdMX1JFRAotICAgICBib3Jk
ZXI6IDAsCi0gICAgIGZvcm1hdDogMHgxOTAzLCAvLyBHTF9SRUQKLSAgICAgdHlwZTogZ2wuVU5T
SUdORURfQllURSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7
dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAg
ICAgYm9yZGVyOiAxLAotICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHR5cGU6IGdsLlVOU0lH
TkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfVkFMVUV9LAotICAgIHt0
YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAg
ICBib3JkZXI6IDAsCi0gICAgIGZvcm1hdDogZ2wuUkdCLAotICAgICB0eXBlOiBnbC5VTlNJR05F
RF9CWVRFLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX09QRVJBVElPTn0sCi0gICAg
e3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0g
ICAgIGJvcmRlcjogMCwKLSAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICB0eXBlOiBnbC5CWVRF
LAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGds
LlRFWFRVUkVfMkQsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBib3JkZXI6
IDAsCi0gICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwK
LSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9IF07Ci0KLWZvciAodmFyIGlpID0gMDsg
aWkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQotICAgIHRlc3RUZXhJbWFnZTJEKHRlc3RDYXNl
c1tpaV0pOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiQ2hlY2tpbmcgVGV4U3ViSW1hZ2UyRDogYSBz
ZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdMIGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7
Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgZm9ybWF0
OiAweDE5MDMsIC8vIEdMX1JFRAotICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICBl
eHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVf
MkQsCi0gICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgdHlwZTogZ2wuQllURSwKLSAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJE
LAotICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0g
ICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9SfSBdOwotCi1mb3IgKHZhciBpaSA9IDA7IGlp
IDwgdGVzdENhc2VzLmxlbmd0aDsgKytpaSkKLSAgICB0ZXN0VGV4U3ViSW1hZ2UyRCh0ZXN0Q2Fz
ZXNbaWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNraW5nIFRleFBhcmFtZXRlcjogYSBz
ZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdMIGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7
Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge3RhcmdldDogMHgwREUwLCAvLyBHTF9URVhUVVJFXzFECi0g
ICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKLSAgICAgcGFyYW06IGdsLlJFUEVBVCwKLSAg
ICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhU
VVJFXzJELAotICAgICBwbmFtZTogMHg4MTNBLCAvLyBHTF9URVhUVVJFX01JTl9MT0QKLSAgICAg
cGFyYW06IDAsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3Rh
cmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgcG5hbWU6IGdsLlRFWFRVUkVfV1JBUF9ULAotICAg
ICBwYXJhbTogMHgyOTAwLCAvLyBHTF9DTEFNUAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZB
TElEX0VOVU19LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIHBuYW1lOiBnbC5U
RVhUVVJFX1dSQVBfVCwKLSAgICAgcGFyYW06IGdsLlJFUEVBVCwKLSAgICAgZXhwZWN0ZWRFcnJv
cjogZ2wuTk9fRVJST1J9IF07Ci0KLWZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXN0Q2FzZXMubGVu
Z3RoOyArK2lpKQotICAgIHRlc3RUZXhQYXJhbWV0ZXIodGVzdENhc2VzW2lpXSk7Ci0KLWRlYnVn
KCIiKTsKLWRlYnVnKCJDaGVja2luZyBHZXRUZXhQYXJhbWV0ZXI6IGEgc2V0IG9mIGlucHV0cyB0
aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOwotCi10ZXN0Q2FzZXMg
PQotICBbIHt0YXJnZXQ6IDB4MERFMCwgLy8gR0xfVEVYVFVSRV8xRAotICAgICBwbmFtZTogZ2wu
VEVYVFVSRV9XUkFQX1QsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0g
ICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgcG5hbWU6IDB4ODEzQSwgLy8gR0xfVEVY
VFVSRV9NSU5fTE9ECi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAg
e3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgcG5hbWU6IGdsLlRFWFRVUkVfV1JBUF9ULAot
ICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBp
aSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAgdGVzdEdldFRleFBhcmFtZXRlcih0ZXN0
Q2FzZXNbaWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNraW5nIENvcHlUZXhJbWFnZTJE
OiBhIHNldCBvZiBpbnB1dHMgdGhhdCBhcmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xF
UzIiKTsKLQotdmFyIGNvbG9yQnVmZmVyID0gbnVsbDsKLXZhciBmYm8gPSBudWxsOwotCi1zaG91
bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLWdsLmJpbmRGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLXNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5S
RU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLWdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xv
ckJ1ZmZlcik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotdGVzdENhc2Vz
ID0KLSAgWyB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBjb2xvckJ1ZmZlckZvcm1hdDog
Z2wuUkdCNTY1LAotICAgICBpbnRlcm5hbEZvcm1hdDogMHg4MDU0LCAvLyBHTF9SR0IxNgotICAg
ICBib3JkZXI6IDAsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAg
e3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJHQjU2
NSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMSwKLSAgICAg
ZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9WQUxVRX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVS
RV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJHQjU2NSwKLSAgICAgaW50ZXJuYWxG
b3JtYXQ6IGdsLlJHQkEsCi0gICAgIGJvcmRlcjogMCwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wu
SU5WQUxJRF9PUEVSQVRJT059LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGNv
bG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0Is
Ci0gICAgIGJvcmRlcjogMCwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9IF07Ci0K
LWZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQotICAgIHRlc3RD
b3B5VGV4SW1hZ2UyRCh0ZXN0Q2FzZXNbaWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNr
aW5nIENvcHlUZXhTdWJJbWFnZTJEOiBhIHNldCBvZiBpbnB1dHMgdGhhdCBhcmUgdmFsaWQgaW4g
R0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsKLQotdGVzdENhc2VzID0KLSAgWyB7dGFyZ2V0OiBn
bC5URVhUVVJFXzJELAotICAgICBjb2xvckJ1ZmZlckZvcm1hdDogZ2wuUkdCNV9BMSwKLSAgICAg
aW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9S
fSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBjb2xvckJ1ZmZlckZvcm1hdDog
Z2wuUkdCNTY1LAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgZXhwZWN0ZWRF
cnJvcjogZ2wuSU5WQUxJRF9PUEVSQVRJT059IF07Ci0KLWZvciAodmFyIGlpID0gMDsgaWkgPCB0
ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQotICAgIHRlc3RDb3B5VGV4U3ViSW1hZ2UyRCh0ZXN0Q2Fz
ZXNbaWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNraW5nIENvcHlUZXh7U3VifUltYWdl
MkQ6IGNvcHkgZnJvbSBXZWJHTCBpbnRlcm5hbCBmcmFtZWJ1ZmZlciIpOwotCi10ZXN0Q2FzZXMg
PQotICBbIHtjb250ZXh0QWxwaGE6IHRydWUsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JB
LAotICAgICBzdWJJbWFnZTogZmFsc2UsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9S
fSwKLSAgICB7Y29udGV4dEFscGhhOiBmYWxzZSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJH
QkEsCi0gICAgIHN1YkltYWdlOiBmYWxzZSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJ
RF9PUEVSQVRJT059LAotICAgIHtjb250ZXh0QWxwaGE6IHRydWUsCi0gICAgIGludGVybmFsRm9y
bWF0OiBnbC5SR0JBLAotICAgICBzdWJJbWFnZTogdHJ1ZSwKLSAgICAgZXhwZWN0ZWRFcnJvcjog
Z2wuTk9fRVJST1J9LAotICAgIHtjb250ZXh0QWxwaGE6IGZhbHNlLAotICAgICBpbnRlcm5hbEZv
cm1hdDogZ2wuUkdCQSwKLSAgICAgc3ViSW1hZ2U6IHRydWUsCi0gICAgIGV4cGVjdGVkRXJyb3I6
IGdsLklOVkFMSURfT1BFUkFUSU9OfSBdOwotCi1mb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENh
c2VzLmxlbmd0aDsgKytpaSkKLSAgICB0ZXN0Q29weUZyb21JbnRlcm5hbEZCTyh0ZXN0Q2FzZXNb
aWldKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
c3ViLWltYWdlLTJkLWJhZC1hcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmEwZGFkNjU0MjhmMTM0MmZiZjI5M2YxODg1ZmQwZDQwM2E2MmU2Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1zdWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkz
ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy
ZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlh
bHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1
ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp
ZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8g
d2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoq
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4g
YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioK
LSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ
TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJ0ZXN0YmVkIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYi
PjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCdUZXN0cyB0ZXhTdWJJbWFn
ZTJEIHdpdGggYmFkIGFyZ3VtZW50cycpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12
YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIik7Ci0KLXZhciBnbCA9IHd0dS5jcmVh
dGUzRENvbnRleHQoInRlc3RiZWQiKTsKLXZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci1n
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTZXR1cCBzaG91bGQgc3VjY2VlZCIpOyAKLQot
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAxLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInkg
KyBoZWlnaHQgPiB0ZXh0dXJlIGhlaWdodCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInggKyB3aWR0aCA+IHRleHR1cmUgd2lkdGgiKTsK
LWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgLTEsIDAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAi
bmVnYXRpdmUgeCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAtMSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklO
VkFMSURfVkFMVUUsICJuZWdhdGl2ZSB5Iik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIC0xLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5lZ2F0aXZlIGxldmVsIik7Ci1nbC50ZXhTdWJJ
bWFnZTJEKGdsLkZMT0FULCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwot
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0VOVU0sICJiYWQgdGFyZ2V0Iik7Ci1nbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImdvb2QgYXJncyIp
OwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5T
SUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9O
LCAiZm9ybWF0IG5vdCBzYW1lIGFzIG9yaWdpbmFsIik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgYyk7
Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAidHlwZSBub3Qgc2Ft
ZSBhcyBvcmlnaW5hbCIpOwotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0Is
IGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLCAibWFrZSB0ZXh0dXJlIFJHQiIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiZm9ybWF0IHNhbWUgYXMgb3JpZ2luYWwgUkdCIik7Ci1nbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZm9y
bWF0IG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQiIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCAwLDAsIGdsLlJHQiwgZ2wuVU5TSUdORURfU0hPUlRfNV82XzUsIGMpOwotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInR5cGUgbm90IHNhbWUgYXMg
b3JpZ2luYWwgUkdCIik7Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGMpOwotZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgIm1ha2UgdGV4dHVyZSBSR0JBIDRfNF80XzQiKTsKLWdsLnRleFN1
YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9TSE9S
VF80XzRfNF80LCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJmb3JtYXQg
c2FtZSBhcyBvcmlnaW5hbCBSR0JBIDRfNF80XzQiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvcm1hdCBub3Qgc2FtZSBhcyBvcmln
aW5hbCBSR0JBIDRfNF80XzQiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
MCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9PUEVSQVRJT04sICJ0eXBlIG5vdCBzYW1lIGFzIG9yaWdpbmFsIFJHQkEgNF80
XzRfNCIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
c3ViLWltYWdlLTJkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1h
Z2UtMmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTFjZjA5NmE1M2E3ZGI1
OWExZWQzM2VlZWM1OTY3OTliZmU0MWQ0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1zdWItaW1hZ2Ut
MmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotdW5pZm9y
bSBzYW1wbGVyMkQgdGV4OwotdmFyeWluZyB2ZWMyIHRleENvb3JkOwotCi12b2lkIG1haW4oKQot
ewotICAgIGZsb2F0IGludGVuc2l0eSA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKS5hOwotICAg
IGdsX0ZyYWdDb2xvciA9IHZlYzQoaW50ZW5zaXR5LCBpbnRlbnNpdHksIGludGVuc2l0eSwgMS4w
KTsKLX0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSIyNTYiIGhlaWdodD0iMSI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7
Ci1kZXNjcmlwdGlvbignVGVzdHMgdGV4U3ViSW1hZ2UyRCB1cGxvYWQgcGF0aCBmcm9tIFVpbnQ4
QXJyYXknKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGNhbnZhcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250
ZXh0KGNhbnZhcyk7Ci1nbC5kaXNhYmxlKGdsLkRJVEhFUik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5z
ZXR1cFByb2dyYW0oCi0gICAgZ2wsCi0gICAgW3d0dS5zZXR1cFNpbXBsZVRleHR1cmVWZXJ0ZXhT
aGFkZXIoZ2wpLCAiZnNoYWRlciJdLAotICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddKTsK
LXd0dS5zZXR1cFVuaXRRdWFkKGdsKTsKLXZhciB0ZXh0dXJlV2lkdGggPSAyNTY7Ci12YXIgdGV4
dHVyZUhlaWdodCA9IDE7Ci0KLXZhciB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9u
KHByb2dyYW0sICJ0ZXgiKTsKLQotdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci1n
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLWdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBf
VE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlO
X0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0vLyBBbGxvY2F0ZSB0aGUgdGV4dHVy
ZSBvYmplY3QKLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuQUxQSEEsIHRleHR1
cmVXaWR0aCwgdGV4dHVyZUhlaWdodCwgMCwgZ2wuQUxQSEEsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOwotLy8gUHJlcGFyZSB0aGUgaW1hZ2UgZGF0YQotdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJy
YXkodGV4dHVyZVdpZHRoKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgdGV4dHVyZVdpZHRoOyBpKysp
Ci0gICAgYXJyYXlbaV0gPSBpOwotLy8gRmlsbCB0aGUgdGV4dHVyZSBvYmplY3Qgd2l0aCBkYXRh
IC0tIHRoaXMgaXMgYWN0dWFsbHkgdGhlIGNvZGUgcGF0aCBiZWluZyB0ZXN0ZWQKLWdsLnRleFN1
YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgdGV4dHVyZVdpZHRoLCB0ZXh0dXJlSGVp
Z2h0LCBnbC5BTFBIQSwgZ2wuVU5TSUdORURfQllURSwgYXJyYXkpOwotCi0vLyBDbGVhciBhbmQg
c2V0IHVwCi1nbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJ
VCk7Ci1nbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLWdsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0vLyBEcmF3IHRoZSB0
ZXh0dXJlIHRvIHRoZSBmcmFtZSBidWZmZXIKLWdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAw
LCA2KTsKLQotLy8gUmVhZCBiYWNrIHRoZSBmcmFtZSBidWZmZXIKLXZhciBidWYgPSBuZXcgVWlu
dDhBcnJheSh0ZXh0dXJlV2lkdGggKiB0ZXh0dXJlSGVpZ2h0ICogNCk7Ci1nbC5yZWFkUGl4ZWxz
KDAsIDAsIHRleHR1cmVXaWR0aCwgdGV4dHVyZUhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgYnVmKTsKLQotLy8gVmVyaWZ5IHRoZSBmcmFtZSBidWZmZXIncyBjb250ZW50cwotdmFy
IHBhc3NlZCA9IHRydWU7Ci1mb3IgKHZhciBpID0gMDsgaSA8IHRleHR1cmVXaWR0aDsgaSsrKSB7
Ci0gICAgdmFyIHZhbCA9IGk7Ci0gICAgaWYgKGJ1Zls0ICogaSArIDBdICE9IHZhbCB8fAotICAg
ICAgICBidWZbNCAqIGkgKyAxXSAhPSB2YWwgfHwKLSAgICAgICAgYnVmWzQgKiBpICsgMl0gIT0g
dmFsKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoInBpeGVsIGF0ICgiICsgaSArICIsIDApIHdhcyAo
IiArCi0gICAgICAgICAgICAgICAgICAgYnVmWzQgKiBpICsgMF0gKyAiLCAiICsKLSAgICAgICAg
ICAgICAgICAgICBidWZbNCAqIGkgKyAxXSArICIsICIgKwotICAgICAgICAgICAgICAgICAgIGJ1
Zls0ICogaSArIDJdICsgIiksIHNob3VsZCBiZSAoIiArCi0gICAgICAgICAgICAgICAgICAgdmFs
ICsgIiwgIiArIHZhbCArICIsICIgKyB2YWwgKyAiKSIpOwotICAgICAgICBwYXNzZWQgPSBmYWxz
ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1pZiAocGFzc2VkKQotICAgIHRlc3RQYXNz
ZWQoIiIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhw
YXJhbWV0ZXItdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXhwYXJhbWV0
ZXItdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWM0NDUyMzMyYmVh
YjNjNjA5MzY3NjU3ODI1ZjY5ODIyODA1N2FmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4cGFyYW1ldGVy
LXRlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwNiArMCwwIEBACi08IS0tCi0KLS8qCi0q
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gIDxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5XZWJHTCBUZXhQYXJhbWV0
ZXIgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+
PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjYW52YXMyZCIgd2lkdGg9IjIiIGhlaWdodD0iMiI+PC9j
YW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLXVu
aWZvcm0gbWF0NCB3b3JsZDsKLWF0dHJpYnV0ZSB2ZWMzIHZQb3NpdGlvbjsKLWF0dHJpYnV0ZSB2
ZWMyIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0g
IGdsX1Bvc2l0aW9uID0gd29ybGQgKiB2ZWM0KHZQb3NpdGlvbiwgMSk7Ci0gIHRleENvb3JkID0g
dGV4Q29vcmQwOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLXVuaWZvcm0g
c2FtcGxlcjJEIHRleDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0g
IGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKTsKLX0KLTwvc2NyaXB0Pgot
Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gaW5pdCgpCi17Ci0gIGRlc2NyaXB0
aW9uKCJUZXN0cyBUZXhQYXJhbWV0ZXIgd29ya3MgYXMgZXhwZWN0ZWQiKTsKLSAgZGVidWcoIiIp
OwotCi0gIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIp
OwotICB2YXIgY3R4MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotCi0gIHZhciB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBs
ZSIpOwotICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlciIsICJm
c2hhZGVyIl0sIFsidlBvc2l0aW9uIiwgInRleENvb3JkMCJdKTsKLQotICB2YXIgdmVydGV4T2Jq
ZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVS
LCB2ZXJ0ZXhPYmplY3QpOwotICBnbC5idWZmZXJEYXRhKAotICAgICAgZ2wuQVJSQVlfQlVGRkVS
LAotICAgICAgbmV3IEZsb2F0MzJBcnJheShbLTEsIDEsMCwgMSwxLDAsIC0xLC0xLDAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAtMSwtMSwwLCAxLDEsMCwgIDEsLTEsMF0pLAotICAgICAg
Z2wuU1RBVElDX0RSQVcpOwotICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKLSAgZ2wu
dmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotCi0gIHZh
ciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5B
UlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7Ci0gIGdsLmJ1ZmZlckRhdGEoCi0gICAgICBnbC5B
UlJBWV9CVUZGRVIsCi0gICAgICBuZXcgRmxvYXQzMkFycmF5KFsgLTIuNSwtMi41LCAzLjUsLTIu
NSwgLTIuNSwzLjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLTIuNSwzLjUsIDMuNSwt
Mi41LCAzLjUsMy41XSksCi0gICAgICBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KDEpOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7Ci0KLSAgdmFyIGNvbG9ycyA9IFsKLSAgICAgIFswLDI1NSwxMjgsMjU1
XSwKLSAgICAgIFsxMjgsNjQsMjU1LDI1NV0sCi0gICAgICBbMTkyLDI1NSw2NCwyNTVdLAotICAg
ICAgWzIwMCwwLDI1NSwyNTVdXTsKLSAgdmFyIHRleFBhcmFtID0gWwotICAgIGdsLlJFUEVBVCwK
LSAgICBnbC5DTEFNUF9UT19FREdFLAotICAgIGdsLk1JUlJPUkVEX1JFUEVBVCwKLSAgICBnbC5S
RVBFQVRdOwotCi0gIC8vIE1ha2UgdGV4dHVyZXMgc2V0dGluZyB0aGUgdGV4dHVyZSBwYXJhbWV0
ZXJzIGRpZmZlcmVudGx5IGVhY2ggdGltZS4uCi0gIC8vIFRoaXMgdmVyaWZpZXMgYm90aCB0aGF0
IHRoZSByZW5kZXIgY29ycmVjdCBBTkQgdGhhdCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgLy8gYXJl
IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGV4dHVyZXMsIG5vdCB3aXRoIHRoZSB0ZXh0dXJlLXVuaXRz
LgotICB2YXIgdGV4dHVyZXMgPSBbXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5s
ZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgYyA9IGNvbG9yc1tpaV07Ci0gICAgY3R4MmQuZmlsbFN0
eWxlID0KLSAgICAgICAgInJnYmEoIiArIGNbMF0gKyAiLCIgKyBjWzFdICsgIiwiICsgY1syXSAr
ICIsIiArIGNbM10gKyAiKSI7Ci0gICAgY3R4MmQuZmlsbFJlY3QoMCwgMCwgMSwgMSk7Ci0gICAg
dmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOwotICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsK
LSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRF
UiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX1dSQVBfUywgdGV4UGFyYW1baWldKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCB0ZXhQYXJhbVtpaV0pOwotICAgIHRleHR1cmVz
W2lpXSA9IHRleDsKLSAgfQotCi0gIHZhciB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgdmFyIHdvcmxkTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHByb2dyYW0sICJ3b3JsZCIpOwotCi0gIGdsLmNsZWFyQ29sb3IoMSwxLDEsMSk7Ci0gIGds
LmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciB4ID0g
aWkgJSAyOwotICAgIHZhciB5ID0gTWF0aC5mbG9vcihpaSAvIDIpOwotICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmVzW2lpXSk7Ci0gICAgZ2wudW5pZm9ybU1hdHJpeDRm
digKLSAgICAgICAgd29ybGRMb2MsIGZhbHNlLAotICAgICAgICBbMC41LCAwLCAwLCAwLAotICAg
ICAgICAgMCwgMC41LCAwLCAwLAotICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgIC0wLjUg
KyB4LCAtMC41ICsgeSwgMCwgMV0pOwotICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAw
LCA2KTsKLSAgfQotCi0gIHZhciBidWYgPSBuZXcgVWludDhBcnJheSgyNCAqIDI0ICogNCk7Ci0g
IGdsLnJlYWRQaXhlbHMoMCwgMCwgMjQsIDI0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBi
dWYpOwotICB2YXIgcGFzc2VkID0gdHJ1ZTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9y
cy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgeCA9IGlpICUgMjsKLSAgICB2YXIgeSA9IE1hdGgu
Zmxvb3IoaWkgLyAyKTsKLSAgICB2YXIgYyA9IGNvbG9yc1tpaV07Ci0gICAgZm9yICh2YXIgeXkg
PSAwOyB5eSA8IDEyOyArK3l5KSB7Ci0gICAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwgMTI7ICsr
eHgpIHsKLSAgICAgICAgdmFyIGVjID0gWzAsMCwwLDBdOwotICAgICAgICBzd2l0Y2ggKHRleFBh
cmFtW2lpXSkgewotICAgICAgICAgIGNhc2UgZ2wuUkVQRUFUOgotICAgICAgICAgICAgaWYgKHh4
ICUgMiA9PSAxICYmIHl5ICUgMiA9PSAwKSB7Ci0gICAgICAgICAgICAgIGVjID0gYzsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgZ2wuQ0xBTVBfVE9f
RURHRToKLSAgICAgICAgICAgIGlmICh4eCA8IDYgJiYgeXkgPj0gNikgewotICAgICAgICAgICAg
ICBlYyA9IGM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBj
YXNlIGdsLk1JUlJPUkVEX1JFUEVBVDoKLSAgICAgICAgICAgIGlmICh4eCAlIDQgPCAyICYmIHl5
ICUgNCA+PSAyKSB7Ci0gICAgICAgICAgICAgIGVjID0gYzsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIHZhciBvZmYgPSAoKHkgKiAxMiArIHl5
KSAqIDI0ICsgeCAqIDEyICsgeHgpICogNDsKLSAgICAgICAgaWYgKGJ1ZltvZmYgKyAwXSAhPSBl
Y1swXSB8fAotICAgICAgICAgICAgYnVmW29mZiArIDFdICE9IGVjWzFdIHx8Ci0gICAgICAgICAg
ICBidWZbb2ZmICsgMl0gIT0gZWNbMl0gfHwKLSAgICAgICAgICAgIGJ1ZltvZmYgKyAzXSAhPSBl
Y1szXSkgewotICAgICAgICAgIHZhciBtc2cgPSAnYXQgKCcgKyAoeCAqIDEyICsgeHgpICsgJywg
JyArICh5ICogMTIgKyB5eSkgKwotICAgICAgICAgICAgICAnKSBleHBlY3RlZDogJyArCi0gICAg
ICAgICAgICAgIGVjWzBdICsgJywgJyArIGVjWzFdICsgJywgJyArIGVjWzJdICsgJywgJyArIGVj
WzNdICsgJyBmb3VuZDogJyArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAwXSArICcsICcgKwot
ICAgICAgICAgICAgICBidWZbb2ZmICsgMV0gKyAnLCAnICsKLSAgICAgICAgICAgICAgYnVmW29m
ZiArIDJdICsgJywgJyArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAzXTsKLSAgICAgICAgICB0
ZXN0RmFpbGVkKG1zZyk7Ci0gICAgICAgICAgcGFzc2VkID0gZmFsc2U7Ci0gICAgICAgIH0KLSAg
ICAgIH0KLSAgICB9Ci0gIH0KLSAgaWYgKHBhc3NlZCkgewotICAgIHRlc3RQYXNzZWQoInJlbmRl
cmVkIGFzIGV4cGVjdGVkIik7Ci0gICB9Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLTIuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5OTYyMjE1YzhhYzI1ZjRiNjgzYWE4NzRmM2Rk
MTcxYzY3M2RhMDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLTIuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDE5MiArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5XZWJHTCBBY3RpdmVUZXh0dXJlIEJpbmRUZXh0
dXJlIGNvbmZvcm1hbmNlIHRlc3QgIzI8L3RpdGxlPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi
IHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08Y2FudmFzIGlk
PSJjYW52YXMyZCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWln
aHQ6IDQwcHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgotdW5pZm9ybSBtYXQ0IHdvcmxkOwotYXR0cmlidXRlIHZlYzMgdlBvc2l0aW9u
OwotYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQwOwotdmFyeWluZyB2ZWMyIHRleENvb3JkOwotdm9p
ZCBtYWluKCkKLXsKLSAgZ2xfUG9zaXRpb24gPSB3b3JsZCAqIHZlYzQodlBvc2l0aW9uLCAxKTsK
LSAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZzaGFk
ZXIyZCIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgdGV4MmQ7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12
b2lkIG1haW4oKQotewotICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4MmQsIHRleENvb3Jk
KTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iZnNoYWRlckN1YmUiIHR5cGU9Ingtc2hhZGVy
L3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLXVuaWZvcm0gc2FtcGxl
ckN1YmUgdGV4Q3ViZTsKLXZvaWQgbWFpbigpCi17Ci0gIGdsX0ZyYWdDb2xvciA9IHRleHR1cmVD
dWJlKHRleEN1YmUsIHZlYzMoMCwxLDApKTsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotZnVuY3Rpb24gaW5pdCgpCi17Ci0gIGRlc2NyaXB0aW9uKAotICAgICAgIlRl
c3RzIHRoYXQgYmluZGluZyBib3RoIFRFWFRVUkVfMkQgYW5kIFRFWFRVUkVfQ1VCRV9NQVAgdG8g
dGhlIHNhbWUiICsKLSAgICAgICJhY3RpdmUgdGV4dHVyZSB1bml0IHdvcmtzIGFzIGxvbmcgYXMg
dGhleSBhcmUgbm90IHVzZWQiICsKLSAgICAgICJzaW11bHRhbmVvdXNseSBpbiB0aGUgc2FtZSBz
aGFkZXIgcHJvZ3JhbS4iKTsKLQotICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY2FudmFzMmQiKTsKLSAgdmFyIGN0eDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQi
KTsKLSAgY3R4MmQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gImNvcHkiOwotCi0gIHZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhh
bXBsZSIpOwotICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCi0gICAgICBnbCwgWyJ2
c2hhZGVyIiwgImZzaGFkZXIyZCJdLCBbInZQb3NpdGlvbiIsICJ0ZXhDb29yZDAiXSk7Ci0KLSAg
dmFyIHByb2dyYW0yZCA9IHByb2dyYW07Ci0gIHZhciBwcm9ncmFtQ3ViZSA9IHd0dS5zZXR1cFBy
b2dyYW0oCi0gICAgICBnbCwgWyJ2c2hhZGVyIiwgImZzaGFkZXJDdWJlIl0sIFsidlBvc2l0aW9u
IiwgInRleENvb3JkMCJdKTsKLQotICB2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVy
KCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOwotICBn
bC5idWZmZXJEYXRhKAotICAgICAgZ2wuQVJSQVlfQlVGRkVSLAotICAgICAgbmV3IEZsb2F0MzJB
cnJheShbLTEsIDEsMCwgMSwxLDAsIC0xLC0xLDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAt
MSwtMSwwLCAxLDEsMCwgIDEsLTEsMF0pLAotICAgICAgZ2wuU1RBVElDX0RSQVcpOwotICBnbC5l
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKLSAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAz
LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotCi0gIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVj
dCk7Ci0gIGdsLmJ1ZmZlckRhdGEoCi0gICAgICBnbC5BUlJBWV9CVUZGRVIsCi0gICAgICBuZXcg
RmxvYXQzMkFycmF5KFsgMCwwLCAxLDAsIDAsMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAw
LDEsIDEsMCwgMSwxXSksCi0gICAgICBnbC5TVEFUSUNfRFJBVyk7Ci0gIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KDEpOwotICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7Ci0KLSAgLy8gTWFrZSB0ZXh0dXJlIHVuaXQgMSBhY3RpdmUuCi0gIGds
LmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTEpOwotCi0gIC8vIE1ha2UgYSAyZCB0ZXh0dXJlCi0g
IHZhciB0ZXgyZCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4MmQpOwotICBjdHgyZC5maWxsU3R5bGUgPSAicmdiYSgwLCAwLCAyNTUsIDI1
NSkiOwotICBjdHgyZC5maWxsUmVjdCgwLCAwLCAxLCAxKTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMy
ZCk7Ci0KLSAgLy8gbWFrZSBhIGN1YmUgdGV4dHVyZQotICB2YXIgdGV4Q3ViZSA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3Vi
ZSk7Ci0gIGN0eDJkLmZpbGxTdHlsZSA9ICJyZ2JhKDI1NSwgMCwgMjU1LCAyNTUpIjsKLSAgY3R4
MmQuZmlsbFJlY3QoMCwgMCwgMSwgMSk7Ci0gIHZhciB0YXJnZXRzID0gWwotICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1os
Ci0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aXTsKLSAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IHRhcmdldHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgZ2wudGV4SW1hZ2UyRCh0YXJnZXRz
W2lpXSwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOwot
ICB9Ci0KLSAgLy8gU2V0dXAgcHJvZ3JhbTJkIGFuZCBwcm9ncmFtQ3ViZQotICB2YXIgdGV4MmRM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbTJkLCAidGV4MmQiKTsKLSAgdmFyIHdv
cmxkMmRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbTJkLCAid29ybGQiKTsKLSAg
dmFyIHRleEN1YmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbUN1YmUsICJ0ZXhD
dWJlIik7Ci0gIHZhciB3b3JsZEN1YmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3Jh
bUN1YmUsICJ3b3JsZCIpOwotCi0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbTJkKTsKLSAgZ2wudW5p
Zm9ybTFpKHRleDJkTG9jLCAxKTsKLSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtQ3ViZSk7Ci0gIGds
LnVuaWZvcm0xaSh0ZXhDdWJlTG9jLCAxKTsKLQotICBnbC5jbGVhckNvbG9yKDEsMCwwLDEpOwot
ICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0K
LSAgdmFyIHByb2dyYW1zID0gW3Byb2dyYW0yZCwgcHJvZ3JhbUN1YmVdOwotICB2YXIgd29ybGRM
b2NzID0gW3dvcmxkMmRMb2MsIHdvcmxkQ3ViZUxvY107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkg
PCA0OyArK2lpKSB7Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBNYXRoLmZsb29y
KGlpIC8gMik7Ci0gICAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtc1t4XSk7Ci0gICAgZ2wudW5pZm9y
bU1hdHJpeDRmdigKLSAgICAgICAgd29ybGRMb2NzW3hdLCBmYWxzZSwKLSAgICAgICAgWzAuNSwg
MCwgMCwgMCwKLSAgICAgICAgIDAsIDAuNSwgMCwgMCwKLSAgICAgICAgIDAsIDAsIDEsIDAsCi0g
ICAgICAgICAtMC41ICsgeCwgLTAuNSArIHksIDAsIDFdKTsKLSAgICBnbC5kcmF3QXJyYXlzKGds
LlRSSUFOR0xFUywgMCwgNik7Ci0gIH0KLQotICB2YXIgY29sb3JzID0gWwotICAgICAgWzAsMCwy
NTUsMjU1XSwKLSAgICAgIFsyNTUsMCwyNTUsMjU1XSwKLSAgICAgIFswLDAsMjU1LDI1NV0sCi0g
ICAgICBbMjU1LDAsMjU1LDI1NV1dOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMu
bGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIGMgPSBjb2xvcnNbaWldOwotICAgIHZhciB4ID0gaWkg
JSAyOwotICAgIHZhciB5ID0gTWF0aC5mbG9vcihpaSAvIDIpOwotICAgIHd0dS5jaGVja0NhbnZh
c1JlY3QoZ2wsIHgsIHksIDEsIDEsIGMpOwotICB9Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWI5YTc5MjE1NDg0YTViOWQwOGVjODJkYmRj
NWIxOTM2YjlmMjNjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBBY3RpdmVUZXh0dXJlIEJpbmRUZXh0dXJlIGNv
bmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBp
ZD0iZXhhbXBsZSIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWln
aHQ6IDQwcHg7Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZhczJkIiB3aWR0aD0iMSIgaGVp
Z2h0PSIxIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci11bmlmb3JtIG1hdDQg
d29ybGQ7Ci1hdHRyaWJ1dGUgdmVjMyB2UG9zaXRpb247Ci1hdHRyaWJ1dGUgdmVjMiB0ZXhDb29y
ZDA7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICBnbF9Qb3NpdGlv
biA9IHdvcmxkICogdmVjNCh2UG9zaXRpb24sIDEpOwotICB0ZXhDb29yZCA9IHRleENvb3JkMDsK
LX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciBnbDsKLQotZnVuY3Rp
b24gaW5pdCgpCi17Ci0gIGRlc2NyaXB0aW9uKAotICAgICAgIlRlc3RzIHRoYXQgZ2xBY3RpdmVU
ZXh0dXJlIGFuZCBnbEJpbmRUZXh0dXJlIHdvcmsgYXMgZXhwZWN0ZWQiICsKLSAgICAgICJTcGVj
aWZpY2FsbHkgdGV4dHVyZSB0YXJnZXRzIGFyZSBwZXIgYWN0aXZlIHRleHR1cmUgdW5pdC4iKTsK
LQotICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMmQiKTsK
LSAgdmFyIGN0eDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKLQotICB2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci0gIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwot
ICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCi0gICAgICBnbCwKLSAgICAgIFsidnNo
YWRlciIsIHd0dS5zZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcihnbCldLAotICAgICAg
Wyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10pOwotICB3dHUuc2V0dXBVbml0UXVhZChnbCk7Ci0g
IGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0gIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwotICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICB2YXIgY29sb3JzID0gWwotICAg
ICAgWzAsMTkyLDEyOCwyNTVdLAotICAgICAgWzEyOCw2NCwyNTUsMjU1XSwKLSAgICAgIFsxOTIs
MjU1LDY0LDI1NV0sCi0gICAgICBbMjAwLDAsMjU1LDI1NV1dOwotCi0gIC8vIE1ha2UgNCB0ZXh0
dXJlcyBieSB1c2luZyA0IGFjdGl2ZSB0ZXh0dXJlIHVuaXRzIGlmIGF2YWlsYWJsZS4KLSAgdmFy
IHRleHVuaXRzID0gTWF0aC5taW4oY29sb3JzLmxlbmd0aCwgZ2wuZ2V0UGFyYW1ldGVyKGdsLk1B
WF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTKSkKLSAgdmFyIHRleHR1cmVzID0gW107Ci0g
IGZvciAodmFyIGlpID0gMDsgaWkgPCB0ZXh1bml0czsgKytpaSkgewotICAgIHZhciB0ZXggPSBn
bC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCArIGlp
KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgIHRleHR1cmVz
W2lpXSA9IHRleDsKLSAgfQotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQot
ICAvLyBub3cgdXNlIGVhY2ggdGV4dHVyZSB1bml0IHRvIHdyaXRlIGludG8gdGhlIHRleHR1cmVz
LAotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGV4dW5pdHM7ICsraWkpIHsKLSAgICB2YXIgYyA9
IGNvbG9yc1tpaV07Ci0gICAgY3R4MmQuZmlsbFN0eWxlID0KLSAgICAgICAgInJnYmEoIiArIGNb
MF0gKyAiLCIgKyBjWzFdICsgIiwiICsgY1syXSArICIsIiArIGNbM10gKyAiKSI7Ci0gICAgY3R4
MmQuZmlsbFJlY3QoMCwgMCwgMSwgMSk7Ci0gICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJF
MCArIGlpKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgfQotICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICB2YXIgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0gIHZhciB3b3JsZExvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAid29ybGQiKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7Ci0KLSAgZ2wuY2xlYXJDb2xvcigxLDAsMCwxKTsKLSAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotCi0gIGZvciAodmFyIGlpID0gMDsg
aWkgPCB0ZXh1bml0czsgKytpaSkgewotICAgIHZhciB4ID0gaWkgJSAyOwotICAgIHZhciB5ID0g
TWF0aC5mbG9vcihpaSAvIDIpOwotICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCBpaSk7Ci0g
ICAgZ2wudW5pZm9ybU1hdHJpeDRmdigKLSAgICAgICAgd29ybGRMb2MsIGZhbHNlLAotICAgICAg
ICBbMC41LCAwLCAwLCAwLAotICAgICAgICAgMCwgMC41LCAwLCAwLAotICAgICAgICAgMCwgMCwg
MSwgMCwKLSAgICAgICAgIC0wLjUgKyB4LCAtMC41ICsgeSwgMCwgMV0pOwotICAgIGdsLmRyYXdB
cnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLSAgfQotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGV4dW5pdHM7ICsraWkpIHsK
LSAgICB2YXIgYyA9IGNvbG9yc1tpaV07Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkg
PSBNYXRoLmZsb29yKGlpIC8gMik7Ci0gICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDQpOwot
ICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
YnVmKTsKLSAgICB2YXIgbXNnID0gJ2V4cGVjdGVkOicgKwotICAgICAgICBjWzBdICsgJywgJyAr
IGNbMV0gKyAnLCAnICsgY1syXSArICcsICcgKyBjWzNdICsgJyBmb3VuZDogJyArCi0gICAgICAg
IGJ1ZlswXSArICcsICcgKwotICAgICAgICBidWZbMV0gKyAnLCAnICsKLSAgICAgICAgYnVmWzJd
ICsgJywgJyArCi0gICAgICAgIGJ1ZlszXTsKLSAgICBpZiAoYnVmWzBdICE9IGNbMF0gfHwKLSAg
ICAgICAgYnVmWzFdICE9IGNbMV0gfHwKLSAgICAgICAgYnVmWzJdICE9IGNbMl0gfHwKLSAgICAg
ICAgYnVmWzNdICE9IGNbM10pCi0gICAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0gICAgZWxzZQotICAg
ICAgdGVzdFBhc3NlZChtc2cpOwotICB9Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3Jt
YXRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhOWEyOGQzMjk3ZWQ2OGRl
MDRjZTgwZDA2MzA1NmEyY2MyOTc0NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1l
bnQtZm9ybWF0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTk5ICswLDAgQEAKLTwhLS0KLQot
LyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIFRleHR1cmUgQXR0
YWNobWVudCBGb3JtYXQgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgotPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+IDwvY2Fu
dmFzPgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCk7Ci0KLXZhciB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIp
OwotaWYgKCFnbCkgewotICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Ci19
IGVsc2UgewotICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOwotCi0gIGRlYnVnKCIiKTsK
LSAgZGVidWcoIkNoZWNraW5nIHRleHR1cmUgZm9ybWF0cy4iKTsKLQotICB2YXIgbnVtVmFsaWRG
b3JtYXRzID0gMDsKLSAgdmFyIGNsZWFyQ29sb3IgPSBbMC4yNSwgMC41LCAwLjc1LCAwLjI1XTsK
LQotICB2YXIgZmxvYXRUb0JpdHMgPSBmdW5jdGlvbih2YWx1ZSwgYml0cykgewotICAgIHZhciBy
YW5nZSA9ICgxIDw8IGJpdHMpIC0gMTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBpZiAocmFu
Z2UgPiAwKSB7Ci0gICAgICByZXN1bHQgPSBNYXRoLmZsb29yKE1hdGguZmxvb3IodmFsdWUgKiBy
YW5nZSkgKiAyNTUgLyByYW5nZSk7Ci0gICAgfQotCi0gICAgLy9kZWJ1ZygidiA9ICIgKyB2YWx1
ZSArICIsIGJpdHMgPSAiICsgYml0cyArICIsIHJhbmdlID0gIiArIHJhbmdlICArICIsIHJlc3Vs
dCA9ICIgKyByZXN1bHQpOwotICAgIHJldHVybiByZXN1bHQ7Ci0gIH0KLQotICB2YXIgdGVzdEZv
cm1hdCA9IGZ1bmN0aW9uKGluZm8pIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoInRlc3Rp
bmc6ICIgKyBpbmZvLmZvcm1hdCArICIsICIgKyBpbmZvLnR5cGUpOwotCi0gICAgdmFyIGZvcm1h
dCA9IGdsW2luZm8uZm9ybWF0XTsKLSAgICB2YXIgdHlwZSA9IGdsW2luZm8udHlwZV07Ci0KLSAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsCi0gICAgICAgICAgICAgICAgICAwLCAgICAg
ICAgICAgICAgICAgLy8gbGV2ZWwKLSAgICAgICAgICAgICAgICAgIGZvcm1hdCwgICAgICAgICAg
ICAvLyBpbnRlcm5hbEZvcm1hdAotICAgICAgICAgICAgICAgICAgMTYsICAgICAgICAgICAgICAg
IC8vIHdpZHRoCi0gICAgICAgICAgICAgICAgICAxNiwgICAgICAgICAgICAgICAgLy8gaGVpZ2h0
Ci0gICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgLy8gYm9yZGVyCi0gICAgICAg
ICAgICAgICAgICBmb3JtYXQsICAgICAgICAgICAgLy8gZm9ybWF0Ci0gICAgICAgICAgICAgICAg
ICB0eXBlLCAgICAgICAgICAgICAgLy8gdHlwZQotICAgICAgICAgICAgICAgICAgbnVsbCk7ICAg
ICAgICAgICAgIC8vIGRhdGEKLSAgICB2YXIgZmJTdGF0dXMgPSBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICBkZWJ1Zyh3dHUuZ2xFbnVtVG9TdHJpbmcoZ2ws
IGZiU3RhdHVzKSk7Ci0gICAgaWYgKGZiU3RhdHVzICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRF
KSB7Ci0gICAgICBkZWJ1ZygiZm9ybWF0IHVuc3VwcG9ydGVkIik7Ci0gICAgICBpZiAoaW5mby5t
dXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoaW5mby5mb3Jt
YXQgKyAiIG11c3QgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUiKTsKLSAgICAgIH0KLSAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICArK251bVZhbGlkRm9ybWF0czsKLQotICAgIHZhciBzdGFydEV4
cGVjdGVkID0gWzAsIDAsIDAsIGluZm8uY2hhbm5lbHNbM10gPCAwID8gMjU1IDogMF07Ci0KLSAg
ICB2YXIgZXhwZWN0ZWQgPSBbXTsKLSAgICB2YXIgdG9sZXJhbmNlID0gW107Ci0gICAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IDQ7ICsraWkpIHsKLSAgICAgIHZhciBjb2xvciA9IDA7Ci0gICAgICB2
YXIgY2hhbm5lbCA9IGluZm8uY2hhbm5lbHNbaWldOwotICAgICAgaWYgKGNoYW5uZWwgPCAwKSB7
Ci0gICAgICAgIGNvbG9yID0gaWkgPCAzID8gMCA6IDI1NQotICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgY29sb3IgPSBmbG9hdFRvQml0cyhjbGVhckNvbG9yW2NoYW5uZWxdLCBpbmZvLmJpdHNbaWld
KTsKLSAgICAgIH0KLSAgICAgIGV4cGVjdGVkLnB1c2goY29sb3IpOwotICAgICAgdG9sZXJhbmNl
LnB1c2goY2hhbm5lbCA8IDAgPyAwIDogKDEgKyAoMSA8PCAoOCAtIGluZm8uYml0c1tpaV0pKSkp
OwotICAgIH0KLQotICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgc3RhcnRFeHBlY3RlZCwgInNob3Vs
ZCBiZSAiICsgc3RhcnRFeHBlY3RlZCk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCk7Ci0gICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBleHBlY3RlZCwgInNob3VsZCBiZSAiICsgZXhw
ZWN0ZWQgKyAiIHdpdGggdG9sZXJhbmNlICIgKyB0b2xlcmFuY2UsIHRvbGVyYW5jZSk7Ci0gIH0K
LQotICB2YXIgdmFsaWRGb3JtYXRzID0gWwotICAgIHsgZm9ybWF0OiAnUkdCQScsCi0gICAgICB0
eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAgY2hhbm5lbHM6IFswLCAxLCAyLCAzXSwKLSAg
ICAgIGJpdHM6IFs4LCA4LCA4LCA4XSwKLSAgICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6
IHRydWUKLSAgICB9LAotICAgIHsgZm9ybWF0OiAnQUxQSEEnLAotICAgICAgdHlwZTogICdVTlNJ
R05FRF9CWVRFJywKLSAgICAgIGNoYW5uZWxzOiBbLTEsIC0xLCAtMSwgM10sCi0gICAgICBiaXRz
OiBbMCwgMCwgMCwgOF0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQot
ICAgIH0sCi0gICAgeyBmb3JtYXQ6ICdSR0InLAotICAgICAgdHlwZTogICdVTlNJR05FRF9CWVRF
JywKLSAgICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgLTFdLAotICAgICAgYml0czogWzgsIDgsIDgs
IDBdLAotICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKLSAgICB9LAotICAg
IHsgZm9ybWF0OiAnUkdCJywKLSAgICAgIHR5cGU6ICAnVU5TSUdORURfU0hPUlRfNV82XzUnLAot
ICAgICAgY2hhbm5lbHM6IFswLCAxLCAyLCAtMV0sCi0gICAgICBiaXRzOiBbNSwgNiwgNSwgMF0s
Ci0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQotICAgIH0sCi0gICAgeyBm
b3JtYXQ6ICdSR0JBJywKLSAgICAgIHR5cGU6ICAnVU5TSUdORURfU0hPUlRfNV81XzVfMScsCi0g
ICAgICBjaGFubmVsczogWzAsIDEsIDIsIDNdLAotICAgICAgYml0czogWzUsIDUsIDUsIDFdLAot
ICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKLSAgICB9LAotICAgIHsgZm9y
bWF0OiAnUkdCQScsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzQnLAotICAg
ICAgY2hhbm5lbHM6IFswLCAxLCAyLCAzXSwKLSAgICAgIGJpdHM6IFs0LCA0LCA0LCA0XSwKLSAg
ICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1h
dDogJ0xVTUlOQU5DRScsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAgY2hh
bm5lbHM6IFswLCAwLCAwLCAtMV0sCi0gICAgICBiaXRzOiBbOCwgOCwgOCwgLTFdLAotICAgICAg
bXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKLSAgICB9LAotICAgIHsgZm9ybWF0OiAn
TFVNSU5BTkNFX0FMUEhBJywKLSAgICAgIHR5cGU6ICAnVU5TSUdORURfQllURScsCi0gICAgICBj
aGFubmVsczogWzAsIDAsIDAsIDNdLAotICAgICAgYml0czogWzgsIDgsIDgsIDhdLAotICAgICAg
bXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKLSAgICB9Ci0gIF07Ci0KLSAgZ2wuY2xl
YXJDb2xvcihjbGVhckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVh
ckNvbG9yWzNdKTsKLSAgdmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gIGdsLmJp
bmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9X
UkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGds
LmZyYW1lYnVmZmVyVGV4dHVyZTJEKAotICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOwotCi0gIGZvciAodmFyIGlpID0gMDsg
aWkgPCB2YWxpZEZvcm1hdHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIGluZm8gPSB2YWxpZEZv
cm1hdHNbaWldOwotICAgIHRlc3RGb3JtYXQoaW5mbyk7Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0g
IHNob3VsZEJlVHJ1ZSgibnVtVmFsaWRGb3JtYXRzID4gMCIpOwotICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLCAidGhlcmUgc2hvdWxkIGJlIG5vIGVycm9ycyIpOwotfQotCi1kZWJ1
ZygiIik7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFy
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjNzY3OWZkNzAwOWYyYjU3N2Nh
NDVmMDc3MGQ2MjI0NTcwYWI3MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCB0ZXh0dXJlIGNsZWFyIGNvbmZvcm1hbmNlIHRl
c3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiAzMHB4OyI+
PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbihkb2N1bWVudC50
aXRsZSk7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KCJleGFtcGxlIik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChn
bCk7Ci0KLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJy
b3JzIGZyb20gc2V0dXAuIik7Ci0KLXZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci1nbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxs
KTsKLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMSwgMSwgMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoWzAsMjU1LDAsMjU1XSkpOwot
d3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwg
WzAsIDI1NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIpOwotZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLXZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY29tcGxldGUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIyY2Y0ZWQ5YzVhOGY0NzU4ZGU0YWQ1NGQ4
MGRhYzY2N2ViNDZkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtY29tcGxldGUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPldlYkdMICJUZXh0dXJlIENvbXBsZXRlIiB0ZXh0dXJlIGNvbmZv
cm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0i
ZXhhbXBsZSIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdo
dDogNDBweDsiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdpZHRoPSIxNiIgaGVp
Z2h0PSIxNiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNj
cmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGluaXQoKQotewotICBkZXNjcmlwdGlvbigK
LSAgICAgICJDaGVja3MgdGhhdCBhIHRleHR1cmUgdGhhdCBpcyBub3QgLXRleHR1cmUtY29tcGxl
dGUtIGRvZXMgbm90IGRyYXcgaWYiKwotICAgICAgIiBmaWx0ZXJpbmcgbmVlZHMgbWlwcyIpOwot
Ci0gIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMyZCIpOwot
ICB2YXIgY3R4MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwotICBjdHgyZC5maWxsU3R5
bGUgPSAicmdiYSgwLDE5MiwxMjgsMSkiOwotICBjdHgyZC5maWxsUmVjdCgwLCAwLCAxNiwgMTYp
OwotCi0gIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoY2FudmFzKTsKLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwot
Ci0gIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0gIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwot
Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleCk7Ci0gIC8vIDE2eDE2IHRleHR1cmUgbm8gbWlwcwotICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGNhbnZhczJkKTsKLQotICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0s
ICJ0ZXgiKTsKLSAgZ2wudW5pZm9ybTFpKGxvYywgMCk7Ci0KLSAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwwLDAsMjU1XSwKLSAgICAgICJ0
ZXh0dXJlIHRoYXQgaXMgbm90IC10ZXh0dXJlLWNvbXBsZXRlLSB3aGVuICIgKwotICAgICAgIlRF
WFRVUkVfTUlOX0ZJTFRFUiBub3QgTkVBUkVTVCBvciBMSU5FQVIgc2hvdWxkIGRyYXcgd2l0aCAw
LDAsMCwyNTUiKTsKLX0KLQotaW5pdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1mb3JtYXRzLXRlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1mb3JtYXRzLXRlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODI0N2ZhNTA5NTg1OTRkZTUyYTNjMzI2OTRmOWEwMmRhZjM0NGQ3My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyOTEgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
Ci0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgot
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+V2ViR0wgVGV4dHVyZSBGb3JtYXQgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFu
dHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxjYW52
YXMgaWQ9ImNhbnZhczJkIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lkdGg6IDUwcHg7
IGhlaWdodDogNTBweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij48L2NhbnZhcz4KLTxjYW52
YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiAxMDBweDsg
aGVpZ2h0OjEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPiA8L2NhbnZhcz4KLTxzY3Jp
cHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wg
aW1wbGVtZW50YXRpb25zIGFsbG93IHRoZSBPcGVuR0wgRVMgMi4wIHRleHR1cmUgZm9ybWF0cyBh
bmQgZG8gbm90IGFsbG93IERlc2t0b3BHTCB0ZXh0dXJlIGZvcm1hdHMuIik7Ci0KLWRlYnVnKCIi
KTsKLWRlYnVnKCJDYW52YXMuZ2V0Q29udGV4dCIpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMiKTsKLWlmICghZ2wpIHsK
LSAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwotfSBlbHNlIHsKLSAgdGVz
dFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJDaGVj
a2luZyB0ZXh0dXJlIGZvcm1hdHMuIik7Ci0KLSAgdmFyIGNyZWF0ZVRleHR1cmUgPSBmdW5jdGlv
bihpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCBvcHRfYm9yZGVyKSB7Ci0gICAgICB2YXIgYm9yZGVy
ID0gKG9wdF9ib3JkZXIgPT09IHVuZGVmaW5lZCkgPyAwIDogb3B0X2JvcmRlcjsKLSAgICAgIHZh
ciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOwotICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELAotICAgICAg
ICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgLy8gbGV2ZWwKLSAgICAgICAgICAgICAg
ICAgICAgaW50ZXJuYWxGb3JtYXQsICAgIC8vIGludGVybmFsRm9ybWF0Ci0gICAgICAgICAgICAg
ICAgICAgIDE2LCAgICAgICAgICAgICAgICAvLyB3aWR0aAotICAgICAgICAgICAgICAgICAgICAx
NiwgICAgICAgICAgICAgICAgLy8gaGVpZ2h0Ci0gICAgICAgICAgICAgICAgICAgIGJvcmRlciwg
ICAgICAgICAgICAvLyBib3JkZXIKLSAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCAgICAgICAg
ICAgIC8vIGZvcm1hdAotICAgICAgICAgICAgICAgICAgICBnbC5VTlNJR05FRF9CWVRFLCAgLy8g
dHlwZQotICAgICAgICAgICAgICAgICAgICBudWxsKTsgICAgICAgICAgICAgLy8gZGF0YQotICB9
Ci0KLSAgdmFyIHRlc3RWYWxpZEZvcm1hdCA9IGZ1bmN0aW9uKGludGVybmFsRm9ybWF0LCBmb3Jt
YXROYW1lKSB7Ci0gICAgICBjcmVhdGVUZXh0dXJlKGludGVybmFsRm9ybWF0LCBpbnRlcm5hbEZv
cm1hdCk7Ci0gICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICAgICAg
ICAgICAgICJ3YXMgYWJsZSB0byBjcmVhdGUgdGV4dHVyZSBvZiAiICsgZm9ybWF0TmFtZSk7Ci0g
IH0KLQotICB2YXIgdGVzdEludmFsaWRGb3JtYXQgPSBmdW5jdGlvbihpbnRlcm5hbEZvcm1hdCwg
Zm9ybWF0TmFtZSkgewotICAgICAgY3JlYXRlVGV4dHVyZShpbnRlcm5hbEZvcm1hdCwgaW50ZXJu
YWxGb3JtYXQpOwotICAgICAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gICAgICBpZiAoZXJy
ID09IGdsLk5PX0VSUk9SKSB7Ci0gICAgICAgICAgdGVzdEZhaWxlZCgic2hvdWxkIE5PVCBiZSBh
YmxlIHRvIGNyZWF0ZSB0ZXh0dXJlIG9mIHR5cGUgIiArIGZvcm1hdE5hbWUpOwotICAgICAgfSBl
bHNlIGlmIChlcnIgPT0gZ2wuSU5WQUxJRF9PUEVSQVRJT04pIHsKLSAgICAgICAgICB0ZXN0RmFp
bGVkKCJzaG91bGQgcmV0dXJuIGdsLklOVkFMSURfRU5VTSBmb3IgdHlwZSAiICsgZm9ybWF0TmFt
ZSk7Ci0gICAgICB9IGVsc2UgaWYgKGVyciA9PSBnbC5JTlZBTElEX0VOVU0pIHsKLSAgICAgICAg
ICB0ZXN0UGFzc2VkKCJub3QgYWJsZSB0byBjcmVhdGUgaW52YWxpZCBmb3JtYXQ6ICIgKyBmb3Jt
YXROYW1lKTsKLSAgICAgIH0KLSAgfQotCi0gIHZhciBpbnZhbGlkRW51bXMgPSBbCi0gICAgJzEn
LAotICAgICcyJywKLSAgICAnMycsCi0gICAgJzQnLAotICAgICdSR0I0JywKLSAgICAnUkdCNScs
Ci0gICAgJ1JHQjgnLAotICAgICdSR0IxMCcsCi0gICAgJ1JHQjEyJywKLSAgICAnUkdCMTYnLAot
ICAgICdSR0JBMicsCi0gICAgJ1JHQkE0JywKLSAgICAnUkdCNV9BMScsCi0gICAgJ1JHQkE4JywK
LSAgICAnUkdCMTBfQTInLAotICAgICdSR0JBMTInLAotICAgICdSR0JBMTYnLAotICAgICdCR1In
LAotICAgICdCR1JBJywKLSAgICAnQUxQSEE0X0VYVCcsCi0gICAgJ0FMUEhBOF9FWFQnLAotICAg
ICdBTFBIQTEyX0VYVCcsCi0gICAgJ0FMUEhBMTZfRVhUJywKLSAgICAnQ09NUFJFU1NFRF9BTFBI
QScsCi0gICAgJ0NPTVBSRVNTRURfTFVNSU5BTkNFJywKLSAgICAnQ09NUFJFU1NFRF9MVU1JTkFO
Q0VfQUxQSEEnLAotICAgICdDT01QUkVTU0VEX0lOVEVOU0lUWScsCi0gICAgJ0NPTVBSRVNTRURf
UkdCJywKLSAgICAnQ09NUFJFU1NFRF9SR0JBJywKLSAgICAnREVQVEhfQ09NUE9ORU5UMTYnLAot
ICAgICdERVBUSF9DT01QT05FTlQyNCcsCi0gICAgJ0RFUFRIX0NPTVBPTkVOVDMyJywKLSAgICAn
TFVNSU5BTkNFNF9FWFQnLAotICAgICdMVU1JTkFOQ0U4X0VYVCcsCi0gICAgJ0xVTUlOQU5DRTEy
X0VYVCcsCi0gICAgJ0xVTUlOQU5DRTE2X0VYVCcsCi0gICAgJ0xVTUlOQU5DRTRfQUxQSEE0X0VY
VCcsCi0gICAgJ0xVTUlOQU5DRTZfQUxQSEEyX0VYVCcsCi0gICAgJ0xVTUlOQU5DRThfQUxQSEE4
X0VYVCcsCi0gICAgJ0xVTUlOQU5DRTEyX0FMUEhBNF9FWFQnLAotICAgICdMVU1JTkFOQ0UxMl9B
TFBIQTEyX0VYVCcsCi0gICAgJ0xVTUlOQU5DRTE2X0FMUEhBMTZfRVhUJywKLSAgICAnSU5URU5T
SVRZX0VYVCcsCi0gICAgJ0lOVEVOU0lUWTRfRVhUJywKLSAgICAnSU5URU5TSVRZOF9FWFQnLAot
ICAgICdJTlRFTlNJVFkxMl9FWFQnLAotICAgICdJTlRFTlNJVFkxNl9FWFQnLAotICAgICdSR0I0
X0VYVCcsCi0gICAgJ1JHQjVfRVhUJywKLSAgICAnUkdCOF9FWFQnLAotICAgICdSR0IxMF9FWFQn
LAotICAgICdSR0IxMl9FWFQnLAotICAgICdSR0IxNl9FWFQnLAotICAgICdSR0JBMl9FWFQnLAot
ICAgICdSR0JBNF9FWFQnLAotICAgICdSR0I1X0ExX0VYVCcsCi0gICAgJ1JHQkE4X0VYVCcsCi0g
ICAgJ1JHQjEwX0EyX0VYVCcsCi0gICAgJ1JHQkExMl9FWFQnLAotICAgICdSR0JBMTZfRVhUJywK
LSAgICAnU0xVTUlOQU5DRV9FWFQnLAotICAgICdTTFVNSU5BTkNFOF9FWFQnLAotICAgICdTTFVN
SU5BTkNFX0FMUEhBX0VYVCcsCi0gICAgJ1NMVU1JTkFOQ0U4X0FMUEhBOF9FWFQnLAotICAgICdT
UkdCX0VYVCcsCi0gICAgJ1NSR0I4X0VYVCcsCi0gICAgJ1NSR0JfQUxQSEFfRVhUJywKLSAgICAn
U1JHQjhfQUxQSEE4JwotICBdOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBpbnZhbGlkRW51
bXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIGZvcm1hdE5hbWUgPSBpbnZhbGlkRW51bXNbaWld
Ci0gICAgaWYgKGRlc2t0b3BHTFtmb3JtYXROYW1lXSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICBk
ZWJ1ZygiYmFkIGZvcm1hdCIgKyBmb3JtYXROYW1lKQotICAgIH0gZWxzZSB7Ci0gICAgICB0ZXN0
SW52YWxpZEZvcm1hdChkZXNrdG9wR0xbZm9ybWF0TmFtZV0sICJHTF8iICsgZm9ybWF0TmFtZSk7
Ci0gICAgfQotICB9Ci0KLSAgdmFyIHZhbGlkRW51bXMgPSBbCi0gICAgJ0FMUEhBJywKLSAgICAn
UkdCJywKLSAgICAnUkdCQScsCi0gICAgJ0xVTUlOQU5DRScsCi0gICAgJ0xVTUlOQU5DRV9BTFBI
QScKLSAgXTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdmFsaWRFbnVtcy5sZW5ndGg7ICsr
aWkpIHsKLSAgICB2YXIgZm9ybWF0TmFtZSA9IHZhbGlkRW51bXNbaWldCi0gICAgdGVzdFZhbGlk
Rm9ybWF0KGdsW2Zvcm1hdE5hbWVdLCAiZ2wuIiArIGZvcm1hdE5hbWUpOwotICB9Ci0KLSAgZGVi
dWcoIiIpOwotICBkZWJ1ZygiY2hlY2tpbmcgbm9uIDAgYm9yZGVyIHBhcmFtZXRlciB0byBnbC5U
ZXhJbWFnZTJEIik7Ci0gIGNyZWF0ZVRleHR1cmUoZ2xbJ1JHQkEnXSwgZ2xbJ1JHQkEnXSwgMSk7
Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwKLSAgICAgICAgICAgICJu
b24gMCBib3JkZXIgdG8gZ2wuVGV4SW1hZ2UyRCBzaG91bGQgcmV0dXJuIElOVkFMSURfVkFMVUUi
KTsKLQotCi0gIHZhciBjaGVja1R5cGVzID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgp
OwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1Ms
IGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotCi0g
ICAgdmFyIGxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0gICAg
Z2wudW5pZm9ybTFpKGxvYywgMCk7Ci0KLSAgICB2YXIgY2hlY2tUeXBlID0gZnVuY3Rpb24ociwg
ZywgYiwgYSwgdHlwZSwgZm9ybWF0LCBidWYpIHsKLSAgICAgIHZhciB0eXBlTmFtZSA9IHd0dS5n
bEVudW1Ub1N0cmluZyhnbCwgdHlwZSk7Ci0gICAgICB2YXIgZm9ybWF0TmFtZSA9IHd0dS5nbEVu
dW1Ub1N0cmluZyhnbCwgZm9ybWF0KTsKLSAgICAgIHZhciBkZXNjID0gImZvcm1hdDogIiArIGZv
cm1hdE5hbWUgKyAiLCB0eXBlOiAiICsgdHlwZU5hbWU7Ci0gICAgICBkZWJ1ZygiIik7Ci0gICAg
ICBkZWJ1ZygiY2hlY2tpbmcgZ2wudGV4SW1hZ2UyRCB3aXRoICIgKyBkZXNjKTsKLSAgICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwKLSAgICAgICAgICAgICAgICAgICAgMCwgICAgICAg
ICAgICAgICAgIC8vIGxldmVsCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgICAgICAgICAg
ICAvLyBpbnRlcm5hbEZvcm1hdAotICAgICAgICAgICAgICAgICAgICAyLCAgICAgICAgICAgICAg
ICAgLy8gd2lkdGgKLSAgICAgICAgICAgICAgICAgICAgMiwgICAgICAgICAgICAgICAgIC8vIGhl
aWdodAotICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgLy8gYm9yZGVyCi0g
ICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgICAgICAgICAgICAvLyBmb3JtYXQKLSAgICAgICAg
ICAgICAgICAgICAgdHlwZSwgICAgICAgICAgICAgIC8vIHR5cGUKLSAgICAgICAgICAgICAgICAg
ICAgYnVmKTsgICAgICAgICAgICAgIC8vIGRhdGEKLQotICAgICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwKLSAgICAgICAgICAgICAgICAiZ2wudGV4SW1hZ2UyRCB3aXRoICIgKyBk
ZXNjICsgIiBzaG91bGQgZ2VuZXJhdGUgTk9fRVJST1IiKTsKLQotICAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsLCBbMjU1LCAwLCAwLCAyNTVdKTsKLSAgICAgIHd0dS5jaGVja0NhbnZh
cyhnbCwgW3IsZyxiLGFdLAotICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0dXJlICIgKyBkZXNj
ICsgIiBzaG91bGQgZHJhdyB3aXRoICIgKwotICAgICAgICAgICAgICAgICAgICAgIHIgKyAiLCAi
ICsgZyArICIsICIgKyBiICsgIiwgIiArIGEpOwotCi0gICB9Ci0gICBjaGVja1R5cGUoCi0gICAg
ICAgMCwgMjU1LCAwLCAyNTUsIGdsLlVOU0lHTkVEX0JZVEUsIGdsLlJHQkEsCi0gICAgICAgbmV3
IFVpbnQ4QXJyYXkoCi0gICAgICAgICBbIDAsIDI1NSwgMCwgMjU1LAotICAgICAgICAgICAwLCAy
NTUsIDAsIDI1NSwKLSAgICAgICAgICAgMCwgMjU1LCAwLCAyNTUsCi0gICAgICAgICAgIDAsIDI1
NSwgMCwgMjU1XSkpOwotICAgY2hlY2tUeXBlKAotICAgICAgIDAsIDAsIDI1NSwgMjU1LCBnbC5V
TlNJR05FRF9TSE9SVF80XzRfNF80LCBnbC5SR0JBLAotICAgICAgIG5ldyBVaW50MTZBcnJheSgK
LSAgICAgICAgIFsgMjU1LCAyNTUsCi0gICAgICAgICAgIDI1NSwgMjU1LAotICAgICAgICAgICAy
NTUsIDI1NSwKLSAgICAgICAgICAgMjU1LCAyNTVdKSk7Ci0gICBjaGVja1R5cGUoCi0gICAgICAg
MCwgMjU1LCAwLCAyNTUsIGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81LCBnbC5SR0IsCi0gICAgICAg
bmV3IFVpbnQxNkFycmF5KAotICAgICAgICAgWyAyMDE2LCAyMDE2LAotICAgICAgICAgICAyMDE2
LCAyMDE2LAotICAgICAgICAgICAyMDE2LCAyMDE2LAotICAgICAgICAgICAyMDE2LCAyMDE2XSkp
OwotICAgY2hlY2tUeXBlKAotICAgICAgIDAsIDAsIDI1NSwgMjU1LCBnbC5VTlNJR05FRF9TSE9S
VF81XzVfNV8xLCBnbC5SR0JBLAotICAgICAgIG5ldyBVaW50MTZBcnJheSgKLSAgICAgICAgIFsg
NjMsIDYzLAotICAgICAgICAgICA2MywgNjMsCi0gICAgICAgICAgIDYzLCA2MywKLSAgICAgICAg
ICAgNjMsIDYzXSkpOwotICAgY2hlY2tUeXBlKAotICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwg
Z2wuVU5TSUdORURfQllURSwgZ2wuTFVNSU5BTkNFLAotICAgICAgIG5ldyBVaW50OEFycmF5KFsK
LSAgICAgICAgICAgMjU1LAotICAgICAgICAgICAyNTUsCi0gICAgICAgICAgIDI1NSwKLSAgICAg
ICAgICAgMjU1XSkpOwotICAgY2hlY2tUeXBlKAotICAgICAgIDAsIDAsIDAsIDEyOCwgZ2wuVU5T
SUdORURfQllURSwgZ2wuQUxQSEEsCi0gICAgICAgbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAg
ICAxMjgsCi0gICAgICAgICAgIDEyOCwKLSAgICAgICAgICAgMTI4LAotICAgICAgICAgICAxMjhd
KSk7Ci0gICBjaGVja1R5cGUoCi0gICAgICAgMTI4LCAxMjgsIDEyOCwgMTkyLCBnbC5VTlNJR05F
RF9CWVRFLCBnbC5MVU1JTkFOQ0VfQUxQSEEsCi0gICAgICAgbmV3IFVpbnQ4QXJyYXkoWwotICAg
ICAgICAgICAxMjgsIDE5MiwKLSAgICAgICAgICAgMTI4LCAxOTIsCi0gICAgICAgICAgIDEyOCwg
MTkyLAotICAgICAgICAgICAxMjgsIDE5Ml0pKTsKLSAgfQotICB2YXIgcHJvZ3JhbSA9IHd0dS5z
ZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19BTElHTk1F
TlQsIDEpOwotICBjaGVja1R5cGVzKCk7Ci19Ci0KLWRlYnVnKCIiKTsKLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhkLWRwaS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWhkLWRwaS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3MWFlMmY4ZjQzOWQ0MWJiNDRkZjJmODBkODhkZDJhN2M5YmQ4Zjhm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1oZC1kcGkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDE0MCArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
Ci0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
LSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0
aXRsZT5XZWJHTCBIRC1EUEkgaXNzdWVzIHRleHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxl
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQi
IGhlaWdodD0iNCIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCk7Ci12YXIgd3R1ID0gV2ViR0xU
ZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci12YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLWZ1bmN0aW9uIGZpbGxJbk1p
cHMoZ2wsIHNpemUpIHsKLSAgLy8gZmlsbCBpbiB0aGUgbWlwcwotICB2YXIgbGV2ZWwgPSAxOwot
ICBmb3IgKDs7KSB7Ci0gICAgc2l6ZSAvPSAyOwotICAgIGlmIChzaXplIDwgMSkgewotICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIHZhciBudW1CeXRlcyA9IHNpemUgKiBzaXplICogNDsKLSAgICB2
YXIgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkobnVtQnl0ZXMpOwotICAgIGZvciAodmFyIGpqID0g
MDsgamogPCBudW1CeXRlczsgamogKz0gNCkgewotICAgICAgcGl4ZWxzW2pqICsgMF0gPSAwOwot
ICAgICAgcGl4ZWxzW2pqICsgMV0gPSAyNTU7Ci0gICAgICBwaXhlbHNbamogKyAyXSA9IDA7Ci0g
ICAgICBwaXhlbHNbamogKyAzXSA9IDI1NTsKLSAgICB9Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBzaXplLCBzaXplLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBwaXhlbHMpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDYW52YXMoc2l6ZSkgewot
ICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJ0ZXN0aW5nIDJEIGNhbnZhcyBzaXplICIgKyBzaXplICsg
IiwgIiArIHNpemUpOwotCi0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj
YW52YXMiKTsKLSAgY2FudmFzLndpZHRoID0gc2l6ZTsKLSAgY2FudmFzLmhlaWdodCA9IHNpemU7
Ci0gIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4LmZpbGxTdHlsZSA9
ICJyZ2IoMCwyNTUsMCkiOwotICBjdHguZmlsbFJlY3QoMCwgMCwgc2l6ZSwgc2l6ZSk7Ci0KLSAg
dmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMpOwotCi0gIGZpbGxJbk1pcHMoZ2wsIHNp
emUpOwotCi0gIC8vIERyYXcuIElmIHRoaXMgYW4gSEQtRFBJIGRldmljZSBhbmQgdGhlIDJkIGNh
bnZhcyBpcyBkb3VibGUgcmVzIG9yIGxhcmdlcgotICAvLyB0aGUgaW1wbGVtZW50YXRpb24gbXVz
dCBzY2FsZSB0byBDU1MgcGl4ZWxzIChpZSwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KSgK
LSAgLy8gd2hlbiBkb2luZyB0aGUgY29weSBpbiB0ZXhJbWFnZTJELiBJZiBpdCBoYXMgbm90IHNj
YWxlZCBhbmQgaW5zdGVhZCBkb25lCi0gIC8vIGEgZGlyZWN0IGNvcHkgb2YgdGhlIGxhcmdlciB0
ZXh0dXJlIHRoaXMgdGVzdCB3aWxsIG5vdCBoYXZlIGNyZWF0ZWQgZW5vdWdoIG1pcHMKLSAgLy8g
YW5kIHdpbGwgdGhlcmVmb3JlIG5vdCBiZSAidGV4dHVyZSBjb21wbGV0ZSIgYW5kIHdpbGwgcmVu
ZGVyIGluIGJsYWNrLgotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUuY2hl
Y2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJzaG91bGQgYmUgZ3JlZW4iKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdFdlYkdMKHNpemUpIHsKLSAgZGVidWcoIiIpOwotICBkZWJ1ZygidGVzdGlu
ZyBXZWJHTCBjYW52YXMgc2l6ZSAiICsgc2l6ZSArICIsICIgKyBzaXplKTsKLQotICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGNhbnZhcy53aWR0aCA9
IHNpemU7Ci0gIGNhbnZhcy5oZWlnaHQgPSBzaXplOwotICB2YXIgZ2wyID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChjYW52YXMpOwotICBnbDIuY2xlYXJDb2xvcigwLDEsMCwxKTsKLSAgZ2wyLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQpOwotCi0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2Fu
dmFzKTsKLQotICBmaWxsSW5NaXBzKGdsLCBzaXplKTsKLQotICAvLyBEcmF3LiBJZiB0aGlzIGFu
IEhELURQSSBkZXZpY2UgY2hlY2sgZm9yIDIgcG9zc2libGUgYnVncy4KLSAgLy8KLSAgLy8gMSkg
dGhlIFdlYkdMIGNhbnZhcyBpcyBkb3VibGUgcmVzIG9yIGxhcmdlci4gVGhhdCdzIGp1c3QgYSBi
dWcgcGVyaW9kIGFuZAotICAvLyAgICBpcyBjaGVja2VkIGZvciBpbiBhbm90aGVyIHRlc3QgYnV0
IHdvdWxkIGFsc28gZmFpbCBoZXJlLgotICAvLwotICAvLyAyKSB0aGUgV2ViR0wgY2FudmFzIGlz
IHNpbmdsZSByZXMgYnV0IHRoZSBjb2RlIHRoZSBzY2FsZXMgYSBkb3VibGUgcmVzCi0gIC8vICAg
IDJkIGNhbnZhcyBhbHNvIG1pc3Rha2VubHkgc2NhbGVzIGEgc2luZ2xlIHJlcyBXZWJHTCBjYW52
YXMuCi0gIC8vCi0gIC8vIElmIGl0IGhhcyBiZWVuIHNjYWxlZCB0aGVuIHdlJ2xsIGhhdmUgdGhl
IHdyb25nIGtpbmQgb2YgbWlwcyBjaGFpbiBoZXJlLgotICAvLyBMZXZlbCAwIHdpbGwgYmUgaGFs
ZiByZXNvbHV0aW9uLiBMZXZlbCAxIHdpbGwgYmUgdGhlIHNhbWUgcmVzb2x1dGlvbgotICAvLyBh
bmQgd2lsbCB0aGVyZWZvcmUgbm90IGJlICJ0ZXh0dXJlIGNvbXBsZXRlIiBhbmQgd2lsbCByZW5k
ZXIgaW4gYmxhY2suCi0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIHd0dS5jaGVj
a0NhbnZhcyhnbCwgWzAsIDI1NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIpOwotfQotCi10
ZXN0Q2FudmFzKDQpOwotdGVzdENhbnZhcyg1MTIpOwotdGVzdFdlYkdMKDQpOwotdGVzdFdlYkdM
KDUxMik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVy
cm9ycyIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXh0dXJlLW1pcHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1t
aXBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0YzJlODBmMjhlYzU4YWZk
ZjMwYjI0MjE2YTNiNWQwMTgzMGNmZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW1pcHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMxOSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
Ci0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgot
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
Ci0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCB0ZXh0dXJlIG1pcHMgY29uZm9ybWFuY2Ug
dGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsi
PjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+
Ci11bmlmb3JtIHZlYzQgdU11bHQ7Ci1hdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247Ci1hdHRyaWJ1
dGUgdmVjMiB0ZXhDb29yZDA7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQot
ewotICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uICogdU11bHQ7Ci0gICAgdGV4Q29vcmQgPSB0
ZXhDb29yZDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1z
aGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLXVuaWZvcm0gc2Ft
cGxlcjJEIHRleDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAg
Z2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOwotfQotPC9zY3JpcHQ+Ci08
c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIGNhbnZhczsKLXZhciB3dHUgPSBXZWJHTFRlc3RV
dGlsczsKLWZ1bmN0aW9uIGluaXQoKQotewotICBkZXNjcmlwdGlvbigiQ2hlY2tzIG1pcCBpc3N1
ZXMiKTsKLQotICBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwot
ICBzaG91bGRCZSgiY2FudmFzLndpZHRoIiwgIjIiKTsKLSAgc2hvdWxkQmUoImNhbnZhcy5oZWln
aHQiLCAiMiIpOwotCi0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKLQot
ICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOwotICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvciBnZW5lcmF0ZU1pcG1h
cCB3aXRoIG1pcCAwIGlzIDB4MCIpOwotICBnbC50ZXhJbWFnZTJEKAotICAgICAgZ2wuVEVYVFVS
RV8yRCwgMSwgZ2wuUkdCQSwgMSwgMSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAg
ICAgIG5ldyBVaW50OEFycmF5KDQpKTsKLSAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8y
RCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3IgZ2Vu
ZXJhdGVNaXBtYXAgd2l0aCBtaXAgMCBpcyAweDAiKTsKLQotICB0ZXggPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7Ci0gIGds
LmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVApOwotICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZm9yIGdlbmVyYXRlTWlwbWFwIHdpdGggbWlwIDAg
aXMgMHgwIik7Ci0KLSAgdmFyIGZhY2VzID0gWwotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gICAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJ
VkVfWSwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1osCi0gICAgZ2wuVEVYVFVS
RV9DVUJFX01BUF9ORUdBVElWRV9aCi0gIF07Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBmYWNl
cy5sZW5ndGg7ICsraWkpIHsKLSAgICBnbC50ZXhJbWFnZTJEKAotICAgICAgICBmYWNlc1tpaV0s
IDAsIGdsLlJHQkEsIDIsIDIsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAg
IG5ldyBVaW50OEFycmF5KDQgKiAyICogMikpOwotICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRF
WFRVUkVfQ1VCRV9NQVApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgaWkgPT0gNSA/IGdsLk5P
X0VSUk9SIDogZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3IgZ2VuZXJhdGVNaXBtYXAgd2l0aCAi
ICsgKGlpICsgMSkgKyAiIGZhY2VzIik7Ci0gIH0KLQotICB3dHUuc2V0dXBVbml0UXVhZChnbCwg
MCwgMSk7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLCBbJ3Zz
aGFkZXInLCAnZnNoYWRlciddLCBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsK
LQotICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsK
LQotICB2YXIgY29sb3JzID0gewotICAgIGJsdWU6IFswLCAwLCAyNTUsIDI1NV0sCi0gICAgcmVk
OiBbMjU1LCAwLCAwLCAyNTVdLAotICAgIGdyZWVuOiAgWzAsIDI1NSwgMCwgMjU1XSwKLSAgICBj
eWFuOiBbMTI4LCAyNTUsIDI1NSwgMjU1XSwKLSAgICBibGFjazogWzAsIDAsIDAsIDI1NV0sCi0g
ICAgYmxhbms6IFswLCAwLCAwLCAwXQotICB9OwotCi0gIHZhciBtaXBzID0gWwotICBdOwotCi0g
IHZhciB0ZXhMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotICBn
bC51bmlmb3JtMWkodGV4TG9jLCAwKTsKLSAgdmFyIG11bHRMb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgInVNdWx0Iik7Ci0KLSAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICB2YXIgY2xlYXJUZXggPSBjcmVhdGVUZXh0
dXJlKCk7Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9jLCAxLCAxLCAxLCAxKTsKLSAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgY2xlYXJUZXgpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
bnVsbCk7Ci0gIGRlYnVnKCdnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Jyk7Ci0gIHNldE1p
cERhdGEoMCwgMTYsICdibGFuaycpOwotICBtYWtlRGl2TWlwQ2hhaW4oKTsKLSAgZ2VuZXJhdGVN
aXBtYXAoKTsKLSAgY2hlY2soJ2JsYW5rJywgInRleHR1cmUgY3JlYXRlZCB3aXRoIG51bGwgdGhh
dCBoYXMgYWxsIG1pcHMiKTsKLQotICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIHZhciB0ZXggPSBjcmVhdGVUZXh0dXJlKCk7Ci0gIGds
LnVuaWZvcm00ZihtdWx0TG9jLCAxLCAxLCAxLCAxKTsKLQotICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCB0ZXgpOwotICAvLyAxNngxNiB0ZXh0dXJlIG5vIG1pcHMKLSAgZmlsbExldmVs
KHRleCwgMCwgMTYsICdjeWFuJyk7Ci0KLSAgY2hlY2soJ2JsYWNrJywKLSAgICAgICAgInRleHR1
cmUgdGhhdCBpcyBtaXNzaW5nIG1pcHMgd2hlbiBURVhUVVJFX01JTl9GSUxURVIgbm90IE5FQVJF
U1Qgb3IgTElORUFSIik7Ci0KLSAgZ2VuZXJhdGVNaXBtYXAoKTsKLQotICBjaGVjaygnY3lhbics
ICJ0ZXh0dXJlIHRoYXQgaGFzIGFsbCBtaXBzIik7Ci0KLSAgLy8gRmlsbCBpbiB0aGUgYm90dG9t
IDIgbWlwcyB3aXRoIGEgZGlmZmVyZW50IGNvbG9yLgotICBmaWxsTGV2ZWwodGV4LCA0LCAxLCAn
Z3JlZW4nKTsKLSAgZmlsbExldmVsKHRleCwgMywgMiwgJ2dyZWVuJyk7Ci0KLSAgLy8gQ2hvb3Nl
IHRoZSBuZWFyZXN0IG1pcAotICB0ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9ORUFSRVNUKTsKLQotICBjaGVjaygnZ3Jl
ZW4nLCAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdGhlIHNtYWxsZXN0IDIgbWlwcyIpOwot
Ci0gIGdsLnVuaWZvcm00ZihtdWx0TG9jLCAxNiwgMTYsIDEsIDEpOwotCi0gIGNoZWNrKCdjeWFu
JywgInRleHR1cmUgdGhhdCBpcyB1c2luZyBvbmx5IHRoZSBsYXJnZXN0IDIgbWlwcyIpOwotCi0g
IC8vIFNldCB0aGUgdG9wIGxldmVsCi0gIGZpbGxMZXZlbCh0ZXgsIDAsIDEsICdyZWQnKTsKLSAg
Y2hlY2soJ3JlZCcsCi0gICAgICAgICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1c2luZyB0aGUgdG9w
IGxldmVsIGV2ZW4gdGhvdWdoIG90aGVyIGxldmVscyBhcmUgZGVmaW5lZCIpOwotCi0gIC8vIFNl
dCB0aGUgdG9wIDIgbGV2ZWxzIHVzaW5nIGdlbmVyYXRlTWlwbWFwCi0gIGZpbGxMZXZlbCh0ZXgs
IDAsIDIsICdibHVlJyk7Ci0gIGdlbmVyYXRlTWlwbWFwKCk7Ci0KLSAgY2hlY2soJ2JsdWUnLAot
ICAgICAgICAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdGhlIHRvcCAyIGxldmVscyBldmVu
IHRob3VnaCBvdGhlciBsZXZlbHMgYXJlIGRlZmluZWQiKTsKLQotICAvLyBTZXQgdGhlIHRvcCAy
IGxldmVscyBiYWNrIHRvIHNpemVzIHRoYXQgZW5kIHVwIHVzaW5nIGxldmVscyAyLCAzLCBhbmQg
NCBhZ2Fpbi4KLSAgZmlsbExldmVsKHRleCwgMCwgMTYsICdibHVlJyk7Ci0gIGZpbGxMZXZlbCh0
ZXgsIDEsIDgsICdibHVlJyk7Ci0gIGNoZWNrKCdibHVlJywgInRleHR1cmUgdGhhdCBpcyBvbmx5
IHVzaW5nIHRoZSBsYXJnZXN0IDIgbWlwcyIpOwotICBnbC51bmlmb3JtNGYobXVsdExvYywgMSwg
MSwgMSwgMSk7Ci0gIGNoZWNrKCdncmVlbicsICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1c2luZyB0
aGUgc21hbGxlc3QgMiBtaXBzIik7Ci0KLSAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICB2YXIgdGV4ID0gY3JlYXRlVGV4dHVyZSgpOwot
ICBnbC51bmlmb3JtNGYobXVsdExvYywgMSwgMSwgMSwgMSk7Ci0gIGZpbGxMZXZlbCh0ZXgsIDAs
IDgsICdjeWFuJyk7Ci0gIGdlbmVyYXRlTWlwbWFwKCk7Ci0gIGNoZWNrKCdjeWFuJywgInRleHR1
cmUgdGhhdCBoYXMgMyBtaXBzIik7Ci0KLSAgZmlsbExldmVsKHRleCwgMCwgMTYsICdibHVlJyk7
Ci0gIHRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5MSU5FQVIpOwotICBjaGVjaygnYmx1ZScsICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1c2luZyB0
b3AgbWlwcyIpOwotCi0gIGZpbGxMZXZlbCh0ZXgsIDAsIDgsICdyZWQnKTsKLSAgdGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBN
QVBfTkVBUkVTVCk7Ci0gIGNoZWNrKCdjeWFuJywgInRleHR1cmUgdGhhdCBpcyBvbmx5IHVzaW5n
IHNtYWxsZXN0IG1pcHMiKTsKLQotICBnbC51bmlmb3JtNGYobXVsdExvYywgMTYsIDE2LCAxLCAx
KTsKLSAgY2hlY2soJ3JlZCcsICJ0ZXh0dXJlIHRoYXQgaXMgdXNpbmcgb25seSB0aGUgbGFyZ2Vz
dCBtaXAiKTsKLQotICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gIHZhciB0ZXggPSBjcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLnVuaWZvcm00
ZihtdWx0TG9jLCAxLCAxLCAxLCAxKTsKLSAgZmlsbExldmVsKHRleCwgMiwgMSwgJ2dyZWVuJyk7
Ci0gIGZpbGxMZXZlbCh0ZXgsIDEsIDIsICdncmVlbicpOwotICBmaWxsTGV2ZWwodGV4LCAwLCA0
LCAnZ3JlZW4nKTsKLSAgY2hlY2soJ2dyZWVuJywgInRleHR1cmUgdGhhdCB3YXMgYnVpbHQgc21h
bGxlc3QgbWlwIGZpcnN0Iik7Ci0KLSAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICB2YXIgdGV4ID0gY3JlYXRlVGV4dHVyZSgpOwotICBn
bC51bmlmb3JtNGYobXVsdExvYywgMSwgMSwgMSwgMSk7Ci0gIGZpbGxMZXZlbCh0ZXgsIDAsIDE2
LCAncmVkJyk7Ci0gIGdlbmVyYXRlTWlwbWFwKCk7Ci0gIGNoZWNrKCdyZWQnLCAidGV4dHVyZSB3
aXRoIDEgZ2VubWlwbWFwcyIpOwotICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwgJ2JsdWUnKTsKLSAg
Z2VuZXJhdGVNaXBtYXAoKTsKLSAgZmlsbExldmVsKHRleCwgMCwgMTYsICdncmVlbicpOwotICBn
ZW5lcmF0ZU1pcG1hcCgpOwotICBjaGVjaygnZ3JlZW4nLCAidGV4dHVyZSB3aXRoIDIgZ2VubWlw
bWFwcyIpOwotCi0gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBi
ZSBubyBlcnJvcnMuIik7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlVGV4dHVyZSgpIHsKLSAgICBkZWJ1
ZygiPGhyLz5nbC5jcmVhdGVUZXh0dXJlKCkiKTsKLSAgICBtaXBzID0gW107Ci0gICAgbWFrZURp
dk1pcENoYWluKCk7Ci0gICAgcmV0dXJuIGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgfQotCi0gIGZ1
bmN0aW9uIHRleFBhcmFtZXRlcmkodGFyZ2V0LCBwbmFtZSwgdmFsdWUpIHsKLSAgICBkZWJ1Zygi
Z2wudGV4UGFyYW1ldGVyaSgiICsKLSAgICAgICAgICB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRh
cmdldCkgKyAiLCAiICsKLSAgICAgICAgICB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHBuYW1lKSAr
ICIsICIgKwotICAgICAgICAgIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdmFsdWUpICsgIikiKQot
ICAgIGdsLnRleFBhcmFtZXRlcmkodGFyZ2V0LCBwbmFtZSwgdmFsdWUpOwotICB9Ci0KLSAgZnVu
Y3Rpb24gZ2VuZXJhdGVNaXBtYXAoKSB7Ci0gICAgZGVidWcoImdsLmdlbmVyYXRlTWlwbWFwKGds
LlRFWFRVUkVfMkQpIik7Ci0gICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCk7Ci0g
ICAgdmFyIG1pcDAgPSBtaXBzWzBdOwotICAgIHZhciBzaXplID0gbWlwMC5zaXplOwotICAgIHZh
ciBsZXZlbCA9IDE7Ci0gICAgZm9yKDs7KSB7Ci0gICAgICBzaXplID0gTWF0aC5mbG9vcihzaXpl
IC8gMik7Ci0gICAgICBpZiAoIXNpemUpIHsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAg
ICBzZXRNaXBEYXRhKGxldmVsLCBzaXplLCBtaXAwLmNvbG9yKTsKLSAgICAgICsrbGV2ZWw7Ci0g
ICAgfQotICAgIG1ha2VEaXZNaXBDaGFpbigpOwotICB9Ci0KLSAgZnVuY3Rpb24gY2hlY2soY29s
b3IsIG1zZykgewotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gICAgd3R1LmNo
ZWNrQ2FudmFzKGdsLCBjb2xvcnNbY29sb3JdLCBtc2cgKyAiIHNob3VsZCBkcmF3IHdpdGggIiAr
IGNvbG9yKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGZpbGxMZXZlbCh0ZXgsIGxldmVsLCBzaXplLCBj
b2xvcikgewotICAgIHNldE1pcERhdGEobGV2ZWwsIHNpemUsIGNvbG9yKTsKLSAgICBkZWJ1Zygi
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAiICsgbGV2ZWwgKyAiLCBnbC5SR0JBLCAiICsg
c2l6ZSArICIsICIgKyBzaXplICsKLSAgICAgICAgICAiLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCAiICsgY29sb3IgKyAiKTsiKTsKLSAgICB3dHUuZmlsbFRleHR1cmUoZ2wsIHRleCwg
c2l6ZSwgc2l6ZSwgY29sb3JzW2NvbG9yXSwgbGV2ZWwpOwotICAgIG1ha2VEaXZNaXBDaGFpbigp
OwotICB9Ci0KLSAgZnVuY3Rpb24gc2V0TWlwRGF0YShsZXZlbCwgc2l6ZSwgY29sb3IpIHsKLSAg
ICBtaXBzW2xldmVsXSA9IHsKLSAgICAgIHNpemU6IHNpemUsCi0gICAgICBjb2xvcjogY29sb3IK
LSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZURpdk1pcENoYWluKGNvbG9yKSB7Ci0gICAg
dmFyIGh0bWwgPSBbCi0gICAgICAnPGRpdiBzdHlsZT0iaGVpZ2h0OiA2OHB4OyBtYXJnaW4tdG9w
OiA1cHgiPicsCi0gICAgICAnPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPm1pcHM6IDwvZGl2Pidd
OwotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCA1OyArK2lpKSB7Ci0gICAgICB2YXIgbWlwID0g
bWlwc1tpaV07Ci0gICAgICBpZiAobWlwKSB7Ci0gICAgICAgIGh0bWwucHVzaChtYWtlRGl2U3F1
YXJlKG1pcC5zaXplLCBtaXAuY29sb3IpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGh0bWwu
cHVzaChtYWtlRGl2U3F1YXJlKDE2LCB1bmRlZmluZWQpKTsKLSAgICAgIH0KLSAgICB9Ci0gICAg
aHRtbC5wdXNoKCI8L2Rpdj4iKTsKLSAgICBkZWJ1ZyhodG1sLmpvaW4oIiIpKTsKLSAgfQotCi0g
IGZ1bmN0aW9uIG1ha2VEaXZTcXVhcmUoc2l6ZSwgY29sb3IpIHsKLSAgICBzaXplICo9IDQ7Ci0g
ICAgdmFyIGMgPSBjb2xvciA/IGNvbG9yc1tjb2xvcl0gOiBbMjU1LDI1NSwyNTVdOwotICAgIHZh
ciBib3JkZXIgPSBjb2xvciA/ICdzb2xpZCcgOiAnZGFzaGVkJzsKLSAgICByZXR1cm4gJzxkaXYg
c3R5bGU9ImZsb2F0OmxlZnQ7IHdpZHRoOiAnICsgc2l6ZSArICdweDsgaGVpZ2h0OiAnICsgc2l6
ZSArCi0gICAgICAgICAgICdweDsgYmFja2dyb3VuZC1jb2xvcjogJyArIHJnYihjKSArCi0gICAg
ICAgICAgICc7IGJvcmRlcjogMXB4ICcgKyBib3JkZXIgKyAnIGJsYWNrOyBtYXJnaW4tcmlnaHQ6
IDNweDsiPjwvZGl2Pic7Ci0gIH0KLQotICBmdW5jdGlvbiByZ2IoYykgewotICAgIHJldHVybiAn
cmdiKCcgKyBjWzBdICsgJywnICsgY1sxXSArICcsJyArIGNbMl0gKycpJzsKLSAgfQotfQotCi1p
bml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS1ucG90LXZpZGVvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUt
bnBvdC12aWRlby5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWZiNDgzMGFk
NjBhY2Y3OTkzNGE1NzNkYTg2YjgwNTkxNzBmZjgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1u
cG90LXZpZGVvLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzcgKzAsMCBAQAotPCEtLQotCi0v
KgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
Ci0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
Ci0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3Qi
OwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gbnVsbDsKLXZhciB0ZXh0dXJl
TG9jID0gbnVsbDsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLXZhciB2aWRlbzsK
LQotaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwotCi1mdW5jdGlvbiBpbml0KCkK
LXsKLSAgICBkZXNjcmlwdGlvbignVmVyaWZ5IG5wb3QgdmlkZW8nKTsKLQotICAgIHZhciBjYW52
YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwotICAgIGdsID0gd3R1LmNy
ZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVy
ZWRRdWFkKGdsKTsKLQotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMSk7Ci0gICAgZ2wuY2xlYXJE
ZXB0aCgxKTsKLQotICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3Jh
bSwgInRleCIpOwotCi0gICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlkIik7
Ci0gICAgd3R1LnN0YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgcnVuVGVzdCk7Ci19
Ci0KLS8vIFRoZXNlIHR3byBkZWNsYXJhdGlvbnMgbmVlZCB0byBiZSBnbG9iYWwgZm9yICJzaG91
bGRCZSIgdG8gc2VlIHRoZW0KLXZhciBidWYgPSBudWxsOwotdmFyIGlkeCA9IDA7Ci12YXIgcGl4
ZWwgPSBbMCwgMCwgMF07Ci12YXIgY29ycmVjdENvbG9yID0gbnVsbDsKLXZhciB0ZXh0dXJlOwot
Ci1mdW5jdGlvbiBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCB1c2VUZXhTdWJJbWFnZTJE
LCBmbGlwWSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yLCBiYWRNaW5GaWx0ZXIsIGJhZENsYW1wLCBn
ZW5NaXBzKQotewotICAgIGRlYnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0
ZXhTdWJJbWFnZTJEJyA6ICd0ZXhJbWFnZTJEJykgKwotICAgICAgICAgICcgd2l0aCBmbGlwWT0n
ICsgZmxpcFkpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9C
VUZGRVJfQklUKTsKLSAgICAvLyBEaXNhYmxlIGFueSB3cml0ZXMgdG8gdGhlIGFscGhhIGNoYW5u
ZWwKLSAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMCk7Ci0gICAgaWYgKCF0ZXh0dXJlKSB7Ci0g
ICAgICAgIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgfQotICAgIC8vIEJpbmQg
dGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXh0dXJlKTsKLSAgICAvLyBTZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycwot
ICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZsaXBZKTsKLSAgICAv
LyBVcGxvYWQgdGhlIHZpZGVvRWxlbWVudCBpbnRvIHRoZSB0ZXh0dXJlCi0gICAgZGVidWcoInNp
emU6ICIgKyB2aWRlb0VsZW1lbnQudmlkZW9XaWR0aCArICJ4IiArIHZpZGVvRWxlbWVudC52aWRl
b0hlaWdodCk7Ci0gICAgaWYgKHVzZVRleFN1YkltYWdlMkQpIHsKLSAgICAgICAgLy8gSW5pdGlh
bGl6ZSB0aGUgdGV4dHVyZSB0byBibGFjayBmaXJzdAotICAgICAgICBkZWJ1ZygidXNlIHRleFN1
YkltYWdlMkQiKTsKLSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLAotICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRWxlbWVudC52aWRlb1dpZHRoLCB2aWRl
b0VsZW1lbnQudmlkZW9IZWlnaHQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdmlkZW9FbGVtZW50
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBkZWJ1ZygidXNlIHRleEltYWdlMkQiKTsKLSAgICAg
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCB2aWRlb0VsZW1lbnQpOwotICAgIH0KLQotICAgIC8vIFNldCB1cCB0ZXh0
dXJlIHBhcmFtZXRlcnMKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBpZiAoYmFkTWluRmlsdGVyKSB7Ci0g
ICAgICAgIGRlYnVnKCJiYWQgbWluIGZpbHRlciIpOwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9O
RUFSRVNUKTsKLSAgICB9IGVsc2UgewotICAgICAgICBkZWJ1ZygiZ29vZCBtaW4gZmlsdGVyIik7
Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5MSU5FQVIpOwotICAgIH0KLSAgICBpZiAoYmFkQ2xhbXApIHsKLSAgICAgICAg
ZGVidWcoImJhZCBjbGFtcCIpOwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOwotICAgICAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5SRVBFQVQpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGRlYnVnKCJnb29kIGNsYW1wIik7Ci0gICAgICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0Up
OwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICB9Ci0gICAgaWYgKGdlbk1pcHMpIHsKLSAgICAg
ICAgZGVidWcoImdlbmVyYXRlIG1pcHMiKTsKLSAgICAgICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wu
VEVYVFVSRV8yRCk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sICJzaG91bGQgYmUgSU5WQUxJRF9PUEVSQVRJT04iKTsKLSAgICB9Ci0KLSAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCB0ZXh0dXJlKTsKLQotLy8gICAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJjYW52YXMiKTsKLS8vICAgIGMud2lkdGggPSAxNjsKLS8vICAgIGMuaGVpZ2h0ID0gMTY7
Ci0vLyAgICBjLnN0eWxlLmJvcmRlciA9ICIxcHggc29saWQgYmxhY2siOwotLy8gICAgdmFyIGN0
eCA9IGMuZ2V0Q29udGV4dCgiMmQiKTsKLS8vICAgIGN0eC5kcmF3SW1hZ2UodmlkZW9FbGVtZW50
LCAwLCAwLCAxNiwgMTYpOwotLy8gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTsKLQot
ICAgIC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBn
bC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7Ci0gICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0g
ICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgLy8g
Q2hlY2sgYSBmZXcgcGl4ZWxzIG5lYXIgdGhlIHRvcCBhbmQgYm90dG9tIGFuZCBtYWtlIHN1cmUg
dGhleSBoYXZlCi0gICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgotICAgIHZhciB0b2xlcmFuY2UgPSA1
OwotICAgIGRlYnVnKCJDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lciIpOwotICAgIHd0dS5jaGVj
a0NhbnZhc1JlY3QoZ2wsIDQsIDQsIDIsIDIsIGJvdHRvbUNvbG9yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgInNob3VsZEJlICIgKyBib3R0b21Db2xvciwgdG9sZXJhbmNlKTsKLSAgICBkZWJ1
ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0
KGdsLCA0LCBnbC5jYW52YXMuaGVpZ2h0IC0gOCwgMiwgMiwgdG9wQ29sb3IsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAic2hvdWxkQmUgIiArIHRvcENvbG9yLCB0b2xlcmFuY2UpOwotICAgIGRl
YnVnKCIiKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCh2aWRlb0VsZW1lbnQpCi17Ci0gICAgdmFy
IHJlZCA9IFsyNTUsIDAsIDBdOwotICAgIHZhciBncmVlbiA9IFswLCAyNTUsIDBdOwotICAgIHZh
ciBibGFjayA9IFswLCAwLCAwXTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCBm
YWxzZSwgdHJ1ZSwgYmxhY2ssIGJsYWNrLCB0cnVlLCB0cnVlLCB0cnVlKTsKLSAgICBydW5PbmVJ
dGVyYXRpb24odmlkZW9FbGVtZW50LCBmYWxzZSwgdHJ1ZSwgYmxhY2ssIGJsYWNrLCB0cnVlLCBm
YWxzZSwgZmFsc2UpOwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0
cnVlLCBibGFjaywgYmxhY2ssIGZhbHNlLCB0cnVlLCBmYWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0
aW9uKHZpZGVvRWxlbWVudCwgZmFsc2UsIHRydWUsIGJsYWNrLCBibGFjaywgdHJ1ZSwgdHJ1ZSwg
ZmFsc2UpOwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0cnVlLCBn
cmVlbiwgcmVkLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlk
ZW9FbGVtZW50LCBmYWxzZSwgZmFsc2UsIHJlZCwgZ3JlZW4sIGZhbHNlLCBmYWxzZSwgZmFsc2Up
OwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIHRydWUsIHRydWUsIGdyZWVuLCBy
ZWQsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1l
bnQsIHRydWUsIGZhbHNlLCByZWQsIGdyZWVuLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLQotICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7
Ci0gICAgZmluaXNoVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
ImluaXQoKSI+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNjQiIGhlaWdodD0iNDgiPjwv
Y2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08dmlkZW8gaWQ9InZpZCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgotICA8c291cmNl
IHNyYz0iLi4vcmVzb3VyY2VzL25wb3QtdmlkZW8ubXA0IiAgdHlwZT0ndmlkZW8vbXA0OyBjb2Rl
Y3M9ImF2YzEuNDJFMDFFIicgLz4KLSAgPHNvdXJjZSBzcmM9Ii4uL3Jlc291cmNlcy9ucG90LXZp
ZGVvLndlYm12cDgud2VibSIgdHlwZT0ndmlkZW8vd2VibTsgY29kZWNzPSJ2cDgiJyAvPgotICA8
c291cmNlIHNyYz0iLi4vcmVzb3VyY2VzL25wb3QtdmlkZW8udGhlb3JhLm9ndiIgIHR5cGU9J3Zp
ZGVvL29nZzsgY29kZWNzPSJ0aGVvcmEiJyAvPgotPC92aWRlbz4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ZGQ4YWYyODJlMTQ0Zjc5N2UwMWUzYjAyYjRiYmM0Njg5N2Nh
MjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyNDggKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0q
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
Ci0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+V2ViR0wgTm9uLVBvd2VyIG9mIDIgdGV4dHVyZSBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0
bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
IDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
NCIgaGVpZ2h0PSI0IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogMzBweDsiPjwvY2FudmFz
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRyaWJ1
dGUgdmVjNCB2UG9zaXRpb247Ci1hdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZDA7Ci12YXJ5aW5nIHZl
YzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9u
OwotICAgIHRleENvb3JkID0gdGV4Q29vcmQwOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9
ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7Ci11bmlmb3JtIHNhbXBsZXJDdWJlIHRleDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsK
LXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZUN1YmUodGV4LCBub3Jt
YWxpemUodmVjMyh0ZXhDb29yZCwgMSkpKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLWRlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKLXZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLXZhciBw
cm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotdmFy
IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLQotLy8gQ2hlY2sgdGhhdCBhbiBOUE9UIHRleHR1
cmUgbm90IG9uIGxldmVsIDAgZ2VuZXJhdGVzIElOVkFMSURfVkFMVUUKLXd0dS5maWxsVGV4dHVy
ZShnbCwgdGV4LCA1LCAzLCBbMCwgMTkyLCAxMjgsIDI1NV0sIDEpOwotZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX1ZBTFVFLAotICAgICJnbC50ZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0
dXJlIHdpdGggbGV2ZWwgPiAwIHNob3VsZCByZXR1cm4gSU5WQUxJRF9WQUxVRSIpOwotCi0vLyBD
aGVjayB0aGF0IGFuIE5QT1QgdGV4dHVyZSBvbiBsZXZlbCAwIHN1Y2NlZWRzCi13dHUuZmlsbFRl
eHR1cmUoZ2wsIHRleCwgNSwgMywgWzAsIDE5MiwgMTI4LCAyNTVdKTsKLWdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgImdsLnRleEltYWdlMkQgd2l0aCBOUE9UIHRleHR1cmUg
YXQgbGV2ZWwgMCBzaG91bGQgc3VjY2VlZCIpOwotCi0vLyBDaGVjayB0aGF0IGdlbmVyYXRlTWlw
bWFwIGZhaWxzIG9uIE5QT1QKLWdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpOwotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAiZ2wuZ2VuZXJhdGVN
aXBtYXAgd2l0aCBOUE9UIHRleHR1cmUgc2hvdWxkIHJldHVybiBJTlZBTElEX09QRVJBVElPTiIp
OwotCi12YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLWds
LnVuaWZvcm0xaShsb2MsIDApOwotCi0vLyBDaGVjayB0aGF0IG5vdGhpbmcgaXMgZHJhd24gaWYg
ZmlsdGVyaW5nIGlzIG5vdCBjb3JyZWN0IGZvciBOUE9UCi1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5S
RVBFQVQpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
VCwgZ2wuUkVQRUFUKTsKLQotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVj
a0NhbnZhcygKLSAgICBnbCwgWzAsIDAsIDAsIDI1NV0sCi0gICAgIk5QT1QgdGV4dHVyZSB3aXRo
IFRFWFRVUkVfV1JBUCBzZXQgdG8gUkVQRUFUIHNob3VsZCBkcmF3IHdpdGggMCwwLDAsMjU1Iik7
Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBm
cm9tIHNldHVwLiIpOwotCi1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1RfTUlQ
TUFQX0xJTkVBUik7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUuY2hlY2tD
YW52YXMoCi0gICAgZ2wsIFswLCAwLCAwLCAyNTVdLAotICAgICJOUE9UIHRleHR1cmUgd2l0aCBU
RVhUVVJFX01JTl9GSUxURVIgbm90IE5FQVJFU1Qgb3IgTElORUFSIHNob3VsZCBkcmF3IHdpdGgg
MCwwLDAsMjU1Iik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJl
IG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotCi1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLQotd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAsIDE5MiwgMTI4LCAy
NTVdLAotICAgICJOUE9UIHRleHR1cmUgd2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0IHRvIExJ
TkVBUiBzaG91bGQgZHJhdy4iKTsKLQotZ2wuY29weVRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MSwgZ2wuUkdCQSwgMCwgMCwgNSwgMywgMCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfVkFMVUUsCi0gICAgImNvcHlUZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0dXJlIHdpdGggbGV2
ZWwgPiAwIHNob3VsZCByZXR1cm4gSU5WQUxJRF9WQUxVRS4iKTsKLQotLy8gQ2hlY2sgdGhhdCBn
ZW5lcmF0ZU1pcG1hcCBmb3IgYW4gUE9UIHRleHR1cmUgc3VjY2VlZHMKLXd0dS5maWxsVGV4dHVy
ZShnbCwgdGV4LCA0LCA0LCBbMCwgMTkyLCAxMjgsIDI1NV0pOwotZ2wuZ2VuZXJhdGVNaXBtYXAo
Z2wuVEVYVFVSRV8yRCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICJn
bC50ZXhJbWFnZTJEIGFuZCBnbC5nZW5lcmF0ZU1pcG1hcCB3aXRoIFBPVCB0ZXh0dXJlIGF0IGxl
dmVsIDAgc2hvdWxkIHN1Y2NlZWQiKTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTElORUFSKTsKLWdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5F
QVIpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywg
Z2wuUkVQRUFUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9X
UkFQX1QsIGdsLlJFUEVBVCk7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUu
Y2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1XSwKLSAgICAiUE9UIHRleHR1
cmUgd2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0IHRvIExJTkVBUl9NSVBNQVBfTElORUFSIHNo
b3VsZCBkcmF3LiIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBi
ZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotZGVidWcoIiIpOwotZGVidWcoImNoZWNrIHVz
aW5nIGN1YmVtYXAiKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICBnbCwg
Wyd2c2hhZGVyJywgJ2ZzaGFkZXInXSwgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sIFswLCAx
XSk7Ci12YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotCi0vLyBDaGVjayB0aGF0IGFuIE5Q
T1QgdGV4dHVyZSBub3Qgb24gbGV2ZWwgMCBnZW5lcmF0ZXMgSU5WQUxJRF9WQUxVRQotZmlsbEN1
YmVUZXh0dXJlKGdsLCB0ZXgsIDUsIDMsIFswLCAxOTIsIDEyOCwgMjU1XSwgMSk7Ci1nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsCi0gICAgImdsLnRleEltYWdlMkQgd2l0aCBO
UE9UIHRleHR1cmUgd2l0aCBsZXZlbCA+IDAgc2hvdWxkIHJldHVybiBJTlZBTElEX1ZBTFVFIik7
Ci0KLS8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJlIG9uIGxldmVsIDAgc3VjY2VlZHMKLWZp
bGxDdWJlVGV4dHVyZShnbCwgdGV4LCA1LCA1LCBbMCwgMTkyLCAxMjgsIDI1NV0pOwotZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAiZ2wudGV4SW1hZ2UyRCB3aXRoIE5QT1Qg
dGV4dHVyZSBhdCBsZXZlbCAwIHNob3VsZCBzdWNjZWVkIik7Ci0KLS8vIENoZWNrIHRoYXQgZ2Vu
ZXJhdGVNaXBtYXAgZmFpbHMgb24gTlBPVAotZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9D
VUJFX01BUCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAotICAg
ICJnbC5nZW5lcmF0ZU1pcG1hcCB3aXRoIE5QT1QgdGV4dHVyZSBzaG91bGQgcmV0dXJuIElOVkFM
SURfT1BFUkFUSU9OIik7Ci0KLXZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3Jh
bSwgInRleCIpOwotZ2wudW5pZm9ybTFpKGxvYywgMCk7Ci0KLS8vIENoZWNrIHRoYXQgbm90aGlu
ZyBpcyBkcmF3biBpZiBmaWx0ZXJpbmcgaXMgbm90IGNvcnJlY3QgZm9yIE5QT1QKLWdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5O
RUFSRVNUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVS
RV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9D
VUJFX01BUCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLlJFUEVBVCk7Ci1nbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5SRVBFQVQpOwotCi13
dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBb
MCwgMCwgMCwgMjU1XSwKLSAgICAiTlBPVCBjdWJlbWFwIHdpdGggVEVYVFVSRV9XUkFQIHNldCB0
byBSRVBFQVQgc2hvdWxkIGRyYXcgd2l0aCAwLDAsMCwyNTUiKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGds
LkNMQU1QX1RPX0VER0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBn
bC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVF9NSVBN
QVBfTElORUFSKTsKLQotd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0Nh
bnZhcygKLSAgICBnbCwgWzAsIDAsIDAsIDI1NV0sCi0gICAgIk5QT1QgY3ViZW1hcCB3aXRoIFRF
WFRVUkVfTUlOX0ZJTFRFUiBub3QgTkVBUkVTVCBvciBMSU5FQVIgc2hvdWxkIGRyYXcgd2l0aCAw
LDAsMCwyNTUiKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUg
bm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9D
VUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotCi13dHUuY2xlYXJB
bmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMTkyLCAx
MjgsIDI1NV0sCi0gICAgIk5QT1QgY3ViZW1hcCB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBzZXQg
dG8gTElORUFSIHNob3VsZCBkcmF3LiIpOwotCi0vLyBDaGVjayB0aGF0IGFuIFBPVCB0ZXh0dXJl
IG9uIGxldmVsIDAgc3VjY2VlZHMKLWZpbGxDdWJlVGV4dHVyZShnbCwgdGV4LCA0LCA0LCBbMCwg
MTkyLCAxMjgsIDI1NV0pOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAi
Z2wudGV4SW1hZ2UyRCB3aXRoIFBPVCB0ZXh0dXJlIGF0IGxldmVsIDAgc2hvdWxkIHN1Y2NlZWQi
KTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01J
Tl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTElORUFSKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwotZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX1dSQVBfUywgZ2wu
UkVQRUFUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVS
RV9XUkFQX1QsIGdsLlJFUEVBVCk7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13
dHUuY2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAwLCAwLCAyNTVdLAotICAgICJQT1QgY3ViZW1h
cCB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBzZXQgdG8gTElORUFSX01JUE1BUF9MSU5FQVIgYnV0
IG5vIG1pcHMgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOwotCi0vLyBDaGVjayB0aGF0IGdlbmVyYXRl
TWlwbWFwIHN1Y2NlZWRzIG9uIFBPVAotZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9DVUJF
X01BUCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICJnbC5nZW5lcmF0
ZU1pcG1hcCB3aXRoIFBPVCB0ZXh0dXJlIHNob3VsZCByZXR1cm4gc3VjY2VlZCIpOwotCi13dHUu
Y2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwg
MTkyLCAxMjgsIDI1NV0sCi0gICAgIlBPVCBjdWJlbWFwIHdpdGggVEVYVFVSRV9NSU5fRklMVEVS
IHNldCB0byBMSU5FQVJfTUlQTUFQX0xJTkVBUiBzaG91bGQgZHJhdy4iKTsKLQotdmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLWZ1bmN0aW9uIGZpbGxDdWJlVGV4dHVyZShnbCwgdGV4
LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2xldmVsKSB7Ci0gIG9wdF9sZXZlbCA9IG9wdF9s
ZXZlbCB8fCAwOwotICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFz
Jyk7Ci0gIGNhbnZhcy53aWR0aCA9IHdpZHRoOwotICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0Owot
ICB2YXIgY3R4MmQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgY3R4MmQuZmlsbFN0eWxl
ID0gInJnYmEoIiArIGNvbG9yWzBdICsgIiwiICsgY29sb3JbMV0gKyAiLCIgKyBjb2xvclsyXSAr
ICIsIiArIGNvbG9yWzNdICsgIikiOwotICBjdHgyZC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVp
Z2h0KTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4KTsKLSAgdmFy
IHRhcmdldHMgPSBbCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgIGds
LlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1pdOwotICBmb3IgKHZhciB0dCA9IDA7IHR0IDwgdGFyZ2V0cy5sZW5ndGg7ICsrdHQpIHsK
LSAgICBnbC50ZXhJbWFnZTJEKAotICAgICAgICB0YXJnZXRzW3R0XSwgb3B0X2xldmVsLCBnbC5S
R0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMpOwotICB9Ci19OwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3ZjQ1NGM0M2I5MWVlNTlmMjBmZWUyMGZhMzg3OWExM2ZiMmM4YTk4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWN1YmUtbWFwcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzU1ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAot
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PHRpdGxlPldlYkdMIHRleHR1cmUgc2l6ZSBjdWJlIG1hcCBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0
bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIy
NTYiIGhlaWdodD0iMjU2IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2Fu
dmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRy
aWJ1dGUgdmVjNCB2UG9zaXRpb247Ci11bmlmb3JtIG1hdDQgcm90YXRpb247Ci12YXJ5aW5nIHZl
YzMgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9u
OwotICAgIHZlYzQgZGlyZWN0aW9uID0gdmVjNCh2UG9zaXRpb24ueCAqIDAuNSwgdlBvc2l0aW9u
LnkgKiAwLjUsIDEsIDEpOwotICAgIHRleENvb3JkID0gbm9ybWFsaXplKChyb3RhdGlvbiAqIGRp
cmVjdGlvbikueHl6KTsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBl
PSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotdW5pZm9y
bSBzYW1wbGVyQ3ViZSB0ZXg7Ci12YXJ5aW5nIHZlYzMgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQot
ewotICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmVDdWJlKHRleCwgbm9ybWFsaXplKHRleENvb3Jk
KSk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgY2FudmFzOwot
ZGVzY3JpcHRpb24oIkNoZWNrcyBpc3N1ZXMgd2l0aCBzaXplIG9mIGN1YmUgbWFwIHRleHR1cmVz
Iik7Ci1kZWJ1ZygiIik7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwotCi12YXIgZ2wgPSB3dHUuY3Jl
YXRlM0RDb250ZXh0KGNhbnZhcyk7Ci13dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7Ci12YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCi0gICAgZ2wsCi0gICAgWyd2c2hhZGVyJywgJ2Zz
aGFkZXInXSwKLSAgICBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKLXZhciBy
b3RMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInJvdGF0aW9uIik7Ci0KLWds
LmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci1nbC5kaXNhYmxlKGdsLkJMRU5EKTsKLQotdmFyIG1h
eFNpemUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSk7Ci1k
ZWJ1ZygibWF4IGN1YmUgbWFwIHNpemU6ICIgKyBtYXhTaXplKTsKLW1heFNpemUgPSBNYXRoLm1p
big1MTIsIG1heFNpemUpOwotCi0vLyBhIGN1YmUgbWFwIG9mIDUxMng1MTIgdGFrZXMgNm1lZy4g
SSdtIGFzc3VtaW5nIGl0J3Mgbm90Ci0vLyB1bnJlYXNvbmFibGUgdG8gZXhwZWN0IHRvIGJlIGFi
bGUgdG8gYWxsb2NhdGUgYSA2bWVnIHRleHR1cmUKLQotdmFyIGNvbG9ycyA9IFsKLSAge25hbWU6
ICdyZWQnLCAgICAgY29sb3I6IFsyNTUsICAgMCwgICAwLCAyNTVdfSwKLSAge25hbWU6ICdncmVl
bicsICAgY29sb3I6IFsgIDAsIDI1NSwgICAwLCAyNTVdfSwKLSAge25hbWU6ICdibHVlJywgICAg
Y29sb3I6IFsgIDAsICAgMCwgMjU1LCAyNTVdfSwKLSAge25hbWU6ICd5ZWxsb3cnLCAgY29sb3I6
IFsyNTUsIDI1NSwgICAwLCAyNTVdfSwKLSAge25hbWU6ICdjeWFuJywgICAgY29sb3I6IFsgIDAs
IDI1NSwgMjU1LCAyNTVdfSwKLSAge25hbWU6ICdtYWdlbnRhJywgY29sb3I6IFsyNTUsICAgMCwg
MjU1LCAyNTVdfQotXTsKLQotdmFyIHRhcmdldHMgPSBbCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBf
UE9TSVRJVkVfWCwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAotICBnbC5URVhU
VVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVf
WSwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICBnbC5URVhUVVJFX0NVQkVf
TUFQX05FR0FUSVZFX1pdOwotCi12YXIgcm90YXRpb25zID0gWwotICB7YXhpczogWzAsIDEsIDBd
LCBhbmdsZTogIE1hdGguUEkgLyAyfSwKLSAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6IC1NYXRo
LlBJIC8gMn0sCi0gIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDJ9LAotICB7
YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKLSAge2F4aXM6IFswLCAxLCAw
XSwgYW5nbGU6ICAwfSwKLSAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJfSwKLV07
Ci0KLXZhciBoYWxmUm90YXRpb25zID0gWwotICB7Y29sb3JzOiBbMywgNF0sIHJvdGF0aW9uczog
W3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDR9XX0sCi0gIHtjb2xvcnM6IFs0
LCAyXSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNH1d
fSwKLSAge2NvbG9yczogWzUsIDNdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmds
ZTogIE1hdGguUEkgLyA0ICogM31dfSwKLSAge2NvbG9yczogWzIsIDVdLCByb3RhdGlvbnM6IFt7
YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0ICogM31dfSwKLSAge2NvbG9yczog
WzMsIDBdLCByb3RhdGlvbnM6IFt7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAy
fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXhpczogWzEsIDAsIDBdLCBhbmds
ZTogIE1hdGguUEkgLyA0fV19LAotICB7Y29sb3JzOiBbMCwgMl0sIHJvdGF0aW9uczogW3theGlz
OiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDR9XX0sCi1dOwot
Ci12YXIgY291bnQgPSAwOwotdmFyIHNpemVDb3VudCA9IDA7Ci0KLXRlc3QoKTsKLQotZnVuY3Rp
b24gdGVzdCgpIHsKLSAgdmFyIHNpemUgPSBNYXRoLnBvdygyLCBzaXplQ291bnQpOwotICBpZiAo
c2l6ZSA+IG1heFNpemUgfHwgIXRlc3RTaXplKHNpemUpKSB7Ci0gICAgZmluaXNoVGVzdCgpOwot
ICB9IGVsc2UgewotICAgICsrc2l6ZUNvdW50OwotICAgIHNldFRpbWVvdXQodGVzdCwgMCk7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gdGVzdFNpemUoc2l6ZSkgewotICBkZWJ1ZygiIik7Ci0gIGRlYnVn
KCJ0ZXN0aW5nIHNpemU6ICIgKyBzaXplKTsKLSAgdmFyIGNhbnZhc1NpemUgPSBNYXRoLm1heChz
aXplIC8gNCwgMik7Ci0gIGNhbnZhcy53aWR0aCA9IGNhbnZhc1NpemU7Ci0gIGNhbnZhcy5oZWln
aHQgPSBjYW52YXNTaXplOwotICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXNTaXplLCBjYW52YXNT
aXplKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4KTsKLQotICAvLyBTZWVtcyBsaWtlIEkgc2hvdWxkIGJl
IHVzaW5nIExJTkVBUiBoZXJlIHdpdGggc29tZSBvdGhlciBtYXRoCi0gIC8vIHRvIG1ha2Ugc3Vy
ZSBJIGdldCBtb3JlIG1pcCBjb3ZlcmFnZSBidXQgdGhhdCdzIGVhc2llciBzYWlkCi0gIC8vIHRo
YW4gZG9uZS4KLQotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRF
WFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLQotICBm
b3IgKHZhciBqaiA9IDA7IGpqIDwgMjsgKytqaikgewotICAgIGZvciAodmFyIHR0ID0gMDsgdHQg
PCB0YXJnZXRzLmxlbmd0aDsgKyt0dCkgewotICAgICAgdmFyIGNvbG9yID0gY29sb3JzWyh0dCAr
IGNvdW50KSAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgZmlsbExldmVsKHRhcmdldHNbdHRdLCAw
LCBzaXplLCBjb2xvci5jb2xvcik7Ci0gICAgfQotICAgIGlmIChqaiA9PSAxKSB7Ci0gICAgICBk
ZWJ1ZygidXNlIG1pcG1hcCIpOwotICAgICAgZ2wudGV4UGFyYW1ldGVyaSgKLSAgICAgICAgICBn
bC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9GSUxURVIsCi0gICAgICAgICAgZ2wu
TkVBUkVTVF9NSVBNQVBfTkVBUkVTVCk7Ci0gICAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhU
VVJFX0NVQkVfTUFQKTsKLSAgICB9Ci0KLSAgICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKLSAg
ICBpZiAoZXJyID09IGdsLk9VVF9PRl9NRU1PUlkpIHsKLSAgICAgIGRlYnVnKCJvdXQgb2YgbWVt
b3J5Iik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmIChlcnIgIT0gZ2wuTk9f
RVJST1IpIHsKLSAgICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZ2wgZXJyb3I6ICIgKyB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIGVycikpOwotICAgIH0KLQotCi0gICAgZm9yICh2YXIgcnIgPSAw
OyByciA8IHJvdGF0aW9ucy5sZW5ndGg7ICsrcnIpIHsKLSAgICAgIHZhciByb3QgPSByb3RhdGlv
bnNbcnJdOwotICAgICAgdmFyIGNvbG9yID0gY29sb3JzWyhyciArIGNvdW50KSAlIGNvbG9ycy5s
ZW5ndGhdOwotICAgICAgdmFyIHJvdE1hdCA9IGF4aXNSb3RhdGlvbihyb3QuYXhpcywgcm90LmFu
Z2xlKTsKLSAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYocm90TG9jLCBmYWxzZSwgcm90TWF0KTsK
LSAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gICAgICB3dHUuY2hlY2tDYW52
YXMoCi0gICAgICAgICAgZ2wsIGNvbG9yLmNvbG9yLAotICAgICAgICAgIHd0dS5nbEVudW1Ub1N0
cmluZyhnbCwgdGFyZ2V0c1tycl0pICsgIiBzaG91bGQgYmUgIiArIGNvbG9yLm5hbWUpOwotICAg
IH0KLQotICAgIGZvciAodmFyIHJyID0gMDsgcnIgPCBoYWxmUm90YXRpb25zLmxlbmd0aDsgKyty
cikgewotICAgICAgdmFyIGggPSBoYWxmUm90YXRpb25zW3JyXTsKLSAgICAgIHZhciByb3RzID0g
aC5yb3RhdGlvbnM7Ci0gICAgICB2YXIgcm90TWF0ID0gYXhpc1JvdGF0aW9uKHJvdHNbMF0uYXhp
cywgcm90c1swXS5hbmdsZSk7Ci0gICAgICBmb3IgKHZhciBpaSA9IDE7IGlpIDwgcm90cy5sZW5n
dGg7ICsraWkpIHsKLSAgICAgICAgdmFyIHRtcE1hdCA9IGF4aXNSb3RhdGlvbihyb3RzW2lpXS5h
eGlzLCByb3RzW2lpXS5hbmdsZSk7Ci0gICAgICAgIHZhciByb3RNYXQgPSBtdWxNYXRyaXgodG1w
TWF0LCByb3RNYXQpOwotICAgICAgfQotICAgICAgZ2wudW5pZm9ybU1hdHJpeDRmdihyb3RMb2Ms
IGZhbHNlLCByb3RNYXQpOwotICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLQot
ICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDI7ICsraWkpIHsKLSAgICAgICAgY2hlY2tSZWN0
KAotICAgICAgICAgICAgMCwKLSAgICAgICAgICAgIGNhbnZhc1NpemUgLyAyICogaWksCi0gICAg
ICAgICAgICBjYW52YXNTaXplLAotICAgICAgICAgICAgY2FudmFzU2l6ZSAvIDIsCi0gICAgICAg
ICAgICBjb2xvcnNbKGguY29sb3JzW2lpXSArIGNvdW50KSAlIGNvbG9ycy5sZW5ndGhdKTsKLSAg
ICAgIH0KLSAgICB9Ci0gICAgKytjb3VudDsKLSAgfQotCi0gIGdsLmRlbGV0ZVRleHR1cmUodGV4
KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzLiIpOwotCi1mdW5jdGlvbiBjaGVja1JlY3QoeCwgeSwgd2lk
dGgsIGhlaWdodCwgY29sb3IpIHsKLSAgd3R1LmNoZWNrQ2FudmFzUmVjdCgKLSAgICAgICBnbCwK
LSAgICAgICB4LAotICAgICAgIHksCi0gICAgICAgd2lkdGgsCi0gICAgICAgaGVpZ2h0LAotICAg
ICAgIGNvbG9yLmNvbG9yLAotICAgICAgICIiICsgeCArICIsICIgKyB5ICsgIiwgIiArIHdpZHRo
ICsgIiwgIiArIGhlaWdodCArCi0gICAgICAgIiBzaG91bGQgYmUgIiArIGNvbG9yLm5hbWUpOwot
fQotCi1mdW5jdGlvbiBmaWxsTGV2ZWwodGFyZ2V0LCBsZXZlbCwgc2l6ZSwgY29sb3IpIHsKLSAg
dmFyIG51bVBpeGVscyA9IHNpemUgKiBzaXplOwotICB2YXIgcGl4ZWxzID0gbmV3IFVpbnQ4QXJy
YXkobnVtUGl4ZWxzICogNCk7Ci0gIHZhciBwaXhlbFJvdyA9IG5ldyBVaW50OEFycmF5KHNpemUg
KiA0KTsKLSAgZm9yICh2YXIgamogPSAwOyBqaiA8IHNpemU7ICsramopIHsKLSAgICB2YXIgb2Zm
ID0gamogKiA0OwotICAgIHBpeGVsUm93W29mZiArIDBdID0gY29sb3JbMF07Ci0gICAgcGl4ZWxS
b3dbb2ZmICsgMV0gPSBjb2xvclsxXTsKLSAgICBwaXhlbFJvd1tvZmYgKyAyXSA9IGNvbG9yWzJd
OwotICAgIHBpeGVsUm93W29mZiArIDNdID0gY29sb3JbM107Ci0gIH0KLSAgZm9yICh2YXIgamog
PSAwOyBqaiA8IHNpemU7ICsramopIHsKLSAgICB2YXIgb2ZmID0gamogKiBzaXplICogNDsKLSAg
ICBwaXhlbHMuc2V0KHBpeGVsUm93LCBvZmYpOwotICB9Ci0gIGdsLnRleEltYWdlMkQoCi0gICAg
ICB0YXJnZXQsIGxldmVsLCBnbC5SR0JBLCBzaXplLCBzaXplLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLAotICAgICAgcGl4ZWxzKTsKLX0KLQotZnVuY3Rpb24gcHJpbnRNYXQobWF0KSB7
Ci0gIGRlYnVnKCIiICsgbWF0WzBdICsgIiwgIiArIG1hdFsxXSArICIsICIgKyBtYXRbMl0gKyAi
LCAiICsgbWF0WzNdICsgIiwgIik7Ci0gIGRlYnVnKCIiICsgbWF0WzRdICsgIiwgIiArIG1hdFs1
XSArICIsICIgKyBtYXRbNl0gKyAiLCAiICsgbWF0WzddICsgIiwgIik7Ci0gIGRlYnVnKCIiICsg
bWF0WzhdICsgIiwgIiArIG1hdFs5XSArICIsICIgKyBtYXRbMTBdICsgIiwgIiArIG1hdFsxMV0g
KyAiLCAiKTsKLSAgZGVidWcoIiIgKyBtYXRbMTJdICsgIiwgIiArIG1hdFsxM10gKyAiLCAiICsg
bWF0WzE0XSArICIsICIgKyBtYXRbMTVdICsgIiwgIik7Ci19Ci0KLWZ1bmN0aW9uIGF4aXNSb3Rh
dGlvbihheGlzLCBhbmdsZSkgewotICB2YXIgZHN0ID0gbmV3IEZsb2F0MzJBcnJheSgxNik7Ci0g
IHZhciB4ID0gYXhpc1swXTsKLSAgdmFyIHkgPSBheGlzWzFdOwotICB2YXIgeiA9IGF4aXNbMl07
Ci0gIHZhciBuID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkgKyB6ICogeik7Ci0gIHggLz0gbjsK
LSAgeSAvPSBuOwotICB6IC89IG47Ci0gIHZhciB4eCA9IHggKiB4OwotICB2YXIgeXkgPSB5ICog
eTsKLSAgdmFyIHp6ID0geiAqIHo7Ci0gIHZhciBjID0gTWF0aC5jb3MoYW5nbGUpOwotICB2YXIg
cyA9IE1hdGguc2luKGFuZ2xlKTsKLSAgdmFyIG9uZU1pbnVzQ29zaW5lID0gMSAtIGM7Ci0KLSAg
ZHN0WyAwXSA9IHh4ICsgKDEgLSB4eCkgKiBjOwotICBkc3RbIDFdID0geCAqIHkgKiBvbmVNaW51
c0Nvc2luZSArIHogKiBzOwotICBkc3RbIDJdID0geCAqIHogKiBvbmVNaW51c0Nvc2luZSAtIHkg
KiBzOwotICBkc3RbIDNdID0gMDsKLSAgZHN0WyA0XSA9IHggKiB5ICogb25lTWludXNDb3NpbmUg
LSB6ICogczsKLSAgZHN0WyA1XSA9IHl5ICsgKDEgLSB5eSkgKiBjOwotICBkc3RbIDZdID0geSAq
IHogKiBvbmVNaW51c0Nvc2luZSArIHggKiBzOwotICBkc3RbIDddID0gMDsKLSAgZHN0WyA4XSA9
IHggKiB6ICogb25lTWludXNDb3NpbmUgKyB5ICogczsKLSAgZHN0WyA5XSA9IHkgKiB6ICogb25l
TWludXNDb3NpbmUgLSB4ICogczsKLSAgZHN0WzEwXSA9IHp6ICsgKDEgLSB6eikgKiBjOwotICBk
c3RbMTFdID0gMDsKLSAgZHN0WzEyXSA9IDA7Ci0gIGRzdFsxM10gPSAwOwotICBkc3RbMTRdID0g
MDsKLSAgZHN0WzE1XSA9IDE7Ci0KLSAgcmV0dXJuIGRzdDsKLX07Ci0KLWZ1bmN0aW9uIG11bE1h
dHJpeChhLCBiKSB7Ci0gIHZhciBkc3QgPSBuZXcgRmxvYXQzMkFycmF5KDE2KTsKLSAgdmFyIGEw
MCA9IGFbMF07Ci0gIHZhciBhMDEgPSBhWzFdOwotICB2YXIgYTAyID0gYVsyXTsKLSAgdmFyIGEw
MyA9IGFbM107Ci0gIHZhciBhMTAgPSBhWyA0ICsgMF07Ci0gIHZhciBhMTEgPSBhWyA0ICsgMV07
Ci0gIHZhciBhMTIgPSBhWyA0ICsgMl07Ci0gIHZhciBhMTMgPSBhWyA0ICsgM107Ci0gIHZhciBh
MjAgPSBhWyA4ICsgMF07Ci0gIHZhciBhMjEgPSBhWyA4ICsgMV07Ci0gIHZhciBhMjIgPSBhWyA4
ICsgMl07Ci0gIHZhciBhMjMgPSBhWyA4ICsgM107Ci0gIHZhciBhMzAgPSBhWzEyICsgMF07Ci0g
IHZhciBhMzEgPSBhWzEyICsgMV07Ci0gIHZhciBhMzIgPSBhWzEyICsgMl07Ci0gIHZhciBhMzMg
PSBhWzEyICsgM107Ci0gIHZhciBiMDAgPSBiWzBdOwotICB2YXIgYjAxID0gYlsxXTsKLSAgdmFy
IGIwMiA9IGJbMl07Ci0gIHZhciBiMDMgPSBiWzNdOwotICB2YXIgYjEwID0gYlsgNCArIDBdOwot
ICB2YXIgYjExID0gYlsgNCArIDFdOwotICB2YXIgYjEyID0gYlsgNCArIDJdOwotICB2YXIgYjEz
ID0gYlsgNCArIDNdOwotICB2YXIgYjIwID0gYlsgOCArIDBdOwotICB2YXIgYjIxID0gYlsgOCAr
IDFdOwotICB2YXIgYjIyID0gYlsgOCArIDJdOwotICB2YXIgYjIzID0gYlsgOCArIDNdOwotICB2
YXIgYjMwID0gYlsxMiArIDBdOwotICB2YXIgYjMxID0gYlsxMiArIDFdOwotICB2YXIgYjMyID0g
YlsxMiArIDJdOwotICB2YXIgYjMzID0gYlsxMiArIDNdOwotICBkc3RbIDBdID0gYTAwICogYjAw
ICsgYTAxICogYjEwICsgYTAyICogYjIwICsgYTAzICogYjMwOwotICBkc3RbIDFdID0gYTAwICog
YjAxICsgYTAxICogYjExICsgYTAyICogYjIxICsgYTAzICogYjMxOwotICBkc3RbIDJdID0gYTAw
ICogYjAyICsgYTAxICogYjEyICsgYTAyICogYjIyICsgYTAzICogYjMyOwotICBkc3RbIDNdID0g
YTAwICogYjAzICsgYTAxICogYjEzICsgYTAyICogYjIzICsgYTAzICogYjMzOwotICBkc3RbIDRd
ID0gYTEwICogYjAwICsgYTExICogYjEwICsgYTEyICogYjIwICsgYTEzICogYjMwOwotICBkc3Rb
IDVdID0gYTEwICogYjAxICsgYTExICogYjExICsgYTEyICogYjIxICsgYTEzICogYjMxOwotICBk
c3RbIDZdID0gYTEwICogYjAyICsgYTExICogYjEyICsgYTEyICogYjIyICsgYTEzICogYjMyOwot
ICBkc3RbIDddID0gYTEwICogYjAzICsgYTExICogYjEzICsgYTEyICogYjIzICsgYTEzICogYjMz
OwotICBkc3RbIDhdID0gYTIwICogYjAwICsgYTIxICogYjEwICsgYTIyICogYjIwICsgYTIzICog
YjMwOwotICBkc3RbIDldID0gYTIwICogYjAxICsgYTIxICogYjExICsgYTIyICogYjIxICsgYTIz
ICogYjMxOwotICBkc3RbMTBdID0gYTIwICogYjAyICsgYTIxICogYjEyICsgYTIyICogYjIyICsg
YTIzICogYjMyOwotICBkc3RbMTFdID0gYTIwICogYjAzICsgYTIxICogYjEzICsgYTIyICogYjIz
ICsgYTIzICogYjMzOwotICBkc3RbMTJdID0gYTMwICogYjAwICsgYTMxICogYjEwICsgYTMyICog
YjIwICsgYTMzICogYjMwOwotICBkc3RbMTNdID0gYTMwICogYjAxICsgYTMxICogYjExICsgYTMy
ICogYjIxICsgYTMzICogYjMxOwotICBkc3RbMTRdID0gYTMwICogYjAyICsgYTMxICogYjEyICsg
YTMyICogYjIyICsgYTMzICogYjMyOwotICBkc3RbMTVdID0gYTMwICogYjAzICsgYTMxICogYjEz
ICsgYTMyICogYjIzICsgYTMzICogYjMzOwotICByZXR1cm4gZHN0OwotfTsKLQotdmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1saW1pdC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtbGltaXQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDNkYTlhNjNkM2UxNzgxMzRlMjA1OTcxNTVh
Y2M3OThkODIzZTU2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1saW1pdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTU5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAo
YykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoq
IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwot
KiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoq
IE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMu
Ci0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRleHR1cmUgc2l6ZSBsaW1pdCBjb25mb3JtYW5j
ZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQw
cHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCJDaGVj
a3MgdGhhdCB2YXJpb3VzIHNpemVzIGxpbWl0cyBvZiB0ZXh0dXJlcyAiKQotdmFyIGNhbnZhczsK
LQotZnVuY3Rpb24gbnVtTGV2ZWxzRnJvbVNpemUoc2l6ZSkgewotICB2YXIgbGV2ZWxzID0gMDsK
LSAgd2hpbGUgKChzaXplID4+IGxldmVscykgPiAwKSB7Ci0gICAgKytsZXZlbHM7Ci0gIH0KLSAg
cmV0dXJuIGxldmVsczsKLX0KLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotdmFyIHRlc3RzID0gWwotICB7IGZvcm1h
dDogZ2wuQUxQSEEsICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLCAgICAgICAgICBz
aXplOiAxLCBkYXRhVHlwZTogVWludDhBcnJheSAgfSwKLSAgeyBmb3JtYXQ6IGdsLkxVTUlOQU5D
RSwgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwgICAgICAgICAgc2l6ZTogMSwgZGF0YVR5
cGU6IFVpbnQ4QXJyYXkgIH0sCi0gIHsgZm9ybWF0OiBnbC5MVU1JTkFOQ0VfQUxQSEEsIHR5cGU6
IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6IDIsIGRhdGFUeXBlOiBVaW50OEFycmF5
ICB9LAotICB7IGZvcm1hdDogZ2wuUkdCLCAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9C
WVRFLCAgICAgICAgICBzaXplOiAzLCBkYXRhVHlwZTogVWludDhBcnJheSAgfSwKLSAgeyBmb3Jt
YXQ6IGdsLlJHQiwgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV82XzUsICAg
c2l6ZTogMSwgZGF0YVR5cGU6IFVpbnQxNkFycmF5IH0sCi0gIHsgZm9ybWF0OiBnbC5SR0JBLCAg
ICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6IDQsIGRhdGFU
eXBlOiBVaW50OEFycmF5ICB9LAotICB7IGZvcm1hdDogZ2wuUkdCQSwgICAgICAgICAgICB0eXBl
OiBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80LCBzaXplOiAxLCBkYXRhVHlwZTogVWludDE2QXJy
YXkgfSwKLSAgeyBmb3JtYXQ6IGdsLlJHQkEsICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURf
U0hPUlRfNV81XzVfMSwgc2l6ZTogMSwgZGF0YVR5cGU6IFVpbnQxNkFycmF5IH0KLV07Ci0KLS8v
IE5vdGU6IFdlIGV4cHJlc3NseSBvbmx5IHVzZSAyIHRleHR1cmVzIGJlY2F1c2UgZmlyc3QgYSB0
ZXh0dXJlIHdpbGwgYmUgZGVmaW5lZAotLy8gYXMgdXNpbmcgYWxsIG1pcHMgb2YgMSBmb3JtYXQs
IHRoZW4gZm9yIGEgbW9tZW50IGl0IHdpbGwgaGF2ZSBtaXhlZCBmb3JtYXRzIHdoaWNoCi0vLyBt
YXkgdW5jb3ZlciBidWdzLgotdmFyIHRhcmdldHMgPSBbCi0gIHsgdGFyZ2V0OiBnbC5URVhUVVJF
XzJELAotICAgIG1heFNpemU6IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVEVYVFVSRV9TSVpFKSwK
LSAgICBtYXhMZXZlbDogMTAwMCwKLSAgICB0ZXg6IGdsLmNyZWF0ZVRleHR1cmUoKSwKLSAgICB0
YXJnZXRzOiBbZ2wuVEVYVFVSRV8yRF0KLSAgfSwKLSAgeyB0YXJnZXQ6IGdsLlRFWFRVUkVfQ1VC
RV9NQVAsCi0gICAgbWF4U2l6ZTogZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DVUJFX01BUF9URVhU
VVJFX1NJWkUpLAotICAgIG1heExldmVsOiA1LAotICAgIHRleDogZ2wuY3JlYXRlVGV4dHVyZSgp
LAotICAgIHRhcmdldHM6IFsKLSAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwK
LSAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgICAgIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVf
WSwKLSAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWgotICAgIF0KLSAgfQotXTsKLQotZ2wucGl4ZWxTdG9yZWko
Z2wuVU5QQUNLX0FMSUdOTUVOVCwgMSk7Ci0KLXZhciB0cmcgPSAwOwotdmFyIHR0ID0gMDsKLXJ1
bk5leHRUZXN0KCk7Ci0KLWZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewotICB2YXIgdCA9IHRhcmdl
dHNbdHJnXTsKLQotICBpZiAodHQgPT0gMCkgewotICAgIHZhciB0ZXggPSB0LnRleDsKLSAgICBn
bC5iaW5kVGV4dHVyZSh0LnRhcmdldCwgdGV4KTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1
ZygibWF4IHNpemUgZm9yICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHQudGFyZ2V0KSArICI6
ICIgKyB0Lm1heFNpemUpOwotICAgIHZhciBudW1MZXZlbHMgPSBudW1MZXZlbHNGcm9tU2l6ZSh0
Lm1heFNpemUpOwotICAgIGRlYnVnKCJudW0gbGV2ZWxzICIgKyBudW1MZXZlbHMpOwotICB9Ci0K
LSAgdmFyIHRlc3QgPSB0ZXN0c1t0dF07Ci0gIHRlc3RGb3JtYXRUeXBlKHQsIHRlc3QpOwotICAr
K3R0OwotICBpZiAodHQgPT0gdGVzdHMubGVuZ3RoKSB7Ci0gICAgdHQgPSAwOwotICAgICsrdHJn
OwotICAgIGlmICh0cmcgPT0gdGFyZ2V0cy5sZW5ndGgpIHsKLSAgICAgIGZpbmlzaFRlc3QoKTsK
LSAgICAgIHJldHVybjsKLSAgICB9Ci0gIH0KLSAgd3R1LndhaXRGb3JDb21wb3NpdGUoZ2wsIHJ1
bk5leHRUZXN0KQotfQotCi1mdW5jdGlvbiB0ZXN0Rm9ybWF0VHlwZSh0LCB0ZXN0KSB7Ci0gIGRl
YnVnKCIiKTsKLSAgZGVidWcoInRlc3Rpbmc6ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRl
c3QuZm9ybWF0KSArICIsICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRlc3QudHlwZSkpOwot
ICBmb3IgKHZhciBqID0gMDsgaiA8IHQudGFyZ2V0cy5sZW5ndGg7ICsraikgewotICAgIHZhciB0
YXJnZXQgPSB0LnRhcmdldHNbal07Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKHd0dS5nbEVu
dW1Ub1N0cmluZyhnbCwgdGFyZ2V0KSk7Ci0gICAgdmFyIG51bUxldmVscyA9IG51bUxldmVsc0Zy
b21TaXplKHQubWF4U2l6ZSk7Ci0gICAgdmFyIG51bVRlc3RMZXZlbHMgPSBNYXRoLm1pbihudW1M
ZXZlbHMsIHQubWF4TGV2ZWwpOwotICAgIGZvciAodmFyIGwgPSAwOyBsIDwgbnVtVGVzdExldmVs
czsgKytsKSB7Ci0gICAgICAvLyBEbyBib3R0b20gbGV2ZWxzIGZpcnN0OwotICAgICAgdmFyIHNp
emUgPSAxIDw8IGw7Ci0gICAgICB2YXIgbGV2ZWwgPSBudW1MZXZlbHMgLSBsIC0gMTsKLSAgICAg
IHZhciBvdGhlckRpbWVuc2lvbiA9IHQudGFyZ2V0ID09IGdsLlRFWFRVUkVfMkQgPyAxIDogc2l6
ZTsKLSAgICAgIHZhciBiYWRTaXplID0gc2l6ZSAqIDI7Ci0gICAgICB2YXIgYmFkT3RoZXJEaW1l
bnNpb24gPSB0LnRhcmdldCA9PSBnbC5URVhUVVJFXzJEID8gMSA6IGJhZFNpemU7Ci0gICAgICB2
YXIgcGl4ZWxzID0gbmV3IHRlc3QuZGF0YVR5cGUoYmFkU2l6ZSAqIGJhZE90aGVyRGltZW5zaW9u
ICogdGVzdC5zaXplKTsKLSAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdC5m
b3JtYXQsIHNpemUsIG90aGVyRGltZW5zaW9uLCAwLCB0ZXN0LmZvcm1hdCwgdGVzdC50eXBlLCBw
aXhlbHMpOwotICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNo
b3VsZCBiZSBubyBlcnJvciBmb3IgbGV2ZWw6ICIgKyBsZXZlbCArICIgIiArIHNpemUgKyAieCIg
KyBvdGhlckRpbWVuc2lvbik7Ci0gICAgICBnbC50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRl
c3QuZm9ybWF0LCBvdGhlckRpbWVuc2lvbiwgc2l6ZSwgMCwgdGVzdC5mb3JtYXQsIHRlc3QudHlw
ZSwgcGl4ZWxzKTsKLSAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ0aGVy
ZSBzaG91bGQgYmUgbm8gZXJyb3IgZm9yIGxldmVsOiAiICsgbGV2ZWwgKyAiICIgKyBvdGhlckRp
bWVuc2lvbiArICJ4IiArIHNpemUpOwotICAgICAgZ2wudGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVs
LCB0ZXN0LmZvcm1hdCwgYmFkU2l6ZSwgYmFkT3RoZXJEaW1lbnNpb24sIDAsIHRlc3QuZm9ybWF0
LCB0ZXN0LnR5cGUsIHBpeGVscyk7Ci0gICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfVkFMVUUsICJzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9WQUxVRSBmb3IgbGV2ZWw6ICIgKyBs
ZXZlbCArICIgIiArIGJhZFNpemUgKyAieCIgKyBiYWRPdGhlckRpbWVuc2lvbik7Ci0gICAgICBn
bC50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3QuZm9ybWF0LCBiYWRPdGhlckRpbWVuc2lv
biwgYmFkU2l6ZSwgMCwgdGVzdC5mb3JtYXQsIHRlc3QudHlwZSwgcGl4ZWxzKTsKLSAgICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgInNob3VsZCBnZW5lcmF0ZSBJTlZB
TElEX1ZBTFVFIGZvciBsZXZlbDogIiArIGxldmVsICsgIiAiICsgYmFkT3RoZXJEaW1lbnNpb24g
KyAieCIgKyBiYWRTaXplKTsKLSAgICB9Ci0gIH0KLX0KLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDBlNjdlZDdiZDJmMmMzMjc4OWIwZDYwZDJhYThiM2I3OWY3YzA2N2YuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLXNpemUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzOCArMCwwIEBACi08
IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgot
KioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRl
YWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv
ZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1h
dGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFU
RVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD
T05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJ
TiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBE
RUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCB0ZXh0
dXJlIHNpemUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHN0eWxlPSJ3aWR0
aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKLWF0dHJp
YnV0ZSB2ZWMzIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQgbWFpbigp
Ci17Ci0gICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci0gICAgdGV4Q29vcmQgPSB0ZXhDb29y
ZDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLXVuaWZvcm0gc2FtcGxlckN1
YmUgdGV4OwotdmFyeWluZyB2ZWMzIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9G
cmFnQ29sb3IgPSB0ZXh0dXJlQ3ViZSh0ZXgsIG5vcm1hbGl6ZSh0ZXhDb29yZCkpOwotfQotPC9z
Y3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oIkNoZWNrcyB0aGF0
IHZhcmlvdXMgc2l6ZXMgb2YgdGV4dHVyZXMgcmVuZGVyIikKLXZhciBjYW52YXM7Ci0KLXZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1w
bGUiKTsKLXZhciBwcm9ncmFtMkQgPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotdmFyIHBy
b2dyYW1DdWJlTWFwID0gd3R1LnNldHVwUHJvZ3JhbSgKLSAgICBnbCwgWyd2c2hhZGVyJywgJ2Zz
aGFkZXInXSwgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sIFswLCAxXSk7Ci1nbC5kaXNhYmxl
KGdsLkRFUFRIX1RFU1QpOwotZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci12YXIgdGV4ID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOwotdmFyIG1heDJEU2l6ZSA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVEVY
VFVSRV9TSVpFKTsKLXZhciBtYXhDdWJlTWFwU2l6ZSA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFKTsKLWRlYnVnKCJNQVhfVEVYVFVSRV9TSVpFOiIgKyBtYXgy
RFNpemUpOwotZGVidWcoIk1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkU6IiArIG1heEN1YmVNYXBT
aXplKTsKLS8vIEFzc3VtaW5nIDIwNDh4MjA0OHhSR0JBICgyMm1lZyB3aXRoIG1pcHMpIHdpbGwg
cnVuIG9uIGFsbCBXZWJHTCBwbGF0Zm9ybXMKLXZhciBtYXgyRFNxdWFyZVNpemUgPSBNYXRoLm1p
bihtYXgyRFNpemUsIDIwNDgpOwotLy8gSSdkIHByZWZlciB0aGlzIHRvIGJlIDIwNDggYnV0IHRo
YXQncyAxNm1lZyB4IDYgZmFjZXMgb3IgMTI4bWVnICh3aXRoIG1pcHMpCi0vLyAxMDI0IGlzIDMz
LjUgbWVnICh3aXRoIG1pcHMpCi12YXIgbWF4Q3ViZU1hcFNpemUgPSBNYXRoLm1pbihtYXhDdWJl
TWFwU2l6ZSwgMTAyNCk7Ci0KLXZhciBjb2xvcnMgPSBbCi0gIHsgbmFtZTogImdyZWVuIiwgcmdi
YTogWzAsIDAsIDI1NSwgMjU1XSB9LAotICB7IG5hbWU6ICJyZWQiLCByZ2JhOiBbMjU1LCAwLCAw
LCAyNTVdIH0sCi0gIHsgbmFtZTogImJsdWUiLCByZ2JhOiBbMCwgMjU1LCAwLCAyNTVdIH0sCi0g
IHsgbmFtZTogInllbGxvdyIsIHJnYmE6IFsyNTUsIDI1NSwgMCwgMjU1XSB9LAotICB7IG5hbWU6
ICJtYWdlbnRhIiwgcmdiYTogWzI1NSwgMCwgMjU1LCAyNTVdIH0sCi0gIHsgbmFtZTogImN5YW4i
LCByZ2JhOiBbMCwgMjU1LCAyNTUsIDI1NV0gfQotXTsKLQotdmFyIGNvdW50ID0gMDsKLXZhciBw
b3dlciA9IDA7Ci1ydW5UZXN0KCk7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gIGZ1bmN0aW9u
IGRvVGVzdCgpIHsKLSAgICB2YXIgc2l6ZSA9IE1hdGgucG93KDIsIHBvd2VyKTsKLSAgICBpZiAo
c2l6ZSA+IG1heDJEU2l6ZSkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBnbC51
c2VQcm9ncmFtKHByb2dyYW0yRCk7Ci0gICAgaWYgKCFjaGVja1RleHR1cmUoc2l6ZSwgMSwgZmFs
c2UpKSByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFjaGVja1RleHR1cmUoMSwgc2l6ZSwgZmFsc2Up
KSByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHNpemUgPD0gbWF4MkRTcXVhcmVTaXplKSB7Ci0gICAg
ICBpZiAoIWNoZWNrVGV4dHVyZShzaXplLCBzaXplLCBmYWxzZSkpIHsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgfQotICAgIH0KLSAgICBpZiAoc2l6ZSA8PSBtYXhDdWJlTWFwU2l6ZSkg
ewotICAgICAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtQ3ViZU1hcCk7Ci0gICAgICBpZiAoIWNoZWNr
VGV4dHVyZShzaXplLCBzaXplLCB0cnVlKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotICB9Ci0KLSAgaWYgKGRvVGVzdCgpKSB7Ci0g
ICAgKytwb3dlcjsKLSAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDApOwotICB9IGVsc2UgewotICAg
IGZpbmlzaFRlc3QoKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjaGVja1RleHR1cmUod2lkdGgsIGhl
aWdodCwgY3ViZU1hcCkgewotICBkZWJ1ZygiIik7Ci0gIGNvdW50ID0gKGNvdW50ICsgMSkgJSBj
b2xvcnMubGVuZ3RoOwotICB2YXIgY29sb3IgPSBjb2xvcnNbY291bnRdOwotICB2YXIgdGV4ID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOwotICB2YXIgdGFyZ2V0ID0gY3ViZU1hcCA/IGdsLlRFWFRVUkVf
Q1VCRV9NQVAgOiBnbC5URVhUVVJFXzJEOwotICB2YXIgdHlwZSA9IGN1YmVNYXAgPyAiY3ViZSBt
YXAiIDogIjJEIHRleHR1cmUiOwotICBkZWJ1ZygiY2hlY2sgIiArIHdpZHRoICsgIiwgIiArIGhl
aWdodCArICIgIiArIHR5cGUpOwotICBnbC5iaW5kVGV4dHVyZSh0YXJnZXQsIHRleCk7Ci0gIGds
LnRleFBhcmFtZXRlcmkodGFyZ2V0LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7
Ci0gIGdsLnRleFBhcmFtZXRlcmkodGFyZ2V0LCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkodGFyZ2V0LCBnbC5URVhUVVJFX1dSQVBfVCwg
Z2wuQ0xBTVBfVE9fRURHRSk7Ci0gIGZpbGxMZXZlbCgwLCB3aWR0aCwgaGVpZ2h0LCBjb2xvci5y
Z2JhLCBjdWJlTWFwKTsKLSAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gIGlmIChlcnIgPT0g
Z2wuT1VUX09GX01FTU9SWSkgewotICAgIGRlYnVnKCJvdXQgb2YgbWVtb3J5Iik7Ci0gICAgcmV0
dXJuIGZhbHNlOwotICB9Ci0gIGlmIChlcnIgIT0gZ2wuTk9fRVJST1IpIHsKLSAgICB0ZXN0RmFp
bGVkKCJ1bmV4cGVjdGVkIGdsIGVycm9yOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBlcnIp
KTsKLSAgfQotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUuY2hlY2tDYW52
YXMoZ2wsIGNvbG9yLnJnYmEsCi0gICAgICB0eXBlICsgIiBvZiBzaXplICIgKyB3aWR0aCArICJ4
IiArIGhlaWdodCArICIgd2l0aCBubyBtaXBzIHNob3VsZCBkcmF3IHdpdGggIiArIGNvbG9yLm5h
bWUpOwotICBjb3VudCA9IChjb3VudCArIDEpICUgY29sb3JzLmxlbmd0aDsKLSAgY29sb3IgPSBj
b2xvcnNbY291bnRdOwotICBmaWxsTGV2ZWwoMCwgd2lkdGgsIGhlaWdodCwgY29sb3IucmdiYSwg
Y3ViZU1hcCk7Ci0gIGdsLmdlbmVyYXRlTWlwbWFwKHRhcmdldCk7Ci0gIHZhciBlcnIgPSBnbC5n
ZXRFcnJvcigpOwotICBpZiAoZXJyID09IGdsLk9VVF9PRl9NRU1PUlkpIHsKLSAgICBkZWJ1Zygi
b3V0IG9mIG1lbW9yeSIpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAoZXJyICE9IGds
Lk5PX0VSUk9SKSB7Ci0gICAgdGVzdEZhaWxlZCgidW5leHBlY3RlZCBnbCBlcnJvcjogIiArIHd0
dS5nbEVudW1Ub1N0cmluZyhnbCwgZXJyKSk7Ci0gIH0KLSAgZ2wudGV4UGFyYW1ldGVyaSh0YXJn
ZXQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9ORUFSRVNUKTsKLSAg
d3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNrQ2FudmFzKGdsLCBjb2xv
ci5yZ2JhLAotICAgICAgdHlwZSArICIgb2Ygc2l6ZSAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQg
KyAiIHdpdGggbWlwcyBzaG91bGQgZHJhdyB3aXRoICIgKyBjb2xvci5uYW1lKTsKLQotICBjb3Vu
dCA9IChjb3VudCArIDEpICUgY29sb3JzLmxlbmd0aDsKLSAgY29sb3IgPSBjb2xvcnNbY291bnRd
OwotICBmaWxsTGV2ZWwoMCwgd2lkdGgsIGhlaWdodCwgY29sb3IucmdiYSwgY3ViZU1hcCwgdHJ1
ZSk7Ci0gIGdsLmdlbmVyYXRlTWlwbWFwKHRhcmdldCk7Ci0KLSAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNrQ2FudmFzKGdsLCBjb2xvci5yZ2JhLAotICAgICAgdHlw
ZSArICIgb2Ygc2l6ZSAiICsgd2lkdGggKyAieCIgKyBoZWlnaHQgKyAiIHdpdGggbWlwcyBzaG91
bGQgZHJhdyB3aXRoICIgKyBjb2xvci5uYW1lKTsKLQotICBnbC5kZWxldGVUZXh0dXJlKHRleCk7
Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3Jz
LiIpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gZmlsbExldmVsKGxldmVsLCB3aWR0
aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2N1YmVtYXAsIG9wdF9zdWJUZXgpIHsKLSAgdmFyIG51bVBp
eGVscyA9IHdpZHRoICogaGVpZ2h0OwotICB2YXIgcGl4ZWxzID0gbnVsbDsKLSAgdmFyIGxhcmdl
RGltID0gTWF0aC5tYXgod2lkdGgsIGhlaWdodCk7Ci0gIHZhciBzbWFsbERpbSA9IE1hdGgubWlu
KHdpZHRoLCBoZWlnaHQpOwotCi0gIHZhciBwaXhlbFJvdyA9IG5ldyBVaW50OEFycmF5KGxhcmdl
RGltICogNCk7Ci0gIGZvciAodmFyIGpqID0gMDsgamogPCBsYXJnZURpbTsgKytqaikgewotICAg
IHZhciBvZmYgPSBqaiAqIDQ7Ci0gICAgcGl4ZWxSb3dbb2ZmICsgMF0gPSBjb2xvclswXTsKLSAg
ICBwaXhlbFJvd1tvZmYgKyAxXSA9IGNvbG9yWzFdOwotICAgIHBpeGVsUm93W29mZiArIDJdID0g
Y29sb3JbMl07Ci0gICAgcGl4ZWxSb3dbb2ZmICsgM10gPSBjb2xvclszXTsKLSAgfQotCi0gIGlm
IChsYXJnZURpbSA9PSBudW1QaXhlbHMpIHsKLSAgICBwaXhlbHMgPSBwaXhlbFJvdzsKLSAgfSBl
bHNlIHsKLSAgICB2YXIgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkobnVtUGl4ZWxzICogNCk7Ci0g
ICAgZm9yICh2YXIgamogPSAwOyBqaiA8IHNtYWxsRGltOyArK2pqKSB7Ci0gICAgICB2YXIgb2Zm
ID0gamogKiBsYXJnZURpbSAqIDQ7Ci0gICAgICBwaXhlbHMuc2V0KHBpeGVsUm93LCBvZmYpOwot
ICAgIH0KLSAgfQotIAotICB2YXIgdGFyZ2V0cyA9IG9wdF9jdWJlbWFwID8gWwotICAgIGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1osCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aXSA6Ci0gICAgW2dsLlRFWFRV
UkVfMkRdOwotCi0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB0YXJnZXRzLmxlbmd0aDsgKytpaSkg
ewotICAgIC8vIGRlYnVnKHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGFyZ2V0c1tpaV0pKTsKLSAg
ICB2YXIgaW5kZXggPSAoaWkgKyBwb3dlcikgJSB0YXJnZXRzLmxlbmd0aDsKLSAgICB2YXIgdGFy
Z2V0ID0gdGFyZ2V0c1tpbmRleF07Ci0gICAgaWYgKG9wdF9zdWJUZXgpIHsKLSAgICAgIGdsLnRl
eFN1YkltYWdlMkQoCi0gICAgICAgICAgdGFyZ2V0LCBsZXZlbCwgMCwgMCwgd2lkdGgsIGhlaWdo
dCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBwaXhlbHMpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKAotICAgICAgICAgIHRhcmdldCwgbGV2ZWwsIGds
LlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAg
ICAgICAgcGl4ZWxzKTsKLSAgICB9Ci0gIH0KLX0KLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1hcHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4NGUwM2E0MDE5YzNhMmI4NjE2N2QwNWEz
ZmIxZGNmZDAyOGRmNjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1h
cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCB0ZXh0dXJlIHRleFN1YkltYWdl
MkRzIGN1YmUgbWFwIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHN0eWxl
PSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFk
ZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsK
LXVuaWZvcm0gbWF0NCByb3RhdGlvbjsKLXZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQgbWFp
bigpCi17Ci0gICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Ci0gICAgdmVjNCBkaXJlY3Rpb24g
PSB2ZWM0KHZQb3NpdGlvbi54ICogMC41LCB2UG9zaXRpb24ueSAqIDAuNSwgMSwgMSk7Ci0gICAg
dGV4Q29vcmQgPSBub3JtYWxpemUoKHJvdGF0aW9uICogZGlyZWN0aW9uKS54eXopOwotfQotPC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQi
PgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci11bmlmb3JtIHNhbXBsZXJDdWJlIHRleDsKLXZh
cnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJhZ0NvbG9yID0g
dGV4dHVyZUN1YmUodGV4LCBub3JtYWxpemUodGV4Q29vcmQpKTsKLX0KLTwvc2NyaXB0PgotPHNj
cmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciBjYW52YXM7Ci1kZXNjcmlwdGlvbigiQ2hlY2tzIGlz
c3VlcyB3aXRoIHNpemUgb2YgY3ViZSBtYXAgdGV4dHVyZXMiKTsKLWRlYnVnKCIiKTsKLQotdmFy
IHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJleGFtcGxlIik7Ci0KLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsK
LXd0dS5zZXR1cFVuaXRRdWFkKGdsLCAwLCAxKTsKLXZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJv
Z3JhbSgKLSAgICBnbCwKLSAgICBbJ3ZzaGFkZXInLCAnZnNoYWRlciddLAotICAgIFsndlBvc2l0
aW9uJywgJ3RleENvb3JkMCddLCBbMCwgMV0pOwotdmFyIHJvdExvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihwcm9ncmFtLCAicm90YXRpb24iKTsKLQotdmFyIHNpemUgPSAxNjsKLQotdmFyIGNv
bG9ycyA9IFsKLSAge25hbWU6ICdyZWQnLCAgICAgY29sb3I6IFsyNTUsICAgMCwgICAwLCAyNTVd
fSwKLSAge25hbWU6ICdncmVlbicsICAgY29sb3I6IFsgIDAsIDI1NSwgICAwLCAyNTVdfSwKLSAg
e25hbWU6ICdibHVlJywgICAgY29sb3I6IFsgIDAsICAgMCwgMjU1LCAyNTVdfSwKLSAge25hbWU6
ICd5ZWxsb3cnLCAgY29sb3I6IFsyNTUsIDI1NSwgICAwLCAyNTVdfSwKLSAge25hbWU6ICdjeWFu
JywgICAgY29sb3I6IFsgIDAsIDI1NSwgMjU1LCAyNTVdfSwKLSAge25hbWU6ICdtYWdlbnRhJywg
Y29sb3I6IFsyNTUsICAgMCwgMjU1LCAyNTVdfQotXTsKLQotdmFyIHRhcmdldHMgPSBbCi0gIGds
LlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdB
VElWRV9YLAotICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAot
ICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1pdOwotCi12YXIgcm90YXRpb25zID0gWwot
ICB7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKLSAge2F4aXM6IFswLCAx
LCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAt
TWF0aC5QSSAvIDJ9LAotICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwK
LSAge2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICAwfSwKLSAge2F4aXM6IFswLCAxLCAwXSwgYW5n
bGU6ICBNYXRoLlBJfSwKLV07Ci0KLXZhciBoYWxmUm90YXRpb25zID0gWwotICB7Y29sb3JzOiBb
MywgNF0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDR9
XX0sCi0gIHtjb2xvcnM6IFs0LCAyXSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwgYW5n
bGU6IC1NYXRoLlBJIC8gNH1dfSwKLSAge2NvbG9yczogWzUsIDNdLCByb3RhdGlvbnM6IFt7YXhp
czogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyA0ICogM31dfSwKLSAge2NvbG9yczogWzIs
IDVdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0ICog
M31dfSwKLSAge2NvbG9yczogWzMsIDBdLCByb3RhdGlvbnM6IFt7YXhpczogWzAsIDEsIDBdLCBh
bmdsZTogIE1hdGguUEkgLyAyfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXhp
czogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyA0fV19LAotICB7Y29sb3JzOiBbMCwgMl0s
IHJvdGF0aW9uczogW3theGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSSAvIDJ9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtheGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0
aC5QSSAvIDR9XX0sCi1dOwotCi12YXIgY291bnQgPSAwOwotdGVzdFNpemUoc2l6ZSk7Ci0KLWZ1
bmN0aW9uIHRlc3RTaXplKHNpemUpIHsKLSAgZGVidWcoIiIpOwotICBkZWJ1ZygidGVzdGluZyBz
aXplOiAiICsgc2l6ZSk7Ci0gIHZhciBjYW52YXNTaXplID0gTWF0aC5tYXgoc2l6ZSAvIDQsIDIp
OwotICBjYW52YXMud2lkdGggPSBjYW52YXNTaXplOwotICBjYW52YXMuaGVpZ2h0ID0gY2FudmFz
U2l6ZTsKLSAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzU2l6ZSwgY2FudmFzU2l6ZSk7Ci0gIHZh
ciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
Q1VCRV9NQVAsIHRleCk7Ci0KLSAgLy8gU2VlbXMgbGlrZSBJIHNob3VsZCBiZSB1c2luZyBMSU5F
QVIgaGVyZSB3aXRoIHNvbWUgb3RoZXIgbWF0aAotICAvLyB0byBtYWtlIHN1cmUgSSBnZXQgbW9y
ZSBtaXAgY292ZXJhZ2UgYnV0IHRoYXQncyBlYXNpZXIgc2FpZAotICAvLyB0aGFuIGRvbmUuCi0K
LSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9G
SUxURVIsIGdsLk5FQVJFU1QpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9N
QVAsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0KLSAgZm9yICh2YXIgamog
PSAwOyBqaiA8IDI7ICsramopIHsKLSAgICBmb3IgKHZhciB0dCA9IDA7IHR0IDwgdGFyZ2V0cy5s
ZW5ndGg7ICsrdHQpIHsKLSAgICAgIHZhciBjb2xvciA9IGNvbG9yc1sodHQgKyBjb3VudCkgJSBj
b2xvcnMubGVuZ3RoXTsKLSAgICAgIGZpbGxMZXZlbCh0YXJnZXRzW3R0XSwgMCwgc2l6ZSwgY29s
b3IuY29sb3IpOwotICAgIH0KLSAgICBpZiAoamogPT0gMSkgewotICAgICAgZGVidWcoInVzZSBt
aXBtYXAiKTsKLSAgICAgIGdsLnRleFBhcmFtZXRlcmkoCi0gICAgICAgICAgZ2wuVEVYVFVSRV9D
VUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLAotICAgICAgICAgIGdsLk5FQVJFU1RfTUlQ
TUFQX05FQVJFU1QpOwotICAgICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV9DVUJFX01B
UCk7Ci0gICAgfQotCi0gICAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gICAgaWYgKGVyciA9
PSBnbC5PVVRfT0ZfTUVNT1JZKSB7Ci0gICAgICBkZWJ1Zygib3V0IG9mIG1lbW9yeSIpOwotICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoZXJyICE9IGdsLk5PX0VSUk9SKSB7Ci0g
ICAgICB0ZXN0RmFpbGVkKCJ1bmV4cGVjdGVkIGdsIGVycm9yOiAiICsgd3R1LmdsRW51bVRvU3Ry
aW5nKGdsLCBlcnIpKTsKLSAgICB9Ci0KLQotICAgIGZvciAodmFyIHJyID0gMDsgcnIgPCByb3Rh
dGlvbnMubGVuZ3RoOyArK3JyKSB7Ci0gICAgICB2YXIgcm90ID0gcm90YXRpb25zW3JyXTsKLSAg
ICAgIHZhciBjb2xvciA9IGNvbG9yc1socnIgKyBjb3VudCkgJSBjb2xvcnMubGVuZ3RoXTsKLSAg
ICAgIHZhciByb3RNYXQgPSBheGlzUm90YXRpb24ocm90LmF4aXMsIHJvdC5hbmdsZSk7Ci0gICAg
ICBnbC51bmlmb3JtTWF0cml4NGZ2KHJvdExvYywgZmFsc2UsIHJvdE1hdCk7Ci0gICAgICB3dHUu
Y2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgICAgd3R1LmNoZWNrQ2FudmFzKAotICAgICAg
ICAgIGdsLCBjb2xvci5jb2xvciwKLSAgICAgICAgICB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRh
cmdldHNbcnJdKSArICIgc2hvdWxkIGJlICIgKyBjb2xvci5uYW1lKTsKLSAgICB9Ci0KLSAgICBm
b3IgKHZhciByciA9IDA7IHJyIDwgaGFsZlJvdGF0aW9ucy5sZW5ndGg7ICsrcnIpIHsKLSAgICAg
IHZhciBoID0gaGFsZlJvdGF0aW9uc1tycl07Ci0gICAgICB2YXIgcm90cyA9IGgucm90YXRpb25z
OwotICAgICAgdmFyIHJvdE1hdCA9IGF4aXNSb3RhdGlvbihyb3RzWzBdLmF4aXMsIHJvdHNbMF0u
YW5nbGUpOwotICAgICAgZm9yICh2YXIgaWkgPSAxOyBpaSA8IHJvdHMubGVuZ3RoOyArK2lpKSB7
Ci0gICAgICAgIHZhciB0bXBNYXQgPSBheGlzUm90YXRpb24ocm90c1tpaV0uYXhpcywgcm90c1tp
aV0uYW5nbGUpOwotICAgICAgICB2YXIgcm90TWF0ID0gbXVsTWF0cml4KHRtcE1hdCwgcm90TWF0
KTsKLSAgICAgIH0KLSAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYocm90TG9jLCBmYWxzZSwgcm90
TWF0KTsKLSAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0KLSAgICAgIGZvciAo
dmFyIGlpID0gMDsgaWkgPCAyOyArK2lpKSB7Ci0gICAgICAgIGNoZWNrUmVjdCgKLSAgICAgICAg
ICAgIDAsCi0gICAgICAgICAgICBjYW52YXNTaXplIC8gMiAqIGlpLAotICAgICAgICAgICAgY2Fu
dmFzU2l6ZSwKLSAgICAgICAgICAgIGNhbnZhc1NpemUgLyAyLAotICAgICAgICAgICAgY29sb3Jz
WyhoLmNvbG9yc1tpaV0gKyBjb3VudCkgJSBjb2xvcnMubGVuZ3RoXSk7Ci0gICAgICB9Ci0gICAg
fQotICAgICsrY291bnQ7Ci0gIH0KLQotICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Ci0gIHJldHVy
biB0cnVlOwotfQotCi1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJl
IG5vIGVycm9ycy4iKTsKLQotZnVuY3Rpb24gY2hlY2tSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQs
IGNvbG9yKSB7Ci0gIHd0dS5jaGVja0NhbnZhc1JlY3QoCi0gICAgICAgZ2wsCi0gICAgICAgeCwK
LSAgICAgICB5LAotICAgICAgIHdpZHRoLAotICAgICAgIGhlaWdodCwKLSAgICAgICBjb2xvci5j
b2xvciwKLSAgICAgICAiIiArIHggKyAiLCAiICsgeSArICIsICIgKyB3aWR0aCArICIsICIgKyBo
ZWlnaHQgKwotICAgICAgICIgc2hvdWxkIGJlICIgKyBjb2xvci5uYW1lKTsKLX0KLQotZnVuY3Rp
b24gZmlsbExldmVsKHRhcmdldCwgbGV2ZWwsIHNpemUsIGNvbG9yKSB7Ci0gIHZhciBudW1QaXhl
bHMgPSBzaXplICogc2l6ZTsKLSAgdmFyIGhhbGZQaXhlbFJvdyA9IG5ldyBVaW50OEFycmF5KHNp
emUgKiAyKTsKLSAgZm9yICh2YXIgamogPSAwOyBqaiA8IHNpemU7ICsramopIHsKLSAgICB2YXIg
b2ZmID0gamogKiA0OwotICAgIGhhbGZQaXhlbFJvd1tvZmYgKyAwXSA9IGNvbG9yWzBdOwotICAg
IGhhbGZQaXhlbFJvd1tvZmYgKyAxXSA9IGNvbG9yWzFdOwotICAgIGhhbGZQaXhlbFJvd1tvZmYg
KyAyXSA9IGNvbG9yWzJdOwotICAgIGhhbGZQaXhlbFJvd1tvZmYgKyAzXSA9IGNvbG9yWzNdOwot
ICB9Ci0gIGdsLnRleEltYWdlMkQoCi0gICAgICB0YXJnZXQsIGxldmVsLCBnbC5SR0JBLCBzaXpl
LCBzaXplLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgbnVsbCk7Ci0gIGZv
ciAodmFyIGpqID0gMDsgamogPCBzaXplOyArK2pqKSB7Ci0gICAgICBnbC50ZXhTdWJJbWFnZTJE
KAotICAgICAgICAgIHRhcmdldCwgbGV2ZWwsIDAsIGpqLCBzaXplIC8gMiwgMSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgaGFsZlBpeGVsUm93KTsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQo
Ci0gICAgICAgICAgdGFyZ2V0LCBsZXZlbCwgc2l6ZSAvIDIsIGpqLCBzaXplIC8gMiwgMSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaGFsZlBpeGVsUm93KTsKLSAgfQotfQotCi1mdW5jdGlv
biBwcmludE1hdChtYXQpIHsKLSAgZGVidWcoIiIgKyBtYXRbMF0gKyAiLCAiICsgbWF0WzFdICsg
IiwgIiArIG1hdFsyXSArICIsICIgKyBtYXRbM10gKyAiLCAiKTsKLSAgZGVidWcoIiIgKyBtYXRb
NF0gKyAiLCAiICsgbWF0WzVdICsgIiwgIiArIG1hdFs2XSArICIsICIgKyBtYXRbN10gKyAiLCAi
KTsKLSAgZGVidWcoIiIgKyBtYXRbOF0gKyAiLCAiICsgbWF0WzldICsgIiwgIiArIG1hdFsxMF0g
KyAiLCAiICsgbWF0WzExXSArICIsICIpOwotICBkZWJ1ZygiIiArIG1hdFsxMl0gKyAiLCAiICsg
bWF0WzEzXSArICIsICIgKyBtYXRbMTRdICsgIiwgIiArIG1hdFsxNV0gKyAiLCAiKTsKLX0KLQot
ZnVuY3Rpb24gYXhpc1JvdGF0aW9uKGF4aXMsIGFuZ2xlKSB7Ci0gIHZhciBkc3QgPSBuZXcgRmxv
YXQzMkFycmF5KDE2KTsKLSAgdmFyIHggPSBheGlzWzBdOwotICB2YXIgeSA9IGF4aXNbMV07Ci0g
IHZhciB6ID0gYXhpc1syXTsKLSAgdmFyIG4gPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSArIHog
KiB6KTsKLSAgeCAvPSBuOwotICB5IC89IG47Ci0gIHogLz0gbjsKLSAgdmFyIHh4ID0geCAqIHg7
Ci0gIHZhciB5eSA9IHkgKiB5OwotICB2YXIgenogPSB6ICogejsKLSAgdmFyIGMgPSBNYXRoLmNv
cyhhbmdsZSk7Ci0gIHZhciBzID0gTWF0aC5zaW4oYW5nbGUpOwotICB2YXIgb25lTWludXNDb3Np
bmUgPSAxIC0gYzsKLQotICBkc3RbIDBdID0geHggKyAoMSAtIHh4KSAqIGM7Ci0gIGRzdFsgMV0g
PSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lICsgeiAqIHM7Ci0gIGRzdFsgMl0gPSB4ICogeiAqIG9u
ZU1pbnVzQ29zaW5lIC0geSAqIHM7Ci0gIGRzdFsgM10gPSAwOwotICBkc3RbIDRdID0geCAqIHkg
KiBvbmVNaW51c0Nvc2luZSAtIHogKiBzOwotICBkc3RbIDVdID0geXkgKyAoMSAtIHl5KSAqIGM7
Ci0gIGRzdFsgNl0gPSB5ICogeiAqIG9uZU1pbnVzQ29zaW5lICsgeCAqIHM7Ci0gIGRzdFsgN10g
PSAwOwotICBkc3RbIDhdID0geCAqIHogKiBvbmVNaW51c0Nvc2luZSArIHkgKiBzOwotICBkc3Rb
IDldID0geSAqIHogKiBvbmVNaW51c0Nvc2luZSAtIHggKiBzOwotICBkc3RbMTBdID0genogKyAo
MSAtIHp6KSAqIGM7Ci0gIGRzdFsxMV0gPSAwOwotICBkc3RbMTJdID0gMDsKLSAgZHN0WzEzXSA9
IDA7Ci0gIGRzdFsxNF0gPSAwOwotICBkc3RbMTVdID0gMTsKLQotICByZXR1cm4gZHN0OwotfTsK
LQotZnVuY3Rpb24gbXVsTWF0cml4KGEsIGIpIHsKLSAgdmFyIGRzdCA9IG5ldyBGbG9hdDMyQXJy
YXkoMTYpOwotICB2YXIgYTAwID0gYVswXTsKLSAgdmFyIGEwMSA9IGFbMV07Ci0gIHZhciBhMDIg
PSBhWzJdOwotICB2YXIgYTAzID0gYVszXTsKLSAgdmFyIGExMCA9IGFbIDQgKyAwXTsKLSAgdmFy
IGExMSA9IGFbIDQgKyAxXTsKLSAgdmFyIGExMiA9IGFbIDQgKyAyXTsKLSAgdmFyIGExMyA9IGFb
IDQgKyAzXTsKLSAgdmFyIGEyMCA9IGFbIDggKyAwXTsKLSAgdmFyIGEyMSA9IGFbIDggKyAxXTsK
LSAgdmFyIGEyMiA9IGFbIDggKyAyXTsKLSAgdmFyIGEyMyA9IGFbIDggKyAzXTsKLSAgdmFyIGEz
MCA9IGFbMTIgKyAwXTsKLSAgdmFyIGEzMSA9IGFbMTIgKyAxXTsKLSAgdmFyIGEzMiA9IGFbMTIg
KyAyXTsKLSAgdmFyIGEzMyA9IGFbMTIgKyAzXTsKLSAgdmFyIGIwMCA9IGJbMF07Ci0gIHZhciBi
MDEgPSBiWzFdOwotICB2YXIgYjAyID0gYlsyXTsKLSAgdmFyIGIwMyA9IGJbM107Ci0gIHZhciBi
MTAgPSBiWyA0ICsgMF07Ci0gIHZhciBiMTEgPSBiWyA0ICsgMV07Ci0gIHZhciBiMTIgPSBiWyA0
ICsgMl07Ci0gIHZhciBiMTMgPSBiWyA0ICsgM107Ci0gIHZhciBiMjAgPSBiWyA4ICsgMF07Ci0g
IHZhciBiMjEgPSBiWyA4ICsgMV07Ci0gIHZhciBiMjIgPSBiWyA4ICsgMl07Ci0gIHZhciBiMjMg
PSBiWyA4ICsgM107Ci0gIHZhciBiMzAgPSBiWzEyICsgMF07Ci0gIHZhciBiMzEgPSBiWzEyICsg
MV07Ci0gIHZhciBiMzIgPSBiWzEyICsgMl07Ci0gIHZhciBiMzMgPSBiWzEyICsgM107Ci0gIGRz
dFsgMF0gPSBhMDAgKiBiMDAgKyBhMDEgKiBiMTAgKyBhMDIgKiBiMjAgKyBhMDMgKiBiMzA7Ci0g
IGRzdFsgMV0gPSBhMDAgKiBiMDEgKyBhMDEgKiBiMTEgKyBhMDIgKiBiMjEgKyBhMDMgKiBiMzE7
Ci0gIGRzdFsgMl0gPSBhMDAgKiBiMDIgKyBhMDEgKiBiMTIgKyBhMDIgKiBiMjIgKyBhMDMgKiBi
MzI7Ci0gIGRzdFsgM10gPSBhMDAgKiBiMDMgKyBhMDEgKiBiMTMgKyBhMDIgKiBiMjMgKyBhMDMg
KiBiMzM7Ci0gIGRzdFsgNF0gPSBhMTAgKiBiMDAgKyBhMTEgKiBiMTAgKyBhMTIgKiBiMjAgKyBh
MTMgKiBiMzA7Ci0gIGRzdFsgNV0gPSBhMTAgKiBiMDEgKyBhMTEgKiBiMTEgKyBhMTIgKiBiMjEg
KyBhMTMgKiBiMzE7Ci0gIGRzdFsgNl0gPSBhMTAgKiBiMDIgKyBhMTEgKiBiMTIgKyBhMTIgKiBi
MjIgKyBhMTMgKiBiMzI7Ci0gIGRzdFsgN10gPSBhMTAgKiBiMDMgKyBhMTEgKiBiMTMgKyBhMTIg
KiBiMjMgKyBhMTMgKiBiMzM7Ci0gIGRzdFsgOF0gPSBhMjAgKiBiMDAgKyBhMjEgKiBiMTAgKyBh
MjIgKiBiMjAgKyBhMjMgKiBiMzA7Ci0gIGRzdFsgOV0gPSBhMjAgKiBiMDEgKyBhMjEgKiBiMTEg
KyBhMjIgKiBiMjEgKyBhMjMgKiBiMzE7Ci0gIGRzdFsxMF0gPSBhMjAgKiBiMDIgKyBhMjEgKiBi
MTIgKyBhMjIgKiBiMjIgKyBhMjMgKiBiMzI7Ci0gIGRzdFsxMV0gPSBhMjAgKiBiMDMgKyBhMjEg
KiBiMTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzM7Ci0gIGRzdFsxMl0gPSBhMzAgKiBiMDAgKyBh
MzEgKiBiMTAgKyBhMzIgKiBiMjAgKyBhMzMgKiBiMzA7Ci0gIGRzdFsxM10gPSBhMzAgKiBiMDEg
KyBhMzEgKiBiMTEgKyBhMzIgKiBiMjEgKyBhMzMgKiBiMzE7Ci0gIGRzdFsxNF0gPSBhMzAgKiBi
MDIgKyBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBiMzI7Ci0gIGRzdFsxNV0gPSBhMzAg
KiBiMDMgKyBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMgKiBiMzM7Ci0gIHJldHVybiBkc3Q7
Ci19OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDIzMjE1NzQzMzJhMTMyODVlZmE5YjAzNGFk
YWZjNTJiMDU4YmQ3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxz
LWluaXRpYWxpemVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotPCEtLQot
LyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCi0qLwotLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7
Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSBudWxsOwotdmFyIHRleHR1cmU7
Ci12YXIgdGV4dHVyZUxvYyA9IG51bGw7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7
Ci0KLWZ1bmN0aW9uIGluaXQoKQotewotICAgIGluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERv
bmUoKTsKLQotICAgIGRlc2NyaXB0aW9uKCdUZXN0cyB0aGVyZSBpcyBubyBnYXJiYWdlIGluIHRy
YW5zcGFyZW50IHJlZ2lvbnMgb2YgaW1hZ2VzIHVwbG9hZGVkIGFzIHRleHR1cmVzJyk7Ci0KLSAg
ICB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4
YW1wbGUiKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0g
ICAgZ2wuY2xlYXJDb2xvcigwLjUsMC41LDAuNSwxKTsKLSAgICBnbC5jbGVhckRlcHRoKDEpOwot
Ci0gICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7
Ci0KLSAgICAvLyBUaGUgaW5wdXQgdGV4dHVyZSBoYXMgOCBjaGFyYWN0ZXJzOyB0YWtlIHRoZSBs
ZWZ0bW9zdCBvbmUKLSAgICB2YXIgY29lZmYgPSAxLjAgLyA4LjA7Ci0gICAgdmFyIHRleENvb3Jk
cyA9IG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAgICBjb2VmZiwgMS4wLAotICAgICAgICAwLjAs
IDEuMCwKLSAgICAgICAgMC4wLCAwLjAsCi0gICAgICAgIGNvZWZmLCAxLjAsCi0gICAgICAgIDAu
MCwgMC4wLAotICAgICAgICBjb2VmZiwgMC4wXSk7Ci0KLSAgICB2YXIgdmJvID0gZ2wuY3JlYXRl
QnVmZmVyKCk7Ci0gICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7Ci0gICAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHRleENvb3JkcywgZ2wuU1RBVElDX0RSQVcp
OwotICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwotICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICAgIHRleHR1cmUgPSB3
dHUubG9hZFRleHR1cmUoZ2wsICIuLi9yZXNvdXJjZXMvYnVnLTMyODg4LXRleHR1cmUucG5nIiwg
cnVuVGVzdCk7Ci19Ci0KLS8vIFRoZXNlIHR3byBkZWNsYXJhdGlvbnMgbmVlZCB0byBiZSBnbG9i
YWwgZm9yICJzaG91bGRCZSIgdG8gc2VlIHRoZW0KLXZhciBidWYgPSBudWxsOwotdmFyIGlkeCA9
IDA7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICBnbC5lbmFibGUoZ2wuQkxFTkQpOwot
ICAgIGdsLmJsZW5kRnVuYyhnbC5TUkNfQUxQSEEsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpOwot
ICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKLSAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICAvLyBQb2ludCB0aGUgdW5pZm9ybSBz
YW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIDAp
OwotICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVh
ZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotCi0gICAgLy8gU3BvdCBjaGVjayBhIGNvdXBsZSBvZiAy
eDIgcmVnaW9ucyBpbiB0aGUgdXBwZXIgYW5kIGxvd2VyIGxlZnQKLSAgICAvLyBjb3JuZXJzOyB0
aGV5IHNob3VsZCBiZSB0aGUgcmdiIHZhbHVlcyBpbiB0aGUgdGV4dHVyZS4KLSAgICB2YXIgY29s
b3IgPSBbMCwgMCwgMF07Ci0gICAgZGVidWcoIkNoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyIik7
Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMSwgZ2wuY2FudmFzLmhlaWdodCAtIDMsIDIs
IDIsIGNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyBjb2xvcik7
Ci0gICAgZGVidWcoIkNoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyIik7Ci0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgMSwgMSwgMiwgMiwgY29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAic2hvdWxkQmUgIiArIGNvbG9yKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1jdWJlLW1hcHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBz
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkYjY1NGMzYmE2ZDNlNWRjNDkx
MGNlNDIzYjMyMWQxMGJkMmNkYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1jdWJl
LW1hcHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLTwhLS0KLQotLyoKLSoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oJ1Rlc3RzIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdl
MkQgdXBsb2FkIHBhdGggZm9yIFRFWFRVUkVfQ1VCRV9NQVAnKTsKLQotdmFyIHd0dSA9IFdlYkdM
VGVzdFV0aWxzOwotdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxl
Iik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci1nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwot
Ci1mdW5jdGlvbiB0ZXN0T25lVGFyZ2V0KHRhcmdldCwgd2lkdGgsIGhlaWdodCkgewotICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NV
QkVfTUFQLCB0ZXgpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxk
IGJlIG5vIGVycm9ycyBmcm9tIGJpbmRUZXh0dXJlKFRFWFRVUkVfQ1VCRV9NQVApLiIpOwotCi0g
IGdsLnRleEltYWdlMkQodGFyZ2V0LCAwLCBnbC5SR0IsIHdpZHRoLCBoZWlnaHQsIDAsIGdsLlJH
QiwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gdGV4SW1hZ2UyRC4iKTsKLQotICB2YXIg
YnVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiAzKTsKLSAgZ2wudGV4U3ViSW1h
Z2UyRCh0YXJnZXQsIDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQiwgZ2wuVU5TSUdORURf
QllURSwgYnVmKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBi
ZSBubyBlcnJvcnMgZnJvbSB0ZXhTdWJJbWFnZTJELiIpOwotfQotCi10ZXN0T25lVGFyZ2V0KGds
LlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwgMTYsIDE2KTsKLXRlc3RPbmVUYXJnZXQoZ2wu
VEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLCAxNiwgMTYpOwotdGVzdE9uZVRhcmdldChnbC5U
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1osIDE2LCAxNik7Ci10ZXN0T25lVGFyZ2V0KGdsLlRF
WFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwgMTYsIDE2KTsKLXRlc3RPbmVUYXJnZXQoZ2wuVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLCAxNiwgMTYpOwotdGVzdE9uZVRhcmdldChnbC5URVhU
VVJFX0NVQkVfTUFQX05FR0FUSVZFX1osIDE2LCAxNik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L3Jlc291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2Rlc2t0
b3AtZ2wtY29uc3RhbnRzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmVhMGFj
YjRlNGZhODhmYTE2ODM0ZDI0YzQwYjA5YzI3ZTQ3NGM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3Rh
bnRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjY0NSArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0
IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQot
KiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRv
Ci0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQot
KiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFM
Uy4KLSovCi0KLS8vIERlZmluZXMgYSBidW5jaCBvZiBEZXNrdG9wR0wgY29uc3RhbnRzIHNvIHdl
IGNhbiBtYWtlIHN1cmUgV2ViR0wKLS8vIGltcGxlbWVudGF0aW9ucyBkaXNhbGxvdyB0aGVtLgot
Ci12YXIgZGVza3RvcEdMID0gewotICAnTUlOJzogMHg4MDA3LAotICAnTUFYJzogMHg4MDA4LAot
ICAnUVVBRFMnOiAweDAwMDcsCi0gICdRVUFEX1NUUklQJzogMHgwMDA4LAotICAnUE9MWUdPTic6
IDB4MDAwOSwKLSAgJzEnOiAweDAwMDEsCi0gICcyJzogMHgwMDAyLAotICAnMyc6IDB4MDAwMywK
LSAgJzQnOiAweDAwMDQsCi0gICdTVEFUSUNfUkVBRCc6IDB4ODhFNSwKLSAgJ0NMSVBfUExBTkUw
JzogMHgzMDAwLAotICAnUEVSU1BFQ1RJVkVfQ09SUkVDVElPTl9ISU5UJzogMHgwQzUwLAotICAn
QUNDVU1fQlVGRkVSX0JJVCc6IDB4MDIwMCwKLSAgJ1JHQjQnOiAweDgwNEYsCi0gICdSR0I1Jzog
MHg4MDUwLAotICAnUkdCOCc6IDB4ODA1MSwKLSAgJ1JHQjEwJzogMHg4MDUyLAotICAnUkdCMTIn
OiAweDgwNTMsCi0gICdSR0IxNic6IDB4ODA1NCwKLSAgJ1JHQkEyJzogMHg4MDU1LAotICAnUkdC
QTQnOiAweDgwNTYsCi0gICdSR0I1X0ExJzogMHg4MDU3LAotICAnUkdCQTgnOiAweDgwNTgsCi0g
ICdSR0IxMF9BMic6IDB4ODA1OSwKLSAgJ1JHQkExMic6IDB4ODA1QSwKLSAgJ1JHQkExNic6IDB4
ODA1QiwKLSAgJ1NNT09USF9QT0lOVF9TSVpFX1JBTkdFJzogMHgwQjEyLAotICAnU01PT1RIX1BP
SU5UX1NJWkVfR1JBTlVMQVJJVFknOiAweDBCMTMsCi0gICdTTU9PVEhfTElORV9XSURUSF9SQU5H
RSc6IDB4MEIyMiwKLSAgJ1NNT09USF9MSU5FX1dJRFRIX0dSQU5VTEFSSVRZJzogMHgwQjIzLAot
ICAnVU5TSUdORURfQllURV8zXzNfMic6IDB4ODAzMiwKLSAgJ1VOU0lHTkVEX1NIT1JUXzRfNF80
XzQnOiAweDgwMzMsCi0gICdVTlNJR05FRF9TSE9SVF81XzVfNV8xJzogMHg4MDM0LAotICAnVU5T
SUdORURfSU5UXzhfOF84XzgnOiAweDgwMzUsCi0gICdVTlNJR05FRF9JTlRfMTBfMTBfMTBfMic6
IDB4ODAzNiwKLSAgJ1JFU0NBTEVfTk9STUFMJzogMHg4MDNBLAotICAnVEVYVFVSRV9CSU5ESU5H
XzNEJzogMHg4MDZBLAotICAnUEFDS19TS0lQX0lNQUdFUyc6IDB4ODA2QiwKLSAgJ1BBQ0tfSU1B
R0VfSEVJR0hUJzogMHg4MDZDLAotICAnVU5QQUNLX1NLSVBfSU1BR0VTJzogMHg4MDZELAotICAn
VU5QQUNLX0lNQUdFX0hFSUdIVCc6IDB4ODA2RSwKLSAgJ1RFWFRVUkVfM0QnOiAweDgwNkYsCi0g
ICdQUk9YWV9URVhUVVJFXzNEJzogMHg4MDcwLAotICAnVEVYVFVSRV9ERVBUSCc6IDB4ODA3MSwK
LSAgJ1RFWFRVUkVfV1JBUF9SJzogMHg4MDcyLAotICAnTUFYXzNEX1RFWFRVUkVfU0laRSc6IDB4
ODA3MywKLSAgJ0JHUic6IDB4ODBFMCwKLSAgJ0JHUkEnOiAweDgwRTEsCi0gICdNQVhfRUxFTUVO
VFNfVkVSVElDRVMnOiAweDgwRTgsCi0gICdNQVhfRUxFTUVOVFNfSU5ESUNFUyc6IDB4ODBFOSwK
LSAgJ0NMQU1QX1RPX0VER0UnOiAweDgxMkYsCi0gICdURVhUVVJFX01JTl9MT0QnOiAweDgxM0Es
Ci0gICdURVhUVVJFX01BWF9MT0QnOiAweDgxM0IsCi0gICdURVhUVVJFX0JBU0VfTEVWRUwnOiAw
eDgxM0MsCi0gICdURVhUVVJFX01BWF9MRVZFTCc6IDB4ODEzRCwKLSAgJ0xJR0hUX01PREVMX0NP
TE9SX0NPTlRST0wnOiAweDgxRjgsCi0gICdTSU5HTEVfQ09MT1InOiAweDgxRjksCi0gICdTRVBB
UkFURV9TUEVDVUxBUl9DT0xPUic6IDB4ODFGQSwKLSAgJ1VOU0lHTkVEX0JZVEVfMl8zXzNfUkVW
JzogMHg4MzYyLAotICAnVU5TSUdORURfU0hPUlRfNV82XzUnOiAweDgzNjMsCi0gICdVTlNJR05F
RF9TSE9SVF81XzZfNV9SRVYnOiAweDgzNjQsCi0gICdVTlNJR05FRF9TSE9SVF80XzRfNF80X1JF
Vic6IDB4ODM2NSwKLSAgJ1VOU0lHTkVEX1NIT1JUXzFfNV81XzVfUkVWJzogMHg4MzY2LAotICAn
VU5TSUdORURfSU5UXzhfOF84XzhfUkVWJzogMHg4MzY3LAotICAnVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWJzogMHg4MzY4LAotICAnQUxJQVNFRF9QT0lOVF9TSVpFX1JBTkdFJzogMHg4NDZE
LAotICAnQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFJzogMHg4NDZFLAotICAnTVVMVElTQU1QTEUn
OiAweDgwOUQsCi0gICdTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0UnOiAweDgwOUUsCi0gICdTQU1Q
TEVfQUxQSEFfVE9fT05FJzogMHg4MDlGLAotICAnU0FNUExFX0NPVkVSQUdFJzogMHg4MEEwLAot
ICAnU0FNUExFX0JVRkZFUlMnOiAweDgwQTgsCi0gICdTQU1QTEVTJzogMHg4MEE5LAotICAnU0FN
UExFX0NPVkVSQUdFX1ZBTFVFJzogMHg4MEFBLAotICAnU0FNUExFX0NPVkVSQUdFX0lOVkVSVCc6
IDB4ODBBQiwKLSAgJ0NMQU1QX1RPX0JPUkRFUic6IDB4ODEyRCwKLSAgJ1RFWFRVUkUwJzogMHg4
NEMwLAotICAnVEVYVFVSRTEnOiAweDg0QzEsCi0gICdURVhUVVJFMic6IDB4ODRDMiwKLSAgJ1RF
WFRVUkUzJzogMHg4NEMzLAotICAnVEVYVFVSRTQnOiAweDg0QzQsCi0gICdURVhUVVJFNSc6IDB4
ODRDNSwKLSAgJ1RFWFRVUkU2JzogMHg4NEM2LAotICAnVEVYVFVSRTcnOiAweDg0QzcsCi0gICdU
RVhUVVJFOCc6IDB4ODRDOCwKLSAgJ1RFWFRVUkU5JzogMHg4NEM5LAotICAnVEVYVFVSRTEwJzog
MHg4NENBLAotICAnVEVYVFVSRTExJzogMHg4NENCLAotICAnVEVYVFVSRTEyJzogMHg4NENDLAot
ICAnVEVYVFVSRTEzJzogMHg4NENELAotICAnVEVYVFVSRTE0JzogMHg4NENFLAotICAnVEVYVFVS
RTE1JzogMHg4NENGLAotICAnVEVYVFVSRTE2JzogMHg4NEQwLAotICAnVEVYVFVSRTE3JzogMHg4
NEQxLAotICAnVEVYVFVSRTE4JzogMHg4NEQyLAotICAnVEVYVFVSRTE5JzogMHg4NEQzLAotICAn
VEVYVFVSRTIwJzogMHg4NEQ0LAotICAnVEVYVFVSRTIxJzogMHg4NEQ1LAotICAnVEVYVFVSRTIy
JzogMHg4NEQ2LAotICAnVEVYVFVSRTIzJzogMHg4NEQ3LAotICAnVEVYVFVSRTI0JzogMHg4NEQ4
LAotICAnVEVYVFVSRTI1JzogMHg4NEQ5LAotICAnVEVYVFVSRTI2JzogMHg4NERBLAotICAnVEVY
VFVSRTI3JzogMHg4NERCLAotICAnVEVYVFVSRTI4JzogMHg4NERDLAotICAnVEVYVFVSRTI5Jzog
MHg4NERELAotICAnVEVYVFVSRTMwJzogMHg4NERFLAotICAnVEVYVFVSRTMxJzogMHg4NERGLAot
ICAnQUNUSVZFX1RFWFRVUkUnOiAweDg0RTAsCi0gICdDTElFTlRfQUNUSVZFX1RFWFRVUkUnOiAw
eDg0RTEsCi0gICdNQVhfVEVYVFVSRV9VTklUUyc6IDB4ODRFMiwKLSAgJ1RSQU5TUE9TRV9NT0RF
TFZJRVdfTUFUUklYJzogMHg4NEUzLAotICAnVFJBTlNQT1NFX1BST0pFQ1RJT05fTUFUUklYJzog
MHg4NEU0LAotICAnVFJBTlNQT1NFX1RFWFRVUkVfTUFUUklYJzogMHg4NEU1LAotICAnVFJBTlNQ
T1NFX0NPTE9SX01BVFJJWCc6IDB4ODRFNiwKLSAgJ1NVQlRSQUNUJzogMHg4NEU3LAotICAnQ09N
UFJFU1NFRF9BTFBIQSc6IDB4ODRFOSwKLSAgJ0NPTVBSRVNTRURfTFVNSU5BTkNFJzogMHg4NEVB
LAotICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEEnOiAweDg0RUIsCi0gICdDT01QUkVTU0VE
X0lOVEVOU0lUWSc6IDB4ODRFQywKLSAgJ0NPTVBSRVNTRURfUkdCJzogMHg4NEVELAotICAnQ09N
UFJFU1NFRF9SR0JBJzogMHg4NEVFLAotICAnVEVYVFVSRV9DT01QUkVTU0lPTl9ISU5UJzogMHg4
NEVGLAotICAnTk9STUFMX01BUCc6IDB4ODUxMSwKLSAgJ1JFRkxFQ1RJT05fTUFQJzogMHg4NTEy
LAotICAnVEVYVFVSRV9DVUJFX01BUCc6IDB4ODUxMywKLSAgJ1RFWFRVUkVfQklORElOR19DVUJF
X01BUCc6IDB4ODUxNCwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCc6IDB4ODUxNSwK
LSAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCc6IDB4ODUxNiwKLSAgJ1RFWFRVUkVfQ1VC
RV9NQVBfUE9TSVRJVkVfWSc6IDB4ODUxNywKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVf
WSc6IDB4ODUxOCwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWic6IDB4ODUxOSwKLSAg
J1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWic6IDB4ODUxQSwKLSAgJ1BST1hZX1RFWFRVUkVf
Q1VCRV9NQVAnOiAweDg1MUIsCi0gICdNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFJzogMHg4NTFD
LAotICAnQ09NQklORSc6IDB4ODU3MCwKLSAgJ0NPTUJJTkVfUkdCJzogMHg4NTcxLAotICAnQ09N
QklORV9BTFBIQSc6IDB4ODU3MiwKLSAgJ1JHQl9TQ0FMRSc6IDB4ODU3MywKLSAgJ0FERF9TSUdO
RUQnOiAweDg1NzQsCi0gICdJTlRFUlBPTEFURSc6IDB4ODU3NSwKLSAgJ0NPTlNUQU5UJzogMHg4
NTc2LAotICAnUFJJTUFSWV9DT0xPUic6IDB4ODU3NywKLSAgJ1BSRVZJT1VTJzogMHg4NTc4LAot
ICAnU09VUkNFMF9SR0InOiAweDg1ODAsCi0gICdTT1VSQ0UxX1JHQic6IDB4ODU4MSwKLSAgJ1NP
VVJDRTJfUkdCJzogMHg4NTgyLAotICAnU09VUkNFMF9BTFBIQSc6IDB4ODU4OCwKLSAgJ1NPVVJD
RTFfQUxQSEEnOiAweDg1ODksCi0gICdTT1VSQ0UyX0FMUEhBJzogMHg4NThBLAotICAnT1BFUkFO
RDBfUkdCJzogMHg4NTkwLAotICAnT1BFUkFORDFfUkdCJzogMHg4NTkxLAotICAnT1BFUkFORDJf
UkdCJzogMHg4NTkyLAotICAnT1BFUkFORDBfQUxQSEEnOiAweDg1OTgsCi0gICdPUEVSQU5EMV9B
TFBIQSc6IDB4ODU5OSwKLSAgJ09QRVJBTkQyX0FMUEhBJzogMHg4NTlBLAotICAnVEVYVFVSRV9D
T01QUkVTU0VEX0lNQUdFX1NJWkUnOiAweDg2QTAsCi0gICdURVhUVVJFX0NPTVBSRVNTRUQnOiAw
eDg2QTEsCi0gICdOVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMnOiAweDg2QTIsCi0gICdD
T01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyc6IDB4ODZBMywKLSAgJ0RPVDNfUkdCJzogMHg4NkFF
LAotICAnRE9UM19SR0JBJzogMHg4NkFGLAotICAnTVVMVElTQU1QTEVfQklUJzogMHgyMDAwMDAw
MCwKLSAgJ0JMRU5EX0RTVF9SR0InOiAweDgwQzgsCi0gICdCTEVORF9TUkNfUkdCJzogMHg4MEM5
LAotICAnQkxFTkRfRFNUX0FMUEhBJzogMHg4MENBLAotICAnQkxFTkRfU1JDX0FMUEhBJzogMHg4
MENCLAotICAnUE9JTlRfU0laRV9NSU4nOiAweDgxMjYsCi0gICdQT0lOVF9TSVpFX01BWCc6IDB4
ODEyNywKLSAgJ1BPSU5UX0ZBREVfVEhSRVNIT0xEX1NJWkUnOiAweDgxMjgsCi0gICdQT0lOVF9E
SVNUQU5DRV9BVFRFTlVBVElPTic6IDB4ODEyOSwKLSAgJ0dFTkVSQVRFX01JUE1BUCc6IDB4ODE5
MSwKLSAgJ0dFTkVSQVRFX01JUE1BUF9ISU5UJzogMHg4MTkyLAotICAnREVQVEhfQ09NUE9ORU5U
MTYnOiAweDgxQTUsCi0gICdERVBUSF9DT01QT05FTlQyNCc6IDB4ODFBNiwKLSAgJ0RFUFRIX0NP
TVBPTkVOVDMyJzogMHg4MUE3LAotICAnTUlSUk9SRURfUkVQRUFUJzogMHg4MzcwLAotICAnRk9H
X0NPT1JESU5BVEVfU09VUkNFJzogMHg4NDUwLAotICAnRk9HX0NPT1JESU5BVEUnOiAweDg0NTEs
Ci0gICdGUkFHTUVOVF9ERVBUSCc6IDB4ODQ1MiwKLSAgJ0NVUlJFTlRfRk9HX0NPT1JESU5BVEUn
OiAweDg0NTMsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9UWVBFJzogMHg4NDU0LAotICAnRk9H
X0NPT1JESU5BVEVfQVJSQVlfU1RSSURFJzogMHg4NDU1LAotICAnRk9HX0NPT1JESU5BVEVfQVJS
QVlfUE9JTlRFUic6IDB4ODQ1NiwKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZJzogMHg4NDU3LAot
ICAnQ09MT1JfU1VNJzogMHg4NDU4LAotICAnQ1VSUkVOVF9TRUNPTkRBUllfQ09MT1InOiAweDg0
NTksCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfU0laRSc6IDB4ODQ1QSwKLSAgJ1NFQ09OREFS
WV9DT0xPUl9BUlJBWV9UWVBFJzogMHg4NDVCLAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX1NU
UklERSc6IDB4ODQ1QywKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9QT0lOVEVSJzogMHg4NDVE
LAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZJzogMHg4NDVFLAotICAnTUFYX1RFWFRVUkVfTE9E
X0JJQVMnOiAweDg0RkQsCi0gICdURVhUVVJFX0ZJTFRFUl9DT05UUk9MJzogMHg4NTAwLAotICAn
VEVYVFVSRV9MT0RfQklBUyc6IDB4ODUwMSwKLSAgJ0lOQ1JfV1JBUCc6IDB4ODUwNywKLSAgJ0RF
Q1JfV1JBUCc6IDB4ODUwOCwKLSAgJ1RFWFRVUkVfREVQVEhfU0laRSc6IDB4ODg0QSwKLSAgJ0RF
UFRIX1RFWFRVUkVfTU9ERSc6IDB4ODg0QiwKLSAgJ1RFWFRVUkVfQ09NUEFSRV9NT0RFJzogMHg4
ODRDLAotICAnVEVYVFVSRV9DT01QQVJFX0ZVTkMnOiAweDg4NEQsCi0gICdDT01QQVJFX1JfVE9f
VEVYVFVSRSc6IDB4ODg0RSwKLSAgJ0JVRkZFUl9TSVpFJzogMHg4NzY0LAotICAnQlVGRkVSX1VT
QUdFJzogMHg4NzY1LAotICAnUVVFUllfQ09VTlRFUl9CSVRTJzogMHg4ODY0LAotICAnQ1VSUkVO
VF9RVUVSWSc6IDB4ODg2NSwKLSAgJ1FVRVJZX1JFU1VMVCc6IDB4ODg2NiwKLSAgJ1FVRVJZX1JF
U1VMVF9BVkFJTEFCTEUnOiAweDg4NjcsCi0gICdBUlJBWV9CVUZGRVInOiAweDg4OTIsCi0gICdF
TEVNRU5UX0FSUkFZX0JVRkZFUic6IDB4ODg5MywKLSAgJ0FSUkFZX0JVRkZFUl9CSU5ESU5HJzog
MHg4ODk0LAotICAnRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5NSwKLSAgJ1ZF
UlRFWF9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5NiwKLSAgJ05PUk1BTF9BUlJBWV9CVUZG
RVJfQklORElORyc6IDB4ODg5NywKLSAgJ0NPTE9SX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4
ODk4LAotICAnSU5ERVhfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTksCi0gICdURVhUVVJF
X0NPT1JEX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODlBLAotICAnRURHRV9GTEFHX0FSUkFZ
X0JVRkZFUl9CSU5ESU5HJzogMHg4ODlCLAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX0JVRkZF
Ul9CSU5ESU5HJzogMHg4ODlDLAotICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfQlVGRkVSX0JJTkRJ
TkcnOiAweDg4OUQsCi0gICdXRUlHSFRfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OUUsCi0g
ICdWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODlGLAotICAnUkVBRF9P
TkxZJzogMHg4OEI4LAotICAnV1JJVEVfT05MWSc6IDB4ODhCOSwKLSAgJ1JFQURfV1JJVEUnOiAw
eDg4QkEsCi0gICdCVUZGRVJfQUNDRVNTJzogMHg4OEJCLAotICAnQlVGRkVSX01BUFBFRCc6IDB4
ODhCQywKLSAgJ0JVRkZFUl9NQVBfUE9JTlRFUic6IDB4ODhCRCwKLSAgJ1NUUkVBTV9EUkFXJzog
MHg4OEUwLAotICAnU1RSRUFNX1JFQUQnOiAweDg4RTEsCi0gICdTVFJFQU1fQ09QWSc6IDB4ODhF
MiwKLSAgJ1NUQVRJQ19EUkFXJzogMHg4OEU0LAotICAnU1RBVElDX1JFQUQnOiAweDg4RTUsCi0g
ICdTVEFUSUNfQ09QWSc6IDB4ODhFNiwKLSAgJ0RZTkFNSUNfRFJBVyc6IDB4ODhFOCwKLSAgJ0RZ
TkFNSUNfUkVBRCc6IDB4ODhFOSwKLSAgJ0RZTkFNSUNfQ09QWSc6IDB4ODhFQSwKLSAgJ1NBTVBM
RVNfUEFTU0VEJzogMHg4OTE0LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEJzogMHg4
NjIyLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFJzogMHg4NjIzLAotICAnVkVSVEVYX0FU
VFJJQl9BUlJBWV9TVFJJREUnOiAweDg2MjQsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUn
OiAweDg2MjUsCi0gICdDVVJSRU5UX1ZFUlRFWF9BVFRSSUInOiAweDg2MjYsCi0gICdWRVJURVhf
UFJPR1JBTV9QT0lOVF9TSVpFJzogMHg4NjQyLAotICAnVkVSVEVYX1BST0dSQU1fVFdPX1NJREUn
OiAweDg2NDMsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVInOiAweDg2NDUsCi0gICdT
VEVOQ0lMX0JBQ0tfRlVOQyc6IDB4ODgwMCwKLSAgJ1NURU5DSUxfQkFDS19GQUlMJzogMHg4ODAx
LAotICAnU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCc6IDB4ODgwMiwKLSAgJ1NURU5DSUxf
QkFDS19QQVNTX0RFUFRIX1BBU1MnOiAweDg4MDMsCi0gICdNQVhfRFJBV19CVUZGRVJTJzogMHg4
ODI0LAotICAnRFJBV19CVUZGRVIwJzogMHg4ODI1LAotICAnRFJBV19CVUZGRVIxJzogMHg4ODI2
LAotICAnRFJBV19CVUZGRVIyJzogMHg4ODI3LAotICAnRFJBV19CVUZGRVIzJzogMHg4ODI4LAot
ICAnRFJBV19CVUZGRVI0JzogMHg4ODI5LAotICAnRFJBV19CVUZGRVI1JzogMHg4ODJBLAotICAn
RFJBV19CVUZGRVI2JzogMHg4ODJCLAotICAnRFJBV19CVUZGRVI3JzogMHg4ODJDLAotICAnRFJB
V19CVUZGRVI4JzogMHg4ODJELAotICAnRFJBV19CVUZGRVI5JzogMHg4ODJFLAotICAnRFJBV19C
VUZGRVIxMCc6IDB4ODgyRiwKLSAgJ0RSQVdfQlVGRkVSMTEnOiAweDg4MzAsCi0gICdEUkFXX0JV
RkZFUjEyJzogMHg4ODMxLAotICAnRFJBV19CVUZGRVIxMyc6IDB4ODgzMiwKLSAgJ0RSQVdfQlVG
RkVSMTQnOiAweDg4MzMsCi0gICdEUkFXX0JVRkZFUjE1JzogMHg4ODM0LAotICAnQkxFTkRfRVFV
QVRJT05fQUxQSEEnOiAweDg4M0QsCi0gICdQT0lOVF9TUFJJVEUnOiAweDg4NjEsCi0gICdDT09S
RF9SRVBMQUNFJzogMHg4ODYyLAotICAnTUFYX1ZFUlRFWF9BVFRSSUJTJzogMHg4ODY5LAotICAn
VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEJzogMHg4ODZBLAotICAnTUFYX1RFWFRVUkVf
Q09PUkRTJzogMHg4ODcxLAotICAnTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMnOiAweDg4NzIsCi0g
ICdGUkFHTUVOVF9TSEFERVInOiAweDhCMzAsCi0gICdWRVJURVhfU0hBREVSJzogMHg4QjMxLAot
ICAnTUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUyc6IDB4OEI0OSwKLSAgJ01BWF9WRVJU
RVhfVU5JRk9STV9DT01QT05FTlRTJzogMHg4QjRBLAotICAnTUFYX1ZBUllJTkdfRkxPQVRTJzog
MHg4QjRCLAotICAnTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTJzogMHg4QjRDLAotICAn
TUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMnOiAweDhCNEQsCi0gICdTSEFERVJfVFlQ
RSc6IDB4OEI0RiwKLSAgJ0ZMT0FUX1ZFQzInOiAweDhCNTAsCi0gICdGTE9BVF9WRUMzJzogMHg4
QjUxLAotICAnRkxPQVRfVkVDNCc6IDB4OEI1MiwKLSAgJ0lOVF9WRUMyJzogMHg4QjUzLAotICAn
SU5UX1ZFQzMnOiAweDhCNTQsCi0gICdJTlRfVkVDNCc6IDB4OEI1NSwKLSAgJ0JPT0wnOiAweDhC
NTYsCi0gICdCT09MX1ZFQzInOiAweDhCNTcsCi0gICdCT09MX1ZFQzMnOiAweDhCNTgsCi0gICdC
T09MX1ZFQzQnOiAweDhCNTksCi0gICdGTE9BVF9NQVQyJzogMHg4QjVBLAotICAnRkxPQVRfTUFU
Myc6IDB4OEI1QiwKLSAgJ0ZMT0FUX01BVDQnOiAweDhCNUMsCi0gICdTQU1QTEVSXzFEJzogMHg4
QjVELAotICAnU0FNUExFUl8yRCc6IDB4OEI1RSwKLSAgJ1NBTVBMRVJfM0QnOiAweDhCNUYsCi0g
ICdTQU1QTEVSX0NVQkUnOiAweDhCNjAsCi0gICdTQU1QTEVSXzFEX1NIQURPVyc6IDB4OEI2MSwK
LSAgJ1NBTVBMRVJfMkRfU0hBRE9XJzogMHg4QjYyLAotICAnREVMRVRFX1NUQVRVUyc6IDB4OEI4
MCwKLSAgJ0NPTVBJTEVfU1RBVFVTJzogMHg4QjgxLAotICAnTElOS19TVEFUVVMnOiAweDhCODIs
Ci0gICdWQUxJREFURV9TVEFUVVMnOiAweDhCODMsCi0gICdJTkZPX0xPR19MRU5HVEgnOiAweDhC
ODQsCi0gICdBVFRBQ0hFRF9TSEFERVJTJzogMHg4Qjg1LAotICAnQUNUSVZFX1VOSUZPUk1TJzog
MHg4Qjg2LAotICAnQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCc6IDB4OEI4NywKLSAgJ1NIQURF
Ul9TT1VSQ0VfTEVOR1RIJzogMHg4Qjg4LAotICAnQUNUSVZFX0FUVFJJQlVURVMnOiAweDhCODks
Ci0gICdBQ1RJVkVfQVRUUklCVVRFX01BWF9MRU5HVEgnOiAweDhCOEEsCi0gICdGUkFHTUVOVF9T
SEFERVJfREVSSVZBVElWRV9ISU5UJzogMHg4QjhCLAotICAnU0hBRElOR19MQU5HVUFHRV9WRVJT
SU9OJzogMHg4QjhDLAotICAnQ1VSUkVOVF9QUk9HUkFNJzogMHg4QjhELAotICAnUE9JTlRfU1BS
SVRFX0NPT1JEX09SSUdJTic6IDB4OENBMCwKLSAgJ0xPV0VSX0xFRlQnOiAweDhDQTEsCi0gICdV
UFBFUl9MRUZUJzogMHg4Q0EyLAotICAnU1RFTkNJTF9CQUNLX1JFRic6IDB4OENBMywKLSAgJ1NU
RU5DSUxfQkFDS19WQUxVRV9NQVNLJzogMHg4Q0E0LAotICAnU1RFTkNJTF9CQUNLX1dSSVRFTUFT
Syc6IDB4OENBNSwKLSAgJ0NVUlJFTlRfUkFTVEVSX1NFQ09OREFSWV9DT0xPUic6IDB4ODQ1RiwK
LSAgJ1BJWEVMX1BBQ0tfQlVGRkVSJzogMHg4OEVCLAotICAnUElYRUxfVU5QQUNLX0JVRkZFUic6
IDB4ODhFQywKLSAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkcnOiAweDg4RUQsCi0gICdQSVhF
TF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcnOiAweDg4RUYsCi0gICdGTE9BVF9NQVQyeDMnOiAweDhC
NjUsCi0gICdGTE9BVF9NQVQyeDQnOiAweDhCNjYsCi0gICdGTE9BVF9NQVQzeDInOiAweDhCNjcs
Ci0gICdGTE9BVF9NQVQzeDQnOiAweDhCNjgsCi0gICdGTE9BVF9NQVQ0eDInOiAweDhCNjksCi0g
ICdGTE9BVF9NQVQ0eDMnOiAweDhCNkEsCi0gICdTUkdCJzogMHg4QzQwLAotICAnU1JHQjgnOiAw
eDhDNDEsCi0gICdTUkdCX0FMUEhBJzogMHg4QzQyLAotICAnU1JHQjhfQUxQSEE4JzogMHg4QzQz
LAotICAnU0xVTUlOQU5DRV9BTFBIQSc6IDB4OEM0NCwKLSAgJ1NMVU1JTkFOQ0U4X0FMUEhBOCc6
IDB4OEM0NSwKLSAgJ1NMVU1JTkFOQ0UnOiAweDhDNDYsCi0gICdTTFVNSU5BTkNFOCc6IDB4OEM0
NywKLSAgJ0NPTVBSRVNTRURfU1JHQic6IDB4OEM0OCwKLSAgJ0NPTVBSRVNTRURfU1JHQl9BTFBI
QSc6IDB4OEM0OSwKLSAgJ0NPTVBSRVNTRURfU0xVTUlOQU5DRSc6IDB4OEM0QSwKLSAgJ0NPTVBS
RVNTRURfU0xVTUlOQU5DRV9BTFBIQSc6IDB4OEM0QiwKLSAgJ0NPTlRFWFRfRkxBR19GT1JXQVJE
X0NPTVBBVElCTEVfQklUJzogMHgwMDAxLAotICAnTUFKT1JfVkVSU0lPTic6IDB4ODIxQiwKLSAg
J01JTk9SX1ZFUlNJT04nOiAweDgyMUMsCi0gICdOVU1fRVhURU5TSU9OUyc6IDB4ODIxRCwKLSAg
J0NPTlRFWFRfRkxBR1MnOiAweDgyMUUsCi0gICdERVBUSF9CVUZGRVInOiAweDgyMjMsCi0gICdT
VEVOQ0lMX0JVRkZFUic6IDB4ODIyNCwKLSAgJ0NPTVBSRVNTRURfUkVEJzogMHg4MjI1LAotICAn
Q09NUFJFU1NFRF9SRyc6IDB4ODIyNiwKLSAgJ1JHQkEzMkYnOiAweDg4MTQsCi0gICdSR0IzMkYn
OiAweDg4MTUsCi0gICdSR0JBMTZGJzogMHg4ODFBLAotICAnUkdCMTZGJzogMHg4ODFCLAotICAn
VkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSJzogMHg4OEZELAotICAnTUFYX0FSUkFZX1RFWFRV
UkVfTEFZRVJTJzogMHg4OEZGLAotICAnTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUJzogMHg4OTA0
LAotICAnTUFYX1BST0dSQU1fVEVYRUxfT0ZGU0VUJzogMHg4OTA1LAotICAnQ0xBTVBfVkVSVEVY
X0NPTE9SJzogMHg4OTFBLAotICAnQ0xBTVBfRlJBR01FTlRfQ09MT1InOiAweDg5MUIsCi0gICdD
TEFNUF9SRUFEX0NPTE9SJzogMHg4OTFDLAotICAnRklYRURfT05MWSc6IDB4ODkxRCwKLSAgJ1RF
WFRVUkVfUkVEX1RZUEUnOiAweDhDMTAsCi0gICdURVhUVVJFX0dSRUVOX1RZUEUnOiAweDhDMTEs
Ci0gICdURVhUVVJFX0JMVUVfVFlQRSc6IDB4OEMxMiwKLSAgJ1RFWFRVUkVfQUxQSEFfVFlQRSc6
IDB4OEMxMywKLSAgJ1RFWFRVUkVfTFVNSU5BTkNFX1RZUEUnOiAweDhDMTQsCi0gICdURVhUVVJF
X0lOVEVOU0lUWV9UWVBFJzogMHg4QzE1LAotICAnVEVYVFVSRV9ERVBUSF9UWVBFJzogMHg4QzE2
LAotICAnVU5TSUdORURfTk9STUFMSVpFRCc6IDB4OEMxNywKLSAgJ1RFWFRVUkVfMURfQVJSQVkn
OiAweDhDMTgsCi0gICdQUk9YWV9URVhUVVJFXzFEX0FSUkFZJzogMHg4QzE5LAotICAnVEVYVFVS
RV8yRF9BUlJBWSc6IDB4OEMxQSwKLSAgJ1BST1hZX1RFWFRVUkVfMkRfQVJSQVknOiAweDhDMUIs
Ci0gICdURVhUVVJFX0JJTkRJTkdfMURfQVJSQVknOiAweDhDMUMsCi0gICdURVhUVVJFX0JJTkRJ
TkdfMkRfQVJSQVknOiAweDhDMUQsCi0gICdSMTFGX0cxMUZfQjEwRic6IDB4OEMzQSwKLSAgJ1VO
U0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYnOiAweDhDM0IsCi0gICdSR0I5X0U1JzogMHg4QzNE
LAotICAnVU5TSUdORURfSU5UXzVfOV85XzlfUkVWJzogMHg4QzNFLAotICAnVEVYVFVSRV9TSEFS
RURfU0laRSc6IDB4OEMzRiwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HX01BWF9MRU5H
VEgnOiAweDhDNzYsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREUnOiAweDhDN0Ys
Ci0gICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0NPTVBPTkVOVFMnOiAweDhDODAs
Ci0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MnOiAweDhDODMsCi0gICdUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX1NUQVJUJzogMHg4Qzg0LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9TSVpFJzogMHg4Qzg1LAotICAnUFJJTUlUSVZFU19HRU5FUkFURUQnOiAweDhDODcsCi0g
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOJzogMHg4Qzg4LAotICAnUkFT
VEVSSVpFUl9ESVNDQVJEJzogMHg4Qzg5LAotICAnTUFYX1RSQU5TRk9STV9GRUVEQkFDS19JTlRF
UkxFQVZFRF9DT01QT05FTlRTJzogMHg4QzhBLAotICAnTUFYX1RSQU5TRk9STV9GRUVEQkFDS19T
RVBBUkFURV9BVFRSSUJTJzogMHg4QzhCLAotICAnSU5URVJMRUFWRURfQVRUUklCUyc6IDB4OEM4
QywKLSAgJ1NFUEFSQVRFX0FUVFJJQlMnOiAweDhDOEQsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tf
QlVGRkVSJzogMHg4QzhFLAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HJzog
MHg4QzhGLAotICAnUkdCQTMyVUknOiAweDhENzAsCi0gICdSR0IzMlVJJzogMHg4RDcxLAotICAn
UkdCQTE2VUknOiAweDhENzYsCi0gICdSR0IxNlVJJzogMHg4RDc3LAotICAnUkdCQThVSSc6IDB4
OEQ3QywKLSAgJ1JHQjhVSSc6IDB4OEQ3RCwKLSAgJ1JHQkEzMkknOiAweDhEODIsCi0gICdSR0Iz
MkknOiAweDhEODMsCi0gICdSR0JBMTZJJzogMHg4RDg4LAotICAnUkdCMTZJJzogMHg4RDg5LAot
ICAnUkdCQThJJzogMHg4RDhFLAotICAnUkdCOEknOiAweDhEOEYsCi0gICdSRURfSU5URUdFUic6
IDB4OEQ5NCwKLSAgJ0dSRUVOX0lOVEVHRVInOiAweDhEOTUsCi0gICdCTFVFX0lOVEVHRVInOiAw
eDhEOTYsCi0gICdBTFBIQV9JTlRFR0VSJzogMHg4RDk3LAotICAnUkdCX0lOVEVHRVInOiAweDhE
OTgsCi0gICdSR0JBX0lOVEVHRVInOiAweDhEOTksCi0gICdCR1JfSU5URUdFUic6IDB4OEQ5QSwK
LSAgJ0JHUkFfSU5URUdFUic6IDB4OEQ5QiwKLSAgJ1NBTVBMRVJfMURfQVJSQVknOiAweDhEQzAs
Ci0gICdTQU1QTEVSXzJEX0FSUkFZJzogMHg4REMxLAotICAnU0FNUExFUl8xRF9BUlJBWV9TSEFE
T1cnOiAweDhEQzMsCi0gICdTQU1QTEVSXzJEX0FSUkFZX1NIQURPVyc6IDB4OERDNCwKLSAgJ1NB
TVBMRVJfQ1VCRV9TSEFET1cnOiAweDhEQzUsCi0gICdVTlNJR05FRF9JTlRfVkVDMic6IDB4OERD
NiwKLSAgJ1VOU0lHTkVEX0lOVF9WRUMzJzogMHg4REM3LAotICAnVU5TSUdORURfSU5UX1ZFQzQn
OiAweDhEQzgsCi0gICdJTlRfU0FNUExFUl8xRCc6IDB4OERDOSwKLSAgJ0lOVF9TQU1QTEVSXzJE
JzogMHg4RENBLAotICAnSU5UX1NBTVBMRVJfM0QnOiAweDhEQ0IsCi0gICdJTlRfU0FNUExFUl9D
VUJFJzogMHg4RENDLAotICAnSU5UX1NBTVBMRVJfMURfQVJSQVknOiAweDhEQ0UsCi0gICdJTlRf
U0FNUExFUl8yRF9BUlJBWSc6IDB4OERDRiwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzFEJzog
MHg4REQxLAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkQnOiAweDhERDIsCi0gICdVTlNJR05F
RF9JTlRfU0FNUExFUl8zRCc6IDB4OEREMywKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUn
OiAweDhERDQsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8xRF9BUlJBWSc6IDB4OERENiwKLSAg
J1VOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZJzogMHg4REQ3LAotICAnUVVFUllfV0FJVCc6
IDB4OEUxMywKLSAgJ1FVRVJZX05PX1dBSVQnOiAweDhFMTQsCi0gICdRVUVSWV9CWV9SRUdJT05f
V0FJVCc6IDB4OEUxNSwKLSAgJ1FVRVJZX0JZX1JFR0lPTl9OT19XQUlUJzogMHg4RTE2LAotICAn
TVVMVElTQU1QTEVfM0RGWCc6IDB4ODZCMiwKLSAgJ1NBTVBMRV9CVUZGRVJTXzNERlgnOiAweDg2
QjMsCi0gICdTQU1QTEVTXzNERlgnOiAweDg2QjQsCi0gICdNVUxUSVNBTVBMRV9CSVRfM0RGWCc6
IDB4MjAwMDAwMDAsCi0gICdDT01QUkVTU0VEX1JHQl9GWFQxXzNERlgnOiAweDg2QjAsCi0gICdD
T01QUkVTU0VEX1JHQkFfRlhUMV8zREZYJzogMHg4NkIxLAotICAnVU5QQUNLX0NMSUVOVF9TVE9S
QUdFX0FQUExFJzogMHg4NUIyLAotICAnRUxFTUVOVF9BUlJBWV9BUFBMRSc6IDB4ODc2OCwKLSAg
J0VMRU1FTlRfQVJSQVlfVFlQRV9BUFBMRSc6IDB4ODc2OSwKLSAgJ0VMRU1FTlRfQVJSQVlfUE9J
TlRFUl9BUFBMRSc6IDB4ODc2QSwKLSAgJ0hBTEZfQVBQTEUnOiAweDE0MEIsCi0gICdSR0JBX0ZM
T0FUMzJfQVBQTEUnOiAweDg4MTQsCi0gICdSR0JfRkxPQVQzMl9BUFBMRSc6IDB4ODgxNSwKLSAg
J0FMUEhBX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTYsCi0gICdJTlRFTlNJVFlfRkxPQVQzMl9BUFBM
RSc6IDB4ODgxNywKLSAgJ0xVTUlOQU5DRV9GTE9BVDMyX0FQUExFJzogMHg4ODE4LAotICAnTFVN
SU5BTkNFX0FMUEhBX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTksCi0gICdSR0JBX0ZMT0FUMTZfQVBQ
TEUnOiAweDg4MUEsCi0gICdSR0JfRkxPQVQxNl9BUFBMRSc6IDB4ODgxQiwKLSAgJ0FMUEhBX0ZM
T0FUMTZfQVBQTEUnOiAweDg4MUMsCi0gICdJTlRFTlNJVFlfRkxPQVQxNl9BUFBMRSc6IDB4ODgx
RCwKLSAgJ0xVTUlOQU5DRV9GTE9BVDE2X0FQUExFJzogMHg4ODFFLAotICAnTFVNSU5BTkNFX0FM
UEhBX0ZMT0FUMTZfQVBQTEUnOiAweDg4MUYsCi0gICdDT0xPUl9GTE9BVF9BUFBMRSc6IDB4OEEw
RiwKLSAgJ0JVRkZFUl9TRVJJQUxJWkVEX01PRElGWV9BUFBMRSc6IDB4OEExMiwKLSAgJ0JVRkZF
Ul9GTFVTSElOR19VTk1BUF9BUFBMRSc6IDB4OEExMywKLSAgJ01JTl9QQlVGRkVSX1ZJRVdQT1JU
X0RJTVNfQVBQTEUnOiAweDhBMTAsCi0gICdMSUdIVF9NT0RFTF9TUEVDVUxBUl9WRUNUT1JfQVBQ
TEUnOiAweDg1QjAsCi0gICdURVhUVVJFX1JBTkdFX0xFTkdUSF9BUFBMRSc6IDB4ODVCNywKLSAg
J1RFWFRVUkVfUkFOR0VfUE9JTlRFUl9BUFBMRSc6IDB4ODVCOCwKLSAgJ1RFWFRVUkVfU1RPUkFH
RV9ISU5UX0FQUExFJzogMHg4NUJDLAotICAnU1RPUkFHRV9QUklWQVRFX0FQUExFJzogMHg4NUJE
LAotICAnU1RPUkFHRV9DQUNIRURfQVBQTEUnOiAweDg1QkUsCi0gICdTVE9SQUdFX1NIQVJFRF9B
UFBMRSc6IDB4ODVCRiwKLSAgJ1RSQU5TRk9STV9ISU5UX0FQUExFJzogMHg4NUIxLAotICAnVkVS
VEVYX0FSUkFZX0JJTkRJTkdfQVBQTEUnOiAweDg1QjUsCi0gICdWRVJURVhfQVJSQVlfUkFOR0Vf
QVBQTEUnOiAweDg1MUQsCi0gICdWRVJURVhfQVJSQVlfUkFOR0VfTEVOR1RIX0FQUExFJzogMHg4
NTFFLAotICAnVkVSVEVYX0FSUkFZX1NUT1JBR0VfSElOVF9BUFBMRSc6IDB4ODUxRiwKLSAgJ01B
WF9WRVJURVhfQVJSQVlfUkFOR0VfRUxFTUVOVF9BUFBMRSc6IDB4ODUyMCwKLSAgJ1ZFUlRFWF9B
UlJBWV9SQU5HRV9QT0lOVEVSX0FQUExFJzogMHg4NTIxLAotICAnU1RPUkFHRV9DQUNIRURfQVBQ
TEUnOiAweDg1QkUsCi0gICdTVE9SQUdFX1NIQVJFRF9BUFBMRSc6IDB4ODVCRiwKLSAgJ1lDQkNS
XzQyMl9BUFBMRSc6IDB4ODVCOSwKLSAgJ1VOU0lHTkVEX1NIT1JUXzhfOF9BUFBMRSc6IDB4ODVC
QSwKLSAgJ1VOU0lHTkVEX1NIT1JUXzhfOF9SRVZfQVBQTEUnOiAweDg1QkIsCi0gICdSR0JBX0ZM
T0FUX01PREVfQVJCJzogMHg4ODIwLAotICAnQ0xBTVBfVkVSVEVYX0NPTE9SX0FSQic6IDB4ODkx
QSwKLSAgJ0NMQU1QX0ZSQUdNRU5UX0NPTE9SX0FSQic6IDB4ODkxQiwKLSAgJ0NMQU1QX1JFQURf
Q09MT1JfQVJCJzogMHg4OTFDLAotICAnRklYRURfT05MWV9BUkInOiAweDg5MUQsCi0gICdERVBU
SF9DT01QT05FTlQzMkYnOiAweDhDQUMsCi0gICdERVBUSDMyRl9TVEVOQ0lMOCc6IDB4OENBRCwK
LSAgJ0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVic6IDB4OERBRCwKLSAgJ0RFUFRIX0NP
TVBPTkVOVDE2X0FSQic6IDB4ODFBNSwKLSAgJ0RFUFRIX0NPTVBPTkVOVDI0X0FSQic6IDB4ODFB
NiwKLSAgJ0RFUFRIX0NPTVBPTkVOVDMyX0FSQic6IDB4ODFBNywKLSAgJ1RFWFRVUkVfREVQVEhf
U0laRV9BUkInOiAweDg4NEEsCi0gICdERVBUSF9URVhUVVJFX01PREVfQVJCJzogMHg4ODRCLAot
ICAnTUFYX0RSQVdfQlVGRkVSU19BUkInOiAweDg4MjQsCi0gICdEUkFXX0JVRkZFUjBfQVJCJzog
MHg4ODI1LAotICAnRFJBV19CVUZGRVIxX0FSQic6IDB4ODgyNiwKLSAgJ0RSQVdfQlVGRkVSMl9B
UkInOiAweDg4MjcsCi0gICdEUkFXX0JVRkZFUjNfQVJCJzogMHg4ODI4LAotICAnRFJBV19CVUZG
RVI0X0FSQic6IDB4ODgyOSwKLSAgJ0RSQVdfQlVGRkVSNV9BUkInOiAweDg4MkEsCi0gICdEUkFX
X0JVRkZFUjZfQVJCJzogMHg4ODJCLAotICAnRFJBV19CVUZGRVI3X0FSQic6IDB4ODgyQywKLSAg
J0RSQVdfQlVGRkVSOF9BUkInOiAweDg4MkQsCi0gICdEUkFXX0JVRkZFUjlfQVJCJzogMHg4ODJF
LAotICAnRFJBV19CVUZGRVIxMF9BUkInOiAweDg4MkYsCi0gICdEUkFXX0JVRkZFUjExX0FSQic6
IDB4ODgzMCwKLSAgJ0RSQVdfQlVGRkVSMTJfQVJCJzogMHg4ODMxLAotICAnRFJBV19CVUZGRVIx
M19BUkInOiAweDg4MzIsCi0gICdEUkFXX0JVRkZFUjE0X0FSQic6IDB4ODgzMywKLSAgJ0RSQVdf
QlVGRkVSMTVfQVJCJzogMHg4ODM0LAotICAnRlJBR01FTlRfUFJPR1JBTV9BUkInOiAweDg4MDQs
Ci0gICdQUk9HUkFNX0FMVV9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODA1LAotICAnUFJPR1JBTV9U
RVhfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwNiwKLSAgJ1BST0dSQU1fVEVYX0lORElSRUNUSU9O
U19BUkInOiAweDg4MDcsCi0gICdQUk9HUkFNX05BVElWRV9BTFVfSU5TVFJVQ1RJT05TX0FSQic6
IDB4ODgwOCwKLSAgJ1BST0dSQU1fTkFUSVZFX1RFWF9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODA5
LAotICAnUFJPR1JBTV9OQVRJVkVfVEVYX0lORElSRUNUSU9OU19BUkInOiAweDg4MEEsCi0gICdN
QVhfUFJPR1JBTV9BTFVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwQiwKLSAgJ01BWF9QUk9HUkFN
X1RFWF9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODBDLAotICAnTUFYX1BST0dSQU1fVEVYX0lORElS
RUNUSU9OU19BUkInOiAweDg4MEQsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfQUxVX0lOU1RSVUNU
SU9OU19BUkInOiAweDg4MEUsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfVEVYX0lOU1RSVUNUSU9O
U19BUkInOiAweDg4MEYsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfVEVYX0lORElSRUNUSU9OU19B
UkInOiAweDg4MTAsCi0gICdNQVhfVEVYVFVSRV9DT09SRFNfQVJCJzogMHg4ODcxLAotICAnTUFY
X1RFWFRVUkVfSU1BR0VfVU5JVFNfQVJCJzogMHg4ODcyLAotICAnRlJBR01FTlRfU0hBREVSX0FS
Qic6IDB4OEIzMCwKLSAgJ01BWF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFNfQVJCJzogMHg4
QjQ5LAotICAnRlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9BUkInOiAweDhCOEIsCi0g
ICdJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTic6IDB4MDUwNiwKLSAgJ0ZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcnOiAweDgyMTAsCi0gICdGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0NPTVBPTkVOVF9UWVBFJzogMHg4MjExLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9SRURfU0laRSc6IDB4ODIxMiwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0la
RSc6IDB4ODIxMywKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFJzogMHg4MjE0
LAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFJzogMHg4MjE1LAotICAnRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFJzogMHg4MjE2LAotICAnRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUnOiAweDgyMTcsCi0gICdGUkFNRUJVRkZFUl9ERUZBVUxU
JzogMHg4MjE4LAotICAnRlJBTUVCVUZGRVJfVU5ERUZJTkVEJzogMHg4MjE5LAotICAnREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5UJzogMHg4MjFBLAotICAnSU5ERVgnOiAweDgyMjIsCi0gICdNQVhf
UkVOREVSQlVGRkVSX1NJWkUnOiAweDg0RTgsCi0gICdERVBUSF9TVEVOQ0lMJzogMHg4NEY5LAot
ICAnVU5TSUdORURfSU5UXzI0XzgnOiAweDg0RkEsCi0gICdERVBUSDI0X1NURU5DSUw4JzogMHg4
OEYwLAotICAnVEVYVFVSRV9TVEVOQ0lMX1NJWkUnOiAweDg4RjEsCi0gICdVTlNJR05FRF9OT1JN
QUxJWkVEJzogMHg4QzE3LAotICAnU1JHQic6IDB4OEM0MCwKLSAgJ0RSQVdfRlJBTUVCVUZGRVJf
QklORElORyc6IDB4OENBNiwKLSAgJ0ZSQU1FQlVGRkVSX0JJTkRJTkcnOiAweDhDQTYsCi0gICdS
RU5ERVJCVUZGRVJfQklORElORyc6IDB4OENBNywKLSAgJ1JFQURfRlJBTUVCVUZGRVInOiAweDhD
QTgsCi0gICdEUkFXX0ZSQU1FQlVGRkVSJzogMHg4Q0E5LAotICAnUkVBRF9GUkFNRUJVRkZFUl9C
SU5ESU5HJzogMHg4Q0FBLAotICAnUkVOREVSQlVGRkVSX1NBTVBMRVMnOiAweDhDQUIsCi0gICdG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFJzogMHg4Q0QwLAotICAnRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSc6IDB4OENEMSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfVEVYVFVSRV9MRVZFTCc6IDB4OENEMiwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
VEVYVFVSRV9DVUJFX01BUF9GQUNFJzogMHg4Q0QzLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9URVhUVVJFX0xBWUVSJzogMHg4Q0Q0LAotICAnRlJBTUVCVUZGRVJfQ09NUExFVEUnOiAweDhD
RDUsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQnOiAweDhDRDYsCi0gICdG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCc6IDB4OENENywKLSAgJ0ZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfRFJBV19CVUZGRVInOiAweDhDREIsCi0gICdGUkFNRUJVRkZF
Ul9JTkNPTVBMRVRFX1JFQURfQlVGRkVSJzogMHg4Q0RDLAotICAnRlJBTUVCVUZGRVJfVU5TVVBQ
T1JURUQnOiAweDhDREQsCi0gICdNQVhfQ09MT1JfQVRUQUNITUVOVFMnOiAweDhDREYsCi0gICdD
T0xPUl9BVFRBQ0hNRU5UMCc6IDB4OENFMCwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxJzogMHg4Q0Ux
LAotICAnQ09MT1JfQVRUQUNITUVOVDInOiAweDhDRTIsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMyc6
IDB4OENFMywKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ0JzogMHg4Q0U0LAotICAnQ09MT1JfQVRUQUNI
TUVOVDUnOiAweDhDRTUsCi0gICdDT0xPUl9BVFRBQ0hNRU5UNic6IDB4OENFNiwKLSAgJ0NPTE9S
X0FUVEFDSE1FTlQ3JzogMHg4Q0U3LAotICAnQ09MT1JfQVRUQUNITUVOVDgnOiAweDhDRTgsCi0g
ICdDT0xPUl9BVFRBQ0hNRU5UOSc6IDB4OENFOSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxMCc6IDB4
OENFQSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxMSc6IDB4OENFQiwKLSAgJ0NPTE9SX0FUVEFDSE1F
TlQxMic6IDB4OENFQywKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxMyc6IDB4OENFRCwKLSAgJ0NPTE9S
X0FUVEFDSE1FTlQxNCc6IDB4OENFRSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxNSc6IDB4OENFRiwK
LSAgJ0RFUFRIX0FUVEFDSE1FTlQnOiAweDhEMDAsCi0gICdTVEVOQ0lMX0FUVEFDSE1FTlQnOiAw
eDhEMjAsCi0gICdGUkFNRUJVRkZFUic6IDB4OEQ0MCwKLSAgJ1JFTkRFUkJVRkZFUic6IDB4OEQ0
MSwKLSAgJ1JFTkRFUkJVRkZFUl9XSURUSCc6IDB4OEQ0MiwKLSAgJ1JFTkRFUkJVRkZFUl9IRUlH
SFQnOiAweDhENDMsCi0gICdSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUJzogMHg4RDQ0LAot
ICAnU1RFTkNJTF9JTkRFWDEnOiAweDhENDYsCi0gICdTVEVOQ0lMX0lOREVYNCc6IDB4OEQ0NywK
LSAgJ1NURU5DSUxfSU5ERVg4JzogMHg4RDQ4LAotICAnU1RFTkNJTF9JTkRFWDE2JzogMHg4RDQ5
LAotICAnUkVOREVSQlVGRkVSX1JFRF9TSVpFJzogMHg4RDUwLAotICAnUkVOREVSQlVGRkVSX0dS
RUVOX1NJWkUnOiAweDhENTEsCi0gICdSRU5ERVJCVUZGRVJfQkxVRV9TSVpFJzogMHg4RDUyLAot
ICAnUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUnOiAweDhENTMsCi0gICdSRU5ERVJCVUZGRVJfREVQ
VEhfU0laRSc6IDB4OEQ1NCwKLSAgJ1JFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUnOiAweDhENTUs
Ci0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFJzogMHg4RDU2LAotICAnTUFY
X1NBTVBMRVMnOiAweDhENTcsCi0gICdGUkFNRUJVRkZFUl9TUkdCJzogMHg4REI5LAotICAnTElO
RVNfQURKQUNFTkNZX0FSQic6IDB4QSwKLSAgJ0xJTkVfU1RSSVBfQURKQUNFTkNZX0FSQic6IDB4
QiwKLSAgJ1RSSUFOR0xFU19BREpBQ0VOQ1lfQVJCJzogMHhDLAotICAnVFJJQU5HTEVfU1RSSVBf
QURKQUNFTkNZX0FSQic6IDB4RCwKLSAgJ1BST0dSQU1fUE9JTlRfU0laRV9BUkInOiAweDg2NDIs
Ci0gICdNQVhfR0VPTUVUUllfVEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDhDMjksCi0gICdG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVInOiAweDhDRDQsCi0gICdGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0xBWUVSRURfQVJCJzogMHg4REE3LAotICAnRlJBTUVCVUZGRVJfSU5D
T01QTEVURV9MQVlFUl9UQVJHRVRTX0FSQic6IDB4OERBOCwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09N
UExFVEVfTEFZRVJfQ09VTlRfQVJCJzogMHg4REE5LAotICAnR0VPTUVUUllfU0hBREVSX0FSQic6
IDB4OEREOSwKLSAgJ0dFT01FVFJZX1ZFUlRJQ0VTX09VVF9BUkInOiAweDhEREEsCi0gICdHRU9N
RVRSWV9JTlBVVF9UWVBFX0FSQic6IDB4OEREQiwKLSAgJ0dFT01FVFJZX09VVFBVVF9UWVBFX0FS
Qic6IDB4OEREQywKLSAgJ01BWF9HRU9NRVRSWV9WQVJZSU5HX0NPTVBPTkVOVFNfQVJCJzogMHg4
RERELAotICAnTUFYX1ZFUlRFWF9WQVJZSU5HX0NPTVBPTkVOVFNfQVJCJzogMHg4RERFLAotICAn
TUFYX0dFT01FVFJZX1VOSUZPUk1fQ09NUE9ORU5UU19BUkInOiAweDhEREYsCi0gICdNQVhfR0VP
TUVUUllfT1VUUFVUX1ZFUlRJQ0VTX0FSQic6IDB4OERFMCwKLSAgJ01BWF9HRU9NRVRSWV9UT1RB
TF9PVVRQVVRfQ09NUE9ORU5UU19BUkInOiAweDhERTEsCi0gICdIQUxGX0ZMT0FUX0FSQic6IDB4
MTQwQiwKLSAgJ0hBTEZfRkxPQVQnOiAweDE0MEIsCi0gICdDT05TVEFOVF9DT0xPUic6IDB4ODAw
MSwKLSAgJ09ORV9NSU5VU19DT05TVEFOVF9DT0xPUic6IDB4ODAwMiwKLSAgJ0NPTlNUQU5UX0FM
UEhBJzogMHg4MDAzLAotICAnT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBJzogMHg4MDA0LAotICAn
QkxFTkRfQ09MT1InOiAweDgwMDUsCi0gICdGVU5DX0FERCc6IDB4ODAwNiwKLSAgJ01JTic6IDB4
ODAwNywKLSAgJ01BWCc6IDB4ODAwOCwKLSAgJ0JMRU5EX0VRVUFUSU9OJzogMHg4MDA5LAotICAn
RlVOQ19TVUJUUkFDVCc6IDB4ODAwQSwKLSAgJ0ZVTkNfUkVWRVJTRV9TVUJUUkFDVCc6IDB4ODAw
QiwKLSAgJ0NPTlZPTFVUSU9OXzFEJzogMHg4MDEwLAotICAnQ09OVk9MVVRJT05fMkQnOiAweDgw
MTEsCi0gICdTRVBBUkFCTEVfMkQnOiAweDgwMTIsCi0gICdDT05WT0xVVElPTl9CT1JERVJfTU9E
RSc6IDB4ODAxMywKLSAgJ0NPTlZPTFVUSU9OX0ZJTFRFUl9TQ0FMRSc6IDB4ODAxNCwKLSAgJ0NP
TlZPTFVUSU9OX0ZJTFRFUl9CSUFTJzogMHg4MDE1LAotICAnUkVEVUNFJzogMHg4MDE2LAotICAn
Q09OVk9MVVRJT05fRk9STUFUJzogMHg4MDE3LAotICAnQ09OVk9MVVRJT05fV0lEVEgnOiAweDgw
MTgsCi0gICdDT05WT0xVVElPTl9IRUlHSFQnOiAweDgwMTksCi0gICdNQVhfQ09OVk9MVVRJT05f
V0lEVEgnOiAweDgwMUEsCi0gICdNQVhfQ09OVk9MVVRJT05fSEVJR0hUJzogMHg4MDFCLAotICAn
UE9TVF9DT05WT0xVVElPTl9SRURfU0NBTEUnOiAweDgwMUMsCi0gICdQT1NUX0NPTlZPTFVUSU9O
X0dSRUVOX1NDQUxFJzogMHg4MDFELAotICAnUE9TVF9DT05WT0xVVElPTl9CTFVFX1NDQUxFJzog
MHg4MDFFLAotICAnUE9TVF9DT05WT0xVVElPTl9BTFBIQV9TQ0FMRSc6IDB4ODAxRiwKLSAgJ1BP
U1RfQ09OVk9MVVRJT05fUkVEX0JJQVMnOiAweDgwMjAsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0dS
RUVOX0JJQVMnOiAweDgwMjEsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0JMVUVfQklBUyc6IDB4ODAy
MiwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQUxQSEFfQklBUyc6IDB4ODAyMywKLSAgJ0hJU1RPR1JB
TSc6IDB4ODAyNCwKLSAgJ1BST1hZX0hJU1RPR1JBTSc6IDB4ODAyNSwKLSAgJ0hJU1RPR1JBTV9X
SURUSCc6IDB4ODAyNiwKLSAgJ0hJU1RPR1JBTV9GT1JNQVQnOiAweDgwMjcsCi0gICdISVNUT0dS
QU1fUkVEX1NJWkUnOiAweDgwMjgsCi0gICdISVNUT0dSQU1fR1JFRU5fU0laRSc6IDB4ODAyOSwK
LSAgJ0hJU1RPR1JBTV9CTFVFX1NJWkUnOiAweDgwMkEsCi0gICdISVNUT0dSQU1fQUxQSEFfU0la
RSc6IDB4ODAyQiwKLSAgJ0hJU1RPR1JBTV9MVU1JTkFOQ0VfU0laRSc6IDB4ODAyQywKLSAgJ0hJ
U1RPR1JBTV9TSU5LJzogMHg4MDJELAotICAnTUlOTUFYJzogMHg4MDJFLAotICAnTUlOTUFYX0ZP
Uk1BVCc6IDB4ODAyRiwKLSAgJ01JTk1BWF9TSU5LJzogMHg4MDMwLAotICAnVEFCTEVfVE9PX0xB
UkdFJzogMHg4MDMxLAotICAnQ09MT1JfTUFUUklYJzogMHg4MEIxLAotICAnQ09MT1JfTUFUUklY
X1NUQUNLX0RFUFRIJzogMHg4MEIyLAotICAnTUFYX0NPTE9SX01BVFJJWF9TVEFDS19ERVBUSCc6
IDB4ODBCMywKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX1JFRF9TQ0FMRSc6IDB4ODBCNCwKLSAgJ1BP
U1RfQ09MT1JfTUFUUklYX0dSRUVOX1NDQUxFJzogMHg4MEI1LAotICAnUE9TVF9DT0xPUl9NQVRS
SVhfQkxVRV9TQ0FMRSc6IDB4ODBCNiwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0FMUEhBX1NDQUxF
JzogMHg4MEI3LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfUkVEX0JJQVMnOiAweDgwQjgsCi0gICdQ
T1NUX0NPTE9SX01BVFJJWF9HUkVFTl9CSUFTJzogMHg4MEI5LAotICAnUE9TVF9DT0xPUl9NQVRS
SVhfQkxVRV9CSUFTJzogMHg4MEJBLAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQUxQSEFfQklBUyc6
IDB4ODBCQiwKLSAgJ0NPTE9SX1RBQkxFJzogMHg4MEQwLAotICAnUE9TVF9DT05WT0xVVElPTl9D
T0xPUl9UQUJMRSc6IDB4ODBEMSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0NPTE9SX1RBQkxFJzog
MHg4MEQyLAotICAnUFJPWFlfQ09MT1JfVEFCTEUnOiAweDgwRDMsCi0gICdQUk9YWV9QT1NUX0NP
TlZPTFVUSU9OX0NPTE9SX1RBQkxFJzogMHg4MEQ0LAotICAnUFJPWFlfUE9TVF9DT0xPUl9NQVRS
SVhfQ09MT1JfVEFCTEUnOiAweDgwRDUsCi0gICdDT0xPUl9UQUJMRV9TQ0FMRSc6IDB4ODBENiwK
LSAgJ0NPTE9SX1RBQkxFX0JJQVMnOiAweDgwRDcsCi0gICdDT0xPUl9UQUJMRV9GT1JNQVQnOiAw
eDgwRDgsCi0gICdDT0xPUl9UQUJMRV9XSURUSCc6IDB4ODBEOSwKLSAgJ0NPTE9SX1RBQkxFX1JF
RF9TSVpFJzogMHg4MERBLAotICAnQ09MT1JfVEFCTEVfR1JFRU5fU0laRSc6IDB4ODBEQiwKLSAg
J0NPTE9SX1RBQkxFX0JMVUVfU0laRSc6IDB4ODBEQywKLSAgJ0NPTE9SX1RBQkxFX0FMUEhBX1NJ
WkUnOiAweDgwREQsCi0gICdDT0xPUl9UQUJMRV9MVU1JTkFOQ0VfU0laRSc6IDB4ODBERSwKLSAg
J0NPTE9SX1RBQkxFX0lOVEVOU0lUWV9TSVpFJzogMHg4MERGLAotICAnSUdOT1JFX0JPUkRFUic6
IDB4ODE1MCwKLSAgJ0NPTlNUQU5UX0JPUkRFUic6IDB4ODE1MSwKLSAgJ1dSQVBfQk9SREVSJzog
MHg4MTUyLAotICAnUkVQTElDQVRFX0JPUkRFUic6IDB4ODE1MywKLSAgJ0NPTlZPTFVUSU9OX0JP
UkRFUl9DT0xPUic6IDB4ODE1NCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUl9BUkIn
OiAweDg4RkUsCi0gICdNQVBfUkVBRF9CSVQnOiAweDAwMDEsCi0gICdNQVBfV1JJVEVfQklUJzog
MHgwMDAyLAotICAnTUFQX0lOVkFMSURBVEVfUkFOR0VfQklUJzogMHgwMDA0LAotICAnTUFQX0lO
VkFMSURBVEVfQlVGRkVSX0JJVCc6IDB4MDAwOCwKLSAgJ01BUF9GTFVTSF9FWFBMSUNJVF9CSVQn
OiAweDAwMTAsCi0gICdNQVBfVU5TWU5DSFJPTklaRURfQklUJzogMHgwMDIwLAotICAnTUFUUklY
X1BBTEVUVEVfQVJCJzogMHg4ODQwLAotICAnTUFYX01BVFJJWF9QQUxFVFRFX1NUQUNLX0RFUFRI
X0FSQic6IDB4ODg0MSwKLSAgJ01BWF9QQUxFVFRFX01BVFJJQ0VTX0FSQic6IDB4ODg0MiwKLSAg
J0NVUlJFTlRfUEFMRVRURV9NQVRSSVhfQVJCJzogMHg4ODQzLAotICAnTUFUUklYX0lOREVYX0FS
UkFZX0FSQic6IDB4ODg0NCwKLSAgJ0NVUlJFTlRfTUFUUklYX0lOREVYX0FSQic6IDB4ODg0NSwK
LSAgJ01BVFJJWF9JTkRFWF9BUlJBWV9TSVpFX0FSQic6IDB4ODg0NiwKLSAgJ01BVFJJWF9JTkRF
WF9BUlJBWV9UWVBFX0FSQic6IDB4ODg0NywKLSAgJ01BVFJJWF9JTkRFWF9BUlJBWV9TVFJJREVf
QVJCJzogMHg4ODQ4LAotICAnTUFUUklYX0lOREVYX0FSUkFZX1BPSU5URVJfQVJCJzogMHg4ODQ5
LAotICAnTVVMVElTQU1QTEVfQVJCJzogMHg4MDlELAotICAnU0FNUExFX0FMUEhBX1RPX0NPVkVS
QUdFX0FSQic6IDB4ODA5RSwKLSAgJ1NBTVBMRV9BTFBIQV9UT19PTkVfQVJCJzogMHg4MDlGLAot
ICAnU0FNUExFX0NPVkVSQUdFX0FSQic6IDB4ODBBMCwKLSAgJ1NBTVBMRV9CVUZGRVJTX0FSQic6
IDB4ODBBOCwKLSAgJ1NBTVBMRVNfQVJCJzogMHg4MEE5LAotICAnU0FNUExFX0NPVkVSQUdFX1ZB
TFVFX0FSQic6IDB4ODBBQSwKLSAgJ1NBTVBMRV9DT1ZFUkFHRV9JTlZFUlRfQVJCJzogMHg4MEFC
LAotICAnTVVMVElTQU1QTEVfQklUX0FSQic6IDB4MjAwMDAwMDAsCi0gICdURVhUVVJFMF9BUkIn
OiAweDg0QzAsCi0gICdURVhUVVJFMV9BUkInOiAweDg0QzEsCi0gICdURVhUVVJFMl9BUkInOiAw
eDg0QzIsCi0gICdURVhUVVJFM19BUkInOiAweDg0QzMsCi0gICdURVhUVVJFNF9BUkInOiAweDg0
QzQsCi0gICdURVhUVVJFNV9BUkInOiAweDg0QzUsCi0gICdURVhUVVJFNl9BUkInOiAweDg0QzYs
Ci0gICdURVhUVVJFN19BUkInOiAweDg0QzcsCi0gICdURVhUVVJFOF9BUkInOiAweDg0QzgsCi0g
ICdURVhUVVJFOV9BUkInOiAweDg0QzksCi0gICdURVhUVVJFMTBfQVJCJzogMHg4NENBLAotICAn
VEVYVFVSRTExX0FSQic6IDB4ODRDQiwKLSAgJ1RFWFRVUkUxMl9BUkInOiAweDg0Q0MsCi0gICdU
RVhUVVJFMTNfQVJCJzogMHg4NENELAotICAnVEVYVFVSRTE0X0FSQic6IDB4ODRDRSwKLSAgJ1RF
WFRVUkUxNV9BUkInOiAweDg0Q0YsCi0gICdURVhUVVJFMTZfQVJCJzogMHg4NEQwLAotICAnVEVY
VFVSRTE3X0FSQic6IDB4ODREMSwKLSAgJ1RFWFRVUkUxOF9BUkInOiAweDg0RDIsCi0gICdURVhU
VVJFMTlfQVJCJzogMHg4NEQzLAotICAnVEVYVFVSRTIwX0FSQic6IDB4ODRENCwKLSAgJ1RFWFRV
UkUyMV9BUkInOiAweDg0RDUsCi0gICdURVhUVVJFMjJfQVJCJzogMHg4NEQ2LAotICAnVEVYVFVS
RTIzX0FSQic6IDB4ODRENywKLSAgJ1RFWFRVUkUyNF9BUkInOiAweDg0RDgsCi0gICdURVhUVVJF
MjVfQVJCJzogMHg4NEQ5LAotICAnVEVYVFVSRTI2X0FSQic6IDB4ODREQSwKLSAgJ1RFWFRVUkUy
N19BUkInOiAweDg0REIsCi0gICdURVhUVVJFMjhfQVJCJzogMHg4NERDLAotICAnVEVYVFVSRTI5
X0FSQic6IDB4ODRERCwKLSAgJ1RFWFRVUkUzMF9BUkInOiAweDg0REUsCi0gICdURVhUVVJFMzFf
QVJCJzogMHg4NERGLAotICAnQUNUSVZFX1RFWFRVUkVfQVJCJzogMHg4NEUwLAotICAnQ0xJRU5U
X0FDVElWRV9URVhUVVJFX0FSQic6IDB4ODRFMSwKLSAgJ01BWF9URVhUVVJFX1VOSVRTX0FSQic6
IDB4ODRFMiwKLSAgJ1FVRVJZX0NPVU5URVJfQklUU19BUkInOiAweDg4NjQsCi0gICdDVVJSRU5U
X1FVRVJZX0FSQic6IDB4ODg2NSwKLSAgJ1FVRVJZX1JFU1VMVF9BUkInOiAweDg4NjYsCi0gICdR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFX0FSQic6IDB4ODg2NywKLSAgJ1NBTVBMRVNfUEFTU0VEX0FS
Qic6IDB4ODkxNCwKLSAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0FSQic6IDB4ODhFQiwKLSAgJ1BJWEVM
X1VOUEFDS19CVUZGRVJfQVJCJzogMHg4OEVDLAotICAnUElYRUxfUEFDS19CVUZGRVJfQklORElO
R19BUkInOiAweDg4RUQsCi0gICdQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4
OEVGLAotICAnUE9JTlRfU0laRV9NSU5fQVJCJzogMHg4MTI2LAotICAnUE9JTlRfU0laRV9NQVhf
QVJCJzogMHg4MTI3LAotICAnUE9JTlRfRkFERV9USFJFU0hPTERfU0laRV9BUkInOiAweDgxMjgs
Ci0gICdQT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkInOiAweDgxMjksCi0gICdQT0lOVF9T
UFJJVEVfQVJCJzogMHg4ODYxLAotICAnQ09PUkRfUkVQTEFDRV9BUkInOiAweDg4NjIsCi0gICdQ
Uk9HUkFNX09CSkVDVF9BUkInOiAweDhCNDAsCi0gICdTSEFERVJfT0JKRUNUX0FSQic6IDB4OEI0
OCwKLSAgJ09CSkVDVF9UWVBFX0FSQic6IDB4OEI0RSwKLSAgJ09CSkVDVF9TVUJUWVBFX0FSQic6
IDB4OEI0RiwKLSAgJ0ZMT0FUX1ZFQzJfQVJCJzogMHg4QjUwLAotICAnRkxPQVRfVkVDM19BUkIn
OiAweDhCNTEsCi0gICdGTE9BVF9WRUM0X0FSQic6IDB4OEI1MiwKLSAgJ0lOVF9WRUMyX0FSQic6
IDB4OEI1MywKLSAgJ0lOVF9WRUMzX0FSQic6IDB4OEI1NCwKLSAgJ0lOVF9WRUM0X0FSQic6IDB4
OEI1NSwKLSAgJ0JPT0xfQVJCJzogMHg4QjU2LAotICAnQk9PTF9WRUMyX0FSQic6IDB4OEI1NywK
LSAgJ0JPT0xfVkVDM19BUkInOiAweDhCNTgsCi0gICdCT09MX1ZFQzRfQVJCJzogMHg4QjU5LAot
ICAnRkxPQVRfTUFUMl9BUkInOiAweDhCNUEsCi0gICdGTE9BVF9NQVQzX0FSQic6IDB4OEI1QiwK
LSAgJ0ZMT0FUX01BVDRfQVJCJzogMHg4QjVDLAotICAnU0FNUExFUl8xRF9BUkInOiAweDhCNUQs
Ci0gICdTQU1QTEVSXzJEX0FSQic6IDB4OEI1RSwKLSAgJ1NBTVBMRVJfM0RfQVJCJzogMHg4QjVG
LAotICAnU0FNUExFUl9DVUJFX0FSQic6IDB4OEI2MCwKLSAgJ1NBTVBMRVJfMURfU0hBRE9XX0FS
Qic6IDB4OEI2MSwKLSAgJ1NBTVBMRVJfMkRfU0hBRE9XX0FSQic6IDB4OEI2MiwKLSAgJ1NBTVBM
RVJfMkRfUkVDVF9BUkInOiAweDhCNjMsCi0gICdTQU1QTEVSXzJEX1JFQ1RfU0hBRE9XX0FSQic6
IDB4OEI2NCwKLSAgJ09CSkVDVF9ERUxFVEVfU1RBVFVTX0FSQic6IDB4OEI4MCwKLSAgJ09CSkVD
VF9DT01QSUxFX1NUQVRVU19BUkInOiAweDhCODEsCi0gICdPQkpFQ1RfTElOS19TVEFUVVNfQVJC
JzogMHg4QjgyLAotICAnT0JKRUNUX1ZBTElEQVRFX1NUQVRVU19BUkInOiAweDhCODMsCi0gICdP
QkpFQ1RfSU5GT19MT0dfTEVOR1RIX0FSQic6IDB4OEI4NCwKLSAgJ09CSkVDVF9BVFRBQ0hFRF9P
QkpFQ1RTX0FSQic6IDB4OEI4NSwKLSAgJ09CSkVDVF9BQ1RJVkVfVU5JRk9STVNfQVJCJzogMHg4
Qjg2LAotICAnT0JKRUNUX0FDVElWRV9VTklGT1JNX01BWF9MRU5HVEhfQVJCJzogMHg4Qjg3LAot
ICAnT0JKRUNUX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FSQic6IDB4OEI4OCwKLSAgJ1NIQURJTkdf
TEFOR1VBR0VfVkVSU0lPTl9BUkInOiAweDhCOEMsCi0gICdURVhUVVJFX0NPTVBBUkVfTU9ERV9B
UkInOiAweDg4NEMsCi0gICdURVhUVVJFX0NPTVBBUkVfRlVOQ19BUkInOiAweDg4NEQsCi0gICdD
T01QQVJFX1JfVE9fVEVYVFVSRV9BUkInOiAweDg4NEUsCi0gICdURVhUVVJFX0NPTVBBUkVfRkFJ
TF9WQUxVRV9BUkInOiAweDgwQkYsCi0gICdDTEFNUF9UT19CT1JERVJfQVJCJzogMHg4MTJELAot
ICAnVEVYVFVSRV9CVUZGRVJfQVJCJzogMHg4QzJBLAotICAnTUFYX1RFWFRVUkVfQlVGRkVSX1NJ
WkVfQVJCJzogMHg4QzJCLAotICAnVEVYVFVSRV9CSU5ESU5HX0JVRkZFUl9BUkInOiAweDhDMkMs
Ci0gICdURVhUVVJFX0JVRkZFUl9EQVRBX1NUT1JFX0JJTkRJTkdfQVJCJzogMHg4QzJELAotICAn
VEVYVFVSRV9CVUZGRVJfRk9STUFUX0FSQic6IDB4OEMyRSwKLSAgJ0NPTVBSRVNTRURfQUxQSEFf
QVJCJzogMHg4NEU5LAotICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQVJCJzogMHg4NEVBLAotICAn
Q09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEFfQVJCJzogMHg4NEVCLAotICAnQ09NUFJFU1NFRF9J
TlRFTlNJVFlfQVJCJzogMHg4NEVDLAotICAnQ09NUFJFU1NFRF9SR0JfQVJCJzogMHg4NEVELAot
ICAnQ09NUFJFU1NFRF9SR0JBX0FSQic6IDB4ODRFRSwKLSAgJ1RFWFRVUkVfQ09NUFJFU1NJT05f
SElOVF9BUkInOiAweDg0RUYsCi0gICdURVhUVVJFX0NPTVBSRVNTRURfSU1BR0VfU0laRV9BUkIn
OiAweDg2QTAsCi0gICdURVhUVVJFX0NPTVBSRVNTRURfQVJCJzogMHg4NkExLAotICAnTlVNX0NP
TVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTX0FSQic6IDB4ODZBMiwKLSAgJ0NPTVBSRVNTRURfVEVY
VFVSRV9GT1JNQVRTX0FSQic6IDB4ODZBMywKLSAgJ0NPTVBSRVNTRURfUkVEX1JHVEMxJzogMHg4
REJCLAotICAnQ09NUFJFU1NFRF9TSUdORURfUkVEX1JHVEMxJzogMHg4REJDLAotICAnQ09NUFJF
U1NFRF9SR19SR1RDMic6IDB4OERCRCwKLSAgJ0NPTVBSRVNTRURfU0lHTkVEX1JHX1JHVEMyJzog
MHg4REJFLAotICAnTk9STUFMX01BUF9BUkInOiAweDg1MTEsCi0gICdSRUZMRUNUSU9OX01BUF9B
UkInOiAweDg1MTIsCi0gICdURVhUVVJFX0NVQkVfTUFQX0FSQic6IDB4ODUxMywKLSAgJ1RFWFRV
UkVfQklORElOR19DVUJFX01BUF9BUkInOiAweDg1MTQsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1hfQVJCJzogMHg4NTE1LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YX0FS
Qic6IDB4ODUxNiwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWV9BUkInOiAweDg1MTcs
Ci0gICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1lfQVJCJzogMHg4NTE4LAotICAnVEVYVFVS
RV9DVUJFX01BUF9QT1NJVElWRV9aX0FSQic6IDB4ODUxOSwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWl9BUkInOiAweDg1MUEsCi0gICdQUk9YWV9URVhUVVJFX0NVQkVfTUFQX0FSQic6
IDB4ODUxQiwKLSAgJ01BWF9DVUJFX01BUF9URVhUVVJFX1NJWkVfQVJCJzogMHg4NTFDLAotICAn
U1VCVFJBQ1RfQVJCJzogMHg4NEU3LAotICAnQ09NQklORV9BUkInOiAweDg1NzAsCi0gICdDT01C
SU5FX1JHQl9BUkInOiAweDg1NzEsCi0gICdDT01CSU5FX0FMUEhBX0FSQic6IDB4ODU3MiwKLSAg
J1JHQl9TQ0FMRV9BUkInOiAweDg1NzMsCi0gICdBRERfU0lHTkVEX0FSQic6IDB4ODU3NCwKLSAg
J0lOVEVSUE9MQVRFX0FSQic6IDB4ODU3NSwKLSAgJ0NPTlNUQU5UX0FSQic6IDB4ODU3NiwKLSAg
J1BSSU1BUllfQ09MT1JfQVJCJzogMHg4NTc3LAotICAnUFJFVklPVVNfQVJCJzogMHg4NTc4LAot
ICAnU09VUkNFMF9SR0JfQVJCJzogMHg4NTgwLAotICAnU09VUkNFMV9SR0JfQVJCJzogMHg4NTgx
LAotICAnU09VUkNFMl9SR0JfQVJCJzogMHg4NTgyLAotICAnU09VUkNFMF9BTFBIQV9BUkInOiAw
eDg1ODgsCi0gICdTT1VSQ0UxX0FMUEhBX0FSQic6IDB4ODU4OSwKLSAgJ1NPVVJDRTJfQUxQSEFf
QVJCJzogMHg4NThBLAotICAnT1BFUkFORDBfUkdCX0FSQic6IDB4ODU5MCwKLSAgJ09QRVJBTkQx
X1JHQl9BUkInOiAweDg1OTEsCi0gICdPUEVSQU5EMl9SR0JfQVJCJzogMHg4NTkyLAotICAnT1BF
UkFORDBfQUxQSEFfQVJCJzogMHg4NTk4LAotICAnT1BFUkFORDFfQUxQSEFfQVJCJzogMHg4NTk5
LAotICAnT1BFUkFORDJfQUxQSEFfQVJCJzogMHg4NTlBLAotICAnRE9UM19SR0JfQVJCJzogMHg4
NkFFLAotICAnRE9UM19SR0JBX0FSQic6IDB4ODZBRiwKLSAgJ1JHQkEzMkZfQVJCJzogMHg4ODE0
LAotICAnUkdCMzJGX0FSQic6IDB4ODgxNSwKLSAgJ0FMUEhBMzJGX0FSQic6IDB4ODgxNiwKLSAg
J0lOVEVOU0lUWTMyRl9BUkInOiAweDg4MTcsCi0gICdMVU1JTkFOQ0UzMkZfQVJCJzogMHg4ODE4
LAotICAnTFVNSU5BTkNFX0FMUEhBMzJGX0FSQic6IDB4ODgxOSwKLSAgJ1JHQkExNkZfQVJCJzog
MHg4ODFBLAotICAnUkdCMTZGX0FSQic6IDB4ODgxQiwKLSAgJ0FMUEhBMTZGX0FSQic6IDB4ODgx
QywKLSAgJ0lOVEVOU0lUWTE2Rl9BUkInOiAweDg4MUQsCi0gICdMVU1JTkFOQ0UxNkZfQVJCJzog
MHg4ODFFLAotICAnTFVNSU5BTkNFX0FMUEhBMTZGX0FSQic6IDB4ODgxRiwKLSAgJ1RFWFRVUkVf
UkVEX1RZUEVfQVJCJzogMHg4QzEwLAotICAnVEVYVFVSRV9HUkVFTl9UWVBFX0FSQic6IDB4OEMx
MSwKLSAgJ1RFWFRVUkVfQkxVRV9UWVBFX0FSQic6IDB4OEMxMiwKLSAgJ1RFWFRVUkVfQUxQSEFf
VFlQRV9BUkInOiAweDhDMTMsCi0gICdURVhUVVJFX0xVTUlOQU5DRV9UWVBFX0FSQic6IDB4OEMx
NCwKLSAgJ1RFWFRVUkVfSU5URU5TSVRZX1RZUEVfQVJCJzogMHg4QzE1LAotICAnVEVYVFVSRV9E
RVBUSF9UWVBFX0FSQic6IDB4OEMxNiwKLSAgJ1VOU0lHTkVEX05PUk1BTElaRURfQVJCJzogMHg4
QzE3LAotICAnTUlSUk9SRURfUkVQRUFUX0FSQic6IDB4ODM3MCwKLSAgJ1RFWFRVUkVfUkVDVEFO
R0xFX0FSQic6IDB4ODRGNSwKLSAgJ1RFWFRVUkVfQklORElOR19SRUNUQU5HTEVfQVJCJzogMHg4
NEY2LAotICAnUFJPWFlfVEVYVFVSRV9SRUNUQU5HTEVfQVJCJzogMHg4NEY3LAotICAnTUFYX1JF
Q1RBTkdMRV9URVhUVVJFX1NJWkVfQVJCJzogMHg4NEY4LAotICAnU0FNUExFUl8yRF9SRUNUX0FS
Qic6IDB4OEI2MywKLSAgJ1NBTVBMRVJfMkRfUkVDVF9TSEFET1dfQVJCJzogMHg4QjY0LAotICAn
UkVEJzogMHgxOTAzLAotICAnUkcnOiAweDgyMjcsCi0gICdSR19JTlRFR0VSJzogMHg4MjI4LAot
ICAnUjgnOiAweDgyMjksCi0gICdSMTYnOiAweDgyMkEsCi0gICdSRzgnOiAweDgyMkIsCi0gICdS
RzE2JzogMHg4MjJDLAotICAnUjE2Ric6IDB4ODIyRCwKLSAgJ1IzMkYnOiAweDgyMkUsCi0gICdS
RzE2Ric6IDB4ODIyRiwKLSAgJ1JHMzJGJzogMHg4MjMwLAotICAnUjhJJzogMHg4MjMxLAotICAn
UjhVSSc6IDB4ODIzMiwKLSAgJ1IxNkknOiAweDgyMzMsCi0gICdSMTZVSSc6IDB4ODIzNCwKLSAg
J1IzMkknOiAweDgyMzUsCi0gICdSMzJVSSc6IDB4ODIzNiwKLSAgJ1JHOEknOiAweDgyMzcsCi0g
ICdSRzhVSSc6IDB4ODIzOCwKLSAgJ1JHMTZJJzogMHg4MjM5LAotICAnUkcxNlVJJzogMHg4MjNB
LAotICAnUkczMkknOiAweDgyM0IsCi0gICdSRzMyVUknOiAweDgyM0MsCi0gICdUUkFOU1BPU0Vf
TU9ERUxWSUVXX01BVFJJWF9BUkInOiAweDg0RTMsCi0gICdUUkFOU1BPU0VfUFJPSkVDVElPTl9N
QVRSSVhfQVJCJzogMHg4NEU0LAotICAnVFJBTlNQT1NFX1RFWFRVUkVfTUFUUklYX0FSQic6IDB4
ODRFNSwKLSAgJ1RSQU5TUE9TRV9DT0xPUl9NQVRSSVhfQVJCJzogMHg4NEU2LAotICAnVkVSVEVY
X0FSUkFZX0JJTkRJTkcnOiAweDg1QjUsCi0gICdNT0RFTFZJRVcwX0FSQic6IDB4MTcwMCwKLSAg
J01PREVMVklFVzFfQVJCJzogMHg4NTBBLAotICAnTUFYX1ZFUlRFWF9VTklUU19BUkInOiAweDg2
QTQsCi0gICdBQ1RJVkVfVkVSVEVYX1VOSVRTX0FSQic6IDB4ODZBNSwKLSAgJ1dFSUdIVF9TVU1f
VU5JVFlfQVJCJzogMHg4NkE2LAotICAnVkVSVEVYX0JMRU5EX0FSQic6IDB4ODZBNywKLSAgJ0NV
UlJFTlRfV0VJR0hUX0FSQic6IDB4ODZBOCwKLSAgJ1dFSUdIVF9BUlJBWV9UWVBFX0FSQic6IDB4
ODZBOSwKLSAgJ1dFSUdIVF9BUlJBWV9TVFJJREVfQVJCJzogMHg4NkFBLAotICAnV0VJR0hUX0FS
UkFZX1NJWkVfQVJCJzogMHg4NkFCLAotICAnV0VJR0hUX0FSUkFZX1BPSU5URVJfQVJCJzogMHg4
NkFDLAotICAnV0VJR0hUX0FSUkFZX0FSQic6IDB4ODZBRCwKLSAgJ01PREVMVklFVzJfQVJCJzog
MHg4NzIyLAotICAnTU9ERUxWSUVXM19BUkInOiAweDg3MjMsCi0gICdNT0RFTFZJRVc0X0FSQic6
IDB4ODcyNCwKLSAgJ01PREVMVklFVzVfQVJCJzogMHg4NzI1LAotICAnTU9ERUxWSUVXNl9BUkIn
OiAweDg3MjYsCi0gICdNT0RFTFZJRVc3X0FSQic6IDB4ODcyNywKLSAgJ01PREVMVklFVzhfQVJC
JzogMHg4NzI4LAotICAnTU9ERUxWSUVXOV9BUkInOiAweDg3MjksCi0gICdNT0RFTFZJRVcxMF9B
UkInOiAweDg3MkEsCi0gICdNT0RFTFZJRVcxMV9BUkInOiAweDg3MkIsCi0gICdNT0RFTFZJRVcx
Ml9BUkInOiAweDg3MkMsCi0gICdNT0RFTFZJRVcxM19BUkInOiAweDg3MkQsCi0gICdNT0RFTFZJ
RVcxNF9BUkInOiAweDg3MkUsCi0gICdNT0RFTFZJRVcxNV9BUkInOiAweDg3MkYsCi0gICdNT0RF
TFZJRVcxNl9BUkInOiAweDg3MzAsCi0gICdNT0RFTFZJRVcxN19BUkInOiAweDg3MzEsCi0gICdN
T0RFTFZJRVcxOF9BUkInOiAweDg3MzIsCi0gICdNT0RFTFZJRVcxOV9BUkInOiAweDg3MzMsCi0g
ICdNT0RFTFZJRVcyMF9BUkInOiAweDg3MzQsCi0gICdNT0RFTFZJRVcyMV9BUkInOiAweDg3MzUs
Ci0gICdNT0RFTFZJRVcyMl9BUkInOiAweDg3MzYsCi0gICdNT0RFTFZJRVcyM19BUkInOiAweDg3
MzcsCi0gICdNT0RFTFZJRVcyNF9BUkInOiAweDg3MzgsCi0gICdNT0RFTFZJRVcyNV9BUkInOiAw
eDg3MzksCi0gICdNT0RFTFZJRVcyNl9BUkInOiAweDg3M0EsCi0gICdNT0RFTFZJRVcyN19BUkIn
OiAweDg3M0IsCi0gICdNT0RFTFZJRVcyOF9BUkInOiAweDg3M0MsCi0gICdNT0RFTFZJRVcyOV9B
UkInOiAweDg3M0QsCi0gICdNT0RFTFZJRVczMF9BUkInOiAweDg3M0UsCi0gICdNT0RFTFZJRVcz
MV9BUkInOiAweDg3M0YsCi0gICdCVUZGRVJfU0laRV9BUkInOiAweDg3NjQsCi0gICdCVUZGRVJf
VVNBR0VfQVJCJzogMHg4NzY1LAotICAnQVJSQVlfQlVGRkVSX0FSQic6IDB4ODg5MiwKLSAgJ0VM
RU1FTlRfQVJSQVlfQlVGRkVSX0FSQic6IDB4ODg5MywKLSAgJ0FSUkFZX0JVRkZFUl9CSU5ESU5H
X0FSQic6IDB4ODg5NCwKLSAgJ0VMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4
ODk1LAotICAnVkVSVEVYX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5NiwKLSAgJ05P
Uk1BTF9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OTcsCi0gICdDT0xPUl9BUlJBWV9C
VUZGRVJfQklORElOR19BUkInOiAweDg4OTgsCi0gICdJTkRFWF9BUlJBWV9CVUZGRVJfQklORElO
R19BUkInOiAweDg4OTksCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FS
Qic6IDB4ODg5QSwKLSAgJ0VER0VfRkxBR19BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4
OUIsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODlD
LAotICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODlELAot
ICAnV0VJR0hUX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5RSwKLSAgJ1ZFUlRFWF9B
VFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODlGLAotICAnUkVBRF9PTkxZX0FS
Qic6IDB4ODhCOCwKLSAgJ1dSSVRFX09OTFlfQVJCJzogMHg4OEI5LAotICAnUkVBRF9XUklURV9B
UkInOiAweDg4QkEsCi0gICdCVUZGRVJfQUNDRVNTX0FSQic6IDB4ODhCQiwKLSAgJ0JVRkZFUl9N
QVBQRURfQVJCJzogMHg4OEJDLAotICAnQlVGRkVSX01BUF9QT0lOVEVSX0FSQic6IDB4ODhCRCwK
LSAgJ1NUUkVBTV9EUkFXX0FSQic6IDB4ODhFMCwKLSAgJ1NUUkVBTV9SRUFEX0FSQic6IDB4ODhF
MSwKLSAgJ1NUUkVBTV9DT1BZX0FSQic6IDB4ODhFMiwKLSAgJ1NUQVRJQ19EUkFXX0FSQic6IDB4
ODhFNCwKLSAgJ1NUQVRJQ19SRUFEX0FSQic6IDB4ODhFNSwKLSAgJ1NUQVRJQ19DT1BZX0FSQic6
IDB4ODhFNiwKLSAgJ0RZTkFNSUNfRFJBV19BUkInOiAweDg4RTgsCi0gICdEWU5BTUlDX1JFQURf
QVJCJzogMHg4OEU5LAotICAnRFlOQU1JQ19DT1BZX0FSQic6IDB4ODhFQSwKLSAgJ0NPTE9SX1NV
TV9BUkInOiAweDg0NTgsCi0gICdWRVJURVhfUFJPR1JBTV9BUkInOiAweDg2MjAsCi0gICdWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRURfQVJCJzogMHg4NjIyLAotICAnVkVSVEVYX0FUVFJJQl9B
UlJBWV9TSVpFX0FSQic6IDB4ODYyMywKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFX0FS
Qic6IDB4ODYyNCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRV9BUkInOiAweDg2MjUsCi0g
ICdDVVJSRU5UX1ZFUlRFWF9BVFRSSUJfQVJCJzogMHg4NjI2LAotICAnUFJPR1JBTV9MRU5HVEhf
QVJCJzogMHg4NjI3LAotICAnUFJPR1JBTV9TVFJJTkdfQVJCJzogMHg4NjI4LAotICAnTUFYX1BS
T0dSQU1fTUFUUklYX1NUQUNLX0RFUFRIX0FSQic6IDB4ODYyRSwKLSAgJ01BWF9QUk9HUkFNX01B
VFJJQ0VTX0FSQic6IDB4ODYyRiwKLSAgJ0NVUlJFTlRfTUFUUklYX1NUQUNLX0RFUFRIX0FSQic6
IDB4ODY0MCwKLSAgJ0NVUlJFTlRfTUFUUklYX0FSQic6IDB4ODY0MSwKLSAgJ1ZFUlRFWF9QUk9H
UkFNX1BPSU5UX1NJWkVfQVJCJzogMHg4NjQyLAotICAnVkVSVEVYX1BST0dSQU1fVFdPX1NJREVf
QVJCJzogMHg4NjQzLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSX0FSQic6IDB4ODY0
NSwKLSAgJ1BST0dSQU1fRVJST1JfUE9TSVRJT05fQVJCJzogMHg4NjRCLAotICAnUFJPR1JBTV9C
SU5ESU5HX0FSQic6IDB4ODY3NywKLSAgJ01BWF9WRVJURVhfQVRUUklCU19BUkInOiAweDg4Njks
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRURfQVJCJzogMHg4ODZBLAotICAnUFJP
R1JBTV9FUlJPUl9TVFJJTkdfQVJCJzogMHg4ODc0LAotICAnUFJPR1JBTV9GT1JNQVRfQVNDSUlf
QVJCJzogMHg4ODc1LAotICAnUFJPR1JBTV9GT1JNQVRfQVJCJzogMHg4ODc2LAotICAnUFJPR1JB
TV9JTlNUUlVDVElPTlNfQVJCJzogMHg4OEEwLAotICAnTUFYX1BST0dSQU1fSU5TVFJVQ1RJT05T
X0FSQic6IDB4ODhBMSwKLSAgJ1BST0dSQU1fTkFUSVZFX0lOU1RSVUNUSU9OU19BUkInOiAweDg4
QTIsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODhBMywKLSAg
J1BST0dSQU1fVEVNUE9SQVJJRVNfQVJCJzogMHg4OEE0LAotICAnTUFYX1BST0dSQU1fVEVNUE9S
QVJJRVNfQVJCJzogMHg4OEE1LAotICAnUFJPR1JBTV9OQVRJVkVfVEVNUE9SQVJJRVNfQVJCJzog
MHg4OEE2LAotICAnTUFYX1BST0dSQU1fTkFUSVZFX1RFTVBPUkFSSUVTX0FSQic6IDB4ODhBNywK
LSAgJ1BST0dSQU1fUEFSQU1FVEVSU19BUkInOiAweDg4QTgsCi0gICdNQVhfUFJPR1JBTV9QQVJB
TUVURVJTX0FSQic6IDB4ODhBOSwKLSAgJ1BST0dSQU1fTkFUSVZFX1BBUkFNRVRFUlNfQVJCJzog
MHg4OEFBLAotICAnTUFYX1BST0dSQU1fTkFUSVZFX1BBUkFNRVRFUlNfQVJCJzogMHg4OEFCLAot
ICAnUFJPR1JBTV9BVFRSSUJTX0FSQic6IDB4ODhBQywKLSAgJ01BWF9QUk9HUkFNX0FUVFJJQlNf
QVJCJzogMHg4OEFELAotICAnUFJPR1JBTV9OQVRJVkVfQVRUUklCU19BUkInOiAweDg4QUUsCi0g
ICdNQVhfUFJPR1JBTV9OQVRJVkVfQVRUUklCU19BUkInOiAweDg4QUYsCi0gICdQUk9HUkFNX0FE
RFJFU1NfUkVHSVNURVJTX0FSQic6IDB4ODhCMCwKLSAgJ01BWF9QUk9HUkFNX0FERFJFU1NfUkVH
SVNURVJTX0FSQic6IDB4ODhCMSwKLSAgJ1BST0dSQU1fTkFUSVZFX0FERFJFU1NfUkVHSVNURVJT
X0FSQic6IDB4ODhCMiwKLSAgJ01BWF9QUk9HUkFNX05BVElWRV9BRERSRVNTX1JFR0lTVEVSU19B
UkInOiAweDg4QjMsCi0gICdNQVhfUFJPR1JBTV9MT0NBTF9QQVJBTUVURVJTX0FSQic6IDB4ODhC
NCwKLSAgJ01BWF9QUk9HUkFNX0VOVl9QQVJBTUVURVJTX0FSQic6IDB4ODhCNSwKLSAgJ1BST0dS
QU1fVU5ERVJfTkFUSVZFX0xJTUlUU19BUkInOiAweDg4QjYsCi0gICdUUkFOU1BPU0VfQ1VSUkVO
VF9NQVRSSVhfQVJCJzogMHg4OEI3LAotICAnTUFUUklYMF9BUkInOiAweDg4QzAsCi0gICdNQVRS
SVgxX0FSQic6IDB4ODhDMSwKLSAgJ01BVFJJWDJfQVJCJzogMHg4OEMyLAotICAnTUFUUklYM19B
UkInOiAweDg4QzMsCi0gICdNQVRSSVg0X0FSQic6IDB4ODhDNCwKLSAgJ01BVFJJWDVfQVJCJzog
MHg4OEM1LAotICAnTUFUUklYNl9BUkInOiAweDg4QzYsCi0gICdNQVRSSVg3X0FSQic6IDB4ODhD
NywKLSAgJ01BVFJJWDhfQVJCJzogMHg4OEM4LAotICAnTUFUUklYOV9BUkInOiAweDg4QzksCi0g
ICdNQVRSSVgxMF9BUkInOiAweDg4Q0EsCi0gICdNQVRSSVgxMV9BUkInOiAweDg4Q0IsCi0gICdN
QVRSSVgxMl9BUkInOiAweDg4Q0MsCi0gICdNQVRSSVgxM19BUkInOiAweDg4Q0QsCi0gICdNQVRS
SVgxNF9BUkInOiAweDg4Q0UsCi0gICdNQVRSSVgxNV9BUkInOiAweDg4Q0YsCi0gICdNQVRSSVgx
Nl9BUkInOiAweDg4RDAsCi0gICdNQVRSSVgxN19BUkInOiAweDg4RDEsCi0gICdNQVRSSVgxOF9B
UkInOiAweDg4RDIsCi0gICdNQVRSSVgxOV9BUkInOiAweDg4RDMsCi0gICdNQVRSSVgyMF9BUkIn
OiAweDg4RDQsCi0gICdNQVRSSVgyMV9BUkInOiAweDg4RDUsCi0gICdNQVRSSVgyMl9BUkInOiAw
eDg4RDYsCi0gICdNQVRSSVgyM19BUkInOiAweDg4RDcsCi0gICdNQVRSSVgyNF9BUkInOiAweDg4
RDgsCi0gICdNQVRSSVgyNV9BUkInOiAweDg4RDksCi0gICdNQVRSSVgyNl9BUkInOiAweDg4REEs
Ci0gICdNQVRSSVgyN19BUkInOiAweDg4REIsCi0gICdNQVRSSVgyOF9BUkInOiAweDg4REMsCi0g
ICdNQVRSSVgyOV9BUkInOiAweDg4REQsCi0gICdNQVRSSVgzMF9BUkInOiAweDg4REUsCi0gICdN
QVRSSVgzMV9BUkInOiAweDg4REYsCi0gICdWRVJURVhfU0hBREVSX0FSQic6IDB4OEIzMSwKLSAg
J01BWF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTX0FSQic6IDB4OEI0QSwKLSAgJ01BWF9WQVJZ
SU5HX0ZMT0FUU19BUkInOiAweDhCNEIsCi0gICdNQVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5J
VFNfQVJCJzogMHg4QjRDLAotICAnTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFNfQVJC
JzogMHg4QjRELAotICAnT0JKRUNUX0FDVElWRV9BVFRSSUJVVEVTX0FSQic6IDB4OEI4OSwKLSAg
J09CSkVDVF9BQ1RJVkVfQVRUUklCVVRFX01BWF9MRU5HVEhfQVJCJzogMHg4QjhBLAotICAnVEVY
VFVSRV9QT0lOVF9NT0RFX0FUSVgnOiAweDYwQjAsCi0gICdURVhUVVJFX1BPSU5UX09ORV9DT09S
RF9BVElYJzogMHg2MEIxLAotICAnVEVYVFVSRV9QT0lOVF9TUFJJVEVfQVRJWCc6IDB4NjBCMiwK
LSAgJ1BPSU5UX1NQUklURV9DVUxMX01PREVfQVRJWCc6IDB4NjBCMywKLSAgJ1BPSU5UX1NQUklU
RV9DVUxMX0NFTlRFUl9BVElYJzogMHg2MEI0LAotICAnUE9JTlRfU1BSSVRFX0NVTExfQ0xJUF9B
VElYJzogMHg2MEI1LAotICAnTU9EVUxBVEVfQUREX0FUSVgnOiAweDg3NDQsCi0gICdNT0RVTEFU
RV9TSUdORURfQUREX0FUSVgnOiAweDg3NDUsCi0gICdNT0RVTEFURV9TVUJUUkFDVF9BVElYJzog
MHg4NzQ2LAotICAnU0VDT05EQVJZX0NPTE9SX0FUSVgnOiAweDg3NDcsCi0gICdURVhUVVJFX09V
VFBVVF9SR0JfQVRJWCc6IDB4ODc0OCwKLSAgJ1RFWFRVUkVfT1VUUFVUX0FMUEhBX0FUSVgnOiAw
eDg3NDksCi0gICdPVVRQVVRfUE9JTlRfU0laRV9BVElYJzogMHg2MTBFLAotICAnTUFYX0RSQVdf
QlVGRkVSU19BVEknOiAweDg4MjQsCi0gICdEUkFXX0JVRkZFUjBfQVRJJzogMHg4ODI1LAotICAn
RFJBV19CVUZGRVIxX0FUSSc6IDB4ODgyNiwKLSAgJ0RSQVdfQlVGRkVSMl9BVEknOiAweDg4Mjcs
Ci0gICdEUkFXX0JVRkZFUjNfQVRJJzogMHg4ODI4LAotICAnRFJBV19CVUZGRVI0X0FUSSc6IDB4
ODgyOSwKLSAgJ0RSQVdfQlVGRkVSNV9BVEknOiAweDg4MkEsCi0gICdEUkFXX0JVRkZFUjZfQVRJ
JzogMHg4ODJCLAotICAnRFJBV19CVUZGRVI3X0FUSSc6IDB4ODgyQywKLSAgJ0RSQVdfQlVGRkVS
OF9BVEknOiAweDg4MkQsCi0gICdEUkFXX0JVRkZFUjlfQVRJJzogMHg4ODJFLAotICAnRFJBV19C
VUZGRVIxMF9BVEknOiAweDg4MkYsCi0gICdEUkFXX0JVRkZFUjExX0FUSSc6IDB4ODgzMCwKLSAg
J0RSQVdfQlVGRkVSMTJfQVRJJzogMHg4ODMxLAotICAnRFJBV19CVUZGRVIxM19BVEknOiAweDg4
MzIsCi0gICdEUkFXX0JVRkZFUjE0X0FUSSc6IDB4ODgzMywKLSAgJ0RSQVdfQlVGRkVSMTVfQVRJ
JzogMHg4ODM0LAotICAnRUxFTUVOVF9BUlJBWV9BVEknOiAweDg3NjgsCi0gICdFTEVNRU5UX0FS
UkFZX1RZUEVfQVRJJzogMHg4NzY5LAotICAnRUxFTUVOVF9BUlJBWV9QT0lOVEVSX0FUSSc6IDB4
ODc2QSwKLSAgJ0JVTVBfUk9UX01BVFJJWF9BVEknOiAweDg3NzUsCi0gICdCVU1QX1JPVF9NQVRS
SVhfU0laRV9BVEknOiAweDg3NzYsCi0gICdCVU1QX05VTV9URVhfVU5JVFNfQVRJJzogMHg4Nzc3
LAotICAnQlVNUF9URVhfVU5JVFNfQVRJJzogMHg4Nzc4LAotICAnRFVEVl9BVEknOiAweDg3Nzks
Ci0gICdEVThEVjhfQVRJJzogMHg4NzdBLAotICAnQlVNUF9FTlZNQVBfQVRJJzogMHg4NzdCLAot
ICAnQlVNUF9UQVJHRVRfQVRJJzogMHg4NzdDLAotICAnUkVEX0JJVF9BVEknOiAweDAwMDAwMDAx
LAotICAnMlhfQklUX0FUSSc6IDB4MDAwMDAwMDEsCi0gICc0WF9CSVRfQVRJJzogMHgwMDAwMDAw
MiwKLSAgJ0dSRUVOX0JJVF9BVEknOiAweDAwMDAwMDAyLAotICAnQ09NUF9CSVRfQVRJJzogMHgw
MDAwMDAwMiwKLSAgJ0JMVUVfQklUX0FUSSc6IDB4MDAwMDAwMDQsCi0gICc4WF9CSVRfQVRJJzog
MHgwMDAwMDAwNCwKLSAgJ05FR0FURV9CSVRfQVRJJzogMHgwMDAwMDAwNCwKLSAgJ0JJQVNfQklU
X0FUSSc6IDB4MDAwMDAwMDgsCi0gICdIQUxGX0JJVF9BVEknOiAweDAwMDAwMDA4LAotICAnUVVB
UlRFUl9CSVRfQVRJJzogMHgwMDAwMDAxMCwKLSAgJ0VJR0hUSF9CSVRfQVRJJzogMHgwMDAwMDAy
MCwKLSAgJ1NBVFVSQVRFX0JJVF9BVEknOiAweDAwMDAwMDQwLAotICAnRlJBR01FTlRfU0hBREVS
X0FUSSc6IDB4ODkyMCwKLSAgJ1JFR18wX0FUSSc6IDB4ODkyMSwKLSAgJ1JFR18xX0FUSSc6IDB4
ODkyMiwKLSAgJ1JFR18yX0FUSSc6IDB4ODkyMywKLSAgJ1JFR18zX0FUSSc6IDB4ODkyNCwKLSAg
J1JFR180X0FUSSc6IDB4ODkyNSwKLSAgJ1JFR181X0FUSSc6IDB4ODkyNiwKLSAgJ0NPTl8wX0FU
SSc6IDB4ODk0MSwKLSAgJ0NPTl8xX0FUSSc6IDB4ODk0MiwKLSAgJ0NPTl8yX0FUSSc6IDB4ODk0
MywKLSAgJ0NPTl8zX0FUSSc6IDB4ODk0NCwKLSAgJ0NPTl80X0FUSSc6IDB4ODk0NSwKLSAgJ0NP
Tl81X0FUSSc6IDB4ODk0NiwKLSAgJ0NPTl82X0FUSSc6IDB4ODk0NywKLSAgJ0NPTl83X0FUSSc6
IDB4ODk0OCwKLSAgJ01PVl9BVEknOiAweDg5NjEsCi0gICdBRERfQVRJJzogMHg4OTYzLAotICAn
TVVMX0FUSSc6IDB4ODk2NCwKLSAgJ1NVQl9BVEknOiAweDg5NjUsCi0gICdET1QzX0FUSSc6IDB4
ODk2NiwKLSAgJ0RPVDRfQVRJJzogMHg4OTY3LAotICAnTUFEX0FUSSc6IDB4ODk2OCwKLSAgJ0xF
UlBfQVRJJzogMHg4OTY5LAotICAnQ05EX0FUSSc6IDB4ODk2QSwKLSAgJ0NORDBfQVRJJzogMHg4
OTZCLAotICAnRE9UMl9BRERfQVRJJzogMHg4OTZDLAotICAnU0VDT05EQVJZX0lOVEVSUE9MQVRP
Ul9BVEknOiAweDg5NkQsCi0gICdOVU1fRlJBR01FTlRfUkVHSVNURVJTX0FUSSc6IDB4ODk2RSwK
LSAgJ05VTV9GUkFHTUVOVF9DT05TVEFOVFNfQVRJJzogMHg4OTZGLAotICAnTlVNX1BBU1NFU19B
VEknOiAweDg5NzAsCi0gICdOVU1fSU5TVFJVQ1RJT05TX1BFUl9QQVNTX0FUSSc6IDB4ODk3MSwK
LSAgJ05VTV9JTlNUUlVDVElPTlNfVE9UQUxfQVRJJzogMHg4OTcyLAotICAnTlVNX0lOUFVUX0lO
VEVSUE9MQVRPUl9DT01QT05FTlRTX0FUSSc6IDB4ODk3MywKLSAgJ05VTV9MT09QQkFDS19DT01Q
T05FTlRTX0FUSSc6IDB4ODk3NCwKLSAgJ0NPTE9SX0FMUEhBX1BBSVJJTkdfQVRJJzogMHg4OTc1
LAotICAnU1dJWlpMRV9TVFJfQVRJJzogMHg4OTc2LAotICAnU1dJWlpMRV9TVFFfQVRJJzogMHg4
OTc3LAotICAnU1dJWlpMRV9TVFJfRFJfQVRJJzogMHg4OTc4LAotICAnU1dJWlpMRV9TVFFfRFFf
QVRJJzogMHg4OTc5LAotICAnU1dJWlpMRV9TVFJRX0FUSSc6IDB4ODk3QSwKLSAgJ1NXSVpaTEVf
U1RSUV9EUV9BVEknOiAweDg5N0IsCi0gICdQTl9UUklBTkdMRVNfQVRJJzogMHg4N0YwLAotICAn
TUFYX1BOX1RSSUFOR0xFU19URVNTRUxBVElPTl9MRVZFTF9BVEknOiAweDg3RjEsCi0gICdQTl9U
UklBTkdMRVNfUE9JTlRfTU9ERV9BVEknOiAweDg3RjIsCi0gICdQTl9UUklBTkdMRVNfTk9STUFM
X01PREVfQVRJJzogMHg4N0YzLAotICAnUE5fVFJJQU5HTEVTX1RFU1NFTEFUSU9OX0xFVkVMX0FU
SSc6IDB4ODdGNCwKLSAgJ1BOX1RSSUFOR0xFU19QT0lOVF9NT0RFX0xJTkVBUl9BVEknOiAweDg3
RjUsCi0gICdQTl9UUklBTkdMRVNfUE9JTlRfTU9ERV9DVUJJQ19BVEknOiAweDg3RjYsCi0gICdQ
Tl9UUklBTkdMRVNfTk9STUFMX01PREVfTElORUFSX0FUSSc6IDB4ODdGNywKLSAgJ1BOX1RSSUFO
R0xFU19OT1JNQUxfTU9ERV9RVUFEUkFUSUNfQVRJJzogMHg4N0Y4LAotICAnU1RFTkNJTF9CQUNL
X0ZVTkNfQVRJJzogMHg4ODAwLAotICAnU1RFTkNJTF9CQUNLX0ZBSUxfQVRJJzogMHg4ODAxLAot
ICAnU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTF9BVEknOiAweDg4MDIsCi0gICdTVEVOQ0lM
X0JBQ0tfUEFTU19ERVBUSF9QQVNTX0FUSSc6IDB4ODgwMywKLSAgJ1RFWFRfRlJBR01FTlRfU0hB
REVSX0FUSSc6IDB4ODIwMCwKLSAgJ0NPTVBSRVNTRURfTFVNSU5BTkNFX0FMUEhBXzNEQ19BVEkn
OiAweDg4MzcsCi0gICdNT0RVTEFURV9BRERfQVRJJzogMHg4NzQ0LAotICAnTU9EVUxBVEVfU0lH
TkVEX0FERF9BVEknOiAweDg3NDUsCi0gICdNT0RVTEFURV9TVUJUUkFDVF9BVEknOiAweDg3NDYs
Ci0gICdSR0JBX0ZMT0FUMzJfQVRJJzogMHg4ODE0LAotICAnUkdCX0ZMT0FUMzJfQVRJJzogMHg4
ODE1LAotICAnQUxQSEFfRkxPQVQzMl9BVEknOiAweDg4MTYsCi0gICdJTlRFTlNJVFlfRkxPQVQz
Ml9BVEknOiAweDg4MTcsCi0gICdMVU1JTkFOQ0VfRkxPQVQzMl9BVEknOiAweDg4MTgsCi0gICdM
VU1JTkFOQ0VfQUxQSEFfRkxPQVQzMl9BVEknOiAweDg4MTksCi0gICdSR0JBX0ZMT0FUMTZfQVRJ
JzogMHg4ODFBLAotICAnUkdCX0ZMT0FUMTZfQVRJJzogMHg4ODFCLAotICAnQUxQSEFfRkxPQVQx
Nl9BVEknOiAweDg4MUMsCi0gICdJTlRFTlNJVFlfRkxPQVQxNl9BVEknOiAweDg4MUQsCi0gICdM
VU1JTkFOQ0VfRkxPQVQxNl9BVEknOiAweDg4MUUsCi0gICdMVU1JTkFOQ0VfQUxQSEFfRkxPQVQx
Nl9BVEknOiAweDg4MUYsCi0gICdNSVJST1JfQ0xBTVBfQVRJJzogMHg4NzQyLAotICAnTUlSUk9S
X0NMQU1QX1RPX0VER0VfQVRJJzogMHg4NzQzLAotICAnU1RBVElDX0FUSSc6IDB4ODc2MCwKLSAg
J0RZTkFNSUNfQVRJJzogMHg4NzYxLAotICAnUFJFU0VSVkVfQVRJJzogMHg4NzYyLAotICAnRElT
Q0FSRF9BVEknOiAweDg3NjMsCi0gICdPQkpFQ1RfQlVGRkVSX1NJWkVfQVRJJzogMHg4NzY0LAot
ICAnT0JKRUNUX0JVRkZFUl9VU0FHRV9BVEknOiAweDg3NjUsCi0gICdBUlJBWV9PQkpFQ1RfQlVG
RkVSX0FUSSc6IDB4ODc2NiwKLSAgJ0FSUkFZX09CSkVDVF9PRkZTRVRfQVRJJzogMHg4NzY3LAot
ICAnTUFYX1ZFUlRFWF9TVFJFQU1TX0FUSSc6IDB4ODc2QiwKLSAgJ1ZFUlRFWF9TT1VSQ0VfQVRJ
JzogMHg4NzZDLAotICAnVkVSVEVYX1NUUkVBTTBfQVRJJzogMHg4NzZELAotICAnVkVSVEVYX1NU
UkVBTTFfQVRJJzogMHg4NzZFLAotICAnVkVSVEVYX1NUUkVBTTJfQVRJJzogMHg4NzZGLAotICAn
VkVSVEVYX1NUUkVBTTNfQVRJJzogMHg4NzcwLAotICAnVkVSVEVYX1NUUkVBTTRfQVRJJzogMHg4
NzcxLAotICAnVkVSVEVYX1NUUkVBTTVfQVRJJzogMHg4NzcyLAotICAnVkVSVEVYX1NUUkVBTTZf
QVRJJzogMHg4NzczLAotICAnVkVSVEVYX1NUUkVBTTdfQVRJJzogMHg4Nzc0LAotICAnNDIyX0VY
VCc6IDB4ODBDQywKLSAgJzQyMl9SRVZfRVhUJzogMHg4MENELAotICAnNDIyX0FWRVJBR0VfRVhU
JzogMHg4MENFLAotICAnNDIyX1JFVl9BVkVSQUdFX0VYVCc6IDB4ODBDRiwKLSAgJ0NHX1ZFUlRF
WF9TSEFERVJfRVhUJzogMHg4OTBFLAotICAnQ0dfRlJBR01FTlRfU0hBREVSX0VYVCc6IDB4ODkw
RiwKLSAgJ0FCR1JfRVhUJzogMHg4MDAwLAotICAnQkdSX0VYVCc6IDB4ODBFMCwKLSAgJ0JHUkFf
RVhUJzogMHg4MEUxLAotICAnTUFYX1ZFUlRFWF9CSU5EQUJMRV9VTklGT1JNU19FWFQnOiAweDhE
RTIsCi0gICdNQVhfRlJBR01FTlRfQklOREFCTEVfVU5JRk9STVNfRVhUJzogMHg4REUzLAotICAn
TUFYX0dFT01FVFJZX0JJTkRBQkxFX1VOSUZPUk1TX0VYVCc6IDB4OERFNCwKLSAgJ01BWF9CSU5E
QUJMRV9VTklGT1JNX1NJWkVfRVhUJzogMHg4REVELAotICAnVU5JRk9STV9CVUZGRVJfRVhUJzog
MHg4REVFLAotICAnVU5JRk9STV9CVUZGRVJfQklORElOR19FWFQnOiAweDhERUYsCi0gICdDT05T
VEFOVF9DT0xPUl9FWFQnOiAweDgwMDEsCi0gICdPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1JfRVhU
JzogMHg4MDAyLAotICAnQ09OU1RBTlRfQUxQSEFfRVhUJzogMHg4MDAzLAotICAnT05FX01JTlVT
X0NPTlNUQU5UX0FMUEhBX0VYVCc6IDB4ODAwNCwKLSAgJ0JMRU5EX0NPTE9SX0VYVCc6IDB4ODAw
NSwKLSAgJ0JMRU5EX0VRVUFUSU9OX1JHQl9FWFQnOiAweDgwMDksCi0gICdCTEVORF9FUVVBVElP
Tl9BTFBIQV9FWFQnOiAweDg4M0QsCi0gICdCTEVORF9EU1RfUkdCX0VYVCc6IDB4ODBDOCwKLSAg
J0JMRU5EX1NSQ19SR0JfRVhUJzogMHg4MEM5LAotICAnQkxFTkRfRFNUX0FMUEhBX0VYVCc6IDB4
ODBDQSwKLSAgJ0JMRU5EX1NSQ19BTFBIQV9FWFQnOiAweDgwQ0IsCi0gICdGVU5DX0FERF9FWFQn
OiAweDgwMDYsCi0gICdNSU5fRVhUJzogMHg4MDA3LAotICAnTUFYX0VYVCc6IDB4ODAwOCwKLSAg
J0JMRU5EX0VRVUFUSU9OX0VYVCc6IDB4ODAwOSwKLSAgJ0ZVTkNfU1VCVFJBQ1RfRVhUJzogMHg4
MDBBLAotICAnRlVOQ19SRVZFUlNFX1NVQlRSQUNUX0VYVCc6IDB4ODAwQiwKLSAgJ0NMSVBfVk9M
VU1FX0NMSVBQSU5HX0hJTlRfRVhUJzogMHg4MEYwLAotICAnQ01ZS19FWFQnOiAweDgwMEMsCi0g
ICdDTVlLQV9FWFQnOiAweDgwMEQsCi0gICdQQUNLX0NNWUtfSElOVF9FWFQnOiAweDgwMEUsCi0g
ICdVTlBBQ0tfQ01ZS19ISU5UX0VYVCc6IDB4ODAwRiwKLSAgJ0FSUkFZX0VMRU1FTlRfTE9DS19G
SVJTVF9FWFQnOiAweDgxQTgsCi0gICdBUlJBWV9FTEVNRU5UX0xPQ0tfQ09VTlRfRVhUJzogMHg4
MUE5LAotICAnQ09OVk9MVVRJT05fMURfRVhUJzogMHg4MDEwLAotICAnQ09OVk9MVVRJT05fMkRf
RVhUJzogMHg4MDExLAotICAnU0VQQVJBQkxFXzJEX0VYVCc6IDB4ODAxMiwKLSAgJ0NPTlZPTFVU
SU9OX0JPUkRFUl9NT0RFX0VYVCc6IDB4ODAxMywKLSAgJ0NPTlZPTFVUSU9OX0ZJTFRFUl9TQ0FM
RV9FWFQnOiAweDgwMTQsCi0gICdDT05WT0xVVElPTl9GSUxURVJfQklBU19FWFQnOiAweDgwMTUs
Ci0gICdSRURVQ0VfRVhUJzogMHg4MDE2LAotICAnQ09OVk9MVVRJT05fRk9STUFUX0VYVCc6IDB4
ODAxNywKLSAgJ0NPTlZPTFVUSU9OX1dJRFRIX0VYVCc6IDB4ODAxOCwKLSAgJ0NPTlZPTFVUSU9O
X0hFSUdIVF9FWFQnOiAweDgwMTksCi0gICdNQVhfQ09OVk9MVVRJT05fV0lEVEhfRVhUJzogMHg4
MDFBLAotICAnTUFYX0NPTlZPTFVUSU9OX0hFSUdIVF9FWFQnOiAweDgwMUIsCi0gICdQT1NUX0NP
TlZPTFVUSU9OX1JFRF9TQ0FMRV9FWFQnOiAweDgwMUMsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0dS
RUVOX1NDQUxFX0VYVCc6IDB4ODAxRCwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQkxVRV9TQ0FMRV9F
WFQnOiAweDgwMUUsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0FMUEhBX1NDQUxFX0VYVCc6IDB4ODAx
RiwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fUkVEX0JJQVNfRVhUJzogMHg4MDIwLAotICAnUE9TVF9D
T05WT0xVVElPTl9HUkVFTl9CSUFTX0VYVCc6IDB4ODAyMSwKLSAgJ1BPU1RfQ09OVk9MVVRJT05f
QkxVRV9CSUFTX0VYVCc6IDB4ODAyMiwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQUxQSEFfQklBU19F
WFQnOiAweDgwMjMsCi0gICdUQU5HRU5UX0FSUkFZX0VYVCc6IDB4ODQzOSwKLSAgJ0JJTk9STUFM
X0FSUkFZX0VYVCc6IDB4ODQzQSwKLSAgJ0NVUlJFTlRfVEFOR0VOVF9FWFQnOiAweDg0M0IsCi0g
ICdDVVJSRU5UX0JJTk9STUFMX0VYVCc6IDB4ODQzQywKLSAgJ1RBTkdFTlRfQVJSQVlfVFlQRV9F
WFQnOiAweDg0M0UsCi0gICdUQU5HRU5UX0FSUkFZX1NUUklERV9FWFQnOiAweDg0M0YsCi0gICdC
SU5PUk1BTF9BUlJBWV9UWVBFX0VYVCc6IDB4ODQ0MCwKLSAgJ0JJTk9STUFMX0FSUkFZX1NUUklE
RV9FWFQnOiAweDg0NDEsCi0gICdUQU5HRU5UX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4NDQyLAot
ICAnQklOT1JNQUxfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDg0NDMsCi0gICdNQVAxX1RBTkdFTlRf
RVhUJzogMHg4NDQ0LAotICAnTUFQMl9UQU5HRU5UX0VYVCc6IDB4ODQ0NSwKLSAgJ01BUDFfQklO
T1JNQUxfRVhUJzogMHg4NDQ2LAotICAnTUFQMl9CSU5PUk1BTF9FWFQnOiAweDg0NDcsCi0gICdE
RVBUSF9CT1VORFNfVEVTVF9FWFQnOiAweDg4OTAsCi0gICdERVBUSF9CT1VORFNfRVhUJzogMHg4
ODkxLAotICAnUFJPR1JBTV9NQVRSSVhfRVhUJzogMHg4RTJELAotICAnVFJBTlNQT1NFX1BST0dS
QU1fTUFUUklYX0VYVCc6IDB4OEUyRSwKLSAgJ1BST0dSQU1fTUFUUklYX1NUQUNLX0RFUFRIX0VY
VCc6IDB4OEUyRiwKLSAgJ01BWF9FTEVNRU5UU19WRVJUSUNFUyc6IDB4ODBFOCwKLSAgJ01BWF9F
TEVNRU5UU19JTkRJQ0VTJzogMHg4MEU5LAotICAnRk9HX0NPT1JESU5BVEVfU09VUkNFX0VYVCc6
IDB4ODQ1MCwKLSAgJ0ZPR19DT09SRElOQVRFX0VYVCc6IDB4ODQ1MSwKLSAgJ0ZSQUdNRU5UX0RF
UFRIX0VYVCc6IDB4ODQ1MiwKLSAgJ0NVUlJFTlRfRk9HX0NPT1JESU5BVEVfRVhUJzogMHg4NDUz
LAotICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfVFlQRV9FWFQnOiAweDg0NTQsCi0gICdGT0dfQ09P
UkRJTkFURV9BUlJBWV9TVFJJREVfRVhUJzogMHg4NDU1LAotICAnRk9HX0NPT1JESU5BVEVfQVJS
QVlfUE9JTlRFUl9FWFQnOiAweDg0NTYsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWV9FWFQnOiAw
eDg0NTcsCi0gICdGUkFHTUVOVF9MSUdIVElOR19FWFQnOiAweDg0MDAsCi0gICdGUkFHTUVOVF9D
T0xPUl9NQVRFUklBTF9FWFQnOiAweDg0MDEsCi0gICdGUkFHTUVOVF9DT0xPUl9NQVRFUklBTF9G
QUNFX0VYVCc6IDB4ODQwMiwKLSAgJ0ZSQUdNRU5UX0NPTE9SX01BVEVSSUFMX1BBUkFNRVRFUl9F
WFQnOiAweDg0MDMsCi0gICdNQVhfRlJBR01FTlRfTElHSFRTX0VYVCc6IDB4ODQwNCwKLSAgJ01B
WF9BQ1RJVkVfTElHSFRTX0VYVCc6IDB4ODQwNSwKLSAgJ0NVUlJFTlRfUkFTVEVSX05PUk1BTF9F
WFQnOiAweDg0MDYsCi0gICdMSUdIVF9FTlZfTU9ERV9FWFQnOiAweDg0MDcsCi0gICdGUkFHTUVO
VF9MSUdIVF9NT0RFTF9MT0NBTF9WSUVXRVJfRVhUJzogMHg4NDA4LAotICAnRlJBR01FTlRfTElH
SFRfTU9ERUxfVFdPX1NJREVfRVhUJzogMHg4NDA5LAotICAnRlJBR01FTlRfTElHSFRfTU9ERUxf
QU1CSUVOVF9FWFQnOiAweDg0MEEsCi0gICdGUkFHTUVOVF9MSUdIVF9NT0RFTF9OT1JNQUxfSU5U
RVJQT0xBVElPTl9FWFQnOiAweDg0MEIsCi0gICdGUkFHTUVOVF9MSUdIVDBfRVhUJzogMHg4NDBD
LAotICAnRlJBR01FTlRfTElHSFQ3X0VYVCc6IDB4ODQxMywKLSAgJ0RSQVdfRlJBTUVCVUZGRVJf
QklORElOR19FWFQnOiAweDhDQTYsCi0gICdSRUFEX0ZSQU1FQlVGRkVSX0VYVCc6IDB4OENBOCwK
LSAgJ0RSQVdfRlJBTUVCVUZGRVJfRVhUJzogMHg4Q0E5LAotICAnUkVBRF9GUkFNRUJVRkZFUl9C
SU5ESU5HX0VYVCc6IDB4OENBQSwKLSAgJ1JFTkRFUkJVRkZFUl9TQU1QTEVTX0VYVCc6IDB4OENB
QiwKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEVfRVhUJzogMHg4RDU2LAot
ICAnTUFYX1NBTVBMRVNfRVhUJzogMHg4RDU3LAotICAnSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT05fRVhUJzogMHgwNTA2LAotICAnTUFYX1JFTkRFUkJVRkZFUl9TSVpFX0VYVCc6IDB4ODRF
OCwKLSAgJ0ZSQU1FQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4Q0E2LAotICAnUkVOREVSQlVGRkVS
X0JJTkRJTkdfRVhUJzogMHg4Q0E3LAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRV9FWFQnOiAweDhDRDAsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1F
X0VYVCc6IDB4OENEMSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTF9F
WFQnOiAweDhDRDIsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBf
RkFDRV9FWFQnOiAweDhDRDMsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfM0Rf
Wk9GRlNFVF9FWFQnOiAweDhDRDQsCi0gICdGUkFNRUJVRkZFUl9DT01QTEVURV9FWFQnOiAweDhD
RDUsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlRfRVhUJzogMHg4Q0Q2LAot
ICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlRfRVhUJzogMHg4Q0Q3
LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TX0VYVCc6IDB4OENEOSwKLSAg
J0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRk9STUFUU19FWFQnOiAweDhDREEsCi0gICdGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0RSQVdfQlVGRkVSX0VYVCc6IDB4OENEQiwKLSAgJ0ZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfUkVBRF9CVUZGRVJfRVhUJzogMHg4Q0RDLAotICAnRlJBTUVCVUZGRVJfVU5T
VVBQT1JURURfRVhUJzogMHg4Q0RELAotICAnTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCc6IDB4
OENERiwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQwX0VYVCc6IDB4OENFMCwKLSAgJ0NPTE9SX0FUVEFD
SE1FTlQxX0VYVCc6IDB4OENFMSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQyX0VYVCc6IDB4OENFMiwK
LSAgJ0NPTE9SX0FUVEFDSE1FTlQzX0VYVCc6IDB4OENFMywKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ0
X0VYVCc6IDB4OENFNCwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ1X0VYVCc6IDB4OENFNSwKLSAgJ0NP
TE9SX0FUVEFDSE1FTlQ2X0VYVCc6IDB4OENFNiwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ3X0VYVCc6
IDB4OENFNywKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ4X0VYVCc6IDB4OENFOCwKLSAgJ0NPTE9SX0FU
VEFDSE1FTlQ5X0VYVCc6IDB4OENFOSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxMF9FWFQnOiAweDhD
RUEsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUJzogMHg4Q0VCLAotICAnQ09MT1JfQVRUQUNI
TUVOVDEyX0VYVCc6IDB4OENFQywKLSAgJ0NPTE9SX0FUVEFDSE1FTlQxM19FWFQnOiAweDhDRUQs
Ci0gICdDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUJzogMHg4Q0VFLAotICAnQ09MT1JfQVRUQUNITUVO
VDE1X0VYVCc6IDB4OENFRiwKLSAgJ0RFUFRIX0FUVEFDSE1FTlRfRVhUJzogMHg4RDAwLAotICAn
U1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCc6IDB4OEQyMCwKLSAgJ0ZSQU1FQlVGRkVSX0VYVCc6IDB4
OEQ0MCwKLSAgJ1JFTkRFUkJVRkZFUl9FWFQnOiAweDhENDEsCi0gICdSRU5ERVJCVUZGRVJfV0lE
VEhfRVhUJzogMHg4RDQyLAotICAnUkVOREVSQlVGRkVSX0hFSUdIVF9FWFQnOiAweDhENDMsCi0g
ICdSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUX0VYVCc6IDB4OEQ0NCwKLSAgJ1NURU5DSUxf
SU5ERVgxX0VYVCc6IDB4OEQ0NiwKLSAgJ1NURU5DSUxfSU5ERVg0X0VYVCc6IDB4OEQ0NywKLSAg
J1NURU5DSUxfSU5ERVg4X0VYVCc6IDB4OEQ0OCwKLSAgJ1NURU5DSUxfSU5ERVgxNl9FWFQnOiAw
eDhENDksCi0gICdSRU5ERVJCVUZGRVJfUkVEX1NJWkVfRVhUJzogMHg4RDUwLAotICAnUkVOREVS
QlVGRkVSX0dSRUVOX1NJWkVfRVhUJzogMHg4RDUxLAotICAnUkVOREVSQlVGRkVSX0JMVUVfU0la
RV9FWFQnOiAweDhENTIsCi0gICdSRU5ERVJCVUZGRVJfQUxQSEFfU0laRV9FWFQnOiAweDhENTMs
Ci0gICdSRU5ERVJCVUZGRVJfREVQVEhfU0laRV9FWFQnOiAweDhENTQsCi0gICdSRU5ERVJCVUZG
RVJfU1RFTkNJTF9TSVpFX0VYVCc6IDB4OEQ1NSwKLSAgJ0ZSQU1FQlVGRkVSX1NSR0JfRVhUJzog
MHg4REI5LAotICAnRlJBTUVCVUZGRVJfU1JHQl9DQVBBQkxFX0VYVCc6IDB4OERCQSwKLSAgJ0xJ
TkVTX0FESkFDRU5DWV9FWFQnOiAweEEsCi0gICdMSU5FX1NUUklQX0FESkFDRU5DWV9FWFQnOiAw
eEIsCi0gICdUUklBTkdMRVNfQURKQUNFTkNZX0VYVCc6IDB4QywKLSAgJ1RSSUFOR0xFX1NUUklQ
X0FESkFDRU5DWV9FWFQnOiAweEQsCi0gICdQUk9HUkFNX1BPSU5UX1NJWkVfRVhUJzogMHg4NjQy
LAotICAnTUFYX1ZBUllJTkdfQ09NUE9ORU5UU19FWFQnOiAweDhCNEIsCi0gICdNQVhfR0VPTUVU
UllfVEVYVFVSRV9JTUFHRV9VTklUU19FWFQnOiAweDhDMjksCi0gICdGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX1RFWFRVUkVfTEFZRVJfRVhUJzogMHg4Q0Q0LAotICAnRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9MQVlFUkVEX0VYVCc6IDB4OERBNywKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTEFZ
RVJfVEFSR0VUU19FWFQnOiAweDhEQTgsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0xBWUVS
X0NPVU5UX0VYVCc6IDB4OERBOSwKLSAgJ0dFT01FVFJZX1NIQURFUl9FWFQnOiAweDhERDksCi0g
ICdHRU9NRVRSWV9WRVJUSUNFU19PVVRfRVhUJzogMHg4RERBLAotICAnR0VPTUVUUllfSU5QVVRf
VFlQRV9FWFQnOiAweDhEREIsCi0gICdHRU9NRVRSWV9PVVRQVVRfVFlQRV9FWFQnOiAweDhEREMs
Ci0gICdNQVhfR0VPTUVUUllfVkFSWUlOR19DT01QT05FTlRTX0VYVCc6IDB4OERERCwKLSAgJ01B
WF9WRVJURVhfVkFSWUlOR19DT01QT05FTlRTX0VYVCc6IDB4OERERSwKLSAgJ01BWF9HRU9NRVRS
WV9VTklGT1JNX0NPTVBPTkVOVFNfRVhUJzogMHg4RERGLAotICAnTUFYX0dFT01FVFJZX09VVFBV
VF9WRVJUSUNFU19FWFQnOiAweDhERTAsCi0gICdNQVhfR0VPTUVUUllfVE9UQUxfT1VUUFVUX0NP
TVBPTkVOVFNfRVhUJzogMHg4REUxLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSX0VY
VCc6IDB4ODhGRCwKLSAgJ1NBTVBMRVJfMURfQVJSQVlfRVhUJzogMHg4REMwLAotICAnU0FNUExF
Ul8yRF9BUlJBWV9FWFQnOiAweDhEQzEsCi0gICdTQU1QTEVSX0JVRkZFUl9FWFQnOiAweDhEQzIs
Ci0gICdTQU1QTEVSXzFEX0FSUkFZX1NIQURPV19FWFQnOiAweDhEQzMsCi0gICdTQU1QTEVSXzJE
X0FSUkFZX1NIQURPV19FWFQnOiAweDhEQzQsCi0gICdTQU1QTEVSX0NVQkVfU0hBRE9XX0VYVCc6
IDB4OERDNSwKLSAgJ1VOU0lHTkVEX0lOVF9WRUMyX0VYVCc6IDB4OERDNiwKLSAgJ1VOU0lHTkVE
X0lOVF9WRUMzX0VYVCc6IDB4OERDNywKLSAgJ1VOU0lHTkVEX0lOVF9WRUM0X0VYVCc6IDB4OERD
OCwKLSAgJ0lOVF9TQU1QTEVSXzFEX0VYVCc6IDB4OERDOSwKLSAgJ0lOVF9TQU1QTEVSXzJEX0VY
VCc6IDB4OERDQSwKLSAgJ0lOVF9TQU1QTEVSXzNEX0VYVCc6IDB4OERDQiwKLSAgJ0lOVF9TQU1Q
TEVSX0NVQkVfRVhUJzogMHg4RENDLAotICAnSU5UX1NBTVBMRVJfMkRfUkVDVF9FWFQnOiAweDhE
Q0QsCi0gICdJTlRfU0FNUExFUl8xRF9BUlJBWV9FWFQnOiAweDhEQ0UsCi0gICdJTlRfU0FNUExF
Ul8yRF9BUlJBWV9FWFQnOiAweDhEQ0YsCi0gICdJTlRfU0FNUExFUl9CVUZGRVJfRVhUJzogMHg4
REQwLAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMURfRVhUJzogMHg4REQxLAotICAnVU5TSUdO
RURfSU5UX1NBTVBMRVJfMkRfRVhUJzogMHg4REQyLAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJf
M0RfRVhUJzogMHg4REQzLAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfQ1VCRV9FWFQnOiAweDhE
RDQsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8yRF9SRUNUX0VYVCc6IDB4OERENSwKLSAgJ1VO
U0lHTkVEX0lOVF9TQU1QTEVSXzFEX0FSUkFZX0VYVCc6IDB4OERENiwKLSAgJ1VOU0lHTkVEX0lO
VF9TQU1QTEVSXzJEX0FSUkFZX0VYVCc6IDB4OERENywKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVS
X0JVRkZFUl9FWFQnOiAweDhERDgsCi0gICdISVNUT0dSQU1fRVhUJzogMHg4MDI0LAotICAnUFJP
WFlfSElTVE9HUkFNX0VYVCc6IDB4ODAyNSwKLSAgJ0hJU1RPR1JBTV9XSURUSF9FWFQnOiAweDgw
MjYsCi0gICdISVNUT0dSQU1fRk9STUFUX0VYVCc6IDB4ODAyNywKLSAgJ0hJU1RPR1JBTV9SRURf
U0laRV9FWFQnOiAweDgwMjgsCi0gICdISVNUT0dSQU1fR1JFRU5fU0laRV9FWFQnOiAweDgwMjks
Ci0gICdISVNUT0dSQU1fQkxVRV9TSVpFX0VYVCc6IDB4ODAyQSwKLSAgJ0hJU1RPR1JBTV9BTFBI
QV9TSVpFX0VYVCc6IDB4ODAyQiwKLSAgJ0hJU1RPR1JBTV9MVU1JTkFOQ0VfU0laRV9FWFQnOiAw
eDgwMkMsCi0gICdISVNUT0dSQU1fU0lOS19FWFQnOiAweDgwMkQsCi0gICdNSU5NQVhfRVhUJzog
MHg4MDJFLAotICAnTUlOTUFYX0ZPUk1BVF9FWFQnOiAweDgwMkYsCi0gICdNSU5NQVhfU0lOS19F
WFQnOiAweDgwMzAsCi0gICdGUkFHTUVOVF9NQVRFUklBTF9FWFQnOiAweDgzNDksCi0gICdGUkFH
TUVOVF9OT1JNQUxfRVhUJzogMHg4MzRBLAotICAnRlJBR01FTlRfQ09MT1JfRVhUJzogMHg4MzRD
LAotICAnQVRURU5VQVRJT05fRVhUJzogMHg4MzRELAotICAnU0hBRE9XX0FUVEVOVUFUSU9OX0VY
VCc6IDB4ODM0RSwKLSAgJ1RFWFRVUkVfQVBQTElDQVRJT05fTU9ERV9FWFQnOiAweDgzNEYsCi0g
ICdURVhUVVJFX0xJR0hUX0VYVCc6IDB4ODM1MCwKLSAgJ1RFWFRVUkVfTUFURVJJQUxfRkFDRV9F
WFQnOiAweDgzNTEsCi0gICdURVhUVVJFX01BVEVSSUFMX1BBUkFNRVRFUl9FWFQnOiAweDgzNTIs
Ci0gICdGUkFHTUVOVF9ERVBUSF9FWFQnOiAweDg0NTIsCi0gICdNVUxUSVNBTVBMRV9FWFQnOiAw
eDgwOUQsCi0gICdTQU1QTEVfQUxQSEFfVE9fTUFTS19FWFQnOiAweDgwOUUsCi0gICdTQU1QTEVf
QUxQSEFfVE9fT05FX0VYVCc6IDB4ODA5RiwKLSAgJ1NBTVBMRV9NQVNLX0VYVCc6IDB4ODBBMCwK
LSAgJzFQQVNTX0VYVCc6IDB4ODBBMSwKLSAgJzJQQVNTXzBfRVhUJzogMHg4MEEyLAotICAnMlBB
U1NfMV9FWFQnOiAweDgwQTMsCi0gICc0UEFTU18wX0VYVCc6IDB4ODBBNCwKLSAgJzRQQVNTXzFf
RVhUJzogMHg4MEE1LAotICAnNFBBU1NfMl9FWFQnOiAweDgwQTYsCi0gICc0UEFTU18zX0VYVCc6
IDB4ODBBNywKLSAgJ1NBTVBMRV9CVUZGRVJTX0VYVCc6IDB4ODBBOCwKLSAgJ1NBTVBMRVNfRVhU
JzogMHg4MEE5LAotICAnU0FNUExFX01BU0tfVkFMVUVfRVhUJzogMHg4MEFBLAotICAnU0FNUExF
X01BU0tfSU5WRVJUX0VYVCc6IDB4ODBBQiwKLSAgJ1NBTVBMRV9QQVRURVJOX0VYVCc6IDB4ODBB
QywKLSAgJ01VTFRJU0FNUExFX0JJVF9FWFQnOiAweDIwMDAwMDAwLAotICAnREVQVEhfU1RFTkNJ
TF9FWFQnOiAweDg0RjksCi0gICdVTlNJR05FRF9JTlRfMjRfOF9FWFQnOiAweDg0RkEsCi0gICdE
RVBUSDI0X1NURU5DSUw4X0VYVCc6IDB4ODhGMCwKLSAgJ1RFWFRVUkVfU1RFTkNJTF9TSVpFX0VY
VCc6IDB4ODhGMSwKLSAgJ1IxMUZfRzExRl9CMTBGX0VYVCc6IDB4OEMzQSwKLSAgJ1VOU0lHTkVE
X0lOVF8xMEZfMTFGXzExRl9SRVZfRVhUJzogMHg4QzNCLAotICAnUkdCQV9TSUdORURfQ09NUE9O
RU5UU19FWFQnOiAweDhDM0MsCi0gICdVTlNJR05FRF9CWVRFXzNfM18yX0VYVCc6IDB4ODAzMiwK
LSAgJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzRfRVhUJzogMHg4MDMzLAotICAnVU5TSUdORURfU0hP
UlRfNV81XzVfMV9FWFQnOiAweDgwMzQsCi0gICdVTlNJR05FRF9JTlRfOF84XzhfOF9FWFQnOiAw
eDgwMzUsCi0gICdVTlNJR05FRF9JTlRfMTBfMTBfMTBfMl9FWFQnOiAweDgwMzYsCi0gICdURVhU
VVJFXzFEJzogMHgwREUwLAotICAnVEVYVFVSRV8yRCc6IDB4MERFMSwKLSAgJ1BST1hZX1RFWFRV
UkVfMUQnOiAweDgwNjMsCi0gICdQUk9YWV9URVhUVVJFXzJEJzogMHg4MDY0LAotICAnVEVYVFVS
RV8zRF9FWFQnOiAweDgwNkYsCi0gICdQUk9YWV9URVhUVVJFXzNEX0VYVCc6IDB4ODA3MCwKLSAg
J0NPTE9SX1RBQkxFX0ZPUk1BVF9FWFQnOiAweDgwRDgsCi0gICdDT0xPUl9UQUJMRV9XSURUSF9F
WFQnOiAweDgwRDksCi0gICdDT0xPUl9UQUJMRV9SRURfU0laRV9FWFQnOiAweDgwREEsCi0gICdD
T0xPUl9UQUJMRV9HUkVFTl9TSVpFX0VYVCc6IDB4ODBEQiwKLSAgJ0NPTE9SX1RBQkxFX0JMVUVf
U0laRV9FWFQnOiAweDgwREMsCi0gICdDT0xPUl9UQUJMRV9BTFBIQV9TSVpFX0VYVCc6IDB4ODBE
RCwKLSAgJ0NPTE9SX1RBQkxFX0xVTUlOQU5DRV9TSVpFX0VYVCc6IDB4ODBERSwKLSAgJ0NPTE9S
X1RBQkxFX0lOVEVOU0lUWV9TSVpFX0VYVCc6IDB4ODBERiwKLSAgJ0NPTE9SX0lOREVYMV9FWFQn
OiAweDgwRTIsCi0gICdDT0xPUl9JTkRFWDJfRVhUJzogMHg4MEUzLAotICAnQ09MT1JfSU5ERVg0
X0VYVCc6IDB4ODBFNCwKLSAgJ0NPTE9SX0lOREVYOF9FWFQnOiAweDgwRTUsCi0gICdDT0xPUl9J
TkRFWDEyX0VYVCc6IDB4ODBFNiwKLSAgJ0NPTE9SX0lOREVYMTZfRVhUJzogMHg4MEU3LAotICAn
VEVYVFVSRV9JTkRFWF9TSVpFX0VYVCc6IDB4ODBFRCwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfQVJC
JzogMHg4NTEzLAotICAnUFJPWFlfVEVYVFVSRV9DVUJFX01BUF9BUkInOiAweDg1MUIsCi0gICdQ
SVhFTF9QQUNLX0JVRkZFUl9FWFQnOiAweDg4RUIsCi0gICdQSVhFTF9VTlBBQ0tfQlVGRkVSX0VY
VCc6IDB4ODhFQywKLSAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4OEVELAot
ICAnUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HX0VYVCc6IDB4ODhFRiwKLSAgJ1BJWEVMX1RS
QU5TRk9STV8yRF9FWFQnOiAweDgzMzAsCi0gICdQSVhFTF9NQUdfRklMVEVSX0VYVCc6IDB4ODMz
MSwKLSAgJ1BJWEVMX01JTl9GSUxURVJfRVhUJzogMHg4MzMyLAotICAnUElYRUxfQ1VCSUNfV0VJ
R0hUX0VYVCc6IDB4ODMzMywKLSAgJ0NVQklDX0VYVCc6IDB4ODMzNCwKLSAgJ0FWRVJBR0VfRVhU
JzogMHg4MzM1LAotICAnUElYRUxfVFJBTlNGT1JNXzJEX1NUQUNLX0RFUFRIX0VYVCc6IDB4ODMz
NiwKLSAgJ01BWF9QSVhFTF9UUkFOU0ZPUk1fMkRfU1RBQ0tfREVQVEhfRVhUJzogMHg4MzM3LAot
ICAnUElYRUxfVFJBTlNGT1JNXzJEX01BVFJJWF9FWFQnOiAweDgzMzgsCi0gICdQT0lOVF9TSVpF
X01JTl9FWFQnOiAweDgxMjYsCi0gICdQT0lOVF9TSVpFX01BWF9FWFQnOiAweDgxMjcsCi0gICdQ
T0lOVF9GQURFX1RIUkVTSE9MRF9TSVpFX0VYVCc6IDB4ODEyOCwKLSAgJ0RJU1RBTkNFX0FUVEVO
VUFUSU9OX0VYVCc6IDB4ODEyOSwKLSAgJ1BPTFlHT05fT0ZGU0VUX0VYVCc6IDB4ODAzNywKLSAg
J1BPTFlHT05fT0ZGU0VUX0ZBQ1RPUl9FWFQnOiAweDgwMzgsCi0gICdQT0xZR09OX09GRlNFVF9C
SUFTX0VYVCc6IDB4ODAzOSwKLSAgJ1JFU0NBTEVfTk9STUFMX0VYVCc6IDB4ODAzQSwKLSAgJ0NP
TE9SX1NVTV9FWFQnOiAweDg0NTgsCi0gICdDVVJSRU5UX1NFQ09OREFSWV9DT0xPUl9FWFQnOiAw
eDg0NTksCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfU0laRV9FWFQnOiAweDg0NUEsCi0gICdT
RUNPTkRBUllfQ09MT1JfQVJSQVlfVFlQRV9FWFQnOiAweDg0NUIsCi0gICdTRUNPTkRBUllfQ09M
T1JfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODQ1QywKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9Q
T0lOVEVSX0VYVCc6IDB4ODQ1RCwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9FWFQnOiAweDg0
NUUsCi0gICdMSUdIVF9NT0RFTF9DT0xPUl9DT05UUk9MX0VYVCc6IDB4ODFGOCwKLSAgJ1NJTkdM
RV9DT0xPUl9FWFQnOiAweDgxRjksCi0gICdTRVBBUkFURV9TUEVDVUxBUl9DT0xPUl9FWFQnOiAw
eDgxRkEsCi0gICdTSEFSRURfVEVYVFVSRV9QQUxFVFRFX0VYVCc6IDB4ODFGQiwKLSAgJ1NURU5D
SUxfVEFHX0JJVFNfRVhUJzogMHg4OEYyLAotICAnU1RFTkNJTF9DTEVBUl9UQUdfVkFMVUVfRVhU
JzogMHg4OEYzLAotICAnU1RFTkNJTF9URVNUX1RXT19TSURFX0VYVCc6IDB4ODkxMCwKLSAgJ0FD
VElWRV9TVEVOQ0lMX0ZBQ0VfRVhUJzogMHg4OTExLAotICAnSU5DUl9XUkFQX0VYVCc6IDB4ODUw
NywKLSAgJ0RFQ1JfV1JBUF9FWFQnOiAweDg1MDgsCi0gICdBTFBIQTRfRVhUJzogMHg4MDNCLAot
ICAnQUxQSEE4X0VYVCc6IDB4ODAzQywKLSAgJ0FMUEhBMTJfRVhUJzogMHg4MDNELAotICAnQUxQ
SEExNl9FWFQnOiAweDgwM0UsCi0gICdMVU1JTkFOQ0U0X0VYVCc6IDB4ODAzRiwKLSAgJ0xVTUlO
QU5DRThfRVhUJzogMHg4MDQwLAotICAnTFVNSU5BTkNFMTJfRVhUJzogMHg4MDQxLAotICAnTFVN
SU5BTkNFMTZfRVhUJzogMHg4MDQyLAotICAnTFVNSU5BTkNFNF9BTFBIQTRfRVhUJzogMHg4MDQz
LAotICAnTFVNSU5BTkNFNl9BTFBIQTJfRVhUJzogMHg4MDQ0LAotICAnTFVNSU5BTkNFOF9BTFBI
QThfRVhUJzogMHg4MDQ1LAotICAnTFVNSU5BTkNFMTJfQUxQSEE0X0VYVCc6IDB4ODA0NiwKLSAg
J0xVTUlOQU5DRTEyX0FMUEhBMTJfRVhUJzogMHg4MDQ3LAotICAnTFVNSU5BTkNFMTZfQUxQSEEx
Nl9FWFQnOiAweDgwNDgsCi0gICdJTlRFTlNJVFlfRVhUJzogMHg4MDQ5LAotICAnSU5URU5TSVRZ
NF9FWFQnOiAweDgwNEEsCi0gICdJTlRFTlNJVFk4X0VYVCc6IDB4ODA0QiwKLSAgJ0lOVEVOU0lU
WTEyX0VYVCc6IDB4ODA0QywKLSAgJ0lOVEVOU0lUWTE2X0VYVCc6IDB4ODA0RCwKLSAgJ1JHQjJf
RVhUJzogMHg4MDRFLAotICAnUkdCNF9FWFQnOiAweDgwNEYsCi0gICdSR0I1X0VYVCc6IDB4ODA1
MCwKLSAgJ1JHQjhfRVhUJzogMHg4MDUxLAotICAnUkdCMTBfRVhUJzogMHg4MDUyLAotICAnUkdC
MTJfRVhUJzogMHg4MDUzLAotICAnUkdCMTZfRVhUJzogMHg4MDU0LAotICAnUkdCQTJfRVhUJzog
MHg4MDU1LAotICAnUkdCQTRfRVhUJzogMHg4MDU2LAotICAnUkdCNV9BMV9FWFQnOiAweDgwNTcs
Ci0gICdSR0JBOF9FWFQnOiAweDgwNTgsCi0gICdSR0IxMF9BMl9FWFQnOiAweDgwNTksCi0gICdS
R0JBMTJfRVhUJzogMHg4MDVBLAotICAnUkdCQTE2X0VYVCc6IDB4ODA1QiwKLSAgJ1RFWFRVUkVf
UkVEX1NJWkVfRVhUJzogMHg4MDVDLAotICAnVEVYVFVSRV9HUkVFTl9TSVpFX0VYVCc6IDB4ODA1
RCwKLSAgJ1RFWFRVUkVfQkxVRV9TSVpFX0VYVCc6IDB4ODA1RSwKLSAgJ1RFWFRVUkVfQUxQSEFf
U0laRV9FWFQnOiAweDgwNUYsCi0gICdURVhUVVJFX0xVTUlOQU5DRV9TSVpFX0VYVCc6IDB4ODA2
MCwKLSAgJ1RFWFRVUkVfSU5URU5TSVRZX1NJWkVfRVhUJzogMHg4MDYxLAotICAnUkVQTEFDRV9F
WFQnOiAweDgwNjIsCi0gICdQUk9YWV9URVhUVVJFXzFEX0VYVCc6IDB4ODA2MywKLSAgJ1BST1hZ
X1RFWFRVUkVfMkRfRVhUJzogMHg4MDY0LAotICAnUEFDS19TS0lQX0lNQUdFU19FWFQnOiAweDgw
NkIsCi0gICdQQUNLX0lNQUdFX0hFSUdIVF9FWFQnOiAweDgwNkMsCi0gICdVTlBBQ0tfU0tJUF9J
TUFHRVNfRVhUJzogMHg4MDZELAotICAnVU5QQUNLX0lNQUdFX0hFSUdIVF9FWFQnOiAweDgwNkUs
Ci0gICdURVhUVVJFXzNEX0VYVCc6IDB4ODA2RiwKLSAgJ1BST1hZX1RFWFRVUkVfM0RfRVhUJzog
MHg4MDcwLAotICAnVEVYVFVSRV9ERVBUSF9FWFQnOiAweDgwNzEsCi0gICdURVhUVVJFX1dSQVBf
Ul9FWFQnOiAweDgwNzIsCi0gICdNQVhfM0RfVEVYVFVSRV9TSVpFX0VYVCc6IDB4ODA3MywKLSAg
J0NPTVBBUkVfUkVGX0RFUFRIX1RPX1RFWFRVUkVfRVhUJzogMHg4ODRFLAotICAnTUFYX0FSUkFZ
X1RFWFRVUkVfTEFZRVJTX0VYVCc6IDB4ODhGRiwKLSAgJ1RFWFRVUkVfMURfQVJSQVlfRVhUJzog
MHg4QzE4LAotICAnUFJPWFlfVEVYVFVSRV8xRF9BUlJBWV9FWFQnOiAweDhDMTksCi0gICdURVhU
VVJFXzJEX0FSUkFZX0VYVCc6IDB4OEMxQSwKLSAgJ1BST1hZX1RFWFRVUkVfMkRfQVJSQVlfRVhU
JzogMHg4QzFCLAotICAnVEVYVFVSRV9CSU5ESU5HXzFEX0FSUkFZX0VYVCc6IDB4OEMxQywKLSAg
J1RFWFRVUkVfQklORElOR18yRF9BUlJBWV9FWFQnOiAweDhDMUQsCi0gICdURVhUVVJFX0JVRkZF
Ul9FWFQnOiAweDhDMkEsCi0gICdNQVhfVEVYVFVSRV9CVUZGRVJfU0laRV9FWFQnOiAweDhDMkIs
Ci0gICdURVhUVVJFX0JJTkRJTkdfQlVGRkVSX0VYVCc6IDB4OEMyQywKLSAgJ1RFWFRVUkVfQlVG
RkVSX0RBVEFfU1RPUkVfQklORElOR19FWFQnOiAweDhDMkQsCi0gICdURVhUVVJFX0JVRkZFUl9G
T1JNQVRfRVhUJzogMHg4QzJFLAotICAnQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCc6IDB4
ODNGMCwKLSAgJ0NPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUJzogMHg4M0YxLAotICAnQ09N
UFJFU1NFRF9MVU1JTkFOQ0VfTEFUQzFfRVhUJzogMHg4QzcwLAotICAnQ09NUFJFU1NFRF9TSUdO
RURfTFVNSU5BTkNFX0xBVEMxX0VYVCc6IDB4OEM3MSwKLSAgJ0NPTVBSRVNTRURfTFVNSU5BTkNF
X0FMUEhBX0xBVEMyX0VYVCc6IDB4OEM3MiwKLSAgJ0NPTVBSRVNTRURfU0lHTkVEX0xVTUlOQU5D
RV9BTFBIQV9MQVRDMl9FWFQnOiAweDhDNzMsCi0gICdDT01QUkVTU0VEX1JFRF9SR1RDMV9FWFQn
OiAweDhEQkIsCi0gICdDT01QUkVTU0VEX1NJR05FRF9SRURfUkdUQzFfRVhUJzogMHg4REJDLAot
ICAnQ09NUFJFU1NFRF9SRURfR1JFRU5fUkdUQzJfRVhUJzogMHg4REJELAotICAnQ09NUFJFU1NF
RF9TSUdORURfUkVEX0dSRUVOX1JHVEMyX0VYVCc6IDB4OERCRSwKLSAgJ0NPTVBSRVNTRURfUkdC
X1MzVENfRFhUMV9FWFQnOiAweDgzRjAsCi0gICdDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VY
VCc6IDB4ODNGMSwKLSAgJ0NPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhUJzogMHg4M0YyLAot
ICAnQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQnOiAweDgzRjMsCi0gICdOT1JNQUxfTUFQ
X0VYVCc6IDB4ODUxMSwKLSAgJ1JFRkxFQ1RJT05fTUFQX0VYVCc6IDB4ODUxMiwKLSAgJ1RFWFRV
UkVfQ1VCRV9NQVBfRVhUJzogMHg4NTEzLAotICAnVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQX0VY
VCc6IDB4ODUxNCwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWF9FWFQnOiAweDg1MTUs
Ci0gICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1hfRVhUJzogMHg4NTE2LAotICAnVEVYVFVS
RV9DVUJFX01BUF9QT1NJVElWRV9ZX0VYVCc6IDB4ODUxNywKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWV9FWFQnOiAweDg1MTgsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1pf
RVhUJzogMHg4NTE5LAotICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aX0VYVCc6IDB4ODUx
QSwKLSAgJ1BST1hZX1RFWFRVUkVfQ1VCRV9NQVBfRVhUJzogMHg4NTFCLAotICAnTUFYX0NVQkVf
TUFQX1RFWFRVUkVfU0laRV9FWFQnOiAweDg1MUMsCi0gICdDTEFNUF9UT19FREdFX0VYVCc6IDB4
ODEyRiwKLSAgJ0NPTUJJTkVfRVhUJzogMHg4NTcwLAotICAnQ09NQklORV9SR0JfRVhUJzogMHg4
NTcxLAotICAnQ09NQklORV9BTFBIQV9FWFQnOiAweDg1NzIsCi0gICdSR0JfU0NBTEVfRVhUJzog
MHg4NTczLAotICAnQUREX1NJR05FRF9FWFQnOiAweDg1NzQsCi0gICdJTlRFUlBPTEFURV9FWFQn
OiAweDg1NzUsCi0gICdDT05TVEFOVF9FWFQnOiAweDg1NzYsCi0gICdQUklNQVJZX0NPTE9SX0VY
VCc6IDB4ODU3NywKLSAgJ1BSRVZJT1VTX0VYVCc6IDB4ODU3OCwKLSAgJ1NPVVJDRTBfUkdCX0VY
VCc6IDB4ODU4MCwKLSAgJ1NPVVJDRTFfUkdCX0VYVCc6IDB4ODU4MSwKLSAgJ1NPVVJDRTJfUkdC
X0VYVCc6IDB4ODU4MiwKLSAgJ1NPVVJDRTBfQUxQSEFfRVhUJzogMHg4NTg4LAotICAnU09VUkNF
MV9BTFBIQV9FWFQnOiAweDg1ODksCi0gICdTT1VSQ0UyX0FMUEhBX0VYVCc6IDB4ODU4QSwKLSAg
J09QRVJBTkQwX1JHQl9FWFQnOiAweDg1OTAsCi0gICdPUEVSQU5EMV9SR0JfRVhUJzogMHg4NTkx
LAotICAnT1BFUkFORDJfUkdCX0VYVCc6IDB4ODU5MiwKLSAgJ09QRVJBTkQwX0FMUEhBX0VYVCc6
IDB4ODU5OCwKLSAgJ09QRVJBTkQxX0FMUEhBX0VYVCc6IDB4ODU5OSwKLSAgJ09QRVJBTkQyX0FM
UEhBX0VYVCc6IDB4ODU5QSwKLSAgJ0RPVDNfUkdCX0VYVCc6IDB4ODc0MCwKLSAgJ0RPVDNfUkdC
QV9FWFQnOiAweDg3NDEsCi0gICdURVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCc6IDB4ODRGRSwK
LSAgJ01BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCc6IDB4ODRGRiwKLSAgJ1JHQkEzMlVJ
X0VYVCc6IDB4OEQ3MCwKLSAgJ1JHQjMyVUlfRVhUJzogMHg4RDcxLAotICAnQUxQSEEzMlVJX0VY
VCc6IDB4OEQ3MiwKLSAgJ0lOVEVOU0lUWTMyVUlfRVhUJzogMHg4RDczLAotICAnTFVNSU5BTkNF
MzJVSV9FWFQnOiAweDhENzQsCi0gICdMVU1JTkFOQ0VfQUxQSEEzMlVJX0VYVCc6IDB4OEQ3NSwK
LSAgJ1JHQkExNlVJX0VYVCc6IDB4OEQ3NiwKLSAgJ1JHQjE2VUlfRVhUJzogMHg4RDc3LAotICAn
QUxQSEExNlVJX0VYVCc6IDB4OEQ3OCwKLSAgJ0lOVEVOU0lUWTE2VUlfRVhUJzogMHg4RDc5LAot
ICAnTFVNSU5BTkNFMTZVSV9FWFQnOiAweDhEN0EsCi0gICdMVU1JTkFOQ0VfQUxQSEExNlVJX0VY
VCc6IDB4OEQ3QiwKLSAgJ1JHQkE4VUlfRVhUJzogMHg4RDdDLAotICAnUkdCOFVJX0VYVCc6IDB4
OEQ3RCwKLSAgJ0FMUEhBOFVJX0VYVCc6IDB4OEQ3RSwKLSAgJ0lOVEVOU0lUWThVSV9FWFQnOiAw
eDhEN0YsCi0gICdMVU1JTkFOQ0U4VUlfRVhUJzogMHg4RDgwLAotICAnTFVNSU5BTkNFX0FMUEhB
OFVJX0VYVCc6IDB4OEQ4MSwKLSAgJ1JHQkEzMklfRVhUJzogMHg4RDgyLAotICAnUkdCMzJJX0VY
VCc6IDB4OEQ4MywKLSAgJ0FMUEhBMzJJX0VYVCc6IDB4OEQ4NCwKLSAgJ0lOVEVOU0lUWTMySV9F
WFQnOiAweDhEODUsCi0gICdMVU1JTkFOQ0UzMklfRVhUJzogMHg4RDg2LAotICAnTFVNSU5BTkNF
X0FMUEhBMzJJX0VYVCc6IDB4OEQ4NywKLSAgJ1JHQkExNklfRVhUJzogMHg4RDg4LAotICAnUkdC
MTZJX0VYVCc6IDB4OEQ4OSwKLSAgJ0FMUEhBMTZJX0VYVCc6IDB4OEQ4QSwKLSAgJ0lOVEVOU0lU
WTE2SV9FWFQnOiAweDhEOEIsCi0gICdMVU1JTkFOQ0UxNklfRVhUJzogMHg4RDhDLAotICAnTFVN
SU5BTkNFX0FMUEhBMTZJX0VYVCc6IDB4OEQ4RCwKLSAgJ1JHQkE4SV9FWFQnOiAweDhEOEUsCi0g
ICdSR0I4SV9FWFQnOiAweDhEOEYsCi0gICdBTFBIQThJX0VYVCc6IDB4OEQ5MCwKLSAgJ0lOVEVO
U0lUWThJX0VYVCc6IDB4OEQ5MSwKLSAgJ0xVTUlOQU5DRThJX0VYVCc6IDB4OEQ5MiwKLSAgJ0xV
TUlOQU5DRV9BTFBIQThJX0VYVCc6IDB4OEQ5MywKLSAgJ1JFRF9JTlRFR0VSX0VYVCc6IDB4OEQ5
NCwKLSAgJ0dSRUVOX0lOVEVHRVJfRVhUJzogMHg4RDk1LAotICAnQkxVRV9JTlRFR0VSX0VYVCc6
IDB4OEQ5NiwKLSAgJ0FMUEhBX0lOVEVHRVJfRVhUJzogMHg4RDk3LAotICAnUkdCX0lOVEVHRVJf
RVhUJzogMHg4RDk4LAotICAnUkdCQV9JTlRFR0VSX0VYVCc6IDB4OEQ5OSwKLSAgJ0JHUl9JTlRF
R0VSX0VYVCc6IDB4OEQ5QSwKLSAgJ0JHUkFfSU5URUdFUl9FWFQnOiAweDhEOUIsCi0gICdMVU1J
TkFOQ0VfSU5URUdFUl9FWFQnOiAweDhEOUMsCi0gICdMVU1JTkFOQ0VfQUxQSEFfSU5URUdFUl9F
WFQnOiAweDhEOUQsCi0gICdSR0JBX0lOVEVHRVJfTU9ERV9FWFQnOiAweDhEOUUsCi0gICdNQVhf
VEVYVFVSRV9MT0RfQklBU19FWFQnOiAweDg0RkQsCi0gICdURVhUVVJFX0ZJTFRFUl9DT05UUk9M
X0VYVCc6IDB4ODUwMCwKLSAgJ1RFWFRVUkVfTE9EX0JJQVNfRVhUJzogMHg4NTAxLAotICAnTUlS
Uk9SX0NMQU1QX0VYVCc6IDB4ODc0MiwKLSAgJ01JUlJPUl9DTEFNUF9UT19FREdFX0VYVCc6IDB4
ODc0MywKLSAgJ01JUlJPUl9DTEFNUF9UT19CT1JERVJfRVhUJzogMHg4OTEyLAotICAnVEVYVFVS
RV9QUklPUklUWV9FWFQnOiAweDgwNjYsCi0gICdURVhUVVJFX1JFU0lERU5UX0VYVCc6IDB4ODA2
NywKLSAgJ1RFWFRVUkVfMURfQklORElOR19FWFQnOiAweDgwNjgsCi0gICdURVhUVVJFXzJEX0JJ
TkRJTkdfRVhUJzogMHg4MDY5LAotICAnVEVYVFVSRV8zRF9CSU5ESU5HX0VYVCc6IDB4ODA2QSwK
LSAgJ1BFUlRVUkJfRVhUJzogMHg4NUFFLAotICAnVEVYVFVSRV9OT1JNQUxfRVhUJzogMHg4NUFG
LAotICAnVEVYVFVSRV9SRUNUQU5HTEVfRVhUJzogMHg4NEY1LAotICAnVEVYVFVSRV9CSU5ESU5H
X1JFQ1RBTkdMRV9FWFQnOiAweDg0RjYsCi0gICdQUk9YWV9URVhUVVJFX1JFQ1RBTkdMRV9FWFQn
OiAweDg0RjcsCi0gICdNQVhfUkVDVEFOR0xFX1RFWFRVUkVfU0laRV9FWFQnOiAweDg0RjgsCi0g
ICdTUkdCX0VYVCc6IDB4OEM0MCwKLSAgJ1NSR0I4X0VYVCc6IDB4OEM0MSwKLSAgJ1NSR0JfQUxQ
SEFfRVhUJzogMHg4QzQyLAotICAnU1JHQjhfQUxQSEE4X0VYVCc6IDB4OEM0MywKLSAgJ1NMVU1J
TkFOQ0VfQUxQSEFfRVhUJzogMHg4QzQ0LAotICAnU0xVTUlOQU5DRThfQUxQSEE4X0VYVCc6IDB4
OEM0NSwKLSAgJ1NMVU1JTkFOQ0VfRVhUJzogMHg4QzQ2LAotICAnU0xVTUlOQU5DRThfRVhUJzog
MHg4QzQ3LAotICAnQ09NUFJFU1NFRF9TUkdCX0VYVCc6IDB4OEM0OCwKLSAgJ0NPTVBSRVNTRURf
U1JHQl9BTFBIQV9FWFQnOiAweDhDNDksCi0gICdDT01QUkVTU0VEX1NMVU1JTkFOQ0VfRVhUJzog
MHg4QzRBLAotICAnQ09NUFJFU1NFRF9TTFVNSU5BTkNFX0FMUEhBX0VYVCc6IDB4OEM0QiwKLSAg
J0NPTVBSRVNTRURfU1JHQl9TM1RDX0RYVDFfRVhUJzogMHg4QzRDLAotICAnQ09NUFJFU1NFRF9T
UkdCX0FMUEhBX1MzVENfRFhUMV9FWFQnOiAweDhDNEQsCi0gICdDT01QUkVTU0VEX1NSR0JfQUxQ
SEFfUzNUQ19EWFQzX0VYVCc6IDB4OEM0RSwKLSAgJ0NPTVBSRVNTRURfU1JHQl9BTFBIQV9TM1RD
X0RYVDVfRVhUJzogMHg4QzRGLAotICAnUkdCOV9FNV9FWFQnOiAweDhDM0QsCi0gICdVTlNJR05F
RF9JTlRfNV85XzlfOV9SRVZfRVhUJzogMHg4QzNFLAotICAnVEVYVFVSRV9TSEFSRURfU0laRV9F
WFQnOiAweDhDM0YsCi0gICdURVhUVVJFX1NXSVpaTEVfUl9FWFQnOiAweDhFNDIsCi0gICdURVhU
VVJFX1NXSVpaTEVfR19FWFQnOiAweDhFNDMsCi0gICdURVhUVVJFX1NXSVpaTEVfQl9FWFQnOiAw
eDhFNDQsCi0gICdURVhUVVJFX1NXSVpaTEVfQV9FWFQnOiAweDhFNDUsCi0gICdURVhUVVJFX1NX
SVpaTEVfUkdCQV9FWFQnOiAweDhFNDYsCi0gICdUSU1FX0VMQVBTRURfRVhUJzogMHg4OEJGLAot
ICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdfTUFYX0xFTkdUSF9FWFQnOiAweDhDNzYsCi0g
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREVfRVhUJzogMHg4QzdGLAotICAnTUFYX1RS
QU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRTX0VYVCc6IDB4OEM4MCwKLSAgJ1RS
QU5TRk9STV9GRUVEQkFDS19WQVJZSU5HU19FWFQnOiAweDhDODMsCi0gICdUUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSX1NUQVJUX0VYVCc6IDB4OEM4NCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfU0laRV9FWFQnOiAweDhDODUsCi0gICdQUklNSVRJVkVTX0dFTkVSQVRFRF9FWFQnOiAw
eDhDODcsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOX0VYVCc6IDB4
OEM4OCwKLSAgJ1JBU1RFUklaRVJfRElTQ0FSRF9FWFQnOiAweDhDODksCi0gICdNQVhfVFJBTlNG
T1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVOVFNfRVhUJzogMHg4QzhBLAotICAnTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTX0VYVCc6IDB4OEM4QiwKLSAgJ0lO
VEVSTEVBVkVEX0FUVFJJQlNfRVhUJzogMHg4QzhDLAotICAnU0VQQVJBVEVfQVRUUklCU19FWFQn
OiAweDhDOEQsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0VYVCc6IDB4OEM4RSwKLSAg
J1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElOR19FWFQnOiAweDhDOEYsCi0gICdET1VC
TEVfRVhUJzogMHgxNDBBLAotICAnVkVSVEVYX0FSUkFZX0VYVCc6IDB4ODA3NCwKLSAgJ05PUk1B
TF9BUlJBWV9FWFQnOiAweDgwNzUsCi0gICdDT0xPUl9BUlJBWV9FWFQnOiAweDgwNzYsCi0gICdJ
TkRFWF9BUlJBWV9FWFQnOiAweDgwNzcsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX0VYVCc6IDB4
ODA3OCwKLSAgJ0VER0VfRkxBR19BUlJBWV9FWFQnOiAweDgwNzksCi0gICdWRVJURVhfQVJSQVlf
U0laRV9FWFQnOiAweDgwN0EsCi0gICdWRVJURVhfQVJSQVlfVFlQRV9FWFQnOiAweDgwN0IsCi0g
ICdWRVJURVhfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA3QywKLSAgJ1ZFUlRFWF9BUlJBWV9DT1VO
VF9FWFQnOiAweDgwN0QsCi0gICdOT1JNQUxfQVJSQVlfVFlQRV9FWFQnOiAweDgwN0UsCi0gICdO
T1JNQUxfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA3RiwKLSAgJ05PUk1BTF9BUlJBWV9DT1VOVF9F
WFQnOiAweDgwODAsCi0gICdDT0xPUl9BUlJBWV9TSVpFX0VYVCc6IDB4ODA4MSwKLSAgJ0NPTE9S
X0FSUkFZX1RZUEVfRVhUJzogMHg4MDgyLAotICAnQ09MT1JfQVJSQVlfU1RSSURFX0VYVCc6IDB4
ODA4MywKLSAgJ0NPTE9SX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4NCwKLSAgJ0lOREVYX0FSUkFZ
X1RZUEVfRVhUJzogMHg4MDg1LAotICAnSU5ERVhfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA4NiwK
LSAgJ0lOREVYX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4NywKLSAgJ1RFWFRVUkVfQ09PUkRfQVJS
QVlfU0laRV9FWFQnOiAweDgwODgsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX1RZUEVfRVhUJzog
MHg4MDg5LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9TVFJJREVfRVhUJzogMHg4MDhBLAotICAn
VEVYVFVSRV9DT09SRF9BUlJBWV9DT1VOVF9FWFQnOiAweDgwOEIsCi0gICdFREdFX0ZMQUdfQVJS
QVlfU1RSSURFX0VYVCc6IDB4ODA4QywKLSAgJ0VER0VfRkxBR19BUlJBWV9DT1VOVF9FWFQnOiAw
eDgwOEQsCi0gICdWRVJURVhfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDgwOEUsCi0gICdOT1JNQUxf
QVJSQVlfUE9JTlRFUl9FWFQnOiAweDgwOEYsCi0gICdDT0xPUl9BUlJBWV9QT0lOVEVSX0VYVCc6
IDB4ODA5MCwKLSAgJ0lOREVYX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDkxLAotICAnVEVYVFVS
RV9DT09SRF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA5MiwKLSAgJ0VER0VfRkxBR19BUlJBWV9Q
T0lOVEVSX0VYVCc6IDB4ODA5MywKLSAgJ0JHUkEnOiAweDgwRTEsCi0gICdWRVJURVhfU0hBREVS
X0VYVCc6IDB4ODc4MCwKLSAgJ1ZFUlRFWF9TSEFERVJfQklORElOR19FWFQnOiAweDg3ODEsCi0g
ICdPUF9JTkRFWF9FWFQnOiAweDg3ODIsCi0gICdPUF9ORUdBVEVfRVhUJzogMHg4NzgzLAotICAn
T1BfRE9UM19FWFQnOiAweDg3ODQsCi0gICdPUF9ET1Q0X0VYVCc6IDB4ODc4NSwKLSAgJ09QX01V
TF9FWFQnOiAweDg3ODYsCi0gICdPUF9BRERfRVhUJzogMHg4Nzg3LAotICAnT1BfTUFERF9FWFQn
OiAweDg3ODgsCi0gICdPUF9GUkFDX0VYVCc6IDB4ODc4OSwKLSAgJ09QX01BWF9FWFQnOiAweDg3
OEEsCi0gICdPUF9NSU5fRVhUJzogMHg4NzhCLAotICAnT1BfU0VUX0dFX0VYVCc6IDB4ODc4QywK
LSAgJ09QX1NFVF9MVF9FWFQnOiAweDg3OEQsCi0gICdPUF9DTEFNUF9FWFQnOiAweDg3OEUsCi0g
ICdPUF9GTE9PUl9FWFQnOiAweDg3OEYsCi0gICdPUF9ST1VORF9FWFQnOiAweDg3OTAsCi0gICdP
UF9FWFBfQkFTRV8yX0VYVCc6IDB4ODc5MSwKLSAgJ09QX0xPR19CQVNFXzJfRVhUJzogMHg4Nzky
LAotICAnT1BfUE9XRVJfRVhUJzogMHg4NzkzLAotICAnT1BfUkVDSVBfRVhUJzogMHg4Nzk0LAot
ICAnT1BfUkVDSVBfU1FSVF9FWFQnOiAweDg3OTUsCi0gICdPUF9TVUJfRVhUJzogMHg4Nzk2LAot
ICAnT1BfQ1JPU1NfUFJPRFVDVF9FWFQnOiAweDg3OTcsCi0gICdPUF9NVUxUSVBMWV9NQVRSSVhf
RVhUJzogMHg4Nzk4LAotICAnT1BfTU9WX0VYVCc6IDB4ODc5OSwKLSAgJ09VVFBVVF9WRVJURVhf
RVhUJzogMHg4NzlBLAotICAnT1VUUFVUX0NPTE9SMF9FWFQnOiAweDg3OUIsCi0gICdPVVRQVVRf
Q09MT1IxX0VYVCc6IDB4ODc5QywKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMF9FWFQnOiAweDg3
OUQsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDFfRVhUJzogMHg4NzlFLAotICAnT1VUUFVUX1RF
WFRVUkVfQ09PUkQyX0VYVCc6IDB4ODc5RiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEM19FWFQn
OiAweDg3QTAsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDRfRVhUJzogMHg4N0ExLAotICAnT1VU
UFVUX1RFWFRVUkVfQ09PUkQ1X0VYVCc6IDB4ODdBMiwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JE
Nl9FWFQnOiAweDg3QTMsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDdfRVhUJzogMHg4N0E0LAot
ICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ4X0VYVCc6IDB4ODdBNSwKLSAgJ09VVFBVVF9URVhUVVJF
X0NPT1JEOV9FWFQnOiAweDg3QTYsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDEwX0VYVCc6IDB4
ODdBNywKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTFfRVhUJzogMHg4N0E4LAotICAnT1VUUFVU
X1RFWFRVUkVfQ09PUkQxMl9FWFQnOiAweDg3QTksCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDEz
X0VYVCc6IDB4ODdBQSwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTRfRVhUJzogMHg4N0FCLAot
ICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxNV9FWFQnOiAweDg3QUMsCi0gICdPVVRQVVRfVEVYVFVS
RV9DT09SRDE2X0VYVCc6IDB4ODdBRCwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTdfRVhUJzog
MHg4N0FFLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxOF9FWFQnOiAweDg3QUYsCi0gICdPVVRQ
VVRfVEVYVFVSRV9DT09SRDE5X0VYVCc6IDB4ODdCMCwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JE
MjBfRVhUJzogMHg4N0IxLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyMV9FWFQnOiAweDg3QjIs
Ci0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDIyX0VYVCc6IDB4ODdCMywKLSAgJ09VVFBVVF9URVhU
VVJFX0NPT1JEMjNfRVhUJzogMHg4N0I0LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyNF9FWFQn
OiAweDg3QjUsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDI1X0VYVCc6IDB4ODdCNiwKLSAgJ09V
VFBVVF9URVhUVVJFX0NPT1JEMjZfRVhUJzogMHg4N0I3LAotICAnT1VUUFVUX1RFWFRVUkVfQ09P
UkQyN19FWFQnOiAweDg3QjgsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDI4X0VYVCc6IDB4ODdC
OSwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjlfRVhUJzogMHg4N0JBLAotICAnT1VUUFVUX1RF
WFRVUkVfQ09PUkQzMF9FWFQnOiAweDg3QkIsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDMxX0VY
VCc6IDB4ODdCQywKLSAgJ09VVFBVVF9GT0dfRVhUJzogMHg4N0JELAotICAnU0NBTEFSX0VYVCc6
IDB4ODdCRSwKLSAgJ1ZFQ1RPUl9FWFQnOiAweDg3QkYsCi0gICdNQVRSSVhfRVhUJzogMHg4N0Mw
LAotICAnVkFSSUFOVF9FWFQnOiAweDg3QzEsCi0gICdJTlZBUklBTlRfRVhUJzogMHg4N0MyLAot
ICAnTE9DQUxfQ09OU1RBTlRfRVhUJzogMHg4N0MzLAotICAnTE9DQUxfRVhUJzogMHg4N0M0LAot
ICAnTUFYX1ZFUlRFWF9TSEFERVJfSU5TVFJVQ1RJT05TX0VYVCc6IDB4ODdDNSwKLSAgJ01BWF9W
RVJURVhfU0hBREVSX1ZBUklBTlRTX0VYVCc6IDB4ODdDNiwKLSAgJ01BWF9WRVJURVhfU0hBREVS
X0lOVkFSSUFOVFNfRVhUJzogMHg4N0M3LAotICAnTUFYX1ZFUlRFWF9TSEFERVJfTE9DQUxfQ09O
U1RBTlRTX0VYVCc6IDB4ODdDOCwKLSAgJ01BWF9WRVJURVhfU0hBREVSX0xPQ0FMU19FWFQnOiAw
eDg3QzksCi0gICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFERVJfSU5TVFJVQ1RJT05TX0VYVCc6
IDB4ODdDQSwKLSAgJ01BWF9PUFRJTUlaRURfVkVSVEVYX1NIQURFUl9WQVJJQU5UU19FWFQnOiAw
eDg3Q0IsCi0gICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFERVJfSU5WQVJJQU5UU19FWFQnOiAw
eDg3Q0MsCi0gICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFERVJfTE9DQUxfQ09OU1RBTlRTX0VY
VCc6IDB4ODdDRCwKLSAgJ01BWF9PUFRJTUlaRURfVkVSVEVYX1NIQURFUl9MT0NBTFNfRVhUJzog
MHg4N0NFLAotICAnVkVSVEVYX1NIQURFUl9JTlNUUlVDVElPTlNfRVhUJzogMHg4N0NGLAotICAn
VkVSVEVYX1NIQURFUl9WQVJJQU5UU19FWFQnOiAweDg3RDAsCi0gICdWRVJURVhfU0hBREVSX0lO
VkFSSUFOVFNfRVhUJzogMHg4N0QxLAotICAnVkVSVEVYX1NIQURFUl9MT0NBTF9DT05TVEFOVFNf
RVhUJzogMHg4N0QyLAotICAnVkVSVEVYX1NIQURFUl9MT0NBTFNfRVhUJzogMHg4N0QzLAotICAn
VkVSVEVYX1NIQURFUl9PUFRJTUlaRURfRVhUJzogMHg4N0Q0LAotICAnWF9FWFQnOiAweDg3RDUs
Ci0gICdZX0VYVCc6IDB4ODdENiwKLSAgJ1pfRVhUJzogMHg4N0Q3LAotICAnV19FWFQnOiAweDg3
RDgsCi0gICdORUdBVElWRV9YX0VYVCc6IDB4ODdEOSwKLSAgJ05FR0FUSVZFX1lfRVhUJzogMHg4
N0RBLAotICAnTkVHQVRJVkVfWl9FWFQnOiAweDg3REIsCi0gICdORUdBVElWRV9XX0VYVCc6IDB4
ODdEQywKLSAgJ1pFUk9fRVhUJzogMHg4N0RELAotICAnT05FX0VYVCc6IDB4ODdERSwKLSAgJ05F
R0FUSVZFX09ORV9FWFQnOiAweDg3REYsCi0gICdOT1JNQUxJWkVEX1JBTkdFX0VYVCc6IDB4ODdF
MCwKLSAgJ0ZVTExfUkFOR0VfRVhUJzogMHg4N0UxLAotICAnQ1VSUkVOVF9WRVJURVhfRVhUJzog
MHg4N0UyLAotICAnTVZQX01BVFJJWF9FWFQnOiAweDg3RTMsCi0gICdWQVJJQU5UX1ZBTFVFX0VY
VCc6IDB4ODdFNCwKLSAgJ1ZBUklBTlRfREFUQVRZUEVfRVhUJzogMHg4N0U1LAotICAnVkFSSUFO
VF9BUlJBWV9TVFJJREVfRVhUJzogMHg4N0U2LAotICAnVkFSSUFOVF9BUlJBWV9UWVBFX0VYVCc6
IDB4ODdFNywKLSAgJ1ZBUklBTlRfQVJSQVlfRVhUJzogMHg4N0U4LAotICAnVkFSSUFOVF9BUlJB
WV9QT0lOVEVSX0VYVCc6IDB4ODdFOSwKLSAgJ0lOVkFSSUFOVF9WQUxVRV9FWFQnOiAweDg3RUEs
Ci0gICdJTlZBUklBTlRfREFUQVRZUEVfRVhUJzogMHg4N0VCLAotICAnTE9DQUxfQ09OU1RBTlRf
VkFMVUVfRVhUJzogMHg4N0VDLAotICAnTE9DQUxfQ09OU1RBTlRfREFUQVRZUEVfRVhUJzogMHg4
N0VELAotICAnTU9ERUxWSUVXMF9TVEFDS19ERVBUSF9FWFQnOiAweDBCQTMsCi0gICdNT0RFTFZJ
RVcwX01BVFJJWF9FWFQnOiAweDBCQTYsCi0gICdNT0RFTFZJRVcwX0VYVCc6IDB4MTcwMCwKLSAg
J01PREVMVklFVzFfU1RBQ0tfREVQVEhfRVhUJzogMHg4NTAyLAotICAnTU9ERUxWSUVXMV9NQVRS
SVhfRVhUJzogMHg4NTA2LAotICAnVkVSVEVYX1dFSUdIVElOR19FWFQnOiAweDg1MDksCi0gICdN
T0RFTFZJRVcxX0VYVCc6IDB4ODUwQSwKLSAgJ0NVUlJFTlRfVkVSVEVYX1dFSUdIVF9FWFQnOiAw
eDg1MEIsCi0gICdWRVJURVhfV0VJR0hUX0FSUkFZX0VYVCc6IDB4ODUwQywKLSAgJ1ZFUlRFWF9X
RUlHSFRfQVJSQVlfU0laRV9FWFQnOiAweDg1MEQsCi0gICdWRVJURVhfV0VJR0hUX0FSUkFZX1RZ
UEVfRVhUJzogMHg4NTBFLAotICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9TVFJJREVfRVhUJzogMHg4
NTBGLAotICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODUxMCwKLSAgJ09D
Q0xVU0lPTl9URVNUX0hQJzogMHg4MTY1LAotICAnT0NDTFVTSU9OX1RFU1RfUkVTVUxUX0hQJzog
MHg4MTY2LAotICAnTUlSUk9SRURfUkVQRUFUX0lCTSc6IDB4ODM3MCwKLSAgJ1JFRF9NSU5fQ0xB
TVBfSU5HUic6IDB4ODU2MCwKLSAgJ0dSRUVOX01JTl9DTEFNUF9JTkdSJzogMHg4NTYxLAotICAn
QkxVRV9NSU5fQ0xBTVBfSU5HUic6IDB4ODU2MiwKLSAgJ0FMUEhBX01JTl9DTEFNUF9JTkdSJzog
MHg4NTYzLAotICAnUkVEX01BWF9DTEFNUF9JTkdSJzogMHg4NTY0LAotICAnR1JFRU5fTUFYX0NM
QU1QX0lOR1InOiAweDg1NjUsCi0gICdCTFVFX01BWF9DTEFNUF9JTkdSJzogMHg4NTY2LAotICAn
QUxQSEFfTUFYX0NMQU1QX0lOR1InOiAweDg1NjcsCi0gICdJTlRFUkxBQ0VfUkVBRF9JTkdSJzog
MHg4NTY4LAotICAnUEFSQUxMRUxfQVJSQVlTX0lOVEVMJzogMHg4M0Y0LAotICAnVkVSVEVYX0FS
UkFZX1BBUkFMTEVMX1BPSU5URVJTX0lOVEVMJzogMHg4M0Y1LAotICAnTk9STUFMX0FSUkFZX1BB
UkFMTEVMX1BPSU5URVJTX0lOVEVMJzogMHg4M0Y2LAotICAnQ09MT1JfQVJSQVlfUEFSQUxMRUxf
UE9JTlRFUlNfSU5URUwnOiAweDgzRjcsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZX1BBUkFMTEVM
X1BPSU5URVJTX0lOVEVMJzogMHg4M0Y4LAotICAnS1RYX0ZST05UX1JFR0lPTic6IDB4MCwKLSAg
J0tUWF9CQUNLX1JFR0lPTic6IDB4MSwKLSAgJ0tUWF9aX1JFR0lPTic6IDB4MiwKLSAgJ0tUWF9T
VEVOQ0lMX1JFR0lPTic6IDB4MywKLSAgJ1RFWFRVUkVfMURfU1RBQ0tfTUVTQVgnOiAweDg3NTks
Ci0gICdURVhUVVJFXzJEX1NUQUNLX01FU0FYJzogMHg4NzVBLAotICAnUFJPWFlfVEVYVFVSRV8x
RF9TVEFDS19NRVNBWCc6IDB4ODc1QiwKLSAgJ1BST1hZX1RFWFRVUkVfMkRfU1RBQ0tfTUVTQVgn
OiAweDg3NUMsCi0gICdURVhUVVJFXzFEX1NUQUNLX0JJTkRJTkdfTUVTQVgnOiAweDg3NUQsCi0g
ICdURVhUVVJFXzJEX1NUQUNLX0JJTkRJTkdfTUVTQVgnOiAweDg3NUUsCi0gICdQQUNLX0lOVkVS
VF9NRVNBJzogMHg4NzU4LAotICAnVU5TSUdORURfU0hPUlRfOF84X01FU0EnOiAweDg1QkEsCi0g
ICdVTlNJR05FRF9TSE9SVF84XzhfUkVWX01FU0EnOiAweDg1QkIsCi0gICdZQ0JDUl9NRVNBJzog
MHg4NzU3LAotICAnUVVFUllfV0FJVF9OVic6IDB4OEUxMywKLSAgJ1FVRVJZX05PX1dBSVRfTlYn
OiAweDhFMTQsCi0gICdRVUVSWV9CWV9SRUdJT05fV0FJVF9OVic6IDB4OEUxNSwKLSAgJ1FVRVJZ
X0JZX1JFR0lPTl9OT19XQUlUX05WJzogMHg4RTE2LAotICAnREVQVEhfU1RFTkNJTF9UT19SR0JB
X05WJzogMHg4ODZFLAotICAnREVQVEhfU1RFTkNJTF9UT19CR1JBX05WJzogMHg4ODZGLAotICAn
REVQVEhfQ09NUE9ORU5UMzJGX05WJzogMHg4REFCLAotICAnREVQVEgzMkZfU1RFTkNJTDhfTlYn
OiAweDhEQUMsCi0gICdGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVZfTlYnOiAweDhEQUQs
Ci0gICdERVBUSF9CVUZGRVJfRkxPQVRfTU9ERV9OVic6IDB4OERBRiwKLSAgJ0RFUFRIX0NMQU1Q
X05WJzogMHg4NjRGLAotICAnU0FNUExFX0NPVU5UX0JJVFNfTlYnOiAweDg4NjQsCi0gICdDVVJS
RU5UX1NBTVBMRV9DT1VOVF9RVUVSWV9OVic6IDB4ODg2NSwKLSAgJ1FVRVJZX1JFU1VMVF9OVic6
IDB4ODg2NiwKLSAgJ1FVRVJZX1JFU1VMVF9BVkFJTEFCTEVfTlYnOiAweDg4NjcsCi0gICdTQU1Q
TEVfQ09VTlRfTlYnOiAweDg5MTQsCi0gICdFVkFMXzJEX05WJzogMHg4NkMwLAotICAnRVZBTF9U
UklBTkdVTEFSXzJEX05WJzogMHg4NkMxLAotICAnTUFQX1RFU1NFTExBVElPTl9OVic6IDB4ODZD
MiwKLSAgJ01BUF9BVFRSSUJfVV9PUkRFUl9OVic6IDB4ODZDMywKLSAgJ01BUF9BVFRSSUJfVl9P
UkRFUl9OVic6IDB4ODZDNCwKLSAgJ0VWQUxfRlJBQ1RJT05BTF9URVNTRUxMQVRJT05fTlYnOiAw
eDg2QzUsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIwX05WJzogMHg4NkM2LAotICAnRVZBTF9WRVJU
RVhfQVRUUklCMV9OVic6IDB4ODZDNywKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjJfTlYnOiAweDg2
QzgsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIzX05WJzogMHg4NkM5LAotICAnRVZBTF9WRVJURVhf
QVRUUklCNF9OVic6IDB4ODZDQSwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjVfTlYnOiAweDg2Q0Is
Ci0gICdFVkFMX1ZFUlRFWF9BVFRSSUI2X05WJzogMHg4NkNDLAotICAnRVZBTF9WRVJURVhfQVRU
UklCN19OVic6IDB4ODZDRCwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjhfTlYnOiAweDg2Q0UsCi0g
ICdFVkFMX1ZFUlRFWF9BVFRSSUI5X05WJzogMHg4NkNGLAotICAnRVZBTF9WRVJURVhfQVRUUklC
MTBfTlYnOiAweDg2RDAsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxMV9OVic6IDB4ODZEMSwKLSAg
J0VWQUxfVkVSVEVYX0FUVFJJQjEyX05WJzogMHg4NkQyLAotICAnRVZBTF9WRVJURVhfQVRUUklC
MTNfTlYnOiAweDg2RDMsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIxNF9OVic6IDB4ODZENCwKLSAg
J0VWQUxfVkVSVEVYX0FUVFJJQjE1X05WJzogMHg4NkQ1LAotICAnTUFYX01BUF9URVNTRUxMQVRJ
T05fTlYnOiAweDg2RDYsCi0gICdNQVhfUkFUSU9OQUxfRVZBTF9PUkRFUl9OVic6IDB4ODZENywK
LSAgJ1NBTVBMRV9QT1NJVElPTl9OVic6IDB4OEU1MCwKLSAgJ1NBTVBMRV9NQVNLX05WJzogMHg4
RTUxLAotICAnU0FNUExFX01BU0tfVkFMVUVfTlYnOiAweDhFNTIsCi0gICdURVhUVVJFX0JJTkRJ
TkdfUkVOREVSQlVGRkVSX05WJzogMHg4RTUzLAotICAnVEVYVFVSRV9SRU5ERVJCVUZGRVJfREFU
QV9TVE9SRV9CSU5ESU5HX05WJzogMHg4RTU0LAotICAnVEVYVFVSRV9SRU5ERVJCVUZGRVJfTlYn
OiAweDhFNTUsCi0gICdTQU1QTEVSX1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1NiwKLSAgJ0lOVF9T
QU1QTEVSX1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1NywKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVS
X1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1OCwKLSAgJ01BWF9TQU1QTEVfTUFTS19XT1JEU19OVic6
IDB4OEU1OSwKLSAgJ0FMTF9DT01QTEVURURfTlYnOiAweDg0RjIsCi0gICdGRU5DRV9TVEFUVVNf
TlYnOiAweDg0RjMsCi0gICdGRU5DRV9DT05ESVRJT05fTlYnOiAweDg0RjQsCi0gICdGTE9BVF9S
X05WJzogMHg4ODgwLAotICAnRkxPQVRfUkdfTlYnOiAweDg4ODEsCi0gICdGTE9BVF9SR0JfTlYn
OiAweDg4ODIsCi0gICdGTE9BVF9SR0JBX05WJzogMHg4ODgzLAotICAnRkxPQVRfUjE2X05WJzog
MHg4ODg0LAotICAnRkxPQVRfUjMyX05WJzogMHg4ODg1LAotICAnRkxPQVRfUkcxNl9OVic6IDB4
ODg4NiwKLSAgJ0ZMT0FUX1JHMzJfTlYnOiAweDg4ODcsCi0gICdGTE9BVF9SR0IxNl9OVic6IDB4
ODg4OCwKLSAgJ0ZMT0FUX1JHQjMyX05WJzogMHg4ODg5LAotICAnRkxPQVRfUkdCQTE2X05WJzog
MHg4ODhBLAotICAnRkxPQVRfUkdCQTMyX05WJzogMHg4ODhCLAotICAnVEVYVFVSRV9GTE9BVF9D
T01QT05FTlRTX05WJzogMHg4ODhDLAotICAnRkxPQVRfQ0xFQVJfQ09MT1JfVkFMVUVfTlYnOiAw
eDg4OEQsCi0gICdGTE9BVF9SR0JBX01PREVfTlYnOiAweDg4OEUsCi0gICdGT0dfRElTVEFOQ0Vf
TU9ERV9OVic6IDB4ODU1QSwKLSAgJ0VZRV9SQURJQUxfTlYnOiAweDg1NUIsCi0gICdFWUVfUExB
TkVfQUJTT0xVVEVfTlYnOiAweDg1NUMsCi0gICdNQVhfRlJBR01FTlRfUFJPR1JBTV9MT0NBTF9Q
QVJBTUVURVJTX05WJzogMHg4ODY4LAotICAnRlJBR01FTlRfUFJPR1JBTV9OVic6IDB4ODg3MCwK
LSAgJ01BWF9URVhUVVJFX0NPT1JEU19OVic6IDB4ODg3MSwKLSAgJ01BWF9URVhUVVJFX0lNQUdF
X1VOSVRTX05WJzogMHg4ODcyLAotICAnRlJBR01FTlRfUFJPR1JBTV9CSU5ESU5HX05WJzogMHg4
ODczLAotICAnUFJPR1JBTV9FUlJPUl9TVFJJTkdfTlYnOiAweDg4NzQsCi0gICdNQVhfUFJPR1JB
TV9FWEVDX0lOU1RSVUNUSU9OU19OVic6IDB4ODhGNCwKLSAgJ01BWF9QUk9HUkFNX0NBTExfREVQ
VEhfTlYnOiAweDg4RjUsCi0gICdNQVhfUFJPR1JBTV9JRl9ERVBUSF9OVic6IDB4ODhGNiwKLSAg
J01BWF9QUk9HUkFNX0xPT1BfREVQVEhfTlYnOiAweDg4RjcsCi0gICdNQVhfUFJPR1JBTV9MT09Q
X0NPVU5UX05WJzogMHg4OEY4LAotICAnUkVOREVSQlVGRkVSX0NPVkVSQUdFX1NBTVBMRVNfTlYn
OiAweDhDQUIsCi0gICdSRU5ERVJCVUZGRVJfQ09MT1JfU0FNUExFU19OVic6IDB4OEUxMCwKLSAg
J01BWF9NVUxUSVNBTVBMRV9DT1ZFUkFHRV9NT0RFU19OVic6IDB4OEUxMSwKLSAgJ01VTFRJU0FN
UExFX0NPVkVSQUdFX01PREVTX05WJzogMHg4RTEyLAotICAnR0VPTUVUUllfUFJPR1JBTV9OVic6
IDB4OEMyNiwKLSAgJ01BWF9QUk9HUkFNX09VVFBVVF9WRVJUSUNFU19OVic6IDB4OEMyNywKLSAg
J01BWF9QUk9HUkFNX1RPVEFMX09VVFBVVF9DT01QT05FTlRTX05WJzogMHg4QzI4LAotICAnTUlO
X1BST0dSQU1fVEVYRUxfT0ZGU0VUX05WJzogMHg4OTA0LAotICAnTUFYX1BST0dSQU1fVEVYRUxf
T0ZGU0VUX05WJzogMHg4OTA1LAotICAnUFJPR1JBTV9BVFRSSUJfQ09NUE9ORU5UU19OVic6IDB4
ODkwNiwKLSAgJ1BST0dSQU1fUkVTVUxUX0NPTVBPTkVOVFNfTlYnOiAweDg5MDcsCi0gICdNQVhf
UFJPR1JBTV9BVFRSSUJfQ09NUE9ORU5UU19OVic6IDB4ODkwOCwKLSAgJ01BWF9QUk9HUkFNX1JF
U1VMVF9DT01QT05FTlRTX05WJzogMHg4OTA5LAotICAnTUFYX1BST0dSQU1fR0VORVJJQ19BVFRS
SUJTX05WJzogMHg4REE1LAotICAnTUFYX1BST0dSQU1fR0VORVJJQ19SRVNVTFRTX05WJzogMHg4
REE2LAotICAnSEFMRl9GTE9BVF9OVic6IDB4MTQwQiwKLSAgJ01BWF9TSElOSU5FU1NfTlYnOiAw
eDg1MDQsCi0gICdNQVhfU1BPVF9FWFBPTkVOVF9OVic6IDB4ODUwNSwKLSAgJ01VTFRJU0FNUExF
X0ZJTFRFUl9ISU5UX05WJzogMHg4NTM0LAotICAnUElYRUxfQ09VTlRFUl9CSVRTX05WJzogMHg4
ODY0LAotICAnQ1VSUkVOVF9PQ0NMVVNJT05fUVVFUllfSURfTlYnOiAweDg4NjUsCi0gICdQSVhF
TF9DT1VOVF9OVic6IDB4ODg2NiwKLSAgJ1BJWEVMX0NPVU5UX0FWQUlMQUJMRV9OVic6IDB4ODg2
NywKLSAgJ0RFUFRIX1NURU5DSUxfTlYnOiAweDg0RjksCi0gICdVTlNJR05FRF9JTlRfMjRfOF9O
Vic6IDB4ODRGQSwKLSAgJ01BWF9QUk9HUkFNX1BBUkFNRVRFUl9CVUZGRVJfQklORElOR1NfTlYn
OiAweDhEQTAsCi0gICdNQVhfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX1NJWkVfTlYnOiAweDhE
QTEsCi0gICdWRVJURVhfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX05WJzogMHg4REEyLAotICAn
R0VPTUVUUllfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX05WJzogMHg4REEzLAotICAnRlJBR01F
TlRfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX05WJzogMHg4REE0LAotICAnV1JJVEVfUElYRUxf
REFUQV9SQU5HRV9OVic6IDB4ODg3OCwKLSAgJ1JFQURfUElYRUxfREFUQV9SQU5HRV9OVic6IDB4
ODg3OSwKLSAgJ1dSSVRFX1BJWEVMX0RBVEFfUkFOR0VfTEVOR1RIX05WJzogMHg4ODdBLAotICAn
UkVBRF9QSVhFTF9EQVRBX1JBTkdFX0xFTkdUSF9OVic6IDB4ODg3QiwKLSAgJ1dSSVRFX1BJWEVM
X0RBVEFfUkFOR0VfUE9JTlRFUl9OVic6IDB4ODg3QywKLSAgJ1JFQURfUElYRUxfREFUQV9SQU5H
RV9QT0lOVEVSX05WJzogMHg4ODdELAotICAnUE9JTlRfU1BSSVRFX05WJzogMHg4ODYxLAotICAn
Q09PUkRfUkVQTEFDRV9OVic6IDB4ODg2MiwKLSAgJ1BPSU5UX1NQUklURV9SX01PREVfTlYnOiAw
eDg4NjMsCi0gICdGUkFNRV9OVic6IDB4OEUyNiwKLSAgJ0ZJRUxEU19OVic6IDB4OEUyNywKLSAg
J0NVUlJFTlRfVElNRV9OVic6IDB4OEUyOCwKLSAgJ05VTV9GSUxMX1NUUkVBTVNfTlYnOiAweDhF
MjksCi0gICdQUkVTRU5UX1RJTUVfTlYnOiAweDhFMkEsCi0gICdQUkVTRU5UX0RVUkFUSU9OX05W
JzogMHg4RTJCLAotICAnUFJJTUlUSVZFX1JFU1RBUlRfTlYnOiAweDg1NTgsCi0gICdQUklNSVRJ
VkVfUkVTVEFSVF9JTkRFWF9OVic6IDB4ODU1OSwKLSAgJ1JFR0lTVEVSX0NPTUJJTkVSU19OVic6
IDB4ODUyMiwKLSAgJ1ZBUklBQkxFX0FfTlYnOiAweDg1MjMsCi0gICdWQVJJQUJMRV9CX05WJzog
MHg4NTI0LAotICAnVkFSSUFCTEVfQ19OVic6IDB4ODUyNSwKLSAgJ1ZBUklBQkxFX0RfTlYnOiAw
eDg1MjYsCi0gICdWQVJJQUJMRV9FX05WJzogMHg4NTI3LAotICAnVkFSSUFCTEVfRl9OVic6IDB4
ODUyOCwKLSAgJ1ZBUklBQkxFX0dfTlYnOiAweDg1MjksCi0gICdDT05TVEFOVF9DT0xPUjBfTlYn
OiAweDg1MkEsCi0gICdDT05TVEFOVF9DT0xPUjFfTlYnOiAweDg1MkIsCi0gICdQUklNQVJZX0NP
TE9SX05WJzogMHg4NTJDLAotICAnU0VDT05EQVJZX0NPTE9SX05WJzogMHg4NTJELAotICAnU1BB
UkUwX05WJzogMHg4NTJFLAotICAnU1BBUkUxX05WJzogMHg4NTJGLAotICAnRElTQ0FSRF9OVic6
IDB4ODUzMCwKLSAgJ0VfVElNRVNfRl9OVic6IDB4ODUzMSwKLSAgJ1NQQVJFMF9QTFVTX1NFQ09O
REFSWV9DT0xPUl9OVic6IDB4ODUzMiwKLSAgJ1VOU0lHTkVEX0lERU5USVRZX05WJzogMHg4NTM2
LAotICAnVU5TSUdORURfSU5WRVJUX05WJzogMHg4NTM3LAotICAnRVhQQU5EX05PUk1BTF9OVic6
IDB4ODUzOCwKLSAgJ0VYUEFORF9ORUdBVEVfTlYnOiAweDg1MzksCi0gICdIQUxGX0JJQVNfTk9S
TUFMX05WJzogMHg4NTNBLAotICAnSEFMRl9CSUFTX05FR0FURV9OVic6IDB4ODUzQiwKLSAgJ1NJ
R05FRF9JREVOVElUWV9OVic6IDB4ODUzQywKLSAgJ1NJR05FRF9ORUdBVEVfTlYnOiAweDg1M0Qs
Ci0gICdTQ0FMRV9CWV9UV09fTlYnOiAweDg1M0UsCi0gICdTQ0FMRV9CWV9GT1VSX05WJzogMHg4
NTNGLAotICAnU0NBTEVfQllfT05FX0hBTEZfTlYnOiAweDg1NDAsCi0gICdCSUFTX0JZX05FR0FU
SVZFX09ORV9IQUxGX05WJzogMHg4NTQxLAotICAnQ09NQklORVJfSU5QVVRfTlYnOiAweDg1NDIs
Ci0gICdDT01CSU5FUl9NQVBQSU5HX05WJzogMHg4NTQzLAotICAnQ09NQklORVJfQ09NUE9ORU5U
X1VTQUdFX05WJzogMHg4NTQ0LAotICAnQ09NQklORVJfQUJfRE9UX1BST0RVQ1RfTlYnOiAweDg1
NDUsCi0gICdDT01CSU5FUl9DRF9ET1RfUFJPRFVDVF9OVic6IDB4ODU0NiwKLSAgJ0NPTUJJTkVS
X01VWF9TVU1fTlYnOiAweDg1NDcsCi0gICdDT01CSU5FUl9TQ0FMRV9OVic6IDB4ODU0OCwKLSAg
J0NPTUJJTkVSX0JJQVNfTlYnOiAweDg1NDksCi0gICdDT01CSU5FUl9BQl9PVVRQVVRfTlYnOiAw
eDg1NEEsCi0gICdDT01CSU5FUl9DRF9PVVRQVVRfTlYnOiAweDg1NEIsCi0gICdDT01CSU5FUl9T
VU1fT1VUUFVUX05WJzogMHg4NTRDLAotICAnTUFYX0dFTkVSQUxfQ09NQklORVJTX05WJzogMHg4
NTRELAotICAnTlVNX0dFTkVSQUxfQ09NQklORVJTX05WJzogMHg4NTRFLAotICAnQ09MT1JfU1VN
X0NMQU1QX05WJzogMHg4NTRGLAotICAnQ09NQklORVIwX05WJzogMHg4NTUwLAotICAnQ09NQklO
RVIxX05WJzogMHg4NTUxLAotICAnQ09NQklORVIyX05WJzogMHg4NTUyLAotICAnQ09NQklORVIz
X05WJzogMHg4NTUzLAotICAnQ09NQklORVI0X05WJzogMHg4NTU0LAotICAnQ09NQklORVI1X05W
JzogMHg4NTU1LAotICAnQ09NQklORVI2X05WJzogMHg4NTU2LAotICAnQ09NQklORVI3X05WJzog
MHg4NTU3LAotICAnUEVSX1NUQUdFX0NPTlNUQU5UU19OVic6IDB4ODUzNSwKLSAgJ0VNQk9TU19M
SUdIVF9OVic6IDB4ODU1RCwKLSAgJ0VNQk9TU19DT05TVEFOVF9OVic6IDB4ODU1RSwKLSAgJ0VN
Qk9TU19NQVBfTlYnOiAweDg1NUYsCi0gICdOT1JNQUxfTUFQX05WJzogMHg4NTExLAotICAnUkVG
TEVDVElPTl9NQVBfTlYnOiAweDg1MTIsCi0gICdDT01CSU5FNF9OVic6IDB4ODUwMywKLSAgJ1NP
VVJDRTNfUkdCX05WJzogMHg4NTgzLAotICAnU09VUkNFM19BTFBIQV9OVic6IDB4ODU4QiwKLSAg
J09QRVJBTkQzX1JHQl9OVic6IDB4ODU5MywKLSAgJ09QRVJBTkQzX0FMUEhBX05WJzogMHg4NTlC
LAotICAnVEVYVFVSRV9VTlNJR05FRF9SRU1BUF9NT0RFX05WJzogMHg4ODhGLAotICAnVEVYVFVS
RV9SRUNUQU5HTEVfTlYnOiAweDg0RjUsCi0gICdURVhUVVJFX0JJTkRJTkdfUkVDVEFOR0xFX05W
JzogMHg4NEY2LAotICAnUFJPWFlfVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAweDg0RjcsCi0gICdN
QVhfUkVDVEFOR0xFX1RFWFRVUkVfU0laRV9OVic6IDB4ODRGOCwKLSAgJ09GRlNFVF9URVhUVVJF
X1JFQ1RBTkdMRV9OVic6IDB4ODY0QywKLSAgJ09GRlNFVF9URVhUVVJFX1JFQ1RBTkdMRV9TQ0FM
RV9OVic6IDB4ODY0RCwKLSAgJ0RPVF9QUk9EVUNUX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4
NjRFLAotICAnUkdCQV9VTlNJR05FRF9ET1RfUFJPRFVDVF9NQVBQSU5HX05WJzogMHg4NkQ5LAot
ICAnVU5TSUdORURfSU5UX1M4X1M4XzhfOF9OVic6IDB4ODZEQSwKLSAgJ1VOU0lHTkVEX0lOVF84
XzhfUzhfUzhfUkVWX05WJzogMHg4NkRCLAotICAnRFNEVF9NQUdfSU5URU5TSVRZX05WJzogMHg4
NkRDLAotICAnU0hBREVSX0NPTlNJU1RFTlRfTlYnOiAweDg2REQsCi0gICdURVhUVVJFX1NIQURF
Ul9OVic6IDB4ODZERSwKLSAgJ1NIQURFUl9PUEVSQVRJT05fTlYnOiAweDg2REYsCi0gICdDVUxM
X01PREVTX05WJzogMHg4NkUwLAotICAnT0ZGU0VUX1RFWFRVUkVfMkRfTUFUUklYX05WJzogMHg4
NkUxLAotICAnT0ZGU0VUX1RFWFRVUkVfTUFUUklYX05WJzogMHg4NkUxLAotICAnT0ZGU0VUX1RF
WFRVUkVfMkRfU0NBTEVfTlYnOiAweDg2RTIsCi0gICdPRkZTRVRfVEVYVFVSRV9TQ0FMRV9OVic6
IDB4ODZFMiwKLSAgJ09GRlNFVF9URVhUVVJFX0JJQVNfTlYnOiAweDg2RTMsCi0gICdPRkZTRVRf
VEVYVFVSRV8yRF9CSUFTX05WJzogMHg4NkUzLAotICAnUFJFVklPVVNfVEVYVFVSRV9JTlBVVF9O
Vic6IDB4ODZFNCwKLSAgJ0NPTlNUX0VZRV9OVic6IDB4ODZFNSwKLSAgJ1BBU1NfVEhST1VHSF9O
Vic6IDB4ODZFNiwKLSAgJ0NVTExfRlJBR01FTlRfTlYnOiAweDg2RTcsCi0gICdPRkZTRVRfVEVY
VFVSRV8yRF9OVic6IDB4ODZFOCwKLSAgJ0RFUEVOREVOVF9BUl9URVhUVVJFXzJEX05WJzogMHg4
NkU5LAotICAnREVQRU5ERU5UX0dCX1RFWFRVUkVfMkRfTlYnOiAweDg2RUEsCi0gICdET1RfUFJP
RFVDVF9OVic6IDB4ODZFQywKLSAgJ0RPVF9QUk9EVUNUX0RFUFRIX1JFUExBQ0VfTlYnOiAweDg2
RUQsCi0gICdET1RfUFJPRFVDVF9URVhUVVJFXzJEX05WJzogMHg4NkVFLAotICAnRE9UX1BST0RV
Q1RfVEVYVFVSRV9DVUJFX01BUF9OVic6IDB4ODZGMCwKLSAgJ0RPVF9QUk9EVUNUX0RJRkZVU0Vf
Q1VCRV9NQVBfTlYnOiAweDg2RjEsCi0gICdET1RfUFJPRFVDVF9SRUZMRUNUX0NVQkVfTUFQX05W
JzogMHg4NkYyLAotICAnRE9UX1BST0RVQ1RfQ09OU1RfRVlFX1JFRkxFQ1RfQ1VCRV9NQVBfTlYn
OiAweDg2RjMsCi0gICdISUxPX05WJzogMHg4NkY0LAotICAnRFNEVF9OVic6IDB4ODZGNSwKLSAg
J0RTRFRfTUFHX05WJzogMHg4NkY2LAotICAnRFNEVF9NQUdfVklCX05WJzogMHg4NkY3LAotICAn
SElMTzE2X05WJzogMHg4NkY4LAotICAnU0lHTkVEX0hJTE9fTlYnOiAweDg2RjksCi0gICdTSUdO
RURfSElMTzE2X05WJzogMHg4NkZBLAotICAnU0lHTkVEX1JHQkFfTlYnOiAweDg2RkIsCi0gICdT
SUdORURfUkdCQThfTlYnOiAweDg2RkMsCi0gICdTSUdORURfUkdCX05WJzogMHg4NkZFLAotICAn
U0lHTkVEX1JHQjhfTlYnOiAweDg2RkYsCi0gICdTSUdORURfTFVNSU5BTkNFX05WJzogMHg4NzAx
LAotICAnU0lHTkVEX0xVTUlOQU5DRThfTlYnOiAweDg3MDIsCi0gICdTSUdORURfTFVNSU5BTkNF
X0FMUEhBX05WJzogMHg4NzAzLAotICAnU0lHTkVEX0xVTUlOQU5DRThfQUxQSEE4X05WJzogMHg4
NzA0LAotICAnU0lHTkVEX0FMUEhBX05WJzogMHg4NzA1LAotICAnU0lHTkVEX0FMUEhBOF9OVic6
IDB4ODcwNiwKLSAgJ1NJR05FRF9JTlRFTlNJVFlfTlYnOiAweDg3MDcsCi0gICdTSUdORURfSU5U
RU5TSVRZOF9OVic6IDB4ODcwOCwKLSAgJ0RTRFQ4X05WJzogMHg4NzA5LAotICAnRFNEVDhfTUFH
OF9OVic6IDB4ODcwQSwKLSAgJ0RTRFQ4X01BRzhfSU5URU5TSVRZOF9OVic6IDB4ODcwQiwKLSAg
J1NJR05FRF9SR0JfVU5TSUdORURfQUxQSEFfTlYnOiAweDg3MEMsCi0gICdTSUdORURfUkdCOF9V
TlNJR05FRF9BTFBIQThfTlYnOiAweDg3MEQsCi0gICdISV9TQ0FMRV9OVic6IDB4ODcwRSwKLSAg
J0xPX1NDQUxFX05WJzogMHg4NzBGLAotICAnRFNfU0NBTEVfTlYnOiAweDg3MTAsCi0gICdEVF9T
Q0FMRV9OVic6IDB4ODcxMSwKLSAgJ01BR05JVFVERV9TQ0FMRV9OVic6IDB4ODcxMiwKLSAgJ1ZJ
QlJBTkNFX1NDQUxFX05WJzogMHg4NzEzLAotICAnSElfQklBU19OVic6IDB4ODcxNCwKLSAgJ0xP
X0JJQVNfTlYnOiAweDg3MTUsCi0gICdEU19CSUFTX05WJzogMHg4NzE2LAotICAnRFRfQklBU19O
Vic6IDB4ODcxNywKLSAgJ01BR05JVFVERV9CSUFTX05WJzogMHg4NzE4LAotICAnVklCUkFOQ0Vf
QklBU19OVic6IDB4ODcxOSwKLSAgJ1RFWFRVUkVfQk9SREVSX1ZBTFVFU19OVic6IDB4ODcxQSwK
LSAgJ1RFWFRVUkVfSElfU0laRV9OVic6IDB4ODcxQiwKLSAgJ1RFWFRVUkVfTE9fU0laRV9OVic6
IDB4ODcxQywKLSAgJ1RFWFRVUkVfRFNfU0laRV9OVic6IDB4ODcxRCwKLSAgJ1RFWFRVUkVfRFRf
U0laRV9OVic6IDB4ODcxRSwKLSAgJ1RFWFRVUkVfTUFHX1NJWkVfTlYnOiAweDg3MUYsCi0gICdV
TlNJR05FRF9JTlRfUzhfUzhfOF84X05WJzogMHg4NkRBLAotICAnVU5TSUdORURfSU5UXzhfOF9T
OF9TOF9SRVZfTlYnOiAweDg2REIsCi0gICdEU0RUX01BR19JTlRFTlNJVFlfTlYnOiAweDg2REMs
Ci0gICdET1RfUFJPRFVDVF9URVhUVVJFXzNEX05WJzogMHg4NkVGLAotICAnSElMT19OVic6IDB4
ODZGNCwKLSAgJ0RTRFRfTlYnOiAweDg2RjUsCi0gICdEU0RUX01BR19OVic6IDB4ODZGNiwKLSAg
J0RTRFRfTUFHX1ZJQl9OVic6IDB4ODZGNywKLSAgJ0hJTE8xNl9OVic6IDB4ODZGOCwKLSAgJ1NJ
R05FRF9ISUxPX05WJzogMHg4NkY5LAotICAnU0lHTkVEX0hJTE8xNl9OVic6IDB4ODZGQSwKLSAg
J1NJR05FRF9SR0JBX05WJzogMHg4NkZCLAotICAnU0lHTkVEX1JHQkE4X05WJzogMHg4NkZDLAot
ICAnU0lHTkVEX1JHQl9OVic6IDB4ODZGRSwKLSAgJ1NJR05FRF9SR0I4X05WJzogMHg4NkZGLAot
ICAnU0lHTkVEX0xVTUlOQU5DRV9OVic6IDB4ODcwMSwKLSAgJ1NJR05FRF9MVU1JTkFOQ0U4X05W
JzogMHg4NzAyLAotICAnU0lHTkVEX0xVTUlOQU5DRV9BTFBIQV9OVic6IDB4ODcwMywKLSAgJ1NJ
R05FRF9MVU1JTkFOQ0U4X0FMUEhBOF9OVic6IDB4ODcwNCwKLSAgJ1NJR05FRF9BTFBIQV9OVic6
IDB4ODcwNSwKLSAgJ1NJR05FRF9BTFBIQThfTlYnOiAweDg3MDYsCi0gICdTSUdORURfSU5URU5T
SVRZX05WJzogMHg4NzA3LAotICAnU0lHTkVEX0lOVEVOU0lUWThfTlYnOiAweDg3MDgsCi0gICdE
U0RUOF9OVic6IDB4ODcwOSwKLSAgJ0RTRFQ4X01BRzhfTlYnOiAweDg3MEEsCi0gICdEU0RUOF9N
QUc4X0lOVEVOU0lUWThfTlYnOiAweDg3MEIsCi0gICdTSUdORURfUkdCX1VOU0lHTkVEX0FMUEhB
X05WJzogMHg4NzBDLAotICAnU0lHTkVEX1JHQjhfVU5TSUdORURfQUxQSEE4X05WJzogMHg4NzBE
LAotICAnT0ZGU0VUX1BST0pFQ1RJVkVfVEVYVFVSRV8yRF9OVic6IDB4ODg1MCwKLSAgJ09GRlNF
VF9QUk9KRUNUSVZFX1RFWFRVUkVfMkRfU0NBTEVfTlYnOiAweDg4NTEsCi0gICdPRkZTRVRfUFJP
SkVDVElWRV9URVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODg1MiwKLSAgJ09GRlNFVF9QUk9KRUNU
SVZFX1RFWFRVUkVfUkVDVEFOR0xFX1NDQUxFX05WJzogMHg4ODUzLAotICAnT0ZGU0VUX0hJTE9f
VEVYVFVSRV8yRF9OVic6IDB4ODg1NCwKLSAgJ09GRlNFVF9ISUxPX1RFWFRVUkVfUkVDVEFOR0xF
X05WJzogMHg4ODU1LAotICAnT0ZGU0VUX0hJTE9fUFJPSkVDVElWRV9URVhUVVJFXzJEX05WJzog
MHg4ODU2LAotICAnT0ZGU0VUX0hJTE9fUFJPSkVDVElWRV9URVhUVVJFX1JFQ1RBTkdMRV9OVic6
IDB4ODg1NywKLSAgJ0RFUEVOREVOVF9ISUxPX1RFWFRVUkVfMkRfTlYnOiAweDg4NTgsCi0gICdE
RVBFTkRFTlRfUkdCX1RFWFRVUkVfM0RfTlYnOiAweDg4NTksCi0gICdERVBFTkRFTlRfUkdCX1RF
WFRVUkVfQ1VCRV9NQVBfTlYnOiAweDg4NUEsCi0gICdET1RfUFJPRFVDVF9QQVNTX1RIUk9VR0hf
TlYnOiAweDg4NUIsCi0gICdET1RfUFJPRFVDVF9URVhUVVJFXzFEX05WJzogMHg4ODVDLAotICAn
RE9UX1BST0RVQ1RfQUZGSU5FX0RFUFRIX1JFUExBQ0VfTlYnOiAweDg4NUQsCi0gICdISUxPOF9O
Vic6IDB4ODg1RSwKLSAgJ1NJR05FRF9ISUxPOF9OVic6IDB4ODg1RiwKLSAgJ0ZPUkNFX0JMVUVf
VE9fT05FX05WJzogMHg4ODYwLAotICAnQkFDS19QUklNQVJZX0NPTE9SX05WJzogMHg4Qzc3LAot
ICAnQkFDS19TRUNPTkRBUllfQ09MT1JfTlYnOiAweDhDNzgsCi0gICdURVhUVVJFX0NPT1JEX05W
JzogMHg4Qzc5LAotICAnQ0xJUF9ESVNUQU5DRV9OVic6IDB4OEM3QSwKLSAgJ1ZFUlRFWF9JRF9O
Vic6IDB4OEM3QiwKLSAgJ1BSSU1JVElWRV9JRF9OVic6IDB4OEM3QywKLSAgJ0dFTkVSSUNfQVRU
UklCX05WJzogMHg4QzdELAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0FUVFJJQlNfTlYnOiAweDhD
N0UsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREVfTlYnOiAweDhDN0YsCi0gICdN
QVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0NPTVBPTkVOVFNfTlYnOiAweDhDODAsCi0g
ICdBQ1RJVkVfVkFSWUlOR1NfTlYnOiAweDhDODEsCi0gICdBQ1RJVkVfVkFSWUlOR19NQVhfTEVO
R1RIX05WJzogMHg4QzgyLAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdTX05WJzogMHg4
QzgzLAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVF9OVic6IDB4OEM4NCwKLSAg
J1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRV9OVic6IDB4OEM4NSwKLSAgJ1RSQU5TRk9S
TV9GRUVEQkFDS19SRUNPUkRfTlYnOiAweDhDODYsCi0gICdQUklNSVRJVkVTX0dFTkVSQVRFRF9O
Vic6IDB4OEM4NywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU5fTlYn
OiAweDhDODgsCi0gICdSQVNURVJJWkVSX0RJU0NBUkRfTlYnOiAweDhDODksCi0gICdNQVhfVFJB
TlNGT1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVOVFNfTlYnOiAweDhDOEEsCi0gICdN
QVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJQlNfTlYnOiAweDhDOEIsCi0gICdJ
TlRFUkxFQVZFRF9BVFRSSUJTX05WJzogMHg4QzhDLAotICAnU0VQQVJBVEVfQVRUUklCU19OVic6
IDB4OEM4RCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTlYnOiAweDhDOEUsCi0gICdU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkdfTlYnOiAweDhDOEYsCi0gICdWRVJURVhf
QVJSQVlfUkFOR0VfTlYnOiAweDg1MUQsCi0gICdWRVJURVhfQVJSQVlfUkFOR0VfTEVOR1RIX05W
JzogMHg4NTFFLAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX1ZBTElEX05WJzogMHg4NTFGLAotICAn
TUFYX1ZFUlRFWF9BUlJBWV9SQU5HRV9FTEVNRU5UX05WJzogMHg4NTIwLAotICAnVkVSVEVYX0FS
UkFZX1JBTkdFX1BPSU5URVJfTlYnOiAweDg1MjEsCi0gICdWRVJURVhfQVJSQVlfUkFOR0VfV0lU
SE9VVF9GTFVTSF9OVic6IDB4ODUzMywKLSAgJ1ZFUlRFWF9QUk9HUkFNX05WJzogMHg4NjIwLAot
ICAnVkVSVEVYX1NUQVRFX1BST0dSQU1fTlYnOiAweDg2MjEsCi0gICdBVFRSSUJfQVJSQVlfU0la
RV9OVic6IDB4ODYyMywKLSAgJ0FUVFJJQl9BUlJBWV9TVFJJREVfTlYnOiAweDg2MjQsCi0gICdB
VFRSSUJfQVJSQVlfVFlQRV9OVic6IDB4ODYyNSwKLSAgJ0NVUlJFTlRfQVRUUklCX05WJzogMHg4
NjI2LAotICAnUFJPR1JBTV9MRU5HVEhfTlYnOiAweDg2MjcsCi0gICdQUk9HUkFNX1NUUklOR19O
Vic6IDB4ODYyOCwKLSAgJ01PREVMVklFV19QUk9KRUNUSU9OX05WJzogMHg4NjI5LAotICAnSURF
TlRJVFlfTlYnOiAweDg2MkEsCi0gICdJTlZFUlNFX05WJzogMHg4NjJCLAotICAnVFJBTlNQT1NF
X05WJzogMHg4NjJDLAotICAnSU5WRVJTRV9UUkFOU1BPU0VfTlYnOiAweDg2MkQsCi0gICdNQVhf
VFJBQ0tfTUFUUklYX1NUQUNLX0RFUFRIX05WJzogMHg4NjJFLAotICAnTUFYX1RSQUNLX01BVFJJ
Q0VTX05WJzogMHg4NjJGLAotICAnTUFUUklYMF9OVic6IDB4ODYzMCwKLSAgJ01BVFJJWDFfTlYn
OiAweDg2MzEsCi0gICdNQVRSSVgyX05WJzogMHg4NjMyLAotICAnTUFUUklYM19OVic6IDB4ODYz
MywKLSAgJ01BVFJJWDRfTlYnOiAweDg2MzQsCi0gICdNQVRSSVg1X05WJzogMHg4NjM1LAotICAn
TUFUUklYNl9OVic6IDB4ODYzNiwKLSAgJ01BVFJJWDdfTlYnOiAweDg2MzcsCi0gICdDVVJSRU5U
X01BVFJJWF9TVEFDS19ERVBUSF9OVic6IDB4ODY0MCwKLSAgJ0NVUlJFTlRfTUFUUklYX05WJzog
MHg4NjQxLAotICAnVkVSVEVYX1BST0dSQU1fUE9JTlRfU0laRV9OVic6IDB4ODY0MiwKLSAgJ1ZF
UlRFWF9QUk9HUkFNX1RXT19TSURFX05WJzogMHg4NjQzLAotICAnUFJPR1JBTV9QQVJBTUVURVJf
TlYnOiAweDg2NDQsCi0gICdBVFRSSUJfQVJSQVlfUE9JTlRFUl9OVic6IDB4ODY0NSwKLSAgJ1BS
T0dSQU1fVEFSR0VUX05WJzogMHg4NjQ2LAotICAnUFJPR1JBTV9SRVNJREVOVF9OVic6IDB4ODY0
NywKLSAgJ1RSQUNLX01BVFJJWF9OVic6IDB4ODY0OCwKLSAgJ1RSQUNLX01BVFJJWF9UUkFOU0ZP
Uk1fTlYnOiAweDg2NDksCi0gICdWRVJURVhfUFJPR1JBTV9CSU5ESU5HX05WJzogMHg4NjRBLAot
ICAnUFJPR1JBTV9FUlJPUl9QT1NJVElPTl9OVic6IDB4ODY0QiwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVkwX05WJzogMHg4NjUwLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTFfTlYnOiAweDg2NTEs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZMl9OVic6IDB4ODY1MiwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVkzX05WJzogMHg4NjUzLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTRfTlYnOiAweDg2NTQs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZNV9OVic6IDB4ODY1NSwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVk2X05WJzogMHg4NjU2LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTdfTlYnOiAweDg2NTcs
Ci0gICdWRVJURVhfQVRUUklCX0FSUkFZOF9OVic6IDB4ODY1OCwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVk5X05WJzogMHg4NjU5LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTEwX05WJzogMHg4NjVB
LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTExX05WJzogMHg4NjVCLAotICAnVkVSVEVYX0FUVFJJ
Ql9BUlJBWTEyX05WJzogMHg4NjVDLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTEzX05WJzogMHg4
NjVELAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWTE0X05WJzogMHg4NjVFLAotICAnVkVSVEVYX0FU
VFJJQl9BUlJBWTE1X05WJzogMHg4NjVGLAotICAnTUFQMV9WRVJURVhfQVRUUklCMF80X05WJzog
MHg4NjYwLAotICAnTUFQMV9WRVJURVhfQVRUUklCMV80X05WJzogMHg4NjYxLAotICAnTUFQMV9W
RVJURVhfQVRUUklCMl80X05WJzogMHg4NjYyLAotICAnTUFQMV9WRVJURVhfQVRUUklCM180X05W
JzogMHg4NjYzLAotICAnTUFQMV9WRVJURVhfQVRUUklCNF80X05WJzogMHg4NjY0LAotICAnTUFQ
MV9WRVJURVhfQVRUUklCNV80X05WJzogMHg4NjY1LAotICAnTUFQMV9WRVJURVhfQVRUUklCNl80
X05WJzogMHg4NjY2LAotICAnTUFQMV9WRVJURVhfQVRUUklCN180X05WJzogMHg4NjY3LAotICAn
TUFQMV9WRVJURVhfQVRUUklCOF80X05WJzogMHg4NjY4LAotICAnTUFQMV9WRVJURVhfQVRUUklC
OV80X05WJzogMHg4NjY5LAotICAnTUFQMV9WRVJURVhfQVRUUklCMTBfNF9OVic6IDB4ODY2QSwK
LSAgJ01BUDFfVkVSVEVYX0FUVFJJQjExXzRfTlYnOiAweDg2NkIsCi0gICdNQVAxX1ZFUlRFWF9B
VFRSSUIxMl80X05WJzogMHg4NjZDLAotICAnTUFQMV9WRVJURVhfQVRUUklCMTNfNF9OVic6IDB4
ODY2RCwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjE0XzRfTlYnOiAweDg2NkUsCi0gICdNQVAxX1ZF
UlRFWF9BVFRSSUIxNV80X05WJzogMHg4NjZGLAotICAnTUFQMl9WRVJURVhfQVRUUklCMF80X05W
JzogMHg4NjcwLAotICAnTUFQMl9WRVJURVhfQVRUUklCMV80X05WJzogMHg4NjcxLAotICAnTUFQ
Ml9WRVJURVhfQVRUUklCMl80X05WJzogMHg4NjcyLAotICAnTUFQMl9WRVJURVhfQVRUUklCM180
X05WJzogMHg4NjczLAotICAnTUFQMl9WRVJURVhfQVRUUklCNF80X05WJzogMHg4Njc0LAotICAn
TUFQMl9WRVJURVhfQVRUUklCNV80X05WJzogMHg4Njc1LAotICAnTUFQMl9WRVJURVhfQVRUUklC
Nl80X05WJzogMHg4Njc2LAotICAnTUFQMl9WRVJURVhfQVRUUklCN180X05WJzogMHg4Njc3LAot
ICAnTUFQMl9WRVJURVhfQVRUUklCOF80X05WJzogMHg4Njc4LAotICAnTUFQMl9WRVJURVhfQVRU
UklCOV80X05WJzogMHg4Njc5LAotICAnTUFQMl9WRVJURVhfQVRUUklCMTBfNF9OVic6IDB4ODY3
QSwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjExXzRfTlYnOiAweDg2N0IsCi0gICdNQVAyX1ZFUlRF
WF9BVFRSSUIxMl80X05WJzogMHg4NjdDLAotICAnTUFQMl9WRVJURVhfQVRUUklCMTNfNF9OVic6
IDB4ODY3RCwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjE0XzRfTlYnOiAweDg2N0UsCi0gICdNQVAy
X1ZFUlRFWF9BVFRSSUIxNV80X05WJzogMHg4NjdGLAotICAnTUFYX1BST0dSQU1fRVhFQ19JTlNU
UlVDVElPTlNfTlYnOiAweDg4RjQsCi0gICdNQVhfUFJPR1JBTV9DQUxMX0RFUFRIX05WJzogMHg4
OEY1LAotICAnTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTX0FSQic6IDB4OEI0QywKLSAg
J0JZVEUnOiAweDE0MDAsCi0gICdQQUxFVFRFNF9SR0I4X09FUyc6IDB4OEI5MCwKLSAgJ1BBTEVU
VEU0X1JHQkE4X09FUyc6IDB4OEI5MSwKLSAgJ1BBTEVUVEU0X1I1X0c2X0I1X09FUyc6IDB4OEI5
MiwKLSAgJ1BBTEVUVEU0X1JHQkE0X09FUyc6IDB4OEI5MywKLSAgJ1BBTEVUVEU0X1JHQjVfQTFf
T0VTJzogMHg4Qjk0LAotICAnUEFMRVRURThfUkdCOF9PRVMnOiAweDhCOTUsCi0gICdQQUxFVFRF
OF9SR0JBOF9PRVMnOiAweDhCOTYsCi0gICdQQUxFVFRFOF9SNV9HNl9CNV9PRVMnOiAweDhCOTcs
Ci0gICdQQUxFVFRFOF9SR0JBNF9PRVMnOiAweDhCOTgsCi0gICdQQUxFVFRFOF9SR0I1X0ExX09F
Uyc6IDB4OEI5OSwKLSAgJ0lNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRV9PRVMnOiAweDhC
OUEsCi0gICdJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVF9PRVMnOiAweDhCOUIsCi0g
ICdJTlRFUkxBQ0VfT01MJzogMHg4OTgwLAotICAnSU5URVJMQUNFX1JFQURfT01MJzogMHg4OTgx
LAotICAnUEFDS19SRVNBTVBMRV9PTUwnOiAweDg5ODQsCi0gICdVTlBBQ0tfUkVTQU1QTEVfT01M
JzogMHg4OTg1LAotICAnUkVTQU1QTEVfUkVQTElDQVRFX09NTCc6IDB4ODk4NiwKLSAgJ1JFU0FN
UExFX1pFUk9fRklMTF9PTUwnOiAweDg5ODcsCi0gICdSRVNBTVBMRV9BVkVSQUdFX09NTCc6IDB4
ODk4OCwKLSAgJ1JFU0FNUExFX0RFQ0lNQVRFX09NTCc6IDB4ODk4OSwKLSAgJ0ZPUk1BVF9TVUJT
QU1QTEVfMjRfMjRfT01MJzogMHg4OTgyLAotICAnRk9STUFUX1NVQlNBTVBMRV8yNDRfMjQ0X09N
TCc6IDB4ODk4MywKLSAgJ1ZFUlRFWDIzX0JJVF9QR0knOiAweDAwMDAwMDA0LAotICAnVkVSVEVY
NF9CSVRfUEdJJzogMHgwMDAwMDAwOCwKLSAgJ0NPTE9SM19CSVRfUEdJJzogMHgwMDAxMDAwMCwK
LSAgJ0NPTE9SNF9CSVRfUEdJJzogMHgwMDAyMDAwMCwKLSAgJ0VER0VGTEFHX0JJVF9QR0knOiAw
eDAwMDQwMDAwLAotICAnSU5ERVhfQklUX1BHSSc6IDB4MDAwODAwMDAsCi0gICdNQVRfQU1CSUVO
VF9CSVRfUEdJJzogMHgwMDEwMDAwMCwKLSAgJ01BVF9BTUJJRU5UX0FORF9ESUZGVVNFX0JJVF9Q
R0knOiAweDAwMjAwMDAwLAotICAnTUFUX0RJRkZVU0VfQklUX1BHSSc6IDB4MDA0MDAwMDAsCi0g
ICdNQVRfRU1JU1NJT05fQklUX1BHSSc6IDB4MDA4MDAwMDAsCi0gICdNQVRfQ09MT1JfSU5ERVhF
U19CSVRfUEdJJzogMHgwMTAwMDAwMCwKLSAgJ01BVF9TSElOSU5FU1NfQklUX1BHSSc6IDB4MDIw
MDAwMDAsCi0gICdNQVRfU1BFQ1VMQVJfQklUX1BHSSc6IDB4MDQwMDAwMDAsCi0gICdOT1JNQUxf
QklUX1BHSSc6IDB4MDgwMDAwMDAsCi0gICdURVhDT09SRDFfQklUX1BHSSc6IDB4MTAwMDAwMDAs
Ci0gICdURVhDT09SRDJfQklUX1BHSSc6IDB4MjAwMDAwMDAsCi0gICdURVhDT09SRDNfQklUX1BH
SSc6IDB4NDAwMDAwMDAsCi0gICdURVhDT09SRDRfQklUX1BHSSc6IDB4ODAwMDAwMDAsCi0gICdT
Q1JFRU5fQ09PUkRJTkFURVNfUkVORCc6IDB4ODQ5MCwKLSAgJ0lOVkVSVEVEX1NDUkVFTl9XX1JF
TkQnOiAweDg0OTEsCi0gICdSR0JfUzNUQyc6IDB4ODNBMCwKLSAgJ1JHQjRfUzNUQyc6IDB4ODNB
MSwKLSAgJ1JHQkFfUzNUQyc6IDB4ODNBMiwKLSAgJ1JHQkE0X1MzVEMnOiAweDgzQTMsCi0gICdS
R0JBX0RYVDVfUzNUQyc6IDB4ODNBNCwKLSAgJ1JHQkE0X0RYVDVfUzNUQyc6IDB4ODNBNSwKLSAg
J0VYVEVOREVEX1JBTkdFX1NHSVMnOiAweDg1QTUsCi0gICdNSU5fUkVEX1NHSVMnOiAweDg1QTYs
Ci0gICdNQVhfUkVEX1NHSVMnOiAweDg1QTcsCi0gICdNSU5fR1JFRU5fU0dJUyc6IDB4ODVBOCwK
LSAgJ01BWF9HUkVFTl9TR0lTJzogMHg4NUE5LAotICAnTUlOX0JMVUVfU0dJUyc6IDB4ODVBQSwK
LSAgJ01BWF9CTFVFX1NHSVMnOiAweDg1QUIsCi0gICdNSU5fQUxQSEFfU0dJUyc6IDB4ODVBQywK
LSAgJ01BWF9BTFBIQV9TR0lTJzogMHg4NUFELAotICAnR0VORVJBVEVfTUlQTUFQX1NHSVMnOiAw
eDgxOTEsCi0gICdHRU5FUkFURV9NSVBNQVBfSElOVF9TR0lTJzogMHg4MTkyLAotICAnTVVMVElT
QU1QTEVfU0dJUyc6IDB4ODA5RCwKLSAgJ1NBTVBMRV9BTFBIQV9UT19NQVNLX1NHSVMnOiAweDgw
OUUsCi0gICdTQU1QTEVfQUxQSEFfVE9fT05FX1NHSVMnOiAweDgwOUYsCi0gICdTQU1QTEVfTUFT
S19TR0lTJzogMHg4MEEwLAotICAnMVBBU1NfU0dJUyc6IDB4ODBBMSwKLSAgJzJQQVNTXzBfU0dJ
Uyc6IDB4ODBBMiwKLSAgJzJQQVNTXzFfU0dJUyc6IDB4ODBBMywKLSAgJzRQQVNTXzBfU0dJUyc6
IDB4ODBBNCwKLSAgJzRQQVNTXzFfU0dJUyc6IDB4ODBBNSwKLSAgJzRQQVNTXzJfU0dJUyc6IDB4
ODBBNiwKLSAgJzRQQVNTXzNfU0dJUyc6IDB4ODBBNywKLSAgJ1NBTVBMRV9CVUZGRVJTX1NHSVMn
OiAweDgwQTgsCi0gICdTQU1QTEVTX1NHSVMnOiAweDgwQTksCi0gICdTQU1QTEVfTUFTS19WQUxV
RV9TR0lTJzogMHg4MEFBLAotICAnU0FNUExFX01BU0tfSU5WRVJUX1NHSVMnOiAweDgwQUIsCi0g
ICdTQU1QTEVfUEFUVEVSTl9TR0lTJzogMHg4MEFDLAotICAnTVVMVElTQU1QTEVfQklUX0VYVCc6
IDB4MjAwMDAwMDAsCi0gICdFWUVfRElTVEFOQ0VfVE9fUE9JTlRfU0dJUyc6IDB4ODFGMCwKLSAg
J09CSkVDVF9ESVNUQU5DRV9UT19QT0lOVF9TR0lTJzogMHg4MUYxLAotICAnRVlFX0RJU1RBTkNF
X1RPX0xJTkVfU0dJUyc6IDB4ODFGMiwKLSAgJ09CSkVDVF9ESVNUQU5DRV9UT19MSU5FX1NHSVMn
OiAweDgxRjMsCi0gICdFWUVfUE9JTlRfU0dJUyc6IDB4ODFGNCwKLSAgJ09CSkVDVF9QT0lOVF9T
R0lTJzogMHg4MUY1LAotICAnRVlFX0xJTkVfU0dJUyc6IDB4ODFGNiwKLSAgJ09CSkVDVF9MSU5F
X1NHSVMnOiAweDgxRjcsCi0gICdDTEFNUF9UT19CT1JERVJfU0dJUyc6IDB4ODEyRCwKLSAgJ0NM
QU1QX1RPX0VER0VfU0dJUyc6IDB4ODEyRiwKLSAgJ1RFWFRVUkVfTUlOX0xPRF9TR0lTJzogMHg4
MTNBLAotICAnVEVYVFVSRV9NQVhfTE9EX1NHSVMnOiAweDgxM0IsCi0gICdURVhUVVJFX0JBU0Vf
TEVWRUxfU0dJUyc6IDB4ODEzQywKLSAgJ1RFWFRVUkVfTUFYX0xFVkVMX1NHSVMnOiAweDgxM0Qs
Ci0gICdBU1lOQ19NQVJLRVJfU0dJWCc6IDB4ODMyOSwKLSAgJ0FTWU5DX0hJU1RPR1JBTV9TR0lY
JzogMHg4MzJDLAotICAnTUFYX0FTWU5DX0hJU1RPR1JBTV9TR0lYJzogMHg4MzJELAotICAnQVNZ
TkNfVEVYX0lNQUdFX1NHSVgnOiAweDgzNUMsCi0gICdBU1lOQ19EUkFXX1BJWEVMU19TR0lYJzog
MHg4MzVELAotICAnQVNZTkNfUkVBRF9QSVhFTFNfU0dJWCc6IDB4ODM1RSwKLSAgJ01BWF9BU1lO
Q19URVhfSU1BR0VfU0dJWCc6IDB4ODM1RiwKLSAgJ01BWF9BU1lOQ19EUkFXX1BJWEVMU19TR0lY
JzogMHg4MzYwLAotICAnTUFYX0FTWU5DX1JFQURfUElYRUxTX1NHSVgnOiAweDgzNjEsCi0gICdB
TFBIQV9NSU5fU0dJWCc6IDB4ODMyMCwKLSAgJ0FMUEhBX01BWF9TR0lYJzogMHg4MzIxLAotICAn
Q09OVk9MVVRJT05fSElOVF9TR0lYJzogMHg4MzE2LAotICAnREVQVEhfQ09NUE9ORU5UMTZfU0dJ
WCc6IDB4ODFBNSwKLSAgJ0RFUFRIX0NPTVBPTkVOVDI0X1NHSVgnOiAweDgxQTYsCi0gICdERVBU
SF9DT01QT05FTlQzMl9TR0lYJzogMHg4MUE3LAotICAnRk9HX09GRlNFVF9TR0lYJzogMHg4MTk4
LAotICAnRk9HX09GRlNFVF9WQUxVRV9TR0lYJzogMHg4MTk5LAotICAnSU5URVJMQUNFX1NHSVgn
OiAweDgwOTQsCi0gICdQQUNLX1JFU0FNUExFX1NHSVgnOiAweDg0MkUsCi0gICdVTlBBQ0tfUkVT
QU1QTEVfU0dJWCc6IDB4ODQyRiwKLSAgJ1JFU0FNUExFX0RFQ0lNQVRFX1NHSVgnOiAweDg0MzAs
Ci0gICdSRVNBTVBMRV9SRVBMSUNBVEVfU0dJWCc6IDB4ODQzMywKLSAgJ1JFU0FNUExFX1pFUk9f
RklMTF9TR0lYJzogMHg4NDM0LAotICAnVEVYVFVSRV9DT01QQVJFX1NHSVgnOiAweDgxOUEsCi0g
ICdURVhUVVJFX0NPTVBBUkVfT1BFUkFUT1JfU0dJWCc6IDB4ODE5QiwKLSAgJ1RFWFRVUkVfTEVR
VUFMX1JfU0dJWCc6IDB4ODE5QywKLSAgJ1RFWFRVUkVfR0VRVUFMX1JfU0dJWCc6IDB4ODE5RCwK
LSAgJ1NIQURPV19BTUJJRU5UX1NHSVgnOiAweDgwQkYsCi0gICdURVhUVVJFX01BWF9DTEFNUF9T
X1NHSVgnOiAweDgzNjksCi0gICdURVhUVVJFX01BWF9DTEFNUF9UX1NHSVgnOiAweDgzNkEsCi0g
ICdURVhUVVJFX01BWF9DTEFNUF9SX1NHSVgnOiAweDgzNkIsCi0gICdURVhUVVJFX01VTFRJX0JV
RkZFUl9ISU5UX1NHSVgnOiAweDgxMkUsCi0gICdSR0JfU0lHTkVEX1NHSVgnOiAweDg1RTAsCi0g
ICdSR0JBX1NJR05FRF9TR0lYJzogMHg4NUUxLAotICAnQUxQSEFfU0lHTkVEX1NHSVgnOiAweDg1
RTIsCi0gICdMVU1JTkFOQ0VfU0lHTkVEX1NHSVgnOiAweDg1RTMsCi0gICdJTlRFTlNJVFlfU0lH
TkVEX1NHSVgnOiAweDg1RTQsCi0gICdMVU1JTkFOQ0VfQUxQSEFfU0lHTkVEX1NHSVgnOiAweDg1
RTUsCi0gICdSR0IxNl9TSUdORURfU0dJWCc6IDB4ODVFNiwKLSAgJ1JHQkExNl9TSUdORURfU0dJ
WCc6IDB4ODVFNywKLSAgJ0FMUEhBMTZfU0lHTkVEX1NHSVgnOiAweDg1RTgsCi0gICdMVU1JTkFO
Q0UxNl9TSUdORURfU0dJWCc6IDB4ODVFOSwKLSAgJ0lOVEVOU0lUWTE2X1NJR05FRF9TR0lYJzog
MHg4NUVBLAotICAnTFVNSU5BTkNFMTZfQUxQSEExNl9TSUdORURfU0dJWCc6IDB4ODVFQiwKLSAg
J1JHQl9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUVDLAotICAnUkdCQV9FWFRFTkRFRF9SQU5H
RV9TR0lYJzogMHg4NUVELAotICAnQUxQSEFfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVFRSwK
LSAgJ0xVTUlOQU5DRV9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUVGLAotICAnSU5URU5TSVRZ
X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjAsCi0gICdMVU1JTkFOQ0VfQUxQSEFfRVhURU5E
RURfUkFOR0VfU0dJWCc6IDB4ODVGMSwKLSAgJ1JHQjE2X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAw
eDg1RjIsCi0gICdSR0JBMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGMywKLSAgJ0FMUEhB
MTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGNCwKLSAgJ0xVTUlOQU5DRTE2X0VYVEVOREVE
X1JBTkdFX1NHSVgnOiAweDg1RjUsCi0gICdJTlRFTlNJVFkxNl9FWFRFTkRFRF9SQU5HRV9TR0lY
JzogMHg4NUY2LAotICAnTFVNSU5BTkNFMTZfQUxQSEExNl9FWFRFTkRFRF9SQU5HRV9TR0lYJzog
MHg4NUY3LAotICAnTUlOX0xVTUlOQU5DRV9TR0lTJzogMHg4NUY4LAotICAnTUFYX0xVTUlOQU5D
RV9TR0lTJzogMHg4NUY5LAotICAnTUlOX0lOVEVOU0lUWV9TR0lTJzogMHg4NUZBLAotICAnTUFY
X0lOVEVOU0lUWV9TR0lTJzogMHg4NUZCLAotICAnUE9TVF9URVhUVVJFX0ZJTFRFUl9CSUFTX1NH
SVgnOiAweDgxNzksCi0gICdQT1NUX1RFWFRVUkVfRklMVEVSX1NDQUxFX1NHSVgnOiAweDgxN0Es
Ci0gICdQT1NUX1RFWFRVUkVfRklMVEVSX0JJQVNfUkFOR0VfU0dJWCc6IDB4ODE3QiwKLSAgJ1BP
U1RfVEVYVFVSRV9GSUxURVJfU0NBTEVfUkFOR0VfU0dJWCc6IDB4ODE3QywKLSAgJ1ZFUlRFWF9Q
UkVDTElQX1NHSVgnOiAweDgzRUUsCi0gICdWRVJURVhfUFJFQ0xJUF9ISU5UX1NHSVgnOiAweDgz
RUYsCi0gICdWRVJURVhfUFJFQ0xJUF9TR0lYJzogMHg4M0VFLAotICAnVkVSVEVYX1BSRUNMSVBf
SElOVF9TR0lYJzogMHg4M0VGLAotICAnQ09MT1JfTUFUUklYX1NHSSc6IDB4ODBCMSwKLSAgJ0NP
TE9SX01BVFJJWF9TVEFDS19ERVBUSF9TR0knOiAweDgwQjIsCi0gICdNQVhfQ09MT1JfTUFUUklY
X1NUQUNLX0RFUFRIX1NHSSc6IDB4ODBCMywKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX1JFRF9TQ0FM
RV9TR0knOiAweDgwQjQsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9HUkVFTl9TQ0FMRV9TR0knOiAw
eDgwQjUsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX1NDQUxFX1NHSSc6IDB4ODBCNiwKLSAg
J1BPU1RfQ09MT1JfTUFUUklYX0FMUEhBX1NDQUxFX1NHSSc6IDB4ODBCNywKLSAgJ1BPU1RfQ09M
T1JfTUFUUklYX1JFRF9CSUFTX1NHSSc6IDB4ODBCOCwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0dS
RUVOX0JJQVNfU0dJJzogMHg4MEI5LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQkxVRV9CSUFTX1NH
SSc6IDB4ODBCQSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0FMUEhBX0JJQVNfU0dJJzogMHg4MEJC
LAotICAnQ09MT1JfVEFCTEVfU0dJJzogMHg4MEQwLAotICAnUE9TVF9DT05WT0xVVElPTl9DT0xP
Ul9UQUJMRV9TR0knOiAweDgwRDEsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9DT0xPUl9UQUJMRV9T
R0knOiAweDgwRDIsCi0gICdQUk9YWV9DT0xPUl9UQUJMRV9TR0knOiAweDgwRDMsCi0gICdQUk9Y
WV9QT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBENCwKLSAgJ1BST1hZX1BP
U1RfQ09MT1JfTUFUUklYX0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBENSwKLSAgJ0NPTE9SX1RBQkxF
X1NDQUxFX1NHSSc6IDB4ODBENiwKLSAgJ0NPTE9SX1RBQkxFX0JJQVNfU0dJJzogMHg4MEQ3LAot
ICAnQ09MT1JfVEFCTEVfRk9STUFUX1NHSSc6IDB4ODBEOCwKLSAgJ0NPTE9SX1RBQkxFX1dJRFRI
X1NHSSc6IDB4ODBEOSwKLSAgJ0NPTE9SX1RBQkxFX1JFRF9TSVpFX1NHSSc6IDB4ODBEQSwKLSAg
J0NPTE9SX1RBQkxFX0dSRUVOX1NJWkVfU0dJJzogMHg4MERCLAotICAnQ09MT1JfVEFCTEVfQkxV
RV9TSVpFX1NHSSc6IDB4ODBEQywKLSAgJ0NPTE9SX1RBQkxFX0FMUEhBX1NJWkVfU0dJJzogMHg4
MERELAotICAnQ09MT1JfVEFCTEVfTFVNSU5BTkNFX1NJWkVfU0dJJzogMHg4MERFLAotICAnQ09M
T1JfVEFCTEVfSU5URU5TSVRZX1NJWkVfU0dJJzogMHg4MERGLAotICAnVEVYVFVSRV9DT0xPUl9U
QUJMRV9TR0knOiAweDgwQkMsCi0gICdQUk9YWV9URVhUVVJFX0NPTE9SX1RBQkxFX1NHSSc6IDB4
ODBCRCwKLSAgJ1VOUEFDS19DT05TVEFOVF9EQVRBX1NVTlgnOiAweDgxRDUsCi0gICdURVhUVVJF
X0NPTlNUQU5UX0RBVEFfU1VOWCc6IDB4ODFENiwKLSAgJ1dSQVBfQk9SREVSX1NVTic6IDB4ODFE
NCwKLSAgJ0dMT0JBTF9BTFBIQV9TVU4nOiAweDgxRDksCi0gICdHTE9CQUxfQUxQSEFfRkFDVE9S
X1NVTic6IDB4ODFEQSwKLSAgJ1FVQURfTUVTSF9TVU4nOiAweDg2MTQsCi0gICdUUklBTkdMRV9N
RVNIX1NVTic6IDB4ODYxNSwKLSAgJ1NMSUNFX0FDQ1VNX1NVTic6IDB4ODVDQywKLSAgJ1JFU1RB
UlRfU1VOJzogMHgwMSwKLSAgJ1JFUExBQ0VfTUlERExFX1NVTic6IDB4MDIsCi0gICdSRVBMQUNF
X09MREVTVF9TVU4nOiAweDAzLAotICAnVFJJQU5HTEVfTElTVF9TVU4nOiAweDgxRDcsCi0gICdS
RVBMQUNFTUVOVF9DT0RFX1NVTic6IDB4ODFEOCwKLSAgJ1JFUExBQ0VNRU5UX0NPREVfQVJSQVlf
U1VOJzogMHg4NUMwLAotICAnUkVQTEFDRU1FTlRfQ09ERV9BUlJBWV9UWVBFX1NVTic6IDB4ODVD
MSwKLSAgJ1JFUExBQ0VNRU5UX0NPREVfQVJSQVlfU1RSSURFX1NVTic6IDB4ODVDMiwKLSAgJ1JF
UExBQ0VNRU5UX0NPREVfQVJSQVlfUE9JTlRFUl9TVU4nOiAweDg1QzMsCi0gICdSMVVJX1YzRl9T
VU4nOiAweDg1QzQsCi0gICdSMVVJX0M0VUJfVjNGX1NVTic6IDB4ODVDNSwKLSAgJ1IxVUlfQzNG
X1YzRl9TVU4nOiAweDg1QzYsCi0gICdSMVVJX04zRl9WM0ZfU1VOJzogMHg4NUM3LAotICAnUjFV
SV9DNEZfTjNGX1YzRl9TVU4nOiAweDg1QzgsCi0gICdSMVVJX1QyRl9WM0ZfU1VOJzogMHg4NUM5
LAotICAnUjFVSV9UMkZfTjNGX1YzRl9TVU4nOiAweDg1Q0EsCi0gICdSMVVJX1QyRl9DNEZfTjNG
X1YzRl9TVU4nOiAweDg1Q0IsCi0gICdQSE9OR19XSU4nOiAweDgwRUEsCi0gICdQSE9OR19ISU5U
X1dJTic6IDB4ODBFQiwKLSAgJ0ZPR19TUEVDVUxBUl9URVhUVVJFX1dJTic6IDB4ODBFQwotfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ1YTQw
ZmUyZmI2NzM5Y2MxZTQyYjhlNGQwOWQxMmJhN2ZlOTI3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEy
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBv
ZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0
cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBN
YXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklM
SVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJ
QUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0K
LXNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7Ci1kZWJ1ZygnPGJyIC8+PHNwYW4g
Y2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Ci1ub3RpZnlGaW5pc2hlZFRvSGFy
bmVzcygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
ODQ5NTZlZDQ4YWFmOGJkMmE4ZDM4MDNmZDdlZTYzMTBjYTI4NGM1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDg1ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgot
Ki8KLQotKGZ1bmN0aW9uKCkgewotICB2YXIgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IGZhbHNl
OwotCi0gIHZhciBpbml0Tm9uS2hyb25vc0ZyYW1ld29yayA9IGZ1bmN0aW9uKHdhaXRVbnRpbERv
bmUpIHsKLSAgICBpZiAodGVzdEhhcm5lc3NJbml0aWFsaXplZCkgewotICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gdHJ1ZTsKLQotICAgIC8qIC0tIHBs
YWZvcm0gc3BlY2lmaWMgY29kZSAtLSAqLwotCi0gICAgLy8gV2ViS2l0IFNwZWNpZmljIGNvZGUu
IEFkZCB5b3VyIGNvZGUgaGVyZS4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyID0gd2luZG93LnRlc3RSdW5uZXI7Ci0gICAgfQotCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAg
ICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgLy8gVGhlIFdlYktpdCB0ZXN0aW5nIHN5
c3RlbSBjb21wYXJlcyBjb25zb2xlIG91dHB1dC4KLSAgICAgIC8vIEJlY2F1c2UgdGhlIG91dHB1
dCBvZiB0aGUgV2ViR0wgVGVzdHMgaXMgR1BVIGRlcGVuZGVudAotICAgICAgLy8gd2UgdHVybiBv
ZmYgY29uc29sZSBtZXNzYWdlcy4KLSAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyA9IGZ1bmN0aW9u
KCkgeyB9OwotICAgICAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKLSAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFi
bGVkKGZhbHNlKTsKLQotICAgICAgLy8gUkFGIGRvZXNuJ3Qgd29yayBpbiBMYXlvdXRUZXN0cy4g
RGlzYWJsZSBpdCBzbyB0aGUgdGVzdHMgd2lsbAotICAgICAgLy8gdXNlIHNldFRpbWVvdXQgaW5z
dGVhZC4KLSAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB1bmRlZmluZWQ7Ci0g
ICAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOwotICAg
IH0KLQotICAgIC8qIC0tIGVuZCBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIC0tKi8KLSAgfQotCi0g
IHRoaXMuaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSA9IGZ1bmN0aW9uKCkgewotICAg
IGluaXROb25LaHJvbm9zRnJhbWV3b3JrKHRydWUpOwotICB9Ci0KLSAgdGhpcy5pbml0VGVzdGlu
Z0hhcm5lc3MgPSBmdW5jdGlvbigpIHsKLSAgICBpbml0Tm9uS2hyb25vc0ZyYW1ld29yayhmYWxz
ZSk7Ci0gIH0KLX0oKSk7Ci0KLWZ1bmN0aW9uIG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25l
KCkgewotICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgotICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9I
YXJuZXNzKHN1Y2Nlc3MsIG1zZykgewotICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJu
ZXNzKSB7Ci0gICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMo
d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOwotICB9Ci19Ci0KLWZ1bmN0
aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgewotICBpZiAod2luZG93LnBhcmVudC53ZWJn
bFRlc3RIYXJuZXNzKSB7Ci0gICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlm
eUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7Ci0gIH0KLSAgaWYgKHdpbmRvdy5u
b25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSkgewotICAgIHdpbmRvdy5ub25LaHJvbm9zRnJh
bWV3b3JrTm90aWZ5RG9uZSgpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGRlc2NyaXB0aW9uKG1zZykK
LXsKLSAgICBpbml0VGVzdGluZ0hhcm5lc3MoKTsKLSAgICBpZiAobXNnID09PSB1bmRlZmluZWQp
IHsKLSAgICAgIG1zZyA9IGRvY3VtZW50LnRpdGxlOwotICAgIH0KLSAgICAvLyBGb3IgTVNJRSA2
IGNvbXBhdGliaWxpdHkKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKLSAgICBzcGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNnICsgJzwvcD48cD5PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9z
cGFuPiIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01Q
TEVURTwvc3Bhbj4iLjwvcD4nOwotICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpOwotICAgIGlmIChkZXNjcmlwdGlvbi5maXJzdENoaWxk
KQotICAgICAgICBkZXNjcmlwdGlvbi5yZXBsYWNlQ2hpbGQoc3BhbiwgZGVzY3JpcHRpb24uZmly
c3RDaGlsZCk7Ci0gICAgZWxzZQotICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZChzcGFu
KTsKLX0KLQotZnVuY3Rpb24gZGVidWcobXNnKQotewotICAgIHZhciBzcGFuID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7IC8vIGluc2VydCBpdCBmaXJzdCBzbyBYSFRNTCBrbm93
cyB0aGUgbmFtZXNwYWNlCi0gICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsKLX0K
LQotZnVuY3Rpb24gZXNjYXBlSFRNTCh0ZXh0KQotewotICAgIHJldHVybiB0ZXh0LnJlcGxhY2Uo
LyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpOwotfQotCi1mdW5jdGlvbiB0ZXN0
UGFzc2VkKG1zZykKLXsKLSAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyh0cnVlLCBtc2cp
OwotICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVz
Y2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGYWlsZWQobXNn
KQotewotICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKGZhbHNlLCBtc2cpOwotICAgIGRl
YnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVzY2FwZUhUTUwo
bXNnKSArICc8L3NwYW4+Jyk7Ci19Ci0KLWZ1bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9hLCBfYikK
LXsKLSAgICB0cnkgewotICAgICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2EubGVu
Z3RoOyBpKyspCi0gICAgICAgICAgICBpZiAoX2FbaV0gIT09IF9iW2ldKQotICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGNhdGNoIChleCkgewotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBpc01pbnVzWmVybyhu
KQotewotICAgIC8vIHRoZSBvbmx5IHdheSB0byB0ZWxsIDAgZnJvbSAtMCBpbiBKUyBpcyB0aGUg
ZmFjdCB0aGF0IDEvLTAgaXMKLSAgICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0eQot
ICAgIHJldHVybiBuID09PSAwICYmIDEvbiA8IDA7Ci19Ci0KLWZ1bmN0aW9uIGlzUmVzdWx0Q29y
cmVjdChfYWN0dWFsLCBfZXhwZWN0ZWQpCi17Ci0gICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKLSAg
ICAgICAgcmV0dXJuIF9hY3R1YWwgPT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0gKDEv
X2V4cGVjdGVkKTsKLSAgICBpZiAoX2FjdHVhbCA9PT0gX2V4cGVjdGVkKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBpZiAodHlwZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNOYU4o
X2V4cGVjdGVkKSkKLSAgICAgICAgcmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVyIiAm
JiBpc05hTihfYWN0dWFsKTsKLSAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KF9leHBlY3RlZCkgPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkKLSAgICAg
ICAgcmV0dXJuIGFyZUFycmF5c0VxdWFsKF9hY3R1YWwsIF9leHBlY3RlZCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi1mdW5jdGlvbiBzdHJpbmdpZnkodikKLXsKLSAgICBpZiAodiA9PT0gMCAm
JiAxL3YgPCAwKQotICAgICAgICByZXR1cm4gIi0wIjsKLSAgICBlbHNlIHJldHVybiAiIiArIHY7
Ci19Ci0KLWZ1bmN0aW9uIGV2YWxBbmRMb2coX2EpCi17Ci0gIGlmICh0eXBlb2YgX2EgIT0gInN0
cmluZyIpCi0gICAgZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJn
dW1lbnQiKTsKLQotICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jv
bmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2ZW50LgotICBkZWJ1ZyhfYSk7Ci0KLSAgdmFyIF9h
djsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICB0
ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOwotICB9Ci0gIHJldHVybiBf
YXY7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVpZXQpCi17Ci0gICAgaWYgKHR5
cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgICAgIGRl
YnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwotICAgIHZh
ciBleGNlcHRpb247Ci0gICAgdmFyIF9hdjsKLSAgICB0cnkgewotICAgICAgICBfYXYgPSBldmFs
KF9hKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGV4Y2VwdGlvbiA9IGU7Ci0gICAgfQot
ICAgIHZhciBfYnYgPSBldmFsKF9iKTsKLQotICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOwotICAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsK
LSAgICAgICAgaWYgKCFxdWlldCkgewotICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMg
IiArIF9iKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9m
KF9idikpCi0gICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4g
V2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYg
KyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Ci19
Ci0KLWZ1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBfYiwgcXVpZXQpCi17Ci0gICAgaWYgKHR5cGVv
ZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCi0gICAgICAgIGRlYnVn
KCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwotICAgIHZh
ciBleGNlcHRpb247Ci0gICAgdmFyIF9hdjsKLSAgICB0cnkgewotICAgICAgICBfYXYgPSBldmFs
KF9hKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGV4Y2VwdGlvbiA9IGU7Ci0gICAgfQot
ICAgIHZhciBfYnYgPSBldmFsKF9iKTsKLQotICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlv
biAiICsgZXhjZXB0aW9uKTsKLSAgICBlbHNlIGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2
KSkgewotICAgICAgICBpZiAoIXF1aWV0KSB7Ci0gICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsg
IiBpcyBub3QgIiArIF9iKTsKLSAgICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiIpOwotfQotCi1mdW5jdGlvbiBz
aG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0KLWZ1bmN0aW9uIHNob3Vs
ZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9Ci1mdW5jdGlvbiBzaG91bGRC
ZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9Ci1mdW5jdGlvbiBzaG91bGRCZU51bGwo
X2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KLQotZnVuY3Rpb24gc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKGEsIGIpCi17Ci0gIHZhciB1bmV2YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFjZSgv
Ii9nLCAiXCIiKSArICciJzsKLSAgc2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOwotfQotCi1m
dW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgLy8gQSBnZW5l
cmFsLXB1cnBvc2UgY29tcGFyYXRvci4gICdhY3R1YWwnIHNob3VsZCBiZSBhIHN0cmluZyB0byBi
ZQotICAvLyBldmFsdWF0ZWQsIGFzIGZvciBzaG91bGRCZSgpLiAnZXhwZWN0ZWQnIG1heSBiZSBh
bnkgdHlwZSBhbmQgd2lsbCBiZQotICAvLyB1c2VkIHdpdGhvdXQgYmVpbmcgZXZhbCdlZC4KLSAg
aWYgKGV4cGVjdGVkID09IG51bGwpIHsKLSAgICAvLyBEbyB0aGlzIGJlZm9yZSB0aGUgb2JqZWN0
IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlwZSAnb2JqZWN0Jy4KLSAgICBzaG91bGRCZU51bGwo
YWN0dWFsKTsKLSAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gInVuZGVmaW5lZCIpIHsK
LSAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1YWwpOwotICB9IGVsc2UgaWYgKHR5cGVvZiBleHBl
Y3RlZCA9PSAiZnVuY3Rpb24iKSB7Ci0gICAgLy8gQWxsIHRoaXMgZnVzcyBpcyB0byBhdm9pZCB0
aGUgc3RyaW5nLWFyZyB3YXJuaW5nIGZyb20gc2hvdWxkQmUoKS4KLSAgICB0cnkgewotICAgICAg
YWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgdGVz
dEZhaWxlZCgiRXZhbHVhdGluZyAiICsgYWN0dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIgKyBl
KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFsdWUu
dG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIsCi0gICAgICAgICAgICAgIiciICsg
ZXhwZWN0ZWQudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIpOwotICB9IGVsc2Ug
aWYgKHR5cGVvZiBleHBlY3RlZCA9PSAib2JqZWN0IikgewotICAgIHNob3VsZEJlVHJ1ZShhY3R1
YWwgKyAiID09ICciICsgZXhwZWN0ZWQgKyAiJyIpOwotICB9IGVsc2UgaWYgKHR5cGVvZiBleHBl
Y3RlZCA9PSAic3RyaW5nIikgewotICAgIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOwotICB9
IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiYm9vbGVhbiIpIHsKLSAgICBzaG91bGRCZSgi
dHlwZW9mICIgKyBhY3R1YWwsICInYm9vbGVhbiciKTsKLSAgICBpZiAoZXhwZWN0ZWQpCi0gICAg
ICBzaG91bGRCZVRydWUoYWN0dWFsKTsKLSAgICBlbHNlCi0gICAgICBzaG91bGRCZUZhbHNlKGFj
dHVhbCk7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJudW1iZXIiKSB7Ci0gICAg
c2hvdWxkQmUoYWN0dWFsLCBzdHJpbmdpZnkoZXhwZWN0ZWQpKTsKLSAgfSBlbHNlIHsKLSAgICBk
ZWJ1ZyhleHBlY3RlZCArICIgaXMgdW5rbm93biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQpOwot
ICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwsICInIiAgK2V4cGVjdGVkLnRvU3RyaW5nKCkgKyAiJyIp
OwotICB9Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlTm9uWmVybyhfYSkKLXsKLSAgdmFyIGV4Y2Vw
dGlvbjsKLSAgdmFyIF9hdjsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0
Y2ggKGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIGlmIChleGNlcHRpb24pCi0g
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7Ci0gIGVsc2UgaWYgKF9hdiAhPSAwKQotICAgIHRlc3RQYXNzZWQoX2Eg
KyAiIGlzIG5vbi16ZXJvLiIpOwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IGJlIG5vbi16ZXJvLiBXYXMgIiArIF9hdik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlTm9uTnVs
bChfYSkKLXsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9hdjsKLSAgdHJ5IHsKLSAgICAgX2F2
ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsKLSAgfQot
Ci0gIGlmIChleGNlcHRpb24pCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1u
dWxsLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gIGVsc2UgaWYgKF9hdiAhPSBu
dWxsKQotICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi1udWxsLiIpOwotICBlbHNlCi0gICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgIiArIF9hdik7Ci19Ci0K
LWZ1bmN0aW9uIHNob3VsZEJlVW5kZWZpbmVkKF9hKQotewotICB2YXIgZXhjZXB0aW9uOwotICB2
YXIgX2F2OwotICB0cnkgewotICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewot
ICAgICBleGNlcHRpb24gPSBlOwotICB9Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2Vw
dGlvbik7Ci0gIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCi0gICAgdGVzdFBh
c3NlZChfYSArICIgaXMgdW5kZWZpbmVkLiIpOwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2FzICIgKyBfYXYpOwotfQotCi1mdW5jdGlvbiBzaG91
bGRCZURlZmluZWQoX2EpCi17Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7
Ci0gICAgIF9hdiA9IGV2YWwoX2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9
IGU7Ci0gIH0KLQotICBpZiAoZXhjZXB0aW9uKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBiZSBkZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gIGVsc2UgaWYg
KF9hdiAhPT0gdW5kZWZpbmVkKQotICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGRlZmluZWQuIik7
Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gV2FzICIg
KyBfYXYpOwotfQotCi1mdW5jdGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2Ip
IHsKLSAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5n
IikKLSAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4cGVj
dHMgc3RyaW5nIGFyZ3VtZW50cyIpOwotCi0gICAgdmFyIGV4Y2VwdGlvbjsKLSAgICB2YXIgX2F2
OwotICAgIHRyeSB7Ci0gICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgZXhjZXB0aW9uID0gZTsKLSAgICB9Ci0gICAgdmFyIF9idiA9IGV2YWwoX2IpOwot
Ci0gICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ID49ICIgKyBfYiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgICBlbHNl
IGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiIHx8IF9hdiA8IF9idikKLSAgICAgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAo
b2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdFBh
c3NlZChfYSArICIgaXMgPj0gIiArIF9iKTsKLX0KLQotZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2LCBt
c2cpIHsKLSAgaWYgKHYpIHsKLSAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gIH0gZWxzZSB7Ci0gICAg
dGVzdEZhaWxlZChtc2cpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSkK
LXsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9hdjsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZh
bChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIHZh
ciBfZXY7Ci0gIGlmIChfZSkKLSAgICAgIF9ldiA9ICBldmFsKF9lKTsKLQotICBpZiAoZXhjZXB0
aW9uKSB7Ci0gICAgaWYgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0g
X2V2KQotICAgICAgdGVzdFBhc3NlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRp
b24gKyAiLiIpOwotICAgIGVsc2UKLSAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJv
dyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSAr
ICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uICsgIi4iKTsKLSAgfSBlbHNlIGlmICh0
eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0
aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2
KSArICIuIFdhcyB1bmRlZmluZWQuIik7Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBz
aG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9u
IiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJl
VHlwZShfYSwgX3R5cGUpIHsKLQl2YXIgZXhjZXB0aW9uOwotCXZhciBfYXY7Ci0JdHJ5IHsKLQkJ
X2F2ID0gZXZhbChfYSk7Ci0JfSBjYXRjaCAoZSkgewotCQlleGNlcHRpb24gPSBlOwotCX0KLQot
CXZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKLQotCWlmIChfYXYgaW5zdGFuY2VvZiBfdHlwZXYp
IHsKLQkJdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKLQl9
IGVsc2UgewotCQl0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgIiArIF90
eXBlKTsKLQl9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydE1zZyhhc3NlcnRpb24sIG1zZykgewotICAg
IGlmIChhc3NlcnRpb24pIHsKLSAgICAgICAgdGVzdFBhc3NlZChtc2cpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGdjKCkgewot
ICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKSB7Ci0gICAgICAgIHdpbmRvdy5HQ0NvbnRyb2xs
ZXIuY29sbGVjdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHdpbmRvdy5v
cGVyYSAmJiB3aW5kb3cub3BlcmEuY29sbGVjdCkgewotICAgICAgICB3aW5kb3cub3BlcmEuY29s
bGVjdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdHJ5IHsKLSAgICAgICAgd2lu
ZG93LlF1ZXJ5SW50ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lJbnRlcmZhY2VSZXF1
ZXN0b3IpCi0gICAgICAgICAgICAgIC5nZXRJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2Vz
Lm5zSURPTVdpbmRvd1V0aWxzKQotICAgICAgICAgICAgICAuZ2FyYmFnZUNvbGxlY3QoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0gY2F0Y2goZSkge30KLQotICAgIGZ1bmN0aW9uIGdjUmVjKG4p
IHsKLSAgICAgICAgaWYgKG4gPCAxKQotICAgICAgICAgICAgcmV0dXJuIHt9OwotICAgICAgICB2
YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAwMDAwKX07Ci0gICAgICAgIHRlbXAgKz0g
ImZvbyI7Ci0gICAgICAgIGdjUmVjKG4tMSk7Ci0gICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgaSsrKQotICAgICAgICBnY1JlYygxMCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7Ci0gIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gIHZhciBlcGlsb2d1ZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotCi0gIHZhciBiYXNlUGF0aCA9ICIiOwot
ICB2YXIgZXhwZWN0ZWRCYXNlID0gImpzLXRlc3QtcHJlLmpzIjsKLSAgdmFyIHNjcmlwdHMgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7Ci0gIGZvciAodmFyIHNjcmlw
dCwgaSA9IDA7IHNjcmlwdCA9IHNjcmlwdHNbaV07IGkrKykgewotICAgIHZhciBzcmMgPSBzY3Jp
cHQuc3JjOwotICAgIHZhciBsID0gc3JjLmxlbmd0aDsKLSAgICBpZiAoc3JjLnN1YnN0cihsIC0g
ZXhwZWN0ZWRCYXNlLmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7Ci0gICAgICBiYXNlUGF0aCA9
IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOwotICAgICAgYnJlYWs7Ci0g
ICAgfQotICB9Ci0gIGVwaWxvZ3VlLnNyYyA9IGJhc2VQYXRoICsgImpzLXRlc3QtcG9zdC5qcyI7
Ci0gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBpbG9ndWUpOwotfQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTIxNDdjYTQzMjg5
NTQ2OGFhMjc0OWU0Y2E0NDM2Y2NlZWU4NWFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLnBhc3MgewotICAgIGZvbnQtd2VpZ2h0OiBib2xk
OwotICAgIGNvbG9yOiBncmVlbjsKLX0KLS5mYWlsIHsKLSAgICBmb250LXdlaWdodDogYm9sZDsK
LSAgICBjb2xvcjogcmVkOwotfQotI2NvbnNvbGUgewotICAgIHdoaXRlLXNwYWNlOiBwcmUtd3Jh
cDsKLSAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2Q5ZWVjODRjMGY4YWM4
ZDQxZDkxMmYyYzY2NDg4OGRjZTRhYjkyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3dlYmdsLXRlc3QtaGFybmVzcy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDU4NCArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQot
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgot
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS8v
IFRoaXMgaXMgYSB0ZXN0IGhhcm5lc3MgZm9yIHJ1bm5pbmcgamF2YXNjcmlwdCB0ZXN0cyBpbiB0
aGUgYnJvd3Nlci4KLS8vIFRoZSBvbmx5IGlkZW50aWZpZXIgZXhwb3NlZCBieSB0aGlzIGhhcm5l
c3MgaXMgV2ViR0xUZXN0SGFybmVzc01vZHVsZS4KLS8vCi0vLyBUbyB1c2UgaXQgbWFrZSBhbiBI
VE1MIHBhZ2Ugd2l0aCBhbiBpZnJhbWUuIFRoZW4gY2FsbCB0aGUgaGFybmVzcyBsaWtlIHRoaXMK
LS8vCi0vLyAgICBmdW5jdGlvbiByZXBvcnRSZXN1bHRzKHR5cGUsIG1zZywgc3VjY2Vzcykgewot
Ly8gICAgICAuLi4KLS8vICAgICAgcmV0dXJuIHRydWU7Ci0vLyAgICB9Ci0vLwotLy8gICAgdmFy
IGZpbGVMaXN0VVJMID0gJzAwX3Rlc3RfbGlzdC50eHQnOwotLy8gICAgdmFyIHRlc3RIYXJuZXNz
ID0gbmV3IFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5lc3MoCi0vLyAgICAgICAgaWZy
YW1lLAotLy8gICAgICAgIGZpbGVMaXN0VVJMLAotLy8gICAgICAgIHJlcG9ydFJlc3VsdHMsCi0v
LyAgICAgICAgb3B0aW9ucyk7Ci0vLwotLy8gVGhlIGhhcm5lc3Mgd2lsbCBsb2FkIHRoZSBmaWxl
TGlzdFVSTCBhbmQgcGFyc2UgaXQgZm9yIHRoZSBVUkxzLCBvbmUgVVJMCi0vLyBwZXIgbGluZSBw
cmVjZWRlZCBieSBvcHRpb25zLCBzZWUgYmVsb3cuIFVSTHMgc2hvdWxkIGJlIG9uIHRoZSBzYW1l
IGRvbWFpbgotLy8gYW5kIGF0IHRoZSAgc2FtZSBmb2xkZXIgbGV2ZWwgb3IgYmVsb3cgdGhlIG1h
aW4gaHRtbCBmaWxlLiAgSWYgYW55IFVSTCBlbmRzCi0vLyBpbiAudHh0IGl0IHdpbGwgYmUgcGFy
c2VkIGFzIHdlbGwgc28geW91IGNhbiBuZXN0IC50eHQgZmlsZXMuIFVSTHMgaW5zaWRlIGEKLS8v
IC50eHQgZmlsZSBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhhdCB0ZXh0IGZpbGUuCi0vLwotLy8g
RHVyaW5nIHN0YXJ0dXAsIGZvciBlYWNoIHBhZ2UgZm91bmQgdGhlIHJlcG9ydEZ1bmN0aW9uIHdp
bGwgYmUgY2FsbGVkIHdpdGgKLS8vIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5lc3Mu
cmVwb3J0VHlwZS5BRERfUEFHRSBhbmQgbXNnIHdpbGwgYmUKLS8vIHRoZSBVUkwgb2YgdGhlIHRl
c3QuCi0vLwotLy8gRWFjaCB0ZXN0IGlzIHJlcXVpcmVkIHRvIGNhbGwgdGVzdEhhcm5lc3MucmVw
b3J0UmVzdWx0cy4gVGhpcyBpcyBtb3N0IGVhc2lseQotLy8gYWNjb21wbGlzaGVkIGJ5IHN0b3Jp
bmcgdGhhdCB2YWx1ZSBvbiB0aGUgbWFpbiB3aW5kb3cgd2l0aAotLy8KLS8vICAgICB3aW5kb3cu
d2ViZ2xUZXN0SGFybmVzcyA9IHRlc3RIYXJuZXNzCi0vLwotLy8gYW5kIHRoZW4gYWRkaW5nIHRo
ZXNlIHRvIGZ1bmN0aW9ucyB0byB5b3VyIHRlc3RzLgotLy8KLS8vICAgICBmdW5jdGlvbiByZXBv
cnRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKLS8vICAgICAgIGlmICh3aW5k
b3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLS8vICAgICAgICAgd2luZG93LnBhcmVudC53
ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMoc3VjY2VzcywgbXNnKTsKLS8vICAgICAgIH0K
LS8vICAgICB9Ci0vLwotLy8gICAgIGZ1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkg
ewotLy8gICAgICAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgewotLy8gICAg
ICAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQoKTsKLS8v
ICAgICAgIH0KLS8vICAgICB9Ci0vLwotLy8gVGhpcyB3YXkgeW91ciB0ZXN0cyB3aWxsIHN0aWxs
IHJ1biB3aXRob3V0IHRoZSBoYXJuZXNzIGFuZCB5b3UgY2FuIHVzZQotLy8gYW55IHRlc3Rpbmcg
ZnJhbWV3b3JrIHlvdSB3YW50LgotLy8KLS8vIEVhY2ggdGVzdCBzaG91bGQgY2FsbCByZXBvcnRU
ZXN0UmVzdWx0c1RvSGFybmVzcyB3aXRoIHRydWUgZm9yIHN1Y2Nlc3MgaWYgaXQKLS8vIHN1Y2Nl
ZWRlZCBhbmQgZmFsc2UgaWYgaXQgZmFpbCBmb2xsb3dlZCBhbmQgYW55IG1lc3NhZ2UgaXQgd2Fu
dHMgdG8KLS8vIGFzc29jaWF0ZSB3aXRoIHRoZSB0ZXN0LiBJZiB5b3VyIHRlc3RpbmcgZnJhbWV3
b3JrIHN1cHBvcnRzIGNoZWNraW5nIGZvcgotLy8gdGltZW91dCB5b3UgY2FuIGNhbGwgaXQgd2l0
aCBzdWNjZXNzIGVxdWFsIHRvIHVuZGVmaW5lZCBpbiB0aGF0IGNhc2UuCi0vLwotLy8gVG8gcnVu
IHRoZSB0ZXN0cywgY2FsbCB0ZXN0SGFybmVzcy5ydW5UZXN0cyhvcHRpb25zKTsKLS8vCi0vLyBG
b3IgZWFjaCB0ZXN0IHJ1biwgYmVmb3JlIHRoZSBwYWdlIGlzIGxvYWRlZCB0aGUgcmVwb3J0RnVu
Y3Rpb24gd2lsbCBiZQotLy8gY2FsbGVkIHdpdGggV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0
SGFybmVzcy5yZXBvcnRUeXBlLlNUQVJUX1BBR0UgYW5kIG1zZwotLy8gd2lsbCBiZSB0aGUgVVJM
IG9mIHRoZSB0ZXN0LiBZb3UgbWF5IHJldHVybiBmYWxzZSBpZiB5b3Ugd2FudCB0aGUgdGVzdCB0
byBiZQotLy8gc2tpcHBlZC4KLS8vCi0vLyBGb3IgZWFjaCB0ZXN0IGNvbXBsZXRlZCB0aGUgcmVw
b3J0RnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aAotLy8gd2l0aCBXZWJHTFRlc3RIYXJuZXNz
TW9kdWxlLlRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuVEVTVF9SRVNVTFQsCi0vLyBzdWNjZXNzID0g
dHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlLCB1bmRlZmluZWQgb24gdGltZW91dAot
Ly8gYW5kIG1zZyBpcyBhbnkgbWVzc2FnZSB0aGUgdGVzdCBjaG9vc2UgdG8gcGFzcyBvbi4KLS8v
Ci0vLyBXaGVuIGFsbCB0aGUgdGVzdHMgb24gdGhlIHBhZ2UgaGF2ZSBmaW5pc2hlZCB5b3VyIHBh
Z2UgbXVzdCBjYWxsCi0vLyBub3RpZnlGaW5pc2hlZFRvSGFybmVzcy4gIElmIG5vdGlmeUZpbmlz
aGVkVG9IYXJuZXNzIGlzIG5vdCBjYWxsZWQKLS8vIHRoZSBoYXJuZXNzIHdpbGwgYXNzdW1lIHRo
ZSB0ZXN0IHRpbWVkIG91dC4KLS8vCi0vLyBXaGVuIGFsbCB0aGUgdGVzdHMgb24gYSBwYWdlIGhh
dmUgZmluaXNoZWQgT1IgdGhlIHBhZ2UgYXMgdGltZWQgb3V0IHRoZQotLy8gcmVwb3J0RnVuY3Rp
b24gd2lsbCBiZSBjYWxsZWQgd2l0aAotLy8gV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0SGFy
bmVzcy5yZXBvcnRUeXBlLkZJTklTSF9QQUdFCi0vLyB3aGVyZSBzdWNjZXNzID0gdHJ1ZSBpZiB0
aGUgcGFnZSBoYXMgY29tcGxldGVkIG9yIHVuZGVmaW5lZCBpZiB0aGUgcGFnZSB0aW1lZAotLy8g
b3V0LgotLy8KLS8vIEZpbmFsbHksIHdoZW4gYWxsIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZCB0
aGUgcmVwb3J0RnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKLS8vIHdpdGggV2ViR0xUZXN0SGFybmVz
c01vZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRUeXBlLkZJTklTSEVEX0FMTF9URVNUUy4KLS8vCi0v
LyBIYXJuZXNzIE9wdGlvbnMKLS8vCi0vLyBUaGVzZSBhcmUgcGFzc2VkIGluIHRvIHRoZSBUZXN0
SGFybmVzcyBhcyBhIEphdmFTY3JpcHQgb2JqZWN0Ci0vLwotLy8gdmVyc2lvbjogKHJlcXVpcmVk
ISkKLS8vCi0vLyAgICAgU3BlY2lmaWVzIGEgdmVyc2lvbiB1c2VkIHRvIGZpbHRlciB0ZXN0cy4g
VGVzdHMgbWFya2VkIGFzIHJlcXVpcmluZwotLy8gICAgIGEgdmVyc2lvbiBncmVhdGVyIHRoYW4g
dGhpcyB2ZXJzaW9uIHdpbGwgbm90IGJlIGluY2x1ZGVkLgotLy8KLS8vICAgICBleGFtcGxlOiBu
ZXcgVGVzdEhhcm5lc3MoLi4uLiwge3ZlcnNpb246ICIzLjEuMiJ9KTsKLS8vCi0vLyBtaW5WZXJz
aW9uOgotLy8KLS8vICAgICBTcGVjaWZpZXMgdGhlIG1pbmltdW0gdmVyc2lvbiBhIHRlc3QgbXVz
dCByZXF1aXJlIHRvIGJlIGluY2x1ZGVkLgotLy8gICAgIFRoaXMgYmFzaWNhbGx5IGZsaXBzIHRo
ZSBmaWx0ZXIgc28gdGhhdCBvbmx5IHRlc3RzIG1hcmtlZCB3aXRoCi0vLyAgICAgLS1taW4tdmVy
c2lvbiB3aWxsIGJlIGluY2x1ZGVkIGlmIHRoZXkgYXJlIGF0IHRoaXMgbWluVmVyc2lvbiBvcgot
Ly8gICAgIGdyZWF0ZXIuCi0vLwotLy8gICAgIGV4YW1wbGU6IG5ldyBUZXN0SGFybmVzcyguLi4u
LCB7bWluVmVyc2lvbjogIjIuMy4xIn0pOwotLy8KLS8vIGZhc3Q6Ci0vLwotLy8gICAgIFNwZWNp
ZmllcyB0byBza2lwIGFueSB0ZXN0cyBtYXJrZWQgYXMgc2xvdy4KLS8vCi0vLyAgICAgZXhhbXBs
ZTogbmV3IFRlc3RIYXJuZXNzKC4uLiwge2Zhc3Q6IHRydWV9KTsKLS8vCi0vLyBUZXN0IE9wdGlv
bnM6Ci0vLwotLy8gQW55IHRlc3QgVVJMIG9yIC50eHQgZmlsZSBjYW4gYmUgcHJlZml4ZWQgYnkg
dGhlIGZvbGxvd2luZyBvcHRpb25zCi0vLwotLy8gbWluLXZlcnNpb246Ci0vLwotLy8gICAgIFNl
dHMgdGhlIG1pbmltdW0gdmVyc2lvbiByZXF1aXJlcyB0byBpbmNsdWRlIHRoaXMgdGVzdC4gQSB2
ZXJzaW9uIGlzCi0vLyAgICAgcGFzc2VkIGludG8gdGhlIGhhcm5lc3Mgb3B0aW9ucy4gQW55IHRl
c3QgbWFya2VkIGFzIHJlcXVpcmluZyBhCi0vLyAgICAgbWluLXZlcnNpb24gZ3JlYXRlciB0aGFu
IHRoZSB2ZXJzaW9uIHBhc3NlZCB0byB0aGUgaGFybmVzcyBpcyBza2lwcGVkLgotLy8gICAgIFRo
aXMgYWxsb3dzIHlvdSB0byBhZGQgbmV3IHRlc3RzIHRvIGEgc3VpdGUgb2YgdGVzdHMgZm9yIGEg
ZnV0dXJlCi0vLyAgICAgdmVyc2lvbiBvZiB0aGUgc3VpdGUgd2l0aG91dCBpbmNsdWRpbmcgdGhl
IHRlc3QgaW4gdGhlIGN1cnJlbnQgdmVyc2lvbi4KLS8vICAgICBJZiBubyAtbWluLXZlcnNpb24g
aXMgc3BlY2lmaWVkIGl0IGlzIGluaGVyaWl0ZWQgZnJvbSB0aGUgLnR4dCBmaWxlCi0vLyAgICAg
aW5jbHVkaW5nIGl0LiBUaGUgZGVmYXVsdCBpcyAxLjAuMAotLy8KLS8vICAgICBleGFtcGxlOiAg
LS1taW4tdmVyc2lvbiAyLjEuMyBzb21ldGVzdC5odG1sCi0vLwotLy8gc2xvdzoKLS8vCi0vLyAg
ICAgTWFya3MgYSB0ZXN0IGFzIHNsb3cuIFNsb3cgdGVzdHMgY2FuIGJlIHNraXBwZWQgYnkgcGFz
c2luZyBmYXN0T25seTogdHJ1ZQotLy8gICAgIHRvIHRoZSBUZXN0SGFybmVzcy4gT2YgY291cnNl
IHlvdSBuZWVkIHRvIHBhc3MgYWxsIHRlc3RzIGJ1dCBzb21ldGltZXMKLS8vICAgICB5b3UnZCBs
aWtlIHRvIHRlc3QgcXVpY2tseSBhbmQgcnVuIG9ubHkgdGhlIGZhc3Qgc3Vic2V0IG9mIHRlc3Rz
LgotLy8KLS8vICAgICBleGFtcGxlOiAgLS1zbG93IHNvbWUtdGVzdC10aGF0LXRha2VzLTItbWlu
cy5odG1sCi0vLwotCi1XZWJHTFRlc3RIYXJuZXNzTW9kdWxlID0gZnVuY3Rpb24oKSB7Ci0KLS8q
KgotICogV3JhcHBlZCBsb2dnaW5nIGZ1bmN0aW9uLgotICovCi12YXIgbG9nID0gZnVuY3Rpb24o
bXNnKSB7Ci0gIGlmICh3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5sb2cpIHsKLSAg
ICB3aW5kb3cuY29uc29sZS5sb2cobXNnKTsKLSAgfQotfTsKLQotLyoqCi0gKiBMb2FkcyB0ZXh0
IGZyb20gYW4gZXh0ZXJuYWwgZmlsZS4gVGhpcyBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cy4KLSAq
IEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJuYWwgZmlsZS4KLSAqIEBw
YXJhbSB7IWZ1bmN0aW9uKGJvb2wsIHN0cmluZyk6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2Vu
dCBhIGJvb2wgZm9yCi0gKiAgICAgc3VjY2VzcyBhbmQgdGhlIHN0cmluZy4KLSAqLwotdmFyIGxv
YWRUZXh0RmlsZUFzeW5jaHJvbm91cyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKLSAgbG9n
ICgibG9hZGluZzogIiArIHVybCk7Ci0gIHZhciBlcnJvciA9ICdsb2FkVGV4dEZpbGVTeW5jaHJv
bm91cyBmYWlsZWQgdG8gbG9hZCB1cmwgIicgKyB1cmwgKyAnIic7Ci0gIHZhciByZXF1ZXN0Owot
ICBpZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7Ci0gICAgcmVxdWVzdCA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOwotICAgIGlmIChyZXF1ZXN0Lm92ZXJyaWRlTWltZVR5cGUpIHsKLSAgICAgIHJl
cXVlc3Qub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbicpOwotICAgIH0KLSAgfSBlbHNlIHsK
LSAgICB0aHJvdyAnWE1MSHR0cFJlcXVlc3QgaXMgZGlzYWJsZWQnOwotICB9Ci0gIHRyeSB7Ci0g
ICAgcmVxdWVzdC5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOwotICAgIHJlcXVlc3Qub25yZWFkeXN0
YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAocmVxdWVzdC5yZWFkeVN0YXRlID09
IDQpIHsKLSAgICAgICAgdmFyIHRleHQgPSAnJzsKLSAgICAgICAgLy8gSFRUUCByZXBvcnRzIHN1
Y2Nlc3Mgd2l0aCBhIDIwMCBzdGF0dXMuIFRoZSBmaWxlIHByb3RvY29sIHJlcG9ydHMKLSAgICAg
ICAgLy8gc3VjY2VzcyB3aXRoIHplcm8uIEhUVFAgZG9lcyBub3QgdXNlIHplcm8gYXMgYSBzdGF0
dXMgY29kZSAodGhleQotICAgICAgICAvLyBzdGFydCBhdCAxMDApLgotICAgICAgICAvLyBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9Fbi9Vc2luZ19YTUxIdHRwUmVxdWVzdAotICAgICAg
ICB2YXIgc3VjY2VzcyA9IHJlcXVlc3Quc3RhdHVzID09IDIwMCB8fCByZXF1ZXN0LnN0YXR1cyA9
PSAwOwotICAgICAgICBpZiAoc3VjY2VzcykgewotICAgICAgICAgIHRleHQgPSByZXF1ZXN0LnJl
c3BvbnNlVGV4dDsKLSAgICAgICAgfQotICAgICAgICBsb2coImxvYWRlZDogIiArIHVybCk7Ci0g
ICAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIHRleHQpOwotICAgICAgfQotICAgIH07Ci0gICAgcmVx
dWVzdC5zZW5kKG51bGwpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgbG9nKCJmYWlsZWQgdG8gbG9h
ZDogIiArIHVybCk7Ci0gICAgY2FsbGJhY2soZmFsc2UsICcnKTsKLSAgfQotfTsKLQotLyoqCi0g
KiBDb21wYXJlIHZlcnNpb24gc3RyaW5ncy4KLSAqLwotdmFyIGdyZWF0ZXJUaGFuT3JFcXVhbFRv
VmVyc2lvbiA9IGZ1bmN0aW9uKGhhdmUsIHdhbnQpIHsKLSAgaGF2ZSA9IGhhdmUuc3BsaXQoIiAi
KVswXS5zcGxpdCgiLiIpOwotICB3YW50ID0gd2FudC5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7
Ci0KLSAgLy9oYXZlIDEuMi4zICAgd2FudCAgMS4xCi0gIC8vaGF2ZSAxLjEuMSAgIHdhbnQgIDEu
MQotICAvL2hhdmUgMS4wLjkgICB3YW50ICAxLjEKLSAgLy9oYXZlIDEuMSAgICAgd2FudCAgMS4x
LjEKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgd2FudC5sZW5ndGg7ICsraWkpIHsKLSAgICB2
YXIgd2FudE51bSA9IHBhcnNlSW50KHdhbnRbaWldKTsKLSAgICB2YXIgaGF2ZU51bSA9IGhhdmVb
aWldID8gcGFyc2VJbnQoaGF2ZVtpaV0pIDogMAotICAgIGlmIChoYXZlTnVtIDwgd2FudE51bSkg
ewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotICByZXR1cm4gdHJ1ZTsKLX07Ci0K
LS8qKgotICogUmVhZHMgYSBmaWxlLCByZWN1cnNpdmVseSBhZGRpbmcgZmlsZXMgcmVmZXJlbmNl
ZCBpbnNpZGUuCi0gKgotICogRWFjaCBsaW5lIG9mIFVSTCBpcyBwYXJzZWQsIGNvbW1lbnRzIHN0
YXJ0aW5nIHdpdGggJyMnIG9yICc7JwotICogb3IgJy8vJyBhcmUgc3RyaXBwZWQuCi0gKgotICog
YXJndW1lbnRzIGJlZ2lubmluZyB3aXRoIC0tIGFyZSBleHRyYWN0ZWQKLSAqCi0gKiBsaW5lcyB0
aGF0IGVuZCBpbiAudHh0IGFyZSByZWN1cnNpdmVseSBzY2FubmVkIGZvciBtb3JlIGZpbGVzCi0g
KiBvdGhlciBsaW5lcyBhcmUgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgZmlsZXMuCi0gKgotICogQHBh
cmFtIHtzdHJpbmd9IHVybCBUaGUgdXJsIG9mIHRoZSBmaWxlIHRvIHJlYWQuCi0gKiBAcGFyYW0g
e3ZvaWQgZnVuY3Rpb24oYm9vbGVhbiwgIUFycmF5LjxzdHJpbmc+KX0gY2FsbGJhY2suCi0gKiAg
ICAgIENhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdpdGggdHJ1ZSBmb3Igc3VjY2VzcyBhbmQgYW4K
LSAqICAgICAgYXJyYXkgb2YgZmlsZW5hbWVzLgotICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMu
IE9wdGlvbmFsIG9wdGlvbnMKLSAqCi0gKiBPcHRpb25zOgotICogICAgdmVyc2lvbjoge3N0cmlu
Z30gVGhlIHZlcnNpb24gb2YgdGhlIGNvbmZvcm1hbmNlIHRlc3QuCi0gKiAgICBUZXN0cyB3aXRo
IHRoZSBhcmd1bWVudCAtLW1pbi12ZXJzaW9uIDx2ZXJzaW9uPiB3aWxsCi0gKiAgICBiZSBpZ25v
cmVkIHZlcnNpb24gaXMgbGVzcyB0aGVuIDx2ZXJzaW9uPgotICoKLSAqLwotdmFyIGdldEZpbGVM
aXN0ID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaywgb3B0aW9ucykgewotICB2YXIgZmlsZXMgPSBb
XTsKLQotICB2YXIgY29weU9iamVjdCA9IGZ1bmN0aW9uKG9iaikgewotICAgIHJldHVybiBKU09O
LnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpOwotICB9OwotCi0gIHZhciB0b0NhbWVsQ2FzZSA9
IGZ1bmN0aW9uKHN0cikgewotICAgIHJldHVybiBzdHIucmVwbGFjZSgvLShbYS16XSkvZywgZnVu
Y3Rpb24gKGcpIHsgcmV0dXJuIGdbMV0udG9VcHBlckNhc2UoKSB9KTsKLSAgfTsKLQotICB2YXIg
Z2xvYmFsT3B0aW9ucyA9IGNvcHlPYmplY3Qob3B0aW9ucyk7Ci0gIGdsb2JhbE9wdGlvbnMuZGVm
YXVsdFZlcnNpb24gPSAiMS4wIjsKLQotICB2YXIgZ2V0RmlsZUxpc3RJbXBsID0gZnVuY3Rpb24o
cHJlZml4LCBsaW5lLCBsaW5lTnVtLCBoaWVyYXJjaGljYWxPcHRpb25zLCBjYWxsYmFjaykgewot
ICAgIHZhciBmaWxlcyA9IFtdOwotCi0gICAgdmFyIGFyZ3MgPSBsaW5lLnNwbGl0KC9ccysvKTsK
LSAgICB2YXIgbm9uT3B0aW9ucyA9IFtdOwotICAgIHZhciB1c2VUZXN0ID0gdHJ1ZTsKLSAgICB2
YXIgdGVzdE9wdGlvbnMgPSB7fTsKLSAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgYXJncy5sZW5n
dGg7ICsramopIHsKLSAgICAgIHZhciBhcmcgPSBhcmdzW2pqXTsKLSAgICAgIGlmIChhcmdbMF0g
PT0gJy0nKSB7Ci0gICAgICAgIGlmIChhcmdbMV0gIT0gJy0nKSB7Ci0gICAgICAgICAgdGhyb3cg
KCJiYWQgb3B0aW9uIGF0IGluICIgKyB1cmwgKyAiOiIgKyBsaW5lTnVtICsgIjogIiArIGFyZyk7
Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG9wdGlvbiA9IGFyZy5zdWJzdHJpbmcoMik7Ci0gICAg
ICAgIHN3aXRjaCAob3B0aW9uKSB7Ci0gICAgICAgICAgLy8gbm8gYXJndW1lbnQgb3B0aW9ucy4K
LSAgICAgICAgICBjYXNlICdzbG93JzoKLSAgICAgICAgICAgIHRlc3RPcHRpb25zW3RvQ2FtZWxD
YXNlKG9wdGlvbildID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIC8vIG9u
ZSBhcmd1bWVudCBvcHRpb25zLgotICAgICAgICAgIGNhc2UgJ21pbi12ZXJzaW9uJzoKLSAgICAg
ICAgICAgICsramo7Ci0gICAgICAgICAgICB0ZXN0T3B0aW9uc1t0b0NhbWVsQ2FzZShvcHRpb24p
XSA9IGFyZ3NbampdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIHRocm93ICgiYmFkIHVua25vd24gb3B0aW9uICciICsgb3B0aW9uICsgIicgYXQg
aW4gIiArIHVybCArICI6IiArIGxpbmVOdW0gKyAiOiAiICsgYXJnKTsKLSAgICAgICAgfQotICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgbm9uT3B0aW9ucy5wdXNoKGFyZyk7Ci0gICAgICB9Ci0gICAg
fQotICAgIHZhciB1cmwgPSBwcmVmaXggKyBub25PcHRpb25zLmpvaW4oIiAiKTsKLQotICAgIGlm
ICh1cmwuc3Vic3RyKHVybC5sZW5ndGggLSA0KSAhPSAnLnR4dCcpIHsKLSAgICAgIHZhciBtaW5W
ZXJzaW9uID0gdGVzdE9wdGlvbnMubWluVmVyc2lvbjsKLSAgICAgIGlmICghbWluVmVyc2lvbikg
ewotICAgICAgICBtaW5WZXJzaW9uID0gaGllcmFyY2hpY2FsT3B0aW9ucy5kZWZhdWx0VmVyc2lv
bjsKLSAgICAgIH0KLSAgICAgIHZhciBzbG93ID0gdGVzdE9wdGlvbnMuc2xvdzsKLSAgICAgIGlm
ICghc2xvdykgewotICAgICAgICBzbG93ID0gaGllcmFyY2hpY2FsT3B0aW9ucy5kZWZhdWx0U2xv
dzsKLSAgICAgIH0KLQotICAgICAgaWYgKGdsb2JhbE9wdGlvbnMuZmFzdCAmJiBzbG93KSB7Ci0g
ICAgICAgIHVzZVRlc3QgPSBmYWxzZTsKLSAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsT3B0aW9ucy5t
aW5WZXJzaW9uKSB7Ci0gICAgICAgIHVzZVRlc3QgPSBncmVhdGVyVGhhbk9yRXF1YWxUb1ZlcnNp
b24obWluVmVyc2lvbiwgZ2xvYmFsT3B0aW9ucy5taW5WZXJzaW9uKTsKLSAgICAgIH0gZWxzZSB7
Ci0gICAgICAgIHVzZVRlc3QgPSBncmVhdGVyVGhhbk9yRXF1YWxUb1ZlcnNpb24oZ2xvYmFsT3B0
aW9ucy52ZXJzaW9uLCBtaW5WZXJzaW9uKTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIXVz
ZVRlc3QpIHsKLSAgICAgIGNhbGxiYWNrKHRydWUsIFtdKTsKLSAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAodXJsLnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7Ci0gICAg
ICAvLyBJZiBhIHZlcnNpb24gd2FzIGV4cGxpY2l0eSBzcGVjaWZpZWQgcGFzcyBpdCBkb3duLgot
ICAgICAgaWYgKHRlc3RPcHRpb25zLm1pblZlcnNpb24pIHsKLSAgICAgICAgaGllcmFyY2hpY2Fs
T3B0aW9ucy5kZWZhdWx0VmVyc2lvbiA9IHRlc3RPcHRpb25zLm1pblZlcnNpb247Ci0gICAgICB9
Ci0gICAgICBpZiAodGVzdE9wdGlvbnMuc2xvdykgewotICAgICAgICBoaWVyYXJjaGljYWxPcHRp
b25zLmRlZmF1bHRTbG93ID0gdGVzdE9wdGlvbnMuc2xvdzsKLSAgICAgIH0KLSAgICAgIGxvYWRU
ZXh0RmlsZUFzeW5jaHJvbm91cyh1cmwsIGZ1bmN0aW9uKCkgewotICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oc3VjY2VzcywgdGV4dCkgewotICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAg
ICAgICAgY2FsbGJhY2soZmFsc2UsICcnKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKLSAgICAgICAgICB2
YXIgcHJlZml4ID0gJyc7Ci0gICAgICAgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0SW5kZXhP
ZignLycpOwotICAgICAgICAgIGlmIChsYXN0U2xhc2ggPj0gMCkgewotICAgICAgICAgICAgcHJl
Zml4ID0gdXJsLnN1YnN0cigwLCBsYXN0U2xhc2ggKyAxKTsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIGZhaWwgPSBmYWxzZTsKLSAgICAgICAgICB2YXIgY291bnQgPSAxOwotICAgICAgICAg
IHZhciBpbmRleCA9IDA7Ci0gICAgICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxl
bmd0aDsgKytpaSkgewotICAgICAgICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBsYWNlKC9e
XHNccyovLCAnJykucmVwbGFjZSgvXHNccyokLywgJycpOwotICAgICAgICAgICAgaWYgKHN0ci5s
ZW5ndGggPiA0ICYmCi0gICAgICAgICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgotICAgICAgICAg
ICAgICAgIHN0clswXSAhPSAiOyIgJiYKLSAgICAgICAgICAgICAgICBzdHIuc3Vic3RyKDAsIDIp
ICE9ICIvLyIpIHsKLSAgICAgICAgICAgICAgKytjb3VudDsKLSAgICAgICAgICAgICAgZ2V0Rmls
ZUxpc3RJbXBsKHByZWZpeCwgc3RyLCBpaSArIDEsIGNvcHlPYmplY3QoaGllcmFyY2hpY2FsT3B0
aW9ucyksIGZ1bmN0aW9uKGluZGV4KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KHN1Y2Nlc3MsIG5ld19maWxlcykgewotICAgICAgICAgICAgICAgICAgLy9sb2coImdvdCBmaWxl
czogIiArIG5ld19maWxlcy5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgZmlsZXNbaW5kZXhdID0gbmV3X2ZpbGVzOwotICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgZmluaXNoKHN1Y2Nlc3MpOwotICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgIH0oaW5kZXgrKykpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgIH0KLSAgICAgICAgICBmaW5pc2godHJ1ZSk7Ci0KLSAgICAgICAgICBmdW5jdGlv
biBmaW5pc2goc3VjY2VzcykgewotICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAg
ICAgICAgIGZhaWwgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLS1jb3VudDsK
LSAgICAgICAgICAgIC8vbG9nKCJjb3VudDogIiArIGNvdW50KTsKLSAgICAgICAgICAgIGlmICgh
Y291bnQpIHsKLSAgICAgICAgICAgICAgY2FsbGJhY2soIWZhaWwsIGZpbGVzKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0oKSk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgIGZpbGVzLnB1c2godXJsKTsKLSAgICAgIGNhbGxiYWNrKHRydWUsIGZpbGVzKTsKLSAg
ICB9Ci0gIH07Ci0KLSAgZ2V0RmlsZUxpc3RJbXBsKCcnLCB1cmwsIDEsIGdsb2JhbE9wdGlvbnMs
IGZ1bmN0aW9uKHN1Y2Nlc3MsIGZpbGVzKSB7Ci0gICAgLy8gZmxhdHRlbgotICAgIHZhciBmbGF0
ID0gW107Ci0gICAgZmxhdHRlbihmaWxlcyk7Ci0gICAgZnVuY3Rpb24gZmxhdHRlbihmaWxlcykg
ewotICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZpbGVzLmxlbmd0aDsgKytpaSkgewotICAg
ICAgICB2YXIgdmFsdWUgPSBmaWxlc1tpaV07Ci0gICAgICAgIGlmICh0eXBlb2YodmFsdWUpID09
ICJzdHJpbmciKSB7Ci0gICAgICAgICAgZmxhdC5wdXNoKHZhbHVlKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICBmbGF0dGVuKHZhbHVlKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0K
LSAgICBjYWxsYmFjayhzdWNjZXNzLCBmbGF0KTsKLSAgfSk7Ci19OwotCi12YXIgRmlsdGVyVVJM
ID0gKGZ1bmN0aW9uKCkgewotICB2YXIgcHJlZml4ID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1l
OwotICBwcmVmaXggPSBwcmVmaXguc3Vic3RyaW5nKDAsIHByZWZpeC5sYXN0SW5kZXhPZigiLyIp
ICsgMSk7Ci0gIHJldHVybiBmdW5jdGlvbih1cmwpIHsKLSAgICBpZiAodXJsLnN1YnN0cmluZygw
LCBwcmVmaXgubGVuZ3RoKSA9PSBwcmVmaXgpIHsKLSAgICAgIHVybCA9IHVybC5zdWJzdHJpbmco
cHJlZml4Lmxlbmd0aCk7Ci0gICAgfQotICAgIHJldHVybiB1cmw7Ci0gIH07Ci19KCkpOwotCi12
YXIgVGVzdEZpbGUgPSBmdW5jdGlvbih1cmwpIHsKLSAgdGhpcy51cmwgPSB1cmw7Ci19OwotCi12
YXIgVGVzdCA9IGZ1bmN0aW9uKGZpbGUpIHsKLSAgdGhpcy5maWxlID0gZmlsZTsKLX07Ci0KLXZh
ciBUZXN0SGFybmVzcyA9IGZ1bmN0aW9uKGlmcmFtZSwgZmlsZWxpc3RVcmwsIHJlcG9ydEZ1bmMs
IG9wdGlvbnMpIHsKLSAgdGhpcy53aW5kb3cgPSB3aW5kb3c7Ci0gIHRoaXMuaWZyYW1lcyA9IGlm
cmFtZS5sZW5ndGggPyBpZnJhbWUgOiBbaWZyYW1lXTsKLSAgdGhpcy5yZXBvcnRGdW5jID0gcmVw
b3J0RnVuYzsKLSAgdGhpcy50aW1lb3V0RGVsYXkgPSAyMDAwMDsKLSAgdGhpcy5maWxlcyA9IFtd
OwotICB0aGlzLmFsbG93U2tpcCA9IG9wdGlvbnMuYWxsb3dTa2lwOwotCi0gIHZhciB0aGF0ID0g
dGhpczsKLSAgZ2V0RmlsZUxpc3QoZmlsZWxpc3RVcmwsIGZ1bmN0aW9uKCkgewotICAgIHJldHVy
biBmdW5jdGlvbihzdWNjZXNzLCBmaWxlcykgewotICAgICAgdGhhdC5hZGRGaWxlc18oc3VjY2Vz
cywgZmlsZXMpOwotICAgIH07Ci0gIH0oKSwgb3B0aW9ucyk7Ci0KLX07Ci0KLVRlc3RIYXJuZXNz
LnJlcG9ydFR5cGUgPSB7Ci0gIEFERF9QQUdFOiAxLAotICBSRUFEWTogMiwKLSAgU1RBUlRfUEFH
RTogMywKLSAgVEVTVF9SRVNVTFQ6IDQsCi0gIEZJTklTSF9QQUdFOiA1LAotICBGSU5JU0hFRF9B
TExfVEVTVFM6IDYKLX07Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5hZGRGaWxlc18gPSBmdW5j
dGlvbihzdWNjZXNzLCBmaWxlcykgewotICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICB0aGlzLnJlcG9y
dEZ1bmMoCi0gICAgICAgIFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIRURfQUxMX1RFU1RT
LAotICAgICAgICAnJywKLSAgICAgICAgJ1VuYWJsZSB0byBsb2FkIHRlc3RzLiBBcmUgeW91IHJ1
bm5pbmcgbG9jYWxseT9cbicgKwotICAgICAgICAnWW91IG5lZWQgdG8gcnVuIGZyb20gYSBzZXJ2
ZXIgb3IgY29uZmlndXJlIHlvdXJcbicgKwotICAgICAgICAnYnJvd3NlciB0byBhbGxvdyBhY2Nl
c3MgdG8gbG9jYWwgZmlsZXMgKG5vdCByZWNvbW1lbmRlZCkuXG5cbicgKwotICAgICAgICAnTm90
ZTogQW4gZWFzeSB3YXkgdG8gcnVuIGZyb20gYSBzZXJ2ZXI6XG5cbicgKwotICAgICAgICAnXHRj
ZCBwYXRoX3RvX3Rlc3RzXG4nICsKLSAgICAgICAgJ1x0cHl0aG9uIC1tIFNpbXBsZUhUVFBTZXJ2
ZXJcblxuJyArCi0gICAgICAgICd0aGVuIHBvaW50IHlvdXIgYnJvd3NlciB0byAnICsKLSAgICAg
ICAgICAnPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3dlYmdsLWNvbmZvcm1hbmNlLXRl
c3RzLmh0bWwiPicgKwotICAgICAgICAgICdodHRwOi8vbG9jYWxob3N0OjgwMDAvd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuaHRtbDwvYT4nLAotICAgICAgICBmYWxzZSkKLSAgICByZXR1cm47Ci0g
IH0KLSAgbG9nKCJ0b3RhbCBmaWxlczogIiArIGZpbGVzLmxlbmd0aCk7Ci0gIGZvciAodmFyIGlp
ID0gMDsgaWkgPCBmaWxlcy5sZW5ndGg7ICsraWkpIHsKLSAgICBsb2coIiIgKyBpaSArICI6ICIg
KyBmaWxlc1tpaV0pOwotICAgIHRoaXMuZmlsZXMucHVzaChuZXcgVGVzdEZpbGUoZmlsZXNbaWld
KSk7Ci0gICAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuQUREX1BBR0Us
ICcnLCBmaWxlc1tpaV0sIHVuZGVmaW5lZCk7Ci0gIH0KLSAgdGhpcy5yZXBvcnRGdW5jKFRlc3RI
YXJuZXNzLnJlcG9ydFR5cGUuUkVBRFksICcnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7Ci19Ci0K
LVRlc3RIYXJuZXNzLnByb3RvdHlwZS5ydW5UZXN0cyA9IGZ1bmN0aW9uKG9wdF9vcHRpb25zKSB7
Ci0gIHZhciBvcHRpb25zID0gb3B0X29wdGlvbnMgfHwgeyB9OwotICBvcHRpb25zLnN0YXJ0ID0g
b3B0aW9ucy5zdGFydCB8fCAwOwotICBvcHRpb25zLmNvdW50ID0gb3B0aW9ucy5jb3VudCB8fCB0
aGlzLmZpbGVzLmxlbmd0aDsKLQotICB0aGlzLmlkbGVJRnJhbWVzID0gdGhpcy5pZnJhbWVzLnNs
aWNlKDApOwotICB0aGlzLnJ1bm5pbmdUZXN0cyA9IHt9OwotICB2YXIgdGVzdHNUb1J1biA9IFtd
OwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgb3B0aW9ucy5jb3VudDsgKytpaSkgewotICAgIHRl
c3RzVG9SdW4ucHVzaChpaSArIG9wdGlvbnMuc3RhcnQpOwotICB9Ci0gIHRoaXMubnVtVGVzdHNS
ZW1haW5pbmcgPSBvcHRpb25zLmNvdW50OwotICB0aGlzLnRlc3RzVG9SdW4gPSB0ZXN0c1RvUnVu
OwotICB0aGlzLnN0YXJ0TmV4dFRlc3QoKTsKLX07Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5z
ZXRUaW1lb3V0ID0gZnVuY3Rpb24odGVzdCkgewotICB2YXIgdGhhdCA9IHRoaXM7Ci0gIHRlc3Qu
dGltZW91dElkID0gdGhpcy53aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHRo
YXQudGltZW91dCh0ZXN0KTsKLSAgICB9LCB0aGlzLnRpbWVvdXREZWxheSk7Ci19OwotCi1UZXN0
SGFybmVzcy5wcm90b3R5cGUuY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24odGVzdCkgewotICB0aGlz
LndpbmRvdy5jbGVhclRpbWVvdXQodGVzdC50aW1lb3V0SWQpOwotfTsKLQotVGVzdEhhcm5lc3Mu
cHJvdG90eXBlLnN0YXJ0TmV4dFRlc3QgPSBmdW5jdGlvbigpIHsKLSAgaWYgKHRoaXMubnVtVGVz
dHNSZW1haW5pbmcgPT0gMCkgewotICAgIGxvZygiZG9uZSIpOwotICAgIHRoaXMucmVwb3J0RnVu
YyhUZXN0SGFybmVzcy5yZXBvcnRUeXBlLkZJTklTSEVEX0FMTF9URVNUUywKLSAgICAgICAgICAg
ICAgICAgICAgJycsICcnLCB0cnVlKTsKLSAgfSBlbHNlIHsKLSAgICB3aGlsZSAodGhpcy50ZXN0
c1RvUnVuLmxlbmd0aCA+IDAgJiYgdGhpcy5pZGxlSUZyYW1lcy5sZW5ndGggPiAwKSB7Ci0gICAg
ICB2YXIgdGVzdElkID0gdGhpcy50ZXN0c1RvUnVuLnNoaWZ0KCk7Ci0gICAgICB2YXIgaWZyYW1l
ID0gdGhpcy5pZGxlSUZyYW1lcy5zaGlmdCgpOwotICAgICAgdGhpcy5zdGFydFRlc3QoaWZyYW1l
LCB0aGlzLmZpbGVzW3Rlc3RJZF0pOwotICAgIH0KLSAgfQotfTsKLQotVGVzdEhhcm5lc3MucHJv
dG90eXBlLnN0YXJ0VGVzdCA9IGZ1bmN0aW9uKGlmcmFtZSwgdGVzdEZpbGUpIHsKLSAgdmFyIHRl
c3QgPSB7Ci0gICAgaWZyYW1lOiBpZnJhbWUsCi0gICAgdGVzdEZpbGU6IHRlc3RGaWxlCi0gIH07
Ci0gIHZhciB1cmwgPSB0ZXN0RmlsZS51cmw7Ci0gIHRoaXMucnVubmluZ1Rlc3RzW3VybF0gPSB0
ZXN0OwotICBsb2coImxvYWRpbmc6ICIgKyB1cmwpOwotICBpZiAodGhpcy5yZXBvcnRGdW5jKFRl
c3RIYXJuZXNzLnJlcG9ydFR5cGUuU1RBUlRfUEFHRSwgdXJsLCB1cmwsIHVuZGVmaW5lZCkpIHsK
LSAgICBpZnJhbWUuc3JjID0gdXJsOwotICAgIHRoaXMuc2V0VGltZW91dCh0ZXN0KTsKLSAgfSBl
bHNlIHsKLSAgICB0aGlzLnJlcG9ydFJlc3VsdHModXJsLCAhIXRoaXMuYWxsb3dTa2lwLCAic2tp
cHBlZCIsIHRydWUpOwotICAgIHRoaXMubm90aWZ5RmluaXNoZWQodXJsKTsKLSAgfQotfTsKLQot
VGVzdEhhcm5lc3MucHJvdG90eXBlLmdldFRlc3QgPSBmdW5jdGlvbih1cmwpIHsKLSAgdmFyIHRl
c3QgPSB0aGlzLnJ1bm5pbmdUZXN0c1tGaWx0ZXJVUkwodXJsKV07Ci0gIGlmICghdGVzdCkgewot
ICAgIHRocm93KCJ1bmtub3duIHRlc3Q6IiArIHVybCk7Ci0gIH0KLSAgcmV0dXJuIHRlc3Q7Ci19
OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUucmVwb3J0UmVzdWx0cyA9IGZ1bmN0aW9uKHVybCwg
c3VjY2VzcywgbXNnLCBza2lwcGVkKSB7Ci0gIHVybCA9IEZpbHRlclVSTCh1cmwpOwotICB2YXIg
dGVzdCA9IHRoaXMuZ2V0VGVzdCh1cmwpOwotICB0aGlzLmNsZWFyVGltZW91dCh0ZXN0KTsKLSAg
bG9nKHN1Y2Nlc3MgPyAiUEFTUyIgOiAiRkFJTCIsIG1zZyk7Ci0gIHRoaXMucmVwb3J0RnVuYyhU
ZXN0SGFybmVzcy5yZXBvcnRUeXBlLlRFU1RfUkVTVUxULCB1cmwsIG1zZywgc3VjY2Vzcywgc2tp
cHBlZCk7Ci0gIC8vIEZvciBlYWNoIHJlc3VsdCB3ZSBnZXQsIHJlc2V0IHRoZSB0aW1lb3V0Ci0g
IHRoaXMuc2V0VGltZW91dCh0ZXN0KTsKLX07Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5kZXF1
ZVRlc3QgPSBmdW5jdGlvbih0ZXN0KSB7Ci0gIHRoaXMuY2xlYXJUaW1lb3V0KHRlc3QpOwotICB0
aGlzLmlkbGVJRnJhbWVzLnB1c2godGVzdC5pZnJhbWUpOwotICBkZWxldGUgdGhpcy5ydW5uaW5n
VGVzdHNbdGVzdC50ZXN0RmlsZS51cmxdOwotICAtLXRoaXMubnVtVGVzdHNSZW1haW5pbmc7Ci19
Ci0KLVRlc3RIYXJuZXNzLnByb3RvdHlwZS5ub3RpZnlGaW5pc2hlZCA9IGZ1bmN0aW9uKHVybCkg
ewotICB1cmwgPSBGaWx0ZXJVUkwodXJsKTsKLSAgdmFyIHRlc3QgPSB0aGlzLmdldFRlc3QodXJs
KTsKLSAgbG9nKHVybCArICI6IGZpbmlzaGVkIik7Ci0gIHRoaXMuZGVxdWVUZXN0KHRlc3QpOwot
ICB0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5GSU5JU0hfUEFHRSwgdXJs
LCB1cmwsIHRydWUpOwotICB0aGlzLnN0YXJ0TmV4dFRlc3QoKTsKLX07Ci0KLVRlc3RIYXJuZXNz
LnByb3RvdHlwZS50aW1lb3V0ID0gZnVuY3Rpb24odGVzdCkgewotICB0aGlzLmRlcXVlVGVzdCh0
ZXN0KTsKLSAgdmFyIHVybCA9IHRlc3QudGVzdEZpbGUudXJsOwotICBsb2codXJsICsgIjogdGlt
ZW91dCIpOwotICB0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5GSU5JU0hf
UEFHRSwgdXJsLCB1cmwsIHVuZGVmaW5lZCk7Ci0gIHRoaXMuc3RhcnROZXh0VGVzdCgpOwotfTsK
LQotVGVzdEhhcm5lc3MucHJvdG90eXBlLnNldFRpbWVvdXREZWxheSA9IGZ1bmN0aW9uKHgpIHsK
LSAgdGhpcy50aW1lb3V0RGVsYXkgPSB4OwotfTsKLQotcmV0dXJuIHsKLSAgICAnVGVzdEhhcm5l
c3MnOiBUZXN0SGFybmVzcwotICB9OwotCi19KCk7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDhjOTFjMjNlYmU3MDE1ZDNiNDkxMWIxNzA2YTg0M2JlZDAyNTMzOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotInVzZSBzdHJpY3QiOwotKGZ1bmN0aW9uKCkgewot
ICB2YXIgbnVtRmFpbHVyZXMgPSAwOwotCi0gIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyID0gd2luZG93LnRlc3RSdW5uZXI7Ci0gIH0KLQotICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgIC8vIFR1cm4gb2Zm
IGNvbnNvbGUgbWVzc2FnZXMgYmVjYXVzZSBmb3IgdGhlIFdlYkdMIHRlc3RzIHRoZXkgYXJlCi0g
ICAgLy8gR1BVIGNhcGFiaWxpdHkgZGVwZW5kZW50LgotICAgIHdpbmRvdy5jb25zb2xlLmxvZyA9
IGZ1bmN0aW9uKCkgeyB9OwotICAgIHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7
IH07Ci0gIH0KLQotCi0gIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotICB9
Ci0KLSAgdmFyIGxvZyA9IGZ1bmN0aW9uKG1zZywgY29sb3IpIHsKLSAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1zZykpOwotICAgIGlmIChjb2xvcikgewotICAgICAgZGl2LnN0eWxl
LmNvbG9yID0gY29sb3I7Ci0gICAgfQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5hcHBlbmRDaGlsZChkaXYpOwotICB9OwotCi0gIHdpbmRvdy53ZWJnbFRlc3RIYXJuZXNz
ID0gewotICAgIHJlcG9ydFJlc3VsdHM6IGZ1bmN0aW9uKHVybCwgc3VjY2VzcywgbXNnKSB7Ci0g
ICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgKytudW1GYWlsdXJlczsKLSAgICAgIH0KLSAg
ICB9LAotCi0gICAgbm90aWZ5RmluaXNoZWQ6IGZ1bmN0aW9uKHVybCkgewotICAgICAgdmFyIGlm
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKTsKLSAgICAgIGlmcmFtZS5p
bm5lckhUTUwgPSAiIjsKLSAgICAgIGlmIChudW1GYWlsdXJlcyA+IDApIHsKLSAgICAgICAgbG9n
KCJGQUlMIiwgInJlZCIpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgbG9nKCJQQVNTIiwgImdy
ZWVuIik7Ci0gICAgICB9Ci0KLSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotICAgICAgfQot
ICAgIH0sCi0gIH0KLX0oKSk7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyYmU1NWQ3ZWRmYjE2NWRjYTg2YTdmNTY3NzA2OGY2MTM3
ZjQxYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgotCi1UZXN0OiByZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCi1QQVNTCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYThmOTJiOTJkZjgyMDI3YmRkODk1MWRmM2RmZmU5YTE5YTZm
YTFjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhJbWFnZTJESFRNTC5odG1sPC90aXRs
ZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+Ci1UZXN0OiA8YSBocmVmPSJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIj5yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1s
PC9hPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1l
IHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4SW1hZ2UyREhUTUwuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzQzZDZhZTM2MzA1MGUwMmYzOGJl
YWM0YWU2YTllZGJjYTA4MjgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4U3ViSW1hZ2Uy
REhUTUwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAotUEFTUwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdl
MkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1Yklt
YWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmYWQ3ZTUxM2Jh
YzQ5OWY4NGU2OGVhNTAzYzY2YmIwNmJkNmE3YjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90
ZXhTdWJJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEt
LSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHku
IERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0icmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3Vi
SW1hZ2UyREhUTUwuaHRtbCI+cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDwvYT4KLTxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9InJlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGE1
OWNiYzNlYzE4YWIzOTI1OWNiMzQzMGUxNGM5NmJhNTVlNjYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05T
T0xFIE1FU1NBR0U6IFVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9tIGNhbnZhcyBiZWNhdXNl
IHRoZSBjYW52YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmlnaW4gZGF0YS4KK1RoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5o
dG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDZmNmFiZDhhOWYxNjA5MzBjM2MwMzRkN2UwNDE0NGZkMjQyZWY1ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFkQXJncy5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4K
K1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwiPi4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0i
NjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNjYjJlNDI2MTAy
NWZiNjY5MTZhM2Q0ZTM1MzJmMDJlZTI1YTA4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKK1sgUEFTUyBd
IEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjdlNjAyYzYyNGJlNDE1YmJm
ZjQ1YmVjMjE0NjI2MjQyOTRmNDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJE
SFRNTC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRl
eEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbDwvYT4KKzxk
aXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJ
bWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMGQxYTkwMjBiZDZkNjMwYWM0MmFkZjg5NDA5YzA4MjA3OGIxYzcw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJE
SFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYTFmZjM4OTI0NTQyMGE4MDY4MjQ5OGYzMDY3ZGZlYjRj
NjNhY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKQEAg
LTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1s
IiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmZmFjOTdjYWViMjE4MzU1YmQ2YTkzNWE5NGQ1
ZjljZTk5NzQxMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogW2xvYWRD
cm9zc09yaWdpbkltYWdlXQorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNz
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2Fu
dmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ2NzJlMmU3NzVkMjRhYjU1NDM0ODZk
ZjEwNjdkZmNhMDhmNGUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09O
U09MRSBNRVNTQUdFOiBbbG9hZENyb3NzT3JpZ2luSW1hZ2VdCitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYTUx
M2NjZWZhMGQ1N2I5NDc1YzcyNmMzYTVjZTdkNTEwMWU5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCkBAIC0wLDAg
KzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCI+Li4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8L2E+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9p
ZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNjNThmODdjNDVhNjA2YzM2
MDQ4ZjUzYWQ3NGM5MzA3Y2M4NmNhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2UuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0
OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIj4uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU3NTZjMjI5Y2U5NjNhZjVjNjZlZDZmOTY1ODQ1OWUyZDc3MDY0OGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVW5hYmxlIHRvIGdldCBpbWFnZSBkYXRhIGZyb20gY2Fu
dmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVlbiB0YWludGVkIGJ5IGNyb3NzLW9yaWdpbiBk
YXRhLgorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzFhZTg3MWFkMWMyNWU5ZmVkMDQ2ZWUyZWIxNDQ2
ZmE5ODY2NmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHJlYWRQaXhlbHNC
YWRBcmdzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBp
eGVsc0JhZEFyZ3MuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFy
Z3MuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZTM2N2QxZGQ1NDRmMGU4Njk1NzBmZWJlMmZkMGQzZmI0MDFkOGZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwu
aHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQyOGY1YWQxOWViYmM2ZGVjNDRmNTJiZmE0ZTU1NjI4ZTJjNzdmYWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4SW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVy
c2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5o
dG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8
L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1h
Z2UyREhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZDU2Nzc5NGJmZDliMTU0MTAxNjNh
YWEzZmNjYTA2Y2ExNzk4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRI
VE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0y
CitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMw
YmU2NWRkZmY0MmIzNGM3MzM3MzZlMzUzZGM4NmE4MzQ1NjM3MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJESFRNTC5odG1sPC90aXRsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rl
c3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRkYWY5MDY4
MzAyMDY5M2EyZDMzNDg2NzM4Y2I2ZmFiYmE3MjJiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09O
U09MRSBNRVNTQUdFOiBbbG9hZENyb3NzT3JpZ2luSW1hZ2VdCitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJn
bFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY5NGY0M2NhYmViYjBkOTJlODRlNjEzNTYzYzdjMGVhOTQxMzBiMDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2FkQ3Jv
c3NPcmlnaW5JbWFnZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNp
b249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIxMDdlOWZjZDE5
YmNhZDA5Mjc5MDE4MjFjZTYxODliODc0MjdhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lv
bj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xW
ZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMzVlZDdkZTlhMDY5ZTAwNDJmOTkyZTNiMjVkZDdhMTAwNjcy
MGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMjZmNjA4MzdmZDkxM2U1YzU4YTY4ZTk0MGI0MjFlMTgw
OWY0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1v
ZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNT
QUdFOiBbbG9hZENyb3NzT3JpZ2luSW1hZ2VdCitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5o
dG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgyMjE0Y2E5NDBjMjAyODc0ZTgxMDEwNDU0MDYzNDcyOTA3NGE1MmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3Jl
ZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWJkYmNlZDcxMTYwZjExNjNjNjExNTNhNmM2YTNiYjFi
ZDAwOWI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKQEAgLTAsMCArMSw1MTkgQEAKKy8qCisqKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
CisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgor
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
CisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgorKi8KKworKGZ1bmN0aW9uKCkgeworICB2YXIgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9
IGZhbHNlOworCisgIHZhciBpbml0Tm9uS2hyb25vc0ZyYW1ld29yayA9IGZ1bmN0aW9uKCkgewor
ICAgIGlmICh0ZXN0SGFybmVzc0luaXRpYWxpemVkKSB7CisgICAgICByZXR1cm47CisgICAgfQor
ICAgIHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgLyogLS0gcGxhZm9ybSBz
cGVjaWZpYyBjb2RlIC0tICovCisKKyAgICAvLyBXZWJLaXQgU3BlY2lmaWMgY29kZS4gQWRkIHlv
dXIgY29kZSBoZXJlLgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3
aW5kb3cudGVzdFJ1bm5lcjsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAvLyBUaGUgV2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNv
bXBhcmVzIGNvbnNvbGUgb3V0cHV0LgorICAgICAgLy8gQmVjYXVzZSB0aGUgb3V0cHV0IG9mIHRo
ZSBXZWJHTCBUZXN0cyBpcyBHUFUgZGVwZW5kZW50CisgICAgICAvLyB3ZSB0dXJuIG9mZiBjb25z
b2xlIG1lc3NhZ2VzLgorICAgICAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07
CisgICAgICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9OworICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFs
c2UpOworCisgICAgICAvLyBSQUYgZG9lc24ndCB3b3JrIGluIExheW91dFRlc3RzLiBEaXNhYmxl
IGl0IHNvIHRoZSB0ZXN0cyB3aWxsCisgICAgICAvLyB1c2Ugc2V0VGltZW91dCBpbnN0ZWFkLgor
ICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgICAgIHdp
bmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB1bmRlZmluZWQ7CisgICAgfQorCisg
ICAgLyogLS0gZW5kIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgLS0qLworICB9CisKKyAgdGhpcy5p
bml0VGVzdGluZ0hhcm5lc3MgPSBmdW5jdGlvbigpIHsKKyAgICBpbml0Tm9uS2hyb25vc0ZyYW1l
d29yaygpOworICB9Cit9KCkpOworCitmdW5jdGlvbiBub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5
RG9uZSgpIHsKKyAgLy8gV2ViS2l0IFNwZWNpZmljIGNvZGUuIEFkZCB5b3VyIGNvZGUgaGVyZS4K
KyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorCitmdW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0
c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0
SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1
bHRzKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgc3VjY2VzcywgbXNnKTsKKyAgfQorfQorCitm
dW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIHsKKyAgaWYgKHdpbmRvdy5wYXJlbnQu
d2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5u
b3RpZnlGaW5pc2hlZCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpOworICB9CisgIGlmICh3aW5k
b3cubm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUpIHsKKyAgICB3aW5kb3cubm9uS2hyb25v
c0ZyYW1ld29ya05vdGlmeURvbmUoKTsKKyAgfQorfQorCitmdW5jdGlvbiBfbG9nVG9Db25zb2xl
KG1zZykKK3sKKyAgICBpZiAod2luZG93LmNvbnNvbGUpCisgICAgICB3aW5kb3cuY29uc29sZS5s
b2cobXNnKTsKK30KKwordmFyIF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZyA9IGZhbHNlOworCitm
dW5jdGlvbiBlbmFibGVKU1Rlc3RQcmVWZXJib3NlTG9nZ2luZygpCit7CisgICAgX2pzVGVzdFBy
ZVZlcmJvc2VMb2dnaW5nID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gZGVzY3JpcHRpb24obXNnKQor
eworICAgIGluaXRUZXN0aW5nSGFybmVzcygpOworICAgIGlmIChtc2cgPT09IHVuZGVmaW5lZCkg
eworICAgICAgbXNnID0gZG9jdW1lbnQudGl0bGU7CisgICAgfQorICAgIC8vIEZvciBNU0lFIDYg
Y29tcGF0aWJpbGl0eQorICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpOworICAgIHNwYW4uaW5uZXJIVE1MID0gJzxwPicgKyBtc2cgKyAnPC9wPjxwPk9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiPHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3Nw
YW4+IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBM
RVRFPC9zcGFuPiIuPC9wPic7CisgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRlc2NyaXB0aW9uIik7CisgICAgaWYgKGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQp
CisgICAgICAgIGRlc2NyaXB0aW9uLnJlcGxhY2VDaGlsZChzcGFuLCBkZXNjcmlwdGlvbi5maXJz
dENoaWxkKTsKKyAgICBlbHNlCisgICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHNwYW4p
OworICAgIGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2xvZ1RvQ29u
c29sZShtc2cpOworICAgIH0KK30KKworZnVuY3Rpb24gX2FkZFNwYW4oY29udGVudHMpCit7Cisg
ICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChzcGFuKTsgLy8gaW5zZXJ0
IGl0IGZpcnN0IHNvIFhIVE1MIGtub3dzIHRoZSBuYW1lc3BhY2UKKyAgICBzcGFuLmlubmVySFRN
TCA9IGNvbnRlbnRzICsgJzxiciAvPic7Cit9CisKK2Z1bmN0aW9uIGRlYnVnKG1zZykKK3sKKyAg
ICBfYWRkU3Bhbihtc2cpOworICAgIGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKwlf
bG9nVG9Db25zb2xlKG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQp
Cit7CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2cs
ICImbHQ7Iik7Cit9CisKK2Z1bmN0aW9uIHRlc3RQYXNzZWQobXNnKQoreworICAgIHJlcG9ydFRl
c3RSZXN1bHRzVG9IYXJuZXNzKHRydWUsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFu
IGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4n
KTsKKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisJX2xvZ1RvQ29uc29sZSgn
UEFTUyAnICsgbXNnKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWlsZWQobXNnKQorewor
ICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKGZhbHNlLCBtc2cpOworICAgIF9hZGRTcGFu
KCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVzY2FwZUhUTUwobXNn
KSArICc8L3NwYW4+Jyk7CisgICAgX2xvZ1RvQ29uc29sZSgnRkFJTCAnICsgbXNnKTsKK30KKwor
ZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoX2EsIF9iKQoreworICAgIHRyeSB7CisgICAgICAgIGlm
IChfYS5sZW5ndGggIT09IF9iLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfYS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlm
IChfYVtpXSAhPT0gX2JbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0g
Y2F0Y2ggKGV4KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Z1bmN0aW9uIGlzTWludXNaZXJvKG4pCit7CisgICAgLy8gdGhlIG9ubHkgd2F5
IHRvIHRlbGwgMCBmcm9tIC0wIGluIEpTIGlzIHRoZSBmYWN0IHRoYXQgMS8tMCBpcworICAgIC8v
IC1JbmZpbml0eSBpbnN0ZWFkIG9mIEluZmluaXR5CisgICAgcmV0dXJuIG4gPT09IDAgJiYgMS9u
IDwgMDsKK30KKworZnVuY3Rpb24gaXNSZXN1bHRDb3JyZWN0KF9hY3R1YWwsIF9leHBlY3RlZCkK
K3sKKyAgICBpZiAoX2V4cGVjdGVkID09PSAwKQorICAgICAgICByZXR1cm4gX2FjdHVhbCA9PT0g
X2V4cGVjdGVkICYmICgxL19hY3R1YWwpID09PSAoMS9fZXhwZWN0ZWQpOworICAgIGlmIChfYWN0
dWFsID09PSBfZXhwZWN0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh0eXBlb2Yo
X2V4cGVjdGVkKSA9PSAibnVtYmVyIiAmJiBpc05hTihfZXhwZWN0ZWQpKQorICAgICAgICByZXR1
cm4gdHlwZW9mKF9hY3R1YWwpID09ICJudW1iZXIiICYmIGlzTmFOKF9hY3R1YWwpOworICAgIGlm
IChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoX2V4cGVjdGVkKSA9PSBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoW10pKQorICAgICAgICByZXR1cm4gYXJlQXJyYXlzRXF1YWwo
X2FjdHVhbCwgX2V4cGVjdGVkKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIHN0
cmluZ2lmeSh2KQoreworICAgIGlmICh2ID09PSAwICYmIDEvdiA8IDApCisgICAgICAgIHJldHVy
biAiLTAiOworICAgIGVsc2UgcmV0dXJuICIiICsgdjsKK30KKworZnVuY3Rpb24gZXZhbEFuZExv
ZyhfYSkKK3sKKyAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjog
dHJ5QW5kTG9nKCkgZXhwZWN0cyBhIHN0cmluZyBhcmd1bWVudCIpOworCisgIC8vIExvZyBmaXJz
dCBpbiBjYXNlIHRoaW5ncyBnbyBob3JyaWJseSB3cm9uZyBvciB0aGlzIGNhdXNlcyBhIHN5bmMg
ZXZlbnQuCisgIGRlYnVnKF9hKTsKKworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBl
dmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoX2EgKyAiIHRocmV3IGV4
Y2VwdGlvbiAiICsgZSk7CisgIH0KKyAgcmV0dXJuIF9hdjsKK30KKworZnVuY3Rpb24gc2hvdWxk
QmUoX2EsIF9iLCBxdWlldCkKK3sKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5
cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkgZXhw
ZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2
OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOwor
CisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBp
ZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7Cisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgX2IpOworICAgICAgICB9CisgICAg
fSBlbHNlIGlmICh0eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKKyAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsg
Ii4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsg
X2J2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiArICIgKG9m
IHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKK30KKworZnVuY3Rpb24gc2hvdWxkTm90QmUo
X2EsIF9iLCBxdWlldCkKK3sKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVv
ZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkgZXhw
ZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2
OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOwor
CisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5v
dCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVs
c2UgaWYgKCFpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CisgICAgICAgIGlmICghcXVpZXQp
IHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOworICAgICAg
ICB9CisgICAgfSBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUg
IiArIF9idiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVHJ1ZShfYSkgeyBzaG91bGRC
ZShfYSwgInRydWUiKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVGYWxzZShfYSkgeyBzaG91bGRCZShf
YSwgImZhbHNlIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlTmFOKF9hKSB7IHNob3VsZEJlKF9hLCAi
TmFOIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlTnVsbChfYSkgeyBzaG91bGRCZShfYSwgIm51bGwi
KTsgfQorCitmdW5jdGlvbiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYSwgYikKK3sKKyAgdmFyIHVu
ZXZhbGVkU3RyaW5nID0gJyInICsgYi5yZXBsYWNlKC8iL2csICJcIiIpICsgJyInOworICBzaG91
bGRCZShhLCB1bmV2YWxlZFN0cmluZyk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEV2YWx1YXRlVG8o
YWN0dWFsLCBleHBlY3RlZCkgeworICAvLyBBIGdlbmVyYWwtcHVycG9zZSBjb21wYXJhdG9yLiAg
J2FjdHVhbCcgc2hvdWxkIGJlIGEgc3RyaW5nIHRvIGJlCisgIC8vIGV2YWx1YXRlZCwgYXMgZm9y
IHNob3VsZEJlKCkuICdleHBlY3RlZCcgbWF5IGJlIGFueSB0eXBlIGFuZCB3aWxsIGJlCisgIC8v
IHVzZWQgd2l0aG91dCBiZWluZyBldmFsJ2VkLgorICBpZiAoZXhwZWN0ZWQgPT0gbnVsbCkgewor
ICAgIC8vIERvIHRoaXMgYmVmb3JlIHRoZSBvYmplY3QgdGVzdCwgc2luY2UgbnVsbCBpcyBvZiB0
eXBlICdvYmplY3QnLgorICAgIHNob3VsZEJlTnVsbChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5
cGVvZiBleHBlY3RlZCA9PSAidW5kZWZpbmVkIikgeworICAgIHNob3VsZEJlVW5kZWZpbmVkKGFj
dHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJmdW5jdGlvbiIpIHsKKyAg
ICAvLyBBbGwgdGhpcyBmdXNzIGlzIHRvIGF2b2lkIHRoZSBzdHJpbmctYXJnIHdhcm5pbmcgZnJv
bSBzaG91bGRCZSgpLgorICAgIHRyeSB7CisgICAgICBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFs
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICB0ZXN0RmFpbGVkKCJFdmFsdWF0aW5nICIgKyBh
Y3R1YWwgKyAiOiBUaHJldyBleGNlcHRpb24gIiArIGUpOworICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBzaG91bGRCZSgiJyIgKyBhY3R1YWxWYWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2cs
ICIiKSArICInIiwKKyAgICAgICAgICAgICAiJyIgKyBleHBlY3RlZC50b1N0cmluZygpLnJlcGxh
Y2UoL1xuL2csICIiKSArICInIik7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJv
YmplY3QiKSB7CisgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCArICIgPT0gJyIgKyBleHBlY3RlZCAr
ICInIik7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJzdHJpbmciKSB7CisgICAg
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVk
ID09ICJib29sZWFuIikgeworICAgIHNob3VsZEJlKCJ0eXBlb2YgIiArIGFjdHVhbCwgIidib29s
ZWFuJyIpOworICAgIGlmIChleHBlY3RlZCkKKyAgICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwpOwor
ICAgIGVsc2UKKyAgICAgIHNob3VsZEJlRmFsc2UoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBl
b2YgZXhwZWN0ZWQgPT0gIm51bWJlciIpIHsKKyAgICBzaG91bGRCZShhY3R1YWwsIHN0cmluZ2lm
eShleHBlY3RlZCkpOworICB9IGVsc2UgeworICAgIGRlYnVnKGV4cGVjdGVkICsgIiBpcyB1bmtu
b3duIHR5cGUgIiArIHR5cGVvZiBleHBlY3RlZCk7CisgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCwg
IiciICArZXhwZWN0ZWQudG9TdHJpbmcoKSArICInIik7CisgIH0KK30KKworZnVuY3Rpb24gc2hv
dWxkQmVOb25aZXJvKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkg
eworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24g
PSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgYmUgbm9uLXplcm8uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBp
ZiAoX2F2ICE9IDApCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9uLXplcm8uIik7CisgIGVs
c2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFdhcyAiICsgX2F2
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVOb25OdWxsKF9hKQoreworICB2YXIgZXhjZXB0aW9u
OworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAo
ZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0
ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLW51bGwuIFRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2ICE9IG51bGwpCisgICAgdGVzdFBhc3NlZChfYSAr
ICIgaXMgbm9uLW51bGwuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgbm9uLW51bGwuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVVbmRlZmlu
ZWQoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9h
diA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0K
KworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRl
ZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAodHlwZW9m
IF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyB1bmRlZmluZWQu
Iik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBX
YXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlRGVmaW5lZChfYSkKK3sKKyAgdmFy
IGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7Cisg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRp
b24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2ICE9PSB1bmRlZmluZWQpCisgICAg
dGVzdFBhc3NlZChfYSArICIgaXMgZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKF9hLCBfYikgeworICAgIGlmICh0eXBlb2YgX2EgIT0g
InN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FSTjog
c2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisK
KyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2
ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOwor
ICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAg
ICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcgZXhj
ZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVm
aW5lZCIgfHwgX2F2IDwgX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
Pj0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsg
IikuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsgX2Ip
OworfQorCitmdW5jdGlvbiBleHBlY3RUcnVlKHYsIG1zZykgeworICBpZiAodikgeworICAgIHRl
c3RQYXNzZWQobXNnKTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKG1zZyk7CisgIH0KK30K
KworZnVuY3Rpb24gc2hvdWxkVGhyb3coX2EsIF9lKQoreworICB2YXIgZXhjZXB0aW9uOworICB2
YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgewor
ICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgdmFyIF9ldjsKKyAgaWYgKF9lKQorICAgICAg
X2V2ID0gIGV2YWwoX2UpOworCisgIGlmIChleGNlcHRpb24pIHsKKyAgICBpZiAodHlwZW9mIF9l
ID09ICJ1bmRlZmluZWQiIHx8IGV4Y2VwdGlvbiA9PSBfZXYpCisgICAgICB0ZXN0UGFzc2VkKF9h
ICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7CisgICAgZWxzZQorICAg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRl
ZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBl
eGNlcHRpb24gKyAiLiIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIp
CisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1
bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsK
KyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBf
ZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAiICsgX2F2
ICsgIi4iKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkgeworICAgIHZh
ciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFs
KF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQor
CisgICAgdmFyIF90eXBldiA9IGV2YWwoX3R5cGUpOworCisgICAgaWYoX3R5cGV2ID09PSBOdW1i
ZXIpeworICAgICAgICBpZihfYXYgaW5zdGFuY2VvZiBOdW1iZXIpeworICAgICAgICAgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzZSBpZih0eXBlb2YoX2F2KSA9PT0gJ251bWJlcicpeworICAgICAgICAgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzZXsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0
YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChfYXYgaW5z
dGFuY2VvZiBfdHlwZXYpIHsKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFu
Y2Ugb2YgIiArIF90eXBlKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKF9hICsg
IiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGFzc2VydE1zZyhhc3NlcnRpb24sIG1zZykgeworICAgIGlmIChhc3NlcnRpb24pIHsKKyAgICAg
ICAgdGVzdFBhc3NlZChtc2cpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQobXNn
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdjKCkgeworICAgIGlmICh3aW5kb3cuR0NDb250cm9s
bGVyKSB7CisgICAgICAgIHdpbmRvdy5HQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5vcGVyYSAmJiB3aW5kb3cub3BlcmEuY29s
bGVjdCkgeworICAgICAgICB3aW5kb3cub3BlcmEuY29sbGVjdCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LlF1ZXJ5SW50ZXJmYWNlKENvbXBv
bmVudHMuaW50ZXJmYWNlcy5uc0lJbnRlcmZhY2VSZXF1ZXN0b3IpCisgICAgICAgICAgICAgIC5n
ZXRJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSURPTVdpbmRvd1V0aWxzKQorICAg
ICAgICAgICAgICAuZ2FyYmFnZUNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gY2F0
Y2goZSkge30KKworICAgIGZ1bmN0aW9uIGdjUmVjKG4pIHsKKyAgICAgICAgaWYgKG4gPCAxKQor
ICAgICAgICAgICAgcmV0dXJuIHt9OworICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSAr
IChpIC8gMTAwMDAwKX07CisgICAgICAgIHRlbXAgKz0gImZvbyI7CisgICAgICAgIGdjUmVjKG4t
MSk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICBn
Y1JlYygxMCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisgIHZhciBlcGlsb2d1ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOworICB2YXIgYmFzZVBhdGggPSAiIjsKKyAgdmFyIGV4cGVjdGVkQmFzZSA9ICJqcy10
ZXN0LXByZS5qcyI7CisgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoJ3NjcmlwdCcpOworICBmb3IgKHZhciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRz
W2ldOyBpKyspIHsKKyAgICB2YXIgc3JjID0gc2NyaXB0LnNyYzsKKyAgICB2YXIgbCA9IHNyYy5s
ZW5ndGg7CisgICAgaWYgKHNyYy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4
cGVjdGVkQmFzZSkgeworICAgICAgYmFzZVBhdGggPSBzcmMuc3Vic3RyKDAsIGwgLSBleHBlY3Rl
ZEJhc2UubGVuZ3RoKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICBlcGlsb2d1ZS5zcmMg
PSBiYXNlUGF0aCArICJqcy10ZXN0LXBvc3QuanMiOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVwaWxvZ3VlKTsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFk
UGl4ZWxzQmFkQXJncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMTU1ZWQ2MWJmNTAxYmRkM2U2ZDc2ZTBh
MDMyZmU0MzFiMDQ2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0i
Z2wiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJjIiB3aWR0
aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PC9jYW52YXM+Cis8aW1nIGlkPSJpIj4KKzxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2
YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVz
b3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Cit2YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVz
b3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7CisKK1Rlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFBy
ZXZlbnRzIHRoZSB0ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCisK
K1Rlc3RzLnN0YXJ0VW5pdCA9IGZ1bmN0aW9uICgpIHsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29u
dGV4dChjYW52YXMpKTsKKyAgcmV0dXJuIFtnbF07Cit9CisKK1Rlc3RzLnRlc3RSZWFkUGl4ZWxz
ID0gZnVuY3Rpb24oZ2wpIHsKKyAgLy8gd2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRv
IGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAorICAvLyBvciBiZWNhdXNlIHRoZSBidWZm
ZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25zLgorICBhc3NlcnRTb21lR0xFcnJv
cihnbCwgIm5lZ2F0aXZlIHdpZHRoIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygw
LDAsLTEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhB
cnJheSg0KSk7fSk7CisgIGFzc2VydFNvbWVHTEVycm9yKGdsLCAgIm5lZ2F0aXZlIGhlaWdodCIs
CisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsLTEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOworICBhc3NlcnRP
aygibmVnYXRpdmUgeCIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoLTEsMCwxLDEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkp
O30pOworICBhc3NlcnRPaygibmVnYXRpdmUgeSIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQ
aXhlbHMoMCwtMSwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3
IFVpbnQ4QXJyYXkoNCkpO30pOworICBhc3NlcnRPaygiaGVpZ2h0ID4gYmFja2J1ZmZlciBoZWln
aHQiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxNiwxNywgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSgxNioxNyo0KSk7fSk7
CisgIGFzc2VydE9rKCJ3aWR0aCA+IGJhY2tidWZmZXIgd2lkdGgiLAorICAgICAgZnVuY3Rpb24o
KXtnbC5yZWFkUGl4ZWxzKDAsMCwxNywxNiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAg
ICAgICAgICBuZXcgVWludDhBcnJheSgxNyoxNio0KSk7fSk7CisgIGFzc2VydE9rKCJ3aWR0aCwg
aGVpZ2h0ID0gMCIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDAsMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSgwKSk7fSk7
CisgIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2Yg
bmVnYXRpdmUgd2lkdGgKKyAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBt
YXRjaCB0aGUgZGltZW5zaW9ucy4KKyAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgZm9ybWF0
IiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5GTE9BVCwgZ2wu
VU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KjQpKTt9KTsKKyAgLy8g
d2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2
ZSB3aWR0aAorICAvLyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRo
ZSBkaW1lbnNpb25zLgorICBhc3NlcnRTb21lR0xFcnJvcihnbCwgImJhZCB0eXBlIiwKKyAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5BTFBIQSwgZ2wuRkxPQVQsCisg
ICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMSo0KSk7fSk7Cit9CisKK1Rlc3RzLnRlc3RSZWFkUGl4
ZWxzU09QSU1HID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImkiKTsKKyAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgLy8gU09QIGZhaWx1cmUKKyAg
ICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRocm93IGJlY2F1c2UgaW1nIGlzIGZyb20gYW5v
dGhlciBkb21haW4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7CisgICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgYXNzZXJ0T2soImNhbnZh
cyBzdGlsbCBvcmlnaW4tY2xlYW4iLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAs
MCwxLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJy
YXkoNCkpO30pOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKK30KK1Rlc3RzLnRlc3RSZWFk
UGl4ZWxzU09QQ2FudmFzID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIgaW1nID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImkiKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjIik7CisgICAgYy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShpbWcsIDAsIDApOworICAg
IGFzc2VydEZhaWwoImNhbnZhcyB0aHJvd3MgYmVjYXVzZSBub3Qgb3JpZ2luIGNsZWFuIiwKKyAg
ICAgIGZ1bmN0aW9uKCl7Yy5nZXRDb250ZXh0KCIyZCIpLmdldEltYWdlRGF0YSgwLDAsMSwxKTt9
KTsKKyAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgLy8gU09QIGZhaWx1cmUKKyAgICBhc3NlcnRUaHJv
d05vR0xFcnJvcihnbCwgInRocm93IGJlY2F1c2UgY2FudmFzIGlzIG5vdCBvcmlnaW4gY2xlYW4i
LAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOworICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIG51bGwpOworICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3JpZ2lu
LWNsZWFuIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKKyAg
ICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihn
bCkgeworfTsKKworKGFzeW5jIGZ1bmN0aW9uKCkgeworICBjb25zdCBpbWcgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaScpOworICB0cnkgeworICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91
dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1Vy
bCkpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVk
ICgke2V9KS5gKTsKKyAgICBmaW5pc2hUZXN0KCk7CisgICAgcmV0dXJuOworICB9CisgIGluaXRU
ZXN0cygpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2M3OGQxNjM1
NzU2NWZlNjUzOGVlYmZmOWY3ZjEzMTRhZTNlOTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCkBAIC0wLDAgKzEsMTQ5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxzY3Jp
cHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9Imlk
ZW50aXR5LWZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZl
YzMgVmVydGV4OworYXR0cmlidXRlIHZlYzIgVGV4OworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQw
Owordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleC5zLCAxLjAtVGV4LnQs
IDAuMCwgMC4wKTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0eS1oZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94
LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CithdHRyaWJ1dGUgdmVjMiBUZXg7CisK
K3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHRleENvb3JkMCA9
IHZlYzQoMS4wLVRleC5zLCBUZXgudCwgMC4wLCAwLjApOworICAgIGdsX1Bvc2l0aW9uID0gdmVj
NChWZXJ0ZXgsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImlkZW50aXR5LWZyYWci
IHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisK
K3VuaWZvcm0gc2FtcGxlcjJEIFRleHR1cmU7CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2
b2lkIG1haW4oKQoreworICAgIHZlYzQgYyA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAu
c3QpOworICAgIGdsX0ZyYWdDb2xvciA9IGM7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZhcz4KKzxj
YW52YXMgaWQ9ImMiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZhcz4KKzxpbWcgaWQ9
ImkiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiAgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQs
aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRUFDQVlBQUFCY2NxaG1BQUFUVkVsRVFWUjRu
TzNkK1ZQVWQ1N0hjZjJiOWs5WSt6NDQrcUs3T1pvR0ZWQTVWZkJHemFoOWN4cE56R0VPb1J1YTVs
QkV1ZS9ESzRmWjdNYXBtU20zTWxzaHU4eE9kQ3BESnQzdi9hRUJBVUhBT01HNHowZlY1M2ZxVS9W
NmZkN2ZUL2UzMmJFREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd092QmthcjdsKzMrR3dCc2s4eFVy
VDByVGI4dngyUTQ1amFubHU3WXNXUG5zZ1hnVGVZd2FrODVVM1h2NVppTTMrWGJVaC9sMmRJQ0Jj
NjA4MFdaMXVyOTJiYVNIUlFCOEdheUdkVVd1MUh6b1NORk8rWk0xZjJjYlRMTTUxbFQ1d29jNXJr
RE9iYlovVm0yU0VtMjNWdnN5amhWNW5KUUJzQ2J4R1pRVnRtTjZwNE1vL1lQZHFOR0hLbGF5VXJY
Sjl6V2xFU2gweEl2enNtWUwzSFo1NHB6TW02VnVSeVJNcGZUVytweVVBYkFtOEJtVk5WbkdOVFRk
cVA2dnpPTUdyR25hTVNacXBOc2sxN3liS2xTNkRUTC9peGJvdFJsajVmbE91YkwzSTY1TXBmalZy
bmJFYWxZS0lOU2wzMzV2UUdBM3dLYlVXMnhHZFdSREtQNjZ3eWpXaFlMd0pHaUZXZWFUckpOQm5G
YlUyU1AzU1Q3czZ4U21tdVhjcmN6VWU1MnhzdHpIZlBsYnNkY3VkdDVxeXpYM2xLV2x4a3N6WEdl
SzhteG55ekp5U2plUVJrQXJ6ZWJRVmxsTTZwN2JVYjE0OVVGNEVqVlNtYWFUckxTOWVLeXBNZ2Vl
N29jeUxaSm1kc2hGWG1aVXBIblhGRUdCL096SnNyZGpxRXl0L05tV2E0OVhKYnQ5SmE2TWs0VnU3
aEVCRjVMTnIycTNtWlF6OWdNNnU5WEZFQnFzZ0NjYVRySlhKZ0VjaTBwc3RkaGt2M1pOaW5OVFpi
QW9md3NPWlNmSlFmek1xVTh6NWtvZHpzU1pibU9lSVhiK1hXNTJ6RmE1bkxjS25QWkkyVUxsNGpG
ZktJQXZCN01PclhGWmxCSGJBYjExemFqK2ttR1ViTnVBV1NtNjVkS1lIZEdtaFJsV3FROHp5RkhD
bkxrK0w1Y09WNlVLMGNLWFZLNUoxc081bWRLaGRzcFphdktvRFRYMFZQaWNpVExJSHRGR1ZBSXdL
L05ZbEJXMmZUcVhwdEIvZGhtU0o3K0x5cUFySFM5NUppVEpWRGdORWxsUVpaNEtndWxycnBVNnF0
TEpYQnN2NXd0M3lNbjlydmxhSUZMRGk4dmcxeEg0bUIrNXArV2wwRnBqcjJsSk1jUkxNNnlueXZP
empoeElJdDdBK0JYWTlHcjZxMEw0LzlTQWFSb3hMN3cvTDlXQVdTYkRKSnJUWkZpZDRaNGp4WkpV
LzF4dWZIaE9lbStlazZpbDAvTEI3NHFhVHhUSm9HaisrVnMyUjQ1dmo5WGpoVGt5T0hkQzQ4SkMy
VndhSGZtbnlyY3puK3ZjRHNteW5MdFF5VTVHVGVMY3pMQ3BUazJUM0dXN1ZoeFZzYWU3ZDRmNEkx
bDFxa3RWb002WWpPb3ZyWWExRDhzRm9COVdRRTQxNWtBOHUxcGN2UkFqbndVT2lMRExRRzUxOTBv
OTI0MnlsUkhuUXlHL1hMejZubUpYcXFXRDN5VjBuQzZWUHhIOThuWnN0MXlmRit1SEMxMFNkWGVi
RG1Vbnl5RHFvTHM3dzdsWjM1YjduYjhzY3h0LzdkU2wzMmtKQ2VqcXlRbjQwcEpUa2JaRGlZQzRO
V3phSlZWVnIycTEyWlFQYllhMUg5ZnV3QjBTd1dRbGE2WExGT3lBQW95VGZMVzRUM1NmdVdNM0wz
UklBLzdMOHZEL3N2eVplOGwrZXpXMjNLdnUxRW1PMnBsb05rbjNWZlBTZXZiMWZLK3QxSWF6NVJK
N2NsaThSMHBrdE9sK1hLc0tGa0dCeGZLb0hKdjFsOFA1bWYrdVNMUDhmdnlYTWRNbWRzUktYYzVx
b3RkR1FYYnZWL0FHOFdpVjlWYjlhb1pxMTQxYXpPb3hXYmNYQUhrV2xPa0pDOURhazhYeTYxUEw4
aURub3RMQmJCVUJIMlg1WXZibCtSQnowVzVlNk5CSnRwcnBML1pKemMvT2kvWFAzaExXaTZla3Zj
OGg2V3V1a1M4VmMvS1lQRUM4V2hoenBPcWd1enZLdmRtZlhWNGQyYjN3ZnpNOXcvbFpURU5BSytD
V2Fld1dIV3FpRTJ2K3RxcVYvMncyUUxJTmhra1AyTmgvSzg5SW1OdElmbWk5OUt6OFBjbDE1ZEw2
NUo4MFh0SlByLzF0dHkvMlNoM3V4dmt6dlY2R1krRnBPK2FWNjUvOER1SlhEd3BWenlIcE83VVFo
bVU1TXZSSXBkVTdjMlJRN3V6NU1SKzl4K09GYm51SGkzTWlWUVZ1S29QNzg0dTJ1NzlBMzdUTEZw
bGxWV242clhxVlkrdGV0V1BHeGJBc2d2QXZVNlR2SFZvdDhTdW5KWTdOK3JseTc2MWcvOWxiM0o5
c1d4OWZ2dVNmSDc3YlhuUWMxSHVkVGZJVEZlZGpMV0ZwUGVhUjdvK2VFdkNqU2ZseW9WRFVsZGRL
c0hqQitUQzRVSTVWWnduVlFVNWliY3E5bngxdWpTLzU4UUI5OVhxWW5mNURxWUI0T1ZZZE0vR2Y2
dGU5WS9rOC8vR0JlQ3lHS1hFblNFMTFRZWs1NVB6Y3Y5bTQ4clFyeFA4TDI1ZmtpOXV2eTJmcjFx
ZjNicVluQXh1Tk1oMFo1Mk1SSU55KzFPUFhQL3dkOUorNVl3MDE1K1FkODRmbEpxVHhYTGhjSUdj
TE03NytVaEJ6dDh1VkJhMm5xdmNlL1pzeFo2eTdkNUw0RGRsY2Z5MzZGVmZXL1NxSDZ3R2xhd3Vn
TVd2QVR2VGxoV0F5U0I1R2FseWRIK09mRlJ6UkVhalFmbjgxdHZyaC82RndWOWNGK1d6V3hmbHdh
Mkxjci9ub3R6cmJwU1o2L1V5MVZVbmt4MjFNdHdTa0o1UExrakhlMmVscWY2NFhENTNVRUluRGlR
dUhDNllyeTdPbXoxVzVIclkrRmJGNFIxTUE4RG1XTFRLS3N1eThkOXFVTCt3QUpaL0MzQ1BNMTNP
SHR3dGJlK2VsdW5yOWZMRnVzRi9QdlNmMzFvNytBOTZucTM3UFJmbGZrK2ozTCtaL0ZqeDdvMEdt
ZTZxazRuMkdobHE4VXZQeCtlbC9jb1p1VlozWEM2ZnEvaTU3bFR4MzJwT0huZ1VPbFVjL2pSNGxF
dENZQ01XbmFyZW9sZk5XUFNxV2F0QjlkT2FCYkRHbDRCY0ZxTVV1MjBTT25WQWJuNThUdTUyTjI3
cXRQOThnOUEvV0F6OVF2QVgxNzNGRXVodWtMdmREY25Kb0xOV3htTTFNaGp4eTgyUHprbm4rMmNT
c1hkUHo0Y2JUOHgrR0toOCtGSHdTTzBPU2dCWW0xbW5zSmgxcW9oRnIxd1kvNVh4WndXdy90ZUFz
OUtUdnd0d1pIKzJYQTFWeVhCclVCNzBYRnovdEY5bnpOOUs4TzkxTjhpOWhmQXZyanMzR3VUT2pY
cVpYbmhFR0crdmtkRm9VQWJEL3A5N1BqNy90NTZyNTcvcHUrYjVwT1hkNnFQYnZkZkFhOGVpM1ZW
bDBhbDZMWHJsWTR0TythTkZyMHBzdGdEMk9OTGx6TUhkRW4ybldxWTY2K1N6bHh6ekh5d2I4NThM
L1RyQnYzdmpXZmdYMTh6MTVKcnVxcE9wemxxWmFBOGx4bUtodjQ5R2czL29EL3MrM3U2OUJsNDdG
cDJpM3FKVnpWaDB5bG1yVHZtVFZaKzhBRno1SHNEekJaQmpOa3B4cmsyQ3B3NUk5MGZuNU02Tmho
ZWU5bHNPZnZmbWczL24rclB3ejF5dms1bXVPcGxlV0pNZHRmSEpqcHJ2Smp0cUtBQmd1ZVQ0cjRp
WWRjcXZ6YnBkUDFqMHl2anFBckN2OVNKUXVsN2N0bFNwMnBjdEh3WXJaYWdsSVBkdk5xNS8yci9n
WW05VHdiK3g5ZUJQZDlYSlZISVNtSi9xclAxbXVyT0dSd0JnT1pOMlY1VkZwK3kxYUJmR2Y1MHlz
VlFBYTN3SFlMRUFzdEwxc3R1UkxxY3I4cVgxOGltWjdLaVZCejBYWHhqNmpaL3ZOeG44NnhzSFAv
a0lVQ2RUblhYeDZjN2F2MHgxMVBSczkxNERyeDJUVGxGdjBpcG16RHJsckVXbi9NbWlWOGxtQ2lE
YmJKQUR1VFlKbnR3dk42NytUbWF1MXlkRHZtYm90MzZ4OXl6NDlTOFovTnJGTlQvZFZmdjdxYzY2
azl1OTE4QnJ4YXhlUGY0cjRoc1ZnSFBoOXdCenJTbFNWWlF0SHdRcVpURGlsN3ZkalZzNzdiY1kv
Sm10QjErbU9tc1RreDIxVDZhNmFrZTJlNitCMTQ1SnU2dktwRlAybXJUS3gyYnRzL0YvOFZ1QUx5
cUEzZlkwT1YyZUx5MlhUc3BFZTQzY2Y4R3ovVFlFWHlZN2FtV3lveVkrMVZIei9WUm5YZk4yN3pY
dzJsa2EvN1hLV1l0VytaTkZwNVRORkVDMnlTRDdYVllKbk5nblhSKytKZE5kZFpzKzdYK2Q0TmZL
WkVlTlRIYlV6RTkyMUR5YTVQSVBXQ2xOcmJDWXRjbngzNlRkOVlOWnA0aGJkS3FOQzJCaC9LOHN6
SkwzL1lkbElPeVRPemNhdHZ3eDNzWTMrcjhvK0RMWkVVcE10TmM4bWVoZy9BZWVZMUx2cWpKcGxi
MG1qZUt4V2F2NDBheFZKbFlYd0ZwdkFtYW02U1RmbmliVlpYa1NlZnVrak1WQ2NyZDdFeVArZXFm
OWxvSmZ1Mkh3SnpwcVpLSzlSc2JiUS9ISjl0RDNrNTAxalAvQWFpYU5vdDZrU1k3L1pxM2lKN05P
S1lzWGdDOHFnQ3lUUWZibFdNVi9mSjkwZm5CV0pqdHJWNHozV3pudG43dlJ2LzU4NkxjYS9HY3JO
RC9SSG5vMDJjNzRENnlRcGxaWVRGcEZ4S1JWTEkzL0t3dmcrUmVCN0NuSjN3RndXVkxrY0dHV3ZP
Yy9MUDNOWHBtNVh2L0xUL3ROQm45eUU4RWZUNFkvTVI0TFBSbHZEekgrQTZ1Wk5ZcEtrM1pYYi9y
QytHL1NLaEtiTFlDOGpEUTVWWlluNFlzblpMUXRLSGR1YkM3MG14M3pmMG53eDl0RE1oNEx5Vmdz
RkIrUEJiOGZiMmY4QjU2VHJsSFVwMnNWMHlhTlltbjgzMHdCWktYclpWKzJSWHpIOTBuSCsyZGxv
cU1tV1FDdjRMUi8rZUNIbG9LL0VINFpqd1hueDJQQlIyUHRRY1ovWURtVFJwbWFybFkwbVRTN3Zr
clRLUDVxMGlwK051dVVZdG1nQUJ5cFduRlpqSEtvSUZPdWVBOUpYNU5IcHJ2cU5oMzZ6WjcydnlU
NEMrRlBqTFlGbjR6SGdvei93R29temE3ZDZacGRNWk5HOFkxSm8zaGkxaTQ4LzIraUFQSXlVdVZr
cVZ1YUdrL0lTRFFvTTlkZjNXbS9NdmcxV3c3K1dDd2tZMjFCR1cwTHhrZmJndCtQeFVLTS84QnFh
WnBkdTlQVWlpYVRSdkdWU2F2NHk5SW5BQnNVUUdhNlhvcXlMZUk5VmlUdDc1MlI4ZmJRcXNDLzR0
TitpOEVmYXd2S2FEUW9JOUhBL0doYjhKdXhLT00vOEJ5VDVsOVQwOVNLUUxwR01XVFNLdjdUckZV
OE5ldVVpZVVGWUZ2MVl5Q09WSzNrbUpQai83dmVnOUo3elNOVG5iV3Y2TFIvQmNGZldDUFJRSHdr
R3ZqTFNEVEFtMy9BZXRMVnlqeVRSdm1PU2F1WU5Pc1UzNXAxeW45c1ZBQnVXNnFjTE0yVmF3M0ha
YmcxSU5OZHIrYTBYL3N6L0swRmZ6UWFsTkZvSUhuNlJ3Ty9IMmtMOHVZZjhDSW16YTVDazI3WGUy
YXRjc3FpVThiWExZQVVqV1NtNjZRd3l5emVZNFVTdTNKYXhtS2h0VVAvaTAvN21oV2hYeEg4dHZX
Q0g1U1JhRUJHbzRIRVNLdi95V2hyZ01zL1lEUFNkY29pczFieHZrV25mR3JSSytOckZZQTlSU3Za
Wm9NYzNPdVVkendINWZhMUN6TFJVZk5QUGUzSDF6anQxd3YrNGhwdURjUkhvb0h2UjZJQkx2K0F6
VExybEVWbW5mS2hSYWQ4YWwzejU4QzA0cmFseUltU1hMbldjRXlHV3YweTJWa3JVMTNQaC82bFR2
c05nais2UWZCSFdnTXkzQnFRNFZiLy9IQnI0TkZJMU0vbEg3QVZGcjBxWU5HckhscjFxcWMyZ3lx
Ky9FMUFaNXBPQ3JOTTRqbGFJRzFYVHN0b1cvQ2ZkOXEvVlBBRE10enFUd3kzK0o4TU0vNERMMlhu
aWhJd3F1STJvMXJzS1JySk5obWtZcTlETGwrb2tGdWZuSmZ4OXBwbm9WL3ZjL3V0bnZheE5jYjhU
UVUvSU1PdGZobHE4Y2VIVy96ZkQwY0RGN1o3STRIZnFwMDJ2U3BnMDZzZTJnenFweGxHVGR5ZW9w
RmNhNG9jTDNISnAvVkhaVERpazRtT3pZMzRMMzNhYis3RVh3eit3dkxORDdjRWJvMjBCakszZXhP
QjM3S2ROcU02WURPb0gyWVkxVStkYWJwNFFhWkpMaHpaSzlGM3EyVWtHcENKRFUvNzBLczc3VGNN
dmwrR1dueUp3WWp2eVZCTDRKM3QzanpnVGJEVFpsUUhNb3lhaDlsbS9kT0tQYzc0cGZQbDB2UHhP
Um1MaFg2ZDAzNVR3VjlZRVY5OHNNVS9OUkRtOGc5NFZYYmFVN1VCbDhYNDhFU0o2K2tuOVVkK0hn
aDdFdVB0b1ZkejJyZHRKdlF2RHY1Z3hMZXd2SDhjaUhnN2hsb0NsdTNlTk9CTnN0TnRTdzM0anhj
OWJIMm5lbmFveFRjMzNoNmFINHVGNHVQdHdjUjQ4bi91L1JOTys4MEczeWRERWQvL0RJUjk5d2JD
dnNidDNpemdUYlR6YXFneTBQUHh1ZkJJTkJBYmJ3ODlHbytGWnNkam9ibng5dERjYUN3NFA5b1dq
SS9GZ29teFdDQXgrZ3BPKytHMXh2eFZ3UitNK0dRdzdQMXhNT3g3UEJqMjlmWkh2RlhidlZIQW0y
cm40cHJzcktrZDZ3aUZSOXREc2ZIMm10aElMUFJvckMwNE85WVdtaHVOaGVaRzJ3THpJOUZnZkxR
dGtCaU5CaExQaGY0WG5QYUxheURpazRHd1R3YkMzdjhkYVBZK0hJajRQdXB2OWpMK0E3K0NuY3ZY
ZUh0TjdXZ3NHQjZOaFdLanNWQnNKQnA4TkJvTnpvNUVBM01MYTM2NE5SQWZhZlVuaHBQcjVVNzds
Y0dYZ2JEMzd3Tmh6NS83bTcwakEySFBtVzNlRStEL3JaV0YwQmFzSFc0TGhrZWlnZGhJTEJRYmJn
MDhHbTROekE2MytPZUdXL3h6UTYzKythRVdmM3lveFpkSXJtV2hiM2srOUlOTG9WOEt2dlEzZStN
RHpkNGYrcHM5LzlFZjlyWU5SSHlPYmQ0REFBdFdGTUpvVzdCMnVEVVlIb29HWWtQUlFHeW94Zjlv
cU1VM094VHh6UTFGZkhORExiNzVvWWd2UGhqeEpwWldlTzNnSjhQdlNmUTNlWDhhQ0h0bis1dTlN
MzNOWFA0QnI3TVZoVERjR3FnZGJ2V0hCMXY5c2NGV2Yyd3c0bjgwR1BITkRvYTljNE1SMzl4ZzJE
czNFUGJPRDRTOThZR3dKekVROWlUNm03M1MzK3lWdm1iUGZIK3paNzZ2eWZPMHY5bjdwNzVtYjI5
L001ZC93Ry9KYzRVdzFPSVA5MGY4c2NHSVA5WWY4Y2NHd3I1SEEySHY3RUN6ZDI2ZzJUdlhsd3g5
dksvWjgyMS9zK2UvK3BvODMvWTNlVDdyYS9ZMGNma0gvTGJ0WEwyR1dueTFBMkZmdUMvc2pmV0h2
YkgrWnMranZyRDNabStUWjZpM3lUUFcxK3laN0d2eVhPOXI5dmkzOTA4SDhNK3dvaEI2bTd4bHQ2
OTVUdzZFZmVjR3cxNWZmNVBubmI1bVQ2RDMyb1VEMi94M0F2Z1Y3ZHl4WThmT2dTYXZ1Ny9KazlW
M3phdmU3ajhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQ1YvZzl0UEpFUXUxWHZtUUFBQUFCSlJVNUVy
a0pnZ2c9PSI+Cis8aW1nIGlkPSJpMiI+CisKKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Cit2YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9y
bWFuY2UtcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nIjsKK3ZhciBsb2NhbElt
Z1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5wbmciOwor
CitUZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2ZW50cyB0aGUgdGVzdCBmcm9tIHJ1bm5p
bmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAorCitUZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlv
biAoKSB7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOwor
ICAgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOworICAgIGds
LnZpZXdwb3J0KDAsMCxjYW52YXMud2lkdGgsY2FudmFzLmhlaWdodCk7CisgICAgZ2wuY2xlYXJD
b2xvcigwLDAsMSwxKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7CisgICAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKKyAgICByZXR1
cm4gW2dsXTsKK30KKworVGVzdHMuc2V0dXAgPSBmdW5jdGlvbihnbCkgeworICAgIHZhciB0ZXgg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4KTsKKyAgICB2YXIgdGV4Q3ViZU1hcCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKTsKKyAgICByZXR1cm4g
W2dsXQorfQorCitUZXN0cy50ZWFyZG93biA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHRleEN1YmVNYXAp
IHsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKKyAgICBnbC5kZWxl
dGVUZXh0dXJlKHRleCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwg
bnVsbCk7CisgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXhDdWJlTWFwKTsKK30KKworVGVzdHMudGVz
dFRleEltYWdlMkQgPSBmdW5jdGlvbihnbCkgeworICAgIGdsLmVuYWJsZShnbC5CTEVORCk7Cisg
ICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpJyk7CisgICAgdmFyIGMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpOworICAgIHZhciBjdHggPSBjLmdldENvbnRleHQo
JzJkJyk7CisgICAgY3R4LmRyYXdJbWFnZShpbWcsMCwwKTsKKyAgICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7
CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywg
Z2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CisgICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGds
LkxJTkVBUik7CisgICAgdmFyIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktZmxpcC12ZXJ0
JywgJ2lkZW50aXR5LWZyYWcnKTsKKyAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5aRVJPKTsK
KyAgICBmLmFwcGx5KCk7CisgICAgZi5kZXN0cm95KCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKKyAg
ICBmID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5LWhmbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJh
ZycpOworICAgIGdsLmJsZW5kRnVuYyhnbC5TUkNfQUxQSEEsIGdsLk9ORV9NSU5VU19TUkNfQUxQ
SEEpOworICAgIGYuYXBwbHkoKTsKKyAgICBmLmRlc3Ryb3koKTsKKyAgICB2YXIgdmFsaWRfdGFy
Z2V0cyA9IFsKKyAgICAgICAgZ2wuVEVYVFVSRV8yRCwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9QT1NJVElWRV9YLAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gs
CisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKKyAgICAgICAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1osCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWgorICAgIF07
CisgICAgdmFsaWRfdGFyZ2V0cy5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgYXNzZXJ0
T2soZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKHQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGMpO30pOworICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnRleElt
YWdlMkQodCwgMSwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Cisg
ICAgfSk7Cit9CisKK1Rlc3RzLnRlc3RUZXhJbWFnZTJETm9uU09QID0gZnVuY3Rpb24oZ2wpIHsK
KyAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CisgICAgdmFyIGMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpOworICAgIHZhciBjdHggPSBjLmdldENvbnRl
eHQoJzJkJyk7CisgICAgY3R4LmRyYXdJbWFnZShpbWcsMCwwKTsKKyAgICBhc3NlcnRUaHJvd05v
R0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRo
cm93IGV4Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7Cisg
ICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggZGlydHkgb3JpZ2lu
IGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCisgICAgICBmdW5jdGlvbigpe2dsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgYyk7fSk7Cit9CisKK1Rlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgeworfTsKKwor
KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpMicpOworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3
dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFp
bGVkICgke2V9KS5gKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGluaXRUZXN0cygpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRmOGVjMmFhMDk3YjFmZDMxNGU4MTc1YzcxNWFjM2JlZjAxNjZmMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRI
VE1MLmh0bWwKQEAgLTAsMCArMSwxNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9Ii4uL3VuaXQuY3NzIiAvPgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRl
ci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7CithdHRyaWJ1dGUgdmVjMiBUZXg7
CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHRleENvb3Jk
MCA9IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOworICAgIGdsX1Bvc2l0aW9uID0g
dmVjNChWZXJ0ZXgsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImlkZW50aXR5LWhm
bGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMzIFZlcnRl
eDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQg
bWFpbigpCit7CisgICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50LCAwLjAsIDAu
MCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iaWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Citw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKKwor
dmFyeWluZyB2ZWM0IHRleENvb3JkMDsKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCBjID0gdGV4
dHVyZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCk7CisgICAgZ2xfRnJhZ0NvbG9yID0gYzsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPjxib2R5PgorPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIyNTYiIGhl
aWdodD0iMjU2Ij48L2NhbnZhcz4KKzxjYW52YXMgaWQ9ImMiIHdpZHRoPSIyNTYiIGhlaWdodD0i
MjU2Ij48L2NhbnZhcz4KKzxpbWcgaWQ9ImkiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiAgc3Jj
PSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRUFD
QVlBQUFCY2NxaG1BQUFUVkVsRVFWUjRuTzNkK1ZQVWQ1N0hjZjJiOWs5WSt6NDQrcUs3T1pvR0ZW
QTVWZkJHemFoOWN4cE56R0VPb1J1YTVsQkV1ZS9ESzRmWjdNYXBtU20zTWxzaHU4eE9kQ3BESnQz
di9hRUJBVUhBT01HNHowZlY1M2ZxVS9WNmZkN2ZUL2UzMmJFREFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBd092QmthcjdsKzMrR3dCc2s4eFVyVDByVGI4dngyUTQ1amFubHU3WXNXUG5zZ1hnVGVZd2Fr
ODVVM1h2NVppTTMrWGJVaC9sMmRJQ0JjNjA4MFdaMXVyOTJiYVNIUlFCOEdheUdkVVd1MUh6b1NO
Rk8rWk0xZjJjYlRMTTUxbFQ1d29jNXJrRE9iYlovVm0yU0VtMjNWdnN5amhWNW5KUUJzQ2J4R1pR
VnRtTjZwNE1vL1lQZHFOR0hLbGF5VXJYSjl6V2xFU2gweEl2enNtWUwzSFo1NHB6TW02VnVSeVJN
cGZUVytweVVBYkFtOEJtVk5WbkdOVFRkcVA2dnpPTUdyR25hTVNacXBOc2sxN3liS2xTNkRUTC9p
eGJvdFJsajVmbE91YkwzSTY1TXBmalZybmJFYWxZS0lOU2wzMzV2UUdBM3dLYlVXMnhHZFdSREtQ
NjZ3eWpXaFlMd0pHaUZXZWFUckpOQm5GYlUyU1AzU1Q3czZ4U21tdVhjcmN6VWU1MnhzdHpIZlBs
YnNkY3VkdDVxeXpYM2xLV2x4a3N6WEdlSzhteG55ekp5U2plUVJrQXJ6ZWJRVmxsTTZwN2JVYjE0
OVVGNEVqVlNtYWFUckxTOWVLeXBNZ2VlN29jeUxaSm1kc2hGWG1aVXBIblhGRUdCL096SnNyZGpx
RXl0L05tV2E0OVhKYnQ5SmE2TWs0VnU3aEVCRjVMTnIycTNtWlF6OWdNNnU5WEZFQnFzZ0NjYVRy
SlhKZ0VjaTBwc3RkaGt2M1pOaW5OVFpiQW9md3NPWlNmSlFmek1xVTh6NWtvZHpzU1pibU9lSVhi
K1hXNTJ6RmE1bkxjS25QWkkyVUxsNGpGZktJQXZCN01PclhGWmxCSGJBYjExemFqK2ttR1ViTnVB
V1NtNjVkS1lIZEdtaFJsV3FROHp5RkhDbkxrK0w1Y09WNlVLMGNLWFZLNUoxc081bWRLaGRzcFph
dktvRFRYMFZQaWNpVExJSHRGR1ZBSXdLL05ZbEJXMmZUcVhwdEIvZGhtU0o3K0x5cUFySFM5NUpp
VEpWRGdORWxsUVpaNEtndWxycnBVNnF0TEpYQnN2NXd0M3lNbjlydmxhSUZMRGk4dmcxeEg0bUIr
NXArV2wwRnBqcjJsSk1jUkxNNnlueXZPempoeElJdDdBK0JYWTlHcjZxMEw0LzlTQWFSb3hMN3cv
TDlXQVdTYkRKSnJUWkZpZDRaNGp4WkpVLzF4dWZIaE9lbStlazZpbDAvTEI3NHFhVHhUSm9Haisr
VnMyUjQ1dmo5WGpoVGt5T0hkQzQ4SkMyVndhSGZtbnlyY3puK3ZjRHNteW5MdFF5VTVHVGVMY3pM
Q3BUazJUM0dXN1ZoeFZzYWU3ZDRmNEkxbDFxa3RWb002WWpPb3ZyWWExRDhzRm9COVdRRTQxNWtB
OHUxcGN2UkFqbndVT2lMRExRRzUxOTBvOTI0MnlsUkhuUXlHL1hMejZubUpYcXFXRDN5VjBuQzZW
UHhIOThuWnN0MXlmRit1SEMxMFNkWGViRG1Vbnl5RHFvTHM3dzdsWjM1YjduYjhzY3h0LzdkU2wz
MmtKQ2VqcXlRbjQwcEpUa2JaRGlZQzROV3phSlZWVnIycTEyWlFQYllhMUg5ZnV3QjBTd1dRbGE2
WExGT3lBQW95VGZMVzRUM1NmdVdNM0wzUklBLzdMOHZEL3N2eVplOGwrZXpXMjNLdnUxRW1PMnBs
b05rbjNWZlBTZXZiMWZLK3QxSWF6NVJKN2NsaThSMHBrdE9sK1hLc0tGa0dCeGZLb0hKdjFsOFA1
bWYrdVNMUDhmdnlYTWRNbWRzUktYYzVxb3RkR1FYYnZWL0FHOFdpVjlWYjlhb1pxMTQxYXpPb3hX
YmNYQUhrV2xPa0pDOURhazhYeTYxUEw4aURub3RMQmJCVUJIMlg1WXZibCtSQnowVzVlNk5CSnRw
cnBML1pKemMvT2kvWFAzaExXaTZla3ZjOGg2V3V1a1M4VmMvS1lQRUM4V2hoenBPcWd1enZLdmRt
ZlhWNGQyYjN3ZnpNOXcvbFpURU5BSytDV2Fld1dIV3FpRTJ2K3RxcVYvMncyUUxJTmhra1AyTmgv
Szg5SW1OdElmbWk5OUt6OFBjbDE1ZEw2NUo4MFh0SlByLzF0dHkvMlNoM3V4dmt6dlY2R1krRnBP
K2FWNjUvOER1SlhEd3BWenlIcE83VVFobVU1TXZSSXBkVTdjMlJRN3V6NU1SKzl4K09GYm51SGkz
TWlWUVZ1S29QNzg0dTJ1NzlBMzdUTEZwbGxWV242clhxVlkrdGV0V1BHeGJBc2d2QXZVNlR2SFZv
dDhTdW5KWTdOK3JseTc2MWcvOWxiM0o5c1d4OWZ2dVNmSDc3YlhuUWMxSHVkVGZJVEZlZGpMV0Zw
UGVhUjdvK2VFdkNqU2ZseW9WRFVsZGRLc0hqQitUQzRVSTVWWnduVlFVNWliY3E5bngxdWpTLzU4
UUI5OVhxWW5mNURxWUI0T1ZZZE0vR2Y2dGU5WS9rOC8vR0JlQ3lHS1hFblNFMTFRZWs1NVB6Y3Y5
bTQ4clFyeFA4TDI1ZmtpOXV2eTJmcjFxZjNicVluQXh1Tk1oMFo1Mk1SSU55KzFPUFhQL3dkOUor
NVl3MDE1K1FkODRmbEpxVHhYTGhjSUdjTE03NytVaEJ6dDh1VkJhMm5xdmNlL1pzeFo2eTdkNUw0
RGRsY2Z5MzZGVmZXL1NxSDZ3R2xhd3VnTVd2QVR2VGxoV0F5U0I1R2FseWRIK09mRlJ6UkVhalFm
bjgxdHZyaC82RndWOWNGK1d6V3hmbHdhMkxjci9ub3R6cmJwU1o2L1V5MVZVbmt4MjFNdHdTa0o1
UExrakhlMmVscWY2NFhENTNVRUluRGlRdUhDNllyeTdPbXoxVzVIclkrRmJGNFIxTUE4RG1XTFRL
S3N1eThkOXFVTCt3QUpaL0MzQ1BNMTNPSHR3dGJlK2VsdW5yOWZMRnVzRi9QdlNmMzFvNytBOTZu
cTM3UFJmbGZrK2ozTCtaL0ZqeDdvMEdtZTZxazRuMkdobHE4VXZQeCtlbC9jb1p1VlozWEM2ZnEv
aTU3bFR4MzJwT0huZ1VPbFVjL2pSNGxFdENZQ01XbmFyZW9sZk5XUFNxV2F0QjlkT2FCYkRHbDRC
Y0ZxTVV1MjBTT25WQWJuNThUdTUyTjI3cXRQOThnOUEvV0F6OVF2QVgxNzNGRXVodWtMdmREY25K
b0xOV3htTTFNaGp4eTgyUHprbm4rMmNTc1hkUHo0Y2JUOHgrR0toOCtGSHdTTzBPU2dCWW0xbW5z
SmgxcW9oRnIxd1kvNVh4WndXdy90ZUFzOUtUdnd0d1pIKzJYQTFWeVhCclVCNzBYRnovdEY5bnpO
OUs4TzkxTjhpOWhmQXZyanMzR3VUT2pYcVpYbmhFR0crdmtkRm9VQWJEL3A5N1BqNy90NTZyNTcv
cHUrYjVwT1hkNnFQYnZkZkFhOGVpM1ZWbDBhbDZMWHJsWTR0TythTkZyMHBzdGdEMk9OTGx6TUhk
RW4ybldxWTY2K1N6bHh6ekh5d2I4NThML1RyQnYzdmpXZmdYMTh6MTVKcnVxcE9wemxxWmFBOGx4
bUtodjQ5R2czL29EL3MrM3U2OUJsNDdGcDJpM3FKVnpWaDB5bG1yVHZtVFZaKzhBRno1SHNEekJa
QmpOa3B4cmsyQ3B3NUk5MGZuNU02TmhoZWU5bHNPZnZmbWczL24rclB3ejF5dms1bXVPcGxlV0pN
ZHRmSEpqcHJ2Smp0cUtBQmd1ZVQ0cjRpWWRjcXZ6YnBkUDFqMHl2anFBckN2OVNKUXVsN2N0bFNw
MnBjdEh3WXJaYWdsSVBkdk5xNS8yci9nWW05VHdiK3g5ZUJQZDlYSlZISVNtSi9xclAxbXVyT0dS
d0JnT1pOMlY1VkZwK3kxYUJmR2Y1MHlzVlFBYTN3SFlMRUFzdEwxc3R1UkxxY3I4cVgxOGltWjdL
aVZCejBYWHhqNmpaL3ZOeG44NnhzSFAva0lVQ2RUblhYeDZjN2F2MHgxMVBSczkxNERyeDJUVGxG
djBpcG16RHJsckVXbi9NbWlWOGxtQ2lEYmJKQUR1VFlKbnR3dk42NytUbWF1MXlkRHZtYm90MzZ4
OXl6NDlTOFovTnJGTlQvZFZmdjdxYzY2azl1OTE4QnJ4YXhlUGY0cjRoc1ZnSFBoOXdCenJTbFNW
WlF0SHdRcVpURGlsN3ZkalZzNzdiY1kvSm10QjErbU9tc1RreDIxVDZhNmFrZTJlNitCMTQ1SnU2
dktwRlAybXJUS3gyYnRzL0YvOFZ1QUx5cUEzZlkwT1YyZUx5MlhUc3BFZTQzY2Y4R3ovVFlFWHlZ
N2FtV3lveVkrMVZIei9WUm5YZk4yN3pYdzJsa2EvN1hLV1l0VytaTkZwNVRORkVDMnlTRDdYVllK
bk5nblhSKytKZE5kZFpzKzdYK2Q0TmZLWkVlTlRIYlV6RTkyMUR5YTVQSVBXQ2xOcmJDWXRjbngz
NlRkOVlOWnA0aGJkS3FOQzJCaC9LOHN6SkwzL1lkbElPeVRPemNhdHZ3eDNzWTMrcjhvK0RMWkVV
cE10TmM4bWVoZy9BZWVZMUx2cWpKcGxiMG1qZUt4V2F2NDBheFZKbFlYd0ZwdkFtYW02U1Rmbmli
VlpYa1NlZnVrak1WQ2NyZDdFeVArZXFmOWxvSmZ1Mkh3SnpwcVpLSzlSc2JiUS9ISjl0RDNrNTAx
alAvQWFpYU5vdDZrU1k3L1pxM2lKN05PS1lzWGdDOHFnQ3lUUWZibFdNVi9mSjkwZm5CV0pqdHJW
NHozV3pudG43dlJ2LzU4NkxjYS9HY3JORC9SSG5vMDJjNzRENnlRcGxaWVRGcEZ4S1JWTEkzL0t3
dmcrUmVCN0NuSjN3RndXVkxrY0dHV3ZPYy9MUDNOWHBtNVh2L0xUL3ROQm45eUU4RWZUNFkvTVI0
TFBSbHZEekgrQTZ1Wk5ZcEtrM1pYYi9yQytHL1NLaEtiTFlDOGpEUTVWWlluNFlzblpMUXRLSGR1
YkM3MG14M3pmMG53eDl0RE1oNEx5VmdzRkIrUEJiOGZiMmY4QjU2VHJsSFVwMnNWMHlhTlltbjgz
MHdCWktYclpWKzJSWHpIOTBuSCsyZGxvcU1tV1FDdjRMUi8rZUNIbG9LL0VINFpqd1hueDJQQlIy
UHRRY1ovWURtVFJwbWFybFkwbVRTN3ZrclRLUDVxMGlwK051dVVZdG1nQUJ5cFduRlpqSEtvSUZP
dWVBOUpYNU5IcHJ2cU5oMzZ6WjcydnlUNEMrRlBqTFlGbjR6SGdvei93R29temE3ZDZacGRNWk5H
OFkxSm8zaGkxaTQ4LzIraUFQSXlVdVZrcVZ1YUdrL0lTRFFvTTlkZjNXbS9NdmcxV3c3K1dDd2tZ
MjFCR1cwTHhrZmJndCtQeFVLTS84QnFhWnBkdTlQVWlpYVRSdkdWU2F2NHk5SW5BQnNVUUdhNlhv
cXlMZUk5VmlUdDc1MlI4ZmJRcXNDLzR0TitpOEVmYXd2S2FEUW9JOUhBL0doYjhKdXhLT00vOEJ5
VDVsOVQwOVNLUUxwR01XVFNLdjdUckZVOE5ldVVpZVVGWUZ2MVl5Q09WSzNrbUpQai83dmVnOUo3
elNOVG5iV3Y2TFIvQmNGZldDUFJRSHdrR3ZqTFNEVEFtMy9BZXRMVnlqeVRSdm1PU2F1WU5Pc1Uz
NXAxeW45c1ZBQnVXNnFjTE0yVmF3M0haYmcxSU5OZHIrYTBYL3N6L0swRmZ6UWFsTkZvSUhuNlJ3
Ty9IMmtMOHVZZjhDSW16YTVDazI3WGUyYXRjc3FpVThiWExZQVVqV1NtNjZRd3l5emVZNFVTdTNK
YXhtS2h0VVAvaTAvN21oV2hYeEg4dHZXQ0g1U1JhRUJHbzRIRVNLdi95V2hyZ01zL1lEUFNkY29p
czFieHZrV25mR3JSSytOckZZQTlSU3ZaWm9NYzNPdVVkendINWZhMUN6TFJVZk5QUGUzSDF6anQx
d3YrNGhwdURjUkhvb0h2UjZJQkx2K0F6VExybEVWbW5mS2hSYWQ4YWwzejU4QzA0cmFseUltU1hM
bldjRXlHV3YweTJWa3JVMTNQaC82bFR2c05nais2UWZCSFdnTXkzQnFRNFZiLy9IQnI0TkZJMU0v
bEg3QVZGcjBxWU5HckhscjFxcWMyZ3lxKy9FMUFaNXBPQ3JOTTRqbGFJRzFYVHN0b1cvQ2ZkOXEv
VlBBRE10enFUd3kzK0o4TU0vNERMMlhuaWhJd3F1STJvMXJzS1JySk5obWtZcTlETGwrb2tGdWZu
SmZ4OXBwbm9WL3ZjL3V0bnZheE5jYjhUUVUvSU1PdGZobHE4Y2VIVy96ZkQwY0RGN1o3STRIZnFw
MDJ2U3BnMDZzZTJnenFweGxHVGR5ZW9wRmNhNG9jTDNISnAvVkhaVERpazRtT3pZMzRMMzNhYis3
RVh3eit3dkxORDdjRWJvMjBCakszZXhPQjM3S2ROcU02WURPb0gyWVkxVStkYWJwNFFhWkpMaHpa
SzlGM3EyVWtHcENKRFUvNzBLczc3VGNNdmwrR1dueUp3WWp2eVZCTDRKM3QzanpnVGJEVFpsUUhN
b3lhaDlsbS9kT0tQYzc0cGZQbDB2UHhPUm1MaFg2ZDAzNVR3VjlZRVY5OHNNVS9OUkRtOGc5NFZY
YmFVN1VCbDhYNDhFU0o2K2tuOVVkK0hnaDdFdVB0b1ZkejJyZHRKdlF2RHY1Z3hMZXd2SDhjaUhn
N2hsb0NsdTNlTk9CTnN0TnRTdzM0anhjOWJIMm5lbmFveFRjMzNoNmFINHVGNHVQdHdjUjQ4bi91
L1JOTys4MEczeWRERWQvL0RJUjk5d2JDdnNidDNpemdUYlR6YXFneTBQUHh1ZkJJTkJBYmJ3ODlH
bytGWnNkam9ibng5dERjYUN3NFA5b1dqSS9GZ29teFdDQXgrZ3BPKytHMXh2eFZ3UitNK0dRdzdQ
MXhNT3g3UEJqMjlmWkh2RlhidlZIQW0ycm40cHJzcktrZDZ3aUZSOXREc2ZIMm10aElMUFJvckMw
NE85WVdtaHVOaGVaRzJ3THpJOUZnZkxRdGtCaU5CaExQaGY0WG5QYUxheURpazRHd1R3YkMzdjhk
YVBZK0hJajRQdXB2OWpMK0E3K0NuY3ZYZUh0TjdXZ3NHQjZOaFdLanNWQnNKQnA4TkJvTnpvNUVB
M01MYTM2NE5SQWZhZlVuaHBQcjVVNzdsY0dYZ2JEMzd3Tmh6NS83bTcwakEySFBtVzNlRStEL3Ja
V0YwQmFzSFc0TGhrZWlnZGhJTEJRYmJnMDhHbTROekE2MytPZUdXL3h6UTYzKythRVdmM3lveFpk
SXJtV2hiM2srOUlOTG9WOEt2dlEzZStNRHpkNGYrcHM5LzlFZjlyWU5SSHlPYmQ0REFBdFdGTUpv
VzdCMnVEVVlIb29HWWtQUlFHeW94ZjlvcU1VM094VHh6UTFGZkhORExiNzVvWWd2UGhqeEpwWldl
TzNnSjhQdlNmUTNlWDhhQ0h0bis1dTlNMzNOWFA0QnI3TVZoVERjR3FnZGJ2V0hCMXY5c2NGV2Yy
d3c0bjgwR1BITkRvYTljNE1SMzl4ZzJEczNFUGJPRDRTOThZR3dKekVROWlUNm03M1MzK3lWdm1i
UGZIK3paNzZ2eWZPMHY5bjdwNzVtYjI5L001ZC93Ry9KYzRVdzFPSVA5MGY4c2NHSVA5WWY4Y2NH
d3I1SEEySHY3RUN6ZDI2ZzJUdlhsd3g5dksvWjgyMS9zK2UvK3BvODMvWTNlVDdyYS9ZMGNma0gv
TGJ0WEwyR1dueTFBMkZmdUMvc2pmV0h2YkgrWnMranZyRDNabStUWjZpM3lUUFcxK3laN0d2eVhP
OXI5dmkzOTA4SDhNK3dvaEI2bTd4bHQ2OTVUdzZFZmVjR3cxNWZmNVBubmI1bVQ2RDMyb1VEMi94
M0F2Z1Y3ZHl4WThmT2dTYXZ1Ny9KazlWM3phdmU3ajhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQ1Yv
Zzl0UEpFUXUxWHZtUUFBQUFCSlJVNUVya0pnZ2c9PSI+Cis8aW1nIGlkPSJpMiI+CisKKzxzY3Jp
cHQ+Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZGVmYXVsdEltZ1VybCA9ICJodHRw
czovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28t
NjR4NjQucG5nIjsKK3ZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvdGh1bmRl
cmJpcmQtbG9nby02NHg2NC5wbmciOworCitUZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2
ZW50cyB0aGUgdGVzdCBmcm9tIHJ1bm5pbmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAorCitU
ZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdnbCcpOworICAgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xD
b250ZXh0KGNhbnZhcykpOworCisgICAgZ2wudmlld3BvcnQoMCwwLGNhbnZhcy53aWR0aCxjYW52
YXMuaGVpZ2h0KTsKKyAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOworICAgIGdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICBnbC5kaXNhYmxl
KGdsLkRFUFRIX1RFU1QpOworICAgIHJldHVybiBbZ2xdOworfQorCitUZXN0cy5zZXR1cCA9IGZ1
bmN0aW9uKGdsKSB7CisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAs
IHRleEN1YmVNYXApOworICAgIHJldHVybiBbZ2xdCit9CisKK1Rlc3RzLnRlYXJkb3duID0gZnVu
Y3Rpb24oZ2wsIHRleCwgdGV4Q3ViZU1hcCkgeworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIG51bGwpOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKKyAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCBudWxsKTsKKyAgICBnbC5kZWxldGVUZXh0dXJlKHRl
eEN1YmVNYXApOworfQorCitUZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7Cisg
ICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTsKKyAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2knKTsKKyAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Cisg
ICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHguZHJhd0ltYWdlKGltZyww
LDApOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKKyAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7CisgICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CisgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7
CisgICAgdmFyIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktZmxpcC12ZXJ0JywgJ2lkZW50
aXR5LWZyYWcnKTsKKyAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5aRVJPKTsKKyAgICBmLmFw
cGx5KCk7CisgICAgZi5kZXN0cm95KCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKKyAgICBnbC50ZXhT
dWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpOworICAgIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZsaXAtdmVydCcsICdp
ZGVudGl0eS1mcmFnJyk7CisgICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01J
TlVTX1NSQ19BTFBIQSk7CisgICAgZi5hcHBseSgpOworICAgIGYuZGVzdHJveSgpOworICAgIHZh
ciB2YWxpZF90YXJnZXRzID0gWworICAgICAgICBnbC5URVhUVVJFXzJELAorICAgICAgICBnbC5U
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWCwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAorICAg
ICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCisgICAgICAgIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfUE9TSVRJVkVfWiwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9aCisgICAgXTsKKyAgICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkgeworICAg
ICAgICBhc3NlcnRPayhmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIGdsLnRleEltYWdlMkQo
dCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7CisgICAgICAgICAg
ICAgICAgZ2wudGV4U3ViSW1hZ2UyRCh0LCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBjKTsKKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7CisgICAg
ICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjKTsKKyAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKHQsIDEsIDAs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30KKworVGVzdHMudGVzdFRleEltYWdlMkROb25TT1AgPSBmdW5jdGlvbihnbCkgeworICAgIHZh
ciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKKyAgICB2YXIgYyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7CisgICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQn
KTsKKyAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOworICAgIGFzc2VydFRocm93Tm9HTEVycm9y
KGdsLCAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhj
ZXB0aW9uLiIsCisgICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKKyAgICBhc3Nl
cnRUaHJvd05vR0xFcnJvcihnbCwgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1h
Z2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
aW1nKTt9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBk
aXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKKyAgICAgIGZ1bmN0
aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKKyAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRl
eFN1YkltYWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOworfQorCitUZXN0cy5lbmRV
bml0ID0gZnVuY3Rpb24oZ2wpIHsKK307CisKKyhhc3luYyBmdW5jdGlvbigpIHsKKyAgICBjb25z
dCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKKyAgICB0cnkgeworICAgICAg
ICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywg
ZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7CisgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbml0VGVzdHMoKTsKK30pKCk7
Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dW5pdC5jc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1OGI0M2Jk
OWRkZjBiZjFjMDJhZjVhNWY2MTY5NGZmODBlNTNjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS91bml0LmNzcwpAQCAtMCwwICsxLDY2IEBACisvKgorVGVzdHMgZm9yIHRoZSBP
cGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFzIGNvbnRleHQKKworQ29weXJpZ2h0IChDKSAyMDA5ICBJ
bG1hcmkgSGVpa2tpbmVuIDxpbG1hcmkuaGVpa2tpbmVuQGdtYWlsLmNvbT4KKworUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KK29idGFp
bmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
CitmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0
CityZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwKK2NvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUKK1NvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nCitjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQoraW5jbHVkZWQgaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBT
T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LAorRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTCitPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORAorTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQKK0hPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLAorV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCitGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCitPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G
VFdBUkUuCisKKyovCisub2sgeworICBjb2xvcjogZ3JlZW47Cit9CisuZmFpbCB7CisgIGNvbG9y
OiByZWQ7Cit9CitjYW52YXMgeworICBkaXNwbGF5OiBub25lOworfQorI3Rlc3Qtc3RhdHVzIHsK
KyAgZm9udC1zaXplOiBsYXJnZTsKK30KKworI3Rlc3QtbG9nIHsKKyAgcGFkZGluZy1sZWZ0OiAw
LjVlbTsKKyAgcGFkZGluZy1yaWdodDogMC41ZW07CisgIGJhY2tncm91bmQ6IHdoaXRlOworICBj
b2xvcjogYmxhY2s7Cit9CisjdGVzdC1sb2cgPiBkaXYgeworICBwYWRkaW5nLWJvdHRvbTogMC41
ZW07Cit9CisjdGVzdC1sb2cgaDIgeworICBmb250LXNpemU6IDFlbTsKKyAgbWFyZ2luLWJvdHRv
bTogMGVtOworICBwYWRkaW5nLXRvcDogMC41ZW07Cit9CisjdGVzdC1sb2cgaDMgeworICBmb250
LXNpemU6IHNtYWxsOworICBtYXJnaW4tbGVmdDogMS41ZW07CisgIG1hcmdpbi1ib3R0b206IDBl
bTsKKyAgbWFyZ2luLXRvcDogMC41ZW07Cit9CisjdGVzdC1sb2cgcCB7CisgIG1hcmdpbi1sZWZ0
OiA0ZW07CisgIGZvbnQtc2l6ZTogc21hbGw7CisgIG1hcmdpbi10b3A6IDBlbTsKKyAgbWFyZ2lu
LWJvdHRvbTogMC4yZW07Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS91bml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjYTIxYzRjYWU4MjIyNmU1YTJj
YzM1Yjc3NDE3NTI1ZGFjY2UwMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dW5pdC5qcwpAQCAtMCwwICsxLDk3MCBAQAorLyoKK1VuaXQgdGVzdGluZyBsaWJyYXJ5IGZvciB0
aGUgT3BlbkdMIEVTIDIuMCBIVE1MIENhbnZhcyBjb250ZXh0CisqLworCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKy8qIC0tIHBsYWZvcm0gc3BlY2lmaWMgY29k
ZSAtLSAqLworCisvLyBXZWJLaXQKK2lmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdp
bmRvdy50ZXN0UnVubmVyOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0g
Y29tcGFyZXMgY29uc29sZSBvdXRwdXQuCisgIC8vIEJlY2F1c2UgdGhlIG91dHB1dCBvZiB0aGUg
V2ViR0wgVGVzdHMgaXMgR1BVIGRlcGVuZGVudAorICAvLyB3ZSB0dXJuIG9mZiBjb25zb2xlIG1l
c3NhZ2VzLgorICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgd2luZG93
LmNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKKworICAvLyBSQUYgZG9lc24ndCB3b3Jr
IGluIExheW91dFRlc3RzLiBEaXNhYmxlIGl0IHNvIHRoZSB0ZXN0cyB3aWxsCisgIC8vIHVzZSBz
ZXRUaW1lb3V0IGluc3RlYWQuCisgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB1bmRl
ZmluZWQ7CisgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB1bmRlZmluZWQ7
Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKK30KKworLyogLS0gZW5k
IHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgLS0qLworVGVzdHMgPSB7CisgIGF1dG9ydW4gOiB0cnVl
LAorICBtZXNzYWdlIDogbnVsbCwKKyAgZGVsYXkgOiAwLAorICBhdXRvaW5pdDogdHJ1ZSwKKwor
ICBzdGFydFVuaXQgOiBmdW5jdGlvbigpeyByZXR1cm4gW107IH0sCisgIHNldHVwIDogZnVuY3Rp
b24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0sCisgIHRlYXJkb3duIDogZnVuY3Rpb24oKSB7fSwK
KyAgZW5kVW5pdCA6IGZ1bmN0aW9uKCkge30KK30KKwordmFyIF9fdGVzdFN1Y2Nlc3NfXyA9IHRy
dWU7Cit2YXIgX190ZXN0RmFpbENvdW50X18gPSAwOwordmFyIF9fdGVzdExvZ19fOwordmFyIF9f
YmFja2xvZ19fID0gW107CisKK3ZhciBnZXRVcmxPcHRpb25zID0gKGZ1bmN0aW9uKCkgeworICB2
YXIgX3VybE9wdGlvbnNQYXJzZWQgPSBmYWxzZTsKKyAgdmFyIF91cmxPcHRpb25zID0ge307Cisg
IHJldHVybiBmdW5jdGlvbigpIHsKKyAgICBpZiAoIV91cmxPcHRpb25zUGFyc2VkKSB7CisgICAg
ICB2YXIgcyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOworICAgICAgdmFyIHEgPSBzLmluZGV4T2Yo
Ij8iKTsKKyAgICAgIHZhciBlID0gcy5pbmRleE9mKCIjIik7CisgICAgICBpZiAoZSA8IDApIHsK
KyAgICAgICAgZSA9IHMubGVuZ3RoOworICAgICAgfQorICAgICAgdmFyIHF1ZXJ5ID0gcy5zdWJz
dHJpbmcocSArIDEsIGUpOworICAgICAgdmFyIHBhaXJzID0gcXVlcnkuc3BsaXQoIiYiKTsKKyAg
ICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBwYWlycy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAg
dmFyIGtleVZhbHVlID0gcGFpcnNbaWldLnNwbGl0KCI9Iik7CisgICAgICAgIHZhciBrZXkgPSBr
ZXlWYWx1ZVswXTsKKyAgICAgICAgdmFyIHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleVZh
bHVlWzFdKTsKKyAgICAgICAgX3VybE9wdGlvbnNba2V5XSA9IHZhbHVlOworICAgICAgfQorICAg
ICAgX3VybE9wdGlvbnNQYXJzZWQgPSB0cnVlOworICAgIH0KKworICAgIHJldHVybiBfdXJsT3B0
aW9uczsKKyAgfQorfSkoKTsKKworaWYgKHR5cGVvZiBxdWlldE1vZGUgPT0gJ3VuZGVmaW5lZCcp
IHsKKyAgdmFyIHF1aWV0TW9kZSA9IChmdW5jdGlvbigpIHsKKyAgICB2YXIgX3F1aWV0TW9kZUNo
ZWNrZWQgPSBmYWxzZTsKKyAgICB2YXIgX2lzUXVpZXQgPSBmYWxzZTsKKyAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7CisgICAgICBpZiAoIV9xdWlldE1vZGVDaGVja2VkKSB7CisgICAgICAgIF9pc1F1
aWV0ID0gKGdldFVybE9wdGlvbnMoKS5xdWlldCA9PSAxKTsKKyAgICAgICAgX3F1aWV0TW9kZUNo
ZWNrZWQgPSB0cnVlOworICAgICAgfQorICAgICAgcmV0dXJuIF9pc1F1aWV0OworICAgIH0KKyAg
fSkoKTsKK30KKworT2JqZWN0LnRvU291cmNlID0gZnVuY3Rpb24oYSwgc2Vlbil7CisgIGlmIChh
ID09IG51bGwpIHJldHVybiAibnVsbCI7CisgIGlmICh0eXBlb2YgYSA9PSAnYm9vbGVhbicpIHJl
dHVybiBhID8gInRydWUiIDogImZhbHNlIjsKKyAgaWYgKHR5cGVvZiBhID09ICdzdHJpbmcnKSBy
ZXR1cm4gJyInICsgYS5yZXBsYWNlKC8iL2csICdcXCInKSArICciJzsKKyAgaWYgKGEgaW5zdGFu
Y2VvZiBIVE1MRWxlbWVudCkgcmV0dXJuIGEudG9TdHJpbmcoKTsKKyAgaWYgKGEud2lkdGggJiYg
YS5oZWlnaHQgJiYgYS5kYXRhKSByZXR1cm4gIltJbWFnZURhdGFdIjsKKyAgaWYgKGEgaW5zdGFu
Y2VvZiBBcnJheSkgeworICAgIGlmICghc2Vlbikgc2VlbiA9IFtdOworICAgIHZhciBpZHggPSBz
ZWVuLmluZGV4T2YoYSk7CisgICAgaWYgKGlkeCAhPSAtMSkgcmV0dXJuICcjJysoaWR4KzEpKycj
JzsKKyAgICBzZWVuLnVuc2hpZnQoYSk7CisgICAgdmFyIHNyY3MgPSBhLm1hcChmdW5jdGlvbihv
KXsgcmV0dXJuIE9iamVjdC50b1NvdXJjZShvLHNlZW4pIH0pOworICAgIHZhciBwcmVmaXggPSAn
JzsKKyAgICBpZHggPSBzZWVuLmluZGV4T2YoYSk7CisgICAgaWYgKGlkeCAhPSAtMSkgcHJlZml4
ID0gJyMnKyhpZHgrMSkrJz0nOworICAgIHJldHVybiBwcmVmaXggKyAnWycgKyBzcmNzLmpvaW4o
IiwgIikgKyAnXSc7CisgIH0KKyAgaWYgKHR5cGVvZiBhID09ICdvYmplY3QnKSB7CisgICAgaWYg
KCFzZWVuKSBzZWVuID0gW107CisgICAgdmFyIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKKyAgICBp
ZiAoaWR4ICE9IC0xKSByZXR1cm4gJyMnKyhpZHgrMSkrJyMnOworICAgIHNlZW4udW5zaGlmdChh
KTsKKyAgICB2YXIgbWVtYmVycyA9IFtdOworICAgIHZhciBuYW1lOworICAgIHRyeSB7CisgICAg
ICBmb3IgKHZhciBpIGluIGEpIHsKKyAgICAgICAgaWYgKGkuc2VhcmNoKC9eW2EtekEtWjAtOV0r
JC8pICE9IC0xKQorICAgICAgICAgIG5hbWUgPSBpOworICAgICAgICBlbHNlCisgICAgICAgICAg
bmFtZSA9ICciJyArIGkucmVwbGFjZSgvIi9nLCAnXFwiJykgKyAnIic7CisgICAgICAgIHZhciBh
aTsKKyAgICAgICAgdHJ5IHsgYWkgPSBhW2ldOyB9CisgICAgICAgIGNhdGNoKGUpIHsgYWkgPSAn
bnVsbCAvKkVSUk9SX0FDQ0VTU0lORyovJzsgfQorICAgICAgICB2YXIgcyA9IG5hbWUgKyAnOicg
KyBPYmplY3QudG9Tb3VyY2UoYWksIHNlZW4pOworICAgICAgICBtZW1iZXJzLnB1c2gocyk7Cisg
ICAgICB9CisgICAgfSBjYXRjaCAoZSkge30KKyAgICB2YXIgcHJlZml4ID0gJyc7CisgICAgaWR4
ID0gc2Vlbi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHByZWZpeCA9ICcjJysoaWR4
KzEpKyc9JzsKKyAgICByZXR1cm4gcHJlZml4ICsgJ3snICsgbWVtYmVycy5qb2luKCIsICIpICsg
J30nCisgIH0KKyAgaWYgKHR5cGVvZiBhID09ICdmdW5jdGlvbicpCisgICAgcmV0dXJuICcoJyth
LnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiAiKS5yZXBsYWNlKC9ccysvZywgIiAiKSsnKSc7
CisgIHJldHVybiBhLnRvU3RyaW5nKCk7Cit9CisKK2Z1bmN0aW9uIGZvcm1hdEVycm9yKGUpIHsK
KyAgaWYgKHdpbmRvdy5jb25zb2xlKSBjb25zb2xlLmxvZyhlKTsKKyAgdmFyIHBhdGhTZWdzID0g
bG9jYXRpb24uaHJlZi50b1N0cmluZygpLnNwbGl0KCIvIik7CisgIHZhciBjdXJyZW50RG9jID0g
ZS5saW5lTnVtYmVyICE9IG51bGwgPyBwYXRoU2Vnc1twYXRoU2Vncy5sZW5ndGggLSAxXSA6IG51
bGw7CisgIHZhciB0cmFjZSA9IChlLmZpbGVuYW1lIHx8IGN1cnJlbnREb2MpICsgIjoiICsgZS5s
aW5lTnVtYmVyICsgKGUudHJhY2UgPyAiXG4iK2UudHJhY2UgOiAiIik7CisgIHJldHVybiBlLm1l
c3NhZ2UgKyAiXG4iICsgdHJhY2U7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICB2YXIg
aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXN0YXR1cycpOworICBpZiAoaCA9PSBu
dWxsKSB7CisgICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJyk7CisgICAgaC5pZCA9
ICd0ZXN0LXN0YXR1cyc7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKTsKKyAgfQor
ICBoLnRleHRDb250ZW50ID0gIiI7CisgIHZhciBsb2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdC1sb2cnKTsKKyAgaWYgKGxvZyA9PSBudWxsKSB7CisgICAgbG9nID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgbG9nLmlkID0gJ3Rlc3QtbG9nJzsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvZyk7CisgIH0KKyAgd2hpbGUgKGxvZy5jaGlsZE5vZGVz
Lmxlbmd0aCA+IDApCisgICAgbG9nLnJlbW92ZUNoaWxkKGxvZy5maXJzdENoaWxkKTsKKworICB2
YXIgc2V0dXBfYXJncyA9IFtdOworCisgIGlmIChUZXN0cy5zdGFydFVuaXQgIT0gbnVsbCkgewor
ICAgIF9fdGVzdExvZ19fID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdHJ5
IHsKKyAgICAgIHNldHVwX2FyZ3MgPSBUZXN0cy5zdGFydFVuaXQoKTsKKyAgICAgIGlmIChfX3Rl
c3RMb2dfXy5jaGlsZE5vZGVzLmxlbmd0aCA+IDApCisgICAgICAgIGxvZy5hcHBlbmRDaGlsZChf
X3Rlc3RMb2dfXyk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICB0ZXN0RmFpbGVkKCJzdGFydFVu
aXQiLCBmb3JtYXRFcnJvcihlKSk7CisgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18p
OworICAgICAgcHJpbnRUZXN0U3RhdHVzKCk7CisgICAgICByZXR1cm47CisgICAgfQorICB9CisK
KyAgdmFyIHRlc3RzUnVuID0gZmFsc2U7CisgIHZhciBhbGxUZXN0c1N1Y2Nlc3NmdWwgPSB0cnVl
OworCisgIGZvciAodmFyIGkgaW4gVGVzdHMpIHsKKyAgICBpZiAoaS5zdWJzdHJpbmcoMCw0KSAh
PSAidGVzdCIpIGNvbnRpbnVlOworICAgIF9fdGVzdExvZ19fID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgX190ZXN0U3VjY2Vzc19fID0gdHJ1ZTsKKyAgICB0cnkgeworICAg
ICAgZG9UZXN0Tm90aWZ5IChpKTsKKyAgICAgIHZhciBhcmdzID0gc2V0dXBfYXJnczsKKyAgICAg
IGlmIChUZXN0cy5zZXR1cCAhPSBudWxsKQorICAgICAgICBhcmdzID0gVGVzdHMuc2V0dXAuYXBw
bHkoVGVzdHMsIHNldHVwX2FyZ3MpOworICAgICAgVGVzdHNbaV0uYXBwbHkoVGVzdHMsIGFyZ3Mp
OworICAgICAgaWYgKFRlc3RzLnRlYXJkb3duICE9IG51bGwpCisgICAgICAgIFRlc3RzLnRlYXJk
b3duLmFwcGx5KFRlc3RzLCBhcmdzKTsKKyAgICB9CisgICAgY2F0Y2ggKGUpIHsKKyAgICAgIHRl
c3RGYWlsZWQoaSwgZS5uYW1lLCBmb3JtYXRFcnJvcihlKSk7CisgICAgfQorICAgIGlmIChfX3Rl
c3RTdWNjZXNzX18gPT0gZmFsc2UpIHsKKyAgICAgICsrX190ZXN0RmFpbENvdW50X187CisgICAg
fQorICAgIHZhciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDInKTsKKyAgICBoLnRleHRD
b250ZW50ID0gaTsKKyAgICBfX3Rlc3RMb2dfXy5pbnNlcnRCZWZvcmUoaCwgX190ZXN0TG9nX18u
Zmlyc3RDaGlsZCk7CisgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKKyAgICBhbGxU
ZXN0c1N1Y2Nlc3NmdWwgPSBhbGxUZXN0c1N1Y2Nlc3NmdWwgJiYgX190ZXN0U3VjY2Vzc19fID09
IHRydWU7CisgICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3MoX190ZXN0U3VjY2Vzc19fLCBp
KTsKKyAgICBkb1Rlc3ROb3RpZnkgKGkrIi0tIisoX190ZXN0U3VjY2Vzc19fPyJPSyI6IkZBSUwi
KSk7CisgICAgdGVzdHNSdW4gPSB0cnVlOworICB9CisKKyAgcHJpbnRUZXN0U3RhdHVzKHRlc3Rz
UnVuKTsKKyAgaWYgKFRlc3RzLmVuZFVuaXQgIT0gbnVsbCkgeworICAgIF9fdGVzdExvZ19fID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdHJ5IHsKKyAgICAgIFRlc3RzLmVu
ZFVuaXQuYXBwbHkoVGVzdHMsIHNldHVwX2FyZ3MpOworICAgICAgaWYgKF9fdGVzdExvZ19fLmNo
aWxkTm9kZXMubGVuZ3RoID4gMCkKKyAgICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19f
KTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgIHRlc3RGYWlsZWQoImVuZFVuaXQiLCBlLm5hbWUs
IGZvcm1hdEVycm9yKGUpKTsKKyAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7Cisg
ICAgfQorICB9CisgIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKGFsbFRlc3RzU3VjY2Vzc2Z1bCwg
ImZpbmlzaGVkIHRlc3RzIik7Cit9CisKK2Z1bmN0aW9uIGRvVGVzdE5vdGlmeShuYW1lKSB7Cisg
IC8vdHJ5wqB7CisgIC8vICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIC8vICB4
aHIub3BlbigiR0VUIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC8iK25hbWUsIHRydWUpOworICAv
LyAgeGhyLnNlbmQobnVsbCk7CisgIC8vfSBjYXRjaChlKSB7fQorfQorCitmdW5jdGlvbiB0ZXN0
RmFpbGVkKGFzc2VydE5hbWUsIG5hbWUpIHsKKyAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOworICB2
YXIgZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgIGguYXBwZW5kQ2hpbGQo
ZDEpOworICBkMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRkFJTDogIikp
OworICBkMS5zdHlsZS5jb2xvciA9ICJyZWQiOworICBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKAorICAgICAgbmFtZT09bnVsbCA/IGFzc2VydE5hbWUgOiBuYW1lICsgIiAo
aW4gIiArIGFzc2VydE5hbWUgKyAiKSIpKTsKKyAgZC5hcHBlbmRDaGlsZChoKTsKKyAgdmFyIGFy
Z3MgPSBbXQorICBmb3IgKHZhciBpPTI7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAg
dmFyIGEgPSBhcmd1bWVudHNbaV07CisgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdwJyk7CisgICAgcC5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZSc7CisgICAgcC50ZXh0Q29udGVu
dCA9IChhID09IG51bGwpID8gIm51bGwiIDoKKyAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBh
ID09ICdib29sZWFuJyB8fCB0eXBlb2YgYSA9PSAnc3RyaW5nJykgPyBhIDogT2JqZWN0LnRvU291
cmNlKGEpOworICAgIGFyZ3MucHVzaChwLnRleHRDb250ZW50KTsKKyAgICBkLmFwcGVuZENoaWxk
KHApOworICB9CisgIF9fdGVzdExvZ19fLmFwcGVuZENoaWxkKGQpOworICBfX3Rlc3RTdWNjZXNz
X18gPSBmYWxzZTsKKyAgZG9UZXN0Tm90aWZ5KFthc3NlcnROYW1lLCBuYW1lXS5jb25jYXQoYXJn
cykuam9pbigiLS0iKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RQYXNzZWQoYXNzZXJ0TmFtZSwgbmFt
ZSkgeworICBpZiAoIXF1aWV0TW9kZSgpKSB7CisgICAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICB2YXIgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7
CisgICAgdmFyIGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIGguYXBw
ZW5kQ2hpbGQoZDEpOworICAgIGQxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJQQVNTOiAiKSk7CisgICAgZDEuc3R5bGUuY29sb3IgPSAiZ3JlZW4iOworICAgIGguYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoCisgICAgICAgIG5hbWU9PW51bGwgPyBhc3Nl
cnROYW1lIDogbmFtZSArICIgKGluICIgKyBhc3NlcnROYW1lICsgIikiKSk7CisgICAgZC5hcHBl
bmRDaGlsZChoKTsKKyAgICB2YXIgYXJncyA9IFtdCisgICAgZm9yICh2YXIgaT0yOyBpPGFyZ3Vt
ZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIGEgPSBhcmd1bWVudHNbaV07CisgICAgICB2
YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgICAgIHAuc3R5bGUud2hpdGVT
cGFjZSA9ICdwcmUnOworICAgICAgcC50ZXh0Q29udGVudCA9IChhID09IG51bGwpID8gIm51bGwi
IDoKKyAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nIHx8IHR5cGVv
ZiBhID09ICdzdHJpbmcnKSA/IGEgOiBPYmplY3QudG9Tb3VyY2UoYSk7CisgICAgICBhcmdzLnB1
c2gocC50ZXh0Q29udGVudCk7CisgICAgICBkLmFwcGVuZENoaWxkKHApOworICAgIH0KKyAgICBf
X3Rlc3RMb2dfXy5hcHBlbmRDaGlsZChkKTsKKyAgfQorICBkb1Rlc3ROb3RpZnkoW2Fzc2VydE5h
bWUsIG5hbWVdLmNvbmNhdChhcmdzKS5qb2luKCItLSIpKTsKK30KKworZnVuY3Rpb24gY2hlY2tU
ZXN0U3VjY2VzcygpIHsKKyAgcmV0dXJuIF9fdGVzdEZhaWxDb3VudF9fID09IDA7Cit9CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKXsKKyAgZm9yICh2YXIgaT0w
OyBpPF9fYmFja2xvZ19fLmxlbmd0aDsgaSsrKQorICAgIGxvZyhfX2JhY2tsb2dfX1tpXSk7Cit9
LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgdmFyIHAgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdwJyk7CisgIHZhciBhID0gW107CisgIGZvciAodmFyIGk9MDsgaTxhcmd1bWVu
dHMubGVuZ3RoOyBpKyspCisgICAgYS5wdXNoKGFyZ3VtZW50c1tpXSk7CisgIHAudGV4dENvbnRl
bnQgPSBhLmpvaW4oIiwgIik7CisgIGlmICghX190ZXN0TG9nX18pIHsKKyAgICBpZiAoZG9jdW1l
bnQuYm9keSkKKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocCk7CisgICAgZWxzZQor
ICAgICAgX19iYWNrbG9nX18ucHVzaChtc2cpOworICB9IGVsc2UgeworICAgIF9fdGVzdExvZ19f
LmFwcGVuZENoaWxkKHApOworICB9Cit9CisKK2Z1bmN0aW9uIHByaW50VGVzdFN0YXR1cyh0ZXN0
c1J1bikgeworICB2YXIgc3RhdHVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qtc3Rh
dHVzJyk7CisgIGlmICh0ZXN0c1J1bikgeworICAgIHN0YXR1cy5jbGFzc05hbWUgPSBjaGVja1Rl
c3RTdWNjZXNzKCkgPyAnb2snIDogJ2ZhaWwnOworICAgIHN0YXR1cy50ZXh0Q29udGVudCA9IGNo
ZWNrVGVzdFN1Y2Nlc3MoKSA/ICJQQVNTIiA6ICJGQUlMIjsKKyAgfSBlbHNlIHsKKyAgICBzdGF0
dXMuY2xhc3NOYW1lID0gJ2ZhaWwnOworICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICJOTyBURVNU
UyBGT1VORCI7CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0RmFpbChuYW1lLCBmKSB7CisgIGlm
IChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIHZhciByID0gZmFsc2U7
CisgIHRyeSB7IGYoKTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgfQorICBpZiAoIXIpIHsKKyAgICB0
ZXN0RmFpbGVkKCJhc3NlcnRGYWlsIiwgbmFtZSwgZik7CisgICAgcmV0dXJuIGZhbHNlOworICB9
IGVsc2UgeworICAgIHRlc3RQYXNzZWQoImFzc2VydEZhaWwiLCBuYW1lLCBmKTsKKyAgICByZXR1
cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRPayhuYW1lLCBmKSB7CisgIGlmIChm
ID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIHZhciByID0gZmFsc2U7Cisg
IHZhciBlcnI7CisgIHRyeSB7IGYoKTsgcj10cnVlOyB9IGNhdGNoKGUpIHsgZXJyID0gZTsgfQor
ICBpZiAoIXIpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRPayIsIG5hbWUsIGYsIGVyci50b1N0
cmluZygpKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgi
YXNzZXJ0T2siLCBuYW1lLCBmKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlv
biBhc3NlcnQobmFtZSwgdikgeworICBpZiAodiA9PSBudWxsKSB7IHYgPSBuYW1lOyBuYW1lID0g
bnVsbDsgfQorICBpZiAoIXYpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnQiLCBuYW1lLCB2KTsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiYXNzZXJ0Iiwg
bmFtZSwgdik7CisgICAgcmV0dXJuIHRydWU7CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0UHJv
cGVydHkobmFtZSwgdiwgcCkgeworICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsg
bmFtZSA9IHA7IH0KKyAgaWYgKHZbcF0gPT0gbnVsbCkgeworICAgIHRlc3RGYWlsZWQoImFzc2Vy
dFByb3BlcnR5IiwgbmFtZSk7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRl
c3RQYXNzZWQoImFzc2VydFByb3BlcnR5IiwgbmFtZSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0K
K30KKworZnVuY3Rpb24gY29tcGFyZShhLGIpIHsKKyAgaWYgKHR5cGVvZiBhID09ICdudW1iZXIn
ICYmIHR5cGVvZiBiID09ICdudW1iZXInKSB7CisgICAgcmV0dXJuIGEgPT0gYjsKKyAgfSBlbHNl
IHsKKyAgICByZXR1cm4gT2JqZWN0LnRvU291cmNlKGEpID09IE9iamVjdC50b1NvdXJjZShiKTsK
KyAgfQorfQorCitmdW5jdGlvbiBhc3NlcnRFcXVhbHMobmFtZSwgdiwgcCkgeworICBpZiAocCA9
PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgaWYgKCFjb21wYXJl
KHYsIHApKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0RXF1YWxzIiwgbmFtZSwgdiwgcCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQoImFzc2VydEVxdWFs
cyIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIGFz
c2VydEFycmF5RXF1YWxzKG5hbWUsIHYsIHApIHsKKyAgaWYgKHAgPT0gbnVsbCkgeyBwID0gdjsg
diA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIGlmICghdikgeworICAgIHRlc3RGYWlsZWQoImFz
c2VydEFycmF5RXF1YWxzOiBmaXJzdCBhcnJheSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFwKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0
QXJyYXlFcXVhbHM6IHNlY29uZCBhcnJheSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKKyAgICBy
ZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKHYubGVuZ3RoICE9IHAubGVuZ3RoKSB7CisgICAgdGVz
dEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHMiLCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHYubGVuZ3RoOyArK2lpKSB7CisgICAg
aWYgKHZbaWldICE9IHBbaWldKSB7CisgICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFs
cyIsIG5hbWUsIHYsIHApOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICB0ZXN0
UGFzc2VkKCJhc3NlcnRBcnJheUVxdWFscyIsIG5hbWUsIHYsIHApOworICByZXR1cm4gdHJ1ZTsK
K30KKworZnVuY3Rpb24gYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbihuYW1lLCB2LCBwLCBs
KSB7CisgIGlmIChsID09IG51bGwpIHsgbCA9IHA7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51
bGw7IH0KKyAgaWYgKCF2KSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHNXaXRo
RXBzaWxvbjogZmlyc3QgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwgcCk7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisgIGlmICghcCkgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1
YWxzV2l0aEVwc2lsb246IHNlY29uZCBhcnJheSB1bmRlZmluZWQiLCBuYW1lLCB2LCBwKTsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFsKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0
QXJyYXlFcXVhbHNXaXRoRXBzaWxvbjogbGltaXQgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwg
cCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmICh2Lmxlbmd0aCAhPSBwLmxlbmd0aCkg
eworICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb24iLCBuYW1lLCB2
LCBwLCBsKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKHYubGVuZ3RoICE9IGwubGVu
Z3RoKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbiIsIG5h
bWUsIHYsIHAsIGwpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBmb3IgKHZhciBpaSA9IDA7
IGlpIDwgdi5sZW5ndGg7ICsraWkpIHsKKyAgICBpZiAoTWF0aC5hYnModltpaV0tIHBbaWldKT5s
W2lpXSkgeworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbiIs
IG5hbWUsIHYsIHAsIGwpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICB0ZXN0
UGFzc2VkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwgcCwgbCk7Cisg
IHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBhc3NlcnROb3RFcXVhbHMobmFtZSwgdiwgcCkg
eworICBpZiAocCA9PSBudWxsKSB7IHAgPSB2OyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAg
aWYgKGNvbXBhcmUodiwgcCkpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnROb3RFcXVhbHMiLCBu
YW1lLCB2LCBwKQorICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2Vk
KCJhc3NlcnROb3RFcXVhbHMiLCBuYW1lLCB2LCBwKQorICAgIHJldHVybiB0cnVlOworICB9Cit9
CisKK2Z1bmN0aW9uIHRpbWUoZWxlbWVudElkLCBmKSB7CisgICAgdmFyIHMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIHZhciB0MCA9IG5ldyBEYXRlKCkuZ2V0VGlt
ZSgpOworICAgIGYoKTsKKyAgICB2YXIgdDEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKKyAgICBz
LnRleHRDb250ZW50ID0gJ0VsYXBzZWQ6ICcrKHQxLXQwKSsnIG1zJzsKK30KKworZnVuY3Rpb24g
cmFuZG9tRmxvYXQgKCkgeworICAgIC8vIG5vdGUgdGhhdCBpbiBmdXp6LXRlc3RpbmcsIHRoaXMg
Y2FuIHVzZWQgYXMgdGhlIHNpemUgb2YgYSBidWZmZXIgdG8gYWxsb2NhdGUuCisgICAgLy8gc28g
aXQgc2hvdWxkbid0IHJldHVybiBhc3Ryb25vbWljIHZhbHVlcy4gVGhlIG1heGltdW0gdmFsdWUg
MTAwMDAwMDAgaXMgYWxyZWFkeSBxdWl0ZSBiaWcuCisgICAgdmFyIGZhYyA9IDEuMDsKKyAgICB2
YXIgciA9IE1hdGgucmFuZG9tKCk7CisgICAgaWYgKHIgPCAwLjI1KQorICAgICAgICBmYWMgPSAx
MDsKKyAgICBlbHNlIGlmIChyIDwgMC40KQorICAgICAgICBmYWMgPSAxMDA7CisgICAgZWxzZSBp
ZiAociA8IDAuNSkKKyAgICAgICAgZmFjID0gMTAwMDsKKyAgICBlbHNlIGlmIChyIDwgMC42KQor
ICAgICAgICBmYWMgPSAxMDAwMDA7CisgICAgZWxzZSBpZiAociA8IDAuNykKKyAgICAgICAgZmFj
ID0gMTAwMDAwMDA7CisgICAgZWxzZSBpZiAociA8IDAuOCkKKyAgICAgICAgZmFjID0gTmFOOwor
ICAgIHJldHVybiAtMC41KmZhYyArIE1hdGgucmFuZG9tKCkgKiBmYWM7Cit9CitmdW5jdGlvbiBy
YW5kb21GbG9hdEZyb21SYW5nZShsbywgaGkpIHsKKyAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOwor
ICBpZiAociA8IDAuMDUpCisgICAgcmV0dXJuIGxvOworICBlbHNlIGlmIChyID4gMC45NSkKKyAg
ICByZXR1cm4gaGk7CisgIGVsc2UKKyAgICByZXR1cm4gbG8gKyBNYXRoLnJhbmRvbSgpKihoaS1s
byk7Cit9CitmdW5jdGlvbiByYW5kb21JbnQgKHN6KSB7CisgIGlmIChzeiAhPSBudWxsKQorICAg
IHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqc3opOworICBlbHNlCisgICAgcmV0dXJu
IE1hdGguZmxvb3IocmFuZG9tRmxvYXQoKSk7Cit9CitmdW5jdGlvbiByYW5kb21JbnRGcm9tUmFu
Z2UobG8sIGhpKSB7CisgIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbUZsb2F0RnJvbVJhbmdlKGxv
LCBoaSkpOworfQorZnVuY3Rpb24gcmFuZG9tTGVuZ3RoICgpIHsKKyAgICB2YXIgbCA9IE1hdGgu
Zmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1Nik7CisgICAgaWYgKE1hdGgucmFuZG9tIDwgMC41KSBs
ID0gbCAvIDEwOworICAgIGlmIChNYXRoLnJhbmRvbSA8IDAuMykgbCA9IGwgLyAxMDsKKyAgICBy
ZXR1cm4gbDsKK30KK2Z1bmN0aW9uIHJhbmRvbVNtYWxsSW50QXJyYXkgKCkgeworICAgIHZhciBs
ID0gcmFuZG9tTGVuZ3RoKCk7CisgICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7CisgICAgZm9yICh2
YXIgaT0wOyBpPGw7IGkrKykKKyAgICAgICAgc1tpXSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20o
KSAqIDI1NiktMTsKKyAgICByZXR1cm4gczsKK30KK2Z1bmN0aW9uIHJhbmRvbUZsb2F0QXJyYXkg
KCkgeworICAgIHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7CisgICAgdmFyIHMgPSBuZXcgQXJyYXko
bCk7CisgICAgZm9yICh2YXIgaT0wOyBpPGw7IGkrKykKKyAgICAgICAgc1tpXSA9IHJhbmRvbUZs
b2F0KCk7CisgICAgcmV0dXJuIHM7Cit9CitmdW5jdGlvbiByYW5kb21JbnRBcnJheSAoKSB7Cisg
ICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKKyAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKKyAg
ICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQorICAgICAgICBzW2ldID0gcmFuZG9tRmxvYXQoKTsK
KyAgICByZXR1cm4gczsKK30KK2Z1bmN0aW9uIHJhbmRvbU1peGVkQXJyYXkgKCkgeworICAgIHZh
ciBsID0gcmFuZG9tTGVuZ3RoKCk7CisgICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7CisgICAgZm9y
ICh2YXIgaT0wOyBpPGw7IGkrKykKKyAgICAgICAgc1tpXSA9IHJhbmRvbU5vbkFycmF5KCk7Cisg
ICAgcmV0dXJuIHM7Cit9CitmdW5jdGlvbiByYW5kb21BcnJheSAoKSB7CisgICAgdmFyIHIgPSBN
YXRoLnJhbmRvbSgpOworICAgIGlmIChyIDwgMC4zKQorICAgICAgICByZXR1cm4gcmFuZG9tRmxv
YXRBcnJheSgpOworICAgIGVsc2UgaWYgKHIgPCAwLjYpCisgICAgICAgIHJldHVybiByYW5kb21J
bnRBcnJheSgpOworICAgIGVsc2UgaWYgKHIgPCAwLjgpCisgICAgICAgIHJldHVybiByYW5kb21T
bWFsbEludEFycmF5KCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gcmFuZG9tTWl4ZWRBcnJh
eSgpOworfQorZnVuY3Rpb24gcmFuZG9tU3RyaW5nICgpIHsKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShTdHJpbmcsIHJhbmRvbVNtYWxsSW50QXJyYXkoKSk7Cit9CitmdW5j
dGlvbiByYW5kb21HTENvbnN0YW50ICgpIHsKKyAgICByZXR1cm4gR0xDb25zdGFudHNbTWF0aC5m
bG9vcihNYXRoLnJhbmRvbSgpICogR0xDb25zdGFudHMubGVuZ3RoKV07Cit9CisKK2Z1bmN0aW9u
IHJhbmRvbU5vbkFycmF5KCkgeworICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKKyAgICBpZiAo
ciA8IDAuMjUpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUZsb2F0KCk7CisgICAgfSBlbHNlIGlm
IChyIDwgMC42KSB7CisgICAgICAgIHJldHVybiByYW5kb21JbnQoKTsKKyAgICB9IGVsc2UgaWYg
KHIgPCAwLjcpIHsKKyAgICAgICAgcmV0dXJuIChyIDwgMC42NSk7CisgICAgfSBlbHNlIGlmIChy
IDwgMC44NykgeworICAgICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7CisgICAgfSBlbHNlIGlm
IChyIDwgMC45OCkgeworICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25zdGFudCgpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KKworZnVuY3Rpb24gZ2VuZXJh
dGVSYW5kb21BcmcocG9zLCBjb3VudCkgeworICAgIGlmIChwb3MgPT0gMCAmJiBNYXRoLnJhbmRv
bSgpIDwgMC41KQorICAgICAgICByZXR1cm4gcmFuZG9tR0xDb25zdGFudCgpOworICAgIGlmIChw
b3MgPT0gY291bnQtMSAmJiBNYXRoLnJhbmRvbSgpIDwgMC4yNSkKKyAgICAgICAgaWYgKE1hdGgu
cmFuZG9tKCkgPCAwLjUpCisgICAgICAgICAgICByZXR1cm4gcmFuZG9tU3RyaW5nKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiByYW5kb21BcnJheSgpOworICAgIHZhciByID0g
TWF0aC5yYW5kb20oKTsKKyAgICBpZiAociA8IDAuMjUpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRv
bUZsb2F0KCk7CisgICAgfSBlbHNlIGlmIChyIDwgMC42KSB7CisgICAgICAgIHJldHVybiByYW5k
b21JbnQoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjcpIHsKKyAgICAgICAgcmV0dXJuIChyIDwg
MC42NSk7CisgICAgfSBlbHNlIGlmIChyIDwgMC43NykgeworICAgICAgICByZXR1cm4gcmFuZG9t
U3RyaW5nKCk7CisgICAgfSBlbHNlIGlmIChyIDwgMC44NCkgeworICAgICAgICByZXR1cm4gcmFu
ZG9tQXJyYXkoKTsKKyAgICB9IGVsc2UgaWYgKHIgPCAwLjk4KSB7CisgICAgICAgIHJldHVybiBy
YW5kb21HTENvbnN0YW50KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG51bGw7Cisg
ICAgfQorfQorCisKK2Z1bmN0aW9uIGdlbmVyYXRlUmFuZG9tQXJncyhjb3VudCkgeworICAgIHZh
ciBhcnIgPSBuZXcgQXJyYXkoY291bnQpOworICAgIGZvciAodmFyIGk9MDsgaTxjb3VudDsgaSsr
KQorICAgICAgICBhcnJbaV0gPSBnZW5lcmF0ZVJhbmRvbUFyZyhpLCBjb3VudCk7CisgICAgcmV0
dXJuIGFycjsKK30KKworLy8gcWMgKGFyZzFnZW4sIGFyZzJnZW4sIC4uLiwgcHJlZGljYXRlKQor
Ly8gcWMgKHJhbmRvbVN0cmluZywgcmFuZG9tSW50LCByYW5kb21JbnQsIGZ1bmN0aW9uKHMsaSxq
KXsgcy5zdWJzdHJpbmcoaSxqKSB9KQorZnVuY3Rpb24gcWMoKSB7Cit9CisKK0dMQ29uc3RhbnRz
ID0gWworMSwKKzB4MDAwMDAxMDAsCisweDAwMDAwNDAwLAorMHgwMDAwNDAwMCwKKzB4MDAwMCwK
KzB4MDAwMSwKKzB4MDAwMiwKKzB4MDAwMywKKzB4MDAwNCwKKzB4MDAwNSwKKzB4MDAwNiwKKzAs
CisxLAorMHgwMzAwLAorMHgwMzAxLAorMHgwMzAyLAorMHgwMzAzLAorMHgwMzA0LAorMHgwMzA1
LAorMHgwMzA2LAorMHgwMzA3LAorMHgwMzA4LAorMHg4MDA2LAorMHg4MDA5LAorMHg4MDA5LAor
MHg4ODNELAorMHg4MDBBLAorMHg4MDBCLAorMHg4MEM4LAorMHg4MEM5LAorMHg4MENBLAorMHg4
MENCLAorMHg4MDAxLAorMHg4MDAyLAorMHg4MDAzLAorMHg4MDA0LAorMHg4MDA1LAorMHg4ODky
LAorMHg4ODkzLAorMHg4ODk0LAorMHg4ODk1LAorMHg4OEUwLAorMHg4OEU0LAorMHg4OEU4LAor
MHg4NzY0LAorMHg4NzY1LAorMHg4NjI2LAorMHgwNDA0LAorMHgwNDA1LAorMHgwNDA4LAorMHgw
REUxLAorMHgwQjQ0LAorMHgwQkUyLAorMHgwQkQwLAorMHgwQjkwLAorMHgwQjcxLAorMHgwQzEx
LAorMHg4MDM3LAorMHg4MDlFLAorMHg4MEEwLAorMCwKKzB4MDUwMCwKKzB4MDUwMSwKKzB4MDUw
MiwKKzB4MDUwNSwKKzB4MDkwMCwKKzB4MDkwMSwKKzB4MEIyMSwKKzB4ODQ2RCwKKzB4ODQ2RSwK
KzB4MEI0NSwKKzB4MEI0NiwKKzB4MEI3MCwKKzB4MEI3MiwKKzB4MEI3MywKKzB4MEI3NCwKKzB4
MEI5MSwKKzB4MEI5MiwKKzB4MEI5NCwKKzB4MEI5NSwKKzB4MEI5NiwKKzB4MEI5NywKKzB4MEI5
MywKKzB4MEI5OCwKKzB4ODgwMCwKKzB4ODgwMSwKKzB4ODgwMiwKKzB4ODgwMywKKzB4OENBMywK
KzB4OENBNCwKKzB4OENBNSwKKzB4MEJBMiwKKzB4MEMxMCwKKzB4MEMyMiwKKzB4MEMyMywKKzB4
MENGNSwKKzB4MEQwNSwKKzB4MEQzMywKKzB4MEQzQSwKKzB4MEQ1MCwKKzB4MEQ1MiwKKzB4MEQ1
MywKKzB4MEQ1NCwKKzB4MEQ1NSwKKzB4MEQ1NiwKKzB4MEQ1NywKKzB4MkEwMCwKKzB4ODAzOCwK
KzB4ODA2OSwKKzB4ODBBOCwKKzB4ODBBOSwKKzB4ODBBQSwKKzB4ODBBQiwKKzB4ODZBMiwKKzB4
ODZBMywKKzB4MTEwMCwKKzB4MTEwMSwKKzB4MTEwMiwKKzB4ODE5MiwKKzB4MTQwMCwKKzB4MTQw
MSwKKzB4MTQwMiwKKzB4MTQwMywKKzB4MTQwNCwKKzB4MTQwNSwKKzB4MTQwNiwKKzB4MTQwQywK
KzB4MTkwMiwKKzB4MTkwNiwKKzB4MTkwNywKKzB4MTkwOCwKKzB4MTkwOSwKKzB4MTkwQSwKKzB4
ODAzMywKKzB4ODAzNCwKKzB4ODM2MywKKzB4OEIzMCwKKzB4OEIzMSwKKzB4ODg2OSwKKzB4OERG
QiwKKzB4OERGQywKKzB4OEI0RCwKKzB4OEI0QywKKzB4ODg3MiwKKzB4OERGRCwKKzB4OEI0RiwK
KzB4OEI4MCwKKzB4OEI4MiwKKzB4OEI4MywKKzB4OEI4NSwKKzB4OEI4NiwKKzB4OEI4NywKKzB4
OEI4OSwKKzB4OEI4QSwKKzB4OEI4QywKKzB4OEI4RCwKKzB4MDIwMCwKKzB4MDIwMSwKKzB4MDIw
MiwKKzB4MDIwMywKKzB4MDIwNCwKKzB4MDIwNSwKKzB4MDIwNiwKKzB4MDIwNywKKzB4MUUwMCwK
KzB4MUUwMSwKKzB4MUUwMiwKKzB4MUUwMywKKzB4MTUwQSwKKzB4ODUwNywKKzB4ODUwOCwKKzB4
MUYwMCwKKzB4MUYwMSwKKzB4MUYwMiwKKzB4MUYwMywKKzB4MjYwMCwKKzB4MjYwMSwKKzB4Mjcw
MCwKKzB4MjcwMSwKKzB4MjcwMiwKKzB4MjcwMywKKzB4MjgwMCwKKzB4MjgwMSwKKzB4MjgwMiwK
KzB4MjgwMywKKzB4MTcwMiwKKzB4ODUxMywKKzB4ODUxNCwKKzB4ODUxNSwKKzB4ODUxNiwKKzB4
ODUxNywKKzB4ODUxOCwKKzB4ODUxOSwKKzB4ODUxQSwKKzB4ODUxQywKKzB4ODRDMCwKKzB4ODRD
MSwKKzB4ODRDMiwKKzB4ODRDMywKKzB4ODRDNCwKKzB4ODRDNSwKKzB4ODRDNiwKKzB4ODRDNywK
KzB4ODRDOCwKKzB4ODRDOSwKKzB4ODRDQSwKKzB4ODRDQiwKKzB4ODRDQywKKzB4ODRDRCwKKzB4
ODRDRSwKKzB4ODRDRiwKKzB4ODREMCwKKzB4ODREMSwKKzB4ODREMiwKKzB4ODREMywKKzB4ODRE
NCwKKzB4ODRENSwKKzB4ODRENiwKKzB4ODRENywKKzB4ODREOCwKKzB4ODREOSwKKzB4ODREQSwK
KzB4ODREQiwKKzB4ODREQywKKzB4ODRERCwKKzB4ODRERSwKKzB4ODRERiwKKzB4ODRFMCwKKzB4
MjkwMSwKKzB4ODEyRiwKKzB4ODM3MCwKKzB4OEI1MCwKKzB4OEI1MSwKKzB4OEI1MiwKKzB4OEI1
MywKKzB4OEI1NCwKKzB4OEI1NSwKKzB4OEI1NiwKKzB4OEI1NywKKzB4OEI1OCwKKzB4OEI1OSwK
KzB4OEI1QSwKKzB4OEI1QiwKKzB4OEI1QywKKzB4OEI1RSwKKzB4OEI2MCwKKzB4ODYyMiwKKzB4
ODYyMywKKzB4ODYyNCwKKzB4ODYyNSwKKzB4ODg2QSwKKzB4ODY0NSwKKzB4ODg5RiwKKzB4OEI5
QSwKKzB4OEI5QiwKKzB4OEI4MSwKKzB4OEI4NCwKKzB4OEI4OCwKKzB4OERGQSwKKzB4OERGOCwK
KzB4OERGOSwKKzB4OERGMCwKKzB4OERGMSwKKzB4OERGMiwKKzB4OERGMywKKzB4OERGNCwKKzB4
OERGNSwKKzB4OEQ0MCwKKzB4OEQ0MSwKKzB4ODA1NiwKKzB4ODA1NywKKzB4OEQ2MiwKKzB4ODFB
NSwKKzB4MTkwMSwKKzB4OEQ0OCwKKzB4OEQ0MiwKKzB4OEQ0MywKKzB4OEQ0NCwKKzB4OEQ1MCwK
KzB4OEQ1MSwKKzB4OEQ1MiwKKzB4OEQ1MywKKzB4OEQ1NCwKKzB4OEQ1NSwKKzB4OENEMCwKKzB4
OENEMSwKKzB4OENEMiwKKzB4OENEMywKKzB4OENFMCwKKzB4OEQwMCwKKzB4OEQyMCwKKzAsCisw
eDhDRDUsCisweDhDRDYsCisweDhDRDcsCisweDhDRDksCisweDhDREQsCisweDhDQTYsCisweDhD
QTcsCisweDg0RTgsCisweDA1MDYsCisweDgwOUQKK107CisKK2Z1bmN0aW9uIHJlcG9ydFRlc3RS
ZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBpZiAod2luZG93LnBhcmVudC53ZWJn
bFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9y
dFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOworICB9Cit9
CisKK2Z1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgeworICBpZiAod2luZG93LnBh
cmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJu
ZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7CisgIH0KK30KKwor
ZnVuY3Rpb24gaW5pdFRlc3RzKCkgeworICBpZiAoVGVzdHMubWVzc2FnZSAhPSBudWxsKSB7Cisg
ICAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1tZXNzYWdlJyk7CisgICAg
aWYgKGggPT0gbnVsbCkgeworICAgICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsK
KyAgICAgIGguaWQgPSAndGVzdC1tZXNzYWdlJzsKKyAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0
QmVmb3JlKGgsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CisgICAgfQorICAgIGgudGV4dENv
bnRlbnQgPSBUZXN0cy5tZXNzYWdlOworICB9CisgIGlmIChUZXN0cy5hdXRvcnVuKSB7CisgICAg
cnVuVGVzdHMoKTsKKyAgfSBlbHNlIHsKKyAgICB2YXIgaCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0LXJ1bicpOworICAgIGlmIChoID09IG51bGwpIHsKKyAgICAgIGggPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworICAgICAgaC50eXBlID0gJ3N1Ym1pdCc7CisgICAg
ICBoLnZhbHVlID0gIlJ1biB0ZXN0cyI7CisgICAgICBoLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZnVuY3Rpb24oZXYpeworICAgICAgICBydW5UZXN0cygpOworICAgICAgICBldi5wcmV2ZW50
RGVmYXVsdCgpOworICAgICAgfSwgZmFsc2UpOworICAgICAgaC5pZCA9ICd0ZXN0LXJ1bic7Cisg
ICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShoLCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hp
bGQpOworICAgIH0KKyAgICBoLnRleHRDb250ZW50ID0gVGVzdHMubWVzc2FnZTsKKyAgfQorCit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKXsKKyAgaWYgKFRl
c3RzLmF1dG9pbml0KSB7CisgICAgLy8gbGV0IHRoZSBicm93c2VyIGhvcGVmdWxseSBmaW5pc2gg
dXBkYXRpbmcgdGhlIGdsIGNhbnZhcyBzdXJmYWNlcyBpZiB3ZSBhcmUgZ2l2ZW4gYSBkZWxheQor
ICAgIGlmIChUZXN0cy5kZWxheSkKKyAgICAgIHNldFRpbWVvdXQoaW5pdFRlc3RzLCBUZXN0cy5k
ZWxheSk7CisgICAgZWxzZQorICAgICAgaW5pdFRlc3RzKCkKKyAgfQorfSwgZmFsc2UpOworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91dGls
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc4Y2MwOGE2NTJiOWY1ZDE0ZTQwNmZlNGRiNzc5OTBkY2YwMDUyMWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcwpAQCAtMCwwICsxLDEy
ODcgQEAKKy8qCitVdGlsaXRpZXMgZm9yIHRoZSBPcGVuR0wgRVMgMi4wIEhUTUwgQ2FudmFzIGNv
bnRleHQKKyovCisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
ZnVuY3Rpb24gbG9hZFRleHR1cmUoZ2wsIGVsZW0sIG1pcG1hcHMpIHsKKyAgdmFyIHRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsK
KyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBlbGVtKTsKKyAgaWYgKG1pcG1hcHMgIT0gZmFsc2UpCisgICAgZ2wuZ2Vu
ZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdF
KTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxU
RVIsIGdsLkxJTkVBUik7CisgIGlmIChtaXBtYXBzKQorICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVB
Uik7CisgIGVsc2UKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgcmV0dXJuIHRleDsKK30KKworZnVuY3Rpb24g
Z2V0U2hhZGVyKGdsLCBpZCkgeworICB2YXIgc2hhZGVyU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoaWQpOworICBpZiAoIXNoYWRlclNjcmlwdCkgeworICAgIHRocm93KG5ldyBFcnJv
cigiTm8gc2hhZGVyIGVsZW1lbnQgd2l0aCBpZDogIitpZCkpOworICB9CisKKyAgdmFyIHN0ciA9
ICIiOworICB2YXIgayA9IHNoYWRlclNjcmlwdC5maXJzdENoaWxkOworICB3aGlsZSAoaykgewor
ICAgIGlmIChrLm5vZGVUeXBlID09IDMpCisgICAgICBzdHIgKz0gay50ZXh0Q29udGVudDsKKyAg
ICBrID0gay5uZXh0U2libGluZzsKKyAgfQorCisgIHZhciBzaGFkZXI7CisgIGlmIChzaGFkZXJT
Y3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC1mcmFnbWVudCIpIHsKKyAgICBzaGFkZXIgPSBnbC5j
cmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsKKyAgfSBlbHNlIGlmIChzaGFkZXJTY3Jp
cHQudHlwZSA9PSAieC1zaGFkZXIveC12ZXJ0ZXgiKSB7CisgICAgc2hhZGVyID0gZ2wuY3JlYXRl
U2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOworICB9IGVsc2UgeworICAgIHRocm93KG5ldyBFcnJv
cigiVW5rbm93biBzaGFkZXIgdHlwZSAiK3NoYWRlclNjcmlwdC50eXBlKSk7CisgIH0KKworICBn
bC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzdHIpOworICBnbC5jb21waWxlU2hhZGVyKHNoYWRlcik7
CisKKyAgaWYgKGdsLmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVT
KSAhPSAxKSB7CisgICAgdmFyIGlsb2cgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7Cisg
ICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7CisgICAgdGhyb3cobmV3IEVycm9yKCJGYWlsZWQg
dG8gY29tcGlsZSBzaGFkZXIgIitzaGFkZXJTY3JpcHQuaWQgKyAiLCBTaGFkZXIgaW5mbyBsb2c6
ICIgKyBpbG9nKSk7CisgIH0KKyAgcmV0dXJuIHNoYWRlcjsKK30KKworZnVuY3Rpb24gbG9hZFNo
YWRlckFycmF5KGdsLCBzaGFkZXJzKSB7CisgIHZhciBpZCA9IGdsLmNyZWF0ZVByb2dyYW0oKTsK
KyAgdmFyIHNoYWRlck9ianMgPSBbXTsKKyAgZm9yICh2YXIgaT0wOyBpPHNoYWRlcnMubGVuZ3Ro
OyArK2kpIHsKKyAgICB0cnkgeworICAgICAgdmFyIHNoID0gZ2V0U2hhZGVyKGdsLCBzaGFkZXJz
W2ldKTsKKyAgICAgIHNoYWRlck9ianMucHVzaChzaCk7CisgICAgICBnbC5hdHRhY2hTaGFkZXIo
aWQsIHNoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICB2YXIgcHIgPSB7cHJvZ3JhbTogaWQs
IHNoYWRlcnM6IHNoYWRlck9ianN9OworICAgICAgZGVsZXRlU2hhZGVyKGdsLCBwcik7CisgICAg
ICB0aHJvdyAoZSk7CisgICAgfQorICB9CisgIHZhciBwcm9nID0ge3Byb2dyYW06IGlkLCBzaGFk
ZXJzOiBzaGFkZXJPYmpzfTsKKyAgZ2wubGlua1Byb2dyYW0oaWQpOworICBnbC52YWxpZGF0ZVBy
b2dyYW0oaWQpOworICBpZiAoZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihpZCwgZ2wuTElOS19TVEFU
VVMpICE9IDEpIHsKKyAgICBkZWxldGVTaGFkZXIoZ2wscHJvZyk7CisgICAgdGhyb3cobmV3IEVy
cm9yKCJGYWlsZWQgdG8gbGluayBzaGFkZXIiKSk7CisgIH0KKyAgaWYgKGdsLmdldFByb2dyYW1Q
YXJhbWV0ZXIoaWQsIGdsLlZBTElEQVRFX1NUQVRVUykgIT0gMSkgeworICAgIGRlbGV0ZVNoYWRl
cihnbCxwcm9nKTsKKyAgICB0aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0byB2YWxpZGF0ZSBzaGFk
ZXIiKSk7CisgIH0KKyAgcmV0dXJuIHByb2c7Cit9CitmdW5jdGlvbiBsb2FkU2hhZGVyKGdsKSB7
CisgIHZhciBzaCA9IFtdOworICBmb3IgKHZhciBpPTE7IGk8YXJndW1lbnRzLmxlbmd0aDsgKytp
KQorICAgIHNoLnB1c2goYXJndW1lbnRzW2ldKTsKKyAgcmV0dXJuIGxvYWRTaGFkZXJBcnJheShn
bCwgc2gpOworfQorCitmdW5jdGlvbiBkZWxldGVTaGFkZXIoZ2wsIHNoKSB7CisgIGdsLnVzZVBy
b2dyYW0obnVsbCk7CisgIHNoLnNoYWRlcnMuZm9yRWFjaChmdW5jdGlvbihzKXsKKyAgICBnbC5k
ZXRhY2hTaGFkZXIoc2gucHJvZ3JhbSwgcyk7CisgICAgZ2wuZGVsZXRlU2hhZGVyKHMpOworICB9
KTsKKyAgZ2wuZGVsZXRlUHJvZ3JhbShzaC5wcm9ncmFtKTsKK30KKworZnVuY3Rpb24gZ2V0R0xF
cnJvckFzU3RyaW5nKGN0eCwgZXJyKSB7CisgIGlmIChlcnIgPT09IGN0eC5OT19FUlJPUikgewor
ICAgIHJldHVybiAiTk9fRVJST1IiOworICB9CisgIGZvciAodmFyIG5hbWUgaW4gY3R4KSB7Cisg
ICAgaWYgKGN0eFtuYW1lXSA9PT0gZXJyKSB7CisgICAgICByZXR1cm4gbmFtZTsKKyAgICB9Cisg
IH0KKyAgcmV0dXJuIGVyci50b1N0cmluZygpOworfQorCitmdW5jdGlvbiBjaGVja0Vycm9yKGds
LCBtc2cpIHsKKyAgdmFyIGUgPSBnbC5nZXRFcnJvcigpOworICBpZiAoZSAhPSBnbC5OT19FUlJP
UikgeworICAgIGxvZygiRXJyb3IgIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZSkgKyAiIGF0
ICIgKyBtc2cpOworICB9CisgIHJldHVybiBlOworfQorCitmdW5jdGlvbiB0aHJvd0Vycm9yKGds
LCBtc2cpIHsKKyAgdmFyIGUgPSBnbC5nZXRFcnJvcigpOworICBpZiAoZSAhPSAwKSB7CisgICAg
dGhyb3cobmV3IEVycm9yKCJFcnJvciAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlKSArICIg
YXQgIiArIG1zZykpOworICB9Cit9CisKK01hdGguY290ID0gZnVuY3Rpb24oeikgeyByZXR1cm4g
MS4wIC8gTWF0aC50YW4oeik7IH0KKworLyoKKyAgTWF0cml4IHV0aWxpdGllcywgdXNpbmcgdGhl
IE9wZW5HTCBlbGVtZW50IG9yZGVyIHdoZXJlCisgIHRoZSBsYXN0IDQgZWxlbWVudHMgYXJlIHRo
ZSB0cmFuc2xhdGlvbiBjb2x1bW4uCisKKyAgVXNlcyBmbGF0IGFycmF5cyBhcyBtYXRyaWNlcyBm
b3IgcGVyZm9ybWFuY2UuCisKKyAgTW9zdCBvcGVyYXRpb25zIGhhdmUgaW4tcGxhY2UgdmFyaWFu
dHMgdG8gYXZvaWQgYWxsb2NhdGluZyB0ZW1wb3JhcnkgbWF0cmljZXMuCisKKyAgTmFtaW5nIGxv
Z2ljOgorICAgIE1hdHJpeC5tZXRob2Qgb3BlcmF0ZXMgb24gYSA0eDQgTWF0cml4IGFuZCByZXR1
cm5zIGEgbmV3IE1hdHJpeC4KKyAgICBNYXRyaXgubWV0aG9kM3gzIG9wZXJhdGVzIG9uIGEgM3gz
IE1hdHJpeCBhbmQgcmV0dXJucyBhIG5ldyBNYXRyaXguIE5vdCBhbGwgb3BlcmF0aW9ucyBoYXZl
IGEgM3gzIHZlcnNpb24gKGFzIDN4MyBpcyB1c3VhbGx5IG9ubHkgdXNlZCBmb3IgdGhlIG5vcm1h
bCBtYXRyaXg6IE1hdHJpeC50cmFuc3Bvc2UzeDMoTWF0cml4LmludmVyc2VUbzN4MyhtYXQ0eDQp
KSkKKyAgICBNYXRyaXgubWV0aG9kWzN4M11JblBsYWNlKGFyZ3MsIHRhcmdldCkgc3RvcmVzIGl0
cyByZXN1bHQgaW4gdGhlIHRhcmdldCBtYXRyaXguCisKKyAgICBNYXRyaXguc2NhbGUoW3N4LCBz
eSwgc3pdKSAtLSBub24tdW5pZm9ybSBzY2FsZSBieSB2ZWN0b3IKKyAgICBNYXRyaXguc2NhbGUx
KHMpICAgICAgICAgICAtLSB1bmlmb3JtIHNjYWxlIGJ5IHNjYWxhcgorICAgIE1hdHJpeC5zY2Fs
ZTMoc3gsIHN5LCBzeikgIC0tIG5vbi11bmlmb3JtIHNjYWxlIGJ5IHNjYWxhcnMKKworICAgIERp
dHRvIGZvciB0cmFuc2xhdGUuCisqLworTWF0cml4ID0geworICBpZGVudGl0eSA6IFsKKyAgICAx
LjAsIDAuMCwgMC4wLCAwLjAsCisgICAgMC4wLCAxLjAsIDAuMCwgMC4wLAorICAgIDAuMCwgMC4w
LCAxLjAsIDAuMCwKKyAgICAwLjAsIDAuMCwgMC4wLCAxLjAKKyAgXSwKKworICBuZXdJZGVudGl0
eSA6IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBbCisgICAgICAxLjAsIDAuMCwgMC4wLCAwLjAs
CisgICAgICAwLjAsIDEuMCwgMC4wLCAwLjAsCisgICAgICAwLjAsIDAuMCwgMS4wLCAwLjAsCisg
ICAgICAwLjAsIDAuMCwgMC4wLCAxLjAKKyAgICBdOworICB9LAorCisgIG5ld0lkZW50aXR5M3gz
IDogZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIDEuMCwgMC4wLCAwLjAsCisgICAg
ICAwLjAsIDEuMCwgMC4wLAorICAgICAgMC4wLCAwLjAsIDEuMAorICAgIF07CisgIH0sCisKKyAg
Y29weU1hdHJpeCA6IGZ1bmN0aW9uKHNyYywgZHN0KSB7CisgICAgZm9yICh2YXIgaT0wOyBpPDE2
OyBpKyspIGRzdFtpXSA9IHNyY1tpXTsKKyAgICByZXR1cm4gZHN0OworICB9LAorCisgIHRvM3gz
IDogZnVuY3Rpb24obSkgeworICAgIHJldHVybiBbCisgICAgICBtWzBdLCBtWzFdLCBtWzJdLAor
ICAgICAgbVs0XSwgbVs1XSwgbVs2XSwKKyAgICAgIG1bOF0sIG1bOV0sIG1bMTBdCisgICAgXTsK
KyAgfSwKKworICAvLyBvcnRob25vcm1hbCBtYXRyaXggaW52ZXJzZQorICBpbnZlcnNlT04gOiBm
dW5jdGlvbihtKSB7CisgICAgdmFyIG4gPSB0aGlzLnRyYW5zcG9zZTR4NChtKTsKKyAgICB2YXIg
dCA9IFttWzEyXSwgbVsxM10sIG1bMTRdXTsKKyAgICBuWzNdID0gbls3XSA9IG5bMTFdID0gMDsK
KyAgICBuWzEyXSA9IC1WZWMzLmRvdChbblswXSwgbls0XSwgbls4XV0sIHQpOworICAgIG5bMTNd
ID0gLVZlYzMuZG90KFtuWzFdLCBuWzVdLCBuWzldXSwgdCk7CisgICAgblsxNF0gPSAtVmVjMy5k
b3QoW25bMl0sIG5bNl0sIG5bMTBdXSwgdCk7CisgICAgcmV0dXJuIG47CisgIH0sCisKKyAgaW52
ZXJzZVRvM3gzIDogZnVuY3Rpb24obSkgeworICAgIHJldHVybiB0aGlzLmludmVyc2U0eDR0bzN4
M0luUGxhY2UobSwgdGhpcy5uZXdJZGVudGl0eTN4MygpKTsKKyAgfSwKKworICBpbnZlcnNlVG8z
eDNJblBsYWNlIDogZnVuY3Rpb24obSxuKSB7CisgICAgdmFyIGExMSA9IG1bMTBdKm1bNV0tbVs2
XSptWzldLAorICAgICAgICBhMjEgPSAtbVsxMF0qbVsxXSttWzJdKm1bOV0sCisgICAgICAgIGEz
MSA9IG1bNl0qbVsxXS1tWzJdKm1bNV0sCisgICAgICAgIGExMiA9IC1tWzEwXSptWzRdK21bNl0q
bVs4XSwKKyAgICAgICAgYTIyID0gbVsxMF0qbVswXS1tWzJdKm1bOF0sCisgICAgICAgIGEzMiA9
IC1tWzZdKm1bMF0rbVsyXSptWzRdLAorICAgICAgICBhMTMgPSBtWzldKm1bNF0tbVs1XSptWzhd
LAorICAgICAgICBhMjMgPSAtbVs5XSptWzBdK21bMV0qbVs4XSwKKyAgICAgICAgYTMzID0gbVs1
XSptWzBdLW1bMV0qbVs0XTsKKyAgICB2YXIgZGV0ID0gbVswXSooYTExKSArIG1bMV0qKGExMikg
KyBtWzJdKihhMTMpOworICAgIGlmIChkZXQgPT0gMCkgLy8gbm8gaW52ZXJzZQorICAgICAgcmV0
dXJuIFsxLDAsMCwwLDEsMCwwLDAsMV07CisgICAgdmFyIGlkZXQgPSAxIC8gZGV0OworICAgIG5b
MF0gPSBpZGV0KmExMTsKKyAgICBuWzFdID0gaWRldCphMjE7CisgICAgblsyXSA9IGlkZXQqYTMx
OworICAgIG5bM10gPSBpZGV0KmExMjsKKyAgICBuWzRdID0gaWRldCphMjI7CisgICAgbls1XSA9
IGlkZXQqYTMyOworICAgIG5bNl0gPSBpZGV0KmExMzsKKyAgICBuWzddID0gaWRldCphMjM7Cisg
ICAgbls4XSA9IGlkZXQqYTMzOworICAgIHJldHVybiBuOworICB9LAorCisgIGludmVyc2UzeDMg
OiBmdW5jdGlvbihtKSB7CisgICAgcmV0dXJuIHRoaXMuaW52ZXJzZTN4M0luUGxhY2UobSwgdGhp
cy5uZXdJZGVudGl0eTN4MygpKTsKKyAgfSwKKworICBpbnZlcnNlM3gzSW5QbGFjZSA6IGZ1bmN0
aW9uKG0sbikgeworICAgIHZhciBhMTEgPSBtWzhdKm1bNF0tbVs1XSptWzddLAorICAgICAgICBh
MjEgPSAtbVs4XSptWzFdK21bMl0qbVs3XSwKKyAgICAgICAgYTMxID0gbVs1XSptWzFdLW1bMl0q
bVs0XSwKKyAgICAgICAgYTEyID0gLW1bOF0qbVszXSttWzVdKm1bNl0sCisgICAgICAgIGEyMiA9
IG1bOF0qbVswXS1tWzJdKm1bNl0sCisgICAgICAgIGEzMiA9IC1tWzVdKm1bMF0rbVsyXSptWzNd
LAorICAgICAgICBhMTMgPSBtWzddKm1bNF0tbVs0XSptWzhdLAorICAgICAgICBhMjMgPSAtbVs3
XSptWzBdK21bMV0qbVs2XSwKKyAgICAgICAgYTMzID0gbVs0XSptWzBdLW1bMV0qbVszXTsKKyAg
ICB2YXIgZGV0ID0gbVswXSooYTExKSArIG1bMV0qKGExMikgKyBtWzJdKihhMTMpOworICAgIGlm
IChkZXQgPT0gMCkgLy8gbm8gaW52ZXJzZQorICAgICAgcmV0dXJuIFsxLDAsMCwwLDEsMCwwLDAs
MV07CisgICAgdmFyIGlkZXQgPSAxIC8gZGV0OworICAgIG5bMF0gPSBpZGV0KmExMTsKKyAgICBu
WzFdID0gaWRldCphMjE7CisgICAgblsyXSA9IGlkZXQqYTMxOworICAgIG5bM10gPSBpZGV0KmEx
MjsKKyAgICBuWzRdID0gaWRldCphMjI7CisgICAgbls1XSA9IGlkZXQqYTMyOworICAgIG5bNl0g
PSBpZGV0KmExMzsKKyAgICBuWzddID0gaWRldCphMjM7CisgICAgbls4XSA9IGlkZXQqYTMzOwor
ICAgIHJldHVybiBuOworICB9LAorCisgIGZydXN0dW0gOiBmdW5jdGlvbiAobGVmdCwgcmlnaHQs
IGJvdHRvbSwgdG9wLCB6bmVhciwgemZhcikgeworICAgIHZhciBYID0gMip6bmVhci8ocmlnaHQt
bGVmdCk7CisgICAgdmFyIFkgPSAyKnpuZWFyLyh0b3AtYm90dG9tKTsKKyAgICB2YXIgQSA9IChy
aWdodCtsZWZ0KS8ocmlnaHQtbGVmdCk7CisgICAgdmFyIEIgPSAodG9wK2JvdHRvbSkvKHRvcC1i
b3R0b20pOworICAgIHZhciBDID0gLSh6ZmFyK3puZWFyKS8oemZhci16bmVhcik7CisgICAgdmFy
IEQgPSAtMip6ZmFyKnpuZWFyLyh6ZmFyLXpuZWFyKTsKKworICAgIHJldHVybiBbCisgICAgICBY
LCAwLCAwLCAwLAorICAgICAgMCwgWSwgMCwgMCwKKyAgICAgIEEsIEIsIEMsIC0xLAorICAgICAg
MCwgMCwgRCwgMAorICAgIF07CisgfSwKKworICBwZXJzcGVjdGl2ZSA6IGZ1bmN0aW9uIChmb3Z5
LCBhc3BlY3QsIHpuZWFyLCB6ZmFyKSB7CisgICAgdmFyIHltYXggPSB6bmVhciAqIE1hdGgudGFu
KGZvdnkgKiBNYXRoLlBJIC8gMzYwLjApOworICAgIHZhciB5bWluID0gLXltYXg7CisgICAgdmFy
IHhtaW4gPSB5bWluICogYXNwZWN0OworICAgIHZhciB4bWF4ID0geW1heCAqIGFzcGVjdDsKKwor
ICAgIHJldHVybiB0aGlzLmZydXN0dW0oeG1pbiwgeG1heCwgeW1pbiwgeW1heCwgem5lYXIsIHpm
YXIpOworICB9LAorCisgIG11bDR4NCA6IGZ1bmN0aW9uIChhLGIpIHsKKyAgICByZXR1cm4gdGhp
cy5tdWw0eDRJblBsYWNlKGEsYix0aGlzLm5ld0lkZW50aXR5KCkpOworICB9LAorCisgIG11bDR4
NEluUGxhY2UgOiBmdW5jdGlvbiAoYSwgYiwgYykgeworICAgICAgICBjWzBdID0gICBiWzBdICog
YVswXSArCisgICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFbNF0gKworICAgICAgICAgICAgICAg
ICBiWzArMl0gKiBhWzhdICsKKyAgICAgICAgICAgICAgICAgYlswKzNdICogYVsxMl07CisgICAg
ICAgIGNbMCsxXSA9IGJbMF0gKiBhWzFdICsKKyAgICAgICAgICAgICAgICAgYlswKzFdICogYVs1
XSArCisgICAgICAgICAgICAgICAgIGJbMCsyXSAqIGFbOV0gKworICAgICAgICAgICAgICAgICBi
WzArM10gKiBhWzEzXTsKKyAgICAgICAgY1swKzJdID0gYlswXSAqIGFbMl0gKworICAgICAgICAg
ICAgICAgICBiWzArMV0gKiBhWzZdICsKKyAgICAgICAgICAgICAgICAgYlswKzJdICogYVsxMF0g
KworICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzE0XTsKKyAgICAgICAgY1swKzNdID0gYlsw
XSAqIGFbM10gKworICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzddICsKKyAgICAgICAgICAg
ICAgICAgYlswKzJdICogYVsxMV0gKworICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzE1XTsK
KyAgICAgICAgY1s0XSA9ICAgYls0XSAqIGFbMF0gKworICAgICAgICAgICAgICAgICBiWzQrMV0g
KiBhWzRdICsKKyAgICAgICAgICAgICAgICAgYls0KzJdICogYVs4XSArCisgICAgICAgICAgICAg
ICAgIGJbNCszXSAqIGFbMTJdOworICAgICAgICBjWzQrMV0gPSBiWzRdICogYVsxXSArCisgICAg
ICAgICAgICAgICAgIGJbNCsxXSAqIGFbNV0gKworICAgICAgICAgICAgICAgICBiWzQrMl0gKiBh
WzldICsKKyAgICAgICAgICAgICAgICAgYls0KzNdICogYVsxM107CisgICAgICAgIGNbNCsyXSA9
IGJbNF0gKiBhWzJdICsKKyAgICAgICAgICAgICAgICAgYls0KzFdICogYVs2XSArCisgICAgICAg
ICAgICAgICAgIGJbNCsyXSAqIGFbMTBdICsKKyAgICAgICAgICAgICAgICAgYls0KzNdICogYVsx
NF07CisgICAgICAgIGNbNCszXSA9IGJbNF0gKiBhWzNdICsKKyAgICAgICAgICAgICAgICAgYls0
KzFdICogYVs3XSArCisgICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFbMTFdICsKKyAgICAgICAg
ICAgICAgICAgYls0KzNdICogYVsxNV07CisgICAgICAgIGNbOF0gPSAgIGJbOF0gKiBhWzBdICsK
KyAgICAgICAgICAgICAgICAgYls4KzFdICogYVs0XSArCisgICAgICAgICAgICAgICAgIGJbOCsy
XSAqIGFbOF0gKworICAgICAgICAgICAgICAgICBiWzgrM10gKiBhWzEyXTsKKyAgICAgICAgY1s4
KzFdID0gYls4XSAqIGFbMV0gKworICAgICAgICAgICAgICAgICBiWzgrMV0gKiBhWzVdICsKKyAg
ICAgICAgICAgICAgICAgYls4KzJdICogYVs5XSArCisgICAgICAgICAgICAgICAgIGJbOCszXSAq
IGFbMTNdOworICAgICAgICBjWzgrMl0gPSBiWzhdICogYVsyXSArCisgICAgICAgICAgICAgICAg
IGJbOCsxXSAqIGFbNl0gKworICAgICAgICAgICAgICAgICBiWzgrMl0gKiBhWzEwXSArCisgICAg
ICAgICAgICAgICAgIGJbOCszXSAqIGFbMTRdOworICAgICAgICBjWzgrM10gPSBiWzhdICogYVsz
XSArCisgICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbN10gKworICAgICAgICAgICAgICAgICBi
WzgrMl0gKiBhWzExXSArCisgICAgICAgICAgICAgICAgIGJbOCszXSAqIGFbMTVdOworICAgICAg
ICBjWzEyXSA9ICAgYlsxMl0gKiBhWzBdICsKKyAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFb
NF0gKworICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVs4XSArCisgICAgICAgICAgICAgICAg
IGJbMTIrM10gKiBhWzEyXTsKKyAgICAgICAgY1sxMisxXSA9IGJbMTJdICogYVsxXSArCisgICAg
ICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzVdICsKKyAgICAgICAgICAgICAgICAgYlsxMisyXSAq
IGFbOV0gKworICAgICAgICAgICAgICAgICBiWzEyKzNdICogYVsxM107CisgICAgICAgIGNbMTIr
Ml0gPSBiWzEyXSAqIGFbMl0gKworICAgICAgICAgICAgICAgICBiWzEyKzFdICogYVs2XSArCisg
ICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBhWzEwXSArCisgICAgICAgICAgICAgICAgIGJbMTIr
M10gKiBhWzE0XTsKKyAgICAgICAgY1sxMiszXSA9IGJbMTJdICogYVszXSArCisgICAgICAgICAg
ICAgICAgIGJbMTIrMV0gKiBhWzddICsKKyAgICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbMTFd
ICsKKyAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTVdOworICAgIHJldHVybiBjOworICB9
LAorCisgIG11bHY0IDogZnVuY3Rpb24gKGEsIHYpIHsKKyAgICBjID0gbmV3IEFycmF5KDQpOwor
ICAgIGZvciAodmFyIGk9MDsgaTw0OyArK2kpIHsKKyAgICAgIHZhciB4ID0gMDsKKyAgICAgIGZv
ciAodmFyIGs9MDsgazw0OyArK2spCisgICAgICAgIHggKz0gdltrXSAqIGFbayo0K2ldOworICAg
ICAgY1tpXSA9IHg7CisgICAgfQorICAgIHJldHVybiBjOworICB9LAorCisgIHJvdGF0ZSA6IGZ1
bmN0aW9uIChhbmdsZSwgYXhpcykgeworICAgIGF4aXMgPSBWZWMzLm5vcm1hbGl6ZShheGlzKTsK
KyAgICB2YXIgeD1heGlzWzBdLCB5PWF4aXNbMV0sIHo9YXhpc1syXTsKKyAgICB2YXIgYyA9IE1h
dGguY29zKGFuZ2xlKTsKKyAgICB2YXIgYzEgPSAxLWM7CisgICAgdmFyIHMgPSBNYXRoLnNpbihh
bmdsZSk7CisgICAgcmV0dXJuIFsKKyAgICAgIHgqeCpjMStjLCB5KngqYzEreipzLCB6KngqYzEt
eSpzLCAwLAorICAgICAgeCp5KmMxLXoqcywgeSp5KmMxK2MsIHkqeipjMSt4KnMsIDAsCisgICAg
ICB4KnoqYzEreSpzLCB5KnoqYzEteCpzLCB6KnoqYzErYywgMCwKKyAgICAgIDAsMCwwLDEKKyAg
ICBdOworICB9LAorICByb3RhdGVJblBsYWNlIDogZnVuY3Rpb24oYW5nbGUsIGF4aXMsIG0pIHsK
KyAgICBheGlzID0gVmVjMy5ub3JtYWxpemUoYXhpcyk7CisgICAgdmFyIHg9YXhpc1swXSwgeT1h
eGlzWzFdLCB6PWF4aXNbMl07CisgICAgdmFyIGMgPSBNYXRoLmNvcyhhbmdsZSk7CisgICAgdmFy
IGMxID0gMS1jOworICAgIHZhciBzID0gTWF0aC5zaW4oYW5nbGUpOworICAgIHZhciB0bXBNYXRy
aXggPSB0aGlzLnRtcE1hdHJpeDsKKyAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1wTWF0cml4
MjsKKyAgICB0bXBNYXRyaXhbMF0gPSB4KngqYzErYzsgdG1wTWF0cml4WzFdID0geSp4KmMxK3oq
czsgdG1wTWF0cml4WzJdID0geip4KmMxLXkqczsgdG1wTWF0cml4WzNdID0gMDsKKyAgICB0bXBN
YXRyaXhbNF0gPSB4KnkqYzEteipzOyB0bXBNYXRyaXhbNV0gPSB5KnkqYzErYzsgdG1wTWF0cml4
WzZdID0geSp6KmMxK3gqczsgdG1wTWF0cml4WzddID0gMDsKKyAgICB0bXBNYXRyaXhbOF0gPSB4
KnoqYzEreSpzOyB0bXBNYXRyaXhbOV0gPSB5KnoqYzEteCpzOyB0bXBNYXRyaXhbMTBdID0geip6
KmMxK2M7IHRtcE1hdHJpeFsxMV0gPSAwOworICAgIHRtcE1hdHJpeFsxMl0gPSAwOyB0bXBNYXRy
aXhbMTNdID0gMDsgdG1wTWF0cml4WzE0XSA9IDA7IHRtcE1hdHJpeFsxNV0gPSAxOworICAgIHRo
aXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKKyAgICByZXR1cm4gdGhpcy5tdWw0eDRJblBs
YWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7CisgIH0sCisKKyAgc2NhbGUgOiBmdW5jdGlv
bih2KSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHZbMF0sIDAsIDAsIDAsCisgICAgICAwLCB2WzFd
LCAwLCAwLAorICAgICAgMCwgMCwgdlsyXSwgMCwKKyAgICAgIDAsIDAsIDAsIDEKKyAgICBdOwor
ICB9LAorICBzY2FsZTMgOiBmdW5jdGlvbih4LHkseikgeworICAgIHJldHVybiBbCisgICAgICB4
LCAwLCAwLCAwLAorICAgICAgMCwgeSwgMCwgMCwKKyAgICAgIDAsIDAsIHosIDAsCisgICAgICAw
LCAwLCAwLCAxCisgICAgXTsKKyAgfSwKKyAgc2NhbGUxIDogZnVuY3Rpb24ocykgeworICAgIHJl
dHVybiBbCisgICAgICBzLCAwLCAwLCAwLAorICAgICAgMCwgcywgMCwgMCwKKyAgICAgIDAsIDAs
IHMsIDAsCisgICAgICAwLCAwLCAwLCAxCisgICAgXTsKKyAgfSwKKyAgc2NhbGUzSW5QbGFjZSA6
IGZ1bmN0aW9uKHgsIHksIHosIG0pIHsKKyAgICB2YXIgdG1wTWF0cml4ID0gdGhpcy50bXBNYXRy
aXg7CisgICAgdmFyIHRtcE1hdHJpeDIgPSB0aGlzLnRtcE1hdHJpeDI7CisgICAgdG1wTWF0cml4
WzBdID0geDsgdG1wTWF0cml4WzFdID0gMDsgdG1wTWF0cml4WzJdID0gMDsgdG1wTWF0cml4WzNd
ID0gMDsKKyAgICB0bXBNYXRyaXhbNF0gPSAwOyB0bXBNYXRyaXhbNV0gPSB5OyB0bXBNYXRyaXhb
Nl0gPSAwOyB0bXBNYXRyaXhbN10gPSAwOworICAgIHRtcE1hdHJpeFs4XSA9IDA7IHRtcE1hdHJp
eFs5XSA9IDA7IHRtcE1hdHJpeFsxMF0gPSB6OyB0bXBNYXRyaXhbMTFdID0gMDsKKyAgICB0bXBN
YXRyaXhbMTJdID0gMDsgdG1wTWF0cml4WzEzXSA9IDA7IHRtcE1hdHJpeFsxNF0gPSAwOyB0bXBN
YXRyaXhbMTVdID0gMTsKKyAgICB0aGlzLmNvcHlNYXRyaXgobSwgdG1wTWF0cml4Mik7CisgICAg
cmV0dXJuIHRoaXMubXVsNHg0SW5QbGFjZSh0bXBNYXRyaXgyLCB0bXBNYXRyaXgsIG0pOworICB9
LAorICBzY2FsZTFJblBsYWNlIDogZnVuY3Rpb24ocywgbSkgeyByZXR1cm4gdGhpcy5zY2FsZTNJ
blBsYWNlKHMsIHMsIHMsIG0pOyB9LAorICBzY2FsZUluUGxhY2UgOiBmdW5jdGlvbihzLCBtKSB7
IHJldHVybiB0aGlzLnNjYWxlM0luUGxhY2Uoc1swXSxzWzFdLHNbMl0sbSk7IH0sCisKKyAgdHJh
bnNsYXRlMyA6IGZ1bmN0aW9uKHgseSx6KSB7CisgICAgcmV0dXJuIFsKKyAgICAgIDEsIDAsIDAs
IDAsCisgICAgICAwLCAxLCAwLCAwLAorICAgICAgMCwgMCwgMSwgMCwKKyAgICAgIHgsIHksIHos
IDEKKyAgICBdOworICB9LAorCisgIHRyYW5zbGF0ZSA6IGZ1bmN0aW9uKHYpIHsKKyAgICByZXR1
cm4gdGhpcy50cmFuc2xhdGUzKHZbMF0sIHZbMV0sIHZbMl0pOworICB9LAorICB0bXBNYXRyaXgg
OiBbMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMF0sCisgIHRtcE1hdHJpeDIgOiBb
MCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMF0sCisgIHRyYW5zbGF0ZTNJblBsYWNl
IDogZnVuY3Rpb24oeCx5LHosbSkgeworICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJp
eDsKKyAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1wTWF0cml4MjsKKyAgICB0bXBNYXRyaXhb
MF0gPSAxOyB0bXBNYXRyaXhbMV0gPSAwOyB0bXBNYXRyaXhbMl0gPSAwOyB0bXBNYXRyaXhbM10g
PSAwOworICAgIHRtcE1hdHJpeFs0XSA9IDA7IHRtcE1hdHJpeFs1XSA9IDE7IHRtcE1hdHJpeFs2
XSA9IDA7IHRtcE1hdHJpeFs3XSA9IDA7CisgICAgdG1wTWF0cml4WzhdID0gMDsgdG1wTWF0cml4
WzldID0gMDsgdG1wTWF0cml4WzEwXSA9IDE7IHRtcE1hdHJpeFsxMV0gPSAwOworICAgIHRtcE1h
dHJpeFsxMl0gPSB4OyB0bXBNYXRyaXhbMTNdID0geTsgdG1wTWF0cml4WzE0XSA9IHo7IHRtcE1h
dHJpeFsxNV0gPSAxOworICAgIHRoaXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKKyAgICBy
ZXR1cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7CisgIH0s
CisgIHRyYW5zbGF0ZUluUGxhY2UgOiBmdW5jdGlvbih2LG0peyByZXR1cm4gdGhpcy50cmFuc2xh
dGUzSW5QbGFjZSh2WzBdLCB2WzFdLCB2WzJdLCBtKTsgfSwKKworICBsb29rQXQgOiBmdW5jdGlv
biAoZXllLCBjZW50ZXIsIHVwKSB7CisgICAgdmFyIHogPSBWZWMzLmRpcmVjdGlvbihleWUsIGNl
bnRlcik7CisgICAgdmFyIHggPSBWZWMzLm5vcm1hbGl6ZUluUGxhY2UoVmVjMy5jcm9zcyh1cCwg
eikpOworICAgIHZhciB5ID0gVmVjMy5ub3JtYWxpemVJblBsYWNlKFZlYzMuY3Jvc3MoeiwgeCkp
OworCisgICAgdmFyIG0gPSBbCisgICAgICB4WzBdLCB5WzBdLCB6WzBdLCAwLAorICAgICAgeFsx
XSwgeVsxXSwgelsxXSwgMCwKKyAgICAgIHhbMl0sIHlbMl0sIHpbMl0sIDAsCisgICAgICAwLCAw
LCAwLCAxCisgICAgXTsKKworICAgIHZhciB0ID0gWworICAgICAgMSwgMCwgMCwgMCwKKyAgICAg
IDAsIDEsIDAsIDAsCisgICAgICAwLCAwLCAxLCAwLAorICAgICAgLWV5ZVswXSwgLWV5ZVsxXSwg
LWV5ZVsyXSwgMQorICAgIF07CisKKyAgICByZXR1cm4gdGhpcy5tdWw0eDQobSx0KTsKKyAgfSwK
KworICB0cmFuc3Bvc2U0eDQgOiBmdW5jdGlvbihtKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIG1b
MF0sIG1bNF0sIG1bOF0sIG1bMTJdLAorICAgICAgbVsxXSwgbVs1XSwgbVs5XSwgbVsxM10sCisg
ICAgICBtWzJdLCBtWzZdLCBtWzEwXSwgbVsxNF0sCisgICAgICBtWzNdLCBtWzddLCBtWzExXSwg
bVsxNV0KKyAgICBdOworICB9LAorCisgIHRyYW5zcG9zZTR4NEluUGxhY2UgOiBmdW5jdGlvbiht
KSB7CisgICAgdmFyIHRtcCA9IDAuMDsKKyAgICB0bXAgPSBtWzFdOyBtWzFdID0gbVs0XTsgbVs0
XSA9IHRtcDsKKyAgICB0bXAgPSBtWzJdOyBtWzJdID0gbVs4XTsgbVs4XSA9IHRtcDsKKyAgICB0
bXAgPSBtWzNdOyBtWzNdID0gbVsxMl07IG1bMTJdID0gdG1wOworICAgIHRtcCA9IG1bNl07IG1b
Nl0gPSBtWzldOyBtWzldID0gdG1wOworICAgIHRtcCA9IG1bN107IG1bN10gPSBtWzEzXTsgbVsx
M10gPSB0bXA7CisgICAgdG1wID0gbVsxMV07IG1bMTFdID0gbVsxNF07IG1bMTRdID0gdG1wOwor
ICAgIHJldHVybiBtOworICB9LAorCisgIHRyYW5zcG9zZTN4MyA6IGZ1bmN0aW9uKG0pIHsKKyAg
ICByZXR1cm4gWworICAgICAgbVswXSwgbVszXSwgbVs2XSwKKyAgICAgIG1bMV0sIG1bNF0sIG1b
N10sCisgICAgICBtWzJdLCBtWzVdLCBtWzhdCisgICAgXTsKKyAgfSwKKworICB0cmFuc3Bvc2Uz
eDNJblBsYWNlIDogZnVuY3Rpb24obSkgeworICAgIHZhciB0bXAgPSAwLjA7CisgICAgdG1wID0g
bVsxXTsgbVsxXSA9IG1bM107IG1bM10gPSB0bXA7CisgICAgdG1wID0gbVsyXTsgbVsyXSA9IG1b
Nl07IG1bNl0gPSB0bXA7CisgICAgdG1wID0gbVs1XTsgbVs1XSA9IG1bN107IG1bN10gPSB0bXA7
CisgICAgcmV0dXJuIG07CisgIH0sCit9CisKK1ZlYzMgPSB7CisgIG1ha2UgOiBmdW5jdGlvbigp
IHsgcmV0dXJuIFswLDAsMF07IH0sCisgIGNvcHkgOiBmdW5jdGlvbih2KSB7IHJldHVybiBbdlsw
XSx2WzFdLHZbMl1dOyB9LAorCisgIGFkZCA6IGZ1bmN0aW9uICh1LHYpIHsKKyAgICByZXR1cm4g
W3VbMF0rdlswXSwgdVsxXSt2WzFdLCB1WzJdK3ZbMl1dOworICB9LAorCisgIHN1YiA6IGZ1bmN0
aW9uICh1LHYpIHsKKyAgICByZXR1cm4gW3VbMF0tdlswXSwgdVsxXS12WzFdLCB1WzJdLXZbMl1d
OworICB9LAorCisgIG5lZ2F0ZSA6IGZ1bmN0aW9uICh1KSB7CisgICAgcmV0dXJuIFstdVswXSwg
LXVbMV0sIC11WzJdXTsKKyAgfSwKKworICBkaXJlY3Rpb24gOiBmdW5jdGlvbiAodSx2KSB7Cisg
ICAgcmV0dXJuIHRoaXMubm9ybWFsaXplSW5QbGFjZSh0aGlzLnN1Yih1LHYpKTsKKyAgfSwKKwor
ICBub3JtYWxpemVJblBsYWNlIDogZnVuY3Rpb24odikgeworICAgIHZhciBpbWFnID0gMS4wIC8g
TWF0aC5zcXJ0KHZbMF0qdlswXSArIHZbMV0qdlsxXSArIHZbMl0qdlsyXSk7CisgICAgdlswXSAq
PSBpbWFnOyB2WzFdICo9IGltYWc7IHZbMl0gKj0gaW1hZzsKKyAgICByZXR1cm4gdjsKKyAgfSwK
KworICBub3JtYWxpemUgOiBmdW5jdGlvbih2KSB7CisgICAgcmV0dXJuIHRoaXMubm9ybWFsaXpl
SW5QbGFjZSh0aGlzLmNvcHkodikpOworICB9LAorCisgIHNjYWxlIDogZnVuY3Rpb24oZiwgdikg
eworICAgIHJldHVybiBbZip2WzBdLCBmKnZbMV0sIGYqdlsyXV07CisgIH0sCisKKyAgZG90IDog
ZnVuY3Rpb24odSx2KSB7CisgICAgcmV0dXJuIHVbMF0qdlswXSArIHVbMV0qdlsxXSArIHVbMl0q
dlsyXTsKKyAgfSwKKworICBpbm5lciA6IGZ1bmN0aW9uKHUsdikgeworICAgIHJldHVybiBbdVsw
XSp2WzBdLCB1WzFdKnZbMV0sIHVbMl0qdlsyXV07CisgIH0sCisKKyAgY3Jvc3MgOiBmdW5jdGlv
bih1LHYpIHsKKyAgICByZXR1cm4gWworICAgICAgdVsxXSp2WzJdIC0gdVsyXSp2WzFdLAorICAg
ICAgdVsyXSp2WzBdIC0gdVswXSp2WzJdLAorICAgICAgdVswXSp2WzFdIC0gdVsxXSp2WzBdCisg
ICAgXTsKKyAgfQorfQorCitTaGFkZXIgPSBmdW5jdGlvbihnbCl7CisgIHRoaXMuZ2wgPSBnbDsK
KyAgdGhpcy5zaGFkZXJzID0gW107CisgIHRoaXMudW5pZm9ybUxvY2F0aW9ucyA9IHt9OworICB0
aGlzLmF0dHJpYkxvY2F0aW9ucyA9IHt9OworICBmb3IgKHZhciBpPTE7IGk8YXJndW1lbnRzLmxl
bmd0aDsgaSsrKSB7CisgICAgdGhpcy5zaGFkZXJzLnB1c2goYXJndW1lbnRzW2ldKTsKKyAgfQor
fQorU2hhZGVyLnByb3RvdHlwZSA9IHsKKyAgaWQgOiBudWxsLAorICBnbCA6IG51bGwsCisgIGNv
bXBpbGVkIDogZmFsc2UsCisgIHNoYWRlciA6IG51bGwsCisgIHNoYWRlcnMgOiBbXSwKKworICBk
ZXN0cm95IDogZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuc2hhZGVyICE9IG51bGwpIGRlbGV0
ZVNoYWRlcih0aGlzLmdsLCB0aGlzLnNoYWRlcik7CisgIH0sCisKKyAgY29tcGlsZSA6IGZ1bmN0
aW9uKCkgeworICAgIHRoaXMuc2hhZGVyID0gbG9hZFNoYWRlckFycmF5KHRoaXMuZ2wsIHRoaXMu
c2hhZGVycyk7CisgIH0sCisKKyAgdXNlIDogZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuc2hh
ZGVyID09IG51bGwpCisgICAgICB0aGlzLmNvbXBpbGUoKTsKKyAgICB0aGlzLmdsLnVzZVByb2dy
YW0odGhpcy5zaGFkZXIucHJvZ3JhbSk7CisgIH0sCisKKyAgdW5pZm9ybTFmdiA6IGZ1bmN0aW9u
KG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0
aGlzLmdsLnVuaWZvcm0xZnYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTJmdiA6IGZ1
bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsK
KyAgICB0aGlzLmdsLnVuaWZvcm0yZnYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5pZm9ybTNm
diA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShu
YW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0zZnYobG9jLCB2YWx1ZSk7CisgIH0sCisKKyAgdW5p
Zm9ybTRmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5p
Zm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm00ZnYobG9jLCB2YWx1ZSk7CisgIH0sCisK
KyAgdW5pZm9ybTFmIDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhp
cy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTFmKGxvYywgdmFsdWUpOworICB9
LAorCisgIHVuaWZvcm0yZiA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyKSB7CisgICAgdmFyIGxvYyA9
IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0yZihsb2MsIHYxLHYyKTsK
KyAgfSwKKworICB1bmlmb3JtM2YgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2MykgeworICAgIHZh
ciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtM2YobG9jLCB2
MSx2Mix2Myk7CisgIH0sCisKKyAgdW5pZm9ybTRmIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMs
djQpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5p
Zm9ybTRmKGxvYywgdjEsIHYyLCB2MywgdjQpOworICB9LAorCisgIHVuaWZvcm0xaXYgOiBmdW5j
dGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Cisg
ICAgdGhpcy5nbC51bmlmb3JtMWl2KGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZvcm0yaXYg
OiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFt
ZSk7CisgICAgdGhpcy5nbC51bmlmb3JtMml2KGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZv
cm0zaXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZv
cm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtM2l2KGxvYywgdmFsdWUpOworICB9LAorCisg
IHVuaWZvcm00aXYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlz
LnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtNGl2KGxvYywgdmFsdWUpOworICB9
LAorCisgIHVuaWZvcm0xaSA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9
IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0xaShsb2MsIHZhbHVlKTsK
KyAgfSwKKworICB1bmlmb3JtMmkgOiBmdW5jdGlvbihuYW1lLCB2MSx2MikgeworICAgIHZhciBs
b2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtMmkobG9jLCB2MSx2
Mik7CisgIH0sCisKKyAgdW5pZm9ybTNpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMpIHsKKyAg
ICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTNpKGxv
YywgdjEsdjIsdjMpOworICB9LAorCisgIHVuaWZvcm00aSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYy
LHYzLHY0KSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmds
LnVuaWZvcm00aShsb2MsIHYxLCB2MiwgdjMsIHY0KTsKKyAgfSwKKworICB1bmlmb3JtTWF0cml4
NGZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3Jt
KG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDRmdihsb2MsIGZhbHNlLCB2YWx1ZSk7
CisgIH0sCisKKyAgdW5pZm9ybU1hdHJpeDNmdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Cisg
ICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm1NYXRy
aXgzZnYobG9jLCBmYWxzZSwgdmFsdWUpOworICB9LAorCisgIHVuaWZvcm1NYXRyaXgyZnYgOiBm
dW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7
CisgICAgdGhpcy5nbC51bmlmb3JtTWF0cml4MmZ2KGxvYywgZmFsc2UsIHZhbHVlKTsKKyAgfSwK
KworICBhdHRyaWIgOiBmdW5jdGlvbihuYW1lKSB7CisgICAgaWYgKHRoaXMuYXR0cmliTG9jYXRp
b25zW25hbWVdID09IG51bGwpIHsKKyAgICAgIHZhciBsb2MgPSB0aGlzLmdsLmdldEF0dHJpYkxv
Y2F0aW9uKHRoaXMuc2hhZGVyLnByb2dyYW0sIG5hbWUpOworICAgICAgdGhpcy5hdHRyaWJMb2Nh
dGlvbnNbbmFtZV0gPSBsb2M7CisgICAgfQorICAgIHJldHVybiB0aGlzLmF0dHJpYkxvY2F0aW9u
c1tuYW1lXTsKKyAgfSwKKworICB1bmlmb3JtIDogZnVuY3Rpb24obmFtZSkgeworICAgIGlmICh0
aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV0gPT0gbnVsbCkgeworICAgICAgdmFyIGxvYyA9IHRo
aXMuZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMuc2hhZGVyLnByb2dyYW0sIG5hbWUpOworICAg
ICAgdGhpcy51bmlmb3JtTG9jYXRpb25zW25hbWVdID0gbG9jOworICAgIH0KKyAgICByZXR1cm4g
dGhpcy51bmlmb3JtTG9jYXRpb25zW25hbWVdOworICB9Cit9CitGaWx0ZXIgPSBmdW5jdGlvbihn
bCwgc2hhZGVyKSB7CisgIFNoYWRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworfQorRmlsdGVy
LnByb3RvdHlwZSA9IG5ldyBTaGFkZXIoKTsKK0ZpbHRlci5wcm90b3R5cGUuYXBwbHkgPSBmdW5j
dGlvbihpbml0KSB7CisgIHRoaXMudXNlKCk7CisgIHZhciB2YSA9IHRoaXMuYXR0cmliKCJWZXJ0
ZXgiKTsKKyAgdmFyIHRhID0gdGhpcy5hdHRyaWIoIlRleCIpOworICB2YXIgdmJvID0gUXVhZC5n
ZXRDYWNoZWRWQk8odGhpcy5nbCk7CisgIGlmIChpbml0KSBpbml0KHRoaXMpOworICB2Ym8uZHJh
dyh2YSwgbnVsbCwgdGEpOworfQorCisKK1ZCTyA9IGZ1bmN0aW9uKGdsKSB7CisgIHRoaXMuZ2wg
PSBnbDsKKyAgdGhpcy5kYXRhID0gW107CisgIHRoaXMuZWxlbWVudHNWQk8gPSBudWxsOworICBm
b3IgKHZhciBpPTE7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgaWYgKGFyZ3VtZW50
c1tpXS5lbGVtZW50cykKKyAgICAgIHRoaXMuZWxlbWVudHMgPSBhcmd1bWVudHNbaV07CisgICAg
ZWxzZQorICAgICAgdGhpcy5kYXRhLnB1c2goYXJndW1lbnRzW2ldKTsKKyAgfQorfQorCitWQk8u
cHJvdG90eXBlID0geworICBpbml0aWFsaXplZCA6IGZhbHNlLAorICBsZW5ndGggOiAwLAorICB2
Ym9zIDogbnVsbCwKKyAgdHlwZSA6ICdUUklBTkdMRVMnLAorICBlbGVtZW50c1ZCTyA6IG51bGws
CisgIGVsZW1lbnRzIDogbnVsbCwKKworICBzZXREYXRhIDogZnVuY3Rpb24oKSB7CisgICAgdGhp
cy5kZXN0cm95KCk7CisgICAgdGhpcy5kYXRhID0gW107CisgICAgZm9yICh2YXIgaT0wOyBpPGFy
Z3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKGFyZ3VtZW50c1tpXS5lbGVtZW50cykK
KyAgICAgICAgdGhpcy5lbGVtZW50cyA9IGFyZ3VtZW50c1tpXTsKKyAgICAgIGVsc2UKKyAgICAg
ICAgdGhpcy5kYXRhLnB1c2goYXJndW1lbnRzW2ldKTsKKyAgICB9CisgIH0sCisKKyAgZGVzdHJv
eSA6IGZ1bmN0aW9uKCkgeworICAgIGlmICh0aGlzLnZib3MgIT0gbnVsbCkKKyAgICAgIGZvciAo
dmFyIGk9MDsgaTx0aGlzLnZib3MubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMuZ2wuZGVsZXRl
QnVmZmVyKHRoaXMudmJvc1tpXSk7CisgICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkK
KyAgICAgIHRoaXMuZ2wuZGVsZXRlQnVmZmVyKHRoaXMuZWxlbWVudHNWQk8pOworICAgIHRoaXMu
bGVuZ3RoID0gdGhpcy5lbGVtZW50c0xlbmd0aCA9IDA7CisgICAgdGhpcy52Ym9zID0gdGhpcy5l
bGVtZW50c1ZCTyA9IG51bGw7CisgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlOworICB9LAor
CisgIGluaXQgOiBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmRlc3Ryb3koKTsKKyAgICB2YXIgZ2wg
PSB0aGlzLmdsOworCisgICAgZ2wuZ2V0RXJyb3IoKTsKKyAgICB2YXIgdmJvcyA9IFtdOworICAg
IHZhciBsZW5ndGggPSAwOworICAgIGZvciAodmFyIGk9MDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBp
KyspCisgICAgICB2Ym9zLnB1c2goZ2wuY3JlYXRlQnVmZmVyKCkpOworICAgIGlmICh0aGlzLmVs
ZW1lbnRzICE9IG51bGwpCisgICAgICB0aGlzLmVsZW1lbnRzVkJPID0gZ2wuY3JlYXRlQnVmZmVy
KCk7CisgICAgdHJ5IHsKKyAgICAgIHRocm93RXJyb3IoZ2wsICJnZW5CdWZmZXJzIik7CisgICAg
ICBmb3IgKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFy
IGQgPSB0aGlzLmRhdGFbaV07CisgICAgICAgIHZhciBkbGVuID0gTWF0aC5mbG9vcihkLmRhdGEu
bGVuZ3RoIC8gZC5zaXplKTsKKyAgICAgICAgaWYgKGkgPT0gMCB8fCBkbGVuIDwgbGVuZ3RoKQor
ICAgICAgICAgICAgbGVuZ3RoID0gZGxlbjsKKyAgICAgICAgaWYgKCFkLmZsb2F0QXJyYXkpCisg
ICAgICAgICAgZC5mbG9hdEFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShkLmRhdGEpOworICAgICAg
ICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvc1tpXSk7CisgICAgICAgIHRocm93
RXJyb3IoZ2wsICJiaW5kQnVmZmVyIik7CisgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBkLmZsb2F0QXJyYXksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICAgICAgdGhyb3dFcnJv
cihnbCwgImJ1ZmZlckRhdGEiKTsKKyAgICAgIH0KKyAgICAgIGlmICh0aGlzLmVsZW1lbnRzVkJP
ICE9IG51bGwpIHsKKyAgICAgICAgdmFyIGQgPSB0aGlzLmVsZW1lbnRzOworICAgICAgICB0aGlz
LmVsZW1lbnRzTGVuZ3RoID0gZC5kYXRhLmxlbmd0aDsKKyAgICAgICAgdGhpcy5lbGVtZW50c1R5
cGUgPSBkLnR5cGUgPT0gZ2wuVU5TSUdORURfQllURSA/IGQudHlwZSA6IGdsLlVOU0lHTkVEX1NI
T1JUOworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCB0aGlz
LmVsZW1lbnRzVkJPKTsKKyAgICAgICAgdGhyb3dFcnJvcihnbCwgImJpbmRCdWZmZXIgRUxFTUVO
VF9BUlJBWV9CVUZGRVIiKTsKKyAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNUeXBlID09IGdsLlVO
U0lHTkVEX1NIT1JUICYmICFkLnVzaG9ydEFycmF5KSB7CisgICAgICAgICAgZC51c2hvcnRBcnJh
eSA9IG5ldyBVaW50MTZBcnJheShkLmRhdGEpOworICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
RUxFTUVOVF9BUlJBWV9CVUZGRVIsIGQudXNob3J0QXJyYXksIGdsLlNUQVRJQ19EUkFXKTsKKyAg
ICAgICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRzVHlwZSA9PSBnbC5VTlNJR05FRF9CWVRFICYm
ICFkLnVieXRlQXJyYXkpIHsKKyAgICAgICAgICBkLnVieXRlQXJyYXkgPSBuZXcgVWludDhBcnJh
eShkLmRhdGEpOworICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZG
RVIsIGQudWJ5dGVBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICB9CisgICAgICAgIHRo
cm93RXJyb3IoZ2wsICJidWZmZXJEYXRhIEVMRU1FTlRfQVJSQVlfQlVGRkVSIik7CisgICAgICB9
CisgICAgfSBjYXRjaChlKSB7CisgICAgICBmb3IgKHZhciBpPTA7IGk8dmJvcy5sZW5ndGg7IGkr
KykKKyAgICAgICAgZ2wuZGVsZXRlQnVmZmVyKHZib3NbaV0pOworICAgICAgdGhyb3coZSk7Cisg
ICAgfQorCisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOworICAgIGds
LmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG51bGwpOworCisgICAgdGhpcy5s
ZW5ndGggPSBsZW5ndGg7CisgICAgdGhpcy52Ym9zID0gdmJvczsKKworICAgIHRoaXMuaW5pdGlh
bGl6ZWQgPSB0cnVlOworICB9LAorCisgIHVzZSA6IGZ1bmN0aW9uKCkgeworICAgIGlmICghdGhp
cy5pbml0aWFsaXplZCkgdGhpcy5pbml0KCk7CisgICAgdmFyIGdsID0gdGhpcy5nbDsKKyAgICBm
b3IgKHZhciBpPTA7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICBpZiAoYXJndW1l
bnRzW2ldID09IG51bGwgfHwgYXJndW1lbnRzW2ldID09IC0xKSBjb250aW51ZTsKKyAgICAgIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB0aGlzLnZib3NbaV0pOworICAgICAgZ2wudmVy
dGV4QXR0cmliUG9pbnRlcihhcmd1bWVudHNbaV0sIHRoaXMuZGF0YVtpXS5zaXplLCBnbC5GTE9B
VCwgZmFsc2UsIDAsIDApOworICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYXJndW1l
bnRzW2ldKTsKKyAgICB9CisgICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkgeworICAg
ICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5lbGVtZW50c1ZC
Tyk7CisgICAgfQorICB9LAorCisgIGRyYXcgOiBmdW5jdGlvbigpIHsKKyAgICB2YXIgYXJncyA9
IFtdOworICAgIHRoaXMudXNlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgdmFyIGdsID0g
dGhpcy5nbDsKKyAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAhPSBudWxsKSB7CisgICAgICBnbC5k
cmF3RWxlbWVudHMoZ2xbdGhpcy50eXBlXSwgdGhpcy5lbGVtZW50c0xlbmd0aCwgdGhpcy5lbGVt
ZW50c1R5cGUsIDApOworICAgIH0gZWxzZSB7CisgICAgICBnbC5kcmF3QXJyYXlzKGdsW3RoaXMu
dHlwZV0sIDAsIHRoaXMubGVuZ3RoKTsKKyAgICB9CisgIH0KK30KKworRkJPID0gZnVuY3Rpb24o
Z2wsIHdpZHRoLCBoZWlnaHQsIHVzZV9kZXB0aCkgeworICB0aGlzLmdsID0gZ2w7CisgIHRoaXMu
d2lkdGggPSB3aWR0aDsKKyAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7CisgIGlmICh1c2VfZGVwdGgg
IT0gbnVsbCkKKyAgICB0aGlzLnVzZURlcHRoID0gdXNlX2RlcHRoOworfQorRkJPLnByb3RvdHlw
ZSA9IHsKKyAgaW5pdGlhbGl6ZWQgOiBmYWxzZSwKKyAgdXNlRGVwdGggOiB0cnVlLAorICBmYm8g
OiBudWxsLAorICByYm8gOiBudWxsLAorICB0ZXh0dXJlIDogbnVsbCwKKworICBkZXN0cm95IDog
ZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuZmJvKSB0aGlzLmdsLmRlbGV0ZUZyYW1lYnVmZmVy
KHRoaXMuZmJvKTsKKyAgICBpZiAodGhpcy5yYm8pIHRoaXMuZ2wuZGVsZXRlUmVuZGVyYnVmZmVy
KHRoaXMucmJvKTsKKyAgICBpZiAodGhpcy50ZXh0dXJlKSB0aGlzLmdsLmRlbGV0ZVRleHR1cmUo
dGhpcy50ZXh0dXJlKTsKKyAgfSwKKworICBpbml0IDogZnVuY3Rpb24oKSB7CisgICAgdmFyIGds
ID0gdGhpcy5nbDsKKyAgICB2YXIgdyA9IHRoaXMud2lkdGgsIGggPSB0aGlzLmhlaWdodDsKKyAg
ICB2YXIgZmJvID0gdGhpcy5mYm8gIT0gbnVsbCA/IHRoaXMuZmJvIDogZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKTsKKyAgICB2YXIgcmI7CisKKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVIsIGZibyk7CisgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmRGcmFtZWJ1ZmZl
ciIpOworICAgIGlmICh0aGlzLnVzZURlcHRoKSB7CisgICAgICByYiA9IHRoaXMucmJvICE9IG51
bGwgPyB0aGlzLnJibyA6IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICAgICAgZ2wuYmluZFJl
bmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJiKTsKKyAgICAgIGNoZWNrRXJyb3IoZ2wsICJG
Qk8uaW5pdCBiaW5kUmVuZGVyYnVmZmVyIik7CisgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIHcsIGgpOworICAgICAgY2hl
Y2tFcnJvcihnbCwgIkZCTy5pbml0IHJlbmRlcmJ1ZmZlclN0b3JhZ2UiKTsKKyAgICB9CisKKyAg
ICB2YXIgdGV4ID0gdGhpcy50ZXh0dXJlICE9IG51bGwgPyB0aGlzLnRleHR1cmUgOiBnbC5jcmVh
dGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAg
ICB0cnkgeworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB3
LCBoLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKKyAgICB9IGNhdGNoIChl
KSB7IC8vIGFyZ2gsIG5vIG51bGwgdGV4dHVyZSBzdXBwb3J0CisgICAgICB2YXIgdG1wID0gdGhp
cy5nZXRUZW1wQ2FudmFzKHcsaCk7CisgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRtcCk7CisgICAgfQorICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNM
QU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5F
QVIpOworICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCB0ZXgiKTsKKworICAgIGdsLmZyYW1l
YnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wu
VEVYVFVSRV8yRCwgdGV4LCAwKTsKKyAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZCB0
ZXgiKTsKKworICAgIGlmICh0aGlzLnVzZURlcHRoKSB7CisgICAgICBnbC5mcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVS
QlVGRkVSLCByYik7CisgICAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZCBkZXB0aCBi
dWZmZXIiKTsKKyAgICB9CisKKyAgICB2YXIgZmJzdGF0ID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUik7CisgICAgaWYgKGZic3RhdCAhPSBnbC5GUkFNRUJVRkZFUl9D
T01QTEVURSkgeworICAgICAgdmFyIGdsdjsKKyAgICAgIGZvciAodmFyIHYgaW4gZ2wpIHsKKyAg
ICAgICAgdHJ5IHsgZ2x2ID0gZ2xbdl07IH0gY2F0Y2ggKGUpIHsgZ2x2ID0gbnVsbDsgfQorICAg
ICAgICBpZiAoZ2x2ID09IGZic3RhdCkgeyBmYnN0YXQgPSB2OyBicmVhazsgfX0KKyAgICAgICAg
bG9nKCJGcmFtZWJ1ZmZlciBzdGF0dXM6ICIgKyBmYnN0YXQpOworICAgIH0KKyAgICBjaGVja0Vy
cm9yKGdsLCAiRkJPLmluaXQgY2hlY2sgZmJvIik7CisKKyAgICB0aGlzLmZibyA9IGZibzsKKyAg
ICB0aGlzLnJibyA9IHJiOworICAgIHRoaXMudGV4dHVyZSA9IHRleDsKKyAgICB0aGlzLmluaXRp
YWxpemVkID0gdHJ1ZTsKKyAgfSwKKworICBnZXRUZW1wQ2FudmFzIDogZnVuY3Rpb24odywgaCkg
eworICAgIGlmICghRkJPLnRlbXBDYW52YXMpIHsKKyAgICAgIEZCTy50ZW1wQ2FudmFzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgfQorICAgIEZCTy50ZW1wQ2FudmFz
LndpZHRoID0gdzsKKyAgICBGQk8udGVtcENhbnZhcy5oZWlnaHQgPSBoOworICAgIHJldHVybiBG
Qk8udGVtcENhbnZhczsKKyAgfSwKKworICB1c2UgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAoIXRo
aXMuaW5pdGlhbGl6ZWQpIHRoaXMuaW5pdCgpOworICAgIHRoaXMuZ2wuYmluZEZyYW1lYnVmZmVy
KHRoaXMuZ2wuRlJBTUVCVUZGRVIsIHRoaXMuZmJvKTsKKyAgfQorfQorCitmdW5jdGlvbiBHTEVy
cm9yKGVyciwgbXNnLCBmaWxlTmFtZSwgbGluZU51bWJlcikgeworICB0aGlzLm1lc3NhZ2UgPSBt
c2c7CisgIHRoaXMuZ2xFcnJvciA9IGVycjsKK30KKworR0xFcnJvci5wcm90b3R5cGUgPSBuZXcg
RXJyb3IoKTsKKworZnVuY3Rpb24gbWFrZUdMRXJyb3JXcmFwcGVyKGdsLCBmbmFtZSkgeworICBy
ZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgIHRyeSB7CisgICAgICB2YXIgcnYgPSBnbFtmbmFtZV0u
YXBwbHkoZ2wsIGFyZ3VtZW50cyk7CisgICAgICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKKyAg
ICAgIGlmIChlcnIgIT0gZ2wuTk9fRVJST1IpIHsKKyAgICAgICAgdGhyb3cobmV3IEdMRXJyb3Io
CisgICAgICAgICAgICBlcnIsICJHTCBlcnJvciAiK2dldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJy
KSsiIGluICIrZm5hbWUpKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBydjsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICBpZiAoZS5nbEVycm9yICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhy
b3cgZTsKKyAgICAgIH0KKyAgICAgIHRocm93KG5ldyBFcnJvcigiVGhyZXcgIiArIGUubmFtZSAr
CisgICAgICAgICAgICAgICAgICAgICAgIiBpbiAiICsgZm5hbWUgKyAiXG4iICsKKyAgICAgICAg
ICAgICAgICAgICAgICBlLm1lc3NhZ2UgKyAiXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICBh
cmd1bWVudHMuY2FsbGVlLmNhbGxlcikpOworICAgIH0KKyAgfSk7Cit9CisKK2Z1bmN0aW9uIHdy
YXBHTENvbnRleHQoZ2wpIHsKKyAgdmFyIHdyYXAgPSB7fTsKKyAgZm9yICh2YXIgaSBpbiBnbCkg
eworICAgIHRyeSB7CisgICAgICBpZiAodHlwZW9mIGdsW2ldID09ICdmdW5jdGlvbicpIHsKKyAg
ICAgICAgICB3cmFwW2ldID0gbWFrZUdMRXJyb3JXcmFwcGVyKGdsLCBpKTsKKyAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgd3JhcFtpXSA9IGdsW2ldOworICAgICAgfQorICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgIC8vIGxvZygid3JhcEdMQ29udGV4dDogRXJyb3IgYWNjZXNzaW5nICIgKyBpKTsK
KyAgICB9CisgIH0KKyAgd3JhcC5nZXRFcnJvciA9IGZ1bmN0aW9uKCl7IHJldHVybiBnbC5nZXRF
cnJvcigpOyB9OworICByZXR1cm4gd3JhcDsKK30KKworZnVuY3Rpb24gZ2V0R0xDb250ZXh0KGNh
bnZhcykgeworICByZXR1cm4gY2FudmFzLmdldENvbnRleHQoR0xfQ09OVEVYVF9JRCwge2FudGlh
bGlhczogZmFsc2V9KTsKK30KKworLy8gQXNzZXJ0IHRoYXQgZiBnZW5lcmF0ZXMgYSBzcGVjaWZp
YyBHTCBlcnJvci4KK2Z1bmN0aW9uIGFzc2VydEdMRXJyb3IoZ2wsIGVyciwgbmFtZSwgZikgewor
ICBpZiAoZiA9PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICB2YXIgciA9IGZh
bHNlOworICB2YXIgZ2xFcnIgPSAwOworICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyByPXRydWU7
IGdsRXJyID0gZS5nbEVycm9yOyB9CisgIGlmIChnbEVyciAhPT0gZXJyKSB7CisgICAgaWYgKGds
RXJyID09PSB1bmRlZmluZWQpIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IFVO
RVhQRUNURUQgRVhDRVBUSU9OIiwgbmFtZSwgZik7CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RG
YWlsZWQoImFzc2VydEdMRXJyb3I6IGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGds
LCBlcnIpICsKKyAgICAgICAgICAgICAgICAgIiBhY3R1YWw6ICIgKyBnZXRHTEVycm9yQXNTdHJp
bmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfQor
ICByZXR1cm4gdHJ1ZTsKK30KKworLy8gQXNzZXJ0IHRoYXQgZiBnZW5lcmF0ZXMgYSBHTCBlcnJv
ciBmcm9tIGEgbGlzdC4KK2Z1bmN0aW9uIGFzc2VydEdMRXJyb3JJbihnbCwgZXhwZWN0ZWRFcnJv
ckxpc3QsIG5hbWUsIGYpIHsKKyAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51
bGw7IH0KKworICB2YXIgYWN0dWFsRXJyb3IgPSAwOworICB0cnkgeworICAgIGYoKTsKKyAgfSBj
YXRjaChlKSB7CisgICAgaWYgKCdnbEVycm9yJyBpbiBlKSB7CisgICAgICBhY3R1YWxFcnJvciA9
IGUuZ2xFcnJvcjsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJv
cjogVU5FWFBDRVRFRCBFWENFUFRJT04iLCBuYW1lLCBmKTsKKyAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgIH0KKworICB2YXIgZXhwZWN0ZWRFcnJvclN0ckxpc3QgPSBbXTsKKyAgdmFyIGV4
cGVjdGVkRXJyb3JTZXQgPSB7fTsKKyAgZm9yICh2YXIgaSBpbiBleHBlY3RlZEVycm9yTGlzdCkg
eworICAgIHZhciBjdXIgPSBleHBlY3RlZEVycm9yTGlzdFtpXTsKKyAgICBleHBlY3RlZEVycm9y
U2V0W2N1cl0gPSB0cnVlOworICAgIGV4cGVjdGVkRXJyb3JTdHJMaXN0LnB1c2goZ2V0R0xFcnJv
ckFzU3RyaW5nKGdsLCBjdXIpKTsKKyAgfQorICB2YXIgZXhwZWN0ZWRFcnJvckxpc3RTdHIgPSAi
WyIgKyBleHBlY3RlZEVycm9yU3RyTGlzdC5qb2luKCIsICIpICsgIl0iOworCisgIGlmIChhY3R1
YWxFcnJvciBpbiBleHBlY3RlZEVycm9yU2V0KSB7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKwor
ICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBleHBlY3RlZDogIiArIGV4cGVjdGVkRXJyb3JM
aXN0U3RyICsKKyAgICAgICAgICAgICAiIGFjdHVhbDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhn
bCwgYWN0dWFsRXJyb3IpLCBuYW1lLCBmKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCisvLyBBc3Nl
cnQgdGhhdCBmIGdlbmVyYXRlcyBzb21lIEdMIGVycm9yLiBVc2VkIGluIHNpdHVhdGlvbnMgd2hl
cmUgaXQncworLy8gYW1iaWdpb3VzIHdoaWNoIG9mIG11bHRpcGxlIHBvc3NpYmxlIGVycm9ycyB3
aWxsIGJlIGdlbmVyYXRlZC4KK2Z1bmN0aW9uIGFzc2VydFNvbWVHTEVycm9yKGdsLCBuYW1lLCBm
KSB7CisgIGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIHZhciBy
ID0gZmFsc2U7CisgIHZhciBnbEVyciA9IDA7CisgIHZhciBlcnIgPSAwOworICB0cnkgeyBmKCk7
IH0gY2F0Y2goZSkgeyByPXRydWU7IGdsRXJyID0gZS5nbEVycm9yOyB9CisgIGlmIChnbEVyciA9
PT0gMCkgeworICAgIGlmIChnbEVyciA9PT0gdW5kZWZpbmVkKSB7CisgICAgICB0ZXN0RmFpbGVk
KCJhc3NlcnRHTEVycm9yOiBVTkVYUEVDVEVEIEVYQ0VQVElPTiIsIG5hbWUsIGYpOworICAgIH0g
ZWxzZSB7CisgICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBleHBlY3RlZDogIiArIGdl
dEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArCisgICAgICAgICAgICAgICAgICIgYWN0dWFsOiAi
ICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVyciksIG5hbWUsIGYpOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKKy8vIEFzc2VydCB0aGF0IGYg
dGhyb3dzIGFuIGV4Y2VwdGlvbiBidXQgZG9lcyBub3QgZ2VuZXJhdGUgYSBHTCBlcnJvci4KK2Z1
bmN0aW9uIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCBuYW1lLCBmKSB7CisgIGlmIChmID09IG51
bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIHZhciByID0gZmFsc2U7CisgIHZhciBn
bEVyciA9IHVuZGVmaW5lZDsKKyAgdmFyIGV4cDsKKyAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsg
cj10cnVlOyBnbEVyciA9IGUuZ2xFcnJvcjsgZXhwID0gZTt9CisgIGlmICghcikgeworICAgIHRl
c3RGYWlsZWQoCisgICAgICAiYXNzZXJ0VGhyb3dOb0dMRXJyb3I6IHNob3VsZCBoYXZlIHRocm93
biBleGNlcHRpb24iLCBuYW1lLCBmKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7Cisg
ICAgaWYgKGdsRXJyICE9PSB1bmRlZmluZWQpIHsKKyAgICAgIHRlc3RGYWlsZWQoCisgICAgICAg
ICJhc3NlcnRUaHJvd05vR0xFcnJvcjogc2hvdWxkIGJlIG5vIEdMIGVycm9yIGJ1dCBnZW5lcmF0
ZWQ6ICIgKworICAgICAgICBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7
CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImFzc2VydFRo
cm93Tm9HTEVycm9yIiwgbmFtZSwgZik7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBh
c3NlcnRUaHJvd3MoZ2wsIHNob3VsZFRocm93LCBpbmZvLCBmdW5jKSB7CisgIHZhciBkaWRUaHJv
dyA9IGZhbHNlOworICB0cnkgeworICAgIGZ1bmMoKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHZh
ciBkaWRHTEVycm9yID0gKGUgaW5zdGFuY2VvZiBHTEVycm9yKTsKKyAgICBpZiAoIWRpZEdMRXJy
b3IpIHsKKyAgICAgIGRpZFRocm93ID0gdHJ1ZTsKKyAgICB9CisgIH0KKworICB2YXIgdGV4dCA9
IHNob3VsZFRocm93ID8gIlNob3VsZCB0aHJvdzogIgorICAgICAgICAgICAgICAgICAgICAgICAg
IDogIlNob3VsZCBub3QgdGhyb3c6ICI7CisgIHZhciBmdW5jID0gKGRpZFRocm93ID09IHNob3Vs
ZFRocm93KSA/IHRlc3RQYXNzZWQgOiB0ZXN0RmFpbGVkOworCisgIGZ1bmModGV4dCArIGluZm8p
OworfQorCitRdWFkID0geworICB2ZXJ0aWNlcyA6IFsKKyAgICAtMSwtMSwwLAorICAgIDEsLTEs
MCwKKyAgICAtMSwxLDAsCisgICAgMSwtMSwwLAorICAgIDEsMSwwLAorICAgIC0xLDEsMAorICBd
LAorICBub3JtYWxzIDogWworICAgIDAsMCwtMSwKKyAgICAwLDAsLTEsCisgICAgMCwwLC0xLAor
ICAgIDAsMCwtMSwKKyAgICAwLDAsLTEsCisgICAgMCwwLC0xCisgIF0sCisgIHRleGNvb3JkcyA6
IFsKKyAgICAwLDAsCisgICAgMSwwLAorICAgIDAsMSwKKyAgICAxLDAsCisgICAgMSwxLAorICAg
IDAsMQorICBdLAorICBpbmRpY2VzIDogWzAsMSwyLDEsNSwyXSwKKyAgbWFrZVZCTyA6IGZ1bmN0
aW9uKGdsKSB7CisgICAgcmV0dXJuIG5ldyBWQk8oZ2wsCisgICAgICAgIHtzaXplOjMsIGRhdGE6
IFF1YWQudmVydGljZXN9LAorICAgICAgICB7c2l6ZTozLCBkYXRhOiBRdWFkLm5vcm1hbHN9LAor
ICAgICAgICB7c2l6ZToyLCBkYXRhOiBRdWFkLnRleGNvb3Jkc30KKyAgICApCisgIH0sCisgIGNh
Y2hlOiB7fSwKKyAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rpb24oZ2wpIHsKKyAgICBpZiAoIXRoaXMu
Y2FjaGVbZ2xdKQorICAgICAgdGhpcy5jYWNoZVtnbF0gPSB0aGlzLm1ha2VWQk8oZ2wpOworICAg
IHJldHVybiB0aGlzLmNhY2hlW2dsXTsKKyAgfQorfQorQ3ViZSA9IHsKKyAgdmVydGljZXMgOiBb
ICAwLjUsIC0wLjUsICAwLjUsIC8vICtYCisgICAgICAgICAgICAgICAgMC41LCAtMC41LCAtMC41
LAorICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAwLjUs
ICAwLjUsICAwLjUsCisKKyAgICAgICAgICAgICAgICAwLjUsICAwLjUsICAwLjUsIC8vICtZCisg
ICAgICAgICAgICAgICAgMC41LCAgMC41LCAtMC41LAorICAgICAgICAgICAgICAgIC0wLjUsICAw
LjUsIC0wLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgIDAuNSwKKworICAgICAgICAg
ICAgICAgIDAuNSwgIDAuNSwgIDAuNSwgLy8gK1oKKyAgICAgICAgICAgICAgICAtMC41LCAgMC41
LCAgMC41LAorICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUsCisgICAgICAgICAgICAg
ICAgMC41LCAtMC41LCAgMC41LAorCisgICAgICAgICAgICAgICAgLTAuNSwgLTAuNSwgIDAuNSwg
Ly8gLVgKKyAgICAgICAgICAgICAgICAtMC41LCAgMC41LCAgMC41LAorICAgICAgICAgICAgICAg
IC0wLjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgLTAuNSwgLTAuNSwgLTAuNSwKKwor
ICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUsIC8vIC1ZCisgICAgICAgICAgICAgICAg
LTAuNSwgLTAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIC0wLjUsCisgICAg
ICAgICAgICAgICAgMC41LCAtMC41LCAgMC41LAorCisgICAgICAgICAgICAgICAgLTAuNSwgLTAu
NSwgLTAuNSwgLy8gLVoKKyAgICAgICAgICAgICAgICAtMC41LCAgMC41LCAtMC41LAorICAgICAg
ICAgICAgICAgIDAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIC0w
LjUsCisgICAgICBdLAorCisgIG5vcm1hbHMgOiBbIDEsIDAsIDAsCisgICAgICAgICAgICAgIDEs
IDAsIDAsCisgICAgICAgICAgICAgIDEsIDAsIDAsCisgICAgICAgICAgICAgIDEsIDAsIDAsCisK
KyAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAg
ICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgMCwgMSwgMCwKKworICAgICAgICAgICAgICAw
LCAwLCAxLAorICAgICAgICAgICAgICAwLCAwLCAxLAorICAgICAgICAgICAgICAwLCAwLCAxLAor
ICAgICAgICAgICAgICAwLCAwLCAxLAorCisgICAgICAgICAgICAgIC0xLCAwLCAwLAorICAgICAg
ICAgICAgICAtMSwgMCwgMCwKKyAgICAgICAgICAgICAgLTEsIDAsIDAsCisgICAgICAgICAgICAg
IC0xLCAwLCAwLAorCisgICAgICAgICAgICAgIDAsLTEsIDAsCisgICAgICAgICAgICAgIDAsLTEs
IDAsCisgICAgICAgICAgICAgIDAsLTEsIDAsCisgICAgICAgICAgICAgIDAsLTEsIDAsCisKKyAg
ICAgICAgICAgICAgMCwgMCwtMSwKKyAgICAgICAgICAgICAgMCwgMCwtMSwKKyAgICAgICAgICAg
ICAgMCwgMCwtMSwKKyAgICAgICAgICAgICAgMCwgMCwtMQorICAgICAgXSwKKworICBpbmRpY2Vz
IDogW10sCisgIGNyZWF0ZSA6IGZ1bmN0aW9uKCl7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2
OyBpKyspIHsKKyAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDApOworICAgICAgQ3ViZS5p
bmRpY2VzLnB1c2goaSo0ICsgMSk7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAzKTsK
KyAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDEpOworICAgICAgQ3ViZS5pbmRpY2VzLnB1
c2goaSo0ICsgMik7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAzKTsKKyAgICB9Cisg
IH0sCisKKyAgbWFrZVZCTyA6IGZ1bmN0aW9uKGdsKSB7CisgICAgcmV0dXJuIG5ldyBWQk8oZ2ws
CisgICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUudmVydGljZXN9LAorICAgICAgICB7c2l6ZToz
LCBkYXRhOiBDdWJlLm5vcm1hbHN9LAorICAgICAgICB7ZWxlbWVudHM6IHRydWUsIGRhdGE6IEN1
YmUuaW5kaWNlc30KKyAgICApCisgIH0sCisgIGNhY2hlIDoge30sCisgIGdldENhY2hlZFZCTyA6
IGZ1bmN0aW9uKGdsKSB7CisgICAgaWYgKCF0aGlzLmNhY2hlW2dsXSkKKyAgICAgIHRoaXMuY2Fj
aGVbZ2xdID0gdGhpcy5tYWtlVkJPKGdsKTsKKyAgICByZXR1cm4gdGhpcy5jYWNoZVtnbF07Cisg
IH0KK30KK0N1YmUuY3JlYXRlKCk7CisKK1NwaGVyZSA9IHsKKyAgdmVydGljZXMgOiBbXSwKKyAg
bm9ybWFscyA6IFtdLAorICBpbmRpY2VzIDogW10sCisgIGNyZWF0ZSA6IGZ1bmN0aW9uKCl7Cisg
ICAgdmFyIHIgPSAwLjc1OworICAgIGZ1bmN0aW9uIHZlcnQodGhldGEsIHBoaSkKKyAgICB7Cisg
ICAgICB2YXIgciA9IDAuNzU7CisgICAgICB2YXIgeCwgeSwgeiwgbngsIG55LCBuejsKKworICAg
ICAgbnggPSBNYXRoLnNpbih0aGV0YSkgKiBNYXRoLmNvcyhwaGkpOworICAgICAgbnkgPSBNYXRo
LnNpbihwaGkpOworICAgICAgbnogPSBNYXRoLmNvcyh0aGV0YSkgKiBNYXRoLmNvcyhwaGkpOwor
ICAgICAgU3BoZXJlLm5vcm1hbHMucHVzaChueCk7CisgICAgICBTcGhlcmUubm9ybWFscy5wdXNo
KG55KTsKKyAgICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobnopOworCisgICAgICB4ID0gciAqIE1h
dGguc2luKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAgICB5ID0gciAqIE1hdGguc2luKHBo
aSk7CisgICAgICB6ID0gciAqIE1hdGguY29zKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7CisgICAg
ICBTcGhlcmUudmVydGljZXMucHVzaCh4KTsKKyAgICAgIFNwaGVyZS52ZXJ0aWNlcy5wdXNoKHkp
OworICAgICAgU3BoZXJlLnZlcnRpY2VzLnB1c2goeik7CisgICAgfQorICAgIGZvciAodmFyIHBo
aSA9IC1NYXRoLlBJLzI7IHBoaSA8IE1hdGguUEkvMjsgcGhpICs9IE1hdGguUEkvMjApIHsKKyAg
ICAgIHZhciBwaGkyID0gcGhpICsgTWF0aC5QSS8yMDsKKyAgICAgIGZvciAodmFyIHRoZXRhID0g
LU1hdGguUEkvMjsgdGhldGEgPD0gTWF0aC5QSS8yOyB0aGV0YSArPSBNYXRoLlBJLzIwKSB7Cisg
ICAgICAgIHZlcnQodGhldGEsIHBoaSk7CisgICAgICAgIHZlcnQodGhldGEsIHBoaTIpOworICAg
ICAgfQorICAgIH0KKyAgfQorfQorCitTcGhlcmUuY3JlYXRlKCk7CisKK2luaXRHTF9DT05URVhU
X0lEID0gZnVuY3Rpb24oKXsKKyAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52
YXMnKTsKKyAgdmFyIGNvbnRleHROYW1lcyA9IFsnd2ViZ2wnLCAnZXhwZXJpbWVudGFsLXdlYmds
J107CisgIEdMX0NPTlRFWFRfSUQgPSBudWxsOworICBmb3IgKHZhciBpPTA7IGk8Y29udGV4dE5h
bWVzLmxlbmd0aDsgaSsrKSB7CisgICAgdHJ5IHsKKyAgICAgIGlmIChjLmdldENvbnRleHQoY29u
dGV4dE5hbWVzW2ldKSkgeworICAgICAgICBHTF9DT05URVhUX0lEID0gY29udGV4dE5hbWVzW2ld
OworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgfQorICB9
CisgIGlmICghR0xfQ09OVEVYVF9JRCkgeworICAgIGxvZygiTm8gV2ViR0wgY29udGV4dCBmb3Vu
ZC4gVW5hYmxlIHRvIHJ1biB0ZXN0cy4iKTsKKyAgfQorfQorCitpbml0R0xfQ09OVEVYVF9JRCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjA4Njk2ZTk4YThlY2ZlZDQ5ZjNiNmFlN2NmOWU4N2NlZWZmYTVhZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zm
c2NyZWVuY2FudmFzLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIE9yaWdpbiBSZXN0cmljdGlv
bnMgQ29uZm9ybWFuY2UgVGVzdHMgZm9yIE9mZnNjcmVlbkNhbnZhczwvdGl0bGU+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgorPGltZyBpZD0i
aW1nIiBzdHlsZT0iZGlzcGxheTpub25lOyI+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOwordmFy
IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworCisvLyBDaGVja3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFu
IGV4Y2VwdGlvbi4KK2Z1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihmdW5jKSB7CisgIHZhciBoYWRF
eGNlcHRpb24gPSBmYWxzZTsKKyAgdHJ5IHsKKyAgICBmdW5jKCk7CisgIH0gY2F0Y2goZSkgewor
ICAgIGhhZEV4Y2VwdGlvbiA9IHRydWU7CisgIH0KKyAgcmV0dXJuIGhhZEV4Y2VwdGlvbjsKK30K
KwordmFyIGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNl
LXJlc291cmNlcy9vcGVuZ2xfbG9nby5qcGciOwordmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4u
L3Jlc291cmNlcy9vcGVuZ2xfbG9nby5qcGciOworCit2YXIgaW1nRG9tYWluOwordmFyIHBhZ2VE
b21haW47CisKK2Z1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgeworICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvciBPZmZzY3JlZW5DYW52YXMg
Zm9sbG93IHByb3BlciBzYW1lLW9yaWdpbiByZXN0cmljdGlvbnMuIik7CisKKyAgaWYgKCF3aW5k
b3cuT2Zmc2NyZWVuQ2FudmFzKSB7CisgICAgdGVzdFBhc3NlZCgiTm8gT2Zmc2NyZWVuQ2FudmFz
IHN1cHBvcnQiKTsKKyAgICBmaW5pc2hUZXN0KCk7CisgICAgcmV0dXJuOworICB9CisKKyAgYXNz
ZXJ0TXNnKGltZy53aWR0aCA+IDAgJiYgaW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIp
OworICBpbWdEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3dHUuZ2V0SG9zdChpbWcuc3JjKSk7
CisgIHBhZ2VEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3aW5kb3cubG9jYXRpb24uaG9zdCk7
CisgIGFzc2VydE1zZyhpbWdEb21haW4gIT0gcGFnZURvbWFpbiwKKyAgICAgICAgICAgICJpbWcg
ZG9tYWluICgiICsgaW1nRG9tYWluICsgIikgYW5kIHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFp
biArICIpIGFyZSBub3QgdGhlIHNhbWUuIik7CisKKyAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQo
Z2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3Jj
KTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykg
eworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKKyAgICB9
OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVJlYWRQaXhlbHMoZ2wpIHsKKyAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7CisgICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgICAgICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Cisg
ICAgfTsKKyAgfQorCisgIHZhciBvZmZzY3JlZW5jYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEwLCAxMCk7CisgIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQob2Zmc2NyZWVuY2FudmFz
KTsKKworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBs
b2FkIGFuIGltYWdlIGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsK
KyAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgIGFzc2Vy
dE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAg
ICAgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2Vw
dGlvbi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChn
bCwgaW1nKSksCisgICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBp
bWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJl
YWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNhbnZhcy4i
KTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKKyAg
ICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90
IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBjYW52YXMuIik7CisKKyAgZGVidWco
ImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVkIGNhbnZhcyB0aHJvd3Mg
YW4gZXhjZXB0aW9uLiIpOworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworICB2YXIgY3R4MmQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgY3R4
MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFr
ZVRleEltYWdlMkQoZ2wsIGNhbnZhcykpLAorICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBO
T04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3Nl
cnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMpKSwKKyAg
ICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hv
dWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKworICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxz
IGNvbnRpbnVlcyB0byB3b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7CisgIGFz
c2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCisgICAgICAgICAg
ICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJs
ZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2FudmFzLiIpOworCisgIC8vIFRPRE86IFNob3Vs
ZCBjaGVjayB2aWRlby4KKyAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KKwor
ICBmaW5pc2hUZXN0KCk7Cit9CisKKyhhc3luYyBmdW5jdGlvbigpIHsKKyAgY29uc3QgaW1nID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZycpOworICB0cnkgeworICAgIGF3YWl0IHd0dS5h
d2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJs
LCBsb2NhbEltZ1VybCkpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZChgSW1hZ2Ug
c2V0dXAgZmFpbGVkICgke2V9KS5gKTsKKyAgICBmaW5pc2hUZXN0KCk7CisgICAgcmV0dXJuOwor
ICB9CisgIGltYWdlTG9hZGVkKGltZyk7Cit9KSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI3ZjU3MjE3MzVmMDE3MzRhN2UxZDZiZTM5M2Nl
MDdhNjEyYWYwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApAQCAtMCwwICsxLDEzNyBAQAorPCEtLQorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgT3JpZ2lu
IFJlc3RyaWN0aW9ucyBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMxIj48L2NhbnZhcz4KKzxjYW52YXMgaWQ9ImNhbnZh
czIiPjwvY2FudmFzPgorPGltZyBpZD0iaW1nIiBzdHlsZT0iZGlzcGxheTpub25lOyI+Cis8c2Ny
aXB0PgorInVzZSBzdHJpY3QiOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworCisvLyBDaGVj
a3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlvbi4KK2Z1bmN0aW9uIGNhdXNlZEV4Y2Vw
dGlvbihmdW5jKSB7CisgIHZhciBoYWRFeGNlcHRpb24gPSBmYWxzZTsKKyAgdHJ5IHsKKyAgICBm
dW5jKCk7CisgIH0gY2F0Y2goZSkgeworICAgIGhhZEV4Y2VwdGlvbiA9IHRydWU7CisgIH0KKyAg
cmV0dXJuIGhhZEV4Y2VwdGlvbjsKK30KKwordmFyIGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9n
ZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy9vcGVuZ2xfbG9nby5qcGciOwordmFy
IGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy9vcGVuZ2xfbG9nby5qcGciOworCit2
YXIgaW1nRG9tYWluOwordmFyIHBhZ2VEb21haW47Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkOwor
CitmdW5jdGlvbiBpbWFnZUxvYWRlZChpbWcpIHsKKyAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBl
bnN1cmVzIFdlYkdMIGltcGxlbWVudGF0aW9ucyBmb2xsb3cgcHJvcGVyIHNhbWUtb3JpZ2luIHJl
c3RyaWN0aW9ucy4iKTsKKworICBhc3NlcnRNc2coaW1nLndpZHRoID4gMCAmJiBpbWcuaGVpZ2h0
ID4gMCwgImltZyB3YXMgbG9hZGVkIik7CisgIGltZ0RvbWFpbiA9IHd0dS5nZXRCYXNlRG9tYWlu
KHd0dS5nZXRIb3N0KGltZy5zcmMpKTsKKyAgcGFnZURvbWFpbiA9IHd0dS5nZXRCYXNlRG9tYWlu
KHdpbmRvdy5sb2NhdGlvbi5ob3N0KTsKKyAgYXNzZXJ0TXNnKGltZ0RvbWFpbiAhPSBwYWdlRG9t
YWluLAorICAgICAgICAgICAgImltZyBkb21haW4gKCIgKyBpbWdEb21haW4gKyAiKSBhbmQgcGFn
ZSBkb21haW4gKCIgKyBwYWdlRG9tYWluICsgIikgYXJlIG5vdCB0aGUgc2FtZS4iKTsKKworICBm
dW5jdGlvbiBtYWtlVGV4SW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkg
eworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtl
VGV4U3ViSW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAg
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlvbiBtYWtlUmVhZFBpeGVs
cyhnbCkgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBidWYgPSBuZXcgVWlu
dDhBcnJheSg0KTsKKyAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYnVmKTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVRvRGF0
YVVSTChjYW52YXMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZGF0YSA9
IGNhbnZhcy50b0RhdGFVUkwoKTsKKyAgICB9CisgIH0KKworICB2YXIgY2FudmFzMSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMxIik7CisgIHZhciBnbCA9IHd0dS5jcmVhdGUzRENv
bnRleHQoY2FudmFzMSk7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBh
dHRlbXB0IHRvIHVwbG9hZCBhbiBpbWFnZSBmcm9tIGFub3RoZXIgb3JpZ2luIHRocm93cyBhbiBl
eGNlcHRpb24uIik7CisgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQSwgMjU2LCAyNTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBpbWcp
KSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3Vs
ZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRl
eFN1YkltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBj
cm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKworICBkZWJ1Zygi
Y2hlY2sgdGhhdCByZWFkUGl4ZWxzIGFuZCB0b0RhdGFVUkwgY29udGludWUgdG8gd29yayBhZ2Fp
bnN0IHRoaXMgY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVh
ZFBpeGVscyhnbCkpLAorICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93
IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMIGNhbnZh
cy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMx
KSksCisgICAgICAgICAgICAic2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJM
IGZvciBXZWJHTCBjYW52YXMsIHdoaWNoIHNob3VsZCBzdGF5IG9yaWdpbiBjbGVhbi4iKTsKKwor
ICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhIHRhaW50ZWQgY2FudmFz
IHRocm93cyBhbiBleGNlcHRpb24uIik7CisgIHZhciBjYW52YXMyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNhbnZhczIiKTsKKyAgdmFyIGN0eDJkID0gY2FudmFzMi5nZXRDb250ZXh0KCIy
ZCIpOworICBjdHgyZC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4
Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZhczIpKSwKKyAgICAgICAgICAgICJzaG91bGQgdGhy
b3cgZXhjZXB0aW9uIGJ5IHRvRGF0YVVSTCBmb3IgTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMuIik7
CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGNhbnZhczIp
KSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMg
c2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbiht
YWtlVGV4U3ViSW1hZ2UyRChnbCwgY2FudmFzMikpLAorICAgICAgICAgICAgInRleFN1YkltYWdl
MkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIp
OworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgYW5kIHRvRGF0YVVSTCBjb250aW51
ZSB0byB3b3JrIGFnYWluc3QgdGhpcyBjYW52YXMuIik7CisgIGFzc2VydE1zZyghY2F1c2VkRXhj
ZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCisgICAgICAgICAgICAicmVhZFBpeGVscyBzaG91
bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4g
b2YgV2ViR0wgY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9E
YXRhVVJMKGNhbnZhczEpKSwKKyAgICAgICAgICAgICJzaG91bGQgbm90IHRocm93IGV4Y2VwdGlv
biBieSB0b0RhdGFVUkwgZm9yIFdlYkdMIGNhbnZhcywgd2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2lu
IGNsZWFuLiIpOworCisgIC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRlby4KKyAgLy8gVE9ETzog
U2hvdWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KKworICBkZWJ1ZygiIik7CisgIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisgIHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7Cisg
IGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsK
KyAgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKTsKK30KKworKGFzeW5jIGZ1bmN0aW9uKCkgewor
ICBjb25zdCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nJyk7CisgIHRyeSB7Cisg
ICAgYXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcs
IGRlZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0
RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgIGZpbmlzaFRlc3QoKTsK
KyAgICByZXR1cm47CisgIH0KKyAgaW1hZ2VMb2FkZWQoaW1nKTsKK30pKCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmM2YTExOGNjMWRkYWY1NzMxNGE0MjdlMGIwNDI4YmVkMDhkNDY5
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTQ2IEBACis8
IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TDIgT3JpZ2luIFJlc3RyaWN0aW9ucyBDb25mb3JtYW5jZSBUZXN0cyBmb3IgT2Zmc2NyZWVuQ2Fu
dmFzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyI+
PC9jYW52YXM+Cis8aW1nIGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KKzxzY3JpcHQ+
CisidXNlIHN0cmljdCI7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisKKy8vIENoZWNrcyBp
ZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgorZnVuY3Rpb24gY2F1c2VkRXhjZXB0aW9u
KGZ1bmMpIHsKKyAgdmFyIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOworICB0cnkgeworICAgIGZ1bmMo
KTsKKyAgfSBjYXRjaChlKSB7CisgICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKKyAgfQorICByZXR1
cm4gaGFkRXhjZXB0aW9uOworfQorCit2YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53
ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Cit2YXIgbG9j
YWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7CisKK3ZhciBp
bWdEb21haW47Cit2YXIgcGFnZURvbWFpbjsKKworZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1nKSB7
CisgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTDIgaW1wbGVtZW50YXRpb25z
IGZvciBPZmZzY3JlZW5DYW52YXMgZm9sbG93IHByb3BlciBzYW1lLW9yaWdpbiByZXN0cmljdGlv
bnMuIik7CisKKyAgaWYgKCF3aW5kb3cuT2Zmc2NyZWVuQ2FudmFzKSB7CisgICAgdGVzdFBhc3Nl
ZCgiTm8gT2Zmc2NyZWVuQ2FudmFzIHN1cHBvcnQiKTsKKyAgICBmaW5pc2hUZXN0KCk7CisgICAg
cmV0dXJuOworICB9CisKKyAgYXNzZXJ0TXNnKGltZy53aWR0aCA+IDAgJiYgaW1nLmhlaWdodCA+
IDAsICJpbWcgd2FzIGxvYWRlZCIpOworICBpbWdEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3
dHUuZ2V0SG9zdChpbWcuc3JjKSk7CisgIHBhZ2VEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3
aW5kb3cubG9jYXRpb24uaG9zdCk7CisgIGFzc2VydE1zZyhpbWdEb21haW4gIT0gcGFnZURvbWFp
biwKKyAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsgaW1nRG9tYWluICsgIikgYW5kIHBhZ2Ug
ZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBub3QgdGhlIHNhbWUuIik7CisKKyAgZnVu
Y3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsK
KyAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTAsIDEwLCAw
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5j
dGlvbiBtYWtlVGV4U3ViSW1hZ2UyRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkg
eworICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCAxMCwgMTAs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0
aW9uIG1ha2VUZXhJbWFnZTNEKGdsLCBzcmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7Cisg
ICAgICBnbC50ZXhJbWFnZTNEKGdsLlRFWFRVUkVfM0QsIDAsIGdsLlJHQkEsIDEwLCAxMCwgMSwg
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKKyAgICB9OworICB9CisKKyAgZnVu
Y3Rpb24gbWFrZVRleFN1YkltYWdlM0QoZ2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigp
IHsKKyAgICAgIGdsLnRleFN1YkltYWdlM0QoZ2wuVEVYVFVSRV8zRCwgMCwgMCwgMCwgMCwgMTAs
IDEwLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKwor
ICBmdW5jdGlvbiBtYWtlUmVhZFBpeGVscyhnbCkgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsK
KyAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICAgIGdsLnJlYWRQaXhlbHMo
MCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgICB9OworICB9
CisKKyAgdmFyIG9mZnNjcmVlbmNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsK
KyAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChvZmZzY3JlZW5jYW52YXMsIG51bGwsIDIp
OworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxv
YWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9yaWdpbiB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwor
ICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKKyAgYXNzZXJ0
TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgaW1nKSksCisgICAgICAgICAg
ICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGds
LCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGlt
YWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRp
b24obWFrZVRleEltYWdlM0QoZ2wsIGltZykpLAorICAgICAgICAgICAgInRleEltYWdlM0Qgd2l0
aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0
TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UzRChnbCwgaW1nKSksCisgICAgICAg
ICAgICAidGV4U3ViSW1hZ2UzRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cg
ZXhjZXB0aW9uLiIpOworCisKKyAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51
ZXMgdG8gd29yayBhZ2FpbnN0IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOworICBhc3NlcnRNc2co
IWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAorICAgICAgICAgICAgInJlYWRQ
aXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGly
dHkgb3JpZ2luIG9mIFdlYkdMMiBjYW52YXMuIik7CisKKyAgZGVidWcoImNoZWNrIHRoYXQgYW4g
YXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVkIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIp
OworICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICB2
YXIgY3R4MmQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgY3R4MmQuZHJhd0ltYWdlKGlt
ZywgMCwgMCk7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2ws
IGNhbnZhcykpLAorICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFu
IGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhj
ZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMpKSwKKyAgICAgICAgICAgICJ0ZXhT
dWJJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2Vw
dGlvbi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UzRChnbCwg
Y2FudmFzKSksCisgICAgICAgICAgICAidGV4SW1hZ2UzRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4g
Y2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNl
cHRpb24obWFrZVRleFN1YkltYWdlM0QoZ2wsIGNhbnZhcykpLAorICAgICAgICAgICAgInRleFN1
YkltYWdlM0Qgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdv
cmsgYWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRF
eGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKKyAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNo
b3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdp
biBvZiBXZWJHTDIgY2FudmFzLiIpOworCisgIC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRlby4K
KyAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KKworICBmaW5pc2hUZXN0KCk7
Cit9CisKKyhhc3luYyBmdW5jdGlvbigpIHsKKyAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ltZycpOworICB0cnkgeworICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3
dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCks
IDEwMDApOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFp
bGVkICgke2V9KS5gKTsKKyAgICBmaW5pc2hUZXN0KCk7CisgICAgcmV0dXJuOworICB9CisgIGlt
YWdlTG9hZGVkKGltZyk7Cit9KSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2pzL2pzLXRlc3QtcG9zdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzZGY1NTAzZDEyOGNhNWJkOTA0OWZkMTM5ZmUwMmNhZGM1YTgwNTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2pzL2pzLXRlc3QtcG9zdC5qcwpAQCAtMCwwICsxLDI3IEBACisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKK3Nob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFy
c2VkIik7CitfYWRkU3BhbignPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8
L3NwYW4+Jyk7CitpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAgX2J1ZmZlcmVk
TG9nVG9Db25zb2xlKCdURVNUIENPTVBMRVRFJyk7Cit9CisKK3sKKyAgICBjb25zdCBlX3Jlc3Vs
dHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBsZXQgZmFpbHNfY2xhc3Mg
PSAncGFzcyc7CisgICAgaWYgKFJFU1VMVFMuZmFpbCkgeworICAgICAgICBmYWlsc19jbGFzcyA9
ICdmYWlsJzsKKyAgICB9CisgICAgZV9yZXN1bHRzLmNsYXNzTGlzdC5hZGQoJ3Bhc3MnKTsKKyAg
ICBlX3Jlc3VsdHMuaW5uZXJIVE1MID0gYDxwPlRFU1QgQ09NUExFVEU6ICR7UkVTVUxUUy5wYXNz
fSBQQVNTLCBgICsKKyAgICAgIGA8c3BhbiBjbGFzcz0iJHtmYWlsc19jbGFzc30iPiR7UkVTVUxU
Uy5mYWlsfSBGQUlMPC9zcGFuPjwvcD5gOworCisgICAgY29uc3QgZV9kZXNjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIik7CisgICAgZV9kZXNjLmFwcGVuZENoaWxkKGVf
cmVzdWx0cyk7Cit9CisKK25vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
anMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxY2I5Zjc0OWMw
MjJhYWFjMDhmYjEwYjBjMmY2NDkwYjBmYWFmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRl
c3QtcHJlLmpzCkBAIC0wLDAgKzEsODAxIEBACisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKyhmdW5jdGlvbigpIHsKKyAgdmFyIHRlc3RIYXJuZXNzSW5pdGlhbGl6
ZWQgPSBmYWxzZTsKKworICB2YXIgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsgPSBmdW5jdGlvbigp
IHsKKyAgICBpZiAodGVzdEhhcm5lc3NJbml0aWFsaXplZCkgeworICAgICAgcmV0dXJuOworICAg
IH0KKyAgICB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIC8qIC0tIHBsYWZv
cm0gc3BlY2lmaWMgY29kZSAtLSAqLworCisgICAgLy8gV2ViS2l0IFNwZWNpZmljIGNvZGUuIEFk
ZCB5b3VyIGNvZGUgaGVyZS4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
ID0gd2luZG93LnRlc3RSdW5uZXI7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAvLyBUaGUgV2ViS2l0
IHRlc3Rpbmcgc3lzdGVtIGNvbXBhcmVzIGNvbnNvbGUgb3V0cHV0LgorICAgICAgLy8gQmVjYXVz
ZSB0aGUgb3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0cyBpcyBHUFUgZGVwZW5kZW50CisgICAgICAv
LyB3ZSB0dXJuIG9mZiBjb25zb2xlIG1lc3NhZ2VzLgorICAgICAgd2luZG93LmNvbnNvbGUubG9n
ID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9u
KCkgeyB9OworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1Rv
Q29uc29sZUVuYWJsZWQoZmFsc2UpOworICAgIH0KKworICAgIC8qIC0tIGVuZCBwbGF0Zm9ybSBz
cGVjaWZpYyBjb2RlIC0tKi8KKyAgfQorCisgIHRoaXMuaW5pdFRlc3RpbmdIYXJuZXNzID0gZnVu
Y3Rpb24oKSB7CisgICAgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsoKTsKKyAgfQorfSgpKTsKKwor
dmFyIGdldFVybE9wdGlvbnMgPSAoZnVuY3Rpb24oKSB7CisgIHZhciBfdXJsT3B0aW9uc1BhcnNl
ZCA9IGZhbHNlOworICB2YXIgX3VybE9wdGlvbnMgPSB7fTsKKyAgcmV0dXJuIGZ1bmN0aW9uKCkg
eworICAgIGlmICghX3VybE9wdGlvbnNQYXJzZWQpIHsKKyAgICAgIHZhciBzID0gd2luZG93Lmxv
Y2F0aW9uLmhyZWY7CisgICAgICB2YXIgcSA9IHMuaW5kZXhPZigiPyIpOworICAgICAgdmFyIGUg
PSBzLmluZGV4T2YoIiMiKTsKKyAgICAgIGlmIChlIDwgMCkgeworICAgICAgICBlID0gcy5sZW5n
dGg7CisgICAgICB9CisgICAgICB2YXIgcXVlcnkgPSBzLnN1YnN0cmluZyhxICsgMSwgZSk7Cisg
ICAgICB2YXIgcGFpcnMgPSBxdWVyeS5zcGxpdCgiJiIpOworICAgICAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB2YXIga2V5VmFsdWUgPSBwYWly
c1tpaV0uc3BsaXQoIj0iKTsKKyAgICAgICAgdmFyIGtleSA9IGtleVZhbHVlWzBdOworICAgICAg
ICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgICAgICBf
dXJsT3B0aW9uc1trZXldID0gdmFsdWU7CisgICAgICB9CisgICAgICBfdXJsT3B0aW9uc1BhcnNl
ZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIF91cmxPcHRpb25zOworICB9Cit9KSgpOwor
CitpZiAodHlwZW9mIHF1aWV0TW9kZSA9PSAndW5kZWZpbmVkJykgeworICB2YXIgcXVpZXRNb2Rl
ID0gKGZ1bmN0aW9uKCkgeworICAgIHZhciBfcXVpZXRNb2RlQ2hlY2tlZCA9IGZhbHNlOworICAg
IHZhciBfaXNRdWlldCA9IGZhbHNlOworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGlm
ICghX3F1aWV0TW9kZUNoZWNrZWQpIHsKKyAgICAgICAgX2lzUXVpZXQgPSAoZ2V0VXJsT3B0aW9u
cygpLnF1aWV0ID09IDEpOworICAgICAgICBfcXVpZXRNb2RlQ2hlY2tlZCA9IHRydWU7CisgICAg
ICB9CisgICAgICByZXR1cm4gX2lzUXVpZXQ7CisgICAgfQorICB9KSgpOworfQorCitmdW5jdGlv
biBub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSgpIHsKKyAgLy8gV2ViS2l0IFNwZWNpZmlj
IGNvZGUuIEFkZCB5b3VyIGNvZGUgaGVyZS4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
IH0KK30KKworY29uc3QgUkVTVUxUUyA9IHsKKyAgcGFzczogMCwKKyAgZmFpbDogMCwKK307CisK
K2Z1bmN0aW9uIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBp
ZiAoc3VjY2VzcykgeworICAgIFJFU1VMVFMucGFzcyArPSAxOworICB9IGVsc2UgeworICAgIFJF
U1VMVFMuZmFpbCArPSAxOworICB9CisgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5l
c3MpIHsKKyAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3
aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7CisgIH0KK30KKworZnVuY3Rp
b24gcmVwb3J0U2tpcHBlZFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBp
ZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CisgICAgd2luZG93LnBhcmVudC53
ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBz
dWNjZXNzLCBtc2csIHRydWUpOworICB9Cit9CisKK2Z1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9I
YXJuZXNzKCkgeworICBpZiAod2luZG93Ll9kaWROb3RpZnlGaW5pc2hlZFRvSGFybmVzcykgewor
ICAgIHRlc3RGYWlsZWQoIkR1cGxpY2F0ZSBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIik7Cisg
IH0KKyAgd2luZG93Ll9kaWROb3RpZnlGaW5pc2hlZFRvSGFybmVzcyA9IHRydWU7CisKKyAgaWYg
KHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2Vi
Z2xUZXN0SGFybmVzcy5ub3RpZnlGaW5pc2hlZCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpOwor
ICB9CisgIGlmICh3aW5kb3cubm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUpIHsKKyAgICB3
aW5kb3cubm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKTsKKyAgfQorfQorCit2YXIgX2J1
ZmZlcmVkQ29uc29sZUxvZ3MgPSBbXTsKKworZnVuY3Rpb24gX2J1ZmZlcmVkTG9nVG9Db25zb2xl
KG1zZykKK3sKKyAgaWYgKF9idWZmZXJlZENvbnNvbGVMb2dzKSB7CisgICAgX2J1ZmZlcmVkQ29u
c29sZUxvZ3MucHVzaChtc2cpOworICB9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlKSB7CisgICAg
d2luZG93LmNvbnNvbGUubG9nKG1zZyk7CisgIH0KK30KKworLy8gUHVibGljIGVudHJ5IHBvaW50
IGV4cG9zZWQgdG8gbWFueSBvdGhlciBmaWxlcy4KK2Z1bmN0aW9uIGJ1ZmZlcmVkTG9nVG9Db25z
b2xlKG1zZykKK3sKKyAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKG1zZyk7Cit9CisKKy8vIENhbGxl
ZCBpbXBsaWNpdGx5IGJ5IHRlc3RGYWlsZWQoKS4KK2Z1bmN0aW9uIF9mbHVzaEJ1ZmZlcmVkTG9n
c1RvQ29uc29sZSgpCit7CisgIGlmIChfYnVmZmVyZWRDb25zb2xlTG9ncykgeworICAgIGlmICh3
aW5kb3cuY29uc29sZSkgeworICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IF9idWZmZXJlZENv
bnNvbGVMb2dzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB3aW5kb3cuY29uc29sZS5sb2coX2J1
ZmZlcmVkQ29uc29sZUxvZ3NbaWldKTsKKyAgICAgIH0KKyAgICB9CisgICAgX2J1ZmZlcmVkQ29u
c29sZUxvZ3MgPSBudWxsOworICB9Cit9CisKK3ZhciBfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcg
PSBmYWxzZTsKKworZnVuY3Rpb24gZW5hYmxlSlNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcoKQorewor
ICAgIF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZyA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIGRlc2Ny
aXB0aW9uKG1zZykKK3sKKyAgICBpbml0VGVzdGluZ0hhcm5lc3MoKTsKKyAgICBpZiAobXNnID09
PSB1bmRlZmluZWQpIHsKKyAgICAgIG1zZyA9IGRvY3VtZW50LnRpdGxlOworICAgIH0KKyAgICAv
LyBGb3IgTVNJRSA2IGNvbXBhdGliaWxpdHkKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNnICsgJzwv
cD48cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIjxzcGFuIGNsYXNzPSJw
YXNzIj5QQVNTPC9zcGFuPiIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFz
cyI+VEVTVCBDT01QTEVURTwvc3Bhbj4iLjwvcD4nOworICAgIHZhciBkZXNjcmlwdGlvbiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpOworICAgIGlmIChkZXNjcmlwdGlv
bi5maXJzdENoaWxkKQorICAgICAgICBkZXNjcmlwdGlvbi5yZXBsYWNlQ2hpbGQoc3BhbiwgZGVz
Y3JpcHRpb24uZmlyc3RDaGlsZCk7CisgICAgZWxzZQorICAgICAgICBkZXNjcmlwdGlvbi5hcHBl
bmRDaGlsZChzcGFuKTsKKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAg
ICAgIF9idWZmZXJlZExvZ1RvQ29uc29sZShtc2cpOworICAgIH0KK30KKworZnVuY3Rpb24gX2Fk
ZFNwYW4oY29udGVudHMpCit7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChzcGFuKTsgLy8gaW5zZXJ0IGl0IGZpcnN0IHNvIFhIVE1MIGtub3dzIHRoZSBuYW1lc3Bh
Y2UKKyAgICBzcGFuLmlubmVySFRNTCA9IGNvbnRlbnRzICsgJzxiciAvPic7Cit9CisKK2Z1bmN0
aW9uIGRlYnVnKG1zZykKK3sKKyAgICBpZiAoIXF1aWV0TW9kZSgpKQorICAgICAgX2FkZFNwYW4o
bXNnKTsKKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAgICAgIF9idWZm
ZXJlZExvZ1RvQ29uc29sZShtc2cpOworICAgIH0KK30KKworZnVuY3Rpb24gZXNjYXBlSFRNTCh0
ZXh0KQoreworICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgv
PC9nLCAiJmx0OyIpOworfQorLyoqCisgKiBEZWZpbmVzIHRoZSBleGNlcHRpb24gdHlwZSBmb3Ig
YSB0ZXN0IGZhaWx1cmUuCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSBtZXNz
YWdlIFRoZSBlcnJvciBtZXNzYWdlLgorICovCit2YXIgVGVzdEZhaWxlZEV4Y2VwdGlvbiA9IGZ1
bmN0aW9uIChtZXNzYWdlKSB7CisgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgdGhpcy5u
YW1lID0gIlRlc3RGYWlsZWRFeGNlcHRpb24iOworfTsKKworLyoqCisgKiBAcGFyYW0gIHtzdHJp
bmc9fSBtc2cKKyAqLworZnVuY3Rpb24gdGVzdFBhc3NlZChtc2cpIHsKKyAgICBtc2cgPSBtc2cg
fHwgJ1Bhc3NlZCc7CisgICAgaWYgKF9jdXJyZW50VGVzdE5hbWUpCisgICAgICBtc2cgPSBfY3Vy
cmVudFRlc3ROYW1lICsgJzogJyArIG1zZzsKKworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJu
ZXNzKHRydWUsIG1zZyk7CisKKyAgICBpZiAoIXF1aWV0TW9kZSgpKQorICAgICAgX2FkZFNwYW4o
JzxzcGFuPjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cp
ICsgJzwvc3Bhbj4nKTsKKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAg
ICAgIF9idWZmZXJlZExvZ1RvQ29uc29sZSgnUEFTUyAnICsgbXNnKTsKKyAgICB9Cit9CisKKy8q
KgorICogQHBhcmFtICB7c3RyaW5nPX0gbXNnCisgKi8KK2Z1bmN0aW9uIHRlc3RGYWlsZWQobXNn
KSB7CisgICAgbXNnID0gbXNnIHx8ICdGYWlsZWQnOworICAgIGlmIChfY3VycmVudFRlc3ROYW1l
KQorICAgICAgbXNnID0gX2N1cnJlbnRUZXN0TmFtZSArICc6ICcgKyBtc2c7CisKKyAgICByZXBv
cnRUZXN0UmVzdWx0c1RvSGFybmVzcyhmYWxzZSwgbXNnKTsKKyAgICBfYWRkU3BhbignPHNwYW4+
PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9z
cGFuPicpOworICAgIF9idWZmZXJlZExvZ1RvQ29uc29sZSgnRkFJTCAnICsgbXNnKTsKKyAgICBf
Zmx1c2hCdWZmZXJlZExvZ3NUb0NvbnNvbGUoKTsKK30KKwordmFyIF9jdXJyZW50VGVzdE5hbWU7
CisKKy8qKgorICogU2V0cyB0aGUgY3VycmVudCB0ZXN0IG5hbWUgZm9yIHVzYWdlIHdpdGhpbiB0
ZXN0UGFzc2VkT3B0aW9ucy90ZXN0RmFpbGVkT3B0aW9ucy4KKyAqIEBwYXJhbSB7c3RyaW5nPX0g
bmFtZSBUaGUgbmFtZSB0byBzZXQgYXMgdGhlIGN1cnJlbnQgdGVzdCBuYW1lLgorICovCitmdW5j
dGlvbiBzZXRDdXJyZW50VGVzdE5hbWUobmFtZSkKK3sKKyAgICBfY3VycmVudFRlc3ROYW1lID0g
bmFtZTsKK30KKworLyoqCisgKiBHZXRzIHRoZSBjdXJyZW50IHRlc3QgbmFtZSBpbiB1c2Ugd2l0
aGluIHRlc3RQYXNzZWRPcHRpb25zL3Rlc3RGYWlsZWRPcHRpb25zLgorICogQHJldHVybiB7c3Ry
aW5nfSBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCB0ZXN0LgorICovCitmdW5jdGlvbiBnZXRDdXJy
ZW50VGVzdE5hbWUoKQoreworICAgIHJldHVybiBfY3VycmVudFRlc3ROYW1lOworfQorCisvKioK
KyAqIFZhcmlhdGlvbiBvZiB0aGUgdGVzdFBhc3NlZCBmdW5jdGlvbiwgd2l0aCB0aGUgb3B0aW9u
IHRvIG5vdCBzaG93IChhbmQgdGh1cyBub3QgY291bnQpIHRoZSB0ZXN0J3MgcGFzcyByZXN1bHQu
CisgKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGJlIHNob3duIGluIHRoZSBw
YXNzIHJlc3VsdC4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gYWRkU3BhbiBJbmRpY2F0ZXMgd2hldGhl
ciB0aGUgbWVzc2FnZSB3aWxsIGJlIHZpc2libGUgKHRodXMgY291bnRlZCBpbiB0aGUgcmVzdWx0
cykgb3Igbm90LgorICovCitmdW5jdGlvbiB0ZXN0UGFzc2VkT3B0aW9ucyhtc2csIGFkZFNwYW4p
Cit7CisgICAgaWYgKGFkZFNwYW4gJiYgIXF1aWV0TW9kZSgpKQorICAgIHsKKyAgICAgICAgcmVw
b3J0VGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwgX2N1cnJlbnRUZXN0TmFtZSArICI6ICIgKyBt
c2cpOworICAgICAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3Nw
YW4+ICcgKyBlc2NhcGVIVE1MKF9jdXJyZW50VGVzdE5hbWUpICsgIjogIiArIGVzY2FwZUhUTUwo
bXNnKSArICc8L3NwYW4+Jyk7CisgICAgfQorICAgIGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dp
bmcpIHsKKyAgICAgICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdQQVNTICcgKyBtc2cpOworICAg
IH0KK30KKworLyoqCisgKiBSZXBvcnQgc2tpcHBlZCB0ZXN0cy4KKyAqIEBwYXJhbSB7c3RyaW5n
fSBtc2cgVGhlIG1lc3NhZ2UgdG8gYmUgc2hvd24gaW4gdGhlIHNraXAgcmVzdWx0LgorICogQHBh
cmFtIHtib29sZWFufSBhZGRTcGFuIEluZGljYXRlcyB3aGV0aGVyIHRoZSBtZXNzYWdlIHdpbGwg
YmUgdmlzaWJsZSAodGh1cyBjb3VudGVkIGluIHRoZSByZXN1bHRzKSBvciBub3QuCisgKi8KK2Z1
bmN0aW9uIHRlc3RTa2lwcGVkT3B0aW9ucyhtc2csIGFkZFNwYW4pCit7CisgICAgaWYgKGFkZFNw
YW4gJiYgIXF1aWV0TW9kZSgpKQorICAgIHsKKyAgICAgICAgcmVwb3J0U2tpcHBlZFRlc3RSZXN1
bHRzVG9IYXJuZXNzKHRydWUsIF9jdXJyZW50VGVzdE5hbWUgKyAiOiAiICsgbXNnKTsKKyAgICAg
ICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNzPSJ3YXJuIj5TS0lQPC9zcGFuPiAnICsgZXNj
YXBlSFRNTChfY3VycmVudFRlc3ROYW1lKSArICI6ICIgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9z
cGFuPicpOworICAgIH0KKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAg
ICAgIF9idWZmZXJlZExvZ1RvQ29uc29sZSgnU0tJUCcgKyBtc2cpOworICAgIH0KK30KKworLyoq
CisgKiBWYXJpYXRpb24gb2YgdGhlIHRlc3RGYWlsZWQgZnVuY3Rpb24sIHdpdGggdGhlIG9wdGlv
biB0byB0aHJvdyBhbiBleGNlcHRpb24gb3Igbm90LgorICogQHBhcmFtIHtzdHJpbmd9IG1zZyBU
aGUgbWVzc2FnZSB0byBiZSBzaG93biBpbiB0aGUgZmFpbCByZXN1bHQuCisgKiBAcGFyYW0ge2Jv
b2xlYW59IGV4dGhyb3cgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHdpbGwgdGhyb3cg
YSBUZXN0RmFpbGVkRXhjZXB0aW9uIG9yIG5vdC4KKyAqLworZnVuY3Rpb24gdGVzdEZhaWxlZE9w
dGlvbnMobXNnLCBleHRocm93KQoreworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKGZh
bHNlLCBfY3VycmVudFRlc3ROYW1lICsgIjogIiArIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFu
PjxzcGFuIGNsYXNzPSJmYWlsIj5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChfY3VycmVudFRl
c3ROYW1lKSArICI6ICIgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgIF9idWZm
ZXJlZExvZ1RvQ29uc29sZSgnRkFJTCAnICsgbXNnKTsKKyAgICBfZmx1c2hCdWZmZXJlZExvZ3NU
b0NvbnNvbGUoKTsKKyAgICBpZiAoZXh0aHJvdykgeworICAgICAgICBfY3VycmVudFRlc3ROYW1l
ID0gIiI7IC8vUmVtZW1iZXJpbmcgdG8gc2V0IHRoZSBuYW1lIG9mIGN1cnJlbnQgdGVzdGNhc2Ug
dG8gZW1wdHkgc3RyaW5nLgorICAgICAgICB0aHJvdyBuZXcgVGVzdEZhaWxlZEV4Y2VwdGlvbiht
c2cpOworICAgIH0KK30KKworZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoX2EsIF9iKQoreworICAg
IHRyeSB7CisgICAgICAgIGlmIChfYS5sZW5ndGggIT09IF9iLmxlbmd0aCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfYS5sZW5ndGg7IGkr
KykKKyAgICAgICAgICAgIGlmIChfYVtpXSAhPT0gX2JbaV0pCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGlzTWludXNaZXJvKG4pCit7Cisg
ICAgLy8gdGhlIG9ubHkgd2F5IHRvIHRlbGwgMCBmcm9tIC0wIGluIEpTIGlzIHRoZSBmYWN0IHRo
YXQgMS8tMCBpcworICAgIC8vIC1JbmZpbml0eSBpbnN0ZWFkIG9mIEluZmluaXR5CisgICAgcmV0
dXJuIG4gPT09IDAgJiYgMS9uIDwgMDsKK30KKworZnVuY3Rpb24gaXNSZXN1bHRDb3JyZWN0KF9h
Y3R1YWwsIF9leHBlY3RlZCkKK3sKKyAgICBpZiAoX2V4cGVjdGVkID09PSAwKQorICAgICAgICBy
ZXR1cm4gX2FjdHVhbCA9PT0gX2V4cGVjdGVkICYmICgxL19hY3R1YWwpID09PSAoMS9fZXhwZWN0
ZWQpOworICAgIGlmIChfYWN0dWFsID09PSBfZXhwZWN0ZWQpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGlmICh0eXBlb2YoX2V4cGVjdGVkKSA9PSAibnVtYmVyIiAmJiBpc05hTihfZXhwZWN0
ZWQpKQorICAgICAgICByZXR1cm4gdHlwZW9mKF9hY3R1YWwpID09ICJudW1iZXIiICYmIGlzTmFO
KF9hY3R1YWwpOworICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoX2V4cGVj
dGVkKSA9PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoW10pKQorICAgICAgICByZXR1
cm4gYXJlQXJyYXlzRXF1YWwoX2FjdHVhbCwgX2V4cGVjdGVkKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Z1bmN0aW9uIHN0cmluZ2lmeSh2KQoreworICAgIGlmICh2ID09PSAwICYmIDEvdiA8
IDApCisgICAgICAgIHJldHVybiAiLTAiOworICAgIGVsc2UgcmV0dXJuICIiICsgdjsKK30KKwor
ZnVuY3Rpb24gZXZhbEFuZExvZyhfYSkKK3sKKyAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikK
KyAgICBkZWJ1ZygiV0FSTjogdHJ5QW5kTG9nKCkgZXhwZWN0cyBhIHN0cmluZyBhcmd1bWVudCIp
OworCisgIC8vIExvZyBmaXJzdCBpbiBjYXNlIHRoaW5ncyBnbyBob3JyaWJseSB3cm9uZyBvciB0
aGlzIGNhdXNlcyBhIHN5bmMgZXZlbnQuCisgIGRlYnVnKF9hKTsKKworICB2YXIgX2F2OworICB0
cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KKyAgcmV0dXJuIF9hdjsKK30K
KworZnVuY3Rpb24gc2hvdWxkQmVTdHJpbmcoZXZhbGFibGUsIGV4cGVjdGVkKSB7CisgICAgY29u
c3QgdmFsID0gZXZhbChldmFsYWJsZSk7CisgICAgY29uc3QgdGV4dCA9IGV2YWxhYmxlICsgIiBz
aG91bGQgYmUgIiArIGV4cGVjdGVkICsgIi4iOworICAgIGlmICh2YWwgPT0gZXhwZWN0ZWQpIHsK
KyAgICAgICAgdGVzdFBhc3NlZCh0ZXh0KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFp
bGVkKHRleHQgKyAiICh3YXMgIiArIHZhbCArICIpIik7CisgICAgfQorfQorCitmdW5jdGlvbiBz
aG91bGRCZShfYSwgX2IsIHF1aWV0KQoreworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIg
fHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUo
KSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZh
ciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChf
Yik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBl
bHNlIGlmIChpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CisgICAgICAgIGlmICghcXVpZXQp
IHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAgICAgIH0K
KyAgICB9IGVsc2UgaWYgKHR5cGVvZihfYXYpID09IHR5cGVvZihfYnYpKQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9h
dikgKyAiLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ICIgKyBfYnYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2J2ICsgIikuIFdhcyAiICsgX2F2ICsg
IiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOworfQorCitmdW5jdGlvbiBzaG91bGRO
b3RCZShfYSwgX2IsIHF1aWV0KQoreworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwg
dHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUo
KSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZh
ciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChf
Yik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgbm90IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Cisg
ICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFx
dWlldCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm90ICIgKyBfYik7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5v
dCBiZSAiICsgX2J2ICsgIi4iKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVUcnVlKF9hKSB7IHNo
b3VsZEJlKF9hLCAidHJ1ZSIpOyB9CitmdW5jdGlvbiBzaG91bGRCZUZhbHNlKF9hKSB7IHNob3Vs
ZEJlKF9hLCAiZmFsc2UiKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVOYU4oX2EpIHsgc2hvdWxkQmUo
X2EsICJOYU4iKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVOdWxsKF9hKSB7IHNob3VsZEJlKF9hLCAi
bnVsbCIpOyB9CisKK2Z1bmN0aW9uIHNob3VsZEJlRXF1YWxUb1N0cmluZyhhLCBiKQoreworICB2
YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyBiLnJlcGxhY2UoLyIvZywgIlwiIikgKyAnIic7Cisg
IHNob3VsZEJlKGEsIHVuZXZhbGVkU3RyaW5nKTsKK30KKworZnVuY3Rpb24gc2hvdWxkRXZhbHVh
dGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7CisgIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGNvbXBhcmF0
b3IuICAnYWN0dWFsJyBzaG91bGQgYmUgYSBzdHJpbmcgdG8gYmUKKyAgLy8gZXZhbHVhdGVkLCBh
cyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVjdGVkJyBtYXkgYmUgYW55IHR5cGUgYW5kIHdpbGwgYmUK
KyAgLy8gdXNlZCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuCisgIGlmIChleHBlY3RlZCA9PSBudWxs
KSB7CisgICAgLy8gRG8gdGhpcyBiZWZvcmUgdGhlIG9iamVjdCB0ZXN0LCBzaW5jZSBudWxsIGlz
IG9mIHR5cGUgJ29iamVjdCcuCisgICAgc2hvdWxkQmVOdWxsKGFjdHVhbCk7CisgIH0gZWxzZSBp
ZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1bmRlZmluZWQiKSB7CisgICAgc2hvdWxkQmVVbmRlZmlu
ZWQoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImZ1bmN0aW9uIikg
eworICAgIC8vIEFsbCB0aGlzIGZ1c3MgaXMgdG8gYXZvaWQgdGhlIHN0cmluZy1hcmcgd2Fybmlu
ZyBmcm9tIHNob3VsZEJlKCkuCisgICAgdHJ5IHsKKyAgICAgIHZhciBhY3R1YWxWYWx1ZSA9IGV2
YWwoYWN0dWFsKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICB0ZXN0RmFpbGVkKCJFdmFsdWF0
aW5nICIgKyBhY3R1YWwgKyAiOiBUaHJldyBleGNlcHRpb24gIiArIGUpOworICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBzaG91bGRCZSgiJyIgKyBhY3R1YWxWYWx1ZS50b1N0cmluZygpLnJlcGxh
Y2UoL1xuL2csICIiKSArICInIiwKKyAgICAgICAgICAgICAiJyIgKyBleHBlY3RlZC50b1N0cmlu
ZygpLnJlcGxhY2UoL1xuL2csICIiKSArICInIik7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVj
dGVkID09ICJvYmplY3QiKSB7CisgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCArICIgPT0gJyIgKyBl
eHBlY3RlZCArICInIik7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJzdHJpbmci
KSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCk7CisgIH0gZWxzZSBpZiAodHlwZW9m
IGV4cGVjdGVkID09ICJib29sZWFuIikgeworICAgIHNob3VsZEJlKCJ0eXBlb2YgIiArIGFjdHVh
bCwgIidib29sZWFuJyIpOworICAgIGlmIChleHBlY3RlZCkKKyAgICAgIHNob3VsZEJlVHJ1ZShh
Y3R1YWwpOworICAgIGVsc2UKKyAgICAgIHNob3VsZEJlRmFsc2UoYWN0dWFsKTsKKyAgfSBlbHNl
IGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm51bWJlciIpIHsKKyAgICBzaG91bGRCZShhY3R1YWws
IHN0cmluZ2lmeShleHBlY3RlZCkpOworICB9IGVsc2UgeworICAgIGRlYnVnKGV4cGVjdGVkICsg
IiBpcyB1bmtub3duIHR5cGUgIiArIHR5cGVvZiBleHBlY3RlZCk7CisgICAgc2hvdWxkQmVUcnVl
KGFjdHVhbCwgIiciICArZXhwZWN0ZWQudG9TdHJpbmcoKSArICInIik7CisgIH0KK30KKworZnVu
Y3Rpb24gc2hvdWxkQmVOb25aZXJvKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2
OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBl
eGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9h
ICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsK
KyAgZWxzZSBpZiAoX2F2ICE9IDApCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9uLXplcm8u
Iik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFdh
cyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVOb25OdWxsKF9hKQoreworICB2YXIg
ZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlv
bikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLW51bGwuIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2ICE9IG51bGwpCisgICAgdGVzdFBh
c3NlZChfYSArICIgaXMgbm9uLW51bGwuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxk
QmVVbmRlZmluZWQoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7
CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9
IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCBiZSB1bmRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBp
ZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyB1
bmRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5k
ZWZpbmVkLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlRGVmaW5lZChfYSkK
K3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZh
bChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlm
IChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFRo
cmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2ICE9PSB1bmRlZmlu
ZWQpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1
bmN0aW9uIHNob3VsZEJlTGVzc1RoYW5PckVxdWFsKF9hLCBfYikgeworICAgIGlmICh0eXBlb2Yg
X2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgICAgICBkZWJ1Zygi
V0FSTjogc2hvdWxkQmVMZXNzVGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7
CisKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAg
X2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBl
OworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQor
ICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPD0gIiArIF9iICsgIi4gVGhyZXcg
ZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVu
ZGVmaW5lZCIgfHwgX2F2ID4gX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgPj0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2
ICsgIikuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA8PSAiICsg
X2IpOworfQorCitmdW5jdGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpIHsK
KyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikK
KyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4cGVjdHMg
c3RyaW5nIGFyZ3VtZW50cyIpOworCisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2Owor
ICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisg
ICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49
ICIgKyBfYiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlm
ICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiIHx8IF9hdiA8IF9idikKKyAgICAgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAob2Yg
dHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgPj0gIiArIF9iKTsKK30KKworZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2LCBtc2cp
IHsKKyAgaWYgKHYpIHsKKyAgICB0ZXN0UGFzc2VkKG1zZyk7CisgIH0gZWxzZSB7CisgICAgdGVz
dEZhaWxlZChtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIG1heEFycmF5RGlmZihhLCBiKSB7Cisg
ICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGEg
YW5kIGIgaGF2ZSBkaWZmZXJlbnQgbGVuZ3RoczogJHthLmxlbmd0aH0gdnMgJHtiLmxlbmd0aH1g
KTsKKworICAgIGxldCBkaWZmID0gMDsKKyAgICBmb3IgKGNvbnN0IGkgaW4gYSkgeworICAgICAg
ICBkaWZmID0gTWF0aC5tYXgoZGlmZiwgTWF0aC5hYnMoYVtpXSAtIGJbaV0pKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGRpZmY7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdEFycmF5KHdhcywgZXhwZWN0ZWQs
IG1heERpZmY9MCkgeworICAgIGNvbnN0IGRpZmYgPSBtYXhBcnJheURpZmYoZXhwZWN0ZWQsIHdh
cyk7CisgICAgbGV0IHN0ciA9IGBFeHBlY3RlZCBbJHtleHBlY3RlZC50b1N0cmluZygpfV1gOwor
ICAgIGxldCBmbiA9IHRlc3RQYXNzZWQ7CisgICAgaWYgKG1heERpZmYpIHsKKyAgICAgICAgc3Ry
ICs9ICcgKy8tICcgKyBtYXhEaWZmOworICAgIH0KKyAgICBpZiAoZGlmZiA+IG1heERpZmYpIHsK
KyAgICAgICAgZm4gPSB0ZXN0RmFpbGVkOworICAgICAgICBzdHIgKz0gYCwgd2FzIFske3dhcy50
b1N0cmluZygpfV1gOworICAgIH0KKyAgICBmbihzdHIpOworfQorCitmdW5jdGlvbiBzaG91bGRU
aHJvdyhfYSwgX2UpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7Cisg
ICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7
CisgIH0KKworICB2YXIgX2V2OworICBpZiAoX2UpCisgICAgICBfZXYgPSAgZXZhbChfZSk7CisK
KyAgaWYgKGV4Y2VwdGlvbikgeworICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwg
ZXhjZXB0aW9uID09IF9ldikKKyAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlv
biAiICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgICBlbHNlCisgICAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0
aW9uIiA6IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Cisg
IH0gZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0RmFpbGVkKF9h
ICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhj
ZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8g
ImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOworfQorCitmdW5j
dGlvbiBzaG91bGROb3RUaHJvdyhldmFsU3RyLCBkZXNjKSB7CisgIGRlc2MgPSBkZXNjIHx8IGBc
YCR7ZXZhbFN0cn1cYGA7CisgIHRyeSB7CisgICAgZXZhbChldmFsU3RyKTsKKyAgICB0ZXN0UGFz
c2VkKGAke2Rlc2N9IHNob3VsZCBub3QgdGhyb3cuYCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0
ZXN0RmFpbGVkKGAke2Rlc2N9IHNob3VsZCBub3QgdGhyb3csIGJ1dCB0aHJldyBleGNlcHRpb24g
JHtlfS5gKTsKKyAgfQorfQorCisKK2Z1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpIHsK
KyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2
ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOwor
ICAgIH0KKworICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKworICAgIGlmKF90eXBldiA9
PT0gTnVtYmVyKXsKKyAgICAgICAgaWYoX2F2IGluc3RhbmNlb2YgTnVtYmVyKXsKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAg
ICB9CisgICAgICAgIGVsc2UgaWYodHlwZW9mKF9hdikgPT09ICdudW1iZXInKXsKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAg
ICB9CisgICAgICAgIGVsc2V7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3Qg
YW4gaW5zdGFuY2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAo
X2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFu
IGluc3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfQorfQorCisv
KioKKyAqIFNob3dzIGEgbWVzc2FnZSBpbiBjYXNlIGV4cHJlc3Npb24gdGVzdCBmYWlscy4KKyAq
IEBwYXJhbSB7Ym9vbGVhbn0gZXhwCisgKiBAcGFyYW0ge3N0cmFpbmd9IG1lc3NhZ2UKKyAqLwor
ZnVuY3Rpb24gY2hlY2tNZXNzYWdlKGV4cCwgbWVzc2FnZSkgeworICAgIGlmICggIWV4cCApCisg
ICAgICAgIF9hZGRTcGFuKCc8c3Bhbj48c3BhbiBjbGFzcz0id2FybiI+V0FSTklORzwvc3Bhbj4g
JyArIGVzY2FwZUhUTUwoX2N1cnJlbnRUZXN0TmFtZSkgKyAiOiAiICsgZXNjYXBlSFRNTChtZXNz
YWdlKSArICc8L3NwYW4+Jyk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydE1zZyhhc3NlcnRpb24sIG1z
ZykgeworICAgIGlmIChhc3NlcnRpb24pIHsKKyAgICAgICAgdGVzdFBhc3NlZChtc2cpOworICAg
IH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQobXNnKTsKKyAgICB9Cit9CisKKy8qKgorICog
VmFyaWF0aW9uIG9mIHRoZSBhc3NlcnRNc2cgZnVuY3Rpb24sIHdpdGggdGhlIG9wdGlvbiB0byBu
b3Qgc2hvdyAoYW5kIHRodXMgbm90IGNvdW50KSB0aGUgdGVzdCdzIHBhc3MgcmVzdWx0LAorICog
YW5kIHRocm93IG9yIG5vdCBhIFRlc3RGYWlsZWRFeGNlcHRpb24gaW4gY2FzZSBvZiBmYWlsdXJl
LgorICogQHBhcmFtIHtib29sZWFufSBhc3NlcnRpb24gSWYgdGhpcyBpcyB0cnVlLCBtZWFucyBz
dWNjZXNzLCBlbHNlIGZhaWx1cmUuCisgKiBAcGFyYW0gez9zdHJpbmd9IG1zZyBUaGUgbWVzc2Fn
ZSB0byBiZSBzaG93biBpbiB0aGUgcmVzdWx0LgorICogQHBhcmFtIHtib29sZWFufSB2ZXJib3Nl
IEluIGNhc2Ugb2Ygc3VjY2VzcywgZGV0ZXJtaW5lcyBpZiB0aGUgdGVzdCB3aWxsIHNob3cgaXQn
cyByZXN1bHQgYW5kIGNvdW50IGluIHRoZSByZXN1bHRzLgorICogQHBhcmFtIHtib29sZWFufSBl
eHRocm93IEluIGNhc2Ugb2YgZmFpbHVyZSwgZGV0ZXJtaW5lcyBpZiB0aGUgZnVuY3Rpb24gd2ls
bCB0aHJvdyBhIFRlc3RGYWlsZWRFeGNlcHRpb24uCisgKi8KK2Z1bmN0aW9uIGFzc2VydE1zZ09w
dGlvbnMoYXNzZXJ0aW9uLCBtc2csIHZlcmJvc2UsIGV4dGhyb3cpIHsKKyAgICBpZiAoYXNzZXJ0
aW9uKSB7CisgICAgICAgIHRlc3RQYXNzZWRPcHRpb25zKG1zZywgdmVyYm9zZSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZE9wdGlvbnMobXNnLCBleHRocm93KTsKKyAgICB9Cit9
CisKKworZnVuY3Rpb24gd2ViZ2xIYXJuZXNzQ29sbGVjdEdhcmJhZ2UoKSB7CisgICAgaWYgKHdp
bmRvdy5HQ0NvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2luZG93Lm9wZXJhICYmIHdp
bmRvdy5vcGVyYS5jb2xsZWN0KSB7CisgICAgICAgIHdpbmRvdy5vcGVyYS5jb2xsZWN0KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cuUXVlcnlJ
bnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSUludGVyZmFjZVJlcXVlc3RvcikKKyAg
ICAgICAgICAgICAgLmdldEludGVyZmFjZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJRE9NV2lu
ZG93VXRpbHMpCisgICAgICAgICAgICAgIC5nYXJiYWdlQ29sbGVjdCgpOworICAgICAgICByZXR1
cm47CisgICAgfSBjYXRjaChlKSB7fQorCisgICAgaWYgKHdpbmRvdy5nYykgeworICAgICAgICB3
aW5kb3cuZ2MoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh3aW5kb3cuQ29s
bGVjdEdhcmJhZ2UpIHsKKyAgICAgICAgQ29sbGVjdEdhcmJhZ2UoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIFdlYktpdCdzIE1pbmlCcm93c2VyLgorICAgIGlmICh3aW5kb3cu
JHZtKSB7CisgICAgICAgIHdpbmRvdy4kdm0uZ2MoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGdjUmVjKG4pIHsKKyAgICAgICAgaWYgKG4gPCAxKQorICAgICAgICAg
ICAgcmV0dXJuIHt9OworICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAw
MDAwKX07CisgICAgICAgIHRlbXAgKz0gImZvbyI7CisgICAgICAgIGdjUmVjKG4tMSk7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICBnY1JlYygxMCk7
Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgIHZhciBlcGlsb2d1ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwor
ICB2YXIgYmFzZVBhdGggPSAiIjsKKyAgdmFyIGV4cGVjdGVkQmFzZSA9ICJqcy10ZXN0LXByZS5q
cyI7CisgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Njcmlw
dCcpOworICBmb3IgKHZhciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKysp
IHsKKyAgICB2YXIgc3JjID0gc2NyaXB0LnNyYzsKKyAgICB2YXIgbCA9IHNyYy5sZW5ndGg7Cisg
ICAgaWYgKHNyYy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVjdGVkQmFz
ZSkgeworICAgICAgYmFzZVBhdGggPSBzcmMuc3Vic3RyKDAsIGwgLSBleHBlY3RlZEJhc2UubGVu
Z3RoKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICBlcGlsb2d1ZS5zcmMgPSBiYXNlUGF0
aCArICJqcy10ZXN0LXBvc3QuanMiOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVwaWxv
Z3VlKTsKK30KKworLy8vIFByZWZlciBgY2FsbCgoKSA9PiB7IC4uLiB9KWAgdG8gYCgoKSA9PiB7
IC4uLiB9KSgpYFwKKy8vLyBUaGlzIHdheSwgaXQncyBjbGVhciB1cC1mcm9udCB0aGF0IHdlJ3Jl
IGNhbGxpbmcgbm90IGp1c3QgZGVmaW5pbmcuCitmdW5jdGlvbiBjYWxsKGZuKSB7CisgICAgcmV0
dXJuIGZuKCk7Cit9CisKKy8vLyBgZm9yIChjb25zdCBpIG9mIHJhbmdlKDMpKWAgPT4gMCwgMSwg
MgorLy8vIERvbid0IHVzZSBgZm9yLi4uaW4gcmFuZ2UobilgLCBpdCB3aWxsIG5vdCB3b3JrLgor
ZnVuY3Rpb24qIHJhbmdlKG4pIHsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAg
ICB5aWVsZCBpOworICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFmZmExMDgyMzA0NGIxNjQ5MGUwZTM3
YmY4YWMyYjNjYzkxYzczYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5q
cwpAQCAtMCwwICsxLDM1NTIgQEAKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KK3ZhciBXZWJHTFRlc3RVdGlscyA9IChmdW5jdGlvbigpIHsKKyJ1c2Ugc3RyaWN0IjsK
KworLyoqCisgKiBXcmFwcGVkIGxvZ2dpbmcgZnVuY3Rpb24uCisgKiBAcGFyYW0ge3N0cmluZ30g
bXNnIFRoZSBtZXNzYWdlIHRvIGxvZy4KKyAqLwordmFyIGxvZyA9IGZ1bmN0aW9uKG1zZykgewor
ICBidWZmZXJlZExvZ1RvQ29uc29sZShtc2cpOworfTsKKworLyoqCisgKiBXcmFwcGVkIGxvZ2dp
bmcgZnVuY3Rpb24uCisgKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGxvZy4K
KyAqLwordmFyIGVycm9yID0gZnVuY3Rpb24obXNnKSB7CisgIC8vIEZvciB0aGUgdGltZSBiZWlu
ZywgZGl2ZXJ0aW5nIHRoaXMgdG8gd2luZG93LmNvbnNvbGUubG9nIHJhdGhlcgorICAvLyB0aGFu
IHdpbmRvdy5jb25zb2xlLmVycm9yLiBJZiBhbnlvbmUgY2FyZXMgZW5vdWdoIHRoZXkgY2FuCisg
IC8vIGdlbmVyYWxpemUgdGhlIG1lY2hhbmlzbSBpbiBqcy10ZXN0LXByZS5qcy4KKyAgbG9nKG1z
Zyk7Cit9OworCisvKioKKyAqIFR1cm4gb2ZmIGFsbCBsb2dnaW5nLgorICovCit2YXIgbG9nZ2lu
Z09mZiA9IGZ1bmN0aW9uKCkgeworICBsb2cgPSBmdW5jdGlvbigpIHt9OworICBlcnJvciA9IGZ1
bmN0aW9uKCkge307Cit9OworCitjb25zdCBFTlVNX05BTUVfUkVHRVggPSBSZWdFeHAoJ1tBLVpd
W0EtWjAtOV9dKicpOworY29uc3QgRU5VTV9OQU1FX0JZX1ZBTFVFID0ge307Citjb25zdCBFTlVN
X05BTUVfUFJPVE9UWVBFUyA9IG5ldyBNYXAoKTsKKworLyoqCisgKiBDb252ZXJ0cyBhIFdlYkdM
IGVudW0gdG8gYSBzdHJpbmcuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHZh
bHVlIFRoZSBlbnVtIHZhbHVlLgorICogQHJldHVybiB7c3RyaW5nfSBUaGUgZW51bSBhcyBhIHN0
cmluZy4KKyAqLwordmFyIGdsRW51bVRvU3RyaW5nID0gZnVuY3Rpb24oZ2xPckV4dCwgdmFsdWUp
IHsKKyAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpCisgICAgdGhyb3cgbmV3IEVycm9yKCdnbEVu
dW1Ub1N0cmluZzogYHZhbHVlYCBtdXN0IG5vdCBiZSB1bmRlZmluZWQnKTsKKworICBjb25zdCBw
cm90byA9IGdsT3JFeHQuX19wcm90b19fOworICBpZiAoIUVOVU1fTkFNRV9QUk9UT1RZUEVTLmhh
cyhwcm90bykpIHsKKyAgICBFTlVNX05BTUVfUFJPVE9UWVBFUy5zZXQocHJvdG8sIHRydWUpOwor
CisgICAgZm9yIChjb25zdCBrIGluIHByb3RvKSB7CisgICAgICBpZiAoIUVOVU1fTkFNRV9SRUdF
WC50ZXN0KGspKSBjb250aW51ZTsKKworICAgICAgY29uc3QgdiA9IGdsT3JFeHRba107CisgICAg
ICBpZiAoRU5VTV9OQU1FX0JZX1ZBTFVFW3ZdID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgRU5V
TV9OQU1FX0JZX1ZBTFVFW3ZdID0gazsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIEVOVU1fTkFN
RV9CWV9WQUxVRVt2XSArPSAnLycgKyBrOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGNvbnN0
IGtleSA9IEVOVU1fTkFNRV9CWV9WQUxVRVt2YWx1ZV07CisgIGlmIChrZXkgIT09IHVuZGVmaW5l
ZCkgcmV0dXJuIGtleTsKKworICByZXR1cm4gIjB4IiArIE51bWJlcih2YWx1ZSkudG9TdHJpbmco
MTYpOworfTsKKwordmFyIGxhc3RFcnJvciA9ICIiOworCisvKioKKyAqIFJldHVybnMgdGhlIGxh
c3QgY29tcGlsZXIvbGlua2VyIGVycm9yLgorICogQHJldHVybiB7c3RyaW5nfSBUaGUgbGFzdCBj
b21waWxlci9saW5rZXIgZXJyb3IuCisgKi8KK3ZhciBnZXRMYXN0RXJyb3IgPSBmdW5jdGlvbigp
IHsKKyAgcmV0dXJuIGxhc3RFcnJvcjsKK307CisKKy8qKgorICogV2hldGhlciBhIGhheXN0YWNr
IGVuZHMgd2l0aCBhIG5lZWRsZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBoYXlzdGFjayBTdHJpbmcg
dG8gc2VhcmNoCisgKiBAcGFyYW0ge3N0cmluZ30gbmVlZGxlIFN0cmluZyB0byBzZWFyY2ggZm9y
LgorICogQHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhheXN0YWNrIGVuZHMgd2l0aCBuZWVkbGUu
CisgKi8KK3ZhciBlbmRzV2l0aCA9IGZ1bmN0aW9uKGhheXN0YWNrLCBuZWVkbGUpIHsKKyAgcmV0
dXJuIGhheXN0YWNrLnN1YnN0cihoYXlzdGFjay5sZW5ndGggLSBuZWVkbGUubGVuZ3RoKSA9PT0g
bmVlZGxlOworfTsKKworLyoqCisgKiBXaGV0aGVyIGEgaGF5c3RhY2sgc3RhcnRzIHdpdGggYSBu
ZWVkbGUuCisgKiBAcGFyYW0ge3N0cmluZ30gaGF5c3RhY2sgU3RyaW5nIHRvIHNlYXJjaAorICog
QHBhcmFtIHtzdHJpbmd9IG5lZWRsZSBTdHJpbmcgdG8gc2VhcmNoIGZvci4KKyAqIEBwYXJhbSB7
Ym9vbGVhbn0gVHJ1ZSBpZiBoYXlzdGFjayBzdGFydHMgd2l0aCBuZWVkbGUuCisgKi8KK3ZhciBz
dGFydHNXaXRoID0gZnVuY3Rpb24oaGF5c3RhY2ssIG5lZWRsZSkgeworICByZXR1cm4gaGF5c3Rh
Y2suc3Vic3RyKDAsIG5lZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Cit9OworCisvKioKKyAqIEEg
dmVydGV4IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9Cisg
Ki8KK3ZhciBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyID0gWworICAnYXR0cmlidXRlIHZlYzQg
dlBvc2l0aW9uOycsCisgICdhdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZDA7JywKKyAgJ3Zhcnlpbmcg
dmVjMiB0ZXhDb29yZDsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcgICAgZ2xfUG9zaXRpb24g
PSB2UG9zaXRpb247JywKKyAgJyAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsnLAorICAnfSddLmpv
aW4oJ1xuJyk7CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJl
LgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXJF
U1NMMzAwID0gWworICAnI3ZlcnNpb24gMzAwIGVzJywKKyAgJ2xheW91dChsb2NhdGlvbj0wKSBp
biB2ZWM0IHZQb3NpdGlvbjsnLAorICAnbGF5b3V0KGxvY2F0aW9uPTEpIGluIHZlYzIgdGV4Q29v
cmQwOycsCisgICdvdXQgdmVjMiB0ZXhDb29yZDsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcg
ICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJyAgICB0ZXhDb29yZCA9IHRleENvb3Jk
MDsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFkZXIgZm9y
IGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxlVGV4
dHVyZUZyYWdtZW50U2hhZGVyID0gWworICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JywKKyAg
J3VuaWZvcm0gc2FtcGxlcjJEIHRleDsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisg
ICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHRleHR1cmUyRCh0ZXgs
IHRleENvb3JkKTsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBz
aGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIg
c2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyRVNTTDMwMCA9IFsKKyAgJyN2ZXJzaW9uIDMwMCBl
cycsCisgICdwcmVjaXNpb24gaGlnaHAgZmxvYXQ7JywKKyAgJ3VuaWZvcm0gaGlnaHAgc2FtcGxl
cjJEIHRleDsnLAorICAnaW4gdmVjMiB0ZXhDb29yZDsnLAorICAnb3V0IHZlYzQgb3V0X2NvbG9y
OycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBvdXRfY29sb3IgPSB0ZXh0dXJlKHRleCwg
dGV4Q29vcmQpOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIGZyYWdtZW50IHNo
YWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZSB3aXRoIGhpZ2ggcHJlY2lzaW9uLgorICogQHR5cGUg
e3N0cmluZ30KKyAqLwordmFyIHNpbXBsZUhpZ2hQcmVjaXNpb25UZXh0dXJlRnJhZ21lbnRTaGFk
ZXIgPSBbCisgICdwcmVjaXNpb24gaGlnaHAgZmxvYXQ7JywKKyAgJ3VuaWZvcm0gaGlnaHAgc2Ft
cGxlcjJEIHRleDsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisgICd2b2lkIG1haW4o
KSB7JywKKyAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKTsn
LAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIGEg
c2luZ2xlIGN1YmUgbWFwIHRleHR1cmUuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2lt
cGxlQ3ViZU1hcFRleHR1cmVGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OycsCisgICd1bmlmb3JtIHNhbXBsZXJDdWJlIHRleDsnLAorICAndW5pZm9ybSBoaWdo
cCBpbnQgZmFjZTsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisgICd2b2lkIG1haW4o
KSB7JywKKyAgLy8gVHJhbnNmb3JtIFswLCAxXSAtPiBbLTEsIDFdCisgICcgICAgdmVjMiB0ZXhD
MiA9ICh0ZXhDb29yZCAqIDIuKSAtIDEuOycsCisgIC8vIFRyYW5zZm9ybSAyZCB0ZXggY29vcmQu
IHRvIGVhY2ggZmFjZSBvZiBURVhUVVJFX0NVQkVfTUFQIGNvb3JkLgorICAnICAgIHZlYzMgdGV4
Q3ViZSA9IHZlYzMoMC4sIDAuLCAwLik7JywKKyAgJyAgICBpZiAoZmFjZSA9PSAzNDA2OSkgeycs
ICAgICAgICAgLy8gVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YCisgICcgICAgICAgIHRleEN1
YmUgPSB2ZWMzKDEuLCAtdGV4QzIueSwgLXRleEMyLngpOycsCisgICcgICAgfSBlbHNlIGlmIChm
YWNlID09IDM0MDcwKSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWAorICAnICAg
ICAgICB0ZXhDdWJlID0gdmVjMygtMS4sIC10ZXhDMi55LCB0ZXhDMi54KTsnLAorICAnICAgIH0g
ZWxzZSBpZiAoZmFjZSA9PSAzNDA3MSkgeycsICAvLyBURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZF
X1kKKyAgJyAgICAgICAgdGV4Q3ViZSA9IHZlYzModGV4QzIueCwgMS4sIHRleEMyLnkpOycsCisg
ICcgICAgfSBlbHNlIGlmIChmYWNlID09IDM0MDcyKSB7JywgIC8vIFRFWFRVUkVfQ1VCRV9NQVBf
TkVHQVRJVkVfWQorICAnICAgICAgICB0ZXhDdWJlID0gdmVjMyh0ZXhDMi54LCAtMS4sIC10ZXhD
Mi55KTsnLAorICAnICAgIH0gZWxzZSBpZiAoZmFjZSA9PSAzNDA3MykgeycsICAvLyBURVhUVVJF
X0NVQkVfTUFQX1BPU0lUSVZFX1oKKyAgJyAgICAgICAgdGV4Q3ViZSA9IHZlYzModGV4QzIueCwg
LXRleEMyLnksIDEuKTsnLAorICAnICAgIH0gZWxzZSBpZiAoZmFjZSA9PSAzNDA3NCkgeycsICAv
LyBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKKyAgJyAgICAgICAgdGV4Q3ViZSA9IHZlYzMo
LXRleEMyLngsIC10ZXhDMi55LCAtMS4pOycsCisgICcgICAgfScsCisgICcgICAgZ2xfRnJhZ0Rh
dGFbMF0gPSB0ZXh0dXJlQ3ViZSh0ZXgsIHRleEN1YmUpOycsCisgICd9J10uam9pbignXG4nKTsK
KworLyoqCisgKiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlw
ZSB7c3RyaW5nfQorICovCit2YXIgbm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBbCisg
ICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsn
LAorICAndm9pZCBtYWluKCkgeycsCisgICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywK
KyAgJyAgICB0ZXhDb29yZCA9IHZQb3NpdGlvbi54eSAqIDAuNSArIDAuNTsnLAorICAnfSddLmpv
aW4oJ1xuJyk7CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3Iu
CisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxlVmVydGV4U2hhZGVyID0gWworICAn
YXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBn
bF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICog
QSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCisgKiBAdHlwZSB7c3RyaW5nfQor
ICovCit2YXIgc2ltcGxlVmVydGV4U2hhZGVyRVNTTDMwMCA9IFsKKyAgJyN2ZXJzaW9uIDMwMCBl
cycsCisgICdpbiB2ZWM0IHZQb3NpdGlvbjsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcgICAg
Z2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAq
IEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCisgKiBAdHlwZSB7c3RyaW5n
fQorICovCit2YXIgc2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OycsCisgICd1bmlmb3JtIHZlYzQgdV9jb2xvcjsnLAorICAndm9pZCBtYWlu
KCkgeycsCisgICcgICAgZ2xfRnJhZ0RhdGFbMF0gPSB1X2NvbG9yOycsCisgICd9J10uam9pbign
XG4nKTsKKworLyoqCisgKiBBIGZyYWdtZW50IHNoYWRlciBmb3IgYSB1bmlmb3JtIGNvbG9yLgor
ICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXJFU1NM
MzAwID0gWworICAnI3ZlcnNpb24gMzAwIGVzJywKKyAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OycsCisgICdvdXQgdmVjNCBvdXRfY29sb3I7JywKKyAgJ3VuaWZvcm0gdmVjNCB1X2NvbG9yOycs
CisgICd2b2lkIG1haW4oKSB7JywKKyAgJyAgICBvdXRfY29sb3IgPSB1X2NvbG9yOycsCisgICd9
J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIHZlcnRleCBzaGFkZXIgZm9yIHZlcnRleCBjb2xv
cnMuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxlVmVydGV4Q29sb3JWZXJ0ZXhT
aGFkZXIgPSBbCisgICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ2F0dHJpYnV0ZSB2
ZWM0IGFfY29sb3I7JywKKyAgJ3ZhcnlpbmcgdmVjNCB2X2NvbG9yOycsCisgICd2b2lkIG1haW4o
KSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnICAgIHZfY29sb3Ig
PSBhX2NvbG9yOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIGZyYWdtZW50IHNo
YWRlciBmb3IgdmVydGV4IGNvbG9ycy4KKyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1w
bGVWZXJ0ZXhDb2xvckZyYWdtZW50U2hhZGVyID0gWworICAncHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7JywKKyAgJ3ZhcnlpbmcgdmVjNCB2X2NvbG9yOycsCisgICd2b2lkIG1haW4oKSB7JywKKyAg
JyAgICBnbF9GcmFnRGF0YVswXSA9IHZfY29sb3I7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisv
KioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyBzaGFkZXJzLCBiaW5kcyBhdHRyaWIg
bG9jYXRpb25zLCBsaW5rcyB0aGUKKyAqIHByb2dyYW0gYW5kIGNhbGxzIHVzZVByb2dyYW0uCisg
KiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPCFXZWJHTFNoYWRlcnxzdHJpbmc+fSBz
aGFkZXJzIFRoZSBzaGFkZXJzIHRvCisgKiAgICAgICAgYXR0YWNoLCBvciB0aGUgc291cmNlLCBv
ciB0aGUgaWQgb2YgYSBzY3JpcHQgdG8gZ2V0CisgKiAgICAgICAgdGhlIHNvdXJjZSBmcm9tLgor
ICogQHBhcmFtIHshQXJyYXkuPHN0cmluZz59IG9wdF9hdHRyaWJzIFRoZSBhdHRyaWJzIG5hbWVz
LgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IG9wdF9sb2NhdGlvbnMgVGhlIGxvY2F0aW9u
cyBmb3IgdGhlIGF0dHJpYnMuCisgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdF9sb2dTaGFkZXJzIFdo
ZXRoZXIgdG8gbG9nIHNoYWRlciBzb3VyY2UuCisgKi8KK3ZhciBzZXR1cFByb2dyYW0gPSBmdW5j
dGlvbigKKyAgICBnbCwgc2hhZGVycywgb3B0X2F0dHJpYnMsIG9wdF9sb2NhdGlvbnMsIG9wdF9s
b2dTaGFkZXJzKSB7CisgIHZhciByZWFsU2hhZGVycyA9IFtdOworICB2YXIgcHJvZ3JhbSA9IGds
LmNyZWF0ZVByb2dyYW0oKTsKKyAgdmFyIHNoYWRlckNvdW50ID0gMDsKKyAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IHNoYWRlcnMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHNoYWRlciA9IHNoYWRl
cnNbaWldOworICAgIHZhciBzaGFkZXJUeXBlID0gdW5kZWZpbmVkOworICAgIGlmICh0eXBlb2Yg
c2hhZGVyID09ICdzdHJpbmcnKSB7CisgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKHNoYWRlcik7CisgICAgICBpZiAoZWxlbWVudCkgeworICAgICAgICBpZiAoZWxl
bWVudC50eXBlICE9ICJ4LXNoYWRlci94LXZlcnRleCIgJiYgZWxlbWVudC50eXBlICE9ICJ4LXNo
YWRlci94LWZyYWdtZW50IikKKyAgICAgICAgICBzaGFkZXJUeXBlID0gaWkgPyBnbC5GUkFHTUVO
VF9TSEFERVIgOiBnbC5WRVJURVhfU0hBREVSOworICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVy
RnJvbVNjcmlwdChnbCwgc2hhZGVyLCBzaGFkZXJUeXBlLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFk
ZXJzKTsKKyAgICAgIH0gZWxzZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLnZlcnQiKSkgeworICAg
ICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuVkVSVEVYX1NI
QURFUiwgdW5kZWZpbmVkLCBvcHRfbG9nU2hhZGVycyk7CisgICAgICB9IGVsc2UgaWYgKGVuZHNX
aXRoKHNoYWRlciwgIi5mcmFnIikpIHsKKyAgICAgICAgc2hhZGVyID0gbG9hZFNoYWRlckZyb21G
aWxlKGdsLCBzaGFkZXIsIGdsLkZSQUdNRU5UX1NIQURFUiwgdW5kZWZpbmVkLCBvcHRfbG9nU2hh
ZGVycyk7CisgICAgICB9IGVsc2UgeworICAgICAgICBzaGFkZXIgPSBsb2FkU2hhZGVyKGdsLCBz
aGFkZXIsIGlpID8gZ2wuRlJBR01FTlRfU0hBREVSIDogZ2wuVkVSVEVYX1NIQURFUiwgdW5kZWZp
bmVkLCBvcHRfbG9nU2hhZGVycyk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChvcHRfbG9nU2hh
ZGVycykgeworICAgICAgdGhyb3cgJ1NoYWRlciBzb3VyY2UgbG9nZ2luZyByZXF1ZXN0ZWQgYnV0
IG5vIHNoYWRlciBzb3VyY2UgcHJvdmlkZWQnOworICAgIH0KKyAgICBpZiAoc2hhZGVyKSB7Cisg
ICAgICArK3NoYWRlckNvdW50OworICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRl
cik7CisgICAgfQorICB9CisgIGlmIChzaGFkZXJDb3VudCAhPSAyKSB7CisgICAgZXJyb3IoIkVy
cm9yIGluIGNvbXBpbGluZyBzaGFkZXIiKTsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorICBpZiAo
b3B0X2F0dHJpYnMpIHsKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgb3B0X2F0dHJpYnMubGVu
Z3RoOyArK2lpKSB7CisgICAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24oCisgICAgICAgICAgcHJv
Z3JhbSwKKyAgICAgICAgICBvcHRfbG9jYXRpb25zID8gb3B0X2xvY2F0aW9uc1tpaV0gOiBpaSwK
KyAgICAgICAgICBvcHRfYXR0cmlic1tpaV0pOworICAgIH0KKyAgfQorICBnbC5saW5rUHJvZ3Jh
bShwcm9ncmFtKTsKKworICAvLyBDaGVjayB0aGUgbGluayBzdGF0dXMKKyAgdmFyIGxpbmtlZCA9
IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpOworICBpZiAo
IWxpbmtlZCkgeworICAgICAgLy8gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgbGluawor
ICAgICAgbGFzdEVycm9yID0gZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cgKHByb2dyYW0pOworICAgICAg
ZXJyb3IoIkVycm9yIGluIHByb2dyYW0gbGlua2luZzoiICsgbGFzdEVycm9yKTsKKworICAgICAg
Z2wuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKKyAgICAgIHJldHVybiBudWxsOworICB9CisKKyAg
Z2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAq
IENyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyBzaGFkZXIsIHNldHMgdXAgdHJhc25mb3JtIGZl
ZWRiYWNrIHZhcnlpbmdzLAorICogYmluZHMgYXR0cmliIGxvY2F0aW9ucywgbGlua3MgdGhlIHBy
b2dyYW0gYW5kIGNhbGxzIHVzZVByb2dyYW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHsh
QXJyYXkuPCFXZWJHTFNoYWRlcnxzdHJpbmc+fSBzaGFkZXJzIFRoZSBzaGFkZXJzIHRvCisgKiAg
ICAgICAgYXR0YWNoLCBvciB0aGUgc291cmNlLCBvciB0aGUgaWQgb2YgYSBzY3JpcHQgdG8gZ2V0
CisgKiAgICAgICAgdGhlIHNvdXJjZSBmcm9tLgorICogQHBhcmFtIHshQXJyYXkuPHN0cmluZz59
IHZhcnlpbmdzIFRoZSB0cmFuc2Zvcm0gZmVlZGJhY2sgdmFyeWluZyBuYW1lcy4KKyAqIEBwYXJh
bSB7bnVtYmVyfSBidWZmZXJNb2RlIFRoZSBtb2RlIHVzZWQgdG8gY2FwdHVyZSB0aGUgdmFyeWlu
ZyB2YXJpYWJsZXMuCisgKiBAcGFyYW0geyFBcnJheS48c3RyaW5nPn0gb3B0X2F0dHJpYnMgVGhl
IGF0dHJpYnMgbmFtZXMuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2xvY2F0aW9u
cyBUaGUgbG9jYXRpb25zIGZvciB0aGUgYXR0cmlicy4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0
X2xvZ1NoYWRlcnMgV2hldGhlciB0byBsb2cgc2hhZGVyIHNvdXJjZS4KKyAqLwordmFyIHNldHVw
VHJhbnNmb3JtRmVlZGJhY2tQcm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIHNoYWRlcnMsIHZh
cnlpbmdzLCBidWZmZXJNb2RlLCBvcHRfYXR0cmlicywgb3B0X2xvY2F0aW9ucywgb3B0X2xvZ1No
YWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cykgeworICB2YXIgcmVhbFNoYWRlcnMgPSBbXTsK
KyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgIHZhciBzaGFkZXJDb3VudCA9
IDA7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBzaGFkZXJzLmxlbmd0aDsgKytpaSkgeworICAg
IHZhciBzaGFkZXIgPSBzaGFkZXJzW2lpXTsKKyAgICB2YXIgc2hhZGVyVHlwZSA9IHVuZGVmaW5l
ZDsKKyAgICBpZiAodHlwZW9mIHNoYWRlciA9PSAnc3RyaW5nJykgeworICAgICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzaGFkZXIpOworICAgICAgaWYgKGVsZW1lbnQp
IHsKKyAgICAgICAgaWYgKGVsZW1lbnQudHlwZSAhPSAieC1zaGFkZXIveC12ZXJ0ZXgiICYmIGVs
ZW1lbnQudHlwZSAhPSAieC1zaGFkZXIveC1mcmFnbWVudCIpCisgICAgICAgICAgc2hhZGVyVHlw
ZSA9IGlpID8gZ2wuRlJBR01FTlRfU0hBREVSIDogZ2wuVkVSVEVYX1NIQURFUjsKKyAgICAgICAg
c2hhZGVyID0gbG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIHNoYWRlciwgc2hhZGVyVHlwZSwgdW5k
ZWZpbmVkLCBvcHRfbG9nU2hhZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKKyAgICAgIH0g
ZWxzZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLnZlcnQiKSkgeworICAgICAgICBzaGFkZXIgPSBs
b2FkU2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUiwgdW5kZWZpbmVk
LCBvcHRfbG9nU2hhZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKKyAgICAgIH0gZWxzZSBp
ZiAoZW5kc1dpdGgoc2hhZGVyLCAiLmZyYWciKSkgeworICAgICAgICBzaGFkZXIgPSBsb2FkU2hh
ZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSLCB1bmRlZmluZWQsIG9w
dF9sb2dTaGFkZXJzLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpOworICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgc2hhZGVyID0gbG9hZFNoYWRlcihnbCwgc2hhZGVyLCBpaSA/IGdsLkZSQUdNRU5UX1NI
QURFUiA6IGdsLlZFUlRFWF9TSEFERVIsIHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRlcnMsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpOworICAgICAgfQorICAgIH0g
ZWxzZSBpZiAob3B0X2xvZ1NoYWRlcnMpIHsKKyAgICAgIHRocm93ICdTaGFkZXIgc291cmNlIGxv
Z2dpbmcgcmVxdWVzdGVkIGJ1dCBubyBzaGFkZXIgc291cmNlIHByb3ZpZGVkJzsKKyAgICB9Cisg
ICAgaWYgKHNoYWRlcikgeworICAgICAgKytzaGFkZXJDb3VudDsKKyAgICAgIGdsLmF0dGFjaFNo
YWRlcihwcm9ncmFtLCBzaGFkZXIpOworICAgIH0KKyAgfQorICBpZiAoc2hhZGVyQ291bnQgIT0g
MikgeworICAgIGVycm9yKCJFcnJvciBpbiBjb21waWxpbmcgc2hhZGVyIik7CisgICAgcmV0dXJu
IG51bGw7CisgIH0KKworICBpZiAob3B0X2F0dHJpYnMpIHsKKyAgICBmb3IgKHZhciBpaSA9IDA7
IGlpIDwgb3B0X2F0dHJpYnMubGVuZ3RoOyArK2lpKSB7CisgICAgICBnbC5iaW5kQXR0cmliTG9j
YXRpb24oCisgICAgICAgICAgcHJvZ3JhbSwKKyAgICAgICAgICBvcHRfbG9jYXRpb25zID8gb3B0
X2xvY2F0aW9uc1tpaV0gOiBpaSwKKyAgICAgICAgICBvcHRfYXR0cmlic1tpaV0pOworICAgIH0K
KyAgfQorCisgIGdsLnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MocHJvZ3JhbSwgdmFyeWluZ3Ms
IGJ1ZmZlck1vZGUpOworCisgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworCisgIC8vIENoZWNr
IHRoZSBsaW5rIHN0YXR1cworICB2YXIgbGlua2VkID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihw
cm9ncmFtLCBnbC5MSU5LX1NUQVRVUyk7CisgIGlmICghbGlua2VkKSB7CisgICAgICAvLyBzb21l
dGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSBsaW5rCisgICAgICBsYXN0RXJyb3IgPSBnbC5nZXRQ
cm9ncmFtSW5mb0xvZyAocHJvZ3JhbSk7CisgICAgICBlcnJvcigiRXJyb3IgaW4gcHJvZ3JhbSBs
aW5raW5nOiIgKyBsYXN0RXJyb3IpOworCisgICAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0p
OworICAgICAgcmV0dXJuIG51bGw7CisgIH0KKworICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwor
ICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJl
IHByb2dyYW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQorICov
Cit2YXIgc2V0dXBOb1RleENvb3JkVGV4dHVyZVByb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICBy
ZXR1cm4gc2V0dXBQcm9ncmFtKGdsLAorICAgICAgICAgICAgICAgICAgICAgIFtub1RleENvb3Jk
VGV4dHVyZVZlcnRleFNoYWRlciwgc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyXSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbJ3ZQb3NpdGlvbiddLAorICAgICAgICAgICAgICAgICAgICAgIFsw
XSk7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSBwcm9ncmFtLgorICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUg
YXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4
Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAq
IEBwYXJhbSB7c3RyaW5nfSBvcHRfZnJhZ21lbnRTaGFkZXJPdmVycmlkZSBUaGUgYWx0ZXJuYXRp
dmUgZnJhZ21lbnQgc2hhZGVyIHRvIHVzZS4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAq
LwordmFyIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0gPSBmdW5jdGlvbigKKyAgICBnbCwgb3B0
X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uLCBvcHRfZnJhZ21lbnRTaGFk
ZXJPdmVycmlkZSkgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0
aW9uIHx8IDA7CisgIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3JkTG9jYXRpb24g
fHwgMTsKKyAgb3B0X2ZyYWdtZW50U2hhZGVyT3ZlcnJpZGUgPSBvcHRfZnJhZ21lbnRTaGFkZXJP
dmVycmlkZSB8fCBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXI7CisgIHJldHVybiBzZXR1cFBy
b2dyYW0oZ2wsCisgICAgICAgICAgICAgICAgICAgICAgW3NpbXBsZVRleHR1cmVWZXJ0ZXhTaGFk
ZXIsIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlXSwKKyAgICAgICAgICAgICAgICAgICAgICBb
J3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwKKyAgICAgICAgICAgICAgICAgICAgICBbb3B0X3Bv
c2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uXSk7Cit9OworCisvKioKKyAqIENy
ZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSBwcm9ncmFtIHVzaW5nIGdsc2wgdmVyc2lvbiAzMDAuCisg
KiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRo
ZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF90
ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRzLgor
ICogQHBhcmFtIHtzdHJpbmd9IG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlIFRoZSBhbHRlcm5h
dGl2ZSBmcmFnbWVudCBzaGFkZXIgdG8gdXNlLgorICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQor
ICovCit2YXIgc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbUVTU0wzMDAgPSBmdW5jdGlvbigKKyAg
ICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uLCBvcHRfZnJh
Z21lbnRTaGFkZXJPdmVycmlkZSkgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIHx8IDA7CisgIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3Jk
TG9jYXRpb24gfHwgMTsKKyAgb3B0X2ZyYWdtZW50U2hhZGVyT3ZlcnJpZGUgPSBvcHRfZnJhZ21l
bnRTaGFkZXJPdmVycmlkZSB8fCBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXJFU1NMMzAwOwor
ICByZXR1cm4gc2V0dXBQcm9ncmFtKGdsLAorICAgICAgICAgICAgICAgICAgICAgIFtzaW1wbGVU
ZXh0dXJlVmVydGV4U2hhZGVyRVNTTDMwMCwgb3B0X2ZyYWdtZW50U2hhZGVyT3ZlcnJpZGVdLAor
ICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAorICAgICAg
ICAgICAgICAgICAgICAgIFtvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRp
b25dKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSBjdWJlIG1hcCB0ZXh0dXJlIHBy
b2dyYW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJl
bmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxv
Y2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFtIHtudW1i
ZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUg
Y29vcmRzLgorICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBTaW1wbGVD
dWJlTWFwVGV4dHVyZVByb2dyYW0gPSBmdW5jdGlvbigKKyAgICBnbCwgb3B0X3Bvc2l0aW9uTG9j
YXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKSB7CisgIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0g
b3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKKyAgb3B0X3RleGNvb3JkTG9jYXRpb24gPSBvcHRf
dGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICByZXR1cm4gc2V0dXBQcm9ncmFtKGdsLAorICAgICAg
ICAgICAgICAgICAgICAgIFtzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyLCBzaW1wbGVDdWJlTWFw
VGV4dHVyZUZyYWdtZW50U2hhZGVyXSwKKyAgICAgICAgICAgICAgICAgICAgICBbJ3ZQb3NpdGlv
bicsICd0ZXhDb29yZDAnXSwKKyAgICAgICAgICAgICAgICAgICAgICBbb3B0X3Bvc2l0aW9uTG9j
YXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uXSk7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBz
aW1wbGUgdmVydGV4IGNvbG9yIHByb2dyYW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtu
dW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0
aW9uLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uIFRoZSBhdHRy
aWIgbG9jYXRpb24KKyAqICAgICAgICBmb3IgdmVydGV4IGNvbG9ycy4KKyAqIEByZXR1cm4ge1dl
YkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JQcm9ncmFtID0gZnVu
Y3Rpb24oCisgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdmVydGV4Q29sb3JMb2Nh
dGlvbikgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8
IDA7CisgIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uID0gb3B0X3ZlcnRleENvbG9yTG9jYXRpb24g
fHwgMTsKKyAgcmV0dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAgICAgICAgICAgICAgICBb
c2ltcGxlVmVydGV4Q29sb3JWZXJ0ZXhTaGFkZXIsIHNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRT
aGFkZXJdLAorICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJywgJ2FfY29sb3InXSwK
KyAgICAgICAgICAgICAgICAgICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF92ZXJ0ZXhD
b2xvckxvY2F0aW9uXSk7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBzaW1wbGUgY29sb3IgcHJv
Z3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9j
YXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcmV0dXJuIHtXZWJH
TFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbSA9IGZ1bmN0aW9uKGds
LCBvcHRfcG9zaXRpb25Mb2NhdGlvbikgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9w
b3NpdGlvbkxvY2F0aW9uIHx8IDA7CisgIHJldHVybiBzZXR1cFByb2dyYW0oZ2wsCisgICAgICAg
ICAgICAgICAgICAgICAgW3NpbXBsZVZlcnRleFNoYWRlciwgc2ltcGxlQ29sb3JGcmFnbWVudFNo
YWRlcl0sCisgICAgICAgICAgICAgICAgICAgICAgWyd2UG9zaXRpb24nXSwKKyAgICAgICAgICAg
ICAgICAgICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb25dKTsKK307CisKKy8qKgorICogQ3JlYXRl
cyBidWZmZXJzIGZvciBhIHRleHR1cmVkIHVuaXQgcXVhZCBhbmQgYXR0YWNoZXMgdGhlbSB0byB2
ZXJ0ZXggYXR0cmlicy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhl
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bv
c2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFy
YW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3Ig
dGV4dHVyZSBjb29yZHMuCisgKiBAcGFyYW0geyFPYmplY3R9IHZhcmlvdXMgb3B0aW9ucy4gU2Vl
IHNldHVwUXVhZCBmb3IgZGV0YWlscy4KKyAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+
fSBUaGUgYnVmZmVyIG9iamVjdHMgdGhhdCB3ZXJlCisgKiAgICAgIGNyZWF0ZWQuCisgKi8KK3Zh
ciBzZXR1cFVuaXRRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRf
dGV4Y29vcmRMb2NhdGlvbiwgb3B0aW9ucykgeworICByZXR1cm4gc2V0dXBRdWFkV2l0aFRleENv
b3JkcyhnbCwgWyAwLjAsIDAuMCBdLCBbIDEuMCwgMS4wIF0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7Cit9OworCisvKioKKyAq
IENyZWF0ZXMgYnVmZmVycyBmb3IgYSB0ZXh0dXJlZCBxdWFkIHdpdGggc3BlY2lmaWVkIGxvd2Vy
IGxlZnQKKyAqIGFuZCB1cHBlciByaWdodCB0ZXh0dXJlIGNvb3JkaW5hdGVzLCBhbmQgYXR0YWNo
ZXMgdGhlbSB0byB2ZXJ0ZXgKKyAqIGF0dHJpYnMuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmlu
Z0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFt
IHshQXJyYXkuPG51bWJlcj59IGxvd2VyTGVmdFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGlu
YXRlcyBmb3IgdGhlIGxvd2VyIGxlZnQgY29ybmVyLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJl
cj59IHVwcGVyUmlnaHRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSB1
cHBlciByaWdodCBjb3JuZXIuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRp
b24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0g
b3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29y
ZHMuCisgKiBAcGFyYW0geyFPYmplY3R9IHZhcmlvdXMgb3B0aW9ucy4gU2VlIHNldHVwUXVhZCBm
b3IgZGV0YWlscy4KKyAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+fSBUaGUgYnVmZmVy
IG9iamVjdHMgdGhhdCB3ZXJlCisgKiAgICAgIGNyZWF0ZWQuCisgKi8KK3ZhciBzZXR1cFF1YWRX
aXRoVGV4Q29vcmRzID0gZnVuY3Rpb24oCisgICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBw
ZXJSaWdodFRleENvb3JkcywKKyAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3Jk
TG9jYXRpb24sIG9wdGlvbnMpIHsKKyAgdmFyIGRlZmF1bHRPcHRpb25zID0geworICAgIHBvc2l0
aW9uTG9jYXRpb246IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDAsCisgICAgdGV4Y29vcmRMb2Nh
dGlvbjogb3B0X3RleGNvb3JkTG9jYXRpb24gfHwgMSwKKyAgICBsb3dlckxlZnRUZXhDb29yZHM6
IGxvd2VyTGVmdFRleENvb3JkcywKKyAgICB1cHBlclJpZ2h0VGV4Q29vcmRzOiB1cHBlclJpZ2h0
VGV4Q29vcmRzCisgIH07CisgIGlmIChvcHRpb25zKSB7CisgICAgZm9yICh2YXIgcHJvcCBpbiBv
cHRpb25zKSB7CisgICAgICBkZWZhdWx0T3B0aW9uc1twcm9wXSA9IG9wdGlvbnNbcHJvcF0KKyAg
ICB9CisgIH0KKyAgcmV0dXJuIHNldHVwUXVhZChnbCwgZGVmYXVsdE9wdGlvbnMpOworfTsKKwor
LyoqCisgKiBNYWtlcyBhIHF1YWQgd2l0aCB2YXJpb3VzIG9wdGlvbnMuCisgKiBAcGFyYW0geyFX
ZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNl
LgorICogQHBhcmFtIHshT2JqZWN0fSBvcHRpb25zCisgKgorICogc2NhbGU6IHNjYWxlIHRvIG11
bHRpcGx5IHVuaXQgcXVhZCB2YWx1ZXMgYnkuIGRlZmF1bHQgMS4wLgorICogcG9zaXRpb25Mb2Nh
dGlvbjogYXR0cmlidXRlIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIHRleGNvb3JkTG9jYXRp
b246IGF0dHJpYnV0ZSBsb2NhdGlvbiBmb3IgdGV4Y29vcmRzLgorICogICAgIElmIHRoaXMgZG9l
cyBub3QgZXhpc3Qgbm8gdGV4dHVyZSBjb29yZHMgYXJlIGNyZWF0ZWQuCisgKiBsb3dlckxlZnRU
ZXhDb29yZHM6IGFuIGFycmF5IG9mIDIgdmFsdWVzIGZvciB0aGUKKyAqICAgICBsb3dlckxlZnRU
ZXhDb29yZHMuCisgKiB1cHBlclJpZ2h0VGV4Q29vcmRzOiBhbiBhcnJheSBvZiAyIHZhbHVlcyBm
b3IgdGhlCisgKiAgICAgdXBwZXJSaWdodFRleENvb3Jkcy4KKyAqLwordmFyIHNldHVwUXVhZCA9
IGZ1bmN0aW9uKGdsLCBvcHRpb25zKSB7CisgIHZhciBwb3NpdGlvbkxvY2F0aW9uID0gb3B0aW9u
cy5wb3NpdGlvbkxvY2F0aW9uIHx8IDA7CisgIHZhciBzY2FsZSA9IG9wdGlvbnMuc2NhbGUgfHwg
MTsKKworICB2YXIgb2JqZWN0cyA9IFtdOworCisgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVj
dCk7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsK
KyAgICAgICAxLjAgKiBzY2FsZSAsICAxLjAgKiBzY2FsZSwKKyAgICAgIC0xLjAgKiBzY2FsZSAs
ICAxLjAgKiBzY2FsZSwKKyAgICAgIC0xLjAgKiBzY2FsZSAsIC0xLjAgKiBzY2FsZSwKKyAgICAg
ICAxLjAgKiBzY2FsZSAsICAxLjAgKiBzY2FsZSwKKyAgICAgIC0xLjAgKiBzY2FsZSAsIC0xLjAg
KiBzY2FsZSwKKyAgICAgICAxLjAgKiBzY2FsZSAsIC0xLjAgKiBzY2FsZV0pLCBnbC5TVEFUSUNf
RFJBVyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRpb24pOwor
ICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRpb24sIDIsIGdsLkZMT0FULCBm
YWxzZSwgMCwgMCk7CisgIG9iamVjdHMucHVzaCh2ZXJ0ZXhPYmplY3QpOworCisgIGlmIChvcHRp
b25zLnRleGNvb3JkTG9jYXRpb24gIT09IHVuZGVmaW5lZCkgeworICAgIHZhciBsbHggPSBvcHRp
b25zLmxvd2VyTGVmdFRleENvb3Jkc1swXTsKKyAgICB2YXIgbGx5ID0gb3B0aW9ucy5sb3dlckxl
ZnRUZXhDb29yZHNbMV07CisgICAgdmFyIHVyeCA9IG9wdGlvbnMudXBwZXJSaWdodFRleENvb3Jk
c1swXTsKKyAgICB2YXIgdXJ5ID0gb3B0aW9ucy51cHBlclJpZ2h0VGV4Q29vcmRzWzFdOworCisg
ICAgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJB
WV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAgICB1cngsIHVyeSwKKyAgICAgICAg
bGx4LCB1cnksCisgICAgICAgIGxseCwgbGx5LAorICAgICAgICB1cngsIHVyeSwKKyAgICAgICAg
bGx4LCBsbHksCisgICAgICAgIHVyeCwgbGx5XSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5l
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheShvcHRpb25zLnRleGNvb3JkTG9jYXRpb24pOworICAgIGds
LnZlcnRleEF0dHJpYlBvaW50ZXIob3B0aW9ucy50ZXhjb29yZExvY2F0aW9uLCAyLCBnbC5GTE9B
VCwgZmFsc2UsIDAsIDApOworICAgIG9iamVjdHMucHVzaCh2ZXJ0ZXhPYmplY3QpOworICB9CisK
KyAgcmV0dXJuIG9iamVjdHM7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtIGFuZCBi
dWZmZXJzIGZvciByZW5kZXJpbmcgYSB0ZXh0dXJlZCBxdWFkLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvcgorICogICAgICAgIHBvc2l0aW9uLiBEZWZhdWx0ID0gMC4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvcgorICogICAgICAg
IHRleHR1cmUgY29vcmRzLiBEZWZhdWx0ID0gMS4KKyAqIEBwYXJhbSB7IU9iamVjdH0gdmFyaW91
cyBvcHRpb25zIGRlZmluZWQgYnkgc2V0dXBRdWFkLCBwbHVzIGFuIG9wdGlvbgorICAgICAgICAg
IGZyYWdtZW50U2hhZGVyT3ZlcnJpZGUgdG8gc3BlY2lmeSBhIGN1c3RvbSBmcmFnbWVudCBzaGFk
ZXIuCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBUZXh0dXJlZFF1
YWQgPSBmdW5jdGlvbigKKyAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29y
ZExvY2F0aW9uLCBvcHRpb25zKSB7CisgIHZhciBwcm9ncmFtID0gc2V0dXBTaW1wbGVUZXh0dXJl
UHJvZ3JhbSgKKyAgICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9j
YXRpb24sIG9wdGlvbnMgJiYgb3B0aW9ucy5mcmFnbWVudFNoYWRlck92ZXJyaWRlKTsKKyAgc2V0
dXBVbml0UXVhZChnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9u
LCBvcHRpb25zKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBw
cm9ncmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSBjb2xvciBxdWFkLgorICogQHBhcmFt
IHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRv
IHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmli
IGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7IU9iamVjdH0gdmFyaW91cyBvcHRp
b25zLiBTZWUgc2V0dXBRdWFkIGZvciBkZXRhaWxzLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3Jh
bX0KKyAqLwordmFyIHNldHVwQ29sb3JRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLCBvcHRpb25zKSB7CisgIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9u
TG9jYXRpb24gfHwgMDsKKyAgdmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbShn
bCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24pOworICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9zaXRp
b25Mb2NhdGlvbiwgMCwgb3B0aW9ucyk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisg
KiBDcmVhdGVzIGEgcHJvZ3JhbSBhbmQgYnVmZmVycyBmb3IgcmVuZGVyaW5nIGEgdGV4dHVyZWQg
cXVhZCB3aXRoCisgKiBzcGVjaWZpZWQgbG93ZXIgbGVmdCBhbmQgdXBwZXIgcmlnaHQgdGV4dHVy
ZSBjb29yZGluYXRlcy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhl
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVy
Pn0gbG93ZXJMZWZ0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgbG93
ZXIgbGVmdCBjb3JuZXIuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gdXBwZXJSaWdodFRl
eENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBmb3IgdGhlIHVwcGVyIHJpZ2h0IGNvcm5l
ci4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxv
Y2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2Nh
dGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAqIEByZXR1cm4g
eyFXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFRleHR1cmVkUXVhZFdpdGhUZXhDb29yZHMg
PSBmdW5jdGlvbigKKyAgICBnbCwgbG93ZXJMZWZ0VGV4Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29v
cmRzLAorICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikgewor
ICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0oCisgICAgICBnbCwgb3B0
X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKKyAgc2V0dXBRdWFkV2l0
aFRleENvb3JkcyhnbCwgbG93ZXJMZWZ0VGV4Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29vcmRzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29v
cmRMb2NhdGlvbik7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEg
cHJvZ3JhbSBhbmQgYnVmZmVycyBmb3IgcmVuZGVyaW5nIGEgdGV4dHVyZWQgcXVhZCB3aXRoCisg
KiBhIGN1YmUgbWFwIHRleHR1cmUuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9
IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9
IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yCisgKiAgICAgICAg
cG9zaXRpb24uIERlZmF1bHQgPSAwLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExv
Y2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yCisgKiAgICAgICAgdGV4dHVyZSBjb29yZHMu
IERlZmF1bHQgPSAxLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVw
VGV4dHVyZWRRdWFkV2l0aEN1YmVNYXAgPSBmdW5jdGlvbigKKyAgICBnbCwgb3B0X3Bvc2l0aW9u
TG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKSB7CisgIHZhciBwcm9ncmFtID0gc2V0dXBT
aW1wbGVDdWJlTWFwVGV4dHVyZVByb2dyYW0oCisgICAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRp
b24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKKyAgc2V0dXBVbml0UXVhZChnbCwgb3B0X3Bvc2l0
aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uLCB1bmRlZmluZWQpOworICByZXR1cm4g
cHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHVuaXQgcXVhZCB3aXRoIG9ubHkgcG9z
aXRpb25zIG9mIGEgZ2l2ZW4gcmVzb2x1dGlvbi4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5n
Q29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0g
e251bWJlcn0gZ3JpZFJlcyBUaGUgcmVzb2x1dGlvbiBvZiB0aGUgbWVzaCBncmlkLAorICogICAg
IGV4cHJlc3NlZCBpbiB0aGUgbnVtYmVyIG9mIHF1YWRzIGFjcm9zcyBhbmQgZG93bi4KKyAqIEBw
YXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZv
ciBwb3NpdGlvbi4KKyAqLwordmFyIHNldHVwSW5kZXhlZFF1YWQgPSBmdW5jdGlvbiAoCisgICAg
Z2wsIGdyaWRSZXMsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfZmxpcE9kZFRyaWFuZ2xlcykg
eworICByZXR1cm4gc2V0dXBJbmRleGVkUXVhZFdpdGhPcHRpb25zKGdsLAorICAgIHsgZ3JpZFJl
czogZ3JpZFJlcywKKyAgICAgIHBvc2l0aW9uTG9jYXRpb246IG9wdF9wb3NpdGlvbkxvY2F0aW9u
LAorICAgICAgZmxpcE9kZFRyaWFuZ2xlczogb3B0X2ZsaXBPZGRUcmlhbmdsZXMKKyAgICB9KTsK
K307CisKKy8qKgorICogQ3JlYXRlcyBhIHF1YWQgd2l0aCB2YXJpb3VzIG9wdGlvbnMuCisgKiBA
cGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgdG8gdXNlLgorICogQHBhcmFtIHshT2JqZWN0fSBvcHRpb25zIFRoZSBvcHRpb25zLiBTZWUg
YmVsb3cuCisgKiBAcmV0dXJuIHshQXJyYXkuPFdlYkdMQnVmZmVyPn0gVGhlIGNyZWF0ZWQgYnVm
ZmVycy4KKyAqICAgICBbcG9zaXRpb25zLCA8Y29sb3JzPiwgaW5kaWNlc10KKyAqCisgKiBPcHRp
b25zOgorICogICBncmlkUmVzOiBudW1iZXIgb2YgcXVhZHMgYWNyb3NzIGFuZCBkb3duIGdyaWQu
CisgKiAgIHBvc2l0aW9uTG9jYXRpb246IGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24KKyAq
ICAgZmxpcE9kZFRyaWFuZ2xlczogcmV2ZXJzZSBvcmRlciBvZiB2ZXJ0aWNlcyBvZiBldmVyeSBv
dGhlcgorICogICAgICAgdHJpYW5nbGUKKyAqICAgcG9zaXRpb25PZmZzZXQ6IG9mZnNldCBhZGRl
ZCB0byBlYWNoIHZlcnRleAorICogICBwb3NpdGlvbk11bHQ6IG11bHRpcGllciBmb3IgZWFjaCB2
ZXJ0ZXgKKyAqICAgY29sb3JMb2NhdGlvbjogYXR0cmliIGxvY2F0aW9uIGZvciB2ZXJ0ZXggY29s
b3JzLiBJZgorICogICAgICB1bmRlZmluZWQgbm8gdmVydGV4IGNvbG9ycyB3aWxsIGJlIGNyZWF0
ZWQuCisgKi8KK3ZhciBzZXR1cEluZGV4ZWRRdWFkV2l0aE9wdGlvbnMgPSBmdW5jdGlvbiAoZ2ws
IG9wdGlvbnMpIHsKKyAgdmFyIHBvc2l0aW9uTG9jYXRpb24gPSBvcHRpb25zLnBvc2l0aW9uTG9j
YXRpb24gfHwgMDsKKyAgdmFyIG9iamVjdHMgPSBbXTsKKworICB2YXIgZ3JpZFJlcyA9IG9wdGlv
bnMuZ3JpZFJlcyB8fCAxOworICB2YXIgcG9zaXRpb25PZmZzZXQgPSBvcHRpb25zLnBvc2l0aW9u
T2Zmc2V0IHx8IDA7CisgIHZhciBwb3NpdGlvbk11bHQgPSBvcHRpb25zLnBvc2l0aW9uTXVsdCB8
fCAxOworICB2YXIgdmVydHNBY3Jvc3MgPSBncmlkUmVzICsgMTsKKyAgdmFyIG51bVZlcnRzID0g
dmVydHNBY3Jvc3MgKiB2ZXJ0c0Fjcm9zczsKKyAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMy
QXJyYXkobnVtVmVydHMgKiAzKTsKKyAgdmFyIGluZGljZXMgPSBuZXcgVWludDE2QXJyYXkoNiAq
IGdyaWRSZXMgKiBncmlkUmVzKTsKKyAgdmFyIHBvZmZzZXQgPSAwOworCisgIGZvciAodmFyIHl5
ID0gMDsgeXkgPD0gZ3JpZFJlczsgKyt5eSkgeworICAgIGZvciAodmFyIHh4ID0gMDsgeHggPD0g
Z3JpZFJlczsgKyt4eCkgeworICAgICAgcG9zaXRpb25zW3BvZmZzZXQgKyAwXSA9ICgtMSArIDIg
KiB4eCAvIGdyaWRSZXMpICogcG9zaXRpb25NdWx0ICsgcG9zaXRpb25PZmZzZXQ7CisgICAgICBw
b3NpdGlvbnNbcG9mZnNldCArIDFdID0gKC0xICsgMiAqIHl5IC8gZ3JpZFJlcykgKiBwb3NpdGlv
bk11bHQgKyBwb3NpdGlvbk9mZnNldDsKKyAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsgMl0gPSAw
OworCisgICAgICBwb2Zmc2V0ICs9IDM7CisgICAgfQorICB9CisKKyAgdmFyIGJ1ZiA9IGdsLmNy
ZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmKTsKKyAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHBvc2l0aW9ucywgZ2wuU1RBVElDX0RSQVcp
OworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwb3NpdGlvbkxvY2F0aW9uKTsKKyAgZ2wu
dmVydGV4QXR0cmliUG9pbnRlcihwb3NpdGlvbkxvY2F0aW9uLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDAsIDApOworICBvYmplY3RzLnB1c2goYnVmKTsKKworICBpZiAob3B0aW9ucy5jb2xvckxvY2F0
aW9uICE9PSB1bmRlZmluZWQpIHsKKyAgICB2YXIgY29sb3JzID0gbmV3IEZsb2F0MzJBcnJheShu
dW1WZXJ0cyAqIDQpOworICAgIHBvZmZzZXQgPSAwOworICAgIGZvciAodmFyIHl5ID0gMDsgeXkg
PD0gZ3JpZFJlczsgKyt5eSkgeworICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVz
OyArK3h4KSB7CisgICAgICAgIGlmIChvcHRpb25zLmNvbG9yICE9PSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgICBjb2xvcnNbcG9mZnNldCArIDBdID0gb3B0aW9ucy5jb2xvclswXTsKKyAgICAgICAg
ICBjb2xvcnNbcG9mZnNldCArIDFdID0gb3B0aW9ucy5jb2xvclsxXTsKKyAgICAgICAgICBjb2xv
cnNbcG9mZnNldCArIDJdID0gb3B0aW9ucy5jb2xvclsyXTsKKyAgICAgICAgICBjb2xvcnNbcG9m
ZnNldCArIDNdID0gb3B0aW9ucy5jb2xvclszXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICBjb2xvcnNbcG9mZnNldCArIDBdID0geHggLyBncmlkUmVzOworICAgICAgICAgIGNvbG9yc1tw
b2Zmc2V0ICsgMV0gPSB5eSAvIGdyaWRSZXM7CisgICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAy
XSA9ICh4eCAvIGdyaWRSZXMpICogKHl5IC8gZ3JpZFJlcyk7CisgICAgICAgICAgY29sb3JzW3Bv
ZmZzZXQgKyAzXSA9ICh5eSAlIDIpICogMC41ICsgMC41OworICAgICAgICB9CisgICAgICAgIHBv
ZmZzZXQgKz0gNDsKKyAgICAgIH0KKyAgICB9CisKKyAgICBidWYgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmKTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JzLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wu
ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkob3B0aW9ucy5jb2xvckxvY2F0aW9uKTsKKyAgICBnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdGlvbnMuY29sb3JMb2NhdGlvbiwgNCwgZ2wuRkxPQVQsIGZh
bHNlLCAwLCAwKTsKKyAgICBvYmplY3RzLnB1c2goYnVmKTsKKyAgfQorCisgIHZhciB0YmFzZSA9
IDA7CisgIGZvciAodmFyIHl5ID0gMDsgeXkgPCBncmlkUmVzOyArK3l5KSB7CisgICAgdmFyIGlu
ZGV4ID0geXkgKiB2ZXJ0c0Fjcm9zczsKKyAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDwgZ3JpZFJl
czsgKyt4eCkgeworICAgICAgaW5kaWNlc1t0YmFzZSArIDBdID0gaW5kZXggKyAwOworICAgICAg
aW5kaWNlc1t0YmFzZSArIDFdID0gaW5kZXggKyAxOworICAgICAgaW5kaWNlc1t0YmFzZSArIDJd
ID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsKKyAgICAgIGluZGljZXNbdGJhc2UgKyAzXSA9IGluZGV4
ICsgdmVydHNBY3Jvc3M7CisgICAgICBpbmRpY2VzW3RiYXNlICsgNF0gPSBpbmRleCArIDE7Cisg
ICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCArIHZlcnRzQWNyb3NzICsgMTsKKworICAg
ICAgaWYgKG9wdGlvbnMuZmxpcE9kZFRyaWFuZ2xlcykgeworICAgICAgICBpbmRpY2VzW3RiYXNl
ICsgNF0gPSBpbmRleCArIHZlcnRzQWNyb3NzICsgMTsKKyAgICAgICAgaW5kaWNlc1t0YmFzZSAr
IDVdID0gaW5kZXggKyAxOworICAgICAgfQorCisgICAgICBpbmRleCArPSAxOworICAgICAgdGJh
c2UgKz0gNjsKKyAgICB9CisgIH0KKworICBidWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wu
YmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgYnVmKTsKKyAgZ2wuYnVmZmVyRGF0
YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOworICBv
YmplY3RzLnB1c2goYnVmKTsKKworICByZXR1cm4gb2JqZWN0czsKK307CisKKy8qKgorICogUmV0
dXJucyB0aGUgY29uc3RydWN0b3IgZm9yIGEgdHlwZWQgYXJyYXkgdGhhdCBjb3JyZXNwb25kcyB0
byB0aGUgZ2l2ZW4KKyAqIFdlYkdMIHR5cGUuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIEEgV2ViR0xSZW5kZXJpbmdDb250ZXh0LgorICogQHBhcmFtIHtudW1iZXJ9IHR5
cGUgVGhlIFdlYkdMIHR5cGUgKGVnLCBnbC5VTlNJR05FRF9CWVRFKQorICogQHJldHVybiB7IUNv
bnN0cnVjdG9yfSBUaGUgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IgdGhhdAorICogICAgICBjb3Jy
ZXNwb25kcyB0byB0aGUgZ2l2ZW4gdHlwZS4KKyAqLwordmFyIGdsVHlwZVRvVHlwZWRBcnJheVR5
cGUgPSBmdW5jdGlvbihnbCwgdHlwZSkgeworICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIGds
LkJZVEU6CisgICAgICByZXR1cm4gd2luZG93LkludDhBcnJheTsKKyAgICBjYXNlIGdsLlVOU0lH
TkVEX0JZVEU6CisgICAgICByZXR1cm4gd2luZG93LlVpbnQ4QXJyYXk7CisgICAgY2FzZSBnbC5T
SE9SVDoKKyAgICAgIHJldHVybiB3aW5kb3cuSW50MTZBcnJheTsKKyAgICBjYXNlIGdsLlVOU0lH
TkVEX1NIT1JUOgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV82XzU6CisgICAgY2FzZSBn
bC5VTlNJR05FRF9TSE9SVF80XzRfNF80OgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV81
XzVfMToKKyAgICAgIHJldHVybiB3aW5kb3cuVWludDE2QXJyYXk7CisgICAgY2FzZSBnbC5JTlQ6
CisgICAgICByZXR1cm4gd2luZG93LkludDMyQXJyYXk7CisgICAgY2FzZSBnbC5VTlNJR05FRF9J
TlQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9JTlRfNV85XzlfOV9SRVY6CisgICAgY2FzZSBnbC5V
TlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWOgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UXzJf
MTBfMTBfMTBfUkVWOgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UXzI0Xzg6CisgICAgICByZXR1
cm4gd2luZG93LlVpbnQzMkFycmF5OworICAgIGNhc2UgZ2wuSEFMRl9GTE9BVDoKKyAgICBjYXNl
IDB4OEQ2MTogIC8vIEhBTEZfRkxPQVRfT0VTCisgICAgICByZXR1cm4gd2luZG93LlVpbnQxNkFy
cmF5OworICAgIGNhc2UgZ2wuRkxPQVQ6CisgICAgICByZXR1cm4gd2luZG93LkZsb2F0MzJBcnJh
eTsKKyAgICBkZWZhdWx0OgorICAgICAgdGhyb3cgJ3Vua25vd24gZ2wgdHlwZSAnICsgZ2xFbnVt
VG9TdHJpbmcoZ2wsIHR5cGUpOworICB9Cit9OworCisvKioKKyAqIFJldHVybnMgdGhlIG51bWJl
ciBvZiBieXRlcyBwZXIgY29tcG9uZW50IGZvciBhIGdpdmVuIFdlYkdMIHR5cGUuCisgKiBAcGFy
YW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIEEgV2ViR0xSZW5kZXJpbmdDb250ZXh0Lgor
ICogQHBhcmFtIHtHTGVudW19IHR5cGUgVGhlIFdlYkdMIHR5cGUgKGVnLCBnbC5VTlNJR05FRF9C
WVRFKQorICogQHJldHVybiB7bnVtYmVyfSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHBlciBjb21wb25l
bnQuCisgKi8KK3ZhciBnZXRCeXRlc1BlckNvbXBvbmVudCA9IGZ1bmN0aW9uKGdsLCB0eXBlKSB7
CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgZ2wuQllURToKKyAgICBjYXNlIGdsLlVOU0lH
TkVEX0JZVEU6CisgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIGdsLlNIT1JUOgorICAgIGNhc2Ug
Z2wuVU5TSUdORURfU0hPUlQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzZfNToKKyAg
ICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9T
SE9SVF81XzVfNV8xOgorICAgIGNhc2UgZ2wuSEFMRl9GTE9BVDoKKyAgICBjYXNlIDB4OEQ2MTog
IC8vIEhBTEZfRkxPQVRfT0VTCisgICAgICByZXR1cm4gMjsKKyAgICBjYXNlIGdsLklOVDoKKyAg
ICBjYXNlIGdsLlVOU0lHTkVEX0lOVDoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF81XzlfOV85
X1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVY6CisgICAgY2Fz
ZSBnbC5VTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVY6CisgICAgY2FzZSBnbC5VTlNJR05FRF9J
TlRfMjRfODoKKyAgICBjYXNlIGdsLkZMT0FUOgorICAgICAgcmV0dXJuIDQ7CisgICAgZGVmYXVs
dDoKKyAgICAgIHRocm93ICd1bmtub3duIGdsIHR5cGUgJyArIGdsRW51bVRvU3RyaW5nKGdsLCB0
eXBlKTsKKyAgfQorfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdHlwZWQgYXJy
YXkgZWxlbWVudHMgcGVyIHBpeGVsIGZvciBhIGdpdmVuIFdlYkdMCisgKiBmb3JtYXQvdHlwZSBj
b21iaW5hdGlvbi4gVGhlIGNvcnJlc3BvbmRpbmcgdHlwZWQgYXJyYXkgdHlwZSBjYW4gYmUgZGV0
ZXJtaW5lZAorICogYnkgY2FsbGluZyBnbFR5cGVUb1R5cGVkQXJyYXlUeXBlLgorICogQHBhcmFt
IHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBBIFdlYkdMUmVuZGVyaW5nQ29udGV4dC4KKyAq
IEBwYXJhbSB7R0xlbnVtfSBmb3JtYXQgVGhlIFdlYkdMIGZvcm1hdCAoZWcsIGdsLlJHQkEpCisg
KiBAcGFyYW0ge0dMZW51bX0gdHlwZSBUaGUgV2ViR0wgdHlwZSAoZWcsIGdsLlVOU0lHTkVEX0JZ
VEUpCisgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBudW1iZXIgb2YgdHlwZWQgYXJyYXkgZWxlbWVu
dHMgcGVyIHBpeGVsLgorICovCit2YXIgZ2V0VHlwZWRBcnJheUVsZW1lbnRzUGVyUGl4ZWwgPSBm
dW5jdGlvbihnbCwgZm9ybWF0LCB0eXBlKSB7CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
Z2wuVU5TSUdORURfU0hPUlRfNV82XzU6CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF80XzRf
NF80OgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMToKKyAgICAgIHJldHVybiAx
OworICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICB0aHJvdyAnbm90IGEgZ2wgdHlwZSBmb3IgY29sb3IgaW5mb3JtYXRpb24gJyArIGds
RW51bVRvU3RyaW5nKGdsLCB0eXBlKTsKKyAgfQorCisgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAg
Y2FzZSBnbC5SR0JBOgorICAgICAgcmV0dXJuIDQ7CisgICAgY2FzZSBnbC5SR0I6CisgICAgICBy
ZXR1cm4gMzsKKyAgICBjYXNlIGdsLkxVTUlOQU5DRV9BTFBIQToKKyAgICAgIHJldHVybiAyOwor
ICAgIGNhc2UgZ2wuTFVNSU5BTkNFOgorICAgIGNhc2UgZ2wuQUxQSEE6CisgICAgICByZXR1cm4g
MTsKKyAgICBkZWZhdWx0OgorICAgICAgdGhyb3cgJ3Vua25vd24gZ2wgZm9ybWF0ICcgKyBnbEVu
dW1Ub1N0cmluZyhnbCwgZm9ybWF0KTsKKyAgfQorfTsKKworLyoqCisgKiBGaWxscyB0aGUgZ2l2
ZW4gdGV4dHVyZSB3aXRoIGEgc29saWQgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmlu
Z0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFt
IHshV2ViR0xUZXh0dXJlfSB0ZXggVGhlIHRleHR1cmUgdG8gZmlsbC4KKyAqIEBwYXJhbSB7bnVt
YmVyfSB3aWR0aCBUaGUgd2lkdGggb2YgdGhlIHRleHR1cmUgdG8gY3JlYXRlLgorICogQHBhcmFt
IHtudW1iZXJ9IGhlaWdodCBUaGUgaGVpZ2h0IG9mIHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KKyAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZmlsbCB3aXRoLgor
ICogICAgICAgIHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisg
KiBAcGFyYW0ge251bWJlcn0gb3B0X2xldmVsIFRoZSBsZXZlbCBvZiB0aGUgdGV4dHVyZSB0byBm
aWxsLiBEZWZhdWx0ID0gMC4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfZm9ybWF0IFRoZSBmb3Jt
YXQgZm9yIHRoZSB0ZXh0dXJlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9pbnRlcm5hbEZvcm1h
dCBUaGUgaW50ZXJuYWwgZm9ybWF0IGZvciB0aGUgdGV4dHVyZS4KKyAqLwordmFyIGZpbGxUZXh0
dXJlID0gZnVuY3Rpb24oZ2wsIHRleCwgd2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9sZXZlbCwg
b3B0X2Zvcm1hdCwgb3B0X3R5cGUsIG9wdF9pbnRlcm5hbEZvcm1hdCkgeworICBvcHRfbGV2ZWwg
PSBvcHRfbGV2ZWwgfHwgMDsKKyAgb3B0X2Zvcm1hdCA9IG9wdF9mb3JtYXQgfHwgZ2wuUkdCQTsK
KyAgb3B0X3R5cGUgPSBvcHRfdHlwZSB8fCBnbC5VTlNJR05FRF9CWVRFOworICBvcHRfaW50ZXJu
YWxGb3JtYXQgPSBvcHRfaW50ZXJuYWxGb3JtYXQgfHwgb3B0X2Zvcm1hdDsKKyAgdmFyIHBhY2sg
PSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVU5QQUNLX0FMSUdOTUVOVCk7CisgIHZhciBudW1Db21wb25l
bnRzID0gY29sb3IubGVuZ3RoOworICB2YXIgYnl0ZXNQZXJDb21wb25lbnQgPSBnZXRCeXRlc1Bl
ckNvbXBvbmVudChnbCwgb3B0X3R5cGUpOworICB2YXIgcm93U2l6ZSA9IG51bUNvbXBvbmVudHMg
KiB3aWR0aCAqIGJ5dGVzUGVyQ29tcG9uZW50OworICAvLyBTZWUgZXF1YXRpb24gMy4xMCBpbiBF
UyAyLjAgc3BlYyBhbmQgZXF1YXRpb24gMy4xMyBpbiBFUyAzLjAgc3BlYyBmb3IgcGFkZGVkUm93
TGVuZ3RoIGNhbGN1bGF0aW9uLgorICAvLyBrIGlzIHBhZGRlZFJvd0xlbmd0aC4KKyAgLy8gbiBp
cyBudW1Db21wb25lbnRzLgorICAvLyBsIGlzIHdpZHRoLgorICAvLyBhIGlzIHBhY2suCisgIC8v
IHMgaXMgYnl0ZXNQZXJDb21wb25lbnQuCisgIHZhciBwYWRkZWRSb3dMZW5ndGg7CisgIGlmIChi
eXRlc1BlckNvbXBvbmVudCA+PSBwYWNrKQorICAgIHBhZGRlZFJvd0xlbmd0aCA9IG51bUNvbXBv
bmVudHMgKiB3aWR0aDsKKyAgZWxzZQorICAgIHBhZGRlZFJvd0xlbmd0aCA9IE1hdGguZmxvb3Io
KHJvd1NpemUgKyBwYWNrIC0gMSkgLyBwYWNrKSAqIHBhY2sgLyBieXRlc1BlckNvbXBvbmVudDsK
KyAgdmFyIHNpemUgPSB3aWR0aCAqIG51bUNvbXBvbmVudHMgKyAoaGVpZ2h0IC0gMSkgKiBwYWRk
ZWRSb3dMZW5ndGg7CisgIHZhciBidWYgPSBuZXcgKGdsVHlwZVRvVHlwZWRBcnJheVR5cGUoZ2ws
IG9wdF90eXBlKSkoc2l6ZSk7CisgIGZvciAodmFyIHl5ID0gMDsgeXkgPCBoZWlnaHQ7ICsreXkp
IHsKKyAgICB2YXIgb2ZmID0geXkgKiBwYWRkZWRSb3dMZW5ndGg7CisgICAgZm9yICh2YXIgeHgg
PSAwOyB4eCA8IHdpZHRoOyArK3h4KSB7CisgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgbnVt
Q29tcG9uZW50czsgKytqaikgeworICAgICAgICBidWZbb2ZmKytdID0gY29sb3JbampdOworICAg
ICAgfQorICAgIH0KKyAgfQorICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwor
ICBnbC50ZXhJbWFnZTJEKAorICAgICAgZ2wuVEVYVFVSRV8yRCwgb3B0X2xldmVsLCBvcHRfaW50
ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsCisgICAgICBvcHRfZm9ybWF0LCBvcHRfdHlw
ZSwgYnVmKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHRleHR1cmUgYW5kIGZpbGxzIGl0IHdp
dGggYSBzb2xpZCBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wg
VGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gd2lk
dGggVGhlIHdpZHRoIG9mIHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBoZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCisgKiBAcGFyYW0g
eyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgd2l0aC4gQSA0IGVsZW1l
bnQgYXJyYXkKKyAqICAgICAgICB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAg
dG8gMjU1LgorICogQHJldHVybiB7IVdlYkdMVGV4dHVyZX0KKyAqLwordmFyIGNyZWF0ZUNvbG9y
ZWRUZXh0dXJlID0gZnVuY3Rpb24oZ2wsIHdpZHRoLCBoZWlnaHQsIGNvbG9yKSB7CisgIHZhciB0
ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGZpbGxUZXh0dXJlKGdsLCB0ZXgsIHdpZHRoLCBo
ZWlnaHQsIGNvbG9yKTsKKyAgcmV0dXJuIHRleDsKK307CisKK3ZhciB1Ynl0ZVRvRmxvYXQgPSBm
dW5jdGlvbihjKSB7CisgIHJldHVybiBjIC8gMjU1OworfTsKKwordmFyIHVieXRlQ29sb3JUb0Zs
b2F0Q29sb3IgPSBmdW5jdGlvbihjb2xvcikgeworICB2YXIgZmxvYXRDb2xvciA9IFtdOworICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3IubGVuZ3RoOyArK2lpKSB7CisgICAgZmxvYXRDb2xv
cltpaV0gPSB1Ynl0ZVRvRmxvYXQoY29sb3JbaWldKTsKKyAgfQorICByZXR1cm4gZmxvYXRDb2xv
cjsKK307CisKKy8qKgorICogU2V0cyB0aGUgInVfY29sb3IiIHVuaWZvcm0gb2YgdGhlIGN1cnJl
bnQgcHJvZ3JhbSB0byBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0g
Z2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48
bnVtYmVyPn0gY29sb3IgNCBlbGVtZW50IGFycmF5IG9mIDAtMSBjb2xvcgorICogICAgICBjb21w
b25lbnRzLgorICovCit2YXIgc2V0RmxvYXREcmF3Q29sb3IgPSBmdW5jdGlvbihnbCwgY29sb3Ip
IHsKKyAgdmFyIHByb2dyYW0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKTsK
KyAgdmFyIGNvbG9yTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVf
Y29sb3IiKTsKKyAgZ2wudW5pZm9ybTRmdihjb2xvckxvY2F0aW9uLCBjb2xvcik7Cit9OworCisv
KioKKyAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlmb3JtIG9mIHRoZSBjdXJyZW50IHByb2dyYW0g
dG8gY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNv
bG9yIDQgZWxlbWVudCBhcnJheSBvZiAwLTI1NSBjb2xvcgorICogICAgICBjb21wb25lbnRzLgor
ICovCit2YXIgc2V0VUJ5dGVEcmF3Q29sb3IgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKKyAgc2V0
RmxvYXREcmF3Q29sb3IoZ2wsIHVieXRlQ29sb3JUb0Zsb2F0Q29sb3IoY29sb3IpKTsKK307CisK
Ky8qKgorICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQgaW4gdGhlIGdpdmVuIGNvbG9y
LgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUg
Y29sb3IgdG8gZHJhdyB3aXRoLiBBIDQKKyAqICAgICAgICBlbGVtZW50IGFycmF5IHdoZXJlIGVh
Y2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0bworICogICAgICAgIDEuCisgKi8KK3ZhciBk
cmF3RmxvYXRDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsKKyAgdmFyIHByb2dyYW0g
PSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKTsKKyAgdmFyIGNvbG9yTG9jYXRp
b24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfY29sb3IiKTsKKyAgZ2wudW5p
Zm9ybTRmdihjb2xvckxvY2F0aW9uLCBjb2xvcik7CisgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5H
TEVTLCAwLCA2KTsKK307CisKKworLyoqCisgKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXAgcXVh
ZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9
IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXku
PG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAorICogICAgICAgIGVs
ZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCisgKiAg
ICAgICAgMjU1LgorICovCit2YXIgZHJhd1VCeXRlQ29sb3JRdWFkID0gZnVuY3Rpb24oZ2wsIGNv
bG9yKSB7CisgIGRyYXdGbG9hdENvbG9yUXVhZChnbCwgdWJ5dGVDb2xvclRvRmxvYXRDb2xvcihj
b2xvcikpOworfTsKKworLyoqCisgKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXBVbml0UXVhZC4K
KyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCB0byB1c2UuCisgKi8KK3ZhciBkcmF3VW5pdFF1YWQgPSBmdW5jdGlvbihnbCkgewor
ICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7Cit9OworCit2YXIgZHVtbXlTZXRQ
cm9ncmFtQW5kRHJhd05vdGhpbmcgPSBmdW5jdGlvbihnbCkgeworICBpZiAoIWdsLl93dHVEdW1t
eVByb2dyYW0pIHsKKyAgICBnbC5fd3R1RHVtbXlQcm9ncmFtID0gc2V0dXBQcm9ncmFtKGdsLCBb
CisgICAgICAidm9pZCBtYWluKCkgeyBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wKTsgfSIsCisgICAg
ICAidm9pZCBtYWluKCkgeyBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMCk7IH0iCisgICAgXSwgW10s
IFtdKTsKKyAgfQorICBnbC51c2VQcm9ncmFtKGdsLl93dHVEdW1teVByb2dyYW0pOworICBnbC5k
cmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMyk7Cit9OworCisvKioKKyAqIENsZWFycyB0aGVu
IERyYXdzIGEgcHJldmlvdXNseSBzZXR1cFVuaXRRdWFkLgorICogQHBhcmFtIHshV2ViR0xSZW5k
ZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBw
YXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIg
d2l0aCBiZWZvcmUKKyAqICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAyNTUuIERlZmF1bHQg
WzI1NSwgMjU1LCAyNTUsIDI1NV0KKyAqLwordmFyIGNsZWFyQW5kRHJhd1VuaXRRdWFkID0gZnVu
Y3Rpb24oZ2wsIG9wdF9jb2xvcikgeworICBvcHRfY29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwg
MjU1LCAyNTUsIDI1NV07CisgIGdsLmNsZWFyQ29sb3IoCisgICAgICBvcHRfY29sb3JbMF0gLyAy
NTUsCisgICAgICBvcHRfY29sb3JbMV0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbMl0gLyAyNTUs
CisgICAgICBvcHRfY29sb3JbM10gLyAyNTUpOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgIGRyYXdVbml0UXVhZChnbCk7Cit9OworCisv
KioKKyAqIERyYXdzIGEgcXVhZCBwcmV2aW91c2x5IHNldHVwIHdpdGggc2V0dXBJbmRleGVkUXVh
ZC4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gZ3JpZFJlcyBSZXNvbHV0aW9u
IG9mIGdyaWQuCisgKi8KK3ZhciBkcmF3SW5kZXhlZFF1YWQgPSBmdW5jdGlvbihnbCwgZ3JpZFJl
cykgeworICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCBncmlkUmVzICogZ3JpZFJlcyAq
IDYsIGdsLlVOU0lHTkVEX1NIT1JULCAwKTsKK307CisKKy8qKgorICogRHJhd3MgYSBwcmV2aW91
c2x5IHNldHVwSW5kZXhlZFF1YWQKKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0g
Z2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0g
Z3JpZFJlcyBSZXNvbHV0aW9uIG9mIGdyaWQuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0g
b3B0X2NvbG9yIFRoZSBjb2xvciB0byBmaWxsIGNsZWFyIHdpdGggYmVmb3JlCisgKiAgICAgICAg
ZHJhd2luZy4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSBy
YW5nZSAwIHRvCisgKiAgICAgICAgMjU1LiBEZWZhdWx0IFsyNTUsIDI1NSwgMjU1LCAyNTVdCisg
Ki8KK3ZhciBjbGVhckFuZERyYXdJbmRleGVkUXVhZCA9IGZ1bmN0aW9uKGdsLCBncmlkUmVzLCBv
cHRfY29sb3IpIHsKKyAgb3B0X2NvbG9yID0gb3B0X2NvbG9yIHx8IFsyNTUsIDI1NSwgMjU1LCAy
NTVdOworICBnbC5jbGVhckNvbG9yKAorICAgICAgb3B0X2NvbG9yWzBdIC8gMjU1LAorICAgICAg
b3B0X2NvbG9yWzFdIC8gMjU1LAorICAgICAgb3B0X2NvbG9yWzJdIC8gMjU1LAorICAgICAgb3B0
X2NvbG9yWzNdIC8gMjU1KTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRF
UFRIX0JVRkZFUl9CSVQpOworICBkcmF3SW5kZXhlZFF1YWQoZ2wsIGdyaWRSZXMpOworfTsKKwor
LyoqCisgKiBDbGlwcyBhIHJhbmdlIHRvIG1pbiwgbWF4CisgKiAoRWcuIGNsaXBUb1JhbmdlKC01
LDcsMCwyMCkgd291bGQgcmV0dXJuIHt2YWx1ZTowLGV4dGVudDoyfQorICogQHBhcmFtIHtudW1i
ZXJ9IHZhbHVlIHN0YXJ0IG9mIHJhbmdlCisgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50IGV4dGVu
dCBvZiByYW5nZQorICogQHBhcmFtIHtudW1iZXJ9IG1pbiBtaW4uCisgKiBAcGFyYW0ge251bWJl
cn0gbWF4IG1heC4KKyAqIEByZXR1cm4geyF7dmFsdWU6bnVtYmVyLGV4dGVudDpudW1iZXJ9fSBU
aGUgY2xpcHBlZCB2YWx1ZS4KKyAqLwordmFyIGNsaXBUb1JhbmdlID0gZnVuY3Rpb24odmFsdWUs
IGV4dGVudCwgbWluLCBtYXgpIHsKKyAgaWYgKHZhbHVlIDwgbWluKSB7CisgICAgZXh0ZW50IC09
IG1pbiAtIHZhbHVlOworICAgIHZhbHVlID0gbWluOworICB9CisgIHZhciBlbmQgPSB2YWx1ZSAr
IGV4dGVudDsKKyAgaWYgKGVuZCA+IG1heCkgeworICAgIGV4dGVudCAtPSBlbmQgLSBtYXg7Cisg
IH0KKyAgaWYgKGV4dGVudCA8IDApIHsKKyAgICB2YWx1ZSA9IG1heDsKKyAgICBleHRlbnQgPSAw
OworICB9CisgIHJldHVybiB7dmFsdWU6dmFsdWUsIGV4dGVudDogZXh0ZW50fTsKK307CisKKy8q
KgorICogRGV0ZXJtaW5lcyBpZiB0aGUgcGFzc2VkIGNvbnRleHQgaXMgYW4gaW5zdGFuY2Ugb2Yg
YSBXZWJHTFJlbmRlcmluZ0NvbnRleHQKKyAqIG9yIGxhdGVyIHZhcmlhbnQgKGxpa2UgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dCkKKyAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dH0gY3R4
IFRoZSBjb250ZXh0IHRvIGNoZWNrLgorICovCit2YXIgaXNXZWJHTENvbnRleHQgPSBmdW5jdGlv
bihjdHgpIHsKKyAgaWYgKGN0eCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dCkKKyAg
ICByZXR1cm4gdHJ1ZTsKKworICBpZiAoJ1dlYkdMMlJlbmRlcmluZ0NvbnRleHQnIGluIHdpbmRv
dyAmJiBjdHggaW5zdGFuY2VvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KQorICAgIHJldHVybiB0
cnVlOworCisgIHJldHVybiBmYWxzZTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIGNoZWNrIHJl
Y3QgaXMgdXNlZCBieSBjaGVja0NhbnZhc1JlY3RzLgorICogQHBhcmFtIHtudW1iZXJ9IHggbGVm
dCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IHkgYm90dG9t
IGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2sgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9tCisgKiAg
ICAgICAgYSBHTCBjb250ZXh0IG9yIHRvcCBjb3JuZXIgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9t
IGEgMkQgY29udGV4dC4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCB3aWR0aCBvZiByZWdpb24g
dG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IHdpZHRoIG9mIHJlZ2lvbiB0byBj
aGVjay4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgZXhwZWN0
ZWQuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlCisgKiAgICAgICAgZWFjaCBlbGVtZW50IGlzIGlu
IHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE1lc3NhZ2Ug
dG8gYXNzb2NpYXRlIHdpdGggc3VjY2Vzcy4gRWcKKyAqICAgICAgICAoInNob3VsZCBiZSByZWQi
KS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJs
ZSBlcnJvciBpbgorICogICAgICAgIGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisgKi8K
K3ZhciBtYWtlQ2hlY2tSZWN0ID0gZnVuY3Rpb24oeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3Is
IG1zZywgZXJyb3JSYW5nZSkgeworICB2YXIgcmVjdCA9IHsKKyAgICAneCc6IHgsICd5JzogeSwK
KyAgICAnd2lkdGgnOiB3aWR0aCwgJ2hlaWdodCc6IGhlaWdodCwKKyAgICAnY29sb3InOiBjb2xv
ciwgJ21zZyc6IG1zZywKKyAgICAnZXJyb3JSYW5nZSc6IGVycm9yUmFuZ2UsCisKKyAgICAnY2hl
Y2tSZWN0JzogZnVuY3Rpb24gKGJ1ZiwgbCwgYiwgdykgeworICAgICAgZm9yICh2YXIgcHggPSAo
eCAtIGwpIDsgcHggPCAoeCArIHdpZHRoIC0gbCkgOyArK3B4KSB7CisgICAgICAgIGZvciAodmFy
IHB5ID0gKHkgLSBiKSA7IHB5IDwgKHkgKyBoZWlnaHQgLSBiKSA7ICsrcHkpIHsKKyAgICAgICAg
ICB2YXIgb2Zmc2V0ID0gKHB5ICogdyArIHB4KSAqIDQ7CisgICAgICAgICAgZm9yICh2YXIgaiA9
IDA7IGogPCBjb2xvci5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgaWYgKE1hdGguYWJzKGJ1
ZltvZmZzZXQgKyBqXSAtIGNvbG9yW2pdKSA+IGVycm9yUmFuZ2UpIHsKKyAgICAgICAgICAgICAg
dGVzdEZhaWxlZChtc2cpOworICAgICAgICAgICAgICB2YXIgd2FzID0gYnVmW29mZnNldCArIDBd
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGZvciAoaiA9IDE7IGogPCBjb2xvci5sZW5ndGg7
ICsraikgeworICAgICAgICAgICAgICAgIHdhcyArPSAiLCIgKyBidWZbb2Zmc2V0ICsgal07Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZGVidWcoJ2F0ICgnICsgcHggKyAnLCAnICsg
cHkgKworICAgICAgICAgICAgICAgICAgICAnKSBleHBlY3RlZDogJyArIGNvbG9yICsgJyB3YXMg
JyArIHdhcyk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRlc3RQYXNzZWQobXNnKTsKKyAgICB9Cisg
IH0KKyAgcmV0dXJuIHJlY3Q7Cit9OworCisvKioKKyAqIENoZWNrcyB0aGF0IGEgcG9ydGlvbnMg
b2YgYSBjYW52YXMgb3IgdGhlIGN1cnJlbnRseSBhdHRhY2hlZCBmcmFtZWJ1ZmZlciBpcyAxIGNv
bG9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRH0gZ2wgVGhlCisgKiAgICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvciAyRCBj
b250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxjaGVja1JlY3Q+fSBhcnJheSBvZiBy
ZWN0cyB0byBjaGVjayBmb3IgbWF0Y2hpbmcgY29sb3IuCisgKi8KK3ZhciBjaGVja0NhbnZhc1Jl
Y3RzID0gZnVuY3Rpb24oZ2wsIHJlY3RzKSB7CisgIGlmIChyZWN0cy5sZW5ndGggPiAwKSB7Cisg
ICAgdmFyIGxlZnQgPSByZWN0c1swXS54OworICAgIHZhciByaWdodCA9IHJlY3RzWzBdLnggKyBy
ZWN0c1sxXS53aWR0aDsKKyAgICB2YXIgYm90dG9tID0gcmVjdHNbMF0ueTsKKyAgICB2YXIgdG9w
ID0gcmVjdHNbMF0ueSArIHJlY3RzWzBdLmhlaWdodDsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8
IHJlY3RzLmxlbmd0aDsgKytpKSB7CisgICAgICBsZWZ0ID0gTWF0aC5taW4obGVmdCwgcmVjdHNb
aV0ueCk7CisgICAgICByaWdodCA9IE1hdGgubWF4KHJpZ2h0LCByZWN0c1tpXS54ICsgcmVjdHNb
aV0ud2lkdGgpOworICAgICAgYm90dG9tID0gTWF0aC5taW4oYm90dG9tLCByZWN0c1tpXS55KTsK
KyAgICAgIHRvcCA9IE1hdGgubWF4KHRvcCwgcmVjdHNbaV0ueSArIHJlY3RzW2ldLmhlaWdodCk7
CisgICAgfQorICAgIHZhciB3aWR0aCA9IHJpZ2h0IC0gbGVmdDsKKyAgICB2YXIgaGVpZ2h0ID0g
dG9wIC0gYm90dG9tOworICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdo
dCAqIDQpOworICAgIGdsLnJlYWRQaXhlbHMobGVmdCwgYm90dG9tLCB3aWR0aCwgaGVpZ2h0LCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgIHJlY3RzW2ldLmNoZWNrUmVjdChidWYsIGxlZnQs
IGJvdHRvbSwgd2lkdGgpOworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBDaGVja3MgdGhhdCBh
IHBvcnRpb24gb2YgYSBjYW52YXMgb3IgdGhlIGN1cnJlbnRseSBhdHRhY2hlZCBmcmFtZWJ1ZmZl
ciBpcyAxIGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRH0gZ2wgVGhlCisgKiAgICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCBvciAyRCBjb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29ybmVy
IG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3JuZXIg
b2YgcmVnaW9uIHRvIGNoZWNrIGluIGNhc2Ugb2YgY2hlY2tpbmcgZnJvbQorICogICAgICAgIGEg
R0wgY29udGV4dCBvciB0b3AgY29ybmVyIGluIGNhc2Ugb2YgY2hlY2tpbmcgZnJvbSBhIDJEIGNv
bnRleHQuCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNr
LgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCisg
KiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIGV4cGVjdGVkLiBBIDQg
ZWxlbWVudCBhcnJheSB3aGVyZQorICogICAgICAgIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFu
Z2UgMCB0byAyNTUuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X2Vycm9yUmFuZ2UgT3B0aW9uYWwu
IEFjY2VwdGFibGUgZXJyb3IgaW4KKyAqICAgICAgICBjb2xvciBjaGVja2luZy4gMCBieSBkZWZh
dWx0LgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gc2FtZUZuIEZ1bmN0aW9uIHRvIGNhbGwgaWYg
YWxsIHBpeGVscworICogICAgICAgIGFyZSB0aGUgc2FtZSBhcyBjb2xvci4KKyAqIEBwYXJhbSB7
IWZ1bmN0aW9uKCl9IGRpZmZlcmVudEZuIEZ1bmN0aW9uIHRvIGNhbGwgaWYgYSBwaXhlbAorICog
ICAgICAgIGlzIGRpZmZlcmVudCB0aGFuIGNvbG9yCisgKiBAcGFyYW0geyFmdW5jdGlvbigpfSBs
b2dGbiBGdW5jdGlvbiB0byBjYWxsIGZvciBsb2dnaW5nLgorICogQHBhcmFtIHtUeXBlZEFycmF5
fSBvcHRfcmVhZEJhY2tCdWYgb3B0aW9uYWwgYnVmZmVyIHRvIHJlYWQgYmFjayBpbnRvLgorICog
ICAgICAgIFR5cGljYWxseSBwYXNzZWQgdG8gZWl0aGVyIHJldXNlIGJ1ZmZlciwgb3Igc3VwcG9y
dCByZWFkYmFja3MgZnJvbQorICogICAgICAgIGZsb2F0aW5nLXBvaW50L25vcm0xNiBmcmFtZWJ1
ZmZlcnMuCisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X3JlYWRCYWNrVHlwZSBvcHRpb25hbCByZWFk
IGJhY2sgdHlwZSwgZGVmYXVsdGluZyB0bworICogICAgICAgIGdsLlVOU0lHTkVEX0JZVEUuIENh
biBiZSB1c2VkIHRvIHN1cHBvcnQgcmVhZGJhY2sgZnJvbSBmbG9hdGluZy1wb2ludAorICogICAg
ICAgIC9ub3JtMTYgZnJhbWVidWZmZXJzLgorICogQHBhcmFtIHtHTGVudW19IG9wdF9yZWFkQmFj
a0Zvcm1hdCBvcHRpb25hbCByZWFkIGJhY2sgZm9ybWF0LCBkZWZhdWx0aW5nIHRvCisgKiAgICAg
ICAgZ2wuUkdCQS4gQ2FuIGJlIHVzZWQgdG8gc3VwcG9ydCByZWFkYmFjayBmcm9tIG5vcm0xNgor
ICogICAgICAgIGZyYW1lYnVmZmVycy4KKyAqLwordmFyIGNoZWNrQ2FudmFzUmVjdENvbG9yID0g
ZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfZXJyb3JSYW5nZSwg
c2FtZUZuLCBkaWZmZXJlbnRGbiwgbG9nRm4sIG9wdF9yZWFkQmFja0J1Ziwgb3B0X3JlYWRCYWNr
VHlwZSwgb3B0X3JlYWRCYWNrRm9ybWF0KSB7CisgIGlmIChpc1dlYkdMQ29udGV4dChnbCkgJiYg
IWdsLmdldFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUl9CSU5ESU5HKSkgeworICAgIC8vIFdlJ3Jl
IHJlYWRpbmcgdGhlIGJhY2tidWZmZXIgc28gY2xpcC4KKyAgICB2YXIgeHIgPSBjbGlwVG9SYW5n
ZSh4LCB3aWR0aCwgMCwgZ2wuY2FudmFzLndpZHRoKTsKKyAgICB2YXIgeXIgPSBjbGlwVG9SYW5n
ZSh5LCBoZWlnaHQsIDAsIGdsLmNhbnZhcy5oZWlnaHQpOworICAgIGlmICgheHIuZXh0ZW50IHx8
ICF5ci5leHRlbnQpIHsKKyAgICAgIGxvZ0ZuKCJjaGVja2luZyByZWN0OiBlZmZlY3RpdmUgd2lk
dGggb3IgaGVpZ2h0IGlzIHplcm8iKTsKKyAgICAgIHNhbWVGbigpOworICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICB4ID0geHIudmFsdWU7CisgICAgeSA9IHlyLnZhbHVlOworICAgIHdpZHRoID0g
eHIuZXh0ZW50OworICAgIGhlaWdodCA9IHlyLmV4dGVudDsKKyAgfQorICB2YXIgZXJyb3JSYW5n
ZSA9IG9wdF9lcnJvclJhbmdlIHx8IDA7CisgIGlmICghZXJyb3JSYW5nZS5sZW5ndGgpIHsKKyAg
ICBlcnJvclJhbmdlID0gW2Vycm9yUmFuZ2UsIGVycm9yUmFuZ2UsIGVycm9yUmFuZ2UsIGVycm9y
UmFuZ2VdCisgIH0KKyAgdmFyIGJ1ZjsKKyAgaWYgKGlzV2ViR0xDb250ZXh0KGdsKSkgeworICAg
IGJ1ZiA9IG9wdF9yZWFkQmFja0J1ZiA/IG9wdF9yZWFkQmFja0J1ZiA6IG5ldyBVaW50OEFycmF5
KHdpZHRoICogaGVpZ2h0ICogNCk7CisgICAgdmFyIHJlYWRCYWNrVHlwZSA9IG9wdF9yZWFkQmFj
a1R5cGUgPyBvcHRfcmVhZEJhY2tUeXBlIDogZ2wuVU5TSUdORURfQllURTsKKyAgICB2YXIgcmVh
ZEJhY2tGb3JtYXQgPSBvcHRfcmVhZEJhY2tGb3JtYXQgPyBvcHRfcmVhZEJhY2tGb3JtYXQgOiBn
bC5SR0JBOworICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgcmVhZEJhY2tG
b3JtYXQsIHJlYWRCYWNrVHlwZSwgYnVmKTsKKyAgfSBlbHNlIHsKKyAgICBidWYgPSBnbC5nZXRJ
bWFnZURhdGEoeCwgeSwgd2lkdGgsIGhlaWdodCkuZGF0YTsKKyAgfQorICBmb3IgKHZhciBpID0g
MDsgaSA8IHdpZHRoICogaGVpZ2h0OyArK2kpIHsKKyAgICB2YXIgb2Zmc2V0ID0gaSAqIDQ7Cisg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb2xvci5sZW5ndGg7ICsraikgeworICAgICAgaWYgKE1h
dGguYWJzKGJ1ZltvZmZzZXQgKyBqXSAtIGNvbG9yW2pdKSA+IGVycm9yUmFuZ2Vbal0pIHsKKyAg
ICAgICAgdmFyIHdhcyA9IGJ1ZltvZmZzZXQgKyAwXS50b1N0cmluZygpOworICAgICAgICBmb3Ig
KGogPSAxOyBqIDwgY29sb3IubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICB3YXMgKz0gIiwiICsg
YnVmW29mZnNldCArIGpdOworICAgICAgICB9CisgICAgICAgIGRpZmZlcmVudEZuKCdhdCAoJyAr
ICh4ICsgKGkgJSB3aWR0aCkpICsgJywgJyArICh5ICsgTWF0aC5mbG9vcihpIC8gd2lkdGgpKSAr
CisgICAgICAgICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsgY29sb3IgKyAnIHdhcyAnICsg
d2FzLCBidWYpOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgfQorICB9CisgIHNhbWVG
bigpOworfTsKKworLyoqCisgKiBDaGVja3MgdGhhdCBhIHBvcnRpb24gb2YgYSBjYW52YXMgb3Ig
dGhlIGN1cnJlbnRseSBhdHRhY2hlZCBmcmFtZWJ1ZmZlciBpcyAxIGNvbG9yLgorICogQHBhcmFt
IHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZ2wgVGhl
CisgKiAgICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvciAyRCBjb250ZXh0IHRvIHVzZS4K
KyAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAq
IEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrIGluIGNh
c2Ugb2YgY2hlY2tpbmcgZnJvbQorICogICAgICAgIGEgR0wgY29udGV4dCBvciB0b3AgY29ybmVy
IGluIGNhc2Ugb2YgY2hlY2tpbmcgZnJvbSBhIDJEIGNvbnRleHQuCisgKiBAcGFyYW0ge251bWJl
cn0gd2lkdGggd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IGhl
aWdodCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVy
Pn0gY29sb3IgVGhlIGNvbG9yIGV4cGVjdGVkLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZQorICog
ICAgICAgIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcGFyYW0g
e3N0cmluZ30gb3B0X21zZyBNZXNzYWdlIHRvIGFzc29jaWF0ZSB3aXRoIHN1Y2Nlc3Mgb3IgZmFp
bHVyZS4gRWcKKyAqICAgICAgICAoInNob3VsZCBiZSByZWQiKS4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbgorICogICAgICAg
IGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisgKiBAcGFyYW0ge1R5cGVkQXJyYXl9IG9w
dF9yZWFkQmFja0J1ZiBvcHRpb25hbCBidWZmZXIgdG8gcmVhZCBiYWNrIGludG8uCisgKiAgICAg
ICAgVHlwaWNhbGx5IHBhc3NlZCB0byBlaXRoZXIgcmV1c2UgYnVmZmVyLCBvciBzdXBwb3J0IHJl
YWRiYWNrcyBmcm9tCisgKiAgICAgICAgZmxvYXRpbmctcG9pbnQvbm9ybTE2IGZyYW1lYnVmZmVy
cy4KKyAqIEBwYXJhbSB7R0xlbnVtfSBvcHRfcmVhZEJhY2tUeXBlIG9wdGlvbmFsIHJlYWQgYmFj
ayB0eXBlLCBkZWZhdWx0aW5nIHRvCisgKiAgICAgICAgZ2wuVU5TSUdORURfQllURS4gQ2FuIGJl
IHVzZWQgdG8gc3VwcG9ydCByZWFkYmFjayBmcm9tIGZsb2F0aW5nLXBvaW50CisgKiAgICAgICAg
L25vcm0xNiBmcmFtZWJ1ZmZlcnMuCisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X3JlYWRCYWNrRm9y
bWF0IG9wdGlvbmFsIHJlYWQgYmFjayBmb3JtYXQsIGRlZmF1bHRpbmcgdG8KKyAqICAgICAgICBn
bC5SR0JBLiBDYW4gYmUgdXNlZCB0byBzdXBwb3J0IHJlYWRiYWNrIGZyb20gZmxvYXRpbmctcG9p
bnQKKyAqICAgICAgICAvbm9ybTE2IGZyYW1lYnVmZmVycy4KKyAqLwordmFyIGNoZWNrQ2FudmFz
UmVjdCA9IGZ1bmN0aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X21zZywg
b3B0X2Vycm9yUmFuZ2UsIG9wdF9yZWFkQmFja0J1Ziwgb3B0X3JlYWRCYWNrVHlwZSwgb3B0X3Jl
YWRCYWNrRm9ybWF0KSB7CisgIGNoZWNrQ2FudmFzUmVjdENvbG9yKAorICAgICAgZ2wsIHgsIHks
IHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfZXJyb3JSYW5nZSwKKyAgICAgIGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgbXNnID0gb3B0X21zZzsKKyAgICAgICAgaWYgKG1zZyA9PT0gdW5kZWZp
bmVkKQorICAgICAgICAgIG1zZyA9ICJzaG91bGQgYmUgIiArIGNvbG9yLnRvU3RyaW5nKCk7Cisg
ICAgICAgIHRlc3RQYXNzZWQobXNnKTsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbihkaWZmZXJl
bnRNc2cpIHsKKyAgICAgICAgdmFyIG1zZyA9IG9wdF9tc2c7CisgICAgICAgIGlmIChtc2cgPT09
IHVuZGVmaW5lZCkKKyAgICAgICAgICBtc2cgPSAic2hvdWxkIGJlICIgKyBjb2xvci50b1N0cmlu
ZygpOworICAgICAgICB0ZXN0RmFpbGVkKG1zZyArICJcbiIgKyBkaWZmZXJlbnRNc2cpOworICAg
ICAgfSwKKyAgICAgIGRlYnVnLAorICAgICAgb3B0X3JlYWRCYWNrQnVmLAorICAgICAgb3B0X3Jl
YWRCYWNrVHlwZSwKKyAgICAgIG9wdF9yZWFkQmFja0Zvcm1hdCk7Cit9OworCisvKioKKyAqIENo
ZWNrcyB0aGF0IGFuIGVudGlyZSBjYW52YXMgb3IgdGhlIGN1cnJlbnRseSBhdHRhY2hlZCBmcmFt
ZWJ1ZmZlciBpcyAxIGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZ2wgVGhlCisgKiAgICAgICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCBvciAyRCBjb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+
fSBjb2xvciBUaGUgY29sb3IgZXhwZWN0ZWQuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlCisgKiAg
ICAgICAgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBwYXJhbSB7
c3RyaW5nfSBtc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCBzdWNjZXNzLiBFZyAoInNob3Vs
ZCBiZSByZWQiKS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvclJhbmdlIE9wdGlvbmFsLiBBY2Nl
cHRhYmxlIGVycm9yIGluCisgKiAgICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVsdC4K
KyAqLwordmFyIGNoZWNrQ2FudmFzID0gZnVuY3Rpb24oZ2wsIGNvbG9yLCBtc2csIGVycm9yUmFu
Z2UpIHsKKyAgY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBnbC5jYW52YXMud2lkdGgsIGdsLmNh
bnZhcy5oZWlnaHQsIGNvbG9yLCBtc2csIGVycm9yUmFuZ2UpOworfTsKKworLyoqCisgKiBDaGVj
a3MgYSByZWN0YW5ndWxhciBhcmVhIGJvdGggaW5zaWRlIHRoZSBhcmVhIGFuZCBvdXRzaWRlCisg
KiB0aGUgYXJlYS4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dHxDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkR9IGdsIFRoZQorICogICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
b3IgMkQgY29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0geCBsZWZ0IGNvcm5lciBv
ZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0geSBib3R0b20gY29ybmVyIG9m
IHJlZ2lvbiB0byBjaGVjayBpbiBjYXNlIG9mIGNoZWNraW5nIGZyb20KKyAqICAgICAgICBhIEdM
IGNvbnRleHQgb3IgdG9wIGNvcm5lciBpbiBjYXNlIG9mIGNoZWNraW5nIGZyb20gYSAyRCBjb250
ZXh0LgorICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4K
KyAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICog
QHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGlubmVyQ29sb3IgVGhlIGNvbG9yIGV4cGVjdGVkIGlu
c2lkZQorICogICAgIHRoZSBhcmVhLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1l
bnQgaXMgaW4gdGhlCisgKiAgICAgcmFuZ2UgMCB0byAyNTUuCisgKiBAcGFyYW0geyFBcnJheS48
bnVtYmVyPn0gb3V0ZXJDb2xvciBUaGUgY29sb3IgZXhwZWN0ZWQKKyAqICAgICBvdXRzaWRlLiBB
IDQgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlCisgKiAgICAgcmFu
Z2UgMCB0byAyNTUuCisgKiBAcGFyYW0geyFudW1iZXJ9IG9wdF9lZGdlU2l6ZTogVGhlIG51bWJl
ciBvZiBwaXhlbHMgdG8gc2tpcAorICogICAgIGFyb3VuZCB0aGUgZWRnZXMgb2YgdGhlIGFyZWEu
IERlZmF1dCAwLgorICogQHBhcmFtIHshe3dpZHRoOm51bWJlciwgaGVpZ2h0Om51bWJlcn19IG9w
dF9vdXRlckRpbWVuc2lvbnMKKyAqICAgICBUaGUgb3V0ZXIgZGltZW5zaW9ucy4gRGVmYXVsdCB0
aGUgc2l6ZSBvZiBnbC5jYW52YXMuCisgKi8KK3ZhciBjaGVja0FyZWFJbkFuZE91dCA9IGZ1bmN0
aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBpbm5lckNvbG9yLCBvdXRlckNvbG9yLCBvcHRf
ZWRnZVNpemUsIG9wdF9vdXRlckRpbWVuc2lvbnMpIHsKKyAgdmFyIG91dGVyRGltZW5zaW9ucyA9
IG9wdF9vdXRlckRpbWVuc2lvbnMgfHwgeyB3aWR0aDogZ2wuY2FudmFzLndpZHRoLCBoZWlnaHQ6
IGdsLmNhbnZhcy5oZWlnaHQgfTsKKyAgdmFyIGVkZ2VTaXplID0gb3B0X2VkZ2VTaXplIHx8IDA7
CisgIGNoZWNrQ2FudmFzUmVjdChnbCwgeCArIGVkZ2VTaXplLCB5ICsgZWRnZVNpemUsIHdpZHRo
IC0gZWRnZVNpemUgKiAyLCBoZWlnaHQgLSBlZGdlU2l6ZSAqIDIsIGlubmVyQ29sb3IpOworICBj
aGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHggLSBlZGdlU2l6ZSwgb3V0ZXJEaW1lbnNpb25zLmhl
aWdodCwgb3V0ZXJDb2xvcik7CisgIGNoZWNrQ2FudmFzUmVjdChnbCwgeCArIHdpZHRoICsgZWRn
ZVNpemUsIDAsIG91dGVyRGltZW5zaW9ucy53aWR0aCAtIHggLSB3aWR0aCAtIGVkZ2VTaXplLCBv
dXRlckRpbWVuc2lvbnMuaGVpZ2h0LCBvdXRlckNvbG9yKTsKKyAgY2hlY2tDYW52YXNSZWN0KGds
LCAwLCAwLCBvdXRlckRpbWVuc2lvbnMud2lkdGgsIHkgLSBlZGdlU2l6ZSwgb3V0ZXJDb2xvcik7
CisgIGNoZWNrQ2FudmFzUmVjdChnbCwgMCwgeSArIGhlaWdodCArIGVkZ2VTaXplLCBvdXRlckRp
bWVuc2lvbnMud2lkdGgsIG91dGVyRGltZW5zaW9ucy5oZWlnaHQgLSB5IC0gaGVpZ2h0IC0gZWRn
ZVNpemUsIG91dGVyQ29sb3IpOworfTsKKworLyoqCisgKiBDaGVja3MgdGhhdCBhbiBlbnRpcmUg
YnVmZmVyIG1hdGNoZXMgdGhlIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBwcm92aWRlZC4KKyAqIChX
ZWJHTCAyLjAgb25seSkKKyAqIEBwYXJhbSB7IVdlYkdMMlJlbmRlcmluZ0NvbnRleHR9IGdsIFRo
ZSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB0YXJn
ZXQgVGhlIGJ1ZmZlciB0YXJnZXQgdG8gYmluZCB0by4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1i
ZXI+fSBleHBlY3RlZCBUaGUgdmFsdWVzIGV4cGVjdGVkLgorICogQHBhcmFtIHtzdHJpbmd9IG9w
dF9tc2cgT3B0aW9uYWwuIE1lc3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggc3VjY2Vzcy4gRWcgKCJz
aG91bGQgYmUgcmVkIikuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X2Vycm9yUmFuZ2UgT3B0aW9u
YWwuIEFjY2VwdGFibGUgZXJyb3IgaW4gdmFsdWUgY2hlY2tpbmcuIDAuMDAxIGJ5IGRlZmF1bHQu
CisgKi8KK3ZhciBjaGVja0Zsb2F0QnVmZmVyID0gZnVuY3Rpb24oZ2wsIHRhcmdldCwgZXhwZWN0
ZWQsIG9wdF9tc2csIG9wdF9lcnJvclJhbmdlKSB7CisgIGlmIChvcHRfbXNnID09PSB1bmRlZmlu
ZWQpCisgICAgb3B0X21zZyA9ICJidWZmZXIgc2hvdWxkIG1hdGNoIGV4cGVjdGVkIHZhbHVlcyI7
CisKKyAgaWYgKG9wdF9lcnJvclJhbmdlID09PSB1bmRlZmluZWQpCisgICAgb3B0X2Vycm9yUmFu
Z2UgPSAwLjAwMTsKKworICB2YXIgZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZXhwZWN0
ZWQubGVuZ3RoKTsKKyAgZ2wuZ2V0QnVmZmVyU3ViRGF0YSh0YXJnZXQsIDAsIGZsb2F0QXJyYXkp
OworCisgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspIHsKKyAgICBp
ZiAoTWF0aC5hYnMoZmxvYXRBcnJheVtpXSAtIGV4cGVjdGVkW2ldKSA+IG9wdF9lcnJvclJhbmdl
KSB7CisgICAgICB0ZXN0RmFpbGVkKG9wdF9tc2cpOworICAgICAgZGVidWcoJ2F0IFsnICsgaSAr
ICddIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWRbaV0gKyAnIHdhcyAnICsgZmxvYXRBcnJheVtpXSk7
CisgICAgICByZXR1cm47CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQob3B0X21zZyk7Cit9Owor
CisvKioKKyAqIExvYWRzIGEgdGV4dHVyZSwgY2FsbHMgY2FsbGJhY2sgd2hlbiBmaW5pc2hlZC4K
KyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBvZiBpbWFnZSB0byBs
b2FkCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCFJbWFnZSk6IHZvaWR9IGNhbGxiYWNrIEZ1bmN0aW9u
IHRoYXQgZ2V0cyBjYWxsZWQgYWZ0ZXIKKyAqICAgICAgICBpbWFnZSBoYXMgbG9hZGVkCisgKiBA
cmV0dXJuIHshV2ViR0xUZXh0dXJlfSBUaGUgY3JlYXRlZCB0ZXh0dXJlLgorICovCit2YXIgbG9h
ZFRleHR1cmUgPSBmdW5jdGlvbihnbCwgdXJsLCBjYWxsYmFjaykgeworICAgIHZhciB0ZXh0dXJl
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgdmFyIGltYWdl
ID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgICAgICBnbC5waXhl
bFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKTsKKyAgICAgICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBpbWFnZSk7CisgICAgICAgIGNhbGxiYWNrKGltYWdlKTsKKyAgICB9OworICAgIGltYWdlLnNy
YyA9IHVybDsKKyAgICByZXR1cm4gdGV4dHVyZTsKK307CisKKy8qKgorICogQ2hlY2tzIHdoZXRo
ZXIgdGhlIGJvdW5kIHRleHR1cmUgaGFzIGV4cGVjdGVkIGRpbWVuc2lvbnMuIE9uZSBjb3JuZXIg
cGl4ZWwKKyAqIG9mIHRoZSB0ZXh0dXJlIHdpbGwgYmUgY2hhbmdlZCBhcyBhIHNpZGUgZWZmZWN0
LgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IVdlYkdMVGV4dHVyZX0gdGV4dHVyZSBUaGUg
dGV4dHVyZSB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCBFeHBlY3RlZCB3aWR0
aC4KKyAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgRXhwZWN0ZWQgaGVpZ2h0LgorICogQHBhcmFt
IHtHTGVudW19IG9wdF9mb3JtYXQgVGhlIHRleHR1cmUncyBmb3JtYXQuIERlZmF1bHRzIHRvIFJH
QkEuCisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X3R5cGUgVGhlIHRleHR1cmUncyB0eXBlLiBEZWZh
dWx0cyB0byBVTlNJR05FRF9CWVRFLgorICovCit2YXIgY2hlY2tUZXh0dXJlU2l6ZSA9IGZ1bmN0
aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCBvcHRfZm9ybWF0LCBvcHRfdHlwZSkgeworICBvcHRfZm9y
bWF0ID0gb3B0X2Zvcm1hdCB8fCBnbC5SR0JBOworICBvcHRfdHlwZSA9IG9wdF90eXBlIHx8IGds
LlVOU0lHTkVEX0JZVEU7CisKKyAgdmFyIG51bUVsZW1lbnRzID0gZ2V0VHlwZWRBcnJheUVsZW1l
bnRzUGVyUGl4ZWwoZ2wsIG9wdF9mb3JtYXQsIG9wdF90eXBlKTsKKyAgdmFyIGJ1ZiA9IG5ldyAo
Z2xUeXBlVG9UeXBlZEFycmF5VHlwZShnbCwgb3B0X3R5cGUpKShudW1FbGVtZW50cyk7CisKKyAg
dmFyIGVycm9ycyA9IDA7CisgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgd2lk
dGggLSAxLCBoZWlnaHQgLSAxLCAxLCAxLCBvcHRfZm9ybWF0LCBvcHRfdHlwZSwgYnVmKTsKKyAg
aWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpIHsKKyAgICB0ZXN0RmFpbGVkKCJUZXh0
dXJlIHdhcyBzbWFsbGVyIHRoYW4gdGhlIGV4cGVjdGVkIHNpemUgIiArIHdpZHRoICsgIngiICsg
aGVpZ2h0KTsKKyAgICArK2Vycm9yczsKKyAgfQorICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIHdpZHRoIC0gMSwgaGVpZ2h0LCAxLCAxLCBvcHRfZm9ybWF0LCBvcHRfdHlwZSwg
YnVmKTsKKyAgaWYgKGdsLmdldEVycm9yKCkgPT0gZ2wuTk9fRVJST1IpIHsKKyAgICB0ZXN0RmFp
bGVkKCJUZXh0dXJlIHdhcyB0YWxsZXIgdGhhbiAiICsgaGVpZ2h0KTsKKyAgICArK2Vycm9yczsK
KyAgfQorICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHdpZHRoLCBoZWlnaHQg
LSAxLCAxLCAxLCBvcHRfZm9ybWF0LCBvcHRfdHlwZSwgYnVmKTsKKyAgaWYgKGdsLmdldEVycm9y
KCkgPT0gZ2wuTk9fRVJST1IpIHsKKyAgICB0ZXN0RmFpbGVkKCJUZXh0dXJlIHdhcyB3aWRlciB0
aGFuICIgKyB3aWR0aCk7CisgICAgKytlcnJvcnM7CisgIH0KKyAgaWYgKGVycm9ycyA9PSAwKSB7
CisgICAgdGVzdFBhc3NlZCgiVGV4dHVyZSBoYWQgdGhlIGV4cGVjdGVkIHNpemUgIiArIHdpZHRo
ICsgIngiICsgaGVpZ2h0KTsKKyAgfQorfTsKKworLyoqCisgKiBNYWtlcyBhIHNoYWxsb3cgY29w
eSBvZiBhbiBvYmplY3QuCisgKiBAcGFyYW0geyFPYmplY3R9IHNyYyBPYmplY3QgdG8gY29weQor
ICogQHJldHVybiB7IU9iamVjdH0gVGhlIGNvcHkgb2Ygc3JjLgorICovCit2YXIgc2hhbGxvd0Nv
cHlPYmplY3QgPSBmdW5jdGlvbihzcmMpIHsKKyAgdmFyIGRzdCA9IHt9OworICBmb3IgKHZhciBh
dHRyIGluIHNyYykgeworICAgIGlmIChzcmMuaGFzT3duUHJvcGVydHkoYXR0cikpIHsKKyAgICAg
IGRzdFthdHRyXSA9IHNyY1thdHRyXTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIGRzdDsKK307CisK
Ky8qKgorICogQ2hlY2tzIGlmIGFuIGF0dHJpYnV0ZSBleGlzdHMgb24gYW4gb2JqZWN0IGNhc2Ug
aW5zZW5zaXRpdmUuCisgKiBAcGFyYW0geyFPYmplY3R9IG9iaiBPYmplY3QgdG8gY2hlY2sKKyAq
IEBwYXJhbSB7c3RyaW5nfSBhdHRyIE5hbWUgb2YgYXR0cmlidXRlIHRvIGxvb2sgZm9yLgorICog
QHJldHVybiB7c3RyaW5nP30gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBpZiBpdCBleGlzdHMs
CisgKiAgICAgICAgIHVuZGVmaW5lZCBpZiBub3QuCisgKi8KK3ZhciBoYXNBdHRyaWJ1dGVDYXNl
SW5zZW5zaXRpdmUgPSBmdW5jdGlvbihvYmosIGF0dHIpIHsKKyAgdmFyIGxvd2VyID0gYXR0ci50
b0xvd2VyQ2FzZSgpOworICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CisgICAgaWYgKG9iai5oYXNP
d25Qcm9wZXJ0eShrZXkpICYmIGtleS50b0xvd2VyQ2FzZSgpID09IGxvd2VyKSB7CisgICAgICBy
ZXR1cm4ga2V5OworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBSZXR1cm5zIGEgbWFwIG9mIFVS
TCBxdWVyeXN0cmluZyBvcHRpb25zCisgKiBAcmV0dXJuIHtPYmplY3Q/fSBPYmplY3QgY29udGFp
bmluZyBhbGwgdGhlIHZhbHVlcyBpbiB0aGUgVVJMIHF1ZXJ5c3RyaW5nCisgKi8KK3ZhciBnZXRV
cmxPcHRpb25zID0gKGZ1bmN0aW9uKCkgeworICB2YXIgX3VybE9wdGlvbnNQYXJzZWQgPSBmYWxz
ZTsKKyAgdmFyIF91cmxPcHRpb25zID0ge307CisgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICBp
ZiAoIV91cmxPcHRpb25zUGFyc2VkKSB7CisgICAgICB2YXIgcyA9IHdpbmRvdy5sb2NhdGlvbi5o
cmVmOworICAgICAgdmFyIHEgPSBzLmluZGV4T2YoIj8iKTsKKyAgICAgIHZhciBlID0gcy5pbmRl
eE9mKCIjIik7CisgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgZSA9IHMubGVuZ3RoOworICAg
ICAgfQorICAgICAgdmFyIHF1ZXJ5ID0gcy5zdWJzdHJpbmcocSArIDEsIGUpOworICAgICAgdmFy
IHBhaXJzID0gcXVlcnkuc3BsaXQoIiYiKTsKKyAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBw
YWlycy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgdmFyIGtleVZhbHVlID0gcGFpcnNbaWldLnNw
bGl0KCI9Iik7CisgICAgICAgIHZhciBrZXkgPSBrZXlWYWx1ZVswXTsKKyAgICAgICAgdmFyIHZh
bHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleVZhbHVlWzFdKTsKKyAgICAgICAgX3VybE9wdGlv
bnNba2V5XSA9IHZhbHVlOworICAgICAgfQorICAgICAgX3VybE9wdGlvbnNQYXJzZWQgPSB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBfdXJsT3B0aW9uczsKKyAgfQorfSkoKTsKKwordmFyIGRl
ZmF1bHQzRENvbnRleHRWZXJzaW9uID0gMTsKKworLyoqCisgKiBTZXQgdGhlIGRlZmF1bHQgY29u
dGV4dCB2ZXJzaW9uIGZvciBjcmVhdGUzRENvbnRleHQuCisgKiBJbml0aWFsbHkgdGhlIGRlZmF1
bHQgdmVyc2lvbiBpcyAxLgorICogQHBhcmFtIHtudW1iZXJ9IERlZmF1bHQgdmVyc2lvbiBvZiBX
ZWJHTCBjb250ZXh0cy4KKyAqLwordmFyIHNldERlZmF1bHQzRENvbnRleHRWZXJzaW9uID0gZnVu
Y3Rpb24odmVyc2lvbikgeworICAgIGRlZmF1bHQzRENvbnRleHRWZXJzaW9uID0gdmVyc2lvbjsK
K307CisKKy8qKgorICogR2V0IHRoZSBkZWZhdWx0IGNvbnRleCB2ZXJzaW9uIGZvciBjcmVhdGUz
RENvbnRleHQuCisgKiBGaXJzdCBpdCBsb29rcyBhdCB0aGUgVVJJIG9wdGlvbiB8d2ViZ2xWZXJz
aW9ufC4gSWYgaXQgZG9lcyBub3QgZXhpc3QsCisgKiB0aGVuIGxvb2sgYXQgdGhlIGdsb2JhbCBk
ZWZhdWx0M0RDb250ZXh0VmVyc2lvbiB2YXJpYWJsZS4KKyAqLwordmFyIGdldERlZmF1bHQzRENv
bnRleHRWZXJzaW9uID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHBhcnNlSW50KGdldFVybE9w
dGlvbnMoKS53ZWJnbFZlcnNpb24sIDEwKSB8fCBkZWZhdWx0M0RDb250ZXh0VmVyc2lvbjsKK307
CisKKy8qKgorICogQ3JlYXRlcyBhIHdlYmdsIGNvbnRleHQuCisgKiBAcGFyYW0geyFDYW52YXN8
c3RyaW5nfSBvcHRfY2FudmFzIFRoZSBjYW52YXMgdGFnIHRvIGdldAorICogICAgIGNvbnRleHQg
ZnJvbS4gSWYgb25lIGlzIG5vdCBwYXNzZWQgaW4gb25lIHdpbGwgYmUKKyAqICAgICBjcmVhdGVk
LiBJZiBpdCdzIGEgc3RyaW5nIGl0J3MgYXNzdW1lZCB0byBiZSB0aGUgaWQgb2YgYQorICogICAg
IGNhbnZhcy4KKyAqIEBwYXJhbSB7T2JqZWN0fSBvcHRfYXR0cmlidXRlcyBDb250ZXh0IGF0dHJp
YnV0ZXMuCisgKiBAcGFyYW0geyFudW1iZXJ9IG9wdF92ZXJzaW9uIFZlcnNpb24gb2YgV2ViR0wg
Y29udGV4dCB0byBjcmVhdGUuCisgKiAgICAgVGhlIGRlZmF1bHQgdmVyc2lvbiBjYW4gYmUgc2V0
IGJ5IGNhbGxpbmcgc2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb24uCisgKiBAcmV0dXJuIHshV2Vi
R0xSZW5kZXJpbmdDb250ZXh0fSBUaGUgY3JlYXRlZCBjb250ZXh0LgorICovCit2YXIgY3JlYXRl
M0RDb250ZXh0ID0gZnVuY3Rpb24ob3B0X2NhbnZhcywgb3B0X2F0dHJpYnV0ZXMsIG9wdF92ZXJz
aW9uKSB7CisgIGlmICh3aW5kb3cuaW5pdFRlc3RpbmdIYXJuZXNzKSB7CisgICAgd2luZG93Lmlu
aXRUZXN0aW5nSGFybmVzcygpOworICB9CisgIHZhciBhdHRyaWJ1dGVzID0gc2hhbGxvd0NvcHlP
YmplY3Qob3B0X2F0dHJpYnV0ZXMgfHwge30pOworICBpZiAoIWhhc0F0dHJpYnV0ZUNhc2VJbnNl
bnNpdGl2ZShhdHRyaWJ1dGVzLCAiYW50aWFsaWFzIikpIHsKKyAgICBhdHRyaWJ1dGVzLmFudGlh
bGlhcyA9IGZhbHNlOworICB9CisgIGlmICghb3B0X3ZlcnNpb24pIHsKKyAgICBvcHRfdmVyc2lv
biA9IGdldERlZmF1bHQzRENvbnRleHRWZXJzaW9uKCk7CisgIH0KKyAgb3B0X2NhbnZhcyA9IG9w
dF9jYW52YXMgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgIGlmICh0eXBl
b2Ygb3B0X2NhbnZhcyA9PSAnc3RyaW5nJykgeworICAgIG9wdF9jYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChvcHRfY2FudmFzKTsKKyAgfQorICB2YXIgY29udGV4dCA9IG51bGw7CisK
KyAgdmFyIG5hbWVzOworICBzd2l0Y2ggKG9wdF92ZXJzaW9uKSB7CisgICAgY2FzZSAyOgorICAg
ICAgbmFtZXMgPSBbIndlYmdsMiJdOyBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgbmFtZXMg
PSBbIndlYmdsIiwgImV4cGVyaW1lbnRhbC13ZWJnbCJdOyBicmVhazsKKyAgfQorCisgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICB0cnkgeworICAgICAgY29u
dGV4dCA9IG9wdF9jYW52YXMuZ2V0Q29udGV4dChuYW1lc1tpXSwgYXR0cmlidXRlcyk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgIH0KKyAgICBpZiAoY29udGV4dCkgeworICAgICAgYnJlYWs7Cisg
ICAgfQorICB9CisgIGlmICghY29udGV4dCkgeworICAgIHRlc3RGYWlsZWQoIlVuYWJsZSB0byBm
ZXRjaCBXZWJHTCByZW5kZXJpbmcgY29udGV4dCBmb3IgQ2FudmFzIik7CisgIH0gZWxzZSB7Cisg
ICAgaWYgKCF3aW5kb3cuX3d0dV9jb250ZXh0cykgeworICAgICAgd2luZG93Ll93dHVfY29udGV4
dHMgPSBbXQorICAgIH0KKyAgICB3aW5kb3cuX3d0dV9jb250ZXh0cy5wdXNoKGNvbnRleHQpOwor
ICB9CisgIHJldHVybiBjb250ZXh0OworfTsKKworLyoqCisgKiBJbmRpY2F0ZXMgd2hldGhlciB0
aGUgZ2l2ZW4gY29udGV4dCBpcyBXZWJHTCAyLjAgb3IgZ3JlYXRlci4KKyAqIEBwYXJhbSB7IVdl
YkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2Uu
CisgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBnaXZlbiBjb250ZXh0IGlzIFdlYkdM
IDIuMCBvciBncmVhdGVyLgorICovCit2YXIgaXNXZWJHTDIgPSBmdW5jdGlvbihnbCkgeworICAv
LyBEdWNrIHR5cGluZyBpcyB1c2VkIHNvIHRoYXQgdGhlIGNvbmZvcm1hbmNlIHN1aXRlIGNhbiBi
ZSBydW4KKyAgLy8gYWdhaW5zdCBsaWJyYXJpZXMgZW11bGF0aW5nIFdlYkdMIDEuMCBvbiB0b3Ag
b2YgV2ViR0wgMi4wLgorICByZXR1cm4gISFnbC5kcmF3QXJyYXlzSW5zdGFuY2VkOworfTsKKwor
LyoqCisgKiBEZWZpbmVzIHRoZSBleGNlcHRpb24gdHlwZSBmb3IgYSBHTCBlcnJvci4KKyAqIEBj
b25zdHJ1Y3RvcgorICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2Uu
CisgKiBAcGFyYW0ge251bWJlcn0gZXJyb3IgR0wgZXJyb3IgY29kZQorICovCitmdW5jdGlvbiBH
TEVycm9yRXhjZXB0aW9uIChtZXNzYWdlLCBlcnJvcikgeworICAgdGhpcy5tZXNzYWdlID0gbWVz
c2FnZTsKKyAgIHRoaXMubmFtZSA9ICJHTEVycm9yRXhjZXB0aW9uIjsKKyAgIHRoaXMuZXJyb3Ig
PSBlcnJvcjsKK307CisKKy8qKgorICogV3JhcHMgYSBXZWJHTCBmdW5jdGlvbiB3aXRoIGEgZnVu
Y3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZXJlIGlzCisgKiBhbiBlcnJvci4K
KyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gZm5hbWUgTmFtZSBvZiBmdW5jdGlv
biB0byB3cmFwLgorICogQHJldHVybiB7ZnVuY3Rpb24oKX0gVGhlIHdyYXBwZWQgZnVuY3Rpb24u
CisgKi8KK3ZhciBjcmVhdGVHTEVycm9yV3JhcHBlciA9IGZ1bmN0aW9uKGNvbnRleHQsIGZuYW1l
KSB7CisgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICB2YXIgcnYgPSBjb250ZXh0W2ZuYW1lXS5h
cHBseShjb250ZXh0LCBhcmd1bWVudHMpOworICAgIHZhciBlcnIgPSBjb250ZXh0LmdldEVycm9y
KCk7CisgICAgaWYgKGVyciAhPSBjb250ZXh0Lk5PX0VSUk9SKSB7CisgICAgICB2YXIgbXNnID0g
IkdMIGVycm9yICIgKyBnbEVudW1Ub1N0cmluZyhjb250ZXh0LCBlcnIpICsgIiBpbiAiICsgZm5h
bWU7CisgICAgICB0aHJvdyBuZXcgR0xFcnJvckV4Y2VwdGlvbihtc2csIGVycik7CisgICAgfQor
ICAgIHJldHVybiBydjsKKyAgfTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIFdlYkdMIGNvbnRl
eHQgd2hlcmUgYWxsIGZ1bmN0aW9ucyBhcmUgd3JhcHBlZCB0byB0aHJvdyBhbiBleGNlcHRpb24K
KyAqIGlmIHRoZXJlIGlzIGFuIGVycm9yLgorICogQHBhcmFtIHshQ2FudmFzfSBjYW52YXMgVGhl
IEhUTUwgY2FudmFzIHRvIGdldCBhIGNvbnRleHQgZnJvbS4KKyAqIEBwYXJhbSB7T2JqZWN0fSBv
cHRfYXR0cmlidXRlcyBDb250ZXh0IGF0dHJpYnV0ZXMuCisgKiBAcGFyYW0geyFudW1iZXJ9IG9w
dF92ZXJzaW9uIFZlcnNpb24gb2YgV2ViR0wgY29udGV4dCB0byBjcmVhdGUKKyAqIEByZXR1cm4g
eyFPYmplY3R9IFRoZSB3cmFwcGVkIGNvbnRleHQuCisgKi8KK2Z1bmN0aW9uIGNyZWF0ZTNEQ29u
dGV4dFdpdGhXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvcihjYW52YXMsIG9wdF9hdHRyaWJ1dGVz
LCBvcHRfdmVyc2lvbikgeworICB2YXIgY29udGV4dCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMs
IG9wdF9hdHRyaWJ1dGVzLCBvcHRfdmVyc2lvbik7CisgIHZhciB3cmFwID0ge307CisgIGZvciAo
dmFyIGkgaW4gY29udGV4dCkgeworICAgIHRyeSB7CisgICAgICBpZiAodHlwZW9mIGNvbnRleHRb
aV0gPT0gJ2Z1bmN0aW9uJykgeworICAgICAgICB3cmFwW2ldID0gY3JlYXRlR0xFcnJvcldyYXBw
ZXIoY29udGV4dCwgaSk7CisgICAgICB9IGVsc2UgeworICAgICAgICB3cmFwW2ldID0gY29udGV4
dFtpXTsKKyAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgICBlcnJvcigiY3JlYXRlQ29u
dGV4dFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9yOiBFcnJvciBhY2Nlc3NpbmcgIiArIGkpOwor
ICAgIH0KKyAgfQorICB3cmFwLmdldEVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4g
Y29udGV4dC5nZXRFcnJvcigpOworICB9OworICByZXR1cm4gd3JhcDsKK307CisKKy8qKgorICog
VGVzdHMgdGhhdCBhbiBldmFsdWF0ZWQgZXhwcmVzc2lvbiBnZW5lcmF0ZXMgYSBzcGVjaWZpYyBH
TCBlcnJvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcnxBcnJheS48bnVtYmVy
Pn0gZ2xFcnJvcnMgVGhlIGV4cGVjdGVkIGdsIGVycm9yIG9yIGFuIGFycmF5IG9mIGV4cGVjdGVk
IGVycm9ycy4KKyAqIEBwYXJhbSB7c3RyaW5nfSBldmFsU3RyIFRoZSBzdHJpbmcgdG8gZXZhbHVh
dGUuCisgKi8KK3ZhciBzaG91bGRHZW5lcmF0ZUdMRXJyb3IgPSBmdW5jdGlvbihnbCwgZ2xFcnJv
cnMsIGV2YWxTdHIsIG9wdF9tc2cpIHsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdHJ5IHsKKyAgICBl
dmFsKGV2YWxTdHIpOworICB9IGNhdGNoIChlKSB7CisgICAgZXhjZXB0aW9uID0gZTsKKyAgfQor
ICBpZiAoZXhjZXB0aW9uKSB7CisgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiB0aHJldyBleGNl
cHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIC0xOworICB9IGVsc2UgeworICAgIGlm
ICghb3B0X21zZykgeworICAgICAgb3B0X21zZyA9ICJhZnRlciBldmFsdWF0aW5nOiAiICsgZXZh
bFN0cjsKKyAgICB9CisgICAgcmV0dXJuIGdsRXJyb3JTaG91bGRCZShnbCwgZ2xFcnJvcnMsIG9w
dF9tc2cpOworICB9Cit9OworCisvKioKKyAqIFRlc3RzIHRoYXQgYW4gZXZhbHVhdGVkIGV4cHJl
c3Npb24gZG9lcyBub3QgZ2VuZXJhdGUgYSBHTCBlcnJvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0ge3N0cmluZ30gZXZhbFN0ciBUaGUgc3RyaW5nIHRvIGV2YWx1YXRlLgorICovCit2YXIg
ZmFpbElmR0xFcnJvciA9IGZ1bmN0aW9uKGdsLCBldmFsU3RyKSB7CisgIHZhciBleGNlcHRpb247
CisgIHRyeSB7CisgICAgZXZhbChldmFsU3RyKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGV4Y2Vw
dGlvbiA9IGU7CisgIH0KKyAgaWYgKGV4Y2VwdGlvbikgeworICAgIHRlc3RGYWlsZWQoZXZhbFN0
ciArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICB9IGVsc2UgeworICAgIGds
RXJyb3JTaG91bGRCZUltcGwoZ2wsIGdsLk5PX0VSUk9SLCBmYWxzZSwgImFmdGVyIGV2YWx1YXRp
bmc6ICIgKyBldmFsU3RyKTsKKyAgfQorfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IHRoZSBmaXJz
dCBlcnJvciBHTCByZXR1cm5zIGlzIHRoZSBzcGVjaWZpZWQgZXJyb3IuCisgKiBAcGFyYW0geyFX
ZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNl
LgorICogQHBhcmFtIHtudW1iZXJ8QXJyYXkuPG51bWJlcj59IGdsRXJyb3JzIFRoZSBleHBlY3Rl
ZCBnbCBlcnJvciBvciBhbiBhcnJheSBvZiBleHBlY3RlZCBlcnJvcnMuCisgKiBAcGFyYW0ge3N0
cmluZ30gb3B0X21zZyBPcHRpb25hbCBhZGRpdGlvbmFsIG1lc3NhZ2UuCisgKi8KK3ZhciBnbEVy
cm9yU2hvdWxkQmUgPSBmdW5jdGlvbihnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKKyAgcmV0dXJu
IGdsRXJyb3JTaG91bGRCZUltcGwoZ2wsIGdsRXJyb3JzLCB0cnVlLCBvcHRfbXNnKTsKK307CisK
K2NvbnN0IGdsRXJyb3JBc3NlcnQgPSBmdW5jdGlvbihnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsK
KyAgcmV0dXJuIGdsRXJyb3JTaG91bGRCZUltcGwoZ2wsIGdsRXJyb3JzLCBmYWxzZSwgb3B0X21z
Zyk7Cit9OworCisvKioKKyAqIFRlc3RzIHRoYXQgdGhlIGdpdmVuIGZyYW1lYnVmZmVyIGhhcyBh
IHNwZWNpZmljIHN0YXR1cworICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBU
aGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfEFycmF5
LjxudW1iZXI+fSBnbFN0YXR1c2VzIFRoZSBleHBlY3RlZCBnbAorICogICAgICAgIHN0YXR1cyBv
ciBhbiBhcnJheSBvZiBleHBlY3RlZCBzdGF0dXNlcy4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRf
bXNnIE9wdGlvbmFsIGFkZGl0aW9uYWwgbWVzc2FnZS4KKyAqLwordmFyIGZyYW1lYnVmZmVyU3Rh
dHVzU2hvdWxkQmUgPSBmdW5jdGlvbihnbCwgdGFyZ2V0LCBnbFN0YXR1c2VzLCBvcHRfbXNnKSB7
CisgIGlmICghZ2xTdGF0dXNlcy5sZW5ndGgpIHsKKyAgICBnbFN0YXR1c2VzID0gW2dsU3RhdHVz
ZXNdOworICB9CisgIG9wdF9tc2cgPSBvcHRfbXNnIHx8ICIiOworICBjb25zdCBzdGF0dXMgPSBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKHRhcmdldCk7CisgIGNvbnN0IG5keCA9IGdsU3RhdHVz
ZXMuaW5kZXhPZihzdGF0dXMpOworICBjb25zdCBleHBlY3RlZCA9IGdsU3RhdHVzZXMubWFwKChz
dGF0dXMpID0+IHsKKyAgICByZXR1cm4gZ2xFbnVtVG9TdHJpbmcoZ2wsIHN0YXR1cyk7CisgIH0p
LmpvaW4oJyBvciAnKTsKKyAgaWYgKG5keCA8IDApIHsKKyAgICBsZXQgbXNnID0gImNoZWNrRnJh
bWVidWZmZXJTdGF0dXMgZXhwZWN0ZWQiICsgKChnbFN0YXR1c2VzLmxlbmd0aCA+IDEpID8gIiBv
bmUgb2Y6ICIgOiAiOiAiKSArCisgICAgICBleHBlY3RlZCArICAiLiBXYXMgIiArIGdsRW51bVRv
U3RyaW5nKGdsLCBzdGF0dXMpOworICAgIGlmIChvcHRfbXNnKSB7CisgICAgICBtc2cgKz0gIjog
IiArIG9wdF9tc2c7CisgICAgfQorICAgIHRlc3RGYWlsZWQobXNnKTsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgbGV0IG1zZyA9IGBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzIHdhcyAke2dsRW51
bVRvU3RyaW5nKGdsLCBzdGF0dXMpfWA7CisgIGlmIChnbFN0YXR1c2VzLmxlbmd0aCA+IDEpIHsK
KyAgICBtc2cgKz0gYCwgb25lIG9mOiAke2V4cGVjdGVkfWA7CisgIH0KKyAgaWYgKG9wdF9tc2cp
IHsKKyAgICBtc2cgKz0gIjogIiArIG9wdF9tc2c7CisgIH0KKyAgdGVzdFBhc3NlZChtc2cpOwor
ICByZXR1cm4gW3N0YXR1c107Cit9CisKKy8qKgorICogVGVzdHMgdGhhdCB0aGUgZmlyc3QgZXJy
b3IgR0wgcmV0dXJucyBpcyB0aGUgc3BlY2lmaWVkIGVycm9yLiBBbGxvd3Mgc3VwcHJlc3Npb24g
b2Ygc3VjY2Vzc2VzLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUg
V2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfEFycmF5Ljxu
dW1iZXI+fSBnbEVycm9ycyBUaGUgZXhwZWN0ZWQgZ2wgZXJyb3Igb3IgYW4gYXJyYXkgb2YgZXhw
ZWN0ZWQgZXJyb3JzLgorICogQHBhcmFtIHtib29sZWFufSByZXBvcnRTdWNjZXNzZXMgV2hldGhl
ciB0byByZXBvcnQgc3VjY2Vzc2VzIGFzIHBhc3Nlcywgb3IgdG8gc2lsZW50bHkgcGFzcy4KKyAq
IEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE9wdGlvbmFsIGFkZGl0aW9uYWwgbWVzc2FnZS4KKyAq
LwordmFyIGdsRXJyb3JTaG91bGRCZUltcGwgPSBmdW5jdGlvbihnbCwgZ2xFcnJvcnMsIHJlcG9y
dFN1Y2Nlc3Nlcywgb3B0X21zZykgeworICBpZiAoIWdsRXJyb3JzLmxlbmd0aCkgeworICAgIGds
RXJyb3JzID0gW2dsRXJyb3JzXTsKKyAgfQorICBvcHRfbXNnID0gb3B0X21zZyB8fCAiIjsKKwor
ICBjb25zdCBmbkVyclN0ciA9IGZ1bmN0aW9uKGVyclZhbCkgeworICAgIGlmIChlcnJWYWwgPT0g
MCkgcmV0dXJuICJOT19FUlJPUiI7CisgICAgcmV0dXJuIGdsRW51bVRvU3RyaW5nKGdsLCBlcnJW
YWwpOworICB9OworCisgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICB2YXIgbmR4ID0gZ2xF
cnJvcnMuaW5kZXhPZihlcnIpOworICB2YXIgZXJyU3RycyA9IFtdOworICBmb3IgKHZhciBpaSA9
IDA7IGlpIDwgZ2xFcnJvcnMubGVuZ3RoOyArK2lpKSB7CisgICAgZXJyU3Rycy5wdXNoKGZuRXJy
U3RyKGdsRXJyb3JzW2lpXSkpOworICB9CisgIHZhciBleHBlY3RlZCA9IGVyclN0cnMuam9pbigi
IG9yICIpOworICBpZiAobmR4IDwgMCkgeworICAgIHZhciBtc2cgPSAiZ2V0RXJyb3IgZXhwZWN0
ZWQiICsgKChnbEVycm9ycy5sZW5ndGggPiAxKSA/ICIgb25lIG9mOiAiIDogIjogIik7CisgICAg
dGVzdEZhaWxlZChtc2cgKyBleHBlY3RlZCArICAiLiBXYXMgIiArIGZuRXJyU3RyKGVycikgKyAi
IDogIiArIG9wdF9tc2cpOworICB9IGVsc2UgaWYgKHJlcG9ydFN1Y2Nlc3NlcykgeworICAgIHZh
ciBtc2cgPSAiZ2V0RXJyb3Igd2FzICIgKyAoKGdsRXJyb3JzLmxlbmd0aCA+IDEpID8gIm9uZSBv
ZjogIiA6ICJleHBlY3RlZCB2YWx1ZTogIik7CisgICAgdGVzdFBhc3NlZChtc2cgKyBleHBlY3Rl
ZCArICIgOiAiICsgb3B0X21zZyk7CisgIH0KKyAgcmV0dXJuIGVycjsKK307CisKKy8qKgorICog
VGVzdHMgdGhhdCBhIGZ1bmN0aW9uIHRocm93cyBvciBub3QuCisgKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHRocm93VHlwZSBU
eXBlIG9mIHRocm93biBlcnJvciAoZS5nLiBUeXBlRXJyb3IpLCBvciBmYWxzZS4KKyAqIEBwYXJh
bSB7c3RyaW5nfSBpbmZvIEluZm8gb24gd2hhdCdzIGJlaW5nIHRlc3RlZAorICogQHBhcmFtIHtm
dW5jdGlvbn0gZnVuYyBUaGUgZnVuYyB0byB0ZXN0LgorICovCit2YXIgc2hvdWxkVGhyb3cgPSBm
dW5jdGlvbihnbCwgdGhyb3dUeXBlLCBpbmZvLCBmdW5jKSB7CisgIHdoaWxlIChnbC5nZXRFcnJv
cigpKSB7fQorCisgIHZhciBzaG91bGRUaHJvdyA9ICh0aHJvd1R5cGUgIT0gZmFsc2UpOworCisg
IHRyeSB7CisgICAgZnVuYygpOworCisgICAgaWYgKHNob3VsZFRocm93KSB7CisgICAgICB0ZXN0
RmFpbGVkKCJTaG91bGQgdGhyb3cgYSAiICsgdGhyb3dUeXBlLm5hbWUgKyAiOiAiICsgaW5mbyk7
CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBub3QgaGF2ZSB0aHJvd246
ICIgKyBpbmZvKTsKKyAgICB9CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBpZiAoc2hvdWxkVGhyb3cp
IHsKKyAgICAgIGlmIChlIGluc3RhbmNlb2YgdGhyb3dUeXBlKSB7CisgICAgICAgIHRlc3RQYXNz
ZWQoIlNob3VsZCB0aHJvdyBhICIgKyB0aHJvd1R5cGUubmFtZSArICI6ICIgKyBpbmZvKTsKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCB0aHJvdyBhICIgKyB0aHJv
d1R5cGUubmFtZSArICIsIHRocmV3ICIgKyBlLm5hbWUgKyAiOiAiICsgaW5mbyk7CisgICAgICB9
CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgaGF2ZSB0aHJvd246
ICIgKyBpbmZvKTsKKyAgICB9CisKKyAgICBpZiAoZ2wuZ2V0RXJyb3IoKSkgeworICAgICAgdGVz
dEZhaWxlZCgiU2hvdWxkIG5vdCBnZW5lcmF0ZSBhbiBlcnJvciB3aGVuIHRocm93aW5nOiAiICsg
aW5mbyk7CisgICAgfQorICB9CisKKyAgd2hpbGUgKGdsLmdldEVycm9yKCkpIHt9Cit9OworCisv
KioKKyAqIExpbmtzIGEgV2ViR0wgcHJvZ3JhbSwgdGhyb3dzIGlmIHRoZXJlIGFyZSBlcnJvcnMu
CisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshV2ViR0xQcm9ncmFtfSBwcm9ncmFtIFRoZSBX
ZWJHTFByb2dyYW0gdG8gbGluay4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZH0g
b3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqLwordmFyIGxpbmtQcm9n
cmFtID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKSB7CisgIHZhciBl
cnJGbiA9IG9wdF9lcnJvckNhbGxiYWNrIHx8IHRlc3RGYWlsZWQ7CisgIC8vIExpbmsgdGhlIHBy
b2dyYW0KKyAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisKKyAgLy8gQ2hlY2sgdGhlIGxpbmsg
c3RhdHVzCisgIHZhciBsaW5rZWQgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGds
LkxJTktfU1RBVFVTKTsKKyAgaWYgKCFsaW5rZWQpIHsKKyAgICAvLyBzb21ldGhpbmcgd2VudCB3
cm9uZyB3aXRoIHRoZSBsaW5rCisgICAgdmFyIGVycm9yID0gZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cg
KHByb2dyYW0pOworCisgICAgZXJyRm4oIkVycm9yIGluIHByb2dyYW0gbGlua2luZzoiICsgZXJy
b3IpOworCisgICAgZ2wuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKKyAgfQorfTsKKworLyoqCisg
KiBMb2FkcyB0ZXh0IGZyb20gYW4gZXh0ZXJuYWwgZmlsZS4gVGhpcyBmdW5jdGlvbiBpcyBhc3lu
Y2hyb25vdXMuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFRoZSB1cmwgb2YgdGhlIGV4dGVybmFs
IGZpbGUuCisgKiBAcGFyYW0geyFmdW5jdGlvbihib29sLCBzdHJpbmcpOiB2b2lkfSBjYWxsYmFj
ayB0aGF0IGlzIHNlbnQgYSBib29sIGZvcgorICogICAgIHN1Y2Nlc3MgYW5kIHRoZSBzdHJpbmcu
CisgKi8KK3ZhciBsb2FkVGV4dEZpbGVBc3luYyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsK
KyAgbG9nICgibG9hZGluZzogIiArIHVybCk7CisgIHZhciBlcnJvciA9ICdsb2FkVGV4dEZpbGVB
c3luYyBmYWlsZWQgdG8gbG9hZCB1cmwgIicgKyB1cmwgKyAnIic7CisgIHZhciByZXF1ZXN0Owor
ICBpZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7CisgICAgcmVxdWVzdCA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgIGlmIChyZXF1ZXN0Lm92ZXJyaWRlTWltZVR5cGUpIHsKKyAgICAgIHJl
cXVlc3Qub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbicpOworICAgIH0KKyAgfSBlbHNlIHsK
KyAgICB0aHJvdyAnWE1MSHR0cFJlcXVlc3QgaXMgZGlzYWJsZWQnOworICB9CisgIHRyeSB7Cisg
ICAgcmVxdWVzdC5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOworICAgIHJlcXVlc3Qub25yZWFkeXN0
YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgICBpZiAocmVxdWVzdC5yZWFkeVN0YXRlID09
IDQpIHsKKyAgICAgICAgdmFyIHRleHQgPSAnJzsKKyAgICAgICAgLy8gSFRUUCByZXBvcnRzIHN1
Y2Nlc3Mgd2l0aCBhIDIwMCBzdGF0dXMuIFRoZSBmaWxlIHByb3RvY29sIHJlcG9ydHMKKyAgICAg
ICAgLy8gc3VjY2VzcyB3aXRoIHplcm8uIEhUVFAgZG9lcyBub3QgdXNlIHplcm8gYXMgYSBzdGF0
dXMgY29kZSAodGhleQorICAgICAgICAvLyBzdGFydCBhdCAxMDApLgorICAgICAgICAvLyBodHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9Fbi9Vc2luZ19YTUxIdHRwUmVxdWVzdAorICAgICAg
ICB2YXIgc3VjY2VzcyA9IHJlcXVlc3Quc3RhdHVzID09IDIwMCB8fCByZXF1ZXN0LnN0YXR1cyA9
PSAwOworICAgICAgICBpZiAoc3VjY2VzcykgeworICAgICAgICAgIHRleHQgPSByZXF1ZXN0LnJl
c3BvbnNlVGV4dDsKKyAgICAgICAgICBsb2coImNvbXBsZXRlZCBsb2FkIHJlcXVlc3Q6ICIgKyB1
cmwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGxvZygibG9hZGluZyAiICsgdXJsICsg
IiByZXN1bHRlZCBpbiB1bmV4cGVjdGVkIHN0YXR1czogIiArIHJlcXVlc3Quc3RhdHVzICsgIiAi
ICsgcmVxdWVzdC5zdGF0dXNUZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYWxsYmFjayhzdWNj
ZXNzLCB0ZXh0KTsKKyAgICAgIH0KKyAgICB9OworICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0
aW9uKGVycm9yRXZlbnQpIHsKKyAgICAgIGxvZygiZXJyb3Igb2NjdXJyZWQgbG9hZGluZyAiICsg
dXJsKTsKKyAgICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7CisgICAgfTsKKyAgICByZXF1ZXN0LnNl
bmQobnVsbCk7CisgIH0gY2F0Y2ggKGVycikgeworICAgIGxvZygiZmFpbGVkIHRvIGxvYWQ6ICIg
KyB1cmwgKyAiIHdpdGggZXhjZXB0aW9uICIgKyBlcnIubWVzc2FnZSk7CisgICAgY2FsbGJhY2so
ZmFsc2UsICcnKTsKKyAgfQorfTsKKworLyoqCisgKiBSZWN1cnNpdmVseSBsb2FkcyBhIGZpbGUg
YXMgYSBsaXN0LiBFYWNoIGxpbmUgaXMgcGFyc2VkIGZvciBhIHJlbGF0aXZlCisgKiBwYXRoLiBJ
ZiB0aGUgZmlsZSBlbmRzIGluIC50eHQgdGhlIGNvbnRlbnRzIG9mIHRoYXQgZmlsZSBpcyBpbnNl
cnRlZCBpbgorICogdGhlIGxpc3QuCisgKgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgdXJs
IG9mIHRoZSBleHRlcm5hbCBmaWxlLgorICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgQXJyYXk8
c3RyaW5nPik6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2VudCBhIGJvb2wKKyAqICAgICBmb3Ig
c3VjY2VzcyBhbmQgdGhlIGFycmF5IG9mIHN0cmluZ3MuCisgKi8KK3ZhciBnZXRGaWxlTGlzdEFz
eW5jID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgeworICB2YXIgZmlsZXMgPSBbXTsKKworICB2
YXIgZ2V0RmlsZUxpc3RJbXBsID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgeworICAgIHZhciBm
aWxlcyA9IFtdOworICAgIGlmICh1cmwuc3Vic3RyKHVybC5sZW5ndGggLSA0KSA9PSAnLnR4dCcp
IHsKKyAgICAgIGxvYWRUZXh0RmlsZUFzeW5jKHVybCwgZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiBmdW5jdGlvbihzdWNjZXNzLCB0ZXh0KSB7CisgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7
CisgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgJycpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgIH0KKyAgICAgICAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOworICAg
ICAgICAgIHZhciBwcmVmaXggPSAnJzsKKyAgICAgICAgICB2YXIgbGFzdFNsYXNoID0gdXJsLmxh
c3RJbmRleE9mKCcvJyk7CisgICAgICAgICAgaWYgKGxhc3RTbGFzaCA+PSAwKSB7CisgICAgICAg
ICAgICBwcmVmaXggPSB1cmwuc3Vic3RyKDAsIGxhc3RTbGFzaCArIDEpOworICAgICAgICAgIH0K
KyAgICAgICAgICB2YXIgZmFpbCA9IGZhbHNlOworICAgICAgICAgIHZhciBjb3VudCA9IDE7Cisg
ICAgICAgICAgdmFyIGluZGV4ID0gMDsKKyAgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwg
bGluZXMubGVuZ3RoOyArK2lpKSB7CisgICAgICAgICAgICB2YXIgc3RyID0gbGluZXNbaWldLnJl
cGxhY2UoL15cc1xzKi8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7CisgICAgICAgICAgICBp
ZiAoc3RyLmxlbmd0aCA+IDQgJiYKKyAgICAgICAgICAgICAgICBzdHJbMF0gIT0gJyMnICYmCisg
ICAgICAgICAgICAgICAgc3RyWzBdICE9ICI7IiAmJgorICAgICAgICAgICAgICAgIHN0ci5zdWJz
dHIoMCwgMikgIT0gIi8vIikgeworICAgICAgICAgICAgICB2YXIgbmFtZXMgPSBzdHIuc3BsaXQo
LyArLyk7CisgICAgICAgICAgICAgIHZhciBuZXdfdXJsID0gcHJlZml4ICsgc3RyOworICAgICAg
ICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgICAgICBuZXdfdXJs
ID0gcHJlZml4ICsgc3RyOworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAg
ICAgZ2V0RmlsZUxpc3RJbXBsKG5ld191cmwsIGZ1bmN0aW9uKGluZGV4KSB7CisgICAgICAgICAg
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2VzcywgbmV3X2ZpbGVzKSB7CisgICAgICAgICAg
ICAgICAgICAgIGxvZygiZ290IGZpbGVzOiAiICsgbmV3X2ZpbGVzLmxlbmd0aCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgZmlsZXNb
aW5kZXhdID0gbmV3X2ZpbGVzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGZpbmlzaChzdWNjZXNzKTsKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAgICAgfShpbmRleCsrKSk7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgdmFyIHMgPSAiIjsKKyAgICAgICAgICAgICAgICB2YXIgcCA9ICIiOworICAgICAgICAgICAg
ICAgIGZvciAodmFyIGpqID0gMDsgamogPCBuYW1lcy5sZW5ndGg7ICsramopIHsKKyAgICAgICAg
ICAgICAgICAgIHMgKz0gcCArIHByZWZpeCArIG5hbWVzW2pqXTsKKyAgICAgICAgICAgICAgICAg
IHAgPSAiICI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpbGVzW2luZGV4
KytdID0gczsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg
ICAgICAgICBmaW5pc2godHJ1ZSk7CisKKyAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goc3VjY2Vz
cykgeworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICAgIGZhaWwgPSB0
cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgIGxv
ZygiY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAgICBpZiAoIWNvdW50KSB7CisgICAgICAg
ICAgICAgIGNhbGxiYWNrKCFmYWlsLCBmaWxlcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICB9KCkpOworCisgICAgfSBlbHNlIHsKKyAgICAgIGZpbGVzLnB1
c2godXJsKTsKKyAgICAgIGNhbGxiYWNrKHRydWUsIGZpbGVzKTsKKyAgICB9CisgIH07CisKKyAg
Z2V0RmlsZUxpc3RJbXBsKHVybCwgZnVuY3Rpb24oc3VjY2VzcywgZmlsZXMpIHsKKyAgICAvLyBm
bGF0dGVuCisgICAgdmFyIGZsYXQgPSBbXTsKKyAgICBmbGF0dGVuKGZpbGVzKTsKKyAgICBmdW5j
dGlvbiBmbGF0dGVuKGZpbGVzKSB7CisgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZmlsZXMu
bGVuZ3RoOyArK2lpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IGZpbGVzW2lpXTsKKyAgICAgICAg
aWYgKHR5cGVvZih2YWx1ZSkgPT0gInN0cmluZyIpIHsKKyAgICAgICAgICBmbGF0LnB1c2godmFs
dWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGZsYXR0ZW4odmFsdWUpOworICAgICAg
ICB9CisgICAgICB9CisgICAgfQorICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIGZsYXQpOworICB9KTsK
K307CisKKy8qKgorICogR2V0cyBhIGZpbGUgZnJvbSBhIGZpbGUvVVJMLgorICogQHBhcmFtIHtz
dHJpbmd9IGZpbGUgdGhlIFVSTCBvZiB0aGUgZmlsZSB0byBnZXQuCisgKiBAcmV0dXJuIHtzdHJp
bmd9IFRoZSBjb250ZW50cyBvZiB0aGUgZmlsZS4KKyAqLwordmFyIHJlYWRGaWxlID0gZnVuY3Rp
b24oZmlsZSkgeworICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIHhoci5vcGVu
KCJHRVQiLCBmaWxlLCBmYWxzZSk7CisgIHhoci5vdmVycmlkZU1pbWVUeXBlKCJ0ZXh0L3BsYWlu
Iik7CisgIHhoci5zZW5kKCk7CisgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0LnJlcGxhY2UoL1xy
L2csICIiKTsKK307CisKK3ZhciByZWFkRmlsZUxpc3QgPSBmdW5jdGlvbih1cmwpIHsKKyAgdmFy
IGZpbGVzID0gW107CisgIGlmICh1cmwuc3Vic3RyKHVybC5sZW5ndGggLSA0KSA9PSAnLnR4dCcp
IHsKKyAgICB2YXIgbGluZXMgPSByZWFkRmlsZSh1cmwpLnNwbGl0KCdcbicpOworICAgIHZhciBw
cmVmaXggPSAnJzsKKyAgICB2YXIgbGFzdFNsYXNoID0gdXJsLmxhc3RJbmRleE9mKCcvJyk7Cisg
ICAgaWYgKGxhc3RTbGFzaCA+PSAwKSB7CisgICAgICBwcmVmaXggPSB1cmwuc3Vic3RyKDAsIGxh
c3RTbGFzaCArIDEpOworICAgIH0KKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgbGluZXMubGVu
Z3RoOyArK2lpKSB7CisgICAgICB2YXIgc3RyID0gbGluZXNbaWldLnJlcGxhY2UoL15cc1xzKi8s
ICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7CisgICAgICBpZiAoc3RyLmxlbmd0aCA+IDQgJiYK
KyAgICAgICAgICBzdHJbMF0gIT0gJyMnICYmCisgICAgICAgICAgc3RyWzBdICE9ICI7IiAmJgor
ICAgICAgICAgIHN0ci5zdWJzdHIoMCwgMikgIT0gIi8vIikgeworICAgICAgICB2YXIgbmFtZXMg
PSBzdHIuc3BsaXQoLyArLyk7CisgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPT0gMSkgeworICAg
ICAgICAgIHZhciBuZXdfdXJsID0gcHJlZml4ICsgc3RyOworICAgICAgICAgIGZpbGVzID0gZmls
ZXMuY29uY2F0KHJlYWRGaWxlTGlzdChuZXdfdXJsKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgdmFyIHMgPSAiIjsKKyAgICAgICAgICB2YXIgcCA9ICIiOworICAgICAgICAgIGZvciAo
dmFyIGpqID0gMDsgamogPCBuYW1lcy5sZW5ndGg7ICsramopIHsKKyAgICAgICAgICAgIHMgKz0g
cCArIHByZWZpeCArIG5hbWVzW2pqXTsKKyAgICAgICAgICAgIHAgPSAiICI7CisgICAgICAgICAg
fQorICAgICAgICAgIGZpbGVzLnB1c2gocyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9Cisg
IH0gZWxzZSB7CisgICAgZmlsZXMucHVzaCh1cmwpOworICB9CisgIHJldHVybiBmaWxlczsKK307
CisKKy8qKgorICogTG9hZHMgYSBzaGFkZXIuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtz
dHJpbmd9IHNoYWRlclNvdXJjZSBUaGUgc2hhZGVyIHNvdXJjZS4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBzaGFkZXJUeXBlIFRoZSB0eXBlIG9mIHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3Ry
aW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqIEBw
YXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRlcnMgV2hldGhlciB0byBsb2cgc2hhZGVyIHNvdXJj
ZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfc2hhZGVyTGFiZWwgTGFiZWwgdGhhdCBpZGVudGlm
aWVzIHRoZSBzaGFkZXIgc291cmNlIGluCisgKiAgICAgdGhlIGxvZy4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSBvcHRfdXJsIFVSTCBmcm9tIHdoZXJlIHRoZSBzaGFkZXIgc291cmNlIHdhcyBsb2FkZWQg
ZnJvbS4KKyAqICAgICBJZiBvcHRfbG9nU2hhZGVycyBpcyBzZXQsIHRoZW4gYSBsaW5rIHRvIHRo
ZSBzb3VyY2UgZmlsZSB3aWxsIGFsc28gYmUKKyAqICAgICBhZGRlZC4KKyAqIEBwYXJhbSB7Ym9v
bGVhbn0gU2tpcCBjb21waWxhdGlvbiBzdGF0dXMgY2hlY2suIERlZmF1bHQgPSBmYWxzZS4KKyAq
IEByZXR1cm4geyFXZWJHTFNoYWRlcn0gVGhlIGNyZWF0ZWQgc2hhZGVyLgorICovCit2YXIgbG9h
ZFNoYWRlciA9IGZ1bmN0aW9uKAorICAgIGdsLCBzaGFkZXJTb3VyY2UsIHNoYWRlclR5cGUsIG9w
dF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycywKKyAgICBvcHRfc2hhZGVyTGFiZWwsIG9w
dF91cmwsIG9wdF9za2lwQ29tcGlsZVN0YXR1cykgeworICB2YXIgZXJyRm4gPSBvcHRfZXJyb3JD
YWxsYmFjayB8fCBlcnJvcjsKKyAgLy8gQ3JlYXRlIHRoZSBzaGFkZXIgb2JqZWN0CisgIHZhciBz
aGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoc2hhZGVyVHlwZSk7CisgIGlmIChzaGFkZXIgPT0gbnVs
bCkgeworICAgIGVyckZuKCIqKiogRXJyb3I6IHVuYWJsZSB0byBjcmVhdGUgc2hhZGVyICciK3No
YWRlclNvdXJjZSsiJyIpOworICAgIHJldHVybiBudWxsOworICB9CisKKyAgLy8gTG9hZCB0aGUg
c2hhZGVyIHNvdXJjZQorICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzaGFkZXJTb3VyY2UpOwor
CisgIC8vIENvbXBpbGUgdGhlIHNoYWRlcgorICBnbC5jb21waWxlU2hhZGVyKHNoYWRlcik7CisK
KyAgaWYgKG9wdF9sb2dTaGFkZXJzKSB7CisgICAgdmFyIGxhYmVsID0gc2hhZGVyVHlwZSA9PSBn
bC5WRVJURVhfU0hBREVSID8gJ3ZlcnRleCBzaGFkZXInIDogJ2ZyYWdtZW50X3NoYWRlcic7Cisg
ICAgaWYgKG9wdF9zaGFkZXJMYWJlbCkgeworICAgICAgbGFiZWwgPSBvcHRfc2hhZGVyTGFiZWwg
KyAnICcgKyBsYWJlbDsKKyAgICB9CisgICAgYWRkU2hhZGVyU291cmNlcygKKyAgICAgICAgZ2ws
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyksIGxhYmVsLCBzaGFkZXIsIHNoYWRl
clNvdXJjZSwgb3B0X3VybCk7CisgIH0KKworICAvLyBDaGVjayB0aGUgY29tcGlsZSBzdGF0dXMK
KyAgaWYgKCFvcHRfc2tpcENvbXBpbGVTdGF0dXMpIHsKKyAgICB2YXIgY29tcGlsZWQgPSBnbC5n
ZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUyk7CisgICAgaWYgKCFj
b21waWxlZCkgeworICAgICAgLy8gU29tZXRoaW5nIHdlbnQgd3JvbmcgZHVyaW5nIGNvbXBpbGF0
aW9uOyBnZXQgdGhlIGVycm9yCisgICAgICBsYXN0RXJyb3IgPSBnbC5nZXRTaGFkZXJJbmZvTG9n
KHNoYWRlcik7CisgICAgICBlcnJGbigiKioqIEVycm9yIGNvbXBpbGluZyAiICsgZ2xFbnVtVG9T
dHJpbmcoZ2wsIHNoYWRlclR5cGUpICsgIiAnIiArIHNoYWRlciArICInOiIgKyBsYXN0RXJyb3Ip
OworICAgICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7CisgICAgICByZXR1cm4gbnVsbDsKKyAg
ICB9CisgIH0KKworICByZXR1cm4gc2hhZGVyOworfQorCisvKioKKyAqIExvYWRzIGEgc2hhZGVy
IGZyb20gYSBVUkwuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtmaWxlfSBmaWxlIFRoZSBV
Ukwgb2YgdGhlIHNoYWRlciBzb3VyY2UuCisgKiBAcGFyYW0ge251bWJlcn0gdHlwZSBUaGUgdHlw
ZSBvZiBzaGFkZXIuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9wdF9lcnJv
ckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdF9s
b2dTaGFkZXJzIFdoZXRoZXIgdG8gbG9nIHNoYWRlciBzb3VyY2UuCisgKiBAcGFyYW0ge2Jvb2xl
YW59IFNraXAgY29tcGlsYXRpb24gc3RhdHVzIGNoZWNrLiBEZWZhdWx0ID0gZmFsc2UuCisgKiBA
cmV0dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KKyAqLwordmFyIGxvYWRT
aGFkZXJGcm9tRmlsZSA9IGZ1bmN0aW9uKAorICAgIGdsLCBmaWxlLCB0eXBlLCBvcHRfZXJyb3JD
YWxsYmFjaywgb3B0X2xvZ1NoYWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cykgeworICB2YXIg
c2hhZGVyU291cmNlID0gcmVhZEZpbGUoZmlsZSk7CisgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBz
aGFkZXJTb3VyY2UsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLAorICAgICAgb3B0X2xvZ1NoYWRl
cnMsIHVuZGVmaW5lZCwgZmlsZSwgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKK307CisKK3ZhciBs
b2FkU2hhZGVyRnJvbUZpbGVBc3luYyA9IGZ1bmN0aW9uKAorICAgIGdsLCBmaWxlLCB0eXBlLCBv
cHRfZXJyb3JDYWxsYmFjaywgb3B0X2xvZ1NoYWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cywg
Y2FsbGJhY2spIHsKKyAgbG9hZFRleHRGaWxlQXN5bmMoZmlsZSwgZnVuY3Rpb24oZ2wsIHR5cGUs
IG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycywgZmlsZSwgb3B0X3NraXBDb21waWxl
U3RhdHVzKXsKKyAgICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCBzaGFkZXJTb3VyY2UpIHsK
KyAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICB2YXIgc2hhZGVyID0gbG9hZFNoYWRl
cihnbCwgc2hhZGVyU291cmNlLCB0eXBlLCBvcHRfZXJyb3JDYWxsYmFjaywKKyAgICAgICAgICAg
ICAgb3B0X2xvZ1NoYWRlcnMsIHVuZGVmaW5lZCwgZmlsZSwgb3B0X3NraXBDb21waWxlU3RhdHVz
KTsKKyAgICAgICAgICBjYWxsYmFjayh0cnVlLCBzaGFkZXIpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgfQorICB9
KGdsLCB0eXBlLCBvcHRfZXJyb3JDYWxsYmFjaywgb3B0X2xvZ1NoYWRlcnMsIGZpbGUsIG9wdF9z
a2lwQ29tcGlsZVN0YXR1cykpOworfTsKKworLyoqCisgKiBHZXRzIHRoZSBjb250ZW50IG9mIHNj
cmlwdC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBzY3JpcHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0
YWcuCisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjb250ZW50IG9mIHRoZSBzY3JpcHQuCisgKi8K
K3ZhciBnZXRTY3JpcHQgPSBmdW5jdGlvbihzY3JpcHRJZCkgeworICB2YXIgc2hhZGVyU2NyaXB0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0SWQpOworICBpZiAoIXNoYWRlclNjcmlw
dCkgeworICAgIHRocm93KCIqKiogRXJyb3I6IHVua25vd24gc2NyaXB0IGVsZW1lbnQgIiArIHNj
cmlwdElkKTsKKyAgfQorICByZXR1cm4gc2hhZGVyU2NyaXB0LnRleHQ7Cit9OworCisvKioKKyAq
IExvYWRzIGEgc2hhZGVyIGZyb20gYSBzY3JpcHQgdGFnLgorICogQHBhcmFtIHshV2ViR0xSZW5k
ZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBw
YXJhbSB7c3RyaW5nfSBzY3JpcHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0YWcuCisgKiBAcGFy
YW0ge251bWJlcn0gb3B0X3NoYWRlclR5cGUgVGhlIHR5cGUgb2Ygc2hhZGVyLiBJZiBub3QgcGFz
c2VkIGluIGl0IHdpbGwKKyAqICAgICBiZSBkZXJpdmVkIGZyb20gdGhlIHR5cGUgb2YgdGhlIHNj
cmlwdCB0YWcuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9wdF9lcnJvckNh
bGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdF9sb2dT
aGFkZXJzIFdoZXRoZXIgdG8gbG9nIHNoYWRlciBzb3VyY2UuCisgKiBAcGFyYW0ge2Jvb2xlYW59
IFNraXAgY29tcGlsYXRpb24gc3RhdHVzIGNoZWNrLiBEZWZhdWx0ID0gZmFsc2UuCisgKiBAcmV0
dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KKyAqLwordmFyIGxvYWRTaGFk
ZXJGcm9tU2NyaXB0ID0gZnVuY3Rpb24oCisgICAgZ2wsIHNjcmlwdElkLCBvcHRfc2hhZGVyVHlw
ZSwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJzLCBvcHRfc2tpcENvbXBpbGVTdGF0
dXMpIHsKKyAgdmFyIHNoYWRlclNvdXJjZSA9ICIiOworICB2YXIgc2hhZGVyU2NyaXB0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0SWQpOworICBpZiAoIXNoYWRlclNjcmlwdCkgewor
ICAgIHRocm93KCIqKiogRXJyb3I6IHVua25vd24gc2NyaXB0IGVsZW1lbnQgIiArIHNjcmlwdElk
KTsKKyAgfQorICBzaGFkZXJTb3VyY2UgPSBzaGFkZXJTY3JpcHQudGV4dC50cmltKCk7CisKKyAg
aWYgKCFvcHRfc2hhZGVyVHlwZSkgeworICAgIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1z
aGFkZXIveC12ZXJ0ZXgiKSB7CisgICAgICBvcHRfc2hhZGVyVHlwZSA9IGdsLlZFUlRFWF9TSEFE
RVI7CisgICAgfSBlbHNlIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC1mcmFn
bWVudCIpIHsKKyAgICAgIG9wdF9zaGFkZXJUeXBlID0gZ2wuRlJBR01FTlRfU0hBREVSOworICAg
IH0gZWxzZSB7CisgICAgICB0aHJvdygiKioqIEVycm9yOiB1bmtub3duIHNoYWRlciB0eXBlIik7
CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgIH0KKworICByZXR1cm4gbG9hZFNoYWRlcihn
bCwgc2hhZGVyU291cmNlLCBvcHRfc2hhZGVyVHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ssCisgICAg
ICBvcHRfbG9nU2hhZGVycywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9wdF9za2lwQ29tcGlsZVN0
YXR1cyk7Cit9OworCit2YXIgbG9hZFN0YW5kYXJkUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsKSB7Cisg
IHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFkZXIocHJv
Z3JhbSwgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGdsKSk7CisgIGdsLmF0dGFjaFNoYWRlcihw
cm9ncmFtLCBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlcihnbCkpOworICBnbC5iaW5kQXR0cmli
TG9jYXRpb24ocHJvZ3JhbSwgMCwgImFfdmVydGV4Iik7CisgIGdsLmJpbmRBdHRyaWJMb2NhdGlv
bihwcm9ncmFtLCAxLCAiYV9ub3JtYWwiKTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0pOwor
ICByZXR1cm4gcHJvZ3JhbTsKK307CisKK3ZhciBsb2FkU3RhbmRhcmRQcm9ncmFtQXN5bmMgPSBm
dW5jdGlvbihnbCwgY2FsbGJhY2spIHsKKyAgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyQXN5bmMo
Z2wsIGZ1bmN0aW9uKGdsKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIHZzKSB7Cisg
ICAgICBpZiAoc3VjY2VzcykgeworICAgICAgICBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlckFz
eW5jKGdsLCBmdW5jdGlvbih2cykgeworICAgICAgICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNz
LCBmcykgeworICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgdmFyIHBy
b2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgICAgICAgICAgICAgIGdsLmF0dGFjaFNoYWRl
cihwcm9ncmFtLCB2cyk7CisgICAgICAgICAgICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBm
cyk7CisgICAgICAgICAgICAgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAwLCAiYV92
ZXJ0ZXgiKTsKKyAgICAgICAgICAgICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIDEs
ICJhX25vcm1hbCIpOworICAgICAgICAgICAgICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSk7Cisg
ICAgICAgICAgICAgIGNhbGxiYWNrKHRydWUsIHByb2dyYW0pOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UsIG51bGwpOworICAgICAgICAgICAgfQor
ICAgICAgICAgIH07CisgICAgICAgIH0odnMpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGNh
bGxiYWNrKGZhbHNlLCBudWxsKTsKKyAgICAgIH0KKyAgICB9OworICB9KGdsKSk7Cit9OworCisv
KioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBmaWxlcywgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFj
aGVzIHRoZSBzaGFkZXJzIGFuZCBsaW5rcy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0
cmluZ30gdmVydGV4U2hhZGVyUGF0aCBUaGUgVVJMIG9mIHRoZSB2ZXJ0ZXggc2hhZGVyLgorICog
QHBhcmFtIHtzdHJpbmd9IGZyYWdtZW50U2hhZGVyUGF0aCBUaGUgVVJMIG9mIHRoZSBmcmFnbWVu
dCBzaGFkZXIuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9wdF9lcnJvckNh
bGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfSBU
aGUgY3JlYXRlZCBwcm9ncmFtLgorICovCit2YXIgbG9hZFByb2dyYW1Gcm9tRmlsZSA9IGZ1bmN0
aW9uKAorICAgIGdsLCB2ZXJ0ZXhTaGFkZXJQYXRoLCBmcmFnbWVudFNoYWRlclBhdGgsIG9wdF9l
cnJvckNhbGxiYWNrKSB7CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICB2
YXIgdnMgPSBsb2FkU2hhZGVyRnJvbUZpbGUoCisgICAgICBnbCwgdmVydGV4U2hhZGVyUGF0aCwg
Z2wuVkVSVEVYX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spOworICB2YXIgZnMgPSBsb2FkU2hh
ZGVyRnJvbUZpbGUoCisgICAgICBnbCwgZnJhZ21lbnRTaGFkZXJQYXRoLCBnbC5GUkFHTUVOVF9T
SEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgaWYgKHZzICYmIGZzKSB7CisgICAgZ2wuYXR0
YWNoU2hhZGVyKHByb2dyYW0sIHZzKTsKKyAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnMp
OworICAgIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtLCBvcHRfZXJyb3JDYWxsYmFjayk7CisgIH0K
KyAgaWYgKHZzKSB7CisgICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKKyAgfQorICBpZiAoZnMpIHsK
KyAgICBnbC5kZWxldGVTaGFkZXIoZnMpOworICB9CisgIHJldHVybiBwcm9ncmFtOworfTsKKwor
LyoqCisgKiBMb2FkcyBzaGFkZXJzIGZyb20gc2NyaXB0IHRhZ3MsIGNyZWF0ZXMgYSBwcm9ncmFt
LCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKKyAqIGxpbmtzLgorICogQHBhcmFtIHshV2ViR0xS
ZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhTY3JpcHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0YWcg
dGhhdCBjb250YWlucyB0aGUKKyAqICAgICAgICB2ZXJ0ZXggc2hhZGVyLgorICogQHBhcmFtIHtz
dHJpbmd9IGZyYWdtZW50U2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnIHRoYXQgY29u
dGFpbnMgdGhlCisgKiAgICAgICAgZnJhZ21lbnQgc2hhZGVyLgorICogQHBhcmFtIHtmdW5jdGlv
bihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgor
ICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KKyAqLwordmFy
IGxvYWRQcm9ncmFtRnJvbVNjcmlwdCA9IGZ1bmN0aW9uIGxvYWRQcm9ncmFtRnJvbVNjcmlwdCgK
KyAgICBnbCwgdmVydGV4U2NyaXB0SWQsIGZyYWdtZW50U2NyaXB0SWQsIG9wdF9lcnJvckNhbGxi
YWNrKSB7CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hT
aGFkZXIoCisgICAgICBwcm9ncmFtLAorICAgICAgbG9hZFNoYWRlckZyb21TY3JpcHQoCisgICAg
ICAgICAgZ2wsIHZlcnRleFNjcmlwdElkLCBnbC5WRVJURVhfU0hBREVSLCBvcHRfZXJyb3JDYWxs
YmFjaykpOworICBnbC5hdHRhY2hTaGFkZXIoCisgICAgICBwcm9ncmFtLAorICAgICAgbG9hZFNo
YWRlckZyb21TY3JpcHQoCisgICAgICAgICAgZ2wsIGZyYWdtZW50U2NyaXB0SWQsICBnbC5GUkFH
TUVOVF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKSk7CisgIGxpbmtQcm9ncmFtKGdsLCBwcm9n
cmFtLCBvcHRfZXJyb3JDYWxsYmFjayk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisg
KiBMb2FkcyBzaGFkZXJzIGZyb20gc291cmNlLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMg
dGhlIHNoYWRlcnMgYW5kCisgKiBsaW5rcy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFX
ZWJHTFNoYWRlcn0gdmVydGV4U2hhZGVyIFRoZSB2ZXJ0ZXggc2hhZGVyLgorICogQHBhcmFtIHsh
V2ViR0xTaGFkZXJ9IGZyYWdtZW50U2hhZGVyIFRoZSBmcmFnbWVudCBzaGFkZXIuCisgKiBAcGFy
YW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZv
ciBlcnJvcnMuCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFt
LgorICovCit2YXIgY3JlYXRlUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsLCB2ZXJ0ZXhTaGFkZXIsIGZy
YWdtZW50U2hhZGVyLCBvcHRfZXJyb3JDYWxsYmFjaykgeworICB2YXIgcHJvZ3JhbSA9IGdsLmNy
ZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRleFNoYWRlcik7
CisgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7CisgIGxpbmtQcm9n
cmFtKGdsLCBwcm9ncmFtLCBvcHRfZXJyb3JDYWxsYmFjayk7CisgIHJldHVybiBwcm9ncmFtOwor
fTsKKworLyoqCisgKiBMb2FkcyBzaGFkZXJzIGZyb20gc291cmNlLCBjcmVhdGVzIGEgcHJvZ3Jh
bSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kCisgKiBsaW5rcy4KKyAqIEBwYXJhbSB7IVdlYkdM
UmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisg
KiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2hhZGVyIFRoZSB2ZXJ0ZXggc2hhZGVyIHNvdXJjZS4K
KyAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNoYWRlciBUaGUgZnJhZ21lbnQgc2hhZGVyIHNv
dXJjZS4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJh
Y2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0X2xvZ1NoYWRl
cnMgV2hldGhlciB0byBsb2cgc2hhZGVyIHNvdXJjZS4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dy
YW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCisgKi8KK3ZhciBsb2FkUHJvZ3JhbSA9IGZ1bmN0aW9u
KAorICAgIGdsLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyLCBvcHRfZXJyb3JDYWxsYmFj
aywgb3B0X2xvZ1NoYWRlcnMpIHsKKyAgdmFyIHByb2dyYW07CisgIHZhciB2cyA9IGxvYWRTaGFk
ZXIoCisgICAgICBnbCwgdmVydGV4U2hhZGVyLCBnbC5WRVJURVhfU0hBREVSLCBvcHRfZXJyb3JD
YWxsYmFjaywgb3B0X2xvZ1NoYWRlcnMpOworICB2YXIgZnMgPSBsb2FkU2hhZGVyKAorICAgICAg
Z2wsIGZyYWdtZW50U2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNr
LCBvcHRfbG9nU2hhZGVycyk7CisgIGlmICh2cyAmJiBmcykgeworICAgIHByb2dyYW0gPSBjcmVh
dGVQcm9ncmFtKGdsLCB2cywgZnMsIG9wdF9lcnJvckNhbGxiYWNrKQorICB9CisgIGlmICh2cykg
eworICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7CisgIH0KKyAgaWYgKGZzKSB7CisgICAgZ2wuZGVs
ZXRlU2hhZGVyKGZzKTsKKyAgfQorICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogTG9h
ZHMgc2hhZGVycyBmcm9tIHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBz
aGFkZXJzIGFuZAorICogbGlua3MgYnV0IGV4cGVjdHMgZXJyb3IuCisgKgorICogR0xTTCAxLjAu
MTcgMTAuMjcgZWZmZWN0aXZlbHkgc2F5cyB0aGF0IGNvbXBpbGVTaGFkZXIgY2FuCisgKiBhbHdh
eXMgc3VjY2VlZCBhcyBsb25nIGFzIGxpbmtQcm9ncmFtIGZhaWxzIHNvIHdlIGNhbid0CisgKiBy
ZWx5IG9uIGNvbXBpbGVTaGFkZXIgZmFpbGluZy4gVGhpcyBmdW5jdGlvbiBleHBlY3RzCisgKiBv
bmUgb2YgdGhlIHNoYWRlciB0byBmYWlsIE9SIGxpbmtpbmcgdG8gZmFpbC4KKyAqCisgKiBAcGFy
YW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
dG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHZlcnRleFNoYWRlclNjcmlwdElkIFRoZSB2ZXJ0
ZXggc2hhZGVyLgorICogQHBhcmFtIHtzdHJpbmd9IGZyYWdtZW50U2hhZGVyU2NyaXB0SWQgVGhl
IGZyYWdtZW50IHNoYWRlci4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQg
cHJvZ3JhbS4KKyAqLwordmFyIGxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yID0gZnVu
Y3Rpb24oCisgICAgZ2wsIHZlcnRleFNoYWRlclNjcmlwdElkLCBmcmFnbWVudFNoYWRlclNjcmlw
dElkKSB7CisgIHZhciB2ZXJ0ZXhTaGFkZXIgPSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgdmVy
dGV4U2hhZGVyU2NyaXB0SWQpOworICBpZiAoIXZlcnRleFNoYWRlcikgeworICAgIHJldHVybiBu
dWxsOworICB9CisgIHZhciBmcmFnbWVudFNoYWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGds
LCBmcmFnbWVudFNoYWRlclNjcmlwdElkKTsKKyAgaWYgKCFmcmFnbWVudFNoYWRlcikgeworICAg
IHJldHVybiBudWxsOworICB9CisgIHZhciBsaW5rU3VjY2VzcyA9IHRydWU7CisgIHZhciBwcm9n
cmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVy
dGV4U2hhZGVyKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsK
KyAgbGlua1N1Y2Nlc3MgPSB0cnVlOworICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSwgZnVuY3Rp
b24oKSB7CisgICAgICBsaW5rU3VjY2VzcyA9IGZhbHNlOworICAgIH0pOworICByZXR1cm4gbGlu
a1N1Y2Nlc3MgPyBwcm9ncmFtIDogbnVsbDsKK307CisKKwordmFyIGdldEFjdGl2ZU1hcCA9IGZ1
bmN0aW9uKGdsLCBwcm9ncmFtLCB0eXBlSW5mbykgeworICB2YXIgbnVtVmFyaWFibGVzID0gZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbFt0eXBlSW5mby5wYXJhbV0pOworICB2YXIg
dmFyaWFibGVzID0ge307CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBudW1WYXJpYWJsZXM7ICsr
aWkpIHsKKyAgICB2YXIgaW5mbyA9IGdsW3R5cGVJbmZvLmFjdGl2ZUZuXShwcm9ncmFtLCBpaSk7
CisgICAgdmFyaWFibGVzW2luZm8ubmFtZV0gPSB7CisgICAgICBuYW1lOiBpbmZvLm5hbWUsCisg
ICAgICBzaXplOiBpbmZvLnNpemUsCisgICAgICB0eXBlOiBpbmZvLnR5cGUsCisgICAgICBsb2Nh
dGlvbjogZ2xbdHlwZUluZm8ubG9jRm5dKHByb2dyYW0sIGluZm8ubmFtZSkKKyAgICB9OworICB9
CisgIHJldHVybiB2YXJpYWJsZXM7Cit9OworCisvKioKKyAqIFJldHVybnMgYSBtYXAgb2YgYXR0
cmliIG5hbWVzIHRvIGluZm8gYWJvdXQgdGhvc2UKKyAqIGF0dHJpYnMuCisgKgorICogZWc6Cisg
KiAgICB7ICJhdHRyaWIxTmFtZSI6CisgKiAgICAgIHsKKyAqICAgICAgICBuYW1lOiAiYXR0cmli
MU5hbWUiLAorICogICAgICAgIHNpemU6IDEsCisgKiAgICAgICAgdHlwZTogZ2wuRkxPQVRfTUFU
MiwKKyAqICAgICAgICBsb2NhdGlvbjogMAorICogICAgICB9LAorICogICAgICAiYXR0cmliMk5h
bWVbMF0iOgorICogICAgICB7CisgKiAgICAgICAgIG5hbWU6ICJhdHRyaWIyTmFtZVswXSIsCisg
KiAgICAgICAgIHNpemU6IDQsCisgKiAgICAgICAgIHR5cGU6IGdsLkZMT0FULAorICogICAgICAg
ICBsb2NhdGlvbjogMQorICogICAgICB9LAorICogICAgfQorICoKKyAqIEBwYXJhbSB7IVdlYkdM
UmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisg
KiBAcGFyYW0ge1dlYkdMUHJvZ3JhbX0gVGhlIHByb2dyYW0gdG8gcXVlcnkgZm9yIGF0dHJpYnMu
CisgKiBAcmV0dXJuIHRoZSBtYXAuCisgKi8KK3ZhciBnZXRBdHRyaWJNYXAgPSBmdW5jdGlvbihn
bCwgcHJvZ3JhbSkgeworICByZXR1cm4gZ2V0QWN0aXZlTWFwKGdsLCBwcm9ncmFtLCB7CisgICAg
ICBwYXJhbTogIkFDVElWRV9BVFRSSUJVVEVTIiwKKyAgICAgIGFjdGl2ZUZuOiAiZ2V0QWN0aXZl
QXR0cmliIiwKKyAgICAgIGxvY0ZuOiAiZ2V0QXR0cmliTG9jYXRpb24iCisgIH0pOworfTsKKwor
LyoqCisgKiBSZXR1cm5zIGEgbWFwIG9mIHVuaWZvcm0gbmFtZXMgdG8gaW5mbyBhYm91dCB0aG9z
ZSB1bmlmb3Jtcy4KKyAqCisgKiBlZzoKKyAqICAgIHsgInVuaWZvcm0xTmFtZSI6CisgKiAgICAg
IHsKKyAqICAgICAgICBuYW1lOiAidW5pZm9ybTFOYW1lIiwKKyAqICAgICAgICBzaXplOiAxLAor
ICogICAgICAgIHR5cGU6IGdsLkZMT0FUX01BVDIsCisgKiAgICAgICAgbG9jYXRpb246IFdlYkdM
VW5pZm9ybUxvY2F0aW9uCisgKiAgICAgIH0sCisgKiAgICAgICJ1bmlmb3JtMk5hbWVbMF0iOgor
ICogICAgICB7CisgKiAgICAgICAgIG5hbWU6ICJ1bmlmb3JtMk5hbWVbMF0iLAorICogICAgICAg
ICBzaXplOiA0LAorICogICAgICAgICB0eXBlOiBnbC5GTE9BVCwKKyAqICAgICAgICAgbG9jYXRp
b246IFdlYkdMVW5pZm9ybUxvY2F0aW9uCisgKiAgICAgIH0sCisgKiAgICB9CisgKgorICogQHBh
cmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBm
b3IgdW5pZm9ybXMuCisgKiBAcmV0dXJuIHRoZSBtYXAuCisgKi8KK3ZhciBnZXRVbmlmb3JtTWFw
ID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0pIHsKKyAgcmV0dXJuIGdldEFjdGl2ZU1hcChnbCwgcHJv
Z3JhbSwgeworICAgICAgcGFyYW06ICJBQ1RJVkVfVU5JRk9STVMiLAorICAgICAgYWN0aXZlRm46
ICJnZXRBY3RpdmVVbmlmb3JtIiwKKyAgICAgIGxvY0ZuOiAiZ2V0VW5pZm9ybUxvY2F0aW9uIgor
ICB9KTsKK307CisKK3ZhciBiYXNlUGF0aDsKK3ZhciBnZXRSZXNvdXJjZVBhdGggPSBmdW5jdGlv
bigpIHsKKyAgaWYgKCFiYXNlUGF0aCkgeworICAgIHZhciBleHBlY3RlZEJhc2UgPSAianMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI7CisgICAgdmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CisgICAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0
ID0gc2NyaXB0c1tpXTsgaSsrKSB7CisgICAgICB2YXIgc3JjID0gc2NyaXB0LnNyYzsKKyAgICAg
IHZhciBsID0gc3JjLmxlbmd0aDsKKyAgICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJh
c2UubGVuZ3RoKSA9PSBleHBlY3RlZEJhc2UpIHsKKyAgICAgICAgYmFzZVBhdGggPSBzcmMuc3Vi
c3RyKDAsIGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAg
cmV0dXJuIGJhc2VQYXRoICsgInJlc291cmNlcy8iOworfTsKKwordmFyIGxvYWRTdGFuZGFyZFZl
cnRleFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7CisgIHJldHVybiBsb2FkU2hhZGVyRnJvbUZpbGUo
CisgICAgICBnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAidmVydGV4U2hhZGVyLnZlcnQiLCBnbC5W
RVJURVhfU0hBREVSKTsKK307Cit2YXIgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyQXN5bmMgPSBm
dW5jdGlvbihnbCwgY2FsbGJhY2spIHsKKyAgbG9hZFNoYWRlckZyb21GaWxlQXN5bmMoZ2wsIGdl
dFJlc291cmNlUGF0aCgpICsgInZlcnRleFNoYWRlci52ZXJ0IiwgZ2wuVkVSVEVYX1NIQURFUiwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY2FsbGJhY2spOworfTsKKwordmFyIGxv
YWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgcmV0dXJuIGxvYWRT
aGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBnZXRSZXNvdXJjZVBhdGgoKSArICJmcmFnbWVudFNo
YWRlci5mcmFnIiwgZ2wuRlJBR01FTlRfU0hBREVSKTsKK307Cit2YXIgbG9hZFN0YW5kYXJkRnJh
Z21lbnRTaGFkZXJBc3luYyA9IGZ1bmN0aW9uKGdsLCBjYWxsYmFjaykgeworICBsb2FkU2hhZGVy
RnJvbUZpbGVBc3luYyhnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAiZnJhZ21lbnRTaGFkZXIuZnJh
ZyIsIGdsLkZSQUdNRU5UX1NIQURFUiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
Y2FsbGJhY2spOworfTsKKwordmFyIGxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtID0gZnVuY3Rpb24o
Z2wpIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgIGdsLmF0dGFjaFNo
YWRlcihwcm9ncmFtLCBsb2FkVW5pZm9ybUJsb2NrVmVydGV4U2hhZGVyKGdsKSk7CisgIGdsLmF0
dGFjaFNoYWRlcihwcm9ncmFtLCBsb2FkVW5pZm9ybUJsb2NrRnJhZ21lbnRTaGFkZXIoZ2wpKTsK
KyAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIDAsICJhX3ZlcnRleCIpOworICBnbC5i
aW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgMSwgImFfbm9ybWFsIik7CisgIGxpbmtQcm9ncmFt
KGdsLCBwcm9ncmFtKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCit2YXIgbG9hZFVuaWZvcm1C
bG9ja1ZlcnRleFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7CisgIHJldHVybiBsb2FkU2hhZGVyRnJv
bUZpbGUoCisgICAgICBnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAidW5pZm9ybUJsb2NrU2hhZGVy
LnZlcnQiLCBnbC5WRVJURVhfU0hBREVSKTsKK307CisKK3ZhciBsb2FkVW5pZm9ybUJsb2NrRnJh
Z21lbnRTaGFkZXIgPSBmdW5jdGlvbihnbCkgeworICByZXR1cm4gbG9hZFNoYWRlckZyb21GaWxl
KAorICAgICAgZ2wsIGdldFJlc291cmNlUGF0aCgpICsgInVuaWZvcm1CbG9ja1NoYWRlci5mcmFn
IiwgZ2wuRlJBR01FTlRfU0hBREVSKTsKK307CisKKy8qKgorICogTG9hZHMgYW4gaW1hZ2UgYXN5
bmNocm9ub3VzbHkuCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBvZiBpbWFnZSB0byBsb2Fk
LgorICogQHBhcmFtIHshZnVuY3Rpb24oIUVsZW1lbnQpOiB2b2lkfSBjYWxsYmFjayBGdW5jdGlv
biB0byBjYWxsCisgKiAgICAgd2l0aCBsb2FkZWQgaW1hZ2UuCisgKi8KK3ZhciBsb2FkSW1hZ2VB
c3luYyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKKyAgdmFyIGltZyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2ltZycpOworICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY2Fs
bGJhY2soaW1nKTsKKyAgfTsKKyAgaW1nLnNyYyA9IHVybDsKK307CisKKy8qKgorICogTG9hZHMg
YW4gYXJyYXkgb2YgaW1hZ2VzLgorICogQHBhcmFtIHshQXJyYXkuPHN0cmluZz59IHVybHMgVVJM
cyBvZiBpbWFnZXMgdG8gbG9hZC4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKCF7c3RyaW5nLCBpbWd9
KTogdm9pZH0gY2FsbGJhY2sgQ2FsbGJhY2sKKyAqICAgICB0aGF0IGdldHMgcGFzc2VkIG1hcCBv
ZiB1cmxzIHRvIGltZyB0YWdzLgorICovCit2YXIgbG9hZEltYWdlc0FzeW5jID0gZnVuY3Rpb24o
dXJscywgY2FsbGJhY2spIHsKKyAgdmFyIGNvdW50ID0gMTsKKyAgdmFyIGltYWdlcyA9IHsgfTsK
KyAgZnVuY3Rpb24gY291bnREb3duKCkgeworICAgIC0tY291bnQ7CisgICAgaWYgKGNvdW50ID09
IDApIHsKKyAgICAgIGxvZygibG9hZEltYWdlc0FzeW5jOiBhbGwgaW1hZ2VzIGxvYWRlZCIpOwor
ICAgICAgY2FsbGJhY2soaW1hZ2VzKTsKKyAgICB9CisgIH0KKyAgZnVuY3Rpb24gaW1hZ2VMb2Fk
ZWQodXJsKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKGltZykgeworICAgICAgaW1hZ2VzW3VybF0g
PSBpbWc7CisgICAgICBsb2coImxvYWRJbWFnZXNBc3luYzogbG9hZGVkICIgKyB1cmwpOworICAg
ICAgY291bnREb3duKCk7CisgICAgfQorICB9CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCB1cmxz
Lmxlbmd0aDsgKytpaSkgeworICAgICsrY291bnQ7CisgICAgbG9hZEltYWdlQXN5bmModXJsc1tp
aV0sIGltYWdlTG9hZGVkKHVybHNbaWldKSk7CisgIH0KKyAgY291bnREb3duKCk7Cit9OworCisv
KioKKyAqIFJldHVybnMgYSBtYXAgb2Yga2V5PXZhbHVlIHZhbHVlcyBmcm9tIHVybC4KKyAqIEBy
ZXR1cm4geyFPYmplY3QuPHN0cmluZywgbnVtYmVyPn0gbWFwIG9mIGtleXMgdG8gdmFsdWVzLgor
ICovCit2YXIgZ2V0VXJsQXJndW1lbnRzID0gZnVuY3Rpb24oKSB7CisgIHZhciBhcmdzID0ge307
CisgIHRyeSB7CisgICAgdmFyIHMgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKKyAgICB2YXIgcSA9
IHMuaW5kZXhPZigiPyIpOworICAgIHZhciBlID0gcy5pbmRleE9mKCIjIik7CisgICAgaWYgKGUg
PCAwKSB7CisgICAgICBlID0gcy5sZW5ndGg7CisgICAgfQorICAgIHZhciBxdWVyeSA9IHMuc3Vi
c3RyaW5nKHEgKyAxLCBlKTsKKyAgICB2YXIgcGFpcnMgPSBxdWVyeS5zcGxpdCgiJiIpOworICAg
IGZvciAodmFyIGlpID0gMDsgaWkgPCBwYWlycy5sZW5ndGg7ICsraWkpIHsKKyAgICAgIHZhciBr
ZXlWYWx1ZSA9IHBhaXJzW2lpXS5zcGxpdCgiPSIpOworICAgICAgdmFyIGtleSA9IGtleVZhbHVl
WzBdOworICAgICAgdmFyIHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleVZhbHVlWzFdKTsK
KyAgICAgIGFyZ3Nba2V5XSA9IHZhbHVlOworICAgIH0KKyAgfSBjYXRjaCAoZSkgeworICAgIHRo
cm93ICJjb3VsZCBub3QgcGFyc2UgdXJsIjsKKyAgfQorICByZXR1cm4gYXJnczsKK307CisKKy8q
KgorICogTWFrZXMgYW4gaW1hZ2UgZnJvbSBhIHNyYy4KKyAqIEBwYXJhbSB7c3RyaW5nfSBzcmMg
SW1hZ2Ugc291cmNlIFVSTC4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0gb25sb2FkIENhbGxiYWNr
IHRvIGNhbGwgd2hlbiB0aGUgaW1hZ2UgaGFzIGZpbmlzZWQgbG9hZGluZy4KKyAqIEBwYXJhbSB7
ZnVuY3Rpb24oKX0gb25lcnJvciBDYWxsYmFjayB0byBjYWxsIHdoZW4gYW4gZXJyb3Igb2NjdXJz
LgorICogQHJldHVybiB7IUltYWdlfSBUaGUgY3JlYXRlZCBpbWFnZS4KKyAqLwordmFyIG1ha2VJ
bWFnZSA9IGZ1bmN0aW9uKHNyYywgb25sb2FkLCBvbmVycm9yKSB7CisgIHZhciBpbWcgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgaWYgKG9ubG9hZCkgeworICAgIGltZy5vbmxv
YWQgPSBvbmxvYWQ7CisgIH0KKyAgaWYgKG9uZXJyb3IpIHsKKyAgICBpbWcub25lcnJvciA9IG9u
ZXJyb3I7CisgIH0gZWxzZSB7CisgICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAg
IGxvZygiV0FSTklORzogY3JlYXRpbmcgaW1hZ2UgZmFpbGVkOyBzcmM6ICIgKyB0aGlzLnNyYyk7
CisgICAgfTsKKyAgfQorICBpZiAoc3JjKSB7CisgICAgaW1nLnNyYyA9IHNyYzsKKyAgfQorICBy
ZXR1cm4gaW1nOworfQorCisvKioKKyAqIE1ha2VzIGFuIGltYWdlIGVsZW1lbnQgZnJvbSBhIGNh
bnZhcy4KKyAqIEBwYXJhbSB7IUhUTUxDYW52YXN9IGNhbnZhcyBDYW52YXMgdG8gbWFrZSBpbWFn
ZSBmcm9tLgorICogQHBhcmFtIHtmdW5jdGlvbigpfSBvbmxvYWQgQ2FsbGJhY2sgdG8gY2FsbCB3
aGVuIHRoZSBpbWFnZSBoYXMgZmluaXNlZCBsb2FkaW5nLgorICogQHBhcmFtIHtzdHJpbmd9IGlt
YWdlRm9ybWF0IEltYWdlIGZvcm1hdCB0byBiZSBwYXNzZWQgdG8gdG9EYXRhVXJsKCkuCisgKiBA
cmV0dXJuIHshSW1hZ2V9IFRoZSBjcmVhdGVkIGltYWdlLgorICovCit2YXIgbWFrZUltYWdlRnJv
bUNhbnZhcyA9IGZ1bmN0aW9uKGNhbnZhcywgb25sb2FkLCBpbWFnZUZvcm1hdCkgeworICByZXR1
cm4gbWFrZUltYWdlKGNhbnZhcy50b0RhdGFVUkwoaW1hZ2VGb3JtYXQpLCBvbmxvYWQpOworfTsK
KworLyoqCisgKiBNYWtlcyBhIHZpZGVvIGVsZW1lbnQgZnJvbSBhIHNyYy4KKyAqIEBwYXJhbSB7
c3RyaW5nfSBzcmMgVmlkZW8gc291cmNlIFVSTC4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0gb25l
cnJvciBDYWxsYmFjayB0byBjYWxsIHdoZW4gYW4gZXJyb3Igb2NjdXJzLgorICogQHJldHVybiB7
IVZpZGVvfSBUaGUgY3JlYXRlZCB2aWRlby4KKyAqLwordmFyIG1ha2VWaWRlbyA9IGZ1bmN0aW9u
KHNyYywgb25lcnJvcikgeworICB2YXIgdmlkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlk
ZW8nKTsKKyAgdmlkLm11dGVkID0gdHJ1ZTsKKyAgaWYgKG9uZXJyb3IpIHsKKyAgICB2aWQub25l
cnJvciA9IG9uZXJyb3I7CisgIH0gZWxzZSB7CisgICAgdmlkLm9uZXJyb3IgPSBmdW5jdGlvbigp
IHsKKyAgICAgIGxvZygiV0FSTklORzogY3JlYXRpbmcgdmlkZW8gZmFpbGVkOyBzcmM6ICIgKyB0
aGlzLnNyYyk7CisgICAgfTsKKyAgfQorICBpZiAoc3JjKSB7CisgICAgdmlkLnNyYyA9IHNyYzsK
KyAgfQorICByZXR1cm4gdmlkOworfQorCisvKioKKyAqIEluc2VydHMgYW4gaW1hZ2Ugd2l0aCBh
IGNhcHRpb24gaW50byAnZWxlbWVudCcuCisgKiBAcGFyYW0geyFIVE1MRWxlbWVudH0gZWxlbWVu
dCBFbGVtZW50IHRvIGFwcGVuZCBpbWFnZSB0by4KKyAqIEBwYXJhbSB7c3RyaW5nfSBjYXB0aW9u
IGNhcHRpb24gdG8gYXNzb2NpYXRlIHdpdGggaW1hZ2UuCisgKiBAcGFyYW0geyFJbWFnZX0gaW1n
IGltYWdlIHRvIGluc2VydC4KKyAqLwordmFyIGluc2VydEltYWdlID0gZnVuY3Rpb24oZWxlbWVu
dCwgY2FwdGlvbiwgaW1nKSB7CisgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgdmFyIGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgIGxh
YmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNhcHRpb24pKTsKKyAgZGl2
LmFwcGVuZENoaWxkKGxhYmVsKTsKKyAgZGl2LmFwcGVuZENoaWxkKGltZyk7CisgIGVsZW1lbnQu
YXBwZW5kQ2hpbGQoZGl2KTsKK307CisKKy8qKgorICogSW5zZXJ0cyBhICdsYWJlbCcgdGhhdCB3
aGVuIGNsaWNrZWQgZXhwYW5kcyB0byB0aGUgcHJlIGZvcm1hdHRlZCB0ZXh0CisgKiBzdXBwbGll
ZCBieSAnc291cmNlJy4KKyAqIEBwYXJhbSB7IUhUTUxFbGVtZW50fSBlbGVtZW50IGVsZW1lbnQg
dG8gYXBwZW5kIGxhYmVsIHRvLgorICogQHBhcmFtIHtzdHJpbmd9IGxhYmVsIGxhYmVsIGZvciBh
bmNob3IuCisgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIHByZWZvcm1hdHRlZCB0ZXh0IHRvIGV4
cGFuZCB0by4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfdXJsIFVSTCBvZiBzb3VyY2UuIElmIHBy
b3ZpZGVkIGEgbGluayB0byB0aGUgc291cmNlIGZpbGUKKyAqICAgICB3aWxsIGFsc28gYmUgYWRk
ZWQuCisgKi8KK3ZhciBhZGRTaGFkZXJTb3VyY2UgPSBmdW5jdGlvbihlbGVtZW50LCBsYWJlbCwg
c291cmNlLCBvcHRfdXJsKSB7CisgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKKyAgcy5jbGFz
c05hbWUgPSAic2hhZGVyLXNvdXJjZSI7CisgIHMuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAg
dmFyIG9sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKKyAgLy9zLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNvdXJjZSkpOworICB2YXIgbGluZXMgPSBzb3VyY2Uu
c3BsaXQoIlxuIik7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkp
IHsKKyAgICB2YXIgbGluZSA9IGxpbmVzW2lpXTsKKyAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJsaSIpOworICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKGxpbmUpKTsKKyAgICBvbC5hcHBlbmRDaGlsZChsaSk7CisgIH0KKyAgcy5hcHBlbmRDaGls
ZChvbCk7CisgIHZhciBsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOworICBsLmhyZWYg
PSAic2hvdy1zaGFkZXItc291cmNlIjsKKyAgbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShsYWJlbCkpOworICBsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgeworICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgfQorICAgICAgcy5zdHlsZS5kaXNwbGF5ID0gKHMu
c3R5bGUuZGlzcGxheSA9PSAnbm9uZScpID8gJ2Jsb2NrJyA6ICdub25lJzsKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9LCBmYWxzZSk7CisgIGRpdi5hcHBlbmRDaGlsZChsKTsKKyAgaWYgKG9w
dF91cmwpIHsKKyAgICB2YXIgdSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgICB1
LmhyZWYgPSBvcHRfdXJsOworICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiICIpKTsKKyAgICB1LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIo
IiArIG9wdF91cmwgKyAiKSIpKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQodSk7CisgIH0KKyAgZGl2
LmFwcGVuZENoaWxkKHMpOworICBlbGVtZW50LmFwcGVuZENoaWxkKGRpdik7Cit9OworCisvKioK
KyAqIEluc2VydHMgbGFiZWxzIHRoYXQgd2hlbiBjbGlja2VkIGV4cGFuZCB0byBzaG93IHRoZSBv
cmlnaW5hbCBzb3VyY2Ugb2YgdGhlCisgKiBzaGFkZXIgYW5kIGFsc28gdHJhbnNsYXRlZCBzb3Vy
Y2Ugb2YgdGhlIHNoYWRlciwgaWYgdGhhdCBpcyBhdmFpbGFibGUuCisgKiBAcGFyYW0ge1dlYkdM
UmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisg
KiBAcGFyYW0geyFIVE1MRWxlbWVudH0gZWxlbWVudCBlbGVtZW50IHRvIGFwcGVuZCBsYWJlbCB0
by4KKyAqIEBwYXJhbSB7c3RyaW5nfSBsYWJlbCBsYWJlbCBmb3IgYW5jaG9yLgorICogQHBhcmFt
IHtXZWJHTFNoYWRlcn0gc2hhZGVyIFNoYWRlciB0byBzaG93IHRoZSBzb3VyY2VzIGZvci4KKyAq
IEBwYXJhbSB7c3RyaW5nfSBzaGFkZXJTb3VyY2UgT3JpZ2luYWwgc2hhZGVyIHNvdXJjZS4KKyAq
IEBwYXJhbSB7c3RyaW5nfSBvcHRfdXJsIFVSTCBvZiBzb3VyY2UuIElmIHByb3ZpZGVkIGEgbGlu
ayB0byB0aGUgc291cmNlIGZpbGUKKyAqICAgICB3aWxsIGFsc28gYmUgYWRkZWQuCisgKi8KK3Zh
ciBhZGRTaGFkZXJTb3VyY2VzID0gZnVuY3Rpb24oCisgICAgZ2wsIGVsZW1lbnQsIGxhYmVsLCBz
aGFkZXIsIHNoYWRlclNvdXJjZSwgb3B0X3VybCkgeworICBhZGRTaGFkZXJTb3VyY2UoZWxlbWVu
dCwgbGFiZWwsIHNoYWRlclNvdXJjZSwgb3B0X3VybCk7CisKKyAgdmFyIGRlYnVnU2hhZGVycyA9
IGdsLmdldEV4dGVuc2lvbignV0VCR0xfZGVidWdfc2hhZGVycycpOworICBpZiAoZGVidWdTaGFk
ZXJzICYmIHNoYWRlcikgeworICAgIHZhciB0cmFuc2xhdGVkU291cmNlID0gZGVidWdTaGFkZXJz
LmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2Uoc2hhZGVyKTsKKyAgICBpZiAodHJhbnNsYXRlZFNv
dXJjZSAhPSAnJykgeworICAgICAgYWRkU2hhZGVyU291cmNlKGVsZW1lbnQsIGxhYmVsICsgJyB0
cmFuc2xhdGVkIGZvciBkcml2ZXInLCB0cmFuc2xhdGVkU291cmNlKTsKKyAgICB9CisgIH0KK307
CisKKy8qKgorICogU2VuZHMgc2hhZGVyIGluZm9ybWF0aW9uIHRvIHRoZSBzZXJ2ZXIgdG8gYmUg
ZHVtcGVkIGludG8gdGV4dCBmaWxlcworICogd2hlbiB0ZXN0cyBhcmUgcnVuIGZyb20gd2l0aGlu
IHRoZSB0ZXN0LXJ1bm5lciBoYXJuZXNzLgorICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRl
eHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJp
bmd9IHVybCBVUkwgb2YgY3VycmVudC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBwYXNzTXNnIFRlc3Qg
ZGVzY3JpcHRpb24uCisgKiBAcGFyYW0ge29iamVjdH0gdkluZm8gT2JqZWN0IGNvbnRhaW5pbmcg
dmVydGV4IHNoYWRlciBpbmZvcm1hdGlvbi4KKyAqIEBwYXJhbSB7b2JqZWN0fSBmSW5mbyBPYmpl
Y3QgY29udGFpbmluZyBmcmFnbWVudCBzaGFkZXIgaW5mb3JtYXRpb24uCisgKi8KK3ZhciBkdW1w
U2hhZGVyc0luZm8gPSBmdW5jdGlvbihnbCwgdXJsLCBwYXNzTXNnLCB2SW5mbywgZkluZm8pIHsK
KyAgdmFyIHNoYWRlckluZm8gPSB7fTsKKyAgc2hhZGVySW5mby51cmwgPSB1cmw7CisgIHNoYWRl
ckluZm8udGVzdERlc2NyaXB0aW9uID0gcGFzc01zZzsKKyAgc2hhZGVySW5mby52TGFiZWwgPSB2
SW5mby5sYWJlbDsKKyAgc2hhZGVySW5mby52U2hvdWxkQ29tcGlsZSA9IHZJbmZvLnNoYWRlclN1
Y2Nlc3M7CisgIHNoYWRlckluZm8udlNvdXJjZSA9IHZJbmZvLnNvdXJjZTsKKyAgc2hhZGVySW5m
by5mTGFiZWwgPSBmSW5mby5sYWJlbDsKKyAgc2hhZGVySW5mby5mU2hvdWxkQ29tcGlsZSA9IGZJ
bmZvLnNoYWRlclN1Y2Nlc3M7CisgIHNoYWRlckluZm8uZlNvdXJjZSA9IGZJbmZvLnNvdXJjZTsK
KyAgc2hhZGVySW5mby52VHJhbnNsYXRlZFNvdXJjZSA9IG51bGw7CisgIHNoYWRlckluZm8uZlRy
YW5zbGF0ZWRTb3VyY2UgPSBudWxsOworICB2YXIgZGVidWdTaGFkZXJzID0gZ2wuZ2V0RXh0ZW5z
aW9uKCdXRUJHTF9kZWJ1Z19zaGFkZXJzJyk7CisgIGlmIChkZWJ1Z1NoYWRlcnMpIHsKKyAgICBp
ZiAodkluZm8uc2hhZGVyKQorICAgICAgc2hhZGVySW5mby52VHJhbnNsYXRlZFNvdXJjZSA9IGRl
YnVnU2hhZGVycy5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKHZJbmZvLnNoYWRlcik7CisgICAg
aWYgKGZJbmZvLnNoYWRlcikKKyAgICAgIHNoYWRlckluZm8uZlRyYW5zbGF0ZWRTb3VyY2UgPSBk
ZWJ1Z1NoYWRlcnMuZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZShmSW5mby5zaGFkZXIpOworICB9
CisKKyAgdmFyIGR1bXBTaGFkZXJJbmZvUmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
ICBkdW1wU2hhZGVySW5mb1JlcXVlc3Qub3BlbignUE9TVCcsICIvZHVtcFNoYWRlckluZm8iLCB0
cnVlKTsKKyAgZHVtcFNoYWRlckluZm9SZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L3BsYWluIik7CisgIGR1bXBTaGFkZXJJbmZvUmVxdWVzdC5zZW5kKEpTT04u
c3RyaW5naWZ5KHNoYWRlckluZm8pKTsKK307CisKKy8vIEFkZCB5b3VyIHByZWZpeCBoZXJlLgor
dmFyIGJyb3dzZXJQcmVmaXhlcyA9IFsKKyAgIiIsCisgICJNT1pfIiwKKyAgIk9QXyIsCisgICJX
RUJLSVRfIgorXTsKKworLyoqCisgKiBHaXZlbiBhbiBleHRlbnNpb24gbmFtZSBsaWtlIFdFQkdM
X2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjCisgKiByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBzdXBw
b3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxpa2UKKyAqIFdFQktJVF9XRUJHTF9jb21wcmVzc2Vk
X3RldHVyZV9zM3RjCisgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIGV4dGVuc2lvbiB0
byBsb29rIGZvci4KKyAqIEByZXR1cm4ge3N0cmluZ30gbmFtZSBvZiBleHRlbnNpb24gZm91bmQg
b3IgdW5kZWZpbmVkIGlmIG5vdAorICogICAgIGZvdW5kLgorICovCit2YXIgZ2V0U3VwcG9ydGVk
RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMgPSBmdW5jdGlvbihnbCwgbmFtZSkgeworICB2YXIg
c3VwcG9ydGVkID0gZ2wuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpOworICBmb3IgKHZhciBpaSA9
IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBwcmVmaXhl
ZE5hbWUgPSBicm93c2VyUHJlZml4ZXNbaWldICsgbmFtZTsKKyAgICBpZiAoc3VwcG9ydGVkLmlu
ZGV4T2YocHJlZml4ZWROYW1lKSA+PSAwKSB7CisgICAgICByZXR1cm4gcHJlZml4ZWROYW1lOwor
ICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0g
Z2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30g
bmFtZSBOYW1lIG9mIGV4dGVuc2lvbiB0byBsb29rIGZvci4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0g
ZXh0ZW5zaW9uRW5hYmxlZCBUcnVlIGlmIHRoZSBleHRlbnNpb24gd2FzIGVuYWJsZWQgc3VjY2Vz
c2Z1bGx5IHZpYSBnbC5nZXRFeHRlbnNpb24oKS4KKyAqLwordmFyIHJ1bkV4dGVuc2lvblN1cHBv
cnRlZFRlc3QgPSBmdW5jdGlvbihnbCwgbmFtZSwgZXh0ZW5zaW9uRW5hYmxlZCkgeworICB2YXIg
cHJlZml4ZWROYW1lID0gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMoZ2ws
IG5hbWUpOworICBpZiAocHJlZml4ZWROYW1lICE9PSB1bmRlZmluZWQpIHsKKyAgICAgIGlmIChl
eHRlbnNpb25FbmFibGVkKSB7CisgICAgICAgICAgdGVzdFBhc3NlZChuYW1lICsgIiBsaXN0ZWQg
YXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICB9IGVsc2Ug
eworICAgICAgICAgIHRlc3RGYWlsZWQobmFtZSArICIgbGlzdGVkIGFzIHN1cHBvcnRlZCBidXQg
Z2V0RXh0ZW5zaW9uIGZhaWxlZCIpOworICAgICAgfQorICB9IGVsc2UgeworICAgICAgaWYgKGV4
dGVuc2lvbkVuYWJsZWQpIHsKKyAgICAgICAgICB0ZXN0RmFpbGVkKG5hbWUgKyAiIG5vdCBsaXN0
ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICB9IGVs
c2UgeworICAgICAgICAgIHRlc3RQYXNzZWQobmFtZSArICIgbm90IGxpc3RlZCBhcyBzdXBwb3J0
ZWQgYW5kIGdldEV4dGVuc2lvbiBmYWlsZWQgLS0gdGhpcyBpcyBsZWdhbCIpOworICAgICAgfQor
ICB9Cit9CisKKy8qKgorICogR2l2ZW4gYW4gZXh0ZW5zaW9uIG5hbWUgbGlrZSBXRUJHTF9jb21w
cmVzc2VkX3RleHR1cmVfczN0YworICogcmV0dXJucyB0aGUgc3VwcG9ydGVkIHZlcnNpb24gZXh0
ZW5zaW9uLCBsaWtlCisgKiBXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXR1cmVfczN0YworICog
QHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBleHRlbnNpb24gdG8gbG9vayBmb3IuCisgKiBA
cmV0dXJuIHtXZWJHTEV4dGVuc2lvbn0gVGhlIGV4dGVuc2lvbiBvciB1bmRlZmluZWQgaWYgbm90
CisgKiAgICAgZm91bmQuCisgKi8KK3ZhciBnZXRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcyA9
IGZ1bmN0aW9uKGdsLCBuYW1lKSB7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBicm93c2VyUHJl
Zml4ZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHByZWZpeGVkTmFtZSA9IGJyb3dzZXJQcmVm
aXhlc1tpaV0gKyBuYW1lOworICAgIHZhciBleHQgPSBnbC5nZXRFeHRlbnNpb24ocHJlZml4ZWRO
YW1lKTsKKyAgICBpZiAoZXh0KSB7CisgICAgICByZXR1cm4gZXh0OworICAgIH0KKyAgfQorfTsK
KworLyoqCisgKiBSZXR1cm5zIHBvc3NpYmxlIHByZWZpeGVkIHZlcnNpb25zIG9mIGFuIGV4dGVu
c2lvbidzIG5hbWUuCisgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIGV4dGVuc2lvbi4g
TWF5IGFscmVhZHkgaW5jbHVkZSBhIHByZWZpeC4KKyAqIEByZXR1cm4ge0FycmF5LjxzdHJpbmc+
fSBWYXJpYXRpb25zIG9mIHRoZSBleHRlbnNpb24gbmFtZSB3aXRoIGtub3duCisgKiAgICAgYnJv
d3NlciBwcmVmaXhlcy4KKyAqLwordmFyIGdldEV4dGVuc2lvblByZWZpeGVkTmFtZXMgPSBmdW5j
dGlvbihuYW1lKSB7CisgIHZhciB1bnByZWZpeCA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICBmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0aDsgKytpaSkgeworICAgICAg
aWYgKGJyb3dzZXJQcmVmaXhlc1tpaV0ubGVuZ3RoID4gMCAmJgorICAgICAgICAgIG5hbWUuc3Vi
c3RyaW5nKDAsIGJyb3dzZXJQcmVmaXhlc1tpaV0ubGVuZ3RoKS50b0xvd2VyQ2FzZSgpID09PQor
ICAgICAgICAgIGJyb3dzZXJQcmVmaXhlc1tpaV0udG9Mb3dlckNhc2UoKSkgeworICAgICAgICBy
ZXR1cm4gbmFtZS5zdWJzdHJpbmcoYnJvd3NlclByZWZpeGVzW2lpXS5sZW5ndGgpOworICAgICAg
fQorICAgIH0KKyAgICByZXR1cm4gbmFtZTsKKyAgfQorCisgIHZhciB1bnByZWZpeGVkID0gdW5w
cmVmaXgobmFtZSk7CisKKyAgdmFyIHZhcmlhdGlvbnMgPSBbXTsKKyAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IGJyb3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXJpYXRpb25zLnB1
c2goYnJvd3NlclByZWZpeGVzW2lpXSArIHVucHJlZml4ZWQpOworICB9CisKKyAgcmV0dXJuIHZh
cmlhdGlvbnM7Cit9OworCit2YXIgcmVwbGFjZVJFID0gL1wkXCgoXHcrKVwpL2c7CisKKy8qKgor
ICogUmVwbGFjZXMgc3RyaW5ncyB3aXRoIHByb3BlcnR5IHZhbHVlcy4KKyAqIEdpdmVuIGEgc3Ry
aW5nIGxpa2UgImhlbGxvICQoZmlyc3QpICQobGFzdCkiIGFuZCBhbiBvYmplY3QKKyAqIGxpa2Ug
e2ZpcnN0OiJKb2huIiwgbGFzdDoiU21pdGgifSB3aWxsIHJldHVybgorICogImhlbGxvIEpvaG4g
U21pdGgiLgorICogQHBhcmFtIHtzdHJpbmd9IHN0ciBTdHJpbmcgdG8gZG8gcmVwbGFjZW1lbnRz
IGluLgorICogQHBhcmFtIHsuLi59IDEgb3IgbW9yZSBvYmplY3RzIGNvbnRhaW5pbmcgcHJvcGVy
dGllcy4KKyAqLwordmFyIHJlcGxhY2VQYXJhbXMgPSBmdW5jdGlvbihzdHIpIHsKKyAgdmFyIGFy
Z3MgPSBhcmd1bWVudHM7CisgIHJldHVybiBzdHIucmVwbGFjZShyZXBsYWNlUkUsIGZ1bmN0aW9u
KHN0ciwgcDEsIG9mZnNldCwgcykgeworICAgIGZvciAodmFyIGlpID0gMTsgaWkgPCBhcmdzLmxl
bmd0aDsgKytpaSkgeworICAgICAgaWYgKGFyZ3NbaWldW3AxXSAhPT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIHJldHVybiBhcmdzW2lpXVtwMV07CisgICAgICB9CisgICAgfQorICAgIHRocm93ICJ1
bmtub3duIHN0cmluZyBwYXJhbSAnIiArIHAxICsgIiciOworICB9KTsKK307CisKK3ZhciB1cHBl
ckNhc2VGaXJzdExldHRlciA9IGZ1bmN0aW9uKHN0cikgeworICByZXR1cm4gc3RyLnN1YnN0cmlu
ZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cmluZygxKTsKK307CisKKy8qKgorICog
R2V0cyBhIHByZWZpeGVkIHByb3BlcnR5LiBGb3IgZXhhbXBsZSwKKyAqCisgKiAgICAgdmFyIGZu
ID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eSgKKyAqICAgICAgICB3aW5kb3csCisgKiAgICAgICAgInJl
cXVlc3RBbmltYXRpb25GcmFtZSIpOworICoKKyAqIFdpbGwgcmV0dXJuIGVpdGhlcjoKKyAqICAg
ICJ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKKyAqICAgICJ3aW5kb3cub1JlcXVlc3RB
bmltYXRpb25GcmFtZSIsCisgKiAgICAid2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwK
KyAqICAgICJ3aW5kb3cubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKKyAqICAgICJ3aW5kb3cu
d2ViS2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKKyAqICAgIHVuZGVmaW5lZAorICoKKyAqIHRo
ZSBub24tcHJlZml4ZWQgZnVuY3Rpb24gaXMgdHJpZWQgZmlyc3QuCisgKi8KK3ZhciBwcm9wZXJ0
eVByZWZpeGVzID0gWyIiLCAibW96IiwgIm1zIiwgIm8iLCAid2Via2l0Il07Cit2YXIgZ2V0UHJl
Zml4ZWRQcm9wZXJ0eSA9IGZ1bmN0aW9uKG9iaiwgcHJvcGVydHlOYW1lKSB7CisgIGZvciAodmFy
IGlpID0gMDsgaWkgPCBwcm9wZXJ0eVByZWZpeGVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBw
cmVmaXggPSBwcm9wZXJ0eVByZWZpeGVzW2lpXTsKKyAgICB2YXIgbmFtZSA9IHByZWZpeCArIHBy
b3BlcnR5TmFtZTsKKyAgICBsb2cobmFtZSk7CisgICAgdmFyIHByb3BlcnR5ID0gb2JqW25hbWVd
OworICAgIGlmIChwcm9wZXJ0eSkgeworICAgICAgcmV0dXJuIHByb3BlcnR5OworICAgIH0KKyAg
ICBpZiAoaWkgPT0gMCkgeworICAgICAgcHJvcGVydHlOYW1lID0gdXBwZXJDYXNlRmlyc3RMZXR0
ZXIocHJvcGVydHlOYW1lKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHVuZGVmaW5lZDsKK307CisK
K3ZhciBfcmVxdWVzdEFuaW1GcmFtZTsKKworLyoqCisgKiBQcm92aWRlcyByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgaW4gYSBjcm9zcyBicm93c2VyIHdheS4KKyAqLwordmFyIHJlcXVlc3RBbmltRnJh
bWUgPSBmdW5jdGlvbihjYWxsYmFjaykgeworICBpZiAoIV9yZXF1ZXN0QW5pbUZyYW1lKSB7Cisg
ICAgX3JlcXVlc3RBbmltRnJhbWUgPSBnZXRQcmVmaXhlZFByb3BlcnR5KHdpbmRvdywgInJlcXVl
c3RBbmltYXRpb25GcmFtZSIpIHx8CisgICAgICBmdW5jdGlvbihjYWxsYmFjaywgZWxlbWVudCkg
eworICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2ssIDEwMDAgLyA3MCk7
CisgICAgICB9OworICB9CisgIF9yZXF1ZXN0QW5pbUZyYW1lLmNhbGwod2luZG93LCBjYWxsYmFj
ayk7Cit9OworCit2YXIgX2NhbmNlbEFuaW1GcmFtZTsKKworLyoqCisgKiBQcm92aWRlcyBjYW5j
ZWxBbmltYXRpb25GcmFtZSBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5LgorICovCit2YXIgY2FuY2Vs
QW5pbUZyYW1lID0gZnVuY3Rpb24ocmVxdWVzdCkgeworICBpZiAoIV9jYW5jZWxBbmltRnJhbWUp
IHsKKyAgICBfY2FuY2VsQW5pbUZyYW1lID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eSh3aW5kb3csICJj
YW5jZWxBbmltYXRpb25GcmFtZSIpIHx8CisgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0OworICB9
CisgIF9jYW5jZWxBbmltRnJhbWUuY2FsbCh3aW5kb3csIHJlcXVlc3QpOworfTsKKworLyoqCisg
KiBQcm92aWRlcyByZXF1ZXN0RnVsbFNjcmVlbiBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5LgorICov
Cit2YXIgcmVxdWVzdEZ1bGxTY3JlZW4gPSBmdW5jdGlvbihlbGVtZW50KSB7CisgIHZhciBmbiA9
IGdldFByZWZpeGVkUHJvcGVydHkoZWxlbWVudCwgInJlcXVlc3RGdWxsU2NyZWVuIik7CisgIGlm
IChmbikgeworICAgIGZuLmNhbGwoZWxlbWVudCk7CisgIH0KK307CisKKy8qKgorICogUHJvdmlk
ZXMgY2FuY2VsRnVsbFNjcmVlbiBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5LgorICovCit2YXIgY2Fu
Y2VsRnVsbFNjcmVlbiA9IGZ1bmN0aW9uKCkgeworICB2YXIgZm4gPSBnZXRQcmVmaXhlZFByb3Bl
cnR5KGRvY3VtZW50LCAiY2FuY2VsRnVsbFNjcmVlbiIpOworICBpZiAoZm4pIHsKKyAgICBmbi5j
YWxsKGRvY3VtZW50KTsKKyAgfQorfTsKKwordmFyIGZ1bGxTY3JlZW5TdGF0ZU5hbWU7CisoZnVu
Y3Rpb24oKSB7CisgIHZhciBmdWxsU2NyZWVuU3RhdGVOYW1lcyA9IFsKKyAgICAiaXNGdWxsU2Ny
ZWVuIiwKKyAgICAiZnVsbFNjcmVlbiIKKyAgXTsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZ1
bGxTY3JlZW5TdGF0ZU5hbWVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBwcm9wZXJ0eU5hbWUg
PSBmdWxsU2NyZWVuU3RhdGVOYW1lc1tpaV07CisgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IHBy
b3BlcnR5UHJlZml4ZXMubGVuZ3RoOyArK2pqKSB7CisgICAgICB2YXIgcHJlZml4ID0gcHJvcGVy
dHlQcmVmaXhlc1tqal07CisgICAgICBpZiAocHJlZml4Lmxlbmd0aCkgeworICAgICAgICBwcm9w
ZXJ0eU5hbWUgPSB1cHBlckNhc2VGaXJzdExldHRlcihwcm9wZXJ0eU5hbWUpOworICAgICAgICBm
dWxsU2NyZWVuU3RhdGVOYW1lID0gcHJlZml4ICsgcHJvcGVydHlOYW1lOworICAgICAgICBpZiAo
ZG9jdW1lbnRbZnVsbFNjcmVlblN0YXRlTmFtZV0gIT09IHVuZGVmaW5lZCkgeworICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBmdWxsU2NyZWVuU3RhdGVO
YW1lID0gdW5kZWZpbmVkOworICB9Cit9KCkpOworCisvKioKKyAqIEByZXR1cm4ge2Jvb2xlYW59
IFRydWUgaWYgZnVsbHNjcmVlbiBtb2RlIGlzIGFjdGl2ZS4KKyAqLwordmFyIGdldEZ1bGxTY3Jl
ZW5TdGF0ZSA9IGZ1bmN0aW9uKCkgeworICBsb2coImZ1bGxzY3JlZW5zdGF0ZW5hbWU6IiArIGZ1
bGxTY3JlZW5TdGF0ZU5hbWUpOworICBsb2coZG9jdW1lbnRbZnVsbFNjcmVlblN0YXRlTmFtZV0p
OworICByZXR1cm4gZG9jdW1lbnRbZnVsbFNjcmVlblN0YXRlTmFtZV07Cit9OworCisvKioKKyAq
IEBwYXJhbSB7IUhUTUxFbGVtZW50fSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGdvIGZ1bGxzY3Jl
ZW4uCisgKiBAcGFyYW0geyFmdW5jdGlvbihib29sZWFuKX0gY2FsbGJhY2sgQSBmdW5jdGlvbiB0
aGF0IHdpbGwgYmUgY2FsbGVkCisgKiAgICAgICAgd2hlbiBlbnRlcmluZy9leGl0aW5nIGZ1bGxz
Y3JlZW4uIEl0IGlzIHBhc3NlZCB0cnVlIGlmCisgKiAgICAgICAgZW50ZXJpbmcgZnVsbHNjcmVl
biwgZmFsc2UgaWYgZXhpdGluZy4KKyAqLwordmFyIG9uRnVsbFNjcmVlbkNoYW5nZSA9IGZ1bmN0
aW9uKGVsZW1lbnQsIGNhbGxiYWNrKSB7CisgIHByb3BlcnR5UHJlZml4ZXMuZm9yRWFjaChmdW5j
dGlvbihwcmVmaXgpIHsKKyAgICB2YXIgZXZlbnROYW1lID0gcHJlZml4ICsgImZ1bGxzY3JlZW5j
aGFuZ2UiOworICAgIGxvZygiYWRkZXZlbnQ6ICIgKyBldmVudE5hbWUpOworICAgIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jdGlvbihldmVudCkgeworICAgICAgbG9n
KCJldmVudDogIiArIGV2ZW50TmFtZSk7CisgICAgICBjYWxsYmFjayhnZXRGdWxsU2NyZWVuU3Rh
dGUoKSk7CisgICAgfSk7CisgIH0pOworfTsKKworLyoqCisgKiBAcGFyYW0geyFzdHJpbmd9IGJ1
dHRvbklkIFRoZSBpZCBvZiB0aGUgYnV0dG9uIHRoYXQgd2lsbCB0b2dnbGUgZnVsbHNjcmVlbgor
ICogICAgICAgIG1vZGUuCisgKiBAcGFyYW0geyFzdHJpbmd9IGZ1bGxzY3JlZW5JZCBUaGUgaWQg
b2YgdGhlIGVsZW1lbnQgdG8gZ28gZnVsbHNjcmVlbi4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKGJv
b2xlYW4pfSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQKKyAqICAgICAg
ICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgZnVsbHNjcmVlbi4gSXQgaXMgcGFzc2VkIHRydWUgaWYK
KyAqICAgICAgICBlbnRlcmluZyBmdWxsc2NyZWVuLCBmYWxzZSBpZiBleGl0aW5nLgorICogQHJl
dHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBmdWxsc2NyZWVuIG1vZGUgaXMgc3VwcG9ydGVkLgorICov
Cit2YXIgc2V0dXBGdWxsc2NyZWVuID0gZnVuY3Rpb24oYnV0dG9uSWQsIGZ1bGxzY3JlZW5JZCwg
Y2FsbGJhY2spIHsKKyAgaWYgKCFmdWxsU2NyZWVuU3RhdGVOYW1lKSB7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisKKyAgdmFyIGZ1bGxzY3JlZW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZnVsbHNjcmVlbklkKTsKKyAgb25GdWxsU2NyZWVuQ2hhbmdlKGZ1bGxzY3JlZW5FbGVt
ZW50LCBjYWxsYmFjayk7CisKKyAgdmFyIHRvZ2dsZUZ1bGxTY3JlZW4gPSBmdW5jdGlvbihldmVu
dCkgeworICAgIGlmIChnZXRGdWxsU2NyZWVuU3RhdGUoKSkgeworICAgICAgY2FuY2VsRnVsbFNj
cmVlbihmdWxsc2NyZWVuRWxlbWVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJlcXVlc3RGdWxs
U2NyZWVuKGZ1bGxzY3JlZW5FbGVtZW50KTsKKyAgICB9CisgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH07CisKKyAgdmFyIGJ1dHRvbkVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JZCk7CisgIGJ1dHRvbkVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVGdWxsU2NyZWVuKTsKKworICByZXR1cm4gdHJ1ZTsK
K307CisKKy8qKgorICogV2FpdHMgZm9yIHRoZSBicm93c2VyIHRvIGNvbXBvc2l0ZSB0aGUgd2Vi
IHBhZ2UuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCl9IGNhbGxiYWNrIEEgZnVuY3Rpb24gdG8gY2Fs
bCBhZnRlciBjb21wb3NpdGluZyBoYXMgdGFrZW4KKyAqICAgICAgICBwbGFjZS4KKyAqLwordmFy
IHdhaXRGb3JDb21wb3NpdGUgPSBmdW5jdGlvbihjYWxsYmFjaykgeworICB2YXIgZnJhbWVzID0g
NTsKKyAgdmFyIGNvdW50RG93biA9IGZ1bmN0aW9uKCkgeworICAgIGlmIChmcmFtZXMgPT0gMCkg
eworICAgICAgLy8gVE9ETyhrYnIpOiB1bmlmeSB3aXRoIGpzLXRlc3QtcHJlLmpzIGFuZCBlbmFi
bGUgdGhlc2Ugd2l0aAorICAgICAgLy8gdmVyYm9zZSBsb2dnaW5nLgorICAgICAgLy8gbG9nKCJ3
YWl0Rm9yQ29tcG9zaXRlOiBjYWxsYmFjayIpOworICAgICAgY2FsbGJhY2soKTsKKyAgICB9IGVs
c2UgeworICAgICAgLy8gbG9nKCJ3YWl0Rm9yQ29tcG9zaXRlOiBjb3VudGRvd24oIiArIGZyYW1l
cyArICIpIik7CisgICAgICAtLWZyYW1lczsKKyAgICAgIHJlcXVlc3RBbmltRnJhbWUuY2FsbCh3
aW5kb3csIGNvdW50RG93bik7CisgICAgfQorICB9OworICBjb3VudERvd24oKTsKK307CisKK3Zh
ciBzZXRaZXJvVGltZW91dCA9IChmdW5jdGlvbigpIHsKKyAgLy8gU2VlIGh0dHBzOi8vZGJhcm9u
Lm9yZy9sb2cvMjAxMDAzMDktZmFzdGVyLXRpbWVvdXRzCisKKyAgdmFyIHRpbWVvdXRzID0gW107
CisgIHZhciBtZXNzYWdlTmFtZSA9ICJ6ZXJvLXRpbWVvdXQtbWVzc2FnZSI7CisKKyAgLy8gTGlr
ZSBzZXRUaW1lb3V0LCBidXQgb25seSB0YWtlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50LiAgVGhlcmUn
cworICAvLyBubyB0aW1lIGFyZ3VtZW50IChhbHdheXMgemVybykgYW5kIG5vIGFyZ3VtZW50cyAo
eW91IGhhdmUgdG8KKyAgLy8gdXNlIGEgY2xvc3VyZSkuCisgIGZ1bmN0aW9uIHNldFplcm9UaW1l
b3V0KGZuKSB7CisgICAgICB0aW1lb3V0cy5wdXNoKGZuKTsKKyAgICAgIHdpbmRvdy5wb3N0TWVz
c2FnZShtZXNzYWdlTmFtZSwgIioiKTsKKyAgfQorCisgIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgIGlmIChldmVudC5zb3VyY2UgPT0gd2luZG93ICYmIGV2ZW50LmRhdGEg
PT0gbWVzc2FnZU5hbWUpIHsKKyAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAg
ICAgICAgICBpZiAodGltZW91dHMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICB2YXIgZm4g
PSB0aW1lb3V0cy5zaGlmdCgpOworICAgICAgICAgICAgICBmbigpOworICAgICAgICAgIH0KKyAg
ICAgIH0KKyAgfQorCisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgaGFuZGxl
TWVzc2FnZSwgdHJ1ZSk7CisKKyAgcmV0dXJuIHNldFplcm9UaW1lb3V0OworfSkoKTsKKworZnVu
Y3Rpb24gZGlzcGF0Y2hQcm9taXNlKGZuKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgoZm5fcmVz
b2x2ZSwgZm5fcmVqZWN0KSA9PiB7CisgICAgc2V0WmVyb1RpbWVvdXQoKCkgPT4geworICAgICAg
bGV0IHZhbDsKKyAgICAgIGlmIChmbikgeworICAgICAgICB2YWwgPSBmbigpOworICAgICAgfQor
ICAgICAgZm5fcmVzb2x2ZSh2YWwpOworICAgIH0pOworICB9KTsKK30KKworLyoqCisgKiBSdW5z
IGFuIGFycmF5IG9mIGZ1bmN0aW9ucywgeWllbGRpbmcgdG8gdGhlIGJyb3dzZXIgYmV0d2VlbiBl
YWNoIHN0ZXAuCisgKiBJZiB5b3Ugd2FudCB0byBrbm93IHdoZW4gYWxsIHRoZSBzdGVwcyBhcmUg
ZmluaXNoZWQgYWRkIGEgbGFzdCBzdGVwLgorICogQHBhcmFtIHshQXJyYXkuPGZ1bmN0aW9uKCk6
IHZvaWQ+fSBzdGVwcyBBcnJheSBvZiBmdW5jdGlvbnMuCisgKi8KK3ZhciBydW5TdGVwcyA9IGZ1
bmN0aW9uKHN0ZXBzKSB7CisgIGlmICghc3RlcHMubGVuZ3RoKSB7CisgICAgcmV0dXJuOworICB9
CisKKyAgLy8gY29weSBzdGVwcyBzbyB0aGV5IGNhbid0IGJlIG1vZGlmZWQuCisgIHZhciBzdGVw
c1RvUnVuID0gc3RlcHMuc2xpY2UoKTsKKyAgdmFyIGN1cnJlbnRTdGVwID0gMDsKKyAgdmFyIHJ1
bk5leHRTdGVwID0gZnVuY3Rpb24oKSB7CisgICAgc3RlcHNUb1J1bltjdXJyZW50U3RlcCsrXSgp
OworICAgIGlmIChjdXJyZW50U3RlcCA8IHN0ZXBzVG9SdW4ubGVuZ3RoKSB7CisgICAgICBzZXRU
aW1lb3V0KHJ1bk5leHRTdGVwLCAxKTsKKyAgICB9CisgIH07CisgIHJ1bk5leHRTdGVwKCk7Cit9
OworCisvKioKKyAqIFN0YXJ0cyBwbGF5aW5nIGEgdmlkZW8gYW5kIHdhaXRzIGZvciBpdCB0byBi
ZSBjb25zdW1hYmxlLgorICogQHBhcmFtIHshSFRNTFZpZGVvRWxlbWVudH0gdmlkZW8gQW4gSFRN
TDUgVmlkZW8gZWxlbWVudC4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKCFIVE1MVmlkZW9FbGVtZW50
KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdG8gY2FsbCB3aGVuCisgKiAgICAgICAgdmlkZW8g
aXMgcmVhZHkuCisgKi8KK2FzeW5jIGZ1bmN0aW9uIHN0YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRl
byh2aWRlbywgY2FsbGJhY2spIHsKKyAgaWYgKHZpZGVvLmVycm9yKSB7CisgICAgdGVzdEZhaWxl
ZCgnVmlkZW8gZmFpbGVkIHRvIGxvYWQ6ICcgKyB2aWRlby5lcnJvcik7CisgICAgcmV0dXJuOwor
ICB9CisKKyAgdmlkZW8ubG9vcCA9IHRydWU7CisgIHZpZGVvLm11dGVkID0gdHJ1ZTsKKyAgLy8g
U2VlIHdoZXRoZXIgc2V0dGluZyB0aGUgcHJlbG9hZCBmbGFnIGRlLWZsYWtlcyB2aWRlby1yZWxh
dGVkIHRlc3RzLgorICB2aWRlby5wcmVsb2FkID0gJ2F1dG8nOworCisgIHRyeSB7CisgICAgYXdh
aXQgdmlkZW8ucGxheSgpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZCgndmlkZW8u
cGxheSBmYWlsZWQ6ICcgKyBlKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjaykgeworICAgIGF3YWl0IG5ldyBQcm9taXNlKGdvID0+IHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soZ28pKTsKKyAgfQorCisgIGNhbGxiYWNrKHZp
ZGVvKTsKK30KKwordmFyIGdldEhvc3QgPSBmdW5jdGlvbih1cmwpIHsKKyAgdXJsID0gdXJsLnJl
cGxhY2UoIlxcIiwgIi8iKTsKKyAgdmFyIHBvcyA9IHVybC5pbmRleE9mKCI6Ly8iKTsKKyAgaWYg
KHBvcyA+PSAwKSB7CisgICAgdXJsID0gdXJsLnN1YnN0cihwb3MgKyAzKTsKKyAgfQorICB2YXIg
cGFydHMgPSB1cmwuc3BsaXQoJy8nKTsKKyAgcmV0dXJuIHBhcnRzWzBdOworfQorCisvLyBUaGlz
IGZ1bmN0aW9uIHJldHVybnMgdGhlIGxhc3QgMiB3b3JkcyBvZiB0aGUgZG9tYWluIG9mIGEgVVJM
CisvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCB0aGUgY29ycmVjdCBjaGVjayBidXQgaXQgd2lsbCBk
byBmb3Igbm93LgordmFyIGdldEJhc2VEb21haW4gPSBmdW5jdGlvbihob3N0KSB7CisgIHZhciBw
YXJ0cyA9IGhvc3Quc3BsaXQoIjoiKTsKKyAgdmFyIGhvc3RuYW1lID0gcGFydHNbMF07CisgIHZh
ciBwb3J0ID0gcGFydHNbMV0gfHwgIjgwIjsKKyAgcGFydHMgPSBob3N0bmFtZS5zcGxpdCgiLiIp
OworICBpZihwYXJ0cy5sZW5ndGggPCAyKQorICAgIHJldHVybiBob3N0bmFtZSArICI6IiArIHBv
cnQ7CisgIHZhciB0bGQgPSBwYXJ0c1twYXJ0cy5sZW5ndGgtMV07CisgIHZhciBkb21haW4gPSBw
YXJ0c1twYXJ0cy5sZW5ndGgtMl07CisgIHJldHVybiBkb21haW4gKyAiLiIgKyB0bGQgKyAiOiIg
KyBwb3J0OworfQorCit2YXIgcnVubmluZ09uTG9jYWxob3N0ID0gZnVuY3Rpb24oKSB7CisgIGxl
dCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsKKyAgcmV0dXJuIGhvc3RuYW1l
ID09ICJsb2NhbGhvc3QiIHx8CisgICAgaG9zdG5hbWUgPT0gIjEyNy4wLjAuMSIgfHwKKyAgICBo
b3N0bmFtZSA9PSAiOjoxIjsKK30KKwordmFyIGdldExvY2FsQ3Jvc3NPcmlnaW4gPSBmdW5jdGlv
bigpIHsKKyAgdmFyIGRvbWFpbjsKKyAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LmluZGV4T2Yo
ImxvY2FsaG9zdCIpICE9IC0xKSB7CisgICAgLy8gVE9ETyhrYnIpOiBmaWd1cmUgb3V0IHdoZXRo
ZXIgdG8gdXNlIGFuIElQdjYgbG9vcGJhY2sgYWRkcmVzcy4KKyAgICBkb21haW4gPSAiMTI3LjAu
MC4xIjsKKyAgfSBlbHNlIHsKKyAgICBkb21haW4gPSAibG9jYWxob3N0IjsKKyAgfQorCisgIHZh
ciBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQgfHwgIjgwIjsKKyAgcmV0dXJuIHdpbmRvdy5s
b2NhdGlvbi5wcm90b2NvbCArICIvLyIgKyBkb21haW4gKyAiOiIgKyBwb3J0Cit9CisKK3ZhciBn
ZXRSZWxhdGl2ZVBhdGggPSBmdW5jdGlvbihwYXRoKSB7CisgIHZhciByZWxwYXJ0cyA9IHdpbmRv
dy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgiLyIpOworICByZWxwYXJ0cy5wb3AoKTsgLy8gUG9w
IG9mZiBmaWxlbmFtZQorICB2YXIgcGF0aHBhcnRzID0gcGF0aC5zcGxpdCgiLyIpOworCisgIHZh
ciBpOworICBmb3IgKGkgPSAwOyBpIDwgcGF0aHBhcnRzLmxlbmd0aDsgKytpKSB7CisgICAgc3dp
dGNoIChwYXRocGFydHNbaV0pIHsKKyAgICAgIGNhc2UgIiI6IGJyZWFrOworICAgICAgY2FzZSAi
LiI6IGJyZWFrOworICAgICAgY2FzZSAiLi4iOgorICAgICAgICByZWxwYXJ0cy5wb3AoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICByZWxwYXJ0cy5wdXNoKHBhdGhw
YXJ0c1tpXSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgfQorCisgIHJldHVybiByZWxwYXJ0
cy5qb2luKCIvIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWRDcm9zc09yaWdpbkltYWdlKGlt
Zywgd2ViVXJsLCBsb2NhbFVybCkgeworICBpZiAocnVubmluZ09uTG9jYWxob3N0KCkpIHsKKyAg
ICBpbWcuc3JjID0gZ2V0TG9jYWxDcm9zc09yaWdpbigpICsgZ2V0UmVsYXRpdmVQYXRoKGxvY2Fs
VXJsKTsKKyAgICBjb25zb2xlLmxvZygnW2xvYWRDcm9zc09yaWdpbkltYWdlXScsICcgIHRyeWlu
ZycsIGltZy5zcmMpOworICAgIGF3YWl0IGltZy5kZWNvZGUoKTsKKyAgICByZXR1cm47CisgIH0K
KworICB0cnkgeworICAgIGltZy5zcmMgPSBnZXRVcmxPcHRpb25zKCkuaW1nVXJsIHx8IHdlYlVy
bDsKKyAgICBjb25zb2xlLmxvZygnW2xvYWRDcm9zc09yaWdpbkltYWdlXScsICd0cnlpbmcnLCBp
bWcuc3JjKTsKKyAgICBhd2FpdCBpbWcuZGVjb2RlKCk7CisgICAgcmV0dXJuOworICB9IGNhdGNo
IHt9CisKKyAgdGhyb3cgJ2NyZWF0ZUNyb3NzT3JpZ2luSW1hZ2UgZmFpbGVkJzsKK30KKworLyoq
CisgKiBDb252ZXJ0IHNSR0IgY29sb3IgdG8gbGluZWFyIGNvbG9yLgorICogQHBhcmFtIHshQXJy
YXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBiZSBjb252ZXJ0ZWQuCisgKiAgICAgICAg
VGhlIGFycmF5IGhhcyA0IGVsZW1lbnRzLCBmb3IgZXhhbXBsZSBbUiwgRywgQiwgQV0uCisgKiAg
ICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEBy
ZXR1cm4geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGJlIGNvbnZlcnRlZC4K
KyAqICAgICAgICBUaGUgYXJyYXkgaGFzIDQgZWxlbWVudHMsIGZvciBleGFtcGxlIFtSLCBHLCBC
LCBBXS4KKyAqICAgICAgICB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8g
MjU1LgorICovCit2YXIgc1JHQlRvTGluZWFyID0gZnVuY3Rpb24oY29sb3IpIHsKKyAgICByZXR1
cm4gW3NSR0JDaGFubmVsVG9MaW5lYXIoY29sb3JbMF0pLAorICAgICAgICAgICAgc1JHQkNoYW5u
ZWxUb0xpbmVhcihjb2xvclsxXSksCisgICAgICAgICAgICBzUkdCQ2hhbm5lbFRvTGluZWFyKGNv
bG9yWzJdKSwKKyAgICAgICAgICAgIGNvbG9yWzNdXQorfQorCisvKioKKyAqIENvbnZlcnQgbGlu
ZWFyIGNvbG9yIHRvIHNSR0IgY29sb3IuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29s
b3IgVGhlIGNvbG9yIHRvIGJlIGNvbnZlcnRlZC4KKyAqICAgICAgICBUaGUgYXJyYXkgaGFzIDQg
ZWxlbWVudHMsIGZvciBleGFtcGxlIFtSLCBHLCBCLCBBXS4KKyAqICAgICAgICB3aGVyZSBlYWNo
IGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICogQHJldHVybiB7IUFycmF5Ljxu
dW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gYmUgY29udmVydGVkLgorICogICAgICAgIFRoZSBh
cnJheSBoYXMgNCBlbGVtZW50cywgZm9yIGV4YW1wbGUgW1IsIEcsIEIsIEFdLgorICogICAgICAg
IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKi8KK3ZhciBs
aW5lYXJUb1NSR0IgPSBmdW5jdGlvbihjb2xvcikgeworICAgIHJldHVybiBbbGluZWFyQ2hhbm5l
bFRvU1JHQihjb2xvclswXSksCisgICAgICAgICAgICBsaW5lYXJDaGFubmVsVG9TUkdCKGNvbG9y
WzFdKSwKKyAgICAgICAgICAgIGxpbmVhckNoYW5uZWxUb1NSR0IoY29sb3JbMl0pLAorICAgICAg
ICAgICAgY29sb3JbM11dCit9CisKK2Z1bmN0aW9uIHNSR0JDaGFubmVsVG9MaW5lYXIodmFsdWUp
IHsKKyAgICB2YWx1ZSA9IHZhbHVlIC8gMjU1OworICAgIGlmICh2YWx1ZSA8PSAwLjA0MDQ1KQor
ICAgICAgICB2YWx1ZSA9IHZhbHVlIC8gMTIuOTI7CisgICAgZWxzZQorICAgICAgICB2YWx1ZSA9
IE1hdGgucG93KCh2YWx1ZSArIDAuMDU1KSAvIDEuMDU1LCAyLjQpOworICAgIHJldHVybiBNYXRo
LnRydW5jKHZhbHVlICogMjU1ICsgMC41KTsKK30KKworZnVuY3Rpb24gbGluZWFyQ2hhbm5lbFRv
U1JHQih2YWx1ZSkgeworICAgIHZhbHVlID0gdmFsdWUgLyAyNTU7CisgICAgaWYgKHZhbHVlIDw9
IDAuMCkgeworICAgICAgICB2YWx1ZSA9IDAuMDsKKyAgICB9IGVsc2UgaWYgKHZhbHVlIDwgMC4w
MDMxMzA4KSB7CisgICAgICAgIHZhbHVlID0gdmFsdWUgKiAxMi45MjsKKyAgICB9IGVsc2UgaWYg
KHZhbHVlIDwgMSkgeworICAgICAgICB2YWx1ZSA9IE1hdGgucG93KHZhbHVlLCAwLjQxNjY2KSAq
IDEuMDU1IC0gMC4wNTU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFsdWUgPSAxLjA7CisgICAg
fQorICAgIHJldHVybiBNYXRoLnRydW5jKHZhbHVlICogMjU1ICsgMC41KTsKK30KKworZnVuY3Rp
b24gY29tcGFyZVBpeGVscyhjbXAsIHJlZiwgdG9sZXJhbmNlLCBkaWZmKSB7CisgICAgaWYgKGNt
cC5sZW5ndGggIT0gcmVmLmxlbmd0aCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJpbnZhbGlkIHBp
eGVsIHNpemUuIik7CisgICAgfQorCisgICAgdmFyIGNvdW50ID0gMDsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGNtcC5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoZGlmZikgeworICAgICAg
ICAgICAgZGlmZltpICogNF0gPSAwOworICAgICAgICAgICAgZGlmZltpICogNCArIDFdID0gMjU1
OworICAgICAgICAgICAgZGlmZltpICogNCArIDJdID0gMDsKKyAgICAgICAgICAgIGRpZmZbaSAq
IDQgKyAzXSA9IDI1NTsKKyAgICAgICAgfQorICAgICAgICBpZiAoTWF0aC5hYnMoY21wW2kgKiA0
XSAtIHJlZltpICogNF0pID4gdG9sZXJhbmNlIHx8CisgICAgICAgICAgICBNYXRoLmFicyhjbXBb
aSAqIDQgKyAxXSAtIHJlZltpICogNCArIDFdKSA+IHRvbGVyYW5jZSB8fAorICAgICAgICAgICAg
TWF0aC5hYnMoY21wW2kgKiA0ICsgMl0gLSByZWZbaSAqIDQgKyAyXSkgPiB0b2xlcmFuY2UgfHwK
KyAgICAgICAgICAgIE1hdGguYWJzKGNtcFtpICogNCArIDNdIC0gcmVmW2kgKiA0ICsgM10pID4g
dG9sZXJhbmNlKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPCAxMCkgeworICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlBpeGVsICIgKyBpICsgIjogZXhwZWN0ZWQgKCIgKworICAgICAgICAg
ICAgICAgIFtyZWZbaSAqIDRdLCByZWZbaSAqIDQgKyAxXSwgcmVmW2kgKiA0ICsgMl0sIHJlZltp
ICogNCArIDNdXSArICIpLCBnb3QgKCIgKworICAgICAgICAgICAgICAgIFtjbXBbaSAqIDRdLCBj
bXBbaSAqIDQgKyAxXSwgY21wW2kgKiA0ICsgMl0sIGNtcFtpICogNCArIDNdXSArICIpIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYgKGRpZmYp
IHsKKyAgICAgICAgICAgICAgICBkaWZmW2kgKiA0XSA9IDI1NTsKKyAgICAgICAgICAgICAgICBk
aWZmW2kgKiA0ICsgMV0gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg
ICAgcmV0dXJuIGNvdW50OworfQorCitmdW5jdGlvbiBkZXN0cm95Q29udGV4dChnbCkgeworICBj
b25zdCBleHQgPSBnbC5nZXRFeHRlbnNpb24oJ1dFQkdMX2xvc2VfY29udGV4dCcpOworICBpZiAo
ZXh0KSB7CisgICAgZXh0Lmxvc2VDb250ZXh0KCk7CisgIH0KKyAgZ2wuY2FudmFzLndpZHRoID0g
MTsKKyAgZ2wuY2FudmFzLmhlaWdodCA9IDE7Cit9CisKK2Z1bmN0aW9uIGRlc3Ryb3lBbGxDb250
ZXh0cygpIHsKKyAgaWYgKCF3aW5kb3cuX3d0dV9jb250ZXh0cykKKyAgICByZXR1cm47CisgIGZv
ciAoY29uc3QgeCBvZiB3aW5kb3cuX3d0dV9jb250ZXh0cykgeworICAgIGRlc3Ryb3lDb250ZXh0
KHgpOworICB9CisgIHdpbmRvdy5fd3R1X2NvbnRleHRzID0gW107Cit9CisKK2Z1bmN0aW9uIGRp
c3BsYXlJbWFnZURpZmYoY21wLCByZWYsIGRpZmYsIHdpZHRoLCBoZWlnaHQpIHsKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAgICB2YXIgY21wSW1nID0g
Y3JlYXRlSW1hZ2VGcm9tUGl4ZWwoY21wLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICB2YXIgcmVmSW1n
ID0gY3JlYXRlSW1hZ2VGcm9tUGl4ZWwocmVmLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICB2YXIgZGlm
ZkltZyA9IGNyZWF0ZUltYWdlRnJvbVBpeGVsKGRpZmYsIHdpZHRoLCBoZWlnaHQpOworICAgIHd0
dS5pbnNlcnRJbWFnZShkaXYsICJSZWZlcmVuY2UiLCByZWZJbWcpOworICAgIHd0dS5pbnNlcnRJ
bWFnZShkaXYsICJSZXN1bHQiLCBjbXBJbWcpOworICAgIHd0dS5pbnNlcnRJbWFnZShkaXYsICJE
aWZmZXJlbmNlIiwgZGlmZkltZyk7CisKKyAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChkaXYpOworfQor
CitmdW5jdGlvbiBjcmVhdGVJbWFnZUZyb21QaXhlbChidWYsIHdpZHRoLCBoZWlnaHQpIHsKKyAg
ICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgY2Fu
dmFzLndpZHRoID0gd2lkdGg7CisgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKKyAgICB2YXIg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgdmFyIGltZ0RhdGEgPSBjdHguZ2V0
SW1hZ2VEYXRhKDAsIDAsIHdpZHRoLCBoZWlnaHQpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBidWYubGVuZ3RoOyBpKyspCisgICAgICAgIGltZ0RhdGEuZGF0YVtpXSA9IGJ1ZltpXTsKKyAg
ICBjdHgucHV0SW1hZ2VEYXRhKGltZ0RhdGEsIDAsIDApOworICAgIHZhciBpbWcgPSB3dHUubWFr
ZUltYWdlRnJvbUNhbnZhcyhjYW52YXMpOworICAgIHJldHVybiBpbWc7Cit9CisKK2FzeW5jIGZ1
bmN0aW9uIGF3YWl0VGltZW91dChtcykgeworICBhd2FpdCBuZXcgUHJvbWlzZShyZXMgPT4gewor
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgcmVzKCk7CisgICAgfSwgbXMpOworICB9KTsK
K30KKworYXN5bmMgZnVuY3Rpb24gYXdhaXRPclRpbWVvdXQocHJvbWlzZSwgb3B0X3RpbWVvdXRf
bXMpIHsKKyAgYXN5bmMgZnVuY3Rpb24gdGhyb3dPblRpbWVvdXQobXMpIHsKKyAgICBhd2FpdCBh
d2FpdFRpbWVvdXQobXMpOworICAgIHRocm93ICd0aW1lb3V0JzsKKyAgfQorCisgIGxldCB0aW1l
b3V0X21zID0gb3B0X3RpbWVvdXRfbXM7CisgIGlmICh0aW1lb3V0X21zID09PSB1bmRlZmluZWQp
CisgICAgdGltZW91dF9tcyA9IDUwMDA7CisKKyAgYXdhaXQgUHJvbWlzZS5yYWNlKFtwcm9taXNl
LCB0aHJvd09uVGltZW91dCh0aW1lb3V0X21zKV0pOworfQorCit2YXIgQVBJID0geworICBhZGRT
aGFkZXJTb3VyY2U6IGFkZFNoYWRlclNvdXJjZSwKKyAgYWRkU2hhZGVyU291cmNlczogYWRkU2hh
ZGVyU291cmNlcywKKyAgY2FuY2VsQW5pbUZyYW1lOiBjYW5jZWxBbmltRnJhbWUsCisgIGNyZWF0
ZTNEQ29udGV4dDogY3JlYXRlM0RDb250ZXh0LAorICBHTEVycm9yRXhjZXB0aW9uOiBHTEVycm9y
RXhjZXB0aW9uLAorICBjcmVhdGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJvd3NPbkdMRXJy
b3I6IGNyZWF0ZTNEQ29udGV4dFdpdGhXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvciwKKyAgY2hl
Y2tBcmVhSW5BbmRPdXQ6IGNoZWNrQXJlYUluQW5kT3V0LAorICBjaGVja0NhbnZhczogY2hlY2tD
YW52YXMsCisgIGNoZWNrQ2FudmFzUmVjdDogY2hlY2tDYW52YXNSZWN0LAorICBjaGVja0NhbnZh
c1JlY3RDb2xvcjogY2hlY2tDYW52YXNSZWN0Q29sb3IsCisgIGNoZWNrQ2FudmFzUmVjdHM6IGNo
ZWNrQ2FudmFzUmVjdHMsCisgIGNoZWNrRmxvYXRCdWZmZXI6IGNoZWNrRmxvYXRCdWZmZXIsCisg
IGNoZWNrVGV4dHVyZVNpemU6IGNoZWNrVGV4dHVyZVNpemUsCisgIGNsaXBUb1JhbmdlOiBjbGlw
VG9SYW5nZSwKKyAgY3JlYXRlQ29sb3JlZFRleHR1cmU6IGNyZWF0ZUNvbG9yZWRUZXh0dXJlLAor
ICBjcmVhdGVQcm9ncmFtOiBjcmVhdGVQcm9ncmFtLAorICBjbGVhckFuZERyYXdVbml0UXVhZDog
Y2xlYXJBbmREcmF3VW5pdFF1YWQsCisgIGNsZWFyQW5kRHJhd0luZGV4ZWRRdWFkOiBjbGVhckFu
ZERyYXdJbmRleGVkUXVhZCwKKyAgY29tcGFyZVBpeGVsczogY29tcGFyZVBpeGVscywKKyAgZGVz
dHJveUFsbENvbnRleHRzOiBkZXN0cm95QWxsQ29udGV4dHMsCisgIGRlc3Ryb3lDb250ZXh0OiBk
ZXN0cm95Q29udGV4dCwKKyAgZGlzcGF0Y2hQcm9taXNlOiBkaXNwYXRjaFByb21pc2UsCisgIGRp
c3BsYXlJbWFnZURpZmY6IGRpc3BsYXlJbWFnZURpZmYsCisgIGRyYXdVbml0UXVhZDogZHJhd1Vu
aXRRdWFkLAorICBkcmF3SW5kZXhlZFF1YWQ6IGRyYXdJbmRleGVkUXVhZCwKKyAgZHJhd1VCeXRl
Q29sb3JRdWFkOiBkcmF3VUJ5dGVDb2xvclF1YWQsCisgIGRyYXdGbG9hdENvbG9yUXVhZDogZHJh
d0Zsb2F0Q29sb3JRdWFkLAorICBkdW1teVNldFByb2dyYW1BbmREcmF3Tm90aGluZzogZHVtbXlT
ZXRQcm9ncmFtQW5kRHJhd05vdGhpbmcsCisgIGR1bXBTaGFkZXJzSW5mbzogZHVtcFNoYWRlcnNJ
bmZvLAorICBlbmRzV2l0aDogZW5kc1dpdGgsCisgIGZhaWxJZkdMRXJyb3I6IGZhaWxJZkdMRXJy
b3IsCisgIGZpbGxUZXh0dXJlOiBmaWxsVGV4dHVyZSwKKyAgZnJhbWVidWZmZXJTdGF0dXNTaG91
bGRCZTogZnJhbWVidWZmZXJTdGF0dXNTaG91bGRCZSwKKyAgZ2V0Qnl0ZXNQZXJDb21wb25lbnQ6
IGdldEJ5dGVzUGVyQ29tcG9uZW50LAorICBnZXREZWZhdWx0M0RDb250ZXh0VmVyc2lvbjogZ2V0
RGVmYXVsdDNEQ29udGV4dFZlcnNpb24sCisgIGdldEV4dGVuc2lvblByZWZpeGVkTmFtZXM6IGdl
dEV4dGVuc2lvblByZWZpeGVkTmFtZXMsCisgIGdldEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVz
OiBnZXRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcywKKyAgZ2V0RmlsZUxpc3RBc3luYzogZ2V0
RmlsZUxpc3RBc3luYywKKyAgZ2V0TGFzdEVycm9yOiBnZXRMYXN0RXJyb3IsCisgIGdldFByZWZp
eGVkUHJvcGVydHk6IGdldFByZWZpeGVkUHJvcGVydHksCisgIGdldFNjcmlwdDogZ2V0U2NyaXB0
LAorICBnZXRTdXBwb3J0ZWRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlczogZ2V0U3VwcG9ydGVk
RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMsCisgIGdldFR5cGVkQXJyYXlFbGVtZW50c1BlclBp
eGVsOiBnZXRUeXBlZEFycmF5RWxlbWVudHNQZXJQaXhlbCwKKyAgZ2V0VXJsQXJndW1lbnRzOiBn
ZXRVcmxBcmd1bWVudHMsCisgIGdldFVybE9wdGlvbnM6IGdldFVybE9wdGlvbnMsCisgIGdldEF0
dHJpYk1hcDogZ2V0QXR0cmliTWFwLAorICBnZXRVbmlmb3JtTWFwOiBnZXRVbmlmb3JtTWFwLAor
ICBnbEVudW1Ub1N0cmluZzogZ2xFbnVtVG9TdHJpbmcsCisgIGdsRXJyb3JBc3NlcnQ6IGdsRXJy
b3JBc3NlcnQsCisgIGdsRXJyb3JTaG91bGRCZTogZ2xFcnJvclNob3VsZEJlLAorICBnbFR5cGVU
b1R5cGVkQXJyYXlUeXBlOiBnbFR5cGVUb1R5cGVkQXJyYXlUeXBlLAorICBoYXNBdHRyaWJ1dGVD
YXNlSW5zZW5zaXRpdmU6IGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSwKKyAgaW5zZXJ0SW1h
Z2U6IGluc2VydEltYWdlLAorICBpc1dlYkdMMjogaXNXZWJHTDIsCisgIGxpbmtQcm9ncmFtOiBs
aW5rUHJvZ3JhbSwKKyAgbG9hZENyb3NzT3JpZ2luSW1hZ2U6IGxvYWRDcm9zc09yaWdpbkltYWdl
LAorICBsb2FkSW1hZ2VBc3luYzogbG9hZEltYWdlQXN5bmMsCisgIGxvYWRJbWFnZXNBc3luYzog
bG9hZEltYWdlc0FzeW5jLAorICBsb2FkUHJvZ3JhbTogbG9hZFByb2dyYW0sCisgIGxvYWRQcm9n
cmFtRnJvbUZpbGU6IGxvYWRQcm9ncmFtRnJvbUZpbGUsCisgIGxvYWRQcm9ncmFtRnJvbVNjcmlw
dDogbG9hZFByb2dyYW1Gcm9tU2NyaXB0LAorICBsb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RF
cnJvcjogbG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3IsCisgIGxvYWRTaGFkZXI6IGxv
YWRTaGFkZXIsCisgIGxvYWRTaGFkZXJGcm9tRmlsZTogbG9hZFNoYWRlckZyb21GaWxlLAorICBs
b2FkU2hhZGVyRnJvbVNjcmlwdDogbG9hZFNoYWRlckZyb21TY3JpcHQsCisgIGxvYWRTdGFuZGFy
ZFByb2dyYW06IGxvYWRTdGFuZGFyZFByb2dyYW0sCisgIGxvYWRTdGFuZGFyZFByb2dyYW1Bc3lu
YzogbG9hZFN0YW5kYXJkUHJvZ3JhbUFzeW5jLAorICBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXI6
IGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlciwKKyAgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyQXN5
bmM6IGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlckFzeW5jLAorICBsb2FkU3RhbmRhcmRGcmFnbWVu
dFNoYWRlcjogbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIsCisgIGxvYWRTdGFuZGFyZEZyYWdt
ZW50U2hhZGVyQXN5bmM6IGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyQXN5bmMsCisgIGxvYWRV
bmlmb3JtQmxvY2tQcm9ncmFtOiBsb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbSwKKyAgbG9hZFVuaWZv
cm1CbG9ja1ZlcnRleFNoYWRlcjogbG9hZFVuaWZvcm1CbG9ja1ZlcnRleFNoYWRlciwKKyAgbG9h
ZFVuaWZvcm1CbG9ja0ZyYWdtZW50U2hhZGVyOiBsb2FkVW5pZm9ybUJsb2NrRnJhZ21lbnRTaGFk
ZXIsCisgIGxvYWRUZXh0RmlsZUFzeW5jOiBsb2FkVGV4dEZpbGVBc3luYywKKyAgbG9hZFRleHR1
cmU6IGxvYWRUZXh0dXJlLAorICBsb2c6IGxvZywKKyAgbG9nZ2luZ09mZjogbG9nZ2luZ09mZiwK
KyAgbWFrZUNoZWNrUmVjdDogbWFrZUNoZWNrUmVjdCwKKyAgbWFrZUltYWdlOiBtYWtlSW1hZ2Us
CisgIG1ha2VJbWFnZUZyb21DYW52YXM6IG1ha2VJbWFnZUZyb21DYW52YXMsCisgIG1ha2VWaWRl
bzogbWFrZVZpZGVvLAorICBlcnJvcjogZXJyb3IsCisgIHJ1bkV4dGVuc2lvblN1cHBvcnRlZFRl
c3Q6IHJ1bkV4dGVuc2lvblN1cHBvcnRlZFRlc3QsCisgIHNoYWxsb3dDb3B5T2JqZWN0OiBzaGFs
bG93Q29weU9iamVjdCwKKyAgc2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb246IHNldERlZmF1bHQz
RENvbnRleHRWZXJzaW9uLAorICBzZXR1cENvbG9yUXVhZDogc2V0dXBDb2xvclF1YWQsCisgIHNl
dHVwUHJvZ3JhbTogc2V0dXBQcm9ncmFtLAorICBzZXR1cFRyYW5zZm9ybUZlZWRiYWNrUHJvZ3Jh
bTogc2V0dXBUcmFuc2Zvcm1GZWVkYmFja1Byb2dyYW0sCisgIHNldHVwUXVhZDogc2V0dXBRdWFk
LAorICBzZXR1cFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFF1YWRXaXRoVGV4Q29vcmRzLAorICBz
ZXR1cEluZGV4ZWRRdWFkOiBzZXR1cEluZGV4ZWRRdWFkLAorICBzZXR1cEluZGV4ZWRRdWFkV2l0
aE9wdGlvbnM6IHNldHVwSW5kZXhlZFF1YWRXaXRoT3B0aW9ucywKKyAgc2V0dXBTaW1wbGVDb2xv
clByb2dyYW06IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtLAorICBzZXR1cFNpbXBsZVRleHR1cmVQ
cm9ncmFtOiBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtLAorICBzZXR1cFNpbXBsZVRleHR1cmVQ
cm9ncmFtRVNTTDMwMDogc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbUVTU0wzMDAsCisgIHNldHVw
U2ltcGxlQ3ViZU1hcFRleHR1cmVQcm9ncmFtOiBzZXR1cFNpbXBsZUN1YmVNYXBUZXh0dXJlUHJv
Z3JhbSwKKyAgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclByb2dyYW06IHNldHVwU2ltcGxlVmVydGV4
Q29sb3JQcm9ncmFtLAorICBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbTogc2V0dXBOb1Rl
eENvb3JkVGV4dHVyZVByb2dyYW0sCisgIHNldHVwVGV4dHVyZWRRdWFkOiBzZXR1cFRleHR1cmVk
UXVhZCwKKyAgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFRleHR1cmVkUXVh
ZFdpdGhUZXhDb29yZHMsCisgIHNldHVwVGV4dHVyZWRRdWFkV2l0aEN1YmVNYXA6IHNldHVwVGV4
dHVyZWRRdWFkV2l0aEN1YmVNYXAsCisgIHNldHVwVW5pdFF1YWQ6IHNldHVwVW5pdFF1YWQsCisg
IHNldEZsb2F0RHJhd0NvbG9yOiBzZXRGbG9hdERyYXdDb2xvciwKKyAgc2V0VUJ5dGVEcmF3Q29s
b3I6IHNldFVCeXRlRHJhd0NvbG9yLAorICBzdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW86IHN0
YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRlbywKKyAgc3RhcnRzV2l0aDogc3RhcnRzV2l0aCwKKyAg
c2hvdWxkR2VuZXJhdGVHTEVycm9yOiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IsCisgIHNob3VsZFRo
cm93OiBzaG91bGRUaHJvdywKKyAgcmVhZEZpbGU6IHJlYWRGaWxlLAorICByZWFkRmlsZUxpc3Q6
IHJlYWRGaWxlTGlzdCwKKyAgcmVwbGFjZVBhcmFtczogcmVwbGFjZVBhcmFtcywKKyAgcmVxdWVz
dEFuaW1GcmFtZTogcmVxdWVzdEFuaW1GcmFtZSwKKyAgcnVuU3RlcHM6IHJ1blN0ZXBzLAorICB3
YWl0Rm9yQ29tcG9zaXRlOiB3YWl0Rm9yQ29tcG9zaXRlLAorCisgIC8vIGZ1bGxzY3JlZW4gYXBp
CisgIHNldHVwRnVsbHNjcmVlbjogc2V0dXBGdWxsc2NyZWVuLAorCisgIC8vIHNSR0IgY29udmVy
dGVyIGFwaQorICBzUkdCVG9MaW5lYXI6IHNSR0JUb0xpbmVhciwKKyAgbGluZWFyVG9TUkdCOiBs
aW5lYXJUb1NSR0IsCisKKyAgZ2V0SG9zdDogZ2V0SG9zdCwKKyAgZ2V0QmFzZURvbWFpbjogZ2V0
QmFzZURvbWFpbiwKKyAgcnVubmluZ09uTG9jYWxob3N0OiBydW5uaW5nT25Mb2NhbGhvc3QsCisg
IGdldExvY2FsQ3Jvc3NPcmlnaW46IGdldExvY2FsQ3Jvc3NPcmlnaW4sCisgIGdldFJlbGF0aXZl
UGF0aDogZ2V0UmVsYXRpdmVQYXRoLAorICBhd2FpdE9yVGltZW91dDogYXdhaXRPclRpbWVvdXQs
CisgIGF3YWl0VGltZW91dDogYXdhaXRUaW1lb3V0LAorCisgIG5vbmU6IGZhbHNlCit9OworCitP
YmplY3QuZGVmaW5lUHJvcGVydGllcyhBUEksIHsKKyAgbm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhT
aGFkZXI6IHsgdmFsdWU6IG5vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVyLCB3cml0YWJsZTog
ZmFsc2UgfSwKKyAgc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlVGV4
dHVyZVZlcnRleFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZVRleHR1cmVWZXJ0
ZXhTaGFkZXJFU1NMMzAwOiB7IHZhbHVlOiBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyRVNTTDMw
MCwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXI6IHsgdmFs
dWU6IHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1w
bGVDb2xvckZyYWdtZW50U2hhZGVyRVNTTDMwMDogeyB2YWx1ZTogc2ltcGxlQ29sb3JGcmFnbWVu
dFNoYWRlckVTU0wzMDAsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVWZXJ0ZXhTaGFkZXI6
IHsgdmFsdWU6IHNpbXBsZVZlcnRleFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBs
ZVZlcnRleFNoYWRlckVTU0wzMDA6IHsgdmFsdWU6IHNpbXBsZVZlcnRleFNoYWRlckVTU0wzMDAs
IHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXI6IHsgdmFs
dWU6IHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNp
bXBsZVRleHR1cmVGcmFnbWVudFNoYWRlckVTU0wzMDA6IHsgdmFsdWU6IHNpbXBsZVRleHR1cmVG
cmFnbWVudFNoYWRlckVTU0wzMDAsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVIaWdoUHJl
Y2lzaW9uVGV4dHVyZUZyYWdtZW50U2hhZGVyOiB7IHZhbHVlOiBzaW1wbGVIaWdoUHJlY2lzaW9u
VGV4dHVyZUZyYWdtZW50U2hhZGVyLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlQ3ViZU1h
cFRleHR1cmVGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlQ3ViZU1hcFRleHR1cmVGcmFn
bWVudFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZVZlcnRleENvbG9yRnJhZ21l
bnRTaGFkZXI6IHsgdmFsdWU6IHNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXIsIHdyaXRh
YmxlOiBmYWxzZSB9LAorICBzaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlcjogeyB2YWx1ZTog
c2ltcGxlVmVydGV4Q29sb3JWZXJ0ZXhTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9Cit9KTsKKwor
cmV0dXJuIEFQSTsKKworfSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY2ODM5YjYyMTQ3
NzNiMGEwMGJjOGEyYjNiNjJhY2Y2NGRjMWRlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzCkBAIC0wLDAgKzEsMjAgQEAKKy5wYXNzIHsKKyAgICBmb250LXdl
aWdodDogYm9sZDsKKyAgICBjb2xvcjogZ3JlZW47Cit9CisuZmFpbCB7CisgICAgZm9udC13ZWln
aHQ6IGJvbGQ7CisgICAgY29sb3I6IHJlZDsKK30KKy53YXJuIHsKKyAgICBmb250LXdlaWdodDog
Ym9sZDsKKyAgICBjb2xvcjogeWVsbG93OworICAgIHRleHQtc2hhZG93OiAxcHggMXB4ICNmZjAw
MDAKK30KKyNjb25zb2xlIHsKKyAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CisgICAgZm9udC1m
YW1pbHk6IG1vbm9zcGFjZTsKK30KK2JvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZm
ZmY7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9vcGVuZ2xfbG9nby5qcGcgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9v
cGVuZ2xfbG9nby5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNiNzBiZWYzZjJjNzg3MzZjNzJlMjYzYjYzYWNl
YThkOWE5NDY3YQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTgyNwp6Y21hKWZjVGZ7Znd7e3tP
Zms+NiFMUXo1S099WmV4Z0VSdzU/X0g0SWRvTG1vZ3dQMnNiVjVnSTVmQmp9YmRVfUsKemdMTFUh
ZSghemZ7bDBJJGBeU0N1b1NCX0hkIURuaXYlOW07P2Fie207RE1Ud3N1QlFyNCo7O2ZZaz1GfDBD
R2lkCnpEPD9reTVQJUIrMEhwNFFfNWZ0XileMyhJMFBEfHBCZiM1dktxTFNrN1ooPX43YXREfnA5
dWZYPy1TelY2VyU4dwp6Q2NhTmhPITkhX1V3QS01MjZfTUBCY1lfRXFOMWNeV01FKW1XY2QkKDFP
eD02QiY0KHQ5PztUTGxUKnxHQy1BQFIKeis8cGQtNjlPeSUzcGhZPnomJnl4NG10Myk5e3t+dUEx
KTU/WmtoaTlFKj9Hc0BFIzUhNUQzN3peWnlJP2FCeldtCno0Kj5Vb0lRTVhJYTByTlRhUzg2Q2NY
SSpjY1MmcGw2YUAwUmxvbFRCVlFHYytmLWs3WF4oO05wOF5BKTtna00obAp6QU1QSXIoLWllOFdF
Njk3LVBRakd8RkhrTl5jQEV8RX1NV1pnKi1kZTlmUDFBXzt3Q0phdT5XdWp6YlFSMSlPTEMKemJu
cFA/cCN3TExJSnFQQWVFTX4tbjBafHdDVXkpZWM5VVdzN2UyRn5NeiFreT5ZVHVlWUYtS1VVQDc/
RUAzUnltCnpHWTcmfFhNQUNpdWcxfEtvUHpUeXBIWFFgMyFDOG1Hbk1XbWY5UkNDK1J7QTNgcmg3
X20tcTNjLUBCOXtKPTNxWAp6Q3R0VTJjSj9+bnB5ZmtzKVgkVlpVc0RgPEMkd0p7S0FrLTE+WU4w
QDRNTDt7Yn1ZOTgyNVJfQDFkNXp8NHspey0KeiFTPzZlN2FQbC0xQW53NlJ4LW00Jlp+az1Zaikx
S1RDUCRxK2BMWChFRFJpU25aX2FgViFsNUNuWkYjTE4jSk9PCno9STNSSCllQ35OblBxWUExdnsx
dzZybmk9Zio/R1I7VX1NTSt3WC13YGhSVHpsP1V3TzZKbnNDNmplOzF2V2x9Xgp6PUJhJHpQMXdm
SyN3cj1uTEY+RHlnR3N3VU5EVGs3WkJ9P2ExUlg3RD1OV3pEeVc1XkMwREY4OUIwIXE4VTg1VW0K
elhfYmw0Yz5CPihSZ0J7LSE7bkxNQ0QhaXlVfXkkIWVFIUo2Y19we052TC1YNDV2ZkhjKXUjTTtG
ZnYpVF5oKz1fCnpyQ2t5Mm5jQmBJPjljK2Q7MDdwNFpLZWc2YntVPnA/SSMjRUN3aWJ9QzhzPE5u
Z21YS3BFU1pNOURBbCZAVHlkPQp6Pk9GbnRlT3FxPCklQi19cGNfWiY5PlBDc3cqYnUpckB0fGFx
aWdHeUd9aypAeVNEJj4pbXdtO3B3Q2VOWUp7QioKemwlY2VIOztueURPQ1piZVY2XjReY1FIRXQ7
IWw0NHI/T1hKanZFYyNEJD1UcWc7T0Z9YnttS0shfkpaQWxQRiRUCnpReC1MIXk8ajt9ZT9CKDwo
NTY8eSM1dCNLcEdodTdIYHJBfjZNN0t6KDVQWUJ6RFpibXdzYGxFPzB4PXxLbnF2VQp6cTJIQTE8
WjRvQ3YlbnVYR2JHUnZGV09DeDNpeUJRVlN4WnpQR0hYclUyYm4ydHZWejhPKlJJISM4cXlsXzBy
SV4Kek5iZlM/eWAlcitAMXRRdTNmSSZNUl5ucHwoe1FRdG5hIWA0cW99eTU9Wl9TRWdEYzJuYHZ5
ditYZ0Y4M1RSbFlLCnpvIzNqY2AjdXZiLUo0Uy1PekxOazgyNUZhWi05M3k/ZmxLP2NQQiRRRjVQ
X2VzcWl3YEw1NmFDSkp1bzgtQnZjJAp6amFganF7Xk1iOUZeaW9PMHpkcENzeHFnZVQzXys7SGlL
SHtMb353fGBEO044OXRBWVlHMEM1YmJvWnp2R2R3OEIKejxhRGdaVWlqJSllfkFPfWxhZXcxQkIw
VDNyaHVofnpEej8zNEBEKSk+QUp0P0ZmenE1RkhHSlNOND9CIVEpQEFpCnpiI1Qkd3hBOCY8Vmpt
PV93QDgtMSUkT2Vjb1U9KVpNK3NtJkUqZH13KWMmKDBlTGBKSWBJZX0+Oz5FVip1XjVITAp6KUR8
dkNBeyorZmNTOW8qUGsqbzxDYjl5X2R0NiliWGtvMkMhQikmaj8oK2gocU0/RHFiQk4heG9Pdmpw
b0s8RCQKej1zJmt0aGFMKmRAT0c2N3kwN1YrKXVeXz5tVXNxamZDbVV4eCMreTR0YWQjMiYkckdv
KEsxJlMhI1BxO3R5TDNICnpiQCVoaWIjX2N3NyVjZigka156NGRRa1g8aSlgaVJ5UFU7cTV0cztV
RSVtX1NfZXdBPHl7aD9UISRtcGdjY1NqTwp6S1V8ezFWUHR2dGVUfmZebWs0b2FAZSVqTHYpNilW
TWF5Iz95OXhfQmw8X3k4YzYmNygjUUQjOGdtKmtkVVpCfUUKekJ3cEU2azhhLSE5bzs2O3AoYEs7
KUQ7TjB4aFQ+JTZ3KzlEPTs0QmNINT1YOFJod1RhNEprfmd1JjZpeV4rVGVzCnpEKDkqKXcjKCtO
c0d9OU0xSWVEbV40SWsjbVdPQEZ5fCEjWj0+fDNtQms5aT1vMGN4dHZSK05yc1RDcChRVztYRQp6
RTxoWGJGPG5HPHQoV3ZpXlVQfDhJUnY5JEQ8d2luXztkRVVnMWcqQjcxKCRzKkJ9RXpkUmdsPWZa
VyVBV15oOEMKelRWNyYqNnwhT1k+UC1pbU9hNy1zTndJZUUrIVRYSmNQIzxiNj9yNVdmX3pnKzNq
PmtHVzZ9T1hBTGpSUnE7XntJCnpFMW43Y2JEWnI1citZd2Q2Ti1ZbWw3SFFZRHRHcFB2TjRmcV5r
KnpqanZiQFBIe004bmpUdzFydUVVWThaPjNQfAp6b1Z3eElvLWRQQGheNzFCeWBrM21sZStvcVh9
dWA1Uz5zOHZJPXBJMF5JYEI7dFdSRTIxbEB5Yl43JjkqVFo+SXAKelBPWWUoXllJIzA4WEcjbTRC
MVIjTU85Wk5DTEY4PGc0USl4KDZ4NVAkKmFJbXUkMEVMKDRKS1IqeDVgWDZVUkRkCnpCSUg9NE17
PS0+dT0mdn5wZ2g7b2RuRWo1anY8PVZPJHFmcWF6QiYkXkMxYkpUWUJlVE0mXjhmdEJuRTBaSFNU
Sgp6eV58a0kzTzVwZyROMnNPWkY4WXhNJn4tI0Q0bVU5VmZeUTw5X0xPOyViUG0kdHRhcXpMMTNf
cV9CRkxNPnNoWFEKek1YJGBhI0kybk1LTz5KX3xMPCRsPjlpJT9KXkBIfEJ5fkxiRGZISjxlXlIo
SUtgdCZmZ1MqNDd6VEwtTWEzcTU8CnpoaXQ/ci1fTSM/ZCNDRDIzYmdKUFZDIWJVO21+bnVJc1hS
T09seXskQUwqWSlWWkdoOUdWdnxWNnlDI15BdiE8ewp6QXE8ZjFPZVZ1KnNFNXJxVUNuJTMke3tH
X2R7RyROTzAjM1FhVTtVP3E0OShFdExffVR6dXxLOEpfUDM0UFkldlcKem01bXgrMlRfK2hmXkdv
fmxRcml2cmBJMTVTZjV6VEB0NnwjNEQtJWNYUio2dVNpczxvZmloOSo8Y0xmODl5Vk98CnpRa3Vv
RE40REdMOSt2SUM0X01rbkA4JTJuU3cxRysjJSpBeCFzJjcxSHskbCk+ZDVeN0BlUCVRcyM2fXZf
YVhUcgp6ZW9VRypQR3Bicz5Ub3k+JHlKeTJITiVQamNGZXNLKz1qKHRackoodGwhWks8JSZXSFdy
SkwmMGR1QW5MI0kmJnAKel58aH5oI19Jd2M7bWRHfWhXK3xPWUVDPkohVlVwYk9XSl54cDV8e1Yk
SmdZX0VCckJxcUo+aDReaFMobHYpU3xDCnooTDt8RXhTYjREPkJ+O2BsOy1sZE1sMlVfYH5AakZE
QiFYV2ExWUY+P1cmITV5ejw9ZzZVdHJ4YmE5KWB0ME0raQp6KnA1ZCFvcjVgVFQ1VilEU0J3YCFv
RWZnTzVOaHVzZCMqPXwmJiN3IzduMWFHPSlTcTdhVXtfe3loMFFDYTVhaDAKelUjPF98MCFsNmZC
SEI2PGtqQj5FQSheWGhaM1drYzNxME49I0tYTGBfIUd3PWQ4eGlPWCUmQ0FQaEBefEJURlVYCnpP
fjVwKHU4RlJNcVIzZ3RxUk57eTtuI0sob0U4TTAkU0d2MExXI1psUklCV2xafERYYXckZkF6NmBC
cWZwMUU9bgp6IWpXfE48dFNtdjteTSVaUzZOe3VjIUBfPFJLaGwkc0VFWkxGb2lpYU1XX2lTcGxu
PHs1cytpIXByTThSb2w2RXYKejlgY14zb0MoZk89aSFuZFo+NUkqOU1gcXIxVSQzKEs8ZVJOYlEl
aypzQXYmX1ZQKVFfPmpXYm83PWlHPyY8P0dsCnp2RzJYIVJuRCVrUX1ZSWR1Yys5ZWY/IThnM3Yz
ZFZOJXcpRyMqJER9WDZIdzwmOCN2ZU1TKUNvZHU5eFFJWkgkRgp6dCV9ZkBLM1o+TzFGMkBqdT9E
Kis4SGtLWGxFJHt3TiZOTnVmJkZHNDtlQTR0NVpFa2pLNzR3P2xsPTJ3JHV3QEMKekgwODMhWjA8
fj1kX3ROVF9CTm8zdCMwWGBBQkhNP0hKQXM3bzlaeTFKTl8xY1hlazE3ZSVYTDsqJT14ITJAWVp6
Cno7ZUooeG43MldMQyU9e1J3ZHZKSyg2eiVjV1hAU3FfNWBsS1l8MylGYnhXbE05M08hVnIycnFu
USQ2QlZDTXwxJgp6biRRLXthWkQ9KmgqKjQ7SUttaHRoZTZBfCVLTihAZWkwbStKeH5LKUc2YypH
N3E5ZW1SVCh5SGFYb0dHMnVHJXsKemFCRV9YJUdRZWYkandsZ2BlKH1EKFIwa1V2bTtaaVkydj9x
Oy1hX35DaFYrbjNDWWljSGRwJkVOQTJwN1U+aGZMCnpXNnEkVEtsI2gleW9OQXZkbE5ING4hNHVM
XlU2YFh6ZldmUzs/I2NFRDZvbFl3WiRqKTNTX2F2blNxKTktNSo2dAp6YCRYeVZMJXdQXnsjOSZP
cUEkeFN3JStLazwqREFLdiQzXjNPWDAmPVE8b05ze3lyXjl1fGdyTyt5KmBNQShfZCoKejQkVikj
MiVCVTB6flN8cCUkcmNEeCExYjw1OWN1NT5INkpzYERJJDVWTDZMVm1LP2tgQENmND8mNllDYz4w
K2s2CnpyPTt0TVBfPXY4UjFIYiRpUXxaeVI3bzM+O2s5O3hqKEEtJUpWd0QrdTZ0TUluUDteJT9f
R2lWMTJjVVpldmhAQgp6RFRYe0cqNjV6Wj47V3hPc0Y7KyQodVRJM3prRDN4QlREMU1lIyFHeHhN
bnZZTGpaP0cwQUNVci1sSm9FO3Jwc1gKeldNOCsrbU5SMClrTV9YdnhrMns4RUZ+QTFMQ1VXNSF9
R1p2QypxYSRXOWFZfnleKXp+QSZeOFA9ZzBfelIkWDA0CnpVRGx8I0FZVGs4Pyt3SEpeNEw+KkRf
KD9hJnRKbzZ0NHJ8WDNuXzdiSCZhQjJLM0J1I2E8Z1I0VitMKDQrI3shNwp6aXcyR2VQMDY0SyE5
VGtHTXdlczd1VWdPZSVPPSkwVk03PXlhRG01dWIjen5GQkBSPXRhIWVrdThDWEZAa2wlcjkKejto
NFh5WCFjRihEUkZXYGdNc0A0KilsKDIpOzt6Q1BQU2J6bEF9fHt6RzMhVzZzKV5OaCVQbHQ3PUl9
PWZXbW9MCnowU3N5P1ZPVEtvJHx1fFVecyNKbXVmJXZKRjBSc0tqLU5gUzF2aE15QWp2V3hkODRe
TWNkQEF1LUx7MFNEcTl0Zgp6OXAjdjY9UEB6N0lUfGN6ZXZfezR6IXpTbVRsKmc1ZnZWVyokQ09y
d3R0TCVZZTV6JUEqdm9uMD0lZX00O3oxY3cKej80eER9dFRjKG8pKUtyZ0QzcyYmYEBTdzNvNDBe
QG57PUFobU0hVElgbi13cmo3WnZka0k/ODxOY0B6T1N6eDhsCnomeXU2YF9GOHZpRTBrOVVzQCYx
dj0tN3BoS0paJStIUVZjbDlFVktjIT1MUlJCOzM7Vm5gZThLTURoRGElfVVkdgp6b3pJaE5nZzsl
Rnpqck91M0dCdWlBVEhPdENUOzteRU1UUSFiVz5nck9hQGpsQ2AtYUx8MDZYcm95KkR4U00wdUYK
eisrQGsyWkxQKWhpRzlkWSpVI0IoZFB1N01nQnU+PnAqTEVEeChjYlVgKytCRGs/SE5qayNjYCVG
WVNgbDBgc2hmCnpoKG07KG4jbSFUUHRPNzhqKy1XdClDWUlPJm0tUW5uVFJMezNLKGBkcUp7clRL
SXdQUkElRkYkWTwqR2ZNU010Vwp6TVVpR1JlTWU8dVJpdko/X0F7ZHpgbXNqUXhvd2o8VWRGKWR3
M044aUphPW8wLXNGLXErVWNFMiM8cFJSNzRjPW4KemA8NVR5PVM+ZEYzXllZUVZTVCtgcTw2e2F6
NVpRU2dOQnNVamZvQzNHVjUkMUMyUWRyPEVvVWklJiVidHozR0RXCnpJSyFKKk5UeHZRWWw/VnMq
WmpUUiVXT25Tc1M8fUVLU2p4IzUjM2RyakwhajhAdlZMN0F3TGJQTmh0akotSlVZdwp6ZW9HJnQr
Q21maFFCd0tfakg9Q1lsV1drfEhBcHRYUzV+bn1vU3N9TjJAOTM9JkRVcnhncDloRlMwYzRmVCE7
SEgKeldUP1VZJns4OFZ7LWpPSDhEX1V6d2ZVaCNhOVRwU0x+WjRkRCpgVzlVd2UrNFd6OXErRDcq
JkwzRWxJLVBJI35uCnpuO2IwaE0qOU1CcjRxO21xR2ZPQEU4M2Y+UTh0c1dBRkpvYkYoKnstcmFP
eEokdEZSS3B1WHdjZSVWYiZSRClORgp6cGQ9PyZxcmhZWWZLfEkpbks2Mkd0JC1MPD9DRkEpYis8
cEtIIUxLfmRkVE03SD13O31CWktQfnp2SnR0Mj1TV1QKeiNHO1ZpWDFOdTJkSSF6LTNeITI7enVi
dTxWWXpgPm05PHVAJHs+cTcqUER6JHl0aShMME0wQF9UeiZURmIxQyZwCnp2YlIlQUxKQUhsQmNi
OX1LMmkjQVg1XmBmc3l8TCE4PEE0RilYJiVDIVVlfTctd09WVT8tXmkrdjJyfjF8NitIWAp6VnBw
dFEreHBRYnJsfD1sJW1kI3xlWjlLQkdRM2IoWW8qKzkjQGUkVyQjLTMhTlpPaE1BY3pTK0tkTzBO
KWtycUMKem9afEQjIWFnX0cmWUBVJFAmTFFIWVRORWp0Y2YyIXdNTk5OZ2QqIUZlZGBoQi0lRHwm
QmpfWCZvaXx3OD17NDR5Cnp2XjhCJTdzXkQtZHxsfkBjYigyODl3Yml5akFNQzw3PX1mJj1LMCpI
IzVVaEZzaCloSil0PUBVTjxEcjEkTzQhWgp6Ykg7NGFlR1MtVEtQbm9aSjI0Zys1WnUtUSUxP0lM
Kkc0fjZ3S1dfVzdpQHhJJlcrUW9gK2BlVmk7YU10SD5gb1gKelh+QThMUFRiT3NQNWUjTiN8Tipo
Njg0bm9xamRaODZAS1p1QG9+UmkpQH0xYUIod0BkKGtGQSFuTFJ2KStXJmwhCnp3S2FoQCh7bX5r
akpINngrO0J6M1RFPG8/O2U3eF95JEV8TjZWTEh8Z1dQTyU7VkI0Z2w7RGNkY34rWmtxckg8QAp6
ZWhhOGdOKG84WSRvaFJVfEdRU201YmwzPyMkKSZfZVB9UnYrfnVqPj9CZ2lCUHJuaz9XSjIpXyVa
NHRMS1dgUEUKemNCbzltJEYzIUA+JHw1XyFkRXJ7WXBTQkU5NUtBM0Z+IT5Iam56YTk2PlQ9SmFB
Nl9PMTd5UDBDQyhwaXh6eHl0Cnowcj9OdlJCMSVtPSpFcH11NDsjS0VKfVdIMVlCNEE7MHQqbmN+
Y2F1N05EfEsyfDZ2OHk5SzxFb3pXaEdvVG0wWgp6dz4oOEQ0ZCZTPGIxMGlAenpiNDc1TkJsQThS
I2sydlM8eTJZYTVETihjIS05VCNAdDlUe2ZNVHMkP35pcXJ4eEkKekElIWsyT144JHp4cUNERTk8
b0JPOW9RRkd6YHRlMjJUTXdSSTAoaXNHRjI9REkyc05BaDtWI3ZIZ3JYcUo0JH5PCnphcCo0SEJH
Uzs2RUZvWjB3VmJmI1djOyV9VDQoMGBhaiVNdlVVbTZnaUZ3bU5gSnQ1cTt6I01hNShgblE0OCpC
Swp6TG0/fE9nKkJhc1VRRk5KVT4teFlhX1MpKDdhWEAoZzlAZFFgYmR8U2FeajNTNEl7dSpBNVFC
RF9jQHZxPFQ8X24Kej9Ybmlke0gmdz1OKjZMe2w5UT9LZ19NOHVxe2VDSi1IMmhvJV5YSnVjfXEp
SFktXzdUSitFM0pkLTY0IyFGfUskCnpUNSZoczdPb30hTU8zM3hje0t4a25ONDNhYUs9QFYrK0Ix
WXplemhSRnhrekdERjs2cUtsSTRKNGshRzElaE1XKwp6dVZeQmZwbiFVcUR9JT5eMDhNSkR6QXpe
WDd6ait2eCZBaVNTfUBOJkJ+X2clS0YoZ0B7M1M1O0ktdGp4KSZzZSsKek96YTAlQHI4TE56PXt5
MkxxNTdzJWxCaW80QkhtVzRqdzUoVUFSPyEpKGE0ZDVrbjk2S3UjV34yOVRuNS1iZnFTCnpPQiRz
P1l8RkZVNylCPzthNkQtbmlBSDM/KlE/by1tUFhZVSQzejJ2VWY7SldJP0EqZGBDJjhfU0BSRT9n
OFRvNwp6Vlo1aytYPHxIcFkzU3lETnk1KF5UMGVTeDEqRE52JWhhLVleKFRXOSlKJTR1QW0yez1Z
YDIlNXpFY3F5djAwYCQKemFASzZMdkBNODFheXIoN19GVjNvZn03PF5xPlJCPk5MeDNNb2FDRj9M
fUArISRGJTFLJWVJbUpARFNWMCtOMStwCno2UUB6NHE2Sz1aXmpodyt6VTxVQHV4eGFePlEkITI4
T0BpUkRESyV6USM5KzNtZDl3Nz9iUTM4N30qV1EtZGpLIwp6I0koaVBZMlVqMkdDTXdBMT1iLVpu
UERKKjN4S1JHOWVkWn1UJlMkYlU/LWBWeVd+SXFEdT9MQT5aaFZKST4lSyYKekBRKlVgTiF9TlFJ
aUpga1BsRHVZIVhoIz1MJVJEV1FuckdqM0MtK2tJViM+MHJfY1VPJkliN3prQDBtPS1RU1ZMCnpC
NzA+VmkoV0k2QD1xTFVwQ1dBejFXR2g9dGFkKiF2fXBZNSZzdytMSTVhZGRjXm44V0huMUFFI2tA
QXNvUzBydAp6NnVObSZBSGdMUmd8bDhEK1doWkx7TVV+RGNPT14tMmIyIVBfSD42VHEhbH5Odlch
Tmw5d0ZDQFhjaDN3PVl1LW4Kel9xWWE9PHJjMExqam9zTk9VNEg/JmUrZXBCSWc+P3RAQExRWlVO
ZEF2aFUmPkZWJSsjR145dT1admsjfF9CWG1ZCnooaTVfME9DOHM8RU11VTFSeF5adys7PU1FKkRj
XmwpXj05N0VFTkNYbDtHaFg7anVxQ1ZgI148WnBIamdvZXFYTgp6Zjc7YkVJMHt2aGNNSUBLUW9k
c3AoTkhESm5Jb2tIb3gyWSh3SCslfTI4WmMtSVlXJihqQn5rXyF+NHJrbV95UEYKektNO0hobEI4
cT1RZHpoUl9xT0JGNm9+JCMxcGpBYWwkYSlCSTN2YztJNERHKXtJR1hRKyExOT1BX0J8MjZMKnc9
ClBHS20jX3t7UWxEWmZFfXMmYHRPawoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5wbmcgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy90aHVuZGVy
YmlyZC1sb2dvLTY0eDY0LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjMyNmY1NTEwYTBkMmY4OTYwMWM2MjQ1
OTAzMmJlOWQ2NDU4NWRhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2Mzg0Mwp6Y21hJWlXbTZu
WCk5JksjNHZWe01rbC00ZTBLd2ZNeEkycSRhQ1p4bTsxVkYlQkVleT8xYjI1XlV+JTYyc3ErV1UK
enI8b2UqeH44a0F1ZGVCeXhYPGRKdStZaVQwUlJBJmxBQGR6MDA4JTI3WT19bXs5an0yUUVkd1ZK
aENhdE5xX05NCnpJU1dROUZ0TiNmXks+YVQ8endzLSFrPz43V2dDSklYTCZHI3FpRjE0Xk5Ddmoj
aT52MT9PYW1kUVBVT1FOZlRlegp6OGo3bn10KXpJRiVQPTM8I295bFUzMyg2UnllI21YPyNWXiNO
V2lxfGVRfiljRypXLXZJMUp1K2E+eE91VFh9Ul8KeiMwYnUhQFE1JnQ/QiNVdXE1PUxsNmdJKkRQ
KSE9VU15NSYhe0JNVEJQWmhwekY5K3psXzVaVj1wO1l0NlNNcXhCCnp3bilBR3lsfldKa3VMV157
VSRZXkQoN2Y3NTdAQiZwTnhodSY2fHopNCpXX1ZxTW8zdHdXYjFXendVT3JGSGVQZwp6NFYjakR2
bS0oeHJkP0x9ME1tLXtDKXhMUHorbT8qJnR5TDRlNTZ3UXhCITQoNDFrR01QYExLPVlSQnxNJH5A
dS0KemBWVT09bFlsOSMySEV+I3M/JWtvJihmNn44OGFEMmZlRVhwMmtGVUUxRU44ZVpeLWx7JXNn
XnhefW9nVGxXI3xeCnp6Mi1UP2JxcjlORFVCVHNeM0JzSXN6bXg4TSsmfVlrZjA9anJgN31XJGI9
dmgrP0VheGFtZEw8aXxUeExjNFYqUwp6ayVVcmo9e3pXZXhfUGklUVM0cDd2aElDZUAkeSNWd247
cnthV014bTZwZDteMEBrKGFIVFdRSzhvMk9NWCYqdXkKekF+YDIrQXkqVXhLaWVCPEpFenloXnJa
aEU0JWgjMUFTVjhNX3FyNnJobUkoblBMcCZfOCpVMGpKdm1BPHo2PlRpCnpPTVFuNEw2MSpJRHFp
cDItND08S2xpSHZ5RnxjKVYkKHd3b2t7bHFufE5yKVhvQTM0NUJ3eyMlOVlocmdmRWl6Qwp6d2wm
KFklSEZwfUBGO3RJKE5ZfUFUfUFtTmRgTyV9OSY5UkdURXpIZzkhcm4xc05jVnFPKj95WncrJUFA
eCg5WUEKempWezI7SmMmaj9xdkZVN28pMyFPeFZMMVJnfkUlVHNZVnB2dD9Vcml0KWljN088PGM/
OF9qOGZTbkZiPD9wSE1VCnpNI2E0PmM+WHUzYVQ0dWcqRERuMWZHaE1Rczd2cV8qRSZ5d1I+bWU0
ZkpxRWE1PGVLdll3YTB2X059Z1hwJFFzZQp6PCFtKn17Qz1xWDVhZGV7OVgob0VONG94VWJWcWpm
KWJSaEwwUkpaP3ZIZmtlXkhBd3dhbHFyQUVVUUpNYCY5eW0KekZPRFBXRWtJbWgpJEc5Xko2fT80
S2A7dysoSnNqXlImPVUxQTVuVWomKGpVdnJ0bXJnTUBaYXNePTFZQzdgZV5lCnoxYUQxfjF7ZXQx
KjwjVl8pZzl1RiZSIXE9UVNjQmswVnV5Z250cWhnK21WdlozKygpXlJjTSVjJl44TWhRUTI3Qgp6
XlljenAwejZQOEMtZ29te3UoSjRtcDJUTlopKHd5ZS1naVd4KVB0WkZvenc7OGlANl9gY1dfa29r
QDt8WGEzVTIKenJKN2N7ZFlGTTdGPTA5Zi0hZENHeSRqekFhMVJLPih0U2YzZUw+b0dVdGhzSz5W
PEMkeHp0WiU7SzxVKVkkKyV3CnpFI1R7bm5rUThsQipAPTY9Uj5FOTZ0bW8lIU9YRisrfTUlOVYx
VU5rZmkqK09gQlBFLT5CfnBlOy1PPHYmUmYmcwp6QkwxaGI/JkhiKjJpTmorTkszYHQ9QkRJdk1p
NWMqe3tTYVZ4Unt3JEl0KiozV2g8PFg5VT1wJDN9PDQ+VlY2PVAKelBqKUgmeU5PS3JOS0ozKXVI
N3smMW4ze35YVEhXaG00Z1BreWo9QlJVZjl6YHlLZnVlanhKcFRkWG11MVBzeSE5CnpraF5hPy16
S0pgZys5bGQlbH17O1JyYlJnM34qK1ZVY2B1OCE0MTxKbjh3a1VhbiVSJipJZ1BHdVkhM0EpMDtN
QAp6NE9hUFVyO21EZyNNfGF3K3ZvNHdQNyFmdUNTfUowQ0hNP1JjPjRkbCU1VHhUbWx1OUpFTkJC
a2BTKyhCdVdqb1oKeklJZzN+Xj1lYlhlJCVfN0hjN15ye1JeOSZBbi1rZ1p9QWFZKjRnJClmV31P
NlE1QU5YfEdLTWE3JD57TCE+YE1RCnowPjJZaCpKLTRtVDxjZGRoYnV7OClAb2RgQGE7QWZeKUR8
S0VjcSszVVRoSkBnNnVMWEt4JGljd0FRK0Bna1JuRAp6NmtLcFokIzhLcHtTZVRJVGNpWElGZEJv
d3NqdFpaQG1hTEFVWUAjVk1XdW15UjwpTWQrRFlsPCplYm9gS1U0bW4KelFXSS1IWlFLNU55TjtS
ZG5fZE9NZTN3ZU5Wemt0QkNnbj57eURfUHhFezU2dChGeUJkJD16YTVpfH1WbkA3VEMtCnpBeVRQ
TGh+UkRnWUhZaVN1Z2w+V053STtoQ1A2SjN4IVVnVUxYKUdUSU9QaXxTaH1lRCQoKFhRQEglNWBs
JEcpYAp6Y34mTGxudCQpSXBrbWZKWSs5dGpCeVdTKmpSSjdnez00OCMpUkNnP15RcGdAWW5URlcq
WFNoKkZ8LU5MPWY3fFIKengtMzJYYmFYQXleQy05VG1PUjR6V1pHTndwVVp5MTh2WHpkZGc4KnJ1
aEV9Ukw8NHYmOF8ycjZKfVRVdkZHVU1iCnpkOTI1JWtaPXBiey16KDgxJnkhMm1+YjkzbWMqS0dm
K1J2NiEyenU1VTF2YVJlQVpVNEI9Zy1ZQUdzWmVoZ1ZiVQp6YmRnKWg0bWBiKFcwVUg8NCtLQl9u
cXotYipVVU9eZCMlMTJJfmMyOHBLb0BCNE9ZSTI5UXEjY3U1dXpIJkorN2wKelMpcWc4I1AyQm0q
SHghfGJFNFpNOSFFIWZSZDBLT2RsSG9aZXpfd3RBbjRoWTBMO34wRF5OfTQzSkV8K15QdXR+Cnor
fkxBfnpYb01rNUFEcnwqUXhvYSN2aVExbGA4YE4tcXMhVF98TEF5UW4mN2ZEU05oUXt+cEV0QWdi
a2ghJD4wMQp6T0RzeHVEI0VXdzAzPktQYVFOQEx4eEtqdCNXK2YqYHcte2xDJVA+QnUhKW0jZWBk
b1RER0soeTN3d2B0NSVheU0KemtLQnt+KE9acGhqO2soJERUXj11Ql5GWT1hdHxnbGtjaFgxSEZ6
XmpfJiQ5YUptaEB6JUUkRXd0S3Q+MFM9aUdaCnomd25JZjFFbFY8bl9wRzNVbGlkRFFNbj5RdCVq
JThuMkRMYXo7aytsTD98WlRfdjt5SV88VVNHdlRuJU0mOT1ObAp6Znlre2xBQWpISHpsdyVtQD9N
MF8xbXdCVHlTaGU3Plc3UD8xVTgrVGdDN1Y0KVclfG51U3pgIU8oJVp9eTdnbVMKekR0SE4oOXJj
PGpLNnwld048e05kQyY4MHF0QXNNSFM7QG0wdDRsZGJNJF9MdVA3aHM9Rn40Z0dmTXlSfUtGPWdz
CnpBbTZ+d2Q5SSlqPkJTcU92I19eY0FPOG9JeXR2blFMTSQoUk4qVVN9Kj9hVmhkdkM7M0c3dnB4
KE4mP09tVClXKgp6aHYqK3whRnw/I3dZVzIhN2tuNUhPJWxgKVh2Z2dId3V0Y1g3aTFieVZPS2tG
WiRpMVdFJiQrRz18eUojREoxfDkKej1MUWFjRn5kSzY4TFdzK3tGOCtESD03KTNDWllQSkxsWnoh
ezwoekxocC1QQXZFWFJzQEZLSkZ6OEVnWUVXUm18Cnp5XnFzYFJiMSNyX2VTKFRHT3hVVGx5cDky
bHk+IzllQmw1ensoTyRhQjJ9KTJgUnEyaU57MEZjMFpRa1AzaiZ3Rgp6OGhlfUAjNzJmTWQwR1Br
MVd+NFRAc0p6ZTk2QH58bSZUIzZrb3x9eT0+YyVEI0crVzllVGJ+REpkd1RSYnQkVHQKejM4bkMx
RmJRNHkqc0x0fj9OJFBEajE0JD5fbmJPblRvZzBaPzZDSGQrelBhfnAjVUxgeEhsU2pQT31HNyhn
bnhTCnomYE1kRHA+OHBJSE1TMkl5fW5xI157YkhuJDNUNEZLcTItYzs5UT9tdUkjTjxZXml5VjVK
eXVTc148K2V4MS07agp6YHU8T1IjKmZQclpzWXo1P2peeWJgTXpIOVpjd05EP0M3aDNoOVledFh7
dy1XOUhDTzd1YT5Za3NeM04mZyFsS30KekR4ZCNBc3QlMW1NeDZZXyYmWkRYRU1wND8rTUs9TG00
bX1YIT1zVyFIJj9WUkw4bTIwWTZZRkteIWNAZF5gV1o9CnpjeFFHLTQ8bEJuX3hBLW5Xa2RNcGEy
T21rREokcXVtKmh7K1Q0I15iOGlKb2lBcGVDTUA0Rjh0MWNCNGp3enFkZgp6a1kxVC1GcSYmJGEq
fXhBIShqSTFrTzt9dFBALT1UdXM7b2UtSHZJQWYhMDIwaFc3WiM8S341JDlRXjhIOUMjfHEKej52
XnVVKVlLKTU3QXVFU09LM0A3dGU/QCtUOT5UfiN+b1ojYCZUMTUpUUtuaSp8N3w7YCshYCkoUWox
Xz12PSpNCnpaeGhXTFVmX3RTezs+K009dT1UMHhyRU5OQVhBSEBwdGluKjtEbWMmPD9ONjAtIXd5
dGw/M18pZ0c7MHMoa0peJQp6cHNLQGppcDxTQiF1IT5WVCFwKUA+b3M9WUshMCZVLTBATHx8RUcy
az5IT2pQTHpBTmBfPVkqR0ltS1N6PSF5dH4KejJnKHVKZCYrRDl4PHhye2RmbW8pKmEkOGpJdVVB
KzRxVX1HNjwmJV8pa1NlJiZqYj9RP3B8TD9lcShiYilDMFlqCnpGYTIpKzZzZDB5JmIxPko8Yj0m
fC1sQkF+Rmp9QlIyaHBqJWdhfVReezVVKitCVDBsT2JpQ20kMTdQIWZxZWdQVwp6PXllRSYzezNB
MGY1TlFKbUBMN0V1bDloaTIyaUBqQ2dtZVo7QC1+cTNaVUBFJDMlZz91OUVMe2k4JjRUJU5DVH4K
ej0xSjR3UDB7ZT8kcHJ+VkVxI1ZSd3RzQGApciVMeXoxaHV1KzlMbiZOUDA9Km9mPzhPbFZEeSFW
QXRgJERXbzM+CnoxUns9d2k9Qz44cSp7bSskaDAkI1QjMT84KDBzV2AyTUBvPFMzSW5VN2s/VlF2
Szs5KmprSUVRS2pFI3AzK09xagp6Z2kqY1VVdGFZWmFtVi1gME9iYUY4REZCc20kNSFrV1p+KX5E
bjBaNyhaOW9sJiQxXnZwJTB2dy1TcHBHVmhXRVIKejVIUGJUaUBodTBEU1gpNnIxQHI+TUJvaEk9
dHJnNSZnJnlMRkJqIXoqcEQ7fkBafGpFNl9mSWx2d3dqdFJVZUpmCnowJl8tNkxqNVA3JHhSNHRh
VkNMWUxiJmVWcWhfTEV7WSpxPSR4ZHVCaVhkUnpIVW5TTkJ2Iz82T05VazI7Y1Nofgp6ZT9oMVVG
bXFsS01FN0dTLXl5bihuTHh2MDx0NTwxMEpjRlBeejY+KjwwOyEhbFhmdU55ZF8tN1QhMGJ2UXEo
aXAKem1zLUxERChkI2d5cVZ9Nl87RSYqRm5qRTRLMmB5QkJsTH11Uk0/SHdfNGhIbDlHeWUldiZj
an5XVGc8UD1tKVB4CnokUSNGP2pNQjs0Xi1Te3FHSXU7WVZmMEI3MGd7XzJvWEwrcUUxTzROO1lR
cTs3bTE5X01APkVMYDFsKGRXdEVfXgp6TkFIQlQpJGskXilxN3EoMW9ZPyZKUG9JY3FeKU10RH1p
U304ejBHTUl3QDheLUNAezJXJmFrfEpOY3xDS1kjVGsKeksxRWYwJFVuVWl2YGk3QW5mVmBLckUy
bj83QkFSV3h7RlItd1RSUlZPJipOKVBIeUc3bnVZeXlISGNuUClhdGNjCnpUQTZOfUgpdF92PnI3
XzNwbXEmTE1HP0JfXlFDJmg/RG9EQlVpKjBUKnxiVSN3RSFuMik3YyokWmwhezJyOHI3Xwp6aUBD
b0YjZFE7e2VnNzd8KUpyQyl7c0FQaHo4RFdiPmclTl5KZEZldCU9QVYwMWZmS2RsMGEwJTUjJCNw
aV83My0Kem4/VDZYR0t0VW9pS35veUM2R3ttcyEtfkt2S0g9NCt7P0BAO0ohRHVYfUZ5JSEyV1Zm
Z3IlXzxTJnZ+U3tXVkxlCnprRyMwcDtOWT05U2NOWlpSRzZtUlYzUVklaF5xdTxiPSM1SXhaUTxf
Pl5lR2twYWRZYnYlZUZuYkkzNyNEPlVXewp6aEt0en4qZDcjTmgpcFhGeEpFYVlCQH55PFF4R3Nx
KXJLZk57eU91ZmJ+ck4mZDRyS2sxZHo2aS1PQXM3dnpCWXoKejU9SipzbXNOMlNOSH1RT25sfm08
TlMqcjQobmE5dU9TRXhSS2FkYTQpNXpMbzEzU2JWRFI3R3FAKyF5MDEkdmVXCnp2JktycmB7WWZY
QWdZPztKcSl3anUrWk9eOWQpR29CNzdfREYrbEMxYGYlPX57UmlLZGFqU21RelorTSh6dy04Rgp6
aDI3JF8rNklCeDNgWiQhJiYrWFEhIWl6dEpRKC1GIUVIJVZgSFYkaXdzIWw9SGB1ZjZhR2hQODM5
aUtjMylsT3cKelchWnlkISV5ciY2TjhJU3BqQkt8JkVXNk8rNzdlQiNqbFNhYXNxZH17PX0qMDlx
MjFiTWdne0hTMz8kZVFCc21kCno4YylqcFMhVDFiPHRHeT1AXygtVVd0eG9JbmB8ZUxGfCYrZyFw
K2h8TiQ8JlJ3djt9LT1JTUMlcEMxUkJOekdtdwp6WWxkUT9OZ3otflhhemc3ZXl2ZkMren0xTk81
X3k/bjU3T247UF9yYVRmRn1laU50YyE7VV9Fd0BUUFFASl9JcXwKemlvUzd6JDN9Kit6cFNIKy1y
UmVnMkpuc1lua1VnZXQzUll7UFM1cSZ4SGFpZCshXiY9VWtJdGpSNDQlJjZeMmUrCnpfMnozSTxC
RztpaFh8YlJ5VUIwY0Z3SS1KV2VCcj5KN0hoPGxXekUmbFJhJGRaTnstVVdIbEtFPUd0eiZgUmM8
dAp6Wl8yTEJGJENsKiolOSpTckB8OXxFTHdBN2VoeU9aUWdTTG5OK3hocyV8OXNUcTI4UHVSbzV2
bEhTJmpYeCQkX2gKej5uMERKTiVGI05EV0FDT29RWDdlVzYwNHxEbnVoQHl5OXM4bCRFKCMyQno5
YXg7WGxyJTZ5YXRjJmdlSnlfeTsqCnowbTRFQD0ycUFTYGV7LWEyeDZtRlFYd3o0YD1CPXlxRmpt
PihmUlF4aTFtXjBGfjwmPyZRbVN4bk9FcWJHQWBUUwp6aGRsVkw9RmZuQTgjdjVWKXskcGhmLXdE
SStOVyhEQms9WGJWKHw0VzE3TjBGQTl8a2V1JmBNKyYlajJYQ308fioKemgxcTxVQDlSdFY+QXFK
MXh1LX1xMGVhNXZgeVlwcDIrfUNvTzFub1Mhdm94TzswYER3cUJpWHFVQTJ2S2xwb05LCnpBS1h1
Xz9zeXs/cENHKWc7NFItRmZsWmNwXmQoSDBUb04qZkRnKjZMIy1Hems7PmNsXlRfSH1OaVpCMzk2
ZWlrLQp6NmVaMyk+Ryp7JV5MX35mJnxXSnZCelVVMyh3VUlBLWVTT0BoTGlHdHR9ZlYqPEVjUnY1
JX52WDE5Z3RmPGMkaGkKejlpTm8lJVdEQHZXVUo5MnJ2YnQ9M0QqMkoleS1mdXdzSX5DXzgrb2kz
SjdgUTlIQWZ3akJDNkBpMUwhVT49alRqCnpAISElKU5JVll+WFJPUVA2aFhlIT1ieVoybkM/THkw
IWF4Q0FfJDlYRlkxMzMoJCN9RExsZllaQ2o3fUJqUkVhNQp6RGgwcXd0RDJrN20jMXY9a1V9MyhV
OSRTIW9fNXdpM3daVDZVIz05bHJCRi00dU9SdHcoPl5aMypqUjhfaD8oP0MKelRNPVRoTDJCMWB8
NV4rMUM5K2BoVD1oO1hibV9rOSEpZUFtbXVwd1BaZFNQXnlhQEI7QXMlPHtRPUp2fG04JihxCnpU
ZkxSVDQ3WHdMWiExSyF4cX4zRiR5KVRKclgleW1jVk83bWN0eFZITUwhYCF4YEB9anhhJXBFe0pV
SERSQ0NWcwp6PCFgcVVwJDB6X1VGdSQxeFJSR01ZSnIocj02KWdXOEdZMmJrR159ditjPkZOdi1+
MzBvZW01K0tsSVQ+WT57bjMKempOa3VGQFlvbTwmOFpUN243VXBRQnt6K2ZQNSl+ISYmVk9qdnFW
eTBDTXdVKikkclBzPjNneUFCMVNQZnwwWUpXCnpIe25rZEpaPD0rdEZlenxId1ZLT2okKU1MYWdR
S2FLZlFWRHBJKXtpT0xCNTxtXjVrbzs1QWZ4TTl3dGxPcFhEfgp6REJrQkBBMGpxa0BDbnw1Z252
MlEkdSRiOHNLSjBDUGVDbCNJfU5sJUp3VSM+K1oza1ZRZzU/eSpkSUQlXipIY3gKeih5M05UJE57
UThjTXVfV3pJPUtLNGJhQFAkfmNGTGMmYDZKISNIVVNhRUooRWZ2QiN5NyVqNWdRJlNRdU5SOFlO
Cnp0LXMkRkVmJUk8Vlc5eF80X34mZDFTVWNUekdfJUtYUCRqWkpVYktkYlF+cVZScEN3Z0g/TGVJ
RX0oKitpVXtmUwp6TCpqYnMlVEtYUTJhSWFfPWNEQ3QzMnMlc3g1WkckbEt9fXB6SyV+ajw2Ul5i
dVRoJHoxXmNDa282UlhZc2U5TWcKenVuTjlkZzZpQzE7Ymw7cGkxfSs8KipEbiRNbXA0Sl9pd1pr
bTlsQ0BzKkhifSpxUSpSWTVuJWtkO2MxTGJyZCReCnpvT1dKPzJwaCF5NjBSfW5lSHJzZzVAX1pf
NWw5Zk1LOVlHdTYkbklrXmsrVXBheSpQTHJjO0E4eVJzekZKNm04egp6NjZwNFg5anNCPEdNO0BZ
a1BkQ35HT1pJOUk9OFlXcGk/dnFuQFQwUV9iTStgI28mYEh5OG43MHpZNHg5VDIjdn0KejZUJD4h
bV9DI3YmbURvN08zZjAwYzhmZktsdCNRS2plT0l2JlFBUF9OMFJ+V1R4V3J9Q0VNNGxZXzgka1dv
XmFoCnohIU9+PDJtbHxmMVBhVypobil0Ymp3RH50O1FAb3xOajAlKWhxVlIxYXFXalV0RWBvO1pG
Ui0tblFnRm5QUj1gagp6JX07Rm5gR1NwLVJHJFcoQ0pQVkVvTTBefXkhTCteN25sS3w2U0BBQUpZ
bnYmMDErNzVRIXZYT15IaT12ezhFfWMKekNHZFZMNXx6XmlBX0ZYUUcqKXRvVkN8d0BnIXZLV247
Jml7M2ZOVDBiPElhWCRLKFdBYm9IWCQ0KVN0JENibF59Cno+ajlmRlNyQVJRQFgkXkFreEQrbypY
cDBCVj1YNTdgI0cjcy1rNU9VPFRscVdTVFlyelV9fW5ePmAyR2BvaDUhWgp6RXVpR0FQT15MTT9e
S3Q7bUFGXzlDeEEhayFNfCpoQG5qbWZfTkJteEc+cXc9QmwxOGB4cWsycGFMbztCcWQzZjsKejFs
eGNFYk8+fWEtcD1XYTVTd048RjZTK19aTFlWMUkwVmZKWFdqLUJEMTZFX0hqPVg2dXYyVT9KU3U2
PkxKfmA5Cno2e0xRTlc9Zj89eikwRUR7M2VedDJLVG9jKnpnK3BGPFY5dmlpT05vdihKcW1XVXdT
SWEyPjlQU01WUHRuMEZlbAp6elVET18/c3RDbS12b2UxOXVlMTs2YFApQXo8Pnc8c0U3dkZ6QUJK
NUducT49QH5ePitwZ3M+cFdyb0d1SEAxd2QKemhxfnhmPHIxUmphQUIwa3BvO3N4c3Z2eElGdVd0
IXZSUFAzOSNeK2RCNVpSRk8hN01Ee3VpJnNKT3ZHQE5BTFYpCnpBdXVGaUB4ampvTEYhbzQ2LUt8
P2xPWFVLc0RDOHUjWG87N3B1I0V1JHpeXyRiUGY8OUMhaEZwSlZNWXZTa2R0UAp6KlV+LXBJbU05
cTIoSFdQcks5XjM1O0toZ2ZkTWQzdSYmKStsQjBpR0FITFl6V31lN3okMyRKUU4wSSg7LWhJbUkK
ekpjSzBUdnF8dnIyZk1BPU99SyZEJjxfXkR3O19yM3c4fiNYZUEhcUI4V1FvNDhyOGxQQFppSHMm
JjhoWSt0R2ZnCnopJGJOeDN4fWpmQSFXc3xEVFo2Mz5tRFNaLSYoMWVueDM9XntRZX40Nj05TGRP
ViZ5VWE3eVEmKHVKPUEjeXFPXwp6YzFMX0VJYCRoWmNOamFYcTJtdXImT31PWUEyZilXcSpfdWt6
KD1vXlZfKyNwYTI/dGVyamchK21pOTJtYXxVKlAKenAyYERydXc8c2MxUj98RCs+WTNJPE5FMjhP
WGstfWg5RDhhdkJOXytHe3JJWVg1TjE/PzJGc2FVTjFJLXl+Xz9DCnotKSp7Rzs3VkBpaVZNYFdl
azt1ZUF6KnAwSVdXZ3VuSE5NQnNFYnR7aThEWHs3MFQjbUtyY3xvd1A2Z0RCdllGNgp6I0JiVldR
NVVnLT5qbDkrbUNSYzJwOSM1ZDg0d2duaGYrUX07Rm5wZTZBY05zWnRncXI1Mk85SUZ8aU9Hb0kr
bFUKejY3dTwyRkk/Ki1MVl9jJXpaOUcjc1Y8QWc4KWBUb0FxPTspQU9+Y3tkbUNed3Z2PiNIYDcp
eHgxd0pgVGNARkN6CnpjWU99bXZEQ1RwN3RpeT9RWjJwYW41aX1CJHZSd2JnT0xkYzNsJGY3O0Zt
I0olJitgRHUoI21jdG4zUUkxbUpYRwp6QUNXajMmejI5Wj5YfnE+Y2pYeDd7K3haXkl9aGE0P1oq
K00tJjtDXiZTYkVyRCV2KUFue25zRDQ9TyghOWFgJXYKeiR6a0hnR3FUfEIhN0xkYiZKPUgtWilP
cTRGMWBvPFUzODwlYyEjYGgyM34kMzVaYD1uLX1PY1ZSOXRyTU1oTEs5CnpUSVdwKk4+dSZ5a1Qr
YVNtQnluWCMjQ2RSUDttaVE5X31yVitReU9YTUx4O09mWTg+d1BXSz1CbjdPMzxnYnhWSQp6TXNH
XzxZQXRxZVV0Myk7ZFI1R152T2chIUdxeUsyNCp4PXAhSj9gVTNRNzhzQD9+JWtvMHB3P3FjeVRC
alJsbD0KenpfPX5jIzd7UDImeE1qKVBoQD8mVHE/S1dxbWNFPUMkSF5eP2l5Qih2biU/RE4lRCUq
aD4jZEV2RVMxbDhoXmFuCnpHQTV2ekB2fXlYQ1VkZyV4OHEtVU9rdFh6cm8+U3NZSmA2MGolK0g4
VXpIRkI1R1MzY0o+JDdBQmdnPVl2Xj9qQgp6YkN3R1M5SFpUNE50b1h8Y3crMDlkQysrQz4wWEtv
KWg4bnc1fVo5cWlCcCFKX1lWPHN3R2FtNXRQViZvNlQ7I1cKelFrNytUP195bEtaVSo5dFZESV9Z
b2R9XzY2UEZMVW1BZTZxRkNzRj5lM0xuYlZXeFFrOyp8N1BFeEw0MVBDcDVTCnpFWn41TEk4VSpp
eTJ6PCZtM1drfnF0RmMyaWllP3lWKEluMiVDbmVhVXJ3c1NXPnZFeSZHZncxPUU2dEhVJTQwZgp6
QmBAaDQyZldXSnd7Rz9DREBSJV5uQDZYYjVtb0hEbjIlRG5eemd4SV5QO1F4WHB6U3EweVVWd09O
amZ9a2pJdCgKejcwcCMha0ZiJG43TFgwWVplQHE9TWFJcDI9fDZDKWpiYE04TU5YdElrSiQjRVdo
UElAWndBdHdsPzJpeGFZNTx7CnpBPDRZSHk0fGlESUVUbXJfejdLR1lNd3xlUGNpdHlzKElieiV5
aWhRJGZUaz5KNnxZUXsxRjxWXyoqNkRBYyg1JQp6Un0reVdwR2NrQXRqcSN5UVRFM1VHN2JASERJ
MkdzeVc1dzFUUmFHNHIwUWp6WTw7PEBgUGxEUUNxaW5zRllrXmMKenJebz1BX3NmeHhzYXR9NUFx
fWtvKk9HZHNOUWIrOWR+XnkqKXNoPExOUChXNHctJGIkRWkwQFljX2RCY3Ixek0+CnpQZHJPeCNP
QVM+XjZ2azw/WTMqJE8lbmErX1cjX19CZUdkRUpJdjFreyQlOFVYUTFKalYhcTRIcmhVbDwocDRR
LQp6IXwoKGIrJG5Ma0RmQ1ljbUVLa0hRJVF2X2xnUCl2SCU/YExqM2ZYeCFfVmNPUVJiOCVwITsx
Pk5EX2pEXj5rQ3oKejRCS3s2cSM3XzEoTU5yQVZWZi1IJVdYfD5Adn1ZM0l9cndMWmJCTWVzYTAm
bHclXm1yZkUjXl9QREY+alI3R0BJCnpkZSljI2xDeVRqcipwXiU4TFB6MlJ2TUh6Wm4wPHpeVWRa
YE58bjZBPVRAT0VvT1lyfjQrdGhqU2JCSj5IQ3pjQAp6UFIjVlBSR35sflAhalBPaUVRZWZIY3l7
QXR9ajZIPUVBVUQ5T1h3YVJNU0RELW49aUQ/MG5qYiVaZFdxYzU/d3IKelpWKTdrUXp1OVI2PkFw
Vm9YblVARXRzZGlKQEw2YF4qNmB4RTQ0eFM9TDhkP2lsO3Q4bz5YUWQmcz9hYXltO3U7CnpyTVRX
S243MlMxUCkqfjlCcHAmcHJPPitmSCN1XjgySjZtJEZtNXx9TTdhKFJgQ29UUFBCaEB5PT04OXx2
UjV0VAp6TiVHPThNdioqKUpTcWpsT242NktlTn5xJUI2eTVjSHBpPmY7ayUhUngkRD02RTNyKn13
S3FteD1BKn59Wk4xdGsKeiprQlUzazU1bUk1TG47dT8yXkJ2eCQ9elNUTFJCMk0zQm1kSGZoOHI4
Un19X1cmcTRoOyh0KGV0ZnUpcVJnJkctCnoteFB3M0hvdmJiVXxkb3JIOS1GWGIlSkVVaW52SzYp
M0NONFdqPEo5TD52KSpeJldOKmhFYHYoYyNjU2lmX01Ydwp6eDBQRCM0VTk1UU09MjV1WFI7KkhU
REdedG90c2AtUT5eZSU3dmFPey1CZFlIQDZYNz93fWYrNzY4cCk+S1hodnoKenhDI2JlZW41YjRA
Q1cyUCFOQTZ7PkdxO19wMWkqbmtBSjdSWSF4YEA7RXhELXR8Y2VeRUJqaEtNI35GX05OZ2Y9Cnp4
NG9meGB3T2RJKFo7e2ZST2cwNSReM2RwVlhmeilnezZWNUF9KEooeklULWBQWVAxQEIqSV47WXFX
TDZqdCkhQQp6T21eKUU0VG9jcDlWbFdyUFkwP2lRSHhGeVEoKytxdlFoezlvPSRLRzFCN0tXbUEx
JC1KZk5UZm9MMDw2PDw+JF8KeldvMnlJNHlLZEVhOVBZa0BzRDxETVd+ITQ4ZmlRI0Radkt9YEIo
UGlYczFkYWlvOFB2dHZzMDN0YDhIZmI9fXAlCnpnMGU1dnJwKztCJWEhbn5mODVBUXcybXxkQWI8
T2EtJU82eV5CNmhRcCZlbitOUzR5VWNBZXs3eFlYVGMxYyZWJAp6TnNzcl5HaSNyQlE0MFNoYElE
eldBY1U+c1h7JD47THNkJU1Hfm84d19XSEB3T0RaZ3NOblM9MW9gYml6N1codE0KejxKY1ZudTxV
am93bFljPkgqPzMqZktIMTZlUz9UZnhHbD5+NDZCZWVIfj99MjJWRWY9bTNNYlFOODltZncjLSNV
CnpOVTtIQElAQDVgXlQ2ekpUJHEkd1ZXSUUkZTwrO194Um1qNjN4X2V2cXRtcUhOIXUmUTFxcWsw
NC1yUntOd2pNQwp6Z01iLWdCe25QPCFAN248bkg3Kn4hRH4qbGt0bjV9MTh0azVtOT8zfHYqbGN5
YT84JCFUZkZzX0BTXkBoJjVMeWwKemE+UTJUdWg3TVd0U3t0VVckc0dlQUJKemFfeE4jQ2g3QDNp
Vzh6Vj08bmV+czl+P01gX2tTO1o0MjgmVEdablYoCnpEcD1+QUorJUIxNkNMZGNqWlYockpWYkd3
PSF1UHUjSHAobEM4R0xyJGRYWkw+VSpwM018eDU1JSN3VjBaPVBhJgp6RDV4PCVNN1lvTDtGTStV
MTlEcjdgK1BsQCk1QH1aPXZKbmVKO2NfeXQ9amE0IVl8MmZoJnUzMktCWko5NEleJXQKeko2QXxQ
WTFafUphVG52PCZvOzExU217eXB7X1UoOXt4WkVHaW43Z2A9WUd4PWhsKXtOclpUYUx1VExVWkgx
S1VWCnpWb3xtQVRsYlJSNm5yMEFAJGNzc0xeTSNPM2t5ay1ufD9CNztDeGt2UWdnS092NXc2MiVJ
dn0kVEd7aVVieFJfKQp6VHRBVyZSZGV4Jm52RyY9QVJafkB4MUJ9TTNuQzxOTD5Vd0peSHBMcHA3
Pj1mNlF5MFR3IWh3JjcmQkNPO28oKSsKejlRNVJ9QDA8I3E8JSp5OXtyaTAjZ1FoQVRrRHFAQE9J
QnRnJWJTeX5Kc3N4PUNDZiN3PGFiVjcyJSpFSyhoQ2NOCnoofTI1V0h5MExtMlRnKWpTJChYdHJZ
YzdzU3BhQXg+YF49a2BBKjtlV2x8PE83TzUzSz1qSldmOyE5U3tjazY3fgp6RDExQ1gwbHJERG0r
bX5hUUsrOThyJUN6SU5waWVaNT5sI2NhRGtmQGpMPSV6OGFicl9Cfjx1R3phPUo0K0FYI3oKeiFN
QGBvdCtzJmhHYTA7PngoZG1IPCN7fD1qYH0yey01cGhtM0B6V2d3VFYzVFchP3AkSXJvQz0qRmtN
V0xgKnQoCnohIXRSPStPPz00WlR5RClFJGYtPiMpfjQ4XzNIMShneHBYJT1SQzhzX3ZJTVZlfEhF
Q04meC1HV04/PjJycl5jbAp6N3dyWGYtaGhMRzVjT0NDZmhxLT97TnRaQiohK05uYFpjfSlZbm18
OVd6UFU2YzU8X01vb3MzJDA3TDlTZ1lnRmYKei07SDxIeWdMYTQ+aj5fN1QhKztRZVB5KCg0aSVn
SXR7YjUyR3Z9cE8wbD5ifGl0eEpzZCRVYz9WQGdJa3ZzdVpiCnorVFIlWDk4Kz93RiRuPkBeeEtQ
O0t8RldHOWE1JD1BJGszRCZqQnBhT1l7bHo1JXMrZmJ6ZnxXMXU4Y1I9PS0rJQp6Mmk+Q2Zvd25Q
eGVhTTZaOz5MeDFsWjAzQyZeNXF6KHpkcD12djdPLXAlJVdFT0A9fCYoMiUqM0d4T0dHZ3NWSTIK
emBPcUlDMihtTkVPUFY4QSVFPEtqY0pjandnZkAjQVY1fFB4dWU9RVVhNWBffDd9c1VMZjlkfmYp
cUZ3U01+dVp4CnpHRlcjWlBxUTxyLVMhOEFQMT5uZlZSeTw5SUNkZmxXU14mJUZfbE8zUG5wdkNH
OSEhcHopdyghPkVGM2FseUxIfQp6KDZeJH1fcyRDKDAjNSRqIzY9Klc7NE09VV9ncldKRHp+alBG
NyQzYyhQOzA+LUJZeXVTPXdYNXxMUC1PVCY/eG4KemtpeSg7S15UT3dRdFZVQ2c8Wj9mbyQwZElw
U3YyLXM7QzYteytBPGViR1pxKVdOSEswdUQtKSpONmg0YD5URCp5Cno0bGc/amx2KFgyYk89OD9x
SntjQ0FSOylebFFQeDBya0h5fjtDNjg9cHk/VSNmMWMwQ2lNYDUzPFpZcSpqJkh7Pwp6KXhydnR3
eGQlIWJRR2IoNTt4bilwTG5NQVllY3Jlcz9haCR1TXV2RzBnflU4M1BgbXdvOStJTDUzU3s9JHlp
MC0KentFY25HQilRdChtSChzXm54NTEkKlNkM3BVJkQ8TnRERUpzSE5ZVkRtfD5PeHA/MU0zPytO
QG5DVFJVPkg0ZnVjCnpRLXwhJnlwYnM0ZV4wWDhmRSl4bS05czhaV1k0XzU/ZWB2TSoyO3k8b3E3
fmxMUEo9ODNLPDU7SXxuVX56VCRYVQp6WGAzcUl2YnVhKml4P1NUJEAqY1YmP3U3RE8tOyhnVFg4
WnleZElKc3BjT0RabEZLVTswRjdFLT1qcE9VJjN1P3EKejVuXj8qVH5xKkZafG04ZF9jQHtpQWE1
KGhuPyhAUCh9Q351eyVOKHdiRD55cnxEdDI/dWJ7Y3NZQ28+NVhuMmspCnokc0E7Zjk7XzchPUI5
R0JEQ2gjSEJjdzVERyM8VEMwQ2NiQTlveTkwMUJjKUB1RTtfNm4pYnJAdjM3WlUoKjEjfgp6cmpy
e2lVcVhRVChHKDwmO3Z9KWAodz1uOC1mLU4peG8qNGkoZl8+UmkxKXB8aH4+VERyPFM3IzQ7Smx6
Rl4oZVUKel5RVD1KNmE2SlRNUS1FZmR8MVFOdC19YnpRYipDU0FERDsxUEgoRXxvKExMPm09bGJx
VDFaQ1lxenJsOSshUSshCnplKCM3fU5XeHYoQFUhSzFWKXh2Xko7WkZoOyN1OUlacF5hMVlFOzhz
Mjc2O1FebV9ldmc3JUsmQHNPKkh4I2tSYQp6MTtlLTl3QHFpIzZNOXphPjxwaFNqSnNZS195UGo0
YWJqSSp2JGQweUJ9Zik3VVY0N3EqYCFnRjteITAyWisre1IKemw9TlJSSmNaanF3TkBDRXMydUwo
NlR6LVIzQWFIPEx9TmlkN0FwI0BDeFo1YiRpKyF2clRDRE9vXlh1M24pKDBKCnohUnhnSll6Pz9k
dkAmSj5ZajYzS3tiTXprY2BEOy01K1BZZ05uaDBsTEpFb0MyWTlrbCgmbzklQTB1LWNldTtyKAp6
KEVgXzMlZ0tZOXVVN3ZTN299VG9QTWR2PkYleTN3JWgxVzckKDxEYjdrbVp+PEhJTFdGNjF1ZHs1
cEliNTNrNl4Kek49WSNQM2FPTnllRz5EI1N1Skh+a0M8K1lKNzQ1QChZRSkxR19kTW4yYG8jMFRC
K2VvOXFeUTt8OUtnciQ/RUUhCnokRXslck56Xis8Q0dANUx5eFlPfkpLXkt1NjFocDE1YlVRKmNM
PWxHNTJkbSVAdThXJmNHciZvI298THhzSj4wUwp6SXB3ZEx6RC08fF9nIzlEclg7Nnx6UGZTJCol
XmArTXRUMXVmQXtlQlN0RkgrNSspSVZUWCEyWTl5Z0Vad0ghOU8Kejh+e1diSCNFc09tb0BBOThy
PXghQmApfU03NUg+TXpiZColRHoxQ19wfWkjd0pmYSUmTipSUERheW9OQy0pR21pCnpeYH0mSUwo
a2JlJkleQWhSeCM+fTxXcEBWe2xEeGgtX3swbEV2Zm1Ka1h1TE9yX3hLWi1fVDF2XjtSSEpAKipP
QAp6Xyt+eEVtY2k0SVNwend3Uik2dyhPQnBFcUYqYXNWc0RHc0hkJlEzZW14QFJEZV9xPFFrbWBZ
ZkREUF84bGwheVgKejc8V0duOTl9cWBlZGFjQi1LKWRTQUhfY0slUV5kMUtMc1NjKXJ8RVB1UGEr
WG09PCh1RkdLWFlxfjIyP1N+fXV9Cno/JkheKGFfY0tVKTdDKUVgcTZhNi14ZShhMGlObGB6JSVP
Iz5odHdAaURYZW58SnByUGlKOz1PX0wzczJHaTImNwp6SXo+MzRIKDx4UEMySyo4KXhOWXV4Ylp1
MD4+a20+a2A8JDwwMlVHWXVZZXFwMlhqTU8mJDwjOUF2M2BLNj1Kc2IKell+QFhEP3h+fG5WLUFh
O19FRm5LdGd1N1JoUytNRE97YmQtUFQtYjVNWnhHR2xJKz57aU5tN14jRUZDaWgrKEt1CnpUQG1m
LVJ6VD5jcXtydlpIKUFoSVAoaW9UJiZDKUQlZGk0LVlYa3RzKFpLUlFffnZvMXRKdWV6blBHWkFe
RmNmJAp6YyVOanJRfHEmT14pflB6bXMlVH5kXlY8M2FSemhDeUhlZiEqNUZeKGl0MXU1cmMmajUm
WntQO2pybH59UzNoP2UKejdOQCF4Q1kkMS1vKTNAdEkzUzB6e1Z7UlZKSFhZJj5jWm9Fcnl4KmNl
X1coRWtaUUshSC04TlNadkBfZE5xaCt9CnotXjVzKVBeMmlVJHBVKlY2JlcreFRRMEdiekZ9e2Er
NFlhIzBNOU1BYm10bzJpSW4/ZFVpTF97d1JlIyhzUzlkagp6R1Nwdz8mNUVSKThEMWkrSkBjKDFA
N0ZBKGg7N15NalBDREJ0OERhJU1qeUB3TlAod2syPFc3Nm1ue1lNYCFfIzYKejtKO1opVzlrZFNx
VGhIcmNVYllwIWBycyV1Wm8/WURTUmxVbkdwQ2hCWmN0RlBZMW1iellAX01MJHIwI0hUO3BmCnpi
cj18SV9EPXZFT2FtdkJlYThieGdVVk9lPygmUStIM2dibTc+JWJkeG9HYXF4VDQhalVSJSN6a3hx
ZzQlaGxtfAp6TDF7U1Bvc1dzeU84SzZtVCpRal5ZYXs2bmtKdU8tdDRCZkhIWCE1OE9UN31tI2Zh
eGRjU2pVbStgaSY9QThkNn4KejM3cj1yUiE1el5mYDdiQVF5dmY5enQ8ajx0KEM9SXslVGdDZWBk
YzRDZDgyTWpZd2dJcERzLU1fKns7IVdvP0VXCnpLXiEzd2ZnWFZAJTNPaCZgOzNKUVpfaHhTU358
VSYydDtsayE/QGlIZDVNZTVWaGAqLWYhaXtYM34mOzFORmwwSwp6PiE3aUlFTXZ1Z3ZLYWFIQ3RG
MGEoQi0zc2FvbShsaT1tWU5qSV8rZCtFWTB4U3VDM0g2PUZMcG5DWT1nUEk1T20KekhWUzhadSgl
NmZEQ0JnUGw8flpRWns8c010ZFJwe0JgaHRzSz5qajtjKUpsWHIzVUYhKz5QTSpRTkpRYzY+LVJD
CnpXaHt6bmFJcEImd1RncDtfPkdBRj50e05RJn0hbXNNejBXfjgyVGs/OUghaE0zO0JPJiFrZ3Z7
cnxSTkBzKjdhLQp6LVJUQDtodEBMUnFEdkRvV2ZISmVNeXp9a3BINUVqYXpyUkxvKXJBVFk1aW5x
fE5WJDV0ZipZQ3JfYyU+Ml9INjMKeklqfFhSQGt4eTJ2dGs/WFh6bG9XOylZb3xnUT0paVhFRjh5
NEtOa31KcFJIYW9+LVFgc2hTKXtnSHxjSkMhWikpCnpwOVB1cEYtaHVGbHZYM1ZVcFRMPWFBfjRl
P3A4SkFMfSNpe0Z1MkZRNShHSzwpYklxeE14P2crdVFzJnI7TzBnOwp6d0soZG9nWn4xVGFgUDF8
RUs7MXx1ZSZWP1ZtM3dBQFVwMUZlR3MmfHU9eyhmKHdmeHt5SGNifDxtbDU9TGd2K0IKej1FNCQ3
dkNuVG1LeEgtPGV3aGU7ZnRQK2FvOVdBSVNPdzAqbys7MmFnSzliMUY1U3toZH5FSFplU2Z8eVht
OD5BCnood3oqbSQ5MWlyVXVIUlhSUkVsdVFTfTRPWjdRKksrQipLPT52Z2ZxO0VHVWp4VDQmbiF4
Pl9oYmhDfW9mY3c4Kwp6aX1lJH0xKTwrd0A9IXMoUCMkZE9RPC1SaXFVcXZBai1rOV9vc0tTJkF7
TnVpJmhOeyprWG1eZ0M3TW1xOy1uaFUKeiV3ZTw2WGx1fDw/Ki1DVSZeTWx2PUpzPChMPTtwM216
anxiSFZFfTdaVmVlM2VDTFdlX01IXlB4bjklamtOTkZsCnotazc0UWVvNXojUSMmYWgyZVRqYzFS
VF9sZSRZPSVxNnprZ3E3JWZBWUBSJGhJJTxnOythRGZ6PH19Q31JX3teIwp6Sk19aypTdEI8SXdP
d1lYK1BjeXAraHlPYUVVcGpwWkA3aj5VWlZLQU5LWj94VTJFX05hfmdlKXNYJTBhIzxLRGEKem5z
WWlvPi0rSmoqLV5aMWZQcjYxI2J0QHVHSFlCVUp2aGl9aCg1QkRjamU+I1J+en4wNnZCdDxVTDFp
aUM0MTgmCnopPH1kY1FEZk1kM2BJck03c3J8X2FHMG9FVjd6PUE5VXxafnQ1Pi0+cGBkPHY5QT8p
eGN5KCFlVHk4VEdzTH59YQp6SD5jcFN0RlRgQV4qY3txIWB+N3NKIWBxYEgpVU4rakdSP340d3da
QXBmJnohMyh0alYrcUg3REdQTSRHdlFVVmAKelNLXkw7NG1rd0IjNWcxcz1nSFRMQ0U4Nlo+Zkor
fnlrUkA/TmsxenU/bmNQQDV+M1k0cjNRc2NoMEBzLXFZQEUqCnp1LVNIe2lNRy09aUZoPmpoeiE4
LSNrUW5MWk11MCQqNDhAWEwtYDkmREw+I0VISE15YmojbVh9enEtVHdONHI5YQp6SEYpTHtIUzM8
QzhiYnhJK2liPk8qKFlSMDM9YnZsUzI1cUJfM1QleVYkMnY1ZnlhYXx6P258c1h+PiorKXRnJkIK
eldFKyFNdXJuR0pxPkI1RnZFczhUdStDYUN7JHMoRSF5ZmFBcE1xVn0xVE9gNENLMDZ0cm9QP1g0
MCNpNHlTKCV5CnpXPVZ4ZSZTP1NaWVJ7STc3ZH5eVCQkZFRnSyNqNmBJZW1FfjJORXRfdXhnQWZx
UmNPTiZ9SmVfKWcyXzZLaTl0LQp6XktWWW0ldVNgQEhNcGxGWVghS1R7aHFBc0dsbWNTKnIwTG5N
UmNra0A/fEdyP0t1dzNFT2J1PzRZMnM/dWA2Ym8KekorK3FORX1XSkBGK2QqWHRZTHNRK15uc1dP
fEV0JTRtKzBnRTFgYiZeYF4lZ09GNkhOPERZNEp0UlM8dEJuLUlaCnoke0NZKj5TSW9xdj5DbyRu
QmVZajU0cS02OUw3KCZnMHw1Z1ZgMzhrX0UhQ1ZZWHlgI1R+YCowK2klUVE8cig9dwp6MlY3VDJN
d1h1SVZOVStXeWp7cEdVbmd1ZnNjTjJgVzB7dXVkal4rOE5IY2RCfEk0NmMmdlBINDdvWkBha294
UDMKenZmdXtBVjNoIVhmOGhlSCNrbXI1cjltaWcoZ2MlWEsyUDZIeDBOMCRSaWopRmoxaF5zcXBJ
NH0/Wkd7VV8oSGR9CnpqQnZYWjFJbCVsPFZ0bmtROT4kO3B+Qk5lS2lhNERtZy1sbklEXkt3dyVS
KnlSdGB0RFJiQTh8MTdsPi0xckRQegp6cUNBOG43bFdfT0pnN0w4WiRMKU5NMl5Zdk82VWM/I3Aj
ITJ4a2YhPSt0TEZScHw/R2x6aTlWSz5RNztUIWJzfTsKeipgPEdwPSNmRWIwUGs0UkVrOCVSck9H
fmhPRCk8Yl80dVM/SEA+TFV7KEErbnc+entDTlQhKHB4QVZlak9sSXc2CnpAKzN4MlZUYi0mXjUz
aiR2ciFiKkg7aERmI0gqI09Xbll7diZOZiNnIVkpe1hVTD1iM2J3OWtNcGtSUSQ7ez9FYgp6YStY
PHdrOV9ZbGBLJnJGaExkO0YtI3NXVDVlNHJmdz13MnIrQ1hMO2o5XzJiOSlHUE52P3FUPntzQlAl
WjMobEgKemYzMlhiaVB1ej1CbE8lfk9IWlh6JEJLNzM8NmVlI1paQkx3KD99ckIrWmpSa3Z+SChm
IyRSd3Q1TXtYUkhFJm5UCnpfYXE/TTB2VTJ4WHtuOVBaYXl5bDdvKzdJRnhqajdscnUkLWs4WHph
OygwZy1fOU5ASVgxaFdjfEpWZFNISil3PAp6RmJgdzwjUnJJaHYkNjk7T19jUjckZXdPcEd4PDhu
dHlldDVnNlpseUE5X01eYlNIZXV4XiNkQSgmVVYoemFVXmYKelRUJSZrWmApeyU9NmUpQih7NUVz
VEU3VCM2d1ZIUEdpdklQSn19Z3RYYXc/UyF5cEJRdj9sUyt5MCVyRWZucGFJCnp2Z2kqJm1uWUtI
JW9JZCQ2dCNpVkF4WHpAbEQwQFhgRkNNWCpxX3FsP3ZeKH1QQklqNi02dyNwYSRqKkBCZmRJTgp6
LVZhYkBIVGtONlcwbzNHVH1vO3RAYUczVFlrPz9pbkdNQCFfTHghUkp3dzFudG03UmQ0THNETUso
R0xHYEJkLTcKenU0YUduYElMUmhaMmEzNnlYMiN1QCFNTWg5JEIwcmduR19qUDh2Snktc1lvMiZW
Xnghd3o2MDkjcXJSXzttUzZ+Cno5eygqbSgoNilwMjwpKUM3Uz10Q1VSentAdm9GKUtmTW5na194
ZF9nLVhyJXFwOVR0MVozejNYMituSHUlfVVeJQp6KUhkd2RhfCgjU0sjRUUjSDVpUERfI0JKWkk9
ZXwkP1ZhKl4xPDZCc2s1QXQhbCthZFJWRisrRU1BRylydmo3dTgKenRpTjhpU2lUfCtYNUsmaGtg
JlVZMkA1JG5XVjRBP1VUezN7eTJNKzBwRzB8NjdGdGI3VEFaSmRAd3EwbzskUyRFCnojQFIqXiNX
c3hBNyteMEFJSTtBUzZpYGpaKkAkQV9tZXZVVSlDIWF9PCZ8QkVNMiRUVDMlXjVpO0BRZkohT0tm
Tgp6T1pqVihDfkt7TVpKa2N5VXR5KGhYYyYkXnA9KkN8ZG96MF8/e191KWlBajBHUjBuWU5WXmJV
eSFzYnxTd3s2RjEKejVkcDk+YEhgUWlBaTRhWDJ9KGFiVFBuS0lWcFRaPSlWWmA2KWEqOVkyZlhv
NTM4NUlKb0d4TWgkWUkzfnA8P3dVCnorPGNrQnhuNUEybVN6Qkl0YHZ1P1AtfD9YJlZ0NnFKeSpR
aHJ6R1dgSChuSWUqUE9hfGhub0lVYk07UiV6ZyhHMQp6eUQpcVZlQS1jOVV2TjUxY1Z4TUh6RVlq
JERZflN9eHt4MC0zMGh3VS1TNSE4SkZiezx5ekdWezt2fDE8TmkyMEMKemJxKy1SQjVIbiE7M2d6
XyR6aDNEcWFJfjxnNllXbiZzYlV9eHNjUHJRTjBjb0BqO19eKE4pfTIwd1U/MGwoOHVCCnpAKXZJ
bVlwVmQ+KSpMOHItWkc9Xm5SVl9iYU0tY0QzJTFua2BIcGlieXVfVXV1WDZBWUo7bSpxRk5STFVx
bSk+cgp6RFR7dVdmeXQ3SVV1ajBlZ2pjTz9pZzlTTCl5I3NwQVZWRyYtfTFoTVFXM3lmUWlBcmdD
bU50ZlBiS2AzVlYzM2EKenlKREZDXlZuXkgyJEhjNVUqXlQtVDNVJHtqbmFzRiR8UGp6NXt5cmk/
PGtZUzRBT3o/Vi05SXctdXNTU2dqKFIjCnp8MDVnZHhiTTxmYTZVeEhTQD43fURFTXFpPEZ1TD8z
eS0tZ0g5eW9vPkhhWThHPWdeeHh5Tn12Q3ZUR3E2UmBQcQp6Y2l6IzUxUTFLWUVqJVQ4RHFpZjEt
V09WWnYqIVBwaG02OyVgQDxWVSNMO35VSzF5YUJYQkg3PyVUflR3N2BUSSgKejUlWDZ8KkMrWW9o
MmZnKTttYiYraT93MyZSQ3Q/Wm83JD0yc0JBbXl5U3g0U2I+engqSVM+UVlmNGJvR2dYPH48Cnpa
Z0twd1hIS1pPKEJ2JmthTmw3K2BBNVZ9SDE7aE1mQXJRbEtDTD5rT2wpVkNPRUNuSVAxIWM2JXtI
IXlaelQ7Vgp6Kjs5QlU8UXsmcU5TQWg3bVV0fSY2O1V7SF5jQXFZSlgoVyVPLUVoKCZwXjZTWUU/
fkFxI28/XiZyN3dBSkcpSy0KelR0bzU3QEtCWCU/ckRMflBOWGgkdXpCO2MheShzTzNIKyEzNXYt
MUF5aFBwZUpePG5KaX1VX3RVKjxtak5zdj9JCnp4QmJSOXdqWFRQO0s9cE1sbV9nNFFLdD5EZCM0
MF5qe0Y7VSNRPnFITDRUfjdubURCeWU9Y19KJXorUUtjO3ttUgp6aElIbGFKOCNwZmlzM1VnJE4t
N3c3fCE+aWFaO2hpNytyRTZ7cVNpKC0rMys+O2hnUlN5RVchbXFmdHw8YldUNVgKenk3bDFzUlY2
MW1zYHlBQitMQ251T1hATmNneko1K1MtbTw/bk8za0MtdGh5JD92clM7QVI/Xm9YeyNEU1BGfSlF
CnpoZzQjUzV4KSNsP192MHpoalYxI2t3MnYtRiV7fiMhYHNraUVhKGpBPT8pO0hLfTszV0dubiNT
X1BQJDI0RDRXKAp6N3lZd3RZYVRCS3QmKDtsY1p1T141IXJJalg3TDlqcStrKGJvLT0xN2xCNiZp
WChzSXY3Z0JMR2ghPnlxZVh0RWUKemNVMk02Xng1T2pPUyZkRnBaY2FPbGlxNmUmSlJ1ZSswcnlA
N0tYYCRLPSk2RDkqKEtseX5KbWtobGJCNkxSOUB3CnooYXhxSV9kKjhKWXVMT1BOPUYzIzZjTXJ4
NHl+dC0mUyZwXlViUDhncTNiMmp5MHB8JG96UXxkJDR6Y3EzQDBzUgp6KlM/Z15JSWc4Jm9CJVpJ
ME4tMFd3YVlzeyVvPTFsNkZffk02QWUka1hwZUcxa3k5clJ6d25ZKzxlYHJqYVpib2YKekBNaEte
anwyOG0mNENpKjMwKXFGSGF5IzBwVithdkskelIqP0Jta0lkNnU1eGcoKHI+RGpCcm1MQzFPfUtD
Nz9iCnohblNGeUZkdil3TUE0RTE1RT5IQF9BTXlWRmNQNjtaWVlRanlqK2o0OzZ3WkttWXIhOGQ7
Y2pxI1c1aUtPK0ImWgp6QHdeeyEpIV9SRUk1aEtVO3tvKXR2YVk8blpEPXlJNUNpbkZTJHU5TypY
eGA+N3lmbzsoc0JJcmEqM0BsK012aSoKenE0bSUwdzQ8dzYkZ2tDQTUtNkA8S1A9KWo4YnUrKTxi
IypDWiVwZ2hXJGAkYSQzKXdVU2JEM0M7ZVgxKFk0XiNGCnomdFRNWjVHemY7Mm9rMFBmLXtke0pG
OCRId3I9YHpFbENrMGA/ZiZ+RilFQDNGMiZYZFJOOyRXS2xNNn07VzN8Zgp6NHR8JEMlRUlWTzRm
NiZ9VT9WWj0+I2tLeXFrfHB1MHB1cmJ5Y3g1fHZyaVdmdlFGfV5rUD9nZUt6Ni1Rd1ArTH0KelU/
JEAqQCNLJEdedUNsfDR7O3tlSFkxUGMpcnF5QTZ3TXw2MCpBTUBYQDRBSHF8O3NOUzgrUHg8UzY/
c1pJOCp6CnppfFBDQyN8Tk56O0NOa2ZYPytnMSp4VHJhN2w5djhTaCl7RU1ucTxOYT1+RnVKV3pC
QnpWRnJPLW9mdElManRWYgp6OXkrN00/UW4xSlU/aTxKPzxUWGkzLTVCWGFuUHUmKDkhU3IoM1Y5
WF9CZGR4OH1UQ356ZzN7KzdkYUFpOEVFYU8Kejx7XiRUYypHUWlyVUlFdjIpKHBLWlBONm9GUDtZ
aFp1MjwzQGU+O2BwRmF2O1BBPkBecyhRcmY2PllzbkZzMjRaCnowZ2R+IV5oZDR+VmNjNiZjSz1s
JFU8cjkhS0Eza1FNdT9rc01RXnc/Km8+cE1jSDNebU5QPGBeKTVTKl9oa1JQNQp6WTMlQXw/PVJR
WmxpKXNASENYUXgqV3ZIUSEmbT81Wlc1M2ojdG5lTVphflFAJiZkfHBSISZfPG88cW9WR2UrJEwK
em5DO1Jzd0hebCFfVEt5QEo7KDYmQUZ6MSVTJGAqO2QwRitfQn5FVWV2XjZZNCs3al4yMCZTOzEz
bm1IPSFLej9xCnpRZyN8JlJOK2ghR2JSRVVuZj8/TzNGd3QkQUFYU1FxSVJHcHVBO05ePHg0emRD
PmAkZl8+QHk5aFA1eygoJCgxegp6PXFubGhUeTc1fm0qTSRVTXR0SjRLIWExOU4mUmBvSEhAN0ck
RXo9fWt6aVN5Z2tHb3lKTTtHYlc/YWlvOTRVaDkKenMoJShTYGV7e25Zc35kNW45O157MEIjRWQj
fkdZPHc2P0FhR2ckUWBDVFMxYzIpMzc2MHl1YGFrWXFBITdmYVRtCno5fktCd0s8eVVJLWBeekdV
eyUzYWlaTiF8LXRRSyk0Z3R0ZGl0TUBkKGduWjBHNlo3ZDdUJDJfbChAclVOI1k3bgp6aF9mT0hU
K2w0dCo0M3ktVms4MVQ+fWRXOXdWczB1RSR8RGBuT0Uxb2NgMFVvRHlFXng+UkFAK21mSjVvPzsm
MEMKenstWDhPOX50K0R5Y1VmOUpGb2JeNjEkJTdpRnwpVndmJnlFR3pSNmZpPDc/NG8mVSswS3Zr
dTNDRl9mQmdKWDNSCnped0xZPHQ9Z0k0bE59fntiQn1EJXpjU2x7SGFXYTYoUCNucXs8TDxDanZ1
WEledz80Rk5pRTs8JjN9KU4zbiZpWQp6OyZIX0BpTkhMfCtWTlRDUDVRMEQrIWNKXnN5eFlMPS1q
QHVMbjxufHcxZ1JwRTRzSjt5OTBsUWAxYmNhZCgkXm4KemJrb2dnKHx+bT5MPzJJX0JwVUlAQW9l
YE5uOEZRJjdKRHZVYG1OMDlnMT8oKGEtOFpYSkpDJWhzeyE4O3Z+Z21KCnpFem1tTCZ5MHp1cmYx
ZEdrcFFMYGZWQHVnJCgtOz5CQERjPlNNQ091T3o0aVFONSomTiU+SGRSPiVhPypWbjJDYAp6Y3ko
ZEczcDhTTj16OFMxKlNOYT5fdHFOSypURG45QUZQS1JKZXokVjxqQ342ZXJBN2IqbWdxKXpwcnpS
Sj8lelAKelVtKjFUb3dyfHhELVJVYVYoSV54JVdFN2Nvamc3IUQxZEx2e2lOXmAlSygyd2FjNHkl
bFJPSnBpUlNsUDRkZm5DCnorazZ5QXlaK3VocH02R1pnVCtvQVRFWTBCb1FUY1hiVD5PVklgYFo+
YE44bypBM3ZCSV8oZEY5NWp0O1ItZGpjRAp6U2QtdD4kUXkzMTFMI3F9cTdvTkZje1lSPmVsT2Vh
YyV0VEZmUXRPRVhLTnpDaFBgXnw8cUg/PCN9PiVUdGVwPmUKekBxPzJuYVdzU1A7VkhOaT87V2p6
VHtfeGVpJS1iNCk2aVp4d0tBbVAmK05CdG9MT2taampIZlpYTH5LQm9GKX1vCnolX2JALWB5NmRu
ejk+NyRHfGlUJikrQjdEZCNDYD4rcTEwbyUyR2gmRi0pZlB7dWV4dT5CaiVYWDhAYzN6Y2RLcQp6
MSpsOVoqQ1VQME1WVj5XKnBrfVFfS1ErdEw8WHdTRTlJSDhHPFE+U3tkI2NodC1gRmQ3Qncjc3Mm
SGxzbXFCKUgKekJvXlNfYHhsX2t2bypVVklZcT05UHNUZV9VJFlkTGxxVEM+YXA7QUlMamF7YmFn
P09jMnpreGJRK3tKMjFvU3EkCnpKV3Vfb15+V2R8Nj4+SWIjdFhEdTc3YzZfPWN1ZHRvaUpIRHRo
XjUjWFo7RD04Ym9PWHhpKTszamYxdDIxWE5Regp6aDI0Y0MqO3ElMXl6SG44ZGBWcVNYe290WmIq
TWFzey1qN0JiSEA9dkNnMzleP2swMVRlQVBaOCVTOFB7NU1aWkEKellFY2dtJns/Ml8tbmB2d28m
X308cGl5bj1VITtOP3FEWkJ2I1RaNmBFKW8rPEZ8YkFGO1c4MTIkKCZSOUF1c0x8CnpKQX4mbGV6
JilGJGU7TEBnYEs/UXE2OWUoI2BNQ2VZe3wzQmZsM0pOSEQqYDM+NiMtKGp1cTtiTzhHMC1IYn0o
Ygp6e2hCbTN5SDl1eXFpMF9Qe3hJQHA1WT9NRClhYVZZe05NMiFmKGZIVHFHbXcwOEpmc3UoSHtz
MDJiR3s9XkEmZkkKemtVU30zS0J8TzkkUHwyNj5EVlJKM09BRCtqZHtOUCZ6YWNzMlF1QzZWZ2lV
VG9CMmRUT3BmWE13Z3NqRDdNPCp+CnpxJXZsLTcwRz5TaHg5Vm5JZE9EMzM3bks/TCMmYUgzJk9h
RFZKTHgkPzNfV35wKFl6cF9QPChGJnVzeDlJalphUQp6PnRsS1lETWsodDs5PEJ0ZSoqdXY2bykh
XyhJOChDZWZBdHlZb1c9VT8pYUFwZVdlUllBdCMhIXp6fFBTSz8hZHsKelhfdm8hUjNQPE1iO2d1
Y0Nga1luQk5wKF9laWkxe09ReXZpP2NLbjQ9VEdVai0/d1RDVnsrZiF6PiE3NTB6KWdpCnpTNWs9
UWdTPlYhJjc2eT88aWtaK29OUVBiaDxYfG92KjVlWFQ2UilxREZZKmQ7bzcmckR8cEo1X1AtSjdj
N0U1Iwp6TE1UbnZPKGckM24+KEpgSmJBPlI8aT9MMWBffTUjVXhxZ287b3AxZTxibEBlemU8VnQr
c2dxK3QoJHFkfDl0XigKel5MUkN6Y19YPlFBYEYoZWNoQzhgRGFEN2A8SU8rJDx2VDg3NzlPQmhx
RU5MUip0fWZ1bUgoYkA1VjhhJVdMYDY+CnpzO0pOOThrbnFrb24tSX5VLWZtNVojRXFMKCtCLU8w
QiU1JHp1VVNiQUR8ZFc+XmE5a0E8YW11TEsyZCE7Ny1iUAp6WShzNCROUXxXNXIrcDZeSXkhbWp3
SEdeSEo0RVhTMDhhOE0zdGBwO3QxenZxUjRFb185VztOQUpoMk9OJnBpPWAKek5nanFlX01MPWhm
M1Z8fmtpIVdCZlNWdVBeQFVWTXptK314TyNmTikmIThLfG5SbHspTWxONlMkX0w1YjxHcDB9Cnp1
WTJeNjJ0S2QmcXZIS3U3PjcyJj0tJj8jREotNnYjUHRfO2lCSCFzI0BvOWxFOHotYT5xSmpPUmhh
U3FwUUNLcgp6R05TaU0wZiNPVSU+Nndocy1Ybm1ENEh9cWhsakI1c2E4Xk9PI2dqSTRVSi1HWE9s
UCEmcEJAeWUpRSZ9VnNHO3YKenl5dHpfQkdUVjBkcGQyRjVCR2glOU1oTWlAc1hkdG5RWTtJIWY5
KTJCI2cqU0IhOVdSNis2aD4yeSpke3RHTEhyCnpOWW9yZHhMPWdeeTh1SHdqX3wlTHdFdmp6TzJj
em1UYWhRY25IK2BEd2lSYURPMkhObyRpaDZ+YlgxKm40JDEtPQp6SXhNXjE+bT5DUTR5blRycz5N
aC1BfHooTzd+a1Z6VXEyfkRtaFFyO2ZNe1NPRGI7dlJ4LWBieGp8S0t0VU9eUUIKel4hIzhAXiZX
SihBcDxSQj91RSZXQG9MOHJBNDlQSyo2Xk4jNzY3bykkbUZwMiFxdXByVH5BWF9SfndgcUBBPD5D
CnpuNnFYOVF1T3xqLWw2cm0yUzVGYUw8QS1UMEtXZEBjN0c9QSZEY3BsZHthNSFwVVd7aHVfS3By
dWJeWTFseTNmIQp6PTN6WHI/alcqK2tpMDZjXiFxM0soKEd4MGVzRmBoWFA3bm97clRORVZOTWM+
KUVLOXgqe1B0bWxTb1pDIV5vb2sKem8hPjt3biMrLWlrSUljNUFkMEBOWkFmSlR2UTA9ci0/cGFA
MmNHTGR1KjRAMHpqejFQaERTT1BDNDJybS1AT1ZxCnplKlcjVW8zcVkzMyhyM0x0aDN3eXh+MkAq
VTFIJElgPnNVWWQ3bVRHQnEhU2Myci1PMUhYVHREKV5zaUFYP2dxfAp6JkZ8OWE8ST9eeVoyNmIw
YEI0TkVWfXRAPCliWGU7QikhR2FuNENPSigocDNEaTI+O0NkJiV5S1RSOW1GWS05cWcKekp7S3Fi
emwociQ4YXd2JjY2b250WDsoWlgkJWtrO2NsQUFaV0tnS0h2PEBASUs+PDVHKnQmTm1QfD1vKipK
XnA+CnpCdUlAVDZrZDxxaGJlUnt2cU00V0B+ZGJQUjUxQDd2I3VSU2ZVRV4qUHooVVhjPEw5PSNR
ZHxEJHgyWG0pWnhHKgp6K3ZGYjF6dnlKXz9IZmc7Wk80M1VgO1Y1dHVfI1VxME5uRH10e2MtPzwy
ekFxKWc0VT4xPzFMSEpPUytIbm1NY0cKejdOPU1xWjRUcHNNLUwhRmZXZGFNSDI+dDN5aV5qb29z
WS1fPEI7RD5QWT5SKnF6Zys8cyolflIxanQ9YD97VmVvCnpkbUlvamtgYWBqXj5JdSZ8OHA+Q1RS
ZGs2cUE5JTRJX05hS1dUIylwITJ1ajMwTn5FQTM7P21WOT5pTEVrayZuVAp6PWQ0YSNlZGBDJSt9
ZSg+ZUVCTyNDWD4kamUqZFpmSzczOSZ6VGYqQCV2Xm1ZeWhjKHl6cldicGYpfmo0PWJuWisKeipJ
SXN0UDVhJH5ofnY8SF9rPHFMO2E2bDk5N0ZwSEdYOVJVcFllYEU4bVEheT03JU54MHRVSlk/Mism
clU1N342Cno2RHB5ZS1ZMjY2cCk9bCEzcUpHP3k2I0RBK3RWdit7bi1uQ0lEO2NGI0ludl5KNGJU
dmNPS3xOTnZVNjlsMEdpWQp6US17b0QhRFFPOzNkJFhQSmEqQlJWSFNHcC1OVURma1lAUylYYkFk
WUhGa0NgNGFlPn4kXjdkZlFeNG1yanRIP3MKemlYRC1NQCZMZmhGSVpXRTZEfmQoSn1WaUI9aXM1
Zz5fRF85ak9GaCo4R1Ipc1h6bDV9OWU/QDkmd3czVk9xdT5oCnpWP3FHblVtbzJST3s4PD4zO144
V20rUTNXJjhuOFR6YnQwcXNgX0hZZXt9c31xOzI4bnlDRXkoYGU3Vi0wWT5MZQp6PFROZ2BHO24m
Xjl7NGd6RUxjJjJoMERxJWFWWHp8UHFUIWNrSEN7UjBociFwNjNgYUQxcjMrfXN8VykoPG45VjUK
enUoTS1XbnZJQUY7OSkxPTJvNjJuQ2E8fmFOMX1UVyhJWHUme0d+WDFffEpHNiVeMGlnPnp7N2A3
T3klVjQrbnBRCnp4QHVpWUwlR1N3P04xK2FINC0laTBDbH1rPSNRKD5qfWh1M2h1YHNwK0JPbCFp
fjx9QkN9VjFWOSl7YElfTkpqKgp6TFo4alFIbk5IcEZ4ZzdTVlJqdT40blBTSj1EPn5FOHtZazF5
elBvSkJ9OTAqYnFFTE9vPHx+U3dHTSluQTwybjYKej1lfXQhN1NUTXB8S1M0fDx7QSpZOEh0aztl
ZUE1fXgwcUdUQlpmRmd3MCNJaEs5WFJZUkstbGZOQjVqcG08azNrCnpnfGo9ME9hPXoxMVBTc1g0
amNQQzd9cFo4SXZJSklJXmo5bTJrfUNpcyRLa3xeSCpaWnloZFJHb1cjYGYlbU1XNQp6WXNIK0M3
b3ZMMkxoU0F0TGg2YXttbV8rVkY0cFNeMEtXZCV1RDdSaTx+cUI8Q3VkSl8qKEc7d05uOEVnV0kr
dE4KekRPK31SPEpyeWEoJUNsXiVVSlAjb2BpSEUhdm8wZXspPmNeUW5jT29VcHhoP1lQO356Wn0q
X0lUKkp2e08ranNhCnpQPyZfaDZjc25lYlk1IzcyTj1BaHR4YDNNUUdmWGw1RGItejdIYmBmVks0
VUBneldAV1FHbGpyK0VqUm5TQ2tvdgp6VlB3d3txPHRtMEJKbWhhQE99N2coZk05XzBgUk1rUHI8
cyVwQ1ZuZ08wKy1NI3M3LTV8QXIlZCgofSgqOW9ZOHYKems0TzdPWHpnMzNqYWxOV3hvWlJMYi0+
MWA3bXpJKzJTaT95IV9UNHBFXlRrKkVFN08/dT5qaX5mRnVsPWVWckNsCnpVe3VIO1EmTmoxKkkk
Yj4mc1plQTNwcjIhWGo+U34xaTt+dWwhUlI/dDRpP3BIIXJ8K25rIUEpeGB7M0hWOG9Bbgp6ST0x
Tm8wezZzYm94IX4jPjMtTG4lOFFAMVJgKTN3X1BKU15mVSp1RlpGP2ElUlVKYzJtPDFkbTAydDA+
Ql5vcWwKekh4TWZ2Qz8tSnIwRWFUPD9PWnlHWClFVnEmU3tHK0tMSUkoPU1TTjhaITFiYER6Tk81
USplK05YbiMtcF8xTzN8CnpaV3s3OFYqIyU/ME5uREktTWY/Tit6S31VYUsjb0VpP0hUcmJtZSZP
I3d7SiN2JWVSTyl1a3Y0YHEwJW1PMTNgKAp6ZkY9YEItfTVCUXAlJjZSMGFUWkphcjsrej1fZnlh
fEk+fXdfZCsrTyZJO2pfditJYmVZYSVxNykkbF58Km84VkMKeiQwWHA/cGo1QzktaXY+TCMpaiFN
VSRaI1c3ZVEwK3NNQT0yVXhmU1BYZCh1e3czQUgkdTZpM0swNyNAd29TZlp7Cnp0Q0goK3NEa0tS
ZlZMWVRNbCE/MV4lcXM0ZEZlT01UeWhiRFQwKlRKR24mTSRrTUVPPUwofUUhRnBJUz9FVE5NQwp6
eG5JNDxvcUtyTXZ0MElBMER4VlRXVlFYV0E2Jl8yRHEqIUJ2Uzh7TT5CTTh2ZXk2elRuMW1wRzlO
S1RPMGM4aikKejJFWVliZFBhUmBjbzJ3MW9wZm9fQnZXcWNRbW5ySWVLPSkjZ0lvKH54c31SY2E1
eTEtMVVPbCF1Q18jZSE9fldnCno0SzMpM3JPP041ZDJmLSpjYmkxTWU0RnV3OXpXdXdlWT4rK3gr
ST9RVGxsfl5iPDhnYjNKY0koRVAjSy1leGV9fgp6ey1kSl9tQTFePUR7Y3M0d1d7fi1YQCVCNUJL
YG41TEBzQDxFRzBBR1JDdWprMmAkZWFLPndqbWBGIWJsRTBKdWgKeiFRcX5QSj11cHAlZE55Ozl7
fSk7XippVUt2Ulg1el5+TmohVT5eWGRnentTSm9jN0QqbCtTTU9sKE9Gdnh+UitNCnopdUZGOWY8
WTJLdWM+TyMmRThoJWBfX3xPYDtldnlhTWp6WUBzVFRRa3MoezAoPjh6bSFeYmYpbCl8eiMpbVYx
WQp6Nms/WHIoIXNMJUpeNSNrYV9pVz1fYH5QbGhLMksmKHA9NDhVc282e2dRfW11Wm5YIUNoZmB0
Iz0jbUlUen5TPkQKei1xTTk9PUt3O3ZJSWQwcTUwK0okc0dTMjsmbi1wZSQhRE56QCU4OTBKeW5G
Q1okR2JHZUUwVE4rXyRTayh3YzMlCnpVKEYxK0xyK3NKeW1AditOb3gtRmF3WmJZKFAwP1RERC0j
JmhINiNleTJBWHMwOE4qRzxsbFJQQSRaQjJeb0J+SAp6KGNjS3J2ITdwdz1zUDcpU3UxVjthQmFx
LV9ReUlNdD1BJnB4PWR6Q15zJStQVkxKZm5KdT02VE9+TjMlVSgySzwKejY8N2VRKmI4cSg0KWol
VCMjdldpZ2NJamkyXio5eXpFKlFweVBUTnUldWhub3ZhMUpPYHYpKlUqUHhHQnBrMEFFCnotakxw
V155MypHRk9IRD9wNXBaM2ZFUEg5QyFnbTs3MlZeLXI2SzNDKmhCS3E9JFE3Q0RWTWQ8eTUmdSlD
N2lWWgp6UyhMYFJ5OUxAJSF+cD1pa1lNVENQZURhUHJNJVUpPHVIMTd4NjEzZmBCTzJRT29aKWl7
WWJWeHg1Qyk8S2IjKT8Kekh2eGZINmFjPloqelRLQzhUfVJ4e2wlcnFQa3todWB8O0hjNlliJGU5
I2hHaiM3MjNVdVVZaWl4d0FgM2Y3SyROCnpiWHw4NC01JStabC11JTwyakJtfkd8Wm12TjE4Tm9z
NFIjYldMclB7PmxlcnJATD1yKUdmfjUpMDZQdlh0P3crcwp6PCsxKlRuKHMkWGB4WmBFYk9KJmk5
YX4hbShaJFVgRWd0fG9nfGFDZjJSRjdOIXo9dS0/Wj0mSTJuLV9hSipYbTwKekdQZipeI1peJShU
cm0/M0ReQHxQVEx7d3xmWnNAe21SQl5IPE1qUVQqWD40c0J4eDs5UUFHUnN3TzRnRiN2cGcmCnpY
QGIkIWhGbUk2bGI5PlllTnkzMjVqMlN6PjlrR0tDVSN3dCNjMF48JDxxMGIjNyNzcG53VXJgS2le
TjV1I2UwYQp6enRrJSo1Tk0lTjBSPUU5Y21uaVppTnpkdl47PSl3ZTZTQHo5K3FiMzVVUVM1JilL
QTtJLTh2Uk19bHVrcUwwO3UKem5PVEI4LUwhRWM9KUA4WEtoZj47RlVRI3pvUVVOTVlOY1laeFFD
KTAtczg0IXlFaW44UT5gPGRrQCRScDxGSSkxCnpQIWBBe0FGK1V9ZiViRy1oNEs4eVg5RTFZckRZ
fGs8UTBkRFNPRExAQmc2bz5YUVNmYHZ9MSlic1VUfXJjd2NDTwp6bVExT0JaYFItdDtPdFd1ViVB
OXUxbCttXkItK1JmVX1vdExgbXl8eVFfKTdwKzBvczNFMXZ3eW0rKlEzZlBaOygKelMyfmYqMSpG
V142ODsjNjAhZzRhODdQKl9OWm1qOF9iVnJxPUxKQXdrdShrKz0kRG0kSEk1XipfVFJmK0NUTk9v
CnokVUR4ZyNFc1kyaz0+WVk2MlUzRF95Nn0oKnVBTD52bG87UzIrWVohdXQlLT10fTRON0t2MlQ3
ZEZqN2s+QjZPJAp6TWtkOG1PfSErZnNlKjxlMkNyWDcwS2Z9LWF4UT9+KFlMZkxmUkRVcTRXPl88
MCU9KyM4ZFI0PTdxM1RgaDhlUDAKekNWfDgrSFhYJkVOJjUlOXMqUDJGY0lFMGkxfF8xJT03SF9k
SkRRT3BwKGg9UHNwVUdCTzsySiRlRkJZQDhCfj4hCnpUfStTQzBPdTIhUjstJTQ2WnhlNkFXTGow
b2JZMkg3RDh7LWh3ZnAxY3JYejBWbVFpOUVTXm84I1VOQiZnakwlSQp6aGVAIzYwaGlgNG8tTnwm
JVVCPDFNUEc2flljRnd7blEwaSltY1ZvN2cqYmd4QmkxYVI9Q28qWWRKOT93SjZ0TSEKelV+Pm9o
VDFKUlFkdkdMQDBHRCFrZUIqLXYhJSFuIzxFaXZHb0pjN2FGZGx1a2U/JEE4OFZxMjVYe1oxSWM9
K2l6CnpUe0xmN0Jre3RWMFEra2thb3t4Xnc7V1BuO1E5KnQwakE3diNGRHFINXBlNjsqXkpncmh1
fGFPJiEjZTElOVZxJgp6PlQkNGhBZT4kSW5PWjBTO1BKQTh6JCpwLVU7RTM+KEBGVmxpWUMlaHFS
RG1PUTQwdGhGeVF5LWIxd0g/JTNYa34Kek9WSFhuakU/cUVjKlBkPXp9V3FTPGVEMmFLQEU/SVor
fnRvKS0yPEdmJSRMe1FeY1haUVFZJlIjfU4lQGFNRD5iCnp1dyslZTYhWVcoITFmMl5he2BgT195
dFV6Snw4RjRtdGcmWVpqMl9mbWUqRiViazV1RSp4ck0xK2xULUZaLSotdgp6RlRaZEomTzNGRTxT
QHdnPjspcT13ZF47eWBDe3QtKnI2VyReeXd6MlUlelFuWkNQS00xVEhjUjlOZGp1YX0mfGEKekIl
UHJUQyhUTFg/OFBIa0haNEtJJmZTbWJTWSV9JnRLfWowRTNfUGlyWHtRJVBya0ZUXnlsWl5kWmdY
Y3gofHUwCno1MyE2RlQ/N2NkQllwd31GWnhId297ZjRpNjd3UXlJIVVnb0F0dkJkUUkwdSVVYUR9
dmxwKU41dUpmQk5nNUVlQQp6cj1EMWt3SXxQJUZ0SmwrWWhgZTlIUmVGYURFNSNeI3lSfkZVY1Fa
Y0l4PjBqa0RWd2E1ZHIlQlZxekwyYmd3disKej1OSnlgRUFYayMjcU80NkVjQiZ4e2d6amgyfVRy
fTBVQWM9e3g9UClEcEprOEJPYzdNYG9yKzxaSDNiKyR7SmheCnpUMmZodDZEfmRscHtpMUpaYWQt
dDBPdHpTbEpMKkRhNVoqeWFIUSMobGQkaEQmSjI5blMtPmo+MDU/Q24+ekIhbAp6e3ZsNU07VDMo
dHF9ZkwhTzYlSklwZzxzbHhsPTJNeyNRYUxiJFltSTBBWEhHZzA8MEw1QTxEK2lTUThGI0xEPzQK
el9fdSRXWUVeUjs/a2BqdHp9Nj1aO0wqRmJxckEkR2IxcXFvcyM/bnd1JktZdClzQm4pLVo9THJf
JHNJNHEhfEA+CnpuaXhQZFgjcyRocGt2VlkyYWdQKVolQEI/ZXp7dDQjaTltV2JKPmM1N0dRU0lJ
QkQ/fUBSUm59dXg/KkJlKTBTZgp6KXg1JXtoY1lBbSR9VD48NTV8R3IxUl94cWRtcS0kUHZVSldN
c1VKWlZqQ1c9UH1CPDh4VSFwRkd0U0p2JmNBZFUKel9CUUwwZihXVTE9THVAP2YpIWFXZmdMZX03
JSgqSUxEd0pgUFNKeHZWbD1eQGJEdSY1M35XZXZVXjthQ1dnbztTCnp3Q1pWfjglQXUoI0RhTT5J
UU5YWDtzbiVsWVY4MmNZQlNEakZ6azVwQ3tuU2swUD4rJlFoRz44WWoqJEdPbkApQAp6VClPN3Y7
T3szP0swWmBQa1VLUGEzMFF7TiRIVnMhM1pJJFlGRCktY2d8ak5LOGhqclUrJmZ9MFlBdEc3Z2dW
QD8KemxwX0dHZU5GX3hlYWtvO2M7Y219cUdvbWorUDU/KjAwOyRDe3xOZislMWNoY2spKTJFcDd2
WUpqa2tRMmVwTjx+CnptbytULWlVR2l2KjZwPERlQGEmSz1ePiUhZSpiSSZEMkhITEsldXJXaCgk
QU5NNTg0TEVEcjRKQl9McC1Ac29mJgp6MmN3KClBd2RFRjFFMFJDNHd0e0psNzQkXkdLZ2orbGlj
Xjg4P2s/RDQ7QyExIytoJGg+PENkX18/MHV6QnUlPHUKej00WCo5WH40M15HVkphY01xR1JvcnFn
X3I4OT1OcmhLXjAwbDMtRis2MlBiNGU9NFRjbH1VfWUoPTVgPG9xY15tCno1ISopTXhObTAlbzt1
djtXUmpVS3h7cjwpbjB2UCg3NEczeDErYVFuNHd0UFMhSyZGd2BDZEF3c3U+K1ljNGZJMAp6emh9
UT95MWpZTU9UJjZjWChFfWY/MVBYRnorP2M+QHRFPlZZPVBULV45dCVZVyg5dXFoNWZgNWR9IX59
Jl9pWksKekI8P3toWWV4YE9ndjl9ZG10I2g4M0d2RXY7OUklfDw9S29aJVlEaXp2b0xMNXRxUmR1
d0laQWN1d3ozRGBhNElaCno/IVBJWGxxS0FKb1BndUFzSiZIa29BPTlec1EzQSNQayRAVCNRfnoq
VWRzdHdMSEJIRlQ/S303SWRxZF5OXipVTQp6YjxkV1F3eXB7STM7aDVkKW1kbkZfYkBWc0NmVEEr
MWozYGp3QkJ1cHA+Y3psRzVpeGJ5MTVJXlMlI1ViPWM5ZT0KejV3dlY+NShYZkM5QVd7QiZzWWt+
c21HcTktR310WVpkP0plJVUqKjNhUHVTRVBvIzYqcXFfVEtyUGB7MElGN0V+Cno3IXBMR3hEeWEz
MW84VXxYSD82Jl9rM1hlZU5pK1k5LTxwV1I0TmdOelVeVUI1REJVMEZBSGs7KGFxRCpGdlZ4Sgp6
M097eW0qUGg8P1ZjZFAmVkBSaVVvT0FKRiV2c1Z2M084cSYwQTZlUSghPyNEZzd4KitCVEJrcU1y
OG45THYoQnoKelNBbVlUN0NAUm5zY1RhZ0I2UGcoeVd+ViV1eShGNmZxKy1fbmZGXzMxR0xsbUo8
QiF6aGtHJFp6WEA2YHVETk42CnpYI0xSPFY5eXEwVEFMJnpaZyExXiVUSkVyPj9IfUJEK1pZc3d0
YTNKa05LPj1MSmJlK3YjfitKYmJyTnFrIUo9VAp6NGAoJEpPOV8/MFVzNDg3cGFlTiRUUCNDcUp4
N2NzTHoqYHkkNioqPUJ2UGF5Qk8xQn4+SFpLSDQzNXhhNnpDbD8KemtScW0jd1IkYnNVfXJ5eTgx
VjUySX1PWEtmJUQmdSMhOSokPzB9PGZIcU5mWD80PUU7WCgpNW5EY3JqTDI+UXJHCnpFVHleQWwx
IXRVWlNJVSglfH57fkFpKHxxdCZCVT9fX2JhVmJrZWojWDxtRkhwUnZqSlhMKUBrOGkrbHtOVSg9
IQp6WmlZel5JYTZ+XlNxUjBZM1pnKnRFVmdaVzBvaU9OdzF5Zyh3ZEtrLTxFN0t2YHtDSyZjQzda
ZDIyPWcxQyhNJGgKenB5b3xZPS1sMD0wMDU4JUdFP1VfVkNyZCR1JmFGI0BsQUtrJEtYQypMbSpA
UXtBQkB3UnxFalFeemFWbHtrUTctCnp4d016LTAxaDx8KFBUPFZVJCtubT4tNCZFRGVeSU0lSnd7
WHVwYzhzM0Elck4kc3A0WVpqfTgwNmx0XmJQQWJQZwp6ZjMpN3BxI0orVll6alIwQE5UVUMheVl1
dUVYOVNGdVI/KEFhbmBES004TD5wRj1yOWtUUWpmNDFBN05oOXJWZ2wKeipJOEZIUENGOTcyfEkw
QHlSZmpiNnJhMkhHO3YwO05mVjw8N29pRHJjcCFASG9uYlQmTWxjLURzS3FeRDxyMShOCnohO1o3
VmAoY3BRUHA2fXpidUt3NmdeTzNtUCpiV0M9eDh3OSUpTUNmVF5oKE43SU4henYqPnNFS2I3IXth
RlB9Ygp6bTZWe092SVo0Wil1XmFlJncqZng8UEdxdUw8ekV5aGF3UlNqZnt8S0ZoVjk8MWdTSSZq
ODUhVXYjS1pBSk1LZHcKej18ZWM/TG9XZUMqOG5nO3olVj5ZSGdlMkZMYnM9eUNhWDJRQm9sJklm
VlNkbjd8WWpTN0VPbGZCfChWX3U8YypWCnppRFI+PldLR0RuMHxUTmhkM29gXmJPdUxCdDl6S2ZO
YSREal9VMlRVQVZHZigofHlYKWA4TnthUDNIX2hkYXIzVAp6Zm4/NWIhZ30rbk9FSEBzZTZOYHE8
UCNxND4jRjdkKkEkRHx7YCleN08odDV2K1c9ISRFc1ZNPFh2Ri15TjRne20KekZrWH5fT2AzfU9E
eStLVk8qcnl3Nk03SCMyPSV3YG54QnF3YFApe2FEViN1RyVpaW07XzRaJWtXbzd9ZDJtdCleCnox
S1c9Iyh6KkY7fEZmNSQ4JEdaPDQyfm8qSyQ/O3JHMkMwNzZLdlNxJmxmJShQMj1HSEtKZiMxSk9M
SEA4KlpadQp6TCl3WTcoUHV3VWtJT0VvQVViO2RUeVZ9NTxMJjxiandqSylaeEUtUEh3UCEzdmwh
WDVFX09mREBKdXA+KW57RlgKemhJMm9Pa054cilAa3tVb3gwYFhneVlYZzdWQDhlKTtuRVd1UThT
fWZMV1I3M0FTZF45KHEhVk05eSFhLWNiNCYlCnp7Z0NrWWNMVGRPQmlZKn5tO1V0bXp9MDhRdXl8
VVEwRWRudj1hVCNhMDVKMTx6dnpBRUVmKk09PyhhWVdnKnxQMwp6TTE5TjMlMjckZVVRPF8oc3d3
cC1Fdi1OeDZlSUBZUnx8STc2T0B+NzVDeEI/UVclWCEoS2o/Q2tOKTh5YDglQ3IKelBtQ2VWaG5M
OTtgMkYkLShtcnkha0p6NDlPMHMoZkgzQVNYSXtRc31aSE5oeEFjbTgxYDZtPUdzSjt5PHZ5Ykw/
CnpTdU0xO1VkfDJyYTYoeFNtODJjKl9HcUB4ZyV7P35CPkRqbjxYc34ld01rQVo9WX1Dbj4jTko7
dHReM0JueXYtNgp6VGxaVXotX0I/ZmVhWEJUUCopbm4odVJ0SDAtKjdQaE1sWTJyRiFAOD9uZiVw
Zj8pWHkjcWhqVmMqdHtuQ249alUKenBeNmYkZURfK2s/UUJFdWt2XjRHWHQkNTJeSVVQeDY3PHRL
dzY9SE5aKjJWWFdxNnRXMERwNDtgMEImWW1xb0xJCnpTVWkhekQ3U0dZMHBYZiFFfV9sSEJQVCtg
KjxSQXQlYUZRMGJhc3JPcWN1JDBwWHE7Oz0+SD0kQypwTUdxeWZzagp6X2AjUV9wfXk4OUxpJURP
Szx1Sn1GNzc9KWRfbypWWkBjblRHKSU4bWVGaldiWnY1ODJ7fCp9R3VFYk1eZFU1an4Kenc8RFRU
K005KlJ1MT9JLSVgRyNObV8yKzUzNGJ+RWBzUFVhRnE8SEByPH5ie3YlKU9AbVNnRnVyMUl8WCtl
S08/CnpmcmJoey11dEZCRTt5MGIkVFI4T1o1IVdvSm8jI3ZFfVB5UXBBe1ZRU3NvYmQmY1F5YF9A
IW0ydCMzZW08MXwhTgp6KlBeNzExZk4lYHV8bEU2NDh1THhWVV4wVHVPXk94YUZ+RSM1SXE5fTcj
dG9aP2EkWEJ0NX4tY3VqbEBGVCokPjgKemIyKnVab3cpNEIkciprRTA1NUhXJT9KKHNWR3EzcVpP
Wl82VlB8S2Y/TjUtdVBRNEpoI21pN2IraDFCIT9wUTxpCnohWWo2RSE2cEd+XmoqVS1xJFNnbGZJ
RkdQOTFeZXc1XjhxanZYRG8pcjgjfVMrQGxzS1ZUYSQqNXcmVkRZeHhwNwp6P2x0VSMlSXtfakRZ
M2MqKE9pbFIjSVd6ZGpZeTVgZnhsdTJKaSQ2dVYodVF9bF5ecGx7ZVNBLTE1VTI5SXY7K2YKem0h
MGpzN3d1fFN0S0tDYHZKSik8UXcjKTEwe0lmKTQ8eGlOQEJ0PGVORldJJSprQ1psMjg7b2xWZ3Q1
dW0yQkRTCnp5X2VOVytrNVlgSkg2ZmlJcXhsVlhMZVElPi0maWRZZlpnIyVYXjtsb0tDe008U25a
KSlHPn1wVnZadD1zcFA1Zgp6MEchSkRCRG1eYChiUEZHOGhySCY0VHVaPT5qREJkOTAwIWIhbF5k
fiFtKFpJa1BvaSsmaz5EM0JmQHJPIVNASEUKenZTVVl0YGlOIXxGa0VhTk1VWlIxTiY4QyFaMyo7
JD9QM1NNXlRpX2k/djtnSy1QamJeXlhKcHBfeHZUKUV6UU45CnpmNGY7KzxOJCVvOyZwR3NtaUsl
P2B8T31zIXVPcyNpOEl9ISFwWHluSV43Z1NVZXR8QGlCM29wSnZlViRnZFcjWQp6N142WW1wdzlT
Yz9rRVlxcCM2UV9rakBgUnopa2R5KnZwK09CPmVyPjVLNkxScSNYXjRVbSkyJlJ+fkM/TXtuMGwK
ekklWGUjSig+MmEtIWw8X0lAM3QtXjlxbiNLPXlOUDBYPXQjZWdeOHkwIWd+XmJ5T1IpaCtjbC1G
ZnE5Um5RdnxrCnprQnRkZEZnYHRublltZDRfej17d1VIYjI7bFhNc3U3IVZ3ISY3RVkydi11RS03
KWM+bTFZPjkpa2cpeGJNV2sxbwp6WHBJfjREYDByeitsNi1LakohZihqfWEtY2lLcU08RzYqb0dB
Tkk+aEp+bH5DOyRmI1Y5fW5tNl9YTEJtKGVvbVUKek1PLVJCKGVQR2ZCc18xLUN7fm5haSV3MVlJ
N19Pe0xXKlZoIVR7UiRva3JBcTVoaUM1JSZ0WHA3Tm9sQWk/PFQpCno1dEotUzNINWlaIzJfaVdT
dSE3dXJaQG1fdlFRP08jZFZ1JmFobGVtX3Z7bUVxYHx7IzVCOSRmMFFrYWxDJSkrcQp6TSpwMjFl
VmhRcURXMlFgSFZ9e2pmUHNLdDZHYzlCNkZCNURHfmg7MF9tclQ4QktGXlE5ST9TQkkkRTBtZlJE
VTAKejJta1FTdGMyTUFse1FXZTNLR0AoITtmQ1lRMT18fWM8KEFLUytfYHBsSFQmcz87KXBua0Ao
I0F6Vn1ePjRFRSNHCnpVO0djV1BLTUZjSkJGfnxPRn07WVBrIz9hZGZHNUgpYFF7ZjxycGQ0TXBW
PEFJSEg/MG9ydXdvNjVWZTtqbz83MQp6TlpHOXx3QlIzYWkoPlFRczR4cUlBeFo3KmtyPXtEPkFY
dD5mY1NjdnpxcXR8MCMyNSgrS2A9LWleQWVrNjg9SkAKenhtPHo/MEVWailgamlWc0EwcnA2QVBC
ZHxnVkJpel5iSFNUV1BFfnZWMjsyIXNIOFp7Jk5yYj1yVEhReW5zekVKCnp5OTYtVWpkPGRmWSNo
QWdmRWBMVC01dXtsdGV9WTRSfTNxMShsdXdDOXQzNy1Fb0JwXnU8KkIjUypBQUolcUt6Uwp6ZDMr
b2NWQ349SDMoI3tiM2F1OG9CXlo1KDBsKnVNJGpMX1pvdSRRQCRaXj99Wm9oXkZ1TEd3Tng5eiFy
a3RRLXQKeiEpLThfdHVTWFRsZlI/aHRDYVQlVEpsI1U2aGBIU0khc1FKc1d0MTUmb05YISFZcEk/
bVBQMkUzdCtKTTtRTWptCnoqRHBaTTJqRGMtbjshcl5gXkBvRUs3VkE1JW02fi1xR3opU3BmQ1V+
X3oqZVhUczZoP25RcGAtdmk8I1lBej0jZQp6NnJrd1lvc2N7ZWtQSWZfI0pUP3FNT2Y0NWZjRnt6
ZkgjfU5nMHsxTGM+M1hrJGpXISU/aGtCNj9kbkBfK3ghMXAKeit8YShoSn5UOG1oKzYobCtpdF9S
QTkpZnpxZjsyYEA1ZH1AXjE7P343IyE/XkE/ay1HVi1kUGEtWGNtXk1WYDlCCnpEM1dwX2xqOTx1
QTh1PFFPNm9fcCEteykwOGdTNDA3JjRwXlg/PU0/IzA3WGhlTlUkS2lKKnxvN34tJDFBeDwmMQp6
KjVOPU4yfkFPWEMzMTR8V1U4PDNPSHp7JVVZfHwwYFgqS3xHZHFoQkc3U2JzTWxkaXNpZk9sLTcr
Ki1NZEI1VnUKel9CayE+KE1ibSRmMkItckVYPUxOPig7PXFgMztCIWQ/LSh8M2tQZ1cyUFM7Si02
VDleRjF1SnVYQ2BLflcqc2N4CnpvV3skUWViYzF2ZUZPckY5Q3FYQEF3MzMpKShIPSQqYmt1ZTV2
KHVETDx1UldofXRoZWNqKVJ2KjM9O3EtdCNZPgp6TFU3V0hoYCR3NSlDKzY9MkhEPyhTcDQ0VFli
ZjtwQH4zRk15Tll1V0d9fnc/TWRIXjxOcVAjMFZfM2V2MDwjMlUKenQ8QzR9JEkwKDxLN2c3S15j
UzskOHg4PlN4RyMwaVVyMWFLcDdaVnglRUhnI0lrcj5UX0dnT0wtJCVBVF91YzElCnpXQUN4Z2dV
SVFaTHwhPzZ5RC15P2BAVGRBSkleZEAoUTc8ZzgpPUUxUGFlYkpTMzl3Q1YtWUBpe3t2WE0/ZnY1
SQp6QyFUbCRBTmFyckBWRD1LRlA1JVloM3NZOTVIbVk0KTdfNUZRfk5SMC15dTdrTTFpM1pVND9n
SEk9dkV4cGJ1ZnYKemV2JFR6aDsoLSM2cSRwSyp2Z3lNbkRFfFAzPj9adUFTPztaQTcyIXoyKyE5
Tl5UVC15MzRKMHNoeSlVRGV2ekd4CnplQTQ8d0MxdHwxJiFJbGVrdG5BaD5UPiMlZSpiekc1PnI7
WGhydil0STAqWWtoUzU3WGh+YkhHJXozPFlPfEV2Rwp6Tn1gcWZhfGNScnR+WX5OS29DZ0ZoVmli
eWZuPjliRE1RdWlQV3AzKlFZaEJpRVl3WFQjN2xgVCtha2RFODR1aSUKemMrME1zIWxIfXs2UkNG
Q1BAbl5WRUBCTCRXUyR6OFIkJW8tODdSdzE2QW5qaDtVRiQ3IWI0Qm1le2dVYj9ifWFACnpGbT0/
XmlBWm9yMEQhQGtDMkFZdV9ZZD42enhwcW1PTFNnX15tSFZJTXdFWFUmfSEta3p6YllCLV9+PDl5
OG8rcAp6THlpUDYxR3U+WDtCIXdPRSVrP19mbXZeUyN2aCtoTDlTQj5LWjVgeDlOIUBwYz1yNVh4
LT0le3tFNDFfa19wbVMKekFFS0FgWXVTSG58OXxXQU1hcm5HWWQ8RT1mTWNybGB2K2RlXm1xVjIq
IT9QJlo8WDd4ZWRhVHRmekxhS019Rn4zCno5Tzw2TXNrUj0+NGhgVnFmJGJSWFgoN30lWWwlWV5W
KzA7NDZWM2liQGJ3Tk1LJkFtTGV9Wk5VWmRxIT4tYHJ4dAp6QCt5T0gxflg3ZUc2ej1KY19JSl5P
e2RoezNhNmJSPyljTkVfXlJLflVRPUlHX1FqI1M/N1RkYlJvNVhtemZpRCUKenhRI0RxM3IreGxu
M143b3pveHgre1huMjxGU2MjalZLX3ckcHI2PTRfckwlS01ATllMXyhjbHJtOW1CRykrb0EkCnpU
ekZ6dm5ZPDJvK31OJTYwMlMzbHdQaEFyPGd9cUMoPCQ7UkU9X3FjTGV6ZUJlZzw1bWBpQkFgYm9s
JjJwKEptLQp6V1VBQEFnJmU3MTBOX3FmWlhYNSsxY1cxencwPj0yMkt9V1lsKzxsVmJxb3JpcGZ6
eWpXSC1FTHg/ck14TUxvVFUKel88Q1RAU3E0KmpuT3FlS1Rwaj8jMFRHUFJfbVA9N1B4I2Z8Z2dH
UUhXZW8qcj5LWTdyVWlvfD47LU5zYnxJQnJSCnp6enFkfVB5Ty1lZHF+NFNDQ35ZajBlfVUqcSMl
dUdjMD9ZJCE3KjQjPyNqfkFJdTFBWWV3WENWS1JvNnUqMygzUAp6QyQtfEF3e09rQnp4e0pRWF9A
SHQ5VGZlUko8Vz08Mml2Z1ljUEhAMyR0Rn1VVF8kTWtjZlJ3I19gQ1EyMUV4JEYKeklNKzJvMDVP
TDFKRCkqKytnU24qbl5AcHhCfEpEZjk3MTJhN2M8PUEzUT1VKkdxSDc8NFJeMEtWTShQdGREYSg1
CnomZlolPCt2XjF7ZmRTfnZmYUtUVzVkKGdZPm1NP1M+WCVtNHFKVDhOZy1lMXBwXndFTUJUPzk7
NnRCSDVVO3NKbQp6JlBQSmVQUXZ6e1pVVFpxT3dZUTd4cDFaTGEmK1lQdWF1KV8hYnoqJDU1dUNC
IVZEMERNSWFhSCppRXUwS2Z1dSgKekxkN00tNDA1P3lFM0tWb1ZqWF4tLWtofDtNVTZrdF9Pbl4j
OFZZKSRaK3NUUkF9cCtvWjcpZDJsOUVqRUk4XypjCnokQ1koWGMrcXZWOWhUOClGK3g0JkEzPUVi
NT08RjJGeX0yNXkkfEFSUEZmZk0pSkNjVis7U0REPzAzK25wRl5IJgp6dXlrITFudERldGBOQylH
PWAzYXQqWnpNSTMlSD5HQEdya1ZAPWVuNnwyYCtDez5hNVk5UUdeRD1rQzhUZDlySXYKemo+YChf
LXpRVWxHMkBTMnkrKm84RXIkPnJ5K3t8ckNnUjIpZV9zeSU/eVpeZF9ednx6c351akZIaEhXeEBi
ZDNaCno7NDhtN2cjNk5DNXo1LVBjT1BvalkhTSNVc2FZPmhLTDE7RXBGMFlSLTY7Z3hNOFpFazl6
azErNF51PlFPPmtoLQp6PlBvIWpfSHdLJG91a0QhRVcoX2p1JXNtT3EpeTY3dTw3VDhgU2g+cDdt
TUMrZlZjb05kbT1pVWxWNjBBc3Y2YEwKejZicE1sTDlpRFB7YHJxJUl6VVBgNlJyYWMqcl9ILWc4
cCtkUUQ9V1krSXhGM0dCR1prZ3FQY0YpKT55VlcjUmR3CnpNZEhyR2x8eUYwZHIxMEJTfGdPMGF5
PUxYSUVrbCQwM2hFY3JiTUVMNyh1XjNuMzRyN2J+JXRtKk5qS0hkNHtJWgp6KXprdWlPX2ZOMTsk
KSo1KCo4QHp2U2F7QStTcDtxMzBgTnFDeE1vSm1eZ014MDNaYj41dD0jO3FxNzkma19+YkwKemxx
NWtuQi1+SGtWKio0JlBCc2lxaFh3JXAldD0tfWpWcGBNUG9fPUp6VGUpMShmIUJwKjhsKD9gT1Ul
WTFPUnQpCno/PmB2OzxWLStyfEhVKyNHcjQlTyZqZ2BxZCl0SzQ9VSk8WXspR0o+R2FgMHJBN1dF
bzBzd2U8ZSZ5b0AqdFZWKwp6TUJzNyZ6emJGYGVpNU9UNmUhTUotJVFxZy0yUT5AIVJBY0VvSWl3
LURLfFBOe1RQYEc7bmJfbztsbDNjVT95UVEKem5kR1gkPyM9Kk9KRW1iSW8lRGZzdWY+Tnl2PFl3
QVIqVUd8N319Mj16KDd+MEpufnZnLUF7SnZCPyZWcHl+R3FACnpIJGR4aFl0VGdsUjRzMiVvcVdu
PzRLYURZWjFkKzltWX1xejQlenR5TnQkMTBfYV9Vel9GUWQ3Njg4czRsRzFufgp6d2c2Q0UyUSVR
Z2Q+KmU0eSg3YkQ+RjdaQjsyXztZfEFLb21uX2AmclNAOEpGNj9BV21MWGVIeS1iIVhiZyVGdEoK
empSOWFXMFlJVG05PVhvQjAyaGViaHQhZl4tUFZ8JUNKSzhEK0AweGNGOXVIQEw4UEd1RDZLPS1B
SGJzRzRBaHFyCnowfD5gLWBhQDFTO3syNlVVNmIoQXpIUXdqcVR2VkVieDVJRWd2WEFPe2h0R0tg
NmorSUBvT3V0Wno3OzRmQn5KNAp6aTY9K3I9Rm9rT0xQYHA2QClCT2VyU1V8U0ZDTzBVTndoIXQx
WVJkVXp6cWR9NUJ9O3Yza2lKdm9IRjsxPml9ajUKejNeKS1la0pCeWIwI0F8cyozfnRJYTNCSmMo
bj92aHsxI29OQihuZWFLeW5YfkBMTlBaI2UtaWhNcGM8clh4V3NUCnpCJHNidzdMKzNgc3ttNiY5
cUBhbTx6XllXRWZ4KFVKKk5jUXtfZVleMl48KWhvRCs+ZWA9fFlBSSZ9PDNwTUYlZAp6d1glcnZP
Yk9AQyV3bWlfXk0qfDtAVV5lTDRZJDNpVWhhR0VfRzR5ajVJdHVPVmB7aXhJSHtCYU54MCM5YFkk
REUKemZ6KTk+XnwzKVlDeGgtYWgqaU5oZUAxcExEKFZ9Tk08QnFOZF9zNk5wYElgSlFpOU5AMClR
SzlDYX5ybzkyPikjCnpPQmN4YD1vaWNAKWdJKEEtNyZteXUhc2FNOCtLYWpoSzVeVVNoSkROSnY4
clUqKDlqcXAmSmdIO0BtVDBmRVltTQp6b0w+eXxRMTF3QGY+bH1SdSErdlVxe01mZSFFRW4mI1Bh
UGh0aC1iQUM+bHVrdE1iIURMWUZGdEVjX2c8S0dRWFUKelgpPDR9SmxkXnlPbGs2QTZpSTV+O2xy
WjJpbihHN2VaZCpgMUwpUjQhZWY9OChsejF5MnVvUzkockdFflBtI3glCnojWlg+Rno+O09oaTM3
WDhoMn1AQE4xYDkjPF56RHdKYmdURWU5QXhOXkBwc1krSyo/IWxZbVZSJkxFdU9Lc0pZTAp6PXpA
LW8lbkJlZERHZmhtYFkkfEc7PSk4UDUmLXhuSU49bV9uKmwlbk1rJXJ+T2JjV0hOPCFtaj0ydXxK
bVVvaFgKejdaWml3TX1LPXJHbHZzRUt4Nj5ZXkUqSE0yeiYrP2RQYiUmTlckRk5IOzdrJV4jSHQ2
PEhRVz8yI34zOV5icFNuCnp1O0lWfDt+c3FPXktYWEhWRjlASVR5WVozTyQ/Iz8+PThQKlVYc2dy
X1p2eUNeXj0pXk9hVmtIWjktUHh5ZUkqNQp6Zn5KfVdGO1IrXk55MS1Md0ZwSiFSUm1QX3hJcFcq
eVl+QSEwb1E7P0M7U1AmeU81Y25SMXw4eiFfU2ZjPVBIKDUKekZocWpjLS1vajtFJEFCPjZwQDJl
LT9VbnlYengkUSh8YiQ3WXUheyg0YTNHZSRRLWFEKiNwYn5QKSVDMiV4Uk84CnprZCNjcFgxNXA5
IUxhYzVeQWJ4ViFDI2h7MX1tOFdHbFA/OC1QTUdzZX4zVlM1SnAtdnY5djVLRE5SUlpldWZxVwp6
VWBIVnsqUnYlMnRpVVcqVnVWOSg3YFQyflgpTUVZNVdfPnFMfFpnLV47UV97Ki1DcGZNYVl2cHxN
QU5+Py00VUgKek5tMUFyUmNKNWl7USRocV4yc2M1KGNpSVMjfnpFRmRmPHlsJW11aF43STREPTtR
dV4hYUl3YzFZVU9mWVA2Rn5NCnplRT1zPGJzPG9lRklzalJSMG0qR3ZIN0Q0e1RCZUJqUVZjYkVr
O2FuUnpPdnVSbi01ZElnUUZSKnU7JCZyWlkxUwp6d1FKc2xpcEU+U0hTJGROPEhFa0RGZnFeP1p4
NjB+bVp7O29jWWhOO1RSOCMxQiE8YU0rNEkhblhnI3pPJkl9aikKeno5PGd2QUgoOEJtSDZjJkFI
aztFbXc7NTNKUDFeYDtPOGJyJn51SWZwait7QkxxYERnX0k/VTtBZUVtVyR1RSEkCnpCKW1EJkdm
LVN2aT12ODNJOXdTfSFFWnRQZXUzQWQ2YXFmYTJjUVIkUklLMVMlbWswbWh4UkBLMGImOX1XMjBu
bQp6TjlIWD9TXkY5QSpwNW19Y314UTI0Qk9yWFdWKzwjdWxvczMpdmg3aXpBVmtBbUYjakQmX25D
IyFpLW0jMHReaEwKeiMxSkAtentxX0M0Xyg0Z1EkUExnQiU7MXtWaTtSdHRYcUs8PD5ARk9oUlZC
UENOV05RenF2Oyk1OWIwWHo3RUV8CnpESDF6bjlqRXs+TlR6d2oxOVIxRkZyKmpCaj07K358SjA0
dnhyeGpuTXtPbUhIbWxnYm8maGokV258Y3BVIUlNbwp6PThMPGdfazhfaE5Zd3J9OXtfeWRrLWJ+
Vnt5IWpeZVJ5UjAmKG42QGhndUxRJjB7WipOYi1AWHpNfVFuMmYkakQKekE5Si1INUJfTX5xWDly
ZWckPntRZD83SmBgMll8aj5TU31jUGAmYnZzOXYhUld+JlFvI3JqfnwzMHlrLUpPWjk2CnpRMzk7
bzBaNFIlTzRqfShqRm9SaT8+SzNMd2w9KT49PjI1PU1ucm4qP21lUzteS0dsfWBgPipVeHVyUkBZ
UTBNOAp6WmRfM0swKHohSyhSPU9+clVyVjFYYCNnNGwjbDRge3pOY0hkPj1hRFFhK1E/O354X2hk
eGFHPkQ1K1ZERz4jdUAKelgyTD4oZUhGciotfmBtPTJTfkIyYHU/Pz0zSC17TyRBaXxNWmVqd0xM
fHM5MGg+I3l5JXJVJXJxNXd4KWJJQSt7CnohP15pdkZ5c34/VztldSNkX2VYQUVGc05hPzZpdTw+
YyR7Mk9AaTdzPmwxPzFuQ1Ywb2ZrNDApSz1YP3k1I3I+dQp6JGR+e0NEWjJ1O0VwTm02eDsmQXIj
KSlkWkJYajUpYl87K0plZ0Y3Mz17cDhgTyo9PT84OztoQEBGflJucWNCKEEKejNNMV9jNXVLd21J
VUswfEQtUyhAVlJ7O19oSDlBOCk4d3dybmlEfCZoYSYteylqNFNHPmdnSks+NUUoeDxWRDtFCnph
TlRDVzRGaURwSi1xdXBmbmVrKmVXI3h9OS0/YHk5YnZsLUQ5aHReRHYzZkxpOWVReWVnK1V9QkxF
MFlCUzNjNgp6dHQtKyoyYH4oYTN7Vm9TcClEd0Qqb2VqSi12VjEyKEohckAlU2ZoJTdoUHhmcHkm
TDQxT3B5OUZeMGJ2QHh4WkkKejlPaE8zTzE4ZmJNXyY4YEUqKkZZUiExNVI/VnJIaWNXbEooe2Bl
VSgxKzAqfksxSHgmM0J0PUgtWndMZXpOUW5ICno/Q1ReZDhQYThwQm4hV3VleWRgaipZZTQpQT9a
N09vQFFqXzdveDB3OE0xUW88clppMj16VEkxUHxTdUBudG1hRgp6eiFpWmNAcEgrKUVuVigrbCNS
aTNYNFdrTDs5UDRmVyhnM0lRPE9PO3BydFB6UG12ajVxQlUrPnZJKGVKTDdGJjwKenNLY3l2T0pJ
R2xFR3JGcGNGVmokOV8rI21DPTleQ3ArbG5vcW5HOzh6VzBKfkA8eExyMU9RISNuZTFAZ3t3ezNV
CnopUUV8eElkbC1zPWVHNXQ7IXYlWVYjK2A2Zm5oRzcmR25Oe0NQbn5vOFpwbD4lO2coayUmKFA7
Zik9djxIMz8pdQp6cTRPUmFMcV84d1NvNTt1R1pQSClaajFjJFJyTGt2PktfYnNKXmROPkdJQSpK
PF5fT3Z8TDhSKDFTb2c9NSZpeCsKel58eUhkN0A5X0daTFJEPFdub3VyfDlKb3FCbWlqTkQ7Tk5g
PWlJdEg0UFg5NXpVQ1IjdH1BXmZyPSRqcit1bm1MCnp2Sj5PfHckeEtKIWFwflQpPytVYjgjb3pI
Tz1UKWFwQipkdktiVWpZVjl6aFZFJHNPLXJAZEkheEVNUWp7Zn10WAp6Q2xMQE8qdkxBWW9jSGRa
b3lJYChOc1JaajUhaSYxRChnfT97fXo1TmYkcjtwTFh0bjVtTzwzTngqbW05SDZxdHYKemlzXihw
TEhMbWIzPTBWS2x+fT1vLV9pUkdsN1J5WG82dm5lKSRiVk9pTjJnOWJuP09sRzZ7TztnJEc0RHc0
ZSNVCnpkQVJ+cFVKMTZjMjFIbGhoS2g3RUdPYEBGTlAtJW9ZbWpDKFZPM3MrWHhAP0J5cHVQaDt1
OD1xVnpVdCF4MVlqdgp6LSNBUGYwUUFyaU1jYGIyN3QkNnJWc2dTUSZPNCNnRnlDeDhUZ048ZHh2
ekdRNFpffSFqJEEtJlpWMlgqPHVEZjMKemlgVXxacTlKLUIwQn5hKCgqRHhLSTl5fWBxP0glYWRY
NlVnMFRoQ19oeWI4eGNucXlpZXF0TkZJKjNIIVBjQFk0CnppclduWGZWWTREbTduK25reCRNaz9Z
eypCO0tIOSNIIU9SYjVuRVA/U1NibEpfdVcmNFVJVClkMiNAaldrPEo1PAp6PSVOTSl8NUVffi16
MmxlaW4/YG9xaHxGUjwoX3dsQl5gfT82e20qVWFxLVpmRipEWXVVMHx5KmpEME9SMi1teX4KejlT
NDRrcm4zX209Oyo7bVpfVVI4RkYjMmQhWVF9OVVWc0oqQyQ0dTZCZHVwSyhzMjxYR0Z2cEN2cXMr
JDdiZit3CnpQVE5jSzdSRyNZZiZhKG5uT3wwZ1Z4cz04JXE7Q1lRYzVBYnZZXmtgP3olfXIkJDA/
VWFxRTZCQ0VIbHd4QWhATwp6e3E9KktFWSNsSGdFSlNLMkBGT048aFohYjZ0TFQoX3x2WDNUcFh+
JG1Rdz1iaFAkeihsej1lUGZpWWhZMU42dTcKemY2Zmp9Q0gocjBiMCp4d2xlaj9pVXRvfWwkR2lf
Qj5nUzt4NXVraC0qJEpENFElPH03K0E8PHhCfVFPeTJqZ2EqCnpWZ2olXlgmNChzV1ZRI1V5aSVD
VVJ0aW43RllsSWd8SXJTVTBicU8jKCZRQUo2filMfVRwQGZwPmlTZSEwTjw7TQp6PlJnUD4lJWJW
PmY0emdgb2V4K3cxRnFXLWFLaXhMdUtSWiFBcHFEa3J8YlhrMn1CVF40WncxIVN6TChkcyM/Q2cK
enFWYipUMH14QHJhNzxDKzIxTDZMQT83QnswUHtRbWtkKCFtUSZOcCh4QmV8TUArIyQ8bX51MFVv
N0M1RzlQS0F8Cno1Rj9sdHo0NUlVMUc7KkJjeDt5d0ZAcHl+P0s0PHl5TklkNThHUCpQcFRhK1Y/
T1V8VnNSYXtqZ2lAZGRKbDVIYQp6O2tOUyNkZ2tJa3NmR0NUMCpgcy1LcUIydz8pKVBRRHBVT29x
V29vYk9PWig/ZktoUXEjZjNGflR2eFFtN1pCMlQKekxfJHB3KTt+YDU5cl51aGBhUyh8TExOTkEt
PUMlSGNDbyF4bTsrb3tzMjV7UzNPYUVxOCF3OzhnfmRyKXA2djlNCnpfMnFDXzxTOXxBbGxAQTwm
bGA4Iz5EWUd4Z1hlb2lJV0coWjBSQTJWZm5peDcoc04ra15vfDVTandVSkc8Nn1BPwp6RD04JHNQ
dWt1dkhqMFM1aXZYWWltaHpRSytqSnp7UHUocSN1YVYmcU5WOVhXN2kxJUUpbmEqWllrMj8kV3Aw
SXAKel4yJSZYZEhndX10SXl3ISpteElpVyZuOE93X2hSdjJ5YXEtMFF+MDxNbiNKeF5PO1Q8TXVf
KDBXZ155NEM2QXZICnotN2debmZXaVd9MldfPGYxWSVSSTFPT0luQkxNaTQ5c3N6MiRZd3xGK0Jj
SX5jcEZoV0pMWVNEe2JvY3NJRVN8NQp6Sko4I0ZTaE5EO3N4QkA7e29YR3x2SGg/WS1AVWdTOFBP
NV57Pk8pNWNpOGFZP3FeVzlXLUFAbnY7WlYyQT95X3MKenZAI2tBVnpSZGIhPFd0b2IwQVRPPEp2
UUlFYFV4JHNLVHNZRnA3WktvbFg9fkVoNmUpMmRtd292I1RZWSl8UGF5CnpCU3xuKmM9KitHKFZJ
NjMlcG1FI2gwSzcyPz1BRUBtak1KfTNQZG5BSWV8MEhPKnI0JGYmaU9jM0pZTEk7Sy1DNgp6azhM
aiNtM0ZSTS0re0dqODtDSjMxb2pLdWVZKTN5SVh9KWxkcmI3Kzd1fUIlMER4UGxUVll2eUg9QH5E
eEAhWnUKekVaSWx2I1Qke3dHYlk/KWN8alVSI31TP0ZoQjM8cFRoJHViNDRNYj4+UWpYfGtPPnMp
QTAjdUVSKE03bE47V1RwCnorTjRIbmRMckNCNjdtWig1Rn09RF9fPzJkNTxgMTtBeHswVEowYStY
MGw/UChkNys7R3BpSilzPFBJbjdrVEVxQQp6MUA5ZXxGOTR4bHRnMXhUYGU4SypOQzUhdTF1JUxN
KFhrN3szQWtsaDh2Z3kwZEh7JGJ0RlF7b1p+dUR7YCZUTFQKejx1XjB0cnV4VmZjbjsmZW1xZk9w
KW5Ze2RORWw1bTBvP1BaT3I5VCRtbVdXZUx3a0YkXzBEeTtafkZeIXQ3JE87CnpEQG9oKEJlTDBN
TXx2QFFAaWdXcE0mKXB2Y0MhLWBlTnFEaDVgez14Qj8/V1pnXz5EZGpGUT9WTk4yfk4hOG83bAp6
cj07P18/N24kSTJ3WVkkXj11O0w/PTBsdGkkUlQ2JT0/YHlGYXlwSD1wYSt6JGZASFpHXm1iRFY/
UkozV1d0bEwKem1TTTtaPFpRVkk+JGsyJEVFcjUjcz1Mc304byZFXkM7aGRQSWktJDhHd0E/OFpz
X1YqT25fZ3EydGpqSCtwI0d1CnohUXVAb3J5OUBNa1U/Rl5JMns+N2JaIXNebWw0anw0VHdpbylY
TmlKbzhsb1NsOUF2P3hfZjApbWVfRX49QXwmJQp6PFFTKmdjVGk/SFR5a3plWDB7RHljUmd7aHVr
RlI+YVdlekpydkgzUzUqPmUpRUk9UkdgbXdNYWRwQ0JFentyQ1QKem5afE85cnM2ekVNRm9OI2h8
cilnMmNxKFlvZ0c0aVNVYHsjUUEzNFlSMDQ4QlAqbHVgR29mUFhFb2RPaFgwfCRVCnpkRmApbXZo
V09kb2tRIWY3dlleNTZQTGs0M3hiPXNhK2VgNHRlS3RtO2BhfXtmfXZxUXpWel5hO2hpNzxIflFT
OQp6PyhWNHo3eV54YVF7eHpGSVN1enZGRU5YX1d8RVNHSj1KU2MobW9UKzBzNy1xPClURm0kUzwj
Xl5SeitwdnxwOG0KenpsPm1DQn4/JURHZjBzXmNvfWU2Rm1GS1RRMDE/PD1pRTVtYk96XklFe2dz
RiFYRD04T0gmTmJBMXViJTl2aVkmCnotK31kYVk9YkVsejlRVWZjYiY5OVl5R24/bzwrZHBtLX09
SUFBfHtFX2VJMSk2UWJhWjJibnEtWkdeM0NETUFHSgp6NWd6aXdBOzZHNFI4XjhvSDhuUDshOE59
KEclQ2A8NEg8eHxjQWJ7bXlgVWR9ZHFfLTlCUWk4MV9SSG87PkU9ZFEKeikxQkh7UUI0M1FEPz5B
V3FgOW5ePk50NCsjS35YJUxpdVU2RnpDN30xOCoxcnRvX099NSh+WlIwfXhZcnFIXnYjCno0QHh2
JD12Sm9VODAxeylvSj5lV3k5fi1hSEY+VUZPZTlsO3laMGhRR2BwKE1oVk9wNDcqMjtsUjJBQnM9
fiVNcQp6OStZdXREMUxkYlc7cX1kQH1jfHVLSit2bEsqJkYqJU1Yd0BOMTY/JV9GY21Can4rKXNT
cT5nUEArJEpuWUxWYjwKeilvSlN4RSFAJHpeSkVJTkJON1pHailfcmR2YzZ4eDZxNkYpSF9VJWNR
bld3QCs1RHZxRTh4bmBSYWN1JSZ+O2A+CnpnMHxJdj9ySD1ZTmtYaztWQGdwWjN3N01QdWx2MnJH
N0kmYl5wc2RpR0MkPFdLTV52XmBVZC1Qe09sPW9ePnZkZQp6NUVOXn5YXlVlMnhqZWpmSFVudmsq
SkpmdmNPdWhuajFOfTUhcDE0eEo/SHcrZDdAaSU3U15VRGxTdlZ0SlYkSXwKekxZTT1SNm9SdkE5
VUxgbEElKjtNbXtFZSg7IU0mRHpoPShLWnU7b0oybSF6Wm5FKnh0ZllteW4pbTtXPEMmS2JFCnpu
LVQycEx1N2haSFpoMjBtVGcpQkN6LX1sRz9yaWphST0hWkRJYkZMZFNLLTJGSkAydXtDO0lgVWZt
eVdId09UJAp6X193RHQwQVR2aHttcU9AeTAzeHJ7P0R8X1czSVVjajdiQGk7YyE0b2JJTW5Xd0oy
d1lhb0BQVVYrZ3MyIzJ9N0cKenpGQ0cwbXF9Qz1XKSlPb2BLfDlHZGQjN31ZYl81cEE+ZkB4JEVs
c0B6aiNDekhlSVNQWWFPbHtlRDt3JklDWDNnCnpAQll2fF98bVZxRTMrVC1mcmMwZkV0V31jN3VN
RCFxNV8mMUpLNlNFUzVibUxLdl5NQih7bH0pZlNhdiQ8WDZfQgp6dXgycVdWcTA4anVRcXBvQSZz
NndsVjRTS1V5OWVSJFYzKU1ObHh1cDF3NVd2VHhlOz1uRzB0ekhaZHMqaUxCLXIKeis2UD5DV15X
IyVNTjg1NioxSih2OzFvUkB1ZTJHSkRNRmBya30yczQkZjNQaHtGdVVIcnkmSnIxT3Rka2VtRn40
CnpBLSE+e3hUaCkqJDhWV1ZeR2orYDdsQU9YPCM2dkhWKlhoZXZyUn5eVTlKJXVqUnp6dzgtcmtx
ezxkIVY/VTF8PQp6ZGJNbXIxMlFZfT5BaCV6QUFwQz0ze0NubEdVSjBaYXFic14zJV5QUmZhP2tj
LVlAYEleMF99cW9JbE4zZlpYP0EKempgMiZmUl83TV4lez8lPEp3b1drV0UhKFBzdFd1c2dNI1Ex
Nm9uLSMxQ2haZGAxKCk1WV8jS3RVbkBnWnNhMTNtCnpEcWdlLU9TaXJZd2x2bV4qOXJofmUhJEZW
N24lPH4xTlY0O2R+el5rbnI8Ym4hN35QYmJLZ3NGJnhHO3FYQ0p8cQp6Y2w8eH0/KTFFVXV8SHlW
Yk81NipYR0k7c3lpajAqa1NEKkZYIXB4NiVlNHk1JXhvMFpINm8rMTd6V2k5RXR1MlEKejM4PHRP
YmUkJUtAKkRIbWYtMlA0MU8jIVJtb0IkJntyOGozS35pNlhCPFQ2SGRsQ25hQUk3OzBCKCVZUlNR
PWl4CnozQlB7NjFpcmtMJGgrbE10Z2crYFhJLWI8YykjM1Z6dktKPnh8KVdCc1RUKTloX2M8dEBK
Wjc0WnA4ISQhP2tEdwp6WTRFaUswMEgmMWJvVHw/e1pidllxSHpaU0smWHElemtuYTY5MUFpUkhf
fmF4azFsP1Q8XjhaPENwMHchVXVWQ1AKeiVxNUJEQUxTZUNrK1l+bz5gJHlMKEkodn0wSEFOJmdK
RUk7aFBsb2lmenY8d0VhWlk5VVgwZnIzQWtZWlEyWU5yCnpBQFNmJFpVbisqelhyOSZLUHIzOTRn
RiY8YmBKeFlXSDRFK1Zre01PQWkjNztHPmp5R2gpKHJrdyZedStwVitUYAp6eCYmTCtxYEBESXA9
IW1nU2lJcGFGcXN7PUl7UUMpR2x+d2J6MEY2NjNBfkRNKDV1YEdiQEF9elVtRmhaSUV4cDUKemNN
NyNqJWtoKGd5V3E7b3FqdilIX1UzbV9WVm9HaSV1dGBFPUBNQElnOGwkeXNWMzJKNkYyb050dn5e
M2YxQUA0CnoqVX5BNEBwMmhgJl5oSTxBazxmN19nP2AtYUUoMyYkaTUrTit6TWlPQSk+XkdfTU9E
dXkkM045Nz10Nnp0V0ROXwp6PzFmQFhKNjZLRFkhajljMEYpX1gqJXNRXmN7fUcwO094T0ooU1RE
YyF4ZXdyYms5YyQ9OXNBRmxLfil4JXE2I3cKejhMJCt3UCo2d24pbCpNPUVjKmFTMG5vayFxfElh
RDVYYHdZMClVMUQ+bkhKRUxvaS0lTTt9NUgpQVh9KSVRcDZGCnpSUypFPUg8WnpETjElYGt4ZEFE
bVYmeys+NlNLN0w9NlpKcFBKUkVBeFMwVzxAKU4lazQxajlePFJsKkAoQCN8Swp6NWRjaWohUHdq
ZHhZOGhIV1hMN30xQXk1aVlUV3Q4QHhUY2xsd2MoTGFPKEpyQGNGMGtGWWhWQUtmRSY9S0RyS2QK
ej4rZVNPJUcqVGVwejh3d2FWTGwjJll8bjxaVmFAWEFwNn1mZ01oKldtX0c2aV9gYCFRO29SOVZl
RThsRTt9aUVpCnpnajZobXpzcUw4V0xGI0ElI2VFNWIrbGlsX2lDMSRlc1NydndzSz9hdF88WHBA
TWpnM2lQR08+IUlTMCo5JmpiUQp6fE1DTCo3aTlOYyZGe19vb1NnRytQUDI9ZV8+c081P0F2KTlk
dFcoPF9MYyFVZjF0NDFqK2A8KG5MajJtXzR1WHoKenhvRFlMMG1zX2dWUT9DO3B8TURHPSF4cGB8
RnRgISV4T0cjVmdNdDlaWlY9PXF5OXAzbExHS2ZCaHI2VnVINTcyCnooSV8kLUh6Qj14SWhuME5q
cGlwJXt2PCNVRXhpM2ZfJTN6STRPO1QtJFpuYGQtMW5udyU2XjJlIXxSOGUqTUJUdAp6e30yZztQ
YDBpWFdvenJpYDAhKkNwcnY7VGxiblAhKlJ2fmQ8X0RpdV9VY3NAPElNI0MjVUp8KDBmNmxNR2lw
Z2IKemt7c15pWXNQV2RtTDVAMkJeNENWWVBTbXpVQGdGSHhBPFJeanM+YHpfRzdafEVaKHNJazNl
dzB0cTVRS0w9aWxHCnp2Kyh8eEgqTiYzTkNkQlIyPyZrZEJqYEIhRG5gMV9YKldzVHRJY2pqZkJQ
X2dfcX5fSlQqNHBqZWc7YzZ5cGk1PAp6Qyt0VXhNJktVbCQ5VmZpMWJyU3wqS2VJKnNmJEp2YmlK
Yn0/ZyF2ezF5X0MlWTUjZ1N2JEI8Sm0hdCVwZz1sb0wKemNAUnF5SlMtJWpTSyZ4WitHbTJQcCNI
WFk0NyY0SFVLM3RAZFR3XnUjSzZwYCpOME9fJlNURkBoaklNaThCQzElCnpNRjVEMDdwSWRneT1a
azJHSyR6YTckRHNjIVR3V09JNlNacDEkNnojTmtmK3V4VWgwQGZqcXVGWCRrUHl3KktCfQp6dl5F
V0UldVo1fE5lQ2Ahe0pCdj9kSmZDT1RFKiRja2hBPDJ4R0VZJVU1RE9XNkRgRG1naXY1aVN1MnFs
NTRgTz8KejBzdCllNCYqR1U3dVZEdkRVQ0BYdz8hOGxvd3VpSjVXYjt0U15GI1pvfSZ+TT4rNFhs
UDZoeVZkOHo8I3JnZkFRCnpEZ283OEh2enpkMzstTjI8UzQrKzJMU21XezxTYXhCMFNrUTU+dG9T
REBpXnd7VzVoODAyNU97UnUtaGZMZWFsWAp6KUJGcXEzS091e1ozc15kcVVZZVZTaCorel94KVNC
c0VBdjw9Xm02VVVXPm1CME9GVG5hPEJ+LTQ/UGRoJSRPTGMKenEwaCMkNSh3O257eTRWKDtTNHQx
d2dMfmx4YFd0PkhTdX4maVckJnhOJSNTem45ZXJWSWteJlRlZmU1UVlXOyQ7CnpOVilWaXI9bDkh
NipXcSZlfk9UdncyJnxfUH5WPl9nczBjO1J+WmdXZWw1e291eTlSKz0mV1M1MiRuWld3KG8oTAp6
NGBjODQxOEJlMDMkSXNMZzVxb1dyUmk5X3NzPjlwKVdlPT5MUW1Idk9wRmViclZycDtZWl9qLWEw
fCt9K3lQR3sKemZAeHc3d2RMN3BzTGx9O3FBSGxPQFhyJFVLWXdhfk9pKzFwR3h2UnpsbnpZZFUh
eGZrblV8M3NWZ1AyRmNDWWhSCnotd0g9emctOEBqKEQ9JGRPWkV3e0tuRipzO08qKWMmdXMpc0ln
TkdrT1FqfGIzQ3VCKV83N2wrdzc+QjU+dnwxYAp6aUE3WHhzNiE+T2ZOJnRKOUZOPz5qdjNDYE9K
aWIrbU5lVkJEeyVIbF9iT2poaS1OOHo3dlAyZ0s7fU9fSXV7Qj8KelUyKnkhbGlQZUxWOEYjYmhI
PGlnYGlGJChIJiZGdm9iRG5Ka1E0eHJ3Wjh4YXAwaUgkdVY/M1ROUTtmKGAoTGpgCnpXbXlKbCox
YTdpYip+MmkkZGBoZmQycSNHSD9mVXFGZW9BY04pS09nOTZYY21jbFpBcDdjV2lXXlk/IWRmQUB2
fAp6ZnRETWY+PzBiYW4+KX1BX1lmX3RmWCt7IzQrQURlMkkzSXtOJUl2ckdQODtQKkNSY0BQITNV
RSZpK3ArYz0zSXUKejZ6VVk4ejJmJjBLRFRoJWFINSRJNlohV2JqVVJUO3FXUSFIeSFRTWE5TiV7
dUxqIVpkPmY9THFXZilPaFJmdl5hCnptIWZXRTRZQ1dlTk8/cnlDdUhkRj9aNSMyTVo8MSU0Y1BH
WHV+akkoe1hMQGojc28xKXA1azByJHNtdm1IRW51Jgp6K0p+T2phcm40JipDZmE4Kn51bTt0PD1R
N0paRUN+QkJIflcjTmJ3Yi1BSkhOdT5LOU89TS1yOTlHYkhhTkNFYDsKenVDVyZQYlB2SGxGZHwt
ZVJwY1lQekRudU9mUTBZeVhRJGZ3O1VBbFUhRUIwT0o5YkMtTCNXPFJpfFRiWDJuUXBZCnozQlZ5
aEV+aGArR0FiSjNOT1FmWHtiIz1hUUR0U19vQi1mX3wwNzRGTk5rZnFZNU5WbTZIdUBMdTdlSzMq
d3JnMQp6MEopczdGUkdMVS1lZ0UlMEJqT2lvb1NlRUpCT2EqdWkoMzFzS2JeRzEqbGx7UnN3KUVj
enBuWEghfWo+TnB6bG0KempaQT9IcSl8ZTBXSSh4cmNCYylVJjMqWEl7b0NQNFBzMms4VXFuU2Mx
Q1NlUCE0WEZUSm1hSTc/KGFybSZZZUstCno2Tk8lOTRqfU97UUAtP3FWJm9BMyp3WnVPREBhLShV
KjhaKlA0aTw1Mj1yQkhgazJtcVFMbjl6aDNIPzQmSHRfIwp6Sjt1IX5oPFQ1OV9Ua193MmVFKDBM
MG1sM0JENmpHXmY7I31HdU1HNz4qfj9DWlpUY1VRZGtIcWNyLVEtaD4+JlAKelcwPlRJRTFqMiFu
R0l1aismfT1aOU5Ba3dLKn1PMjlEdzZRb2RmaXAjWkBffEQkVF8zQEVwYmxYVF9qZFNAWC1zCnpD
NUROX3BnSHBSTihafTc1eGVYY2AyZUUma0IrJWA8RElhJEdLND1NZSFDPnlaUDAtTTB9azBNPyZl
TWUjLV8jUgp6KDw9KGUxZ01tVS1Ld2pUSzQmQz5fZjU9VnFIU1FsQFVhTyUwOHEyQjdCJVpAMU9y
ZWJRWElMTW5EcFp1MFJYU1oKem1+VWpqY2pEVlRBMypJMnElUkc9SVJMPSU/dVNwJktXbF55QiR8
OUcpTCpVb1ErKSEybmcrTDl3emJQa1VANlJsCnotRD1SWkttV15Wbj5eQ1dBY2IrfVBmeUBPWj8p
aUt8NSReSG0zUDA2Mz9QMHYrKyk0eUlRMUdQaHIxRiZnVXJXeAp6I141V3orbFFCKllyPFJLX2VP
bUU0XlBwe0E/VGZ1QStIQkIxSEc3PTchJTxmV3g0MnRPdG0xQmZJIygjNll5bzEKejUmZkBSQngp
VGxyfEIxTGBndkpsUHRwQjFsQGwtKHFxeGooJFQ/amtfJTF0USh7M34hSkJRc2I/IW1GJE09eyh4
CnpxaThjOCkoVFdDRjIlQnFPSGo5WjV3aTJNI1FCR1Y7VykxNz91ZkBiaX5nUWdqMUcyVVgyeUBG
ajtANCM7fEYwagp6JFN0P0htO2JDNz1QbmBMUEomRX5LcHBLWiNVeVMxcUY/fSQ2YkF0TV5FVTVD
IzZLJW9tS2R5SngxO2oqeDYqVTcKekZzMWFHVU9RZHc5P0Jia1p8WW4tIW19Um5JRDJ0OXZnXnU0
Z0EpfWp4YkE9JSZGSUJtZ25jMX1UPnw8TzRpTnk8CnpaQ3IjITNJTTMoeiZ0anN0OFdfMyNBdk1D
JmZHZ1o7NSsmNGR6NyFLMEJ+Sj4wZDUhb3F9X0prYkVOST5rI2FMLQp6NFgrQmxtaFVlK05ETVF4
enxnU1ZSPj1ePTt4fSE7bC1+JU9TJkV3ZzNKfT1Sb1d1WipCWVdaaTl7U0VJbCZgb0cKejwmQiRS
Yy07VSV4Zz5Qc018enE/WGZRQjBFdGhPNnpyZlI2Z1dlIzFeUFEqQS1SWntIZXRrZGdgcnhPT2Rt
d0xvCno8R3F2UFdDamMlI0xYVE9zNlhQdTE2QTxGQmg3WlYmPzN5T3N6cktIdX4+LW4mdXc4TE9m
MU5gVHlGcT04bFBTeAp6PXxnLThFQ1dhbEI5aXQhNXZKbndSVzlnWlpOR0NyX1A/K2o3ZnhKNE5h
PkdhQ1M4QDQ9Um1gbiNhT3pqMGFYbloKel5jcmpYdTs+WE8/QmombnBpYmo0QVJHeHxZXldjLVVD
byVDOE9OV0ZFUWV8Qk1gMUNCPDYke1Q5dXlOKHc1fSVQCnp2QURwPzM/USFrZERQaEtnIypNQyFs
R2RTZjdpaUhSPTM9ZHIwRytIez91IzVnNiNgbjshR1F2ZTw4VmwtfH1pPwp6KW8/NjdzeWkxNlZ7
T0M0NCY4ellCcHt2Z207cXElcmRyZ2t1TkdqKW5eNzVLLWJDOEpwSUQ4QnUzNX1HR35oZSsKenpv
YEo9bnY7UVVvQyl5ZUA4NCR9cDF3QyRvKTZMQUZCO1czMGJ9d2dhSkJZLVhiNTRDQTYxbzN7UDxf
QCN1dDhnCnozRXJAbyV0a3szMEJ8fklpMEVHTF9UUz5aJip0RmA/fGNWSjhuejFoY0t1PCVSR1Vl
MzUjb3gkeys4bit3VS1mRwp6eT1DP15KNmNiNTtQTHhrTD1tMGVMeCoyUVBFbk98P2QzfXZfVzly
KjkpeCNkTFVhbV92akFZZUxvbzMqZHdNIUAKenQ4M3hOJURNYnU+ZGdzI0dTMWFqO1UmRzZYIW9a
T2UlKWh7cHUobHhKVmtlUTRyaDteIVQjclY7XjI8RzckKnVJCnpROVN1Zl5JNitCdFgrKThfNFVY
cCVvZjdOX2Zian14PVVWPyUyWjxhJW1saklGSk59RTZNc0QxaTBGIXMhKWd4NAp6MXpNN25WVile
JGVIfEZZUk54fEQ0VTctTC1GaXdCV1ZaUDslZDFlYld9e3t7JXVvQUdlOVlsbHxKVzQ5Mj57cl4K
ejdiVi1oYm5fQ1ZtKnREY1ZsYFB6ODFFZyZXYmNHTHtUSTUzZk9hbj4wKVF+O0hgU25pTHA1RVd1
O0t0VGlsTVV5CnprTSthbmxkRCZ3R2ledXg9WU9KeDBYWUoyNjlUfHtmQSQ1X3h0e3hEMXpCPHZN
Oy16YWx7N3pxb0QtbGR2ZXtYTAp6MjFpaTR4RUw/fVpYTiNrezZZTmspS2JYbiVPRmV1bD9+WF4o
JElHQjI9MXZraGNFci1keSF2dmAheTUtVUNVK14KekpwfGlOemxRT2lPV0k8VHxCPDV0RkZtI3NK
Nn4rWmRxNENKZUNiIWVyKzRIakxCZ1IoTGhxWkpBYGxvTmlzeyQxCnpsNSkzbzhhd2A2Km9relcm
WVdDaSg/VnB3JEpIfCVNSj1VQl8+bkZuXmIwQE1eI3wxWEZ+c3kqaGg0MGt2Q2JZRwp6ZVIoZmxg
e041fUo1UlF+TV41Nzh1akNjR1BfdylXRHtmZ3YwOGo+cCVPTnllR2BpNHooKTl1fiV6d31DXlBz
UTAKejY9TVZFQHhxQnBfP0NWYVcqcX5OXng5bm9nSmk4UXNwSTQlO3E7c0JaaEBPdmdefXFBLSNH
JCtmYCYjRUU/cEB7CnowQ1lgZlF1ellKM3VIUkRJfGVZXys3RSs4NChYTHxTcWYpPHJlRllrS2N8
UD84MHtMPEQqSUF0ZjhIMVhtZmtgRAp6dSZ6bn4wQl90YmR9YFc8IV5pdk5rUlRUak99OEVKSCQ5
fEEwZDcoTmM7Qzw4Vm1qSHJMeVMkVEZYIW8pYWlMZWMKejA3dkE0Mz1hSDtoZWxDZWtjUCh8dGIl
I3cyJWMlSyNZPiR2YU1+byV3OE4tfDFnKFZKITVHcm9wVTFhOCpONyRDCnotVVh8SmRqTVlOc0lW
KHNueUh+cWJlYEZSeHlkMHBtYU0kVCRLanB6O25Ed281PD4mQ3hiT0sjYW0oQV51aU91WAp6MV41
Ryk5VHxiJkp1UHkoSERUN1l0JDNuUVNPemc4TnN1ZVEwR1kpbHZfQF5YZEhfaDtsN3Z9KVAwZGI+
YHl2dWUKemdNfkJ3M0ByMntEQTc1eD9HSztDWWZuQ2w8R1QpSHE8PTxieEpiKHxwcm9jNCVRcjdZ
SnlIRjw7I0AoQUJqSmIkCnohN1glKzdyZyR1cCZYRyYycVN+TjgwPFdPOXBfM2dRflIkbDheWVFJ
cmtHQ0NeTTUjT1d7fjcyQXFpfGlXZU1DMQp6eGNMO2txWFBzMFJgRDlRYkV7YWw1amkhck4pQUFy
P2s3OWBSUWN5KTgjI0Zpeyl0KWZ6TF53NTwqbXpMJnYxJU0KekgkRjZqKGU4ME11ZihYa29rPGBk
T2NjNlN0OFQ0QlJiI1I2N3d+NFlUWDMjdjdfRHQlQkRCZG5BcUoyUDBNfWcpCnphS2l3PXt4NSZu
WHhWd3tzQTFOTj0qbHxUanQ7NCV6RGl2SDNrQ28yYzxESkdEem5YYUBMbUk0IyRpczwjZ2k4cwp6
YUEyPyE4SUd1NjAtUExWRzt1YDAwWig1Q0s2bCRGLXRfTGpmaTFIUHVSajNEbXhzSWo0emB+YCYt
bnZubS0qITsKejY2IWdVRFJCTiFHYW1jeWJ9VXxBTDhpYmkoc1dHUWdIUiZee3V3dmZlZEMxZ3sm
QEBfP2hnUmVGZHk2aD40aWx8CnolZ1lyWnNsVkt9cD9wNiFVJH5gKGQ8MlJVKDdAX2syIXwyRnRy
dX4wYCE0S3o/cSMlYEpgWmt1I1FLaHZYQ35TOQp6aSZ4aHYrUClrUHgtUlUrUn5ORFZkWnQ9JmlM
LVlSdVoyPk1wTDV8XmMpWVdkPXhzVE05VCYxT1NvbT9fMW1xfHwKeitfUWZmMV5edVo3YFFQXjBL
K0VeKTR4OGcyI2ZgPVgzSkombVhzaEkzTUJ9N0RnYT1pNHMlUGdMbCtSYClMciU9Cno8aFpjdGpA
ODErSF98JnZqQWNlaz1VcXRpc3x0YjdXOT1MMj1vJUlaJn04LT8oU0crST0pIzAyMz00LWQ0VD1m
Uwp6XnBNXkp4Y0xDVWBvOU9OWkk1cDZHN085KE12RnFxJnlsPFM9JHdFO19Ablk0WEZnPikyPj9E
Wmgyb3NCS3lXVXoKemU1UVF+UExHJHRYX3NVV0ZjfTBiaW9sSDlpI3plTGNoKGBqYmR8RXVVb1Nf
WGVsditLTGNKR2BWN1Qqfk5Eb3lQCno0QnUwVyY1Q0Qje3Z2azJhdFItfl9ydikzZUxzTzU3TDw9
QTUpOHBSSDckVDNEbj9yQW9xcFF0Zj9FMShhWE9Kdgp6UjBzI0JNO21VeT9ZVG5relc3TkY7bFlL
RmNMV3k/OW1uP0h7dDBMSDlMNnYkWDB3OFM0emY7NFlmNytVPmsyR2gKelJnMyhSZTQqdlRwKWVB
MS1zTE5HblA8dT8xfCluPjk+aSpmalRzVEtrMkpDZXh1YktfPkFtPkZhV2xGeUtPezIlCnpFd0x4
aio0Rz89dXwhfUhxdihtWWRuZCoqYVBvK3BWX31lIWdlLU9rWVBXNUxKPjRaMytkXzd+PmEjSWcl
JFZzTwp6IVJWT3xBQEUlQm5wMERWO2BJJmFCaDVjYypVS2Emb3AxYDxwU1BHOD9RWCM0SCNlWkxF
S0Fle2EwOFJrbU88Pj4Keilkb1hSOXRAJlk3eSpGMD9LQTx2Q3pVO0BzbGVBJjVgNG58ITFTbGlF
WFArTDlXQFMzVEl1Y35SI3lxUl8jJiRGCnoxNEp8YztKPChgZj1CUTVwdGg5OU9WYWB7JTk/Nz1L
clF4PClgMShQKmVzRzxHKHNrVSF4WTg7X29nVVR1Vig7SQp6WDUhdEQlP1NWTzFpSEBjJDlSNyQ8
bldBcT45fUloPE0hZ0dVO1E7RU40PERwPU16fS1NdDBFN0t2aVd5dU9CYEYKemZ1UHFYU2I/NGYj
elJWU2soNGROMXlAMHlYYWFJJEh6XlNhMWx3Uj1OJnc/TW9uK1ZsOEhiK1Jmcn1AYSFBXjRpCnpx
PmJiRGQxK1god2pONzJIbGxpSWw/WTM1K0A4SnBhWmkzP1B5NThwRnorfWQjcjRNfm1XQSVDalJl
Y2RMUWo4QQp6YGNaeilLQT9jI2hvJj84QGF2O3lUcnxINjdHP20rZzBFKXpYXio4T0dYWCt5aG50
ISgrMH4pZ3t7fl9JcnshZCQKentgUEkrSUhhaWwtYXc9MmBxeDxLMmFtUEQtOUlqKExuNDdJLUdO
QUUySy1yPkZuZEY/cVB2WFV1UmRxPyFGMnomCnp3PktncStvPUdPMTs/S19qRT8/VW41IzsocHtT
OUdHZGx2VWtBRit+d3dlbGpUP0lpbWJUKGw2bENPM2VNeUcxbgp6MFZ0SWY1KH4oYzgtUXhgVWsz
cDZJT0xEd04xeWQkZDVzSkp5bTRsciRyIzFTaUF3QWxaQThSS2N3JmA9a195STUKelNXXzxILXVH
Nkw/WnNWa1V2RWNYOyRgQWc7Zl88ZztyR25NWEE5N0tPbkp7OUpkYT1CX1d+TU1TTDVMJGAtdkhf
CnowNHdGQit7RDQtZz5UdnwzTytRYW9VWEkxbiEpQ3YjZ21xb1AwWlZSQlg1bmVAaX1tdzBTb2FN
UFZSZ1NkO2F1MQp6UFZEM3kyKFAlQiFqbiVRc2pSUVNpWT8zMHUmeDFfSVQ/YlUyS18tclljSkg3
JVB7e1hLeGFRZ1hrUSteV2hXcVUKemw5bz4rRSRrcFcrREA4Wjk/Qll6a30ha25ZQ0RNXj96NXBx
eCpiK2lTUUJhfjE9VXZ7dm1kfnF1bUwmYUdsdEdYCnpodjxJSFhid09JdS13V3IpTms3P2FgS2I0
ZWV6Pip7PEEpRz9MSF5Nek4kanREbjhfQTZGbitgIUxJeyplY31LeAp6NC1uV25uJnpfTXVKPGUj
d214P1VuaS16S3U3X1ZtJG1OMmVxRkQzVWdoITQlNSR0LTNJfEF7Ni1uOzxkVEo+TUEKejgzIWxz
MDU/MSFpSCVqMmt6SHcoPUsofUAwS2tudT1yMkdRPj5EMm87a01OaGR8Rz5Xdkg8RHNTJmIzJmR2
a0dVCnpkSTwoWGgyWlFgJkpfczc0RVhUdio/N35NQkR7VkhMOCYkbCN7QENoZEo2cTVDJj1kMG5G
MXVaOTJOTX1rRGtXZgp6UzE7a3l8TWg4bkBJVVdeSn54MGhPbntnfFY5cmFBcWZpclZecjFKNzQ/
RDZsO0d7bmhFNTJiSFlrUXQzPFZTem8KejE/KyFqSk43XlFHfV9MemlgIXc2ZU5EKEtQUkVqVU9O
OEs7RUdtSis9QDNHJWhSRWhgaEp+TiUpPDBoXzdKM0pQCnpvUCZoa1g9aVAzZ08lMlokIU80PWlV
fkNoa1BDXiUyVjN4OHVWJGg+dkspMyhXRkZtNSRvTmFhMDlmRT5NQEc/cAp6PXhCVmRBMldieDFR
amI5UVB4OzV6fkQ7UmU9TUxRJjN6YT8teV8wJm53YEw9MURRalQheXltNTxASyg5U05vNnIKekt6
fDlETWRjVHxhTSN9fjZVV0tTPmN9NkRwaz8xQlNjLUVZUmdgRXUyIyszbkQla25RaGpGdDVLLXcr
JHtsd0pYCnp8NEFgSmpxTWsqdCkhQS1yVDJkJWZkTHA0Nlg0JFdOQWElUEMzcGsjU0NFWkJBUzlW
XyR5MTU7VT9wYWUkd1IpOAp6cEtpaWUtJitvc15HYVFUfEkkcV45cXprdTZsMS1ZTTlIdDlpO349
T1lJPHgyS2x8ITA7aGhXUGhrTG5WQERBdUoKejIzaDwyPVg/bkowc2A/M3NgZ2hfMXEoZTN6ZGg0
QVo8X0p6YXFNaUBeWDhpeTUpUW9zZXxgP2Zja2FhOGJXR092CnpeYnUhPDVtZ1A8U2YrVUxhfCZm
b0tISyhVNzs0aCFGNmZebjNCMnxYJEZ1MnR4R3slPUg5Z1VLcnVQbjtPX2NKZwp6aiNXdWJOWWFI
Sl5faHpOKTkjNXJlQ0R9NGpHJDVtMDRXcyFBaGwwYHVMN1o0QDQxVEBZO0p7XyRKNDJybzZjPj8K
enRzOVlEUVhwKmtkQzVQQjMle3VVcn1mO3Z1Tm5TbnVqcE03MkxMKUkrSntLITslVXV4ZDtDMmxn
RnJtUSRiKWlnCnptbFdXWkhgRTlkV3ZwdXFKQWItTWJRJl9HcndRZSRSKW1LN1V3SjRyQGFvZ0o9
Pmd5azVCe3NFclRhbHF5c3h6Swp6bUJgS2xtJHgjPz5IJmJCYCtZSGRfLSElI15McV5OYHNlU0RG
RlojRm08PEdEUihQVXpfI2BLQ2lee1FhKD8mU2MKekdJMyp+MHM2fmp6fShhQGRNX050XmhsNFVM
M3JhPl93bTxHOzVRR3ZofUV8JiE0TE5BQm43fkJieF50NEYjPkB3CnpmfVd0RG5YIWx4bVEodWdh
aiFhT21KMyN7a0FHYnBmRmsxX0dSK1U1XzJkYTBlKEAjamBRdVg8Pj5MNiFVN0swewp6c2UtYT5x
V0FTIXhwZ0g8cyFMIWEwU3lJJFZsPWhrM2J3cmRlWjV1X2p5JCZNTnpsP3JCZUZBKEhOS1RneSQj
eUwKejNyJmE8cVklKE5oZ2tUbVgjMGpJQHhfPChGbCNEKyNTbCVmXzROXmVSSmo0WHYzNzVJP0dU
d3tLR30+QG9iejA7Cnp3RFFpYXUjeXJIR1lhUn57Xyk0R0BoQUh4KDAhcylPWUc1dm9ZUXtgYSR1
blNUZTdwfGRJKio2QV5BR1JROEV5Uwp6VkRvSj9TaGx1UTlSSTY3K2xBaXF7bHFMU1ZzPUtYcmIz
YVNEMXRyRC1YOSkwXmZHUkcwSiFyZlRhRTMjMk1ra2cKelhmMGhCMWhVOXA9YkBHZzIjNzRmS3RT
TmNKK31nMWBJcmVGcEwmMyk8Mz5pdio9VCVtVTBEVUZUNX41ZF4wK25sCnpqUlhNb2wxWjJ4Pl9x
cHV7amB3V1QxX2BFRDZVKzU7KDtmeWV8SVpCXnxlcG8hKFpwdFpTa2w4RkdTN3w8RD9HOwp6Z0o+
aylia2pvOFh3T09gJjFDKXlrNVNlM0YtKHAwO0BIYk92SFF0Q3AhdnYyJSsxQ2BfaFRreG5LQFJ9
RVVVKXkKeiVffnM1dktIQzJhOVB2SzhjQCVxdGBNKFImUHoxNUd7e2pKbzdGMGBKUFNWQ19jcmVH
IzU0QUU+OXZYRCM/PmZ9CnpsKjlueSZuKkBTPVF9PDR1bCtAYyopbHw8bjF0fE9Ec3c7PUJJR2Uo
MUx2QzFlKTFBTXdyal44clMrRm5vUjd3Qgp6WVh4WTwpTHNXVjI5Ukt+KUJCZVdjZmRSQ2teMmtr
UWxyS0MmVUM+ej9TezNZNiFPS15vd0lKIWhkUlQtRERIZWAKekJXamx3PEozIU1hcXgrd3UtTUo9
NXdpSlFTMCYzKEVDVDxmcFdocEdjVSspJUpoKyh3ITEzfHQzZTA7P2p2NTk+CnpXeTRaYD00b2s9
b08xaFAxSUp2d1VVKSgjWStHZihnSX1eP0hZdThFTlAzYHBqXiEjVkdiJFQ1cHxwT2pxTEZXdQp6
QTBVMVpCMHIkQDZveHZeRGN5aE0tP2lBU0J5Pn1GX3spIUNacUFQJT98VGtRKjBVKXYxLS1EdSFa
REhVNmA+bSsKemleX3VfRURrZWxYKlFXc1VkSilYVVZIfFJTKUFFQDI+WUxYTXRKaGEyZDcxJlch
QHsjNmUrNkFDKT5VZSVXcWtNCnooblYhKnAkWSpwJERXfUdhIVRrOz4wJlg2QDNZWGBOeClvKyEx
SkZxTEZufmVmdVE5Klh6S3gyITJzeWtfbnI7bgp6ODs2VUxwUE1FR0heSzktaT5HU15LJDA1IUg7
QyVLKTZjJHluT1Y2OXprMi1QVTxnJCE3TmMoTTVgXmZuYTJQN2IKejY/Wnx6d2Z7KVoxaUg9LUQ1
aV5FXyQ5ZzhpRzxXZD84KGtyK2kxYExCeW5iSitea0A4KEJaSik5VW9XPy0/JHNrCnplUSRAajdi
ZGw0ZkJ+U2tOJl43em5Rd2VqM2U5JW9XKE5TPyh3RzBZV0VkRk14P3lQPkwkaWYhQnc5Mn58Q3RU
PQp6cTgyUXowVXI3Zmh4VTxxaG52RkIjTSZ5aVdEeXB2Yz59QnRFfXktVGVnTkt0SEEmaWs4aHNh
IVZRUlFyN0dsTTIKengwNU13Y0hlMHteMzZZQyZETiEmZDVHMXshV2x9fjEkVktEaDNHRkxGTTU7
QkJ5UmZFb0Jza2ZBWDl1YHUlbnI1CnpgfGE1Q3I+RD9LY0pBeVBuTT13ViVGZWY7ZGcmc3B6STY+
MkV2clIoUFAkeG44JnN6bTghcSFKWUt2MWZ7dzFmUgp6YS03fkZKb2sxSHdpODBuQXYtbmFDQW4+
eGRnNUE0e2M9Si1wOXhzKDV9ckJ8I2UtKWBRQyh+az0xRHheTXtWezIKelZWfG9oemo5cHdndW9B
LUpBKlNqX1E2dWYle3RfaVo4ZUlxWX0rYW5SMkZKUUlQPkVFQWBSTHwzQEwqMU18JStQCnoySWFK
OURHMn09eXItckY2U1FsekorVW5xcGFUfSN4V1I0cDsjX1JMd0hoeWNaI3lPaXJVZV8rNHVzWjNZ
KjhnUQp6cjRZUmZlUF9QJFE3SWJhO2g/SkUtK1h4aD5nSE8xLSs1IzJ6O2JZWmNWcDdaUEJhKTFq
RzlxaURCOzFjcSMtWmMKejFYJkA7MTApai1RQTUmaDJ0bV5fUGBQfDdeMitNc1NOMkExbnpvVzMm
clNAWnBPfUR+e3h6dDUtMDZXJEw8Um5jCnpva1p0OF58ZW91RGV6dEJPQFlNU055O1RLVDsoMCU0
ez9+JDQ5YHFJUFZMJTx5KElNSzQ7O2JSJj5ZbVIqSjxlbgp6KChvbGpAbUhhN0xuOF8raW9+fXlo
dSZyTGI+ZElkTldIQS0mQkNVYUpAPkxCJiV6bSthbzJzNFU/V05SXihNZlQKelhuKns1KE1GN0h7
JV5seCMhKmlOdlJ3d3pwazwqdjBEV1BRPzdBYEcmYCUlNl5jK0VFO1VhbC13P1c+QUV6T1AlCnpj
VztFJVk3eCY+MG82YzJJZWJuPFpAKU4teztzS3s/IXZtYD1jSXt8UUNNPWI7SCltdzNCUXpwYXE7
XnZpQjNsSwp6dDRjN0BGXkh9YDdoclNROy04VVpSdn1mRUtfZERsMXR5c1JhNUU0VTBCKzdxS3lg
QyVkKy1OX29gS0k4K19Vb20KekFaWkluNE09eE5ffS1UQHUoWnchZ0MkZU1ZKzJJXm9ZdCR4X3pa
NFlBSmNuPClzM2lKeGB9OS05WEFGOV5mejE5Cno5R3V1UUluYXEtMClkZDxPVUdkbk41bFh5SHst
I0JwTC1DfmxSb0B0JihtMUNgT1ZOMGdzeXFoUSt5dlQ5eV5YaAp6JiVaIV9GUUtvc1VqJG5DNlAh
TWZRe1kxNSMke04jWCpwXmRZaFpXVTE8aG5fcEo7fEVMYVA5bXIwNGpgS2ItN2gKekhkKjkyeV5A
XjZSRyY1ZCFhfD0pYDFSZCFecmdwYDQrUWdHbWpOSX5FYig4U2F6Wk1zaEF8ZV9MVlVeMktHaDZS
CnpmeCUzSSEpNF5ocEwhQ09mQEx0Sz1nWkQjRl5EOUJxS1pQU3hfeT1LI3xXXks8WFFwIVhmR0Uy
aTdfdU9vZ0xEdwp6QnpeNkhfOUF5WDg1bn1Ddkl1RWFCKCZrTW1aUGZuMmIyYHtxaDQoVykqJGBY
P0FkbCQ4SlA1UGtebGZzI0pxemMKei19KERMTSheLVF0R0A7U19+QWJwI3dIIyE0M0F6QjBRaEV4
ZillaWtRVT1+fDMoP0JGMjRvampWNl44Vit+V2lDCnp1bW9LfWp7WW98X0JxcURRTjQwMkc3SE1G
ZldkbkcrZF8ySnp7ODZ8ODFCQV47alJtXjJVJWUmang7Q0U5WHh9ZAp6ZWVKaVhVczsyUGtNMUU7
ZkszJHRSc057UiVqRz9ST14lX2lXfUpIVVJxVEVHOE1LfX1rRSFWcFkpVGpOdjx4RkUKejg+KSVv
dVNOWnVkSig/a0UkOSE7UHQ3JlZkIVJjZipfcH0zUElqd0oyKSZhOCRZISQka0d7IXhJWmVOU0Bh
cUlRCnpMSEx0dUJRRUN5RmRIUnxQRGsrM0tqKXlkd3AxPiRqd3VXUGRJdztsTHklS194ZWpDWjQ8
Q1lpWTcofXhIR25PaAp6Z2kqRmgrMiZ0Q1c/SSNmYXhyV3MrNTBiRjQrOEBKRnErUX0hey1mJj1n
RXlsUjN8OWk2aUIwRWFNcU47TnNLRU4Kek4qKXVab3cyJW41R0xne0oxYDI8KDVVUH5OTTNoMzBF
b0lmMm1CWXNPYVBWby08O0tlPlh5RmskRXp7cEs1WkJuCnpSS159SkBSUTJ4dm9sZnJgPT5NVF9p
cmI5bk9sJFE2PGNXJGRvVihhZjRzajxseGV+Ky0kNW1FdiQ+eUpSUmhaRQp6KkQ5SEt1YWhxemNf
QWsrY3Y9dVY3UUM8SkctayNKMSM2TTN6WU1VRzBSOCE9ZjVMTnJKYzE4QF84OykrQEJiOUMKekA4
KXZnI0FvTGN8OG1VISlOQXsoQDlDIztYNzUzYTQkY1dQbE5taHdQeiVjUXY1WUFHXjNCVklMeXd6
bTJ2NUY5CnpIail6ZUlxJVl8PFgpIXQ5SCRyRmQpaEhtZTduc2UrT29+bF52U3x7NzUyTCVFJTNR
eypFS1oqdS1HS0xhNGR7Ugp6SkV+QXhtWnwwSCRMNDgmOVY0TGdHODA9bEAjTkVKS0N9eH5iMmlO
N1l2Y2thI2I/MGh4QXw+cmtpa0JZUCY2VWMKelNGUmg3cVhNbD5CZ0V2cTtgMGY9cWN8SFNCfGpr
QVBZaHZoNGpKYFR1bmBETGt4MlliPiZjYXhtJSNHQFdffEZyCnpiO0I1bSZYKjRyMDRmTG85QkdK
NW87QDlDYHhVMUZ8OClRV1p8U1M9bE1KSnlKbzlOajN5QDJ0PFJ9M05qJVBORQp6NThSVzYmd2VO
a1h9Sn1zVVVlSTZqd31SeSgtYGgtNV9DSm4xM1l4YF94S2JwJmMpNn48KzlDVVl9bzQpNT9wfG0K
ej5LQz5fWnQlYzxmV2VMbk1FeGZlNTN4YitBbWs2PztWPUlYOWhiKU5vbzYxI3dzKEpvLWtWN0o5
c1dGMWUyJGoqCnokZXVybHF1WTFqPSNFIz1kJEFZbm84bkohVnAmR0U5UyFUM1YlYTdSLV9ec0ZB
PWVHYStDSklhaWd9NyZkcyRAVQp6YWglP2tBb054TzVwNWwmYV56aTtfRC1Tc3VMdX09fEFoUldn
LXBaJHshPEsxPHxRYn12azxgUEhOTXtTdVhHMEQKelkmdjNLe2J3KVd3VihjNm8mI3ZmaE5YSWdH
NlRSTTJHO1EwJElXazlyVDd6S3kyRnIlbUdJfWZURXtSbEckJEk8Cno9eEtpZj08dF5+PC01SUcl
KGN2M1J0cm0zeHx8bilgMDEmVUU3X3p+bnc+T3ZBPyUpdXcrSyZJZXYmKm50RDtvKwp6MEsmcnVj
TGFOJTx9NSVLX1AtSlVTYVd9O1ZQPldWbGFxMFFtKW83bGU8fWNReTZrS0s4Jn0hTTQ5RyVTUnZz
IT4Kelkoc2k+a3lyP2twYndNN0ooJWNnZ05LQW5sNDQwMmI4PGQ/VmY5aX1HO2E5SUx4TlhXdzI3
VTRBaV8rT0JZaGFeCnpZKF4qJDJQc0ZJMTA3QjZffFhAQ0xnKGJka04wanpgUXB7IWFHbVZNWDh7
aFBfdEpTQmQqd0E4e1BWTnVJTTw5Pgp6Y05BKXRzbCNQSldxbD05WSp+Wil3VCZuJkZCRG1BTDRR
Q2pfUzgycihVQipJPjxsNzlqZkd5T19qVzw9RWdaN3IKeilMM1A7IzsjSlp1U1I+JVomTUNqODkz
dEMtKXhkRkh5Nmd8Y1Z4bT9VSShXfD1sb2xzQk0+THtjdUE7VXtMVC1FCnptNW1hM1Q3e01tV2k1
d2ZhZipHMU4jaWJHVXJRIWF3Y01kZGAqfSViYUNHX2x5UWVZS0tPQHRBPCtMUFNUd2U/RQp6YWZF
PD1GVk5YMTFVWVlRSnhtVXBDQFA5eWhsSGdIMHw4MjQodjZ2Pmo/fWBoZXU9fD8pZkdaa0xqQnR4
M2t+bikKekVJX15ZfEt7cm5zTmQzOGVFU0NvaGQqTiZBRDdKbFFFc1lxaH0xSXhaVmNrfnFBPUhs
JEdAQThec0Y/TCl+YG8/CnpjXiVYJkprfTBnX1hOZ3pUUU5Qe0wkb2NKJl85a19kJUxtPXYxcytK
dSlESHgtRGJjUVhuIWpFUzF0KCtWUWpEcQp6VnxeVjZpYEw/REtTQXl5e013VHtAWV41MWZIaipN
QHRxZ3tqRXZrODA8P0E8ZEdSJEllfFpOe2B+I1NvaWE/RG4KekBpZWYhbDY8ViV3cEl2eldrWiFI
S2pzbHY1aFkhOXpUO2o/bCthI2RPPWNsYG88bnh4an4jalIrJF5SWiNtYHFpCnp1cH5BM1U3SHxG
M3c/SiUyOU8jQW5Edn0mNGRMcjJzPDNLSjgzTGw2bjRhb0dZeGwrZmEkezJWI2Njb24maj9oVAp6
PSRCbitENElkWnFDNmJ3VWsjSGhRLUMjeFR5S0JKRCE0TThhO0c5bWJ9STY5VkgydmlZWU84ZDkr
QXRTVUpESXUKemJsUDlNT1pWQj1LTFVVNjVHPzZWNm1ERF4/YHhuRntDSDwqaCEkZCM9UTxGYVAr
RWtpVCElNk1OSHRhVG09dDghCnpAOXomIW9qLTt8P1hQd096RFdVSyoqRClwbERXZ2NDSUFWQVR5
MHtBWWskdENTNEBOMClISk15Nz1ITm0wPDNJdwp6QkQtdVVPNnlrOSNac0dOREJYNVEhO1RNaFV9
flRYS0ZeR0pQcWEqcWFhcEFrUlYhe21SJCljcil4WCo7PClWeHcKekVvPVpPRyM/KmJEQiMwVGNN
R09RMkRQZyFMVEY/VEpvZkVKdXhJQ2EtMWVybWJZNjhoTWloVTFWNDkwME1KXyZICnpueWk4fShu
XmcpQG1GSDs+SVM0YHhhMlM/U0twPVJ0ZlRqY3NLPj97Z3wjfCs+PlY3WmNnaEptOUxDY2MoI0Ij
Ygp6Jm1uUCE7cV8+NURRT0AyQDIxI2FHVlJ4ZTRkbyVORzVsbncwbXFFWFFCaDFaSTI9djFePnF4
dUJ6bHM4WCNlQUEKekk8JWkyeD1AJU4hVXlsXyNEUmckSTYxVG9IVWVXI2JGUWNAI082QzEjaFFz
Sld4SGFhMihpJFBtVEBzcm19flNHCnpyMlJUYXBgaH1ZeClDQl9iYDw1SFV7IyZRTllyIUdUUXd+
MyE1SSVHJmJHX2JsOUMmUz0rYDB4S3lAe0omSWpMeAp6Mm1VPTRucl8yPDBKeW9AZzZwXlIje1Zn
eHQxLSZTSnxnUSsoZlgxTzBLXn5MSStJZ35jPk1VdnJ9T2FNeDE8d1YKem15JTd0MzA2bHM2MTYh
Rz5JbEl6SWZ7dilGM2U2MigrJT9ySkIlbXhsc0IkTEwxaEUzRWdGIUApPXlsdHNUY05xCno1YihJ
Q0Z4WWo4KnZnRk5fdXZYSSYmKF95e189ejl4SEtZbilHXkVCO1dCY3FzQlQ8QDx5JSZoJkBWeExO
cjZ9dAp6VEZJQFpZVWJaRUhKUWJyYkwyVDM0emxaSXAqTHlYZC08NS1BZClEXlFjQkk3Yz5ZKG0t
IUpGek9Ue0ZUdVkyT0wKejhIXkhMZ0UwUX1yOTkqPVp6U2FxUDNyRi1mNlBUUlR2TV8wcH5yRDx8
ODYxdDE/Z2VEX3gxc2w9NmRqfTw5REdxCnp2X2RwMDwlUyFaP2BTfnY7ekVSaVZGQSFnXjlQQ1Vw
RUB9SmhzfSg8eWZuR1hhNE1uS0pzMDZiKEhYY0VHMV54fgp6YnVuQHF0S18pP2k1TChVSm8+SGkz
cUEwU1AwSTtJYHRfdiRBbTF5eG1yX0xxcX5KNj49bF9SdTBNeldpellZTjQKekVxKEVTYzlMK2BY
cHNRRHtqVVE2WlYpPXhKQzEqUFVvTzctPjBBViZYfkxlKkVHVWFGakhKVmxnIzRIekFhRzklCnoh
T3Z+SGkzdD9mRUYlVWBqO2p7XyVpNlg0fEFqUHs/ejFXWTctWT5mTCZyNFMrbGlwaEQ/NUNed0JD
dXttTTtBQwp6RD9mJmgrbl9hK1c5N0RXczlvOEJeNGZBPypLLTt1fEglfFQpaCZ2OT9AZE58YXVW
RDBFYzlHeSQzVmwqSnVPb1cKemFje05PYGIkMGpSUWA8RGg0eD9HdTFeaU5pSnVZTC15en1FNkpi
MCl6NT99Ml41c2xEbyVXQVBHTHh8cSVpO0g0CnplJntoV3JTXmNNRDF7a2V5eXZ6LTZ5XjlaN2pX
U0IkRzJqX3o3OGZTaF4qVystMHt2OFdMfXVXeV9xQWVmQVBXeQp6SUA+MmppZzdLTzNsNihRPX1l
YEkrYmZKQ2hXSWdYRCo4PDRBbCZyRkxTTH01N01XRnJUM2N7UTE1YWh1KCFLR0gKelBHaFhPQ3E4
b2BTQF9rKkYqKTJMbTZqc3I4R3lJdGB5WWZYPzR5WD18Mk4ta3p+bjdgKE5gYSNsbGRybiVTRE1+
CnprX2pMfWR6PVJBNGA4bVg1OEYxbkBXNUEjMSNRbCZUI0JOYSNzenhoc2xFWTtnZUhLMWNUUVkx
ZHdMZHFfaUNHSgp6VWFqV1dlfEJOfDMmbntQamY2MlZHSnhAK2UkakFKPD0hXjMhfjVITjUjKFd6
aSEwJEVQKygwSDxaUXs1aHBTczgKek59cVZ2Xm1lO0xQUWV3OUpnZG1hNk9LbzxgRGFYXyo0bFg/
I2opI3E2SkYrPTdHd3c0TDtFaSR7MzstY2lWSyl4Cno1cSN+ezNgODIlQT5BZ0EmYCQ5QikySGxk
UEU3Tzw8QW9uUWl1VXY4emB8ZFo9Zl52PzM/Wjk5ZkUlKW1gfTZSSgp6PExlTn1UMUMmcCptUWQ+
bWFpfHo8ZF9FP1o0KUg7NlkkSWhne1BtKmZhO29ERi09JkYzfV98NitGU3VDMGs0S24Kendqd1lp
aGomWGlrbDl3NHQmSTNxS0xqbzgkSGk3ZFhGM3FfMW1wb0Ikd0lIY2NBUXN8a3VHTHVNI3MtaGAr
NlElCnphe3czc1JQRiFRMDAzV2tCVkVtMTJKUlYwbnVfPS1sJSNVbWApb0FHcXFzVHF1ZDUmRjx9
aU4he1lzUC1TeipnNAp6TFYzZWwqaElQU21EQF9rd2AmbW8xT1ckOSgqQWBzenkzOXlhRUsoMlAh
UXc4e2dAbWI2MW80e3hGQFN6aSFOKD0Kejwrb0IlZGA7KzsrPFBKTHZiTUxXbnFHPDFDJnVVIyZ0
VzAkRWlDfEcqUSZpUWV+bTh4LUclbUx3Ryo4YEkpfHRJCno4P2JuM3Y4YlRiN3lodVBwU0FDV0o7
JDtBJEIkIWpZNkw5JnRFJTAmWXJgMDk3OUpoT0x1U0owOHFkZW1PPmNtZAp6US0/SHs4RWR2d2s/
X3g8d3xrbmp6YnlGYjdfc3pwOD4odEBXWSg3NFEmMH5Fa30/LT9iT3dXYEo0N2hoWV9wKGoKekxw
Xk5pY0ZsYXl1UWdfUHFwZ0ZPP3c9NlpnPShlWGYoKEdvaTBtdk5DbH0lVi1BI2QhN2RaIWpnPEop
ST5uO1JaCnpOTlI0X21RbmR7bEgzS0RQT0ttZ00hSkR+KEtHPHlLaGtXV3t2a35Eak5fLUB1RXVT
ZlU1SDNfbHIzSWBFSFFsSgp6YnU5RXJVaG9POFRec0c2NCtAZzdNX0N+VSRPSVZiP1oldllNeDFC
THJrTEBBUW4wfEZ3OTdJSCM9dGBGPFZyaXoKel9HVHF5cn5aRHpHQCM0Y0AzOyF1emM4eXd6NWk+
VntnKllmO3pHc0dTdklDO3khZ2hFNjY5XnoyKWkqTllrJkc1CnpNP3k/eTN4KyVUdTxNc2s8TWZf
R0I2WmhBbil9dk82SWZTMk8tcWN4SEw3R31URWpUb1U1SUJ9P31EcTApe3MkVgp6NX40JHBOZ2hM
fFpYOGBIRCM8YClicSttX0I/YFI7MCYmKkZ6fSRESDZTRzZwQjM7PiQ/THlfSWRPNVhQMTJsUXgK
elQ7KH1DOz5KKk96ZnkzU1I3fHVHME9hTTg4UT8mbT9hQWxFby08RUM3SS14aypvKjVkMVdJMGNI
KzsofHpqcl5XCnohRUhQKiVJSGRpeHd1ZVZHISswdUc+YHh3Oy0xNlV4aTArazJNWH17ZT1mcURI
LV9CT1lMd05scThuejNGUVVJXwp6eVlre3NVQ0RNaTBueHAjLXcpck4qJV4hdV9RVVVzUFkrNXc5
N1hJfD1tb3Uoc2w3dWZ1UWxsbFpwMHpRN0J+KW0Kem8rNG88PV5ScWl7JWhDWG12e0toMmM3eFhU
ZW1MX1F+fDN3aChEZm87QyRZI0NASFdERCRlME8xS3QwQGpzY3VfCnp7eHV3WmJ+azF7bGJtVVJo
RWdBSFVwPGIoKyNyRz5WfWo8ams/QztnVG49XiotSG8pJDhnTXZtcChWailNYWBtSQp6NmN1TlAq
NS0raHplRTZGSWA1aENwekUwSSQ+JXdjKzJ3Z0NVJU48fDNLWHlVPE5OM0wyR01pMjd0dWd5ZWtH
eSkKeklfYVBEZWE8Z0glbihBTHtucm1nMHpDKGk4VVVfMjI/K1RBOHZzZl97fUg7dnpZdnsoMm4x
e3VyTGJAVk1NNjBOCnowdFVxbHBhbk8wdFFCaDtFT2A2fXdlV1omV1ljRyZ2VCtAcDhNKk89Ymxx
RGorTWcmNFFvQDQ5IWF7SGJiM2p0Ugp6THBPNGs3e0tKezIhVmk0Y0x4a2chSHJvcz9eeGk0KEEj
YkU9KUg2JGZ4U3hZe2c9fnpUX2NaY1ZuKylmc34kKSEKenIwcC1jR3FCc1QxP2wtJjFmREBtUHQy
amV3SThRPDl3RXhWcE07NUxOMkgtNUtaKkBZcm0obyZCTlJ3RGxHTGI3Cno8VXZULWVrZDBnQjZx
YDFpYlBaYnJka3p9SmRiazQ+UVhxSTdFekBLb3lqM1YyTF9OY2A4clFAVnRRfnw5dkBIYQp6d3hx
RVBgODk8fkR6Xk1OVypOYWkxVT5FSjIjbjdwM099SD1oRCN+QD4+dFozSyRPbmMtflEwSSRVdHNf
TyNNfFMKejs5bjV+REVWd0RxU0FuOW9KYihSSkA4eCZITCRvR1ZvP2JJcGM2SihPXyojTWZPVGRK
emswOSVtOERqP3Y3Rik4CnpmYyVQRGBrWDFncHNzYmhnME0oZUJMdFZGe3FmSTl5Nj1oPHJkU2xT
R3QoRiE5VlBxPTM5VnFZcz8/cVotekshYgp6TnoxKkQzdDM5eFV5em9eN0NlVn13RXYzIWoxPWIm
SylOYz4oWjd4cSpKfVIweGFlb1gxTj5wQTQoQTdmX05IRDgKemJxJThYVG5pJTgtUWQ8ezwoVjFT
eDtfKHlTd25FeTIxc2FRcV4lOHRfOXQmakNwIUgwckQ5QUx5JHpPfXE2R25mCnplS2VVRjR5OztW
RjhuZkRlKnNBPzMwNGJAVnVHbm9eaVFHZmMmRHRxI0FUT0ljZ3RjcHZ6KGZfIWhqTz1oMHhWOAp6
M0lBTEd8Rl53MmZzVyg2JlAyYzNkTzxoI2pVZDFrMWIwIy13TmJLVU1VcE1jbU16PHs7d0FCTyN1
SEVTTXcxc0UKekpJUn1RTj4wWUoqej9adW8wKCtCPEMmY0pvVXh0RUlFayR8d2sxb0pNSj1RI2k0
dyZQKyF1ZlpMNFg5WXVmMH5pCnpkO2g8eHlTaC1sVjQrQmdlSktkdGpxYS1Jcz1EOSg/KXEhVk0x
SEghRWB8R2I0Z203WmpRVTJUMlR4JTchZTgtZgp6SylrbE4we3t5dTAmPyFsX2YpRXl7QF5rSkso
aVF+THxAUlRqRyQpQThabCorVSpuVT5rN0dvd0Y2PSNsWn5mXkMKemVFT3BlN0B0VFpRZDV1Q2o7
I25xdDEmK1NEMVAoTEh7aj5KdjIhVDReTyU3QG1CaHNPSUFTdn4xbFlHMXQraj4jCnpLOU40bXU+
fD9ENTN+MXx2ITRhaXsoUlFrWXh6Q0xGLU97T2BGc1p2SUpGbSR5NFg5OG10TWIhXkF8QF41bUs7
WAp6U3VNNyN0SHI5TktANSp2eiNIJUdMKVYzVihTKHl2R3k7XjdpMiMxXl5DZDlYSl9AYS1TcHRD
MT9aWDh8dDItTGQKenZBIyhSOHt1T1RqK1dDfDI8YWxvNDNDSzt1YnN4XiRkc2BENzh4fk82UUU7
ZnlMYEBVZilAQFFuP2BxTUZReWM3Cno8OUc7M0pkdH5Ue0o7UDxEYDRhYjFZa3Vnaz9QeCptPkdE
Nitra2xrNCpnJEg0Uz85c0poVyYqUWRSJXR8M2hjPgp6bzZaO0k2PE5kTjF+aEQ0QlMmRWlVciFO
X1BybFROJnBzSCFwTTduV1NQeml0UCgkbCNWZ1ZmQDJzQWVrQ35VbjsKenZpIzAjdnU9REtTTlht
QiQ9d0Ywdz9xS1N4Njk1YV4qQiVXIX5OTkwxXmojZlgzbiVmNH1lKCgwOEdTJWchUUU3CnpKa20o
RkRZSUImLWI4JEk4aSRTXyREMFRDPE1RQ3VZJWJrTGZgKkNDYjU7Mkg4fSRnUmVGU1FDdm84WT5u
PHU1ZAp6PERUVk0ocHJUP0pQcUh9QUxNTCt2eGhGPntQOHxmSHEyVllEX2JwRC1INFQyaTlPSkVJ
TiYkaEtaZiVNeUFjUHUKemF5MztETG1OYDUtMjArWDVLejxyTTh1UyMjSlFpSGljaGB1YjxBITh5
MTQpI1RLJmFVcyM0a0lldk59Q2soTEhECnpaZTVLKUJxLTM3Uy17bVp7bX1hXjs3OHhSalZ6QHFQ
JnImI2dfaWJCIzBEQnNhejxiLU8rOW48dVlMVmsmd0plJAp6VDBSanN4bz5OMkczNzdPe2N0e08w
a2drUEtJVHlIZGpqK0E8PEhCR084Z0dsWk9Ga08pNj4mOWVEV0NISWRUd0oKemhsZExTS3FRcEhG
V3pqeW8yUjBQdTZyMHRyTjBYeD1KSGhwQFBQKztmUXBmPUg/V1pObmA7RGtMRGEqMCZrNCQoCno4
NE48N0A3UFlAKGNYd1NRVEBLTjFMISsqU3JofGxyMklWa0U7OXU/Ykd9e1khNEN1JjBMYzFWJHd8
YWNlREM9Ygp6ZFZoZjI2eVNudDA5ZjkwMEFRKUFgOUZgKXVEN15mO3taeWl3aH5RU1ItdE4xdHIp
JklHZF8qOEZDTV9SfElLUkwKemNYdTZLX19RZGRzYXZ1UCVgNGEwdEdYMHAwbVgwcnFRTiFzeGNK
UiltMm1VVkl1NCl4V29kdURsRylPJmNTK3pqCnpYV0N6WTE/OUU7QFVXeCY/NFZIS2sjRUBYaTN1
RHlie092LT9ab0sjU1k4MG9HejxOTUEtcn49NW5XZXhNQW0pPwp6TnxnZnV4JVVtWDJEaCVMQXBs
cnxjc3l6UWBtVnNBNy02WW1heSo4JlVPSjUjXjZRPVFZUUE/WHFDc3JBdztkRFkKejY3LXpCakVP
O1JCOWRLI2goXyYhb35DRCFSPUBLTypyU1lQMEhkTjM9MTNRMkVgMEFWT2lVakAqN355PjtMWlR0
CnpKT0VIeHtYMmk0RDFwRTV6Um85LTNuZU9CPlFMUVFGQldiJWBUQSptQCM4aTRjbUh4N00jcXhr
IzJBRjhqVm40KAp6KTcqLUp3Zj1Kc18hVXJzZF5kYXsrQ0xCTHk+UXh9ZWNrZD08aGZhSUFJbzJ8
JVB7KnBTaVotYVhJcHU8UGp+PEwKekRCZURGZkxPcUJPaW9TdDApWD88K3NBOV5ydyh5cW5TciQq
Q0lJbGIwRzdPa2NvQGk/X3BRUn1icXhYeHlhMiFmCnpUVyVTQ15YMFBgeC11YmA+YkIxJXpiX092
NVJMPmVNNntuQCkxMWt1LTBhfmo0JnA4UWJzbjJPKlR5dHVYPyFTeAp6XnU7JFplZjM4aTBDYXFS
elpCcmowfDI0V2VLbXA1bUp6P2RpTE5ldF5jUD4pblY1eCo+bmlaU3s+dnVPUzA3S3gKeilubFU3
YiFiXyQ5KVhhWWU/Tk9lPUlxQ3duP0ZCZ192dVdfezZAfWFhenxVYzJVKlBCZGl6XmA5fGd8KiZU
cVl+Cno1e15CdV8wOW5pX2goSmRaPWRiV2BWUjIxe0dRTHZga1ZqeGNjQXwyJj47RSRAOGJCYCkw
bUZVX3lQY0QyRjR9PQp6X3wtZWpJTktrQWZmKTNUTWBpPG5lYjRiJl5HODBsa3I9bX1Ia150NHZv
YWdIWHprdiZgI2dGdGozTitsRWR9UEIKekAzZFV0UTtiMHVVJUBfWjk8VUd5JEBeSyY5VnBebjhg
NzUlWG1VVHZeRGlNYmAza1FGP0QrbE9LX0soVzBFb2t6CnomeGFPNkR5I3E1UFpkUmZ5eDlCclQq
TU89ZSk4dmF4Yk15eWpMY0xacEBkOy01IUFKPUxWZTNKZCFmI0I/dVV3NAp6QEE9Ynl6WTx9MXds
UjA+P0teYmBkMHMwNURBdEBtaSZAODNRdWV8N3leOHQjck1NcT9LfktKQlQ1MHJNektwJjUKei1A
KTBRM3ZfUzllRjE9amUte1RUQHh4IVdBWl94QlFiZ0hULVVxZFE8dHpaO3clXypramt4Y185WVRw
c1hLXyhCCno7Nll1aT8hNVEhZXR9Qzw0RzhqajdDOUUleHlRV2NMeEdpOzY4RUpOdHJ1K3xzOz1o
NTZrdEVqSWpfIWhsU2U/Jgp6ZVZ2Iz17TT9UXzZYe2J0UkB5SEVhQn43Y3dETzZFUklQRFdEZW9Q
aHdENWFSWCF5cU9oWSpYWWd2Yk57WThYbm0Kejkrajx8NU5UUlk9byowcGZyUkkjPFNvcCVzbUpy
JjwpZDBUK2R6SUxENEYmYjBIRipzJCt0aFojViFQWHgjeXhWCno2WTx7QWV4TFJFLW9DV0kjOTwo
cl5FKF5CPGRoemNxb3ZWKEBkOTNkX1p7XjFfYVR7MWBGMmQhUn56VSYqTXpAKgp6c1I5OW9eWG99
eSVYZE87WHdMeHZYRHMpRkE2PHR2OD1KLU9QdUwyfG9xezdITiRtZG43amdOPkF3OykrKnpPbEYK
ekdoZn5FRCElaWg+YWZROSFIR24qVztybm9RQEZQfD9abyF9dnA4cGVSPyoxcz99MXY/MCgweVZW
bSZ8amFUKmdtCnoxIXokLTA0JiFIMDlkTU9lczYtI1JKN1JweEpobng4fVFmUHV1djd7PCZ0eStH
KiRNd1lYSm5TbW11N0AzUHhvTQp6YmYkTzt1WlBEc1UwVGs2YkNqY21vOFJCWjJtSTQ+Zz5VfHgq
WEU+Yl5Sd1BfTzcrZCFwQVUkWCU1ZF5uWj4hTDsKem1qR3QmJnN1VSZIKEM0eVBJYUJiOHdkOHwz
Yl9MQURhYGdCNURFbSl6TntJfnpGdmpEZT1VeFhweE9pZ09TZU5eCnp2TX5uJElORCFiU0FrRmQ8
fkdwfkIhLUlFalhfLX11VlVacDdjcVFyN1hvRFlnUkFiTVZAUEVOZVBqVEA0K3ZPXgp6dU47Ukdz
VjRAb2d1RFAlUkQ0PXk3VVdEamdXJWorJlJoclhSIW08JDM5VkBaKHdGdlFYODBlek4hUnVpYStR
QlUKek8rYiFaRjk2ezFlWF9GcHhCb357RCF4X2glPyE5YVVIT347Un03RWNYSklDODIlbkExWFQ9
WnE1WVBffjRHQmMqCno1VU57JlZCSz00O2NDS3lOe0hIVEduSCtSd1RqJDs/aDdmOHp7Z3F4MSNl
cE14VWxzdVlXWmBIJjJOOD5hIyhadgp6NHMpbWQjYk9lKDBtVWwkSX18PlQ/KEB4aEswUHl5IXpZ
ZW8te0NfVG9mdzAmP2d0RDE9S2hJZ09QYUJ2eSNzJngKem9lfUloSTY/clJOJnNsdTIoQCl2aiF+
R0lQVTdCJitPaE4zK0wxYDRoMUgpSml7YWg5PVcqO3twUD44Sj1AKzIyCnpZKFJMJFpLUnk+JXdp
dlkwM2VAfDUrYFNuelZKNCopKlZubzVzX01pSnB8TndlfSlOVUZ1fiR4N15KVXVBdzRrIQp6dCQ3
b1lYUHpTaXhSP0VaY200bU8xT1QwTGNIUDdYdFp4Y2VKYTkkTXlEY259UXdrcGF6enFLNnBIMHcz
M0NNKncKelNeMFRRZENkVT42fWw+YTQ4dVNtK0pJMF5EKzBBZCFOP0MmY3lUJHA4TFlHZmd3aG4q
eGpINCN7KE4pdkdJdkp5CnpoQSY9OTMpbFloRTA4dG9JMH00K1FmUi1nckFDcU8+MTg1Nz45cFR7
WmdPQXVyWEhFPGJKfW07ayVLcnlBVFRgPgp6JWlKRylCVWVTRFNoWnshSGd+Sz5XdXlgSmUpKE10
akxabip6KHpvK1NxWGpSUFcjJFI+KDdlJGBRTj04Ty1tezwKekl5ezR1TkJWSCElXnIqblA5ZWE5
SUwzUkM+VjU7a2ItI3ZDKD10KVg9XlJAd21DdTMhaD9PUyRqPX4pNWhQTCpACnpBYHVYZDI2R2tP
OVMxO21lRXxsRSpzJkwoKVVTbzJobWgjeyRGNzhSKzhHMXg/ZzV6aEJ3KTgoUFhMZkNwejVGZQp6
bTctUkJDMzc/NjVmMD4zZ3dwdWRTRmFHbF5aWWttR3xSQiFPSUpYR2YlNipBIXtlSElvcWhzPTVE
YTFtcF8qa2QKellGbEJAJjdsTTx2V2hKJWZ9Z2R7LW5kcVlIXjJYVGtoNHZ6Z3F5IygxJE9HdnRY
YmV2JTRmWi1xfF9DOTMtN1BnCno7VWEkVG5mPCpqJSlUYTl1M3A3bnFXPnF6NE0tLVhHT3tzPFIp
bz45YXVxaE89fEtEUFgxc29JNX0pfCRlJkhnPgp6Pz93TytYQGNKSWtQTlcjcTlDeXA/ITEyJD9z
e01+aj10TkE8QT9maXdTUWREZjFhfCRHKE8kKTQkYDkrNSF2PCQKejFTPX51K3NsMz4meGA8ak1X
Tld5N20xRWtMdEF6aUxQMTM9X3ZJfGRXQFQ4TDNrZGlMMFlfQF4wJWxJVjR0P0UrCnpWVTZgNio4
aktVfDQ7RSE7RU9mfSVxYGEmMDF5YW5ZWVQ7VWM5bjd7USFeXlFAYVBjISR0U1BVPERqdGdUeUwk
QAp6NFdNUk5LJGFPZTs5JUlWXlAqamI1aFBAPEI2aVM3Wm8mJWE8VDl3aU59Q3haWjZMXlB3YXJ6
STVebklLSyQxX3YKenlyMVJBeyY5PT4ofCU4b3U3bmB2IWZBZ0FXNXM7Z1FURFU0bkpSX3VPVEV+
JGU/S2w8eDxwMUhFdCtqPUR5eSluCnpaNWcoJVRaZmowTXBRT05AYztlZzhUYHZ7cEZ+SmtXU3Fj
QzN3S2FvYDtaOUdJczJAdjM1JkdmMnc4bUgmX288Uwp6MilobUcxZD1EOHI8PTRBUlhhV3xtTTc9
b3A7cVF2eClzPDQwb3J6UXEjdjtwemw3ZDs3dTVROExATFEzMSZ5MyMKeiRGcmAwe2gwNFJheU88
OXwzWSpVOGZ6WHo+Y1U+Y0NTTUBgQTZ6LT5aMigkTzEpdzk+OHZyPDNIJnQydjwpMTFfCnpgMC0q
YUFRbzQjdFI7cWpfaGRKKjBnRW8yQ1JlVXVBVyZVd0skUjE1SDVXczAwRC18bXctPn1QXyRPM31V
e3c+MAp6JHxlTT1UZ1hqXyRPKiprYHw8ajdNVV84fiNkY25zNlliQiMwMmFOTWV7cXw3Vy1EIXA0
ND8kcz98ZkVGVFRVYyEKej9DZmRtSiMtTFBobFlqQSpJWndad1BnOSVFTUl9OWhJJDBhXilvNm97
TVA/ezVkWnNFbXJ6TVFKIWNNaDRNJCFQCnpOTUgzcUM+MXF3NS1WZzBGei1eJjM8YUB8a0tTdHpi
cz0/ZUZaOU11c00mbTw9OzA3dWZ8PGs0XzZUSEBuU0EpXgp6Nk1NKiNwQ0JjRTZrNFBLKWVSTUo2
eU4hZFpnKVdaanx8aHlnKEh8Z3crQ0FOVyYofjVCdjFiWWFVNlhMUz9sanEKenwxQy1Za21iNkAw
QVJaVHEze1FgMlpDRDtseVclSkYlP2ghKSZMJjRjYklNbiZlPHdybkptK2tBaXpVMTFzaE9wCnp0
RGdZYEJMQClweG5LKzhHanQkeSEzfVo/Znt9VXhmK2YoMkEqa1VSWCRlZkdlUUNTNlZ9OTBxYWNJ
OU00bHk2PQp6SiFqaFFlSTJ2QEhtQmZXMG5qUUlWNGF3biNRdmo0YXAzcWRrcXV6dy0/RGJDUTJ1
Sjc9WF9tKmhKd003MVJuWVEKentXI3Q9QSlickQ5PDE8KzElM0hGUC0+UDc+ei1jfWslTGNua3M/
bz9ONFdpQSlVPEM5JWhGe21II3xXKyVNeWtvCnpKfjU4eiEhTzh2dCRxLX0+U3xRZ2cpX15UeVhP
aXhVeWF1PE9paGhyPzcqfCtvbEw9NEBqK096M0I8M3cqcU9wNQp6dTkjJjdfWF9+ZFlYKlNsbl9n
R1J2VmZ7RHwzWHAyQTElZkxjKzMrSWRmYz9LazchPkM4Jjs+VnF5Y21UU1J6eDkKek92K1YrZDZp
eFAyJTRHPTd9fGchemAtM25xe29LQzQodmRwNXNId2pQeiFeN2VQdnUhWl94SV9FPSNSKzNkcXZr
CnpBUnZ2YihoYnMkTk93c3JBKzI7dTM2Y18wNWB5Zn40R0ljS0VoKmd7JVJjPHlfeGIjc1p6cTR9
LTFuUyY9OTstPwp6Q0piNU82ME5HUHp7SUUjcm9iTD1XfG1TRDN7d2I9KkgjTEA8M250RU1eKmRG
JlJHZj9aUTxsQj8zO0xGKWRlQDkKej1xOFRuVj9AK2VoSlRWUU5xZjwzMV89fXVtNFdIelVadEV7
WVRVITQ3TEQ8LUpzNTZALVk+NmtwdSZxclR0eHVOCnpZSyQ/UmMyZDlwZVRjI2VeUyt2VHVBQ29h
NVJDWTtwVHNuYGtjdCZYS1lXTXtvWUVCdnlhJVBxdj08ckhNNjJANAp6YGBZVEM7Zz5MQVAtc2F0
UDUqeUpKd31fKHZGNEhybXJnaW03Y3QyUGE8TnpJd1RCO0w1bTVeZVdicmtJU0RYT0EKenMjcH17
MlUyWUxWWCY3aEw2KWEoP0JnfUEqZUI2bDFqdVh3KDlMa3Bie2ZOT3kobXtjJHdXbm9KVDEhO1g2
PSZDCnpAJnUwVV4zekNLS19nO2BYeih0WFZ5JjdBRChxe2w5dzRQTUVUZjdKVXkjSmR0TkJsVSZF
MTJKbEQ9PT1JNW57Vgp6WWVOTWs5cD5jSjAjZ2lUWjIqUjNTNndmIXlefHQrcjQkQzJlQ3coNjlX
KThFLTFwLXQ5fl5KbXY+Kk8wMnRmZHQKej9WIWMwUzE4I0orK0h9WFooPWU4eEB1WXQkKCt0ci07
NWs4WGBVQ24hclBoKGlBaX1Qam1fMnlkTCQrSFYqYiVRCnptVjZSK0pKUU9ESCtwdHgyMmM5IXI+
OEVGenJJdVlqIyYkPnZ4JTVkOTg1ZTx6dHl5OGktP1B5bjdXTDhVU3N5Ngp6a25JTShWJjZMIVhA
KXVFezR0TSNxWDIrfTFmMWFRbStfQjdpZklUKlV7ckJUdG1XZktHRlpWJClqUDNJSE83N1cKenJh
bXFmPHUtcVdEWmwtWj9nKzxLX1loUWB3cEFuWDBFQV5Na2Y8fjF5Oz1xWE4kcX5gd189cjMrckxs
e2pFc053CnojPzFMczQ2QlItdzY0Snk+YGkjSjBZQUtaZ09EUkozUkx8fTlkblUmNUdzTXtRIU1m
WihFKWdpRihNTUVodnFrMAp6KXtlSG9gcHleaTBNJjhWRV4lR3U5dUNBPzVgaUJ3QDhVbWttKSZg
czwlQHU7ayplfTBNJm03O1g5OyNzaUBtKCUKemo0YGliNk8qN25UUy02b2h2MHE1N19OVCMoODF+
MnliYkIjIzJtaFRwUCsweCVoTyFkeWNCbWQ9X2xIKClWTkZZCno5alR9YnJ4ZWxTZGhjQChCe3Uz
U2QpOEpxenZUO3o4eGhEO0V6YTZUdGVweSYwRnk4QyUtdVohVmQ+N2smSnJncAp6ZFYjeXgzeWI8
QFg9MStke0ZCKUw1UzNxfT95NmBpMV9ybE93V3xCfXlmNDNIOHltOVlPeGNBT3o/b28xVyhwP3AK
ejlyTDdpZEhyYnpuYEJgVz19YH5GaG5eZ1VZbTUyVmZMQGVmbk4tQmorRz92O3EqeGB0MjtDNEVg
d3pzZXlIIzJKCnp0V0VjYDc/b3w3JlhsOGBVSCVKYUJLZiNEWUx7X2k/NkpwQFNVLWQ+QnZialpT
ezY1dVp3NihJVTI/P0hVVXFjKwp6bTcjbWtofEhAS2Ymfngmc29wY1NWQHFxdlRsekFsenRMa1Mk
dEdRVFZobGdzO1ZSKjByMDZlb0xaamN6KUA0WFgKejJlPShnJGQqXiUpZWxMcU0/VjtOSnx4P31y
bktLWHoyUlkkSCtLZWRKTSh4TVFiKzgxU0tvYzY3R1A0VGplYmJrCno2UFMtWGA7KEB1anlVY1NX
cENBQSVFa0MmYyRLZkNSUVlePjJ+Wi15KFA1P1hoSXtieXNtR1dBRG5idUs7I0R2ewp6ZT9KdH50
am5VVFMmJis+ZjZXYTYkQmpPdnNEN2hjQTcjfEZwWCp5flVRO1l3OUpfMk8mODQ5NTRIKWFQWiFt
XzEKelZ7UzxRPHp9eSNDMnxvWWxjd18lOXxDRk1mQU1Zc15jdXxjOG10Z0JDYSg4MSsye2FqZ1hO
RDV7bFBrQzNETVM4Cnp6b3U1Y0o7Z0d6KnpvXiNwU250UWFjOyp3KFJpaUwqUGZwRkdRdDRkY2A4
blE2YXg+OW1SSXpmbCFRUUUwR05URQp6VCpiNHlNYy1XVjhFe0V9cHNEVWxhcV9oQChiektMKDhu
cD9PQHdCOWJpRkRPcFlMb1YoKnp5WmxiPDFTbjxhc3oKejRVY1k0XjR9TzZ5IT5QYmgyNmR+MTBa
ajZYYlpjSnt5M0pyQn1QNyQ4NCNDOSpSSjhqWGptK0tYIVJZYHopO0l6CnozYV5JPTdtPl49VjMx
RlVxYnV5SnA4cT00e3dxdHhhSzx9WWZLTl93cSZaR3otYX44SiNlaXM+XnxXX3ZJU09JVAp6R2lL
JD5lbHxHcyk2UUUpck55LS1yM3Qrbk8hMXImV0M8UDtAfUhpbTlgWmtIcHRSX0M/TGFQRWl+Vih1
OTIkbkYKektyQTh4Nn50NWUxWVRGPFkpQmcmZU5BeilhQ2dtelE4ZTUtPWd2bnRxK0RLaUlEeCZ3
eD1RY1phQTRsMEtlPn1XCno4ZzxUaFEpQmpNTGZoT3lsdnVGUUwpKkN0cHxFWW9jQmh9SmlnQ1E4
eXdJUldkdXpXVjFZX0VqJkB1PzgtJVUxdQp6emxMPG5fQVczIzBUPD1PTnhhfXNBYF8laHd2PmY8
Wj4zOSpfcz9zJHoyKjZzXj1neHNtdzdlaCVzdSFgcz1WI3YKej9RUUY5WUt0dEZseD10cV8qWiF7
e29pQG04UzNrO2A+I3AoZiVqWE0qanlZfDklZT1+IT1lIXZablRHJUN7SVc8CnopK2BrSGBJfkxX
LWMpUVhQUChxPFghbmJVYUtyOyQmZFJ0ays4MmNGQEFCKGNyeUAtNjJlWE58dHRVK0JqUjk7Nwp6
TTkybzE2fmolR2Z8YExmMWhNQGdVSEp4cip3JE1gb0xHdHM9LVNqI2Q1WF5ePUEhYHFqWX5adSYk
R1Q3fERqQSYKelY/T3J1ezZ9QVVvTjlsck9vWTskOTVwXlRfUCgmTmA/RDRVbUdpYDRXdkFEV2hl
Z0IoVEtSdzNTS21FazxTVz9xCnpzQ2NKLWFGdS1iP308O0VMWj5KI00mSkh3SV9HYj1lfk54TmVX
STB5IX13ajRgKyU4XjtyVytjRj1wemlqeS17PAp6alo1cEhYcmZ8X2Z7cSZgX3ZDYWZXbl8ocEZe
P24lKzwzXjR5Kyp3KVFwYEB8V0tURitTKjJWOzQ0PiZPNWtVYCgKejBqVTA5czRhdHY9IXtyfV9E
flMpZ18rIW4+WUdWNypheD9JRFFSSi1tMUlLZmkzJFMpck8zM0JwckU4bEkhLXt9CnpGMXpSfXVH
d2FsOXp6P2o+OWtgLVd2VXpZIzc3NHxXRl9wK2YjUnE9KmV8K0Umbkc+T1pucDB3YX5iais3WCRf
YAp6MkFmb25lYkdzQWJvZlJ1S1MtQk57JkxeZSlqT205T3JgcnNyKEB5TD1tQTBDP29VaThDMSto
c3pfUmIqeDQ0X2YKelVsSD8+JTdZZURUN2E7KSR8MmVtb0koRUhvVXBrTE58VXU0N1lGRj1lUHNE
aURrQjljRD4lLWNJTWsjQkdhMl96CnpycjdmNz5IOEd5Qm4jVENQSDZ7N0VqYDtWZHtRPn4qfUVC
OypvfEZOUH15TH12b042dVN9JDd0Zi18WW14R2xfbAp6TDZHNitISFB3X2xkWS1iT2pPZG5LbWBX
SF5QdHIwVDgtdFFHI3cke2cyNG0pbEw0e3MtMGJaU3lqREFpcT5+fmEKeikzU1ZnZDdsLUYhQEl7
KiUxZ3YtO3pMVXpZUko+LWBaPH4qKlhPfSV7PCU7US18MVFWeXBGZT8tQFItY2AzVFI9CnpaPCZK
TGVtRGhvb0tvT3VHem56ZD1KdFItYmNCaDkrS0IrQyVKU0clbjsqT3xzTHd1WjwobXpNSVlHI1lM
Kk0oYQp6U0luaVNsOyhRTHRSRkZkJWFjfmQjI09LWnUmYTlyZko+TiFkYClrNCZpO0ZKOCpsYzZX
UFJBXllRcnxqNyRhaT8KekN8OXthNm44JFZkVTZkQjxeaVVpYU0qR3xFfFlBNjE2MUZaYFMxbTk7
V21QNHdWOzVuVyo7KjFpSGpUXk9JeEVtCnpueXgpQ0d7JEleRWBhX0BIKyN4NnR5fFVpZyNGT29N
QkNEX0M3e1kjRiFkbzgrQV9QRHgzZCoxJW93UihhLXhVJgp6KjtKfChwUFJ4X3VXJEpKO1VFQ2Jp
TyVYbmhVciVtelBAdzFjKmlmbDtEJFhpYDhIeiNeZyF5S2BsYUJlWCNPRj4Kek59SlQxS3E4RnUz
LU8tP15Ac3g/KnNWbllPZXNkST58PXg5UmM4ZnlUTmh1Z2wtPkQtelpfU31HZzE9Zz8lIShlCnpN
NXZhK29UYjt6JihiPj5tZGlhXl8wUXZyQjJ3dyZHeUlAQHh2OWhzKGA9QGoyfCUpeG5EVCsxYjM0
JUstME42Ngp6cSlwR25HbTdeKzw7IV88TSNZfX5gNV8rVlNsND1OOyo9QVBwPyFUWnNqYm1KNSRH
N0pMX2hxOzZBPUYyX1heZFcKenIlIWJsZyV4P2pmJCM4ZE1PSTFscjdRJSFgVV8wMDZJJEtWVnNt
ampWUmR+OEBCbXQ1QGYzV3k5fitRcV9GbypLCno0ZmBjVURLb2QqYTVUOHlASC1IQCEhTHwxcHt2
NnU9azY7UER+SHd+b3RiZ1JTOXt8Vm15d1RySUZFRjJhO0hfTwp6dD4/anlLMEZlQmpnKEpUOT90
bG48ZWY/Znh2Q0VlNEpSYWxYazdrZ1IyS1oxJkVScEEze1c3e2tNK2BfUms/VWcKenpXbHJxNFoh
QkN1REVYUTZVY24/QkxyRClsYF9IMURkKX5pXlhLPndHYXp8NDt7ZXQrVkRpUWtwQ3NEM3hNMGBr
CnpeelBNTCg/aENWcUJgI15qNnswdVFZQCl5MFREIytzK3tVQyRPfEomYWZCM24zTW03ZmY9JGZl
ZU05b2UlJSlTMwp6JUkzajZWQkk7KDNMOzdkTWtQVkE/JSFNS01zTV5OekNkVSs8Ml9HPUN4NXR5
UXohYk8lSlhpdWF3QSNyY1QxKmoKemNLT2xmWEl0PnNoPWd4TkZmc3Vgc081Nj0/ZW1wPElmYDA5
bEQ+JipyLTJ9cEQzOVo3Z0gwKHZGO3F0NDEjZE8rCnpfR30tXzh0ZU1xT3F1ZkJedylZXyU3ZDxQ
U0spODclfVFXcWE8MFVTa3YmKjZyOT8oLVpDTFNDPVV5LUlkJnFPYQp6dEA9enBCakVAZSRZVGRg
UTVqWmg8IV5TUU5YdSlyeTFVZ1BneDkhYWZEeXNJZkRiKChOI2VhMD5EY2BoQmc0eEgKemBOdnBg
ISZld31PaVdDX2w4QVFhdWElcElwdXh3NWsmPlAmTXhJbWdNUSZzSjY/PzY4RWE+TzQ4VXVhSmBl
T2BzCnpuWnZtfGZvYnh+QHNRUEhXSjxxQWFTfT9FVUhVTDR6bXZVZT9pOCRwaThEaExGM01zVG1p
WD8oSUtJRWl4VklwYAp6YWZoZVRZMHtJIyZkU0JiNTg3KCZfUSFNZDYlJnYpI0V6SW1vZSpqKkIl
ZStAakdLaX48fD1zSXElKFpyPEtxI3UKenRtaWZNUyNRT0VxfmtANzJhPFUwS18+KntmM187PyFU
KElQbHArVCl0eHR6JWNpWFZTe245VXNZNGVQdTYrNW4yCnpReX5tMUpaJF9wKHhhS1I0SXEqWU1e
NH5eZj5DPDBHRGJLVD9IPjRzSXwyV3coTntiMEFGJj9WQ1VaP1BqcVhsUAp6VjN3WFc5NGV5dmNX
ZV8zTTdEfn5aVFNtaGhNWl5MLU4mJTc+TGgpTHchPkw7UT0pdTFlcD1qUHtkJmVyZkx2ZmMKemZN
SilZOVU/I09PKD54XlAqNnl3eShaTCtWUHlmYWM2LVoqMn5vb2U+JWooKiN+T3hzV18+WWlAJShN
KlRLJSVsCnpIT31hdnh9fTw2cGY3MDNKT290b25WRHg8JHI4bipWblJnMlN3WUElc3xjPDBXZThW
bmtLUnlvI1UkTypxIU5pRgp6YkhRKik4dFE+ayZkWnUySjhwaVQrSiVYdT9MY3BuMGNAUHY7clV3
MHMkMlBucmhASS1WSGVhVl5EXl9weCMzMjMKekJOTlE7ZEN9Nj5uMVpnO0wtaXV6PlI3OG5NfWNZ
fl48ZzxsRitTYjRLKDtrdVplYTxVWVc5fDhwYmdlelIwJjkmCnpwbEBJKF4pUTFMNnRzfWRkR0dq
UkR3TUNxQ1dEX1d5aVh7KnJgJFYzai17OHFubE1PcjNuUyNrZ1E1Q3kwbHo0NAp6UzNobjVKUXZU
YkEkJTNRP2hzRSM1PUNDTHArPnM7UktBdnxhZlhhdT8kP0tfcEF2MUBHSjxRYllBYm4/VStuPmsK
eipWdW9qWVJ6QDNfdk5wJXlCdWkkUWd1QGxgfj5hcU56bkxYS2BOUTZgZGp9YHQtT3p+enxQeVVX
bG1+NSRiNnxiCno4X2lKP2xSM3loNERfNSNiYjxGdDZPUmQ+aylvNShxM0RZOXIjb0pTaE8zdG8+
ZFc0NnpaWmZgM1RRcmpmWjBYUgp6IyktRHU4RGlfKFQzZmhqKFI1OUhJWEpNZGRIc2pge0JLa3px
TUc4WUlsbWFteCNgVWVrUksybWJ0IyVFTCN2TFgKejArQlYyOFYlPGhEM25rN3tsYER8S15yZXsh
fDE2PEFnSSRRdEUxK3hCWV5tKkh2PElrOXl7YVU5cFJQI1VLZm9mCnpOfFZkVkQ7blV+PlFvekBx
T3xJPkhwJXw8KGtyX3NuMDEkWkBOcU51JT9zeU8mYT9nN2VQZlM1P2lsRjVxeHt1OQp6YFZETk5u
SUUyK1lpUVN4R3pOfU02KXlBM0gtc3lGYC18MHhlYjNpYEBBRzgrP1lwK1c/X2s+LUV2ays/VCVI
VUEKemxGRF9lMUJLezU8R2JaUFBrb3IoV30hJkV6bUpkTjYtS3BrUEprVjM1U0ktSTc/UGFZNDNP
TkVeVD95UFFGPENOCnpAd3Myb21wTUNvamxFdUM3PUJJejNKNkgqTzlZbVRFJjtqRGYqQmljQDR1
PVgkWmU4UHB9KzdKTkRMU0RmVmhocAp6RzJkJGk7Q2EteGBvUENkRSE3SGpXbmArKTk/OTVRb3RY
KGRHemd0U0tZZjM4KStSfWZZcCtGa29qTUlMN2lwLWQKelh0cGRRQiNHdHN5QllYcGB+MHFpKldm
cDhvZ2h0SjVSeClCY2x0fVdNc2w/dD5CRnh9OzMtVi11P3FDcEJhNVpvCnoyRklsQVhtQnU1ZSMt
OHQ7Pk0xc2M+Xnw+TE1OYSV2cTlVKm92NXApeEN0SChsTU4tcXQ3dl5qKjBYdGsjKFNmcAp6NSVH
UU1paVBAbz4jJl9XSXtIaUxXNTVBdmckYT95JiNObiF2aEdsZmstJWdZQCVvRlNaRXVyUHpaXn1V
WTZQY3cKemA2WTNJKCVZa3c0KGl+Zj1jQUh9cWRSd21sZGNAK283QzNgX0FgYFoxZjlYMVE1Zkxl
bj9JWU8pbjZYRHZSfDlOCnpWMTN7MyU3Q1lEaCh8YyE4THNCZUBHe3Mxe0NjJDsrWUJwJTsrPml6
RjhTamY+e0FAOTFPVCR2QlAmOT9DSVQ3Kgp6LWQ+dTcmUyNnfXtJMUxXUyFQMzVBMkcpOElQK1VZ
dFdyUWhJMiRfeVNBMz9jO1Y+M31QclBQfVR6WFUodFdnSTUKejZCdU1MQnowSU1JXmtDRUFfQnEl
QEJsfWooUzRLZTZhSkhFJTxiUk15Q0YrKzEjPURVKE8rciYwS3c8K3NRSThpCnp8RX1hYTx8R35H
UyRUZj5fODs9KTQ1TXI1ak83RlpgKVI1Tkc/ZG44PWVUPVJudD16PUZkMHljPDhBNTUkbFF3WQp6
P1A/UWFWU0Q9RG5WanhHaX1NLSRkLUt4O2dzR2J5ITBOYWsrdiFTQE9JTlN5PTJUOEV5JmAqKEVI
PTcrSjwlNiQKek15VV4pOU17UW8pKXw8cCokX3R8UEZQeUwqIyl9I1U5eDI8aGtpPVZ7bnJIX1Rp
NXp1MTRCYUNKTEVkUiljMERvCnpQRFNDPGh0TXJ7PXU4dzNhP2smaW5hVmtpY0E/b35UPG5jMkl8
cG1eQEhiTWpfJHtVeGVHY3pzaEA+WlcrfW0rcAp6QzV9V1NiVUJlbCFrZEliaWlTJXlrOC1Sc1pV
anRYe0JMbXQoUiR4JDhaYWs5M19fMj15e1hEPzg+WiM+R001WT0KekleV1JydS1LTkdWbiNEa0RZ
ST1qYWcjUVBsd2RkR0FIVD16cWU1LUtMUmx3YEhzMVpxezVDfGNzYlZGb2YqaU5qCnppNTZqT2JI
NSswOHdncGF1ZzIhIUI0Q1VjezVSSkhNKTJpLVNPOTg1P1pORjkkZjhqdm83cipFQSpYODhuYHUw
Swp6KmlYTzl3QFF6ekspIyh2SCMrWXZYbz58UyFxPE9xMmcxIzUwNnNoZT59LTw2RlhKQWBiOSte
YXhBQD5wX0ZgYGwKeihTRX5YV24kS31Hb2pjNWZ4R19QaUsjRlE/UTRzbUBoTj9ocypVO1NHTTt7
JnMqOFZlK1Q/VSNXY1MrMkw9fXZlCnpDdlFfRyR1LXFrP2EpcHNDSWJYVkdyWkNrdjloeytDZGk1
QjIzYENWK3lASmswKURPRWFLTH1Ac0g2M2s7UW1QSgp6NiR0XllxR1NIQi0xdjNqMTJ1KkBYWlNy
bmtITENfV29DIXlUYiFueWhnaUhwY1Q3dkZVWW1OVmRHd1pVJUJfUSsKem04TkJzcT9qX2JnTmVu
ZEJLVn5wKGJkdzlUdD9IbGxzJSZRPjtRPXA4JG9aPDR+dy1hQ2glQkxBKShxbTR1VH1KCnpjT0Ro
MU9KN2UtdistJEdwZFZZUm1GKDV7eEcoXkkjX2g2UUQtc1YmI2tYWStQaWdffVNaT3sqNEBIfVY2
eHM3eAp6RWp0WmllQSZabFRwUjJUUkxMYy1vKyZZQE80QVNNT3AhbVJsJSFFOG8zP3MyMUpkRTlu
MF9AN1VyS049Uzd5ci0Kei1saEIyIUdJRGlnWX5PfGJyRHAhIVhFZTxgbTdjUmpJaUZLVyQoJnhg
K2BUfillXn5GJkRVO19OPXJlQF5SJnZ7Cno+TnNsbVVlOWo3QFhuQldOIUImKUpLV0dEPD5zPzMh
KCkxd0I/XzVXZ1AzalJwRSpjN3l9ZkR8eyMtfS1IPnJSMwp6cTZ4S0xmKTRxJXNeOT9vJElze2Qq
bUxESnAjYz5mZzMmeG0rUWBIT1A/SEQoMWp6K1NBJmNsSnQyZWk9dUdVUisKekhWez88MTE+eXxV
JTZAJnUkMmkpeWQ/MmgyJittSD8mOEBVVyNZQT8jOFJNJFlYOXhzMCNsREw1OG4qQCpNdUZFCnpZ
RHxUUG9vTlRnOGhaTnZETChrWT9HZVQpTGNqfT0qez4zSGRCZnBYbXl4Wkk4P1BNMmAjenFkZmlt
YGNuJkhgfgp6ZUJOVChheSVWUGJKY1FLY3I1dShjZVEzTW9AT3RlSypFXlg1MzVwUzVhKEl7MDFD
dHs8RTspWUtIbDYhKTxQMzUKeiskVm9HLX1HcExFai1LYERFfS0/Qmd9ayRnLTNIR1Y/ekdwVH13
RXhwe2c8VTY3eXYkXzEmMlg9Q2IjNGZgMHRsCnorITFwXkYzIykkMDA/KnxNTThrV1dYTzk9dHAl
ZEpGVjtwYFFeYDQ0Vll6ekpWZHp1UnhnR3RseW1hMzB7PnROMgp6VDRjbD9zZDQkOEhmQmpHKVhM
d3o+MkZ2ISEhQTthVVdtdWZyQiFrandgUEYqOFpeRUN2TXd8MUFONTlMQih0SmUKeiRJJXV5aWB9
XmJaKUImM1VSPEdzdj1PPFMkWV5KZDZFdkJrbSQ+JmFmfFl9aDJPRlVPa0tPREVQail5ZXckN1I1
Cnp7cEpoaHpFPkQ7YWZeTXtUfUd2ey02VnlBc3s4VDYhKDVTYj5RfntpPGRDNjBESGBSO1gwYGdP
PyRQbX4rc01sMgp6XzA1KTwhaGwoWGpIQUt8ZmdsT2c/MDh4NGgxRlVRRW5Ne1U1b0ooP0dRY3BI
Vm59Q0YjPTF9SzhfQT9zOHJASHIKenBQJk9sREh+Xzg2QTdNWlJrNmpWYk8yTTtgNCNfLTNeUGlB
S1lTUDRIMlRLfWNgQX1VSCtrcj04I2RaOGdQPFVtCnpzfCQqZ0dmNm52WX1vdno7WGAwIUgwND1x
XnVqeFIpb0kkSmRvTCUqLW9XPD9UNVgzYzdPNmRYe35MMDw7UEFnMAp6UEZifTB1ZFBsN2RHd0BU
OzUlNCNLSCMlRCVuQEZ9b2Q2SUlvUCUyJCkkbFBCUk1fWXNWQi0/M18qLXVqY0QyXlEKenRTdnx9
RHYwbSFAdSlaPXRuUXdqWjJJcX0yNHI4TWQxcnpGOzReKkdVZTwqZVdpbFc2QWtjN0NoTkhzZSUh
aEBZCnpOdCE1cUc3JFolbyZ8YFZjO2R8eCY5NHdQQn5xRVApPnpkKkspXkc1NmRUbm0mcmZMTyQ/
SURlWE5Jay1FdnlDJAp6aHhYTSs5VlFIdWFtTWB9TkZmOXlucCh2VFVfKEc4bDVXQG5qbC0xb2p0
diolaWBeKTxlRjY9QU1tT1dIX1NzbXMKektrPGNkYncpSkJDbHxzNStpaXRfMW02PUZ3JSkkM18r
cnpKN2U1NHJoQ3w4NGpZPCtHOU1iY1A8bkF3RTlmfnlMCnpfSzVMM2A2Yk5rN09RNHtyeG1XaUNW
VGFJKlFhbzg8PyV6VWN8ZFo1VVAxeUJ7YnkyeGNwODx+WFpQe2ZfY1F2fQp6ZVYqcEs0Nz8zaklH
fTVCQWZPek5nXzRwblJGJkFyaDRrPkJ5Pjs2Y3daQG5ARll6S3g+Y0FffShVZGVWWj88MnMKelc/
d3gmWlVKMD8zdExvOGNKUCNVcjxeV05JOC1GdVd8fDZMe2Q9ciZoZGVGfVN8JmxzaXRtdXklcU56
MjczUiF7Cnopc2t5OSEwSUItUkhzUT05YG5aJUhyaX5fYHw7UHBDanZ0eC17P1lAa3pQJGFmcyE5
N0A2P31NRCtraHNzRnlGdwp6SmNreTR5cz97JSpXQSUqNXk1WDVqMThBM0FDKyUtN2xuOz1keWt1
I3haKF8jPFc8ZFlxaER3bTNDJjUhbFU8QX4Kek8zflJtPC1EYCRkI3xMfVRadnM5YE9fMXRtKCRh
bTZnbkQ1WVVFamJLWSh6emoqaHs3I3NFS1hMdExfKzZuZWp6CnpkNWZGQ0R+cUt0S3VIMmM5KXV8
ekFrJHUwcF4xKnExM3I9QFFMSzV8ajBZPT5MKEMreHl8Ml8pJXY9Kj1eKTFScgp6Tnlse2UtZT5y
SWU0fFkyT3p8JDRqaW1NT0w7U3YmRjVDPWpOKHtWc0Q2dWUmZElZd3lxX3dLKy1MKmtVe3NqJGEK
ekM9PHJPT2cwU0VNNjJDailxQShvWE4/MGoxQk9YKU5oQVhAdz4zelB1ezUtdSN4fGIzYEl4RW0p
fTV9QSspfkArCnpeKWV2THNXSXxlNWFAUk8yaylmZG8pSTBlUGgpPWNzVCR+VWQoV1plSCglbCZk
Sml9Nyl2d0YoMFJ0d3BiNXVyOwp6bH40RFBNMFo3LV4yMGw4KFRzKkptbDJHS0pqLVFoZCV6JHxB
VTg7b2xUI1E3MGhnUmchS0Z5JXsxRG8qI3J9cUAKekh0b1BLOXlxZ1glYVJCR21idWRWS0B3ciZJ
WiphR3R5PUNiPlglQmY9Q2JZRVp7N2FGWENPOFk5blF3b3J5OUhECnpzMDxmITR3VjdnM3s9YTEt
VE5QZihFK01RKlVZU3Z6bjE1M0AoVSphMXhlIVM1RkdrU083YnNzaj5eJV5xfj87Twp6ZFE8N3o1
RVh4e1dGQ0RAKzMtajspRGdEV04waXJLNTJsYkwmQUwjRHVnVyY7SHtmS3lPVmw+JSVaPSRqRT1M
dVQKeiteJE9FSj9JVF8mbDRyXz07KVc1ZCQkU3VRKCY2KW90PihFel43NWI1ayNTWV5gWUFBJjx8
RyVvbzZtSzV5Njx4CnpuIyZYUUg7MGFZM0orSSlQKW9JZVNKTm9OOXMlfnFqNU47M0B1U19+cUJJ
Pzc+dGlaQG4jIyhRTWk5Jjt0ZkVGVQp6N0luJj4zZ29iM01KKUdhSzJsdW8qKmB2PkheMlhXK3ZY
andMSEdDWHQ0KDNMTlRQUks/WWU2NyFPPUBuUj02UFoKemQwIUZtaHkhRCQ+cDQwKmUycmEjU0hU
QWMzb1FKU0t6ayVoP3h6SnZHQlE/JEZFJHhJPD8qZjdrRDVvNGBfYlpNCnpHZ1ctU09nYiVYJT5H
REFnIUJ4S3NfWEIhQ0JgI3d7TEg0el9GRGluPyQ+TSR5d2JRXlk1QlQqZ3VfNm96X2EkKgp6SjNn
KUlLQ3k3PzxFdUhYSmxMRSYmTShaKWpfVWtvN0M9eWpeMHs8QGtwdip0SilgVjJjclMqJVoxSn1v
cztTV1YKeiRAUyV2I1dCdW5HYn4pWllARE0+ZnVBMlBaaEthNDN6eT4rXyY8fXxfSHxwUT0mbHwt
YjdSclczISp6NzhROFg9CnpfUW5PSlVaeCV7Um1LOUljb305VTZMM0FqRiZvR15LRm9rTFJHQXNS
a21MVCpAMXZ3S2k9KzR5eiZXKEFaZV9VTAp6STZye3tZKV4jWjBAaEpwMyFxa0Q/M291JnhQcEZq
MzNvQjstektjYFp4KCR3ZTt5eHYqUHVTWSk+M3s3ZnhURFQKeisqVXV4JFhaMD5IfHwyM01ne2Vz
Kjh6Pj13JDdkb1cqWFQ2VzFrNChySmlIezxiSiopbVd4azJha2QlJEkoMEc5CnpOSmppYlRJVEJA
Zn5EZ31ediZhVWFXX1lKMClCaW5SdVVEMVpiJXp8Sk9RPG8tZ0sjckI8NkRBWDVAMndVPmBCYQp6
c1I0P1Y8Q2Y5Rjc1IW9WUXNRb3pUSiMkZ2xAXihrKD5wXndFfU00ezBRWHxIaHtJQ3ZTKmZpWklp
VjAlc0VrVTAKej8xY3luMWs3MDl2bUZLPFZKfVVuMCt1SzB4fm8rMTJfV0ZebnxaKHxfNitJVTxe
fnN9anZHfG02aE1jVVhQYXtfCnplJHxRKGlqd305ejZqRDNBI2dxbkttX3hTKihmJDc/JGE1cHU+
VXNYPkswQ2ooeDNkaDFSNmBFVVQ/KjlheXReXwp6TlZCcT1HNE5PYlFFfTdeMHooNzc5TChIJWZu
PVViJWx7ZXU+Q0BAPEwqfHZvbyppe3AqMysqLSRxP3E/SlQ7UlkKejkxKWRMLVJ7IVp2MGtDNFBt
U3hxNnswSnVsY1d2ejlFaGxIOXIoaTxKYEIpS1pKaS1JaW8tP3ZKeWMzNmFVU3xFCnpabExyZU5P
dmtUOyVvSl5laUFZakVjcSlkaSk3UWxNNXtBPUM/VVRncXk8cFFPNjN0JlltZnpEPVBXb2MmMT4o
Ngp6ak5hUSNjZFA5ZDhvYlRMa3NuR1lBZ3BpMVVmUCNSNXteSVVTVHpXVSRxMnt9ci1xRW1RPm1Y
bG1JfFlaQF5+ZCQKenE2QVAmUkNCTDJzMCp5Z09ZWlE+Vk97Xz1yJmdBNUU1NlM9QFg5bmU8dTRY
flAtQjB5IXw0bGE9WWErclBnJCZTCno7SEx8TV9jTEZ+RCk2eyFMKlomYVB0bXVEdyRHai16UX1u
cDtNKjBhNVFxdj9RbEg4MzhEaFEtLWVfNVNJWE54Twp6WEI1WlpxX3EwM09aaGN3JHBTcGVAMFJw
LUMlaTt9ZkNQVTlRbXJaTmVtMUItbCtTYFZPNzFFcnRVZ3ExKT1tRXYKenY/STgzaSshQ2drIVBi
bjVmTjhrK3Eyc0w+ZzItMW83WllKRnFVdSYxb31aNEdKYjR0Z0g9bm9ZWiZfTCo0Ozk9CnpgOTZt
eHRWJjxQQS1ERVF2Qz9YfVZgaHY8b3RnJDI+WEhRSG19YSR7dXA8diVlOChve0NGeXNkSFFWJiFg
U1k1Rwp6UnNBbXJeJGJ8UDwxcjJDSDRfaEtkfVQ8cCl0MStkS29fUlB2YjdRam5QJkhkZztieD9l
LUdtQ0dEODA1Jn0zOyYKeks2enliT0k5eiNYO2RhN0Y9TD5xJEJpNUpBNHg+UHt7QG5OelNWQzF5
Wk4wOTthd3UkOSM5MlpSOFdYeylIP1l0CnooOzc1PTBFek5qQkNhQ2l6UnBONztFTlRWIThhS2Et
YFV5KigoRW5wMWcpTjJXZVdRfEpyOz4ydGVndyZOTWBrLQp6KDIzPS1mYnc3ez0yc29ldjQyQEYx
TDk2d3ElSHJ9dGREIVEyVGY0cDx5fTZNRVJ1R0NRYlFVWFZLS0NJeGc7aiMKenYjXigkclNiSStu
bU92YElCb2QzcVYtRzZ4TWFDPmJ7WVZHe3hTXiVCRFImK1k+U1BkNWcqJmIyb099ejg3UmZpCnpx
YVR9TEFzbkpfXlozU0JFK0lzVHROUzRAVk5fT352ZHtFRkF9e0p+VTx0RilLPm9FZ0opN0g4RSlH
OSlPVT4oaQp6UnBYRkVsO3RwVXAqX0dUWSNwRUFTLTY1WS1xQmk5NXFGQmdOXzxTQV9CVFU/anZs
Xm03MGdoKUtsPEArdVpxVX4KekorNk9OITR8Tjw7b0Yta2tOQWd0M1UjfTJkYCRnZjRoUjh0SFNt
OE5JPkR4eW0hMyVVX2d4SW1CSXJLUGZDNkgtCnpmRiFHZyhUWnJoaWVxSkZpczA1NHNkbHt9bH4w
R2dSTGdxOXlmd1R3REgmRVYyaD4jSiF4SEQ7Sn1DWDtxWkRfOwp6eEtGVV5aZHByKWxRIyZ1eDB7
K1ViQCNGSEQxZ1ombWVoIVRlN3Atblo8aDl5MjNaIyktMGBNRkw8bTEmJSlDOCkKemcmcChKaGxC
cmFQZlBEPXRJaXopNWY1fChNIWJOPkY/a1Y4OEtKdFhoaDU3VEZ+QmFAVTkwRyNDe2Q7UCQwWCp1
CnpGPChqXyhNVUhsezx5V15TfHk0I2xNUj51WmFTMkhAbFdjVDx8NGZSZDs0QUo9QWohe2trUFhv
OyV5UD5kV31YUgp6VyNMT001ZiFlM1FAUDg2cGtFY348bnJsMiYyPk16JnRDP2FVRkl1bmRtZEEm
SnZNa1pSSmdoSFBKZDJuTEZ4SFYKelpCaX1wKGRSezFuakVPJXJAPCFyK2Y4fj1ZMHFOMXtERnhG
JFAxZkxTYHg5LU8wKVA7XzkybXRiNHpaZHgwaXpkCnpvUU1+Q0dORkxiRFpifGp1ckBWeEwlYzRl
ZHZSXk5xeTwwPDxGWF42JGdreFA0UUhjPUdOcT89V3o3b1hLX2FCQwp6bD4/TGUzXmU8KUBkQHRh
Y3QpeGd7X0BYMl8yeH1BcFdgY0ojP05sc1pHWj1RSDM1clE2RFg+K2hWKWYtaVBkcC0KenlPRUZI
aXkmTWBwNmtjeDQ2YWJHYzY8Zj9tcWRmYjlBNHpTP2VfNm5QZWIwMGZaTj08R2t2fDdEQkc2SHhF
dHtBCnpCJFQ5Z1lTT0FhX1l7RTtLMVYmYytIVigjSVlaeFc1Sy1KNHY/OHtUM3dxYjdzQH09QkQq
SzdjVG9zPUFVUiVVKgp6KykkdktEZG9tMHtfZ3JFQThSYj5MamtHQEYySHhEM0l4bUhPTW4jQDA5
KEBxQW9oMWhWRi0qSkp8K2UxK1RZYyQKejBseVl6aWhlKU0+KXlROyl0RjV5MzQ8b3smI0owWi12
aUtsJTxMcmZCU0M1UlJPWSh5blFyYXpMendSVS08TyMoCnoweCkxS3poUUVra29eNUs7UG90NzYw
QSQ4OWlMdl9nLXQkSUk1SEtlbk1+YFVPUDhgWGRBTC1ZJjt9a2NveFMxawp6Kz9td3Yyem1RP3Up
dz5vUCt0PVUrUExXTzB8MHdeMm5wYHVTbEZ7eyhCQk96cz12ckhHbk1uIW9vfWlyK0EjZjsKejZh
bW00WVo+THNITy11I0NSfEJ2YmsyekY5QTtjVEBhbDkmODlXXkRvdzZTI0dzT1N3YCVFWGtLbWtF
e0IxbngpCnozMypyQGRPZmNsb3lhUDRQUzFpbWxzVC13ajQwakZ7KFpMQmJvLTNURzlwNUZfY3lm
e1UyVCsrcFoyN0FSV2NUcwp6cktOSSlQOSp2M14jRyhIc2N7PjJVKD89ekE4bG88bDlqOGk7dCt5
PFlfKnlBeEZWJXBAWSNAVys+bSs7O3tYOXMKek0tYlVkdHBhbkIyWTRBJTFOV3R6Yn5vY1ArfEI1
Y0JpfGdxdXo0PnBwV0FydXUjd2NiZnl2M0pJckhZfShBJE1TCnoqTVl4V2BVKmhtOygtP0FwK0Ax
JTF5dnlJSmJyYiRGRDU3fCRiTnY0eE1BJENXcU0jO0g3RmIpQEp0eDBXJlpFPQp6M1ozTFV3b0Jh
UHlhYUF8OEZWKHhHUmlYMSsyYUUqb018WUk2eDh1YGowaWdKcXw9T0EhM0ZTXkp0OWxZZ0BYT3cK
ekVgVz8zTkYzQyhsQVopXlN2MGtYcnhfJXNaTTMqLSV6KHQ7ekwlbChJWiskYD8wNEt4fE19XzlE
OFlXbnhoSCtUCnpjYkc4R0Q/aX1+KUllLSVzMl9jYih+U3M0MkFMaDBEbFopWmtnMyQ1ZlZzcEJK
JXRLRWwzMnVGZDZKKF57YmxrVgp6eUohI3kzLSUkTlRqN2FWS3x2ZDZCIygtdmV7bDZRRjM7fSE/
JklTPXs7czYkT2V2P3h1PjYxQ2clXzd8QylCQkoKenRAeGMqUng+bnFvNzRlfXJuUU1HcGAoMUdi
IVVkVUp6SyFick8yQjNZMzMmaF5GVD92UGl9VTBeejlhSj5DJmJ8CnoyOyotVz4oMVJCc3xUVnJf
TFcpRng9Kn5YNH1YMiQ/NF94MSF2WX0wUlIkTm80S3pnKVRseEsqJGxYTyktLVdnOwp6O1EyM29x
bVg7WmZSSEZ8VUIjdy10XkdOK3BFaCojSihNWko9SHVNJipQdjxGWCZfSW88T301S2llOX0lIX0l
KjUKejVvTW18RDJ+ZV8he19UZCMhT3ArNSY5aEFMbjQwUDEoRyQrPEVHJDF0Z3UlZDNjWSpJamF8
P2w9ej09SDdgJSlGCnpHPit7cG5rb14/WX4zOGtKdyk2ZHY9e0ZzY3tkZTBOXlkrRko7ZU07YTle
M3MyKj1UYj4hcVc9dzV9ejdoKmojRAp6eWRnKlc2dD0lM3tEQjdYZCpAVENHXjN0ZjhhfEU7K01g
fUgjNiY7M3hlaUcpUnA+WWZMentaaWdwKDZ7JFV+V1AKejBKKl88Jn01eE0zMVotZkgqWmFJTm5L
RllqXntjJjNAanV4Q0FyQCY8c1h2PXdQR3dgNiZheGk5TUN1OCFWemJlCnpEb21PfkQtND11TlAq
YGJwSC1Oa0IkJGF4UTZDeHBWRisydDlvQGBRXlYpTV94bUZYPCZFJlRGWEpWZStyTngrXgp6WkZy
JF9ZVGM/Zmkjcil4TWxGemZCU2xXayhOQnApZFAkeS1AdjZqa0wlVFdNRiNmWVp0Vlk1UmBWRUFl
JSlOSUMKei1TeFBzaSlUNnRKLWJmXkdJSyMlbTFjUWpiPjMhXjNnVTRfK2hrM1YoWGlfT2VzUDl1
VkRCVEN7I2FTSD13dGZjCnpCVG5mMG5fbTNaI1k0IztRWEA2fU9ZMEBza1Iza2spVHw4U1ZSKWxp
Yld9UF55SUtsbVdJRSRXWDY+OFgtKWwpUwp6RStCfGROS0RNMEZ1O1JwSXZtWSQpSVQ1TlhuUFlP
YnQxOTxpdVN7REw2Q2M2WmclIz1hPGphc04wWG5POXFGdjIKemV+b15Ga2xNbWMkNkVmYkR3fkMq
NitmczAleV8+Qj5SITctMT97PyRvKnoke149TlNqS1BFfT1QfURGWTFNUFdQCnp7PCZ9T0NxNFJC
MCQybkFTTyU7NGJKOEJRRV5Sc3h0PlN8SiZkOWhhWUZhOFRKWFUtOWB7fm49Z1R9JWVNYl9ARgp6
UjtBWShhe0wjUHExQS0jZSowLVVYKmdpQyghNX4pYmlUajQhZkVPPVlxWiFlSDRpRnRuR2tQZnU0
aW5XPXBTNlcKei02OXRXT0pSa1VBMjdiI0NwLXBqV20wYlN5QGM0fnd6LWN1cDglRjhYQ01IajYy
XiVkcjBgZjQ0bHNXejUrNFNjCnpPYUE0JFNzej9EaDBRQ3dgdnY9bWhecC1genNrSyFnY2c/PClK
PW8hT0w1QkpycmQyTSQxYV55aWFNKUVNeVBjOQp6PkI4VEh0THE4PmdxZVImRzc5PEIoSzlWeWQj
Q3JFUShgJWtEbV5FekwrS0BhNnNyVFpBR2RwP1ZAe05acEpBVGMKelFGZGdYQVUxKXJ8RzM1SDdu
YCRuIXlhKyt4NShkVHN0VC1QZzskZX00Q3d4ey1eZ1gycDdua0tqfmxASGl7fEpMCnp7Y0UpWGtT
OVg3Qm49U2FoNE9XWUg+YFY7XlkmS0w3QEpYSSZQRUREekVgJGNmTDdQUCRUfHYlWkREaSReUFZ7
OQp6KlhNMHN3cWVYPDwkfkx+QDt3UUAoaXtTOTJ9WntaOVE3fTtiWj5CZUZkeTdhPkVHWnsqfVgk
Q1NOJCZLIzV+JSoKem9WZlJFc2NsdDIxfEh5KGFub3ZSS1FPJHAwOVhXPlc3ck1UMS1EP0lmZzN0
TWIkfjN1RGhwQ3xmYlF2SmpWaVZmCnokRVVHZDFLZlJoVUEreCo3PXYkKTZrXl53SjJ6Xn02V3N7
eTZONypAdXRKQlM2UnEpNGtgMHNBbFNiNlVyPDA8Rwp6SDFONE9aV3xnZGIqK0s9K2R1dzchYV4j
NXcyNEZpN0U3czIleTM1ZnBNOFZTT0xoM0JuRF89X0I/RTxhYkB2QHcKenF2Q3ZWO05FO08/ajNW
TzI9JUQkdjspUkpzakhFNShIMmFuX2c0QH5TSV93TGN1KXErbWJeSzh3K19ZeVJ3QFpPCnpmMl4q
RmBXayVndHREWEUkJUA+VG9sM21JZVU5YmhmNDsoaklUOXs9VThXKkx7cDZWWDc/ajw1MiVON2t2
Jn1LJAp6TyNqPG9GaGYtQXt6K1JrPCpTTSsjYnBJdldJSylTbVErVD0reClPWCttJUoyWXpHITFf
cmEoYzF8Oyp+Z2g5IWgKekx8RChNaG4qaD1CNX5yWTZ4Mz04anM7azRgNTRGV2g5Q1MxV00oTTBZ
el4/bmlRTGBlVXIjKTw2TDt3VW43dnhHCnpnanV9fEo+OUt3KXhnVHgmRHY7RFh0O0JqeEw5UWo/
STI5Ni0tZkFOIylTZmxAQkxscC0hYl50UXJDMkwkaGsyOwp6M282MUBVXykpfF5qXzdiYChFPUlS
R082KndkTEhRJV5lfTBEYTFTdFFyfFlxdWYrM0RNJT5NKjxjX0BgQzZ7N1cKenxNfnEyRVcwNVpv
M1pEfVRNZmZQRU1mdTEyRVN1em5pWCpaMDtyZ2VXeVdwMV9+ZzRCRVcrc2t2blJ3RlYheG1NCnoz
RWZVVytAR2BZSj9iVmEqSzBWPjxiIVYoTzxpNGsyTUozNGtRa21JWWgwY0V7ZnF4RHczYyVuVSso
TG5ZPyQ4Vwp6K2J1aUN6PStWQ3phaTMlQExeZlkjSDVLO3pNWnloSl9MKEJmUms0P1Eofj5Ye21Z
R0w/aiMpJVZSRShuTCUxNEAKej1VYTRpYTtWQTkpQnstWCNEJDdlVk5EM31mfXkrKD5xZW5NcTtj
dStybmRUO1pVND9ZST9KIV82KSVfek10S3xVCnpLfFh1JVRaI0spajt+fXhuZ1hpR3FeSnp8Km9s
Mz5uSnB0cHJSPjJlM08oRXw7YTg+eGMjanp5ZX44TjF3bGkkXwp6cl9WMDdXb2QxQEo4ZHt7MHAl
VDY0UzE4enNpRGlkcTJ8OXEkVjlAVTY2K0JuM2VgUztkQjlUXms5M1JyXjBPTiUKenpQMlFtMldn
NW96S0hfN2xpMyohaVpwRjM9Jk1tPGsjY01JQThgbXB2dUdXVXFEJClUJSQ3ZWghSUohY0chWTlS
Cnpua2BGS3M3ejNZJF91SmllVW50ZGQtYjtASFBzfG9oIzhBTy0yQyEhQ2VFXkYqUVRMdXhgKzY+
X3Z0TUxHZGNrZQp6TXl2QE9MNjNRNHh9flErMz1zNzlPaCtiTHhVdFZuNUVPV3IwcTZqR3lrUWBx
NngqOWRLO0xWVUZGWmR2YEQ1cSsKekMqa3IhUG5YTkw2ODZBR1BwSVY7Q1JMTmlldSRuQU1pekVy
U2R4fTVET29CVWBkeUQjYkp1TTN1NypVdUUtI01UCnpgVXJPNmo0cUIpSHM2aDhINyFwUzI5aykw
V2liRF85TjkkbT1BMlJ8bkF8QFFNRnl5SmZySCNscmJCMlgpYmF+KQp6PnJpQE9ERmwkZiVsIXF5
MHNNcClkQkU5T0srZFpGK0JvITJzQzFTNVB8ZVgycTZxMlRZOVQ7RCYpWktCPzYmaiUKelBmSlhX
KkdLbyVDMkApS0FqQGtzeXdpU1VGNlA+fFY0KDs4Mm41TktTJlU/cVliMkJqTDZfV2c7aXhiOEdU
PD0wCnokaClzYGFfJWRLcW5VcEhjfnlqJmdvWWpgJT19c20hZT9VSklfMjdLJllAd1NnWVVFdDh0
ZXEwRSF8I340Vl9ZXwp6Mj9JS0NpK1FTR2c0Kn03NWxwWE1ENnxxc0BySEJgX2cjTy1JclJhKW80
ajR4NjU4IW5fTyVQI2V9JVp2TGUlPj4Kej5nODV7KTU1b3UlV3BvS3RHWWRJRUpRPmIyXllOTitW
bUVzKHomRSpjQVg3TmZ9Y2NJZGBWcEh7cEJXb3gkcCQ/CnpLSmpQaC1JMzw+TnFKM3AzaFFAeFkm
Q1kpRChkJDdNIWFVanpjOGh0QlpmQDdjfjxxJTRrOWU7KE9KeGo3I1AzMwp6T0dsKHpGJEZLSmFn
NHtGTzJeQS01UDB+a2VAP25QS3FyTitocjE3Ny0lUmReWSNlVTR5QCVmb0Brbl5BZ1NyYSUKekJT
SHUqSW5BaTlTK2BMP3s5VlkwQyRAV01GNm55KEVDYXx6aEt2Z0kzK2IwcVViczY5ZkE3RjtPR21Y
VUNhci1mCnp4Y0F6Jkd5YT5SOERxdWEjVkJUVVF+fFpfbmN9ZUFmS2diPnVhfjVmY017KVU4c1hs
clRjWVJYb0djcX1AYXZuWAp6eFpxR15ERXdwZmVmIW42bVN4eE04SG5gJEMkbn5fO302TSFpU1ZB
SjtCXmI+b0JBTjNYVHNxUWdeUTZQaGQjcWYKenlWYWtIT1laM1IpSnpzOWE8aXBmRi02KiExJShe
OU9Ce3glQWlyVFJVQFl6ZmRlaVpjbzNyR2tURiRfUkFnaXU0Cno0Tnd3WHlfSj4zYSVYK3tOcGtu
SWcpPWlWemZZRWxFUkxTKlB8X2RuYiElYWM0ZF44VTw4QUs8ZDNTeD9DWW1idAp6KXxCQ3tPO217
VXo5ajJge29QLUk+KCFqaC0rIVZVMX1IbVA4bXNyenRVWHhtZU5VUEJ1WFRlQ3A0ezhgRmF7S0kK
ekI1b21COHtreTNFK31kQEQpP1M7OGtNbSswPVpWNmBgal4kRGpPSjN3c3hCOXl1ajdNP0FEbWh6
fC19RHQ5PzUzCnpVJTRMdzNnQ1ZNNzlyT1JxIzJna1Vre0MzM3ooIThHSUxpclZqbnBfSjFSd21M
ZTN3RjFzclMhOVdtP05YWGhMaAp6LThDNFBueEdUZikhKmtnVjN4bUteLVRzTFotNEZ0UDUyblFj
Pz4tYGNYZFo2Q3hxQ3RqbWhRakc+PTxGZD5TVHkKemhhUU4pdVlVaXlKUDJAZGJTQjRNVXB3YDlX
TyElVWM/N20jODx1K31eZ0Bib3dERSZAVmBmQmxMb1IhanRGYSE3Cno8TF8jc2libng9PGl5S3Fn
YHg4NE0zXnorZn1YYTVDeHMhQk5US0hnQSpDVzhMTV5mO1dNWmUoRSkmTX5mPjdMQAp6eDk+QUgq
dlQyQWsteyhJM3J7N2JHJm5PTSlCPnUqQT07YzE8TVZRdT56OHNETmRLcDlGMnRndShAO3thcVZf
NmsKeiM5TDJCaX0/YDFiS0EmdUlQTzI0VXo+KEVPPzROSiZKYG1kdHlmTlNTZmFtY08mZ3pCLWJ+
dVFhZGJxQSRpMm1ICnp3K04tSCpVITY+TjVaWmQ1Kzx5fmRWeH1ZT3M0JiY2KDErJnlFWCpAbzhI
SjxxdzlQZz9hYSZZYnU2NHJ2ZEdZfgp6QU0wNilAZCEpSz9yMVNhIzk7enZmQ0RrTFIzRUo3PzlC
NElZKSEpSk80SzRXUHxnQXNMYjZ1eHNUPSY5Vm1fVH0KeihWdGtNVVAtXjg9M0NxYGs2bkd6QnRM
SDA1eDNSJHhiaHFQKDZ1PD9tNjwwVT1HRkt8bSsodHdlcXdXOTt9RyRICnotcXVWNmtOeD1wNlYj
S1p2cHVleVZpPk13Nnc+bHdyLXR6M2dtdGs9UzRhQTtITU1SZHUwTFI9bnx4SH07bSQ1IQp6Znwl
KXZSPXFHSjdZOCEkWE94ZSVAQDJJP2w1KVR4SCViZD0pflg4Tz5AMjgjZXR+RkIlMmY1JG5PVn5g
SChte00KejYtRWM9Sm05Sjs9OyhNckh0ZWB3PCEld3g4RWZrPks4cHFHYFN2NFM7fmUqKiNQZUhQ
Xk1vYnhgWFMqRWooVC1BCnpfVWdnJE8ycWBmTXEhcSZ5NF4hY19WPjF6JUU3bjtnKnlrfFN6bihy
Tk8rTE5FWGhSMF5ANTxQSVJ3e05adVNtQgp6YHw/WXBDMl5IKjxld01JIzNaZFN6WUwjISE+PlJU
UilAfHIlKHBEdEdQWXx+dikqK1J4Pzc+e0hMWCNOaiFMd1EKeihCJjt2VFBzR19zKEVoIXs8YGpV
Rmw5KGYzRjQ2QktAJXE9ZjZtYEx4WmdkTHh0Kj5nLX4yQ0ohaGI8eiNWeUhuCnpQWCl5cE9gSTZe
QTVvVUdGIT91Mk5sc3BfO3IjeVkrRU1yRTZuLXlrNHxRPlI2QkV1Ujw+JTcmPXUpblpmcFI2OAp6
YjFRSklybChqPHU7a3J4N0Bsa1NPeiQ1Vk45WEQrM3AkMTckQ0VtNVRaQWB4Uj9mJEZ5bC16Pyhw
Uk4pIUM/KXAKekMyTXIrayNie3k7PWE+Y3RyOWZGUUhHRkZzcTR5QFk5d0IxYGxjS31sQXtqQVlJ
M2wyWio8O0QrcldfKSFFNzhQCnpqeSNycWl6ej4mbFdMOXNnZnEwYmhuNFhKWjA0Xj8xbjtwUE1v
TlBCI1p7YFVaNVgta3hMeSt0VVdpPHx4S0Yjawp6WStHelkyZWJWY19qNk51KER9dyp6MW5qdSt9
ej8qSFQ5fHttS0kkT1o9dj8qS0V9RlFNKS1rb3o4MGM9P1FeTjgKell2Y2p6LSQtXjBVdX0oYUhk
dnAmNVNeYSspWERYfTwkfUphWlJ5Ril0ejh4b0k9JUZMe3klajwxSHEyTFRkVUBjCnozdlJmcXl9
I0Roa0IkR2czZnB0QlVrc35eS2FPOHdue20pRTBERUR7YkFGMHteQzctOD5HWGp3Yj5LR2RlWHxn
Xgp6dzZ0X2UtQDFsbDZsLWtzeGZUczBweDB2QnhVfEt4dz91QGNWfTBUY1UyUkdLWHU3aDlJNlle
UlNUIV9pTDdBJm8KekhXVVclb1pWNEs3anxjNXAjSE99NSgpens9QmtkeXkkP0lFSF8+aTVyK04+
V0okUUl6d1d6M1VkRCVZUDtvLXZuCnplO0l7fCQpZFpsKnlheGxvSio0aDgkaHlxbkwtMmQ7d310
fDNMMEtiNWVCNVE2fFU9RERCakRlJHZXcElnLStPKQp6U3FsTj0hI0N9WnxNdylGd0MpPmFOMStY
V2dscio9eWJ6bSE5JEhlQjdCSC08dGplSVluaGB1KXNDNlBIOUdEU00KenlJMEgkRH1ld1cjLVJg
VmZnKTl4dkxXNC0zT2wxPWJ3Y2shYFpJTSleKH11O0JwaGJ3aFFNREE2Q2psVGxaakRTCnpaUGE8
O2h+RyMmVihgRUheYk0qOThiTnZ+WiVmXk9xaGEzYF5gUEpFeGttVlNBSEdgNip2PE9DMl81eiNS
UXZBQAptR0VJJkNkdkw9LV95MnQ+TSgrRjFTRkJSO0NWdjRCbitpLSpzYURZezsocXx7Rj9FVW4K
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM4NjE1YmU1MDBhYjdlOTY4OWQyM2VlZmVlYzFjZmM2YzQwOTQwMmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzCkBAIC0wLDAgKzEsNzcgQEAKKyJ1c2Ugc3Ry
aWN0IjsKKyhmdW5jdGlvbigpIHsKKyAgdmFyIG51bUZhaWx1cmVzID0gMDsKKyAgdmFyIHJlc3Vs
dHNMaXN0ID0gbnVsbDsKKyAgdmFyIHJlc3VsdE51bSA9IDE7CisKKyAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5lcjsKKyAgfQorCisgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisg
ICAgLy8gVHVybiBvZmYgY29uc29sZSBtZXNzYWdlcyBiZWNhdXNlIGZvciB0aGUgV2ViR0wgdGVz
dHMgdGhleSBhcmUKKyAgICAvLyBHUFUgY2FwYWJpbGl0eSBkZXBlbmRlbnQuCisgICAgd2luZG93
LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07CisgICAgd2luZG93LmNvbnNvbGUuZXJyb3Ig
PSBmdW5jdGlvbigpIHsgfTsKKyAgfQorCisKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxl
ZChmYWxzZSk7CisgIH0KKworICB2YXIgbGlzdCA9IGZ1bmN0aW9uKG1zZywgY29sb3IpIHsKKyAg
ICBpZiAoIXJlc3VsdHNMaXN0KSB7CisgICAgICByZXN1bHRzTGlzdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInVsIik7CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iiku
YXBwZW5kQ2hpbGQocmVzdWx0c0xpc3QpOworICAgIH0KKworICAgIHZhciBpdGVtID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKG1zZykpOworICAgIGlmIChjb2xvcikgeworICAgICAgaXRlbS5zdHlsZS5j
b2xvciA9IGNvbG9yOworICAgIH0KKworICAgIHJlc3VsdHNMaXN0LmFwcGVuZENoaWxkKGl0ZW0p
OworICB9CisKKyAgdmFyIGxvZyA9IGZ1bmN0aW9uKG1zZywgY29sb3IpIHsKKyAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZykpOworICAgIGlmIChjb2xvcikgeworICAgICAgZGl2
LnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgfQorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQiKS5hcHBlbmRDaGlsZChkaXYpOworICB9OworCisgIHdpbmRvdy53ZWJnbFRlc3RI
YXJuZXNzID0geworICAgIHJlcG9ydFJlc3VsdHM6IGZ1bmN0aW9uKHVybCwgc3VjY2VzcywgbXNn
KSB7CisgICAgICBpZiAoc3VjY2VzcykgeworICAgICAgICBsaXN0KGBbICR7cmVzdWx0TnVtfTog
UEFTUyBdICR7bXNnfWAsICJncmVlbiIpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgbGlzdChg
WyAke3Jlc3VsdE51bX06IEZBSUwgXSAke21zZ31gLCAicmVkIik7CisgICAgICAgICsrbnVtRmFp
bHVyZXM7CisgICAgICB9CisKKyAgICAgICsrcmVzdWx0TnVtOworICAgIH0sCisKKyAgICBub3Rp
ZnlGaW5pc2hlZDogZnVuY3Rpb24odXJsKSB7CisgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOworICAgICAgaWYgKG51bUZhaWx1cmVzID4gMCkgewor
ICAgICAgICBsb2coYFsgRkFJTCBdICR7bnVtRmFpbHVyZXN9IGZhaWx1cmVzIHJlcG9ydGVkYCwg
InJlZCIpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0c0xpc3QuaW5uZXJIVE1MID0g
IiI7CisgICAgICAgIGlmcmFtZS5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgbG9nKCJbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkIiwgImdyZWVuIik7CisgICAgICB9CisKKyAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIH0sCisgIH0KK30oKSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyZjM2OGNhMDY1NmEwZDljZjIwMjVl
OTQ1MTQ2NWI3ODNkZjA4MmYuLmVkZGQ1YmQ1Mzc4MDc2ZmM5OGQwOTAwNzNmYTk3OWI4MTk1MzA2
MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC01MTQs
NiArNTE0LDcgQEAgd2Via2l0Lm9yZy9iLzE2NjUzNiBpbnNwZWN0b3IvY2FudmFzL3NoYWRlclBy
b2dyYW0tYWRkLXJlbW92ZS13ZWJnbDIuaHRtbCBbIFNraXAKIHdlYmtpdC5vcmcvYi8xNjY1MzYg
d2ViZ2wvMi4wLjAvIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTY2NTM2IHdlYmdsLzIuMC55LyBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzE2NjUzNiB3ZWJnbC9wZW5kaW5nL2NvbmZvcm1hbmNlMi8g
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNjY1MzYgaHR0cC90ZXN0cy93ZWJnbC8yLjAueS8gWyBT
a2lwIF0KIAogIyBUaGVzZSB0ZXN0cyByZWZlcmVuY2Ugc3BlY2lmaWMgZm9udHMgb24gTWFjIHBv
cnQuCiBCdWcoR1RLKSBmYXN0L3RleHQvZm9udC13ZWlnaHRzLmh0bWwgWyBXb250Rml4IF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIx
MjRlNDhiMTFlODM2Y2EzOWRmYjQ1MDA0OTU5MTYyZWY4MmE2ZTAuLmU0NGU1NmNjNWRmZGY4MDBj
MDU5ODdiZjczMjRiYjhmMzkyN2UzZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
Y2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA0MSw4ICsyMDQxLDYgQEAgaHR0cC90ZXN0cy9t
aXNjL2xhcmdlLWpzLXByb2dyYW0ucHkgWyBTa2lwIF0gIyBUaW1lb3V0CiBodHRwL3Rlc3RzL21p
c2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5weSBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9taXNj
L3dlYnRpbWluZy10d28tcmVkaXJlY3RzLnB5IFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3BlcmZv
cm1hbmNlL3BhaW50LXRpbWluZy9wZXJmb3JtYW5jZS1wYWludC10aW1pbmctZmNwLWFmdGVyLXZp
c3VhbGx5LW5vbi1lbXB0eS1mb3Itc3R5bGUuaHRtbCBbIFRpbWVvdXQgXQotaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBbIEZhaWx1cmUgXQotaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIFsgRmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC93ZWItc29ja2V0LWxvYWRzLWNhcHR1cmVkLWluLXBlci1wYWdl
LWRvbWFpbnMuaHRtbCBbIFNraXAgXSAjIENyYXNoIGJ5IGFzc2VydGlvbiBmYWlsdXJlCiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVx
dWVzdC1oZWFkZXJzLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Y2h1bmtlZC1wcm9ncmVzcy1ldmVudC1leHBlY3RlZExlbmd0aC5odG1sIFsgRmFpbHVyZSBUaW1l
b3V0IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2Nh
bnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBv
c2l0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU4NzM0M2QzMTQ1Y2QwZWVjZjU1Nzc1ZDM1
YWU1MjY2YWVhYTMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1k
YXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3Rv
LWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg3MzAyZDNiZmJkMDJjOWY3ODUyMzJkYmQxODk4MTU3Yjk3MzU2NWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9jYW52YXMvdG8t
ZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sIj4uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11
cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZh
cy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFy
Z3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGMzMmRlYTZh
ZWI5YTVkNjRiNDNkYWZmMmMzNTJkOTczNDhiZWQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmY2YWJkOGE5ZjE2MDkzMGMzYzAzNGQ3ZTA0MTQ0ZmQy
NDJlZjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFkQXJncy5odG1sPC90aXRsZT4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRl
c3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwiPi4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Jl
YWRQaXhlbHNCYWRBcmdzLmh0bWw8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNjYjJlNDI2MTAyNWZiNjY5
MTZhM2Q0ZTM1MzJmMDJlZTI1YTA4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0
ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC5odG1sCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFn
ZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmI3ZTYwMmM2MjRiZTQxNWJiZmY0NWJlYzIxNDYyNjI0Mjk0ZjQ1OC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBF
RElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4SW1h
Z2UyREhUTUwuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtp
dC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5U
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJ
bWFnZTJESFRNTC5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sPC9hPgotPGRpdiBp
ZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sIiB3
aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGMwZDFhOTAyMGJkNmQ2MzBhYzQyYWRmODk0MDljMDgyMDc4YjFjNzAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAotWyBQQVNT
IF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyYTFmZjM4OTI0NTQy
MGE4MDY4MjQ5OGYzMDY3ZGZlYjRjNjNhY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRs
ZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleFN1YkltYWdlMkRIVE1MLmh0
bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDwvYT4KLTxkaXYgaWQ9Imlm
cmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMDFfdG9fMDA4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWY0YzAxNjlkMjAz
NTE3ODdkZTk5Y2ZjNmRjMDkyMzliZjI1MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAw
OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGUxM2Q2N2U5ZGJmNGIzYmMxZDlkODJhMDFlNDBlNjYwODAzMDZlZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMDFfdG9fMDA4Lmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1s
Ij4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wMDlfdG9fMDE2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmQ5OTAzMGE3YmJlYTE5
NWQ3MTk5MDZhOTBjMjQ1NjY2MjRkNjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCitbIFBBU1MgXSBBbGwgdGVz
dHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWRkOTAzZWZlZmQyZTU3NjkwMWExMDU1ZDQwNTBjMTVkMzE1MzgzYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMDlfdG9fMDE2Lmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sIj4u
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgor
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wMTdfdG9fMDI0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTBmMTM5YTBmMDVmMWMyZDU2
NzhhYTAwMzNkZjFmMDk5YzNjMzJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMg
cGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDIwM2VmOGFhODk4OTgyZTJiMGU0NjE2ODMxZDkyNDY5YzUyNWI0MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBidWlsZF8wMTdfdG9fMDI0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sIj4uLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MjVfdG9fMDMyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGVhNzM3YTFlN2IyZDI5NGM1YzY3
ZWMyNmU3NjlkZjlhMzNkNzY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWQ4MDI1NWMyNTZiYzM3MWJiZTY3YmNlODZjNThhM2Q3NGU2ODViYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3Jt
YW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciBidWlsZF8wMjVfdG9fMDMyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sIj4uLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbCIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNf
dG9fMDQwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWI5ZTkyNjdjMDM3NGZiY2E2MzBmODhj
NGUxZGM1ZWM1Yjc0YzhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzM1ZDY1YThlYzMwYmIyZjE3MmIxNzJjNDMwODI1NzUwOWY3MDU0ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAzM190b18wNDAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBp
cyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5j
ZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBX
cmFwcGVyIGZvciBidWlsZF8wMzNfdG9fMDQwLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sIj4uLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0
PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9f
MDQ4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGYyNDM0MWNhNjJiMDNjYzdkNTdkOWFiOTlj
ZDRhOTJiM2JmYmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDE2OWU5ZDhkZjJkYjdlZTA3MTBlNWY2YmM3YTYwODc5ZTU5OTc5OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA0MV90b18wNDguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciBidWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sIj4uLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjA4NTU2OGE4ZDQ0NzFmMTY4YTc4Nzc3YjU2ZjI3
MTczYTYzMjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY5
NzgzNzkwMzU1Mjc4OWY5YTBiYzRmNTJiMWM4MWI5N2U4YThmNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA0OV90b18wNTYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0
cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVy
IGZvciBidWlsZF8wNDlfdG9fMDU2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEg
aHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sIj4uLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wNDlfdG9fMDU2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDE5YWExOGVmNzkwYWVlYjdiMTIwNTc3YTA0ZGM1ZTVi
M2ZmNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDU3X3RvXzA2NC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNTdfdG9fMDY0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZhZDFl
NjFhMDk3ZDQ1NTY4MTVjOTUyZTE4ZWQ3YmUwMjQ0NTUzNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1
N190b18wNjQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdl
bmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4g
RE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZv
ciBidWlsZF8wNTdfdG9fMDY0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJl
Zj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NTdfdG9fMDY0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44OTU2MzY2MTUzODNhNDFhZWU5MGQxOTI1ZTAyZDliZTlhN2Zl
ODc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDY1X3RvXzA3Mi5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wNjVfdG9fMDcyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQwZmNiN2Vj
YTBlMTJkZWE5ODA3Y2QzYzljYjhiZDVmZjliZThlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90
b18wNzIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBi
dWlsZF8wNjVfdG9fMDcyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVf
dG9fMDcyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZy
YW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YWYyYjdlZWNkNWU5ODc2ZDM4MzgxMGM3OWY0OGU1ZTI5MGVkMDJl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDczX3RvXzA4MC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NzNfdG9fMDgwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAyNzczNzVkYzQ3
MDNiYTU5MWE3ZTIyNmFjYjkwZjVjYjFjYzYwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18w
ODAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9U
IEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWls
ZF8wNzNfdG9fMDgwLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9f
MDgwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA3M190b18wODAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kODQzOTZmMmU3NjkwMzg0NTdiZGNmMWU5NTQxYzA5MWFjYTRkNTRjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgx
X3RvXzA4OC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFf
dG9fMDg4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I5YWJhYzM0ZmFmYTlk
MTY1YWNiOTI5MDRmOTg3NGE3ZTgzZWZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVE
SVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8w
ODFfdG9fMDg4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4
Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA4MV90b18wODguaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgor
PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMjY4N2YwZTA0M2E1MjJiNDE0YTEyOWM5NjYxZDIwZGIxMWRiYjRiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitU
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3Rv
XzA5Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9f
MDk2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJlNTJhOGNjNTY2ZWZkODcz
ZDY2ZjUwMGU0YTY1ZGU3MjBmMTYyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wODlf
dG9fMDk2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0
bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA4OV90b18wOTYuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MWRkYjI1M2JkZjEyMDA3ZTIwMjIwZTY5YzA2YjIwMmRkM2IzZGZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEw
NC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA3ZTRjMTk5ODQ2M2UwMTUwMTE5
YzRiMmZjZmQyZTRiZjIxODhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8wOTdfdG9f
MTA0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDk3X3RvXzEwNC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWw8
L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5
N190b18xMDQuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTA1X3RvXzExMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNDVjZWVjYTdmNTY3ZmFiOGYzOTg0YzI4ZmQ1ZDBiYWZhYTMzNDU1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5o
dG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xMDVfdG9fMTEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQxNDE2Mzc5NDQ0MTk4NTAyZDE2Yzhm
ZTdkZmEzZWU2MzFlMDUxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMDVfdG9fMTEy
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTA1X3RvXzExMi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw8L2E+
Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90
b18xMTIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEz
X3RvXzEyMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZmNkZTE2ODU5ZTI3ZGNjYmM4MzY4YWY2MTI2MzIwMTRkNjc4ZTE5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1s
CitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMTNfdG9fMTIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiNTI0NjEyZTc1M2Q2MGNiZTcyYzM5YmQ3
MzMwM2ZiNmY4NTQ1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbApAQCAtMCww
ICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMTNfdG9fMTIwLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTEzX3RvXzEyMC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw8L2E+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18x
MjAuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3Rv
XzEyOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NzI1ZmYyYjUzYmM5NGEzYzhiZWQyYjlkZGYyZDQ2ZmExODFjNDgyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sCitb
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MjFfdG9fMTI4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUwZTkxYTFiNjMyNDdhMTcwNzA1MzZiMTBiYjA5
ODQ2ZjRhZDQ2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMjFfdG9fMTI4Lmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIx
X3RvXzEyOC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWw8L2E+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgu
aHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEz
Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDIz
ZDZiYTA1MDFiYzY4NjViZmM2ZGM2ODNiN2E4YjFmYTFlMGYwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTI5X3RvXzEzNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlf
dG9fMTM2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI5YWY3ZTg1MzI0MTZlMDkzOGRiZjNmOGU4MjExZGEx
Mzg2MDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMjlfdG9fMTM2Lmh0bWw8L3Rp
dGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3Rv
XzEzNi5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWw8L2E+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2RlNjZh
MDNlYjEyMjcxM2I4OWQ1ZDExYTIyNTRlODIxODdkYmZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3
X3RvXzE0NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9f
MTQ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODAzYTIwMTI2MTYzZjQ4YjQzZWMyZTc1NjIzMTA3M2NiYTAz
ZjIyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xMzdfdG9fMTQ0Lmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0
NC5odG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNDVfdG9fMTUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTRkYTYxYTM3
NjUzNjkxN2UyYWNhYmU5ZmFjMmI4ZjUwYjM2ZDExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3Rv
XzE1Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCitbIFBBU1MgXSBB
bGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjM2ZjlhYmI4ZDcwNjE1ZWY4Nzg4ZmE3ODAzNjIzY2ExOWE3M2Y3
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29u
Zm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNDVfdG9fMTUyLmh0bWw8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5o
dG1sIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJh
bWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xNTNfdG9fMTYwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMmQwZDViNzYyNjdl
NzNlM2NjNTBiYzUwNzI5MDk4NjQ3MjQzZGRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2
MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTdhZWE4YWVhMTcyOWEyMWZlZGFhMDQzZTZlYzI4ZWM5MDNlMzE3Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJn
bC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9y
bWFuY2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNTNfdG9fMTYwLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1s
Ij4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUi
PgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8xNjFfdG9fMTY4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzhjOWZmOWMyYzMwOWY2
YTExZDQ3N2JiZGM0NjdlNjIzMjgwMzkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCitbIFBBU1MgXSBBbGwgdGVz
dHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmYzZjg0YmU1MzcyZjllNThiYjYwOGI1YjZkYmQzN2FkYzE2NGZlYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNjFfdG9fMTY4Lmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sIj4u
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgor
PGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGIzNWYxMWM0OWRmN2VlMGY0
M2Y2NTViZDc3ZmE1ODJlYWM5ZjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMg
cGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGJhMzE1NWQ2NjliMTJjMWZmZGM4YmQ4ZWI4YTcwNzVmYjU5NWM3YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBidWlsZF8xNjlfdG9fMTc2Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sIj4uLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlm
cmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbCIgd2lkdGg9IjgwMCIg
aGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
NzdfdG9fMTc4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDhkOWEwMjQ3N2RkNmZhZjk5MDFm
M2VkNjY0ZGQyOTQzMTc5NjEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTVkMTY2ODExNjM0MGZiZDA1NWFjYzAwNjc4NjAzMzgyNWU0NTJkOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzE3N190b18xNzguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3Jt
YW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciBidWlsZF8xNzdfdG9fMTc4Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sIj4uLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbCIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVu
ZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFiMmY4NjIxYjM3Y2E5NWMyMzRmMzgzMWVhZTIwNjYzOTFjMTRl
YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVu
ZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbAor
WyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0
aC1zY2lzc29yLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzFjY2FiMDRjMDJmNWEyOGNkZDI4NmM3NmFkMDBlZjcyNjYxYWNlNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3Jl
bmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgY2xlYXItZGVmYXVs
dC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRl
cmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwiPi4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9j
bGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWw8L2E+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdp
dGgtc2Npc3Nvci10ZXN0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xv
ci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVu
ZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZm
ZXItcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU0OTE3ZThkZDA3OWYyNDBl
Y2VjOGI3ZmUwZDllNjkyNWJlMTY3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZm
ZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNr
LXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRt
bAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZl
Y3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1h
ZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI5MTc2OTM1MWVjYzM4YzIwOGM1ODIxZGI3ZTkwZjg3OWEzYTc4NjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3It
bWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9u
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBF
RElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgY29sb3It
bWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9u
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZl
Y3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sIj4uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1z
aG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw8
L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1u
b3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjRjNzc4YTAwNzcyYTE5ZTRmZjMzNWEwNGZiYWU1Y2Y1NzBkZDFmZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmls
dGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
Zm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmE4OTllYjk1NTAwMmM0MmJiZTQwZjNhYmJmYjA2NzcxYzRkNTE1
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sCkBAIC0wLDAg
KzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGZvcm1hdC1maWx0ZXJhYmxlLXJl
bmRlcmFibGUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtp
dC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1h
dC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1y
ZW5kZXJhYmxlLmh0bWw8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9
IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI5Y2I0MmFkZWRiOTZhMDkxNTgwMWRkM2UwZDU3NTI1NGQzZGYxYmEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAot
WyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVl
bmNhbnZhcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNGQ3
OTYxNjUyODVlYzFmYmNiODFmZGY3ZDJhMmI1Y2QwNzJlMjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2Fu
dmFzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
LW9mZnNjcmVlbmNhbnZhcy5odG1sCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMGE1MTNjY2VmYTBkNTdiOTQ3NWM3MjZjM2E1Y2U3ZDUxMDFlOWRiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNj
cmVlbmNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08
aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2Fu
dmFzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyY2M1OGY4N2M0NWE2MDZjMzYwNDhmNTNhZDc0YzkzMDdjYzg2Y2Ez
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDwvdGl0bGU+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1s
Ij4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sPC9hPgotPGRpdiBpZD0iaWZy
YW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1s
IiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJl
c3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZhZTBkOWVjNDIx
ZGZmMjc5NjFkN2IyN2JiNjkzZjA1OGM0Y2VlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgor
CitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMg
cGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMjU1OWJlMDkzNmM0Y2Y0ZjM1YmMzNGYzMTRjNDQyOTkxNmE2NTM1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9wbmctaW1hZ2UtdHlwZXMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBp
cyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5j
ZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBX
cmFwcGVyIGZvciBwbmctaW1hZ2UtdHlwZXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBo
cmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBl
cy5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1p
bWFnZS10eXBlcy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwt
YWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkOGU4NmJkN2JiMjhlOTVjMDJiZjc5Njg1ZmZlYzYwN2U3YmRjMTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9jYW52
YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29t
cG9zaXRlLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1k
YXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZjI1YTQxNTkxZjcwZDM4OTAyNmQ2ZmFhODViYjVhMDE1NmIxZGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRh
dGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBm
aWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZv
cm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBU
ZXN0IFdyYXBwZXIgZm9yIHRvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sPC90aXRsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4K
K1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbD93ZWJnbFZlcnNp
b249MiI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2Fu
dmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRl
Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ4MGE0NGI4OTQ2Y2Q1NmM4NzIzNmYx
ZGYyMGVlZjVkYThlZWM5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICsw
LDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMxYWU4NzFhZDFjMjVlOWZlZDA0NmVlMmViMTQ0NmZh
OTg2NjZkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0bGU+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1U
ZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lv
bj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgot
PGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJn
cy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMzY3ZDFkZDU0NGYwZTg2OTU3MGZlYmUyZmQw
ZDNmYjQwMWQ4ZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1U
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwu
aHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQyOGY1YWQxOWViYmM2ZGVjNDRmNTJiZmE0ZTU1NjI4ZTJjNzdmYWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBO
T1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRl
eEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUwuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjOGQ1Njc3OTRiZmQ5YjE1NDEwMTYzYWFhM2ZjY2EwNmNhMTc5OGYzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
Ci0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIK
LVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhT
dWJJbWFnZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzBiZTY1
ZGRmZjQyYjM0YzczMzczNmUzNTNkYzg2YTgzNDU2MzcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJE
SFRNTC5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1Yklt
YWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdjOWE1NWNmMDAzMTE3MWQ5
YmE2NDM4NTEyYzk3OTI2ZTI3ZjBhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAx
X3RvXzAwOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMjYzOTBjMTk2NGM3MjM2YjI1NTcxYzhlZWM5MDBk
NmJiOWMyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDAxX3RvXzAwOC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90
b18wMDguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEyNTk2MTE0Y2ZkYTk2MWEx
ZDFmOWQ4YWRhYzViY2M4OWE2NDRkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5
X3RvXzAxNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3N2E3NDlkMzc2MzNiYWFkNGI2ZDNhZDllZTQ4ZTg3
YzRjNWVhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDA5X3RvXzAxNi5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90
b18wMTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RlODU2OGY5YmU4YmZmMjZm
OGFhZWFjNzA0OGIwN2Q3NzNmM2EyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3
X3RvXzAyNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyYjdhOTU5NTBjNjBjZGVkYjU4NjU0ZDY5ZjQ4ZjI4
N2UzNGJjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDE3X3RvXzAyNC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190
b18wMjQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDI1X3RvXzAzMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIxYjgyYWJmZjBmYmI3NTNi
YzVjNTFiNWU3YzU5NGE0ZTBhZTgxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1
X3RvXzAzMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NTM3YjU4ZWViYWY4ZjQzZTJjYTViYWYzZjRjMWYy
ZDU5YTU4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDI1X3RvXzAzMi5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDMzX3RvXzA0MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RkNDRlNTFiN2EyOWQ1YWZl
NzUzNDliYTc5YTlkYmU4NjJkZjgzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMz
X3RvXzA0MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MDNlZTI5YWE0ZjNiYjVkNDEzZTRmMjRmZjU1Zjcw
ZWQwMzI4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDMzX3RvXzA0MC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190
b18wNDAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBhMTk5YTlhMTNlN2I1OTQ2
ZDViYTNhZmJkZjgyMTc2NjRmOGFjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQx
X3RvXzA0OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5YWI1NTRjZjUwNDkxNjNlNjQ2NGM4OTg2NDM2OWQ2
YWU4NjUxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDQxX3RvXzA0OC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90
b18wNDguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRmOTU1NzAxMGZiMjhmOGU4
ODQ0MzI1MjllMTE5ZjhlNTAwYTA3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5
X3RvXzA1Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YmQ3MDA5ZjZiZTcyOWQ3ZDUwZTJhNjZkM2Q1OWMx
MjcyYjNiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDQ5X3RvXzA1Ni5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90
b18wNTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkzYThiYzcyNDdmOTYzZmNj
ODNmZmY5YjNiYjRiMzEzMjUzMDYxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3
X3RvXzA2NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmVhY2Q2YTVmYzUxYWI5OGQ1ODlhY2NkZTVlNGJk
MmIwN2M3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDU3X3RvXzA2NC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190
b18wNjQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY4NzVmMmZkYjY4ZTRiYjI5
Mjk4YzM5N2NiMDYxYzQyZmYyMTZkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1
X3RvXzA3Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNjhkMDZhNjQ3Y2IyODFkOTgyN2E5NjdlNTU3NTFi
NWIwMjgwYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDY1X3RvXzA3Mi5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90
b18wNzIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU5NzA4N2UwNjJlZTY5M2E5
ZmYxYjVjN2NhYjg5YjVlMGQwMTAwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDcz
X3RvXzA4MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YThmZWQzNGJkNTE2ZDI4YzU1YWQ1MDhhYmM5ODgz
ZGE0YzEwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDczX3RvXzA4MC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190
b18wODAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUyZjY1MWY0OGQ3MWIzMzVh
YjBiY2RkYjMyNmYwYTI1ZTgwOWY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgx
X3RvXzA4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNhNTdkYTkzY2VjMGM5Y2VmODc1MWM2NjA1NGRi
ZWQzNWIxZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDgxX3RvXzA4OC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90
b18wODguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM4MjgzYTEyM2UyMjEyNDZl
MGYzMTNiNzJjODNmMDExYzQzZWY3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5
X3RvXzA5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYmZiMWIxYjE3M2FmOGQyNjg5ZTE2NDBlNjlmYzAw
ZTFmZTI0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDg5X3RvXzA5Ni5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90
b18wOTYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhYmJkNDdlNzhiNTdhODk3
ZTNjN2FmZDdjY2I0NmQ2OGYwYjJjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3
X3RvXzEwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYTM3NGE4ODJkMDJiNDRmNTVkNTQyZTExMjA2NjAy
ODgxYzM3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDk3X3RvXzEwNC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190
b18xMDQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI0NTM1OWQyMTM0ZWI5MDU3
Njk2Mjc0ZmUzYjI0ZTIxMjM4ZDQwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1
X3RvXzExMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYWFlZjdlNTM4YmM1YWJmOTMyM2IyNmIxY2VmZDNk
ZDZiY2ViMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTA1X3RvXzExMi5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90
b18xMTIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE1NTE0MzIxYWVlYTRiZTU5
M2Q3YTI5NWU0NjhjNGUyNDNlN2I2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEz
X3RvXzEyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiODRjODQ1YjcyMGM0MDU2NzVkZmVjZDE5ZDAyNWMx
MmEyNWI0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTEzX3RvXzEyMC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190
b18xMjAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwMDI4NWExZGJkMjkxNjYx
YWRiMWQxMzllNWJiYTIyOTdmMWRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIx
X3RvXzEyOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhmZWM4M2FiZmY3OTExYzAwOWU4ZTM4YzYzZDU4
ZjFiNmI4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTIxX3RvXzEyOC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90
b18xMjguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIyZDNiZjcxZGMxY2JjNjlm
MGM2YzU2NmRlNzJlMjc1ZjRjZWQzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5
X3RvXzEzNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMDFjNjkzNWVhNWIwZWU0MjY0NjA5ZmU2OGZmMWY0
MWM1OTk3YTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTI5X3RvXzEzNi5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90
b18xMzYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU5ZTc2YmMyNTMzYTA3ZjE3
N2I5NWMxYzFkMWFiMmE1MzU1YWI2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3
X3RvXzE0NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzMyNjY4YmE4N2U0MTA3ZDliMGM5NWYyZWM0Zjky
MTE1MjJiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTM3X3RvXzE0NC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190
b18xNDQuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGE2NGE0ODk0YWRhNGFmZmIz
ZGVjN2Y0YmQxMzhlZWNhMGQ0YTAwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1
X3RvXzE1Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZTEwNWMxYjhjMWE3MzM0ZTllNDc2MGFlMGQ1OWU5
MWIxMDMzODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTQ1X3RvXzE1Mi5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90
b18xNTIuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYxOWI0MjIzMzQ0ZGE2NjY1
ZGY3NmRkYjkwY2YwZmIwMjBiMGFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUz
X3RvXzE2MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNGVjZmQ4NzQwYzIyZWM0NTdkOTFhNzg4Y2JkN2E1
M2ZkMzNhMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTUzX3RvXzE2MC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190
b18xNjAuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY3NmQwMmJhZDAwMzk3M2E2
ZmFlMDc3YWViN2JiOTQ5YjgzOWJjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYx
X3RvXzE2OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNDhkZmU3ODYwYjMwYWU2NDllMGRlYjIyMWM3MWU5
ZmM0ZDE1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTYxX3RvXzE2OC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90
b18xNjguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMxODQ4ODg4NGExNjY1NWUw
NDRiOTUwMjM3Yzk3ZTVhYjRhYzIzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5
X3RvXzE3Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMDJkNWU3NzExYzM2MGVjNTk2OTI4ZWI2ZmUyZmY2
MzNlODQwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTY5X3RvXzE3Ni5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90
b18xNzYuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTc3X3RvXzE3OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JhNjc1YmQ3NjJlYTc2NmRk
Zjc5MjFmNDQ5NGMzZjJhY2E1ZDI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3
X3RvXzE3OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzg1MWU5ZDdlMzc5MzUwODkwNDA5Y2M1YWE2NzVk
ODg4YTJlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTc3X3RvXzE3OC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190
b18xNzguaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Np
c3Nvci10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWMzMGNlNTdlNmNiMzUyN2EwNmExMTQwODQyNGY4
MThiYWY0YzZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29y
LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0
Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1k
ZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZl
ci13aXRoLXNjaXNzb3ItdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxNmJjMTg4YzUyZjM4NWU5OTA1
YjMwZGM5N2NhZGRmMTlhZGVhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13
aXRoLXNjaXNzb3ItdGVzdC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNl
LXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdy
YXBwZXIgZm9yIGNsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRt
bDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRo
LXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1
ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0i
aWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNj
aXNzb3ItdGVzdC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+
PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5k
ZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZl
ci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2Vk
LWZyYW1lYnVmZmVyLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0MWYzZmI5
YmRkOGJmNGVmZjk5NTU5ZDMyZjQ3YzcyZDkyZWM3MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91
bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAu
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcv
Y29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNv
bHV0aW9uLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9j
b2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29s
dXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3JlbmRlcmlu
Zy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJl
c29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmYwZWIxZmM0NzljNjhiNjY1ZTQxZWY1NTk5Mzcz
NTc0ZmQyYjEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFz
ZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNv
bmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIGNvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFz
ZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9j
b2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29s
dXRpb24uaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3Qt
YW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sP3dlYmdsVmVyc2lvbj0yPC9h
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90
LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWw/d2ViZ2xWZXJz
aW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFi
bGUtcmVuZGVyYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU3Yjg1ZmIwNGU5N2M5NGZhZjNiODdkNzc0MDdiMmQ1NGI0NjFl
MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
Zm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MWVhMjYyODJm
MTAyOGYzN2QzNmI2ODkzZTE0MjI1OTQ5NmVmNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJh
YmxlLXJlbmRlcmFibGUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciBmb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw8L3RpdGxlPgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgor
VGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw/
d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1s
P3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmOTkwZjI0NjAzYTI0NmUzYWU1ZGM5MTA4MDdmMTkzMGYzNmQ5
Yzg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAot
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTIKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVz
L21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDM3ZjE5NDMxNDRlYTllMjhiYjM4YzE0NWVkNjg0
ZDY2OTg5MjgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJn
bFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIxMDdlOWZj
ZDE5YmNhZDA5Mjc5MDE4MjFjZTYxODliODc0MjdhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRl
c3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBw
ZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvdGl0
bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08
ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM1ZWQ3
ZGU5YTA2OWUwMDQyZjk5MmUzYjI1ZGQ3YTEwMDY3MjBlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBF
RElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxkaXYg
aWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2UuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIxN2YyMTVmYzBmMjEwNGM4NGUyMGU1Y2U1ZWYzNzQ4ZmUzMDVhM2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRt
bD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1h
Z2UtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA2ZDYzZjIxMDZhOGVk
Yjk4MDY5ZTdjNzQzOGVjODMzMjM3NmUzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkg
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElU
IC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgcG5nLWltYWdl
LXR5cGVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1h
Z2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRl
bnNpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWQyMWRhN2ZlOWMzZTU1MzlmMWE2ZjU3
ODg4NzgwZTY5Mzk0MGUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMv
cmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVz
dHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTU0Yjc1NTNhMTE3ZTdiZDJhMmIzMjc4N2U4MTNkZjJmNDI4OTkxYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9leHRl
bnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciByZXF1aXJlZC1leHRlbnNpb25zLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yIj4u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9u
cy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbD93ZWJnbFZl
cnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29w
LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
Mi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWI0ZDEyMmU3NTg2OWRjMWExN2ExYzEwYzNhMDM2MmUwODFjNDY1YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVu
dC1zaGFkZXItbG9vcC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw/
d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXIt
bG9vcC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2ds
c2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU5YTdmZjYw
MTQ4NmYxMzJmZTU0MjU5MjMyNDZhZmIxYzJjMTI3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9v
cC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2Vu
ZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBE
TyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9y
IGZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0i
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2Zy
YWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFk
ZXItbG9vcC1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxvb3AtY3Jhc2guaHRtbD93ZWJnbFZlcnNpb249
MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Yt
c3F1YXJlcy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWQ4OGZmOGM4Zjc0N2VkYzMyZWI0YjRjOTdjNmIxMTM3
MDAxYTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wz
L3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sP3dlYmdsVmVyc2lv
bj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1z
cXVhcmVzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIv
Z2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzFlMGUwZWM2MTZjMGY5NzU5Y2VlZDIzODQ0ODI4OGNjMDE2NzliYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNp
cHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNx
dWFyZXMtY3Jhc2guaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13
ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9m
LXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQt
b2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9
ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1j
cmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJh
bWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvbWlzYy9ibGVu
ZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi9taXNjL2JsZW5kLWludGVnZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MWFlNzA0
YWE2MjhhYmI2YWFhMWEwYmZjZWVlYWJhZjlhYTBkOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9i
bGVuZC1pbnRlZ2VyLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNz
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9taXNj
L2JsZW5kLWludGVnZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
Mi9taXNjL2JsZW5kLWludGVnZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTZiNjJmNWU4Y2Q0MDA0NTU3
YzEyYmI2ZjRiYzI2YzhkNjg1MDFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMv
dXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5X
ZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJsZW5kLWludGVnZXIuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWlu
dGVnZXIuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1l
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21p
c2MvYmxlbmQtaW50ZWdlci5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9
IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2ZlNzU2MWFjZGM2YjEyYzI0MzVlOWYwZjI1MDVkYTFiMWNmODhmNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJp
bmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29sb3JtYXNrLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRm
cmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmdsVmVyc2lvbj0yCitb
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5
LWNvbG9ybWFzay5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3Jl
bmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iOTNkOWFjY2Q0NTBkNDE2Yzk3ZjE0MjRkOWEzMzIzOTc5NzcwMTgzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmlu
Zy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBibGl0ZnJhbWVidWZmZXItdW5hZmZl
Y3RlZC1ieS1jb2xvcm1hc2suaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFt
ZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2Js
aXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmdsVmVyc2lvbj0y
PC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11
bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBo
ZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVy
aW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTQ4YzgxODYzM2YyODgyYjE0MDYyMWFjMTkyOTk0NDdjMjhhOGIyOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJp
bmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVm
ZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9u
cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9k
cmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjYy
MTIwMGM2NTNlMzc5MjY5M2MwNGU2MDhlNDgwNzc2MzI4MWY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZl
cnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRo
aXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1j
b25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFu
Y2UgVGVzdCBXcmFwcGVyIGZvciBkcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMu
aHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0
LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0
cHV0LWxvY2F0aW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1s
P3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjYWYzYTUwNDg3MjJiZTQ3NTdlOGVkMTg1NzQ1ZTlhNTFkZWRjOTgx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lv
bj0yCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMjE0Y2E5NDBjMjAy
ODc0ZTgxMDEwNDU0MDYzNDcyOTA3NGE1MmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3Rl
eHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1v
ZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRp
diBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhl
aWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAv
ZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDk0OTFiODFkOTQ1YzhkZDExYzQ0YzRi
N2Y1MGFmODVhMGRmZjE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0
aXNhbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbD93ZWJnbFZl
cnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTIzYzA1ZWU5NzhkOWIwN2I1MmE4
YjZmYmFlMTkwMzMxNDNlMGU0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNv
bmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIG11bHRpc2FtcGxlLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5j
dGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNh
bXBsZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9u
YWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9m
dW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9k
ZWZhdWx0X2Ziby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU5MjJkNjlhMTRlNGNjOWRlYjVm
NDEzNWI1NWI4NzE4YmE1MzgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlv
bmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sg
UEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxl
L2RlZmF1bHRfZmJvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAyZTY3YmIwMTFmMjViZGExODk0ZTRiOGIz
MGMwZTE3YzMzZDAxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGRlZmF1bHRfZmJvLmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Rl
ZmF1bHRfZmJvLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0
X2Ziby5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8uaHRtbD93ZWJnbFZlcnNpb249MiIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2ds
ZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
NDAyMTRjZjZmMmEzYzI2YmZjMmMwYzVhODNlOGRmZmExN2E0MmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1w
bGUvZmJvXzRfc2FtcGxlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMu
aHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlL2Zib180X3NhbXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVu
Y3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmY1ZmM3NWNhYzQ4NzE0NTI5MTUzYzdmMjg3YzFjMDBmM2FjYzQxNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNh
bXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFu
Y2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgZmJvXzRfc2FtcGxlcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAv
ZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJz
aW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVu
Y3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9u
PTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fNF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0i
NjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rp
b25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9f
OF9zYW1wbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmQ1NDM3NGQ3ZTJhNjNlMTBkNjlj
MWU0MGYwYzhkYTczYWNiMjg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rp
b25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIK
K1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlz
YW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNjBkNDRlMmVmMjZiMGVmYzZl
OTNiZDE1OTMxMGM5OTU1YjMyNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJ
VCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGZib184X3Nh
bXBsZXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVs
dGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlz
YW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1s
P3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1w
bGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQwMzJjZjU1ZTk0NTljODYzODNiNzllYmM4ZWQ2ZmFiMTk1NTFh
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVs
dGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFs
bCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAv
ZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9f
bWF4X3NhbXBsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDg2NWNkYTkwZjZlYjdlNzUzZDRlY2YxNjgy
MGQ4NzUwYzY4NGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGZib19tYXhfc2FtcGxl
cy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNh
bXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlL2Zib19tYXhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0
bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJk
LW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBjYjc1OTNjZWM1N2NhMTk0YjBlMzdkNjk3
YTA3MjA5NzNjYWU3OWM4Li5jNTg4OWIxMjU0Njc3ZDNiNjJlNDBlNzZiNTk1YjA5ZmRiOWViNWU3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1t
ZW1vcnktdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJn
bC10by1jb250ZXh0MmQtbWVtb3J5LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsOCBAQCBU
aGlzIHRlc3QgY2hlY2tpbmcgdGhhdCBkcmF3aW5nIFdlYkdMIGNhbnZhcyB0byBDb250ZXh0MkQg
Y2FudmFzIHdpdGggZHJhd0ltYWdlCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAorVEVT
VCBDT01QTEVURTogMjcgUEFTUywgMCBGQUlMCisKIFBBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUg
WzY0LCAxMjgsIDE5MiwgMjU1XQogUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwg
MTkyLCAyNTVdCiBQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2NCwgMTI4LCAxOTIsIDI1NV0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9wZW5kaW5nX3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2UtdmlkZW8tcmVwZWF0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9wZW5kaW5nX3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2UtdmlkZW8tcmVwZWF0ZWQu
aHRtbAppbmRleCA1MmMxNjc2ZmRkMzE4ZTlmNDA4MjFlNzg3MGM0M2E1OWE2NjE1ZDU5Li45MTBh
ZmJhODY4OWQxNjJlNTk4YzFiY2UwNTQ3MTk4NjIyNzQ5MTE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvcGVuZGluZ193ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVhdGVkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3BlbmRpbmdfd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL3RleC1pbWFnZS12aWRlby1yZXBlYXRlZC5odG1sCkBAIC0xNiw3ICsx
Niw3IEBAIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKIHZhciBnbCA9IG51bGw7CiB2YXIgdGV4
dHVyZUxvYyA9IG51bGw7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci12YXIgYmx1
ZSA9IFswLCAwLCAyNDhdOwordmFyIGJsdWUgPSBbMCwgMCwgMjU1XTsKIHZhciB5ZWxsb3cgPSBb
MjU1LCAyNTUsIDBdOwogdmFyIGJsYWNrID0gWzAsIDAsIDBdOwogaW5pdFRlc3RpbmdIYXJuZXNz
KCk7CkBAIC01MCw5ICs1MCw5IEBAIGZ1bmN0aW9uIGNoZWNrRnJhbWVidWZmZXJIYXNWaWRlbzIo
Z2wpCiAgICAgY29uc3QgcmlnaHRDb2xvciA9IHllbGxvdzsKICAgICBjb25zdCB0b2xlcmFuY2Ug
PSA1OwogICAgIGRlYnVnKCJDaGVja2luZyBtaWQgbGVmdCBib3JkZXIiKTsKLSAgICB3dHUuY2hl
Y2tDYW52YXNSZWN0KGdsLCA0LCAyMCwgMiwgMiwgbGVmdENvbG9yLCAic2hvdWxkQmUgIiArIGxl
ZnRDb2xvciwgdG9sZXJhbmNlKTsKKyAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0LCAxNywg
MiwgMiwgbGVmdENvbG9yLCAic2hvdWxkQmUgIiArIGxlZnRDb2xvciwgdG9sZXJhbmNlKTsKICAg
ICBkZWJ1ZygiQ2hlY2tpbmcgbWlkIHJpZ2h0IGJvcmRlciIpOwotICAgIHd0dS5jaGVja0NhbnZh
c1JlY3QoZ2wsIGdsLmNhbnZhcy53aWR0aCAtIDQsIGdsLmNhbnZhcy5oZWlnaHQgLSAyMCwgMiwg
MiwgcmlnaHRDb2xvciwgInNob3VsZEJlICIgKyByaWdodENvbG9yLCB0b2xlcmFuY2UpOworICAg
IHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDYwLCAyOCwgMiwgMiwgcmlnaHRDb2xvciwgInNob3Vs
ZEJlICIgKyByaWdodENvbG9yLCB0b2xlcmFuY2UpOwogfQogCiBmdW5jdGlvbiB0ZXN0VHdvVGV4
dHVyZXNCdWcxKHZpZGVvMSwgdmlkZW8yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhh
dHRyaWJwb2ludGVyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbApp
bmRleCA1MmQ0MTE3MzI5ZDY2MmE1M2ZiYzdhMmVmMjFiN2RhOTBmMGVmNzVjLi4xMjc2Y2VjN2M5
Y2M5YzhjODg1MTFmN2Q5NjNlNzE5NWE2NDFhYjI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZl
cnRleGF0dHJpYnBvaW50ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50
ZXIuaHRtbApAQCAtMTUyLDcgKzE1Miw3IEBAIGlmICghZ2wpIHsKICAgICAgICAgICAgICAgZ2ws
IHNpemUgPCBpbmZvLm1pblNpemUgPyBnbC5JTlZBTElEX09QRVJBVElPTiA6IGdsLk5PX0VSUk9S
LCAiYXQgc3RyaWRlIGxpbWl0IiwKICAgICAgICAgICAgICAgc2l6ZSwgaW5mby50eXBlLCBmYWxz
ZSwgc3RyaWRlLCBvZmZzZXQpOwogICAgICAgICAgIGNoZWNrVmVydGV4QXR0cmliUG9pbnRlcigK
LSAgICAgICAgICAgICAgZ2wsIHNpemUgPCBpbmZvLm1pblNpemUgPyBnbC5JTlZBTElEX09QRVJB
VElPTiA6IGdsLklOVkFMSURfVkFMVUUsICJvdmVyIHN0cmlkZSBsaW1pdCIsCisgICAgICAgICAg
ICAgIGdsLCBzaXplIDwgaW5mby5taW5TaXplID8gW2dsLklOVkFMSURfT1BFUkFUSU9OLCBnbC5J
TlZBTElEX1ZBTFVFXSA6IGdsLklOVkFMSURfVkFMVUUsICJvdmVyIHN0cmlkZSBsaW1pdCIsCiAg
ICAgICAgICAgICAgIHNpemUsIGluZm8udHlwZSwgZmFsc2UsCiAgICAgICAgICAgICAgIHN0cmlk
ZSArIGluZm8uYnl0ZXNQZXJDb21wb25lbnQsIG9mZnNldCk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1k
YXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjhiOWM3MTU0NzFmYTk5
MTdiNWI5NTExN2MwZDBiZWMwNmY3MmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRh
dGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0KK0NvcHly
aWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB0b0RhdGFVUkwg
YWZ0ZXIgY29tcG9zaXRlIHRlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIHdp
ZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB3aWR0
aDogMTI4cHg7IGhlaWdodDogMTI4cHgiIGlkPSJjM2QiPjwvY2FudmFzPgorPGNhbnZhcyB3aWR0
aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgd2lkdGg6
IDEyOHB4OyBoZWlnaHQ6IDEyOHB4IiBpZD0iYzJkIj48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworbGV0
IGdsOworbGV0IGN0eDsKKworZnVuY3Rpb24gbWFpbigpIHsKKyAgZGVzY3JpcHRpb24oKTsKKyAg
Y29uc3QgYzJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMyZCIpOworICBjdHggPSBjMmQu
Z2V0Q29udGV4dCgiMmQiKTsKKyAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjM2QiLCB7IHBy
ZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSB9KTsKKworICAvLyBDbGVhciB0byBncmVlbgorICBn
bC5jbGVhckNvbG9yKDAuMCwgMS4wLCAwLjAsIDEuMCk7CisgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQpOworCisgIHd0dS53YWl0Rm9yQ29tcG9zaXRlKCgpID0+IHsKKyAgICAvLyBQZXJm
b3JtcyBnbC5jYW52YXMudG9EYXRhVVJMKCkgaW50ZXJuYWxseQorICAgIGxldCBpbWcgPSB3dHUu
bWFrZUltYWdlRnJvbUNhbnZhcyhnbC5jYW52YXMsIGZ1bmN0aW9uKCkgeworICAgICAgY3R4LmRy
YXdJbWFnZShpbWcsIDAsIDApOworICAgICAgd3R1LmNoZWNrQ2FudmFzKGN0eCwgWzAsIDI1NSwg
MF0sICJ0b0RhdGFVUkwgbG9hZGVkIGludG8gaW1hZ2UsIGRyYXduIGludG8gMkQgY29udGV4dCwg
c2hvdWxkIGJlIGdyZWVuIiwgNSk7CisgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSk7CisgIH0p
OworCit9OworCittYWluKCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L2NvbnRleHQtYXR0
cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250
ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbAppbmRleCBh
Yzc5Njk4OGNlMGNhZjI4NTI3NWY2ZDg4MmE0MTQ0YWUyYzVmYjJkLi40MGY0NmE3NDRhYzU5YzNm
YmNmODc4OTc4MWMxNmM0NDM4ZDg4MDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L2NvbnRleHQtYXR0
cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQv
Y29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwKQEAg
LTQ3LDYgKzQ3LDcgQEAgdmFyIGZyYW1lYnVmZmVyOwogdmFyIGZiSGFzQ29sb3I7CiB2YXIgZmJI
YXNEZXB0aDsKIHZhciBmYkhhc1N0ZW5jaWw7Cit2YXIgY29udGV4dFZlcnNpb24gPSB3dHUuZ2V0
RGVmYXVsdDNEQ29udGV4dFZlcnNpb24oKTsKIAogZnVuY3Rpb24gaW5pdCgpCiB7CkBAIC01NSw2
ICs1NiwyMyBAQCBmdW5jdGlvbiBpbml0KCkKICAgICBydW5UZXN0KCk7CiB9CiAKK3ZhciB2ZXJ0
aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoWworICAgIDEuMCwgMS4wLCAwLjAsCisgICAgLTEuMCwg
MS4wLCAwLjAsCisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgIDEuMCwgMS4wLCAwLjAsCisgICAg
LTEuMCwgLTEuMCwgMC4wLAorICAgIDEuMCwgLTEuMCwgMC4wXSk7CisKK3ZhciBjb2xvcnMgPSBu
ZXcgVWludDhBcnJheShbCisgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgMjU1LCAwLCAwLCAyNTUs
CisgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgMjU1LCAwLCAwLCAyNTUsCisgICAgMjU1LCAwLCAw
LCAyNTUsCisgICAgMjU1LCAwLCAwLCAyNTVdKTsKKworCiBmdW5jdGlvbiBnZXRXZWJHTChjYW52
YXNXaWR0aCwgY2FudmFzSGVpZ2h0LCBjb250ZXh0QXR0cmlicywgY2xlYXJDb2xvciwgY2xlYXJE
ZXB0aCwgY2xlYXJTdGVuY2lsKQogewogICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKTsKQEAgLTYzLDcgKzgxLDcgQEAgZnVuY3Rpb24gZ2V0V2ViR0woY2Fu
dmFzV2lkdGgsIGNhbnZhc0hlaWdodCwgY29udGV4dEF0dHJpYnMsIGNsZWFyQ29sb3IsIGNsZWFy
RGUKICAgICBjYW52YXMud2lkdGggPSBjYW52YXNXaWR0aDsKICAgICBjYW52YXMuaGVpZ2h0ID0g
Y2FudmFzSGVpZ2h0OwogCi0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgY29u
dGV4dEF0dHJpYnMpOworICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIGNvbnRl
eHRBdHRyaWJzLCBjb250ZXh0VmVyc2lvbik7CiAgICAgaWYgKCFnbCkKICAgICAgICAgcmV0dXJu
IG51bGw7CiAKQEAgLTEwMiwyMjcgKzEyMCwxNTggQEAgZnVuY3Rpb24gZ2V0V2ViR0woY2FudmFz
V2lkdGgsIGNhbnZhc0hlaWdodCwgY29udGV4dEF0dHJpYnMsIGNsZWFyQ29sb3IsIGNsZWFyRGUK
ICAgICAgIH0KICAgICB9CiAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBu
dWxsKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBi
ZSBubyBlcnJvcnMiKTsKLQotICAgIHJldHVybiBnbDsKLX0KIAotZnVuY3Rpb24gZHJhd0FuZFJl
YWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycykKLXsKICAgICB2YXIgY29sb3JPZmZzZXQgPSB2
ZXJ0aWNlcy5ieXRlTGVuZ3RoOwotCiAgICAgdmFyIHZibyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwog
ICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOwogICAgIGdsLmJ1ZmZlckRh
dGEoZ2wuQVJSQVlfQlVGRkVSLCBjb2xvck9mZnNldCArIGNvbG9ycy5ieXRlTGVuZ3RoLCBnbC5T
VEFUSUNfRFJBVyk7CiAgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDAsIHZl
cnRpY2VzKTsKICAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JPZmZz
ZXQsIGNvbG9ycyk7Ci0KICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7CiAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CiAgICAg
Z2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5VTlNJR05FRF9CWVRFLCB0cnVlLCAwLCBj
b2xvck9mZnNldCk7CiAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CiAKLSAgICBn
bC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdmVydGljZXMubGVuZ3RoIC8gMyk7CisgICAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3Jz
Iik7CisgICAgcmV0dXJuIGdsOwogfQogCi1mdW5jdGlvbiB0ZXN0RGVmYXVsdCgpCitmdW5jdGlv
biBkcmF3KGdsLCB2ZXJ0aWNlc0NvdW50KQogewotICAgIGRlYnVnKCJUZXN0aW5nIGRlZmF1bHQg
YXR0cmlidXRlczogeyBzdGVuY2lsOmZhbHNlIH0iKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImds
ID0gZ2V0V2ViR0woMSwgMSwgbnVsbCwgWyAwLCAwLCAwLCAwIF0sIDEsIDApIik7Ci0gICAgc2hv
dWxkQmVGYWxzZSgiZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5zdGVuY2lsIik7Ci0gICAgc2hv
dWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIik7CisgICAg
dmVydGljZXNDb3VudCA9IHZlcnRpY2VzQ291bnQgfHwgdmVydGljZXMubGVuZ3RoIC8gMzsKKyAg
ICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdmVydGljZXNDb3VudCk7CiB9CiAKLWZ1
bmN0aW9uIHRlc3RBbHBoYShhbHBoYSkKK2Z1bmN0aW9uIGNoZWNrRHJhdyhoYXNBbHBoYSwgaGFz
U3RlbmNpbCwgaGFzRGVwdGgsIGhhc0FudGlhbGlhcykKIHsKLSAgICBkZWJ1ZygiVGVzdGluZyBh
bHBoYSA9ICIgKyBhbHBoYSk7Ci0gICAgaWYgKGFscGhhKSB7Ci0gICAgICAgIHNob3VsZEJlTm9u
TnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7IGFscGhhOiB0cnVlLCBkZXB0aDogZmFsc2UsIHN0
ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIp
OwotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+
PSA4Iik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJnbCA9IGdldFdl
YkdMKDEsIDEsIHsgYWxwaGE6IGZhbHNlLCBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBh
bnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIpOwotICAgICAgICBzaG91
bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA9PSAwIik7Ci0gICAgfQot
ICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSA+PSA4Iik7Ci0g
ICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgPj0gOCIpOwot
ICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgPj0gOCIpOwot
ICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAiKTsK
LSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAi
KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSBnbC5nZXRDb250ZXh0
QXR0cmlidXRlcygpIik7Ci0gICAgc2hvdWxkQmVUcnVlKCJjb250ZXh0QXR0cmlicy5hbHBoYSA9
PSAiICsgYWxwaGEpOworICAgIGxldCByZWQgPSBbMjU1LCAwLCAwLCAyNTUgXTsKKyAgICBsZXQg
YmxhY2sgPSBbMCwgMCwgMCwgaGFzQWxwaGEgPyAwIDogMjU1IF07CisgICAgZGVidWcoYFRlc3Rp
bmcgdGhhdCBzdGVuY2lsICR7IGhhc1N0ZW5jaWwgPyAnYWZmZWN0cyc6ICdkb2VzIG5vdCBhZmZl
Y3QnfSB0aGUgcmVuZGVyaW5nLmApOworICAgIGdsLnN0ZW5jaWxGdW5jKGdsLk5FVkVSLCAxLCAx
KTsKKyAgICBnbC5zdGVuY2lsT3AoZ2wuS0VFUCwgZ2wuS0VFUCwgZ2wuS0VFUCk7CisgICAgZHJh
dyhnbCk7CisgICAgY29ycmVjdENvbG9yID0gaGFzU3RlbmNpbCA/IGJsYWNrIDogcmVkOworICAg
IHd0dS5jaGVja0NhbnZhcyhnbCwgY29ycmVjdENvbG9yKQorICAgIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wuU1RFTkNJTF9CVUZGRVJfQklU
KTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNrKTsKKyAgICBnbC5zdGVuY2lsRnVuYyhn
bC5BTFdBWVMsIDEsIDEpOwogCi0gICAgdmFyIGNvcnJlY3RDb2xvciA9IChjb250ZXh0QXR0cmli
cy5hbHBoYSA/IFswLCAwLCAwLCAwXSA6IFswLCAwLCAwLCAyNTVdKTsKLSAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBjb3JyZWN0Q29sb3IpOworICAgIGRlYnVnKGBUZXN0
aW5nIHRoYXQgZGVwdGggJHsgaGFzRGVwdGggPyAnYWZmZWN0cyc6ICdkb2VzIG5vdCBhZmZlY3Qn
fSB0aGUgcmVuZGVyaW5nLmApOworICAgIGdsLmRlcHRoRnVuYyhnbC5ORVZFUik7CisgICAgZHJh
dyhnbCk7CisgICAgY29ycmVjdENvbG9yID0gaGFzRGVwdGggPyBibGFjayA6IHJlZDsKKyAgICB3
dHUuY2hlY2tDYW52YXMoZ2wsIGNvcnJlY3RDb2xvcik7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQgfCBnbC5TVEVOQ0lMX0JVRkZFUl9CSVQp
OworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgYmxhY2spOworICAgIGdsLmRlcHRoRnVuYyhnbC5B
TFdBWVMpOwogCi0gICAgaWYgKGZiSGFzQ29sb3IpIHsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIpOwotICAgICAgZ2wuY2xlYXJDb2xvcigwLjUs
IDAuNSwgMC41LCAwLjUpOwotICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7Ci0g
ICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMTI3LCAxMjcsIDEyNywg
MTI3XSwgdW5kZWZpbmVkLCAxKTsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgbnVsbCk7CisgICAgZGVidWcoYFRlc3RpbmcgdGhhdCByZW5kZXJpbmcgaXMgJHtoYXNB
bnRpYWxpYXMgPyAnYW50aWFsaWFzZWQnIDogJ2FsaWFzZWQnfS5gKTsKKyAgICBkcmF3KGdsLCAz
KTsKKyAgICBsZXQgTiA9IDI7CisgICAgbGV0IGJ1ZiA9IG5ldyBVaW50OEFycmF5KE4gKiBOICog
NCk7CisgICAgZ2wucmVhZFBpeGVscygwLCAwLCBOLCBOLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBidWYpOworICAgIHJlZENoYW5uZWxzWzBdID0gYnVmWzQgKiAoTiArIDEpXTsgLy8gKDEs
IDEpCisgICAgcmVkQ2hhbm5lbHNbMV0gPSBidWZbNCAqIE4gKiAoTiAtIDEpXTsgLy8gbGVmdCB0
b3AKKyAgICByZWRDaGFubmVsc1syXSA9IGJ1Zls0ICogKE4gLSAxKV07IC8vIHJpZ2h0IGJvdHRv
bQorICAgIHNob3VsZEJlKCJyZWRDaGFubmVsc1sxXSIsICIyNTUiKTsKKyAgICBzaG91bGRCZSgi
cmVkQ2hhbm5lbHNbMl0iLCAiMCIpOworICAgIGlmIChoYXNBbnRpYWxpYXMpIHsKKyAgICAgICAg
c2hvdWxkTm90QmUoInJlZENoYW5uZWxzWzBdIiwgIjI1NSIpOworICAgICAgICBzaG91bGROb3RC
ZSgicmVkQ2hhbm5lbHNbMF0iLCAiMCIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgicmVkQ2hhbm5lbHNbMF0gPT0gMjU1IHx8IHJlZENoYW5uZWxzWzBdID09IDAiKTsKICAg
ICB9CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQgfCBnbC5TVEVOQ0lMX0JVRkZFUl9CSVQpOworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgYmxh
Y2spOworCisgICAgZGVidWcoIlRlc3RpbmcgdGhhdCByZW5kZXJpbmcgd29ya3MuIik7CisgICAg
ZHJhdyhnbCk7CisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCByZWQpOworICAgIGdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wuU1RFTkNJTF9CVUZG
RVJfQklUKTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNrKTsKIH0KIAotZnVuY3Rpb24g
dGVzdERlcHRoKGRlcHRoKQorZnVuY3Rpb24gdGVzdERlZmF1bHQoKQogewotICAgIGRlYnVnKCJU
ZXN0aW5nIGRlcHRoID0gIiArIGRlcHRoKTsKLSAgICBpZiAoZGVwdGgpIHsKLSAgICAgICAgc2hv
dWxkQmVOb25OdWxsKCJnbCA9IGdldFdlYkdMKDEsIDEsIHsgc3RlbmNpbDogZmFsc2UsIGFudGlh
bGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIik7Ci0gICAgICAgIHNob3VsZEJl
VHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2Iik7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJnbCA9IGdldFdlYkdMKDEsIDEsIHsgZGVwdGg6
IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDEg
XSwgMSwgMCkiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQ
VEhfQklUUykgPT0gMCIpOwotICAgIH0KLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRl
cihnbC5SRURfQklUUykgPj0gOCIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVy
KGdsLkdSRUVOX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRl
cihnbC5CTFVFX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRl
cihnbC5BTFBIQV9CSVRTKSA+PSA4Iik7CisgICAgZGVidWcoIlRlc3RpbmcgZGVmYXVsdCBhdHRy
aWJ1dGVzOiB7IHN0ZW5jaWw6ZmFsc2UgfSIpOworICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBn
ZXRXZWJHTCgxLCAxLCBudWxsLCBbIDAsIDAsIDAsIDAgXSwgMSwgMCkiKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJnbC5nZXRDb250ZXh0QXR0cmlidXRlcygpLnN0ZW5jaWwiKTsKKyAgICBzaG91bGRC
ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykiLCAiMCIpOworfQogCitmdW5jdGlv
biB0ZXN0QXR0cmlidXRlc0FmZmVjdENvbnRleHQoYWxwaGEsIHN0ZW5jaWwsIGRlcHRoLCBhbnRp
YWxpYXMpCit7CisgICAgc2hvdWxkQmVOb25OdWxsKGBnbCA9IGdldFdlYkdMKDIsIDIsIHsgZGVw
dGg6ICR7ZGVwdGh9LCBzdGVuY2lsOiAke3N0ZW5jaWx9LCBhbnRpYWxpYXM6ICR7YW50aWFsaWFz
fSwgYWxwaGE6ICR7YWxwaGF9IH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKWApOwogICAgIHNob3Vs
ZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSBnbC5nZXRDb250ZXh0QXR0cmlidXRlcygpIik7
CiAKLSAgICBnbC5kZXB0aEZ1bmMoZ2wuTkVWRVIpOwotCi0gICAgdmFyIHZlcnRpY2VzID0gbmV3
IEZsb2F0MzJBcnJheShbCi0gICAgICAgICAxLjAsICAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwg
IDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsICAxLjAs
IDAuMCwKLSAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAgICAgMS4wLCAtMS4wLCAwLjBd
KTsKLSAgICB2YXIgY29sb3JzID0gbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAyNTUsIDAsIDAs
IDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAot
ICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAg
IDI1NSwgMCwgMCwgMjU1XSk7Ci0KLSAgICBkcmF3QW5kUmVhZFBpeGVsKGdsLCB2ZXJ0aWNlcywg
Y29sb3JzLCAwLCAwKTsKLSAgICBjb3JyZWN0Q29sb3IgPSAoY29udGV4dEF0dHJpYnMuZGVwdGgg
PyBbMCwgMCwgMCwgMjU1XSA6IFsyNTUsIDAsIDAsIDI1NV0pOwotICAgIHd0dS5jaGVja0NhbnZh
c1JlY3QoZ2wsIDAsIDAsIDEsIDEsIGNvcnJlY3RDb2xvcik7Ci0KLSAgICBpZiAoZmJIYXNEZXB0
aCkgewotICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmcmFtZWJ1ZmZl
cik7Ci0gICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVS
X0JJVCk7Ci0gICAgICBkcmF3QW5kUmVhZFBpeGVsKGdsLCB2ZXJ0aWNlcywgY29sb3JzLCAwLCAw
KTsKLSAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIFswLCAwLCAwLCAy
NTVdKTsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7Cisg
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdldFBhcmFtZXRlcihnbC5SRURfQklU
UykiLCAiOCIpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuR1JFRU5fQklUUykiLCAiOCIpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFs
KCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSIsICI4Iik7CisKKyAgICBzaG91bGRCZSgi
Y29udGV4dEF0dHJpYnMuYWxwaGEiLCAiIiArIGFscGhhKTsKKyAgICBpZiAoY29udGV4dFZlcnNp
b24gPCAyKSB7CisgICAgICAgIGlmICghc3RlbmNpbCkKKyAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoImNvbnRleHRBdHRyaWJzLnN0ZW5jaWwiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
c3RlbmNpbCA9IGNvbnRleHRBdHRyaWJzLnN0ZW5jaWw7CisgICAgICAgIGlmICghZGVwdGgpCisg
ICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb250ZXh0QXR0cmlicy5kZXB0aCIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBkZXB0aCA9IGNvbnRleHRBdHRyaWJzLmRlcHRoOworICAgICAg
ICBpZiAoIWFudGlhbGlhcykKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImNvbnRleHRBdHRy
aWJzLmFudGlhbGlhcyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbnRpYWxpYXMgPSBj
b250ZXh0QXR0cmlicy5hbnRpYWxpYXM7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUo
ImNvbnRleHRBdHRyaWJzLnN0ZW5jaWwiLCAiIiArIHN0ZW5jaWwpOworICAgICAgICBzaG91bGRC
ZSgiY29udGV4dEF0dHJpYnMuZGVwdGgiLCAiIiArIGRlcHRoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyIsICIiICsgYW50aWFsaWFzKTsKICAgICB9Ci19CiAK
LWZ1bmN0aW9uIHRlc3RTdGVuY2lsQW5kRGVwdGgoc3RlbmNpbCwgZGVwdGgpCi17Ci0gICAgZGVi
dWcoIlRlc3Rpbmcgc3RlbmNpbCA9ICIgKyBzdGVuY2lsICsgIiwgZGVwdGggPSAiICsgZGVwdGgp
OwotICAgIHZhciBjcmVhdGlvblN0cmluZyA9Ci0gICAgICAgICJnbCA9IGdldFdlYkdMKDEsIDEs
IHsgZGVwdGg6ICIgKyBkZXB0aCArICIsIHN0ZW5jaWw6ICIgKyBzdGVuY2lsICsgIiwgYW50aWFs
aWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDEgXSwgMSwgMCkiOwotICAgIHNob3VsZEJlTm9uTnVs
bChjcmVhdGlvblN0cmluZyk7Ci0KLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihn
bC5SRURfQklUUykgPj0gOCIpOwotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGds
LkdSRUVOX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihn
bC5CTFVFX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihn
bC5BTFBIQV9CSVRTKSA+PSA4Iik7Ci0gICAgaWYgKGRlcHRoKQotICAgICAgICBzaG91bGRCZVRy
dWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiIpOworICAgIGlmIChhbHBo
YSkKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdldFBhcmFtZXRlcihn
bC5BTFBIQV9CSVRTKSIsICI4Iik7CiAgICAgZWxzZQotICAgICAgICBzaG91bGRCZVRydWUoImds
LmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIik7Ci0KKyAgICAgICAgc2hvdWxkQmUo
ImdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSIsICIwIik7CiAgICAgaWYgKHN0ZW5jaWwp
Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykg
Pj0gOCIpOworICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiZ2wuZ2V0UGFyYW1l
dGVyKGdsLlNURU5DSUxfQklUUykiLCAiOCIpOwogICAgIGVsc2UKLSAgICAgICAgc2hvdWxkQmVU
cnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIik7Ci0KLSAgICBzaG91
bGRCZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSIp
OwotICAgIGlmICghZGVwdGggJiYgY29udGV4dEF0dHJpYnMuZGVwdGgpIHsKLSAgICAgICAgdGVz
dEZhaWxlZCgiV2ViR0wgaW1wbGVtZW50YXRpb24gcHJvdmlkZWQgYSBkZXB0aCBidWZmZXIgd2hl
biBpdCBzaG91bGQgbm90IGhhdmUiKTsKLSAgICB9Ci0gICAgaWYgKCFjb250ZXh0QXR0cmlicy5k
ZXB0aCkKLSAgICAgICAgZGVwdGggPSBmYWxzZTsKLSAgICBpZiAoIXN0ZW5jaWwgJiYgY29udGV4
dEF0dHJpYnMuc3RlbmNpbCkgewotICAgICAgICB0ZXN0RmFpbGVkKCJXZWJHTCBpbXBsZW1lbnRh
dGlvbiBwcm92aWRlZCBhIHN0ZW5jaWwgYnVmZmVyIHdoZW4gaXQgc2hvdWxkIG5vdCBoYXZlIik7
Ci0gICAgfQotICAgIGlmICghY29udGV4dEF0dHJpYnMuc3RlbmNpbCkKLSAgICAgICAgc3RlbmNp
bCA9IGZhbHNlOworICAgICAgICBzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxf
QklUUykiLCAiMCIpOworICAgIGlmIChkZXB0aCkKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSIsICIxNiIpOworICAgIGVs
c2UKKyAgICAgICAgc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSIsICIw
Iik7CiAKLSAgICBnbC5kZXB0aEZ1bmMoZ2wuQUxXQVlTKTsKKyAgICB2YXIgY29ycmVjdENvbG9y
ID0gYWxwaGEgPyBbMCwgMCwgMCwgMF0gOiBbMCwgMCwgMCwgMjU1XTsKKyAgICB3dHUuY2hlY2tD
YW52YXMoZ2wsIGNvcnJlY3RDb2xvcik7CiAKLSAgICBnbC5zdGVuY2lsRnVuYyhnbC5ORVZFUiwg
MSwgMSk7Ci0gICAgZ2wuc3RlbmNpbE9wKGdsLktFRVAsIGdsLktFRVAsIGdsLktFRVApOworICAg
IGRlYnVnKCJUZXN0aW5nIGRlZmF1bHQgZnJhbWVidWZmZXIuIik7CisgICAgY2hlY2tEcmF3KGFs
cGhhLCBzdGVuY2lsLCBkZXB0aCwgYW50aWFsaWFzKTsKIAotICAgIHZhciB2ZXJ0aWNlcyA9IG5l
dyBGbG9hdDMyQXJyYXkoWwotICAgICAgICAgMS4wLCAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwg
MS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAgIDEuMCwgMS4wLCAw
LjAsCi0gICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAgIDEuMCwgLTEuMCwgMC4wXSk7
Ci0gICAgdmFyIGNvbG9ycyA9IG5ldyBVaW50OEFycmF5KFsKLSAgICAgICAgMjU1LCAwLCAwLCAy
NTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAg
ICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAy
NTUsIDAsIDAsIDI1NV0pOwotCi0gICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNv
bG9ycywgMCwgMCk7Ci0gICAgY29ycmVjdENvbG9yID0gKHN0ZW5jaWwgPyBbMCwgMCwgMCwgMjU1
XSA6IFsyNTUsIDAsIDAsIDI1NV0pOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAs
IDEsIDEsIGNvcnJlY3RDb2xvcikKLQotICAgIGlmIChmYkhhc1N0ZW5jaWwpIHsKLSAgICAgIGds
LmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIpOwotICAgICAgZ2wu
Y2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAg
ZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycywgMCwgMCk7Ci0gICAgICB3dHUu
Y2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgICBn
bC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOworICAgIGlmIChmYkhhc0Nv
bG9yKSB7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIGJvdW5kIGZyYW1lYnVmZmVyIG9iamVjdC4i
KTsKKyAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmcmFtZWJ1ZmZl
cik7CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CisgICAgICAgIGdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wuU1RFTkNJTF9C
VUZGRVJfQklUKTsKKyAgICAgICAgY2hlY2tEcmF3KHRydWUsIGZiSGFzU3RlbmNpbCwgZmJIYXNE
ZXB0aCwgZmFsc2UpOworICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IG51bGwpOwogICAgIH0KIH0KIAotZnVuY3Rpb24gdGVzdEFudGlhbGlhcyhhbnRpYWxpYXMpCi17
Ci0gICAgZGVidWcoIlRlc3RpbmcgYW50aWFsaWFzID0gIiArIGFudGlhbGlhcyk7Ci0gICAgLy8g
Qm90aCB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBjYW52YXMgYXJlIE4uCi0gICAgdmFyIE4gPSAy
OwotICAgIGlmIChhbnRpYWxpYXMpCi0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRX
ZWJHTCgiICsgTiArICIsICIgKyBOICsgIiwgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNl
LCBhbHBoYTogZmFsc2UsIGFudGlhbGlhczogdHJ1ZSB9LCBbIDAsIDAsIDAsIDEgXSwgMSwgMCki
KTsKLSAgICBlbHNlCi0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJHTCgiICsg
TiArICIsICIgKyBOICsgIiwgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbHBoYTog
ZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIik7Ci0gICAg
c2hvdWxkQmVOb25OdWxsKCJjb250ZXh0QXR0cmlicyA9IGdsLmdldENvbnRleHRBdHRyaWJ1dGVz
KCkiKTsKLQotICAgIHZhciB2ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoWwotICAgICAgICAg
MS4wLCAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIC0x
LjAsIDAuMF0pOwotICAgIHZhciBjb2xvcnMgPSBuZXcgVWludDhBcnJheShbCi0gICAgICAgIDI1
NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAw
LCAyNTVdKTsKLSAgICBkcmF3QW5kUmVhZFBpeGVsKGdsLCB2ZXJ0aWNlcywgY29sb3JzLCAwLCAw
KTsKLSAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoTiAqIE4gKiA0KTsKLSAgICBnbC5yZWFk
UGl4ZWxzKDAsIDAsIE4sIE4sIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAg
cmVkQ2hhbm5lbHNbMF0gPSBidWZbNCAqIChOICsgMSldOyAvLyAoMSwgMSkKLSAgICByZWRDaGFu
bmVsc1sxXSA9IGJ1Zls0ICogTiAqIChOIC0gMSldOyAvLyBsZWZ0IHRvcAotICAgIHJlZENoYW5u
ZWxzWzJdID0gYnVmWzQgKiAoTiAtIDEpXTsgLy8gcmlnaHQgYm90dG9tCi0gICAgc2hvdWxkQmVU
cnVlKCJyZWRDaGFubmVsc1sxXSA9PSAyNTUgJiYgcmVkQ2hhbm5lbHNbMl0gPT0gMCIpOwotICAg
IHNob3VsZEJlKCJyZWRDaGFubmVsc1swXSAhPSAyNTUgJiYgcmVkQ2hhbm5lbHNbMF0gIT0gMCIs
ICJjb250ZXh0QXR0cmlicy5hbnRpYWxpYXMiKTsKLX0KLQogZnVuY3Rpb24gcnVuVGVzdCgpCiB7
CiAgICAgdGVzdERlZmF1bHQoKTsKLSAgICB0ZXN0QWxwaGEodHJ1ZSk7Ci0gICAgdGVzdEFscGhh
KGZhbHNlKTsKLSAgICB0ZXN0RGVwdGgodHJ1ZSk7Ci0gICAgdGVzdERlcHRoKGZhbHNlKTsKLSAg
ICB0ZXN0U3RlbmNpbEFuZERlcHRoKHRydWUsIGZhbHNlKTsKLSAgICB0ZXN0U3RlbmNpbEFuZERl
cHRoKGZhbHNlLCBmYWxzZSk7Ci0gICAgdGVzdFN0ZW5jaWxBbmREZXB0aCh0cnVlLCB0cnVlKTsK
LSAgICB0ZXN0U3RlbmNpbEFuZERlcHRoKGZhbHNlLCB0cnVlKTsKLSAgICB0ZXN0QW50aWFsaWFz
KHRydWUpOwotICAgIHRlc3RBbnRpYWxpYXMoZmFsc2UpOwotCisgICAgbGV0IGNhc2VzID0gW2Zh
bHNlLCB0cnVlXTsKKyAgICBmb3IgKGxldCBhbHBoYSBvZiBjYXNlcykgeworICAgICAgICBmb3Ig
KGxldCBzdGVuY2lsIG9mIGNhc2VzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBkZXB0aCBvZiBj
YXNlcykgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGFudGlhbGlhcyBvZiBjYXNlcykgewor
ICAgICAgICAgICAgICAgICAgICB0ZXN0QXR0cmlidXRlc0FmZmVjdENvbnRleHQoYWxwaGEsIHN0
ZW5jaWwsIGRlcHRoLCBhbnRpYWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KICAgICBmaW5pc2hUZXN0KCk7CiB9Ci0KIDwvc2NyaXB0Pgog
PC9oZWFkPgogPGJvZHkgb25sb2FkPSJpbml0KCkiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9tZXRo
b2RzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9jb250ZXh0L21ldGhvZHMuaHRtbAppbmRleCBlNTI3NGZiOTgwNDU4YWZkMGM3
MzU1OGZjYzkwNDE1OWIwMzhiZDNiLi5kMWU0N2YzMmEzYjA1YzIwZDQ5ZDZlMGQ2OTYyODJhYjFh
NGJhYmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L21ldGhvZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L21l
dGhvZHMuaHRtbApAQCAtMTEsNiArMTEsNyBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIi8+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Rlc3RzL2NvbnRleHQtbWV0aG9kcy5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KQEAgLTIw
LDcgKzIxLDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAidXNlIHN0cmljdCI7
CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgV2ViR0wgY29udGV4dCBo
YXMgYWxsIHRoZSBtZXRob2RzIGluIHRoZSBzcGVjaWZpY2F0aW9uLiIpOwogCi12YXIgbWV0aG9k
cyA9IFsKK2NvbnN0IG1ldGhvZHMgPSBbCiAgICJnZXRDb250ZXh0QXR0cmlidXRlcyIsCiAgICJh
Y3RpdmVUZXh0dXJlIiwKICAgImF0dGFjaFNoYWRlciIsCkBAIC0xNTksNTUgKzE2MCwxNCBAQCB2
YXIgbWV0aG9kcyA9IFsKICAgInZpZXdwb3J0IgogXTsKIAotLy8gUHJvcGVydGllcyB0byBiZSBp
Z25vcmVkIGJlY2F1c2UgdGhleSB3ZXJlIGFkZGVkIGluIHZlcnNpb25zIG9mIHRoZQotLy8gc3Bl
YyB0aGF0IGFyZSBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGggdGhpcyB2ZXJzaW9uCi12YXIgaWdu
b3JlZE1ldGhvZHMgPSBbCi0gIC8vIFRoZXJlIGlzIG5vIG9mZmljaWFsIHNwZWMgZm9yIHRoZSBj
b21taXQgQVBJIHlldCwgdGhlIHByb3Bvc2FsIGxpbmsgaXM6Ci0gIC8vIGh0dHBzOi8vd2lraS53
aGF0d2cub3JnL3dpa2kvT2Zmc2NyZWVuQ2FudmFzCi0gICJjb21taXQiCi1dOwotCi1mdW5jdGlv
biBhc3NlcnRGdW5jdGlvbih2LCBmKSB7Ci0gIHRyeSB7Ci0gICAgaWYgKHR5cGVvZiB2W2ZdICE9
ICJmdW5jdGlvbiIpIHsKLSAgICAgIHRlc3RGYWlsZWQoIlByb3BlcnR5IGVpdGhlciBkb2VzIG5v
dCBleGlzdCBvciBpcyBub3QgYSBmdW5jdGlvbjogIiArIGYpOwotICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH0gY2F0Y2goZSkg
ewotICAgIHRlc3RGYWlsZWQoIlRyeWluZyB0byBhY2Nlc3MgdGhlIHByb3BlcnR5ICciICsgZiAr
ICInIHRocmV3IGFuIGVycm9yOiAiK2UudG9TdHJpbmcoKSk7Ci0gIH0KLX0KLQogZGVidWcoIiIp
OwogZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CiAKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Ci12YXIg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci12YXIgcGFzc2VkID0gdHJ1ZTsKLWZv
ciAodmFyIGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7Ci0gIHZhciByID0gYXNzZXJ0RnVu
Y3Rpb24oZ2wsIG1ldGhvZHNbaV0pOwotICBwYXNzZWQgPSBwYXNzZWQgJiYgcjsKLX0KLWlmIChw
YXNzZWQpIHsKLSAgdGVzdFBhc3NlZCgiQWxsIFdlYkdMIG1ldGhvZHMgZm91bmQuIik7Ci19Ci12
YXIgZXh0ZW5kZWQgPSBmYWxzZTsKLWZvciAodmFyIGkgaW4gZ2wpIHsKLSAgaWYgKHR5cGVvZiBn
bFtpXSA9PSAiZnVuY3Rpb24iICYmIG1ldGhvZHMuaW5kZXhPZihpKSA9PSAtMSAmJiBpZ25vcmVk
TWV0aG9kcy5pbmRleE9mKGkpID09IC0xKSB7Ci0gICAgaWYgKCFleHRlbmRlZCkgewotICAgICAg
ZXh0ZW5kZWQgPSB0cnVlOwotICAgICAgdGVzdEZhaWxlZCgiQWxzbyBmb3VuZCB0aGUgZm9sbG93
aW5nIGV4dHJhIG1ldGhvZHM6Iik7Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoaSk7Ci0gIH0KLX0K
K2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNhbnZhcyIpOworY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNh
bnZhcyk7CiAKLWlmICghZXh0ZW5kZWQpIHsKLSAgdGVzdFBhc3NlZCgiTm8gZXh0cmEgbWV0aG9k
cyBmb3VuZCBvbiBXZWJHTCBjb250ZXh0LiIpOwotfQordGVzdENvbnRleHRNZXRob2RzKGdsLCBt
ZXRob2RzKTsKIAogZGVidWcoIiIpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLWJwdGMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tYnB0Yy5odG1sCmluZGV4IDFmZWQ5
ZDlmZDczNWFmZTQ5N2U2MmNkOTVhZDQ0YzU3YTU4ZGZjYzMuLjBiY2U3Mzc2YTU1NmRkYmI2ZTA1
MzhhYzQ2YTBmZjJiNzk4YzU2YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUt
Y29tcHJlc3Npb24tYnB0Yy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJl
c3Npb24tYnB0Yy5odG1sCkBAIC02MCw3ICs2MCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNp
b24oKSB7CiAgIC8vICogPGhlaWdodD4gaXMgbm90IGEgbXVsdGlwbGUgb2YgZm91ciwgYW5kIDxo
ZWlnaHQ+IHBsdXMgPHlvZmZzZXQ+IGlzCiAgIC8vICAgICAgICAgICBub3QgZXF1YWwgdG8gVEVY
VFVSRV9IRUlHSFQ7IG9yCiAgIC8vICogPHhvZmZzZXQ+IG9yIDx5b2Zmc2V0PiBpcyBub3QgYSBt
dWx0aXBsZSBvZiBmb3VyLgotICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgdmFs
aWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywKKyAgY3R1
LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3Rl
ZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywKICAgICAxNiwgMTYsIFsKICAgICAgIHsg
eG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywKICAgICAgICAgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaGVpZ2h0IGlzIG5vdCBh
IG11bHRpcGxlIG9mIDQiIH0sCkBAIC03Nyw3ICs3NywxNyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0
ZW5zaW9uKCkgewogICAvLyBUZXN0IFRleEltYWdlIHZhbGlkYXRpb24gb24gbGV2ZWwgZGltZW5z
aW9ucyBjb21iaW5hdGlvbnMuCiAgIC8vIFdoZW4gbGV2ZWwgZXF1YWxzIDAsIHdpZHRoIGFuZCBo
ZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuCiAgIC8vIFdoZW4gbGV2ZWwgaXMgbGFyZ2Vy
IHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNuJ3QgYXBwbHkuCi0gIGN0dS50ZXN0VGV4SW1h
Z2VMZXZlbERpbWVuc2lvbnMoZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBn
ZXRCbG9ja0RpbWVuc2lvbnMsCisKKyAgbGV0IG5wb3RFeHBlY3RhdGlvbiwgbnBvdE1lc3NhZ2U7
CisgIGlmIChjb250ZXh0VmVyc2lvbiA+PSAyKSB7CisgICAgbnBvdEV4cGVjdGF0aW9uID0gZ2wu
Tk9fRVJST1I7CisgICAgbnBvdE1lc3NhZ2UgPSAidmFsaWQiOworICB9IGVsc2UgeworICAgIG5w
b3RFeHBlY3RhdGlvbiA9IGdsLklOVkFMSURfVkFMVUU7CisgICAgbnBvdE1lc3NhZ2UgPSAiaW52
YWxpZCI7CisgIH0KKworICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQs
IHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCiAg
ICAgWwogICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywKICAgICAgICAgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAibGV2ZWwgaXMgMCwgaGVp
Z2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCkBAIC04NywxMCArOTcsMTYgQEAgZnVuY3Rp
b24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURf
T1BFUkFUSU9OLCBtZXNzYWdlOiAibGV2ZWwgaXMgMCwgd2lkdGggaXMgbm90IGEgbXVsdGlwbGUg
b2YgNCIgfSwKICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCiAgICAgICAg
IGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgICAg
eyBsZXZlbDogMSwgd2lkdGg6IDEsIGhlaWdodDogMSwKKyAgICAgICAgZXhwZWN0YXRpb246IGds
LklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNlIG1pcCAyeDIgaXMgaW52
YWxpZCIgfSwKKyAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDIsCisgICAgICAg
IGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImltcGxpZWQgYmFz
ZSBtaXAgMng0IGlzIGludmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMiwgaGVp
Z2h0OiAxLAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3Nh
Z2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4MiBpcyBpbnZhbGlkIiB9LAogICAgICAgeyBsZXZlbDog
MSwgd2lkdGg6IDIsIGhlaWdodDogMiwKLSAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9S
LCBtZXNzYWdlOiAibGV2ZWwgPiAwLCBpcyB2YWxpZCIgfSwKLSAgICAgIHsgbGV2ZWw6IDIsIHdp
ZHRoOiAxLCBoZWlnaHQ6IDEsCi0gICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVz
c2FnZTogImxldmVsID4gMCwgaXMgdmFsaWQiIH0sCisgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5O
T19FUlJPUiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgNHg0IGlzIHZhbGlkIiB9LAorICAg
ICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdodDogMywKKyAgICAgICAgZXhwZWN0YXRpb246
IG5wb3RFeHBlY3RhdGlvbiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgNHgxMiBpcyAiICsg
bnBvdE1lc3NhZ2UgfSwKICAgXSk7CiAKICAgLy8gVGVzdCB0aGF0IEJQVEMgZW51bXMgYXJlIG5v
dCBhY2NlcHRlZCBieSB0ZXhJbWFnZTJECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0
dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJl
c3Npb24tcmd0Yy5odG1sCmluZGV4IGMyYTJkNDE2OTA4NzU1MjY5NzRmMGNlZGYxNmVjY2FmZGYy
ZTBiZDMuLjcwZGNmOWJhN2I3Y2JmMzc2ZjM3MGNjYWIwYjgwZmRjMzQ2YWQ0ZmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tcmd0Yy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4
dGVuc2lvbnMvZXh0LXRleHR1cmUtY29tcHJlc3Npb24tcmd0Yy5odG1sCkBAIC02NSw3ICs2NSw3
IEBAIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgIC8vICogPGhlaWdodD4gaXMgbm90
IGEgbXVsdGlwbGUgb2YgZm91ciwgYW5kIDxoZWlnaHQ+IHBsdXMgPHlvZmZzZXQ+IGlzCiAgIC8v
ICAgICAgICAgICBub3QgZXF1YWwgdG8gVEVYVFVSRV9IRUlHSFQ7IG9yCiAgIC8vICogPHhvZmZz
ZXQ+IG9yIDx5b2Zmc2V0PiBpcyBub3QgYSBtdWx0aXBsZSBvZiBmb3VyLgotICBjdHUudGVzdFRl
eFN1YkltYWdlRGltZW5zaW9ucyhnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgs
IGdldEJsb2NrRGltZW5zaW9ucywKKyAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2ws
IGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9u
cywKICAgICAxNiwgMTYsIFsKICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6
IDQsIGhlaWdodDogMywKICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9O
LCBtZXNzYWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCkBAIC04Miw3ICs4
MiwxNyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAvLyBUZXN0IFRleEltYWdl
IHZhbGlkYXRpb24gb24gbGV2ZWwgZGltZW5zaW9ucyBjb21iaW5hdGlvbnMuCiAgIC8vIFdoZW4g
bGV2ZWwgZXF1YWxzIDAsIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQu
CiAgIC8vIFdoZW4gbGV2ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNu
J3QgYXBwbHkuCi0gIGN0dS50ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMoZ2wsIHZhbGlkRm9y
bWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisKKyAgbGV0IG5w
b3RFeHBlY3RhdGlvbiwgbnBvdE1lc3NhZ2U7CisgIGlmIChjb250ZXh0VmVyc2lvbiA+PSAyKSB7
CisgICAgbnBvdEV4cGVjdGF0aW9uID0gZ2wuTk9fRVJST1I7CisgICAgbnBvdE1lc3NhZ2UgPSAi
dmFsaWQiOworICB9IGVsc2UgeworICAgIG5wb3RFeHBlY3RhdGlvbiA9IGdsLklOVkFMSURfVkFM
VUU7CisgICAgbnBvdE1lc3NhZ2UgPSAiaW52YWxpZCI7CisgIH0KKworICBjdHUudGVzdFRleElt
YWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVu
Z3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCiAgICAgWwogICAgICAgeyBsZXZlbDogMCwgd2lkdGg6
IDQsIGhlaWdodDogMywKICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9O
LCBtZXNzYWdlOiAibGV2ZWwgaXMgMCwgaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0s
CkBAIC05MiwxMCArMTAyLDE2IEBAIGZ1bmN0aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgICAg
ICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImxldmVsIGlz
IDAsIHdpZHRoIGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCiAgICAgICB7IGxldmVsOiAwLCB3
aWR0aDogNCwgaGVpZ2h0OiA0LAogICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1l
c3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6
IDEsCisgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTog
ImltcGxpZWQgYmFzZSBtaXAgMngyIGlzIGludmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3
aWR0aDogMSwgaGVpZ2h0OiAyLAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVS
QVRJT04sIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDJ4NCBpcyBpbnZhbGlkIiB9LAorICAg
ICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMSwKKyAgICAgICAgZXhwZWN0YXRpb246
IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNlIG1pcCA0eDIgaXMg
aW52YWxpZCIgfSwKICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsCi0gICAg
ICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImxldmVsID4gMCwgaXMgdmFs
aWQiIH0sCi0gICAgICB7IGxldmVsOiAyLCB3aWR0aDogMSwgaGVpZ2h0OiAxLAotICAgICAgICBl
eHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJsZXZlbCA+IDAsIGlzIHZhbGlkIiB9
LAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJpbXBsaWVkIGJh
c2UgbWlwIDR4NCBpcyB2YWxpZCIgfSwKKyAgICAgIHsgbGV2ZWw6IDIsIHdpZHRoOiAxLCBoZWln
aHQ6IDMsCisgICAgICAgIGV4cGVjdGF0aW9uOiBucG90RXhwZWN0YXRpb24sIG1lc3NhZ2U6ICJp
bXBsaWVkIGJhc2UgbWlwIDR4MTIgaXMgIiArIG5wb3RNZXNzYWdlIH0sCiAgIF0pOwogCiAgIC8v
IFRlc3QgdGhhdCBSR1RDIGVudW1zIGFyZSBub3QgYWNjZXB0ZWQgYnkgdGV4SW1hZ2UyRApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3RjLWFuZC1yZ3RjLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3MzdGMt
YW5kLXJndGMuaHRtbAppbmRleCBhZGRkZTU0YjVmYTYwYmMyODM2NGZmNDg3MzIxZTZjOTRhZGJl
MGExLi4zYjcyNWZmZTIyOTcxMGRiODY4Yzg0YWU5MDdjYWFiYTc5NWVmZjVmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL3MzdGMtYW5kLXJndGMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3MzdGMtYW5k
LXJndGMuaHRtbApAQCAtMzksNiArMzksMTEgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJp
ZmllcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgV0VCR0xfY29tcHJlc3NlZF90ZXh0dXIKIAog
ZGVidWcoIiIpOwogCisvLyBBY2NlcHRhYmxlIGludGVycG9sYXRpb24gZXJyb3IgZGVwZW5kcyBv
biBlbmRwb2ludHM6CisvLyAxLjAgLyAyNTUuMCArIDAuMDMgKiBtYXgoYWJzKGVuZHBvaW50MCAt
IGVuZHBvaW50MSksIGFicyhlbmRwb2ludDBfcCAtIGVuZHBvaW50MV9wKSkKKy8vIEZvciBzaW1w
bGljaXR5LCBhc3N1bWUgdGhlIHdvcnN0IGNhc2UgKGUwIGlzIDAuMCwgZTEgaXMgMS4wKS4gQWZ0
ZXIgY29udmVyc2lvbiB0byB1bm9ybTgsIGl0IGlzIDkuCitjb25zdCBERUZBVUxUX0NPTE9SX0VS
Uk9SID0gOTsKKwogLyoKIEJDMSAoRFhUMSkgYmxvY2sKIGUwID0gWyAgMCwgMjU1LCAwXQpAQCAt
MjY3LDYgKzI3Miw4NyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAgIGlmIChj
b250ZXh0VmVyc2lvbiA+PSAyKSB7CiAgICAgICAgIHRlc3REWFQ1X1JHQkFfUEJPKCk7CiAgICAg
fQorCisgICAgLy8gVGVzdCBUZXhJbWFnZSB2YWxpZGF0aW9uIG9uIGxldmVsIGRpbWVuc2lvbnMg
Y29tYmluYXRpb25zLgorICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiV2hlbiBsZXZlbCBlcXVh
bHMgMCwgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNC4iKTsKKyAgICBk
ZWJ1ZygiV2hlbiBsZXZlbCBpcyBsYXJnZXIgdGhhbiAwLCB0aGlzIGNvbnN0cmFpbnQgZG9lc24n
dCBhcHBseS4iKTsKKyAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQs
IHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisg
ICAgICBbCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsIGV4cGVjdGF0
aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDR4MyIgfSwKKyAgICAgICAg
eyBsZXZlbDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwgZXhwZWN0YXRpb246IGdsLklOVkFMSURf
T1BFUkFUSU9OLCBtZXNzYWdlOiAiMDogM3g0IiB9LAorICAgICAgICB7IGxldmVsOiAwLCB3aWR0
aDogMiwgaGVpZ2h0OiAyLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3Nh
Z2U6ICIwOiAyeDIiIH0sCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDQs
IGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDR4NCIgfSwKKyAgICAgICAg
eyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9S
LCBtZXNzYWdlOiAiMTogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAyLCB3aWR0aDogMSwgaGVp
Z2h0OiAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAxeDEiIH0sCisg
ICAgXSk7CisKKyAgICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxp
ZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCAxNiwgMTYs
CisgICAgICBbCisgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhl
aWdodDogMywKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1l
c3NhZ2U6ICJoZWlnaHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgeyB4b2Zm
c2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMywgaGVpZ2h0OiA0LAorICAgICAgICAgIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIndpZHRoIGlzIG5vdCBhIG11
bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNldDogMCwgd2lkdGg6
IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sIG1lc3NhZ2U6ICJ4b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAg
IHsgeG9mZnNldDogMCwgeW9mZnNldDogMSwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAg
ICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ5b2Zmc2V0IGlz
IG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMTIsIHlvZmZzZXQ6
IDEyLCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19F
UlJPUiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgIF0pOworCisgICAgaWYgKGNvbnRleHRW
ZXJzaW9uID49IDIpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiVGVzdGlu
ZyBOUE9UIHRleHR1cmVzIik7CisgICAgICAgIGN0dS50ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lv
bnMoZ2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGlt
ZW5zaW9ucywKKyAgICAgICAgICBbCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMCwg
aGVpZ2h0OiAwLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAweDAgaXMg
dmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMSwgaGVpZ2h0OiAxLCBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxeDEgaXMgaW52
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDJ4MiBpcyBpbnZh
bGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDMsIGhlaWdodDogMywgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMDogM3gzIGlzIGludmFs
aWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTAsIGhlaWdodDogMTAsIGV4
cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDEweDEwIGlzIGlu
dmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTEsIGhlaWdodDogMTEs
IGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDExeDExIGlz
IGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTEsIGhlaWdodDog
MTIsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDExeDEy
IGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTIsIGhlaWdo
dDogMTEsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDEy
eDExIGlzIGludmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTIsIGhl
aWdodDogMTIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDEyeDEyIGlz
IHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICAwLCBoZWlnaHQ6ICAw
LCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiAweDAsIGlzIHZhbGlkIiB9
LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICAzLCBoZWlnaHQ6ICAzLCBleHBlY3Rh
dGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIxOiAzeDMsIGlzIGludmFsaWQi
IH0sCisgICAgICAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogIDUsIGhlaWdodDogIDUsIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjE6IDV4NSwgaXMgaW52YWxp
ZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgNSwgaGVpZ2h0OiAgNiwgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMTogNXg2LCBpcyBpbnZh
bGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA2LCBoZWlnaHQ6ICA1LCBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIxOiA2eDUsIGlzIGlu
dmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogIDYsIGhlaWdodDogIDYs
IGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjE6IDZ4NiwgaXMgdmFsaWQiIH0s
CisgICAgICAgICAgICB7IGxldmVsOiAyLCB3aWR0aDogIDAsIGhlaWdodDogIDAsIGV4cGVjdGF0
aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjI6IDB4MCwgaXMgdmFsaWQiIH0sCisgICAgICAg
ICAgICB7IGxldmVsOiAyLCB3aWR0aDogIDMsIGhlaWdodDogIDMsIGV4cGVjdGF0aW9uOiBnbC5O
T19FUlJPUiwgbWVzc2FnZTogIjI6IDN4MywgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IGxl
dmVsOiAzLCB3aWR0aDogIDEsIGhlaWdodDogIDMsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwg
bWVzc2FnZTogIjM6IDF4MywgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAzLCB3
aWR0aDogIDEsIGhlaWdodDogIDEsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTog
IjM6IDF4MSwgaXMgdmFsaWQiIH0sCisgICAgICAgIF0pOworCisgICAgICAgIGRlYnVnKCIiKTsK
KyAgICAgICAgZGVidWcoIlRlc3RpbmcgcGFydGlhbCB1cGRhdGVzIik7CisgICAgICAgIGN0dS50
ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRC
eXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsIDEyLCAxMiwKKyAgICAgICAgWworICAgICAg
ICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdodDogMywKKyAgICAg
ICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImhlaWdo
dCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsgeG9mZnNldDogMCwgeW9m
ZnNldDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uOiBn
bC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIndpZHRoIGlzIG5vdCBhIG11bHRpcGxlIG9m
IDQiIH0sCisgICAgICAgICAgeyB4b2Zmc2V0OiAxLCB5b2Zmc2V0OiAwLCB3aWR0aDogNCwgaGVp
Z2h0OiA0LAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBt
ZXNzYWdlOiAieG9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsg
eG9mZnNldDogMCwgeW9mZnNldDogMSwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICAg
IGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogInlvZmZzZXQgaXMg
bm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDgsIHlvZmZzZXQ6
IDgsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9f
RVJST1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICAgICAgXSk7CisKKyAgICAgICAgZGVi
dWcoIiIpOworICAgICAgICBkZWJ1ZygiVGVzdGluZyBpbW11dGFibGUgTlBPVCB0ZXh0dXJlcyIp
OworICAgICAgICBjdHUudGVzdFRleFN0b3JhZ2VMZXZlbERpbWVuc2lvbnMoZ2wsIGV4dCwgdmFs
aWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywKKyAgICAg
ICAgICBbCisgICAgICAgICAgICB7IHdpZHRoOiAxMiwgaGVpZ2h0OiAxMiwgZXhwZWN0YXRpb246
IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMDogMTJ4MTIgaXMgdmFsaWQiIH0sCisgICAgICAgICAg
ICB7IHdpZHRoOiAgNiwgaGVpZ2h0OiAgNiwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNz
YWdlOiAiMTogNng2LCBpcyB2YWxpZCIgfSwKKyAgICAgICAgICAgIHsgd2lkdGg6ICAzLCBoZWln
aHQ6ICAzLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAzeDMsIGlzIHZh
bGlkIiB9LAorICAgICAgICAgICAgeyB3aWR0aDogIDEsIGhlaWdodDogIDEsIGV4cGVjdGF0aW9u
OiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjM6IDF4MSwgaXMgdmFsaWQiIH0sCisgICAgICAgIF0p
OworICAgIH0KIH0KIAogZnVuY3Rpb24gcnVuVGVzdFJHVEMoKSB7CkBAIC0yOTgsNiArMzg0LDgg
QEAgZnVuY3Rpb24gcnVuVGVzdFJHVEMoKSB7CiAgICAgICAgICAgICBkYXRhOiBpbWdfNHg0X3Np
Z25lZF9yZ19iYzUsCiAgICAgICAgICAgICBmb3JtYXQ6IGV4dF9yZ3RjLkNPTVBSRVNTRURfU0lH
TkVEX1JFRF9HUkVFTl9SR1RDMl9FWFQsCiAgICAgICAgICAgICBoYXNBbHBoYTogZmFsc2UsCisg
ICAgICAgICAgICBlcnJvcjogMTgsIC8vIFNpZ25lZCwgc28gdHdpY2UgdGhlIG5vcm1hbCBlcnJv
ci4KKyAgICAgICAgICAgICAgICAgICAgICAgLy8gRXhwZXJpbWVudGFsbHkgbmVlZGVkIGJ5IGUu
Zy4gUlRYIDMwNzAuCiAgICAgICAgIH0sCiAgICAgICAgIHsgICB3aWR0aDogOCwKICAgICAgICAg
ICAgIGhlaWdodDogOCwKQEAgLTQ3NCwxMCArNTYyLDEzIEBAIGZ1bmN0aW9uIHVuY29tcHJlc3NE
WFRCbG9jaygKICAgICAgICAgIGZvcm1hdCA9PSBleHRfcmd0Yy5DT01QUkVTU0VEX1JFRF9HUkVF
Tl9SR1RDMl9FWFQgfHwKICAgICAgICAgIGZvcm1hdCA9PSBleHRfcmd0Yy5DT01QUkVTU0VEX1NJ
R05FRF9SRURfUkdUQzFfRVhUIHx8CiAgICAgICAgICBmb3JtYXQgPT0gZXh0X3JndGMuQ09NUFJF
U1NFRF9TSUdORURfUkVEX0dSRUVOX1JHVEMyX0VYVCk7CisgICAgbGV0IGNvbG9yT2Zmc2V0ID0g
c3JjT2Zmc2V0OwogICAgIGlmICghaXNCQzQ1KSB7CiAgICAgICAgIHZhciBpc0RYVDEgPSBmb3Jt
YXQgPT0gZXh0LkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQgfHwKICAgICAgICAgICAgICAg
ICAgICAgIGZvcm1hdCA9PSBleHQuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQ7Ci0gICAg
ICAgIHZhciBjb2xvck9mZnNldCA9IHNyY09mZnNldCArIChpc0RYVDEgPyAwIDogOCk7CisgICAg
ICAgIGlmICghaXNEWFQxKSB7CisgICAgICAgICAgICBjb2xvck9mZnNldCArPSA4OworICAgICAg
ICB9CiAgICAgICAgIHZhciBjb2xvcjAgPSBtYWtlNTY1KHNyYywgY29sb3JPZmZzZXQgKyAwKTsK
ICAgICAgICAgdmFyIGNvbG9yMSA9IG1ha2U1NjUoc3JjLCBjb2xvck9mZnNldCArIDIpOwogICAg
ICAgICB2YXIgYzBndGMxID0gY29sb3IwID4gY29sb3IxIHx8ICFpc0RYVDE7CkBAIC02NTgsNiAr
NzQ5LDggQEAgZnVuY3Rpb24gY29weVJlY3QoZGF0YSwgc3JjWCwgc3JjWSwgZHN0WCwgZHN0WSwg
d2lkdGgsIGhlaWdodCwgc3RyaWRlKSB7CiB9CiAKIGZ1bmN0aW9uIHRlc3REWFRUZXh0dXJlKHRl
c3QsIHVzZVRleFN0b3JhZ2UpIHsKKyAgICB0ZXN0LmVycm9yID0gdGVzdC5lcnJvciB8fCBERUZB
VUxUX0NPTE9SX0VSUk9SOworCiAgICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheSh0ZXN0LmRh
dGEpOwogICAgIHZhciB3aWR0aCA9IHRlc3Qud2lkdGg7CiAgICAgdmFyIGhlaWdodCA9IHRlc3Qu
aGVpZ2h0OwpAQCAtNjk2LDcgKzc4OSw3IEBAIGZ1bmN0aW9uIHRlc3REWFRUZXh0dXJlKHRlc3Qs
IHVzZVRleFN0b3JhZ2UpIHsKIAogICAgICAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFk
KGdsKTsKICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
ZHJhd2luZyB1bml0IHF1YWQgMSIpOwotICAgICAgICAgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhl
aWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YVN1YiwgIk5FQVJFU1QiKTsKKyAg
ICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29t
cHJlc3NlZERhdGFTdWIsICJORUFSRVNUIiwgdGVzdC5lcnJvcik7CiAKICAgICAgICAgICAgIC8v
IENsZWFuIHVwIGFuZCByZWNvdmVyCiAgICAgICAgICAgICBnbC5kZWxldGVUZXh0dXJlKHRleDEp
OwpAQCAtNzIwLDEzICs4MTMsMTMgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVzdCwgdXNl
VGV4U3RvcmFnZSkgewogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
YWZ0ZXIgY2xlYXJpbmcgZ2VuZXJhdGVNaXBtYXAgZXJyb3IiKTsKICAgICB3dHUuY2xlYXJBbmRE
cmF3VW5pdFF1YWQoZ2wpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiZHJhd2luZyB1bml0IHF1YWQgMSIpOwotICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQs
IHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJORUFSRVNUIik7CisgICAgY29tcGFy
ZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YSwgIk5F
QVJFU1QiLCB0ZXN0LmVycm9yKTsKICAgICAvLyBUZXN0IGFnYWluIHdpdGggbGluZWFyIGZpbHRl
cmluZy4KICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlO
X0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICB3dHUuY2xlYXJBbmREcmF3
VW5pdFF1YWQoZ2wpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
ZHJhd2luZyB1bml0IHF1YWQgMiIpOwotICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRl
c3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJMSU5FQVIiKTsKKyAgICBjb21wYXJlUmVj
dCh3aWR0aCwgaGVpZ2h0LCB0ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTElORUFS
IiwgdGVzdC5lcnJvcik7CiAKICAgICBpZiAoIXVzZVRleFN0b3JhZ2UpIHsKICAgICAgICAgLy8g
SXQncyBub3QgYWxsb3dlZCB0byByZWRlZmluZSB0ZXh0dXJlcyBkZWZpbmVkIHZpYSB0ZXhTdG9y
YWdlMkQuCkBAIC03NTIsMTIgKzg0NSwxNCBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0ZXN0
LCB1c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLCAiaW52YWxpZCBkaW1lbnNpb25zIik7CiAKICAgICAgICAgaWYgKHdp
ZHRoID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRoZSB3aWR0aC9oZWlnaHQgb2YgdGhlIGltcGxp
ZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAg
ICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCBmb3JtYXQs
IDEsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyBmb3IgbGV2ZWwgPiAw
Iik7CiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAx
LCBmb3JtYXQsIDIsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChoZWlnaHQgPT0gNCkgeworICAgICAgICAgICAgLy8g
VGhlIHdpZHRoL2hlaWdodCBvZiB0aGUgaW1wbGllZCBiYXNlIGxldmVsIG11c3QgYmUgYSBtdWx0
aXBsZSBvZiB0aGUgYmxvY2sgc2l6ZS4KICAgICAgICAgICAgIGdsLmNvbXByZXNzZWRUZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDEsIDAsIGRhdGEpOwogICAgICAg
ICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJpbnZh
bGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIpOwogICAgICAgICAgICAgZ2wuY29tcHJlc3Nl
ZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCB3aWR0aCwgMiwgMCwgZGF0YSk7
CkBAIC04MzUsMTQgKzkzMCwxNCBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0ZXN0LCB1c2VU
ZXhTdG9yYWdlKSB7CiAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CiAgICAgICAgICAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVT
VCk7CiAgICAgICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgICAgICAg
ICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2Vk
RGF0YSwgIk5FQVJFU1QiKTsKKyAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQs
IHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJORUFSRVNUIiwgdGVzdC5lcnJvcik7
CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImRyYXdp
bmcgdW5pdCBxdWFkIik7CiAgICAgICAgICAgICAvLyBOZXh0IHRlc3QgTElORUFSIGZpbHRlcmlu
Zy4KICAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwogICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgICAg
ICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwogICAgICAgICAgICAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3aW5nIHVuaXQgcXVhZCIpOwotICAgICAg
ICAgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVz
c2VkRGF0YSwgIkxJTkVBUiIpOworICAgICAgICAgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdo
dCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YSwgIkxJTkVBUiIsIHRlc3QuZXJyb3Ip
OwogICAgICAgICB9CiAgICAgfQogfQpAQCAtODczLDcgKzk2OCw3IEBAIGZ1bmN0aW9uIHRlc3RE
WFQ1X1JHQkFfUEJPKCkgewogICAgIGdsLmJpbmRCdWZmZXIoZ2wuUElYRUxfVU5QQUNLX0JVRkZF
UiwgbnVsbCk7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKICAgICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImRyYXdpbmcgdW5pdCBxdWFkIik7Ci0gICAg
Y29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJO
RUFSRVNUIik7CisgICAgY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIHVuY29t
cHJlc3NlZERhdGEsICJORUFSRVNUIiwgREVGQVVMVF9DT0xPUl9FUlJPUik7CiAKICAgICAvLyBD
bGVhciB0aGUgdGV4dHVyZSBiZWZvcmUgdGhlIG5leHQgdGVzdAogICAgIGdsLmJpbmRCdWZmZXIo
Z2wuUElYRUxfVU5QQUNLX0JVRkZFUiwgbnVsbCk7CkBAIC04OTAsMTAgKzk4NSwxMCBAQCBmdW5j
dGlvbiB0ZXN0RFhUNV9SR0JBX1BCTygpIHsKICAgICBnbC5iaW5kQnVmZmVyKGdsLlBJWEVMX1VO
UEFDS19CVUZGRVIsIG51bGwpOwogICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7CiAg
ICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3aW5nIHVuaXQgcXVh
ZCIpOwotICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCB1bmNvbXByZXNz
ZWREYXRhLCAiTkVBUkVTVCIpOworICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5u
ZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIsIERFRkFVTFRfQ09MT1JfRVJST1IpOwog
fQogCi1mdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZXhwZWN0
ZWREYXRhLCBmaWx0ZXJpbmdNb2RlKSB7CitmdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVp
Z2h0LCBjaGFubmVscywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJpbmdNb2RlLCBjb2xvckVycm9yKSB7
CiAgICAgdmFyIGFjdHVhbCA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7CiAg
ICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBhY3R1YWwpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAicmVhZGluZyBiYWNrIHBpeGVscyIpOwpAQCAtOTEwLDE5ICsxMDA1LDE1IEBAIGZ1bmN0aW9u
IGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCBleHBlY3RlZERhdGEsIGZpbHRl
cmluZ01vZGUpIHsKICAgICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IHdpZHRoOyArK3h4KSB7
CiAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gKHl5ICogd2lkdGggKyB4eCkgKiA0OwogICAgICAg
ICAgICAgdmFyIGV4cGVjdGVkID0gZXhwZWN0ZWREYXRhLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsg
NCk7CisgICAgICAgICAgICBjb25zdCB3YXMgPSBhY3R1YWwuc2xpY2Uob2Zmc2V0LCBvZmZzZXQg
KyA0KTsKKwogICAgICAgICAgICAgLy8gQ29tcGFyZSBSR0IgdmFsdWVzCiAgICAgICAgICAgICBm
b3IgKHZhciBqaiA9IDA7IGpqIDwgMzsgKytqaikgewotICAgICAgICAgICAgICAgIC8vIEFjY2Vw
dGFibGUgaW50ZXJwb2xhdGlvbiBlcnJvciBkZXBlbmRzIG9uIGVuZHBvaW50czoKLSAgICAgICAg
ICAgICAgICAvLyAxLjAgLyAyNTUuMCArIDAuMDMgKiBtYXgoYWJzKGVuZHBvaW50MCAtIGVuZHBv
aW50MSksIGFicyhlbmRwb2ludDBfcCAtIGVuZHBvaW50MV9wKSkKLSAgICAgICAgICAgICAgICAv
LyBGb3Igc2ltcGxpY2l0eSwgYXNzdW1lIHRoZSB3b3JzdCBjYXNlIChlMCBpcyAwLjAsIGUxIGlz
IDEuMCkuIEFmdGVyIGNvbnZlcnNpb24gdG8gdW5vcm04LCBpdCBpcyA5LgotICAgICAgICAgICAg
ICAgIGlmIChNYXRoLmFicyhhY3R1YWxbb2Zmc2V0ICsgampdIC0gZXhwZWN0ZWRbampdKSA+IDkp
IHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHdhcyA9IGFjdHVhbFtvZmZzZXQgKyAwXS50b1N0
cmluZygpOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IDM7ICsraikg
ewotICAgICAgICAgICAgICAgICAgICAgICAgd2FzICs9ICIsIiArIGFjdHVhbFtvZmZzZXQgKyBq
XTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh3
YXNbampdIC0gZXhwZWN0ZWRbampdKSA+IGNvbG9yRXJyb3IpIHsKICAgICAgICAgICAgICAgICAg
ICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnUkdCIGF0
ICgnICsgeHggKyAnLCAnICsgeXkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWQgKyAnIMKxIDkgd2FzICcgKyB3YXMpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGBSR0IgYXQgKCR7eHh9LCAke3l5fSkgZXhw
ZWN0ZWQ6ICR7ZXhwZWN0ZWR9YCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCAr
Ly0gJHtjb2xvckVycm9yfSwgd2FzICR7d2FzfWApOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTkzNywxNSArMTAyOCwx
NSBAQCBmdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZXhwZWN0
ZWREYXRhLCBmaWx0ZXJpbmdNb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIFJH
QiB2YWx1ZXMuIE5vdGljZSwgdGhhdCB0aGUgY29uZGl0aW9uIGhlcmUKICAgICAgICAgICAgICAg
ICAgICAgLy8gaXMgbW9yZSBwZXJtaXNzaXZlIHRoYW4gbmVlZGVkIHNpbmNlIHdlIGRvbid0IGhh
dmUKICAgICAgICAgICAgICAgICAgICAgLy8gY29tcHJlc3NlZCBkYXRhIGF0IHRoaXMgcG9pbnQu
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhY3R1YWxbb2Zmc2V0XSA9PSAwICYmCi0gICAgICAg
ICAgICAgICAgICAgICAgICBhY3R1YWxbb2Zmc2V0ICsgMV0gPT0gMCAmJgotICAgICAgICAgICAg
ICAgICAgICAgICAgYWN0dWFsW29mZnNldCArIDJdID09IDAgJiYKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFjdHVhbFtvZmZzZXQgKyAzXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICh3YXNbMF0gPT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgd2FzWzFdID09IDAgJiYK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdhc1syXSA9PSAwICYmCisgICAgICAgICAgICAgICAg
ICAgICAgICB3YXNbM10gPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVn
KCI8Yj5EWFQxIFJHQiBpcyBtYXBwZWQgdG8gRFhUMSBSR0JBPC9iPiIpOwogICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0FscGhhIGF0ICgnICsgeHggKyAn
LCAnICsgeXkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWRbM10gKyAnIHdhcyAnICsgYWN0dWFsW29mZnNldCAr
IDNdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKSBl
eHBlY3RlZDogJyArIGV4cGVjdGVkWzNdICsgJyB3YXMgJyArIHdhcyk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtOTUz
LDExICsxMDQ0LDEwIEBAIGZ1bmN0aW9uIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5u
ZWxzLCBleHBlY3RlZERhdGEsIGZpbHRlcmluZ01vZGUpIHsKICAgICAgICAgICAgICAgICAvLyBB
Y2NlcHRhYmxlIGludGVycG9sYXRpb24gZXJyb3IgZGVwZW5kcyBvbiBlbmRwb2ludHM6CiAgICAg
ICAgICAgICAgICAgLy8gMS4wIC8gNjU1MzUuMCArIDAuMDMgKiBtYXgoYWJzKGVuZHBvaW50MCAt
IGVuZHBvaW50MSksIGFicyhlbmRwb2ludDBfcCAtIGVuZHBvaW50MV9wKSkKICAgICAgICAgICAg
ICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgYXNzdW1lIHRoZSB3b3JzdCBjYXNlIChlMCBpcyAwLjAs
IGUxIGlzIDEuMCkuIEFmdGVyIGNvbnZlcnNpb24gdG8gdW5vcm04LCBpdCBpcyA4LgotICAgICAg
ICAgICAgICAgIGlmIChNYXRoLmFicyhhY3R1YWxbb2Zmc2V0ICsgM10gLSBleHBlY3RlZFszXSkg
PiA4KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB3YXMgPSBhY3R1YWxbb2Zmc2V0ICsgM10u
dG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMod2FzWzNdIC0gZXhwZWN0
ZWRbM10pID4gOCkgewogICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdBbHBoYSBhdCAoJyArIHh4ICsgJywgJyArIHl5ICsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAn
ICsgZXhwZWN0ZWQgKyAnIMKxIDggd2FzICcgKyB3YXMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6ICcgKyBleHBlY3RlZCArICcgKy8tIDgg
d2FzICcgKyB3YXMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1z
cmdiLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2Iu
aHRtbAppbmRleCBhMWEyMWFiMTRiN2ZiODQ0N2I5YTRhZTJjNjhmZmQ3Y2I0ZjY2MGU1Li45MWZj
M2YwYjFjNmFhMWZhMTIyMjJmNTNjMWNkNmE1MmQxMjkwZjI0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRtbApAQCAtMjI2LDYgKzIy
Niw3MiBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAgIGlmIChjb250ZXh0VmVy
c2lvbiA+PSAyKSB7CiAgICAgICAgIHRlc3REWFQ1X1NSR0JfQUxQSEFfUEJPKCk7CiAgICAgfQor
CisgICAgLy8gVGVzdCBUZXhJbWFnZSB2YWxpZGF0aW9uIG9uIGxldmVsIGRpbWVuc2lvbnMgY29t
YmluYXRpb25zLgorICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiV2hlbiBsZXZlbCBlcXVhbHMg
MCwgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNC4iKTsKKyAgICBkZWJ1
ZygiV2hlbiBsZXZlbCBpcyBsYXJnZXIgdGhhbiAwLCB0aGlzIGNvbnN0cmFpbnQgZG9lc24ndCBh
cHBseS4iKTsKKyAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQsIHZh
bGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgICAg
ICBbCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsIGV4cGVjdGF0aW9u
OiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDR4MyIgfSwKKyAgICAgICAgeyBs
ZXZlbDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BF
UkFUSU9OLCBtZXNzYWdlOiAiMDogM3g0IiB9LAorICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDog
MiwgaGVpZ2h0OiAyLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6
ICIwOiAyeDIiIH0sCisgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsIGV4
cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDR4NCIgfSwKKyAgICAgICAgeyBs
ZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBt
ZXNzYWdlOiAiMTogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAyLCB3aWR0aDogMSwgaGVpZ2h0
OiAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAxeDEiIH0sCisgICAg
XSk7CisKKyAgICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxpZEZv
cm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCAxNiwgMTYsCisg
ICAgICBbCisgICAgICAgIHsgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdo
dDogMywKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3Nh
Z2U6ICJoZWlnaHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgeyB4b2Zmc2V0
OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMywgaGVpZ2h0OiA0LAorICAgICAgICAgIGV4cGVjdGF0
aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIndpZHRoIGlzIG5vdCBhIG11bHRp
cGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNldDogMCwgd2lkdGg6IDQs
IGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04s
IG1lc3NhZ2U6ICJ4b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsg
eG9mZnNldDogMCwgeW9mZnNldDogMSwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ5b2Zmc2V0IGlzIG5v
dCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDogMTIsIHlvZmZzZXQ6IDEy
LCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJP
UiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgIF0pOworCisgICAgaWYgKGNvbnRleHRWZXJz
aW9uID49IDIpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiVGVzdGluZyBO
UE9UIHRleHR1cmVzIik7CisgICAgICAgIGN0dS50ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMo
Z2wsIGV4dCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5z
aW9ucywKKyAgICAgICAgICBbCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMTIsIGhl
aWdodDogMTIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDEyeDEyIGlz
IHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA2LCBoZWlnaHQ6ICA2
LCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiA2eDYsIGlzIHZhbGlkIiB9
LAorICAgICAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6ICAzLCBoZWlnaHQ6ICAzLCBleHBlY3Rh
dGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAzeDMsIGlzIHZhbGlkIiB9LAorICAgICAg
ICAgICAgeyBsZXZlbDogMywgd2lkdGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBlY3RhdGlvbjogZ2wu
Tk9fRVJST1IsIG1lc3NhZ2U6ICIzOiAxeDEsIGlzIHZhbGlkIiB9LAorICAgICAgICBdKTsKKwor
ICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIHBhcnRpYWwgdXBkYXRl
cyIpOworICAgICAgICBjdHUudGVzdFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxp
ZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCAxMiwgMTIs
CisgICAgICAgIFsKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0
LCBoZWlnaHQ6IDMsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sIG1lc3NhZ2U6ICJoZWlnaHQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAg
ICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsCisgICAgICAg
ICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBp
cyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNl
dDogMCwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5J
TlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogInhvZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2Yg
NCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWln
aHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1l
c3NhZ2U6ICJ5b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgICAgeyB4
b2Zmc2V0OiA4LCB5b2Zmc2V0OiA4LCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgICAg
ZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiaXMgdmFsaWQiIH0sCisgICAgICAg
IF0pOworCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3RpbmcgaW1tdXRh
YmxlIE5QT1QgdGV4dHVyZXMiKTsKKyAgICAgICAgY3R1LnRlc3RUZXhTdG9yYWdlTGV2ZWxEaW1l
bnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9j
a0RpbWVuc2lvbnMsCisgICAgICAgICAgWworICAgICAgICAgICAgeyB3aWR0aDogMTIsIGhlaWdo
dDogMTIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDEyeDEyIGlzIHZh
bGlkIiB9LAorICAgICAgICAgICAgeyB3aWR0aDogIDYsIGhlaWdodDogIDYsIGV4cGVjdGF0aW9u
OiBnbC5OT19FUlJPUiwgbWVzc2FnZTogIjE6IDZ4NiwgaXMgdmFsaWQiIH0sCisgICAgICAgICAg
ICB7IHdpZHRoOiAgMywgaGVpZ2h0OiAgMywgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNz
YWdlOiAiMjogM3gzLCBpcyB2YWxpZCIgfSwKKyAgICAgICAgICAgIHsgd2lkdGg6ICAxLCBoZWln
aHQ6ICAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIzOiAxeDEsIGlzIHZh
bGlkIiB9LAorICAgICAgICBdKTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIHRlc3REWFQxX1NSR0Io
KSB7CkBAIC02MTcsMTIgKzY4MywxNCBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0ZXN0LCB1
c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfT1BFUkFUSU9OLCAiaW52YWxpZCBkaW1lbnNpb25zIik7CiAKICAgICAgICAgaWYgKHdpZHRo
ID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRoZSB3aWR0aC9oZWlnaHQgb2YgdGhlIGltcGxpZWQg
YmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAgICAg
ICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCBmb3JtYXQsIDEs
IGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyBmb3IgbGV2ZWwgPiAwIik7
CiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCBm
b3JtYXQsIDIsIGhlaWdodCwgMCwgZGF0YSk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwgInZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIpOwog
ICAgICAgICB9CiAgICAgICAgIGlmIChoZWlnaHQgPT0gNCkgeworICAgICAgICAgICAgLy8gVGhl
IHdpZHRoL2hlaWdodCBvZiB0aGUgaW1wbGllZCBiYXNlIGxldmVsIG11c3QgYmUgYSBtdWx0aXBs
ZSBvZiB0aGUgYmxvY2sgc2l6ZS4KICAgICAgICAgICAgIGdsLmNvbXByZXNzZWRUZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDEsIDAsIGRhdGEpOwogICAgICAgICAg
ICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJpbnZhbGlk
IGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIpOwogICAgICAgICAgICAgZ2wuY29tcHJlc3NlZFRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCB3aWR0aCwgMiwgMCwgZGF0YSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXcuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
d2ViZ2wtbXVsdGktZHJhdy5odG1sCmluZGV4IGFkZWFiMzEyZTVkMDE3ODM5YTA0ODc3MjM3NzZh
ZjI2NGE0MGRmZmEuLjQyNmU0NjMwN2U2OTAwNzdjYjZkYjhlMzIwZjgzMThkNTUwYzkxODEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lv
bnMvd2ViZ2wtbXVsdGktZHJhdy5odG1sCkBAIC0zNzEsNyArMzcxLDcgQEAgZnVuY3Rpb24gZG9U
ZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAw
LCAyNTVdLCAiZ2xfRHJhd0lEIGlzIDAgZm9yIG5vbi1NdWx0aSogZHJhdyBjYWxscyIsIDApOwog
ICB9CiAKLSAgZnVuY3Rpb24gcnVuUGl4ZWxUZXN0cyhidWZmZXJVc2FnZSkgeworICBmdW5jdGlv
biBydW5QaXhlbFRlc3RzKGJ1ZmZlclVzYWdlLCB1c2VTaGFyZWRBcnJheUJ1ZmZlcikgewogICAg
IC8vIEFuIGFycmF5IG9mIHF1YWRzIGlzIHRpbGVkIGFjcm9zcyB0aGUgc2NyZWVuLgogICAgIC8v
IGdsX0RyYXdJRCBpcyBjaGVja2VkIGJ5IHVzaW5nIGl0IHRvIHNlbGVjdCB0aGUgY29sb3Igb2Yg
dGhlIGRyYXcuCiAgICAgLy8gSW5zdGFuY2VkIGVudHJ5cG9pbnRzIGFyZSB0ZXN0ZWQgaGVyZSBz
Y2FsaW5nIGFuZCB0aGVuIGluc3RhbmNpbmcgdGhlCkBAIC01MDYsMTAgKzUwNiwxOCBAQCBmdW5j
dGlvbiBkb1Rlc3QoZXh0LCBpbnN0YW5jZWQpIHsKICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3Rz
KGdsLCByZWN0cyk7CiAgICAgfQogCi0gICAgY29uc3QgZmlyc3RzID0gbmV3IFVpbnQzMkFycmF5
KHRyaV9jb3VudCk7Ci0gICAgY29uc3QgY291bnRzID0gbmV3IFVpbnQzMkFycmF5KHRyaV9jb3Vu
dCk7Ci0gICAgY29uc3Qgb2Zmc2V0cyA9IG5ldyBVaW50MzJBcnJheSh0cmlfY291bnQpOwotICAg
IGNvbnN0IGluc3RhbmNlcyA9IG5ldyBVaW50MzJBcnJheSh0cmlfY291bnQpOworICAgIGZ1bmN0
aW9uIG5ld0ludEFycmF5KGNvdW50KSB7CisgICAgICBpZiAoIXVzZVNoYXJlZEFycmF5QnVmZmVy
KSB7CisgICAgICAgIHJldHVybiBuZXcgSW50MzJBcnJheShjb3VudCk7CisgICAgICB9CisgICAg
ICBsZXQgc2FiID0gbmV3IFNoYXJlZEFycmF5QnVmZmVyKGNvdW50ICogSW50MzJBcnJheS5CWVRF
U19QRVJfRUxFTUVOVCk7CisgICAgICByZXR1cm4gbmV3IEludDMyQXJyYXkoc2FiKTsKKyAgICB9
CisKKyAgICBjb25zdCBmaXJzdHMgPSBuZXdJbnRBcnJheSh0cmlfY291bnQpOworICAgIGNvbnN0
IGNvdW50cyA9IG5ld0ludEFycmF5KHRyaV9jb3VudCk7CisgICAgY29uc3Qgb2Zmc2V0cyA9IG5l
d0ludEFycmF5KHRyaV9jb3VudCk7CisgICAgY29uc3QgaW5zdGFuY2VzID0gbmV3SW50QXJyYXko
dHJpX2NvdW50KTsKIAogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlyc3RzLmxlbmd0aDsgKytp
KSBmaXJzdHNbaV0gPSBpICogMzsKICAgICBjb3VudHMuZmlsbCgzKTsKQEAgLTUyMSw3ICs1Mjks
NyBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0LCBpbnN0YW5jZWQpIHsKICAgICBjb25zdCBvZmZzZXRz
T2Zmc2V0ID0gY291bnRzT2Zmc2V0ICsgY291bnRzLmxlbmd0aDsKICAgICBjb25zdCBpbnN0YW5j
ZXNPZmZzZXQgPSBvZmZzZXRzT2Zmc2V0ICsgaW5zdGFuY2VzLmxlbmd0aDsKIAotICAgIGNvbnN0
IGJ1ZmZlciA9IG5ldyBVaW50MzJBcnJheShmaXJzdHNPZmZzZXQgKyBmaXJzdHMubGVuZ3RoICsg
Y291bnRzLmxlbmd0aCArIG9mZnNldHMubGVuZ3RoICsgaW5zdGFuY2VzLmxlbmd0aCk7CisgICAg
Y29uc3QgYnVmZmVyID0gbmV3SW50QXJyYXkoZmlyc3RzT2Zmc2V0ICsgZmlyc3RzLmxlbmd0aCAr
IGNvdW50cy5sZW5ndGggKyBvZmZzZXRzLmxlbmd0aCArIGluc3RhbmNlcy5sZW5ndGgpOwogICAg
IGJ1ZmZlci5zZXQoZmlyc3RzLCBmaXJzdHNPZmZzZXQpOwogICAgIGJ1ZmZlci5zZXQoY291bnRz
LCBjb3VudHNPZmZzZXQpOwogICAgIGJ1ZmZlci5zZXQob2Zmc2V0cywgb2Zmc2V0c09mZnNldCk7
CkBAIC02NjQsNiArNjcyLDggQEAgZnVuY3Rpb24gZG9UZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAg
ICAgICAgIGNvbmZpZy5pbnN0YW5jZWQgPyAnIGluc3RhbmNlZCcgOiAnJwogICAgICAgKSArICgK
ICAgICAgICAgY29uZmlnLmRyYXdJRCA/ICcgd2l0aCBnbF9EcmF3SUQnIDogJycKKyAgICAgICkg
KyAoCisgICAgICAgIHVzZVNoYXJlZEFycmF5QnVmZmVyID8gJyBhbmQgU2hhcmVkQXJyYXlCdWZm
ZXInIDogJycKICAgICAgICkpOwogCiAgICAgICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXko
MCk7CkBAIC04MjcsNyArODM3LDEyIEBAIGZ1bmN0aW9uIGRvVGVzdChleHQsIGluc3RhbmNlZCkg
ewogICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggQnVmZmVyVXNhZ2UgPSAiICsgYnVmZmVyVXNhZ2Up
OwogICAgIHJ1blZhbGlkYXRpb25UZXN0cyhidWZmZXJVc2FnZSk7CiAgICAgcnVuU2hhZGVyVGVz
dHMoYnVmZmVyVXNhZ2UpOwotICAgIHJ1blBpeGVsVGVzdHMoYnVmZmVyVXNhZ2UpOworICAgIHJ1
blBpeGVsVGVzdHMoYnVmZmVyVXNhZ2UsIGZhbHNlKTsKKyAgfQorCisgIC8vIFJ1biBhIHN1YnNl
dCBvZiB0aGUgcGl4ZWwgdGVzdHMgd2l0aCBTaGFyZWRBcnJheUJ1ZmZlciBpZiBzdXBwb3J0ZWQu
CisgIGlmICh3aW5kb3cuU2hhcmVkQXJyYXlCdWZmZXIpIHsKKyAgICBydW5QaXhlbFRlc3RzKGJ1
ZmZlclVzYWdlU2V0WzBdLCB0cnVlKTsKICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L3dlYmdsLXdlYmNvZGVjcy12aWRlby1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC13ZWJj
b2RlY3MtdmlkZW8tZnJhbWUuaHRtbAppbmRleCAxYjVjMTVkNmQyMTllZWYwMGRkNDMyYzUyMmIy
YmM3ZDM5MWI0ZmIyLi5mMGU0MTNlMmY2ZjQ3NGNjYjZiZWEyZTAzYjg4NTEzMGUwZGZmNTdiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLXdlYmNvZGVjcy12aWRlby1mcmFtZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2V4dGVuc2lvbnMvd2ViZ2wtd2ViY29kZWNzLXZpZGVvLWZyYW1lLmh0bWwKQEAgLTEsMjEx
ICsxLDIxMSBAQAotPCEtLQotQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KLS0tPgot
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08aGVhZD4KLSAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgotICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIgLz4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMvb3V0LW9mLWJvdW5kcy10
ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2V4dGVuc2lvbnMv
cHJvcG9zYWxzL1dFQkdMX3dlYmNvZGVjc192aWRlb19mcmFtZS93ZWJnbF93ZWJjb2RlY3Nfdmlk
ZW9fZnJhbWUuanMiPjwvc2NyaXB0PgotICA8c3R5bGU+Ci0gICAgY2FudmFzIHsKLSAgICAgIHBh
ZGRpbmc6IDEwcHg7Ci0gICAgICBiYWNrZ3JvdW5kOiBnb2xkOwotICAgIH0KLQotICAgIGJ1dHRv
biB7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NTU1OwotICAgICAgYm9yZGVyOiBub25l
OwotICAgICAgY29sb3I6IHdoaXRlOwotICAgICAgcGFkZGluZzogMTVweCAzMnB4OwotICAgICAg
d2lkdGg6IDE1MHB4OwotICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAgICAgZGlzcGxheTog
YmxvY2s7Ci0gICAgICBmb250LXNpemU6IDE2cHg7Ci0gICAgfQotICA8L3N0eWxlPgotPC9oZWFk
PgotCi08Ym9keT4KLSAgPGNhbnZhcyBpZD0ic3JjIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCI+
PC9jYW52YXM+Ci0gIDxjYW52YXMgaWQ9ImRzdCIgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiPjwv
Y2FudmFzPgotICA8cCBpZD0iaW5mbyI+PC9wPgotICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci0gIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICA8c2NyaXB0PgotICAgICJ1c2Ugc3Ry
aWN0IjsKLSAgICBkZXNjcmlwdGlvbigiVGVzdCBvZiBpbXBvcnRpbmcgVmlkZW9mcmFtZSBmcm9t
IFdlYmNvZGVjcyB0byBXZWJnbCIpOwotCi0gICAgY29uc3Qga0lzUnVubmluZ1Rlc3QgPSB0cnVl
OwotICAgIGNvbnN0IGtNYXhGcmFtZSA9IDEwOwotICAgIGNvbnN0IGtUZXN0UGl4ZWwgPSBbMjU1
LCAxMjgsIDAsIDI1NV07Ci0gICAgLy8gU3VtIG9mIHBpeGVsIGRpZmZlcmVuY2Ugb2YgUi9HL0Ig
Y2hhbm5lbC4gVXNlIHRvIGRlY2lkZSB3aGV0aGVyIGEKLSAgICAvLyBwaXhlbCBpcyBtYXRjaGVk
IHdpdGggYW5vdGhlci4KLSAgICBjb25zdCBjb2RlY19zdHJpbmcgPSAidnAwOS4wMC41MS4wOC4w
MCI7Ci0KLSAgICBsZXQgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gICAgbGV0IGNudiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzcmMiKTsKLSAgICBsZXQgc3JjX3dpZHRoID0gY252LndpZHRo
OwotICAgIGxldCBzcmNfaGVpZ2h0ID0gY252LmhlaWdodDsKLSAgICBsZXQgc3JjX2NvbG9yID0g
InJnYmEoIiArIGtUZXN0UGl4ZWxbMF0udG9TdHJpbmcoKSArICIsIiArIGtUZXN0UGl4ZWxbMV0u
dG9TdHJpbmcoKSArICIsIgotICAgICAgKyBrVGVzdFBpeGVsWzJdLnRvU3RyaW5nKCkgKyAiLCIg
KyBrVGVzdFBpeGVsWzNdLnRvU3RyaW5nKCkgKyAiKSI7Ci0gICAgbGV0IGZyYW1lX2NvdW50ZXIg
PSAwOwotICAgIGxldCBwaXhlbENvbXBhcmVUb2xlcmFuY2UgPSA1OwotCi0gICAgZnVuY3Rpb24g
Z2V0UXVlcnlWYXJpYWJsZSh2YXJpYWJsZSkgewotICAgICAgdmFyIHF1ZXJ5ID0gd2luZG93Lmxv
Y2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7Ci0gICAgICB2YXIgdmFycyA9IHF1ZXJ5LnNwbGl0
KCImIik7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhcnMubGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgdmFyIHBhaXIgPSB2YXJzW2ldLnNwbGl0KCI9Iik7Ci0gICAgICAgIGlmIChwYWlyWzBd
ID09IHZhcmlhYmxlKSB7IHJldHVybiBwYWlyWzFdOyB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotCi0gICAgbGV0IHRoID0gcGFyc2VJbnQoZ2V0UXVlcnlWYXJpYWJsZSgn
dGhyZXNob2xkJykpOwotICAgIGlmICghaXNOYU4odGgpKQotICAgICAgcGl4ZWxDb21wYXJlVG9s
ZXJhbmNlID0gdGg7Ci0KLSAgICBhc3luYyBmdW5jdGlvbiBzdGFydERyYXdpbmcoKSB7Ci0gICAg
ICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOwotICAgICAgdmFyIGN0
eCA9IGNudi5nZXRDb250ZXh0KCcyZCcsIHsgYWxwaGE6IGZhbHNlIH0pOwotCi0gICAgICBjdHgu
ZmlsbFN0eWxlID0gc3JjX2NvbG9yOwotICAgICAgbGV0IGRyYXdPbmVGcmFtZSA9IGZ1bmN0aW9u
ICh0aW1lKSB7Ci0gICAgICAgIGN0eC5maWxsU3R5bGUgPSBzcmNfY29sb3I7Ci0gICAgICAgIGN0
eC5maWxsUmVjdCgwLCAwLCBzcmNfd2lkdGgsIHNyY19oZWlnaHQpOwotICAgICAgICB3aW5kb3cu
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRyYXdPbmVGcmFtZSk7Ci0gICAgICB9Ci0gICAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRyYXdPbmVGcmFtZSk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gY2FwdHVyZUFuZEVuY29kZShwcm9jZXNzQ2h1bmspIHsKLSAgICAgIGxldCBjbnYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3JjIik7Ci0gICAgICBsZXQgZnBzID0gNjA7Ci0gICAg
ICBsZXQgcGVuZGluZ19vdXRwdXRzID0gMDsKLSAgICAgIGxldCBzdHJlYW0gPSBjbnYuY2FwdHVy
ZVN0cmVhbShmcHMpOwotICAgICAgbGV0IHByb2Nlc3NvciA9IG5ldyBNZWRpYVN0cmVhbVRyYWNr
UHJvY2Vzc29yKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdKTsKLQotICAgICAgY29uc3QgaW5p
dCA9IHsKLSAgICAgICAgb3V0cHV0OiAoY2h1bmspID0+IHsKLSAgICAgICAgICB0ZXN0UGFzc2Vk
KCJFbmNvZGUgZnJhbWUgc3VjY2Vzc2Z1bGx5LiIpOwotICAgICAgICAgIHBlbmRpbmdfb3V0cHV0
cy0tOwotICAgICAgICAgIHByb2Nlc3NDaHVuayhjaHVuayk7Ci0gICAgICAgIH0sCi0gICAgICAg
IGVycm9yOiAoZSkgPT4gewotICAgICAgICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBlbmNvZGUg
ZnJhbWUuIik7Ci0gICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgIHZ0ci5zdG9wKCk7
Ci0gICAgICAgIH0KLSAgICAgIH07Ci0KLSAgICAgIGNvbnN0IGNvbmZpZyA9IHsKLSAgICAgICAg
Y29kZWM6IGNvZGVjX3N0cmluZywKLSAgICAgICAgd2lkdGg6IGNudi53aWR0aCwKLSAgICAgICAg
aGVpZ2h0OiBjbnYuaGVpZ2h0LAotICAgICAgICBiaXRyYXRlOiAxMGU2LAotICAgICAgICBmcmFt
ZXJhdGU6IGZwcywKLSAgICAgIH07Ci0KLSAgICAgIGxldCBlbmNvZGVyID0gbmV3IFZpZGVvRW5j
b2Rlcihpbml0KTsKLSAgICAgIGVuY29kZXIuY29uZmlndXJlKGNvbmZpZyk7Ci0KLSAgICAgIGNv
bnN0IGZyYW1lX3JlYWRlciA9IHByb2Nlc3Nvci5yZWFkYWJsZS5nZXRSZWFkZXIoKTsKLSAgICAg
IGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiBwcm9jZXNzRnJhbWUoe2RvbmUsIHZh
bHVlfSkgewotICAgICAgICBpZiAoZG9uZSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
aWYgKHBlbmRpbmdfb3V0cHV0cyA+IDMwKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coImRyb3Ag
dGhpcyBmcmFtZSIpOwotICAgICAgICAgIC8vIFRvbyBtYW55IGZyYW1lcyBpbiBmbGlnaHQsIGVu
Y29kZXIgaXMgb3ZlcndoZWxtZWQKLSAgICAgICAgICAvLyBsZXQncyBkcm9wIHRoaXMgZnJhbWUu
Ci0gICAgICAgICAgdmFsdWUuY2xvc2UoKTsKLSAgICAgICAgICBmcmFtZV9yZWFkZXIucmVhZCgp
LnRoZW4ocHJvY2Vzc0ZyYW1lKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZihmcmFtZV9jb3VudGVyID09IGtNYXhGcmFtZSkgewotICAgICAgICAgIGZyYW1lX3Jl
YWRlci5yZWxlYXNlTG9jaygpOwotICAgICAgICAgIHByb2Nlc3Nvci5yZWFkYWJsZS5jYW5jZWwo
KTsKLSAgICAgICAgICB2YWx1ZS5jbG9zZSgpOwotICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIGZyYW1lX2NvdW50ZXIrKzsKLSAgICAgICAgcGVuZGluZ19vdXRwdXRzKys7
Ci0gICAgICAgIGNvbnN0IGluc2VydF9rZXlmcmFtZSA9IChmcmFtZV9jb3VudGVyICUgMTUwKSA9
PSAwOwotICAgICAgICBlbmNvZGVyLmVuY29kZSh2YWx1ZSwgeyBrZXlGcmFtZTogaW5zZXJ0X2tl
eWZyYW1lIH0pOwotCi0gICAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihwcm9jZXNzRnJh
bWUpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RhcnREZWNvZGluZ0FuZFJl
bmRlcmluZyhjbnYsIGhhbmRsZUZyYW1lKSB7Ci0gICAgICBjb25zdCBpbml0ID0gewotICAgICAg
ICBvdXRwdXQ6IGhhbmRsZUZyYW1lLAotICAgICAgICBlcnJvcjogKGUpID0+IHsKLSAgICAgICAg
ICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lLiIpOwotICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKLSAgICAgICAgfQotICAgICAgfTsKLQotICAgICAgY29uc3QgY29uZmlnID0gewot
ICAgICAgICBjb2RlYzogY29kZWNfc3RyaW5nLAotICAgICAgICBjb2RlZFdpZHRoOiBjbnYud2lk
dGgsCi0gICAgICAgIGNvZGVkSGVpZ2h0OiBjbnYuaGVpZ2h0LAotICAgICAgICBhY2NlbGVyYXRp
b246ICJkZW55IiwKLQotICAgICAgfTsKLQotICAgICAgbGV0IGRlY29kZXIgPSBuZXcgVmlkZW9E
ZWNvZGVyKGluaXQpOwotICAgICAgZGVjb2Rlci5jb25maWd1cmUoY29uZmlnKTsKLSAgICAgIHJl
dHVybiBkZWNvZGVyOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGlzRnJhbWVQaXhlbE1hdGNoZWQo
Z2wsIHRoX3Blcl9waXhlbCA9IHBpeGVsQ29tcGFyZVRvbGVyYW5jZSkgewotICAgICAgV2ViR0xU
ZXN0VXRpbHMuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBzcmNfd2lkdGgsIHNyY193aWR0aCwg
a1Rlc3RQaXhlbCwgInNob3VsZCBiZSBvcmFuZ2UiLCBwaXhlbENvbXBhcmVUb2xlcmFuY2UpCi0g
ICAgfQotCi0gICAgZnVuY3Rpb24gbWFpbigpIHsKLSAgICAgIGlmICghKCJWaWRlb0VuY29kZXIi
IGluIHdpbmRvdykpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgiV2ViQ29kZWNzIEFQSSBpcyBub3Qg
c3VwcG9ydGVkLiIpOwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICAgIH0KLSAgICAgIGxldCBjbnYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHN0Iik7Ci0K
LSAgICAgIGxldCB3ZWJnbF93ZWJjb2RlY3NfdGVzdF9jb250ZXh0ID0gewotICAgICAgICBtYXhG
cmFtZVRlc3RlZDoga01heEZyYW1lLAotICAgICAgICBkaXNwbGF5ZWRfZnJhbWU6IDAsCi0gICAg
ICAgIGlzRnJhbWVQaXhlbE1hdGNoZWQ6IGlzRnJhbWVQaXhlbE1hdGNoZWQsCi0gICAgICAgIHRl
c3RGYWlsZWQ6IHRlc3RGYWlsZWQsCi0gICAgICAgIHRlc3RQYXNzZWQ6IHRlc3RQYXNzZWQsCi0g
ICAgICAgIGZpbmlzaFRlc3Q6IGZpbmlzaFRlc3QKLSAgICAgIH07Ci0gICAgICBzZXRUZXN0TW9k
ZSh3ZWJnbF93ZWJjb2RlY3NfdGVzdF9jb250ZXh0KTsKLSAgICAgIGxldCBoYW5kbGVGcmFtZSA9
IHJlcXVlc3RXZWJHTFZpZGVvRnJhbWVIYW5kbGVyKGNudik7Ci0gICAgICBpZiAoaGFuZGxlRnJh
bWUgPT09IG51bGwpIHsKLSAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgICB9Ci0KLSAgICAgIHN0YXJ0RHJhd2luZygpOwotICAgICAgbGV0IGRlY29kZXIgPSBzdGFy
dERlY29kaW5nQW5kUmVuZGVyaW5nKGNudiwgaGFuZGxlRnJhbWUpOwotICAgICAgY2FwdHVyZUFu
ZEVuY29kZSgoY2h1bmspID0+IHsKLSAgICAgICAgZGVjb2Rlci5kZWNvZGUoY2h1bmspOwotICAg
ICAgfSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBtYWluOwotICA8L3Nj
cmlwdD4KLQotPC9ib2R5PgotCis8IS0tDQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4NCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQ0KK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLg0KKy0tPg0KKw0KKzwhRE9DVFlQRSBodG1sPg0KKzxodG1sPg0KKw0KKzxoZWFkPg0KKyAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KKyAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+DQorICA8c2NyaXB0IHNyYz0iLi4v
Li4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pg0KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Rlc3RzL291dC1vZi1ib3VuZHMtdGVzdC5qcyI+PC9zY3JpcHQ+DQorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vZXh0ZW5zaW9ucy9wcm9wb3NhbHMvV0VCR0xfd2ViY29kZWNzX3ZpZGVvX2Zy
YW1lL3dlYmdsX3dlYmNvZGVjc192aWRlb19mcmFtZS5qcyI+PC9zY3JpcHQ+DQorICA8c3R5bGU+
DQorICAgIGNhbnZhcyB7DQorICAgICAgcGFkZGluZzogMTBweDsNCisgICAgICBiYWNrZ3JvdW5k
OiBnb2xkOw0KKyAgICB9DQorDQorICAgIGJ1dHRvbiB7DQorICAgICAgYmFja2dyb3VuZC1jb2xv
cjogIzU1NTU1NTsNCisgICAgICBib3JkZXI6IG5vbmU7DQorICAgICAgY29sb3I6IHdoaXRlOw0K
KyAgICAgIHBhZGRpbmc6IDE1cHggMzJweDsNCisgICAgICB3aWR0aDogMTUwcHg7DQorICAgICAg
dGV4dC1hbGlnbjogY2VudGVyOw0KKyAgICAgIGRpc3BsYXk6IGJsb2NrOw0KKyAgICAgIGZvbnQt
c2l6ZTogMTZweDsNCisgICAgfQ0KKyAgPC9zdHlsZT4NCis8L2hlYWQ+DQorDQorPGJvZHk+DQor
ICA8Y2FudmFzIGlkPSJzcmMiIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIj48L2NhbnZhcz4NCisg
IDxjYW52YXMgaWQ9ImRzdCIgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiPjwvY2FudmFzPg0KKyAg
PHAgaWQ9ImluZm8iPjwvcD4NCisgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4NCisgIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKyAgPHNjcmlwdD4NCisgICAgInVzZSBzdHJpY3QiOw0K
KyAgICBkZXNjcmlwdGlvbigiVGVzdCBvZiBpbXBvcnRpbmcgVmlkZW9mcmFtZSBmcm9tIFdlYmNv
ZGVjcyB0byBXZWJnbCIpOw0KKw0KKyAgICBjb25zdCBrSXNSdW5uaW5nVGVzdCA9IHRydWU7DQor
ICAgIGNvbnN0IGtNYXhGcmFtZSA9IDEwOw0KKyAgICBjb25zdCBrVGVzdFBpeGVsID0gWzI1NSwg
MTI4LCAwLCAyNTVdOw0KKyAgICAvLyBTdW0gb2YgcGl4ZWwgZGlmZmVyZW5jZSBvZiBSL0cvQiBj
aGFubmVsLiBVc2UgdG8gZGVjaWRlIHdoZXRoZXIgYQ0KKyAgICAvLyBwaXhlbCBpcyBtYXRjaGVk
IHdpdGggYW5vdGhlci4NCisgICAgY29uc3QgY29kZWNfc3RyaW5nID0gInZwMDkuMDAuNTEuMDgu
MDAiOw0KKw0KKyAgICBsZXQgd3R1ID0gV2ViR0xUZXN0VXRpbHM7DQorICAgIGxldCBjbnYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3JjIik7DQorICAgIGxldCBzcmNfd2lkdGggPSBjbnYu
d2lkdGg7DQorICAgIGxldCBzcmNfaGVpZ2h0ID0gY252LmhlaWdodDsNCisgICAgbGV0IHNyY19j
b2xvciA9ICJyZ2JhKCIgKyBrVGVzdFBpeGVsWzBdLnRvU3RyaW5nKCkgKyAiLCIgKyBrVGVzdFBp
eGVsWzFdLnRvU3RyaW5nKCkgKyAiLCINCisgICAgICArIGtUZXN0UGl4ZWxbMl0udG9TdHJpbmco
KSArICIsIiArIGtUZXN0UGl4ZWxbM10udG9TdHJpbmcoKSArICIpIjsNCisgICAgbGV0IGZyYW1l
X2NvdW50ZXIgPSAwOw0KKyAgICBsZXQgcGl4ZWxDb21wYXJlVG9sZXJhbmNlID0gNTsNCisNCisg
ICAgZnVuY3Rpb24gZ2V0UXVlcnlWYXJpYWJsZSh2YXJpYWJsZSkgew0KKyAgICAgIHZhciBxdWVy
eSA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOw0KKyAgICAgIHZhciB2YXJz
ID0gcXVlcnkuc3BsaXQoIiYiKTsNCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhcnMubGVu
Z3RoOyBpKyspIHsNCisgICAgICAgIHZhciBwYWlyID0gdmFyc1tpXS5zcGxpdCgiPSIpOw0KKyAg
ICAgICAgaWYgKHBhaXJbMF0gPT0gdmFyaWFibGUpIHsgcmV0dXJuIHBhaXJbMV07IH0NCisgICAg
ICB9DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorDQorICAgIGxldCB0aCA9IHBhcnNl
SW50KGdldFF1ZXJ5VmFyaWFibGUoJ3RocmVzaG9sZCcpKTsNCisgICAgaWYgKCFpc05hTih0aCkp
DQorICAgICAgcGl4ZWxDb21wYXJlVG9sZXJhbmNlID0gdGg7DQorDQorICAgIGFzeW5jIGZ1bmN0
aW9uIHN0YXJ0RHJhd2luZygpIHsNCisgICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNyYyIpOw0KKyAgICAgIHZhciBjdHggPSBjbnYuZ2V0Q29udGV4dCgnMmQnLCB7IGFs
cGhhOiBmYWxzZSB9KTsNCisNCisgICAgICBjdHguZmlsbFN0eWxlID0gc3JjX2NvbG9yOw0KKyAg
ICAgIGxldCBkcmF3T25lRnJhbWUgPSBmdW5jdGlvbiAodGltZSkgew0KKyAgICAgICAgY3R4LmZp
bGxTdHlsZSA9IHNyY19jb2xvcjsNCisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBzcmNfd2lk
dGgsIHNyY19oZWlnaHQpOw0KKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShk
cmF3T25lRnJhbWUpOw0KKyAgICAgIH0NCisgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGRyYXdPbmVGcmFtZSk7DQorICAgIH0NCisNCisgICAgZnVuY3Rpb24gY2FwdHVyZUFuZEVu
Y29kZShwcm9jZXNzQ2h1bmspIHsNCisgICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNyYyIpOw0KKyAgICAgIGxldCBmcHMgPSA2MDsNCisgICAgICBsZXQgcGVuZGluZ19v
dXRwdXRzID0gMDsNCisgICAgICBsZXQgc3RyZWFtID0gY252LmNhcHR1cmVTdHJlYW0oZnBzKTsN
CisgICAgICBsZXQgcHJvY2Vzc29yID0gbmV3IE1lZGlhU3RyZWFtVHJhY2tQcm9jZXNzb3Ioc3Ry
ZWFtLmdldFZpZGVvVHJhY2tzKClbMF0pOw0KKw0KKyAgICAgIGNvbnN0IGluaXQgPSB7DQorICAg
ICAgICBvdXRwdXQ6IChjaHVuaykgPT4gew0KKyAgICAgICAgICB0ZXN0UGFzc2VkKCJFbmNvZGUg
ZnJhbWUgc3VjY2Vzc2Z1bGx5LiIpOw0KKyAgICAgICAgICBwZW5kaW5nX291dHB1dHMtLTsNCisg
ICAgICAgICAgcHJvY2Vzc0NodW5rKGNodW5rKTsNCisgICAgICAgIH0sDQorICAgICAgICBlcnJv
cjogKGUpID0+IHsNCisgICAgICAgICAgdGVzdEZhaWxlZCgiRmFpbGVkIHRvIGVuY29kZSBmcmFt
ZS4iKTsNCisgICAgICAgICAgZmluaXNoVGVzdCgpOw0KKyAgICAgICAgICB2dHIuc3RvcCgpOw0K
KyAgICAgICAgfQ0KKyAgICAgIH07DQorDQorICAgICAgY29uc3QgY29uZmlnID0gew0KKyAgICAg
ICAgY29kZWM6IGNvZGVjX3N0cmluZywNCisgICAgICAgIHdpZHRoOiBjbnYud2lkdGgsDQorICAg
ICAgICBoZWlnaHQ6IGNudi5oZWlnaHQsDQorICAgICAgICBiaXRyYXRlOiAxMGU2LA0KKyAgICAg
ICAgZnJhbWVyYXRlOiBmcHMsDQorICAgICAgfTsNCisNCisgICAgICBsZXQgZW5jb2RlciA9IG5l
dyBWaWRlb0VuY29kZXIoaW5pdCk7DQorICAgICAgZW5jb2Rlci5jb25maWd1cmUoY29uZmlnKTsN
CisNCisgICAgICBjb25zdCBmcmFtZV9yZWFkZXIgPSBwcm9jZXNzb3IucmVhZGFibGUuZ2V0UmVh
ZGVyKCk7DQorICAgICAgZnJhbWVfcmVhZGVyLnJlYWQoKS50aGVuKGZ1bmN0aW9uIHByb2Nlc3NG
cmFtZSh7ZG9uZSwgdmFsdWV9KSB7DQorICAgICAgICBpZiAoZG9uZSkNCisgICAgICAgICAgcmV0
dXJuOw0KKw0KKyAgICAgICAgaWYgKHBlbmRpbmdfb3V0cHV0cyA+IDMwKSB7DQorICAgICAgICAg
IGNvbnNvbGUubG9nKCJkcm9wIHRoaXMgZnJhbWUiKTsNCisgICAgICAgICAgLy8gVG9vIG1hbnkg
ZnJhbWVzIGluIGZsaWdodCwgZW5jb2RlciBpcyBvdmVyd2hlbG1lZA0KKyAgICAgICAgICAvLyBs
ZXQncyBkcm9wIHRoaXMgZnJhbWUuDQorICAgICAgICAgIHZhbHVlLmNsb3NlKCk7DQorICAgICAg
ICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihwcm9jZXNzRnJhbWUpOw0KKyAgICAgICAgICBy
ZXR1cm47DQorICAgICAgICB9DQorDQorICAgICAgICBpZihmcmFtZV9jb3VudGVyID09IGtNYXhG
cmFtZSkgew0KKyAgICAgICAgICBmcmFtZV9yZWFkZXIucmVsZWFzZUxvY2soKTsNCisgICAgICAg
ICAgcHJvY2Vzc29yLnJlYWRhYmxlLmNhbmNlbCgpOw0KKyAgICAgICAgICB2YWx1ZS5jbG9zZSgp
Ow0KKyAgICAgICAgICByZXR1cm47DQorICAgICAgICB9DQorDQorICAgICAgICBmcmFtZV9jb3Vu
dGVyKys7DQorICAgICAgICBwZW5kaW5nX291dHB1dHMrKzsNCisgICAgICAgIGNvbnN0IGluc2Vy
dF9rZXlmcmFtZSA9IChmcmFtZV9jb3VudGVyICUgMTUwKSA9PSAwOw0KKyAgICAgICAgZW5jb2Rl
ci5lbmNvZGUodmFsdWUsIHsga2V5RnJhbWU6IGluc2VydF9rZXlmcmFtZSB9KTsNCisNCisgICAg
ICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihwcm9jZXNzRnJhbWUpOw0KKyAgICAgIH0pOw0K
KyAgICB9DQorDQorICAgIGZ1bmN0aW9uIHN0YXJ0RGVjb2RpbmdBbmRSZW5kZXJpbmcoY252LCBo
YW5kbGVGcmFtZSkgew0KKyAgICAgIGNvbnN0IGluaXQgPSB7DQorICAgICAgICBvdXRwdXQ6IGhh
bmRsZUZyYW1lLA0KKyAgICAgICAgZXJyb3I6IChlKSA9PiB7DQorICAgICAgICAgIHRlc3RGYWls
ZWQoIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIik7DQorICAgICAgICAgIGZpbmlzaFRlc3QoKTsN
CisgICAgICAgIH0NCisgICAgICB9Ow0KKw0KKyAgICAgIGNvbnN0IGNvbmZpZyA9IHsNCisgICAg
ICAgIGNvZGVjOiBjb2RlY19zdHJpbmcsDQorICAgICAgICBjb2RlZFdpZHRoOiBjbnYud2lkdGgs
DQorICAgICAgICBjb2RlZEhlaWdodDogY252LmhlaWdodCwNCisgICAgICAgIGFjY2VsZXJhdGlv
bjogImRlbnkiLA0KKw0KKyAgICAgIH07DQorDQorICAgICAgbGV0IGRlY29kZXIgPSBuZXcgVmlk
ZW9EZWNvZGVyKGluaXQpOw0KKyAgICAgIGRlY29kZXIuY29uZmlndXJlKGNvbmZpZyk7DQorICAg
ICAgcmV0dXJuIGRlY29kZXI7DQorICAgIH0NCisNCisgICAgZnVuY3Rpb24gaXNGcmFtZVBpeGVs
TWF0Y2hlZChnbCwgdGhfcGVyX3BpeGVsID0gcGl4ZWxDb21wYXJlVG9sZXJhbmNlKSB7DQorICAg
ICAgV2ViR0xUZXN0VXRpbHMuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBzcmNfd2lkdGgsIHNy
Y193aWR0aCwga1Rlc3RQaXhlbCwgInNob3VsZCBiZSBvcmFuZ2UiLCBwaXhlbENvbXBhcmVUb2xl
cmFuY2UpDQorICAgIH0NCisNCisgICAgZnVuY3Rpb24gbWFpbigpIHsNCisgICAgICBpZiAoISgi
VmlkZW9FbmNvZGVyIiBpbiB3aW5kb3cpKSB7DQorICAgICAgICB0ZXN0UGFzc2VkKCJXZWJDb2Rl
Y3MgQVBJIGlzIG5vdCBzdXBwb3J0ZWQuIik7DQorICAgICAgICBmaW5pc2hUZXN0KCk7DQorICAg
ICAgICByZXR1cm47DQorICAgICAgfQ0KKyAgICAgIGxldCBjbnYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZHN0Iik7DQorDQorICAgICAgbGV0IHdlYmdsX3dlYmNvZGVjc190ZXN0X2NvbnRl
eHQgPSB7DQorICAgICAgICBtYXhGcmFtZVRlc3RlZDoga01heEZyYW1lLA0KKyAgICAgICAgZGlz
cGxheWVkX2ZyYW1lOiAwLA0KKyAgICAgICAgaXNGcmFtZVBpeGVsTWF0Y2hlZDogaXNGcmFtZVBp
eGVsTWF0Y2hlZCwNCisgICAgICAgIHRlc3RGYWlsZWQ6IHRlc3RGYWlsZWQsDQorICAgICAgICB0
ZXN0UGFzc2VkOiB0ZXN0UGFzc2VkLA0KKyAgICAgICAgZmluaXNoVGVzdDogZmluaXNoVGVzdA0K
KyAgICAgIH07DQorICAgICAgc2V0VGVzdE1vZGUod2ViZ2xfd2ViY29kZWNzX3Rlc3RfY29udGV4
dCk7DQorICAgICAgbGV0IGhhbmRsZUZyYW1lID0gcmVxdWVzdFdlYkdMVmlkZW9GcmFtZUhhbmRs
ZXIoY252KTsNCisgICAgICBpZiAoaGFuZGxlRnJhbWUgPT09IG51bGwpIHsNCisgICAgICAgIGZp
bmlzaFRlc3QoKTsNCisgICAgICAgIHJldHVybjsNCisgICAgICB9DQorDQorICAgICAgc3RhcnRE
cmF3aW5nKCk7DQorICAgICAgbGV0IGRlY29kZXIgPSBzdGFydERlY29kaW5nQW5kUmVuZGVyaW5n
KGNudiwgaGFuZGxlRnJhbWUpOw0KKyAgICAgIGNhcHR1cmVBbmRFbmNvZGUoKGNodW5rKSA9PiB7
DQorICAgICAgICBkZWNvZGVyLmRlY29kZShjaHVuayk7DQorICAgICAgfSk7DQorICAgIH0NCisN
CisgICAgZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBtYWluOw0KKyAgPC9zY3JpcHQ+DQorDQorPC9i
b2R5Pg0KKw0KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2NoYXJhY3Rlci1zZXQu
aHRtbAppbmRleCAxYmE4NTQ2MTNjNmFmMmZjOWZjZDViN2JmOTNlNjg4MGJlYTQ4ZmFlLi42ZDZm
Y2E1Zjg5OWYzOGQ0NTBkNTU4YzhmZmJiNzQ1OTc2MDY3NDRjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2J1
Z3MvY2hhcmFjdGVyLXNldC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jaGFyYWN0ZXItc2V0Lmh0bWwK
QEAgLTExMSw3ICsxMTEsNSBAQCBkZWJ1ZygiIik7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIAogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLQogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9jb25z
dHJ1Y3RvcnMvZ2xzbC1jb25zdHJ1Y3QtdmVjLW1hdC1pbmRleC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9jb25zdHJ1
Y3RvcnMvZ2xzbC1jb25zdHJ1Y3QtdmVjLW1hdC1pbmRleC5odG1sCmluZGV4IDhhOWZiZWJjNTk0
NWI1MjkxMjc2ZTc0YjlhNGNjMzRhZGFiMGFmYjUuLjA4NGQ1MzJmOGE2NGM1ZWE5YTc4NmRkNTlm
Yjk3NDlmOTlmOTkzZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29uc3RydWN0b3JzL2dsc2wtY29uc3Ry
dWN0LXZlYy1tYXQtaW5kZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2NvbnN0cnVjdG9ycy9nbHNsLWNvbnN0
cnVjdC12ZWMtbWF0LWluZGV4Lmh0bWwKQEAgLTQ5LDYgKzQ5LDUgQEAgdm9pZCBtYWluKCkKIEdM
U0xDb25mb3JtYW5jZVRlc3Rlci5ydW5SZW5kZXJUZXN0KCk7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2QxNTVlZDYxYmY1
MDFiZGQzZTZkNzZlMGEwMzJmZTQzMWIwNDY5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9Ii4uL3VuaXQuY3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0IiBzcmM9Ii4uL3VuaXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPjxib2R5PgotPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIx
NiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0aD0iMTI4IiBoZWln
aHQ9IjEyOCI+PC9jYW52YXM+Ci08aW1nIGlkPSJpIj4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRp
b24vamF2YXNjcmlwdCI+Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZGVmYXVsdElt
Z1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL29wZW5n
bF9sb2dvLmpwZyI7Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL29wZW5n
bF9sb2dvLmpwZyI7Ci0KLVRlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZlbnRzIHRoZSB0
ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCi0KLVRlc3RzLnN0YXJ0
VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdnbCcpOwotICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMp
KTsKLSAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnRlc3RSZWFkUGl4ZWxzID0gZnVuY3Rpb24o
Z2wpIHsKLSAgLy8gd2UgY2FuJ3Qga25vdyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVz
ZSBvZiBuZWdhdGl2ZSB3aWR0aAotICAvLyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vz
bid0IG1hdGNoIHRoZSBkaW1lbnNpb25zLgotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgIm5lZ2F0
aXZlIHdpZHRoIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsLTEsMSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7
Ci0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAgIm5lZ2F0aXZlIGhlaWdodCIsCi0gICAgICBmdW5j
dGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsLTEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
Ci0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICBhc3NlcnRPaygibmVnYXRpdmUg
eCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoLTEsMCwxLDEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwotICBhc3Nl
cnRPaygibmVnYXRpdmUgeSIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwtMSwx
LDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXko
NCkpO30pOwotICBhc3NlcnRPaygiaGVpZ2h0ID4gYmFja2J1ZmZlciBoZWlnaHQiLAotICAgICAg
ZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxNiwxNywgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgxNioxNyo0KSk7fSk7Ci0gIGFzc2VydE9r
KCJ3aWR0aCA+IGJhY2tidWZmZXIgd2lkdGgiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4
ZWxzKDAsMCwxNywxNiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcg
VWludDhBcnJheSgxNyoxNio0KSk7fSk7Ci0gIGFzc2VydE9rKCJ3aWR0aCwgaGVpZ2h0ID0gMCIs
Ci0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDAsMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSgwKSk7fSk7Ci0gIC8vIHdlIGNh
bid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUgd2lk
dGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBtYXRjaCB0aGUgZGlt
ZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgZm9ybWF0IiwKLSAgICAgIGZ1
bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5GTE9BVCwgZ2wuVU5TSUdORURfQllU
RSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KjQpKTt9KTsKLSAgLy8gd2UgY2FuJ3Qga25v
dyBpZiB0aGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBvZiBuZWdhdGl2ZSB3aWR0aAotICAv
LyBvciBiZWNhdXNlIHRoZSBidWZmZXIgc2l6ZSBkb2Vzbid0IG1hdGNoIHRoZSBkaW1lbnNpb25z
LgotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgImJhZCB0eXBlIiwKLSAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5BTFBIQSwgZ2wuRkxPQVQsCi0gICAgICAgICAgbmV3
IFVpbnQ4QXJyYXkoMSo0KSk7fSk7Ci19Ci0KLVRlc3RzLnRlc3RSZWFkUGl4ZWxzU09QSU1HID0g
ZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImki
KTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgLy8gU09QIGZhaWx1cmUKLSAgICBhc3NlcnRUaHJv
d05vR0xFcnJvcihnbCwgInRocm93IGJlY2F1c2UgaW1nIGlzIGZyb20gYW5vdGhlciBkb21haW4i
LAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7Ci0gICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgYXNzZXJ0T2soImNhbnZhcyBzdGlsbCBvcmln
aW4tY2xlYW4iLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwot
ICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLX0KLVRlc3RzLnRlc3RSZWFkUGl4ZWxzU09QQ2Fu
dmFzID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImkiKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjIik7Ci0gICAg
Yy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICAgIGFzc2VydEZhaWwo
ImNhbnZhcyB0aHJvd3MgYmVjYXVzZSBub3Qgb3JpZ2luIGNsZWFuIiwKLSAgICAgIGZ1bmN0aW9u
KCl7Yy5nZXRDb250ZXh0KCIyZCIpLmdldEltYWdlRGF0YSgwLDAsMSwxKTt9KTsKLSAgICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleCk7Ci0gICAgLy8gU09QIGZhaWx1cmUKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihn
bCwgInRocm93IGJlY2F1c2UgY2FudmFzIGlzIG5vdCBvcmlnaW4gY2xlYW4iLAotICAgICAgZnVu
Y3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIG51bGwpOwotICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3JpZ2luLWNsZWFuIiwKLSAg
ICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgICBnbC5kZWxldGVU
ZXh0dXJlKHRleCk7Ci19Ci0KLVRlc3RzLmVuZFVuaXQgPSBmdW5jdGlvbihnbCkgewotfTsKLQot
KGFzeW5jIGZ1bmN0aW9uKCkgewotICBjb25zdCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaScpOwotICB0cnkgewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENy
b3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOwotICB9IGNh
dGNoIChlKSB7Ci0gICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsK
LSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGluaXRUZXN0cygpOwotfSko
KTsKLTwvc2NyaXB0PgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Y2M3OGQxNjM1NzU2NWZlNjUzOGVlYmZm
OWY3ZjEzMTRhZTNlOTEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
LS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5p
dC5jc3MiIC8+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4v
dW5pdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IHNyYz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRleDsKLQotdmFyeWlu
ZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29vcmQwID0gdmVjNChU
ZXgucywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRl
eCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktaGZsaXAtdmVydCIg
dHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVydGV4OwotYXR0cmli
dXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsK
LSAgICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwgMC4wKTsKLSAgICBn
bF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlk
PSJpZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOwotCi12YXJ5aW5nIHZl
YzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4
dHVyZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29sb3IgPSBjOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1
NiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9j
YW52YXM+Ci08aW1nIGlkPSJpIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgIHNyYz0iZGF0YTpp
bWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFBQUVBQ0FZQUFBQmNj
cWhtQUFBVFZFbEVRVlI0bk8zZCtWUFVkNTdIY2YyYjlrOVkrejQ0K3FLN09ab0dGVkE1VmZCR3ph
aDljeHBOekdFT29SdWE1bEJFdWUvREs0Zlo3TWFwbVNtM01sc2h1OHhPZENwREp0M3YvYUVCQVVI
QU9NRzR6MGZWNTNmcVUvVjZmZDdmVC9lMzJiRURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdPdkJr
YXI3bCszK0d3QnNrOHhVclQwclRiOHZ4MlE0NWphbmx1N1lzV1Buc2dYZ1RlWXdhazg1VTNYdjVa
aU0zK1hiVWgvbDJkSUNCYzYwODBXWjF1cjkyYmFTSFJRQjhHYXlHZFVXdTFIem9TTkZPK1pNMWYy
Y2JUTE01MWxUNXdvYzVya0RPYmJaL1ZtMlNFbTIzVnZzeWpoVjVuSlFCc0NieEdaUVZ0bU42cDRN
by9ZUGRxTkdIS2xheVVyWEo5eldsRVNoMHhJdnpzbVlMM0haNTRwek1tNlZ1UnlSTXBmVFcrcHlV
QWJBbThCbVZOVm5HTlRUZHFQNnZ6T01HckduYU1TWnFwTnNrMTd5YktsUzZEVEwvaXhib3RSbGo1
ZmxPdWJMM0k2NU1wZmpWcm5iRWFsWUtJTlNsMzM1dlFHQTN3S2JVVzJ4R2RXUkRLUDY2d3lqV2hZ
THdKR2lGV2VhVHJKTkJuRmJVMlNQM1NUN3M2eFNtbXVYY3JjelVlNTJ4c3R6SGZQbGJzZGN1ZHQ1
cXl6WDNsS1dseGtzelhHZUs4bXhueXpKeVNqZVFSa0FyemViUVZsbE02cDdiVWIxNDlVRjRFalZT
bWFhVHJMUzllS3lwTWdlZTdvY3lMWkptZHNoRlhtWlVwSG5YRkVHQi9PekpzcmRqcUV5dC9ObVdh
NDlYSmJ0OUphNk1rNFZ1N2hFQkY1TE5yMnEzbVpRejlnTTZ1OVhGRUJxc2dDY2FUckpYSmdFY2kw
cHN0ZGhrdjNaTmluTlRaYkFvZndzT1pTZkpRZnpNcVU4ejVrb2R6c1NaYm1PZUlYYitYVzUyekZh
NW5MY0tuUFpJMlVMbDRqRmZLSUF2QjdNT3JYRlpsQkhiQWIxMXphaitrbUdVYk51QVdTbTY1ZEtZ
SGRHbWhSbFdxUTh6eUZIQ25MaytMNWNPVjZVSzBjS1hWSzVKMXNPNW1kS2hkc3BaYXZLb0RUWDBW
UGljaVRMSUh0RkdWQUl3Sy9OWWxCVzJmVHFYcHRCL2RobVNKNytMeXFBckhTOTVKaVRKVkRnTkVs
bFFaWjRLZ3VscnJwVTZxdExKWEJzdjV3dDN5TW45cnZsYUlGTERpOHZnMXhING1CKzVwK1dsMEZw
anIybEpNY1JMTTZ5bnl2T3pqaHhJSXQ3QStCWFk5R3I2cTBMNC85U0FhUm94TDd3L0w5V0FXU2JE
SkpyVFpGaWQ0WjRqeFpKVS8xeHVmSGhPZW0rZWs2aWwwL0xCNzRxYVR4VEpvR2orK1ZzMlI0NXZq
OVhqaFRreU9IZEM0OEpDMlZ3YUhmbW55cmN6bit2Y0RzbXluTHRReVU1R1RlTGN6TENwVGsyVDNH
VzdWaHhWc2FlN2Q0ZjRJMWwxcWt0Vm9NNllqT292cllhMUQ4c0ZvQjlXUUU0MTVrQTh1MXBjdlJB
am53VU9pTERMUUc1MTkwbzkyNDJ5bFJIblF5Ry9YTHo2bm1KWHFxV0QzeVYwbkM2VlB4SDk4blpz
dDF5ZkYrdUhDMTBTZFhlYkRtVW55eURxb0xzN3c3bFozNWI3bmI4c2N4dC83ZFNsMzJrSkNlanF5
UW40MHBKVGtiWkRpWUM0Tld6YUpWVlZyMnExMlpRUGJZYTFIOWZ1d0IwU3dXUWxhNlhMRk95QUFv
eVRmTFc0VDNTZnVXTTNMM1JJQS83TDh2RC9zdnlaZThsK2V6VzIzS3Z1MUVtTzJwbG9Oa24zVmZQ
U2V2YjFmSyt0MUlhejVSSjdjbGk4UjBwa3RPbCtYS3NLRmtHQnhmS29ISnYxbDhQNW1mK3VTTFA4
ZnZ5WE1kTW1kc1JLWGM1cW90ZEdRWGJ2Vi9BRzhXaVY5VmI5YW9acTE0MWF6T294V2JjWEFIa1ds
T2tKQzlEYWs4WHk2MVBMOGlEbm90TEJiQlVCSDJYNVl2YmwrUkJ6MFc1ZTZOQkp0cHJwTC9aSnpj
L09pL1hQM2hMV2k2ZWt2YzhoNld1dWtTOFZjL0tZUEVDOFdoaHpwT3FndXp2S3ZkbWZYVjRkMmIz
d2Z6TTl3L2xaVEVOQUsrQ1dhZXdXSFdxaUUydit0cXFWLzJ3MlFMSU5oa2tQMk5oL0s4OUltTnRJ
Zm1pOTlLejhQY2wxNWRMNjVKODBYdEpQci8xdHR5LzJTaDN1eHZrenZWNkdZK0ZwTythVjY1LzhE
dUpYRHdwVnp5SHBPN1VRaG1VNU12UklwZFU3YzJSUTd1ejVNUis5eCtPRmJudUhpM01pVlFWdUtv
UDc4NHUydTc5QTM3VExGcGxsVlduNnJYcVZZK3RldFdQR3hiQXNndkF2VTZUdkhWb3Q4U3VuSlk3
TitybHk3NjFnLzlsYjNKOXNXeDlmdnVTZkg3N2JYblFjMUh1ZFRmSVRGZWRqTFdGcFBlYVI3bytl
RXZDalNmbHlvVkRVbGRkS3NIakIrVEM0VUk1Vlp3blZRVTVpYmNxOW54MXVqUy81OFFCOTlYcVlu
ZjVEcVlCNE9WWWRNL0dmNnRlOVkvazgvL0dCZUN5R0tYRW5TRTExUWVrNTVQemN2OW00OHJRcnhQ
OEwyNWZraTl1dnkyZnIxcWYzYnFZbkF4dU5NaDBaNTJNUklOeSsxT1BYUC93ZDlKKzVZdzAxNStR
ZDg0ZmxKcVR4WExoY0lHY0xNNzcrVWhCenQ4dVZCYTJucXZjZS9ac3haNnk3ZDVMNERkbGNmeTM2
RlZmVy9TcUg2d0dsYXd1Z01XdkFUdlRsaFdBeVNCNUdhbHlkSCtPZkZSelJFYWpRZm44MXR2cmgv
NkZ3VjljRitXeld4Zmx3YTJMY3Ivbm90enJicFNaNi9VeTFWVW5reDIxTXR3U2tKNVBMa2pIZTJl
bHFmNjRYRDUzVUVJbkRpUXVIQzZZcnk3T216MVc1SHJZK0ZiRjRSMU1BOERtV0xUS0tzdXk4ZDlx
VUwrd0FKWi9DM0NQTTEzT0h0d3RiZStlbHVucjlmTEZ1c0YvUHZTZjMxbzcrQTk2bnEzN1BSZmxm
aytqM0wrWi9Gang3bzBHbWU2cWs0bjJHaGxxOFV2UHgrZWwvY29adVZaM1hDNmZxL2k1N2xUeDMy
cE9IbmdVT2xVYy9qUjRsRXRDWUNNV25hcmVvbGZOV1BTcVdhdEI5ZE9hQmJER2w0QmNGcU1VdTIw
U09uVkFibjU4VHU1Mk4yN3F0UDk4ZzlBL1dBejlRdkFYMTczRkV1aHVrTHZkRGNuSm9MTld4bU0x
TWhqeHk4MlB6a25uKzJjU3NYZFB6NGNiVDh4K0dLaDgrRkh3U08wT1NnQlltMW1uc0poMXFvaEZy
MXdZLzVYeFp3V3cvdGVBczlLVHZ3dHdaSCsyWEExVnlYQnJVQjcwWEZ6L3RGOW56TjlLOE85MU44
aTloZkF2cmpzM0d1VE9qWHFaWG5oRUdHK3ZrZEZvVUFiRC9wOTdQajcvdDU2cjU3L3B1K2I1cE9Y
ZDZxUGJ2ZGZBYThlaTNWVmwwYWw2TFhybFk0dE8rYU5GcjBwc3RnRDJPTkxsek1IZEVuMm5XcVk2
NitTemx4enpIeXdiODU4TC9UckJ2M3ZqV2ZnWDE4ejE1SnJ1cXBPcHpscVphQThseG1LaHY0OUdn
My9vRC9zKzN1NjlCbDQ3RnAyaTNxSlZ6VmgweWxtclR2bVRWWis4QUZ6NUhzRHpCWkJqTmtweHJr
MkNwdzVJOTBmbjVNNk5oaGVlOWxzT2Z2Zm1nMy9uK3JQd3oxeXZrNW11T3BsZVdKTWR0ZkhKanBy
dkpqdHFLQUJndWVUNHI0aVlkY3F2emJwZFAxajB5dmpxQXJDdjlTSlF1bDdjdGxTcDJwY3RId1ly
WmFnbElQZHZOcTUvMnIvZ1ltOVR3Yit4OWVCUGQ5WEpWSElTbUovcXJQMW11ck9HUndCZ09aTjJW
NVZGcCt5MWFCZkdmNTB5c1ZRQWEzd0hZTEVBc3RMMXN0dVJMcWNyOHFYMThpbVo3S2lWQnowWFh4
ajZqWi92TnhuODZ4c0hQL2tJVUNkVG5YWHg2YzdhdjB4MTFQUnM5MTREcngyVFRsRnYwaXBtekRy
bHJFV24vTW1pVjhsbUNpRGJiSkFEdVRZSm50d3ZONjcrVG1hdTF5ZER2bWJvdDM2eDl5ejQ5Uzha
L05yRk5UL2RWZnY3cWM2Nms5dTkxOEJyeGF4ZVBmNHI0aHNWZ0hQaDl3QnpyU2xTVlpRdEh3UXFa
VERpbDd2ZGpWczc3YmNZL0ptdEIxK21PbXNUa3gyMVQ2YTZha2UyZTYrQjE0NUp1NnZLcEZQMm1y
VEt4MmJ0cy9GLzhWdUFMeXFBM2ZZME9WMmVMeTJYVHNwRWU0M2NmOEd6L1RZRVh5WTdhbVd5b3lZ
KzFWSHovVlJuWGZOMjd6WHcybGthLzdYS1dZdFcrWk5GcDVUTkZFQzJ5U0Q3WFZZSm5OZ25YUisr
SmROZGRacys3WCtkNE5mS1pFZU5USGJVekU5MjFEeWE1UElQV0NsTnJiQ1l0Y254MzZUZDlZTlpw
NGhiZEtxTkMyQmgvSzhzekpMMy9ZZGxJT3lUT3pjYXR2d3gzc1kzK3I4bytETFpFVXBNdE5jOG1l
aGcvQWVlWTFMdnFqSnBsYjBtamVLeFdhdjQwYXhWSmxZWHdGcHZBbWFtNlNUZm5pYlZaWGtTZWZ1
a2pNVkNjcmQ3RXlQK2VxZjlsb0pmdTJId0p6cHFaS0s5UnNiYlEvSEo5dEQzazUwMWpQL0FhaWFO
b3Q2a1NZNy9acTNpSjdOT0tZc1hnQzhxZ0N5VFFmYmxXTVYvZko5MGZuQldKanRyVjR6M1d6bnRu
N3ZSdi81ODZMY2EvR2NyTkQvUkhubzAyYzc0RDZ5UXBsWllURnBGeEtSVkxJMy9Ld3ZnK1JlQjdD
bkozd0Z3V1ZMa2NHR1d2T2MvTFAzTlhwbTVYdi9MVC90TkJuOXlFOEVmVDRZL01SNExQUmx2RHpI
K0E2dVpOWXBLazNaWGIvckMrRy9TS2hLYkxZQzhqRFE1VlpZbjRZc25aTFF0S0hkdWJDNzBteDN6
ZjBud3g5dERNaDRMeVZnc0ZCK1BCYjhmYjJmOEI1NlRybEhVcDJzVjB5YU5ZbW44MzB3QlpLWHJa
VisyUlh6SDkwbkgrMmRsb3FNbVdRQ3Y0TFIvK2VDSGxvSy9FSDRaandYbngyUEJSMlB0UWNaL1lE
bVRScG1hcmxZMG1UUzd2a3JUS1A1cTBpcCtOdXVVWXRtZ0FCeXBXbkZaakhLb0lGT3VlQTlKWDVO
SHBydnFOaDM2elo3MnZ5VDRDK0ZQakxZRm40ekhnb3ovd0dvbXphN2Q2WnBkTVpORzhZMUpvM2hp
MWk0OC8yK2lBUEl5VXVWa3FWdWFHay9JU0RRb005ZGYzV20vTXZnMVd3NytXQ3drWTIxQkdXMEx4
a2ZiZ3QrUHhVS00vOEJxYVpwZHU5UFVpaWFUUnZHVlNhdjR5OUluQUJzVVFHYTZYb3F5TGVJOVZp
VHQ3NTJSOGZiUXFzQy80dE4raThFZmF3dkthRFFvSTlIQS9HaGI4SnV4S09NLzhCeVQ1bDlUMDlT
S1FMcEdNV1RTS3Y3VHJGVThOZXVVaWVVRllGdjFZeUNPVksza21KUGovN3ZlZzlKN3pTTlRuYld2
NkxSL0JjRmZXQ1BSUUh3a0d2akxTRFRBbTMvQWV0TFZ5anlUUnZtT1NhdVlOT3NVMzVwMXluOXNW
QUJ1VzZxY0xNMlZhdzNIWmJnMUlOTmRyK2EwWC9zei9LMEZmelFhbE5Gb0lIbjZSd08vSDJrTDh1
WWY4Q0ltemE1Q2syN1hlMmF0Y3NxaVU4YlhMWUFValdTbTY2UXd5eXplWTRVU3UzSmF4bUtodFVQ
L2kwLzdtaFdoWHhIOHR2V0NINVNSYUVCR280SEVTS3YveVdocmdNcy9ZRFBTZGNvaXMxYnh2a1du
ZkdyUksrTnJGWUE5UlN2WlpvTWMzT3VVZHp3SDVmYTFDekxSVWZOUFBlM0gxemp0MXd2KzRocHVE
Y1JIb29IdlI2SUJMditBelRMcmxFVm1uZktoUmFkOGFsM3o1OEMwNHJhbHlJbVNYTG5XY0V5R1d2
MHkyVmtyVTEzUGgvNmxUdnNOZ2orNlFmQkhXZ015M0JxUTRWYi8vSEJyNE5GSTFNL2xIN0FWRnIw
cVlOR3JIbHIxcXFjMmd5cSsvRTFBWjVwT0NyTk00amxhSUcxWFRzdG9XL0NmZDlxL1ZQQURNdHpx
VHd5MytKOE1NLzRETDJYbmloSXdxdUkybzFyc0tSckpOaG1rWXE5RExsK29rRnVmbkpmeDlwcG5v
Vi92Yy91dG52YXhOY2I4VFFVL0lNT3RmaGxxOGNlSFcvemZEMGNERjdaN0k0SGZxcDAydlNwZzA2
c2UyZ3pxcHhsR1RkeWVvcEZjYTRvY0wzSEpwL1ZIWlREaWs0bU96WTM0TDMzYWIrN0VYd3ord3ZM
TkQ3Y0VibzIwQmpLM2V4T0IzN0tkTnFNNllET29IMllZMVUrZGFicDRRYVpKTGh6Wks5RjNxMlVr
R3BDSkRVLzcwS3M3N1RjTXZsK0dXbnlKd1lqdnlWQkw0SjN0M2p6Z1RiRFRabFFITW95YWg5bG0v
ZE9LUGM3NHBmUGwwdlB4T1JtTGhYNmQwMzVUd1Y5WUVWOThzTVUvTlJEbThnOTRWWGJhVTdVQmw4
WDQ4RVNKNitrbjlVZCtIZ2g3RXVQdG9WZHoycmR0SnZRdkR2NWd4TGV3dkg4Y2lIZzdobG9DbHUz
ZU5PQk5zdE50U3czNGp4YzliSDJuZW5hb3hUYzMzaDZhSDR1RjR1UHR3Y1I0OG4vdS9STk8rODBH
M3lkREVkLy9ESVI5OXdiQ3ZzYnQzaXpnVGJUemFxZ3kwUFB4dWZCSU5CQWJidzg5R28rRlpzZGpv
Ym54OXREY2FDdzRQOW9XakkvRmdvbXhXQ0F4K2dwTysrRzF4dnhWd1IrTStHUXc3UDF4TU94N1BC
ajI5ZlpIdkZYYnZWSEFtMnJuNHByc3JLa2Q2d2lGUjl0RHNmSDJtdGhJTFBSb3JDMDRPOVlXbWh1
TmhlWkcyd0x6STlGZ2ZMUXRrQmlOQmhMUGhmNFhuUGFMYXlEaWs0R3dUd2JDM3Y4ZGFQWStISWo0
UHVwdjlqTCtBNytDbmN2WGVIdE43V2dzR0I2TmhXS2pzVkJzSkJwOE5Cb056bzVFQTNNTGEzNjRO
UkFmYWZVbmhwUHI1VTc3bGNHWGdiRDM3d05oejUvN203MGpBMkhQbVczZUUrRC9yWldGMEJhc0hX
NExoa2VpZ2RoSUxCUWJiZzA4R200TnpBNjMrT2VHVy94elE2MysrYUVXZjN5b3haZElybVdoYjNr
KzlJTkxvVjhLdnZRM2UrTUR6ZDRmK3BzOS85RWY5cllOUkh5T2JkNERBQXRXRk1Kb1c3QjJ1RFVZ
SG9vR1lrUFJRR3lveGY5b3FNVTNPeFR4elExRmZITkRMYjc1b1lndlBoanhKcFpXZU8zZ0o4UHZT
ZlEzZVg4YUNIdG4rNXU5TTMzTlhQNEJyN01WaFREY0dxZ2RidldIQjF2OXNjRldmMnd3NG44MEdQ
SE5Eb2E5YzRNUjM5eGcyRHMzRVBiT0Q0Uzk4WUd3SnpFUTlpVDZtNzNTMyt5VnZtYlBmSCt6Wjc2
dnlmTzB2OW43cDc1bWIyOS9NNWQvd0cvSmM0VXcxT0lQOTBmOHNjR0lQOVlmOGNjR3dyNUhBMkh2
N0VDemQyNmcyVHZYbHd4OXZLL1o4MjEvcytlLytwbzgzL1kzZVQ3cmEvWTBjZmtIL0xidFhMMkdX
bnkxQTJGZnVDL3NqZldIdmJIK1pzK2p2ckQzWm0rVFo2aTN5VFBXMSt5WjdHdnlYTzlyOXZpMzkw
OEg4TSt3b2hCNm03eGx0Njk1VHc2RWZlY0d3MTVmZjVQbm5iNW1UNkQzMm9VRDIveDNBdmdWN2R5
eFk4Zk9nU2F2dTcvSms5VjN6YXZlN2o4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNWL2c5dFBKRVF1
MVh2bVFBQUFBQkpSVTVFcmtKZ2dnPT0iPgotPGltZyBpZD0iaTIiPgotCi08c2NyaXB0PgotdmFy
IHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQu
d2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBu
ZyI7Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxv
Z28tNjR4NjQucG5nIjsKLQotVGVzdHMuYXV0b2luaXQgPSBmYWxzZTsgLy8gUHJldmVudHMgdGhl
IHRlc3QgZnJvbSBydW5uaW5nIHVudGlsIHRoZSBpbWFnZSBpcyBsb2FkZWQKLQotVGVzdHMuc3Rh
cnRVbml0ID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZ2wnKTsKLSAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChj
YW52YXMpKTsKLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQp
OwotICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2FibGUoZ2wuREVQVEhf
VEVTVCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wp
IHsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1h
cCk7Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwg
dGV4LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVs
bCk7Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7
Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKLSAgICBnbC5lbmFi
bGUoZ2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScp
OwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4
ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBn
bC5MSU5FQVIpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICAgIHZhciBmID0gbmV3IEZpbHRlcihnbCwgJ2lk
ZW50aXR5LWZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGds
Lk9ORSwgZ2wuWkVSTyk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYyk7Ci0gICAgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0
JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5P
TkVfTUlOVVNfU1JDX0FMUEhBKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0g
ICAgdmFyIHZhbGlkX3RhcmdldHMgPSBbCi0gICAgICAgIGdsLlRFWFRVUkVfMkQsCi0gICAgICAg
IGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9ORUdBVElWRV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ks
Ci0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICAgICAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1oKLSAgICBdOwotICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7
Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICAgICAgYXNzZXJ0T2soZnVu
Y3Rpb24oKXtnbC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpO30pOwotICAgIH0pOwotfQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRE5vblNPUCA9
IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
MicpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIg
Y3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0g
ICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2lu
IGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3
aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAg
ZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rp
b24oZ2wpIHsKLX07Ci0KLShhc3luYyBmdW5jdGlvbigpIHsKLSAgICBjb25zdCBpbWcgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB0cnkgewotICAgICAgICBhd2FpdCB3dHUu
YXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1Vy
bCwgbG9jYWxJbWdVcmwpKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQo
YEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpbml0VGVzdHMoKTsKLX0pKCk7Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjhlYzJhYTA5N2IxZmQzMTRlODE3NWM3MTVhYzNi
ZWYwMTY2ZjM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxNjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KLS0t
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5j
c3MiIC8+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdW5p
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNy
Yz0iLi4vdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IGlkPSJpZGVudGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4K
LWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2
ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29vcmQwID0gdmVjNChUZXgu
cywgMS4wLVRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwg
MS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktaGZsaXAtdmVydCIgdHlw
ZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVydGV4OwotYXR0cmlidXRl
IHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAg
ICB0ZXhDb29yZDAgPSB2ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwgMC4wKTsKLSAgICBnbF9Q
b3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJp
ZGVudGl0eS1mcmFnIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOwotCi12YXJ5aW5nIHZlYzQg
dGV4Q29vcmQwOwotdm9pZCBtYWluKCkKLXsKLSAgICB2ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4dHVy
ZSwgdGV4Q29vcmQwLnN0KTsKLSAgICBnbF9GcmFnQ29sb3IgPSBjOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+PGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwv
Y2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2FudmFz
PgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9ImRhdGE6aW1hZ2Uv
cG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJjY3FobUFB
QVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZBNVZmQkd6YWg5Y3hw
TnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2L2FFQkFVSEFPTUc0
ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3T3ZCa2FyN2wr
MytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4NVUzWHY1WmlNMytY
YlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05GTytaTTFmMmNiVExN
NTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFWdG1ONnA0TW8vWVBk
cU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1wZlRXK3B5VUFiQW04
Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4Ym90UmxqNWZsT3Vi
TDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2Nnd5aldoWUx3Skdp
RldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxic2RjdWR0NXF5elgz
bEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5VUY0RWpWU21hYVRy
TFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFFeXQvTm1XYTQ5WEpi
dDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJKWEpnRWNpMHBzdGRo
a3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIrWFc1MnpGYTVuTGNL
blBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFXU202NWRLWUhkR21o
UmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2S29EVFgwVlBpY2lU
TElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlUSlZEZ05FbGxRWlo0
S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1cCtXbDBGcGpyMmxK
TWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9MOVdBV1NiREpKclRa
RmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytWczJSNDV2ajlYamhU
a3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxDcFRrMlQzR1c3Vmh4
VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4dTFwY3ZSQWpud1VP
aUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQeEg5OG5ac3QxeWZG
K3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMya0pDZWpxeVFuNDBw
SlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZYTEZPeUFBb3lUZkxX
NFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxvTmtuM1ZmUFNldmIx
ZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVtZit1U0xQOGZ2eVhN
ZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdiY1hBSGtXbE9rSkM5
RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBycEwvWkp6Yy9PaS9Y
UDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dmek05
dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9LODlJbU50SWZtaTk5
S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8rYVY2NS84RHVKWER3
cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNNaVZRVnVLb1A3ODR1
MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90OFN1bkpZN04rcmx5
NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQZWFSN28rZUV2Q2pT
Zmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThRQjk5WHFZbmY1RHFZ
QjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjltNDhyUXJ4UDhMMjVm
a2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1WXcwMTUrUWQ4NGZs
SnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDREZGxjZnkzNkZWZlcv
U3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZuODF0dnJoLzZGd1Y5
Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQTGtqSGUyZWxxZjY0
WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtLc3V5OGQ5cVVMK3dB
SlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5xMzdQUmZsZmsrajNM
K1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9pNTdsVHgzMnBPSG5n
VU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJjRnFNVXUyMFNPblZB
Ym41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpvTE5XeG1NMU1oanh5
ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNKaDFxb2hGcjF3WS81
WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45SzhPOTFOOGk5aGZB
dnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2cVBi
dmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRFbjJuV3FZNjYrU3ps
eHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHhtS2h2NDlHZzMvb0Qv
cyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpCak5rcHhyazJDcHc1
STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1kdGZISmpwcnZKanRx
S0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3AycGN0SHdZclphZ2xJ
UGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3QmdPWk4yVjVWRnAr
eTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tpVkJ6MFhYeGo2alov
dk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2MGlwbXpEcmxyRVdu
L01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5eXo0OVM4Wi9OckZO
VC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1ZaUXRId1FxWlREaWw3
dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2S3BGUDJtclRLeDJi
dHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3YW1XeW95WSsxVkh6
L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpuTmduWFIrK0pkTmRk
WnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2VGQ5WU5acDRoYmRL
cU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVwTXROYzhtZWhnL0Fl
ZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJWWlhrU2VmdWtqTVZD
Y3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFqUC9BYWlhTm90NmtT
WTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0ejNXem50bjd2UnYv
NTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2ZytSZUI3Q25KM3dG
d1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRMUFJsdkR6SCtBNnVa
TllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHViQzcwbXgzemYwbnd4
OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMwd0JaS1hyWlYrMlJY
ekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQdFFjWi9ZRG1UUnBt
YXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91ZUE5Slg1TkhwcnZx
TmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4WTFKbzNoaTFpNDgv
MitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1kyMUJHVzBMeGtmYmd0
K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9xeUxlSTlWaVR0NzUy
UjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlUNWw5VDA5U0tRTHBH
TVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6U05UbmJXdjZMUi9C
Y0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1cDF5bjlzVkFCdVc2
cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndPL0gya0w4dVlmOENJ
bXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0pheG1LaHRVUC9pMC83
bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lzMWJ4dmtXbmZHclJL
K05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3dis0aHB1RGNSSG9v
SHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExuV2NFeUdXdjB5MlZr
clUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9sSDdBVkZyMHFZTkdy
SGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9WUEFETXR6cVR3eTMr
SjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5KZng5cHBub1YvdmMv
dXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAwMnZTcGcwNnNlMmd6
cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdFWHd6K3d2TE5EN2NF
Ym8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpLOUYzcTJVa0dwQ0pE
VS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1veWFoOWxtL2RPS1Bj
NzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0VlhiYVU3VUJsOFg0OEVT
SjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3aGxvQ2x1M2VOT0JO
c3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3UvUk5PKzgwRzN5ZERF
ZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdvK0Zac2Rqb2JueDl0
RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1AxeE1PeDdQQmoyOWZa
SHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0TzlZV21odU5oZVpH
MndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRhUFkrSElqNFB1cHY5
akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEzTUxhMzY0TlJBZmFm
VW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpXRjBCYXNIVzRMaGtl
aWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJcm1XaGIzays5SU5M
b1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9XN0IydURVWUhvb0dZ
a1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2U2ZRM2VY
OGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3dzRuODBHUEhORG9h
OWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQZkgrelo3NnZ5Zk8w
djluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3cjVIQTJIdjdFQ3pk
MjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9MYnRYTDJHV255MUEy
RmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85cjl2aTM5MDhIOE0r
d29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gzQXZnVjdkeXhZOGZP
Z1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9nOXRQSkVRdTFYdm1R
QUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9ImkyIj4KLQotPHNjcmlwdD4KLXZhciB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKLXZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmds
Lm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5wbmciOwot
dmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0
eDY0LnBuZyI7Ci0KLVRlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZlbnRzIHRoZSB0ZXN0
IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCi0KLVRlc3RzLnN0YXJ0VW5p
dCA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2dsJyk7Ci0gICAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFz
KSk7Ci0KLSAgICBnbC52aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQpOwot
ICAgIGdsLmNsZWFyQ29sb3IoMCwwLDEsMSk7Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVS
X0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVT
VCk7Ci0gICAgcmV0dXJuIFtnbF07Ci19Ci0KLVRlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wpIHsK
LSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0dXJl
KCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1hcCk7
Ci0gICAgcmV0dXJuIFtnbF0KLX0KLQotVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwgdGV4
LCB0ZXhDdWJlTWFwKSB7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7
Ci0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfQ1VCRV9NQVAsIG51bGwpOwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7Ci19
Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKLSAgICBnbC5lbmFibGUo
Z2wuQkxFTkQpOwotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScpOwot
ICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0g
Yy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBpbWcpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwg
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5D
TEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICB2YXIgZiA9
IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOwot
ICAgIGdsLmJsZW5kRnVuYyhnbC5PTkUsIGdsLlpFUk8pOwotICAgIGYuYXBwbHkoKTsKLSAgICBm
LmRlc3Ryb3koKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAg
ZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcn
KTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhB
KTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0gICAgdmFyIHZhbGlkX3Rhcmdl
dHMgPSBbCi0gICAgICAgIGdsLlRFWFRVUkVfMkQsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9N
QVBfUE9TSVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAot
ICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9aLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKLSAgICBdOwot
ICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7Ci0gICAgICAgIGFzc2VydE9r
KGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgICAgICAgICBnbC50ZXhT
dWJJbWFnZTJEKHQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAg
ICAgICB9KTsKLSAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAgICBn
bC50ZXhJbWFnZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMp
OwotICAgICAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQodCwgMSwgMCwgMCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCi1UZXN0cy50
ZXN0VGV4SW1hZ2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOwotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2MnKTsKLSAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOwotICAgIGN0eC5k
cmF3SW1hZ2UoaW1nLDAsMCk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFn
ZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAg
ICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVy
cm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhy
b3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleFN1YkltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAg
IGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBj
YW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpO30pOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4U3ViSW1hZ2UyRCB3
aXRoIGRpcnR5IG9yaWdpbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAg
ZnVuY3Rpb24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci19Ci0KLVRlc3RzLmVuZFVuaXQgPSBmdW5jdGlv
bihnbCkgewotfTsKLQotKGFzeW5jIGZ1bmN0aW9uKCkgewotICAgIGNvbnN0IGltZyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOwotICAgIHRyeSB7Ci0gICAgICAgIGF3YWl0IHd0dS5h
d2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJs
LCBsb2NhbEltZ1VybCkpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZChg
SW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsKLSAgICAgICAgZmluaXNoVGVzdCgpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIGluaXRUZXN0cygpOwotfSkoKTsKLTwvc2NyaXB0Pgot
PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NHX0RhdGFfVHlwZXNf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ0dfRGF0YV9UeXBlc19mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGYzMTA5MGViZjMyMDcyNzA1NmQwZmUwODY0ZDJjMDE4YjBiN2M4YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NHX0RhdGFfVHlwZXNfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMjggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFp
bigpCit7CisJaGFsZiBoMTsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwloYWxmMiBoMjsgLy8gTm90
IGEgYmFzaWMgdHlwZS4KKwloYWxmMyBoMzsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwloYWxmNCBo
NDsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmbG9hdDIgZjI7IC8vIE5vdCBhIGJhc2ljIHR5cGUu
CisJZmxvYXQzIGYzOyAvLyBOb3QgYSBiYXNpYyB0eXBlLgorCWZsb2F0NCBmNDsgLy8gTm90IGEg
YmFzaWMgdHlwZS4KKwlmaXhlZCBmeDE7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZml4ZWQyIGZ4
MjsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmaXhlZDMgZngzOyAvLyBOb3QgYSBiYXNpYyB0eXBl
LgorCWZpeGVkNCBmeDQ7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZmxvYXQzeDMgZjN4MzsgLy8g
Tm90IGEgYmFzaWMgdHlwZS4KKwlmbG9hdDJ4NCBmMng0OyAvLyBOb3QgYSBiYXNpYyB0eXBlLgor
CWhhbGY0eDQgaDR4NDsgLy8gTm90IGEgYmFzaWMgdHlwZS4KK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
Q0dfU3RhbmRhcmRfTGlicmFyeV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkyNjgwZWUxYWE4Mjhk
YjIwMTRhYWRmYzhhYjIzNDcyZGYwY2JhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL0NHX1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisJaW50IGkg
PSByb3VuZCgxLjMpOyAvLyByb3VuZCBpcyBub3QgYSBidWlsdC1pbiBmdW5jdGlvbi4KK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RCdWlsdEluT3ZlcmlkZV9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA3YmEzZWYzN2I3YzU0NTA4YzliMmYzOTgyODIyYTZkZDI2ZGJkODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMjIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgaW50OworI2VuZGlmCisKK2lu
dCByYWRpYW5zKGludCBmKQoreworICAgIHJldHVybiBmOworfQorCit2b2lkIG1haW4oKQorewor
ICAgIGludCBmID0gNDU7CisgICAgZiA9IHJhZGlhbnMoZik7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0Q29tbWFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dENvbW1hX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjY3MWQ3OWI2ODI2MzllZWVhNWYxZThhY2Rl
ODIwNWViMzg1MTc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENv
bW1hX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCitzdHJ1Y3QgcyB7CisgICAgZmxvYXQgZjsKKyAgICB2ZWMzIHY7Cit9Owor
Cit2b2lkIG1haW4oKQoreworICAgIGNvbnN0IHZlYzQgdiA9ICh2ZWM0KDEsMiwzLDQpLCB2ZWM0
KDUsNiw3LDgpKTsgIC8vIDUsNiw3LDgKKyAgICBjb25zdCBzIHMxID0gKHMoOS4wLCB2ZWMzKDEw
LDExLDEyKSksIHMoMTMuMCwgdmVjMygxNCwxNSwxNikpKTsgLy8gMTMsMTQsMTUsMTYKKyAgICBn
bF9GcmFnQ29sb3IgPSB2ICsgdmVjNChzMS5mLCBzMS52KTsgIC8vIDE4LCAyMCwgMjIsIDI0Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnZl
cnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnZlcnQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODlhM2JjNTg0ZmFlZTI5MWI3YTFkOWFkMDM0N2I0MDU4ZmEwZDNmMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcxX3ZlcnQudmVydApA
QCAtMCwwICsxLDM2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCit2b2lkIG1haW4oKQoreworCisgICBjb25zdCBzdHJ1Y3QgczIgeworICAgICAgIGlu
dCBpOworICAgICAgIHZlYzMgdjM7CisgICAgICAgYnZlYzQgYnY0OworICAgfSBzMjIgID0gczIo
OCwgdmVjMyg5LCAxMCwgMTEpLCBidmVjNCh0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpKTsKKwor
ICAgc3RydWN0IHM0IHsKKyAgICAgICBpbnQgaWk7CisgICAgICAgdmVjNCB2NDsKKyAgICAgIH07
CisKKyAgIGNvbnN0IHN0cnVjdCBzMSB7CisgICAgICBzMiBzczsKKyAgICAgIGludCBpOworICAg
ICAgZmxvYXQgZjsKKyAgICAgIG1hdDQgbTsKKyAJczQgczQ0OworICAgfSBzMTEgPSBzMShzMjIs
IDIsIDQuMCwgbWF0NCg1KSwgczQoNiwgdmVjNCg3LCA4LCA5LCAxMCkpKSA7CisKKyAgY29uc3Qg
aW50IGZpZWxkMyA9IHMxMS5pICogczExLnNzLmk7ICAvLyBjb25zdGFudCBmb2xkaW5nIChpbnQg
KiBpbnQpCisgIGNvbnN0IHZlYzQgZmllbGQ0ID0gczExLnM0NC52NCAqIHMxMS5zNDQudjQ7IC8v
IGNvbnN0YW50IGZvbGRpbmcgKHZlYzQgKiB2ZWM0KQorIC8vIDQ5LCA2NCwgODEsIDEwMAorICBj
b25zdCB2ZWM0IHY0ID0gdmVjNChzMTEuc3MudjMueSwgczExLm1bM11bM10sIGZpZWxkMywgZmll
bGQ0WzJdKTsgIC8vIDEwLjAsIDUuMCwgMTYuMCwgODEuMAorICBnbF9Qb3NpdGlvbiA9IHY0Owor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC52
ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC52ZXJ0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU1YzEzNjcyNDVjYTAyMmM2M2VkMDFkYmE2YjhjY2Q4ZDdkOGFlNjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMl92ZXJ0LnZlcnQK
QEAgLTAsMCArMSw0MjEgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgc3RydWN0IHM1IHsKKyAgICBmbG9hdCBrOwor
ICAgIH07CisgICAgY29uc3Qgc3RydWN0IHMgeworICAgICAgICBpbnQgaTsKKyAgICAJZmxvYXQg
ajsKKyAgICAgIHM1IHM1NTsKKyAgICB9IHNzID0gcyg0LDEuMCwgczUoMS4wKSk7CisKKworICAg
Y29uc3Qgc3RydWN0IHMyIHsKKyAgICAgICBpbnQgaTsKKyAgICAgICB2ZWMzIHYzOworICAgICAg
IGJ2ZWM0IGJ2NDsKKyAgIH0gczIyICA9IHMyKDgsIHZlYzMoOSwgMTAsIDExKSwgYnZlYzQodHJ1
ZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisKKyAgc3RydWN0IHM0IHsKKyAgICAgICAgICBpbnQg
aWk7CisgICAgICAgICAgdmVjNCB2NDsKKyAgICAgIH07CisKKyAgIGNvbnN0IHN0cnVjdCBzMSB7
CisgICAgICBzMiBzczsKKyAgICAgIGludCBpOworICAgICAgZmxvYXQgZjsKKyAgICAgIG1hdDQg
bTsKKyAgICAgIHM0IHM0NDsKKyAgICAgfSBzMTEgPSBzMShzMjIsIDIsIDQuMCwgbWF0NCg1KSwg
czQoNiwgdmVjNCg3LCA4LCA5LCAxMCkpKSA7CisKKworICAgY29uc3Qgc3RydWN0IHM3IHsKKyAg
ICAgICBpbnQgaTsKKyAgICAgICBtYXQzIG0zOworICAgfSBzNzcgPSBzNygxMiwgbWF0MygxNSkp
OworCisgIHZlYzIgICAgICAgdjIxID0gdmVjMigxKTsgIC8vIE5vdCBhIGNvbnN0YW50CisgIGNv
bnN0IHZlYzIgdjIyID0gdmVjMigxMSk7IC8vIDExLjAsIDExLjAKKyAgY29uc3QgdmVjNCB2NDEg
PSB2ZWM0KDIpOyAgLy8gMi4wLCAyLjAsIDIuMCwgMi4wCisgIGNvbnN0IHZlYzQgdjQzID0gdmVj
NCg0LDQsNCw0KTsgLy8gNC4wLCA0LjAsIDQuMCwgNC4wCisgIGNvbnN0IHZlYzQgdjQ0ID0gdmVj
NCg1LjAsIDUuMCwgNS4wLCA1LjApOyAvLyA1LjAsIDUuMCwgNS4wLCA1LjAKKyAgY29uc3QgdmVj
NCB2NDUgPSB2ZWM0KHYyMiwgdjIyKTsgIC8vIDExLjAsIDExLjAsIDExLjAsIDExLjAKKyAgY29u
c3QgdmVjNCB2NDYgPSB2ZWM0KHZlYzIoMjAsIDIxKSwgdmVjMigyMiwgMjMpKTsgIC8vIDIwLjAs
IDIxLjAsIDIyLjAsIDIzLjAKKworICBjb25zdCB2ZWMzIHYzMSA9IHZlYzMoczIyLnYzKTsgIC8v
IDkuMCwgMTAuMCwgMTEuMAorICBjb25zdCB2ZWMzIHYzMiA9IHZlYzMoczc3Lm0zKTsgIC8vIDE1
LjAsIDAsIDAKKyAgY29uc3QgdmVjMyB2MzMgPSB2ZWMzKHM3Ny5tM1syXSk7IC8vIDAsIDAsIDE1
LjAKKyAgY29uc3QgdmVjMyB2MzQgPSB2ZWMzKHM3Ny5tM1syXVswXSk7ICAvLyAwLDAsMAorCisK
KyAgY29uc3QgbWF0NCBtNDEgPSBtYXQ0KDEpOyAgLy8gMSwwLDAsMCwwLDEsMCwwLDAsMCwwLDEs
MCwwLDAsMCwwLDEKKyAgY29uc3QgbWF0NCBtNDIgPSBtYXQ0KHY0NCwgdjQ0LCB2NDQsIHY0NCk7
ICAvLyBhbGwgNXMKKyAgY29uc3QgbWF0NCBtNDMgPSBtYXQ0KCB2NDMueCk7ICAvLyA0LDAsMCww
LDAsNCwwLDAsMCwwLDAsNCwwLDAsMCwwLDAsNAorCisgIGNvbnN0IHZlYzQgdjQ3ID0gdmVjNCht
NDFbMF1bMF0pOyAgLy8gMS4wLDEuMCwxLjAsMS4wCisKKyAgY29uc3QgbWF0NCBtNDUgPSBtYXQ0
KHMyMi52MywgdjQ0LCB2NDUsIHYzMiwgNTAsIDUyKTsgIC8vOSwxMCwxMSw1LDUsNSw1LDExLDEx
LDExLDExLDE1LjAsIDAsMCwgNTAuMCwgNTIuMAorICAvL2NvbnN0IG1hdDMgbTMxID0gbWF0Mygx
LCBtYXQyKDEpLCAyLjAsIHZlYzMoMSkpOyAgLy8gMS4wLCAxLDAsMCwxLDIsMSwxLDEKKyAgY29u
c3QgdmVjNCB2NDggPSB2ZWM0KHYzMVswXSwgdjIyWzFdLCB2NDFbMF0sIHY0M1szXSk7ICAvLzks
IDExLCAyLCA0CisgIGNvbnN0IHZlYzQgdjQ5ID0gdmVjNChzMjIudjMueHksIHMyMi52My56eCk7
IC8vIDksMTAsMTEsOQorICBjb25zdCB2ZWM0IHY0MTAgPSB2ZWM0KHY0NC54eSwgdjQzLnp4KTsg
IC8vNSw1LDQsNAorCisgIGNvbnN0IHZlYzQgdjQxMSA9IHZlYzQobTQyWzNdKTsgIC8vIDUsNSw1
LDUKKyAgY29uc3QgdmVjNCB2NDEyID0gdmVjNChtNDNbMl0pOyAgLy8gMCwwLDQsMAorCisgIGNv
bnN0IHZlYzIgdjIzID0gdmVjMihtNDEpOyAgLy8gMSwwCisKKyAgY29uc3QgdmVjMiB2MjQgPSB2
ZWMyKDMzLCBzMTEuaSk7ICAvLyAzMywgMgorCisgIGNvbnN0IHZlYzQgdjQxMyA9IHZlYzQodmVj
MigxLjAsMi4wKSxpdmVjMigzLjAsNC4wKSk7ICAvLyAxLDIsMyw0CisgIGNvbnN0IGl2ZWM0IGk0
MSA9IGl2ZWM0KDEuMCwgMi4wLCAzLjAsIDQuMCk7ICAvLyAxLDIsMyw0CisKKyAgY29uc3QgaXZl
YzQgaTQyID0gaXZlYzQoNik7ICAvLyA2LDYsNiw2CisgIGNvbnN0IGl2ZWM0IGk0MyA9IGl2ZWM0
KHY0NSk7ICAvLzExLDExLDExLDExCisKKyAgY29uc3QgaXZlYzQgaTQ0ID0gaXZlYzQodjQ0WzBd
KTsgIC8vIDUsNSw1LDUKKyAgY29uc3QgaXZlYzQgaTQ1ID0gaXZlYzQodmVjMigyMCwgMjEpLCB2
ZWMyKDIyLCAyMykpOyAgLy8gMjAsIDIxLCAyMiwgMjMKKyAgY29uc3QgdmVjNCB2NDE0ID0gdmVj
NChpdmVjMigyOSwgMzApLCBpdmVjMigzMSwgMzIpKTsgLy8gMjkuMCwgMzAuMCwgMzEuMCwgMzIu
MAorICBjb25zdCBpdmVjNCBpNDYgPSBpdmVjNChpdmVjMigyLjAsMy4wKSwgaXZlYzMoNC4wLDUu
MCw2LjApKTsKKyAgY29uc3QgaXZlYzQgaTQ3ID0gaXZlYzQoaTQ2KTsgIC8vIDIsMyw0LDUKKyAg
Y29uc3QgaXZlYzQgaTQ4ID0gaXZlYzQodjQxNC54KTsgIC8vIDI5LDI5LDI5LDI5CisKKyAgY29u
c3QgaXZlYzQgaTQ5ID0gaXZlYzQodmVjNCgxKSk7IC8vIDEsMSwxLDEKKyAgY29uc3QgaXZlYzQg
aTQxNCA9IGl2ZWM0KG1hdDQoMTQpKTsgLy8gMTQsIDAsMCwwLAorICBjb25zdCBpdmVjNCBpNDEw
ID0gaXZlYzQobTQzKTsgIC8vIDQsMCwwLDAKKyAgY29uc3QgaXZlYzQgaTQxMSA9IGl2ZWM0KG00
M1sxXSk7ICAvLyAwLCA0LCAwLCAwCisgIGNvbnN0IGl2ZWM0IGk0MTIgPSBpdmVjNChzNzcuaSk7
IC8vIDEyLCAxMiwgMTIsIDEyCisgIGNvbnN0IGl2ZWM0IGk0MTYgPSBpdmVjNChzMjIudjMuenl4
LCAxMik7ICAvLyAxMSwgMTAsIDksIDEyCisKKyAgY29uc3QgdmVjNCB2NDE1ID0gdmVjNChpdmVj
MigzNSksIGl2ZWMyKDM2KSk7IC8vIDM1LjAsIDM1LjAgLDM2LjAgLCAzNi4wCisKKyAgY29uc3Qg
YnZlYzQgYjQxID0gYnZlYzQoMS4wLCAyLjAsIDMuMCwgNC4wKTsgIC8vIHRydWUsdHJ1ZSx0cnVl
LHRydWUKKworICBjb25zdCBidmVjNCBiNDIgPSBidmVjNCg2KTsgIC8vIHRydWUsdHJ1ZSx0cnVl
LHRydWUKKyAgY29uc3QgYnZlYzQgYjQzID0gYnZlYzQodjQ1KTsgIC8vdHJ1ZSx0cnVlLHRydWUs
dHJ1ZQorCisgIGNvbnN0IGJ2ZWM0IGI0NCA9IGJ2ZWM0KHY0NFswXSk7ICAvLyB0cnVlLHRydWUs
dHJ1ZSx0cnVlCisgIGNvbnN0IGJ2ZWM0IGI0NSA9IGJ2ZWM0KHZlYzIoMCwgMjEpLCB2ZWMyKDAs
IDEpKTsgIC8vIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZQorICBjb25zdCBidmVjNCBiNDYgPSBi
dmVjNChpdmVjMigwLjAsMy4wKSwgaXZlYzMoMCw1LjAsNi4wKSk7IC8vIGZhbHNlLCB0cnVlLCBm
YWxzZSwgdHJ1ZQorICBjb25zdCBidmVjNCBiNDcgPSBidmVjNChpNDYpOyAgLy8gdHJ1ZSx0cnVl
LHRydWUsdHJ1ZQorICBjb25zdCBidmVjNCBiNDggPSBidmVjNCh2NDE0LngpOyAgLy8gdHJ1ZSx0
cnVlLHRydWUsdHJ1ZQorCisgIGNvbnN0IGJ2ZWM0IGI0OSA9IGJ2ZWM0KHZlYzQoMCkpOyAvLyBm
YWxzZSxmYWxzZSxmYWxzZSxmYWxzZQorICBjb25zdCBidmVjNCBiNDE0ID0gYnZlYzQobWF0NCgx
NCkpOyAvLyB0cnVlLCBmYWxzZSxmYWxzZSxmYWxzZSwKKyAgY29uc3QgYnZlYzQgYjQxMCA9IGJ2
ZWM0KG00Myk7ICAvLyB0cnVlLGZhbHNlLGZhbHNlLGZhbHNlCisgIGNvbnN0IGJ2ZWM0IGI0MTEg
PSBidmVjNChtNDNbMV0pOyAgLy8gZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZQorICBjb25zdCBi
dmVjNCBiNDEyID0gYnZlYzQoczc3LmkpIDsgLy8gdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZQorCisg
IGNvbnN0IHZlYzMgdjM1ID0gdmVjMyhzMTEuczQ0LnY0KTsgIC8vIDcuMCw4LjAsOS4wCisKKwor
ICBzdHJ1Y3QgczEwIHsKKyAgICAgaW50IGs7CisgIH07CisgIHN0cnVjdCBzOSB7CisgICAgICAg
ZmxvYXQgZjsKKyAgICAgIHMxMCBzMTAxOworICAgfTsKKyAgY29uc3Qgc3RydWN0IHM4IHsKKyAg
ICAgIGludCBpOworICAgICAgczkgczk5OworICB9IHM4OCA9IHM4KDEsIHM5KDIuMCwgczEwKDUp
KSk7CisKKyAgIHN0cnVjdCBzdDQgeworICAgICAgIGludCBtOworICAgICAgIHZlYzMgdjM7Cisg
ICB9OworICAgc3RydWN0IHN0MyB7CisgICAgICBpbnQgazsKKyAgICAgIGludCBsOworICAgICAg
c3Q0IHN0NDQ7CisgICAgIH07CisgICBzdHJ1Y3Qgc3QyIHsKKyAgICAgICBmbG9hdCBmOworICAg
ICAgIHN0MyBzdDMzOworICB9OworICBjb25zdCBzdHJ1Y3Qgc3QxIHsKKyAgICAgIGludCBpOwor
ICAgICAgc3QyIHN0MjI7CisgIH0gc3QxMSA9IHN0MSgxLCBzdDIoMi4wLCBzdDMoNSwgNiwgc3Q0
KDcsIHYzNSkpKSk7CisKKyAgY29uc3QgdmVjNCB2NDE2ID0gdmVjNChzODguczk5LnMxMDEuayk7
IC8vIGFsbCA1cworICBjb25zdCB2ZWM0IHY0MTcgPSB2ZWM0KHN0MTEuc3QyMi5zdDMzLnN0NDQu
djMsIHM4OC5zOTkuczEwMS5rKTsgIC8vIDcuMCwgOC4wLCA5LjAsIDUuMAorICBjb25zdCB2ZWMz
IHYzNiA9IHZlYzMoczExLnNzLnYzKTsgIC8vIDksIDEwLCAxMQorCisgIHZlYzQgdjQxOCA9IHY0
MTY7ICAvLyBhbGwgNXMKKyAgY29uc3QgZmxvYXQgZjEgPSB2NDE2WzBdOyAgLy8gNS4wCisgIHZl
YzQgdjQxOTsKKyAgdjQxOS54eXogPSBzdDExLnN0MjIuc3QzMy5zdDQ0LnYzOworICBtYXQ0IG00
NzsKKworICBzdHJ1Y3Qgc3RydWN0MiB7CisgICAgICBpbnQgazsKKyAgfSBzdHJ1Y3QyMiA9IHN0
cnVjdDIoNCk7CisKKyAgY29uc3Qgc3RydWN0IHN0cnVjdDEgeworICAgICAgIHN0cnVjdDIgc3N0
MjsKKyAgfSBzdHJ1Y3QxMSA9IHN0cnVjdDEoc3RydWN0MigyKSk7CisKKyAgY29uc3QgdmVjNCB2
NDIwID0gdjQxNzsgIC8vIDcuMCwgOC4wLCA5LjAgLCA1LjAKKworICB2ZWM0IHY0MjEgPSB2ZWM0
KHMxMS5tKTsgIC8vIDUsIDAsIDAsIDAKKyAgdmVjNCB2NDIyID0gdjQyMDsgIC8vIDcuMCwgOC4w
LCA5LjAgLCA1LjAKKworICB2ZWM0IHY0MjMgPSBzMTEuczQ0LnY0OyAgIC8vIDcsIDgsIDksIDEw
CisKKyAgaW50IGludDEgPSBzcy5pICogc3MuaTsgIC8vIDE2CisgIGludCBpbnQyID0gc3MuaSAq
IDI7ICAvLyA4CisKKyAgY29uc3QgdmVjNCB2NDI1ID0gdjQyMCAqIHY0MjA7ICAvLyA0OSwgNjQs
IDgxLCAyNQorICBjb25zdCB2ZWM0IHY0MjYgPSBzMTEubSAqIHMxMS5zNDQudjQ7IC8vIDM1LCA0
MCwgNDUsIDUwCisgIGNvbnN0IHZlYzQgdjQyNyA9IHMxMS5zNDQudjQgKiBzMTEubTsgLy8gMzUs
IDQwLCA0NSwgNTAKKworICBmbG9hdCBmZiA9IDIuMDsKKyAgY29uc3QgZmxvYXQgZmZDb25zdCA9
IDIuMDsKKworICB2ZWM0IHY0MjggPSBmZiArIHY0MjU7ICAvLyBvcmRpbmFyeSBhc3NpZ25tZW50
IHdpdGggYmluYXJ5IG5vZGUKKyAgdmVjMyB2MzkgPSB2ZWMzKDUpOworCisgIHZlYzMgdjMxMCA9
IHMyMi52MyArIHYzOTsgIC8vMTQsIDE1LCAxNgorCisgIGNvbnN0IHZlYzQgdjQyOSA9IHY0MjAg
KyB2NDIwOyAvLyAxNCwgMTYsIDE4LCAxMAorICBjb25zdCB2ZWM0IHY0MzAgPSB2NDIwICsgZmZD
b25zdDsgIC8vIDksIDEwLCAxMSw3CisgIGNvbnN0IHZlYzQgdjQzMiA9ICB2NDI5ICsgczExLmY7
ICAvLyAxOCwgMjAsIDIyLCAxNAorCisgIGNvbnN0IHZlYzQgdjQzMyA9IHZlYzQoczExLmYgKyBz
MTEuZik7ICAvLyBhbGwgOHMKKyAgY29uc3QgdmVjNCB2NDM0ID0gdjQzMiArIHZlYzQoMyk7ICAv
LyAyMSwgMjMsIDI1LCAxNworICBjb25zdCBtYXQ0IG00OCA9IHMxMS5tICsgZmZDb25zdDsgIC8v
IGRpYWdvbmFsIDdzIGFuZCBvdGhlcnMgMnMKKyAgY29uc3QgbWF0NCBtNDkgPSBtYXQ0KGZmQ29u
c3QgKyBzMTEuZik7ICAvLyBkaWFnb25hbCA2cworICBjb25zdCBtYXQ0IG00MTAgPSBtNDggKyBz
MTEuZjsgIC8vIGRpYWdvbmFsIDExLCBvdGhlcnMgLSA2cworCisgIGNvbnN0IG1hdDQgbTQxMyA9
IG00OCArIG00OCA7IC8vIGRpYWdvbmFsIDE0LCBvdGhlcnMgNAorICBjb25zdCBtYXQ0IG00MTQg
PSBtNDEzICsgZmZDb25zdCA7IC8vIGRpYWdvbmFsIDE2LCBvdGhlcnMgNgorCisgIGNvbnN0IHZl
YzQgdjQzNSA9IGZmQ29uc3QgKyB2NDIwOyAgLy8gOSwgMTAsIDExLDcKKyAgY29uc3QgdmVjNCB2
NDM2ID0gIHMxMS5mICsgdjQyOTsgIC8vIDE4LCAyMCwgMjIsIDE0CisgIGNvbnN0IG1hdDQgbTQx
NSA9IGZmQ29uc3QgKyBzMTEubTsgIC8vIGRpYWdvbmFsIDdzIGFuZCBvdGhlcnMgMnMKKyAgY29u
c3QgbWF0NCBtNDE2ID0gczExLmYgKyBtNDggOyAgLy8gZGlhZ29uYWwgMTEsIG90aGVycyAtIDZz
CisgIGNvbnN0IG1hdDQgbTQxNyA9IGZmQ29uc3QgKyBtNDEzIDsgLy8gZGlhZ29uYWwgMTYsIG90
aGVycyA2CisKKyAgY29uc3QgdmVjNCB2NDM3ID0gdjQyMCAtIHY0MjA7IC8vIDAsIDAsIDAsIDAK
KyAgY29uc3QgdmVjNCB2NDM4ID0gdjQyMCAtIGZmQ29uc3Q7ICAvLyA1LCA2LCA3LDMKKyAgY29u
c3QgdmVjNCB2NDQwID0gIHY0MjkgLSBzMTEuZjsgIC8vIDEwLCAxMiwgMTQsIDYKKworICBjb25z
dCB2ZWM0IHY0NDEgPSB2ZWM0KHMxMS5mIC0gczExLmYpOyAgLy8gYWxsIDBzCisgIGNvbnN0IHZl
YzQgdjQ0MiA9IHY0MzIgLSB2ZWM0KDMpOyAgLy8gMTUsIDE3LCAxOSwgMTEKKyAgY29uc3QgbWF0
NCBtNDE4ID0gczExLm0gLSBmZkNvbnN0OyAgLy8gZGlhZ29uYWwgM3MgYW5kIG90aGVycyAtMnMK
KyAgY29uc3QgbWF0NCBtNDE5ID0gbWF0NChmZkNvbnN0IC0gczExLmYpOyAgLy8gZGlhZ29uYWwg
LT4gLTJzCisgIGNvbnN0IG1hdDQgbTQyMCA9IG00OCAtIHMxMS5mOyAgLy8gZGlhZ29uYWwgMywg
b3RoZXJzIC0+IC0yCisKKyAgY29uc3QgbWF0NCBtNDIzID0gbTQ4IC0gbTQ4IDsgLy8gQWxsIDBz
CisgIGNvbnN0IG1hdDQgbTQyNCA9IG00MTMgLSBmZkNvbnN0IDsgLy8gZGlhZ29uYWwgMTIsIG90
aGVycyAyCisKKyAgY29uc3QgdmVjNCB2NDQzID0gZmZDb25zdCAtIHY0MjA7ICAvLyAtNSwgLTYs
IC03LC0zCisgIGNvbnN0IHZlYzQgdjQ0NCA9ICBzMTEuZiAtIHY0Mjk7ICAvLyAtMTAsIC0xMiwg
LTE0LCAtNgorICBjb25zdCBtYXQ0IG00MjUgPSBmZkNvbnN0IC0gczExLm07ICAvLyBkaWFnb25h
bCAtM3MgYW5kIG90aGVycyAycworICBjb25zdCBtYXQ0IG00MjYgPSBzMTEuZiAtIG00OCA7ICAv
LyBkaWFnb25hbCAtMywgb3RoZXJzICAycworICBjb25zdCBtYXQ0IG00MjcgPSBmZkNvbnN0IC0g
bTQxMyA7IC8vIGRpYWdvbmFsIC0xMiwgb3RoZXJzIC0yCisKKyAgY29uc3QgdmVjNCB2NDQ1ID0g
djQyMCAqIHY0MjA7IC8vIDQ5LCA2NCwgODEsIDI1CisgIGNvbnN0IHZlYzQgdjQ0NiA9IHY0MjAg
KiBmZkNvbnN0OyAgLy8gMTQsIDE2LCAxOCwxMAorICBjb25zdCB2ZWM0IHY0NDggPSAgdjQyOSAq
IHMxMS5mOyAgLy8gNTYsIDQ2LCA3MiwgNDAKKworICBjb25zdCB2ZWM0IHY0NDkgPSB2ZWM0KHMx
MS5mICogczExLmYpOyAgLy8gYWxsIDE2CisgIGNvbnN0IHZlYzQgdjQ1MCA9IHY0MzIgKiB2ZWM0
KDMpOyAgLy8gNTQsIDYwLCA2NiwgNDIKKyAgY29uc3QgbWF0NCBtNDI4ID0gczExLm0gKiBmZkNv
bnN0OyAgLy8gZGlhZ29uYWwgMTAgYW5kIG90aGVycyAwcworICBjb25zdCBtYXQ0IG00MjkgPSBt
YXQ0KGZmQ29uc3QgKiBzMTEuZik7ICAvLyBkaWFnb25hbCA4CisgIGNvbnN0IG1hdDQgbTQzMCA9
IG00OCAqIHMxMS5mOyAgLy8gZGlhZ29uYWwgMjgsIG90aGVycyA4CisKKyAgY29uc3QgbWF0NCBt
NDMzID0gbTQ4ICogbTQ4IDsgLy8gZGlhZ29uYWwgNjEsIG90aGVycyAzNgorICBjb25zdCBtYXQ0
IG00MzQgPSBtNDEzICogZmZDb25zdCA7IC8vIGRpYWdvbmFsIDI4LCBvdGhlcnMgOAorCisgIGNv
bnN0IHZlYzQgdjQ1MSA9IGZmQ29uc3QgKiB2NDIwOyAgLy8gMTQsIDE2LCAxOCwxMAorICBjb25z
dCB2ZWM0IHY0NTIgPSAgczExLmYgKiB2NDI5OyAgLy8gNTYsIDY0LCA3MiwgNDAKKyAgY29uc3Qg
bWF0NCBtNDM1ID0gZmZDb25zdCAqIHMxMS5tOyAgLy8gIGRpYWdvbmFsIDEwIGFuZCBvdGhlcnMg
MHMKKyAgY29uc3QgbWF0NCBtNDM2ID0gczExLmYgKiBtNDggOyAgLy8gZGlhZ29uYWwgMjgsIG90
aGVycyAtIDhzCisgIGNvbnN0IG1hdDQgbTQzNyA9IGZmQ29uc3QgKiBtNDEzIDsgLy8gZGlhZ29u
YWwgMjgsIG90aGVycyA4CisKKyAgY29uc3QgdmVjNCB2NDUzID0gdjQyMCAvIHY0MjA7IC8vIDEs
IDEsIDEsIDEKKyAgY29uc3QgdmVjNCB2NDU0ID0gdjQyMCAvIGZmQ29uc3Q7ICAvLyAzLjUsIDQs
IDQuNSwyLjUKKworICBjb25zdCB2ZWM0IHY0NTcgPSB2ZWM0KHMxMS5mIC8gczExLmYpOyAgLy8g
YWxsIDFzCisgIGNvbnN0IHZlYzQgdjQ1OCA9IHY0MzIgLyB2ZWM0KDMpOyAgLy8gNiwgNi42NjY2
LCA3LjMzMywgNC42NjY2CisgIGNvbnN0IG1hdDQgbTQzOCA9IHMxMS5tIC8gZmZDb25zdDsgIC8v
IGRpYWdvbmFsIDIuNSBhbmQgb3RoZXJzIDBzCisgIGNvbnN0IG1hdDQgbTQzOSA9IG1hdDQoZmZD
b25zdCAvIHMxMS5mKTsgIC8vIGRpYWdvbmFsIDAuNXMKKyAgY29uc3QgbWF0NCBtNDQwID0gbTQ4
IC8gczExLmY7ICAvLyBkaWFnb25hbCAxLjc1LCBvdGhlcnMgMC41cworCisgIGNvbnN0IG1hdDQg
bTQ0MyA9IG00OCAvIG00OCA7IC8vIEFsbCAxcworICBjb25zdCBtYXQ0IG00NDQgPSBtNDEzIC8g
ZmZDb25zdCA7IC8vIGRpYWdvbmFsIDcsIG90aGVycyAyCisKKyAgY29uc3QgdmVjNCB2NDU5ID0g
ZmZDb25zdCAvIHY0MjA7ICAvLyAuMjg1NyAsIC4yNSwgLjIyLCAuNAorICBjb25zdCB2ZWM0IHY0
NjAgPSAgczExLmYgLyB2NDI5OyAgLy8gLjI4NTcsIC4yNSwgLjIyLCAuNAorICAvL2NvbnN0IG1h
dDQgbTQ0NSA9IGZmQ29uc3QgLyBzMTEubTsgIC8vIGRpdmlkZSBieSB6ZXJvIGVycm9yCisgIGNv
bnN0IG1hdDQgbTQ0NiA9IHMxMS5mIC8gbTQ4IDsgIC8vIGRpYWdvbmFsIC41NzEsICBvdGhlcnMg
MgorICBjb25zdCBtYXQ0IG00NDcgPSBmZkNvbnN0IC8gbTQxMyA7IC8vIGRpYWdvbmFsIC4xNDI4
LCBvdGhlcnMgMC41CisKKyAgY29uc3QgdmVjNCB2NDYxID0gdjQ1MyAqIG00Mjg7IC8vIDEwLCAx
MCwgMTAsIDEwCisgIGNvbnN0IHZlYzQgdjQ2MiA9IHY0NTMgKiBtNDM3OyAvLyA1MiwgNTIsIDUy
LCA1MgorICBjb25zdCB2ZWM0IHY0NjMgPSBtNDI4ICogdjQ1MTsgLy8gMTQwLCAxNjAsIDE4MCwg
MTAwCisgIGNvbnN0IHZlYzQgdjQ2NCA9IG00MzcgKiB2NDUxOyAvLyA3NDQsIDc4NCwgODI0LCA2
NjQKKworICBpbnQgaWkgPSAyOworICBjb25zdCBpbnQgaWlDb25zdCA9IDI7CisKKyAgY29uc3Qg
aXZlYzQgaTQyMCA9IGl2ZWM0KCA3LDgsOSw1KTsgIC8vIDcsIDgsIDksIDUKKworICBjb25zdCBp
dmVjNCBpNDI5ID0gaTQyMCArIGk0MjA7IC8vIDE0LCAxNiwgMTgsIDEwCisgIGNvbnN0IGl2ZWM0
IGk0MzAgPSBpNDIwICsgaWlDb25zdDsgIC8vIDksIDEwLCAxMSw3CisgIGNvbnN0IGl2ZWM0IGk0
MzIgPSAgaTQyOSArIHNzLmk7ICAvLyAxOCwgMjAsIDIyLCAxNAorCisgIGNvbnN0IGl2ZWM0IGk0
MzMgPSBpdmVjNChzcy5pICsgc3MuaSk7ICAvLyBhbGwgOHMKKworICBjb25zdCBpdmVjNCBpNDM1
ID0gaWlDb25zdCArIGk0MjA7ICAvLyA5LCAxMCwgMTEsNworICBjb25zdCBpdmVjNCBpNDM2ID0g
IHNzLmkgKyBpNDI5OyAgLy8gMTgsIDIwLCAyMiwgMTQKKworICBjb25zdCBpdmVjNCBpNDM3ID0g
aTQyMCAtIGk0MjA7IC8vIDAsIDAsIDAsIDAKKyAgY29uc3QgaXZlYzQgaTQzOCA9IGk0MjAgLSBp
aUNvbnN0OyAgLy8gNSwgNiwgNywzCisgIGNvbnN0IGl2ZWM0IGk0NDAgPSAgaTQyOSAtIHNzLmk7
ICAvLyAxMCwgMTIsIDE0LCA2CisKKyAgY29uc3QgaXZlYzQgaTQ0MSA9IGl2ZWM0KHNzLmkgLSBz
cy5pKTsgIC8vIGFsbCAwcworCisgIGNvbnN0IGl2ZWM0IGk0NDMgPSBpaUNvbnN0IC0gaTQyMDsg
IC8vIC01LCAtNiwgLTcsLTMKKyAgY29uc3QgaXZlYzQgaTQ0NCA9ICBzcy5pIC0gaTQyOTsgIC8v
IC0xMCwgLTEyLCAtMTQsIC02CisKKyAgY29uc3QgaXZlYzQgaTQ0NSA9IGk0MjAgKiBpNDIwOyAv
LyA0OSwgNjQsIDgxLCAyNQorICBjb25zdCBpdmVjNCBpNDQ2ID0gaTQyMCAqIGlpQ29uc3Q7ICAv
LyAxNCwgMTYsIDE4LDEwCisgIGNvbnN0IGl2ZWM0IGk0NDggPSAgaTQyOSAqIHNzLmk7ICAvLyA1
NiwgNjQsIDcyLCA0MAorCisgIGNvbnN0IGl2ZWM0IGk0NDkgPSBpdmVjNChzcy5pICogc3MuaSk7
ICAvLyBhbGwgMTYKKworICBjb25zdCBpdmVjNCBpNDUxID0gaWlDb25zdCAqIGk0MjA7ICAvLyAx
NCwgMTYsIDE4LDEwCisgIGNvbnN0IGl2ZWM0IGk0NTIgPSAgc3MuaSAqIGk0Mjk7ICAvLyA1Niwg
NjQsIDcyLCA0MAorCisgIGNvbnN0IGl2ZWM0IGk0NTMgPSBpNDIwIC8gaTQyMDsgLy8gMSwgMSwg
MSwgMQorICBjb25zdCBpdmVjNCBpNDU0ID0gaTQyMCAvIGlpQ29uc3Q7ICAvLyAzLCA0LCA0LDIK
KyAgY29uc3QgaXZlYzQgaTQ1NiA9ICBpNDI5IC8gc3MuaTsgIC8vIDMsIDQsIDQsIDIKKworICBj
b25zdCBpdmVjNCBpNDU3ID0gaXZlYzQoc3MuaSAvIHNzLmkpOyAgLy8gYWxsIDFzCisKKyAgY29u
c3QgaXZlYzQgaTQ1OSA9IGlpQ29uc3QgLyBpNDIwOyAgLy8gMCAsIDAsIDAsMAorICBjb25zdCBp
dmVjNCBpNDYwID0gIHNzLmkgLyBpNDI5OyAgLy8gMCwgMCwgMCwwCisKKyAgY29uc3QgYnZlYzQg
YjQyNCA9IGJ2ZWM0KHMyMi5idjQpOworCisgIGNvbnN0IGJvb2wgYjEgPSBzMjIuYnY0ID09IGI0
MjQ7ICAvLyB0cnVlCisgIGNvbnN0IGJvb2wgYjIgPSBpNDIwID09IGk0MjA7ICAvLyB0cnVlCisg
IGNvbnN0IGJvb2wgYjMgPSBpNDIwID09IGk0NDU7ICAvLyBmYWxzZQorICBjb25zdCBib29sIGI0
ID0gdjQyMCA9PSB2NDIwOyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGI1ID0gbTQzMCA9PSBtNDM0
OyAvLyB0cnVlCisKKyAgY29uc3QgdmVjNCB2NDY1ID0gLXY0MjA7IC8vIC03LCAtOCwgLTksIC01
CisgIGNvbnN0IG1hdDQgbTQ0OCA9IC1tNDQ3IDsgLy8gZGlhZ29uYWwgLS4xNDI4LCBvdGhlcnMg
LTAuNQorICBjb25zdCBpdmVjNCBpNDY1ID0gLWk0NTYgOyAgLy8gLTMsIC00LCAtNCwtMgorCisg
IGNvbnN0IGJvb2wgYjcgPSBzMjIgPT0gczIyOworCisgIGNvbnN0IHZlYzQgdjQ2NiA9IHY0MzIg
KyB2ZWM0KDMsNCw1LDYpOyAgLy8gMjEsIDI0LCAyNywgMjAKKyAgY29uc3QgdmVjNCB2NDY3ID0g
djQzMiArIHZlYzQodmVjMigzLDQpLDUsNik7ICAvLyAyMSwgMjQsIDI3LCAyMAorICBjb25zdCB2
ZWM0IHY0NjggPSB2NDMyICsgdmVjNCgzLCB2ZWMyKDQsIDUpLHZlYzIoNiw3KSk7ICAvLyAyMSwg
MjQsIDI3LCAyMAorICBjb25zdCB2ZWM0IHY0NjkgPSB2ZWM0KHY0NjgpICsgdmVjNCgzKSArIHY0
NjggKyB2ZWM0KHM3Ny5tM1syXVswXSk7IC8vIDQ1LCA1MSwgNTcsIDQzCisKKyAgY29uc3QgYm9v
bCBiOCA9IHNzID09IHNzOyAgLy8gdHJ1ZQorCisgIHN0cnVjdCBzdDYgeworICAgICAgIHZlYzMg
djsKKyAgfTsKKworICBzdHJ1Y3Qgc3Q1IHsKKyAgICAgIGludCBpOworICAgICAgZmxvYXQgZjsK
KyAgICAgIHN0NiAgc3Q2NjsKKyAgfSBzdDU1OworCisgIGNvbnN0IHN0NSBzdDU1MSA9IHN0NSgy
LCA0LjAsIHN0Nih2ZWMzKDcpKSk7CisgIGNvbnN0IHN0NSBzdDU1MiA9IHN0NSgyLCA0LjAsIHN0
Nih2ZWMzKDcpKSk7CisKKyAgY29uc3QgYm9vbCBiMTAgPSBzdDU1MSA9PSBzdDU1MjsgIC8vIHRy
dWUKKworICBjb25zdCBib29sIGIxMSA9IHN0NTUxLnN0NjYgPT0gc3Q1NTIuc3Q2NjsgIC8vIHRy
dWUKKworICBjb25zdCBzdDUgc3Q1NTMgPSBzdDUoMiwgNC4wLCBzdDYodmVjMyg4KSkpOworCisg
IGNvbnN0IGJvb2wgYjEyID0gc3Q1NTEuc3Q2NiA9PSBzdDU1My5zdDY2OyAgLy8gZmFsc2UKKyAg
Y29uc3QgYm9vbCBiMTMgPSBzdDU1MSA9PSBzdDU1MzsgIC8vIGZhbHNlCisKKyAgY29uc3QgYm9v
bCBiMTQgPSBzdDU1MSAhPSBzdDU1MjsgIC8vIGZhbHNlCisgIGNvbnN0IGJvb2wgYjE1ID0gc3Q1
NTEuc3Q2NiAhPSBzdDU1Mi5zdDY2OyAgLy8gZmFsc2UKKyAgY29uc3QgYm9vbCBiMTYgPSBzdDU1
MS5zdDY2ICE9IHN0NTUzLnN0NjY7ICAvLyB0cnVlCisgIGNvbnN0IGJvb2wgYjE3ID0gc3Q1NTEg
IT0gc3Q1NTM7ICAvLyB0cnVlCisKKyAgY29uc3QgYm9vbCBiMTggPSBzMjIuYnY0ICE9IGI0MjQ7
ICAvLyBmYWxzZQorICBjb25zdCBib29sIGIxOSA9IGk0MjAgIT0gaTQyMDsgIC8vIGZhbHNlCisg
IGNvbnN0IGJvb2wgYjIwID0gaTQyMCAhPSBpNDQ1OyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGIy
MSA9IHY0MjAgIT0gdjQyMDsgIC8vIGZhbHNlCisgIGNvbnN0IGJvb2wgYjIyID0gbTQzMCAhPSBt
NDM0OyAvLyBmYWxzZQorCisgIGNvbnN0IGludCBpbnQxMCA9IGk0MjAueHkueTsgIC8vIDgKKwor
ICAvL2Zsb2F0IGYgPSB2NDcwLng7CisKKworCisgIGNvbnN0IGludCBpbnQxMyA9IC1zcy5pOwor
CisgIGNvbnN0IHZlYzQgdjQ3NCA9IC12ZWM0KDAuNSk7CisKKyAgaW50IGludDE0ID0gaWkrKzsK
KyAgaW50IGFycmF5WzNdOworICBhcnJheVsyXTsKKworICBjb25zdCB2ZWM0IHY0NzggPSB2NDY2
ICogMi4wOyAvLyA0MiwgNDgsIDU0LCA0MAorCisgIGNvbnN0IHZlYzQgdjQ3OSA9IGlpQ29uc3Qg
PiAxID8gdjQ2NiA6IHY0Nzg7IC8vIDIxLCAyNCwgMjcsIDIwCisKKyAgY29uc3Qgc3RydWN0IHN0
NyB7CisgICAgICAgaW50IGk7CisgICAgICAgYm9vbCBiOworICB9IHN0NzcgPSBzdDcoc3MuaSwg
dHJ1ZSk7CisKKyAgY29uc3QgdmVjNCB2NDgxID0gdmVjNChzdDc3LmkpOworCisgIGNvbnN0IHN0
cnVjdCBzdDggeworICAgICAgaW50IGk7CisgIH0gOworCisKKyAgY29uc3Qgc3RydWN0IHN0OSB7
CisgICAgICBzMiBzczsKKyAgfSBzdDk5ID0gc3Q5KHMyMik7CisKKyAgY29uc3QgdmVjMyB2MzEy
ID0gc3Q5OS5zcy52MzsgICAvLyA5LCAxMCwgMTEKKyAgY29uc3QgdmVjNCB2NDgyID0gbWF0NCgx
KVswXTsgIC8vIDEsIDAsIDAgLCAwCisKKyAgY29uc3QgbWF0NCBtNDUwID0gbWF0NChzcy5pKTsg
IC8vIG1hdDQoNCkKKyAgY29uc3QgbWF0NCBtNDUxID0gbWF0NChiMjApOyAgIC8vIG1hdDQoMSkK
KyAgY29uc3QgbWF0NCBtNDUyID0gbWF0NChzdDc3LmIpOyAvLyBtYXQ0KDEpCisKKyAgY29uc3Qg
dmVjNCB2NDgzID0gdmVjNCh2ZWM0KDMpLngpOyAgLy8gMywzLDMsMworICBjb25zdCBtYXQ0IG00
NTMgPSBtYXQ0KHZlYzQoNSkueCk7ICAvLyBtYXQ1KDUpCisKKyAgY29uc3QgdmVjNCB2NDg0ID0g
dmVjNChtYXQ0KDYpWzFdKTsgIC8vIDAsNiwwLDAKKyAgY29uc3QgbWF0NCBtNDU0ID0gbWF0NCht
YXQ0KDYpWzFdWzFdKTsgIC8vIG1hdDQoNikKKworICBjb25zdCB2ZWM0IHY0ODUgPSB2ZWM0KHN0
Nyg4LCB0cnVlKS5iKTsgIC8vIDEsMSwxLDEKKworICBjb25zdCB2ZWM0IHY0ODcgPSB2ZWM0KHZl
YzQoMTIsIDEzLCAxNCwgMTUpLmFiLCAxMiwgMTQpOworCisgIGludCBpMjAgPSBzcy5pOworICBj
b25zdCB2ZWM0IHY0ODkgPSAtdmVjNCg3LDgsOSw1KTsgLy8gLTcsIC04LCAtOSwgLTUKKworICBn
bF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3Jy
ZWN0Q29uc3RydWN0X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdHJ1Y3Rf
dmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZDliMzc4ZTU1ZGY5MmFlNDljODBiOWU4MTY5NTE5NTJh
YWVhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RydWN0
X3ZlcnQudmVydApAQCAtMCwwICsxLDM3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCitzdHJ1Y3QgcyB7CisgICAgZmxvYXQgZjsKK30gczEgPSBzKDEu
MCk7CisKK3N0cnVjdCBzMyB7CisgICBpbnQgaTsKK30gczNJbnN0OworCitzdHJ1Y3QgczIgewor
ICAgIGZsb2F0IGY7CisgICAgczMgczNJbnN0OworfSBzMkluc3QgPSBzMigxLjAsIHMzKDEpKTsK
Kwordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMzIGkgPSB2ZWMzKDUuMCwgNC4wLCBpdmVjMigyLjAs
IDEuMCkpOworICAgIGl2ZWM0IHYyID0gaXZlYzQoMS4wKTsKKyAgICB2ZWM0IHY0ID0gdmVjNCh2
Mik7CisgICAgYnZlYzQgdjUgPSBidmVjNCh2Mik7CisgICAgdmVjMyB2NiA9IHZlYzModjUpOwor
ICAgIHZlYzMgdiA9IHZlYzMoMiwgMi4wLCAxKTsKKyAgICB2ZWMzIHYxID0gdmVjMygxLjIsIHYp
OworCisgICAgbWF0MyBtMSA9IG1hdDModix2LHYpOworICAgIG1hdDIgbTIgPSBtYXQyKHYsIHY2
LngpOworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEuMCk7Cit9CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Zjdl
YjZhMDIyZWRjMTExODJmNTU1MDJjMWVjZWVlYTdkOGYzMzVhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjEwX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMjYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyN2ZXJzaW9uIDEwMAorI2V4dGVuc2lvbiBleHRlbnNpb25mb28gOiBlbmFibGUgIC8vIHdhcm5p
bmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogZGlz
YWJsZSAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorI2V4dGVuc2lvbiBleHRl
bnNpb25mb28gOiB3YXJuICAvLyB3YXJuaW5nIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkCisKKyNl
eHRlbnNpb24gYWxsIDogZGlzYWJsZSAvLyBubyBlcnJvciBpbiB0aGUgcHJvZ3JhbQorI2V4dGVu
c2lvbiBhbGwgOiB3YXJuIC8vIG5vIGVycm9yIGluIHRoZSBwcm9ncmFtCisKKyNleHRlbnNpb24g
ZXh0ZW5zaW9uZm9vIDogZW5hYmxlICAvLyB3YXJuaW5nIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVk
CisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGRpc2FibGUgIC8vIHdhcm5pbmcgZXh0ZW5zaW9u
IG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogd2FybiAgLy8gd2Fybmlu
ZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9Db3JyZWN0RXh0ZW5zaW9uMV9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGQ0OTdkNDMz
MjE4NjAxY2YyNDY0Nzg3ZGZhNjk4MDdkNzNmMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2V4dGVu
c2lvbiBhbGwgOiBkaXNhYmxlIC8vIG5vIGVycm9yIGluIHRoZSBwcm9ncmFtCisjZXh0ZW5zaW9u
IGFsbCA6IHdhcm4gLy8gbm8gZXJyb3IgaW4gdGhlIHByb2dyYW0KKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjRfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTAxM2U4NWY4OTE0OWQ1YmJiYzE3OTkyOGJjNGNmNmFiYmQ3NThjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogZW5hYmxlICAvLyB3YXJuaW5nIGV4dGVu
c2lvbiBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGRpc2FibGUgIC8v
IHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9v
IDogd2FybiAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorCit2b2lkIG1haW4oKQoreworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bGxfdmVydC52ZXJ0IGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEZ1bGxfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwZjE0YWQyN2JkMWJi
ZDQ3MDg2MTZlMmEzNDc3ZmJjYjdlNTEzNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9Db3JyZWN0RnVsbF92ZXJ0LnZlcnQKQEAgLTAsMCArMSw2NTQgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3N0cnVjdCBndGZfTWF0ZXJpYWxQ
YXJhbWV0ZXJzCit7Cit2ZWM0IGVtaXNzaW9uOwordmVjNCBhbWJpZW50OwordmVjNCBkaWZmdXNl
OwordmVjNCBzcGVjdWxhcjsKK2Zsb2F0IHNoaW5pbmVzczsKK307CitzdHJ1Y3QgZ3RmX0xpZ2h0
U291cmNlUGFyYW1ldGVycworewordmVjNCBhbWJpZW50OwordmVjNCBkaWZmdXNlOwordmVjNCBz
cGVjdWxhcjsKK3ZlYzQgcG9zaXRpb247Cit2ZWM0IGhhbGZWZWN0b3I7Cit2ZWMzIHNwb3REaXJl
Y3Rpb247CitmbG9hdCBzcG90RXhwb25lbnQ7CitmbG9hdCBzcG90Q3V0b2ZmOworZmxvYXQgc3Bv
dENvc0N1dG9mZjsKK2Zsb2F0IGNvbnN0YW50QXR0ZW51YXRpb247CitmbG9hdCBsaW5lYXJBdHRl
bnVhdGlvbjsKK2Zsb2F0IHF1YWRyYXRpY0F0dGVudWF0aW9uOworfTsKK3N0cnVjdCBndGZfUG9p
bnRQYXJhbWV0ZXJzIHsKK2Zsb2F0IHNpemU7CitmbG9hdCBzaXplTWluOworZmxvYXQgc2l6ZU1h
eDsKK2Zsb2F0IGZhZGVUaHJlc2hvbGRTaXplOworZmxvYXQgZGlzdGFuY2VDb25zdGFudEF0dGVu
dWF0aW9uOworZmxvYXQgZGlzdGFuY2VMaW5lYXJBdHRlbnVhdGlvbjsKK2Zsb2F0IGRpc3RhbmNl
UXVhZHJhdGljQXR0ZW51YXRpb247Cit9Oworc3RydWN0IGd0Zl9EZXB0aFJhbmdlUGFyYW1ldGVy
cyB7CitmbG9hdCBuZWFyOworZmxvYXQgZmFyOworZmxvYXQgZGlmZjsKK307CitzdHJ1Y3QgZ3Rm
X0xpZ2h0TW9kZWxQYXJhbWV0ZXJzIHsKK3ZlYzQgYW1iaWVudDsKK307CitzdHJ1Y3QgZ3RmX0xp
Z2h0TW9kZWxQcm9kdWN0cyB7Cit2ZWM0IHNjZW5lQ29sb3I7Cit9Oworc3RydWN0IGd0Zl9MaWdo
dFByb2R1Y3RzIHsKK3ZlYzQgYW1iaWVudDsKK3ZlYzQgZGlmZnVzZTsKK3ZlYzQgc3BlY3VsYXI7
Cit9Oworc3RydWN0IGd0Zl9Gb2dQYXJhbWV0ZXJzIHsKK3ZlYzQgY29sb3I7CitmbG9hdCBkZW5z
aXR5OworZmxvYXQgc3RhcnQ7CitmbG9hdCBlbmQ7CitmbG9hdCBzY2FsZTsKK307Cit1bmlmb3Jt
IGludCBndGZfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50czsKK3VuaWZvcm0gaW50IGd0Zl9N
YXhWZXJ0ZXhVbmlmb3JtQ29tcG9uZW50czsKK3VuaWZvcm0gaW50IGd0Zl9NYXhWZXJ0ZXhUZXh0
dXJlSW1hZ2VVbml0czsKK3VuaWZvcm0gaW50IGd0Zl9NYXhMaWdodHM7Cit1bmlmb3JtIGludCBn
dGZfTWF4Q2xpcFBsYW5lczsKK3VuaWZvcm0gaW50IGd0Zl9NYXhDb21iaW5lZFRleHR1cmVJbWFn
ZVVuaXRzOwordW5pZm9ybSBpbnQgZ3RmX01heFRleHR1cmVDb29yZHM7Cit1bmlmb3JtIGludCBn
dGZfTWF4VmVydGV4QXR0cmliczsKK3VuaWZvcm0gaW50IGd0Zl9NYXhWYXJ5aW5nRmxvYXRzOwor
dW5pZm9ybSBpbnQgZ3RmX01heFRleHR1cmVVbml0czsKK3VuaWZvcm0gaW50IGd0Zl9NYXhEcmF3
QnVmZmVyczsKK3VuaWZvcm0gaW50IGd0Zl9NYXhUZXh0dXJlSW1hZ2VVbml0czsKK3VuaWZvcm0g
Z3RmX0xpZ2h0UHJvZHVjdHMgZ3RmX0Zyb250TGlnaHRQcm9kdWN0WzhdOwordW5pZm9ybSBndGZf
TGlnaHRNb2RlbFByb2R1Y3RzIGd0Zl9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0OwordW5pZm9ybSBn
dGZfRGVwdGhSYW5nZVBhcmFtZXRlcnMgZ3RmX0RlcHRoUmFuZ2U7Cit1bmlmb3JtIGd0Zl9Gb2dQ
YXJhbWV0ZXJzIGd0Zl9Gb2c7Cit1bmlmb3JtIGd0Zl9Qb2ludFBhcmFtZXRlcnMgZ3RmX1BvaW50
OwordW5pZm9ybSBndGZfTGlnaHRNb2RlbFBhcmFtZXRlcnMgZ3RmX0xpZ2h0TW9kZWw7Cit2YXJ5
aW5nIHZlYzQgZ3RmX0ZvZ0ZyYWdDb29yZDsKK3ZhcnlpbmcgdmVjNCBndGZfQmFja0NvbG9yOwor
dmFyeWluZyB2ZWM0IGd0Zl9CYWNrU2Vjb25kYXJ5Q29sb3I7Cit2YXJ5aW5nIHZlYzQgZ3RmX0Zy
b250U2Vjb25kYXJ5Q29sb3I7Cit2YXJ5aW5nIHZlYzQgZ3RmX1RleENvb3JkWzJdOwordmFyeWlu
ZyB2ZWM0IGd0Zl9Gcm9udENvbG9yOwordW5pZm9ybSBndGZfTWF0ZXJpYWxQYXJhbWV0ZXJzIGd0
Zl9Gcm9udE1hdGVyaWFsOwordW5pZm9ybSBndGZfTGlnaHRTb3VyY2VQYXJhbWV0ZXJzIGd0Zl9M
aWdodFNvdXJjZVs4XTsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9NdWx0aVRleENvb3JkMTsKK2F0dHJp
YnV0ZSB2ZWM0IGd0Zl9NdWx0aVRleENvb3JkMjsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9TZWNvbmRh
cnlDb2xvcjsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9Db2xvcjsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9N
dWx0aVRleENvb3JkMzsKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9NdWx0aVRleENvb3JkMDsKK2F0dHJp
YnV0ZSB2ZWM0IGd0Zl9Ob3JtYWw7CithdHRyaWJ1dGUgdmVjNCBndGZfVmVydGV4OwordW5pZm9y
bSBtYXQ0IGd0Zl9Ob3JtYWxNYXRyaXg7Cit1bmlmb3JtIG1hdDQgZ3RmX1Byb2plY3Rpb25NYXRy
aXg7Cit1bmlmb3JtIG1hdDQgZ3RmX1RleHR1cmVNYXRyaXhbOF07Cit1bmlmb3JtIG1hdDQgZ3Rm
X01vZGVsVmlld01hdHJpeDsKK3VuaWZvcm0gbWF0NCBndGZfTW9kZWxWaWV3UHJvamVjdGlvbk1h
dHJpeDsKK3ZvaWQgdGVzdF9mdW5jdGlvbihjb25zdCBpbiBpbnQgaW5faW50LCBpbm91dCBpbnQg
b3V0X2ludCk7CitpbnQgdGVzdF9mdW5jdGlvbjEoaW4gaW50IGluX2ludDEsIGlub3V0IGludCBp
bl9vdXRfaW50KTsKKwordW5pZm9ybSBmbG9hdCBhcnJheV9mbG9hdFsyXTsKKworc3RydWN0IG5l
c3RlZAoreworICAgaW50IGE7CisgICBmbG9hdCBmOworfTsKKworc3RydWN0IGxpZ2h0MQorewor
ICAgZmxvYXQgaW50ZW5zaXR5OworICAgdmVjMyBwb3NpdGlvbjsKKyAgIGludCB0ZXN0X2ludFsy
XTsKKyAgIG5lc3RlZCBsaWdodDI7Cit9IGxpZ2h0VmFyOworbGlnaHQxIGxsMjsKKwordm9pZCBB
c3NpZ24gKG91dCBsaWdodDEgb3V0MSwgaW4gbGlnaHQxIGluMSkKK3sKKyAgICBvdXQxLmludGVu
c2l0eSA9IGluMS5pbnRlbnNpdHk7CisgICAgIG91dDEucG9zaXRpb24gPSBpbjEucG9zaXRpb247
CisgIG91dDEudGVzdF9pbnRbMF0gPSBpbjEudGVzdF9pbnRbMF07CisgIG91dDEudGVzdF9pbnRb
MV0gPSBpbjEudGVzdF9pbnRbMV07CisgICAgICAgb3V0MS5saWdodDIgPSBpbjEubGlnaHQyOwor
fQorCitzdHJ1Y3QgbGlnaHQzIHsKKyAgICBmbG9hdCBpOworfTsKKworc3RydWN0IGxpZ2h0NCB7
CisgICAgZmxvYXQgaTsKK307CisKK3N0cnVjdCBsaWdodDUgeworICAgIGZsb2F0IGkgOworICAg
IGZsb2F0IGFbMl07Cit9IGxpZ2h0NV9pbnN0OworCit1bmlmb3JtIGxpZ2h0MyB1bmlmb3JtTGln
aHQzOworCitzdHJ1Y3QgbGlnaHQ2IHsKKyAgICBmbG9hdCBpOworfTsKK3VuaWZvcm0gbGlnaHQ2
IHVuaWZvcm1MaWdodDY7CisKK3N0cnVjdCBzbGlnaHQxMHsKKyAgICAgZmxvYXQgZjsKKyAgICAg
fTsKK3N0cnVjdCBzbGlnaHQ5eworICAgICBzbGlnaHQxMCBsaWdodDEwOworICAgICB9Oworc3Ry
dWN0IHNsaWdodDh7CisgICAgIHNsaWdodDkgbGlnaHQ5OworICAgICB9Oworc3RydWN0IGxpZ2h0
NyB7CisgIHNsaWdodDggbGlnaHQ4OworfSA7CisKKworbGlnaHQzIHN0cnVjdF92YXIgPSBsaWdo
dDMoNS4wKTsKKworLy8gQXR0cmlidHVlIHZhcmlhYmxlcyBjYW4gb25seSBiZSBHbG9iYWwKK2F0
dHJpYnV0ZSBmbG9hdCBmbHRfYXR0cmliOworYXR0cmlidXRlIHZlYzIgdmVjMl9hdHRyaWI7Cith
dHRyaWJ1dGUgdmVjMyB2ZWMzX2F0dHJpYjsKK2F0dHJpYnV0ZSB2ZWM0IHZlYzRfYXR0cmliOwor
YXR0cmlidXRlIG1hdDIgbWF0Ml9hdHRyaWI7CithdHRyaWJ1dGUgbWF0MyBtYXQzX2F0dHJpYjsK
K2F0dHJpYnV0ZSBtYXQ0IG1hdDRfYXR0cmliOworCit1bmlmb3JtIGZsb2F0IGZsdF91bmlmb3Jt
OwordW5pZm9ybSB2ZWMzIHVuaWZvcm1fdmVjMzsKK3VuaWZvcm0gbWF0MyB1bmlmb3JtX21hdDM7
CisKK3VuaWZvcm0gc2FtcGxlcjJEIHNhbXBbM107Cit1bmlmb3JtIHNhbXBsZXIyRCBzYW1wMTsK
KworY29uc3Qgc3RydWN0IGxpZ2h0MTIgeworICAgIGludCBhOworfSB1bmlmb3JtX3N0cnVjdCA9
IGxpZ2h0MTIoMik7CisKK3ZhcnlpbmcgdmVjMyB2YXJ5aW5nX3ZlYzM7Cit2YXJ5aW5nIHZlYzIg
dmFyeWluZ192ZWMyOwordmFyeWluZyB2ZWM0IHZhcnlpbmdfdmVjNDsKK3ZhcnlpbmcgbWF0NCB2
YXJ5aW5nX21hdDQ7Cit2YXJ5aW5nIG1hdDIgdmFyeWluZ19tYXQyOwordmFyeWluZyBtYXQzIHZh
cnlpbmdfbWF0MzsKK3ZhcnlpbmcgZmxvYXQgdmFyeWluZ19mbHQ7CisKK2Zsb2F0IGZyZXF1ZW5j
aWVzWzJdOworCit2b2lkIHRlc3RfZnVuY3Rpb24yKGludCBmdW5jX2ludCkKK3sKK30KKwordm9p
ZCB0ZXN0X2Z1bmN0aW9uMyhsaWdodDMpOwordm9pZCB0ZXN0X2Z1bmN0aW9uNChsaWdodDUgbGwy
MCk7Cit2b2lkIHRlc3RfZnVuY3Rpb241KGxpZ2h0MSk7CitsaWdodDYgdGVzdF9mdW5jdGlvbjYo
aW50IGEpOworCitjb25zdCBmbG9hdCBGbG9hdENvbnN0MSA9IDMuMCAqIDguMCwgZmxvYXRDb25z
dDIgPSA0LjA7Citjb25zdCBib29sIEJvb2xDb25zdDEgPSB0cnVlICYmIHRydWUgfHwgZmFsc2U7
Citjb25zdCBib29sIEJvb2xDb25zdDIgPSBmYWxzZSB8fCAhZmFsc2UgJiYgZmFsc2U7CisKK3Zv
aWQgbWFpbih2b2lkKQoreworCisgICAgaW50IHRlc3RfaW50MSA9IDI7CisgICAgY29uc3QgaW50
IGNvbnN0X3Rlc3RfaW50MSA9IDI7CisKKyAgICBzdHJ1Y3Qgc3RydWN0TWFpbiB7CisgICAgICAg
IGZsb2F0IGk7CisgICAgfSB0ZXN0U3RydWN0OworCisgICAgc3RydWN0IHsKKyAgICAgICAgc3Ry
dWN0TWFpbiBhOworICAgIH0gYVN0cnVjdDsKKworICAgIHRlc3RTdHJ1Y3QuaSA9IDUuMCA7Cisg
ICAgc3RydWN0X3Zhci5pID0gNS4wOworCisgICAgc3RydWN0TWFpbiBuZXdTdHJ1Y3QsIG5ld1N0
cnVjdDE7CisgICAgdGVzdFN0cnVjdCA9IG5ld1N0cnVjdDsKKyAgICBuZXdTdHJ1Y3QgPSBuZXdT
dHJ1Y3QxOworCisgICAgbGlnaHRWYXIubGlnaHQyLmYgPSAxLjE7CisKKyAgICBsaWdodDEgbGwx
OworICAgIGxsMS5saWdodDIuYSA9IDE7CisKKyAgICAgY29uc3Qgc3RydWN0IGNvbnN0X3N0cnVj
dCB7CisgICAgICAgIGZsb2F0IGk7CisgICAgfSBjb25zdF9zdHJ1Y3RfaW5zdCA9IGNvbnN0X3N0
cnVjdCgxLjApOworCisgICAgLy9sbDEgPSBsbDI7CisgICAgQXNzaWduIChsbDEsIGxsMik7Cisg
ICAgbGwxLmxpZ2h0MiA9IGxsMi5saWdodDI7CisgICAgbGwxLmxpZ2h0MiA9IGxsMS5saWdodDI7
CisgICAgbGwxLmxpZ2h0Mi5mID0gbGwyLmxpZ2h0Mi5mOworICAgIGxsMS5saWdodDIuZiA9IGxs
MS5saWdodDIuZjsKKworICAgIC8vICAgIGxpZ2h0VmFyID0gbGwyOworICAgIC8vICAgIGxsMiA9
IGxpZ2h0VmFyOworICAgIEFzc2lnbiAobGlnaHRWYXIsIGxsMik7CisgICAgQXNzaWduIChsbDIs
IGxpZ2h0VmFyKTsKKworICAgIGxpZ2h0NSBsbDEwOworCisgICAgbGlnaHQ3IGxsN1s0XTsKKyAg
ICBzdHJ1Y3RNYWluIG5ld1N0cnVjdDJbMl07CisgICAgbmV3U3RydWN0MlswXS5pID0gMS4xOwor
CisgICAgbGw3WzBdLmxpZ2h0OC5saWdodDkubGlnaHQxMC5mID0gMS4xOworCisKKyAgICBib29s
IHRlc3RfYm9vbDQgPSBmYWxzZSA7CisKKyAgICBib29sIHRlc3RfYm9vbDUgPSAxLjIgPiAzLjAg
OworCisgICAgaW50IHRlc3RfaW50MiA9ICAwNDc7CisgICAgaW50IHRlc3RfaW50NCA9ICAweGE4
OyAgLy8gdGVzdGluZyBmb3IgaGV4YWRlY2ltYWwgbnVtYmVycworCisgICAgZmxvYXQgdGVzdF9m
bG9hdDEgPSAxLjU7CisgICAgZmxvYXQgdGVzdF9mbG9hdDIgPSAuMDE7CisgICAgZmxvYXQgdGVz
dF9mbG9hdDMgPSAxMC47CisgICAgZmxvYXQgdGVzdF9mbG9hdDQgPSAxMC4wMTsKKyAgICBmbG9h
dCB0ZXN0X2Zsb2F0NSA9IDIzZSsyOworICAgIGZsb2F0IHRlc3RfZmxvYXQ2ID0gMjNFLTM7Cisg
ICAgZmxvYXQgdGVzdF9mbG9hdDggPSAyM0UyOworICAgIGJvb2wgdGVzdF9ib29sNiA9IEJvb2xD
b25zdDEgJiYgISAodGVzdF9pbnQxICE9IDApICYmICEgQm9vbENvbnN0MSAgJiYgISAoRmxvYXRD
b25zdDEgIT0gMC4wKSAmJiAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAodGVzdF9mbG9hdDEgIT0g
MC4wKTsKKworICAgIHZlYzQgY29sb3IgPSB2ZWM0KDAuMCwgMS4wLCAwLjAsIDEuMCk7CisgICAg
dmVjNCBjb2xvcjIgPSB2ZWM0KDAuMCk7CisKKyAgICB2ZWMzIGNvbG9yNCA9IHZlYzModGVzdF9m
bG9hdDgpOworCisgICAgaXZlYzQgdGVzdF9pbnRfdmVjdDEgPSBpdmVjNCgxLjAsMS4wLDEuMCwx
LjApOworICAgIGl2ZWMzIHRlc3RfaW50X3ZlYzMgPSBpdmVjMygxLCAxLCAxKSA7CisKKyAgICBi
dmVjNCB0ZXN0X2Jvb2xfdmVjdDEgPSBidmVjNCgxLiwgMS4sIDEuICwgMS4gKTsKKworICAgIHZl
YzIgdGVzdF92ZWMyID0gdmVjMigxLiwgMS4pOworICAgIHZlYzIgdGVzdF92ZWMzID0gdmVjMigx
LiwgMSk7CisgICAgdmVjNCB0ZXN0X3ZlYzQgPSB2ZWM0KHRlc3RfaW50X3ZlY3QxKTsKKworICAg
IHZlYzIgdGVzdF92ZWM1ID0gdmVjMihjb2xvcjQpOworICAgIHZlYzMgdGVzdF92ZWM3ID0gdmVj
Myhjb2xvcik7CisgICAgdmVjMyB0ZXN0X3ZlYzggPSB2ZWMzKHRlc3RfdmVjMiwgdGVzdF9mbG9h
dDQpOworICAgIHZlYzMgdGVzdF92ZWM5ID0gdmVjMyh0ZXN0X2Zsb2F0NCwgdGVzdF92ZWMyKTsK
KworICAgIHZlYzQgdGVzdF92ZWMxMCA9IHZlYzQodGVzdF92ZWM5LCAwLjAxKTsKKyAgICB2ZWM0
IHRlc3RfdmVjMTEgPSB2ZWM0KDAuMDEsIHRlc3RfdmVjOSk7CisKKyAgICB2ZWM0IHRlc3RfdmVj
MTIgPSB2ZWM0KHRlc3RfdmVjMiwgdGVzdF92ZWMyKTsKKworICAgIG1hdDIgdGVzdF9tYXQyID0g
bWF0Mih0ZXN0X2Zsb2F0Myk7CisgICAgbWF0MyB0ZXN0X21hdDMgPSBtYXQzKHRlc3RfZmxvYXQz
KTsKKyAgICBtYXQ0IHRlc3RfbWF0NCA9IG1hdDQodGVzdF9mbG9hdDMpOworCisgICAgbWF0MiB0
ZXN0X21hdDcgPSBtYXQyKHRlc3RfdmVjMiwgdGVzdF92ZWMyKTsKKyAgICBtYXQyIHRlc3RfbWF0
OCA9IG1hdDIoMDEuMDEsIDIuMDEsIDMuMDEsIDQuMDEpOworCisgICAgbWF0MyB0ZXN0X21hdDkg
PSBtYXQzKHRlc3RfdmVjNywgdGVzdF92ZWM3LCB0ZXN0X3ZlYzcpOworICAgIG1hdDQgdGVzdF9t
YXQxMCA9IG1hdDQodGVzdF92ZWMxMCwgdGVzdF92ZWMxMCwgdGVzdF92ZWMxMCwgdGVzdF92ZWMx
MCk7CisgICAgdGVzdF9tYXQxMFsxXSA9IHRlc3RfdmVjMTA7CisKKworICAgIG1hdDIgdGVzdF9t
YXQxMiA9IG1hdDIodGVzdF92ZWMyLCAwLjAxLCAwLjAxKTsKKyAgICBtYXQyIHRlc3RfbWF0MTMg
PSBtYXQyKDAuMDEsIDUuLCB0ZXN0X3ZlYzIpOworICAgIG1hdDIgdGVzdF9tYXQxNSA9IG1hdDIo
MC4xLCA1LiwgdGVzdF92ZWMyICk7CisKKyAgICAvL21hdDIgdGVzdF9tYXQxNiA9IG1hdDIodGVz
dF9tYXQ5KTsKKyAgICAvL21hdDIgdGVzdF9tYXQxNyA9IG1hdDIodGVzdF9tYXQxMCk7CisKKyAg
ICBmbG9hdCBmcmVxMVsyXTsKKyAgICBmbG9hdCBmcmVxMlsyNV07CisKKyAgICBmb3IgKGludCBp
PTA7IGk8MTAwOyBpKyspCisgICAgeworICAgICAgaWYgKHRlc3RfZmxvYXQxIDwgMS4wKQorICAg
ICAgeworCisgICAgICB9CisgICAgICBlbHNlCisgICAgICB7CisgICAgICAgIGJyZWFrOworICAg
ICAgfQorICAgIH0KKworICAgIGZyZXEyWzFdID0gMS45IDsKKyAgICBjb25zdCBpbnQgYXJyYXlf
aW5kZXggPSAyOworICAgIGZyZXEyW2NvbnN0X3Rlc3RfaW50MV0gPSAxLjkgOworICAgIGZyZXEy
W2FycmF5X2luZGV4XSA9IDEuODsKKworICAgIGNvbnN0IGludCBjb25zdF9pbnQgPSA1OworCisg
ICAgdGVzdF9mbG9hdDEgPSB2YXJ5aW5nX2ZsdDsKKworICAgIGludCBvdXRfaW50OworICAgIGlu
dCBpbnRBcnJheVs2XTsKKyAgICB0ZXN0X2Z1bmN0aW9uKHRlc3RfaW50MSwgdGVzdF9pbnQxKTsK
KyAgICB0ZXN0X2Z1bmN0aW9uKHRlc3RfaW50MSwgaW50QXJyYXlbMl0pOworCisgICAgdmVjMyB2
diA9IHZlYzModGVzdF9mdW5jdGlvbjEodGVzdF9pbnQxLCBvdXRfaW50KSk7CisgICAgYm9vbCBi
b29sX3ZhciA9IHRydWU7CisgICAgaW50IHRlc3RfaW50NiA9IGludChib29sX3Zhcik7CisgICAg
dGVzdF9mbG9hdDEgPSBmbG9hdChib29sX3Zhcik7CisgICAgdGVzdF9mbG9hdDEgPSBmbG9hdCh0
ZXN0X2ludDYpOworICAgIHRlc3RfaW50NiA9IGludCh0ZXN0X2Zsb2F0MSk7CisgICAgYm9vbF92
YXIgPSBib29sKHRlc3RfaW50Nik7CisgICAgYm9vbF92YXIgPSBib29sKHRlc3RfZmxvYXQxKTsK
KyAgICB0ZXN0X2Zsb2F0MSA9IGZsb2F0KHRlc3RfdmVjOSk7CisKKyAgICB0ZXN0X3ZlYzIueCA9
IDEuMjsKKyAgICB0ZXN0X3ZlYzIueSA9IDEuNDsKKyAgICB0ZXN0X3ZlYzIueHk7CisKKworICAg
IGNvbG9yLnp5ID0gdGVzdF92ZWMyOworCisgICB0ZXN0X3ZlYzJbMV0gPSAxLjE7CisKKyAgICAg
dGVzdF9tYXQyWzBdWzBdID0gMS4xOworCisgICAgdGVzdF9mbG9hdDEgKz0gMS4wOworICAgIHRl
c3RfZmxvYXQxIC09IDEuMDsKKyAgICB0ZXN0X2Zsb2F0MSAqPSAxLjA7CisgICAgdGVzdF9mbG9h
dDEgLz0gMS4wOworCisgICAgdGVzdF9tYXQxMiAqPSB0ZXN0X21hdDEzIDsKKyAgICB0ZXN0X21h
dDEyICAqPSB0ZXN0X2Zsb2F0MTsKKyAgICB0ZXN0X3ZlYzIgKj0gdGVzdF9mbG9hdDE7CisgICAg
dGVzdF92ZWMyICo9IHRlc3RfbWF0MTI7CisgICAgdGVzdF9mbG9hdDErKzsKKyAgICB0ZXN0X2Zs
b2F0MS0tOworICAgIC0tdGVzdF9mbG9hdDE7CisgICAgKyt0ZXN0X2Zsb2F0MTsKKyAgICB0ZXN0
X2Zsb2F0MTsKKyAgICB0ZXN0X2ludDErKzsKKyAgICB0ZXN0X2ludDEtLTsKKworICAgIHRlc3Rf
dmVjMiA9IHRlc3RfdmVjMiArIHRlc3RfZmxvYXQxOworICAgIHRlc3RfdmVjMiA9IHRlc3RfZmxv
YXQxICsgdGVzdF92ZWMyOworCisgICAgdGVzdF9tYXQxMiA9IHRlc3RfbWF0MTIgKiB0ZXN0X21h
dDEzOworICAgIHRlc3RfdmVjMiA9IHRlc3RfdmVjMiAqIHRlc3RfdmVjNTsKKworICAgIHRlc3Rf
dmVjMisrOworICAgIHRlc3RfbWF0MisrOworCisgICAgYm9vbCB0ZXN0X2Jvb2wyID0gdGVzdF9m
bG9hdDIgPiB0ZXN0X2Zsb2F0MzsKKworICAgIGJvb2wgdGVzdF9ib29sMyA9IHRlc3RfaW50MSA+
IHRlc3RfaW50NiA7CisKKyAgICB0ZXN0X2Jvb2wzID0gdGVzdF92ZWMyID09IHRlc3RfdmVjNTsK
KworICAgIHRlc3RfYm9vbDIgPSB0ZXN0X2Jvb2wzICYmIHRlc3RfYm9vbDQ7CisgICAgdGVzdF9i
b29sMiA9IHRlc3RfYm9vbDMgfHwgdGVzdF9ib29sNDsKKyAgICB0ZXN0X2Jvb2wyID0gdGVzdF9i
b29sMyBeXiB0ZXN0X2Jvb2w0OworCisgICAgdGVzdF9ib29sMiA9ICF0ZXN0X2Jvb2wzOworCisg
ICAgdGVzdF9ib29sMyA9ICEodGVzdF9pbnQxID4gdGVzdF9pbnQ2KSA7CisKKyAgICB0ZXN0X2Zs
b2F0MSA9IHRlc3RfaW50MSA+IHRlc3RfaW50NiA/IHRlc3RfZmxvYXQyIDogdGVzdF9mbG9hdDM7
CisgICAgdGVzdF92ZWMyID0gdGVzdF9pbnQxID4gdGVzdF9pbnQ2ID8gdGVzdF92ZWMyIDogdGVz
dF92ZWM1OworICAgIGlmKHRlc3RfYm9vbDIpCisgICAgICAgIHRlc3RfZmxvYXQxKys7CisgICAg
ZWxzZQorCXRlc3RfZmxvYXQxLS07CisKKyAgICBpZih0ZXN0X2Zsb2F0MSA+IHRlc3RfZmxvYXQy
KQorICAgICAgICB0ZXN0X2Zsb2F0MSsrOworCisgICAgaWYoIHRlc3RfYm9vbDIgKQorICAgIHsK
KyAgICAgICAgaW50IGlmX2ludDsKKyAgICAgICAgdGVzdF9mbG9hdDErKzsKKyAgICB9CisKKyAg
ICBpZih0ZXN0X2Jvb2wyKQorICAgICAgIGlmKHRlc3RfYm9vbDMpCisgICAgICAgICAgIGlmKHRl
c3RfYm9vbDMpCisJICAgICAgdGVzdF9mbG9hdDErKzsKKworICAgZm9yKGludCBmb3JfaW50PTA7
IGZvcl9pbnQgPCA1OyBmb3JfaW50KyspCisgICB7CisgICAgICAgLy8gZG8gbm90aGluZyBhcyBz
dWNoCisgICB9CisKKworICAgZm9yKGludCB4MT0wOyB4MSA8IDEwOyB4MSsrKQorICAgeworICAg
ICBpZiAoIXRlc3RfYm9vbDIpCisgICAgICAgYnJlYWs7CisKKyAgICAgaW50IGZvcl9pbnQ7Cisg
ICB9CisKKyAgIGZvcihpbnQgeDI9LTEwOyB4MiA8IDEwMDsgeDIrKykKKyAgIHsKKyAgICAgdGVz
dF9ib29sMiA9ICh0ZXN0X2Zsb2F0MSA+IHRlc3RfZmxvYXQyKTsKKyAgICAgaWYgKCF0ZXN0X2Jv
b2wyKQorICAgICAgIGJyZWFrOworICAgfQorCisgICBmb3IoaW50IGZvcl9pbnQxID0gMDsgZm9y
X2ludDEgPCAxMDA7IGZvcl9pbnQxKyspCisgICB7CisgICAgIGlmICghdGVzdF9ib29sMikKKyAg
ICAgICBicmVhazsKKworICAgICBpbnQgZm9yX2ludDsKKyAgIH0KKworICAgZm9yKGludCBmb3Jf
aW50MSA9IDA7IGZvcl9pbnQxIDwgMTAwOyBmb3JfaW50MSsrKQorICAgeworICAgICBpZiAoIXRl
c3RfYm9vbDIpCisgICAgICAgY29udGludWU7CisKKyAgICAgaW50IGZvcl9pbnQ7CisgICB9CisK
KworICAgZm9yKGludCBpPTA7IGk8MTAwOyBpKyspCisgICB7CisgICAgIGlmICghKHRlc3RfZmxv
YXQxID4gdGVzdF9mbG9hdDIpKQorICAgICB7CisgICAgICAgYnJlYWs7CisgICAgIH0KKworICAg
ICBicmVhazsKKyAgICAgY29udGludWU7CisgICB9CisKKyAgIGZvcihpbnQgaT0wOyBpPDEwMDsg
aSsrKQorICAgeworICAgICBpZiAoIXRlc3RfYm9vbDIpCisgICAgICAgYnJlYWs7CisKKyAgICAg
YnJlYWs7CisgICB9CisKKyAgIGZvciAoaW50IGk9MDsgaTwxMDA7IGkrKykKKyAgIHsKKyAgICAg
aW50IGRvd2hpbGVfaW50OworICAgICBkb3doaWxlX2ludCA9IDM7CisKKyAgICAgaWYgKCF0ZXN0
X2Jvb2wyKQorICAgICAgIGJyZWFrOworICAgfQorCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDIu
MCwgMy4wLCAxLjAsIDEuMSk7CisgICAgZ2xfUG9zaXRpb24gPSBndGZfVmVydGV4OworCisKKyAg
ICAvLyBWRVJURVggU0hBREVSIEJVSUxULUlOIEFUVFJJQlVURVMKKworICAgIHZlYzQgYnVpbHRJ
blY0ID0gZ3RmX0NvbG9yICsgZ3RmX1NlY29uZGFyeUNvbG9yICsgZ3RmX1ZlcnRleCArIGd0Zl9N
dWx0aVRleENvb3JkMCArIGd0Zl9NdWx0aVRleENvb3JkMSArIGd0Zl9NdWx0aVRleENvb3JkMiAr
ICBndGZfTXVsdGlUZXhDb29yZDM7CisKKworICAgIGludCBidWlsdEluSSA9IGd0Zl9NYXhMaWdo
dHMgKyBndGZfTWF4Q2xpcFBsYW5lcyArIGd0Zl9NYXhUZXh0dXJlVW5pdHMgKyBndGZfTWF4VGV4
dHVyZUNvb3JkcyArIGd0Zl9NYXhWZXJ0ZXhBdHRyaWJzICsgZ3RmX01heFZlcnRleFVuaWZvcm1D
b21wb25lbnRzICsgZ3RmX01heFZhcnlpbmdGbG9hdHMgKyBndGZfTWF4VmVydGV4VGV4dHVyZUlt
YWdlVW5pdHMgKyBndGZfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VVbml0cyArIGd0Zl9NYXhUZXh0
dXJlSW1hZ2VVbml0cyArIGd0Zl9NYXhGcmFnbWVudFVuaWZvcm1Db21wb25lbnRzICsgZ3RmX01h
eERyYXdCdWZmZXJzIDsKKworCisgICAgbWF0NCBidWlsdEluTTQgPSBndGZfTW9kZWxWaWV3TWF0
cml4ICsgZ3RmX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXggKyBndGZfUHJvamVjdGlvbk1hdHJp
eDsKKworICAgIGd0Zl9Ob3JtYWxNYXRyaXg7CisKKyAgICBndGZfVGV4dHVyZU1hdHJpeFtndGZf
TWF4VGV4dHVyZUNvb3Jkcy0xXTsKKyAgICBndGZfVGV4dHVyZU1hdHJpeDsKKworICAgIGd0Zl9E
ZXB0aFJhbmdlLm5lYXIgOworCisgICAgdGVzdF9mbG9hdDEgPSBndGZfRGVwdGhSYW5nZS5uZWFy
OworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0RlcHRoUmFuZ2UuZmFyOworICAgIHRlc3RfZmxvYXQx
ID0gZ3RmX0RlcHRoUmFuZ2UuZGlmZjsKKworICAgIGd0Zl9Qb2ludC5zaXplOworICAgIGd0Zl9Q
b2ludC5zaXplTWluOworICAgIGd0Zl9Qb2ludC5zaXplTWF4OworICAgIGd0Zl9Qb2ludC5mYWRl
VGhyZXNob2xkU2l6ZSA7CisgICAgZ3RmX1BvaW50LmRpc3RhbmNlQ29uc3RhbnRBdHRlbnVhdGlv
bjsKKyAgICBndGZfUG9pbnQuZGlzdGFuY2VMaW5lYXJBdHRlbnVhdGlvbiA7CisgICAgZ3RmX1Bv
aW50LmRpc3RhbmNlUXVhZHJhdGljQXR0ZW51YXRpb247CisKKyAgICBndGZfTWF0ZXJpYWxQYXJh
bWV0ZXJzIHRlc3Q7CisgICAgZ3RmX0Zyb250TWF0ZXJpYWwuZW1pc3Npb247CisKKyAgICBjb2xv
ciA9IGd0Zl9Gcm9udE1hdGVyaWFsLmVtaXNzaW9uOworICAgIGNvbG9yID0gZ3RmX0Zyb250TWF0
ZXJpYWwuYW1iaWVudDsKKyAgICBjb2xvciA9IGd0Zl9Gcm9udE1hdGVyaWFsLmRpZmZ1c2U7Cisg
ICAgY29sb3IgPSBndGZfRnJvbnRNYXRlcmlhbC5zcGVjdWxhcjsKKyAgICB0ZXN0X2Zsb2F0MSA9
IGd0Zl9Gcm9udE1hdGVyaWFsLnNoaW5pbmVzczsKKworICAgIGd0Zl9MaWdodFNvdXJjZVBhcmFt
ZXRlcnMgbGlnaHRTb3VyY2U7CisKKyAgICBmbG9hdCBidWlsdEluRmxvYXQxID0gZ3RmX0xpZ2h0
U291cmNlWzBdLnNwb3RFeHBvbmVudDsKKyAgICBjb2xvciA9IGd0Zl9MaWdodFNvdXJjZVswXS5h
bWJpZW50OworICAgIGNvbG9yID0gbGlnaHRTb3VyY2UuYW1iaWVudDsKKyAgICBjb2xvciA9IGxp
Z2h0U291cmNlLmRpZmZ1c2U7CisgICAgY29sb3IgPSBsaWdodFNvdXJjZS5zcGVjdWxhcjsKKyAg
ICBjb2xvciA9IGxpZ2h0U291cmNlLnBvc2l0aW9uOworICAgIGNvbG9yID0gbGlnaHRTb3VyY2Uu
aGFsZlZlY3RvcjsKKyAgICBjb2xvcjQgPSBsaWdodFNvdXJjZS5zcG90RGlyZWN0aW9uOworICAg
IHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2Uuc3BvdEV4cG9uZW50OworICAgIHRlc3RfZmxvYXQx
ID0gbGlnaHRTb3VyY2Uuc3BvdEN1dG9mZjsKKyAgICB0ZXN0X2Zsb2F0MSA9IGxpZ2h0U291cmNl
LnNwb3RDb3NDdXRvZmY7CisgICAgdGVzdF9mbG9hdDEgPSBsaWdodFNvdXJjZS5jb25zdGFudEF0
dGVudWF0aW9uOworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2UubGluZWFyQXR0ZW51YXRp
b247CisgICAgdGVzdF9mbG9hdDEgPSBsaWdodFNvdXJjZS5xdWFkcmF0aWNBdHRlbnVhdGlvbjsK
KworICAgIGNvbG9yID0gZ3RmX0xpZ2h0TW9kZWwuYW1iaWVudDsKKworICAgIGd0Zl9MaWdodE1v
ZGVsUGFyYW1ldGVycyBsaWdodE1vZGVsOworICAgIGNvbG9yID0gZ3RmX0xpZ2h0TW9kZWwuYW1i
aWVudDsKKyAgICBjb2xvciA9IGxpZ2h0TW9kZWwuYW1iaWVudDsKKworICAgIGNvbG9yID0gZ3Rm
X0Zyb250TGlnaHRNb2RlbFByb2R1Y3Quc2NlbmVDb2xvciA7CisKKyAgICBndGZfTGlnaHRNb2Rl
bFByb2R1Y3RzIGxpZ2h0TW9kZWxQcm9kOworCisgICAgY29sb3IgPSBsaWdodE1vZGVsUHJvZC5z
Y2VuZUNvbG9yOworICAgIGNvbG9yID0gZ3RmX0Zyb250TGlnaHRNb2RlbFByb2R1Y3Quc2NlbmVD
b2xvcjsKKworICAgIGNvbG9yID0gZ3RmX0Zyb250TGlnaHRQcm9kdWN0WzBdLmFtYmllbnQ7Cisg
ICAgY29sb3IgPSBndGZfRnJvbnRMaWdodFByb2R1Y3RbMF0uYW1iaWVudDsKKyAgICBndGZfTGln
aHRQcm9kdWN0cyBsaWdodFByb2Q7CisKKyAgICBjb2xvciA9ICBsaWdodFByb2QuYW1iaWVudDsK
KyAgICBjb2xvciA9ICBsaWdodFByb2QuZGlmZnVzZTsKKyAgICBjb2xvciA9ICBsaWdodFByb2Qu
c3BlY3VsYXI7CisKKworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0ZvZy5kZW5zaXR5IDsKKyAgICB0
ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuc3RhcnQgOworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0ZvZy5l
bmQgIDsKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuc2NhbGUgOworICAgIGNvbG9yID0gZ3Rm
X0ZvZy5jb2xvciA7CisKKyAgICBndGZfRnJvbnRDb2xvciA9ICB2ZWM0KDEuMCwgMS4wLCAxLjAs
IDEuMCk7CisgICAgZ3RmX0JhY2tDb2xvciA9ICB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7Cisg
ICAgZ3RmX0Zyb250U2Vjb25kYXJ5Q29sb3IgPSAgdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwor
ICAgIGd0Zl9CYWNrU2Vjb25kYXJ5Q29sb3IgPSAgdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOwor
CisKKyAgICAvLyBWQVJZSU5HIFZBUklBQkxFUyBBVkFJTEFCTEUgSU4gRlJBR01FTlQgQU5EIFZF
UlRFWCBTSEFERVJTIEJPVEgKKyAgICBndGZfVGV4Q29vcmRbMF0gPSAgdmVjNCgxLjAsIDEuMCwg
MS4wLCAxLjApOworICAgIGd0Zl9Gb2dGcmFnQ29vcmQgPSAgdmVjNCgxLjAsIDEuMCwgMS4wLCAx
LjApOworCit9CisKK3ZvaWQgdGVzdF9mdW5jdGlvbihjb25zdCBpbiBpbnQgaW5faW50LCBpbm91
dCBpbnQgb3V0X2ludCkKK3sKKyAgICBvdXRfaW50ID0gNTsKKyAgICBpbnQgaSA9IDU7CisgICAg
cmV0dXJuIDsKK30KKworaW50IHRlc3RfZnVuY3Rpb24xKGluIGludCBpbl9pbnQxLCBpbm91dCBp
bnQgaW5fb3V0X2ludCkKK3sKKyAgIGZsb2F0IGZmOworICAgaW5faW50MSA9IDU7CisgICByZXR1
cm4gaW5faW50MTsKK30KKwordm9pZCB0ZXN0X2Z1bmN0aW9uMyhsaWdodDMgbGwpCit7CisgICAg
bGwuaSA9IDUuMDsKKyAgICB2YXJ5aW5nX2ZsdCA9IDEuMjsKK30KKwordm9pZCB0ZXN0X2Z1bmN0
aW9uNChsaWdodDUgbGwyMCkKK3sKKyAgICBsbDIwLmkgPSAxMC4wOworfQorCit2b2lkIHRlc3Rf
ZnVuY3Rpb241KGxpZ2h0MSBzdHJ1Y3RfbGlnaHQxKQoreworICAgIHN0cnVjdF9saWdodDEubGln
aHQyLmEgPSAxOworICAgIGxpZ2h0NSBsbDU7CisgICAgc3RydWN0X2xpZ2h0MS5saWdodDIuZiA9
IGxsNS5pOworICAgIHN0cnVjdF9saWdodDEubGlnaHQyLmYrKzsKKyAgICBzdHJ1Y3RfbGlnaHQx
LmxpZ2h0Mi5hKys7Cit9CisKK2xpZ2h0NiB0ZXN0X2Z1bmN0aW9uNihpbnQgYSkKK3sKKyAgICBp
bnQgeDsKKyAgICBsaWdodDYgZnVuY1N0cnVjdDsKKyAgICBsaWdodDcgZnVuY1N0cnVjdDE7Cisg
ICAgLXg7CisgICAgeCA9IHggLSB4IDsKKyAgICBtYXQyIG07CisgICAgbSsrOworICAgIC1tOwor
ICAgIChtKSsrOworICAgIHJldHVybiBmdW5jU3RydWN0OworfQorCitmbG9hdCB0ZXN0X2Z1bmN0
aW9uNyhsaWdodDEgbGwxLCBpbnQgbGlnaHQxICkKK3sKKyAgICBmbG9hdCBmOworCisgICAgc3Ry
dWN0IHNzMSB7CisgICAgICAgIGludCBhOworICAgIH07CisKKyAgICByZXR1cm4gZmxvYXQoMSk7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2FkX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jT3ZlcmxvYWRfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU4ZTlhOTU1NGI0MjUzMDc3MzY4ZGZiNzg4ZmUwMWM3ZmU2MjE2OGIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2FkX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDI3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIHRlc3RWb2lkICh2ZWM0IHYsIHZlYzQgdjEpCit7Cit9CisKK3ZvaWQgdGVzdFZvaWQgKGl2
ZWM0IHYsIGl2ZWM0IHYxKQoreworfQorCit2b2lkIG1haW4odm9pZCkKK3sKKyAgICB2ZWM0IHY7
CisgICAgaXZlYzQgaTsKKyAgICB0ZXN0Vm9pZChpLCBpKTsKKyAgICB0ZXN0Vm9pZCh2LCB2KTsK
KyAgICBnbF9GcmFnQ29sb3IgPSB2OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdEZ1bmNPdmVybG9hZF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092
ZXJsb2FkX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTJmN2U2MDdiOTRjY2RiNTQ4ODg4MjAzOTE5
YTdiMDlhZjI0NzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1
bmNPdmVybG9hZF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwzNyBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworc3RydWN0IFMyCit7CisgICAgICAgIGZsb2F0
IGY7Cit9OworCitzdHJ1Y3QgUzEKK3sKKyAgICAgICAgZmxvYXQgZjsKKyAgICAgICAgUzIgczI7
Cit9OworCitmbG9hdCBwcm9jZXNzKFMxIHMxKTsKK2Zsb2F0IHByb2Nlc3MoUzIgczIpOworCit2
b2lkIG1haW4oKQoreworICAgICAgICBTMSBzMSA9IFMxKDEuMCwgUzIoMS4wKSk7CisgICAgICAg
IGdsX1Bvc2l0aW9uID0gdmVjNChwcm9jZXNzKHMxKSk7Cit9CisKK2Zsb2F0IHByb2Nlc3MoUzEg
czEpCit7CisgICAgICAgIHJldHVybiBzMS5mICsgcHJvY2VzcyhzMS5zMik7Cit9CisKK2Zsb2F0
IHByb2Nlc3MoUzIgczIpCit7CisgICAgICAgIHJldHVybiBzMi5mOworfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jdGlv
bjFfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmN0aW9uMV92ZXJ0LnZlcnQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjM4NGNjNTdiNDIwMjk5YjgyYjM0N2ZmZWIyOTQxOWFjYWU2MTEwNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jdGlvbjFfdmVydC52ZXJ0
CkBAIC0wLDAgKzEsMzYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKK3ZlYzMgYmFyKHZlYzMsIHZlYzMpOworCit1bmlmb3JtIHZlYzIgdjsKKworYm9v
bCBmb28ob3V0IHZlYzMpOworCit2b2lkIG1haW4oKQoreworICAgIGJvb2wgYjEsIGIyLCBiMywg
YjQsIGI1LCBiNjsKKworICAgIGIxID0gYW55KGxlc3NUaGFuKHYsIHYpKTsKKworICAgIGIyID0g
YWxsKGxlc3NUaGFuRXF1YWwodiwgdikpOworCisgICAgYjMgPSBhbnkobm90KGdyZWF0ZXJUaGFu
KHYsIHYpKSk7CisKKyAgICBiNCA9IGFueShncmVhdGVyVGhhbkVxdWFsKHYsIHYpKTsKKworICAg
IGI1ID0gYW55KG5vdEVxdWFsKHYsIHYpKTsKKworICAgIGI2ID0gYW55KGVxdWFsKHYsIHYpKTsK
KworICAgIHZlYzIgdTsKKyAgICBpZiAoYjEgJiYgYjIgJiYgYjMgJiYgYjQgJiYgYjUgJiYgYjYp
CisgICAgICAgIHUgPSB2OworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KHUsIHUpOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0TW9kdWxlX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2JjNjk4MTVmOWRj
MjY0YjQyNDljNDUzOTY5ZWUyOTBmMjU5MjE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWcKQEAgLTAsMCArMSw2NCBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordmVjNCB0ZXN0X2Z1bmN0aW9uNChmbG9hdCk7
Cit2ZWM0IHRlc3RfZnVuY3Rpb24xKGZsb2F0KTsKK3ZlYzQgdGVzdF9mdW5jdGlvbjIoZmxvYXQp
OwordmVjNCB0ZXN0X2Z1bmN0aW9uMyhmbG9hdCk7CitmbG9hdCBmID0gMi42OworCisKK3ZlYzQg
dGVzdF9mdW5jdGlvbjEoZmxvYXQgZmYpCit7CisgICAgdmVjNCBmdW5jX3ZlYzQgPSB2ZWM0KGZm
K2YpOworICAgIHJldHVybiBmdW5jX3ZlYzQ7Cit9CisKK2Zsb2F0IGYxID0gMS41OworCit2ZWM0
IHRlc3RfZnVuY3Rpb240KGZsb2F0IGZmKQoreworICAgIHZlYzQgZnVuY192ZWM0ID0gdmVjNChm
MSk7CisgICAgcmV0dXJuIGZ1bmNfdmVjNDsKK30KKworZmxvYXQgZjIgPSAzLjU7CisKK3ZvaWQg
bWFpbigpCit7CisgICAgdmVjNCB2MSA9IHRlc3RfZnVuY3Rpb240KGYyKTsKKyAgICB2ZWM0IHYy
ID0gdGVzdF9mdW5jdGlvbjEoZjIpOworICAgIHZlYzQgdjMgPSB0ZXN0X2Z1bmN0aW9uMihmMik7
CisgICAgdmVjNCB2NCA9IHRlc3RfZnVuY3Rpb24zKGYyKTsKKworICAgIGlmIChmMSA+IGYyKSB7
CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHYxICsgdjIgKyB2MyArIHY0OworICAgIH0gZWxzZQor
ICAgICAgICBnbF9GcmFnQ29sb3IgPSB2MSArIHYyICsgdjMgKyB2NDsKK30KKworZmxvYXQgZjQg
PSA1LjU7Cit2ZWM0IHRlc3RfZnVuY3Rpb24zKGZsb2F0IGZmKQoreworICAgIGlmIChmZiA+IGY0
KQorCXJldHVybiB2ZWM0KGZmKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiB2ZWM0KGY0KTsK
K30KKworZmxvYXQgZjMgPSA0LjU7Cit2ZWM0IHRlc3RfZnVuY3Rpb24yKGZsb2F0IGZmKQorewor
ICAgIHZlYzQgZnVuY192ZWM0ID0gdmVjNChmZitmMyk7CisgICAgcmV0dXJuIGZ1bmNfdmVjNDsK
K30KKworZmxvYXQgZjUgPSA2LjU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0
UGFyc2UxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTFfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY1YTlmYjA3ZmJjMGI1MGM4OGE1ZDJiNDJlZjlhNzAyZTgyOWZkMjYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2UxX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDUxIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1
bmlmb3JtIHZlYzMgYVs4XTsKKwordW5pZm9ybSBib29sIHViOwordmFyeWluZyBtYXQ0IHZtOwor
CitpbnQgZm9vKGZsb2F0KTsKKworZmxvYXQgYmFyKGludCBpKQoreworICAgIHJldHVybiBmbG9h
dChpKTsKK30KKwordm9pZCBtYWluICh2b2lkKQoreworICAgIGNvbnN0IGludCB4ID0gMzsKKyAg
ICBtYXQ0IGFbNF07CisgICAgdmVjNCB2OworCisgICAgZm9yIChmbG9hdCBmID0gMC4wOyBmICE9
IDMuMDsgKytmKQorICAgIHsKKyAgICB9CisKKyAgICB2ZWMzIHYzW3ggKyB4XTsKKworICAgIGlu
dCB2aSA9IGZvbygyLjMpOworCisgICAgdmVjMyB2M18xID0gdjNbeF07CisKKyAgICBmbG9hdCBm
MSA9IGFbeF1bMl0ueiAqIGZsb2F0KHgpOworICAgIGYxID0gYVt4XVsyXVsyXSAqIGZsb2F0KHgp
OworICAgIGYxID0gdlsyXSAqIHZbMV07CisKKyAgICBjb25zdCBpbnQgY2kgPSAyOworCit9CisK
K2ludCBmb28oZmxvYXQgZikKK3sKKyAgICByZXR1cm4gMjsKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dFBhcnNlMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJmZTJlYzU3YWYzMTRjYTI1MGFhNmJlNzE5
NTkwODA5MDBlYjY5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQ
YXJzZTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTM2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCitjb25zdCBmbG9hdCBGbG9hdENvbnN0MSA9IDMuMCAqIDguMCwgZmxv
YXRDb25zdDIgPSA0LjA7Citjb25zdCBib29sIEJvb2xDb25zdDEgPSB0cnVlICYmIHRydWUgfHwg
ZmFsc2U7Citjb25zdCBib29sIEJvb2xDb25zdDIgPSBmYWxzZSB8fCAhZmFsc2UgJiYgZmFsc2U7
CisKK3ZvaWQgbWFpbiAodm9pZCkKK3sKKyAgICBmbG9hdCBmbG9hdDEgPSA0LjAsIGZsb2F0MiA9
IGZsb2F0Q29uc3QyOworICAgIGludCBpbnRfMSA9IGludChGbG9hdENvbnN0MSk7CisgICAgdmVj
NCB2ZWM0XzE7CisgICAgdmVjMyB2ZWMzXzE7CisvLyAgdW5zaWduZWQgaW50IHVuc2lnbmVkX2lu
dF8xOworICAgIGJvb2wgYm9vbDQsIGJvb2w1OworCisgICAgYm9vbDQgPSBib29sNTsKKyAgICAv
L2Zsb2F0MSA9IGJvb2w1OworICAgIC8vYm9vbDUgPSBmbG9hdDE7CisKKyAgICBib29sNCA9IDQu
MCA+IDUuMDsKKyAgICBib29sNCA9ICEoMy4yICE9IDAuMCk7CisgICAgYm9vbDQgPSBib29sKGZs
b2F0MSk7CisgICAgYm9vbDQgPSBib29sKGludF8xKTsKKyAgICBmbG9hdDEgPSBmbG9hdChib29s
NCk7CisgICAgZmxvYXQxID0gZmxvYXQoaW50XzEpOworICAgIGludF8xID0gaW50KGZsb2F0MSk7
CisgICAgaW50XzEgPSBpbnQoYm9vbDQpOworCisgICAgeworICAgICAgICBpbnQgYSwgYiwgYzsK
KworICAgICAgICBhID0gYjsKKyAgICAgICAgYiA9IGM7CisgICAgICAgIHsKKyAgICAgICAgICAg
IGludCBiLCBjLCBkOworCisgICAgICAgICAgICBiID0gYzsKKyAgICAgICAgICAgIGMgPSBkOwor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBhLCBkLCBlOworCisgICAgICAgICAg
ICAgICAgYSA9IGQ7CisgICAgICAgICAgICAgICAgZCA9IGU7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IGEsIGIsIGM7CisgICAgICAgICAgICAgICAg
YSA9IGI7CisgICAgICAgICAgICAgICAgYiA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgYSA9IGI7CisgICAgICAgIGIgPSBjOworICAgIH0KKworICAgIHsKKyAgICAgICAg
ZmxvYXQgZjEsIGYyOworICAgICAgICB2ZWMzIHYzMSwgdjMyOworCisgICAgICAgIG1heChmMSwg
ZjIpOworICAgICAgICBtYXgodjMxLCB2MzIpOworCisgICAgICAgIHZlYzQgdjQgPSB2ZWM0KDMu
MCk7CisgICAgICAgIHZlYzMgdjMgPSAtdmVjMygyLjAsIDEuMCwgMy4wKTsKKyAgICAgICAgbWF0
MiBtMiA9IG1hdDIoMy4wLCA0LjAsIDYuMCwgMy4wKTsKKyAgICAgICAgLy9tYXQ0IG00ID0gbWF0
NCgxLjAsIG0yLCB2MywgdjQsIG0yKTsKKyAgICB9CisKKyAgICBpZiAoQm9vbENvbnN0MSkKKyAg
ICAgICAgKyt2ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChC
b29sQ29uc3QyKQorICAgICAgICArK3ZlYzNfMTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18x
OworCisgICAgaWYgKEJvb2xDb25zdDEgfHwgQm9vbENvbnN0MikKKyAgICAgICAgKyt2ZWMzXzE7
CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29sQ29uc3QyICYmIEJv
b2xDb25zdDEpCisgICAgICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7
CisKKyAgICBpZiAoRmxvYXRDb25zdDEgIT0gMC4wKQorICAgICAgICAtLWludF8xOworICAgIGVs
c2UKKyAgICAgICAgKytpbnRfMTsKKworICAgIGlmICgwICE9IDApCisgICAgICAgICsraW50XzE7
CisgICAgZWxzZQorICAgICAgICAtLWludF8xOworCisgICAgYm9vbDQgPSBCb29sQ29uc3QxICYm
ICEgKGludF8xICE9IDApICYmICEgQm9vbENvbnN0MSAgJiYgISAoRmxvYXRDb25zdDEgIT0gMC4w
KSAmJiAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAoZmxvYXQxICE9IDAuMCk7CisKKyAgICBmbG9h
dDEgPSA1ICE9IDAgPyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisgICAgZmxvYXQxID0gMCAhPSAw
ID8gZmxvYXQxIDogZmxvYXQoaW50XzEpOworCisgICAgaWYgKGZsb2F0MSAhPSBmbG9hdDEpCisg
ICAgICAgICsraW50XzE7CisgICAgZWxzZQorICAgICAgICAtLWludF8xOworCisgICAgZmxvYXQx
ID0gZmxvYXQxICE9IGZsb2F0MSA/IGZsb2F0MSA6IGZsb2F0KGludF8xKTsKKworICAgIC0taW50
XzE7CisgICAgKytmbG9hdDE7CisgICAgKHZlYzRfMS54KS0tOworICAgIHZlYzNfMSsrOworCisJ
aWYgKGludF8xICE9IDQpCisJCWRpc2NhcmQ7CisKKyAgICBmbG9hdDEgPSA0LjAgKyA2LjA7Cisg
ICAgaW50IGlpLGpqLGtrOworICAgIGZsb2F0IGZmOworICAgIGlpID0gamosIGtrLCBmZjsKKwor
ICAgIHZlYzRfMSA9IHZlYzRfMSArIDIuMDsKKyAgICBpdmVjNCBpdjsKKyAgICBpdiA9IGl2ICsg
MjsKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGZsb2F0MStmbG9hdDEsIGZsb2F0MSwgZmxvYXQx
LCBmbG9hdChpbnRfMSkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBh
cnNlMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2UyX3ZlcnQudmVydApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMjY4NjQ0MmE5YTYxOGQ1YzViZjI1NTg3M2U3ZmNlYTNiNjZiMjA4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQKQEAg
LTAsMCArMSwxNDkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKK2NvbnN0IGZsb2F0IEZsb2F0Q29uc3QxID0gMy4wICogOC4wLCBmbG9hdENvbnN0MiA9
IDQuMDsKK2NvbnN0IGJvb2wgQm9vbENvbnN0MSA9IHRydWUgJiYgdHJ1ZSB8fCBmYWxzZTsKK2Nv
bnN0IGJvb2wgQm9vbENvbnN0MiA9IGZhbHNlIHx8ICFmYWxzZSAmJiBmYWxzZTsKKwordm9pZCBt
YWluICh2b2lkKQoreworICAgIGZsb2F0IGZsb2F0MSA9IDQuMCwgZmxvYXQyID0gZmxvYXRDb25z
dDI7CisgICAgaW50IGludF8xID0gaW50KEZsb2F0Q29uc3QxKTsKKyAgICB2ZWM0IHZlYzRfMTsK
KyAgICB2ZWMzIHZlYzNfMSA9IHZlYzMoMSwgMSwgMSk7CisJdmVjMyB2ZWMzXzIgPSB2ZWMzKDAs
IDAsIDApOworLy8gIHVuc2lnbmVkIGludCB1bnNpZ25lZF9pbnRfMTsKKyAgICBib29sIGJvb2w0
LCBib29sNTsKKworICAgIGJvb2w0ID0gYm9vbDU7CisgICAgLy9mbG9hdDEgPSBib29sNTsKKyAg
ICAvL2Jvb2w1ID0gZmxvYXQxOworCisgICAgYm9vbDQgPSA0ID4gNTsKKyAgICBib29sNCA9ICEo
My4yICE9IDAuMCk7CisgICAgYm9vbDQgPSBib29sKGZsb2F0MSk7CisgICAgYm9vbDQgPSBib29s
KGludF8xKTsKKyAgICBmbG9hdDEgPSBmbG9hdChib29sNCk7CisgICAgZmxvYXQxID0gZmxvYXQo
aW50XzEpOworICAgIGludF8xID0gaW50KGZsb2F0MSk7CisgICAgaW50XzEgPSBpbnQoYm9vbDQp
OworCisgICAgeworICAgICAgICBpbnQgYSwgYiwgYzsKKworICAgICAgICBhID0gYjsKKyAgICAg
ICAgYiA9IGM7CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBiLCBjLCBkOworCisgICAgICAg
ICAgICBiID0gYzsKKyAgICAgICAgICAgIGMgPSBkOworICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGludCBhLCBkLCBlOworCisgICAgICAgICAgICAgICAgYSA9IGQ7CisgICAgICAgICAg
ICAgICAgZCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgaW50IGEsIGIsIGM7CisgICAgICAgICAgICAgICAgYSA9IGI7CisgICAgICAgICAgICAgICAg
YiA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYSA9IGI7CisgICAgICAg
IGIgPSBjOworICAgIH0KKworICAgIHsKKyAgICAgICAgZmxvYXQgZjEsIGYyOworICAgICAgICB2
ZWMzIHYzMSwgdjMyOworCisgICAgICAgIG1heChmMSwgZjIpOworICAgICAgICBtYXgodjMxLCB2
MzIpOworCisgICAgICAgIHZlYzQgdjQgPSB2ZWM0KDMuMCk7CisgICAgICAgIHZlYzMgdjMgPSAt
dmVjMygyLjAsIDEuMCwgMy4wKTsKKyAgICAgICAgbWF0MiBtMiA9IG1hdDIoMy4wLCA0LjAsIDYu
MCwgMy4wKTsKKyAgICAgICAgLy9tYXQ0IG00ID0gbWF0NCgxLjAsIG0yLCB2MywgdjQsIG0yKTsK
KyAgICB9CisKKyAgICBpZiAoQm9vbENvbnN0MSkKKyAgICAgICAgKyt2ZWMzXzE7CisgICAgZWxz
ZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29sQ29uc3QyKQorICAgICAgICArK3Zl
YzNfMTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18xOworCisgICAgaWYgKEJvb2xDb25zdDEg
fHwgQm9vbENvbnN0MikKKyAgICAgICAgKyt2ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZl
YzNfMTsKKworICAgIGlmIChCb29sQ29uc3QyICYmIEJvb2xDb25zdDEpCisgICAgICAgICsrdmVj
M18xOworICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAoRmxvYXRDb25zdDEg
IT0gMC4wKQorICAgICAgICAtLWludF8xOworICAgIGVsc2UKKyAgICAgICAgKytpbnRfMTsKKwor
ICAgIGlmICgwICE9IDApCisgICAgICAgICsraW50XzE7CisgICAgZWxzZQorICAgICAgICAtLWlu
dF8xOworCisgICAgYm9vbDQgPSBCb29sQ29uc3QxICYmICEgKGludF8xICE9IDApICYmICEgQm9v
bENvbnN0MSAgJiYgISAoRmxvYXRDb25zdDEgIT0gMC4wKSAmJiAoRmxvYXRDb25zdDEgIT0gMC4w
KSAmJiAoZmxvYXQxICE9IDAuMCk7CisKKyAgICBmbG9hdDEgPSA1ICE9IDAgPyBmbG9hdDEgOiBm
bG9hdChpbnRfMSk7CisgICAgZmxvYXQxID0gQm9vbENvbnN0MSA/IGZsb2F0MSA6IGZsb2F0KGlu
dF8xKTsKKworICAgIGlmIChmbG9hdDEgIT0gZmxvYXQxKQorICAgICAgICArK2ludF8xOworICAg
IGVsc2UKKyAgICAgICAgLS1pbnRfMTsKKworICAgIGZsb2F0MSA9IGZsb2F0MSAhPSBmbG9hdDEg
PyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisKKyAgICAtLWludF8xOworICAgICsrZmxvYXQxOwor
ICAgICh2ZWM0XzEueCktLTsKKyAgICB2ZWMzXzErKzsKKworICAgIGlmICh2ZWMzXzEueCA+IHZl
YzNfMi54KQorICAgICAgICBmbG9hdDEgPSA0LjAgKyA2LjA7CisKKyAgICBpZiAoYm9vbDQgXl4g
Ym9vbDUpCisgICAgICAgIGZsb2F0MSAqPSAyLjQ7CisKKyAgICBpZiAoZmFsc2UgXl4gZmFsc2Up
CisgICAgICAgIGZsb2F0MSAqPSAyLjU7CisKKyAgICBpZiAodHJ1ZSBeXiBmYWxzZSkKKyAgICAg
ICAgZmxvYXQxICo9IDIuNjsKKworICAgIHsKKyAgICAgICAgaW50IGk7CisgICAgfQorCisgICAg
aWYgKGJvb2w0KSB7CisgICAgICAgIGludCBpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludCBp
OworICAgICAgICBpID0gNTsKKyAgICB9CisKKyAgICBtYXQ0IG0xOworICAgIG0xWzJdWzFdID0g
NC4wOworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGZsb2F0MStmbG9hdDEsIGZsb2F0MSwgZmxv
YXQxLCBmbG9hdChpbnRfMSkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dFBhcnNlVGVzdDFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdDFf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YzEwNjEwM2JhNjlmNjMxNzA3Y2U0MWE0MTUyZjNlOTNj
YzZmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2VUZXN0
MV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIHZlYzQgdjsKK30gczI7CisKK3ZvaWQgbWFpbigp
Cit7CisgICAgcyBzMSA9IHModmVjNChpdmVjNCg0LjAsIHZlYzIoNSw2KSwgNy4wKSkpOworICAg
IHZlYzQgdiA9IHZlYzQoMixpdmVjMigzLjAsIDQuMCksIDUuMCk7CisgICAgdmVjNCB2NCA9IHZl
YzQoaXZlYzQoOC4wKSk7CisKKyAgICBnbF9GcmFnQ29sb3IgPSB2NCArIHYgKyBzMS52OworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2VUZXN0X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmI2
ZGRjNjAxM2RiZmNkZDVmNWFlNWQ5MjI5M2FlOWZiM2ZmYTc0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9mcmFnLmZyYWcKQEAgLTAsMCArMSwyNiBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHN7CisgICAg
ZmxvYXQgZjsKKyAgICB2ZWMzICB2OworfSBzMSA7Cit2b2lkIG1haW4oKQoreworICAgIHZlYzQg
diA9IHZlYzQoZmxvYXQodmVjMigxLDIpKSwgNSw2LDcpOyAgLy8gMSwgNSwgNiwgNworICAgIHZl
YzQgdjEgPSB2ZWM0KDMsIHZlYzIoaXZlYzIoMSwyKSksIDQpOyAgLy8gMywgMSwgMiwgNAorICAg
IHZlYzQgdjIgPSB2ZWM0KDgsIDksIHZlYzQoaXZlYzQoMSwyLDMsNCkpKTsgLy8gOCw5LCAxLDIK
KyAgICB2ZWMyIHYzID0gdmVjMih2Mik7ICAvLyA4LDkKKyAgICB2ZWM0IHY0ID0gdmVjNCh2Mywg
djIueiwgdjIudyk7ICAvLyA4LDksMSwyCisKKyAgICBjb25zdCB2ZWM0IHY1ID0gdmVjNCgyLjAs
IHMoMi4wLCB2ZWMzKDMsNCw1KSkudik7IC8vIDIsMyw0LDUKKyAgICBnbF9GcmFnQ29sb3IgPSB2
NSArIHYgKyB2MSArIHY0IDsgIC8vIDE0LCAxOCwgMTMsIDE4Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
Q29ycmVjdFByZXByb2Nlc3M1X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGJhYzFhMDExMWZkYTdl
MDYzNzczZjRjYzQ1Y2YwZTA2OTQ3YjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDMxIEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvL211dGlwbGUgbGluZSBtYWNyb3MgLSB0
ZXN0IGNhc2UuCisKKyNkZWZpbmUgdGVzdCA1CisjZGVmaW5lIHQxIDEKKyNkZWZpbmUgdDIgMgor
I2RlZmluZSB0b2tlbiAodDErdDIpCisjZGVmaW5lIHRlc3QxIGludCBzdW0gPTE7IHN1bSA9IHRl
c3Q7IHN1bSA9IHRlc3QrdGVzdDsKKworI2RlZmluZSB0ZXN0MiB7IHRlc3QxIHN1bSA9IHN1bSAr
dG9rZW47IHN1bSA9IHQyKnQxOyB9CisKK3ZvaWQgbWFpbih2b2lkKQoreworIGludCB0ZXN0Mz0x
OworIHRlc3QxCisgdGVzdDI7CisgdGVzdDMgPSB0ZXN0OworIHN1bSA9IHRlc3QzOworfQorCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOF9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczhfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAxYTM0NjZlOWFiZmU0MTNiZjIwNTJkYTNiNzBkZjg1MDcwODQ5NjgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczhfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMTE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvLyBFeHRl
bnNpdmUgdGVzdGluZyBvbiAjaWYgI2Vsc2UgI2VsaWYgI2lmZGVmLCAjaWZuZGVmIGFuZCAjZW5k
aWYuCisKKworI2RlZmluZSB0MSAxCisKKyNpZih0MT09MSkKKyAgI2RlZmluZSB0MiAyCisjZW5k
aWYKKworI2lmICh0MiE9MikKKyAgI2RlZmluZSB0MyAzMworI2Vsc2UKKyAgI2RlZmluZSB0MyAz
CisjZW5kaWYKKworI2lmICh0MyE9MykKKyAjZGVmaW5lIHQ0IDQKKyNlbGlmICh0Mz09MykKKyAj
ZGVmaW5lIHQ0IDQ0CisjZWxzZQorICAjZGVmaW5lIHQ0IDAKKyNlbmRpZgorCisjaWYgZGVmaW5l
ZCh0NSkKKyAjZGVmaW5lIHQ2IDYKKyNlbGlmICh0MyE9MykKKyAjZGVmaW5lIHQ1IDUKKyNlbGlm
ICh0Mz09MykKKyAjZGVmaW5lIHQ1IDUKKyNlbmRpZgorCisjaWZkZWYgdDUKKyAjZGVmaW5lIHQ2
IDYKKyNlbHNlCisgI2RlZmluZSB0NyA3CisjZW5kaWYKKworI2lmbmRlZiB0OAorICNkZWZpbmUg
dDggOAorI2VuZGlmCisKKyNpZiBkZWZpbmVkIHQ4CisgI2RlZmluZSB0OQorICNpZmRlZiB0OQor
ICAjZGVmaW5lICB0MTAgMTAKKyAjZW5kaWYKKyNlbGlmCisgI2RlZmluZSB0MTEgMTEKKyNlbmRp
ZgorCisjaWZuZGVmIHQ4CisgI2RlZmluZSB0MTIgMTIKKyNlbHNlCisgI2RlZmluZSB0MTIgMTIK
KyAjaWZuZGVmIHQxMworICAjZGVmaW5lIHQxMyAxMworICNlbmRpZgorICNpZmRlZiB0MTQKKyAg
I2RlZmluZSB0MTUgMTUKKyAjZWxzZQorICAjaWYgZGVmaW5lZCB0OAorICAgI2RlZmluZSB0MTYg
MTYKKyAgI2VuZGlmCisgI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIHQxCisgICAjaWZkZWYgdDEw
CisgICAgICAjaWYgZGVmaW5lZCB0OAorICAgICAgICAgI2lmIGRlZmluZWQodDMpCisgICAgICAg
ICAgICAgICAjaWZuZGVmIHQyMAorICAgICAgICAgICAgICAgICAgI2RlZmluZSB0MjUgMjUKKyAg
ICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgI2Vsc2UKKyAgICAgICAgICAgICNkZWZpbmUg
dDE1IDE1CisgICAgICAgICAgICAjZGVmaW5lIHQyNCAyNAorICAgICAgICAgI2VuZGlmCisgICAg
ICAjZW5kaWYKKyAgICNlbmRpZgorI2Vsc2UKKyAgICNpZmRlZiB0MjEKKyAgICAgI2RlZmluZSB0
MjIgMjIKKyAgICNlbHNlCisgICAgICNkZWZpbmUgdDIzIDIzCisgICAjZW5kaWYKKyNlbmRpZgor
I2RlZmluZSB0NyA3CisjZGVmaW5lIHQxMSAxMQorI2RlZmluZSB0MTQgMTQKKyNkZWZpbmUgdDE1
IDE1CisjZGVmaW5lIHQyMCAyMAorI2RlZmluZSB0MjIgMjIKKyNkZWZpbmUgdDIzIDIzCisjZGVm
aW5lIHQyNCA0MgorCit2b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgc3VtID0wOworIHN1bSA9IHQx
K3QyK3QzK3Q0K3Q1OworIHN1bSA9IHQ2K3Q3K3Q4K3Q5K3QxMDsKKyBzdW0gPSB0MTErdDEyK3Qx
Myt0MTQrdDE1OworIHN1bSA9IHQxNit0MjArdDIyK3QyMyt0MjUrdDI0OworfQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczlfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTQ2MzEy
OTM0MjlhNjRmYzMxNzQ5NDY1NGFhNjVhMzEzYTJkOGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDMyIEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisjZGVmaW5lIHQxIDIuMzMz
MzMzMzMzMzMzMzMzMworI2RlZmluZSB0MiAoMC45NzgyOTM2MDAtMS4wKQorI2RlZmluZSB0MyAu
OTA5MDkwOTA5MAorI2RlZmluZSB0NCAyNjU3ODIzNS4wMDAwMDAwODM0ODcKKyNkZWZpbmUgdDUg
NzhlLTAzCisjZGVmaW5lIHQ2IDc4LjEwMDAwNUUrMDUKKyNkZWZpbmUgdDcgNjI3OC43OGUtNQor
Cit2b2lkIG1haW4odm9pZCl7CisgICAgZmxvYXQgdGVzPTJlLTM7CisgICAgZmxvYXQgdGVzdD0z
LjJlLTU7CisgICAgZmxvYXQgdGVzdDE9MC45OTk5NTUwMDsKKyAgICBmbG9hdCB0ZXN0Mj02Nzg5
Ljk4MzsKKworICAgIHRlc3QgPSB0MSt0MjsKKyAgICB0ZXN0ID0gdDMtdDQ7CisgICAgdGVzICA9
IHQ1ICogdDY7CisgICAgdGVzdDIgPSB0NzsKKworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQodGVz
dCwgdGVzLCB0ZXN0MSwgdGVzdDIpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdFN3aXp6bGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV9m
cmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIyNmYxODZjMWU3NjFjMDkwMTJlZjJmMmU5NzNlNDQ4ZTA0
ZDBkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV9m
cmFnLmZyYWcKQEAgLTAsMCArMSwyNCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHYgPSB2ZWMyKDEsNSk7CisgICAgLy8g
YXQgdGhlIGVuZCBvZiBuZXh0IHN0YXRlbWVudCwgdmFsdWVzIGluCisgICAgLy8gdi54ID0gMTIs
IHYueSA9IDEyCisgICAgdi54eSArPSB2Lnl4ICs9IHYueHk7CisgICAgLy8gdjEgYW5kIHYyLCBi
b3RoIGFyZSBpbml0aWFsaXplZCB3aXRoIDEyCisgICAgdmVjMiB2MSA9IHYsIHYyID0gdjsKKwor
ICAgIHYxLnh5ICs9IHYyLnl4ICs9ICsrKHYueHkpOyAgLy8gdjEgPSAzNywgdjIgPSAyNSBlYWNo
CisgICAgdjEueHkgKz0gdjIueXggKz0gKHYueHkpKys7ICAvLyB2MSA9IDc1LCB2MiA9IDM4IGVh
Y2gKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHYxLHYyKTsgIC8vIDc1LCA3NSwgMzgsIDM4Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfdmVydC52ZXJ0IGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmNl
M2IzZWUzMzIyMDk3YTNmNDM3OWE1YTJiYjJmNmQ2NTYzNjI2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydApAQCAtMCwwICsxLDE3IEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCithdHRyaWJ1
dGUgdmVjNCBndGZfTm9ybWFsOwordW5pZm9ybSBtYXQ0IGd0Zl9Ob3JtYWxNYXRyaXg7Cit2b2lk
IG1haW4odm9pZCkKK3sKKyAgIHZlYzQgdiA9IHZlYzQoMSwyLDMsNCk7CisgICB2ZWMzIHYzID0g
dmVjMyg1LDYsNyk7CisgICB2ZWM0IHY0ICA9IHZlYzQobm9ybWFsaXplKHYzLnl6eSkueHl6Lnp5
eCwgMS4wKTsKKyAgIGdsX1Bvc2l0aW9uID0gdjQgKyB2ZWM0KG5vcm1hbGl6ZShndGZfTm9ybWFs
TWF0cml4ICogZ3RmX05vcm1hbCkueHl6Lnp5eCwgdjQueSk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdFN3aXp6bGUyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDA3NGFhMmE3N2ViNTQyNjI0ZWI3
OTA1NmFmMjdjNDliNjc2MjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdFN3aXp6bGUyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDM5IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYsIGYxLCBm
MjsKKyAgICBmID0gZjEgPSBmMjsKKyAgICBmICs9IGYxICs9IGYyOworCisgICAgdmVjNCB2LCB2
MSwgdjI7CisgICAgdiA9IHYxID0gdjI7CisgICAgdiArPSB2MSArPSB2MjsKKyAgICB2Lnd4ID0g
djEuenggPSB2Mi55eDsKKyAgICB2Lnd4ICs9IHYxLnp4ICs9IHYyLnl4OworCisgICAgbWF0NCAg
bSwgbTEsIG0yOworICAgIG0gPSBtMSA9IG0yOworICAgIG0gKz0gbTEgKz0gbTI7CisgICAgbVsz
XS53eCA9IG0xWzJdLnp4ID0gbTJbMV0ueXg7CisgICAgbVszXS53eCArPSBtMVsyXS56eCArPSBt
MlsxXS55eDsKKworICAgIG1hdDQgIGFtWzRdLCBhbTFbNF0sIGFtMls0XTsKKyAgICBhbVszXSA9
IGFtMVsyXSA9IGFtMlsxXTsKKyAgICBhbVszXSArPSBhbTFbMl0gKz0gYW0yWzFdOworICAgIGFt
WzNdWzNdLnd4ID0gYW0xWzJdWzJdLnp4ID0gYW0yWzFdWzFdLnl4OworICAgIGFtWzNdWzNdLnd4
ICs9IGFtMVsyXVsyXS56eCArPSBhbTJbMV1bMV0ueXg7CisgICAgYW1bM11bM10ud3ggKz0gYW0x
WzJdWzJdLnp4ICs9ICsrKGFtMlsxXVsxXS55eCk7CisgICAgYW1bM11bM10ud3ggKz0gYW0xWzJd
WzJdLnp4ICs9IChhbTJbMV1bMV0ueXgpKys7CisKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGFt
WzNdWzNdLnosIG1bM10udywgdi53LCBmKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NvcnJlY3RTd2l6emxlMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenps
ZTJfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxOTdjYzBiYWMzZGE2Mzg2NTQ0NTM4ZjA3YTI3NWU3
MjhjMzdjYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenps
ZTJfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCB2MSA9IHZlYzQo
NSw2LDcsOCk7CisgICAgdmVjNCB2MiA9IHZlYzQoOSwxMCwgMTEsIDEyKTsKKyAgICB2ZWMzIHYz
ID0gKHYxICogdjIpLnl3eDsKKyAgICBmbG9hdCBmID0gKHYyICogdjEpLno7CisgICAgdmVjMyB2
NCA9IG5vcm1hbGl6ZSgodjEueXd4ICogdjMpLnh5eikueHl6OworICAgIGdsX1Bvc2l0aW9uID0g
dmVjNCh2NCwgZik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenps
ZTNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUzX2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZjI2NjVjMTNlYWI2ODZlNWM0NzA5MDExNzMzOGEyNzdiZGFiZDIzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUzX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDI0IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIG1haW4oKQoreworICAgIHZlYzQgdiA9IHZlYzQoNSw2LDcsOCk7CisgICAgLy8gdmFsdWUg
Y2hhbmdlcyBmb3IgbGhzCisgICAgLy8gODc2NSwgNjc1OCwgODU3LCA3NSBpLmUuIHJlcGxhY2Ug
di56eAorICAgIC8vIHZhbHVlIGNoYW5nZXMgZm9yIHJocworICAgIC8vIDg3NjUsIDY3NTgsIDg2
IGkuZSByZXBsYWNlIHdpdGggdi53eQorICAgIC8vIHJlcGxhY2Ugdi56IHdpdGggdi53CisgICAg
Ly8gcmVwbGFjZSB2Lnggd2l0aCB2LnkKKyAgICAvLyBhZGQgMS4wMDAwMDAgdG8gdi53IGFuZCB2
LnkKKyAgICB2Lnd6eXguenl3eC53enkuenkgPSAodi53enl4Lnp5d3gud3gpKys7CisgICAgZ2xf
RnJhZ0NvbG9yID0gdmVjNCh2KTsgIC8vIDYsNyw4LDkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29y
cmVjdFZlcnNpb25fVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEwNDA1YTI2NGMzZWQ2NzJh
MTM0MWFiYTUzZjdiNGM1ZWRjYmFjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NvcnJlY3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyN2ZXJzaW9uIDEwMAorI2lm
ZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLyogI3ZlcnNpb24g
Y2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgbnVtYmVyIDEwMC4gVGhlIG9ubHkgc3RhdGVtZW50cyBi
ZWZvcmUKKyAgICN2ZXJzaW9uIGNhbiBiZSBjb21tZW50IG9yIHdoaXRlIHNwYWNlcyAqLworCit2
b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvRHVwbGljYXRlVmVyc2lvbjFfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNl
ODFlNThiNWE4Y2ExOGQ2N2NjMWVjOTdjN2I0NDcyN2E5ZTc3NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyN2ZXJzaW9uIDEwMAorI3ZlcnNpb24gMTAwCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCisvKiBUd28gdmVyc2lvbiBzdGF0ZW1lbnRzIGFyZSBub3QgYWxs
b3dlZCBzaW5jZSBhbnkgI3ZlcnNpb24gbXVzdCBiZSB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2Us
IG5vbi1jb21tZW50ICovCisKK3ZvaWQgbWFpbigpCit7CisgICBnbF9GcmFnQ29sb3IgPSB2ZWM0
KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25QYXJhbV92ZXJ0LnZl
cnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9GdW5jdGlvblBhcmFtX3ZlcnQudmVydApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Yjc0OTQzYmRmNWZmOWQ3NDZkZTY4ZDZkZGJiMTgzNTI1NmNlYzhiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25QYXJhbV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwyMSBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworaW50IHkg
PSAxOworCitpbnQgZm9vKGludCwgaW50IGJbeV0pICAvLyBhcnJheSBzaXplIHNob3VsZCBiZSBj
b25zdGFudAoreworICAgIHJldHVybiAxOworfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBh
WzFdOworCisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEuMCk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9JbmNsdWRlX1ByZXByb2Nlc3Nvcl9EaXJlY3RpdmVfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYjdkNjc0YjhkOTllMmUzZDA2YWQ2NmZmMGVkMGQ1YzgxZDM2ZGE2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZl
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCisjaW5jbHVkZSAiR0wvYnVpbGQvTlZJRElBX1Rlc3RfSW5jbHVkZV9mcmFnLmZy
YWciCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Mb3dfTGV2ZWxfQXNzZW1ibHlfUmVzZXJ2
ZWRfV29yZHNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTG93X0xldmVsX0Fzc2VtYmx5X1Jl
c2VydmVkX1dvcmRzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDg2ODMwNDc3NmNjNzU2ZjYzY2Jm
NWIwZDgwNDkzMGZkNjNiYzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTG93
X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDI3IEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlmb3JtIGZsb2F0IE1J
TjsKK3VuaWZvcm0gZmxvYXQgUjA7Cit1bmlmb3JtIGZsb2F0IEZPR0M7Cit1bmlmb3JtIGZsb2F0
IENVQkU7Cit1bmlmb3JtIGZsb2F0IGY7Cit1bmlmb3JtIGZsb2F0IG87Cit1bmlmb3JtIGZsb2F0
IHA7Cit1bmlmb3JtIGZsb2F0IHc7Cit1bmlmb3JtIGZsb2F0IHg7Cit1bmlmb3JtIGZsb2F0IHk7
Cit1bmlmb3JtIGZsb2F0IHo7CisKK3ZvaWQgbWFpbigpCit7CisJZ2xfRnJhZ0NvbG9yID0gdmVj
NChmLCBvLCBwLCB3KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL01haW5fUGFyYW1l
dGVyc192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFtZXRlcnNfdmVydC52ZXJ0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwMGYzOWQ3NGIzMWUxMjQ2MzdhNzdmZjg3MzZlODg4ODUwZjExZmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFtZXRlcnNfdmVydC52ZXJ0
CkBAIC0wLDAgKzEsMTIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKK3ZvaWQgbWFpbih2ZWM0IHBvc2l0aW9uIDogUE9TSVRJT04pCit7CisJZ2xfUG9z
aXRpb24gPSBwb3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1BhcnNlVGVz
dDNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0M19mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTI0MjQ2N2EwODhjZjdlYjMxODE1NTU3NDEwMGZkYTgxY2IzYTBhYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1BhcnNlVGVzdDNfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MjAgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgY29uc3QgdmVjNCB2ID0gdmVjNChub3JtYWxpemUodmVjNCgxKSkpOyAgICAvLyBC
dWlsdGluIGZ1bmN0aW9ucyBhcmUgY29uc3RhbnQgZXhwcmVzc2lvbnMgaWYgYWxsIHRoZWlyIHBh
cmFtZXRlcnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zIC0gY29kZSBvaworICAgIGNvbnN0IHZl
YzQgdjEgPSB2ZWM0KGNsYW1wKDEuMCwgLjIwLCAzLjApKTsgLy8gQnVpbHRpbiBmdW5jdGlvbnMg
YXJlIGNvbnN0YW50IGV4cHJlc3Npb25zIGlmIGFsbCB0aGVpciBwYXJhbWV0ZXJzIGFyZSBjb25z
dGFudCBleHByZXNzaW9ucyAtIGNvZGUgb2sKKyAgICBmbG9hdCBmID0gMS4wOworICAgIGNvbnN0
IHZlYzQgdjIgPSB2ZWM0KGZsb2F0KHZlYzQoMSwyLDMsZikpKTsgLy8gZiBpcyBub3QgY29uc3Rh
bnQgLSBjb2RlIGZhaWxzIGFuZCB0ZXN0IGRvZXMgbm90IGNvbXBpbGUgKGV4cGVjdGVkKQorCisg
ICAgZ2xfRnJhZ0NvbG9yID0gdiArIHYxICsgdjI7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9QYXJzZVRlc3Q0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1BhcnNlVGVzdDRfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYwZWY2ZDMxYjEzYjJlOGM4YWUyMjkzYzJjNTE4YTA2NTVjYTE1
Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3Q0X2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit2b2lkIG1haW4oKQoreworICAgIGNvbnN0IHZlYzQgdiA9IHZlYzIoMi4wLCAzLjApOworICAg
IGdsX0ZyYWdDb2xvciA9IHY7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNz
aXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Blcm1p
c3NpdmVfQ29uc3RhbnRfQ29udmVyc2lvbnNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyNmQ2MmIy
MGRiM2VkZTk4NzY2ODQ3MTI2NjM4ZjdjZjVkMjU0ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9QZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lk
IG1haW4oKQoreworCWZsb2F0IGYgPSAyOyAvLyBTaG91bGQgYmUgMi4wCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNzaXZlX1NjYWxhcl9WZWN0b3JfRXhwcmVzc2lvbnNfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Np
b25zX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzY3YzdmZmIxNzUxYzNmYTlmMTRiZjliYmMxNzQ4
ZDRhYjQ4Yzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9T
Y2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworCXZlYzIg
diA9IHZlYzIoMS4wLCAyLjApOworCXYgKj0gMi4wOyAvLyBMZWdhbCBpbiBHTFNMLgorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvVGVybmFyeU9wX2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL1Rlcm5hcnlPcF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM1NmYwMDU5NjkyM2MxNjA0Nzcz
N2E4YmQ3YTVmZmMyMTA0ODJkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Rl
cm5hcnlPcF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBtYXQ0IG07CisgICAgdmVjNCB2
OworICAgIGJvb2wgYjsKKyAgICBnbF9GcmFnQ29sb3IgPSBiID8gdiA6IG07Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDhiYjBkNjA5ZTUxZjlhNzAwM2YyNzdmYTAwY2Q2NGNhOWUyZDE2MwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1RleHR1cmVfUmVjdGFuZ2xlX1NhbXBsZXJzX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc2FtcDsKKwordm9pZCBtYWluKCkKK3sKKwln
bF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNhbXAsIHZlYzIoMC4wLCAwLjApKTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MTBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYXJyYXkxMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ2NjgxY2YzNjVkYmFjZDgwMTYxODk3
NDJjMDljZTFlODdkYTZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5
MTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmW107CisgICAgZmxvYXQg
Zmx0ID0gZls1XTsKKyAgICBmbG9hdCBmWzNdOyAgLy8gaGlnaGVyIGFycmF5IGluZGV4IGhhcyBh
bHJlYWR5IGJlZW4gdXNlZAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMV9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTExX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
ZmQ3YWJkYWRmNmEzMDYwM2RmZTM5OWFkZGFmMzIzOThkZDRlMjdmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBm
bG9hdCBmW107CisgICAgaW50IGZbNF07ICAvLyBhcnJheSByZWRlY2xhcmVkIHdpdGggYSBkaWZm
ZXJlbnQgdHlwZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5MV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI0MDJiYTky
Yjc2ZTdjOWM3Y2Y0YzgxNjBiZWYwNjVmYjcwMjhmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2FycmF5MV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgYXJyYXlb
Ml1bMl07ICAvLyB0d28gZGltZW50aW9uYWwgYXJyYXlzIGFyZSBub3QgYWxsb3dlZAorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2FycmF5Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdkMGNiYzI0MjkzMGNlZGVmMWY5YWViOWU1
MTdlNjNlNGIzMGE0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5Ml9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCBpbnQgYXJyYXlbMl07ICAvLyBjYW5u
b3QgZGVjbGFyZSBjb25zdCBhcnJheXMKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Fy
cmF5M19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTNfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ4ZDcwNjFiZDFkOWFmYzY5Y2M1N2ZhNDA4NTA1NDZmN2IzNDVlY2IKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7Cisg
ICAgaW50IGFycmF5MVsyXSwgYXJyYXkyWzJdOworICAgIGJvb2wgYiA9IGFycmF5MSA9PSBhcnJh
eTI7IC8vIGVxdWFsaXR5IG9wZXJhdG9yIGRvZXMgbm90IHdvcmsgb24gYXJyYXlzIGJ1dCB3b3Jr
cyBvbiBhcnJheSBlbGVtZW50cworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk0
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5NF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTJhYmViODI2YzhiZTFkNjNlOTVlNGYxMzNmOWVhMzcyOGM1ZWVjNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2FycmF5NF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBm
bG9hdCBmWy0yXTsgLy8gY2Fubm90IGRlY2xhcmUgYXJyYXlzIHdpdGggbmVnYXRpdmUgc2l6ZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk1X2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2FycmF5NV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQxMzU2MjA4NGUyMjYwMzgzNTA4
NGE0MzQxZmZkMDBmYWZkY2RhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Fy
cmF5NV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSA9IDM7CisgICAgZmxvYXQg
ZltpXTsgLy8gYXJyYXlzIHNob3VsZCBiZSBkZWNsYXJlZCB3aXRoIGEgY29uc3RhbnQgc2l6ZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk2X2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2FycmF5Nl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDgzZjQ5YWY5ZWUyNTg2OGVlYjk1
ZDU3NWNiZWQxNGRlOTRjNmU5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Fy
cmF5Nl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCBmbG9hdCBpbmRleCA9IDMu
MDsKKyAgICBmbG9hdCBmW2luZGV4XTsgIC8vIGFycmF5cyBzaG91bGQgYmUgZGVjbGFyZWQgd2l0
aCBhbiBpbnRlZ2VyIGV4cHJlc3Npb24gbm90IGZsb2F0Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9hcnJheTdfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk3X2ZyYWcuZnJh
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NGRkNmU2ZDlhOTBkYzg0NzdkNDFhYjU1YjY5NTUyNDU3ZjIzNzU5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk3X2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1h
aW4oKQoreworICAgIGZsb2F0IGZbNV07CisgICAgZltdOyAgLy8gYXJyYXkgdXNlZCB3aXRob3V0
IGEgc2l6ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk4X2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2FycmF5OF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdkYjg4MTlkNmRi
ZTg3MWJjMmRjOTJmY2Y4ODE1MDMzMWE5ODcwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2FycmF5OF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmWzVdOwor
ICAgIGZsb2F0IGZbXTsgIC8vIHJlZGVjbGFyYXRpb24gb2YgYXJyYXkgYWxyZWFkeSBkZWNsYXJl
ZCB3aXRoIGEgc2l6ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXk5X2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc1ZWRj
NzVkYzA5MjAxOTk0MDI1NDYwZDdlZjVmNTc5Nzc1NTg0MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2FycmF5OV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIGFy
cmF5WzJdOworICAgIGFycmF5Lnh5OyAgLy8gYXJyYXlzIGNhbm5vdCBkaXJlY3RseSBiZSBzd2l6
emxlZCwgaG93ZXZlciwgYW4gZWxlbWVudCBvZiBhcnJheSBjYW4gYmUgc3dpenpsZWQKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTFfdmVydC52ZXJ0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYXR0cmlidXRlMV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIyZjFiZTZkNjdlOTM1ZGIw
NDllZWQ3MjY0YzU1ZjgxODA1MTIzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2F0dHJpYnV0ZTFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTQgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0dHJpYnV0ZSBpbnQgaTsgIC8vIGF0dHJp
YnV0ZXMgY2Fubm90IGJlIGludCBvciBib29sCisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRl
Ml92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGUyX3ZlcnQudmVydApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZTMzMDliNTMwM2QzMzJhNDYwZmI2YmJjYTVmOTU2ZWJjZWI4YmVkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlMl92ZXJ0LnZlcnQKQEAgLTAsMCArMSwx
NCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0
cmlidXRlIGZsb2F0IGZbMl07ICAvLyBhdHRyaWJ1dGVzIGNhbm5vdCBiZSBhcnJheXMKKwordm9p
ZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9hdHRyaWJ1dGVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmli
dXRlX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTQxOTdiZTM3NGNkMzM5OGM0Yjk4ODAyN2M4NTcy
MmEwYTJhNjg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGF0dHJpYnV0ZSBmbG9hdCBmb287ICAvLyBhdHRy
aWJ1dGVzIGNhbiBiZSBkZWNsYXJlZCBhdCBnbG9iYWwgc2NvcGUgaW4gdmVydGV4IHNoYWRlciBv
bmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGVfdmVydC52ZXJ0IGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2YxNjI5OWEy
MGU5NDQ0ZjZkNjkxZjE4NTE0MDhlMGJiYWNlMGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAg
IGF0dHJpYnV0ZSBmbG9hdCBmb287ICAvLyBhdHRyaWJ1dGVzIGNhbiBiZSBkZWNsYXJlZCBhdCBh
IGdsb2JhbCBzY29wZSBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9icmVha19m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9icmVha19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJm
ZGNiZDM2NzAwNjUxMzRkMTE5ZjgwZjdmZjcxODNmYTdkNzgwNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2JyZWFrX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGJyZWFr
OyAvLyBicmVhayBrZXl3b3JkIGFsbG93ZWQgb25seSBpbnNpZGUgdGhlIGxvb3BzCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmMTBmNDM2ZThiYzA3MjUx
NzJiODNmMTc2ZDQxYmY3ZWVlZjI3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAwMV90b18wMDguaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEt
LQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRl
c3Q6IGJ1aWxkXzAwMV90b18wMDguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3Rz
LmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9
IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5
PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAi
dGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RCdWlsdEluT3ZlcmlkZV9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEJ1aWx0SW5PdmVyaWRl
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0
YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdENvbW1hX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29tbWFfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0Q29uc3RGb2xkaW5nMV92
ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RDb25zdEZvbGRpbmcxX3ZlcnQudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29uc3RGb2xkaW5nMl92ZXJ0LnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIkNvcnJlY3RDb25zdHJ1Y3RfdmVydC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJDb3JyZWN0Q29uc3RydWN0X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiQ29ycmVjdEV4dGVuc2lvbjEwX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogIkNvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RFeHRlbnNpb240X1YxMDBfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RFeHRlbnNpb240X1YxMDBf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3Rh
dCI6IHRydWUKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAw
OV90b18wMTYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jM2Y2NjU4MjkwNDg0NDkyN2ViMDI4MzQzZmUxYTExMmJlYTkwMDVlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCkBAIC0wLDAg
KzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDA5X3RvXzAxNi5odG1sPC90aXRs
ZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9v
Z2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdo
dDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3Bl
bkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiQ29ycmVjdEZ1bGxfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RnVsbF92ZXJ0
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0Ijog
dHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RGdW5jT3ZlcmxvYWRf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RGdW5jT3ZlcmxvYWRf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3Rh
dCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0RnVuY092
ZXJsb2FkX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEZ1bmNPdmVybG9hZF92ZXJ0LnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNvcnJlY3RGdW5jdGlvbjFfdmVy
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RnVuY3Rpb24xX3ZlcnQudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiQ29ycmVjdE1vZHVsZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogIkNvcnJlY3RQYXJzZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJu
YW1lIjogIkNvcnJlY3RQYXJzZTFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
dHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJDb3JyZWN0UGFyc2UyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJD
b3JyZWN0UGFyc2UyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisg
ICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Q29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVm
YXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RQYXJzZTJfdmVydC50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRy
dWUKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18w
MjQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xODY5ZWNhNDhjNGE4YjQ0ZDY0OWUzYjU1NGVjOTI1NzIzMDBhMTM1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCkBAIC0wLDAgKzEsMTEx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBE
TyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
LS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDE3X3RvXzAyNC5odG1sPC90aXRsZT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZw
eDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNU
ZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29y
cmVjdFBhcnNlVGVzdDFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJl
Y3RQYXJzZVRlc3QxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisg
ICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29y
cmVjdFBhcnNlVGVzdF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVj
dFBhcnNlVGVzdF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAg
ICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJl
Y3RQcmVwcm9jZXNzNV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVj
dFByZXByb2Nlc3M1X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisg
ICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29y
cmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3Jy
ZWN0UHJlcHJvY2VzczhfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwK
KyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJD
b3JyZWN0UHJlcHJvY2VzczlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNv
cnJlY3RQcmVwcm9jZXNzOV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVl
LAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
IkNvcnJlY3RTd2l6emxlMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29y
cmVjdFN3aXp6bGUxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisg
ICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Q29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJk
ZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFN3aXp6bGUxX3Zl
cnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQi
OiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdFN3aXp6bGUyX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0U3dpenpsZTJfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRy
dWUKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18w
MzIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMzJmMGNlNzM0NWNkMzkwN2MzMzNlOTI4MWQ1OWExYzU1ZDg4ODZhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCkBAIC0wLDAgKzEsMTEx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBE
TyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
LS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDI1X3RvXzAzMi5odG1sPC90aXRsZT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZw
eDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNU
ZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Q29ycmVjdFN3aXp6bGUyX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJk
ZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFN3aXp6bGUyX3Zl
cnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQi
OiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdFN3aXp6bGUzX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0U3dpenpsZTNfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRy
dWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJEdXBsaWNhdGVWZXJzaW9uMV9WMTAw
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJEdXBsaWNhdGVWZXJzaW9uMV9W
MTAwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0VmVy
c2lvbl9WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0VmVy
c2lvbl9WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAg
ICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiRnVu
Y3Rpb25QYXJhbV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVs
dC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkZ1bmN0aW9uUGFyYW1fdmVydC50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlBhcnNlVGVzdDNfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogIlBhcnNlVGVzdDNfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogIlBhcnNlVGVzdDRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogIlBhcnNlVGVzdDRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogImFycmF5MTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFy
cmF5MTBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDMzX3RvXzA0MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUyYzcwYjczZjVhNzU5MDRhMTEyYmJlNzA0ZjVjNWI0ODU4NDJmMTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwK
QEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wMzNfdG9fMDQwLmh0
bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZw
eDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmlj
dCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJhcnJheTExX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJh
cnJheTExX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheTFf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5MV9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXkyX2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJhcnJheTJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogImFycmF5M19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXJy
YXkzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheTRfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5NF9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk1X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJhcnJheTVfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogImFycmF5Nl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXJyYXk2
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheTdfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5N19mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQor
ICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxNmVkYjE5
MDAyMmRkMzViNWZkYmIzNTc3Yzc2ZmI3YTlkMTUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQu
IC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZv
cm1hbmNlIHRlc3Q6IGJ1aWxkXzA0MV90b18wNDguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIg
Lz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29n
bGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAw
IiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZh
cz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5y
dW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5OF9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXJyYXk4X2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheTlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImFycmF5OV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiYXR0cmlidXRlMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
ZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImF0dHJpYnV0ZTFfdmVydC50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImF0dHJpYnV0ZTJfdmVydC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJhdHRyaWJ1dGUyX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJhdHRyaWJ1dGVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogImF0dHJpYnV0ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiYXR0cmlidXRlX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZh
dWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXR0cmlidXRlX3ZlcnQudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJicmVha19mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiYnJlYWtfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogImNvbW1hMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbW1hMV92ZXJ0LnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9f
MDU2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGIwOWJlOTcwZTc4YmJiNDUwOTM1MGY5Y2M0M2Y4NmM3NjhlYmYyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbApAQCAtMCwwICsxLDEx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4g
RE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzA0OV90b18wNTYuaHRtbDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVT
VGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNv
bW1hMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29tbWEyX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJjb21tYTJfdmVydC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJjb21tYTJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogImNvbW1hM192ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVm
YXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbW1hM192ZXJ0LnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29tbWVudF9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiY29tbWVudF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiY29uZGl0aW9uYWwxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJjb25kaXRpb25hbDFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImNvbmRpdGlvbmFsMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29u
ZGl0aW9uYWwyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJjb25k
aXRpb25hbDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbmRpdGlvbmFs
M19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29uc3RGdW5jX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdEZ1bmNfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
ZTQ4YjdhMTc2MGYyNDJkMmVlMDlhOGY5NDJmYjhjNDMzYjFmMmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5P
VCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xT
TCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wNTdfdG9fMDY0Lmh0bWw8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmds
LXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lk
dGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+
PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RS
dW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJjb25zdHJ1
Y3RvcjFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbnN0cnVjdG9yMV9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29uc3RydWN0b3IyX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdHJ1Y3RvcjJfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnN0cnVjdG9yM19WMTAwX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdHJ1Y3RvcjNfVjEwMF9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29udGludWVfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbnRpbnVlX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJkYXRhVHlwZTEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJkYXRhVHlwZTExX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJk
YXRhVHlwZTExX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRh
VHlwZTEyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTEyX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTEzX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTEzX2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAg
ICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjVi
MDIxN2RmNTc4YThiNzVlZjZkZDQwZmIxZDU0MWI4OGZhY2JhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8
IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1Qg
RURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wg
Y29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDY1X3RvXzA3Mi5odG1sPC90aXRsZT4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwv
Y2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVu
bmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUx
OV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxOV9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUxX2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTFfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBlMl9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiZGF0YVR5cGUyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJkYXRhVHlwZTNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImRh
dGFUeXBlM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5
cGU0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTRfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBlNV9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGU1X2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTZfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogImRhdGFUeXBlNl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZGF0YVR5cGU3X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJk
YXRhVHlwZTdfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDczX3RvXzA4MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4
MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmEwOTY0M2YxNjc3NzYxZDM2NjE2OWU1M2QxNjM1NmQzNGFlMzU2
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0
bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMg
YXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wNzNfdG9fMDgw
Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNh
bnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDog
MTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0
cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJkYXRhVHlwZThfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogImRhdGFUeXBlOF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
ZGF0YVR5cGU5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRhVHlwZTlf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRvd2hpbGVfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImRvd2hpbGVfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImR2ZWMyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJkdmVjMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAiZHZlYzNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImR2ZWMzX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkdmVjNF9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiZHZlYzRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiZXh0ZW5zaW9uMl9WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJleHRlbnNpb24zX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImV4dGVuc2lvbjNfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wODFfdG9fMDg4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EwNmMyM2EzOGUzNGIxNGEyN2Qw
ZGYxMjg2M2I3YTRmZDIzNmRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA4MV90b18wODguaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6
IGJ1aWxkXzA4MV90b18wODguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNz
cyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUw
MCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5Pgor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVz
dHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjVfVjEwMF9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uNV9WMTAwX2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAg
ICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3Jh
bSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIs
CisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb242X1YxMDBfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjZfVjEwMF9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uN19WMTAwX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJleHRlbnNpb243X1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uOF9WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb245X1YxMDBfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjlfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZmxvYXQyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJmbG9hdDJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImZsb2F0M19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZmxvYXQzX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmbG9hdDRfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImZsb2F0NF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9
KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkyNTk0YTYwNDU0NGY2
Yjc2YTQ1YTRlMjMyMjU2NDZkMzczZDU3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgor
PCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNl
IHRlc3Q6IGJ1aWxkXzA4OV90b18wOTYuaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRl
c3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWln
aHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9i
b2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oewor
ICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImZyYWdtZW50T25seTFfdmVy
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHkxX3ZlcnQudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHkyX3ZlcnQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAiZnJhZ21lbnRPbmx5Ml92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiZnJhZ21lbnRPbmx5M192ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZyYWdtZW50T25seTNf
dmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImZyYWdtZW50T25s
eTRfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHk0X3ZlcnQudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHlfdmVydC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJmcmFnbWVudE9ubHlfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogImZ1bmN0aW9uMTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1
bmN0aW9uMTBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0
aW9uMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb24xX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlvbjJfVjEwMF9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb24yX1YxMDBfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEw
NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI3Y2U1NDBjOTE3MTQ4M2IwZjQ2MDEwNWY3OGZmYzFmZmQyODgzZWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKQEAgLTAsMCArMSwxMTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERP
IE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCist
LT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
R0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wOTdfdG9fMTA0Lmh0bWw8L3RpdGxlPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0
aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4
OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rl
c3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5j
dGlvbjNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uM19mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVuY3Rpb240X2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmdW5jdGlvbjRfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0aW9uNl9mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiZnVuY3Rpb242X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJmdW5jdGlvbjdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
ImZ1bmN0aW9uN19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVu
Y3Rpb244X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmdW5jdGlvbjhfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0aW9uOV9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb245X2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJodmVjMl9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiaHZlYzJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImh2ZWMzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJodmVjM19mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVf
dG9fMTEyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjg0ZmE5OGY4NmJhYmE3MDQyZDEzNTQwZjBjNGZhOTg1YjAxZDg5ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbApAQCAtMCwwICsx
LDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5X
ZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEwNV90b18xMTIuaHRtbDwvdGl0bGU+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2ds
ZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFt
cGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6
IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5H
TEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
Imh2ZWM0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJodmVjNF9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaWRlbnRpZmllcjFfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImlkZW50aWZpZXIxX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJpZGVudGlmaWVyMl9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiaWRlbnRpZmllcjJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogImlkZW50aWZpZXIzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJpZGVudGlmaWVyM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiaWYxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJpZjFfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImlmMl9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiaWYyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJpbmNyZW1lbnQxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJpbmNyZW1lbnQxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJp
bmNyZW1lbnQyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJpbmNyZW1lbnQy
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzExM190b18xMjAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YzE4MTAwMDgzNjYyNmE3ZTE5ZGQ3MWJmOTE3MjUxZTFmZDY3MThiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sCkBAIC0w
LDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2Vu
ZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTEzX3RvXzEyMC5odG1sPC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhl
aWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOwor
T3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiaW5jcmVtZW50M19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5j
cmVtZW50M19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaW5jcmVt
ZW50NF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5jcmVtZW50NF9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaW5jcmVtZW50Nl9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5jcmVtZW50Nl9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibWFpbjFfdmVydC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJtYWluMV92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibWFp
bjJfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJtYWluMl92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibWFpbjNfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJtYWluM192
ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAibWF0cml4X1YxMDBfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIm1hdHJpeF9WMTAwX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAibm9ybWFsX3ZlcnQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAibm9ybWFsX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90
b18xMjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjQ1NDY1ZTI3MmZhMWNiZTNiY2VlZTg1OWE0ZDg4NmQ5
MGM3NjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEy
OC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxl
IGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTIxX3Rv
XzEyOC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lk
dGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyMTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJu
YW1lIjogInBhcnNlcjEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICJwYXJzZXIxX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZh
dWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyMV92ZXJ0LnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyM19mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAicGFyc2VyM19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAicGFyc2VyNF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
cGFyc2VyNF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2Vy
NV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyNV9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFyc2VyNl9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyNl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAicGFyc2VyN19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAicGFyc2VyN19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicGFy
c2VyOF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicGFyc2VyOF9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9f
MTM2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWFiZTQwYzM1MThkMmMyM2U0YzJkYjU2ZmM5ZjU5NjNkOTAwYTFhOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbApAQCAtMCwwICsxLDEx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4g
RE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
Ky0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEyOV90b18xMzYuaHRtbDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2
cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVT
VGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBh
cnNlcjlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjlfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3MwX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzMF9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicHJlcHJvY2VzczEwX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzMTBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3MxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJwcmVwcm9jZXNzMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAicHJlcHJvY2VzczJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
InByZXByb2Nlc3MyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJw
cmVwcm9jZXNzM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2Vz
czNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29t
cHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3M0
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzNF9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicHJlcHJvY2VzczZfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInByZXByb2Nlc3M2X2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGQyMzM4
MDlmYWVhOTY0MGJiMGRhZjg2YzMxNTViOGEyNjQyZGRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURP
Q1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJ
VC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29u
Zm9ybWFuY2UgdGVzdDogYnVpbGRfMTM3X3RvXzE0NC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
IiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
b2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1
MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2Fu
dmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVy
LnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicHJlcHJvY2Vzczdf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInByZXByb2Nlc3M3X2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzY29waW5nMV9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAic2NvcGluZzFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogInNjb3BpbmcyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJzY29waW5nMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxz
ZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAic3RydWN0MTBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0cnVjdDEw
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3QxMV9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0MTFfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN0cnVjdDFfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogInN0cnVjdDFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogInN0cnVjdDJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0
cnVjdDJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN0cnVjdDNf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0cnVjdDNfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4
OTIwZGQ4MjQ3ZWM0MDU5ODU0MGQ4YjhmNDViYjY3OTYzZTdhN2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5P
VCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xT
TCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNDVfdG9fMTUyLmh0bWw8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmds
LXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lk
dGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+
PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RS
dW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q0
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q0X2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q1X2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q1X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJzdHJ1Y3Q2X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJzdHJ1Y3Q2X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1
Y3Q3X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q3X2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q4X2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3Q4X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJzdHJ1Y3Q5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJzdHJ1Y3Q5X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJz
d2l6emxlMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3dpenpsZTFfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN3aXp6bGUyX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzd2l6emxlMl9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQor
ICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI5NTBlM2Nm
YWU4MmNkNzc2YTdmOWZjMzhiZjA5YzY3NzdlZGI1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQu
IC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZv
cm1hbmNlIHRlc3Q6IGJ1aWxkXzE1M190b18xNjAuaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIg
Lz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29n
bGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAw
IiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZh
cz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5y
dW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInN3aXp6bGUzX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzd2l6emxlM19mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidHlwZWNhc3RfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogInR5cGVjYXN0X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJ1bmlmb3JtMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
dW5pZm9ybTFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInVuaWZv
cm1fZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInVuaWZvcm1fZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInZhcnlpbmcxX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJ2YXJ5aW5nMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAidmFyeWluZzJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJu
YW1lIjogInZhcnlpbmcyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJ2YXJ5aW5nM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAidmFyeWluZzNf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInZhcnlpbmdfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInZhcnlpbmdfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0K
KyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljNjYxNzFi
ZmNlZGZkMDMyNmZkMWI5ZTA4Mjg2MGQ5ZjhiOTdhZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElU
LiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25m
b3JtYW5jZSB0ZXN0OiBidWlsZF8xNjFfdG9fMTY4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
IC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9v
Z2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUw
MCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52
YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIu
cnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ2ZWN0b3JfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInZlY3Rvcl9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmVyc2lvbjJfVjEwMF9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAidmVyc2lvbjJfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAidmVyc2lvbjNfVjEwMF9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAidmVyc2lvbjNfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAidmVydGV4T25seTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogInZlcnRleE9ubHkyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJ2ZXJ0ZXhPbmx5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2ZXJ0ZXhP
bmx5X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJ2ZXJ0ZXhf
dmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJ2ZXJ0ZXhfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogIndoaWxlMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAid2hpbGUxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAg
ICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ3aGls
ZTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIndoaWxlMl9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWJkM2M2M2M0NzNiMGUwMmU3ODVmZWU2ZDkzNjg0MjdhMTY3ZWYyNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbApAQCAtMCwwICsxLDExMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8g
Tk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0t
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBH
TFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzE2OV90b18xNzYuaHRtbDwvdGl0bGU+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRp
bHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3
aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7
Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVz
dFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIndoaWxl
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ3aGlsZV9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiVGVybmFyeU9wX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJUZXJuYXJ5T3BfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogImRlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJDR19EYXRhX1R5cGVzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJD
R19EYXRhX1R5cGVzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ0dfU3RhbmRhcmRf
TGlicmFyeV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ0dfU3RhbmRhcmRf
TGlicmFyeV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkluY2x1ZGVfUHJlcHJvY2Vz
c29yX0RpcmVjdGl2ZV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiSW5jbHVk
ZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3Rh
dCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
TG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJMb3dfTGV2ZWxfQXNzZW1ibHlfUmVzZXJ2ZWRfV29yZHNfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJNYWluX1BhcmFtZXRlcnNfdmVydC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJNYWluX1BhcmFtZXRlcnNfdmVydC50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogImRlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJQZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJQZXJtaXNzaXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190
b18xNzguaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZGMyYjM4YmNjMjY0ZWNiZmVkZjE3ZGE0MjQ2NzkwNzkzOWE4NzU1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCkBAIC0wLDAgKzEs
NTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQu
IERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNzdfdG9fMTc4Lmh0bWw8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVz
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAx
NnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xF
U1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiUGVybWlzc2l2ZV9T
Y2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJQZXJtaXNzaXZlX1NjYWxhcl9WZWN0b3JfRXhwcmVzc2lvbnNfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAiVGV4dHVyZV9SZWN0YW5nbGVfU2FtcGxlcnNfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogIlRleHR1cmVfUmVjdGFuZ2xlX1NhbXBsZXJzX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMV92ZXJ0LnZl
cnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NDczZTQ2
ZTkyZmIzMTNlZTE1MzU3YzZjMmUwMGU1ZWEyYTY5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAg
aW50IGksIGosIGs7CisgICAgZmxvYXQgZjsKKyAgICBpID0gaiwgaywgZjsKKyAgICBpID0gKGos
IGssIGYpOyAgIC8vIGZsb2F0IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBpbnQKKyAgICBnbF9Qb3Np
dGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTJfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzA2
MWY3YWU3MmQwOWQ3ODU4ZDc2Y2M0Yjc5YzgwMTAyYmM2OGJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29tbWEyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGNvbnN0
IHZlYzQgdiA9ICh2ZWM0KDEsMiwzLDQpLCB2ZWM0KDUsNiw3LDgpLCAxLjIpOyAvLyByaWdodCBt
b3N0IHZhbHVlIG9mIGNvbW1hIG9wZXJhdG9yIHNob3VsIGJlIGEgdmVjNAorICAgIGNvbnN0IHZl
YzQgdjEgPSAodmVjMygwLjIsIDIuMCksIHZlYzQoMSwyLDMsNCksIHZlYzQoNSw2LDcsOCkpOwor
ICAgIGNvbnN0IHZlYzQgdjIgPSAodmVjNCgxLDIsMyw0KSwgdmVjMigyLjEsIDIpLCAgdmVjNCg1
LDYsNyw4KSk7CisgICAgZ2xfRnJhZ0NvbG9yID0gdiArIHYxICsgdjI7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9jb21tYTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEy
X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzMyMzY4OWY2OGYwZmEwZWUxMzA0NjJjZjc4Nzg4Yjlh
OWNiNjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX3ZlcnQudmVy
dApAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGludCBpLCBqLCBrOworICAgIGZsb2F0IGY7
CisgICAgaSA9IGosIGssIGY7CisgICAgaSA9IChqID0gaywgZiA9IDEuMCk7ICAgLy8gZmxvYXQg
Y2Fubm90IGJlIGFzc2lnbmVkIHRvIGludAorICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxKTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hM192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9jb21tYTNfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZGNiOThiMjFkOTI4YjQyNWY0YWE1
YmJkZmNjMTEyNGUxZjJmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21t
YTNfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGksIGosIGs7Cisg
ICAgZmxvYXQgZjsKKyAgICBpID0gaiwgaywgZjsKKyAgICBpID0gaiA9IGssIGYgPSAxLjA7Cisg
ICAgaSA9IGosIGsgPSAoMywgZik7ICAgIC8vIGZsb2F0IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBp
bnQKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9jb21tZW50X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1lbnRfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhkMGEzODI4NzQwYjU5MGM2YmZmMmQ0ZjNhMGIzNjBmMDEwZmE5MmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tZW50X2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1h
aW4oKQoreworICAgIC8qKioqKiogIC8vIGNvbW1lbnQgbm90IGNsb3NlZAorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2NvbmRpdGlvbmFsMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI4MzBmNGZjYzgzMmE0ZGVlNzBh
YzQ2ZmIwNzljMjJjZjA5MDA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Nv
bmRpdGlvbmFsMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmMSxmMjsKKyAg
ICBpbnQgaTsKKyAgICBmbG9hdCBmMyA9IGkgPyBmMSA6IGYyOyAgLy8gZXhwcmVzc2lvbiBtdXN0
IGJlIGJvb2xlYW4gYW5kIG5vdCBpbnQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Nv
bmRpdGlvbmFsMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDJfZnJhZy5m
cmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ1MWE4YmQ5ZWIwNDA5ZjYzMmVjNzZjYzQ3NmM1NDAwMDRiNmUyZWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDJfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjEsZjI7CisgICAgaW50IGk7CisgICAgYm9vbCBi
OworICAgIGZsb2F0IGYzID0gYiA/IGkgOiBmMjsgLy8gc2Vjb25kIGFuZCB0aGlyZCBleHByZXNz
aW9uIHNob3VsZCBvZiB0aGUgdHlwZSBmbG9hdAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29uZGl0aW9uYWwzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbmRpdGlvbmFsM19m
cmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjViMWI0NmJiYjBjOTI0YmQ2YjY5MjhjNzNhOTcwYjAzNzY3
ZGY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbmRpdGlvbmFsM19mcmFn
LmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNl
bmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmMSxmMjsKKyAgICBib29sIGI7CisgICAg
aW50IGkgPSBiID8gZjEgOiBmMjsgLy8gc2Vjb25kIGFuZCB0aGlyZCBleHByZXNzaW9uIHR5cGUg
ZG9lcyBub3QgbWF0Y2ggdGhlIGx2YWx1ZSB0eXBlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9jb25zdEZ1bmNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RGdW5jX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZTNhMmE2NTI0MWUyMDBhNTQ3ZmI0MDA0MTUyMjg1NWQwN2I3YWVi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RGdW5jX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDIyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
ZWMyIGZ1bmMoKQoreworICAgIHZlYzIgdjsKKyAgICByZXR1cm4gdjsKK30KKwordm9pZCBtYWlu
KCkKK3sKKyAgICBjb25zdCB2ZWMzIHYgPSB2ZWMzKDEuMCwgZnVuYygpKTsgLy8gdXNlciBkZWZp
bmVkIGZ1bmN0aW9ucyBkbyBub3QgcmV0dXJuIGNvbnN0IHZhbHVlCisgICAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNCh2LCB2KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9y
MV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjFfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZmNzNiY2RlYWUxZDMxNmE3OWFjYWIwZmZiZDdkOTFkNjM3NWJiZDcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjFfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFp
bigpCit7CisgICAgdmVjNCB2ID0gdmVjNCgxLDIsMyk7IC8vIGluc3VmZmljaWVudCBkYXRhIHBy
b3ZpZGVkIGZvciBjb25zdHJ1Y3RvciwgNCB2YWx1ZXMgYXJlIHJlcXVpcmVkCit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjdiZGJhNTY0MzhlNGE0OWUw
MzMzOTI4ZWFlYWRlZjE3MWJmMmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
Y29uc3RydWN0b3IyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzMgdjsKKyAgICB2
ZWM0IHYxID0gdmVjNCh2KTsgLy8gaW5zdWZmaWNpZW50IGRhdGEgc3BlY2lmaWVkIGZvciBjb25z
dHJ1Y3Rpb24KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9yM19WMTAw
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9yM19WMTAwX2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MzEyNTg3NzEwODJhZjBjYjQ2ZjJlNDkxMGQyOGYwNjc0NDY2ZWNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IzX1YxMDBfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgdmVjMyB2OworICAgIHZlYzQgdjEgPSB2ZWM0KHYsdix2KTsg
Ly8gdG9vIG1hbnkgYXJndW1lbnRzIGluIHRoZSBjb25zdHJ1Y3RvcgorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29udGludWVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29udGlu
dWVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkZjgzZTJhYmViMzYxMzJiMDk0ODAwNmMzNDhlNjlh
OTMyMWEzMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb250aW51ZV9mcmFn
LmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNl
bmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb250aW51ZTsgLy8gY29udGludWUga2V5d29yZCBh
bGxvd2VkIG9ubHkgaW5zaWRlIHRoZSBsb29wcworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZGF0YVR5cGUxMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEwX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NDU2ZDY0MTc4NzAyOTQ4ODdhZTU4MDg4NmUzMmJjMjQ1NDU0MTJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMF9mcmFnLmZyYWcK
QEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmOworICAgIGZsb2F0IGY7ICAvLyByZWRlY2xhcmF0
aW9uIG9mIGEgdmFyaWFibGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBl
MTFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMV9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmZlY2JiZjhmNWY4OWZlNjBhNWI0MmU4OTliOTcxZDVmNWYzODFhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgaW50IGkgPSAwODsgIC8vIGludmFsaWQgb2N0YWwgbnVtYmVyCit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlMTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZjhiMThhZjAwZGVmMDFiOTc0MGJj
M2E4ZDRmZDNmYTkyMjdjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTEyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGludCBpID0gMHhhOGc7ICAvLyBp
bnZhbGlkIGhleGFkZWNpbWFsIG51bWJlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZGF0YVR5cGUxM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEzX2ZyYWcuZnJh
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YTIxZTZmNjMzMjI5ZDllOTRiMGYyNzIyOTJhMTRlZGFkNDUxNDZmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxM19mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICBpbnQgaSA9IDE7CisgICAgZmxvYXQgZiA9IDEuMjsKKyAgICBmbG9h
dCByZXN1bHQgPSBmICogaTsgLy8gYXV0byBwcm9tb3Rpb24gbm93IGFsbG93ZWQKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTlfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZGF0YVR5cGUxOV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI5OGM3NTMwODc3M2JjMGU5MWIx
ZjgxNDE2NzFiNWJiZmIwNGYzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlMTlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3VuaWZvcm0gc2FtcGxlcjJEIHM7Cit2b2lkIG1haW4oKQorewor
ICAgIGludCBpID0gaW50KHMpOyAvLyBjb252ZXJzaW9uIG5vdCBhbGxvd2VkCit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZGF0YVR5cGUxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjNiYWEyYjE5M2Y0MjJkZmI2ZjljNmQ1
NTI0ZTRkNGUxODRjM2FjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5
cGUxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZvaWQgdjsgLy8gdmFyaWFibGUgY2Fu
bm90IGJlIGRlY2xhcmVkIG9mIHRoZSB0eXBlIHZvaWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2RhdGFUeXBlMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTJfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRlYzJhYTA1NzQ3ZjUxN2M1ZWEyN2VhM2Q3MzUyZGYxOTA3YzRj
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTJfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3VuaWZvcm0gc2FtcGxlcjJEIHNhbXAxOwordW5pZm9ybSBzYW1wbGVyMkQgc2FtcDIgPSBzYW1w
MTsgLy8gdW5pZm9ybXMgYXJlIHJlYWQgb25seQorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI2YmE4ODgxNDFmNjZkNmE3ODdhYTI5
N2Y4MTc1ZTgyYjBkNzkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFU
eXBlM19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordW5pZm9ybSBpbnQgaSA9IDE7IC8vIHVuaWZvcm1zIGFyZSByZWFkIG9u
bHkKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFU
eXBlNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTRfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhiYWVhMGE2MjRlZjBkZTk3ZmVmNzZmYWE2NmZiMjA0MDRjMTcxOTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTRfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgaW50IGkgPSAxLjA7ICAvLyBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9uIGRvZXMg
bm90IHRha2UgcGxhY2UsIGZsb2F0IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gaW50Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZGF0YVR5cGU1X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTFmZjc1MjA5OWNlM2U5NWM5Mjdj
ZmI1NjBhYzkwOGYxZjI3YjBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0
YVR5cGU1X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYgPSAxOyAvLyBpbnQg
Y2Fubm90IGJlIGNvbnZlcnRlZCB0byBmbG9hdCwgdXNlIGNvbnN0cnVjdG9yIHRvIGRvIHRoZSBj
b252ZXJzaW9uIGV4cGxpY2l0bHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFU
eXBlNl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTZfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU2ZmY0MjEzZTg4NDEzNmIxYTg3N2U5YjYzMGYyZmMwMWE5OTAyY2UKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTZfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgY29uc3QgZmxvYXQgZjsgIC8vIGNvbnN0YW50cyBtdXN0IGJlIGluaXRpYWxpemVk
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTdfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTMxYTNjYmExYmVi
NmJjZGJkZGUxMjcxZDVlZGY3ZWViYTUyYTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlmb3JtIGZsb2F0IGY7Cit2b2lkIG1haW4oKQor
eworICAgIGYgPSAxLjA7ICAvLyB1bmlmb3JtcyBhcmUgcmVhZCBvbmx5Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZThfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0
YVR5cGU4X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGRlY2M0YTE3NTRhMzQyZTVmOTIxZDZhNmIx
NWRmZDg0NDU0ODA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU4
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2YXJ5aW5nIGZsb2F0IGY7Cit2b2lkIG1haW4oKQoreworICAgIGYgPSAxLjA7
ICAvLyB2YXJ5aW5ncyBjYW5ub3QgYmUgd3JpdHRlbiB0byBpbiBhIGZyYWdtZW50IHNoYWRlciwg
dGhleSBjYW4gYmUgd3JpdHRlbiB0byBpbiBhIHZlcnRleCBzaGFkZXIKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2RhdGFUeXBlOV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMjlkM2Q0NDU2YmMxODY2YjMyNWM0MTA1OWVk
NmU5NDgxNWVkYTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTlf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZhcnlpbmcgZmxvYXQgZjsKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZmx0
ID0gMS4wOworICAgIGZsdCsrOworICAgIGYrKzsgIC8vIHZhcnlpbmdzIGluIGEgZnJhZ21lbnQg
c2hhZGVyIGFyZSByZWFkIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RlZmF1
bHQuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RlZmF1bHQuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjdiMGUw
NWExZjdiYTAxYjA2NDUwNjk1NTZkZTE0MGUxNDdmODdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZGVmYXVsdC5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbiAodm9pZCkKK3sKKwlnbF9GcmFnQ29s
b3IgPSB2ZWM0KDEuMCwgMS4wLCAxLjAsIDEuMCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9kZWZhdWx0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LnZlcnQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGM3MzZhYmQ1ZjI0MzZhMzE2Yzc2MThkYjI2Zjg1Mjg3ZjRhZDM5MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2RlZmF1bHQudmVydApAQCAtMCwwICsxLDE1IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCithdHRyaWJ1dGUgdmVj
NCBndGZfVmVydGV4OwordW5pZm9ybSBtYXQ0IGd0Zl9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4
Owordm9pZCBtYWluICh2b2lkKQoreworCWdsX1Bvc2l0aW9uID0gZ3RmX01vZGVsVmlld1Byb2pl
Y3Rpb25NYXRyaXggKiBndGZfVmVydGV4OworCWdsX1BvaW50U2l6ZSA9IDEuMDsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2Rvd2hpbGVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZG93aGlsZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE0M2RjNGMzNmNiZWQ3ZDE3MzM2ZTkzMjUz
Yzk3OTEyYzlhZTgzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rvd2hpbGVf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjsKKyAgICBkbyB7CisgICAgfSB3
aGlsZShmKTsgIC8vIGNvbmRpdGlvbiBzaG91bGQgYmUgYm9vbGVhbgorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZHZlYzJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzJfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk0NTFiNTVkNmZlMDU1OGQyZTk5ZmRlMTA0N2VjMjIyMWY3YmU3
ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjMl9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICBkdmVjMiBkOyAvLyBkdmVjMiBpcyBub3QgYSB2YWxpZCBkYXRhdHlw
ZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2R2ZWMzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMzX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iN2Y3ODE3MTY4OTEwNDAyZTkwMGRiNWE1YTc1NzgwYjgwNGY1NTJmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7Cisg
ICAgZHZlYzMgZDsgLy8gZHZlYzMgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUsIHJlc2VydmVkIGZv
ciBmdXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjNF9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjNF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZiZWI2YTVh
N2VlNGNhNDE5NmM1Yjk3MDQyODQwMWVhZWVmZDNiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2R2ZWM0X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGR2ZWM0IGQ7IC8v
IGR2ZWM0IGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uMl9WMTAwX2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg1
YTdlMzUzNTQ0MGEzNzJmNTdlZWJiMjJhMmIzNDI5MjcyYTEyNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiBhbGwg
OiByZXF1aXJlIC8vIGNhbm5vdCB1c2UgcmVxdWlyZSBvciBlbmFibGUgd2l0aCBhbGwKKyNleHRl
bnNpb24gYWxsIDogZW5hYmxlIC8vIGNhbm5vdCB1c2UgcmVxdWlyZSBvciBlbmFibGUgd2l0aCBh
bGwKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVu
c2lvbjNfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb24zX1YxMDBfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAwMDVjMTRlZGZiZDUxMDZmYzE5ZWFmYjJkMjNlZmUxODUwOWRi
NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb24zX1YxMDBfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKKyNleHRlbnNpb24gZm9vIDogcmVxdWlyZSAgLy8gZXJyb3IgZXh0ZW5zaW9uIG5vdCBz
dXBwb3J0ZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2V4dGVuc2lvbjVfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb241X1Yx
MDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxOThkNmZmZTNjYmQzYzQ0NTk1NDZiZmFlM2Y3NzAz
NWViOTMxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb241X1Yx
MDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKKyNleHRlbnNpb24gYWxsIDogZGRpc2FibGVlICAvLyBlcnJvciwgYmVoYXZp
b3IgaXMgbm90IHN1cHBvcnRlZAorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNl9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4
dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzM2ZhNGZlYjk2NGNiMDY0NDNk
MWMwODFlNTk0NzRmZGRmMDIxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4
dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiAgIC8vIGVycm9yIG5hbWUgYW5kIGJl
aGF2aW9yIG5vdCBzcGVjaWZpZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2V4dGVuc2lvbjdfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb243X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNjM2ZDUxMjVmZDU5MTQwMmU4
OGJkMjE4YTk4YmMyOWZjNjRmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb243X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vICAvLyAiOiIgbWlzc2luZyBh
ZnRlciBleHRlbnNpb24gbmFtZQorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvZXh0ZW5zaW9uOF9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4
dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MxMjQzMjU2ODljMjkwNGVhZTcz
Zjg0OTRkNGE0YzhiNTJmNDU0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4
dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiBmb28gOiAvLyAgYmVoYXZpb3Igbm90
IHNwZWNpZmllZAorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZXh0ZW5zaW9uOV9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjlf
VjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ3ZDY5ZGNhZjY4ZWYwMGM1MjMzN2ZlNTY0MjZi
NjM0ODYyNzY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjlf
VjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgorI2V4dGVuc2lvbiBmb28gIGJlaGF2aW9yIC8vICI6IiBtaXNzaW5nIGFm
dGVyIGV4dGVuc2lvbiBuYW1lCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mbG9hdDJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZmxvYXQyX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yM2EzMWNhOTkwNDEwNjM2NDJhNjNkYmY5ZWQyNGQ5OWJhMmY5ZTEz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZmxvYXQyX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lk
IG1haW4oKQoreworICAgIGZsb2F0MiBmOyAvLyBmbG9hdDIgaXMgbm90IGEgdmFsaWQgZGF0YXR5
cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0M19mcmFnLmZyYWcgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9mbG9hdDNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3M2QzZDQ0NTRhYTA3NDBm
NTEwOTZmMTQ4M2I1NjQ0YjI0MjYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9mbG9hdDNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQzIGY7IC8vIGZsb2F0
MyBpcyBub3QgYSB2YWxpZCBkYXRhdHlwZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZmxvYXQ0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0NF9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDM4MTM3M2FkOGUzMTYwYTM3NmY0YWVhNWQ1NjBhYmJmMjVjNzE3MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0NF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sK
KyAgICBmbG9hdDQgZjsgLy8gZmxvYXQ0IGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydCBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2ZyYWdtZW50T25seTFfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlYmJhMzNkOTQ3NDdi
YTdiNTVmNmJkZDdjMDkzNDI1ZGJiYWNjMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAg
IGdsX0Zyb250RmFjaW5nID0gdHJ1ZTsgIC8vIGNhbiBiZSB1c2VkIGluIGZyYWdtZW50IHNoYWRl
ciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkyX3ZlcnQu
dmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTJfdmVydC52ZXJ0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ4MDA1NmIwNzk0ODFkNmMxZjFiNzM3ODZkYjhkOGM5ZjMyNmJlZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkyX3ZlcnQudmVydApAQCAtMCwwICsxLDEy
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lk
IG1haW4oKQoreworICAgIGdsX0ZyYWdDb29yZCA9IHZlYzQoMS4wKTsgIC8vIGNhbiBiZSB1c2Vk
IGluIGZyYWdtZW50IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9m
cmFnbWVudE9ubHkzX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTNfdmVy
dC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhlOWNiMDA4MTU5MDUxZDM4MWJhNTYxNDBjMjdlY2UzZTNlYTY5
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkzX3ZlcnQu
dmVydApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4w
KTsgIC8vIGNhbiBiZSB1c2VkIGluIGZyYWdtZW50IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHk0X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2ZyYWdtZW50T25seTRfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNjQ0ODM2OWYzYWZiN2UyMmRl
MmY2N2U3YzhmM2EwZjBhNzNjYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9m
cmFnbWVudE9ubHk0X3ZlcnQudmVydApAQCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGRpc2Nh
cmQ7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFkZXIgb25seQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2ZyYWdtZW50T25seV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhlYTAwZWY0ZjVhODdlNGRiMzMw
NDlhMjRjMDkyZWU0YjFjZTdhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zy
YWdtZW50T25seV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFn
RGVwdGggPSAxLjA7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFkZXIgb25seQorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9mdW5jdGlvbjEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2RmYWRiZmQ5Y2Y4ZGNh
NmNlZjBhZDNlNjNjYmYzMWFkZGQ4YWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnVuY3Rpb24xMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwyNCBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihpbiBpbnQgaSk7CisKK3ZvaWQg
bWFpbigpCit7CisgICAgZmxvYXQgZjsKKyAgICAvLyBvdmVybG9hZGVkIGZ1bmN0aW9uIG5vdCBw
cmVzZW50CisgICAgZnVuY3Rpb24oZik7Cit9CisKK3ZvaWQgZnVuY3Rpb24oaW4gaW50IGkpCit7
CisgICBpID0gMzsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMV9mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEz
MzI3YTZhZGI0ZTBmYjQyODBhN2Y0YzE4NjdkMGQ4ZTgyNWZhMmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24oaW50IGkp
Cit7CisgICAgcmV0dXJuIGk7ICAvLyB2b2lkIGZ1bmN0aW9uIGNhbm5vdCByZXR1cm4gYSB2YWx1
ZQorfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIGZ1bmN0aW9uKGkpOworfQor
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAwX2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Yjlk
NTdkYzUxYjA5NWM3NzkzZjQ0NTgyNmRmYjA2NzQ3MWRkYWExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24yX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjIgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24oaW50
IGlbXSkgIC8vIHNpemUgb2YgYXJyYXkgbXVzdCBiZSBzcGVjaWZpZWQKK3sKK30KKwordm9pZCBt
YWluKCkKK3sKKyAgICBpbnQgaVsyXTsKKyAgICBmdW5jdGlvbihpKTsKK30KKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZnVuY3Rpb24zX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDgzNWRlN2ZhY2M0NTNjODc0ZmIyNzAw
ODNiYzk2OTJjMzgxNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rp
b24zX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGNvbnN0IGludCBpKQoreworICAgIGkgPSAzOyAg
Ly8gY29uc3QgdmFsdWUgY2FudCBiZSBtb2RpZmllZAorfQorCit2b2lkIG1haW4oKQoreworICAg
IGludCBpOworICAgIGZ1bmN0aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2Z1bmN0aW9uNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjRfZnJhZy5m
cmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlYWJkZTliN2VkM2MyYzMzYzgyNWFhMGFlOTEwMTQ3NDI4OTY2ZmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjRfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Vu
aWZvcm0gaW50IHVuaWZvcm1JbnQ7CisKK3ZvaWQgZnVuY3Rpb24ob3V0IGludCBpKQoreworICAg
IGkgPSAxOworfQorCit2b2lkIG1haW4oKQoreworICAgIGZ1bmN0aW9uKHVuaWZvcm1JbnQpOyAg
Ly8gb3V0IGFuZCBpbm91dCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSB1bmlmb3JtIHNpbmNlIHVuaWZv
cm1zIGNhbm5vdCBiZSBtb2RpZmllZAorfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9m
dW5jdGlvbjZfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb242X2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYmNjNDMzZWIzMzA2ZWFhZmI5N2Y2MzAzMzcxOGRmZDZhODQyZGM2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb242X2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDIzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1
bmN0aW9uKGNvbnN0IG91dCBpbnQgaSkKK3sgIC8vIG91dCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBj
b25zdAorICAgaSA9IDM7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgZnVu
Y3Rpb24oaSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb243X2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGMwOTAyODgxYzVjYTI4ZTUxMmYwMDZmMmQyODA5ODc3MmI0NDk0NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19mcmFnLmZyYWcKQEAgLTAsMCArMSwyMiBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbih1bmlm
b3JtIGludCBpKQoreyAgLy8gdW5pZm9ybSBxdWFsaWZpZXIgY2Fubm90IGJlIHVzZWQgd2l0aCBm
dW5jdGlvbiBwYXJhbWV0ZXJzCit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAg
ZnVuY3Rpb24oaSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb244
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOF9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGViZTZlODA1ODc4ZWFiOGQ0YzVlYjhlNjUzYTQ5NjFmYTIzMzhhYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOF9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihj
b25zdCBpbm91dCBpbnQgaSkKK3sgIC8vIGlub3V0IHBhcmFtZXRlcnMgY2Fubm90IGJlIGNvbnN0
CisgICBpID0gMzsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICBmdW5jdGlv
bihpKTsKK30KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjlfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmFm
NzRiZjk3NTlkNzk4MWNmYjdhNzNhZTgyYmVjZDgyYjNiODMyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDI0IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGlub3V0IGlu
dCBpKTsKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICBmdW5jdGlvbihpKTsKK30K
KworLy8gZnVuY3Rpb24gZGVmaW5pdGlvbiBoYXMgZGlmZmVyZW50IHBhcmFtZXRlciBxdWFsaWZp
ZXJzIHRoYW4gZnVuY3Rpb24gZGVjbGFyYXRpb24KK3ZvaWQgZnVuY3Rpb24oaW4gaW50IGkpCit7
CisgICBpID0gMzsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2ZWMyX2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2h2ZWMyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTExYjY5ZTY0
NDFlZjliNzA3NDQwMGRhMzU0ODJmNGEwOGFjYmFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvaHZlYzJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaHZlYzIgZjsgLy8g
aHZlYzIgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUsIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9odmVjM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNiNjFkZjJlMjVhOWFkMGM0MzE0ZDBj
ZjM4MmQwODA2NjEwMDgzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2ZWMz
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGh2ZWMzIGY7IC8vIGh2ZWMzIGlzIG5vdCBh
IHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaHZlYzRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzRfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk0ZTc5NzBmYThjZDI1YTk2ZGMwZmY5OWE2MThhNDM3ZTk2MGQ2
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjNF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICBodmVjNCBmOyAvLyBodmVjNCBpcyBub3QgYSB2YWxpZCBkYXRhdHlw
ZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2lkZW50aWZpZXIxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIxX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MGQxZDljODBlNjM5N2Q4NDhlODY0OTNmYThiNjI0YWNhNWZkYzc1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWRlbnRpZmllcjFfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgaW50IDFpOyAvLyBpbmNvcnJlY3QgaWRlbnRpZmllciBuYW1l
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMl9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE2ZTkzNDUx
OTEzMjVlZGVkYjE1NjQ5NDMyYzA0OWYwYzZmODNkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2lkZW50aWZpZXIyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGludCBn
bF9pbnQ7ICAvLyBpZGVudGlmaWVyIG5hbWUgY2Fubm90IGJlZ2luIHdpdGggImdsXyIKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2lkZW50aWZpZXIzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmJlYWY2NTIwMzkwODVj
N2M2NGI3MGIwZDkzNzllMTMwN2UyNzUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvaWRlbnRpZmllcjNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAg
eDsgIC8vIGlkZW50aWZpZXIgeCB1c2VkIHdpdGhvdXQgYmVpbmcgZGVjbGFyZWQKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjFf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMDE2ODQ4MzE5ZDZlY2NhMTRhNWUxMGIyMzZmNjUyY2Mz
MzA4NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjFfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Zv
aWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgaWYgKGkpIC8vIGNvbmRpdGlvbiBvZiBpZiBz
dGF0ZW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4KKyAgICAgICAgaSsrOworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaWYyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMl9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDRmYmZkZmMyMzFjMTM3YWJmZTc3OTQyYjk3MjFjYTQ5YjMxMDc0Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lmMl9mcmFnLmZyYWcKQEAgLTAsMCAr
MSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWlu
KCkKK3sKKyAgICB2ZWMyIHY7CisgICAgaW50IGk7CisgICAgaWYgKHYpIC8vIHZlY3RvcnMgY2Fu
bm90IGJlIHVzZWQgYXMgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBmb3IgaWYgc3RhdGVtZW50Cisg
ICAgICAgIGkrKzsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDFfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50MV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGVlYjViNjBiZjY1YjkzYTQ4MTFkM2Y3NmQxOWJmMTJlNTY3YWY1ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjAgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBp
bnQgaTsKK30gczE7CisKK3ZvaWQgbWFpbigpCit7CisgICBzMS5pKys7CisgICBzMSsrOyAgLy8g
c3RydWN0dXJlIGNhbm5vdCBiZSBpbmNyZW1lbnRlZAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvaW5jcmVtZW50Ml9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQyX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NjE2NzhiMGNhMzhiMzYwNTZlMzI2NjQzMmZhZjFiZTdjZGUy
ZDg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Ml9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICAoaStpKSsrOyAgLy8gaStpIGlzIG5v
dCBhbiBsLXZhbHVlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQzX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDNfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBhMzI1MDQ3MzRkYWUzNzliNmE3Y2IzYWJmMmExNDM1MmVjNTEyZGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlmb3JtIHNhbXBsZXIy
RCBzYW1wbGVyMmQ7CisKK3ZvaWQgbWFpbigpCit7CisgICAgc2FtcGxlcjJkKys7ICAvLyB1bmlm
b3JtcyBjYW5ub3QgYmUgbW9kaWZpZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lu
Y3JlbWVudDRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50NF9mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjNmZjZiNDNlODcxZWQ1YzMwZTc2Mjc0ZjU0NjFjNmMwZjZiMjYzMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDRfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
bWFpbigpCit7CisgICAgaW50IGk7CisgICAgaSsrID0gNTsgIC8vIGkrKyBpcyBub3QgYW4gbC12
YWx1ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Nl9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQ2X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmM1MDA0
M2FjYzRkMDAyMDQ1ZjY1NzVkYTI3NjQ2Mzg3MTRlY2EzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvaW5jcmVtZW50Nl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQg
aTsKKyAgICArK2krKzsgIC8vICsraSsrIGlzIGVxdWl2YWxlbnQgdG8gKysoaSsrKSB3aGljaCBm
YWlscyBiZWNhdXNlIGkrKyBpcyBub3QgYW4gbHZhbHVlLiAgKCsraSkrKzsgaXMgbGVnYWwuCit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbnB1dC5ydW4udHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvaW5wdXQucnVuLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGRkZTdkNjI5YmYwOTY5NjhhNTZiM2JhOWFj
MmYwMzgwNTg0NmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5wdXQucnVu
LnR4dApAQCAtMCwwICsxLDI0IEBACisjIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8g
Tk9UIEVESVQuCitidWlsZF8wMDFfdG9fMDA4Lmh0bWwKK2J1aWxkXzAwOV90b18wMTYuaHRtbAor
YnVpbGRfMDE3X3RvXzAyNC5odG1sCitidWlsZF8wMjVfdG9fMDMyLmh0bWwKK2J1aWxkXzAzM190
b18wNDAuaHRtbAorYnVpbGRfMDQxX3RvXzA0OC5odG1sCitidWlsZF8wNDlfdG9fMDU2Lmh0bWwK
K2J1aWxkXzA1N190b18wNjQuaHRtbAorYnVpbGRfMDY1X3RvXzA3Mi5odG1sCitidWlsZF8wNzNf
dG9fMDgwLmh0bWwKK2J1aWxkXzA4MV90b18wODguaHRtbAorYnVpbGRfMDg5X3RvXzA5Ni5odG1s
CitidWlsZF8wOTdfdG9fMTA0Lmh0bWwKK2J1aWxkXzEwNV90b18xMTIuaHRtbAorYnVpbGRfMTEz
X3RvXzEyMC5odG1sCitidWlsZF8xMjFfdG9fMTI4Lmh0bWwKK2J1aWxkXzEyOV90b18xMzYuaHRt
bAorYnVpbGRfMTM3X3RvXzE0NC5odG1sCitidWlsZF8xNDVfdG9fMTUyLmh0bWwKK2J1aWxkXzE1
M190b18xNjAuaHRtbAorYnVpbGRfMTYxX3RvXzE2OC5odG1sCitidWlsZF8xNjlfdG9fMTc2Lmh0
bWwKK2J1aWxkXzE3N190b18xNzguaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFp
bjFfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjFfdmVydC52ZXJ0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk1YzI2NjMxMGFkYzQ3Njc3NmRkZWYyODU2NDdmNDkwZTYxNGM4YWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluMV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMSBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworbWFpbigpIC8vIHJl
dHVybiB0eXBlIG9mIG1haW4gc2hvdWxkIGJlIHZvaWQKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL21haW4yX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4yX3ZlcnQudmVy
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44Y2RmZTk4YjQ2M2U5OTQ4NzlmNDkyNDhhY2YyMzhhYWU2ZjQ4MjZlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjJfdmVydC52ZXJ0CkBAIC0wLDAg
KzEsMTIgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
K3ZvaWQgbWFpbihpbnQgaSkgIC8vIG1haW4gZnVuY3Rpb24gY2Fubm90IHRha2UgYW55IHBhcmFt
ZXRlcnMKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9tYWluM192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluM192ZXJ0LnZl
cnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDlhMjFhOWU5MjkzMDMxZDZhMTdhY2M5ZjExMGNjMDZjODgxNWU0Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4zX3ZlcnQudmVydApAQCAtMCww
ICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CitpbnQgbWFpbigpIC8vIHJldHVybiB0eXBlIG9mIG1haW4gc2hvdWxkIGJlIHZvaWQKK3sKKyAg
IHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWF0cml4X1YxMDBfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWF0cml4X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYzZGMwYWRiNjRiOTRmYmVhNzE1MWM2YzcxM2RkMTMzYjNlZDMxZWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9tYXRyaXhfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sK
KyAgICBtYXQzIG07CisgICAgbWF0NCBtMSA9IG1hdDQobSk7Cit9ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbm9ybWFsX3ZlcnQudmVydCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5YmNlOTlmOTFh
NjI3NWM2MGIzMTNmMTAyYjdkN2JmNjcwNTRjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL25vcm1hbF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMyBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0cmlidXRlIHZlYzQgZ3RmX05vcm1h
bDsKK3ZvaWQgbWFpbigpCit7CisgICAgZ3RmX05vcm1hbCA9IHZlYzMoMS4wLDIuMCwzLjApOyAg
Ly8gY2Fubm90IGJlIG1vZGlmaWVkIGFuIGF0dHJpYnV0ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyMTBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMTBfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjMjU3MzQ0NzM4MGI3NTJhNTFhZjJmYjJkMmEyZGRiNGIzNDEz
ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXIxMF9mcmFnLmZyYWcK
QEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCBtYWluKCkKK3sKKyAgICA1ICs9IDU7IC8vIGwtdmFsdWUgbWlzc2luZworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9w
YXJzZXIxX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGE2MjYzZGQyOGMwMGVkYjQyZTU5ZDJlYmQx
ZWVkYmM5NjU2ODgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMV92
ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgYSAgLy8gc2VtaWNvbG9u
IG1pc3NpbmcgYXQgdGhlIGVuZCBvZiB0aGUgc3RhdGVtZW50CisgICAgZ2xfUG9zaXRpb24gPSB2
ZWM0KGEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyM19mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXIzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjU0M2FkOGZk
ZmQ4YWU3Njg4ZmYxOTJjNDYwYzIxYjRlOThmNzBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcGFyc2VyM19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmWzNd
OworICAgIGZbM10gPSAxLjA7IC8vIGluZGV4IG9mIGFycmF5IGdyZWF0ZXIgdGhhbiB0aGUgc2l6
ZSBvZiB0aGUgYXJyYXkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjRfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcz
ZTRiM2QzMTM4ZDQxMjQ4OTU3ZWI0NTFjYTdjNTk4ZGQ2YjZmYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3BhcnNlcjRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29u
c3QgaW50IGkgPSA1OworICAgIGkrKzsgIC8vIGNvbnN0IGNhbm5vdCBiZSBtb2RpZmllZAorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9wYXJzZXI1X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTljYmRhYWM1OWI0OGI1MWViNjFh
M2RhYTI4NTdkMDAzOGM3MzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFy
c2VyNV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHY7CisgICAgdi56ID0gMS4y
OyAgIC8vIHZlYzIgZG9lcyBub3QgaGF2ZSBhIHogY29tcG9uZW50Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9wYXJzZXI2X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjZf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNGQwMjFmZDI5OTNmMmY1ZDJhMDUzNTNiN2ZhYmY4OWQ0
Y2Q1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI2X2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYxLGYyLGYzOworICAgIGYzID0gZjEgPiBmMjsg
IC8vIGYxID4gZjIgcmVzdWx0IGluIGEgYm9vbCB0aGF0IGNhbm5vdCBiZSBhc3NpZ25lZCB0byBh
IGZsb2F0Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3BhcnNlcjdfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MDMyMzEwY2Q4
ZTMyY2IwZmNlZDU1ZTcyYmY2OWJhOTQ2M2YwNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIG1hdDIgbTEsbTI7
CisgICAgYm9vbCBiID0gbTEgPiBtMjsgIC8vIGdyZWF0ZXItdGhhbiBvcGVyYXRvciBjYW4gbm90
IG9wZXJhdGUgb24gbWF0cmljZXMsIGhvd2V2ZXIsIGVxdWFsICg9PSkgYW5kIG5vdCBlcXVhbCAo
IT0pIG9wZXJhdG9ycyBjYW4gYmUgdXNlZCB3aXRoIG1hdHJpY2VzCit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9wYXJzZXI4X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjhf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2NjQ5YzU0ZWU1MmNlMTU5OWQxZjdmN2YyMmYxZWY0NTI5
M2U3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI4X2ZyYWcuZnJh
ZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxl
LgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlm
Cit2b2lkIG1haW4oKQoreworICAgIHZlYzIgdjI7CisgICAgdmVjMyB2MzsKKyAgICBib29sIGIg
PSB2MiA9PSB2MzsgLy8gZXF1YWwgb3BlcmF0b3IgY2Fubm90IG9wZXJhdG9yIG9uIHZlY3RvcnMg
b2YgZGlmZmVyZW50IHNpemVzCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI5
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjlfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEyODNjMjI2OGQ2OWQ1MWQzYzUxZWU5YWI0YmZhZjc1YWIwNWQyN2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAg
IGZsb2F0IGYxLGYyOworICAgIGJvb2wgYiA9IGYxICYmIGYyOyAgLy8gJiYsIHx8IGFuZCBeXiBv
cGVyYXRlIG9uIGEgYm9vbGVhbiBleHByZXNzaW9uIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ByZXByb2Nlc3MwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nl
c3MwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWQxZDlmY2QxM2RkYjNlMzY0ZGVlNGQxY2FjYmMz
ZWNlMWY0MDIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczBf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsNjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKKy8vdGVzdCBmb3IgZWxzZSBlbGlmIG1pc21hdGNoCisjZGVmaW5lIHRlc3QoeCx5
KSAoeCt5KQorCit2b2lkICBtYWluKHZvaWQpeworIGludCBzdW0gPTA7CisgI2RlZmluZSB4IDgK
KyAjZW5kaWYKKyAjaWYgKHg9PTgpCisgICAjdW5kZWYgeAorICNlbmRpZgorCisgI2lmIDEKKyAg
ICN1bmRlZiB4CisgI2VuZGlmCisKKyAjaWYgMQorICAgI2RlZmluZSB0NCA0CisgI2VuZGlmCisK
KyBzdW09dGVzdCgzLDYpK3Q0OworICNpZiAxCisgICNpZiAxCisgICAjaWYgMQorICAgICNpZiAx
CisgICAgICNpZiAwCisgICAgICAgI3VuZGVmIHRlc3QKKyAgICAgI2Vsc2UKKyAgICAgICAjaWYg
MQorICAgICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAjZW5kaWYKKyAgICAgICAjaWYgMAorICAg
ICAgICAjdW5kZWYgdGVzdAorICAgICAgICNlbHNlCisgICAgICAgICAgI2lmIDAKKyAgICAgICAg
ICAgICAjdW5kZWYgdGVzdAorICAgICAgICAgICNlbHNlCisgICAgICAgICAgICAgI2lmIDEKKyAg
ICAgICAgICAgICAgICAjdW5kZWYgdGVzdAorICAgICAgICAgICAgICNlbHNlCisgICAgICAgICAg
ICAgICAjdW5kZWYgdGVzdAorICAgICAgICAgICAgICNlbHNlCisgICAgICAgICAgICAgICAjamRo
Z2oKKyAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAjZW5kaWYKKyAgICAgICAjZW5kaWYK
KyAgICAgI2VuZGlmCisgICAgI2VuZGlmCisgICAjZW5kaWYKKyAgI2VuZGlmCisgI2VuZGlmCisK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxMF9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlYjIyNzk3
MGQxNzllN2M0NTI3NzA4NmY5NTZhY2I3YjFlYTVjY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8qIFRoZSBwcm9ncmFtIHNob3VsZCB0
ZXJtaW5hdGUgd2l0aCBhbiBlcnJvciBtZXNzYWdlIGFuZCBub3QgZ2V0IGludG8gYW4KKyAgIGlu
ZmluaXRlIGxvb3AgKi8KKyNpZmRlZiBuYW1lCisKK3ZvaWQgbWFpbigpCit7CisgICBnbF9GcmFn
Q29sb3IgPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2Vz
czFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczFfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcyZjRkMTQyNTg4MTUwODVlYTM2ZjkyY2ViMDM2MjY2ODk0MThmOGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMV9mcmFnLmZyYWcKQEAgLTAsMCAr
MSw2NCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy8gdGVzdHMg
Zm9yIG1hY3JvIHJlZGlmaW5pdGlvbiAodDIpIGFuZCB0aGUgI2lmIGFuZCAjZWxzZSBuZXN0aW5n
cy4KKy8vIHRha2VzIGNhcmUgb2YgZWxpZiBhbHNvLgorCisjZGVmaW5lIHQxICgxKzIpCisjZGVm
aW5lIHQyIDIKKyNkZWZpbmUgdDIgMworCisvLyB0ZXN0aW5nIHRoZSBpZiBkZXB0aAorI2lmICh0
MT09MykKKyAgI2RlZmluZSB0MyAzCisgICNpZiBkZWZpbmVkIHQyCisgICAgI2RlZmluZSB0NCA0
CisgICAgICAjaWYgZGVmaW5lZCh0MykKKyAgICAgICAgICAjZGVmaW5lIHQ1IDUKKyAgICAgICAg
ICAgICAjaWZkZWYgdDUKKyAgICAgICAgICAgICAgICNkZWZpbmUgdDYgNgorICAgICAgICAgICAg
ICAgICAjaWZuZGVmIHQ3CisgICAgICAgICAgICAgICAgICAgI2RlZmluZSB0NyA3CisgICAgICAg
ICAgICAgICAgICNlbHNlCisgICAgICAgICAgICAgICAgICAgI2RlZmluZSB0OCA4CisgICAgICAg
ICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICNlbmRpZgorICAgICAgI2Vsc2UKKyAgICAg
ICAgICNpZm5kZWYgdDgKKyAgICAgICAgICAgICAjZGVmaW5lIHQ4IDgKKyAgICAgICAgICNlbGlm
ICh0OD09OCkKKyAgICAgICAgICAgICNkZWZpbmUgdDkgOQorICAgICAgICAgI2Vsc2UKKyAgICAg
ICAgICAgICNpZiBkZWZpbmVkIHQ3CisgICAgICAgICAgICAgICNkZWZpbmUgdDkgOQorICAgICAg
ICAgICAgI2VuZGlmCisgICAgICAgICAjZW5kaWYKKyAgICAgICNlbmRpZgorICAjZWxzZQorICAg
ICNkZWZpbmUgdDEwIDEwCisgICNlbmRpZgorI2VuZGlmCisKKworI2RlZmluZSB0OCA4CisjZGVm
aW5lIHQ5IDkKKyNkZWZpbmUgdDEwIDEwCisKK3ZvaWQgbWFpbih2b2lkKQoreworIGludCBzdW09
MSA7Cisgc3VtID0gdDErdDI7Cisgc3VtID0gdDMrdDQ7Cisgc3VtID0gdDUrdDY7Cisgc3VtID0g
dDcrdDg7Cisgc3VtID0gdDkrdDEwOworfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9w
cmVwcm9jZXNzMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMl9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWFhMDBlODQ5ZGQyNDQyYTM4OWNmZmRhYzkwZTYwZDcxMjczOGI2Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MyX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDYwIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisv
LyAjbGluZSBkaXJlY3RpdmUtLSB0ZXN0IGNhc2VzLgorLy8gY2hrcyBmb3IgSW52YWxpZCBkaXJl
Y3RpdmVzLCBhbGwgcG9zc2libGUgI2xpbmUgZXJyb3JzCisvLyBBbHNvIGNoZWNrcyB0aGUgY29y
cmVjdCB2ZXJpb25zIG9mICNsaW5lIGRvcmVjdGl2ZS4KKworI2RlZmluZSB0MSAxCisjZGVmaW5l
IHQyIDIKKworIworIworIworIworI2xpbmUgOAorI2xpbmUgIiIKKyNsaW5lIDMgMworCisjbGlu
ZWtmagorI2xpbmUgYyBjCisjbGluZSB0MSB0MgorI2xpbmUgNzcgODkKKyNsaW5lIDY1LjQKKyNs
aW5lIG1lc3NhZ2UgdG8gdGhlIHVzZXIKKyNsaW5lCisjbGluZTM0NQorCit2b2lkIG1haW4odm9p
ZCkKK3sKKyBpbnQgc3VtID0xOworIHN1bSA9IF9fTElORV9fOworIHN1bSA9IF9fRklMRV9fOwor
ICNsaW5lIDQgNQorIHN1bSA9IF9fTElORV9fOworIHN1bSA9IF9fRklMRV9fOworICNsaW5lIDkK
KyBzdW0gPSBfX0xJTkVfXyArIF9fRklMRV9fIDsKKyBzdW0gPSBfX0ZJTEVfXzsKKyAjCisgIwor
IHN1bSA9IF9fVkVSU0lPTl9fOworIHN1bSA9IHN1bSArIF9fTElORV9fIDsKKyAjbGluZSA0IDUK
KyAjbGluZSA1IDgKKyBzdW0gPSBfX0xJTkVfXzsKKyBzdW0gPSBfX0ZJTEVfXzsKKyBzdW0gPSBf
X1ZFUlNJT05fXzsKKworfQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJv
Y2VzczNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczNfZnJhZy5mcmFnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM5ZTIwMDZhOTdkNThlMTMxOTk2YWY5N2FiZWIzNjdmODEzZmIxNDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzM19mcmFnLmZyYWcKQEAgLTAs
MCArMSw0MyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy8gc2lt
cGxlIG1hY3JvIGV4cGFuc2lvbnMuCisvLyBUZXN0cyBmb3IgVG9vIGZldyBtYWNybyBhcmd1bWVu
dHMsIHRvbyBtYW55IG1hY3JvIGFyZ3VtZW50cy4KKy8vIE1hY3JvcyB3aXRoIG5vIGFyZ3VtZW50
cy4KKworI2RlZmluZSB0MSAtMQorI2RlZmluZSB0MiAyCisKKyNkZWZpbmUgdGVzdCAtMjU4Cisj
ZGVmaW5lIHRlc3QxICh0ZXN0KnRlc3QpCisjZGVmaW5lIHRlc3QyKHgpICh4K3Rlc3QxKQorI2Rl
ZmluZSB0ZXN0MygpICh0ZXN0Mig4KSoodGVzdCp0ZXN0MSkpCisjZGVmaW5lIHRlc3Q0KHgseSkg
KHgreSkKKwordm9pZCBtYWluKHZvaWQpCit7CisgaW50IHN1bSA9MDsKKyBzdW0gPSB0ZXN0Mygp
OworIHN1bSA9IHRlc3QzKDMpOworCisgc3VtID0gdGVzdDIoOSk7Cisgc3VtID0gdGVzdDIoOSw4
KTsKKworIHN1bSA9IHRlc3Q0OworIHN1bSA9IHRlc3QyKDgsNSw3OCw5KTsKKyBzdW0gPSBzdW0g
KyB0ZXN0MTsKKyBzdW0gPSA4KzU4K3N1bTsKKyBzdW0gPSBzdW0gK3Rlc3Q7Cisgc3VtID0gKHQx
K3QyKTsKKyBzdW0gPSB0ZXN0NCh0ZXN0MygpLHRlc3QyKHRlc3QzKCkpKTsKKyBzdW0gPSB0ZXN0
NCgzLDgsNSk7Cisgc3VtID0gdGVzdDQoKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3ByZXByb2Nlc3M0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M0X2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZDljNzU2YTYzY2U1YTA5N2RiMDVlNmQ3YTBiZjJkM2Q3MmFmMmNk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczRfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsNjAgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
Ky8vICNlcnJvciBhbmQgI3ByYWdtYSBkaXJlY3RpdmVzIC0tIHRlc3QgY2FzZXMuCisvLyB0ZXN0
cyBmb3IgZXJyb3JzIGluICNwcmFnbWEgZGlyZWN0aXZlLgorCisjcHJhZ21hIG9wdGltaXplKG9u
KQorI3ByYWdtYSBkZWJ1ZyhvZmYpCisKK2ludCBmb28oaW50KTsKKwordm9pZCBtYWluKHZvaWQp
Cit7CisgaW50IHN1bSA9MDsKKyAjZXJyb3IgOworICNlcnJvciA3OAorICNlcnJvciBjCisgI2Vy
cm9yICJtZXNzYWdlIHRvIHRoZSB1c2VyICIKKyAjZXJyb3IgbWVzc2FnZSB0byB0aGUgdXNlcgor
ICNlcnJvcgorICNlcnJvcgorICNkZWZpbmUgdDEgMQorIHN1bSA9IHQxKnQxOworIGZvbyhzdW0p
OworCit9CisKKyNwcmFnbWEgb3B0aW1pemUob2ZmKQorI3ByYWdtYSBiaW5kKG9uKQorI3ByYWdt
YSBwYWNrKG9mZikKKworaW50IGZvbyhpbnQgdGVzdCkKK3sKKyBpbnQgYmluZGluZz0wOworIGJp
bmRpbmcgPSB0ZXN0OworIHJldHVybiBiaW5kaW5nOworfQorCisjbGluZSA0CisjcHJhZ21hCisj
bGluZSA1IDYKKyNwcmFnbWEgb3B0bWltaXplIG9uCisjcHJhZ21hIGRlYnVnIG9mZgorI3ByYWdt
YSBkZWJ1ZyhvZmYKKyNsaW5lIDkKKyNwcmdtYSBiaW5kKG9mZikKKyNwcmFnbWEgYmluZAorI3By
YWdtYSAob24pCisjcHJhZ21hIG9uIChvbikKKyNwcmFnbWEgb3B0bWl6ZShvbgorCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M2X2ZyYWcuZnJhZyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3ByZXByb2Nlc3M2X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZiZDAyMjNmNWVhZTRlMTQ3
NGRmZTNhMGRmODA0NWY3ZGJlNGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
cHJlcHJvY2VzczZfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMzcgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIG9wZXJhdG9yIHByZWNlZGVuY2UgYW5kIHNvbWUgbWFj
cm8gZXhwYW5zaW9ucy4KKworI2RlZmluZSB0ZXN0ICgxKzIpCisjZGVmaW5lIHRlc3QxICh0ZXN0
KjQpCisjZGVmaW5lIHRlc3QyICh0ZXN0MS90ZXN0KQorLy8jZGVmaW5lIHRlc3QzICgtMSsyKjMv
NCV0ZXN0KQorI2RlZmluZSB0ZXN0MyAoLTErMiozLzQpCisvLyNkZWZpbmUgdGVzdDQgKHRlc3Qg
JiB0ZXN0MSB8dGVzdDIpCisjZGVmaW5lIHRlc3Q0ICh0ZXN0KQorI2RlZmluZSB0ZXN0NSAoITgr
fjQrNC02KQorI2RlZmluZSB0ZXN0NiAodGVzdDE+PjEpCisjZGVmaW5lIHRlc3Q3ICh0ZXN0MTw8
MSkKKyNkZWZpbmUgdGVzdDggKHRlc3QyXjYpCisjZGVmaW5lIHRlc3Q5ICh0ZXN0NCB8fCB0ZXN0
NSAmJiB0ZXN0MSkKKyNkZWZpbmUgdGVzdDEwICgwKQorCit2b2lkIG1haW4odm9pZCkKK3sKKyBp
bnQgc3VtID0wOworIHN1bSA9IHRlc3Q0OworIHN1bSA9IHRlc3QzKnRlc3QyK3Rlc3QxLXRlc3Q7
CisvLyBzdW0gPSB0ZXN0My90ZXN0NiArIHRlc3Q0KnRlc3Q3IC0gdGVzdDcgJSB0ZXN0OTsKKy8v
IHN1bSA9IHRlc3QzL3Rlc3Q2ICsgdGVzdDQqdGVzdDcgLSB0ZXN0NzsKKyBzdW0gPSB0ZXN0MTAq
dGVzdDU7Cit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M3X2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
OGY2MmIxMTEwYjFiMTgxN2YwYWQyOGVlN2M5MjNkNjMyZTI5NTVhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczdfZnJhZy5mcmFnCkBAIC0wLDAgKzEsNTEgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIHRlc3RpbmcgZm9yIGNo
YXIgY29uc3RhbnRzIGluICNpZiBhbmQgI2VsaWYKKy8vIEFsc28gY2hlY2tpbmcgd2hldGhlciBy
ZXNlcnZlZCB3b3JkcyBjYW4gYmUgcmVkZWZpbmVkLgorCisjZGVmaW5lIHQxIGMKKyNkZWZpbmUg
dDIgZAorI2RlZmluZSBhc20gYQorCisgI2lmKHQxPT1jKQorICAjZGVmaW5lIHQzIDMKKyAjZWxp
Zih0MT09ZCkKKyAgI2RlZmluZSB0NCA0CisgI2VsaWYodDI9PWMpCisgICNkZWZpbmUgdDUgNQor
ICNlbmRpZgorCisgI2lmbmRlZiB0MQorICAgI2RlZmluZSB0NyA3CisgI2VsaWYgKHQyPT1kKQor
ICAjZGVmaW5lIHQ2IDYKKyAjZW5kaWYKKworICNpZiAodDI9PSdkJykKKyAgI2RlZmluZSBoYWxm
IDUKKyAjZWxzZQorICAjZGVmaW5lIGhhbGYgOAorICNlbmRpZgorCisgI2lmZGVmIHQyMgorICAj
ZGVmaW5lIHggNQorICNlbmRpZgorCisgdm9pZCBtYWluKHZvaWQpCisgIHsKKyAgIGludCBzdW0g
PTAsYT05OworCisgICBzdW0gPSBoYWxmICsgc3VtOworICAgc3VtID0gYXNtICsgYTsKKworICB9
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3BpbmcxX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3Njb3BpbmcxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWM5YTUxMjA5NWMxYmNk
NGRhY2YzYWI4NGNjMDRiNjA1YmMwNjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc2NvcGluZzFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjEgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgYm9vbCBiOworICAgIGlm
IChiKQorICAgIHsKKyAgICAgICAgaW50IGkgPSAxOworICAgICAgICBpKys7CisgICAgfQorICAg
IGkrKzsgIC8vIGkgaXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2NvcGUKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3Njb3BpbmcyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3Bp
bmcyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjY3ZjQwMDYxNGYzZGY0ZTY0YTRmYWQ3NmQ1ODBm
ZmVhNTAyZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc2NvcGluZzJfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgeworICAgICAgICBpbnQgaSA9IDE7CisgICAgICAg
IGkrKzsKKyAgICB9CisgICAgaSsrOyAgLy8gaSBpcyBub3QgZGVjbGFyZWQgaW4gdGhpcyBzY29w
ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MTBfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvc3RydWN0MTBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiMGM3ODI5OWRhOTM4
ZmUwMjQxNWVmYTE2ZTY5ZTVkZjc3ZjBlNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9zdHJ1Y3QxMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOSBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGludCBpOworfSBzMVsyXTsK
Kwordm9pZCBtYWluKCkKK3sKKyAgIHMxLmkgPSAxOyAgLy8gczEgaXMgYW4gYXJyYXkuIHMxWzBd
LmkgaXMgY29ycmVjdCB0byB1c2UKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVj
dDExX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDExX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNTJjZTQ5YWVkMGQ1NmEyOTgwYmRmMWIzZmI5N2ZkNzJjYjcxYjUyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAg
ICBpbnQgaTsKK30gczE7CisKK3ZvaWQgbWFpbigpCit7CisgICBzMSA9IC1zMTsgLy8gY2Fubm90
IGNhbGN1bGF0ZSBuZWdhdGl2ZSBvZiBhIHN0cnVjdHVyZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvc3RydWN0MV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZmNiYjg1OTlmYTgzMDM3MmU3ZGNkNTc1ZTZkNGU0MWJhY2I4Nzhi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9mcmFnLmZyYWcKQEAg
LTAsMCArMSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3Ry
dWN0IHMgeworICAgIGludCBpOworfSB1bmlmb3JtIHVuaWZvcm1TdHJ1Y3Q7ICAvLyB1bmlmb3Jt
IGtleXdvcmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIHRoZSBrZXl3b3JkIHN0cnVjdAorCit2b2lk
IG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Ml9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjgyZjY3
ZGZjMTExMDZkYzIzZDVhNmI3N2I5ODI2MzUyOTU1MDBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvc3RydWN0Ml9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGludCBpID0gMS4w
OyAgLy8gc3RydWN0IG1lbWJlcnMgY2Fubm90IGJlIGluaXRpYWxpemVkIGF0IHRoZSB0aW1lIG9m
IHN0cnVjdHVyZSBkZWNsYXJhdGlvbgorfSBzMTsKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
c3RydWN0M19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmVjMWU1MzYxNjJjMWI5YTBkNDRhNDhmNzhh
ZWZiMDAyMDg0ZTgzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDNf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICB1bmlmb3JtIGludCBpOyAgLy8gc3RydWN0dXJlIG1l
bWJlcnMgY2Fubm90IGJlIGRlY2xhcmVkIHdpdGggY29uc3QgcXVhbGlmaWVyCit9IHMxOworCit2
b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0NF9mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q0X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTdk
NTQ3YWUxMmNmODRkYzFmNWFjNjhjMWY3MmU5NjMxNTIzNTA3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvc3RydWN0NF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGNvbnN0IGlu
dCBpID0gMTsgIC8vIHN0cnVjdHVyZSBtZW1iZXJzIGNhbm5vdCBiZSBkZWNsYXJlZCB3aXRoIGNv
bnN0IHF1YWxpZmllcgorfSBzMTsKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N0cnVjdDVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0NV9m
cmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ2MjMyMDc2MTMxYTY0YWViNDMxYjg3Mzk2N2QzNmE4MWM0
MDRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDVfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3VuaWZvcm0gc3RydWN0IHMgeworICAgIGludCBpOworfSBzMTsKKwordm9pZCBtYWluKCkKK3sK
KyAgIHMxLmkgPSAxOyAgLy8gdW5pZm9ybXMgYXJlIHJlYWQgb25seQorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvc3RydWN0Nl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q2
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDk4Y2MwMWM2MjNhNjdkZWUyNTZkMDgzYzllZTViNjIw
MjBkMWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Nl9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
ZgordmFyeWluZyBzdHJ1Y3QgcyB7CisgICAgaW50IGk7Cit9IHMxOyAgLy8gc3RydWN0dXJlcyBj
YW5ub3QgYmUgZGVjbGFyZWQgd2l0aCB2YXJ5aW5nIHF1YWxpZmllcgorCit2b2lkIG1haW4oKQor
eworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0N19mcmFnLmZyYWcgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9zdHJ1Y3Q3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWEzMjA2NTA1OTI5ODMz
NDEzNGFlYWM2ODJiNTM3MmU0MDUwMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3RydWN0N19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBzdHJ1Y3QgcyB7CisgICAg
fSBzMTsgIC8vIHN0cnVjdHVyZXMgaGF2ZSB0byBiZSBkZWNsYXJlZCB3aXRoIGF0bGVhc3Qgb25l
IG1lbWJlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OF9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q4X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTAwYmM5MGMz
MzUxMjMyNTg5Mjk2NGZhYmYyNTY0NDA4YzA0MGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvc3RydWN0OF9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGludCBpOworfSBzMTsK
Kworc3RydWN0IHNzIHsKKyAgICBpbnQgaTsKK30gczI7CisKK3ZvaWQgbWFpbigpCit7CisgICAg
czEgPSBzMjsgIC8vIHR3byBkaWZmZXJlbnQgc3RydWN0dXJlcyBjYW5ub3QgYmUgYXNzaWduZWQg
dG8gZWFjaCBvdGhlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OV9mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q5X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjYx
ZDI1MDEyOGYzZGRhNDJjZDM4MTI4NzNhM2YwM2I5YzBhODUzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvc3RydWN0OV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOSBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorY29uc3Qgc3RydWN0IHMgeworICAgIGlu
dCBpOworfSBzMSA9IHMoMSk7CisKK3ZvaWQgbWFpbigpCit7CisgICBzMS5pID0gMTsgIC8vIGNv
bnN0IHN0cnVjdCBtZW1iZXJzIGNhbm5vdCBiZSBtb2RpZmllZAorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvc3dpenpsZTFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenpsZTFf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMWVhM2NmOTFhMTVjNTFkMmU2Y2JjYzFlYjQxNGZmY2Zm
NjI4NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxlMV9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHY7CisgICAgdi54eSA9IDEuMjsgLy8gc3dpenps
ZSBuZWVkcyB0d28gdmFsdWVzLCB2Lnh5ID0gdmVjMigxLjIpIGlzIGNvcnJlY3QKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3N3aXp6bGUyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDViZDE4Nzc2ODY3YTY0ZjRhZGQ2NGYx
N2EzOTc1OTA3ZWU5ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenps
ZTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHYueHggPSB2ZWMy
KDEsMSk7ICAvLyB4IGNhbm5vdCBiZSB1c2VkIHR3aWNlIGluIGwtdmFsdWUKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3
aXp6bGUzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWI5ZmQ2MDQ4MzIzODVjYWRjNGFlZTk0Yjg1
NjM1ZjUwNmU5ZmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenpsZTNf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHZlYzMgdjMgPSB2Lnh5
ejsgLy8gdiBpcyBhIHZlYzIgYW5kIGRvZXMgbm90IGhhdmUgYSB6IGNvbXBvbmVudAorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdHlwZWNhc3RfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvdHlwZWNhc3RfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMWIxMjRmNjZjMDc1NDhmYTQ3NGU3
MjE1YTMwOTEyZjQ3YWY1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC90eXBl
Y2FzdF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWM0IHY7CisgICAgdmVjNCB2MSA9
ICh2ZWM0KSB2OyAvLyBpbmNvcnJlY3QgdHlwZWNhc3RpbmcsIHZlYzQodikgaXMgY29ycmVjdAor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybTFfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvdW5pZm9ybTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNzA2NDdmYWFiMDU2MThl
OWRmMWVjYzg1NTJlNTI3YTJhMThlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC91bmlmb3JtMV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgorc3RydWN0IGd0Zl9Gb2dQYXJhbWV0ZXJzIHsKK3ZlYzQgY29s
b3I7CitmbG9hdCBkZW5zaXR5OworZmxvYXQgc3RhcnQ7CitmbG9hdCBlbmQ7CitmbG9hdCBzY2Fs
ZTsKK307Cit1bmlmb3JtIGd0Zl9Gb2dQYXJhbWV0ZXJzIGd0Zl9Gb2c7Cit2b2lkIG1haW4oKQor
eworICAgIGd0Zl9Gb2cuZGVuc2l0eSA9IDEuMDsgIC8vIGNhbm5vdCBtb2RpZnkgYSB1bmlmb3Jt
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC91bmlmb3JtX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3VuaWZvcm1fZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NWVhY2VkNDZjZWJiMzcw
YTBkOGY0ZDU2NTU4OWUxMTdjOGMxOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC91bmlmb3JtX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHVuaWZvcm0gZmxvYXQgZm9v
OyAgLy8gdW5pZm9ybXMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgYSBnbG9iYWwgc2NvcGUKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmcxX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3ZhcnlpbmcxX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjUxMjJlYTk4YTdiZmIwMTQy
MGIzNDBmZGM1ZTZiZjAwMGYyZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
dmFyeWluZzFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3ZhcnlpbmcgZmxvYXQgZm9vOworCit2b2lkIG1haW4oKQorewor
ICAgIGZvbyA9IDUuMDsgLy8gdmFyeWluZyBjYW5ub3QgYmUgd3JpdHRlbiBieSBhIGZyYWdtZW50
IHNoYWRlcgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzJfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0Y2M5ZjQ5
ZjQ5OTNkYjYyODEwNWNlODg0NzZhZTA5OGU2ZGNjNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC92YXJ5aW5nMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordmFyeWluZyBpbnQgZm9vOyAvLyB2YXJ5aW5n
cyBjYW5ub3QgYmUgaW50IG9yIGJvb2wKKwordm9pZCBtYWluKCkKK3sKKworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFy
eWluZzNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYWI2NWVjOTk2NTM0ODU2Y2EwZGU2YjMzZGZk
OGQxOWMxMDcwNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nM19m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordmFyeWluZyB2ZWM0IHYgPSB2ZWM0KDEsMSwxLDEpOy8vZ2xfVGV4Q29vcmRbMF07
IC8vIHZhcnlpbmdzIGNhbm5vdCBiZSBpbml0aWFsaXplZAorCit2b2lkIG1haW4oKQoreworCit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3ZhcnlpbmdfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NWQ5ZmRiN2IzNmZiZjBhOGU1
MjUxMGQ1YjZhYTQ1YTg1MGZkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92
YXJ5aW5nX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZhcnlpbmcgZmxvYXQgZm9vOyAv
LyB2YXJ5aW5ncyBjYW4gb25seSBiZSBkZWNsYXJlZCBhdCBhIGdsb2JhbCBzY29wZQorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVjdG9yX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3ZlY3Rvcl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJjMjk4ZWIxZDNlNzQxMGQ3NTZlNTAzYmZm
ODFlYjEzZTcwYjU0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlY3Rvcl9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpdmVjNCB2NDsKKyAgICB2NCA9IHY0ICsgMi4w
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjJfVjEwMF9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uMl9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODNm
YzZhNDY3ZmM3MDMyNzMwY2Q2YmQyMWU2NGIxOWMyYzQ2ZmZjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvdmVyc2lvbjJfVjEwMF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOSBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI3ByYWdtYSBk
ZWJ1ZyhvbikKKyN2ZXJzaW9uIDEwMCAgLy8gZXJyb3IgI3ZlcnNpb24gc2hvdWxkIGJlIHRoZSBm
aXJzdCBzdGF0ZW1lbnQgaW4gdGhlIHByb2dyYW0KKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKKworCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1YxMDBf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjNfVjEwMF9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjFkZmNjMzNjZWUyODQyNmYxNWFmOWJlY2Q1ZjFlOGEzZWE3NWRmYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
Ky8qIFRoaXMgaXMgIGEgY29tbWVudCovIGludCBpOyAvLyBUaGlzIGlzIGEgZ2xvYmFsIGRlY2wK
KyN2ZXJzaW9uIDEwMCAgLy8gZXJyb3IgI3ZlcnNpb24gc2hvdWxkIGJlIHRoZSBmaXJzdCBzdGF0
ZW1lbnQgaW4gdGhlIHByb2dyYW0KKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKKworCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgx
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHkyX2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHkyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzg1ZTIy
MWNlZGE1YjkyMTc1OTExNjlhNTYzNmRhMTM5OGM3NTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvdmVydGV4T25seTJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KDQuMCk7ICAvLyBjYW4gYmUgdXNlZCBpbiB2ZXJ0ZXggc2hhZGVyIG9u
bHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvdmVydGV4T25seV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFhZGEyYmYw
ODQ1ZjVmYmZmZGQwNzcwZjI5ODFiZDk3MGYyYTlmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjUgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBndGZfUG9pbnRQYXJhbWV0ZXJz
IHsKK2Zsb2F0IHNpemU7CitmbG9hdCBzaXplTWluOworZmxvYXQgc2l6ZU1heDsKK2Zsb2F0IGZh
ZGVUaHJlc2hvbGRTaXplOworZmxvYXQgZGlzdGFuY2VDb25zdGFudEF0dGVudWF0aW9uOworZmxv
YXQgZGlzdGFuY2VMaW5lYXJBdHRlbnVhdGlvbjsKK2Zsb2F0IGRpc3RhbmNlUXVhZHJhdGljQXR0
ZW51YXRpb247Cit9OwordW5pZm9ybSBndGZfRm9nUGFyYW1ldGVycyBndGZfUG9pbnQ7Cit2b2lk
IG1haW4oKQoreworICAgIGd0Zl9Qb2ludFNpemUgPSA0LjA7ICAvLyBjYW4gYmUgdXNlZCBpbiB2
ZXJ0ZXggc2hhZGVyIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleF92
ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFi
OGNjNDU1NWUzMzhjM2YzNzBkNDA0ZGUzNmM5OWE0ZjkyNTQ4NDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTMgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0dHJpYnV0ZSB2ZWM0
IGd0Zl9WZXJ0ZXg7Cit2b2lkIG1haW4oKQoreworICAgIGd0Zl9WZXJ0ZXggPSB2ZWM0KDEuMCwy
LjAsMy4wLCA0LjApOyAvLyBjYW5ub3QgbW9kaWZ5IGFuIGF0dHJpYnV0ZQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxl
MV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODllMmM2YmJiMjg5NzlmNjQzNTJjNGMyNTYzMjljMThh
ZDdiZWUzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlMV9mcmFnLmZy
YWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRp
Zgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICB3aGlsZShpKSB7ICAvLyBjb25kaXRp
b24gc2hvdWxkIGJlIGJvb2xlYW4KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC93aGlsZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUyX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMWU3NWNmYTkwZGVmZGMxNTFkM2UwOWNjNmI4NTlhZjVkZTY1OTk5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGUyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIHdoaWxlKGZsb2F0IGYgPSA1LjApIHsgIC8vIGNhbm5vdCBkZWNsYXJlIHZhcmlhYmxl
cyBpbiBjb25kaXRpb24KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGls
ZV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODkxZDA5OTJiMDAyOGU3MGRlMmE3MTNlYTkxMjI2OWMwYzQxZTMzYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3doaWxlX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZs
b2F0IGY7CisgICAgd2hpbGUoZikgeyAgLy8gY29uZGl0aW9uIHNob3VsZCBiZSBib29sZWFuCisg
ICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvcHJvZ3JhbS10ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFt
cy9wcm9ncmFtLXRlc3QuaHRtbAppbmRleCBiNWQ1YjU5MWQ1MTJkOTU5Y2ZmZDRjMDc5NmM3N2Jk
ZTc1ODcxZTU1Li4zNGNhNjhmMWQ3NWE1OTA5MWMwYmZjMThlMWQ3Zjk0NDJkMTM2MjZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9wcm9ncmFtcy9wcm9ncmFtLXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9wcm9ncmFtcy9wcm9ncmFt
LXRlc3QuaHRtbApAQCAtMzEyLDkgKzMxMiw5IEBAIGZ1bmN0aW9uIGdvKCkgewogICAgIGFzc2Vy
dE1zZyhnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dHb29kMiwgZ2wuTElOS19TVEFUVVMpID09
IGZhbHNlLAogICAgICAgICAgICAgICAibGlua2luZyBzaG91bGQgZmFpbCB3aXRoIGluLXVzZSBm
b3JtZXJseSBnb29kIHByb2dyYW0sIHdpdGggbmV3IGJhZCBzaGFkZXIgYXR0YWNoZWQiKTsKIAot
ICAgIC8vIEludmFsaWQgbGluayBsZWF2ZXMgcHJldmlvdXMgdmFsaWQgcHJvZ3JhbSBpbnRhY3Qu
CisgICAgLy8gSW4gV2ViR0wsIGFuIHVuc3VjY2Vzc2Z1bCBsaW5rIGltbWVkaWF0ZWx5IGludmFs
aWRhdGVzIHRoZSBwcmV2aW91cyB2YWxpZCBwcm9ncmFtLgogICAgIGdsLmRyYXdBcnJheXMoZ2wu
VFJJQU5HTEVTLCAwLCAzKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgImRyYXdpbmcgd2l0aCBhIHZhbGlkIHByb2dyYW0gc2hvdWxkbid0IGdlbmVyYXRlIGEgR0wg
ZXJyb3IiKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgImRyYXdpbmcgd2l0aCBhIG5ld2x5LWludmFsaWRhdGVkIHByb2dyYW0gc2hvdWxkIGdlbmVy
YXRlIElOVkFMSURfT1BFUkFUSU9OIik7CiAKICAgICBnbC51c2VQcm9ncmFtKHByb2dHb29kMSk7
CiAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDQpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVu
ZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDMzNTU1ZjJiYmZlYTlmZDViYjIxZjFjMmMyNDkxMzRhMTJjYzlkYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdp
dGgtc2Npc3Nvci10ZXN0Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCEtLQorQ29weXJpZ2h0IChj
KSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Q2xlYXIgd2l0aCBzY2lzc29yIGJ1
ZyBvbiBXZWJHTCBjYW52YXM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2Fu
dmFzLXdlYmdsIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiPiA8L2NhbnZhcz4KKzxjYW52YXMgaWQ9
ImNhbnZhcy0yZCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj4gPC9jYW52YXM+CisKKzxzY3JpcHQ+
CisidXNlIHN0cmljdCI7CisvLyBUaGlzIHRlc3QgZXhwb3NlcyBhbiBpc3N1ZSBpbiBvbGRlciBJ
bnRlbCBEM0QgZHJpdmVycy4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKworZnVuY3Rpb24g
dGVzdF9jbGVhcl93aXRoX3NjaXNzb3Jfb25fY2FudmFzKCkKK3sKKyAgdmFyIGNhbnZhc1dlYkdM
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcy13ZWJnbCIpOworICB2YXIgZ2wgPSBj
YW52YXNXZWJHTC5nZXRDb250ZXh0KCJ3ZWJnbCIsIHsgYW50aWFsaWFzOmZhbHNlIH0pOworICBj
b25zdCBzY2lzc29yUmVjdFNpemUgPSAxNjsKKyAgZ2wuZW5hYmxlKGdsLlNDSVNTT1JfVEVTVCk7
CisgIGdsLnNjaXNzb3IoMCwgMCwgc2Npc3NvclJlY3RTaXplLCBzY2lzc29yUmVjdFNpemUpOwor
ICBnbC5jbGVhckNvbG9yKDAsIDEsIDAsIDEpOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUKTsKKworICAvLyBUaGUgaXNzdWUgaXMgZm91bmQgaW4gdGhlIENocm9taXVtIGNvbXBvc2l0
b3Igc28gd2UgbmVlZCBhbm90aGVyIGNhbnZhcyBlbGVtZW50IGZvciByZXByb2R1Y3Rpb24uCisg
IHZhciBjYW52YXMyRCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMtMmQiKTsKKyAg
dmFyIGNvbnRleHQyRCA9IGNhbnZhczJELmdldENvbnRleHQoJzJkJyk7CisgIGNvbnRleHQyRC5k
cmF3SW1hZ2UoY2FudmFzV2ViR0wsIDAsIDApOworICBjb250ZXh0MkQuZmlsbCgpOworCisgIHZh
ciBpbWFnZURhdGEgPQorICAgIGNvbnRleHQyRC5nZXRJbWFnZURhdGEoMCwgY2FudmFzMkQuY2xp
ZW50SGVpZ2h0IC0gc2Npc3NvclJlY3RTaXplLCBzY2lzc29yUmVjdFNpemUsIHNjaXNzb3JSZWN0
U2l6ZSk7CisgIHZhciBkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CisgIHZhciBleHBlY3RlZENvbG9y
ID0gWzAsIDI1NSwgMCwgMjU1XTsKKyAgZm9yICh2YXIgcGl4ZWxJbmRleCA9IDA7IHBpeGVsSW5k
ZXggPCBzY2lzc29yUmVjdFNpemUgKiBzY2lzc29yUmVjdFNpemU7ICsrcGl4ZWxJbmRleCkgewor
ICAgIGZvciAodmFyIGNvbG9ySW5kZXggPSAwOyBjb2xvckluZGV4IDwgNDsgKytjb2xvckluZGV4
KSB7CisgICAgICBpZiAoZGF0YVtwaXhlbEluZGV4ICogNCArIGNvbG9ySW5kZXhdICE9PSBleHBl
Y3RlZENvbG9yW2NvbG9ySW5kZXhdKSB7CisgICAgICAgIHZhciB5ID0gTWF0aC5mbG9vcihwaXhl
bEluZGV4IC8gc2Npc3NvclJlY3RTaXplKTsKKyAgICAgICAgdmFyIHggPSBwaXhlbEluZGV4ICUg
c2Npc3NvclJlY3RTaXplOworICAgICAgICB0ZXN0RmFpbGVkKCJUaGUgY2FudmFzIGNvbG9yIGF0
ICgiICsgeCArICIsICIgKyB5ICsgIikgaXMgbm90IGV4cGVjdGVkIik7CisgICAgICAgIHJldHVy
bjsKKyAgICAgIH0KKyAgICB9CisgIH0KK30KKwordGVzdF9jbGVhcl93aXRoX3NjaXNzb3Jfb25f
Y2FudmFzKCk7CisKK2Rlc2NyaXB0aW9uKCJFeHBvc2VzIGNsZWFyaW5nIFdlYkdMIGNhbnZhcyB3
aXRoIHNjaXNzb3IgYnVnIG9uIEludGVsIEQzRCBkcml2ZXJzIC0gc2VlIGh0dHBzOi8vY3JidWcu
Y29tLzEyMDY3NjMiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQt
bm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5k
ZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZl
ci1yZXNvbHV0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JiYTUyZTlhOTcwYmJiOTQwZjZiZGQ4Nzgy
MWVlMzFkMTRlNDcxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNo
b3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbApA
QCAtMCwwICsxLDcxIEBACis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
LS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb2xvck1hc2sgU2hvdWxkIE5vdCBBZmZlY3QgQW50aWFsaWFz
ZWQgRnJhbWVidWZmZXIgUmVzb2x1dGlvbjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZh
cyBpZD0iY2FudmFzIiB3aWR0aD0iOCIgaGVpZ2h0PSI4Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
InVzZSBzdHJpY3QiOworCitjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2Rlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgY29sb3JNYXNrIHN0YXRlIGRvZXMgbm90IGFm
ZmVjdCByZXNvbHV0aW9uIG9mIHRoZSBhbnRpYWxpYXNlZCBmcmFtZWJ1ZmZlci4iKTsKKworZGVi
dWcoJ1JlZ3Jlc3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTI1Nzc2
OSI+aHR0cHM6Ly9jcmJ1Zy5jb20vMTI1Nzc2OTwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjkiPmh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjk8L2E+Jyk7CisKK2Z1bmN0aW9uIHJ1bigpIHsKKyAg
ICBjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIsIHsgYW50aWFsaWFzOiB0
cnVlLCBhbHBoYTogdHJ1ZSB9KTsKKworICAgIGlmICghZ2wpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0ZXN0UGFzc2VkKCJXZWJHTCBjb250ZXh0
IGV4aXN0cyIpOworCisgICAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1cENvbG9yUXVhZChnbCk7
CisKKyAgICAvLyBDbGVhciB0aGUgZGVmYXVsdCAobXVsdGlzYW1wbGVkKSBmcmFtZWJ1ZmZlciB0
byByZWQuCisgICAgZ2wuY2xlYXJDb2xvcigxLCAwLCAwLCAxKTsKKyAgICBnbC5jb2xvck1hc2so
dHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCk7CisKKyAgICAvLyBEcmF3IGEgdHJhbnNwYXJlbnQgZ3JlZW4gcXVhZC4KKyAgICBnbC51c2VQ
cm9ncmFtKHByb2dyYW0pOworICAgIHd0dS5kcmF3RmxvYXRDb2xvclF1YWQoZ2wsIFsgMCwgMjU1
LCAwLCAwIF0pOworCisgICAgLy8gQ2xlYXIgdGhlIGFscGhhIGNoYW5uZWwuCisgICAgZ2wuY29s
b3JNYXNrKGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUpOworICAgIGdsLmNsZWFyQ29sb3IoMCwg
MCwgMCwgMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisKKyAgICAvLyBB
dCB0aGlzIHBvaW50LCBldmVuIHNldHRpbmcgdGhlIGNvbG9yTWFzayB0byBhbGwtdHJ1ZSB3b24n
dAorICAgIC8vIHdvcmsgYXJvdW5kIHRoZSBidWcsIHNpbmNlIHRoYXQgc3RhdGUgaXMgbGF0Y2hl
ZCBpbnNpZGUgQU5HTEUKKyAgICAvLyBvbmx5IGR1cmluZyBkcmF3cyAvIGNsZWFycy4KKworICAg
IHd0dS5jaGVja0NhbnZhcyhnbCwgWyAwLCAyNTUsIDAsIDI1NSBdLCAic2hvdWxkIGJlIGdyZWVu
IiwgMSk7CisgICAgZmluaXNoVGVzdCgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKworcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJ1bik7CisKKzwvc2NyaXB0PgorCis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKaW5kZXggNTMwYTRiNDMxM2FmZTAxNDQy
NzQ4MWNmYjFjNDZiNWMzMWU2MTMxYS4uN2FhMmNlZGY5OTk3Y2QxZmQ1ODVjZjY0NjQ2OWEwNjBi
YWFhOTk1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbApAQCAtMjAsNyArMjAsNSBAQCBmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KIHZhciBjb250ZXh0VmVyc2lvbiA9IDE7CiA8L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy90ZXN0cy9nbC1vYmplY3QtZ2V0LWNhbGxzLmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1m
aWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFi
bGUtcmVuZGVyYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNzY5NGI4MjFlYjFlZjFiYzgzNjg1NDM0
ODU0YjJhYTk4MDMyYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1m
aWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbApAQCAtMCwwICsxLDM3OCBAQAorPCEtLQorQ29weXJp
Z2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
K2Rlc2NyaXB0aW9uKCk7CisKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOworZ2wu
Y2FudmFzLndpZHRoID0gZ2wuY2FudmFzLmhlaWdodCA9IDE7CisKK2Z1bmN0aW9uIG1ha2VUZXhJ
bWFnZShmb3JtYXQsIHVucGFja0Zvcm1hdCwgdW5wYWNrVHlwZSwgZGF0YSkgeworICAgIGRhdGEg
PSBkYXRhIHx8IG51bGw7CisKKyAgICBjb25zdCB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cisg
ICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIs
IGdsLk5FQVJFU1QpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbZm9y
bWF0XSwgMiwgMiwgMCwKKyAgICAgICAgICAgICAgICBnbFt1bnBhY2tGb3JtYXRdLCBnbFt1bnBh
Y2tUeXBlXSwgbnVsbCk7CisgICAgcmV0dXJuIHRleDsKK30KKworY29uc3QgRFVNTVlfQ09MT1Ig
PSBtYWtlVGV4SW1hZ2UoJ1JHQkEnLCAnUkdCQScsICdVTlNJR05FRF9CWVRFJyk7CisKK2Z1bmN0
aW9uIG1ha2VQcm9ncmFtKGdsLCB2c1NyYywgZnNTcmMpIHsKKyAgZnVuY3Rpb24gbWFrZVNoYWRl
cihwcm9nLCB0eXBlLCBzcmMpIHsKKyAgICBjb25zdCBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIo
Z2xbdHlwZV0pOworICAgIGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNyYy50cmltKCkpOworICAg
IGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKyAgICBnbC5hdHRhY2hTaGFkZXIocHJvZywgc2hh
ZGVyKTsKKyAgICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgfTsKKworICBjb25zdCBwcm9n
ID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBtYWtlU2hhZGVyKHByb2csICdWRVJURVhfU0hBREVS
JywgdnNTcmMpOworICBtYWtlU2hhZGVyKHByb2csICdGUkFHTUVOVF9TSEFERVInLCBmc1NyYyk7
CisgIGdsLmxpbmtQcm9ncmFtKHByb2cpOworCisgIGlmICghZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihwcm9nLCBnbC5MSU5LX1NUQVRVUykpIHsKKyAgICB0aHJvdyAnUHJvZ3JhbSBsaW5raW5nIGZh
aWxlZCcgKyBmc1NyYzsKKyAgfQorICByZXR1cm4gcHJvZzsKK30KKworY29uc3QgVEVYX0ZJTFRF
Ul9QUk9HX1QgPSAodmVyc2lvbiwgc2FtcGxlclQpID0+IG1ha2VQcm9ncmFtKGdsLCBgXAorICAg
ICR7dmVyc2lvbn0KKyAgICB2b2lkIG1haW4oKSB7CisgICAgICAgIGdsX1BvaW50U2l6ZSA9IDEu
MDsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuNSwwLjUsMCwxKTsKKyAgICB9YCxgXAor
ICAgICR7dmVyc2lvbn0KKyAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyAgICB1bmlmb3Jt
ICR7c2FtcGxlclR9IHVfdGV4MDsKKyAgICAjaWYgX19WRVJTSU9OX18gPT0gMzAwCisgICAgb3V0
IHZlYzQgb19GcmFnQ29sb3I7CisgICAgI2Vsc2UKKyAgICAjZGVmaW5lIG9fRnJhZ0NvbG9yIGds
X0ZyYWdDb2xvcgorICAgICNkZWZpbmUgdGV4dHVyZSB0ZXh0dXJlMkQKKyAgICAjZW5kaWYKKyAg
ICB2b2lkIG1haW4oKSB7CisgICAgICAgIG9fRnJhZ0NvbG9yID0gdmVjNCh0ZXh0dXJlKHVfdGV4
MCwgdmVjMigwLjgpKSk7CisgICAgfWApOworY29uc3QgVEVYX0ZJTFRFUl9QUk9HX0JZX1RZUEVJ
U0ggPSB7CisgICAgJ2Zsb2F0JzogVEVYX0ZJTFRFUl9QUk9HX1QoJycsICdzYW1wbGVyMkQnKSwK
K307CitpZiAod3R1LmlzV2ViR0wyKGdsKSkgeworICAgIFRFWF9GSUxURVJfUFJPR19CWV9UWVBF
SVNIWydpbnQnXSA9CisgICAgICAgIFRFWF9GSUxURVJfUFJPR19UKCcjdmVyc2lvbiAzMDAgZXMn
LCAnaGlnaHAgaXNhbXBsZXIyRCcpOworICAgIFRFWF9GSUxURVJfUFJPR19CWV9UWVBFSVNIWyd1
aW50J10gPQorICAgICAgICBURVhfRklMVEVSX1BST0dfVCgnI3ZlcnNpb24gMzAwIGVzJywgJ2hp
Z2hwIHVzYW1wbGVyMkQnKTsKK30KKworZnVuY3Rpb24gcnVuUGl4ZWxQcm9ncmFtKGdsLCBwcm9n
KSB7CisgICAgZ2wudXNlUHJvZ3JhbShwcm9nKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZG
RVJfQklUKTsKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7CisgICAgY29uc3Qg
Ynl0ZXMgPSBuZXcgVWludDhBcnJheSg0KTsKKyAgICBnbC5yZWFkUGl4ZWxzKDAsMCwxLDEsZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnl0ZXMpOworICAgIHJldHVybiBbXS5tYXAuY2FsbChi
eXRlcywgeCA9PiB4LzI1NS4wKTsKK30KKworLy8gR0xFUyAyLjAuMjUgcDYzCitjb25zdCBGT1JN
QVRfSU5GT19XRUJHTDEgPSB7CisgICAgUkdCQTggIDogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjog
dHJ1ZSAgICAgLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSR0I4
ICAgOiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiB1bmRlZmluZWQsIHVucGFjazogWydSR0InLCAn
VU5TSUdORURfQllURSddIH0sCisgICAgUkdCQTQgIDogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjog
dW5kZWZpbmVkLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9TSE9SVF80XzRfNF80J10gfSwK
KyAgICBSR0I1X0ExOiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiB1bmRlZmluZWQsIHVucGFjazog
WydSR0JBJywgJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnXSB9LAorICAgIFJHQjU2NSA6IHsgZmls
dGVyOiB0cnVlLCByZW5kZXI6IHVuZGVmaW5lZCwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9T
SE9SVF81XzZfNSddIH0sCisgICAgTEE4ICAgIDogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjogZmFs
c2UgICAgLCB1bnBhY2s6IFsnTFVNSU5BTkNFX0FMUEhBJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAor
ICAgIEw4ICAgICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IGZhbHNlICAgICwgdW5wYWNrOiBb
J0xVTUlOQU5DRScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBBOCAgICAgOiB7IGZpbHRlcjog
dHJ1ZSwgcmVuZGVyOiBmYWxzZSAgICAsIHVucGFjazogWydBTFBIQScsICdVTlNJR05FRF9CWVRF
J10gfSwKK307CisKKy8vIEdMRVMgMy4wLjYgcDEzMC0xMzIKK2NvbnN0IEZPUk1BVF9JTkZPX1dF
QkdMMiA9IHsKKyAgICBSOCAgICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IHRy
dWUgLCB1bnBhY2s6IFsnUkVEJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFI4X1NOT1JNICAg
ICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSRUQnLCAnQllU
RSddIH0sCisgICAgUkc4ICAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVl
ICwgdW5wYWNrOiBbJ1JHJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHOF9TTk9STSAgICAg
OiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSRycsICdCWVRFJ10g
fSwKKyAgICBSR0I4ICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IHRydWUgLCB1
bnBhY2s6IFsnUkdCJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQjhfU05PUk0gICAgOiB7
IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0InLCAnQllURSddIH0s
CisgICAgUkdCNTY1ICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVlICwgdW5w
YWNrOiBbJ1JHQicsICdVTlNJR05FRF9TSE9SVF81XzZfNSddIH0sCisgICAgUkdCQTQgICAgICAg
ICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5T
SUdORURfU0hPUlRfNF80XzRfNCddIH0sCisgICAgUkdCNV9BMSAgICAgICA6IHsgcmVuZGVyOiB0
cnVlICwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfU0hPUlRfNV81
XzVfMSddIH0sCisgICAgUkdCQTggICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0
cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkdCQThfU05P
Uk0gICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAn
QllURSddIH0sCisgICAgUkdCMTBfQTIgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0
cnVlICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfSU5UXzEwXzEwXzEwXzInXSB9LAorICAg
IFJHQjEwX0EyVUkgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazog
WydSR0JBJywgJ1VOU0lHTkVEX0lOVF8xMF8xMF8xMF8yJ10gfSwKKyAgICBTUkdCOCAgICAgICAg
IDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ1VOU0lH
TkVEX0JZVEUnXSB9LAorICAgIFNSR0I4X0FMUEhBOCAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRl
cjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFIxNkYg
ICAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSRUQn
LCAnRkxPQVQnXSB9LAorICAgIFJHMTZGICAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRl
cjogdHJ1ZSAsIHVucGFjazogWydSRycsICdGTE9BVCddIH0sCisgICAgUkdCMTZGICAgICAgICA6
IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQicsICdGTE9BVCdd
IH0sCisgICAgUkdCQTE2RiAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwg
dW5wYWNrOiBbJ1JHQkEnLCAnRkxPQVQnXSB9LAorICAgIFIzMkYgICAgICAgICAgOiB7IHJlbmRl
cjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnRkxPQVQnXSB9LAorICAg
IFJHMzJGICAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazog
WydSRycsICdGTE9BVCddIH0sCisgICAgUkdCMzJGICAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwg
ZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdGTE9BVCddIH0sCisgICAgUkdCQTMyRiAg
ICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQkEnLCAn
RkxPQVQnXSB9LAorICAgIFIxMUZfRzExRl9CMTBGOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjog
dHJ1ZSAsIHVucGFjazogWydSR0InLCAnRkxPQVQnXSB9LAorICAgIFJHQjlfRTUgICAgICAgOiB7
IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0InLCAnRkxPQVQnXSB9
LAorICAgIFI4SSAgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVu
cGFjazogWydSRUQnLCAnQllURSddIH0sCisgICAgUjhVSSAgICAgICAgICA6IHsgcmVuZGVyOiB0
cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JFRCcsICdVTlNJR05FRF9CWVRFJ10gfSwK
KyAgICBSMTZJICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBh
Y2s6IFsnUkVEJywgJ0JZVEUnXSB9LAorICAgIFIxNlVJICAgICAgICAgOiB7IHJlbmRlcjogdHJ1
ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnVU5TSUdORURfQllURSddIH0sCisg
ICAgUjMySSAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNr
OiBbJ1JFRCcsICdCWVRFJ10gfSwKKyAgICBSMzJVSSAgICAgICAgIDogeyByZW5kZXI6IHRydWUg
LCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAg
IFJHOEkgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazog
WydSRycsICdCWVRFJ10gfSwKKyAgICBSRzhVSSAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBm
aWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkcnLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkcx
NkkgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JH
JywgJ1NIT1JUJ10gfSwKKyAgICBSRzE2VUkgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0
ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkcnLCAnVU5TSUdORURfU0hPUlQnXSB9LAorICAgIFJHMzJJ
ICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRycs
ICdJTlQnXSB9LAorICAgIFJHMzJVSSAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjog
ZmFsc2UsIHVucGFjazogWydSRycsICdVTlNJR05FRF9JTlQnXSB9LAorICAgIFJHQjhJICAgICAg
ICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0InLCAnQllU
RSddIH0sCisgICAgUkdCOFVJICAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxz
ZSwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSR0IxNkkgICAgICAg
IDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCJywgJ1NIT1JU
J10gfSwKKyAgICBSR0IxNlVJICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNl
LCB1bnBhY2s6IFsnUkdCJywgJ1VOU0lHTkVEX1NIT1JUJ10gfSwKKyAgICBSR0IzMkkgICAgICAg
IDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCJywgJ0lOVCdd
IH0sCisgICAgUkdCMzJVSSAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwg
dW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9JTlQnXSB9LAorICAgIFJHQkE4SSAgICAgICAgOiB7
IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JBJywgJ0JZVEUnXSB9
LAorICAgIFJHQkE4VUkgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVu
cGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQkExNkkgICAgICAgOiB7
IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JBJywgJ1NIT1JUJ10g
fSwKKyAgICBSR0JBMTZVSSAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1
bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9TSE9SVCddIH0sCisgICAgUkdCQTMySSAgICAgICA6
IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQkEnLCAnSU5UJ10g
fSwKKyAgICBSR0JBMzJVSSAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1
bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9JTlQnXSB9LAorCisgICAgREVQVEhfQ09NUE9ORU5U
MTY6ICB7IHJlbmRlcjogJ0RFUFRIX0FUVEFDSE1FTlQnLCBmaWx0ZXI6IGZhbHNlIH0sCisgICAg
REVQVEhfQ09NUE9ORU5UMjQ6ICB7IHJlbmRlcjogJ0RFUFRIX0FUVEFDSE1FTlQnLCBmaWx0ZXI6
IGZhbHNlIH0sCisgICAgREVQVEhfQ09NUE9ORU5UMzJGOiB7IHJlbmRlcjogJ0RFUFRIX0FUVEFD
SE1FTlQnLCBmaWx0ZXI6IGZhbHNlIH0sCisgICAgREVQVEgyNF9TVEVOQ0lMODogICB7IHJlbmRl
cjogJ0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVCcsIGZpbHRlcjogZmFsc2UgfSwKKyAgICBERVBU
SDMyRl9TVEVOQ0lMODogIHsgcmVuZGVyOiAnREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UJywgZmls
dGVyOiBmYWxzZSB9LAorfTsKKworY29uc3QgT05FX0JZX1RZUEUgPSB7CisgICAgJ0JZVEUnOiAo
MTw8NyktMSwKKyAgICAnVU5TSUdORURfQllURSc6ICgxPDw4KS0xLAorICAgICdTSE9SVCc6ICgx
PDwxNSktMSwKKyAgICAnVU5TSUdORURfU0hPUlQnOiAoMTw8MTYpLTEsCisgICAgJ0lOVCc6ICgx
PDwzMSktMSwKKyAgICAnVU5TSUdORURfSU5UJzogTWF0aC5wb3coMiwzMiktMSwKKyAgICAnRkxP
QVQnOiAxLAorfTsKKworY29uc3QgQUJWX0JZX1RZUEUgPSB7CisgICAgJ0JZVEUnOiBJbnQ4QXJy
YXksCisgICAgJ1VOU0lHTkVEX0JZVEUnOiBVaW50OEFycmF5LAorICAgICdTSE9SVCc6IEludDE2
QXJyYXksCisgICAgJ1VOU0lHTkVEX1NIT1JUJzogVWludDE2QXJyYXksCisgICAgJ0lOVCc6IElu
dDMyQXJyYXksCisgICAgJ1VOU0lHTkVEX0lOVCc6IFVpbnQzMkFycmF5LAorICAgICdGTE9BVCc6
IEZsb2F0MzJBcnJheSwKK307CisKK2Z1bmN0aW9uIHB1c2hCaXRzVW5vcm0ocHJldiwgYml0Q291
bnQsIGZsb2F0VmFsKSB7CisgICAgbGV0IHJldCA9IHByZXYgPDwgYml0Q291bnQ7CisgICAgcmV0
IHw9IGZsb2F0VmFsICogKCgxIDw8IGJpdENvdW50KS0xKTsKKyAgICByZXR1cm4gcmV0OworfQor
Citjb25zdCBDSEFOTkVMU19CWV9GT1JNQVQgPSB7CisgICAgJ1JFRCc6IDEsCisgICAgJ0xVTUlO
QU5DRSc6IDEsCisgICAgJ0FMUEhBJzogMSwKKyAgICAnTFVNSU5BTkNFX0FMUEhBJzogMiwKKyAg
ICAnUkcnOiAyLAorICAgICdSR0InOiAzLAorICAgICdSR0JBJzogNCwKK307CisKK2Z1bmN0aW9u
IHRocm93dih2YWwpIHsKKyAgICB0aHJvdyB2YWw7Cit9CisKK2Z1bmN0aW9uIHBpeGVsRGF0YUZv
clVucGFjayhmb3JtYXQsIHR5cGUsIGZsb2F0VmFsKSB7CisgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgICAgIGNhc2UgJ1VOU0lHTkVEX1NIT1JUXzVfNl81JzogeworICAgICAgICAgICAgbGV0IGJp
dHMgPSAwOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNSwgZmxvYXRW
YWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNiwgZmxvYXRWYWwp
OworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNSwgZmxvYXRWYWwpOwor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MTZBcnJheShbYml0c10pOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzQnOiB7CisgICAgICAgICAgICBsZXQg
Yml0cyA9IDA7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA0LCBmbG9h
dFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA0LCBmbG9hdFZh
bCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA0LCBmbG9hdFZhbCk7
CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA0LCBmbG9hdFZhbCk7Cisg
ICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQxNkFycmF5KFtiaXRzXSk7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSAnVU5TSUdORURfU0hPUlRfNV81XzVfMSc6IHsKKyAgICAgICAgICAgIGxldCBi
aXRzID0gMDsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0
VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0VmFs
KTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0VmFsKTsK
KyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDEsIGZsb2F0VmFsKTsgLy8g
T2ssIHNpbGx5IGZvciAxIGJpdCBoZXJlLgorICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MTZB
cnJheShbYml0c10pOworICAgICAgICB9CisgICAgICAgIGNhc2UgJ1VOU0lHTkVEX0lOVF8xMF8x
MF8xMF8yJzogeworICAgICAgICAgICAgbGV0IGJpdHMgPSAwOworICAgICAgICAgICAgYml0cyA9
IHB1c2hCaXRzVW5vcm0oYml0cywgMTAsIGZsb2F0VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBw
dXNoQml0c1Vub3JtKGJpdHMsIDEwLCBmbG9hdFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVz
aEJpdHNVbm9ybShiaXRzLCAxMCwgZmxvYXRWYWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hC
aXRzVW5vcm0oYml0cywgMiwgZmxvYXRWYWwpOyAvLyAyIGJpdHMgaXNuJ3QgbXVjaCBtb3JlIHVz
ZWZ1bAorICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50MzJBcnJheShbYml0c10pOworICAgICAg
ICB9CisgICAgfQorCisgICAgY29uc3QgY2hhbm5lbHMgPSBDSEFOTkVMU19CWV9GT1JNQVRbZm9y
bWF0XSB8fCB0aHJvd3YoZm9ybWF0KTsKKyAgICBjb25zdCBvbmUgPSBPTkVfQllfVFlQRVt0eXBl
XSB8fCB0aHJvd3YoJzI0MCcsIHR5cGUpOworICAgIGNvbnN0IGFidlR5cGUgPSBBQlZfQllfVFlQ
RVt0eXBlXSB8fCB0aHJvd3YoJzI0MScsIHR5cGUpOworCisgICAgY29uc3QgdmFsID0gZmxvYXRW
YWwgKiBvbmU7CisgICAgY29uc3QgYXJyID0gW107CisgICAgZm9yIChjb25zdCBpIG9mIHJhbmdl
KGNoYW5uZWxzKSkgeworICAgICAgICBhcnIucHVzaCh2YWwpOworICAgIH0KKyAgICByZXR1cm4g
bmV3IGFidlR5cGUoYXJyKTsKK30KKworZnVuY3Rpb24gZXhwZWN0KG5hbWUsIHdhcywgZXhwZWN0
ZWQpIHsKKyAgICBsZXQgdGV4dCA9IGAke25hbWV9IHdhcyAke3dhc31gOworICAgIGNvbnN0IGNv
bmQgPSB3YXMgPT0gZXhwZWN0ZWQ7CisgICAgaWYgKCFjb25kKSB7CisgICAgICAgIHRleHQgKz0g
YCwgYnV0IGV4cGVjdGVkICR7ZXhwZWN0ZWR9YDsKKyAgICB9CisgICAgZXhwZWN0VHJ1ZShjb25k
LCB0ZXh0KTsKK30KKworZnVuY3Rpb24gdG9UeXBlaXNoKHNpemVkRm9ybWF0KSB7CisgICAgaWYg
KHNpemVkRm9ybWF0LmVuZHNXaXRoKCdVSScpKSB7CisgICAgICAgIHJldHVybiAnaW50JzsKKyAg
ICB9IGVsc2UgaWYgKHNpemVkRm9ybWF0LmVuZHNXaXRoKCdJJykpIHsKKyAgICAgICAgcmV0dXJu
ICd1aW50JzsKKyAgICB9CisgICAgcmV0dXJuICdmbG9hdCc7Cit9CisKK2NhbGwoYXN5bmMgKCkg
PT4geworICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19BTElHTk1FTlQsIDEpOworCisgICAg
bGV0IGZvcm1hdExpc3QgPSBGT1JNQVRfSU5GT19XRUJHTDE7CisgICAgaWYgKHd0dS5pc1dlYkdM
MihnbCkpIHsKKyAgICAgICAgZm9ybWF0TGlzdCA9IEZPUk1BVF9JTkZPX1dFQkdMMjsKKyAgICB9
CisgICAgZm9yIChjb25zdCBbc2l6ZWRGb3JtYXQsIGluZm9dIG9mIE9iamVjdC5lbnRyaWVzKGZv
cm1hdExpc3QpKSB7CisgICAgICAgIGF3YWl0IHd0dS5kaXNwYXRjaFByb21pc2UoKTsKKyAgICAg
ICAgZGVidWcoYGApOworICAgICAgICBkZWJ1ZyhgJHtzaXplZEZvcm1hdH06ICR7SlNPTi5zdHJp
bmdpZnkoaW5mbyl9YCk7CisKKyAgICAgICAgY29uc3QgdHlwZWlzaCA9IHRvVHlwZWlzaChzaXpl
ZEZvcm1hdCk7CisKKyAgICAgICAgLy8gIHwtLS18LS0tfAorICAgICAgICAvLyAgfCAwIHwgMSB8
CisgICAgICAgIC8vICB8LS0tfC0tLXwKKyAgICAgICAgLy8gMHwgMCB8IDAgfAorICAgICAgICAv
LyAgfC0tLXwtLS18CisgICAgICAgIC8vICAgIDAKKyAgICAgICAgY29uc3QgdGV4ID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgp
OworICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisKKyAgICAgICAgaWYgKGds
LnRleFN0b3JhZ2UyRCkgeworICAgICAgICAgICAgZ2wudGV4U3RvcmFnZTJEKGdsLlRFWFRVUkVf
MkQsIDEsIGdsW3NpemVkRm9ybWF0XSwgMiwgMik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW2luZm8udW5wYWNrWzBdXSwK
KyAgICAgICAgICAgICAgICAyLCAyLCAwLCBnbFtpbmZvLnVucGFja1swXV0sIGdsW2luZm8udW5w
YWNrWzFdXSwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5mby51bnBhY2spIHsK
KyAgICAgICAgICAgIGNvbnN0IG9uZSA9IHBpeGVsRGF0YUZvclVucGFjayguLi5pbmZvLnVucGFj
aywgMS4wKTsKKyAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgb25lLmNvbnN0cnVjdG9yKG9u
ZS5sZW5ndGgqNCk7CisgICAgICAgICAgICBkYXRhLnNldChvbmUsIG9uZS5sZW5ndGgqMyk7Cisg
ICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwKKyAgICAg
ICAgICAgICAgICAyLDIsIGdsW2luZm8udW5wYWNrWzBdXSwgZ2xbaW5mby51bnBhY2tbMV1dLCBk
YXRhKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGluZm8ucmVuZGVyIHx8IHRocm93
dihgJHtzaXplZEZvcm1hdH0gd2l0aG91dCB1bnBhY2sgb3IgcmVuZGVyYCk7CisgICAgICAgIH0K
KworICAgICAgICAvLyAtCisgICAgICAgIC8vIGNvbG9yLXJlbmRlcmFibGUgdGVzdAorCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGZiID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKKyAg
ICAgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmIpOworICAgICAg
ICAgICAgbGV0IGF0dGFjaCA9IGluZm8ucmVuZGVyIHx8IHRydWU7CisgICAgICAgICAgICBjb25z
dCBpc0NvbG9yID0gKGF0dGFjaCA9PT0gdHJ1ZSk7CisgICAgICAgICAgICBpZiAoaXNDb2xvcikg
eworICAgICAgICAgICAgICAgIGF0dGFjaCA9ICdDT0xPUl9BVFRBQ0hNRU5UMCc7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnbC5URVhUVVJFXzJELCBEVU1NWV9DT0xPUiwgMCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJV
RkZFUiwgZ2xbYXR0YWNoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds
LlRFWFRVUkVfMkQsIHRleCwgMCk7CisgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKKyAgICAgICAgICAgIGNvbnN0IHdh
c1JlbmRlcmFibGUgPSAoc3RhdHVzID09IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKKyAgICAg
ICAgICAgIGlmIChpbmZvLnJlbmRlciA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAg
ZGVidWcoYE5vbi1ub3JtYXRpdmU6IGNvbG9yLXJlbmRlcmFibGUgd2FzICR7d2FzUmVuZGVyYWJs
ZX1gKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KCdjb2xv
ci1yZW5kZXJhYmxlJywgd2FzUmVuZGVyYWJsZSwgISFpbmZvLnJlbmRlcik7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAod2FzUmVuZGVyYWJsZSkgeworICAgICAgICAgICAgICAgIGds
LmNsZWFyQ29sb3IoMCwwLDAsMCk7CisgICAgICAgICAgICAgICAgZ2wuY2xlYXJEZXB0aCgwKTsK
KyAgICAgICAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7CisgICAgICAgICAgICAgICAgZ2wuZW5hYmxlKGdsLlNDSVNTT1JfVEVTVCk7
CisgICAgICAgICAgICAgICAgZ2wuc2Npc3NvcigxLDEsMSwxKTsKKyAgICAgICAgICAgICAgICBn
bC5jbGVhckNvbG9yKDEsMSwxLDEpOworICAgICAgICAgICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7
CisgICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOworICAgICAgICAgICAgICAgIGdsLmRpc2FibGUoZ2wuU0NJU1NPUl9URVNU
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdsLmRlbGV0ZUZyYW1lYnVmZmVyKGZiKTsK
KyAgICAgICAgICAgIGlmICghd2FzUmVuZGVyYWJsZSAmJiAhaW5mby51bnBhY2spIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCdObyB1bnBhY2sgcHJvdmlkZWQgYW5kICF3YXNSZW5kZXJh
YmxlLCBza2lwcGluZyBmaWx0ZXJpbmcgc3VidGVzdC4uLicpOworICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gLQorICAgICAg
ICAvLyBmaWx0ZXJhYmxlIHRlc3QKKworICAgICAgICBjb25zdCBwcm9nID0gVEVYX0ZJTFRFUl9Q
Uk9HX0JZX1RZUEVJU0hbdHlwZWlzaF07CisgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleCk7CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMCk7CisgICAgICAgIGds
LmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7CisgICAgICAgIGdsLnZpZXdw
b3J0KDAsMCwxLDEpOworICAgICAgICBjb25zdCB2ID0gcnVuUGl4ZWxQcm9ncmFtKGdsLCBwcm9n
KTsKKyAgICAgICAgaWYgKHNpemVkRm9ybWF0ICE9ICdBOCcpIHsKKyAgICAgICAgICAgIHZbM10g
PSAwOyAvLyBJbmNvbXBsZXRlIG5vLWFscGhhIGZvcm1hdHMgcHV0IDEgaW4gYWxwaGEuCisgICAg
ICAgIH0KKyAgICAgICAgY29uc3Qgd2FzRmlsdGVyYWJsZSA9IHYuc29tZSh4ID0+ICEheCk7Cisg
ICAgICAgIGV4cGVjdCgnZmlsdGVyYWJsZScsIHdhc0ZpbHRlcmFibGUsIGluZm8uZmlsdGVyKTsK
KyAgICB9CisKKyAgICBmaW5pc2hUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZv
cm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyMDg2OTZlOThhOGVjZmVkNDlmM2I2YWU3Y2Y5ZTg3Y2VlZmZhNWFkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTI1ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4K
LQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHRpdGxlPldlYkdMIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVzdHMgZm9y
IE9mZnNjcmVlbkNhbnZhczwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9q
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08Y2FudmFz
IGlkPSJjYW52YXMiPjwvY2FudmFzPgotPGltZyBpZD0iaW1nIiBzdHlsZT0iZGlzcGxheTpub25l
OyI+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
Ci0vLyBDaGVja3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlvbi4KLWZ1bmN0aW9uIGNh
dXNlZEV4Y2VwdGlvbihmdW5jKSB7Ci0gIHZhciBoYWRFeGNlcHRpb24gPSBmYWxzZTsKLSAgdHJ5
IHsKLSAgICBmdW5jKCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGhhZEV4Y2VwdGlvbiA9IHRydWU7
Ci0gIH0KLSAgcmV0dXJuIGhhZEV4Y2VwdGlvbjsKLX0KLQotdmFyIGRlZmF1bHRJbWdVcmwgPSAi
aHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy9vcGVuZ2xfbG9nby5q
cGciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy9vcGVuZ2xfbG9nby5q
cGciOwotCi12YXIgaW1nRG9tYWluOwotdmFyIHBhZ2VEb21haW47Ci0KLWZ1bmN0aW9uIGltYWdl
TG9hZGVkKGltZykgewotICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1w
bGVtZW50YXRpb25zIGZvciBPZmZzY3JlZW5DYW52YXMgZm9sbG93IHByb3BlciBzYW1lLW9yaWdp
biByZXN0cmljdGlvbnMuIik7Ci0KLSAgaWYgKCF3aW5kb3cuT2Zmc2NyZWVuQ2FudmFzKSB7Ci0g
ICAgdGVzdFBhc3NlZCgiTm8gT2Zmc2NyZWVuQ2FudmFzIHN1cHBvcnQiKTsKLSAgICBmaW5pc2hU
ZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgYXNzZXJ0TXNnKGltZy53aWR0aCA+IDAgJiYg
aW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIpOwotICBpbWdEb21haW4gPSB3dHUuZ2V0
QmFzZURvbWFpbih3dHUuZ2V0SG9zdChpbWcuc3JjKSk7Ci0gIHBhZ2VEb21haW4gPSB3dHUuZ2V0
QmFzZURvbWFpbih3aW5kb3cubG9jYXRpb24uaG9zdCk7Ci0gIGFzc2VydE1zZyhpbWdEb21haW4g
IT0gcGFnZURvbWFpbiwKLSAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsgaW1nRG9tYWluICsg
IikgYW5kIHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBub3QgdGhlIHNhbWUu
Iik7Ci0KLSAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBm
dW5jdGlvbigpIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVu
Y3Rpb24gbWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFr
ZVJlYWRQaXhlbHMoZ2wpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYnVm
ID0gbmV3IFVpbnQ4QXJyYXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQotCi0gIHZhciBvZmZz
Y3JlZW5jYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7Ci0gIHZhciBnbCA9IHd0
dS5jcmVhdGUzRENvbnRleHQob2Zmc2NyZWVuY2FudmFzKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRl
YnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5vdGhl
ciBvcmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRl
eHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFr
ZVRleEltYWdlMkQoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBjcm9z
cy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNh
dXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAi
dGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uLiIpOwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdv
cmsgYWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRF
eGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNo
b3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdp
biBvZiBXZWJHTCBjYW52YXMuIik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0
byB1cGxvYWQgYSB0YWludGVkIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIg
Y2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotICB2YXIgY3R4MmQg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7
Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGNhbnZhcykp
LAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBz
aG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1h
a2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJE
IHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsK
LQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3JrIGFnYWlu
c3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9u
KG1ha2VSZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2
ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2Vi
R0wgY2FudmFzLiIpOwotCi0gIC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRlby4KLSAgLy8gVE9E
TzogU2hvdWxkIGNoZWNrIENPUlMgc3VwcG9ydC4KLQotICBmaW5pc2hUZXN0KCk7Ci19Ci0KLShh
c3luYyBmdW5jdGlvbigpIHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ltZycpOwotICB0cnkgewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENy
b3NzT3JpZ2luSW1hZ2UoaW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOwotICB9IGNh
dGNoIChlKSB7Ci0gICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsK
LSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGltYWdlTG9hZGVkKGltZyk7
Ci19KSgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmI3ZjU3MjE3MzVmMDE3MzRhN2UxZDZiZTM5M2NlMDdhNjEyYWYwMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLTwhLS0K
LUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi1Vc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIE9y
aWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgotPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzMSI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJj
YW52YXMyIj48L2NhbnZhcz4KLTxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLQotLy8g
Q2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1mdW5jdGlvbiBjYXVzZWRF
eGNlcHRpb24oZnVuYykgewotICB2YXIgaGFkRXhjZXB0aW9uID0gZmFsc2U7Ci0gIHRyeSB7Ci0g
ICAgZnVuYygpOwotICB9IGNhdGNoKGUpIHsKLSAgICBoYWRFeGNlcHRpb24gPSB0cnVlOwotICB9
Ci0gIHJldHVybiBoYWRFeGNlcHRpb247Ci19Ci0KLXZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBz
Oi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsK
LXZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsK
LQotdmFyIGltZ0RvbWFpbjsKLXZhciBwYWdlRG9tYWluOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZDsKLQotZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1nKSB7Ci0gIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IHByb3BlciBzYW1lLW9yaWdp
biByZXN0cmljdGlvbnMuIik7Ci0KLSAgYXNzZXJ0TXNnKGltZy53aWR0aCA+IDAgJiYgaW1nLmhl
aWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIpOwotICBpbWdEb21haW4gPSB3dHUuZ2V0QmFzZURv
bWFpbih3dHUuZ2V0SG9zdChpbWcuc3JjKSk7Ci0gIHBhZ2VEb21haW4gPSB3dHUuZ2V0QmFzZURv
bWFpbih3aW5kb3cubG9jYXRpb24uaG9zdCk7Ci0gIGFzc2VydE1zZyhpbWdEb21haW4gIT0gcGFn
ZURvbWFpbiwKLSAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsgaW1nRG9tYWluICsgIikgYW5k
IHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBub3QgdGhlIHNhbWUuIik7Ci0K
LSAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlv
bigpIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24g
bWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAg
ICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVJlYWRQ
aXhlbHMoZ2wpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYnVmID0gbmV3
IFVpbnQ4QXJyYXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VU
b0RhdGFVUkwoY2FudmFzKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGRh
dGEgPSBjYW52YXMudG9EYXRhVVJMKCk7Ci0gICAgfQotICB9Ci0KLSAgdmFyIGNhbnZhczEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMSIpOwotICB2YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KGNhbnZhczEpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHRoYXQg
YW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9yaWdpbiB0aHJvd3Mg
YW4gZXhjZXB0aW9uLiIpOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBudWxsKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwg
aW1nKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBz
aG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1h
a2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdp
dGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0KLSAgZGVi
dWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRpbnVlIHRvIHdvcmsg
YWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFr
ZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0
aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBj
YW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2Fu
dmFzMSkpLAotICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uIGJ5IHRvRGF0
YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmlnaW4gY2xlYW4uIik7
Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVkIGNh
bnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgY2FudmFzMiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjYW52YXMyIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZhczIuZ2V0Q29udGV4
dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gIGFzc2VydE1zZyhjYXVz
ZWRFeGNlcHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMyKSksCi0gICAgICAgICAgICAic2hvdWxk
IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFz
LiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52
YXMyKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2Fu
dmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRp
b24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGNhbnZhczIpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJ
bWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGFuZCB0b0RhdGFVUkwgY29u
dGludWUgdG8gd29yayBhZ2FpbnN0IHRoaXMgY2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNl
ZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAgInJlYWRQaXhlbHMg
c2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3Jp
Z2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFr
ZVRvRGF0YVVSTChjYW52YXMxKSksCi0gICAgICAgICAgICAic2hvdWxkIG5vdCB0aHJvdyBleGNl
cHRpb24gYnkgdG9EYXRhVVJMIGZvciBXZWJHTCBjYW52YXMsIHdoaWNoIHNob3VsZCBzdGF5IG9y
aWdpbiBjbGVhbi4iKTsKLQotICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCi0gIC8vIFRP
RE86IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCi0KLSAgZGVidWcoIiIpOwotICBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIp
OwotICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+
Jyk7Ci0gIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCk7Ci19Ci0KLShhc3luYyBmdW5jdGlvbigp
IHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZycpOwotICB0cnkg
ewotICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2Uo
aW1nLCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOwotICB9IGNhdGNoIChlKSB7Ci0gICAg
dGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsKLSAgICBmaW5pc2hUZXN0
KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGltYWdlTG9hZGVkKGltZyk7Ci19KSgpOwotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFn
ZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZWI5OGIxNDA1NmQyMGFjODc1Nzg2Nzc4MTg0NmZlYmVlMDY0NmJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbApAQCAtMCwwICsxLDE2
NCBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorCis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2Ny
aXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyBjb3Jy
ZWN0IGNoYW5uZWwgbWFwcGluZyBvZiBkaWZmZXJlbnQgUE5HIGltYWdlIHR5cGVzLiIpOworCitj
b25zdCB0ZXN0RGF0YSA9IHsKKyAgICAiR3JheXNjYWxlIjogeworICAgICAgICBzcmM6IFsKKyAg
ICAgICAgICAgIC8vIFsweDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBQUFBQUE2ZnB0VkFBQUFDa2xFUVZRSTEy
TndBQUFBUWdCQmc3bnNyUUFBQUFCSlJVNUVya0pnZ2c9PSIsCisgICAgICAgICAgICAvLyBbMHg0
MDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBQUVBQUFBQkVBQUFBQUJxN2tjV0FBQUFDMGxFUVZRSTEyTndjQUFBQU1NQWdVZW5M
RUlBQUFBQVNVVk9SSzVDWUlJPSIKKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0YXRpb25zOiBb
CisgICAgICAgICAgICB7IGNvbG9yOiBbMHgwMCwgMHgwMCwgMHgwMCwgMHhGRl0sIGZvcm1hdDog
IkFMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4NDAsIDB4RkZd
LCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0
MCwgMHhGRl0sIGZvcm1hdDogIlJHQkEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwg
MHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRSIgfSwKKyAgICAgICAgICAgIHsg
Y29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweEZGXSwgZm9ybWF0OiAiTFVNSU5BTkNFX0FMUEhB
IiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4MDAsIDB4MDAsIDB4RkZdLCBmb3Jt
YXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDogIlI4IiB9LAorICAgICAgICAgICAgeyBjb2xvcjog
WzB4NDAsIDB4NDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRyIsIGludGVybmFsZm9ybWF0OiAi
Ukc4IiB9CisgICAgICAgIF0KKyAgICB9LAorICAgICJHcmF5c2NhbGUgQWxwaGEiOiB7CisgICAg
ICAgIHNyYzogWworICAgICAgICAgICAgLy8gWzB4NDAsIDB4ODBdCisgICAgICAgICAgICAiZGF0
YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FRQUFB
QzFIQXdDQUFBQUMwbEVRVlFJMTJOd2FBQUFBUU1Bd1V4WlRsNEFBQUFBU1VWT1JLNUNZSUk9IiwK
KyAgICAgICAgICAgIC8vIFsweDQwNDAsIDB4ODA4MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJFQVFBQUFEbGpOQkJB
QUFBRFVsRVFWUUkxMk53Y0dob0FBQURSUUdCb3hzc1BnQUFBQUJKUlU1RXJrSmdnZz09IgorICAg
ICAgICBdLAorICAgICAgICBleHBlY3RhdGlvbnM6IFsKKyAgICAgICAgICAgIHsgY29sb3I6IFsw
eDAwLCAweDAwLCAweDAwLCAweDgwXSwgZm9ybWF0OiAiQUxQSEEiIH0sCisgICAgICAgICAgICB7
IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIlJHQiIgfSwKKyAgICAg
ICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweDgwXSwgZm9ybWF0OiAiUkdCQSIg
fSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweEZGXSwgZm9ybWF0
OiAiTFVNSU5BTkNFIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4NDAs
IDB4ODBdLCBmb3JtYXQ6ICJMVU1JTkFOQ0VfQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9y
OiBbMHg0MCwgMHgwMCwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJFRCIsIGludGVybmFsZm9ybWF0
OiAiUjgiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHgwMCwgMHhGRl0s
IGZvcm1hdDogIlJHIiwgaW50ZXJuYWxmb3JtYXQ6ICJSRzgiIH0KKyAgICAgICAgXQorICAgIH0s
CisgICAgIkNvbG9yIjogeworICAgICAgICBzcmM6IFsKKyAgICAgICAgICAgIC8vIFsweEJGLCAw
eDdGLCAweEZGXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBSUFBQUNRZDFQZUFBQUFERWxFUVZRSTEyUFlYLzhmQUFR
K0FqNUJxd3ByQUFBQUFFbEZUa1N1UW1DQyIsCisgICAgICAgICAgICAvLyBbMHhCRkJGLCAweDdG
N0YsIDB4RkZGRl0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtH
Z29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJFQUlBQUFEQTU0K2RBQUFBRDBsRVFWUUkxMlBZdjcrKy92
OS9BQTZ5Qkh2dGJnQk5BQUFBQUVsRlRrU3VRbUNDIgorICAgICAgICBdLAorICAgICAgICBleHBl
Y3RhdGlvbnM6IFsKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDAwLCAweDAwLCAweDAwLCAweEZG
XSwgZm9ybWF0OiAiQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwgMHg3Riwg
MHhGRiwgMHhGRl0sIGZvcm1hdDogIlJHQiIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweEJG
LCAweDdGLCAweEZGLCAweEZGXSwgZm9ybWF0OiAiUkdCQSIgfSwKKyAgICAgICAgICAgIHsgY29s
b3I6IFsweEJGLCAweEJGLCAweEJGLCAweEZGXSwgZm9ybWF0OiAiTFVNSU5BTkNFIiB9LAorICAg
ICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4QkYsIDB4QkYsIDB4RkZdLCBmb3JtYXQ6ICJMVU1J
TkFOQ0VfQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwgMHgwMCwgMHgwMCwg
MHhGRl0sIGZvcm1hdDogIlJFRCIsIGludGVybmFsZm9ybWF0OiAiUjgiIH0sCisgICAgICAgICAg
ICB7IGNvbG9yOiBbMHhCRiwgMHg3RiwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJHIiwgaW50ZXJu
YWxmb3JtYXQ6ICJSRzgiIH0KKyAgICAgICAgXQorCisgICAgfSwKKyAgICAiQ29sb3IgQWxwaGEi
OiB7CisgICAgICAgIHNyYzogWworICAgICAgICAgICAgLy8gWzB4QkYsIDB4N0YsIDB4RkYsIDB4
NDBdCisgICAgICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUFBRUFBQUFCQ0FZQUFBQWZGY1NKQUFBQURVbEVRVlFJMTJQWVgvL2ZBUUFHdkFKK3hQ
TXdLUUFBQUFCSlJVNUVya0pnZ2c9PSIsCisgICAgICAgICAgICAvLyBbMHhCRkJGLCAweDdGN0Ys
IDB4RkZGRiwgMHg0MDQwXQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkVBWUFBQUJQaFJqS0FBQUFFVWxFUVZRSTEyUFl2
NysrL3Y5L0J3Y0FHR2dFKzhZTjRYVUFBQUFBU1VWT1JLNUNZSUk9IgorICAgICAgICBdLAorICAg
ICAgICBleHBlY3RhdGlvbnM6IFsKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDAwLCAweDAwLCAw
eDAwLCAweDQwXSwgZm9ybWF0OiAiQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhC
RiwgMHg3RiwgMHhGRiwgMHhGRl0sIGZvcm1hdDogIlJHQiIgfSwKKyAgICAgICAgICAgIHsgY29s
b3I6IFsweEJGLCAweDdGLCAweEZGLCAweDQwXSwgZm9ybWF0OiAiUkdCQSIgfSwKKyAgICAgICAg
ICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweEZGXSwgZm9ybWF0OiAiTFVNSU5BTkNF
IiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4QkYsIDB4QkYsIDB4NDBdLCBmb3Jt
YXQ6ICJMVU1JTkFOQ0VfQUxQSEEiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwgMHgw
MCwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJFRCIsIGludGVybmFsZm9ybWF0OiAiUjgiIH0sCisg
ICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwgMHg3RiwgMHgwMCwgMHhGRl0sIGZvcm1hdDogIlJH
IiwgaW50ZXJuYWxmb3JtYXQ6ICJSRzgiIH0KKyAgICAgICAgXQorICAgIH0KK307CisKK2NvbnN0
IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7
CisKK3d0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CitnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCBnbC5jcmVhdGVUZXh0dXJlKCkpOworCisoYXN5bmMgKCkgPT4geworICAgIGZvciAoY29u
c3QgW3R5cGUsIHRlc3RDYXNlXSBvZiBPYmplY3QuZW50cmllcyh0ZXN0RGF0YSkpIHsKKyAgICAg
ICAgaWYgKHRlc3RDYXNlLnNyYy5sZW5ndGggIT0gMikgdGhyb3cgbmV3IEVycm9yKCd0ZXN0Q2Fz
ZS5zcmMubGVuZ3RoICE9IDInKTsKKyAgICAgICAgbGV0IGltYWdlcyA9IHRlc3RDYXNlLnNyYy5t
YXAoc3JjID0+IGxvYWRJbWFnZShzcmMpKTsKKyAgICAgICAgaW1hZ2VzID0gYXdhaXQgUHJvbWlz
ZS5hbGwoaW1hZ2VzKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiIik7Cisg
ICAgICAgIGRlYnVnKGBQTkcgaW1hZ2UgdHlwZSAke3R5cGV9IHdpdGggUkdCQSB2YWx1ZXMgb2Yg
JHt0ZXN0Q2FzZS5leHBlY3RhdGlvbnNbMl0uY29sb3J9YCk7CisgICAgICAgIGxldCBmb3JtYXRz
ID0gdGVzdENhc2UuZXhwZWN0YXRpb25zOworICAgICAgICBpZiAoIXd0dS5pc1dlYkdMMihnbCkp
IHsKKyAgICAgICAgICAgIGZvcm1hdHMgPSBmb3JtYXRzLmZpbHRlcigoZikgPT4gIWYuaW50ZXJu
YWxmb3JtYXQpOworICAgICAgICB9CisgICAgICAgIGZvciAoY29uc3QgZiBvZiBmb3JtYXRzKSB7
CisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICBkZWJ1ZyhgR0wgZm9ybWF0OiAk
e2YuZm9ybWF0fWApOworCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVjayhkYXRhLCBkZXNjcmlw
dGlvbikgeworICAgICAgICAgICAgICAgIGRlYnVnKGBVcGxvYWQgJHtkZXNjcmlwdGlvbn1gKTsK
KyAgICAgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKAorICAgICAgICAgICAgICAgICAgICBnbC5U
RVhUVVJFXzJELAorICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICBn
bFtmLmludGVybmFsZm9ybWF0IHx8IGYuZm9ybWF0XSwKKyAgICAgICAgICAgICAgICAgICAgZ2xb
Zi5mb3JtYXRdLAorICAgICAgICAgICAgICAgICAgICBnbC5VTlNJR05FRF9CWVRFLAorICAgICAg
ICAgICAgICAgICAgICBkYXRhCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB3
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgICAgICAgICAgICAgd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKKyAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52
YXMoZ2wsIGYuY29sb3IsIHVuZGVmaW5lZCwgMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGNoZWNrKGltYWdlc1swXS5pbWFnZSwgIjgtYml0IFBORyBmcm9tIEltYWdlIik7CisgICAg
ICAgICAgICBjaGVjayhpbWFnZXNbMV0uaW1hZ2UsICIxNi1iaXQgUE5HIGZyb20gSW1hZ2UiKTsK
KworICAgICAgICAgICAgaWYgKGltYWdlc1swXS5iaXRtYXApIHsKKyAgICAgICAgICAgICAgICBj
aGVjayhpbWFnZXNbMF0uYml0bWFwLCAiOC1iaXQgUE5HIGZyb20gSW1hZ2VCaXRtYXAiKTsKKyAg
ICAgICAgICAgICAgICBjaGVjayhpbWFnZXNbMV0uYml0bWFwLCAiMTYtYml0IFBORyBmcm9tIElt
YWdlQml0bWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgZmluaXNo
VGVzdCgpOworfSkoKTsKKworYXN5bmMgZnVuY3Rpb24gbG9hZEltYWdlKHNyYykgeworICAgIGNv
bnN0IGltZyA9IG5ldyBJbWFnZSgpOworICAgIGltZy5zcmMgPSBzcmM7CisgICAgYXdhaXQgaW1n
LmRlY29kZSgpOworICAgIGNvbnN0IHJldCA9IHsgaW1hZ2U6IGltZyB9OworICAgIGlmIChzZWxm
LmNyZWF0ZUltYWdlQml0bWFwKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXQuYml0
bWFwID0gYXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAoaW1nLCB7CisgICAgICAgICAgICAgICAgcHJl
bXVsdGlwbHlBbHBoYTogIm5vbmUiLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0gY2F0Y2gg
e30KKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL21pc2MvdmlkZW8tcm90YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdmlkZW8tcm90
YXRpb24uaHRtbAppbmRleCBiNmQyOGYxNWRjMGJmM2I1ZjAzYzQyOGI0NGYzZDBjYzU5NTc2NmM4
Li5iMzM2ZWQ2ZWRlZjE4YjRiN2UzZjIwYjhkNGJjNTMxMTY0NmI5Y2NjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3ZpZGVvLXJvdGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy92aWRl
by1yb3RhdGlvbi5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCEtLQotQ29weXJpZ2h0IChjKSAyMDIw
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CiAtLT4KQEAgLTI5LDcgKzI5LDkgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAg
ICAgICAgIGxldCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKICAgICAgICAgbGV0
IHByb2dyYW0gPSB0aXUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wsIGdsLlJHQkEpOwogICAgICAgICBj
b25zdCByZXNvdXJjZVBhdGggPSAiLi4vLi4vLi4vcmVzb3VyY2VzLyI7Ci0gICAgICAgIGNvbnN0
IHRvbGVyYW5jZSA9IDEwOworICAgICAgICBjb25zdCBtcDRUb2xlcmFuY2UgPSAxMDsKKyAgICAg
ICAgLy8gU2lnbmlmaWNhbnRseSBoaWdoZXIgdG9sZXJhbmNlIG5lZWRlZCBmb3IgVlA5IHRlc3Rz
LiBodHRwOi8vY3JidWcuY29tLzEyMTkwMTUgLgorICAgICAgICBjb25zdCB2cDlUb2xlcmFuY2Ug
PSA0NTsKIAogICAgICAgICBjb25zdCBleHBlY3RlZENvbG9ycyA9IHsKICAgICAgICAgICAgIHRv
cDogeyBsb2NhdGlvbjogWzAuNSwgMC4yNV0sIGNvbG9yOiBbMjU1LCAwLCAwXSB9LApAQCAtNDMs
NyArNDUsNyBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICAgICAgICAgIGJ1
ZmZlcmVkTG9nVG9Db25zb2xlKHN0cik7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBj
aGVja1BpeGVscygpIHsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tQaXhlbHModG9sZXJhbmNlKSB7
CiAgICAgICAgICAgICBmb3IgKGxldCBwbGFjZSBpbiBleHBlY3RlZENvbG9ycykgewogICAgICAg
ICAgICAgICAgIGxldCBjb2xvciA9IGV4cGVjdGVkQ29sb3JzW3BsYWNlXTsKICAgICAgICAgICAg
ICAgICBsZXQgbG9jID0gY29sb3IubG9jYXRpb247CkBAIC02NCw3ICs2Niw3IEBAIGZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIAotICAg
ICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0VmlkZW9FbGVtZW50KGZpbGVuYW1lKSB7CisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHRlc3RWaWRlb0VsZW1lbnQoZmlsZW5hbWUsIGlzVlA5KSB7CiAgICAg
ICAgICAgICBjb25zdCB2aWRlbyA9IGF3YWl0IGxvYWRWaWRlb0VsZW1lbnQoZmlsZW5hbWUpOwog
CiAgICAgICAgICAgICBvdXRwdXQoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKQEAgLTczLDgwICs3NSw4NyBAQCBmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICAgICAgICAgIG91dHB1dCgiICBUZXN0aW5n
IHRleEltYWdlMkQiKTsKICAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdmlkZW8pOwogICAgICAgICAg
ICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgICAg
ICAgICBjaGVja1BpeGVscygpOworICAgICAgICAgICAgY29uc3QgbG9jYWxUb2xlcmFuY2UgPSBp
c1ZQOSA/IHZwOVRvbGVyYW5jZSA6IG1wNFRvbGVyYW5jZTsKKyAgICAgICAgICAgIGNoZWNrUGl4
ZWxzKGxvY2FsVG9sZXJhbmNlKTsKIAogICAgICAgICAgICAgb3V0cHV0KCIgIFRlc3RpbmcgdGV4
U3ViSW1hZ2UyRCIpOwogICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0JBLCB2aWRlby52aWRlb1dpZHRoLCB2aWRlby52aWRlb0hlaWdodCwgMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CiAgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVv
KTsKICAgICAgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwgWzAsIDAsIDAsIDI1
NV0pOwotICAgICAgICAgICAgY2hlY2tQaXhlbHMoKTsKKyAgICAgICAgICAgIGNoZWNrUGl4ZWxz
KGxvY2FsVG9sZXJhbmNlKTsKICAgICAgICAgfQogCiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
bigpIHsKLSAgICAgICAgICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dmlkZW8nKTsKLSAgICAgICAgICAgIGlmICghdmlkZW8uY2FuUGxheVR5cGUpIHsKLSAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJ2aWRlby5jYW5QbGF5VHlwZSByZXF1aXJlZCBtZXRob2QgbWlz
c2luZyIpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgbGV0IHN1cHBvcnRzX2gyNjQgPSAhIXZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9tcDQ7
IGNvZGVjcz0iYXZjMS40MkUwMUUiJykucmVwbGFjZSgvbm8vLCAnJyk7Ci0gICAgICAgICAgICBs
ZXQgc3VwcG9ydHNfdnA5ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vbXA0OyBjb2RlY3M9
InZwMDkuMDAuMTAuMDgiJykucmVwbGFjZSgvbm8vLCAnJyk7Ci0gICAgICAgICAgICBpZiAoIXN1
cHBvcnRzX2gyNjQgJiYgIXN1cHBvcnRzX3ZwOSkgewotICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5vIHN1cHBvcnRlZCB2aWRlbyB0eXBlcy4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxldCB0ZXggPSBnbC5jcmVhdGVUZXh0dXJl
KCk7Ci0gICAgICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRoZSBkZWZhdWx0IHRleHR1
cmUgdW5pdCAwCi0gICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgp
OwotICAgICAgICAgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycwotICAgICAgICAgICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGds
Lk5FQVJFU1QpOwotICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgICAgICAgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURH
RSk7Ci0gICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLQotICAgICAgICAgICAgLy8gVGhlc2UgZmls
ZXMgd2VyZSBjcmVhdGVkIGJ5IGNvbnZlcnRpbmcgZXhpZi1vcmllbnRhdGlvbi10ZXN0LTEtbm9y
bWFsLmpwZyB0byBtcDQKLSAgICAgICAgICAgIC8vIGZpbGVzLCByb3RhdGluZyB0aGVtIHVzaW5n
IHRoZSB0cmFuc3Bvc2UgZmlsdGVyLCBhbmQgYWRkaW5nIHJvdGF0ZSBtZXRhZGF0YSwgYWxsCi0g
ICAgICAgICAgICAvLyB1c2luZyB0aGUgZmZtcGVnIGNvbW1hbmQtbGluZSB0b29sLgotICAgICAg
ICAgICAgLy8KLSAgICAgICAgICAgIC8vIEZyb20gc2RrL3Rlc3RzL3Jlc291cmNlcy8gZGlyZWN0
b3J5OgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIDA6Ci0gICAgICAgICAgICAvLyBm
Zm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLXRlc3QtMS1ub3JtYWwuanBn
IC1waXhfZm10IHl1djQyMHAgLXkgdGVtcC5tcDQgJiYKLSAgICAgICAgICAgIC8vIGZmbXBlZyAt
aSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MCB2aWRlby1yb3RhdGlv
bi0wLm1wNAotICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmll
bnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpwZyAtcGl4X2ZtdCB5dXY0MjBwIC1jcmYgMCAtdmNvZGVj
IGxpYnZweC12cDkgLXkgdGVtcC5tcDQgJiYKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1w
Lm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MCB2aWRlby1yb3RhdGlvbi0wLnZw
OS5tcDQKLSAgICAgICAgICAgIC8vIDkwOgotICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9y
b3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpwZyAtdmYgInRyYW5zcG9z
ZT0yIiAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1w
ZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTI3MCB2aWRlby1y
b3RhdGlvbi05MC5tcDQKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4
aWYtb3JpZW50YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9MiIgLXBpeF9m
bXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0ICYmCi0gICAg
ICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90
YXRlPTI3MCB2aWRlby1yb3RhdGlvbi05MC52cDkubXA0Ci0gICAgICAgICAgICAvLyAxODA6Ci0g
ICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLXRl
c3QtMS1ub3JtYWwuanBnIC12ZiAidHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIiIC1waXhfZm10IHl1
djQyMHAgLXkgdGVtcC5tcDQgJiYKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAt
YyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MTgwIHZpZGVvLXJvdGF0aW9uLTE4MC5tcDQK
LSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24t
dGVzdC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9Mix0cmFuc3Bvc2U9MiIgLXBpeF9mbXQg
eXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0ICYmCi0gICAgICAg
ICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRl
PTE4MCB2aWRlby1yb3RhdGlvbi0xODAudnA5Lm1wNAotICAgICAgICAgICAgLy8gMjcwOgotICAg
ICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0
LTEtbm9ybWFsLmpwZyAtdmYgInRyYW5zcG9zZT0xIiAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAu
bXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRh
dGE6czp2OjAgcm90YXRlPTkwIHZpZGVvLXJvdGF0aW9uLTI3MC5tcDQKLSAgICAgICAgICAgIC8v
IGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVzdC0xLW5vcm1hbC5q
cGcgLXZmICJ0cmFuc3Bvc2U9MSIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2
cHgtdnA5IC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQg
LWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTkwIHZpZGVvLXJvdGF0aW9uLTI3MC52cDku
bXA0Ci0gICAgICAgICAgICBjb25zdCBmaWxlbmFtZXMgPSBbCi0gICAgICAgICAgICAgICAgInZp
ZGVvLXJvdGF0aW9uLTAiLAotICAgICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlvbi05MCIsCi0g
ICAgICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTE4MCIsCi0gICAgICAgICAgICAgICAgInZp
ZGVvLXJvdGF0aW9uLTI3MCIsCi0gICAgICAgICAgICBdOwotCi0gICAgICAgICAgICBpZiAoc3Vw
cG9ydHNfaDI2NCkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGZuIG9mIGZpbGVuYW1lcykK
LSAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGVzdFZpZGVvRWxlbWVudChmbiArICIubXA0Iik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChzdXBwb3J0c192cDkpIHsKLSAgICAg
ICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMpCi0gICAgICAgICAgICAgICAgICAg
IGF3YWl0IHRlc3RWaWRlb0VsZW1lbnQoZm4gKyAiLnZwOS5tcDQiKTsKLSAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGF3YWl0IChhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3Qg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICAgICAgICAg
IGlmICghdmlkZW8uY2FuUGxheVR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgidmlkZW8uY2FuUGxheVR5cGUgcmVxdWlyZWQgbWV0aG9kIG1pc3NpbmciKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGxldCBzdXBwb3J0c19oMjY0ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vbXA0OyBjb2Rl
Y3M9ImF2YzEuNDJFMDFFIicpLnJlcGxhY2UoL25vLywgJycpOworICAgICAgICAgICAgICAgIGxl
dCBzdXBwb3J0c192cDkgPSAhIXZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9tcDQ7IGNvZGVjcz0i
dnAwOS4wMC4xMC4wOCInKS5yZXBsYWNlKC9uby8sICcnKTsKKyAgICAgICAgICAgICAgICBpZiAo
IXN1cHBvcnRzX2gyNjQgJiYgIXN1cHBvcnRzX3ZwOSkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBzdXBwb3J0ZWQgdmlkZW8gdHlwZXMuIik7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICAgICAgICAgIC8vIEJpbmQgdGhlIHRleHR1
cmUgdG8gdGhlIGRlZmF1bHQgdGV4dHVyZSB1bml0IDAKKyAgICAgICAgICAgICAgICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgICAgICAgICAgICAgIC8vIFNldCB1cCB0
ZXh0dXJlIHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgICAgICAg
ICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxU
RVIsIGdsLk5FQVJFU1QpOworICAgICAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgICAgICAg
ICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1Qs
IGdsLkNMQU1QX1RPX0VER0UpOworCisgICAgICAgICAgICAgICAgLy8gVGhlc2UgZmlsZXMgd2Vy
ZSBjcmVhdGVkIGJ5IGNvbnZlcnRpbmcgZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCB0byBtcDQK
KyAgICAgICAgICAgICAgICAvLyBmaWxlcywgcm90YXRpbmcgdGhlbSB1c2luZyB0aGUgdHJhbnNw
b3NlIGZpbHRlciwgYW5kIGFkZGluZyByb3RhdGUgbWV0YWRhdGEsIGFsbAorICAgICAgICAgICAg
ICAgIC8vIHVzaW5nIHRoZSBmZm1wZWcgY29tbWFuZC1saW5lIHRvb2wuCisgICAgICAgICAgICAg
ICAgLy8KKyAgICAgICAgICAgICAgICAvLyBGcm9tIHNkay90ZXN0cy9yZXNvdXJjZXMvIGRpcmVj
dG9yeToKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIDA6CisgICAgICAg
ICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmln
aW5hbHNcZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2IC1waXhfZm10
IHl1djQyMHAgLXkgdGVtcC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5t
cDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAgdmlkZW8tcm90YXRpb24tMC5tcDQK
KyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0
aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBzY2FsZT0xMjh4OTYg
LXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0Cisg
ICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6
djowIHJvdGF0ZT0wIHZpZGVvLXJvdGF0aW9uLTAudnA5Lm1wNAorICAgICAgICAgICAgICAgIC8v
CisgICAgICAgICAgICAgICAgLy8gOTA6CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1
dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmlnaW5hbHNcZXhpZi1vcmllbnRhdGlvbi10
ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2LHRyYW5zcG9zZT0yIC1waXhfZm10IHl1djQyMHAgLXkg
dGVtcC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAt
bWV0YWRhdGE6czp2OjAgcm90YXRlPTI3MCB2aWRlby1yb3RhdGlvbi05MC5tcDQKKyAgICAgICAg
ICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLW9yaWdp
bmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBzY2FsZT0xMjh4OTYsdHJhbnNwb3Nl
PTIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0
CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRh
OnM6djowIHJvdGF0ZT0yNzAgdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNAorICAgICAgICAgICAg
ICAgIC8vCisgICAgICAgICAgICAgICAgLy8gMTgwOgorICAgICAgICAgICAgICAgIC8vIGZmbXBl
ZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50
YXRpb24tdGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9Mix0cmFuc3Bvc2U9MiAt
cGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1p
IHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0xODAgdmlkZW8tcm90YXRp
b24tMTgwLm1wNAorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4
aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgLXZmIHNj
YWxlPTEyOHg5Nix0cmFuc3Bvc2U9Mix0cmFuc3Bvc2U9MiAtcGl4X2ZtdCB5dXY0MjBwIC1jcmYg
MCAtdmNvZGVjIGxpYnZweC12cDkgLXkgdGVtcC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1w
ZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTE4MCB2aWRlby1y
b3RhdGlvbi0xODAudnA5Lm1wNAorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAg
Ly8gMjcwOgorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYt
b3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgLXZmIHNjYWxl
PTEyOHg5Nix0cmFuc3Bvc2U9MSAtcGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0CisgICAgICAg
ICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJv
dGF0ZT05MCB2aWRlby1yb3RhdGlvbi0yNzAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVn
IC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmlnaW5hbHNcZXhpZi1vcmllbnRh
dGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2LHRyYW5zcG9zZT0xIC1waXhfZm10IHl1djQy
MHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNAorICAgICAgICAgICAgICAg
IC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9OTAg
dmlkZW8tcm90YXRpb24tMjcwLnZwOS5tcDQKKworICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVu
YW1lcyA9IFsKKyAgICAgICAgICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTAiLAorICAgICAg
ICAgICAgICAgICAgICAidmlkZW8tcm90YXRpb24tOTAiLAorICAgICAgICAgICAgICAgICAgICAi
dmlkZW8tcm90YXRpb24tMTgwIiwKKyAgICAgICAgICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9u
LTI3MCIsCisgICAgICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0
c19oMjY0KSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGZuIG9mIGZpbGVuYW1lcykK
KyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0VsZW1lbnQoZm4gKyAiLm1w
NCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoc3Vw
cG9ydHNfdnA5KSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGZuIG9mIGZpbGVuYW1l
cykKKyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0VsZW1lbnQoZm4gKyAi
LnZwOS5tcDQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KSgpOwog
CiAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgICAgIH0KQEAgLTE1NSw0ICsxNjQsNCBA
QCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICA8L3NjcmlwdD4KIDwvYm9keT4K
IAotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9kcy0yLmh0bWwKaW5k
ZXggNTBhNWI4MGQ3OTEyYmMyNmEyZDRmYTdlZjRmNjhkMDlhNzQ0NjVkMi4uYTM4OTMyOWFhMzM2
NjNkZTJiNWMwY2U4NmUwZTM5ZGExMjM5YWU1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9k
cy0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvbWV0aG9kcy0yLmh0bWwKQEAgLTExLDYgKzExLDcgQEAg
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgogPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy90ZXN0
cy9jb250ZXh0LW1ldGhvZHMuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+CkBAIC0yMCw3ICsyMSw3IEBAIGZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgogInVzZSBzdHJpY3QiOwogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgdGhlIFdlYkdMIGNvbnRleHQgaGFzIGFsbCB0aGUgbWV0aG9kcyBpbiB0aGUgc3Bl
Y2lmaWNhdGlvbi4iKTsKIAotdmFyIG1ldGhvZHMgPSBbCitjb25zdCBtZXRob2RzID0gWwogICAi
Z2V0Q29udGV4dEF0dHJpYnV0ZXMiLAogICAiYWN0aXZlVGV4dHVyZSIsCiAgICJhdHRhY2hTaGFk
ZXIiLApAQCAtMjQ5LDU1ICsyNTAsMTQgQEAgdmFyIG1ldGhvZHMgPSBbCiAgICJiaW5kVmVydGV4
QXJyYXkiLAogXTsKIAotLy8gUHJvcGVydGllcyB0byBiZSBpZ25vcmVkIGJlY2F1c2UgdGhleSB3
ZXJlIGFkZGVkIGluIHZlcnNpb25zIG9mIHRoZQotLy8gc3BlYyB0aGF0IGFyZSBiYWNrd2FyZC1j
b21wYXRpYmxlIHdpdGggdGhpcyB2ZXJzaW9uCi12YXIgaWdub3JlZE1ldGhvZHMgPSBbCi0gIC8v
IFRoZXJlIGlzIG5vIG9mZmljaWFsIHNwZWMgZm9yIHRoZSBjb21taXQgQVBJIHlldCwgdGhlIHBy
b3Bvc2FsIGxpbmsgaXM6Ci0gIC8vIGh0dHBzOi8vd2lraS53aGF0d2cub3JnL3dpa2kvT2Zmc2Ny
ZWVuQ2FudmFzCi0gICJjb21taXQiCi1dOwotCi1mdW5jdGlvbiBhc3NlcnRGdW5jdGlvbih2LCBm
KSB7Ci0gIHRyeSB7Ci0gICAgaWYgKHR5cGVvZiB2W2ZdICE9ICJmdW5jdGlvbiIpIHsKLSAgICAg
IHRlc3RGYWlsZWQoIlByb3BlcnR5IGVpdGhlciBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBm
dW5jdGlvbjogIiArIGYpOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gZWxzZSB7Ci0gICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH0gY2F0Y2goZSkgewotICAgIHRlc3RGYWlsZWQoIlRy
eWluZyB0byBhY2Nlc3MgdGhlIHByb3BlcnR5ICciICsgZiArICInIHRocmV3IGFuIGVycm9yOiAi
K2UudG9TdHJpbmcoKSk7Ci0gIH0KLX0KLQogZGVidWcoIiIpOwogZGVidWcoIkNhbnZhcy5nZXRD
b250ZXh0Iik7CiAKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250
ZXh0KGNhbnZhcywgbnVsbCwgMik7Ci12YXIgcGFzc2VkID0gdHJ1ZTsKLWZvciAodmFyIGk9MDsg
aTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7Ci0gIHZhciByID0gYXNzZXJ0RnVuY3Rpb24oZ2wsIG1l
dGhvZHNbaV0pOwotICBwYXNzZWQgPSBwYXNzZWQgJiYgcjsKLX0KLWlmIChwYXNzZWQpIHsKLSAg
dGVzdFBhc3NlZCgiQWxsIFdlYkdMIG1ldGhvZHMgZm91bmQuIik7Ci19Ci12YXIgZXh0ZW5kZWQg
PSBmYWxzZTsKLWZvciAodmFyIGkgaW4gZ2wpIHsKLSAgaWYgKHR5cGVvZiBnbFtpXSA9PSAiZnVu
Y3Rpb24iICYmIG1ldGhvZHMuaW5kZXhPZihpKSA9PSAtMSAmJiBpZ25vcmVkTWV0aG9kcy5pbmRl
eE9mKGkpID09IC0xKSB7Ci0gICAgaWYgKCFleHRlbmRlZCkgewotICAgICAgZXh0ZW5kZWQgPSB0
cnVlOwotICAgICAgdGVzdEZhaWxlZCgiQWxzbyBmb3VuZCB0aGUgZm9sbG93aW5nIGV4dHJhIG1l
dGhvZHM6Iik7Ci0gICAgfQotICAgIHRlc3RGYWlsZWQoaSk7Ci0gIH0KLX0KK2NvbnN0IHd0dSA9
IFdlYkdMVGVzdFV0aWxzOworY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgbnVsbCwg
Mik7CiAKLWlmICghZXh0ZW5kZWQpIHsKLSAgdGVzdFBhc3NlZCgiTm8gZXh0cmEgbWV0aG9kcyBm
b3VuZCBvbiBXZWJHTCBjb250ZXh0LiIpOwotfQordGVzdENvbnRleHRNZXRob2RzKGdsLCBtZXRo
b2RzKTsKIAogZGVidWcoIiIpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvZXh0ZW5zaW9ucy9leHQtY29sb3ItYnVmZmVyLWZsb2F0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5z
aW9ucy9leHQtY29sb3ItYnVmZmVyLWZsb2F0Lmh0bWwKaW5kZXggZTJlZWJkMTEzYTkxYjhjODhi
MTY2YjYzOWM4MjFlZjkyZWY1ZGY0MC4uYjU3YTZjYTEwZDZiZmIzNjk0ZThmYjFlYmU2MjMxMDQy
NjMwMmE1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC1jb2xvci1idWZmZXItZmxvYXQuaHRtbApAQCAtMjg0
LDcgKzI4NCw3IEBAIGZ1bmN0aW9uIHJ1bkludGVybmFsRm9ybWF0UXVlcnlUZXN0KCkKICAgICBk
ZWJ1ZygidGVzdGluZyB0aGUgaW50ZXJuYWwgZm9ybWF0IHF1ZXJ5Iik7CiAKICAgICB2YXIgbWF4
U2FtcGxlcyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfU0FNUExFUyk7Ci0gICAgdmFyIGZvcm1h
dHMgPSBuZXcgQXJyYXkoZ2wuUkdCQTE2RiwgZ2wuUjMyRiwgZ2wuUkczMkYsIGdsLlJHQkEzMkYs
IGdsLlIxNkYsIGdsLlJHMTZGLCBnbC5SMTFGX0cxMUZfQjEwRik7CisgICAgY29uc3QgZm9ybWF0
cyA9IFtnbC5SR0JBMTZGLCBnbC5SMzJGLCBnbC5SRzMyRiwgZ2wuUkdCQTMyRiwgZ2wuUjE2Riwg
Z2wuUkcxNkYsIGdsLlIxMUZfRzExRl9CMTBGXTsKICAgICB2YXIgZmlyc3RNdWx0aU9ubHlGb3Jt
YXQgPSA0OwogICAgIGZvciAodmFyIGZtdCA9IDA7IGZtdCA8IGZvcm1hdHMubGVuZ3RoOyArK2Zt
dCkgewogICAgICAgICB2YXIgc2FtcGxlcyA9IGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZm9ybWF0c1tmbXRdLCBnbC5TQU1QTEVTKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi9leHRlbnNpb25zL2V4dC10ZXh0dXJlLW5vcm0xNi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvZXh0LXRl
eHR1cmUtbm9ybTE2Lmh0bWwKaW5kZXggMWQ5ZmY2NDVlYmVkNGNjZmZiYmE5YTkwYTUzODcwMjRm
ZGFiMDA4Mi4uMzFlZDhmMzdhYmMwZDg5ODk2MTkxNmE1ZGU0MTVhNjI1OGU0MGU3YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtbm9ybTE2Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lv
bnMvZXh0LXRleHR1cmUtbm9ybTE2Lmh0bWwKQEAgLTE1Myw2ICsxNTMsMjMgQEAgZnVuY3Rpb24g
dGVzdFNub3JtMTZVbnJlbmRlcmFibGUoaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVidWZmZXIgc2hvdWxkIG5vdCBi
ZSBjb21wbGV0ZSB3aXRoIFNOT1JNMTYgdGV4dHVyZSBhdHRhY2hlZCIpOwogfQogCitmdW5jdGlv
biBydW5JbnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpCit7CisgICAgZGVidWcoIiIpOworICAgIGRl
YnVnKCJ0ZXN0aW5nIHRoZSBpbnRlcm5hbCBmb3JtYXQgcXVlcnkiKTsKKworICAgIHZhciBtYXhT
YW1wbGVzID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9TQU1QTEVTKTsKKyAgICBjb25zdCBmb3Jt
YXRzID0gW2V4dC5SMTZfRVhULCBleHQuUkcxNl9FWFQsIGV4dC5SR0JBMTZfRVhUXTsKKyAgICBm
b3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7CisgICAgICAgIHZhciBzYW1wbGVzID0gZ2wu
Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBmb3JtYXQsIGdsLlNB
TVBMRVMpOworICAgICAgICBpZiAoc2FtcGxlcyA9PSBudWxsIHx8IHNhbXBsZXMubGVuZ3RoID09
IDAgfHwgc2FtcGxlc1swXSA8IG1heFNhbXBsZXMpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
InRoZSBtYXhpbXVtIHZhbHVlIGluIFNBTVBMRVMgc2hvdWxkIGJlIGF0IGxlYXN0ICIgKyBtYXhT
YW1wbGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICB0ZXN0
UGFzc2VkKCJJbnRlcm5hbCBmb3JtYXQgcXVlcnkgc3VjY2VlZGVkIik7Cit9CisKIGZ1bmN0aW9u
IHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgIHRleHR1cmVzID0gW2dsLmNyZWF0ZVRleHR1cmUoKSwg
Z2wuY3JlYXRlVGV4dHVyZSgpXTsKICAgZmJvcyA9IFtnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpLCBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpXTsKQEAgLTIwNyw2ICsyMjQsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgIHd0dS5ydW5FeHRlbnNpb25TdXBwb3J0ZWRUZXN0KGdsLCAiRVhUX3RleHR1
cmVfbm9ybTE2IiwgZXh0ICE9PSBudWxsKTsKIAogICAgIGlmIChleHQgIT09IG51bGwpIHsKKyAg
ICAgIHJ1bkludGVybmFsRm9ybWF0UXVlcnlUZXN0KCk7CiAgICAgICBydW5UZXN0RXh0ZW5zaW9u
KCk7CiAgICAgfSBlbHNlIHsKICAgICAgIHRlc3RQYXNzZWQoIk5vIEVYVF90ZXh0dXJlX25vcm0x
NiBzdXBwb3J0IC0tIHRoaXMgaXMgbGVnYWwiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL29l
cy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvb2VzLWRyYXctYnVmZmVy
cy1pbmRleGVkLmh0bWwKaW5kZXggM2JlNzcxN2JjNDE0ZDU1NzJiYzliMzdhOTliODMwMWVhOTEy
NWRlZS4uZTM1Y2MyNjlhYTIwZTU1NzkwMDdhMGIyODA1NzU3NTM3ZTYwMjA3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL2V4dGVuc2lvbnMvb2VzLWRyYXctYnVmZmVycy1pbmRleGVkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVu
c2lvbnMvb2VzLWRyYXctYnVmZmVycy1pbmRleGVkLmh0bWwKQEAgLTc5LDYgKzc5LDggQEAgZnVu
Y3Rpb24gZW5hYmxlRGlzYWJsZVRlc3QoKSB7CiAKICAgICAvLyBJbnZhbGlkIGlucHV0CiAgICAg
ZXh0LmVuYWJsZWlPRVMoZ2wuREVQVEhfVEVTVCwgMCk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuSU5WQUxJRF9FTlVNLCAndGFyZ2V0IGNvdWxkIG9ubHkgYmUgZ2wuQkxFTkQnKTsK
KwogICAgIGV4dC5kaXNhYmxlaU9FUyhnbC5ERVBUSF9URVNULCAwKTsKICAgICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0VOVU0sICd0YXJnZXQgY291bGQgb25seSBiZSBnbC5C
TEVORCcpOwogCkBAIC0xNjQsNyArMTY2LDEwIEBAIGZ1bmN0aW9uIGNvbnN0YW50QWxwaGFCbGVu
ZENvbG9yVmFsaWRhdGlvblRlc3QoKSB7CiB9CiAKIGZ1bmN0aW9uIGluZGV4ZWRCbGVuZENvbG9y
VGVzdCgpIHsKKyAgICBkZWJ1ZygnJyk7CiAgICAgZGVidWcoIlRlc3RpbmcgYmxlbmRFcXVhdGlv
bmlPRVMgYW5kIGJsZW5kRnVuY2lPRVMiKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCAw
LCAndG9wIG9mIGluZGV4ZWRCbGVuZENvbG9yVGVzdCcpOworCiAgICAgZ2wuY2xlYXJDb2xvcigw
LCAwLCAxLCAxKTsKICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKIApAQCAtMjEx
LDIyICsyMTYsMzIgQEAgZnVuY3Rpb24gaW5kZXhlZEJsZW5kQ29sb3JUZXN0KCkgewogICAgIGds
LnJlYWRCdWZmZXIoZ2wuQ09MT1JfQVRUQUNITUVOVDEpOwogICAgIHd0dS5jaGVja0NhbnZhc1Jl
Y3QoZ2wsIDAsIDAsIDEsIDEsIFswLCAwLCAyNTUsIDBdKTsKIAorICAgIGRlYnVnKCcnKTsKKyAg
ICBkZWJ1ZyhgVGVzdGluZyB0aGF0IG5ldyB0b2tlbnMgYXJlbid0IG9uIHRoZSBleHRlbnNpb24u
YCk7CisgICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9FUVVBVElPTl9SR0InLCAndW5kZWZpbmVkJyk7
CisgICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9FUVVBVElPTl9BTFBIQScsICd1bmRlZmluZWQnKTsK
KyAgICBzaG91bGRCZSgnZXh0LkJMRU5EX1NSQ19SR0InLCAndW5kZWZpbmVkJyk7CisgICAgc2hv
dWxkQmUoJ2V4dC5CTEVORF9TUkNfQUxQSEEnLCAndW5kZWZpbmVkJyk7CisgICAgc2hvdWxkQmUo
J2V4dC5CTEVORF9EU1RfUkdCJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3VsZEJlKCdleHQuQkxF
TkRfRFNUX0FMUEhBJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3VsZEJlKCdleHQuQ09MT1JfV1JJ
VEVNQVNLJywgJ3VuZGVmaW5lZCcpOworCiAgICAgZGVidWcoIlRlc3RpbmcgbmV3IHRva2VucyBm
b3IgZ2V0SW5kZXhlZFBhcmFtZXRlclRlc3QiKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fUkdCLCAwKScsICdnbC5GVU5DX0FERCcpOwot
ICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9FUVVBVElPTl9B
TFBIQSwgMCknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRl
eGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfUkdCLCAwKScsICdnbC5PTkUnKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNUX1JHQiwgMCknLCAnZ2wu
T05FJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NS
Q19BTFBIQSwgMCknLCAnZ2wuWkVSTycpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGV4dC5CTEVORF9EU1RfQUxQSEEsIDApJywgJ2dsLlpFUk8nKTsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fUkdCLCAxKScsICdn
bC5GVU5DX0FERCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5C
TEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOwotICAgIHNob3Vs
ZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfUkdCLCAxKScsICdnbC5T
UkNfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxF
TkRfRFNUX1JHQiwgMSknLCAnZ2wuT05FX01JTlVTX1NSQ19BTFBIQScpOwotICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfQUxQSEEsIDEpJywgJ2dsLlpF
Uk8nKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNU
X0FMUEhBLCAxKScsICdnbC5aRVJPJyk7Ci0KLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBh
cmFtZXRlcihleHQuQ09MT1JfV1JJVEVNQVNLLCAwKScsICdbZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2VdJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkNPTE9S
X1dSSVRFTUFTSywgMSknLCAnW3RydWUsIHRydWUsIHRydWUsIHRydWVdJyk7CisgICAgc2hvdWxk
QmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJT05fUkdCLCAwKScsICdn
bC5GVU5DX0FERCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJM
RU5EX0VRVUFUSU9OX0FMUEhBLCAwKScsICdnbC5GVU5DX1NVQlRSQUNUJyk7CisgICAgc2hvdWxk
QmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX1JHQiwgMCknLCAnZ2wuT05F
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX1JH
QiwgMCknLCAnZ2wuT05FJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIo
Z2wuQkxFTkRfU1JDX0FMUEhBLCAwKScsICdnbC5aRVJPJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX0FMUEhBLCAwKScsICdnbC5aRVJPJyk7Cisg
ICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJT05fUkdC
LCAxKScsICdnbC5GVU5DX0FERCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1l
dGVyKGdsLkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAxKScsICdnbC5GVU5DX1NVQlRSQUNUJyk7Cisg
ICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX1JHQiwgMSkn
LCAnZ2wuU1JDX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIo
Z2wuQkxFTkRfRFNUX1JHQiwgMSknLCAnZ2wuT05FX01JTlVTX1NSQ19BTFBIQScpOworICAgIHNo
b3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19BTFBIQSwgMSknLCAn
Z2wuWkVSTycpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5E
X0RTVF9BTFBIQSwgMSknLCAnZ2wuWkVSTycpOworCisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQ09MT1JfV1JJVEVNQVNLLCAwKScsICdbZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2VdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQ09M
T1JfV1JJVEVNQVNLLCAxKScsICdbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0nKTsKIAogICAgIGRl
YnVnKCJUZXN0aW5nIG5vbi1pbmRleGVkIGdldFBhcmFtdGVyIGdldCBzdGF0ZSBmcm9tIGRyYXcg
YnVmZmVyIDAiKTsKICAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19S
R0IpJywgJ2dsLk9ORScpOwpAQCAtMjUxLDI2ICsyNjYsMjggQEAgZnVuY3Rpb24gaW5kZXhlZEJs
ZW5kQ29sb3JUZXN0KCkgewogICAgIHNob3VsZEJlKCdnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxFTkRf
RFNUX0FMUEhBKScsICdnbC5PTkUnKTsKICAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGds
LkNPTE9SX1dSSVRFTUFTSyknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0nKTsKIAotICAg
IHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9FUVVBVElPTl9SR0Is
IDApJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBh
cmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fQUxQSEEsIDApJywgJ2dsLkZVTkNfQUREJyk7Ci0g
ICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NSQ19SR0IsIDAp
JywgJ2dsLk9ORV9NSU5VU19EU1RfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihleHQuQkxFTkRfRFNUX1JHQiwgMCknLCAnZ2wuRFNUX0FMUEhBJyk7Ci0gICAg
c2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NSQ19BTFBIQSwgMCkn
LCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJM
RU5EX0RTVF9BTFBIQSwgMCknLCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX1JHQiwgMSknLCAnZ2wuRlVOQ19TVUJUUkFD
VCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9FUVVB
VElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19BREQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX1JHQiwgMSknLCAnZ2wuT05FX01JTlVTX0RTVF9B
TFBIQScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9E
U1RfUkdCLCAxKScsICdnbC5EU1RfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX0FMUEhBLCAxKScsICdnbC5PTkUnKTsKLSAgICBzaG91
bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNUX0FMUEhBLCAxKScsICdn
bC5PTkUnKTsKLQotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5DT0xP
Ul9XUklURU1BU0ssIDApJywgJ1t0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdJyk7Ci0gICAgc2hv
dWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkNPTE9SX1dSSVRFTUFTSywgMSknLCAn
W3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElPTl9SR0IsIDApJywgJ2dsLkZVTkNfU1VCVFJBQ1Qn
KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElP
Tl9BTFBIQSwgMCknLCAnZ2wuRlVOQ19BREQnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfUkdCLCAwKScsICdnbC5PTkVfTUlOVVNfRFNUX0FMUEhB
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX1JH
QiwgMCknLCAnZ2wuRFNUX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJh
bWV0ZXIoZ2wuQkxFTkRfU1JDX0FMUEhBLCAwKScsICdnbC5PTkUnKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9EU1RfQUxQSEEsIDApJywgJ2dsLk9ORScp
OworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9O
X1JHQiwgMSknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRl
eGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAxKScsICdnbC5GVU5DX0FERCcp
OworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19SR0Is
IDEpJywgJ2dsLk9ORV9NSU5VU19EU1RfQUxQSEEnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihnbC5CTEVORF9EU1RfUkdCLCAxKScsICdnbC5EU1RfQUxQSEEnKTsKKyAg
ICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfQUxQSEEsIDEp
JywgJ2dsLk9ORScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJM
RU5EX0RTVF9BTFBIQSwgMSknLCAnZ2wuT05FJyk7CisKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihnbC5DT0xPUl9XUklURU1BU0ssIDApJywgJ1t0cnVlLCBmYWxzZSwgdHJ1
ZSwgZmFsc2VdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQ09M
T1JfV1JJVEVNQVNLLCAxKScsICdbdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlXScpOwogfQogCiBm
dW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAgIHNldHVwKCk7CiAKKyAgICB0ZXN0SW52
YWxpZFZhbHVlcygpOworCiAgICAgZW5hYmxlRGlzYWJsZVRlc3QoKTsKIAogICAgIC8vIGJsZW5k
aW5nIHNob3VsZCBiZSBlbmFibGVkIGZvciBkcmF3QnVmZmVycyAwIGFuZCAxIGF0IHRoaXMgcG9p
bnQKQEAgLTI3OCw2ICsyOTUsOCBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAg
IGNvbnN0YW50QWxwaGFCbGVuZENvbG9yVmFsaWRhdGlvblRlc3QoKTsKIAogICAgIGluZGV4ZWRC
bGVuZENvbG9yVGVzdCgpOworCisgICAgdGVzdENvbG9yTWFza0RyYXdOb09wKCk7CiB9CiAKIGZ1
bmN0aW9uIHJ1bkludmFsaWRFbnVtc1Rlc3QoKSB7CkBAIC0yOTgsNiArMzE3LDIwNiBAQCBmdW5j
dGlvbiBydW5JbnZhbGlkRW51bXNUZXN0KCkgewogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IFtnbC5JTlZBTElEX09QRVJBVElPTiwgZ2wuSU5WQUxJRF9FTlVNXSwgJ2ludmFsaWQgb3BlcmF0
aW9ucyBvciBpbnZhbGlkIGVudW1zIGZvciBDT0xPUl9XUklURU1BU0snKTsKIH0KIAorZnVuY3Rp
b24gdGVzdEludmFsaWRWYWx1ZXMoKSB7CisgICAgY29uc3QgbnVtRHJhd0J1ZmZlcnMgPSBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuTUFYX0RSQVdfQlVGRkVSUyk7CisgICAgaWYgKCFudW1EcmF3QnVmZmVy
cykgdGhyb3cgbmV3IEVycm9yKCchbnVtRHJhd0J1ZmZlcnMnKTsKKyAgICB3dHUuc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmVuYWJsZWlPRVMoZ2wuQkxF
TkQsIC0xKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURf
VkFMVUUsIGBleHQuZW5hYmxlaU9FUyhnbC5CTEVORCwgJHtudW1EcmF3QnVmZmVyc30pYCk7Cisg
ICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5lbmFibGVpT0VTKGdsLkJM
RU5ELCAke251bURyYXdCdWZmZXJzLTF9KWApOworCisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5kaXNhYmxlaU9FUyhnbC5CTEVORCwgLTEp
YCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwg
YGV4dC5kaXNhYmxlaU9FUyhnbC5CTEVORCwgJHtudW1EcmF3QnVmZmVyc30pYCk7CisgICAgd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5kaXNhYmxlaU9FUyhnbC5CTEVORCwg
JHtudW1EcmF3QnVmZmVycy0xfSlgKTsKKworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuYmxlbmRFcXVhdGlvbmlPRVMoLTEsIGdsLkZVTkNf
QUREKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFM
VUUsIGBleHQuYmxlbmRFcXVhdGlvbmlPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLkZVTkNfQURE
KWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuYmxlbmRFcXVh
dGlvbmlPRVMoJHtudW1EcmF3QnVmZmVycy0xfSwgZ2wuRlVOQ19BREQpYCk7CisKKyAgICB3dHUu
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5kRXF1
YXRpb25TZXBhcmF0ZWlPRVMoLTEsIGdsLkZVTkNfQURELCBnbC5GVU5DX0FERClgKTsKKyAgICB3
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5k
RXF1YXRpb25TZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLkZVTkNfQURELCBnbC5G
VU5DX0FERClgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmJs
ZW5kRXF1YXRpb25TZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVycy0xfSwgZ2wuRlVOQ19BREQs
IGdsLkZVTkNfQUREKWApOworCisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
SU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEZ1bmNpT0VTKC0xLCBnbC5PTkUsIGdsLk9ORSlgKTsK
KyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0
LmJsZW5kRnVuY2lPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLk9ORSwgZ2wuT05FKWApOworICAg
IHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuYmxlbmRGdW5jaU9FUygke251
bURyYXdCdWZmZXJzLTF9LCBnbC5PTkUsIGdsLk9ORSlgKTsKKworICAgIHd0dS5zaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuYmxlbmRGdW5jU2VwYXJhdGVp
T0VTKC0xLCBnbC5PTkUsIGdsLlpFUk8sIGdsLk9ORSwgZ2wuWkVSTylgKTsKKyAgICB3dHUuc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5kRnVuY1Nl
cGFyYXRlaU9FUygke251bURyYXdCdWZmZXJzfSwgZ2wuT05FLCBnbC5aRVJPLCBnbC5PTkUsIGds
LlpFUk8pYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5ibGVu
ZEZ1bmNTZXBhcmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVycy0xfSwgZ2wuT05FLCBnbC5aRVJPLCBn
bC5PTkUsIGdsLlpFUk8pYCk7CisKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5JTlZBTElEX1ZBTFVFLCBgZXh0LmNvbG9yTWFza2lPRVMoLTEsIDEsMSwxLDEpYCk7CisgICAg
d3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5jb2xv
ck1hc2tpT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCAxLDEsMSwxKWApOworICAgIHd0dS5zaG91bGRH
ZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuY29sb3JNYXNraU9FUygke251bURyYXdCdWZmZXJz
LTF9LCAxLDEsMSwxKWApOworfQorCitmdW5jdGlvbiogcmFuZ2UobikgeworICBmb3IgKGxldCBp
ID0gMDsgaSA8IG47IGkrKykgeworICAgIHlpZWxkIGk7CisgIH0KK30KKworZnVuY3Rpb24gdGVz
dENvbG9yTWFza0RyYXdOb09wKCkgeworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygndGVzdENv
bG9yTWFza0RyYXdOb09wJykKKyAgICAvLyA+IElmIGFueSBkcmF3IGJ1ZmZlciB3aXRoIGFuIGF0
dGFjaG1lbnQgZG9lcyBub3QgaGF2ZSBhIGRlZmluZWQKKyAgICAvLyAgIGZyYWdtZW50IHNoYWRl
ciBvdXRwdXQsIGRyYXdzIGdlbmVyYXRlIElOVkFMSURfT1BFUkFUSU9OLAorICAgIC8vICAgdW5s
ZXNzIGFsbCA0IGNoYW5uZWxzIG9mIGNvbG9yTWFzayBhcmUgc2V0IHRvIGZhbHNlLgorICAgIGNv
bnN0IE5VTV9PVVRQVVRTID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5U
Uyk7CisgICAgc2hvdWxkQmVUcnVlKGAke05VTV9PVVRQVVRTfSA+IDFgKTsKKworICAgIGNvbnN0
IGZiID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wu
RlJBTUVCVUZGRVIsIGZiKTsKKyAgICBnbC52aWV3cG9ydCgwLDAsMSwxKTsKKworICAgIGNvbnN0
IERSQVdfQlVGRkVSUyA9IFtdOworICAgIGZvciAoY29uc3QgaSBvZiByYW5nZShOVU1fT1VUUFVU
UykpIHsKKyAgICAgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgICAgICBnbC50ZXhTdG9yYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMSwgZ2wuUkdCQTgsIDEsIDEpOworICAgICAgICBjb25zdCBjYSA9
IGdsLkNPTE9SX0FUVEFDSE1FTlQwK2k7CisgICAgICAgIERSQVdfQlVGRkVSUy5wdXNoKGNhKQor
ICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgY2EsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7CisgICAg
fQorICAgIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOworCisgICAgZ2wuZHJhd0J1ZmZlcnMoRFJB
V19CVUZGRVJTKTsKKyAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMSk7CisgICAgZ2wuZGlzYWJs
ZShnbC5CTEVORCk7CisKKyAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDApOworICAgIGdsLmNs
ZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgICAgZm9yIChjb25zdCBpIG9mIHJhbmdlKE5V
TV9PVVRQVVRTKSkgeworICAgICAgICBnbC5yZWFkQnVmZmVyKGdsLkNPTE9SX0FUVEFDSE1FTlQw
K2kpOworICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwg
MCwgMF0sIGBDT0xPUl9BVFRBQ0hNRU5UJHtpfSBpbml0aWFsbHkgYmxhY2tgKTsKKyAgICB9CisK
KyAgICBmb3IgKGNvbnN0IHZhbGlkT3V0cHV0IG9mIHJhbmdlKE5VTV9PVVRQVVRTKSkgeworICAg
ICAgICBjb25zdCBpbnZhbGlkT3V0cHV0ID0gdmFsaWRPdXRwdXQgXiAwYjExOworICAgICAgICBk
ZWJ1ZyhgdmFsaWRPdXRwdXQ6ICR7dmFsaWRPdXRwdXR9LCBpbnZhbGlkT3V0cHV0OiAke2ludmFs
aWRPdXRwdXR9YCk7CisgICAgICAgIGNvbnN0IHByb2cgPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBb
CisgICAgICAgICAgICBgXAorI3ZlcnNpb24gMzAwIGVzCit2b2lkIG1haW4oKSB7CisgICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KDAsMCwwLDEpOworICAgIGdsX1BvaW50U2l6ZSA9IDEuMGY7Cit9Citg
LAorICAgICAgICAgICAgYFwKKyN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CitsYXlvdXQobG9jYXRpb249JHt2YWxpZE91dHB1dH0pIG91dCB2ZWM0IG9fY29sb3I7Cit2
b2lkIG1haW4oKSB7CisgICAgb19jb2xvciA9IHZlYzQoMSwxLDEsMSk7Cit9CitgCisgICAgICAg
IF0pOworICAgICAgICBnbC51c2VQcm9ncmFtKHByb2cpOworCisgICAgICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgJ0FmdGVyIGluaXQuJyk7CisK
KyAgICAgICAgZ2wuY29sb3JNYXNrKDEsMSwxLDEpOworICAgICAgICBnbC5kcmF3QnVmZmVycyhE
UkFXX0JVRkZFUlMpOworICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7Cisg
ICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAorICAg
ICAgICAgICAgJ0RyYXdpbmcgd2l0aCB1bm1hc2tlZCB1bmRlZmluZWQgY29sb3Igb3V0cHV0cy4n
KTsKKworICAgICAgICBnbC5jb2xvck1hc2soMCwwLDAsMCk7CisgICAgICAgIGdsLmRyYXdCdWZm
ZXJzKERSQVdfQlVGRkVSUyk7CisgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAx
KTsKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAg
ICAgICAnRHJhd2luZyB3aXRoIGNvbG9yTWFzay1tYXNrZWQtb3V0IHVuZGVmaW5lZCBjb2xvciBv
dXRwdXRzLicpOworCisgICAgICAgIGdsLmNvbG9yTWFzaygxLDEsMSwxKTsKKyAgICAgICAgZ2wu
ZHJhd0J1ZmZlcnMoRFJBV19CVUZGRVJTLm1hcCgoeCxpKSA9PiAoaSA9PSBpbnZhbGlkT3V0cHV0
KSA/IHggOiAwKSk7CisgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAg
ICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCisgICAg
ICAgICAgICAnRHJhd2luZyB3aXRoIHdyb25nLWlkIGRyYXdCdWZmZXItbWFza2VkLW91dCB1bmRl
ZmluZWQgY29sb3Igb3V0cHV0cy4nKTsKKworICAgICAgICBnbC5kcmF3QnVmZmVycyhEUkFXX0JV
RkZFUlMubWFwKCh4LGkpID0+IChpID09IHZhbGlkT3V0cHV0KSA/IHggOiAwKSk7CisgICAgICAg
IGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAnRHJhd2luZyB3aXRoIGRyYXdCdWZm
ZXItbWFza2VkLW91dCB1bmRlZmluZWQgY29sb3Igb3V0cHV0cy4nKTsKKworICAgICAgICBnbC5j
b2xvck1hc2soMCwwLDAsMCk7CisgICAgICAgIGdsLmRyYXdCdWZmZXJzKFtdKTsKKyAgICAgICAg
Z2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICdEcmF3aW5nIHdpdGggY29sb3JNYXNr
K2RyYXdCdWZmZXItbWFza2VkLW91dCB1bmRlZmluZWQgY29sb3Igb3V0cHV0cy4nKTsKKworICAg
ICAgICBjb25zdCB0ZXN0TWFzayA9IChyLGcsYixhKSA9PiB7CisgICAgICAgICAgICBkZWJ1Zyhg
dGVzdE1hc2soJHtbcixnLGIsYV19KWApOworICAgICAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJB
V19CVUZGRVJTKTsKKworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKDEsMSwxLDEpOworICAgICAg
ICAgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgIGdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQpOworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKDAsMCwwLDApOwor
ICAgICAgICAgICAgZXh0LmNvbG9yTWFza2lPRVModmFsaWRPdXRwdXQsIHIsZyxiLGEpOworICAg
ICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAgICAgYERyYXdp
bmcgd2l0aCBzb2xlIGRlZmluZWQgY29sb3Ike3ZhbGlkT3V0cHV0fSBvdXRwdXQgd3JpdGVtYXNr
OiAke1tyLGcsYixhXX0uYCk7CisKKyAgICAgICAgICAgIGZvciAoY29uc3QgaSBvZiByYW5nZShO
VU1fT1VUUFVUUykpIHsKKyAgICAgICAgICAgICAgICBnbC5yZWFkQnVmZmVyKGdsLkNPTE9SX0FU
VEFDSE1FTlQwK2kpOworICAgICAgICAgICAgICAgIGxldCBleHBlY3QgPSBbMCwwLDAsMF07Cisg
ICAgICAgICAgICAgICAgaWYgKGkgPT0gdmFsaWRPdXRwdXQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ID0gW3IsZyxiLGFdLm1hcCh4ID0+IDB4ZmYqeCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIGV4
cGVjdCwgYENPTE9SX0FUVEFDSE1FTlQke2l9OiBbJHtleHBlY3R9XWApOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBnbC5jb2xvck1hc2soMSwxLDEsMSk7CisgICAgICAgICAgICBnbC5j
bGVhckNvbG9yKDAsIDAsIDAsIDApOworICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCk7CisgICAgICAgICAgICBnbC5jb2xvck1hc2socixnLGIsYSk7CisgICAgICAgICAg
ICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoTlVNX09VVFBVVFMpKSB7CisgICAgICAgICAgICAgICAg
aWYgKGkgPT0gdmFsaWRPdXRwdXQpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGV4dC5jb2xv
ck1hc2tpT0VTKGksIDAsMCwwLDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ2wuZHJh
d0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAgICAgYERyYXdpbmcgd2l0aCBzb2xlIHJl
bWFpbmluZyBkZWZpbmVkIGNvbG9yJHt2YWxpZE91dHB1dH0gb3V0cHV0IHdyaXRlbWFzazogJHtb
cixnLGIsYV19LmApOworCisgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoTlVNX09V
VFBVVFMpKSB7CisgICAgICAgICAgICAgICAgZ2wucmVhZEJ1ZmZlcihnbC5DT0xPUl9BVFRBQ0hN
RU5UMCtpKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ID0gWzAsMCwwLDBdOworICAgICAg
ICAgICAgICAgIGlmIChpID09IHZhbGlkT3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgIGV4
cGVjdCA9IFtyLGcsYixhXS5tYXAoeCA9PiAweGZmKngpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBleHBlY3Qs
IGBDT0xPUl9BVFRBQ0hNRU5UJHtpfTogWyR7ZXhwZWN0fV1gKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKHIgfHwgZyB8fCBiIHx8IGEpIHsKKyAgICAgICAgICAgICAgICBnbC5j
b2xvck1hc2soMCwwLDAsMCk7CisgICAgICAgICAgICAgICAgZXh0LmNvbG9yTWFza2lPRVMoaW52
YWxpZE91dHB1dCwgcixnLGIsYSk7CisgICAgICAgICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5Q
T0lOVFMsIDAsIDEpOworICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfT1BFUkFUSU9OLAorICAgICAgICAgICAgICAgICAgICBgRHJhd2luZyB3aXRoIHdy
b25nLWlkIHVuZGVmaW5lZCBjb2xvciBvdXRwdXQgY29sb3IgbWFza2VkOiAke1tyLGcsYixhXX0u
YCk7CisKKyAgICAgICAgICAgICAgICBnbC5kcmF3QnVmZmVycyhbXSk7CisgICAgICAgICAgICAg
ICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgICAgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAnRHJh
d2luZyB3aXRoIHdyb25nLWlkIGNvbG9yTWFzaywgYnV0IGFsbC1vZmYgZHJhd0J1ZmZlcnMuJyk7
CisKKyAgICAgICAgICAgICAgICBnbC5kcmF3QnVmZmVycyhEUkFXX0JVRkZFUlMubWFwKCh4LGkp
ID0+IChpID09IHZhbGlkT3V0cHV0KSA/IHggOiAwKSk7CisgICAgICAgICAgICAgICAgZ2wuZHJh
d0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAnRHJhd2luZyB3aXRo
IHdyb25nLWlkIGNvbG9yTWFzaywgYnV0IHJpZ2h0LWlkIGRyYXdCdWZmZXJzIG1hc2tlZC4nKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0ZXN0TWFzaygwLDAsMCwwKTsK
KyAgICAgICAgdGVzdE1hc2soMSwwLDAsMCk7CisgICAgICAgIHRlc3RNYXNrKDAsMSwwLDApOwor
ICAgICAgICB0ZXN0TWFzaygwLDAsMSwwKTsKKyAgICAgICAgdGVzdE1hc2soMCwwLDAsMSk7Cisg
ICAgICAgIHRlc3RNYXNrKDEsMSwxLDEpOworICAgIH0KK30KKwogZnVuY3Rpb24gcnVuVGVzdCgp
IHsKICAgaWYgKCFnbCkgewogICAgIHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3Qi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9l
eHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2RlMmE1Njc3
Nzc2ZmY5YTIzNzFkMWU3YWY2MWViZWMxNGY3MDBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVu
c2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhLS0KK0Nv
cHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorInVzZSBzdHJpY3QiOworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitsZXQg
Z2w7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCByZXF1aXJlZCBleHRlbnNpb25zIGFyZSBz
dXBwb3J0ZWQiKTsKKworc2hvdWxkQmVOb25OdWxsKCJnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
dW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpIik7CisKK2NvbnN0IHN1cHBvcnRlZEV4dHMgPSBnbC5n
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisKK2Z1bmN0aW9uIGhhc0V4dChuYW1lKSB7CisgICAg
cmV0dXJuIHN1cHBvcnRlZEV4dHMuaW5kZXhPZihuYW1lKSA+PSAwOworfQorCitjb25zdCBoYXNf
czN0YyA9IGhhc0V4dCgnV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMnKTsKK2NvbnN0IGhh
c19zM3RjX3NyZ2IgPSBoYXNFeHQoJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjX3NyZ2In
KTsKK2NvbnN0IGhhc19yZ3RjID0gaGFzRXh0KCdFWFRfdGV4dHVyZV9jb21wcmVzc2lvbl9yZ3Rj
Jyk7Citjb25zdCBoYXNfZXRjID0gaGFzRXh0KCdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRj
Jyk7CisKK2RlYnVnKGBoYXNfczN0YzogJHtoYXNfczN0Y31gKTsKK2RlYnVnKGBoYXNfczN0Y19z
cmdiOiAke2hhc19zM3RjX3NyZ2J9YCk7CitkZWJ1ZyhgaGFzX3JndGM6ICR7aGFzX3JndGN9YCk7
CitkZWJ1ZyhgaGFzX2V0YzogJHtoYXNfZXRjfWApOworCitzaG91bGRCZVRydWUoIigoaGFzX3Mz
dGMgJiYgaGFzX3MzdGNfc3JnYiAmJiBoYXNfcmd0YykgfHwgaGFzX2V0YykiKTsKKworLy8gRVRD
MSBleHRlbnNpb24gbXVzdCBub3QgYmUgZXhwb3NlZCBvbiBXZWJHTCAyLjAgY29udGV4dHMgd2l0
aG91dCBFVEMyLgorZGVidWcoIiIpOworY29uc3QgaGFzX2V0YzEgPSBoYXNFeHQoJ1dFQkdMX2Nv
bXByZXNzZWRfdGV4dHVyZV9ldGMxJyk7CitkZWJ1ZyhgaGFzX2V0YzE6ICR7aGFzX2V0YzF9YCk7
CitzaG91bGRCZVRydWUoImhhc19ldGMxID09IGhhc19ldGMiKTsKKworZGVidWcoIiIpOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3LWluc3RhbmNlZC1iYXNlLXZlcnRl
eC1iYXNlLWluc3RhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3LWluc3Rh
bmNlZC1iYXNlLXZlcnRleC1iYXNlLWluc3RhbmNlLmh0bWwKaW5kZXggOTU1NWIwNDY1NjQ1ZjA3
YTVhYzRiMWE1MDgzYTVkZTkzOGJmNTI2Yy4uMTI4YTRmYzY3NWNmMDgzM2QwMWZmZTAzMWRjYjFj
OTZkN2JkYzI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0
YW5jZWQtYmFzZS12ZXJ0ZXgtYmFzZS1pbnN0YW5jZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3dl
YmdsLW11bHRpLWRyYXctaW5zdGFuY2VkLWJhc2UtdmVydGV4LWJhc2UtaW5zdGFuY2UuaHRtbApA
QCAtOSw3ICs5LDcgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdCBpZD0idnNoYWRlcklsbGVnYWxC
YXNlSW5zdGFuY2UiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAgZXMKKzxz
Y3JpcHQgaWQ9InZzaGFkZXJCYXNlSW5zdGFuY2VXaXRob3V0RXh0IiB0eXBlPSJ4LXNoYWRlci94
LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCiBsYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQ
b3NpdGlvbjsKIG91dCB2ZWM0IGNvbG9yOwogdm9pZCBtYWluKCkKQEAgLTE4LDIwICsxOCw2IEBA
IHZvaWQgbWFpbigpCiAgIGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRpb24gKiAyLjAgLSAxLjAs
IGdsX0Jhc2VJbnN0YW5jZSwgMSk7CiB9CiA8L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZzaGFkZXJC
YXNlSW5zdGFuY2VaZXJvIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVz
Ci0jZXh0ZW5zaW9uIEdMX0FOR0xFX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UgOiByZXF1aXJl
Ci1sYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQb3NpdGlvbjsKLW91dCB2ZWM0IGNvbG9y
Owotdm9pZCBtYWluKCkKLXsKLSAgaWYgKGdsX0Jhc2VJbnN0YW5jZSA9PSAwKSB7Ci0gICAgY29s
b3IgPSB2ZWM0KDAsIDEsIDAsIDEpOwotICB9IGVsc2UgewotICAgIGNvbG9yID0gdmVjNCgxLCAw
LCAwLCAxKTsKLSAgfQotICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uICogMi4wIC0gMS4w
LCAwLCAxKTsKLX0KLTwvc2NyaXB0PgogPCEtLSBDaGVjayBnbF9JbnN0YW5jZUlEIHN0YXJ0cyBh
dCAwIHJlZ2FyZGxlc3Mgb2YgZ2xfQmFzZUluc3RhbmNlIC0tPgogPHNjcmlwdCBpZD0idnNoYWRl
ckluc3RhbmNlSURDaGVjayIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBl
cwogbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247CkBAIC00Niw3ICszMiw3
IEBAIHZvaWQgbWFpbigpCiAgIGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRpb24gKiAyLjAgLSAx
LjAsIDAsIDEpOwogfQogPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2c2hhZGVySWxsZWdhbEJhc2VW
ZXJ0ZXgiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAgZXMKKzxzY3JpcHQg
aWQ9InZzaGFkZXJCYXNlVmVydGV4V2l0aG91dEV4dCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgi
PiN2ZXJzaW9uIDMwMCBlcwogbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247
CiBvdXQgdmVjNCBjb2xvcjsKIHZvaWQgbWFpbigpCkBAIC01NSwxNyArNDEsMTMgQEAgdm9pZCBt
YWluKCkKICAgZ2xfUG9zaXRpb24gPSB2ZWM0KHZQb3NpdGlvbiAqIDIuMCAtIDEuMCwgZ2xfQmFz
ZVZlcnRleCwgMSk7CiB9CiA8L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZzaGFkZXJCYXNlVmVydGV4
WmVybyIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcworPHNjcmlwdCBp
ZD0idnNoYWRlcldpdGhFeHQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAg
ZXMKICNleHRlbnNpb24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSA6IHJlcXVp
cmUKIGxheW91dChsb2NhdGlvbiA9IDApIGluIHZlYzIgdlBvc2l0aW9uOwogb3V0IHZlYzQgY29s
b3I7CiB2b2lkIG1haW4oKQogewotICBpZiAoZ2xfQmFzZVZlcnRleCA9PSAwKSB7Ci0gICAgY29s
b3IgPSB2ZWM0KDAsIDEsIDAsIDEpOwotICB9IGVsc2UgewotICAgIGNvbG9yID0gdmVjNCgxLCAw
LCAwLCAxKTsKLSAgfQorICBjb2xvciA9IHZlYzQoMCwgMSwgMCwgMSk7CiAgIGdsX1Bvc2l0aW9u
ID0gdmVjNCh2UG9zaXRpb24gKiAyLjAgLSAxLjAsIDAsIDEpOwogfQogPC9zY3JpcHQ+CkBAIC04
NCw3ICs2Niw2IEBAIHZvaWQgbWFpbigpCiB9CiA8L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InZzaGFk
ZXJTaW1wbGUiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAgZXMKLSAgI2V4
dGVuc2lvbiBHTF9BTkdMRV9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlIDogcmVxdWlyZQogICBs
YXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQb3NpdGlvbjsKICAgbGF5b3V0KGxvY2F0aW9u
ID0gMSkgaW4gZmxvYXQgdkluc3RhbmNlOwogICBvdXQgdmVjNCBjb2xvcjsKQEAgLTEyMSw3ICsx
MDIsMTMgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZnVuY3Rpb25hbGl0
eSBvZiB0aGUgV0VCR0xfW211bHRpXV9kcmF3X2Jhc2UKIAogY29uc3Qgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7CiBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7
Ci1jb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCBudWxsLCAyKTsKK2NhbnZh
cy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzAwMCc7CitjYW52YXMuc3R5bGUuaW1hZ2VSZW5k
ZXJpbmcgPSAncGl4ZWxhdGVkJzsgLy8gQmVjYXVzZSBDaHJvbWUgZG9lc24ndCBzdXBwb3J0IGNy
aXNwLWVkZ2VzLgorY2FudmFzLnN0eWxlLmltYWdlUmVuZGVyaW5nID0gJ2NyaXNwLWVkZ2VzJzsK
K2NvbnN0IGF0dHJpYnMgPSB7CisgIGFudGlhbGlhczogZmFsc2UsCit9OworY29uc3QgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgYXR0cmlicywgMik7CiAKIGNvbnN0IHdpZHRoID0g
Z2wuY2FudmFzLndpZHRoOwogY29uc3QgaGVpZ2h0ID0gZ2wuY2FudmFzLmhlaWdodDsKQEAgLTI3
MCw4ICsyNTcsMjUwIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgZG9UZXN0KCdXRUJHTF9k
cmF3X2luc3RhbmNlZF9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlJywgZmFsc2UpOwogICBkb1Rl
c3QoJ1dFQkdMX211bHRpX2RyYXdfaW5zdGFuY2VkX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2Un
LCB0cnVlKTsKKworICB0ZXN0R2xzbEJ1aWx0aW5zKCk7Cit9CisKKy8vIC0KKworZnVuY3Rpb24q
IHJhbmdlKG4pIHsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICB5aWVsZCBp
OworICB9CiB9CiAKK2Z1bmN0aW9uIGNyb3NzQ29tYmluZSguLi5hcmdzKSB7CisgIGZ1bmN0aW9u
IGNyb3NzQ29tYmluZTIobGlzdEEsIGxpc3RCKSB7CisgICAgY29uc3QgbGlzdEMgPSBbXTsKKyAg
ICBmb3IgKGNvbnN0IGEgb2YgbGlzdEEpIHsKKyAgICAgIGZvciAoY29uc3QgYiBvZiBsaXN0Qikg
eworICAgICAgICBjb25zdCBjID0gT2JqZWN0LmFzc2lnbih7fSwgYSwgYik7CisgICAgICAgIGxp
c3RDLnB1c2goYyk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiBsaXN0QzsKKyAgfQorCisg
IGxldCByZXMgPSBbe31dOworICB3aGlsZSAoYXJncy5sZW5ndGgpIHsKKyAgICBjb25zdCBuZXh0
ID0gYXJncy5zaGlmdCgpOworICAgIG5leHRbMF0uZGVmaW5lZDsKKyAgICByZXMgPSBjcm9zc0Nv
bWJpbmUyKHJlcywgbmV4dCk7CisgIH0KKyAgcmV0dXJuIHJlczsKK30KKworLy8gLQorCitjb25z
dCBQQVNTVEhST1VHSF9GUkFHX1NSQyA9IGBcCisjdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworaW4gdmVjNCB2X2NvbG9yOworb3V0IHZlYzQgb19jb2xvcjsKKwordm9p
ZCBtYWluKCkgeworICBvX2NvbG9yID0gdl9jb2xvcjsKK30KK2A7CisKK2Z1bmN0aW9uIHRlc3RH
bHNsQnVpbHRpbnMoKSB7CisgIGNvbnN0IEVYVCA9IGdsLmdldEV4dGVuc2lvbignV0VCR0xfZHJh
d19pbnN0YW5jZWRfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZScpOworCisgIGNvbnN0IHZlcnRp
ZF9wcm9nID0gKCgpID0+IHsKKyAgICAgIGNvbnN0IHZlcnRfc3JjID0gYFwKKyN2ZXJzaW9uIDMw
MCBlcworI2xpbmUgNDA1CitsYXlvdXQobG9jYXRpb24gPSAwKSBpbiBpbnQgYV92ZXJ0ZXhfaWQ7
IC8vIFNhbWUgYXMgZ2xfVmVydGV4SUQKK291dCB2ZWM0IHZfY29sb3I7CisKK3ZvaWQgbWFpbigp
IHsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDEpOworICBnbF9Qb2ludFNpemUgPSAxLjA7
CisgIHZfY29sb3IgPSB2ZWM0KGZsb2F0KGdsX1ZlcnRleElEKSwgZmxvYXQoYV92ZXJ0ZXhfaWQp
LDAsMCk7CisgIHZfY29sb3IgLz0gMjU1LjA7Cit9CitgOworICAgICAgY29uc3QgcHJvZyA9IHd0
dS5zZXR1cFByb2dyYW0oZ2wsIFt2ZXJ0X3NyYywgUEFTU1RIUk9VR0hfRlJBR19TUkNdLAorICAg
ICAgICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwgLypsb2dTaGFkZXJzKi8gdHJ1ZSk7Cisg
ICAgICBleHBlY3RUcnVlKCEhcHJvZywgYG1ha2VfdmVydGlkX3Byb2cgZmFpbGVkYCk7CisgICAg
ICByZXR1cm4gcHJvZzsKKyAgICB9KSgpOworCisgIGNvbnN0IGluc3RpZF9wcm9nID0gKCgpID0+
IHsKKyAgICAgIGNvbnN0IHZlcnRfc3JjID0gYFwKKyN2ZXJzaW9uIDMwMCBlcworI2xpbmUgNDI1
CitsYXlvdXQobG9jYXRpb24gPSAwKSBpbiBpbnQgYV92ZXJ0ZXhfaWQ7IC8vIFNhbWUgYXMgZ2xf
VmVydGV4SUQKK2xheW91dChsb2NhdGlvbiA9IDEpIGluIGludCBhX2luc3RhbmNlX2RpdjE7IC8v
IFNhbWUgYXMgYmFzZV9pbnN0YW5jZStnbF9JbnN0YW5jZUlECitsYXlvdXQobG9jYXRpb24gPSAy
KSBpbiBpbnQgYV9pbnN0YW5jZV9kaXYyOyAvLyBTYW1lIGFzIGJhc2VfaW5zdGFuY2UrZmxvb3Io
Z2xfSW5zdGFuY2VJRC8yKQorbGF5b3V0KGxvY2F0aW9uID0gMykgaW4gaW50IGFfaW5zdGFuY2Vf
ZGl2MzsgLy8gU2FtZSBhcyBiYXNlX2luc3RhbmNlK2Zsb29yKGdsX0luc3RhbmNlSUQvMykKK291
dCB2ZWM0IHZfY29sb3I7CisKK3ZvaWQgbWFpbigpIHsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAs
MCwwLDEpOworICBnbF9Qb2ludFNpemUgPSAxLjA7CisgIHZfY29sb3IgPSB2ZWM0KGZsb2F0KGds
X0luc3RhbmNlSUQpLCBmbG9hdChhX2luc3RhbmNlX2RpdjEpLAorICAgICAgICAgICAgICAgICBm
bG9hdChhX2luc3RhbmNlX2RpdjIpLCBmbG9hdChhX2luc3RhbmNlX2RpdjMpKTsKKyAgdl9jb2xv
ciAvPSAyNTUuMDsKK30KK2A7CisgICAgICBjb25zdCBwcm9nID0gd3R1LnNldHVwUHJvZ3JhbShn
bCwgW3ZlcnRfc3JjLCBQQVNTVEhST1VHSF9GUkFHX1NSQ10sCisgICAgICAgICAgICAgIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCAvKmxvZ1NoYWRlcnMqLyB0cnVlKTsKKyAgICAgIGV4cGVjdFRydWUo
ISFwcm9nLCBgbWFrZV9pbnN0aWRfcHJvZyBmYWlsZWRgKTsKKyAgICAgIHJldHVybiBwcm9nOwor
ICAgIH0pKCk7CisKKyAgY29uc3QgQ09VTlRfVVBfREFUQSA9IG5ldyBJbnQzMkFycmF5KDEwMDAp
OworICBmb3IgKGNvbnN0IGkgaW4gQ09VTlRfVVBfREFUQSkgeworICAgIENPVU5UX1VQX0RBVEFb
aV0gPSBpOworICB9CisKKyAgY29uc3QgdmVydGV4X2lkX2J1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4X2lkX2J1Zik7CisgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBDT1VOVF9VUF9EQVRBLCBnbC5TVEFUSUNfRFJB
Vyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICBnbC52ZXJ0ZXhBdHRyaWJJ
UG9pbnRlcigwLCAxLCBnbC5JTlQsIDAsIDApOworCisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KDEpOworICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigxLCAxLCBnbC5JTlQsIDAsIDApOwor
ICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDEsIDEpOworCisgIGdsLmVuYWJsZVZlcnRleEF0dHJp
YkFycmF5KDIpOworICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigyLCAxLCBnbC5JTlQsIDAsIDAp
OworICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDIsIDIpOworCisgIGdsLmVuYWJsZVZlcnRleEF0
dHJpYkFycmF5KDMpOworICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigzLCAxLCBnbC5JTlQsIDAs
IDApOworICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDMsIDMpOworCisgIGNvbnN0IGluZGV4X2J1
ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlf
QlVGRkVSLCBpbmRleF9idWYpOworICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVG
RkVSLCBDT1VOVF9VUF9EQVRBLCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgZ2wuY2FudmFzLndpZHRo
ID0gZ2wuY2FudmFzLmhlaWdodCA9IDE7CisgIGdsLmNhbnZhcy5zdHlsZS53aWR0aCA9IGdsLmNh
bnZhcy5zdHlsZS5oZWlnaHQgPSAnMWVtJzsKKyAgZ2wudmlld3BvcnQoMCwgMCwgMSwgMSk7CisK
KyAgY29uc3QgZXhwZWN0X3BpeGVsID0gKCgpID0+IHsKKyAgICBjb25zdCB3YXMgPSBuZXcgVWlu
dDhBcnJheSg0KTsKKyAgICByZXR1cm4gKGRlc2MsIHN1YnRlc3QsIGV4cGVjdGVkKSA9PiB7Cisg
ICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHdhcyk7CisgICAgICBpZiAoIWFyZUFycmF5c0VxdWFsKHdhcywgZXhwZWN0ZWQpKSB7CisgICAg
ICAgIHRlc3RGYWlsZWQoYCR7c3VidGVzdH06IEV4cGVjdGVkIFske2V4cGVjdGVkfV0sIHdhcyBb
JHt3YXN9XS4gZGVzYzogJHtKU09OLnN0cmluZ2lmeShkZXNjKX1gKTsKKyAgICAgIH0gZWxzZSB7
CisgICAgICAgIGRlYnVnKGAke3N1YnRlc3R9OiBXYXMgWyR7d2FzfV0gYXMgZXhwZWN0ZWQuYCk7
CisgICAgICB9CisgICAgfTsKKyAgfSkoKTsKKworICAvLyBDb21tb24gc2V0dXAgY29tcGxldGUK
KyAgLy8gLQorICAvLyBDcmVhdGUgdGVzdGNhc2VzCisKKyAgY29uc3QgRFJBV19GVU5DX0NPTUJJ
TkVSID0gW3sKKyAgICBuYW1lOiAnZHJhd0FycmF5c0luc3RhbmNlZCcsCisgICAgZHJhdzogZGVz
YyA9PiB7CisgICAgICBpZiAoZGVzYy5iYXNlX3ZlcnQpIHJldHVybiBmYWxzZTsKKyAgICAgIGlm
IChkZXNjLmJhc2VfaW5zdCkgcmV0dXJuIGZhbHNlOworICAgICAgZ2wuZHJhd0FycmF5c0luc3Rh
bmNlZChnbFtkZXNjLm1vZGVdLCBkZXNjLmZpcnN0X3ZlcnQsCisgICAgICAgICAgZGVzYy52ZXJ0
X2NvdW50LCBkZXNjLmluc3RfY291bnQpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKyAg
fSwgeworICAgIG5hbWU6ICdkcmF3RWxlbWVudHNJbnN0YW5jZWQnLAorICAgIGRyYXc6IGRlc2Mg
PT4geworICAgICAgaWYgKGRlc2MuYmFzZV92ZXJ0KSByZXR1cm4gZmFsc2U7CisgICAgICBpZiAo
ZGVzYy5iYXNlX2luc3QpIHJldHVybiBmYWxzZTsKKyAgICAgIGdsLmRyYXdFbGVtZW50c0luc3Rh
bmNlZChnbFtkZXNjLm1vZGVdLCBkZXNjLnZlcnRfY291bnQsCisgICAgICAgICAgZ2wuVU5TSUdO
RURfSU5ULCA0KmRlc2MuZmlyc3RfdmVydCwgZGVzYy5pbnN0X2NvdW50KTsKKyAgICAgIHJldHVy
biB0cnVlOworICAgIH0sCisgIH0sIHsKKyAgICBuYW1lOiAnZHJhd0FycmF5c0luc3RhbmNlZEJh
c2VJbnN0YW5jZVdFQkdMJywKKyAgICBkcmF3OiBkZXNjID0+IHsKKyAgICAgIGlmIChkZXNjLmJh
c2VfdmVydCkgcmV0dXJuIGZhbHNlOworICAgICAgaWYgKCFFWFQpIHJldHVybiBmYWxzZTsKKyAg
ICAgIEVYVC5kcmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlV0VCR0woZ2xbZGVzYy5tb2Rl
XSwKKyAgICAgICAgZGVzYy5maXJzdF92ZXJ0LCBkZXNjLnZlcnRfY291bnQsIGRlc2MuaW5zdF9j
b3VudCwKKyAgICAgICAgZGVzYy5iYXNlX2luc3QpOworICAgICAgcmV0dXJuIHRydWU7CisgICAg
fSwKKyAgfSwgeworICAgIG5hbWU6ICdkcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFz
ZUluc3RhbmNlV0VCR0wnLAorICAgIGRyYXc6IGRlc2MgPT4geworICAgICAgaWYgKCFFWFQpIHJl
dHVybiBmYWxzZTsKKyAgICAgIEVYVC5kcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFz
ZUluc3RhbmNlV0VCR0woCisgICAgICAgICAgZ2xbZGVzYy5tb2RlXSwgZGVzYy52ZXJ0X2NvdW50
LCBnbC5VTlNJR05FRF9JTlQsIDQqZGVzYy5maXJzdF92ZXJ0LAorICAgICAgICAgIGRlc2MuaW5z
dF9jb3VudCwgZGVzYy5iYXNlX3ZlcnQsIGRlc2MuYmFzZV9pbnN0KTsKKyAgICAgIHJldHVybiB0
cnVlOworICAgIH0sCisgIH1dOworCisgIC8vIC0KKworICBmdW5jdGlvbiBtYWtlX2tleV9jb21i
aW5lcihrZXksIHZhbHMpIHsKKyAgICBjb25zdCByZXQgPSBbXTsKKyAgICBmb3IgKGNvbnN0IHYg
b2YgdmFscykgeworICAgICAgY29uc3QgY3VyID0ge307CisgICAgICBjdXJba2V5XSA9IHY7Cisg
ICAgICByZXQucHVzaChjdXIpOworICAgIH0KKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgY29u
c3QgVEVTVF9ERVNDUyA9IGNyb3NzQ29tYmluZSgKKyAgICBEUkFXX0ZVTkNfQ09NQklORVIsCisg
ICAgbWFrZV9rZXlfY29tYmluZXIoJ2Jhc2VfdmVydCcsIFswLDEsMl0pLAorICAgIG1ha2Vfa2V5
X2NvbWJpbmVyKCd2ZXJ0X2NvdW50JywgWzAsMSwyXSksCisgICAgbWFrZV9rZXlfY29tYmluZXIo
J2Jhc2VfaW5zdCcsIFswLDEsMl0pLAorICAgIG1ha2Vfa2V5X2NvbWJpbmVyKCdpbnN0X2NvdW50
JywgcmFuZ2UoMTApKSwKKyAgICBtYWtlX2tleV9jb21iaW5lcignZmlyc3RfdmVydCcsIFswLDEs
Ml0pLAorICApOworICBjb25zb2xlLmxvZygnVEVTVF9ERVNDUycsIFRFU1RfREVTQ1MpOworCisg
IC8vIC0KKyAgLy8gUnVuIHRlc3RjYXNlcworCisgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7
CisgIGdsLmRpc2FibGUoZ2wuU1RFTkNJTF9URVNUKTsKKyAgZ2wuZGlzYWJsZShnbC5CTEVORCk7
CisKKyAgZm9yIChjb25zdCBkZXNjIG9mIFRFU1RfREVTQ1MpIHsKKyAgICBnbC5kaXNhYmxlKGds
LlNDSVNTT1JfVEVTVCk7CisgICAgZ2wuY2xlYXJCdWZmZXJmdihnbC5DT0xPUiwgMCwgWzEsMCww
LDFdKTsKKworICAgIC8vIEZyb20gT3BlbkdMIEVTIDMuMiBzcGVjIHNlY3Rpb24gMTAuNQorICAg
IC8vIGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L09wZW5HTC9zcGVjcy9lcy8zLjIv
ZXNfc3BlY18zLjIucGRmCisgICAgLy8gVGhlIGluZGV4IG9mIGFueSBlbGVtZW50IHRyYW5zZmVy
cmVkIHRvIHRoZSBHTCBieSBEcmF3QXJyYXlzT25lSW5zdGFuY2UKKyAgICAvLyBpcyByZWZlcnJl
ZCB0byBhcyBpdHMgdmVydGV4IElELCBhbmQgbWF5IGJlIHJlYWQgYnkgYSB2ZXJ0ZXggc2hhZGVy
IGFzIGdsX1ZlcnRleElELgorICAgIC8vIFRoZSB2ZXJ0ZXggSUQgb2YgdGhlIGl0aCBlbGVtZW50
IHRyYW5zZmVycmVkIGlzIGZpcnN0ICsgaS4KKyAgICBjb25zdCBsYXN0X2dsX3ZlcnRfaWQgPSBk
ZXNjLmJhc2VfdmVydCArIGRlc2MuZmlyc3RfdmVydCArIGRlc2MudmVydF9jb3VudCAtIDE7Cisg
ICAgY29uc3QgbGFzdF92ZXJ0X2lkID0gbGFzdF9nbF92ZXJ0X2lkOworICAgIGNvbnN0IGxhc3Rf
aW5zdF9pZCA9IGRlc2MuaW5zdF9jb3VudCAtIDE7CisgICAgY29uc3QgbGFzdF9pbnN0X2RpdjEg
PSBkZXNjLmJhc2VfaW5zdCArIGxhc3RfaW5zdF9pZDsKKyAgICBjb25zdCBsYXN0X2luc3RfZGl2
MiA9IGRlc2MuYmFzZV9pbnN0ICsgTWF0aC5mbG9vcihsYXN0X2luc3RfaWQgLyAyKTsKKyAgICBj
b25zdCBsYXN0X2luc3RfZGl2MyA9IGRlc2MuYmFzZV9pbnN0ICsgTWF0aC5mbG9vcihsYXN0X2lu
c3RfaWQgLyAzKTsKKworICAgIGdsLnVzZVByb2dyYW0odmVydGlkX3Byb2cpOworICAgIGlmICgh
ZGVzYy5kcmF3KGRlc2MpKSBjb250aW51ZTsKKyAgICBkZWJ1ZygnXG5kZXNjOiAnICsgSlNPTi5z
dHJpbmdpZnkoZGVzYykpOworCisgICAgd3R1LmdsRXJyb3JBc3NlcnQoZ2wsIDApOworICAgIGlm
ICghZGVzYy52ZXJ0X2NvdW50IHx8ICFkZXNjLmluc3RfY291bnQpIHsKKyAgICAgIGV4cGVjdF9w
aXhlbChkZXNjLCAndmVydGlkX3Byb2cnLCBbMjU1LCAwLCAwLCAyNTVdKTsKKyAgICAgIGNvbnRp
bnVlOworICAgIH0KKworICAgIGV4cGVjdF9waXhlbChkZXNjLCAndmVydGlkX3Byb2cnLCBbbGFz
dF9nbF92ZXJ0X2lkLCBsYXN0X3ZlcnRfaWQsIDAsIDBdKTsKKworICAgIGdsLnVzZVByb2dyYW0o
aW5zdGlkX3Byb2cpOworICAgIGRlc2MuZHJhdyhkZXNjKTsKKyAgICBleHBlY3RfcGl4ZWwoZGVz
YywgJ2luc3RpZF9wcm9nJywgW2xhc3RfaW5zdF9pZCwgbGFzdF9pbnN0X2RpdjEsIGxhc3RfaW5z
dF9kaXYyLCBsYXN0X2luc3RfZGl2M10pOworICB9Cit9CisKKy8vIC0KKwogZnVuY3Rpb24gZG9U
ZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICBjb25zdCBleHQgPSBnbC5nZXRFeHRl
bnNpb24oZXh0ZW5zaW9uTmFtZSk7CiAgIGlmICghcnVuU3VwcG9ydGVkVGVzdChleHRlbnNpb25O
YW1lLCBleHQpKSB7CkBAIC0yODIsMjEgKzUxMSwxOSBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0ZW5z
aW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgICAgY29uc3QgdnMgPSBbCiAgICAgICAnI3ZlcnNpb24g
MzAwIGVzJywKICAgICAgIGNvbmZpZy5pc011bHRpRHJhdyA/ICcjZXh0ZW5zaW9uIEdMX0FOR0xF
X211bHRpX2RyYXcgOiByZXF1aXJlJyA6ICcnLAotICAgICAgJyNleHRlbnNpb24gR0xfQU5HTEVf
YmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSA6IHJlcXVpcmUnLAogICAgICAgJyNkZWZpbmUga0Nv
dW50WCAnICsgY291bnRYLnRvU3RyaW5nKCksCiAgICAgICAnI2RlZmluZSBrQ291bnRZICcgKyBj
b3VudFkudG9TdHJpbmcoKSwKICAgICAgICdsYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQ
b3NpdGlvbjsnLAotICAgICAgY29uZmlnLnVzZUJhc2VJbnN0YW5jZUJ1aWx0aW4gPyAnJyA6ICds
YXlvdXQobG9jYXRpb24gPSAxKSBpbiBmbG9hdCB2SW5zdGFuY2VJRDsnLAorICAgICAgJ2xheW91
dChsb2NhdGlvbiA9IDEpIGluIGZsb2F0IHZJbnN0YW5jZUlEOycsCiAgICAgICAnb3V0IHZlYzQg
Y29sb3I7JywKICAgICAgICd2b2lkIG1haW4oKScsCiAgICAgICAneycsCiAgICAgICAnICBjb25z
dCBmbG9hdCB4U3RlcCA9IDEuMCAvIGZsb2F0KGtDb3VudFgpOycsCiAgICAgICAnICBjb25zdCBm
bG9hdCB5U3RlcCA9IDEuMCAvIGZsb2F0KGtDb3VudFkpOycsCi0gICAgICAnICBmbG9hdCB4SUQg
PSAnICsgKGNvbmZpZy51c2VCYXNlSW5zdGFuY2VCdWlsdGluID8gJ2Zsb2F0KGdsX0luc3RhbmNl
SUQgKyBnbF9CYXNlSW5zdGFuY2UpJyA6ICd2SW5zdGFuY2VJRCcpICsgJzsnLAorICAgICAgJyAg
ZmxvYXQgeElEID0gdkluc3RhbmNlSUQ7JywKICAgICAgICcgIGZsb2F0IHhDb2xvciA9IDEuMCAt
IHhTdGVwICogeElEOycsCiAgICAgICAnICBmbG9hdCB5SUQgPSBmbG9vcihmbG9hdChnbF9WZXJ0
ZXhJRCkgLyAnICsgKGNvbmZpZy5pc0RyYXdBcnJheXMgPyAnNi4wJyA6ICc0LjAnKSArICcgKyAw
LjAxKTsnLAotICAgICAgJyAgY29sb3IgPSB2ZWM0KHhDb2xvciwgMS4wIC0geVN0ZXAgKiB5SUQs
ICcsCi0gICAgICBjb25maWcudXNlQmFzZVZlcnRleEJ1aWx0aW4gPyAnMS4wIC0geVN0ZXAgKiBm
bG9hdChnbF9CYXNlVmVydGV4KSAvIDQuMCcgOiAnMS4wJywKKyAgICAgICcgIGNvbG9yID0gdmVj
NCh4Q29sb3IsIDEuMCAtIHlTdGVwICogeUlELCAxLjAnLAogICAgICAgJyAgLCAxLjApOycsCiAg
ICAgICAnICBtYXQzIHRyYW5zZm9ybSA9IG1hdDMoMS4wKTsnLAogICAgICAgJyAgdHJhbnNmb3Jt
WzJdWzBdID0geElEICogeFN0ZXA7JywKQEAgLTMyMiw3ICs1NDksNyBAQCBmdW5jdGlvbiBkb1Rl
c3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIGluc3RhbmNlQnVmZmVyKTsKICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAsIDEsIDIgXSksIGJ1ZmZlclVzYWdlKTsKIAotICAg
IGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbJ3ZzaGFkZXJTaW1wbGUnLCAn
ZnNoYWRlciddLCBbJ3ZQb3NpdGlvbiwgdkluc3RhbmNlSUQnXSwgWzAsIDFdKTsKKyAgICBjb25z
dCBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyd2c2hhZGVyU2ltcGxlJywgJ2ZzaGFk
ZXInXSwgWyd2UG9zaXRpb24sIHZJbnN0YW5jZUlEJ10sIFswLCAxXSwgdHJ1ZSk7CiAgICAgZXhw
ZWN0VHJ1ZShwcm9ncmFtICE9IG51bGwsICJjYW4gY29tcGlsZSBzaW1wbGUgcHJvZ3JhbSIpOwog
CiAgICAgZnVuY3Rpb24gc2V0dXBJbnN0YW5jZWQoKSB7CkBAIC00OTAsMzggKzcxNywyNyBAQCBm
dW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgIH0KIAogICBmdW5j
dGlvbiBydW5TaGFkZXJUZXN0cyhidWZmZXJVc2FnZSkgewotICAgIGNvbnN0IGlsbGVnYWxCYXNl
SW5zdGFuY2VQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVySWxsZWdhbEJh
c2VJbnN0YW5jZSIsICJmc2hhZGVyIl0pOwotICAgIGV4cGVjdFRydWUoaWxsZWdhbEJhc2VJbnN0
YW5jZVByb2dyYW0gPT0gbnVsbCwgImNhbm5vdCBjb21waWxlIHByb2dyYW0gd2l0aCBnbF9CYXNl
SW5zdGFuY2UgYnV0IG5vIGV4dGVuc2lvbiBkaXJlY3RpdmUiKTsKLSAgICBjb25zdCBpbGxlZ2Fs
QmFzZVZlcnRleFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJJbGxlZ2Fs
QmFzZVZlcnRleCIsICJmc2hhZGVyIl0pOwotICAgIGV4cGVjdFRydWUoaWxsZWdhbEJhc2VWZXJ0
ZXhQcm9ncmFtID09IG51bGwsICJjYW5ub3QgY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFzZVZl
cnRleCBidXQgbm8gZXh0ZW5zaW9uIGRpcmVjdGl2ZSIpOworICAgIGxldCBiYWRQcm9ncmFtOwor
CisgICAgYmFkUHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckJhc2VJbnN0
YW5jZVdpdGhvdXRFeHQiLCAiZnNoYWRlciJdKTsKKyAgICBleHBlY3RUcnVlKCFiYWRQcm9ncmFt
LCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VJbnN0YW5jZSBidXQgbm8gZXh0
ZW5zaW9uIGRpcmVjdGl2ZSIpOworICAgIGJhZFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGds
LCBbInZzaGFkZXJCYXNlVmVydGV4V2l0aG91dEV4dCIsICJmc2hhZGVyIl0pOworICAgIGV4cGVj
dFRydWUoIWJhZFByb2dyYW0sICJjYW5ub3QgY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFzZVZl
cnRleCBidXQgbm8gZXh0ZW5zaW9uIGRpcmVjdGl2ZSIpOworCisgICAgYmFkUHJvZ3JhbSA9IHd0
dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlcldpdGhFeHQiLCAiZnNoYWRlciJdKTsKKyAgICBl
eHBlY3RUcnVlKCFiYWRQcm9ncmFtLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoICNleHRl
bnNpb24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSIpOwogCiAgICAgY29uc3Qg
eCA9IE1hdGguZmxvb3Iod2lkdGggKiAwLjQpOwogICAgIGNvbnN0IHkgPSBNYXRoLmZsb29yKGhl
aWdodCAqIDAuNCk7CiAgICAgY29uc3QgeFNpemUgPSBNYXRoLmZsb29yKHdpZHRoICogMC4yKTsK
ICAgICBjb25zdCB5U2l6ZSA9IE1hdGguZmxvb3IoaGVpZ2h0ICogMC4yKTsKIAotICAgIC8vIGds
X0Jhc2VJbnN0YW5jZSBhbmQgZ2xfSW5zdGFuY2VJRAorICAgIC8vIGdsX0luc3RhbmNlSUQKICAg
ICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuY3JlYXRlQnVmZmVyKCkpOwogICAg
IGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCwwLCAx
LDAsIDAuNSwxLCAwLDEsIDAuNSwwLCAxLDEgXSksIGJ1ZmZlclVzYWdlKTsKICAgICBnbC5lbmFi
bGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDIs
IGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CiAKLSAgICBjb25zdCBiYXNlSW5zdGFuY2VaZXJvUHJv
Z3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckJhc2VJbnN0YW5jZVplcm8iLCAi
ZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdLCBbMF0pOwotICAgIGV4cGVjdFRydWUoYmFzZUluc3Rh
bmNlWmVyb1Byb2dyYW0gIT09IG51bGwsICJjYW4gY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFz
ZUluc3RhbmNlIik7Ci0gICAgZ2wudXNlUHJvZ3JhbShiYXNlSW5zdGFuY2VaZXJvUHJvZ3JhbSk7
Ci0KLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJ
VCk7Ci0gICAgaWYgKCFtdWx0aURyYXcpIHsKLSAgICAgIGV4dC5kcmF3QXJyYXlzSW5zdGFuY2Vk
QmFzZUluc3RhbmNlV0VCR0woZ2wuVFJJQU5HTEVTLCAwLCA2LCAxLCA1KTsKLSAgICB9IGVsc2Ug
ewotICAgICAgZXh0Lm11bHRpRHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0YW5jZVdFQkdMKGds
LlRSSUFOR0xFUywgWzBdLCAwLCBbNl0sIDAsIFsxXSwgMCwgWzVdLCAwLCAxKTsKLSAgICB9Ci0K
LSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7
Ci0gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwotCi0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgeCwgeSwgeFNpemUsIHlTaXplLCBbMCwgMjU1LCAwLCAyNTVdLCAiZ2xf
QmFzZUluc3RhbmNlIGlzIDAgZm9yIG5vbi1CYXNlSW5zdGFuY2UgZHJhdyBjYWxscyIpOwotCiAg
ICAgY29uc3QgaW5zdGFuY2VJRFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFk
ZXJJbnN0YW5jZUlEQ2hlY2siLCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdLCBbMF0pOwogICAg
IGV4cGVjdFRydWUoaW5zdGFuY2VJRFByb2dyYW0gIT09IG51bGwsICJjYW4gY29tcGlsZSBwcm9n
cmFtIHdpdGggZ2xfSW5zdGFuY2VJRCIpOwogICAgIGdsLnVzZVByb2dyYW0oaW5zdGFuY2VJRFBy
b2dyYW0pOwpAQCAtNTM1LDcgKzc1MSw3IEBAIGZ1bmN0aW9uIGRvVGVzdChleHRlbnNpb25OYW1l
LCBtdWx0aURyYXcpIHsKIAogICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIHgsIHksIHhTaXpl
LCB5U2l6ZSwgWzAsIDI1NSwgMCwgMjU1XSwgImdsX0luc3RhbmNlSUQgc2hvdWxkIGFsd2F5cyBz
dGFydHMgZnJvbSAwIik7CiAKLSAgICAvLyBnbF9CYXNlVmVydGV4IGFuZCBnbF9WZXJ0ZXhJRAor
ICAgIC8vIGdsX1ZlcnRleElECiAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGds
LmNyZWF0ZUJ1ZmZlcigpKTsKICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3
IEZsb2F0MzJBcnJheShbIDAsMCwgMSwwLCAwLjUsMSwgMCwxLCAwLjUsMCwgMSwxLCAwLDAsIDEs
MCwgMC41LDEsIDAsMSBdKSwgYnVmZmVyVXNhZ2UpOwogICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIGdsLmNyZWF0ZUJ1ZmZlcigpKTsKQEAgLTU0MywyMiArNzU5LDYg
QEAgZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwogICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwg
MiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKIAotICAgIGNvbnN0IGJhc2VWZXJ0ZXhaZXJvUHJv
Z3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckJhc2VWZXJ0ZXhaZXJvIiwgImZz
aGFkZXIiXSwgWyJ2UG9zaXRpb24iXSwgWzBdKTsKLSAgICBleHBlY3RUcnVlKGJhc2VWZXJ0ZXha
ZXJvUHJvZ3JhbSAhPT0gbnVsbCwgImNhbiBjb21waWxlIHByb2dyYW0gd2l0aCBnbF9CYXNlVmVy
dGV4Iik7Ci0gICAgZ2wudXNlUHJvZ3JhbShiYXNlVmVydGV4WmVyb1Byb2dyYW0pOwotCi0gICAg
Z2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAg
IGlmICghbXVsdGlEcmF3KSB7Ci0gICAgICBleHQuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZl
cnRleEJhc2VJbnN0YW5jZVdFQkdMKGdsLlRSSUFOR0xFUywgNiwgZ2wuVU5TSUdORURfQllURSwg
MCwgMSwgMywgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGV4dC5tdWx0aURyYXdFbGVtZW50c0lu
c3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2VXRUJHTChnbC5UUklBTkdMRVMsIFs2XSwgMCwg
Z2wuVU5TSUdORURfQllURSwgWzBdLCAwLCBbMV0sIDAsIFszXSwgMCwgWzBdLCAwLCAxKTsKLSAg
ICB9Ci0KLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVS
X0JJVCk7Ci0gICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgNiwgZ2wuVU5TSUdORURf
QllURSwgMCk7Ci0KLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCB4LCB5LCB4U2l6ZSwgeVNp
emUsIFswLCAyNTUsIDAsIDI1NV0sICJnbF9CYXNlVmVydGV4IGlzIDAgZm9yIG5vbi1CYXNlVmVy
dGV4IGRyYXcgY2FsbHMiKTsKLQogICAgIGNvbnN0IHZlcnRleElEUHJvZ3JhbSA9IHd0dS5zZXR1
cFByb2dyYW0oZ2wsIFsidnNoYWRlclZlcnRleElEQ2hlY2siLCAiZnNoYWRlciJdLCBbInZQb3Np
dGlvbiJdLCBbMF0pOwogICAgIGV4cGVjdFRydWUodmVydGV4SURQcm9ncmFtICE9PSBudWxsLCAi
Y2FuIGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX1ZlcnRleElEIik7CiAgICAgZ2wudXNlUHJvZ3Jh
bSh2ZXJ0ZXhJRFByb2dyYW0pOwpAQCAtNjc3LDMwICs4NzcsNiBAQCBmdW5jdGlvbiBkb1Rlc3Qo
ZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3KSB7CiAgICAgICB1c2VCYXNlSW5zdGFuY2VCdWlsdGlu
OiBmYWxzZQogICAgIH0pOwogCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRyYXdGdW5jOiBtdWx0
aURyYXcgPyBtdWx0aURyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UgOiBkcmF3QXJyYXlz
SW5zdGFuY2VkQmFzZUluc3RhbmNlLAotICAgICAgaXNEcmF3QXJyYXlzOiB0cnVlLAotICAgICAg
aXNNdWx0aURyYXc6IG11bHRpRHJhdywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGluOiB0cnVl
LAotICAgICAgdXNlQmFzZUluc3RhbmNlQnVpbHRpbjogZmFsc2UKLSAgICB9KTsKLQotICAgIGNo
ZWNrRHJhdyh7Ci0gICAgICBkcmF3RnVuYzogbXVsdGlEcmF3ID8gbXVsdGlEcmF3QXJyYXlzSW5z
dGFuY2VkQmFzZUluc3RhbmNlIDogZHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0YW5jZSwKLSAg
ICAgIGlzRHJhd0FycmF5czogdHJ1ZSwKLSAgICAgIGlzTXVsdGlEcmF3OiBtdWx0aURyYXcsCi0g
ICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogZmFsc2UsCi0gICAgICB1c2VCYXNlSW5zdGFuY2VC
dWlsdGluOiB0cnVlCi0gICAgfSk7Ci0KLSAgICBjaGVja0RyYXcoewotICAgICAgZHJhd0Z1bmM6
IG11bHRpRHJhdyA/IG11bHRpRHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0YW5jZSA6IGRyYXdB
cnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UsCi0gICAgICBpc0RyYXdBcnJheXM6IHRydWUsCi0g
ICAgICBpc011bHRpRHJhdzogbXVsdGlEcmF3LAotICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46
IHRydWUsCi0gICAgICB1c2VCYXNlSW5zdGFuY2VCdWlsdGluOiB0cnVlCi0gICAgfSk7Ci0KICAg
ICBjaGVja0RyYXcoewogICAgICAgZHJhd0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0VsZW1l
bnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZSA6IGRyYXdFbGVtZW50c0luc3RhbmNl
ZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UsCiAgICAgICBpc0RyYXdBcnJheXM6IGZhbHNlLApAQCAt
NzA4LDMwICs4ODQsNiBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFtZSwgbXVsdGlEcmF3
KSB7CiAgICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogZmFsc2UsCiAgICAgICB1c2VCYXNlSW5z
dGFuY2VCdWlsdGluOiBmYWxzZQogICAgIH0pOwotCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRy
YXdGdW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhC
YXNlSW5zdGFuY2UgOiBkcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNl
LAotICAgICAgaXNEcmF3QXJyYXlzOiBmYWxzZSwKLSAgICAgIGlzTXVsdGlEcmF3OiBtdWx0aURy
YXcsCi0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogdHJ1ZSwKLSAgICAgIHVzZUJhc2VJbnN0
YW5jZUJ1aWx0aW46IGZhbHNlCi0gICAgfSk7Ci0KLSAgICBjaGVja0RyYXcoewotICAgICAgZHJh
d0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJh
c2VJbnN0YW5jZSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2Us
Ci0gICAgICBpc0RyYXdBcnJheXM6IGZhbHNlLAotICAgICAgaXNNdWx0aURyYXc6IG11bHRpRHJh
dywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGluOiBmYWxzZSwKLSAgICAgIHVzZUJhc2VJbnN0
YW5jZUJ1aWx0aW46IHRydWUKLSAgICB9KTsKLQotICAgIGNoZWNrRHJhdyh7Ci0gICAgICBkcmF3
RnVuYzogbXVsdGlEcmF3ID8gbXVsdGlEcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFz
ZUluc3RhbmNlIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZSwK
LSAgICAgIGlzRHJhd0FycmF5czogZmFsc2UsCi0gICAgICBpc011bHRpRHJhdzogbXVsdGlEcmF3
LAotICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IHRydWUsCi0gICAgICB1c2VCYXNlSW5zdGFu
Y2VCdWlsdGluOiB0cnVlCi0gICAgfSk7CiAgIH0KIAogICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1
ZmZlclVzYWdlU2V0Lmxlbmd0aDsgaSsrKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvYXJyYXktZXF1
YWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sCmluZGV4IGEzZWVmZDViZjQw
NWRmYzUzZTA2Y2FmMzkwMWM1MGIyYmI1YjhlNTEuLmRjZmZhMmMwYTMyNzdjMWM3OGE4OTVhMjUw
OWY0YTg5OGFiODRkZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9nbHNsMy9hcnJheS1lcXVhbGl0eS5odG1sCkBAIC02MSw2ICs2MSw1NCBAQCB2b2lkIG1h
aW4oKSB7CiAgICAgbXlfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIChzdWNjZXNzID8gMS4wIDogMC4w
KSwgMC4wLCAxLjApOwogfQogPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzaW1wbGUtZmxvYXQtYXJy
YXktZnMiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZvcm0gZmxvYXQgYVszXTsKK3VuaWZvcm0gZmxvYXQg
YlszXTsKKworb3V0IHZlYzQgZnJhZ0NvbG9yOworCit2b2lkIG1haW4odm9pZCkgeworICAgIGZy
YWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKKworICAgIGlmIChhID09IGIpIHsK
KyAgICAgICAgZnJhZ0NvbG9yLmcgPSAxLjA7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IGlkPSJzaW1wbGUtdmVjLWFycmF5LWZzIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4jdmVy
c2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1bmlmb3JtIHZlYzMgYVsz
XTsKK3VuaWZvcm0gdmVjMyBiWzNdOworCitvdXQgdmVjNCBmcmFnQ29sb3I7CisKK3ZvaWQgbWFp
bih2b2lkKSB7CisgICAgZnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApOworCisg
ICAgaWYgKGEgPT0gYikgeworICAgICAgICBmcmFnQ29sb3IuZyA9IDEuMDsKKyAgICB9Cit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InNpbXBsZS1tYXQtYXJyYXktZnMiIHR5cGU9Ingtc2hhZGVy
L3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisK
K3VuaWZvcm0gbWF0MyBhWzNdOwordW5pZm9ybSBtYXQzIGJbM107CisKK291dCB2ZWM0IGZyYWdD
b2xvcjsKKwordm9pZCBtYWluKHZvaWQpIHsKKyAgICBmcmFnQ29sb3IgPSB2ZWM0KDAuMCwgMC4w
LCAwLjAsIDEuMCk7CisKKyAgICBpZiAoYSA9PSBiKSB7CisgICAgICAgIGZyYWdDb2xvci5nID0g
MS4wOworICAgIH0KK30KKzwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0Ij4KICJ1c2Ugc3RyaWN0IjsKIGRlc2NyaXB0aW9uKCJDb21wYXJpbmcgYXJyYXlzIHNo
b3VsZCB3b3JrLiIpOwpAQCAtNzcsNyArMTI1LDExNCBAQCBHTFNMQ29uZm9ybWFuY2VUZXN0ZXIu
cnVuUmVuZGVyVGVzdHMoWwogICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKICAgbGlua1N1Y2Nlc3M6
IHRydWUsCiAgIHBhc3NNc2c6ICdBcnJheXMgb2Ygc3RydWN0cycKLX0KK30sCit7CisgIGZTaGFk
ZXJJZDogInNpbXBsZS1mbG9hdC1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAor
ICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICBwYXNzTXNnOiAiU2ltcGxl
IGZsb2F0IGFycmF5IHdpdGggZGVmYXVsdCB2YWx1ZXMiLAorfSwKK3sKKyAgZlNoYWRlcklkOiAi
c2ltcGxlLWZsb2F0LWFycmF5LWZzIiwKKyAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgIGxpbmtT
dWNjZXNzOiB0cnVlLAorICByZW5kZXI6IHRydWUsCisgIHJlbmRlckNvbG9yOiBbMCwgMCwgMCwg
MjU1XSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5p
Zm9ybTFmdicsIHZhbHVlOiBbMSwgMiwgM119LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5h
bWU6ICd1bmlmb3JtMWZ2JywgdmFsdWU6IFsxLCAyLCA0XX0sCisgIF0sCisgIHBhc3NNc2c6ICJT
aW1wbGUgZmxvYXQgYXJyYXkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIiwKK30sCit7CisgIGZTaGFk
ZXJJZDogInNpbXBsZS1mbG9hdC1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAor
ICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICB1bmlmb3JtczogWworICAg
IHsgbmFtZTogJ2EnLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtMWZ2JywgdmFsdWU6IFsxLCAyLCAz
XX0sCisgICAgeyBuYW1lOiAnYicsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm0xZnYnLCB2YWx1ZTog
WzEsIDIsIDNdfSwKKyAgXSwKKyAgcGFzc01zZzogIlNpbXBsZSBmbG9hdCBhcnJheSB3aXRoIHNh
bWUgdmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDogInNpbXBsZS12ZWMtYXJyYXktZnMiLAor
ICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjog
dHJ1ZSwKKyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBkZWZhdWx0IHZhbHVlcyIs
Cit9LAoreworICBmU2hhZGVySWQ6ICJzaW1wbGUtdmVjLWFycmF5LWZzIiwKKyAgZlNoYWRlclN1
Y2Nlc3M6IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6IHRydWUsCisgIHJl
bmRlckNvbG9yOiBbMCwgMCwgMCwgMjU1XSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7IG5hbWU6ICdh
JywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTNmdicsIHZhbHVlOiBbMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOV19LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtM2Z2Jywg
dmFsdWU6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCAxMF19LAorICBdLAorICBwYXNzTXNnOiAi
U2ltcGxlIHZlYyBhcnJheSB3aXRoIGRpZmZlcmVudCB2YWx1ZXMiLAorfSwKK3sKKyAgZlNoYWRl
cklkOiAic2ltcGxlLXZlYy1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBs
aW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICB1bmlmb3JtczogWworICAgIHsg
bmFtZTogJ2EnLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtM2Z2JywgdmFsdWU6IFsxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4LCA5XX0sCisgICAgeyBuYW1lOiAnYicsIGZ1bmN0aW9uTmFtZTogJ3VuaWZv
cm0zZnYnLCB2YWx1ZTogWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDldfSwKKyAgXSwKKyAgcGFz
c01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBzYW1lIHZhbHVlcyIsCit9LAoreworLy8gICAg
ICAgICAgICJzaW1wbGUtbWF0LWFycmF5LWZzIgorICBmU2hhZGVySWQ6ICJzaW1wbGUtbWF0LWFy
cmF5LWZzIiwKKyAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAor
ICByZW5kZXI6IHRydWUsCisgIHBhc3NNc2c6ICJTaW1wbGUgbWF0IGFycmF5IHdpdGggZGVmYXVs
dCB2YWx1ZXMiLAorfSwKK3sKKyAgZlNoYWRlcklkOiAic2ltcGxlLW1hdC1hcnJheS1mcyIsCisg
IGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0
cnVlLAorICByZW5kZXJDb2xvcjogWzAsIDAsIDAsIDI1NV0sCisgIHVuaWZvcm1zOiBbCisgICAg
eyBuYW1lOiAnYScsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm1NYXRyaXgzZnYnLCB2YWx1ZTogWwor
ICAgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKKyAgICAgIDIxLCAyMiwg
MjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksCisgICAgICAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2
LCAzNywgMzgsIDM5LAorICAgIF19LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1
bmlmb3JtTWF0cml4M2Z2JywgdmFsdWU6IFsKKyAgICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYs
IDE3LCAxOCwgMTksCisgICAgICAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LAor
ICAgICAgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDMwLCAzOSwKKyAgICBdfSwKKyAgXSwK
KyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIiwKK30s
Cit7CisgIGZTaGFkZXJJZDogInNpbXBsZS1tYXQtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2Vz
czogdHJ1ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgdW5pZm9y
bXM6IFsKKyAgICB7IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybU1hdHJpeDNmdics
IHZhbHVlOiBbCisgICAgICAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LAorICAg
ICAgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwKKyAgICAgIDMxLCAzMiwgMzMs
IDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksCisgICAgXX0sCisgICAgeyBuYW1lOiAnYicsIGZ1bmN0
aW9uTmFtZTogJ3VuaWZvcm1NYXRyaXgzZnYnLCB2YWx1ZTogWworICAgICAgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKKyAgICAgIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3
LCAyOCwgMjksCisgICAgICAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LAorICAg
IF19LAorICBdLAorICBwYXNzTXNnOiAiU2ltcGxlIHZlYyBhcnJheSB3aXRoIHNhbWUgdmFsdWVz
IiwKK30sCiBdLCAyKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2Zy
YWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxv
b3AtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTcxYjk0ZTI2YTEwYjJmNGEzMmE2NzU3M2M5YTY2
Y2I0NTMxMGM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29w
LWNyYXNoLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+RnJhZ21lbnQgc2hhZGVyIGNvbnRhaW5pbmcgbG9v
cCBzaG91bGQgbm90IGNyYXNoPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9nbHNsLWZlYXR1cmUtdGVzdHMuY3NzIi8+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9u
IDMwMCBlcworcHJlY2lzaW9uIGhpZ2hwIGZsb2F0Oworb3V0IHZlYzIgdl90ZXhfY29vcmQ7Cit1
bmlmb3JtIG1hdDQgbWF0cml4OworCit2b2lkIG1haW4oKSB7CisgICB2X3RleF9jb29yZCA9IHZl
YzIoMC4wLCAwLjApOworICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDAuMCk7
Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJh
Z21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OworCitpbiB2ZWMy
IHZfdGV4X2Nvb3JkOworb3V0IHZlYzQgb3V0X2NvbG9yOworCit1bmlmb3JtIHNhbXBsZXIyRCB0
ZXh0dXJlXzE7Cit1bmlmb3JtIHZlYzIgcmVzb2x1dGlvbjsKKwordmVjNCBkb19sb29wcyh2ZWM0
IHopCit7CisgICAgdmVjNCB2WzE2XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKysp
CisgICAgeworICAgICAgICB2W2ldID0gejsKKyAgICB9CisgICAgcmV0dXJuIHZbMV07Cit9CisK
K3ZvaWQgbWFpbigpIHsKKyAgICBvdXRfY29sb3IgPSBkb19sb29wcyh2ZWM0KDAuMiwgMC40LCAw
LjYsIDEuMCkpIC0gdGV4dHVyZSh0ZXh0dXJlXzEsIHZfdGV4X2Nvb3JkKTsKK30KKzwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKyJ1c2Ugc3RyaWN0IjsK
K2Rlc2NyaXB0aW9uKCk7Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHRlc3Rz
ID0gWworICAgIHsKKyAgICAgICAgdlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgndnNoYWRl
cicpLAorICAgICAgICBmU2hhZGVyU291cmNlOiB3dHUuZ2V0U2NyaXB0KCdmc2hhZGVyJyksCisg
ICAgICAgIHZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICAgICAgICBmU2hhZGVyU3VjY2VzczogdHJ1
ZSwKKyAgICAgICAgbGlua1N1Y2Nlc3M6IHRydWUsCisgICAgICAgIHBhc3NNc2c6ICdGcmFnbWVu
dCBzaGFkZXIgY29udGFpbmluZyBhIHNpbXBsZSBsb29wIHNob3VsZCBjb21waWxlIGFuZCBsaW5r
JworICAgIH0KK107CisKK0dMU0xDb25mb3JtYW5jZVRlc3Rlci5ydW5UZXN0cyh0ZXN0cywgMik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9tYXRyaXgt
cm93LW1ham9yLWR5bmFtaWMtaW5kZXhpbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9tYXRyaXgtcm93LW1ham9y
LWR5bmFtaWMtaW5kZXhpbmcuaHRtbAppbmRleCA4Y2JjYjk5MzRjMjJiOTdkOGZiYTBhNzkwYTU2
Y2EwYTIzNWVlOWNiLi5lYzZhOWJiZDFiZTQ1M2ZiMmIyYzAxMTkwMDBlYWU0NWMzODE3NmU0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJvdy1tYWpvci1keW5hbWljLWluZGV4aW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2dsc2wzL21hdHJpeC1yb3ctbWFqb3ItZHluYW1pYy1pbmRleGluZy5odG1sCkBAIC0z
Myw2ICszMywyMiBAQCB2b2lkIG1haW4oKSB7CiAgICAgbXlfRnJhZ0NvbG9yID0gdmVjNCgxLjAg
LSBmLCBmLCAwLjAsIDEuMCk7CiB9CiA8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZzaGFkZXJSb3dN
YXRyaXhJbmRleGVkQnlSb3dNYXRyaXhJblVuaWZvcm1CbG9jayIgdHlwZT0ieC1zaGFkZXIveC1m
cmFnbWVudCI+I3ZlcnNpb24gMzAwIGVzCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5p
Zm9ybSBTdHVmZiB7CisgIGxheW91dChyb3dfbWFqb3IpIG1hdDQgdV9tYXRbM107CisgIGxheW91
dChyb3dfbWFqb3IpIG1hdDQgdV9uZHhbM107Cit9IHN0dWZmOworCisKK291dCB2ZWM0IG15X0Zy
YWdDb2xvcjsKKwordm9pZCBtYWluKCkgeworICB2ZWM0IHJvdyA9IHN0dWZmLnVfbWF0W2ludChz
dHVmZi51X25keFsxXVsxXVszXSldWzJdOworICBteV9GcmFnQ29sb3IgPSByb3cgPT0gdmVjNCg5
LCAxMCwgMTEsIDEyKSA/IHZlYzQoMCwgMSwgMCwgMSkgOiB2ZWM0KDEsIDAsIDAsIDEpOworfQor
PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgogInVzZSBz
dHJpY3QiOwogZGVzY3JpcHRpb24oIkluZGV4aW5nIHJvdy1tYWpvciBtYXRyaWNlcyB3aXRoaW4g
YSB1bmlmb3JtIGJsb2NrIHNob3VsZCB3b3JrIik7CkBAIC00OSw2ICs2NSw1MSBAQCBHTFNMQ29u
Zm9ybWFuY2VUZXN0ZXIucnVuUmVuZGVyVGVzdHMoWwogICAgIDAsIDAsIDAsIDAsCiAgICAgMCwg
MCwgMCwgMCwKICAgXSl9XSwKK30sCit7CisgIGZTaGFkZXJJZDogJ2ZzaGFkZXJSb3dNYXRyaXhJ
bmRleGVkQnlSb3dNYXRyaXhJblVuaWZvcm1CbG9jaycsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVl
LAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcGFzc01zZzogJycsCisgIHVuaWZvcm1CbG9ja3M6
IFt7bmFtZTogIlN0dWZmIiwgdmFsdWU6IG5ldyBGbG9hdDMyQXJyYXkoWworICAgIC8vIG1hdDQg
dV9tYXRbM10KKyAgICAgMSwgIDIsICAzLCAgNCwKKyAgICAgNSwgIDYsICA3LCAgOCwKKyAgICAg
OSwgMTAsIDExLCAxMiwKKyAgICAxMywgMTQsIDE1LCAxNiwKKworICAgICAgICAgLy8gICstLSB3
ZSBzaG91bGQgYmUgcHVsbGluZyBvdXQgdGhpcyBjb2x1bW4KKyAgICAgICAgIC8vICB8CisgICAg
ICAgICAvLyAgVgorICAgICAxLCAgNSwgIDksIDEzLAorICAgICAyLCAgNiwgMTAsIDE0LAorICAg
ICAzLCAgNywgMTEsIDE1LAorICAgICA0LCAgOCwgMTIsIDE2LAorCisgICAgIDIsIDEwLCAxOCwg
MjIsCisgICAgIDQsIDEyLCAyMCwgMjgsCisgICAgIDYsIDE0LCAyMiwgMzAsCisgICAgIDgsIDE2
LCAyNCwgMzIsCisKKyAgICAvLyBtYXQ0IHVfbmR4WzNdCisgICAgMCwgMCwgMCwgMCwKKyAgICAw
LCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwKKworICAgIDAsIDAs
IDAsIDAsCisgICAgMCwgMCwgMCwgMiwKKyAgICAwLCAwLCAwLCAwLAorICAgIDAsIDEsIDAsIDAs
CisgICAgLy8gXgorICAgIC8vIHwKKyAgICAvLyArLS0gd2Ugc2hvdWxkIGJlIHJlYWRpbmcgdGhp
cyB2YWx1ZSBhcyBhbiBpbmRleCBpbnRvIHVfbWF0CisKKyAgICAwLCAwLCAwLCAwLAorICAgIDAs
IDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLAorICBdKX1dLAogfQog
XSwgMik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Yt
c3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3Vt
LW9mLXNxdWFyZXMtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTE1MjNhZWEwNWQwZjhkY2NkM2Qy
NTZlN2VjYjZlZjZkMjRkOGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwt
c3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhLS0K
K0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlNoYWRlciBp
ZGVudGlmaWVkIGFzIGNvbnRhaW5pbmcgcmVjaXByb2NhbCBzcXVhcmUgcm9vdCBvZiBzdW0gb2Yg
c3F1YXJlcyBzaG91bGQgbm90IGNyYXNoPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9nbHNsLWZlYXR1cmUtdGVzdHMuY3NzIi8+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2
ZXJzaW9uIDMwMCBlcwordm9pZCBtYWluKCkgeworICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCwg
MC4wLCAwLjAsIDAuMCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9
Ingtc2hhZGVyL3gtZnJhZ21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIGhpZ2hwIGZs
b2F0OworCisjZGVmaW5lIENSQVNIIDEKKworb3V0IHZlYzQgZnJhZ21lbnRDb2xvcjsKK3ZvaWQg
bWFpbigpCit7CisgICAgdmVjMiBwID0gZ2xfRnJhZ0Nvb3JkLnh5OworICAgIC8vIFRoaXMgZXhw
cmVzc2lvbiBtZWV0cyB0aGUgcmVxdWlyZW1lbnQgb2YgYmVpbmcgdGhlIHJlY2lwcm9jYWwKKyAg
ICAvLyBzcXVhcmUgcm9vdCBvZiBhIHN1bSBvZiBzcXVhcmVzLgorICAgIGZsb2F0IGQgPSAxLjAg
LyBsZW5ndGgocCk7CisjaWYgQ1JBU0gKKyAgICBpZiAocC54ID4gMC4wKQorICAgIHsKKyAgICAg
ICAgZCAqPSAyLjA7CisgICAgfQorI2VuZGlmCisgICAgZnJhZ21lbnRDb2xvciA9IHZlYzQoZCk7
Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+Cisi
dXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigpOworZGVidWcoJ1JlZ3Jlc3Npb24gdGVzdCBmb3Ig
PGEgaHJlZj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTA3OTMwOSI+Y3JidWcuY29tLzEwNzkzMDk8L2E+
Jyk7Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHRlc3RzID0gWworICAgIHsK
KyAgICAgICAgdlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgndnNoYWRlcicpLAorICAgICAg
ICBmU2hhZGVyU291cmNlOiB3dHUuZ2V0U2NyaXB0KCdmc2hhZGVyJyksCisgICAgICAgIHZTaGFk
ZXJTdWNjZXNzOiB0cnVlLAorICAgICAgICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgICAgICAg
bGlua1N1Y2Nlc3M6IHRydWUsCisgICAgICAgIHBhc3NNc2c6ICdTaGFkZXIgY29udGFpbmluZyBl
eHByZXNzaW9uIHRoYXQgZHJpdmVyIHJlY29nbml6ZXMgYXMgcmVjaXByb2NhbCBzcXVhcmUgcm9v
dCBvZiBzdW0gb2Ygc3F1YXJlcyBzaG91bGQgY29tcGlsZSBhbmQgbGluaycKKyAgICB9CitdOwor
CitHTFNMQ29uZm9ybWFuY2VUZXN0ZXIucnVuVGVzdHModGVzdHMsIDIpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
bWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjY2ZkMGQ4NjBjZWIzMjllOGQ0
YWRiNGU5N2U5NjEyZDE0OGIzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVn
ZXIuaHRtbApAQCAtMCwwICsxLDE3NiBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgMiBCbGVuZCBJbnRlZ2VyIENvbmZvcm1hbmNl
IFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGlkPSJvdXRwdXRWZXJ0ZXhT
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyN2ZXJzaW9uIDMwMCBlcworaW4gdmVj
NCB2UG9zaXRpb247Cit2b2lkIG1haW4oKQoreworICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsK
K30KKzwvc2NyaXB0PgorPHNjcmlwdCBpZD0ib3V0cHV0RnJhZ21lbnRTaGFkZXJTaWduZWQiIHR5
cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorI3ZlcnNpb24gMzAwIGVzCitsYXlvdXQobG9jYXRp
b24gPSAxKSBvdXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIxOworbGF5b3V0KGxvY2F0aW9uID0g
Mikgb3V0IGhpZ2hwIGl2ZWM0IG9fZHJhd0J1ZmZlcjI7CitsYXlvdXQobG9jYXRpb24gPSAzKSBv
dXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIzOwordm9pZCBtYWluKHZvaWQpCit7CisgIG9fZHJh
d0J1ZmZlcjEgPSB2ZWM0KDAsIDAsIDAsIDApOworICBvX2RyYXdCdWZmZXIyID0gaXZlYzQoMCwg
MCwgMCwgMCk7CisgIG9fZHJhd0J1ZmZlcjMgPSB2ZWM0KDAsIDAsIDAsIDApOworfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IGlkPSJvdXRwdXRGcmFnbWVudFNoYWRlclVuc2lnbmVkIiB0eXBlPSJ4LXNo
YWRlci94LWZyYWdtZW50Ij4KKyAgI3ZlcnNpb24gMzAwIGVzCisgIGxheW91dChsb2NhdGlvbiA9
IDEpIG91dCBoaWdocCB2ZWM0IG9fZHJhd0J1ZmZlcjE7CisgIGxheW91dChsb2NhdGlvbiA9IDIp
IG91dCBoaWdocCB1dmVjNCBvX2RyYXdCdWZmZXIyOworICBsYXlvdXQobG9jYXRpb24gPSAzKSBv
dXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIzOworICB2b2lkIG1haW4odm9pZCkKKyAgeworICAg
IG9fZHJhd0J1ZmZlcjEgPSB2ZWM0KDAsIDAsIDAsIDApOworICAgIG9fZHJhd0J1ZmZlcjIgPSB1
dmVjNCgwLCAwLCAwLCAwKTsKKyAgICBvX2RyYXdCdWZmZXIzID0gdmVjNCgwLCAwLCAwLCAwKTsK
KyAgfQorICA8L3NjcmlwdD4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgdmVyaWZpZXMgY29ycmVjdCBiZWhhdmlvciBvZiBtaW4vbWF4IGJsZW5kaW5n
IG9wZXJhdGlvbnMgb24gaW50ZWdlciBhdHRhY2htZW50cy4iKTsKKworZGVidWcoIiIpOworCitj
b25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4
dChudWxsLCB1bmRlZmluZWQsIDIpOworCitpZiAoIWdsKSB7CisgIHRlc3RGYWlsZWQoIldlYkdM
IGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgIHRlc3RQYXNzZWQoIldlYkdM
IGNvbnRleHQgZXhpc3RzIik7CisKKyAgZGVidWcoIiIpCisgIGRlYnVnKCJHTF9NSU4iKTsKKyAg
cnVuVGVzdChmYWxzZSwgZ2wuTUlOKTsKKyAgcnVuVGVzdCh0cnVlLCBnbC5NSU4pOworCisgIGRl
YnVnKCIiKQorICBkZWJ1ZygiR0xfTUFYIik7CisgIHJ1blRlc3QoZmFsc2UsIGdsLk1BWCk7Cisg
IHJ1blRlc3QodHJ1ZSwgZ2wuTUFYKTsKK30KKworZnVuY3Rpb24gY29tcGFyZVZhbHVlKHZhbHVl
LCBhdHRhY2htZW50LCBpc1NpZ25lZCkgeworICBjb25zdCBwaXhlbCA9IGlzU2lnbmVkID8gbmV3
IEludDMyQXJyYXkoNCkgOiBuZXcgVWludDMyQXJyYXkoNCk7CisgIGdsLnJlYWRCdWZmZXIoYXR0
YWNobWVudCk7CisgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQV9JTlRFR0VSLCBp
c1NpZ25lZCA/IGdsLklOVCA6IGdsLlVOU0lHTkVEX0lOVCwgcGl4ZWwpOworICBsZXQgcGFzcyA9
IHRydWU7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgaWYgKHZhbHVlW2ld
ICE9IHBpeGVsW2ldKSB7CisgICAgICB0ZXN0RmFpbGVkKGBSZWFkIHZhbHVlIG9mIGNoYW5uZWwg
JHtpfSBzaG91bGQgYmUgJHtwaXhlbFtpXX0sIHdhcyAke3ZhbHVlW2ldfS5gKTsKKyAgICAgIHBh
c3MgPSBmYWxzZTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHBhc3M7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoaXNTaWduZWQsIG9wZXJhdGlvbikgeworICBnbC52aWV3cG9ydCgwLCAwLCAxLCAxKTsK
KyAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1cFBy
b2dyYW0oZ2wsCisgICAgWyJvdXRwdXRWZXJ0ZXhTaGFkZXIiLAorICAgICAgaXNTaWduZWQgPyAi
b3V0cHV0RnJhZ21lbnRTaGFkZXJTaWduZWQiIDogIm91dHB1dEZyYWdtZW50U2hhZGVyVW5zaWdu
ZWQiXSwKKyAgICBbJ3ZQb3NpdGlvbiddLCBbMF0pOworICBjb25zdCBxdWFkUGFyYW1ldGVycyA9
IHd0dS5zZXR1cFVuaXRRdWFkKGdsLCAwLCAxKTsKKworICAvLyBTZXR1cCByZW5kZXIgdGFyZ2V0
cworICBjb25zdCBmYiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgIGdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmIpOworCisgIGNvbnN0IHJiMSA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpOworICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmIxKTsK
KyAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE4LCA1MCwg
NTApOworICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09M
T1JfQVRUQUNITUVOVDEsIGdsLlJFTkRFUkJVRkZFUiwgcmIxKTsKKworICBjb25zdCByYjIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKKyAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJC
VUZGRVIsIHJiMik7CisgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBp
c1NpZ25lZCA/IGdsLlJHQkEzMkkgOiBnbC5SR0JBMzJVSSwgNTAsIDUwKTsKKyAgZ2wuZnJhbWVi
dWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBn
bC5SRU5ERVJCVUZGRVIsIHJiMik7CisKKyAgY29uc3QgcmIzID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCk7CisgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByYjMpOworICBn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTgsIDUwLCA1MCk7
CisgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMywgZ2wuUkVOREVSQlVGRkVSLCByYjMpOworCisgIGdsLmRyYXdCdWZmZXJzKFtn
bC5OT05FLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMSwgZ2wuQ09MT1JfQVRUQUNITUVOVDIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQzXSk7CisKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IsICJQaXBlbGluZSBzZXR1cCBjb21wbGV0ZS4iKTsKKworICBpZiAoaXNTaWduZWQpIHsKKyAg
ICBjb25zdCBjbGVhclZhbHVlID0gbmV3IEludDMyQXJyYXkoWy0xLCAyLCAtMywgNF0pOworICAg
IGdsLmNsZWFyQnVmZmVyaXYoZ2wuQ09MT1IsIDIsIGNsZWFyVmFsdWUpOworICAgIGlmIChjb21w
YXJlVmFsdWUoY2xlYXJWYWx1ZSwgZ2wuQ09MT1JfQVRUQUNITUVOVDIsIGlzU2lnbmVkKSkgewor
ICAgICAgdGVzdFBhc3NlZCgiU2lnbmVkIGNsZWFyIHBhc3NlZC4iKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgdGVzdEZhaWxlZCgiU2lnbmVkIGNsZWFyIGZhaWxlZC4iKTsKKyAgICB9CisgIH0gZWxz
ZSB7CisgICAgY29uc3QgY2xlYXJWYWx1ZSA9IG5ldyBVaW50MzJBcnJheShbMSwgMiwgMywgNF0p
OworICAgIGdsLmNsZWFyQnVmZmVydWl2KGdsLkNPTE9SLCAyLCBjbGVhclZhbHVlKTsKKyAgICBp
ZiAoY29tcGFyZVZhbHVlKGNsZWFyVmFsdWUsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBpc1NpZ25l
ZCkpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlVuc2lnbmVkIGNsZWFyIHBhc3NlZC4iKTsKKyAgICB9
IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiVW5zaWduZWQgY2xlYXIgZmFpbGVkLiIpOworICAg
IH0KKyAgfQorCisgIGdsLmJsZW5kRXF1YXRpb24ob3BlcmF0aW9uKTsKKyAgZ2wuZW5hYmxlKGds
LkJMRU5EKTsKKworICB3dHUuZHJhd1VuaXRRdWFkKGdsKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsICJEcmF3IGNvbXBsZXRlLiIpOworCisgIGlmIChpc1NpZ25lZCkg
eworICAgIGNvbnN0IGRyYXdWYWx1ZSA9IG5ldyBJbnQzMkFycmF5KFswLCAwLCAwLCAwXSk7Cisg
ICAgaWYgKGNvbXBhcmVWYWx1ZShkcmF3VmFsdWUsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBpc1Np
Z25lZCkpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlNpZ25lZCBkcmF3IHBhc3NlZC4iKTsKKyAgICB9
IGVsc2UgeworICAgICAgdGVzdEZhaWxlZCgiU2lnbmVkIGRyYXcgZmFpbGVkLiIpOworICAgIH0K
KyAgfSBlbHNlIHsKKyAgICBjb25zdCBkcmF3VmFsdWUgPSBuZXcgVWludDMyQXJyYXkoWzAsIDAs
IDAsIDBdKTsKKyAgICBpZiAoY29tcGFyZVZhbHVlKGRyYXdWYWx1ZSwgZ2wuQ09MT1JfQVRUQUNI
TUVOVDIsIGlzU2lnbmVkKSkgeworICAgICAgdGVzdFBhc3NlZCgiVW5zaWduZWQgZHJhdyBwYXNz
ZWQuIik7CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlVuc2lnbmVkIGRyYXcgZmFp
bGVkLiIpOworICAgIH0KKyAgfQorICBnbC5kZWxldGVSZW5kZXJidWZmZXIocmIxKTsKKyAgZ2wu
ZGVsZXRlUmVuZGVyYnVmZmVyKHJiMik7CisgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyYjMpOwor
ICBnbC5kZWxldGVGcmFtZWJ1ZmZlcihmYik7CisgIGdsLmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7
Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Byb2dyYW1zL2dsLWdldC1mcmFnLWRhdGEt
bG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1nZXQtZnJhZy1kYXRhLWxvY2F0aW9uLmh0bWwK
aW5kZXggZmY2NjI4MmMwNGY0ZGZlNmE5MDcwMzY0NDFkYjg4NGQ0MGY4MzU1YS4uMWUwMDZlYmQy
ODA5YzJkNGNmNzNhOGI4NzljMTQwMTM2Y2VhMGZkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Byb2dyYW1zL2ds
LWdldC1mcmFnLWRhdGEtbG9jYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcHJvZ3JhbXMvZ2wtZ2V0LWZyYWct
ZGF0YS1sb2NhdGlvbi5odG1sCkBAIC0xLDUgKzEsNSBAQAog77u/PCEtLQotQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCiAtLT4KQEAgLTQzLDYgKzQzLDE4IEBAIHZvaWQgbWFpbigpIHsKIH0KIDwvc2NyaXB0
PgogCis8c2NyaXB0IGlkPSJ2cy1lczIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK3ZvaWQg
bWFpbigpIHsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsIDAsIDAsIDEpOworfQorPC9zY3JpcHQ+
Cis8c2NyaXB0IGlkPSJmcy1lczIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7Cit2b2lkIG1haW4oKSB7CisgIGdsX0ZyYWdDb2xvciA9IHZlYzQo
MCwgMSwgMCwgMSk7Cit9Cis8L3NjcmlwdD4KKwogPHNjcmlwdD4KICJ1c2Ugc3RyaWN0IjsKIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgZ2V0RnJhZ0RhdGFMb2NhdGlvbiBiZWhhdmlv
cnMuIik7CkBAIC02MSwxNCArNzMsMjMgQEAgaWYgKCFnbCkgewogfQogCiBmdW5jdGlvbiBydW5U
ZXN0cygpIHsKLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzIiwgImZz
Il0pOwotICB2YXIgcHJvZ3JhbUFycmF5ID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJm
cy1hcnJheSJdKTsKLSAgaWYgKCFwcm9ncmFtIHx8ICFwcm9ncmFtQXJyYXkpIHsKKyAgd2luZG93
LnByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzIiwgImZzIl0pOworICB3aW5kb3cu
cHJvZ3JhbUFycmF5ID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJmcy1hcnJheSJdKTsK
KyAgd2luZG93LnByb2dyYW1FczIgPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzLWVzMiIsICJm
cy1lczIiXSk7CisgIGlmICghcHJvZ3JhbSB8fCAhcHJvZ3JhbUFycmF5IHx8ICFwcm9ncmFtRXMy
KSB7CiAgICAgdGVzdEZhaWxlZCgiU2V0IHVwIHByb2dyYW0gZmFpbGVkIik7CiAgICAgcmV0dXJu
OwogICB9CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJy
b3IgZnJvbSBzZXQgdXAiKTsKIAorICBzaG91bGRCZSgiZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihw
cm9ncmFtLCAnZ2xfRnJhZ0NvbG9yJykiLCAiLTEiKTsKKyAgc2hvdWxkQmUoImdsLmdldEZyYWdE
YXRhTG9jYXRpb24ocHJvZ3JhbUFycmF5LCAnZ2xfRnJhZ0NvbG9yJykiLCAiLTEiKTsKKyAgc2hv
dWxkQmUoImdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbUVzMiwgJ2dsX0ZyYWdDb2xvcicp
IiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW0sICdn
bF9GcmFnRGF0YScpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFnRGF0YUxvY2F0aW9u
KHByb2dyYW1BcnJheSwgJ2dsX0ZyYWdEYXRhJykiLCAiLTEiKTsKKyAgc2hvdWxkQmUoImdsLmdl
dEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbUVzMiwgJ2dsX0ZyYWdEYXRhJykiLCAiLTEiKTsKKyAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJObyBHTCBlcnJvciBmcm9tIGds
XyogcXVlcmllcyIpOworCiAgIHZhciBsb2MwID0gZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9n
cmFtLCAiZnJhZ0NvbG9yMCIpOwogICB2YXIgbG9jMSA9IGdsLmdldEZyYWdEYXRhTG9jYXRpb24o
cHJvZ3JhbSwgImZyYWdDb2xvcjEiKTsKICAgaWYgKGxvYzAgIT0gMiB8fCBsb2MxICE9IDApIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29s
b3JtYXNrLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNv
bG9ybWFzay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMmQ3ZjU0YmNhNWYyMDEwZmI4MmYzNGUyMGQ4YTE2
MmZhOGUxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11
bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sCkBAIC0wLDAgKzEsMTAyIEBACis8IS0tCitDb3B5
cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5CbGl0RnJhbWVidWZm
ZXIgU2hvdWxkIEJlIFVuYWZmZWN0ZWQgYnkgQ29sb3JNYXNrPC90aXRsZT4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPjwvY2FudmFzPgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CisKK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOwor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBibGl0RnJhbWVidWZmZXIg
aXMgdW5hZmZlY3RlZCBieSB0aGUgY29sb3JNYXNrIHN0YXRlLiIpOworCitkZWJ1ZygnUmVncmVz
c2lvbiB0ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2NyYnVnLmNvbS8xMjU3NzY5Ij5odHRwczov
L2NyYnVnLmNvbS8xMjU3NzY5PC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMDEyOSI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMDEyOTwvYT4nKTsKKworZnVuY3Rpb24gYWxsb2NhdGVUZXh0dXJlKGdsLCBz
aXplKSB7CisgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBOCwgc2l6ZSwgc2l6ZSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgbnVsbCk7CisgICAgcmV0dXJuIHRleDsKK30KKworZnVuY3Rpb24gYWxsb2NhdGVGQk8oZ2ws
IHRleCkgeworICAgIGNvbnN0IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkRSQVdfRlJBTUVCVUZGRVIsIGZibyk7CisgICAgZ2wuZnJhbWVi
dWZmZXJUZXh0dXJlMkQoZ2wuRFJBV19GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAs
IGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7CisgICAgcmV0dXJuIGZibzsKK30KKworZnVuY3Rpb24g
cnVuKCkgeworICAgIGNvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiY2FudmFzIiwgeyBh
bnRpYWxpYXM6IGZhbHNlIH0sIDIpOworCisgICAgaWYgKCFnbCkgeworICAgICAgICB0ZXN0RmFp
bGVkKCJXZWJHTCBjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7CisgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IHNpemUgPSA4OworCisgICAg
dGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIEFsbG9jYXRlIHNv
dXJjZSBhbmQgZGVzdGluYXRpb24gdGV4dHVyZXMgYW5kIGZyYW1lYnVmZmVyIG9iamVjdHMuCisg
ICAgY29uc3Qgc291cmNlVGV4ID0gYWxsb2NhdGVUZXh0dXJlKGdsLCBzaXplKTsKKyAgICBjb25z
dCBzb3VyY2VGQk8gPSBhbGxvY2F0ZUZCTyhnbCwgc291cmNlVGV4KTsKKworICAgIGNvbnN0IGRl
c3RUZXggPSBhbGxvY2F0ZVRleHR1cmUoZ2wsIHNpemUpOworICAgIGNvbnN0IGRlc3RGQk8gPSBh
bGxvY2F0ZUZCTyhnbCwgZGVzdFRleCk7CisKKyAgICBjb25zdCBwcm9ncmFtID0gd3R1LnNldHVw
Q29sb3JRdWFkKGdsKTsKKworICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
c291cmNlRkJPKTsKKworICAgIC8vIENsZWFyIHRoZSBzb3VyY2UgZnJhbWVidWZmZXIgdG8gcmVk
LgorICAgIGdsLmNsZWFyQ29sb3IoMSwgMCwgMCwgMSk7CisgICAgZ2wuY29sb3JNYXNrKHRydWUs
IHRydWUsIHRydWUsIHRydWUpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwor
CisgICAgLy8gRHJhdyBhIHRyYW5zcGFyZW50IGdyZWVuIHF1YWQuCisgICAgZ2wudXNlUHJvZ3Jh
bShwcm9ncmFtKTsKKyAgICB3dHUuZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCBbIDAsIDI1NSwgMCwg
MCBdKTsKKworICAgIC8vIENsZWFyIHRoZSBhbHBoYSBjaGFubmVsLgorICAgIGdsLmNvbG9yTWFz
ayhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAs
IDEpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgICAgLy8gQXQgdGhp
cyBwb2ludCwgZXZlbiBzZXR0aW5nIHRoZSBjb2xvck1hc2sgdG8gYWxsLXRydWUgd29uJ3QKKyAg
ICAvLyB3b3JrIGFyb3VuZCB0aGUgYnVnLCBzaW5jZSB0aGF0IHN0YXRlIGlzIGxhdGNoZWQgaW5z
aWRlIEFOR0xFCisgICAgLy8gb25seSBkdXJpbmcgZHJhd3MgLyBjbGVhcnMuCisKKyAgICAvLyBC
bGl0IHNvdXJjZSB0byBkZXN0LgorICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5EUkFXX0ZSQU1F
QlVGRkVSLCBkZXN0RkJPKTsKKyAgICBnbC5ibGl0RnJhbWVidWZmZXIoMCwgMCwgc2l6ZSwgc2l6
ZSwgMCwgMCwgc2l6ZSwgc2l6ZSwgZ2wuQ09MT1JfQlVGRkVSX0JJVCwgZ2wuTkVBUkVTVCk7Cisg
ICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLlJFQURfRlJBTUVCVUZGRVIsIGRlc3RGQk8pOworCisg
ICAgLy8gTm90ZSB0aGF0IHRoZSBvbi1zY3JlZW4gY2FudmFzIGlzIGFsd2F5cyBibGFjayAtIHdl
IGRvbid0IGJsaXQgdGhlIHJlc3VsdCB0byBpdC4KKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIFsg
MCwgMjU1LCAwLCAyNTUgXSwgInNob3VsZCBiZSBncmVlbiIsIDEpOworICAgIGZpbmlzaFRlc3Qo
KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3JlcXVlc3RBbmltYXRp
b25GcmFtZShydW4pOworCis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGM2NzlkZjZhMjk0MDlmZTUwNjY4MDRhYjE0YzI1YTdkYzI4NzNhYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRp
b25zLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKK++7vzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3RzOiBWZXJp
ZnkgZHJhd0J1ZmZlcnMgc3BhcnNlIG91dHB1dCBsb2NhdGlvbnM8L3RpdGxlPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIg
d2lkdGg9IjEiIGhlaWdodD0iMSIgc3R5bGU9IndpZHRoOiA0cHg7IGhlaWdodDogNHB4OyI+IDwv
Y2FudmFzPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgaWQ9InZzIiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCit2b2lkIG1haW4oKSB7CisgIGds
X1BvaW50U2l6ZSA9IDEwMC4wOworICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwgMCwgMCwgMSk7Cit9
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0iZnMiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQi
PiN2ZXJzaW9uIDMwMCBlcworLy8gZnJhZ21lbnQgc2hhZGVyIG9ubHkgb3V0cHV0cyB0byBhdHRh
Y2htZW50cyAxIGFuZCAzCitwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CitsYXlvdXQobG9jYXRpb24g
PSAxKSBvdXQgdmVjNCBvdXRwdXQxOworbGF5b3V0KGxvY2F0aW9uID0gMykgb3V0IHZlYzQgb3V0
cHV0MjsKK3ZvaWQgbWFpbigpCit7CisgICAgb3V0cHV0MSA9IHZlYzQoMC4wLCAxLjAsIDAuMCwg
MS4wKTsKKyAgICBvdXRwdXQyID0gdmVjNCgwLjAsIDAuMCwgMS4wLCAxLjApOworfQorCis8L3Nj
cmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZl
cmlmaWVzIHNwYXJzZSBvdXRwdXQgbG9jYXRpb25zIG9mIGZyYWdtZW50IHNoYWRlcnMgcmVuZGVy
IGNvcnJlY3RseSIpOworCitkZWJ1ZygiIik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
K3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Cit2YXIgZ2wg
PSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgbnVsbCwgMik7CisKK2lmICghZ2wpIHsKKyAg
dGVzdEZhaWxlZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBlbHNlIHsKKyAg
dGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBleGlzdHMiKTsKKyAgcnVuVGVzdHMoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdEF0dGFjaG1lbnQoYXR0YWNobWVudCwgZXhwZWN0ZWQpIHsKKyAgZ2wucmVh
ZEJ1ZmZlcihnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGF0dGFjaG1lbnQpOworICB3dHUuY2hlY2tD
YW52YXMoZ2wsIGV4cGVjdGVkLCBgY2hlY2sgQ09MT1JfQVRUQUNITUVOVCR7YXR0YWNobWVudH1g
LCAxKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgIHZhciBwcm9ncmFtID0gd3R1LnNl
dHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJmcyJdKTsKKyAgaWYgKCFwcm9ncmFtKSB7CisgICAgdGVz
dEZhaWxlZCgiU2V0IHVwIHByb2dyYW0gZmFpbGVkIik7CisgICAgcmV0dXJuOworICB9CisgIGds
LnVzZVByb2dyYW0ocHJvZ3JhbSk7CisKKyAgLy8gY3JlYXRlIGEgZnJhbWVidWZmZXIgd2l0aCA0
IDF4MSBwaXhlbCBjb2xvciBhdHRhY2htZW50cworICBjb25zdCBmYiA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCk7CisgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmIpOworCisg
IGZvciAobGV0IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRl
VGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBOCwgMSwgMSwgMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgaSwgZ2wuVEVYVFVSRV8yRCwg
dGV4LCAwKTsKKyAgfQorCisgIC8vIGRyYXcgb25seSB0byB0aGUgMXN0IGFuZCAzcmQgYXR0YWNo
bWVudHMKKyAgZ2wuZHJhd0J1ZmZlcnMoWworICAgIGdsLk5PTkUsCisgICAgZ2wuQ09MT1JfQVRU
QUNITUVOVDEsCisgICAgZ2wuTk9ORSwKKyAgICBnbC5DT0xPUl9BVFRBQ0hNRU5UMywKKyAgXSk7
CisKKyAgLy8gZHJhdworICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7CisKKyAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJObyBHTCBlcnJvciBmcm9tIHNldCB1
cCIpOworCisgIC8vIGNoZWNrIHdlIGdvdCB0aGUgY29ycmVjdCB2YWx1ZXMKKyAgdGVzdEF0dGFj
aG1lbnQoMCwgWzAsIDAsIDAsIDBdKTsKKyAgdGVzdEF0dGFjaG1lbnQoMSwgWzAsIDI1NSwgMCwg
MjU1XSk7CisgIHRlc3RBdHRhY2htZW50KDIsIFswLCAwLCAwLCAwXSk7CisgIHRlc3RBdHRhY2ht
ZW50KDMsIFswLCAwLCAyNTUsIDI1NV0pOworCisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiTm8gR0wgZXJyb3IgZnJvbSB0ZXN0aW5nIik7Cit9CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNh
bGxzLmh0bWwKaW5kZXggZWY3NzU5M2Q5MmMyY2ZlYWE2NDNjZDA3OTQ5N2U1YTIzNzkzODJjYi4u
NjJlZDcwZDViZDQ3YmU5OTJjYzY4YmMwMzhhMjM5NjMxM2FkYjFjZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0
YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1j
YWxscy5odG1sCkBAIC0xNSwxMiArMTUsOSBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KIDxib2R5PgogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KIDxzY3JpcHQ+CiB2YXIgY29udGV4dFZlcnNpb24gPSAyOwogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qcyI+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNs
ZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyYzZhMTE4Y2MxZGRhZjU3MzE0YTQyN2UwYjA0MjhiZWQwOGQ0Njk1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTDIgT3JpZ2luIFJlc3RyaWN0aW9ucyBDb25m
b3JtYW5jZSBUZXN0cyBmb3IgT2Zmc2NyZWVuQ2FudmFzPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+Ci08aW1nIGlkPSJpbWciIHN0
eWxlPSJkaXNwbGF5Om5vbmU7Ij4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci0KLS8vIENoZWNrcyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0
aW9uLgotZnVuY3Rpb24gY2F1c2VkRXhjZXB0aW9uKGZ1bmMpIHsKLSAgdmFyIGhhZEV4Y2VwdGlv
biA9IGZhbHNlOwotICB0cnkgewotICAgIGZ1bmMoKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaGFk
RXhjZXB0aW9uID0gdHJ1ZTsKLSAgfQotICByZXR1cm4gaGFkRXhjZXB0aW9uOwotfQotCi12YXIg
ZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3Vy
Y2VzL29wZW5nbF9sb2dvLmpwZyI7Ci12YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3Vy
Y2VzL29wZW5nbF9sb2dvLmpwZyI7Ci0KLXZhciBpbWdEb21haW47Ci12YXIgcGFnZURvbWFpbjsK
LQotZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1nKSB7Ci0gIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
ZW5zdXJlcyBXZWJHTDIgaW1wbGVtZW50YXRpb25zIGZvciBPZmZzY3JlZW5DYW52YXMgZm9sbG93
IHByb3BlciBzYW1lLW9yaWdpbiByZXN0cmljdGlvbnMuIik7Ci0KLSAgaWYgKCF3aW5kb3cuT2Zm
c2NyZWVuQ2FudmFzKSB7Ci0gICAgdGVzdFBhc3NlZCgiTm8gT2Zmc2NyZWVuQ2FudmFzIHN1cHBv
cnQiKTsKLSAgICBmaW5pc2hUZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgYXNzZXJ0TXNn
KGltZy53aWR0aCA+IDAgJiYgaW1nLmhlaWdodCA+IDAsICJpbWcgd2FzIGxvYWRlZCIpOwotICBp
bWdEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3dHUuZ2V0SG9zdChpbWcuc3JjKSk7Ci0gIHBh
Z2VEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3aW5kb3cubG9jYXRpb24uaG9zdCk7Ci0gIGFz
c2VydE1zZyhpbWdEb21haW4gIT0gcGFnZURvbWFpbiwKLSAgICAgICAgICAgICJpbWcgZG9tYWlu
ICgiICsgaW1nRG9tYWluICsgIikgYW5kIHBhZ2UgZG9tYWluICgiICsgcGFnZURvbWFpbiArICIp
IGFyZSBub3QgdGhlIHNhbWUuIik7Ci0KLSAgZnVuY3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNy
YykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTAsIDEwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBzcmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVGV4U3ViSW1hZ2UyRChnbCwg
c3JjKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAwLCAwLCAxMCwgMTAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTNEKGdsLCBzcmMp
IHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhJbWFnZTNEKGdsLlRFWFRV
UkVfM0QsIDAsIGdsLlJHQkEsIDEwLCAxMCwgMSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRleFN1YkltYWdlM0QoZ2ws
IHNyYykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleFN1YkltYWdlM0Qo
Z2wuVEVYVFVSRV8zRCwgMCwgMCwgMCwgMCwgMTAsIDEwLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBzcmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlUmVhZFBpeGVscyhn
bCkgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBidWYgPSBuZXcgVWludDhB
cnJheSg0KTsKLSAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgYnVmKTsKLSAgICB9OwotICB9Ci0KLSAgdmFyIG9mZnNjcmVlbmNhbnZhcyA9
IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dChvZmZzY3JlZW5jYW52YXMsIG51bGwsIDIpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWco
ImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9y
aWdpbiB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBudWxsKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4
SW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9y
aWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2Vk
RXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhT
dWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24u
Iik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlM0QoZ2wsIGltZykp
LAotICAgICAgICAgICAgInRleEltYWdlM0Qgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxk
IHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4
U3ViSW1hZ2UzRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UzRCB3aXRoIGNy
b3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0KLSAgZGVidWco
ImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2FpbnN0IHRoaXMgb2Zm
c2NyZWVuY2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBp
eGVscyhnbCkpLAotICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4
Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMMiBjYW52YXMu
Iik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVk
IGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOwotICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotICB2YXIgY3R4MmQgPSBjYW52YXMuZ2V0Q29udGV4
dCgiMmQiKTsKLSAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7Ci0gIGFzc2VydE1zZyhjYXVz
ZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGNhbnZhcykpLAotICAgICAgICAgICAgInRl
eEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0
aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTJEKGds
LCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBj
bGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNl
ZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UzRChnbCwgY2FudmFzKSksCi0gICAgICAgICAgICAidGV4
SW1hZ2UzRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlM0QoZ2ws
IGNhbnZhcykpLAotICAgICAgICAgICAgInRleFN1YkltYWdlM0Qgd2l0aCBOT04gb3JpZ2luIGNs
ZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRlYnVnKCJjaGVjayB0
aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNh
bnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wp
KSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24g
LS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTDIgY2FudmFzLiIpOwotCi0g
IC8vIFRPRE86IFNob3VsZCBjaGVjayB2aWRlby4KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIENP
UlMgc3VwcG9ydC4KLQotICBmaW5pc2hUZXN0KCk7Ci19Ci0KLShhc3luYyBmdW5jdGlvbigpIHsK
LSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZycpOwotICB0cnkgewot
ICAgIGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1n
LCBkZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCksIDEwMDApOwotICB9IGNhdGNoIChlKSB7Ci0g
ICAgdGVzdEZhaWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsKLSAgICBmaW5pc2hU
ZXN0KCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIGltYWdlTG9hZGVkKGltZyk7Ci19KSgpOwotPC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgt
c3RvcmFnZS1jb21wcmVzc2VkLWZvcm1hdHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL3RleC1zdG9y
YWdlLWNvbXByZXNzZWQtZm9ybWF0cy5odG1sCmluZGV4IGFkYTc3Y2E0YjY2N2Q5MmEzYzk3MjFh
YzBmZWVlMWY0ZmRhNzRjZDIuLmUxNTQ2MzFlYWQ3NjYyZjdiZjQ5MDc1YmE2ODI3ZmRmYmI3ZTBl
MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL3RleC1zdG9yYWdlLWNvbXByZXNzZWQtZm9y
bWF0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL3RleC1zdG9yYWdlLWNvbXByZXNzZWQtZm9y
bWF0cy5odG1sCkBAIC05OCw3ICs5OCw3IEBAIGZ1bmN0aW9uIHJ1blRleENvbXByZXNzZWRGb3Jt
YXRzVGVzdCh0ZXhDb21wcmVzc2VkRm9ybWF0cykKICAgICAgICAgLy8gVGVzdCBhIDJEIHRleHR1
cmUuCiAgICAgICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiAgICAgICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICAgIGdsLnRleFN0b3JhZ2UyRChn
bC5URVhUVVJFXzJELCAxLCBpbnRlcm5hbGZvcm1hdCwgMSwgMSk7CisgICAgICAgIGdsLnRleFN0
b3JhZ2UyRChnbC5URVhUVVJFXzJELCAxLCBpbnRlcm5hbGZvcm1hdCwgNCwgNCk7CiAgICAgICAg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0ZXhTdG9yYWdlMkQgc2hvdWxkIHN1Y2NlZWQgZm9yICIgKyBlbnVtVG9TdHJp
bmcoaW50ZXJuYWxmb3JtYXQpKTsKICAgICAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwpAQCAt
MTExLDE0ICsxMTEsMTQgQEAgZnVuY3Rpb24gcnVuVGV4Q29tcHJlc3NlZEZvcm1hdHNUZXN0KHRl
eENvbXByZXNzZWRGb3JtYXRzKQogICAgICAgICAvLyBUZXN0IHRoZSAzRCB0ZXh0dXJlIHRhcmdl
dHMuCiAgICAgICAgIHZhciB0ZXgzZCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKICAgICAgICAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8zRCwgdGV4M2QpOwotICAgICAgICBnbC50ZXhTdG9yYWdl
M0QoZ2wuVEVYVFVSRV8zRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDEsIDEsIDEpOworICAgICAgICBn
bC50ZXhTdG9yYWdlM0QoZ2wuVEVYVFVSRV8zRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDQsIDQsIDEp
OwogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4U3RvcmFnZTNEKFRFWFRVUkVfM0QpIHNo
b3VsZCBmYWlsIGZvciAiICsgZW51bVRvU3RyaW5nKGludGVybmFsZm9ybWF0KSk7CiAgICAgICAg
IGdsLmRlbGV0ZVRleHR1cmUodGV4M2QpOwogCiAgICAgICAgIHZhciB0ZXgyZEFyciA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRF9BUlJB
WSwgdGV4MmRBcnIpOwotICAgICAgICBnbC50ZXhTdG9yYWdlM0QoZ2wuVEVYVFVSRV8yRF9BUlJB
WSwgMSwgaW50ZXJuYWxmb3JtYXQsIDEsIDEsIDEpOworICAgICAgICBnbC50ZXhTdG9yYWdlM0Qo
Z2wuVEVYVFVSRV8yRF9BUlJBWSwgMSwgaW50ZXJuYWxmb3JtYXQsIDQsIDQsIDEpOwogICAgICAg
ICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGV4U3RvcmFnZTNEKFRFWFRVUkVfMkRfQVJSQVkpIHNob3VsZCBzdWNjZWVk
IGZvciAiICsgZW51bVRvU3RyaW5nKGludGVybmFsZm9ybWF0KSk7CiAgICAgICAgIHd0dS5jbGVh
ckFuZERyYXdVbml0UXVhZChnbCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2Ft
cGxlVGVzdHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2FtcGxlVGVzdHMuanMKaW5kZXggNTBl
MmEyMTk5MmY5OGZhOTllOGYzNzg5ZDA0YWEwNTg3ZGY4YjkxYy4uNDdlNjI2N2QzNWQzNzI3ZjM5
MjM5ZDAyNmVlZGU1YjQwNDJiY2VhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZNdWx0aXNh
bXBsZVRlc3RzLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9lczNmTXVsdGlzYW1wbGVUZXN0cy5qcwpAQCAt
MTcxMyw3ICsxNzEzLDcgQEAgZ29vZy5zY29wZShmdW5jdGlvbigpIHsKICAgICAgKiBSdW4gdGVz
dAogICAgICAqIEBwYXJhbSB7V2ViR0wyUmVuZGVyaW5nQ29udGV4dH0gY29udGV4dAogICAgICAq
LwotICAgICBlczNmTXVsdGlzYW1wbGVUZXN0cy5ydW4gPSBmdW5jdGlvbihjb250ZXh0KSB7Cisg
ICAgZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuID0gZnVuY3Rpb24oY29udGV4dCwgcmFuZ2UpIHsK
ICAgICAgICAgZ2wgPSBjb250ZXh0OwogICAgICAgICAvL1NldCB1cCBUZXN0IFJvb3QgcGFyYW1l
dGVycwogICAgICAgICB2YXIgdGVzdE5hbWUgPSAnbXVsdGlzYW1wbGUnOwpAQCAtMTczMCw2ICsx
NzMwLDggQEAgZ29vZy5zY29wZShmdW5jdGlvbigpIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAg
ICAgIC8vQ3JlYXRlIHRlc3QgY2FzZXMKICAgICAgICAgICAgIGVzM2ZNdWx0aXNhbXBsZVRlc3Rz
LmluaXQoKTsKKyAgICAgICAgICAgIGlmIChyYW5nZSkKKyAgICAgICAgICAgICAgICBzdGF0ZS5z
ZXRSYW5nZShyYW5nZSk7CiAgICAgICAgICAgICAvL1J1biB0ZXN0IGNhc2VzCiAgICAgICAgICAg
ICB0Y3VUZXN0Q2FzZS5ydW5UZXN0Q2FzZXMoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFs
L2dsZXMzL2VzM2ZQcmltaXRpdmVSZXN0YXJ0VGVzdHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZlByaW1p
dGl2ZVJlc3RhcnRUZXN0cy5qcwppbmRleCA4NTk3MzY2NWFkOGMxNTc1NmE5NWFjZDMwOTQwZDJm
YmY4YTE1OWY4Li5hYzBkYTJmZTY2NDZmMzA2NWYzNmFmMWE3MzM5ZTcyNWI1MThjNzBiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFw
L2Z1bmN0aW9uYWwvZ2xlczMvZXMzZlByaW1pdGl2ZVJlc3RhcnRUZXN0cy5qcworKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwv
Z2xlczMvZXMzZlByaW1pdGl2ZVJlc3RhcnRUZXN0cy5qcwpAQCAtMzM0LDEwICszMzQsMTUgQEAg
dmFyIGdsdVRleHR1cmVVdGlsID0gZnJhbWV3b3JrLm9wZW5nbC5nbHVUZXh0dXJlVXRpbDsKICAg
ICAgICAgICAgICdcbicgKwogICAgICAgICAgICAgJ3ZvaWQgbWFpbigpXG4nICsKICAgICAgICAg
ICAgICcge1xuJyArCi0gICAgICAgICAgICAnIGdsX1Bvc2l0aW9uID0gYV9wb3NpdGlvbjtcbicg
KwotICAgICAgICAgICAgJ31cbic7CisgICAgICAgICAgICAnIGdsX1Bvc2l0aW9uID0gYV9wb3Np
dGlvbjtcbic7CisKKyAgICAgICAgaWYgKHRoaXMubV9wcmltVHlwZSA9PSBlczNmUHJpbWl0aXZl
UmVzdGFydFRlc3RzLlByaW1pdGl2ZVR5cGUuUFJJTUlUSVZFX1BPSU5UUykgeworICAgICAgICAg
ICAgdmVydFNoYWRlclNvdXJjZSArPSAnIGdsX1BvaW50U2l6ZSA9IDEuMDtcbic7CisgICAgICAg
IH0KKworICAgICAgICB2ZXJ0U2hhZGVyU291cmNlICs9ICd9XG4nOwogCi0gICAgICAgICAgICAv
KiogQHR5cGUge3N0cmluZ30gKi8gdmFyIGZyYWdTaGFkZXJTb3VyY2UgPQorICAgICAgICAvKiog
QHR5cGUge3N0cmluZ30gKi8gdmFyIGZyYWdTaGFkZXJTb3VyY2UgPQogICAgICAgICAgICAgJyN2
ZXJzaW9uIDMwMCBlc1xuJyArCiAgICAgICAgICAgICAnbGF5b3V0KGxvY2F0aW9uID0gMCkgb3V0
IG1lZGl1bXAgdmVjNCBvX2NvbG9yO1xuJyArCiAgICAgICAgICAgICAnXG4nICsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVu
Y3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMmRiMzAzNWU5MjY3YzUwZGYxZmZj
MDY0YmFjNDliMmY2ZjYyYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotPHRpdGxlPldlYkdMIE11bHRp
c2FtcGxlIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vY2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29vZy9iYXNlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9kZXFwLWRlcHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD5nb29n
LnJlcXVpcmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMnKTs8L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyNTYiIGhlaWdo
dD0iMjU2Ij4gPC9jYW52YXM+Ci08c2NyaXB0PgotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwot
dmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2FudmFzJywgbnVsbCwgMik7Ci0KLWZ1bmN0
aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuKGdsKTsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRf
ZmJvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MWQzZjA2YmY5ODA5YmUzMmVlN2E4MjJmOWFlNTIxZjM4MzgxMjhiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWwKQEAgLTAsMCAr
MSwzMSBAQAorPCEtLQorCitUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBtdWx0aXNh
bXBsZV90ZXN0X2dlbmVyYXRvci5weQorRE8gTk9UIEVESVQhCisKKy0tPgorCis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPldlYkdMIE11bHRpc2FtcGxlIENvbmZvcm1hbmNlIFRl
c3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
Y2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29vZy9iYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9kZXFwLWRlcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD5nb29nLnJlcXVp
cmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMnKTs8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2
Ij4gPC9jYW52YXM+Cis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGds
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2FudmFzJywgbnVsbCwgMik7CisKK2Z1bmN0aW9uYWwu
Z2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuKGdsLCBbMCwgMV0pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRf
c2FtcGxlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMDIxZjU3YmE5YTU4NGIzMDZhZjI3NGIyY2QzMDMyNWI4NTJhMTE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMuaHRtbApA
QCAtMCwwICsxLDMxIEBACis8IS0tCisKK1RoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBmcm9t
IG11bHRpc2FtcGxlX3Rlc3RfZ2VuZXJhdG9yLnB5CitETyBOT1QgRURJVCEKKworLS0+CisKKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+V2ViR0wgTXVsdGlzYW1wbGUgQ29uZm9y
bWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9jbG9zdXJlLWxpYnJhcnkvY2xvc3VyZS9nb29nL2Jhc2UuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2RlcXAtZGVwcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pmdv
b2cucmVxdWlyZSgnZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0cycpOzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjI1NiIgaGVp
Z2h0PSIyNTYiPiA8L2NhbnZhcz4KKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCdjYW52YXMnLCBudWxsLCAyKTsKKworZnVu
Y3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0cy5ydW4oZ2wsIFsxLCAyXSk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fOF9zYW1wbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxl
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFkY2E1YWVhZmVjYzg0NDI4ZDg0MmE5NGRkOWQ2ZDQ0M2UxYmI2
NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxl
cy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhLS0KKworVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGZyb20gbXVsdGlzYW1wbGVfdGVzdF9nZW5lcmF0b3IucHkKK0RPIE5PVCBFRElUIQorCist
LT4KKworPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBNdWx0aXNhbXBs
ZSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cvYmFzZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZGVxcC1kZXBzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+Z29vZy5yZXF1aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3Rz
Jyk7PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0i
MjU2IiBoZWlnaHQ9IjI1NiI+IDwvY2FudmFzPgorPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZhcycsIG51bGwsIDIp
OworCitmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1bihnbCwgWzIsIDNd
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211
bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zi
b19tYXhfc2FtcGxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYzc1YzcyMWZhNzAwMDVkZjkxNjk3MjVk
ZWIwZTkxYTNiZWMwNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUv
ZmJvX21heF9zYW1wbGVzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCEtLQorCitUaGlzIGZpbGUg
aXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBtdWx0aXNhbXBsZV90ZXN0X2dlbmVyYXRvci5weQorRE8g
Tk9UIEVESVQhCisKKy0tPgorCis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPldl
YkdMIE11bHRpc2FtcGxlIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vY2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29v
Zy9iYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9kZXFwLWRlcHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD5nb29nLnJlcXVpcmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11
bHRpc2FtcGxlVGVzdHMnKTs8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJj
YW52YXMiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij4gPC9jYW52YXM+Cis8c2NyaXB0PgordmFy
IHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2Fu
dmFzJywgbnVsbCwgMik7CisKK2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMu
cnVuKGdsLCBbMywgNF0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9nbHNsLWNv
bmZvcm1hbmNlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMKaW5kZXggZWQ2ZWFhZDUwZjRiMWNh
Nzg3Y2Q1Y2JhYmY1MGYwOGM3YmI4ZmNlNi4uMTJhMDU2Y2UyMTQ0OTg5MTlhM2I5NWY5YTM2ZDZl
OTdlNjQxMTJkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvanMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVz
dC5qcwpAQCAtMjc3LDEyICsyNzcsMTcgQEAgZnVuY3Rpb24gcnVuT25lVGVzdChnbCwgaW5mbykg
ewogCiAgIGlmIChpbmZvLnVuaWZvcm1zICE9PSB1bmRlZmluZWQpIHsKICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGluZm8udW5pZm9ybXMubGVuZ3RoOyArK2kpIHsKLSAgICAgIHZhciB1bmlmb3Jt
TG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgaW5mby51bmlmb3Jtc1tp
XS5uYW1lKTsKKyAgICAgIHZhciB1bmlmb3JtID0gaW5mby51bmlmb3Jtc1tpXTsKKyAgICAgIHZh
ciB1bmlmb3JtTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgdW5pZm9y
bS5uYW1lKTsKICAgICAgIGlmICh1bmlmb3JtTG9jYXRpb24gIT09IG51bGwpIHsKLSAgICAgICAg
Z2xbaW5mby51bmlmb3Jtc1tpXS5mdW5jdGlvbk5hbWVdKHVuaWZvcm1Mb2NhdGlvbiwgaW5mby51
bmlmb3Jtc1tpXS52YWx1ZSk7Ci0gICAgICAgIGRlYnVnKGluZm8udW5pZm9ybXNbaV0ubmFtZSAr
ICcgc2V0IHRvICcgKyBpbmZvLnVuaWZvcm1zW2ldLnZhbHVlKTsKKyAgICAgICAgaWYgKHVuaWZv
cm0uZnVuY3Rpb25OYW1lLmluY2x1ZGVzKCJNYXRyaXgiKSkgeworICAgICAgICAgIGdsW3VuaWZv
cm0uZnVuY3Rpb25OYW1lXSh1bmlmb3JtTG9jYXRpb24sIGZhbHNlLCB1bmlmb3JtLnZhbHVlKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBnbFt1bmlmb3JtLmZ1bmN0aW9uTmFtZV0odW5p
Zm9ybUxvY2F0aW9uLCB1bmlmb3JtLnZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBkZWJ1Zyh1
bmlmb3JtLm5hbWUgKyAnIHNldCB0byAnICsgdW5pZm9ybS52YWx1ZSk7CiAgICAgICB9IGVsc2Ug
ewotICAgICAgICBkZWJ1ZygndW5pZm9ybSAnICsgaW5mby51bmlmb3Jtc1tpXS5uYW1lICsgJyBo
YWQgbnVsbCBsb2NhdGlvbiBhbmQgd2FzIG5vdCBzZXQnKTsKKyAgICAgICAgZGVidWcoJ3VuaWZv
cm0gJyArIHVuaWZvcm0ubmFtZSArICcgaGFkIG51bGwgbG9jYXRpb24gYW5kIHdhcyBub3Qgc2V0
Jyk7CiAgICAgICB9CiAgICAgfQogICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXBvc3QuanMgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXBvc3QuanMKaW5k
ZXggZmY4OWU1ODZlYmRhZmNkMTVjYjQ2ODVkMDcwZGZkMjY4NTkxNjY2NS4uMjNkZjU1MDNkMTI4
Y2E1YmQ5MDQ5ZmQxMzlmZTAyY2FkYzVhODA1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcG9z
dC5qcwpAQCAtOSw0ICs5LDE5IEBAIF9hZGRTcGFuKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+
VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKIGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcpIHsK
ICAgICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ1RFU1QgQ09NUExFVEUnKTsKIH0KKworeworICAg
IGNvbnN0IGVfcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGxl
dCBmYWlsc19jbGFzcyA9ICdwYXNzJzsKKyAgICBpZiAoUkVTVUxUUy5mYWlsKSB7CisgICAgICAg
IGZhaWxzX2NsYXNzID0gJ2ZhaWwnOworICAgIH0KKyAgICBlX3Jlc3VsdHMuY2xhc3NMaXN0LmFk
ZCgncGFzcycpOworICAgIGVfcmVzdWx0cy5pbm5lckhUTUwgPSBgPHA+VEVTVCBDT01QTEVURTog
JHtSRVNVTFRTLnBhc3N9IFBBU1MsIGAgKworICAgICAgYDxzcGFuIGNsYXNzPSIke2ZhaWxzX2Ns
YXNzfSI+JHtSRVNVTFRTLmZhaWx9IEZBSUw8L3NwYW4+PC9wPmA7CisKKyAgICBjb25zdCBlX2Rl
c2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKKyAgICBlX2Rlc2Mu
YXBwZW5kQ2hpbGQoZV9yZXN1bHRzKTsKK30KKwogbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
anMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwppbmRleCBhMGRhMzQ4OWU3ZTNkZTc3OGMxMmM5YmEy
YjlmMTUxOTcyNjg4ZDAwLi5lMWNiOWY3NDljMDIyYWFhYzA4ZmIxMGIwYzJmNjQ5MGIwZmFhZjYw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy9qcy10ZXN0LXByZS5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwpAQCAtODgsNyArODgsMTcgQEAgZnVuY3Rp
b24gbm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKSB7CiAgIH0KIH0KIAorY29uc3QgUkVT
VUxUUyA9IHsKKyAgcGFzczogMCwKKyAgZmFpbDogMCwKK307CisKIGZ1bmN0aW9uIHJlcG9ydFRl
c3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgeworICBpZiAoc3VjY2VzcykgeworICAg
IFJFU1VMVFMucGFzcyArPSAxOworICB9IGVsc2UgeworICAgIFJFU1VMVFMuZmFpbCArPSAxOwor
ICB9CiAgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKICAgICB3aW5kb3cu
cGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cubG9jYXRpb24ucGF0
aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7CiAgIH0KQEAgLTEwMSw2ICsxMTEsMTEgQEAgZnVuY3Rpb24g
cmVwb3J0U2tpcHBlZFRlc3RSZXN1bHRzVG9IYXJuZXNzKHN1Y2Nlc3MsIG1zZykgewogfQogCiBm
dW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIHsKKyAgaWYgKHdpbmRvdy5fZGlkTm90
aWZ5RmluaXNoZWRUb0hhcm5lc3MpIHsKKyAgICB0ZXN0RmFpbGVkKCJEdXBsaWNhdGUgbm90aWZ5
RmluaXNoZWRUb0hhcm5lc3MoKSIpOworICB9CisgIHdpbmRvdy5fZGlkTm90aWZ5RmluaXNoZWRU
b0hhcm5lc3MgPSB0cnVlOworCiAgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mp
IHsKICAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQod2lu
ZG93LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgfQpAQCAtNzcxLDMgKzc4NiwxNiBAQCBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgewogICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVwaWxvZ3VlKTsK
IH0KIAorLy8vIFByZWZlciBgY2FsbCgoKSA9PiB7IC4uLiB9KWAgdG8gYCgoKSA9PiB7IC4uLiB9
KSgpYFwKKy8vLyBUaGlzIHdheSwgaXQncyBjbGVhciB1cC1mcm9udCB0aGF0IHdlJ3JlIGNhbGxp
bmcgbm90IGp1c3QgZGVmaW5pbmcuCitmdW5jdGlvbiBjYWxsKGZuKSB7CisgICAgcmV0dXJuIGZu
KCk7Cit9CisKKy8vLyBgZm9yIChjb25zdCBpIG9mIHJhbmdlKDMpKWAgPT4gMCwgMSwgMgorLy8v
IERvbid0IHVzZSBgZm9yLi4uaW4gcmFuZ2UobilgLCBpdCB3aWxsIG5vdCB3b3JrLgorZnVuY3Rp
b24qIHJhbmdlKG4pIHsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICB5aWVs
ZCBpOworICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVzc2VkLXRleHR1cmUtdXRpbHMuanMgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVz
c2VkLXRleHR1cmUtdXRpbHMuanMKaW5kZXggZDZmMDJjNGQ0M2IzOWYwYWE0ODUzZTc0ODlmNDA1
OGZjMmQ2YmNmNS4uNDZkMTU1ZjVmMWRhNjM4ZDZlOGEyYzhkNTU2NjczMTliMWFhMzdiOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
dGVzdHMvY29tcHJlc3NlZC10ZXh0dXJlLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2NvbXByZXNzZWQtdGV4dHVyZS11
dGlscy5qcwpAQCAtMTY1LDcgKzE2NSw3IEBAIGxldCB0ZXN0Rm9ybWF0UmVzdHJpY3Rpb25zT25C
dWZmZXJTaXplID0gZnVuY3Rpb24oZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlCiAgKiBA
cGFyYW0ge251bWJlcn0gaGVpZ2h0IEhlaWdodCBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzLgogICog
QHBhcmFtIHtPYmplY3R9IHN1YkltYWdlQ29uZmlncyBjb25maWdzIGZvciBjb21wcmVzc2VkVGV4
U3ViSW1hZ2UgY2FsbHMKICAqLwotbGV0IHRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMgPSBmdW5j
dGlvbihnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5z
aW9ucywgd2lkdGgsIGhlaWdodCwgc3ViSW1hZ2VDb25maWdzKSB7CitsZXQgdGVzdFRleFN1Yklt
YWdlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRC
eXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsIHdpZHRoLCBoZWlnaHQsIHN1YkltYWdlQ29u
ZmlncykgewogICAgIGxldCB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiAgICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKIApAQCAtMTczLDYgKzE3Myw3IEBAIGxldCB0ZXN0
VGV4U3ViSW1hZ2VEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0
ZWRCeXRlTGVuZ3RoLCBnCiAgICAgICAgIGlmICh2YWxpZEZvcm1hdHMuaGFzT3duUHJvcGVydHko
Zm9ybWF0SWQpKSB7CiAgICAgICAgICAgICBsZXQgZm9ybWF0ID0gdmFsaWRGb3JtYXRzW2Zvcm1h
dElkXTsKICAgICAgICAgICAgIGxldCBibG9ja1NpemUgPSBnZXRCbG9ja0RpbWVuc2lvbnMoZm9y
bWF0KTsKKyAgICAgICAgICAgIGRlYnVnKCJ0ZXN0aW5nICIgKyBjdHUuZm9ybWF0VG9TdHJpbmco
ZXh0LCBmb3JtYXQpKTsKICAgICAgICAgICAgIGxldCBleHBlY3RlZFNpemUgPSBleHBlY3RlZEJ5
dGVMZW5ndGgod2lkdGgsIGhlaWdodCwgZm9ybWF0KTsKICAgICAgICAgICAgIGxldCBkYXRhID0g
bmV3IFVpbnQ4QXJyYXkoZXhwZWN0ZWRTaXplKTsKIApAQCAtMTkyLDcgKzE5Myw3IEBAIGxldCB0
ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIHZhbGlkRm9ybWF0cywgZXhw
ZWN0ZWRCeXRlTGVuZ3RoLCBnCiAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwogfTsKIAotbGV0
IHRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMs
IGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCBpbWFnZUNvbmZpZ3MpIHsK
K2xldCB0ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgZXh0LCB2YWxp
ZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCBpbWFnZUNv
bmZpZ3MpIHsKICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwogICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CiAKQEAgLTIwMCw2ICsyMDEsNyBAQCBsZXQgdGVz
dFRleEltYWdlTGV2ZWxEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIHZhbGlkRm9ybWF0cywgZXhw
ZWN0ZWRCeXRlTGVuZ3RoLAogICAgICAgICBpZiAodmFsaWRGb3JtYXRzLmhhc093blByb3BlcnR5
KGZvcm1hdElkKSkgewogICAgICAgICAgICAgbGV0IGZvcm1hdCA9IHZhbGlkRm9ybWF0c1tmb3Jt
YXRJZF07CiAgICAgICAgICAgICBsZXQgYmxvY2tTaXplID0gZ2V0QmxvY2tEaW1lbnNpb25zKGZv
cm1hdCk7CisgICAgICAgICAgICBkZWJ1ZygidGVzdGluZyAiICsgY3R1LmZvcm1hdFRvU3RyaW5n
KGV4dCwgZm9ybWF0KSk7CiAKICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBpbWFn
ZUNvbmZpZ3MubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgICAgICAgICBsZXQgYyA9
IGltYWdlQ29uZmlnc1tpXTsKQEAgLTIxNCw2ICsyMTYsMzIgQEAgbGV0IHRlc3RUZXhJbWFnZUxl
dmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxl
bmd0aCwKICAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7CiB9CiAKK2xldCB0ZXN0VGV4U3RvcmFn
ZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0
ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsIGltYWdlQ29uZmlncykgeworICAgIGZv
ciAobGV0IGZvcm1hdElkIGluIHZhbGlkRm9ybWF0cykgeworICAgICAgICBsZXQgdGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXgpOworCisgICAgICAgIGlmICh2YWxpZEZvcm1hdHMuaGFzT3duUHJvcGVydHkoZm9ybWF0SWQp
KSB7CisgICAgICAgICAgICBsZXQgZm9ybWF0ID0gdmFsaWRGb3JtYXRzW2Zvcm1hdElkXTsKKyAg
ICAgICAgICAgIGxldCBibG9ja1NpemUgPSBnZXRCbG9ja0RpbWVuc2lvbnMoZm9ybWF0KTsKKyAg
ICAgICAgICAgIGRlYnVnKCJ0ZXN0aW5nICIgKyBjdHUuZm9ybWF0VG9TdHJpbmcoZXh0LCBmb3Jt
YXQpKTsKKworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGltYWdlQ29uZmlncy5s
ZW5ndGg7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgICAgIGxldCBjID0gaW1hZ2VDb25m
aWdzW2ldOworICAgICAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoZXhwZWN0
ZWRCeXRlTGVuZ3RoKGMud2lkdGgsIGMuaGVpZ2h0LCBmb3JtYXQpKTsKKyAgICAgICAgICAgICAg
ICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdsLnRleFN0b3JhZ2UyRChnbC5U
RVhUVVJFXzJELCBpbWFnZUNvbmZpZ3MubGVuZ3RoLCBmb3JtYXQsIGMud2lkdGgsIGMuaGVpZ2h0
KTsKKyAgICAgICAgICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgYy5leHBlY3Rh
dGlvbiwgYy5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ2wu
Y29tcHJlc3NlZFRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgaSwgMCwgMCwgYy53aWR0aCwg
Yy5oZWlnaHQsIGZvcm1hdCwgZGF0YSk7CisgICAgICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgYy5leHBlY3RhdGlvbiwgYy5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKKyAgICAg
ICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOworICAgIH0KK30KKwogcmV0dXJuIHsKICAgICBmb3Jt
YXRUb1N0cmluZzogZm9ybWF0VG9TdHJpbmcsCiAgICAgaW5zZXJ0Q2FwdGlvbmVkSW1nOiBpbnNl
cnRDYXB0aW9uZWRJbWcsCkBAIC0yMjQsNiArMjUyLDcgQEAgcmV0dXJuIHsKICAgICB0ZXN0Rm9y
bWF0UmVzdHJpY3Rpb25zT25CdWZmZXJTaXplOiB0ZXN0Rm9ybWF0UmVzdHJpY3Rpb25zT25CdWZm
ZXJTaXplLAogICAgIHRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnM6IHRlc3RUZXhTdWJJbWFnZURp
bWVuc2lvbnMsCiAgICAgdGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zOiB0ZXN0VGV4SW1hZ2VM
ZXZlbERpbWVuc2lvbnMsCisgICAgdGVzdFRleFN0b3JhZ2VMZXZlbERpbWVuc2lvbnM6IHRlc3RU
ZXhTdG9yYWdlTGV2ZWxEaW1lbnNpb25zLAogfTsKIAogfSkoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjY0NzY0NjNkMjcwZmQ3MDZkYTkzODM4ZWU1MTA4OTUyYzBmOGY4YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2pzL3Rlc3RzL2NvbnRleHQtbWV0aG9kcy5qcwpAQCAtMCwwICsxLDUyIEBACisidXNlIHN0
cmljdCI7CisKKy8vIFByb3BlcnRpZXMgdG8gYmUgaWdub3JlZCBiZWNhdXNlIHRoZXkgd2VyZSBh
ZGRlZCBpbiB2ZXJzaW9ucyBvZiB0aGUKKy8vIHNwZWMgdGhhdCBhcmUgYmFja3dhcmQtY29tcGF0
aWJsZSB3aXRoIHRoaXMgdmVyc2lvbgorY29uc3QgSUdOT1JFRF9NRVRIT0RTID0gWworICAvLyBU
aGVyZSBpcyBubyBvZmZpY2lhbCBzcGVjIGZvciB0aGUgY29tbWl0IEFQSSB5ZXQsIHRoZSBwcm9w
b3NhbCBsaW5rIGlzOgorICAvLyBodHRwczovL3dpa2kud2hhdHdnLm9yZy93aWtpL09mZnNjcmVl
bkNhbnZhcworICAiY29tbWl0IiwKKworICAvLyBGb3IgV2ViWFIgaW50ZWdyYXRpb246CisgICJt
YWtlWFJDb21wYXRpYmxlIiwKK107CisKK2Z1bmN0aW9uIGFzc2VydEZ1bmN0aW9uKHYsIGYpIHsK
KyAgdHJ5IHsKKyAgICBpZiAodHlwZW9mIHZbZl0gIT0gImZ1bmN0aW9uIikgeworICAgICAgdGVz
dEZhaWxlZChgUHJvcGVydHkgZWl0aGVyIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhIGZ1bmN0
aW9uOiAke2Z9YCk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgfSBjYXRjaChlKSB7CisgICAgdGVzdEZhaWxlZChgVHJ5aW5n
IHRvIGFjY2VzcyB0aGUgcHJvcGVydHkgJyR7Zn0nIHRocmV3IGFuIGVycm9yOiAke2UudG9TdHJp
bmcoKX1gKTsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0Q29udGV4dE1ldGhvZHMoZ2wsIHJlcXVp
cmVkQ29udGV4dE1ldGhvZHMpIHsKKyAgY29uc3QgYWNjZXB0YWJsZU1ldGhvZHMgPSBbXS5jb25j
YXQocmVxdWlyZWRDb250ZXh0TWV0aG9kcywgSUdOT1JFRF9NRVRIT0RTKTsKKworICBsZXQgcGFz
c2VkID0gdHJ1ZTsKKyAgcmVxdWlyZWRDb250ZXh0TWV0aG9kcy5mb3JFYWNoKG1ldGhvZCA9PiB7
CisgICAgY29uc3QgciA9IGFzc2VydEZ1bmN0aW9uKGdsLCBtZXRob2QpOworICAgIHBhc3NlZCA9
IHBhc3NlZCAmJiByOworICB9KTsKKyAgaWYgKHBhc3NlZCkgeworICAgIHRlc3RQYXNzZWQoIkFs
bCBXZWJHTCBtZXRob2RzIGZvdW5kLiIpOworICB9CisgIGxldCBleHRlbmRlZCA9IGZhbHNlOwor
ICBmb3IgKGxldCBwcm9wZXJ0eU5hbWUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZ2wp
KSB7CisgICAgaWYgKHR5cGVvZiBnbFtwcm9wZXJ0eU5hbWVdID09ICJmdW5jdGlvbiIgJiYgIWFj
Y2VwdGFibGVNZXRob2RzLmluY2x1ZGVzKHByb3BlcnR5TmFtZSkpIHsKKyAgICAgIGlmICghZXh0
ZW5kZWQpIHsKKyAgICAgICAgZXh0ZW5kZWQgPSB0cnVlOworICAgICAgICB0ZXN0RmFpbGVkKCJB
bHNvIGZvdW5kIHRoZSBmb2xsb3dpbmcgZXh0cmEgbWV0aG9kczoiKTsKKyAgICAgIH0KKyAgICAg
IHRlc3RGYWlsZWQocHJvcGVydHlOYW1lKTsKKyAgICB9CisgIH0KKworICBpZiAoIWV4dGVuZGVk
KSB7CisgICAgdGVzdFBhc3NlZCgiTm8gZXh0cmEgbWV0aG9kcyBmb3VuZCBvbiBXZWJHTCBjb250
ZXh0LiIpOworICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9leHQtY29sb3ItYnVmZmVyLWhhbGYtZmxvYXQuanMg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9l
eHQtY29sb3ItYnVmZmVyLWhhbGYtZmxvYXQuanMKaW5kZXggOTNkZThiNjdlZmZkMTdhNTdhOWFh
ODgxOGViZDZhMWZmZDczNjZlOS4uNTE1MDllOGE2ZTQ2Y2U4MDE4NmQzYzI0MmIwY2YwYTA5NDNj
NDMzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvdGVzdHMvZXh0LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0LmpzCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2V4dC1jb2xv
ci1idWZmZXItaGFsZi1mbG9hdC5qcwpAQCAtMjQ0LDcgKzI0NCw3IEBAIGZ1bmN0aW9uIHJ1bklu
dGVybmFsRm9ybWF0UXVlcnlUZXN0KCkKICAgICBkZWJ1ZygidGVzdGluZyB0aGUgaW50ZXJuYWwg
Zm9ybWF0IHF1ZXJ5Iik7CiAKICAgICB2YXIgbWF4U2FtcGxlcyA9IGdsLmdldFBhcmFtZXRlcihn
bC5NQVhfU0FNUExFUyk7Ci0gICAgdmFyIGZvcm1hdHMgPSBuZXcgQXJyYXkoZ2wuUkdCQTE2Riwg
Z2wuUjE2RiwgZ2wuUkcxNkYpOworICAgIGNvbnN0IGZvcm1hdHMgPSBbZ2wuUkdCQTE2RiwgZ2wu
UjE2RiwgZ2wuUkcxNkZdOwogICAgIHZhciBmaXJzdE11bHRpT25seUZvcm1hdCA9IDQ7CiAgICAg
Zm9yICh2YXIgZm10ID0gMDsgZm10IDwgZm9ybWF0cy5sZW5ndGg7ICsrZm10KSB7CiAgICAgICAg
IHZhciBzYW1wbGVzID0gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBmb3JtYXRzW2ZtdF0sIGdsLlNBTVBMRVMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1j
YWxscy5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L3Rlc3RzL2dsLW9iamVjdC1nZXQtY2FsbHMuanMKaW5kZXggMjhkYzMwNTQ5NzZjZWFhNTM1ZmVm
ZTc0MjgxZDc3YmQ0Y2E3Mjg1MS4uYmQ5NzQzNGI3N2ZlNjg1OGI5Njc0Yzg0YjQ5ZDdhOWMwOWRm
NTdkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qcworKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9nbC1vYmplY3QtZ2V0LWNh
bGxzLmpzCkBAIC05LDI2ICs5LDMyIEBAIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgog
Ly8gb24gLS0gMSBmb3IgV2ViR0wgMS4wLCAyIGZvciBXZWJHTCAyLjAsIGV0Yy4KIAogInVzZSBz
dHJpY3QiOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworY29uc3Qgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7CiBkZXNjcmlwdGlvbigiVGVzdCBvZiBnZXQgY2FsbHMgYWdhaW5zdCBHTCBvYmplY3Rz
IGxpa2UgZ2V0QnVmZmVyUGFyYW1ldGVyLCBldGMuIik7CiAKLXZhciBnbCA9IHd0dS5jcmVhdGUz
RENvbnRleHQodW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHRWZXJzaW9uKTsKK2xldCBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQodW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHRWZXJzaW9u
KTsKIAotZnVuY3Rpb24gdGVzdEludmFsaWRBcmd1bWVudChmdW5jTmFtZSwgYXJndW1lbnROYW1l
LCB2YWxpZEFyZ3VtZW50QXJyYXksIGZ1bmMpIHsKLSAgdmFyIHZhbGlkQXJndW1lbnRzID0ge307
Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCB2YWxpZEFyZ3VtZW50QXJyYXkubGVuZ3RoOyArK2lp
KSB7Cithc3luYyBmdW5jdGlvbiB0ZXN0SW52YWxpZEFyZ3VtZW50KGZ1bmNOYW1lLCBhcmd1bWVu
dE5hbWUsIHZhbGlkQXJndW1lbnRBcnJheSwgZnVuYykgeworICBsZXQgdmFsaWRBcmd1bWVudHMg
PSB7fTsKKyAgZm9yIChsZXQgaWkgPSAwOyBpaSA8IHZhbGlkQXJndW1lbnRBcnJheS5sZW5ndGg7
ICsraWkpIHsKICAgICB2YWxpZEFyZ3VtZW50c1t2YWxpZEFyZ3VtZW50QXJyYXlbaWldXSA9IHRy
dWU7CiAgIH0KLSAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwg
MHgxMDAwMDsgKytpaSkgeworICBsZXQgc3VjY2VzcyA9IHRydWU7CisgIGNvbnN0IE1BWCA9IDB4
MTAwMDA7CisgIGNvbnN0IFNURVAgPSBNYXRoLmNlaWwoTUFYIC8gMTApOworICBmb3IgKGxldCBp
aSA9IDA7IGlpIDwgTUFYOyBpaSArPSAxKSB7CisgICAgaWYgKGlpICYmIGlpICUgU1RFUCA9PSAw
KSB7CisgICAgICBkZWJ1ZyhgKCR7aWl9IG9mICR7TUFYfTogJHsoaWkvTUFYKjEwMCkudG9GaXhl
ZCgxKX0lKWApOworICAgICAgYXdhaXQgd3R1LmRpc3BhdGNoUHJvbWlzZSgpOyAvLyBTcGluIHRo
ZSBldmVudCBsb29wLgorICAgIH0KICAgICBpZiAoIXZhbGlkQXJndW1lbnRzW2lpXSkgewotICAg
ICAgdmFyIHJlc3VsdCA9IGZ1bmMoaWkpOworICAgICAgbGV0IHJlc3VsdCA9IGZ1bmMoaWkpOwog
ICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgewogICAgICAgICBzdWNjZXNzID0gZmFsc2U7CiAg
ICAgICAgIHRlc3RGYWlsZWQoZnVuY05hbWUgKyAiIHJldHVybmVkICIgKyByZXN1bHQgKyAiIGlu
c3RlYWQgb2YgbnVsbCBmb3IgaW52YWxpZCAiICsgYXJndW1lbnROYW1lICsgIiBlbnVtOiAiICsg
d3R1LmdsRW51bVRvU3RyaW5nKGdsLCBpaSkpOwogICAgICAgICBicmVhazsKICAgICAgIH0KLSAg
ICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICAgICAgbGV0IGVyciA9IGdsLmdldEVycm9y
KCk7CiAgICAgICBpZiAoZXJyICE9IGdsLklOVkFMSURfRU5VTSkgewogICAgICAgICBzdWNjZXNz
ID0gZmFsc2U7CiAgICAgICAgIHRlc3RGYWlsZWQoZnVuY05hbWUgKyAiIGRpZCBub3QgZ2VuZXJh
dGUgSU5WQUxJRF9FTlVNIGZvciBpbnZhbGlkICIgKyBhcmd1bWVudE5hbWUgKyAiIGVudW06ICIg
KyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGlpKSk7CkBAIC00MSw3MiArNDcsNTggQEAgZnVuY3Rp
b24gdGVzdEludmFsaWRBcmd1bWVudChmdW5jTmFtZSwgYXJndW1lbnROYW1lLCB2YWxpZEFyZ3Vt
ZW50QXJyYXksIGZ1bmMpIHsKICAgfQogfQogCi1kZWJ1ZygiIik7Ci1kZWJ1ZygidGVzdCBnZXRC
dWZmZXJQYXJhbWV0ZXIiKTsKLS8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyCi12YXIgYnVmZmVy
VHlwZXMgPSBbZ2wuQVJSQVlfQlVGRkVSLCBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl07Ci1pZiAo
Y29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGJ1ZmZlclR5cGVzID0gYnVmZmVyVHlwZXMuY29uY2F0
KFtnbC5DT1BZX1JFQURfQlVGRkVSLCBnbC5DT1BZX1dSSVRFX0JVRkZFUiwgZ2wuUElYRUxfUEFD
S19CVUZGRVIsIGdsLlBJWEVMX1VOUEFDS19CVUZGRVIsIGdsLlRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVIsIGdsLlVOSUZPUk1fQlVGRkVSXSk7Ci19Ci1mb3IgKHZhciBiYiA9IDA7IGJiIDwgYnVm
ZmVyVHlwZXMubGVuZ3RoOyArK2JiKSB7Ci0gIHZhciBidWZmZXJUeXBlID0gYnVmZmVyVHlwZXNb
YmJdOwotICB2YXIgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIo
YnVmZmVyVHlwZSwgYnVmZmVyKTsKLSAgZ2wuYnVmZmVyRGF0YShidWZmZXJUeXBlLCAxNiwgZ2wu
RFlOQU1JQ19EUkFXKTsKLSAgdmFyIGV4cHJlc3Npb24xID0gImdsLmdldEJ1ZmZlclBhcmFtZXRl
cigiICsgYnVmZmVyVHlwZSArICIsIGdsLkJVRkZFUl9TSVpFKSI7Ci0gIHZhciBleHByZXNzaW9u
MiA9ICJnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoIiArIGJ1ZmZlclR5cGUgKyAiLCBnbC5CVUZGRVJf
VVNBR0UpIjsKLSAgc2hvdWxkQmUoZXhwcmVzc2lvbjEsICcxNicpOwotICBzaG91bGRCZShleHBy
ZXNzaW9uMiwgJ2dsLkRZTkFNSUNfRFJBVycpOwotICB0ZXN0SW52YWxpZEFyZ3VtZW50KCJnZXRC
dWZmZXJQYXJhbWV0ZXIiLCAicGFyYW1ldGVyIiwgW2dsLkJVRkZFUl9TSVpFLCBnbC5CVUZGRVJf
VVNBR0VdLCBmdW5jdGlvbihidWZmZXJUeXBlKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKHBhcmFt
ZXRlcikgewotICAgICAgcmV0dXJuIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihidWZmZXJUeXBlLCBw
YXJhbWV0ZXIpOwotICAgIH07Ci0gIH0oYnVmZmVyVHlwZSkpOwotICBnbC5iaW5kQnVmZmVyKGJ1
ZmZlclR5cGUsIG51bGwpOwotfQotdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAiZ2V0QnVmZmVy
UGFyYW1ldGVyIiwKLSAgICAidGFyZ2V0IiwKLSAgICBidWZmZXJUeXBlcywKLSAgICBmdW5jdGlv
bih0YXJnZXQpIHsKLSAgICAgIHJldHVybiBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBn
bC5CVUZGRVJfU0laRSk7Ci0gICAgfQotKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKKyhhc3luYyAoKSA9PiB7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoInRlc3QgZ2V0
QnVmZmVyUGFyYW1ldGVyIik7CisgIC8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyCisgIGxldCBi
dWZmZXJUeXBlcyA9IFtnbC5BUlJBWV9CVUZGRVIsIGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSXTsK
KyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGJ1ZmZlclR5cGVzID0gYnVmZmVyVHlw
ZXMuY29uY2F0KFtnbC5DT1BZX1JFQURfQlVGRkVSLCBnbC5DT1BZX1dSSVRFX0JVRkZFUiwgZ2wu
UElYRUxfUEFDS19CVUZGRVIsIGdsLlBJWEVMX1VOUEFDS19CVUZGRVIsIGdsLlRSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVIsIGdsLlVOSUZPUk1fQlVGRkVSXSk7CisgIH0KKyAgZm9yIChsZXQgYmIg
PSAwOyBiYiA8IGJ1ZmZlclR5cGVzLmxlbmd0aDsgKytiYikgeworICAgIGxldCBidWZmZXJUeXBl
ID0gYnVmZmVyVHlwZXNbYmJdOworICAgIGxldCBidWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsK
KyAgICBnbC5iaW5kQnVmZmVyKGJ1ZmZlclR5cGUsIGJ1ZmZlcik7CisgICAgZ2wuYnVmZmVyRGF0
YShidWZmZXJUeXBlLCAxNiwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICBsZXQgZXhwcmVzc2lvbjEg
PSAiZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKCIgKyBidWZmZXJUeXBlICsgIiwgZ2wuQlVGRkVSX1NJ
WkUpIjsKKyAgICBsZXQgZXhwcmVzc2lvbjIgPSAiZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKCIgKyBi
dWZmZXJUeXBlICsgIiwgZ2wuQlVGRkVSX1VTQUdFKSI7CisgICAgc2hvdWxkQmUoZXhwcmVzc2lv
bjEsICcxNicpOworICAgIHNob3VsZEJlKGV4cHJlc3Npb24yLCAnZ2wuRFlOQU1JQ19EUkFXJyk7
CisgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgInBh
cmFtZXRlciIsIFtnbC5CVUZGRVJfU0laRSwgZ2wuQlVGRkVSX1VTQUdFXSwgZnVuY3Rpb24oYnVm
ZmVyVHlwZSkgeworICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICBy
ZXR1cm4gZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKGJ1ZmZlclR5cGUsIHBhcmFtZXRlcik7CisgICAg
ICB9OworICAgIH0oYnVmZmVyVHlwZSkpOworICAgIGdsLmJpbmRCdWZmZXIoYnVmZmVyVHlwZSwg
bnVsbCk7CisgIH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICJnZXRCdWZm
ZXJQYXJhbWV0ZXIiLAorICAgICAgInRhcmdldCIsCisgICAgICBidWZmZXJUeXBlcywKKyAgICAg
IGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICByZXR1cm4gZ2wuZ2V0QnVmZmVyUGFyYW1ldGVy
KHRhcmdldCwgZ2wuQlVGRkVSX1NJWkUpOworICAgICAgfQorICApOworICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLXZhciB0ZXN0Q2FzZXMgPSBbCi0gIHsgY29udGV4
dFN0ZW5jaWw6IHRydWV9LAotICB7IGNvbnRleHRTdGVuY2lsOiBmYWxzZX0KLV07CisgIGxldCB0
ZXN0Q2FzZXMgPSBbCisgICAgeyBjb250ZXh0U3RlbmNpbDogdHJ1ZX0sCisgICAgeyBjb250ZXh0
U3RlbmNpbDogZmFsc2V9CisgIF07CiAKLWZvciAodmFyIHJ1biA9IDA7IHJ1biA8IHRlc3RDYXNl
cy5sZW5ndGg7ICsrcnVuKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoIlRlc3QgZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIHdpdGggc3RlbmNpbCAiICsgdGVzdENhc2VzW3J1bl0u
Y29udGV4dFN0ZW5jaWwpOworICBmb3IgKGxldCBydW4gPSAwOyBydW4gPCB0ZXN0Q2FzZXMubGVu
Z3RoOyArK3J1bikgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIgd2l0aCBzdGVuY2lsICIgKyB0ZXN0Q2FzZXNbcnVuXS5j
b250ZXh0U3RlbmNpbCk7CiAKLSAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7
Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHtzdGVuY2lsOiB0cnVlfSwgY29u
dGV4dFZlcnNpb24pOwotICB9IGVsc2UgewotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChu
dWxsLCB7c3RlbmNpbDogZmFsc2V9LCBjb250ZXh0VmVyc2lvbik7Ci0gIH0KKyAgICBpZiAodGVz
dENhc2VzW3J1bl0uY29udGV4dFN0ZW5jaWwpIHsKKyAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dChudWxsLCB7c3RlbmNpbDogdHJ1ZX0sIGNvbnRleHRWZXJzaW9uKTsKKyAgICB9IGVsc2Ug
eworICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG51bGwsIHtzdGVuY2lsOiBmYWxzZX0s
IGNvbnRleHRWZXJzaW9uKTsKKyAgICB9CiAKLSAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gIHZhciBhbm90aGVyVGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwKLSAgICAgICAgICAgICAgICBuZXcgVWludDhBcnJheShbCi0gICAgICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDI1NSwKLSAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LAot
ICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsCi0gICAgICAgICAgICAgICAg
ICAgIDAsIDAsIDAsIDI1NV0pKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgdmFyIGZyYW1lYnVmZmVyID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKTsKLSAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBm
cmFtZWJ1ZmZlcik7Ci0gIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7Ci0gIHZhciBj
b2xvckF0dGFjaG1lbnRzTnVtID0gMTsKLSAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJlKTsKKyAgICB3aW5k
b3cudGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICB3aW5kb3cuYW5vdGhlclRleHR1
cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgdGV4dHVyZSk7CiAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCAyLCAyLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAogICAgICAgICAgICAgICAgICAg
bmV3IFVpbnQ4QXJyYXkoWwogICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDI1NSwKQEAg
LTExNiw5NjAgKzEwOCw5ODMgQEAgZm9yICh2YXIgcnVuID0gMDsgcnVuIDwgdGVzdENhc2VzLmxl
bmd0aDsgKytydW4pIHsKICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBjb2xvckF0dGFjaG1lbnRzTnVtID0g
Z2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyk7Ci0gICAgZ2wuZnJhbWVi
dWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgY29s
b3JBdHRhY2htZW50c051bSAtIDEsIGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJlLCAwKTsK
LSAgfQotICB2YXIgcmVuZGVyYnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0gIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgZ2wuYmluZFJlbmRlcmJ1ZmZl
cihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7Ci0gIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLSAgaWYgKGNvbnRleHRWZXJzaW9uID09IDEpCi0gICAgZ2wucmVu
ZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX0NPTVBPTkVOVDE2LCAy
LCAyKTsKLSAgZWxzZQotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVS
LCBnbC5ERVBUSDI0X1NURU5DSUw4LCAyLCAyKTsKLSAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOwotICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwot
ICBpZiAoY29udGV4dFZlcnNpb24gPiAxKQotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwg
cmVuZGVyYnVmZmVyKTsKLSAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7Ci0gIC8vIFRoZSBmb3Ig
bG9vcCB0ZXN0cyB0d28gY29sb3IgYXR0YWNobWVudHMgZm9yIFdlYkdMIDI6IHRoZSBmaXJzdCBv
bmUgKGdsLkNPTE9SX0FUVEFDSE1FTlQwKQotICAvLyBhbmQgdGhlIGxhc3Qgb25lIChnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCArIGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyAtIDEpLgotICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgY29sb3JBdHRhY2htZW50c051bTsgaWkgKz0gKGNvbG9yQXR0YWNobWVu
dHNOdW0gPiAxID8gY29sb3JBdHRhY2htZW50c051bSAtIDEgOiAxKSkgewotICAgIHNob3VsZEJl
KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9PQkpFQ1RfVFlQRSknLCAnZ2wuVEVYVFVSRScpOwotICAgIGlmIChpaSA9PSAwKQotICAgICAg
c2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICd0ZXh0dXJlJyk7Ci0gICAgZWxzZQotICAgICAgc2hv
dWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX09CSkVDVF9OQU1FKScsICdhbm90aGVyVGV4dHVyZScpOwotICAgIHNob3VsZEJlKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9U
RVhUVVJFX0xFVkVMKScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAn
ICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFD
RSknLCAnMCcpOworICAgIHdpbmRvdy5mcmFtZWJ1ZmZlciA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCk7CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmcmFtZWJ1ZmZlcik7
CisgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKKyAgICBsZXQgY29sb3JBdHRh
Y2htZW50c051bSA9IDE7CiAgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICAgICAgc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9SRURfU0laRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5f
U0laRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBp
aSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFKScpOwotICAgICAgc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFKScpOwotICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9S
X0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01Q
T05FTlRfVFlQRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCAr
ICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7
Ci0gICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlFUiknLCAnMCcpOworICAgICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgYW5vdGhlclRleHR1cmUpOworICAgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyLCAyLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLAorICAgICAgICAgICAgICAgICAgICBuZXcgVWludDhBcnJheShbCisgICAgICAgICAg
ICAgICAgICAgICAgICAwLCAwLCAwLCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAyNTUs
IDI1NSwgMjU1LCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAy
NTUsCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAyNTVdKSk7CisgICAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElO
RUFSKTsKKyAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgbnVsbCk7CisgICAgICBjb2xvckF0dGFjaG1lbnRzTnVtID0gZ2wuZ2V0UGFyYW1ldGVyKGds
Lk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyk7CisgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyBjb2xvckF0dGFjaG1lbnRzTnVt
IC0gMSwgZ2wuVEVYVFVSRV8yRCwgYW5vdGhlclRleHR1cmUsIDApOwogICAgIH0KLSAgfQotICBz
aG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVD
VF9UWVBFKScsICdnbC5SRU5ERVJCVUZGRVInKTsKLSAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVO
VCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAncmVuZGVyYnVmZmVy
Jyk7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FU
VEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLlJF
TkRFUkJVRkZFUicpOwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAncmVuZGVyYnVmZmVyJyk7Ci0gICAgc2hv
dWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFKScsICdnbC5SRU5ERVJCVUZGRVInKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9T
VEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUp
JywgJ3JlbmRlcmJ1ZmZlcicpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5U
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVO
b25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVO
Q0lMX1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxkQmVOb25a
ZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5D
T0RJTkcpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICBzaG91bGRCZU5vblpl
cm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VO
Q09ESU5HKScpOwotICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURf
T1BFUkFUSU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX1NURU5D
SUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORykn
KTsKLSAgfQotICB2YXIgdmFsaWRQYXJhbWV0ZXJzRm9yRkJBdHRhY2htZW50ID0KLSAgICAgIFsg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSwKLSAgICAgICAgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSwKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9URVhUVVJFX0xFVkVMLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X1RFWFRVUkVfQ1VCRV9NQVBfRkFDRQotICAgICAgXTsKLSAgaWYgKGNvbnRleHRWZXJzaW9uID4g
MSkgewotICAgIHZhbGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCA9IHZhbGlkUGFyYW1ldGVy
c0ZvckZCQXR0YWNobWVudC5jb25jYXQoWwotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX1JFRF9TSVpFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJ
WkUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFLAotICAgICAg
ICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUsCi0gICAgICAgIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSwKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9TVEVOQ0lMX1NJWkUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
Q09NUE9ORU5UX1RZUEUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1Jf
RU5DT0RJTkcsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlF
UgotICAgIF0pOwotICB9Ci0gIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgICAiZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKLSAgICAgICJwYXJhbWV0ZXIiLAotICAgICAgdmFs
aWRQYXJhbWV0ZXJzRm9yRkJBdHRhY2htZW50LAotICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7
Ci0gICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQsIHBhcmFtZXRlcik7Ci0gICAgICB9Ci0g
ICk7Ci0gIHZhciB2YWxpZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQgPSBbZ2wuRlJBTUVCVUZGRVJd
OwotICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gICAgdmFsaWRUYXJnZXRzRm9yRkJBdHRh
Y2htZW50ID0gdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50LmNvbmNhdChbZ2wuUkVBRF9GUkFN
RUJVRkZFUiwgZ2wuRFJBV19GUkFNRUJVRkZFUl0pOwotICB9Ci0gIHRlc3RJbnZhbGlkQXJndW1l
bnQoCi0gICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKLSAgICAgICJ0
YXJnZXQiLAotICAgICAgdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50LAotICAgICAgZnVuY3Rp
b24odGFyZ2V0KSB7Ci0gICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIodGFyZ2V0LCBnbC5DT0xPUl9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX09CSkVDVF9UWVBFKTsKKyAgICB3aW5kb3cucmVuZGVyYnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OworICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIp
OworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBpZiAoY29u
dGV4dFZlcnNpb24gPT0gMSkKKyAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgMiwgMik7CisgICAgZWxzZQorICAgICAgZ2wu
cmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIMjRfU1RFTkNJTDgs
IDIsIDIpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBn
bC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNI
TUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOworICAgIGlmIChjb250ZXh0VmVy
c2lvbiA+IDEpCisgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7
CisgICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
JywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgLy8gVGhlIGZvciBsb29wIHRlc3Rz
IHR3byBjb2xvciBhdHRhY2htZW50cyBmb3IgV2ViR0wgMjogdGhlIGZpcnN0IG9uZSAoZ2wuQ09M
T1JfQVRUQUNITUVOVDApCisgICAgLy8gYW5kIHRoZSBsYXN0IG9uZSAoZ2wuQ09MT1JfQVRUQUNI
TUVOVDAgKyBnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMgLSAxKS4KKyAgICBmb3IgKGxldCBpaSA9
IDA7IGlpIDwgY29sb3JBdHRhY2htZW50c051bTsgaWkgKz0gKGNvbG9yQXR0YWNobWVudHNOdW0g
PiAxID8gY29sb3JBdHRhY2htZW50c051bSAtIDEgOiAxKSkgeworICAgICAgc2hvdWxkQmUoJ2ds
LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09M
T1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9UWVBFKScsICdnbC5URVhUVVJFJyk7CisgICAgICBpZiAoaWkgPT0gMCkKKyAgICAgICAg
c2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICd0ZXh0dXJlJyk7CisgICAgICBlbHNlCisgICAgICAg
IHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfTkFNRSknLCAnYW5vdGhlclRleHR1cmUnKTsKKyAgICAgIHNob3Vs
ZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9URVhUVVJFX0xFVkVMKScsICcwJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hN
RU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJF
X01BUF9GQUNFKScsICcwJyk7CisgICAgICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAg
ICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVy
bygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfR1JFRU5fU0laRSknKTsKKyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1F
TlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUpJyk7
CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcs
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSknKTsKKyAgICAgICAgc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9D
T0xPUl9FTkNPRElORyknKTsKKyAgICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAn
ICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVIpJywgJzAn
KTsKICAgICAgIH0KLSAgKTsKLSAgdmFyIHZhbGlkQXR0YWNobWVudHNGb3JGQkF0dGFjaG1lbnQg
PSBuZXcgQXJyYXkoCi0gICAgICBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwKLSAgICAgIGdsLkRFUFRI
X0FUVEFDSE1FTlQsCi0gICAgICBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsCi0gICAgICBnbC5ERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQKLSAgKTsKLSAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewot
ICAgIGZvciAodmFyIGlpID0gMTsgaWkgPCBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NPTE9SX0FU
VEFDSE1FTlRTKTsgKytpaSkgewotICAgICAgdmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVu
dFt2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50Lmxlbmd0aF0gPSBnbC5DT0xPUl9BVFRB
Q0hNRU5UMCArIGlpOwogICAgIH0KLSAgfQotICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAg
ImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCi0gICAgICAiYXR0YWNobWVudCIs
Ci0gICAgICB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50LAotICAgICAgZnVuY3Rpb24o
YXR0YWNobWVudCkgewotICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX09CSkVDVF9UWVBFKTsKLSAgICAgIH0KLSAgKTsKLSAgaWYgKGNvbnRleHRWZXJzaW9u
ID4gMSkgewotICAgIC8vIHRlc3QgZGVmYXVsdCBmcmFtZWJ1ZmZlcgotICAgIGdsLmJpbmRGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7Ci0gICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRF
Jyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRILCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5GUkFNRUJVRkZFUl9E
RUZBVUxUJyk7Ci0gICAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKQotICAgICAg
c2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkn
LCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNU
RU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLk5PTkUn
KTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9S
RURfU0laRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9HUkVFTl9TSVpFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2ds
LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFD
SywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFKScpOwotICAgIHNob3VsZEJl
Tm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5ERVBUSCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFKScpOwot
ICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBP
TkVOVF9UWVBFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICBzaG91bGRC
ZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcp
Jyk7Ci0gICAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7Ci0gICAgICBzaG91
bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFN
RUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJ
WkUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lM
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOwotICAgICAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIH0gZWxzZSB7Ci0gICAgICB3
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJ
TCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUpJyk7Ci0gICAgICB3dHUu
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKLSAgICAgIHd0dS5z
aG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgIHNob3VsZEJl
KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUp
JywgJ2dsLlJFTkRFUkJVRkZFUicpOworICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicpOwor
ICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRU
QUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuUkVO
REVSQlVGRkVSJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicpOworICAgICAg
c2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFKScsICdnbC5SRU5ERVJCVUZGRVInKTsKKyAgICAgIHNob3VsZEJlKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRF
UFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRSknLCAncmVuZGVyYnVmZmVyJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRU
QUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFKScpOworICAgICAg
c2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9TVEVOQ0lMX1NJWkUpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNI
TUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAg
IHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGds
LkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUxfQVRU
QUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAg
ICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOworICAgICAgc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9DT0xPUl9FTkNPRElORyknKTsKKyAgICB9CisgICAgbGV0IHZhbGlkUGFyYW1ldGVyc0Zv
ckZCQXR0YWNobWVudCA9CisgICAgICAgIFsgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpF
Q1RfVFlQRSwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1F
LAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTCwKKyAg
ICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRQor
ICAgICAgICBdOworICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIHZhbGlkUGFy
YW1ldGVyc0ZvckZCQXR0YWNobWVudCA9IHZhbGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudC5j
b25jYXQoWworICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUsCisg
ICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9TSVpFLAorICAgICAgICAg
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFLAorICAgICAgICAgIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0RFUFRIX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9TVEVOQ0lMX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01Q
T05FTlRfVFlQRSwKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VO
Q09ESU5HLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlF
UgorICAgICAgXSk7CiAgICAgfQotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgYXdhaXQg
dGVzdEludmFsaWRBcmd1bWVudCgKICAgICAgICAgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlciIsCiAgICAgICAgICJwYXJhbWV0ZXIiLAogICAgICAgICB2YWxpZFBhcmFtZXRlcnNG
b3JGQkF0dGFjaG1lbnQsCiAgICAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgewotICAgICAgICAg
IHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkJBQ0ssIHBhcmFtZXRlcik7CisgICAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVO
VCwgcGFyYW1ldGVyKTsKICAgICAgICAgfQogICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVu
dCgKKyAgICBsZXQgdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50ID0gW2dsLkZSQU1FQlVGRkVS
XTsKKyAgICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICB2YWxpZFRhcmdldHNGb3JG
QkF0dGFjaG1lbnQgPSB2YWxpZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQuY29uY2F0KFtnbC5SRUFE
X0ZSQU1FQlVGRkVSLCBnbC5EUkFXX0ZSQU1FQlVGRkVSXSk7CisgICAgfQorICAgIGF3YWl0IHRl
c3RJbnZhbGlkQXJndW1lbnQoCiAgICAgICAgICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIiLAogICAgICAgICAidGFyZ2V0IiwKICAgICAgICAgdmFsaWRUYXJnZXRzRm9yRkJBdHRh
Y2htZW50LAogICAgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAgICAgICByZXR1cm4gZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdldCwgZ2wuQkFDSywgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7CisgICAgICAgICAgcmV0dXJuIGdsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGdsLkNPTE9SX0FUVEFDSE1F
TlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpOwogICAgICAgICB9CiAg
ICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgIGxldCB2YWxpZEF0dGFjaG1lbnRz
Rm9yRkJBdHRhY2htZW50ID0gbmV3IEFycmF5KAorICAgICAgICBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwKKyAgICAgICAgZ2wuREVQVEhfQVRUQUNITUVOVCwKKyAgICAgICAgZ2wuU1RFTkNJTF9BVFRB
Q0hNRU5ULAorICAgICAgICBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKKyAgICApOworICAg
IGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIGZvciAobGV0IGlpID0gMTsgaWkgPCBn
bC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NPTE9SX0FUVEFDSE1FTlRTKTsgKytpaSkgeworICAgICAg
ICB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50W3ZhbGlkQXR0YWNobWVudHNGb3JGQkF0
dGFjaG1lbnQubGVuZ3RoXSA9IGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgaWk7CisgICAgICB9Cisg
ICAgfQorICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCiAgICAgICAgICJnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLAogICAgICAgICAiYXR0YWNobWVudCIsCi0gICAgICAg
IFsgZ2wuQkFDSywKLSAgICAgICAgICBnbC5ERVBUSCwKLSAgICAgICAgICBnbC5TVEVOQ0lMCi0g
ICAgICAgIF0sCisgICAgICAgIHZhbGlkQXR0YWNobWVudHNGb3JGQkF0dGFjaG1lbnQsCiAgICAg
ICAgIGZ1bmN0aW9uKGF0dGFjaG1lbnQpIHsKICAgICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKICAgICAgICAgfQogICAgICk7Ci0g
IH0KLX0KLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotZGVidWcoIiIp
OwotZGVidWcoInRlc3QgZ2V0QXR0YWNoZWRTaGFkZXJzIik7Ci12YXIgc3RhbmRhcmRWZXJ0ID0g
d3R1LmxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcihnbCk7Ci12YXIgc3RhbmRhcmRGcmFnID0gd3R1
LmxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGdsKTsKLXZhciBzdGFuZGFyZFByb2dyYW0gPSBn
bC5jcmVhdGVQcm9ncmFtKCk7Ci1nbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQcm9ncmFtLCBzdGFu
ZGFyZFZlcnQpOwotZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwgc3RhbmRhcmRGcmFn
KTsKLWdsLmxpbmtQcm9ncmFtKHN0YW5kYXJkUHJvZ3JhbSk7Ci12YXIgc2hhZGVycyA9IGdsLmdl
dEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFByb2dyYW0pOwotc2hvdWxkQmUoJ3NoYWRlcnMubGVu
Z3RoJywgJzInKTsKLXNob3VsZEJlVHJ1ZSgnc2hhZGVyc1swXSA9PSBzdGFuZGFyZFZlcnQgJiYg
c2hhZGVyc1sxXSA9PSBzdGFuZGFyZEZyYWcgfHwgc2hhZGVyc1sxXSA9PSBzdGFuZGFyZFZlcnQg
JiYgc2hhZGVyc1swXSA9PSBzdGFuZGFyZEZyYWcnKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLXNob3VsZFRocm93KCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMobnVsbCkn
KTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLXNob3VsZFRocm93KCdn
bC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRWZXJ0KScpOwotd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRQcm9ncmFt
UGFyYW1ldGVyIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFBy
b2dyYW0sIGdsLkRFTEVURV9TVEFUVVMpJywgJ2ZhbHNlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7
Ci1zaG91bGRCZSgndHlwZW9mIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFt
LCBnbC5WQUxJREFURV9TVEFUVVMpJywgJyJib29sZWFuIicpOwotc2hvdWxkQmUoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BVFRBQ0hFRF9TSEFERVJTKScsICcy
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGds
LkFDVElWRV9BVFRSSUJVVEVTKScsICcyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFDVElWRV9VTklGT1JNUyknLCAnMScpOwotaWYgKGNv
bnRleHRWZXJzaW9uID4gMSkgewotICB2YXIgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0g
IGdsLmJpbmRCdWZmZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgYnVmZmVyKTsKLSAg
Z2wuYnVmZmVyRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCAxMDI0LCBnbC5EWU5B
TUlDX0RSQVcpOwotICB2YXIgdW5pZm9ybUJsb2NrUHJvZ3JhbSA9IHd0dS5sb2FkVW5pZm9ybUJs
b2NrUHJvZ3JhbShnbCk7Ci0gIHZhciB0cmFuc2Zvcm1GZWVkYmFja1ZhcnMgPSBbIm5vcm1hbCIs
ICJlY1Bvc2l0aW9uIl07Ci0gIGdsLnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3ModW5pZm9ybUJs
b2NrUHJvZ3JhbSwgdHJhbnNmb3JtRmVlZGJhY2tWYXJzLCBnbC5JTlRFUkxFQVZFRF9BVFRSSUJT
KTsKLSAgZ2wubGlua1Byb2dyYW0odW5pZm9ybUJsb2NrUHJvZ3JhbSk7Ci0gIHNob3VsZEJlKCdn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLkxJTktfU1RBVFVT
KScsICd0cnVlJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7
Ci0gIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0s
IGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUyknLCAnMScpOwotICBzaG91bGRCZSgnZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
VkFSWUlOR1MpJywgJzInKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodW5p
Zm9ybUJsb2NrUHJvZ3JhbSwgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9NT0RFKScsICdn
bC5JTlRFUkxFQVZFRF9BVFRSSUJTJyk7Ci19Ci12YXIgcHJvZ3JhbSA9IHN0YW5kYXJkUHJvZ3Jh
bTsKLXZhciB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlciA9IFsKLSAgICBnbC5ERUxFVEVf
U1RBVFVTLAotICAgIGdsLkxJTktfU1RBVFVTLAotICAgIGdsLlZBTElEQVRFX1NUQVRVUywKLSAg
ICBnbC5BVFRBQ0hFRF9TSEFERVJTLAotICAgIGdsLkFDVElWRV9BVFRSSUJVVEVTLAotICAgIGds
LkFDVElWRV9VTklGT1JNUwotXTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFsaWRB
cnJheUZvclByb2dyYW1QYXJhbWV0ZXIgPSB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlci5j
b25jYXQoWwotICAgICAgZ2wuQUNUSVZFX1VOSUZPUk1fQkxPQ0tTLAotICAgICAgZ2wuVFJBTlNG
T1JNX0ZFRURCQUNLX1ZBUllJTkdTLAotICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFCi0gIF0pOwotICBwcm9ncmFtID0gdW5pZm9ybUJsb2NrUHJvZ3JhbTsKLX0KLXRlc3RJ
bnZhbGlkQXJndW1lbnQoCi0gICAgImdldFByb2dyYW1QYXJhbWV0ZXIiLAotICAgICJwYXJhbWV0
ZXIiLAotICAgIHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVyLAotICAgIGZ1bmN0aW9uKHBh
cmFtZXRlcikgewotICAgICAgcmV0dXJuIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwg
cGFyYW1ldGVyKTsKLSAgICB9Ci0pOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIi
KTsKLXNob3VsZEJlKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpJywgJzInKTsKLXNob3VsZEJlKCdnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hUKScs
ICcyJyk7Ci0vLyBOb3RlOiB3ZSBjYW4ndCB0ZXN0IHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlIGlu
dGVybmFsIGZvcm1hdCBzaW5jZQotLy8gdGhlIGltcGxlbWVudGF0aW9uIGlzIGFsbG93ZWQgdG8g
Y2hhbmdlIGl0Lgotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKScpOwotc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSknKTsKLXZhciBjb2xvcmJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwotZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7Ci13
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1nbC5yZW5kZXJidWZmZXJTdG9y
YWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDIsIDIpOwotc2hvdWxkQmVOb25aZXJvKCdn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfUkVEX1NJWkUpJyk7Ci1zaG91bGRCZU5vblplcm8oJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFt
ZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKScpOwotc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKScpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQ
SEFfU0laRSknKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZU11bHRpc2FtcGxlKGdsLlJFTkRFUkJVRkZFUiwgNCwgZ2wuUkdCQTQsIDIsIDIpOwot
ICBzaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX1NBTVBMRVMpJywgJzQnKTsKLX0KLXZhciB2YWxpZEFycmF5Rm9yUmVu
ZGVyYnVmZmVyID0gbmV3IEFycmF5KAotICAgIGdsLlJFTkRFUkJVRkZFUl9XSURUSCwKLSAgICBn
bC5SRU5ERVJCVUZGRVJfSEVJR0hULAotICAgIGdsLlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JN
QVQsCi0gICAgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFLAotICAgIGdsLlJFTkRFUkJVRkZFUl9H
UkVFTl9TSVpFLAotICAgIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUsCi0gICAgZ2wuUkVOREVS
QlVGRkVSX0FMUEhBX1NJWkUsCi0gICAgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUsCi0gICAg
Z2wuUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRQotKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEp
IHsKLSAgdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZlclt2YWxpZEFycmF5Rm9yUmVuZGVyYnVmZmVy
Lmxlbmd0aF0gPSBnbC5SRU5ERVJCVUZGRVJfU0FNUExFUzsKLX0KLXRlc3RJbnZhbGlkQXJndW1l
bnQoCi0gICAgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsCi0gICAgInBhcmFtZXRlciIsCi0g
ICAgdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZlciwKLSAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsK
LSAgICAgIHJldHVybiBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBwYXJhbWV0ZXIpOwotICAgIH0pOwotdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAiZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyIiwKLSAgICAidGFyZ2V0IiwKLSAgICBbIGdsLlJFTkRFUkJVRkZF
UiBdLAotICAgIGZ1bmN0aW9uKHRhcmdldCkgewotICAgICAgcmV0dXJuIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcih0YXJnZXQsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCk7Ci0gICAgfQotKTsK
LXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotZGVidWcoIiIpOwotZGVi
dWcoIlRlc3QgZ2V0U2hhZGVyUGFyYW1ldGVyIik7Ci1zaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFy
YW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuU0hBREVSX1RZUEUpJywgJ2dsLlZFUlRFWF9TSEFERVIn
KTsKLXNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBnbC5ERUxF
VEVfU1RBVFVTKScsICdmYWxzZScpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFtZXRlcihz
dGFuZGFyZFZlcnQsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7Ci10ZXN0SW52YWxpZEFy
Z3VtZW50KAotICAgICJnZXRTaGFkZXJQYXJhbWV0ZXIiLAotICAgICJwYXJhbWV0ZXIiLAotICAg
IFsgZ2wuREVMRVRFX1NUQVRVUywKLSAgICAgIGdsLkNPTVBJTEVfU1RBVFVTLAotICAgICAgZ2wu
U0hBREVSX1RZUEUKLSAgICBdLAotICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgewotICAgICAgcmV0
dXJuIGdsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIHBhcmFtZXRlcik7CisgICAg
aWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgICAgLy8gdGVzdCBkZWZhdWx0IGZyYW1lYnVm
ZmVyCisgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOworICAg
ICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywg
J2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5GUkFNRUJVRkZFUl9ERUZBVUxU
Jyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpF
Q1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcpOworICAgICAgaWYgKHRlc3RDYXNl
c1tydW5dLmNvbnRleHRTdGVuY2lsKQorICAgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5GUkFNRUJVRkZFUl9ERUZBVUxU
Jyk7CisgICAgICBlbHNlCisgICAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLk5PTkUnKTsKKyAgICAgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFKScpOworICAgICAg
c2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0la
RSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0JMVUVfU0laRSknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2ds
LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQ
VEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSknKTsKKyAgICAgIHNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBF
KScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgsIGdsLkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAgICBzaG91bGRCZU5v
blplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7
CisgICAgICBpZiAodGVzdENhc2VzW3J1bl0uY29udGV4dFN0ZW5jaWwpIHsKKyAgICAgICAgc2hv
dWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9T
SVpFKScpOworICAgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNU
RU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAg
ICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICAgIH0gZWxzZSB7
CisgICAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1NURU5DSUxfU0laRSknKTsK
KyAgICAgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJ
T04sICdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7
CisgICAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScp
OworICAgICAgfQorICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKKyAgICAgICAgICAicGFyYW1ldGVy
IiwKKyAgICAgICAgICB2YWxpZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQsCisgICAgICAgICAg
ZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBwYXJhbWV0ZXIp
OworICAgICAgICAgIH0KKyAgICAgICk7CisgICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50
KAorICAgICAgICAgICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLAorICAgICAg
ICAgICJ0YXJnZXQiLAorICAgICAgICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudCwKKyAg
ICAgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKKyAgICAgICAgICB9CisgICAgICApOworICAgICAg
YXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAiZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyIiwKKyAgICAgICAgICAiYXR0YWNobWVudCIsCisgICAgICAgICAgWyBn
bC5CQUNLLAorICAgICAgICAgICAgZ2wuREVQVEgsCisgICAgICAgICAgICBnbC5TVEVOQ0lMCisg
ICAgICAgICAgXSwKKyAgICAgICAgICBmdW5jdGlvbihhdHRhY2htZW50KSB7CisgICAgICAgICAg
ICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBhdHRhY2htZW50LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsK
KyAgICAgICAgICB9CisgICAgICApOwogICAgIH0KLSk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CisgIH0KKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwogCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRUZXhQYXJhbWV0ZXIiKTsKLWdsLmJp
bmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIpOwotZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9U
T19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1QsIGdsLkNMQU1QX1RPX0VER0UpOwotc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIpJywgJ2dsLk5FQVJFU1QnKTsKLXNob3Vs
ZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSKScsICdnbC5ORUFSRVNUJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci1zaG91
bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9U
KScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9CQVNFX0xFVkVMLCAwKTsK
LSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVfRlVO
QywgZ2wuTEVRVUFMKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX0NPTVBBUkVfTU9ERSwgZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRSk7Ci0gIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTEVWRUwsIDEwKTsKLSAgZ2wu
dGV4UGFyYW1ldGVyZihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BWF9MT0QsIDEwKTsKLSAg
Z2wudGV4UGFyYW1ldGVyZihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9MT0QsIDApOwot
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9SLCBnbC5D
TEFNUF9UT19FREdFKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX0JBU0VfTEVWRUwpJywgJzAnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRl
eFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQyknLCAnZ2wu
TEVRVUFMJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9DT01QQVJFX01PREUpJywgJ2dsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsK
LSAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01BWF9MRVZFTCknLCAnMTAnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BWF9MT0QpJywgJzEwJyk7Ci0gIHNob3VsZEJlKCdnbC5n
ZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9EKScsICcwJyk7
Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9XUkFQX1IpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFRleFBh
cmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0lNTVVUQUJMRV9GT1JNQVQpJywgJ2Zh
bHNlJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9JTU1VVEFCTEVfTEVWRUxTKScsICcwJyk7Ci19Ci12YXIgdmFsaWRQYXJhbWV0ZXJz
Rm9yVGV4dHVyZSA9IFsKLSAgICBnbC5URVhUVVJFX01BR19GSUxURVIsCi0gICAgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLAotICAgIGdsLlRFWFRVUkVfV1JBUF9TLAotICAgIGdsLlRFWFRVUkVfV1JB
UF9ULAotXTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFsaWRQYXJhbWV0ZXJzRm9y
VGV4dHVyZSA9IHZhbGlkUGFyYW1ldGVyc0ZvclRleHR1cmUuY29uY2F0KFsKLSAgICAgIGdsLlRF
WFRVUkVfQkFTRV9MRVZFTCwKLSAgICAgIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLAotICAgICAg
Z2wuVEVYVFVSRV9DT01QQVJFX01PREUsCi0gICAgICBnbC5URVhUVVJFX01BWF9MRVZFTCwKLSAg
ICAgIGdsLlRFWFRVUkVfTUFYX0xPRCwKLSAgICAgIGdsLlRFWFRVUkVfTUlOX0xPRCwKLSAgICAg
IGdsLlRFWFRVUkVfV1JBUF9SLAotICAgICAgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFULAot
ICAgICAgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfTEVWRUxTLAotICBdKTsKLX0KLXRlc3RJbnZhbGlk
QXJndW1lbnQoCi0gICAgImdldFRleFBhcmFtZXRlciIsCi0gICAgInBhcmFtZXRlciIsCi0gICAg
dmFsaWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSwKLSAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAg
ICAgIHJldHVybiBnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgcGFyYW1ldGVyKTsK
LSAgICB9Ci0pOwotdmFyIHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUgPSBbIGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfQ1VCRV9NQVBdOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICB2YWxp
ZFRhcmdldHNGb3JUZXh0dXJlID0gdmFsaWRUYXJnZXRzRm9yVGV4dHVyZS5jb25jYXQoWyBnbC5U
RVhUVVJFXzNELCBnbC5URVhUVVJFXzJEX0FSUkFZXSk7Ci19Ci10ZXN0SW52YWxpZEFyZ3VtZW50
KAotICAgICJnZXRUZXhQYXJhbWV0ZXIiLAotICAgICJ0YXJnZXQiLAotICAgIHZhbGlkVGFyZ2V0
c0ZvclRleHR1cmUsCi0gICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICByZXR1cm4gZ2wuZ2V0
VGV4UGFyYW1ldGVyKHRhcmdldCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKTsKLSAgICB9Ci0pOwot
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBkZWJ1ZygiIik7CisgIGRl
YnVnKCJ0ZXN0IGdldEF0dGFjaGVkU2hhZGVycyIpOworICB3aW5kb3cuc3RhbmRhcmRWZXJ0ID0g
d3R1LmxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcihnbCk7CisgIHdpbmRvdy5zdGFuZGFyZEZyYWcg
PSB3dHUubG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIoZ2wpOworICB3aW5kb3cuc3RhbmRhcmRQ
cm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQ
cm9ncmFtLCBzdGFuZGFyZFZlcnQpOworICBnbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQcm9ncmFt
LCBzdGFuZGFyZEZyYWcpOworICBnbC5saW5rUHJvZ3JhbShzdGFuZGFyZFByb2dyYW0pOworICB3
aW5kb3cuc2hhZGVycyA9IGdsLmdldEF0dGFjaGVkU2hhZGVycyhzdGFuZGFyZFByb2dyYW0pOwor
ICBzaG91bGRCZSgnc2hhZGVycy5sZW5ndGgnLCAnMicpOworICBzaG91bGRCZVRydWUoJ3NoYWRl
cnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8IHNo
YWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFnJyk7
CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgc2hvdWxkVGhyb3co
J2dsLmdldEF0dGFjaGVkU2hhZGVycyhudWxsKScpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CisgIHNob3VsZFRocm93KCdnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3Rh
bmRhcmRWZXJ0KScpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAK
LWRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0IGdldFVuaWZvcm0gd2l0aCBhbGwgdmFyaWFudHMgb2Yg
ZGF0YSB0eXBlcyIpOwotZGVidWcoIkJvb2xlYW4gdW5pZm9ybSB2YXJpYWJsZXMiKTsKLXZhciBi
b29sUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2Vz
L2Jvb2xVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hh
ZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGJvb2xQcm9ncmFt
LCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIGJ2YWxMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsIik7Ci12YXIgYnZhbDJMb2MgPSBnbC5nZXRVbmlm
b3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsMiIpOwotdmFyIGJ2YWwzTG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDMiKTsKLXZhciBidmFsNExvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWw0Iik7Ci1nbC51c2VQcm9ncmFt
KGJvb2xQcm9ncmFtKTsKLWdsLnVuaWZvcm0xaShidmFsTG9jLCAxKTsKLWdsLnVuaWZvcm0yaShi
dmFsMkxvYywgMSwgMCk7Ci1nbC51bmlmb3JtM2koYnZhbDNMb2MsIDEsIDAsIDEpOwotZ2wudW5p
Zm9ybTRpKGJ2YWw0TG9jLCAxLCAwLCAxLCAwKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsTG9j
KScsICd0cnVlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbDJM
b2MpJywgJ1t0cnVlLCBmYWxzZV0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9n
cmFtLCBidmFsM0xvYyknLCAnW3RydWUsIGZhbHNlLCB0cnVlXScpOwotc2hvdWxkQmUoJ2dsLmdl
dFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWw0TG9jKScsICdbdHJ1ZSwgZmFsc2UsIHRydWUsIGZh
bHNlXScpOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBkZWJ1Zygi
Iik7CisgIGRlYnVnKCJUZXN0IGdldFByb2dyYW1QYXJhbWV0ZXIiKTsKKyAgc2hvdWxkQmUoJ2ds
LmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5ERUxFVEVfU1RBVFVTKScs
ICdmYWxzZScpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7CisgIHNob3VsZEJlKCd0eXBlb2YgZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLlZBTElEQVRFX1NUQVRVUykn
LCAnImJvb2xlYW4iJyk7CisgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5k
YXJkUHJvZ3JhbSwgZ2wuQVRUQUNIRURfU0hBREVSUyknLCAnMicpOworICBzaG91bGRCZSgnZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dyYW0sIGdsLkFDVElWRV9BVFRSSUJVVEVT
KScsICcyJyk7CisgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJv
Z3JhbSwgZ2wuQUNUSVZFX1VOSUZPUk1TKScsICcxJyk7CisgIGlmIChjb250ZXh0VmVyc2lvbiA+
IDEpIHsKKyAgICBsZXQgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1
ZmZlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCBidWZmZXIpOworICAgIGdsLmJ1ZmZl
ckRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMTAyNCwgZ2wuRFlOQU1JQ19EUkFX
KTsKKyAgICB3aW5kb3cudW5pZm9ybUJsb2NrUHJvZ3JhbSA9IHd0dS5sb2FkVW5pZm9ybUJsb2Nr
UHJvZ3JhbShnbCk7CisgICAgbGV0IHRyYW5zZm9ybUZlZWRiYWNrVmFycyA9IFsibm9ybWFsIiwg
ImVjUG9zaXRpb24iXTsKKyAgICBnbC50cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKHVuaWZvcm1C
bG9ja1Byb2dyYW0sIHRyYW5zZm9ybUZlZWRiYWNrVmFycywgZ2wuSU5URVJMRUFWRURfQVRUUklC
Uyk7CisgICAgZ2wubGlua1Byb2dyYW0odW5pZm9ybUJsb2NrUHJvZ3JhbSk7CisgICAgc2hvdWxk
QmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodW5pZm9ybUJsb2NrUHJvZ3JhbSwgZ2wuTElOS19T
VEFUVVMpJywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5OT19F
UlJPUicpOworICAgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9j
a1Byb2dyYW0sIGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUyknLCAnMScpOworICAgIHNob3VsZEJl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLlRSQU5TRk9S
TV9GRUVEQkFDS19WQVJZSU5HUyknLCAnMicpOworICAgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFt
UGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfTU9ERSknLCAnZ2wuSU5URVJMRUFWRURfQVRUUklCUycpOworICB9CisgIHdpbmRvdy5wcm9n
cmFtID0gc3RhbmRhcmRQcm9ncmFtOworICBsZXQgdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0
ZXIgPSBbCisgICAgICBnbC5ERUxFVEVfU1RBVFVTLAorICAgICAgZ2wuTElOS19TVEFUVVMsCisg
ICAgICBnbC5WQUxJREFURV9TVEFUVVMsCisgICAgICBnbC5BVFRBQ0hFRF9TSEFERVJTLAorICAg
ICAgZ2wuQUNUSVZFX0FUVFJJQlVURVMsCisgICAgICBnbC5BQ1RJVkVfVU5JRk9STVMKKyAgXTsK
KyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFy
YW1ldGVyID0gdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIuY29uY2F0KFsKKyAgICAgICAg
Z2wuQUNUSVZFX1VOSUZPUk1fQkxPQ0tTLAorICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
VkFSWUlOR1MsCisgICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERQorICAg
IF0pOworICAgIHByb2dyYW0gPSB1bmlmb3JtQmxvY2tQcm9ncmFtOworICB9CisgIGF3YWl0IHRl
c3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsCisgICAgICAi
cGFyYW1ldGVyIiwKKyAgICAgIHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVyLAorICAgICAg
ZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgIHJldHVybiBnbC5nZXRQcm9ncmFtUGFyYW1l
dGVyKHByb2dyYW0sIHBhcmFtZXRlcik7CisgICAgICB9CisgICk7CisgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIkludGVnZXIgdW5pZm9ybSB2YXJpYWJs
ZXMiKTsKLXZhciBpbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8u
Li9yZXNvdXJjZXMvaW50VW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29w
VW5pZm9ybVNoYWRlci5mcmFnIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihp
bnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIGl2YWxMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWwiKTsKLXZhciBpdmFsMkxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbDIiKTsKLXZhciBpdmFsM0xvYyA9
IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbDMiKTsKLXZhciBpdmFsNExv
YyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbDQiKTsKLWdsLnVzZVBy
b2dyYW0oaW50UHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoaXZhbExvYywgMSk7Ci1nbC51bmlmb3Jt
MmkoaXZhbDJMb2MsIDIsIDMpOwotZ2wudW5pZm9ybTNpKGl2YWwzTG9jLCA0LCA1LCA2KTsKLWds
LnVuaWZvcm00aShpdmFsNExvYywgNywgOCwgOSwgMTApOwotd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZh
bExvYyknLCAnMScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZhbDJM
b2MpJywgJ1syLCAzXScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZh
bDNMb2MpJywgJ1s0LCA1LCA2XScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oaW50UHJvZ3Jh
bSwgaXZhbDRMb2MpJywgJ1s3LCA4LCA5LCAxMF0nKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIiKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihn
bC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCknLCAnMicpOworICBzaG91bGRC
ZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVS
QlVGRkVSX0hFSUdIVCknLCAnMicpOworICAvLyBOb3RlOiB3ZSBjYW4ndCB0ZXN0IHRoZSBhY3R1
YWwgdmFsdWUgb2YgdGhlIGludGVybmFsIGZvcm1hdCBzaW5jZQorICAvLyB0aGUgaW1wbGVtZW50
YXRpb24gaXMgYWxsb3dlZCB0byBjaGFuZ2UgaXQuCisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lO
VEVSTkFMX0ZPUk1BVCknKTsKKyAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSknKTsK
KyAgbGV0IGNvbG9yYnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7CisgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5S
RU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKKyAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGds
LlJHQkE0LCAyLCAyKTsKKyAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpJyk7CisgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpJyk7CisgIHNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVS
X0JMVUVfU0laRSknKTsKKyAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSknKTsKKyAg
aWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0
aXNhbXBsZShnbC5SRU5ERVJCVUZGRVIsIDQsIGdsLlJHQkE0LCAyLCAyKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVS
QlVGRkVSX1NBTVBMRVMpJywgJzQnKTsKKyAgfQorICBsZXQgdmFsaWRBcnJheUZvclJlbmRlcmJ1
ZmZlciA9IG5ldyBBcnJheSgKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9XSURUSCwKKyAgICAgIGds
LlJFTkRFUkJVRkZFUl9IRUlHSFQsCisgICAgICBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9S
TUFULAorICAgICAgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFLAorICAgICAgZ2wuUkVOREVSQlVG
RkVSX0dSRUVOX1NJWkUsCisgICAgICBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFLAorICAgICAg
Z2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUsCisgICAgICBnbC5SRU5ERVJCVUZGRVJfREVQVEhf
U0laRSwKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUKKyAgKTsKKyAgaWYgKGNv
bnRleHRWZXJzaW9uID4gMSkgeworICAgIHZhbGlkQXJyYXlGb3JSZW5kZXJidWZmZXJbdmFsaWRB
cnJheUZvclJlbmRlcmJ1ZmZlci5sZW5ndGhdID0gZ2wuUkVOREVSQlVGRkVSX1NBTVBMRVM7Cisg
IH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICJnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIiLAorICAgICAgInBhcmFtZXRlciIsCisgICAgICB2YWxpZEFycmF5Rm9yUmVuZGVy
YnVmZmVyLAorICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgIHJldHVybiBnbC5n
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBwYXJhbWV0ZXIpOworICAg
ICAgfSk7CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyIiwKKyAgICAgICJ0YXJnZXQiLAorICAgICAgWyBnbC5SRU5ERVJCVUZGRVIg
XSwKKyAgICAgIGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICByZXR1cm4gZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKTsKKyAgICAgIH0K
KyAgKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogCi1kZWJ1Zygi
RmxvYXQgdW5pZm9ybSB2YXJpYWJsZXMiKTsKLXZhciBmbG9hdFByb2dyYW0gPSB3dHUubG9hZFBy
b2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIudmVy
dCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOwotc2hvdWxkQmUo
J2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoZmxvYXRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAn
dHJ1ZScpOwotdmFyIGZ2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFt
LCAiZnZhbCIpOwotdmFyIGZ2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJv
Z3JhbSwgImZ2YWwyIik7Ci12YXIgZnZhbDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxv
YXRQcm9ncmFtLCAiZnZhbDMiKTsKLXZhciBmdmFsNExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihmbG9hdFByb2dyYW0sICJmdmFsNCIpOwotZ2wudXNlUHJvZ3JhbShmbG9hdFByb2dyYW0pOwot
Z2wudW5pZm9ybTFmKGZ2YWxMb2MsIDExKTsKLWdsLnVuaWZvcm0yZihmdmFsMkxvYywgMTIsIDEz
KTsKLWdsLnVuaWZvcm0zZihmdmFsM0xvYywgMTQsIDE1LCAxNik7Ci1nbC51bmlmb3JtNGYoZnZh
bDRMb2MsIDE3LCAxOCwgMTksIDIwKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbExvYyknLCAn
MTEnKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDJMb2MpJywg
J1sxMiwgMTNdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwz
TG9jKScsICdbMTQsIDE1LCAxNl0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJv
Z3JhbSwgZnZhbDRMb2MpJywgJ1sxNywgMTgsIDE5LCAyMF0nKTsKLXd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBnZXRTaGFk
ZXJQYXJhbWV0ZXIiKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFy
ZFZlcnQsIGdsLlNIQURFUl9UWVBFKScsICdnbC5WRVJURVhfU0hBREVSJyk7CisgIHNob3VsZEJl
KCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBnbC5ERUxFVEVfU1RBVFVTKScs
ICdmYWxzZScpOworICBzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVy
dCwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsKKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1
bWVudCgKKyAgICAgICJnZXRTaGFkZXJQYXJhbWV0ZXIiLAorICAgICAgInBhcmFtZXRlciIsCisg
ICAgICBbIGdsLkRFTEVURV9TVEFUVVMsCisgICAgICAgIGdsLkNPTVBJTEVfU1RBVFVTLAorICAg
ICAgICBnbC5TSEFERVJfVFlQRQorICAgICAgXSwKKyAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikg
eworICAgICAgICByZXR1cm4gZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgcGFy
YW1ldGVyKTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IpOwogCi1kZWJ1ZygiU2FtcGxlciB1bmlmb3JtIHZhcmlhYmxlcyIpOwotdmFyIHNhbXBs
ZXJQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMv
bm9vcFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvc2FtcGxlclVuaWZvcm1T
aGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc2FtcGxlclBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci12YXIgczJEVmFsTG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJQcm9ncmFtLCAiczJEIik7Ci12YXIgc0N1YmVWYWxMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oc2FtcGxlclByb2dyYW0sICJzQ3ViZSIpOwotZ2wudXNl
UHJvZ3JhbShzYW1wbGVyUHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoczJEVmFsTG9jLCAwKTsKLWds
LnVuaWZvcm0xaShzQ3ViZVZhbExvYywgMSk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyUHJvZ3JhbSwgczJEVmFs
TG9jKScsICcwJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyUHJvZ3JhbSwgc0N1
YmVWYWxMb2MpJywgJzEnKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
KyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBnZXRUZXhQYXJhbWV0ZXIiKTsKKyAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJF
U1QpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9T
LCBnbC5DTEFNUF9UT19FREdFKTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgIHNob3VsZEJlKCdnbC5nZXRU
ZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKScsICdnbC5O
RUFSRVNUJyk7CisgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7CisgIHNob3VsZEJlKCdnbC5n
ZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MpJywgJ2dsLkNM
QU1QX1RPX0VER0UnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfVCknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICBpZiAoY29u
dGV4dFZlcnNpb24gPiAxKSB7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX0JBU0VfTEVWRUwsIDApOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMsIGdsLkxFUVVBTCk7CisgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSwgZ2wuQ09NUEFS
RV9SRUZfVE9fVEVYVFVSRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01BWF9MRVZFTCwgMTApOworICAgIGdsLnRleFBhcmFtZXRlcmYoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAxMCk7CisgICAgZ2wudGV4UGFyYW1ldGVyZihnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9MT0QsIDApOworICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1IsIGdsLkNMQU1QX1RPX0VER0UpOworICAg
IHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9C
QVNFX0xFVkVMKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQyknLCAnZ2wuTEVRVUFMJyk7CisgICAg
c2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0NP
TVBBUkVfTU9ERSknLCAnZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRScpOworICAgIHNob3VsZEJl
KCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTEVWRUwp
JywgJzEwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01BWF9MT0QpJywgJzEwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBh
cmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9MT0QpJywgJzAnKTsKKyAgICBz
aG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9SKScsICdnbC5DTEFNUF9UT19FREdFJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFt
ZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX0lNTVVUQUJMRV9GT1JNQVQpJywgJ2ZhbHNl
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX0lNTVVUQUJMRV9MRVZFTFMpJywgJzAnKTsKKyAgfQorICBsZXQgdmFsaWRQYXJhbWV0
ZXJzRm9yVGV4dHVyZSA9IFsKKyAgICAgIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwKKyAgICAgIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwKKyAgICAgIGdsLlRFWFRVUkVfV1JBUF9TLAorICAgICAgZ2wu
VEVYVFVSRV9XUkFQX1QsCisgIF07CisgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2
YWxpZFBhcmFtZXRlcnNGb3JUZXh0dXJlID0gdmFsaWRQYXJhbWV0ZXJzRm9yVGV4dHVyZS5jb25j
YXQoWworICAgICAgICBnbC5URVhUVVJFX0JBU0VfTEVWRUwsCisgICAgICAgIGdsLlRFWFRVUkVf
Q09NUEFSRV9GVU5DLAorICAgICAgICBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSwKKyAgICAgICAg
Z2wuVEVYVFVSRV9NQVhfTEVWRUwsCisgICAgICAgIGdsLlRFWFRVUkVfTUFYX0xPRCwKKyAgICAg
ICAgZ2wuVEVYVFVSRV9NSU5fTE9ELAorICAgICAgICBnbC5URVhUVVJFX1dSQVBfUiwKKyAgICAg
ICAgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFULAorICAgICAgICBnbC5URVhUVVJFX0lNTVVU
QUJMRV9MRVZFTFMsCisgICAgXSk7CisgIH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgK
KyAgICAgICJnZXRUZXhQYXJhbWV0ZXIiLAorICAgICAgInBhcmFtZXRlciIsCisgICAgICB2YWxp
ZFBhcmFtZXRlcnNGb3JUZXh0dXJlLAorICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAg
ICAgIHJldHVybiBnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgcGFyYW1ldGVyKTsK
KyAgICAgIH0KKyAgKTsKKyAgbGV0IHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUgPSBbIGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfQ1VCRV9NQVBdOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7
CisgICAgdmFsaWRUYXJnZXRzRm9yVGV4dHVyZSA9IHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUuY29u
Y2F0KFsgZ2wuVEVYVFVSRV8zRCwgZ2wuVEVYVFVSRV8yRF9BUlJBWV0pOworICB9CisgIGF3YWl0
IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0VGV4UGFyYW1ldGVyIiwKKyAgICAgICJ0
YXJnZXQiLAorICAgICAgdmFsaWRUYXJnZXRzRm9yVGV4dHVyZSwKKyAgICAgIGZ1bmN0aW9uKHRh
cmdldCkgeworICAgICAgICByZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKHRhcmdldCwgZ2wuVEVY
VFVSRV9NQUdfRklMVEVSKTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwogCi1kZWJ1ZygiTWF0cml4IHVuaWZvcm0gdmFyaWFibGVzIik7Ci12
YXIgbWF0UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3Vy
Y2VzL21hdFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1T
aGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobWF0UHJvZ3Jh
bSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBtdmFsMkxvYyA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDIiKTsKLXZhciBtdmFsM0xvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDMiKTsKLXZhciBtdmFsNExvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDQiKTsKLWdsLnVzZVByb2dyYW0obWF0
UHJvZ3JhbSk7Ci1nbC51bmlmb3JtTWF0cml4MmZ2KG12YWwyTG9jLCBmYWxzZSwgWzEsIDIsIDMs
IDRdKTsKLWdsLnVuaWZvcm1NYXRyaXgzZnYobXZhbDNMb2MsIGZhbHNlLCBbNSwgNiwgNywgOCwg
OSwgMTAsIDExLCAxMiwgMTNdKTsKLWdsLnVuaWZvcm1NYXRyaXg0ZnYobXZhbDRMb2MsIGZhbHNl
LCBbMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3
LCAyOCwgMjldKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLXNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWwyTG9jKScsICdbMSwgMiwgMywgNF0n
KTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWwzTG9jKScsICdbNSwg
NiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTNdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSht
YXRQcm9ncmFtLCBtdmFsNExvYyknLCAnWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwg
MjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XScpOwotd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJUZXN0IGdldFVuaWZvcm0g
d2l0aCBhbGwgdmFyaWFudHMgb2YgZGF0YSB0eXBlcyIpOworICBkZWJ1ZygiQm9vbGVhbiB1bmlm
b3JtIHZhcmlhYmxlcyIpOworICB3aW5kb3cuYm9vbFByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1G
cm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9ib29sVW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4u
Ly4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNob3VsZEJlKCdnbC5n
ZXRQcm9ncmFtUGFyYW1ldGVyKGJvb2xQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScp
OworICB3aW5kb3cuYnZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwg
ImJ2YWwiKTsKKyAgd2luZG93LmJ2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGJvb2xQ
cm9ncmFtLCAiYnZhbDIiKTsKKyAgd2luZG93LmJ2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDMiKTsKKyAgd2luZG93LmJ2YWw0TG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDQiKTsKKyAgZ2wudXNlUHJvZ3JhbShib29s
UHJvZ3JhbSk7CisgIGdsLnVuaWZvcm0xaShidmFsTG9jLCAxKTsKKyAgZ2wudW5pZm9ybTJpKGJ2
YWwyTG9jLCAxLCAwKTsKKyAgZ2wudW5pZm9ybTNpKGJ2YWwzTG9jLCAxLCAwLCAxKTsKKyAgZ2wu
dW5pZm9ybTRpKGJ2YWw0TG9jLCAxLCAwLCAxLCAwKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwg
YnZhbExvYyknLCAndHJ1ZScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3Jh
bSwgYnZhbDJMb2MpJywgJ1t0cnVlLCBmYWxzZV0nKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm0oYm9vbFByb2dyYW0sIGJ2YWwzTG9jKScsICdbdHJ1ZSwgZmFsc2UsIHRydWVdJyk7CisgIHNo
b3VsZEJlKCdnbC5nZXRVbmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsNExvYyknLCAnW3RydWUsIGZh
bHNlLCB0cnVlLCBmYWxzZV0nKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwogCi1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGRlYnVnKCJVbnNpZ25lZCBJbnRl
Z2VyIHVuaWZvcm0gdmFyaWFibGVzIik7Ci0gIHZhciB1aW50UHJvZ3JhbSA9IHd0dS5sb2FkUHJv
Z3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL3VpbnRVbmlmb3JtU2hhZGVyLnZlcnQi
LCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLmZyYWciKTsKLSAgc2hvdWxk
QmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodWludFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScs
ICd0cnVlJyk7Ci0gIHZhciB1dmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHVpbnRQcm9n
cmFtLCAidXZhbCIpOwotICB2YXIgdXZhbDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24odWlu
dFByb2dyYW0sICJ1dmFsMiIpOwotICB2YXIgdXZhbDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRp
b24odWludFByb2dyYW0sICJ1dmFsMyIpOwotICB2YXIgdXZhbDRMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsNCIpOwotICBnbC51c2VQcm9ncmFtKHVpbnRQcm9n
cmFtKTsKLSAgZ2wudW5pZm9ybTF1aSh1dmFsTG9jLCAxKTsKLSAgZ2wudW5pZm9ybTJ1aSh1dmFs
MkxvYywgMiwgMyk7Ci0gIGdsLnVuaWZvcm0zdWkodXZhbDNMb2MsIDQsIDUsIDYpOwotICBnbC51
bmlmb3JtNHVpKHV2YWw0TG9jLCA3LCA4LCA5LCAxMCk7CisgIGRlYnVnKCJJbnRlZ2VyIHVuaWZv
cm0gdmFyaWFibGVzIik7CisgIHdpbmRvdy5pbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJv
bUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvaW50VW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4u
L3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNob3VsZEJlKCdnbC5nZXRQ
cm9ncmFtUGFyYW1ldGVyKGludFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Cisg
IHdpbmRvdy5pdmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGludFByb2dyYW0sICJpdmFs
Iik7CisgIHdpbmRvdy5pdmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFt
LCAiaXZhbDIiKTsKKyAgd2luZG93Lml2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGlu
dFByb2dyYW0sICJpdmFsMyIpOworICB3aW5kb3cuaXZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24oaW50UHJvZ3JhbSwgIml2YWw0Iik7CisgIGdsLnVzZVByb2dyYW0oaW50UHJvZ3JhbSk7
CisgIGdsLnVuaWZvcm0xaShpdmFsTG9jLCAxKTsKKyAgZ2wudW5pZm9ybTJpKGl2YWwyTG9jLCAy
LCAzKTsKKyAgZ2wudW5pZm9ybTNpKGl2YWwzTG9jLCA0LCA1LCA2KTsKKyAgZ2wudW5pZm9ybTRp
KGl2YWw0TG9jLCA3LCA4LCA5LCAxMCk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2YWxMb2Mp
JywgJzEnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2YWwyTG9j
KScsICdbMiwgM10nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2
YWwzTG9jKScsICdbNCwgNSwgNl0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFBy
b2dyYW0sIHV2YWw0TG9jKScsICdbNywgOCwgOSwgMTBdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRV
bmlmb3JtKGludFByb2dyYW0sIGl2YWxMb2MpJywgJzEnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0oaW50UHJvZ3JhbSwgaXZhbDJMb2MpJywgJ1syLCAzXScpOworICBzaG91bGRCZSgnZ2wu
Z2V0VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsM0xvYyknLCAnWzQsIDUsIDZdJyk7CisgIHNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWw0TG9jKScsICdbNywgOCwgOSwgMTBd
Jyk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotICBkZWJ1Zygi
TWF0cml4IHVuaWZvcm0gdmFyaWFibGVzIGZvciBXZWJHTCAyIik7CisgIGRlYnVnKCJGbG9hdCB1
bmlmb3JtIHZhcmlhYmxlcyIpOworICB3aW5kb3cuZmxvYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9n
cmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQi
LCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKKyAgc2hvdWxkQmUo
J2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoZmxvYXRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAn
dHJ1ZScpOworICB3aW5kb3cuZnZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFBy
b2dyYW0sICJmdmFsIik7CisgIHdpbmRvdy5mdmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihmbG9hdFByb2dyYW0sICJmdmFsMiIpOworICB3aW5kb3cuZnZhbDNMb2MgPSBnbC5nZXRVbmlm
b3JtTG9jYXRpb24oZmxvYXRQcm9ncmFtLCAiZnZhbDMiKTsKKyAgd2luZG93LmZ2YWw0TG9jID0g
Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWw0Iik7CisgIGdsLnVzZVBy
b2dyYW0oZmxvYXRQcm9ncmFtKTsKKyAgZ2wudW5pZm9ybTFmKGZ2YWxMb2MsIDExKTsKKyAgZ2wu
dW5pZm9ybTJmKGZ2YWwyTG9jLCAxMiwgMTMpOworICBnbC51bmlmb3JtM2YoZnZhbDNMb2MsIDE0
LCAxNSwgMTYpOworICBnbC51bmlmb3JtNGYoZnZhbDRMb2MsIDE3LCAxOCwgMTksIDIwKTsKKyAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBzaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWxMb2MpJywgJzExJyk7CisgIHNob3VsZEJlKCdnbC5n
ZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDJMb2MpJywgJ1sxMiwgMTNdJyk7CisgIHNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDNMb2MpJywgJ1sxNCwgMTUsIDE2
XScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWw0TG9jKScs
ICdbMTcsIDE4LCAxOSwgMjBdJyk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKIAotICB2YXIgbWF0Rm9yV2ViR0wyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21G
aWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL21hdEZvcldlYkdMMlVuaWZvcm1TaGFkZXIudmVydCIs
ICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXJFUzMuZnJhZyIpOwotICBzaG91bGRC
ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihtYXRGb3JXZWJHTDJQcm9ncmFtLCBnbC5MSU5LX1NU
QVRVUyknLCAndHJ1ZScpOwotICB2YXIgbXZhbDJ4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDJ4MyIpOwotICB2YXIgbXZhbDJ4NExvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDJ4NCIpOwotICB2
YXIgbXZhbDN4MkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFt
LCAibXZhbDN4MiIpOwotICB2YXIgbXZhbDN4NExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbiht
YXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDN4NCIpOwotICB2YXIgbXZhbDR4MkxvYyA9IGdsLmdl
dFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDR4MiIpOwotICB2YXIg
bXZhbDR4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFtLCAi
bXZhbDR4MyIpOwotICBnbC51c2VQcm9ncmFtKG1hdEZvcldlYkdMMlByb2dyYW0pOwotICBnbC51
bmlmb3JtTWF0cml4MngzZnYobXZhbDJ4M0xvYywgZmFsc2UsIFsxLCAyLCAzLCA0LCA1LCA2XSk7
Ci0gIGdsLnVuaWZvcm1NYXRyaXgyeDRmdihtdmFsMng0TG9jLCBmYWxzZSwgWzcsIDgsIDksIDEw
LCAxMSwgMTIsIDEzLCAxNF0pOwotICBnbC51bmlmb3JtTWF0cml4M3gyZnYobXZhbDN4MkxvYywg
ZmFsc2UsIFsxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSk7Ci0gIGdsLnVuaWZvcm1NYXRyaXgzeDRm
dihtdmFsM3g0TG9jLCBmYWxzZSwgWzIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdKTsKLSAgZ2wudW5pZm9ybU1hdHJpeDR4MmZ2KG12YWw0eDJMb2MsIGZhbHNl
LCBbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSk7Ci0gIGdsLnVuaWZvcm1NYXRyaXg0
eDNmdihtdmFsNHgzTG9jLCBmYWxzZSwgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwLCA1MSwgNTJdKTsKKyAgZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMiKTsK
KyAgd2luZG93LnNhbXBsZXJQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIu
Li8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMv
c2FtcGxlclVuaWZvcm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihzYW1wbGVyUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKKyAgd2lu
ZG93LnMyRFZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVyUHJvZ3JhbSwgInMy
RCIpOworICB3aW5kb3cuc0N1YmVWYWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oc2FtcGxl
clByb2dyYW0sICJzQ3ViZSIpOworICBnbC51c2VQcm9ncmFtKHNhbXBsZXJQcm9ncmFtKTsKKyAg
Z2wudW5pZm9ybTFpKHMyRFZhbExvYywgMCk7CisgIGdsLnVuaWZvcm0xaShzQ3ViZVZhbExvYywg
MSk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgc2hvdWxkQmUo
J2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDJ4M0xvYyknLCAnWzEsIDIs
IDMsIDQsIDUsIDZdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlBy
b2dyYW0sIG12YWwyeDRMb2MpJywgJ1s3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTRdJyk7Ci0g
IHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWwzeDJMb2Mp
JywgJ1sxNSwgMTYsIDE3LCAxOCwgMTksIDIwXScpOwotICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9y
bShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3g0TG9jKScsICdbMjEsIDIyLCAyMywgMjQsIDI1
LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDR4MkxvYyknLCAnWzMzLCAzNCwgMzUsIDM2LCAz
NywgMzgsIDM5LCA0MF0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wy
UHJvZ3JhbSwgbXZhbDR4M0xvYyknLCAnWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwLCA1MSwgNTJdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHNhbXBsZXJQcm9n
cmFtLCBzMkRWYWxMb2MpJywgJzAnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxl
clByb2dyYW0sIHNDdWJlVmFsTG9jKScsICcxJyk7CiAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKIAotICBkZWJ1ZygiU2FtcGxlciB1bmlmb3JtIHZhcmlhYmxlcyBmb3Ig
V2ViR0wyIik7Ci0gIHZhciBzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3Jh
bUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLnZlcnQi
LCAiLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXJGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLmZyYWciKTsK
LSAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc2FtcGxlckZvcldlYkdMMlByb2dy
YW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci0gIHZhciBzM0RWYWxMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24oc2FtcGxlckZvcldlYkdMMlByb2dyYW0sICJzM0QiKTsKLSAgdmFyIHMy
REFycmF5VmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJGb3JXZWJHTDJQcm9n
cmFtLCAiczJEQXJyYXkiKTsKLSAgZ2wudXNlUHJvZ3JhbShzYW1wbGVyRm9yV2ViR0wyUHJvZ3Jh
bSk7Ci0gIGdsLnVuaWZvcm0xaShzM0RWYWxMb2MsIDApOwotICBnbC51bmlmb3JtMWkoczJEQXJy
YXlWYWxMb2MsIDEpOworICBkZWJ1ZygiTWF0cml4IHVuaWZvcm0gdmFyaWFibGVzIik7CisgIHdp
bmRvdy5tYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNv
dXJjZXMvbWF0VW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9y
bVNoYWRlci5mcmFnIik7CisgIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKG1hdFBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7CisgIHdpbmRvdy5tdmFsMkxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDIiKTsKKyAgd2luZG93Lm12YWwz
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFsMyIpOworICB3aW5k
b3cubXZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWw0Iik7
CisgIGdsLnVzZVByb2dyYW0obWF0UHJvZ3JhbSk7CisgIGdsLnVuaWZvcm1NYXRyaXgyZnYobXZh
bDJMb2MsIGZhbHNlLCBbMSwgMiwgMywgNF0pOworICBnbC51bmlmb3JtTWF0cml4M2Z2KG12YWwz
TG9jLCBmYWxzZSwgWzUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXSk7CisgIGdsLnVuaWZv
cm1NYXRyaXg0ZnYobXZhbDRMb2MsIGZhbHNlLCBbMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjldKTsKICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVy
Rm9yV2ViR0wyUHJvZ3JhbSwgczNEVmFsTG9jKScsICcwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRV
bmlmb3JtKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtLCBzMkRBcnJheVZhbExvYyknLCAnMScpOwor
ICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsMkxvYyknLCAnWzEsIDIs
IDMsIDRdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWwzTG9j
KScsICdbNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTNdJyk7CisgIHNob3VsZEJlKCdnbC5n
ZXRVbmlmb3JtKG1hdFByb2dyYW0sIG12YWw0TG9jKScsICdbMTQsIDE1LCAxNiwgMTcsIDE4LCAx
OSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjldJyk7CiAgIHd0dS5nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KIAotZGVidWcoIiIpOwotZGVidWcoInRl
c3QgZ2V0VmVydGV4QXR0cmliIik7Ci12YXIgYXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KFsxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0pOwotdmFy
IGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZG
RVIsIGJ1ZmZlcik7Ci1nbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgYXJyYXksIGdsLkRZ
TkFNSUNfRFJBVyk7Ci0vLyBWZXJ0ZXggYXR0cmlidXRlIDAgaXMgc3BlY2lhbCBpbiB0aGF0IGl0
IGhhcyBubyBjdXJyZW50IHN0YXRlLCBzbwotLy8gZmV0Y2hpbmcgR0xfQ1VSUkVOVF9WRVJURVhf
QVRUUklCIGdlbmVyYXRlcyBhbiBlcnJvci4gVXNlIGF0dHJpYnV0ZQotLy8gMSBmb3IgdGhlc2Ug
dGVzdHMgaW5zdGVhZC4KLWdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwotZ2wudmVydGV4
QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5H
KScsICdidWZmZXInKTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVY
X0FUVFJJQl9BUlJBWV9FTkFCTEVEKScsICd0cnVlJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSknLCAnNCcpOwotLy8gU3RyaWRl
IE1VU1QgYmUgdGhlIHZhbHVlIHRoZSB1c2VyIHB1dCBpbi4KLXNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpJywgJzAnKTsKLXNob3Vs
ZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFKScs
ICdnbC5GTE9BVCcpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhf
QVRUUklCX0FSUkFZX05PUk1BTElaRUQpJywgJ2ZhbHNlJyk7Ci1pZiAoY29udGV4dFZlcnNpb24g
PiAxKSB7Ci0gIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SKScsICcwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIo
MSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSKScsICdmYWxzZScpOwotICBnbC52ZXJ0
ZXhBdHRyaWJEaXZpc29yKDEsIDIpOwotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEs
IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUiknLCAnMicpOwotfQotZ2wudmVydGV4QXR0
cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDM2LCAxMik7Ci1zaG91bGRCZSgnZ2wu
Z2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICczNicp
Owotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYk9mZnNldCgxLCBnbC5WRVJURVhfQVRUUklC
X0FSUkFZX1BPSU5URVIpJywgJzEyJyk7Ci1nbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7
Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
RU5BQkxFRCknLCAnZmFsc2UnKTsKLWdsLnZlcnRleEF0dHJpYjRmKDEsIDUsIDYsIDcsIDgpOwot
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIp
JywgJ1s1LCA2LCA3LCA4XScpOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICB2YXIgaW50
QXJyYXkgPSBuZXcgSW50MzJBcnJheShbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDEx
LCAxMiwgMTMsIDE0LCAxNSwgMTZdKTsKLSAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIs
IGludEFycmF5LCBnbC5EWU5BTUlDX0RSQVcpOwotICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJh
eSgxKTsKLSAgLy8gZmVlZCBmaXhlZC1wb2ludCBkYXRhIHRvIGJ1ZmZlcgotICBnbC52ZXJ0ZXhB
dHRyaWJJUG9pbnRlcigxLCA0LCBnbC5JTlQsIGZhbHNlLCAwLCAwKTsKLSAgc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1RZUEUpJywgJ2dsLklO
VCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfSU5URUdFUiknLCAndHJ1ZScpOwotfQotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotdmFyIHZhbGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIgPSBuZXcgQXJyYXkoCi0g
ICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORywKLSAgICBnbC5WRVJURVhf
QVRUUklCX0FSUkFZX0VOQUJMRUQsCi0gICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFLAot
ICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFLAotICAgIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfVFlQRSwKLSAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQsCi0gICAg
Z2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCCi0pOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewot
ICB2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliW3ZhbGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIubGVu
Z3RoXSA9IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUjsKLSAgdmFsaWRBcnJheUZvclZl
cnRleEF0dHJpYlt2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0aF0gPSBnbC5WRVJURVhf
QVRUUklCX0FSUkFZX0lOVEVHRVI7Ci19Ci10ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICJnZXRW
ZXJ0ZXhBdHRyaWIiLAotICAgICJwYXJhbWV0ZXIiLAotICAgIHZhbGlkQXJyYXlGb3JWZXJ0ZXhB
dHRyaWIsCi0gICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7Ci0gICAgICByZXR1cm4gZ2wuZ2V0VmVy
dGV4QXR0cmliKDEsIHBhcmFtZXRlcik7Ci0gICAgfQotKTsKLXZhciBudW1WZXJ0ZXhBdHRyaWJz
ID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WRVJURVhfQVRUUklCUyk7Ci13dHUuc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAnZ2wuZ2V0VmVydGV4QXR0cmliKCcg
KyBudW1WZXJ0ZXhBdHRyaWJzICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKScpOworICBp
ZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgZGVidWcoIlVuc2lnbmVkIEludGVnZXIgdW5p
Zm9ybSB2YXJpYWJsZXMiKTsKKyAgICB3aW5kb3cudWludFByb2dyYW0gPSB3dHUubG9hZFByb2dy
YW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy91aW50VW5pZm9ybVNoYWRlci52ZXJ0Iiwg
Ii4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy5mcmFnIik7CisgICAgc2hvdWxk
QmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIodWludFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScs
ICd0cnVlJyk7CisgICAgd2luZG93LnV2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24odWlu
dFByb2dyYW0sICJ1dmFsIik7CisgICAgd2luZG93LnV2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKHVpbnRQcm9ncmFtLCAidXZhbDIiKTsKKyAgICB3aW5kb3cudXZhbDNMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsMyIpOworICAgIHdpbmRvdy51dmFs
NExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbih1aW50UHJvZ3JhbSwgInV2YWw0Iik7CisgICAg
Z2wudXNlUHJvZ3JhbSh1aW50UHJvZ3JhbSk7CisgICAgZ2wudW5pZm9ybTF1aSh1dmFsTG9jLCAx
KTsKKyAgICBnbC51bmlmb3JtMnVpKHV2YWwyTG9jLCAyLCAzKTsKKyAgICBnbC51bmlmb3JtM3Vp
KHV2YWwzTG9jLCA0LCA1LCA2KTsKKyAgICBnbC51bmlmb3JtNHVpKHV2YWw0TG9jLCA3LCA4LCA5
LCAxMCk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNo
b3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsTG9jKScsICcxJyk7CisgICAg
c2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2YWwyTG9jKScsICdbMiwgM10n
KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSh1aW50UHJvZ3JhbSwgdXZhbDNMb2MpJywg
J1s0LCA1LCA2XScpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1
dmFsNExvYyknLCAnWzcsIDgsIDksIDEwXScpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgY2FzZXMgd2hlcmUgbmFt
ZSA9PSAwIik7Ci1nbC5kZWxldGVUZXh0dXJlKHRleHR1cmUpOwotc2hvdWxkQmUoJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLk5P
TkUnKTsKLWdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyZW5kZXJidWZmZXIpOwotZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7Ci13dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTik7Ci1zaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5U
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7Ci1n
bC5kZWxldGVCdWZmZXIoYnVmZmVyKTsKLXNob3VsZEJlTnVsbCgnZ2wuZ2V0VmVydGV4QXR0cmli
KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpJyk7Ci13dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgZGVidWcoIk1hdHJpeCB1bmlmb3JtIHZh
cmlhYmxlcyBmb3IgV2ViR0wgMiIpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKIAotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZygiVGVzdCBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciIpCisgICAgd2luZG93Lm1h
dEZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jl
c291cmNlcy9tYXRGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2Vz
L25vb3BVbmlmb3JtU2hhZGVyRVMzLmZyYWciKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcihtYXRGb3JXZWJHTDJQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScp
OworICAgIHdpbmRvdy5tdmFsMngzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdEZvcldl
YkdMMlByb2dyYW0sICJtdmFsMngzIik7CisgICAgd2luZG93Lm12YWwyeDRMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwyeDQiKTsKKyAgICB3aW5k
b3cubXZhbDN4MkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJHTDJQcm9ncmFt
LCAibXZhbDN4MiIpOworICAgIHdpbmRvdy5tdmFsM3g0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsM3g0Iik7CisgICAgd2luZG93Lm12YWw0eDJM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWw0eDIi
KTsKKyAgICB3aW5kb3cubXZhbDR4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JX
ZWJHTDJQcm9ncmFtLCAibXZhbDR4MyIpOworICAgIGdsLnVzZVByb2dyYW0obWF0Rm9yV2ViR0wy
UHJvZ3JhbSk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDJ4M2Z2KG12YWwyeDNMb2MsIGZhbHNlLCBb
MSwgMiwgMywgNCwgNSwgNl0pOworICAgIGdsLnVuaWZvcm1NYXRyaXgyeDRmdihtdmFsMng0TG9j
LCBmYWxzZSwgWzcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0pOworICAgIGdsLnVuaWZvcm1N
YXRyaXgzeDJmdihtdmFsM3gyTG9jLCBmYWxzZSwgWzE1LCAxNiwgMTcsIDE4LCAxOSwgMjBdKTsK
KyAgICBnbC51bmlmb3JtTWF0cml4M3g0ZnYobXZhbDN4NExvYywgZmFsc2UsIFsyMSwgMjIsIDIz
LCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXSk7CisgICAgZ2wudW5pZm9ybU1h
dHJpeDR4MmZ2KG12YWw0eDJMb2MsIGZhbHNlLCBbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzks
IDQwXSk7CisgICAgZ2wudW5pZm9ybU1hdHJpeDR4M2Z2KG12YWw0eDNMb2MsIGZhbHNlLCBbNDEs
IDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLCA1Ml0pOworICAgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5p
Zm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsMngzTG9jKScsICdbMSwgMiwgMywgNCwgNSwg
Nl0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBt
dmFsMng0TG9jKScsICdbNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XScpOworICAgIHNob3Vs
ZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWwzeDJMb2MpJywgJ1sx
NSwgMTYsIDE3LCAxOCwgMTksIDIwXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1h
dEZvcldlYkdMMlByb2dyYW0sIG12YWwzeDRMb2MpJywgJ1syMSwgMjIsIDIzLCAyNCwgMjUsIDI2
LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3Jt
KG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWw0eDJMb2MpJywgJ1szMywgMzQsIDM1LCAzNiwgMzcs
IDM4LCAzOSwgNDBdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wy
UHJvZ3JhbSwgbXZhbDR4M0xvYyknLCAnWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwLCA1MSwgNTJdJyk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwogCi0gICAgc2hvdWxkQmVOb25OdWxsKCdnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGdsLlIzMkksIGdsLlNBTVBMRVMpJyk7CisgICAgZGVidWcoIlNh
bXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMgZm9yIFdlYkdMMiIpOworICAgIHdpbmRvdy5zYW1wbGVy
Rm9yV2ViR0wyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVz
b3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL3NhbXBs
ZXJGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLmZyYWciKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcihzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywg
J3RydWUnKTsKKyAgICB3aW5kb3cuczNEVmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNh
bXBsZXJGb3JXZWJHTDJQcm9ncmFtLCAiczNEIik7CisgICAgd2luZG93LnMyREFycmF5VmFsTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtLCAiczJEQXJy
YXkiKTsKKyAgICBnbC51c2VQcm9ncmFtKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtKTsKKyAgICBn
bC51bmlmb3JtMWkoczNEVmFsTG9jLCAwKTsKKyAgICBnbC51bmlmb3JtMWkoczJEQXJyYXlWYWxM
b2MsIDEpOwogICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBz
aG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgczNEVmFsTG9j
KScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlckZvcldlYkdMMlBy
b2dyYW0sIHMyREFycmF5VmFsTG9jKScsICcxJyk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOworICB9CiAKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAg
ICAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiLAotICAgICAgICAidGFyZ2V0IiwKLSAgICAg
ICAgWyBnbC5SRU5ERVJCVUZGRVIgXSwKLSAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAg
ICAgICAgICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5S
MzJJLCBnbC5TQU1QTEVTKTsKLSAgICB9KTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygidGVzdCBn
ZXRWZXJ0ZXhBdHRyaWIiKTsKKyAgbGV0IGFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbMSwgMiwg
MywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdKTsKKyAgd2lu
ZG93LmJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZ
X0JVRkZFUiwgYnVmZmVyKTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGFycmF5
LCBnbC5EWU5BTUlDX0RSQVcpOworICAvLyBWZXJ0ZXggYXR0cmlidXRlIDAgaXMgc3BlY2lhbCBp
biB0aGF0IGl0IGhhcyBubyBjdXJyZW50IHN0YXRlLCBzbworICAvLyBmZXRjaGluZyBHTF9DVVJS
RU5UX1ZFUlRFWF9BVFRSSUIgZ2VuZXJhdGVzIGFuIGVycm9yLiBVc2UgYXR0cmlidXRlCisgIC8v
IDEgZm9yIHRoZXNlIHRlc3RzIGluc3RlYWQuCisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5
KDEpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQsIGdsLkZMT0FULCBmYWxzZSwgMCwg
MCk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9CVUZGRVJfQklORElORyknLCAnYnVmZmVyJyk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEKScsICd0cnVlJyk7Cisg
IHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9T
SVpFKScsICc0Jyk7CisgIC8vIFN0cmlkZSBNVVNUIGJlIHRoZSB2YWx1ZSB0aGUgdXNlciBwdXQg
aW4uCisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9TVFJJREUpJywgJzAnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBn
bC5WRVJURVhfQVRUUklCX0FSUkFZX1RZUEUpJywgJ2dsLkZMT0FUJyk7CisgIHNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEKScs
ICdmYWxzZScpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IpJywgJzAn
KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfSU5URUdFUiknLCAnZmFsc2UnKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJEaXZpc29yKDEs
IDIpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SKScsICcyJyk7CisgIH0KKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigx
LCA0LCBnbC5GTE9BVCwgZmFsc2UsIDM2LCAxMik7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhB
dHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUpJywgJzM2Jyk7CisgIHNob3Vs
ZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9Q
T0lOVEVSKScsICcxMicpOworICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CisgIHNo
b3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFC
TEVEKScsICdmYWxzZScpOworICBnbC52ZXJ0ZXhBdHRyaWI0ZigxLCA1LCA2LCA3LCA4KTsKKyAg
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIp
JywgJ1s1LCA2LCA3LCA4XScpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgbGV0
IGludEFycmF5ID0gbmV3IEludDMyQXJyYXkoWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIGludEFycmF5LCBnbC5EWU5BTUlDX0RSQVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0
dHJpYkFycmF5KDEpOworICAgIC8vIGZlZWQgZml4ZWQtcG9pbnQgZGF0YSB0byBidWZmZXIKKyAg
ICBnbC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcigxLCA0LCBnbC5JTlQsIGZhbHNlLCAwLCAwKTsKKyAg
ICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
VFlQRSknLCAnZ2wuSU5UJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBn
bC5WRVJURVhfQVRUUklCX0FSUkFZX0lOVEVHRVIpJywgJ3RydWUnKTsKKyAgfQorICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIGxldCB2YWxpZEFycmF5Rm9yVmVydGV4
QXR0cmliID0gbmV3IEFycmF5KAorICAgICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJf
QklORElORywKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCwKKyAgICAgIGds
LlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSwKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
U1RSSURFLAorICAgICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFLAorICAgICAgZ2wuVkVS
VEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVELAorICAgICAgZ2wuQ1VSUkVOVF9WRVJURVhfQVRU
UklCCisgICk7CisgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2YWxpZEFycmF5Rm9y
VmVydGV4QXR0cmliW3ZhbGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIubGVuZ3RoXSA9IGdsLlZFUlRF
WF9BVFRSSUJfQVJSQVlfRElWSVNPUjsKKyAgICB2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliW3Zh
bGlkQXJyYXlGb3JWZXJ0ZXhBdHRyaWIubGVuZ3RoXSA9IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
SU5URUdFUjsKKyAgfQorICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFZl
cnRleEF0dHJpYiIsCisgICAgICAicGFyYW1ldGVyIiwKKyAgICAgIHZhbGlkQXJyYXlGb3JWZXJ0
ZXhBdHRyaWIsCisgICAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKKyAgICAgICAgcmV0dXJuIGds
LmdldFZlcnRleEF0dHJpYigxLCBwYXJhbWV0ZXIpOworICAgICAgfQorICApOworICBsZXQgbnVt
VmVydGV4QXR0cmlicyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVkVSVEVYX0FUVFJJQlMpOwor
ICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAnZ2wuZ2V0
VmVydGV4QXR0cmliKCcgKyBudW1WZXJ0ZXhBdHRyaWJzICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhf
QVRUUklCKScpOwogCi0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdldEludGVy
bmFsZm9ybWF0UGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAgICAgWyBnbC5TQU1Q
TEVTIF0sCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2wu
Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgcG5h
bWUpOwotICAgIH0pOworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJUZXN0IGNhc2VzIHdoZXJlIG5h
bWUgPT0gMCIpOworICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVm
ZmVyKTsKIAotICAgIHZhciB2YWxpZEFycmF5Rm9ySW50ZXJmb3JtYXQgPSBuZXcgQXJyYXkoCi0g
ICAgICAgIGdsLlI4LCBnbC5SOF9TTk9STSwgZ2wuUkc4LCBnbC5SRzhfU05PUk0sCi0gICAgICAg
IGdsLlJHQjgsIGdsLlJHQjhfU05PUk0sIGdsLlJHQjU2NSwgZ2wuUkdCQTQsCi0gICAgICAgIGds
LlJHQjVfQTEsIGdsLlJHQkE4LCBnbC5SR0JBOF9TTk9STSwgZ2wuUkdCMTBfQTIsCi0gICAgICAg
IGdsLlJHQjEwX0EyVUksIGdsLlNSR0I4LCBnbC5TUkdCOF9BTFBIQTgsIGdsLlIxNkYsCi0gICAg
ICAgIGdsLlJHMTZGLCBnbC5SR0IxNkYsIGdsLlJHQkExNkYsIGdsLlIzMkYsCi0gICAgICAgIGds
LlJHMzJGLCBnbC5SR0IzMkYsIGdsLlJHQkEzMkYsIGdsLlIxMUZfRzExRl9CMTBGLAotICAgICAg
ICBnbC5SR0I5X0U1LCBnbC5SOEksIGdsLlI4VUksIGdsLlIxNkksCi0gICAgICAgIGdsLlIxNlVJ
LCBnbC5SMzJJLCBnbC5SMzJVSSwgZ2wuUkc4SSwKLSAgICAgICAgZ2wuUkc4VUksIGdsLlJHMTZJ
LCBnbC5SRzE2VUksIGdsLlJHMzJJLAotICAgICAgICBnbC5SRzMyVUksIGdsLlJHQjhJLCBnbC5S
R0I4VUksIGdsLlJHQjE2SSwKLSAgICAgICAgZ2wuUkdCMTZVSSwgZ2wuUkdCMzJJLCBnbC5SR0Iz
MlVJLCBnbC5SR0JBOEksCi0gICAgICAgIGdsLlJHQkE4VUksIGdsLlJHQkExNkksIGdsLlJHQkEx
NlVJLCBnbC5SR0JBMzJJLAotICAgICAgICBnbC5SR0JBMzJVSSwgZ2wuUkdCLCBnbC5SR0JBLCBn
bC5ERVBUSF9TVEVOQ0lMLCBnbC5ERVBUSF9DT01QT05FTlQxNiwKLSAgICAgICAgZ2wuREVQVEhf
Q09NUE9ORU5UMjQsIGdsLkRFUFRIX0NPTVBPTkVOVDMyRiwgZ2wuREVQVEgyNF9TVEVOQ0lMOCwK
LSAgICAgICAgZ2wuREVQVEgzMkZfU1RFTkNJTDgsIGdsLlNURU5DSUxfSU5ERVg4Ci0gICAgKTsK
LSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgICAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJh
bWV0ZXIiLAotICAgICAgICAiaW50ZXJuYWxmb3JtYXQiLAotICAgICAgICB2YWxpZEFycmF5Rm9y
SW50ZXJmb3JtYXQsCi0gICAgICAgIGZ1bmN0aW9uKGludGVybmFsZm9ybWF0KSB7Ci0gICAgICAg
ICAgICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBpbnRlcm5hbGZvcm1hdCwgZ2wuU0FNUExFUyk7Ci0gICAgfSk7CisgIHNob3VsZE5vdEJlKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScs
ICdnbC5OT05FJyk7CisgIGdsLmRlbGV0ZVRleHR1cmUodGV4dHVyZSk7CisgIHNob3VsZEJlKCdn
bC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScs
ICdnbC5OT05FJyk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAor
ICBzaG91bGROb3RCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyZW5k
ZXJidWZmZXIpOworICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBn
ZXRJbmRleGVkUGFyYW1ldGVyIik7Ci0gICAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OwotICAgIGdsLmJpbmRCdWZmZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgYnVmZmVy
KTsKLSAgICBnbC5idWZmZXJEYXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDY0LCBn
bC5EWU5BTUlDX0RSQVcpOwotICAgIGdsLmJpbmRCdWZmZXJSYW5nZShnbC5UUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSLCAwLCBidWZmZXIsIDQsIDgpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRl
eGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCknLCAn
YnVmZmVyJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFLCAwKScsICc4Jyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdl
dEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCwgMCkn
LCAnNCcpOwotICAgIHZhciBidWZmZXIxID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5VTklGT1JNX0JVRkZFUiwgYnVmZmVyMSk7Ci0gICAgZ2wuYnVmZmVyRGF0YShn
bC5VTklGT1JNX0JVRkZFUiwgNjQsIGdsLkRZTkFNSUNfRFJBVyk7Ci0gICAgdmFyIG9mZnNldFVu
aWZvcm0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVO
VCk7Ci0gICAgZ2wuYmluZEJ1ZmZlclJhbmdlKGdsLlVOSUZPUk1fQlVGRkVSLCAxLCBidWZmZXIx
LCBvZmZzZXRVbmlmb3JtLCA4KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRl
cihnbC5VTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKScsICdidWZmZXIxJyk7Ci0gICAgc2hvdWxk
QmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfU0laRSwgMSknLCAn
OCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVG
RkVSX1NUQVJULCAxKScsICdvZmZzZXRVbmlmb3JtJyk7CisgIGdsLmRlbGV0ZUJ1ZmZlcihidWZm
ZXIpOworICBzaG91bGRCZU51bGwoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKScpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAKLSAgICBnbC5iaW5kQnVmZmVyQmFzZShnbC5VTklGT1JNX0JVRkZFUiwg
MSwgbnVsbCk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9S
TV9CVUZGRVJfQklORElORywgMSknLCAnbnVsbCcpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAx
KSB7CisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRJbnRlcm5hbGZvcm1h
dFBhcmFtZXRlciIpCiAKLSAgICB2YXIgdmFsaWRBcnJheUZvclRhcmdldCA9IG5ldyBBcnJheSgK
LSAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLAotICAgICAgICBn
bC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUsCi0gICAgICAgIGdsLlRSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVJfU1RBUlQsCi0gICAgICAgIGdsLlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
Ci0gICAgICAgIGdsLlVOSUZPUk1fQlVGRkVSX1NJWkUsCi0gICAgICAgIGdsLlVOSUZPUk1fQlVG
RkVSX1NUQVJUCi0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgICAiZ2V0
SW5kZXhlZFBhcmFtZXRlciIsCi0gICAgICAgICJ0YXJnZXQiLAotICAgICAgICB2YWxpZEFycmF5
Rm9yVGFyZ2V0LAotICAgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAgICAgICAgIHJldHVy
biBnbC5nZXRJbmRleGVkUGFyYW1ldGVyKHRhcmdldCwgMCk7Ci0gICAgfSk7CisgICAgICBzaG91
bGRCZU5vbk51bGwoJ2dsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUjMySSwgZ2wuU0FNUExFUyknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRTYW1w
bGVyUGFyYW1ldGVyIik7Ci0gICAgdmFyIHNhbXBsZXIgPSBnbC5jcmVhdGVTYW1wbGVyKCk7Ci0g
ICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMs
IGdsLkxFUVVBTCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVS
RV9DT01QQVJFX01PREUsIGdsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUpOwotICAgIGdsLnNhbXBs
ZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmYoc2FtcGxlciwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAx
MCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC5zYW1wbGVyUGFyYW1ldGVyZihzYW1wbGVyLCBnbC5U
RVhUVVJFX01JTl9MT0QsIDApOwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGds
LlRFWFRVUkVfV1JBUF9SLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC5zYW1wbGVyUGFyYW1l
dGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAg
Z2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1Q
X1RPX0VER0UpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIs
IGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DKScsICdnbC5MRVFVQUwnKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSkn
LCAnZ2wuQ09NUEFSRV9SRUZfVE9fVEVYVFVSRScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1w
bGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiknLCAnZ2wuTkVBUkVT
VCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRF
WFRVUkVfTUFYX0xPRCknLCAnMTAnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFt
ZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01JTl9GSUxURVIpJywgJ2dsLk5FQVJFU1QnKTsKLSAg
ICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01J
Tl9MT0QpJywgJzAnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1w
bGVyLCBnbC5URVhUVVJFX1dSQVBfUiknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOwotICAgIHNob3Vs
ZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9TKScs
ICdnbC5DTEFNUF9UT19FREdFJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0
ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKLSAg
ICB2YXIgdmFsaWRBcnJheUZvclNhbXBsZXJQYXJhbWV0ZXIgPSBuZXcgQXJyYXkoCi0gICAgICAg
IGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLAotICAgICAgICBnbC5URVhUVVJFX0NPTVBBUkVfTU9E
RSwKLSAgICAgICAgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLAotICAgICAgICBnbC5URVhUVVJFX01B
WF9MT0QsCi0gICAgICAgIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwKLSAgICAgICAgZ2wuVEVYVFVS
RV9NSU5fTE9ELAotICAgICAgICBnbC5URVhUVVJFX1dSQVBfUiwKLSAgICAgICAgZ2wuVEVYVFVS
RV9XUkFQX1MsCi0gICAgICAgIGdsLlRFWFRVUkVfV1JBUF9UCi0gICAgKTsKLSAgICB0ZXN0SW52
YWxpZEFyZ3VtZW50KAotICAgICAgICAiZ2V0U2FtcGxlclBhcmFtZXRlciIsCi0gICAgICAgICJw
bmFtZSIsCi0gICAgICAgIHZhbGlkQXJyYXlGb3JTYW1wbGVyUGFyYW1ldGVyLAotICAgICAgICBm
dW5jdGlvbihwbmFtZSkgewotICAgICAgICAgICAgcmV0dXJuIGdsLmdldFNhbXBsZXJQYXJhbWV0
ZXIoc2FtcGxlciwgcG5hbWUpOwotICAgIH0pOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1
bWVudCgKKyAgICAgICAgICAiZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiLAorICAgICAgICAg
ICJ0YXJnZXQiLAorICAgICAgICAgIFsgZ2wuUkVOREVSQlVGRkVSIF0sCisgICAgICAgICAgZnVu
Y3Rpb24odGFyZ2V0KSB7CisgICAgICAgICAgICAgIHJldHVybiBnbC5nZXRJbnRlcm5hbGZvcm1h
dFBhcmFtZXRlcih0YXJnZXQsIGdsLlIzMkksIGdsLlNBTVBMRVMpOworICAgICAgfSk7CiAKLSAg
ICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0U3luY1BhcmFtZXRlciIpOwotICAgIHZh
ciBzeW5jID0gZ2wuZmVuY2VTeW5jKGdsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFLCAwKTsK
LSAgICBzaG91bGRCZSgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5PQkpFQ1RfVFlQRSkn
LCAnZ2wuU1lOQ19GRU5DRScpOwotICAgIHZhciBzeW5jX3N0YXR1cyA9IGdsLmdldFN5bmNQYXJh
bWV0ZXIoc3luYywgZ2wuU1lOQ19TVEFUVVMpOwotICAgIHN3aXRjaCAoc3luY19zdGF0dXMpIHsK
LSAgICAgIGNhc2UgZ2wuVU5TSUdOQUxFRDoKLSAgICAgICAgdGVzdFBhc3NlZCgnZ2wuZ2V0U3lu
Y1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgaXMgZ2wuVU5TSUdOQUxFRCcpOwot
ICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgZ2wuU0lHTkFMRUQ6Ci0gICAgICAgIHRlc3RQYXNz
ZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGdsLlNJ
R05BTEVEJyk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgdGVzdEZh
aWxlZCgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgd2FzICcg
KyBzeW5jX3N0YXR1cyArCi0gICAgICAgICAgICAgICAgICAgJywgZXhwZWN0ZWQgZ2wuVU5TSUdO
QUxFRCBvciBnbC5TSUdOQUxFRCcpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgc2hvdWxk
QmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pJywgJ2dsLlNZ
TkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJh
bWV0ZXIoc3luYywgZ2wuU1lOQ19GTEFHUyknLCAnMCcpOwotICAgIHZhciB2YWxpZEFycmF5Rm9y
U3luY1BhcmFtZXRlciA9IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuT0JKRUNUX1RZUEUsCi0gICAg
ICAgIGdsLlNZTkNfU1RBVFVTLAotICAgICAgICBnbC5TWU5DX0NPTkRJVElPTiwKLSAgICAgICAg
Z2wuU1lOQ19GTEFHUwotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAg
ImdldFN5bmNQYXJhbWV0ZXIiLAotICAgICAgICAicG5hbWUiLAotICAgICAgICB2YWxpZEFycmF5
Rm9yU3luY1BhcmFtZXRlciwKLSAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKLSAgICAgICAgICAg
IHJldHVybiBnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIHBuYW1lKTsKLSAgICB9KTsKKyAgICAg
IGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEludGVybmFsZm9ybWF0
UGFyYW1ldGVyIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAgIFsgZ2wuU0FNUExFUyBd
LAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7CisgICAgICAgICAgICAgIHJldHVybiBnbC5n
ZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCBwbmFt
ZSk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRRdWVy
eVBhcmFtZXRlciIpOwotICAgIHZhciBxdWVyeSA9IGdsLmNyZWF0ZVF1ZXJ5KCk7Ci0gICAgZ2wu
YmVnaW5RdWVyeShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOLCBxdWVy
eSk7Ci0gICAgZ2wuZW5kUXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJ
VFRFTik7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5LCBnbC5RVUVS
WV9SRVNVTFRfQVZBSUxBQkxFKScsICdmYWxzZScpOwotICAgIC8vIFF1ZXJpZXMnIHJlc3VsdHMg
YXJlIHRlc3RlZCBlbHNld2hlcmUgaW4gdGhlIGNvbmZvcm1hbmNlIHN1aXRlLiBJdCdzIGNvbXBs
aWNhdGVkCi0gICAgLy8gdG8gd2FpdCBmb3IgdGhpcyBxdWVyeSdzIHJlc3VsdCB0byBiZWNvbWUg
YXZhaWxhYmxlIGFuZCB2ZXJpZnkgaXQuCi0gICAgdmFyIHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5l
dyBBcnJheSgKLSAgICAgICAgZ2wuUVVFUllfUkVTVUxULAotICAgICAgICBnbC5RVUVSWV9SRVNV
TFRfQVZBSUxBQkxFCi0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgICAi
Z2V0UXVlcnlQYXJhbWV0ZXIiLAotICAgICAgICAicG5hbWUiLAotICAgICAgICB2YWxpZEFycmF5
Rm9yUG5hbWUsCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4g
Z2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIHBuYW1lKTsKLSAgICAgICAgfQotICAgICk7Cisg
ICAgICBsZXQgdmFsaWRBcnJheUZvckludGVyZm9ybWF0ID0gbmV3IEFycmF5KAorICAgICAgICAg
IGdsLlI4LCBnbC5SOF9TTk9STSwgZ2wuUkc4LCBnbC5SRzhfU05PUk0sCisgICAgICAgICAgZ2wu
UkdCOCwgZ2wuUkdCOF9TTk9STSwgZ2wuUkdCNTY1LCBnbC5SR0JBNCwKKyAgICAgICAgICBnbC5S
R0I1X0ExLCBnbC5SR0JBOCwgZ2wuUkdCQThfU05PUk0sIGdsLlJHQjEwX0EyLAorICAgICAgICAg
IGdsLlJHQjEwX0EyVUksIGdsLlNSR0I4LCBnbC5TUkdCOF9BTFBIQTgsIGdsLlIxNkYsCisgICAg
ICAgICAgZ2wuUkcxNkYsIGdsLlJHQjE2RiwgZ2wuUkdCQTE2RiwgZ2wuUjMyRiwKKyAgICAgICAg
ICBnbC5SRzMyRiwgZ2wuUkdCMzJGLCBnbC5SR0JBMzJGLCBnbC5SMTFGX0cxMUZfQjEwRiwKKyAg
ICAgICAgICBnbC5SR0I5X0U1LCBnbC5SOEksIGdsLlI4VUksIGdsLlIxNkksCisgICAgICAgICAg
Z2wuUjE2VUksIGdsLlIzMkksIGdsLlIzMlVJLCBnbC5SRzhJLAorICAgICAgICAgIGdsLlJHOFVJ
LCBnbC5SRzE2SSwgZ2wuUkcxNlVJLCBnbC5SRzMySSwKKyAgICAgICAgICBnbC5SRzMyVUksIGds
LlJHQjhJLCBnbC5SR0I4VUksIGdsLlJHQjE2SSwKKyAgICAgICAgICBnbC5SR0IxNlVJLCBnbC5S
R0IzMkksIGdsLlJHQjMyVUksIGdsLlJHQkE4SSwKKyAgICAgICAgICBnbC5SR0JBOFVJLCBnbC5S
R0JBMTZJLCBnbC5SR0JBMTZVSSwgZ2wuUkdCQTMySSwKKyAgICAgICAgICBnbC5SR0JBMzJVSSwg
Z2wuUkdCLCBnbC5SR0JBLCBnbC5ERVBUSF9TVEVOQ0lMLCBnbC5ERVBUSF9DT01QT05FTlQxNiwK
KyAgICAgICAgICBnbC5ERVBUSF9DT01QT05FTlQyNCwgZ2wuREVQVEhfQ09NUE9ORU5UMzJGLCBn
bC5ERVBUSDI0X1NURU5DSUw4LAorICAgICAgICAgIGdsLkRFUFRIMzJGX1NURU5DSUw4LCBnbC5T
VEVOQ0lMX0lOREVYOAorICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQo
CisgICAgICAgICAgImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKKyAgICAgICAgICAiaW50
ZXJuYWxmb3JtYXQiLAorICAgICAgICAgIHZhbGlkQXJyYXlGb3JJbnRlcmZvcm1hdCwKKyAgICAg
ICAgICBmdW5jdGlvbihpbnRlcm5hbGZvcm1hdCkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wu
Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBpbnRlcm5hbGZvcm1h
dCwgZ2wuU0FNUExFUyk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygi
VGVzdCBnZXRGcmFnRGF0YUxvY2F0aW9uIik7Ci0gICAgdmFyIGJhc2VWZXJ0U2hhZGVyID0gJycg
KwotICAgICcjdmVyc2lvbiAzMDAgZXNcbicgKwotICAgICd1bmlmb3JtIG1hdDQgbW9kZWxWaWV3
TWF0cml4O1xuJyArCi0gICAgJ3VuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4O1xuJyArCi0g
ICAgJ2luIHZlYzQgdmVydGV4O1xuJyArCi0gICAgJ291dCB2ZWM0IHBvc2l0aW9uO1xuJyArCi0g
ICAgJ3ZvaWQgbWFpbiAodm9pZClcbicgKwotICAgICd7XG4nICsKLSAgICAnICAgICAgIHBvc2l0
aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVydGV4O1xuJyArCi0gICAgJyAgICAgICBnbF9Qb3Np
dGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBwb3NpdGlvbjtcbicgKwotICAgICd9XG4nOwotICAg
IHZhciBiYXNlRnJhZ1NoYWRlciA9ICcnICsKLSAgICAnI3ZlcnNpb24gMzAwIGVzXG4nICsKLSAg
ICAnaW4gbG93cCB2ZWM0IHBvc2l0aW9uO1xuJyArCi0gICAgJ2xheW91dChsb2NhdGlvbiA9IDAp
IG91dCBtZWRpdW1wIHZlYzQgZnJhZ0NvbG9yO1xuJyArCi0gICAgJ3ZvaWQgbWFpbiAodm9pZClc
bicgKwotICAgICd7XG4nICsKLSAgICAnICAgICAgIGZyYWdDb2xvciA9IHBvc2l0aW9uO1xuJyAr
Ci0gICAgJ31cbic7Ci0gICAgdmFyIHZlcnRTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVS
VEVYX1NIQURFUik7Ci0gICAgZ2wuc2hhZGVyU291cmNlKHZlcnRTaGFkZXIsIGJhc2VWZXJ0U2hh
ZGVyKTsKLSAgICBnbC5jb21waWxlU2hhZGVyKHZlcnRTaGFkZXIpOwotICAgIHNob3VsZEJlKCdn
bC5nZXRTaGFkZXJQYXJhbWV0ZXIodmVydFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3Ry
dWUnKTsKLSAgICB2YXIgZnJhZ1NoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9T
SEFERVIpOwotICAgIGdsLnNoYWRlclNvdXJjZShmcmFnU2hhZGVyLCBiYXNlRnJhZ1NoYWRlcik7
Ci0gICAgZ2wuY29tcGlsZVNoYWRlcihmcmFnU2hhZGVyKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0
U2hhZGVyUGFyYW1ldGVyKGZyYWdTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7
Ci0gICAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gICAgZ2wuYXR0YWNoU2hh
ZGVyKHByb2dyYW0sIHZlcnRTaGFkZXIpOwotICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBm
cmFnU2hhZGVyKTsKLSAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCd0cnVlJyk7
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInZlcnRleENv
bG9yIiknLCAnLTEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9n
cmFtLCAibW9kZWxWaWV3TWF0cml4IiknLCAnLTEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJh
Z0RhdGFMb2NhdGlvbihwcm9ncmFtLCAicHJvamVjdGlvbk1hdHJpeCIpJywgJy0xJyk7Ci0gICAg
c2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInBvc2l0aW9uIiknLCAn
LTEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAiZnJh
Z0NvbG9yIiknLCAnMCcpOwogCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJUZXN0IGdldEFj
dGl2ZVVuaWZvcm1zIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1By
b2dyYW0oZ2wpOwotICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOwotICAgIHNob3VsZEJlKCdn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7
Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1InKTsKKyAgICAgIGRl
YnVnKCIiKTsKKyAgICAgIGRlYnVnKCJUZXN0IGdldEluZGV4ZWRQYXJhbWV0ZXIiKTsKKyAgICAg
IHdpbmRvdy5idWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICAgIGdsLmJpbmRCdWZmZXIo
Z2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgYnVmZmVyKTsKKyAgICAgIGdsLmJ1ZmZlckRh
dGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgNjQsIGdsLkRZTkFNSUNfRFJBVyk7Cisg
ICAgICBnbC5iaW5kQnVmZmVyUmFuZ2UoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMCwg
YnVmZmVyLCA0LCA4KTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGds
LlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCknLCAnYnVmZmVyJyk7CisgICAg
ICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
QlVGRkVSX1NJWkUsIDApJywgJzgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQsIDApJywgJzQnKTsKKyAg
ICAgIHdpbmRvdy5idWZmZXIxID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgICBnbC5iaW5kQnVm
ZmVyKGdsLlVOSUZPUk1fQlVGRkVSLCBidWZmZXIxKTsKKyAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
VU5JRk9STV9CVUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOworICAgICAgd2luZG93Lm9mZnNl
dFVuaWZvcm0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdO
TUVOVCk7CisgICAgICBnbC5iaW5kQnVmZmVyUmFuZ2UoZ2wuVU5JRk9STV9CVUZGRVIsIDEsIGJ1
ZmZlcjEsIG9mZnNldFVuaWZvcm0sIDgpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAnYnVmZmVyMScpOworICAg
ICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfU0la
RSwgMSknLCAnOCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wu
VU5JRk9STV9CVUZGRVJfU1RBUlQsIDEpJywgJ29mZnNldFVuaWZvcm0nKTsKIAotICAgIHZhciBu
dW1BY3RpdmVVbmlmb3JtcyA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuQUNU
SVZFX1VOSUZPUk1TKTsKLSAgICB2YXIgYmxvY2tJbmRleCA9IGdsLmdldFVuaWZvcm1CbG9ja0lu
ZGV4KHByb2dyYW0sICJUcmFuc2Zvcm0iKTsKLSAgICB2YXIgdW5pZm9ybUluZGljZXMgPSBbXTsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUFjdGl2ZVVuaWZvcm1zOyBpKyspCi0gICAgICB1
bmlmb3JtSW5kaWNlcy5wdXNoKGkpOwotICAgIHZhciB0eXBlcyA9IGdsLmdldEFjdGl2ZVVuaWZv
cm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX1RZUEUpOwotICAgIHZhciBz
aXplcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5V
TklGT1JNX1NJWkUpOwotICAgIHZhciBibG9ja0luZGljZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jt
cyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9CTE9DS19JTkRFWCk7Ci0gICAg
dmFyIG9mZnNldHMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNl
cywgZ2wuVU5JRk9STV9PRkZTRVQpOwotICAgIHZhciBhcnJheVN0cmlkZXMgPSBnbC5nZXRBY3Rp
dmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9BUlJBWV9TVFJJ
REUpOwotICAgIHZhciBtYXRyaXhTdHJpZGVzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMocHJvZ3Jh
bSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fTUFUUklYX1NUUklERSk7Ci0gICAgdmFyIHJv
d01ham9ycyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBn
bC5VTklGT1JNX0lTX1JPV19NQUpPUik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1BY3Rp
dmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICBpZiAodHlwZXNbaV0gIT0gZ2wuRkxPQVRfTUFUNCAm
JiB0eXBlc1tpXSAhPSBnbC5GTE9BVF9NQVQzKQotICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3Rl
ZCB2YWx1ZTogR0xfRkxPQVRfTUFUNCBvciBHTF9GTE9BVF9NQVQzIiArICIgYWN0dWFsIHZhbHVl
IGZvciBVTklGT1JNX1RZUEUgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgd3R1Lmds
RW51bVRvU3RyaW5nKGdsLCB0eXBlc1tpXSkpOwotICAgICAgaWYgKHNpemVzW2ldICE9IDEpCi0g
ICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAxIiArICIgYWN0dWFsIHZhbHVlIGZv
ciBVTklGT1JNX1NJWkUgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgc2l6ZXNbaV0p
OwotICAgICAgaWYgKGJsb2NrSW5kaWNlc1tpXSAhPSBibG9ja0luZGV4KQotICAgICAgICB0ZXN0
RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9C
TE9DS19JTkRFWCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBibG9ja0luZGljZXNb
aV0pOwotICAgICAgaWYgKG9mZnNldHNbaV0gPCAwKQotICAgICAgICB0ZXN0RmFpbGVkKCJleHBl
Y3RlZCB2YWx1ZSA+PSAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX09GRlNFVCBmb3Ig
dW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBvZmZzZXRzW2ldKTsKLSAgICAgIGlmIChhcnJh
eVN0cmlkZXNbaV0gIT0gMCkKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6IDAi
ICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fQVJSQVlfU1RSSURFIGZvciB1bmlmb3JtIGlu
ZGV4WyIgKyBpICsgIl06IiArIGFycmF5U3RyaWRlc1tpXSk7Ci0gICAgICBpZiAobWF0cml4U3Ry
aWRlc1tpXSA8IDApCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlID49IDAiICsg
IiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fTUFUUklYX1NUUklERSBmb3IgdW5pZm9ybSBpbmRl
eFsiICsgaSArICJdOiIgKyBtYXRyaXhTdHJpZGVzW2ldKTsKLSAgICAgIHNob3VsZEJlKCd0eXBl
b2Ygcm93TWFqb3JzW2ldJywgJyJib29sZWFuIicpOwotICAgICAgaWYgKHJvd01ham9yc1tpXSAh
PSBmYWxzZSkKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6IDAiICsgIiBhY3R1
YWwgdmFsdWUgZm9yIFVOSUZPUk1fSVNfUk9XX01BSk9SIGZvciB1bmlmb3JtIGluZGV4WyIgKyBp
ICsgIl06IiArIHJvd01ham9yc1tpXSk7Ci0gICAgfQorICAgICAgZ2wuYmluZEJ1ZmZlckJhc2Uo
Z2wuVU5JRk9STV9CVUZGRVIsIDEsIG51bGwpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAnbnVsbCcpOwogCi0g
ICAgdmFyIHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuVU5JRk9S
TV9UWVBFLAotICAgICAgICBnbC5VTklGT1JNX1NJWkUsCi0gICAgICAgIGdsLlVOSUZPUk1fQkxP
Q0tfSU5ERVgsCi0gICAgICAgIGdsLlVOSUZPUk1fT0ZGU0VULAotICAgICAgICBnbC5VTklGT1JN
X0FSUkFZX1NUUklERSwKLSAgICAgICAgZ2wuVU5JRk9STV9NQVRSSVhfU1RSSURFLAotICAgICAg
ICBnbC5VTklGT1JNX0lTX1JPV19NQUpPUgotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVu
dCgKLSAgICAgICAgImdldEFjdGl2ZVVuaWZvcm1zIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAg
ICAgdmFsaWRBcnJheUZvclBuYW1lLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAg
ICAgICAgcmV0dXJuIGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2Vz
LCBwbmFtZSk7Ci0gICAgICAgIH0KLSAgICApOworICAgICAgbGV0IHZhbGlkQXJyYXlGb3JUYXJn
ZXQgPSBuZXcgQXJyYXkoCisgICAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9C
SU5ESU5HLAorICAgICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSwKKyAg
ICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJULAorICAgICAgICAgIGds
LlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsCisgICAgICAgICAgZ2wuVU5JRk9STV9CVUZGRVJfU0la
RSwKKyAgICAgICAgICBnbC5VTklGT1JNX0JVRkZFUl9TVEFSVAorICAgICAgKTsKKyAgICAgIGF3
YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEluZGV4ZWRQYXJhbWV0ZXIi
LAorICAgICAgICAgICJ0YXJnZXQiLAorICAgICAgICAgIHZhbGlkQXJyYXlGb3JUYXJnZXQsCisg
ICAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7CisgICAgICAgICAgICAgIHJldHVybiBnbC5nZXRJ
bmRleGVkUGFyYW1ldGVyKHRhcmdldCwgMCk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZygiVGVzdCBnZXRVbmlmb3JtQmxvY2tJbmRleCIpOwotICAgIHZhciBwcm9ncmFt
ID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKLSAgICBnbC5saW5rUHJvZ3JhbShw
cm9ncmFtKTsKLSAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3Jh
bSwgZ2wuTElOS19TVEFUVVMpJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0lu
ZGV4KHByb2dyYW0sICJUcmFuc2Zvcm0iKScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIpJywgJ2dsLklOVkFM
SURfSU5ERVgnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3Jh
bSwgIm5vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgInVfbm9ybWFsIiknLCAnZ2wuSU5WQUxJRF9JTkRF
WCcpOwotICAgIHZhciBub1VuaWZvcm1Qcm9ncmFtID0gd3R1LmxvYWRTdGFuZGFyZFByb2dyYW0o
Z2wpOwotICAgIGdsLmxpbmtQcm9ncmFtKG5vVW5pZm9ybVByb2dyYW0pOwotICAgIHNob3VsZEJl
VHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihub1VuaWZvcm1Qcm9ncmFtLCBnbC5MSU5LX1NU
QVRVUyknKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgobm9Vbmlmb3Jt
UHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsK
LSAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgobm9Vbmlmb3JtUHJvZ3JhbSwg
InVfbm9ybWFsIiknLCAnZ2wuSU5WQUxJRF9JTkRFWCcpOworICAgICAgZGVidWcoIiIpOworICAg
ICAgZGVidWcoIlRlc3QgZ2V0U2FtcGxlclBhcmFtZXRlciIpOworICAgICAgd2luZG93LnNhbXBs
ZXIgPSBnbC5jcmVhdGVTYW1wbGVyKCk7CisgICAgICBnbC5zYW1wbGVyUGFyYW1ldGVyaShzYW1w
bGVyLCBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywgZ2wuTEVRVUFMKTsKKyAgICAgIGdsLnNhbXBs
ZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9NT0RFLCBnbC5DT01QQVJF
X1JFRl9UT19URVhUVVJFKTsKKyAgICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgICBnbC5zYW1wbGVyUGFyYW1l
dGVyZihzYW1wbGVyLCBnbC5URVhUVVJFX01BWF9MT0QsIDEwKTsKKyAgICAgIGdsLnNhbXBsZXJQ
YXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Cisg
ICAgICBnbC5zYW1wbGVyUGFyYW1ldGVyZihzYW1wbGVyLCBnbC5URVhUVVJFX01JTl9MT0QsIDAp
OworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1Is
IGdsLkNMQU1QX1RPX0VER0UpOworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxlciwg
Z2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgICAgZ2wuc2FtcGxlclBh
cmFtZXRlcmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwor
ICAgICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVS
RV9DT01QQVJFX0ZVTkMpJywgJ2dsLkxFUVVBTCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFNh
bXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUpJywgJ2dsLkNP
TVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFy
YW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiknLCAnZ2wuTkVBUkVTVCcpOwor
ICAgICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVS
RV9NQVhfTE9EKScsICcxMCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0
ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7CisgICAg
ICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01J
Tl9MT0QpJywgJzAnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNh
bXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9SKScsICdnbC5DTEFNUF9UT19FREdFJyk7CisgICAgICBz
aG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX1dSQVBf
UyknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQ
YXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1QpJywgJ2dsLkNMQU1QX1RPX0VER0Un
KTsKKyAgICAgIGxldCB2YWxpZEFycmF5Rm9yU2FtcGxlclBhcmFtZXRlciA9IG5ldyBBcnJheSgK
KyAgICAgICAgICBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywKKyAgICAgICAgICBnbC5URVhUVVJF
X0NPTVBBUkVfTU9ERSwKKyAgICAgICAgICBnbC5URVhUVVJFX01BR19GSUxURVIsCisgICAgICAg
ICAgZ2wuVEVYVFVSRV9NQVhfTE9ELAorICAgICAgICAgIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwK
KyAgICAgICAgICBnbC5URVhUVVJFX01JTl9MT0QsCisgICAgICAgICAgZ2wuVEVYVFVSRV9XUkFQ
X1IsCisgICAgICAgICAgZ2wuVEVYVFVSRV9XUkFQX1MsCisgICAgICAgICAgZ2wuVEVYVFVSRV9X
UkFQX1QKKyAgICAgICk7CisgICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAg
ICAgICJnZXRTYW1wbGVyUGFyYW1ldGVyIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAg
IHZhbGlkQXJyYXlGb3JTYW1wbGVyUGFyYW1ldGVyLAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1l
KSB7CisgICAgICAgICAgICAgIHJldHVybiBnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIs
IHBuYW1lKTsKKyAgICAgIH0pOwogCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJUZXN0IGdl
dEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUiKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0dS5sb2FkVW5p
Zm9ybUJsb2NrUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci0gICAg
c2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RB
VFVTKScpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrTmFtZShwcm9ncmFtLCAwKScsICdUcmFuc2Zvcm0nKTsKLSAgICBzaG91bGRCZU51bGwoJ2ds
LmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUocHJvZ3JhbSwgLTEpJyk7Ci0gICAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Ci0gICAgc2hvdWxkQmVOdWxsKCdnbC5n
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIDEpJyk7Ci0gICAgd3R1LmdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Ci0gICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRB
Y3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIGdsLklOVkFMSURfSU5ERVgpJyk7Ci0gICAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7Ci0gICAgdmFyIG5vTGlu
a1Byb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihub0xpbmtQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknKTsKLSAgICB3
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdl
dEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9MaW5rUHJvZ3JhbSwgMCknKTsKLSAgICB2YXIgbm9V
bmlmb3JtUHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKLSAgICBnbC5saW5r
UHJvZ3JhbShub1VuaWZvcm1Qcm9ncmFtKTsKLSAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dy
YW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7Ci0gICAgc2hv
dWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vVW5pZm9ybVByb2dyYW0s
IC0xKScpOwotICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwot
ICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShub1VuaWZvcm1Q
cm9ncmFtLCAwKScpOwotICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFM
VUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShub1Vu
aWZvcm1Qcm9ncmFtLCBnbC5JTlZBTElEX0lOREVYKScpOwotICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWco
IlRlc3QgZ2V0U3luY1BhcmFtZXRlciIpOworICAgICAgd2luZG93LnN5bmMgPSBnbC5mZW5jZVN5
bmMoZ2wuU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUsIDApOworICAgICAgc2hvdWxkQmUoJ2ds
LmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuT0JKRUNUX1RZUEUpJywgJ2dsLlNZTkNfRkVOQ0Un
KTsKKyAgICAgIGxldCBzeW5jX3N0YXR1cyA9IGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wu
U1lOQ19TVEFUVVMpOworICAgICAgc3dpdGNoIChzeW5jX3N0YXR1cykgeworICAgICAgICBjYXNl
IGdsLlVOU0lHTkFMRUQ6CisgICAgICAgICAgdGVzdFBhc3NlZCgnZ2wuZ2V0U3luY1BhcmFtZXRl
cihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgaXMgZ2wuVU5TSUdOQUxFRCcpOworICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIGdsLlNJR05BTEVEOgorICAgICAgICAgIHRlc3RQYXNzZWQo
J2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGdsLlNJR05B
TEVEJyk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgdGVz
dEZhaWxlZCgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJVElPTikgd2Fz
ICcgKyBzeW5jX3N0YXR1cyArCisgICAgICAgICAgICAgICAgICAgICAnLCBleHBlY3RlZCBnbC5V
TlNJR05BTEVEIG9yIGdsLlNJR05BTEVEJyk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9Cisg
ICAgICBzaG91bGRCZSgnZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0NPTkRJVElP
TiknLCAnZ2wuU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEUnKTsKKyAgICAgIHNob3VsZEJlKCdn
bC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfRkxBR1MpJywgJzAnKTsKKyAgICAgIGxl
dCB2YWxpZEFycmF5Rm9yU3luY1BhcmFtZXRlciA9IG5ldyBBcnJheSgKKyAgICAgICAgICBnbC5P
QkpFQ1RfVFlQRSwKKyAgICAgICAgICBnbC5TWU5DX1NUQVRVUywKKyAgICAgICAgICBnbC5TWU5D
X0NPTkRJVElPTiwKKyAgICAgICAgICBnbC5TWU5DX0ZMQUdTCisgICAgICApOworICAgICAgYXdh
aXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAiZ2V0U3luY1BhcmFtZXRlciIsCisg
ICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9yU3luY1BhcmFtZXRlciwK
KyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0
U3luY1BhcmFtZXRlcihzeW5jLCBwbmFtZSk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZygiVGVzdCBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIiKTsKLSAgICB2
YXIgcHJvZ3JhbSA9IHd0dS5sb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlu
a1Byb2dyYW0ocHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1l
dGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRBY3Rp
dmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19CSU5E
SU5HKScsICcwJyk7Ci0gICAgZ2wudW5pZm9ybUJsb2NrQmluZGluZyhwcm9ncmFtLCAwLCAxKTsK
LSAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0s
IDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklORElORyknLCAnMScpOwotICAgIC8vIFRoZSBhY3R1YWwg
YmxvY2sgZGF0YSBzaXplIGNhbiBiZSBiaWdnZXIgdGhhbiAxNjQsIGRlcGVuZGluZyBvbiB0aGUg
dW5pZm9ybSBibG9jayBsYXlvdXQuCi0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3RpdmVVbmlm
b3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19EQVRBX1NJWkUp
ID49IDE2NCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0
ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMpJywgJzMnKTsK
LSAgICBzaG91bGRCZVRydWUoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9n
cmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllfVkVSVEVYX1NIQURFUiknKTsK
LSAgICBzaG91bGRCZUZhbHNlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJv
Z3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdNRU5UX1NIQURFUikn
KTsKLSAgICB2YXIgaW5kaWNlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihw
cm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lORElDRVMpOwotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7Ci0gICAgICBpZiAoaW5kaWNlc1tpXSA8IDAp
Ci0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlID49IDAiICsgIiBhY3R1YWwgdmFs
dWUgZm9yIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5ESUNFUyBmb3IgdW5pZm9ybSBp
bmRleFsiICsgaSArICJdOiIgKyBpbmRpY2VzW2ldKTsKLSAgICB9Ci0gICAgdmFyIHZhbGlkQXJy
YXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKLSAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19CSU5ESU5H
LAotICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0RBVEFfU0laRSwKLSAgICAgICAgZ2wuVU5JRk9S
TV9CTE9DS19BQ1RJVkVfVU5JRk9STVMsCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUywKLSAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZ
X1ZFUlRFWF9TSEFERVIsCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9G
UkFHTUVOVF9TSEFERVIKLSAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgICAg
ICJnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIiLAotICAgICAgICAicG5hbWUiLAotICAg
ICAgICB2YWxpZEFycmF5Rm9yUG5hbWUsCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0s
IDAsIHBuYW1lKTsKLSAgICAgICAgfQotICAgICk7Ci19CisgICAgICBkZWJ1ZygiIik7CisgICAg
ICBkZWJ1ZygiVGVzdCBnZXRRdWVyeVBhcmFtZXRlciIpOworICAgICAgd2luZG93LnF1ZXJ5ID0g
Z2wuY3JlYXRlUXVlcnkoKTsKKyAgICAgIGdsLmJlZ2luUXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURC
QUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgcXVlcnkpOworICAgICAgZ2wuZW5kUXVlcnkoZ2wuVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTik7CisgICAgICBzaG91bGRCZSgnZ2wu
Z2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIGdsLlFVRVJZX1JFU1VMVF9BVkFJTEFCTEUpJywgJ2Zh
bHNlJyk7CisgICAgICAvLyBRdWVyaWVzJyByZXN1bHRzIGFyZSB0ZXN0ZWQgZWxzZXdoZXJlIGlu
IHRoZSBjb25mb3JtYW5jZSBzdWl0ZS4gSXQncyBjb21wbGljYXRlZAorICAgICAgLy8gdG8gd2Fp
dCBmb3IgdGhpcyBxdWVyeSdzIHJlc3VsdCB0byBiZWNvbWUgYXZhaWxhYmxlIGFuZCB2ZXJpZnkg
aXQuCisgICAgICBsZXQgdmFsaWRBcnJheUZvclBuYW1lID0gbmV3IEFycmF5KAorICAgICAgICAg
IGdsLlFVRVJZX1JFU1VMVCwKKyAgICAgICAgICBnbC5RVUVSWV9SRVNVTFRfQVZBSUxBQkxFCisg
ICAgICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAgICAiZ2V0
UXVlcnlQYXJhbWV0ZXIiLAorICAgICAgICAgICJwbmFtZSIsCisgICAgICAgICAgdmFsaWRBcnJh
eUZvclBuYW1lLAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7CisgICAgICAgICAgICAgIHJl
dHVybiBnbC5nZXRRdWVyeVBhcmFtZXRlcihxdWVyeSwgcG5hbWUpOworICAgICAgICAgIH0KKyAg
ICAgICk7CisKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJUZXN0IGdldEZyYWdEYXRh
TG9jYXRpb24iKTsKKyAgICAgIGxldCBiYXNlVmVydFNoYWRlciA9ICcnICsKKyAgICAgICcjdmVy
c2lvbiAzMDAgZXNcbicgKworICAgICAgJ3VuaWZvcm0gbWF0NCBtb2RlbFZpZXdNYXRyaXg7XG4n
ICsKKyAgICAgICd1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDtcbicgKworICAgICAgJ2lu
IHZlYzQgdmVydGV4O1xuJyArCisgICAgICAnb3V0IHZlYzQgcG9zaXRpb247XG4nICsKKyAgICAg
ICd2b2lkIG1haW4gKHZvaWQpXG4nICsKKyAgICAgICd7XG4nICsKKyAgICAgICcgICAgICAgcG9z
aXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiB2ZXJ0ZXg7XG4nICsKKyAgICAgICcgICAgICAgZ2xf
UG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogcG9zaXRpb247XG4nICsKKyAgICAgICd9XG4n
OworICAgICAgbGV0IGJhc2VGcmFnU2hhZGVyID0gJycgKworICAgICAgJyN2ZXJzaW9uIDMwMCBl
c1xuJyArCisgICAgICAnaW4gbG93cCB2ZWM0IHBvc2l0aW9uO1xuJyArCisgICAgICAnbGF5b3V0
KGxvY2F0aW9uID0gMCkgb3V0IG1lZGl1bXAgdmVjNCBmcmFnQ29sb3I7XG4nICsKKyAgICAgICd2
b2lkIG1haW4gKHZvaWQpXG4nICsKKyAgICAgICd7XG4nICsKKyAgICAgICcgICAgICAgZnJhZ0Nv
bG9yID0gcG9zaXRpb247XG4nICsKKyAgICAgICd9XG4nOworICAgICAgd2luZG93LnZlcnRTaGFk
ZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CisgICAgICBnbC5zaGFkZXJT
b3VyY2UodmVydFNoYWRlciwgYmFzZVZlcnRTaGFkZXIpOworICAgICAgZ2wuY29tcGlsZVNoYWRl
cih2ZXJ0U2hhZGVyKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIodmVy
dFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsKKyAgICAgIHdpbmRvdy5mcmFn
U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CisgICAgICBnbC5z
aGFkZXJTb3VyY2UoZnJhZ1NoYWRlciwgYmFzZUZyYWdTaGFkZXIpOworICAgICAgZ2wuY29tcGls
ZVNoYWRlcihmcmFnU2hhZGVyKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0
ZXIoZnJhZ1NoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpJywgJ3RydWUnKTsKKyAgICAgIHdpbmRv
dy5wcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICAgICAgZ2wuYXR0YWNoU2hhZGVyKHBy
b2dyYW0sIHZlcnRTaGFkZXIpOworICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdT
aGFkZXIpOworICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgICBzaG91bGRCZSgn
Z2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCd0cnVlJyk7
CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAidmVydGV4
Q29sb3IiKScsICctMScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24o
cHJvZ3JhbSwgIm1vZGVsVmlld01hdHJpeCIpJywgJy0xJyk7CisgICAgICBzaG91bGRCZSgnZ2wu
Z2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAicHJvamVjdGlvbk1hdHJpeCIpJywgJy0xJyk7
CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAicG9zaXRp
b24iKScsICctMScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJv
Z3JhbSwgImZyYWdDb2xvciIpJywgJzAnKTsKKworICAgICAgZGVidWcoIiIpOworICAgICAgZGVi
dWcoIlRlc3QgZ2V0QWN0aXZlVW5pZm9ybXMiKTsKKyAgICAgIHByb2dyYW0gPSB3dHUubG9hZFVu
aWZvcm1CbG9ja1Byb2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7Cisg
ICAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NU
QVRVUyknLCAndHJ1ZScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9f
RVJST1InKTsKKworICAgICAgbGV0IG51bUFjdGl2ZVVuaWZvcm1zID0gZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihwcm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STVMpOworICAgICAgbGV0IGJsb2NrSW5k
ZXggPSBnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChwcm9ncmFtLCAiVHJhbnNmb3JtIik7CisgICAg
ICBsZXQgdW5pZm9ybUluZGljZXMgPSBbXTsKKyAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVt
QWN0aXZlVW5pZm9ybXM7IGkrKykKKyAgICAgICAgdW5pZm9ybUluZGljZXMucHVzaChpKTsKKyAg
ICAgIGxldCB0eXBlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRp
Y2VzLCBnbC5VTklGT1JNX1RZUEUpOworICAgICAgbGV0IHNpemVzID0gZ2wuZ2V0QWN0aXZlVW5p
Zm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fU0laRSk7CisgICAgICBs
ZXQgYmxvY2tJbmRpY2VzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUlu
ZGljZXMsIGdsLlVOSUZPUk1fQkxPQ0tfSU5ERVgpOworICAgICAgbGV0IG9mZnNldHMgPSBnbC5n
ZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9PRkZT
RVQpOworICAgICAgbGV0IGFycmF5U3RyaWRlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dy
YW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX0FSUkFZX1NUUklERSk7CisgICAgICBsZXQg
bWF0cml4U3RyaWRlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRp
Y2VzLCBnbC5VTklGT1JNX01BVFJJWF9TVFJJREUpOworICAgICAgbGV0IHJvd01ham9ycyA9IGds
LmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX0lT
X1JPV19NQUpPUik7CisgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUFjdGl2ZVVuaWZvcm1z
OyBpKyspIHsKKyAgICAgICAgaWYgKHR5cGVzW2ldICE9IGdsLkZMT0FUX01BVDQgJiYgdHlwZXNb
aV0gIT0gZ2wuRkxPQVRfTUFUMykKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1
ZTogR0xfRkxPQVRfTUFUNCBvciBHTF9GTE9BVF9NQVQzIiArICIgYWN0dWFsIHZhbHVlIGZvciBV
TklGT1JNX1RZUEUgZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgd3R1LmdsRW51bVRv
U3RyaW5nKGdsLCB0eXBlc1tpXSkpOworICAgICAgICBpZiAoc2l6ZXNbaV0gIT0gMSkKKyAgICAg
ICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMSIgKyAiIGFjdHVhbCB2YWx1ZSBmb3Ig
VU5JRk9STV9TSVpFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHNpemVzW2ldKTsK
KyAgICAgICAgaWYgKGJsb2NrSW5kaWNlc1tpXSAhPSBibG9ja0luZGV4KQorICAgICAgICAgIHRl
c3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JN
X0JMT0NLX0lOREVYIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIGJsb2NrSW5kaWNl
c1tpXSk7CisgICAgICAgIGlmIChvZmZzZXRzW2ldIDwgMCkKKyAgICAgICAgICB0ZXN0RmFpbGVk
KCJleHBlY3RlZCB2YWx1ZSA+PSAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX09GRlNF
VCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBvZmZzZXRzW2ldKTsKKyAgICAgICAg
aWYgKGFycmF5U3RyaWRlc1tpXSAhPSAwKQorICAgICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVk
IHZhbHVlOiAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX0FSUkFZX1NUUklERSBmb3Ig
dW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBhcnJheVN0cmlkZXNbaV0pOworICAgICAgICBp
ZiAobWF0cml4U3RyaWRlc1tpXSA8IDApCisgICAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQg
dmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9NQVRSSVhfU1RSSURFIGZv
ciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIG1hdHJpeFN0cmlkZXNbaV0pOworICAgICAg
ICBzaG91bGRCZShgIiR7dHlwZW9mIHJvd01ham9yc1tpXX0iYCwgJyJib29sZWFuIicpOworICAg
ICAgICBpZiAocm93TWFqb3JzW2ldICE9IGZhbHNlKQorICAgICAgICAgIHRlc3RGYWlsZWQoImV4
cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX0lTX1JPV19NQUpP
UiBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyByb3dNYWpvcnNbaV0pOworICAgICAg
fQorCisgICAgICB2YWxpZEFycmF5Rm9yUG5hbWUgPSBuZXcgQXJyYXkoCisgICAgICAgICAgZ2wu
VU5JRk9STV9UWVBFLAorICAgICAgICAgIGdsLlVOSUZPUk1fU0laRSwKKyAgICAgICAgICBnbC5V
TklGT1JNX0JMT0NLX0lOREVYLAorICAgICAgICAgIGdsLlVOSUZPUk1fT0ZGU0VULAorICAgICAg
ICAgIGdsLlVOSUZPUk1fQVJSQVlfU1RSSURFLAorICAgICAgICAgIGdsLlVOSUZPUk1fTUFUUklY
X1NUUklERSwKKyAgICAgICAgICBnbC5VTklGT1JNX0lTX1JPV19NQUpPUgorICAgICAgKTsKKyAg
ICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEFjdGl2ZVVuaWZv
cm1zIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAgIHZhbGlkQXJyYXlGb3JQbmFtZSwK
KyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0
QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIHBuYW1lKTsKKyAgICAgICAg
ICB9CisgICAgICApOworCisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRV
bmlmb3JtQmxvY2tJbmRleCIpOworICAgICAgcHJvZ3JhbSA9IHd0dS5sb2FkVW5pZm9ybUJsb2Nr
UHJvZ3JhbShnbCk7CisgICAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKKyAgICAgIHNob3Vs
ZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykn
KTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChwcm9ncmFtLCAiVHJh
bnNmb3JtIiknLCAnMCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4
KHByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsKKyAg
ICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChwcm9ncmFtLCAibm9ybWFsIikn
LCAnZ2wuSU5WQUxJRF9JTkRFWCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9j
a0luZGV4KHByb2dyYW0sICJ1X25vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsKKyAgICAg
IHdpbmRvdy5ub1VuaWZvcm1Qcm9ncmFtID0gd3R1LmxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOwor
ICAgICAgZ2wubGlua1Byb2dyYW0obm9Vbmlmb3JtUHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRy
dWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19TVEFU
VVMpJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgobm9Vbmlmb3Jt
UHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsK
KyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChub1VuaWZvcm1Qcm9ncmFt
LCAidV9ub3JtYWwiKScsICdnbC5JTlZBTElEX0lOREVYJyk7CisKKyAgICAgIGRlYnVnKCIiKTsK
KyAgICAgIGRlYnVnKCJUZXN0IGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUiKTsKKyAgICAgIHBy
b2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOworICAgICAgZ2wubGlua1By
b2dyYW0ocHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0
ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7CisgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUocHJvZ3JhbSwgMCknLCAnVHJhbnNmb3Jt
Jyk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUocHJv
Z3JhbSwgLTEpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZB
TFVFKTsKKyAgICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShw
cm9ncmFtLCAxKScpOworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9W
QUxVRSk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUo
cHJvZ3JhbSwgZ2wuSU5WQUxJRF9JTkRFWCknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfVkFMVUUpOworICAgICAgd2luZG93Lm5vTGlua1Byb2dyYW0gPSBnbC5j
cmVhdGVQcm9ncmFtKCk7CisgICAgICBzaG91bGRCZUZhbHNlKCdnbC5nZXRQcm9ncmFtUGFyYW1l
dGVyKG5vTGlua1Byb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgd3R1LnNob3VsZEdl
bmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRBY3RpdmVVbmlm
b3JtQmxvY2tOYW1lKG5vTGlua1Byb2dyYW0sIDApJyk7CisgICAgICBub1VuaWZvcm1Qcm9ncmFt
ID0gd3R1LmxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dyYW0obm9V
bmlmb3JtUHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0
ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7CisgICAgICBzaG91bGRCZU51
bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlmb3JtUHJvZ3JhbSwgLTEpJyk7
CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKKyAgICAg
IHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShub1VuaWZvcm1Qcm9n
cmFtLCAwKScpOworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxV
RSk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9V
bmlmb3JtUHJvZ3JhbSwgZ2wuSU5WQUxJRF9JTkRFWCknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOworCisgICAgICBkZWJ1ZygiIik7CisgICAgICBk
ZWJ1ZygiVGVzdCBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIiKTsKKyAgICAgIHByb2dy
YW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dy
YW0ocHJvZ3JhbSk7CisgICAgICBzaG91bGRCZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIo
cHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZl
VW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklORElO
RyknLCAnMCcpOworICAgICAgZ2wudW5pZm9ybUJsb2NrQmluZGluZyhwcm9ncmFtLCAwLCAxKTsK
KyAgICAgIHNob3VsZEJlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3Jh
bSwgMCwgZ2wuVU5JRk9STV9CTE9DS19CSU5ESU5HKScsICcxJyk7CisgICAgICAvLyBUaGUgYWN0
dWFsIGJsb2NrIGRhdGEgc2l6ZSBjYW4gYmUgYmlnZ2VyIHRoYW4gMTY0LCBkZXBlbmRpbmcgb24g
dGhlIHVuaWZvcm0gYmxvY2sgbGF5b3V0LgorICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3Rp
dmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19EQVRB
X1NJWkUpID49IDE2NCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9j
a1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNUykn
LCAnMycpOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJh
bWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9T
SEFERVIpJyk7CisgICAgICBzaG91bGRCZUZhbHNlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdN
RU5UX1NIQURFUiknKTsKKyAgICAgIGxldCBpbmRpY2VzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1f
SU5ESUNFUyk7CisgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICBp
ZiAoaW5kaWNlc1tpXSA8IDApCisgICAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWUg
Pj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9J
TkRJQ0VTIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIGluZGljZXNbaV0pOworICAg
ICAgfQorICAgICAgdmFsaWRBcnJheUZvclBuYW1lID0gbmV3IEFycmF5KAorICAgICAgICAgIGds
LlVOSUZPUk1fQkxPQ0tfQklORElORywKKyAgICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0RBVEFf
U0laRSwKKyAgICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNUywKKyAgICAg
ICAgICBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lORElDRVMsCisgICAgICAgICAg
Z2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVIsCisgICAgICAgICAg
Z2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdNRU5UX1NIQURFUgorICAgICAgKTsK
KyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEFjdGl2ZVVu
aWZvcm1CbG9ja1BhcmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICB2YWxp
ZEFycmF5Rm9yUG5hbWUsCisgICAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuIGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFtLCAwLCBw
bmFtZSk7CisgICAgICAgICAgfQorICAgICAgKTsKKyAgfQorCisgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOworICBmaW5pc2hUZXN0KCk7Cit9KSgpOwogCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKK2xldCBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMKaW5kZXgg
NmQ5MzZiNTA5NjBjZDZiNzgyYTI1NTEzNTdmNGU0ZTc5Njc0ODJhOS4uMTRjZjQ2MjhiZWMwMWY3
NzI1ZjA0NzgxMzVmYjJlZTZhMTQ2YTJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcworKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpzCkBAIC03MSw4ICs3MSw4
IEBAIGZ1bmN0aW9uIGdlbmVyYXRlVGVzdChpbnRlcm5hbEZvcm1hdCwgcGl4ZWxGb3JtYXQsIHBp
eGVsVHlwZSwgcHJvbG9ndWUsIHJlc291cmNlCiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHZpZGVvKTsKICAgICAgICAgICAgIHZpZGVvLnR5cGUgPSBpbmZvLnR5cGU7CiAg
ICAgICAgICAgICB2aWRlby5zcmMgPSBpbmZvLnNyYzsKLSAgICAgICAgICAgIHd0dS5zdGFydFBs
YXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
IHJ1bkltYWdlQml0bWFwVGVzdCh2aWRlbywgMSwgaW50ZXJuYWxGb3JtYXQsIHBpeGVsRm9ybWF0
LCBwaXhlbFR5cGUsIGdsLCB0aXUsIHd0dSwgZmFsc2UpOworICAgICAgICAgICAgd3R1LnN0YXJ0
UGxheWluZ0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgYXdhaXQgcnVuSW1hZ2VCaXRtYXBUZXN0KHZpZGVvLCAxLCBpbnRlcm5hbEZvcm1h
dCwgcGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgZ2wsIHRpdSwgd3R1LCBmYWxzZSk7CiAgICAgICAg
ICAgICAgICAgcnVuTmV4dFZpZGVvKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
dGVzdHMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12
aWRlby5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTNkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20t
dmlkZW8uanMKaW5kZXggODZkNzZmMjlkZTNiNTljMWJhY2JkOTU2OWE2OTg2MTY4MWMzMmNlZC4u
YTI2OGY3ZDhkNTUwZTZhZjRmOTQ1ZmYwZTg5MmJjYzlhOWQ5MGUyMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcworKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0zZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpz
CkBAIC03MSw4ICs3MSw4IEBAIGZ1bmN0aW9uIGdlbmVyYXRlVGVzdChpbnRlcm5hbEZvcm1hdCwg
cGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcHJvbG9ndWUsIHJlc291cmNlCiAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKICAgICAgICAgICAgIHZpZGVvLnR5cGUg
PSBpbmZvLnR5cGU7CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBpbmZvLnNyYzsKLSAgICAgICAg
ICAgIHd0dS5zdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgIHJ1bkltYWdlQml0bWFwVGVzdCh2aWRlbywgMSwgaW50ZXJuYWxGb3Jt
YXQsIHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIGdsLCB0aXUsIHd0dSwgdHJ1ZSk7CisgICAgICAg
ICAgICB3dHUuc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBhc3luYyBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBydW5JbWFnZUJpdG1hcFRlc3QodmlkZW8sIDEs
IGludGVybmFsRm9ybWF0LCBwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBnbCwgdGl1LCB3dHUsIHRy
dWUpOwogICAgICAgICAgICAgICAgIHJ1bk5leHRWaWRlbygpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzCmluZGV4IDQ2ODRl
YTgxMGJlYWY5ZjI3YTkwZDBmYTM4ZGE1ZjM0OTEyOGRmYjYuLjlhZmZhMTA4MjMwNDRiMTY0OTBl
MGUzN2JmOGFjMmIzY2M5MWM3M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGls
cy5qcwpAQCAtMTczMyw2ICsxNzMzLDEwIEBAIHZhciBnbEVycm9yU2hvdWxkQmUgPSBmdW5jdGlv
bihnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKICAgcmV0dXJuIGdsRXJyb3JTaG91bGRCZUltcGwo
Z2wsIGdsRXJyb3JzLCB0cnVlLCBvcHRfbXNnKTsKIH07CiAKK2NvbnN0IGdsRXJyb3JBc3NlcnQg
PSBmdW5jdGlvbihnbCwgZ2xFcnJvcnMsIG9wdF9tc2cpIHsKKyAgcmV0dXJuIGdsRXJyb3JTaG91
bGRCZUltcGwoZ2wsIGdsRXJyb3JzLCBmYWxzZSwgb3B0X21zZyk7Cit9OworCiAvKioKICAqIFRl
c3RzIHRoYXQgdGhlIGdpdmVuIGZyYW1lYnVmZmVyIGhhcyBhIHNwZWNpZmljIHN0YXR1cwogICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KQEAgLTI5MjMsMTQgKzI5MjcsNiBAQCB2YXIgcmVxdWVzdEFuaW1GcmFtZSA9
IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgIF9yZXF1ZXN0QW5pbUZyYW1lLmNhbGwod2luZG93LCBj
YWxsYmFjayk7CiB9OwogCi0vKioKLSAqIFByb3ZpZGVzIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2sgaW4gYSBjcm9zcyBicm93c2VyIHdheS4KLSAqIFJldHVybnMgYSBwcm9wZXJ0eSwg
b3IgdW5kZWZpbmVkIGlmIHVuc3Vwb3J0ZWQuCi0gKi8KLXZhciBnZXRSZXF1ZXN0VmlkRnJhbWVD
YWxsYmFjayA9IGZ1bmN0aW9uKCkgewotICByZXR1cm4gSFRNTFZpZGVvRWxlbWVudC5wcm90b3R5
cGVbInJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siXTsKLX07Ci0KIHZhciBfY2FuY2VsQW5pbUZy
YW1lOwogCiAvKioKQEAgLTMwOTksNyArMzA5NSwxMSBAQCB2YXIgc2V0WmVyb1RpbWVvdXQgPSAo
ZnVuY3Rpb24oKSB7CiBmdW5jdGlvbiBkaXNwYXRjaFByb21pc2UoZm4pIHsKICAgcmV0dXJuIG5l
dyBQcm9taXNlKChmbl9yZXNvbHZlLCBmbl9yZWplY3QpID0+IHsKICAgICBzZXRaZXJvVGltZW91
dCgoKSA9PiB7Ci0gICAgICBmbl9yZXNvbHZlKGZuKCkpOworICAgICAgbGV0IHZhbDsKKyAgICAg
IGlmIChmbikgeworICAgICAgICB2YWwgPSBmbigpOworICAgICAgfQorICAgICAgZm5fcmVzb2x2
ZSh2YWwpOwogICAgIH0pOwogICB9KTsKIH0KQEAgLTMxMzIsMzggKzMxMzIsMzAgQEAgdmFyIHJ1
blN0ZXBzID0gZnVuY3Rpb24oc3RlcHMpIHsKICAqIEBwYXJhbSB7IWZ1bmN0aW9uKCFIVE1MVmlk
ZW9FbGVtZW50KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdG8gY2FsbCB3aGVuCiAgKiAgICAg
ICAgdmlkZW8gaXMgcmVhZHkuCiAgKi8KLWZ1bmN0aW9uIHN0YXJ0UGxheWluZ0FuZFdhaXRGb3JW
aWRlbyh2aWRlbywgY2FsbGJhY2spIHsKK2FzeW5jIGZ1bmN0aW9uIHN0YXJ0UGxheWluZ0FuZFdh
aXRGb3JWaWRlbyh2aWRlbywgY2FsbGJhY2spIHsKICAgaWYgKHZpZGVvLmVycm9yKSB7CiAgICAg
dGVzdEZhaWxlZCgnVmlkZW8gZmFpbGVkIHRvIGxvYWQ6ICcgKyB2aWRlby5lcnJvcik7CiAgICAg
cmV0dXJuOwogICB9CiAKLSAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICdlcnJvcics
IGUgPT4geyB0ZXN0RmFpbGVkKCdWaWRlbyBwbGF5YmFjayBmYWlsZWQ6ICcgKyBlLm1lc3NhZ2Up
OyB9LAotICAgICAgdHJ1ZSk7Ci0KLSAgdmFyIHJ2ZmMgPSBnZXRSZXF1ZXN0VmlkRnJhbWVDYWxs
YmFjaygpOwotICBpZiAocnZmYyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgdmFyIHRpbWVXYXRjaGVy
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodmlkZW8uY3VycmVudFRpbWUgPiAwKSB7Ci0gICAg
ICAgIGNhbGxiYWNrKHZpZGVvKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlcXVlc3RBbmlt
RnJhbWUuY2FsbCh3aW5kb3csIHRpbWVXYXRjaGVyKTsKLSAgICAgIH0KLSAgICB9OwotCi0gICAg
dGltZVdhdGNoZXIoKTsKLSAgfSBlbHNlIHsKLSAgICAvLyBDYWxscyB2aWRlby5yZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrKF8gPT4geyBjYWxsYmFjayh2aWRlbykgfSkKLSAgICBydmZjLmNhbGwo
dmlkZW8sIF8gPT4geyBjYWxsYmFjayh2aWRlbykgfSk7Ci0gIH0KLQogICB2aWRlby5sb29wID0g
dHJ1ZTsKICAgdmlkZW8ubXV0ZWQgPSB0cnVlOwogICAvLyBTZWUgd2hldGhlciBzZXR0aW5nIHRo
ZSBwcmVsb2FkIGZsYWcgZGUtZmxha2VzIHZpZGVvLXJlbGF0ZWQgdGVzdHMuCiAgIHZpZGVvLnBy
ZWxvYWQgPSAnYXV0byc7Ci0gIHZpZGVvLnBsYXkoKTsKLX07CisKKyAgdHJ5IHsKKyAgICBhd2Fp
dCB2aWRlby5wbGF5KCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCd2aWRlby5w
bGF5IGZhaWxlZDogJyArIGUpOworICAgIHJldHVybjsKKyAgfQorCisgIGlmICh2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKSB7CisgICAgYXdhaXQgbmV3IFByb21pc2UoZ28gPT4gdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhnbykpOworICB9CisKKyAgY2FsbGJhY2sodmlk
ZW8pOworfQogCiB2YXIgZ2V0SG9zdCA9IGZ1bmN0aW9uKHVybCkgewogICB1cmwgPSB1cmwucmVw
bGFjZSgiXFwiLCAiLyIpOwpAQCAtMzQ1Myw2ICszNDQ1LDcgQEAgdmFyIEFQSSA9IHsKICAgZ2V0
QXR0cmliTWFwOiBnZXRBdHRyaWJNYXAsCiAgIGdldFVuaWZvcm1NYXA6IGdldFVuaWZvcm1NYXAs
CiAgIGdsRW51bVRvU3RyaW5nOiBnbEVudW1Ub1N0cmluZywKKyAgZ2xFcnJvckFzc2VydDogZ2xF
cnJvckFzc2VydCwKICAgZ2xFcnJvclNob3VsZEJlOiBnbEVycm9yU2hvdWxkQmUsCiAgIGdsVHlw
ZVRvVHlwZWRBcnJheVR5cGU6IGdsVHlwZVRvVHlwZWRBcnJheVR5cGUsCiAgIGhhc0F0dHJpYnV0
ZUNhc2VJbnNlbnNpdGl2ZTogaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2Vz
L3JlZC1ncmVlbi53ZWJtdnA4LndlYm0gYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12cDgud2VibQppbmRleCAxZDlk
NjAzODUyNzQ5ODA0YTIyOGI4NDJmOGE1NjdiNjBhNzAxOTI4Li5mZGU1OWExOGI0ZGRlOWExM2Yz
N2MzZjQ2MmFmODhhZDRiMGYzYzNhIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDQxODQK
emNtYjZjWWZ6SXtfSV5QaUw1ZSZBMHdQVGlOYGs+OTVacntxJlBOYT5rKklgK2ZVKyV3RDJUT14y
cmF2SGxKR0poCnp1bis+cGZHbj98cC0ya3xeKVdqYHdMQW54NUdsSHlTc3pyWGIkNz5WY2VLQns9
TykzMGM2V0NBJkhjWEliTTg2IQp6KzxWXlg0X2khal5wM3NQTmcoc3tXfVBpTktCKDc0KHRNMTNU
WE9raTt3UG88QkdaQXlVZD10cDx0bChZbEtTIXoKemR5NUg8MUB1WTBqNndFITN5QXB1M0BaTSti
LSN1PiY3UWoyPSheZjlEIWgqczh5JlJKVSRSYX1PNEtMZ0dZYiFkCnpoaT0pKi14OUpuZExeWG5z
e05fZURKdFRQYFZEVik0fik1QSY5Qns3cChPfFYlOyZfJXV4I2U/JDNFKz41ZXBoWgp6SWpTTEFH
e3xxTHI5XihAVjBsQH1KMUtra0JecU1XVm0rVTVRYU9GNSo+ZyN3UEoqOCNfX2NEbntBTkt6MFp6
JmEKelBIcHIlRFo4YVlRRFRYUF4xdiM8PDxBPCprZHxDSllDYnwldyNIZjN2RjhRRkgtUlg4VXkr
cm8jQXU1OEdEMUpXCnpnWXFmbi13VDl8V2k8I1A2LXYhTG56TG9NO3ZuTzJaZFF0IWk2TFR5aEh5
aGQhYX5DdHRrXj1pcVVlSmh4a0FweQp6R1RxPm5BQ2JNRUVtdVQ9cUdYX2AtLWN9b0EjNSE+dlZ9
MXoxZmx7Rkg9WiU3b35jYm4kUWh3YHtuPHxTMlNqWTYKenpNV09ucT5zYjEoVTZLSmVUOGImUSZ6
PHRUbUNTMyszcENmTDI0R1FydGA3cig2ciM3WEpDekBPXn5+YmV9LVhTCnpuUSZofnlZakVNV0pr
S3NjanEwTVcoUUU7TlZBMTJBfktGeU13akFHbVg9eFczNy09X2lWNWJLN0tLQzUqfHVWYgp6JjxS
RktlQ1UmfGBkdHhFJlVWJkJlOClPSkJVfkdOVVVmP3gmeig8Xl81SDt6PDBJdj9WNSFDV3BfeTtP
ZldydncKenl0MTh6UkpefkktUUE+c3kofH1GQVQ/WVI/V20pUmBzcXtzSn53OWxjUiVNT3hQe00j
I1U+XzZsSG49SCpqcCVICnpDQGZlZ0pmN0I2dyhyOTZ2PHFlWD92IVBgRVgodlAkM3E0MHRLO2B4
OyRnbCNnRnRQWTFkV1VBNG5PYVhoa18yOQp6KCgreWslRW40eiZ+JCFtVThrdH56QGZnfT1IWi1B
aFRvZVM7N2tvVG5uQDQ9Qj1+OHxIRlc9Qzk3dD1GfEZAeDkKempVe3M/ZilFTW45TUFVfCYtYWcm
YGowQyhfR1RxZEFoMFZiPCV9d0xKQ3dYfVdoOUlwJEZeUDUkS1V1TmUlLVBpCnp1O34jWnhqdikk
S0cjNFcoJT9Cb18rRGt5Zj5OPm8lRF81Vl57N0BzN3xAdVYyQ2wrOWVXM0E+bmleSntYO3pGSAp6
X1ZzTTEjeURDOzBmRHl0OC1gKVZAWnlIUiQ/Jk1uTH5vd15xOVVtfEBTPkB5Kj0pcWEoX1Z7VVBX
SSVmKFk4fUYKejJJYUtLKE98VTlpZD51UiZ6V3UrbCZXZDNyNTJ8I3VTXzcheT1BYUItQXg3TnY+
QyhXdmxyPHd0SSMoRzRxWiZMCnpZLW57Mik5K2lSellzaENqKjdvRj1VdD5fITBnQkRtVmUlJFZj
Z0dNaHk+R1ItdGluZVVDY09NVzB5cnxifkVkSgp6a053SDF6S3VKPD9vIzx5Kks4TT9PNz0qLTAq
JUx0JjM5KVlSTylRQDw+aW1ycClKMUxySz0yQFdEUTtxbyNObjYKekA3M3Z1cj1NTVFqJmJDa3ph
ezJgZ0RZMUxKI0pPQDNGN2pNTHRtd0RIdE1CZnckVHotVXteK1ZaTTI9MklhSkQ8Cno2cTlWIzgz
Pk0qIyhVO30oYERvQWlnRUxNcDlJJGM3XypfbGlENk82TnkmUSktJUk8cjtPbyFKR1ZUPUlUUjQ3
aQp6cTU3VG08KldVdVFUe3I5NVFJKnRJVytaSVJvd0JHbDNoWlkjbHw+KFJBQUt8YFNrSFJwS0Vw
Z0l8dXdGdz5VU1IKel5MREBCJkFQPVZARmE9dThNRSNNYX58QDx0cj5JU14we1JCZTQrZ0F1emNV
PSRKMihiVlBnck5ka1kwQztzKnpjCnpwUCooalBQZ1ZpQHpjaHRkQzBIWEIrfmgoPkUwQDhKWG0y
Y29sPjx2Rj9CZm5FUCEkPCZvb3RAKE4tPkxZZ2lTSAp6eGZPPDxpeWVuMmA8YEM8enZGZk0+YD9m
X2ZjU30zX14qaGM1dzFAUiNNQSZzXjFeYVNSbiNvI15qUGZybHtQP1YKenF9RmsjSWlWeS1nWGc4
O15Vfm50cV5NdG4lRmh3PUpqb21uYmxaVEM3ZWUyM2I+SUdqbFdTSjNwZHZibEQqRG9BCnpiYnJL
P21kXmNFQ3Ulb3M3eVd+b2MtP3U7a2hwMF5SN1N1M0YjWFUqV3p4eSZiSj1teCFOWCV4PUEqT3Jr
Tn5OdQp6LTN2TDU2RnczZnBQZT5mRCpUQSVrYzNYJGFJPT02a3kjJDs3RGMrbilAaW59ZlJMQjQy
OE0rYzZWNF9QdnBnIzsKelA+cURlbER5PnFMN05heD58UX1qQCs0JUVXVnYyTCReUFk3ci1IMnND
d00pQz9hYSotSEo/Qnk3RCpqTF5vKnlMCnpyOUYlTSZeekFrZXlUXzBJKW5ZKEB+SSN9Sj9ETXM4
QGFCVlI/QSEwWUphbU5tdHM5SUxYMDk8WGEoWHB5cy00ZQp6QF9CJlpTLWV7fVpNTzZmQzMzRGJf
WDtudzJYSit6WmReNCZZUWk0OCo9PkAxZVRkRkRTQV9Wdz5APio4YVhMQUgKeiliZ31lZHhVaUlC
SHVhPHNybmZjcD1LZDtxOWZKZ3NMdkZvTXdVa0VJQlZaY0xsVD0weS03Tk9pNzhtWjIzfi1OCnpK
JlR0ZWZTaGc3e2lGMSRUZkJzQ18+SVFnail7RUUmYmUpTWEhQ0NaZW10MUV2QFI4Tyh7OD9pIT9H
JG5hdyFsXwp6cGV0TGZ0RjFYPTZ+fTIkJlYoMi17TCNuKmUmZUh9NHB0P1VqaEBNVCZlViUtMzNO
JGZhPm1EdHNmfGsmOVZ8bjQKeiYhc0lPPjgzZCpwe1Y1O1VaWiZ1SXlmRDhWI2EjSTt8amIoUGZ5
PWtwcSU0TGZPNWdNQmdmRWY+VmUyMSY0bHY+Cno4U0F4eFFeQjVuUGJydXhJYikkZ3VGZUk8T01N
KWhCbiN9LSozPExkck19SG0yPHBiJjI2PnZAZUdDbjc1Vn03Pwp6QWpTd2E7QGE1KD5JVFYkWE5j
fVM7REB3ZSFtM08kKlhTczc2Knt6TSN0WSteKi1+aWArdnAkKzNUVGk8I35IaCUKenEyZ2Q7cXR1
cSFwaV94V2o0cjheWkh2PyFgUzdNdiVnVEcjcHl5RUtXY3NZQGYrY15VbkVTWHo+Qj07RUxRKiU7
CnpXak0zemJ6SkJXYzhSWXcwV1EjKDRSa0hfKGc/c2dMNiR1UkJ3YyFgQFlAejhCO0NfTUxMa3pq
QFhFdXhMUl4hfgp6M1VAfiVfeFgoflZ7VTY4WGs0VzBFQH07Z2loVzRlV3gqSUNaKDBwZClNezA7
QV9FTTlSVFZJVyYxQ0I3YVI2dXoKelI4QHY2ZU5XSFJFNXEwWDNrOHs5V0JvdDlHeTx3R2tiN09n
OEg9K1BxMjE2UzI3USlVUCtIJjdLTFV8V1FRO0koCnolQjhaUSlZdmgqb1B9fWh2Zjk7dE9zSWlM
P1FDdCZ3cEx8WVhaYTIqVGVrbCtaQCs0JGBjPjUydXstSGA9WX4+ewp6PVg5QTNuTzBnSSo2Vi1U
eX5ifDZfa2ImKyghbGMzVEpFPzBkWXhHOEYwMng7MHZhMEFFNilrRlQmbDZfY0tUdGkKeiQ0IUJL
ZHpVYEZsMEV6b1l5PnpKVHFiQDBUQmNFLWVsbUYydi12TytFU0NwM1ModGJUYUIjZGxqYCQrcmBi
UnpVCnpzJCpIcmB8eFZzeHA0TCk8PDk+M2JYbzd2VGIpJXBqTyFpeCUxPHYxOWl1MTAldXBJS19S
Pj88JVV3I1pjZkluOwp6SCEmRTleU35jQVdtbFdWKCFxSVhAfll9ISl4MklnWkh2ZSNKfFk3PXFY
V0g/SnUqOUs+d1ZTT0lPcmxZKGNwaCQKeip2K3RXTnhNOWk7QUBPaCs9ekJqJT9yXmBTSFd5dnZn
TCpMUWtgQFhJUGUwPDNvemNjYUlrTz5BVTNeVEZ6V1NFCnpzdFBreCZEe1lzPEc0bjxmKFByUnoq
eDR0VTw4I28wRylZMzN7NSotTlZEYDRkTDdVaXRxVUx0MVh2ZTk1XlE3UAp6ZkM9dEM4WmElTW43
PH1HR3dNfVg1QDBQV1NRM0MxNnFXPl9id2pmeHkpPylJTE5jfCVkMm14dUBSeiY3YFhWVmkKej0l
TWtYSWRxe3hiKyskNnw1ZkBZUmY8V0c9dj5UcEA1Z09qY1NRRWdxMTJzbk0pYWdlZTdjeSp3bGtH
ZzFzUilFCnpeXkwtKkNhR2lBWDZ+Xm4/aGU3REI7bUx4PG52O0xZK09SIXNCfWBKYVlUR0Z1OWt1
dik7ZXl5OGNVS31uNEtlUwp6Tjh8WntyPyg7JHQtYkRDcCZleSMrcjMjcS04U2tgK3d6YWwjTFMo
eiVOTnZKWjEmSExYNG5nPExnKFVDQUNqUSkKemA0N3FpfE1za09McllzPyhzdn10a3M7KVI/bjVI
R2l+UmdMUEF6YD4+PW1OOWNybj5yTDlgMzNCZVdJMExNVHFFCnopQHBNZV5DS2RFTSsmIVhqfXlv
NSs1P0c+RnFia0M1bWMoQjxIaihSYGV3ezxmdSs8c009V1YjMkIoTyhvZ0ZPKgp6eUhBJmpvbCp1
SlR8YyRNQkA7aGFFPntnfFZtPzNkUWJULVM+XmdZNGRhIyg3VExzIT11TDlUbnVuTSMqVD9KQ3oK
elNBakkrRHNiKUEqSSlzYjxUJjtrIy1MTSo3NC1XTmdYQC03Zmk1NGMwXk8qdUxIemdMZEwzV09B
QVlPQF9gfmx5Ckp4Qy0/OUAheDYzQmFRJDcKCmRlbHRhIDU3Nwp6Y21hREh5M3Y/YiVKdSVAYDRm
M0d5KEFrMmVQQF5LXjQ7QVh5dCtseWI3ZmxhbiNQMz9vPjw3Ylkje0hOQDlyTDsKem9LVlEmXngh
cDNqMHpDME96PmA/V1JwYnU4JTcyJmhAOTlNODM7MDlnVnl6cCZIUFJkejcwSi1pRGhZfm1VOyR5
CnpoNmFZPWp3b0UwJkpLc28qPGhVQGR5Y015OGU/PDRrK0p3XyRGZ2FMWVVfXm9SWk9tRFJIXjZP
Jj18MCp2MCt2dAp6NlVZJjdpO0pPWilzaGMxcUBSRnRCd1pKYHlaU2wleVNONnF3NCshQlM4dHFy
cGdTMzFjS1Y0JHU4VFdkTFczTWIKekpwS0ojK05UJjhTYj5tPG9+NX49MFQ/aGEkVUFSaUQtRSFF
LXBIYHxyO3hQKG83Pyo1Tz88K2U5aEJGeilqTkZJCnotTV9oIVZTQ3MyTSNoZyNqRlViekdWaCth
eHJ1U1lfSExMKzZYUFkyNVZJblo1YzRkTTVYKGorQT1WXzI1U3ReQwp6NVc1eWdpMlZ8aDVYVUV3
NU44cnBzMnBmeDZXMXdfN31zWWNXanRXPmQ3Nj1nX19CNlMqYkg8eClUeDQoSn5YbWAKZl56a28m
RGd1ZiRGPHQ9KTM3UX1ZRzRCQmgyXn5jZVYoa1MwY1ViZnkKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90
YXRpb24tMC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMC5tcDQKaW5kZXggYWU3ZWVmMTI1YWNkODMyZmZl
OWVkYWYwNzE1OTQwOWU0ZmExMTU2MC4uOGY0NzEwMDljZDNiMzMxOWRjZjBmMmM4OTY5ODgxOTNk
NjFkOTg2NCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA5NTEKemNtY2FFdXZCMXprfmps
TFQyWDIkMHxVI0MrPzIhOzFfcWBEWV4/d1AmeldxX0VYUWEjSWdEOHNOVllKVzBtPEZXCnpeNmJW
fDF7SD5lIyotZzEje2ZtX1NuTF4lQyljcyRDbUpneCNUUWYtQ0ZXK1AqY3QpWmk3QU4lQ0FOa0BS
I0lrUwp6djh7blpOQGhgTkdEeEk2SDhWWTxCbmltTUZHJFVjUHRQdl4lMGRKU2ZMZ090RD5MJi1Z
Pmk5fXB2P0goJXNlMT4KekdDISpwcXNlM3wpfGgmYSlRJVBnJkh2WG5oSHxIaUhUNGB3YmVoNVVD
X2pTRG89PDl+YW4xSCkzbEJkQHZobG9iCnpZaSgyTGFGQkp6RXswbk0/ZF9iclJ6WmhkRHdwWF9K
KyY+YT4kfiVFZnFNQlJOOVcoVHFWZHNMVEtTZzlNd2QwZQp6N25xcE1GN21UIyVCIz5nSWdNWS18
S3lhSGJDamt6dXVKWnJgfDtNVigwMGtUeEFWNjEpclZgSHkmXmM3WkRYTTYKenE3Y14/cF4rQHk9
QCopXzRvPngwN08/WTFYMFFsaiFuV0BZPmVLI1J5N0JTRzh8fE4hZEQzfXRtVVl3cmY2ZG19CnpR
aGRKSUxVfXt6KjNHUGJkLWNFNmVtaTVqcTR+PV57an1NP1RWaXdIN1hTTn13UEliX3ZrS05YbSo8
O3lHcmNmMQp6NWpwM3VIUFpDRXtMSigjdDhMJCVkMnFTQlVWTVF+IW8/M1lNKGZ3RG1zbH12e2p8
cGtjTVF5VDk4QG1JNHtUYGUKeis0SzZeVCR1JXhBSENuYW8zej9mcGtac3tScl9vNTh1SUA0V0Et
aipgeyZnQkdJaW14R3JuN1VBMTd8fGN7JVopCnpXcU97PXZmYUIrTTc4ZDg2bCZ2R1JJRFZCQmR8
Xkg9SzEqVnFPeiRAI3IyYXMtNEFPWXZ0cTJqQjM3IS13ZVZwNQp6bz94PiN8OTs5QDhYN1ZjLSNW
TjBmNjxBY0N2JkUlPXU0bHlafjQtQ1YkWjhiSHcpQ3xUT1JIYUh8QXxQY1V7eHoKej9ESlczJk9M
b3lZdmVPcT5nJkpxNDhBOWU7dl5SK2BAZ3VlYjVGeFBpfEU9diU4NUhtQik5IXJ3YHA2IWBDWE9B
CnpYU0tld3RlMnwzdFhIJT9ATElfZG1GJVF4VllobnpQYmpJTUlCI2Q1QGdiKHlHeH5oYCtvJG03
X20jQGJpRDB7Qgp6cU9rQXpNMllsUUpHM299bXAqRnpjRml8P2d7PCR2KyRaOCk9NmUqRWYwOX5w
PU9wdE1jR2djeXE3IXVNPU5rKmwKekpsTTg7Rk5mNn5NRnN8RClgPT5galFTSTIjNDt2S3tIRHBj
ZTZqKiMyeEhMWFFidjE4cTJpTEg5MG1yNGI7VHZjCnpETEAobzc9ZGArPGc8K09qMHV6OUdNYylZ
QiRnI1JHb348YntlUT9IbyhgbmYrO3JreTJzOVVAbDl8RFhVcjJRdAp6QkxpRTs+JkteKzQqZFBg
MTd3Q3NRYmBkb3VLQHdgP0ZKQkBvV1NISCNxdDN0MDVWPnJ4Rms2ckJudCF9elFOPUAKTk9maFdj
Q1ZHWWoxXmBNWmpXeiVQCgpkZWx0YSAxMDAwCnpjbVY8RTB+aD9JNVo0ZnBBXzQ7YmxPelJtMFZ0
RTAxemlEdmxsQkVFMGljczAyMj1xe2xYVjZeODRHaUNWciYyYQp6MEg8P3diN1RNajAwMDAwMDA5
NjEwR0VAXjF8ST17bGtFbUlKfXFIKFY/ek4jenpoSDMwMk9DS3p6Zip8MVpZNDIKejAwUkkoMDAw
YncjUmAlRTAwbjV2Z1VjV1EwMDB6WGJhSGU2MDAwMDAxUEJOSzFQQk98WDlxJFcxdHxhazAwOTYx
CnowMkZne1Z7WlRlMDAwMDAwMDk2MTExXilwMlY1VURJVzkzVUZhUTdtMnhmOStXZEh5TEY+UGRG
Yk5+UFhWRm1eTgp6fDZQJGU5c3d8c1NTPGxDayVsJF9GcDwzPDJRZk1AY3JoX0NrPmd3ZUZxMSQ1
S0xJcThmQnxuSkZkJW5qWD1pQTMKemE2Sz59WWhgKDlaZ2YyfUZkJURYZDEtRVJVdXxoX0p1e09+
MHhBSkJsWTBWT2Y1MnNrZ2JSRk93IWE8I1JZZ2FjCnomYTB4Z0cpdUdAbHk1VEs4aElHZ3skPUM1
UFI5aDN1PXEoPjU+Oyh2WEM/VE1NXz0jYjQybnNMbk12ZHlGVGNjcQp6NEYmXiUwNitAbyopI31H
M3ZYNDBvQTN9YD01ZSVROSQoP0lqUWpnTztPb0ZxKEtEKjY+az8+fXlKITQxO0JzSTkKek9TQDZu
VFU9Mk9mN34xV2R0djhAaFEkTEJZOXk5VVBFSm0yUXhRPUpSPCNwZGI9Tz9iUjFOP0kwZFBQNzVF
QjNkCnpMSTQxT1U7eWNAdFhrS3Z8Rys8QndrUUF8QGM7bUA2JGsoVjAwMCRhaHQ5YUNVcnhJSj1w
RCkoZkVtb3ZBN2VaZQp6MVo4SFUmPGxxO3c3fip5JkBRQTRwTHNuRXp3THJTViY/JWRyMlRWbWV9
UEl9K3lBWFQhRCg+QCVvcTBYYiZALV8Kej4/KGlCNXtOTTA9WX5XODJMVUV6RXJeTSVMaW1PTERi
ISMhdWVKWD0zQ0N+JHUlOFp4cXMjcm1BVD0xUDBBPVg1Cno0bT1zVj48KVlVKWlBcE1genxnNUY0
UCZWQUhYJXJMflcmfjtpJiljKFNRVn49UH1WZVY7IVItPStsMVNGVmolcwp6WE5peEBmMnZITFBZ
dmUoMz1yVW1BK0R4NVElKWg9S20wJWNnMGtDUDEzdDUzXk1Bc3NWfipWT3xLPyRQUV9SSkIKenBg
WHxQcGpJQS1vaH1rQyFyTX5oYF54JEtofX44SFp3c09aQiZFTTRLayZOaTQlWmEmdiU4I2tAQmNK
Vkh+PEkrCnpmQysqQzBEIU9uNiRrKFlmemo2R3RYbEpIezZCelQ5MkZFR2UqaSY1cTdXaTgkcSht
V1RINEpJaVpRPyNrZ1hRaAp6KjRFYjYqWHg3OzBaQ3MzU08oKXxnQ1NtVDM3PX47Ym9EflRaYEsm
dWwqYVkrXzV2NFMlS1BCMm5SSkElaWhaSHsKekJIZTFBSD10a3lXQ2oyajclYT1nWWM3JVZNYDBL
eVFPY2ZYN3FaTlRjREExc2B+JD5CcCE3ZWNDMCg3YWIrezlUCnpNdHs0I2pDVEdOO2pWanEtLWY/
S0Y5N1B4UGBgYkFIZz0/fkhfeCsmOyhFUTtGVz5uOFY2Pm80Tys4bG8tJWZlUQpXeWR8VSgoI1h0
UmNvQ0xATnFVRnR1RGJCPTM4MXpCCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTAudnA5Lm1w
NCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNl
cy92aWRlby1yb3RhdGlvbi0wLnZwOS5tcDQKaW5kZXggZWM0OTkwZTU5ZDJmNzUxZDRlYTJiN2Nk
N2JmZWJmZDc0MDY4ODJiNS4uYmFlODVjZDMyNDcyYjRiMGJhY2IyNmUzZGVlZWQxNWU5ZjBlZmFk
MCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzYyCnpjbVY8ODF8OWszN04tLUNDVnZL
JFpEZTZ8Zj1Qb3kwMC1+fF81ZTV9OTJmdXExSGdUYyp1QypMbFpxUzMmK01zXwp6eiZFRWI/clZC
LXo/X0BEJihydCVfdTEoV3NQYC1PZGR9VkplSykkaDU5YSFoY2ROfmtjdXhBPWZCPThPVT83OHIK
el9oSzhnY3NIQng4eE9md0UmVFh5Xkp8KTkjcVIzd1ZFTCFgb2lvQU8yPUApKiZWVG8/Q3YkTCt1
RzJhRzttO1NwCnolKGwpJDhWM1F5ZjNvdzZnaVZSVD1mbURYRWsmbkM0K2lVdSkxTzNsSTg+NUZP
M2AxZGtgMVlZdHhgcXRZRTReYQp6cn1rZ3pSO0h1VzhkZVJHPDBpaz5RaFhWPlo7Q0p7TG0yTHto
PlMoQikmWUg3dHlGbzUralZ4fkVkKythRnFlbGwKelVZalBiWGFfOFF1WVpkZjd3c25sJWtJRV81
dFlVdCkoaEhiRT5iTWZfck1uPnFZJT10YXhfSzt6aWYtVW9Eakx3CnoyfCtLK2x5O3Z7a0JKQk5T
PzdWKE45KEx6dnxlWThQeX54andtdUMkTXx6P2txPW0/KV94UVotPCp7USVlckwqYQp6V3hQfWFt
WERYWTlTYWwjRDJlUjFBfVdpPDk8PFN9TntgV0lPQ2EqTl4/JktwP1hMNWFIKHFmclBOWSZWXjhf
Y2oKeno/cHlYVlNnWUxrfU4qbVY5NkNAJDg+b2k/JTFgP2RQOzRtIWBHTHF5WipxbClIKXpAN3l0
ajA4UGU1IVRAe2RRCnpqaFAoVSp8YiF5TXlMaX5sMH03KCV4djNPSkQwTEtxOD5PKE5PUTA+UyZw
T2tkaGFXNkU1PT90VipoU0VIeTl2MQp6IT1KRigmd3BQPkx9UCpqI1k8d3wrZ2kyVCRqI05icTly
UlZRakZZWSEtNEktdjJiM0YhcWRmez99Y1NoQilMfFkKemRQUlRZPkZnelVldmtRTHN3UHJJPUI7
VzJiaS1CS2d9fGk5Rl43e1FYbD51Zy0rYU5ASnBHdEdBKSUtZD1ZWW5DCnpSPkIlenlaMnlldU1R
X0FgaDg9KENTOD0jS1Q0bVlKbn5UV259Mz5iJlUodnw5WUQ2JDBBJCYtd35kakJlPTQ5awp6OU1H
OXZHKlRKSk1Be1ZUVzE3UEgzLT1pfFM5U2JwX0E2cVNWKkM4RkQ2aH5fZmYoYkhFSkVxfXppfmF1
eU89I0gKejNwY202KCpBcVpJP0RUWl4tdEd8OWBLYXBsRDx0IyEhSnQjaUhPSEdIZH5tcEs4e1Ze
OzxeSFRBJXI1UXdaWjhQCnp8OT5ANTF2TzREcUA5YiNlO013cmB0fjdtOH49cz1GRm58fV58flZP
WWIqQ1MwSWoye2xzSj52NTM7YWhwa3V1Tgp6ZntCfjFeNUlCVGAhOzVjdHIrNko3S0p5IyQhMSQp
RiN3ck49P3ZNVG5vWkhiaHBhaiNRVzZLSV9YTlE2aERga18KemdBbk1vemVgQ2liWCt4LShtPnJo
KWVaOVkteHF2UDVxflNveGlSeHpvXyp0UUh9cE94ZzRlb04/WEMlfF47SGpgCnpTX3o5Vj0qcylD
dWQrIS1EaUVvQF5Sbl9FTzIhMypEd2s5ekxEcWk7dCkoPjdTN2NTbmBwQWNJSFh3OTRHMW1pbQp6
Z2ZmSWkzUWFXS0AzYVU7OGV+UzN5N196M3FSNiYzZDFLRTM+blQyZjAqfmp9Pjl2fExEaD1iVVg/
Q01eTlBpXmIKemdvJEAhU0Y1PDFUaEliN15QT3wrdCt0Iz9NWDVJckZpO3UpeWEjWWA0SCNAQ0dH
Wlo+USFUbGlyQz5RTCtsTFd1CnpkaTgjPWg3UmxrSDY4QjxJekgtbUpSYHtoM3lGcnwqRmNseCZS
XlZJOEI3NSpzRF5JfWtlTUhmYnhhTmZoR2c3YAp6JT1NYE0qVE07THVDUldvN2JqLSVpNWRventE
MENnZkY7QUlnTldAaWJXLUU/QCYwRXhfVys4cT1Sa295UW19Xz4Kel5LdzAlKko7UHtWTU93ZWNB
UCk7UnFQbXhFbFoxQ3BkayNTYEIrcUR6M1gqUShzfjVJMldBRGFrMVAlOz1AYk9eCno2ZEkxdWwy
azhGTFROTiRAelhjREx6UWRLSnRlIURTfUB0NGlBJnghXyhAaHNOKX1lUVV6eF45ZDRGRkojPV9h
dgp6SHFaPz43MSNqOUstXlBeVG1UOEdHTTg2JmMpb0xRenhpdXRoMG96JU9Te3swLSZaYmJBNiN3
TW42SUBxcFJWVCYKent8bUxSe1dQOS09N0RaUVdLSnxTJm1oJU0+SGRabXUqTl41V2I3SU57bFV7
MWt6SW1yQzRRRUh4JW9hamNhZVNBCnpDX2VhIzI9IzRpIXotWCkwciErdypuZnZ9cnAxc316JU5Z
eWhMWXdgN2trcSQ+SipvPDgxJHlJUlN9RGx0MXNybgp6JnZvTyVqQkYlK3ZQQDkqeWF8NzB5NUFF
O1Z8VVNQeF5KUG8pTEFsWlRJbGBzdStacnhDbSRUO21LSk9pQEFuJXgKekdoQlA+ZG1AVk50RjRm
WnBNRWs5SSZ+PFpudU53U09YIWw7Pyo5dTAkUklZKk1pU1YjUGsoRV5TXkYyczV5ZyVVCno1flZU
O1hZZl9LZGV6S1oqd2xKeUR9SEVPO3Jham55bTN3REdFXj94YGBfVVA5QyFYNXhaMW1NNHdoRnVR
emdwKgp6P3RJP0I+LThJYTUoSGpqeTY2fCtmbXJuNzVJQWhSS25nWEImMFZNNUU3ZF4rLXU1TnFs
WDI2bGxNYEhFZkNZTEoKemdFKjZSWXcpfVpUZihWKiomYXo0LUg3c1ZVWVAxSFMzYlA/RV9fTiFG
fCQqOGdRamdfPiZ+NjdsWFZFejBicjklCnozSEFZQ2xTMndhQXAhc1owMDAwQVdAJSs/MFJSOTEw
MkU/JGEmIU95MDAwMDU5YmY8ajlibDhFM1BKKH5qRmFtTQpFZGMjRiZmQiptaAoKZGVsdGEgMjIy
OQp6Y21WO20ydWs7LTZYaDA9Q1Z2UTBaRGU2fGY9UG95QVA0WFZfNWU1fTkyZnVxMWZZTDYtKCVr
TS1ha2ZxdVhuVX0KenNgeXs+K3FjKHhrOUdmY00peGNEXytQNUAtc0thX19yN2BsRDQ5R2JmTnFX
ZmRBSl8+LTRQP01eLXBRY29YT3hECnooe3dyQV58Xm9tZV5KTiV4OTFGIzlgNlFjUWUpfjNKLT1x
KEBzZ1FERzxpOyNjWWtMcjhoJUo7eHB6ZnZMbDBrPAp6TihVMntEVkN5Vl9ROUFLWElyMkQjNTl2
UWpNb21ePGliYWZ8TnFIbnNwcGRXd01SO1IqRTQ5akNeXnQ4fE5OajwKelN8KSRhNmJhJnJQeTdi
VmA4RUFVbUxwYFJTJXpBXnlnciVPTXM4dkoxcipBNSFLQ2BET0QkPnI3fjU4eUdNNV5aCnpZeWpO
b1AjNUxoOSlENigxSVJfdURjdn1vVUd4dlVuOEtQfSNxVG40KGdBJEM+fTAjTWYqeGh1QUBrN29a
XnRXQgp6ZTM7RThLRE1QSjYofSR9JjZfVT1PSlRJJSpYfWI3UlNaemFDP3V0ZDtCUkQ2KmVVPmtf
THBEPjQ0MENUQUQ1cWkKeihjWXp7KXBWYi1NNikjT1JkQGItUWtFVjZncW5PNGVGWiVwNjAwJGdT
JHtKY3pnNWxoVSFWb3RNYUFqZHJKI0xOCnpmYWVuUEFLSmxVQGJwZTc9PUhEaihER29yRHA1cl4y
Kjt+Vytedj9ISUVPNE9jWmZDbGNqS3xkZyEzIXpMWFJuNwp6WjNwQX10QFlweWs9X2o3eUtwZ3A4
Syg7SyhAe18/MVNAPUQjKGF9ZDsldUReOTtSekxIPiU2SVNsYCsmdHhtI14KejZoSGc/NH1UdWor
dzxgMGg+O1hfKTspezAyb2opSyVyKmI/ZHg0a3VYWmh1RTh2QmZTKX58S2FEJVJDSyNFYjZGCno3
JW5IQCEwPGJ6TEtpVFJmTUM1Y2hCTGZwaTFkaDAmbGokaDRtOzNVKGZ0UV5lLXFoSnd1UkdXTTtr
YWZ5QUpaaQp6dWppVWZ4K29EMzQ3KVlrLTlNUmgpJF5aP190bTdJfEs2VGh1enk1JVgpfVg7dmRT
MFdkNFNHQ2B5IUFVKUpsa0YKeiR3Qnk4emUzelBmQmRJTXohOSRuYjxARThUWlFuJTdBczA7JUdD
eTA/UzFrSDR6dEVlYEclTUBjJExNb2kkUEUjCno1KSM2c25WeHVOSWc4YjQmPT50WDdoQWomRW83
Q1dFb0xtMTVZM3dXIyh6JUQpZU93IT9QV3VZQl9XSV9GUU0kbAp6T01tazE3UlhBXiFHRiU4Q2VR
XkhfIXV+WXp0V2l2aC1RNSV1V359Kl99fjN7LX5lUTBgTGRjdllQSyNCOTY4cD4KejRIOGwjXkNp
MklfUDA8YFQrUU5JcT9jYEhHQlp5eHlaSjJ1aW1rNDxaXzAweFhKaH1abCtUNiVVZXtkR2JyIUBm
CnozYjUoWVU8eT17OXI5JkA8VGBVditWM1M5XnJDRG83a2BsRGooJTYjVXRwQDYjb3xocmdLYFU2
SU12SjN5IV4yPgp6I3B3PSZ0Q2k4c09HLURPSTcha31CSiUmKWE+eDtCYDNTR2oxO1FEMFpoXmNg
VmVQJiY4QHN+RD5OQmxOPmtBY3kKenBEJDVCKj13bFFZOVZjSGdYUVd3eD9iQU0ocUQ9NGEmcitl
WmZfNTk4cGJaK21ua19lO3NEWXo3Q2dCQDdrP34qCnpGZEpaYGBRYF5YNy0yZDgxcD8lZzRGemBN
UnNFNUVCIzcpOSQrNjIlRHt0NnFuJDkhITxIK1J2SzNIcVQzZy01NQp6YUcmWCtDNlVGbTlXOSM7
Q2R6SisycXs0QjxFLSUwN3lvelNCe1drTE9IfiZUZkR1cylrWCoqV2JuNVEtaihjVV8KemIlbThq
NDw4fEdkJUNebWduP2pDc3tGSzNaLTNWfGBfbX5yQDlqRGx3dEBsSihhS3kmKiliWW5ZZkgzcTJV
PEl7Cnp0PUVaM2hwTzdUUTNJXjM4QWRSSERTfis7QjRMXkMzUD10P2wxJVFFS3tFUnZSVlAqLTB8
cUkkZE51TS1NdzlnSwp6aDh9Tl5qO3d5Nl9RfiVXSF5eczxQVUt3Zj0pRD9GaFJhZDtEUn0xZllx
PChKQytyJTQpZSV3WmplbXFgdXBga2MKeko7R3dubElrS01nOylLZDI0Q3poWX4+YnxlfEAtI2Fh
JWNnPyF+Q0ExOEwtKiomQHFneip4U31KTHJ6aiMrYzFCCnpAQmdRR01+RX02eTdUaXtZOHNLYiF5
JGluI2hoRnlVSTFRVGp5TCl2Ql9IZihKUz56MS1oTWtkZXYlNl5EcWBFZwp6dD9mc2JtWikpaU14
ZUltd09fMVpufTEybXYmMlJwQEsxeUZRfk1jZWRPKW1qMFlIOXREWkl0UzhpcEpmdVU8U3gKenNB
P1VlZiZOY19jXkhDKilPNnB9LUleP2FsMkZBWFpGUSZpcWIyRT45PW4mdV5RMWFIRyhQZGlmcCN+
Ny1jUDBlCnpObklGdGl8aUFyTCN9d0Y/MFR4V0o3QjI2bUlAdGk3ZDdzWmBud2wtMnY4KCZydkpx
XmkrPnohYGN1dyRnM2dOWgp6a3chRH5SXz12NXBES0N+QHBlbF5xYHUzdzB3Zz8oVmpiZ0BqY1RQ
UW9HQlgqR3MyJjJeVz15WjhzbTJtWUhRUDgKem0qdy12Wk9hbnZpc18jN0JNezlNdypgR3lAXihR
Mig3KX0/N04/NHtyIXUqY3s2ZVk1WFYzcS1jT2JSZkpUOD4rCnpOfVArVysqQW1La0ZGO0o2QFFO
PGNgXiEkaHNqTnlGKiYraT8rPCF0Y2xBS0o2TEl+ITZRY34yZVFmQ3YpSk1BMgp6OHQjVWpQR2RM
eFIpQzxBKyk7ST43P0pNazt7e2Q+VTVBfUR1PHoraTJQSDUrZVllQH4pI2ZNO15uRCN7JDtAQk8K
emwjTz1oanNzOHM2UyVSSU5AaEE9MG4wWTJ7U01McCozdSMzXiRzTENkUDs1fk0xTDhKMzEmYHAh
Wlc8NCEyZytRCnpgJTRxQnVLKWwwUU0lSisjXl9SM3c1Ml9Sb2gkSVRuMUE5aG55XkxOSGk1REBq
ajRZLWx0YURuZll1aCMpTmxYJgp6Kmlaa0YyKFpoWnRII0lXU0hWfENQSDZhKjljWFh4QzU4JEgm
cEA8XjM1ND4oZG4kJkMlS0c8JG18bEprM2NjdUMKeldeN0FBa3Q4PD1ILUJkazU7XytBX2R1cHJ4
UHw0V005SkpnISQoRXIqY0tLc21GbmcpS09UTzh5USp1RyRofmopCnpPJHlOTWBER3s5eiFnT2N0
dzl0Vm8xSkR5R3U1Q3RqMntpI2tXKUFufEg9UVV5JjRDezdqKVFTZCQ9KlR7aT9xdAp6allfKGFP
dGI3eWtSRTh1M2A4OyV0XntCZG1wMUtfTTdjMVl0K3ExTlZfKVUzbFReK3ZDUjd2eUtRclFUKmJ9
QWAKej00X28oMmxNSlNyeFJmditAOF87aEs4TE1TSyshSjI8fDBKRUJxfUUtQXQrUSR4SEczbGRT
JGFac0hXMXJGQn1CCno7KXRqI1NqYF98UndRc09qeXdEY1J+ezIoNmVjZnhxTGE0PCkmWVElanRC
TSFmQjtBVTAwMm1uVUkhUEdBT3tQUgp6QU97RE52PE1VLTFwb2o1MDAwVlJYPVE4eTAwMDAwNms+
RjhiTn5QVjAwMEpnJjtTTmAoMzl5MUxJTWElbFB3OCkKRGh5aEh3CgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVv
LXJvdGF0aW9uLTE4MC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMTgwLm1wNAppbmRleCA1YTRkNmU1NGZm
NDk5MTQ2MzkwYzk5OTYyZmRhOGRkZmVkMTdiOGMzLi43YzVmZThlYTEzYTYyNTMyYTFlNTRkYzBk
NjI1OWZkNmRmODI4YTJkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDc4NAp6Y21WK3Ix
TW1GMDVUWCF9RGh+d3BaRGU2fDAwMDdAMV9sNUJvUksqbTBXcHpoRWRlbyttSDdjUHZ5VEIrMGU/
a2gKemg9YyhEeyk4WEVwWSYxWE5GbU1CIShFK0JaaDQxSXdVb1I5XiR7RWBtJiQ0IyR7MmNoMSN3
bU91NEZPdit1QTh+CnpnQENnKEU/YlVCV0YzMj1QWlIrR2s/em94VCY9eDJZS0NleCtZZlZpRFJ+
VD1jKEYtRkUrUnQhKCVOOTw/ZFQ1dgp6ZiRvdHkpN3IrfCh7XlpWeylOOUFoWXhjUCYzX1NkPWIq
KzdrPl88OHtzR3J3ejxhSEBne3Q2WU5KI0tTKFl2cTIKek4oYHZrcSlOSzZidkApNiY0R2xTLXpK
dUReR1Q7Xmp8PiloWE4/JVVHcz1HflNyNy1RbHtRT00taE0ydCZwc1ZHCnpKTTZpYSUmKjBtI3Jz
Q1RXZ2V2Ukx1RG9LU3h0e1p1YWUoSC09MG8rWXt9VWFxTGN4amVoSEBhMSVEJmc1dH1Zewp6TnFy
VF9IQX0xV2YyQXBNO0VgOG98TFdtZ3JRR0pQcXF3aV8+QEteV3VNYm9MYH5KJURMOCF0R2A0RU50
O0JzXmwKek5jM2RMMTxOR21wNyQpJD91djZYQG8lRkJfe1JleHNxV2I0NCpLZlVOWkBvfm9sZyFo
K3JBOGt5TWQ2TyZ4TXRWCnpocl9vSj5SfTt4ZjBuS3xqbkRyV2ArdzNYPjt0N1M3UkE+RjdyRV5H
PSRmdG8+Rk4pIzljVklDKmhIbGsjRXZlcQp6dldEQDhpRzs+cmpCeDRtS3Byc0JzbEBlJFVMa15g
RDRPczdWPiQoP0dfMW42dDEpe1l1dD1OY0BeVyRFQkBafmgKejBEZ05xeSkrcCtRRVZ2fWNufEE1
WUBlPiVXVz42T1cpOWNrUVF9WCQoKE93JE15X2JtT0hQSyY8OVlZUTZaMUR1CnpIPClDbGg2bCRC
KyV7fEc/bjtGKVA0UGlFYlQhQTZPfVIhWXtHaT9taVlBcXhvJkY5dTBJbkZvXjx1dUpjKFQ8PQp6
VGEjenolKGt0JE1oJT5BMDAwOThsVDhKNDBXWHVtMXppRFBsT0Z+dDBqSEJtMjI9cjNsYiF9WDlz
dj9fYllnNCgKejAwNkZZYmFQfD8wMDAwMDAwMDMxMDA1cTBjNElNPDkwd1QjZkI7flY3NiZ+JjNq
ZzUlN2lWTXUzYXJeZTRXUiU0Cnowe3tVNDAwUklyNC16R28wUlJTUT4qTEVKITJTNjYwMDAwMDZr
PkY4Yk5+UFYwMDBCb0M7JFc1RDNnMiNMSU1RcwpPbGZWYWIxfilWPUYpJVFnX0dCUmQKCmRlbHRh
IDgwOAp6Y21WK0AxSzBlYjVWe2JNRGh+eEFaRGU2fDAwMDg3MV9sNUJ0QzJZIzVIS0tlR2NZa1JP
KDBgcldqU0Z2R20lJj0KejBXZ3Q8YDJqU3VmQnt6bGVffn5iZ2FCezt5PVVmRVJKa0t5JWd0JnU7
b31JfXxEJFg0Q2NKIXJPYjNoMWQxODUqCnpgI1Z3PnshZm5JSj5mUz1CWF9aPTJGcUNudU84YURD
TF5TU0E1aiNHSXBBPVotWml2Kmp3MXRaUUVUfUdLUlFqIwp6TnFgQE8zNyhiNno3SkVsakZ9dSRh
ZlR0cnp3dy0rSFM3KDRCVEY3KXtxMEM+ZTt9NiUqP05nUDtLNn1qNn40dkMKekd2ezBZdm54Kz81
UlYqRWtfODQjKTRJIS03TGNIMEZ3V3E7R2FOSVUyVmdpYGFoMm48fEVWYlI1ZFl4cWtqfVhtCnpo
KyZAK3FRZ3MwJlhUNFV5MU5wVUJCYGNAdCpKNDx2KDdLcWJsP1VVOVhZfFowQmxmPmp0WmNOQT5t
NDIxe18/Tgp6Ri1nIV5aa08jS2ZBcTBsQiRSMDYjU3dBVntldEhefEExTH1qNXJEUWBSb3RuQHkz
SGBTQzRKZ3V5NE81VEVZT0YKenc+eXlLKEJhQnJLa1lLdDdFeyEyRWMpT25jRTVAXm0mTkBzR0N+
aGY5SzhAUkZubSRNSShjOGV6JiVhKzAmWE8hCnp0WTg3WWBvS2JqYlhLKip3e19neTRQZXZxdGtO
PkctTV4jZVltZHhWZTxHbjJacWxOUkxJMTZOY0NDTEdqZDxHKgp6Pmc9MlFYfEI3VWtFNEhJZ31+
SX0/c3x+TzQ3djsxeHxHP2JUUCteRzJsR1lqISpnMFBJZHpLSSZAKF4+cHA7NDQKem04QnR6VE9Q
UmRRcVNVNVBTc2ZFb1gmRiNfWlomdnAjY2I+cVNTZHFMfj5TSF9QYkJ+ZDtEclA+TnZiWE5LIzZ+
Cno/O09MfllrJnk+Yjt5Pn1IUVhiODdLWT5fV1J3RTV3a09fPWRieUNId3ljM0BPYiFpZGsqRXpg
dDtNKTZHeTJJKAp6SEpLUzVKRjRzb3pnRnw4cV9vUGJhTGI9VGZmfFhzUmJvOyE9anc0VCZBQ150
JkojNGBwezc0Vll2NWtrbyZUaDMKelVodSNGMDAwODxsT1k5ajBVTUsqMXppRHZsayl7QjBoNXkq
MjI9cSlsWDM8PTlzdkd4YllnNCgwMDVlRWJhUHw/CnowMDAwMDAwMDMxMDA0PyVjNElNPEBDRiRK
ZkI9QSM+SU9ZMjM7KkUmN2lWTXUzI3syZjFaWTQyMDBSSSgwMDBidwptI1JfR0IwUlJTUT4qTEVK
ITJTNjYwRnpffkxJTVJEbGMpIUQxfmZHO0YpJVFnUSpsV0UKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90
YXRpb24tMTgwLnZwOS5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQKaW5kZXggOWVlODYw
OGIzNmNiNDQ3YWYzY2FmNDdhMDc1YjRmMWJiMTdmYmQ4ZC4uNmJiNTdkNTYyNjRjN2Y5NTY0MmRk
NzYyZjU1YzFiYWM5YjcwZDFkZSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzMzCnpj
bVY7JDIwSG9mN00mQjJDVnZLc1pEZTZ8Zj1Qb3kwMC1+fF81ZTV9OTJmdXExQXU9dy07M1l4P31v
Z2hJQSFVKQp6OU5PRl9eemFOSit9OEJuM0NYK3NfeDVfY1FTUXpyX2goYEp6ZnRiP2lycWFrKlpQ
bDAwMDMlenxCV2NtZExgS3kKemtfMjVaTHstNSYqMH4lU0RQWTc7N30kfT0lN096THJ0Q2k9RC1E
NT1YalJlaXE8X0JZQSVJeVVJeFUwJmNSfCpyCnpBeH1DIzVmYXo7JVU7ZCgtRlprKmxlNHZsV1hj
JDZiVjdJc0pkbD9aRzQtJDs4VjBoNiVpc18wNHheV3goQG93Nwp6KlUtJCM1Tns4SHRGYyFLUU92
Yj9iKipXcGkjTVElcGNQRS00dz9VN21RQ35JLXthdWlCYnE8YTxAVDtLeV5JP0cKentwTjJeNDEj
KjhNU29EY09gUztzSDgoMlgxZC0mezkpJnxHWkszam1qfTZidCNrNzdVZX52fkBCalk+ITdvVTM9
CnpfWHA3MFdLVnBUZSVUZ3Ehb3A3K2dAZzJgNmNNO1Z5S3B+Xis8eSNFPVRee3xgKm1uQT9MTmJp
bjc0T1BqQ0BsYwp6YUNnXkMlK2NjblMtODZTX3NXZHtYdjdmKSN5SUl3K2ZBOFBZRTwzZTR1MXl3
XyhMT2lNUWd0YE84elh+VW5YWHUKem1iMkRfSnlURHkxeEh4OWIkT0tkckN0IT85WUx2Ql48cX1x
WHt8YVgyO252Zm1aKS1CMkJGQ3VYYUErVTE9LTRrCnpiX1hpfWUwOWp9WlApO3xuMzY+KEV9ajFB
NS1PRXVgOWJTcj85MjV6Zz5UKllKKHFrUVMwRzxTYUVTRTRlfE02Nwp6QTFtQWRRLTNuZlR8YjMr
XnY4IXpgbT5EMnZYLWFmejt+SUJKXzclYiZGfXdee1dJfkNvfnE8Yj11OEJHU1lTOHQKemNnQXM7
a21wMCUwTFNNYlJxVG05O05yO0UtYEl5UiE5X2ZVdXNPNWFWayRie25ZVnNNJStwRT8mYlRERXt6
MT9xCnotV2AqLUc+WkphWUVvfkA7bTAtOSFXc0g2UTBFdSZtOFFWJSV6dihgMVY1R0Rpdit7PVNA
cCFTeV9aTyRZYjBZMQp6ckZ5dVpYMSNOMCMkej5oQU9QWDhZZHFTITJ9KysqYXZzZ0UkKnw8IV9T
aVdUbVFYQ2UkKWkmPj1OPk5AbnRTYmEKeiVOcTRfQ0wtUVoqQVU+dWdodDQqbW16Tl5UTXZqN2t5
VTs1T1M0amY8c1prMFFuJmhNRUJaKCtpJGV9dWQtak52CnolNn07aGopdWt5UTE/N2FkfT8lPCVC
WE1iVnZud2s7ek4xMT9IPnhSdHItZ1otM0dWVW1UOzI2VjBSRk5RNCVlUwp6clNKKGlvfTZiQEc2
SlctUWpNUXhMU3V6VzB6SnQkcUU2PSZ3UyNLZmRJYSVaPjxzdX1qayM1eVBFPThGY1R8bUIKemJe
ZWlDdGQ7Y2RAbS1gdDd8VU1zMlRoeHJOcUZedGFldD1GYGM5U0dFbDdYPEI2WG5PJCl0amswfno9
V3J0O3kzCnpCNzFGbilvSzFQNlRNVClGOTBzdioxQytqR0dndGtyTVZCKHpsQkB5ISVWXk1hZHU7
RztnSnQ7MH0+flJYZGY/Pgp6SHV+RihRU2VCPEZwLTZwWnBQJXNfNShKfCs/PzJMdGBGelVJK3lj
bGFnTFpRMjB0JE80X20jfkR6LTVlPndsU2UKek1FPWBmNU5iMGA9bEU2akl0Nzt0PFR9V1pBXmd6
X0x1RnkkREZOfDEmbzMyMUxmfjF1JlNAPkMlfC0jNUtoQldaCnpjWGJKTkBISnp7R04tViR0Um8+
b1c8KFhLQFN6PX1OK34zPTIpR2RUTjBkR3NwfVdDPHBAekw3KSFCP2ckU2E5KQp6SXE4aVFkUTx6
Qy0/aHBZQmdkXyhQR2otYj9TSksmX0duSTQyc3UhcFdKdjU7JT54b3g+YFAjTlFhRF84MmBaOHoK
ekZeSC0+Oz9gWWRIeyNARTdySjJIV2NVdlRfQDd0RmlQVm9GR0w5eVJIanpFYjtTNTJqenlrVDFg
eUw1S2BBYjVpCnooWTJ0ZGt+TT9lMmg9JU53M2puKE5HZW5IS3Mqd0QrYDhqKztgbVVWOGNFVU17
WERWIUAmP3JieHFxT0I3andzdQp6TjNFViV4R1creGIjPGQlQk1Jb0MrbVZhNCQocitXUV40Y2BP
R3U8ckQkST8pTFgpd2cyR3FlPHlXWj5aWDk7VkcKel5+TE5FcGRkNXZ5bUU+Ujd0Yj52ZlF4K2cw
X2RLO0o5NHhWVSo9YTxAcmBlRytnKT9Ya2AyKDtaI0Y5KiY4YUszCno1O083PUBXa1Q1Njh7Kisr
dXwmQkhoO2kjIU15SlVQQiUpO0ZoeE0yO3xGdEFxVT93V3JJZ0AxJD1EWGdiaHt7Mgp6ekZlSTIl
SUwkNGVAWHkjWjFVV0RWMFliJVJoZFNBPitmMm5BbFQyUnJ1elUoe3JYb25FUV9PU2AqaVBiZXF8
TGUKenNAPUUxbnZDaikwTipvUSZVMXEtWTdMeUAxM0A5cTY8WiZ8Vk5wRCVUU0t1RW9nIUk2RVBy
PnhrQFlZJURoa2FnCnopMjdvd2lUSzVyVFd2Pm1JUWpGSjhASy1Aak83RjNabTImO1V6QmIqSDk+
RC0rSGBfMnZWRT9DeTA/KGtiI2p6YQp6MXVXOFRQNFZuUEdXZn1ndXYkWW12czV8PT5fcT9gVndh
e2RsSjh5e1hFPTNnbSF1RjhyOVY8bylMMHludUxVfVMKemJpfUMhN1FORmFnVykwaUw9fSRDcngo
WFl8SCVBSkAwb3R1ezJvLW1HUE9YSGUrYm45VjNTbnxfNW9tJU9iU0IqCmIwK1d5bTgzelJ3a05e
YzBrZHY/cUxJTVZZbGteSURfUm45SgoKZGVsdGEgMjIwMQp6Y21WO0syeGotNDZZZHN9Q1Z2UTla
RGU2fGY9UG95QVA0WFZfNWU1fTkyZnVxMWg5V00mK0NvUm99PUNpTXRaTSMKenVoRlZLSEBpTH5R
K2g4RSEjemoyTURsczxvSWg0fDl2UUAyPnoyPXIqZWB6ci0mPjwwYD4kISpjZlIhOTZCflZSCnpQ
MD15OD8pdSFvMEN9cSl7RWhgYnxLUylJNGo9ISFxNjBtc3BOPHs+JURJQjlldCV7RW0lPGYwSnF8
QXYkTnZVKAp6Xm1UIUBRJFBkRUpSSTRSbm9RIy1fa0h7NSY5ekI2ZE5AU1p1X3lefSY0UFA0WG1B
KEVrMWtJVFE7ayNObyg3dz0KelViVHRDKlg3TiRWK007MG9NeX5fZ2tfXn5FJTJ8TzhxMSpWTGZB
MzAjPGFDZSE/OypWYih1Xn1RNGlheDtBQyM/CnpNKmdgKzR2RHpuUGspQFJsSm41d0xEKE52dHQq
UWdCbFFWNHErQmJNdU1YczVeSHV1e29MJVAzcl9eZkEmfjhWUgp6cll0My1NKSojU3xHcyY0Y0Bw
bVgpPG9CUClgQGBJN0dvTl5JcWw/ZWJTOCtjZjdDYzg1elp4OGZvRGN1PkslMzgKemJBcFN+b24r
ZXEwOGdaWHNJITwwRlhab0h2ZjxDciU0aCVtJFY2M3JldCZUODcxaDtIPylRQmk5KClFbT8ze2RS
CnprUj9qez1sPmdoZXw3NHxxWDZUVExtN2xZZlRXeE14bXArWl4+OCUpNURKKXBaKXAoI3FhPT9N
RUpQXjN8MWtSOAp6enlKMkQ2TXNxeCNzQiNpWSQ7fFlJUCgpVyZ4JkhLOXlFI1RgM3FOfmBPbWxy
MmREPn5UbjhhXzJsWkdGTTxFLUsKemVfI0YwLUc3Y3RtaWVkN0ZabSlnWn5XOGtTYnY+KSohfnp4
bUNUVSF7XyE9TFNzNmZfJlBVemZYbXpMR3xONiFLCnpuT1NLV2w5TVgoRH1OZ0g/b0w2NkV6TWY/
ZnFCfEFzODYkQ04tPURlajNea2I3UU4mKlkyTGxpVnNGckM+ZXpfZgp6ST58fU0mYE5GU3hGNH4t
Uno2PD54RjRXPjgtITFWT0VWcTVgK3NHOS05RjZJPkNnUjQhTTA8MnhvPHtibVprQlkKek8jdkBB
VHhUKFRFOXN5QVhNPXo4Z0R1YmZzUWAjJlE7eVhzanFDX3I0fFRgPyUkbUxjKUBzayExTENgKSo2
XjVHCnooTHw9U0Q3Z1dHJEcoSEVLcjkzRiFDQSs8dmtYJk56eD9QfXl1Ml5EdUJqYWlgQnhEWjs0
QEtiNjV3JSo0Tjx4Qwp6Q3gyQnVGVXZRN2cyYXhOKHUyd2RSaSNKVEFBNTJDYDJ6UHhWNik2QW05
WTlNby04YHd6X1g9cT5SeDteVCooYjYKenpuWWFofE5aciFmbWt3ezByYEpDP19XfXQ+VlNMPWQz
fW9GVVpDV2F4NWpVQ2k3JFRWaDY8XjJZNkJXblhlPVV1Cnp1OCEzPGNOK0xHJUY3aj0hejVWMWJQ
aFokazApOGNTYnNTV2A2Ul5jYik5YVEmPlpeeGNVY151PCt8fnsjck5vKAp6SnJCKipKc1BlWnpj
fE1jOUdUK0A5XnBYbnk1aTk1eXIrQUdpeVhyaykla3V9R0dNTUtpVmtfeUN3NiV0Njk0dW8Kejck
akMydig8Z2N6dUxAZ3cqeTF2YDs8U3xiSSlyfVhuN3I8bnclNk15NDxtJVMmJUslRmt2UTQydzUp
QER0fCtHCnolSmE/eFlwU2xffDhxc1YySnwhe1VedzlYeXZhPENCTk0qfDkqVSt6UF88I0A0cFQ0
SSE5Kj9aekhUQDJvPjwwfAp6YG1Qb0dFVDYyIyFnajRFPmslI00tRnx8Nj9Fc05WRUZEOSpLT1Jo
b2hiLV5VYGBeUjU1UWR7NU9zQFVIaHQ1SUwKeklKcDJWQjZUXiNUcmo3NCNqdEg5Qm15STtFUHBK
dmg/ZlQqSUBLKTM0eCtnNzFVTVRBLVhJUWQtQ0p4Tk1DaX42CnpGPSNDeGtRKFloeHJqI0tLfChx
YkJGU218ZkJ6JjIqOXU7O3F5TSotVipIUyM9ZnEhO0c1PytQaFpDUmZnN2BEUgp6SUNlcnV5KzZy
RnBSdFQpUiZHVG4pQilLdmxpek8jI2I1YXU2YWVvaEFSdGJyRVM/QkpVT2E5YnU3NlVZVH1qOzMK
enJZRGR9ez98bVN0fDs5Y2ojcjRQeEB3YCVgJU5+Vklzdjk/Rm8kQz5FOTlebT1aUGMtUFhWQXEo
U1Y+T0w0SXV1Cnpjd0UlQ3B3P30hcjx8KHllVjQyfE8zKXlhQHMxNUY7PShmU0dLa3RWdVFRJTwj
aFE+Q3JTeCkpSH4rKlgtSmIlfAp6KDJ1UGk9TGt4IU8yTj5tMWE+PFB4cXNZOUwhZD5ZbCE7RDQ4
ZjhMa1ZUUShRMnoxbj90PzwrOFVZelF1Png7MFEKel9MTFNlI3ZBfGN1ZiFAIVdNIX1ZTlUkT0l6
aCs7PFB5VDM9an4wITZ1S20xb3FlbTJ0QWZXeU1xa05Idnc9dyl3CnpsYG8rUWlkTnQhcGhvZ3Mj
ZWw8cSY+UlZBan5WO2E2TUx+Mm0zXiZnYlUkWWVJfkVeKnw5X0ZAdmIkVzVzT2pQOwp6KDh2fU55
SnBhKWFqJntkIV9PZFplezRzNUM4QiRHUHQqdzV1WXpWO2Y0eiEyZU5MK2VXPDlSdFFSbT5peV55
IXsKekVUOHpeelNhN3grSklPNVRJVWZzSCNMPmRnVkJ8dihKR2JFVSVsPzAqeFp2a2lgZjJ7YSho
SFhgdzlnTUlOUkx7CnptaTVZc2QhQ0ZuUD0zK1k8Yk96KWZBYGEtcTV1YmU5Zjs/eFI0ZzktYlJ5
M0MoLXlRKl9VMG1kPkV2NFV3OTQjKAp6Y3YlUk0jV3JoU3Rfd3daVD9mJUFsVFpSJnV+ZGBzZEZv
a3ZyUCQ+aHh8VyZkb0J9aFc2fjgkJXlPSTheJHp1a1gKej5yc24hX3VMcHcocWhINTVOVm5+KD9Z
TXZQR0tkMXlwU3pmKCUpYXc/OGx2bTkpRjkoQn52e2RqKW1Gcj5ULV5sCnolSlNjaG9Nfjh+Sj5L
IWtHKkdxZzxrP25FdT94Klg2RnArdW0maHt3dnMkemErN2pfWDMzVDdaNmBKSjg3Q3I0bwp6VGts
dVVjIW5pcFd1bnZuPF5mSGNJN0hIKHFANXxDJkVZK3xtfDUlLXBHOzwlQkIlV1ElRXlGTm59KXlX
RFhKR0YKel5UUzFZc1RpX288YlY0dSFYeklHQShfSChnajA9ez07VmpeY04xeUZoXlA2SEAzeypg
cUgmZipgJV5ndSk1bkZOCnpAUT0kbHtweCh5OEhHLUZSbG9uVzhWXkxzZXhsZkhNSDlPfmB7RCow
X3lMdTh2KnRPQEFkbVgqPiZKaCNkUF5Kdwp6UFQ0ZGBDREE3P2RoXys0PU1qdUI+ZTE+c2A0bngo
WHd5ZCNlRmYkUlFmYTwrO0l3IXlAViZJfnNDLUZjQUF7X2gKenJZPlY7QlJFZmNfUypobDNyO3xF
KCRPMUNhYlp+WFRXVSRhPXtIM2hrRW9JO0t9b192YzlOR1Y8IUtWSzJAeXlLCnooI3o2eHc0TXQy
RVkjen1rSChyWj9ndmxMXzNnWHEzKzlecV9ZMCRHY3VEfTF0X0lac2ZSbHM9XzVweUNkazh9VApi
MShVeEI4M3pWeypaPkJBKnB1R35MSU1hPWxPcVh3eFMzcjUKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90
YXRpb24tMjcwLm1wNCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0yNzAubXA0CmluZGV4IDIxMzQxOGM0YTNiYmRk
MTVhNGY2NmNjNzY3MTdmYzMyODViMTZjZWIuLjVkZmI4ODZmNmRlYWU2YTc5NDBjZWQ3NDQ2ZmYz
NzllMGFhYjkwYjggMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgODMxCnpjbVYtRjFIaztp
NVk3O2dELUkhVFdNT213MDBOKX0xXkBxP2t2U2QjRl9DOTIwV3E8YVEzOEspV3ImMFRDSTNDRQp6
dyRaTHxTPmY+IzQwKlNeTXtNYHpvYTQ8Q3owKjh0UDlzQlc+ciRvS0R+cj1ZTSM3I1dBPlE8eDMr
bWpNandkVzAKekNAWEZpMDBrKWokNzU2YilPMTdOZCtzWWdqe3dMe0x1NngzTSlueSVXZU1mWGBy
bTthckNnc3RhZjI4dkg2dz1DCnpBUk93eTFXd0gxWnE9TGI1PC04VFdQKG1qNiYkOX14RHhOdWNl
b2dXRVpeaG41eTB8THZ1cHFWR1FRUygqZ2Q5SAp6al9mQUlwa1gyUC1yNVlVXzVoeEEzOGxiekM0
QFY+USlNcjthJEF7JGE4dTt0TTRkRSlPNG8renNoSX05JmlHI30Kel8/KVY3IzBjZHd2RTswV0hC
Wkw5VStZTCZIUG5oPy1JaE5FSDF7SipqRk1EfUwwVyZZbXZiS2xTZl9UclIyX2tlCnpiYVp3M1Y4
dyF7OGY0YkZ6Rj5VT0I0UkFSUWc4MCk7ZiNZb29wcDIqej1KWVR1NFJAPjJkTXNKMGV+Kl9IUUNt
RQp6K3R7YnRJdHdXWT1vcXAzV0pUYFEzQik+YUlzV3thQTRYZXhaV0otIUh7YDN0QXUjaWhmWGN5
Q1ROT0txcDV1WnYKelBURTR6bSghUFI+aGdjNDNjdjMlUjhRfWI3RlpwTT1gYGpJR2R+KXAkQktA
NjNWakZONFh3T19xe2lTMXM4ZGslCnp3U1lnJjtze0Q+aWlneH5oMlFtXksqemlnbWVAQ2dSJiNR
eTUkUEc9OTVKTlpnfUtlNGd8VHVUJEZCfk0mRlp+bgp6LWc2VHBPfDZRLSNPe3lKRWctbkEmM25g
UnQ/LVFQMV5VRz1FcDU3bWVoN2Jgcn08fElVKWNBPkNhLXxMek0pOWIKenckVGdodVlJRENhO1BY
aT5HVEVGNTBnSyhqMH5LTzlERSlOQGM9LT5tWnU8eStOTntARE0+Ymo8diFDaj15aWpfCnptNiRq
JFNqfGNiKSkqekpra2ViUUctUTBjSElzJiMhTlFgSVQyNXsjZXREQ1k0SlhVX010bSNlLWNQNXJ3
RXpHRQp6MSNORntiXnchRDEjU1RebGc5LSgwe3tQIzJOPyRkS21ZJiQwQVEwTDF9eT1ubFRRWHow
YUJCczIwamBBNV81RTcKell5YmNOdTUpeUFXQj5wRjAwMDAwMFJSOTFvfEY2cjlSWG1JOFY1Zjsz
amc1JTdpVk11M2FyXmk1dXBHODB7e1U0CnowMFJJcjQtekdvMFJSU1E+KkxFSiEyUzY2MDAwMDA2
az5GOGJOflBWMDAwQn5oeVZsb2g/OVpgTGpmNisjc19vOwpKSCM5Q1dGZmNwfmNqb3tBCgpkZWx0
YSA4NDcKemNtVi1WMUYtemc1V288U0QtSWBaV01PbXcwME9URDFeQHI2a3ZTZF5GZCVYPkZmbFBy
QVkpYEBJYmtfN2t5dEdPCnpGdExWRjApSj5faD1jJWR7PUh9QlNsPTlVayFDKWhoPzIwZWJWaCg4
SXNke25CZ2dLQ3I5WSt1WjNsfjApRVZEQgp6PUZwel9mdjFRVD41KDxtbjZqLVU5fDkxMWslM2Ah
bGZmNT5LJVlNRzV9OEViISFVXyMzPVlZUTElZ0dIRDB3cSUKelpkfiUmPTteOXVBY0I2UUAjK1J2
d2A4PU1pcmZSaSlQfTMqPTZ+PlhsVz40OURjIWpNMjZuQFQ0YG1BZ2I7UEo/CnppLXZ+eFBAXno+
VkVEYWlGMEhyRHY/cnBtVjhaX3FMSE15QnhpRCsqTGpjR2RoSFgyYjExVkpsKGgpMikwJGVNWAp6
WEs3aE9WTWVOUjkpRENZOy1HPDt6S2g1R0Q+LXpOcyR+Xz16Z0N1KSQoMjlmQEFWSDYlZDRIWihO
c3xANHEmY1IKeno8PTZ7SXpUbWQzd0VfUigtPT5AWXxFcUZxKXQpSHtUSSN8cHh5cEszYGk0Mnp0
YWtrS2pkWi1QS3ZWKmQ3NXNqCnpUO3AoNm9aTWxvLVlOPktoYUdPYTVTMyhNQ25BLUA3NFI3Yl47
ZHMyQz9JeGpWVjBqJlVEPVVsZkJhRUMwNzVTcgp6Y0E4R0VPKDEkISFMYnlTeEdOTWxoNlo7Kno5
cXUwYiQ+JChnbStzXmxuJl9gdmhRYThnZ2R7ZzR6KVFZWW09dzwKemxIa0B7WTRNZjdZfiVkblhR
N0k3JnJrTWNSJU1PNVJ1VFpHTX5OLX5wQWNvOFVTQSNhanRycHg+UEQxRSkjeVVUCnpwfXltbXBf
bmp3X2pBT30qTlJFeTsoP00pNnVpeF49Yi13NmFLRlJkNDBzTFElQnY8c1pLUyY1OzVYMkpmYDk0
Ygp6OFpqUFlWXiV4WCotbHlVNXJBcThPcUlDbUF4akhTUXd5QHFWMlllQjlwKD5fb0QlPmRzTFVM
NmppYVJ3O2R+ZmoKekRnZ2hYTDsyTkIhU3h+OGdaTXtyO2hoWkxWUXE/YTRLZSMoWFQ9QXBleUlJ
Jm5BTXM7MTN1ZDFVNDdIPytORyNGCno9PXQjZzAwUXhDWipPKTAwMDMtbGM0JVkoMEZ6cTxXZFIk
TCEzOCp6alJnb0F8Tmo2MDAwMDAwMDAwMDAwMDAwMAp6MDAwMDBLbVkmJDBEek1sMX15PVRsU3V8
dDBYfnpTMjBrN0R7JlJGPFl5YmNObnNhbj5XQj5wRjAwMDAwMFJSOTEKemllWXdSRl9Sbno4M0JO
azZiQztrMzsqRSY3aVZNdTMjezJmMVpZNDIwMFJJKDAwMGJ3I1JfR0IwUlJTUT4qTEVKClohMlM2
NjBGI2doTGpmTz8pQ1k3MUcmTD9VRmZjKm9aenVvJgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlv
bi0yNzAudnA5Lm1wNCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0yNzAudnA5Lm1wNAppbmRleCAwNjAzMzJhZDkz
ZGE2YWUzMzA3ZGIxOWZhMzMzZjM3N2UxZDM2Yzk1Li5kOTQ1YzNiZmI5NjA5YmQyOTVkMDllYThh
YmU5ZmNkZTRmMjQwOGZiIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDE3NzYKemNtVjxN
MWBxbEI3UlZFakNWdkxDWkRlNnxmPVBveTAwcjt8XzVlNX05MmZ1cTFKSGpiKGZqPHA9UF5nVEMk
R184CnozO3RLdWJsK0wmeSV2YnstaXMzdy0yZFZFQHdndVliNm1zaypAdUtiJSQwcW9kVUg3RGx4
RmVZVGQpOXNWRE9jbQp6aFQqWkBtK3J4UzYxbk9AQDh6QW09bDk7VzdZfE5PZms1VEI8big5SFBa
dWNpdTc1N3gxdE15Zklqdn1Ud3xiZl8KelQlWnZFZCV5ayUycndWVnctd089bD4yc3NfeTY4QUNL
fWtFZDZtaCpNTCtsfnBENE5yelpocnVWJmQ8RTtvc1ZMCno2eXlHR2kheSlhaHNWcFk1ZXdqYU1p
KE11U0xsKTg4IX41eSpjJnJfaUBNbilkSjRFLSR6fXVkZ1RtY2BubDxqSgp6eitaYGBQJFAodXso
bCRaaGJCdkdSUXdNMzVFYEQ5SWo2RCRlNFMwQj43MWl7RGxBWW89JnNWdHgzWkM9a2hxKmIKejV1
KHMxVGE1RVRyZXcmTnhVdEFDU2E7aWlAQml1RlJqblRLYy1DWTg8bG57MEEmUGtaMWladFNhaTdj
IzNPeCRPCno5ZVpfYzkqSFRVdWRhcEFDQE12a0tSQDJlSkl5WmBsdGNrbm5BM3lxTnFfSVY2QnFh
bntPTFd0MElvU01hI2lhJQp6ZXJaOEdjNlJPYGM7WFlXPWEobXc+a31STGF3fXM9SUZ8MF56M0tq
OyF7P0FzI3dFSldeUzAoMmIxUHxVJk5+ayMKej9CQ0QtXyY1TGshRDFySntBQk83K0UrKk4lfUJ5
aDltS0Ajcko0NVlgekdodCliR3FrP2dYZCliNkZBZ1NOd0EjCnpMNi0lMm5TVmEoNGApIUJZR0do
eyl3KE1wOWwwYXhreHJBRSFUUyEwJXlObygyWGV6a2UzTEE3TVpsbUsyMWcoNgp6d1lqJGdaQXV9
MiYkWUtYO1B0I3N6clNpaXFRailaOD1WZUdOZWh5QDcjaU50VmNIcVMxN192VFp8ZU48NlB9QnYK
ek18eik2K21nQGlwbihaRygoMmduNTMmUEE2QVlPPE9TcmpjJndyRT8pKXg7X1Zme1dEKm99Y1NQ
YUZqbU9DaSVPCnpqVDUjK0BvNTQtJmdPMjtqaUxVJmowd0IrPjBzfkd1NWBkUXcxNzdBVkVNP0F4
fUghS2lHZnAoJnNAZUdKMGt0Qwp6MG19PFFyNntUeC03KD92YkRSSWZgJlptNjI3cF8mTCpsVnk+
bS1AdU04YGhQUERISz4waHpYayMlNitfKiRXPDkKenE8PUFxQHtCempBVEc+e2ZBNGthXjl7SUI7
PSgqM0B6TlM3eHU7TDswZXwtKUJJJHBWdHczMnw5PHd8NXlPYVVGCnpaVVhtbUFsaUYkdlFMYTti
RFpAMnxDYzJqI3dyOHV5Z3d1dWtjKHMoRldjXkppRyRASXpQJSM+P0BXfT5PSkcpbwp6dUsjKUJ1
WTNyP19jSFJMUzY5SUt5KT1XPXs5d1M9NH1VQl5Ubm5YOXF6N1lXZHohYUgxYUQ1NFMyZ3lhMTA4
ZE8KeiY8ZUhZeElRNU48RTI7YSZNcX1GYmw9Sj0+aEcwdnI+YFd4T0JEeWRRRHpIYjZYemlGJWlw
fWhlIUAoaU4hJmQyCnp8TmhRZ0BhOCpGXkJXWElOdnUlTF93eGRjRG55cXJqPXR5Y0QrNGRwZ2RM
PXBQeHJJOGI9PD8qPStwYTQ8OXxGWAp6MypNZWtLTUhMZ3hsRylUdD0tJXA+MEEzaFN+KioyPHlC
TEQrO0EpbmJ0WTFwdzlNTmgpQGt7K0wtc3V2KUFEIVQKemRoUSVGazZoPENiaW0+bVdsQXdHLVUr
NHg2MCU7b15kbUdfMkY3UCoxLUwpYWY5Jj8rO3dSLSorI1ZPeE9JblB6Cno5YlY1YF9nfWRtZzFQ
dUppcUMlRVFBe1UtPjM7X3lSaz5qbXlEPSlNbSF5KC0kJGA3TDItTlFUanNONSRMeEdeVgp6ZiFn
fXQ4fS1KJHxDJCZ3MExSfmYwcHQ7KUwyRl8hZ015bV87Y0VFVDBESXI1bzhJeXFwSTt+dXolPiMj
SlUzfjcKelE/X3oxIWNENilSZFopcVE8Q1c5QDtMTkpUPnByS2dSNUN9X0ZHLTZBfl9+PXxCdkJ+
YD85M2BvUFY5QShaUWpECnpqVXBLSzR+YFEkeDJra3Joc189dEV1QCUjX3hfLVN1aT99c2h6Vkpr
TSZXbzNAQTRGN3UrIWJJMit+UDdeSjR7fAp6dDY5UURrMk9GRHFlT3dDX0A4N09DQDl5RF4qPkYy
aHhgKnU1PmF8QEhyd3V4TEFhMXdIMWAkam8keWluM0UyIzMKenNHWnchc3EpbztneClsbGFmfld1
eF89VmdmMDJQO0wtYD5UbD1QXipaQW1IJkw8anhlJnx9WWVDcS1RcXNjd05VCnpIZzAra0V2fWJr
MCVAK19MXiF0UGNPNUNjWkR7MlptUil6UExSO2x1YGcoQThELXJedCR2bmBheTB8fT48ZVJ5Tgp6
JCNYQmJvN19VT0Z9KzY1NmYmVDsmRkJfM2B3WDh8eXdyfTM3VyZMRHVFTDNsc0h5bl4jZWRSQy1r
V31sWEx1X1AKel5aKEhFJnZjekdfJWt1NDMkZCh5VDI9fGF3RD09dE9FPHpWezdTVFFuKTRxbzRa
alZ+dncjM0teeUZwKUtMeiElCnpfQDFGcEZ+YXglOHRiWVleWFA3cWd9b1FMWm1tRVg/el95JmNj
UyUoZjhaYThnSkFaZzBuQmFoWCMhWG0qNU0tegp6ZTZ1K2dQMUt5fDBkfSNDUlkyNUUzOFZ3WWhw
cE44ZFlESSNoUF5TRnBKX2skN0pAU1hWMmpUXlgxLTZZbW5NTTcKelpxakV+VXBFfWJqdHpzMiRo
Y3FAdFh5Qj4rRl89MnFYM2hQMis7dnhsVUBuPDBicjk/M1BrfHxsYnMzfjJMKDRNClMwMGxRRmxm
NFE7MHRUJjwwU2tJKklFVz95CgpkZWx0YSAyMjQzCnpjbVY7ITJ0ND01Nlo7bUJDVnZRTVpEZTZ8
Zj1Qb3lBUDRYVl81ZTV9OTJmdXExZllMNi0oJWlXLWVWTWR5fUpFcAp6dG9OQXg4bXJUTHg4Z29G
bmpSeURkVCgteD02cFhyVWxPfGdefis/Ki1ARFV2ZH5hIWBAej1mVHAzfEExbkVmfVYKej0kTCE9
ZVFzYT9lcVlifih0ZD5ZUl5sUzFEPHxNUFM3PExKbyhKPlctek0kRk10fEJvPU9nRlRjdyFUSksq
Q3JRCnokdXc5SG07TTV1aUMqcUtXSj5BS3p5SW1oSHtKSjMjZiohRStGOXZ3a048dnV2WCthem50
SnZqNjEkJUNnX0xqcQp6Kkc0KUwqJlUzKElEKksjMUJAMmdBUz1OS2Y1YXNucSMtZTIwaXZsdVom
aks3VlBwJXtKTWRyQ2wmM3p4U05eVUkKekU5YlFFUFN6LWZsWWQtSWRgY015e0k3d0B8TmR6PFZ6
fng+cFJuK3c2KEV2JkZxRGowVVg8fkhwZWFUNXBDMn1rCnpTbXp0JnEkdCpvKWIpaiRSUWFoU2Bk
LWkwVGhJdndvRzVjaT0wfm96cnZTekAleTdiMUpPSVQmI0x5ZClJLU40VAp6X0c4JU49KH18PGsm
YCNlSSZzPF5ieEsyXzMjWj0+JDV8O0YrVW5jKkN4NFVNa3FsZFMocnlINUhlJlJ4RTJmRkMKejVS
cmpJWEI9PChsSzBFdFYkSi1AREx4cDAmP2xDX00kTj1nMHlyfVZLJlNxXk4/dGUhLUpUb2lGNUJS
QEhWQEErCnoqWXAkPigrO0k7dj5FPkZATW0rX1dlLTRyNjkmM1pBTUJXflhiWkpCSG5QNU89a19i
K0hkYVRzRiNtIUJCRGFkfAp6cj1NcyteP3hiTT9SNyRNNExtUmY3QTJLQVNCPkU/ZD10ezwpU3Bt
WEgwR3NKKURteV8+Tlh7LVQmTFg5TjFqI0UKemwzVjZFO2hBPSVhNTEmdTI0QUtffE5DelBHSnBU
c0llKnxqKGFyP1hrTmRsQTlJKUM9M2EpVj9iK3VDJTVQJSlNCnpYRkZ2RT9Gc31iRkJRdnRhPmRH
b3Akb1BManZJdj52dSV4a188dUNgRTZDemhpQnRiaFVKR0tMLXFxX0d3KlN6Qgp6VHJrWGx7TWUj
JVU5MVdiQzsjPnAmTnNOTUN3Nmk7bkpYU3VVek9ee21oYTEreVg3RkxgMVpiV3JwKlJNeThOVyMK
enche0NAO1NLVDNLNkl1eldGc1ltZ14jRlg9ZWQ1fmAoOHRoIVo8JD9xeGF2SVR5M3toMjh7UmNR
ISFQJClTYTAmCnpLen5yV05wS2grdHZrd1dORG58MDhjX2srak9LRkByJnwyPytTWGF+SGFBI15T
UjczcWxTcThNNXBzSzlLMz1JfQp6KElrQDVGN2dhRVdBR0NkIXRQJGApfkl9Z1Q1MHFYak0tIXJS
M0RUMTFBZlRnfEpsKHlKMVhkcmVDPFBjUy0hUzwKejZ7JTJhTW8lflJIKmxaLSEkIS1vT3ZvIThT
TTRqdy1oWE1jK3l3RWVLfWFlM05uVUZ+QGRVZSFKUEhpZnRkQjwzCnpiQlRQP01uTWcrakNeQjVx
Rk0lNj5PUH5+dnFYKV4rR0JVWXYlbWwybzUhZHM1M3NIT3tWXllSV0c8UFh6O0dmcAp6Y091d1pA
Z001czR3Wnh1XiNHUTZ3MnNGfGNuQ2k8U0A7WjtiSEJQfGBqOz40KFlOcVEmdTh1YXNASXskTmBH
NXcKemxWNGFMcXJPTXw8bip3ZEFqOUQ+YU1QVGZndmVrRXNTTT0yLVctfUUyNEhed1lwbk5uYlpz
cTlESlVHRkUtVSV8CnpsVkMzbExFMzc9WS1zaCF3bjJgOGxzZlhZI2lKakhwWVBxVXRPNDlXRHxo
QE07SUgmdnpgY0x9enJRcHY8MSopRwp6ZihzRmt7SFBfYTl4VCZlMFcxQkpuNzNna3JHRX08U0ps
MUhoe04zdkAwfUk2WH5CcHxSOytDdnJzbk4/Oyp8Q2gKem1Iek1YbH1IfjNEeTNXOz1EITgrPFZz
KyowZztJeSgrUShyX2FOfHxfeEd8NU9sejN7cUZkK1o2eyFKZDJxZHo9CnorM0ZnPSNzMTJFMV4/
b0VBYHR9RjV5T0dfZygyQHFfRm5RVyZmKElgYmMwKExoQWVKR1JoZXFJPzA/Sm01VlUwPQp6Mkt6
QjE4dXJITypBcClxO1RHezhOfGBrQ1RBJnx9VjJ+LVNpRjxPQ2g8Q0lwUVlNZSR0O3A7PkJyJSs+
KCNtS3UKelVfPzNAI01ZYm9tQG16QFNpaiFTYD5vVjthaDh9aDZWLTs+X0E2fEM+enAhPj4jTGEr
ejwobzg3cC1nMV9VU2xJCno3THh2eSQoek97d2FsezZkMmpvTDApTiMzeGIjK1NecT1hZEg4fEsq
P1lGeWRNYH1ZQU8rMVAlRXNzUEhnJWU2PAp6aWszT05zeyoyOTRMTGZiQVRTMzhGPW1pbDNKP2JR
T1VDdVgtcjxXdilYfmBjYys1M25yY2NUeGQkSDlaelU2KVkKek1aRnM/UDF2dXo5TyY8TGchVXVM
THpTWjB6SWN7dVhtb2NkTzVMJHNQfkgmRmdXcFRzNk10RSo4REI4eFduI2FRCnpwT34jUT9qalhK
JW0+dzIrUVRoQFJzRWQwM1VLMnhHfjdCWXE2dEArcko2RjVgRmFEKys/Y2F5YjRlRTJyU0Rjagp6
Wk1SKFc/cipsb3d5WjFRYTI2NWBiYTFAand3fn1QbDU8Rm5OJm00djBJMTVVdlB4YCVab0lPdk0o
TC1XSi16LTUKej4zOVdVdHgqJHp1KkorbkElQmluK2tsazhLI1JpcjZSalZJMCFGVHl6ZHBYOWpj
ZExPeV8jPXxzaSFkSmswdH1oCnozU2M2YUQ1eSo8bmFZYkIxdmN1Sj1KQyh7TDVMYT9gYHpeWENG
MVI/QVpGR1B7blExUSNsSl9+XiM1RX4rYGNWQQp6ZHpoUldwVGJiSyhhP21ue1RRXnAzV3Q3eWA+
fTBBVHJkVTEtU0QyOD5jOyQ3PDl8ZD1WY3NaZzI4T15wPmQmdkAKemwjbj10KXx+K0xhP1lEZTl0
XlhRQUIwWnFDK19uNU1MdSQyUkZkM0xicW5mdTtkVC0rMWpoKm5geDUoUyRKQlItCnpIfjA2eT4q
LWZeNTFrOU5gUCt4TFhIWF57RyZHZWJzPF9LRU9wJnc8IzAyXmlGbVBrfE9NUSZNK3Q0eFNOWmtq
Kwp6K2BLUzF7aH0qVj4zQDBEa1I8ZFUpdEJaS21DdnY0aWJeVTVsbHJ0ViYpLW45Vi1wWCErQj5Z
b1dfM15lRXlSZGMKelpWISlZcjhQQmxsSkREcktKUFo8STIlOWg9SkYkeT1RP2dNZnp5dH5VKyFQ
YHtZezMya2o+UjY0bCVSWS1xdC15CnoqZjgpbnswRCQwanxnK0drPUVhb2lvQzdaVjlJWXFlcDgm
N210RH4kQUFkJXw4Kjh7PF48cXtaU2BAdUR1cWxTaQp6Yn5HZ15oM3M3SHtXc1VfZnlZJXk3MTJE
JlQqa21pUDVmXzd6dlh5NlYjM1NpMFY/VmgzYFFJPXNJRmo4MyZDT3wKelFVST5seX18ST44SWVo
Vyh7KkQqbCYzNHBkM35IKD0rMS1MPWRgak8kcm9wWXc1Wmg2cSN7bnNyRitrUzAwMDgtCnpaRXRV
TzBGJllkJE5fK3BzfFdaMmZSbSZNTUlpK00wMDAwMDNUQTAjWXlraU8wMDB6WGJhSGU2MDAwMDAy
OCNkeQpSMjgjZmIzSkYzMjJ3Ozs9MzNebm1aX0B3KAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlv
bi05MC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tOTAubXA0CmluZGV4IDI3OWYwOWI4MzdjZDhlZDY0MTRi
NjEwNjNkMjIwZDgzZWM3M2RiZDguLjQxZTNjMzY3NWE0ZDJhMmQzY2Q4OWU1YWEwMTllMmU4ZjM0
MDc1ZTIgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgODE5CnpjbWNhMHV0czJsN0MrMVgr
PzIhOzFfcWBEWV4/d1AmeldjYCQ3bmIpVTY7e3Q8SjNUPWRqSGdwNzYkR0F8ODZ9MAp6dFRYOWUq
OEsmU0dnKUh8VnFZe2NmMzQ/Z1MtZiloRGMqTyVuYm1GezlTPGpASn4oIzZeKlFxbk5sfFgqK3ps
YjsKeno0eHppbiNpPk5mYz81dHtvPWghMHdIWEY5KSNYNntxSkdkZkIpfktOZnpndkA7K2B6eFNH
bDdvPzFPc1ZSR2BMCnpALU1kSCZsS2M/d1Vfc3FVcklTRyZNPiNXZC1ta2l7Pm1mektoJkYzRlJh
a3tfQCpaISgwZ3RFP1IhdEVjQkk9KQp6anIlZDxgJnE3Mm50aU1QemgmIWlWYEd9QXEzQ25tIWY8
MHRNc2UxYXI4a1N0SCYtZkhAeXRDdlVIJCZnWks2SFgKem1Uc3tBeTZAcnpSbyQtelVyVDEqO0l9
IWNeVTBDLSo2SHtCND0lRVFeQStXTkUjLVVYO3FlemcrWExDIXZKY2lUCnpPPiVwQT8lQ3tINDtP
eFo8OFk+e0JqQ04xaj5OYFVObVhDc1c2RjI8TlVBJmFafX5NentKKnUkdHs+WXtfdj1kQgp6JFhN
YihANGMkZGpFPTNvRD8/bH13STJSd1NlRXhXeXowJTNnTyk3MkZFJDxBeDtEYDNze1kpbFhDPG9q
P3E5YncKenBUQk1PckooWnQ/YGs8XihTVjwhbVQ2aSNBN2dqU2tVaFJzU0doaC1AbE0+akRYSiQj
citqSjlzQUZBaDcwSigwCnptSCU+d3stMzw8SG5EdjVVbzVvZEV0SEUpLV9eLUJiJUc9QjtseSY4
e1Z6Z351cFdGcld2KXtEI091WjBAcjdMPwp6VGI3eGhtRj9kQW1OfWZlcChpIT93dlFtIXEpITMy
ZXdoQFF8TFhWbGFKZz1Nd0BLb2p0WndqIStZS1RMRWV7cHsKekhQLXMmdGdGPEdAWHp2PUUxRC0r
WGcyP0srazJpMWZ5ZUZjWG1rSTVWIXg0fVgtaFNPISsofVBPTytRJHpSQilrCnpaKnojKlRPPzhO
QSV3bH5WN1NBfmduSD54K2coREJaQjBIMzJjRntFOXNhIUcreGFRbVhVSVAoV01FKXNvdCheQwp6
JSYwJjRJOyh7ZTEwdz8le1FuUTNreDImLUN0PFE3bj1hJD4kPzxGPGo2c3ZQdS1WQm0zS2Y/bTxw
OERENl8qc0oKemZZYm0xJGU0TUZXeXl3PDE9JURTNkREaTErdUwmZWY1OyU3cDJFUGo9QkF0QUxa
SFBVUm09PVZ7NmViSjcjWXx5CnZVT3pzcWJsfnJnQTBZaUFOaEwrVmQ7a1FANH1PNX48Vm95S09m
MjZnVXQ9I31HZEl5UUcleEBGPFJXMnsKCmRlbHRhIDg1NQp6Y21WLWQxRX5EMDVZUH5pRGh+eFda
RGU2fDAwMDg3MV9sNUJ0QzJZIzVIS0tlR2NZa1JPKDBgcldqU0Z2R20lJj0KejBXaChLUTM4Sz5X
ciYwVENJOG4hamQ8RFdAbVZ8Uz0xezkxQE09MWRZU2UwWDMqdmlwPWt4ZUpgNHNCWWZsWDV3Cno2
NmZ4WTMpNllwdTBvZmo7MHx7dSttSjxhTUpnYnMhJElscTxIKll3U215SEU5fGhIPD1RdVI/SnxP
XnBBYGxNSgp6JkFuPGVlUDhLPEgmSihuP2E0KmtIdz1hTy05fk1VMkJyKnNTbl9gcD1+bl55O3tn
Qk5aJl9pPj9wdG5DRjkzXmcKeik8bGd9MzhrUWZ4THA8am0oOU1MUkNWUV8hTU5rPDJWR0wtRmJB
b31BMWFYekV0azRib1MybHh5VGJLeFMoS25SCnpFV01tPmk/YHtJcigoQEF0U2tqbU16KlBvN3lH
VG0/Xmx+OG5lYCZ5YS1zNT5Fb0FsMVEwSEdMXyozcGZVSjhwfgp6c21wKG88YHhDP0ZIVWlZYUc+
Tlp2NW07M2x4YDwqa29oPyo/cUo7eHsmfigrTnM1cTtKclFNdEF9ZjdXNnw/aEEKemBeZHZqdiNp
QWdTS0RubUllM2x3cilIXzVffHswZkohNFdMUUxhM18qMDhveiopPy1nOz9FMjFXYzJISmROZFB+
CnokbyNzYTtHZm8+M2RQN3AmeWU2UiVqREoydV5CTkokayVAWD9TUy1pRWNpJTc1TFNwaWt1Rmpk
RUphaE0kTCNAYAp6Nj40anlVej43PWVlRiY5TFY2QjFFY1FoSzQrXjNLb1BaWXs3I05hQkUhQFFs
eWZ6UWI/S2JxY3FRcjJoOTZDMT0KelFCWmJaQ3E2QE0qV0lMTXBjVV8tJHxHUW9DNjx1UTdEcXVX
dmE2PjU4e1hsTTtMejs1bF9qTk5JT35ISkhmbnp3Cnp1X0RzeDNiNmc1bnlOS2YjT31GR0JKcT5a
SG0mJkZrbjtBQCtnTU9IfEh5cnAxUiswanJ3MXBpYT1yRjZseW5qJQp6Nj5aaWxEREZPZnM7R0om
Q0d8SCUtPU9MeGUtJlkkcXxjWTRUaG5edWpPezVSbn43MSlMaFYqPHtraUUxP2wqJTAKem1yckdp
ZWsxa01ZXzI9NUMwUX1jWDdJMEowMDA2NEBzbGVCYXsoS1pwOU1HcXxOb1F2MXt3eEgwMDAwMGZS
cChKCnpFZGk2MENrOWpqSzloVX5KfiNtV2I5Nz5DMDAwMSpiOThmTDAwMDAwMDAwMDEwMDAxclZS
bUNOMDAwMDAwMDAwMQp6MDAwMDAwMDAwMDAwMDAwMDAwMDAwRHpQNzIwdGthfEtSYF5YSmh+aXRs
Ml5ZWGd+a30we31uKDAxU2kwM1QxISsKaDAwd0M1PEk1dHp7ckxDKmxXcXE+MHRHTFZ2SWxlcUcm
TD9VRmZpPENlYWA+QAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi05MC52cDkubXA0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVv
LXJvdGF0aW9uLTkwLnZwOS5tcDQKaW5kZXggM2E2NjA4M2VjNGRkMGMyMjcwMGQ3NzEzZDcyM2U1
NDI0YzAwY2U0My4uYjRhNGJlOTQ2NDlhMGVlZDU2MWQxYTFjZjg4Zjc3Y2ZmYjJkMWNmYyAxMDA2
NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzcxCnpjbVY8SDF7Qz4qN3FBbk1DVnZLPFpEZTZ8
Zj1Qb3kwMHI7fF81ZTV9OTJmdXExS0B1KihFSVdJQHB6LSYzckJqLQp6ZDU+QXNlT0lMU1VxZ0NO
TVdWZWlFJUpIemQ8e0tyalpLbFJyIWZDQi1CNztBelBYJXEzTEEmLXQ9SXFuYyk5dXsKejs4WEVy
Mk1ATUowTmFmRz9BYXxpdWZOOHpGTiYxSCNGLWZFd3p9Mi05NFpybEs3VTt2UChwPGspQ2ZjPjA1
T0xxCnohbz5VJi0jd2Btdj5DaH5AYVNkens8JEBmb1YxSE9gaClLQUtYe344YXZpbz9iY1EpPEA8
QGh7end+bjFUaDxKbQp6cWlCMnhhLTZSbXhgU35DMTFoRUtHY3B7bEJzM0Z2OXRJWlBOdStNNXtU
ciloSFdnZ3hfXiolODRfc3x6VWg1VCQKej0we31VWnVfOE1NdH00blFLWmg7NSN9M25tYlZjbmxs
Sj1gXyopKmFxYzZCZFcxeWxzTmk+OXhTJChvREtwP35nCnpqYkQ8JGxTfjY3N3BpQ15xekA3WD12
cXJBSExeSUJValQ0fDA3SUxrR0kkUk4mJmxeUTErbzlvUShRIzlAez1BTAp6M1YtdGB6Vip2PEB4
UTlCeHJocj17bi1fe0BmRSgkeHQ4MnZBSkUlVjlEZlN0O2IqUXlaMlB4VEdDaFIxITg2UGQKenNf
ISpNWFQtWEV1TDYkcVUxZFVMUzxRbj8lIVMxTDg2MW9kdEA2cTQxSVV4cERjMWBSSmduTmFvYD9J
aEVfVWh2CnpIfEc5cDtrdipmSnxjZUpZVCoqO0lBalBZNUpCTTBBJE8lNGh7SnNIWH4yYVhyTk1e
ZSZ4WXNXd3ZGTHBqQ2JXcwp6QV81MGo2QFNYU3Zhans/OSkyMHdEMD5gQWoofHd5RUROUDJWcmtk
ZFNTJGNDR00ydSZ2SGZ1S2M5fkAmOShxSDIKejFEaHhONFJ5NFZFcj10JEkjWGhkRD5KfUM+Y1pn
PU0jdygjS208RUxEeklnVGt1NSRtQTw7SkJ7RnI4YkYySlZeCnooMEYwJCZ1X1NieGBNSD9Cem4o
OTllM0tIOVolKS1OfTMmVT90aHg4cnZxRjFeKFYtR3hxMF9mISs0fW9Be356Zwp6KSoqKEI+KUVr
a3t+T2lvbUFGVktnalV1d0FEZ2h4Sj5SamZsQnd+UWpVMC0lcWh7KGRJZDkwRE5oa3olYj5XWmQK
ekd0UEBNcFhaSGJTSHpiLSooSSljQStWLWU7fH5NTSEhUm1UQHAqKCtANG1TclYoJGBrLSYraz17
PD1kS2I1MzFSCnpCITk3UXVrcGhyZ1E+TEQ7UmhBYDlvRCNje2M+X1E5OyFZQlAzQXJnQ2smcWB7
e2UxfWN8c0ZLMjhgQlUxXlBHSgp6bE57c2doWFdtK2ojVylkT3s0b2hAQWRVLWslezN2KlZ+KSko
Zi1YMElTXkFZa0BNY0dpUylfRXtVNyhhOHFtUzQKendEeSRHPmZXRkJVUVUzOyZIV2FBbS0tNnkz
aWtnUD53azt6UzBta2hBIWk9YXcmTnpBd1k8ZWU0WF5BfUsoJWgjCnokIzxvcmNHMHN0MWBrM0hp
Yk1uS08taG81SE1UYD0mTWNzdT59cXE4cXNzUHZuPXtuanAhYUd5KkkqbzgwV2VCPgp6ekZrQT0o
QWtiZyR4SFJhezRudWJsU2JuVTU1PVFUM1VeI08yfXBtaXc4VWBSPlpBZk9lVkRxTT9gbyFPXm5i
SHMKelFvRSVIRih+Qm1WbGt4ZFYqcEEpU0gmNHByQWw8dC0+X2M9QnBUe2peYnVTXk4wRDN4T1dI
O04pUGt1cmt7YkdJCnpDUm89JTsqRFVpZGNjQjArNUh0RGM8YmtFXnpTdSZTMlpgQWFhOHMzLVUl
Yj56MzYzdF5TSW8tamVNbGQpfH16Rgp6VX5OJiNIcz5iNi1MX094P3MmaSpPPF5Bc1EtMjskXiR2
Kl5ucm0kK2R5NnV+Uz91Jm9HYzQjeEdSWlY4QSswdHoKenNSR2U3enB8NkIrLUE0R3I3bigtcTJ9
V3M7Zk9hYk8hNFNpMGVgeVQ/a2FpanV3Wj5MSyk1dFEzM1VHM0xqdDx4Cno/bEFTemN6PGNHdyRG
fT5BdG1wc0dfWGtUVGFFJC0lVm5EYUpwVD5KRmhrZX1AWXBhZFVXUHJsISsrVyk3fGVhMAp6Jmh6
RCZBZU1jajx7cGZkJFVpPGZtMHJhM2E7RHZncH50TGNLVj8hKzI9eDw8QiVfQTYxVWcwUHk8MXxh
WVR1cUYKeksodzBhN3tDQVREWng8SW83V0BQRUgqWkZeXm5jM3FgPDJCTUs4Pzw4dno5VTVBKHZm
YXBELVQ3PDdTPS1vOFdnCnpjM24/KTlIOUx5Y0xJfHhNSUAtRVdxO351cDVMWVg4I0pERUZzQV85
WjZpRDgtMUkyUndZZzBkOW5uRGRZS2xiagp6PVJYZnF5bkA9I2hgaiV2Vzx6M1F6VU9CWkgmNH0q
RCFsZld5azdmJHg2OEtlJTFMMnY8QDRENUs4WnVYJTI2e2QKeiVFTy0leWt7ZEZkc0F9IXVHfFRT
Wm9fQkdQJHdXZSglNSg0WHQwLV53cEpSKmxKOTFpMSVDdlk2STc2UCVJcTAzCnpYe1U2WkpUYDVJ
dkd4cGZiX1ElMGYhYzBmJkVyTm1KQmBvOEVxX3IodEN5OVVXckdmUGpEOWpMN2xNYU56aitucwp6
dTRUM2teO2ZaY256SGReKkxXTSNFSngkNkNIJnBhdHlqKHA+czUxYXUlMHdfR2o/Njt5dGY+PTlF
KCtzPGZfdk0KenQ1Xk5zTU1xcHklOTR8YjRKVHF3RyhLYUVobX5UNTxvajN+Zyg0blJaPC1aJTxL
TlQ3VHJXck5hO0RlZlJmbG1rCnp6Pn01OyhnOSRUWCRrbE5WM1Q0Qk1JaXpKMDAwMDAzVEEwI1l5
a2lPMDAwelhiYUhlNjAwMDAwMXRlJHkxdGUmYgpOJE89TE4yOT1XeDN3cGA+WVpDd2YKCmRlbHRh
IDIyNDUKemNtVjskMnMteiQ2TlZSJUNWdlFYWkRlNnxmPVBveUFQNFhWXzVlNX05MmZ1cTFPUl9H
LWs7eDU9ezt0TV9relY8CnpeQjwjQmRUKH1yWEorVyRvN35NNj5BZXY8LWdgR2J1VTFuMV59MDhg
PEtUUGliYk12MHgqWjFlUDwhaWgwMDRadwp6enlJcDIhZWpzY1puQV5ffE1zfk8xMTxnOTUjUnN1
JGhafT13d04+aj1GQ1hqaEpQZFgpSm1IaHxMcFd6cGttZTMKenIjbmdfVHd9KEA0am5YQStWIVRw
Pk52fD0hOH5oaU19JDZrO2h9bFBMRXB7VzVTOD9QRWRUa1IhXjlrRCU7U3hOCnpUTVBOVCFjK2Rx
YDFOc2o/Xkw7UzFFTT84VGk8LTJUMF4xfUtDUklMWE5sMVA1TTE2QjBtJmUoYFRmd2MzP0QwRgp6
KGhwVVkzXlIjYnhQSmw5fEN+SmZJPVFWflN8dGk4aFVjZGl4IURrVXFfXyFDX2B+Z3lHfXN8fVlv
RntwZkkraTAKejY/aVJXaWQkZmt5R19pdCFTPFlQKDhVI3tfUWJHOEg2PkU4V0xgQmZyZFhPeUo3
KkdQZU1rMWskQGwmSE9PQ3J0CnpfVEBgaiZZaTdRPXlZV2xAZDJqckUzZ2tfeDlwdHF4M2wtSlNP
TmFGcG5yeCRQMFdLNkxhPSF4XzNEJS1GZ052Ngp6ZkF8V2UoUTg3PUx2JlNLTDw/WjNlSnMhJXxF
fnB2T3p2THRxfWMtckE9S0lUbDtjaDtOaThoZnVLXkh9KHZLRSoKenwxT351TSptQSp5fTRII0Iz
eDVHPURuQDJgYEE2ZXMwPjlLIUtzUW0zJE9lPShFUFJmI14oKn0yKWY+VjU/KGNiCnpyPVM/KSRB
OGlkQ3BLJlRVSUtYJUs2a0pNb01We25oKUR3fUcrcSR4bnw3dkA+QE5UUmxmbmtPKWRXcmQ8MClw
WAp6WH49aWZTakJoJD9mPmxtKlA4JHFReE49XigmKG1VVzx6aCM3UFRsJjRJcm07I0FtISpuV0NM
UlB5WGIwKH0yN18Kek84JDZlVnRRaldmRWRxZD03WnJYTzg/SGc7Y3tPRk8qSmlzOSlIUmVFNj5z
Zjt1ZyZnWXZTMFI2NislPnZndTB2Cnp4dT1jbDNlfHNSRm9aIzN4SD8rUkdmQ01+V2hnXmRrTl43
aW9Dfmc1cD5CRCFLR3RKI204bjJON0xaNy1lalBkUwp6MXxRNT8rKDtYQU1fRVV8dUhZO3opOWNK
M2BIWFAxZGRfNF93YXlQMz4tIUVFS31tQ0EqUzBOKGxaPF9BJX5EaFUKelBKY0x6TihiPipTTDxg
e3xOb0owa3tXaW94MCNFQVlufVR+JXMleTdeejY7d3JRcm5oQE1+M0wxJlhRSyU7TkoxCnozXkAo
PyopKXErQ31LJX1JYTtnaiRCVlo9LXV3VWt6Zkx9USljc0NfNCpAeyVTMnpDfThsIUBkYWJsSzYy
KFE5Tgp6PCMmUmg4NihyZVFjWmxicDMkIWwre3Z4OFB4NjFOb1BYT2MyamAjQ3t6WXdoUntVX013
ZyN3dD42TG8/U3BYI3MKenh2OUppSzRRVXApZGE4diMrfHo0eWFEPng8KishTTt8TTVVVklhTDF7
NDIrcHpTcEpXOzJvdHluaWkhUnMmUSZKCnpEMjlyb250RjJQelBaM3ZGeHB1fWhBfnEoZGd0SiFM
UzZvLWUtMWUxdEd1US1xWkpTOTd7OXtANmshT0daaHZfPAp6ZVNnKXxBM3JEbGd1XmI8U1h5b1JZ
JVZ7WHttYC1XV2UxP352OCVzMXdtOHl6QnhCVFglZm9WUlpXbiRVYz4hPjEKekJubHFRPmlrRzN3
bzZ4MitkXnhweWA/fFgtbUtMZT9MMmhMKlNgcD44T1I4R3tNI09HYjlgKWgrVmxyfjxoKn1RCnp2
ZzxsYXA/I0BFbldwU3lLTGBre19yQ3JgSiUxWGU3dXp7KXstXlcoUSM8UjdnUiQ+RnxLemN+e2wt
TiM3O3toTwp6USh7bkhlbmhaNDtPSnZDb3NoYGk0aEgpR28oWVROQm1yNDFwMnxpJGE9cHZITn1T
ajRDdm9AenRSPU5ZWkg3YCUKelYoPz1fZks5KyU0cylSPDNjZEA2KHdhZ3B0T0VAe1JSKyN0TTY2
NXIoQyRKMDJNYV5gWiohR35tVlhwSHs0eDgmCnpzVTR1MWk7NFEqbTQtPChnR3AkME4kcmBFYT5h
UDVYYURoeGkxQWAyJTVpO0FMO3BjIzM8eWAlJmRXZXBXR2IzTQp6aHIpMXBDWG5wP2I9RXxEbE0/
KCZmYHlpbVB5QDs/Z2dSWDd6NGNYVUNwRT1PVE5adzUpKTU7P2ZgXkVrSmZUWFIKekIkRkZxYzh+
bG1kVFQjZUZYYlhES1khU3JUKStBd3xOcD1FMj1TV3JNMyZ2IXpMc0koR1dxLT9wVm5DQE1lUyg1
CnpBUSMyLWlheClMTXZaMyFTJHoqbSpnTiQ5c2AoQ31RWE0+OF5xeXojVztmNy0wOFVeRCt6Ukph
Y31FVmtkRSRGUQp6eWM5UHxeI24pXnokVyhnZD5eNTdMeUdHSGdLVyQ1QVFGXlVAWHtZXntBMEpC
NTwtViokQThjdmM7LUJyVEM+fGIKek5xK2VKKk0+b2g3RXR0KEtOZ0gqbjFMcGdwPUJ9I2V3YDlU
UV5JNWNyQzl+dlN8bkVMZVVYYEVhKVdfKmZ6cVM9CnpZd05FNSk8KShveWNeNnorPXBneC11SjZ8
K21SM0t7Ozs2aEQxZU9zQEdvJFpXX2IxYyVGTUltKClvUktSPGxrXwp6Qmprb2IxOXJhfGRyOFN+
MiFEb35FIXR6O2gjaz9jN3lxeVFNMDc0PEZ+TnRsJHAjKVRvaUMldy1UKGpPT2dIVVoKejglI3Fs
TUNCZUFHUEM5WjF5Kmlye2NTejU0WVNqT0o1MX15a1ojOGhSMHRyQitAd35SJEFqRXlSTE8+azRY
ZkBCCnopUEV6KEdrZT1LYFVNZGNGODFqLWFmakhJQ3g7d2heUiMqWlh1bmxiKmUheGQ+M0A9dGZg
bDNWazxuKyMyKGZhNwp6KksqQmZDWjUkRnZFM2A+NituOGh1WilgP0RifDM9aTkjbEUhZmJBLXl9
UGhgJTI2ajRTWk1+R3lDREVeUU9JTkMKemc4ZlZUQFR9TD5jdmt8TkUlYkxhKmdPQ3YzMXNNUElS
KHRAR05ocjFlYEwtO3k/MzdscDNgRXtfWHhPfXMkdUE3CnpkXzw5O013JGRWZ0AzKn5uZGhMO2s0
RkA/eD83fCt7LTJZZ1MrO2xLOE00MU4waV5lcitHPkNkKGZpditKdmwkKAp6JWhxJTZ0IVcmeUgo
P2srSFckPnpUa0QwWSpuRmVjNFJ6TFdpQGckSElgdmpMSlJfZD9SQC1HQnw4bGcrbmhmdFMKejdT
LWNMM0ZsX0JuKyVeWmkyRnB1Mnc2ZmNke1FIbCh+fjFgYj1XY2pjel5yQkkoKVUjZ3RjREIwajct
U0JrTEI9CnpvTnRtVlF1Zz1wKk9JTnFiVHoxbCZNMVpoY29aNz1ZMTFrWihgbGgkeihrR3tUJWZS
NzVZN1QkWE5DQjtwfk0lcgp6NVFWOVdWU2M4aHZnfn4qbV9xOUxYYF9QKiRxdjwqajZlR2deWTAj
P3g+VGtIRVJeVElfR0ZnNndnbDt1YFhVdFAKekF5SzBjPkgmejh6eXtJKmZSbUY0X3lLXkVqMGk7
YDFwb2o1MDAwVlJYPVE4eTAwMDAwNms+RjhiTn5QVjAwMEopClRtO2VUb24zTTdkTElNYkRsUXMh
QFhVJURgCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450109</attachid>
            <date>2022-01-27 00:38:07 -0800</date>
            <delta_ts>2022-01-27 03:17:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235563-20220127103803.patch</filename>
            <type>text/plain</type>
            <size>1995063</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NjEwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDFjZDQ5ZDJhNDU0NDE5NDNiN2IwMzQ5ZTJkOTlkMTIy
NzkyNmU5Ni4uYzJlMDIxZWUzNzQwNzZhZDc0ZjQ0NzkxNGQwMzAyMjM5YzVhYWU0MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIyLTAxLTI1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3Qgc3VpdGUgdG8gMjAyMi0wMS0x
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NTYz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEFkZCBmdW5j
dGlvbmFsaXR5IHRvIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3Rz
OgorICAgICAgICAgLSBDb3B5IGh0dHAtb25seSB0ZXN0cyB0byBodHRwL3Rlc3RzL3dlYmdsCisg
ICAgICAgICAtIEFkZCB0ZW1wbGF0ZSB0byBqcy10ZXN0LXByZS5qcworCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL2pzLXRlc3Qt
cHJlLXRlbXBsYXRlLmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2Vf
dGVzdHNfbGliL21haW4ucHk6CisgICAgICAgIChfY29weV90cmVlKToKKyAgICAgICAgKG1haW4p
OgorCiAyMDIyLTAxLTI2ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+
CiAKICAgICAgICAgW0dUS10gUkVHUkVTU0lPTjogVG91Y2ggc2Nyb2xsaW5nIGlzIGJyb2tlbgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFu
Y2VfdGVzdHNfbGliL2pzLXRlc3QtcHJlLXRlbXBsYXRlLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHNfbGliL2pzLXRlc3QtcHJlLXRlbXBs
YXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmZDQyZTUzMGI2ZTBmNzFkODQ2OWZkYjBlMmMyNGIxNDc5NjBk
MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJn
bF9jb25mb3JtYW5jZV90ZXN0c19saWIvanMtdGVzdC1wcmUtdGVtcGxhdGUuanMKQEAgLTAsMCAr
MSw1MTkgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29y
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRv
IGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoq
IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn
ZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll
cyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl
IE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3Bp
ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUg
TUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL
SU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP
IFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiog
Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP
RiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhF
UiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworKGZ1bmN0aW9uKCkgeworICB2YXIg
dGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IGZhbHNlOworCisgIHZhciBpbml0Tm9uS2hyb25vc0Zy
YW1ld29yayA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh0ZXN0SGFybmVzc0luaXRpYWxpemVkKSB7
CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQgPSB0cnVl
OworCisgICAgLyogLS0gcGxhZm9ybSBzcGVjaWZpYyBjb2RlIC0tICovCisKKyAgICAvLyBXZWJL
aXQgU3BlY2lmaWMgY29kZS4gQWRkIHlvdXIgY29kZSBoZXJlLgorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5kb3cudGVzdFJ1bm5lcjsKKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAvLyBUaGUg
V2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNvbXBhcmVzIGNvbnNvbGUgb3V0cHV0LgorICAgICAgLy8g
QmVjYXVzZSB0aGUgb3V0cHV0IG9mIHRoZSBXZWJHTCBUZXN0cyBpcyBHUFUgZGVwZW5kZW50Cisg
ICAgICAvLyB3ZSB0dXJuIG9mZiBjb25zb2xlIG1lc3NhZ2VzLgorICAgICAgd2luZG93LmNvbnNv
bGUubG9nID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1
bmN0aW9uKCkgeyB9OworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVy
cm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOworCisgICAgICAvLyBSQUYgZG9lc24ndCB3b3Jr
IGluIExheW91dFRlc3RzLiBEaXNhYmxlIGl0IHNvIHRoZSB0ZXN0cyB3aWxsCisgICAgICAvLyB1
c2Ugc2V0VGltZW91dCBpbnN0ZWFkLgorICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZSA9IHVuZGVmaW5lZDsKKyAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUg
PSB1bmRlZmluZWQ7CisgICAgfQorCisgICAgLyogLS0gZW5kIHBsYXRmb3JtIHNwZWNpZmljIGNv
ZGUgLS0qLworICB9CisKKyAgdGhpcy5pbml0VGVzdGluZ0hhcm5lc3MgPSBmdW5jdGlvbigpIHsK
KyAgICBpbml0Tm9uS2hyb25vc0ZyYW1ld29yaygpOworICB9Cit9KCkpOworCitmdW5jdGlvbiBu
b25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSgpIHsKKyAgLy8gV2ViS2l0IFNwZWNpZmljIGNv
ZGUuIEFkZCB5b3VyIGNvZGUgaGVyZS4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQorfQorCitm
dW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYg
KHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2Vi
Z2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgc3Vj
Y2VzcywgbXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygp
IHsKKyAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5w
YXJlbnQud2ViZ2xUZXN0SGFybmVzcy5ub3RpZnlGaW5pc2hlZCh3aW5kb3cubG9jYXRpb24ucGF0
aG5hbWUpOworICB9CisgIGlmICh3aW5kb3cubm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUp
IHsKKyAgICB3aW5kb3cubm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKTsKKyAgfQorfQor
CitmdW5jdGlvbiBfbG9nVG9Db25zb2xlKG1zZykKK3sKKyAgICBpZiAod2luZG93LmNvbnNvbGUp
CisgICAgICB3aW5kb3cuY29uc29sZS5sb2cobXNnKTsKK30KKwordmFyIF9qc1Rlc3RQcmVWZXJi
b3NlTG9nZ2luZyA9IGZhbHNlOworCitmdW5jdGlvbiBlbmFibGVKU1Rlc3RQcmVWZXJib3NlTG9n
Z2luZygpCit7CisgICAgX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nID0gdHJ1ZTsKK30KKworZnVu
Y3Rpb24gZGVzY3JpcHRpb24obXNnKQoreworICAgIGluaXRUZXN0aW5nSGFybmVzcygpOworICAg
IGlmIChtc2cgPT09IHVuZGVmaW5lZCkgeworICAgICAgbXNnID0gZG9jdW1lbnQudGl0bGU7Cisg
ICAgfQorICAgIC8vIEZvciBNU0lFIDYgY29tcGF0aWJpbGl0eQorICAgIHZhciBzcGFuID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHNwYW4uaW5uZXJIVE1MID0gJzxwPicg
KyBtc2cgKyAnPC9wPjxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiPHNw
YW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIjxzcGFu
IGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPiIuPC9wPic7CisgICAgdmFyIGRlc2Ny
aXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIik7CisgICAgaWYg
KGRlc2NyaXB0aW9uLmZpcnN0Q2hpbGQpCisgICAgICAgIGRlc2NyaXB0aW9uLnJlcGxhY2VDaGls
ZChzcGFuLCBkZXNjcmlwdGlvbi5maXJzdENoaWxkKTsKKyAgICBlbHNlCisgICAgICAgIGRlc2Ny
aXB0aW9uLmFwcGVuZENoaWxkKHNwYW4pOworICAgIGlmIChfanNUZXN0UHJlVmVyYm9zZUxvZ2dp
bmcpIHsKKyAgICAgICAgX2xvZ1RvQ29uc29sZShtc2cpOworICAgIH0KK30KKworZnVuY3Rpb24g
X2FkZFNwYW4oY29udGVudHMpCit7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChzcGFuKTsgLy8gaW5zZXJ0IGl0IGZpcnN0IHNvIFhIVE1MIGtub3dzIHRoZSBuYW1l
c3BhY2UKKyAgICBzcGFuLmlubmVySFRNTCA9IGNvbnRlbnRzICsgJzxiciAvPic7Cit9CisKK2Z1
bmN0aW9uIGRlYnVnKG1zZykKK3sKKyAgICBfYWRkU3Bhbihtc2cpOworICAgIGlmIChfanNUZXN0
UHJlVmVyYm9zZUxvZ2dpbmcpIHsKKyAgICAgICAgX2xvZ1RvQ29uc29sZShtc2cpOworICAgIH0K
K30KKworZnVuY3Rpb24gZXNjYXBlSFRNTCh0ZXh0KQoreworICAgIHJldHVybiB0ZXh0LnJlcGxh
Y2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpOworfQorCitmdW5jdGlvbiB0
ZXN0UGFzc2VkKG1zZykKK3sKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyh0cnVlLCBt
c2cpOworICAgIF9hZGRTcGFuKCc8c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4g
JyArIGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJi
b3NlTG9nZ2luZykgeworICAgICAgICBfbG9nVG9Db25zb2xlKCdQQVNTICcgKyBtc2cpOworICAg
IH0KK30KKworZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpCit7CisgICAgcmVwb3J0VGVzdFJlc3Vs
dHNUb0hhcm5lc3MoZmFsc2UsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNz
PSJmYWlsIj5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAg
ICBfbG9nVG9Db25zb2xlKCdGQUlMICcgKyBtc2cpOworfQorCitmdW5jdGlvbiBhcmVBcnJheXNF
cXVhbChfYSwgX2IpCit7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKF9hLmxlbmd0aCAhPT0gX2Iu
bGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IF9hLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKF9hW2ldICE9PSBfYltpXSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24g
aXNNaW51c1plcm8obikKK3sKKyAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZyb20gLTAg
aW4gSlMgaXMgdGhlIGZhY3QgdGhhdCAxLy0wIGlzCisgICAgLy8gLUluZmluaXR5IGluc3RlYWQg
b2YgSW5maW5pdHkKKyAgICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOworfQorCitmdW5jdGlv
biBpc1Jlc3VsdENvcnJlY3QoX2FjdHVhbCwgX2V4cGVjdGVkKQoreworICAgIGlmIChfZXhwZWN0
ZWQgPT09IDApCisgICAgICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQgJiYgKDEvX2Fj
dHVhbCkgPT09ICgxL19leHBlY3RlZCk7CisgICAgaWYgKF9hY3R1YWwgPT09IF9leHBlY3RlZCkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQpID09ICJudW1i
ZXIiICYmIGlzTmFOKF9leHBlY3RlZCkpCisgICAgICAgIHJldHVybiB0eXBlb2YoX2FjdHVhbCkg
PT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CisgICAgaWYgKE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChfZXhwZWN0ZWQpID09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChbXSkpCisgICAgICAgIHJldHVybiBhcmVBcnJheXNFcXVhbChfYWN0dWFsLCBfZXhwZWN0ZWQp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gc3RyaW5naWZ5KHYpCit7CisgICAg
aWYgKHYgPT09IDAgJiYgMS92IDwgMCkKKyAgICAgICAgcmV0dXJuICItMCI7CisgICAgZWxzZSBy
ZXR1cm4gIiIgKyB2OworfQorCitmdW5jdGlvbiBldmFsQW5kTG9nKF9hKQoreworICBpZiAodHlw
ZW9mIF9hICE9ICJzdHJpbmciKQorICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRMb2coKSBleHBlY3Rz
IGEgc3RyaW5nIGFyZ3VtZW50Iik7CisKKyAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdzIGdv
IGhvcnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KKyAgZGVidWcoX2Ep
OworCisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNo
IChlKSB7CisgICAgdGVzdEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAg
fQorICByZXR1cm4gX2F2OworfQorCitmdW5jdGlvbiBzaG91bGRCZShfYSwgX2IsIHF1aWV0KQor
eworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmci
KQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVu
dHMiKTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAg
ICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24g
PSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRocmV3
IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmIChpc1Jlc3VsdENvcnJlY3Qo
X2F2LCBfYnYpKSB7CisgICAgICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHR5cGVvZihf
YXYpID09IHR5cGVvZihfYnYpKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
IiArIF9idiArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIg
KyB0eXBlb2YgX2J2ICsgIikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9h
diArICIpLiIpOworfQorCitmdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIHF1aWV0KQorewor
ICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQor
ICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVu
dHMiKTsKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAg
ICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24g
PSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiBU
aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29y
cmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgbm90ICIgKyBfYik7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkQmVUcnVlKF9hKSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIpOyB9Citm
dW5jdGlvbiBzaG91bGRCZUZhbHNlKF9hKSB7IHNob3VsZEJlKF9hLCAiZmFsc2UiKTsgfQorZnVu
Y3Rpb24gc2hvdWxkQmVOYU4oX2EpIHsgc2hvdWxkQmUoX2EsICJOYU4iKTsgfQorZnVuY3Rpb24g
c2hvdWxkQmVOdWxsKF9hKSB7IHNob3VsZEJlKF9hLCAibnVsbCIpOyB9CisKK2Z1bmN0aW9uIHNo
b3VsZEJlRXF1YWxUb1N0cmluZyhhLCBiKQoreworICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicg
KyBiLnJlcGxhY2UoLyIvZywgIlwiIikgKyAnIic7CisgIHNob3VsZEJlKGEsIHVuZXZhbGVkU3Ry
aW5nKTsKK30KKworZnVuY3Rpb24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7
CisgIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUg
YSBzdHJpbmcgdG8gYmUKKyAgLy8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVj
dGVkJyBtYXkgYmUgYW55IHR5cGUgYW5kIHdpbGwgYmUKKyAgLy8gdXNlZCB3aXRob3V0IGJlaW5n
IGV2YWwnZWQuCisgIGlmIChleHBlY3RlZCA9PSBudWxsKSB7CisgICAgLy8gRG8gdGhpcyBiZWZv
cmUgdGhlIG9iamVjdCB0ZXN0LCBzaW5jZSBudWxsIGlzIG9mIHR5cGUgJ29iamVjdCcuCisgICAg
c2hvdWxkQmVOdWxsKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1
bmRlZmluZWQiKSB7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoYWN0dWFsKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gImZ1bmN0aW9uIikgeworICAgIC8vIEFsbCB0aGlzIGZ1c3Mg
aXMgdG8gYXZvaWQgdGhlIHN0cmluZy1hcmcgd2FybmluZyBmcm9tIHNob3VsZEJlKCkuCisgICAg
dHJ5IHsKKyAgICAgIGFjdHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgIHRlc3RGYWlsZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6IFRocmV3IGV4
Y2VwdGlvbiAiICsgZSk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJlKCInIiAr
IGFjdHVhbFZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciLAorICAgICAg
ICAgICAgICInIiArIGV4cGVjdGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIici
KTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKKyAgICBzaG91
bGRCZVRydWUoYWN0dWFsICsgIiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gInN0cmluZyIpIHsKKyAgICBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xlYW4iKSB7Cisg
ICAgc2hvdWxkQmUoInR5cGVvZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7CisgICAgaWYgKGV4
cGVjdGVkKQorICAgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCk7CisgICAgZWxzZQorICAgICAgc2hv
dWxkQmVGYWxzZShhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAibnVt
YmVyIikgeworICAgIHNob3VsZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVkKSk7CisgIH0g
ZWxzZSB7CisgICAgZGVidWcoZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAiICsgdHlwZW9m
IGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBlY3RlZC50b1N0
cmluZygpICsgIiciKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZU5vblplcm8oX2EpCit7
CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwo
X2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAo
ZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gVGhy
ZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gMCkKKyAgICB0
ZXN0UGFzc2VkKF9hICsgIiBpcyBub24temVyby4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSBub24temVyby4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBz
aG91bGRCZU5vbk51bGwoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRy
eSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlv
biA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSBub24tbnVsbC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNl
IGlmIChfYXYgIT0gbnVsbCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24tbnVsbC4iKTsK
KyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIg
KyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4
Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24p
CisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhyZXcgZXhjZXB0
aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQi
KQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKwor
ZnVuY3Rpb24gc2hvdWxkQmVEZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIg
X2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAg
ICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVk
KF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24p
OworICBlbHNlIGlmIChfYXYgIT09IHVuZGVmaW5lZCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBp
cyBkZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRl
ZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9y
RXF1YWwoX2EsIF9iKSB7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2Yg
X2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFu
T3JFcXVhbCBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247
CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYg
PSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2Eg
KyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlv
bik7CisgICAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYp
CisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMg
IiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGV4
cGVjdFRydWUodiwgbXNnKSB7CisgIGlmICh2KSB7CisgICAgdGVzdFBhc3NlZChtc2cpOworICB9
IGVsc2UgeworICAgIHRlc3RGYWlsZWQobXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiBzaG91bGRU
aHJvdyhfYSwgX2UpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7Cisg
ICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7
CisgIH0KKworICB2YXIgX2V2OworICBpZiAoX2UpCisgICAgICBfZXYgPSAgZXZhbChfZSk7CisK
KyAgaWYgKGV4Y2VwdGlvbikgeworICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwg
ZXhjZXB0aW9uID09IF9ldikKKyAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlv
biAiICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgICBlbHNlCisgICAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0
aW9uIiA6IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Cisg
IH0gZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0RmFpbGVkKF9h
ICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhj
ZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8g
ImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOworfQorCitmdW5j
dGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2
YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisKKyAgICB2YXIgX3R5cGV2ID0g
ZXZhbChfdHlwZSk7CisKKyAgICBpZihfdHlwZXYgPT09IE51bWJlcil7CisgICAgICAgIGlmKF9h
diBpbnN0YW5jZW9mIE51bWJlcil7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBh
biBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKHR5cGVv
ZihfYXYpID09PSAnbnVtYmVyJyl7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBh
biBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNleworICAgICAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mIE51bWJlciIpOwor
ICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgewor
ICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5j
ZSBvZiAiICsgX3R5cGUpOworICAgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0TXNnKGFzc2VydGlv
biwgbXNnKSB7CisgICAgaWYgKGFzc2VydGlvbikgeworICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChtc2cpOworICAgIH0KK30KKworZnVu
Y3Rpb24gZ2MoKSB7CisgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpIHsKKyAgICAgICAgd2lu
ZG93LkdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93Lm9wZXJhICYmIHdpbmRvdy5vcGVyYS5jb2xsZWN0KSB7CisgICAgICAgIHdp
bmRvdy5vcGVyYS5jb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0cnkg
eworICAgICAgICB3aW5kb3cuUXVlcnlJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5z
SUludGVyZmFjZVJlcXVlc3RvcikKKyAgICAgICAgICAgICAgLmdldEludGVyZmFjZShDb21wb25l
bnRzLmludGVyZmFjZXMubnNJRE9NV2luZG93VXRpbHMpCisgICAgICAgICAgICAgIC5nYXJiYWdl
Q29sbGVjdCgpOworICAgICAgICByZXR1cm47CisgICAgfSBjYXRjaChlKSB7fQorCisgICAgZnVu
Y3Rpb24gZ2NSZWMobikgeworICAgICAgICBpZiAobiA8IDEpCisgICAgICAgICAgICByZXR1cm4g
e307CisgICAgICAgIHZhciB0ZW1wID0ge2k6ICJhYiIgKyBpICsgKGkgLyAxMDAwMDApfTsKKyAg
ICAgICAgdGVtcCArPSAiZm9vIjsKKyAgICAgICAgZ2NSZWMobi0xKTsKKyAgICB9CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgIGdjUmVjKDEwKTsKK30KKworZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgdmFy
IGVwaWxvZ3VlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgIHZhciBiYXNl
UGF0aCA9ICIiOworICB2YXIgZXhwZWN0ZWRCYXNlID0gImpzLXRlc3QtcHJlLmpzIjsKKyAgdmFy
IHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7CisgIGZv
ciAodmFyIHNjcmlwdCwgaSA9IDA7IHNjcmlwdCA9IHNjcmlwdHNbaV07IGkrKykgeworICAgIHZh
ciBzcmMgPSBzY3JpcHQuc3JjOworICAgIHZhciBsID0gc3JjLmxlbmd0aDsKKyAgICBpZiAoc3Jj
LnN1YnN0cihsIC0gZXhwZWN0ZWRCYXNlLmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7CisgICAg
ICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpOworICAg
ICAgYnJlYWs7CisgICAgfQorICB9CisgIGVwaWxvZ3VlLnNyYyA9IGJhc2VQYXRoICsgImpzLXRl
c3QtcG9zdC5qcyI7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBpbG9ndWUpOworfQor
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3VwZGF0ZV93ZWJnbF9jb25mb3Jt
YW5jZV90ZXN0c19saWIvbWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdXBkYXRlX3dl
YmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9tYWluLnB5CmluZGV4IGM2MTA1NjNlZjE2MWU3MzZj
ZmJiZDZmNWMxY2JhNjRkNzU3MmI2NDcuLjU5YTBjN2NmMTJjNTc3MjNjZTg3YTRlMzkwOGRiNjI1
YmU4YTIxZjAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdXBkYXRlX3dlYmds
X2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9tYWluLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdXBkYXRlX3dlYmdsX2NvbmZvcm1hbmNlX3Rlc3RzX2xpYi9tYWluLnB5CkBAIC0zNCw4ICsz
NCw4IEBACiAgICBjZCB+L3RlbXAKICAgIGdpdCBjbG9uZSBnaXQ6Ly9naXRodWIuY29tL0tocm9u
b3NHcm91cC9XZWJHTC5naXQKICAgIG1rZGlyIGJhY2t1cAotICAgbXYgfi9XZWJLaXQvTGF5b3V0
VGVzdHMvd2ViZ2wvezEuMC54LDIuMC55LHJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzfSBiYWNr
dXAKLSAgIGdlbmVyYXRlLXdlYmdsLXRlc3RzIH4vdGVtcC9XZWJHTAorICAgbXYgfi9XZWJLaXQv
TGF5b3V0VGVzdHMve2h0dHAvLH13ZWJnbC97MS4wLngsMi4wLnkscmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXN9IGJhY2t1cAorICAgdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzIC1jIH4v
dGVtcC9XZWJHTAogICAgcnVuLXdlYmtpdC10ZXN0cyAtLWRlYnVnIC0td2ViZ2wgLS1vcmRlcj1y
YW5kb20gd2ViZ2wKICAgIHJ1bi13ZWJraXQtdGVzdHMgLS1yZWxlYXNlIC0td2ViZ2wgLS1vcmRl
cj1yYW5kb20gd2ViZ2wKICAgIGNoZWNrLWZvci1kdXBsaWNhdGVkLXBsYXRmb3JtLXRlc3QtcmVz
dWx0cyAtbiAyPiYxIHwgZ3JlcCB3ZWJnbApAQCAtNjQsNiArNjQsOCBAQCBfbGF5b3V0X3Rlc3Rz
X2RpciA9IFBhdGgoX19maWxlX18pLnBhcmVudC5wYXJlbnQucGFyZW50LnBhcmVudC5wYXJlbnQg
LyAiTGF5b3V0VAogCiBfdXNlX3ZlcmJvc2Vfb3V0cHV0ID0gRmFsc2UKIAorX2NsZWFuX3Rhcmdl
dF9kaXJzID0gRmFsc2UKKwogX0lnbm9yZWRGaWxlbmFtZU1hdGNoZXIgPSBDYWxsYWJsZVtbUGF0
aF0sIGJvb2xdCiAKIApAQCAtODQsNyArODYsNyBAQCBkZWYgX21ha2VfaWdub3JlX2ZubWF0Y2hf
cnVsZV9tYXRjaGVyKHJ1bGVzOiBJdGVyYWJsZVtVbmlvbltzdHIsIFR1cGxlW3N0cl1dXSkgLQog
ICAgIHJldHVybiBtYXRjaF9ydWxlcwogCiAKLV9jb25mb3JtYW5jZV9wYXR0ZXJucyA9IF9tYWtl
X2lnbm9yZV9mbm1hdGNoX3J1bGVfbWF0Y2hlcigKK19maWxlX3BhdHRlcm5zID0gX21ha2VfaWdu
b3JlX2ZubWF0Y2hfcnVsZV9tYXRjaGVyKAogICAgIFsKICAgICAgICAgIi5naXQiLAogICAgICAg
ICAiKi5weWMiLApAQCAtMTA0LDYgKzEwNiwzMSBAQCBfY29uZm9ybWFuY2VfcGF0dGVybnMgPSBf
bWFrZV9pZ25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIoCiAgICAgICAgICIqL2RlcXAvdGVtcF9l
eHRlcm5zKiIsCiAgICAgICAgICIqL2RlcXAvdGVzdC13ZWJnbDIuanMiLAogICAgICAgICAiKi9k
ZXFwL3Rlc3Qtd2ViZ2wyLnNoIiwKKyAgICAgICAgIiovdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwiLAorICAgICAgICAiKi90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIiwKKyAgICAgICAgIiovbW9yZS9m
dW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCIsCisgICAgICAgICIqL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLmh0bWwiLAorICAgICAgICAiKi9tb3JlL2Z1bmN0aW9ucy90ZXhT
dWJJbWFnZTJESFRNTC5odG1sIiwKKyAgICBdCispCisKK19odHRwX2ZpbGVfcGF0dGVybnMgPSBf
bWFrZV9pZ25vcmVfZm5tYXRjaF9ydWxlX21hdGNoZXIoCisgICAgWworICAgICAgICAiKiIsCisg
ICAgICAgICgiKi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3Jl
ZW5jYW52YXMuaHRtbCIsICksCisgICAgICAgICgiKi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS5odG1sIiwgKSwKKyAgICAgICAgKCIqL21vcmUvZnVuY3Rpb25zL3JlYWRQ
aXhlbHNCYWRBcmdzLmh0bWwiLCApLAorICAgICAgICAoIiovbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbCIsICksCisgICAgICAgICgiKi9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC5odG1sIiwgKSwKKyAgICAgICAgKCIqL21vcmUvdW5pdC5jc3MiLCApLAorICAgICAg
ICAoIiovbW9yZS91bml0LmpzIiwgKSwKKyAgICAgICAgKCIqL21vcmUvdXRpbC5qcyIsICksCisg
ICAgICAgICgiKi9qcy9qcy10ZXN0LXBvc3QuanMiLCApLAorICAgICAgICAoIiovanMvanMtdGVz
dC1wcmUuanMiLCApLAorICAgICAgICAoIiovanMvd2ViZ2wtdGVzdC11dGlscy5qcyIsICksCisg
ICAgICAgICgiKi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLCApLAorICAgICAgICAoIiov
cmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyIsICksCisgICAgICAgICgiKi9yZXNvdXJjZXMvdGh1
bmRlcmJpcmQtbG9nby02NHg2NC5wbmciLCApLAogICAgIF0KICkKIApAQCAtMTIwLDcgKzE0Nyw3
IEBAIGRlZiBfY29weV90cmVlKHNyYzogUGF0aCwgZHN0OiBQYXRoLCBpZ25vcmU6IE9wdGlvbmFs
W19JZ25vcmVkRmlsZW5hbWVNYXRjaGVyXSA9CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBp
ZiBpZ25vcmUgaXMgbm90IE5vbmUgYW5kIGlnbm9yZShzcmNfbmFtZSk6CiAgICAgICAgICAgICAg
ICAgaWYgX3VzZV92ZXJib3NlX291dHB1dDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkln
bm9yaW5nOiAlcyIgJSAoc3JjX25hbWUpKQorICAgICAgICAgICAgICAgICAgICBwcmludCgiSWdu
b3Jpbmc6ICVzLCBtYXRjaGVzIGlnbm9yZSBmaWx0ZXIiICUgKHNyY19uYW1lKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYgX3VzZV92ZXJib3NlX291dHB1dDoKICAg
ICAgICAgICAgICAgICBwcmludCgiQ29weWluZzogJXMgLT4gJXMiICUgKHNyY19uYW1lLCBkc3Rf
bmFtZSkpCkBAIC0xODcsNiArMjE0LDggQEAgZGVmIF9jb3B5X3dlYmdsX3Rlc3RfZmlsZXMoCiAg
ICAgdGFyZ2V0X2RpcjogUGF0aCwKICk6CiAgICAgdGFyZ2V0X3Rlc3RfZmlsZXNfZGlyID0gdGFy
Z2V0X2RpciAvICJyZXNvdXJjZXMiIC8gIndlYmdsX3Rlc3RfZmlsZXMiCisgICAgaWYgX2NsZWFu
X3RhcmdldF9kaXJzOgorICAgICAgICBzaHV0aWwucm10cmVlKHRhcmdldF90ZXN0X2ZpbGVzX2Rp
cikKICAgICBfY29weV90cmVlKHNvdXJjZV90ZXN0c19kaXIsIHRhcmdldF90ZXN0X2ZpbGVzX2Rp
ciwgc291cmNlX3BhdHRlcm5zKQogCiAKQEAgLTIwMyw2ICsyMzIsOSBAQCBkZWYgX2dlbmVyYXRl
X3dlYmtpdF93ZWJnbF90ZXN0cygKICAgICB0YXJnZXRfanNfdGVzdF9oYXJuZXNzID0gdGFyZ2V0
X2RpciAvICJyZXNvdXJjZXMiIC8gIndlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiCiAgICAg
dGFyZ2V0X2pzX3Rlc3RfaGFybmVzcy5wYXJlbnQubWtkaXIocGFyZW50cz1UcnVlLCBleGlzdF9v
az1UcnVlKQogICAgIHNodXRpbC5jb3B5ZmlsZShzb3VyY2VfanNfdGVzdF9oYXJuZXNzLCB0YXJn
ZXRfanNfdGVzdF9oYXJuZXNzKQorICAgIHNvdXJjZV9qc190ZXN0X2hhcm5lc3MgPSBfdG9vbF9k
aXIgLyAianMtdGVzdC1wcmUtdGVtcGxhdGUuanMiCisgICAgdGFyZ2V0X2pzX3Rlc3RfaGFybmVz
cyA9IHRhcmdldF9kaXIgLyAicmVzb3VyY2VzIiAvICJqcy10ZXN0LXByZS5qcyIKKyAgICBzaHV0
aWwuY29weWZpbGUoc291cmNlX2pzX3Rlc3RfaGFybmVzcywgdGFyZ2V0X2pzX3Rlc3RfaGFybmVz
cykKIAogICAgIHRlc3RfdGVtcGxhdGUgPSAoX3Rvb2xfZGlyIC8gIndlYmdsLXRlc3QtZHJpdmVy
LXRlbXBsYXRlLmh0bWwiKS5yZWFkX3RleHQoKQogICAgIGV4cGVjdGF0aW9uX3RlbXBsYXRlID0g
KF90b29sX2RpciAvICJ3ZWJnbC1leHBlY3RhdGlvbi10ZW1wbGF0ZS50eHQiKS5yZWFkX3RleHQo
KQpAQCAtMjEwLDYgKzI0Miw5IEBAIGRlZiBfZ2VuZXJhdGVfd2Via2l0X3dlYmdsX3Rlc3RzKAog
ICAgIHRlc3RzID0gX3BhcnNlX3dlYmdsX3Rlc3RzKHNvdXJjZV90ZXN0c19kaXIsIChzb3VyY2Vf
dGVzdHNfZGlyIC8gIjAwX3Rlc3RfbGlzdC50eHQiKSwgc3VpdGVfdmVyc2lvbiwgc3VpdGVfdmVy
c2lvbikKIAogICAgIHRhcmdldF90ZXN0c19kaXIgPSB0YXJnZXRfZGlyIC8gdGFyZ2V0X3ZlcnNp
b25fbmFtZQorICAgIGlmIF9jbGVhbl90YXJnZXRfZGlyczoKKyAgICAgICAgc2h1dGlsLnJtdHJl
ZSh0YXJnZXRfdGVzdHNfZGlyKQorCiAgICAgZm9yIHRlc3RfcGF0aCBpbiBfZmlsdGVyX3dlYmds
X3Rlc3RfcGF0aHNfZm9yX3N1aXRlX3ZlcnNpb24odGVzdHMsIHN1aXRlX3ZlcnNpb24pOgogICAg
ICAgICB0YXJnZXRfdGVzdCA9IHRhcmdldF90ZXN0c19kaXIgLyB0ZXN0X3BhdGgKICAgICAgICAg
dGFyZ2V0X3Rlc3RfaW1wbCA9IHRhcmdldF90ZXN0X2ZpbGVzX2RpciAvIHRlc3RfcGF0aApAQCAt
MjUyLDYgKzI4Nyw3IEBAIGRlZiBfZmluZF9leHBlY3RhdGlvbnNfZm9yX3JlbW92ZWRfdGVzdHMo
bGF5b3V0X3Rlc3RzX2RpcjogUGF0aCk6CiBkZWYgbWFpbigpOgogICAgIHBhcnNlciA9IGFyZ3Bh
cnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPV9fZG9jX18sIGZvcm1hdHRlcl9jbGFzcz1h
cmdwYXJzZS5SYXdUZXh0SGVscEZvcm1hdHRlcikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
diIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJwcmludCB2ZXJib3Nl
IG91dHB1dC4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi1jIiwgIi0tY2xlYW4tdGFyZ2V0
LWRpcnMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJyZW1vdmUgYWxsIGZpbGVzIGZyb20g
dGFyZ2V0IHN1YmRpcmVjdG9yaWVzIGJlZm9yZSB1cGRhdGluZyB0aGVtLiIpCiAgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgid2ViZ2xfcmVwb3NpdG9yeSIsIGhlbHA9InBhdGggdG8gV2ViR0wgY29u
Zm9ybWFuY2UgdGVzdCByZXBvc2l0b3J5IHJvb3QuIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KAogICAgICAgICAiLWwiLApAQCAtMjYzLDE0ICsyOTksMjMgQEAgZGVmIG1haW4oKToKICAgICBv
cHRpb25zID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQogICAgIGdsb2JhbCBfdXNlX3ZlcmJvc2Vfb3V0
cHV0CiAgICAgX3VzZV92ZXJib3NlX291dHB1dCA9IG9wdGlvbnMudmVyYm9zZSBvciBGYWxzZQor
ICAgIGdsb2JhbCBfY2xlYW5fdGFyZ2V0X2RpcnMKKyAgICBfY2xlYW5fdGFyZ2V0X2RpcnMgPSBv
cHRpb25zLmNsZWFuX3RhcmdldF9kaXJzIG9yIEZhbHNlCiAgICAgc291cmNlX2RpciA9IFBhdGgo
b3B0aW9ucy53ZWJnbF9yZXBvc2l0b3J5KQogICAgIHRhcmdldF9kaXIgPSBQYXRoKG9wdGlvbnMu
bGF5b3V0X3Rlc3RzX2RpcikgLyAid2ViZ2wiCiAKLSAgICBfY29weV93ZWJnbF90ZXN0X2ZpbGVz
KHNvdXJjZV90ZXN0c19kaXI9c291cmNlX2RpciAvICJzZGsiIC8gInRlc3RzIiwgc291cmNlX3Bh
dHRlcm5zPV9jb25mb3JtYW5jZV9wYXR0ZXJucywgdGFyZ2V0X2Rpcj10YXJnZXRfZGlyKQorICAg
IF9jb3B5X3dlYmdsX3Rlc3RfZmlsZXMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNk
ayIgLyAidGVzdHMiLCBzb3VyY2VfcGF0dGVybnM9X2ZpbGVfcGF0dGVybnMsIHRhcmdldF9kaXI9
dGFyZ2V0X2RpcikKICAgICBfZ2VuZXJhdGVfd2Via2l0X3dlYmdsX3Rlc3RzKHNvdXJjZV90ZXN0
c19kaXI9c291cmNlX2RpciAvICJzZGsiIC8gInRlc3RzIiwgc3VpdGVfdmVyc2lvbj1WZXJzaW9u
KCIxLjAuNCIpLCB1c2Vfd2ViZ2wyX2NvbnRleHQ9RmFsc2UsIHRhcmdldF9kaXI9dGFyZ2V0X2Rp
ciwgdGFyZ2V0X3ZlcnNpb25fbmFtZT0iMS4wLngiKQogICAgIF9nZW5lcmF0ZV93ZWJraXRfd2Vi
Z2xfdGVzdHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2VfZGlyIC8gInNkayIgLyAidGVzdHMiLCBz
dWl0ZV92ZXJzaW9uPVZlcnNpb24oIjIuMC4xIiksIHVzZV93ZWJnbDJfY29udGV4dD1UcnVlLCB0
YXJnZXRfZGlyPXRhcmdldF9kaXIsIHRhcmdldF92ZXJzaW9uX25hbWU9IjIuMC55IikKLSAgICBs
YXlvdXRfdGVzdHNfZGlyID0gUGF0aChvcHRpb25zLmxheW91dF90ZXN0c19kaXIpCiAKKyAgICBp
ZiBfdXNlX3ZlcmJvc2Vfb3V0cHV0OgorICAgICAgICBwcmludCgiVXBkYXRpbmcgaHR0cCB0ZXN0
cyIpCisgICAgaHR0cF90YXJnZXRfZGlyID0gUGF0aChvcHRpb25zLmxheW91dF90ZXN0c19kaXIp
IC8gImh0dHAiIC8gInRlc3RzIiAvICJ3ZWJnbCIKKyAgICBfY29weV93ZWJnbF90ZXN0X2ZpbGVz
KHNvdXJjZV90ZXN0c19kaXI9c291cmNlX2RpciAvICJzZGsiIC8gInRlc3RzIiwgc291cmNlX3Bh
dHRlcm5zPV9odHRwX2ZpbGVfcGF0dGVybnMsIHRhcmdldF9kaXI9aHR0cF90YXJnZXRfZGlyKQor
ICAgIF9nZW5lcmF0ZV93ZWJraXRfd2ViZ2xfdGVzdHMoc291cmNlX3Rlc3RzX2Rpcj1zb3VyY2Vf
ZGlyIC8gInNkayIgLyAidGVzdHMiLCBzdWl0ZV92ZXJzaW9uPVZlcnNpb24oIjEuMC40IiksIHVz
ZV93ZWJnbDJfY29udGV4dD1GYWxzZSwgdGFyZ2V0X2Rpcj1odHRwX3RhcmdldF9kaXIsIHRhcmdl
dF92ZXJzaW9uX25hbWU9IjEuMC54IikKKyAgICBfZ2VuZXJhdGVfd2Via2l0X3dlYmdsX3Rlc3Rz
KHNvdXJjZV90ZXN0c19kaXI9c291cmNlX2RpciAvICJzZGsiIC8gInRlc3RzIiwgc3VpdGVfdmVy
c2lvbj1WZXJzaW9uKCIyLjAuMSIpLCB1c2Vfd2ViZ2wyX2NvbnRleHQ9VHJ1ZSwgdGFyZ2V0X2Rp
cj1odHRwX3RhcmdldF9kaXIsIHRhcmdldF92ZXJzaW9uX25hbWU9IjIuMC55IikKKworICAgIGxh
eW91dF90ZXN0c19kaXIgPSBQYXRoKG9wdGlvbnMubGF5b3V0X3Rlc3RzX2RpcikKICAgICBvbGRf
ZXhwZWN0YXRpb25zID0gX2ZpbmRfZXhwZWN0YXRpb25zX2Zvcl9yZW1vdmVkX3Rlc3RzKGxheW91
dF90ZXN0c19kaXIpCiAgICAgb2xkX2V4cGVjdGF0aW9ucyA9IFtlIGZvciBlIGluIG9sZF9leHBl
Y3RhdGlvbnMgaWYgIndlYmdsIiBpbiBzdHIoZSldCiAgICAgaWYgb2xkX2V4cGVjdGF0aW9uczoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzA2NWQyODkxMzllM2JhNWU5MmE0MDA2MjE1N2IxYjYwZWI5YTlkLi5jMTk0ZTVm
MmZlZWEyNGI2Yzg5OWUyYTZkNjlhMjgzOTcxNzAzYmYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUwIEBA
CisyMDIyLTAxLTI1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3Qgc3VpdGUgdG8gMjAyMi0wMS0xMgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NTYzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFVwZGF0ZSBXZWJH
TCB0ZXN0c3VpdGUgdG8gMjAyMi0wMS0xMiA5YjU4ZmQyNDNkMzhmNGI5YzcyYWI2Zjc1YWQ3MDFj
YWZjMTMxMTM3LgorCisgICAgICAgIEFkZGl0aW9uYWxseToKKyAgICAgICAgVGhlIGltcG9ydCBz
Y3JpcHQgY2FuIG5vdyBjYXRlZ29yaXplIHRlc3RzIHRvIHJlZ3VsYXIgdGVzdHMgYW5kIHNtYWxs
IGFtb3VudCBvZiBodHRwCisgICAgICAgIHRlc3RzOgorICAgICAgICAgLSBSZW1vdmUgb2xkIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvCisgICAgICAgICAtIEFkZCBuZXcgaHR0cC90ZXN0cy93ZWJn
bC8xLjAueCAvIDIuMC55CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQaXhlbHNCYWRBcmdzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
YWRQaXhlbHNCYWRBcmdzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
M3gzLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ibHVlLTF4MS5qcGc6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvYnVnLTMyODg4LXRleHR1cmUucG5n
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52
ZXJ0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZy
YWc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13aXRo
LTEyOC1hbHBoYS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1y
YW1wLTI1Ni5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1w
LWRlZmF1bHQtZ2FtbWEucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dy
YXktcmFtcC1nYW1tYTAuMS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
Z3JheS1yYW1wLWdhbW1hMS4wLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ncmF5LXJhbXAtZ2FtbWEyLjAucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL2dyYXktcmFtcC1nYW1tYTQuMC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvZ3JheS1yYW1wLWdhbW1hOS4wLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9ncmF5LXJhbXAucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L2dyZWVuLTJ4Mi0xNmJpdC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
bm9vcFVuaWZvcm1TaGFkZXIuZnJhZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ucG90LXZpZGVvLm1wNDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ucG90
LXZpZGVvLnRoZW9yYS5vZ3Y6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBv
dC12aWRlby53ZWJtdnA4LndlYm06IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cG5nbGliLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5t
cDQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLnBuZzogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndjogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJtOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jaWUtcmdiLXBy
b2ZpbGUucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFy
ZS13aXRoLWNvbG9ybWF0Y2gtcHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUuanBnOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1w
cm9maWxlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVh
cmUtd2l0aC1lLXNyZ2ItcHJvZmlsZS5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc21wdGUtYy1wcm9maWxlLnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdiLWllYzYxOTY2LTIu
MS1wcm9maWxlLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEu
anM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0OiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanM6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy96ZXJvLWFscGhhLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzLzAwX3Rlc3RfbGlzdC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9j
b21wcmVzc2VkLXRleC1pbWFnZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvY29weS10ZXgtaW1hZ2UtMmQtZm9ybWF0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtZ2V0LXRleC1wYXJhbWV0ZXIuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLXBpeGVsc3RvcmVpLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC10ZXhpbWFnZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWFycmF5LWJ1ZmZlci12aWV3Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2I1NjUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtY2FudmFzLXJnYmE0NDQ0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNTU1MS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1jYW52YXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0NC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJn
YmE1NTUxLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Utcmdi
NTY1Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE0NDQ0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJn
YmE1NTUxLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYjU2NS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNDQ0NC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNTU1
MS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC12aWRlby5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVncy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdlYmdsLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRoLWludmFs
aWQtZGF0YS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWlucHV0
LXZhbGlkYXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1z
dWItaW1hZ2UtMmQtYmFkLWFyZ3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1zdWItaW1hZ2UtMmQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHBhcmFtZXRlci10ZXN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLTIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtYXR0YWNobWVudC1mb3JtYXRzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNsZWFyLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWZvcm1hdHMtdGVzdC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1oZC1kcGkuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbWlwcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90LXZpZGVvLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc2l6ZS1saW1pdC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXN1Yi1pbWFnZS1jdWJlLW1hcHMuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxz
LWluaXRpYWxpemVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0
dXJlLXVwbG9hZC1jdWJlLW1hcHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9kZXNrdG9w
LWdsLWNvbnN0YW50cy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanM6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvd2ViZ2wtdGVzdC1oYXJuZXNzLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4SW1hZ2Uy
REhUTUwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Rl
eFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdlMkRIVE1MLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFk
UGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBl
Y3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFk
QXJncy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4
SW1hZ2UyREhUTUwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFy
Z3MtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRN
TC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3Vi
SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJ
bWFnZTJESFRNTC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNzczogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmNzcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdW5pdC5qczogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91bml0LmpzLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS91
dGlsLmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10
ZXN0LXBvc3QuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanM6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
d2ViZ2wtdGVzdC11dGlscy5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qcy4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzczogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZzogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdGh1bmRlcmJpcmQt
bG9nby02NHg2NC5wbmc6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRh
LXVybC1hZnRlci1jb21wb3NpdGUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11
cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQudHh0OiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
MDlfdG9fMDE2LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwOV90b18wMTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQ6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18w
MzItZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3Rv
XzAzMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBl
Y3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA0OV90b18wNTYtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0LWV4cGVjdGVkLnR4
dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNjVfdG9fMDcyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0OiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFf
dG9fMDg4LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4
MV90b18wODguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQt
ZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAg
ICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEw
NC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3Rl
ZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEyMV90b18xMjgtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2LWV4cGVjdGVkLnR4dDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTM3X3RvXzE0NC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8xMzdfdG9fMTQ0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTItZXhwZWN0ZWQudHh0OiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9f
MTYwLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190
b18xNjAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdl
MkRIVE1MLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICog
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNzdfdG9fMTc4LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1z
Y2lzc29yLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNz
b3ItdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9y
ZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1
ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50
aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJl
bmRlcmFibGUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFk
QXJncy5odG1sLgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWlt
YWdlLXR5cGVzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL3BuZy1pbWFnZS10eXBlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Uu
aHRtbC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11
cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1k
YXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzAwOV90b18wMTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAxN190b18wMjQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAyNV90b18wMzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAz
M190b18wNDAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90
b18wNDguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18w
NTYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmds
LzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDk3X3RvXzEwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1
X3RvXzExMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3Rv
XzEyMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEy
OC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzE2MV90b18xNjguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzE2OV90b18xNzYuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE3N190b18xNzguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9y
ZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29s
b3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0
aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJh
bWVidWZmZXItcmVzb2x1dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFz
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWwuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
cG5nLWltYWdlLXR5cGVzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sLgorICAgICAg
ICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lv
bnMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5z
aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xz
bDMvZnJhZ21lbnQtc2hhZGVyLWxvb3AtY3Jhc2gtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFn
ZTJESFRNTC1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9m
LXNxdWFyZXMtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNy
YXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9taXNj
L2JsZW5kLWludGVnZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWlu
dGVnZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3Jl
bmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2stZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1z
cGFyc2Utb3V0cHV0LWxvY2F0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRw
dXQtbG9jYXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52
YXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwv
Z2xlczMvbXVsdGlzYW1wbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVs
dGlzYW1wbGUvZGVmYXVsdF9mYm8uaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvMi4wLnkv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMv
bXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8y
LjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBs
ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC8yLjAueS9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2RyYXctd2ViZ2wtdG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11
cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1dGVz
LWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9tZXRob2RzLmh0bWw6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
ZXh0ZW5zaW9ucy9leHQtdGV4dHVyZS1jb21wcmVzc2lvbi1icHRjLmh0bWw6CisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9l
eHQtdGV4dHVyZS1jb21wcmVzc2lvbi1yZ3RjLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3RjLWFuZC1yZ3Rj
Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWw6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
ZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC13ZWJjb2Rl
Y3MtdmlkZW8tZnJhbWUuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1sOgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29u
c3RydWN0b3JzL2dsc2wtY29uc3RydWN0LXZlYy1tYXQtaW5kZXguaHRtbDoKKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9DR19EYXRhX1R5cGVzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ0dfU3RhbmRh
cmRfTGlicmFyeV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RCdWlsdElu
T3ZlcmlkZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb21tYV9mcmFn
LmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcxX3ZlcnQudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC52ZXJ0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RydWN0X3ZlcnQudmVydDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjEwX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uMV9WMTAwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdEV4dGVuc2lvbjRfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RGdWxsX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dEZ1bmNPdmVybG9hZF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5j
T3ZlcmxvYWRfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY3Rpb24x
X3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTFfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0UGFyc2UyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
Q29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJz
ZVRlc3QxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzNV9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOF9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOV9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL0NvcnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RTd2l6emxlMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxl
Ml92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlM19mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9EdXBsaWNhdGVWZXJzaW9uMV9WMTAwX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25QYXJhbV92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0luY2x1ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0xvd19MZXZlbF9Bc3NlbWJseV9SZXNlcnZlZF9Xb3Jkc19mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL01haW5fUGFyYW1ldGVyc192ZXJ0LnZlcnQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL1BhcnNlVGVzdDNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Q
YXJzZVRlc3Q0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9Db25z
dGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Blcm1pc3Np
dmVfU2NhbGFyX1ZlY3Rvcl9FeHByZXNzaW9uc19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL1Rlcm5hcnlPcF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1RleHR1cmVfUmVj
dGFuZ2xlX1NhbXBsZXJzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMF9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MTFfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9hcnJheTFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJh
eTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTNfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9hcnJheTRfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTZfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTdfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9hcnJheThfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTlfZnJhZy5mcmFn
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGUxX3ZlcnQudmVydDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYXR0cmlidXRlMl92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJp
YnV0ZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZV92ZXJ0LnZlcnQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2JyZWFrX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlf
dG9fMDE2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA0MV90b18wNDguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDczX3RvXzA4MC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9f
MDg4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEx
M190b18xMjAuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTQ1X3RvXzE1Mi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYw
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMV92ZXJ0
LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMl9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2NvbW1hMl92ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hM192
ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1lbnRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9jb25kaXRpb25hbDJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25h
bDNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdEZ1bmNfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9jb25zdHJ1Y3RvcjJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25z
dHJ1Y3RvcjNfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnRpbnVlX2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMF9mcmFnLmZyYWc6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9kYXRhVHlwZTEyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxM19m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTlfZnJhZy5mcmFnOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9kYXRhVHlwZTJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTNfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTRfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9kYXRhVHlwZTVfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTZfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTdfZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZThfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9kYXRhVHlwZTlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZh
dWx0LmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RlZmF1bHQudmVydDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZG93aGlsZV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMyX2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzNfZnJhZy5mcmFnOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9kdmVjNF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lv
bjJfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjNfVjEwMF9m
cmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjVfVjEwMF9mcmFnLmZyYWc6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2V4dGVuc2lvbjdfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2V4dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVu
c2lvbjlfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0Ml9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0M19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2Zsb2F0NF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25s
eTFfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkyX3ZlcnQudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5M192ZXJ0LnZlcnQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2ZyYWdtZW50T25seTRfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9mcmFnbWVudE9ubHlfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjEw
X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24yX1YxMDBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9mdW5jdGlvbjNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlv
bjRfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjZfZnJhZy5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjdfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9mdW5jdGlvbjhfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjlf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjMl9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2h2ZWMzX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzRf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMV9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvaWRlbnRpZmllcjNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjFfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjJfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9pbmNyZW1lbnQxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVt
ZW50Ml9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDNfZnJhZy5mcmFn
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQ0X2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvaW5jcmVtZW50Nl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lucHV0
LnJ1bi50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4xX3ZlcnQudmVydDogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvbWFpbjJfdmVydC52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluM192
ZXJ0LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21hdHJpeF9WMTAwX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvbm9ybWFsX3ZlcnQudmVydDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
cGFyc2VyMTBfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXIxX3ZlcnQudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyM19mcmFnLmZyYWc6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3BhcnNlcjRfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI1X2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNl9mcmFnLmZyYWc6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3BhcnNlcjdfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJz
ZXI4X2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOV9mcmFnLmZyYWc6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvcHJlcHJvY2VzczEwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJv
Y2VzczFfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMl9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MzX2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvcHJlcHJvY2VzczRfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9w
cmVwcm9jZXNzNl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M3X2Zy
YWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc2NvcGluZzFfZnJhZy5mcmFnOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9zY29waW5nMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0
cnVjdDEwX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MTFfZnJhZy5mcmFn
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvc3RydWN0Ml9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDNfZnJh
Zy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q0X2ZyYWcuZnJhZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvc3RydWN0NV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVj
dDZfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q3X2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3N0cnVjdDlfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxlMV9mcmFnLmZy
YWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvc3dpenpsZTNfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC90eXBlY2Fz
dF9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3VuaWZvcm0xX2ZyYWcuZnJhZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3ZhcnlpbmcxX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzJfZnJhZy5m
cmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nM19mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ZhcnlpbmdfZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZWN0b3Jf
ZnJhZy5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uMl9WMTAwX2ZyYWcuZnJhZzog
QWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVyc2lvbjNfVjEwMF9mcmFnLmZyYWc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ZlcnRleE9ubHkyX2ZyYWcuZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVy
dGV4T25seV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnRleF92ZXJ0LnZlcnQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlMV9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL3doaWxlMl9mcmFnLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlX2ZyYWcuZnJh
ZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcHJvZ3JhbXMvcHJvZ3JhbS10ZXN0Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1
bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2Nv
bG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1
dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWw6CisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvcG5nLWltYWdlLXR5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdmlkZW8tcm90YXRp
b24uaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvY29udGV4dC9tZXRob2RzLTIuaHRtbDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9leHQtY29sb3ItYnVm
ZmVyLWZsb2F0Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvZXh0LXRleHR1cmUtbm9ybTE2Lmh0bWw6CisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVu
c2lvbnMvb2VzLWRyYXctYnVmZmVycy1pbmRleGVkLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQt
ZXh0ZW5zaW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3LWluc3Rh
bmNlZC1iYXNlLXZlcnRleC1iYXNlLWluc3RhbmNlLmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2FycmF5LWVxdWFsaXR5
Lmh0bWw6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNs
My9tYXRyaXgtcm93LW1ham9yLWR5bmFtaWMtaW5kZXhpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2Nh
bC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWlu
dGVnZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL3Byb2dyYW1zL2dsLWdldC1mcmFnLWRhdGEtbG9jYXRpb24uaHRt
bDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sOgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNj
L3RleC1zdG9yYWdlLWNvbXByZXNzZWQtZm9ybWF0cy5odG1sOgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9lczNmTXVsdGlz
YW1wbGVUZXN0cy5qczoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZlByaW1pdGl2ZVJlc3RhcnRUZXN0cy5qczoKKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwv
Z2xlczMvbXVsdGlzYW1wbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVm
YXVsdF9mYm8uaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3NhbXBsZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5j
dGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9nbHNsLWNvbmZvcm1h
bmNlLXRlc3QuanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
anMvanMtdGVzdC1wb3N0LmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2NvbXByZXNzZWQtdGV4dHVyZS11dGlscy5qczoKKyAgICAg
ICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb250ZXh0LW1l
dGhvZHMuanM6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2pzL3Rlc3RzL2V4dC1jb2xvci1idWZmZXItaGFsZi1mbG9hdC5qczoKKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9nbC1vYmplY3QtZ2V0LWNh
bGxzLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rl
c3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlk
ZW8uanM6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVz
dHMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRl
by5qczoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzOgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJtOgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0wLm1wNDoK
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlk
ZW8tcm90YXRpb24tMC52cDkubXA0OgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0xODAubXA0OgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0x
ODAudnA5Lm1wNDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMjcwLm1wNDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMjcwLnZwOS5tcDQ6
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3Zp
ZGVvLXJvdGF0aW9uLTkwLm1wNDoKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNDoKKwogMjAyMi0wMS0y
NiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkdM
IGNvbmZvcm1hbmNlIHRlc3RzIHRoYXQgYXJlIHBlbmRpbmcgdXBzdHJlYW1pbmcgc2hvdWxkIG5v
dCBkdXBsaWNhdGUgdW5tb2RpZmllZCBmaWxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjQ1ZDM4
MWEyNWY0MThiMWJmMTdlNjJiNzY3NTZmMmE3ODliMTZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQcm9tb3RlZCBVUkwgZnJvbSBodHRwOi8v
d3d3Lm9wZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dvLmpwZyB0byBodHRwcwotQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lm9wZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dv
LmpwZwotQ09OU09MRSBNRVNTQUdFOiBQcm9tb3RlZCBVUkwgZnJvbSBodHRwOi8vd3d3Lm9wZW5n
bC5vcmcvaW1nL29wZW5nbF9sb2dvLmpwZyB0byBodHRwcwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lm9wZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dvLmpwZwotVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IHJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCi1GQUlM
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMDM4ODMyM2NhNjE1MDQ0ZTdhY2ZmZmYwZjNhYTJhN2FhMWVkY2RkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBi
eSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRt
bDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiPnJlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS5odG1sPC9hPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxkaXYgaWQ9Imlm
cmFtZSI+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwiIHdpZHRoPSI4MDAiIGhl
aWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxzQmFkQXJncy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3JlYWRQaXhl
bHNCYWRBcmdzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFh
Y2E4NmU3NTQ3NTUwNTFlNmNjNTk5NmM4ZWNlZmQxODU0YWI1My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQcm9tb3RlZCBVUkwgZnJvbSBodHRwOi8vd3d3
Lm9wZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dvLmpwZyB0byBodHRwcwotQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lm9wZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dvLmpw
ZwotQ09OU09MRSBNRVNTQUdFOiBQcm9tb3RlZCBVUkwgZnJvbSBodHRwOi8vd3d3Lm9wZW5nbC5v
cmcvaW1nL29wZW5nbF9sb2dvLmpwZyB0byBodHRwcwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3Lm9wZW5nbC5vcmcvaW1nL29wZW5nbF9sb2dvLmpwZwotVGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IHJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKLUZBSUwKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZWFkUGl4
ZWxzQmFkQXJncy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmJlNzEzYTA3
YzE0NDU3NTVhYTAxMjBlNWNhNDM4ZWNmYzdiYjRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVhZFBpeGVsc0JhZEFyZ3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
LiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIHJlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9InJl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQ
aXhlbHNCYWRBcmdzLmh0bWwiPnJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L2E+Ci08ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJn
cy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
cmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
cmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U2
OTYxMzk2MDUxNjM2M2IzNWQ0ZDE3MTk4YzdmYWNiYzdkMjhlNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0q
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Ci08c2NyaXB0IHR5
cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgotCi1U
ZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZ2wnKTsKLSAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRl
eHQoY2FudmFzKSk7Ci0gIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy50ZXN0UmVhZFBpeGVscyA9
IGZ1bmN0aW9uKGdsKSB7Ci0gIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBm
YWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUgd2lkdGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVy
IHNpemUgZG9lc24ndCBtYXRjaCB0aGUgZGltZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3Io
Z2wsICJuZWdhdGl2ZSB3aWR0aCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCww
LC0xLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJy
YXkoNCkpO30pOwotICBhc3NlcnRTb21lR0xFcnJvcihnbCwgICJuZWdhdGl2ZSBoZWlnaHQiLAot
ICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLC0xLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNzZXJ0T2so
Im5lZ2F0aXZlIHgiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKC0xLDAsMSwxLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9
KTsKLSAgYXNzZXJ0T2soIm5lZ2F0aXZlIHkiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4
ZWxzKDAsLTEsMSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBV
aW50OEFycmF5KDQpKTt9KTsKLSAgYXNzZXJ0T2soImhlaWdodCA+IGJhY2tidWZmZXIgaGVpZ2h0
IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMTYsMTcsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMTYqMTcqNCkpO30pOwot
ICBhc3NlcnRPaygid2lkdGggPiBiYWNrYnVmZmVyIHdpZHRoIiwKLSAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygwLDAsMTcsMTYsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAg
ICAgICAgbmV3IFVpbnQ4QXJyYXkoMTcqMTYqNCkpO30pOwotICBhc3NlcnRPaygid2lkdGgsIGhl
aWdodCA9IDAiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwwLDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMCkpO30pOwot
ICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5l
Z2F0aXZlIHdpZHRoCi0gIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0
Y2ggdGhlIGRpbWVuc2lvbnMuCi0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAiYmFkIGZvcm1hdCIs
Ci0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuRkxPQVQsIGdsLlVO
U0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCo0KSk7fSk7Ci0gIC8vIHdl
IGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUg
d2lkdGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBtYXRjaCB0aGUg
ZGltZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgdHlwZSIsCi0gICAgICBm
dW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuQUxQSEEsIGdsLkZMT0FULAotICAg
ICAgICAgIG5ldyBVaW50OEFycmF5KDEqNCkpO30pOwotfQotCi1UZXN0cy50ZXN0UmVhZFBpeGVs
c1NPUElNRyA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpIik7Ci0gICAgd2hpbGUgKCFpbWcuY29tcGxldGUpIHt9Ci0gICAgdmFyIHRleCA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXgpOwotICAgIC8vIFNPUCBmYWlsdXJlCi0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0
aHJvdyBiZWNhdXNlIGltZyBpcyBmcm9tIGFub3RoZXIgZG9tYWluIiwKLSAgICAgIGZ1bmN0aW9u
KCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IG51bGwpOwotICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3JpZ2luLWNsZWFuIiwKLSAgICAg
IGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgICBnbC5kZWxldGVUZXh0
dXJlKHRleCk7Ci19Ci1UZXN0cy50ZXN0UmVhZFBpeGVsc1NPUENhbnZhcyA9IGZ1bmN0aW9uKGds
KSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpIik7Ci0gICAgd2hp
bGUgKCFpbWcuY29tcGxldGUpIHt9Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYyIpOwotICAgIGMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAg
ICBhc3NlcnRGYWlsKCJjYW52YXMgdGhyb3dzIGJlY2F1c2Ugbm90IG9yaWdpbiBjbGVhbiIsCi0g
ICAgICBmdW5jdGlvbigpe2MuZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMCwwLDEsMSk7
fSk7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgIC8vIFNPUCBmYWlsdXJlCi0gICAgYXNzZXJ0VGhy
b3dOb0dMRXJyb3IoZ2wsICJ0aHJvdyBiZWNhdXNlIGNhbnZhcyBpcyBub3Qgb3JpZ2luIGNsZWFu
IiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBhc3NlcnRPaygiY2FudmFzIHN0aWxsIG9yaWdp
bi1jbGVhbiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0g
ICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24o
Z2wpIHsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+PGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lk
dGg9IjE2IiBoZWlnaHQ9IjE2Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImMiIHdpZHRoPSIxMjgi
IGhlaWdodD0iMTI4Ij48L2NhbnZhcz4KLTxpbWcgaWQ9ImkiIHNyYz0iaHR0cDovL3d3dy5vcGVu
Z2wub3JnL2ltZy9vcGVuZ2xfbG9nby5qcGciPgotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRlZmQ3ODFjOTBmYmNlMzA3ZTgyZjgzOGYxYWVmMjI5
ZDk1ZDJhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAy
MDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn
cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29w
eSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
IGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRB
QklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFU
RVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSov
Ci0KLS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4v
dW5pdC5jc3MiIC8+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3Jj
PSIuLi91bml0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZh
c2NyaXB0IiBzcmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNh
dGlvbi94LWphdmFzY3JpcHQiPgotCi1UZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7Ci0g
ICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOwotICAgIHZhciBn
bCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOwotICAgIGdsLnZpZXdwb3J0
KDAsMCxjYW52YXMud2lkdGgsY2FudmFzLmhlaWdodCk7Ci0gICAgZ2wuY2xlYXJDb2xvcigwLDAs
MSwxKTsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVS
X0JJVCk7Ci0gICAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLSAgICByZXR1cm4gW2dsXTsK
LX0KLQotVGVzdHMuc2V0dXAgPSBmdW5jdGlvbihnbCkgewotICAgIHZhciB0ZXggPSBnbC5jcmVh
dGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAg
ICB2YXIgdGV4Q3ViZU1hcCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKTsKLSAgICByZXR1cm4gW2dsXQotfQot
Ci1UZXN0cy50ZWFyZG93biA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHRleEN1YmVNYXApIHsKLSAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBnbC5kZWxldGVUZXh0dXJl
KHRleCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgbnVsbCk7Ci0g
ICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXhDdWJlTWFwKTsKLX0KLQotVGVzdHMudGVzdFRleEltYWdl
MkQgPSBmdW5jdGlvbihnbCkgewotICAgIGdsLmVuYWJsZShnbC5CTEVORCk7Ci0gICAgdmFyIGlt
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpJyk7Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYycpOwotICAgIHZhciBjdHggPSBjLmdldENvbnRleHQoJzJkJyk7Ci0g
ICAgY3R4LmRyYXdJbWFnZShpbWcsMCwwKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVf
MkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7Ci0gICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBf
VE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7
Ci0gICAgdmFyIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktZmxpcC12ZXJ0JywgJ2lkZW50
aXR5LWZyYWcnKTsKLSAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5aRVJPKTsKLSAgICBmLmFw
cGx5KCk7Ci0gICAgZi5kZXN0cm95KCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICBmID0gbmV3
IEZpbHRlcihnbCwgJ2lkZW50aXR5LWhmbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOwotICAg
IGdsLmJsZW5kRnVuYyhnbC5TUkNfQUxQSEEsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpOwotICAg
IGYuYXBwbHkoKTsKLSAgICBmLmRlc3Ryb3koKTsKLSAgICB2YXIgdmFsaWRfdGFyZ2V0cyA9IFsK
LSAgICAgICAgZ2wuVEVYVFVSRV8yRCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9YLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gICAgICAg
IGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJF
X01BUF9ORUdBVElWRV9ZLAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1os
Ci0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWgotICAgIF07Ci0gICAgdmFs
aWRfdGFyZ2V0cy5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKLSAgICAgICAgYXNzZXJ0T2soZnVuY3Rp
b24oKXtnbC50ZXhJbWFnZTJEKHQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpO30pOwotICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnRleEltYWdlMkQodCwg
MSwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci0gICAgfSk7Ci19
Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJETm9uU09QID0gZnVuY3Rpb24oZ2wpIHsKLSAgICB2YXIg
aW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7Ci0gICAgd2hpbGUgKCFpbWcuY29t
cGxldGUpIHt9Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpOwotICAg
IHZhciBjdHggPSBjLmdldENvbnRleHQoJzJkJyk7Ci0gICAgY3R4LmRyYXdJbWFnZShpbWcsMCww
KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBjcm9zcy1v
cmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtn
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGltZyk7fSk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFn
ZTJEIHdpdGggZGlydHkgb3JpZ2luIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0g
ICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci19Ci0KLVRlc3RzLmVuZFVuaXQgPSBm
dW5jdGlvbihnbCkgewotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWZsaXAt
dmVydCIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgVmVydGV4Owot
YXR0cmlidXRlIHZlYzIgVGV4OwotCi12YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwotdm9pZCBtYWlu
KCkKLXsKLSAgICB0ZXhDb29yZDAgPSB2ZWM0KFRleC5zLCAxLjAtVGV4LnQsIDAuMCwgMC4wKTsK
LSAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoVmVydGV4LCAxLjApOwotfQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IGlkPSJpZGVudGl0eS1oZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1h
dHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlpbmcgdmVj
NCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHRleENvb3JkMCA9IHZlYzQoMS4wLVRl
eC5zLCBUZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEu
MCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWZyYWciIHR5cGU9Ingtc2hh
ZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLXVuaWZvcm0gc2Ft
cGxlcjJEIFRleHR1cmU7Ci0KLXZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQot
ewotICAgIHZlYzQgYyA9IHRleHR1cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QpOwotICAgIGds
X0ZyYWdDb2xvciA9IGM7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD48Ym9keT4KLTxjYW52YXMgaWQ9
ImdsIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjIiB3
aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Ci08aW1nIGlkPSJpIiB3aWR0aD0iMjU2
IiBoZWlnaHQ9IjI1NiIgIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFB
QU5TVWhFVWdBQUFRQUFBQUVBQ0FZQUFBQmNjcWhtQUFBVFZFbEVRVlI0bk8zZCtWUFVkNTdIY2Yy
YjlrOVkrejQ0K3FLN09ab0dGVkE1VmZCR3phaDljeHBOekdFT29SdWE1bEJFdWUvREs0Zlo3TWFw
bVNtM01sc2h1OHhPZENwREp0M3YvYUVCQVVIQU9NRzR6MGZWNTNmcVUvVjZmZDdmVC9lMzJiRURB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdPdkJrYXI3bCszK0d3QnNrOHhVclQwclRiOHZ4MlE0NWph
bmx1N1lzV1Buc2dYZ1RlWXdhazg1VTNYdjVaaU0zK1hiVWgvbDJkSUNCYzYwODBXWjF1cjkyYmFT
SFJRQjhHYXlHZFVXdTFIem9TTkZPK1pNMWYyY2JUTE01MWxUNXdvYzVya0RPYmJaL1ZtMlNFbTIz
VnZzeWpoVjVuSlFCc0NieEdaUVZ0bU42cDRNby9ZUGRxTkdIS2xheVVyWEo5eldsRVNoMHhJdnpz
bVlMM0haNTRwek1tNlZ1UnlSTXBmVFcrcHlVQWJBbThCbVZOVm5HTlRUZHFQNnZ6T01HckduYU1T
WnFwTnNrMTd5YktsUzZEVEwvaXhib3RSbGo1ZmxPdWJMM0k2NU1wZmpWcm5iRWFsWUtJTlNsMzM1
dlFHQTN3S2JVVzJ4R2RXUkRLUDY2d3lqV2hZTHdKR2lGV2VhVHJKTkJuRmJVMlNQM1NUN3M2eFNt
bXVYY3JjelVlNTJ4c3R6SGZQbGJzZGN1ZHQ1cXl6WDNsS1dseGtzelhHZUs4bXhueXpKeVNqZVFS
a0FyemViUVZsbE02cDdiVWIxNDlVRjRFalZTbWFhVHJMUzllS3lwTWdlZTdvY3lMWkptZHNoRlht
WlVwSG5YRkVHQi9PekpzcmRqcUV5dC9ObVdhNDlYSmJ0OUphNk1rNFZ1N2hFQkY1TE5yMnEzbVpR
ejlnTTZ1OVhGRUJxc2dDY2FUckpYSmdFY2kwcHN0ZGhrdjNaTmluTlRaYkFvZndzT1pTZkpRZnpN
cVU4ejVrb2R6c1NaYm1PZUlYYitYVzUyekZhNW5MY0tuUFpJMlVMbDRqRmZLSUF2QjdNT3JYRlps
QkhiQWIxMXphaitrbUdVYk51QVdTbTY1ZEtZSGRHbWhSbFdxUTh6eUZIQ25MaytMNWNPVjZVSzBj
S1hWSzVKMXNPNW1kS2hkc3BaYXZLb0RUWDBWUGljaVRMSUh0RkdWQUl3Sy9OWWxCVzJmVHFYcHRC
L2RobVNKNytMeXFBckhTOTVKaVRKVkRnTkVsbFFaWjRLZ3VscnJwVTZxdExKWEJzdjV3dDN5TW45
cnZsYUlGTERpOHZnMXhING1CKzVwK1dsMEZwanIybEpNY1JMTTZ5bnl2T3pqaHhJSXQ3QStCWFk5
R3I2cTBMNC85U0FhUm94TDd3L0w5V0FXU2JESkpyVFpGaWQ0WjRqeFpKVS8xeHVmSGhPZW0rZWs2
aWwwL0xCNzRxYVR4VEpvR2orK1ZzMlI0NXZqOVhqaFRreU9IZEM0OEpDMlZ3YUhmbW55cmN6bit2
Y0RzbXluTHRReVU1R1RlTGN6TENwVGsyVDNHVzdWaHhWc2FlN2Q0ZjRJMWwxcWt0Vm9NNllqT292
cllhMUQ4c0ZvQjlXUUU0MTVrQTh1MXBjdlJBam53VU9pTERMUUc1MTkwbzkyNDJ5bFJIblF5Ry9Y
THo2bm1KWHFxV0QzeVYwbkM2VlB4SDk4blpzdDF5ZkYrdUhDMTBTZFhlYkRtVW55eURxb0xzN3c3
bFozNWI3bmI4c2N4dC83ZFNsMzJrSkNlanF5UW40MHBKVGtiWkRpWUM0Tld6YUpWVlZyMnExMlpR
UGJZYTFIOWZ1d0IwU3dXUWxhNlhMRk95QUFveVRmTFc0VDNTZnVXTTNMM1JJQS83TDh2RC9zdnla
ZThsK2V6VzIzS3Z1MUVtTzJwbG9Oa24zVmZQU2V2YjFmSyt0MUlhejVSSjdjbGk4UjBwa3RPbCtY
S3NLRmtHQnhmS29ISnYxbDhQNW1mK3VTTFA4ZnZ5WE1kTW1kc1JLWGM1cW90ZEdRWGJ2Vi9BRzhX
aVY5VmI5YW9acTE0MWF6T294V2JjWEFIa1dsT2tKQzlEYWs4WHk2MVBMOGlEbm90TEJiQlVCSDJY
NVl2YmwrUkJ6MFc1ZTZOQkp0cHJwTC9aSnpjL09pL1hQM2hMV2k2ZWt2YzhoNld1dWtTOFZjL0tZ
UEVDOFdoaHpwT3FndXp2S3ZkbWZYVjRkMmIzd2Z6TTl3L2xaVEVOQUsrQ1dhZXdXSFdxaUUydit0
cXFWLzJ3MlFMSU5oa2tQMk5oL0s4OUltTnRJZm1pOTlLejhQY2wxNWRMNjVKODBYdEpQci8xdHR5
LzJTaDN1eHZrenZWNkdZK0ZwTythVjY1LzhEdUpYRHdwVnp5SHBPN1VRaG1VNU12UklwZFU3YzJS
UTd1ejVNUis5eCtPRmJudUhpM01pVlFWdUtvUDc4NHUydTc5QTM3VExGcGxsVlduNnJYcVZZK3Rl
dFdQR3hiQXNndkF2VTZUdkhWb3Q4U3VuSlk3TitybHk3NjFnLzlsYjNKOXNXeDlmdnVTZkg3N2JY
blFjMUh1ZFRmSVRGZWRqTFdGcFBlYVI3bytlRXZDalNmbHlvVkRVbGRkS3NIakIrVEM0VUk1Vlp3
blZRVTVpYmNxOW54MXVqUy81OFFCOTlYcVluZjVEcVlCNE9WWWRNL0dmNnRlOVkvazgvL0dCZUN5
R0tYRW5TRTExUWVrNTVQemN2OW00OHJRcnhQOEwyNWZraTl1dnkyZnIxcWYzYnFZbkF4dU5NaDBa
NTJNUklOeSsxT1BYUC93ZDlKKzVZdzAxNStRZDg0ZmxKcVR4WExoY0lHY0xNNzcrVWhCenQ4dVZC
YTJucXZjZS9ac3haNnk3ZDVMNERkbGNmeTM2RlZmVy9TcUg2d0dsYXd1Z01XdkFUdlRsaFdBeVNC
NUdhbHlkSCtPZkZSelJFYWpRZm44MXR2cmgvNkZ3VjljRitXeld4Zmx3YTJMY3Ivbm90enJicFNa
Ni9VeTFWVW5reDIxTXR3U2tKNVBMa2pIZTJlbHFmNjRYRDUzVUVJbkRpUXVIQzZZcnk3T216MVc1
SHJZK0ZiRjRSMU1BOERtV0xUS0tzdXk4ZDlxVUwrd0FKWi9DM0NQTTEzT0h0d3RiZStlbHVucjlm
TEZ1c0YvUHZTZjMxbzcrQTk2bnEzN1BSZmxmaytqM0wrWi9Gang3bzBHbWU2cWs0bjJHaGxxOFV2
UHgrZWwvY29adVZaM1hDNmZxL2k1N2xUeDMycE9IbmdVT2xVYy9qUjRsRXRDWUNNV25hcmVvbGZO
V1BTcVdhdEI5ZE9hQmJER2w0QmNGcU1VdTIwU09uVkFibjU4VHU1Mk4yN3F0UDk4ZzlBL1dBejlR
dkFYMTczRkV1aHVrTHZkRGNuSm9MTld4bU0xTWhqeHk4MlB6a25uKzJjU3NYZFB6NGNiVDh4K0dL
aDgrRkh3U08wT1NnQlltMW1uc0poMXFvaEZyMXdZLzVYeFp3V3cvdGVBczlLVHZ3dHdaSCsyWEEx
VnlYQnJVQjcwWEZ6L3RGOW56TjlLOE85MU44aTloZkF2cmpzM0d1VE9qWHFaWG5oRUdHK3ZrZEZv
VUFiRC9wOTdQajcvdDU2cjU3L3B1K2I1cE9YZDZxUGJ2ZGZBYThlaTNWVmwwYWw2TFhybFk0dE8r
YU5GcjBwc3RnRDJPTkxsek1IZEVuMm5XcVk2NitTemx4enpIeXdiODU4TC9UckJ2M3ZqV2ZnWDE4
ejE1SnJ1cXBPcHpscVphQThseG1LaHY0OUdnMy9vRC9zKzN1NjlCbDQ3RnAyaTNxSlZ6VmgweWxt
clR2bVRWWis4QUZ6NUhzRHpCWkJqTmtweHJrMkNwdzVJOTBmbjVNNk5oaGVlOWxzT2Z2Zm1nMy9u
K3JQd3oxeXZrNW11T3BsZVdKTWR0ZkhKanBydkpqdHFLQUJndWVUNHI0aVlkY3F2emJwZFAxajB5
dmpxQXJDdjlTSlF1bDdjdGxTcDJwY3RId1lyWmFnbElQZHZOcTUvMnIvZ1ltOVR3Yit4OWVCUGQ5
WEpWSElTbUovcXJQMW11ck9HUndCZ09aTjJWNVZGcCt5MWFCZkdmNTB5c1ZRQWEzd0hZTEVBc3RM
MXN0dVJMcWNyOHFYMThpbVo3S2lWQnowWFh4ajZqWi92TnhuODZ4c0hQL2tJVUNkVG5YWHg2Yzdh
djB4MTFQUnM5MTREcngyVFRsRnYwaXBtekRybHJFV24vTW1pVjhsbUNpRGJiSkFEdVRZSm50d3ZO
NjcrVG1hdTF5ZER2bWJvdDM2eDl5ejQ5UzhaL05yRk5UL2RWZnY3cWM2Nms5dTkxOEJyeGF4ZVBm
NHI0aHNWZ0hQaDl3QnpyU2xTVlpRdEh3UXFaVERpbDd2ZGpWczc3YmNZL0ptdEIxK21PbXNUa3gy
MVQ2YTZha2UyZTYrQjE0NUp1NnZLcEZQMm1yVEt4MmJ0cy9GLzhWdUFMeXFBM2ZZME9WMmVMeTJY
VHNwRWU0M2NmOEd6L1RZRVh5WTdhbVd5b3lZKzFWSHovVlJuWGZOMjd6WHcybGthLzdYS1dZdFcr
Wk5GcDVUTkZFQzJ5U0Q3WFZZSm5OZ25YUisrSmROZGRacys3WCtkNE5mS1pFZU5USGJVekU5MjFE
eWE1UElQV0NsTnJiQ1l0Y254MzZUZDlZTlpwNGhiZEtxTkMyQmgvSzhzekpMMy9ZZGxJT3lUT3pj
YXR2d3gzc1kzK3I4bytETFpFVXBNdE5jOG1laGcvQWVlWTFMdnFqSnBsYjBtamVLeFdhdjQwYXhW
SmxZWHdGcHZBbWFtNlNUZm5pYlZaWGtTZWZ1a2pNVkNjcmQ3RXlQK2VxZjlsb0pmdTJId0p6cHFa
S0s5UnNiYlEvSEo5dEQzazUwMWpQL0FhaWFOb3Q2a1NZNy9acTNpSjdOT0tZc1hnQzhxZ0N5VFFm
YmxXTVYvZko5MGZuQldKanRyVjR6M1d6bnRuN3ZSdi81ODZMY2EvR2NyTkQvUkhubzAyYzc0RDZ5
UXBsWllURnBGeEtSVkxJMy9Ld3ZnK1JlQjdDbkozd0Z3V1ZMa2NHR1d2T2MvTFAzTlhwbTVYdi9M
VC90TkJuOXlFOEVmVDRZL01SNExQUmx2RHpIK0E2dVpOWXBLazNaWGIvckMrRy9TS2hLYkxZQzhq
RFE1VlpZbjRZc25aTFF0S0hkdWJDNzBteDN6ZjBud3g5dERNaDRMeVZnc0ZCK1BCYjhmYjJmOEI1
NlRybEhVcDJzVjB5YU5ZbW44MzB3QlpLWHJaVisyUlh6SDkwbkgrMmRsb3FNbVdRQ3Y0TFIvK2VD
SGxvSy9FSDRaandYbngyUEJSMlB0UWNaL1lEbVRScG1hcmxZMG1UUzd2a3JUS1A1cTBpcCtOdXVV
WXRtZ0FCeXBXbkZaakhLb0lGT3VlQTlKWDVOSHBydnFOaDM2elo3MnZ5VDRDK0ZQakxZRm40ekhn
b3ovd0dvbXphN2Q2WnBkTVpORzhZMUpvM2hpMWk0OC8yK2lBUEl5VXVWa3FWdWFHay9JU0RRb005
ZGYzV20vTXZnMVd3NytXQ3drWTIxQkdXMEx4a2ZiZ3QrUHhVS00vOEJxYVpwZHU5UFVpaWFUUnZH
VlNhdjR5OUluQUJzVVFHYTZYb3F5TGVJOVZpVHQ3NTJSOGZiUXFzQy80dE4raThFZmF3dkthRFFv
STlIQS9HaGI4SnV4S09NLzhCeVQ1bDlUMDlTS1FMcEdNV1RTS3Y3VHJGVThOZXVVaWVVRllGdjFZ
eUNPVksza21KUGovN3ZlZzlKN3pTTlRuYld2NkxSL0JjRmZXQ1BSUUh3a0d2akxTRFRBbTMvQWV0
TFZ5anlUUnZtT1NhdVlOT3NVMzVwMXluOXNWQUJ1VzZxY0xNMlZhdzNIWmJnMUlOTmRyK2EwWC9z
ei9LMEZmelFhbE5Gb0lIbjZSd08vSDJrTDh1WWY4Q0ltemE1Q2syN1hlMmF0Y3NxaVU4YlhMWUFV
aldTbTY2UXd5eXplWTRVU3UzSmF4bUtodFVQL2kwLzdtaFdoWHhIOHR2V0NINVNSYUVCR280SEVT
S3YveVdocmdNcy9ZRFBTZGNvaXMxYnh2a1duZkdyUksrTnJGWUE5UlN2WlpvTWMzT3VVZHp3SDVm
YTFDekxSVWZOUFBlM0gxemp0MXd2KzRocHVEY1JIb29IdlI2SUJMditBelRMcmxFVm1uZktoUmFk
OGFsM3o1OEMwNHJhbHlJbVNYTG5XY0V5R1d2MHkyVmtyVTEzUGgvNmxUdnNOZ2orNlFmQkhXZ015
M0JxUTRWYi8vSEJyNE5GSTFNL2xIN0FWRnIwcVlOR3JIbHIxcXFjMmd5cSsvRTFBWjVwT0NyTk00
amxhSUcxWFRzdG9XL0NmZDlxL1ZQQURNdHpxVHd5MytKOE1NLzRETDJYbmloSXdxdUkybzFyc0tS
ckpOaG1rWXE5RExsK29rRnVmbkpmeDlwcG5vVi92Yy91dG52YXhOY2I4VFFVL0lNT3RmaGxxOGNl
SFcvemZEMGNERjdaN0k0SGZxcDAydlNwZzA2c2UyZ3pxcHhsR1RkeWVvcEZjYTRvY0wzSEpwL1ZI
WlREaWs0bU96WTM0TDMzYWIrN0VYd3ord3ZMTkQ3Y0VibzIwQmpLM2V4T0IzN0tkTnFNNllET29I
MllZMVUrZGFicDRRYVpKTGh6Wks5RjNxMlVrR3BDSkRVLzcwS3M3N1RjTXZsK0dXbnlKd1lqdnlW
Qkw0SjN0M2p6Z1RiRFRabFFITW95YWg5bG0vZE9LUGM3NHBmUGwwdlB4T1JtTGhYNmQwMzVUd1Y5
WUVWOThzTVUvTlJEbThnOTRWWGJhVTdVQmw4WDQ4RVNKNitrbjlVZCtIZ2g3RXVQdG9WZHoycmR0
SnZRdkR2NWd4TGV3dkg4Y2lIZzdobG9DbHUzZU5PQk5zdE50U3czNGp4YzliSDJuZW5hb3hUYzMz
aDZhSDR1RjR1UHR3Y1I0OG4vdS9STk8rODBHM3lkREVkLy9ESVI5OXdiQ3ZzYnQzaXpnVGJUemFx
Z3kwUFB4dWZCSU5CQWJidzg5R28rRlpzZGpvYm54OXREY2FDdzRQOW9XakkvRmdvbXhXQ0F4K2dw
TysrRzF4dnhWd1IrTStHUXc3UDF4TU94N1BCajI5ZlpIdkZYYnZWSEFtMnJuNHByc3JLa2Q2d2lG
Ujl0RHNmSDJtdGhJTFBSb3JDMDRPOVlXbWh1TmhlWkcyd0x6STlGZ2ZMUXRrQmlOQmhMUGhmNFhu
UGFMYXlEaWs0R3dUd2JDM3Y4ZGFQWStISWo0UHVwdjlqTCtBNytDbmN2WGVIdE43V2dzR0I2TmhX
S2pzVkJzSkJwOE5Cb056bzVFQTNNTGEzNjROUkFmYWZVbmhwUHI1VTc3bGNHWGdiRDM3d05oejUv
N203MGpBMkhQbVczZUUrRC9yWldGMEJhc0hXNExoa2VpZ2RoSUxCUWJiZzA4R200TnpBNjMrT2VH
Vy94elE2MysrYUVXZjN5b3haZElybVdoYjNrKzlJTkxvVjhLdnZRM2UrTUR6ZDRmK3BzOS85RWY5
cllOUkh5T2JkNERBQXRXRk1Kb1c3QjJ1RFVZSG9vR1lrUFJRR3lveGY5b3FNVTNPeFR4elExRmZI
TkRMYjc1b1lndlBoanhKcFpXZU8zZ0o4UHZTZlEzZVg4YUNIdG4rNXU5TTMzTlhQNEJyN01WaFRE
Y0dxZ2RidldIQjF2OXNjRldmMnd3NG44MEdQSE5Eb2E5YzRNUjM5eGcyRHMzRVBiT0Q0Uzk4WUd3
SnpFUTlpVDZtNzNTMyt5VnZtYlBmSCt6Wjc2dnlmTzB2OW43cDc1bWIyOS9NNWQvd0cvSmM0VXcx
T0lQOTBmOHNjR0lQOVlmOGNjR3dyNUhBMkh2N0VDemQyNmcyVHZYbHd4OXZLL1o4MjEvcytlLytw
bzgzL1kzZVQ3cmEvWTBjZmtIL0xidFhMMkdXbnkxQTJGZnVDL3NqZldIdmJIK1pzK2p2ckQzWm0r
VFo2aTN5VFBXMSt5WjdHdnlYTzlyOXZpMzkwOEg4TSt3b2hCNm03eGx0Njk1VHc2RWZlY0d3MTVm
ZjVQbm5iNW1UNkQzMm9VRDIveDNBdmdWN2R5eFk4Zk9nU2F2dTcvSms5VjN6YXZlN2o4SUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBSUNWL2c5dFBKRVF1MVh2bVFBQUFBQkpSVTVFcmtKZ2dnPT0iPgotPGlt
ZyBpZD0iaTIiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9zcXVhcmUxMjgu
cG5nIj4KLQotPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWRmODgwM2I2MjBiYzIyMTQxNjE0MjMzNzAzYWQxMDI5YmQ2ODhkMi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0q
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
Ci0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+
Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIgc3JjPSIuLi91bml0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiBzcmM9
Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFz
Y3JpcHQiPgotCi1UZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnbCcpOwotICAgIHZhciBnbCA9IHdyYXBHTENv
bnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykpOwotICAgIGdsLnZpZXdwb3J0KDAsMCxjYW52YXMu
d2lkdGgsY2FudmFzLmhlaWdodCk7Ci0gICAgZ2wuY2xlYXJDb2xvcigwLDAsMSwxKTsKLSAgICBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAg
Z2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLSAgICByZXR1cm4gW2dsXTsKLX0KLQotVGVzdHMu
c2V0dXAgPSBmdW5jdGlvbihnbCkgewotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICB2YXIgdGV4Q3Vi
ZU1hcCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
X0NVQkVfTUFQLCB0ZXhDdWJlTWFwKTsKLSAgICByZXR1cm4gW2dsXQotfQotCi1UZXN0cy50ZWFy
ZG93biA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHRleEN1YmVNYXApIHsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Ci0gICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgbnVsbCk7Ci0gICAgZ2wuZGVsZXRl
VGV4dHVyZSh0ZXhDdWJlTWFwKTsKLX0KLQotVGVzdHMudGVzdFRleEltYWdlMkQgPSBmdW5jdGlv
bihnbCkgewotICAgIGdsLmVuYWJsZShnbC5CTEVORCk7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpJyk7Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYycpOwotICAgIHZhciBjdHggPSBjLmdldENvbnRleHQoJzJkJyk7Ci0gICAgY3R4LmRyYXdJ
bWFnZShpbWcsMCwwKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7Ci0gICAgZ2wudGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcp
OwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1Ms
IGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5MSU5FQVIpOwotICAgIHZhciBmID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5LWZsaXAtdmVy
dCcsICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLk9ORSwgZ2wuWkVSTyk7
Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0g
ICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBjKTsKLSAgICBmID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5LWhmbGlw
LXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOwotICAgIGdsLmJsZW5kRnVuYyhnbC5TUkNfQUxQSEEs
IGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpOwotICAgIGYuYXBwbHkoKTsKLSAgICBmLmRlc3Ryb3ko
KTsKLSAgICB2YXIgdmFsaWRfdGFyZ2V0cyA9IFsKLSAgICAgICAgZ2wuVEVYVFVSRV8yRCwKLSAg
ICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAotICAgICAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWSwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAotICAgICAgICBn
bC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1osCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9N
QVBfTkVHQVRJVkVfWgotICAgIF07Ci0gICAgdmFsaWRfdGFyZ2V0cy5mb3JFYWNoKGZ1bmN0aW9u
KHQpIHsKLSAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKLSAgICAgICAgICAgICAgICBnbC50
ZXhJbWFnZTJEKHQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwot
ICAgICAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQodCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgIH0pOwotICAgICAgICBhc3NlcnRPayhmdW5jdGlv
bigpewotICAgICAgICAgICAgICAgIGdsLnRleEltYWdlMkQodCwgMSwgZ2wuUkdCQSwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2Uy
RCh0LCAxLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci19Ci0KLVRlc3RzLnRlc3RUZXhJbWFnZTJETm9uU09QID0gZnVuY3Rpb24oZ2wp
IHsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7Ci0gICAgd2hp
bGUgKCFpbWcuY29tcGxldGUpIHt9Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYycpOwotICAgIHZhciBjdHggPSBjLmdldENvbnRleHQoJzJkJyk7Ci0gICAgY3R4LmRyYXdJ
bWFnZShpbWcsMCwwKTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQg
d2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAotICAgICAg
ZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3Io
Z2wsICJ0ZXhTdWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBl
eGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7Ci0gICAgYXNz
ZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggZGlydHkgb3JpZ2luIGNhbnZh
cyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
Yyk7fSk7Ci0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhTdWJJbWFnZTJEIHdpdGgg
ZGlydHkgb3JpZ2luIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5j
dGlvbigpe2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLX0KLQotVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9uKGds
KSB7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUg
dmVjMiBUZXg7Ci0KLXZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAg
IHRleENvb3JkMCA9IHZlYzQoVGV4LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bv
c2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9Imlk
ZW50aXR5LWhmbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2
ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3Jk
MDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50
LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwv
c2NyaXB0PgotPHNjcmlwdCBpZD0iaWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFn
bWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgVGV4
dHVyZTsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdmVj
NCBjID0gdGV4dHVyZTJEKFRleHR1cmUsIHRleENvb3JkMC5zdCk7Ci0gICAgZ2xfRnJhZ0NvbG9y
ID0gYzsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPjxib2R5PgotPGNhbnZhcyBpZD0iZ2wiIHdpZHRo
PSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImMiIHdpZHRoPSIyNTYi
IGhlaWdodD0iMjU2Ij48L2NhbnZhcz4KLTxpbWcgaWQ9ImkiIHdpZHRoPSIyNTYiIGhlaWdodD0i
MjU2IiAgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB
QVFBQUFBRUFDQVlBQUFCY2NxaG1BQUFUVkVsRVFWUjRuTzNkK1ZQVWQ1N0hjZjJiOWs5WSt6NDQr
cUs3T1pvR0ZWQTVWZkJHemFoOWN4cE56R0VPb1J1YTVsQkV1ZS9ESzRmWjdNYXBtU20zTWxzaHU4
eE9kQ3BESnQzdi9hRUJBVUhBT01HNHowZlY1M2ZxVS9WNmZkN2ZUL2UzMmJFREFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBd092QmthcjdsKzMrR3dCc2s4eFVyVDByVGI4dngyUTQ1amFubHU3WXNXUG5z
Z1hnVGVZd2FrODVVM1h2NVppTTMrWGJVaC9sMmRJQ0JjNjA4MFdaMXVyOTJiYVNIUlFCOEdheUdk
VVd1MUh6b1NORk8rWk0xZjJjYlRMTTUxbFQ1d29jNXJrRE9iYlovVm0yU0VtMjNWdnN5amhWNW5K
UUJzQ2J4R1pRVnRtTjZwNE1vL1lQZHFOR0hLbGF5VXJYSjl6V2xFU2gweEl2enNtWUwzSFo1NHB6
TW02VnVSeVJNcGZUVytweVVBYkFtOEJtVk5WbkdOVFRkcVA2dnpPTUdyR25hTVNacXBOc2sxN3li
S2xTNkRUTC9peGJvdFJsajVmbE91YkwzSTY1TXBmalZybmJFYWxZS0lOU2wzMzV2UUdBM3dLYlVX
MnhHZFdSREtQNjZ3eWpXaFlMd0pHaUZXZWFUckpOQm5GYlUyU1AzU1Q3czZ4U21tdVhjcmN6VWU1
MnhzdHpIZlBsYnNkY3VkdDVxeXpYM2xLV2x4a3N6WEdlSzhteG55ekp5U2plUVJrQXJ6ZWJRVmxs
TTZwN2JVYjE0OVVGNEVqVlNtYWFUckxTOWVLeXBNZ2VlN29jeUxaSm1kc2hGWG1aVXBIblhGRUdC
L096SnNyZGpxRXl0L05tV2E0OVhKYnQ5SmE2TWs0VnU3aEVCRjVMTnIycTNtWlF6OWdNNnU5WEZF
QnFzZ0NjYVRySlhKZ0VjaTBwc3RkaGt2M1pOaW5OVFpiQW9md3NPWlNmSlFmek1xVTh6NWtvZHpz
U1pibU9lSVhiK1hXNTJ6RmE1bkxjS25QWkkyVUxsNGpGZktJQXZCN01PclhGWmxCSGJBYjExemFq
K2ttR1ViTnVBV1NtNjVkS1lIZEdtaFJsV3FROHp5RkhDbkxrK0w1Y09WNlVLMGNLWFZLNUoxc081
bWRLaGRzcFphdktvRFRYMFZQaWNpVExJSHRGR1ZBSXdLL05ZbEJXMmZUcVhwdEIvZGhtU0o3K0x5
cUFySFM5NUppVEpWRGdORWxsUVpaNEtndWxycnBVNnF0TEpYQnN2NXd0M3lNbjlydmxhSUZMRGk4
dmcxeEg0bUIrNXArV2wwRnBqcjJsSk1jUkxNNnlueXZPempoeElJdDdBK0JYWTlHcjZxMEw0LzlT
QWFSb3hMN3cvTDlXQVdTYkRKSnJUWkZpZDRaNGp4WkpVLzF4dWZIaE9lbStlazZpbDAvTEI3NHFh
VHhUSm9HaisrVnMyUjQ1dmo5WGpoVGt5T0hkQzQ4SkMyVndhSGZtbnlyY3puK3ZjRHNteW5MdFF5
VTVHVGVMY3pMQ3BUazJUM0dXN1ZoeFZzYWU3ZDRmNEkxbDFxa3RWb002WWpPb3ZyWWExRDhzRm9C
OVdRRTQxNWtBOHUxcGN2UkFqbndVT2lMRExRRzUxOTBvOTI0MnlsUkhuUXlHL1hMejZubUpYcXFX
RDN5VjBuQzZWUHhIOThuWnN0MXlmRit1SEMxMFNkWGViRG1Vbnl5RHFvTHM3dzdsWjM1YjduYjhz
Y3h0LzdkU2wzMmtKQ2VqcXlRbjQwcEpUa2JaRGlZQzROV3phSlZWVnIycTEyWlFQYllhMUg5ZnV3
QjBTd1dRbGE2WExGT3lBQW95VGZMVzRUM1NmdVdNM0wzUklBLzdMOHZEL3N2eVplOGwrZXpXMjNL
dnUxRW1PMnBsb05rbjNWZlBTZXZiMWZLK3QxSWF6NVJKN2NsaThSMHBrdE9sK1hLc0tGa0dCeGZL
b0hKdjFsOFA1bWYrdVNMUDhmdnlYTWRNbWRzUktYYzVxb3RkR1FYYnZWL0FHOFdpVjlWYjlhb1px
MTQxYXpPb3hXYmNYQUhrV2xPa0pDOURhazhYeTYxUEw4aURub3RMQmJCVUJIMlg1WXZibCtSQnow
VzVlNk5CSnRwcnBML1pKemMvT2kvWFAzaExXaTZla3ZjOGg2V3V1a1M4VmMvS1lQRUM4V2hoenBP
cWd1enZLdmRtZlhWNGQyYjN3ZnpNOXcvbFpURU5BSytDV2Fld1dIV3FpRTJ2K3RxcVYvMncyUUxJ
Tmhra1AyTmgvSzg5SW1OdElmbWk5OUt6OFBjbDE1ZEw2NUo4MFh0SlByLzF0dHkvMlNoM3V4dmt6
dlY2R1krRnBPK2FWNjUvOER1SlhEd3BWenlIcE83VVFobVU1TXZSSXBkVTdjMlJRN3V6NU1SKzl4
K09GYm51SGkzTWlWUVZ1S29QNzg0dTJ1NzlBMzdUTEZwbGxWV242clhxVlkrdGV0V1BHeGJBc2d2
QXZVNlR2SFZvdDhTdW5KWTdOK3JseTc2MWcvOWxiM0o5c1d4OWZ2dVNmSDc3YlhuUWMxSHVkVGZJ
VEZlZGpMV0ZwUGVhUjdvK2VFdkNqU2ZseW9WRFVsZGRLc0hqQitUQzRVSTVWWnduVlFVNWliY3E5
bngxdWpTLzU4UUI5OVhxWW5mNURxWUI0T1ZZZE0vR2Y2dGU5WS9rOC8vR0JlQ3lHS1hFblNFMTFR
ZWs1NVB6Y3Y5bTQ4clFyeFA4TDI1ZmtpOXV2eTJmcjFxZjNicVluQXh1Tk1oMFo1Mk1SSU55KzFP
UFhQL3dkOUorNVl3MDE1K1FkODRmbEpxVHhYTGhjSUdjTE03NytVaEJ6dDh1VkJhMm5xdmNlL1pz
eFo2eTdkNUw0RGRsY2Z5MzZGVmZXL1NxSDZ3R2xhd3VnTVd2QVR2VGxoV0F5U0I1R2FseWRIK09m
RlJ6UkVhalFmbjgxdHZyaC82RndWOWNGK1d6V3hmbHdhMkxjci9ub3R6cmJwU1o2L1V5MVZVbmt4
MjFNdHdTa0o1UExrakhlMmVscWY2NFhENTNVRUluRGlRdUhDNllyeTdPbXoxVzVIclkrRmJGNFIx
TUE4RG1XTFRLS3N1eThkOXFVTCt3QUpaL0MzQ1BNMTNPSHR3dGJlK2VsdW5yOWZMRnVzRi9QdlNm
MzFvNytBOTZucTM3UFJmbGZrK2ozTCtaL0ZqeDdvMEdtZTZxazRuMkdobHE4VXZQeCtlbC9jb1p1
VlozWEM2ZnEvaTU3bFR4MzJwT0huZ1VPbFVjL2pSNGxFdENZQ01XbmFyZW9sZk5XUFNxV2F0Qjlk
T2FCYkRHbDRCY0ZxTVV1MjBTT25WQWJuNThUdTUyTjI3cXRQOThnOUEvV0F6OVF2QVgxNzNGRXVo
dWtMdmREY25Kb0xOV3htTTFNaGp4eTgyUHprbm4rMmNTc1hkUHo0Y2JUOHgrR0toOCtGSHdTTzBP
U2dCWW0xbW5zSmgxcW9oRnIxd1kvNVh4WndXdy90ZUFzOUtUdnd0d1pIKzJYQTFWeVhCclVCNzBY
RnovdEY5bnpOOUs4TzkxTjhpOWhmQXZyanMzR3VUT2pYcVpYbmhFR0crdmtkRm9VQWJEL3A5N1Bq
Ny90NTZyNTcvcHUrYjVwT1hkNnFQYnZkZkFhOGVpM1ZWbDBhbDZMWHJsWTR0TythTkZyMHBzdGdE
Mk9OTGx6TUhkRW4ybldxWTY2K1N6bHh6ekh5d2I4NThML1RyQnYzdmpXZmdYMTh6MTVKcnVxcE9w
emxxWmFBOGx4bUtodjQ5R2czL29EL3MrM3U2OUJsNDdGcDJpM3FKVnpWaDB5bG1yVHZtVFZaKzhB
Rno1SHNEekJaQmpOa3B4cmsyQ3B3NUk5MGZuNU02TmhoZWU5bHNPZnZmbWczL24rclB3ejF5dms1
bXVPcGxlV0pNZHRmSEpqcHJ2Smp0cUtBQmd1ZVQ0cjRpWWRjcXZ6YnBkUDFqMHl2anFBckN2OVNK
UXVsN2N0bFNwMnBjdEh3WXJaYWdsSVBkdk5xNS8yci9nWW05VHdiK3g5ZUJQZDlYSlZISVNtSi9x
clAxbXVyT0dSd0JnT1pOMlY1VkZwK3kxYUJmR2Y1MHlzVlFBYTN3SFlMRUFzdEwxc3R1UkxxY3I4
cVgxOGltWjdLaVZCejBYWHhqNmpaL3ZOeG44NnhzSFAva0lVQ2RUblhYeDZjN2F2MHgxMVBSczkx
NERyeDJUVGxGdjBpcG16RHJsckVXbi9NbWlWOGxtQ2lEYmJKQUR1VFlKbnR3dk42NytUbWF1MXlk
RHZtYm90MzZ4OXl6NDlTOFovTnJGTlQvZFZmdjdxYzY2azl1OTE4QnJ4YXhlUGY0cjRoc1ZnSFBo
OXdCenJTbFNWWlF0SHdRcVpURGlsN3ZkalZzNzdiY1kvSm10QjErbU9tc1RreDIxVDZhNmFrZTJl
NitCMTQ1SnU2dktwRlAybXJUS3gyYnRzL0YvOFZ1QUx5cUEzZlkwT1YyZUx5MlhUc3BFZTQzY2Y4
R3ovVFlFWHlZN2FtV3lveVkrMVZIei9WUm5YZk4yN3pYdzJsa2EvN1hLV1l0VytaTkZwNVRORkVD
MnlTRDdYVllKbk5nblhSKytKZE5kZFpzKzdYK2Q0TmZLWkVlTlRIYlV6RTkyMUR5YTVQSVBXQ2xO
cmJDWXRjbngzNlRkOVlOWnA0aGJkS3FOQzJCaC9LOHN6SkwzL1lkbElPeVRPemNhdHZ3eDNzWTMr
cjhvK0RMWkVVcE10TmM4bWVoZy9BZWVZMUx2cWpKcGxiMG1qZUt4V2F2NDBheFZKbFlYd0ZwdkFt
YW02U1RmbmliVlpYa1NlZnVrak1WQ2NyZDdFeVArZXFmOWxvSmZ1Mkh3SnpwcVpLSzlSc2JiUS9I
Sjl0RDNrNTAxalAvQWFpYU5vdDZrU1k3L1pxM2lKN05PS1lzWGdDOHFnQ3lUUWZibFdNVi9mSjkw
Zm5CV0pqdHJWNHozV3pudG43dlJ2LzU4NkxjYS9HY3JORC9SSG5vMDJjNzRENnlRcGxaWVRGcEZ4
S1JWTEkzL0t3dmcrUmVCN0NuSjN3RndXVkxrY0dHV3ZPYy9MUDNOWHBtNVh2L0xUL3ROQm45eUU4
RWZUNFkvTVI0TFBSbHZEekgrQTZ1Wk5ZcEtrM1pYYi9yQytHL1NLaEtiTFlDOGpEUTVWWlluNFlz
blpMUXRLSGR1YkM3MG14M3pmMG53eDl0RE1oNEx5VmdzRkIrUEJiOGZiMmY4QjU2VHJsSFVwMnNW
MHlhTlltbjgzMHdCWktYclpWKzJSWHpIOTBuSCsyZGxvcU1tV1FDdjRMUi8rZUNIbG9LL0VINFpq
d1hueDJQQlIyUHRRY1ovWURtVFJwbWFybFkwbVRTN3ZrclRLUDVxMGlwK051dVVZdG1nQUJ5cFdu
RlpqSEtvSUZPdWVBOUpYNU5IcHJ2cU5oMzZ6WjcydnlUNEMrRlBqTFlGbjR6SGdvei93R29temE3
ZDZacGRNWk5HOFkxSm8zaGkxaTQ4LzIraUFQSXlVdVZrcVZ1YUdrL0lTRFFvTTlkZjNXbS9Ndmcx
V3c3K1dDd2tZMjFCR1cwTHhrZmJndCtQeFVLTS84QnFhWnBkdTlQVWlpYVRSdkdWU2F2NHk5SW5B
QnNVUUdhNlhvcXlMZUk5VmlUdDc1MlI4ZmJRcXNDLzR0TitpOEVmYXd2S2FEUW9JOUhBL0doYjhK
dXhLT00vOEJ5VDVsOVQwOVNLUUxwR01XVFNLdjdUckZVOE5ldVVpZVVGWUZ2MVl5Q09WSzNrbUpQ
ai83dmVnOUo3elNOVG5iV3Y2TFIvQmNGZldDUFJRSHdrR3ZqTFNEVEFtMy9BZXRMVnlqeVRSdm1P
U2F1WU5Pc1UzNXAxeW45c1ZBQnVXNnFjTE0yVmF3M0haYmcxSU5OZHIrYTBYL3N6L0swRmZ6UWFs
TkZvSUhuNlJ3Ty9IMmtMOHVZZjhDSW16YTVDazI3WGUyYXRjc3FpVThiWExZQVVqV1NtNjZRd3l5
emVZNFVTdTNKYXhtS2h0VVAvaTAvN21oV2hYeEg4dHZXQ0g1U1JhRUJHbzRIRVNLdi95V2hyZ01z
L1lEUFNkY29pczFieHZrV25mR3JSSytOckZZQTlSU3ZaWm9NYzNPdVVkendINWZhMUN6TFJVZk5Q
UGUzSDF6anQxd3YrNGhwdURjUkhvb0h2UjZJQkx2K0F6VExybEVWbW5mS2hSYWQ4YWwzejU4QzA0
cmFseUltU1hMbldjRXlHV3YweTJWa3JVMTNQaC82bFR2c05nais2UWZCSFdnTXkzQnFRNFZiLy9I
QnI0TkZJMU0vbEg3QVZGcjBxWU5HckhscjFxcWMyZ3lxKy9FMUFaNXBPQ3JOTTRqbGFJRzFYVHN0
b1cvQ2ZkOXEvVlBBRE10enFUd3kzK0o4TU0vNERMMlhuaWhJd3F1STJvMXJzS1JySk5obWtZcTlE
TGwrb2tGdWZuSmZ4OXBwbm9WL3ZjL3V0bnZheE5jYjhUUVUvSU1PdGZobHE4Y2VIVy96ZkQwY0RG
N1o3STRIZnFwMDJ2U3BnMDZzZTJnenFweGxHVGR5ZW9wRmNhNG9jTDNISnAvVkhaVERpazRtT3pZ
MzRMMzNhYis3RVh3eit3dkxORDdjRWJvMjBCakszZXhPQjM3S2ROcU02WURPb0gyWVkxVStkYWJw
NFFhWkpMaHpaSzlGM3EyVWtHcENKRFUvNzBLczc3VGNNdmwrR1dueUp3WWp2eVZCTDRKM3Qzanpn
VGJEVFpsUUhNb3lhaDlsbS9kT0tQYzc0cGZQbDB2UHhPUm1MaFg2ZDAzNVR3VjlZRVY5OHNNVS9O
UkRtOGc5NFZYYmFVN1VCbDhYNDhFU0o2K2tuOVVkK0hnaDdFdVB0b1ZkejJyZHRKdlF2RHY1Z3hM
ZXd2SDhjaUhnN2hsb0NsdTNlTk9CTnN0TnRTdzM0anhjOWJIMm5lbmFveFRjMzNoNmFINHVGNHVQ
dHdjUjQ4bi91L1JOTys4MEczeWRERWQvL0RJUjk5d2JDdnNidDNpemdUYlR6YXFneTBQUHh1ZkJJ
TkJBYmJ3ODlHbytGWnNkam9ibng5dERjYUN3NFA5b1dqSS9GZ29teFdDQXgrZ3BPKytHMXh2eFZ3
UitNK0dRdzdQMXhNT3g3UEJqMjlmWkh2RlhidlZIQW0ycm40cHJzcktrZDZ3aUZSOXREc2ZIMm10
aElMUFJvckMwNE85WVdtaHVOaGVaRzJ3THpJOUZnZkxRdGtCaU5CaExQaGY0WG5QYUxheURpazRH
d1R3YkMzdjhkYVBZK0hJajRQdXB2OWpMK0E3K0NuY3ZYZUh0TjdXZ3NHQjZOaFdLanNWQnNKQnA4
TkJvTnpvNUVBM01MYTM2NE5SQWZhZlVuaHBQcjVVNzdsY0dYZ2JEMzd3Tmh6NS83bTcwakEySFBt
VzNlRStEL3JaV0YwQmFzSFc0TGhrZWlnZGhJTEJRYmJnMDhHbTROekE2MytPZUdXL3h6UTYzKyth
RVdmM3lveFpkSXJtV2hiM2srOUlOTG9WOEt2dlEzZStNRHpkNGYrcHM5LzlFZjlyWU5SSHlPYmQ0
REFBdFdGTUpvVzdCMnVEVVlIb29HWWtQUlFHeW94ZjlvcU1VM094VHh6UTFGZkhORExiNzVvWWd2
UGhqeEpwWldlTzNnSjhQdlNmUTNlWDhhQ0h0bis1dTlNMzNOWFA0QnI3TVZoVERjR3FnZGJ2V0hC
MXY5c2NGV2Yyd3c0bjgwR1BITkRvYTljNE1SMzl4ZzJEczNFUGJPRDRTOThZR3dKekVROWlUNm03
M1MzK3lWdm1iUGZIK3paNzZ2eWZPMHY5bjdwNzVtYjI5L001ZC93Ry9KYzRVdzFPSVA5MGY4c2NH
SVA5WWY4Y2NHd3I1SEEySHY3RUN6ZDI2ZzJUdlhsd3g5dksvWjgyMS9zK2UvK3BvODMvWTNlVDdy
YS9ZMGNma0gvTGJ0WEwyR1dueTFBMkZmdUMvc2pmV0h2YkgrWnMranZyRDNabStUWjZpM3lUUFcx
K3laN0d2eVhPOXI5dmkzOTA4SDhNK3dvaEI2bTd4bHQ2OTVUdzZFZmVjR3cxNWZmNVBubmI1bVQ2
RDMyb1VEMi94M0F2Z1Y3ZHl4WThmT2dTYXZ1Ny9KazlWM3phdmU3ajhJQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFJQ1YvZzl0UEpFUXUxWHZtUUFBQUFCSlJVNUVya0pnZ2c9PSI+Ci08aW1nIGlkPSJpMiIg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3NxdWFyZTEyOC5wbmciPgotCi08
L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3Nz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwNzU4YjQzYmQ5ZGRmMGJmMWMwMmFmNWE1ZjYxNjk0ZmY4MGU1M2M2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS91bml0LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi1UZXN0cyBm
b3IgdGhlIE9wZW5HTCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAotCi1Db3B5cmlnaHQgKEMp
IDIwMDkgIElsbWFyaSBIZWlra2luZW4gPGlsbWFyaS5oZWlra2luZW5AZ21haWwuY29tPgotCi1Q
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
bgotb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24KLWZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJl
IHdpdGhvdXQKLXJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLAotY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwKLWNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKLWNvbmRpdGlvbnM6Ci0KLVRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi1pbmNsdWRl
ZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K
LQotVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi1FWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMKLU9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5ECi1OT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVAotSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCi1XSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLUZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLU9USEVSIERFQUxJTkdTIElO
IFRIRSBTT0ZUV0FSRS4KLQotKi8KLS5vayB7Ci0gIGNvbG9yOiBncmVlbjsKLX0KLS5mYWlsIHsK
LSAgY29sb3I6IHJlZDsKLX0KLWNhbnZhcyB7Ci0gIGRpc3BsYXk6IG5vbmU7Ci19Ci0jdGVzdC1z
dGF0dXMgewotICBmb250LXNpemU6IGxhcmdlOwotfQotCi0jdGVzdC1sb2cgewotICBwYWRkaW5n
LWxlZnQ6IDAuNWVtOwotICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTsKLSAgYmFja2dyb3VuZDogd2hp
dGU7Ci0gIGNvbG9yOiBibGFjazsKLX0KLSN0ZXN0LWxvZyA+IGRpdiB7Ci0gIHBhZGRpbmctYm90
dG9tOiAwLjVlbTsKLX0KLSN0ZXN0LWxvZyBoMiB7Ci0gIGZvbnQtc2l6ZTogMWVtOwotICBtYXJn
aW4tYm90dG9tOiAwZW07Ci0gIHBhZGRpbmctdG9wOiAwLjVlbTsKLX0KLSN0ZXN0LWxvZyBoMyB7
Ci0gIGZvbnQtc2l6ZTogc21hbGw7Ci0gIG1hcmdpbi1sZWZ0OiAxLjVlbTsKLSAgbWFyZ2luLWJv
dHRvbTogMGVtOwotICBtYXJnaW4tdG9wOiAwLjVlbTsKLX0KLSN0ZXN0LWxvZyBwIHsKLSAgbWFy
Z2luLWxlZnQ6IDRlbTsKLSAgZm9udC1zaXplOiBzbWFsbDsKLSAgbWFyZ2luLXRvcDogMGVtOwot
ICBtYXJnaW4tYm90dG9tOiAwLjJlbTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS91bml0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDcwNmJlNTVjNzljNjZhYTgwNGNmNjU3OWNkYjkwODhlNDVhMTkw
M2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL3VuaXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5MTAgKzAsMCBAQAot
LyoKLVVuaXQgdGVzdGluZyBsaWJyYXJ5IGZvciB0aGUgT3BlbkdMIEVTIDIuMCBIVE1MIENhbnZh
cyBjb250ZXh0Ci0qLwotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFs
cyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiog
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgot
KiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB
Q1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0Ug
T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS8qIC0tIHBsYWZvcm0g
c3BlY2lmaWMgY29kZSAtLSAqLwotCi0vLyBXZWJLaXQKLWlmICh3aW5kb3cudGVzdFJ1bm5lciAm
JiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlciA9IHdpbmRvdy50ZXN0UnVubmVyOwotfQotCi1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotCi0gIC8vIFRoZSBXZWJLaXQgdGVz
dGluZyBzeXN0ZW0gY29tcGFyZXMgY29uc29sZSBvdXRwdXQuCi0gIC8vIEJlY2F1c2UgdGhlIG91
dHB1dCBvZiB0aGUgV2ViR0wgVGVzdHMgaXMgR1BVIGRlcGVuZGVudAotICAvLyB3ZSB0dXJuIG9m
ZiBjb25zb2xlIG1lc3NhZ2VzLgotICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsg
fTsKLSAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKLQotICAvLyBSQUYg
ZG9lc24ndCB3b3JrIGluIExheW91dFRlc3RzLiBEaXNhYmxlIGl0IHNvIHRoZSB0ZXN0cyB3aWxs
Ci0gIC8vIHVzZSBzZXRUaW1lb3V0IGluc3RlYWQuCi0gIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUgPSB1bmRlZmluZWQ7Ci0gIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUg
PSB1bmRlZmluZWQ7Ci19Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKLX0K
LQotLyogLS0gZW5kIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgLS0qLwotVGVzdHMgPSB7Ci0gIGF1
dG9ydW4gOiB0cnVlLAotICBtZXNzYWdlIDogbnVsbCwKLSAgZGVsYXkgOiAwLAotCi0gIHN0YXJ0
VW5pdCA6IGZ1bmN0aW9uKCl7IHJldHVybiBbXTsgfSwKLSAgc2V0dXAgOiBmdW5jdGlvbigpIHsg
cmV0dXJuIGFyZ3VtZW50czsgfSwKLSAgdGVhcmRvd24gOiBmdW5jdGlvbigpIHt9LAotICBlbmRV
bml0IDogZnVuY3Rpb24oKSB7fQotfQotCi12YXIgX190ZXN0U3VjY2Vzc19fID0gdHJ1ZTsKLXZh
ciBfX3Rlc3RGYWlsQ291bnRfXyA9IDA7Ci12YXIgX190ZXN0TG9nX187Ci12YXIgX19iYWNrbG9n
X18gPSBbXTsKLQotT2JqZWN0LnRvU291cmNlID0gZnVuY3Rpb24oYSwgc2Vlbil7Ci0gIGlmIChh
ID09IG51bGwpIHJldHVybiAibnVsbCI7Ci0gIGlmICh0eXBlb2YgYSA9PSAnYm9vbGVhbicpIHJl
dHVybiBhID8gInRydWUiIDogImZhbHNlIjsKLSAgaWYgKHR5cGVvZiBhID09ICdzdHJpbmcnKSBy
ZXR1cm4gJyInICsgYS5yZXBsYWNlKC8iL2csICdcXCInKSArICciJzsKLSAgaWYgKGEgaW5zdGFu
Y2VvZiBIVE1MRWxlbWVudCkgcmV0dXJuIGEudG9TdHJpbmcoKTsKLSAgaWYgKGEud2lkdGggJiYg
YS5oZWlnaHQgJiYgYS5kYXRhKSByZXR1cm4gIltJbWFnZURhdGFdIjsKLSAgaWYgKGEgaW5zdGFu
Y2VvZiBBcnJheSkgewotICAgIGlmICghc2Vlbikgc2VlbiA9IFtdOwotICAgIHZhciBpZHggPSBz
ZWVuLmluZGV4T2YoYSk7Ci0gICAgaWYgKGlkeCAhPSAtMSkgcmV0dXJuICcjJysoaWR4KzEpKycj
JzsKLSAgICBzZWVuLnVuc2hpZnQoYSk7Ci0gICAgdmFyIHNyY3MgPSBhLm1hcChmdW5jdGlvbihv
KXsgcmV0dXJuIE9iamVjdC50b1NvdXJjZShvLHNlZW4pIH0pOwotICAgIHZhciBwcmVmaXggPSAn
JzsKLSAgICBpZHggPSBzZWVuLmluZGV4T2YoYSk7Ci0gICAgaWYgKGlkeCAhPSAtMSkgcHJlZml4
ID0gJyMnKyhpZHgrMSkrJz0nOwotICAgIHJldHVybiBwcmVmaXggKyAnWycgKyBzcmNzLmpvaW4o
IiwgIikgKyAnXSc7Ci0gIH0KLSAgaWYgKHR5cGVvZiBhID09ICdvYmplY3QnKSB7Ci0gICAgaWYg
KCFzZWVuKSBzZWVuID0gW107Ci0gICAgdmFyIGlkeCA9IHNlZW4uaW5kZXhPZihhKTsKLSAgICBp
ZiAoaWR4ICE9IC0xKSByZXR1cm4gJyMnKyhpZHgrMSkrJyMnOwotICAgIHNlZW4udW5zaGlmdChh
KTsKLSAgICB2YXIgbWVtYmVycyA9IFtdOwotICAgIHZhciBuYW1lOwotICAgIHRyeSB7Ci0gICAg
ICBmb3IgKHZhciBpIGluIGEpIHsKLSAgICAgICAgaWYgKGkuc2VhcmNoKC9eW2EtekEtWjAtOV0r
JC8pICE9IC0xKQotICAgICAgICAgIG5hbWUgPSBpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
bmFtZSA9ICciJyArIGkucmVwbGFjZSgvIi9nLCAnXFwiJykgKyAnIic7Ci0gICAgICAgIHZhciBh
aTsKLSAgICAgICAgdHJ5IHsgYWkgPSBhW2ldOyB9Ci0gICAgICAgIGNhdGNoKGUpIHsgYWkgPSAn
bnVsbCAvKkVSUk9SX0FDQ0VTU0lORyovJzsgfQotICAgICAgICB2YXIgcyA9IG5hbWUgKyAnOicg
KyBPYmplY3QudG9Tb3VyY2UoYWksIHNlZW4pOwotICAgICAgICBtZW1iZXJzLnB1c2gocyk7Ci0g
ICAgICB9Ci0gICAgfSBjYXRjaCAoZSkge30KLSAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAgaWR4
ID0gc2Vlbi5pbmRleE9mKGEpOwotICAgIGlmIChpZHggIT0gLTEpIHByZWZpeCA9ICcjJysoaWR4
KzEpKyc9JzsKLSAgICByZXR1cm4gcHJlZml4ICsgJ3snICsgbWVtYmVycy5qb2luKCIsICIpICsg
J30nCi0gIH0KLSAgaWYgKHR5cGVvZiBhID09ICdmdW5jdGlvbicpCi0gICAgcmV0dXJuICcoJyth
LnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiAiKS5yZXBsYWNlKC9ccysvZywgIiAiKSsnKSc7
Ci0gIHJldHVybiBhLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIGZvcm1hdEVycm9yKGUpIHsK
LSAgaWYgKHdpbmRvdy5jb25zb2xlKSBjb25zb2xlLmxvZyhlKTsKLSAgdmFyIHBhdGhTZWdzID0g
bG9jYXRpb24uaHJlZi50b1N0cmluZygpLnNwbGl0KCIvIik7Ci0gIHZhciBjdXJyZW50RG9jID0g
ZS5saW5lTnVtYmVyICE9IG51bGwgPyBwYXRoU2Vnc1twYXRoU2Vncy5sZW5ndGggLSAxXSA6IG51
bGw7Ci0gIHZhciB0cmFjZSA9IChlLmZpbGVuYW1lIHx8IGN1cnJlbnREb2MpICsgIjoiICsgZS5s
aW5lTnVtYmVyICsgKGUudHJhY2UgPyAiXG4iK2UudHJhY2UgOiAiIik7Ci0gIHJldHVybiBlLm1l
c3NhZ2UgKyAiXG4iICsgdHJhY2U7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3RzKCkgewotICB2YXIg
aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXN0YXR1cycpOwotICBpZiAoaCA9PSBu
dWxsKSB7Ci0gICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJyk7Ci0gICAgaC5pZCA9
ICd0ZXN0LXN0YXR1cyc7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKTsKLSAgfQot
ICBoLnRleHRDb250ZW50ID0gIiI7Ci0gIHZhciBsb2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdC1sb2cnKTsKLSAgaWYgKGxvZyA9PSBudWxsKSB7Ci0gICAgbG9nID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgbG9nLmlkID0gJ3Rlc3QtbG9nJzsKLSAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvZyk7Ci0gIH0KLSAgd2hpbGUgKGxvZy5jaGlsZE5vZGVz
Lmxlbmd0aCA+IDApCi0gICAgbG9nLnJlbW92ZUNoaWxkKGxvZy5maXJzdENoaWxkKTsKLQotICB2
YXIgc2V0dXBfYXJncyA9IFtdOwotCi0gIGlmIChUZXN0cy5zdGFydFVuaXQgIT0gbnVsbCkgewot
ICAgIF9fdGVzdExvZ19fID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdHJ5
IHsKLSAgICAgIHNldHVwX2FyZ3MgPSBUZXN0cy5zdGFydFVuaXQoKTsKLSAgICAgIGlmIChfX3Rl
c3RMb2dfXy5jaGlsZE5vZGVzLmxlbmd0aCA+IDApCi0gICAgICAgIGxvZy5hcHBlbmRDaGlsZChf
X3Rlc3RMb2dfXyk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJzdGFydFVu
aXQiLCBmb3JtYXRFcnJvcihlKSk7Ci0gICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18p
OwotICAgICAgcHJpbnRUZXN0U3RhdHVzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICB9Ci0K
LSAgdmFyIHRlc3RzUnVuID0gZmFsc2U7Ci0gIHZhciBhbGxUZXN0c1N1Y2Nlc3NmdWwgPSB0cnVl
OwotCi0gIGZvciAodmFyIGkgaW4gVGVzdHMpIHsKLSAgICBpZiAoaS5zdWJzdHJpbmcoMCw0KSAh
PSAidGVzdCIpIGNvbnRpbnVlOwotICAgIF9fdGVzdExvZ19fID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgX190ZXN0U3VjY2Vzc19fID0gdHJ1ZTsKLSAgICB0cnkgewotICAg
ICAgZG9UZXN0Tm90aWZ5IChpKTsKLSAgICAgIHZhciBhcmdzID0gc2V0dXBfYXJnczsKLSAgICAg
IGlmIChUZXN0cy5zZXR1cCAhPSBudWxsKQotICAgICAgICBhcmdzID0gVGVzdHMuc2V0dXAuYXBw
bHkoVGVzdHMsIHNldHVwX2FyZ3MpOwotICAgICAgVGVzdHNbaV0uYXBwbHkoVGVzdHMsIGFyZ3Mp
OwotICAgICAgaWYgKFRlc3RzLnRlYXJkb3duICE9IG51bGwpCi0gICAgICAgIFRlc3RzLnRlYXJk
b3duLmFwcGx5KFRlc3RzLCBhcmdzKTsKLSAgICB9Ci0gICAgY2F0Y2ggKGUpIHsKLSAgICAgIHRl
c3RGYWlsZWQoaSwgZS5uYW1lLCBmb3JtYXRFcnJvcihlKSk7Ci0gICAgfQotICAgIGlmIChfX3Rl
c3RTdWNjZXNzX18gPT0gZmFsc2UpIHsKLSAgICAgICsrX190ZXN0RmFpbENvdW50X187Ci0gICAg
fQotICAgIHZhciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDInKTsKLSAgICBoLnRleHRD
b250ZW50ID0gaTsKLSAgICBfX3Rlc3RMb2dfXy5pbnNlcnRCZWZvcmUoaCwgX190ZXN0TG9nX18u
Zmlyc3RDaGlsZCk7Ci0gICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsKLSAgICBhbGxU
ZXN0c1N1Y2Nlc3NmdWwgPSBhbGxUZXN0c1N1Y2Nlc3NmdWwgJiYgX190ZXN0U3VjY2Vzc19fID09
IHRydWU7Ci0gICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3MoX190ZXN0U3VjY2Vzc19fLCBp
KTsKLSAgICBkb1Rlc3ROb3RpZnkgKGkrIi0tIisoX190ZXN0U3VjY2Vzc19fPyJPSyI6IkZBSUwi
KSk7Ci0gICAgdGVzdHNSdW4gPSB0cnVlOwotICB9Ci0KLSAgcHJpbnRUZXN0U3RhdHVzKHRlc3Rz
UnVuKTsKLSAgaWYgKFRlc3RzLmVuZFVuaXQgIT0gbnVsbCkgewotICAgIF9fdGVzdExvZ19fID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdHJ5IHsKLSAgICAgIFRlc3RzLmVu
ZFVuaXQuYXBwbHkoVGVzdHMsIHNldHVwX2FyZ3MpOwotICAgICAgaWYgKF9fdGVzdExvZ19fLmNo
aWxkTm9kZXMubGVuZ3RoID4gMCkKLSAgICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19f
KTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgIHRlc3RGYWlsZWQoImVuZFVuaXQiLCBlLm5hbWUs
IGZvcm1hdEVycm9yKGUpKTsKLSAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7Ci0g
ICAgfQotICB9Ci0gIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKGFsbFRlc3RzU3VjY2Vzc2Z1bCwg
ImZpbmlzaGVkIHRlc3RzIik7Ci19Ci0KLWZ1bmN0aW9uIGRvVGVzdE5vdGlmeShuYW1lKSB7Ci0g
IC8vdHJ5wqB7Ci0gIC8vICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gIC8vICB4
aHIub3BlbigiR0VUIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC8iK25hbWUsIHRydWUpOwotICAv
LyAgeGhyLnNlbmQobnVsbCk7Ci0gIC8vfSBjYXRjaChlKSB7fQotfQotCi1mdW5jdGlvbiB0ZXN0
RmFpbGVkKGFzc2VydE5hbWUsIG5hbWUpIHsKLSAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOwotICB2
YXIgZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gIGguYXBwZW5kQ2hpbGQo
ZDEpOwotICBkMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRkFJTDogIikp
OwotICBkMS5zdHlsZS5jb2xvciA9ICJyZWQiOwotICBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKAotICAgICAgbmFtZT09bnVsbCA/IGFzc2VydE5hbWUgOiBuYW1lICsgIiAo
aW4gIiArIGFzc2VydE5hbWUgKyAiKSIpKTsKLSAgZC5hcHBlbmRDaGlsZChoKTsKLSAgdmFyIGFy
Z3MgPSBbXQotICBmb3IgKHZhciBpPTI7IGk8YXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
dmFyIGEgPSBhcmd1bWVudHNbaV07Ci0gICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdwJyk7Ci0gICAgcC5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZSc7Ci0gICAgcC50ZXh0Q29udGVu
dCA9IChhID09IG51bGwpID8gIm51bGwiIDoKLSAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBh
ID09ICdib29sZWFuJyB8fCB0eXBlb2YgYSA9PSAnc3RyaW5nJykgPyBhIDogT2JqZWN0LnRvU291
cmNlKGEpOwotICAgIGFyZ3MucHVzaChwLnRleHRDb250ZW50KTsKLSAgICBkLmFwcGVuZENoaWxk
KHApOwotICB9Ci0gIF9fdGVzdExvZ19fLmFwcGVuZENoaWxkKGQpOwotICBfX3Rlc3RTdWNjZXNz
X18gPSBmYWxzZTsKLSAgZG9UZXN0Tm90aWZ5KFthc3NlcnROYW1lLCBuYW1lXS5jb25jYXQoYXJn
cykuam9pbigiLS0iKSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQYXNzZWQoYXNzZXJ0TmFtZSwgbmFt
ZSkgewotICB2YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICB2YXIgaCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7Ci0gIHZhciBkMSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKLSAgaC5hcHBlbmRDaGlsZChkMSk7Ci0gIGQxLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJQQVNTOiAiKSk7Ci0gIGQxLnN0eWxlLmNvbG9yID0g
ImdyZWVuIjsKLSAgaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKLSAgICAg
IG5hbWU9PW51bGwgPyBhc3NlcnROYW1lIDogbmFtZSArICIgKGluICIgKyBhc3NlcnROYW1lICsg
IikiKSk7Ci0gIGQuYXBwZW5kQ2hpbGQoaCk7Ci0gIHZhciBhcmdzID0gW10KLSAgZm9yICh2YXIg
aT0yOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgIHZhciBhID0gYXJndW1lbnRzW2ld
OwotICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwotICAgIHAuc3R5bGUu
d2hpdGVTcGFjZSA9ICdwcmUnOwotICAgIHAudGV4dENvbnRlbnQgPSAoYSA9PSBudWxsKSA/ICJu
dWxsIiA6Ci0gICAgICAgICAgICAgICAgICAgICh0eXBlb2YgYSA9PSAnYm9vbGVhbicgfHwgdHlw
ZW9mIGEgPT0gJ3N0cmluZycpID8gYSA6IE9iamVjdC50b1NvdXJjZShhKTsKLSAgICBhcmdzLnB1
c2gocC50ZXh0Q29udGVudCk7Ci0gICAgZC5hcHBlbmRDaGlsZChwKTsKLSAgfQotICBfX3Rlc3RM
b2dfXy5hcHBlbmRDaGlsZChkKTsKLSAgZG9UZXN0Tm90aWZ5KFthc3NlcnROYW1lLCBuYW1lXS5j
b25jYXQoYXJncykuam9pbigiLS0iKSk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrVGVzdFN1Y2Nlc3Mo
KSB7Ci0gIHJldHVybiBfX3Rlc3RGYWlsQ291bnRfXyA9PSAwOwotfQotCi13aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCl7Ci0gIGZvciAodmFyIGk9MDsgaTxfX2JhY2ts
b2dfXy5sZW5ndGg7IGkrKykKLSAgICBsb2coX19iYWNrbG9nX19baV0pOwotfSwgZmFsc2UpOwot
Ci1mdW5jdGlvbiBsb2cobXNnKSB7Ci0gIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
cCcpOwotICB2YXIgYSA9IFtdOwotICBmb3IgKHZhciBpPTA7IGk8YXJndW1lbnRzLmxlbmd0aDsg
aSsrKQotICAgIGEucHVzaChhcmd1bWVudHNbaV0pOwotICBwLnRleHRDb250ZW50ID0gYS5qb2lu
KCIsICIpOwotICBpZiAoIV9fdGVzdExvZ19fKSB7Ci0gICAgaWYgKGRvY3VtZW50LmJvZHkpCi0g
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHApOwotICAgIGVsc2UKLSAgICAgIF9fYmFj
a2xvZ19fLnB1c2gobXNnKTsKLSAgfSBlbHNlIHsKLSAgICBfX3Rlc3RMb2dfXy5hcHBlbmRDaGls
ZChwKTsKLSAgfQotfQotCi1mdW5jdGlvbiBwcmludFRlc3RTdGF0dXModGVzdHNSdW4pIHsKLSAg
dmFyIHN0YXR1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXN0YXR1cycpOwotICBp
ZiAodGVzdHNSdW4pIHsKLSAgICBzdGF0dXMuY2xhc3NOYW1lID0gY2hlY2tUZXN0U3VjY2Vzcygp
ID8gJ29rJyA6ICdmYWlsJzsKLSAgICBzdGF0dXMudGV4dENvbnRlbnQgPSBjaGVja1Rlc3RTdWNj
ZXNzKCkgPyAiUEFTUyIgOiAiRkFJTCI7Ci0gIH0gZWxzZSB7Ci0gICAgc3RhdHVzLmNsYXNzTmFt
ZSA9ICdmYWlsJzsKLSAgICBzdGF0dXMudGV4dENvbnRlbnQgPSAiTk8gVEVTVFMgRk9VTkQiOwot
ICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEZhaWwobmFtZSwgZikgewotICBpZiAoZiA9PSBudWxs
KSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQotICB2YXIgciA9IGZhbHNlOwotICB0cnkgeyBm
KCk7IH0gY2F0Y2goZSkgeyByPXRydWU7IH0KLSAgaWYgKCFyKSB7Ci0gICAgdGVzdEZhaWxlZCgi
YXNzZXJ0RmFpbCIsIG5hbWUsIGYpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsKLSAg
ICB0ZXN0UGFzc2VkKCJhc3NlcnRGYWlsIiwgbmFtZSwgZik7Ci0gICAgcmV0dXJuIHRydWU7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0T2sobmFtZSwgZikgewotICBpZiAoZiA9PSBudWxsKSB7
IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQotICB2YXIgciA9IGZhbHNlOwotICB2YXIgZXJyOwot
ICB0cnkgeyBmKCk7IHI9dHJ1ZTsgfSBjYXRjaChlKSB7IGVyciA9IGU7IH0KLSAgaWYgKCFyKSB7
Ci0gICAgdGVzdEZhaWxlZCgiYXNzZXJ0T2siLCBuYW1lLCBmLCBlcnIudG9TdHJpbmcoKSk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotICB9IGVsc2UgewotICAgIHRlc3RQYXNzZWQoImFzc2VydE9rIiwg
bmFtZSwgZik7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0KG5h
bWUsIHYpIHsKLSAgaWYgKHYgPT0gbnVsbCkgeyB2ID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAg
aWYgKCF2KSB7Ci0gICAgdGVzdEZhaWxlZCgiYXNzZXJ0IiwgbmFtZSwgdik7Ci0gICAgcmV0dXJu
IGZhbHNlOwotICB9IGVsc2UgewotICAgIHRlc3RQYXNzZWQoImFzc2VydCIsIG5hbWUsIHYpOwot
ICAgIHJldHVybiB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydFByb3BlcnR5KG5hbWUs
IHYsIHApIHsKLSAgaWYgKHAgPT0gbnVsbCkgeyBwID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBwOyB9
Ci0gIGlmICh2W3BdID09IG51bGwpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRQcm9wZXJ0eSIs
IG5hbWUpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0UGFzc2VkKCJh
c3NlcnRQcm9wZXJ0eSIsIG5hbWUpOwotICAgIHJldHVybiB0cnVlOwotICB9Ci19Ci0KLWZ1bmN0
aW9uIGNvbXBhcmUoYSxiKSB7Ci0gIGlmICh0eXBlb2YgYSA9PSAnbnVtYmVyJyAmJiB0eXBlb2Yg
YiA9PSAnbnVtYmVyJykgewotICAgIHJldHVybiBhID09IGI7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0
dXJuIE9iamVjdC50b1NvdXJjZShhKSA9PSBPYmplY3QudG9Tb3VyY2UoYik7Ci0gIH0KLX0KLQot
ZnVuY3Rpb24gYXNzZXJ0RXF1YWxzKG5hbWUsIHYsIHApIHsKLSAgaWYgKHAgPT0gbnVsbCkgeyBw
ID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9Ci0gIGlmICghY29tcGFyZSh2LCBwKSkgewot
ICAgIHRlc3RGYWlsZWQoImFzc2VydEVxdWFscyIsIG5hbWUsIHYsIHApOwotICAgIHJldHVybiBm
YWxzZTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0UGFzc2VkKCJhc3NlcnRFcXVhbHMiLCBuYW1lLCB2
LCBwKTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBhc3NlcnRBcnJheUVx
dWFscyhuYW1lLCB2LCBwKSB7Ci0gIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYgPSBuYW1lOyBu
YW1lID0gbnVsbDsgfQotICBpZiAoIXYpIHsKLSAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVx
dWFsczogZmlyc3QgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwgcCk7Ci0gICAgcmV0dXJuIGZh
bHNlOwotICB9Ci0gIGlmICghcCkgewotICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxz
OiBzZWNvbmQgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwgcCk7Ci0gICAgcmV0dXJuIGZhbHNl
OwotICB9Ci0gIGlmICh2Lmxlbmd0aCAhPSBwLmxlbmd0aCkgewotICAgIHRlc3RGYWlsZWQoImFz
c2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0g
IGZvciAodmFyIGlpID0gMDsgaWkgPCB2Lmxlbmd0aDsgKytpaSkgewotICAgIGlmICh2W2lpXSAh
PSBwW2lpXSkgewotICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHMiLCBuYW1lLCB2
LCBwKTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLSAgdGVzdFBhc3NlZCgiYXNz
ZXJ0QXJyYXlFcXVhbHMiLCBuYW1lLCB2LCBwKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0
aW9uIGFzc2VydE5vdEVxdWFscyhuYW1lLCB2LCBwKSB7Ci0gIGlmIChwID09IG51bGwpIHsgcCA9
IHY7IHYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQotICBpZiAoY29tcGFyZSh2LCBwKSkgewotICAg
IHRlc3RGYWlsZWQoImFzc2VydE5vdEVxdWFscyIsIG5hbWUsIHYsIHApCi0gICAgcmV0dXJuIGZh
bHNlOwotICB9IGVsc2UgewotICAgIHRlc3RQYXNzZWQoImFzc2VydE5vdEVxdWFscyIsIG5hbWUs
IHYsIHApCi0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLX0KLQotZnVuY3Rpb24gdGltZShlbGVtZW50
SWQsIGYpIHsKLSAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7
Ci0gICAgdmFyIHQwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7Ci0gICAgZigpOwotICAgIHZhciB0
MSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwotICAgIHMudGV4dENvbnRlbnQgPSAnRWxhcHNlZDog
JysodDEtdDApKycgbXMnOwotfQotCi1mdW5jdGlvbiByYW5kb21GbG9hdCAoKSB7Ci0gICAgLy8g
bm90ZSB0aGF0IGluIGZ1enotdGVzdGluZywgdGhpcyBjYW4gdXNlZCBhcyB0aGUgc2l6ZSBvZiBh
IGJ1ZmZlciB0byBhbGxvY2F0ZS4KLSAgICAvLyBzbyBpdCBzaG91bGRuJ3QgcmV0dXJuIGFzdHJv
bm9taWMgdmFsdWVzLiBUaGUgbWF4aW11bSB2YWx1ZSAxMDAwMDAwMCBpcyBhbHJlYWR5IHF1aXRl
IGJpZy4KLSAgICB2YXIgZmFjID0gMS4wOwotICAgIHZhciByID0gTWF0aC5yYW5kb20oKTsKLSAg
ICBpZiAociA8IDAuMjUpCi0gICAgICAgIGZhYyA9IDEwOwotICAgIGVsc2UgaWYgKHIgPCAwLjQp
Ci0gICAgICAgIGZhYyA9IDEwMDsKLSAgICBlbHNlIGlmIChyIDwgMC41KQotICAgICAgICBmYWMg
PSAxMDAwOwotICAgIGVsc2UgaWYgKHIgPCAwLjYpCi0gICAgICAgIGZhYyA9IDEwMDAwMDsKLSAg
ICBlbHNlIGlmIChyIDwgMC43KQotICAgICAgICBmYWMgPSAxMDAwMDAwMDsKLSAgICBlbHNlIGlm
IChyIDwgMC44KQotICAgICAgICBmYWMgPSBOYU47Ci0gICAgcmV0dXJuIC0wLjUqZmFjICsgTWF0
aC5yYW5kb20oKSAqIGZhYzsKLX0KLWZ1bmN0aW9uIHJhbmRvbUZsb2F0RnJvbVJhbmdlKGxvLCBo
aSkgewotICB2YXIgciA9IE1hdGgucmFuZG9tKCk7Ci0gIGlmIChyIDwgMC4wNSkKLSAgICByZXR1
cm4gbG87Ci0gIGVsc2UgaWYgKHIgPiAwLjk1KQotICAgIHJldHVybiBoaTsKLSAgZWxzZQotICAg
IHJldHVybiBsbyArIE1hdGgucmFuZG9tKCkqKGhpLWxvKTsKLX0KLWZ1bmN0aW9uIHJhbmRvbUlu
dCAoc3opIHsKLSAgaWYgKHN6ICE9IG51bGwpCi0gICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5y
YW5kb20oKSpzeik7Ci0gIGVsc2UKLSAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21GbG9hdCgp
KTsKLX0KLWZ1bmN0aW9uIHJhbmRvbUludEZyb21SYW5nZShsbywgaGkpIHsKLSAgcmV0dXJuIE1h
dGguZmxvb3IocmFuZG9tRmxvYXRGcm9tUmFuZ2UobG8sIGhpKSk7Ci19Ci1mdW5jdGlvbiByYW5k
b21MZW5ndGggKCkgewotICAgIHZhciBsID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU2
KTsKLSAgICBpZiAoTWF0aC5yYW5kb20gPCAwLjUpIGwgPSBsIC8gMTA7Ci0gICAgaWYgKE1hdGgu
cmFuZG9tIDwgMC4zKSBsID0gbCAvIDEwOwotICAgIHJldHVybiBsOwotfQotZnVuY3Rpb24gcmFu
ZG9tU21hbGxJbnRBcnJheSAoKSB7Ci0gICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKLSAgICB2
YXIgcyA9IG5ldyBBcnJheShsKTsKLSAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQotICAgICAg
ICBzW2ldID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU2KS0xOwotICAgIHJldHVybiBz
OwotfQotZnVuY3Rpb24gcmFuZG9tRmxvYXRBcnJheSAoKSB7Ci0gICAgdmFyIGwgPSByYW5kb21M
ZW5ndGgoKTsKLSAgICB2YXIgcyA9IG5ldyBBcnJheShsKTsKLSAgICBmb3IgKHZhciBpPTA7IGk8
bDsgaSsrKQotICAgICAgICBzW2ldID0gcmFuZG9tRmxvYXQoKTsKLSAgICByZXR1cm4gczsKLX0K
LWZ1bmN0aW9uIHJhbmRvbUludEFycmF5ICgpIHsKLSAgICB2YXIgbCA9IHJhbmRvbUxlbmd0aCgp
OwotICAgIHZhciBzID0gbmV3IEFycmF5KGwpOwotICAgIGZvciAodmFyIGk9MDsgaTxsOyBpKysp
Ci0gICAgICAgIHNbaV0gPSByYW5kb21GbG9hdCgpOwotICAgIHJldHVybiBzOwotfQotZnVuY3Rp
b24gcmFuZG9tTWl4ZWRBcnJheSAoKSB7Ci0gICAgdmFyIGwgPSByYW5kb21MZW5ndGgoKTsKLSAg
ICB2YXIgcyA9IG5ldyBBcnJheShsKTsKLSAgICBmb3IgKHZhciBpPTA7IGk8bDsgaSsrKQotICAg
ICAgICBzW2ldID0gcmFuZG9tTm9uQXJyYXkoKTsKLSAgICByZXR1cm4gczsKLX0KLWZ1bmN0aW9u
IHJhbmRvbUFycmF5ICgpIHsKLSAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7Ci0gICAgaWYgKHIg
PCAwLjMpCi0gICAgICAgIHJldHVybiByYW5kb21GbG9hdEFycmF5KCk7Ci0gICAgZWxzZSBpZiAo
ciA8IDAuNikKLSAgICAgICAgcmV0dXJuIHJhbmRvbUludEFycmF5KCk7Ci0gICAgZWxzZSBpZiAo
ciA8IDAuOCkKLSAgICAgICAgcmV0dXJuIHJhbmRvbVNtYWxsSW50QXJyYXkoKTsKLSAgICBlbHNl
Ci0gICAgICAgIHJldHVybiByYW5kb21NaXhlZEFycmF5KCk7Ci19Ci1mdW5jdGlvbiByYW5kb21T
dHJpbmcgKCkgewotICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywg
cmFuZG9tU21hbGxJbnRBcnJheSgpKTsKLX0KLWZ1bmN0aW9uIHJhbmRvbUdMQ29uc3RhbnQgKCkg
ewotICAgIHJldHVybiBHTENvbnN0YW50c1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBHTENv
bnN0YW50cy5sZW5ndGgpXTsKLX0KLQotZnVuY3Rpb24gcmFuZG9tTm9uQXJyYXkoKSB7Ci0gICAg
dmFyIHIgPSBNYXRoLnJhbmRvbSgpOwotICAgIGlmIChyIDwgMC4yNSkgewotICAgICAgICByZXR1
cm4gcmFuZG9tRmxvYXQoKTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjYpIHsKLSAgICAgICAgcmV0
dXJuIHJhbmRvbUludCgpOwotICAgIH0gZWxzZSBpZiAociA8IDAuNykgewotICAgICAgICByZXR1
cm4gKHIgPCAwLjY1KTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjg3KSB7Ci0gICAgICAgIHJldHVy
biByYW5kb21TdHJpbmcoKTsKLSAgICB9IGVsc2UgaWYgKHIgPCAwLjk4KSB7Ci0gICAgICAgIHJl
dHVybiByYW5kb21HTENvbnN0YW50KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIG51
bGw7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUFyZyhwb3MsIGNvdW50KSB7
Ci0gICAgaWYgKHBvcyA9PSAwICYmIE1hdGgucmFuZG9tKCkgPCAwLjUpCi0gICAgICAgIHJldHVy
biByYW5kb21HTENvbnN0YW50KCk7Ci0gICAgaWYgKHBvcyA9PSBjb3VudC0xICYmIE1hdGgucmFu
ZG9tKCkgPCAwLjI1KQotICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuNSkKLSAgICAgICAg
ICAgIHJldHVybiByYW5kb21TdHJpbmcoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0
dXJuIHJhbmRvbUFycmF5KCk7Ci0gICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpOwotICAgIGlmIChy
IDwgMC4yNSkgewotICAgICAgICByZXR1cm4gcmFuZG9tRmxvYXQoKTsKLSAgICB9IGVsc2UgaWYg
KHIgPCAwLjYpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRvbUludCgpOwotICAgIH0gZWxzZSBpZiAo
ciA8IDAuNykgewotICAgICAgICByZXR1cm4gKHIgPCAwLjY1KTsKLSAgICB9IGVsc2UgaWYgKHIg
PCAwLjc3KSB7Ci0gICAgICAgIHJldHVybiByYW5kb21TdHJpbmcoKTsKLSAgICB9IGVsc2UgaWYg
KHIgPCAwLjg0KSB7Ci0gICAgICAgIHJldHVybiByYW5kb21BcnJheSgpOwotICAgIH0gZWxzZSBp
ZiAociA8IDAuOTgpIHsKLSAgICAgICAgcmV0dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsKLSAgICB9
IGVsc2UgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci19Ci0KLQotZnVuY3Rpb24gZ2Vu
ZXJhdGVSYW5kb21BcmdzKGNvdW50KSB7Ci0gICAgdmFyIGFyciA9IG5ldyBBcnJheShjb3VudCk7
Ci0gICAgZm9yICh2YXIgaT0wOyBpPGNvdW50OyBpKyspCi0gICAgICAgIGFycltpXSA9IGdlbmVy
YXRlUmFuZG9tQXJnKGksIGNvdW50KTsKLSAgICByZXR1cm4gYXJyOwotfQotCi0vLyBxYyAoYXJn
MWdlbiwgYXJnMmdlbiwgLi4uLCBwcmVkaWNhdGUpCi0vLyBxYyAocmFuZG9tU3RyaW5nLCByYW5k
b21JbnQsIHJhbmRvbUludCwgZnVuY3Rpb24ocyxpLGopeyBzLnN1YnN0cmluZyhpLGopIH0pCi1m
dW5jdGlvbiBxYygpIHsKLX0KLQotR0xDb25zdGFudHMgPSBbCi0xLAotMHgwMDAwMDEwMCwKLTB4
MDAwMDA0MDAsCi0weDAwMDA0MDAwLAotMHgwMDAwLAotMHgwMDAxLAotMHgwMDAyLAotMHgwMDAz
LAotMHgwMDA0LAotMHgwMDA1LAotMHgwMDA2LAotMCwKLTEsCi0weDAzMDAsCi0weDAzMDEsCi0w
eDAzMDIsCi0weDAzMDMsCi0weDAzMDQsCi0weDAzMDUsCi0weDAzMDYsCi0weDAzMDcsCi0weDAz
MDgsCi0weDgwMDYsCi0weDgwMDksCi0weDgwMDksCi0weDg4M0QsCi0weDgwMEEsCi0weDgwMEIs
Ci0weDgwQzgsCi0weDgwQzksCi0weDgwQ0EsCi0weDgwQ0IsCi0weDgwMDEsCi0weDgwMDIsCi0w
eDgwMDMsCi0weDgwMDQsCi0weDgwMDUsCi0weDg4OTIsCi0weDg4OTMsCi0weDg4OTQsCi0weDg4
OTUsCi0weDg4RTAsCi0weDg4RTQsCi0weDg4RTgsCi0weDg3NjQsCi0weDg3NjUsCi0weDg2MjYs
Ci0weDA0MDQsCi0weDA0MDUsCi0weDA0MDgsCi0weDBERTEsCi0weDBCNDQsCi0weDBCRTIsCi0w
eDBCRDAsCi0weDBCOTAsCi0weDBCNzEsCi0weDBDMTEsCi0weDgwMzcsCi0weDgwOUUsCi0weDgw
QTAsCi0wLAotMHgwNTAwLAotMHgwNTAxLAotMHgwNTAyLAotMHgwNTA1LAotMHgwOTAwLAotMHgw
OTAxLAotMHgwQjIxLAotMHg4NDZELAotMHg4NDZFLAotMHgwQjQ1LAotMHgwQjQ2LAotMHgwQjcw
LAotMHgwQjcyLAotMHgwQjczLAotMHgwQjc0LAotMHgwQjkxLAotMHgwQjkyLAotMHgwQjk0LAot
MHgwQjk1LAotMHgwQjk2LAotMHgwQjk3LAotMHgwQjkzLAotMHgwQjk4LAotMHg4ODAwLAotMHg4
ODAxLAotMHg4ODAyLAotMHg4ODAzLAotMHg4Q0EzLAotMHg4Q0E0LAotMHg4Q0E1LAotMHgwQkEy
LAotMHgwQzEwLAotMHgwQzIyLAotMHgwQzIzLAotMHgwQ0Y1LAotMHgwRDA1LAotMHgwRDMzLAot
MHgwRDNBLAotMHgwRDUwLAotMHgwRDUyLAotMHgwRDUzLAotMHgwRDU0LAotMHgwRDU1LAotMHgw
RDU2LAotMHgwRDU3LAotMHgyQTAwLAotMHg4MDM4LAotMHg4MDY5LAotMHg4MEE4LAotMHg4MEE5
LAotMHg4MEFBLAotMHg4MEFCLAotMHg4NkEyLAotMHg4NkEzLAotMHgxMTAwLAotMHgxMTAxLAot
MHgxMTAyLAotMHg4MTkyLAotMHgxNDAwLAotMHgxNDAxLAotMHgxNDAyLAotMHgxNDAzLAotMHgx
NDA0LAotMHgxNDA1LAotMHgxNDA2LAotMHgxNDBDLAotMHgxOTAyLAotMHgxOTA2LAotMHgxOTA3
LAotMHgxOTA4LAotMHgxOTA5LAotMHgxOTBBLAotMHg4MDMzLAotMHg4MDM0LAotMHg4MzYzLAot
MHg4QjMwLAotMHg4QjMxLAotMHg4ODY5LAotMHg4REZCLAotMHg4REZDLAotMHg4QjRELAotMHg4
QjRDLAotMHg4ODcyLAotMHg4REZELAotMHg4QjRGLAotMHg4QjgwLAotMHg4QjgyLAotMHg4Qjgz
LAotMHg4Qjg1LAotMHg4Qjg2LAotMHg4Qjg3LAotMHg4Qjg5LAotMHg4QjhBLAotMHg4QjhDLAot
MHg4QjhELAotMHgwMjAwLAotMHgwMjAxLAotMHgwMjAyLAotMHgwMjAzLAotMHgwMjA0LAotMHgw
MjA1LAotMHgwMjA2LAotMHgwMjA3LAotMHgxRTAwLAotMHgxRTAxLAotMHgxRTAyLAotMHgxRTAz
LAotMHgxNTBBLAotMHg4NTA3LAotMHg4NTA4LAotMHgxRjAwLAotMHgxRjAxLAotMHgxRjAyLAot
MHgxRjAzLAotMHgyNjAwLAotMHgyNjAxLAotMHgyNzAwLAotMHgyNzAxLAotMHgyNzAyLAotMHgy
NzAzLAotMHgyODAwLAotMHgyODAxLAotMHgyODAyLAotMHgyODAzLAotMHgxNzAyLAotMHg4NTEz
LAotMHg4NTE0LAotMHg4NTE1LAotMHg4NTE2LAotMHg4NTE3LAotMHg4NTE4LAotMHg4NTE5LAot
MHg4NTFBLAotMHg4NTFDLAotMHg4NEMwLAotMHg4NEMxLAotMHg4NEMyLAotMHg4NEMzLAotMHg4
NEM0LAotMHg4NEM1LAotMHg4NEM2LAotMHg4NEM3LAotMHg4NEM4LAotMHg4NEM5LAotMHg4NENB
LAotMHg4NENCLAotMHg4NENDLAotMHg4NENELAotMHg4NENFLAotMHg4NENGLAotMHg4NEQwLAot
MHg4NEQxLAotMHg4NEQyLAotMHg4NEQzLAotMHg4NEQ0LAotMHg4NEQ1LAotMHg4NEQ2LAotMHg4
NEQ3LAotMHg4NEQ4LAotMHg4NEQ5LAotMHg4NERBLAotMHg4NERCLAotMHg4NERDLAotMHg4NERE
LAotMHg4NERFLAotMHg4NERGLAotMHg4NEUwLAotMHgyOTAxLAotMHg4MTJGLAotMHg4MzcwLAot
MHg4QjUwLAotMHg4QjUxLAotMHg4QjUyLAotMHg4QjUzLAotMHg4QjU0LAotMHg4QjU1LAotMHg4
QjU2LAotMHg4QjU3LAotMHg4QjU4LAotMHg4QjU5LAotMHg4QjVBLAotMHg4QjVCLAotMHg4QjVD
LAotMHg4QjVFLAotMHg4QjYwLAotMHg4NjIyLAotMHg4NjIzLAotMHg4NjI0LAotMHg4NjI1LAot
MHg4ODZBLAotMHg4NjQ1LAotMHg4ODlGLAotMHg4QjlBLAotMHg4QjlCLAotMHg4QjgxLAotMHg4
Qjg0LAotMHg4Qjg4LAotMHg4REZBLAotMHg4REY4LAotMHg4REY5LAotMHg4REYwLAotMHg4REYx
LAotMHg4REYyLAotMHg4REYzLAotMHg4REY0LAotMHg4REY1LAotMHg4RDQwLAotMHg4RDQxLAot
MHg4MDU2LAotMHg4MDU3LAotMHg4RDYyLAotMHg4MUE1LAotMHgxOTAxLAotMHg4RDQ4LAotMHg4
RDQyLAotMHg4RDQzLAotMHg4RDQ0LAotMHg4RDUwLAotMHg4RDUxLAotMHg4RDUyLAotMHg4RDUz
LAotMHg4RDU0LAotMHg4RDU1LAotMHg4Q0QwLAotMHg4Q0QxLAotMHg4Q0QyLAotMHg4Q0QzLAot
MHg4Q0UwLAotMHg4RDAwLAotMHg4RDIwLAotMCwKLTB4OENENSwKLTB4OENENiwKLTB4OENENywK
LTB4OENEOSwKLTB4OENERCwKLTB4OENBNiwKLTB4OENBNywKLTB4ODRFOCwKLTB4MDUwNiwKLTB4
ODA5RAotXTsKLQotZnVuY3Rpb24gcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3Moc3VjY2Vzcywg
bXNnKSB7Ci0gIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLSAgICB3aW5k
b3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cyh3aW5kb3cubG9jYXRpb24u
cGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gbm90aWZ5RmluaXNo
ZWRUb0hhcm5lc3MoKSB7Ci0gIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsK
LSAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQod2luZG93
LmxvY2F0aW9uLnBhdGhuYW1lKTsKLSAgfQotfQotCi1mdW5jdGlvbiBpbml0VGVzdHMoKSB7Ci0g
IGlmIChUZXN0cy5tZXNzYWdlICE9IG51bGwpIHsKLSAgICB2YXIgaCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0LW1lc3NhZ2UnKTsKLSAgICBpZiAoaCA9PSBudWxsKSB7Ci0gICAgICBo
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwotICAgICAgaC5pZCA9ICd0ZXN0LW1lc3Nh
Z2UnOwotICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaCwgZG9jdW1lbnQuYm9keS5m
aXJzdENoaWxkKTsKLSAgICB9Ci0gICAgaC50ZXh0Q29udGVudCA9IFRlc3RzLm1lc3NhZ2U7Ci0g
IH0KLSAgaWYgKFRlc3RzLmF1dG9ydW4pIHsKLSAgICBydW5UZXN0cygpOwotICB9IGVsc2Ugewot
ICAgIHZhciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtcnVuJyk7Ci0gICAgaWYg
KGggPT0gbnVsbCkgewotICAgICAgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7
Ci0gICAgICBoLnR5cGUgPSAnc3VibWl0JzsKLSAgICAgIGgudmFsdWUgPSAiUnVuIHRlc3RzIjsK
LSAgICAgIGguYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7Ci0gICAgICAg
IHJ1blRlc3RzKCk7Ci0gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICB9LCBmYWxz
ZSk7Ci0gICAgICBoLmlkID0gJ3Rlc3QtcnVuJzsKLSAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0
QmVmb3JlKGgsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7Ci0gICAgfQotICAgIGgudGV4dENv
bnRlbnQgPSBUZXN0cy5tZXNzYWdlOwotICB9Ci0KLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBmdW5jdGlvbigpewotICAvLyBsZXQgdGhlIGJyb3dzZXIgaG9wZWZ1bGx5IGZp
bmlzaCB1cGRhdGluZyB0aGUgZ2wgY2FudmFzIHN1cmZhY2VzIGlmIHdlIGFyZSBnaXZlbiBhIGRl
bGF5Ci0gIGlmIChUZXN0cy5kZWxheSkKLSAgICBzZXRUaW1lb3V0KGluaXRUZXN0cywgVGVzdHMu
ZGVsYXkpOwotICBlbHNlCi0gICAgaW5pdFRlc3RzKCkKLX0sIGZhbHNlKTsKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
dXRpbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM2NmNhZmU1YjRkYTY4ZDcy
ZTAxZjcxNzMzY2Q1Y2Y1MzE1YjgyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEyNTIgKzAsMCBAQAotLyoKLVV0aWxpdGllcyBmb3IgdGhlIE9wZW5HTCBFUyAyLjAg
SFRNTCBDYW52YXMgY29udGV4dAotKi8KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoq
ICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl
ZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJp
YWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoq
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi1mdW5j
dGlvbiBsb2FkVGV4dHVyZShnbCwgZWxlbSwgbWlwbWFwcykgewotICB2YXIgdGV4ID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBn
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGVsZW0pOwotICBpZiAobWlwbWFwcyAhPSBmYWxzZSkKLSAgICBnbC5nZW5lcmF0
ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwot
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwg
Z2wuTElORUFSKTsKLSAgaWYgKG1pcG1hcHMpCi0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTElORUFSKTsK
LSAgZWxzZQotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICByZXR1cm4gdGV4OwotfQotCi1mdW5jdGlvbiBnZXRT
aGFkZXIoZ2wsIGlkKSB7Ci0gIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCk7Ci0gIGlmICghc2hhZGVyU2NyaXB0KSB7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJO
byBzaGFkZXIgZWxlbWVudCB3aXRoIGlkOiAiK2lkKSk7Ci0gIH0KLQotICB2YXIgc3RyID0gIiI7
Ci0gIHZhciBrID0gc2hhZGVyU2NyaXB0LmZpcnN0Q2hpbGQ7Ci0gIHdoaWxlIChrKSB7Ci0gICAg
aWYgKGsubm9kZVR5cGUgPT0gMykKLSAgICAgIHN0ciArPSBrLnRleHRDb250ZW50OwotICAgIGsg
PSBrLm5leHRTaWJsaW5nOwotICB9Ci0KLSAgdmFyIHNoYWRlcjsKLSAgaWYgKHNoYWRlclNjcmlw
dC50eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50IikgewotICAgIHNoYWRlciA9IGdsLmNyZWF0
ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOwotICB9IGVsc2UgaWYgKHNoYWRlclNjcmlwdC50
eXBlID09ICJ4LXNoYWRlci94LXZlcnRleCIpIHsKLSAgICBzaGFkZXIgPSBnbC5jcmVhdGVTaGFk
ZXIoZ2wuVkVSVEVYX1NIQURFUik7Ci0gIH0gZWxzZSB7Ci0gICAgdGhyb3cobmV3IEVycm9yKCJV
bmtub3duIHNoYWRlciB0eXBlICIrc2hhZGVyU2NyaXB0LnR5cGUpKTsKLSAgfQotCi0gIGdsLnNo
YWRlclNvdXJjZShzaGFkZXIsIHN0cik7Ci0gIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsKLQot
ICBpZiAoZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpICE9
IDEpIHsKLSAgICB2YXIgaWxvZyA9IGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKLSAgICBn
bC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKLSAgICB0aHJvdyhuZXcgRXJyb3IoIkZhaWxlZCB0byBj
b21waWxlIHNoYWRlciAiK3NoYWRlclNjcmlwdC5pZCArICIsIFNoYWRlciBpbmZvIGxvZzogIiAr
IGlsb2cpKTsKLSAgfQotICByZXR1cm4gc2hhZGVyOwotfQotCi1mdW5jdGlvbiBsb2FkU2hhZGVy
QXJyYXkoZ2wsIHNoYWRlcnMpIHsKLSAgdmFyIGlkID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICB2
YXIgc2hhZGVyT2JqcyA9IFtdOwotICBmb3IgKHZhciBpPTA7IGk8c2hhZGVycy5sZW5ndGg7ICsr
aSkgewotICAgIHRyeSB7Ci0gICAgICB2YXIgc2ggPSBnZXRTaGFkZXIoZ2wsIHNoYWRlcnNbaV0p
OwotICAgICAgc2hhZGVyT2Jqcy5wdXNoKHNoKTsKLSAgICAgIGdsLmF0dGFjaFNoYWRlcihpZCwg
c2gpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIHZhciBwciA9IHtwcm9ncmFtOiBpZCwgc2hh
ZGVyczogc2hhZGVyT2Jqc307Ci0gICAgICBkZWxldGVTaGFkZXIoZ2wsIHByKTsKLSAgICAgIHRo
cm93IChlKTsKLSAgICB9Ci0gIH0KLSAgdmFyIHByb2cgPSB7cHJvZ3JhbTogaWQsIHNoYWRlcnM6
IHNoYWRlck9ianN9OwotICBnbC5saW5rUHJvZ3JhbShpZCk7Ci0gIGdsLnZhbGlkYXRlUHJvZ3Jh
bShpZCk7Ci0gIGlmIChnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKGlkLCBnbC5MSU5LX1NUQVRVUykg
IT0gMSkgewotICAgIGRlbGV0ZVNoYWRlcihnbCxwcm9nKTsKLSAgICB0aHJvdyhuZXcgRXJyb3Io
IkZhaWxlZCB0byBsaW5rIHNoYWRlciIpKTsKLSAgfQotICBpZiAoZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihpZCwgZ2wuVkFMSURBVEVfU1RBVFVTKSAhPSAxKSB7Ci0gICAgZGVsZXRlU2hhZGVyKGds
LHByb2cpOwotICAgIHRocm93KG5ldyBFcnJvcigiRmFpbGVkIHRvIHZhbGlkYXRlIHNoYWRlciIp
KTsKLSAgfQotICByZXR1cm4gcHJvZzsKLX0KLWZ1bmN0aW9uIGxvYWRTaGFkZXIoZ2wpIHsKLSAg
dmFyIHNoID0gW107Ci0gIGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyArK2kpCi0g
ICAgc2gucHVzaChhcmd1bWVudHNbaV0pOwotICByZXR1cm4gbG9hZFNoYWRlckFycmF5KGdsLCBz
aCk7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0ZVNoYWRlcihnbCwgc2gpIHsKLSAgZ2wudXNlUHJvZ3Jh
bShudWxsKTsKLSAgc2guc2hhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHMpewotICAgIGdsLmRldGFj
aFNoYWRlcihzaC5wcm9ncmFtLCBzKTsKLSAgICBnbC5kZWxldGVTaGFkZXIocyk7Ci0gIH0pOwot
ICBnbC5kZWxldGVQcm9ncmFtKHNoLnByb2dyYW0pOwotfQotCi1mdW5jdGlvbiBnZXRHTEVycm9y
QXNTdHJpbmcoY3R4LCBlcnIpIHsKLSAgaWYgKGVyciA9PT0gY3R4Lk5PX0VSUk9SKSB7Ci0gICAg
cmV0dXJuICJOT19FUlJPUiI7Ci0gIH0KLSAgZm9yICh2YXIgbmFtZSBpbiBjdHgpIHsKLSAgICBp
ZiAoY3R4W25hbWVdID09PSBlcnIpIHsKLSAgICAgIHJldHVybiBuYW1lOwotICAgIH0KLSAgfQot
ICByZXR1cm4gZXJyLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrRXJyb3IoZ2wsIG1z
ZykgewotICB2YXIgZSA9IGdsLmdldEVycm9yKCk7Ci0gIGlmIChlICE9IGdsLk5PX0VSUk9SKSB7
Ci0gICAgbG9nKCJFcnJvciAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlKSArICIgYXQgIiAr
IG1zZyk7Ci0gIH0KLSAgcmV0dXJuIGU7Ci19Ci0KLWZ1bmN0aW9uIHRocm93RXJyb3IoZ2wsIG1z
ZykgewotICB2YXIgZSA9IGdsLmdldEVycm9yKCk7Ci0gIGlmIChlICE9IDApIHsKLSAgICB0aHJv
dyhuZXcgRXJyb3IoIkVycm9yICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGUpICsgIiBhdCAi
ICsgbXNnKSk7Ci0gIH0KLX0KLQotTWF0aC5jb3QgPSBmdW5jdGlvbih6KSB7IHJldHVybiAxLjAg
LyBNYXRoLnRhbih6KTsgfQotCi0vKgotICBNYXRyaXggdXRpbGl0aWVzLCB1c2luZyB0aGUgT3Bl
bkdMIGVsZW1lbnQgb3JkZXIgd2hlcmUKLSAgdGhlIGxhc3QgNCBlbGVtZW50cyBhcmUgdGhlIHRy
YW5zbGF0aW9uIGNvbHVtbi4KLQotICBVc2VzIGZsYXQgYXJyYXlzIGFzIG1hdHJpY2VzIGZvciBw
ZXJmb3JtYW5jZS4KLQotICBNb3N0IG9wZXJhdGlvbnMgaGF2ZSBpbi1wbGFjZSB2YXJpYW50cyB0
byBhdm9pZCBhbGxvY2F0aW5nIHRlbXBvcmFyeSBtYXRyaWNlcy4KLQotICBOYW1pbmcgbG9naWM6
Ci0gICAgTWF0cml4Lm1ldGhvZCBvcGVyYXRlcyBvbiBhIDR4NCBNYXRyaXggYW5kIHJldHVybnMg
YSBuZXcgTWF0cml4LgotICAgIE1hdHJpeC5tZXRob2QzeDMgb3BlcmF0ZXMgb24gYSAzeDMgTWF0
cml4IGFuZCByZXR1cm5zIGEgbmV3IE1hdHJpeC4gTm90IGFsbCBvcGVyYXRpb25zIGhhdmUgYSAz
eDMgdmVyc2lvbiAoYXMgM3gzIGlzIHVzdWFsbHkgb25seSB1c2VkIGZvciB0aGUgbm9ybWFsIG1h
dHJpeDogTWF0cml4LnRyYW5zcG9zZTN4MyhNYXRyaXguaW52ZXJzZVRvM3gzKG1hdDR4NCkpKQot
ICAgIE1hdHJpeC5tZXRob2RbM3gzXUluUGxhY2UoYXJncywgdGFyZ2V0KSBzdG9yZXMgaXRzIHJl
c3VsdCBpbiB0aGUgdGFyZ2V0IG1hdHJpeC4KLQotICAgIE1hdHJpeC5zY2FsZShbc3gsIHN5LCBz
el0pIC0tIG5vbi11bmlmb3JtIHNjYWxlIGJ5IHZlY3RvcgotICAgIE1hdHJpeC5zY2FsZTEocykg
ICAgICAgICAgIC0tIHVuaWZvcm0gc2NhbGUgYnkgc2NhbGFyCi0gICAgTWF0cml4LnNjYWxlMyhz
eCwgc3ksIHN6KSAgLS0gbm9uLXVuaWZvcm0gc2NhbGUgYnkgc2NhbGFycwotCi0gICAgRGl0dG8g
Zm9yIHRyYW5zbGF0ZS4KLSovCi1NYXRyaXggPSB7Ci0gIGlkZW50aXR5IDogWwotICAgIDEuMCwg
MC4wLCAwLjAsIDAuMCwKLSAgICAwLjAsIDEuMCwgMC4wLCAwLjAsCi0gICAgMC4wLCAwLjAsIDEu
MCwgMC4wLAotICAgIDAuMCwgMC4wLCAwLjAsIDEuMAotICBdLAotCi0gIG5ld0lkZW50aXR5IDog
ZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIDEuMCwgMC4wLCAwLjAsIDAuMCwKLSAg
ICAgIDAuMCwgMS4wLCAwLjAsIDAuMCwKLSAgICAgIDAuMCwgMC4wLCAxLjAsIDAuMCwKLSAgICAg
IDAuMCwgMC4wLCAwLjAsIDEuMAotICAgIF07Ci0gIH0sCi0KLSAgbmV3SWRlbnRpdHkzeDMgOiBm
dW5jdGlvbigpIHsKLSAgICByZXR1cm4gWwotICAgICAgMS4wLCAwLjAsIDAuMCwKLSAgICAgIDAu
MCwgMS4wLCAwLjAsCi0gICAgICAwLjAsIDAuMCwgMS4wCi0gICAgXTsKLSAgfSwKLQotICBjb3B5
TWF0cml4IDogZnVuY3Rpb24oc3JjLCBkc3QpIHsKLSAgICBmb3IgKHZhciBpPTA7IGk8MTY7IGkr
KykgZHN0W2ldID0gc3JjW2ldOwotICAgIHJldHVybiBkc3Q7Ci0gIH0sCi0KLSAgdG8zeDMgOiBm
dW5jdGlvbihtKSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIG1bMF0sIG1bMV0sIG1bMl0sCi0gICAg
ICBtWzRdLCBtWzVdLCBtWzZdLAotICAgICAgbVs4XSwgbVs5XSwgbVsxMF0KLSAgICBdOwotICB9
LAotCi0gIC8vIG9ydGhvbm9ybWFsIG1hdHJpeCBpbnZlcnNlCi0gIGludmVyc2VPTiA6IGZ1bmN0
aW9uKG0pIHsKLSAgICB2YXIgbiA9IHRoaXMudHJhbnNwb3NlNHg0KG0pOwotICAgIHZhciB0ID0g
W21bMTJdLCBtWzEzXSwgbVsxNF1dOwotICAgIG5bM10gPSBuWzddID0gblsxMV0gPSAwOwotICAg
IG5bMTJdID0gLVZlYzMuZG90KFtuWzBdLCBuWzRdLCBuWzhdXSwgdCk7Ci0gICAgblsxM10gPSAt
VmVjMy5kb3QoW25bMV0sIG5bNV0sIG5bOV1dLCB0KTsKLSAgICBuWzE0XSA9IC1WZWMzLmRvdChb
blsyXSwgbls2XSwgblsxMF1dLCB0KTsKLSAgICByZXR1cm4gbjsKLSAgfSwKLQotICBpbnZlcnNl
VG8zeDMgOiBmdW5jdGlvbihtKSB7Ci0gICAgcmV0dXJuIHRoaXMuaW52ZXJzZTR4NHRvM3gzSW5Q
bGFjZShtLCB0aGlzLm5ld0lkZW50aXR5M3gzKCkpOwotICB9LAotCi0gIGludmVyc2VUbzN4M0lu
UGxhY2UgOiBmdW5jdGlvbihtLG4pIHsKLSAgICB2YXIgYTExID0gbVsxMF0qbVs1XS1tWzZdKm1b
OV0sCi0gICAgICAgIGEyMSA9IC1tWzEwXSptWzFdK21bMl0qbVs5XSwKLSAgICAgICAgYTMxID0g
bVs2XSptWzFdLW1bMl0qbVs1XSwKLSAgICAgICAgYTEyID0gLW1bMTBdKm1bNF0rbVs2XSptWzhd
LAotICAgICAgICBhMjIgPSBtWzEwXSptWzBdLW1bMl0qbVs4XSwKLSAgICAgICAgYTMyID0gLW1b
Nl0qbVswXSttWzJdKm1bNF0sCi0gICAgICAgIGExMyA9IG1bOV0qbVs0XS1tWzVdKm1bOF0sCi0g
ICAgICAgIGEyMyA9IC1tWzldKm1bMF0rbVsxXSptWzhdLAotICAgICAgICBhMzMgPSBtWzVdKm1b
MF0tbVsxXSptWzRdOwotICAgIHZhciBkZXQgPSBtWzBdKihhMTEpICsgbVsxXSooYTEyKSArIG1b
Ml0qKGExMyk7Ci0gICAgaWYgKGRldCA9PSAwKSAvLyBubyBpbnZlcnNlCi0gICAgICByZXR1cm4g
WzEsMCwwLDAsMSwwLDAsMCwxXTsKLSAgICB2YXIgaWRldCA9IDEgLyBkZXQ7Ci0gICAgblswXSA9
IGlkZXQqYTExOwotICAgIG5bMV0gPSBpZGV0KmEyMTsKLSAgICBuWzJdID0gaWRldCphMzE7Ci0g
ICAgblszXSA9IGlkZXQqYTEyOwotICAgIG5bNF0gPSBpZGV0KmEyMjsKLSAgICBuWzVdID0gaWRl
dCphMzI7Ci0gICAgbls2XSA9IGlkZXQqYTEzOwotICAgIG5bN10gPSBpZGV0KmEyMzsKLSAgICBu
WzhdID0gaWRldCphMzM7Ci0gICAgcmV0dXJuIG47Ci0gIH0sCi0KLSAgaW52ZXJzZTN4MyA6IGZ1
bmN0aW9uKG0pIHsKLSAgICByZXR1cm4gdGhpcy5pbnZlcnNlM3gzSW5QbGFjZShtLCB0aGlzLm5l
d0lkZW50aXR5M3gzKCkpOwotICB9LAotCi0gIGludmVyc2UzeDNJblBsYWNlIDogZnVuY3Rpb24o
bSxuKSB7Ci0gICAgdmFyIGExMSA9IG1bOF0qbVs0XS1tWzVdKm1bN10sCi0gICAgICAgIGEyMSA9
IC1tWzhdKm1bMV0rbVsyXSptWzddLAotICAgICAgICBhMzEgPSBtWzVdKm1bMV0tbVsyXSptWzRd
LAotICAgICAgICBhMTIgPSAtbVs4XSptWzNdK21bNV0qbVs2XSwKLSAgICAgICAgYTIyID0gbVs4
XSptWzBdLW1bMl0qbVs2XSwKLSAgICAgICAgYTMyID0gLW1bNV0qbVswXSttWzJdKm1bM10sCi0g
ICAgICAgIGExMyA9IG1bN10qbVs0XS1tWzRdKm1bOF0sCi0gICAgICAgIGEyMyA9IC1tWzddKm1b
MF0rbVsxXSptWzZdLAotICAgICAgICBhMzMgPSBtWzRdKm1bMF0tbVsxXSptWzNdOwotICAgIHZh
ciBkZXQgPSBtWzBdKihhMTEpICsgbVsxXSooYTEyKSArIG1bMl0qKGExMyk7Ci0gICAgaWYgKGRl
dCA9PSAwKSAvLyBubyBpbnZlcnNlCi0gICAgICByZXR1cm4gWzEsMCwwLDAsMSwwLDAsMCwxXTsK
LSAgICB2YXIgaWRldCA9IDEgLyBkZXQ7Ci0gICAgblswXSA9IGlkZXQqYTExOwotICAgIG5bMV0g
PSBpZGV0KmEyMTsKLSAgICBuWzJdID0gaWRldCphMzE7Ci0gICAgblszXSA9IGlkZXQqYTEyOwot
ICAgIG5bNF0gPSBpZGV0KmEyMjsKLSAgICBuWzVdID0gaWRldCphMzI7Ci0gICAgbls2XSA9IGlk
ZXQqYTEzOwotICAgIG5bN10gPSBpZGV0KmEyMzsKLSAgICBuWzhdID0gaWRldCphMzM7Ci0gICAg
cmV0dXJuIG47Ci0gIH0sCi0KLSAgZnJ1c3R1bSA6IGZ1bmN0aW9uIChsZWZ0LCByaWdodCwgYm90
dG9tLCB0b3AsIHpuZWFyLCB6ZmFyKSB7Ci0gICAgdmFyIFggPSAyKnpuZWFyLyhyaWdodC1sZWZ0
KTsKLSAgICB2YXIgWSA9IDIqem5lYXIvKHRvcC1ib3R0b20pOwotICAgIHZhciBBID0gKHJpZ2h0
K2xlZnQpLyhyaWdodC1sZWZ0KTsKLSAgICB2YXIgQiA9ICh0b3ArYm90dG9tKS8odG9wLWJvdHRv
bSk7Ci0gICAgdmFyIEMgPSAtKHpmYXIrem5lYXIpLyh6ZmFyLXpuZWFyKTsKLSAgICB2YXIgRCA9
IC0yKnpmYXIqem5lYXIvKHpmYXItem5lYXIpOwotCi0gICAgcmV0dXJuIFsKLSAgICAgIFgsIDAs
IDAsIDAsCi0gICAgICAwLCBZLCAwLCAwLAotICAgICAgQSwgQiwgQywgLTEsCi0gICAgICAwLCAw
LCBELCAwCi0gICAgXTsKLSB9LAotCi0gIHBlcnNwZWN0aXZlIDogZnVuY3Rpb24gKGZvdnksIGFz
cGVjdCwgem5lYXIsIHpmYXIpIHsKLSAgICB2YXIgeW1heCA9IHpuZWFyICogTWF0aC50YW4oZm92
eSAqIE1hdGguUEkgLyAzNjAuMCk7Ci0gICAgdmFyIHltaW4gPSAteW1heDsKLSAgICB2YXIgeG1p
biA9IHltaW4gKiBhc3BlY3Q7Ci0gICAgdmFyIHhtYXggPSB5bWF4ICogYXNwZWN0OwotCi0gICAg
cmV0dXJuIHRoaXMuZnJ1c3R1bSh4bWluLCB4bWF4LCB5bWluLCB5bWF4LCB6bmVhciwgemZhcik7
Ci0gIH0sCi0KLSAgbXVsNHg0IDogZnVuY3Rpb24gKGEsYikgewotICAgIHJldHVybiB0aGlzLm11
bDR4NEluUGxhY2UoYSxiLHRoaXMubmV3SWRlbnRpdHkoKSk7Ci0gIH0sCi0KLSAgbXVsNHg0SW5Q
bGFjZSA6IGZ1bmN0aW9uIChhLCBiLCBjKSB7Ci0gICAgICAgIGNbMF0gPSAgIGJbMF0gKiBhWzBd
ICsKLSAgICAgICAgICAgICAgICAgYlswKzFdICogYVs0XSArCi0gICAgICAgICAgICAgICAgIGJb
MCsyXSAqIGFbOF0gKwotICAgICAgICAgICAgICAgICBiWzArM10gKiBhWzEyXTsKLSAgICAgICAg
Y1swKzFdID0gYlswXSAqIGFbMV0gKwotICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzVdICsK
LSAgICAgICAgICAgICAgICAgYlswKzJdICogYVs5XSArCi0gICAgICAgICAgICAgICAgIGJbMCsz
XSAqIGFbMTNdOwotICAgICAgICBjWzArMl0gPSBiWzBdICogYVsyXSArCi0gICAgICAgICAgICAg
ICAgIGJbMCsxXSAqIGFbNl0gKwotICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzEwXSArCi0g
ICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTRdOwotICAgICAgICBjWzArM10gPSBiWzBdICog
YVszXSArCi0gICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFbN10gKwotICAgICAgICAgICAgICAg
ICBiWzArMl0gKiBhWzExXSArCi0gICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTVdOwotICAg
ICAgICBjWzRdID0gICBiWzRdICogYVswXSArCi0gICAgICAgICAgICAgICAgIGJbNCsxXSAqIGFb
NF0gKwotICAgICAgICAgICAgICAgICBiWzQrMl0gKiBhWzhdICsKLSAgICAgICAgICAgICAgICAg
Yls0KzNdICogYVsxMl07Ci0gICAgICAgIGNbNCsxXSA9IGJbNF0gKiBhWzFdICsKLSAgICAgICAg
ICAgICAgICAgYls0KzFdICogYVs1XSArCi0gICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFbOV0g
KwotICAgICAgICAgICAgICAgICBiWzQrM10gKiBhWzEzXTsKLSAgICAgICAgY1s0KzJdID0gYls0
XSAqIGFbMl0gKwotICAgICAgICAgICAgICAgICBiWzQrMV0gKiBhWzZdICsKLSAgICAgICAgICAg
ICAgICAgYls0KzJdICogYVsxMF0gKwotICAgICAgICAgICAgICAgICBiWzQrM10gKiBhWzE0XTsK
LSAgICAgICAgY1s0KzNdID0gYls0XSAqIGFbM10gKwotICAgICAgICAgICAgICAgICBiWzQrMV0g
KiBhWzddICsKLSAgICAgICAgICAgICAgICAgYls0KzJdICogYVsxMV0gKwotICAgICAgICAgICAg
ICAgICBiWzQrM10gKiBhWzE1XTsKLSAgICAgICAgY1s4XSA9ICAgYls4XSAqIGFbMF0gKwotICAg
ICAgICAgICAgICAgICBiWzgrMV0gKiBhWzRdICsKLSAgICAgICAgICAgICAgICAgYls4KzJdICog
YVs4XSArCi0gICAgICAgICAgICAgICAgIGJbOCszXSAqIGFbMTJdOwotICAgICAgICBjWzgrMV0g
PSBiWzhdICogYVsxXSArCi0gICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNV0gKwotICAgICAg
ICAgICAgICAgICBiWzgrMl0gKiBhWzldICsKLSAgICAgICAgICAgICAgICAgYls4KzNdICogYVsx
M107Ci0gICAgICAgIGNbOCsyXSA9IGJbOF0gKiBhWzJdICsKLSAgICAgICAgICAgICAgICAgYls4
KzFdICogYVs2XSArCi0gICAgICAgICAgICAgICAgIGJbOCsyXSAqIGFbMTBdICsKLSAgICAgICAg
ICAgICAgICAgYls4KzNdICogYVsxNF07Ci0gICAgICAgIGNbOCszXSA9IGJbOF0gKiBhWzNdICsK
LSAgICAgICAgICAgICAgICAgYls4KzFdICogYVs3XSArCi0gICAgICAgICAgICAgICAgIGJbOCsy
XSAqIGFbMTFdICsKLSAgICAgICAgICAgICAgICAgYls4KzNdICogYVsxNV07Ci0gICAgICAgIGNb
MTJdID0gICBiWzEyXSAqIGFbMF0gKwotICAgICAgICAgICAgICAgICBiWzEyKzFdICogYVs0XSAr
Ci0gICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBhWzhdICsKLSAgICAgICAgICAgICAgICAgYlsx
MiszXSAqIGFbMTJdOwotICAgICAgICBjWzEyKzFdID0gYlsxMl0gKiBhWzFdICsKLSAgICAgICAg
ICAgICAgICAgYlsxMisxXSAqIGFbNV0gKwotICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVs5
XSArCi0gICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzEzXTsKLSAgICAgICAgY1sxMisyXSA9
IGJbMTJdICogYVsyXSArCi0gICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzZdICsKLSAgICAg
ICAgICAgICAgICAgYlsxMisyXSAqIGFbMTBdICsKLSAgICAgICAgICAgICAgICAgYlsxMiszXSAq
IGFbMTRdOwotICAgICAgICBjWzEyKzNdID0gYlsxMl0gKiBhWzNdICsKLSAgICAgICAgICAgICAg
ICAgYlsxMisxXSAqIGFbN10gKwotICAgICAgICAgICAgICAgICBiWzEyKzJdICogYVsxMV0gKwot
ICAgICAgICAgICAgICAgICBiWzEyKzNdICogYVsxNV07Ci0gICAgcmV0dXJuIGM7Ci0gIH0sCi0K
LSAgbXVsdjQgOiBmdW5jdGlvbiAoYSwgdikgewotICAgIGMgPSBuZXcgQXJyYXkoNCk7Ci0gICAg
Zm9yICh2YXIgaT0wOyBpPDQ7ICsraSkgewotICAgICAgdmFyIHggPSAwOwotICAgICAgZm9yICh2
YXIgaz0wOyBrPDQ7ICsraykKLSAgICAgICAgeCArPSB2W2tdICogYVtrKjQraV07Ci0gICAgICBj
W2ldID0geDsKLSAgICB9Ci0gICAgcmV0dXJuIGM7Ci0gIH0sCi0KLSAgcm90YXRlIDogZnVuY3Rp
b24gKGFuZ2xlLCBheGlzKSB7Ci0gICAgYXhpcyA9IFZlYzMubm9ybWFsaXplKGF4aXMpOwotICAg
IHZhciB4PWF4aXNbMF0sIHk9YXhpc1sxXSwgej1heGlzWzJdOwotICAgIHZhciBjID0gTWF0aC5j
b3MoYW5nbGUpOwotICAgIHZhciBjMSA9IDEtYzsKLSAgICB2YXIgcyA9IE1hdGguc2luKGFuZ2xl
KTsKLSAgICByZXR1cm4gWwotICAgICAgeCp4KmMxK2MsIHkqeCpjMSt6KnMsIHoqeCpjMS15KnMs
IDAsCi0gICAgICB4KnkqYzEteipzLCB5KnkqYzErYywgeSp6KmMxK3gqcywgMCwKLSAgICAgIHgq
eipjMSt5KnMsIHkqeipjMS14KnMsIHoqeipjMStjLCAwLAotICAgICAgMCwwLDAsMQotICAgIF07
Ci0gIH0sCi0gIHJvdGF0ZUluUGxhY2UgOiBmdW5jdGlvbihhbmdsZSwgYXhpcywgbSkgewotICAg
IGF4aXMgPSBWZWMzLm5vcm1hbGl6ZShheGlzKTsKLSAgICB2YXIgeD1heGlzWzBdLCB5PWF4aXNb
MV0sIHo9YXhpc1syXTsKLSAgICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKLSAgICB2YXIgYzEg
PSAxLWM7Ci0gICAgdmFyIHMgPSBNYXRoLnNpbihhbmdsZSk7Ci0gICAgdmFyIHRtcE1hdHJpeCA9
IHRoaXMudG1wTWF0cml4OwotICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOwot
ICAgIHRtcE1hdHJpeFswXSA9IHgqeCpjMStjOyB0bXBNYXRyaXhbMV0gPSB5KngqYzEreipzOyB0
bXBNYXRyaXhbMl0gPSB6KngqYzEteSpzOyB0bXBNYXRyaXhbM10gPSAwOwotICAgIHRtcE1hdHJp
eFs0XSA9IHgqeSpjMS16KnM7IHRtcE1hdHJpeFs1XSA9IHkqeSpjMStjOyB0bXBNYXRyaXhbNl0g
PSB5KnoqYzEreCpzOyB0bXBNYXRyaXhbN10gPSAwOwotICAgIHRtcE1hdHJpeFs4XSA9IHgqeipj
MSt5KnM7IHRtcE1hdHJpeFs5XSA9IHkqeipjMS14KnM7IHRtcE1hdHJpeFsxMF0gPSB6KnoqYzEr
YzsgdG1wTWF0cml4WzExXSA9IDA7Ci0gICAgdG1wTWF0cml4WzEyXSA9IDA7IHRtcE1hdHJpeFsx
M10gPSAwOyB0bXBNYXRyaXhbMTRdID0gMDsgdG1wTWF0cml4WzE1XSA9IDE7Ci0gICAgdGhpcy5j
b3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOwotICAgIHJldHVybiB0aGlzLm11bDR4NEluUGxhY2Uo
dG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKLSAgfSwKLQotICBzY2FsZSA6IGZ1bmN0aW9uKHYp
IHsKLSAgICByZXR1cm4gWwotICAgICAgdlswXSwgMCwgMCwgMCwKLSAgICAgIDAsIHZbMV0sIDAs
IDAsCi0gICAgICAwLCAwLCB2WzJdLCAwLAotICAgICAgMCwgMCwgMCwgMQotICAgIF07Ci0gIH0s
Ci0gIHNjYWxlMyA6IGZ1bmN0aW9uKHgseSx6KSB7Ci0gICAgcmV0dXJuIFsKLSAgICAgIHgsIDAs
IDAsIDAsCi0gICAgICAwLCB5LCAwLCAwLAotICAgICAgMCwgMCwgeiwgMCwKLSAgICAgIDAsIDAs
IDAsIDEKLSAgICBdOwotICB9LAotICBzY2FsZTEgOiBmdW5jdGlvbihzKSB7Ci0gICAgcmV0dXJu
IFsKLSAgICAgIHMsIDAsIDAsIDAsCi0gICAgICAwLCBzLCAwLCAwLAotICAgICAgMCwgMCwgcywg
MCwKLSAgICAgIDAsIDAsIDAsIDEKLSAgICBdOwotICB9LAotICBzY2FsZTNJblBsYWNlIDogZnVu
Y3Rpb24oeCwgeSwgeiwgbSkgewotICAgIHZhciB0bXBNYXRyaXggPSB0aGlzLnRtcE1hdHJpeDsK
LSAgICB2YXIgdG1wTWF0cml4MiA9IHRoaXMudG1wTWF0cml4MjsKLSAgICB0bXBNYXRyaXhbMF0g
PSB4OyB0bXBNYXRyaXhbMV0gPSAwOyB0bXBNYXRyaXhbMl0gPSAwOyB0bXBNYXRyaXhbM10gPSAw
OwotICAgIHRtcE1hdHJpeFs0XSA9IDA7IHRtcE1hdHJpeFs1XSA9IHk7IHRtcE1hdHJpeFs2XSA9
IDA7IHRtcE1hdHJpeFs3XSA9IDA7Ci0gICAgdG1wTWF0cml4WzhdID0gMDsgdG1wTWF0cml4Wzld
ID0gMDsgdG1wTWF0cml4WzEwXSA9IHo7IHRtcE1hdHJpeFsxMV0gPSAwOwotICAgIHRtcE1hdHJp
eFsxMl0gPSAwOyB0bXBNYXRyaXhbMTNdID0gMDsgdG1wTWF0cml4WzE0XSA9IDA7IHRtcE1hdHJp
eFsxNV0gPSAxOwotICAgIHRoaXMuY29weU1hdHJpeChtLCB0bXBNYXRyaXgyKTsKLSAgICByZXR1
cm4gdGhpcy5tdWw0eDRJblBsYWNlKHRtcE1hdHJpeDIsIHRtcE1hdHJpeCwgbSk7Ci0gIH0sCi0g
IHNjYWxlMUluUGxhY2UgOiBmdW5jdGlvbihzLCBtKSB7IHJldHVybiB0aGlzLnNjYWxlM0luUGxh
Y2UocywgcywgcywgbSk7IH0sCi0gIHNjYWxlSW5QbGFjZSA6IGZ1bmN0aW9uKHMsIG0pIHsgcmV0
dXJuIHRoaXMuc2NhbGUzSW5QbGFjZShzWzBdLHNbMV0sc1syXSxtKTsgfSwKLQotICB0cmFuc2xh
dGUzIDogZnVuY3Rpb24oeCx5LHopIHsKLSAgICByZXR1cm4gWwotICAgICAgMSwgMCwgMCwgMCwK
LSAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAwLCAwLCAxLCAwLAotICAgICAgeCwgeSwgeiwgMQot
ICAgIF07Ci0gIH0sCi0KLSAgdHJhbnNsYXRlIDogZnVuY3Rpb24odikgewotICAgIHJldHVybiB0
aGlzLnRyYW5zbGF0ZTModlswXSwgdlsxXSwgdlsyXSk7Ci0gIH0sCi0gIHRtcE1hdHJpeCA6IFsw
LDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwXSwKLSAgdG1wTWF0cml4MiA6IFswLDAs
MCwwLCAwLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwXSwKLSAgdHJhbnNsYXRlM0luUGxhY2UgOiBm
dW5jdGlvbih4LHkseixtKSB7Ci0gICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4Owot
ICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOwotICAgIHRtcE1hdHJpeFswXSA9
IDE7IHRtcE1hdHJpeFsxXSA9IDA7IHRtcE1hdHJpeFsyXSA9IDA7IHRtcE1hdHJpeFszXSA9IDA7
Ci0gICAgdG1wTWF0cml4WzRdID0gMDsgdG1wTWF0cml4WzVdID0gMTsgdG1wTWF0cml4WzZdID0g
MDsgdG1wTWF0cml4WzddID0gMDsKLSAgICB0bXBNYXRyaXhbOF0gPSAwOyB0bXBNYXRyaXhbOV0g
PSAwOyB0bXBNYXRyaXhbMTBdID0gMTsgdG1wTWF0cml4WzExXSA9IDA7Ci0gICAgdG1wTWF0cml4
WzEyXSA9IHg7IHRtcE1hdHJpeFsxM10gPSB5OyB0bXBNYXRyaXhbMTRdID0gejsgdG1wTWF0cml4
WzE1XSA9IDE7Ci0gICAgdGhpcy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOwotICAgIHJldHVy
biB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKLSAgfSwKLSAg
dHJhbnNsYXRlSW5QbGFjZSA6IGZ1bmN0aW9uKHYsbSl7IHJldHVybiB0aGlzLnRyYW5zbGF0ZTNJ
blBsYWNlKHZbMF0sIHZbMV0sIHZbMl0sIG0pOyB9LAotCi0gIGxvb2tBdCA6IGZ1bmN0aW9uIChl
eWUsIGNlbnRlciwgdXApIHsKLSAgICB2YXIgeiA9IFZlYzMuZGlyZWN0aW9uKGV5ZSwgY2VudGVy
KTsKLSAgICB2YXIgeCA9IFZlYzMubm9ybWFsaXplSW5QbGFjZShWZWMzLmNyb3NzKHVwLCB6KSk7
Ci0gICAgdmFyIHkgPSBWZWMzLm5vcm1hbGl6ZUluUGxhY2UoVmVjMy5jcm9zcyh6LCB4KSk7Ci0K
LSAgICB2YXIgbSA9IFsKLSAgICAgIHhbMF0sIHlbMF0sIHpbMF0sIDAsCi0gICAgICB4WzFdLCB5
WzFdLCB6WzFdLCAwLAotICAgICAgeFsyXSwgeVsyXSwgelsyXSwgMCwKLSAgICAgIDAsIDAsIDAs
IDEKLSAgICBdOwotCi0gICAgdmFyIHQgPSBbCi0gICAgICAxLCAwLCAwLCAwLAotICAgICAgMCwg
MSwgMCwgMCwKLSAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAtZXllWzBdLCAtZXllWzFdLCAtZXll
WzJdLCAxCi0gICAgXTsKLQotICAgIHJldHVybiB0aGlzLm11bDR4NChtLHQpOwotICB9LAotCi0g
IHRyYW5zcG9zZTR4NCA6IGZ1bmN0aW9uKG0pIHsKLSAgICByZXR1cm4gWwotICAgICAgbVswXSwg
bVs0XSwgbVs4XSwgbVsxMl0sCi0gICAgICBtWzFdLCBtWzVdLCBtWzldLCBtWzEzXSwKLSAgICAg
IG1bMl0sIG1bNl0sIG1bMTBdLCBtWzE0XSwKLSAgICAgIG1bM10sIG1bN10sIG1bMTFdLCBtWzE1
XQotICAgIF07Ci0gIH0sCi0KLSAgdHJhbnNwb3NlNHg0SW5QbGFjZSA6IGZ1bmN0aW9uKG0pIHsK
LSAgICB2YXIgdG1wID0gMC4wOwotICAgIHRtcCA9IG1bMV07IG1bMV0gPSBtWzRdOyBtWzRdID0g
dG1wOwotICAgIHRtcCA9IG1bMl07IG1bMl0gPSBtWzhdOyBtWzhdID0gdG1wOwotICAgIHRtcCA9
IG1bM107IG1bM10gPSBtWzEyXTsgbVsxMl0gPSB0bXA7Ci0gICAgdG1wID0gbVs2XTsgbVs2XSA9
IG1bOV07IG1bOV0gPSB0bXA7Ci0gICAgdG1wID0gbVs3XTsgbVs3XSA9IG1bMTNdOyBtWzEzXSA9
IHRtcDsKLSAgICB0bXAgPSBtWzExXTsgbVsxMV0gPSBtWzE0XTsgbVsxNF0gPSB0bXA7Ci0gICAg
cmV0dXJuIG07Ci0gIH0sCi0KLSAgdHJhbnNwb3NlM3gzIDogZnVuY3Rpb24obSkgewotICAgIHJl
dHVybiBbCi0gICAgICBtWzBdLCBtWzNdLCBtWzZdLAotICAgICAgbVsxXSwgbVs0XSwgbVs3XSwK
LSAgICAgIG1bMl0sIG1bNV0sIG1bOF0KLSAgICBdOwotICB9LAotCi0gIHRyYW5zcG9zZTN4M0lu
UGxhY2UgOiBmdW5jdGlvbihtKSB7Ci0gICAgdmFyIHRtcCA9IDAuMDsKLSAgICB0bXAgPSBtWzFd
OyBtWzFdID0gbVszXTsgbVszXSA9IHRtcDsKLSAgICB0bXAgPSBtWzJdOyBtWzJdID0gbVs2XTsg
bVs2XSA9IHRtcDsKLSAgICB0bXAgPSBtWzVdOyBtWzVdID0gbVs3XTsgbVs3XSA9IHRtcDsKLSAg
ICByZXR1cm4gbTsKLSAgfSwKLX0KLQotVmVjMyA9IHsKLSAgbWFrZSA6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gWzAsMCwwXTsgfSwKLSAgY29weSA6IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIFt2WzBdLHZb
MV0sdlsyXV07IH0sCi0KLSAgYWRkIDogZnVuY3Rpb24gKHUsdikgewotICAgIHJldHVybiBbdVsw
XSt2WzBdLCB1WzFdK3ZbMV0sIHVbMl0rdlsyXV07Ci0gIH0sCi0KLSAgc3ViIDogZnVuY3Rpb24g
KHUsdikgewotICAgIHJldHVybiBbdVswXS12WzBdLCB1WzFdLXZbMV0sIHVbMl0tdlsyXV07Ci0g
IH0sCi0KLSAgbmVnYXRlIDogZnVuY3Rpb24gKHUpIHsKLSAgICByZXR1cm4gWy11WzBdLCAtdVsx
XSwgLXVbMl1dOwotICB9LAotCi0gIGRpcmVjdGlvbiA6IGZ1bmN0aW9uICh1LHYpIHsKLSAgICBy
ZXR1cm4gdGhpcy5ub3JtYWxpemVJblBsYWNlKHRoaXMuc3ViKHUsdikpOwotICB9LAotCi0gIG5v
cm1hbGl6ZUluUGxhY2UgOiBmdW5jdGlvbih2KSB7Ci0gICAgdmFyIGltYWcgPSAxLjAgLyBNYXRo
LnNxcnQodlswXSp2WzBdICsgdlsxXSp2WzFdICsgdlsyXSp2WzJdKTsKLSAgICB2WzBdICo9IGlt
YWc7IHZbMV0gKj0gaW1hZzsgdlsyXSAqPSBpbWFnOwotICAgIHJldHVybiB2OwotICB9LAotCi0g
IG5vcm1hbGl6ZSA6IGZ1bmN0aW9uKHYpIHsKLSAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVJblBs
YWNlKHRoaXMuY29weSh2KSk7Ci0gIH0sCi0KLSAgc2NhbGUgOiBmdW5jdGlvbihmLCB2KSB7Ci0g
ICAgcmV0dXJuIFtmKnZbMF0sIGYqdlsxXSwgZip2WzJdXTsKLSAgfSwKLQotICBkb3QgOiBmdW5j
dGlvbih1LHYpIHsKLSAgICByZXR1cm4gdVswXSp2WzBdICsgdVsxXSp2WzFdICsgdVsyXSp2WzJd
OwotICB9LAotCi0gIGlubmVyIDogZnVuY3Rpb24odSx2KSB7Ci0gICAgcmV0dXJuIFt1WzBdKnZb
MF0sIHVbMV0qdlsxXSwgdVsyXSp2WzJdXTsKLSAgfSwKLQotICBjcm9zcyA6IGZ1bmN0aW9uKHUs
dikgewotICAgIHJldHVybiBbCi0gICAgICB1WzFdKnZbMl0gLSB1WzJdKnZbMV0sCi0gICAgICB1
WzJdKnZbMF0gLSB1WzBdKnZbMl0sCi0gICAgICB1WzBdKnZbMV0gLSB1WzFdKnZbMF0KLSAgICBd
OwotICB9Ci19Ci0KLVNoYWRlciA9IGZ1bmN0aW9uKGdsKXsKLSAgdGhpcy5nbCA9IGdsOwotICB0
aGlzLnNoYWRlcnMgPSBbXTsKLSAgdGhpcy51bmlmb3JtTG9jYXRpb25zID0ge307Ci0gIHRoaXMu
YXR0cmliTG9jYXRpb25zID0ge307Ci0gIGZvciAodmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3Ro
OyBpKyspIHsKLSAgICB0aGlzLnNoYWRlcnMucHVzaChhcmd1bWVudHNbaV0pOwotICB9Ci19Ci1T
aGFkZXIucHJvdG90eXBlID0gewotICBpZCA6IG51bGwsCi0gIGdsIDogbnVsbCwKLSAgY29tcGls
ZWQgOiBmYWxzZSwKLSAgc2hhZGVyIDogbnVsbCwKLSAgc2hhZGVycyA6IFtdLAotCi0gIGRlc3Ry
b3kgOiBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5zaGFkZXIgIT0gbnVsbCkgZGVsZXRlU2hh
ZGVyKHRoaXMuZ2wsIHRoaXMuc2hhZGVyKTsKLSAgfSwKLQotICBjb21waWxlIDogZnVuY3Rpb24o
KSB7Ci0gICAgdGhpcy5zaGFkZXIgPSBsb2FkU2hhZGVyQXJyYXkodGhpcy5nbCwgdGhpcy5zaGFk
ZXJzKTsKLSAgfSwKLQotICB1c2UgOiBmdW5jdGlvbigpIHsKLSAgICBpZiAodGhpcy5zaGFkZXIg
PT0gbnVsbCkKLSAgICAgIHRoaXMuY29tcGlsZSgpOwotICAgIHRoaXMuZ2wudXNlUHJvZ3JhbSh0
aGlzLnNoYWRlci5wcm9ncmFtKTsKLSAgfSwKLQotICB1bmlmb3JtMWZ2IDogZnVuY3Rpb24obmFt
ZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMu
Z2wudW5pZm9ybTFmdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3JtMmZ2IDogZnVuY3Rp
b24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAg
IHRoaXMuZ2wudW5pZm9ybTJmdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3JtM2Z2IDog
ZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUp
OwotICAgIHRoaXMuZ2wudW5pZm9ybTNmdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1bmlmb3Jt
NGZ2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3Jt
KG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTRmdihsb2MsIHZhbHVlKTsKLSAgfSwKLQotICB1
bmlmb3JtMWYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVu
aWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtMWYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0K
LSAgdW5pZm9ybTJmIDogZnVuY3Rpb24obmFtZSwgdjEsdjIpIHsKLSAgICB2YXIgbG9jID0gdGhp
cy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTJmKGxvYywgdjEsdjIpOwotICB9
LAotCi0gIHVuaWZvcm0zZiA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzKSB7Ci0gICAgdmFyIGxv
YyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0zZihsb2MsIHYxLHYy
LHYzKTsKLSAgfSwKLQotICB1bmlmb3JtNGYgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2Myx2NCkg
ewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3Jt
NGYobG9jLCB2MSwgdjIsIHYzLCB2NCk7Ci0gIH0sCi0KLSAgdW5pZm9ybTFpdiA6IGZ1bmN0aW9u
KG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0
aGlzLmdsLnVuaWZvcm0xaXYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTJpdiA6IGZ1
bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsK
LSAgICB0aGlzLmdsLnVuaWZvcm0yaXYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybTNp
diA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShu
YW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0zaXYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5p
Zm9ybTRpdiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5p
Zm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm00aXYobG9jLCB2YWx1ZSk7Ci0gIH0sCi0K
LSAgdW5pZm9ybTFpIDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2YXIgbG9jID0gdGhp
cy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybTFpKGxvYywgdmFsdWUpOwotICB9
LAotCi0gIHVuaWZvcm0yaSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyKSB7Ci0gICAgdmFyIGxvYyA9
IHRoaXMudW5pZm9ybShuYW1lKTsKLSAgICB0aGlzLmdsLnVuaWZvcm0yaShsb2MsIHYxLHYyKTsK
LSAgfSwKLQotICB1bmlmb3JtM2kgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2MykgewotICAgIHZh
ciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtM2kobG9jLCB2
MSx2Mix2Myk7Ci0gIH0sCi0KLSAgdW5pZm9ybTRpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMs
djQpIHsKLSAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5p
Zm9ybTRpKGxvYywgdjEsIHYyLCB2MywgdjQpOwotICB9LAotCi0gIHVuaWZvcm1NYXRyaXg0ZnYg
OiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFt
ZSk7Ci0gICAgdGhpcy5nbC51bmlmb3JtTWF0cml4NGZ2KGxvYywgZmFsc2UsIHZhbHVlKTsKLSAg
fSwKLQotICB1bmlmb3JtTWF0cml4M2Z2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKLSAgICB2
YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwotICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDNm
dihsb2MsIGZhbHNlLCB2YWx1ZSk7Ci0gIH0sCi0KLSAgdW5pZm9ybU1hdHJpeDJmdiA6IGZ1bmN0
aW9uKG5hbWUsIHZhbHVlKSB7Ci0gICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKLSAg
ICB0aGlzLmdsLnVuaWZvcm1NYXRyaXgyZnYobG9jLCBmYWxzZSwgdmFsdWUpOwotICB9LAotCi0g
IGF0dHJpYiA6IGZ1bmN0aW9uKG5hbWUpIHsKLSAgICBpZiAodGhpcy5hdHRyaWJMb2NhdGlvbnNb
bmFtZV0gPT0gbnVsbCkgewotICAgICAgdmFyIGxvYyA9IHRoaXMuZ2wuZ2V0QXR0cmliTG9jYXRp
b24odGhpcy5zaGFkZXIucHJvZ3JhbSwgbmFtZSk7Ci0gICAgICB0aGlzLmF0dHJpYkxvY2F0aW9u
c1tuYW1lXSA9IGxvYzsKLSAgICB9Ci0gICAgcmV0dXJuIHRoaXMuYXR0cmliTG9jYXRpb25zW25h
bWVdOwotICB9LAotCi0gIHVuaWZvcm0gOiBmdW5jdGlvbihuYW1lKSB7Ci0gICAgaWYgKHRoaXMu
dW5pZm9ybUxvY2F0aW9uc1tuYW1lXSA9PSBudWxsKSB7Ci0gICAgICB2YXIgbG9jID0gdGhpcy5n
bC5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5zaGFkZXIucHJvZ3JhbSwgbmFtZSk7Ci0gICAgICB0
aGlzLnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV0gPSBsb2M7Ci0gICAgfQotICAgIHJldHVybiB0aGlz
LnVuaWZvcm1Mb2NhdGlvbnNbbmFtZV07Ci0gIH0KLX0KLUZpbHRlciA9IGZ1bmN0aW9uKGdsLCBz
aGFkZXIpIHsKLSAgU2hhZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci19Ci1GaWx0ZXIucHJv
dG90eXBlID0gbmV3IFNoYWRlcigpOwotRmlsdGVyLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9u
KGluaXQpIHsKLSAgdGhpcy51c2UoKTsKLSAgdmFyIHZhID0gdGhpcy5hdHRyaWIoIlZlcnRleCIp
OwotICB2YXIgdGEgPSB0aGlzLmF0dHJpYigiVGV4Iik7Ci0gIHZhciB2Ym8gPSBRdWFkLmdldENh
Y2hlZFZCTyh0aGlzLmdsKTsKLSAgaWYgKGluaXQpIGluaXQodGhpcyk7Ci0gIHZiby5kcmF3KHZh
LCBudWxsLCB0YSk7Ci19Ci0KLQotVkJPID0gZnVuY3Rpb24oZ2wpIHsKLSAgdGhpcy5nbCA9IGds
OwotICB0aGlzLmRhdGEgPSBbXTsKLSAgdGhpcy5lbGVtZW50c1ZCTyA9IG51bGw7Ci0gIGZvciAo
dmFyIGk9MTsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICBpZiAoYXJndW1lbnRzW2ld
LmVsZW1lbnRzKQotICAgICAgdGhpcy5lbGVtZW50cyA9IGFyZ3VtZW50c1tpXTsKLSAgICBlbHNl
Ci0gICAgICB0aGlzLmRhdGEucHVzaChhcmd1bWVudHNbaV0pOwotICB9Ci19Ci0KLVZCTy5wcm90
b3R5cGUgPSB7Ci0gIGluaXRpYWxpemVkIDogZmFsc2UsCi0gIGxlbmd0aCA6IDAsCi0gIHZib3Mg
OiBudWxsLAotICB0eXBlIDogJ1RSSUFOR0xFUycsCi0gIGVsZW1lbnRzVkJPIDogbnVsbCwKLSAg
ZWxlbWVudHMgOiBudWxsLAotCi0gIHNldERhdGEgOiBmdW5jdGlvbigpIHsKLSAgICB0aGlzLmRl
c3Ryb3koKTsKLSAgICB0aGlzLmRhdGEgPSBbXTsKLSAgICBmb3IgKHZhciBpPTA7IGk8YXJndW1l
bnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBpZiAoYXJndW1lbnRzW2ldLmVsZW1lbnRzKQotICAg
ICAgICB0aGlzLmVsZW1lbnRzID0gYXJndW1lbnRzW2ldOwotICAgICAgZWxzZQotICAgICAgICB0
aGlzLmRhdGEucHVzaChhcmd1bWVudHNbaV0pOwotICAgIH0KLSAgfSwKLQotICBkZXN0cm95IDog
ZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHRoaXMudmJvcyAhPSBudWxsKQotICAgICAgZm9yICh2YXIg
aT0wOyBpPHRoaXMudmJvcy5sZW5ndGg7IGkrKykKLSAgICAgICAgdGhpcy5nbC5kZWxldGVCdWZm
ZXIodGhpcy52Ym9zW2ldKTsKLSAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAhPSBudWxsKQotICAg
ICAgdGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy5lbGVtZW50c1ZCTyk7Ci0gICAgdGhpcy5sZW5n
dGggPSB0aGlzLmVsZW1lbnRzTGVuZ3RoID0gMDsKLSAgICB0aGlzLnZib3MgPSB0aGlzLmVsZW1l
bnRzVkJPID0gbnVsbDsKLSAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7Ci0gIH0sCi0KLSAg
aW5pdCA6IGZ1bmN0aW9uKCkgewotICAgIHRoaXMuZGVzdHJveSgpOwotICAgIHZhciBnbCA9IHRo
aXMuZ2w7Ci0KLSAgICBnbC5nZXRFcnJvcigpOwotICAgIHZhciB2Ym9zID0gW107Ci0gICAgdmFy
IGxlbmd0aCA9IDA7Ci0gICAgZm9yICh2YXIgaT0wOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKykK
LSAgICAgIHZib3MucHVzaChnbC5jcmVhdGVCdWZmZXIoKSk7Ci0gICAgaWYgKHRoaXMuZWxlbWVu
dHMgIT0gbnVsbCkKLSAgICAgIHRoaXMuZWxlbWVudHNWQk8gPSBnbC5jcmVhdGVCdWZmZXIoKTsK
LSAgICB0cnkgewotICAgICAgdGhyb3dFcnJvcihnbCwgImdlbkJ1ZmZlcnMiKTsKLSAgICAgIGZv
ciAodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgZCA9
IHRoaXMuZGF0YVtpXTsKLSAgICAgICAgdmFyIGRsZW4gPSBNYXRoLmZsb29yKGQuZGF0YS5sZW5n
dGggLyBkLnNpemUpOwotICAgICAgICBpZiAoaSA9PSAwIHx8IGRsZW4gPCBsZW5ndGgpCi0gICAg
ICAgICAgICBsZW5ndGggPSBkbGVuOwotICAgICAgICBpZiAoIWQuZmxvYXRBcnJheSkKLSAgICAg
ICAgICBkLmZsb2F0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGQuZGF0YSk7Ci0gICAgICAgIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym9zW2ldKTsKLSAgICAgICAgdGhyb3dFcnJv
cihnbCwgImJpbmRCdWZmZXIiKTsKLSAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIGQuZmxvYXRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOwotICAgICAgICB0aHJvd0Vycm9yKGds
LCAiYnVmZmVyRGF0YSIpOwotICAgICAgfQotICAgICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0g
bnVsbCkgewotICAgICAgICB2YXIgZCA9IHRoaXMuZWxlbWVudHM7Ci0gICAgICAgIHRoaXMuZWxl
bWVudHNMZW5ndGggPSBkLmRhdGEubGVuZ3RoOwotICAgICAgICB0aGlzLmVsZW1lbnRzVHlwZSA9
IGQudHlwZSA9PSBnbC5VTlNJR05FRF9CWVRFID8gZC50eXBlIDogZ2wuVU5TSUdORURfU0hPUlQ7
Ci0gICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMuZWxl
bWVudHNWQk8pOwotICAgICAgICB0aHJvd0Vycm9yKGdsLCAiYmluZEJ1ZmZlciBFTEVNRU5UX0FS
UkFZX0JVRkZFUiIpOwotICAgICAgICBpZiAodGhpcy5lbGVtZW50c1R5cGUgPT0gZ2wuVU5TSUdO
RURfU0hPUlQgJiYgIWQudXNob3J0QXJyYXkpIHsKLSAgICAgICAgICBkLnVzaG9ydEFycmF5ID0g
bmV3IFVpbnQxNkFycmF5KGQuZGF0YSk7Ci0gICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVN
RU5UX0FSUkFZX0JVRkZFUiwgZC51c2hvcnRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOwotICAgICAg
ICB9IGVsc2UgaWYgKHRoaXMuZWxlbWVudHNUeXBlID09IGdsLlVOU0lHTkVEX0JZVEUgJiYgIWQu
dWJ5dGVBcnJheSkgewotICAgICAgICAgIGQudWJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGQu
ZGF0YSk7Ci0gICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwg
ZC51Ynl0ZUFycmF5LCBnbC5TVEFUSUNfRFJBVyk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhyb3dF
cnJvcihnbCwgImJ1ZmZlckRhdGEgRUxFTUVOVF9BUlJBWV9CVUZGRVIiKTsKLSAgICAgIH0KLSAg
ICB9IGNhdGNoKGUpIHsKLSAgICAgIGZvciAodmFyIGk9MDsgaTx2Ym9zLmxlbmd0aDsgaSsrKQot
ICAgICAgICBnbC5kZWxldGVCdWZmZXIodmJvc1tpXSk7Ci0gICAgICB0aHJvdyhlKTsKLSAgICB9
Ci0KLSAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgbnVsbCk7Ci0gICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbnVsbCk7Ci0KLSAgICB0aGlzLmxlbmd0
aCA9IGxlbmd0aDsKLSAgICB0aGlzLnZib3MgPSB2Ym9zOwotCi0gICAgdGhpcy5pbml0aWFsaXpl
ZCA9IHRydWU7Ci0gIH0sCi0KLSAgdXNlIDogZnVuY3Rpb24oKSB7Ci0gICAgaWYgKCF0aGlzLmlu
aXRpYWxpemVkKSB0aGlzLmluaXQoKTsKLSAgICB2YXIgZ2wgPSB0aGlzLmdsOwotICAgIGZvciAo
dmFyIGk9MDsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmIChhcmd1bWVudHNb
aV0gPT0gbnVsbCkgY29udGludWU7Ci0gICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZF
UiwgdGhpcy52Ym9zW2ldKTsKLSAgICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoYXJndW1lbnRz
W2ldLCB0aGlzLmRhdGFbaV0uc2l6ZSwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICAgIGds
LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGFyZ3VtZW50c1tpXSk7Ci0gICAgfQotICAgIGlmICh0
aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKLSAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIHRoaXMuZWxlbWVudHNWQk8pOwotICAgIH0KLSAgfSwKLQotICBkcmF3
IDogZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGFyZ3MgPSBbXTsKLSAgICB0aGlzLnVzZS5hcHBseSh0
aGlzLCBhcmd1bWVudHMpOwotICAgIHZhciBnbCA9IHRoaXMuZ2w7Ci0gICAgaWYgKHRoaXMuZWxl
bWVudHNWQk8gIT0gbnVsbCkgewotICAgICAgZ2wuZHJhd0VsZW1lbnRzKGdsW3RoaXMudHlwZV0s
IHRoaXMuZWxlbWVudHNMZW5ndGgsIHRoaXMuZWxlbWVudHNUeXBlLCAwKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgZ2wuZHJhd0FycmF5cyhnbFt0aGlzLnR5cGVdLCAwLCB0aGlzLmxlbmd0aCk7Ci0g
ICAgfQotICB9Ci19Ci0KLUZCTyA9IGZ1bmN0aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCB1c2VfZGVw
dGgpIHsKLSAgdGhpcy5nbCA9IGdsOwotICB0aGlzLndpZHRoID0gd2lkdGg7Ci0gIHRoaXMuaGVp
Z2h0ID0gaGVpZ2h0OwotICBpZiAodXNlX2RlcHRoICE9IG51bGwpCi0gICAgdGhpcy51c2VEZXB0
aCA9IHVzZV9kZXB0aDsKLX0KLUZCTy5wcm90b3R5cGUgPSB7Ci0gIGluaXRpYWxpemVkIDogZmFs
c2UsCi0gIHVzZURlcHRoIDogdHJ1ZSwKLSAgZmJvIDogbnVsbCwKLSAgcmJvIDogbnVsbCwKLSAg
dGV4dHVyZSA6IG51bGwsCi0KLSAgZGVzdHJveSA6IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlz
LmZibykgdGhpcy5nbC5kZWxldGVGcmFtZWJ1ZmZlcih0aGlzLmZibyk7Ci0gICAgaWYgKHRoaXMu
cmJvKSB0aGlzLmdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcih0aGlzLnJibyk7Ci0gICAgaWYgKHRoaXMu
dGV4dHVyZSkgdGhpcy5nbC5kZWxldGVUZXh0dXJlKHRoaXMudGV4dHVyZSk7Ci0gIH0sCi0KLSAg
aW5pdCA6IGZ1bmN0aW9uKCkgewotICAgIHZhciBnbCA9IHRoaXMuZ2w7Ci0gICAgdmFyIHcgPSB0
aGlzLndpZHRoLCBoID0gdGhpcy5oZWlnaHQ7Ci0gICAgdmFyIGZibyA9IHRoaXMuZmJvICE9IG51
bGwgPyB0aGlzLmZibyA6IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgdmFyIHJiOwotCi0g
ICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGNoZWNrRXJy
b3IoZ2wsICJGQk8uaW5pdCBiaW5kRnJhbWVidWZmZXIiKTsKLSAgICBpZiAodGhpcy51c2VEZXB0
aCkgewotICAgICAgcmIgPSB0aGlzLnJibyAhPSBudWxsID8gdGhpcy5yYm8gOiBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKTsKLSAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVS
LCByYik7Ci0gICAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgYmluZFJlbmRlcmJ1ZmZlciIp
OwotICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRI
X0NPTVBPTkVOVDE2LCB3LCBoKTsKLSAgICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCByZW5k
ZXJidWZmZXJTdG9yYWdlIik7Ci0gICAgfQotCi0gICAgdmFyIHRleCA9IHRoaXMudGV4dHVyZSAh
PSBudWxsID8gdGhpcy50ZXh0dXJlIDogZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgdHJ5IHsKLSAgICAgIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdywgaCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgbnVsbCk7Ci0gICAgfSBjYXRjaCAoZSkgeyAvLyBhcmdoLCBubyBudWxsIHRleHR1
cmUgc3VwcG9ydAotICAgICAgdmFyIHRtcCA9IHRoaXMuZ2V0VGVtcENhbnZhcyh3LGgpOwotICAg
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCB0bXApOwotICAgIH0KLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19F
REdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICBjaGVja0Vycm9yKGdsLCAi
RkJPLmluaXQgdGV4Iik7Ci0KLSAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7Ci0gICAg
Y2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmQgdGV4Iik7Ci0KLSAgICBpZiAodGhpcy51c2VE
ZXB0aCkgewotICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgcmIpOwotICAgICAgY2hlY2tF
cnJvcihnbCwgIkZCTy5pbml0IGJpbmQgZGVwdGggYnVmZmVyIik7Ci0gICAgfQotCi0gICAgdmFy
IGZic3RhdCA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwotICAg
IGlmIChmYnN0YXQgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgIHZhciBnbHY7
Ci0gICAgICBmb3IgKHZhciB2IGluIGdsKSB7Ci0gICAgICAgIHRyeSB7IGdsdiA9IGdsW3ZdOyB9
IGNhdGNoIChlKSB7IGdsdiA9IG51bGw7IH0KLSAgICAgICAgaWYgKGdsdiA9PSBmYnN0YXQpIHsg
ZmJzdGF0ID0gdjsgYnJlYWs7IH19Ci0gICAgICAgIGxvZygiRnJhbWVidWZmZXIgc3RhdHVzOiAi
ICsgZmJzdGF0KTsKLSAgICB9Ci0gICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGNoZWNrIGZi
byIpOwotCi0gICAgdGhpcy5mYm8gPSBmYm87Ci0gICAgdGhpcy5yYm8gPSByYjsKLSAgICB0aGlz
LnRleHR1cmUgPSB0ZXg7Ci0gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7Ci0gIH0sCi0KLSAg
Z2V0VGVtcENhbnZhcyA6IGZ1bmN0aW9uKHcsIGgpIHsKLSAgICBpZiAoIUZCTy50ZW1wQ2FudmFz
KSB7Ci0gICAgICBGQk8udGVtcENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZh
cycpOwotICAgIH0KLSAgICBGQk8udGVtcENhbnZhcy53aWR0aCA9IHc7Ci0gICAgRkJPLnRlbXBD
YW52YXMuaGVpZ2h0ID0gaDsKLSAgICByZXR1cm4gRkJPLnRlbXBDYW52YXM7Ci0gIH0sCi0KLSAg
dXNlIDogZnVuY3Rpb24oKSB7Ci0gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB0aGlzLmluaXQo
KTsKLSAgICB0aGlzLmdsLmJpbmRGcmFtZWJ1ZmZlcih0aGlzLmdsLkZSQU1FQlVGRkVSLCB0aGlz
LmZibyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gR0xFcnJvcihlcnIsIG1zZywgZmlsZU5hbWUsIGxp
bmVOdW1iZXIpIHsKLSAgdGhpcy5tZXNzYWdlID0gbXNnOwotICB0aGlzLmdsRXJyb3IgPSBlcnI7
Ci19Ci0KLUdMRXJyb3IucHJvdG90eXBlID0gbmV3IEVycm9yKCk7Ci0KLWZ1bmN0aW9uIG1ha2VH
TEVycm9yV3JhcHBlcihnbCwgZm5hbWUpIHsKLSAgcmV0dXJuIChmdW5jdGlvbigpIHsKLSAgICB0
cnkgewotICAgICAgdmFyIHJ2ID0gZ2xbZm5hbWVdLmFwcGx5KGdsLCBhcmd1bWVudHMpOwotICAg
ICAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gICAgICBpZiAoZXJyICE9IGdsLk5PX0VSUk9S
KSB7Ci0gICAgICAgIHRocm93KG5ldyBHTEVycm9yKAotICAgICAgICAgICAgZXJyLCAiR0wgZXJy
b3IgIitnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikrIiBpbiAiK2ZuYW1lKSk7Ci0gICAgICB9
Ci0gICAgICByZXR1cm4gcnY7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgaWYgKGUuZ2xFcnJv
ciAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHRocm93IGU7Ci0gICAgICB9Ci0gICAgICB0aHJv
dyhuZXcgRXJyb3IoIlRocmV3ICIgKyBlLm5hbWUgKwotICAgICAgICAgICAgICAgICAgICAgICIg
aW4gIiArIGZuYW1lICsgIlxuIiArCi0gICAgICAgICAgICAgICAgICAgICAgZS5tZXNzYWdlICsg
IlxuIiArCi0gICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzLmNhbGxlZS5jYWxsZXIpKTsK
LSAgICB9Ci0gIH0pOwotfQotCi1mdW5jdGlvbiB3cmFwR0xDb250ZXh0KGdsKSB7Ci0gIHZhciB3
cmFwID0ge307Ci0gIGZvciAodmFyIGkgaW4gZ2wpIHsKLSAgICB0cnkgewotICAgICAgaWYgKHR5
cGVvZiBnbFtpXSA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgICAgd3JhcFtpXSA9IG1ha2VHTEVy
cm9yV3JhcHBlcihnbCwgaSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIHdyYXBbaV0gPSBn
bFtpXTsKLSAgICAgIH0KLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAvLyBsb2coIndyYXBHTENv
bnRleHQ6IEVycm9yIGFjY2Vzc2luZyAiICsgaSk7Ci0gICAgfQotICB9Ci0gIHdyYXAuZ2V0RXJy
b3IgPSBmdW5jdGlvbigpeyByZXR1cm4gZ2wuZ2V0RXJyb3IoKTsgfTsKLSAgcmV0dXJuIHdyYXA7
Ci19Ci0KLWZ1bmN0aW9uIGdldEdMQ29udGV4dChjYW52YXMpIHsKLSAgcmV0dXJuIGNhbnZhcy5n
ZXRDb250ZXh0KEdMX0NPTlRFWFRfSUQsIHthbnRpYWxpYXM6IGZhbHNlfSk7Ci19Ci0KLS8vIEFz
c2VydCB0aGF0IGYgZ2VuZXJhdGVzIGEgc3BlY2lmaWMgR0wgZXJyb3IuCi1mdW5jdGlvbiBhc3Nl
cnRHTEVycm9yKGdsLCBlcnIsIG5hbWUsIGYpIHsKLSAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFt
ZTsgbmFtZSA9IG51bGw7IH0KLSAgdmFyIHIgPSBmYWxzZTsKLSAgdmFyIGdsRXJyID0gMDsKLSAg
dHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyBnbEVyciA9IGUuZ2xFcnJvcjsgfQotICBp
ZiAoZ2xFcnIgIT09IGVycikgewotICAgIGlmIChnbEVyciA9PT0gdW5kZWZpbmVkKSB7Ci0gICAg
ICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBVTkVYUEVDVEVEIEVYQ0VQVElPTiIsIG5hbWUs
IGYpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBleHBl
Y3RlZDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArCi0gICAgICAgICAgICAgICAg
ICIgYWN0dWFsOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVyciksIG5hbWUsIGYpOwot
ICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8vIEFz
c2VydCB0aGF0IGYgZ2VuZXJhdGVzIHNvbWUgR0wgZXJyb3IuIFVzZWQgaW4gc2l0dWF0aW9ucyB3
aGVyZSBpdCdzCi0vLyBhbWJpZ2lvdXMgd2hpY2ggb2YgbXVsdGlwbGUgcG9zc2libGUgZXJyb3Jz
IHdpbGwgYmUgZ2VuZXJhdGVkLgotZnVuY3Rpb24gYXNzZXJ0U29tZUdMRXJyb3IoZ2wsIG5hbWUs
IGYpIHsKLSAgaWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAgdmFy
IHIgPSBmYWxzZTsKLSAgdmFyIGdsRXJyID0gMDsKLSAgdmFyIGVyciA9IDA7Ci0gIHRyeSB7IGYo
KTsgfSBjYXRjaChlKSB7IHI9dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IH0KLSAgaWYgKGdsRXJy
ID09PSAwKSB7Ci0gICAgaWYgKGdsRXJyID09PSB1bmRlZmluZWQpIHsKLSAgICAgIHRlc3RGYWls
ZWQoImFzc2VydEdMRXJyb3I6IFVORVhQRUNURUQgRVhDRVBUSU9OIiwgbmFtZSwgZik7Ci0gICAg
fSBlbHNlIHsKLSAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6IGV4cGVjdGVkOiAiICsg
Z2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsKLSAgICAgICAgICAgICAgICAgIiBhY3R1YWw6
ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyKSwgbmFtZSwgZik7Ci0gICAgfQotICAg
IHJldHVybiBmYWxzZTsKLSAgfQotICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8gQXNzZXJ0IHRoYXQg
ZiB0aHJvd3MgYW4gZXhjZXB0aW9uIGJ1dCBkb2VzIG5vdCBnZW5lcmF0ZSBhIEdMIGVycm9yLgot
ZnVuY3Rpb24gYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsIG5hbWUsIGYpIHsKLSAgaWYgKGYgPT0g
bnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KLSAgdmFyIHIgPSBmYWxzZTsKLSAgdmFy
IGdsRXJyID0gdW5kZWZpbmVkOwotICB2YXIgZXhwOwotICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkg
eyByPXRydWU7IGdsRXJyID0gZS5nbEVycm9yOyBleHAgPSBlO30KLSAgaWYgKCFyKSB7Ci0gICAg
dGVzdEZhaWxlZCgKLSAgICAgICJhc3NlcnRUaHJvd05vR0xFcnJvcjogc2hvdWxkIGhhdmUgdGhy
b3duIGV4Y2VwdGlvbiIsIG5hbWUsIGYpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfSBlbHNlIHsK
LSAgICBpZiAoZ2xFcnIgIT09IHVuZGVmaW5lZCkgewotICAgICAgdGVzdEZhaWxlZCgKLSAgICAg
ICAgImFzc2VydFRocm93Tm9HTEVycm9yOiBzaG91bGQgYmUgbm8gR0wgZXJyb3IgYnV0IGdlbmVy
YXRlZDogIiArCi0gICAgICAgIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1lLCBm
KTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLSAgdGVzdFBhc3NlZCgiYXNzZXJ0
VGhyb3dOb0dMRXJyb3IiLCBuYW1lLCBmKTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLVF1YWQgPSB7
Ci0gIHZlcnRpY2VzIDogWwotICAgIC0xLC0xLDAsCi0gICAgMSwtMSwwLAotICAgIC0xLDEsMCwK
LSAgICAxLC0xLDAsCi0gICAgMSwxLDAsCi0gICAgLTEsMSwwCi0gIF0sCi0gIG5vcm1hbHMgOiBb
Ci0gICAgMCwwLC0xLAotICAgIDAsMCwtMSwKLSAgICAwLDAsLTEsCi0gICAgMCwwLC0xLAotICAg
IDAsMCwtMSwKLSAgICAwLDAsLTEKLSAgXSwKLSAgdGV4Y29vcmRzIDogWwotICAgIDAsMCwKLSAg
ICAxLDAsCi0gICAgMCwxLAotICAgIDEsMCwKLSAgICAxLDEsCi0gICAgMCwxCi0gIF0sCi0gIGlu
ZGljZXMgOiBbMCwxLDIsMSw1LDJdLAotICBtYWtlVkJPIDogZnVuY3Rpb24oZ2wpIHsKLSAgICBy
ZXR1cm4gbmV3IFZCTyhnbCwKLSAgICAgICAge3NpemU6MywgZGF0YTogUXVhZC52ZXJ0aWNlc30s
Ci0gICAgICAgIHtzaXplOjMsIGRhdGE6IFF1YWQubm9ybWFsc30sCi0gICAgICAgIHtzaXplOjIs
IGRhdGE6IFF1YWQudGV4Y29vcmRzfQotICAgICkKLSAgfSwKLSAgY2FjaGU6IHt9LAotICBnZXRD
YWNoZWRWQk8gOiBmdW5jdGlvbihnbCkgewotICAgIGlmICghdGhpcy5jYWNoZVtnbF0pCi0gICAg
ICB0aGlzLmNhY2hlW2dsXSA9IHRoaXMubWFrZVZCTyhnbCk7Ci0gICAgcmV0dXJuIHRoaXMuY2Fj
aGVbZ2xdOwotICB9Ci19Ci1DdWJlID0gewotICB2ZXJ0aWNlcyA6IFsgIDAuNSwgLTAuNSwgIDAu
NSwgLy8gK1gKLSAgICAgICAgICAgICAgICAwLjUsIC0wLjUsIC0wLjUsCi0gICAgICAgICAgICAg
ICAgMC41LCAgMC41LCAtMC41LAotICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwKLQot
ICAgICAgICAgICAgICAgIDAuNSwgIDAuNSwgIDAuNSwgLy8gK1kKLSAgICAgICAgICAgICAgICAw
LjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKLSAgICAg
ICAgICAgICAgICAtMC41LCAgMC41LCAgMC41LAotCi0gICAgICAgICAgICAgICAgMC41LCAgMC41
LCAgMC41LCAvLyArWgotICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCi0gICAgICAg
ICAgICAgICAgLTAuNSwgLTAuNSwgIDAuNSwKLSAgICAgICAgICAgICAgICAwLjUsIC0wLjUsICAw
LjUsCi0KLSAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAgMC41LCAvLyAtWAotICAgICAgICAg
ICAgICAgIC0wLjUsICAwLjUsICAwLjUsCi0gICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAu
NSwKLSAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LAotCi0gICAgICAgICAgICAgICAg
LTAuNSwgLTAuNSwgIDAuNSwgLy8gLVkKLSAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41
LAotICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKLSAgICAgICAgICAgICAgICAwLjUs
IC0wLjUsICAwLjUsCi0KLSAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAtMC41LCAvLyAtWgot
ICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsIC0wLjUsCi0gICAgICAgICAgICAgICAgMC41LCAg
MC41LCAtMC41LAotICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwKLSAgICAgIF0sCi0K
LSAgbm9ybWFscyA6IFsgMSwgMCwgMCwKLSAgICAgICAgICAgICAgMSwgMCwgMCwKLSAgICAgICAg
ICAgICAgMSwgMCwgMCwKLSAgICAgICAgICAgICAgMSwgMCwgMCwKLQotICAgICAgICAgICAgICAw
LCAxLCAwLAotICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAwLCAxLCAwLAot
ICAgICAgICAgICAgICAwLCAxLCAwLAotCi0gICAgICAgICAgICAgIDAsIDAsIDEsCi0gICAgICAg
ICAgICAgIDAsIDAsIDEsCi0gICAgICAgICAgICAgIDAsIDAsIDEsCi0gICAgICAgICAgICAgIDAs
IDAsIDEsCi0KLSAgICAgICAgICAgICAgLTEsIDAsIDAsCi0gICAgICAgICAgICAgIC0xLCAwLCAw
LAotICAgICAgICAgICAgICAtMSwgMCwgMCwKLSAgICAgICAgICAgICAgLTEsIDAsIDAsCi0KLSAg
ICAgICAgICAgICAgMCwtMSwgMCwKLSAgICAgICAgICAgICAgMCwtMSwgMCwKLSAgICAgICAgICAg
ICAgMCwtMSwgMCwKLSAgICAgICAgICAgICAgMCwtMSwgMCwKLQotICAgICAgICAgICAgICAwLCAw
LC0xLAotICAgICAgICAgICAgICAwLCAwLC0xLAotICAgICAgICAgICAgICAwLCAwLC0xLAotICAg
ICAgICAgICAgICAwLCAwLC0xCi0gICAgICBdLAotCi0gIGluZGljZXMgOiBbXSwKLSAgY3JlYXRl
IDogZnVuY3Rpb24oKXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDY7IGkrKykgewotICAgICAg
Q3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMCk7Ci0gICAgICBDdWJlLmluZGljZXMucHVzaChpKjQg
KyAxKTsKLSAgICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDMpOwotICAgICAgQ3ViZS5pbmRp
Y2VzLnB1c2goaSo0ICsgMSk7Ci0gICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAyKTsKLSAg
ICAgIEN1YmUuaW5kaWNlcy5wdXNoKGkqNCArIDMpOwotICAgIH0KLSAgfSwKLQotICBtYWtlVkJP
IDogZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbmV3IFZCTyhnbCwKLSAgICAgICAge3NpemU6
MywgZGF0YTogQ3ViZS52ZXJ0aWNlc30sCi0gICAgICAgIHtzaXplOjMsIGRhdGE6IEN1YmUubm9y
bWFsc30sCi0gICAgICAgIHtlbGVtZW50czogdHJ1ZSwgZGF0YTogQ3ViZS5pbmRpY2VzfQotICAg
ICkKLSAgfSwKLSAgY2FjaGUgOiB7fSwKLSAgZ2V0Q2FjaGVkVkJPIDogZnVuY3Rpb24oZ2wpIHsK
LSAgICBpZiAoIXRoaXMuY2FjaGVbZ2xdKQotICAgICAgdGhpcy5jYWNoZVtnbF0gPSB0aGlzLm1h
a2VWQk8oZ2wpOwotICAgIHJldHVybiB0aGlzLmNhY2hlW2dsXTsKLSAgfQotfQotQ3ViZS5jcmVh
dGUoKTsKLQotU3BoZXJlID0gewotICB2ZXJ0aWNlcyA6IFtdLAotICBub3JtYWxzIDogW10sCi0g
IGluZGljZXMgOiBbXSwKLSAgY3JlYXRlIDogZnVuY3Rpb24oKXsKLSAgICB2YXIgciA9IDAuNzU7
Ci0gICAgZnVuY3Rpb24gdmVydCh0aGV0YSwgcGhpKQotICAgIHsKLSAgICAgIHZhciByID0gMC43
NTsKLSAgICAgIHZhciB4LCB5LCB6LCBueCwgbnksIG56OwotCi0gICAgICBueCA9IE1hdGguc2lu
KHRoZXRhKSAqIE1hdGguY29zKHBoaSk7Ci0gICAgICBueSA9IE1hdGguc2luKHBoaSk7Ci0gICAg
ICBueiA9IE1hdGguY29zKHRoZXRhKSAqIE1hdGguY29zKHBoaSk7Ci0gICAgICBTcGhlcmUubm9y
bWFscy5wdXNoKG54KTsKLSAgICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobnkpOwotICAgICAgU3Bo
ZXJlLm5vcm1hbHMucHVzaChueik7Ci0KLSAgICAgIHggPSByICogTWF0aC5zaW4odGhldGEpICog
TWF0aC5jb3MocGhpKTsKLSAgICAgIHkgPSByICogTWF0aC5zaW4ocGhpKTsKLSAgICAgIHogPSBy
ICogTWF0aC5jb3ModGhldGEpICogTWF0aC5jb3MocGhpKTsKLSAgICAgIFNwaGVyZS52ZXJ0aWNl
cy5wdXNoKHgpOwotICAgICAgU3BoZXJlLnZlcnRpY2VzLnB1c2goeSk7Ci0gICAgICBTcGhlcmUu
dmVydGljZXMucHVzaCh6KTsKLSAgICB9Ci0gICAgZm9yICh2YXIgcGhpID0gLU1hdGguUEkvMjsg
cGhpIDwgTWF0aC5QSS8yOyBwaGkgKz0gTWF0aC5QSS8yMCkgewotICAgICAgdmFyIHBoaTIgPSBw
aGkgKyBNYXRoLlBJLzIwOwotICAgICAgZm9yICh2YXIgdGhldGEgPSAtTWF0aC5QSS8yOyB0aGV0
YSA8PSBNYXRoLlBJLzI7IHRoZXRhICs9IE1hdGguUEkvMjApIHsKLSAgICAgICAgdmVydCh0aGV0
YSwgcGhpKTsKLSAgICAgICAgdmVydCh0aGV0YSwgcGhpMik7Ci0gICAgICB9Ci0gICAgfQotICB9
Ci19Ci0KLVNwaGVyZS5jcmVhdGUoKTsKLQotaW5pdEdMX0NPTlRFWFRfSUQgPSBmdW5jdGlvbigp
ewotICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICB2YXIgY29u
dGV4dE5hbWVzID0gWyd3ZWJnbCcsICdleHBlcmltZW50YWwtd2ViZ2wnXTsKLSAgR0xfQ09OVEVY
VF9JRCA9IG51bGw7Ci0gIGZvciAodmFyIGk9MDsgaTxjb250ZXh0TmFtZXMubGVuZ3RoOyBpKysp
IHsKLSAgICB0cnkgewotICAgICAgaWYgKGMuZ2V0Q29udGV4dChjb250ZXh0TmFtZXNbaV0pKSB7
Ci0gICAgICAgIEdMX0NPTlRFWFRfSUQgPSBjb250ZXh0TmFtZXNbaV07Ci0gICAgICAgIGJyZWFr
OwotICAgICAgfQotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICB9Ci0gIH0KLSAgaWYgKCFHTF9DT05U
RVhUX0lEKSB7Ci0gICAgbG9nKCJObyBXZWJHTCBjb250ZXh0IGZvdW5kLiBVbmFibGUgdG8gcnVu
IHRlc3RzLiIpOwotICB9Ci19Ci0KLWluaXRHTF9DT05URVhUX0lEKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy8zeDMucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvM3gzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmNmMWU3NDQ3YTNh
OWFjYTQwYTgwMzgzYjc1NTAwMTc4OTk0MWU2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0
ZXJhbCAyODA2CnpjbVY8UzNKTFh6UCk8aDszS3xMazAwMGUxTkpMVHEwMDA5MzAwMDlCMHNzSTIq
LTllbDAwMDA5YTdiQm0wMDBYVQp6MDAwWFUwUldudTd5dGtZUGlhRiNQKjctWmJaPktMWipVKzxM
cWl+TmEmS203WS1Jb2RjLW95KVhILSteN0NyYWcKel5nPklCZlJzeWJRV1hkd1FiTFA+NnA8ej5B
cWZ5bGgje2ZiNjtaKHZNTVZTfiRlQFM9aipmdGc2O1VoPGlWRH5WCno8UlBNdGdRSkx3JUtQRGFx
aWZjQF92WCQxd2J3cjl0bjswLSZqLUs9NDM8YlVROGo9SnNYYHRSO0RnNysjXkt+SAp6SyFGTSpa
fnpicHZ0JUsye1VaU1lfPGxTKkQ8WiVMejVvR3UoK2RheXopaFJMRmRUPmY1OSZnaFRtZ1dEMGw7
KlQKekk3PGtDNmFZWWFqelhwWUt0PSg4b3RQJDUwSDZjX1Y5UjQtO3taQEMwQU1HNz1GPFJ4byVv
cjEwUlVUK0FyJTNqCnprcExoUVdyIyFvWGdkSWAmc0tePjA5WV5wNmxQMXJJUk14IzA1Q35jVz1I
X0F3KmJKLTVEVCZaMm4reClRSFhecAp6MDBlc2dWOHxtUWNtUlolMDJEXkBTM0wxNnRgTyVjMDA0
Tkl2T0t2WUlZb2g2MnJZMzNTNjQwYEQ5JVkyRC08P2kKejAlNGohRjJaQDQ4OFUlMTU4KDY2MDA1
d282JXBXcl5aal92NHpBQTVIamNJcVVvR210MkxCPnJWJm5laCYjUTFpCnowMDd+MWUkb0NjRlM4
bmVJfGhKbHstUCFCMVpaOWhwbXEwKVgwaWBKd0UmPiQrRT8+JV88bFMqTVdLK24rMWNnZgp6PGso
OFlMUig/VlNBRzZ4IWU3OHd7Y1FQdUpwQXxkO0opR3tmaWhpek0rRXJiIXAhdGNyNXcrYTM0fihZ
PThzNEcKencrc0xMOW4mSmpObipLSkRpcV5VNV47YDFudkMtQHI2UCQha30xVXsoKkk9US16QHRC
S0hvSX11eGRVNWR5eUB1CnpVMUowR09EN09tYmltXkcwMDhwNFpeNl9rMm1ecDxnVz1EMnxMO0hq
TjEhRERmTSFYT2FSMn5iTD9rWCQlQ2tTbQp6Mm1rOz9wbilvfEteeWVKNyVhZEI5S2krTCEzK0Zn
SGlTWVgjS0otbExKRE1uOUNCYk90YiMlKWhSdmBZRHF0X3YKektwaXh8UUR9eWZhMUppUVJrI2o0
YTFaKW4yJWY8eHluelY+TEM2UmJWSWtVeDBiK18rQmFSM2NuVDdadiFBSnhXCnppekZiKWghanlH
T09aODVGO2E/REFYUHttQDshMF9JZnE8RXh7KjdgMDVYRjdoUCsySGwhM0JRSj02QGZMJUZDbwp6
OGlZb28zKCNiQUZgQURTcHF0UWd2Pkg4KEhsZ1J4dDdzM31rM0tga0Z1Pj4tMlEkUU1GZlBXIUxh
e2gzMzZvPlgKenVfQ010dEh2NnpSOyZaTmlTPVg4djNDUiNma25VeEhVeEo8QVltUnNOTFdsKlBT
e0FPQVJIdCM1IXdraTI/Szt0CnohWTNrPXM3dGdheClKJXI3LUJMcGhnZTd+QmkwZys2RTZeWmgo
cDlUQm9jezNHQUZyXjAhZ3U/Uk1IYUNNJCZGbAp6QmszJXVuPjB1b0JhX002V05XZXFJZ342UUU2
OWM5byNleWhHdnBpT0FAVy1hb25rPDdyMSg/ZkN7b0k1TipVITQKejx1djY2V3RjS1NSaW0weC1L
ZTJkNWpCcm1MYW17O1FtO3ttczFyMUdubU5zYjdELUVgdClpOUY4ZlhgMl9pMy1fCnpiaDs3VWxe
I3gpJnt4dlM9fHx8Nz1tWWUzMz1NYEFnVTUoeEM+Zmc9Mk4tNz1jTm5qak9ye3lyaXk2bU1GZ0cj
bAp6bkNGPWZuUXY4Q0R6KytvNl9Mc2NsfWVRK2xeWkhBUkg+P19zQHwjI1JyNktMUkZBMSVRKz0q
UlJXbm9Mc1JgN1UKenQ1dkY8UTByNDBRKWo2PXNFNFgmc0JjdDFxPCZmYmkzVkIyT3Y2dEBxKjAp
O1UqbypTQVBadnx2dkAyYVlZblQwCnpiJThhK0NiNy1nZTBEMGtuRWY1UWkjQDhUcCpjZXtOOzZs
cFF1Q0IlS0xfS09hcm01Y1A2XzhJcjxlMTdpcnk2Twp6RGRIJmByWmh+c0Y9YnE5cytPMFFTZ1N+
QFFMOUpteSo5NHhyPTZ5fk1ZfiExZmV0fihOKyg8PU1gd0BEMSliK3AKeio7QyE4M2ExdUxKdiNO
U0V+O3kjOD08PkljZlczQD93RnB3VVZ4clZaPlFkUXozMktJZUp9a357Y1paRV4reWE/CnoyRDF6
IzJIT25JNyhCJV9hYz97d0ZVUTtRUUExdEJLdHJXcm0wXzNSZ3BzKz9KZnFie2pZYmNRWH50YVJC
OyMkeQp6Wk57U30xfH1nVU9ISnhjP3dWM2Z4dXorbUo0YCFGJElaO21xUnJOc0hKZCMjKkR+anU9
YlA3Py0/dn58Y3Y+dkIKenNKNkllTndWWnhyZGpUYHlsI2JCSWEjR3hSYSN4TU15O0sjQ0R5eUd5
UWRNU3hsV1QjdERlP3AhPzV3VCQrb0d0Cno4TDtLcDJIVVEtWk1KPTNYSlF2O3g1Y2kqP3Z1VGZl
WSQ7KHtYR1dfaHVJRlI5YTxmSmJGXnw0SSN4UX5uJERjPQp6S1loalltZ3o1TlNrRG04KmZabXs2
VSE7WVhgTkc+KD9AMylYU3M4T15ONVJ5T009VFRtcCgzPTheK3pwejJyKUMKel4+Sk97ZGVaZnNv
M29xMz9XbyhZP2wkZ2U/dVhvOyVydWBWbz4/PDwoOElfPjs4RXEjS01TOWdGbCpuZWVvc1NCCnpm
b0hZbkJRSWt3a3lvd1B1KHpkbXNgcHs8N2U0a3JhLVpXcTwyKk9zR1R2RVYlczBUZCRoWFQrISo4
Qm5oMktNZQp6Qm1aUm9kakhWP3IrXzVeWDlKMFdMNGpLV2B9bGYlQS18NDRJQEBMVHZmMXJIakco
emU2K3dASnQlQnZqdHMhWDAKej8yeFM/X3ZlXy1rPE11amc7MEx6KjNidUc9MyRHJmVoZXB0aGxO
KiRLYU95U1NRXm5XbW88ME0rKFVFVU1FWFJRCnpNQmJaY0Y7NitLRWxNPmlLQl9LaUpsWiQ5R2Bj
Xj1FQG9ORyltV1dhTm8tM1RJVzgpJEhnMFViLX44P0todko+JAp6MyombmltQG1qKGFDeEU1IXR7
bHc3TzVeMEVJTzd6T28mYzZsPCt8aUR5U0JXQ0dyekBDNXtTdCFYM2hBQX1gVDQKeihUTGJYVHEr
KDtAPD1MOGRYbnNzeWZ0fHcjV1NUVzwrKzM+c2dTJSg0TlRwZUktVkFxYnw3c3NKdnpOSGdPWlZ1
CnphWUN2Z09fUjF+PlN5TD1jRlV8fmd8aHl8Wml9fXM5K2R+bFlxT0I3MXo5WiR3bkM9cFI5WXo0
RGhJTT5XbWpndQp6JjU2bzZtYUNwQyZGIyN5JUc7MVBvYlI5aT9Hbk5nO2dZdGNoRCVwMTlhIWVR
dFpGJjNKYUt2MzNnWjw4RH40N0UKenRVUzFpd2ttRGFQcGo9JG0jJSlqQ1ZFWTRmbkxHTmcyQS1g
WXdIVkQzZ3Z9Oz4paEF2VH5BbXFTPkxyYGBpN2t3CnpKezVfSXRgeXJCbWxjMjVEQk83RTg7NVZv
em5SPld3NWhBYXhuJDJ+KHFgJUEtWXVTNjR3a0J5PTlkbWA0Y1hlWAp6NGN9SUA/ZStGVytiQF5S
REJIVih3bk1xMnpkWDNTV3Y5dWAle3hDLXEqVX0mYGN5WFYoJXJSVCpaNk1IP2kraSYKel9COEMo
K2dyVCV7WFdVUStmQE5vUDFSPUFXJjI2e3YtZHgpaUteLU5taXVqOHR4aiFtP1oqU3MxTntkaDR6
fTAxCnopWVRvKkp5Y1NVKStfNXI0I3l3OXsrO2k0RWUkcGVSZ0lqKzt2O1pHZEYxSyQzRSVlfjRM
YUkoakMtdSUyaCQmUgp6OWNMWGNZQ0BYd25ucyZibilfUX5UZT9yb0tHRHxkLWdeODsrYUN7e0co
MV4oTzdtMzdZMS0rNikwMWNOJnkxYXcKem9xY3tUYFBeWEpxUEJiSVc2c31kNHt6X2Y1T20/dk1n
TlFFSkc/djJUPUtZZF4wTTNJNklaeGJueSkldlpSJkxECnpKcFBsQFBzaDhReVBCQEtUeCtAUmRj
QyFLWDd9a0VvO1N8al51MmxVN1hRfU9vO2Z8O3o0TGwrX3I+QDEteGwzfAp6YXdxLUglZSZja0Mr
QEFoUHJQNkJLPHo9PEwqMGtmS1VAQ1gqemVxYllRVDQoXlU+VCNfWGRUNyY7Rjcxan1Kb3kKemtD
fjZsaDdFQDZvO1dAXklwUk5ae3B0THRMKGdRLUNZfjRtcVc7VVM3Wnh2bV98QHl6JmU1M0JwX2xU
UGxmUHx6CnpyVHl4Xz5sdkB4Iz1eIVB6UjdxcUY8JGdtYHxaSlorOzwpQ3F1Jm90PGF7ODFERjB+
cnZHcjVYcn44dWBsYXYxaAp6MUROeXRWPjJ6PTAwMDBXVkBPZz4wMDRSPTAwNGw0MDA4O18wMDRt
TDAwNENgMDA4UD4wMDI2ZTAwMCtubDMmRn0KejAwMDBYTmtsPFpjLWt6LXU+ay04MipWKXl8SXUt
Z2pmRUtMMUJ3RngwUlI2MzBEUlI0YHtQYUlMO3dIKTA3KnFvCklNNk48JGYra3h1aVUwcnIKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ibHVlLTF4MS5qcGcgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ibHVlLTF4MS5qcGcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE3MGJiYjAyMTlkYjkxMDM1ZDhlMzdkNTZhNjU0OThjMTA4NTFiNmIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzE5CnpjbWV4PTxOcEgmMFdVWENId0gjVk1nfFdj
V2NkRyZMQl9jI0hMKVokTVdIO2lCdHlhNyg+RmpOS1RqYzEhOGJBYQp6fDdgfG1rWG5pVyRQa0pR
MEJRYnpmSSpPaGZzdWljbk5mKj5Oc3k2UWtuI1QhMjJyNW43KkdLaFAqXzkmVTZjVyYKbTctJFR0
U2BNJmNLe1FjZHB4azJNVlAqdGMhens+UCYoSyNPe3l9Xkh8QzwxWkJfK045CgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvYnVnLTMyODg4LXRleHR1cmUucG5nIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvYnVnLTMyODg4LXRleHR1cmUucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNzhjZmU3OTk3OWI4NTIwMmJlYzE5YjhhNDU0ZTY2OTM2MWVl
OGNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEwMDUwCnpjbVhBdmNSWldsK3M3
a1Q/QVV2Y3FIMzQ0UiV9SVdVdXRoIWQpM34xUT09NUlzI2NCS2RscHJAQ344SGk2KGVaRwp6X04y
ZShrMzBBSUUzZi1wKkUhZXVUPF8wRyg5dSNRQSFIeH4wMDFOfSlSZ285MDQmVDl6eWB2QHtON2M0
K1F5NmwKekZPPWpCezBvamtnMGpwRTN5PDVUcFpRajZfMCk3cXQ/Z181JE9iRTxyfkJaQDwwQGhV
JnImMGNBIT1MQjZCQXk8CnpRXn1uXngjeyV2I1p4YHVXcC1jbFVVKk9gSkJvKShFNit0QjI/dTw+
V2xERVItNXU5ZT5sXk5kVHh7THpoQTVDewp6JmFBeno+bEVCRFh7cWtLbz9wSz97TUcwRmFEbCEj
R0ZKamNfI3NLeDJPZiZqQDBVcFlAbFc4KXgyTUlvVWxAXzMKel90TmFxWSVUVDk0P05ORndsYU5E
YXgkOFVmTDUxZnVadkdGXlFTRVBMaHNKJT5ncm5jczxIXzB7UlZKcFUwakA8Cno1dUZGc0hLQkl7
V1REOHNlZkk7WU9NUTdPV1B4e3IyIz9yXi1CYnJ4RytRKjd7UlBFKWBAOSRMekRBODJ5bnJzRQp6
ZTJrMllSX3heN1lnTTNIVFUrYUA8XndwR1VJdz5KTX11e1BpbyFfMHNgOFgjeGh5eVNJVyg7S3VR
djRkYmhJODIKektCcHhgXjVuQEFQPmUheCkqdzJCM0V9fUxEPVJ9dmxmQWJMeWBybyFzPC1nSFNh
eCZ8PSNwWiRaMWtGVG0rPz45Cno3NHdJWWpoXmVpUHJOVi1udGtVeFhhMyRvZThwdk1sS08wZlYp
MWt7a2N4dTYocGsrVlhfI3xPJXY1d3Y3WEMpSgp6QG92Pj0qcD1+VkgjWSNqQXtlfGYrKWUpX1dt
ND4mYEtGcTJtPXByUEk7emxIUCo8SD16M09hIWU1S0Q9VmpAfCkKellXcyNiT1NJZUI/ZmdAZFI/
JVdyYnV9JHYleHlSXmp9KG9NeHB2IXgrbXFJVVA3c2p0ZnAtaH4jclB7KFpgMVYlCnpxZyhzdFpm
NVVUblUzP2BZVV4mSng7QF9sTjx2ciNRalN4aVF5KUx0SHR5P2RqPHZ9Z0dPaG41WUJ1OXU7dml1
RQp6NEpXOTJMVHBPekg8PX1DbUFuQ0t2Z28oT1FwdUAmLSZOMTY5MzE0fEljPnxwVyY4SXMpRn4+
Ylc3P3E8TndoK0UKemZVSSUqckI7JlpiOWV4WT0zSTBnIXZDbWM1cVhXTWp9bk87V2VHYWB0fDhS
KF93fW9zV2RvX3JUQkxpUXxFWkNYCno4XlhmUG4zVnEkWmpZVks8fD0pbVR4WmtQO0NeKmt6Mjlm
cz44WDNlbUBuIzZYZ1l5JFckVnd0SWdldUhwPiV0Swp6bX5OflV1ZGUhemBfJTxuJVU9SUFwOUs9
WTNjZHoyQk49SHUhX3pnVUtnM3p5IVh1bVhKaSRaSmJ+KWd0R3ZqJT4KemxrVXFYK1J0dlUzczte
TXFWT3g5aEEjUkpKKXBNRihTNi1GR2J1MV9ZYmgzJihVe2xFP1k5TWZBckN2Xyg+R2V1CnpFUnF9
PEBuek4zNn0qSW5oditgSHdhKE8mYEBnM3hNVkcoVShoMW5lJnZKXlkrS0lkM289N2l0VjRZdmMm
MzlOMgp6I2J6PyNOMzskMyskc0U4eGs8QVQ9K2xJZE1zRiRUdW9oRGRxV1lmQFd1NDIwVVVhIz9y
eGdxcVorQkdJdHJRcVAKemJVTHgoQGMmRXUmfS1lXipIKS1jRGh2YnlKJUFpcztuOzgtc3w5ckFW
bDtVO19VYk0jODh6N2IrdVFwOz0pVFpaCnpTOyFgWilwKlZtTjZXWCVfUyV6cVYpJkwxKk5mellG
Kjw/eyFhcGxZckhsST8+d2k7WGB4cGJ3NjdndGFQNTg8Iwp6RS02e28qVC02UHxGX357WXdTX2M/
YVd7ZDUmQiE+I0hXMGFNUE9+KSoyM0R8Yyp5cm5lWjEqaTQ7aio7dndkQ2AKemZDc1dYcVU4JGFy
UHxLSEYzWEAwdSFKMmVeRyVWO2xiPl5xTGNaSFZ2NWF7THhvJmczKyF5M3F5SXk3S3ZEVEtlCnpf
TTkyekV9ZCg2YXxaMSNgYHNaTk8qSFBlc2woY09xTnN4KDNES2I8YkJLcT4zPUpJeHtrKDYhcWc9
RUlLK3RQYwp6RU1nTjl2a1R3OWxwK2x8U09gVV5DP1ZLYDI/ZWpMLXIqT21AQ0w8R0NrK3o9KVpU
cmlSeFRNaHZsOHthYDFga2MKejxSRWBqbS1HcU9Lc2kmK0gyamlENkVPT3I+c213Yj9TJnkhKTZl
OE0mcypALTRaN2FtKT5oSmMxQEIyVm9SK1pvCnprNylEPl9TUSEoWHxpVSRKWX5QYCl9Snp7ZENR
KzZ3X0FeJnpIQSFXWSt5X3V1PEt6e3AtPE1NdVJEVjNVPTRERQp6UT4hS1clZDFidGZXcHVqUGx7
cHk5aE50fUk7VjJIKHNzME9LfDB7U1Q5WCEmSXF+M3E0TkQrYyNzMVBEYEtZLTgKejlXJUtVaDx2
e3tAKWlzKGtsTW9iTTs5Y0NuQzljSWJkJXBhLW9We3VRZENyWWlDKj1ke0AhKWNkKC1MeElSdTZh
CnpqSnhuaFo4fipkbnJNJVApckh5REJKfHMzVi1VSmFxJW03cCRkST85JUIleDl2fk5FTHFXJTt6
KktMKjVKQXppKQp6aikmTFI7XjV3bFd8ISZsa0BMTlEwJXFjNVUpcDB+S0w4Xm1nI081bD8ka0JB
dTZyYFNKQ3k0cXtmQVdmXko3QCEKejNpKkgzUz94cX5YazlBXzs/WVIhU0x3Sj42WjhmTj80UFF3
eE53KGtGMnw7JjdETE9RRjZNcHopTEJ1XklXajwoCnpES284KUNabX0pP18yQyk5SFI7TV5oaz97
PEV1UH47JThDc3I0KnRgJUVMQFNnQGdQTjZLUGs4JmJLMCRraXg+awp6cWpTTHJYKX1KRTJJPEAw
NFFRMjw7d0FBWSVCJXo2JCE4YnBsP2s9RikkJjhIbUZsJDkhfCpLeDFgKyFhTDZeZDMKeipAVjJp
QHd8aktDMTYxRD8qT19NMFYpZ3NPLV8+SyE7MjFER2kwVWBoYn09NVNle2tXPWE1SmN7Iy0mfTJu
VzRQCnpVaUp2Nm5xMV5URkd7N1JSQ1FramowRT1YNTBuWjlodVdBejFwbUxoa0Z0aXtDU29jZlIp
UDFAJkA7Tk9rKHJ4dQp6TWBXZCtvSjtwVyEqcSZ0UjB5WmcqMiEpTkRUUmpaT2dtMSVFZn42eGc0
bytMWmdaTH5XJlpHS3h3PCtxOypsYDUKemFjV1ZoLVBWKyRjMjkjSnc+QCMpRDc7aEZyUn5qYXN7
UjYmN0VSOGRQaGt4Z1pHS0N3YXFIezRFXkY3JWQ2e3VgCnpsXyZEJW1PX3FOak9yZ0w0Y24mbXY8
QTtqJjYrdFFoPjVjYTJ3TXIrP04oN2VtaTY1TSFAbFUmUnRhRDJeM1lNKgp6NGlUY3FgV2N7VDEp
WDkrN3RyNFBATkwlNTBGfUJnLWI9I1grSzA9RjxWRmhkUDZVO25CbkFHJFJkSjN8ZXFwQnYKelky
RTBMQWxgNnJCK2lKT3ZBQX1TaHVqVjhRKz1gb3FIcUZVbWJnUHZITmh4NWVnQldESDNzfCUySzxJ
K0EjentvCnpHTSRIOzU9eShlcX1uUHlYKTNgR1YtRzloRU5Ha3QqZTNZNSUqZWEmWnhxfDwjQ2Iw
WjBZTFhyS2BPIU96bz9LMQp6Rn15YU5ATHFTO2k9KmB2OEJSe04kd3tISCotQWsmUVd6dClDPFZL
KTN8WGheNUs9bEZwWV5zWVAwO0w7eFpJJE0KelN7MVcqRFA4MDJ2cVZJdGFwcnNtTGFeY3dUcjVO
QzA8cCtuRE45bys4KSFoXmFZNkJkKCpfJSNXU0xWbyoqXkxpCnpsZDF2OG12RFd+M2g/UytgbUJJ
QStiZz1kQXJsdzEmZ218QzReWFZeLXd5IzJRNl9FdmZSTmc8JDl9PHdXez5TKwp6TGUyTyZEc24w
fW5PNjhlYXFucTI4Sn1ePXtFTkB4dTBvU0IwREdvNyM4OShMWm1aUCY7USkkZmIjIXpYSWtOZU8K
emJ4RCptSkN5UUNEcHJhcFE+aWBJOVF+Yk55PnpkNXA0SV5Yc3I+LXw5T3w/QFdOT1deT0dyanRt
N0d7PG03Rz9KCno/IVoyKHQkbTYzcjF1YSUpfGROKGdEbnc5ZiV7dTNtSWcpY2A8RmlWRTZVQGtw
Wjltez1UPl9BMCM/PnVKUiMrdAp6MSp0USkkM2BzJWIrXmBOY2hhdUErenV4YEpPOUZSUVJaUSsh
Q01XbTJlTUc9UD80NTtLcG4hcnZlNjU7eXQwQC0Kem13cWFJVXF0fk9LWVJ1VWcyNmheQFR1cit5
Tlk2K2xNQ1JQSUJ4Y0ltTih5QGtaR2NOcFk3XngmWGxafXQ4YmRwCnp7TExVZ0pVSlMhO3A3Q2h3
QkEyb1Ulam5YdHMxMEVGZllmKG1wJUk2UTA/QEEqTSFEcDhYTDxkS01kVyl4WnlYKAp6TzslbGZ1
c35RISQmOVdqNDdrOFApenEpcClkZE13WXBfSGRQKFQ1VkFFRWpOWTZjKE0/azxNMkJNSlJtO31S
X2YKekRvWiNFXk9zUlo4QEQlPGczNChjMEt7VXc8QCUyd3oocnM3TTJlNFZVMH4oXzA7IXA+P0dP
M3h5O3B0MkwtN3Y+CnpNdCNAOTBHRSZXNFpsK1E3NGVBRE4wNjdrK09rKk1hZGpPI0E1PytOWSZ2
Uj5laD5oVlR9R3JuITYlTj5fMCRTYgp6NVl8LTliZTFQWEZ2ZERhU2IqJSlwSGlFU15wN3ZuVElC
a0xVPU1QJShrP1JiaTdGLURXTyEmU2BwZG5GLVVkUDgKelB7NTJIeHkpKFhiPzR+KSY4USNNaClQ
QnBqV3ZZb2xaTk1rbHtvXzZWP0ZDWUpOZ1J5T1QlQX1ePXpUYVU2V3R6CnpWLW1FWCRBaDBIXjZe
bWJAK1FxaWVDNiE7YUsxeU53S2o9Wl4kZXU7PERzPkNqd2BMTHVSJjtuci02WXkyOE8/Pwp6ent0
R3RFdSFkPFJKQ1olb3khP0JVZjZDYG1ZI2llUTwkVHA8NHUqdU14MyEpPj51eE5FT0oxSkcyS2Vy
SitiQWgKenRNYDVkZCpgKmF2fWhrNnBVP1JSQSpSJmxTK214PSpwWkpMZD9IS2FCa3o9e1YrJDZW
c14oIXs5UipCQUgmcWhlCnpfY1J0RmohTUJ6S2lFbj5hK2o5blgqenRDZVpTKUghQ31JKUtuK2dk
SWFRdkpkZV5pT0hydl9zJFlYOERgUUJDJAp6TExPbVErMjJUI3tPdEo7Wl5vfHNNUXBTTW95SkpU
NHdsUG1gKU1TbSk/Z0lkIzNDTz5QZ25tODV3clY1LUxndzcKekk2PGlaZSkzWTZ6OU8yKUx4N1Fw
ZUFzKkk8WWNBb1dJa0JkdkkzKHdLalMrcTUzfipUdDVxI0RufG9NMTRWQmZ4Cno+N0N3ZVVzJiQ1
Uz5ueD8wQnU0NyZoY2Z2aGE4VzR7eCo5ezkzemgxN0kwT3xLVVNkTXg7bDVFSzU1PyVlRXU8SQp6
dnA9andhfWp+JUIwfD9IbU1FKD0zKWVLP2BRfXQyMiZrT2YpJmY4e1NLPTlXcDU3MW1yWDk9TjQh
M15AN2w/cy0KemxBN3dZNC1VTj43R3M1WntxYit3K2w2U15JcUtkPCkkPDVkOERhNkB2OykqYkBV
T1h4X3tae3k3P31DM3U3SkpICnozT0ArKTRuRElNKlZOUnd7O1chWmZ+dVdlMlI2clg7emdwWjUm
dGBiNFlvZX1oe0pHYmB3QEwlU1Z1PWtnXiZPSAp6WjBzI3MoaWlAaEZsdzBTdjRkZkolXnRCV0gh
dypWdG1UMEpheE9WV2ZuQVBuVDJDYG4hbFhWVXlAPTNyaWQkTE4Kek5qanJhY3d7PnEyWVpYYEFY
a3QqY3ZuTkhvfWM+Y2g+Zll2UmwpQiZRYz5hSTdyT1VxdnJSTTw0IzZvIzFVfm43CnpXZlppejF+
STZoT0s0Kl83cjdgQjYxTzFhRlhzKzE8KylNZGFrZl4pcmFEeXgpbzI1Tk03M15tX3VTWGspKXRr
Wgp6UkkxMHdAV0R5ZHBHQTR0Vj9kVzFGb0hgblFGWVJKYntqKT5KOW5xTyE4fiFCRVVMRGh0MTxM
fnYmJiFDPTxSN34KeitYUXM4SEZONEBiPEo5M2FJYTBrTX0pUGpKKl5STCs8dTc3c05Lc1E3SF8x
ZyFFQm98Kkk1JE9VUkQ5JERTYmw+CnojJVowbHh7YEh9Y3c8aTZjYXI2K3xLITFHeE5uMjE/TmBR
aUhjM1lIbklNaTEzblNmcjtGKDtKaDBtbTh5O154MAp6NSZ7cGpTaW52Qm1hRFhNcFMhb2V8SnYw
Rm1nMXFOa1VYeCZXbDtIcVp6PGElYyQ9dFomZDk9PjxhWXY8RyFJO2QKemJhWiM9e2A+aW5XZ2tO
Nz0kfitTWSpnM25JMXFeJlJHfXdudDBeKF54dWZ+M3liUDhKaisoT2F5bW47dU01fmk+CnpSbm8l
ZnU3ZyY5SFY+PjIzdXcpdCFtZDNVJFVwblR4bHkzJFNBcldxZHcmOXltQzwkT15oYzdQYVc9KDdW
YGAobQp6e0E/QXgpJXxYK1I/TmlWdEBnKWNUTUI0OzBIJWR1ZjVyZCVLUDxpdnM8XjU9TDBAZXxH
UWtgK1V2Z2c9OE5Fa0sKejN0XkhWMD05PE9lb1glQ1NqLX1sSmI8R15PXnJZeE0paiU7XyVPO1JT
dE92OEMwdnp7Y3BQZ0JEMkFZMTMtakZ5CnpzRkN3SiV8bD5oYjtYKTZHdTxjYj4ybyRwdE9UJjs1
VFRXZyRMa0w9P2FxcGlAMVAmM3dkQ2NyWkw8MFopODEhewp6UGFlbzNCSkImXlJhQGQtMjlFMF93
MlgzKmtiSG8/WGN1TkMhJkkmUm9ac0ZWMj9uOEcjSWUhYUhYPUdWLXlJY2gKeklwLX5xWTt+emIx
QT9iTEVrYSQ2STNva3k2Y3Y3PlVpVWkhVk1sfWQhR0VpV043RUJ7VipXTUw9a0NgVzs+dGk8Cnpw
eDhUV05DeC09amV4VEdwJHNva2FiO0lKY2NoYkF0Tl4oe0YjNSlHclNGfiQ9OHdkR2VCODBpdmck
ZD8+Xkc0cwp6dlpaNypBVHNkbUp0NjExJV5ibDFubWJuPHNQUj80VCUxWXR6Yzw/ekokXjgra3Z4
SkBgM1MtVXVyT2F0YCtNMkEKenZARjQjOXFNQ2t1STNWZFgqWj1aLU56VnRDQDxTVGhXZWlXPCpI
NCl6QmNRT21zJit2TTE2KUNgfX09KCYzTzspCno2SH5jYVE3dCs9QTlMRT9FakdMTjxQajwwXzBA
WmZ5eVZGb15XdnBDcWdJdnxwb3otekFsSFM2UGIpdClFZ0BXSwp6WjdFdytxKGxMTnprNjdpeTQ/
LSQhbWczMV91Yj9oSXxXMHtYNi1QMTB6aWhhREAocz1ndmZ7V0YyRDJHRkpfaTIKemx8UGYxR3V8
VF5KRiY0OWw+ei1uPW4hOE1zIVE3dnpJUlg+elE2SUpUcjl2Yz5Mck9kdTFaKStPeEpqOHJrMnd8
CnptVXlfeT82ZytfUHRMQD5EQ1phZlRySENSPWZrI0s9OzVtb1ZgLUwwRDk7Iyk1eH1BK1Rvaito
dVEpQ2BtbFc2QAp6ZmExdDxOISU8WUdITSU7anZhYE05YEl6MlNIbnI8Un4mYjhRamFWN1prU3s4
X1JiT2NfMThucz9eTFBke3QpeVUKeis5PFAxUXE2dCsjSnxjfldtN0RjIWZfOEBJaj1xYXYoRX0h
aVVWbXBnKHhofUtzM0A9NlBGIUYjWHgwIXE0RTBvCnp1aERlVVgmQ0k4bjVlUHlaNDFaYzc+YWJK
JEkpP2dYN2dDMD9Ca0hjVl9fTGE+Y3Y2RmBfTWxoTjdlYGtgcD4xPwp6UT9adjkqYG5tRFBaMXo/
NHZHWkdtfGRlWlkmJT95M3JJbnBvJmRtLT5sOWRNYilFRUdMKXN9U1QzJWtffEhxMDUKejhGfVdp
NjJWMFAyNzxBYDNoTmg3UXRjfk5UVkhRQEd2YUFQP2NlPm1eWTNgRFhJZnV+eUlyQ3kyMXVJdyYy
PyVCCnpfNT0/S05XYmQtQUB5VlohPyhkUUNjK0dHSHVjdm1WUylUfCoxJGpnLSZ0TFElZVEqXytW
X1N8RUZwY35xSlF2NAp6UEhzWkt3WXJqZyomYUhiVkhfYT9ebzk3YDRnSStfd2lLWVQjY2M4Uj5Y
fUw7bitQTD9BRzxmMVhobjNZNWEqey0KeitgVWZOTVhzOHU5I3NyR19DLTl3RyFpYUZITDs3N3Am
WSkmYGx8T0B5ZUpTNDY3SHBAQFZwS1BoekdhLXdHRTRNCnote15FMWUmMldkJDk+blU8OU9eWil+
PWM4bGVqRHJxVGNDcnAqLUZrKW5aIUdwJXg4IzR3U3MxWk0+M0x7SUZ3agp6TmVRWCVHQjFjN25U
Tm1QamhyOSh1YHZiOXt2e2F3amtQODxsTzFjP19lYkJ4LS0pI3gtQUckVFdHPz09Y2YoO0sKelMj
NXNNdWdEa1dXcXNVT2tXYHtIQWRASCtjd1g/Pnp6YCs9dlQ0KlhxX1ViMk5UdnkxVnVMP2p5elhU
XmxoI0lzCnokU0xzfE1vd35PY0IzVUR5aCM9T2VKQHpHc2t6fn5HfUs3UXgzcjc7TCZUYzVVJHNs
d3MjeUZVPzU9WGYtckF9eQp6ZiFOUzw0YUk3VEs1fTFeZGgjbEtSOGctUztyKiheYDlKPGRYNil2
dUs8VCk2b0lId2w2UHpBQT9YYWBubWNIdz8KeiNsOGp+dCp4KFQ7TTktWnNhXk5mYGoqJklWUyRx
bVUoUT9CXjhILWJ1MSZab1BCOSVhTSNLTF5oUWl2ZUg9b2w7CnprNEJzWGRIbDVvbWgkelUhfnEt
WSZDaHhrO0VUUjh3Wmp5flZKQyU3dW9qI3xyczNvcntnUTdLdD0ma2wjZDxyPAp6TnpsbzE7YVZw
d156PW9ga0B2JnhpSkchdmU0SVU8VjliSFlIIzRpKjQlVjtORDgmMUV2eUw7XiprN1N0dis4MDYK
enBETiZjVmQ1a1QhZnd7aUhTOE1jTlBsQyZpNldfITcpPSNebiMxcFdIJVljOUxpe09lISV5aU5p
T2wpPlRVRTtYCnpmfGhVZ1Bee3txYXY1cHtwUFZQS2AlNCE2ZTZscElucTlMdVolRUJ7MjEqMTRk
az88OWg/Q0opMUVnO0N6bXVXcwp6MXJqa1JxKF98YzBAIyYhNkJQXiVRNnJSMDsxbV5rQ2ozPFY/
S0JmJTlyZih+JUwpZEQ9THxUSS1gUSR4WX5UZ2QKeiEtXjZoYyliN0R5bkdNbVlyQkNpWEBSU0hG
d0RvNnd+M2IrSGkqJjFsNVJiPklmJFA8R0EoQChyb1gmY05pQnJsCnolcFpxcncrek96dSh2M2Aw
TDN6blIjRmI5QztUblR3PX10NUchaU84IWdtV2FGZD0+RzlAYzkrUEsybigkSExoSwp6TS1ITEop
TW4hXkQmSUs0aCNlQGpuQn09IUgjMW4zbX0pPk9edEBafTxmdiN5UTg3bSQ2WTxKUilSQHg1T1A8
VT4KellGeGlII21fUnd8OCV4PlUjX209di1yYnZybHlMVDdtcTxeVXU9ZHl1IWY9K0lEczNrWkVK
N1FiK29KJjBoNXpPCnphVUE0b0k/eGF6TFZQV2BFaGQtTSVmR21wP0JVXnsxYlgxP1A8bHZnZFkk
fUpFXnd2LUR6Qnh2N00waGo9XzBebAp6bHRRMVU7fnBIWCgqdzNwMzhzRkI4PzhaTXdsLVE8MlNY
cDZtfHRjKGlOQz5wSnJFJWJuWX5+bDNUb343dDJgPEoKejUxYD5pISokNTI9dDxUYnlLbU1DR29L
KUdhWGp2P2NITXloXkZeJH5RQ3s9dHo+Z3g3eCZWNnN2fFI1NlA4U1QqCnpLI2JhbWE4VkZeXjxe
RzFQP1Ffd1U1Sm14a2xNUWZaJDdKbWVIK0VkSCVuPlpQITArWmBKQ0lzPmlPSm8lQ3N2bwp6RFVo
K3ZXbDNnQFp1eWM8QX1IdWYoRzkzJj5ZKD84bU1wfm9ffSNFTyFtWnl7SzBEemFfVmE1R095bFAj
UEdhU3AKekxFKURyRSl+ZjYpVDJlTVNVX2FVTCY9KVpxenYtcjVnUX4xUEZ4VVpIRDRxanZSayR3
ZThATnBuNXViKFJlKXtBCnpjRGEkYVIpMnF7c1N1dTRjZXlCSmhoVl9OMkllfFo3ekA1ZlNoVCFa
SVFZa3lAeiQ0VVJAY3xwVWo/blRFTHorawp6VGBoWTt7IzN8NS1+eW0oNGg8bHpFI2Q/eFYzMEcx
MzF0ajhhXmo3OyVraCEjUjFBUUY5WENVVmp7SXEydFdXRXMKemtLWmdCYXhqPkNeN1VZbkVAeExW
N2BWWm05ITw4eE5PI0RaVXBUI3NENG5nT1BWWUM2UktjWlYqPmUteD1YXkhaCnopWmFtZGhxczdF
WnN4bzdgMEBXPyZJQ3s/bXNBOzRaK0UmP24rYjBEdlU4UzlDXjBgTiU+ZjlFQ2okSEw/ezBSQgp6
e01HfkZSbXYqUWh4fCRENHtQfGU0R3EpNDlHfU1iSG9eaHlyNldqWEwrbzQ/WThgKXomYTtWRjUr
JEopekU8cSMKenFKJj9yNDcxMnMhcEc8Wlo/Xy0pRyhSbnJhIT5sRz1ZSTN3PlF0QGl1YSk8KHdT
ZDFqUnE7Ujh2UyN8fWd0dGQkCno1ZiRMNGBhMENrZ1o3SmM1MmtZdHlqXyh6Syo5a1RrRXNGTnt3
Mm5kc1N5JkdOTy1EVEJzJDgjVG1nYHNEPjVZZgp6OF5kSDtPcnh+dGIxSTVMdVlXdnN7YG5ie1k9
SHMocVMrJlpWcENzVlkwJVVAR2clQFUhfTB3QlgyWVJNRENRej4KekgtUDUtbWV2NH5IKnQ3OXl0
WEdSQVg7Sj4xPGVZQnJ+MWleUVk7SiZnOz4lVUc1O0c0X1V2U2N2a2p6c09NayhACno/Zip4X3Fi
NkxUQj5nMjlNWWhsTFQ3MnZDRiluUThselo0PmVSKGcqaCM1IyZjbmJQI3hZVnlgO2FUPXNZOFE/
JQp6Iz5pO3V5R1BhNnpoJVBEN2ZGT0xjb0tleDVNbGZLTjttcjw7UjY4IUREUnojMFpzV0M4RyVo
KXR9bCNic142PD8KellSMHVJZkRHWVFXKzs1dE0ta1BKZ2JTQiRlPkM7K0x0LVE+eT54dWVfaz52
Yi1IM31GWF4/OzFTTiN4JWl5Xl5sCnomSHE3Q2koSUFyKE1kdCpYNjlBMiQrYVhTaT5zeyhqeVRo
Ukd5MndRS2t0ZUFgaTg0c1A5e2dWaWUyKnpnamc+UAp6KVlRUG09ZDBiXittRkpXRmotbzkwWHQ/
YEphISYrNXVSQWotRU9taCRxQUM9U21nbHctfEA4SnAxXmRqe15Je3UKemdfSGRgR0FlUGRTbHQo
THs+OGZlPl5lV2tAZHYkdE5qRmBCMFlmclR1SGF9M1pJOXBaYmxDbSo2eCpgbmBPZjY3CnpmVz9w
NGNLKUdWVkIhI3oyYHxCYHlaNFRwPX00clRJI1Q0OUBTX1dnMCR0RClfJX5Idkx3Sl92cGgxR2w7
QSthfgp6bWRmK09wT2d0byVHcmE8Zmw8WUt6dUBhXiNPSzJOSjhhVEI/Yisodylec1lYdColZEk2
blctZ1d3VlB0JmQqVEgKenBrd1VsMFl9LSFsJDVwRmlofTNkQytGPXI0WiZBdXM1SUhAeSM7Xj1J
QXx1RSRsNnZTciE/Qj1HemNSXnJUQCstCnpOJj16WS1lTS1Fcm44cWZxMC0pSkBCbFNCPSY5UFA0
enMkT3kqWD5Hb3ZkNkZGeU5pUitUKWo4SyF4aEd7ZUhOewp6UD5zUzAhLWBgQWVTP2FDbHs+KzlL
aHd3U3NlIUFDbEU8Qkc8KjREViozWEZ4IV5KI2BhMkQoZ2tld21rSWJeJEcKeno2cExeI2w3OTBe
fnNNa3dWNXBDNHwmb2ZIaXtRV1Z+UCNgOVo1ZXFwWWRBTjN0KVM0ZzxzQlJMLU1FNShIeW9zCnpY
JHJqMVQtfTA9NHx4VjBkZylhPkZ+OEhCWCtXZVAoKHdPNmc1PEgoN0QlOW1WWFNPcztvcEUxcz1r
azRtNyROSwp6MGdha2F6SW9fdlZJX1ZwI19kd2o5cHlHTU9LQXwwZStQO05QfDt1aGxJJV5YNThn
bERffCs0SC10VmxkU2diUXwKel5CTittaFoyIzR3RUhKbDtIX3ozUDsya0M+RjNWN2lwOzZfRVV0
dm4jI3hJMWk0QnVPTXBIdDF3KDRqRGZ6KChYCnoyUjlLak89WFNANylJMjgpVGAxezhDeUxSVldx
WklFJUZCNHNSKGBWUDNAJWpSamZuQUl1RDtAJmh8fkhpeH5ZPgp6Xn4hbjxqPkwrTEBKdGs9NWpy
WVI1OWxXViFNbzM9ZkBKKyY7bmR4K2BaXzh5NHo/bChVc3o0ZDMyU1I+KXlubVoKejg/M1AyX0I0
YEF4bzw1SU4wYCReaTFpdSghZ3FGZEJBfio9KFojUCVhbnUkcnhqNzZ8U2h3UjUwZ2IjPXsyZ0ll
CnohPD5IcEVXPitGMW1APVdHYUdVXj9BMylycChrd193Ui10bisjLUkqRjU7NG9CP3Vtfk1TT01+
UFJ7MzMoJXVmYwp6bCM1fE9ZWCUyPlojRUFYPFUpVFVLeWh8b0RmIXFrYWV3JE9TeEVlbnlUODxy
dDIxcU9HRkt1a0EyJCQ0OCspVWIKentWWF8tZ1gmI3wmUU5hbCNHZDE+MkBpRTV2NGIzcW9ien0q
V2c/O3pDUThpZHU8VyprdTl+MzNXRS1DaUxLKkdKCnopQUglOCFrSnUlUklvWnwwZ0VfP2dPZ2lz
RW5rejF6Zm4oNFYlWTxwTmQ1U3luY3AxPV5XdyVPRXN+OGJFcl5PLQp6ZDQhd1JHRzAwRGp0Nn5T
YmkwPjJsQyEqWWRMN0U4fEpxK095aSshcm9sPXg/c21EPWxYVWdAVTtQOHU4T1Y8VFcKekw0SEAq
VWpPbWFXVSoqRlRvWHY3NDx6QkxzeldsLS0hN0QrO05TKFBYRXBDRCRBYyhFSSFISjM4biU9IUZQ
U19LCnpSS3hrYSZaR3lpJE43fmZEV2dSM3NOZT1aZmVwZnIyaGNLK3l3cVJ1QnJGSUE+YFdLK0p2
MF5GOWc+QXo0elkmUAp6MDh+IUpBbmsrITZHfXZOKFZxVTJjK0dBR0A5P0BeYVJ7WDFEeSlqaGRX
MntFSntINmYoSF81a15NLS0mdHI5TW0KekZmJDh1MGxweXxfPTNhRy1ITCRAZSlfUEM5UFR+cDV9
dUthPj5heEVjdCFCUmdQbn5IMmNMfkMxM2MocSVfUXBDCnpBY154YCtDI3BebFZGcDV1cClIbGpr
elltQjZSMEE9cUQrd2FuLU9iVE5TYUlJY0t2YnZyNGNXeCt5Qnw3JFJkRAp6SGBuQUZBNHt6PnJD
VGdXVHJebHR3WXopWktCdz9LK0JlfT5nd1Vnbm1hI159MXZTNm9PV2dteUZ+Rz9FbT55QWwKenQj
P0wpIzIxRzFaQUY5eD5FZmpDVH5tbyk0OD1WcjVmWFF2I0JRMkQ/RHNFU2lZRUlDKik4eXZ1bmJ3
Q2NEX0ZrCnorQXUjJiRkfD1lZEIqaWhMQTs3MWdWNlRBeVFCUyUpaEhzcGRjRDZyezZ2KWFTZz9Q
cjMoMVR2N2w7JkdNSTl8VAp6XlFAZGlHJSNhKStxe2EyJj1UMi15SD54XilGZzkyWiFOVU1santX
b3NgT1ozQS1UfD0yJitxe3xGfkR5TWFCYVYKelFaQHU0WEVRWU5nUkpOKjhVXnZzakQ1bUlUbiV0
WD5PdmIlVTV2MSU9eEphYktIdkZ2TjEwMTckSmZuSytydjMkCnpuelI+a2EoTjI/emBPZio3aG4+
Sl54eTstQWYxZ04pWWNPIU9pM0JkOGB4dHNia1BZdE9HTmxfQCo9VW5pMkhHZwp6WGJ1ZXg3bX0x
WHY+TmFWNHFMeGIlNXhZbF9FbHBnMlZwJWo8cWFRVEg2MkheTzxgSEheQT5QU0woSUFadTRva0sK
el87bGtTKEArfngmQUs2S2lPN3QrJjRrUTFMelpGNCh2YEV9aks0eWJwPj5NdDwhdHRkNSsxUjEx
TnlCMF5vd2soCnpCYnwpcGhmajRiV2M7KFhSKEhQRVJ5ZFIpY3VYelgrPnxrLXBpbTI7MEhSMXlj
ezFLdWlYb340NlZ5c1huc2Rvagp6byh1MkdzTyo5dGRjZVNwX0ZlODVqUm9yRT5YXlFqRFFTMkRC
WF4/fSp1elJVdUQpa0tLSXU1MGw0YE5NTHUpXjsKej5wbT49MnFFcC0+cmFrTmNiZnF4IzEtPldP
dVMxUFlgfEZPMzN9QGgycyZmbS02eGt6RklqdU50TWVuZFVpYCtHCnpTY35HNTdKK31WSCtjVj9a
d15XTSFLUCFOZF99NkJifnZ3SkRqTWYoPkxmO1ooY2dAWTJwZCNFdjVMN1ZWbWd2Jgp6V041ZD9t
PG1heVFLMF5hKTwpUyNeJHl8IyYhcnIpNjskeXNnKzVJJnJxPlgybjRrLXwrPkVSNSs0PG5pTFFo
WWgKemhYbytNdjlmMDZESFp5a20tfCN3bEkkTlVgSWJiQUh8UFV+ZGhqYU1CRXFfKElDIUZaKk1w
Q3s+ZyVSRWZ7QTR4Cnpfd1JCR1RlSUhTZ28yX0N4XiZ8dWl4a3MkekdTfF4yaSRJeyVEcntJREhV
VkFwU0B0TjNDdVAmaDB3KERsU2tWRgp6ITM0Mz5aMTdVTVhZcklpZzNlbFh1Kn5HUVRDSzJ0WXx5
LUdAclEjI09laENfdUEyWm9tPnl4XjdEWXotaihXQV8KejAhWm04N28qMHJ7fWpiI08pTT90YXda
KiFGYkktRDM1JXlYUjB2YX5QeVdAZCYjIypCRVV6Y0duMllYe3ZVMytaCnohS3VnV1ZlTFNQJl9s
Kl5UKUo5Vk0qSFRuPD9qbF8keHd5dCY2cmYqKXVlbDxZaHd0UWpaRmNBSjJBSDJ0SDdnewp6aGUt
ZUtwdjZ4d2paJnpSX0FMd151P1hTX1l7YjIrKiQ1SitAP3pZWFQoT1khSkMtbXM/NkdUOWp+dXdl
PU1yQTwKej5+cDtOKU9ya0smdzRERkQrQ1J9bzNfc3ReTHFuaV5OM1dHazdgSk57b3paa1hgNWdW
cU9QbT1kUnx9S1RwfmxrCnp5VGk9UylZUX5TVXc9KnE8TUp+d0dSOFNoISRTUDAzWkNgNmVFQ3Vf
UHhCS1VXO3RjPDY5YWUrNUM1aXlndCpjQAp6MHUrQkJFSiR7fnJhI1pHU21wY2tFXm9jcEg3cX5l
KClgNXMmRk0jPD1qQjJjVUwoemFAUkZDYj5LNDZMTktKb0kKekJtZjh1bUd3eDxFSiQzKHFxcGt9
KWI/Ui1tUm0tSEBuN1hmXyoyYFI7ViRBR2hoYUohMTllLStZP09eZ202PmBWCnp0YiMlVEN1MlVz
cl9+eGdmd0E9Jjg1bVRzRExgPlUkOUJfXmZiZzQ+ejZXb057Q1h1SzRmKXYkJmtfQHNZWGNWOwp6
I2dSQXkmN354X3BsQ088dXAhbC13Wj5tO0NaRnZWR3pDPU8wU3R6OXJxMnk5aWgwO1pMYCs8S2V0
dShQTGxwQkMKenBJTVJlXllRU3w7eDJOPm9iPyp2SSltMWFwNHpIZExOYShVME9CM3lffX12NiUl
N3pCa2VgcTVGIV5DJmFlaUpyCnozelBqKnw1ZWM3P0BaVWxmZ2JaQyptVkNncWEmOUY4emtnKFVM
bX5TdzFBTjVWKz16cWA3e1BzfEFWPnpKZllzTwp6aHhAQSpifEBmTUNnQEBfSGEyIykhK1YkSSZG
azB1X35CTUg5eyY9ZHBgajc+Pz1kJHdtKEExNmk1ZGBJaTB6Qm8KelNBX3h4SUU4UF5hSiNNWTgh
KllsYTlNZ3IjdV5NfUlPPXF4dDMwTnYjcHFeOWFxKG1hKEw5QDRkPUY3KWAwPz92CnoqfXEjcXQq
JEZNXlMhTE1KaiV9dFZMNHtXUiViK05idm5GdXN3eWZEI0FJWldHPXdvT1JSLSFFYiZScnNYP0Be
Rwp6JT45Qlc4QnI3cFd0KTxjR1c3NUhIPG4tVFolJTtFZztQPk0hTClCTjgkPEFZPTA2SFFHJkdi
VnVXRz1iOWxac34KekQ1ZUM/Y2ZQfjhDcHMkeG4zanF2TVd1R15HeWNaRmdBYE0oMGpvdzJuUyZh
SlFtVTd+PElQcyohKDxgP0E0fmAzCnomKnNPQ2xKJDZhVkNwXnBSUjl8RzxjUEtZPlQ5bU9kdyRp
NG5QeWViMkhQbUJ6d0pJNHZsY09hejt9bkhuOWsxNQp6K2dVRWkwI3xWeHdtWUJ4Ozx8d19CWmdJ
QSRjI3EwLXVLNE9QT2chUHdjK25IZEIhb3tsOCNCJHpvbmN1biZSaGgKekZYeVZjOVZaYSExVEFM
NzZpR1F1cW0ha195fk9GJmUyTG4leCRTMn0qWU9nUFhtdH1GaSFyMl9WQ0c9PSE5aWVZCnpgVE1p
P2s8RDtTVmE1NGkxUHZjeGhsSHQlaDVkXyN0NWFud0NzMEFIVmxKPjRqSzhmQCF9VnttVX0oI2BG
fXRnMgp6UGFjMiNRQl5ET0t0R3dEUztXQ2QlKkItM1Umc3lDdUFhPXtTPSkhYmdoYEJQQzRCNW16
eXsmYm9EKDtsNllzaSsKeik0aXU2dXVfbUNxNH1IOyo7MGhAS2BeQzFieFl8RCooRzN8RWdxXiYh
cVZ+IyZ8ZnJxQH5KMGt0THlAZTx0IVAxCnp3SUJrZig/TVFPcWkqV2ZjJGphUU95Sms3Z30pZlRV
U3BwVGZqbTBURVk/WUhFbmxtTjd8Vkx+c3I8VmxfZDsxcQpLc1pQTnZeOFd4KHw2MWslCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZl
cnQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIudmVydApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg5OTFiNDc0MTY0ZjNjZTk3Y2RmZGQwMjU5
YmI3NmEwNjY0ZWU3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mbG9hdFVuaWZvcm1TaGFkZXIudmVydAor
KysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDkg
VGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqIEFTIElTIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotdW5pZm9ybSBmbG9hdCBmdmFsOwotdW5p
Zm9ybSB2ZWMyIGZ2YWwyOwotdW5pZm9ybSB2ZWMzIGZ2YWwzOwotdW5pZm9ybSB2ZWM0IGZ2YWw0
OwotCi12b2lkIG1haW4oKQotewotICAgIGZsb2F0IHN1bSA9IGZ2YWwKLSAgICAgICAgICAgICsg
ZnZhbDJbMF0gKyBmdmFsMlsxXQotICAgICAgICAgICAgKyBmdmFsM1swXSArIGZ2YWwzWzFdICsg
ZnZhbDNbMl0KLSAgICAgICAgICAgICsgZnZhbDRbMF0gKyBmdmFsNFsxXSArIGZ2YWw0WzJdICsg
ZnZhbDRbM107Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KHN1bSwgMC4wLCAwLjAsIDEuMCk7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5m
cmFnIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNlZGJkZWZjZjZjMjg0ZDY3YTc5ZTY5MzcxMDdm
ZGJhNjdjZGE4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCisrKyAvZGV2
L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoKLUNvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotYXJlIG1ldDoK
LTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFTIElTIEFO
RCBBTlkKLUVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLVBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi1DT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLUVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLVBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwot
Ci0vLyBXb3JrYXJvdW5kIGZvciBub24tY29tcGxpYW50IFdlYkdMIGltcGxlbWVudGF0aW9ucyAo
RklYTUUpCi12YXJ5aW5nIG1lZGl1bXAgdmVjMyB2X25vcm1hbDsKLQotdm9pZCBtYWluKCkKLXsK
LSAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHZfbm9ybWFsLzIuMCt2ZWMzKDAuNSksIDEpOwotfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13aXRo
LTEyOC1hbHBoYS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2
LXdpdGgtMTI4LWFscGhhLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgzZTU1
ZGUyMTkwYmI2MjYxMjUxM2MzZTZkZGU2NzRkZjAwMmI3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKbGl0ZXJhbCA4MQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUln
cGFAYmE0IV49dUoqWk5YU1M/TmxCNDcKZXkwfTg1LS1kX2I/PnB4RFZDbWJBQVJWNXJlbEZ7cjV9
RSpvZ0E9NnkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJh
bXAtMjU2LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWU0ODZiNWE5MmU0MDUxNThjZjM4ZjZk
ZmJiNDQ0NDBmZGZiZDZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDc4CnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdrP2RiYTQhXj11SipaMDBKNC0j
UighawpiOXQ7ZT4zWXFfWE9uJVM/UktWY3I+Z1RlfkRXTTRmS1NkSjgKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZGVmYXVsdC1nYW1tYS5wbmcgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZGVmYXVsdC1nYW1tYS5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1YTg5YmViNzA5YjRmMGM4Nzg3NzI2NmRhZjI4
NDE2NWIyMWVhMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTIzCnpjbWVBU0BO
PyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdvUGxiYTQhK24zSjU2MDBiIzFESm18
KQp6TGVBO0pobVdoZV5+bCZWM0lvQjtQZEE+ZCZ+KGVTK2swazdOUk5iTih2ejMwOT1efClKVyk7
aHRZSyEhQE0kOVIKVUtqVnVtJnA+OC15ODV9U2I0cTllMEQ3Yik/KklTKgoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTAuMS5wbmcgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2MzdjNzkyZGEwM2JhNjMzYjcwOGEzYTgwODYwMTdmZTkxZTFl
YjQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEzMwp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnbnlXY2wzMitVe0R3RTJ8d2ZtPGxBXzwKeklFR2w5
UEVLSzlhI0spbjVmKll6N2UwSmspdlpVeW1RaCQ+Zl9BQGUtPmpyNyZufTwjQGpBTGYoRUpPX2w0
WnB+CmdwTSpBNmlwLVdfXyV4Q0UtLTs8dUxGT2BleTg1fVNiNHE5ZTBKU2tEQ2piQmQKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWExLjAucG5n
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMS4wLnBuZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBjZWViMDQ2NTE2OGQxYWUzMjE5MDcyMGZkODQ0
YjNhMWJkOWIwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMzMKemNtZUFTQE4/
KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ255V2NsMzIrVX5GNHBfK25aLWtaPEda
Cno7dXZDYUl5ckBiJHhUN1FNT2VyPVVISV5FUmt0MSlUU2o0bDNFS1U+ZVkyOVRKaUMwXyRMcl97
TEd2I3hPT19QfQpnZUc9TU9ES2NBejtuUElzZT1EWHUxKTBtPj5GVmRRJk1CYkAwNFNGeWJOflBW
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1h
Mi4wLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTIuMC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczZmNmN2I0MWI2YjQzZDI3MzU0OWY2
YjEwMzAwMmRhYTIyNmU0ZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTMzCnpj
bWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMyK1ZDSHIzNWAx
X1AkaFl4eQp6YVNYOUlvdChuSjxmZnFEQX1yKmJFYDBkN3MjfWtZRXUqbCYxbnF2YHpGQTNFbz9T
bGU8OF5kfXAhcFk7Q0NpRn4KZ0pfJjhDNnF6bDxATSQ5UnpaRnhTZzNNKmBib0Z5dD1ha1J7ME5G
biNsbUd3IwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFt
cC1nYW1tYTQuMC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2Ft
bWE0LjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODc4ZjFlOTY3ZGM0ZGQy
NmQ4ZTNlMmI1ZDZjZDllM2JkMmVmMDBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFs
IDEzMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnbnlXY2wzMitW
M1RVTldTaHpZPGxBXzwKeklFR2w5UEVLSzlhI0spbjVmKll6N2UwSmspdlpVeW1RaCQ+Zl9BQGUt
PmpyNyZufTwjQGpBTGYoRUpPX2w0WnB+CmdwTSpBNmlwLVdfXyV4Q0UtLTs8dUxGT2BleTg1fVNi
NHE5ZTBMUjU5UnsjSjIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9n
cmF5LXJhbXAtZ2FtbWE5LjAucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1y
YW1wLWdhbW1hOS4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGE2OWVkMWYz
ZDMxNjhjZTM0NjJkMTkzMjM0ZWMzMDlkNzZlMDdjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
bGl0ZXJhbCAxMzMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ255
V2NsMzIrO044Ni1OSl9tRyRoWXh5CnphU1g5SW90KG5KPGZmcURBfXIqYkVgMGQ3cyN9a1lFdSps
JjFucXZgekZBM0VvP1NsZTw4XmR9cCFwWTtDQ2lGfgpnSl8mOEM2cXpsPEBNJDlSelpGeFNnM00q
YGJvRnl0PWFrUnswUEdraHpXQExMCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvZ3JheS1yYW1wLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFt
cC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1YTg5YmViNzA5YjRmMGM4Nzg3
NzI2NmRhZjI4NDE2NWIyMWVhMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTIz
CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdvUGxiYTQhK24zSjU2
MDBiIzFESm18KQp6TGVBO0pobVdoZV5+bCZWM0lvQjtQZEE+ZCZ+KGVTK2swazdOUk5iTih2ejMw
OT1efClKVyk7aHRZSyEhQE0kOVIKVUtqVnVtJnA+OC15ODV9U2I0cTllMEQ3Yik/KklTKgoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyZWVuLTJ4Mi0xNmJpdC5wbmcg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZmNiOTY5NjBlMTQyY2NjYTQ5ZjQ0NzU1ZDYyOTQzNTJj
YWYwZTQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEzNAp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHZwXk9kdT0oQkc8YU84Mn5CSDAqfWFJQW5nSWhaWVEodEshUmxqal9FKWUKenRl
UFE5cj4rNldRVEI5azRCQHoqezZ1OE0tUXghaWUzPD1eb3RhdHFiWWg9QjReS3s2ZVZzQVR4SlZ7
O2NtOUdEClFEV0d4JlBnZyZlYnhzTFEwR1VEX0YjckduCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIyZGZjOWYxZDRlZDgzNzRjMTMwNTAxYTUyYWIyNTk5YTM3OWY1MmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZworKysgL2Rldi9udWxsCkBAIC0xLDM0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqIEFTIElTIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotKi8KLQotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMCwg
MC4wLCAwLjAsIDEuMCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ucG90LXZpZGVvLm1wNCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8u
bXA0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWY1Zjc3NGE3ODNiNDU5Mzg1NDUx
YjRjNWRmMjM4MDAxY2I5ZjFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDM4MjE1
CnpjbWVJNWVRKkB6OW1sYEJjWSNYP2Ewd0EmTk8zTz41SFpTdXVfNk94XldxRWRMQ35VTkEmPngo
eXFQPHE7QGdIbgp6NVVWcC05Nkx9YiFEJVY5JUUwSlFiaEpIPFJkQ1N5KHk2eFBrMyV9MFItR3xn
TWA8VlpgaDlMPXZiWE5FTnJjUigKenppMEJ4Pyg7bW0mdlgwaV5MYypIP3wxdiQwPzF0KnlgI0NJ
eG4heX40dlc+Y0Y0RUtoQWg1Y253aWFtbkxxa248Cno2d3FoWi1meCokKlZJKmRZSldTNUJjMXYx
UFh4PipART9qe1VmcmVsTG12bChlaWVqJjBaQDZIJiUod3wxZ15FUAp6ZEh1MHcxYitaNnFZQTst
b0BUfS1tVmN7LXQoVTBgMykrWTx2TCtsfGMtJDR2LTF+VihkPlI0XkVMaSlJVUpZI2oKejwoaUx4
aVdpYUF7dXI/SjcmNDJASUU+I3cmdUs/IVBoPHIyVlIzfSFLdEtQcEZ3Wm5DWXteQW5gXmdTZzhu
NyMhCnpgUmFeYXVDUk9OU3hoU0pEdmR2PiNiQk82SXw+JSh5aztPVW5UP1RTQkt1V243aUlFOGBU
P1U2ZGZNOXw5JXNRbgp6b1NTRjwlOFhHNDNpNj59ZF50MTlZdjhaMmFPSishSCRSYVk0dSV0NT1m
Jjd8cjZAdys1biVKQUg3YEtaTyQ2X1QKeiM9P1dnMHhUNG1gd3NsJFZ3ayYwKW9JdnVlaW1rbmx8
dnVHJkdMd2s0SEg5UDMtSDQkUHE0LTIwcnhpfUBZSiVtCnpUc1B6UkB3V3o/NmxhR0BGV2FmN1N1
ZWRheXZVQ0QpNkZTSWR+QHVga2xgITNCTj01bzE2Zjk5Z1l+OW1YSnpEUQp6NDt7KkB2TGwoZmo+
dzM3TTxpJUNCSDR3R05LVE8+R1A+OWkkcWhScWNfb2ZXe3huQnEremR5PUZkZFBDTj1LeWQKejhi
QFRwSlYmSWMkYFA1ZyMxU2M4PldFeWp0VUlGNUI1VmZveypvQVo9OVZIMSVrTFRyRWpAPGRkQy1j
KDc/bjVnCnpVMHtvYXolNElBOClZSHVKMkJxTlhLZV59d34pKis3Um4haXxJJmpkWCNqa0J7dDZW
I1MyK2dwY0BYfkQyUzxJfQp6a3thJjBBaEdlTj5Wb1lzQ1A4MG5xVlQ7UFVGPWRITDBlbTdwYFpv
NmozQiFSSk0oPyljNTQoPThfKEU/LStoOC0KejFgVUs+Zj9sWTRTViV7Kih1SStRNld3OXEqLVQ7
XjYpT35HQn5rZEQ4aXpPcDgyNTE7ZGVYJDQ0eGZjSzRtVkBECnpOc2REWEcjP01ZQnNtVHB2d1F4
MEg0ZzI3N0t8Z1M/JiNhPVQ7YWplTHxRWjNaZSVQMmBna0Rwej5aRH08fkh+Kgp6Rml7NWhyfEsr
fWN6KzZRPXBrZ0VRZ3cyKVFGWSN9cHlDK1ViYCpnekN1M313RiFXRmkxI2hVcVk3fWhUJENTQTUK
ek1vYVhRZmhMYD9Tck9WZTxuKSFjdStaa0ZiZk9vZ0xSOyNmKiVCNG5kZXc3WlhqMm8oQWNoPUNi
Yk94bzBROHFqCnpIT19SSjtaSEwkSHh2R3N3b2tKVmliS3lrJXZvZHt7O1FqbiU3THdObVRpSFM3
RHc+cyZAJGlPI3RmNStGcWFjTgp6bEBaeyk9UU9uSmIoXnxlXlNlRDs2N2hwUiZVRjVjSyEkfSFn
R2lzZz9fTyQlODc2TWI7UVZadGcle0t1c2R3XjcKejcxQUBTUkErS0hTMk5hYFlCPXdpUlN0TVUp
VkNBYU04bT5MP15zSWpPaUB+Mj5EeTJ4cnZhfWNgJXNKQCh6R1hYCnpIIUkhRjF+NTs7S1A7KkJy
YGxAZkV0TjZCTUNDTzJaKjA4bSYjcktLV2E5WntvTCVAamJ6WXJgenstN2g4My0wcQp6ay1kKGYk
ITR+dz4wWEViSVNYWVV6PDw8YW9qc0ZCd3BqMTFrYDI9e2RGKmheRCRuTTBkelByU3AxRSplVmFw
Tk4KeitAXzN8Ql9wdTgyRj18OVRtTG0ldUR+WCtyR1Y1Ji07JSlBZjd0UWBIaTFvRz5qa0lhOVFx
PnooNFAyaFhKWWVYCno3N3FWaklveChaKTJmaSYwZDMwOWwjbHkleH1oSThrdT9vayk9NmJjI2NX
NXNAXlAybDQqIUtGRHlBelJjTSFJbAp6UC1UP1VkcDBlRyVBS2M1LVRzR0RpOEJ7amFmR0hyKlZ7
M0U2WjhjS19SISV1R0trUnw+RSlZZkFpVVMtYlYxU3IKej5HNGcqY3hJMGFRZE1lbmB6RnQocl9J
QWZtKmBBdkpmUkcjeEg3MmJFdjdaQTQ5VVBFVX5VUWdrRT9HYipaQGcpCnpwZlh4QDhtKlVlbGVB
eyVTKz97MkJzMD50QSFgSiooTFpecF4rOytzK0w3cXx6USU3MXkzbWUtRChKWmZfUiFzKgp6NHdR
V1lLTVN1Z1h1XzMxbzRmK1NKRTJ7b29WR25LJFBXNDxkd2kyQG0+dzZUYUB6THpDZU5tYSkpSiR3
VXEra3EKenstK0NWRT1RWkVMdEpRY2tEM2RHd3FBWU03Wi1gNUVra0clK0VQaktgdHJqPURHRmA8
cilgK2ZDYlM3e2p3ZTZQCnpyUU1iKHY8WW9PK2FTPzRUeGIqOGd0a0dWanM3dzVOdjg3Vl8xS196
Tm03Wk5JOG5TTDRucTZ0Ql5mRVNyTHh1ewp6SzFtT2toKTBybU4mND80O1ZLU1VaSWtsbD9rPXhL
RFAqPEhtbVVGI0xzcnstdjAkakx5M0g/WitmckhFQ0E5VkoKekEjSV47MEpfWiotUjhuZ2JlbWdg
ZDlGN1YrNkYqZE9sVDlAUXQ8THgwTzZ0VGd0cT9FbUxfKGEzcFNaYWRaNld6CnpCKHgySEhuSDE7
d2lNT29JYypmJF8qKTJIe1duUnsjQkxNWGdmXz1fWFhvPEN0dShSUWdmXmpWa1oybnNjQUw7OQp6
djwoKCpWeiZ1eExmY0BgQ1UlPzlDYlNJfVpET3x4Wjk+fjEoS2J9PEhsYTt1OCFYenlaV0cjc3ch
eHhKPl43bEkKelhkNWlyI0JMTVhndGtHVHQoM3BII1VEUEQ3dTxZbFU5IWpHTnFPYWxZdF5tMWE+
SWRXVWx6Q31hU0lBPVpyYkR4CnpIeV52dUA/NmpeWkBCNS1iSUQyRTxuP1ZIcz5+eHZ3M2BiLShR
WDZMWnUwJiU1NEpwIzFVSkYkdEV+ZV9ZQnk2Ugp6bFFObDFDQ1RmRCQye0pUQWR8QGZPZVUpWUhe
RUpDYjQoMSspdy1MY2MzVUMxMzJ4c14rX1ZmSmB+OE5kcmQ5eTsKejRYdFp5eFd5fUZrQXteJVRm
UGshJlomWTFfMTdDeEIyMEcwJkU2eHVfVVApKnpBZjVQeV5majdxVSh9JTQoK00pCnppXyVvUj8l
PUEmdDZuWTRsTVc/TUVVY31HTSExKD5UT1d5Yjdve2J5TjdhIW1FOT05Q24hME17ODRXZUFZWGA7
dwp6elJsO29vSUpCK1pCMmJrY051N3t0RXY1QlV1fn52eXZka2YlYzZ7SHN2QiRTWXReQXkrWipa
e1M5MiQpd0lOeHkKel5WMWpCKm0/T2lFdyQ8eDY7eXVhYGomZGItcF5WYmlMUntZeypOUWtOYjxo
ZT5EV0A7eEBycGRSZEFNUkN4bShSCnoqS2sqZjNSKl9sXiVYYCU2RHdSfXI/fiY7Q0s2MVYhY3JA
PUBfMF8tNiFPLVRUUkQjfCk+blMyP2AwI1hUNn56WAp6ZHZFelpPTWAjeUBtMUlJZ3hwOXAqfVNT
YWItLXFPaWAtUy09X1MwM1JxOXt7QTRQcmlWY2xESDM5dV9CKHtBZUMKekdKaXhkJilMOXVjVGpj
Y1dzRDRXJE95OzJHa3QqamRiejgtdVVxLSZ4X3pZbCljKXR7WEo3bU5eTDZrNF43KkJJCnp4fG1H
Uzd5bDx1Xzt1KyZTOT9rT05jOzRNQy08P15mNDxAVXJeMG84WE02ckU8Xk9OfXsldmRAez5xfHVT
MHVXcwp6aUc1RTZXa1ZMeFJ7VmdiVytPMFUwJWJwYzI3TmlAVTdESVNyLXpURj9CP3MxbXIodSlq
Q3pva2BiZiZkeiEpME8KelZfeEFDaUVZNEd7X180PCtNVk5PUURRKWRGU1pXLTh6PypzajR6PWFW
TzZaN3Mxdnk4N2VNaE8lSHpPZiktbX5TCnp6fEB9dG1tMHVqWnYpQEVrI1o4YTt0Xm9fWGtmO3h6
KVpTMVgxKW9TNUFjUH1uUzVMR2kkTFg3eipZWU51Q3syJAp6PiVnMzZfYDJ2QiEyRXYjMytTcEB6
Xl9kZihhQ1lgUkE5K196OypTJigoaDlDMFhPaXZaO0kyaXZKek4rSzRsbE0KemcwNzV9eXY5e2Fm
ej82RWtBUytfbG9QLSQzeEVjJG5ycWshR31FP2dYOHBJYXtzXjR7UUN8T1QoPCNwYTh8WHNXCnpA
RUxJRDlsJC1UX254UEtIckN0ckElT2p+KTBMfTVnJFdkbSFuJmN7NnMhbDs2ckttUkVlPXFncn5I
Wlg1ZjRxTAp6Z2VYQH43RSRVYlpJbTY5ITw2SGNRPFEpNGVyOGNGdzAhe2o0Y3kqSiotRl88ZDdB
UEQ8c1pEfjhzJlYtNnZ9SyQKekhSVFQwd3w0I2R4fDtiKkR3ak9gK0BAY2JFfj96bmN6UCtAOSR9
X2sjWk5yfTdlbEFaTjVmKD9wXj18P0tLSDg3CmVmO3pQRkR4JEMqS1pZdVVNfnptO1UmantYalJT
OVpHVy18QUY5Jkc9CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBv
dC12aWRlby50aGVvcmEub2d2IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRl
by50aGVvcmEub2d2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDU4Njc4ZmJmZDgx
OTk3ZWU1ZWZmNTRmOGI1ZTdmYmQ4NTUyNjRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRl
cmFsIDI0NjMwCnpjbWVJNGN8NFJ8fEhsb28laChsUm42ZWd3RUpiI00oOUJwdXB9fDx2RnFTTSlj
Rys1cCtAZlNqUXJzeS1DPT88fgp6VDJ4WXp0eH1Ya2NQWT1nVz5uTXQrPmMocj1sU2RSYSghUnB5
UGZrbnU5LXtrKkV5RzB3dDBHNUdjWW5OK0ZFe0UKejsldVNqZ1Y2S3Y0KWhgcy01SHBeNH08dVV6
VzlmbFpZc21KVSlFTjNxbThYJiR0Xnw1TStKRzJgfnJ3ZmowZ3NQCnoyMktXcUc2VGEhPmJOLVky
eD48NHc7SExkKDRAZGFSfHBOVHpNazwlO0pfOFNgdVVPPTZoUX1DQUckYmIwbXh7Sgp6KERMdHwx
dGYta3pDazQ0cCFHSWs2dylUaVV+aE1scEF6azJ4SCozUFVlSm9yRCU7ayFQcF56IXB0R2FWRz0l
fmYKendmQ2xZWlAqc3pEWT9obm1EWktTWWB7cFdDQFg2ellwU1M3JUchQUM0Zkd9TGFWTj9fcFIr
WGhHUFd8QFdASnB6CnpAJGV2MU5TLVAqKXEzUihEKFZWPiFNKyVFRWZxRUJVMDgza0JeVm1KWV9t
NGl3PkgoJEJCXk0peG9jYCpHX30tLQp6bml8OXluKFNKYT58QVleazRWKXlHam44TT9pZVBPa1dx
d1UhPSQ8Kjw0fG1SVT5UYjZsRk98PCh7SWgmQHkmOzcKej9idElXfEl6RWJqViErJCs3YkNKT2Ve
UCpoYyRjWEMwbl47TiQ4a1dZIVRYUDR6bT5NTjdkV08zJFFjMHFDaTg4CnpEfWt7fEZIdXVhc0RE
JkZPen10eVFLPkM5diUxXiRQckt3UWdKX2o+PDl3ZCtXNyMhKkI7fkE+d1M7V1ZiV195UAp6Z0V5
S1U0ZW5NRztjUml1KkU/ej1nIz9ZcFRlfW5tKmtZc2dGMjRJO3QrRFl2Tj8jdiQ9Z3RyPjNYaih0
OTBWbUUKemp+aGJwVm5EPHJjcDtDK3FvQEBnUHBoYWNzJCohWks8S0FjR3kqKmUtXyYkKnVvc2p+
T15yaGM0NiZsT3d9fUA2CnpzLWRBP3twZ0NPVUohdT8wVktlbno7SDFpNWZpST1yP0dKZVEmQE98
MGB4Smw4UC11bHl1XkRPX2M5SGtUJjtedAp6YGh0MzZSRClJczlUZERGeiZzaXBsOWdaKy0hZCEx
VmlKdGBVayEhQXJ7eDFmPUBYJWxrMCg7Z2U0M31XbVVPJSoKejs8U04qZmomdzxNaGMzPTcoTmdU
XnJ4WmZfb21OX2lrVmVjU0k0MDZNZUNwI1U2PXJaeTI9Ynh7b1hKP0A1RnpYCnpwfStePUFEdmRR
N0BCQlJRIWxqJT9pRGwhTGhvVzJxRSRtZilGIXhyeXU3Xm57YHQpYVQzfCNgREBHfGkpTVMoKgp6
O0F3JD9yJmFfKThxXzJaKGhDK3RKXzNRems4V20rcmlJd1d6KVdxJUdCWUU8N3pvUz1UM30oTVJ4
RTZiZnNHLTsKemQxdWdtPVljbzZPNjM8PGQmb3FAaSM5I3I0LWU9eHpJc0ByQHhVbWJRQTFOamBz
Vzcod2EpVUVNeyhAOG4lPUlsCnokbSU5bW8jIyQxQ0RlWmo7YzRIVD0kLUE5UW8qZDBoRHx0Kyt2
OHE7QVlqc1VKR0xAUmhKRFZ+UjZsdl85MD12RAp6RnsmQU5XQmF1eVlFZ3xIZVF0aWF5MjxiQWA5
NTVrbXN3TFItYUFlKFlHcilnPVY2V1d4d2RMTzNPZ0lVUHZDdDsKelhQdmEoQnJZNiNHOVpUPmEm
aHwjYEJiKVI9IUYjSDNqc1ZlTXdAZTdDUTtzXlRySFdXSExUMT5hQzNmfShtJmN7Cnp2Vkc5QiVE
bkpzZ0dNczFRKj0+dWAtXzhoZCFIfTN3QHlFalc0K3YxSWtFWSRxTWFMMFJMNWJITHE+UG9zfX1C
YAp6c2VMU0ZBMFoqYmU3QyhhYnA0Pn0+ejZgeSUjTHBEbmF+aD5uUnh2aG1peHZGT3BwSEImdDRu
JT1KU3FTV3Q0VHQKekVyVkpSVl4ma1ByY3ZtSjY5V3hhPiN9eHBjVjh5Ki1QaG4kO01RI3MjfnpA
UnJmMDBeSj9WYjQmP1A9SXJNPi0zCnpLbFdyekFvOEk5PFF8RHZXTWYmamEhU2pEZ0tfMiZ3OUF0
YWw9fVZzZjI3e1gqWnU1WHkqZTJ1OXB+VjFefX0xVQp6dT48e2FNenQ0VEk9YXRVYXNLZnN0IUor
d0xHZ2wlP0VhfiF7LWxNNiNpMXJyTUBjc1gyS3FOX3o4QVdTYkhicXsKej5iMUNOI01PSyZnJm41
P2YpaSZsanFZT3FEbUxMQzZZZWY9Sm93P1BLUkoyKTQjI2U5RlVxS2hyOXdhWSFfSEtWCnomZWdS
RXYmUytZd0dLKUBuUGNeNV5zTCt9YkpGSWxzPzQ0QiMyVEs+Pkt5QjQ5aSk3Py07T0peYzxkVXp6
dDZwOQp6O1lqajEkN1k3bHYmI0c8MTN2djVhKz8qKTB1ZShCdTFPOClJLUN5SWhpcyo/WnUpSldL
aVRTfkNeK3ltWVBTVSQKemQjUm5ARCNieDd1SnY9Z089fDY/WnZKYFNtQXI4KysqUHdxbj03MShN
NjxnMiFofEgpPE93RUlvUUFWPCtHVERACnpaNXMqPDExWClXYVpnLTR2Sn0xdilhMUgkNmA8WVk/
IUdOKyg+VkVNQGJpUHJtXyo4Z2UtX1MwekckLS1gPFpAQQp6dWQkKEFqbTltTl5CPXtXP0Nyd2gt
Z1pfRDV+T2g0I2FSdyZAc1V7OCtSKH15KlJYdkc3KkJ+Ml9ETWdTZ09obSgKemA9bTU7UzU9bW9O
XzxufndVek8haFdlaSR3czhIMXUkN1VyX2BffDRXcz05V2FfX1dvVX02V05gbSo8aWtuKm8yCnoq
SFRsdmhQKGgpbzxpe3JVckM8RSk0P09lTF5iay0jfnA+VEBpdGN3SVZTejFzYU4qMUdhWmI3QlZo
Unt4eTVfKQp6Q2RiKkpoKHZrOTs2OUEjPylLcyFWcX55cnpGbjJoT3xQcnNUUDFUQVlGVCtVS0do
a01MMGd0MnU8VDhkdnJQKiQKekpXRXUmNmZRQ1QkV2EzTSpBM0NtRTRySnBmMnlWXj9EVHF0VCRr
bW9RXjxIQ2IrRlIkOHE+Sk1tMFdIQ0tFQ1E0CnpteCQmO3RaPkFyMUlnVX1AP04leCtaP3RNUn0m
Q3s7LVk7SC1sMlRPPE8/VVRjYH1FNGJxWGstVSl6ZFo7KVl0TQp6VEVEI3VQQko7TGhTPmFzVzY7
LSk+amk3aVUpSCFQdUhubzVFTio1d0s4bzMhdTNjKCpDTUdoTnRrWEtPUChIZkMKelNraGhuZnZV
eDV7XjIhT2xQfSVXNl8/Z1lwQSROQ3IlYnFIbTBJVk1vJVdXeFVWQExUYVZmKit2P1M4TTFvPiRT
Cno1O2szcjh4eHR7UWkmP09ldXR9PHJONzg+TCl6I282NnUrKitgeHpVPmopdi1RJCl3UnFtfk5m
cGwpcjZJeVpmaQp6YF8jUz8hWTVaI14jPS1PbXBjLTcpYS1xRWZWZiY9ZSozUHglPTJ+bnhNeWRT
UyR6cnl1YmgzQnhWND9EdElHV0QKem88RHtiNCQ5cCh4bTN8JGooZipEZ0xaQzhLfjxrUztpPmVr
UU9vTFQlPTdjMTZ+YjtFd3doPXFeRzVReWo0c3ZJCnprPWFDaUFqOE0kQllrIXpRKU8rTGF6YkNG
Xkd1TiFFfkUre1F9TkRXQkt5flVEX0M9T0ReQGhJK3UmNzc9UEZuNAp6OUoxR3kkQVdyPE9fTUYm
VyglTDxaKDdhXjkzaVJ8bWFzcGZMfXVMeFBqJmQ8dSo9QlF5cjFrZ2ItVkFyZHtORXEKej54fDBL
OCN8X0U8TVFzbiM2dkVPZWwwb3FSIz5qQnNmbnEldzw8WlhVYH47T2BZOyZXcTRaWSNXOXk2WDMp
Pmt1CnpGeE99MTg7a1JJUGF6fmI/fFNzI0tGJXZXKjw3aSNQeEZnXj9WWCRMbXx9OE9yVXw8ZXcm
TyUxJnoxYHBeUjhTRwp6ZEtXMW0/WFI3dW0xSyklK1pJYFFzcDJgbGhKJVVocHc9VkF1WEtFaFdx
NCpIOHB4Rk1rODU8SHk7ZzFgZWRhNFEKeitQMSFvXzxTY0RwSnFtVWBAXnIzd3FfKUVnVFNIY1FX
NTh4K2R8bzJSQnlZbkk9P3FSK1pQaUItSEQ9Wj9KKDR9Cno1dVQ/UE55eG4wZnxHTFJtPTVCT0BL
MlhGeH56Rz05PUZTTXR2OUIrYn5NJVVTPjMhZlpmZX1GUUFhdUBHeEw8TQp6IUYrPT5pIV88RSZp
bUFNe0B6OWgyVnZafjY2dUpWZFg/PHJmSjBTbj58JGpGT2tLfjhqODg9IT5jSE9uVCQqPE0KekNe
OTMydzxXb0c8YX0jKF81RWZLYHZwSiFkZ3F2ajNuNlhzbks4Q0U2ZGdVdHI1P2dQU2gtRC1TZExQ
MmRge2hLCnpETXFaMlZDYERZVnEpWWwqYG1UYnVTMk0zPSo+biFMUjZ9UXtxVFlJb2s8eTE8bnMj
Jl9MWkdpYC1ESGY7JWBTRwp6d1d9PWt4d3w3fWwrcGEpJEpaZ0N0JlVAa0wpdGo5ZChGTzsqUjQj
c3REc0EpWCNQQGEmRzVkYklrOVlAcU9HKWgKeklMO2MrYkVmezJvPUhBUjdXYDBIdFJvJG9eT2N4
dU5wQW5QN2lvZXh6RnJtbEJqS0ZQbnBwX0FSSkQ7VUJJK3JoCnp1fX1rTHFUKkclIU0ocD9zVFYm
Yy0xRj9FeWo8dnU9OGVBVF5ZSD8pcTN4KXxEOVI9LWlmN3VNaUFqcjM1M3llWQp6M2FAV2YyJExe
MGQ3b35gJVA8JXVHVDA7YV9+QWhJYHw9flJxdTJ3LT9XUyNRNGheRmRxITVpU0YtQG44RmFLR3EK
eklfeEN6dyZVPHUjaj1zb2JBa2opVUl+S2xveTkjPkdPNUV2KTleKHtPWn5NT3Jeam1+Q09PPl8m
TTU3P2UlZkl0CnpZZmdNU21xPT17Y1hzdXE9ZW4kc1FaSVNOJDIpOGxGRyUycCVaQnRRcnBfN1FP
YDJ1OSNYbHxGYW1UQC08S2V3ZQp6Q1BPbWh1YVg4cTJRcmtpazFLU2tsRlJOSjYmRD00NitKVChK
ZSs0eENtclJ4VVUheDJKcnhoKDlHez5ER2owUWMKelpGYnd1aTxyWDE1ITBrT3Q0ZzIzdWM7S3pq
UVRvQ1ZhWTlJQSk0S3w/X3p6bihmRUdkJm4+JjJZfVc9X292K2h0CnpaOERkKmQoYHQxXlk8ZUxi
VCkmSUlBTDI2VkY9cGtrSEt6bjVJUmRpVj90YSQkMz54JiljZnpNVSElJXtIIWs1Kgp6YD09Vl91
RlhDQl44QkF1e3dheFltKFZaJFUpcXxwPVpeZW96VUJRYXc/cnRrcTh7dFlleCEyKFhWRkk0aUhx
Rj4KentFdnhEcCUlV2lEKCs9dWIzPy02STxBUjJNYWNsVyNmRmd0I2RwfWE7XypZYDBMODcxTUpM
eFNSJExTRlc+YCQqCnplYlcoN2stQGdaVDtaQitFWlAqZSRFfSl9O2FLcipPdyRvRGt5LSE0VCVt
KClFOFdXaW9MQVEwY3tmXit5anIkZwp6WktxZDRPfE8zO0RVTiZXO0htb0Z1ITBZVUomdjtaMTxB
dzR0JSpLfGdqY0tFPnBrLWRvOUdmZ3BgQG4kdV5eZH4KeitMTlVBYylJI2VPR141Yj9xXjtoTStq
aUtvYnItd1JsciVuelRFOWp4ZTheUDwjbjNkOXNRa3hEZG0rZnVISCkoCnpMNyROJWJ3b3ZIWmkh
Q2Q1QDlHYHg2P3ZUUHA+QjFBRzBOOSNtTWRVdFliPitCekljV2A+UlN5ZFVvZUomb3NQKgp6KyQm
R2NYSVR5V0RabldYaDJOYmtAQ1dXcHVGXml8ODdyIzh4TXUmazRrKTZjUGxBO2Q/VzFyWll1Znl1
aDk/QUEKellqJiVxcEtTOVYyeXFfRCZGRUg1OVhUNk51KT5IVlFPU3FWVDF6aFhiaEpMQkVocSgl
QHskY0wlPE1LdVN4S0I7CnpDWjNUdCRzZGR8YkZje0AqVl5jbk05YXI4bSRHZHtvd3FCfUBPQGZH
NWEzd0JCeGF0RUVBYyZ6KG1UQmNCJDI0RQp6VSpge0EwWDhrTGQhd2tCZDcwaCRhUXg5aWU0Z0VU
K3BHVHZpe311SyNwTjZQRjBeNGYxSTdPQ0c7RypxYDdvVigKejhPQG45SyEhdH5IcSVSd1VpK1dS
eSRfd2hFM3laJm1JWW5Odj9DVTZ3OylIbkt8YnolaUgkc3p5P3RfSiYqUkc7CnppKHo2JWAySE5s
SCpiTngwcm9TI2M+flYjOzgzcEAmMWpVZ0dNYlMmaTRTZD5DZEpII0w+bmRYeHdqdmNHRD1jJAp6
WiVHa1N3NkFkZVVISSQ2Y3UoR3pofkk9PmE0TXFPcyFvJUArO09lJD9AcEtjYH4lY15RMWhyaEda
TVY7I3NZWEYKejBwUlZQa2dMQjtVOERJOUg4c0NGSCNiOUlab3F5PEhfd3BaJHRlX0B4cGojRlVx
PHk0YV4qY3NiP3x5WlI9YTBlCnp7Z3t4UFZOLUJNUTErYSR4amc+QUZSKHhGcmVjU093TXVxSVhF
NiE7R2dYeiN3KW9OaT1PWGp4YF97VTU3UUMhWgp6WlZHeHVBSHdTKHQ3KmxneGB7eGEoSko3Xkpl
OzBWemw7UzN7OTZSQFNne304emJGazJ5Xl8lQj5CZVg/R2J1fE8KeiM+R2NsPFY2QzBlfUdqUXZU
YVFHUzFTSWZYYi01MmtoQkoqZmFxSHBeVSs9TyREQUxANTZyPylnYG87Vl4qZFopCnpzUXgjRXtl
SzQ0OWR3OVgwZj1aXlRJc2tuUjBIU34oQy1RNG9SdHR1RTZnTm1zRCZgaDNldTZURlkzUXlfeT5X
aAp6NkpaUik3PXwkblZ8Vz91WkZrV2prX3x2bWV6JTk7KG9oWWRRP0xXWTEkRTU4KGg0aE9GYng9
bFZHYTxyWVlIOEkKelZFOSk4UXxHfUxoQXw5ZDd7PjUyIVozKnJrKD5hNkNGZlE/U3NKUGxiUDZ0
QDcrQSVEVFV1ZVFOMk16aiFgdllLCnpfP0M9QEYjSGIkcmNRKTAzfVlDXkZwU300Z3lHJEtSUHM+
fnhlfXg9MSlCQ080T007SVBYIU4xZ0tGPWF7TWcmbAp6aDg4Xnl2b0tVKXNLUVclcH1MSHFZRU9x
cUIhRlNSe354SktMKURLPyEzenstdlpmb0JSKyNMZlE1SmZ7eno1UWUKelJfeCpiaEdEdm1Fe3RJ
cSEhVStuM0A7LUxKSkJIJGBkPnRLLUNHWVc0Yj5uemcjYntiZyFyNlhUQ3RTXnJVOFI2CnpFQ31M
QTAoeW9YISptM3UmVnctd1Y7SUlUak54VTNWT0tndDNJUGJOZXttc3ZYe2QoTERXSTkzPnMyT35S
Xlh6agp6YmZzY2cxZj1HTCpZXz1BYDBvVSFQSn1UR1Y7SUlUak54VTNWTldfbHReeUY7VCliT29Y
e2E4Y1E+K0ZHe3Y4a2MKem1SOHN2MT1Efip5SX1+d0pMY25+TUV+UWorWlkmTjQ4c19QRiRgbVA4
RFYlMjlVe2Q1QkRXXnRQYj57cCFfIzBJCnpGYkp3XktzP3pzZ2B8SlBLcGgwYGAkaVhyRGh5UV5z
eFZaUzVtWCZkKDt4XlQ2OGJZbXFOTEpDT0dETTRQOVhzbAp6aTdMcTc+fV5kaXtgPy0yQWY1ZGRu
ZWpJYWU8dl8/QjgqYGUhIVUrbjNAOy1MeVUteUwxdDYlIzdUJiF5aEopITgKelFiMXVwS2JYMCsh
bV5Qe1NMJHc5OGw7V2VWQHJReF8hazBHQyZDenBGJGBsRSNfJSUydXNhPGgoRXgoISltfV9YCnpM
cDdYRXVAKSVDVSN0dlNUMHl1MnJVOFI/LTBNSk8rfGtvUyNxaHJxbV51JX1GcE9hcyEhVS1JNXIp
MCM1R2V5Nwp6SUpfVDJTc0pRKGdIJT5ocCgrY35UJTxNTSYlR15lWXwmRk8zcXV1I0RoeVFecz49
dGUldG5KVzA3Q210SWdteSYKTHkwVEZKK1QqX2Y1KlU4bwoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8ud2VibXZwOC53ZWJtIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby53ZWJtdnA4LndlYm0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ3Mjc3YmRhYWMxZjQ3ZjgwM2JiZTY5NjkxM2E1M2ZhMjg1NDhmNTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNTEyNDAKemNtZUk1NE53JjQ4T0x7emxMTXBT
cGxVRW1MRFoyZDV0UjU8c1Q+JXBDTGx5S0FWdDlfZW53XmQwKEM2NjJkRmllCnooOXhze2h9VTNa
akhyaE1sMHIhNmhoVXYoQFQxeUI0ZnF1cktTNUNgTVh0Tj1GMCR8QmVjeTJrYmVZY01PcnJuIQp6
eHR5OzVJY3xUP2I5Km1fKjV2YVhgciNSfVM+UXQraX5ycGheZFMhZnJ3fmhlYV5qb0lMJChPSWtQ
SmNSOSVXdTYKenxKSkdvKllLUCpyaXROWVokfStXPz5wX2whbChrRkNjRz9ETyNObWFVS1VrZztl
RiplRnNlKzdmMngrRmJldEhnCnpPdCtOPmVOVFN1WnVXb2F1Y1o2fGdOSSl6T21oaF9nYDN8Rm80
MFBebjkoRTBqdndoQzlqczJQX2hsVW9KdX5qRAp6YkdrIUFeSyh2QmN7WDJwPHVfWVJtJjRGc09G
QVJVN1lqWUN7MzdzenpeXl9nQFZOciNVN1ZZaXhNST1majVwJW4KemgjYTNMQFBuX1ZyU21QO1Mr
JmFWSFFGcV5mMm0tYkRnOFdDe0R0U19sQz81M0szNkFqYE44bzUkQzxPLXhqcD1GCnpmOE5HJTJC
KGFTdHJfV0NJbT57V2NkbVVMUkZUVDleRyRLN2ItQ0ZpQ2RsaDZ6Sj5xSmVyak49THo2P2NMeU11
dwp6clFVTzg+eVpjTjk0e0ZmXytSXzNKSmhoQ0dDQXQmRlhyeUpjeCRadjJlV218KXk3amQqU3tC
LTxpNVVpUV5lP28KejRVNDgkbmNZTHo/b0tIV0Q5eEBwPSN0KmtGWU5DQS02X2RLMWc+KDsxSFR0
T059aiYwSWRBZVFPWCVpKlQ7YntfCnpPZFMlbHtRYzRvbVUjJCtQWCZ4Ri1FOzJ6cVg4YWdDbSM1
SXVIVVJBeDQ+JXdCTXd9UypjWkRsSTt1MTtAb012Ugp6dUdNWlk5dUB6Nm5aMmZAWDRVRFAqTV9W
KHZ9ZVRCbShNKEdLM2ttcVpKKHlDVz5jenR1SEY5SzxDVXcxUm93Z1kKekB5eUBiVWkkMEcqczE9
TilfMSVmYUwoU2wlVip2YDg5d3JGJEJ2fTc5QDgoNThnK0JeNj9lQj9Dd3I5fiRUMFgrCnpwOHNn
Y14rVDFyP1Q9Mj5eRk9iZkpMQzQ4dENRK1dgTkNLRSFYZipvUlBVPyFxd31NcC08YEMte19aWD1V
O0prcAp6I1FqI3NJVHxsPD93b3MhVW5BI2EqMmhuK0VqcXk9SSs7bHFGbG1OTkU2ODdZemY1PEw+
MmFCXkE9NGpac18mRCkKeiV9ZTtJbilCdmRIeDBJWTxBZVVwe0J0c21CT2M1OSVHNS1yO1dHNmgp
MEh3NiYoeDMzbURwODIzJWM1K1VGOGQ8CnpeVW9RYjI8SmFuO0xwbGJQb3xBNXNfVjw3PENydnRO
IUtmcyppfkgpXlZseiNeZkhzJD1+VjJoZ0JOdFFPU3xlMgp6T2g1bSpnMlF8IU89cj4lblk0O1l8
SC0weVhOM35Hc3ZwNVRIakdKXkd3SGlARHQxK0dnUlhYSVNNe2dxPVJhNF8KektWWj13ZVZCOSVs
U1ZVWDNYfD91RDZ5K08lOXpKcVYkdnJwPmdZK1FWcGtuYShBNiZPc15kS1JgT2cmYCkwbEswCnps
T0FLekl1PG9KRzNuMH5PNjtvUEhSaUV6RzNqPERKd201cVJ9SXpCKWhfTC1wQER3PmF8TmZMRnpM
JW9JKlVuQAp6blJGTUV7ejBMe3R+eTwwOV4xbUEmS150fU01UVYlKDV1ZWtvQiY/bmY5M0BeQmwm
OElMdGNQTmtyJHYrPE9RZXsKemM+eVgjVVZ1dUc3WjU0MnlSc0xjOVY+ZVFEbih2Xk58Nl5KUX1L
Qmd5ZyhOX3RUcnp8P2thY3p3Yjlkbzd0cXdWCnpmKWBNP1E0ZTBBOF94IzczI2h4PTFIMz50P2th
Y3pieXA0RzEtZnhwITMoSW4rNmk5M3dXLWVIUnNtaUJ5Wn58Ygp6JVJQZV47RW0mbiRJNCFTTnw2
XyFRc2YyNUcmbCUoZnFxWVNUZWN7PkVlO2w0PEhDJDRtI2F0U0hhSWoxR2hCfVEKelJpcWsmJT1o
ZWRvU2k/eHd+Q3VCN3dpWEhDSXBeJGN7SSNEP3x5M2ooJjQhbXhZPnZKaldPU0RKTXVudiZpZDFC
CnopMn5JVzQ/MH5gZEVlOVdfNGJjSGBCI0VSK15ldy1lWXdYd28oemFjRn57bTI2JkNsNl92SEAr
LU8mNDhEc0w+QQp6fDdIMGN4N3YkVW4+S3Z2PGtrTzxIIyl3IV93MmdeKGN6eDEpP3hpa3pxb0Zu
cVRkO308bGVDNnVeLSRxeDd1NDkKenJrM0JjS2tTe24pXyZpMj07MiM2YHtPXnEtKX5GbiM/WnNy
SFJuKDQkZ3x2ZnZaYn1ieyR6T0M8PHlwKCZDekVQCno7fGV4cEE2PmtFUU02eSkqYGlOQVp+YkBi
eFVeUXp6Ml49MFFLTSR+MjR+a3EqbmhRbFJgWm0rYEw/c208RUktdQp6YjhFNT1VK0k3MT9ETE1v
IV9VSUBTYCZtIUZMJGY3b2chY04+dUNSU1hkaSR8KExSOUE3KWJuQW0taGp2Nnp2MDAKekRjVDMx
UW5VfUNxY3wjZ0FBb3UrKzZTT2d2PTJhfj0oP1h3I1YkKHcwTU53X2JXeSZwQyFnUThjfFZuK2N8
Vm4rCnpjfFZuK2N8Vm4rY3xWUUheTHw8djwjfDgjU1R5Z2FRZ21IVXJEKXp5cmVZVlJjfFVacTE2
YERfK3NXcypaSndfKQp6bEQ2MSMxJG13P2M3cGk0KmFPWTtzVDlyZ3NUOXJnc1Q5cmdNTWB3e0A7
c2s8RVNsJDJEWXxaX1FGKSRFcmVZVlIKemN8TFRwMTZgRF8lZ05gclpDKzJNWGtKZ0hYa0pnSFhr
SmdGXjFQbCgoWSMpeSM0Z0o3ZGdgJWdVUWVheXh8fllVCnp5cS0rT0U9dSF5PXdiKURDfGBHeiZ1
YG0ybz1WWD9vPVZYP289Vlg/bz1WWD9vPVZYP1VabGg+JUpYPll2MWxHbwp6cXc7ayhtNztrKG5U
bE8+UEprfFU9LVMwdWtvRnpPPVFtZXkmUyVvVUZ6RjJ6P1AqfEFBMTBscVArfUsqRUBLez4KeiQp
dHl2XmN5Tnwtd2twN2QhNUNAbU0/WndkZH48dlBqPXZXUWhyWWV0KClAaDJiSDRUND1QMndBNUBC
VktkMlAjCnplbyFmTEpSJjdfUXtNZmM5VjxIP0RuKldtTnxFQ3NRP1pORT9ndzxTMTZeISRKbWwq
VWRBRWFuX0MtSVdJM0R0YAp6Wkh8WFI2fnt4TmlzUFpzWEwzQjBWLT8za3BeRD83UHtyfChzTXRr
dEpSUzZuWkh8WEBlJWw9bmcoe0FSTEtWa0QKenBeRD83UHtyfCg+OWFXPSVDVTskcC17IX5QXmpX
fk5MMWAxSUd6cjZ2Q1orMiZUcVRwQXlhVFg/ZWo7bWl7Ti1WCnoqaE8kVz9TMEE+PGxQSX1ZWjMh
RW8tVW1VZzV5emw1Z2Q8fV5KI0VBPk1yKXw5TE04aDE7XjZ+eUEkQWUpWk9JNAp6QHBPWWQ5YGUt
K0kzOUlWPEBmSzlVdE5PWj5HKTA9STM5Snw8b0Q7MCthXzhEYTZEYWxFZCEyNi05YEVSSD8lSW8K
ejkjN1pxK0pmVXpjTSUrcW1lPHdiYytfMTQkRD9IeiFTU2ZPKmghOGpBUFhFMUkzRFZ+VTFfZllW
VU1UI3pnRyghCnprTXp6cDlxalJGPW9gV0RzSn59fTxJKGM8QlJDIyk3czJzcCorcDxYPk1ueGco
WHh4K2MrXzE0JEQ/SHohU1NmTwp6KmghOU9re0tLaUkzOTMzfEErVkUwbWxRNU45JWgtZiNYcXMm
aiFiJTw/QmFxSm5BbGo8SSVFPDtDUiRzMWpuT2cKejdzMnRVeTlrYSklUHhaQlFGcFBFOU03flFh
Nkk2NiEwfnxOa3cyTG0/I0pgPXYoQDNmVEpUPTJBQWZkeitkWUBiCnoyMn5JRDxCQEo8LSExUCY0
fnxGdWBWa3pEbWUoQGljK18xNCREP0h6IVNTZk8yIyFhfkVgc0F4Y2Q/VGsmckk/Mgp6eFokNDU5
c1ZwTXhGMyhZbj5eZilONWw4V3omKTRNVTQteylZNTZASF9JVDc/Z2dxV0R5OWthKS05Pk9iVDZQ
Zn0KemtHaE5DYyhtKnlJMzlIdSFTUUk+TVF9WG9FX1JhUmlIYCl3MUE5RU0jeyt2anUqVmJRKlRe
fXdLZ1lyejVBNTs0Cno5P3lWPzZteldaUURKZjRjd2hjTiY8KHhjclNpcy1gQ3BkTGFqVSZwd1Ew
a3JQRzBAKmN3ZFdIQTlUOTdfdzJnXgp6eVlHRjwhMTEme3d+M3p5NTEqWmA7VCM0V2tHaE5DYyhs
QigyRklpQkF+K3JgeTlrYSktTmpDRkpXRWFCYyk7PDEKejt7bkc1anQzbDFPVX54I0dsXzhwOD91
aXMtb0wwNW8pPSt7TkJ1bjtfSVJ7PntSb2FuLTk+T2JUNlBmfWtHaE5DCnpjKG0qeUkzOUh1IVNR
ST5NUX1Yb0Y4PGUhWEpBeT5HTTx4dT1vZ2VfNzc1JkVUT0pGMWdONUh6dyFPJjBYSk9JNwp6M3lY
Umk3OUNBa0cqbn5KSVlFaThKRWdET3ZtVDRSJXZnTmhoKCNBRzdHMz9aPXZKWWBLP1R4Uj9ofWN7
ek9gNjwKekFxazg5SVZgQElnfmZxaFNvRStkRn5CQjBrZiNaWVVlI0ZpUFFjPmVkTXBrI1Z7dz1m
aSN9RSpoTjUjZCsjaWMwCnpEek54Y0JvO14zViRuWWRpPSNPIzI0cEVRSXp7PiRqcSQ/YlNRezN7
bzNKPmM4akJNWHVvemc2I1l0dSpFe1QmSwp6JFlqSn51b2E3d3tqdkI7MXJ+bzlpTnpfa1NlJXht
I0VtQkRmbk1YVjc/eT5fPjBWZmp1d242YTZCY0p3Vnt2QUoKejYxTllMOSV4b1E3TmdCcm9OZEhu
dFFDdUt7I2N3LWZ5TVlwQ0dLXlM5dz95fWkqRmBqYVJHPEwjNEljPl4xfFhgCno4eTEoRWx4VnZ4
Sjx6Z2hFR3wjTDspOzRLQ1lpQ2clODEzKSl+Q0BtSlpGdmtlOFlWaFVYfmVrRnhfKTwkPWF2Xwpx
QGQqY3V0fjs/ZnJ+ciFySFl8cVh6ZDFTdXFmNnFqeFkyfmc/TClBKio5bldaK3k0UXFIUTxeNgoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3BuZ2xpYi5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3BuZ2xpYi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDJhOWI5OWUwODVjYTk4MDMyYjU2NWJlYjc4ZDVlNmNhOGY2ZWMxMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9wbmdsaWIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDcgKzAsMCBAQAotLyoqCi0q
IEEgaGFuZHkgY2xhc3MgdG8gY2FsY3VsYXRlIGNvbG9yIHZhbHVlcy4KLSoKLSogQHZlcnNpb24g
MS4wCi0qIEBhdXRob3IgUm9iZXJ0IEVpc2VsZSA8cm9iZXJ0QHhhcmcub3JnPgotKiBAY29weXJp
Z2h0IENvcHlyaWdodCAoYykgMjAxMCwgUm9iZXJ0IEVpc2VsZQotKiBAbGluayBodHRwOi8vd3d3
Lnhhcmcub3JnLzIwMTAvMDMvZ2VuZXJhdGUtY2xpZW50LXNpZGUtcG5nLWZpbGVzLXVzaW5nLWph
dmFzY3JpcHQvCi0qIEBsaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMv
YnNkLWxpY2Vuc2UucGhwIEJTRCBMaWNlbnNlCi0qCi0qLwotCi0oZnVuY3Rpb24oKSB7Ci0KLSAg
ICAvLyBoZWxwZXIgZnVuY3Rpb25zIGZvciB0aGF0IGN0eAotICAgIGZ1bmN0aW9uIHdyaXRlKGJ1
ZmZlciwgb2ZmcykgewotICAgICAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5n
dGg7IGkrKykgewotICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcmd1bWVudHNbaV0u
bGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICBidWZmZXJbb2ZmcysrXSA9IGFyZ3VtZW50
c1tpXS5jaGFyQXQoaik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBieXRlMih3KSB7Ci0gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCh3
ID4+IDgpICYgMjU1LCB3ICYgMjU1KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBieXRlNCh3KSB7
Ci0gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCh3ID4+IDI0KSAmIDI1NSwgKHcg
Pj4gMTYpICYgMjU1LCAodyA+PiA4KSAmIDI1NSwgdyAmIDI1NSk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gYnl0ZTJsc2IodykgewotICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh3
ICYgMjU1LCAodyA+PiA4KSAmIDI1NSk7Ci0gICAgfQotCi0gICAgd2luZG93LlBOR2xpYiA9IGZ1
bmN0aW9uKHdpZHRoLGhlaWdodCxkZXB0aCkgewotCi0gICAgICAgIHRoaXMud2lkdGggICA9IHdp
ZHRoOwotICAgICAgICB0aGlzLmhlaWdodCAgPSBoZWlnaHQ7Ci0gICAgICAgIHRoaXMuZGVwdGgg
ICA9IGRlcHRoOwotCi0gICAgICAgIC8vIHBpeGVsIGRhdGEgYW5kIHJvdyBmaWx0ZXIgaWRlbnRp
ZmllciBzaXplCi0gICAgICAgIHRoaXMucGl4X3NpemUgPSBoZWlnaHQgKiAod2lkdGggKyAxKTsK
LQotICAgICAgICAvLyBkZWZsYXRlIGhlYWRlciwgcGl4X3NpemUsIGJsb2NrIGhlYWRlcnMsIGFk
bGVyMzIgY2hlY2tzdW0KLSAgICAgICAgdGhpcy5kYXRhX3NpemUgPSAyICsgdGhpcy5waXhfc2l6
ZSArIDUgKiBNYXRoLmZsb29yKCgweGZmZmUgKyB0aGlzLnBpeF9zaXplKSAvIDB4ZmZmZikgKyA0
OwotCi0gICAgICAgIC8vIG9mZnNldHMgYW5kIHNpemVzIG9mIFBuZyBjaHVua3MKLSAgICAgICAg
dGhpcy5paGRyX29mZnMgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IElIRFIgb2Zmc2V0IGFuZCBzaXplCi0gICAgICAgIHRoaXMuaWhkcl9zaXplID0gNCArIDQgKyAx
MyArIDQ7Ci0gICAgICAgIHRoaXMucGx0ZV9vZmZzID0gdGhpcy5paGRyX29mZnMgKyB0aGlzLmlo
ZHJfc2l6ZTsgICAgLy8gUExURSBvZmZzZXQgYW5kIHNpemUKLSAgICAgICAgdGhpcy5wbHRlX3Np
emUgPSA0ICsgNCArIDMgKiBkZXB0aCArIDQ7Ci0gICAgICAgIHRoaXMudHJuc19vZmZzID0gdGhp
cy5wbHRlX29mZnMgKyB0aGlzLnBsdGVfc2l6ZTsgICAgLy8gdFJOUyBvZmZzZXQgYW5kIHNpemUK
LSAgICAgICAgdGhpcy50cm5zX3NpemUgPSA0ICsgNCArIGRlcHRoICsgNDsKLSAgICAgICAgdGhp
cy5pZGF0X29mZnMgPSB0aGlzLnRybnNfb2ZmcyArIHRoaXMudHJuc19zaXplOyAgICAvLyBJREFU
IG9mZnNldCBhbmQgc2l6ZQotICAgICAgICB0aGlzLmlkYXRfc2l6ZSA9IDQgKyA0ICsgdGhpcy5k
YXRhX3NpemUgKyA0OwotICAgICAgICB0aGlzLmllbmRfb2ZmcyA9IHRoaXMuaWRhdF9vZmZzICsg
dGhpcy5pZGF0X3NpemU7ICAgIC8vIElFTkQgb2Zmc2V0IGFuZCBzaXplCi0gICAgICAgIHRoaXMu
aWVuZF9zaXplID0gNCArIDQgKyA0OwotICAgICAgICB0aGlzLmJ1ZmZlcl9zaXplICA9IHRoaXMu
aWVuZF9vZmZzICsgdGhpcy5pZW5kX3NpemU7ICAgIC8vIHRvdGFsIFBORyBzaXplCi0KLSAgICAg
ICAgdGhpcy5idWZmZXIgID0gbmV3IEFycmF5KCk7Ci0gICAgICAgIHRoaXMucGFsZXR0ZSA9IG5l
dyBPYmplY3QoKTsKLSAgICAgICAgdGhpcy5waW5kZXggID0gMDsKLQotICAgICAgICB2YXIgX2Ny
YzMyID0gbmV3IEFycmF5KCk7Ci0KLSAgICAgICAgLy8gaW5pdGlhbGl6ZSBidWZmZXIgd2l0aCB6
ZXJvIGJ5dGVzCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5idWZmZXJfc2l6ZTsg
aSsrKSB7Ci0gICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9ICJceDAwIjsKLSAgICAgICAgfQot
Ci0gICAgICAgIC8vIGluaXRpYWxpemUgbm9uLXplcm8gZWxlbWVudHMKLSAgICAgICAgd3JpdGUo
dGhpcy5idWZmZXIsIHRoaXMuaWhkcl9vZmZzLCBieXRlNCh0aGlzLmloZHJfc2l6ZSAtIDEyKSwg
J0lIRFInLCBieXRlNCh3aWR0aCksIGJ5dGU0KGhlaWdodCksICJceDA4XHgwMyIpOwotICAgICAg
ICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5wbHRlX29mZnMsIGJ5dGU0KHRoaXMucGx0ZV9zaXpl
IC0gMTIpLCAnUExURScpOwotICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy50cm5zX29m
ZnMsIGJ5dGU0KHRoaXMudHJuc19zaXplIC0gMTIpLCAndFJOUycpOwotICAgICAgICB3cml0ZSh0
aGlzLmJ1ZmZlciwgdGhpcy5pZGF0X29mZnMsIGJ5dGU0KHRoaXMuaWRhdF9zaXplIC0gMTIpLCAn
SURBVCcpOwotICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZW5kX29mZnMsIGJ5dGU0
KHRoaXMuaWVuZF9zaXplIC0gMTIpLCAnSUVORCcpOwotCi0gICAgICAgIC8vIGluaXRpYWxpemUg
ZGVmbGF0ZSBoZWFkZXIKLSAgICAgICAgdmFyIGhlYWRlciA9ICgoOCArICg3IDw8IDQpKSA8PCA4
KSB8ICgzIDw8IDYpOwotICAgICAgICBoZWFkZXIrPSAzMSAtIChoZWFkZXIgJSAzMSk7Ci0KLSAg
ICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMuaWRhdF9vZmZzICsgOCwgYnl0ZTIoaGVhZGVy
KSk7Ci0KLSAgICAgICAgLy8gaW5pdGlhbGl6ZSBkZWZsYXRlIGJsb2NrIGhlYWRlcnMKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IChpIDw8IDE2KSAtIDEgPCB0aGlzLnBpeF9zaXplOyBpKyspIHsK
LSAgICAgICAgICAgIHZhciBzaXplLCBiaXRzOwotICAgICAgICAgICAgaWYgKGkgKyAweGZmZmYg
PCB0aGlzLnBpeF9zaXplKSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSA9IDB4ZmZmZjsKLSAgICAg
ICAgICAgICAgICBiaXRzID0gIlx4MDAiOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBzaXplID0gdGhpcy5waXhfc2l6ZSAtIChpIDw8IDE2KSAtIGk7Ci0gICAgICAgICAg
ICAgICAgYml0cyA9ICJceDAxIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHdyaXRlKHRo
aXMuYnVmZmVyLCB0aGlzLmlkYXRfb2ZmcyArIDggKyAyICsgKGkgPDwgMTYpICsgKGkgPDwgMiks
IGJpdHMsIGJ5dGUybHNiKHNpemUpLCBieXRlMmxzYih+c2l6ZSkpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgLyogQ3JlYXRlIGNyYzMyIGxvb2t1cCB0YWJsZSAqLwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDI1NjsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgYyA9IGk7Ci0gICAgICAgICAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgewotICAgICAgICAgICAgICAgIGlmIChjICYg
MSkgewotICAgICAgICAgICAgICAgICAgICBjID0gLTMwNjY3NDkxMiBeICgoYyA+PiAxKSAmIDB4
N2ZmZmZmZmYpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
IGMgPSAoYyA+PiAxKSAmIDB4N2ZmZmZmZmY7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgX2NyYzMyW2ldID0gYzsKLSAgICAgICAgfQotCi0gICAgICAgIC8v
IGNvbXB1dGUgdGhlIGluZGV4IGludG8gYSBwbmcgZm9yIGEgZ2l2ZW4gcGl4ZWwKLSAgICAgICAg
dGhpcy5pbmRleCA9IGZ1bmN0aW9uKHgseSkgewotICAgICAgICAgICAgdmFyIGkgPSB5ICogKHRo
aXMud2lkdGggKyAxKSArIHggKyAxOwotICAgICAgICAgICAgdmFyIGogPSB0aGlzLmlkYXRfb2Zm
cyArIDggKyAyICsgNSAqIE1hdGguZmxvb3IoKGkgLyAweGZmZmYpICsgMSkgKyBpOwotICAgICAg
ICAgICAgcmV0dXJuIGo7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjb252ZXJ0IGEgY29sb3Ig
YW5kIGJ1aWxkIHVwIHRoZSBwYWxldHRlCi0gICAgICAgIHRoaXMuY29sb3IgPSBmdW5jdGlvbihy
ZWQsIGdyZWVuLCBibHVlLCBhbHBoYSkgewotCi0gICAgICAgICAgICBhbHBoYSA9IGFscGhhID49
IDAgPyBhbHBoYSA6IDI1NTsKLSAgICAgICAgICAgIHZhciBjb2xvciA9ICgoKCgoYWxwaGEgPDwg
OCkgfCByZWQpIDw8IDgpIHwgZ3JlZW4pIDw8IDgpIHwgYmx1ZTsKLQotICAgICAgICAgICAgaWYg
KHR5cGVvZiB0aGlzLnBhbGV0dGVbY29sb3JdID09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKHRoaXMucGluZGV4ID09IHRoaXMuZGVwdGgpIHJldHVybiAiXHgwMCI7Ci0KLSAg
ICAgICAgICAgICAgICB2YXIgbmR4ID0gdGhpcy5wbHRlX29mZnMgKyA4ICsgMyAqIHRoaXMucGlu
ZGV4OwotCi0gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbbmR4ICsgMF0gPSBTdHJpbmcuZnJv
bUNoYXJDb2RlKHJlZCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbbmR4ICsgMV0gPSBT
dHJpbmcuZnJvbUNoYXJDb2RlKGdyZWVuKTsKLSAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltu
ZHggKyAyXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYmx1ZSk7Ci0gICAgICAgICAgICAgICAgdGhp
cy5idWZmZXJbdGhpcy50cm5zX29mZnMrOCt0aGlzLnBpbmRleF0gPSBTdHJpbmcuZnJvbUNoYXJD
b2RlKGFscGhhKTsKLQotICAgICAgICAgICAgICAgIHRoaXMucGFsZXR0ZVtjb2xvcl0gPSBTdHJp
bmcuZnJvbUNoYXJDb2RlKHRoaXMucGluZGV4KyspOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMucGFsZXR0ZVtjb2xvcl07Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBv
dXRwdXQgYSBQTkcgc3RyaW5nLCBCYXNlNjQgZW5jb2RlZAotICAgICAgICB0aGlzLmdldEJhc2U2
NCA9IGZ1bmN0aW9uKCkgewotCi0gICAgICAgICAgICB2YXIgcyA9IHRoaXMuZ2V0RHVtcCgpOwot
Ci0gICAgICAgICAgICB2YXIgY2ggPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iOwotICAgICAgICAgICAgdmFyIGMxLCBj
MiwgYzMsIGUxLCBlMiwgZTMsIGU0OwotICAgICAgICAgICAgdmFyIGwgPSBzLmxlbmd0aDsKLSAg
ICAgICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgICAgIHZhciByID0gIiI7Ci0KLSAgICAgICAg
ICAgIGRvIHsKLSAgICAgICAgICAgICAgICBjMSA9IHMuY2hhckNvZGVBdChpKTsKLSAgICAgICAg
ICAgICAgICBlMSA9IGMxID4+IDI7Ci0gICAgICAgICAgICAgICAgYzIgPSBzLmNoYXJDb2RlQXQo
aSsxKTsKLSAgICAgICAgICAgICAgICBlMiA9ICgoYzEgJiAzKSA8PCA0KSB8IChjMiA+PiA0KTsK
LSAgICAgICAgICAgICAgICBjMyA9IHMuY2hhckNvZGVBdChpKzIpOwotICAgICAgICAgICAgICAg
IGlmIChsIDwgaSsyKSB7IGUzID0gNjQ7IH0gZWxzZSB7IGUzID0gKChjMiAmIDB4ZikgPDwgMikg
fCAoYzMgPj4gNik7IH0KLSAgICAgICAgICAgICAgICBpZiAobCA8IGkrMykgeyBlNCA9IDY0OyB9
IGVsc2UgeyBlNCA9IGMzICYgMHgzZjsgfQotICAgICAgICAgICAgICAgIHIrPSBjaC5jaGFyQXQo
ZTEpICsgY2guY2hhckF0KGUyKSArIGNoLmNoYXJBdChlMykgKyBjaC5jaGFyQXQoZTQpOwotICAg
ICAgICAgICAgfSB3aGlsZSAoKGkrPSAzKSA8IGwpOwotICAgICAgICAgICAgcmV0dXJuIHI7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBvdXRwdXQgYSBQTkcgc3RyaW5nCi0gICAgICAgIHRoaXMu
Z2V0RHVtcCA9IGZ1bmN0aW9uKCkgewotCi0gICAgICAgICAgICAvLyBjb21wdXRlIGFkbGVyMzIg
b2Ygb3V0cHV0IHBpeGVscyArIHJvdyBmaWx0ZXIgYnl0ZXMKLSAgICAgICAgICAgIHZhciBCQVNF
ID0gNjU1MjE7IC8qIGxhcmdlc3QgcHJpbWUgc21hbGxlciB0aGFuIDY1NTM2ICovCi0gICAgICAg
ICAgICB2YXIgTk1BWCA9IDU1NTI7ICAvKiBOTUFYIGlzIHRoZSBsYXJnZXN0IG4gc3VjaCB0aGF0
IDI1NW4obisxKS8yICsgKG4rMSkoQkFTRS0xKSA8PSAyXjMyLTEgKi8KLSAgICAgICAgICAgIHZh
ciBzMSA9IDE7Ci0gICAgICAgICAgICB2YXIgczIgPSAwOwotICAgICAgICAgICAgdmFyIG4gPSBO
TUFYOwotCi0gICAgICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IHRoaXMuaGVpZ2h0OyB5Kysp
IHsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciB4ID0gLTE7IHggPCB0aGlzLndpZHRoOyB4Kysp
IHsKLSAgICAgICAgICAgICAgICAgICAgczErPSB0aGlzLmJ1ZmZlclt0aGlzLmluZGV4KHgsIHkp
XS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBzMis9IHMxOwotICAgICAgICAg
ICAgICAgICAgICBpZiAoKG4tPSAxKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
MSU9IEJBU0U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzMiU9IEJBU0U7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBuID0gTk1BWDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHMxJT0gQkFTRTsKLSAgICAgICAg
ICAgIHMyJT0gQkFTRTsKLSAgICAgICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLmlkYXRf
b2ZmcyArIHRoaXMuaWRhdF9zaXplIC0gOCwgYnl0ZTQoKHMyIDw8IDE2KSB8IHMxKSk7Ci0KLSAg
ICAgICAgICAgIC8vIGNvbXB1dGUgY3JjMzIgb2YgdGhlIFBORyBjaHVua3MKLSAgICAgICAgICAg
IGZ1bmN0aW9uIGNyYzMyKHBuZywgb2Zmcywgc2l6ZSkgewotICAgICAgICAgICAgICAgIHZhciBj
cmMgPSAtMTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gNDsgaSA8IHNpemUtNDsgaSAr
PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNyYyA9IF9jcmMzMlsoY3JjIF4gcG5nW29mZnMr
aV0uY2hhckNvZGVBdCgwKSkgJiAweGZmXSBeICgoY3JjID4+IDgpICYgMHgwMGZmZmZmZik7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHdyaXRlKHBuZywgb2ZmcytzaXplLTQs
IGJ5dGU0KGNyYyBeIC0xKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNyYzMyKHRo
aXMuYnVmZmVyLCB0aGlzLmloZHJfb2ZmcywgdGhpcy5paGRyX3NpemUpOwotICAgICAgICAgICAg
Y3JjMzIodGhpcy5idWZmZXIsIHRoaXMucGx0ZV9vZmZzLCB0aGlzLnBsdGVfc2l6ZSk7Ci0gICAg
ICAgICAgICBjcmMzMih0aGlzLmJ1ZmZlciwgdGhpcy50cm5zX29mZnMsIHRoaXMudHJuc19zaXpl
KTsKLSAgICAgICAgICAgIGNyYzMyKHRoaXMuYnVmZmVyLCB0aGlzLmlkYXRfb2ZmcywgdGhpcy5p
ZGF0X3NpemUpOwotICAgICAgICAgICAgY3JjMzIodGhpcy5idWZmZXIsIHRoaXMuaWVuZF9vZmZz
LCB0aGlzLmllbmRfc2l6ZSk7Ci0KLSAgICAgICAgICAgIC8vIGNvbnZlcnQgUE5HIHRvIHN0cmlu
ZwotICAgICAgICAgICAgcmV0dXJuICJcMjExUE5HXHJcblwwMzJcbiIrdGhpcy5idWZmZXIuam9p
bignJyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ubXA0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJj
ZXMvcmVkLWdyZWVuLm1wNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJkNmQ1OTY1
ODkwNmQyMzU2NmYxYWExNDQ0M2MzZGMxZWFiNDYxMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
bGl0ZXJhbCA5MjIyNQp6Y21lSTUzdj85SzhPUUpKR3lCTFVLO0QyUkFjN1c0dzIlfUw1YGtKdTNB
THM/dFYpUyZCOXclWFl6UGtwRT1VIVEKelIxcz5TMHBIWEl3bG9ve2N1P3lSRDZQZTRLQDI0fEs5
V1lrOSp+MVBpPT1tdyg5TH1GV3FhcWBQRVhKMnd9KHdPCnp8TG58dnp1KFJgY2ppQWczdTcjO3Et
eD5admJqVUEpMj9RUGB1QUNwQC1vSSlUdUVoZEcxRzNweC00OCZDNFA0Sgp6NjI7ZWU1QSF2JkZx
VjlkRiY3cz8kZk5uaGxkcVZgbjNITGBRYTR+RlBhSlcrdXp2NkRJamFqc0V4dGVIanNYdU8KentD
NCN7aT9sLW5VRWVzSihmcm8ybXNhZzlkSDxGIzd1PiZVUm10RmNQbj47YT1aZTdVPTkxSG94NlBo
LXhPd3hpCnp5bD8kXih1YFkhd1k/X314JTxSN1ohTFhje2cmc0NvKmQ+cV41LTNJVHQwUWUpaEND
WmAxLXJgO3xLSEJAQVp1egp6Sj82Y0lwNE1sYVF8fGlCKVE+TEMlNWgjKmRVP3FRSWcxWTZ8THJk
YFd8c31tSjNzQzRyKkZCPkI8PyEyPzVrbF8Kenh3clRHUyNDPURybm1BfWpRdzVDbVcqZTJoIV5l
ZlduVV5MemlUbT5TdjlPPiNLcU95OHokXm5TZV9Cc3VzemIpCnpsc0txbT1pbEI9VXdFU1Y/SnRi
V0B+K0VYbz5pbTglQEBuPXQ4Z352dzRPVSQmeFlzczghX0A9O2t0JVg3WH5qZAp6RjhUJnNiZnhU
fm5nUEZYYng2QnZoR08rYTx5flF8UEkqXll0NWUkNTBjJitoeUU8VTR1MmA7RmlFajJwQDN1RkAK
em4/JCF4MD1YTzFQJUkqLVdgTWFIeExMSEslcDxDMVQma1B1VCFLbmElPi07dnNRK3olJUJjVHNw
c0VVV0czYHslCno/fX5FJlJ9KW8/cyMmdzVSMSNEKEY0Z3t6NUw2NSpIO1l5akl7cnMhKFdaKChR
SSVBb0V9e042elhpKFVLY3k7Vwp6c0xJRnheSiFCeFEmc0slTVBpbEZweHByaldWZHtqM2o8XyN0
U0h5dT5WeUhaTjd+ZzExN3dmOUUzRE5rPytSPTYKek8xcnZYdCNRKD5FPzhAdnllcThMQytgWXRe
fkd8ZjdSNmVXbj8pLU1qVjFeISlnMiM9Q05AQV9LPmNyfnMoZHNfCnpYXzZWTF4zZiFucTd6aHZm
RE12enw1SFlYeWVxMlhLa1phKWZPPEVMfDdOUG57WkIpYzhMSU81UGJYRDJLd1Vgdgp6Wj5DRTla
KVQjZHNFKz9NbiskbW1SSDBJK2Y8b25wWUMpPEgmeThtRVprUW5ackwkWiZPcHlKdHZSdERwT3Bw
V2UKenR9c0NrTlZ8R3F0d0N2NTUzRHNQPytSOzttdkBEPSMhSV87VlhZeClTMSt0SjZ3OCZ5WG1q
dFc/KWRIQHNRLURXCnpibHppVEQkYVgycUZSdD5qN0RJb19DRXo1SGI3bFVKNUA3UDxeSEZrJF8h
T0dPYF5IVUhiQUJFQUJEO2gpcStHPAp6bE1xO3s8M0NOS3dFLSRjXmU5eDBzMV92WmUqfjZsfEk8
bTg0TiZQdzZAfChYKXEqciVKVTV5cWR0dWdAQWZHekkKenRUUTIyPlMlQ3tnSVE7eXZ9K3Y5SXVx
cXhWWFp5blUxNjt+cStOWm0pfUdSP0szSG97Y35AOSNGTF9zM1lwKzxZCnpiZEdOQko9TXtLdTEl
Vm1EeGFiZ1IxXypsUjB8UnZxYSgwWGA9OFFlOD16N3xoZUc5dVlDKW9EdjxOS0t7LTxlbAp6SGJB
QWJOZmF0YVIwfFN+e3xHR1ZlKn11RXF6YVlCZjgtcmR6TTVQYD1sXkRgcyslZkpkQHdVcktMNGth
RGlrVjUKelIwfFRORGhNcHF7JERLQzhJOT11RmhFWHtqJmw3bEt1KEdrPHItYUtmU2ZHdjNJcFYx
WTFhVShIQVVKcjBCY1E9CnpjWklkNCVEY2leUT45Jmx1K310YipDNERsRXRWP3soZEhnaVpCZUA1
WWk2b0dIPD9CZ2xxdz14a213S3tmdS05Mgp6XnRzNj5SRjA/P0J1Yk1KU2dNO1VMQTMhWVA1NEJp
YXp3UXQoTlByd09TUylMc0ltYm5eKjspZ0JkUF83PHxaU3MKelJRc1AhcyUoSHRUUGd+YkJkUF83
X05vWGgpJjhnMUJzTV5laDs+RklgWENJRCk4KFVGNyRCI3xpZ0ZGRUBpMEtuCnprYW1yUzBkamBD
RTNDRCp5ZXE3PXgzcF5yKjRqdGZIM1Z6ekJrdX1wP0pNc0pZd2E3JGxfR2pgazFFZWlweTB5ewp6
UnJ4WUg5WmxLKm05fHRBRG8wY2M1KE9VIUVZK2gpbm5wYGQ1ZHQ8eSVId3xwOWFXaiU3Uztaelg+
P3wkJF9HXzYKejtTK18qNSFIZjNYJVlmVXdmfH1TdyplfGBzVkcjQXMxX3N8c3R7UEp7Wkhyckhi
N2s8KjZIdmlpbSZrPT00KXRTCnpFY3FOYEUtcitTTkFvM2c0TGBOaTBWe2Myc09AfVZ7b2RsO3h0
WGBzcDhmMnBHYk1XLSR+bTNXenZhTkg/NXhMWQp6OCFucXQ8Kk0jb0BiYm9fXiojNXpTJDFVMmxE
eVIxeHl2ZHhse1JmSFNoez9GJGE4ZV4hXj1LUit4bDg0QT4rYUYKenRzQkdCd2chZVlZRm08em9n
Y0M4elYoQ0JjZk40cnlUPH5kITVJaFoqS0shaS1kPE99WlN9c1o3OTZfbnZCUmFPCnpZQ21mSiEt
dVV+cnRocHdzJT5qS14rO1JXeFYqTlBLNVNkTl5zQ2MlQTZ0N2RAI0RQeW84TnRPLTBQcCo7QHk0
Mgp6N3wqMklRTHxHPW90JT1uSH1KJnluZSpKPVVtYVg/PllYSj8mKmwlPDkyb3o0KF4zQ3I4PUF0
dWAwQ0tuUn1RezYKel5pU0khc25oT1V2SHY/K1M/NndDKj9STjFwUy08eCYjOT9IRTtLaEBgfDJO
U0hxMDEzWWdxUkY8I3w4OT18e2kqCnpScXAhRj4lLVM/Tj1zVFFVX30jb1coYS16WFZ0S2w1ZkBr
MkV6Zz07UCtobGNAKyR1ZWhkKCpjPGErV0tocXRYOAp6OE9pP01ieHA+XzRaJnxsUipqfHl6amNF
flByY1Q4QDdsVT1vPitZOXdhVDlKJno/MGRXeXBOPnJTIzFBLXp9d2UKemVScjh5JHwyKlc4NEE+
d2xKYkllSWk8V3tUfX5NPDJkdjhfPEs9Kkx4d2BTOWxSTDVQZnQmSXZHWXklNXNRI25zCnprVnpB
O1pHY01RRSgoPCtzcylNdU5FKDVxK1cjfkchdj81eSU4V3dnaC15S2kzRF5pTSkmOGViVyplWj1O
UUZZPgp6aC15S2lpM2tXUikmNV5Wcj5iVkVzIShZSHd3YkI9QTdJbkBLU351NUVsOUxlTVBSQStL
YUt3PVJGMD8/QjsmTXAKejJUWTZJUVZBfGhpezBITXhaLXQxMUE4WS1pIzstNFBNOCpacWBZOFZV
TVZrRm1zaUhpMT8hNUZAcDhlczstdEpfCnpUfE94PFNlTElHRkZLNGRjYXJMRWpPTTdCbkpOZUZs
bnRYJElpZ3lTPSVaY3tTZ1FSYCpebXVUWC1oPythendRdAp6UVIwcmtRdGZ+R0tRMyo2TipDTndz
Mm91KE5Zd3ViRVk8I31AdD5kfjFaPEYkPVo0WHlpbzdlVHtaQkViNE4mUVYKejh3ITtwc3MpTHo0
SSF8VWAoTGF4OGlLb0ZTblFWeGFOUkkwX0lESEQ4b2dqeDlGWCNZVlIxbWwlTEQ1USU2TkhUCnpU
fHBAP1NYYUUxN3B5QkAjPiklcTNkd2tSVk9ebmF5ZU0hdGNic2EmKEZgeztRfXVaUmJjcXxLaWlq
MkBJXmFmTgp6c3JFbW03JHtWWnMxX3U7OyljTGQtQmM7WXY7aXZwRiRNfmlCZFBfNyZiU2Qrc3tL
IWdzeTBCU1lyYG0xajtJelMKeitFZnUoc3tLI2R1bmthWXEoWSVgTTcxRSVVS04zKitXIT98b3pa
T0EzdjxsYHNqTHlebmhEKXhqUnZuY219QDQ9CnpjKlZoN0dmflA1KjQwREczKWE7YCM+KXJtPk03
JnBnTFU8a0BgODJzbEpiSWVfM0ZscHZTRCtfc1d1ITl4TXJzNgp6KilWLSNBVzlWeEVsM24mQWgx
O1hwOHxJakRvMGNjNjIrSlpFWShld2NCKGMmckheNG9wPmptRUFrbjZaeio2bWgKemBudiVlcGkr
djdMZ2syUkw4NUYzZnUtOTJ3NWkkdm1DcFpCczJvdShOUityRXV2R2g+Y0IoYyZIM3NmfTcjMWhW
CnoxaHs/fTdBSktSO0VMQkQ0ZnAqcEVLWmo0Zj87djhqOF8yR2xfS0w2Zk9WeHZkQk02O3JNekhX
c1dNKGNTWFl7aQp6Un1qe2Ype1BlaD8mZ2tEeytsdXlhbWBTYkttTFNIeE5VJCtmamJKN0JkUF83
NV9iZmE+YWlnTz9sd1RCb2hrfkkKekJkUF83NV9iZmFZWDgld1k2RGFYKyk9MDtRN3VUNjRJIXtw
YD05PDglTGI/dnhUOD14cUZSdlh0T3xqcCtXJk0/CnpXZGxfRF5iLV4rTV5wPF53Um1uYzFyTmZz
STkpMmlnPXVrbUh3bXU2RDt9b0I4OFRrK0ZmR29JQGA4MnNtaHlzaQp6Xl9LQXAhTWdnJGMhZ2tI
ZVdiaSNVNDVtelV8b0g/QHVJfXQrKHxTeG4zKlVtcyEoWmNLOzhvN1llUkl6alojSEsKejNsaHk2
S3d6byVLVj9IR1JGMD8/QnN6XmpWNXg0WjFsMHpwKWMrX3tqO0l6UytFZnUoc3tLI2R1bmtiQCgr
XlJvCno5OG9QdUcmYy1eclB9fVctPV45Q21CeFAqRG8wY2NRcGYqQW5KQVdzX2Jee1czdURSVzc7
fHdVZ2dseHIhNFB5Rgp6OG5CV0ZMdjd+Xj4tUUcjJmR0MjdfVXZhKm9oak0jUHxvUmB7dylWcVdv
SkVKK2k9O0dEcHomeWZ8b1pZdD8jKyMKeiY5V25GbWdKQDgmUnRmcXNrRXU/PGkrPE57cTVkeUtW
SV57UShKIWpWKjIhKVAxRFlOR1dXJjVPY15xJUBMPW5ZCno2QW5DRyFBSTNAbkFBRzRYOHB7JjJC
aFJpMjBuUC1sVWVXSWFCdCshe0p2bElEfHYzdF5lMktYQyNVfS09ZzdBQQp6Y1ZEMFAjRFIlZEpl
dXt1YjVEKCNGbnN5d2cyY3Zte3lLOEBSYlBNZVZmUDB8cj01THUlYCRmN18qYnF1UW9PNXIKel9f
bXBFPCZEamJvY3NPcFVST1dkYyYwOU5lODxaWm11IytsWX5TK2RrQk1yZDBYWnxvdzhPSiVTaiZp
dXRHNzJ5Cnoqcy11WUJkfXE2cV9IVjZgPXZYRXtjemFFam1KTF57O0h0KGlecDFAekNMc0dHSm56
RVV1NWpnKFg3VmBFbiVyfgp6ckdeeXVoTzhQKlBqUj5KdDhnfnZ3NE9VJCZ4WXNzOH1XRWpXYUst
KU9tdDdebSQmT0x7Z2R1VklzUm4qZiZBdHsKekFNOTxeX0klTCV3WW4/Y2N5aHBlPDlaRF9AOHgy
PmRkPl5oSk12KVJ4YHRDMTF9YHV5c3V8dX12OFYlaU4hPWBKCnpLJV80IT9gaS1jN0luKEkhZGpp
dXRgMW5NT1dNQHxZandxUHI4ciR8VzhrSmJvWUpRVzFFQmhrcyElRFRNNEBzLQp6d0lFVFBqPS1X
IzZAajhFNW1aJXokbnRiSzRTfUw4c2N4ej9lLShLUFJIMEl3aEM9MHRZQylvcTApZUh2c1M7RWgK
enBpKU1PTGdrMlJMODg0WDAheXwzWTM3Iz1QLSYtJUxnazJSTDg0UnpmdS05MjMmbEY0QHdAe0Qk
WnEqNDdZNH1nCnpTVyZMUSlkPlMra0Y9ezMyRk08SFM2SGk4LVdBc0JtM0RRKFRIflokVTlpP1Rj
fkBBZ1B1PjtRPldrJHs1eHUhYgp6UmE9eHM2RWpvdzR8Uyk+U3R3T1J2PjtKTGtIQXZ4e3xlZnZu
eUQoTSRAQ2MkV35qOytLNTN9MzBWP2ZPUUslZUkKekVsM282QWgxLTJEKjd9ZTg9JXJpZytrP3NZ
QylwTyokNkR2ey1eUVoyQj5zMzM1Q2lMKXErRzU5fSFycHtsN0A4CnpHbnl2NVZiPHhGUDk1RGE+
LTVKOzlnVklxPmtQPWQhbUtrTz9kcE5HMkJscCt1LTJmd0UzN3FNLVdBcHdGWVc0dQp6d1Q3ZiF5
fEM2JEVMUkZYJXNyfndxQk5TQW5YMEdCYmRIV3ZNTU1oe28la1RJUlFzUXtSMV8qbFIwfFNhTytz
TCkKelptSTs7MkI8V1AyOEdISSlxK0g2RzZHQXJ8MCR4ZzBWPlUrTVdKIzt3SUk+UUtxSWhKYD01
XmdaR2NNU0tNSXYyCnpzcylNcUFBek9YfENOamQ5eDV2QCpGUiZzdzUpbiZTb2lxRDt2V3Z4P0Bh
c0E4c188TUV6XzkoRk0yY2xBWXx9IQp6ZSlPNXhCUFV+P3VUQG5SJUApN0J5PXIjNXJ9dGw7bSk3
UUtHJVZZMDBldD9BPy1qLTJEKmZ8ZWBWXk4mc3liSnUKenV9a1oxVXpodm92aGJgVEB3PzJqRnNQ
bUY8am5hVE9XeGJRPGp8U25RbypYQDdBYz1NPWg5PlNkIWhJX29MTnZUCnpSK1R4ZlhpbTdhU2J3
VmYraHchbmwheW4zaytQMDs+KDNScEU1YVJtcEt4V2R7KEpxVnpuYjhAJUZAaF4kTD5JKwp6PmRz
UX1fX2p6QHIyUmVWKEFqcyg8X15fZ3VZUE48cCM3MTk+N1JoM3poZUQxdXM5T2Q+dEBiJEB4fDM2
S2JkKk4KenYlaFM9eUIkNSZjcj1Jak1PdmgpOWdxR0BlTnspcmJNP243aDI7JFdmdz1qX1VIX2ZG
ZGl9ZTI+c1VoUFdCdGpPCnpiZ30rXz5FMTU3dVp5bSk+KGNYc1VHKEBhZE1LKHBVbHAlSXp1MGw8
Q1NJUjVOISV4UWV5N0pCSmN0OHZfI2ZLXwp6Km5+KmNqUGxPTDc1ZldrMjRma29GP0wtTVc4OzNx
Knp7VyVufTNTMmhYeWhCT2J1aE4yTi0qQUFZLTN6VjRCbTwKencyV0pzY0leZUdqVDxsYU5uZ1lt
RClqeEI3KWBfdzEja01ec19QQj5vVWl9eFdedzJHMUo9ekBwfDk2QHErPl94CnpuJVZ0T0YpeTFy
I0B+a3g3MWd1QyNxQUVBVW5ZeTYlU31VdEU3Jjx5QnZwM3w2PHVHZyNCa3g8KkV3OGwyRSliQQp6
aW1HUV4raUJmKG9nTEU2cVdXPi1wPz1xSW4qWVloVj1+OC1pfUM1TTRoNFFxWWlrcUlENiFUdFQw
dVQqYDxNK0oKelNkYnJsdn5LSktTSDZ5bDlpNHVDdyk/TStXNkt9O1hgMTdoSHZoKSl5U0RkO1Rl
QylFdTBjbTElb0l6KmFwJmpsCnpqRDxlS0kzOFduYCphelBeY3dWZz1lWG4kMUd7MDI1WC1QOGFs
YipfTkJuPT53WHZla0phTnpZfEZ+O3pRSyM3Nwp6djhtJHotK1loM0s4PVplUzZWcV4qfVdMTXNm
ZSpAOyZeREB2eTQzO19HX0QkaD1afT9qT2BjdXdJbGI0RSVxNEcKelFwSjk0JFgyRig+dzxYUWBa
bkV1aCRiSEUkNWk/QEp5UDhES05YeGdae0RuTSE0Sm0lO05qTyt5cXgjX3Y1ViQzCnpQdSh4e1lA
eXZHb19Rc15oQj9IKE1xYERub1hydS02b15NUnZyMENMUmtJPmkjWDl5bG5mZn0hdnJfY3VQdWVZ
eApNRlUzbTI7OyFIUjM2VGdSOFVPJFEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9yZWQtZ3JlZW4ucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdy
ZWVuLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjA1YWM5YmExYmI4NDQ0YjA0
OTViMzQ2NTRmMGViNGJkNDNiNWE0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAx
NDQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qNmxyOSEyfjQ1OXhFMXIxZDQ7KW9meWBnbFgo
ZmB1JXRXc0l4O1k5Cno/QzFXSSRPX351QnpwdztHQjh4QkYpJWM9RmZqWkEzTl5mN1U/Pz9VVjBl
fGx6K2czbGZrQ2ByJmFPWmtwYWg/JQpsaShgbUhjPUNfKTNAcmE4ODk0cWt7eGBke0xJTm5tO09Y
azt2ZCRAPzI+PyVwQjVlUXcKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9yZWQtZ3JlZW4udGhlb3JhLm9ndiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1n
cmVlbi50aGVvcmEub2d2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTQzOTE1YTEw
ODBjOGJhYzVkZWQ4YjE2NTU0YmFlYzI5MGQxYzgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgps
aXRlcmFsIDEwMjkyCnpjbWVHP2N8Nm8+X3VzTE9IT3R0PTN7I0F5M0BYSEpPeDd0SCE+Q2NKIU5p
Yn5MQWg7WDRNe2NHc3FBSUtqUyNKdAp6aXxqazRqUzdgZ20mJn5AKllFa3g9dzk5VHtAKFpmXnVC
LW5LRUx5TUptKSMqSmtMNExJblZ3Ym58eXM7QXB2THMKenNgdX48elo1aUZNLVgtflMkKyg8NDx6
X2k0RGo+QyNOV2Axc3pSSC0oSmslRW15T2xqeFFFYlZoeGpxfTJHYSF2Cno1UmZwMGdkajJtdjAt
X3I1ZDthbztNR0p4a2h2Yj5GSXYqKkpRPFhkXl4kPGxLIW9pTF9GfVNObUhfKVkxa0Q0MAp6LVhW
Q24yRW50PnVNVHE5SD1xKEtGQnM0akFkYFZ9VVZIYTJBT3BhSHk5V0RaNmJkb2BGYUZ7ciVtYU9k
KjYtYUQKeiFxXmpIPW9US3R1dDB8fmVIZVJKXjhKdCFVI3QpQUImLTdONSk4MX0jcWMlVy18Q30+
YFlgdmQ8YTtDfnslejtzCno5PlE4KUk2Qk5vTjVPNz5nO05weTlfUno8N0d7diZpY1BgMz0tb14m
SntPSCZma3p0fjhKUWNJODVeVEAtVFhwWAp6ZGw8V1k9czM2dytUaFJEZEhwNkVUWit9TFU0Y09p
VXRAa05MISVZT3RNeXI3ZCtAOHhqWkhOYEhQPW00JTZpKSEKem5fTH5OVF4rMjxTRFR1ekdSRkhE
bmZSRX4qQkJjfEB8KWYyKVNhdkMze2I4cmJ8bEhMdk0yQ35sO2k+bzV9KVdMCno2T0JPPGZFcXI/
Mjl+K3thXylSfm0tfkZjZUN6SEJ6NHZ+WCs7cnR9U1B6LXMhX0JpIT5+YS01UChqNj1pTns4Jgp6
QVAtcUNPJWxuc1g1Vm52THh+QV9WRXt2MkdGRzZUNU5EPktJNU5JRSt+OHlyZVB2NWpOX0NnbFB3
b2otIzBYPUsKelpTSW9FR1p7NVE0NVBIOyVQMUxVOTAkeSlWfnpFOU5CdkVlQzdRZikzOChDfFdC
e1k/JlExZHFHQWU+X2BSI3VTCnpiIz1kQnRnWHBDSiE3Jk03Wjx8bEM/SCoyJFlUZ3VKaXNtcFN2
WXJiIVNFOy03ZTIqZkBpTTVjOUFTT0J5YmlSLQp6eFlYQlE5XzxCV2VTT14rMCM3Z1I/WDghXjE4
UXVuKkUqdVN6ODdHUzB8V3tIVTw2JnhNTU9yS153aWFqO3EmdHcKemdGeVNwc0FPMDZtQEtgMlJq
QSs/Iz49KDlaWVpRVChqLUohQHQ4cypOQHpUNmVfRV90T3ckSik1eFgkX2UrbjNrCnolanNNSTc7
OEY9YSRWPj1HTUF0OFNwUEpXI241TW5NNH5tdUkjTFY5Xmhofj9ofUpWT157PkhONzhDaGxfM0c3
bAp6ajchMEM3KVJ2QzA8X3hyOVpkYWUhMmRaQy0mZXdiMFBLcjZVQX08b2BCWiVganxzKkttSTJo
ZWZYNFhMKmNndXEKejIyZlUzKV9QeFYxQT5uUEZnIXs/JUxRZiVYaTs0Rmh+bVBkRDNzR01sUzFM
LUV1ZFRrMCUwQXxBUH5WdlE0Ml9qCnokQllzWkxJND4rTEleJCo1I1VpRyRPVkxpNHNHOFNhKE1m
TFNMO0BtVH5eKHRiMHxpd2VvKzJrYUVJLStxJjBPJQp6I15yMm8pfFljVzRwS316JTlgIyppYH1W
enk+dyQqN3JwOXxSM2V2aDxKMH5udCF2fCQ4SkA/Pmc7dClua0cofFIKej9RYFF1QFUrKXZgXnM8
fnV7by1QYjszazNLeE5JNUNkcXdLQmJIT09uN1h6aEA0ZWFVNjVpZ0JvNHh2M1hLOWZ9Cno/PEI+
aFM+V1orRT8wOEVFZnF0SXtmQ0dqUU5OVVRULVBRe2xNbVhUNGJCU09lfGZYOFVMeGBxY0sqMCtO
JGA+eQp6bzMmWHhyWkclNCQpPVE/SE97MUc8aGl7VG9jQ0BpJFhQU3psIzt0RSkrRVMhTWlmTX1K
fj8oaF56cG47XlVQaEcKej0jeyQ0c2tLUTQ/JXFxLVpBbz9+WjJEVE88XzhMRUAyUEomcV5UcCsq
SUllTmFNYX1HYjQ3T3s1QVc2I1NSX2BlCnphcFJUOWZiRzJDLVFOejIpa2VTaXhPSGJ+KERHRUxr
UzReMF5CYnhJOCNfR3A7SExCUEc9SGhDRHxFU21INF4kIwp6PnpYdnxqfDZjISQtPSM3ZVNYZzA1
dERNZndZNn0+eyVqM1A9R2VhSi1JXn1+WkZQfWxLfX1PTSttd15vOXJ5UVIKelJ1M0ZiUGkpTHhf
dEI/WEhHIS1oT2B+MCNlZUYxTFdGKj9BX1ZSTk5wRStsVl5qfVlSaGJtQUVOX09aVGUjMEojCnpw
QzJ3ZFY1ZkQ4KFRJOTV2U014amZ0P2FsdzJTUFE4ZnU1Rzx2UXpjSnJeN25fYiRieiY7R1h9Sk5Y
SHZ1Q2xzZwp6dmxzUlNDUVNCLWAhb0g1Iys5QSlOM2dUbzY0IUw3KjJhRH5sWEFDdFJRdnYlPXNw
NDgkXytZYS03Yzh1XmNkMT4Kem1hSlZaeldmN0NEP3NZP3E8KyhgbyNPKlBgcWEjeU9lcHFmZklm
YU9sN0lGZlV9UXloZ0Z6X15Ge2JZb2YwSlYrCnpMQXlPaClrXnokQDdtOTJvQmEkRjl6MTBHWnck
MXJYcTkoOVBCVntne3V0d3lTWm1RR3w5T3dKWTs9PVUpZCRiRAp6PCg+czxYPGMmUmlrZTcwaXJw
S0ReJmZEU3JRWSFeRUFyTn1mO3Y+bV9qbHx7KUJoYitsa0xAK2h4TGk+ZHRLVkgKej1JcDFAa0Fv
P1phWTZJQCgjVVJsMSNBN3AzUCtzJENkUlZZKWNzS1RgTXRYNTdXZVN6KkIjfWY2ZkxxO1E1d3hP
Cno9QlR9Qj9TYWIxVGxQY3hjd2Z6RFYkKnhjRyo4bGd2MXg2ZyZaO3k9PEN5eFJ4MT9pSyN6cjB8
WlM/dmJMRGtYUAp6bkN8XmRXT3w4TFckMjYmRTNPU3VlVEJKVmY3dXM/N3VVaTQ9SnthSkNIV2RG
ekEkYGtYVHFNKjw0Z2xmP3pRRlgKeiM8KlFZV1o4fDNDdGZgKUNVYDk3NzBUKD9nZUstJTN5JSpX
aHZNYG9xZCglK3s5QjdjPXRzbFVhXjAofWUpaFlqCnp1PnFZbVVue3l+KWtDV1o5ancjRVNkcX08
SU89S0VgVWBaXmlpNFZ5Y1JlJl5lcnJfZ3hWbW53e1pBJnhefCQlRwp6a1hmRl93OHxJQU9kUEhC
eEZ0Qkxje04pS0JffiYld2N9OTNzSitzbWFUPGZQPHdfez5QYGZ4KV5JOXh8ckoqKU4KelY7K3p6
M018UkFLZCtQMlluMiFEQGctSGdMSkRTYFl5U09oU2lJZWxyU3lqVDstaD1LQzcrMFB8Sz5gcmw2
LW4pCnpNOHctTUU1SVBiOyNOaHxCWCNBYDFncXZ9XkpVfTB3ckhRI2dDLWx0YkNaQHtPUWBzSG9y
Ym0qWEhNfSVQcFEmSAp6NzFOSVUrcU84Wl5IYUYlTjxSTHkqaiR0SURQKnNpMD4kRVhebn4pdjUw
I2t3K2RZIUtBfG5NKEReOEVVVUAjdS0KeiE5QUZieHM2YUhLU1o+Pko+e2V5N304fl9kRU1LWjtx
JklsaTxEb3o5OTlxTko2PnN2K2djTyl7MExvRHxNVFhaCno9VGswU3c8YlItRyFoTlM4QCtuclFR
VUBCJDw4V0wtfHFDV2BEM15OeU5kRmdCPVRGP2NpOFJxJDEmQiNuWjdIMwp6dVFQWVA3V3ckbmZw
Ujc5SG1WdFJDODtqM0lKd2lMYFBxaiE3WiZ0Pj1IIXNPLUo4O3U2ckFFMD9laCpZQl8pWVUKelhO
O0x5ZmBSKzR8REx6PiFVbFZfeEd2KDA7fmdxcSUmYjdhdE0/UUw2cFFJNXJzTXB0RitWJGZNeENV
YT0zZi1NCno4KzBfU0BuOWx0bWJUTnpmaXgyNntpYzBySyhDO3R7a0RKKz9BUkdvdztnWWZPYnR1
b3QhbzFsP3UySms5cWIlUAp6T3BgIVgta2Q9WVdfQzJKWlJLbD9fc3ZmWm1UWlFeQHdlWjd0fUR2
KmV9aDFHXno5bUhQbkZmNFptMy1PcXVIbEAKendMTCQjOyk/PlNRdFpUNStQN3VLRSV+QTNeNypT
KjcyaDYzWTQ1VzxaeXJ5QEF+emthdFNFbyVRWD8pSE5IZ3RMCnpsd1g8cE0mIytjc1IrPV9DXnZP
WUMpUTdUNlhUO0MqSmhKcERnRSZfcT99b0RPelpITVh7c1pgaHNZWU08fD1RbQp6WDs7a25XWVg+
fXk4UmNAZ2ByM2BKUTQrNm1mQElOJnozeUElI2I8WHR9dS0mN0NjNWlETCskSXdgMXZKTC1KMEMK
eldsVmZeP1JjV29xd0FrdCQhe2p6PiNWZW9yPSo8UUw7UVNHVFNQbU12N0M4c3Z3VXdJaml5OHt6
Tm1ldT03dz1iCnpRU2diWDdCVGhHSmkqUktDbncqcVBxZitoZjg/SU5lTSU7SXppZC1OIT9SMXg4
UHgqfnlTQntsd1o1QEVhKEk0IQp6T0g0ezZ3YjgoMVMwSHpuUW54K00wJk9xT0NBbmw+ZjJrIzR1
YyVQRk9yblQ+Xmw5TTZhXzBGcSNxUDBKc312fmcKek1CMHw4TV9SWVZDcCFtVG52ZE81Kj5QPTE+
SFExJlIqWn5nbTZOcXAqSElsS3RVUT4kd0JWTk87JmJCS3dud3tgCnp7d1JJaCorSHJiP3FZZXZD
JDF+Pk9McyREPjRXa1hacjlValNDPUopSC0wNzk8empUZnF9YUhlYWJqK2Q9M0ctawp6PitoajVj
OEY5JTZSPTFtcnFrWmQyVWs/QkxMT3AybChTWDU4OGxWP3FMdFlIVE5KUEo2SDQ4V3A2bFRiSlpW
XzkKemh4MGlHNj9MRSQ2VVBwK2tQUHhZeT9iaFU8RkNXXnBNdnZtWl9wM2Q8SiRlZ1N1WUVYaEE1
QUFZdXlgdWtudX58CnokcShjOU1eZkVxc0JSfm9WcT4pc2I8Z3FqPVdNVjFSQlE2b1F9Y0NPKGll
bCRYV1V7MU8zP1g+MilWWiNgJU1CRgp6WkZYa3NwUl9nSXhiQEVTLWNycUozR2RqI21EX0lUKDYp
KFkjazVLKUNsKWE/c3cqQ142RnNXK2U5N2N3OGBZcGgKeig/ekx0ajFjNm9Kc0NMWm5CZzdzRm4/
PGdqbisyWXxFdH1ZUFQmX2JHMn0/SFFBVm5NciU3UHhmSzVAfW5MODJoCnotaTE5cVByUjxwLWVi
NTwjakQ/Vm1yXzxoJFcyRW5CNUlUU1c+U0cqeENVWnxHM1EodmtwQ3F5JFQjYE1eYFFLVgp6Y1Z6
T2hWenh0PFopRGdeOSR4cGNZM0tkVG1ZfVdHbXppYTVEZ1J7anpJYHZqRkVJR01SRjJuUyU3JVM/
RH1CWCsKens3MlNPUCt7P3QkKHtGQExfNnt5T2x5cUh8RXJIQWdmUVBLaj0wXygwWTR8JVN7cyNy
WDdgKztMWFpwdTwmPjtSCnpKJFVFbCtAcGdMN3d1Njg8S1dXTTY4b01YPDd6PV5gc019SWdZQUlG
TFl3KzFLIyZsYCN2d0M8TX5OP1EmU3xKagp6JGh4VE53Wk5zQWMleCpNN157PktrMTVRVjJnSHxG
bE52fVZubEo+T195aTstOGJ4dXkjQyorZ2gzUUBpeFQxOGcKekhyeGV1UnRMVFg5VktuP3l4PEko
RDI2S19sa3whVWt8YHZeQXJJRXtQMEAjfUhgYyRScWgqTGQkPThoTTJPOUpSCnpGbnhHVFNUa1FB
LXpfeCVQNDlSYiluMmFOKntrMDlpK1o+MEc4ZWdKeX5jKzlsdlM9S1IjWjNKS3t4N1ZzO0I0dgp6
emA/TTwhUExORWNWNTlna1g5WGR8SiVmSzlnVG87dzlQciVJRjEmTV5WRXpaNmRoWTQwUXRabiQ8
YS1DWUxAaU8KekEhISt0dm54RStIJEwtWE0mfFM0Yks8LXpVX0o9KC1rK2xmNSspQk1gRyN8TmRG
Qk9YWDNAVyEyITQwO0FPZVZHCnolUlk1fXZKYnxKQCo7Yyh7ek8yYVV8V0k+PnsrSFFFS0I8a28w
Z0RgdDt1ZSFSb2YpSzRnJmxZMGZHcWYyRFl4Mgp6RW9Vc2Q8eVVxMG58OGBPeHRLY2p7fk81XzZ+
VVY/eiFBKlpVOCgrVHF7JTVkRkR6YEpSeWh+QlVYcEpLUkVXIWMKemhSKkVDb2I1RTEmSyVEdk1y
SE5hJEdjX2UpRTF7X3ZBV0RCdnYrcj9KazRmeDtvMzVxYXghYHtTelY1am5UN21QCnp4TGxUS1g+
bExtc1ozQHxIPj1QPUohVzV+WHp7JSpwZT9OQGJLK3R4M1k2bEx2dmpJei1UMy09Tj9CZFMrcTFq
cwp6JkJzOENfPnJ1RFN9eypoYHBxWU14PkY0MTBsTiNDNztwTHp6X2ApeERtUn52TD8yRVBAal92
V0ZsUkpFUEQtRTIKeiFRYTZaWHEtczBCTmEhSERKblhKQSgxQEsoR1YwWnZ2P0xgVndKdChGYy0z
ZSNxfTswYTEhKnxiZ3koNnc7UkEmCnpObkBBQSlhNkUqXl4qOT9LOWEkekwzaSZIUlRKa31XIyRl
Nmc7aGZ5YGh7U0U7fGxwSjNKZmFSPWFqWEczVTdWSAp6clUhI25rck9HdGM7TWIqeUplVTVFPXR8
TXNEc0pPcFU9Rj5PeCt3N05KfFU3ZT5LTVFac19DVCE7Z25nPmA7bmoKeiZ7RHJpZUFqXnw1V0pq
dCVRNHcyNSNOIz48eENYZzVBZWR1dkVQU2tJaiFEJDhvUXdhPihwbl5JYip0TSowZmpOCno3RUJq
YzE8emlFKDApYVI+dVMmYlJnOFdyVj0jPHl1YlEjLT5TMD4tO20zMX0oczFiRmw+P1RJbVUrQHNo
aV9MLQp6KGk1e0paQVQ4NCMjem89SW1IPzBVS0hwM1cjIzFmQzBzflB4RGJ+eDhKRENScFVSQlM8
a3NmeFpZIUkqX0FrPlAKekQrZXFYa1pkVmYraXpBKjliU0RzU1VlUjVQUDJSO3QkTS1rNU1yeWVj
bU49JT92JiZQY3FfcldQeihudHN8RzJDCnpSNXZUP3prKSR7WEBTNnxLIyZScUhDOF9CMytfSVY8
RGgzPkhOPGZsJDJPXn1DZ2VvQXYhb1BFO35iQTt5dT5sZgp6QHV8YGxNY0QoWXR+ZUV6OCo0WWxF
elZLT3FLSllNRitfclNpLWRBakFuNnRhd3B7P2I7cD98VCQ5fH1EN0hYZGIKeiF3TGhUJiRNcEZs
clU/X0M7emg/Pm0rRX00V3xWKXp8YlpYMHdnfE5IKUJ+UlomZkY2YD00M2l3XnNqKUUjTUlfCnop
R2ZiWTN3USghe2ctVjBIflJia0l7cl5iMDhCZkNIMjZ+Xz0zP3soKmslYW03fWxERGNJK2BfYF9P
dCF7WnUhfgp6cWlLcSFRa2YkQ3tObyp0MjRNeVdPcmBSV3IlYWIqaWExNS1lKk5NT0wxLW9yV1F3
PjVJbHpKPD4jdTdGd0NkUj8KenBORGpiVyhydkxOOXooJV52dTV4RUV8SEAydkxYKSQrcj55PXVf
U25NRj13RWMrKChnKVFyUEdLeF9zcjUxalU/CnpoNEVUe3VqYiQ5ez4zMUl0cVZjTmZXYVgzYzdZ
XnM4aThYVnY2QlhNM2lfIU1QemJvUDBOZ3RAKGBBYUh4fjR3TQp6QVFAcTNsI0ZXY0dqKH1wbVJp
V255S354TEwlKz53MX5ZUnFXNFVTUD5fKndWJD96aHY/cGZlQkdhLSpGMEZEPEIKemM0MFd8dE5s
bUAocXo5b0JuWFgjPmMtNGMkSFZpVWh2KWZhYUArUDl3OW5lT3BxeU4oKVJkPXdzZ3Y8fXh8dX4+
Cnp0e3lQZCV7IXV+UjhQT20xQF5UU21mWmBySihiUSloVWUpZjZjdXlKQndTRm87TmstfEBMXiR+
NnRLODJ1TXVEIwp6VjBrTFZAbH0+aDJgcDRmQG5rYyhUck4wbzFsJk17O1pUTjM0JjA8bnphMUo1
XiZDIU4mX3FVb3c1PGFDdH18TVAKemZZNWJGaWBJKTNOSHdSTHctOEZUTEpOdW1iMEx2ViFXVCs8
JU1yek09XktkLTcjfDhuNF83RW8pTFdLOXYzNGpkCnpwY3M9MzNzV2g9bT1xNEY3K3BaMjtEak9l
UVp3K2sxc019dEFfVUVWK256VWtYaXM4XkI+WTQrT0FiQDAzfm5+WAp6Q354P1ZsZ3o8YGk7Z3F0
TUxPVz02IzhAay1XaUdvZUVEKDI2XjRLKztCSE5QdHt3dkpBN0AkOEw8Ql9PTT59RCsKenZ5cSR8
RldkQEgtNiVYPD1YNFRebjJ3eUhATjwqI01PPVNRMGdxRzZ7VWVeUmZFVEE9JnhMMyVZdFFxOCFe
QFJgCnpGT19jODtUWlVXJWpIZnJSS3NCJTR5RTQqSz9HNSUxMGUkO3lhT05LMWAtZ29ERn1rfUY0
SUchJipZV1lmckN4fQp6Sn07eTNORjJDeC05Wjx+NUZLemFyQG8jMzIofXd3JE9NI3Yzc3IhV0he
QExxWm42WD5kQSRFPjxfQDk1VmcmMSkKenFvcG9zWFFOSUNFMj50PUt9YjxCcVNrVHY9VTh4YGk7
P2x9YWRhckdRcjNARmp2fHZ0ckImJmNsal9rRjR9Wmh2CnpYWGNhV2YmcV8ye1BKUG9Obnh0akAk
d28pcThfZWwkZzhBUElmZGVIU2dqb0p5Nkl2dlgjPjdsSWwhb1MwPEp2ZAp6YVU1QFBSYz1FZnpT
JCNNd3opfnN5UUZHWkReYSRoc240VWRPMmoqe3l0ZUFEZWBsPy1jNEM9Zm0zdSZeRnFDZC0KejFg
KEZzSEVTZ0coWj45T3olR0djS0xDI35GaUVgT3hkNFY3U3hpWVoyT1I/c3JgJSk7ZypTVl5aSURk
RjYmNTdvCnpDd0t6KmUjKm8jST9RMUt4VHotaFFLcXQ0cGF0Klp4fnk7al9gP0BhTkYrbWBOKkFi
dD53JGNzMXQ1ekhsTlZabQp6V2BLXjcwWEJIYDNYO0Z4ZmRUMWdTZH5vQzxxTUtJOXpZRkc3MDdA
ZzNUWig9QSNES3FVPmlJc0ZMenJZYWZKaEwKekdyclUjMDBmdyMkRkVtODsxS31TXlhvQjdmZ3V0
dWd8OGxMeUFnc0FmaTBWJj15Z0c1dnFwcnJ4WFNWei1yVnpuCnpBaiRrPmlsZD16cSprR0ZLYEw+
WDAqZyNaJn1CKGVOe1dlSD1tfjV9MHpOdTklRlMzYmgwPFh5aiR2JVhpSWs9Jgp6VFFzTlZyfkIq
V2RQezttKSo2QiRQS2dQTD1oUDhJQWF5aj4wUmhEYiQ0Ymo7NWZUTGlwRlpnbWZ6WmcpRHE2RFQK
eiVHbCpAZzBAV3woQishQ1ElZktmUlcrdVBRVilZSWFqajtHZlY0JnVXc1ZFI3E3a0F4NThuUSli
fWxHTkp8dXkoCnpsPXEkXjJ0d2VOaGdCb2sqcUV9Xm11aElERjxSUSNXeE92RTMlNGMrZzE8PD5y
O3FgWElFQW9XdUVSZiljOFdsbgp6NWFjSz5CUC1qZlpoeCNyKUZKSzsobE5lT2owOD85dSQyUXFx
OU8zPjRxUmZ4OEdgP193aCZ4fjBzZEpWKjhCY3AKelF7S1hsPCk5S3ojUVIrdm1XMnp3PW9GbHY/
X0RQI0Z9JWluUGpLVjVAIUl3KSVqWFFJdyopLTZTe3VrcG9pdGUwCnpzaD9kdmVRIThxWTB2eFZ0
cSg0VHpTZShHVTZhNGhQVzghJkNnbFY1UTZqNGs/NXNjRHdrRGJXbGtPdnpzd1RBcgp6cWhadEAt
Qit6UV4yNjteWEhKWihITFF1PUAjYk47cHwhUjE5JVJqSGlnTVVSQnZTUnxTK251UlB+N0gobThl
fD0KeiFaUD1Pe2dvNEFjSXQrfitvI1QlM0pGT2I9KVk5OWY3fHFpaU96SV41MDhsIUpka18wejBY
YSprWChgTE54VlEqCnooQzU8SiU4SCFgOSNuK0N6PH1faENwbEh0eyppO2k3YjhleyFaelp1K29N
QjVedz9DMGkqVkh8ZSNnQnF4UVRvSQp6VyluKFc3ZSZfMUczbDdLP0ItPXRRJlU7c0AyOCoyakA8
ZUt1QjRFSWJIPVM3OXpOezVhdDl4MTFFRVhwVUVze14Kem9ROCYrdmNFdkd1JiVoI158Z0chekl5
ZDR5Jmh5e0taNEcjM2YkcDdTUSk1aypQSDMjO2pzbGs9PDk+cWhlQlNqCnpiPyNkKVkxOVoocThV
aS1YKTZlfCFPdFlwUiYxKmM5ey1tNUdffDlAUTVoZmdIUWohRV97LUpwISZNVktxdGVqVgp6Qihe
YD9Jd0IlTW0/bURLO0c9aGtkZz5DIW9tZ149aGl5RH4kYVg5KUxVSkBoS3VFVlktfG5uTSRUKkl+
JHtxcFQKelFybyg5dEo/a2hfZVRKPHJNZ3VWNChyaDxaRTBKSTg1YGdOJXQ8a1RpTEhlJnFlcD45
RUopcjkyKXBUVzt7UW1XCnpKSEZpQ3heO2l4MHplMm9sJihXQCV0ayVCdDlaSXdMeT59IXRQZjQ7
bFkkWjhKPUMmNHlZQ3JONDs7fiN4TlF8Qgp6bSRafTJvK1JqVVlwSEV6KWMwR3NQNDBSbEM0Oyp6
dClnKlhafXpgVmVNSjR1byVfUnNZZ0FGXmZ1K3ZnJUZYeF8KejU9bXkkN2lVdkd5eShCV0MqJERJ
KXRkbmFgd2s5Tj08eHFEMVJ9V2VDcCl+cjtQKCt7KENkczZTVFRQR2todHtVCnowc3FfS2wwflpx
UnV0TExWN0VreXVsI0YlYlNCKGNRJFhYYFckaHFTR2B8XzRmLWkqYSE+aUlQUjUwaiZ2O1RMLQp6
MGd0YXBkeSMhdWsqXnpoNCl4WFdWIVU4aW5xTUViM3FKNWNiQmBwZ3pSUnhSQkQ9N24mK2kpPSNz
OVImeDMqP2MKekJAck16R0tWPyM1MCR7Pm9Db2xLdEFIflpgalJXN2AqbHd1YDE2SHVjVlB2LUlv
MHshKW1gJk5NJlJ2TjZxXnQzCnpQWVc/PXs/aUVEZm0ra2VqUEVrQ1ZVWkNycGVVPzEmX3hie1dJ
PUg7ZmEjIWpPWFQ/SVJFX0tASFdhK2AwS1hnNQp6TVhsaT0qflFsMXxBJTBLa0g5PkRnOVdaJFA7
a3NaKzg9JnMhUF8/ZigxM2toRGIxbU1tbWl4SzhHJXAzLUp1Z04KenwxZmdvUGIwOTh6M3lvVHpz
bUA3a3I4O2t0VzJOSzFpfF8lQE1GVlRSMmUpbHB5fmIyc0RGcUpWZFQlUSE5dnhMCnoyS3NrKEVv
NzBrQnx5PU9KMVImMkBQOVNgYXwlMm87UWBwUHc+UjstajJ2NUoxYm9TZGR9X3p2JUw2UDhZaDQ3
cQp6KiZfNlZ1Vih+R013SlhHXkZ6QWYmeTdTRUhqPmtlKVc4JCU7Yis0YHt9PnQwcFBoeVdsd3xL
ZV9kVDUhO3ctV1QKZjU3eFUrNV8xY1k1clBXLUd5KUlrNHkmaURnbjljWlp2Kj11UDd8dHgKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53
ZWJtIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12cDgud2VibQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ5ZDYwMzg1Mjc0OTgwNGEyMjhiODQyZjhh
NTY3YjYwYTcwMTkyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA2NTc3CnpjbWRU
fWRzdEtWODlwWiRsNW1ISzEqUE1yWjRIK302K3tGSGZsT1RpUUxOYTxEZ3smJjl1K35UKnIhV1Ey
cWRDJQp6PjE/QjFiUF87MTVrY2xDSCRoZXxVZkxuTHZSTm9yOUFYRVBuP3EmRVp8OCloclF2Kms/
MnI5SG8rUXQ2ekJsaWUKei18eEs3ZChNfFBPR0U+el5USTN3N2Z6Rn0zNCRlQEIpQ0dVPzg3fj0y
WlZCaEE8UUhnd3ZtIX05SFNtfmdqSERLCnprJXE5dzZPb3I+SFhBP1I4KEIkUW1fMXMmd0pNUTNg
WDtSTEIjQnZYe2QwVXxyNClDWkorek4oQnRmYUlkfU91ewp6X01XIWd8S3A4WFJXLWwyQ2N7RH4y
JFAlKWpZLT88eX5lfVMhXl9odkQoR2oyQTslU2grQz1SZHNLdktlPkRLMW8Kek9XLU4oaXReOUEt
bCohI0lhKSt1JmV3YEVfOGc0USVHPyZjRXk2ZDB6K0REMldWcVRuYD1PNCl0MHAyRTJ1VDZLCnpw
ZiowNWxBXjE+NSFXaC1ANnNMRWlCeGg/YzxgblcoVXVWVCZzT3J8PVUyd0hvezBQRHRLKyokTEBH
dGR5SVg+YAp6WnJsX2VCMHVmdj18Pz9SZDh9Rk88Kjl2T21feldOUVh+QUg1U1U2KFBoZ25EbDd8
KUp7MEt+ZlZIfEV8clhvfE8KenpAKkd8c1V8Tmg5LTV6VlhtI2tlT1J7JSNjKGB0MEktI1lUI2ph
OT4rYGJgZHJrKzloOHktQVdwUkwjK2k7N3ZCCnorYHgjcEpZX3EkNTdWSTVeOWE+dGpUWU9yYFgq
O2RrbCt3UDJYOCtaQFJGcUxHNTFGM2kkNVpielplfmZMWWpUVQp6Wkp5JW1pQG59emNSa25nWWB0
Qkl4MnlQOCZGfk16OEI2MngyZFB1aDw4Rnh+YEgzQGt5VWNmRktNcFBPXlBYeUkKejtiSk4hZmpN
RjBJTDVIdGpAZT9pK2taOE1hVFBCbFQwbDRwX3xGNCYmalFRbDBoelBGcUl0bEBTJTVuYT0kWnZz
CnpeTUkjMVY5Xkl5JW0qI3FuNnR8eGo5THxMMHgpbmwybmQ2S0wkclk0RHVMJCNheFAhNG05c3E7
e3x+T2xtM1NNagp6VlVENy1PS05QYl9zTlB+PVZxUUplTj4jZ3I5WXNaVmJMPDBZMko2SXcmPzRS
YjBmJDUobW5OWm1LYG1LRDA8c0oKenVzPDgyKFpCQnhEOz92cks5d1ZOYCRhVDloLU9NIShCeWhp
VFh7Z3RxanlGZFFVfDcwQytpQ20jK3l+VW47OT1wCnpUWXIxdWQhRVo5eykoWEk7JTBsdktmYjY0
ZVhZN2ZLJUpQWSlOVX0jZDhaUDsyTFYkNnoqcjBjdDA3PUoxUlQ9PQp6aEJgNnxBeDBBZmQ8T3hE
NzllJEdJeFJkTW5PZlY/PSpXenQtS0xVWVlIZGZ5RDJFdUc1VExha08pSGtNaiR4PUgKeiVOMXpG
KCVPISQpal4xbk0rPVpUdlQ3RWRqO3RRcS02I25iV0lNSkV6K240ODBBeEZNST5nWjEmUU0xLVdJ
SnwwCnopUWFBQU8yV3ZJbU88KWg2dHdWa0c9Z2tyQiV8Rlh4JkpaPGZOVzxwM0B8dSkrWm87O0ll
T2F9PmN8TyZUMHlxcwp6PFUpKlVUMHFjN2FDIykzd0J0X0x5bTd9enU9PHNGPH0kYWdkT3xUMnhJ
YjtKanNOR3RUTDtRLXlQUD9+UExwQW4KejcxSzE9eVhrUD8/fi0ma05jcXlzd0c5cHhVeWgzfXlo
KUJmZHphPStYZE0wOUx0RF5IcCZTaSVxR14jQjRkdU1QCnpLaihVeXlLVSFSK2VRTUw/RiN9dkYz
RHxxVVlSeCM5ckBPME9VJiM0c2hMV34oJGZeWnVpM0Q2KmYqIUlEIT1FPAp6PHdeSksrUFJgdihA
TmVpSWdfLXpReGU9bzVDR1liOHdEe1M4KiZSRU14emNlKVJoYV9rZ0VZJkBmO3VeaCF6a3UKejVX
SEFQMWcpK2p3cyE4UnhINHolKzA3SlJNRF4kSG5KYT1sKV8pVys8JGd2U2x8OWFeT31ac054SVl9
akVVZFhmCnpWUjFzWVUrTT4wSWhPRzBDMFh4P18oMT9kLV9+TUlvaldeTGFTK2xCZVVEeUBCbFg+
QV5pbX4+dE5ZfkRTJkA2cAp6PUIxPjlgPTA7JUlNUCYyN1hNfChQUnE/NXlZdG48a0Zra1N0Q0FJ
T3JnWnZAam9kOT1lIz49UEg4bUxXQVVwQ1AKekpNdWJjJmpaO0N2WkZCJVU+TmZ1S3lPRHdKJmd9
UWoyc0F7eDEqOVV6RHZzPl4pI01ieE8kcEVIWjx8My1MOEBfCnpmb3kxVTZrP28oMEtFK2p1ZSZD
RkkpPFUxQ1RnSVNEUCUpYTBtTyk8MXhQKGpHWndDJXJscXZJUVdCPCs0TmFjXwp6M15PaFNLc0dk
YzJWJkBMWHNEK2RXSjl3blAlQztIRGhhYSpJdEc7PXtRQWxoc3JmSGRxX1NqeXV3YnZlbV4wbn0K
eiRWKU83MzwyNSVmIyRhWG1JWDFpMj84RENDZEJ3YjJOKV9sbjtfNyUhcmcmWmNzSy1UNk5HdUsx
VSY/djU5cnkpCnpJYUNacExjY1pvWU80MGp7TENCUU9oJmhAOCpgYkdwTU8/KV5HR1EoYj1UU1Va
aG0xXyliSTVwbDJmQVFpTy1ocwp6VyNZPzlZRDk5e2R8bCpvSjNJIVZmNEsqdVRuRSV8Z0hWQ3Ir
d1hSTXhRLUQtYlpvZSQ5djx9QVRsd3J8VWJ5M0wKejBfPW5TO05QKyZfbUZrUl5AcCFvelJNOUxf
ZUQ5IXc7c09vZSk4OH1vc04zRmJxQyspYzwobDVAIXR3SV9QTSFyCnpga0ZKZShhWm15Rmd5b045
R28hdExYN3R5MDhBSylBVnhDO0tuVmpBcWgkeWhzZX5ia2M0RzNvMXwmc3tIZykkOQp6LXsoJksm
N1FKbnR+VVl7MzU4e000JEteckNHMU9keUkqOV9hK0tKPSgycT02a0prdVMlNCs8aGhje0FUUTk4
ckkKelpPfTZFNjRFQG5fdjZTXiMoZnpYeT1uUVc9Kjg1fmRzdy0wXlpsRU9CRWppbno4UWdDPzxX
S19pOX4haG5wV2w2CnoqVip2MGBiJmxtc0NQTG5xWGNDX3skeFZfZ3JmJD9wRzxBU0hfc3lFbXhF
RCpIc0s9fmhRPylTNkYhPCZhTVZFVwp6UHgzYzc1SCZPc3RnOCFIUCE8JlIhST1YVF58NUtBS0kj
dHohQmteekVySGMjUFpSaks2I3J6NVVeZUYwTzdYbjkKejZaKG8yQDFhVWVyI1U1TjBhYXF2JXFn
KkJzZ2hDOW9EenBtbHtoX2ZPNTYjbSNFWUYlR1FMSFhqMz8pbU90dE16CndHdjxgYzZCX2VzJEB7
QnJyQiojLTFkSE5YbDxHYzJSOzJpU3Mke2lsUEtudD5tOHskNmwtUV5LM3FjOD9kakozYwoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzE4OGQyZDc1YjQ3MGRiOGY3Mzg2MWNhNzE1OWY3ZjRkOGU4MjEyMS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxNjgKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB2cF5qM0NVJjM/eC09aG4pZ2ElbUY/anVLeVZyQnAtMl8xRyRfOTkrQVppCno0Qld5WCUqWmZu
anMjRnBzbCt2KyM1cTRWSCNNKD4hTVB8a3VfUUdgcCoqdUJMJjRxQ0gkV2pqUGEjcGtIIS08PQp6
TVklSWpIRzdHdHVQZ2cpTWowX0goWmpKeC05UkJPUFohNCFqX2IoQEtzRk50PDBIakEjeX1RPnI+
bWRLSTtWc3QKRTBGWDUle1F2Kn0KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jaWUtcmdiLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE4YmYzNzcxNzllYjlhYmI0NDM1MTRjNzNlMWMx
ZmIwMmVjNzFlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA4NjgKemNtVi1xMURw
SmJQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAwMXJ7
CnowMDFyezBlR2M5Yl5yaFlHSEY5WVAqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtcE96
emU+WVU2bzxiWAp6MWRCb3V5Ym99ZmZ9bGRFWmNhJkNOPHBNVmhhXzgqaEE3ZWArKzY8QGQ8QF5m
I2xfWGgqLTIwK0lRYTw5UENefUcKenR4aDhOIUdaN21oUXJ8O3UtMlRtK3AkKClsb3s9SFVGOFIl
VDcwNiRHT0tLfUdsPEs9Pkd5WDV2T0cpcGlHYTZmCnoxaSltfFh9Y1olIyFfNXAxSDEjeFZOJTgq
WSM9JV9nI21GMSRtcUIqQWclJGE1NDt3TEpEe0Zje3M3ZFklM3B4Rwp6X0phX19EPEQlcDIqQ283
UVJOYmxDT0owJXQtS2lQcXg4X0lyZnU4RzhSayk8X1EkMTNNeTJYeWFqdUo4NEBAIXkKenN7SF97
d1IjPXBielN9JktNMitBdlkjY3R2VHd2RWBnSGFLWXdQIVpLSTdzRkhnMmNXPkNIVWI4Xk5SajMq
a0lsCnp6WHV4ZCohVGQrKmlOa3R7ckM/NjAwMUNrTksjRHowRD5fOTBEPl85MFVzT3kwQjNeJDBC
WjtVMFQ+ZWkwNnt3ZAp6MDBWQEY8cmA3fTAwRkU/TF90KHwrTyRfa21jPWojbFglfEV7alkxeTB3
LX14YXJ4ZSl5Y2pTTmZ7PWQjQWZaPz4KenlCN2RaeElUO05maWZ1cUppakdDbDd9QENDSUtNbWp7
eEx2TkR9fVVNd1hpKG5aTnQ4QGpSZ0Z2eU1jdHZlJCFYCnotMihfP1JzPSpoTHVeeyVEUGAzP1I1
Jko3ZV4zRSohOT9nVGcxMVooQWZQTE1nJTVVSmp4Rm5aP0p9XlQ2NXxGRwp6Pj5VTGlCc0JKenAm
dnhocUNnJlhuNUE4Tm19c0E+Nz8mdCpVKlJQSWI7NWJjTGEhRW5mV2pMX2R1cEwzNlo/OVQKem9G
eldXTiYzdmg2RjZsP2UzXzsrdjJgIzMhVnhyd0JoViUkcmQoPkEyaSgqT0I8MHZHRjtRR2chKWta
dFdHKG9YCnpOQyotWGhFUHpgSFlaZzFvUk5IUlRGUVo4RzZ3fDs+UWhYOENSI0JhPXY1Q0khcX5D
SnUzOHY2TCleb31jfnZIfQp6X1EqWGdhIVFlNk9yYUJgRXNoOU5pc1VUYkJ2NEAjMTszPFlZcn44
KmdAVXcpZ2NTO31nPFZ2bTMhP1QjQFo/QHUKejtZRSp3SzM2PkYlNmpxPWlGYFF0aDVgIzteM2hw
K0hBc3M0SjBAbCk7K05rNDxAYXtESk0rc1NaTlA5P3JfJE1HCnUmZE1DQiZ+Vj8wQDIzKEt6cCN9
Z05FJksze3tzTWBsKUh0ZD1AWHk7MDAwMDxNTlVNbkxTVFklKU5wP1EKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcm1hdGNoLXBy
b2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgt
Y29sb3JtYXRjaC1wcm9maWxlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM0
NTRlYzBkZDdjZWQ4OGQ4MmM4MmFlN2E3MmM4Njk5M2RhNDM0Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCA4NzEKemNtVi10MURPMVlQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAx
SGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAwMXJ7CnowMDFyezBlR2M5Yl5yaFlIRUJhYlAqNy1aYlo+
S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtcE96emU+WVU2bzxjQwp6cF44SVAkZm08WmFUS2I5UGA5
TTVSWnU5PUE8NVJIcClJdyE7cFkwTXRJeSNCSU87cE5paTR0eXFtTGsrOTJ9d3EKekNsVU9uQEJE
X3Q7cnlVZGJERDBldkl5aFVYc18pYEtNM1hRMTY1YEtwZDA2eik5RC1scSQqQUxpR2ItZDBebzdP
CnpYfVRAYCMoYlA8MUFHOG15KEV1OClQVWkrJHFhfXF6Plk/bDBkV0peYHEqb0x4QzUreTtaSn1T
NzUpWlQrN0NoeQp6P3x8TCtnQWdpbmZFXlhTMEB4PEdGYVFtZVA0dXVvRm1raEF1Uz0oPXFDXzR8
YSs4ZDZ4dTM+TFhHKFdYKGdUWTcKejA5YV9LNlF2S2tDTFR6eT9lZyNWS2AwQkd6SkMzOHJfNCY/
UStAV2BnfURFSEVfWW14VV5qOzljQTByPWE2TihMCnptb2kpM2dRYSEybTdodlFRYllzOWRTdzZy
MDNjJlhRY1ZCPWhZQTF5ajB5ayVfNyhzRGd3RnJ+YjJ8VjQ+ezk+JAp6SStwK2Q5WlVOMld0Uld8
MGp4PHhLfiM5IXZ7eSUjI1ZgbnljOzN6WnVXUVckQ3ZpKTBgUURfdzclJm9va2JlUm8KenA7JDR5
N1hWUFdLOHh2ckdBUk4pemE+RERoY3l4PTBVK3ApME9XNS02OTU9U21ZWDElenglVEJKZlB+Y2p6
cUFzCnoqTW4lPzB8O1lRMVZsR09ZK0IoZFd6e2BZSTNgcW9QeXV3b01DZE1wd0BlWnNwZXVpYzR8
WkxTRSRlJmpHTyhjJQp6O3wzSiQ5UihkRUgxP1JHQTRKZmlLcHU2TnJDb2NOWHJIUFdtbmR5dDtV
eGllIWc8TDt1TkhvUSFXJXw9WU1+fCoKemArQWR7QnxnZVlgcG09PUlBdW5CbldpK2NidWE8SzVq
Mk0qJj9ZOVBUeHkmTCt8JnZyPD04RFRRQ3YmSVlJbypqCnpFJT1zNTJvZTtBUCpCcjBDc2deSWsk
aUFrJTdJfXIyTCVmMVElcnAoU31gNXlSU3oxJSpzO1p+U3tPUCorezQ2cQp6UlZLNmMkVVFBYE58
OW5ycCViSm5qdEVuVjxTZ0RLUCs9NFd6b2NWcCE7Q2JBZzB6USg2JC1DflR+d25CcVZgNGIKejxY
JjBmTVVSNiVTM0t2K2RoIXk5ZF5xQHEwdDtYQShPRz5wTlEoUEFDVDF0JW0pYCY3X2piNUReVUVQ
Xno7SVpuCngoJUVMdCR7ZWNEYU5talZyeEYjdnUkM2Y4OGZySEcwfDI2d3lNP0NkNlFCUzkwMDJv
dlBESExrVjFnV3xjOENBfgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLmpwZyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLmpwZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkxODY5NjhmYmQwMzM4NWZkZTNkMjc4Y2E4MGE1
YjFkODE2NmFjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA5MTQ1CnpjbWVHPllq
eyZ0dyktUylsMElrJkVtRktRT2JwTUZ3OD1TblhRdExQTnVmJWhxfit5UmQtRkkrUTxJIURJY1pE
UAp6S0BiKDRgRDZmPChRJjg8c1BLKVNqfWNNdDlYa3JybmZZZSEyb3c8Z3lhK21DO2NAfTdTVyE1
ND9TMW05cVZVYlYKekdrPk4jLShGfCF3Ym92SD9YfWxfV04rYWU7UjdgR2hLOXhsTGBmKTBMdW44
YWohMih5YiUlb3B4IXZlbWdwZE5zCnpzY31kTzd6SUI+VTV5Rn1qKnlTfm1uX34rJX1DMmdLISEj
RChmMSVIRDJDdmJmSW9PJjchez1KWmllc01zQ3hIbgp6MnUmWkdgUHVgVms1eDZiYVhnbzc8S2lr
dXZxN35lOTFDej1OeU8tQW9zRmgjdnteK1BZPGl1fFhhcDVWYFVFQW0KekQrbVpaQTw2MldgR2hv
IXRGYSY/ODZ7MklEOWk1JEg3VkIqWUZkNmpCdmVLUlJVXnNqbWI4b04mfXtnRU41cnA/Cno/QExT
cnU1YzJTbDBMT00rPXZxWDJiR1okM2Z6VGozaCR3bnM4cGQpNmUmdUppYnxDdyNVO3d8PCl4K048
RXR0dgp6IyNkQlNETjlMOGY1Z0pxQXZMQz9XSzd3WnYxTWdyRTZkOHREbHNVbDZzc3QmTTFrLS1x
Kk5kXm5rbDghTlRRXnEKek49a1NpeC1BdVVRRlVOdEF3PzF4akZTYHNySnp0SVJ9PllPS3NiektR
YjsxckZ2bFhRZlJhaUlCIXpPQnFFSzNACnoyY31ZNWFMcVduJl8zVD1xMyY0RCRTVCl0ZTQmMnds
PH1UN2Uwb0QtI1U2KXo+ZX1ZaE42ej9AIztjeHVAJFBCUAp6YnU5dGNvMTF2a2d1TSVudlktQkQ8
PDVQbjU2P0RDZWB4YlBGRm18IztHQHNCWT0zTTJVeHlZM0pNVnF1c2g0KmoKemAxcVc4KX1tMD9l
ZTBqeihTUHZSPVNuMXpmVkJuMENiX0s4TktDa2Y5IztTc2JmX3h8bmROSUx1PzI1PF9NRnlGCnpA
Zn1JNVNuRnNXP0B0PWVPcUYyKzxrTzZBP2diK0BPJGZMYW4wV1NSKWBWfWpWMHo5MztheVpKQzJj
QkU5WGpTfAp6b2NkdHZUdTxZYSREWD09Png+NjAqWSFNbVR0TEZ4YDMkI2JlKjBRKCFFYWxJSjt5
dlpgKT5UKz55TXZuSlhwMjEKemVaJjUzSD9DP2xafkwkM2doUnFmZyljV3BeZmZ3VXNjJj1fT2VG
Jn1tY1RyS2REND8ya0Q0aFEhbX5LQENIMUJlCnpVUmtiNi1DYW8zSUVLKmhqR2FVekN5cCNqJnlz
UXhmZEQ4ezN1Wkc7I2JqbitPaFBPZSFZSXJNWjc+TCYydGImRgp6a2Y9MGU8RC12ZERHWl9DMVRa
Nm1yI2drSWF9PVU7N3xJQzZWViskd05rNzV0T1J8TGozeT02aGZwc0k/UzZCZmcKeipOWnZyd0BF
LW5XYVNZM2NyYDljWndEYXUyTnd9Y0lmUTBIb3tXK3hpbzdUU3ppUGxjUHpwKjMjNnFiSGclT1kx
CnowUGBhYl8jRHVhKEJtK1EwV0EoQzRoNWtVMGNtMGh6Pnh7QlBubT5VJWRDWU44YURxTURjdm5o
a0VKM0pffjdNUwp6PUhwVmFLeXNlMS00Q1U3SiYmS0twQGY0M3daTWBjO2JJfC08MX5qMl43LVhA
b3tPZi0jMCpjVUV5S3NBJCYhKDwKenBHX2B8JXQ9Q3Q4cXJRNjtRQElaV0h+N2BJYGVlUExrVFZ3
QTM+NkZpRXQ8IVZgSGYoKUcyaX1XOXs8QDRhI0dACnpEVzAzZiNAS3xIWDlHWSRFbGNCVVREVnZn
I3VVdEhqRH1TM2BGcjxZbm8yfWtUI0grdnNrQyNrXkc4ekwkcStrJgp6QkopUTA3SD88LXQ8Mjl0
SitfLX5Pd01qYCYrJjB3MVM/Y3okUm1WeytQRmxJSnJXTE9KWEoxc2VzK2NvSFJTO3wKej11Smc8
SyNNeHIxYiskZmcmRmNsQGUqSWkhOX09NG9eekY9e2B5JjIyMj8/RnhmdTMhNXpvY3ZyVDhTOTJA
SzNECnpqekEhTmdJZW4yY25HTCgmYFYmNStyQlBOPUlqaXQ0MyRFYilTVmB7STZ2eyhMPTBoeSRZ
QlgyeGZjTC1UVn5kKgp6TGBiO2A9PFRRcV9VX1QkZXNzNzBffW84V3c8aSZLNFVSfigwNVhMYHZL
LWtfMEc1NnFFYytfZDFSRGVnK1hNJCYKejFJQSFPTD1+NWpQJDM2dU1oMmA8b0NEJntCIXw7Slgr
dD1veXJZZmg8MkoxfW1hT3NPYjlzJVFpKXk+UWFWPWU9CnopMW57T2I7ckhfK2dNKVpWX311OFJp
RkN6S0Q4PHdzOHVnQXheP2NqZ0taMVg/biR1Q0ojJDw5Si03TC0wZD9KVgp6c3ZtZFR4fSkoWiVY
P01iKE1UKzU+I2tLMzx1PEBFUyp1bk41JnBKWEg5MEcqN1EzNU40bGNvfTNeaHkqUXw7SDgKel5l
VXNpTXNIK0hqNnRKZmJVS1N4WFYmVTwpd0lQJUdkOXx5TismaDZtazAhSDklbjxrSDdNMXApN3xS
bz5aPDl8CnoqS21vRG1iT34wU3s8V2htfS0heVBBLWt7LXRPdkhhJmt0NGxURz4pO1chYFdWaylm
QjNwKmlTc3xIKWVQREpCYgp6d1VfaShNbGomZCVFZSleQ3lmWEVTfmtLKSolK1MkJihoY2RMfUAo
cEZEUDRPZ3o3QXQzYGVGQ0lNP21JYmNNe3cKek1XZmohbER3LUV5NzY3KG9XdSphKjI1O2JSS219
P0k+RjR6bmEyMlZGejN6QCMkbkN+eUlBLWBkRmg1UUNvM0FhCnpJVEVhd2h3VEVrdFZ7c3BqPUZo
JjJlQSFsWTFSb2xjJiFAJEtkaCRkWVREZEY+dXBBPiYwd2gzUyFfQztEQypfewp6O28jRDVpbCta
Y2p1M0A3NDB3NihXcllLTlRhWmdjejJMKWUpRWk+OD9RdTR3UiVNNkFNc18lODhPK24/KDtGUioK
enJVVnhaTX1SP09uJmFVWnZENTlnSE83Kj5IfEEjPm93YUp7V0tCMzZ1c014N3YmbXYqdGZtSVcq
K0EzdmNHX1Z2CnoqITMyandWdHUtS3sqK0RvMElkV2E0MlEhMjU/PSZtRExyR00mOEtaclVNVlQ0
T0JxbVVPWjF+KXdFaGdoPkxPYgp6THtjSj1mdklNLThubTx5UWQoZmk8cGdzNDErZyRWbkBMeGsz
b1VpQiZUeG9MVnllLWtWVEArVDdSWGkmdFBkSy0Kelk9OF9qaSRQPTU+bWJ2QjFLcHo2ZkhPNkU5
aigjUjdSWGtPayU2cGRmQ2hUWkk+O2J2IyRfWSRBP3BvIz0wYGVMCnp6MjBFM247NkRtdktwTl9s
aTUpM2F4dHtzPWB1Sj9HPmltfVhqQGFibn5mfVhoRzgoMCMyYmJZb0YjYzJ5Jit2RQp6OVNMNFBN
MXsjeylFbT9Faz1AanJFR0MxLXB0RzhFMVZSVlFHJFRUV1AoLUspeHsoJVQzPnNYXk9keGE/SXN6
MWMKektydlgxSXMmMWlmSX5Me2ZAOTJqYTJ0am81NzNJQzF0YkNEdylFZ2Mzfj8pWmE0dj5XN2Eq
dyV0fkptRzs5Pn5ZCnowdSg3YGY/RmBPZn1IP35qTVdJWm5aYX4zMzxFJElFQ1ghP29melZ9UnR2
NmN3T3w+bTE8UDJpTTgtLUo5Qlo9QAp6WjRoNHNDdn53VXVyISE3RnJYUjswKnkmeSk+dCVGNFkt
RDtIOGk4NF4lfmxzZmRLe34rTl48U1VfY2dQMVZSTCYKeiN8VkswYVI0QyRrPzxwbi1DV09EPnk1
UENXSHZrWF4tYyFEIXxyZ14rWl9obFZZVDJMTCE2NFUhJTB9a21adFpoCnpYMHtgWk1aemt3PyVL
UzVhWjMye2xFKChyWD4jfmQpQm16bFNYOX43Iz1ed1FVa1NncXlvcTgtRjM1THo2UmJUMQp6di1Q
YHxTPyN4NCZCZ0ZQZnQ9bE9aXjg+WklHYWU7cylHcUdzdUd2UGNyMnZpeHBhWjdrS2R7Pz5Gdnle
eVFDV34Kenk5KWxqKz5qbXtmMTVXSlYmUk9WUnBWWjBAbVc5fFM/JCpjbyQmSWA0SDxEYmo5QGYt
NCFTT0xTe2VQMGRTS0s4CnpxYUdPYnpeRGdDSkA4TkRmIXN8QjgtdEBvN3U9SHdOMiVsUkFGO0tg
R3EwZz5qKkRGU1ExN34lOChKaUFINk0tZgp6M0QyeTApIzQ+THNwUnxOckRZdHZMJXsyIypQbzJy
bzB7Z3A0R3hObCpRcHJJQilCKl9jUjsqWi1seEkzR0s/JHkKejdXdn18ZDteU2NQTnhPbk1nJVUz
c3NJbWtAb31KMmNLfXxRMEhYbF5JbVNhR3o4VHtfNXIyaXF3MEltS15DIVR8CnpMVjM2XjU5aV9i
OHUtWTsjZ34lJVR6dGBFUkx5MiVpTGdKRlJKcHlPU1BHc0FMXzRxfkQkZjNzQ2RMMGhmYy0zTAp6
SkxANi1xcHRjPmpePG1CKDJufk1zeWRYVFAxeWk8Ylp9cSVeM0VLTStYJH5pQENxalZ4aiZXWU9q
fTEkZjZqWHEKeno4PExKdEZaWHlkUFB1QE9WVnUwdEJLITBDMFdMbUI2K1hFQFFqKiE2XyZ4UEBS
TU1zT2FkPlAqKDZ1VTNKWiMpCnojcWVHWnVmaitzaDQhO2RVYGdjPzF5ektLT0NVfXVEWkMzeXV8
KlBEUUhwe1dWYGJxdSope1NDSEIhKShjNHFTVQp6cVdTZSNkOGc8bmNzaUM+YFBOS3pZPCVKTEco
KTB6O3YwTDYofm1UcFItOVM7cV9aWElZQjEwOCZzZVo8KGJYQCQKenglY1ImZnhHIzJFNz91SSp9
M24tQTZrTkVRYGNIO3ZtMCohX2xNZlQ/VlZsU09NQzlRX3I2djRLayg0UWtGNVgyCnpxbU9PZ14z
PkRNWX5BK0tfTHEwT142RzI1LXJDKiZgIz0wflZFPSlHPztMdmZxclpOOT8zMk9jcEFEVitlRTVz
PQp6KDAlLWxUXzd6aUNAN0gwM1pyMU02NWc+M1gmRippKnlxYWBaKUp5fmUpOzR6PDJAVUZTTHVz
aG5EV0xSTjg8RV4KekJQJEg+b0wlTDJvX1hAY1h+dX55Q1JicDNhcXtrVTRMcjdZMGg/TkFVVT81
T2AwTmpfZXJXU2NfKEEoJkBrTSphCnp0VkthZl9FOV9jcUNJPFlUbGNEOEpvQyEkLX16K04rUEVh
Vl4hYFY7eldScWxnSWA+MHlXeXR4byhDUz1fU3pyYwp6SiRgPVYhfUd3Y15HK14lUnpTKkFyfCFB
cXdWaThycjZrU1Y9TFpFOyhRJEZkX0wrTzFgUmFWQWNTSEFpMHFxZGIKenpoM0N1OV5TZEI+T2ND
fC18Um9IOXF0fGU8KzVHM3ppQFVpYSZ4KUliJn42VXglfXlkK2plZjlHXys0WnBVR1E9Cnp3K0Mr
ZFYqa1oyMlNJdHErfiteKV9gWkdKXjhSNH50PT9ZSnpoKFpKVEsmOFdiKypfMFA2fXchZiQzI0de
S0lTdwp6PjRedktvTiFeO2FCdF8oVX1RPFo9Yj44I153VlgjYD9taHo7Q29+R0h5TXV7U2teUFJh
Q1BzKUhldGBlRXlMOXAKemB3dCZoU21lTDlPbmthMmFETGhBMCh4THxgLUlndWUwY09IfE19P2d5
MUwjKTFCPjR+YWdvQHE9PSt1SmdJPD9fCnpTfSN0MnwzWGh8eCRAamxiPX4xKkpFVUxUYEYhXz1w
QUchbSZAYlFiUytIM142VnsoIS03NCVJMi09NzA0aFpPIQp6XnpkUUg9QFZsUHA4bzljXm5EbGx6
Qzg3cD9LQXRnYlUrNk5IZ3dsNXRoPWwzeGVzbiV7SjRlcEU4ZCFTXlc7fWMKemBxNzFEQEFQKEZj
Yz1GNVJiVGN6QF82cyhoZ1ghcGJuTzA1X1NEdyl7UTE9VEdmeFFuMkhOS2hLaUJ1JHB8ZEIoCnpe
aSV1elVURjglY1clNDJjSU43JWdCIVUwVXRFfHFJUH0kcCtHcG99Zjh0eGU4YEBwaGZBSCooZk5w
dWNANTU3fQppemlmSF9qdkVKRnghQ3ZMPHpGNXFkTShlcmNjQXFyZ1JRTj9xNWxPS1ViWWJjCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgt
Y29sb3JzcGluLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwt
c3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1OTIyNjI3Mzc2OGU1MDk1ZjIzMGEzOWRjYmMzNWRmOTczYmRlYzFhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDg0MQp6Y21WLVAxR2ZCJFApPGg7M0t8TGswMDBlMU5K
TFRxMDAxaWgwMDFIZzBzc0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAwMXJ7MGVHYzliXnJoWTdp
bUw3UCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1wT3p5LUxHUzA3bFFQCnpnNGpXZTFu
R0RPYWRJZXY7SHJWQFY0eCUhbDU5O0hWbkNCe2JLPyY8M2E7SlUxaUAhZWNoQD9KZjxBPkhJeShl
Twp6OVI8JkhJTVc5b2gmUmpXeVI4bCFXP0k9aCt0VHZgSXJtSlBCfDVhMjlZJHJiSDVsdnhXTyl8
ejh2JFEwMiFOK0cKeiVqdnVQanJwaWg4aDhnKk17eVp9PW1NaS1VMSQoemZUMjc7MDVKeFByMWwl
WTJ5NEZ3NENVRztoellRZU9uRXJ2CnpJekdfPVc/cjFDR30rZzN6MVEyMnlLJHp7czRBczNPdFB3
a2RJdGIpR2U1fGNRPX1SSGl7fVRqd2h0UXRofi1Kcwp6IWJgWmpmYk1KNFI8MjwyOUJ2PCltUzRs
PkMoTWthTiooPXRBfEFnMUsmd1pgVUEtWGkwMDAwV1ZAT2c+MDA0Uj0KejAwNGw0MDA0Q2AwMDhQ
PTAwMjZkMDAwK24wMDg7ezAwNG1LcGx9OSowMDA1M05rbDxaYy1wakFOMCFBZjIkT2k7CnomSGIt
eSU+cE5KT0w2KCRxYFZqfjVgdklfMHdBR1NGfW9LNFBgRXllPjQ3cFMwekFKWkskMz93NSsoczQ9
I0sjOAp6WiU3alc3KUYreEFlcTFXdmhoNWk+YSZoU3UoSD5LWHgjJHtWXiMhMkgkIVklO1ZFVStK
eWJYKlJEVnpiYmlxWEUKekVgcW1BNStJLX1lfXhaclU1K2o1ZCtqbz9wJVVXOzZ6bS1aOVY5Z05u
NHVwOyg0cyZkYihwMUhkemZnU3N1LTZqCnpaQ35MZjBkPk44JHdJRmRldF5Pb010Zj9aQ0tMTzVs
YmpfISUxUWRuIzFsQVdNdHFzM0dfaUZzMG0yYjloYT1EPwp6Q1o9MyFvQ248MDNNQSMmRWlxQUNP
VCVoKz00MzdTbVBpTl42b3lieCg+NW5tYEo5bl9hOVlaTlZLTjU9M2hHbCMKemVJe0JsOXEzZ0w4
cDdESSNqYVd5SXoheVUjQ2NVRnYtWmU2RXBrZWNWb2FlRXElRHBKUTtPcyktWHVfQTZhfk1lCnpW
ezV+Vkc9K2sraGxDWGh1WjNNeXFZSSs7TWV5V2FTPloqR2dGYVYwPWdOQlc1e1l+YF89Vy10VS1I
cGVlS2ttbQp6YCNVQ1BDKnFnaHxLO35+eEk2UjlBI0syTFNmfHEyWDNva1NzP2MhWGlTTVRwNn5D
flJCdUUtK0h2YTx2cUxqT1oKVHJzKSUpMDAwMDBOa3ZYWHUwbWpmMmRHOyQKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1lLXNyZ2ItcHJv
ZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1l
LXNyZ2ItcHJvZmlsZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3OTJiMGFj
NTcwM2YzMDY4NTZkMjI4ZjEzNWY0YWM5MmZmOTczNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmxpdGVyYWwgMTk4NQp6Y21WO3kyUmBfVFApPGg7M0t8TGswMDBlMU5KTFRxMDAxaWgwMDFIZzBz
c0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAwMXJ7MGVHYzliXnJoY2s3K3xnUCo3LVpiWj5LTFoq
VSs8THFpfk5hJkttN1ktSW9kYy1ybVBZYyFPMzkwJjA0Cno3YEtXam1sQyRnQn1JeE1tb1hSNUZz
TmlCUUw/b1JRVmkzfk5WWm02QyNURDVsUD1xQkJoclBvaSk9fDM+NHVVTQp6SGtHVlB2MjAzR1JI
RmFCPTxKYnArd0RjP1klaVlRdEthYFEmK35pRV5Fe3ZQfERGZGhIbHk1eUI0cSVRNz1fSHcKelFe
PVk8Q3kxcTFpTlZrVTAzYnZ4bXJecmtjO2xhbzBkIVlgMFJVQ2psKUYmbW0lNjFYUHwwYEx6M1pt
dXdSNDZ5Cno7b29iQlNTbktoNDBRbDhWY35LeXoqcWBrVClhWjYwMnR7MmJWSC0wM1ZATFpLdnhf
WTUoWTN6MDhGNlJMS31lYgp6OThsZCh2NCFrK2RSc3N9OEJwQ1dXSyVZUG1LbVQxQSk4e3EpN3R8
MldgRyhiKFEpR2I9WWQ5ZSUmZUlKYH5Wb2kKejRZODBTMFd2SmEwel5VcTdUQjxYNGNLNlRMS3RF
WmlnMihuNkE2JCpmcEFENTJNYmRXMTJKTURnQX1vbEFwe0Q5CnpCTWN3OXA5VE9VZ3VAemdfYHdz
eCo+aSRlWiVeeGckTms1Y2BUKX1vUH0oUHR1dyVjU3JYY2BTWTYqRVo3RW50OAp6YGNlc2J5X2It
XzQxaWUrVHYjbGpnZShBSEc2NFdBMFBYLTNlfC0+Zm9OVVF8Xn1zamZLPWN3fG9IeE1WNTBwTHoK
emhVb3l6aGsjKXFQXnY+bjtaOCElTyh2d0lyVDx6NjA3akhqckx2dCRpZlhHbVhWQldnNiZtYFF2
eGNUPFVENTZ5CnpabUtnP1NFODQhcEVhVWo8YUxBRnF2e01CanB+aT5lbztRVWtkLXJMdnFgKlpm
U0lraXhfUW1tZ0JHJUpQVUN2VQp6cFIkeCVqa1VUeFZZUmlqYj4mMylCPClHckhVZ1VwK2orTEY+
PV5iX0pFPmlwZVctbylXUkotdzlFPT1SSVcjJUMKeklxcUBuY0FEbiZsVCh8c2dMOSh1QzV8JTNq
a0FLMiZ1TW9WPEtwWCo9eUolViFsaiNRejspJlphJUozUFpVKi1oCnp4MEhMMitzKkBUSU0wbWQh
MUxrLUB1R1EmeWowI0hVSjxYQl9sakA4Y2ozP0h1aStvKCo5a05RMClhd3NTa1U1WAp6P2klNW0/
Yj1Da3NkWkcxYUgyM3QqeDwlQE9MSkZ0azlOTiFAKTh3eiptfnI2amB6Jj12aGd9U01LcTspPll7
MVAKelg9JmE5Pys0U3JfaV4tVGBFdTZgZV93NmlufEBubyZoeGtPQDAoUV9hNSEtTll7P3d8QWk+
OzghS1BtcyVgPSFrCno+VDZiclJWWVg3NlNnM0hiO1NNIVdzeHJ5U3dzYSNaPFNRVj5QelA+JlhN
JmhYMnU8ZkFHJWJZUGA3T1FAfWZrfQp6aXV7JF9SaEwpJEJ7aSpDelJxQyVuZEh6UHZeSE1ZNnU7
U2lPVl9ydSt0PTw0K0hKYz5HcCY4XnQ7fnlBYz9XVjEKejluOHU4SXJuSmNAeVppekNrTiRRN1gr
TTVJKUQxWXZyQmVZNXtmVGgoPF9URUZSOEdzTzBDOG5NYXw+aUI9dyM1Cnp6aWw0Y2xKIXZkc09p
YXVQVlYhTDdkYnVBZVFaSyMzJHo4PTAmVUBhMyFmJko1XnttNFdxP0lIen1FdngzO152bQp6Zll9
SGJqcyVKK0xXLXNuYXtkKHwqTWV6KHZfRTw7cUFrIUNYYlRfQUJfWntwVC1wd3hfTT51MWlCVTQo
dVVDbXQKentOQjJSNU1vTFFGKFFQeGVhdVdIQzhkRVEwN1BefGJWUExjeW99dEdeVyV0QG1zaWZj
MDktWHFrMGl2PVZvX1lICnpucDRTOXF2TDhAXjU9X29YbClEMWReRkpjWEltMilqbSRrTjVvKC00
aEM+RXhzJXo7RmJJQDYrbXBmOC1SRW58WAp6PW9YVlFeWk1+dDZWQk1BK2psdVAyP3soLXtOJkxB
T0k9cG5OWGxSVCVTTjVlKnRUXj9eWHxVMT04U3o9KVBjZm0KemxmI2xEOE9KVz1SXj9UbUVYdk87
U2JBMT9qdWY2SzNjbEVUZENPSlA7X09uKFluZiR3SCYmTWFlJCU1T3l8VXw5CnooWEVadSlwdGhS
Xns/NCo/XyV3PEkjJklaaFM8aFVfbTRkJllpZSVwWTArI297PUBSMmVILUA/XzFMWjV7UiEyPAp6
ZCtOfD57bWtVS1prSX5lXlhgVGgqSSh3bitTVCpqWWpMbHImLUBNWk8jP1lZS0M3WkYmPXpQNXcx
eE5VKTh3Q08KeiFvYVpsYDxqczYyMTByLTY0S3tTPU82OHktdCVZK3Y8MkcyfDZQOXEraTdJQ01J
I2l5MDAwMFdWQE9nPjAwNFI/CnowMDRsNjAwMDAwMDA0Wm4wMDAzXzAwRChqMDAwMDAwMDAwQVMw
PGlzMDAwNTNOa2w8WmMtcGpBTjAhQWYyJE9pOwp6JkhiLXklPnBOSk9MNigkcWBWan41YHZJXzB3
QUdTRn1vSzRQYEV5ZT40N3BTMHpBSlpLJDM/dzUrKHM0PSNLIzgKelolN2pXNylGK3hBZXExV3Zo
aDVpPmEmaFN1KEg+S1h4IyR7Vl4jITJIJCFZJTtWRVUrSnliWCpSRFZ6YmJpcVhFCnpFYHFtQTUr
SS19ZX14WnJVNStqNWQram8/cCVVVzs2em0tWjlWOWdObjR1cDsoNHMmZGIocDFIZHpmZ1NzdS02
agp6WkN+TGYwZD5OOCR3SUZkZXReT29NdGY/WkNLTE81bGJqXyElMVFkbiMxbEFXTXRxczNHX2lG
czBtMmI5aGE9RD8KekNaPTMhb0NuPDAzTUEjJkVpcUFDT1QlaCs9NDM3U21QaU5eNm95YngoPjVu
bWBKOW5fYTlZWk5WS041PTNoR2wjCnplSXtCbDlxM2dMOHA3REkjamFXeUl6IXlVI0NjVUZ2LVpl
NkVwa2VjVm9hZUVxJURwSlE7T3MpLVh1X0E2YX5NZQp6Vns1flZHPStrK2hsQ1hodVozTXlxWUkr
O01leVdhUz5aKkdnRmFWMD1nTkJXNXtZfmBfPVctdFUtSHBlZUtrbW0KemAjVUNQQypxZ2h8Szt+
fnhJNlI5QSNLMkxTZnxxMlgzb2tTcz9jIVhpU01UcDZ+Q35SQnVFLStIdmE8dnFMak9aClRycykl
KTAwMDAwTmt2WFh1MG1qZmNlfHBfCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc21wdGUtYy1wcm9maWxlLnBuZyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMtcHJvZmlsZS5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MDRlODk1MjM1Yzg4NWEyZmRhYWIyNDY5NzUx
ZTg3M2E5ZGYyNDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgODcxCnpjbVYtdDFE
TzFZUCk8aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVyeDAwMDA5YTdiQm0wMDFy
ewp6MDAxcnswZUdjOWJecmhZSEVCYWJQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2RjLXBP
eko0P2YwNmhPfXgKejJUTyRASDBiKG14KWVmezsrajRYTDhaMUdsNUVYYGBrK2JwXjctaH1BMGNs
MzBvQCVPOVEqK3QxaXtJbDszaGFaCnpJME9rIUI2eX5BJnYzYkwhQn1AWHQqKV5RbFNIZmpjMXlh
UkZCaE12dXRiZH1vMS13I29MK0FpQVc0JiRwOXVKUAp6Sz4kNDBvbGRMRS0+OE99KCFlTHNofmhq
MVZGU1VyJk5QVEN6elIrPjRkTW97KVVlK01AY0B8UCFzbWIpNiNmZEIKeiVKcUJAWi02eStKcyU3
SkQ9NkZvRUZFOEhmT2VXcSl6U0QrJVo2PisodXZYX21WO0BvPDRHPWVrfXk/U3N6eTRGCnpmWnsj
P0R1Y2I9dXY+NVEtPypNSDN3dTk2MEFnaWN3dnpCdm9xaGtuKiFYPWVjTnx+QikqfiM7JGA7K2lU
QF9ZRwp6V21+KDNTYCtUfnpXe2w3UDNobTxTZXBPPDAzYyZYUWNWQj1kTDtrPWZQKC00XzgwJkZn
d1gmMWNeTG96PXhoSzAKekpjfEdUOCg2ek1pazwpZjBqeDx4S34jOSF2e3klIyNWYG55Yzszelp1
V1FXJEN2aSkwYFFEX3c3JSZvb2tiZVJvCnpwOyQ0eTdYVlBXSzh4dnJHQVJOKXphPkREaGN5eD0w
VStwKTBPVzUtNjk1PVNtWVgxJXp4JVRCSmZQfmNqenFBcwp6Kk1uJT8wfDtZUTFWbEdPWStCKGRX
entgWUkzYHFvUHl1d29NQ2RNcHdAZVpzcGV1aWM0fFpMU0UkZSZqR08oYyUKejt8M0okOVIoZEVI
MT9SR0E0SmZpS3B1Nk5yQ29jTlhySFBXbW5keXQ7VXhpZSFnPEw7dU5Ib1EhVyV8PVlNfnwqCnpg
K0Fke0J8Z2VZYHBtPT1JQXVuQm5XaStjYnVhPEs1ajJNKiY/WTlQVHh5JkwrfCZ2cjw9OERUUUN2
JklZSW8qagp6RSU9czUyb2U7QVAqQnIwQ3NnXklrJGlBayU3SX1yMkwlZjFRJXJwKFN9YDV5UlN6
MSUqcztaflN7T1AqK3s0NnEKelJWSzZjJFVRQWBOfDlucnAlYkpuanRFblY8U2dES1ArPTRXem9j
VnAhO0NiQWcwelEoNiQtQ35UfnduQnFWYDRiCno8WCYwZk1VUjYlUzNLditkaCF5OWRecUBxMHQ7
WEEoT0c+cE5RKFBBQ1QxdCVtKWAmN19qYjVEXlVFUF56O0labgp4KCVFTHQke2VjRGFObWpWcnhG
I3Z1JDNmODhmckhHMHwyNnd5TT9DZDZRQlM5MDAyb3ZQREhMa1YxZz9SWn5fMVQKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdiLWll
YzYxOTY2LTIuMS1wcm9maWxlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxs
LXNxdWFyZS13aXRoLXNyZ2ItaWVjNjE5NjYtMi4xLXByb2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMDIwMWYxMTNmZGM4ZTk3MWZhYTE3ZGJmZjg5NTQxOTJlYTg2NmZk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDMyMDEKemNtVi17NDFWKjhQKTxoOzNL
fExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAwMXJ7CnowMDFyezBl
R2M5Yl5yaGhQaWFGI1AqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtb3kpWEgtK143Q3Jh
Zwp6Xmc+SUJmUnN5YlFXWGR3UWJMUD42cDx6PkFxZnlsaCN7ZmI2O1oodk1NVlN+JGVAUz1qKmZ0
ZzY7VWg8aVZEflYKejxSUE10Z1FKTHclS1BEYXFpZmNAX3ZYJDF3YndyOXRuOzAtJmotSz00Mzxi
VVE4aj1Kc1hgdFI7RGc3KyNeS35ICnpLIUZNKlp+emJwdnQlSzJ7VVpTWV88bFMqRDxaJUx6NW9H
dSgrZGF5eiloUkxGZFQ+ZjU5JmdoVG1nV0QwbDsqVAp6STc8a0M2YVlZYWp6WHBZS3Q9KDhvdFAk
NTBINmNfVjlSNC07e1pAQzBBTUc3PUY8UnhvJW9yMTBSVVQrQXIlM2oKemtwTGhRV3IjIW9YZ2RJ
YCZzS14+MDlZXnA2bFAxcklSTXgjMDVDfmNXPUhfQXcqYkotNURUJloybit4KVFIWF5wCnowMGVz
Z1Y4fG1RY21SWiUwMkReQFMzTDE2dGBPJWMwMDROSXZPS3ZZSVlvaDYyclkzM1M2NDBgRDklWTJE
LTw/aQp6MCU0aiFGMlpANDg4VSUxNTgoNjYwMDV3bzYlcFdyXlpqX3Y0ekFBNUhqY0lxVW9HbXQy
TEI+clYmbmVoJiNRMWkKejAwN34xZSRvQ2NGUzhuZUl8aEpsey1QIUIxWlo5aHBtcTApWDBpYEp3
RSY+JCtFPz4lXzxsUypNV0srbisxY2dmCno8ayg4WUxSKD9WU0FHNnghZTc4d3tjUVB1SnBBfGQ7
SilHe2ZpaGl6TStFcmIhcCF0Y3I1dythMzR+KFk9OHM0Rwp6dytzTEw5biZKak5uKktKRGlxXlU1
XjtgMW52Qy1AcjZQJCFrfTFVeygqST1RLXpAdEJLSG9JfXV4ZFU1ZHl5QHUKelUxSjBHT0Q3T21i
aW1eRzAwOHA0Wl42X2sybV5wPGdXPUQyfEw7SGpOMSFERGZNIVhPYVIyfmJMP2tYJCVDa1NtCnoy
bWs7P3BuKW98S155ZUo3JWFkQjlLaStMITMrRmdIaVNZWCNLSi1sTEpETW45Q0JiT3RiIyUpaFJ2
YFlEcXRfdgp6S3BpeHxRRH15ZmExSmlRUmsjajRhMVopbjIlZjx4eW56Vj5MQzZSYlZJa1V4MGIr
XytCYVIzY25UN1p2IUFKeFcKeml6RmIpaCFqeUdPT1o4NUY7YT9EQVhQe21AOyEwX0lmcTxFeHsq
N2AwNVhGN2hQKzJIbCEzQlFKPTZAZkwlRkNvCno4aVlvbzMoI2JBRmBBRFNwcXRRZ3Y+SDgoSGxn
Unh0N3MzfWszS2BrRnU+Pi0yUSRRTUZmUFchTGF7aDMzNm8+WAp6dV9DTXR0SHY2elI7JlpOaVM9
WDh2M0NSI2ZrblV4SFV4SjxBWW1Sc05MV2wqUFN7QU9BUkh0IzUhd2tpMj9LO3QKeiFZM2s9czd0
Z2F4KUolcjctQkxwaGdlN35CaTBnKzZFNl5aaChwOVRCb2N7M0dBRnJeMCFndT9STUhhQ00kJkZs
CnpCazMldW4+MHVvQmFfTTZXTldlcUlnfjZRRTY5YzlvI2V5aEd2cGlPQUBXLWFvbms8N3IxKD9m
Q3tvSTVOKlUhNAp6PHV2NjZXdGNLU1JpbTB4LUtlMmQ1akJybUxhbXs7UW07e21zMXIxR25tTnNi
N0QtRWB0KWk5RjhmWGAyX2kzLV8KemJoOzdVbF4jeCkme3h2Uz18fHw3PW1ZZTMzPU1gQWdVNSh4
Qz5mZz0yTi03PWNObmpqT3J7eXJpeTZtTUZnRyNsCnpuQ0Y9Zm5RdjhDRHorK282X0xzY2x9ZVEr
bF5aSEFSSD4/X3NAfCMjUnI2S0xSRkExJVErPSpSUldub0xzUmA3VQp6dDV2RjxRMHI0MFEpajY9
c0U0WCZzQmN0MXE8JmZiaTNWQjJPdjZ0QHEqMCk7VSpvKlNBUFp2fHZ2QDJhWVluVDAKemIlOGEr
Q2I3LWdlMEQwa25FZjVRaSNAOFRwKmNle047NmxwUXVDQiVLTF9LT2FybTVjUDZfOElyPGUxN2ly
eTZPCnpEZEgmYHJaaH5zRj1icTlzK08wUVNnU35AUUw5Sm15Kjk0eHI9Nnl+TVl+ITFmZXR+KE4r
KDw9TWB3QEQxKWIrcAp6KjtDITgzYTF1TEp2I05TRX47eSM4PTw+SWNmVzNAP3dGcHdVVnhyVlo+
UWRRejMyS0llSn1rfntjWlpFXit5YT8KejJEMXojMkhPbkk3KEIlX2FjP3t3RlVRO1FRQTF0Qkt0
cldybTBfM1JncHMrP0pmcWJ7alliY1FYfnRhUkI7IyR5CnpaTntTfTF8fWdVT0hKeGM/d1YzZnh1
eittSjRgIUYkSVo7bXFSck5zSEpkIyMqRH5qdT1iUDc/LT92fnxjdj52Qgp6c0o2SWVOd1ZaeHJk
alRgeWwjYkJJYSNHeFJhI3hNTXk7SyNDRHl5R3lRZE1TeGxXVCN0RGU/cCE/NXdUJCtvR3QKejhM
O0twMkhVUS1aTUo9M1hKUXY7eDVjaSo/dnVUZmVZJDsoe1hHV19odUlGUjlhPGZKYkZefDRJI3hR
fm4kRGM9CnpLWWhqWW1nejVOU2tEbTgqZlptezZVITtZWGBORz4oP0AzKVhTczhPXk41UnlPTT1U
VG1wKDM9OF4renB6MnIpQwp6Xj5KT3tkZVpmc28zb3EzP1dvKFk/bCRnZT91WG87JXJ1YFZvPj88
PCg4SV8+OzhFcSNLTVM5Z0ZsKm5lZW9zU0IKemZvSFluQlFJa3dreW93UHUoemRtc2Bwezw3ZTRr
cmEtWldxPDIqT3NHVHZFViVzMFRkJGhYVCshKjhCbmgyS01lCnpCbVpSb2RqSFY/citfNV5YOUow
V0w0aktXYH1sZiVBLXw0NElAQExUdmYxckhqRyh6ZTYrd0BKdCVCdmp0cyFYMAp6PzJ4Uz9fdmVf
LWs8TXVqZzswTHoqM2J1Rz0zJEcmZWhlcHRobE4qJEthT3lTU1FebldtbzwwTSsoVUVVTUVYUlEK
ek1CYlpjRjs2K0tFbE0+aUtCX0tpSmxaJDlHYGNePUVAb05HKW1XV2FOby0zVElXOCkkSGcwVWIt
fjg/S2h2Sj4kCnozKiZuaW1AbWooYUN4RTUhdHtsdzdPNV4wRUlPN3pPbyZjNmw8K3xpRHlTQldD
R3J6QEM1e1N0IVgzaEFBfWBUNAp6KFRMYlhUcSsoO0A8PUw4ZFhuc3N5ZnR8dyNXU1RXPCsrMz5z
Z1MlKDROVHBlSS1WQXFifDdzc0p2ek5IZ09aVnUKemFZQ3ZnT19SMX4+U3lMPWNGVXx+Z3xoeXxa
aX19czkrZH5sWXFPQjcxejlaJHduQz1wUjlZejREaElNPldtamd1CnomNTZvNm1hQ3BDJkYjI3kl
RzsxUG9iUjlpP0duTmc7Z1l0Y2hEJXAxOWEhZVF0WkYmM0phS3YzM2daPDhEfjQ3RQp6dFVTMWl3
a21EYVBwaj0kbSMlKWpDVkVZNGZuTEdOZzJBLWBZd0hWRDNndn07PiloQXZUfkFtcVM+THJgYGk3
a3cKekp7NV9JdGB5ckJtbGMyNURCTzdFODs1Vm96blI+V3c1aEFheG4kMn4ocWAlQS1ZdVM2NHdr
Qnk9OWRtYDRjWGVYCno0Y31JQD9lK0ZXK2JAXlJEQkhWKHduTXEyemRYM1NXdjl1YCV7eEMtcSpV
fSZgY3lYViglclJUKlo2TUg/aStpJgp6X0I4QygrZ3JUJXtYV1VRK2ZATm9QMVI9QVcmMjZ7di1k
eClpS14tTm1pdWo4dHhqIW0/WipTczFOe2RoNHp9MDEKeilZVG8qSnljU1UpK181cjQjeXc5eys7
aTRFZSRwZVJnSWorO3Y7WkdkRjFLJDNFJWV+NExhSShqQy11JTJoJCZSCno5Y0xYY1lDQFh3bm5z
JmJuKV9RflRlP3JvS0dEfGQtZ144OythQ3t7RygxXihPN20zN1kxLSs2KTAxY04meTFhdwp6b3Fj
e1RgUF5YSnFQQmJJVzZzfWQ0e3pfZjVPbT92TWdOUUVKRz92MlQ9S1lkXjBNM0k2SVp4Ym55KSV2
WlImTEQKekpwUGxAUHNoOFF5UEJAS1R4K0BSZGNDIUtYN31rRW87U3xqXnUybFU3WFF9T287Znw7
ejRMbCtfcj5AMS14bDN8Cnphd3EtSCVlJmNrQytAQWhQclA2Qks8ej08TCowa2ZLVUBDWCp6ZXFi
WVFUNCheVT5UI19YZFQ3JjtGNzFqfUpveQp6a0N+NmxoN0VANm87V0BeSXBSTlp7cHRMdEwoZ1Et
Q1l+NG1xVztVUzdaeHZtX3xAeXomZTUzQnBfbFRQbGZQfHoKenJUeXhfPmx2QHgjPV4hUHpSN3Fx
RjwkZ21gfFpKWis7PClDcXUmb3Q8YXs4MURGMH5ydkdyNVhyfjh1YGxhdjFoCnoxRE55dFY+Mno9
MDAwMFdWQE9nPjAwNFI9MDA0bDQwMDg7XzAwNG1MMDA0Q2AwMDhQPjAwMjZlMDAwK25sMyZGfQp6
MDAwNTNOa2w8WmMtcGpBTjAhQWYyJE9pOyZIYi15JT5wTkpPTDYoJHFgVmp+NWB2SV8wd0FHU0Z9
b0s0UGBFeWUKej40N3BTMHpBSlpLJDM/dzUrKHM0PSNLIzhaJTdqVzcpRit4QWVxMVd2aGg1aT5h
JmhTdShIPktYeCMke1ZeIyEyCnpIJCFZJTtWRVUrSnliWCpSRFZ6YmJpcVhFRWBxbUE1K0ktfWV9
eFpyVTUrajVkK2pvP3AlVVc7NnptLVo5VjlnTgp6bjR1cDsoNHMmZGIocDFIZHpmZ1NzdS02alpD
fkxmMGQ+Tjgkd0lGZGV0Xk9vTXRmP1pDS0xPNWxial8hJTFRZG4KeiMxbEFXTXRxczNHX2lGczBt
MmI5aGE9RD9DWj0zIW9DbjwwM01BIyZFaXFBQ09UJWgrPTQzN1NtUGlOXjZveWJ4CnooPjVubWBK
OW5fYTlZWk5WS041PTNoR2wjZUl7Qmw5cTNnTDhwN0RJI2phV3lJeiF5VSNDY1VGdi1aZTZFcGtl
Ywp6Vm9hZUVxJURwSlE7T3MpLVh1X0E2YX5NZVZ7NX5WRz0raytobENYaHVaM015cVlJKztNZXlX
YVM+WipHZ0ZhVjAKej1nTkJXNXtZfmBfPVctdFUtSHBlZUtrbW1gI1VDUEMqcWdofEs7fn54STZS
OUEjSzJMU2Z8cTJYM29rU3M/YyFYCm5pU01UcDZ+Q35SQnVFLStIdmE8dnFMak9acnMpJSkwMDAw
ME5rdlhYdTBtamY+RCVZYgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3Yzc5Zjg0OGQ5NmY5NGU5Zjc3MTdlYTY5
ZDNjZjIzNTdjNWI4OWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1jYW52YXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotLyoKLSoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCi0qLwotCi1mdW5jdGlvbiBnZW5lcmF0ZVRlc3QocGl4ZWxGb3JtYXQsIHBp
eGVsVHlwZSwgcHJvbG9ndWUpIHsKLSAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gICAg
dmFyIGdsID0gbnVsbDsKLSAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci0KLSAg
ICB2YXIgaW5pdCA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGluaXRUZXN0aW5nSGFybmVz
c1dhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdl
MkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgY2FudmFzIGVsZW1lbnRzICgn
ICsgcGl4ZWxGb3JtYXQgKyAnLycgKyBwaXhlbFR5cGUgKyAnKScpOwotCi0gICAgICAgIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotCi0gICAgICAgIGlmICghcHJvbG9ndWUo
Z2wpKSB7Ci0gICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChn
bCk7Ci0KLSAgICAgICAgZ2wuY2xlYXJDb2xvcigwLDAsMCwxKTsKLSAgICAgICAgZ2wuY2xlYXJE
ZXB0aCgxKTsKLQotICAgICAgICB2YXIgdGVzdENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2NhbnZhcycpOwotICAgICAgICBydW5UZXN0KHRlc3RDYW52YXMpOwotICAgICAgICAvL2Rv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENhbnZhcyk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc2V0Q2FudmFzVG9SZWRHcmVlbihjdHgpIHsKLSAgICAgIHZhciB3aWR0aCA9IGN0eC5jYW52
YXMud2lkdGg7Ci0gICAgICB2YXIgaGVpZ2h0ID0gY3R4LmNhbnZhcy5oZWlnaHQ7Ci0gICAgICB2
YXIgaGFsZkhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7Ci0gICAgICBjdHguZmlsbFN0
eWxlID0gIiNmZjAwMDAiOwotICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoYWxmSGVp
Z2h0KTsKLSAgICAgIGN0eC5maWxsU3R5bGUgPSAiIzAwZmYwMCI7Ci0gICAgICBjdHguZmlsbFJl
Y3QoMCwgaGFsZkhlaWdodCwgd2lkdGgsIGhlaWdodCAtIGhhbGZIZWlnaHQpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGRyYXdUZXh0SW5DYW52YXMoY3R4KSB7Ci0gICAgICB2YXIgd2lkdGggPSBj
dHguY2FudmFzLndpZHRoOwotICAgICAgdmFyIGhlaWdodCA9IGN0eC5jYW52YXMuaGVpZ2h0Owot
ICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjZmZmZmZmIjsKLSAgICAgIGN0eC5maWxsUmVjdCgwLCAw
LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgIGN0eC5mb250ID0gJzIwcHQgQXJpYWwnOwotICAgICAg
Y3R4LmZpbGxTdHlsZSA9ICdibGFjayc7Ci0gICAgICBjdHgudGV4dEFsaWduID0gImNlbnRlciI7
Ci0gICAgICBjdHgudGV4dEJhc2VsaW5lID0gIm1pZGRsZSI7Ci0gICAgICBjdHguZmlsbFRleHQo
IjEyMzQ1Njc4OTAiLCB3aWR0aCAvIDIsIGhlaWdodCAvIDQpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHNldENhbnZhc1RvMjU3eDI1NyhjdHgpIHsKLSAgICAgIGN0eC5jYW52YXMud2lkdGggPSAy
NTc7Ci0gICAgICBjdHguY2FudmFzLmhlaWdodCA9IDI1NzsKLSAgICAgIHNldENhbnZhc1RvUmVk
R3JlZW4oY3R4KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZXRDYW52YXNUbzF4MihjdHgpIHsK
LSAgICAgIGN0eC5jYW52YXMud2lkdGggPSAxOwotICAgICAgY3R4LmNhbnZhcy5oZWlnaHQgPSAy
OwotICAgICAgc2V0Q2FudmFzVG9SZWRHcmVlbihjdHgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHJ1bk9uZUl0ZXJhdGlvbihjYW52YXMsIHVzZVRleFN1YkltYWdlMkQsIGZsaXBZLCB0b3BDb2xv
ciwgYm90dG9tQ29sb3IsIG9wdF90ZXh0dXJlLCBvcHRfZm9udFRlc3QpCi0gICAgewotICAgICAg
ICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcg
OiAndGV4SW1hZ2UyRCcpICsKLSAgICAgICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSAr
ICcgY2FudmFzIHNpemU6ICcgKyBjYW52YXMud2lkdGggKyAneCcgKyBjYW52YXMuaGVpZ2h0ICsK
LSAgICAgICAgICAgICAgKG9wdF9mb250VGVzdCA/ICIgd2l0aCBmb250cyIgOiAiIHdpdGggcmVk
LWdyZWVuIikpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIC8vIERpc2FibGUgYW55IHdyaXRlcyB0byB0aGUgYWxw
aGEgY2hhbm5lbAotICAgICAgICAvLyBObyBpZGVhIHdoeSB0aGlzIHdhcyBoZXJlLiBJZiBpdCdz
IGltcG9ydGFudCBwdXQgaXQgYmFjayBhbmQgbGVhdmUgYSBjb21tZW50IGFzIHRvIHdoeQotLy8g
ICAgICAgIGdsLmNvbG9yTWFzaygxLCAxLCAxLCAwKTsKLSAgICAgICAgaWYgKCFvcHRfdGV4dHVy
ZSkgewotICAgICAgICAgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAg
ICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgICAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICAgICAgICAgIC8v
IFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAg
ICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklM
VEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgICAgICAgICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgdGV4dHVyZSA9
IG9wdF90ZXh0dXJlOwotICAgICAgICB9Ci0gICAgICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBw
YXJhbWV0ZXJzCi0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0ws
IGZsaXBZKTsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMLCBmYWxzZSk7Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19DT0xP
UlNQQUNFX0NPTlZFUlNJT05fV0VCR0wsIGdsLk5PTkUpOwotICAgICAgICAvLyBVcGxvYWQgdGhl
IGltYWdlIGludG8gdGhlIHRleHR1cmUKLSAgICAgICAgaWYgKHVzZVRleFN1YkltYWdlMkQpIHsK
LSAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QKLSAg
ICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRd
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgbnVsbCk7Ci0gICAgICAgICAgICBn
bC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsW3BpeGVsRm9ybWF0XSwg
Z2xbcGl4ZWxUeXBlXSwgY2FudmFzKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbEZv
cm1hdF0sIGdsW3BpeGVsVHlwZV0sIGNhbnZhcyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBE
cmF3IHRoZSB0cmlhbmdsZXMKLSAgICAgICAgd3R1LmRyYXdRdWFkKGdsLCBbMCwgMjU1LCAwLCAy
NTVdKTsKLQotICAgICAgICBpZiAob3B0X2ZvbnRUZXN0KSB7Ci0gICAgICAgICAgICB2YXIgd2lk
dGggPSBnbC5jYW52YXMud2lkdGg7Ci0gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gZ2wuY2FudmFz
LmhlaWdodDsKLSAgICAgICAgICAgIHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWlnaHQg
LyAyKTsKLSAgICAgICAgICAgIHZhciB0b3AgPSBmbGlwWSA/IDAgOiAoaGVpZ2h0IC0gaGFsZkhl
aWdodCk7Ci0gICAgICAgICAgICB2YXIgYm90dG9tID0gZmxpcFkgPyAoaGVpZ2h0IC0gaGFsZkhl
aWdodCkgOiAwOwotICAgICAgICAgICAgLy8gY2hlY2sgaGFsZiBpcyBhIHNvbGlkIGNvbG9yLgot
ICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdCgKLSAgICAgICAgICAgICAgICAgIGdsLCAw
LCB0b3AsIHdpZHRoLCBoYWxmSGVpZ2h0LAotICAgICAgICAgICAgICAgICAgWzI1NSwgMjU1LCAy
NTUsIDI1NV0sCi0gICAgICAgICAgICAgICAgICAic2hvdWxkIGJlIHdoaXRlIik7Ci0gICAgICAg
ICAgICAvLyBjaGVjayBvdGhlciBoYWxmIGlzIG5vdCBhIHNvbGlkIGNvbG9yLgotICAgICAgICAg
ICAgd3R1LmNoZWNrQ2FudmFzUmVjdENvbG9yKAotICAgICAgICAgICAgICAgICAgZ2wsIDAsIGJv
dHRvbSwgd2lkdGgsIGhhbGZIZWlnaHQsCi0gICAgICAgICAgICAgICAgICBbMjU1LCAyNTUsIDI1
NSwgMjU1XSwgMCwKLSAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJmb250IG1pc3NpbmciKTsKLSAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiZm9udCByZW5kZXJlcmVkIik7Ci0gICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgZGVidWcpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gQ2hl
Y2sgYSBmZXcgcGl4ZWxzIG5lYXIgdGhlIHRvcCBhbmQgYm90dG9tIGFuZCBtYWtlIHN1cmUgdGhl
eSBoYXZlCi0gICAgICAgICAgICAvLyB0aGUgcmlnaHQgY29sb3IuCi0gICAgICAgICAgICB2YXIg
d2lkdGggPSBnbC5jYW52YXMud2lkdGg7Ci0gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gZ2wuY2Fu
dmFzLmhlaWdodDsKLSAgICAgICAgICAgIHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWln
aHQgLyAyKTsKLSAgICAgICAgICAgIGRlYnVnKCJDaGVja2luZyBib3R0b20iKTsKLSAgICAgICAg
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBoYWxmSGVpZ2h0LCBib3R0
b21Db2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyBi
b3R0b21Db2xvcik7Ci0gICAgICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgdG9wIik7Ci0gICAgICAg
ICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBoZWlnaHQgLSBoYWxmSGVpZ2h0LCB3aWR0
aCwgaGFsZkhlaWdodCwgdG9wQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzaG91bGRCZSAiICsgdG9wQ29sb3IpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGZhbHNl
KSB7Ci0gICAgICAgICAgdmFyIG0gPSBuZXcgSW1hZ2UoKTsKLSAgICAgICAgICBtLnNyYyA9IGds
LmNhbnZhcy50b0RhdGFVUkwoKTsKLSAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmFwcGVuZENoaWxkKG0pOwotICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7
Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gdGV4dHVyZTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBydW5UZXN0KGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0
Q29udGV4dCgiMmQiKTsKLSAgICAgICAgdmFyIHJlZCA9IFsyNTUsIDAsIDBdOwotICAgICAgICB2
YXIgZ3JlZW4gPSBbMCwgMjU1LCAwXTsKLQotICAgICAgICB2YXIgY291bnQgPSA0OwotICAgICAg
ICB2YXIgY2FzZU5keCA9IDA7Ci0KLSAgICAgICAgdmFyIGNhc2VzID0gWwotICAgICAgICAgICAg
eyBzdWI6IGZhbHNlLCBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZv
bnQ6IGZhbHNlLCBpbml0OiBzZXRDYW52YXNUbzF4MiB9LAotICAgICAgICAgICAgeyBzdWI6IGZh
bHNlLCBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTogcmVkLCAgIGZvbnQ6IGZhbHNl
IH0sCi0gICAgICAgICAgICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAg
Ym90dG9tOiBncmVlbiwgZm9udDogZmFsc2UgfSwKLSAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAg
ZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0b206IHJlZCwgICBmb250OiBmYWxzZSB9LAot
ICAgICAgICAgICAgeyBzdWI6IGZhbHNlLCBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRv
bTogZ3JlZW4sIGZvbnQ6IGZhbHNlLCBpbml0OiBzZXRDYW52YXNUbzI1N3gyNTcgfSwKLSAgICAg
ICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0b206IHJl
ZCwgICBmb250OiBmYWxzZSB9LAotICAgICAgICAgICAgeyBzdWI6IHRydWUsICBmbGlwWTogdHJ1
ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZvbnQ6IGZhbHNlIH0sCi0gICAgICAgICAg
ICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAg
Zm9udDogZmFsc2UgfSwKLSAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IHRydWUsICB0
b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiB0cnVlLCBpbml0OiBkcmF3VGV4dEluQ2Fu
dmFzIH0sCi0gICAgICAgICAgICB7IHN1YjogZmFsc2UsIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVl
biwgYm90dG9tOiByZWQsICAgZm9udDogdHJ1ZSB9LAotICAgICAgICAgICAgeyBzdWI6IHRydWUs
ICBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZvbnQ6IHRydWUgfSwK
LSAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0
b206IHJlZCwgICBmb250OiB0cnVlIH0sCi0gICAgICAgIF07Ci0KLSAgICAgICAgdmFyIHRleHR1
cmU7Ci0gICAgICAgIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgewotICAgICAgICAgICAgdmFyIGMg
PSBjYXNlc1tjYXNlTmR4XTsKLSAgICAgICAgICAgIGlmIChjLmluaXQpIHsKLSAgICAgICAgICAg
ICAgYy5pbml0KGN0eCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0ZXh0dXJlID0gcnVu
T25lSXRlcmF0aW9uKGNhbnZhcywgYy5zdWIsIGMuZmxpcFksIGMudG9wLCBjLmJvdHRvbSwgdGV4
dHVyZSwgYy5mb250KTsKLSAgICAgICAgICAgIC8vIGZvciB0aGUgZmlyc3QgMiBpdGVyYXRpb25z
IGFsd2F5cyBtYWtlIGEgbmV3IHRleHR1cmUuCi0gICAgICAgICAgICBpZiAoY291bnQgPiAyKSB7
Ci0gICAgICAgICAgICAgIHRleHR1cmUgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICArK2Nhc2VOZHg7Ci0gICAgICAgICAgICBpZiAoY2FzZU5keCA9PSBjYXNlcy5sZW5n
dGgpIHsKLSAgICAgICAgICAgICAgICBjYXNlTmR4ID0gMDsKLSAgICAgICAgICAgICAgICAtLWNv
dW50OwotICAgICAgICAgICAgICAgIGlmICghY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsK
LSAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgd3R1
LndhaXRGb3JDb21wb3NpdGUoZ2wsIHJ1bk5leHRUZXN0KTsKLSAgICAgICAgfQotICAgICAgICBy
dW5OZXh0VGVzdCgpOwotICAgIH0KLQotICAgIHJldHVybiBpbml0OwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1pbWFnZS1kYXRhLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4Zjk2YTkyMjJjNjU3Mzg0MGRkNzAyMGY4ZmNiMmViMDEyOTc4NTJkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEy
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBv
ZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0
cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBN
YXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklM
SVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJ
QUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0K
LWZ1bmN0aW9uIGdlbmVyYXRlVGVzdChwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBwcm9sb2d1ZSkg
ewotICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLSAgICB2YXIgZ2wgPSBudWxsOwotICAg
IHZhciB0ZXh0dXJlTG9jID0gbnVsbDsKLSAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFs
c2U7Ci0gICAgdmFyIGltYWdlRGF0YSA9IG51bGw7Ci0KLSAgICB2YXIgaW5pdCA9IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIGluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsKLQot
ICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQg
Y29kZSBwYXRocyB0YWtpbmcgSW1hZ2VEYXRhICgnICsgcGl4ZWxGb3JtYXQgKyAnLycgKyBwaXhl
bFR5cGUgKyAnKScpOwotCi0gICAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBs
ZSIpOwotCi0gICAgICAgIGlmICghcHJvbG9ndWUoZ2wpKSB7Ci0gICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0gICAgICAgIGdsLmNsZWFyQ29sb3Io
MCwwLDAsMSk7Ci0gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0gICAgICAgIGdsLmRpc2FibGUo
Z2wuQkxFTkQpOwotCi0gICAgICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
cHJvZ3JhbSwgInRleCIpOwotCi0gICAgICAgIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXhjYW52YXMiKTsKLSAgICAgICAgdmFyIGNvbnRleHQyZCA9IGNhbnZhczJk
LmdldENvbnRleHQoIjJkIik7Ci0gICAgICAgIGltYWdlRGF0YSA9IGNvbnRleHQyZC5jcmVhdGVJ
bWFnZURhdGEoMSwgMik7Ci0gICAgICAgIHZhciBkYXRhID0gaW1hZ2VEYXRhLmRhdGE7Ci0gICAg
ICAgIGRhdGFbMF0gPSAyNTU7Ci0gICAgICAgIGRhdGFbMV0gPSAwOwotICAgICAgICBkYXRhWzJd
ID0gMDsKLSAgICAgICAgZGF0YVszXSA9IDI1NTsKLSAgICAgICAgZGF0YVs0XSA9IDA7Ci0gICAg
ICAgIGRhdGFbNV0gPSAyNTU7Ci0gICAgICAgIGRhdGFbNl0gPSAwOwotICAgICAgICBkYXRhWzdd
ID0gMDsKLQotICAgICAgICBydW5UZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuT25l
SXRlcmF0aW9uKHVzZVRleFN1YkltYWdlMkQsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCB0b3BD
b2xvciwgYm90dG9tQ29sb3IpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVz
ZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcgOiAndGV4SW1hZ2UyRCcpICsKLSAgICAg
ICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSArICcgYW5kIHByZW11bHRpcGx5QWxwaGE9
JyArIHByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIC8vIEVuYWJsZSB3cml0ZXMgdG8g
dGhlIFJHQkEgY2hhbm5lbHMKLSAgICAgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOwotICAg
ICAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAgICAgLy8gQmluZCB0
aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICAgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVy
cwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlO
X0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgLy8gU2V0
IHVwIHBpeGVsIHN0b3JlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5Q
QUNLX0ZMSVBfWV9XRUJHTCwgZmxpcFkpOwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICAv
LyBVcGxvYWQgdGhlIGltYWdlIGludG8gdGhlIHRleHR1cmUKLSAgICAgICAgaWYgKHVzZVRleFN1
YkltYWdlMkQpIHsKLSAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxh
Y2sgZmlyc3QKLSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xb
cGl4ZWxGb3JtYXRdLCAxLCAyLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICBnbFtwaXhl
bEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIG51bGwpOwotICAgICAgICAgICAgZ2wudGV4U3ViSW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlw
ZV0sIGltYWdlRGF0YSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxGb3JtYXRdLCBn
bFtwaXhlbFR5cGVdLCBpbWFnZURhdGEpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gUG9pbnQg
dGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAotICAgICAgICBnbC51bmlmb3Jt
MWkodGV4dHVyZUxvYywgMCk7Ci0gICAgICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAgICAg
ICB3dHUuZHJhd1F1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLQotICAgICAgICAvLyBDaGVjayB0
aGUgdG9wIHBpeGVsIGFuZCBib3R0b20gcGl4ZWwgYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKLSAg
ICAgICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgotICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgYm90dG9t
IHBpeGVsIik7Ci0gICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIGJv
dHRvbUNvbG9yLCAic2hvdWxkQmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICAgICAgZGVidWcoIkNo
ZWNraW5nIHRvcCBwaXhlbCIpOwotICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAx
LCAxLCAxLCB0b3BDb2xvciwgInNob3VsZEJlICIgKyB0b3BDb2xvcik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcnVuVGVzdCgpCi0gICAgewotICAgICAgICB2YXIgcmVkID0gWzI1NSwgMCwgMCwg
MjU1XTsKLSAgICAgICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMCwgMjU1XTsKLSAgICAgICAgdmFy
IHJlZFByZW11bHRpcGx5QWxwaGEgPSBbMjU1LCAwLCAwLCAyNTVdOwotICAgICAgICB2YXIgZ3Jl
ZW5QcmVtdWx0aXBseUFscGhhID0gWzAsIDAsIDAsIDI1NV07Ci0KLSAgICAgICAgcnVuT25lSXRl
cmF0aW9uKGZhbHNlLCB0cnVlLCBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZCwg
Z3JlZW4pOwotICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIGZhbHNlLCBmYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQpOwotICAgICAgICBydW5PbmVJdGVyYXRp
b24oZmFsc2UsIHRydWUsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0
aXBseUFscGhhLCBncmVlblByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICBydW5PbmVJdGVyYXRp
b24oZmFsc2UsIGZhbHNlLCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVt
dWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgcnVuT25lSXRlcmF0
aW9uKHRydWUsIHRydWUsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVkLCBncmVl
bik7Ci0gICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCBmYWxzZSwgZmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBncmVlbiwgcmVkKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRy
dWUsIHRydWUsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0aXBseUFs
cGhhLCBncmVlblByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICBydW5PbmVJdGVyYXRpb24odHJ1
ZSwgZmFsc2UsIHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBncmVlblByZW11bHRpcGx5
QWxwaGEsIHJlZFByZW11bHRpcGx5QWxwaGEpOwotCi0gICAgICAgIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci0gICAgICAgIGZpbmlzaFRl
c3QoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gaW5pdDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Uu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0y
ZC13aXRoLWltYWdlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTQ4OGYzNmJk
ZTVlODA2OGUzYTAyZWU0NDM3YjM4MWVjZDdhMWUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkg
KzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
Ci0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi1mdW5jdGlvbiBnZW5lcmF0ZVRlc3Qo
cGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcGF0aFRvVGVzdFJvb3QsIHByb2xvZ3VlKSB7Ci0gICAg
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIHZhciBnbCA9IG51bGw7Ci0gICAgdmFyIHRl
eHR1cmVMb2MgPSBudWxsOwotICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKLSAg
ICB2YXIgaW1nQ2FudmFzOwotICAgIHZhciByZWQgPSBbMjU1LCAwLCAwXTsKLSAgICB2YXIgZ3Jl
ZW4gPSBbMCwgMjU1LCAwXTsKLQotICAgIHZhciBpbml0ID0gZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwotCi0gICAgICAgIGRlc2Ny
aXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRh
a2luZyBpbWFnZSBlbGVtZW50cyAoJyArIHBpeGVsRm9ybWF0ICsgJy8nICsgcGl4ZWxUeXBlICsg
JyknKTsKLQotICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLQot
ICAgICAgICBpZiAoIXByb2xvZ3VlKGdsKSkgewotICAgICAgICAgICAgZmluaXNoVGVzdCgpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHByb2dyYW0gPSB3
dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0gICAgICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAs
MSk7Ci0gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7Ci0KLSAgICAgICAgdGV4dHVyZUxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0KLSAgICAgICAgd3R1LmxvYWRU
ZXh0dXJlKGdsLCBwYXRoVG9UZXN0Um9vdCArICIvcmVzb3VyY2VzL3JlZC1ncmVlbi5wbmciLCBy
dW5UZXN0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5PbmVJdGVyYXRpb24oaW1hZ2UsIHVz
ZVRleFN1YkltYWdlMkQsIGZsaXBZLCB0b3BDb2xvciwgYm90dG9tQ29sb3IpCi0gICAgewotICAg
ICAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2Uy
RCcgOiAndGV4SW1hZ2UyRCcpICsKLSAgICAgICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlw
WSk7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZG
RVJfQklUKTsKLSAgICAgICAgLy8gRGlzYWJsZSBhbnkgd3JpdGVzIHRvIHRoZSBhbHBoYSBjaGFu
bmVsCi0gICAgICAgIGdsLmNvbG9yTWFzaygxLCAxLCAxLCAwKTsKLSAgICAgICAgdmFyIHRleHR1
cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8g
dGV4dHVyZSB1bml0IDAKLSAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
dHVyZSk7Ci0gICAgICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5F
QVJFU1QpOwotICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgICAgIC8vIFNldCB1cCBwaXhlbCBzdG9y
ZSBwYXJhbWV0ZXJzCi0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VC
R0wsIGZsaXBZKTsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZ
X0FMUEhBX1dFQkdMLCBmYWxzZSk7Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19D
T0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0wsIGdsLk5PTkUpOwotICAgICAgICAvLyBVcGxvYWQg
dGhlIGltYWdlIGludG8gdGhlIHRleHR1cmUKLSAgICAgICAgaWYgKHVzZVRleFN1YkltYWdlMkQp
IHsKLSAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QK
LSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3Jt
YXRdLCBpbWFnZS53aWR0aCwgaW1hZ2UuaGVpZ2h0LCAwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIG51bGwpOwotICAgICAgICAgICAg
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbFtwaXhlbEZvcm1hdF0s
IGdsW3BpeGVsVHlwZV0sIGltYWdlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbEZv
cm1hdF0sIGdsW3BpeGVsVHlwZV0sIGltYWdlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFBv
aW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKLSAgICAgICAgZ2wudW5p
Zm9ybTFpKHRleHR1cmVMb2MsIDApOwotICAgICAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKLSAg
ICAgICAgd3R1LmRyYXdRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgICAgIC8vIENoZWNr
IGEgZmV3IHBpeGVscyBuZWFyIHRoZSB0b3AgYW5kIGJvdHRvbSBhbmQgbWFrZSBzdXJlIHRoZXkg
aGF2ZQotICAgICAgICAvLyB0aGUgcmlnaHQgY29sb3IuCi0gICAgICAgIGRlYnVnKCJDaGVja2lu
ZyBsb3dlciBsZWZ0IGNvcm5lciIpOwotICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0
LCA0LCAyLCAyLCBib3R0b21Db2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2hv
dWxkQmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICAgICAgZGVidWcoIkNoZWNraW5nIHVwcGVyIGxl
ZnQgY29ybmVyIik7Ci0gICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDQsIGdsLmNhbnZh
cy5oZWlnaHQgLSA4LCAyLCAyLCB0b3BDb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic2hvdWxkQmUgIiArIHRvcENvbG9yKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0
T25JbWFnZShpbWFnZSkgewotICAgICAgICBydW5PbmVJdGVyYXRpb24oaW1hZ2UsIGZhbHNlLCB0
cnVlLCByZWQsIGdyZWVuKTsKLSAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCBmYWxzZSwg
ZmFsc2UsIGdyZWVuLCByZWQpOwotICAgICAgICBydW5PbmVJdGVyYXRpb24oaW1hZ2UsIHRydWUs
IHRydWUsIHJlZCwgZ3JlZW4pOwotICAgICAgICBydW5PbmVJdGVyYXRpb24oaW1hZ2UsIHRydWUs
IGZhbHNlLCBncmVlbiwgcmVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KGltYWdl
KQotICAgIHsKLSAgICAgICAgcnVuVGVzdE9uSW1hZ2UoaW1hZ2UpOwotCi0gICAgICAgIGltZ0Nh
bnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAgICAgICBpbWdDYW52
YXMud2lkdGggPSAxOwotICAgICAgICBpbWdDYW52YXMuaGVpZ2h0ID0gMjsKLSAgICAgICAgdmFy
IGltZ0N0eCA9IGltZ0NhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwotICAgICAgICB2YXIgaW1nRGF0
YSA9IGltZ0N0eC5jcmVhdGVJbWFnZURhdGEoMSwgMik7Ci0gICAgICAgIGltZ0RhdGEuZGF0YVsw
XSA9IHJlZFswXTsKLSAgICAgICAgaW1nRGF0YS5kYXRhWzFdID0gcmVkWzFdOwotICAgICAgICBp
bWdEYXRhLmRhdGFbMl0gPSByZWRbMl07Ci0gICAgICAgIGltZ0RhdGEuZGF0YVszXSA9IDI1NTsK
LSAgICAgICAgaW1nRGF0YS5kYXRhWzRdID0gZ3JlZW5bMF07Ci0gICAgICAgIGltZ0RhdGEuZGF0
YVs1XSA9IGdyZWVuWzFdOwotICAgICAgICBpbWdEYXRhLmRhdGFbNl0gPSBncmVlblsyXTsKLSAg
ICAgICAgaW1nRGF0YS5kYXRhWzddID0gMjU1OwotICAgICAgICBpbWdDdHgucHV0SW1hZ2VEYXRh
KGltZ0RhdGEsIDAsIDApOwotCi0gICAgICAgIC8vIGFwcGFyZW50bHkgSW1hZ2UgaXMgZGlmZmVy
ZW50IHRoYW4gPGltZz4uCi0gICAgICAgIHZhciBuZXdJbWFnZSA9ICBuZXcgSW1hZ2UoKTsKLSAg
ICAgICAgbmV3SW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBydW5UZXN0
MihuZXdJbWFnZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIG5ld0ltYWdlLnNyYyA9IGltZ0NhbnZh
cy50b0RhdGFVUkwoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0MihpbWFnZSkgewot
ICAgICAgICBydW5UZXN0T25JbWFnZShpbWFnZSk7Ci0KLSAgICAgICAgdmFyIG5ld0ltYWdlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIG5ld0ltYWdlLm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcnVuVGVzdDMobmV3SW1hZ2UpOwotICAgICAgICB9
OwotICAgICAgICBuZXdJbWFnZS5zcmMgPSBpbWdDYW52YXMudG9EYXRhVVJMKCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gcnVuVGVzdDMoaW1hZ2UpIHsKLSAgICAgICAgcnVuVGVzdE9uSW1hZ2Uo
aW1hZ2UpOwotCi0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91
bGQgYmUgbm8gZXJyb3JzIik7Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gaW5pdDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3Rl
eC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmZiYTU5NmQyMjE3MGZkZTYyNmNmMjFlYTVlYjQ2
ZWM1NzAyNzU3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtdmlkZW8uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjkgKzAsMCBAQAotLyoKLSoqIENvcHly
aWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBp
cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n
IGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxz
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRo
ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJp
YnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFu
ZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNo
ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoq
Ci0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0
aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVE
ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoq
IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS
SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRF
UklBTFMuCi0qLwotCi0vLyBUaGlzIGJsb2NrIG5lZWRzIHRvIGJlIG91dHNpZGUgdGhlIG9ubG9h
ZCBoYW5kbGVyIGluIG9yZGVyIGZvciB0aGlzCi0vLyB0ZXN0IHRvIHJ1biByZWxpYWJseSBpbiBX
ZWJLaXQncyB0ZXN0IGhhcm5lc3MgKGF0IGxlYXN0IHRoZQotLy8gQ2hyb21pdW0gcG9ydCkuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzQ0OAotaW5pdFRlc3RpbmdI
YXJuZXNzV2FpdFVudGlsRG9uZSgpOwotCi12YXIgb2xkID0gZGVidWc7Ci12YXIgZGVidWcgPSBm
dW5jdGlvbihtc2cpIHsKLSAgY29uc29sZS5sb2cobXNnKTsKLSAgb2xkKG1zZyk7Ci19OwotCi1m
dW5jdGlvbiBnZW5lcmF0ZVRlc3QocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcHJvbG9ndWUpIHsK
LSAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gICAgdmFyIGdsID0gbnVsbDsKLSAgICB2
YXIgdGV4dHVyZUxvYyA9IG51bGw7Ci0gICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNl
OwotCi0gICAgLy8gVGVzdCBlYWNoIGZvcm1hdCBzZXBhcmF0ZWx5IGJlY2F1c2UgbWFueSBicm93
c2VycyBpbXBsZW1lbnQgZWFjaAotICAgIC8vIGRpZmZlcmVudGx5LiBTb21lIG1pZ2h0IGJlIEdQ
VSBhY2NlbGVyYXRlZCwgc29tZSBtaWdodCBub3QuIEV0Yy4uLgotICAgIHZhciB2aWRlb3MgPSBb
Ci0gICAgICB7IHNyYzogIi4uL3Jlc291cmNlcy9yZWQtZ3JlZW4ubXA0IiAgICAgICAgICwgdHlw
ZTogJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyRTAxRSwgbXA0YS40MC4yIicsIH0sCi0gICAg
ICB7IHNyYzogIi4uL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJtIiwgdHlwZTogJ3Zp
ZGVvL3dlYm07IGNvZGVjcz0idnA4LCB2b3JiaXMiJywgICAgICAgICAgIH0sCi0gICAgICB7IHNy
YzogIi4uL3Jlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndiIsICAgdHlwZTogJ3ZpZGVvL29n
ZzsgY29kZWNzPSJ0aGVvcmEsIHZvcmJpcyInLCAgICAgICAgIH0sCi0gICAgXTsKLQotICAgIHZh
ciB2aWRlb05keCA9IDA7Ci0gICAgdmFyIHZpZGVvOwotICAgIHZhciBydW5OZXh0VmlkZW8gPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgaWYgKHZpZGVvTmR4ID09IHZpZGVvcy5sZW5ndGgpIHsKLSAg
ICAgICAgICAgIHZpZGVvLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBsYXlpbmciLCBydW5UZXN0KTsK
LSAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICB2YXIgaW5mbyA9IHZpZGVvc1t2aWRlb05keCsrXTsKLSAgICAgICAgZGVidWco
IiIpOwotICAgICAgICBkZWJ1ZygidGVzdGluZzogIiArIGluZm8udHlwZSk7Ci0gICAgICAgIHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKLSAgICAgICAgdmFyIGNhblBs
YXkgPSB0cnVlOwotICAgICAgICBpZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7Ci0gICAgICAgICAg
dGVzdEZhaWxlZCgidmlkZW8uY2FuUGxheVR5cGUgcmVxdWlyZWQgbWV0aG9kIG1pc3NpbmciKTsK
LSAgICAgICAgICBydW5OZXh0VGVzdCgpOwotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmKCF2aWRlby5jYW5QbGF5VHlwZShpbmZvLnR5cGUpLnJlcGxhY2UoL25vLywg
JycpKSB7Ci0gICAgICAgICAgZGVidWcoaW5mby50eXBlICsgIiB1bnN1cHBvcnRlZCIpOwotICAg
ICAgICAgIHJ1bk5leHRWaWRlbygpOwotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfTsKLQot
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKLSAgICAgICAgdmlkZW8u
YWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICJwbGF5aW5nIiwgZnVuY3Rpb24oKSB7IHJ1
blRlc3QodmlkZW8pOyB9LCB0cnVlKTsKLSAgICAgICAgdmlkZW8udHlwZSA9IGluZm8udHlwZTsK
LSAgICAgICAgdmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgICAgIHZpZGVvLmxvb3AgPSB0cnVl
OwotICAgICAgICB2aWRlby5wbGF5KCk7Ci0gICAgfQotCi0gICAgdmFyIGluaXQgPSBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRl
eFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgdmlkZW8gZWxlbWVudHMgKCcgKyBwaXhlbEZv
cm1hdCArICcvJyArIHBpeGVsVHlwZSArICcpJyk7Ci0KLSAgICAgICAgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJleGFtcGxlIik7Ci0KLSAgICAgICAgaWYgKCFwcm9sb2d1ZShnbCkpIHsKLSAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotICAg
ICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgICAgICBnbC5jbGVhckRlcHRoKDEpOwot
Ci0gICAgICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRl
eCIpOwotICAgICAgICBydW5OZXh0VmlkZW8oKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5P
bmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCB1c2VUZXhTdWJJbWFnZTJELCBmbGlwWSwgdG9wQ29s
b3IsIGJvdHRvbUNvbG9yKQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VU
ZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCi0gICAgICAg
ICAgICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xP
Ul9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIC8vIERpc2FibGUg
YW55IHdyaXRlcyB0byB0aGUgYWxwaGEgY2hhbm5lbAotICAgICAgICBnbC5jb2xvck1hc2soMSwg
MSwgMSwgMCk7Ci0gICAgICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAg
ICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgICAgICAvLyBTZXQgdXAgdGV4
dHVyZSBwYXJhbWV0ZXJzCi0gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwot
ICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9T
LCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIC8vIFNl
dCB1cCBwaXhlbCBzdG9yZSBwYXJhbWV0ZXJzCi0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19GTElQX1lfV0VCR0wsIGZsaXBZKTsKLSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5Q
QUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7Ci0gICAgICAgIC8vIFVwbG9hZCB0
aGUgdmlkZW9FbGVtZW50IGludG8gdGhlIHRleHR1cmUKLSAgICAgICAgaWYgKHVzZVRleFN1Yklt
YWdlMkQpIHsKLSAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sg
Zmlyc3QKLSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4
ZWxGb3JtYXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQudmlkZW9X
aWR0aCwgdmlkZW9FbGVtZW50LnZpZGVvSGVpZ2h0LCAwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIG51bGwpOwotICAgICAgICAgICAg
Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbFtwaXhlbEZvcm1hdF0s
IGdsW3BpeGVsVHlwZV0sIHZpZGVvRWxlbWVudCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xb
cGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCB2aWRlb0VsZW1lbnQpOwotICAgICAgICB9Ci0K
LSAgICAgICAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgICAg
ICAgYy53aWR0aCA9IDE2OwotICAgICAgICBjLmhlaWdodCA9IDE2OwotICAgICAgICBjLnN0eWxl
LmJvcmRlciA9ICIxcHggc29saWQgYmxhY2siOwotICAgICAgICB2YXIgY3R4ID0gYy5nZXRDb250
ZXh0KCIyZCIpOwotICAgICAgICBjdHguZHJhd0ltYWdlKHZpZGVvRWxlbWVudCwgMCwgMCwgMTYs
IDE2KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTsKLQotICAgICAgICAv
LyBQb2ludCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgICAgIGds
LnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLSAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVz
Ci0gICAgICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotICAgICAgICAvLyBD
aGVjayBhIGZldyBwaXhlbHMgbmVhciB0aGUgdG9wIGFuZCBib3R0b20gYW5kIG1ha2Ugc3VyZSB0
aGV5IGhhdmUKLSAgICAgICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgotICAgICAgICBkZWJ1ZygiQ2hl
Y2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKLSAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChn
bCwgNCwgNCwgMiwgMiwgYm90dG9tQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
InNob3VsZEJlICIgKyBib3R0b21Db2xvcik7Ci0gICAgICAgIGRlYnVnKCJDaGVja2luZyB1cHBl
ciBsZWZ0IGNvcm5lciIpOwotICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0LCBnbC5j
YW52YXMuaGVpZ2h0IC0gOCwgMiwgMiwgdG9wQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInNob3VsZEJlICIgKyB0b3BDb2xvcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVu
VGVzdCh2aWRlb0VsZW1lbnQpCi0gICAgewotICAgICAgICB2YXIgcmVkID0gWzI1NSwgMCwgMF07
Ci0gICAgICAgIHZhciBncmVlbiA9IFswLCAyNTUsIDBdOwotICAgICAgICBydW5PbmVJdGVyYXRp
b24odmlkZW9FbGVtZW50LCBmYWxzZSwgdHJ1ZSwgcmVkLCBncmVlbik7Ci0gICAgICAgIHJ1bk9u
ZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCBmYWxzZSwgZ3JlZW4sIHJlZCk7Ci0gICAg
ICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIHRydWUsIHRydWUsIHJlZCwgZ3JlZW4p
OwotICAgICAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCB0cnVlLCBmYWxzZSwgZ3Jl
ZW4sIHJlZCk7Ci0KLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNo
b3VsZCBiZSBubyBlcnJvcnMiKTsKLQotICAgICAgICBydW5OZXh0VmlkZW8oKTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gaW5pdDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL3ZlcnRleFNoYWRlci52ZXJ0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdmVydGV4
U2hhZGVyLnZlcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNjhiZTgxMjkwNWE0
OWFmMjk2ZjA4ZmFjZTEyMTFmZGUwMzExZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdmVydGV4U2hhZGVy
LnZlcnQKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi1hcmUgbWV0OgotMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQVMgSVMgQU5EIEFOWQotRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLUNPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi1QUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi1PRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSovCi1hdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsKLWF0dHJpYnV0ZSB2ZWMzIGFf
bm9ybWFsOwotCi11bmlmb3JtIG1lZGl1bXAgbWF0NCB1X21vZGVsVmlld1Byb2pNYXRyaXg7Ci0K
LXZhcnlpbmcgdmVjMyB2X25vcm1hbDsKLQotdm9pZCBtYWluKCkKLXsKLSAgICB2X25vcm1hbCA9
IGFfbm9ybWFsOwotICAgIGdsX1Bvc2l0aW9uID0gIHVfbW9kZWxWaWV3UHJvak1hdHJpeCAqIGFf
dmVydGV4OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2MjEyMmM5MDdjZGVlOTUzNDQ0
NDkxM2QzNjE4ZmM3NDI1NjBmYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE5OTggKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotdmFyIFdlYkdMVGVzdFV0aWxzID0gKGZ1bmN0aW9uKCkgewotInVzZSBzdHJpY3QiOwotCi0v
KioKLSAqIFdyYXBwZWQgbG9nZ2luZyBmdW5jdGlvbi4KLSAqIEBwYXJhbSB7c3RyaW5nfSBtc2cg
VGhlIG1lc3NhZ2UgdG8gbG9nLgotICovCi12YXIgbG9nID0gZnVuY3Rpb24obXNnKSB7Ci0gIGlm
ICh3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5sb2cpIHsKLSAgICB3aW5kb3cuY29u
c29sZS5sb2cobXNnKTsKLSAgfQotfTsKLQotLyoqCi0gKiBXcmFwcGVkIGxvZ2dpbmcgZnVuY3Rp
b24uCi0gKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGxvZy4KLSAqLwotdmFy
IGVycm9yID0gZnVuY3Rpb24obXNnKSB7Ci0gIGlmICh3aW5kb3cuY29uc29sZSkgewotICAgIGlm
ICh3aW5kb3cuY29uc29sZS5lcnJvcikgewotICAgICAgd2luZG93LmNvbnNvbGUuZXJyb3IobXNn
KTsKLSAgICB9Ci0gICAgZWxzZSBpZiAod2luZG93LmNvbnNvbGUubG9nKSB7Ci0gICAgICB3aW5k
b3cuY29uc29sZS5sb2cobXNnKTsKLSAgICB9Ci0gIH0KLX07Ci0KLS8qKgotICogVHVybiBvZmYg
YWxsIGxvZ2dpbmcuCi0gKi8KLXZhciBsb2dnaW5nT2ZmID0gZnVuY3Rpb24oKSB7Ci0gIGxvZyA9
IGZ1bmN0aW9uKCkge307Ci0gIGVycm9yID0gZnVuY3Rpb24oKSB7fTsKLX07Ci0KLS8qKgotICog
Q29udmVydHMgYSBXZWJHTCBlbnVtIHRvIGEgc3RyaW5nCi0gKiBAcGFyYW0geyFXZWJHTENvbnRl
eHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IHZhbHVl
IFRoZSBlbnVtIHZhbHVlLgotICogQHJldHVybiB7c3RyaW5nfSBUaGUgZW51bSBhcyBhIHN0cmlu
Zy4KLSAqLwotdmFyIGdsRW51bVRvU3RyaW5nID0gZnVuY3Rpb24oZ2wsIHZhbHVlKSB7Ci0gIGZv
ciAodmFyIHAgaW4gZ2wpIHsKLSAgICBpZiAoZ2xbcF0gPT0gdmFsdWUpIHsKLSAgICAgIHJldHVy
biBwOwotICAgIH0KLSAgfQotICByZXR1cm4gIjB4IiArIHZhbHVlLnRvU3RyaW5nKDE2KTsKLX07
Ci0KLXZhciBsYXN0RXJyb3IgPSAiIjsKLQotLyoqCi0gKiBSZXR1cm5zIHRoZSBsYXN0IGNvbXBp
bGVyL2xpbmtlciBlcnJvci4KLSAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGxhc3QgY29tcGlsZXIv
bGlua2VyIGVycm9yLgotICovCi12YXIgZ2V0TGFzdEVycm9yID0gZnVuY3Rpb24oKSB7Ci0gIHJl
dHVybiBsYXN0RXJyb3I7Ci19OwotCi0vKioKLSAqIFdoZXRoZXIgYSBoYXlzdGFjayBlbmRzIHdp
dGggYSBuZWVkbGUuCi0gKiBAcGFyYW0ge3N0cmluZ30gaGF5c3RhY2sgU3RyaW5nIHRvIHNlYXJj
aAotICogQHBhcmFtIHtzdHJpbmd9IG5lZWRsZSBTdHJpbmcgdG8gc2VhcmNoIGZvci4KLSAqIEBw
YXJhbSB7Ym9vbGVhbn0gVHJ1ZSBpZiBoYXlzdGFjayBlbmRzIHdpdGggbmVlZGxlLgotICovCi12
YXIgZW5kc1dpdGggPSBmdW5jdGlvbihoYXlzdGFjaywgbmVlZGxlKSB7Ci0gIHJldHVybiBoYXlz
dGFjay5zdWJzdHIoaGF5c3RhY2subGVuZ3RoIC0gbmVlZGxlLmxlbmd0aCkgPT09IG5lZWRsZTsK
LX07Ci0KLS8qKgotICogV2hldGhlciBhIGhheXN0YWNrIHN0YXJ0cyB3aXRoIGEgbmVlZGxlLgot
ICogQHBhcmFtIHtzdHJpbmd9IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKLSAqIEBwYXJhbSB7
c3RyaW5nfSBuZWVkbGUgU3RyaW5nIHRvIHNlYXJjaCBmb3IuCi0gKiBAcGFyYW0ge2Jvb2xlYW59
IFRydWUgaWYgaGF5c3RhY2sgc3RhcnRzIHdpdGggbmVlZGxlLgotICovCi12YXIgc3RhcnRzV2l0
aCA9IGZ1bmN0aW9uKGhheXN0YWNrLCBuZWVkbGUpIHsKLSAgcmV0dXJuIGhheXN0YWNrLnN1YnN0
cigwLCBuZWVkbGUubGVuZ3RoKSA9PT0gbmVlZGxlOwotfTsKLQotLyoqCi0gKiBBIHZlcnRleCBz
aGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCi0gKiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIg
c2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlciA9IFsKLSAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlv
bjsnLAotICAnYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQwOycsCi0gICd2YXJ5aW5nIHZlYzIgdGV4
Q29vcmQ7JywKLSAgJ3ZvaWQgbWFpbigpIHsnLAotICAnICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0
aW9uOycsCi0gICcgICAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7JywKLSAgJ30nXS5qb2luKCdcbicp
OwotCi0vKioKLSAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJlLgotICog
QHR5cGUge3N0cmluZ30KLSAqLwotdmFyIHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlciA9IFsK
LSAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OycsCi0gICd1bmlmb3JtIHNhbXBsZXIyRCB0ZXg7
JywKLSAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAotICAndm9pZCBtYWluKCkgeycsCi0gICcg
ICAgZ2xfRnJhZ0RhdGFbMF0gPSB0ZXh0dXJlMkQodGV4LCB0ZXhDb29yZCk7JywKLSAgJ30nXS5q
b2luKCdcbicpOwotCi0vKioKLSAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVy
ZS4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZhciBub1RleENvb3JkVGV4dHVyZVZlcnRleFNo
YWRlciA9IFsKLSAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAotICAndmFyeWluZyB2ZWMy
IHRleENvb3JkOycsCi0gICd2b2lkIG1haW4oKSB7JywKLSAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQ
b3NpdGlvbjsnLAotICAnICAgIHRleENvb3JkID0gdlBvc2l0aW9uLnh5ICogMC41ICsgMC41Oycs
Ci0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgdW5p
Zm9ybSBjb2xvci4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZhciBzaW1wbGVDb2xvclZlcnRl
eFNoYWRlciA9IFsKLSAgJ2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAotICAndm9pZCBtYWlu
KCkgeycsCi0gICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKLSAgJ30nXS5qb2luKCdc
bicpOwotCi0vKioKLSAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCi0g
KiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIgc2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlciA9IFsK
LSAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OycsCi0gICd1bmlmb3JtIHZlYzQgdV9jb2xvcjsn
LAotICAndm9pZCBtYWluKCkgeycsCi0gICcgICAgZ2xfRnJhZ0RhdGFbMF0gPSB1X2NvbG9yOycs
Ci0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIHZlcnRleCBzaGFkZXIgZm9yIHZlcnRl
eCBjb2xvcnMuCi0gKiBAdHlwZSB7c3RyaW5nfQotICovCi12YXIgc2ltcGxlVmVydGV4Q29sb3JW
ZXJ0ZXhTaGFkZXIgPSBbCi0gICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKLSAgJ2F0dHJp
YnV0ZSB2ZWM0IGFfY29sb3I7JywKLSAgJ3ZhcnlpbmcgdmVjNCB2X2NvbG9yOycsCi0gICd2b2lk
IG1haW4oKSB7JywKLSAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAotICAnICAgIHZf
Y29sb3IgPSBhX2NvbG9yOycsCi0gICd9J10uam9pbignXG4nKTsKLQotLyoqCi0gKiBBIGZyYWdt
ZW50IHNoYWRlciBmb3IgdmVydGV4IGNvbG9ycy4KLSAqIEB0eXBlIHtzdHJpbmd9Ci0gKi8KLXZh
ciBzaW1wbGVWZXJ0ZXhDb2xvckZyYWdtZW50U2hhZGVyID0gWwotICAncHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7JywKLSAgJ3ZhcnlpbmcgdmVjNCB2X2NvbG9yOycsCi0gICd2b2lkIG1haW4oKSB7
JywKLSAgJyAgICBnbF9GcmFnRGF0YVswXSA9IHZfY29sb3I7JywKLSAgJ30nXS5qb2luKCdcbicp
OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSB2ZXJ0ZXggc2hhZGVyLgotICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBy
ZXR1cm4geyFXZWJHTFNoYWRlcn0KLSAqLwotdmFyIHNldHVwU2ltcGxlVGV4dHVyZVZlcnRleFNo
YWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZVRl
eHR1cmVWZXJ0ZXhTaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIpOwotfTsKLQotLyoqCi0gKiBDcmVh
dGVzIGEgc2ltcGxlIHRleHR1cmUgZnJhZ21lbnQgc2hhZGVyLgotICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEByZXR1cm4geyFXZWJHTFNo
YWRlcn0KLSAqLwotdmFyIHNldHVwU2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyID0gZnVuY3Rp
b24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcigKLSAgICAgICAgZ2wsIHNpbXBsZVRleHR1
cmVGcmFnbWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSKTsKLX07Ci0KLS8qKgotICogQ3Jl
YXRlcyBhIHRleHR1cmUgdmVydGV4IHNoYWRlciB0aGF0IGRvZXNuJ3QgbmVlZCB0ZXhjb29yZHMu
Ci0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgot
ICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12YXIgc2V0dXBOb1RleENvb3JkVGV4dHVy
ZVZlcnRleFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgcmV0dXJuIGxvYWRTaGFkZXIoZ2ws
IG5vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVyLCBnbC5WRVJURVhfU0hBREVSKTsKLX07Ci0K
LS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB2ZXJ0ZXggY29sb3IgdmVydGV4IHNoYWRlci4KLSAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBA
cmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBzZXR1cFNpbXBsZVZlcnRleENvbG9yVmVy
dGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcihnbCwgc2lt
cGxlVmVydGV4Q29sb3JWZXJ0ZXhTaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIpOwotfTsKLQotLyoq
Ci0gKiBDcmVhdGVzIGEgc2ltcGxlIHZlcnRleCBjb2xvciBmcmFnbWVudCBzaGFkZXIuCi0gKiBA
cGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJl
dHVybiB7IVdlYkdMU2hhZGVyfQotICovCi12YXIgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvckZyYWdt
ZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcigKLSAgICAg
ICAgZ2wsIHNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXIsIGdsLkZSQUdNRU5UX1NIQURF
Uik7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgY29sb3IgdmVydGV4IHNoYWRlci4K
LSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0g
KiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9Ci0gKi8KLXZhciBzZXR1cFNpbXBsZUNvbG9yVmVydGV4
U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKLSAgICByZXR1cm4gbG9hZFNoYWRlcihnbCwgc2ltcGxl
Q29sb3JWZXJ0ZXhTaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIpOwotfTsKLQotLyoqCi0gKiBDcmVh
dGVzIGEgc2ltcGxlIGNvbG9yIGZyYWdtZW50IHNoYWRlci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcmV0dXJuIHshV2ViR0xTaGFk
ZXJ9Ci0gKi8KLXZhciBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBmdW5jdGlvbihn
bCkgewotICAgIHJldHVybiBsb2FkU2hhZGVyKAotICAgICAgICBnbCwgc2ltcGxlQ29sb3JGcmFn
bWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSKTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBh
IHByb2dyYW0sIGF0dGFjaGVzIHNoYWRlcnMsIGJpbmRzIGF0dHJpYiBsb2NhdGlvbnMsIGxpbmtz
IHRoZQotICogcHJvZ3JhbSBhbmQgY2FsbHMgdXNlUHJvZ3JhbS4KLSAqIEBwYXJhbSB7IUFycmF5
LjwhV2ViR0xTaGFkZXJ8c3RyaW5nPn0gc2hhZGVycyBUaGUgc2hhZGVycyB0bwotICogICAgICAg
IGF0dGFjaCwgb3IgdGhlIHNvdXJjZSwgb3IgdGhlIGlkIG9mIGEgc2NyaXB0IHRvIGdldAotICog
ICAgICAgIHRoZSBzb3VyY2UgZnJvbS4KLSAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSBvcHRf
YXR0cmlicyBUaGUgYXR0cmlicyBuYW1lcy4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBv
cHRfbG9jYXRpb25zIFRoZSBsb2NhdGlvbnMgZm9yIHRoZSBhdHRyaWJzLgotICovCi12YXIgc2V0
dXBQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIHNoYWRlcnMsIG9wdF9hdHRyaWJzLCBvcHRfbG9jYXRp
b25zKSB7Ci0gIHZhciByZWFsU2hhZGVycyA9IFtdOwotICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0
ZVByb2dyYW0oKTsKLSAgdmFyIHNoYWRlclR5cGUgPSB1bmRlZmluZWQ7Ci0gIGZvciAodmFyIGlp
ID0gMDsgaWkgPCBzaGFkZXJzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBzaGFkZXIgPSBzaGFk
ZXJzW2lpXTsKLSAgICBpZiAodHlwZW9mIHNoYWRlciA9PSAnc3RyaW5nJykgewotICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzaGFkZXIpOwotICAgICAgaWYgKGVs
ZW1lbnQpIHsKLSAgICAgICAgaWYgKGVsZW1lbnQudHlwZSAhPSAieC1zaGFkZXIveC12ZXJ0ZXgi
ICYmIGVsZW1lbnQudHlwZSAhPSAieC1zaGFkZXIveC1mcmFnbWVudCIpCi0gICAgICAgICAgc2hh
ZGVyVHlwZSA9IGlpID8gZ2wuRlJBR01FTlRfU0hBREVSIDogZ2wuVkVSVEVYX1NIQURFUjsKLSAg
ICAgICAgc2hhZGVyID0gbG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIHNoYWRlciwgc2hhZGVyVHlw
ZSk7Ci0gICAgICB9IGVsc2UgaWYgKGVuZHNXaXRoKHNoYWRlciwgIi52ZXJ0IikpIHsKLSAgICAg
ICAgc2hhZGVyID0gbG9hZFNoYWRlckZyb21GaWxlKGdsLCBzaGFkZXIsIGdsLlZFUlRFWF9TSEFE
RVIpOwotICAgICAgfSBlbHNlIGlmIChlbmRzV2l0aChzaGFkZXIsICIuZnJhZyIpKSB7Ci0gICAg
ICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmlsZShnbCwgc2hhZGVyLCBnbC5GUkFHTUVOVF9T
SEFERVIpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2hhZGVyID0gbG9hZFNoYWRlcihnbCwg
c2hhZGVyLCBpaSA/IGdsLkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRFWF9TSEFERVIpOwotICAg
ICAgfQotICAgIH0KLSAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVyKTsKLSAgfQot
ICBpZiAob3B0X2F0dHJpYnMpIHsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgb3B0X2F0dHJp
YnMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24oCi0gICAgICAg
ICAgcHJvZ3JhbSwKLSAgICAgICAgICBvcHRfbG9jYXRpb25zID8gb3B0X2xvY2F0aW9uc1tpaV0g
OiBpaSwKLSAgICAgICAgICBvcHRfYXR0cmlic1tpaV0pOwotICAgIH0KLSAgfQotICBnbC5saW5r
UHJvZ3JhbShwcm9ncmFtKTsKLQotICAvLyBDaGVjayB0aGUgbGluayBzdGF0dXMKLSAgdmFyIGxp
bmtlZCA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpOwot
ICBpZiAoIWxpbmtlZCkgewotICAgICAgLy8gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUg
bGluawotICAgICAgbGFzdEVycm9yID0gZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cgKHByb2dyYW0pOwot
ICAgICAgZXJyb3IoIkVycm9yIGluIHByb2dyYW0gbGlua2luZzoiICsgbGFzdEVycm9yKTsKLQot
ICAgICAgZ2wuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKLSAgICAgIHJldHVybiBudWxsOwotICB9
Ci0KLSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0v
KioKLSAqIENyZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSBwcm9ncmFtLgotICogQHBhcmFtIHshV2Vi
R0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4K
LSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0
aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KLSAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KLSAqLwot
dmFyIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0gPSBmdW5jdGlvbigKLSAgICBnbCwgb3B0X3Bv
c2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKSB7Ci0gIG9wdF9wb3NpdGlvbkxv
Y2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKLSAgb3B0X3RleGNvb3JkTG9jYXRp
b24gPSBvcHRfdGV4Y29vcmRMb2NhdGlvbiB8fCAxOwotICB2YXIgdnMgPSBzZXR1cFNpbXBsZVRl
eHR1cmVWZXJ0ZXhTaGFkZXIoZ2wpOwotICB2YXIgZnMgPSBzZXR1cFNpbXBsZVRleHR1cmVGcmFn
bWVudFNoYWRlcihnbCk7Ci0gIGlmICghdnMgfHwgIWZzKSB7Ci0gICAgcmV0dXJuIG51bGw7Ci0g
IH0KLSAgdmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0oCi0gICAgICBnbCwKLSAgICAgIFt2cywg
ZnNdLAotICAgICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sCi0gICAgICBbb3B0X3Bvc2l0
aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uXSk7Ci0gIGlmICghcHJvZ3JhbSkgewot
ICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKLSAgfQot
ICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgot
ICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0dXJlIHByb2dyYW0uCi0gKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHJldHVybiB7V2ViR0xQcm9n
cmFtfQotICovCi12YXIgc2V0dXBOb1RleENvb3JkVGV4dHVyZVByb2dyYW0gPSBmdW5jdGlvbihn
bCkgewotICB2YXIgdnMgPSBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVyKGdsKTsK
LSAgdmFyIGZzID0gc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpOwotICBpZiAo
IXZzIHx8ICFmcykgewotICAgIHJldHVybiBudWxsOwotICB9Ci0gIHZhciBwcm9ncmFtID0gc2V0
dXBQcm9ncmFtKAotICAgICAgZ2wsCi0gICAgICBbdnMsIGZzXSwKLSAgICAgIFsndlBvc2l0aW9u
J10sCi0gICAgICBbMF0pOwotICBpZiAoIXByb2dyYW0pIHsKLSAgICBnbC5kZWxldGVTaGFkZXIo
ZnMpOwotICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgZ2wudXNlUHJvZ3JhbShwcm9n
cmFtKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBzaW1wbGUg
dGV4dHVyZSBwcm9ncmFtLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xD
b250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBU
aGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRf
dGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4K
LSAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwU2ltcGxlVGV4dHVyZVBy
b2dyYW0gPSBmdW5jdGlvbigKLSAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhj
b29yZExvY2F0aW9uKSB7Ci0gIG9wdF9wb3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9j
YXRpb24gfHwgMDsKLSAgb3B0X3RleGNvb3JkTG9jYXRpb24gPSBvcHRfdGV4Y29vcmRMb2NhdGlv
biB8fCAxOwotICB2YXIgdnMgPSBzZXR1cFNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIoZ2wpOwot
ICB2YXIgZnMgPSBzZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcihnbCk7Ci0gIGlmICgh
dnMgfHwgIWZzKSB7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLSAgdmFyIHByb2dyYW0gPSBzZXR1
cFByb2dyYW0oCi0gICAgICBnbCwKLSAgICAgIFt2cywgZnNdLAotICAgICAgWyd2UG9zaXRpb24n
LCAndGV4Q29vcmQwJ10sCi0gICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29y
ZExvY2F0aW9uXSk7Ci0gIGlmICghcHJvZ3JhbSkgewotICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7
Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKLSAgfQotICBnbC51c2VQcm9ncmFtKHByb2dyYW0p
OwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSB2ZXJ0
ZXggY29sb3IgcHJvZ3JhbS4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdM
Q29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24g
VGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0
X3ZlcnRleENvbG9yTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbgotICogICAgICAgIGZvciB2
ZXJ0ZXggY29sb3JzLgotICogQHJldHVybiB7V2ViR0xQcm9ncmFtfQotICovCi12YXIgc2V0dXBT
aW1wbGVWZXJ0ZXhDb2xvclByb2dyYW0gPSBmdW5jdGlvbigKLSAgICBnbCwgb3B0X3Bvc2l0aW9u
TG9jYXRpb24sIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uKSB7Ci0gIG9wdF9wb3NpdGlvbkxvY2F0
aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKLSAgb3B0X3ZlcnRleENvbG9yTG9jYXRp
b24gPSBvcHRfdmVydGV4Q29sb3JMb2NhdGlvbiB8fCAxOwotICB2YXIgdnMgPSBzZXR1cFNpbXBs
ZVZlcnRleENvbG9yVmVydGV4U2hhZGVyKGdsKTsKLSAgdmFyIGZzID0gc2V0dXBTaW1wbGVWZXJ0
ZXhDb2xvckZyYWdtZW50U2hhZGVyKGdsKTsKLSAgaWYgKCF2cyB8fCAhZnMpIHsKLSAgICByZXR1
cm4gbnVsbDsKLSAgfQotICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbSgKLSAgICAgIGdsLAot
ICAgICAgW3ZzLCBmc10sCi0gICAgICBbJ3ZQb3NpdGlvbicsICdhX2NvbG9yJ10sCi0gICAgICBb
b3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uXSk7Ci0gIGlmICgh
cHJvZ3JhbSkgewotICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7Ci0gICAgZ2wuZGVsZXRlU2hhZGVy
KHZzKTsKLSAgfQotICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwotICByZXR1cm4gcHJvZ3JhbTsK
LX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHNpbXBsZSBjb2xvciBwcm9ncmFtLgotICogQHBhcmFt
IHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7
bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3Np
dGlvbi4KLSAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwU2ltcGxlQ29s
b3JQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uKSB7Ci0gIG9wdF9w
b3NpdGlvbkxvY2F0aW9uID0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gfHwgMDsKLSAgdmFyIHZzID0g
c2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlcihnbCk7Ci0gIHZhciBmcyA9IHNldHVwU2ltcGxl
Q29sb3JGcmFnbWVudFNoYWRlcihnbCk7Ci0gIGlmICghdnMgfHwgIWZzKSB7Ci0gICAgcmV0dXJu
IG51bGw7Ci0gIH0KLSAgdmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0oCi0gICAgICBnbCwKLSAg
ICAgIFt2cywgZnNdLAotICAgICAgWyd2UG9zaXRpb24nXSwKLSAgICAgIFtvcHRfcG9zaXRpb25M
b2NhdGlvbl0pOwotICBpZiAoIXByb2dyYW0pIHsKLSAgICBnbC5kZWxldGVTaGFkZXIoZnMpOwot
ICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7Ci0gIH0KLSAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsK
LSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYnVmZmVycyBmb3IgYSB0
ZXh0dXJlZCB1bml0IHF1YWQgYW5kIGF0dGFjaGVzIHRoZW0gdG8gdmVydGV4IGF0dHJpYnMuCi0g
KiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICog
QHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24g
Zm9yIHBvc2l0aW9uLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRo
ZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRzLgotICogQHJldHVybiB7IUFycmF5
LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0aGF0IHdlcmUKLSAqICAgICAgY3Jl
YXRlZC4KLSAqLwotdmFyIHNldHVwVW5pdFF1YWQgPSBmdW5jdGlvbihnbCwgb3B0X3Bvc2l0aW9u
TG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKSB7Ci0gIHJldHVybiBzZXR1cFVuaXRRdWFk
V2l0aFRleENvb3JkcyhnbCwgWyAwLjAsIDAuMCBdLCBbIDEuMCwgMS4wIF0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNv
b3JkTG9jYXRpb24pOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4dHVy
ZWQgdW5pdCBxdWFkIHdpdGggc3BlY2lmaWVkIGxvd2VyIGxlZnQKLSAqIGFuZCB1cHBlciByaWdo
dCB0ZXh0dXJlIGNvb3JkaW5hdGVzLCBhbmQgYXR0YWNoZXMgdGhlbSB0byB2ZXJ0ZXgKLSAqIGF0
dHJpYnMuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8g
dXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGxvd2VyTGVmdFRleENvb3JkcyBUaGUg
dGV4dHVyZSBjb29yZGluYXRlcyBmb3IgdGhlIGxvd2VyIGxlZnQgY29ybmVyLgotICogQHBhcmFt
IHshQXJyYXkuPG51bWJlcj59IHVwcGVyUmlnaHRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRp
bmF0ZXMgZm9yIHRoZSB1cHBlciByaWdodCBjb3JuZXIuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0
X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKiBA
cGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBm
b3IgdGV4dHVyZSBjb29yZHMuCi0gKiBAcmV0dXJuIHshQXJyYXkuPFdlYkdMQnVmZmVyPn0gVGhl
IGJ1ZmZlciBvYmplY3RzIHRoYXQgd2VyZQotICogICAgICBjcmVhdGVkLgotICovCi12YXIgc2V0
dXBVbml0UXVhZFdpdGhUZXhDb29yZHMgPSBmdW5jdGlvbigKLSAgICBnbCwgbG93ZXJMZWZ0VGV4
Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29vcmRzLAotICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBv
cHRfdGV4Y29vcmRMb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIHx8IDA7Ci0gIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3Jk
TG9jYXRpb24gfHwgMTsKLSAgdmFyIG9iamVjdHMgPSBbXTsKLQotICB2YXIgdmVydGV4T2JqZWN0
ID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2
ZXJ0ZXhPYmplY3QpOwotICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0
MzJBcnJheShbCi0gICAgICAgMS4wLCAgMS4wLCAwLjAsCi0gICAgICAtMS4wLCAgMS4wLCAwLjAs
Ci0gICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgMS4wLCAgMS4wLCAwLjAsCi0gICAgICAt
MS4wLCAtMS4wLCAwLjAsCi0gICAgICAgMS4wLCAtMS4wLCAwLjBdKSwgZ2wuU1RBVElDX0RSQVcp
OwotICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShvcHRfcG9zaXRpb25Mb2NhdGlvbik7Ci0g
IGdsLnZlcnRleEF0dHJpYlBvaW50ZXIob3B0X3Bvc2l0aW9uTG9jYXRpb24sIDMsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7Ci0gIG9iamVjdHMucHVzaCh2ZXJ0ZXhPYmplY3QpOwotCi0gIHZhciBs
bHggPSBsb3dlckxlZnRUZXhDb29yZHNbMF07Ci0gIHZhciBsbHkgPSBsb3dlckxlZnRUZXhDb29y
ZHNbMV07Ci0gIHZhciB1cnggPSB1cHBlclJpZ2h0VGV4Q29vcmRzWzBdOwotICB2YXIgdXJ5ID0g
dXBwZXJSaWdodFRleENvb3Jkc1sxXTsKLQotICB2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRl
QnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3Qp
OwotICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCi0g
ICAgICB1cngsIHVyeSwKLSAgICAgIGxseCwgdXJ5LAotICAgICAgbGx4LCBsbHksCi0gICAgICB1
cngsIHVyeSwKLSAgICAgIGxseCwgbGx5LAotICAgICAgdXJ4LCBsbHldKSwgZ2wuU1RBVElDX0RS
QVcpOwotICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShvcHRfdGV4Y29vcmRMb2NhdGlvbik7
Ci0gIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIob3B0X3RleGNvb3JkTG9jYXRpb24sIDIsIGdsLkZM
T0FULCBmYWxzZSwgMCwgMCk7Ci0gIG9iamVjdHMucHVzaCh2ZXJ0ZXhPYmplY3QpOwotICByZXR1
cm4gb2JqZWN0czsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMg
Zm9yIHJlbmRlcmluZyBhIHRleHR1cmVkIHF1YWQuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9
IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yCi0gKiAgICAgICAgcG9zaXRpb24u
IERlZmF1bHQgPSAwLgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRo
ZSBhdHRyaWIgbG9jYXRpb24gZm9yCi0gKiAgICAgICAgdGV4dHVyZSBjb29yZHMuIERlZmF1bHQg
PSAwLgotICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KLSAqLwotdmFyIHNldHVwVGV4dHVyZWRR
dWFkID0gZnVuY3Rpb24oCi0gICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29v
cmRMb2NhdGlvbikgewotICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0o
Ci0gICAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsK
LSAgc2V0dXBVbml0UXVhZChnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExv
Y2F0aW9uKTsKLSAgcmV0dXJuIHByb2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBwcm9n
cmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSBjb2xvciBxdWFkLgotICogQHBhcmFtIHsh
V2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVt
YmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlv
bi4KLSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cENvbG9yUXVhZCA9
IGZ1bmN0aW9uKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbikgewotICBvcHRfcG9zaXRpb25Mb2Nh
dGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7Ci0gIHZhciBwcm9ncmFtID0gc2V0dXBT
aW1wbGVDb2xvclByb2dyYW0oZ2wpOwotICBzZXR1cFVuaXRRdWFkKGdsLCBvcHRfcG9zaXRpb25M
b2NhdGlvbik7Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgcHJv
Z3JhbSBhbmQgYnVmZmVycyBmb3IgcmVuZGVyaW5nIGEgdGV4dHVyZWQgcXVhZCB3aXRoCi0gKiBz
cGVjaWZpZWQgbG93ZXIgbGVmdCBhbmQgdXBwZXIgcmlnaHQgdGV4dHVyZSBjb29yZGluYXRlcy4K
LSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0g
KiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gbG93ZXJMZWZ0VGV4Q29vcmRzIFRoZSB0ZXh0dXJl
IGNvb3JkaW5hdGVzIGZvciB0aGUgbG93ZXIgbGVmdCBjb3JuZXIuCi0gKiBAcGFyYW0geyFBcnJh
eS48bnVtYmVyPn0gdXBwZXJSaWdodFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBm
b3IgdGhlIHVwcGVyIHJpZ2h0IGNvcm5lci4KLSAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRp
b25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KLSAqIEBwYXJhbSB7
bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0
dXJlIGNvb3Jkcy4KLSAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19Ci0gKi8KLXZhciBzZXR1cFRl
eHR1cmVkUXVhZFdpdGhUZXhDb29yZHMgPSBmdW5jdGlvbigKLSAgICBnbCwgbG93ZXJMZWZ0VGV4
Q29vcmRzLCB1cHBlclJpZ2h0VGV4Q29vcmRzLAotICAgIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBv
cHRfdGV4Y29vcmRMb2NhdGlvbikgewotICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlVGV4dHVy
ZVByb2dyYW0oCi0gICAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExv
Y2F0aW9uKTsKLSAgc2V0dXBVbml0UXVhZFdpdGhUZXhDb29yZHMoZ2wsIGxvd2VyTGVmdFRleENv
b3JkcywgdXBwZXJSaWdodFRleENvb3JkcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKLSAgcmV0dXJuIHBy
b2dyYW07Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSB1bml0IHF1YWQgd2l0aCBvbmx5IHBvc2l0
aW9ucyBvZiBhIGdpdmVuIHJlc29sdXRpb24uCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGds
IFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtudW1iZXJ9IGdyaWRSZXMgVGhl
IHJlc29sdXRpb24gb2YgdGhlIG1lc2ggZ3JpZCwKLSAqICAgICBleHByZXNzZWQgaW4gdGhlIG51
bWJlciBvZiBxdWFkcyBhY3Jvc3MgYW5kIGRvd24uCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bv
c2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCi0gKi8KLXZh
ciBzZXR1cFF1YWQgPSBmdW5jdGlvbiAoCi0gICAgZ2wsIGdyaWRSZXMsIG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLCBvcHRfZmxpcE9kZFRyaWFuZ2xlcykgewotICByZXR1cm4gc2V0dXBRdWFkV2l0aE9w
dGlvbnMoZ2wsCi0gICAgeyBncmlkUmVzOiBncmlkUmVzLAotICAgICAgcG9zaXRpb25Mb2NhdGlv
bjogb3B0X3Bvc2l0aW9uTG9jYXRpb24sCi0gICAgICBmbGlwT2RkVHJpYW5nbGVzOiBvcHRfZmxp
cE9kZFRyaWFuZ2xlcwotICAgIH0pOwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgcXVhZCB3aXRo
IHZhcmlvdXMgb3B0aW9ucy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdM
Q29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFPYmplY3QpIG9wdGlvbnMgVGhlIG9wdGlvbnMu
IFNlZSBiZWxvdy4KLSAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+fSBUaGUgY3JlYXRl
ZCBidWZmZXJzLgotICogICAgIFtwb3NpdGlvbnMsIDxjb2xvcnM+LCBpbmRpY2VzXQotICoKLSAq
IE9wdGlvbnM6Ci0gKiAgIGdyaWRSZXM6IG51bWJlciBvZiBxdWFkcyBhY3Jvc3MgYW5kIGRvd24g
Z3JpZC4KLSAqICAgcG9zaXRpb25Mb2NhdGlvbjogYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlv
bgotICogICBmbGlwT2RkVHJpYW5nbGVzOiByZXZlcnNlIG9yZGVyIG9mIHZlcnRpY2VzIG9mIGV2
ZXJ5IG90aGVyCi0gKiAgICAgICB0cmlhbmdsZQotICogICBwb3NpdGlvbk9mZnNldDogb2Zmc2V0
IGFkZGVkIHRvIGVhY2ggdmVydGV4Ci0gKiAgIHBvc2l0aW9uTXVsdDogbXVsdGlwaWVyIGZvciBl
YWNoIHZlcnRleAotICogICBjb2xvckxvY2F0aW9uOiBhdHRyaWIgbG9jYXRpb24gZm9yIHZlcnRl
eCBjb2xvcnMuIElmCi0gKiAgICAgIHVuZGVmaW5lZCBubyB2ZXJ0ZXggY29sb3JzIHdpbGwgYmUg
Y3JlYXRlZC4KLSAqLwotdmFyIHNldHVwUXVhZFdpdGhPcHRpb25zID0gZnVuY3Rpb24gKGdsLCBv
cHRpb25zKSB7Ci0gIHZhciBwb3NpdGlvbkxvY2F0aW9uID0gb3B0aW9ucy5wb3NpdGlvbkxvY2F0
aW9uIHx8IDA7Ci0gIHZhciBvYmplY3RzID0gW107Ci0KLSAgdmFyIGdyaWRSZXMgPSBvcHRpb25z
LmdyaWRSZXMgfHwgMTsKLSAgdmFyIHBvc2l0aW9uT2Zmc2V0ID0gb3B0aW9ucy5wb3NpdGlvbk9m
ZnNldCB8fCAwOwotICB2YXIgcG9zaXRpb25NdWx0ID0gb3B0aW9ucy5wb3NpdGlvbk11bHQgfHwg
MTsKLSAgdmFyIHZlcnRzQWNyb3NzID0gZ3JpZFJlcyArIDE7Ci0gIHZhciBudW1WZXJ0cyA9IHZl
cnRzQWNyb3NzICogdmVydHNBY3Jvc3M7Ci0gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFy
cmF5KG51bVZlcnRzICogMyk7Ci0gIHZhciBpbmRpY2VzID0gbmV3IFVpbnQxNkFycmF5KDYgKiBn
cmlkUmVzICogZ3JpZFJlcyk7Ci0gIHZhciBwb2Zmc2V0ID0gMDsKLQotICBmb3IgKHZhciB5eSA9
IDA7IHl5IDw9IGdyaWRSZXM7ICsreXkpIHsKLSAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDw9IGdy
aWRSZXM7ICsreHgpIHsKLSAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsgMF0gPSAoLTEgKyAyICog
eHggLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zmc2V0OwotICAgICAgcG9z
aXRpb25zW3BvZmZzZXQgKyAxXSA9ICgtMSArIDIgKiB5eSAvIGdyaWRSZXMpICogcG9zaXRpb25N
dWx0ICsgcG9zaXRpb25PZmZzZXQ7Ci0gICAgICBwb3NpdGlvbnNbcG9mZnNldCArIDJdID0gMDsK
LQotICAgICAgcG9mZnNldCArPSAzOwotICAgIH0KLSAgfQotCi0gIHZhciBidWYgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1Zik7Ci0gIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBwb3NpdGlvbnMsIGdsLlNUQVRJQ19EUkFXKTsK
LSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2NhdGlvbik7Ci0gIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIocG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAw
LCAwKTsKLSAgb2JqZWN0cy5wdXNoKGJ1Zik7Ci0KLSAgaWYgKG9wdGlvbnMuY29sb3JMb2NhdGlv
biAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgdmFyIGNvbG9ycyA9IG5ldyBGbG9hdDMyQXJyYXkobnVt
VmVydHMgKiA0KTsKLSAgICBmb3IgKHZhciB5eSA9IDA7IHl5IDw9IGdyaWRSZXM7ICsreXkpIHsK
LSAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPD0gZ3JpZFJlczsgKyt4eCkgewotICAgICAgICBp
ZiAob3B0aW9ucy5jb2xvciAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgY29sb3JzW3BvZmZz
ZXQgKyAwXSA9IG9wdGlvbnMuY29sb3JbMF07Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAx
XSA9IG9wdGlvbnMuY29sb3JbMV07Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAyXSA9IG9w
dGlvbnMuY29sb3JbMl07Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAzXSA9IG9wdGlvbnMu
Y29sb3JbM107Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAw
XSA9IHh4IC8gZ3JpZFJlczsKLSAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDFdID0geXkgLyBn
cmlkUmVzOwotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMl0gPSAoeHggLyBncmlkUmVzKSAq
ICh5eSAvIGdyaWRSZXMpOwotICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgM10gPSAoeXkgJSAy
KSAqIDAuNSArIDAuNTsKLSAgICAgICAgfQotICAgICAgICBwb2Zmc2V0ICs9IDQ7Ci0gICAgICB9
Ci0gICAgfQotCi0gICAgdmFyIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICAgIGdsLmJpbmRC
dWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWYpOwotICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBjb2xvcnMsIGdsLlNUQVRJQ19EUkFXKTsKLSAgICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheShvcHRpb25zLmNvbG9yTG9jYXRpb24pOwotICAgIGdsLnZlcnRleEF0dHJpYlBvaW50
ZXIob3B0aW9ucy5jb2xvckxvY2F0aW9uLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwotICAg
IG9iamVjdHMucHVzaChidWYpOwotICB9Ci0KLSAgdmFyIHRiYXNlID0gMDsKLSAgZm9yICh2YXIg
eXkgPSAwOyB5eSA8IGdyaWRSZXM7ICsreXkpIHsKLSAgICB2YXIgaW5kZXggPSB5eSAqIHZlcnRz
QWNyb3NzOwotICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCBncmlkUmVzOyArK3h4KSB7Ci0gICAg
ICBpbmRpY2VzW3RiYXNlICsgMF0gPSBpbmRleCArIDA7Ci0gICAgICBpbmRpY2VzW3RiYXNlICsg
MV0gPSBpbmRleCArIDE7Ci0gICAgICBpbmRpY2VzW3RiYXNlICsgMl0gPSBpbmRleCArIHZlcnRz
QWNyb3NzOwotICAgICAgaW5kaWNlc1t0YmFzZSArIDNdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsK
LSAgICAgIGluZGljZXNbdGJhc2UgKyA0XSA9IGluZGV4ICsgMTsKLSAgICAgIGluZGljZXNbdGJh
c2UgKyA1XSA9IGluZGV4ICsgdmVydHNBY3Jvc3MgKyAxOwotCi0gICAgICBpZiAob3B0aW9ucy5m
bGlwT2RkVHJpYW5nbGVzKSB7Ci0gICAgICAgIGluZGljZXNbdGJhc2UgKyA0XSA9IGluZGV4ICsg
dmVydHNBY3Jvc3MgKyAxOwotICAgICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCArIDE7
Ci0gICAgICB9Ci0KLSAgICAgIGluZGV4ICs9IDE7Ci0gICAgICB0YmFzZSArPSA2OwotICAgIH0K
LSAgfQotCi0gIHZhciBidWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgZ2wuYmluZEJ1ZmZlcihn
bC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgYnVmKTsKLSAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOwotICBvYmplY3RzLnB1c2go
YnVmKTsKLQotICByZXR1cm4gb2JqZWN0czsKLX07Ci0KLS8qKgotICogRmlsbHMgdGhlIGdpdmVu
IHRleHR1cmUgd2l0aCBhIHNvbGlkIGNvbG9yCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGds
IFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHshV2ViR0xUZXh0dXJlfSB0ZXgg
VGhlIHRleHR1cmUgdG8gZmlsbC4KLSAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCBUaGUgd2lkdGgg
b2YgdGhlIHRleHR1cmUgdG8gY3JlYXRlLgotICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCBUaGUg
aGVpZ2h0IG9mIHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KLSAqIEBwYXJhbSB7IUFycmF5LjxudW1i
ZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZmlsbCB3aXRoLiBBIDQgZWxlbWVudCBhcnJheQotICog
ICAgICAgIHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCi0gKiBA
cGFyYW0ge251bWJlcn0gb3B0X2xldmVsIFRoZSBsZXZlbCBvZiB0aGUgdGV4dHVyZSB0byBmaWxs
LiBEZWZhdWx0ID0gMC4KLSAqLwotdmFyIGZpbGxUZXh0dXJlID0gZnVuY3Rpb24oZ2wsIHRleCwg
d2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9sZXZlbCkgewotICBvcHRfbGV2ZWwgPSBvcHRfbGV2
ZWwgfHwgMDsKLSAgdmFyIG51bVBpeGVscyA9IHdpZHRoICogaGVpZ2h0OwotICB2YXIgc2l6ZSA9
IG51bVBpeGVscyAqIDQ7Ci0gIHZhciBidWYgPSBuZXcgVWludDhBcnJheShzaXplKTsKLSAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IG51bVBpeGVsczsgKytpaSkgewotICAgIHZhciBvZmYgPSBpaSAq
IDQ7Ci0gICAgYnVmW29mZiArIDBdID0gY29sb3JbMF07Ci0gICAgYnVmW29mZiArIDFdID0gY29s
b3JbMV07Ci0gICAgYnVmW29mZiArIDJdID0gY29sb3JbMl07Ci0gICAgYnVmW29mZiArIDNdID0g
Y29sb3JbM107Ci0gIH0KLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAg
Z2wudGV4SW1hZ2UyRCgKLSAgICAgIGdsLlRFWFRVUkVfMkQsIG9wdF9sZXZlbCwgZ2wuUkdCQSwg
d2lkdGgsIGhlaWdodCwgMCwKLSAgICAgIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7
Ci0gIH07Ci0KLS8qKgotICogQ3JlYXRlcyBhIHRleHR1cmVzIGFuZCBmaWxscyBpdCB3aXRoIGEg
c29saWQgY29sb3IKLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4
dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gd2lkdGggVGhlIHdpZHRoIG9mIHRoZSB0ZXh0
dXJlIHRvIGNyZWF0ZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgVGhlIGhlaWdodCBvZiB0
aGUgdGV4dHVyZSB0byBjcmVhdGUuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3Ig
VGhlIGNvbG9yIHRvIGZpbGwgd2l0aC4gQSA0IGVsZW1lbnQgYXJyYXkKLSAqICAgICAgICB3aGVy
ZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgotICogQHJldHVybiB7IVdl
YkdMVGV4dHVyZX0KLSAqLwotdmFyIGNyZWF0ZUNvbG9yZWRUZXh0dXJlID0gZnVuY3Rpb24oZ2ws
IHdpZHRoLCBoZWlnaHQsIGNvbG9yKSB7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0gIGZpbGxUZXh0dXJlKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNvbG9yKTsKLSAgcmV0dXJu
IHRleDsKLX07Ci0KLXZhciB1Ynl0ZVRvRmxvYXQgPSBmdW5jdGlvbihjKSB7Ci0gIHJldHVybiBj
IC8gMjU1OwotfTsKLQotdmFyIHVieXRlQ29sb3JUb0Zsb2F0Q29sb3IgPSBmdW5jdGlvbihjb2xv
cikgewotICB2YXIgZmxvYXRDb2xvciA9IFtdOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29s
b3IubGVuZ3RoOyArK2lpKSB7Ci0gICAgZmxvYXRDb2xvcltpaV0gPSB1Ynl0ZVRvRmxvYXQoY29s
b3JbaWldKTsKLSAgfQotICByZXR1cm4gZmxvYXRDb2xvcjsKLX07Ci0KLS8qKgotICogU2V0cyB0
aGUgInVfY29sb3IiIHVuaWZvcm0gb2YgdGhlIGN1cnJlbnQgcHJvZ3JhbSB0byBjb2xvci4KLSAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBA
cGFyYW0geyFBcnJheS48bnVtYmVyPiBjb2xvciA0IGVsZW1lbnQgYXJyYXkgb2YgMC0xIGNvbG9y
Ci0gKiAgICAgIGNvbXBvbmVudHMuCi0gKi8KLXZhciBzZXRGbG9hdERyYXdDb2xvciA9IGZ1bmN0
aW9uKGdsLCBjb2xvcikgewotICB2YXIgcHJvZ3JhbSA9IGdsLmdldFBhcmFtZXRlcihnbC5DVVJS
RU5UX1BST0dSQU0pOwotICB2YXIgY29sb3JMb2NhdGlvbiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAidV9jb2xvciIpOwotICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jYXRpb24sIGNv
bG9yKTsKLX07Ci0KLS8qKgotICogU2V0cyB0aGUgInVfY29sb3IiIHVuaWZvcm0gb2YgdGhlIGN1
cnJlbnQgcHJvZ3JhbSB0byBjb2xvci4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhl
IFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPiBjb2xvciA0
IGVsZW1lbnQgYXJyYXkgb2YgMC0yNTUgY29sb3IKLSAqICAgICAgY29tcG9uZW50cy4KLSAqLwot
dmFyIHNldFVCeXRlRHJhd0NvbG9yID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7Ci0gIHNldEZsb2F0
RHJhd0NvbG9yKGdsLCB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNvbG9yKSk7Ci19OwotCi0vKioK
LSAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBnaXZlbiBjb2xvci4KLSAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBA
cGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGRyYXcgd2l0aC4gQSA0
Ci0gKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJh
bmdlIDAgdG8KLSAqICAgICAgICAxLgotICovCi12YXIgZHJhd0Zsb2F0Q29sb3JRdWFkID0gZnVu
Y3Rpb24oZ2wsIGNvbG9yKSB7Ci0gIHZhciBwcm9ncmFtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLkNV
UlJFTlRfUFJPR1JBTSk7Ci0gIHZhciBjb2xvckxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHByb2dyYW0sICJ1X2NvbG9yIik7Ci0gIGdsLnVuaWZvcm00ZnYoY29sb3JMb2NhdGlvbiwg
Y29sb3IpOwotICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7Ci19OwotCi0KLS8q
KgotICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQgaW4gdGhlIGdpdmVuIGNvbG9yLgot
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAq
IEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZHJhdyB3aXRoLiBB
IDQKLSAqICAgICAgICBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUg
cmFuZ2UgMCB0bwotICogICAgICAgIDI1NS4KLSAqLwotdmFyIGRyYXdVQnl0ZUNvbG9yUXVhZCA9
IGZ1bmN0aW9uKGdsLCBjb2xvcikgewotICBkcmF3RmxvYXRDb2xvclF1YWQoZ2wsIHVieXRlQ29s
b3JUb0Zsb2F0Q29sb3IoY29sb3IpKTsKLX07Ci0KLS8qKgotICogRHJhd3MgYSBwcmV2aW91c2x5
IHNldHVwIHF1YWQuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRl
eHQgdG8gdXNlLgotICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IG9wdF9jb2xvciBUaGUgY29s
b3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQotICogICAgICAgIGRyYXdpbmcuIEEgNCBlbGVt
ZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0bwotICogICAg
ICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1XQotICovCi12YXIgZHJhd1F1YWQg
PSBmdW5jdGlvbihnbCwgb3B0X2NvbG9yKSB7Ci0gIG9wdF9jb2xvciA9IG9wdF9jb2xvciB8fCBb
MjU1LCAyNTUsIDI1NSwgMjU1XTsKLSAgZ2wuY2xlYXJDb2xvcigKLSAgICAgIG9wdF9jb2xvclsw
XSAvIDI1NSwKLSAgICAgIG9wdF9jb2xvclsxXSAvIDI1NSwKLSAgICAgIG9wdF9jb2xvclsyXSAv
IDI1NSwKLSAgICAgIG9wdF9jb2xvclszXSAvIDI1NSk7Ci0gIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgZ2wuZHJhd0FycmF5cyhnbC5UUklB
TkdMRVMsIDAsIDYpOwotfTsKLQotLyoqCi0gKiBEcmF3cyBhIHByZXZpb3VzbHkgc2V0dXAgcXVh
ZC4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2Uu
Ci0gKiBAcGFyYW0ge251bWJlcn0gZ3JpZFJlcyBSZXNvbHV0aW9uIG9mIGdyaWQuCi0gKiBAcGFy
YW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2NvbG9yIFRoZSBjb2xvciB0byBmaWxsIGNsZWFyIHdp
dGggYmVmb3JlCi0gKiAgICAgICAgZHJhd2luZy4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFj
aCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCi0gKiAgICAgICAgMjU1LiBEZWZhdWx0IFsy
NTUsIDI1NSwgMjU1LCAyNTVdCi0gKi8KLXZhciBkcmF3SW5kZXhlZFF1YWQgPSBmdW5jdGlvbihn
bCwgZ3JpZFJlcywgb3B0X2NvbG9yKSB7Ci0gIG9wdF9jb2xvciA9IG9wdF9jb2xvciB8fCBbMjU1
LCAyNTUsIDI1NSwgMjU1XTsKLSAgZ2wuY2xlYXJDb2xvcigKLSAgICAgIG9wdF9jb2xvclswXSAv
IDI1NSwKLSAgICAgIG9wdF9jb2xvclsxXSAvIDI1NSwKLSAgICAgIG9wdF9jb2xvclsyXSAvIDI1
NSwKLSAgICAgIG9wdF9jb2xvclszXSAvIDI1NSk7Ci0gIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFO
R0xFUywgZ3JpZFJlcyAqIDYsIGdsLlVOU0lHTkVEX1NIT1JULCAwKTsKLX07Ci0KLS8qKgotICog
Q2hlY2tzIHRoYXQgYSBwb3J0aW9uIG9mIGEgY2FudmFzIGlzIDEgY29sb3IuCi0gKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtu
dW1iZXJ9IHggbGVmdCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1i
ZXJ9IHkgYm90dG9tIGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0ge251bWJl
cn0gd2lkdGggd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgotICogQHBhcmFtIHtudW1iZXJ9IGhl
aWdodCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0geyFBcnJheS48bnVtYmVy
Pn0gY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIgd2l0aCBiZWZvcmUgZHJhd2luZy4gQQot
ICogICAgICAgIDQgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJh
bmdlIDAgdG8gMjU1LgotICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFs
LiBBY2NlcHRhYmxlIGVycm9yIGluCi0gKiAgICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVm
YXVsdC4KLSAqIEBwYXJhbSB7IWZ1bmN0aW9uKCl9IHNhbWVGbiBGdW5jdGlvbiB0byBjYWxsIGlm
IGFsbCBwaXhlbHMKLSAqICAgICAgICBhcmUgdGhlIHNhbWUgYXMgY29sb3IuCi0gKiBAcGFyYW0g
eyFmdW5jdGlvbigpfSBkaWZmZXJlbnRGbiBGdW5jdGlvbiB0byBjYWxsIGlmIGEgcGl4ZWwKLSAq
ICAgICAgICBpcyBkaWZmZXJlbnQgdGhhbiBjb2xvcgotICogQHBhcmFtIHshZnVuY3Rpb24oKX0g
bG9nRm4gRnVuY3Rpb24gdG8gY2FsbCBmb3IgbG9nZ2luZy4KLSAqLwotdmFyIGNoZWNrQ2FudmFz
UmVjdENvbG9yID0gZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRf
ZXJyb3JSYW5nZSwgc2FtZUZuLCBkaWZmZXJlbnRGbiwgbG9nRm4pIHsKLSAgdmFyIGVycm9yUmFu
Z2UgPSBvcHRfZXJyb3JSYW5nZSB8fCAwOwotICBpZiAoIWVycm9yUmFuZ2UubGVuZ3RoKSB7Ci0g
ICAgZXJyb3JSYW5nZSA9IFtlcnJvclJhbmdlLCBlcnJvclJhbmdlLCBlcnJvclJhbmdlLCBlcnJv
clJhbmdlXQotICB9Ci0gIHZhciBidWY7Ci0gIGlmIChnbCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCkgewotICAgIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICog
NCk7Ci0gICAgZ2wucmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCBidWYpOwotICB9IGVsc2UgewotICAgIGJ1ZiA9IGdsLmdldEltYWdlRGF0
YSh4LCB5LCB3aWR0aCwgaGVpZ2h0KS5kYXRhOwotICB9Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwg
d2lkdGggKiBoZWlnaHQ7ICsraSkgewotICAgIHZhciBvZmZzZXQgPSBpICogNDsKLSAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7Ci0gICAgICBpZiAoTWF0aC5hYnMo
YnVmW29mZnNldCArIGpdIC0gY29sb3Jbal0pID4gZXJyb3JSYW5nZVtqXSkgewotICAgICAgICBk
aWZmZXJlbnRGbigpOwotICAgICAgICB2YXIgd2FzID0gYnVmW29mZnNldCArIDBdLnRvU3RyaW5n
KCk7Ci0gICAgICAgIGZvciAoaiA9IDE7IGogPCBjb2xvci5sZW5ndGg7ICsraikgewotICAgICAg
ICAgIHdhcyArPSAiLCIgKyBidWZbb2Zmc2V0ICsgal07Ci0gICAgICAgIH0KLSAgICAgICAgbG9n
Rm4oJ2F0ICgnICsgKGkgJSB3aWR0aCkgKyAnLCAnICsgTWF0aC5mbG9vcihpIC8gd2lkdGgpICsK
LSAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6ICcgKyBjb2xvciArICcgd2FzICcgKyB3YXMpOwot
ICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHNhbWVGbigpOwotfTsKLQot
LyoqCi0gKiBDaGVja3MgdGhhdCBhIHBvcnRpb24gb2YgYSBjYW52YXMgaXMgMSBjb2xvci4KLSAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBA
cGFyYW0ge251bWJlcn0geCBsZWZ0IGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFy
YW0ge251bWJlcn0geSBib3R0b20gY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJh
bSB7bnVtYmVyfSB3aWR0aCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCi0gKiBAcGFyYW0ge251
bWJlcn0gaGVpZ2h0IHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KLSAqIEBwYXJhbSB7IUFycmF5
LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZSBkcmF3
aW5nLiBBCi0gKiAgICAgICAgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBp
biB0aGUgcmFuZ2UgMCB0byAyNTUuCi0gKiBAcGFyYW0ge3N0cmluZ30gb3B0X21zZyBNZXNzYWdl
IHRvIGFzc29jaWF0ZSB3aXRoIHN1Y2Nlc3MuIEVnCi0gKiAgICAgICAgKCJzaG91bGQgYmUgcmVk
IikuCi0gKiBAcGFyYW0ge251bWJlcn0gb3B0X2Vycm9yUmFuZ2UgT3B0aW9uYWwuIEFjY2VwdGFi
bGUgZXJyb3IgaW4KLSAqICAgICAgICBjb2xvciBjaGVja2luZy4gMCBieSBkZWZhdWx0LgotICov
Ci12YXIgY2hlY2tDYW52YXNSZWN0ID0gZnVuY3Rpb24oZ2wsIHgsIHksIHdpZHRoLCBoZWlnaHQs
IGNvbG9yLCBvcHRfbXNnLCBvcHRfZXJyb3JSYW5nZSkgewotICB2YXIgbXNnID0gb3B0X21zZzsK
LSAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgbXNnID0gInNob3VsZCBiZSAiICsgY29s
b3IudG9TdHJpbmcoKTsKLSAgfQotICBjaGVja0NhbnZhc1JlY3RDb2xvcigKLSAgICAgIGdsLCB4
LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2Vycm9yUmFuZ2UsCi0gICAgICBmdW5jdGlv
bigpIHsKLSAgICAgICAgdGVzdFBhc3NlZChtc2cpOwotICAgICAgfSwKLSAgICAgIGZ1bmN0aW9u
KCkgewotICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0gICAgICB9LAotICAgICAgZGVidWcpOwot
fTsKLQotLyoqCi0gKiBDaGVja3MgdGhhdCBhbiBlbnRpcmUgY2FudmFzIGlzIDEgY29sb3IuCi0g
KiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICog
QHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIGNsZWFyIHdp
dGggYmVmb3JlIGRyYXdpbmcuIEEKLSAqICAgICAgICA0IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFj
aCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBt
c2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCBzdWNjZXNzLiBFZyAoInNob3VsZCBiZSByZWQi
KS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvclJhbmdlIE9wdGlvbmFsLiBBY2NlcHRhYmxlIGVy
cm9yIGluCi0gKiAgICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVsdC4KLSAqLwotdmFy
IGNoZWNrQ2FudmFzID0gZnVuY3Rpb24oZ2wsIGNvbG9yLCBtc2csIGVycm9yUmFuZ2UpIHsKLSAg
Y2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCBnbC5jYW52YXMud2lkdGgsIGdsLmNhbnZhcy5oZWln
aHQsIGNvbG9yLCBtc2csIGVycm9yUmFuZ2UpOwotfTsKLQotLyoqCi0gKiBMb2FkcyBhIHRleHR1
cmUsIGNhbGxzIGNhbGxiYWNrIHdoZW4gZmluaXNoZWQuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRl
eHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJpbmd9IHVybCBV
Ukwgb2YgaW1hZ2UgdG8gbG9hZAotICogQHBhcmFtIHtmdW5jdGlvbighSW1hZ2UpOiB2b2lkfSBj
YWxsYmFjayBGdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGFmdGVyCi0gKiAgICAgICAgaW1hZ2Ug
aGFzIGxvYWRlZAotICogQHJldHVybiB7IVdlYkdMVGV4dHVyZX0gVGhlIGNyZWF0ZWQgdGV4dHVy
ZS4KLSAqLwotdmFyIGxvYWRUZXh0dXJlID0gZnVuY3Rpb24oZ2wsIHVybCwgY2FsbGJhY2spIHsK
LSAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1Qp
OwotICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpOwotICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0
aW9uKCkgewotICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsK
LSAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7Ci0g
ICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgaW1hZ2UpOwotICAgICAgICBjYWxsYmFjayhpbWFnZSk7Ci0gICAg
fTsKLSAgICBpbWFnZS5zcmMgPSB1cmw7Ci0gICAgcmV0dXJuIHRleHR1cmU7Ci19OwotCi0vKioK
LSAqIE1ha2VzIGEgc2hhbGxvdyBjb3B5IG9mIGFuIG9iamVjdC4KLSAqIEBwYXJhbSB7IU9iamVj
dCkgc3JjIE9iamVjdCB0byBjb3B5Ci0gKiBAcmV0dXJuIHshT2JqZWN0fSBUaGUgY29weSBvZiBz
cmMuCi0gKi8KLXZhciBzaGFsbG93Q29weU9iamVjdCA9IGZ1bmN0aW9uKHNyYykgewotICB2YXIg
ZHN0ID0ge307Ci0gIGZvciAodmFyIGF0dHIgaW4gc3JjKSB7Ci0gICAgaWYgKHNyYy5oYXNPd25Q
cm9wZXJ0eShhdHRyKSkgewotICAgICAgZHN0W2F0dHJdID0gc3JjW2F0dHJdOwotICAgIH0KLSAg
fQotICByZXR1cm4gZHN0OwotfTsKLQotLyoqCi0gKiBDaGVja3MgaWYgYW4gYXR0cmlidXRlIGV4
aXN0cyBvbiBhbiBvYmplY3QgY2FzZSBpbnNlbnNpdGl2ZS4KLSAqIEBwYXJhbSB7IU9iamVjdCkg
b2JqIE9iamVjdCB0byBjaGVjawotICogQHBhcmFtIHtzdHJpbmd9IGF0dHIgTmFtZSBvZiBhdHRy
aWJ1dGUgdG8gbG9vayBmb3IuCi0gKiBAcmV0dXJuIHtzdHJpbmc/fSBUaGUgbmFtZSBvZiB0aGUg
YXR0cmlidXRlIGlmIGl0IGV4aXN0cywKLSAqICAgICAgICAgdW5kZWZpbmVkIGlmIG5vdC4KLSAq
LwotdmFyIGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSA9IGZ1bmN0aW9uKG9iaiwgYXR0cikg
ewotICB2YXIgbG93ZXIgPSBhdHRyLnRvTG93ZXJDYXNlKCk7Ci0gIGZvciAodmFyIGtleSBpbiBv
YmopIHsKLSAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5LnRvTG93ZXJDYXNl
KCkgPT0gbG93ZXIpIHsKLSAgICAgIHJldHVybiBrZXk7Ci0gICAgfQotICB9Ci19OwotCi0vKioK
LSAqIENyZWF0ZXMgYSB3ZWJnbCBjb250ZXh0LgotICogQHBhcmFtIHshQ2FudmFzfHN0cmluZ30g
b3B0X2NhbnZhcyBUaGUgY2FudmFzIHRhZyB0byBnZXQKLSAqICAgICBjb250ZXh0IGZyb20uIElm
IG9uZSBpcyBub3QgcGFzc2VkIGluIG9uZSB3aWxsIGJlCi0gKiAgICAgY3JlYXRlZC4gSWYgaXQn
cyBhIHN0cmluZyBpdCdzIGFzc3VtZWQgdG8gYmUgdGhlIGlkIG9mIGEKLSAqICAgICBjYW52YXMu
Ci0gKiBAcmV0dXJuIHshV2ViR0xDb250ZXh0fSBUaGUgY3JlYXRlZCBjb250ZXh0LgotICovCi12
YXIgY3JlYXRlM0RDb250ZXh0ID0gZnVuY3Rpb24ob3B0X2NhbnZhcywgb3B0X2F0dHJpYnV0ZXMp
IHsKLSAgaWYgKHdpbmRvdy5pbml0VGVzdGluZ0hhcm5lc3MpIHsKLSAgICB3aW5kb3cuaW5pdFRl
c3RpbmdIYXJuZXNzKCk7Ci0gIH0KLSAgdmFyIGF0dHJpYnV0ZXMgPSBzaGFsbG93Q29weU9iamVj
dChvcHRfYXR0cmlidXRlcyB8fCB7fSk7Ci0gIGlmICghaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0
aXZlKGF0dHJpYnV0ZXMsICJhbnRpYWxpYXMiKSkgewotICAgIGF0dHJpYnV0ZXMuYW50aWFsaWFz
ID0gZmFsc2U7Ci0gIH0KLQotICBvcHRfY2FudmFzID0gb3B0X2NhbnZhcyB8fCBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgaWYgKHR5cGVvZiBvcHRfY2FudmFzID09ICdzdHJp
bmcnKSB7Ci0gICAgb3B0X2NhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdF9jYW52
YXMpOwotICB9Ci0gIHZhciBjb250ZXh0ID0gbnVsbDsKLSAgdmFyIG5hbWVzID0gWyJ3ZWJnbCIs
ICJleHBlcmltZW50YWwtd2ViZ2wiXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5n
dGg7ICsraSkgewotICAgIHRyeSB7Ci0gICAgICBjb250ZXh0ID0gb3B0X2NhbnZhcy5nZXRDb250
ZXh0KG5hbWVzW2ldLCBhdHRyaWJ1dGVzKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgfQotICAg
IGlmIChjb250ZXh0KSB7Ci0gICAgICBicmVhazsKLSAgICB9Ci0gIH0KLSAgaWYgKCFjb250ZXh0
KSB7Ci0gICAgdGVzdEZhaWxlZCgiVW5hYmxlIHRvIGZldGNoIFdlYkdMIHJlbmRlcmluZyBjb250
ZXh0IGZvciBDYW52YXMiKTsKLSAgfQotICByZXR1cm4gY29udGV4dDsKLX0KLQotLyoqCi0gKiBH
ZXRzIGEgR0xFcnJvciB2YWx1ZSBhcyBhIHN0cmluZy4KLSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4
dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge251bWJlcn0gZXJyIFRo
ZSB3ZWJnbCBlcnJvciBhcyByZXRyaWV2ZWQgZnJvbSBnbC5nZXRFcnJvcigpLgotICogQHJldHVy
biB7c3RyaW5nfSB0aGUgZXJyb3IgYXMgYSBzdHJpbmcuCi0gKi8KLXZhciBnZXRHTEVycm9yQXNT
dHJpbmcgPSBmdW5jdGlvbihnbCwgZXJyKSB7Ci0gIGlmIChlcnIgPT09IGdsLk5PX0VSUk9SKSB7
Ci0gICAgcmV0dXJuICJOT19FUlJPUiI7Ci0gIH0KLSAgZm9yICh2YXIgbmFtZSBpbiBnbCkgewot
ICAgIGlmIChnbFtuYW1lXSA9PT0gZXJyKSB7Ci0gICAgICByZXR1cm4gbmFtZTsKLSAgICB9Ci0g
IH0KLSAgcmV0dXJuIGVyci50b1N0cmluZygpOwotfTsKLQotLyoqCi0gKiBXcmFwcyBhIFdlYkdM
IGZ1bmN0aW9uIHdpdGggYSBmdW5jdGlvbiB0aGF0IHRocm93cyBhbiBleGNlcHRpb24gaWYgdGhl
cmUgaXMKLSAqIGFuIGVycm9yLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2Vi
R0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBmbmFtZSBOYW1lIG9mIGZ1bmN0
aW9uIHRvIHdyYXAuCi0gKiBAcmV0dXJuIHtmdW5jdGlvbn0gVGhlIHdyYXBwZWQgZnVuY3Rpb24u
Ci0gKi8KLXZhciBjcmVhdGVHTEVycm9yV3JhcHBlciA9IGZ1bmN0aW9uKGNvbnRleHQsIGZuYW1l
KSB7Ci0gIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICB2YXIgcnYgPSBjb250ZXh0W2ZuYW1lXS5h
cHBseShjb250ZXh0LCBhcmd1bWVudHMpOwotICAgIHZhciBlcnIgPSBjb250ZXh0LmdldEVycm9y
KCk7Ci0gICAgaWYgKGVyciAhPSBjb250ZXh0Lk5PX0VSUk9SKQotICAgICAgdGhyb3cgIkdMIGVy
cm9yICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoY29udGV4dCwgZXJyKSArICIgaW4gIiArIGZuYW1l
OwotICAgIHJldHVybiBydjsKLSAgfTsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIFdlYkdMIGNv
bnRleHQgd2hlcmUgYWxsIGZ1bmN0aW9ucyBhcmUgd3JhcHBlZCB0byB0aHJvdyBhbiBleGNlcHRp
b24KLSAqIGlmIHRoZXJlIGlzIGFuIGVycm9yLgotICogQHBhcmFtIHshQ2FudmFzfSBjYW52YXMg
VGhlIEhUTUwgY2FudmFzIHRvIGdldCBhIGNvbnRleHQgZnJvbS4KLSAqIEByZXR1cm4geyFPYmpl
Y3R9IFRoZSB3cmFwcGVkIGNvbnRleHQuCi0gKi8KLWZ1bmN0aW9uIGNyZWF0ZTNEQ29udGV4dFdp
dGhXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvcihjYW52YXMpIHsKLSAgdmFyIGNvbnRleHQgPSBj
cmVhdGUzRENvbnRleHQoY2FudmFzKTsKLSAgdmFyIHdyYXAgPSB7fTsKLSAgZm9yICh2YXIgaSBp
biBjb250ZXh0KSB7Ci0gICAgdHJ5IHsKLSAgICAgIGlmICh0eXBlb2YgY29udGV4dFtpXSA9PSAn
ZnVuY3Rpb24nKSB7Ci0gICAgICAgIHdyYXBbaV0gPSBjcmVhdGVHTEVycm9yV3JhcHBlcihjb250
ZXh0LCBpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHdyYXBbaV0gPSBjb250ZXh0W2ldOwot
ICAgICAgfQotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIGVycm9yKCJjcmVhdGVDb250ZXh0V3Jh
cHBlclRoYXRUaHJvd3NPbkdMRXJyb3I6IEVycm9yIGFjY2Vzc2luZyAiICsgaSk7Ci0gICAgfQot
ICB9Ci0gIHdyYXAuZ2V0RXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiBjb250ZXh0
LmdldEVycm9yKCk7Ci0gIH07Ci0gIHJldHVybiB3cmFwOwotfTsKLQotLyoqCi0gKiBUZXN0cyB0
aGF0IGFuIGV2YWx1YXRlZCBleHByZXNzaW9uIGdlbmVyYXRlcyBhIHNwZWNpZmljIEdMIGVycm9y
LgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4K
LSAqIEBwYXJhbSB7bnVtYmVyfSBnbEVycm9yIFRoZSBleHBlY3RlZCBnbCBlcnJvci4KLSAqIEBw
YXJhbSB7c3RyaW5nfSBldmFsU1RyIFRoZSBzdHJpbmcgdG8gZXZhbHVhdGUuCi0gKi8KLXZhciBz
aG91bGRHZW5lcmF0ZUdMRXJyb3IgPSBmdW5jdGlvbihnbCwgZ2xFcnJvciwgZXZhbFN0cikgewot
ICB2YXIgZXhjZXB0aW9uOwotICB0cnkgewotICAgIGV2YWwoZXZhbFN0cik7Ci0gIH0gY2F0Y2gg
KGUpIHsKLSAgICBleGNlcHRpb24gPSBlOwotICB9Ci0gIGlmIChleGNlcHRpb24pIHsKLSAgICB0
ZXN0RmFpbGVkKGV2YWxTdHIgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAg
fSBlbHNlIHsKLSAgICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKLSAgICBpZiAoZXJyICE9IGds
RXJyb3IpIHsKLSAgICAgIHRlc3RGYWlsZWQoZXZhbFN0ciArICIgZXhwZWN0ZWQ6ICIgKyBnZXRH
TEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIi4gV2FzICIgKyBnZXRHTEVycm9yQXNTdHJp
bmcoZ2wsIGVycikgKyAiLiIpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0ZXN0UGFzc2VkKGV2YWxT
dHIgKyAiIHdhcyBleHBlY3RlZCB2YWx1ZTogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xF
cnJvcikgKyAiLiIpOwotICAgIH0KLSAgfQotfTsKLQotLyoqCi0gKiBUZXN0cyB0aGF0IHRoZSBm
aXJzdCBlcnJvciBHTCByZXR1cm5zIGlzIHRoZSBzcGVjaWZpZWQgZXJyb3IuCi0gKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtu
dW1iZXJ9IGdsRXJyb3IgVGhlIGV4cGVjdGVkIGdsIGVycm9yLgotICogQHBhcmFtIHtzdHJpbmd9
IG9wdF9tc2cKLSAqLwotdmFyIGdsRXJyb3JTaG91bGRCZSA9IGZ1bmN0aW9uKGdsLCBnbEVycm9y
LCBvcHRfbXNnKSB7Ci0gIG9wdF9tc2cgPSBvcHRfbXNnIHx8ICIiOwotICB2YXIgZXJyID0gZ2wu
Z2V0RXJyb3IoKTsKLSAgaWYgKGVyciAhPSBnbEVycm9yKSB7Ci0gICAgdGVzdEZhaWxlZCgiZ2V0
RXJyb3IgZXhwZWN0ZWQ6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsKLSAg
ICAgICAgICAgICAgICIuIFdhcyAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsgIiA6
ICIgKyBvcHRfbXNnKTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0UGFzc2VkKCJnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6ICIgKwotICAgICAgICAgICAgICAgIGdldEdMRXJyb3JBc1N0cmluZyhn
bCwgZ2xFcnJvcikgKyAiIDogIiArIG9wdF9tc2cpOwotICB9Ci19OwotCi0vKioKLSAqIExpbmtz
IGEgV2ViR0wgcHJvZ3JhbSwgdGhyb3dzIGlmIHRoZXJlIGFyZSBlcnJvcnMuCi0gKiBAcGFyYW0g
eyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHsh
V2ViR0xQcm9ncmFtfSBwcm9ncmFtIFRoZSBXZWJHTFByb2dyYW0gdG8gbGluay4KLSAqIEBwYXJh
bSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9y
IGVycm9ycy4gCi0gKi8KLXZhciBsaW5rUHJvZ3JhbSA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtLCBv
cHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIgZXJyRm4gPSBvcHRfZXJyb3JDYWxsYmFjayB8fCB0
ZXN0RmFpbGVkOwotICAvLyBMaW5rIHRoZSBwcm9ncmFtCi0gIGdsLmxpbmtQcm9ncmFtKHByb2dy
YW0pOwotCi0gIC8vIENoZWNrIHRoZSBsaW5rIHN0YXR1cwotICB2YXIgbGlua2VkID0gZ2wuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyk7Ci0gIGlmICghbGlua2Vk
KSB7Ci0gICAgLy8gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgbGluawotICAgIHZhciBl
cnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChwcm9ncmFtKTsKLQotICAgIGVyckZuKCJFcnJv
ciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGVycm9yKTsKLQotICAgIGdsLmRlbGV0ZVByb2dyYW0o
cHJvZ3JhbSk7Ci0gIH0KLX07Ci0KLS8qKgotICogTG9hZHMgdGV4dCBmcm9tIGFuIGV4dGVybmFs
IGZpbGUuIFRoaXMgZnVuY3Rpb24gaXMgc3luY2hyb25vdXMuCi0gKiBAcGFyYW0ge3N0cmluZ30g
dXJsIFRoZSB1cmwgb2YgdGhlIGV4dGVybmFsIGZpbGUuCi0gKiBAcGFyYW0geyFmdW5jdGlvbihi
b29sLCBzdHJpbmcpOiB2b2lkfSBjYWxsYmFjayB0aGF0IGlzIHNlbnQgYSBib29sIGZvcgotICog
ICAgIHN1Y2Nlc3MgYW5kIHRoZSBzdHJpbmcuCi0gKi8KLXZhciBsb2FkVGV4dEZpbGVBc3luYyA9
IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKLSAgbG9nICgibG9hZGluZzogIiArIHVybCk7Ci0g
IHZhciBlcnJvciA9ICdsb2FkVGV4dEZpbGVTeW5jaHJvbm91cyBmYWlsZWQgdG8gbG9hZCB1cmwg
IicgKyB1cmwgKyAnIic7Ci0gIHZhciByZXF1ZXN0OwotICBpZiAod2luZG93LlhNTEh0dHBSZXF1
ZXN0KSB7Ci0gICAgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIGlmIChyZXF1
ZXN0Lm92ZXJyaWRlTWltZVR5cGUpIHsKLSAgICAgIHJlcXVlc3Qub3ZlcnJpZGVNaW1lVHlwZSgn
dGV4dC9wbGFpbicpOwotICAgIH0KLSAgfSBlbHNlIHsKLSAgICB0aHJvdyAnWE1MSHR0cFJlcXVl
c3QgaXMgZGlzYWJsZWQnOwotICB9Ci0gIHRyeSB7Ci0gICAgcmVxdWVzdC5vcGVuKCdHRVQnLCB1
cmwsIHRydWUpOwotICAgIHJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7
Ci0gICAgICBpZiAocmVxdWVzdC5yZWFkeVN0YXRlID09IDQpIHsKLSAgICAgICAgdmFyIHRleHQg
PSAnJzsKLSAgICAgICAgLy8gSFRUUCByZXBvcnRzIHN1Y2Nlc3Mgd2l0aCBhIDIwMCBzdGF0dXMu
IFRoZSBmaWxlIHByb3RvY29sIHJlcG9ydHMKLSAgICAgICAgLy8gc3VjY2VzcyB3aXRoIHplcm8u
IEhUVFAgZG9lcyBub3QgdXNlIHplcm8gYXMgYSBzdGF0dXMgY29kZSAodGhleQotICAgICAgICAv
LyBzdGFydCBhdCAxMDApLgotICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9y
Zy9Fbi9Vc2luZ19YTUxIdHRwUmVxdWVzdAotICAgICAgICB2YXIgc3VjY2VzcyA9IHJlcXVlc3Qu
c3RhdHVzID09IDIwMCB8fCByZXF1ZXN0LnN0YXR1cyA9PSAwOwotICAgICAgICBpZiAoc3VjY2Vz
cykgewotICAgICAgICAgIHRleHQgPSByZXF1ZXN0LnJlc3BvbnNlVGV4dDsKLSAgICAgICAgfQot
ICAgICAgICBsb2coImxvYWRlZDogIiArIHVybCk7Ci0gICAgICAgIGNhbGxiYWNrKHN1Y2Nlc3Ms
IHRleHQpOwotICAgICAgfQotICAgIH07Ci0gICAgcmVxdWVzdC5zZW5kKG51bGwpOwotICB9IGNh
dGNoIChlKSB7Ci0gICAgbG9nKCJmYWlsZWQgdG8gbG9hZDogIiArIHVybCk7Ci0gICAgY2FsbGJh
Y2soZmFsc2UsICcnKTsKLSAgfQotfTsKLQotLyoqCi0gKiBSZWN1cnNpdmVseSBsb2FkcyBhIGZp
bGUgYXMgYSBsaXN0LiBFYWNoIGxpbmUgaXMgcGFyc2VkIGZvciBhIHJlbGF0aXZlCi0gKiBwYXRo
LiBJZiB0aGUgZmlsZSBlbmRzIGluIC50eHQgdGhlIGNvbnRlbnRzIG9mIHRoYXQgZmlsZSBpcyBp
bnNlcnRlZCBpbgotICogdGhlIGxpc3QuCi0gKgotICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUg
dXJsIG9mIHRoZSBleHRlcm5hbCBmaWxlLgotICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgQXJy
YXk8c3RyaW5nPik6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2VudCBhIGJvb2wKLSAqICAgICBm
b3Igc3VjY2VzcyBhbmQgdGhlIGFycmF5IG9mIHN0cmluZ3MuCi0gKi8KLXZhciBnZXRGaWxlTGlz
dEFzeW5jID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewotICB2YXIgZmlsZXMgPSBbXTsKLQot
ICB2YXIgZ2V0RmlsZUxpc3RJbXBsID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewotICAgIHZh
ciBmaWxlcyA9IFtdOwotICAgIGlmICh1cmwuc3Vic3RyKHVybC5sZW5ndGggLSA0KSA9PSAnLnR4
dCcpIHsKLSAgICAgIGxvYWRUZXh0RmlsZUFzeW5jKHVybCwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCB0ZXh0KSB7Ci0gICAgICAgICAgaWYgKCFzdWNjZXNz
KSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgJycpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOwot
ICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAgICAgICAgICB2YXIgbGFzdFNsYXNoID0gdXJs
Lmxhc3RJbmRleE9mKCcvJyk7Ci0gICAgICAgICAgaWYgKGxhc3RTbGFzaCA+PSAwKSB7Ci0gICAg
ICAgICAgICBwcmVmaXggPSB1cmwuc3Vic3RyKDAsIGxhc3RTbGFzaCArIDEpOwotICAgICAgICAg
IH0KLSAgICAgICAgICB2YXIgZmFpbCA9IGZhbHNlOwotICAgICAgICAgIHZhciBjb3VudCA9IDE7
Ci0gICAgICAgICAgdmFyIGluZGV4ID0gMDsKLSAgICAgICAgICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgbGluZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgICAgICB2YXIgc3RyID0gbGluZXNbaWld
LnJlcGxhY2UoL15cc1xzKi8sICcnKS5yZXBsYWNlKC9cc1xzKiQvLCAnJyk7Ci0gICAgICAgICAg
ICBpZiAoc3RyLmxlbmd0aCA+IDQgJiYKLSAgICAgICAgICAgICAgICBzdHJbMF0gIT0gJyMnICYm
Ci0gICAgICAgICAgICAgICAgc3RyWzBdICE9ICI7IiAmJgotICAgICAgICAgICAgICAgIHN0ci5z
dWJzdHIoMCwgMikgIT0gIi8vIikgewotICAgICAgICAgICAgICB2YXIgbmFtZXMgPSBzdHIuc3Bs
aXQoLyArLyk7Ci0gICAgICAgICAgICAgIG5ld191cmwgPSBwcmVmaXggKyBzdHI7Ci0gICAgICAg
ICAgICAgIGlmIChuYW1lcy5sZW5ndGggPT0gMSkgewotICAgICAgICAgICAgICAgIG5ld191cmwg
PSBwcmVmaXggKyBzdHI7Ci0gICAgICAgICAgICAgICAgKytjb3VudDsKLSAgICAgICAgICAgICAg
ICBnZXRGaWxlTGlzdEltcGwobmV3X3VybCwgZnVuY3Rpb24oaW5kZXgpIHsKLSAgICAgICAgICAg
ICAgICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCBuZXdfZmlsZXMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbG9nKCJnb3QgZmlsZXM6ICIgKyBuZXdfZmlsZXMubGVuZ3RoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICBmaWxlc1tp
bmRleF0gPSBuZXdfZmlsZXM7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgZmluaXNoKHN1Y2Nlc3MpOwotICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAg
ICAgICB9KGluZGV4KyspKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICB2YXIgcyA9ICIiOwotICAgICAgICAgICAgICAgIHZhciBwID0gIiI7Ci0gICAgICAgICAgICAg
ICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG5hbWVzLmxlbmd0aDsgKytqaikgewotICAgICAgICAg
ICAgICAgICAgcyArPSBwICsgcHJlZml4ICsgbmFtZXNbampdOwotICAgICAgICAgICAgICAgICAg
cCA9ICIgIjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZmlsZXNbaW5kZXgr
K10gPSBzOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICAgIGZpbmlzaCh0cnVlKTsKLQotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChzdWNjZXNz
KSB7Ci0gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgICAgICAgZmFpbCA9IHRy
dWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAtLWNvdW50OwotICAgICAgICAgICAgbG9n
KCJjb3VudDogIiArIGNvdW50KTsKLSAgICAgICAgICAgIGlmICghY291bnQpIHsKLSAgICAgICAg
ICAgICAgY2FsbGJhY2soIWZhaWwsIGZpbGVzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgIH0oKSk7Ci0KLSAgICB9IGVsc2UgewotICAgICAgZmlsZXMucHVz
aCh1cmwpOwotICAgICAgY2FsbGJhY2sodHJ1ZSwgZmlsZXMpOwotICAgIH0KLSAgfTsKLQotICBn
ZXRGaWxlTGlzdEltcGwodXJsLCBmdW5jdGlvbihzdWNjZXNzLCBmaWxlcykgewotICAgIC8vIGZs
YXR0ZW4KLSAgICB2YXIgZmxhdCA9IFtdOwotICAgIGZsYXR0ZW4oZmlsZXMpOwotICAgIGZ1bmN0
aW9uIGZsYXR0ZW4oZmlsZXMpIHsKLSAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBmaWxlcy5s
ZW5ndGg7ICsraWkpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gZmlsZXNbaWldOwotICAgICAgICBp
ZiAodHlwZW9mKHZhbHVlKSA9PSAic3RyaW5nIikgewotICAgICAgICAgIGZsYXQucHVzaCh2YWx1
ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgZmxhdHRlbih2YWx1ZSk7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICB9Ci0gICAgY2FsbGJhY2soc3VjY2VzcywgZmxhdCk7Ci0gIH0pOwot
fTsKLQotLyoqCi0gKiBHZXRzIGEgZmlsZSBmcm9tIGEgZmlsZS9VUkwKLSAqIEBwYXJhbSB7c3Ry
aW5nfSBmaWxlIHRoZSBVUkwgb2YgdGhlIGZpbGUgdG8gZ2V0LgotICogQHJldHVybiB7c3RyaW5n
fSBUaGUgY29udGVudHMgb2YgdGhlIGZpbGUuCi0gKi8KLXZhciByZWFkRmlsZSA9IGZ1bmN0aW9u
KGZpbGUpIHsKLSAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICB4aHIub3Blbigi
R0VUIiwgZmlsZSwgZmFsc2UpOwotICB4aHIuc2VuZCgpOwotICByZXR1cm4geGhyLnJlc3BvbnNl
VGV4dC5yZXBsYWNlKC9cci9nLCAiIik7Ci19OwotCi12YXIgcmVhZEZpbGVMaXN0ID0gZnVuY3Rp
b24odXJsKSB7Ci0gIHZhciBmaWxlcyA9IFtdOwotICBpZiAodXJsLnN1YnN0cih1cmwubGVuZ3Ro
IC0gNCkgPT0gJy50eHQnKSB7Ci0gICAgdmFyIGxpbmVzID0gcmVhZEZpbGUodXJsKS5zcGxpdCgn
XG4nKTsKLSAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0
SW5kZXhPZignLycpOwotICAgIGlmIChsYXN0U2xhc2ggPj0gMCkgewotICAgICAgcHJlZml4ID0g
dXJsLnN1YnN0cigwLCBsYXN0U2xhc2ggKyAxKTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IGxpbmVzLmxlbmd0aDsgKytpaSkgewotICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5y
ZXBsYWNlKC9eXHNccyovLCAnJykucmVwbGFjZSgvXHNccyokLywgJycpOwotICAgICAgaWYgKHN0
ci5sZW5ndGggPiA0ICYmCi0gICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgotICAgICAgICAgIHN0
clswXSAhPSAiOyIgJiYKLSAgICAgICAgICBzdHIuc3Vic3RyKDAsIDIpICE9ICIvLyIpIHsKLSAg
ICAgICAgdmFyIG5hbWVzID0gc3RyLnNwbGl0KC8gKy8pOwotICAgICAgICBpZiAobmFtZXMubGVu
Z3RoID09IDEpIHsKLSAgICAgICAgICBuZXdfdXJsID0gcHJlZml4ICsgc3RyOwotICAgICAgICAg
IGZpbGVzID0gZmlsZXMuY29uY2F0KHJlYWRGaWxlTGlzdChuZXdfdXJsKSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgdmFyIHMgPSAiIjsKLSAgICAgICAgICB2YXIgcCA9ICIiOwotICAg
ICAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCBuYW1lcy5sZW5ndGg7ICsramopIHsKLSAgICAg
ICAgICAgIHMgKz0gcCArIHByZWZpeCArIG5hbWVzW2pqXTsKLSAgICAgICAgICAgIHAgPSAiICI7
Ci0gICAgICAgICAgfQotICAgICAgICAgIGZpbGVzLnB1c2gocyk7Ci0gICAgICAgIH0KLSAgICAg
IH0KLSAgICB9Ci0gIH0gZWxzZSB7Ci0gICAgZmlsZXMucHVzaCh1cmwpOwotICB9Ci0gIHJldHVy
biBmaWxlczsKLX07Ci0KLS8qKgotICogTG9hZHMgYSBzaGFkZXIuCi0gKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtzdHJpbmd9
IHNoYWRlclNvdXJjZSBUaGUgc2hhZGVyIHNvdXJjZS4KLSAqIEBwYXJhbSB7bnVtYmVyfSBzaGFk
ZXJUeXBlIFRoZSB0eXBlIG9mIHNoYWRlci4gCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6
IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAotICogQHJldHVy
biB7IVdlYkdMU2hhZGVyfSBUaGUgY3JlYXRlZCBzaGFkZXIuCi0gKi8KLXZhciBsb2FkU2hhZGVy
ID0gZnVuY3Rpb24oZ2wsIHNoYWRlclNvdXJjZSwgc2hhZGVyVHlwZSwgb3B0X2Vycm9yQ2FsbGJh
Y2spIHsKLSAgdmFyIGVyckZuID0gb3B0X2Vycm9yQ2FsbGJhY2sgfHwgZXJyb3I7Ci0gIC8vIENy
ZWF0ZSB0aGUgc2hhZGVyIG9iamVjdAotICB2YXIgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKHNo
YWRlclR5cGUpOwotICBpZiAoc2hhZGVyID09IG51bGwpIHsKLSAgICBlcnJGbigiKioqIEVycm9y
OiB1bmFibGUgdG8gY3JlYXRlIHNoYWRlciAnIitzaGFkZXJTb3VyY2UrIiciKTsKLSAgICByZXR1
cm4gbnVsbDsKLSAgfQotCi0gIC8vIExvYWQgdGhlIHNoYWRlciBzb3VyY2UKLSAgZ2wuc2hhZGVy
U291cmNlKHNoYWRlciwgc2hhZGVyU291cmNlKTsKLSAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7
Ci0gIGlmIChlcnIgIT0gZ2wuTk9fRVJST1IpIHsKLSAgICBlcnJGbigiKioqIEVycm9yIGxvYWRp
bmcgc2hhZGVyICciICsgc2hhZGVyICsgIic6IiArIGdsRW51bVRvU3RyaW5nKGdsLCBlcnIpKTsK
LSAgICByZXR1cm4gbnVsbDsKLSAgfQotCi0gIC8vIENvbXBpbGUgdGhlIHNoYWRlcgotICBnbC5j
b21waWxlU2hhZGVyKHNoYWRlcik7Ci0KLSAgLy8gQ2hlY2sgdGhlIGNvbXBpbGUgc3RhdHVzCi0g
IHZhciBjb21waWxlZCA9IGdsLmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIGdsLkNPTVBJTEVf
U1RBVFVTKTsKLSAgaWYgKCFjb21waWxlZCkgewotICAgIC8vIFNvbWV0aGluZyB3ZW50IHdyb25n
IGR1cmluZyBjb21waWxhdGlvbjsgZ2V0IHRoZSBlcnJvcgotICAgIGxhc3RFcnJvciA9IGdsLmdl
dFNoYWRlckluZm9Mb2coc2hhZGVyKTsKLSAgICBlcnJGbigiKioqIEVycm9yIGNvbXBpbGluZyAi
ICsgZ2xFbnVtVG9TdHJpbmcoZ2wsIHNoYWRlclR5cGUpICsgIiAnIiArIHNoYWRlciArICInOiIg
KyBsYXN0RXJyb3IpOwotICAgIGdsLmRlbGV0ZVNoYWRlcihzaGFkZXIpOwotICAgIHJldHVybiBu
dWxsOwotICB9Ci0KLSAgcmV0dXJuIHNoYWRlcjsKLX0KLQotLyoqCi0gKiBMb2FkcyBhIHNoYWRl
ciBmcm9tIGEgVVJMLgotICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7ZmlsZX0gZmlsZSBUaGUgVVJMIG9mIHRoZSBzaGFkZXIg
c291cmNlLgotICogQHBhcmFtIHtudW1iZXJ9IHR5cGUgVGhlIHR5cGUgb2Ygc2hhZGVyLgotICog
QHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFj
ayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0gVGhlIGNyZWF0ZWQgc2hh
ZGVyLgotICovCi12YXIgbG9hZFNoYWRlckZyb21GaWxlID0gZnVuY3Rpb24oZ2wsIGZpbGUsIHR5
cGUsIG9wdF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBzaGFkZXJTb3VyY2UgPSByZWFkRmlsZShm
aWxlKTsKLSAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNoYWRlclNvdXJjZSwgdHlwZSwgb3B0X2Vy
cm9yQ2FsbGJhY2spOwotfTsKLQotLyoqCi0gKiBHZXRzIHRoZSBjb250ZW50IG9mIHNjcmlwdC4K
LSAqLwotdmFyIGdldFNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkKSB7Ci0gIHZhciBzaGFkZXJT
Y3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JpcHRJZCk7Ci0gIGlmICghc2hhZGVy
U2NyaXB0KSB7Ci0gICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93biBzY3JpcHQgZWxlbWVudCIg
KyBzY3JpcHRJZCk7Ci0gIH0KLSAgcmV0dXJuIHNoYWRlclNjcmlwdC50ZXh0OwotfTsKLQotLyoq
Ci0gKiBMb2FkcyBhIHNoYWRlciBmcm9tIGEgc2NyaXB0IHRhZy4KLSAqIEBwYXJhbSB7IVdlYkdM
Q29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0gKiBAcGFyYW0ge3N0cmluZ30g
c2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnLgotICogQHBhcmFtIHtudW1iZXJ9IG9w
dF9zaGFkZXJUeXBlIFRoZSB0eXBlIG9mIHNoYWRlci4gSWYgbm90IHBhc3NlZCBpbiBpdCB3aWxs
Ci0gKiAgICAgYmUgZGVyaXZlZCBmcm9tIHRoZSB0eXBlIG9mIHRoZSBzY3JpcHQgdGFnLgotICog
QHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFj
ayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0gVGhlIGNyZWF0ZWQgc2hh
ZGVyLgotICovCi12YXIgbG9hZFNoYWRlckZyb21TY3JpcHQgPSBmdW5jdGlvbigKLSAgICBnbCwg
c2NyaXB0SWQsIG9wdF9zaGFkZXJUeXBlLCBvcHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIgc2hh
ZGVyU291cmNlID0gIiI7Ci0gIHZhciBzaGFkZXJUeXBlOwotICB2YXIgc2hhZGVyU2NyaXB0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0SWQpOwotICBpZiAoIXNoYWRlclNjcmlwdCkg
ewotICAgIHRocm93KCIqKiogRXJyb3I6IHVua25vd24gc2NyaXB0IGVsZW1lbnQgIiArIHNjcmlw
dElkKTsKLSAgfQotICBzaGFkZXJTb3VyY2UgPSBzaGFkZXJTY3JpcHQudGV4dDsKLQotICBpZiAo
IW9wdF9zaGFkZXJUeXBlKSB7Ci0gICAgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRl
ci94LXZlcnRleCIpIHsKLSAgICAgIHNoYWRlclR5cGUgPSBnbC5WRVJURVhfU0hBREVSOwotICAg
IH0gZWxzZSBpZiAoc2hhZGVyU2NyaXB0LnR5cGUgPT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKSB7
Ci0gICAgICBzaGFkZXJUeXBlID0gZ2wuRlJBR01FTlRfU0hBREVSOwotICAgIH0gZWxzZSBpZiAo
c2hhZGVyVHlwZSAhPSBnbC5WRVJURVhfU0hBREVSICYmIHNoYWRlclR5cGUgIT0gZ2wuRlJBR01F
TlRfU0hBREVSKSB7Ci0gICAgICB0aHJvdygiKioqIEVycm9yOiB1bmtub3duIHNoYWRlciB0eXBl
Iik7Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gbG9hZFNoYWRl
cigKLSAgICAgIGdsLCBzaGFkZXJTb3VyY2UsIG9wdF9zaGFkZXJUeXBlID8gb3B0X3NoYWRlclR5
cGUgOiBzaGFkZXJUeXBlLAotICAgICAgb3B0X2Vycm9yQ2FsbGJhY2spOwotfTsKLQotdmFyIGxv
YWRTdGFuZGFyZFByb2dyYW0gPSBmdW5jdGlvbihnbCkgewotICB2YXIgcHJvZ3JhbSA9IGdsLmNy
ZWF0ZVByb2dyYW0oKTsKLSAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFyZFZl
cnRleFNoYWRlcihnbCkpOwotICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgbG9hZFN0YW5kYXJk
RnJhZ21lbnRTaGFkZXIoZ2wpKTsKLSAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0pOwotICByZXR1
cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMgc2hhZGVycyBmcm9tIGZpbGVzLCBjcmVh
dGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kIGxpbmtzLgotICogQHBhcmFt
IHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7
c3RyaW5nfSB2ZXJ0ZXhTaGFkZXJQYXRoIFRoZSBVUkwgb2YgdGhlIHZlcnRleCBzaGFkZXIuCi0g
KiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTaGFkZXJQYXRoIFRoZSBVUkwgb2YgdGhlIGZyYWdt
ZW50IHNoYWRlci4KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9y
Q2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCi0gKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFt
fSBUaGUgY3JlYXRlZCBwcm9ncmFtLgotICovCi12YXIgbG9hZFByb2dyYW1Gcm9tRmlsZSA9IGZ1
bmN0aW9uKAotICAgIGdsLCB2ZXJ0ZXhTaGFkZXJQYXRoLCBmcmFnbWVudFNoYWRlclBhdGgsIG9w
dF9lcnJvckNhbGxiYWNrKSB7Ci0gIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwot
ICB2YXIgdnMgPSBsb2FkU2hhZGVyRnJvbUZpbGUoCi0gICAgICBnbCwgdmVydGV4U2hhZGVyUGF0
aCwgZ2wuVkVSVEVYX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spOwotICB2YXIgZnMgPSBsb2Fk
U2hhZGVyRnJvbUZpbGUoCi0gICAgICBnbCwgZnJhZ21lbnRTaGFkZXJQYXRoLCBnbC5GUkFHTUVO
VF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgaWYgKHZzICYmIGZzKSB7Ci0gICAgZ2wu
YXR0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTsKLSAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwg
ZnMpOwotICAgIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtLCBvcHRfZXJyb3JDYWxsYmFjayk7Ci0g
IH0KLSAgaWYgKHZzKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKLSAgfQotICBpZiAoZnMp
IHsKLSAgICBnbC5kZWxldGVTaGFkZXIoZnMpOwotICB9Ci0gIHJldHVybiBwcm9ncmFtOwotfTsK
LQotLyoqCi0gKiBMb2FkcyBzaGFkZXJzIGZyb20gc2NyaXB0IHRhZ3MsIGNyZWF0ZXMgYSBwcm9n
cmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKLSAqIGxpbmtzLgotICogQHBhcmFtIHshV2Vi
R0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7c3RyaW5n
fSB2ZXJ0ZXhTY3JpcHRJZCBUaGUgaWQgb2YgdGhlIHNjcmlwdCB0YWcgdGhhdCBjb250YWlucyB0
aGUKLSAqICAgICAgICB2ZXJ0ZXggc2hhZGVyLgotICogQHBhcmFtIHtzdHJpbmd9IGZyYWdtZW50
U2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnIHRoYXQgY29udGFpbnMgdGhlCi0gKiAg
ICAgICAgZnJhZ21lbnQgc2hhZGVyLgotICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lk
KSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLiAKLSAqIEByZXR1cm4geyFX
ZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCi0gKi8KLXZhciBsb2FkUHJvZ3JhbUZy
b21TY3JpcHQgPSBmdW5jdGlvbiBsb2FkUHJvZ3JhbUZyb21TY3JpcHQoCi0gICAgZ2wsIHZlcnRl
eFNjcmlwdElkLCBmcmFnbWVudFNjcmlwdElkLCBvcHRfZXJyb3JDYWxsYmFjaykgewotICB2YXIg
cHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKLSAgZ2wuYXR0YWNoU2hhZGVyKAotICAgICAg
cHJvZ3JhbSwKLSAgICAgIGxvYWRTaGFkZXJGcm9tU2NyaXB0KAotICAgICAgICAgIGdsLCB2ZXJ0
ZXhTY3JpcHRJZCwgZ2wuVkVSVEVYX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spKTsKLSAgZ2wu
YXR0YWNoU2hhZGVyKAotICAgICAgcHJvZ3JhbSwKLSAgICAgIGxvYWRTaGFkZXJGcm9tU2NyaXB0
KAotICAgICAgICAgIGdsLCBmcmFnbWVudFNjcmlwdElkLCAgZ2wuRlJBR01FTlRfU0hBREVSLCBv
cHRfZXJyb3JDYWxsYmFjaykpOwotICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSwgb3B0X2Vycm9y
Q2FsbGJhY2spOwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMgc2hhZGVy
cyBmcm9tIHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFu
ZAotICogbGlua3MuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRl
eHQgdG8gdXNlLgotICogQHBhcmFtIHshV2ViR0xTaGFkZXJ9IHZlcnRleFNoYWRlciBUaGUgdmVy
dGV4IHNoYWRlci4KLSAqIEBwYXJhbSB7IVdlYkdMU2hhZGVyfSBmcmFnbWVudFNoYWRlciBUaGUg
ZnJhZ21lbnQgc2hhZGVyLgotICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRf
ZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgotICogQHJldHVybiB7IVdlYkdMUHJv
Z3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KLSAqLwotdmFyIGNyZWF0ZVByb2dyYW0gPSBmdW5j
dGlvbihnbCwgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciwgb3B0X2Vycm9yQ2FsbGJhY2sp
IHsKLSAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Ci0gIGdsLmF0dGFjaFNoYWRl
cihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOwotICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJh
Z21lbnRTaGFkZXIpOwotICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJh
Y2spOwotICByZXR1cm4gcHJvZ3JhbTsKLX07Ci0KLS8qKgotICogTG9hZHMgc2hhZGVycyBmcm9t
IHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFuZAotICog
bGlua3MuCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8g
dXNlLgotICogQHBhcmFtIHtzdHJpbmd9IHZlcnRleFNoYWRlciBUaGUgdmVydGV4IHNoYWRlciBz
b3VyY2UuCi0gKiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTaGFkZXIgVGhlIGZyYWdtZW50IHNo
YWRlciBzb3VyY2UuCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9wdF9lcnJv
ckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAotICogQHJldHVybiB7IVdlYkdMUHJvZ3Jh
bX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KLSAqLwotdmFyIGxvYWRQcm9ncmFtID0gZnVuY3Rpb24o
Ci0gICAgZ2wsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIsIG9wdF9lcnJvckNhbGxiYWNr
KSB7Ci0gIHZhciBwcm9ncmFtOwotICB2YXIgdnMgPSBsb2FkU2hhZGVyKAotICAgICAgZ2wsIHZl
cnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2spOwotICB2YXIg
ZnMgPSBsb2FkU2hhZGVyKAotICAgICAgZ2wsIGZyYWdtZW50U2hhZGVyLCBnbC5GUkFHTUVOVF9T
SEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKLSAgaWYgKHZzICYmIGZzKSB7Ci0gICAgcHJvZ3Jh
bSA9IGNyZWF0ZVByb2dyYW0oZ2wsIHZzLCBmcywgb3B0X2Vycm9yQ2FsbGJhY2spCi0gIH0KLSAg
aWYgKHZzKSB7Ci0gICAgZ2wuZGVsZXRlU2hhZGVyKHZzKTsKLSAgfQotICBpZiAoZnMpIHsKLSAg
ICBnbC5kZWxldGVTaGFkZXIoZnMpOwotICB9Ci0gIHJldHVybiBwcm9ncmFtOwotfTsKLQotLyoq
Ci0gKiBMb2FkcyBzaGFkZXJzIGZyb20gc291cmNlLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNo
ZXMgdGhlIHNoYWRlcnMgYW5kCi0gKiBsaW5rcyBidXQgZXhwZWN0cyBlcnJvci4KLSAqCi0gKiBH
TFNMIDEuMC4xNyAxMC4yNyBlZmZlY3RpdmVseSBzYXlzIHRoYXQgY29tcGlsZVNoYWRlciBjYW4K
LSAqIGFsd2F5cyBzdWNjZWVkIGFzIGxvbmcgYXMgbGlua1Byb2dyYW0gZmFpbHMgc28gd2UgY2Fu
J3QKLSAqIHJlbHkgb24gY29tcGlsZVNoYWRlciBmYWlsaW5nLiBUaGlzIGZ1bmN0aW9uIGV4cGVj
dHMKLSAqIG9uZSBvZiB0aGUgc2hhZGVyIHRvIGZhaWwgT1IgbGlua2luZyB0byBmYWlsLgotICoK
LSAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCi0g
KiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2hhZGVyU2NyaXB0SWQgVGhlIHZlcnRleCBzaGFkZXIu
Ci0gKiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTaGFkZXJTY3JpcHRJZCBUaGUgZnJhZ21lbnQg
c2hhZGVyLgotICogQHJldHVybiB7V2ViR0xQcm9ncmFtfSBUaGUgY3JlYXRlZCBwcm9ncmFtLgot
ICovCi12YXIgbG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3IgPSBmdW5jdGlvbigKLSAg
ICBnbCwgdmVydGV4U2hhZGVyU2NyaXB0SWQsIGZyYWdtZW50U2hhZGVyU2NyaXB0SWQpIHsKLSAg
dmFyIHZlcnRleFNoYWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCB2ZXJ0ZXhTaGFkZXJT
Y3JpcHRJZCk7Ci0gIGlmICghdmVydGV4U2hhZGVyKSB7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH0K
LSAgdmFyIGZyYWdtZW50U2hhZGVyID0gbG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIGZyYWdtZW50
U2hhZGVyU2NyaXB0SWQpOwotICBpZiAoIWZyYWdtZW50U2hhZGVyKSB7Ci0gICAgcmV0dXJuIG51
bGw7Ci0gIH0KLSAgdmFyIGxpbmtTdWNjZXNzID0gdHJ1ZTsKLSAgdmFyIHByb2dyYW0gPSBnbC5j
cmVhdGVQcm9ncmFtKCk7Ci0gIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIp
OwotICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpOwotICBsaW5rU3Vj
Y2VzcyA9IHRydWU7Ci0gIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtLCBmdW5jdGlvbigpIHsKLSAg
ICAgIGxpbmtTdWNjZXNzID0gZmFsc2U7Ci0gICAgfSk7Ci0gIHJldHVybiBsaW5rU3VjY2VzcyA/
IHByb2dyYW0gOiBudWxsOwotfTsKLQotCi12YXIgZ2V0QWN0aXZlTWFwID0gZnVuY3Rpb24oZ2ws
IHByb2dyYW0sIHR5cGVJbmZvKSB7Ci0gIHZhciBudW1WYXJpYWJsZXMgPSBnbC5nZXRQcm9ncmFt
UGFyYW1ldGVyKHByb2dyYW0sIGdsW3R5cGVJbmZvLnBhcmFtXSk7Ci0gIHZhciB2YXJpYWJsZXMg
PSB7fTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVZhcmlhYmxlczsgKytpaSkgewotICAg
IHZhciBpbmZvID0gZ2xbdHlwZUluZm8uYWN0aXZlRm5dKHByb2dyYW0sIGlpKTsKLSAgICB2YXJp
YWJsZXNbaW5mby5uYW1lXSA9IHsKLSAgICAgIG5hbWU6IGluZm8ubmFtZSwKLSAgICAgIHNpemU6
IGluZm8uc2l6ZSwKLSAgICAgIHR5cGU6IGluZm8udHlwZSwKLSAgICAgIGxvY2F0aW9uOiBnbFt0
eXBlSW5mby5sb2NGbl0ocHJvZ3JhbSwgaW5mby5uYW1lKQotICAgIH07Ci0gIH0KLSAgcmV0dXJu
IHZhcmlhYmxlczsKLX07Ci0KLS8qKgotICogUmV0dXJucyBhIG1hcCBvZiBhdHRyaWIgbmFtZXMg
dG8gaW5mbyBhYm91dCB0aG9zZQotICogYXR0cmlicwotICoKLSAqIGVnOgotICogICAgeyAiYXR0
cmliMU5hbWUiOgotICogICAgICB7Ci0gKiAgICAgICAgbmFtZTogImF0dHJpYjFOYW1lIiwKLSAq
ICAgICAgICBzaXplOiAxLAotICogICAgICAgIHR5cGU6IGdsLkZMT0FUX01BVDIsCi0gKiAgICAg
ICAgbG9jYXRpb246IDAKLSAqICAgICAgfSwKLSAqICAgICAgImF0dHJpYjJOYW1lWzBdIjoKLSAq
ICAgICAgewotICogICAgICAgICBuYW1lOiAiYXR0cmliMk5hbWVbMF0iLAotICogICAgICAgICBz
aXplOiA0LAotICogICAgICAgICB0eXBlOiBnbC5GTE9BVCwKLSAqICAgICAgICAgbG9jYXRpb246
IDEKLSAqICAgICAgfSwKLSAqICAgIH0KLSAqCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGds
IFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtXZWJHTFByb2dyYW19IFRoZSBw
cm9ncmFtIHRvIHF1ZXJ5IGZvciBhdHRyaWJzLgotICogQHJldHVybiB0aGUgbWFwLgotICovCi12
YXIgZ2V0QXR0cmliTWFwID0gZnVuY3Rpb24oZ2wsIHByb2dyYW0pIHsKLSAgcmV0dXJuIGdldEFj
dGl2ZU1hcChnbCwgcHJvZ3JhbSwgewotICAgICAgcGFyYW06ICJBQ1RJVkVfQVRUUklCUyIsCi0g
ICAgICBhY3RpdmVGbjogImdldEFjdGl2ZUF0dHJpYiIsCi0gICAgICBsb2NGbjogImdldEF0dHJp
YkxvY2F0aW9uIgotICB9KTsKLX07Ci0KLS8qKgotICogUmV0dXJucyBhIG1hcCBvZiB1bmlmb3Jt
IG5hbWVzIHRvIGluZm8gYWJvdXQgdGhvc2UgdW5pZm9ybQotICoKLSAqIGVnOgotICogICAgeyAi
dW5pZm9ybTFOYW1lIjoKLSAqICAgICAgewotICogICAgICAgIG5hbWU6ICJ1bmlmb3JtMU5hbWUi
LAotICogICAgICAgIHNpemU6IDEsCi0gKiAgICAgICAgdHlwZTogZ2wuRkxPQVRfTUFUMiwKLSAq
ICAgICAgICBsb2NhdGlvbjogV2ViR0xVbmlmb3JtTG9jYXRpb24KLSAqICAgICAgfSwKLSAqICAg
ICAgInVuaWZvcm0yTmFtZVswXSI6Ci0gKiAgICAgIHsKLSAqICAgICAgICAgbmFtZTogInVuaWZv
cm0yTmFtZVswXSIsCi0gKiAgICAgICAgIHNpemU6IDQsCi0gKiAgICAgICAgIHR5cGU6IGdsLkZM
T0FULAotICogICAgICAgICBsb2NhdGlvbjogV2ViR0xVbmlmb3JtTG9jYXRpb24KLSAqICAgICAg
fSwKLSAqICAgIH0KLSAqCi0gKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENv
bnRleHQgdG8gdXNlLgotICogQHBhcmFtIHtXZWJHTFByb2dyYW19IFRoZSBwcm9ncmFtIHRvIHF1
ZXJ5IGZvciB1bmlmb3Jtcy4KLSAqIEByZXR1cm4gdGhlIG1hcC4KLSAqLwotdmFyIGdldFVuaWZv
cm1NYXAgPSBmdW5jdGlvbihnbCwgcHJvZ3JhbSkgewotICByZXR1cm4gZ2V0QWN0aXZlTWFwKGds
LCBwcm9ncmFtLCB7Ci0gICAgICBwYXJhbTogIkFDVElWRV9VTklGT1JNUyIsCi0gICAgICBhY3Rp
dmVGbjogImdldEFjdGl2ZVVuaWZvcm0iLAotICAgICAgbG9jRm46ICJnZXRVbmlmb3JtTG9jYXRp
b24iCi0gIH0pOwotfTsKLQotdmFyIGJhc2VQYXRoOwotdmFyIGdldEJhc2VQYXRoID0gZnVuY3Rp
b24oKSB7Ci0gIGlmICghYmFzZVBhdGgpIHsKLSAgICB2YXIgZXhwZWN0ZWRCYXNlID0gIndlYmds
LXRlc3QtdXRpbHMuanMiOwotICAgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ3NjcmlwdCcpOwotICAgIGZvciAodmFyIHNjcmlwdCwgaSA9IDA7IHNjcmlwdCA9
IHNjcmlwdHNbaV07IGkrKykgewotICAgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7Ci0gICAgICB2
YXIgbCA9IHNyYy5sZW5ndGg7Ci0gICAgICBpZiAoc3JjLnN1YnN0cihsIC0gZXhwZWN0ZWRCYXNl
Lmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7Ci0gICAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0
cigwLCBsIC0gZXhwZWN0ZWRCYXNlLmxlbmd0aCk7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJl
dHVybiBiYXNlUGF0aDsKLX07Ci0KLXZhciBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIgPSBmdW5j
dGlvbihnbCkgewotICByZXR1cm4gbG9hZFNoYWRlckZyb21GaWxlKAotICAgICAgZ2wsIGdldEJh
c2VQYXRoKCkgKyAidmVydGV4U2hhZGVyLnZlcnQiLCBnbC5WRVJURVhfU0hBREVSKTsKLX07Ci0K
LXZhciBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7Ci0gIHJldHVy
biBsb2FkU2hhZGVyRnJvbUZpbGUoCi0gICAgICBnbCwgZ2V0QmFzZVBhdGgoKSArICJmcmFnbWVu
dFNoYWRlci5mcmFnIiwgZ2wuRlJBR01FTlRfU0hBREVSKTsKLX07Ci0KLS8qKgotICogTG9hZHMg
YW4gaW1hZ2UgYXN5bmNocm9ub3VzbHkuCi0gKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBvZiBp
bWFnZSB0byBsb2FkLgotICogQHBhcmFtIHshZnVuY3Rpb24oIUVsZW1lbnQpOiB2b2lkfSBjYWxs
YmFjayBGdW5jdGlvbiB0byBjYWxsCi0gKiAgICAgd2l0aCBsb2FkZWQgaW1hZ2UuCi0gKi8KLXZh
ciBsb2FkSW1hZ2VBc3luYyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKLSAgdmFyIGltZyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICBpbWcub25sb2FkID0gZnVuY3Rpb24o
KSB7Ci0gICAgY2FsbGJhY2soaW1nKTsKLSAgfTsKLSAgaW1nLnNyYyA9IHVybDsKLX07Ci0KLS8q
KgotICogTG9hZHMgYW4gYXJyYXkgb2YgaW1hZ2VzLgotICogQHBhcmFtIHshQXJyYXkuPHN0cmlu
Zz59IHVybHMgVVJMcyBvZiBpbWFnZXMgdG8gbG9hZC4KLSAqIEBwYXJhbSB7IWZ1bmN0aW9uKCF7
c3RyaW5nLCBpbWd9KTogdm9pZH0gY2FsbGJhY2suIENhbGxiYWNrCi0gKiAgICAgdGhhdCBnZXRz
IHBhc3NlZCBtYXAgb2YgdXJscyB0byBpbWcgdGFncy4KLSAqLwotdmFyIGxvYWRJbWFnZXNBc3lu
YyA9IGZ1bmN0aW9uKHVybHMsIGNhbGxiYWNrKSB7Ci0gIHZhciBjb3VudCA9IDE7Ci0gIHZhciBp
bWFnZXMgPSB7IH07Ci0gIGZ1bmN0aW9uIGNvdW50RG93bigpIHsKLSAgICAtLWNvdW50OwotICAg
IGlmIChjb3VudCA9PSAwKSB7Ci0gICAgICBjYWxsYmFjayhpbWFnZXMpOwotICAgIH0KLSAgfQot
ICBmdW5jdGlvbiBpbWFnZUxvYWRlZCh1cmwpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oaW1nKSB7
Ci0gICAgICBpbWFnZXNbdXJsXSA9IGltZzsKLSAgICAgIGNvdW50RG93bigpOwotICAgIH0KLSAg
fQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdXJscy5sZW5ndGg7ICsraWkpIHsKLSAgICArK2Nv
dW50OwotICAgIGxvYWRJbWFnZUFzeW5jKHVybHNbaWldLCBpbWFnZUxvYWRlZCh1cmxzW2lpXSkp
OwotICB9Ci0gIGNvdW50RG93bigpOwotfTsKLQotdmFyIGdldFVybEFyZ3VtZW50cyA9IGZ1bmN0
aW9uKCkgewotICB2YXIgYXJncyA9IHt9OwotICB0cnkgewotICAgIHZhciBzID0gd2luZG93Lmxv
Y2F0aW9uLmhyZWY7Ci0gICAgdmFyIHEgPSBzLmluZGV4T2YoIj8iKTsKLSAgICB2YXIgZSA9IHMu
aW5kZXhPZigiIyIpOwotICAgIGlmIChlIDwgMCkgewotICAgICAgZSA9IHMubGVuZ3RoOwotICAg
IH0KLSAgICB2YXIgcXVlcnkgPSBzLnN1YnN0cmluZyhxICsgMSwgZSk7Ci0gICAgdmFyIHBhaXJz
ID0gcXVlcnkuc3BsaXQoIiYiKTsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgcGFpcnMubGVu
Z3RoOyArK2lpKSB7Ci0gICAgICB2YXIga2V5VmFsdWUgPSBwYWlyc1tpaV0uc3BsaXQoIj0iKTsK
LSAgICAgIHZhciBrZXkgPSBrZXlWYWx1ZVswXTsKLSAgICAgIHZhciB2YWx1ZSA9IGRlY29kZVVS
SUNvbXBvbmVudChrZXlWYWx1ZVsxXSk7Ci0gICAgICBhcmdzW2tleV0gPSB2YWx1ZTsKLSAgICB9
Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICB0aHJvdyAiY291bGQgbm90IHBhcnNlIHVybCI7Ci0gIH0K
LSAgcmV0dXJuIGFyZ3M7Ci19OwotCi12YXIgbWFrZUltYWdlID0gZnVuY3Rpb24oY2FudmFzKSB7
Ci0gIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgaW1nLnNyYyA9
IGNhbnZhcy50b0RhdGFVUkwoKTsKLSAgcmV0dXJuIGltZzsKLX07Ci0KLXZhciBpbnNlcnRJbWFn
ZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNhcHRpb24sIGltZykgewotICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gIGRpdi5hcHBlbmRDaGlsZChpbWcpOwotICB2YXIg
bGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgbGFiZWwuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY2FwdGlvbikpOwotICBkaXYuYXBwZW5kQ2hpbGQo
bGFiZWwpOwotICAgZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOwotfTsKLQotdmFyIGFkZFNoYWRl
clNvdXJjZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIGxhYmVsLCBzb3VyY2UsIG9wdF91cmwpIHsKLSAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICB2YXIgcyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOwotICBzLmNsYXNzTmFtZSA9ICJzaGFkZXItc291cmNl
IjsKLSAgcy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotICB2YXIgb2wgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJvbCIpOwotICAvL3MuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoc291cmNlKSk7Ci0gIHZhciBsaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKLSAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBsaW5lID0gbGlu
ZXNbaWldOwotICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAg
bGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOwotICAgIG9sLmFw
cGVuZENoaWxkKGxpKTsKLSAgfQotICBzLmFwcGVuZENoaWxkKG9sKTsKLSAgdmFyIGwgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Ci0gIGwuaHJlZiA9ICJzaG93LXNoYWRlci1zb3VyY2Ui
OwotICBsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxhYmVsKSk7Ci0gIGwu
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldmVudCkgewotICAgICAgaWYgKGV2
ZW50LnByZXZlbnREZWZhdWx0KSB7Ci0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0g
ICAgICB9Ci0gICAgICBzLnN0eWxlLmRpc3BsYXkgPSAocy5zdHlsZS5kaXNwbGF5ID09ICdub25l
JykgPyAnYmxvY2snIDogJ25vbmUnOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sIGZhbHNl
KTsKLSAgZGl2LmFwcGVuZENoaWxkKGwpOwotICBpZiAob3B0X3VybCkgewotICAgIHZhciB1ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwotICAgIHUuaHJlZiA9IG9wdF91cmw7Ci0gICAg
ZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwotICAgIHUuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIigiICsgb3B0X3VybCArICIpIikpOwot
ICAgIGRpdi5hcHBlbmRDaGlsZCh1KTsKLSAgfQotICBkaXYuYXBwZW5kQ2hpbGQocyk7Ci0gIGVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZGl2KTsKLX07Ci0KLS8vIEFkZCB5b3VyIHByZWZpeCBoZXJlLgot
dmFyIGJyb3dzZXJQcmVmaXhlcyA9IFsKLSAgIiIsCi0gICJNT1pfIiwKLSAgIk9QXyIsCi0gICJX
RUJLSVRfIgotXTsKLQotLyoqCi0gKiBHaXZlbiBhbiBleHRlbnNpb24gbmFtZSBsaWtlIFdFQkdM
X2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjCi0gKiByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBzdXBw
b3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxpa2UKLSAqIFdFQktJVF9XRUJHTF9jb21wcmVzc2Vk
X3RldHVyZV9zM3RjCi0gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIGV4dGVuc2lvbiB0
byBsb29rIGZvcgotICogQHJldHVybiB7c3RyaW5nfSBuYW1lIG9mIGV4dGVuc2lvbiBmb3VuZCBv
ciB1bmRlZmluZWQgaWYgbm90Ci0gKiAgICAgZm91bmQuCi0gKi8KLXZhciBnZXRTdXBwb3J0ZWRF
eHRlbnNpb25XaXRoS25vd25QcmVmaXhlcyA9IGZ1bmN0aW9uKGdsLCBuYW1lKSB7Ci0gIHZhciBz
dXBwb3J0ZWQgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7Ci0gIGZvciAodmFyIGlpID0g
MDsgaWkgPCBicm93c2VyUHJlZml4ZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIHByZWZpeGVk
TmFtZSA9IGJyb3dzZXJQcmVmaXhlc1tpaV0gKyBuYW1lOwotICAgIGlmIChzdXBwb3J0ZWQuaW5k
ZXhPZihwcmVmaXhlZE5hbWUpID49IDApIHsKLSAgICAgIHJldHVybiBwcmVmaXhlZE5hbWU7Ci0g
ICAgfQotICB9Ci19OwotCi0vKioKLSAqIEdpdmVuIGFuIGV4dGVuc2lvbiBuYW1lIGxpa2UgV0VC
R0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMKLSAqIHJldHVybnMgdGhlIHN1cHBvcnRlZCB2ZXJz
aW9uIGV4dGVuc2lvbiwgbGlrZQotICogV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV0dXJlX3Mz
dGMKLSAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5zaW9uIHRvIGxvb2sgZm9y
Ci0gKiBAcmV0dXJuIHtXZWJHTEV4dGVuc2lvbn0gVGhlIGV4dGVuc2lvbiBvciB1bmRlZmluZWQg
aWYgbm90Ci0gKiAgICAgZm91bmQuCi0gKi8KLXZhciBnZXRFeHRlbnNpb25XaXRoS25vd25QcmVm
aXhlcyA9IGZ1bmN0aW9uKGdsLCBuYW1lKSB7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBicm93
c2VyUHJlZml4ZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIHByZWZpeGVkTmFtZSA9IGJyb3dz
ZXJQcmVmaXhlc1tpaV0gKyBuYW1lOwotICAgIHZhciBleHQgPSBnbC5nZXRFeHRlbnNpb24ocHJl
Zml4ZWROYW1lKTsKLSAgICBpZiAoZXh0KSB7Ci0gICAgICByZXR1cm4gZXh0OwotICAgIH0KLSAg
fQotfTsKLQotCi12YXIgcmVwbGFjZVJFID0gL1wkXCgoXHcrKVwpL2c7Ci0KLS8qKgotICogUmVw
bGFjZXMgc3RyaW5ncyB3aXRoIHByb3BlcnR5IHZhbHVlcy4KLSAqIEdpdmVuIGEgc3RyaW5nIGxp
a2UgImhlbGxvICQoZmlyc3QpICQobGFzdCkiIGFuZCBhbiBvYmplY3QKLSAqIGxpa2Uge2ZpcnN0
OiJKb2huIiwgbGFzdDoiU21pdGgifSB3aWxsIHJldHVybgotICogImhlbGxvIEpvaG4gU21pdGgi
LgotICogQHBhcmFtIHtzdHJpbmd9IHN0ciBTdHJpbmcgdG8gZG8gcmVwbGFjZW1lbnRzIGluCi0g
KiBAcGFyYW0gey4uLn0gMSBvciBtb3JlIG9iamVjdHMgY29uYWluaW5nIHByb3BlcnRpZXMuCi0g
Ki8KLXZhciByZXBsYWNlUGFyYW1zID0gZnVuY3Rpb24oc3RyKSB7Ci0gIHZhciBhcmdzID0gYXJn
dW1lbnRzOwotICByZXR1cm4gc3RyLnJlcGxhY2UocmVwbGFjZVJFLCBmdW5jdGlvbihzdHIsIHAx
LCBvZmZzZXQsIHMpIHsKLSAgICBmb3IgKHZhciBpaSA9IDE7IGlpIDwgYXJncy5sZW5ndGg7ICsr
aWkpIHsKLSAgICAgIGlmIChhcmdzW2lpXVtwMV0gIT09IHVuZGVmaW5lZCkgewotICAgICAgICBy
ZXR1cm4gYXJnc1tpaV1bcDFdOwotICAgICAgfQotICAgIH0KLSAgICB0aHJvdyAidW5rbm93biBz
dHJpbmcgcGFyYW0gJyIgKyBwMSArICInIjsKLSAgfSk7Ci19OwotCi0KLS8qKgotICogUHJvdmlk
ZXMgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuCi0gKi8KLXZh
ciByZXF1ZXN0QW5pbUZyYW1lSW1wbF87Ci0KLXZhciByZXF1ZXN0QW5pbUZyYW1lID0gZnVuY3Rp
b24oY2FsbGJhY2ssIGVsZW1lbnQpIHsKLSAgaWYgKCFyZXF1ZXN0QW5pbUZyYW1lSW1wbF8pIHsK
LSAgICByZXF1ZXN0QW5pbUZyYW1lSW1wbF8gPSBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBmdW5j
dGlvbk5hbWVzID0gWwotICAgICAgICAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKLSAgICAgICAg
IndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSIsCi0gICAgICAgICJtb3pSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUiLAotICAgICAgICAib1JlcXVlc3RBbmltYXRpb25GcmFtZSIsCi0gICAgICAgICJt
c1JlcXVlc3RBbmltYXRpb25GcmFtZSIKLSAgICAgIF07Ci0gICAgICBmb3IgKHZhciBqaiA9IDA7
IGpqIDwgZnVuY3Rpb25OYW1lcy5sZW5ndGg7ICsramopIHsKLSAgICAgICAgdmFyIGZ1bmN0aW9u
TmFtZSA9IGZ1bmN0aW9uTmFtZXNbampdOwotICAgICAgICBpZiAod2luZG93W2Z1bmN0aW9uTmFt
ZV0pIHsKLSAgICAgICAgICByZXR1cm4gZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKGNhbGxiYWNrLCBlbGVtZW50KSB7Ci0gICAgICAgICAgICAgIHJldHVybiB3
aW5kb3dbbmFtZV0uY2FsbCh3aW5kb3csIGNhbGxiYWNrLCBlbGVtZW50KTsKLSAgICAgICAgICAg
IH07Ci0gICAgICAgICAgfShmdW5jdGlvbk5hbWUpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
ICByZXR1cm4gZnVuY3Rpb24oY2FsbGJhY2ssIGVsZW1lbnQpIHsKLSAgICAgICAgICAgcmV0dXJu
IHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCAxMDAwIC8gNzApOwotICAgICAgICB9OwotICAg
IH0oKTsKLSAgfQotCi0gIHJldHVybiByZXF1ZXN0QW5pbUZyYW1lSW1wbF8oY2FsbGJhY2ssIGVs
ZW1lbnQpOwotfTsKLQotLyoqCi0gKiBQcm92aWRlcyBjYW5jZWxBbmltYXRpb25GcmFtZSBpbiBh
IGNyb3NzIGJyb3dzZXIgd2F5LgotICovCi12YXIgY2FuY2VsQW5pbUZyYW1lID0gKGZ1bmN0aW9u
KCkgewotICByZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lIHx8Ci0gICAgICAgICB3
aW5kb3cud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKLSAgICAgICAgIHdpbmRvdy5tb3pD
YW5jZWxBbmltYXRpb25GcmFtZSB8fAotICAgICAgICAgd2luZG93Lm9DYW5jZWxBbmltYXRpb25G
cmFtZSB8fAotICAgICAgICAgd2luZG93Lm1zQ2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKLSAgICAg
ICAgIHdpbmRvdy5jbGVhclRpbWVvdXQ7Ci19KSgpOwotCi0vKioKLSAqIFdhaXRzIGZvciB0aGUg
YnJvd3NlciB0byBjb21wb3NpdGUgdGhlIGNhbnZhcyBhc3NvY2lhdGVkIHdpdGgKLSAqIHRoZSBX
ZWJHTCBjb250ZXh0IHBhc3NlZCBpbi4KLSAqLwotdmFyIHdhaXRGb3JDb21wb3NpdGUgPSBmdW5j
dGlvbihnbCwgY2FsbGJhY2spIHsKLSAgdmFyIGZyYW1lcyA9IDU7Ci0gIHZhciBjb3VudERvd24g
PSBmdW5jdGlvbigpIHsKLSAgICBpZiAoZnJhbWVzID09IDApIHsKLSAgICAgIGNhbGxiYWNrKCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIC0tZnJhbWVzOwotICAgICAgcmVxdWVzdEFuaW1GcmFtZShj
b3VudERvd24pOwotICAgIH0KLSAgfTsKLSAgY291bnREb3duKCk7Ci19OwotCi1yZXR1cm4gewot
ICBhZGRTaGFkZXJTb3VyY2U6IGFkZFNoYWRlclNvdXJjZSwKLSAgY2FuY2VsQW5pbUZyYW1lOiBj
YW5jZWxBbmltRnJhbWUsCi0gIGNyZWF0ZTNEQ29udGV4dDogY3JlYXRlM0RDb250ZXh0LAotICBj
cmVhdGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJvd3NPbkdMRXJyb3I6Ci0gICAgICBjcmVh
dGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJvd3NPbkdMRXJyb3IsCi0gIGNoZWNrQ2FudmFz
OiBjaGVja0NhbnZhcywKLSAgY2hlY2tDYW52YXNSZWN0OiBjaGVja0NhbnZhc1JlY3QsCi0gIGNo
ZWNrQ2FudmFzUmVjdENvbG9yOiBjaGVja0NhbnZhc1JlY3RDb2xvciwKLSAgY3JlYXRlQ29sb3Jl
ZFRleHR1cmU6IGNyZWF0ZUNvbG9yZWRUZXh0dXJlLAotICBjcmVhdGVQcm9ncmFtOiBjcmVhdGVQ
cm9ncmFtLAotICBkcmF3UXVhZDogZHJhd1F1YWQsCi0gIGRyYXdJbmRleGVkUXVhZDogZHJhd0lu
ZGV4ZWRRdWFkLAotICBkcmF3VUJ5dGVDb2xvclF1YWQ6IGRyYXdVQnl0ZUNvbG9yUXVhZCwKLSAg
ZHJhd0Zsb2F0Q29sb3JRdWFkOiBkcmF3RmxvYXRDb2xvclF1YWQsCi0gIGVuZHNXaXRoOiBlbmRz
V2l0aCwKLSAgZmlsbFRleHR1cmU6IGZpbGxUZXh0dXJlLAotICBnZXRFeHRlbnNpb25XaXRoS25v
d25QcmVmaXhlczogZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMsCi0gIGdldEZpbGVMaXN0
QXN5bmM6IGdldEZpbGVMaXN0QXN5bmMsCi0gIGdldExhc3RFcnJvcjogZ2V0TGFzdEVycm9yLAot
ICBnZXRTY3JpcHQ6IGdldFNjcmlwdCwKLSAgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3du
UHJlZml4ZXM6IGdldFN1cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzLAotICBnZXRV
cmxBcmd1bWVudHM6IGdldFVybEFyZ3VtZW50cywKLSAgZ2V0QXR0cmliTWFwOiBnZXRBdHRyaWJN
YXAsCi0gIGdldFVuaWZvcm1NYXA6IGdldFVuaWZvcm1NYXAsCi0gIGdsRW51bVRvU3RyaW5nOiBn
bEVudW1Ub1N0cmluZywKLSAgZ2xFcnJvclNob3VsZEJlOiBnbEVycm9yU2hvdWxkQmUsCi0gIGhh
c0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZTogaGFzQXR0cmlidXRlQ2FzZUluc2Vuc2l0aXZlLAot
ICBpbnNlcnRJbWFnZTogaW5zZXJ0SW1hZ2UsCi0gIGxvYWRJbWFnZUFzeW5jOiBsb2FkSW1hZ2VB
c3luYywKLSAgbG9hZEltYWdlc0FzeW5jOiBsb2FkSW1hZ2VzQXN5bmMsCi0gIGxvYWRQcm9ncmFt
OiBsb2FkUHJvZ3JhbSwKLSAgbG9hZFByb2dyYW1Gcm9tRmlsZTogbG9hZFByb2dyYW1Gcm9tRmls
ZSwKLSAgbG9hZFByb2dyYW1Gcm9tU2NyaXB0OiBsb2FkUHJvZ3JhbUZyb21TY3JpcHQsCi0gIGxv
YWRQcm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yOiBsb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBl
Y3RFcnJvciwKLSAgbG9hZFNoYWRlcjogbG9hZFNoYWRlciwKLSAgbG9hZFNoYWRlckZyb21GaWxl
OiBsb2FkU2hhZGVyRnJvbUZpbGUsCi0gIGxvYWRTaGFkZXJGcm9tU2NyaXB0OiBsb2FkU2hhZGVy
RnJvbVNjcmlwdCwKLSAgbG9hZFN0YW5kYXJkUHJvZ3JhbTogbG9hZFN0YW5kYXJkUHJvZ3JhbSwK
LSAgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyOiBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIsCi0g
IGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyOiBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlciwK
LSAgbG9hZFRleHRGaWxlQXN5bmM6IGxvYWRUZXh0RmlsZUFzeW5jLAotICBsb2FkVGV4dHVyZTog
bG9hZFRleHR1cmUsCi0gIGxvZzogbG9nLAotICBsb2dnaW5nT2ZmOiBsb2dnaW5nT2ZmLAotICBt
YWtlSW1hZ2U6IG1ha2VJbWFnZSwKLSAgZXJyb3I6IGVycm9yLAotICBzaGFsbG93Q29weU9iamVj
dDogc2hhbGxvd0NvcHlPYmplY3QsCi0gIHNldHVwQ29sb3JRdWFkOiBzZXR1cENvbG9yUXVhZCwK
LSAgc2V0dXBQcm9ncmFtOiBzZXR1cFByb2dyYW0sCi0gIHNldHVwUXVhZDogc2V0dXBRdWFkLAot
ICBzZXR1cFF1YWRXaXRoT3B0aW9uczogc2V0dXBRdWFkV2l0aE9wdGlvbnMsCi0gIHNldHVwU2lt
cGxlQ29sb3JGcmFnbWVudFNoYWRlcjogc2V0dXBTaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyLAot
ICBzZXR1cFNpbXBsZUNvbG9yVmVydGV4U2hhZGVyOiBzZXR1cFNpbXBsZUNvbG9yVmVydGV4U2hh
ZGVyLAotICBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbTogc2V0dXBTaW1wbGVDb2xvclByb2dyYW0s
Ci0gIHNldHVwU2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyOiBzZXR1cFNpbXBsZVRleHR1cmVG
cmFnbWVudFNoYWRlciwKLSAgc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbTogc2V0dXBTaW1wbGVU
ZXh0dXJlUHJvZ3JhbSwKLSAgc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyOiBzZXR1cFNp
bXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIsCi0gIHNldHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVu
dFNoYWRlcjogc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvckZyYWdtZW50U2hhZGVyLAotICBzZXR1cFNp
bXBsZVZlcnRleENvbG9yUHJvZ3JhbTogc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclByb2dyYW0sCi0g
IHNldHVwU2ltcGxlVmVydGV4Q29sb3JWZXJ0ZXhTaGFkZXI6IHNldHVwU2ltcGxlVmVydGV4Q29s
b3JWZXJ0ZXhTaGFkZXIsCi0gIHNldHVwTm9UZXhDb29yZFRleHR1cmVQcm9ncmFtOiBzZXR1cE5v
VGV4Q29vcmRUZXh0dXJlUHJvZ3JhbSwKLSAgc2V0dXBOb1RleENvb3JkVGV4dHVyZVZlcnRleFNo
YWRlcjogc2V0dXBOb1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlciwKLSAgc2V0dXBUZXh0dXJl
ZFF1YWQ6IHNldHVwVGV4dHVyZWRRdWFkLAotICBzZXR1cFRleHR1cmVkUXVhZFdpdGhUZXhDb29y
ZHM6IHNldHVwVGV4dHVyZWRRdWFkV2l0aFRleENvb3JkcywKLSAgc2V0dXBVbml0UXVhZDogc2V0
dXBVbml0UXVhZCwKLSAgc2V0dXBVbml0UXVhZFdpdGhUZXhDb29yZHM6IHNldHVwVW5pdFF1YWRX
aXRoVGV4Q29vcmRzLAotICBzZXRGbG9hdERyYXdDb2xvcjogc2V0RmxvYXREcmF3Q29sb3IsCi0g
IHNldFVCeXRlRHJhd0NvbG9yOiBzZXRVQnl0ZURyYXdDb2xvciwKLSAgc3RhcnRzV2l0aDogc3Rh
cnRzV2l0aCwKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yOiBzaG91bGRHZW5lcmF0ZUdMRXJyb3Is
Ci0gIHJlYWRGaWxlOiByZWFkRmlsZSwKLSAgcmVhZEZpbGVMaXN0OiByZWFkRmlsZUxpc3QsCi0g
IHJlcGxhY2VQYXJhbXM6IHJlcGxhY2VQYXJhbXMsCi0gIHJlcXVlc3RBbmltRnJhbWU6IHJlcXVl
c3RBbmltRnJhbWUsCi0gIHdhaXRGb3JDb21wb3NpdGU6IHdhaXRGb3JDb21wb3NpdGUsCi0KLSAg
bm9uZTogZmFsc2UKLX07Ci0KLX0oKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy93ZWJnbC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTE2MjQ0ZTM5NWYyNzdlY2Iw
Zjc1Mjc1N2MzODBjMTEyODI2Mjk1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
Ci0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBz
dWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j
bHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1h
dGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJ
TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJ
VFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu
Ci0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBC
RSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklB
TFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQot
ZnVuY3Rpb24gd2ViZ2xUZXN0TG9nKG1zZykgewotICBpZiAod2luZG93LmNvbnNvbGUgJiYgd2lu
ZG93LmNvbnNvbGUubG9nKSB7Ci0gICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7Ci0gIH0KLSAg
aWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikpIHsKLSAgICB2YXIgbG9nID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBsb2cuaW5uZXJIVE1MICs9
IG1zZyArICI8YnI+IjsKLSAgfQotfQotCi1mdW5jdGlvbiBnZXRHTEVycm9yQXNTdHJpbmcoY3R4
LCBlcnIpIHsKLSAgaWYgKGVyciA9PT0gY3R4Lk5PX0VSUk9SKSB7Ci0gICAgcmV0dXJuICJOT19F
UlJPUiI7Ci0gIH0KLSAgZm9yICh2YXIgbmFtZSBpbiBjdHgpIHsKLSAgICBpZiAoY3R4W25hbWVd
ID09PSBlcnIpIHsKLSAgICAgIHJldHVybiBuYW1lOwotICAgIH0KLSAgfQotICByZXR1cm4gIjB4
IiArIGVyci50b1N0cmluZygxNik7Ci19Ci0KLS8vIFBhc3MgdW5kZWZpbmVkIGZvciBnbEVycm9y
IHRvIHRlc3QgdGhhdCBpdCBhdCBsZWFzdCB0aHJvd3Mgc29tZSBlcnJvcgotZnVuY3Rpb24gc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGN0eCwgZ2xFcnJvcnMsIGV2YWxTdHIpIHsKLSAgaWYgKCFnbEVy
cm9ycy5sZW5ndGgpIHsKLSAgICBnbEVycm9ycyA9IFtnbEVycm9yc107Ci0gIH0KLSAgdmFyIGV4
Y2VwdGlvbjsKLSAgdHJ5IHsKLSAgICBldmFsKGV2YWxTdHIpOwotICB9IGNhdGNoIChlKSB7Ci0g
ICAgZXhjZXB0aW9uID0gZTsKLSAgfQotICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgdGVzdEZhaWxl
ZChldmFsU3RyICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gIH0gZWxzZSB7
Ci0gICAgdmFyIGVyciA9IGN0eC5nZXRFcnJvcigpOwotICAgIHZhciBlcnJTdHJzID0gW107Ci0g
ICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGdsRXJyb3JzLmxlbmd0aDsgKytpaSkgewotICAgICAg
ZXJyU3Rycy5wdXNoKGdldEdMRXJyb3JBc1N0cmluZyhjdHgsIGdsRXJyb3JzW2lpXSkpOwotICAg
IH0KLSAgICB2YXIgZXhwZWN0ZWQgPSBlcnJTdHJzLmpvaW4oIiBvciAiKTsKLSAgICBpZiAoZ2xF
cnJvcnMuaW5kZXhPZihlcnIpIDwgMCkgewotICAgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiBl
eHBlY3RlZDogIiArIGV4cGVjdGVkICsgIi4gV2FzICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoY3R4
LCBlcnIpICsgIi4iKTsKLSAgICB9IGVsc2UgewotICAgICAgdmFyIG1zZyA9IChnbEVycm9ycy5s
ZW5ndGggPT0gMSkgPyAiIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogIiA6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZ2VuZXJhdGVkIG9uZSBvZiBleHBl
Y3RlZCBHTCBlcnJvcnM6ICI7Ci0gICAgICB0ZXN0UGFzc2VkKGV2YWxTdHIgKyBtc2cgKyBleHBl
Y3RlZCArICIuIik7Ci0gICAgfQotICB9Ci19Ci0KLS8qKgotICogVGVzdHMgdGhhdCB0aGUgZmly
c3QgZXJyb3IgR0wgcmV0dXJucyBpcyB0aGUgc3BlY2lmaWVkIGVycm9yLgotICogQHBhcmFtIHsh
V2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KLSAqIEBwYXJhbSB7bnVt
YmVyfCFBcnJheS48bnVtYmVyPn0gZ2xFcnJvciBUaGUgZXhwZWN0ZWQgZ2wKLSAqICAgICAgICBl
cnJvci4gTXVsdGlwbGUgZXJyb3JzIGNhbiBiZSBwYXNzZWQgaW4gdXNpbmcgYW4KLSAqICAgICAg
ICBhcnJheS4KLSAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnIE9wdGlvbmFsIGFkZGl0aW9uYWwg
bWVzc2FnZS4KLSAqLwotZnVuY3Rpb24gZ2xFcnJvclNob3VsZEJlKGdsLCBnbEVycm9ycywgb3B0
X21zZykgewotICBpZiAoIWdsRXJyb3JzLmxlbmd0aCkgewotICAgIGdsRXJyb3JzID0gW2dsRXJy
b3JzXTsKLSAgfQotICBvcHRfbXNnID0gb3B0X21zZyB8fCAiIjsKLSAgdmFyIGVyciA9IGdsLmdl
dEVycm9yKCk7Ci0gIHZhciBuZHggPSBnbEVycm9ycy5pbmRleE9mKGVycik7Ci0gIHZhciBlcnJT
dHJzID0gW107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBnbEVycm9ycy5sZW5ndGg7ICsraWkp
IHsKLSAgICBlcnJTdHJzLnB1c2goZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVycm9yc1tpaV0p
KTsKLSAgfQotICB2YXIgZXhwZWN0ZWQgPSBlcnJTdHJzLmpvaW4oIiBvciAiKTsKLSAgaWYgKG5k
eCA8IDApIHsKLSAgICB2YXIgbXNnID0gImdldEVycm9yIGV4cGVjdGVkIiArICgoZ2xFcnJvcnMu
bGVuZ3RoID4gMSkgPyAiIG9uZSBvZjogIiA6ICI6ICIpOwotICAgIHRlc3RGYWlsZWQobXNnICsg
ZXhwZWN0ZWQgKyAgIi4gV2FzICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKyAiIDog
IiArIG9wdF9tc2cpOwotICB9IGVsc2UgewotICAgIHZhciBtc2cgPSAiZ2V0RXJyb3Igd2FzICIg
KyAoKGdsRXJyb3JzLmxlbmd0aCA+IDEpID8gIm9uZSBvZjogIiA6ICJleHBlY3RlZCB2YWx1ZTog
Iik7Ci0gICAgdGVzdFBhc3NlZChtc2cgKyBleHBlY3RlZCArICIgOiAiICsgb3B0X21zZyk7Ci0g
IH0KLX07Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy96ZXJv
LWFscGhhLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3plcm8tYWxwaGEucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTU2MzBjMTE2MDM4ZjkwZWY3MmNkZDAyYjY2
NGY4ZjBkYWEwNmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDg5CnpjbWVBU0BO
PyhvbEh5YHVWQnEhaWEwdnBeJXBsQ2MxfC04WXcoYld+M1o1PkdBcio1fVBqMkw4RnlMU3x4UDFF
SQptcjsteUhsfXcycl4wb159OWM3PkV6KT4kKWFCM0cmRXJYfTRwVVhPQGdlQ3htJmxzdXoKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzLzAwX3Rlc3RfbGlzdC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzLzAwX3Rlc3RfbGlzdC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM2OWEyNjgwOGZhZjFjNDY1ZWI0YjNlNDU0MjM5MmMxYmJhM2Y2OWIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy8wMF90ZXN0X2xpc3QudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTAg
KzAsMCBAQAotY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRtbAotY29weS10ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC5odG1sCi0tLW1pbi12ZXJzaW9uIDEuMC4yIGNvcHktdGV4LWltYWdlLTJkLWZv
cm1hdHMuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiBnbC1nZXQtdGV4LXBhcmFtZXRlci5odG1s
Ci1nbC1waXhlbHN0b3JlaS5odG1sCi1nbC10ZXhpbWFnZS5odG1sCi1vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2UuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZm
ZXItdmlldy5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5odG1s
Ci10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2I1NjUuaHRtbAotdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTQ0NDQuaHRtbAotdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTU1NTEuaHRtbAotdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKLXRleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2I1NjUuaHRtbAotdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE0NDQ0Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1yZ2JhNTU1MS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtcmdiNTY1Lmh0bWwKLXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtcmdiYTQ0NDQuaHRtbAotdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1y
Z2JhNTU1MS5odG1sCi10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmh0bWwK
LXRleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiNTY1Lmh0bWwKLXRleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTQ0NDQuaHRtbAotdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby1yZ2JhNTU1MS5odG1sCi10ZXgtaW1hZ2UtYW5k
LXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgdGV4LWltYWdl
LXdlYmdsLmh0bWwKLXRleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sCi10ZXgtaW1h
Z2Utd2l0aC1pbnZhbGlkLWRhdGEuaHRtbAotdGV4LWlucHV0LXZhbGlkYXRpb24uaHRtbAotdGV4
LXN1Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sCi10ZXgtc3ViLWltYWdlLTJkLmh0bWwKLXRleHBh
cmFtZXRlci10ZXN0Lmh0bWwKLXRleHR1cmUtYWN0aXZlLWJpbmQtMi5odG1sCi10ZXh0dXJlLWFj
dGl2ZS1iaW5kLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgdGV4dHVyZS1hdHRhY2htZW50LWZv
cm1hdHMuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLWNsZWFyLmh0bWwKLXRleHR1
cmUtY29tcGxldGUuaHRtbAotLS1taW4tdmVyc2lvbiAxLjAuMiB0ZXh0dXJlLWhkLWRwaS5odG1s
Ci0tLW1pbi12ZXJzaW9uIDEuMC4yIHRleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKLXRleHR1cmUt
bWlwcy5odG1sCi10ZXh0dXJlLW5wb3QtdmlkZW8uaHRtbAotdGV4dHVyZS1ucG90Lmh0bWwKLXRl
eHR1cmUtc2l6ZS5odG1sCi10ZXh0dXJlLXNpemUtY3ViZS1tYXBzLmh0bWwKLS0tbWluLXZlcnNp
b24gMS4wLjIgdGV4dHVyZS1zaXplLWxpbWl0Lmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgdGV4
dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBzLmh0bWwKLXRleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxz
LWluaXRpYWxpemVkLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgdGV4dHVyZS11cGxvYWQtY3Vi
ZS1tYXBzLmh0bWwKLS0tbWluLXZlcnNpb24gMS4wLjIgbWlwbWFwLWZiby5odG1sCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29tcHJlc3NlZC10ZXgtaW1hZ2UuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU3YjkyYzg0NWI4MmMyZjg0ODU4OWQxZGUx
MTU0YTk1NWM3M2VkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvbXByZXNzZWQtdGV4LWltYWdlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0q
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
LSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0q
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb21wcmVzc2VkVGV4SW1hZ2UgYW5kIENvbXBy
ZXNzZWRUZXhTdWJJbWFnZSBUZXN0czwvdGl0bGU+Ci08TElOSyByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdM
IGltcGxlbWVudGF0aW9ucyBjb3JyZWN0bHkgaW1wbGVtZW50IGNvbXByZXNzZWRUZXhJbWFnZTJE
IGFuZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRC4iKTsKLQotZGVidWcoIiIpOwotCi12YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7Ci0KLXZh
ciBDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUICAgICAgICA9IDB4ODNGMDsKLXZhciBDT01Q
UkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVCAgICAgICA9IDB4ODNGMTsKLXZhciBDT01QUkVTU0VE
X1JHQkFfUzNUQ19EWFQ1X0VYVCAgICAgICA9IDB4ODNGMzsKLXZhciBFVEMxX1JHQjhfT0VTICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4OEQ2NDsKLXZhciBDT01QUkVTU0VEX1JHQl9QVlJUQ180
QlBQVjFfSU1HICAgICA9IDB4OEMwMDsKLXZhciBDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYx
X0lNRyAgICA9IDB4OEMwMjsKLQotdmFyIGZvcm1hdHMgPSBudWxsOwotCi1pZiAoIWdsKSB7Ci0g
IHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKLX0gZWxzZSB7Ci0gIHRlc3RQ
YXNzZWQoImNvbnRleHQgZXhpc3RzIik7Ci0KLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLQotICBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfRU5VTSwgImdsLmNvbXByZXNzZWRUZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIENPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQsIDQsIDQsIDAs
IG5ldyBVaW50OEFycmF5KDgpKSIpOwotICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfRU5VTSwgImdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIENP
TVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhULCA0LCA0LCAwLCBuZXcgVWludDhBcnJheSg4KSki
KTsKLSAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX0VOVU0sICJnbC5jb21w
cmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBDT01QUkVTU0VEX1JHQkFfUzNUQ19E
WFQ1X0VYVCwgNCwgNCwgMCwgbmV3IFVpbnQ4QXJyYXkoMTYpKSIpOwotICBzaG91bGRHZW5lcmF0
ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfRU5VTSwgImdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIEVUQzFfUkdCOF9PRVMsIDQsIDQsIDAsIG5ldyBVaW50OEFycmF5KDgp
KSIpOwotICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfRU5VTSwgImdsLmNv
bXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIENPTVBSRVNTRURfUkdCX1BWUlRD
XzRCUFBWMV9JTUcsIDgsIDgsIDAsIG5ldyBVaW50OEFycmF5KDgpKSIpOwotICBzaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfRU5VTSwgImdsLmNvbXByZXNzZWRUZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIENPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HLCA4LCA4
LCAwLCBuZXcgVWludDhBcnJheSg4KSkiKTsKLQotICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2ws
IGdsLk5PX0VSUk9SLCAiZm9ybWF0cyA9IGdsLmdldFBhcmFtZXRlcihnbC5DT01QUkVTU0VEX1RF
WFRVUkVfRk9STUFUUykiKTsKLSAgc2hvdWxkQmVOb25OdWxsKCJmb3JtYXRzIik7Ci0gIHNob3Vs
ZEJlKCJmb3JtYXRzLmxlbmd0aCIsICIwIik7Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL2NvcHktdGV4LWltYWdlLTJkLWZvcm1hdHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtMmQtZm9ybWF0cy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTJjZDNmNmEzMTAyOGE5NGQyNzc2OTQ2YjYxNWI3
YjBiMTllYWY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtMmQtZm9ybWF0cy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdo
dCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
LSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u
IGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdp
dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0
ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0
bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQg
dG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0q
KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz
aGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJB
UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1F
UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUK
LSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklB
TFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxl
PlZlcmlmeSBjb3B5VGV4SW1hZ2UyRCBmb2xsb3dzIGZvcm1hdCByZXN0aWN0aW9uczwvdGl0bGU+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0
PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZhc05vQWxwaGEiIHdpZHRoPSIyIiBoZWln
aHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBnZXRDaGFubmVsc0Zyb21Gb3JtYXQoZm9ybWF0KSB7Ci0g
IHN3aXRjaCAoZ2xbZm9ybWF0XSkgewotICBjYXNlIGdsLkFMUEhBOgotICAgIHJldHVybiAweDAw
MDE7Ci0gIGNhc2UgZ2wuTFVNSU5BTkNFOgotICBjYXNlIGdsLlJHQjoKLSAgICByZXR1cm4gMHgx
MTEwOwotICBjYXNlIGdsLkxVTUlOQU5DRV9BTFBIQToKLSAgY2FzZSBnbC5SR0JBOgotICAgIHJl
dHVybiAweDExMTE7Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLX0KLQotdmFyIGZv
cm1hdHMgPSBbCi0gICdBTFBIQScsCi0gICdMVU1JTkFOQ0UnLAotICAnTFVNSU5BTkNFX0FMUEhB
JywKLSAgJ1JHQicsCi0gICdSR0JBJwotXTsKLQotdmFyIGdsID0gbnVsbDsKLXZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKLQotZGVzY3JpcHRpb24oKTsKLQotdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLXZhciBjYW52YXNOb0FscGhhID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNhbnZhc05vQWxwaGEiKTsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENv
bnRleHQoY2FudmFzLCB7YWxwaGE6dHJ1ZX0pOwotdmFyIGdsTm9BbHBoYSA9IHd0dS5jcmVhdGUz
RENvbnRleHQoY2FudmFzTm9BbHBoYSwge2FscGhhOmZhbHNlfSk7Ci0KLWRlYnVnKCJ0ZXN0IHdp
dGggYW4gUkdCQSBiYWNrYnVmZmVyIik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVk
UXVhZChnbCk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiRHVyaW5nIEluaXRp
YWxpemF0aW9uIik7Ci10ZXN0Rm9ybWF0cygnUkdCQScpOwotCi10ZXN0QmFja2J1ZmZlckZvcm1h
dHMoKTsKLQotZGVidWcoInRlc3Qgd2l0aCBhbiBSR0IgYmFja2J1ZmZlciIpOwotdmFyIGdsID0g
Z2xOb0FscGhhOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIkR1cmluZyBJbml0aWFsaXphdGlvbiIpOwot
dGVzdEZvcm1hdHMoJ1JHQicpOwotCi1mdW5jdGlvbiB0ZXN0QmFja2J1ZmZlckZvcm1hdHMoKSB7
Ci0gIHZhciBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotICBnbC5iaW5kRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZvcm1h
dHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIGJhY2tGb3JtYXQgPSBmb3JtYXRzW2lpXTsKLQot
ICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgdGV4KTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
W2JhY2tGb3JtYXRdLCAyLCAyLCAwLCBnbFtiYWNrRm9ybWF0XSwgZ2wuVU5TSUdORURfQllURSwg
bnVsbCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01J
Tl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLQotICAgIGdsLmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVY
VFVSRV8yRCwgdGV4LCAwKTsKLSAgICB2YXIgc3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUik7Ci0KLSAgICBkZWJ1ZygnJyk7Ci0gICAgaWYgKHN0YXR1cyA9
PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgZGVidWcoJ3Rlc3Qgd2l0aCAnICsg
YmFja0Zvcm1hdCArICcgZmJvJyk7Ci0gICAgICB0ZXN0Rm9ybWF0cyhiYWNrRm9ybWF0KTsKLSAg
ICB9IGVsc2UgewotICAgICAgZGVidWcoYmFja0Zvcm1hdCArICcgbm90IHN1cHBvcnRlZCBhcyBh
IHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Jyk7Ci0gICAgfQotICB9Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RGb3JtYXRzKGJhY2tGb3JtYXQpIHsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZvcm1hdHMu
bGVuZ3RoOyArK2lpKSB7Ci0gICAgdGVzdENvcHlUZXhJbWFnZTJEKGJhY2tGb3JtYXQsIGZvcm1h
dHNbaWldKTsKLSAgfQotfQotCi1mdW5jdGlvbiB0b0NoYW5uZWxzKHZhbHVlKSB7Ci0gIHJldHVy
biAoKHZhbHVlICYgMHgxMDAwKSA/ICdSJyA6ICdfJykgKwotICAgICAgICAgKCh2YWx1ZSAmIDB4
MDEwMCkgPyAnRycgOiAnXycpICsKLSAgICAgICAgICgodmFsdWUgJiAweDAwMTApID8gJ0InIDog
J18nKSArCi0gICAgICAgICAoKHZhbHVlICYgMHgwMDAxKSA/ICdBJyA6ICdfJyk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RDb3B5VGV4SW1hZ2UyRChiYWNrRm9ybWF0LCB0ZXhGb3JtYXQpIHsKLSAgdmFy
IG5lZWQgPSBnZXRDaGFubmVsc0Zyb21Gb3JtYXQodGV4Rm9ybWF0KTsKLSAgdmFyIGhhdmUgPSBn
ZXRDaGFubmVsc0Zyb21Gb3JtYXQoYmFja0Zvcm1hdCk7Ci0gIHZhciBzaG91bGRQYXNzID0gKG5l
ZWQgJiBoYXZlKSA9PSBuZWVkCi0KLSAgLy9kZWJ1ZygibmVlZDogIiArIHRvQ2hhbm5lbHMobmVl
ZCkpOwotICAvL2RlYnVnKCJoYXZlOiAiICsgdG9DaGFubmVscyhoYXZlKSk7Ci0gIC8vZGVidWco
ImJvdGg6ICIgKyB0b0NoYW5uZWxzKGhhdmUgJiBuZWVkKSk7Ci0KLSAgLy8gY2xlYXIgYmFja2J1
ZmZlcgotICBnbC5jbGVhckNvbG9yKDAuMjUsIDEsIDAuNzUsIDAuNSk7Ci0gIGdsLmNsZWFyKGds
LkNPTE9SX0JVRkZFUl9CSVQpOwotCi0gIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OwotICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsK
LQotICBnbC5jb3B5VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFt0ZXhGb3JtYXRdLCAw
LCAwLCAyLCAyLCAwKTsKLSAgaWYgKCFzaG91bGRQYXNzKSB7Ci0gICAgZ2xFcnJvclNob3VsZEJl
KAotICAgICAgICBnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgICAgICJzaG91bGQgbm90
IGJlIGFibGUgdG8gY29weVRleEltYWdlMkQgIiArIHRleEZvcm1hdCArICIgZnJvbSAiICsgYmFj
a0Zvcm1hdCk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgZ2xFcnJvclNob3VsZEJlKAotICAgICAg
Z2wsIGdsLk5PX0VSUk9SLAotICAgICAgInNob3VsZCBiZSBhYmxlIHRvIGNvcHlUZXhJbWFnZTJE
ICIgKyB0ZXhGb3JtYXQgKyAiIGZyb20gIiArIGJhY2tGb3JtYXQpOwotCi0gIC8vIERyYXcKLSAg
d3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLQotICB2YXIgZXhwZWN0ZWRDb2xvcnMgPSB7
Ci0gICAgJ0FMUEhBJzogWzAsIDAsIDAsIDEyN10sCi0gICAgJ0xVTUlOQU5DRSc6IFs2NCwgNjQs
IDY0LCAyNTVdLAotICAgICdMVU1JTkFOQ0VfQUxQSEEnOiBbNjQsIDY0LCA2NCwgMTI3XSwKLSAg
ICAnUkdCJzogWzY0LCAyNTUsIDE5MSwgMjU1XSwKLSAgICAnUkdCQSc6IFs2NCwgMjU1LCAxOTEs
IDEyN10KLSAgfTsKLQotICB2YXIgY29sb3IgPSBleHBlY3RlZENvbG9yc1t0ZXhGb3JtYXRdOwot
Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgY29sb3IsICJzaG91bGQgYmUgIiArIGNvbG9yLCAxNik7
Ci0KLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJv
cnMiKTsKLX0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2NvcHkt
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvY29weS10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmNWViOGY5MzRkMmNiZDE3MzM0MTk3ZWRlNjQ5MGZiMjdkYzhmNDgwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdGV4dHVyZXMvY29weS10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTU3ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGls
cy5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gZmFsc2U7Ci0KLWZ1bmN0aW9uIGluaXQoKQotewotICAgIGluaXRUZXN0aW5n
SGFybmVzc1dhaXRVbnRpbERvbmUoKTsKLQotICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgY29weVRl
eEltYWdlMkQgYW5kIGNvcHlUZXhTdWJJbWFnZTJEJyk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0K
LXZhciBnbCA9IG51bGw7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0KLWZ1bmN0aW9uIHJ1
blRlc3RJdGVyYXRpb24oYW50aWFsaWFzKQotewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgKLSAgICAgICAgYW50aWFsaWFzID8gImFudGlhbGlhc09uIiA6ICJhbnRp
YWxpYXNPZmYiKTsKLSAgICB2YXIgYXR0cmlicyA9IGFudGlhbGlhcyA/IHsgYW50aWFsaWFzOiB0
cnVlIH0gOiB7IGFudGlhbGlhczogZmFsc2UgfTsKLSAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoY2FudmFzLCBhdHRyaWJzKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVk
UXVhZChnbCk7Ci0gICAgdmFyIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJv
Z3JhbSwgInRleCIpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJEdXJp
bmcgSW5pdGlhbGl6YXRpb24iKTsKLQotICAgIGdsLmNvbG9yTWFzaygxLCAxLCAxLCAxKTsKLSAg
ICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKLSAgICBkZWJ1ZygnVGVzdGluZyBjb3B5VGV4SW1hZ2Uy
RCcpOwotCi0gICAgLy8gUmVkIGNhbnZhcwotICAgIGdsLmNsZWFyQ29sb3IoMSwgMCwgMCwgMSk7
Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQp
OwotCi0gICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgLy8gQmluZCB0
aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleHR1cmUpOwotICAgIC8vIFNldCB1cCB0ZXh0dXJlCi0gICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyLCAyLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBudWxsKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnVu
aWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKLQotICAgIHZhciBjb2xvcnMgPSBbCi0gICAgICBbMSwg
MCwgMCwgMV0sCi0gICAgICBbMCwgMSwgMCwgMV0sCi0gICAgICBbMCwgMCwgMSwgMV0sCi0gICAg
ICBbMC41LCAwLjUsIDAuNSwgMC41XSwKLSAgICBdOwotICAgIHZhciBjb3VudCA9IDA7Ci0gICAg
Zm9yICh2YXIgeXkgPSAtMjsgeXkgPD0gMjsgKyt5eSkgewotICAgICAgZm9yICh2YXIgeHggPSAt
MjsgeHggPD0gMjsgKyt4eCkgewotICAgICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDI7ICsr
aWkpIHsKLSAgICAgICAgICB2YXIgdGV4Q29sb3IgPSBjb2xvcnNbY291bnRdOwotICAgICAgICAg
IHZhciBjbGVhckNvbG9yID0gY29sb3JzWyhjb3VudCArIDEpICUgY29sb3JzLmxlbmd0aF07Ci0g
ICAgICAgICAgLy8gY2xlYXIgdG8gc29tZSBjb2xvcgotICAgICAgICAgIGdsLmNsZWFyQ29sb3Io
dGV4Q29sb3JbMF0sIHRleENvbG9yWzFdLCB0ZXhDb2xvclsyXSwgdGV4Q29sb3JbM10pOwotICAg
ICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklU
KTsKLQotICAgICAgICAgIC8vIGNvcHkgdGhhdCBjb2xvciB0byB0aGUgdGV4dHVyZS4KLSAgICAg
ICAgICBzd2l0Y2ggKGlpKSB7Ci0gICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgZ2wuY29w
eVRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgeHgsIHl5LCAyLCAyLCAwKTsK
LSAgICAgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgICAgICAg
ICAgICAgInVzaW5nIGNvcHlUZXhJbWFnZTJEOiB4ID0iICsgeHggKyAiLCB5ID0gIiArIHl5KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGdsLmNv
cHlUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHh4LCB5eSwgMiwgMik7Ci0g
ICAgICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICAgICAgICAg
ICAgICJ1c2luZyBjb3B5VGV4U3ViSW1hZ2UyRDogeCA9IiArIHh4ICsgIiwgeSA9ICIgKyB5eSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICAvLyBjbGVhciB0
byBzb21lIG90aGVyIGNvbG9yLgotICAgICAgICAgIGdsLmNsZWFyQ29sb3IoY2xlYXJDb2xvclsw
XSwgY2xlYXJDb2xvclsxXSwgY2xlYXJDb2xvclsyXSwgY2xlYXJDb2xvclszXSk7Ci0gICAgICAg
ICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwot
Ci0gICAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCi0gICAgICAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKLQotICAgICAgICAgIC8vIGNoZWNrIHRoZSByZW5kZXJpbmcgcmVz
dWx0cwotICAgICAgICAgIGZvciAodmFyIGl5ID0gMDsgaXkgPCAyOyArK2l5KSB7Ci0gICAgICAg
ICAgICBmb3IgKHZhciBpeCA9IDA7IGl4IDwgMjsgKytpeCkgewotICAgICAgICAgICAgICB2YXIg
eCA9IHh4ICsgaXg7Ci0gICAgICAgICAgICAgIHZhciB5ID0geXkgKyBpeTsKLSAgICAgICAgICAg
ICAgdmFyIGV4cGVjdGVkQ29sb3IgPSAoeCA8IDAgfHwgeSA8IDAgfHwgeCA+PSAyIHx8IHkgPj0g
MikgPwotICAgICAgICAgICAgICAgICAgWzAsMCwwLDBdIDoKLSAgICAgICAgICAgICAgICAgIFtN
YXRoLmZsb29yKDI1NSAqIHRleENvbG9yWzBdKSwKLSAgICAgICAgICAgICAgICAgICBNYXRoLmZs
b29yKDI1NSAqIHRleENvbG9yWzFdKSwKLSAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKDI1
NSAqIHRleENvbG9yWzJdKSwKLSAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKDI1NSAqIHRl
eENvbG9yWzNdKV07Ci0gICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGl4LCBp
eSwgMSwgMSwgZXhwZWN0ZWRDb2xvciwKLSAgICAgICAgICAgICAgICAgICIiICsgaXggKyAiLCAi
ICsgaXkgKyAiIHNob3VsZCByZW5kZXIgIiArIGV4cGVjdGVkQ29sb3IgKyAiICgrLy0xKSIsIDEp
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBjb3VudCA9IChjb3VudCAr
IDEpICUgY29sb3JzLmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLQotICAgIGRl
YnVnKCIiKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdChhbnRpYWxpYXMpCi17Ci0gICAgZGVidWco
IlRlc3Rpbmcgd2l0aCBhbnRpYWxpYXMgb24iKTsKLSAgICBydW5UZXN0SXRlcmF0aW9uKHRydWUp
OwotICAgIGRlYnVnKCJUZXN0aW5nIHdpdGggYW50aWFsaWFzIG9mZiIpOwotICAgIHJ1blRlc3RJ
dGVyYXRpb24oZmFsc2UpOwotCi0gICAgZmluaXNoVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci08Y2FudmFzIGlkPSJhbnRpYWxpYXNPbiIgd2lk
dGg9IjIiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJhbnRpYWxpYXNPZmYiIHdp
ZHRoPSIyIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdldC10ZXgtcGFyYW1ldGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL2dsLWdldC10ZXgtcGFyYW1ldGVyLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5Y2RmNWQ1NGZkNzQyOWJmNmRmYjk3ZmRiYTQ1MWU4
NzIxMWIyYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1nZXQtdGV4LXBhcmFtZXRlci5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0q
LwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHRpdGxlPldlYkdMIGdldFRleFBhcmFtZXRlciB0ZXN0PC90aXRsZT4KLTxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBoZWln
aHQ9IjQiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiAzMHB4OyI+PC9jYW52YXM+Ci08ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3Jp
cHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotCi0vLyBOT1RF
OiBXZSBleHBsaWNpdGx5IGRvIHRoaXMgaW4gYSBmdW5reSBvcmRlcgotLy8gdG8gaG9wZWZ1bGx5
IGZpbmQgc3VidGxlIGJ1Z3MuCi0KLXZhciB0YXJnZXRzID0gWwotICAnVEVYVFVSRV8yRCcsCi0g
ICdURVhUVVJFXzJEJywKLSAgJ1RFWFRVUkVfQ1VCRV9NQVAnLAotICAnVEVYVFVSRV9DVUJFX01B
UCcKLV07Ci0vLyBDcmVhdGUgdGV4dHVyZXMgb24gZGlmZmVyZW50IGFjdGl2ZSB0ZXh0dXJlcy4K
LWZvciAodmFyIGlpID0gMDsgaWkgPCB0YXJnZXRzLmxlbmd0aDsgKytpaSkgewotICB2YXIgdGFy
Z2V0ID0gdGFyZ2V0c1tpaV07Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGds
LmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAgKyBpaSk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsW3Rh
cmdldF0sIHRleCk7Ci19Ci0KLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91
bGQgYmUgbm8gZXJyb3JzIik7Ci0KLXZhciBzdGF0ZXMgPSBbCi0gIHsgc3RhdGU6J1RFWFRVUkVf
V1JBUF9TJywgICAgIGRlZmF1bHQ6ICdSRVBFQVQnLCAgICAgICAgICAgICAgICB2YWx1ZTE6ICdD
TEFNUF9UT19FREdFJywgICAgICAgIHZhbHVlMjogJ1JFUEVBVCcgICAgICAgIH0sCi0gIHsgc3Rh
dGU6J1RFWFRVUkVfV1JBUF9UJywgICAgIGRlZmF1bHQ6ICdSRVBFQVQnLCAgICAgICAgICAgICAg
ICB2YWx1ZTE6ICdDTEFNUF9UT19FREdFJywgICAgICAgIHZhbHVlMjogJ1JFUEVBVCcgICAgICAg
IH0sCi0gIHsgc3RhdGU6J1RFWFRVUkVfTUFHX0ZJTFRFUicsIGRlZmF1bHQ6ICdMSU5FQVInLCAg
ICAgICAgICAgICAgICB2YWx1ZTE6ICdORUFSRVNUJywgICAgICAgICAgICAgIHZhbHVlMjogJ0xJ
TkVBUicgICAgICAgIH0sCi0gIHsgc3RhdGU6J1RFWFRVUkVfTUlOX0ZJTFRFUicsIGRlZmF1bHQ6
ICdORUFSRVNUX01JUE1BUF9MSU5FQVInLCB2YWx1ZTE6ICdMSU5FQVJfTUlQTUFQX0xJTkVBUics
IHZhbHVlMjogJ05FQVJFU1QnICAgICAgIH0KLV07Ci0KLWZ1bmN0aW9uIGFwcGx5U3RhdGVzKGZu
KSB7Ci0gIGZvciAodmFyIHNzID0gMDsgc3MgPCBzdGF0ZXMubGVuZ3RoOyArK3NzKSB7Ci0gICAg
dmFyIHN0YXRlSW5mbyA9IHN0YXRlc1tzc107Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRh
cmdldHMubGVuZ3RoOyArK2lpKSB7Ci0JICB2YXIgdGFyZ2V0ID0gdGFyZ2V0c1tpaV07Ci0gICAg
ICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsgaWkpOwotICAgICAgZm4odGFyZ2V0LCBz
dGF0ZUluZm8pOwotICAgIH0KLSAgfQotfQotCi0vLyB0ZXN0IHRoZSBkZWZhdWx0IHN0YXRlLgot
YXBwbHlTdGF0ZXMoZnVuY3Rpb24odGFyZ2V0LCBzdGF0ZUluZm8pIHsKLSAgdmFyIGEgPSAnZ2wu
Z2V0VGV4UGFyYW1ldGVyKGdsWyInICsgdGFyZ2V0ICsgJyJdLCBnbFsiJyArIHN0YXRlSW5mby5z
dGF0ZSArICciXSknOwotICB2YXIgYiA9ICdnbFsiJyArIHN0YXRlSW5mby5kZWZhdWx0ICsgJyJd
JzsKLSAgc2hvdWxkQmUoYSwgYik7Ci19KTsKLQotLy8gdGVzdCBuZXcgc3RhdGUKLWFwcGx5U3Rh
dGVzKGZ1bmN0aW9uKHRhcmdldCwgc3RhdGVJbmZvKSB7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2xb
dGFyZ2V0XSwgZ2xbc3RhdGVJbmZvLnN0YXRlXSwgZ2xbc3RhdGVJbmZvLnZhbHVlMV0pOwotfSk7
Ci0KLWFwcGx5U3RhdGVzKGZ1bmN0aW9uKHRhcmdldCwgc3RhdGVJbmZvKSB7Ci0gIHZhciBhID0g
J2dsLmdldFRleFBhcmFtZXRlcihnbFsiJyArIHRhcmdldCArICciXSwgZ2xbIicgKyBzdGF0ZUlu
Zm8uc3RhdGUgKyAnIl0pJzsKLSAgdmFyIGIgPSAnZ2xbIicgKyBzdGF0ZUluZm8udmFsdWUxICsg
JyJdJzsKLSAgc2hvdWxkQmUoYSwgYik7Ci19KTsKLQotLy8gdGVzdCBkaWZmZXJlbnQgc3RhdGVz
IG9uIGVhY2ggdGFyZ2V0LgotZnVuY3Rpb24gZ2V0U3RhdGVWYWx1ZShjb3VudCwgc3RhdGVJbmZv
KSB7Ci0gIHJldHVybiAoY291bnQgJSAyKSA/IHN0YXRlSW5mby52YWx1ZTIgOiBzdGF0ZUluZm8u
dmFsdWUxOwotfQotCi1hcHBseVN0YXRlcyhmdW5jdGlvbigpIHsKLSAgdmFyIGNvdW50ID0gMDsK
LSAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCwgc3RhdGVJbmZvKSB7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbFt0YXJnZXRdLCBnbFtzdGF0ZUluZm8uc3RhdGVdLCBnbFtnZXRTdGF0ZVZhbHVlKGNv
dW50LCBzdGF0ZUluZm8pXSk7Ci0gICAgKytjb3VudDsKLSAgfQotfSgpKTsKLQotYXBwbHlTdGF0
ZXMoZnVuY3Rpb24oKSB7Ci0gIHZhciBjb3VudCA9IDA7Ci0gIHJldHVybiBmdW5jdGlvbih0YXJn
ZXQsIHN0YXRlSW5mbykgewotICAgIHZhciBhID0gJ2dsLmdldFRleFBhcmFtZXRlcihnbFsiJyAr
IHRhcmdldCArICciXSwgZ2xbIicgKyBzdGF0ZUluZm8uc3RhdGUgKyAnIl0pJzsKLSAgICB2YXIg
YiA9ICdnbFsiJyArIGdldFN0YXRlVmFsdWUoY291bnQsIHN0YXRlSW5mbykgKyAnIl0nOwotICAg
IHNob3VsZEJlKGEsIGIpOwotICAgICsrY291bnQ7Ci0gIH07Ci19KCkpOwotCi1nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIpOwotCi12YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1waXhlbHN0b3JlaS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9nbC1waXhlbHN0b3JlaS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzBjNDUxNGY2OTFlMDI1YzUxMmFiNThjZWZlMDk3
ZGI0MzcxOTI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtcGl4ZWxzdG9yZWkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDExOSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50
ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
Ci0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVz
ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBz
dWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j
bHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1h
dGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJ
TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJ
VFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu
Ci0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBC
RSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBB
UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklB
TFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQot
LS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5XZWJHTCBwaXhlbFN0b3JlaSBUZXN0PC90aXRsZT4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJl
eGFtcGxlIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iMmQw
MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9IjJkMDEiIHdp
ZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSIyZDAyIiB3aWR0aD0i
NTAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iMmQwMyIgd2lkdGg9IjUwIiBo
ZWlnaHQ9IjUwIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwotdm9pZCBtYWluKCkgewotICBn
bF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0IGlkPSJmc2hh
ZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXZvaWQgbWFpbigpIHsKLSAgZ2xfRnJh
Z0NvbG9yID0gdmVjNCgxLjAsMC4wLDAuMCwxLjApOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+
Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiBpbml0KCkgewotICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IGRyYXdJbWFnZSBhbmQgcmVhZFBpeGVscyBhcmUgbm90IGVmZmVjdGVk
IGJ5IGdsLlBpeGVsc3RvcmVpKGdsLlBBQ0tfQUxJR05NRU5UKSBhbmQgdmlzYSB2ZXJzYSIpOwot
Ci0gIGRlYnVnKCJUaGVyZSBzaG91bGQgYmUgNSByZWQgdHJpYW5nbGVzIG9uIDUgYmxhY2sgc3F1
YXJlcyBhYm92ZSIpOwotICBkZWJ1ZygiIik7Ci0KLSAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotICB2YXIgY2FudmFzM2QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwot
ICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gIHZhciBwcm9ncmFt
ID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVyIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRp
b24iXSk7Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLDAuNSwwLCAtMC41LC0wLjUs
MCwgMC41LC0wLjUsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOwotICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgwKTsKLSAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwgZmFs
c2UsIDAsIDApOwotCi0gIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9C
VUZGRVJfQklUKTsKLSAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpOwotCi0gIGZ1
bmN0aW9uIGNoZWNrRGF0YShjdHgsIG5hbWUpIHsKLSAgICAvLyBUZXN0IHNldmVyYWwgbG9jYXRp
b25zCi0gICAgLy8gRmlyc3QgbGluZSBzaG91bGQgYmUgYWxsIGJsYWNrCi0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChjdHgsIDAsIDAsIDUwLCAxLCBbMCwgMCwgMCwgMF0pOwotCi0gICAgLy8gTGlu
ZSAyNSBzaG91bGQgYmUgcmVkIGZvciBhdCBsZWFzdCA2IHJlZCBwaXhlbHMgc3RhcnRpbmcgMjIg
cGl4ZWxzIGluCi0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChjdHgsIDIyLCAyNSwgNiwgMSwgWzI1
NSwgMCwgMCwgMjU1XSk7Ci0KLSAgICAvLyBMYXN0IGxpbmUgc2hvdWxkIGJlIGFsbCBibGFjawot
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoY3R4LCAwLCA0OSwgNTAsIDEsIFswLCAwLCAwLCAwXSk7
Ci0gIH0KLQotICB2YXIgY3R4MmQ7Ci0KLSAgZnVuY3Rpb24gY2hlY2tDb2xvcnMoKSB7Ci0gICAg
Y2hlY2tEYXRhKGdsLCAiM2QgY29udGV4dCIpOwotICAgIGNoZWNrRGF0YShjdHgyZCwgIjJkIGNv
bnRleHQiKTsKLSAgfQotCi0gIHZhciB0YWJsZSA9IFsxLCAyLCA0LCA4XTsKLSAgZm9yICh2YXIg
aWkgPSAwOyBpaSA8IHRhYmxlLmxlbmd0aDsgKytpaSkgewotICAgIGdsLnBpeGVsU3RvcmVpKGds
LlBBQ0tfQUxJR05NRU5ULCB0YWJsZVtpaV0pOwotICAgIGN0eDJkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIjJkMCIgKyBpaSkuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICBjdHgyZC5nbG9iYWxD
b21wb3NpdGVPcGVyYXRpb24gPSAnY29weSc7Ci0gICAgY3R4MmQuZHJhd0ltYWdlKGNhbnZhczNk
LCAwLCAwKTsKLSAgICBjaGVja0NvbG9ycygpOwotICAgIGFzc2VydE1zZyhnbC5nZXRQYXJhbWV0
ZXIoZ2wuUEFDS19BTElHTk1FTlQpID09IHRhYmxlW2lpXSwKLSAgICAgICAgIlBBQ0tfQUxJR05N
RU5UIGlzICIgKyB0YWJsZVtpaV0pOwotICB9Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvZ2wtdGV4aW1hZ2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvZ2wtdGV4aW1hZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjI5NjAzMjRmNDMzNTllMDc4ODZhYjllMGU5MzljNjExNjBlYTQxNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL2dsLXRleGltYWdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NDYgKzAsMCBA
QAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0q
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wg
dGV4SW1hZ2UyRCBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjE2IiBzdHlsZT0i
d2lkdGg6IDI1NnB4OyBoZWlnaHQ6IDQ4cHg7Ij48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ugc3Ry
aWN0IjsKLWRlc2NyaXB0aW9uKCJUZXN0IHRleEltYWdlMkQgY29udmVyc2lvbnMuIik7Ci12YXIg
d3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7Ci1nbC5kaXNhYmxlKGdsLkRJVEhFUik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRl
eHR1cmVkUXVhZChnbCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkOwotCi1nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwot
Ci12YXIgaW1nVVJMcyA9IFsKLSAgJy4uL3Jlc291cmNlcy9ncmF5LXJhbXAtMjU2LXdpdGgtMTI4
LWFscGhhLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni5wbmcnLAotICAnLi4v
cmVzb3VyY2VzL2dyYXktcmFtcC1kZWZhdWx0LWdhbW1hLnBuZycsCi0gICcuLi9yZXNvdXJjZXMv
Z3JheS1yYW1wLWdhbW1hMC4xLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1h
MS4wLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMi4wLnBuZycsCi0gICcu
Li9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hNC4wLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvZ3Jh
eS1yYW1wLWdhbW1hOS4wLnBuZycsCi0gICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLnBuZycsCi0g
ICcuLi9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmcnLAotICAnLi4vcmVzb3VyY2VzLzN4My5wbmcn
LAotICAnLi4vcmVzb3VyY2VzL2JsdWUtMXgxLmpwZycsCi0gICcuLi9yZXNvdXJjZXMvcmVkLWlu
ZGV4ZWQucG5nJywKLSAgJy4uL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nJywKLSAgJy4u
L3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jb2xvcnNwaW4tcHJvZmlsZS5qcGcnLAotICAn
Li4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9yc3Bpbi1wcm9maWxlLnBuZycsCi0g
ICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZycsCi0g
ICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JtYXRjaC1wcm9maWxlLnBuZycs
Ci0gICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nJywK
LSAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zbXB0ZS1jLXByb2ZpbGUucG5nJywK
LSAgJy4uL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1zcmdiLWllYzYxOTY2LTIuMS1wcm9m
aWxlLnBuZyddOwotCi0KLXd0dS5sb2FkSW1hZ2VzQXN5bmMoaW1nVVJMcywgcnVuVGVzdHMpOwot
Ci1mdW5jdGlvbiBydW5UZXN0cyhpbWdzKSB7Ci0gIHZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgInRleCIpOwotICBnbC51bmlmb3JtMWkobG9jLCAwKTsKLQotICBnbC5k
aXNhYmxlKGdsLkJMRU5EKTsKLSAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLQotICB2YXIg
d2lkdGggPSBnbC5jYW52YXMud2lkdGg7Ci0gIHZhciBoZWlnaHQgPSBnbC5jYW52YXMuaGVpZ2h0
OwotCi0gIGZ1bmN0aW9uIGNoZWNrUGl4ZWwoYnVmLCB4LCB5LCBjb2xvcikgewotICAgIHZhciBv
ZmYgPSAoeSAqIHdpZHRoICsgeCkgKiA0OwotICAgIHZhciBtc2cgPSAicGl4ZWwgIiArIHggKyAi
LCAiICsgeSArICIgc2hvdWxkIGJlICIgKwotICAgICAgICAgICAgICBjb2xvclswXSArICIsICIg
KwotICAgICAgICAgICAgICBjb2xvclsxXSArICIsICIgKwotICAgICAgICAgICAgICBjb2xvclsy
XSArICIsICIgKwotICAgICAgICAgICAgICBjb2xvclszXSArICIgd2FzICIgKwotICAgICAgICAg
ICAgICBidWZbb2ZmICsgMF0gKyAiLCAiICsKLSAgICAgICAgICAgICAgYnVmW29mZiArIDFdICsg
IiwgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAyXSArICIsICIgKwotICAgICAgICAgICAg
ICBidWZbb2ZmICsgM107Ci0KLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgNDsgKytpaSkgewot
ICAgICAgaWYgKGJ1ZltvZmYgKyBpaV0gIT0gY29sb3JbaWldKSB7Ci0gICAgICAgIHRlc3RGYWls
ZWQobXNnKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgIH0KLSAgICB0ZXN0UGFzc2Vk
KG1zZyk7Ci0gIH0KLQotICBmdW5jdGlvbiBjaGVja1BpeGVsUmFuZ2UoYnVmLCB4LCB5LCBjb2xv
ciwgYWxsb3dlZFJhbmdlKSB7Ci0gICAgdmFyIG9mZiA9ICh5ICogd2lkdGggKyB4KSAqIDQ7Ci0g
ICAgdmFyIG1zZyA9ICJwaXhlbCAiICsgeCArICIsICIgKyB5ICsgIiBzaG91bGQgYmUgd2l0aGlu
ICIgKwotICAgICAgICAgICAgICBhbGxvd2VkUmFuZ2UgKyAiIHVuaXRzIG9mICIgKwotICAgICAg
ICAgICAgICBjb2xvclswXSArICIsICIgKwotICAgICAgICAgICAgICBjb2xvclsxXSArICIsICIg
KwotICAgICAgICAgICAgICBjb2xvclsyXSArICIsICIgKwotICAgICAgICAgICAgICBjb2xvclsz
XTsKLSAgICB2YXIgc3ViTXNnID0gIiB3YXMgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAw
XSArICIsICIgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgMV0gKyAiLCAiICsKLSAgICAgICAg
ICAgICAgYnVmW29mZiArIDJdICsgIiwgIiArCi0gICAgICAgICAgICAgIGJ1ZltvZmYgKyAzXTsK
LSAgICAvLyBXaGVuIHJ1bm5pbmcgaW4gV2ViS2l0J3MgdGVzdCBoYXJuZXNzLCB3ZSBkb24ndCB3
YW50IHRvIHByaW50IHRoZQotICAgIC8vIHBpeGVsIHZhbHVlIHdoZW4gdGhlIHRlc3QgcGFzc2Vz
LCBiZWNhdXNlIGRpZmZlcmVudCBtYWNoaW5lcyBtaWdodAotICAgIC8vIGhhdmUgZGlmZmVyZW50
IHJlc3VsdHMgYW5kIHdlIHJlY29yZCB0aGUgdGV4dCBvdXRwdXQuCi0gICAgdmFyIGluRHVtcFJl
bmRlclRyZWUgPSB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXI7Ci0gICAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IDQ7ICsraWkpIHsKLSAgICAgIGlmIChNYXRoLmFicyhidWZbb2ZmICsgaWldIC0g
Y29sb3JbaWldKSA+IGFsbG93ZWRSYW5nZSkgewotICAgICAgICB0ZXN0RmFpbGVkKG1zZyArIHN1
Yk1zZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICB9Ci0gICAgdGVzdFBhc3NlZCht
c2cgKyAoaW5EdW1wUmVuZGVyVHJlZSA/ICIiIDogc3ViTXNnKSk7Ci0gIH0KLQotICB2YXIgdGV4
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXgpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9T
LCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgZ2wu
dGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5F
QVJFU1QpOwotCi0gIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQp
OwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHBpeGVscyBhcmUgTk9UIHByZS1tdWx0
aXBsaWVkIik7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5S
R0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2Vz
L3plcm8tYWxwaGEucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
U2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgYnVmKTsKLQotICB2YXIgbGVmdCA9IDA7Ci0gIHZhciBtaWRkbGUg
PSBNYXRoLmZsb29yKHdpZHRoIC8gMik7Ci0gIHZhciByaWdodCA9IHdpZHRoIC0gMTsKLSAgdmFy
IGJvdHRvbSA9IDA7Ci0gIHZhciBjZW50ZXIgPSBNYXRoLmZsb29yKGhlaWdodCAvIDIpOwotICB2
YXIgdG9wID0gaGVpZ2h0IC0gMTsKLSAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgdG9wLCAgICBb
ICAwLCAgIDAsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIHRvcCwgICAg
WzI1NSwgICAwLCAyNTUsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICB0b3AsICAg
IFsgIDAsICAgMCwgMjU1LCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgY2VudGVy
LCBbMTI4LCAxMjgsIDEyOCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIGNlbnRl
ciwgWzI1NSwgMjU1LCAyNTUsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICBjZW50
ZXIsIFsgIDAsIDI1NSwgMjU1LCAyNTVdKTsKLSAgY2hlY2tQaXhlbChidWYsIGxlZnQsICAgYm90
dG9tLCBbMjU1LCAgIDAsICAgMCwgMjU1XSk7Ci0gIGNoZWNrUGl4ZWwoYnVmLCBtaWRkbGUsIGJv
dHRvbSwgWzI1NSwgMjU1LCAgIDAsIDI1NV0pOwotICBjaGVja1BpeGVsKGJ1ZiwgcmlnaHQsICBi
b3R0b20sIFsgIDAsIDI1NSwgICAwLCAyNTVdKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJj
aGVjayBxdWFudGl6YXRpb24iKTsKLSAgdmFyIHF1YW50SW5mbyA9IFsKLSAgICB7Zm9ybWF0OiBn
bC5SR0JBLCB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLCAgICAgICAgICBjb3VudHM6IFsyNTYsIDI1
NiwgMjU2LCAyNTZdfSwKLSAgICB7Zm9ybWF0OiBnbC5SR0JBLCB0eXBlOiBnbC5VTlNJR05FRF9T
SE9SVF80XzRfNF80LCBjb3VudHM6IFsgMTYsICAxNiwgIDE2LCAgMTZdfSwKLSAgICB7Zm9ybWF0
OiBnbC5SR0IsICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwgICBjb3VudHM6IFsgMzIs
ICA2NCwgIDMyLCAgIDFdfSwKLSAgICB7Zm9ybWF0OiBnbC5SR0JBLCB0eXBlOiBnbC5VTlNJR05F
RF9TSE9SVF81XzVfNV8xLCBjb3VudHM6IFsgMzIsICAzMiwgIDMyLCAgIDJdfV07Ci0gIGZvciAo
dmFyIHFxID0gMDsgcXEgPCBxdWFudEluZm8ubGVuZ3RoOyArK3FxKSB7Ci0gICAgdmFyIGluZm8g
PSBxdWFudEluZm9bcXFdOwotICAgIGdsLnRleEltYWdlMkQoCi0gICAgICAgIGdsLlRFWFRVUkVf
MkQsIDAsIGluZm8uZm9ybWF0LCBpbmZvLmZvcm1hdCwgaW5mby50eXBlLAotICAgICAgICBpbWdz
WycuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni5wbmcnXSk7Ci0gICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLSAg
ICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwg
d2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgICB2YXIg
Y291bnRzID0gW3sgfSwgeyB9LCB7IH0sIHsgfV07Ci0gICAgdmFyIG51bVVuaXF1ZVZhbHVlcyA9
IFswLCAwLCAwLCAwXTsKLSAgICAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIHVuaXF1ZSB2YWx1ZXMg
aW4gZWFjaCBjaGFubmVsLgotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCB3aWR0aCAqIGhlaWdo
dCAqIDQ7IGlpICs9IDQpIHsKLSAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCA0OyArK2pqKSB7
Ci0gICAgICAgIHZhciB2ID0gYnVmW2lpICsgampdOwotICAgICAgICBpZiAoIWNvdW50c1tqal1b
dl0pIHsKLSAgICAgICAgICBjb3VudHNbampdW3ZdID0gMTsKLSAgICAgICAgICArK251bVVuaXF1
ZVZhbHVlc1tqal07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgKytjb3VudHNbampdW3Zd
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCA0
OyArK2lpKSB7Ci0gICAgICBhc3NlcnRNc2cobnVtVW5pcXVlVmFsdWVzW2lpXSA9PSBpbmZvLmNv
dW50c1tpaV0sCi0gICAgICAgICAgICAgICAgIlRoZXJlIHNob3VsZCBiZSAiICsgaW5mby5jb3Vu
dHNbaWldICsKLSAgICAgICAgICAgICAgICAiIHVuaXF1ZSB2YWx1ZXMgaW4gY2hhbm5lbCAiICsg
aWkgKyAiLiBGb3VuZCAiICsKLSAgICAgICAgICAgICAgICBudW1VbmlxdWVWYWx1ZXNbaWldKTsK
LSAgICB9Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJDaGVjayB0aGF0IGdhbW1hIHNl
dHRpbmdzIGRvbid0IGVmZmVjdCA4Yml0IHBuZ3MiKTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCwgZ2wuTk9ORSk7Ci0gIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0g
ICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1kZWZhdWx0LWdhbW1h
LnBuZyddKTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsK
LSAgdmFyIHJlZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7Ci0gIGdsLnJl
YWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
cmVmKTsKLQotICB2YXIgZ2FtbWFJbWFnZXMgPSBbCi0gICAgJy4uL3Jlc291cmNlcy9ncmF5LXJh
bXAtZ2FtbWEwLjEucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTEuMC5w
bmcnLAotICAgICcuLi9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMi4wLnBuZycsCi0gICAgJy4u
L3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAucG5nJywKLSAgICAnLi4vcmVzb3VyY2VzL2dy
YXktcmFtcC1nYW1tYTkuMC5wbmcnXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGdhbW1hSW1h
Z2VzLmxlbmd0aDsgKytpaSkgewotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgICBpbWdz
W2dhbW1hSW1hZ2VzW2lpXV0pOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0g
ICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBidWYpOwotICAgIHZhciBzYW1lID0gdHJ1ZTsKLSAgICBmb3IgKHZhciBqaiA9IDA7
IGpqIDwgd2lkdGggKiBoZWlnaHQgKiA0OyArK2pqKSB7Ci0gICAgICBpZiAoYnVmW2pqXSAhPSBy
ZWZbampdKSB7Ci0gICAgICAgIHNhbWUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9
Ci0gICAgfQotICAgIGFzc2VydE1zZyhzYW1lLCAicGl4ZWxzIHNob3VsZCBiZSBzYW1lIHJlZ2Fy
ZGxlc3Mgb2YgZ2FtbWEgc2V0dGluZ3MuIik7Ci0gIH0KLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVn
KCJjaGVjayBwaXhlbHMgYXJlIFVOIHByZS1tdWx0aXBsaWVkIik7Ci0gIGZvciAodmFyIGlpID0g
MDsgaWkgPCAyOyArK2lpKSB7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCAxLCAxLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgICBp
ZiAoaWkgPT0gMCkgewotICAgICAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIik7Ci0gICAgICBjYW52YXMyZC53aWR0aCA9IDI1NjsKLSAgICAgIGNhbnZhczJk
LmhlaWdodCA9IDE7Ci0gICAgICB2YXIgY3R4ID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsK
LSAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nc1snLi4vcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0
aC0xMjgtYWxwaGEucG5nJ10sIDAsIDApOwotICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQpOwotICAg
IH0gZWxzZSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwg
Z2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgICAgICBpbWdzWycuLi9y
ZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni13aXRoLTEyOC1hbHBoYS5wbmcnXSk7Ci0gICAgfQotICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZy
b20gc2V0dXAuIik7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgICB2YXIg
YnVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLSAgICBnbC5yZWFkUGl4
ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7
Ci0gICAgdmFyIGx0MTI4Q291bnQgPSBbMCwgMCwgMF07Ci0gICAgdmFyIGdlMTI4Q291bnQgPSBb
MCwgMCwgMF07Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IHdpZHRoOyArK2pqKSB7Ci0gICAg
ICB2YXIgb2ZmID0gamogKiA0OwotICAgICAgZm9yICh2YXIgY2MgPSAwOyBjYyA8IDM7ICsrY2Mp
IHsKLSAgICAgICAgaWYgKGJ1ZltvZmYgKyBjY10gPCAxMjgpIHsKLSAgICAgICAgICArK2x0MTI4
Q291bnRbY2NdOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICsrZ2UxMjhDb3VudFtjY107
Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgLy8gTm90IHN1cmUgdGhlIGV4YWN0IGNv
dW50IGhlcmUgYmVjYXVzZSBnYW1tYSBkb2VzIGVmZmVjdCBkcmF3aW5nIGludG8gdGhlCi0gICAg
Ly8gY2FudmFzIGJ1dCBpdCBzaG91bGQgYmUgY2xvc2UgdG8gNTAlIHNvIEknbGwgcGFzcyA0NSUK
LSAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMzsgKytqaikgewotICAgICAgYXNzZXJ0TXNnKGdl
MTI4Q291bnRbampdID4gMjU2ICogMC40NSwKLSAgICAgICAgICAgICAgICAiSGFsZiB0aGUgcGl4
ZWxzIGluIGNoYW5uZWwgIiArIGpqICsKLSAgICAgICAgICAgICAgICAiIHNob3VsZCBiZSA+PSAx
MjgsMTI4LDEyOC4gZm91bmQgIiArCi0gICAgICAgICAgICAgICAgKChnZTEyOENvdW50W2pqXSAv
IDI1NikgKiAxMDApLnRvRml4ZWQoKSArICIlIik7Ci0gICAgICBhc3NlcnRNc2cobHQxMjhDb3Vu
dFtqal0gPiAyNTYgKiAwLjQ1LAotICAgICAgICAgICAgICAgICJIYWxmIHRoZSBwaXhlbHMgaW4g
Y2hhbm5lbCAiICsgamogKwotICAgICAgICAgICAgICAgICIgc2hvdWxkIGJlIDwgMTI4LDEyOCwx
MjguIGZvdW5kICIgKwotICAgICAgICAgICAgICAgICgobHQxMjhDb3VudFtqal0gLyAyNTYpICog
MTAwKS50b0ZpeGVkKCkgKyAiJSIpOwotICAgIH0KLSAgfQotCi0gIGRlYnVnKCIiKTsKLSAgZGVi
dWcoImNoZWNrIGNhbnZhcyBwaXhlbHMgYXJlIFVOIHByZS1tdWx0aXBsaWVkIik7Ci0gIHZhciBj
YW52YXMyZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBjYW52YXMyZC53
aWR0aCA9IDE7Ci0gIGNhbnZhczJkLmhlaWdodCA9IDE7Ci0gIHZhciBjdHggPSBjYW52YXMyZC5n
ZXRDb250ZXh0KCIyZCIpOwotICBjdHguZmlsbFN0eWxlID0icmdiYSgyNTUsMjU1LDI1NSwwLjUp
IjsKLSAgY3R4LmZpbGxSZWN0KDAsIDAsIDI1NiwgMSk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQp
OwotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICBnbC5yZWFkUGl4ZWxzKDAsIDAs
IHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7Ci0gIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0
dXAuIik7Ci0gIGNoZWNrUGl4ZWxSYW5nZShidWYsIDAsIDAsIFsyNTUsIDI1NSwgMjU1LCAxMjdd
LCA0KTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayBjYW52YXMgcGl4ZWxzIGFyZSBw
cmUtbXVsdGlwbGllZCIpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wsIHRydWUpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgd3R1LmNsZWFy
QW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotICBjaGVj
a1BpeGVsUmFuZ2UoYnVmLCAwLCAwLCBbMTI3LCAxMjcsIDEyNywgMTI3XSwgNCk7Ci0KLQotICBk
ZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayBwaXhlbHMgYXJlIHByZS1tdWx0aXBsaWVkIik7Ci0g
IGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgdHJ1ZSk7
Ci0gIC8vIFRPRE8oZ21hbik6IHVzZSBkaWZmZXJlbnQgdGV4dHVyZSB0aGF0IHdvbid0IHBhc3Mg
b24gZmFpbHVyZQotICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3Vy
Y2VzL3plcm8tYWxwaGEucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5jbGVhckFuZERyYXdV
bml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLQotICB2YXIgc2FtZSA9IHRydWU7Ci0gIGZvciAo
dmFyIGpqID0gMDsgamogPCB3aWR0aCAqIGhlaWdodCAqIDQ7ICsramopIHsKLSAgICBpZiAoYnVm
W2pqXSAhPSAwKSB7Ci0gICAgICBzYW1lID0gZmFsc2U7Ci0gICAgICBicmVhazsKLSAgICB9Ci0g
IH0KLSAgYXNzZXJ0TXNnKHNhbWUsICJwaXhlbHMgc2hvdWxkIGFsbCBiZSAwLiIpOwotCi0gIGRl
YnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHBpeGVscyBhcmUgZmxpcHBlZCIpOwotICBnbC5waXhl
bFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGZhbHNlKTsKLSAgZ2wu
cGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7Ci0gIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsCi0g
ICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzLzN4My5wbmcnXSk7Ci0gIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAi
KTsKLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAw
LCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotCi0gIGNo
ZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIHRvcCwgICAgWzI1NSwgICAwLCAgIDAsIDI1NV0pOwotICBj
aGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCB0b3AsICAgIFsyNTUsIDI1NSwgICAwLCAyNTVdKTsKLSAg
Y2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgdG9wLCAgICBbMjU1LCAgIDAsICAgMCwgMjU1XSk7Ci0g
IGNoZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIGNlbnRlciwgWzI1NSwgICAwLCAyNTUsIDI1NV0pOwot
ICBjaGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsyNTUsICAgMCwgICAwLCAyNTVdKTsK
LSAgY2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgY2VudGVyLCBbICAwLCAyNTUsICAgMCwgMjU1XSk7
Ci0gIGNoZWNrUGl4ZWwoYnVmLCBsZWZ0LCAgIGJvdHRvbSwgWyAgMCwgICAwLCAgIDAsIDI1NV0p
OwotICBjaGVja1BpeGVsKGJ1ZiwgbWlkZGxlLCBib3R0b20sIFsgIDAsICAgMCwgMjU1LCAyNTVd
KTsKLSAgY2hlY2tQaXhlbChidWYsIHJpZ2h0LCAgYm90dG9tLCBbMjU1LCAgIDAsICAgMCwgMjU1
XSk7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiY2hlY2sgdXBsb2FkaW5nIG9mIGltYWdlcyB3
aXRoIG5vIGFscGhhIGNoYW5uZWwgd29ya3MiKTsKLSAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNL
X1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19GTElQX1lfV0VCR0wsIGZhbHNlKTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICBp
bWdzWycuLi9yZXNvdXJjZXMvYmx1ZS0xeDEuanBnJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5j
bGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhl
aWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgY2hlY2tQaXhlbFJhbmdl
KGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgICAwLCAgIDAsIDI1NSwgMjU1XSwgMTApOwotICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyIpOwotCi0g
IGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHVwbG9hZGluZyBvZiAxNi1iaXQgaW1hZ2VzIik7
Ci0gIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgZmFs
c2UpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmYWxzZSk7Ci0g
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lH
TkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgaW1nc1snLi4vcmVzb3VyY2VzL2dyZWVuLTJ4Mi0x
NmJpdC5wbmcnXSk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQg
YmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGds
KTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBidWYpOwotICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBtaWRkbGUsIGNlbnRlciwg
WyAgIDE1LCAxMjEsICAgMCwgMjU1XSwgMTApOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyIpOwotCi0gIGRlYnVnKCIiKTsKLSAgZGVidWco
ImNoZWNrIHVwbG9hZGluZyBvZiBpbWFnZXMgd2l0aCBJQ0MgcHJvZmlsZXMiKTsKLSAgZ2wucGl4
ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7Ci0gIGds
LnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZhbHNlKTsKLSAgZ2wucGl4ZWxT
dG9yZWkoZ2wuVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCwgZ2wuTk9ORSk7Ci0K
LSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5T
SUdORURfQllURSwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMvc21hbGwtc3F1
YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUuanBnJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5j
bGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhl
aWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgLy8gVGhlIGltYWdlIGlz
IHJlZC4gIEhvd2V2ZXIsIGlmIHdlIGlnbm9yZSB0aGUgY29sb3IgcHJvZmlsZSwgaXQgaXMgYmx1
ZS4KLSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsgMCwgMCwgMjU1LCAy
NTVdLCAxMCk7Ci0KLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGds
LlJHQiwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJj
ZXMvc21hbGwtc3F1YXJlLXdpdGgtY29sb3JzcGluLXByb2ZpbGUucG5nJ10pOwotICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVw
Iik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwg
MCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgLy8g
VGhlIGltYWdlIGlzIHJlZC4gIEhvd2V2ZXIsIGlmIHdlIGlnbm9yZSB0aGUgY29sb3IgcHJvZmls
ZSwgaXQgaXMgYmx1ZS4KLSAgY2hlY2tQaXhlbFJhbmdlKGJ1ZiwgbWlkZGxlLCBjZW50ZXIsIFsg
MCwgMCwgMjU1LCAyNTVdLCAxMCk7Ci0KLSAgdmFyIGljY1BOR3MgPSBbCi0gICAgJy4uL3Jlc291
cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1jaWUtcmdiLXByb2ZpbGUucG5nJywKLSAgICAnLi4vcmVz
b3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNvbG9ybWF0Y2gtcHJvZmlsZS5wbmcnLAotICAgICcu
Li9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtZS1zcmdiLXByb2ZpbGUucG5nJywKLSAgICAn
Li4vcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNtcHRlLWMtcHJvZmlsZS5wbmcnLAotICAg
ICcuLi9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtc3JnYi1pZWM2MTk2Ni0yLjEtcHJvZmls
ZS5wbmcnXTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGljY1BOR3MubGVuZ3RoOyArK2lpKSB7
Ci0gICAgdmFyIGJ1ZjIgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwotICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0IsIGdsLlVOU0lH
TkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgICBpbWdzW2ljY1BOR3NbaWldXSk7Ci0gICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBz
ZXR1cCIpOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gICAgZ2wucmVhZFBp
eGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYy
KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVy
cm9ycyIpOwotICAgIHZhciBzYW1lID0gdHJ1ZTsKLSAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwg
YnVmLmxlbmd0aDsgKytqaikgewotICAgICAgaWYgKGJ1Zltqal0gIT0gYnVmMltqal0pIHsKLSAg
ICAgICAgc2FtZSA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gICAg
YXNzZXJ0TXNnKHNhbWUsICJ1cGxvYWRpbmcgUE5HcyB3aXRoIHNhbWUgZGF0YSBidXQgdmFyaW91
cyBJQ0MgcHJvZmlsZXMgc2hvdWxkIGdlbmVyYXRlIHRoZSBzYW1lIHJlc3VsdHMiKTsKLSAgfQot
Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoImNoZWNrIHVwbG9hZGluZyBvZiBpbmRleGVkIFBORyBp
bWFnZXMiKTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0IsIGdsLlJH
QiwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMv
cmVkLWluZGV4ZWQucG5nJ10pOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
U2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwIik7Ci0gIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7Ci0gIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgYnVmKTsKLSAgLy8gVGhlIGltYWdlIHNob3VsZCBiZSByZWQuCi0g
IGNoZWNrUGl4ZWxSYW5nZShidWYsIG1pZGRsZSwgY2VudGVyLCBbIDI1NSwgMCwgMCwgMjU1IF0s
IDEwKTsKLQotICBkZWJ1ZygiIikKLSAgZGVidWcoImNoZWNrIGNhbGxpbmcgdGV4SW1hZ2UyRCB3
aXRoIE5VTEwgY2xlYXJzIHRoZSB0ZXh0dXJlIik7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgZ2wuUkdCLAotICAgICAgICAgICAgICAgIGltZ3NbJy4uL3Jlc291cmNlcy9yZWQt
aW5kZXhlZC5wbmcnXS53aWR0aCwKLSAgICAgICAgICAgICAgICBpbWdzWycuLi9yZXNvdXJjZXMv
cmVkLWluZGV4ZWQucG5nJ10uaGVpZ2h0LAotICAgICAgICAgICAgICAgIDAsIGdsLlJHQiwgZ2wu
VU5TSUdORURfQllURSwgbnVsbCk7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAiKTsKLSAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKLSAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAvLyBUaGUgaW1hZ2Ugc2hvdWxkIGJlIHdoaXRl
LgotICBjaGVja1BpeGVsUmFuZ2UoYnVmLCBtaWRkbGUsIGNlbnRlciwgWyAwLCAwLCAwLCAyNTUg
XSwgMTApOwotCi0gIGRlYnVnKCIiKTsKLSAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLSAg
c2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKLSAgZGVidWcoJzxiciAvPjxzcGFu
IGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwotICBub3RpZnlGaW5pc2hlZFRv
SGFybmVzcygpOwotfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlwbWFwLWZiby5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXBtYXAtZmJvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMwMjVkMGIzZTFjMzJhODQ4NTIzZDczNzdjMzIzOTczYWU3NjI4MmQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXBtYXAtZmJvLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi08IS0t
Ci0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci0gIDxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5UZXN0cyBp
ZiBtaXBtYXAgZ2VuZXJhdGlvbiBvbiBhIHRleHR1cmUgZmlsbGVkIGJ5IGFuIEZCTyB3b3JrcyBj
b3JyZWN0bHk8L3RpdGxlPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PC9jYW52YXM+Ci08
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxz
Y3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiBpbml0KCl7Ci0gICAgdmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwotICAgIGRlc2NyaXB0aW9uKCk7Ci0KLSAgICB2YXIgZ2wgPSB3dHUuY3Jl
YXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0
dXJlZFF1YWQoZ2wpOwotCi0gICAgLy8gc2V0dXAgcmVuZGVyIHRhcmdldCB0ZXh0dXJlIC8vCi0g
ICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUo
Z2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBN
QVBfTElORUFSKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQiwg
MiwgMiwgMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTsKLSAgICAgICAgICAgICAgICAKLSAgICAvLyBzZXR1
cCBmcmFtZWJ1ZmZlciAvLwotICAgIHZhciBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwot
ICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBnbC5mcmFt
ZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LlRFWFRVUkVfMkQsIHRleHR1cmUsIDApOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFN
RUJVRkZFUiwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgLy8gZmlsbCB0aGUgZnJhbWVi
dWZmZXIgLy8KLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0g
ICAgZ2wuY2xlYXJDb2xvcigxLCAwLCAxLCAxKTsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZG
RVJfQklUKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwot
ICAgICAgICAgICAgICAgIAotICAgIC8vIGdlbmVyYXRlIG1pcG1hcCAvLwotICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLmdlbmVyYXRlTWlwbWFwKGds
LlRFWFRVUkVfMkQpOwotCi0gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOwot
ICAgICAgICAgICAgICAgIAotICAgIC8vIHJlYWRiYWNrIC8vCi0gICAgd3R1LmNoZWNrQ2FudmFz
KGdsLCBbMjU1LCAwLCAyNTUsIDI1NV0pOwotfQotCi1pbml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDE4NWI1ZDJiMTUzZjFkOTQ5ZjVk
ZjQ3Y2EzNmZkYWU1NjFlNTgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotPCEtLQotCi0vKgotKiog
Q29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRl
cmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRp
b24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBk
aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFs
cywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1
cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
OgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs
IHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1Mg
T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP
RgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
TkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhF
IE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgT3JpZ2luIFJlc3RyaWN0aW9u
cyBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsYXN0IDIgd29yZHMgb2YgdGhlIGRvbWFp
biBvZiBhIFVSTAotLy8gVGhpcyBpcyBwcm9iYWJseSBub3QgdGhlIGNvcnJlY3QgY2hlY2sgYnV0
IGl0IHdpbGwgZG8gZm9yIG5vdy4KLWZ1bmN0aW9uIGdldEJhc2VEb21haW4oc3RyKSB7Ci0gIHN0
ciA9IHN0ci5yZXBsYWNlKCJcXCIsICIvIik7Ci0gIHZhciBwb3MgPSBzdHIuaW5kZXhPZigiOi8v
Iik7Ci0gIGlmIChwb3MgPj0gMCkgewotICAgIHN0ciA9IHN0ci5zdWJzdHIocG9zICsgMyk7Ci0g
IH0KLSAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KCcvJyk7Ci0gIHZhciBkb21haW4gPSBwYXJ0c1sw
XS5tYXRjaCgvXHcrXC5cdyskLyk7Ci0gIHJldHVybiBkb21haW4gfHwgJyc7Ci19Ci0KLS8vIENo
ZWNrcyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgotZnVuY3Rpb24gY2F1c2VkRXhj
ZXB0aW9uKGZ1bmMpIHsKLSAgdmFyIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICB0cnkgewotICAg
IGZ1bmMoKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKLSAgfQot
ICByZXR1cm4gaGFkRXhjZXB0aW9uOwotfQotCi12YXIgaW1nRG9tYWluOwotdmFyIHBhZ2VEb21h
aW47Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkOwotCi13aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KSB7Ci0gIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlv
bnMgZm9sbG93IHByb3BlciBzYW1lLW9yaWdpbiByZXN0cmljdGlvbnMuIik7Ci0gIHZhciBpbWcg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIik7Ci0gIGFzc2VydE1zZyhpbWcud2lkdGgg
PiAwICYmIGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAgaW1nRG9tYWluID0g
Z2V0QmFzZURvbWFpbihpbWcuc3JjKTsKLSAgcGFnZURvbWFpbiA9IGdldEJhc2VEb21haW4od2lu
ZG93LmxvY2F0aW9uLnRvU3RyaW5nKCkpOwotICBhc3NlcnRNc2coaW1nRG9tYWluICE9IHBhZ2VE
b21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiArICIpIGFuZCBw
YWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1lLiIpOwotCi0g
IGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1h
a2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VSZWFkUGl4
ZWxzKGdsKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGJ1ZiA9IG5ldyBV
aW50OEFycmF5KDQpOwotICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVG9E
YXRhVVJMKGNhbnZhcykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBkYXRh
ID0gY2FudmFzLnRvRGF0YVVSTCgpOwotICAgIH0KLSAgfQotCi0gIHZhciBjYW52YXMxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczEiKTsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChjYW52YXMxKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB0aGF0IGFu
IGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dzIGFu
IGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
bnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGlt
ZykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hv
dWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtl
VGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRo
IGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRlYnVn
KCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgYW5kIHRvRGF0YVVSTCBjb250aW51ZSB0byB3b3JrIGFn
YWluc3QgdGhpcyBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VS
ZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhy
b3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2Fu
dmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZh
czEpKSwKLSAgICAgICAgICAgICJzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFV
UkwgZm9yIFdlYkdMIGNhbnZhcywgd2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2luIGNsZWFuLiIpOwot
Ci0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBjYW52
YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIGNhbnZhczIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2FudmFzMiIpOwotICB2YXIgY3R4MmQgPSBjYW52YXMyLmdldENvbnRleHQo
IjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICBhc3NlcnRNc2coY2F1c2Vk
RXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMikpLAotICAgICAgICAgICAgInNob3VsZCB0
aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcy4i
KTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2FudmFz
MikpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZh
cyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9u
KG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMyKSksCi0gICAgICAgICAgICAidGV4U3ViSW1h
Z2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24u
Iik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRp
bnVlIHRvIHdvcmsgYWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRF
eGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNo
b3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdp
biBvZiBXZWJHTCBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VU
b0RhdGFVUkwoY2FudmFzMSkpLAotICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0
aW9uIGJ5IHRvRGF0YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmln
aW4gY2xlYW4uIik7Ci0KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgotICAvLyBUT0RP
OiBTaG91bGQgY2hlY2sgQ09SUyBzdXBwb3J0LgotCi0gIGRlYnVnKCIiKTsKLSAgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLSAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsK
LSAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicp
OwotICBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzMSI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjYW52YXMy
Ij48L2NhbnZhcz4KLTxpbWcgaWQ9ImltZyIgc3JjPSJodHRwOi8vd3d3Lm9wZW5nbC5vcmcvaW1n
L29wZW5nbF9sb2dvLmpwZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZp
ZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBmNzRkZjY0ZWJiZTkxOTgw
YzQ1MTU2MWE4MGE2NjcwNDZlMTdjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDI1OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
Ci0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
LSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMTYiIGhlaWdo
dD0iMTYiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oJ1Zl
cmlmaWVzIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgQXJy
YXlCdWZmZXJWaWV3Jyk7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IG51
bGw7Ci12YXIgdGV4dHVyZUxvYyA9IG51bGw7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFs
c2U7Ci0KLWZ1bmN0aW9uIHJvdW5kVXBUb0FsaWdubWVudCh2YWx1ZSwgYWxpZ25tZW50KSB7Ci0g
IHJldHVybiBNYXRoLmZsb29yKCh2YWx1ZSArIGFsaWdubWVudCAtIDEpIC8gYWxpZ25tZW50KSAq
IGFsaWdubWVudDsKLX0KLQotZnVuY3Rpb24gZ2VuZXJhdGVSR0JBRGF0YSh0eXBlLCB1bnBhY2tB
bGlnbm1lbnQsIHNvdXJjZURhdGEsIHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgdmFyIG51bUNvbG9y
cyA9IHNvdXJjZURhdGEubGVuZ3RoIC8gNDsKLSAgICB2YXIgY29sb3JPZmZzZXQgPSBmdW5jdGlv
bih5KSB7Ci0gICAgICByZXR1cm4gNCAqIE1hdGguZmxvb3IoeSAqIG51bUNvbG9ycyAvIGhlaWdo
dCk7Ci0gICAgfTsKLQotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgZ2wuVU5TSUdORURf
QllURTogewotICAgICAgICB2YXIgcm93V2lkdGggPSByb3VuZFVwVG9BbGlnbm1lbnQod2lkdGgg
KiA0LCB1bnBhY2tBbGlnbm1lbnQpOwotICAgICAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5
KGhlaWdodCAqIHJvd1dpZHRoKTsKLSAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7
ICsreSkgewotICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJvd1dpZHRoOwotICAgICAgICAg
ICAgdmFyIG9mZnNldCA9IGNvbG9yT2Zmc2V0KHkpOwotICAgICAgICAgICAgZm9yICh2YXIgZWxl
bWVudCA9IDA7IGVsZW1lbnQgPCB3aWR0aCAqIDQ7ICsrZWxlbWVudCkgewotICAgICAgICAgICAg
ICAgIGRhdGFbaW5kZXggKyBlbGVtZW50XSA9IHNvdXJjZURhdGFbb2Zmc2V0ICsgZWxlbWVudCAl
IDRdOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAg
IH0KLSAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6IHsKLSAgICAgICAgdmFyIHJv
d1dpZHRoID0gcm91bmRVcFRvQWxpZ25tZW50KHdpZHRoICogMiwgdW5wYWNrQWxpZ25tZW50KSAv
IDI7Ci0gICAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQxNkFycmF5KGhlaWdodCAqIHJvd1dpZHRo
KTsKLSAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgewotICAgICAgICAg
ICAgdmFyIG9mZnNldCA9IGNvbG9yT2Zmc2V0KHkpOwotICAgICAgICAgICAgZm9yICh2YXIgeCA9
IDA7IHggPCB3aWR0aDsgKyt4KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJv
d1dpZHRoICsgeDsKLSAgICAgICAgICAgICAgICBkYXRhW2luZGV4XSA9ICgoKHNvdXJjZURhdGFb
b2Zmc2V0ICsgMF0gJiAweEYwKSA8PCA4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICgoc291cmNlRGF0YVtvZmZzZXQgKyAxXSAmIDB4RjApIDw8IDQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgKChzb3VyY2VEYXRhW29mZnNldCArIDJdICYgMHhGMCkgPj4gMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgM10gJiAw
eEYwKSA+PiA0KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRh
dGE7Ci0gICAgfQotICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMTogewotICAgICAg
ICB2YXIgcm93V2lkdGggPSByb3VuZFVwVG9BbGlnbm1lbnQod2lkdGggKiAyLCB1bnBhY2tBbGln
bm1lbnQpIC8gMjsKLSAgICAgICAgdmFyIGRhdGEgPSBuZXcgVWludDE2QXJyYXkoaGVpZ2h0ICog
cm93V2lkdGgpOwotICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7Ci0g
ICAgICAgICAgICB2YXIgb2Zmc2V0ID0gY29sb3JPZmZzZXQoeSk7Ci0gICAgICAgICAgICBmb3Ig
KHZhciB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5kZXgg
PSB5ICogcm93V2lkdGggKyB4OwotICAgICAgICAgICAgICAgIGRhdGFbaW5kZXhdID0gKCgoc291
cmNlRGF0YVtvZmZzZXQgKyAwXSAmIDB4RjgpIDw8IDgpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgKChzb3VyY2VEYXRhW29mZnNldCArIDFdICYgMHhGOCkgPDwgMykKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbb2Zmc2V0ICsgMl0gJiAweEY4KSA+
PiAyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVtvZmZzZXQg
KyAzXSAmIDB4ODApID4+IDcpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gZGF0YTsKLSAgICB9Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0eXBlVG9TdHJpbmcodHlw
ZSkKLXsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6ICAg
ICAgICAgICByZXR1cm4gJ1VOU0lHTkVEX0JZVEUnOwotICAgIGNhc2UgZ2wuVU5TSUdORURfU0hP
UlRfNV81XzVfMTogIHJldHVybiAnVU5TSUdORURfU0hPUlRfNV81XzVfMSc7Ci0gICAgY2FzZSBn
bC5VTlNJR05FRF9TSE9SVF80XzRfNF80OiAgcmV0dXJuICdVTlNJR05FRF9TSE9SVF80XzRfNF80
JzsKLSAgICB9Ci0gICAgcmV0dXJuICdVbmtub3duIHR5cGUgJyArIHR5cGU7Ci19Ci0KLWZ1bmN0
aW9uIHJ1bk9uZUl0ZXJhdGlvbih1c2VUZXhTdWJJbWFnZTJELCB0eXBlLCB1bnBhY2tBbGlnbm1l
bnQsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCB0b3BDb2xvciwgYm90dG9tQ29sb3IsIGV4dHJh
Q29sb3IpCi17Ci0gICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3Rl
eFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCi0gICAgICAgICAgJyB3aXRoIHR5cGU9JyAr
IHR5cGVUb1N0cmluZyh0eXBlKSArCi0gICAgICAgICAgJywgdW5wYWNrQWxpZ25tZW50PScgKyB1
bnBhY2tBbGlnbm1lbnQgKwotICAgICAgICAgICcsIGZsaXBZPScgKyBmbGlwWSArICcsIHByZW11
bHRpcGx5QWxwaGE9JyArIHByZW11bHRpcGx5QWxwaGEpOwotICAgIGdsLmNvbG9yTWFzayh0cnVl
LCB0cnVlLCB0cnVlLCB0cnVlKTsKLSAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDEuMCk7Ci0g
ICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwot
ICAgIC8vIEVuYWJsZSB3cml0ZXMgdG8gdGhlIFJHQiBjaGFubmVscwotICAgIGdsLmNvbG9yTWFz
ayh0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSk7Ci0gICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7Ci0gICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIC8vIFNldCB1cCB0
ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1Q
X1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBw
YXJhbWV0ZXJzCi0gICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0FMSUdOTUVOVCwgdW5wYWNr
QWxpZ25tZW50KTsKLSAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBm
bGlwWSk7Ci0gICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dF
QkdMLCBwcmVtdWx0aXBseUFscGhhKTsKLSAgICAvLyBHZW5lcmF0ZSB0aGUgZGF0YQotICAgIHZh
ciBzb3VyY2VEYXRhID0gWyAyNTUsICAgMCwgICAwLCAyNTUsCi0gICAgICAgICAgICAgICAgICAg
ICAgIDAsICAgMjU1LCAgIDAsICAgMCBdOwotICAgIHZhciB0ZXhXaWR0aCA9IDU7ICAgLy8gdGhp
cyBtdXN0IGJlIG1vZCA0ICsgMSB0byB0ZXN0IHVucGFja0FsaWdubWVudAotICAgIHZhciB0ZXhI
ZWlnaHQgPSAxNjsKLSAgICB2YXIgZGF0YSA9IGdlbmVyYXRlUkdCQURhdGEodHlwZSwgdW5wYWNr
QWxpZ25tZW50LCBzb3VyY2VEYXRhLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0KTsKLSAgICBpZiAoZ2wu
Z2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikKLSAgICAgICAgdGVzdEZhaWxlZCgiR0wgZXJyb3Ig
YmVmb3JlIHRleHR1cmUgdXBsb2FkIik7Ci0gICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRvIHRo
ZSB0ZXh0dXJlCi0gICAgaWYgKHVzZVRleFN1YkltYWdlMkQpIHsKLSAgICAgICAgLy8gSW5pdGlh
bGl6ZSB0aGUgdGV4dHVyZSB0byBibGFjayBmaXJzdAotICAgICAgICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgZ2wuUkdCQSwgdHlwZSwgbnVsbCk7Ci0gICAgICAgIGlmIChnbC5nZXRF
cnJvcigpICE9IGdsLk5PX0VSUk9SKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiR0wgZXJyb3Ig
YWZ0ZXIgdGV4SW1hZ2UyRChudWxsKSIpOwotICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIDAsIDAsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGdsLlJHQkEsIHR5cGUsIGRh
dGEpOwotICAgICAgICBpZiAoZ2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGFmdGVyIHRleFN1YkltYWdlMkQiKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHRl
eFdpZHRoLCB0ZXhIZWlnaHQsIDAsIGdsLlJHQkEsIHR5cGUsIGRhdGEpOwotICAgICAgICBpZiAo
Z2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkdM
IGVycm9yIGFmdGVyIHRleEltYWdlMkQiKTsKLSAgICB9Ci0KLSAgICAvLyBQb2ludCB0aGUgdW5p
Zm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wudW5pZm9ybTFpKHRleHR1cmVM
b2MsIDApOwotICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAgIHd0dS5jbGVhckFuZERyYXdV
bml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotCi0gICAgLy8gQ2hlY2sgdGhlIHRvcCBwaXhl
bCBhbmQgYm90dG9tIHBpeGVsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCi0gICAgLy8gdGhlIHJp
Z2h0IGNvbG9yLgotICAgIHZhciB0ZXN0V2lkdGggID0gZ2wuZHJhd2luZ0J1ZmZlcldpZHRoOwot
ICAgIHZhciB0ZXN0SGVpZ2h0ID0gZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCAvIDI7Ci0gICAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgdGVzdFdpZHRoLCB0ZXN0SGVpZ2h0LCBib3R0b21D
b2xvciwgImJvdHRvbSBwaXhlbCBzaG91bGQgYmUgIiArIGJvdHRvbUNvbG9yKTsKLSAgICB3dHUu
Y2hlY2tDYW52YXNSZWN0KGdsLCAwLCB0ZXN0SGVpZ2h0LCB0ZXN0V2lkdGgsIHRlc3RIZWlnaHQs
IHRvcENvbG9yLCAidG9wIHBpeGVsIHNob3VsZCBiZSAiICsgdG9wQ29sb3IpOwotCi0gICAgLy8g
Q2hhbmdlIHBhcnQgb2YgdGhlIHRleHR1cmUuCi0gICAgdmFyIHBhcnRXaWR0aCA9IDg7Ci0gICAg
dmFyIHBhcnRIZWlnaHQgPSAxNjsKLSAgICAvLyBtYWtlIHRleHR1cmUgZG91YmxlIHJlcyBvZiBw
YXJ0LgotICAgIHZhciBkYXRhID0gZ2VuZXJhdGVSR0JBRGF0YSh0eXBlLCB1bnBhY2tBbGlnbm1l
bnQsIHNvdXJjZURhdGEsIHBhcnRXaWR0aCAqIDIsIHBhcnRIZWlnaHQgKiAyKTsKLSAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHBhcnRXaWR0aCAqIDIsIHBhcnRI
ZWlnaHQgKiAyLCAwLCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKLSAgICAvLyBzZXQgcGFydC4KLSAg
ICB2YXIgZXh0cmFEYXRhID0gWwotICAgICAgMjU1LCAgIDAsICAgMCwgMjU1LAotICAgICAgICAw
LCAgIDAsIDI1NSwgICAwCi0gICAgXTsKLSAgICB2YXIgZGF0YSA9IGdlbmVyYXRlUkdCQURhdGEo
dHlwZSwgdW5wYWNrQWxpZ25tZW50LCBleHRyYURhdGEsIHBhcnRXaWR0aCwgcGFydEhlaWdodCk7
Ci0gICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBwYXJ0V2lkdGgs
IHBhcnRIZWlnaHQsIGdsLlJHQkEsIHR5cGUsIGRhdGEpOwotICAgIHd0dS5jbGVhckFuZERyYXdV
bml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotICAgIHZhciBoYWxmV2lkdGggID0gZ2wuZHJh
d2luZ0J1ZmZlcldpZHRoIC8gMjsKLSAgICB2YXIgaGFsZkhlaWdodCA9IGdsLmRyYXdpbmdCdWZm
ZXJIZWlnaHQgLyAyOwotICAgIHZhciBxdWFydGVySGVpZ2h0ID0gZ2wuZHJhd2luZ0J1ZmZlckhl
aWdodCAvIDQ7Ci0gICAgdmFyIHJlZCA9IFsyNTUsIDAsIDAsIDI1NV07Ci0gICAgdmFyIHRjb2xv
cjAgPSBmbGlwWSA/IGV4dHJhQ29sb3IgOiByZWQ7Ci0gICAgdmFyIHRjb2xvcjEgPSBmbGlwWSA/
IHJlZCA6IGV4dHJhQ29sb3I7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgaGFs
ZldpZHRoLCBxdWFydGVySGVpZ2h0LCB0Y29sb3IwLCAiYm90dG9tIGxlZnQgYm90dG9tIHBpeGVs
cyBzaG91bGQgYmUgIiArIHRjb2xvcjApOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAs
IHF1YXJ0ZXJIZWlnaHQsIGhhbGZXaWR0aCwgcXVhcnRlckhlaWdodCwgdGNvbG9yMSwgImJvdHRv
bSBsZWZ0IHRvcCBwaXhlbHMgc2hvdWxkIGJlICIgKyB0Y29sb3IxKTsKLSAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCBoYWxmV2lkdGgsIDAsIGhhbGZXaWR0aCwgaGFsZkhlaWdodCwgYm90dG9t
Q29sb3IsICJib3R0b20gcmlnaHQgcGl4ZWxzIHNob3VsZCBiZSAiICsgYm90dG9tQ29sb3IpOwot
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIGhhbGZIZWlnaHQsIHRlc3RXaWR0aCwgaGFs
ZkhlaWdodCwgdG9wQ29sb3IsICJ0b3AgcGl4ZWxzIHNob3VsZCBiZSAiICsgdG9wQ29sb3IpOwot
ICAgIC8vIHNldCBmYXIgY29ybmVyLgotICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgcGFydFdpZHRoLCBwYXJ0SGVpZ2h0LCBwYXJ0V2lkdGgsIHBhcnRIZWlnaHQsIGdsLlJH
QkEsIHR5cGUsIGRhdGEpOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwgWzAsIDAs
IDAsIDI1NV0pOwotICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIGhhbGZXaWR0aCwg
cXVhcnRlckhlaWdodCwgdGNvbG9yMCwgImJvdHRvbSBsZWZ0IGJvdHRvbSBwaXhlbHMgc2hvdWxk
IGJlICIgKyB0Y29sb3IwKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBxdWFydGVy
SGVpZ2h0LCBoYWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRjb2xvcjEsICJib3R0b20gbGVmdCB0
b3AgcGl4ZWxzIHNob3VsZCBiZSAiICsgdGNvbG9yMSk7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVj
dChnbCwgaGFsZldpZHRoLCAwLCBoYWxmV2lkdGgsIGhhbGZIZWlnaHQsIGJvdHRvbUNvbG9yLCAi
Ym90dG9tIGxlZnQgcGl4ZWxzIHNob3VsZCBiZSAiICsgYm90dG9tQ29sb3IpOwotICAgIHd0dS5j
aGVja0NhbnZhc1JlY3QoZ2wsIDAsIGhhbGZIZWlnaHQsIGhhbGZXaWR0aCwgaGFsZkhlaWdodCwg
dG9wQ29sb3IsICJ0b3AgcmlnaHQgcGl4ZWxzIHNob3VsZCBiZSAiICsgdG9wQ29sb3IpOwotICAg
IHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGhhbGZXaWR0aCwgaGFsZkhlaWdodCwgaGFsZldpZHRo
LCBxdWFydGVySGVpZ2h0LCB0Y29sb3IwLCAidG9wIHJpZ2h0IGJvdHRvbSBwaXhlbHMgc2hvdWxk
IGJlICIgKyB0Y29sb3IwKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCBoYWxmV2lkdGgs
IGhhbGZIZWlnaHQgKyBxdWFydGVySGVpZ2h0LCBoYWxmV2lkdGgsIHF1YXJ0ZXJIZWlnaHQsIHRj
b2xvcjEsICJ0b3AgcmlnaHQgdG9wIHBpeGVscyBzaG91bGQgYmUgIiArIHRjb2xvcjEpOwotfQot
Ci1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICB2YXIgcmVkID0gWzI1NSwgMCwgMCwgMjU1XTsK
LSAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVdOwotICAgIHZhciBibHVlID0gWzAsIDAs
IDI1NSwgMjU1XTsKLSAgICB2YXIgcmVkUHJlbXVsdGlwbHlBbHBoYSA9IFsyNTUsIDAsIDAsIDI1
NV07Ci0gICAgdmFyIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSA9IFswLCAwLCAwLCAyNTVdOwotICAg
IHZhciBibHVlUHJlbXVsdGlwbHlBbHBoYSA9IFswLCAwLCAwLCAyNTVdOwotCi0gICAgdmFyIHR5
cGVzID0gWyBnbC5VTlNJR05FRF9CWVRFLCBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xLCBnbC5V
TlNJR05FRF9TSE9SVF80XzRfNF80IF07Ci0gICAgdmFyIHVucGFja0FsaWdubWVudHMgPSBbIDEs
IDIsIDQsIDggXTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgdmFyIHR5cGUgPSB0eXBlc1tpXTsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7
IGogPCB1bnBhY2tBbGlnbm1lbnRzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICB2YXIgdW5w
YWNrQWxpZ25tZW50ID0gdW5wYWNrQWxpZ25tZW50c1tqXTsKLSAgICAgICAgICAgIHJ1bk9uZUl0
ZXJhdGlvbihmYWxzZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCB0cnVlLCBmYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWQsIGdyZWVuLCBibHVlKTsKLSAgICAgICAgICAgIHJ1
bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmYWxzZSwgZmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCwgYmx1ZSk7Ci0gICAgICAg
ICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgdHJ1ZSwg
dHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0aXBseUFscGhhLCBn
cmVlblByZW11bHRpcGx5QWxwaGEsIGJsdWVQcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgICAg
IHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCBmYWxzZSwgdHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVlblByZW11bHRpcGx5QWxwaGEsIHJl
ZFByZW11bHRpcGx5QWxwaGEsIGJsdWVQcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAgICAgIHJ1
bk9uZUl0ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIGZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4sIGJsdWUpOwotICAgICAgICAg
ICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIGZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQsIGJsdWUpOwotICAg
ICAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgdHJ1
ZSwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0aXBseUFscGhh
LCBncmVlblByZW11bHRpcGx5QWxwaGEsIGJsdWVQcmVtdWx0aXBseUFscGhhKTsKLSAgICAgICAg
ICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCB0
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwg
cmVkUHJlbXVsdGlwbHlBbHBoYSwgYmx1ZVByZW11bHRpcGx5QWxwaGEpOwotICAgICAgICB9Ci0g
ICAgfQotCi19Ci0KLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLXZh
ciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQotdGV4dHVyZUxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0KLXJ1blRlc3QoKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUgbm8gZXJyb3JzIik7Ci12YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWNhbnZhcy1yZ2I1NjUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiNTY1Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4OTA4ZDhkNzllOWYzZTBhNmY4YWVkNDMzODBl
OWI5OTI1ZWQzYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWNhbnZhcy1yZ2I1NjUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwh
LS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0q
KgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu
eSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVh
bCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0
aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m
IHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0
ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBv
ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRF
UklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
Ci0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP
TlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO
IENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERF
QUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUo
Z2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSdnZW5lcmF0ZVRlc3QoIlJHQiIsICJVTlNJR05FRF9TSE9SVF81XzZfNSIsIHRlc3RQcm9s
b2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwv
Y2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtY2FudmFzLXJnYmE0NDQ0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtY2FudmFzLXJnYmE0NDQ0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZmZDM4ZWQzNTA1YzcyNzBmMjA4YTY1ZTQzODhmZDg4ZmU0YWE0MmQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy1yZ2JhNDQ0NC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIs
ICJVTlNJR05FRF9TSE9SVF80XzRfNF80IiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTU1NTEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMtcmdiYTU1NTEu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTkwYTM4YTA2NjAwNGE0YTRlMzIw
MTVhNTE5ZTdkZDg3MGM2OGE1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtY2FudmFzLXJnYmE1NTUxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSAr
MCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg
YW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxz
IiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp
bmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs
IGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0q
KiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNh
bnZhcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVz
dFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX1NIT1JUXzVfNV81
XzEiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBo
ZWlnaHQ9IjMyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZh
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTIz
MmIxZjMwN2RlOWFkMjRlNzAzZjEzNjY3MDllMjEyNTRmNjFhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAot
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtY2FudmFzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5j
dGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfQllU
RSIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhl
aWdodD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
ZGF0YS1yZ2I1NjUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYjU2NS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiMDlmMzkwZTJhZjkwODQ0NDllZGI1MjY4ZWY3NTYxNTg5ZWUyYmE5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1k
YXRhLXJnYjU2NS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCEtLQotCi0v
KgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
Ci0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
Ci0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wp
IHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSdnZW5lcmF0ZVRlc3QoIlJHQiIsICJVTlNJR05FRF9TSE9SVF81XzZfNSIsIHRlc3RQcm9sb2d1
ZSkoKSc+Ci08Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2Fu
dmFzPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE0NDQ0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS1yZ2JhNDQ0NC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2YTFkMjQzZjVjNmNmYzdhNmM4NDgyY2ViZmIyYzRiNjk2MTUwMWJjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLXJnYmE0NDQ0Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
Ci0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgot
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
Ci0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVy
biB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVz
dCgiUkdCQSIsICJVTlNJR05FRF9TSE9SVF80XzRfNF80IiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxj
YW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08Y2Fu
dmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1NTEuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1k
YXRhLXJnYmE1NTUxLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYmQwMWQ2
YzJjYzZlZmE2NDA3ZDY2ZGYxZWU2M2QwYThiMzAyOTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtcmdiYTU1NTEuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAx
MiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh
bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkg
b2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0
aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBp
bmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
TWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJ
TElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO
VC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT
IEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVS
SUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwot
Ci0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBz
dHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwg
IlVOU0lHTkVEX1NIT1JUXzVfNV81XzEiLCB0ZXN0UHJvbG9ndWUpKCknPgotPGNhbnZhcyBpZD0i
dGV4Y2FudmFzIiB3aWR0aD0iMSIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODlhNDY4MGI4YTg2YzY3Mjg1OGFhOWY3YzQzYTRhMmQ4NWVh
OGFmYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtZGF0YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCEtLQotCi0vKgot
KiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJt
aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv
YnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBN
YXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0q
KiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVy
aWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJl
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUg
UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJF
U1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0q
KiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g
VEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdn
ZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfQllURSIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08
Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdpZHRoPSIxIiBoZWlnaHQ9IjIiPjwvY2FudmFzPgotPGNh
bnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjEiIGhlaWdodD0iMiI+PC9jYW52YXM+Ci08ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2I1NjUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2I1NjUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUwMjViMTg1ZDRhNDAyZGUxM2Qx
MTE3NGIyNTU2YTQ2ZTQzYTI1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtaW1hZ2UtcmdiNTY1Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCww
IEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
LSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQot
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJv
bG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQiIsICJVTlNJR05FRF9TSE9SVF81XzZfNSIsICIu
LiIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhl
aWdodD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
cmdiYTQ0NDQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNDQ0NC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYzMzYjQ4MmQ4MzkxNDhiOGUzZjMzOTRlOGY3MjJkYTU5OGZjYTU5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1yZ2JhNDQ0
NC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot
KioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0nZ2VuZXJhdGVUZXN0
KCJSR0JBIiwgIlVOU0lHTkVEX1NIT1JUXzRfNF80XzQiLCAiLi4iLCB0ZXN0UHJvbG9ndWUpKCkn
PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLXJnYmE1NTUxLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1h
Z2UtcmdiYTU1NTEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA0MDU1NGM1
MTUzMDhjNjFiZmM1ZDhjZmJkNmQzNTk4OTIzNzM4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtcmdiYTU1NTEuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoq
ICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl
ZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJp
YWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoq
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4K
LQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtaW1hZ2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1
bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05FRF9T
SE9SVF81XzVfNV8xIiwgIi4uIiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM0ZjJkNTVkMzQ5YjBiMzJlN2NlYmI0MzNlOWY2ZGYzYzY1ZjgzZDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgot
Ki8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0
cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wpIHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAi
VU5TSUdORURfQllURSIsICIuLiIsIHRlc3RQcm9sb2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFt
cGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtdmlkZW8tcmdiNTY1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiNTY1Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhYzExZTI2OTZjMmIzNGE1OTlmYzdhZGVmNjNmYzlj
ZmY5NDJmYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LXZpZGVvLXJnYjU2NS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCEtLQot
Ci0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0q
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGlu
IHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlh
bHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFM
UyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoq
IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3VlKGdsKSB7
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0n
Z2VuZXJhdGVUZXN0KCJSR0IiLCAiVU5TSUdORURfU0hPUlRfNV82XzUiLCB0ZXN0UHJvbG9ndWUp
KCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE0NDQ0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
dmlkZW8tcmdiYTQ0NDQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE5MTFh
YTAzNzZjZWZkOTViYTdlNjA2N2ExNDlkNGNiYTY3ODZkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1p
bWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTQ0NDQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
LSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
LSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0t
LT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWdlLTJkLXdpdGgtdmlkZW8uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsK
LWZ1bmN0aW9uIHRlc3RQcm9sb2d1ZShnbCkgewotICAgIHJldHVybiB0cnVlOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9J2dlbmVyYXRlVGVzdCgiUkdCQSIsICJVTlNJR05F
RF9TSE9SVF80XzRfNF80IiwgdGVzdFByb2xvZ3VlKSgpJz4KLTxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC12aWRlby1yZ2JhNTU1MS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLXJnYmE1NTUxLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3ZWY2MmZmN2Q4ZmJjMWQ2YzdkOTJkOTJmMjZkNTY5
Mjc3ZWFlNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LXZpZGVvLXJnYmE1NTUxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IS0t
Ci0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioK
LSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAot
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLXZpZGVvLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiB0ZXN0UHJvbG9ndWUoZ2wp
IHsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSdnZW5lcmF0ZVRlc3QoIlJHQkEiLCAiVU5TSUdORURfU0hPUlRfNV81XzVfMSIsIHRlc3RQcm9s
b2d1ZSkoKSc+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjwv
Y2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRl
by5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWM0YTdmNTM0YjY5YmZiOWZk
OGUyNGE3M2Q0MDMzNTA0ZjY5MDlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC12aWRlby5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
PCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
LSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZnVuY3Rpb24gdGVzdFByb2xvZ3Vl
KGdsKSB7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0nZ2VuZXJhdGVUZXN0KCJSR0JBIiwgIlVOU0lHTkVEX0JZVEUiLCB0ZXN0UHJvbG9ndWUp
KCknPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdmNzBlMWQxZDVhYjY0NGE2YzNjNmFiY2UwMDQx
NGQ2MGFmZmRmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5n
LWJ1Z3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhLS0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLS0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotInVz
ZSBzdHJpY3QiOwotCi1kZXNjcmlwdGlvbignVGVzdHMgcGFzc2luZyBhIHZlYzQgdG8gYSB1bmlm
b3JtIGFuZCBhIGNhbnZhcyB0byB0ZXhJbWFnZTJEJyk7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RV
dGlsczsKLXZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsKLXZhciBmbG9hdFByb2dyYW0g
PSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uL3Jlc291cmNlcy9mbG9hdFVuaWZvcm1T
aGFkZXIudmVydCIsICIuLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOwotc2hv
dWxkQmVVbmRlZmluZWQoImdsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKSIpOwotdmFyIGZ2YWw0
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWw0Iik7Ci1nbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJnbC51bmlm
b3JtNGZ2KGZ2YWw0TG9jLCBuZXcgRmxvYXQzMkFycmF5KFswLjEsIDAuMiwgMC40LCAxLjBdKSk7
Iik7Ci0KLXZhciB0bXBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsK
LXRtcGNhbnZhcy53aWR0aCA9IDI7Ci10bXBjYW52YXMuaGVpZ2h0ID0gMjsKLXZhciB0ZXh0dXJl
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotc2hvdWxkQmVVbmRlZmluZWQoImdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpIik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCB0bXBjYW52YXMpIik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXgtaW1hZ2Utd2ViZ2wuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4LWltYWdlLXdlYmdsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOGI3
NTFkNzVmNzE0NmQ2NzY5ZWRiZWM4OGEzMGEwMTg3YjhiZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
aW1hZ2Utd2ViZ2wuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLTwhLS0KLQot
LyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIHRleEltYWdlMkQg
ZnJvbSBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjE2IiBzdHlsZT0i
d2lkdGg6IDI1NnB4OyBoZWlnaHQ6IDQ4cHg7Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9InNvdXJj
ZSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAyNTZweDsgaGVpZ2h0OiA0
OHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigiVGVz
dCB0ZXhJbWFnZTJEIGZyb20gYSB3ZWJnbCBjYW52YXMuIik7Ci12YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci1nbC5kaXNh
YmxlKGdsLkRJVEhFUik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7
Ci12YXIgZ2wxID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgic291cmNlIik7Ci1nbDEuZGlzYWJsZShn
bC5ESVRIRVIpOwotCi1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJl
IG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotZ2xFcnJvclNob3VsZEJlKGdsMSwgZ2wxLk5PX0VS
Uk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotCi1nbC5kaXNhYmxlKGds
LkJMRU5EKTsKLWdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0KLWdsMS5jbGVhckNvbG9yKDEu
MCwgMC4wLCAwLjAsIDEuMCk7Ci1nbDEuY2xlYXIoZ2wxLkNPTE9SX0JVRkZFUl9CSVQpOwotCi12
YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgdGV4KTsKLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBnbC5SR0Is
IGdsLlVOU0lHTkVEX0JZVEUsIGdsMS5jYW52YXMpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdF
KTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVS
LCBnbC5MSU5FQVIpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwot
Ci13dHUuY2hlY2tDYW52YXMoZ2wsIFsyNTUsIDAsIDAsIDI1NV0sICJDYW52YXMgc2hvdWxkIGJl
IHJlZCIpOwotCi1nbDEuY2xlYXJDb2xvcigwLjAsIDEuMCwgMC4wLCAxLjApOwotZ2wxLmNsZWFy
KGdsMS5DT0xPUl9CVUZGRVJfQklUKTsKLQotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0IsIGdsLlJHQiwgZ2wuVU5TSUdORURfQllURSwgZ2wxLmNhbnZhcyk7Ci13dHUuY2xl
YXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotCi13dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAs
IDI1NV0sICJDYW52YXMgc2hvdWxkIGJlIGdyZWVuIik7Ci0KLWRlYnVnKCIiKTsKLXZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LWltYWdlLXdpdGgtZm9ybWF0
LWFuZC10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRo
LWZvcm1hdC1hbmQtdHlwZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzcx
ZWY2MDlkMzIxY2NkNDAwNWVjYzY3OGQwNDRhZWZiODFlNmVlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NDcg
KzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo
YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJl
IGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFs
cyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm
eSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3
aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiog
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBh
bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgot
KiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP
RiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB
Q1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0Ug
T1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3BuZ2xpYi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IG51bGw7
Ci12YXIgdGV4dHVyZUxvYyA9IG51bGw7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7
Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gSGFybmVzcwotCi12YXIgdGVzdENhc2VzID0gW107Ci0K
LXZhciBEYXRhTW9kZSA9IHsKLSAgICBJTUFHRTogMCwKLSAgICBJTUFHRV9EQVRBOiAxLAotCi0g
ICAgTlVNX0hUTUxfTU9ERVM6IDIsCi0KLSAgICBSQVdfREFUQTogMiwKLQotICAgIC8vIFRoaXMg
bXVzdCByZW1haW4gdGhlIGxhc3QgbW9kZS4KLSAgICBOVU1fTU9ERVM6IDMKLX07Ci0KLWZ1bmN0
aW9uIGluaXQoKQotewotICAgIGluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsKLQot
ICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2Rl
IHBhdGhzIHRha2luZyBib3RoIEhUTUwgYW5kIHVzZXItc3BlY2lmaWVkIGRhdGEgd2l0aCBhbGwg
Zm9ybWF0L3R5cGUgY29tYmluYXRpb25zJyk7Ci0KLSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLSAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
Y2FudmFzKTsKLSAgICBnbC5kaXNhYmxlKGdsLkRJVEhFUik7Ci0gICAgdmFyIHByb2dyYW0gPSB3
dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi0gICAgZ2wuY2xlYXJDb2xvcigwLDAsMCwxKTsK
LSAgICBnbC5jbGVhckRlcHRoKDEpOwotICAgIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwotCi0gICAg
dGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci0KLSAg
ICBpbml0aWFsaXplVGVzdHMoKTsKLX0KLQotZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkKLXsK
LSAgICAvLyBWZXJpZnkgdGhhdCB1cGxvYWRpbmcgdG8gcGFja2VkIHBpeGVsIGZvcm1hdHMgcGVy
Zm9ybXMgdGhlCi0gICAgLy8gcmVxdWlyZWQgY29udmVyc2lvbiBhbmQgYXNzb2NpYXRlZCBsb3Nz
IG9mIHByZWNpc2lvbi4KLSAgICBmb3IgKHZhciBkYXRhTW9kZSA9IDA7IGRhdGFNb2RlIDwgRGF0
YU1vZGUuTlVNX0hUTUxfTU9ERVM7ICsrZGF0YU1vZGUpIHsKLSAgICAgICAgZm9yICh2YXIgdXNl
VGV4U3ViSW1hZ2UyRCA9IDA7IHVzZVRleFN1YkltYWdlMkQgPCAyOyArK3VzZVRleFN1YkltYWdl
MkQpIHsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRh
TW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VU
ZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVH
cmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAot
ICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgICAgICAgICAgICB0eXBlOiBn
bC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0lu
Y3JlYXNlQnlOb01vcmVUaGFuLAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMSwKLSAgICAg
ICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMSwKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlv
bjogIlJHQkEvVU5TSUdORURfQllURSBzaG91bGQgbWFpbnRhaW4gZnVsbCBwcmVjaXNpb24gb2Yg
ZGF0YSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAg
ICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhT
dWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1
NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9y
OiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlw
bHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICAg
ICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsCi0gICAgICAgICAgICAg
ICAgdmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeUF0TGVhc3QsCi0gICAgICAgICAgICAg
ICAgdGhyZXNob2xkOiAxNSwKLSAgICAgICAgICAgICAgICBudW1PY2N1cnJlbmNlczogMTAsCi0g
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0JBL1VOU0lHTkVEX1NIT1JUXzRfNF80XzQg
bXVzdCBkcm9wIGxvdyBmb3VyIGJpdHMgb2YgcHJlY2lzaW9uIgotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRh
dGFNb2RlLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1h
Z2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdo
dDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlT3BhcXVlR3JheXNjYWxl
UmFtcCwKLSAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxzZSwKLSAgICAgICAg
ICAgICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdO
RURfU0hPUlRfNV81XzVfMSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJ
bmNyZWFzZUJ5QXRMZWFzdCwKLSAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDcsCi0gICAgICAg
ICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDIwLAotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
OiAiUkdCQS9VTlNJR05FRF9TSE9SVF81XzVfNV8xIG11c3QgZHJvcCBsb3cgdGhyZWUgYml0cyBv
ZiBwcmVjaXNpb24iCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNo
KHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAg
dXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdp
ZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdl
bmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHBy
ZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCLAot
ICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAg
dmVyaWZpZXI6IGFsbENoYW5uZWxzSW5jcmVhc2VCeU5vTW9yZVRoYW4sCi0gICAgICAgICAgICAg
ICAgdGhyZXNob2xkOiAxLAotICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxLAotICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUkdCL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50
YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0g
ICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAg
ICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAg
ICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVPcGFxdWVHcmF5c2NhbGVSYW1wLAotICAg
ICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IGZhbHNlLAotICAgICAgICAgICAgICAgIGZv
cm1hdDogZ2wuUkdCLAotICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVf
Nl81LAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBhbGxDaGFubmVsc0luY3JlYXNlQnlBdExl
YXN0LAotICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMywKLSAgICAgICAgICAgICAgICBudW1P
Y2N1cnJlbmNlczogMjAsCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0IvVU5TSUdO
RURfU0hPUlRfNV82XzUgbXVzdCBkcm9wIGxvdyB0d28gb3IgdGhyZWUgYml0cyBvZiBwcmVjaXNp
b24iCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAg
ICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3Vi
SW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYs
Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjog
Z2VuZXJhdGVUcmFuc2x1Y2VudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVs
dGlwbHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5BTFBIQSwKLSAg
ICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIHZl
cmlmaWVyOiBhbHBoYUNoYW5uZWxJbmNyZWFzZXNCeU5vTW9yZVRoYW4sCi0gICAgICAgICAgICAg
ICAgdGhyZXNob2xkOiAxLAotICAgICAgICAgICAgICAgIG51bU9jY3VycmVuY2VzOiAxLAotICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQUxQSEEvVU5TSUdORURfQllURSBzaG91bGQgbWFp
bnRhaW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwK
LSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0g
ICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0g
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0g
ICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogZmFsc2UsCi0gICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5MVU1JTkFOQ0UsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURf
QllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9N
b3JlVGhhbiwKLSAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDEsCi0gICAgICAgICAgICAgICAg
bnVtT2NjdXJyZW5jZXM6IDEsCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJMVU1JTkFO
Q0UvVU5TSUdORURfQllURSBzaG91bGQgbWFpbnRhaW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YSIK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAg
ICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFn
ZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKLSAg
ICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5l
cmF0ZU9wYXF1ZUdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBo
YTogZmFsc2UsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0VfQUxQSEEsCi0g
ICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2
ZXJpZmllcjogYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9Nb3JlVGhhbiwKLSAgICAgICAgICAgICAg
ICB0aHJlc2hvbGQ6IDEsCi0gICAgICAgICAgICAgICAgbnVtT2NjdXJyZW5jZXM6IDEsCi0gICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJMVU1JTkFOQ0VfQUxQSEEvVU5TSUdORURfQllURSBz
aG91bGQgbWFpbnRhaW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YSIKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gVmVyaWZ5IHRoYXQgc2V0dGluZyB0aGUgVU5QQUNL
X1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHBpeGVsCi0gICAgLy8gc3RvcmUgcGFyYW1ldGVyIGFu
ZCBzZW5kaW5nIGRvd24gYSB6ZXJvIGFscGhhIGNhdXNlcyB0aGUgY29sb3IKLSAgICAvLyBjaGFu
bmVscyB0byBnbyB0byB6ZXJvLgotICAgIGZvciAodmFyIGRhdGFNb2RlID0gMDsgZGF0YU1vZGUg
PCBEYXRhTW9kZS5OVU1fTU9ERVM7ICsrZGF0YU1vZGUpIHsKLSAgICAgICAgZm9yICh2YXIgdXNl
VGV4U3ViSW1hZ2UyRCA9IDA7IHVzZVRleFN1YkltYWdlMkQgPCAyOyArK3VzZVRleFN1YkltYWdl
MkQpIHsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRh
TW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VU
ZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3Bh
cmVudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1
ZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgICAgICAgICAgICAgdHlw
ZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFu
bmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBkYXRhTW9k
ZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhT
dWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAg
aGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVu
dEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwK
LSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgICAgICAgICAgICAgdHlwZTog
Z2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29s
b3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tf
UFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VOU0lHTkVEX1NIT1JUXzRfNF80XzQi
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAg
ICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1h
Z2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0g
ICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2Vu
ZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlw
bHlBbHBoYTogdHJ1ZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgICAg
ICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV81XzVfMSwKLSAgICAgICAgICAgICAg
ICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VOU0lHTkVE
X1NIT1JUXzVfNV81XzEiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIC8vIFRoZSBmb2xs
b3dpbmcgZmV3IHRlc3RzIGFyZSBpbnZhbGlkIGZvciB0aGUgcmF3IGRhdGEKLSAgICAgICAgICAg
IC8vIG1vZGUgYmVjYXVzZSB0aGVyZSBpcyBlaXRoZXIgbm8gYWxwaGEgY2hhbm5lbCBvciBubwot
ICAgICAgICAgICAgLy8gc2VwYXJhdGUgYWxwaGEgY2hhbm5lbC4KLSAgICAgICAgICAgIGlmIChk
YXRhTW9kZSAhPSBEYXRhTW9kZS5SQVdfREFUQSkgewotICAgICAgICAgICAgICAgIHRlc3RDYXNl
cy5wdXNoKHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAg
ICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAg
ICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgICAgIGhlaWdodDog
MSwKLSAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3Jh
eXNjYWxlUmFtcCwKLSAgICAgICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwK
LSAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0IsCi0gICAgICAgICAgICAgICAgICAg
IHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBj
b2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJV
TlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0IvVU5TSUdORURfQllURSIKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAg
ICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICAgICAg
dXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgICAg
ICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAg
ICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0g
ICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAg
ICAgICAgIGZvcm1hdDogZ2wuUkdCLAotICAgICAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJ
R05FRF9TSE9SVF81XzZfNSwKLSAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hh
bm5lbHNBcmVaZXJvLAotICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19Q
UkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQi9VTlNJR05FRF9TSE9SVF81XzZfNSIKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAg
ICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKLSAgICAgICAgICAgICAgICAgICAg
dXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgICAg
ICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCi0gICAgICAgICAg
ICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0g
ICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAg
ICAgICAgIGZvcm1hdDogZ2wuQUxQSEEsCi0gICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVO
U0lHTkVEX0JZVEUsCi0gICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxz
QXJlWmVybywKLSAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wgd2l0aCBBTFBIQS9VTlNJR05FRF9CWVRFIgotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAg
ICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAotICAgICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJ
bWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCi0gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAy
NTYsCi0gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKLSAgICAgICAgICAg
ICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgZm9y
bWF0OiBnbC5MVU1JTkFOQ0UsCi0gICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVE
X0JZVEUsCi0gICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVy
bywKLSAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0UvVU5TSUdORURfQllURSIKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAg
ICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3Vi
SW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYs
Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjog
Z2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVs
dGlwbHlBbHBoYTogdHJ1ZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLkxVTUlOQU5DRV9B
TFBIQSwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAg
ICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIExVTUlOQU5D
RV9BTFBIQS9VTlNJR05FRF9CWVRFIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICAvLyBQcm9kdWNlIGRhdGEgZm9yIGFsbCB0ZXN0Y2FzZXMuIEJlY2F1c2Ugd2UgbG9h
ZCBpbWFnZXMsIHNvbWUgb2YKLSAgICAvLyB0aGVzZSBtYXkgZ2VuZXJhdGUgdGhlaXIgZGF0YSBh
c3luY2hyb25vdXNseS4KLSAgICBnZW5lcmF0ZVRlc3REYXRhKCk7Ci19Ci0KLWZ1bmN0aW9uIGdl
bmVyYXRlVGVzdERhdGEoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB0ZXN0Q2FzZSA9IHRlc3RDYXNlc1tpXTsKLSAgICAg
ICAgdmFyIHdyYXBwZXIgPSBudWxsOwotICAgICAgICBzd2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2Rl
KSB7Ci0gICAgICAgIGNhc2UgRGF0YU1vZGUuSU1BR0U6Ci0gICAgICAgICAgICB3cmFwcGVyID0g
bmV3IEltYWdlV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERhdGFNb2RlLklNQUdFX0RBVEE6Ci0gICAgICAg
ICAgICB3cmFwcGVyID0gbmV3IEltYWdlRGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RD
YXNlLmhlaWdodCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEYXRhTW9kZS5S
QVdfREFUQToKLSAgICAgICAgICAgIHN3aXRjaCAodGVzdENhc2UudHlwZSkgewotICAgICAgICAg
ICAgY2FzZSBnbC5VTlNJR05FRF9CWVRFOgotICAgICAgICAgICAgICAgIHN3aXRjaCAodGVzdENh
c2UuZm9ybWF0KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBnbC5SR0JBOgotICAgICAgICAgICAg
ICAgICAgICB3cmFwcGVyID0gbmV3IFJHQkE4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRl
c3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIGNhc2UgZ2wuUkdCOgotICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IFJHQjhE
YXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBnbC5BTFBIQToKLSAgICAgICAg
ICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBBOERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0
ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIGdsLkxVTUlOQU5DRToKLSAgICAgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5l
dyBMOERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGdsLkxVTUlOQU5DRV9B
TFBIQToKLSAgICAgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBMQThEYXRhV3JhcHBlcih0
ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80OgotICAgICAgICAgICAgICAgIHdyYXBw
ZXIgPSBuZXcgUkdCQTQ0NDREYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVp
Z2h0KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdO
RURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IFJHQkE1NTUx
RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81Ogot
ICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCNTY1RGF0YVdyYXBwZXIodGVzdENhc2Uu
d2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdGVzdENhc2Uud3JhcHBlciA9IHdyYXBwZXI7Ci0g
ICAgICAgIHRlc3RDYXNlLmdlbmVyYXRvcih3cmFwcGVyKTsKLSAgICAgICAgdGVzdENhc2Uud3Jh
cHBlci5nZW5lcmF0ZURhdGEoKTsKLSAgICB9Ci0KLSAgICAvLyBTZWUgd2hldGhlciB3ZSBuZWVk
IHRvIHJ1biB0aGUgdGVzdHMsIGluIGNhc2UgYWxsIG9mIHRoZW0KLSAgICAvLyBnZW5lcmF0ZWQg
dGhlaXIgcmVzdWx0cyBzeW5jaHJvbm91c2x5LgotICAgIG1heWJlUnVuVGVzdHMoKTsKLX0KLQot
dmFyIHJhblRlc3RzID0gZmFsc2U7Ci0KLWZ1bmN0aW9uIG1heWJlUnVuVGVzdHMoKQotewotICAg
IGlmICghcmFuVGVzdHMpCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxl
bmd0aDsgKytpKQotICAgICAgICAgICAgaWYgKCF0ZXN0Q2FzZXNbaV0ud3JhcHBlciB8fCAhdGVz
dENhc2VzW2ldLndyYXBwZXIuZGF0YSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICBy
YW5UZXN0cyA9IHRydWU7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5n
dGg7ICsraSkKLSAgICAgICAgcnVuT25lVGVzdCh0ZXN0Q2FzZXNbaV0pOwotCi0gICAgZmluaXNo
VGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2FzZVRvU3RyaW5nKHRlc3RDYXNlKQotewotICAg
IHZhciBtb2RlOwotICAgIHN3aXRjaCAodGVzdENhc2UuZGF0YU1vZGUpIHsKLSAgICBjYXNlIERh
dGFNb2RlLklNQUdFOgotICAgICAgICBtb2RlID0gIkltYWdlIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBEYXRhTW9kZS5JTUFHRV9EQVRBOgotICAgICAgICBtb2RlID0gIkltYWdlRGF0YSI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRGF0YU1vZGUuUkFXX0RBVEE6Ci0gICAgICAgIG1v
ZGUgPSAicmF3IGRhdGEiOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuICh0ZXN0
Q2FzZS51c2VUZXhTdWJJbWFnZTJEID8gInRleFN1YkltYWdlMkQiIDogInRleEltYWdlMkQiKSAr
Ci0gICAgICAgICAgICAiIHdpdGggIiArIG1vZGUgKyAgIiBhdCAiICsgdGVzdENhc2Uud2lkdGgg
KyAieCIgKyB0ZXN0Q2FzZS5oZWlnaHQ7Ci19Ci0KLWZ1bmN0aW9uIHJ1bk9uZVRlc3QodGVzdENh
c2UpCi17Ci0gICAgZGVidWcoIlRlc3RpbmcgIiArIHRlc3RDYXNlVG9TdHJpbmcodGVzdENhc2Up
KTsKLSAgICB2YXIgZGF0YSA9IHRlc3RDYXNlLndyYXBwZXIuZGF0YTsKLSAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgdmFyIHRleHR1
cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0
dXJlIHVuaXQgMC4KLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsK
LSAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzLgotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TkVBUkVTVCk7Ci0gICAgLy8gU2V0IHVwIHBpeGVsIHN0b3JlIHBhcmFtZXRlcnMuCi0gICAgZ2wu
cGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0ZXN0Q2FzZS5w
cmVtdWx0aXBseUFscGhhKTsKLSAgICAvLyBVcGxvYWQgdGhlIGltYWdlIGludG8gdGhlIHRleHR1
cmUuCi0gICAgaWYgKHRlc3RDYXNlLnVzZVRleFN1YkltYWdlMkQpIHsKLSAgICAgICAgLy8gSW5p
dGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBibGFjayBmaXJzdC4KLSAgICAgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLndpZHRoLCB0ZXN0
Q2FzZS5oZWlnaHQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgdGVzdENhc2UuZm9ybWF0LCB0
ZXN0Q2FzZS50eXBlLCBudWxsKTsKLSAgICB9Ci0gICAgc3dpdGNoICh0ZXN0Q2FzZS5kYXRhTW9k
ZSkgewotICAgIGNhc2UgRGF0YU1vZGUuSU1BR0U6Ci0gICAgY2FzZSBEYXRhTW9kZS5JTUFHRV9E
QVRBOgotICAgICAgICBpZiAodGVzdENhc2UudXNlVGV4U3ViSW1hZ2UyRCkKLSAgICAgICAgICAg
IGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgdGVzdENhc2UuZm9ybWF0
LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZ2wudGV4
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLmZvcm1h
dCwgdGVzdENhc2UudHlwZSwgZGF0YSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRGF0YU1v
ZGUuUkFXX0RBVEE6Ci0gICAgICAgIGlmICh0ZXN0Q2FzZS51c2VUZXhTdWJJbWFnZTJEKQotICAg
ICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXN0Q2Fz
ZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUs
IGRhdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdo
dCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1
bml0IDAuCi0gICAgZ2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIDApOwotICAgIC8vIERyYXcgdGhl
IHRyaWFuZ2xlcy4KLSAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7Ci0gICAg
Ly8gQ2xlYW4gdXAgdGhlIHRleHR1cmUuCi0gICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXh0dXJlKTsK
LQotICAgIC8vIFJlYWQgYmFjayB0aGUgcmVuZGVyaW5nIHJlc3VsdHMuCi0gICAgdmFyIGJ1ZiA9
IG5ldyBVaW50OEFycmF5KHRlc3RDYXNlLndpZHRoICogdGVzdENhc2UuaGVpZ2h0ICogNCk7Ci0g
ICAgZ2wucmVhZFBpeGVscygwLCAwLCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIC8vIFJ1biB0aGUgdmVyaWZpY2F0
aW9uIHJvdXRpbmUuCi0gICAgaWYgKHRlc3RDYXNlLnZlcmlmaWVyKGJ1ZiwgdGVzdENhc2UudGhy
ZXNob2xkLCB0ZXN0Q2FzZS5udW1PY2N1cnJlbmNlcykpCi0gICAgICAgIHRlc3RQYXNzZWQodGVz
dENhc2UuZGVzY3JpcHRpb24pOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCh0ZXN0Q2Fz
ZS5kZXNjcmlwdGlvbik7Ci19Ci0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gV3JhcHBlcnMgZm9yIHBy
b2dyYW1tYXRpYyBjb25zdHJ1Y3Rpb24gb2YgSW1hZ2UsIEltYWdlRGF0YSBhbmQgcmF3IHRleHR1
cmUgZGF0YQotLy8KLQotZnVuY3Rpb24gSW1hZ2VXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0g
ICAgdGhpcy5wbmdCdWlsZGVyXyA9IG5ldyBQTkdsaWIod2lkdGgsIGhlaWdodCwgMjU2KTsKLX0K
LQotSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkgewotICAgIHJl
dHVybiB0aGlzLnBuZ0J1aWxkZXJfLndpZHRoOwotfTsKLQotSW1hZ2VXcmFwcGVyLnByb3RvdHlw
ZS5nZXRIZWlnaHQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5wbmdCdWlsZGVyXy5o
ZWlnaHQ7Ci19OwotCi1JbWFnZVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24o
eCwgeSwgciwgZywgYiwgYSkgewotICAgIHRoaXMucG5nQnVpbGRlcl8uYnVmZmVyW3RoaXMucG5n
QnVpbGRlcl8uaW5kZXgoeCwgeSldID0gdGhpcy5wbmdCdWlsZGVyXy5jb2xvcihyLCBnLCBiLCBh
KTsKLX07Ci0KLS8vIEdlbmVyYXRlcyBkYXRhIGludG8gImRhdGEiIHByb3BlcnR5LCBwb3NzaWJs
eSBhc3luY2hyb25vdXNseS4KLUltYWdlV3JhcHBlci5wcm90b3R5cGUuZ2VuZXJhdGVEYXRhID0g
ZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRoYXQgPSB0aGlzOwotICAgIHZhciBpbWcgPSBuZXcgSW1h
Z2UoKTsKLSAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoYXQuZGF0YSA9
IGltZzsKLSAgICAgICAgbWF5YmVSdW5UZXN0cygpOwotICAgIH07Ci0gICAgaW1nLnNyYyA9ICJk
YXRhOmltYWdlL3BuZztiYXNlNjQsIiArIHRoaXMucG5nQnVpbGRlcl8uZ2V0QmFzZTY0KCk7Ci19
OwotCi1mdW5jdGlvbiBJbWFnZURhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgaWYg
KCFJbWFnZURhdGFXcmFwcGVyLnRlbXBDYW52YXMpIHsKLSAgICAgICAgSW1hZ2VEYXRhV3JhcHBl
ci50ZW1wQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gICAgfQot
ICAgIHRoaXMuaW1hZ2VEYXRhXyA9IEltYWdlRGF0YVdyYXBwZXIudGVtcENhbnZhcy5nZXRDb250
ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSh3aWR0aCwgaGVpZ2h0KTsKLX0KLQotSW1hZ2VEYXRh
V3JhcHBlci50ZW1wQ2FudmFzID0gbnVsbDsKLQotSW1hZ2VEYXRhV3JhcHBlci5wcm90b3R5cGUu
Z2V0V2lkdGggPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5pbWFnZURhdGFfLndpZHRo
OwotfTsKLQotSW1hZ2VEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIHRoaXMuaW1hZ2VEYXRhXy5oZWlnaHQ7Ci19OwotCi1JbWFnZURhdGFX
cmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsK
LSAgICB2YXIgaW5kZXggPSA0ICogKHRoaXMuaW1hZ2VEYXRhXy53aWR0aCAqIHkgKyB4KTsKLSAg
ICB0aGlzLmltYWdlRGF0YV8uZGF0YVtpbmRleF0gPSByOwotICAgIHRoaXMuaW1hZ2VEYXRhXy5k
YXRhW2luZGV4ICsgMV0gPSBnOwotICAgIHRoaXMuaW1hZ2VEYXRhXy5kYXRhW2luZGV4ICsgMl0g
PSBiOwotICAgIHRoaXMuaW1hZ2VEYXRhXy5kYXRhW2luZGV4ICsgM10gPSBhOwotfTsKLQotSW1h
Z2VEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2VuZXJhdGVEYXRhID0gZnVuY3Rpb24oKSB7Ci0gICAg
dGhpcy5kYXRhID0gdGhpcy5pbWFnZURhdGFfOwotICAgIG1heWJlUnVuVGVzdHMoKTsKLX07Ci0K
LWZ1bmN0aW9uIFRleHR1cmVEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQotewotICAgIHRoaXMu
d2lkdGhfID0gd2lkdGg7Ci0gICAgdGhpcy5oZWlnaHRfID0gaGVpZ2h0OwotfQotCi1UZXh0dXJl
RGF0YVdyYXBwZXIucHJvdG90eXBlLmdldFdpZHRoID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJu
IHRoaXMud2lkdGhfOwotfTsKLQotVGV4dHVyZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRIZWln
aHQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oZWlnaHRfOwotfTsKLQotVGV4dHVy
ZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZW5lcmF0ZURhdGEgPSBmdW5jdGlvbigpIHsKLSAgICB0
aGlzLmRhdGEgPSB0aGlzLmRhdGFfOwotICAgIG1heWJlUnVuVGVzdHMoKTsKLX07Ci0KLWZ1bmN0
aW9uIFJHQkE4RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBUZXh0dXJlRGF0YVdy
YXBwZXIuY2FsbCh0aGlzLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlzLmRhdGFfID0gbmV3IFVp
bnQ4QXJyYXkoNCAqIHdpZHRoICogaGVpZ2h0KTsKLX0KLQotUkdCQThEYXRhV3JhcHBlci5wcm90
b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFXcmFwcGVyOwotCi1SR0JBOERhdGFXcmFwcGVyLnByb3Rv
dHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB2YXIgaW5k
ZXggPSA0ICogKHRoaXMud2lkdGhfICogeSArIHgpOwotICAgIHRoaXMuZGF0YV9baW5kZXhdID0g
cjsKLSAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBnOwotICAgIHRoaXMuZGF0YV9baW5kZXgg
KyAyXSA9IGI7Ci0gICAgdGhpcy5kYXRhX1tpbmRleCArIDNdID0gYTsKLX07Ci0KLWZ1bmN0aW9u
IFJHQkE1NTUxRGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBUZXh0dXJlRGF0YVdy
YXBwZXIuY2FsbCh0aGlzLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlzLmRhdGFfID0gbmV3IFVp
bnQxNkFycmF5KHdpZHRoICogaGVpZ2h0KTsKLX0KLQotUkdCQTU1NTFEYXRhV3JhcHBlci5wcm90
b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFXcmFwcGVyOwotCi1SR0JBNTU1MURhdGFXcmFwcGVyLnBy
b3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB2YXIg
dmFsdWUgPSAoKChyICYgMHhGOCkgPDwgOCkKLSAgICAgICAgICAgICAgICAgfCAoKGcgJiAweEY4
KSA8PCAzKQotICAgICAgICAgICAgICAgICB8ICgoYiAmIDB4RjgpID4+IDIpCi0gICAgICAgICAg
ICAgICAgIHwgKGEgPj4gNykpOwotICAgIHRoaXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0g
PSB2YWx1ZTsKLX07Ci0KLWZ1bmN0aW9uIFJHQkE0NDQ0RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdo
dCkKLXsKLSAgICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0aGlzLCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQxNkFycmF5KHdpZHRoICogaGVpZ2h0KTsKLX0KLQot
UkdCQTQ0NDREYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFXcmFwcGVyOwot
Ci1SR0JBNDQ0NERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHks
IHIsIGcsIGIsIGEpIHsKLSAgICB2YXIgdmFsdWUgPSAoKChyICYgMHhGMCkgPDwgOCkKLSAgICAg
ICAgICAgICAgICAgfCAoKGcgJiAweEYwKSA8PCA0KQotICAgICAgICAgICAgICAgICB8IChiICYg
MHhGMCkKLSAgICAgICAgICAgICAgICAgfCAoYSA+PiA0KSk7Ci0gICAgdGhpcy5kYXRhX1t0aGlz
LndpZHRoXyAqIHkgKyB4XSA9IHZhbHVlOwotfTsKLQotZnVuY3Rpb24gUkdCOERhdGFXcmFwcGVy
KHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lk
dGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KDMgKiB3aWR0aCAq
IGhlaWdodCk7Ci19Ci0KLVJHQjhEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURh
dGFXcmFwcGVyOwotCi1SR0I4RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rp
b24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHZhciBpbmRleCA9IDMgKiAodGhpcy53aWR0aF8g
KiB5ICsgeCk7Ci0gICAgdGhpcy5kYXRhX1tpbmRleF0gPSByOwotICAgIHRoaXMuZGF0YV9baW5k
ZXggKyAxXSA9IGc7Ci0gICAgdGhpcy5kYXRhX1tpbmRleCArIDJdID0gYjsKLX07Ci0KLWZ1bmN0
aW9uIFJHQjU2NURhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFX
cmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBV
aW50MTZBcnJheSh3aWR0aCAqIGhlaWdodCk7Ci19Ci0KLVJHQjU2NURhdGFXcmFwcGVyLnByb3Rv
dHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7Ci0KLVJHQjU2NURhdGFXcmFwcGVyLnByb3Rv
dHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB2YXIgdmFs
dWUgPSAoKChyICYgMHhGOCkgPDwgOCkKLSAgICAgICAgICAgICAgICAgfCAoKGcgJiAweEZDKSA8
PCAzKQotICAgICAgICAgICAgICAgICB8ICgoYiAmIDB4RjgpID4+IDMpKTsKLSAgICB0aGlzLmRh
dGFfW3RoaXMud2lkdGhfICogeSArIHhdID0gdmFsdWU7Ci19OwotCi1mdW5jdGlvbiBBOERhdGFX
cmFwcGVyKHdpZHRoLCBoZWlnaHQpCi17Ci0gICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhp
cywgd2lkdGgsIGhlaWdodCk7Ci0gICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KHdpZHRo
ICogaGVpZ2h0KTsKLX0KLQotQThEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURh
dGFXcmFwcGVyOwotCi1BOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9u
KHgsIHksIHIsIGcsIGIsIGEpIHsKLSAgICB0aGlzLmRhdGFfW3RoaXMud2lkdGhfICogeSArIHhd
ID0gYTsKLX07Ci0KLWZ1bmN0aW9uIEw4RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAg
ICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0aGlzLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlz
LmRhdGFfID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQpOwotfQotCi1MOERhdGFXcmFw
cGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7Ci0KLUw4RGF0YVdyYXBwZXIu
cHJvdG90eXBlLnNldFBpeGVsID0gZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHRo
aXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0gPSByOwotfTsKLQotZnVuY3Rpb24gTEE4RGF0
YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKLXsKLSAgICBUZXh0dXJlRGF0YVdyYXBwZXIuY2FsbCh0
aGlzLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB0aGlzLmRhdGFfID0gbmV3IFVpbnQ4QXJyYXkoMiAq
IHdpZHRoICogaGVpZ2h0KTsKLX0KLQotTEE4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRl
eHR1cmVEYXRhV3JhcHBlcjsKLQotTEE4RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFBpeGVsID0g
ZnVuY3Rpb24oeCwgeSwgciwgZywgYiwgYSkgewotICAgIHZhciBpbmRleCA9IDIgKiAodGhpcy53
aWR0aF8gKiB5ICsgeCk7Ci0gICAgdGhpcy5kYXRhX1tpbmRleF0gPSByOwotICAgIHRoaXMuZGF0
YV9baW5kZXggKyAxXSA9IGE7Ci19OwotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIENvbG9yIHJhbXAg
Z2VuZXJhdGlvbiBmdW5jdGlvbnMKLS8vCi0KLWZ1bmN0aW9uIGdlbmVyYXRlT3BhcXVlR3JheXNj
YWxlUmFtcCh3cmFwcGVyKQotewotICAgIHZhciB3aWR0aCA9IHdyYXBwZXIuZ2V0V2lkdGgoKTsK
LSAgICB2YXIgaGVpZ2h0ID0gd3JhcHBlci5nZXRIZWlnaHQoKTsKLSAgICBmb3IgKHZhciB4ID0g
MDsgeCA8IHdpZHRoOyArK3gpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gTWF0aC5yb3VuZCgyNTUu
MCAqIHggLyB3aWR0aCk7Ci0gICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kp
Ci0gICAgICAgICAgICB3cmFwcGVyLnNldFBpeGVsKHgsIHksIHZhbHVlLCB2YWx1ZSwgdmFsdWUs
IDI1NSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBnZW5lcmF0ZVRyYW5zbHVjZW50R3JheXNjYWxl
UmFtcCh3cmFwcGVyKQotewotICAgIHZhciB3aWR0aCA9IHdyYXBwZXIuZ2V0V2lkdGgoKTsKLSAg
ICB2YXIgaGVpZ2h0ID0gd3JhcHBlci5nZXRIZWlnaHQoKTsKLSAgICBmb3IgKHZhciB4ID0gMDsg
eCA8IHdpZHRoOyArK3gpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gTWF0aC5yb3VuZCgyNTUuMCAq
IHggLyB3aWR0aCk7Ci0gICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpCi0g
ICAgICAgICAgICB3cmFwcGVyLnNldFBpeGVsKHgsIHksIHZhbHVlLCB2YWx1ZSwgdmFsdWUsIHZh
bHVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVS
YW1wKHdyYXBwZXIpCi17Ci0gICAgdmFyIHdpZHRoID0gd3JhcHBlci5nZXRXaWR0aCgpOwotICAg
IHZhciBoZWlnaHQgPSB3cmFwcGVyLmdldEhlaWdodCgpOwotICAgIGZvciAodmFyIHggPSAwOyB4
IDwgd2lkdGg7ICsreCkgewotICAgICAgICB2YXIgdmFsdWUgPSBNYXRoLnJvdW5kKDI1NS4wICog
eCAvIHdpZHRoKTsKLSAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkKLSAg
ICAgICAgICAgIHdyYXBwZXIuc2V0UGl4ZWwoeCwgeSwgdmFsdWUsIHZhbHVlLCB2YWx1ZSwgMCk7
Ci0gICAgfQotfQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFZlcmlmaWNhdGlvbiByb3V0aW5lcwot
Ly8KLQotZnVuY3Rpb24gYWxsQ2hhbm5lbHNJbmNyZWFzZUJ5Tm9Nb3JlVGhhbihhcnJheSwgdGhy
ZXNob2xkLCBudW1PY2N1cnJlbmNlcykgewotICAgIHZhciBudW1Gb3VuZCA9IDA7Ci0gICAgZm9y
ICh2YXIgaSA9IDQ7IGkgPCBhcnJheS5sZW5ndGg7IGkgKz0gNCkKLSAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCA0OyBqKyspCi0gICAgICAgICAgICBpZiAoYXJyYXlbaSArIGpdIC0gYXJyYXlb
aSArIGogLSA0XSA+IHRocmVzaG9sZCkKLSAgICAgICAgICAgICAgICArK251bUZvdW5kOwotCi0g
ICAgcmV0dXJuIG51bUZvdW5kIDwgbnVtT2NjdXJyZW5jZXM7Ci19Ci0KLWZ1bmN0aW9uIGFscGhh
Q2hhbm5lbEluY3JlYXNlc0J5Tm9Nb3JlVGhhbihhcnJheSwgdGhyZXNob2xkLCBudW1PY2N1cnJl
bmNlcykgewotICAgIHZhciBudW1Gb3VuZCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDc7IGkgPCBh
cnJheS5sZW5ndGg7IGkgKz0gNCkKLSAgICAgICAgaWYgKGFycmF5W2ldIC0gYXJyYXlbaSAtIDRd
ID4gdGhyZXNob2xkKQotICAgICAgICAgICAgKytudW1Gb3VuZDsKLQotICAgIHJldHVybiBudW1G
b3VuZCA8IG51bU9jY3VycmVuY2VzOwotfQotCi1mdW5jdGlvbiBhbGxDaGFubmVsc0luY3JlYXNl
QnlBdExlYXN0KGFycmF5LCB0aHJlc2hvbGQsIG51bU9jY3VycmVuY2VzKSB7Ci0gICAgdmFyIG51
bUZvdW5kID0gMDsKLSAgICBmb3IgKHZhciBpID0gNDsgaSA8IGFycmF5Lmxlbmd0aDsgaSArPSA0
KQotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7ICsraikKLSAgICAgICAgICAgIGlmIChh
cnJheVtpICsgal0gLSBhcnJheVtpICsgaiAtIDRdID4gdGhyZXNob2xkKQotICAgICAgICAgICAg
ICAgICsrbnVtRm91bmQ7Ci0KLSAgICByZXR1cm4gbnVtRm91bmQgPiBudW1PY2N1cnJlbmNlczsK
LX0KLQotZnVuY3Rpb24gY29sb3JDaGFubmVsc0FyZVplcm8oYXJyYXksIHRocmVzaG9sZCwgbnVt
T2NjdXJyZW5jZXMpIHsKLSAgICB2YXIgcGFzc2VkID0gdHJ1ZTsKLSAgICB2YXIgbnVtRmFpbHVy
ZXMgPSAwOwotCi0gICAgZm9yICh2YXIgaSA9IDQ7IGkgPCBhcnJheS5sZW5ndGg7IGkgKz0gNCkK
LSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAzOyArK2opCi0gICAgICAgICAgICBpZiAoYXJy
YXlbaSArIGpdICE9IDApIHsKLSAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgICBpZiAoKytudW1GYWlsdXJlcyA8PSA1KQotICAgICAgICAgICAgICAgICAgICBk
ZWJ1ZygiICBhcnJheVsiICsgKGkgKyBqKSArICJdIHNob3VsZCBoYXZlIGJlZW4gMCwgd2FzICIg
KyBhcnJheVtpICsgal0pOwotICAgICAgICAgICAgfQotCi0gICAgcmV0dXJuIHBhc3NlZDsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci08Y2FudmFzIGlk
PSJleGFtcGxlIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjEiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleC1pbWFnZS13aXRo
LWludmFsaWQtZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtaW1hZ2Ut
d2l0aC1pbnZhbGlkLWRhdGEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYy
M2JlMjRiNGNiMzJkYWM1YjBkNzY2ODRlYjVjMzFjM2UyZGY1ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3Rl
eC1pbWFnZS13aXRoLWludmFsaWQtZGF0YS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI5ICsw
LDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+
dGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB0ZXN0cyB3aXRoIGludmFsaWQgZGF0YTwvdGl0
bGU+Ci0gIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIi8+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxjYW52YXMgaWQ9ImNhbnZhcyIgd2lk
dGg9IjIiIGhlaWdodD0iMiI+IDwvY2FudmFzPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotZGVzY3JpcHRpb24oInRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGVzdHMgd2l0
aCBpbnZhbGlkIGRhdGEiKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLXZhciBnbCA9IHd0dS5jcmVh
dGUzRENvbnRleHQoY2FudmFzKTsKLWlmICghZ2wpCi0gIHRlc3RGYWlsZWQoIkNvbnRleHQgY3Jl
YXRlZC4iKTsKLWVsc2UKLSAgdGVzdFBhc3NlZCgiQ29udGV4dCBjcmVhdGVkLiIpOwotCi12YXIg
dGV4OwotCi1mdW5jdGlvbiBzZXR1cCgpIHsKLSAgICB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgYnVnMzI2MTlfdGVzdHMudGV4KTsK
LSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDY0LCA2NCwgMCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlYXJkb3du
KCkgewotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLX0KLQotZnVuY3Rpb24gdGVzdChkZXNj
LCBmdW5jLCBleHBlY3RlZCkgewotICAgIGRlYnVnKGRlc2MpOwotCi0gICAgdmFyIGV4YyA9IG51
bGw7Ci0gICAgdHJ5IHsKLSAgICAgICAgZnVuYygpOwotICAgIH0gY2F0Y2ggKHgpIHsKLSAgICAg
ICAgZXhjID0geDsKLSAgICB9Ci0KLSAgICBpZiAoZXhwZWN0ZWQgPT0gZ2wuSU5WQUxJRF9PUEVS
QVRJT04pIHsKLSAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXhwZWN0ZWQpOwotICAgIH0gZWxz
ZSBpZiAoZXhwZWN0ZWQgPT0gImV4Y2VwdGlvbiIpIHsKLSAgICAgICAgaWYgKGV4YykgewotICAg
ICAgICAgICAgdGVzdFBhc3NlZCgidGhyZXcgZXhjZXB0aW9uIik7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJkaWQgbm90IHRocm93IGV4Y2VwdGlvbiIpOwotICAg
ICAgICB9Ci0gICAgfQotfQotCi10ZXN0KCJQYXNzaW5nIGEgYnVmZmVyIG5vdCBsYXJnZSBlbm91
Z2ggdG8gdGV4SW1hZ2UyRCBzaG91bGQgZ2VuZXJhdGUgYW4gSU5WQUxJRF9PUEVSQVRJT04iLAot
ICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgIHZhciB0b29TbWFsbCA9IG5ldyBVaW50OEFycmF5KDY0
KTsKLSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCA2NCwg
NjQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRvb1NtYWxsKTsKLSAgICAgfSwKLSAg
ICAgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOwotCi10ZXN0KCJQYXNzaW5nIHRleEltYWdlMkQgcGFy
YW1ldGVyIGRhdGEgb2YgTnVtYmVyIHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiIsCi0g
ICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0JBLCA2NCwgNjQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIDQyKTsKLSAg
ICAgfSwKLSAgICAgImV4Y2VwdGlvbiIpOwotCi10ZXN0KCJQYXNzaW5nIHRleEltYWdlMkQgcGFy
YW1ldGVyIGRhdGEgb2YgU3RyaW5nIHR5cGUgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIiwKLSAg
ICAgZnVuY3Rpb24gKCkgewotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIDY0LCA2NCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgIm5vdCBhIGJ1
ZmZlciIpOwotICAgICB9LAotICAgICAiZXhjZXB0aW9uIik7Ci10ZXN0KCJQYXNzaW5nIGEgYnVm
ZmVyIG5vdCBsYXJnZSBlbm91Z2ggdG8gdGV4U3ViSW1hZ2UyRCBzaG91bGQgZ2VuZXJhdGUgYW4g
SU5WQUxJRF9PUEVSQVRJT04iLAotICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciB0b29T
bWFsbCA9IG5ldyBVaW50OEFycmF5KDY0KTsKLSAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCA2NCwgNjQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRv
b1NtYWxsKTsKLSAgICAgfSwKLSAgICAgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOwotCi10ZXN0KCJQ
YXNzaW5nIHRleFN1YkltYWdlMkQgcGFyYW1ldGVyIGRhdGEgb2YgTnVtYmVyIHR5cGUgc2hvdWxk
IHRocm93IGEgVHlwZUVycm9yIiwKLSAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICBnbC50ZXhT
dWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIDY0LCA2NCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgNDIpOwotICAgICB9LAotICAgICAiZXhjZXB0aW9uIik7Ci0KLXRlc3QoIlBh
c3NpbmcgdGV4U3ViSW1hZ2UyRCBwYXJhbWV0ZXIgZGF0YSBvZiBTdHJpbmcgdHlwZSBzaG91bGQg
dGhyb3cgYSBUeXBlRXJyb3IiLAotICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGdsLnRleFN1
YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgNjQsIDY0LCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCAibm90IGEgYnVmZmVyIik7Ci0gICAgIH0sCi0gICAgICJleGNlcHRpb24iKTsK
LQotZGVidWcoIiIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVz
L3RleC1pbnB1dC12YWxpZGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY4M2ZjYmZjMWRlZjdlOWRjNTljYTEyMTQzNTAyZmYxNDA4YmI1MmEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtaW5wdXQtdmFsaWRhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzg0ICswLDAg
QEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us
IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQv
b3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwg
dG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwot
Kiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l
cmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29w
aWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0
aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNv
cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRI
RSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg
VE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0q
KiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9G
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9U
SEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgotCi08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwotdmFyIGdsID0gbnVsbDsKLXZhciB0ZXggPSBudWxsOwotdmFyIGVycm9yID0gMDsKLQot
ZnVuY3Rpb24gZW51bVRvU3RyaW5nKHZhbHVlKSB7Ci0gIHJldHVybiB3dHUuZ2xFbnVtVG9TdHJp
bmcoZ2wsIHZhbHVlKTsKLX0KLQotZnVuY3Rpb24gdGVzdFRleEltYWdlMkQodGVzdENhc2UpCi17
Ci0gICAgdmFyIGxldmVsID0gMDsKLSAgICB2YXIgd2lkdGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0
ID0gMTY7Ci0gICAgdmFyIG1zZyA9ICIiICsKLSAgICAgICIgaW50ZXJuYWxGb3JtYXQ6ICIgKyBl
bnVtVG9TdHJpbmcodGVzdENhc2UuaW50ZXJuYWxGb3JtYXQpICsKLSAgICAgICIgdGFyZ2V0OiAi
ICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnRhcmdldCkgKwotICAgICAgIiBmb3JtYXQ6ICIgKyBl
bnVtVG9TdHJpbmcodGVzdENhc2UuZm9ybWF0KSArCi0gICAgICAiIHR5cGU6ICIgKyBlbnVtVG9T
dHJpbmcodGVzdENhc2UudHlwZSkgKwotICAgICAgIiBib3JkZXI6ICIgKyB0ZXN0Q2FzZS5ib3Jk
ZXI7Ci0KLSAgICBnbC50ZXhJbWFnZTJEKHRlc3RDYXNlLnRhcmdldCwgbGV2ZWwsIHRlc3RDYXNl
LmludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0ZXN0Q2FzZS5ib3JkZXIsIHRlc3RDYXNl
LmZvcm1hdCwgdGVzdENhc2UudHlwZSwgbnVsbCk7Ci0gICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBl
Y3RlZEVycm9yOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RUZXhTdWJJbWFnZTJEKHRlc3RDYXNlKQotewotICAgIHZhciBsZXZlbCA9IDA7
Ci0gICAgdmFyIHhvZmZzZXQgPSAwOwotICAgIHZhciB5b2Zmc2V0ID0gMDsKLSAgICB2YXIgd2lk
dGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0ID0gMTY7Ci0gICAgdmFyIG1zZyA9ICIiKwotICAgICAg
ICAiIGZvcm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5mb3JtYXQpICsKLSAgICAgICAg
IiB0eXBlOiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLnR5cGUpOwotICAgIHZhciBhcnJheSA9
IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7Ci0gICAgZ2wudGV4U3ViSW1hZ2Uy
RCh0ZXN0Q2FzZS50YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB3aWR0aCwgaGVpZ2h0
LCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGFycmF5KTsKLSAgICBlcnJvciA9IHRl
c3RDYXNlLmV4cGVjdGVkRXJyb3I7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBlcnJvciwgbXNn
KTsKLX0KLQotZnVuY3Rpb24gdGVzdFRleFBhcmFtZXRlcih0ZXN0Q2FzZSkKLXsKLSAgICB2YXIg
bXNnID0gInBhcmFtTmFtZTogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5wbmFtZSk7Ci0gICAg
ZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVycm9yOwotICAgIGdsLnRleFBhcmFtZXRlcmkodGVz
dENhc2UudGFyZ2V0LCB0ZXN0Q2FzZS5wbmFtZSwgdGVzdENhc2UucGFyYW0pOwotICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyZih0ZXN0Q2Fz
ZS50YXJnZXQsIHRlc3RDYXNlLnBuYW1lLCB0ZXN0Q2FzZS5wYXJhbSk7Ci0gICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBlcnJvciwgbXNnKTsKLX0KLQotZnVuY3Rpb24gdGVzdEdldFRleFBhcmFtZXRl
cih0ZXN0Q2FzZSkKLXsKLSAgICB2YXIgbXNnID0gInBhcmFtTmFtZTogIiArIGVudW1Ub1N0cmlu
Zyh0ZXN0Q2FzZS5wbmFtZSk7Ci0gICAgZXJyb3IgPSB0ZXN0Q2FzZS5leHBlY3RlZEVycm9yOwot
ICAgIGdsLmdldFRleFBhcmFtZXRlcih0ZXN0Q2FzZS50YXJnZXQsIHRlc3RDYXNlLnBuYW1lKTsK
LSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlvbiB0ZXN0
Q29weVRleEltYWdlMkQodGVzdENhc2UpCi17Ci0gICAgdmFyIGxldmVsID0gMDsKLSAgICB2YXIg
eCA9IDA7Ci0gICAgdmFyIHkgPSAwOwotICAgIHZhciB3aWR0aCA9IDE2OwotICAgIHZhciBoZWln
aHQgPSAxNjsKLQotICAgIHZhciBtc2cgPSAiIiArCi0gICAgICAiIGNvbG9yQnVmZmVyRm9ybWF0
OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmNvbG9yQnVmZmVyRm9ybWF0KSArCi0gICAgICAi
IGludGVybmFsRm9ybWF0OiAiICsgZW51bVRvU3RyaW5nKHRlc3RDYXNlLmludGVybmFsRm9ybWF0
KSArCi0gICAgICAiIHRhcmdldDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS50YXJnZXQpICsK
LSAgICAgICIgYm9yZGVyOiAiICsgdGVzdENhc2UuYm9yZGVyOwotCi0gICAgZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIHRlc3RDYXNlLmNvbG9yQnVmZmVyRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAg
ICBzaG91bGRCZSgiZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikiLCAi
Z2wuRlJBTUVCVUZGRVJfQ09NUExFVEUiKTsKLQotICAgIGdsLmNvcHlUZXhJbWFnZTJEKHRlc3RD
YXNlLnRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4LCB5LCB3aWR0aCwg
aGVpZ2h0LCB0ZXN0Q2FzZS5ib3JkZXIpOwotICAgIGVycm9yID0gdGVzdENhc2UuZXhwZWN0ZWRF
cnJvcjsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9yLCBtc2cpOwotfQotCi1mdW5jdGlv
biB0ZXN0Q29weVRleFN1YkltYWdlMkQodGVzdENhc2UpCi17Ci0gICAgdmFyIGxldmVsID0gMDsK
LSAgICB2YXIgeCA9IDA7Ci0gICAgdmFyIHkgPSAwOwotICAgIHZhciB3aWR0aCA9IDE2OwotICAg
IHZhciBoZWlnaHQgPSAxNjsKLSAgICB2YXIgeG9mZnNldCA9IDA7Ci0gICAgdmFyIHlvZmZzZXQg
PSAwOwotICAgIHZhciBib3JkZXIgPSAwOwotICAgIHZhciB0eXBlID0gZ2wuVU5TSUdORURfQllU
RTsKLSAgICB2YXIgbXNnID0gIiIgKwotICAgICAgIiBjb2xvckJ1ZmZlckZvcm1hdDogIiArIGVu
dW1Ub1N0cmluZyh0ZXN0Q2FzZS5jb2xvckJ1ZmZlckZvcm1hdCkgKwotICAgICAgIiBpbnRlcm5h
bEZvcm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCkgKwotICAg
ICAgIiB0YXJnZXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVzdENhc2UudGFyZ2V0KTsKLQotICAgIGds
LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0Q2FzZS5jb2xvckJ1ZmZl
ckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7Ci0gICAgc2hvdWxkQmUoImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIiwgImdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFIik7Ci0KLSAgICBnbC50ZXhJbWFnZTJE
KHRlc3RDYXNlLnRhcmdldCwgbGV2ZWwsIHRlc3RDYXNlLmludGVybmFsRm9ybWF0LCB4b2Zmc2V0
ICsgd2lkdGgsIHlvZmZzZXQgKyBoZWlnaHQsIGJvcmRlciwgdGVzdENhc2UuaW50ZXJuYWxGb3Jt
YXQsIHR5cGUsIG51bGwpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
Ci0gICAgZ2wuY29weVRleFN1YkltYWdlMkQodGVzdENhc2UudGFyZ2V0LCBsZXZlbCwgeG9mZnNl
dCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgZXJyb3IgPSB0ZXN0Q2FzZS5l
eHBlY3RlZEVycm9yOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyb3IsIG1zZyk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RDb3B5RnJvbUludGVybmFsRkJPKHRlc3RDYXNlKQotewotICAgIHZhciB0
YXJnZXQgPSBnbC5URVhUVVJFXzJEOwotICAgIHZhciBsZXZlbCA9IDA7Ci0gICAgdmFyIHggPSAw
OwotICAgIHZhciB5ID0gMDsKLSAgICB2YXIgd2lkdGggPSAxNjsKLSAgICB2YXIgaGVpZ2h0ID0g
MTY7Ci0gICAgdmFyIHhvZmZzZXQgPSAwOwotICAgIHZhciB5b2Zmc2V0ID0gMDsKLSAgICB2YXIg
Ym9yZGVyID0gMDsKLSAgICB2YXIgdHlwZSA9IGdsLlVOU0lHTkVEX0JZVEU7Ci0gICAgdmFyIG1z
ZyA9ICIiICsKLSAgICAgICIgY29sb3JCdWZmZXJGb3JtYXQ6ICIgKyBlbnVtVG9TdHJpbmcodGVz
dENhc2UuY29udGV4dEFscGhhID8gZ2wuUkdCQSA6IGdsLlJHQikgKwotICAgICAgIiBpbnRlcm5h
bEZvcm1hdDogIiArIGVudW1Ub1N0cmluZyh0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCk7Ci0KLSAg
ICBpZiAodGVzdENhc2UuY29udGV4dEFscGhhKQotICAgICAgICBnbCA9IHd0dS5jcmVhdGUzRENv
bnRleHQobnVsbCwgeyBhbHBoYTogdHJ1ZSB9KTsKLSAgICBlbHNlCi0gICAgICAgIGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7IGFscGhhOiBmYWxzZSB9KTsKLSAgICBzaG91bGRCZU5v
bk51bGwoImdsIik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0ZXggPSBnbC5jcmVhdGVUZXh0dXJl
KCkiKTsKLSAgICBnbC5iaW5kVGV4dHVyZSh0YXJnZXQsIHRleCk7Ci0gICAgaWYgKHRlc3RDYXNl
LnN1YkltYWdlKSB7Ci0gICAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdENh
c2UuaW50ZXJuYWxGb3JtYXQsIHhvZmZzZXQgKyB3aWR0aCwgeW9mZnNldCArIGhlaWdodCwgYm9y
ZGVyLCB0ZXN0Q2FzZS5pbnRlcm5hbEZvcm1hdCwgdHlwZSwgbnVsbCk7Ci0gICAgICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICB9IGVsc2UgewotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LSAgICAgICAgZ2wuY29weVRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgdGVzdENhc2UuaW50ZXJu
YWxGb3JtYXQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGJvcmRlcik7Ci0gICAgfQotICAgIGVycm9y
ID0gdGVzdENhc2UuZXhwZWN0ZWRFcnJvcjsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGVycm9y
LCBtc2cpOwotfQotCi1kZXNjcmlwdGlvbigiVmFsaWRhdGUgdGV4IGZ1bmN0aW9ucyBpbnB1dCBw
YXJhbWV0ZXJzIik7Ci0KLXNob3VsZEJlTm9uTnVsbCgiZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KCkiKTsKLXNob3VsZEJlTm9uTnVsbCgidGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpIik7Ci1nbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVja2luZyBUZXhJbWFnZTJEOiBhIHNl
dCBvZiBpbnB1dHMgdGhhdCBhcmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsK
LQotdmFyIHRlc3RDYXNlcyA9Ci0gIFsge3RhcmdldDogMHg4MDY0LCAvLyBHTF9QUk9YWV9URVhU
VVJFXzJECi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBib3JkZXI6IDAsCi0g
ICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAg
ZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJF
XzJELAotICAgICBpbnRlcm5hbEZvcm1hdDogMHgxOTAzLCAvLyBHTF9SRUQKLSAgICAgYm9yZGVy
OiAwLAotICAgICBmb3JtYXQ6IDB4MTkwMywgLy8gR0xfUkVECi0gICAgIHR5cGU6IGdsLlVOU0lH
TkVEX0JZVEUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3Rh
cmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAg
IGJvcmRlcjogMSwKLSAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICB0eXBlOiBnbC5VTlNJR05F
RF9CWVRFLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX1ZBTFVFfSwKLSAgICB7dGFy
Z2V0OiBnbC5URVhUVVJFXzJELAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAg
Ym9yZGVyOiAwLAotICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgdHlwZTogZ2wuVU5TSUdORURf
QllURSwKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9PUEVSQVRJT059LAotICAgIHt0
YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAg
ICBib3JkZXI6IDAsCi0gICAgIGZvcm1hdDogZ2wuUkdCQSwKLSAgICAgdHlwZTogZ2wuQllURSwK
LSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5U
RVhUVVJFXzJELAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwKLSAgICAgYm9yZGVyOiAw
LAotICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCi0g
ICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9SfSBdOwotCi1mb3IgKHZhciBpaSA9IDA7IGlp
IDwgdGVzdENhc2VzLmxlbmd0aDsgKytpaSkKLSAgICB0ZXN0VGV4SW1hZ2UyRCh0ZXN0Q2FzZXNb
aWldKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNoZWNraW5nIFRleFN1YkltYWdlMkQ6IGEgc2V0
IG9mIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOwot
Ci10ZXN0Q2FzZXMgPQotICBbIHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGZvcm1hdDog
MHgxOTAzLCAvLyBHTF9SRUQKLSAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgZXhw
ZWN0ZWRFcnJvcjogZ2wuSU5WQUxJRF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJE
LAotICAgICBmb3JtYXQ6IGdsLlJHQkEsCi0gICAgIHR5cGU6IGdsLkJZVEUsCi0gICAgIGV4cGVj
dGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwK
LSAgICAgZm9ybWF0OiBnbC5SR0JBLAotICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAg
ICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8
IHRlc3RDYXNlcy5sZW5ndGg7ICsraWkpCi0gICAgdGVzdFRleFN1YkltYWdlMkQodGVzdENhc2Vz
W2lpXSk7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVja2luZyBUZXhQYXJhbWV0ZXI6IGEgc2V0
IG9mIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBpbiBHTCBidXQgaW52YWxpZCBpbiBHTEVTMiIpOwot
Ci10ZXN0Q2FzZXMgPQotICBbIHt0YXJnZXQ6IDB4MERFMCwgLy8gR0xfVEVYVFVSRV8xRAotICAg
ICBwbmFtZTogZ2wuVEVYVFVSRV9XUkFQX1QsCi0gICAgIHBhcmFtOiBnbC5SRVBFQVQsCi0gICAg
IGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfRU5VTX0sCi0gICAge3RhcmdldDogZ2wuVEVYVFVS
RV8yRCwKLSAgICAgcG5hbWU6IDB4ODEzQSwgLy8gR0xfVEVYVFVSRV9NSU5fTE9ECi0gICAgIHBh
cmFtOiAwLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0YXJn
ZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKLSAgICAg
cGFyYW06IDB4MjkwMCwgLy8gR0xfQ0xBTVAKLSAgICAgZXhwZWN0ZWRFcnJvcjogZ2wuSU5WQUxJ
RF9FTlVNfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBwbmFtZTogZ2wuVEVY
VFVSRV9XUkFQX1QsCi0gICAgIHBhcmFtOiBnbC5SRVBFQVQsCi0gICAgIGV4cGVjdGVkRXJyb3I6
IGdsLk5PX0VSUk9SfSBdOwotCi1mb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENhc2VzLmxlbmd0
aDsgKytpaSkKLSAgICB0ZXN0VGV4UGFyYW1ldGVyKHRlc3RDYXNlc1tpaV0pOwotCi1kZWJ1Zygi
Iik7Ci1kZWJ1ZygiQ2hlY2tpbmcgR2V0VGV4UGFyYW1ldGVyOiBhIHNldCBvZiBpbnB1dHMgdGhh
dCBhcmUgdmFsaWQgaW4gR0wgYnV0IGludmFsaWQgaW4gR0xFUzIiKTsKLQotdGVzdENhc2VzID0K
LSAgWyB7dGFyZ2V0OiAweDBERTAsIC8vIEdMX1RFWFRVUkVfMUQKLSAgICAgcG5hbWU6IGdsLlRF
WFRVUkVfV1JBUF9ULAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAg
IHt0YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIHBuYW1lOiAweDgxM0EsIC8vIEdMX1RFWFRV
UkVfTUlOX0xPRAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0
YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIHBuYW1lOiBnbC5URVhUVVJFX1dSQVBfVCwKLSAg
ICAgZXhwZWN0ZWRFcnJvcjogZ2wuTk9fRVJST1J9IF07Ci0KLWZvciAodmFyIGlpID0gMDsgaWkg
PCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKQotICAgIHRlc3RHZXRUZXhQYXJhbWV0ZXIodGVzdENh
c2VzW2lpXSk7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVja2luZyBDb3B5VGV4SW1hZ2UyRDog
YSBzZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdMIGJ1dCBpbnZhbGlkIGluIEdMRVMy
Iik7Ci0KLXZhciBjb2xvckJ1ZmZlciA9IG51bGw7Ci12YXIgZmJvID0gbnVsbDsKLQotc2hvdWxk
QmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci1nbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci1zaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLWdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVO
REVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci1nbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JC
dWZmZXIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLXRlc3RDYXNlcyA9
Ci0gIFsge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGds
LlJHQjU2NSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IDB4ODA1NCwgLy8gR0xfUkdCMTYKLSAgICAg
Ym9yZGVyOiAwLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5JTlZBTElEX0VOVU19LAotICAgIHt0
YXJnZXQ6IGdsLlRFWFRVUkVfMkQsCi0gICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUs
Ci0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBib3JkZXI6IDEsCi0gICAgIGV4
cGVjdGVkRXJyb3I6IGdsLklOVkFMSURfVkFMVUV9LAotICAgIHt0YXJnZXQ6IGdsLlRFWFRVUkVf
MkQsCi0gICAgIGNvbG9yQnVmZmVyRm9ybWF0OiBnbC5SR0I1NjUsCi0gICAgIGludGVybmFsRm9y
bWF0OiBnbC5SR0JBLAotICAgICBib3JkZXI6IDAsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklO
VkFMSURfT1BFUkFUSU9OfSwKLSAgICB7dGFyZ2V0OiBnbC5URVhUVVJFXzJELAotICAgICBjb2xv
ckJ1ZmZlckZvcm1hdDogZ2wuUkdCNTY1LAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCLAot
ICAgICBib3JkZXI6IDAsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLk5PX0VSUk9SfSBdOwotCi1m
b3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytpaSkKLSAgICB0ZXN0Q29w
eVRleEltYWdlMkQodGVzdENhc2VzW2lpXSk7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVja2lu
ZyBDb3B5VGV4U3ViSW1hZ2UyRDogYSBzZXQgb2YgaW5wdXRzIHRoYXQgYXJlIHZhbGlkIGluIEdM
IGJ1dCBpbnZhbGlkIGluIEdMRVMyIik7Ci0KLXRlc3RDYXNlcyA9Ci0gIFsge3RhcmdldDogZ2wu
VEVYVFVSRV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGdsLlJHQjVfQTEsCi0gICAgIGlu
dGVybmFsRm9ybWF0OiBnbC5SR0JBLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0s
Ci0gICAge3RhcmdldDogZ2wuVEVYVFVSRV8yRCwKLSAgICAgY29sb3JCdWZmZXJGb3JtYXQ6IGds
LlJHQjU2NSwKLSAgICAgaW50ZXJuYWxGb3JtYXQ6IGdsLlJHQkEsCi0gICAgIGV4cGVjdGVkRXJy
b3I6IGdsLklOVkFMSURfT1BFUkFUSU9OfSBdOwotCi1mb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVz
dENhc2VzLmxlbmd0aDsgKytpaSkKLSAgICB0ZXN0Q29weVRleFN1YkltYWdlMkQodGVzdENhc2Vz
W2lpXSk7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDaGVja2luZyBDb3B5VGV4e1N1Yn1JbWFnZTJE
OiBjb3B5IGZyb20gV2ViR0wgaW50ZXJuYWwgZnJhbWVidWZmZXIiKTsKLQotdGVzdENhc2VzID0K
LSAgWyB7Y29udGV4dEFscGhhOiB0cnVlLAotICAgICBpbnRlcm5hbEZvcm1hdDogZ2wuUkdCQSwK
LSAgICAgc3ViSW1hZ2U6IGZhbHNlLAotICAgICBleHBlY3RlZEVycm9yOiBnbC5OT19FUlJPUn0s
Ci0gICAge2NvbnRleHRBbHBoYTogZmFsc2UsCi0gICAgIGludGVybmFsRm9ybWF0OiBnbC5SR0JB
LAotICAgICBzdWJJbWFnZTogZmFsc2UsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGdsLklOVkFMSURf
T1BFUkFUSU9OfSwKLSAgICB7Y29udGV4dEFscGhhOiB0cnVlLAotICAgICBpbnRlcm5hbEZvcm1h
dDogZ2wuUkdCQSwKLSAgICAgc3ViSW1hZ2U6IHRydWUsCi0gICAgIGV4cGVjdGVkRXJyb3I6IGds
Lk5PX0VSUk9SfSwKLSAgICB7Y29udGV4dEFscGhhOiBmYWxzZSwKLSAgICAgaW50ZXJuYWxGb3Jt
YXQ6IGdsLlJHQkEsCi0gICAgIHN1YkltYWdlOiB0cnVlLAotICAgICBleHBlY3RlZEVycm9yOiBn
bC5JTlZBTElEX09QRVJBVElPTn0gXTsKLQotZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNl
cy5sZW5ndGg7ICsraWkpCi0gICAgdGVzdENvcHlGcm9tSW50ZXJuYWxGQk8odGVzdENhc2VzW2lp
XSk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1
Yi1pbWFnZS0yZC1iYWQtYXJncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8x
LjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgt
c3ViLWltYWdlLTJkLWJhZC1hcmdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGJhMGRhZDY1NDI4ZjEzNDJmYmYyOTNmMTg4NWZkMGQ0MDNhNjJlNjIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJl
cy90ZXgtc3ViLWltYWdlLTJkLWJhZC1hcmdzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MyAr
MCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg
YW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxz
IiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp
bmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs
IGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0q
KiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGNhbnZhcyBpZD0idGVzdGJlZCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48
L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImMiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9jYW52YXM+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbignVGVzdHMgdGV4U3ViSW1hZ2Uy
RCB3aXRoIGJhZCBhcmd1bWVudHMnKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFy
IGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpOwotCi12YXIgZ2wgPSB3dHUuY3JlYXRl
M0RDb250ZXh0KCJ0ZXN0YmVkIik7Ci12YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2V0dXAgc2hvdWxkIHN1Y2NlZWQiKTsgCi0KLWds
LnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJ5ICsg
aGVpZ2h0ID4gdGV4dHVyZSBoZWlnaHQiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgMSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJ4ICsgd2lkdGggPiB0ZXh0dXJlIHdpZHRoIik7Ci1n
bC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIC0xLCAwLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm5l
Z2F0aXZlIHgiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgLTEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX1ZBTFVFLCAibmVnYXRpdmUgeSIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAtMSwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJuZWdhdGl2ZSBsZXZlbCIpOwotZ2wudGV4U3ViSW1h
Z2UyRChnbC5GTE9BVCwgMCwgMCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLCAiYmFkIHRhcmdldCIpOwotZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBjKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJnb29kIGFyZ3MiKTsK
LWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lH
TkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwg
ImZvcm1hdCBub3Qgc2FtZSBhcyBvcmlnaW5hbCIpOwotZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIGMpOwot
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgInR5cGUgbm90IHNhbWUg
YXMgb3JpZ2luYWwiKTsKLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCLCBn
bC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUiwgIm1ha2UgdGV4dHVyZSBSR0IiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgImZvcm1hdCBzYW1lIGFzIG9yaWdpbmFsIFJHQiIpOwotZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvcm1h
dCBub3Qgc2FtZSBhcyBvcmlnaW5hbCBSR0IiKTsKLWdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgMCwwLCBnbC5SR0IsIGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81LCBjKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJ0eXBlIG5vdCBzYW1lIGFzIG9y
aWdpbmFsIFJHQiIpOwotZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80LCBjKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IsICJtYWtlIHRleHR1cmUgUkdCQSA0XzRfNF80Iik7Ci1nbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfU0hPUlRf
NF80XzRfNCwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiZm9ybWF0IHNh
bWUgYXMgb3JpZ2luYWwgUkdCQSA0XzRfNF80Iik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsMCwgZ2wuUkdCLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLWdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3JtYXQgbm90IHNhbWUgYXMgb3JpZ2lu
YWwgUkdCQSA0XzRfNF80Iik7Ci1nbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAs
MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfT1BFUkFUSU9OLCAidHlwZSBub3Qgc2FtZSBhcyBvcmlnaW5hbCBSR0JBIDRfNF80
XzQiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4LXN1
Yi1pbWFnZS0yZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdl
LTJkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxY2YwOTZhNTNhN2RiNTlh
MWVkMzNlZWVjNTk2Nzk5YmZlNDFkNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXgtc3ViLWltYWdlLTJk
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot
KioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci0KLXVuaWZvcm0g
c2FtcGxlcjJEIHRleDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLQotdm9pZCBtYWluKCkKLXsK
LSAgICBmbG9hdCBpbnRlbnNpdHkgPSB0ZXh0dXJlMkQodGV4LCB0ZXhDb29yZCkuYTsKLSAgICBn
bF9GcmFnQ29sb3IgPSB2ZWM0KGludGVuc2l0eSwgaW50ZW5zaXR5LCBpbnRlbnNpdHksIDEuMCk7
Ci19Ci08L3NjcmlwdD4KLQotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3
aWR0aD0iMjU2IiBoZWlnaHQ9IjEiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwot
ZGVzY3JpcHRpb24oJ1Rlc3RzIHRleFN1YkltYWdlMkQgdXBsb2FkIHBhdGggZnJvbSBVaW50OEFy
cmF5Jyk7Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4
dChjYW52YXMpOwotZ2wuZGlzYWJsZShnbC5ESVRIRVIpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0
dXBQcm9ncmFtKAotICAgIGdsLAotICAgIFt3dHUuc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hh
ZGVyKGdsKSwgImZzaGFkZXIiXSwKLSAgICBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSk7Ci13
dHUuc2V0dXBVbml0UXVhZChnbCk7Ci12YXIgdGV4dHVyZVdpZHRoID0gMjU2OwotdmFyIHRleHR1
cmVIZWlnaHQgPSAxOwotCi12YXIgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihw
cm9ncmFtLCAidGV4Iik7Ci0KLXZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RP
X0VER0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9G
SUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotLy8gQWxsb2NhdGUgdGhlIHRleHR1cmUg
b2JqZWN0Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLkFMUEhBLCB0ZXh0dXJl
V2lkdGgsIHRleHR1cmVIZWlnaHQsIDAsIGdsLkFMUEhBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxs
KTsKLS8vIFByZXBhcmUgdGhlIGltYWdlIGRhdGEKLXZhciBhcnJheSA9IG5ldyBVaW50OEFycmF5
KHRleHR1cmVXaWR0aCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IHRleHR1cmVXaWR0aDsgaSsrKQot
ICAgIGFycmF5W2ldID0gaTsKLS8vIEZpbGwgdGhlIHRleHR1cmUgb2JqZWN0IHdpdGggZGF0YSAt
LSB0aGlzIGlzIGFjdHVhbGx5IHRoZSBjb2RlIHBhdGggYmVpbmcgdGVzdGVkCi1nbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRleHR1cmVXaWR0aCwgdGV4dHVyZUhlaWdo
dCwgZ2wuQUxQSEEsIGdsLlVOU0lHTkVEX0JZVEUsIGFycmF5KTsKLQotLy8gQ2xlYXIgYW5kIHNl
dCB1cAotZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQp
OwotZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci1nbC51c2VQcm9ncmFt
KHByb2dyYW0pOwotZ2wudW5pZm9ybTFpKHRleHR1cmVMb2MsIDApOwotLy8gRHJhdyB0aGUgdGV4
dHVyZSB0byB0aGUgZnJhbWUgYnVmZmVyCi1nbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwg
Nik7Ci0KLS8vIFJlYWQgYmFjayB0aGUgZnJhbWUgYnVmZmVyCi12YXIgYnVmID0gbmV3IFVpbnQ4
QXJyYXkodGV4dHVyZVdpZHRoICogdGV4dHVyZUhlaWdodCAqIDQpOwotZ2wucmVhZFBpeGVscygw
LCAwLCB0ZXh0dXJlV2lkdGgsIHRleHR1cmVIZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGJ1Zik7Ci0KLS8vIFZlcmlmeSB0aGUgZnJhbWUgYnVmZmVyJ3MgY29udGVudHMKLXZhciBw
YXNzZWQgPSB0cnVlOwotZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0dXJlV2lkdGg7IGkrKykgewot
ICAgIHZhciB2YWwgPSBpOwotICAgIGlmIChidWZbNCAqIGkgKyAwXSAhPSB2YWwgfHwKLSAgICAg
ICAgYnVmWzQgKiBpICsgMV0gIT0gdmFsIHx8Ci0gICAgICAgIGJ1Zls0ICogaSArIDJdICE9IHZh
bCkgewotICAgICAgICB0ZXN0RmFpbGVkKCJwaXhlbCBhdCAoIiArIGkgKyAiLCAwKSB3YXMgKCIg
KwotICAgICAgICAgICAgICAgICAgIGJ1Zls0ICogaSArIDBdICsgIiwgIiArCi0gICAgICAgICAg
ICAgICAgICAgYnVmWzQgKiBpICsgMV0gKyAiLCAiICsKLSAgICAgICAgICAgICAgICAgICBidWZb
NCAqIGkgKyAyXSArICIpLCBzaG91bGQgYmUgKCIgKwotICAgICAgICAgICAgICAgICAgIHZhbCAr
ICIsICIgKyB2YWwgKyAiLCAiICsgdmFsICsgIikiKTsKLSAgICAgICAgcGFzc2VkID0gZmFsc2U7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotaWYgKHBhc3NlZCkKLSAgICB0ZXN0UGFzc2Vk
KCIiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4w
LjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4cGFy
YW1ldGVyLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4cGFyYW1ldGVy
LXRlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzljNDQ1MjMzMmJlYWIz
YzYwOTM2NzY1NzgyNWY2OTgyMjgwNTdhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHBhcmFtZXRlci10
ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMDYgKzAsMCBAQAotPCEtLQotCi0vKgotKiog
Q29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh
aW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRl
cmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRp
b24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBk
aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFs
cywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1
cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
OgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs
IHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJP
VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1Mg
T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP
RgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
TkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBU
T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhF
IE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+V2ViR0wgVGV4UGFyYW1ldGVy
IGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiPjwv
Y2FudmFzPgotPGNhbnZhcyBpZD0iY2FudmFzMmQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjwvY2Fu
dmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci11bmlm
b3JtIG1hdDQgd29ybGQ7Ci1hdHRyaWJ1dGUgdmVjMyB2UG9zaXRpb247Ci1hdHRyaWJ1dGUgdmVj
MiB0ZXhDb29yZDA7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICBn
bF9Qb3NpdGlvbiA9IHdvcmxkICogdmVjNCh2UG9zaXRpb24sIDEpOwotICB0ZXhDb29yZCA9IHRl
eENvb3JkMDsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNo
YWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNh
bXBsZXIyRCB0ZXg7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICBn
bF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4LCB0ZXhDb29yZCk7Ci19Ci08L3NjcmlwdD4KLQot
PHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWZ1bmN0aW9uIGluaXQoKQotewotICBkZXNjcmlwdGlv
bigiVGVzdHMgVGV4UGFyYW1ldGVyIHdvcmtzIGFzIGV4cGVjdGVkIik7Ci0gIGRlYnVnKCIiKTsK
LQotICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMmQiKTsK
LSAgdmFyIGN0eDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKLQotICB2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUi
KTsKLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAiZnNo
YWRlciJdLCBbInZQb3NpdGlvbiIsICJ0ZXhDb29yZDAiXSk7Ci0KLSAgdmFyIHZlcnRleE9iamVj
dCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
dmVydGV4T2JqZWN0KTsKLSAgZ2wuYnVmZmVyRGF0YSgKLSAgICAgIGdsLkFSUkFZX0JVRkZFUiwK
LSAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWy0xLCAxLDAsIDEsMSwwLCAtMSwtMSwwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLTEsLTEsMCwgMSwxLDAsICAxLC0xLDBdKSwKLSAgICAgIGds
LlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Ci0gIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICB2YXIg
dmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuQVJS
QVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOwotICBnbC5idWZmZXJEYXRhKAotICAgICAgZ2wuQVJS
QVlfQlVGRkVSLAotICAgICAgbmV3IEZsb2F0MzJBcnJheShbIC0yLjUsLTIuNSwgMy41LC0yLjUs
IC0yLjUsMy41LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0yLjUsMy41LCAzLjUsLTIu
NSwgMy41LDMuNV0pLAotICAgICAgZ2wuU1RBVElDX0RSQVcpOwotICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSgxKTsKLSAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9BVCwg
ZmFsc2UsIDAsIDApOwotCi0gIHZhciBjb2xvcnMgPSBbCi0gICAgICBbMCwyNTUsMTI4LDI1NV0s
Ci0gICAgICBbMTI4LDY0LDI1NSwyNTVdLAotICAgICAgWzE5MiwyNTUsNjQsMjU1XSwKLSAgICAg
IFsyMDAsMCwyNTUsMjU1XV07Ci0gIHZhciB0ZXhQYXJhbSA9IFsKLSAgICBnbC5SRVBFQVQsCi0g
ICAgZ2wuQ0xBTVBfVE9fRURHRSwKLSAgICBnbC5NSVJST1JFRF9SRVBFQVQsCi0gICAgZ2wuUkVQ
RUFUXTsKLQotICAvLyBNYWtlIHRleHR1cmVzIHNldHRpbmcgdGhlIHRleHR1cmUgcGFyYW1ldGVy
cyBkaWZmZXJlbnRseSBlYWNoIHRpbWUuLgotICAvLyBUaGlzIHZlcmlmaWVzIGJvdGggdGhhdCB0
aGUgcmVuZGVyIGNvcnJlY3QgQU5EIHRoYXQgdGV4dHVyZSBwYXJhbWV0ZXJzCi0gIC8vIGFyZSBh
c3NvY2lhdGVkIHdpdGggdGhlIHRleHR1cmVzLCBub3Qgd2l0aCB0aGUgdGV4dHVyZS11bml0cy4K
LSAgdmFyIHRleHR1cmVzID0gW107Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMubGVu
Z3RoOyArK2lpKSB7Ci0gICAgdmFyIGMgPSBjb2xvcnNbaWldOwotICAgIGN0eDJkLmZpbGxTdHls
ZSA9Ci0gICAgICAgICJyZ2JhKCIgKyBjWzBdICsgIiwiICsgY1sxXSArICIsIiArIGNbMl0gKyAi
LCIgKyBjWzNdICsgIikiOwotICAgIGN0eDJkLmZpbGxSZWN0KDAsIDAsIDEsIDEpOwotICAgIHZh
ciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4KTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0g
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIs
IGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9XUkFQX1MsIHRleFBhcmFtW2lpXSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgdGV4UGFyYW1baWldKTsKLSAgICB0ZXh0dXJlc1tp
aV0gPSB0ZXg7Ci0gIH0KLQotICB2YXIgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAidGV4Iik7Ci0gIHZhciB3b3JsZExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAid29ybGQiKTsKLQotICBnbC5jbGVhckNvbG9yKDEsMSwxLDEpOwotICBnbC5j
bGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0KLSAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5sZW5ndGg7ICsraWkpIHsKLSAgICB2YXIgeCA9IGlp
ICUgMjsKLSAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAyKTsKLSAgICBnbC5iaW5kVGV4dHVy
ZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlc1tpaV0pOwotICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYo
Ci0gICAgICAgIHdvcmxkTG9jLCBmYWxzZSwKLSAgICAgICAgWzAuNSwgMCwgMCwgMCwKLSAgICAg
ICAgIDAsIDAuNSwgMCwgMCwKLSAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAtMC41ICsg
eCwgLTAuNSArIHksIDAsIDFdKTsKLSAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwg
Nik7Ci0gIH0KLQotICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoMjQgKiAyNCAqIDQpOwotICBn
bC5yZWFkUGl4ZWxzKDAsIDAsIDI0LCAyNCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVm
KTsKLSAgdmFyIHBhc3NlZCA9IHRydWU7Ci0gIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMu
bGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFyIHggPSBpaSAlIDI7Ci0gICAgdmFyIHkgPSBNYXRoLmZs
b29yKGlpIC8gMik7Ci0gICAgdmFyIGMgPSBjb2xvcnNbaWldOwotICAgIGZvciAodmFyIHl5ID0g
MDsgeXkgPCAxMjsgKyt5eSkgewotICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IDEyOyArK3h4
KSB7Ci0gICAgICAgIHZhciBlYyA9IFswLDAsMCwwXTsKLSAgICAgICAgc3dpdGNoICh0ZXhQYXJh
bVtpaV0pIHsKLSAgICAgICAgICBjYXNlIGdsLlJFUEVBVDoKLSAgICAgICAgICAgIGlmICh4eCAl
IDIgPT0gMSAmJiB5eSAlIDIgPT0gMCkgewotICAgICAgICAgICAgICBlYyA9IGM7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBjYXNlIGdsLkNMQU1QX1RPX0VE
R0U6Ci0gICAgICAgICAgICBpZiAoeHggPCA2ICYmIHl5ID49IDYpIHsKLSAgICAgICAgICAgICAg
ZWMgPSBjOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgY2Fz
ZSBnbC5NSVJST1JFRF9SRVBFQVQ6Ci0gICAgICAgICAgICBpZiAoeHggJSA0IDwgMiAmJiB5eSAl
IDQgPj0gMikgewotICAgICAgICAgICAgICBlYyA9IGM7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICB2YXIgb2ZmID0gKCh5ICogMTIgKyB5eSkg
KiAyNCArIHggKiAxMiArIHh4KSAqIDQ7Ci0gICAgICAgIGlmIChidWZbb2ZmICsgMF0gIT0gZWNb
MF0gfHwKLSAgICAgICAgICAgIGJ1ZltvZmYgKyAxXSAhPSBlY1sxXSB8fAotICAgICAgICAgICAg
YnVmW29mZiArIDJdICE9IGVjWzJdIHx8Ci0gICAgICAgICAgICBidWZbb2ZmICsgM10gIT0gZWNb
M10pIHsKLSAgICAgICAgICB2YXIgbXNnID0gJ2F0ICgnICsgKHggKiAxMiArIHh4KSArICcsICcg
KyAoeSAqIDEyICsgeXkpICsKLSAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6ICcgKwotICAgICAg
ICAgICAgICBlY1swXSArICcsICcgKyBlY1sxXSArICcsICcgKyBlY1syXSArICcsICcgKyBlY1sz
XSArICcgZm91bmQ6ICcgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgMF0gKyAnLCAnICsKLSAg
ICAgICAgICAgICAgYnVmW29mZiArIDFdICsgJywgJyArCi0gICAgICAgICAgICAgIGJ1ZltvZmYg
KyAyXSArICcsICcgKwotICAgICAgICAgICAgICBidWZbb2ZmICsgM107Ci0gICAgICAgICAgdGVz
dEZhaWxlZChtc2cpOwotICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICB9Ci0gICAg
ICB9Ci0gICAgfQotICB9Ci0gIGlmIChwYXNzZWQpIHsKLSAgICB0ZXN0UGFzc2VkKCJyZW5kZXJl
ZCBhcyBleHBlY3RlZCIpOwotICAgfQotfQotCi1pbml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtYWN0aXZlLWJpbmQtMi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTk2MjIxNWM4YWMyNWY0YjY4M2FhODc0ZjNkZDE3
MWM2NzNkYTAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC0yLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxOTIgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+V2ViR0wgQWN0aXZlVGV4dHVyZSBCaW5kVGV4dHVy
ZSBjb25mb3JtYW5jZSB0ZXN0ICMyPC90aXRsZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBz
dHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0i
Y2FudmFzMmQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0
OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
dmVydGV4Ij4KLXVuaWZvcm0gbWF0NCB3b3JsZDsKLWF0dHJpYnV0ZSB2ZWMzIHZQb3NpdGlvbjsK
LWF0dHJpYnV0ZSB2ZWMyIHRleENvb3JkMDsKLXZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKLXZvaWQg
bWFpbigpCi17Ci0gIGdsX1Bvc2l0aW9uID0gd29ybGQgKiB2ZWM0KHZQb3NpdGlvbiwgMSk7Ci0g
IHRleENvb3JkID0gdGV4Q29vcmQwOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJmc2hhZGVy
MmQiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
Ci0KLXVuaWZvcm0gc2FtcGxlcjJEIHRleDJkOwotdmFyeWluZyB2ZWMyIHRleENvb3JkOwotdm9p
ZCBtYWluKCkKLXsKLSAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHRleDJkLCB0ZXhDb29yZCk7
Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImZzaGFkZXJDdWJlIiB0eXBlPSJ4LXNoYWRlci94
LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotCi11bmlmb3JtIHNhbXBsZXJD
dWJlIHRleEN1YmU7Ci12b2lkIG1haW4oKQotewotICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlQ3Vi
ZSh0ZXhDdWJlLCB2ZWMzKDAsMSwwKSk7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLWZ1bmN0aW9uIGluaXQoKQotewotICBkZXNjcmlwdGlvbigKLSAgICAgICJUZXN0
cyB0aGF0IGJpbmRpbmcgYm90aCBURVhUVVJFXzJEIGFuZCBURVhUVVJFX0NVQkVfTUFQIHRvIHRo
ZSBzYW1lIiArCi0gICAgICAiYWN0aXZlIHRleHR1cmUgdW5pdCB3b3JrcyBhcyBsb25nIGFzIHRo
ZXkgYXJlIG5vdCB1c2VkIiArCi0gICAgICAic2ltdWx0YW5lb3VzbHkgaW4gdGhlIHNhbWUgc2hh
ZGVyIHByb2dyYW0uIik7Ci0KLSAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNhbnZhczJkIik7Ci0gIHZhciBjdHgyZCA9IGNhbnZhczJkLmdldENvbnRleHQoIjJkIik7
Ci0gIGN0eDJkLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICJjb3B5IjsKLQotICB2YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1w
bGUiKTsKLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgICAgZ2wsIFsidnNo
YWRlciIsICJmc2hhZGVyMmQiXSwgWyJ2UG9zaXRpb24iLCAidGV4Q29vcmQwIl0pOwotCi0gIHZh
ciBwcm9ncmFtMmQgPSBwcm9ncmFtOwotICB2YXIgcHJvZ3JhbUN1YmUgPSB3dHUuc2V0dXBQcm9n
cmFtKAotICAgICAgZ2wsIFsidnNoYWRlciIsICJmc2hhZGVyQ3ViZSJdLCBbInZQb3NpdGlvbiIs
ICJ0ZXhDb29yZDAiXSk7Ci0KLSAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OwotICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKLSAgZ2wu
YnVmZmVyRGF0YSgKLSAgICAgIGdsLkFSUkFZX0JVRkZFUiwKLSAgICAgIG5ldyBGbG9hdDMyQXJy
YXkoWy0xLCAxLDAsIDEsMSwwLCAtMSwtMSwwLAotICAgICAgICAgICAgICAgICAgICAgICAgLTEs
LTEsMCwgMSwxLDAsICAxLC0xLDBdKSwKLSAgICAgIGdsLlNUQVRJQ19EUkFXKTsKLSAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Ci0gIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywg
Z2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLQotICB2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRl
QnVmZmVyKCk7Ci0gIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3Qp
OwotICBnbC5idWZmZXJEYXRhKAotICAgICAgZ2wuQVJSQVlfQlVGRkVSLAotICAgICAgbmV3IEZs
b2F0MzJBcnJheShbIDAsMCwgMSwwLCAwLDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgMCwx
LCAxLDAsIDEsMV0pLAotICAgICAgZ2wuU1RBVElDX0RSQVcpOwotICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSgxKTsKLSAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9BVCwg
ZmFsc2UsIDAsIDApOwotCi0gIC8vIE1ha2UgdGV4dHVyZSB1bml0IDEgYWN0aXZlLgotICBnbC5h
Y3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUxKTsKLQotICAvLyBNYWtlIGEgMmQgdGV4dHVyZQotICB2
YXIgdGV4MmQgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleDJkKTsKLSAgY3R4MmQuZmlsbFN0eWxlID0gInJnYmEoMCwgMCwgMjU1LCAyNTUp
IjsKLSAgY3R4MmQuZmlsbFJlY3QoMCwgMCwgMSwgMSk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzMmQp
OwotCi0gIC8vIG1ha2UgYSBjdWJlIHRleHR1cmUKLSAgdmFyIHRleEN1YmUgPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmUp
OwotICBjdHgyZC5maWxsU3R5bGUgPSAicmdiYSgyNTUsIDAsIDI1NSwgMjU1KSI7Ci0gIGN0eDJk
LmZpbGxSZWN0KDAsIDAsIDEsIDEpOwotICB2YXIgdGFyZ2V0cyA9IFsKLSAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9Y
LAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICBnbC5URVhUVVJFX0NV
QkVfTUFQX05FR0FUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAot
ICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl07Ci0gIGZvciAodmFyIGlpID0gMDsg
aWkgPCB0YXJnZXRzLmxlbmd0aDsgKytpaSkgewotICAgIGdsLnRleEltYWdlMkQodGFyZ2V0c1tp
aV0sIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZhczJkKTsKLSAg
fQotCi0gIC8vIFNldHVwIHByb2dyYW0yZCBhbmQgcHJvZ3JhbUN1YmUKLSAgdmFyIHRleDJkTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0yZCwgInRleDJkIik7Ci0gIHZhciB3b3Js
ZDJkTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0yZCwgIndvcmxkIik7Ci0gIHZh
ciB0ZXhDdWJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1DdWJlLCAidGV4Q3Vi
ZSIpOwotICB2YXIgd29ybGRDdWJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1D
dWJlLCAid29ybGQiKTsKLQotICBnbC51c2VQcm9ncmFtKHByb2dyYW0yZCk7Ci0gIGdsLnVuaWZv
cm0xaSh0ZXgyZExvYywgMSk7Ci0gIGdsLnVzZVByb2dyYW0ocHJvZ3JhbUN1YmUpOwotICBnbC51
bmlmb3JtMWkodGV4Q3ViZUxvYywgMSk7Ci0KLSAgZ2wuY2xlYXJDb2xvcigxLDAsMCwxKTsKLSAg
Z2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotCi0g
IHZhciBwcm9ncmFtcyA9IFtwcm9ncmFtMmQsIHByb2dyYW1DdWJlXTsKLSAgdmFyIHdvcmxkTG9j
cyA9IFt3b3JsZDJkTG9jLCB3b3JsZEN1YmVMb2NdOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwg
NDsgKytpaSkgewotICAgIHZhciB4ID0gaWkgJSAyOwotICAgIHZhciB5ID0gTWF0aC5mbG9vcihp
aSAvIDIpOwotICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbXNbeF0pOwotICAgIGdsLnVuaWZvcm1N
YXRyaXg0ZnYoCi0gICAgICAgIHdvcmxkTG9jc1t4XSwgZmFsc2UsCi0gICAgICAgIFswLjUsIDAs
IDAsIDAsCi0gICAgICAgICAwLCAwLjUsIDAsIDAsCi0gICAgICAgICAwLCAwLCAxLCAwLAotICAg
ICAgICAgLTAuNSArIHgsIC0wLjUgKyB5LCAwLCAxXSk7Ci0gICAgZ2wuZHJhd0FycmF5cyhnbC5U
UklBTkdMRVMsIDAsIDYpOwotICB9Ci0KLSAgdmFyIGNvbG9ycyA9IFsKLSAgICAgIFswLDAsMjU1
LDI1NV0sCi0gICAgICBbMjU1LDAsMjU1LDI1NV0sCi0gICAgICBbMCwwLDI1NSwyNTVdLAotICAg
ICAgWzI1NSwwLDI1NSwyNTVdXTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgY29sb3JzLmxl
bmd0aDsgKytpaSkgewotICAgIHZhciBjID0gY29sb3JzW2lpXTsKLSAgICB2YXIgeCA9IGlpICUg
MjsKLSAgICB2YXIgeSA9IE1hdGguZmxvb3IoaWkgLyAyKTsKLSAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCB4LCB5LCAxLCAxLCBjKTsKLSAgfQotfQotCi1pbml0KCk7Ci12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hY3RpdmUtYmluZC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViOWE3OTIxNTQ4NGE1YjlkMDhlYzgyZGJkYzVi
MTkzNmI5ZjIzYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWFjdGl2ZS1iaW5kLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQWN0aXZlVGV4dHVyZSBCaW5kVGV4dHVyZSBjb25m
b3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9
ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0
OiA0MHB4OyI+PC9jYW52YXM+Ci08Y2FudmFzIGlkPSJjYW52YXMyZCIgd2lkdGg9IjEiIGhlaWdo
dD0iMSIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZhcz4KLTxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlw
dCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotdW5pZm9ybSBtYXQ0IHdv
cmxkOwotYXR0cmlidXRlIHZlYzMgdlBvc2l0aW9uOwotYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQw
OwotdmFyeWluZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgZ2xfUG9zaXRpb24g
PSB3b3JsZCAqIHZlYzQodlBvc2l0aW9uLCAxKTsKLSAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7Ci19
Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgZ2w7Ci0KLWZ1bmN0aW9u
IGluaXQoKQotewotICBkZXNjcmlwdGlvbigKLSAgICAgICJUZXN0cyB0aGF0IGdsQWN0aXZlVGV4
dHVyZSBhbmQgZ2xCaW5kVGV4dHVyZSB3b3JrIGFzIGV4cGVjdGVkIiArCi0gICAgICAiU3BlY2lm
aWNhbGx5IHRleHR1cmUgdGFyZ2V0cyBhcmUgcGVyIGFjdGl2ZSB0ZXh0dXJlIHVuaXQuIik7Ci0K
LSAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczJkIik7Ci0g
IHZhciBjdHgyZCA9IGNhbnZhczJkLmdldENvbnRleHQoIjJkIik7Ci0KLSAgdmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwotICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLSAg
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgICAgZ2wsCi0gICAgICBbInZzaGFk
ZXIiLCB3dHUuc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpXSwKLSAgICAgIFsn
dlBvc2l0aW9uJywgJ3RleENvb3JkMCddKTsKLSAgd3R1LnNldHVwVW5pdFF1YWQoZ2wpOwotICBn
bC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKLSAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLSAgdmFyIGNvbG9ycyA9IFsKLSAgICAg
IFswLDE5MiwxMjgsMjU1XSwKLSAgICAgIFsxMjgsNjQsMjU1LDI1NV0sCi0gICAgICBbMTkyLDI1
NSw2NCwyNTVdLAotICAgICAgWzIwMCwwLDI1NSwyNTVdXTsKLQotICAvLyBNYWtlIDQgdGV4dHVy
ZXMgYnkgdXNpbmcgNCBhY3RpdmUgdGV4dHVyZSB1bml0cyBpZiBhdmFpbGFibGUuCi0gIHZhciB0
ZXh1bml0cyA9IE1hdGgubWluKGNvbG9ycy5sZW5ndGgsIGdsLmdldFBhcmFtZXRlcihnbC5NQVhf
Q09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUykpCi0gIHZhciB0ZXh0dXJlcyA9IFtdOwotICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgdGV4dW5pdHM7ICsraWkpIHsKLSAgICB2YXIgdGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAgKyBpaSk7
Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICB0ZXh0dXJlc1tp
aV0gPSB0ZXg7Ci0gIH0KLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLSAg
Ly8gbm93IHVzZSBlYWNoIHRleHR1cmUgdW5pdCB0byB3cml0ZSBpbnRvIHRoZSB0ZXh0dXJlcywK
LSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRleHVuaXRzOyArK2lpKSB7Ci0gICAgdmFyIGMgPSBj
b2xvcnNbaWldOwotICAgIGN0eDJkLmZpbGxTdHlsZSA9Ci0gICAgICAgICJyZ2JhKCIgKyBjWzBd
ICsgIiwiICsgY1sxXSArICIsIiArIGNbMl0gKyAiLCIgKyBjWzNdICsgIikiOwotICAgIGN0eDJk
LmZpbGxSZWN0KDAsIDAsIDEsIDEpOwotICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAg
KyBpaSk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7Ci0gIH0KLSAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7Ci0KLSAgdmFyIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgInRleCIpOwotICB2YXIgd29ybGRMb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgIndvcmxkIik7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwotCi0gIGdsLmNsZWFyQ29sb3IoMSwwLDAsMSk7Ci0gIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgdGV4dW5pdHM7ICsraWkpIHsKLSAgICB2YXIgeCA9IGlpICUgMjsKLSAgICB2YXIgeSA9IE1h
dGguZmxvb3IoaWkgLyAyKTsKLSAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgaWkpOwotICAg
IGdsLnVuaWZvcm1NYXRyaXg0ZnYoCi0gICAgICAgIHdvcmxkTG9jLCBmYWxzZSwKLSAgICAgICAg
WzAuNSwgMCwgMCwgMCwKLSAgICAgICAgIDAsIDAuNSwgMCwgMCwKLSAgICAgICAgIDAsIDAsIDEs
IDAsCi0gICAgICAgICAtMC41ICsgeCwgLTAuNSArIHksIDAsIDFdKTsKLSAgICBnbC5kcmF3QXJy
YXlzKGdsLlRSSUFOR0xFUywgMCwgNik7Ci0gIH0KLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRleHVuaXRzOyArK2lpKSB7Ci0g
ICAgdmFyIGMgPSBjb2xvcnNbaWldOwotICAgIHZhciB4ID0gaWkgJSAyOwotICAgIHZhciB5ID0g
TWF0aC5mbG9vcihpaSAvIDIpOwotICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSg0KTsKLSAg
ICBnbC5yZWFkUGl4ZWxzKHgsIHksIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1
Zik7Ci0gICAgdmFyIG1zZyA9ICdleHBlY3RlZDonICsKLSAgICAgICAgY1swXSArICcsICcgKyBj
WzFdICsgJywgJyArIGNbMl0gKyAnLCAnICsgY1szXSArICcgZm91bmQ6ICcgKwotICAgICAgICBi
dWZbMF0gKyAnLCAnICsKLSAgICAgICAgYnVmWzFdICsgJywgJyArCi0gICAgICAgIGJ1ZlsyXSAr
ICcsICcgKwotICAgICAgICBidWZbM107Ci0gICAgaWYgKGJ1ZlswXSAhPSBjWzBdIHx8Ci0gICAg
ICAgIGJ1ZlsxXSAhPSBjWzFdIHx8Ci0gICAgICAgIGJ1ZlsyXSAhPSBjWzJdIHx8Ci0gICAgICAg
IGJ1ZlszXSAhPSBjWzNdKQotICAgICAgdGVzdEZhaWxlZChtc2cpOwotICAgIGVsc2UKLSAgICAg
IHRlc3RQYXNzZWQobXNnKTsKLSAgfQotfQotCi1pbml0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTlhMjhkMzI5N2VkNjhkZTA0
Y2U4MGQwNjMwNTZhMmNjMjk3NDQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1hdHRhY2htZW50
LWZvcm1hdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5OSArMCwwIEBACi08IS0tCi0KLS8q
Ci0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
LSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
LSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBUZXh0dXJlIEF0dGFj
aG1lbnQgRm9ybWF0IENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLTxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OjEwMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPiA8L2NhbnZh
cz4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigpOwotCi12YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMiKTsK
LWlmICghZ2wpIHsKLSAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwotfSBl
bHNlIHsKLSAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKLQotICBkZWJ1ZygiIik7Ci0g
IGRlYnVnKCJDaGVja2luZyB0ZXh0dXJlIGZvcm1hdHMuIik7Ci0KLSAgdmFyIG51bVZhbGlkRm9y
bWF0cyA9IDA7Ci0gIHZhciBjbGVhckNvbG9yID0gWzAuMjUsIDAuNSwgMC43NSwgMC4yNV07Ci0K
LSAgdmFyIGZsb2F0VG9CaXRzID0gZnVuY3Rpb24odmFsdWUsIGJpdHMpIHsKLSAgICB2YXIgcmFu
Z2UgPSAoMSA8PCBiaXRzKSAtIDE7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgaWYgKHJhbmdl
ID4gMCkgewotICAgICAgcmVzdWx0ID0gTWF0aC5mbG9vcihNYXRoLmZsb29yKHZhbHVlICogcmFu
Z2UpICogMjU1IC8gcmFuZ2UpOwotICAgIH0KLQotICAgIC8vZGVidWcoInYgPSAiICsgdmFsdWUg
KyAiLCBiaXRzID0gIiArIGJpdHMgKyAiLCByYW5nZSA9ICIgKyByYW5nZSAgKyAiLCByZXN1bHQg
PSAiICsgcmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0OwotICB9Ci0KLSAgdmFyIHRlc3RGb3Jt
YXQgPSBmdW5jdGlvbihpbmZvKSB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJ0ZXN0aW5n
OiAiICsgaW5mby5mb3JtYXQgKyAiLCAiICsgaW5mby50eXBlKTsKLQotICAgIHZhciBmb3JtYXQg
PSBnbFtpbmZvLmZvcm1hdF07Ci0gICAgdmFyIHR5cGUgPSBnbFtpbmZvLnR5cGVdOwotCi0gICAg
Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELAotICAgICAgICAgICAgICAgICAgMCwgICAgICAg
ICAgICAgICAgIC8vIGxldmVsCi0gICAgICAgICAgICAgICAgICBmb3JtYXQsICAgICAgICAgICAg
Ly8gaW50ZXJuYWxGb3JtYXQKLSAgICAgICAgICAgICAgICAgIDE2LCAgICAgICAgICAgICAgICAv
LyB3aWR0aAotICAgICAgICAgICAgICAgICAgMTYsICAgICAgICAgICAgICAgIC8vIGhlaWdodAot
ICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgIC8vIGJvcmRlcgotICAgICAgICAg
ICAgICAgICAgZm9ybWF0LCAgICAgICAgICAgIC8vIGZvcm1hdAotICAgICAgICAgICAgICAgICAg
dHlwZSwgICAgICAgICAgICAgIC8vIHR5cGUKLSAgICAgICAgICAgICAgICAgIG51bGwpOyAgICAg
ICAgICAgICAvLyBkYXRhCi0gICAgdmFyIGZiU3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUik7Ci0gICAgZGVidWcod3R1LmdsRW51bVRvU3RyaW5nKGdsLCBm
YlN0YXR1cykpOwotICAgIGlmIChmYlN0YXR1cyAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkg
ewotICAgICAgZGVidWcoImZvcm1hdCB1bnN1cHBvcnRlZCIpOwotICAgICAgaWYgKGluZm8ubXVz
dEJlRnJhbWVidWZmZXJDb21wbGV0ZSkgewotICAgICAgICB0ZXN0RmFpbGVkKGluZm8uZm9ybWF0
ICsgIiBtdXN0IGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIik7Ci0gICAgICB9Ci0gICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgKytudW1WYWxpZEZvcm1hdHM7Ci0KLSAgICB2YXIgc3RhcnRFeHBl
Y3RlZCA9IFswLCAwLCAwLCBpbmZvLmNoYW5uZWxzWzNdIDwgMCA/IDI1NSA6IDBdOwotCi0gICAg
dmFyIGV4cGVjdGVkID0gW107Ci0gICAgdmFyIHRvbGVyYW5jZSA9IFtdOwotICAgIGZvciAodmFy
IGlpID0gMDsgaWkgPCA0OyArK2lpKSB7Ci0gICAgICB2YXIgY29sb3IgPSAwOwotICAgICAgdmFy
IGNoYW5uZWwgPSBpbmZvLmNoYW5uZWxzW2lpXTsKLSAgICAgIGlmIChjaGFubmVsIDwgMCkgewot
ICAgICAgICBjb2xvciA9IGlpIDwgMyA/IDAgOiAyNTUKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAg
IGNvbG9yID0gZmxvYXRUb0JpdHMoY2xlYXJDb2xvcltjaGFubmVsXSwgaW5mby5iaXRzW2lpXSk7
Ci0gICAgICB9Ci0gICAgICBleHBlY3RlZC5wdXNoKGNvbG9yKTsKLSAgICAgIHRvbGVyYW5jZS5w
dXNoKGNoYW5uZWwgPCAwID8gMCA6ICgxICsgKDEgPDwgKDggLSBpbmZvLmJpdHNbaWldKSkpKTsK
LSAgICB9Ci0KLSAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIHN0YXJ0RXhwZWN0ZWQsICJzaG91bGQg
YmUgIiArIHN0YXJ0RXhwZWN0ZWQpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQp
OwotICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgZXhwZWN0ZWQsICJzaG91bGQgYmUgIiArIGV4cGVj
dGVkICsgIiB3aXRoIHRvbGVyYW5jZSAiICsgdG9sZXJhbmNlLCB0b2xlcmFuY2UpOwotICB9Ci0K
LSAgdmFyIHZhbGlkRm9ybWF0cyA9IFsKLSAgICB7IGZvcm1hdDogJ1JHQkEnLAotICAgICAgdHlw
ZTogICdVTlNJR05FRF9CWVRFJywKLSAgICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgM10sCi0gICAg
ICBiaXRzOiBbOCwgOCwgOCwgOF0sCi0gICAgICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiB0
cnVlCi0gICAgfSwKLSAgICB7IGZvcm1hdDogJ0FMUEhBJywKLSAgICAgIHR5cGU6ICAnVU5TSUdO
RURfQllURScsCi0gICAgICBjaGFubmVsczogWy0xLCAtMSwgLTEsIDNdLAotICAgICAgYml0czog
WzAsIDAsIDAsIDhdLAotICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKLSAg
ICB9LAotICAgIHsgZm9ybWF0OiAnUkdCJywKLSAgICAgIHR5cGU6ICAnVU5TSUdORURfQllURScs
Ci0gICAgICBjaGFubmVsczogWzAsIDEsIDIsIC0xXSwKLSAgICAgIGJpdHM6IFs4LCA4LCA4LCAw
XSwKLSAgICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7
IGZvcm1hdDogJ1JHQicsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX1NIT1JUXzVfNl81JywKLSAg
ICAgIGNoYW5uZWxzOiBbMCwgMSwgMiwgLTFdLAotICAgICAgYml0czogWzUsIDYsIDUsIDBdLAot
ICAgICAgbXVzdEJlRnJhbWVidWZmZXJDb21wbGV0ZTogZmFsc2UKLSAgICB9LAotICAgIHsgZm9y
bWF0OiAnUkdCQScsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnLAotICAg
ICAgY2hhbm5lbHM6IFswLCAxLCAyLCAzXSwKLSAgICAgIGJpdHM6IFs1LCA1LCA1LCAxXSwKLSAg
ICAgIG11c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1h
dDogJ1JHQkEnLAotICAgICAgdHlwZTogICdVTlNJR05FRF9TSE9SVF80XzRfNF80JywKLSAgICAg
IGNoYW5uZWxzOiBbMCwgMSwgMiwgM10sCi0gICAgICBiaXRzOiBbNCwgNCwgNCwgNF0sCi0gICAg
ICBtdXN0QmVGcmFtZWJ1ZmZlckNvbXBsZXRlOiBmYWxzZQotICAgIH0sCi0gICAgeyBmb3JtYXQ6
ICdMVU1JTkFOQ0UnLAotICAgICAgdHlwZTogICdVTlNJR05FRF9CWVRFJywKLSAgICAgIGNoYW5u
ZWxzOiBbMCwgMCwgMCwgLTFdLAotICAgICAgYml0czogWzgsIDgsIDgsIC0xXSwKLSAgICAgIG11
c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfSwKLSAgICB7IGZvcm1hdDogJ0xV
TUlOQU5DRV9BTFBIQScsCi0gICAgICB0eXBlOiAgJ1VOU0lHTkVEX0JZVEUnLAotICAgICAgY2hh
bm5lbHM6IFswLCAwLCAwLCAzXSwKLSAgICAgIGJpdHM6IFs4LCA4LCA4LCA4XSwKLSAgICAgIG11
c3RCZUZyYW1lYnVmZmVyQ29tcGxldGU6IGZhbHNlCi0gICAgfQotICBdOwotCi0gIGdsLmNsZWFy
Q29sb3IoY2xlYXJDb2xvclswXSwgY2xlYXJDb2xvclsxXSwgY2xlYXJDb2xvclsyXSwgY2xlYXJD
b2xvclszXSk7Ci0gIHZhciBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotICBnbC5iaW5k
RnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RP
X0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwotICBnbC5m
cmFtZWJ1ZmZlclRleHR1cmUyRCgKLSAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRB
Q0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgdmFsaWRGb3JtYXRzLmxlbmd0aDsgKytpaSkgewotICAgIHZhciBpbmZvID0gdmFsaWRGb3Jt
YXRzW2lpXTsKLSAgICB0ZXN0Rm9ybWF0KGluZm8pOwotICB9Ci0KLSAgZGVidWcoIiIpOwotICBz
aG91bGRCZVRydWUoIm51bVZhbGlkRm9ybWF0cyA+IDAiKTsKLSAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMiKTsKLX0KLQotZGVidWco
IiIpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtY2xlYXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jbGVhci5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Yzc2NzlmZDcwMDlmMmI1NzdjYTQ1
ZjA3NzBkNjIyNDU3MGFiNzE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jbGVhci5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChj
KSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0q
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
LSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVyZSBjbGVhciBjb25mb3JtYW5jZSB0ZXN0
LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGls
cy5qcyI+IDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3
aWR0aD0iNCIgaGVpZ2h0PSI0IiBzdHlsZT0id2lkdGg6IDQwcHg7IGhlaWdodDogMzBweDsiPjwv
Y2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oZG9jdW1lbnQudGl0
bGUpOwotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dCgiZXhhbXBsZSIpOwotdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wp
OwotCi1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9y
cyBmcm9tIHNldHVwLiIpOwotCi12YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLWdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQSwgMSwgMSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7
Ci1nbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIG5ldyBVaW50OEFycmF5KFswLDI1NSwwLDI1NV0pKTsKLXd0
dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUuY2hlY2tDYW52YXMoCi0gICAgZ2wsIFsw
LCAyNTUsIDAsIDI1NV0sICJzaG91bGQgYmUgZ3JlZW4iKTsKLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci12YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1jb21wbGV0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMmNmNGVkOWM1YThmNDc1OGRlNGFkNTRkODBk
YWM2NjdlYjQ2ZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWNvbXBsZXRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8K
LQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCAiVGV4dHVyZSBDb21wbGV0ZSIgdGV4dHVyZSBjb25mb3Jt
YW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6
IDQwcHg7Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImNhbnZhczJkIiB3aWR0aD0iMTYiIGhlaWdo
dD0iMTYiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyI+PC9jYW52YXM+Ci08ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3Jp
cHQ+Ci0idXNlIHN0cmljdCI7Ci1mdW5jdGlvbiBpbml0KCkKLXsKLSAgZGVzY3JpcHRpb24oCi0g
ICAgICAiQ2hlY2tzIHRoYXQgYSB0ZXh0dXJlIHRoYXQgaXMgbm90IC10ZXh0dXJlLWNvbXBsZXRl
LSBkb2VzIG5vdCBkcmF3IGlmIisKLSAgICAgICIgZmlsdGVyaW5nIG5lZWRzIG1pcHMiKTsKLQot
ICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMmQiKTsKLSAg
dmFyIGN0eDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKLSAgY3R4MmQuZmlsbFN0eWxl
ID0gInJnYmEoMCwxOTIsMTI4LDEpIjsKLSAgY3R4MmQuZmlsbFJlY3QoMCwgMCwgMTYsIDE2KTsK
LQotICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwotICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KGNhbnZhcyk7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLQot
ICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKLQot
ICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFXzJELCB0ZXgpOwotICAvLyAxNngxNiB0ZXh0dXJlIG5vIG1pcHMKLSAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBj
YW52YXMyZCk7Ci0KLSAgdmFyIGxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAi
dGV4Iik7Ci0gIGdsLnVuaWZvcm0xaShsb2MsIDApOwotCi0gIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgWzAsMCwwLDI1NV0sCi0gICAgICAidGV4
dHVyZSB0aGF0IGlzIG5vdCAtdGV4dHVyZS1jb21wbGV0ZS0gd2hlbiAiICsKLSAgICAgICJURVhU
VVJFX01JTl9GSUxURVIgbm90IE5FQVJFU1Qgb3IgTElORUFSIHNob3VsZCBkcmF3IHdpdGggMCww
LDAsMjU1Iik7Ci19Ci0KLWluaXQoKTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwot
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL3RleHR1cmUtZm9ybWF0cy10ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgyNDdmYTUwOTU4NTk0ZGU1MmEzYzMyNjk0ZjlhMDJkYWYzNDRkNzMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLWZvcm1hdHMtdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjkxICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJN
YXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNv
bnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAot
KiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxz
LgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM
RSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PHRpdGxlPldlYkdMIFRleHR1cmUgRm9ybWF0IENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08Y2FudmFz
IGlkPSJjYW52YXMyZCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA1MHB4OyBo
ZWlnaHQ6IDUwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+PC9jYW52YXM+Ci08Y2FudmFz
IGlkPSJjYW52YXMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDoxMDBweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij4gPC9jYW52YXM+Ci08c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGlt
cGxlbWVudGF0aW9ucyBhbGxvdyB0aGUgT3BlbkdMIEVTIDIuMCB0ZXh0dXJlIGZvcm1hdHMgYW5k
IGRvIG5vdCBhbGxvdyBEZXNrdG9wR0wgdGV4dHVyZSBmb3JtYXRzLiIpOwotCi1kZWJ1ZygiIik7
Ci1kZWJ1ZygiQ2FudmFzLmdldENvbnRleHQiKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiY2FudmFzIik7Ci1pZiAoIWdsKSB7Ci0g
IHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKLX0gZWxzZSB7Ci0gIHRlc3RQ
YXNzZWQoImNvbnRleHQgZXhpc3RzIik7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1ZygiQ2hlY2tp
bmcgdGV4dHVyZSBmb3JtYXRzLiIpOwotCi0gIHZhciBjcmVhdGVUZXh0dXJlID0gZnVuY3Rpb24o
aW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgb3B0X2JvcmRlcikgewotICAgICAgdmFyIGJvcmRlciA9
IChvcHRfYm9yZGVyID09PSB1bmRlZmluZWQpID8gMCA6IG9wdF9ib3JkZXI7Ci0gICAgICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4KTsKLSAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwKLSAgICAgICAg
ICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgIC8vIGxldmVsCi0gICAgICAgICAgICAgICAg
ICAgIGludGVybmFsRm9ybWF0LCAgICAvLyBpbnRlcm5hbEZvcm1hdAotICAgICAgICAgICAgICAg
ICAgICAxNiwgICAgICAgICAgICAgICAgLy8gd2lkdGgKLSAgICAgICAgICAgICAgICAgICAgMTYs
ICAgICAgICAgICAgICAgIC8vIGhlaWdodAotICAgICAgICAgICAgICAgICAgICBib3JkZXIsICAg
ICAgICAgICAgLy8gYm9yZGVyCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgICAgICAgICAg
ICAvLyBmb3JtYXQKLSAgICAgICAgICAgICAgICAgICAgZ2wuVU5TSUdORURfQllURSwgIC8vIHR5
cGUKLSAgICAgICAgICAgICAgICAgICAgbnVsbCk7ICAgICAgICAgICAgIC8vIGRhdGEKLSAgfQot
Ci0gIHZhciB0ZXN0VmFsaWRGb3JtYXQgPSBmdW5jdGlvbihpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
TmFtZSkgewotICAgICAgY3JlYXRlVGV4dHVyZShpbnRlcm5hbEZvcm1hdCwgaW50ZXJuYWxGb3Jt
YXQpOwotICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAgICAgICAg
ICAgICAid2FzIGFibGUgdG8gY3JlYXRlIHRleHR1cmUgb2YgIiArIGZvcm1hdE5hbWUpOwotICB9
Ci0KLSAgdmFyIHRlc3RJbnZhbGlkRm9ybWF0ID0gZnVuY3Rpb24oaW50ZXJuYWxGb3JtYXQsIGZv
cm1hdE5hbWUpIHsKLSAgICAgIGNyZWF0ZVRleHR1cmUoaW50ZXJuYWxGb3JtYXQsIGludGVybmFs
Rm9ybWF0KTsKLSAgICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICAgICAgaWYgKGVyciA9
PSBnbC5OT19FUlJPUikgewotICAgICAgICAgIHRlc3RGYWlsZWQoInNob3VsZCBOT1QgYmUgYWJs
ZSB0byBjcmVhdGUgdGV4dHVyZSBvZiB0eXBlICIgKyBmb3JtYXROYW1lKTsKLSAgICAgIH0gZWxz
ZSBpZiAoZXJyID09IGdsLklOVkFMSURfT1BFUkFUSU9OKSB7Ci0gICAgICAgICAgdGVzdEZhaWxl
ZCgic2hvdWxkIHJldHVybiBnbC5JTlZBTElEX0VOVU0gZm9yIHR5cGUgIiArIGZvcm1hdE5hbWUp
OwotICAgICAgfSBlbHNlIGlmIChlcnIgPT0gZ2wuSU5WQUxJRF9FTlVNKSB7Ci0gICAgICAgICAg
dGVzdFBhc3NlZCgibm90IGFibGUgdG8gY3JlYXRlIGludmFsaWQgZm9ybWF0OiAiICsgZm9ybWF0
TmFtZSk7Ci0gICAgICB9Ci0gIH0KLQotICB2YXIgaW52YWxpZEVudW1zID0gWwotICAgICcxJywK
LSAgICAnMicsCi0gICAgJzMnLAotICAgICc0JywKLSAgICAnUkdCNCcsCi0gICAgJ1JHQjUnLAot
ICAgICdSR0I4JywKLSAgICAnUkdCMTAnLAotICAgICdSR0IxMicsCi0gICAgJ1JHQjE2JywKLSAg
ICAnUkdCQTInLAotICAgICdSR0JBNCcsCi0gICAgJ1JHQjVfQTEnLAotICAgICdSR0JBOCcsCi0g
ICAgJ1JHQjEwX0EyJywKLSAgICAnUkdCQTEyJywKLSAgICAnUkdCQTE2JywKLSAgICAnQkdSJywK
LSAgICAnQkdSQScsCi0gICAgJ0FMUEhBNF9FWFQnLAotICAgICdBTFBIQThfRVhUJywKLSAgICAn
QUxQSEExMl9FWFQnLAotICAgICdBTFBIQTE2X0VYVCcsCi0gICAgJ0NPTVBSRVNTRURfQUxQSEEn
LAotICAgICdDT01QUkVTU0VEX0xVTUlOQU5DRScsCi0gICAgJ0NPTVBSRVNTRURfTFVNSU5BTkNF
X0FMUEhBJywKLSAgICAnQ09NUFJFU1NFRF9JTlRFTlNJVFknLAotICAgICdDT01QUkVTU0VEX1JH
QicsCi0gICAgJ0NPTVBSRVNTRURfUkdCQScsCi0gICAgJ0RFUFRIX0NPTVBPTkVOVDE2JywKLSAg
ICAnREVQVEhfQ09NUE9ORU5UMjQnLAotICAgICdERVBUSF9DT01QT05FTlQzMicsCi0gICAgJ0xV
TUlOQU5DRTRfRVhUJywKLSAgICAnTFVNSU5BTkNFOF9FWFQnLAotICAgICdMVU1JTkFOQ0UxMl9F
WFQnLAotICAgICdMVU1JTkFOQ0UxNl9FWFQnLAotICAgICdMVU1JTkFOQ0U0X0FMUEhBNF9FWFQn
LAotICAgICdMVU1JTkFOQ0U2X0FMUEhBMl9FWFQnLAotICAgICdMVU1JTkFOQ0U4X0FMUEhBOF9F
WFQnLAotICAgICdMVU1JTkFOQ0UxMl9BTFBIQTRfRVhUJywKLSAgICAnTFVNSU5BTkNFMTJfQUxQ
SEExMl9FWFQnLAotICAgICdMVU1JTkFOQ0UxNl9BTFBIQTE2X0VYVCcsCi0gICAgJ0lOVEVOU0lU
WV9FWFQnLAotICAgICdJTlRFTlNJVFk0X0VYVCcsCi0gICAgJ0lOVEVOU0lUWThfRVhUJywKLSAg
ICAnSU5URU5TSVRZMTJfRVhUJywKLSAgICAnSU5URU5TSVRZMTZfRVhUJywKLSAgICAnUkdCNF9F
WFQnLAotICAgICdSR0I1X0VYVCcsCi0gICAgJ1JHQjhfRVhUJywKLSAgICAnUkdCMTBfRVhUJywK
LSAgICAnUkdCMTJfRVhUJywKLSAgICAnUkdCMTZfRVhUJywKLSAgICAnUkdCQTJfRVhUJywKLSAg
ICAnUkdCQTRfRVhUJywKLSAgICAnUkdCNV9BMV9FWFQnLAotICAgICdSR0JBOF9FWFQnLAotICAg
ICdSR0IxMF9BMl9FWFQnLAotICAgICdSR0JBMTJfRVhUJywKLSAgICAnUkdCQTE2X0VYVCcsCi0g
ICAgJ1NMVU1JTkFOQ0VfRVhUJywKLSAgICAnU0xVTUlOQU5DRThfRVhUJywKLSAgICAnU0xVTUlO
QU5DRV9BTFBIQV9FWFQnLAotICAgICdTTFVNSU5BTkNFOF9BTFBIQThfRVhUJywKLSAgICAnU1JH
Ql9FWFQnLAotICAgICdTUkdCOF9FWFQnLAotICAgICdTUkdCX0FMUEhBX0VYVCcsCi0gICAgJ1NS
R0I4X0FMUEhBOCcKLSAgXTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgaW52YWxpZEVudW1z
Lmxlbmd0aDsgKytpaSkgewotICAgIHZhciBmb3JtYXROYW1lID0gaW52YWxpZEVudW1zW2lpXQot
ICAgIGlmIChkZXNrdG9wR0xbZm9ybWF0TmFtZV0gPT09IHVuZGVmaW5lZCkgewotICAgICAgZGVi
dWcoImJhZCBmb3JtYXQiICsgZm9ybWF0TmFtZSkKLSAgICB9IGVsc2UgewotICAgICAgdGVzdElu
dmFsaWRGb3JtYXQoZGVza3RvcEdMW2Zvcm1hdE5hbWVdLCAiR0xfIiArIGZvcm1hdE5hbWUpOwot
ICAgIH0KLSAgfQotCi0gIHZhciB2YWxpZEVudW1zID0gWwotICAgICdBTFBIQScsCi0gICAgJ1JH
QicsCi0gICAgJ1JHQkEnLAotICAgICdMVU1JTkFOQ0UnLAotICAgICdMVU1JTkFOQ0VfQUxQSEEn
Ci0gIF07Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHZhbGlkRW51bXMubGVuZ3RoOyArK2lp
KSB7Ci0gICAgdmFyIGZvcm1hdE5hbWUgPSB2YWxpZEVudW1zW2lpXQotICAgIHRlc3RWYWxpZEZv
cm1hdChnbFtmb3JtYXROYW1lXSwgImdsLiIgKyBmb3JtYXROYW1lKTsKLSAgfQotCi0gIGRlYnVn
KCIiKTsKLSAgZGVidWcoImNoZWNraW5nIG5vbiAwIGJvcmRlciBwYXJhbWV0ZXIgdG8gZ2wuVGV4
SW1hZ2UyRCIpOwotICBjcmVhdGVUZXh0dXJlKGdsWydSR0JBJ10sIGdsWydSR0JBJ10sIDEpOwot
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsCi0gICAgICAgICAgICAibm9u
IDAgYm9yZGVyIHRvIGdsLlRleEltYWdlMkQgc2hvdWxkIHJldHVybiBJTlZBTElEX1ZBTFVFIik7
Ci0KLQotICB2YXIgY2hlY2tUeXBlcyA9IGZ1bmN0aW9uKCkgewotICAgIHZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsK
LSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBn
bC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLQotICAg
IHZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwotICAgIGds
LnVuaWZvcm0xaShsb2MsIDApOwotCi0gICAgdmFyIGNoZWNrVHlwZSA9IGZ1bmN0aW9uKHIsIGcs
IGIsIGEsIHR5cGUsIGZvcm1hdCwgYnVmKSB7Ci0gICAgICB2YXIgdHlwZU5hbWUgPSB3dHUuZ2xF
bnVtVG9TdHJpbmcoZ2wsIHR5cGUpOwotICAgICAgdmFyIGZvcm1hdE5hbWUgPSB3dHUuZ2xFbnVt
VG9TdHJpbmcoZ2wsIGZvcm1hdCk7Ci0gICAgICB2YXIgZGVzYyA9ICJmb3JtYXQ6ICIgKyBmb3Jt
YXROYW1lICsgIiwgdHlwZTogIiArIHR5cGVOYW1lOwotICAgICAgZGVidWcoIiIpOwotICAgICAg
ZGVidWcoImNoZWNraW5nIGdsLnRleEltYWdlMkQgd2l0aCAiICsgZGVzYyk7Ci0gICAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsCi0gICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAg
ICAgICAgICAvLyBsZXZlbAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQsICAgICAgICAgICAg
Ly8gaW50ZXJuYWxGb3JtYXQKLSAgICAgICAgICAgICAgICAgICAgMiwgICAgICAgICAgICAgICAg
IC8vIHdpZHRoCi0gICAgICAgICAgICAgICAgICAgIDIsICAgICAgICAgICAgICAgICAvLyBoZWln
aHQKLSAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgIC8vIGJvcmRlcgotICAg
ICAgICAgICAgICAgICAgICBmb3JtYXQsICAgICAgICAgICAgLy8gZm9ybWF0Ci0gICAgICAgICAg
ICAgICAgICAgIHR5cGUsICAgICAgICAgICAgICAvLyB0eXBlCi0gICAgICAgICAgICAgICAgICAg
IGJ1Zik7ICAgICAgICAgICAgICAvLyBkYXRhCi0KLSAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsCi0gICAgICAgICAgICAgICAgImdsLnRleEltYWdlMkQgd2l0aCAiICsgZGVz
YyArICIgc2hvdWxkIGdlbmVyYXRlIE5PX0VSUk9SIik7Ci0KLSAgICAgIHd0dS5jbGVhckFuZERy
YXdVbml0UXVhZChnbCwgWzI1NSwgMCwgMCwgMjU1XSk7Ci0gICAgICB3dHUuY2hlY2tDYW52YXMo
Z2wsIFtyLGcsYixhXSwKLSAgICAgICAgICAgICAgICAgICAgICAidGV4dHVyZSAiICsgZGVzYyAr
ICIgc2hvdWxkIGRyYXcgd2l0aCAiICsKLSAgICAgICAgICAgICAgICAgICAgICByICsgIiwgIiAr
IGcgKyAiLCAiICsgYiArICIsICIgKyBhKTsKLQotICAgfQotICAgY2hlY2tUeXBlKAotICAgICAg
IDAsIDI1NSwgMCwgMjU1LCBnbC5VTlNJR05FRF9CWVRFLCBnbC5SR0JBLAotICAgICAgIG5ldyBV
aW50OEFycmF5KAotICAgICAgICAgWyAwLCAyNTUsIDAsIDI1NSwKLSAgICAgICAgICAgMCwgMjU1
LCAwLCAyNTUsCi0gICAgICAgICAgIDAsIDI1NSwgMCwgMjU1LAotICAgICAgICAgICAwLCAyNTUs
IDAsIDI1NV0pKTsKLSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAwLCAyNTUsIDI1NSwgZ2wuVU5T
SUdORURfU0hPUlRfNF80XzRfNCwgZ2wuUkdCQSwKLSAgICAgICBuZXcgVWludDE2QXJyYXkoCi0g
ICAgICAgICBbIDI1NSwgMjU1LAotICAgICAgICAgICAyNTUsIDI1NSwKLSAgICAgICAgICAgMjU1
LCAyNTUsCi0gICAgICAgICAgIDI1NSwgMjU1XSkpOwotICAgY2hlY2tUeXBlKAotICAgICAgIDAs
IDI1NSwgMCwgMjU1LCBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwgZ2wuUkdCLAotICAgICAgIG5l
dyBVaW50MTZBcnJheSgKLSAgICAgICAgIFsgMjAxNiwgMjAxNiwKLSAgICAgICAgICAgMjAxNiwg
MjAxNiwKLSAgICAgICAgICAgMjAxNiwgMjAxNiwKLSAgICAgICAgICAgMjAxNiwgMjAxNl0pKTsK
LSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAwLCAyNTUsIDI1NSwgZ2wuVU5TSUdORURfU0hPUlRf
NV81XzVfMSwgZ2wuUkdCQSwKLSAgICAgICBuZXcgVWludDE2QXJyYXkoCi0gICAgICAgICBbIDYz
LCA2MywKLSAgICAgICAgICAgNjMsIDYzLAotICAgICAgICAgICA2MywgNjMsCi0gICAgICAgICAg
IDYzLCA2M10pKTsKLSAgIGNoZWNrVHlwZSgKLSAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIGds
LlVOU0lHTkVEX0JZVEUsIGdsLkxVTUlOQU5DRSwKLSAgICAgICBuZXcgVWludDhBcnJheShbCi0g
ICAgICAgICAgIDI1NSwKLSAgICAgICAgICAgMjU1LAotICAgICAgICAgICAyNTUsCi0gICAgICAg
ICAgIDI1NV0pKTsKLSAgIGNoZWNrVHlwZSgKLSAgICAgICAwLCAwLCAwLCAxMjgsIGdsLlVOU0lH
TkVEX0JZVEUsIGdsLkFMUEhBLAotICAgICAgIG5ldyBVaW50OEFycmF5KFsKLSAgICAgICAgICAg
MTI4LAotICAgICAgICAgICAxMjgsCi0gICAgICAgICAgIDEyOCwKLSAgICAgICAgICAgMTI4XSkp
OwotICAgY2hlY2tUeXBlKAotICAgICAgIDEyOCwgMTI4LCAxMjgsIDE5MiwgZ2wuVU5TSUdORURf
QllURSwgZ2wuTFVNSU5BTkNFX0FMUEhBLAotICAgICAgIG5ldyBVaW50OEFycmF5KFsKLSAgICAg
ICAgICAgMTI4LCAxOTIsCi0gICAgICAgICAgIDEyOCwgMTkyLAotICAgICAgICAgICAxMjgsIDE5
MiwKLSAgICAgICAgICAgMTI4LCAxOTJdKSk7Ci0gIH0KLSAgdmFyIHByb2dyYW0gPSB3dHUuc2V0
dXBUZXh0dXJlZFF1YWQoZ2wpOwotICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5U
LCAxKTsKLSAgY2hlY2tUeXBlcygpOwotfQotCi1kZWJ1ZygiIik7Ci12YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1oZC1kcGkuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1oZC1kcGkuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzFhZTJmOGY0MzlkNDFiYjQ0ZGYyZjgwZDg4ZGQyYTdjOWJkOGY4Zi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL3RleHR1cmUtaGQtZHBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDAgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVy
aWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j
bHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v
ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Ig
c2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwot
KiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBp
biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0q
KgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U
WSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg
TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB
TiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N
LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBV
U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0
bGU+V2ViR0wgSEQtRFBJIGlzc3VlcyB0ZXh0dXJlIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBo
ZWlnaHQ9IjQiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiAzMHB4OyI+PC9jYW52YXM+Ci08
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxz
Y3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigpOwotdmFyIHd0dSA9IFdlYkdMVGVz
dFV0aWxzOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwotdmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotCi1mdW5jdGlvbiBmaWxsSW5NaXBz
KGdsLCBzaXplKSB7Ci0gIC8vIGZpbGwgaW4gdGhlIG1pcHMKLSAgdmFyIGxldmVsID0gMTsKLSAg
Zm9yICg7OykgewotICAgIHNpemUgLz0gMjsKLSAgICBpZiAoc2l6ZSA8IDEpIHsKLSAgICAgIGJy
ZWFrOwotICAgIH0KLSAgICB2YXIgbnVtQnl0ZXMgPSBzaXplICogc2l6ZSAqIDQ7Ci0gICAgdmFy
IHBpeGVscyA9IG5ldyBVaW50OEFycmF5KG51bUJ5dGVzKTsKLSAgICBmb3IgKHZhciBqaiA9IDA7
IGpqIDwgbnVtQnl0ZXM7IGpqICs9IDQpIHsKLSAgICAgIHBpeGVsc1tqaiArIDBdID0gMDsKLSAg
ICAgIHBpeGVsc1tqaiArIDFdID0gMjU1OwotICAgICAgcGl4ZWxzW2pqICsgMl0gPSAwOwotICAg
ICAgcGl4ZWxzW2pqICsgM10gPSAyNTU7Ci0gICAgfQotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgc2l6ZSwgc2l6ZSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgcGl4ZWxzKTsKLSAgfQotfQotCi1mdW5jdGlvbiB0ZXN0Q2FudmFzKHNpemUpIHsKLSAg
ZGVidWcoIiIpOwotICBkZWJ1ZygidGVzdGluZyAyRCBjYW52YXMgc2l6ZSAiICsgc2l6ZSArICIs
ICIgKyBzaXplKTsKLQotICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2Fu
dmFzIik7Ci0gIGNhbnZhcy53aWR0aCA9IHNpemU7Ci0gIGNhbnZhcy5oZWlnaHQgPSBzaXplOwot
ICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gIGN0eC5maWxsU3R5bGUgPSAi
cmdiKDAsMjU1LDApIjsKLSAgY3R4LmZpbGxSZWN0KDAsIDAsIHNpemUsIHNpemUpOwotCi0gIHZh
ciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVf
MkQsIHRleCk7Ci0gIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzKTsKLQotICBmaWxsSW5NaXBzKGdsLCBzaXpl
KTsKLQotICAvLyBEcmF3LiBJZiB0aGlzIGFuIEhELURQSSBkZXZpY2UgYW5kIHRoZSAyZCBjYW52
YXMgaXMgZG91YmxlIHJlcyBvciBsYXJnZXIKLSAgLy8gdGhlIGltcGxlbWVudGF0aW9uIG11c3Qg
c2NhbGUgdG8gQ1NTIHBpeGVscyAoaWUsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCkoCi0g
IC8vIHdoZW4gZG9pbmcgdGhlIGNvcHkgaW4gdGV4SW1hZ2UyRC4gSWYgaXQgaGFzIG5vdCBzY2Fs
ZWQgYW5kIGluc3RlYWQgZG9uZQotICAvLyBhIGRpcmVjdCBjb3B5IG9mIHRoZSBsYXJnZXIgdGV4
dHVyZSB0aGlzIHRlc3Qgd2lsbCBub3QgaGF2ZSBjcmVhdGVkIGVub3VnaCBtaXBzCi0gIC8vIGFu
ZCB3aWxsIHRoZXJlZm9yZSBub3QgYmUgInRleHR1cmUgY29tcGxldGUiIGFuZCB3aWxsIHJlbmRl
ciBpbiBibGFjay4KLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNr
Q2FudmFzKGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RXZWJHTChzaXplKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoInRlc3Rpbmcg
V2ViR0wgY2FudmFzIHNpemUgIiArIHNpemUgKyAiLCAiICsgc2l6ZSk7Ci0KLSAgdmFyIGNhbnZh
cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBjYW52YXMud2lkdGggPSBz
aXplOwotICBjYW52YXMuaGVpZ2h0ID0gc2l6ZTsKLSAgdmFyIGdsMiA9IHd0dS5jcmVhdGUzRENv
bnRleHQoY2FudmFzKTsKLSAgZ2wyLmNsZWFyQ29sb3IoMCwxLDAsMSk7Ci0gIGdsMi5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUKTsKLQotICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwot
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGNhbnZh
cyk7Ci0KLSAgZmlsbEluTWlwcyhnbCwgc2l6ZSk7Ci0KLSAgLy8gRHJhdy4gSWYgdGhpcyBhbiBI
RC1EUEkgZGV2aWNlIGNoZWNrIGZvciAyIHBvc3NpYmxlIGJ1Z3MuCi0gIC8vCi0gIC8vIDEpIHRo
ZSBXZWJHTCBjYW52YXMgaXMgZG91YmxlIHJlcyBvciBsYXJnZXIuIFRoYXQncyBqdXN0IGEgYnVn
IHBlcmlvZCBhbmQKLSAgLy8gICAgaXMgY2hlY2tlZCBmb3IgaW4gYW5vdGhlciB0ZXN0IGJ1dCB3
b3VsZCBhbHNvIGZhaWwgaGVyZS4KLSAgLy8KLSAgLy8gMikgdGhlIFdlYkdMIGNhbnZhcyBpcyBz
aW5nbGUgcmVzIGJ1dCB0aGUgY29kZSB0aGUgc2NhbGVzIGEgZG91YmxlIHJlcwotICAvLyAgICAy
ZCBjYW52YXMgYWxzbyBtaXN0YWtlbmx5IHNjYWxlcyBhIHNpbmdsZSByZXMgV2ViR0wgY2FudmFz
LgotICAvLwotICAvLyBJZiBpdCBoYXMgYmVlbiBzY2FsZWQgdGhlbiB3ZSdsbCBoYXZlIHRoZSB3
cm9uZyBraW5kIG9mIG1pcHMgY2hhaW4gaGVyZS4KLSAgLy8gTGV2ZWwgMCB3aWxsIGJlIGhhbGYg
cmVzb2x1dGlvbi4gTGV2ZWwgMSB3aWxsIGJlIHRoZSBzYW1lIHJlc29sdXRpb24KLSAgLy8gYW5k
IHdpbGwgdGhlcmVmb3JlIG5vdCBiZSAidGV4dHVyZSBjb21wbGV0ZSIgYW5kIHdpbGwgcmVuZGVy
IGluIGJsYWNrLgotICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICB3dHUuY2hlY2tD
YW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJzaG91bGQgYmUgZ3JlZW4iKTsKLX0KLQotdGVz
dENhbnZhcyg0KTsKLXRlc3RDYW52YXMoNTEyKTsKLXRlc3RXZWJHTCg0KTsKLXRlc3RXZWJHTCg1
MTIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJv
cnMiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08
L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
dGV4dHVyZS1taXBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbWlw
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGMyZTgwZjI4ZWM1OGFmZGYz
MGIyNDIxNmEzYjVkMDE4MzBjZmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1taXBzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzMTkgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29weXJpZ2h0
IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQot
KiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRv
Ci0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQot
KiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFM
Uy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVyZSBtaXBzIGNvbmZvcm1hbmNlIHRl
c3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjIiIGhlaWdodD0iMiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48
L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgot
dW5pZm9ybSB2ZWM0IHVNdWx0OwotYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwotYXR0cmlidXRl
IHZlYzIgdGV4Q29vcmQwOwotdmFyeWluZyB2ZWMyIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsK
LSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbiAqIHVNdWx0OwotICAgIHRleENvb3JkID0gdGV4
Q29vcmQwOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci11bmlmb3JtIHNhbXBs
ZXIyRCB0ZXg7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICAgIGds
X0ZyYWdDb2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKTsKLX0KLTwvc2NyaXB0PgotPHNj
cmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciBjYW52YXM7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRp
bHM7Ci1mdW5jdGlvbiBpbml0KCkKLXsKLSAgZGVzY3JpcHRpb24oIkNoZWNrcyBtaXAgaXNzdWVz
Iik7Ci0KLSAgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLSAg
c2hvdWxkQmUoImNhbnZhcy53aWR0aCIsICIyIik7Ci0gIHNob3VsZEJlKCJjYW52YXMuaGVpZ2h0
IiwgIjIiKTsKLQotICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0KLSAg
dmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4KTsKLSAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCk7Ci0gIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJmb3IgZ2VuZXJhdGVNaXBtYXAg
d2l0aCBtaXAgMCBpcyAweDAiKTsKLSAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgIGdsLlRFWFRVUkVf
MkQsIDEsIGdsLlJHQkEsIDEsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAg
ICBuZXcgVWludDhBcnJheSg0KSk7Ci0gIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQp
OwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZm9yIGdlbmVy
YXRlTWlwbWFwIHdpdGggbWlwIDAgaXMgMHgwIik7Ci0KLSAgdGV4ID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXgpOwotICBnbC5n
ZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLSAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX09QRVJBVElPTiwgImZvciBnZW5lcmF0ZU1pcG1hcCB3aXRoIG1pcCAwIGlz
IDB4MCIpOwotCi0gIHZhciBmYWNlcyA9IFsKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lU
SVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAotICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLAotICAgIGdsLlRFWFRVUkVf
Q1VCRV9NQVBfTkVHQVRJVkVfWgotICBdOwotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZmFjZXMu
bGVuZ3RoOyArK2lpKSB7Ci0gICAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgICAgZmFjZXNbaWldLCAw
LCBnbC5SR0JBLCAyLCAyLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICBu
ZXcgVWludDhBcnJheSg0ICogMiAqIDIpKTsKLSAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhU
VVJFX0NVQkVfTUFQKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGlpID09IDUgPyBnbC5OT19F
UlJPUiA6IGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZm9yIGdlbmVyYXRlTWlwbWFwIHdpdGggIiAr
IChpaSArIDEpICsgIiBmYWNlcyIpOwotICB9Ci0KLSAgd3R1LnNldHVwVW5pdFF1YWQoZ2wsIDAs
IDEpOwotICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCi0gICAgICBnbCwgWyd2c2hh
ZGVyJywgJ2ZzaGFkZXInXSwgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sIFswLCAxXSk7Ci0K
LSAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLSAgZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0K
LSAgdmFyIGNvbG9ycyA9IHsKLSAgICBibHVlOiBbMCwgMCwgMjU1LCAyNTVdLAotICAgIHJlZDog
WzI1NSwgMCwgMCwgMjU1XSwKLSAgICBncmVlbjogIFswLCAyNTUsIDAsIDI1NV0sCi0gICAgY3lh
bjogWzEyOCwgMjU1LCAyNTUsIDI1NV0sCi0gICAgYmxhY2s6IFswLCAwLCAwLCAyNTVdLAotICAg
IGJsYW5rOiBbMCwgMCwgMCwgMF0KLSAgfTsKLQotICB2YXIgbWlwcyA9IFsKLSAgXTsKLQotICB2
YXIgdGV4TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKLSAgZ2wu
dW5pZm9ybTFpKHRleExvYywgMCk7Ci0gIHZhciBtdWx0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKHByb2dyYW0sICJ1TXVsdCIpOwotCi0gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgdmFyIGNsZWFyVGV4ID0gY3JlYXRlVGV4dHVy
ZSgpOwotICBnbC51bmlmb3JtNGYobXVsdExvYywgMSwgMSwgMSwgMSk7Ci0gIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIGNsZWFyVGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCAxNiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOwotICBkZWJ1ZygnZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAx
NiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOycpOwotICBzZXRNaXBE
YXRhKDAsIDE2LCAnYmxhbmsnKTsKLSAgbWFrZURpdk1pcENoYWluKCk7Ci0gIGdlbmVyYXRlTWlw
bWFwKCk7Ci0gIGNoZWNrKCdibGFuaycsICJ0ZXh0dXJlIGNyZWF0ZWQgd2l0aCBudWxsIHRoYXQg
aGFzIGFsbCBtaXBzIik7Ci0KLSAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotICB2YXIgdGV4ID0gY3JlYXRlVGV4dHVyZSgpOwotICBnbC51
bmlmb3JtNGYobXVsdExvYywgMSwgMSwgMSwgMSk7Ci0KLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KTsKLSAgLy8gMTZ4MTYgdGV4dHVyZSBubyBtaXBzCi0gIGZpbGxMZXZlbCh0
ZXgsIDAsIDE2LCAnY3lhbicpOwotCi0gIGNoZWNrKCdibGFjaycsCi0gICAgICAgICJ0ZXh0dXJl
IHRoYXQgaXMgbWlzc2luZyBtaXBzIHdoZW4gVEVYVFVSRV9NSU5fRklMVEVSIG5vdCBORUFSRVNU
IG9yIExJTkVBUiIpOwotCi0gIGdlbmVyYXRlTWlwbWFwKCk7Ci0KLSAgY2hlY2soJ2N5YW4nLCAi
dGV4dHVyZSB0aGF0IGhhcyBhbGwgbWlwcyIpOwotCi0gIC8vIEZpbGwgaW4gdGhlIGJvdHRvbSAy
IG1pcHMgd2l0aCBhIGRpZmZlcmVudCBjb2xvci4KLSAgZmlsbExldmVsKHRleCwgNCwgMSwgJ2dy
ZWVuJyk7Ci0gIGZpbGxMZXZlbCh0ZXgsIDMsIDIsICdncmVlbicpOwotCi0gIC8vIENob29zZSB0
aGUgbmVhcmVzdCBtaXAKLSAgdGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCk7Ci0KLSAgY2hlY2soJ2dyZWVu
JywgInRleHR1cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRoZSBzbWFsbGVzdCAyIG1pcHMiKTsKLQot
ICBnbC51bmlmb3JtNGYobXVsdExvYywgMTYsIDE2LCAxLCAxKTsKLQotICBjaGVjaygnY3lhbics
ICJ0ZXh0dXJlIHRoYXQgaXMgdXNpbmcgb25seSB0aGUgbGFyZ2VzdCAyIG1pcHMiKTsKLQotICAv
LyBTZXQgdGhlIHRvcCBsZXZlbAotICBmaWxsTGV2ZWwodGV4LCAwLCAxLCAncmVkJyk7Ci0gIGNo
ZWNrKCdyZWQnLAotICAgICAgICAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdGhlIHRvcCBs
ZXZlbCBldmVuIHRob3VnaCBvdGhlciBsZXZlbHMgYXJlIGRlZmluZWQiKTsKLQotICAvLyBTZXQg
dGhlIHRvcCAyIGxldmVscyB1c2luZyBnZW5lcmF0ZU1pcG1hcAotICBmaWxsTGV2ZWwodGV4LCAw
LCAyLCAnYmx1ZScpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwotCi0gIGNoZWNrKCdibHVlJywKLSAg
ICAgICAgInRleHR1cmUgdGhhdCBpcyBvbmx5IHVzaW5nIHRoZSB0b3AgMiBsZXZlbHMgZXZlbiB0
aG91Z2ggb3RoZXIgbGV2ZWxzIGFyZSBkZWZpbmVkIik7Ci0KLSAgLy8gU2V0IHRoZSB0b3AgMiBs
ZXZlbHMgYmFjayB0byBzaXplcyB0aGF0IGVuZCB1cCB1c2luZyBsZXZlbHMgMiwgMywgYW5kIDQg
YWdhaW4uCi0gIGZpbGxMZXZlbCh0ZXgsIDAsIDE2LCAnYmx1ZScpOwotICBmaWxsTGV2ZWwodGV4
LCAxLCA4LCAnYmx1ZScpOwotICBjaGVjaygnYmx1ZScsICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1
c2luZyB0aGUgbGFyZ2VzdCAyIG1pcHMiKTsKLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDEsIDEs
IDEsIDEpOwotICBjaGVjaygnZ3JlZW4nLCAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdGhl
IHNtYWxsZXN0IDIgbWlwcyIpOwotCi0gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgdmFyIHRleCA9IGNyZWF0ZVRleHR1cmUoKTsKLSAg
Z2wudW5pZm9ybTRmKG11bHRMb2MsIDEsIDEsIDEsIDEpOwotICBmaWxsTGV2ZWwodGV4LCAwLCA4
LCAnY3lhbicpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwotICBjaGVjaygnY3lhbicsICJ0ZXh0dXJl
IHRoYXQgaGFzIDMgbWlwcyIpOwotCi0gIGZpbGxMZXZlbCh0ZXgsIDAsIDE2LCAnYmx1ZScpOwot
ICB0ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wu
TElORUFSKTsKLSAgY2hlY2soJ2JsdWUnLCAidGV4dHVyZSB0aGF0IGlzIG9ubHkgdXNpbmcgdG9w
IG1pcHMiKTsKLQotICBmaWxsTGV2ZWwodGV4LCAwLCA4LCAncmVkJyk7Ci0gIHRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQ
X05FQVJFU1QpOwotICBjaGVjaygnY3lhbicsICJ0ZXh0dXJlIHRoYXQgaXMgb25seSB1c2luZyBz
bWFsbGVzdCBtaXBzIik7Ci0KLSAgZ2wudW5pZm9ybTRmKG11bHRMb2MsIDE2LCAxNiwgMSwgMSk7
Ci0gIGNoZWNrKCdyZWQnLCAidGV4dHVyZSB0aGF0IGlzIHVzaW5nIG9ubHkgdGhlIGxhcmdlc3Qg
bWlwIik7Ci0KLSAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotICB2YXIgdGV4ID0gY3JlYXRlVGV4dHVyZSgpOwotICBnbC51bmlmb3JtNGYo
bXVsdExvYywgMSwgMSwgMSwgMSk7Ci0gIGZpbGxMZXZlbCh0ZXgsIDIsIDEsICdncmVlbicpOwot
ICBmaWxsTGV2ZWwodGV4LCAxLCAyLCAnZ3JlZW4nKTsKLSAgZmlsbExldmVsKHRleCwgMCwgNCwg
J2dyZWVuJyk7Ci0gIGNoZWNrKCdncmVlbicsICJ0ZXh0dXJlIHRoYXQgd2FzIGJ1aWx0IHNtYWxs
ZXN0IG1pcCBmaXJzdCIpOwotCi0gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgdmFyIHRleCA9IGNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wu
dW5pZm9ybTRmKG11bHRMb2MsIDEsIDEsIDEsIDEpOwotICBmaWxsTGV2ZWwodGV4LCAwLCAxNiwg
J3JlZCcpOwotICBnZW5lcmF0ZU1pcG1hcCgpOwotICBjaGVjaygncmVkJywgInRleHR1cmUgd2l0
aCAxIGdlbm1pcG1hcHMiKTsKLSAgZmlsbExldmVsKHRleCwgMCwgMTYsICdibHVlJyk7Ci0gIGdl
bmVyYXRlTWlwbWFwKCk7Ci0gIGZpbGxMZXZlbCh0ZXgsIDAsIDE2LCAnZ3JlZW4nKTsKLSAgZ2Vu
ZXJhdGVNaXBtYXAoKTsKLSAgY2hlY2soJ2dyZWVuJywgInRleHR1cmUgd2l0aCAyIGdlbm1pcG1h
cHMiKTsKLQotICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUg
bm8gZXJyb3JzLiIpOwotCi0gIGZ1bmN0aW9uIGNyZWF0ZVRleHR1cmUoKSB7Ci0gICAgZGVidWco
Ijxoci8+Z2wuY3JlYXRlVGV4dHVyZSgpIik7Ci0gICAgbWlwcyA9IFtdOwotICAgIG1ha2VEaXZN
aXBDaGFpbigpOwotICAgIHJldHVybiBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIH0KLQotICBmdW5j
dGlvbiB0ZXhQYXJhbWV0ZXJpKHRhcmdldCwgcG5hbWUsIHZhbHVlKSB7Ci0gICAgZGVidWcoImds
LnRleFBhcmFtZXRlcmkoIiArCi0gICAgICAgICAgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJn
ZXQpICsgIiwgIiArCi0gICAgICAgICAgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBwbmFtZSkgKyAi
LCAiICsKLSAgICAgICAgICB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHZhbHVlKSArICIpIikKLSAg
ICBnbC50ZXhQYXJhbWV0ZXJpKHRhcmdldCwgcG5hbWUsIHZhbHVlKTsKLSAgfQotCi0gIGZ1bmN0
aW9uIGdlbmVyYXRlTWlwbWFwKCkgewotICAgIGRlYnVnKCJnbC5nZW5lcmF0ZU1pcG1hcChnbC5U
RVhUVVJFXzJEKSIpOwotICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpOwotICAg
IHZhciBtaXAwID0gbWlwc1swXTsKLSAgICB2YXIgc2l6ZSA9IG1pcDAuc2l6ZTsKLSAgICB2YXIg
bGV2ZWwgPSAxOwotICAgIGZvcig7OykgewotICAgICAgc2l6ZSA9IE1hdGguZmxvb3Ioc2l6ZSAv
IDIpOwotICAgICAgaWYgKCFzaXplKSB7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICAg
c2V0TWlwRGF0YShsZXZlbCwgc2l6ZSwgbWlwMC5jb2xvcik7Ci0gICAgICArK2xldmVsOwotICAg
IH0KLSAgICBtYWtlRGl2TWlwQ2hhaW4oKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNoZWNrKGNvbG9y
LCBtc2cpIHsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgIHd0dS5jaGVj
a0NhbnZhcyhnbCwgY29sb3JzW2NvbG9yXSwgbXNnICsgIiBzaG91bGQgZHJhdyB3aXRoICIgKyBj
b2xvcik7Ci0gIH0KLQotICBmdW5jdGlvbiBmaWxsTGV2ZWwodGV4LCBsZXZlbCwgc2l6ZSwgY29s
b3IpIHsKLSAgICBzZXRNaXBEYXRhKGxldmVsLCBzaXplLCBjb2xvcik7Ci0gICAgZGVidWcoImds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgIiArIGxldmVsICsgIiwgZ2wuUkdCQSwgIiArIHNp
emUgKyAiLCAiICsgc2l6ZSArCi0gICAgICAgICAgIiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgIiArIGNvbG9yICsgIik7Iik7Ci0gICAgd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIHNp
emUsIHNpemUsIGNvbG9yc1tjb2xvcl0sIGxldmVsKTsKLSAgICBtYWtlRGl2TWlwQ2hhaW4oKTsK
LSAgfQotCi0gIGZ1bmN0aW9uIHNldE1pcERhdGEobGV2ZWwsIHNpemUsIGNvbG9yKSB7Ci0gICAg
bWlwc1tsZXZlbF0gPSB7Ci0gICAgICBzaXplOiBzaXplLAotICAgICAgY29sb3I6IGNvbG9yCi0g
ICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VEaXZNaXBDaGFpbihjb2xvcikgewotICAgIHZh
ciBodG1sID0gWwotICAgICAgJzxkaXYgc3R5bGU9ImhlaWdodDogNjhweDsgbWFyZ2luLXRvcDog
NXB4Ij4nLAotICAgICAgJzxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7Ij5taXBzOiA8L2Rpdj4nXTsK
LSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgNTsgKytpaSkgewotICAgICAgdmFyIG1pcCA9IG1p
cHNbaWldOwotICAgICAgaWYgKG1pcCkgewotICAgICAgICBodG1sLnB1c2gobWFrZURpdlNxdWFy
ZShtaXAuc2l6ZSwgbWlwLmNvbG9yKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBodG1sLnB1
c2gobWFrZURpdlNxdWFyZSgxNiwgdW5kZWZpbmVkKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIGh0
bWwucHVzaCgiPC9kaXY+Iik7Ci0gICAgZGVidWcoaHRtbC5qb2luKCIiKSk7Ci0gIH0KLQotICBm
dW5jdGlvbiBtYWtlRGl2U3F1YXJlKHNpemUsIGNvbG9yKSB7Ci0gICAgc2l6ZSAqPSA0OwotICAg
IHZhciBjID0gY29sb3IgPyBjb2xvcnNbY29sb3JdIDogWzI1NSwyNTUsMjU1XTsKLSAgICB2YXIg
Ym9yZGVyID0gY29sb3IgPyAnc29saWQnIDogJ2Rhc2hlZCc7Ci0gICAgcmV0dXJuICc8ZGl2IHN0
eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDogJyArIHNpemUgKyAncHg7IGhlaWdodDogJyArIHNpemUg
KwotICAgICAgICAgICAncHg7IGJhY2tncm91bmQtY29sb3I6ICcgKyByZ2IoYykgKwotICAgICAg
ICAgICAnOyBib3JkZXI6IDFweCAnICsgYm9yZGVyICsgJyBibGFjazsgbWFyZ2luLXJpZ2h0OiAz
cHg7Ij48L2Rpdj4nOwotICB9Ci0KLSAgZnVuY3Rpb24gcmdiKGMpIHsKLSAgICByZXR1cm4gJ3Jn
YignICsgY1swXSArICcsJyArIGNbMV0gKyAnLCcgKyBjWzJdICsnKSc7Ci0gIH0KLX0KLQotaW5p
dCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtbnBvdC12aWRlby5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5w
b3QtdmlkZW8uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFmYjQ4MzBhZDYw
YWNmNzk5MzRhNTczZGE4NmI4MDU5MTcwZmY4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBv
dC12aWRlby5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLTwhLS0KLQotLyoK
LSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVy
bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g
b2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBk
b2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUg
TWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1p
dGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAot
KiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRl
cmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFy
ZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu
dGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJF
IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBS
RVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT
IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdF
UyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAot
KiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ
T04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElO
IFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsK
LXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IG51bGw7Ci12YXIgdGV4dHVyZUxv
YyA9IG51bGw7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci12YXIgdmlkZW87Ci0K
LWluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsKLQotZnVuY3Rpb24gaW5pdCgpCi17
Ci0gICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSBucG90IHZpZGVvJyk7Ci0KLSAgICB2YXIgY2FudmFz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLSAgICBnbCA9IHd0dS5jcmVh
dGUzRENvbnRleHQoY2FudmFzKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVk
UXVhZChnbCk7Ci0KLSAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOwotICAgIGdsLmNsZWFyRGVw
dGgoMSk7Ci0KLSAgICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0s
ICJ0ZXgiKTsKLQotICAgIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZCIpOwot
ICAgIHd0dS5zdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIHJ1blRlc3QpOwotfQot
Ci0vLyBUaGVzZSB0d28gZGVjbGFyYXRpb25zIG5lZWQgdG8gYmUgZ2xvYmFsIGZvciAic2hvdWxk
QmUiIHRvIHNlZSB0aGVtCi12YXIgYnVmID0gbnVsbDsKLXZhciBpZHggPSAwOwotdmFyIHBpeGVs
ID0gWzAsIDAsIDBdOwotdmFyIGNvcnJlY3RDb2xvciA9IG51bGw7Ci12YXIgdGV4dHVyZTsKLQot
ZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgdXNlVGV4U3ViSW1hZ2UyRCwg
ZmxpcFksIHRvcENvbG9yLCBib3R0b21Db2xvciwgYmFkTWluRmlsdGVyLCBiYWRDbGFtcCwgZ2Vu
TWlwcykKLXsKLSAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAndGV4
U3ViSW1hZ2UyRCcgOiAndGV4SW1hZ2UyRCcpICsKLSAgICAgICAgICAnIHdpdGggZmxpcFk9JyAr
IGZsaXBZKTsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVG
RkVSX0JJVCk7Ci0gICAgLy8gRGlzYWJsZSBhbnkgd3JpdGVzIHRvIHRoZSBhbHBoYSBjaGFubmVs
Ci0gICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOwotICAgIGlmICghdGV4dHVyZSkgewotICAg
ICAgICB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIH0KLSAgICAvLyBCaW5kIHRo
ZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4dHVyZSk7Ci0gICAgLy8gU2V0IHVwIHBpeGVsIHN0b3JlIHBhcmFtZXRlcnMKLSAg
ICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7Ci0gICAgLy8g
VXBsb2FkIHRoZSB2aWRlb0VsZW1lbnQgaW50byB0aGUgdGV4dHVyZQotICAgIGRlYnVnKCJzaXpl
OiAiICsgdmlkZW9FbGVtZW50LnZpZGVvV2lkdGggKyAieCIgKyB2aWRlb0VsZW1lbnQudmlkZW9I
ZWlnaHQpOwotICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7Ci0gICAgICAgIC8vIEluaXRpYWxp
emUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QKLSAgICAgICAgZGVidWcoInVzZSB0ZXhTdWJJ
bWFnZTJEIik7Ci0gICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwKLSAgICAgICAgICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQudmlkZW9XaWR0aCwgdmlkZW9F
bGVtZW50LnZpZGVvSGVpZ2h0LCAwLAotICAgICAgICAgICAgICAgICAgICAgIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVvRWxlbWVudCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVidWcoInVzZSB0ZXhJbWFnZTJEIik7Ci0gICAgICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgdmlkZW9FbGVtZW50KTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgdXAgdGV4dHVy
ZSBwYXJhbWV0ZXJzCi0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgaWYgKGJhZE1pbkZpbHRlcikgewotICAg
ICAgICBkZWJ1ZygiYmFkIG1pbiBmaWx0ZXIiKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTkVB
UkVTVCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVidWcoImdvb2QgbWluIGZpbHRlciIpOwot
ICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJ
TFRFUiwgZ2wuTElORUFSKTsKLSAgICB9Ci0gICAgaWYgKGJhZENsYW1wKSB7Ci0gICAgICAgIGRl
YnVnKCJiYWQgY2xhbXAiKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuUkVQRUFUKTsKLSAgICAgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFUKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBkZWJ1ZygiZ29vZCBjbGFtcCIpOwotICAgICAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsK
LSAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
VCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgfQotICAgIGlmIChnZW5NaXBzKSB7Ci0gICAgICAg
IGRlYnVnKCJnZW5lcmF0ZSBtaXBzIik7Ci0gICAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRF
WFRVUkVfMkQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFU
SU9OLCAic2hvdWxkIGJlIElOVkFMSURfT1BFUkFUSU9OIik7Ci0gICAgfQotCi0gICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7Ci0KLS8vICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIik7Ci0vLyAgICBjLndpZHRoID0gMTY7Ci0vLyAgICBjLmhlaWdodCA9IDE2Owot
Ly8gICAgYy5zdHlsZS5ib3JkZXIgPSAiMXB4IHNvbGlkIGJsYWNrIjsKLS8vICAgIHZhciBjdHgg
PSBjLmdldENvbnRleHQoIjJkIik7Ci0vLyAgICBjdHguZHJhd0ltYWdlKHZpZGVvRWxlbWVudCwg
MCwgMCwgMTYsIDE2KTsKLS8vICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyk7Ci0KLSAg
ICAvLyBQb2ludCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wu
dW5pZm9ybTFpKHRleHR1cmVMb2MsIDApOwotICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAg
IHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotICAgIC8vIENo
ZWNrIGEgZmV3IHBpeGVscyBuZWFyIHRoZSB0b3AgYW5kIGJvdHRvbSBhbmQgbWFrZSBzdXJlIHRo
ZXkgaGF2ZQotICAgIC8vIHRoZSByaWdodCBjb2xvci4KLSAgICB2YXIgdG9sZXJhbmNlID0gNTsK
LSAgICBkZWJ1ZygiQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB3dHUuY2hlY2tD
YW52YXNSZWN0KGdsLCA0LCA0LCAyLCAyLCBib3R0b21Db2xvciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJzaG91bGRCZSAiICsgYm90dG9tQ29sb3IsIHRvbGVyYW5jZSk7Ci0gICAgZGVidWco
IkNoZWNraW5nIHVwcGVyIGxlZnQgY29ybmVyIik7Ci0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChn
bCwgNCwgZ2wuY2FudmFzLmhlaWdodCAtIDgsIDIsIDIsIHRvcENvbG9yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgInNob3VsZEJlICIgKyB0b3BDb2xvciwgdG9sZXJhbmNlKTsKLSAgICBkZWJ1
ZygiIik7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QodmlkZW9FbGVtZW50KQotewotICAgIHZhciBy
ZWQgPSBbMjU1LCAwLCAwXTsKLSAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwXTsKLSAgICB2YXIg
YmxhY2sgPSBbMCwgMCwgMF07Ci0gICAgcnVuT25lSXRlcmF0aW9uKHZpZGVvRWxlbWVudCwgZmFs
c2UsIHRydWUsIGJsYWNrLCBibGFjaywgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgcnVuT25lSXRl
cmF0aW9uKHZpZGVvRWxlbWVudCwgZmFsc2UsIHRydWUsIGJsYWNrLCBibGFjaywgdHJ1ZSwgZmFs
c2UsIGZhbHNlKTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCBmYWxzZSwgdHJ1
ZSwgYmxhY2ssIGJsYWNrLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpOwotICAgIHJ1bk9uZUl0ZXJhdGlv
bih2aWRlb0VsZW1lbnQsIGZhbHNlLCB0cnVlLCBibGFjaywgYmxhY2ssIHRydWUsIHRydWUsIGZh
bHNlKTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCBmYWxzZSwgdHJ1ZSwgZ3Jl
ZW4sIHJlZCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0gICAgcnVuT25lSXRlcmF0aW9uKHZpZGVv
RWxlbWVudCwgZmFsc2UsIGZhbHNlLCByZWQsIGdyZWVuLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsK
LSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCB0cnVlLCB0cnVlLCBncmVlbiwgcmVk
LCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50
LCB0cnVlLCBmYWxzZSwgcmVkLCBncmVlbiwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0KLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIpOwot
ICAgIGZpbmlzaFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJp
bml0KCkiPgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjY0IiBoZWlnaHQ9IjQ4Ij48L2Nh
bnZhcz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotPHZpZGVvIGlkPSJ2aWQiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KLSAgPHNvdXJjZSBz
cmM9Ii4uL3Jlc291cmNlcy9ucG90LXZpZGVvLm1wNCIgIHR5cGU9J3ZpZGVvL21wNDsgY29kZWNz
PSJhdmMxLjQyRTAxRSInIC8+Ci0gIDxzb3VyY2Ugc3JjPSIuLi9yZXNvdXJjZXMvbnBvdC12aWRl
by53ZWJtdnA4LndlYm0iIHR5cGU9J3ZpZGVvL3dlYm07IGNvZGVjcz0idnA4IicgLz4KLSAgPHNv
dXJjZSBzcmM9Ii4uL3Jlc291cmNlcy9ucG90LXZpZGVvLnRoZW9yYS5vZ3YiICB0eXBlPSd2aWRl
by9vZ2c7IGNvZGVjcz0idGhlb3JhIicgLz4KLTwvdmlkZW8+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmRkOGFmMjgyZTE0NGY3OTdlMDFlM2IwMmI0YmJjNDY4OTdjYTIx
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjQ4ICswLDAgQEAKLTwhLS0KLQotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
LSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgot
KioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0tLT4KLQotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRp
dGxlPldlYkdMIE5vbi1Qb3dlciBvZiAyIHRleHR1cmUgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxl
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjQi
IGhlaWdodD0iNCIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDMwcHg7Ij48L2NhbnZhcz4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRl
IHZlYzQgdlBvc2l0aW9uOwotYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQwOwotdmFyeWluZyB2ZWMy
IHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsK
LSAgICB0ZXhDb29yZCA9IHRleENvb3JkMDsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0IGlkPSJm
c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KLXByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OwotdW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXg7Ci12YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Ci12
b2lkIG1haW4oKQotewotICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmVDdWJlKHRleCwgbm9ybWFs
aXplKHZlYzModGV4Q29vcmQsIDEpKSk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci0idXNlIHN0
cmljdCI7Ci1kZXNjcmlwdGlvbihkb2N1bWVudC50aXRsZSk7Ci12YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Ci12YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0KLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLXZhciB0
ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0KLS8vIENoZWNrIHRoYXQgYW4gTlBPVCB0ZXh0dXJl
IG5vdCBvbiBsZXZlbCAwIGdlbmVyYXRlcyBJTlZBTElEX1ZBTFVFCi13dHUuZmlsbFRleHR1cmUo
Z2wsIHRleCwgNSwgMywgWzAsIDE5MiwgMTI4LCAyNTVdLCAxKTsKLWdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuSU5WQUxJRF9WQUxVRSwKLSAgICAiZ2wudGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVy
ZSB3aXRoIGxldmVsID4gMCBzaG91bGQgcmV0dXJuIElOVkFMSURfVkFMVUUiKTsKLQotLy8gQ2hl
Y2sgdGhhdCBhbiBOUE9UIHRleHR1cmUgb24gbGV2ZWwgMCBzdWNjZWVkcwotd3R1LmZpbGxUZXh0
dXJlKGdsLCB0ZXgsIDUsIDMsIFswLCAxOTIsIDEyOCwgMjU1XSk7Ci1nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLAotICAgICJnbC50ZXhJbWFnZTJEIHdpdGggTlBPVCB0ZXh0dXJlIGF0
IGxldmVsIDAgc2hvdWxkIHN1Y2NlZWQiKTsKLQotLy8gQ2hlY2sgdGhhdCBnZW5lcmF0ZU1pcG1h
cCBmYWlscyBvbiBOUE9UCi1nbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImdsLmdlbmVyYXRlTWlw
bWFwIHdpdGggTlBPVCB0ZXh0dXJlIHNob3VsZCByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT04iKTsK
LQotdmFyIGxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7Ci1nbC51
bmlmb3JtMWkobG9jLCAwKTsKLQotLy8gQ2hlY2sgdGhhdCBub3RoaW5nIGlzIGRyYXduIGlmIGZp
bHRlcmluZyBpcyBub3QgY29ycmVjdCBmb3IgTlBPVAotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwot
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuUkVQ
RUFUKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1Qs
IGdsLlJFUEVBVCk7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUuY2hlY2tD
YW52YXMoCi0gICAgZ2wsIFswLCAwLCAwLCAyNTVdLAotICAgICJOUE9UIHRleHR1cmUgd2l0aCBU
RVhUVVJFX1dSQVAgc2V0IHRvIFJFUEVBVCBzaG91bGQgZHJhdyB3aXRoIDAsMCwwLDI1NSIpOwot
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJv
bSBzZXR1cC4iKTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUX01JUE1B
UF9MSU5FQVIpOwotCi13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNoZWNrQ2Fu
dmFzKAotICAgIGdsLCBbMCwgMCwgMCwgMjU1XSwKLSAgICAiTlBPVCB0ZXh0dXJlIHdpdGggVEVY
VFVSRV9NSU5fRklMVEVSIG5vdCBORUFSRVNUIG9yIExJTkVBUiBzaG91bGQgZHJhdyB3aXRoIDAs
MCwwLDI1NSIpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0KLXd0dS5jbGVhckFuZERyYXdV
bml0UXVhZChnbCk7Ci13dHUuY2hlY2tDYW52YXMoCi0gICAgZ2wsIFswLCAxOTIsIDEyOCwgMjU1
XSwKLSAgICAiTlBPVCB0ZXh0dXJlIHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIHNldCB0byBMSU5F
QVIgc2hvdWxkIGRyYXcuIik7Ci0KLWdsLmNvcHlUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEs
IGdsLlJHQkEsIDAsIDAsIDUsIDMsIDApOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLAotICAgICJjb3B5VGV4SW1hZ2UyRCB3aXRoIE5QT1QgdGV4dHVyZSB3aXRoIGxldmVs
ID4gMCBzaG91bGQgcmV0dXJuIElOVkFMSURfVkFMVUUuIik7Ci0KLS8vIENoZWNrIHRoYXQgZ2Vu
ZXJhdGVNaXBtYXAgZm9yIGFuIFBPVCB0ZXh0dXJlIHN1Y2NlZWRzCi13dHUuZmlsbFRleHR1cmUo
Z2wsIHRleCwgNCwgNCwgWzAsIDE5MiwgMTI4LCAyNTVdKTsKLWdsLmdlbmVyYXRlTWlwbWFwKGds
LlRFWFRVUkVfMkQpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAiZ2wu
dGV4SW1hZ2UyRCBhbmQgZ2wuZ2VuZXJhdGVNaXBtYXAgd2l0aCBQT1QgdGV4dHVyZSBhdCBsZXZl
bCAwIHNob3VsZCBzdWNjZWVkIik7Ci0KLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7Ci1nbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFS
KTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGds
LlJFUEVBVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9ULCBnbC5SRVBFQVQpOwotCi13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1LmNo
ZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMTkyLCAxMjgsIDI1NV0sCi0gICAgIlBPVCB0ZXh0dXJl
IHdpdGggVEVYVFVSRV9NSU5fRklMVEVSIHNldCB0byBMSU5FQVJfTUlQTUFQX0xJTkVBUiBzaG91
bGQgZHJhdy4iKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUg
bm8gZXJyb3JzIGZyb20gc2V0dXAuIik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJjaGVjayB1c2lu
ZyBjdWJlbWFwIik7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCi0gICAgZ2wsIFsn
dnNoYWRlcicsICdmc2hhZGVyJ10sIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLCBbMCwgMV0p
OwotdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLQotLy8gQ2hlY2sgdGhhdCBhbiBOUE9U
IHRleHR1cmUgbm90IG9uIGxldmVsIDAgZ2VuZXJhdGVzIElOVkFMSURfVkFMVUUKLWZpbGxDdWJl
VGV4dHVyZShnbCwgdGV4LCA1LCAzLCBbMCwgMTkyLCAxMjgsIDI1NV0sIDEpOwotZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLAotICAgICJnbC50ZXhJbWFnZTJEIHdpdGggTlBP
VCB0ZXh0dXJlIHdpdGggbGV2ZWwgPiAwIHNob3VsZCByZXR1cm4gSU5WQUxJRF9WQUxVRSIpOwot
Ci0vLyBDaGVjayB0aGF0IGFuIE5QT1QgdGV4dHVyZSBvbiBsZXZlbCAwIHN1Y2NlZWRzCi1maWxs
Q3ViZVRleHR1cmUoZ2wsIHRleCwgNSwgNSwgWzAsIDE5MiwgMTI4LCAyNTVdKTsKLWdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgImdsLnRleEltYWdlMkQgd2l0aCBOUE9UIHRl
eHR1cmUgYXQgbGV2ZWwgMCBzaG91bGQgc3VjY2VlZCIpOwotCi0vLyBDaGVjayB0aGF0IGdlbmVy
YXRlTWlwbWFwIGZhaWxzIG9uIE5QT1QKLWdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VC
RV9NQVApOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAi
Z2wuZ2VuZXJhdGVNaXBtYXAgd2l0aCBOUE9UIHRleHR1cmUgc2hvdWxkIHJldHVybiBJTlZBTElE
X09QRVJBVElPTiIpOwotCi12YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0s
ICJ0ZXgiKTsKLWdsLnVuaWZvcm0xaShsb2MsIDApOwotCi0vLyBDaGVjayB0aGF0IG5vdGhpbmcg
aXMgZHJhd24gaWYgZmlsdGVyaW5nIGlzIG5vdCBjb3JyZWN0IGZvciBOUE9UCi1nbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VC
RV9NQVAsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOwotZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuUkVQRUFUKTsKLQotd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAs
IDAsIDAsIDI1NV0sCi0gICAgIk5QT1QgY3ViZW1hcCB3aXRoIFRFWFRVUkVfV1JBUCBzZXQgdG8g
UkVQRUFUIHNob3VsZCBkcmF3IHdpdGggMCwwLDAsMjU1Iik7Ci1nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOwotCi1nbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5D
TEFNUF9UT19FREdFKTsKLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wu
VEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFX0NVQkVfTUFQLCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1RfTUlQTUFQ
X0xJTkVBUik7Ci0KLXd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci13dHUuY2hlY2tDYW52
YXMoCi0gICAgZ2wsIFswLCAwLCAwLCAyNTVdLAotICAgICJOUE9UIGN1YmVtYXAgd2l0aCBURVhU
VVJFX01JTl9GSUxURVIgbm90IE5FQVJFU1Qgb3IgTElORUFSIHNob3VsZCBkcmF3IHdpdGggMCww
LDAsMjU1Iik7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5v
IGVycm9ycyBmcm9tIHNldHVwLiIpOwotCi1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VC
RV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLQotd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAsIDE5MiwgMTI4
LCAyNTVdLAotICAgICJOUE9UIGN1YmVtYXAgd2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0IHRv
IExJTkVBUiBzaG91bGQgZHJhdy4iKTsKLQotLy8gQ2hlY2sgdGhhdCBhbiBQT1QgdGV4dHVyZSBv
biBsZXZlbCAwIHN1Y2NlZWRzCi1maWxsQ3ViZVRleHR1cmUoZ2wsIHRleCwgNCwgNCwgWzAsIDE5
MiwgMTI4LCAyNTVdKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCi0gICAgImds
LnRleEltYWdlMkQgd2l0aCBQT1QgdGV4dHVyZSBhdCBsZXZlbCAwIHNob3VsZCBzdWNjZWVkIik7
Ci0KLWdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUik7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLWdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLlJF
UEVBVCk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVf
V1JBUF9ULCBnbC5SRVBFQVQpOwotCi13dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotd3R1
LmNoZWNrQ2FudmFzKAotICAgIGdsLCBbMCwgMCwgMCwgMjU1XSwKLSAgICAiUE9UIGN1YmVtYXAg
d2l0aCBURVhUVVJFX01JTl9GSUxURVIgc2V0IHRvIExJTkVBUl9NSVBNQVBfTElORUFSIGJ1dCBu
byBtaXBzIGRyYXcgd2l0aCAwLDAsMCwyNTUiKTsKLQotLy8gQ2hlY2sgdGhhdCBnZW5lcmF0ZU1p
cG1hcCBzdWNjZWVkcyBvbiBQT1QKLWdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9N
QVApOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAiZ2wuZ2VuZXJhdGVN
aXBtYXAgd2l0aCBQT1QgdGV4dHVyZSBzaG91bGQgcmV0dXJuIHN1Y2NlZWQiKTsKLQotd3R1LmNs
ZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLXd0dS5jaGVja0NhbnZhcygKLSAgICBnbCwgWzAsIDE5
MiwgMTI4LCAyNTVdLAotICAgICJQT1QgY3ViZW1hcCB3aXRoIFRFWFRVUkVfTUlOX0ZJTFRFUiBz
ZXQgdG8gTElORUFSX01JUE1BUF9MSU5FQVIgc2hvdWxkIGRyYXcuIik7Ci0KLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotCi1mdW5jdGlvbiBmaWxsQ3ViZVRleHR1cmUoZ2wsIHRleCwg
d2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9sZXZlbCkgewotICBvcHRfbGV2ZWwgPSBvcHRfbGV2
ZWwgfHwgMDsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycp
OwotICBjYW52YXMud2lkdGggPSB3aWR0aDsKLSAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKLSAg
dmFyIGN0eDJkID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gIGN0eDJkLmZpbGxTdHlsZSA9
ICJyZ2JhKCIgKyBjb2xvclswXSArICIsIiArIGNvbG9yWzFdICsgIiwiICsgY29sb3JbMl0gKyAi
LCIgKyBjb2xvclszXSArICIpIjsKLSAgY3R4MmQuZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdo
dCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7Ci0gIHZhciB0
YXJnZXRzID0gWwotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCwKLSAgICBnbC5U
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKLSAgICBnbC5URVhU
VVJFX0NVQkVfTUFQX1BPU0lUSVZFX1osCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9aXTsKLSAgZm9yICh2YXIgdHQgPSAwOyB0dCA8IHRhcmdldHMubGVuZ3RoOyArK3R0KSB7Ci0g
ICAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgICAgdGFyZ2V0c1t0dF0sIG9wdF9sZXZlbCwgZ2wuUkdC
QSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgY2FudmFzKTsKLSAgfQotfTsKLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy90ZXh0dXJlLXNpemUtY3ViZS1tYXBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Rl
eHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2Y0NTRjNDNiOTFlZTU5ZjIwZmVlMjBmYTM4NzlhMTNmYjJjOGE5OC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtc2l6ZS1jdWJlLW1hcHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM1NSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29m
dHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0
ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v
ciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv
Ci0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoq
IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4K
LSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg
Rk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhF
IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0
aXRsZT5XZWJHTCB0ZXh0dXJlIHNpemUgY3ViZSBtYXAgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxl
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjU2
IiBoZWlnaHQ9IjI1NiIgc3R5bGU9IndpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7Ij48L2NhbnZh
cz4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmli
dXRlIHZlYzQgdlBvc2l0aW9uOwotdW5pZm9ybSBtYXQ0IHJvdGF0aW9uOwotdmFyeWluZyB2ZWMz
IHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsK
LSAgICB2ZWM0IGRpcmVjdGlvbiA9IHZlYzQodlBvc2l0aW9uLnggKiAwLjUsIHZQb3NpdGlvbi55
ICogMC41LCAxLCAxKTsKLSAgICB0ZXhDb29yZCA9IG5vcm1hbGl6ZSgocm90YXRpb24gKiBkaXJl
Y3Rpb24pLnh5eik7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKLXVuaWZvcm0g
c2FtcGxlckN1YmUgdGV4OwotdmFyeWluZyB2ZWMzIHRleENvb3JkOwotdm9pZCBtYWluKCkKLXsK
LSAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlQ3ViZSh0ZXgsIG5vcm1hbGl6ZSh0ZXhDb29yZCkp
OwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIGNhbnZhczsKLWRl
c2NyaXB0aW9uKCJDaGVja3MgaXNzdWVzIHdpdGggc2l6ZSBvZiBjdWJlIG1hcCB0ZXh0dXJlcyIp
OwotZGVidWcoIiIpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKLQotdmFyIGdsID0gd3R1LmNyZWF0
ZTNEQ29udGV4dChjYW52YXMpOwotd3R1LnNldHVwVW5pdFF1YWQoZ2wsIDAsIDEpOwotdmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAotICAgIGdsLAotICAgIFsndnNoYWRlcicsICdmc2hh
ZGVyJ10sCi0gICAgWyd2UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sIFswLCAxXSk7Ci12YXIgcm90
TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJyb3RhdGlvbiIpOwotCi1nbC5k
aXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotZ2wuZGlzYWJsZShnbC5CTEVORCk7Ci0KLXZhciBtYXhT
aXplID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUpOwotZGVi
dWcoIm1heCBjdWJlIG1hcCBzaXplOiAiICsgbWF4U2l6ZSk7Ci1tYXhTaXplID0gTWF0aC5taW4o
NTEyLCBtYXhTaXplKTsKLQotLy8gYSBjdWJlIG1hcCBvZiA1MTJ4NTEyIHRha2VzIDZtZWcuIEkn
bSBhc3N1bWluZyBpdCdzIG5vdAotLy8gdW5yZWFzb25hYmxlIHRvIGV4cGVjdCB0byBiZSBhYmxl
IHRvIGFsbG9jYXRlIGEgNm1lZyB0ZXh0dXJlCi0KLXZhciBjb2xvcnMgPSBbCi0gIHtuYW1lOiAn
cmVkJywgICAgIGNvbG9yOiBbMjU1LCAgIDAsICAgMCwgMjU1XX0sCi0gIHtuYW1lOiAnZ3JlZW4n
LCAgIGNvbG9yOiBbICAwLCAyNTUsICAgMCwgMjU1XX0sCi0gIHtuYW1lOiAnYmx1ZScsICAgIGNv
bG9yOiBbICAwLCAgIDAsIDI1NSwgMjU1XX0sCi0gIHtuYW1lOiAneWVsbG93JywgIGNvbG9yOiBb
MjU1LCAyNTUsICAgMCwgMjU1XX0sCi0gIHtuYW1lOiAnY3lhbicsICAgIGNvbG9yOiBbICAwLCAy
NTUsIDI1NSwgMjU1XX0sCi0gIHtuYW1lOiAnbWFnZW50YScsIGNvbG9yOiBbMjU1LCAgIDAsIDI1
NSwgMjU1XX0KLV07Ci0KLXZhciB0YXJnZXRzID0gWwotICBnbC5URVhUVVJFX0NVQkVfTUFQX1BP
U0lUSVZFX1gsCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAgZ2wuVEVYVFVS
RV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ks
Ci0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgZ2wuVEVYVFVSRV9DVUJFX01B
UF9ORUdBVElWRV9aXTsKLQotdmFyIHJvdGF0aW9ucyA9IFsKLSAge2F4aXM6IFswLCAxLCAwXSwg
YW5nbGU6ICBNYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAtTWF0aC5Q
SSAvIDJ9LAotICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyAyfSwKLSAge2F4
aXM6IFsxLCAwLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMCwgMSwgMF0s
IGFuZ2xlOiAgMH0sCi0gIHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgTWF0aC5QSX0sCi1dOwot
Ci12YXIgaGFsZlJvdGF0aW9ucyA9IFsKLSAge2NvbG9yczogWzMsIDRdLCByb3RhdGlvbnM6IFt7
YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyA0fV19LAotICB7Y29sb3JzOiBbNCwg
Ml0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDR9XX0s
Ci0gIHtjb2xvcnM6IFs1LCAzXSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6
ICBNYXRoLlBJIC8gNCAqIDN9XX0sCi0gIHtjb2xvcnM6IFsyLCA1XSwgcm90YXRpb25zOiBbe2F4
aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNCAqIDN9XX0sCi0gIHtjb2xvcnM6IFsz
LCAwXSwgcm90YXRpb25zOiBbe2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gMn0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6
ICBNYXRoLlBJIC8gNH1dfSwKLSAge2NvbG9yczogWzAsIDJdLCByb3RhdGlvbnM6IFt7YXhpczog
WzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGguUEkgLyA0fV19LAotXTsKLQot
dmFyIGNvdW50ID0gMDsKLXZhciBzaXplQ291bnQgPSAwOwotCi10ZXN0KCk7Ci0KLWZ1bmN0aW9u
IHRlc3QoKSB7Ci0gIHZhciBzaXplID0gTWF0aC5wb3coMiwgc2l6ZUNvdW50KTsKLSAgaWYgKHNp
emUgPiBtYXhTaXplIHx8ICF0ZXN0U2l6ZShzaXplKSkgewotICAgIGZpbmlzaFRlc3QoKTsKLSAg
fSBlbHNlIHsKLSAgICArK3NpemVDb3VudDsKLSAgICBzZXRUaW1lb3V0KHRlc3QsIDApOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTaXplKHNpemUpIHsKLSAgZGVidWcoIiIpOwotICBkZWJ1Zygi
dGVzdGluZyBzaXplOiAiICsgc2l6ZSk7Ci0gIHZhciBjYW52YXNTaXplID0gTWF0aC5tYXgoc2l6
ZSAvIDQsIDIpOwotICBjYW52YXMud2lkdGggPSBjYW52YXNTaXplOwotICBjYW52YXMuaGVpZ2h0
ID0gY2FudmFzU2l6ZTsKLSAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzU2l6ZSwgY2FudmFzU2l6
ZSk7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfQ1VCRV9NQVAsIHRleCk7Ci0KLSAgLy8gU2VlbXMgbGlrZSBJIHNob3VsZCBiZSB1
c2luZyBMSU5FQVIgaGVyZSB3aXRoIHNvbWUgb3RoZXIgbWF0aAotICAvLyB0byBtYWtlIHN1cmUg
SSBnZXQgbW9yZSBtaXAgY292ZXJhZ2UgYnV0IHRoYXQncyBlYXNpZXIgc2FpZAotICAvLyB0aGFu
IGRvbmUuCi0KLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQLCBnbC5URVhU
VVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfQ1VCRV9NQVAsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0KLSAgZm9y
ICh2YXIgamogPSAwOyBqaiA8IDI7ICsramopIHsKLSAgICBmb3IgKHZhciB0dCA9IDA7IHR0IDwg
dGFyZ2V0cy5sZW5ndGg7ICsrdHQpIHsKLSAgICAgIHZhciBjb2xvciA9IGNvbG9yc1sodHQgKyBj
b3VudCkgJSBjb2xvcnMubGVuZ3RoXTsKLSAgICAgIGZpbGxMZXZlbCh0YXJnZXRzW3R0XSwgMCwg
c2l6ZSwgY29sb3IuY29sb3IpOwotICAgIH0KLSAgICBpZiAoamogPT0gMSkgewotICAgICAgZGVi
dWcoInVzZSBtaXBtYXAiKTsKLSAgICAgIGdsLnRleFBhcmFtZXRlcmkoCi0gICAgICAgICAgZ2wu
VEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLAotICAgICAgICAgIGdsLk5F
QVJFU1RfTUlQTUFQX05FQVJFU1QpOwotICAgICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVS
RV9DVUJFX01BUCk7Ci0gICAgfQotCi0gICAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7Ci0gICAg
aWYgKGVyciA9PSBnbC5PVVRfT0ZfTUVNT1JZKSB7Ci0gICAgICBkZWJ1Zygib3V0IG9mIG1lbW9y
eSIpOwotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoZXJyICE9IGdsLk5PX0VS
Uk9SKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJ1bmV4cGVjdGVkIGdsIGVycm9yOiAiICsgd3R1Lmds
RW51bVRvU3RyaW5nKGdsLCBlcnIpKTsKLSAgICB9Ci0KLQotICAgIGZvciAodmFyIHJyID0gMDsg
cnIgPCByb3RhdGlvbnMubGVuZ3RoOyArK3JyKSB7Ci0gICAgICB2YXIgcm90ID0gcm90YXRpb25z
W3JyXTsKLSAgICAgIHZhciBjb2xvciA9IGNvbG9yc1socnIgKyBjb3VudCkgJSBjb2xvcnMubGVu
Z3RoXTsKLSAgICAgIHZhciByb3RNYXQgPSBheGlzUm90YXRpb24ocm90LmF4aXMsIHJvdC5hbmds
ZSk7Ci0gICAgICBnbC51bmlmb3JtTWF0cml4NGZ2KHJvdExvYywgZmFsc2UsIHJvdE1hdCk7Ci0g
ICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotICAgICAgd3R1LmNoZWNrQ2FudmFz
KAotICAgICAgICAgIGdsLCBjb2xvci5jb2xvciwKLSAgICAgICAgICB3dHUuZ2xFbnVtVG9TdHJp
bmcoZ2wsIHRhcmdldHNbcnJdKSArICIgc2hvdWxkIGJlICIgKyBjb2xvci5uYW1lKTsKLSAgICB9
Ci0KLSAgICBmb3IgKHZhciByciA9IDA7IHJyIDwgaGFsZlJvdGF0aW9ucy5sZW5ndGg7ICsrcnIp
IHsKLSAgICAgIHZhciBoID0gaGFsZlJvdGF0aW9uc1tycl07Ci0gICAgICB2YXIgcm90cyA9IGgu
cm90YXRpb25zOwotICAgICAgdmFyIHJvdE1hdCA9IGF4aXNSb3RhdGlvbihyb3RzWzBdLmF4aXMs
IHJvdHNbMF0uYW5nbGUpOwotICAgICAgZm9yICh2YXIgaWkgPSAxOyBpaSA8IHJvdHMubGVuZ3Ro
OyArK2lpKSB7Ci0gICAgICAgIHZhciB0bXBNYXQgPSBheGlzUm90YXRpb24ocm90c1tpaV0uYXhp
cywgcm90c1tpaV0uYW5nbGUpOwotICAgICAgICB2YXIgcm90TWF0ID0gbXVsTWF0cml4KHRtcE1h
dCwgcm90TWF0KTsKLSAgICAgIH0KLSAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYocm90TG9jLCBm
YWxzZSwgcm90TWF0KTsKLSAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0KLSAg
ICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCAyOyArK2lpKSB7Ci0gICAgICAgIGNoZWNrUmVjdCgK
LSAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBjYW52YXNTaXplIC8gMiAqIGlpLAotICAgICAg
ICAgICAgY2FudmFzU2l6ZSwKLSAgICAgICAgICAgIGNhbnZhc1NpemUgLyAyLAotICAgICAgICAg
ICAgY29sb3JzWyhoLmNvbG9yc1tpaV0gKyBjb3VudCkgJSBjb2xvcnMubGVuZ3RoXSk7Ci0gICAg
ICB9Ci0gICAgfQotICAgICsrY291bnQ7Ci0gIH0KLQotICBnbC5kZWxldGVUZXh0dXJlKHRleCk7
Ci0gIHJldHVybiB0cnVlOwotfQotCi1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
U2hvdWxkIGJlIG5vIGVycm9ycy4iKTsKLQotZnVuY3Rpb24gY2hlY2tSZWN0KHgsIHksIHdpZHRo
LCBoZWlnaHQsIGNvbG9yKSB7Ci0gIHd0dS5jaGVja0NhbnZhc1JlY3QoCi0gICAgICAgZ2wsCi0g
ICAgICAgeCwKLSAgICAgICB5LAotICAgICAgIHdpZHRoLAotICAgICAgIGhlaWdodCwKLSAgICAg
ICBjb2xvci5jb2xvciwKLSAgICAgICAiIiArIHggKyAiLCAiICsgeSArICIsICIgKyB3aWR0aCAr
ICIsICIgKyBoZWlnaHQgKwotICAgICAgICIgc2hvdWxkIGJlICIgKyBjb2xvci5uYW1lKTsKLX0K
LQotZnVuY3Rpb24gZmlsbExldmVsKHRhcmdldCwgbGV2ZWwsIHNpemUsIGNvbG9yKSB7Ci0gIHZh
ciBudW1QaXhlbHMgPSBzaXplICogc2l6ZTsKLSAgdmFyIHBpeGVscyA9IG5ldyBVaW50OEFycmF5
KG51bVBpeGVscyAqIDQpOwotICB2YXIgcGl4ZWxSb3cgPSBuZXcgVWludDhBcnJheShzaXplICog
NCk7Ci0gIGZvciAodmFyIGpqID0gMDsgamogPCBzaXplOyArK2pqKSB7Ci0gICAgdmFyIG9mZiA9
IGpqICogNDsKLSAgICBwaXhlbFJvd1tvZmYgKyAwXSA9IGNvbG9yWzBdOwotICAgIHBpeGVsUm93
W29mZiArIDFdID0gY29sb3JbMV07Ci0gICAgcGl4ZWxSb3dbb2ZmICsgMl0gPSBjb2xvclsyXTsK
LSAgICBwaXhlbFJvd1tvZmYgKyAzXSA9IGNvbG9yWzNdOwotICB9Ci0gIGZvciAodmFyIGpqID0g
MDsgamogPCBzaXplOyArK2pqKSB7Ci0gICAgdmFyIG9mZiA9IGpqICogc2l6ZSAqIDQ7Ci0gICAg
cGl4ZWxzLnNldChwaXhlbFJvdywgb2ZmKTsKLSAgfQotICBnbC50ZXhJbWFnZTJEKAotICAgICAg
dGFyZ2V0LCBsZXZlbCwgZ2wuUkdCQSwgc2l6ZSwgc2l6ZSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwKLSAgICAgIHBpeGVscyk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50TWF0KG1hdCkgewot
ICBkZWJ1ZygiIiArIG1hdFswXSArICIsICIgKyBtYXRbMV0gKyAiLCAiICsgbWF0WzJdICsgIiwg
IiArIG1hdFszXSArICIsICIpOwotICBkZWJ1ZygiIiArIG1hdFs0XSArICIsICIgKyBtYXRbNV0g
KyAiLCAiICsgbWF0WzZdICsgIiwgIiArIG1hdFs3XSArICIsICIpOwotICBkZWJ1ZygiIiArIG1h
dFs4XSArICIsICIgKyBtYXRbOV0gKyAiLCAiICsgbWF0WzEwXSArICIsICIgKyBtYXRbMTFdICsg
IiwgIik7Ci0gIGRlYnVnKCIiICsgbWF0WzEyXSArICIsICIgKyBtYXRbMTNdICsgIiwgIiArIG1h
dFsxNF0gKyAiLCAiICsgbWF0WzE1XSArICIsICIpOwotfQotCi1mdW5jdGlvbiBheGlzUm90YXRp
b24oYXhpcywgYW5nbGUpIHsKLSAgdmFyIGRzdCA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpOwotICB2
YXIgeCA9IGF4aXNbMF07Ci0gIHZhciB5ID0gYXhpc1sxXTsKLSAgdmFyIHogPSBheGlzWzJdOwot
ICB2YXIgbiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopOwotICB4IC89IG47Ci0g
IHkgLz0gbjsKLSAgeiAvPSBuOwotICB2YXIgeHggPSB4ICogeDsKLSAgdmFyIHl5ID0geSAqIHk7
Ci0gIHZhciB6eiA9IHogKiB6OwotICB2YXIgYyA9IE1hdGguY29zKGFuZ2xlKTsKLSAgdmFyIHMg
PSBNYXRoLnNpbihhbmdsZSk7Ci0gIHZhciBvbmVNaW51c0Nvc2luZSA9IDEgLSBjOwotCi0gIGRz
dFsgMF0gPSB4eCArICgxIC0geHgpICogYzsKLSAgZHN0WyAxXSA9IHggKiB5ICogb25lTWludXND
b3NpbmUgKyB6ICogczsKLSAgZHN0WyAyXSA9IHggKiB6ICogb25lTWludXNDb3NpbmUgLSB5ICog
czsKLSAgZHN0WyAzXSA9IDA7Ci0gIGRzdFsgNF0gPSB4ICogeSAqIG9uZU1pbnVzQ29zaW5lIC0g
eiAqIHM7Ci0gIGRzdFsgNV0gPSB5eSArICgxIC0geXkpICogYzsKLSAgZHN0WyA2XSA9IHkgKiB6
ICogb25lTWludXNDb3NpbmUgKyB4ICogczsKLSAgZHN0WyA3XSA9IDA7Ci0gIGRzdFsgOF0gPSB4
ICogeiAqIG9uZU1pbnVzQ29zaW5lICsgeSAqIHM7Ci0gIGRzdFsgOV0gPSB5ICogeiAqIG9uZU1p
bnVzQ29zaW5lIC0geCAqIHM7Ci0gIGRzdFsxMF0gPSB6eiArICgxIC0genopICogYzsKLSAgZHN0
WzExXSA9IDA7Ci0gIGRzdFsxMl0gPSAwOwotICBkc3RbMTNdID0gMDsKLSAgZHN0WzE0XSA9IDA7
Ci0gIGRzdFsxNV0gPSAxOwotCi0gIHJldHVybiBkc3Q7Ci19OwotCi1mdW5jdGlvbiBtdWxNYXRy
aXgoYSwgYikgewotICB2YXIgZHN0ID0gbmV3IEZsb2F0MzJBcnJheSgxNik7Ci0gIHZhciBhMDAg
PSBhWzBdOwotICB2YXIgYTAxID0gYVsxXTsKLSAgdmFyIGEwMiA9IGFbMl07Ci0gIHZhciBhMDMg
PSBhWzNdOwotICB2YXIgYTEwID0gYVsgNCArIDBdOwotICB2YXIgYTExID0gYVsgNCArIDFdOwot
ICB2YXIgYTEyID0gYVsgNCArIDJdOwotICB2YXIgYTEzID0gYVsgNCArIDNdOwotICB2YXIgYTIw
ID0gYVsgOCArIDBdOwotICB2YXIgYTIxID0gYVsgOCArIDFdOwotICB2YXIgYTIyID0gYVsgOCAr
IDJdOwotICB2YXIgYTIzID0gYVsgOCArIDNdOwotICB2YXIgYTMwID0gYVsxMiArIDBdOwotICB2
YXIgYTMxID0gYVsxMiArIDFdOwotICB2YXIgYTMyID0gYVsxMiArIDJdOwotICB2YXIgYTMzID0g
YVsxMiArIDNdOwotICB2YXIgYjAwID0gYlswXTsKLSAgdmFyIGIwMSA9IGJbMV07Ci0gIHZhciBi
MDIgPSBiWzJdOwotICB2YXIgYjAzID0gYlszXTsKLSAgdmFyIGIxMCA9IGJbIDQgKyAwXTsKLSAg
dmFyIGIxMSA9IGJbIDQgKyAxXTsKLSAgdmFyIGIxMiA9IGJbIDQgKyAyXTsKLSAgdmFyIGIxMyA9
IGJbIDQgKyAzXTsKLSAgdmFyIGIyMCA9IGJbIDggKyAwXTsKLSAgdmFyIGIyMSA9IGJbIDggKyAx
XTsKLSAgdmFyIGIyMiA9IGJbIDggKyAyXTsKLSAgdmFyIGIyMyA9IGJbIDggKyAzXTsKLSAgdmFy
IGIzMCA9IGJbMTIgKyAwXTsKLSAgdmFyIGIzMSA9IGJbMTIgKyAxXTsKLSAgdmFyIGIzMiA9IGJb
MTIgKyAyXTsKLSAgdmFyIGIzMyA9IGJbMTIgKyAzXTsKLSAgZHN0WyAwXSA9IGEwMCAqIGIwMCAr
IGEwMSAqIGIxMCArIGEwMiAqIGIyMCArIGEwMyAqIGIzMDsKLSAgZHN0WyAxXSA9IGEwMCAqIGIw
MSArIGEwMSAqIGIxMSArIGEwMiAqIGIyMSArIGEwMyAqIGIzMTsKLSAgZHN0WyAyXSA9IGEwMCAq
IGIwMiArIGEwMSAqIGIxMiArIGEwMiAqIGIyMiArIGEwMyAqIGIzMjsKLSAgZHN0WyAzXSA9IGEw
MCAqIGIwMyArIGEwMSAqIGIxMyArIGEwMiAqIGIyMyArIGEwMyAqIGIzMzsKLSAgZHN0WyA0XSA9
IGExMCAqIGIwMCArIGExMSAqIGIxMCArIGExMiAqIGIyMCArIGExMyAqIGIzMDsKLSAgZHN0WyA1
XSA9IGExMCAqIGIwMSArIGExMSAqIGIxMSArIGExMiAqIGIyMSArIGExMyAqIGIzMTsKLSAgZHN0
WyA2XSA9IGExMCAqIGIwMiArIGExMSAqIGIxMiArIGExMiAqIGIyMiArIGExMyAqIGIzMjsKLSAg
ZHN0WyA3XSA9IGExMCAqIGIwMyArIGExMSAqIGIxMyArIGExMiAqIGIyMyArIGExMyAqIGIzMzsK
LSAgZHN0WyA4XSA9IGEyMCAqIGIwMCArIGEyMSAqIGIxMCArIGEyMiAqIGIyMCArIGEyMyAqIGIz
MDsKLSAgZHN0WyA5XSA9IGEyMCAqIGIwMSArIGEyMSAqIGIxMSArIGEyMiAqIGIyMSArIGEyMyAq
IGIzMTsKLSAgZHN0WzEwXSA9IGEyMCAqIGIwMiArIGEyMSAqIGIxMiArIGEyMiAqIGIyMiArIGEy
MyAqIGIzMjsKLSAgZHN0WzExXSA9IGEyMCAqIGIwMyArIGEyMSAqIGIxMyArIGEyMiAqIGIyMyAr
IGEyMyAqIGIzMzsKLSAgZHN0WzEyXSA9IGEzMCAqIGIwMCArIGEzMSAqIGIxMCArIGEzMiAqIGIy
MCArIGEzMyAqIGIzMDsKLSAgZHN0WzEzXSA9IGEzMCAqIGIwMSArIGEzMSAqIGIxMSArIGEzMiAq
IGIyMSArIGEzMyAqIGIzMTsKLSAgZHN0WzE0XSA9IGEzMCAqIGIwMiArIGEzMSAqIGIxMiArIGEz
MiAqIGIyMiArIGEzMyAqIGIzMjsKLSAgZHN0WzE1XSA9IGEzMCAqIGIwMyArIGEzMSAqIGIxMyAr
IGEzMiAqIGIyMyArIGEzMyAqIGIzMzsKLSAgcmV0dXJuIGRzdDsKLX07Ci0KLXZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtbGltaXQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLWxpbWl0Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzZGE5YTYzZDNlMTc4MTM0ZTIwNTk3MTU1YWNj
Nzk4ZDgyM2U1NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXNpemUtbGltaXQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE1OSArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0qKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KLSoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0qKgotKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0qKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0qKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgot
Ki8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCB0ZXh0dXJlIHNpemUgbGltaXQgY29uZm9ybWFuY2Ug
dGVzdC48L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj4gPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJleGFtcGxl
IiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHN0eWxlPSJ3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4
OyI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1kZXNjcmlwdGlvbigiQ2hlY2tz
IHRoYXQgdmFyaW91cyBzaXplcyBsaW1pdHMgb2YgdGV4dHVyZXMgIikKLXZhciBjYW52YXM7Ci0K
LWZ1bmN0aW9uIG51bUxldmVsc0Zyb21TaXplKHNpemUpIHsKLSAgdmFyIGxldmVscyA9IDA7Ci0g
IHdoaWxlICgoc2l6ZSA+PiBsZXZlbHMpID4gMCkgewotICAgICsrbGV2ZWxzOwotICB9Ci0gIHJl
dHVybiBsZXZlbHM7Ci19Ci0KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBnbCA9IHd0
dS5jcmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKLXZhciB0ZXN0cyA9IFsKLSAgeyBmb3JtYXQ6
IGdsLkFMUEhBLCAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwgICAgICAgICAgc2l6
ZTogMSwgZGF0YVR5cGU6IFVpbnQ4QXJyYXkgIH0sCi0gIHsgZm9ybWF0OiBnbC5MVU1JTkFOQ0Us
ICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsICAgICAgICAgIHNpemU6IDEsIGRhdGFUeXBl
OiBVaW50OEFycmF5ICB9LAotICB7IGZvcm1hdDogZ2wuTFVNSU5BTkNFX0FMUEhBLCB0eXBlOiBn
bC5VTlNJR05FRF9CWVRFLCAgICAgICAgICBzaXplOiAyLCBkYXRhVHlwZTogVWludDhBcnJheSAg
fSwKLSAgeyBmb3JtYXQ6IGdsLlJHQiwgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllU
RSwgICAgICAgICAgc2l6ZTogMywgZGF0YVR5cGU6IFVpbnQ4QXJyYXkgIH0sCi0gIHsgZm9ybWF0
OiBnbC5SR0IsICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81LCAgIHNp
emU6IDEsIGRhdGFUeXBlOiBVaW50MTZBcnJheSB9LAotICB7IGZvcm1hdDogZ2wuUkdCQSwgICAg
ICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLCAgICAgICAgICBzaXplOiA0LCBkYXRhVHlw
ZTogVWludDhBcnJheSAgfSwKLSAgeyBmb3JtYXQ6IGdsLlJHQkEsICAgICAgICAgICAgdHlwZTog
Z2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwgc2l6ZTogMSwgZGF0YVR5cGU6IFVpbnQxNkFycmF5
IH0sCi0gIHsgZm9ybWF0OiBnbC5SR0JBLCAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NI
T1JUXzVfNV81XzEsIHNpemU6IDEsIGRhdGFUeXBlOiBVaW50MTZBcnJheSB9Ci1dOwotCi0vLyBO
b3RlOiBXZSBleHByZXNzbHkgb25seSB1c2UgMiB0ZXh0dXJlcyBiZWNhdXNlIGZpcnN0IGEgdGV4
dHVyZSB3aWxsIGJlIGRlZmluZWQKLS8vIGFzIHVzaW5nIGFsbCBtaXBzIG9mIDEgZm9ybWF0LCB0
aGVuIGZvciBhIG1vbWVudCBpdCB3aWxsIGhhdmUgbWl4ZWQgZm9ybWF0cyB3aGljaAotLy8gbWF5
IHVuY292ZXIgYnVncy4KLXZhciB0YXJnZXRzID0gWwotICB7IHRhcmdldDogZ2wuVEVYVFVSRV8y
RCwKLSAgICBtYXhTaXplOiBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1RFWFRVUkVfU0laRSksCi0g
ICAgbWF4TGV2ZWw6IDEwMDAsCi0gICAgdGV4OiBnbC5jcmVhdGVUZXh0dXJlKCksCi0gICAgdGFy
Z2V0czogW2dsLlRFWFRVUkVfMkRdCi0gIH0sCi0gIHsgdGFyZ2V0OiBnbC5URVhUVVJFX0NVQkVf
TUFQLAotICAgIG1heFNpemU6IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfQ1VCRV9NQVBfVEVYVFVS
RV9TSVpFKSwKLSAgICBtYXhMZXZlbDogNSwKLSAgICB0ZXg6IGdsLmNyZWF0ZVRleHR1cmUoKSwK
LSAgICB0YXJnZXRzOiBbCi0gICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0g
ICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsCi0gICAgICBnbC5URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1ksCi0gICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ks
Ci0gICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1osCi0gICAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1oKLSAgICBdCi0gIH0KLV07Ci0KLWdsLnBpeGVsU3RvcmVpKGds
LlVOUEFDS19BTElHTk1FTlQsIDEpOwotCi12YXIgdHJnID0gMDsKLXZhciB0dCA9IDA7Ci1ydW5O
ZXh0VGVzdCgpOwotCi1mdW5jdGlvbiBydW5OZXh0VGVzdCgpIHsKLSAgdmFyIHQgPSB0YXJnZXRz
W3RyZ107Ci0KLSAgaWYgKHR0ID09IDApIHsKLSAgICB2YXIgdGV4ID0gdC50ZXg7Ci0gICAgZ2wu
YmluZFRleHR1cmUodC50YXJnZXQsIHRleCk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWco
Im1heCBzaXplIGZvciAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0LnRhcmdldCkgKyAiOiAi
ICsgdC5tYXhTaXplKTsKLSAgICB2YXIgbnVtTGV2ZWxzID0gbnVtTGV2ZWxzRnJvbVNpemUodC5t
YXhTaXplKTsKLSAgICBkZWJ1ZygibnVtIGxldmVscyAiICsgbnVtTGV2ZWxzKTsKLSAgfQotCi0g
IHZhciB0ZXN0ID0gdGVzdHNbdHRdOwotICB0ZXN0Rm9ybWF0VHlwZSh0LCB0ZXN0KTsKLSAgKyt0
dDsKLSAgaWYgKHR0ID09IHRlc3RzLmxlbmd0aCkgewotICAgIHR0ID0gMDsKLSAgICArK3RyZzsK
LSAgICBpZiAodHJnID09IHRhcmdldHMubGVuZ3RoKSB7Ci0gICAgICBmaW5pc2hUZXN0KCk7Ci0g
ICAgICByZXR1cm47Ci0gICAgfQotICB9Ci0gIHd0dS53YWl0Rm9yQ29tcG9zaXRlKGdsLCBydW5O
ZXh0VGVzdCkKLX0KLQotZnVuY3Rpb24gdGVzdEZvcm1hdFR5cGUodCwgdGVzdCkgewotICBkZWJ1
ZygiIik7Ci0gIGRlYnVnKCJ0ZXN0aW5nOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0
LmZvcm1hdCkgKyAiLCAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LnR5cGUpKTsKLSAg
Zm9yICh2YXIgaiA9IDA7IGogPCB0LnRhcmdldHMubGVuZ3RoOyArK2opIHsKLSAgICB2YXIgdGFy
Z2V0ID0gdC50YXJnZXRzW2pdOwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zyh3dHUuZ2xFbnVt
VG9TdHJpbmcoZ2wsIHRhcmdldCkpOwotICAgIHZhciBudW1MZXZlbHMgPSBudW1MZXZlbHNGcm9t
U2l6ZSh0Lm1heFNpemUpOwotICAgIHZhciBudW1UZXN0TGV2ZWxzID0gTWF0aC5taW4obnVtTGV2
ZWxzLCB0Lm1heExldmVsKTsKLSAgICBmb3IgKHZhciBsID0gMDsgbCA8IG51bVRlc3RMZXZlbHM7
ICsrbCkgewotICAgICAgLy8gRG8gYm90dG9tIGxldmVscyBmaXJzdDsKLSAgICAgIHZhciBzaXpl
ID0gMSA8PCBsOwotICAgICAgdmFyIGxldmVsID0gbnVtTGV2ZWxzIC0gbCAtIDE7Ci0gICAgICB2
YXIgb3RoZXJEaW1lbnNpb24gPSB0LnRhcmdldCA9PSBnbC5URVhUVVJFXzJEID8gMSA6IHNpemU7
Ci0gICAgICB2YXIgYmFkU2l6ZSA9IHNpemUgKiAyOwotICAgICAgdmFyIGJhZE90aGVyRGltZW5z
aW9uID0gdC50YXJnZXQgPT0gZ2wuVEVYVFVSRV8yRCA/IDEgOiBiYWRTaXplOwotICAgICAgdmFy
IHBpeGVscyA9IG5ldyB0ZXN0LmRhdGFUeXBlKGJhZFNpemUgKiBiYWRPdGhlckRpbWVuc2lvbiAq
IHRlc3Quc2l6ZSk7Ci0gICAgICBnbC50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHRlc3QuZm9y
bWF0LCBzaXplLCBvdGhlckRpbWVuc2lvbiwgMCwgdGVzdC5mb3JtYXQsIHRlc3QudHlwZSwgcGl4
ZWxzKTsKLSAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ0aGVyZSBzaG91
bGQgYmUgbm8gZXJyb3IgZm9yIGxldmVsOiAiICsgbGV2ZWwgKyAiICIgKyBzaXplICsgIngiICsg
b3RoZXJEaW1lbnNpb24pOwotICAgICAgZ2wudGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB0ZXN0
LmZvcm1hdCwgb3RoZXJEaW1lbnNpb24sIHNpemUsIDAsIHRlc3QuZm9ybWF0LCB0ZXN0LnR5cGUs
IHBpeGVscyk7Ci0gICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAidGhlcmUg
c2hvdWxkIGJlIG5vIGVycm9yIGZvciBsZXZlbDogIiArIGxldmVsICsgIiAiICsgb3RoZXJEaW1l
bnNpb24gKyAieCIgKyBzaXplKTsKLSAgICAgIGdsLnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwg
dGVzdC5mb3JtYXQsIGJhZFNpemUsIGJhZE90aGVyRGltZW5zaW9uLCAwLCB0ZXN0LmZvcm1hdCwg
dGVzdC50eXBlLCBwaXhlbHMpOwotICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X1ZBTFVFLCAic2hvdWxkIGdlbmVyYXRlIElOVkFMSURfVkFMVUUgZm9yIGxldmVsOiAiICsgbGV2
ZWwgKyAiICIgKyBiYWRTaXplICsgIngiICsgYmFkT3RoZXJEaW1lbnNpb24pOwotICAgICAgZ2wu
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB0ZXN0LmZvcm1hdCwgYmFkT3RoZXJEaW1lbnNpb24s
IGJhZFNpemUsIDAsIHRlc3QuZm9ybWF0LCB0ZXN0LnR5cGUsIHBpeGVscyk7Ci0gICAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJzaG91bGQgZ2VuZXJhdGUgSU5WQUxJ
RF9WQUxVRSBmb3IgbGV2ZWw6ICIgKyBsZXZlbCArICIgIiArIGJhZE90aGVyRGltZW5zaW9uICsg
IngiICsgYmFkU2l6ZSk7Ci0gICAgfQotICB9Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwZTY3ZWQ3YmQyZjJjMzI3ODliMGQ2MGQyYWE4YjNiNzlmN2MwNjdmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvdGV4dHVyZS1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMzggKzAsMCBAQAotPCEt
LQotCi0vKgotKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoq
Ci0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
LSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVy
ZSBzaXplIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBzdHlsZT0id2lkdGg6
IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBl
PSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247Ci1hdHRyaWJ1
dGUgdmVjMyB0ZXhDb29yZDA7Ci12YXJ5aW5nIHZlYzMgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQot
ewotICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOwotICAgIHRleENvb3JkID0gdGV4Q29vcmQw
OwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
ZnJhZ21lbnQiPgotcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Ci11bmlmb3JtIHNhbXBsZXJDdWJl
IHRleDsKLXZhcnlpbmcgdmVjMyB0ZXhDb29yZDsKLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfRnJh
Z0NvbG9yID0gdGV4dHVyZUN1YmUodGV4LCBub3JtYWxpemUodGV4Q29vcmQpKTsKLX0KLTwvc2Ny
aXB0PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLWRlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCB2
YXJpb3VzIHNpemVzIG9mIHRleHR1cmVzIHJlbmRlciIpCi12YXIgY2FudmFzOwotCi12YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxl
Iik7Ci12YXIgcHJvZ3JhbTJEID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLXZhciBwcm9n
cmFtQ3ViZU1hcCA9IHd0dS5zZXR1cFByb2dyYW0oCi0gICAgZ2wsIFsndnNoYWRlcicsICdmc2hh
ZGVyJ10sIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLCBbMCwgMV0pOwotZ2wuZGlzYWJsZShn
bC5ERVBUSF9URVNUKTsKLWdsLmRpc2FibGUoZ2wuQkxFTkQpOwotdmFyIHRleCA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKLXZhciBtYXgyRFNpemUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1RFWFRV
UkVfU0laRSk7Ci12YXIgbWF4Q3ViZU1hcFNpemUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0NV
QkVfTUFQX1RFWFRVUkVfU0laRSk7Ci1kZWJ1ZygiTUFYX1RFWFRVUkVfU0laRToiICsgbWF4MkRT
aXplKTsKLWRlYnVnKCJNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFOiIgKyBtYXhDdWJlTWFwU2l6
ZSk7Ci0vLyBBc3N1bWluZyAyMDQ4eDIwNDh4UkdCQSAoMjJtZWcgd2l0aCBtaXBzKSB3aWxsIHJ1
biBvbiBhbGwgV2ViR0wgcGxhdGZvcm1zCi12YXIgbWF4MkRTcXVhcmVTaXplID0gTWF0aC5taW4o
bWF4MkRTaXplLCAyMDQ4KTsKLS8vIEknZCBwcmVmZXIgdGhpcyB0byBiZSAyMDQ4IGJ1dCB0aGF0
J3MgMTZtZWcgeCA2IGZhY2VzIG9yIDEyOG1lZyAod2l0aCBtaXBzKQotLy8gMTAyNCBpcyAzMy41
IG1lZyAod2l0aCBtaXBzKQotdmFyIG1heEN1YmVNYXBTaXplID0gTWF0aC5taW4obWF4Q3ViZU1h
cFNpemUsIDEwMjQpOwotCi12YXIgY29sb3JzID0gWwotICB7IG5hbWU6ICJncmVlbiIsIHJnYmE6
IFswLCAwLCAyNTUsIDI1NV0gfSwKLSAgeyBuYW1lOiAicmVkIiwgcmdiYTogWzI1NSwgMCwgMCwg
MjU1XSB9LAotICB7IG5hbWU6ICJibHVlIiwgcmdiYTogWzAsIDI1NSwgMCwgMjU1XSB9LAotICB7
IG5hbWU6ICJ5ZWxsb3ciLCByZ2JhOiBbMjU1LCAyNTUsIDAsIDI1NV0gfSwKLSAgeyBuYW1lOiAi
bWFnZW50YSIsIHJnYmE6IFsyNTUsIDAsIDI1NSwgMjU1XSB9LAotICB7IG5hbWU6ICJjeWFuIiwg
cmdiYTogWzAsIDI1NSwgMjU1LCAyNTVdIH0KLV07Ci0KLXZhciBjb3VudCA9IDA7Ci12YXIgcG93
ZXIgPSAwOwotcnVuVGVzdCgpOwotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICBmdW5jdGlvbiBk
b1Rlc3QoKSB7Ci0gICAgdmFyIHNpemUgPSBNYXRoLnBvdygyLCBwb3dlcik7Ci0gICAgaWYgKHNp
emUgPiBtYXgyRFNpemUpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgZ2wudXNl
UHJvZ3JhbShwcm9ncmFtMkQpOwotICAgIGlmICghY2hlY2tUZXh0dXJlKHNpemUsIDEsIGZhbHNl
KSkgcmV0dXJuIGZhbHNlOwotICAgIGlmICghY2hlY2tUZXh0dXJlKDEsIHNpemUsIGZhbHNlKSkg
cmV0dXJuIGZhbHNlOwotICAgIGlmIChzaXplIDw9IG1heDJEU3F1YXJlU2l6ZSkgewotICAgICAg
aWYgKCFjaGVja1RleHR1cmUoc2l6ZSwgc2l6ZSwgZmFsc2UpKSB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHNpemUgPD0gbWF4Q3ViZU1hcFNpemUpIHsK
LSAgICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbUN1YmVNYXApOwotICAgICAgaWYgKCFjaGVja1Rl
eHR1cmUoc2l6ZSwgc2l6ZSwgdHJ1ZSkpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
fQotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotCi0gIGlmIChkb1Rlc3QoKSkgewotICAg
ICsrcG93ZXI7Ci0gICAgc2V0VGltZW91dChydW5UZXN0LCAwKTsKLSAgfSBlbHNlIHsKLSAgICBm
aW5pc2hUZXN0KCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2hlY2tUZXh0dXJlKHdpZHRoLCBoZWln
aHQsIGN1YmVNYXApIHsKLSAgZGVidWcoIiIpOwotICBjb3VudCA9IChjb3VudCArIDEpICUgY29s
b3JzLmxlbmd0aDsKLSAgdmFyIGNvbG9yID0gY29sb3JzW2NvdW50XTsKLSAgdmFyIHRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKLSAgdmFyIHRhcmdldCA9IGN1YmVNYXAgPyBnbC5URVhUVVJFX0NV
QkVfTUFQIDogZ2wuVEVYVFVSRV8yRDsKLSAgdmFyIHR5cGUgPSBjdWJlTWFwID8gImN1YmUgbWFw
IiA6ICIyRCB0ZXh0dXJlIjsKLSAgZGVidWcoImNoZWNrICIgKyB3aWR0aCArICIsICIgKyBoZWln
aHQgKyAiICIgKyB0eXBlKTsKLSAgZ2wuYmluZFRleHR1cmUodGFyZ2V0LCB0ZXgpOwotICBnbC50
ZXhQYXJhbWV0ZXJpKHRhcmdldCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwot
ICBnbC50ZXhQYXJhbWV0ZXJpKHRhcmdldCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RP
X0VER0UpOwotICBnbC50ZXhQYXJhbWV0ZXJpKHRhcmdldCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGds
LkNMQU1QX1RPX0VER0UpOwotICBmaWxsTGV2ZWwoMCwgd2lkdGgsIGhlaWdodCwgY29sb3Iucmdi
YSwgY3ViZU1hcCk7Ci0gIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICBpZiAoZXJyID09IGds
Lk9VVF9PRl9NRU1PUlkpIHsKLSAgICBkZWJ1Zygib3V0IG9mIG1lbW9yeSIpOwotICAgIHJldHVy
biBmYWxzZTsKLSAgfQotICBpZiAoZXJyICE9IGdsLk5PX0VSUk9SKSB7Ci0gICAgdGVzdEZhaWxl
ZCgidW5leHBlY3RlZCBnbCBlcnJvcjogIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgZXJyKSk7
Ci0gIH0KLSAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgd3R1LmNoZWNrQ2FudmFz
KGdsLCBjb2xvci5yZ2JhLAotICAgICAgdHlwZSArICIgb2Ygc2l6ZSAiICsgd2lkdGggKyAieCIg
KyBoZWlnaHQgKyAiIHdpdGggbm8gbWlwcyBzaG91bGQgZHJhdyB3aXRoICIgKyBjb2xvci5uYW1l
KTsKLSAgY291bnQgPSAoY291bnQgKyAxKSAlIGNvbG9ycy5sZW5ndGg7Ci0gIGNvbG9yID0gY29s
b3JzW2NvdW50XTsKLSAgZmlsbExldmVsKDAsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLnJnYmEsIGN1
YmVNYXApOwotICBnbC5nZW5lcmF0ZU1pcG1hcCh0YXJnZXQpOwotICB2YXIgZXJyID0gZ2wuZ2V0
RXJyb3IoKTsKLSAgaWYgKGVyciA9PSBnbC5PVVRfT0ZfTUVNT1JZKSB7Ci0gICAgZGVidWcoIm91
dCBvZiBtZW1vcnkiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgaWYgKGVyciAhPSBnbC5O
T19FUlJPUikgewotICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZ2wgZXJyb3I6ICIgKyB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIGVycikpOwotICB9Ci0gIGdsLnRleFBhcmFtZXRlcmkodGFyZ2V0
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCk7Ci0gIHd0
dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgY29sb3Iu
cmdiYSwKLSAgICAgIHR5cGUgKyAiIG9mIHNpemUgIiArIHdpZHRoICsgIngiICsgaGVpZ2h0ICsg
IiB3aXRoIG1pcHMgc2hvdWxkIGRyYXcgd2l0aCAiICsgY29sb3IubmFtZSk7Ci0KLSAgY291bnQg
PSAoY291bnQgKyAxKSAlIGNvbG9ycy5sZW5ndGg7Ci0gIGNvbG9yID0gY29sb3JzW2NvdW50XTsK
LSAgZmlsbExldmVsKDAsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLnJnYmEsIGN1YmVNYXAsIHRydWUp
OwotICBnbC5nZW5lcmF0ZU1pcG1hcCh0YXJnZXQpOwotCi0gIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCk7Ci0gIHd0dS5jaGVja0NhbnZhcyhnbCwgY29sb3IucmdiYSwKLSAgICAgIHR5cGUg
KyAiIG9mIHNpemUgIiArIHdpZHRoICsgIngiICsgaGVpZ2h0ICsgIiB3aXRoIG1pcHMgc2hvdWxk
IGRyYXcgd2l0aCAiICsgY29sb3IubmFtZSk7Ci0KLSAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwot
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycy4i
KTsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIGZpbGxMZXZlbChsZXZlbCwgd2lkdGgs
IGhlaWdodCwgY29sb3IsIG9wdF9jdWJlbWFwLCBvcHRfc3ViVGV4KSB7Ci0gIHZhciBudW1QaXhl
bHMgPSB3aWR0aCAqIGhlaWdodDsKLSAgdmFyIHBpeGVscyA9IG51bGw7Ci0gIHZhciBsYXJnZURp
bSA9IE1hdGgubWF4KHdpZHRoLCBoZWlnaHQpOwotICB2YXIgc21hbGxEaW0gPSBNYXRoLm1pbih3
aWR0aCwgaGVpZ2h0KTsKLQotICB2YXIgcGl4ZWxSb3cgPSBuZXcgVWludDhBcnJheShsYXJnZURp
bSAqIDQpOwotICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgbGFyZ2VEaW07ICsramopIHsKLSAgICB2
YXIgb2ZmID0gamogKiA0OwotICAgIHBpeGVsUm93W29mZiArIDBdID0gY29sb3JbMF07Ci0gICAg
cGl4ZWxSb3dbb2ZmICsgMV0gPSBjb2xvclsxXTsKLSAgICBwaXhlbFJvd1tvZmYgKyAyXSA9IGNv
bG9yWzJdOwotICAgIHBpeGVsUm93W29mZiArIDNdID0gY29sb3JbM107Ci0gIH0KLQotICBpZiAo
bGFyZ2VEaW0gPT0gbnVtUGl4ZWxzKSB7Ci0gICAgcGl4ZWxzID0gcGl4ZWxSb3c7Ci0gIH0gZWxz
ZSB7Ci0gICAgdmFyIHBpeGVscyA9IG5ldyBVaW50OEFycmF5KG51bVBpeGVscyAqIDQpOwotICAg
IGZvciAodmFyIGpqID0gMDsgamogPCBzbWFsbERpbTsgKytqaikgewotICAgICAgdmFyIG9mZiA9
IGpqICogbGFyZ2VEaW0gKiA0OwotICAgICAgcGl4ZWxzLnNldChwaXhlbFJvdywgb2ZmKTsKLSAg
ICB9Ci0gIH0KLSAKLSAgdmFyIHRhcmdldHMgPSBvcHRfY3ViZW1hcCA/IFsKLSAgICBnbC5URVhU
VVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElW
RV9YLAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKLSAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9a
LAotICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl0gOgotICAgIFtnbC5URVhUVVJF
XzJEXTsKLQotICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGFyZ2V0cy5sZW5ndGg7ICsraWkpIHsK
LSAgICAvLyBkZWJ1Zyh3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRhcmdldHNbaWldKSk7Ci0gICAg
dmFyIGluZGV4ID0gKGlpICsgcG93ZXIpICUgdGFyZ2V0cy5sZW5ndGg7Ci0gICAgdmFyIHRhcmdl
dCA9IHRhcmdldHNbaW5kZXhdOwotICAgIGlmIChvcHRfc3ViVGV4KSB7Ci0gICAgICBnbC50ZXhT
dWJJbWFnZTJEKAotICAgICAgICAgIHRhcmdldCwgbGV2ZWwsIDAsIDAsIHdpZHRoLCBoZWlnaHQs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgcGl4ZWxzKTsKLSAgICB9IGVs
c2UgewotICAgICAgZ2wudGV4SW1hZ2UyRCgKLSAgICAgICAgICB0YXJnZXQsIGxldmVsLCBnbC5S
R0JBLCB3aWR0aCwgaGVpZ2h0LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAg
ICAgIHBpeGVscyk7Ci0gICAgfQotICB9Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtc3ViLWltYWdlLWN1YmUtbWFwcy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODRlMDNhNDAxOWMzYTJiODYxNjdkMDVhM2Zi
MWRjZmQwMjhkZjY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1zdWItaW1hZ2UtY3ViZS1tYXBz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMzcgKzAsMCBAQAotPCEtLQotCi0vKgotKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQotKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCi0qKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot
KioKLSoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgot
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQotKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KLSovCi0KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgdGV4dHVyZSB0ZXhTdWJJbWFnZTJE
cyBjdWJlIG1hcCBjb25mb3JtYW5jZSB0ZXN0LjwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBzdHlsZT0i
d2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0IGlkPSJ2c2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1hdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247Ci11
bmlmb3JtIG1hdDQgcm90YXRpb247Ci12YXJ5aW5nIHZlYzMgdGV4Q29vcmQ7Ci12b2lkIG1haW4o
KQotewotICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOwotICAgIHZlYzQgZGlyZWN0aW9uID0g
dmVjNCh2UG9zaXRpb24ueCAqIDAuNSwgdlBvc2l0aW9uLnkgKiAwLjUsIDEsIDEpOwotICAgIHRl
eENvb3JkID0gbm9ybWFsaXplKChyb3RhdGlvbiAqIGRpcmVjdGlvbikueHl6KTsKLX0KLTwvc2Ny
aXB0PgotCi08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4K
LXByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotdW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXg7Ci12YXJ5
aW5nIHZlYzMgdGV4Q29vcmQ7Ci12b2lkIG1haW4oKQotewotICAgIGdsX0ZyYWdDb2xvciA9IHRl
eHR1cmVDdWJlKHRleCwgbm9ybWFsaXplKHRleENvb3JkKSk7Ci19Ci08L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgY2FudmFzOwotZGVzY3JpcHRpb24oIkNoZWNrcyBpc3N1
ZXMgd2l0aCBzaXplIG9mIGN1YmUgbWFwIHRleHR1cmVzIik7Ci1kZWJ1ZygiIik7Ci0KLXZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZXhhbXBsZSIpOwotCi12YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci13
dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7Ci12YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dy
YW0oCi0gICAgZ2wsCi0gICAgWyd2c2hhZGVyJywgJ2ZzaGFkZXInXSwKLSAgICBbJ3ZQb3NpdGlv
bicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKLXZhciByb3RMb2MgPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgInJvdGF0aW9uIik7Ci0KLXZhciBzaXplID0gMTY7Ci0KLXZhciBjb2xv
cnMgPSBbCi0gIHtuYW1lOiAncmVkJywgICAgIGNvbG9yOiBbMjU1LCAgIDAsICAgMCwgMjU1XX0s
Ci0gIHtuYW1lOiAnZ3JlZW4nLCAgIGNvbG9yOiBbICAwLCAyNTUsICAgMCwgMjU1XX0sCi0gIHtu
YW1lOiAnYmx1ZScsICAgIGNvbG9yOiBbICAwLCAgIDAsIDI1NSwgMjU1XX0sCi0gIHtuYW1lOiAn
eWVsbG93JywgIGNvbG9yOiBbMjU1LCAyNTUsICAgMCwgMjU1XX0sCi0gIHtuYW1lOiAnY3lhbics
ICAgIGNvbG9yOiBbICAwLCAyNTUsIDI1NSwgMjU1XX0sCi0gIHtuYW1lOiAnbWFnZW50YScsIGNv
bG9yOiBbMjU1LCAgIDAsIDI1NSwgMjU1XX0KLV07Ci0KLXZhciB0YXJnZXRzID0gWwotICBnbC5U
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJ
VkVfWCwKLSAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICBnbC5URVhUVVJFX0NV
QkVfTUFQX05FR0FUSVZFX1ksCi0gIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAg
Z2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aXTsKLQotdmFyIHJvdGF0aW9ucyA9IFsKLSAg
e2F4aXM6IFswLCAxLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gMn0sCi0gIHtheGlzOiBbMCwgMSwg
MF0sIGFuZ2xlOiAtTWF0aC5QSSAvIDJ9LAotICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1h
dGguUEkgLyAyfSwKLSAge2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gMn0sCi0g
IHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xlOiAgMH0sCi0gIHtheGlzOiBbMCwgMSwgMF0sIGFuZ2xl
OiAgTWF0aC5QSX0sCi1dOwotCi12YXIgaGFsZlJvdGF0aW9ucyA9IFsKLSAge2NvbG9yczogWzMs
IDRdLCByb3RhdGlvbnM6IFt7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogIE1hdGguUEkgLyA0fV19
LAotICB7Y29sb3JzOiBbNCwgMl0sIHJvdGF0aW9uczogW3theGlzOiBbMSwgMCwgMF0sIGFuZ2xl
OiAtTWF0aC5QSSAvIDR9XX0sCi0gIHtjb2xvcnM6IFs1LCAzXSwgcm90YXRpb25zOiBbe2F4aXM6
IFsxLCAwLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gNCAqIDN9XX0sCi0gIHtjb2xvcnM6IFsyLCA1
XSwgcm90YXRpb25zOiBbe2F4aXM6IFsxLCAwLCAwXSwgYW5nbGU6IC1NYXRoLlBJIC8gNCAqIDN9
XX0sCi0gIHtjb2xvcnM6IFszLCAwXSwgcm90YXRpb25zOiBbe2F4aXM6IFswLCAxLCAwXSwgYW5n
bGU6ICBNYXRoLlBJIC8gMn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2F4aXM6
IFsxLCAwLCAwXSwgYW5nbGU6ICBNYXRoLlBJIC8gNH1dfSwKLSAge2NvbG9yczogWzAsIDJdLCBy
b3RhdGlvbnM6IFt7YXhpczogWzAsIDEsIDBdLCBhbmdsZTogIE1hdGguUEkgLyAyfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7YXhpczogWzEsIDAsIDBdLCBhbmdsZTogLU1hdGgu
UEkgLyA0fV19LAotXTsKLQotdmFyIGNvdW50ID0gMDsKLXRlc3RTaXplKHNpemUpOwotCi1mdW5j
dGlvbiB0ZXN0U2l6ZShzaXplKSB7Ci0gIGRlYnVnKCIiKTsKLSAgZGVidWcoInRlc3Rpbmcgc2l6
ZTogIiArIHNpemUpOwotICB2YXIgY2FudmFzU2l6ZSA9IE1hdGgubWF4KHNpemUgLyA0LCAyKTsK
LSAgY2FudmFzLndpZHRoID0gY2FudmFzU2l6ZTsKLSAgY2FudmFzLmhlaWdodCA9IGNhbnZhc1Np
emU7Ci0gIGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhc1NpemUsIGNhbnZhc1NpemUpOwotICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NV
QkVfTUFQLCB0ZXgpOwotCi0gIC8vIFNlZW1zIGxpa2UgSSBzaG91bGQgYmUgdXNpbmcgTElORUFS
IGhlcmUgd2l0aCBzb21lIG90aGVyIG1hdGgKLSAgLy8gdG8gbWFrZSBzdXJlIEkgZ2V0IG1vcmUg
bWlwIGNvdmVyYWdlIGJ1dCB0aGF0J3MgZWFzaWVyIHNhaWQKLSAgLy8gdGhhbiBkb25lLgotCi0g
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV9DVUJFX01BUCwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSLCBnbC5ORUFSRVNUKTsKLSAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFX0NVQkVfTUFQ
LCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotCi0gIGZvciAodmFyIGpqID0g
MDsgamogPCAyOyArK2pqKSB7Ci0gICAgZm9yICh2YXIgdHQgPSAwOyB0dCA8IHRhcmdldHMubGVu
Z3RoOyArK3R0KSB7Ci0gICAgICB2YXIgY29sb3IgPSBjb2xvcnNbKHR0ICsgY291bnQpICUgY29s
b3JzLmxlbmd0aF07Ci0gICAgICBmaWxsTGV2ZWwodGFyZ2V0c1t0dF0sIDAsIHNpemUsIGNvbG9y
LmNvbG9yKTsKLSAgICB9Ci0gICAgaWYgKGpqID09IDEpIHsKLSAgICAgIGRlYnVnKCJ1c2UgbWlw
bWFwIik7Ci0gICAgICBnbC50ZXhQYXJhbWV0ZXJpKAotICAgICAgICAgIGdsLlRFWFRVUkVfQ1VC
RV9NQVAsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwKLSAgICAgICAgICBnbC5ORUFSRVNUX01JUE1B
UF9ORUFSRVNUKTsKLSAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfQ1VCRV9NQVAp
OwotICAgIH0KLQotICAgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOwotICAgIGlmIChlcnIgPT0g
Z2wuT1VUX09GX01FTU9SWSkgewotICAgICAgZGVidWcoIm91dCBvZiBtZW1vcnkiKTsKLSAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKGVyciAhPSBnbC5OT19FUlJPUikgewotICAg
ICAgdGVzdEZhaWxlZCgidW5leHBlY3RlZCBnbCBlcnJvcjogIiArIHd0dS5nbEVudW1Ub1N0cmlu
ZyhnbCwgZXJyKSk7Ci0gICAgfQotCi0KLSAgICBmb3IgKHZhciByciA9IDA7IHJyIDwgcm90YXRp
b25zLmxlbmd0aDsgKytycikgewotICAgICAgdmFyIHJvdCA9IHJvdGF0aW9uc1tycl07Ci0gICAg
ICB2YXIgY29sb3IgPSBjb2xvcnNbKHJyICsgY291bnQpICUgY29sb3JzLmxlbmd0aF07Ci0gICAg
ICB2YXIgcm90TWF0ID0gYXhpc1JvdGF0aW9uKHJvdC5heGlzLCByb3QuYW5nbGUpOwotICAgICAg
Z2wudW5pZm9ybU1hdHJpeDRmdihyb3RMb2MsIGZhbHNlLCByb3RNYXQpOwotICAgICAgd3R1LmNs
ZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgICAgIHd0dS5jaGVja0NhbnZhcygKLSAgICAgICAg
ICBnbCwgY29sb3IuY29sb3IsCi0gICAgICAgICAgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0YXJn
ZXRzW3JyXSkgKyAiIHNob3VsZCBiZSAiICsgY29sb3IubmFtZSk7Ci0gICAgfQotCi0gICAgZm9y
ICh2YXIgcnIgPSAwOyByciA8IGhhbGZSb3RhdGlvbnMubGVuZ3RoOyArK3JyKSB7Ci0gICAgICB2
YXIgaCA9IGhhbGZSb3RhdGlvbnNbcnJdOwotICAgICAgdmFyIHJvdHMgPSBoLnJvdGF0aW9uczsK
LSAgICAgIHZhciByb3RNYXQgPSBheGlzUm90YXRpb24ocm90c1swXS5heGlzLCByb3RzWzBdLmFu
Z2xlKTsKLSAgICAgIGZvciAodmFyIGlpID0gMTsgaWkgPCByb3RzLmxlbmd0aDsgKytpaSkgewot
ICAgICAgICB2YXIgdG1wTWF0ID0gYXhpc1JvdGF0aW9uKHJvdHNbaWldLmF4aXMsIHJvdHNbaWld
LmFuZ2xlKTsKLSAgICAgICAgdmFyIHJvdE1hdCA9IG11bE1hdHJpeCh0bXBNYXQsIHJvdE1hdCk7
Ci0gICAgICB9Ci0gICAgICBnbC51bmlmb3JtTWF0cml4NGZ2KHJvdExvYywgZmFsc2UsIHJvdE1h
dCk7Ci0gICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwotCi0gICAgICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgMjsgKytpaSkgewotICAgICAgICBjaGVja1JlY3QoCi0gICAgICAgICAg
ICAwLAotICAgICAgICAgICAgY2FudmFzU2l6ZSAvIDIgKiBpaSwKLSAgICAgICAgICAgIGNhbnZh
c1NpemUsCi0gICAgICAgICAgICBjYW52YXNTaXplIC8gMiwKLSAgICAgICAgICAgIGNvbG9yc1so
aC5jb2xvcnNbaWldICsgY291bnQpICUgY29sb3JzLmxlbmd0aF0pOwotICAgICAgfQotICAgIH0K
LSAgICArK2NvdW50OwotICB9Ci0KLSAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwotICByZXR1cm4g
dHJ1ZTsKLX0KLQotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBu
byBlcnJvcnMuIik7Ci0KLWZ1bmN0aW9uIGNoZWNrUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBj
b2xvcikgewotICB3dHUuY2hlY2tDYW52YXNSZWN0KAotICAgICAgIGdsLAotICAgICAgIHgsCi0g
ICAgICAgeSwKLSAgICAgICB3aWR0aCwKLSAgICAgICBoZWlnaHQsCi0gICAgICAgY29sb3IuY29s
b3IsCi0gICAgICAgIiIgKyB4ICsgIiwgIiArIHkgKyAiLCAiICsgd2lkdGggKyAiLCAiICsgaGVp
Z2h0ICsKLSAgICAgICAiIHNob3VsZCBiZSAiICsgY29sb3IubmFtZSk7Ci19Ci0KLWZ1bmN0aW9u
IGZpbGxMZXZlbCh0YXJnZXQsIGxldmVsLCBzaXplLCBjb2xvcikgewotICB2YXIgbnVtUGl4ZWxz
ID0gc2l6ZSAqIHNpemU7Ci0gIHZhciBoYWxmUGl4ZWxSb3cgPSBuZXcgVWludDhBcnJheShzaXpl
ICogMik7Ci0gIGZvciAodmFyIGpqID0gMDsgamogPCBzaXplOyArK2pqKSB7Ci0gICAgdmFyIG9m
ZiA9IGpqICogNDsKLSAgICBoYWxmUGl4ZWxSb3dbb2ZmICsgMF0gPSBjb2xvclswXTsKLSAgICBo
YWxmUGl4ZWxSb3dbb2ZmICsgMV0gPSBjb2xvclsxXTsKLSAgICBoYWxmUGl4ZWxSb3dbb2ZmICsg
Ml0gPSBjb2xvclsyXTsKLSAgICBoYWxmUGl4ZWxSb3dbb2ZmICsgM10gPSBjb2xvclszXTsKLSAg
fQotICBnbC50ZXhJbWFnZTJEKAotICAgICAgdGFyZ2V0LCBsZXZlbCwgZ2wuUkdCQSwgc2l6ZSwg
c2l6ZSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKLSAgICAgIG51bGwpOwotICBmb3Ig
KHZhciBqaiA9IDA7IGpqIDwgc2l6ZTsgKytqaikgewotICAgICAgZ2wudGV4U3ViSW1hZ2UyRCgK
LSAgICAgICAgICB0YXJnZXQsIGxldmVsLCAwLCBqaiwgc2l6ZSAvIDIsIDEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGhhbGZQaXhlbFJvdyk7Ci0gICAgICBnbC50ZXhTdWJJbWFnZTJEKAot
ICAgICAgICAgIHRhcmdldCwgbGV2ZWwsIHNpemUgLyAyLCBqaiwgc2l6ZSAvIDIsIDEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGhhbGZQaXhlbFJvdyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24g
cHJpbnRNYXQobWF0KSB7Ci0gIGRlYnVnKCIiICsgbWF0WzBdICsgIiwgIiArIG1hdFsxXSArICIs
ICIgKyBtYXRbMl0gKyAiLCAiICsgbWF0WzNdICsgIiwgIik7Ci0gIGRlYnVnKCIiICsgbWF0WzRd
ICsgIiwgIiArIG1hdFs1XSArICIsICIgKyBtYXRbNl0gKyAiLCAiICsgbWF0WzddICsgIiwgIik7
Ci0gIGRlYnVnKCIiICsgbWF0WzhdICsgIiwgIiArIG1hdFs5XSArICIsICIgKyBtYXRbMTBdICsg
IiwgIiArIG1hdFsxMV0gKyAiLCAiKTsKLSAgZGVidWcoIiIgKyBtYXRbMTJdICsgIiwgIiArIG1h
dFsxM10gKyAiLCAiICsgbWF0WzE0XSArICIsICIgKyBtYXRbMTVdICsgIiwgIik7Ci19Ci0KLWZ1
bmN0aW9uIGF4aXNSb3RhdGlvbihheGlzLCBhbmdsZSkgewotICB2YXIgZHN0ID0gbmV3IEZsb2F0
MzJBcnJheSgxNik7Ci0gIHZhciB4ID0gYXhpc1swXTsKLSAgdmFyIHkgPSBheGlzWzFdOwotICB2
YXIgeiA9IGF4aXNbMl07Ci0gIHZhciBuID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkgKyB6ICog
eik7Ci0gIHggLz0gbjsKLSAgeSAvPSBuOwotICB6IC89IG47Ci0gIHZhciB4eCA9IHggKiB4Owot
ICB2YXIgeXkgPSB5ICogeTsKLSAgdmFyIHp6ID0geiAqIHo7Ci0gIHZhciBjID0gTWF0aC5jb3Mo
YW5nbGUpOwotICB2YXIgcyA9IE1hdGguc2luKGFuZ2xlKTsKLSAgdmFyIG9uZU1pbnVzQ29zaW5l
ID0gMSAtIGM7Ci0KLSAgZHN0WyAwXSA9IHh4ICsgKDEgLSB4eCkgKiBjOwotICBkc3RbIDFdID0g
eCAqIHkgKiBvbmVNaW51c0Nvc2luZSArIHogKiBzOwotICBkc3RbIDJdID0geCAqIHogKiBvbmVN
aW51c0Nvc2luZSAtIHkgKiBzOwotICBkc3RbIDNdID0gMDsKLSAgZHN0WyA0XSA9IHggKiB5ICog
b25lTWludXNDb3NpbmUgLSB6ICogczsKLSAgZHN0WyA1XSA9IHl5ICsgKDEgLSB5eSkgKiBjOwot
ICBkc3RbIDZdID0geSAqIHogKiBvbmVNaW51c0Nvc2luZSArIHggKiBzOwotICBkc3RbIDddID0g
MDsKLSAgZHN0WyA4XSA9IHggKiB6ICogb25lTWludXNDb3NpbmUgKyB5ICogczsKLSAgZHN0WyA5
XSA9IHkgKiB6ICogb25lTWludXNDb3NpbmUgLSB4ICogczsKLSAgZHN0WzEwXSA9IHp6ICsgKDEg
LSB6eikgKiBjOwotICBkc3RbMTFdID0gMDsKLSAgZHN0WzEyXSA9IDA7Ci0gIGRzdFsxM10gPSAw
OwotICBkc3RbMTRdID0gMDsKLSAgZHN0WzE1XSA9IDE7Ci0KLSAgcmV0dXJuIGRzdDsKLX07Ci0K
LWZ1bmN0aW9uIG11bE1hdHJpeChhLCBiKSB7Ci0gIHZhciBkc3QgPSBuZXcgRmxvYXQzMkFycmF5
KDE2KTsKLSAgdmFyIGEwMCA9IGFbMF07Ci0gIHZhciBhMDEgPSBhWzFdOwotICB2YXIgYTAyID0g
YVsyXTsKLSAgdmFyIGEwMyA9IGFbM107Ci0gIHZhciBhMTAgPSBhWyA0ICsgMF07Ci0gIHZhciBh
MTEgPSBhWyA0ICsgMV07Ci0gIHZhciBhMTIgPSBhWyA0ICsgMl07Ci0gIHZhciBhMTMgPSBhWyA0
ICsgM107Ci0gIHZhciBhMjAgPSBhWyA4ICsgMF07Ci0gIHZhciBhMjEgPSBhWyA4ICsgMV07Ci0g
IHZhciBhMjIgPSBhWyA4ICsgMl07Ci0gIHZhciBhMjMgPSBhWyA4ICsgM107Ci0gIHZhciBhMzAg
PSBhWzEyICsgMF07Ci0gIHZhciBhMzEgPSBhWzEyICsgMV07Ci0gIHZhciBhMzIgPSBhWzEyICsg
Ml07Ci0gIHZhciBhMzMgPSBhWzEyICsgM107Ci0gIHZhciBiMDAgPSBiWzBdOwotICB2YXIgYjAx
ID0gYlsxXTsKLSAgdmFyIGIwMiA9IGJbMl07Ci0gIHZhciBiMDMgPSBiWzNdOwotICB2YXIgYjEw
ID0gYlsgNCArIDBdOwotICB2YXIgYjExID0gYlsgNCArIDFdOwotICB2YXIgYjEyID0gYlsgNCAr
IDJdOwotICB2YXIgYjEzID0gYlsgNCArIDNdOwotICB2YXIgYjIwID0gYlsgOCArIDBdOwotICB2
YXIgYjIxID0gYlsgOCArIDFdOwotICB2YXIgYjIyID0gYlsgOCArIDJdOwotICB2YXIgYjIzID0g
YlsgOCArIDNdOwotICB2YXIgYjMwID0gYlsxMiArIDBdOwotICB2YXIgYjMxID0gYlsxMiArIDFd
OwotICB2YXIgYjMyID0gYlsxMiArIDJdOwotICB2YXIgYjMzID0gYlsxMiArIDNdOwotICBkc3Rb
IDBdID0gYTAwICogYjAwICsgYTAxICogYjEwICsgYTAyICogYjIwICsgYTAzICogYjMwOwotICBk
c3RbIDFdID0gYTAwICogYjAxICsgYTAxICogYjExICsgYTAyICogYjIxICsgYTAzICogYjMxOwot
ICBkc3RbIDJdID0gYTAwICogYjAyICsgYTAxICogYjEyICsgYTAyICogYjIyICsgYTAzICogYjMy
OwotICBkc3RbIDNdID0gYTAwICogYjAzICsgYTAxICogYjEzICsgYTAyICogYjIzICsgYTAzICog
YjMzOwotICBkc3RbIDRdID0gYTEwICogYjAwICsgYTExICogYjEwICsgYTEyICogYjIwICsgYTEz
ICogYjMwOwotICBkc3RbIDVdID0gYTEwICogYjAxICsgYTExICogYjExICsgYTEyICogYjIxICsg
YTEzICogYjMxOwotICBkc3RbIDZdID0gYTEwICogYjAyICsgYTExICogYjEyICsgYTEyICogYjIy
ICsgYTEzICogYjMyOwotICBkc3RbIDddID0gYTEwICogYjAzICsgYTExICogYjEzICsgYTEyICog
YjIzICsgYTEzICogYjMzOwotICBkc3RbIDhdID0gYTIwICogYjAwICsgYTIxICogYjEwICsgYTIy
ICogYjIwICsgYTIzICogYjMwOwotICBkc3RbIDldID0gYTIwICogYjAxICsgYTIxICogYjExICsg
YTIyICogYjIxICsgYTIzICogYjMxOwotICBkc3RbMTBdID0gYTIwICogYjAyICsgYTIxICogYjEy
ICsgYTIyICogYjIyICsgYTIzICogYjMyOwotICBkc3RbMTFdID0gYTIwICogYjAzICsgYTIxICog
YjEzICsgYTIyICogYjIzICsgYTIzICogYjMzOwotICBkc3RbMTJdID0gYTMwICogYjAwICsgYTMx
ICogYjEwICsgYTMyICogYjIwICsgYTMzICogYjMwOwotICBkc3RbMTNdID0gYTMwICogYjAxICsg
YTMxICogYjExICsgYTMyICogYjIxICsgYTMzICogYjMxOwotICBkc3RbMTRdID0gYTMwICogYjAy
ICsgYTMxICogYjEyICsgYTMyICogYjIyICsgYTMzICogYjMyOwotICBkc3RbMTVdID0gYTMwICog
YjAzICsgYTMxICogYjEzICsgYTMyICogYjIzICsgYTMzICogYjMzOwotICByZXR1cm4gZHN0Owot
fTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEu
MC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1
cmUtdHJhbnNwYXJlbnQtcGl4ZWxzLWluaXRpYWxpemVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3RleHR1cmVzL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxzLWluaXRpYWxpemVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzIxNTc0MzMyYTEzMjg1ZWZhOWIwMzRhZGFm
YzUyYjA1OGJkNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1p
bml0aWFsaXplZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLTwhLS0KLS8q
Ci0qKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
LSoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCi0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
LSoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgotKi8KLS0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwot
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsID0gbnVsbDsKLXZhciB0ZXh0dXJlOwot
dmFyIHRleHR1cmVMb2MgPSBudWxsOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwot
Ci1mdW5jdGlvbiBpbml0KCkKLXsKLSAgICBpbml0VGVzdGluZ0hhcm5lc3NXYWl0VW50aWxEb25l
KCk7Ci0KLSAgICBkZXNjcmlwdGlvbignVGVzdHMgdGhlcmUgaXMgbm8gZ2FyYmFnZSBpbiB0cmFu
c3BhcmVudCByZWdpb25zIG9mIGltYWdlcyB1cGxvYWRlZCBhcyB0ZXh0dXJlcycpOwotCi0gICAg
d3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0gICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotICAg
IGdsLmNsZWFyQ29sb3IoMC41LDAuNSwwLjUsMSk7Ci0gICAgZ2wuY2xlYXJEZXB0aCgxKTsKLQot
ICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOwot
Ci0gICAgLy8gVGhlIGlucHV0IHRleHR1cmUgaGFzIDggY2hhcmFjdGVyczsgdGFrZSB0aGUgbGVm
dG1vc3Qgb25lCi0gICAgdmFyIGNvZWZmID0gMS4wIC8gOC4wOwotICAgIHZhciB0ZXhDb29yZHMg
PSBuZXcgRmxvYXQzMkFycmF5KFsKLSAgICAgICAgY29lZmYsIDEuMCwKLSAgICAgICAgMC4wLCAx
LjAsCi0gICAgICAgIDAuMCwgMC4wLAotICAgICAgICBjb2VmZiwgMS4wLAotICAgICAgICAwLjAs
IDAuMCwKLSAgICAgICAgY29lZmYsIDAuMF0pOwotCi0gICAgdmFyIHZibyA9IGdsLmNyZWF0ZUJ1
ZmZlcigpOwotICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOwotICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29yZHMsIGdsLlNUQVRJQ19EUkFXKTsK
LSAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKLSAgICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKDEsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7Ci0KLSAgICB0ZXh0dXJlID0gd3R1
LmxvYWRUZXh0dXJlKGdsLCAiLi4vcmVzb3VyY2VzL2J1Zy0zMjg4OC10ZXh0dXJlLnBuZyIsIHJ1
blRlc3QpOwotfQotCi0vLyBUaGVzZSB0d28gZGVjbGFyYXRpb25zIG5lZWQgdG8gYmUgZ2xvYmFs
IGZvciAic2hvdWxkQmUiIHRvIHNlZSB0aGVtCi12YXIgYnVmID0gbnVsbDsKLXZhciBpZHggPSAw
OwotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTsKLSAg
ICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKLSAg
ICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2Ft
cGxlciB0byB0ZXh0dXJlIHVuaXQgMAotICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsK
LSAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQo
Z2wsIFswLCAwLCAwLCAyNTVdKTsKLQotICAgIC8vIFNwb3QgY2hlY2sgYSBjb3VwbGUgb2YgMngy
IHJlZ2lvbnMgaW4gdGhlIHVwcGVyIGFuZCBsb3dlciBsZWZ0Ci0gICAgLy8gY29ybmVyczsgdGhl
eSBzaG91bGQgYmUgdGhlIHJnYiB2YWx1ZXMgaW4gdGhlIHRleHR1cmUuCi0gICAgdmFyIGNvbG9y
ID0gWzAsIDAsIDBdOwotICAgIGRlYnVnKCJDaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lciIpOwot
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDEsIGdsLmNhbnZhcy5oZWlnaHQgLSAzLCAyLCAy
LCBjb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGRCZSAiICsgY29sb3IpOwot
ICAgIGRlYnVnKCJDaGVja2luZyB1cHBlciBsZWZ0IGNvcm5lciIpOwotICAgIHd0dS5jaGVja0Nh
bnZhc1JlY3QoZ2wsIDEsIDEsIDIsIDIsIGNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAg
InNob3VsZEJlICIgKyBjb2xvcik7Ci0KLSAgICBmaW5pc2hUZXN0KCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTxjYW52YXMgaWQ9ImV4YW1wbGUiIHdp
ZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PC9jYW52YXM+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1tYXBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtdXBsb2FkLWN1YmUtbWFwcy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGI2NTRjM2JhNmQzZTVkYzQ5MTBj
ZTQyM2IzMjFkMTBiZDJjZGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtY3ViZS1t
YXBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi08IS0tCi0KLS8qCi0qKiBD
b3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotKioKLSoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCi0qKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCi0qKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KLSoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0qKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
Ci0qKgotKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLSoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KLSoqCi0qKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
Ci0qKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCi0qKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCi0qKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgotKi8KLQotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlk
PSJleGFtcGxlIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj48L2NhbnZhcz4KLTxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLWRlc2NyaXB0aW9uKCdUZXN0cyB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJE
IHVwbG9hZCBwYXRoIGZvciBURVhUVVJFX0NVQkVfTUFQJyk7Ci0KLXZhciB3dHUgPSBXZWJHTFRl
c3RVdGlsczsKLXZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIp
OwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKLQot
ZnVuY3Rpb24gdGVzdE9uZVRhcmdldCh0YXJnZXQsIHdpZHRoLCBoZWlnaHQpIHsKLSAgdmFyIHRl
eCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJF
X01BUCwgdGV4KTsKLSAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBi
ZSBubyBlcnJvcnMgZnJvbSBiaW5kVGV4dHVyZShURVhUVVJFX0NVQkVfTUFQKS4iKTsKLQotICBn
bC50ZXhJbWFnZTJEKHRhcmdldCwgMCwgZ2wuUkdCLCB3aWR0aCwgaGVpZ2h0LCAwLCBnbC5SR0Is
IGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLCAiU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHRleEltYWdlMkQuIik7Ci0KLSAgdmFyIGJ1
ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogMyk7Ci0gIGdsLnRleFN1YkltYWdl
MkQodGFyZ2V0LCAwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0IsIGdsLlVOU0lHTkVEX0JZ
VEUsIGJ1Zik7Ci0gIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJTaG91bGQgYmUg
bm8gZXJyb3JzIGZyb20gdGV4U3ViSW1hZ2UyRC4iKTsKLX0KLQotdGVzdE9uZVRhcmdldChnbC5U
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsIDE2LCAxNik7Ci10ZXN0T25lVGFyZ2V0KGdsLlRF
WFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwgMTYsIDE2KTsKLXRlc3RPbmVUYXJnZXQoZ2wuVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9aLCAxNiwgMTYpOwotdGVzdE9uZVRhcmdldChnbC5URVhU
VVJFX0NVQkVfTUFQX05FR0FUSVZFX1gsIDE2LCAxNik7Ci10ZXN0T25lVGFyZ2V0KGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwgMTYsIDE2KTsKLXRlc3RPbmVUYXJnZXQoZ2wuVEVYVFVS
RV9DVUJFX01BUF9ORUdBVElWRV9aLCAxNiwgMTYpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9y
ZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9kZXNrdG9w
LWdsLWNvbnN0YW50cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJlYTBhY2I0
ZTRmYTg4ZmExNjgzNGQyNGM0MGIwOWMyN2U0NzRjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4y
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50
cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI2NDUgKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAo
YykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoq
IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUKLSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwot
KiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgTWF0ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4KLSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoq
IE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMu
Ci0qLwotCi0vLyBEZWZpbmVzIGEgYnVuY2ggb2YgRGVza3RvcEdMIGNvbnN0YW50cyBzbyB3ZSBj
YW4gbWFrZSBzdXJlIFdlYkdMCi0vLyBpbXBsZW1lbnRhdGlvbnMgZGlzYWxsb3cgdGhlbS4KLQot
dmFyIGRlc2t0b3BHTCA9IHsKLSAgJ01JTic6IDB4ODAwNywKLSAgJ01BWCc6IDB4ODAwOCwKLSAg
J1FVQURTJzogMHgwMDA3LAotICAnUVVBRF9TVFJJUCc6IDB4MDAwOCwKLSAgJ1BPTFlHT04nOiAw
eDAwMDksCi0gICcxJzogMHgwMDAxLAotICAnMic6IDB4MDAwMiwKLSAgJzMnOiAweDAwMDMsCi0g
ICc0JzogMHgwMDA0LAotICAnU1RBVElDX1JFQUQnOiAweDg4RTUsCi0gICdDTElQX1BMQU5FMCc6
IDB4MzAwMCwKLSAgJ1BFUlNQRUNUSVZFX0NPUlJFQ1RJT05fSElOVCc6IDB4MEM1MCwKLSAgJ0FD
Q1VNX0JVRkZFUl9CSVQnOiAweDAyMDAsCi0gICdSR0I0JzogMHg4MDRGLAotICAnUkdCNSc6IDB4
ODA1MCwKLSAgJ1JHQjgnOiAweDgwNTEsCi0gICdSR0IxMCc6IDB4ODA1MiwKLSAgJ1JHQjEyJzog
MHg4MDUzLAotICAnUkdCMTYnOiAweDgwNTQsCi0gICdSR0JBMic6IDB4ODA1NSwKLSAgJ1JHQkE0
JzogMHg4MDU2LAotICAnUkdCNV9BMSc6IDB4ODA1NywKLSAgJ1JHQkE4JzogMHg4MDU4LAotICAn
UkdCMTBfQTInOiAweDgwNTksCi0gICdSR0JBMTInOiAweDgwNUEsCi0gICdSR0JBMTYnOiAweDgw
NUIsCi0gICdTTU9PVEhfUE9JTlRfU0laRV9SQU5HRSc6IDB4MEIxMiwKLSAgJ1NNT09USF9QT0lO
VF9TSVpFX0dSQU5VTEFSSVRZJzogMHgwQjEzLAotICAnU01PT1RIX0xJTkVfV0lEVEhfUkFOR0Un
OiAweDBCMjIsCi0gICdTTU9PVEhfTElORV9XSURUSF9HUkFOVUxBUklUWSc6IDB4MEIyMywKLSAg
J1VOU0lHTkVEX0JZVEVfM18zXzInOiAweDgwMzIsCi0gICdVTlNJR05FRF9TSE9SVF80XzRfNF80
JzogMHg4MDMzLAotICAnVU5TSUdORURfU0hPUlRfNV81XzVfMSc6IDB4ODAzNCwKLSAgJ1VOU0lH
TkVEX0lOVF84XzhfOF84JzogMHg4MDM1LAotICAnVU5TSUdORURfSU5UXzEwXzEwXzEwXzInOiAw
eDgwMzYsCi0gICdSRVNDQUxFX05PUk1BTCc6IDB4ODAzQSwKLSAgJ1RFWFRVUkVfQklORElOR18z
RCc6IDB4ODA2QSwKLSAgJ1BBQ0tfU0tJUF9JTUFHRVMnOiAweDgwNkIsCi0gICdQQUNLX0lNQUdF
X0hFSUdIVCc6IDB4ODA2QywKLSAgJ1VOUEFDS19TS0lQX0lNQUdFUyc6IDB4ODA2RCwKLSAgJ1VO
UEFDS19JTUFHRV9IRUlHSFQnOiAweDgwNkUsCi0gICdURVhUVVJFXzNEJzogMHg4MDZGLAotICAn
UFJPWFlfVEVYVFVSRV8zRCc6IDB4ODA3MCwKLSAgJ1RFWFRVUkVfREVQVEgnOiAweDgwNzEsCi0g
ICdURVhUVVJFX1dSQVBfUic6IDB4ODA3MiwKLSAgJ01BWF8zRF9URVhUVVJFX1NJWkUnOiAweDgw
NzMsCi0gICdCR1InOiAweDgwRTAsCi0gICdCR1JBJzogMHg4MEUxLAotICAnTUFYX0VMRU1FTlRT
X1ZFUlRJQ0VTJzogMHg4MEU4LAotICAnTUFYX0VMRU1FTlRTX0lORElDRVMnOiAweDgwRTksCi0g
ICdDTEFNUF9UT19FREdFJzogMHg4MTJGLAotICAnVEVYVFVSRV9NSU5fTE9EJzogMHg4MTNBLAot
ICAnVEVYVFVSRV9NQVhfTE9EJzogMHg4MTNCLAotICAnVEVYVFVSRV9CQVNFX0xFVkVMJzogMHg4
MTNDLAotICAnVEVYVFVSRV9NQVhfTEVWRUwnOiAweDgxM0QsCi0gICdMSUdIVF9NT0RFTF9DT0xP
Ul9DT05UUk9MJzogMHg4MUY4LAotICAnU0lOR0xFX0NPTE9SJzogMHg4MUY5LAotICAnU0VQQVJB
VEVfU1BFQ1VMQVJfQ09MT1InOiAweDgxRkEsCi0gICdVTlNJR05FRF9CWVRFXzJfM18zX1JFVic6
IDB4ODM2MiwKLSAgJ1VOU0lHTkVEX1NIT1JUXzVfNl81JzogMHg4MzYzLAotICAnVU5TSUdORURf
U0hPUlRfNV82XzVfUkVWJzogMHg4MzY0LAotICAnVU5TSUdORURfU0hPUlRfNF80XzRfNF9SRVYn
OiAweDgzNjUsCi0gICdVTlNJR05FRF9TSE9SVF8xXzVfNV81X1JFVic6IDB4ODM2NiwKLSAgJ1VO
U0lHTkVEX0lOVF84XzhfOF84X1JFVic6IDB4ODM2NywKLSAgJ1VOU0lHTkVEX0lOVF8yXzEwXzEw
XzEwX1JFVic6IDB4ODM2OCwKLSAgJ0FMSUFTRURfUE9JTlRfU0laRV9SQU5HRSc6IDB4ODQ2RCwK
LSAgJ0FMSUFTRURfTElORV9XSURUSF9SQU5HRSc6IDB4ODQ2RSwKLSAgJ01VTFRJU0FNUExFJzog
MHg4MDlELAotICAnU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFJzogMHg4MDlFLAotICAnU0FNUExF
X0FMUEhBX1RPX09ORSc6IDB4ODA5RiwKLSAgJ1NBTVBMRV9DT1ZFUkFHRSc6IDB4ODBBMCwKLSAg
J1NBTVBMRV9CVUZGRVJTJzogMHg4MEE4LAotICAnU0FNUExFUyc6IDB4ODBBOSwKLSAgJ1NBTVBM
RV9DT1ZFUkFHRV9WQUxVRSc6IDB4ODBBQSwKLSAgJ1NBTVBMRV9DT1ZFUkFHRV9JTlZFUlQnOiAw
eDgwQUIsCi0gICdDTEFNUF9UT19CT1JERVInOiAweDgxMkQsCi0gICdURVhUVVJFMCc6IDB4ODRD
MCwKLSAgJ1RFWFRVUkUxJzogMHg4NEMxLAotICAnVEVYVFVSRTInOiAweDg0QzIsCi0gICdURVhU
VVJFMyc6IDB4ODRDMywKLSAgJ1RFWFRVUkU0JzogMHg4NEM0LAotICAnVEVYVFVSRTUnOiAweDg0
QzUsCi0gICdURVhUVVJFNic6IDB4ODRDNiwKLSAgJ1RFWFRVUkU3JzogMHg4NEM3LAotICAnVEVY
VFVSRTgnOiAweDg0QzgsCi0gICdURVhUVVJFOSc6IDB4ODRDOSwKLSAgJ1RFWFRVUkUxMCc6IDB4
ODRDQSwKLSAgJ1RFWFRVUkUxMSc6IDB4ODRDQiwKLSAgJ1RFWFRVUkUxMic6IDB4ODRDQywKLSAg
J1RFWFRVUkUxMyc6IDB4ODRDRCwKLSAgJ1RFWFRVUkUxNCc6IDB4ODRDRSwKLSAgJ1RFWFRVUkUx
NSc6IDB4ODRDRiwKLSAgJ1RFWFRVUkUxNic6IDB4ODREMCwKLSAgJ1RFWFRVUkUxNyc6IDB4ODRE
MSwKLSAgJ1RFWFRVUkUxOCc6IDB4ODREMiwKLSAgJ1RFWFRVUkUxOSc6IDB4ODREMywKLSAgJ1RF
WFRVUkUyMCc6IDB4ODRENCwKLSAgJ1RFWFRVUkUyMSc6IDB4ODRENSwKLSAgJ1RFWFRVUkUyMic6
IDB4ODRENiwKLSAgJ1RFWFRVUkUyMyc6IDB4ODRENywKLSAgJ1RFWFRVUkUyNCc6IDB4ODREOCwK
LSAgJ1RFWFRVUkUyNSc6IDB4ODREOSwKLSAgJ1RFWFRVUkUyNic6IDB4ODREQSwKLSAgJ1RFWFRV
UkUyNyc6IDB4ODREQiwKLSAgJ1RFWFRVUkUyOCc6IDB4ODREQywKLSAgJ1RFWFRVUkUyOSc6IDB4
ODRERCwKLSAgJ1RFWFRVUkUzMCc6IDB4ODRERSwKLSAgJ1RFWFRVUkUzMSc6IDB4ODRERiwKLSAg
J0FDVElWRV9URVhUVVJFJzogMHg4NEUwLAotICAnQ0xJRU5UX0FDVElWRV9URVhUVVJFJzogMHg4
NEUxLAotICAnTUFYX1RFWFRVUkVfVU5JVFMnOiAweDg0RTIsCi0gICdUUkFOU1BPU0VfTU9ERUxW
SUVXX01BVFJJWCc6IDB4ODRFMywKLSAgJ1RSQU5TUE9TRV9QUk9KRUNUSU9OX01BVFJJWCc6IDB4
ODRFNCwKLSAgJ1RSQU5TUE9TRV9URVhUVVJFX01BVFJJWCc6IDB4ODRFNSwKLSAgJ1RSQU5TUE9T
RV9DT0xPUl9NQVRSSVgnOiAweDg0RTYsCi0gICdTVUJUUkFDVCc6IDB4ODRFNywKLSAgJ0NPTVBS
RVNTRURfQUxQSEEnOiAweDg0RTksCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRSc6IDB4ODRFQSwK
LSAgJ0NPTVBSRVNTRURfTFVNSU5BTkNFX0FMUEhBJzogMHg4NEVCLAotICAnQ09NUFJFU1NFRF9J
TlRFTlNJVFknOiAweDg0RUMsCi0gICdDT01QUkVTU0VEX1JHQic6IDB4ODRFRCwKLSAgJ0NPTVBS
RVNTRURfUkdCQSc6IDB4ODRFRSwKLSAgJ1RFWFRVUkVfQ09NUFJFU1NJT05fSElOVCc6IDB4ODRF
RiwKLSAgJ05PUk1BTF9NQVAnOiAweDg1MTEsCi0gICdSRUZMRUNUSU9OX01BUCc6IDB4ODUxMiwK
LSAgJ1RFWFRVUkVfQ1VCRV9NQVAnOiAweDg1MTMsCi0gICdURVhUVVJFX0JJTkRJTkdfQ1VCRV9N
QVAnOiAweDg1MTQsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gnOiAweDg1MTUsCi0g
ICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gnOiAweDg1MTYsCi0gICdURVhUVVJFX0NVQkVf
TUFQX1BPU0lUSVZFX1knOiAweDg1MTcsCi0gICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kn
OiAweDg1MTgsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1onOiAweDg1MTksCi0gICdU
RVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1onOiAweDg1MUEsCi0gICdQUk9YWV9URVhUVVJFX0NV
QkVfTUFQJzogMHg4NTFCLAotICAnTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSc6IDB4ODUxQywK
LSAgJ0NPTUJJTkUnOiAweDg1NzAsCi0gICdDT01CSU5FX1JHQic6IDB4ODU3MSwKLSAgJ0NPTUJJ
TkVfQUxQSEEnOiAweDg1NzIsCi0gICdSR0JfU0NBTEUnOiAweDg1NzMsCi0gICdBRERfU0lHTkVE
JzogMHg4NTc0LAotICAnSU5URVJQT0xBVEUnOiAweDg1NzUsCi0gICdDT05TVEFOVCc6IDB4ODU3
NiwKLSAgJ1BSSU1BUllfQ09MT1InOiAweDg1NzcsCi0gICdQUkVWSU9VUyc6IDB4ODU3OCwKLSAg
J1NPVVJDRTBfUkdCJzogMHg4NTgwLAotICAnU09VUkNFMV9SR0InOiAweDg1ODEsCi0gICdTT1VS
Q0UyX1JHQic6IDB4ODU4MiwKLSAgJ1NPVVJDRTBfQUxQSEEnOiAweDg1ODgsCi0gICdTT1VSQ0Ux
X0FMUEhBJzogMHg4NTg5LAotICAnU09VUkNFMl9BTFBIQSc6IDB4ODU4QSwKLSAgJ09QRVJBTkQw
X1JHQic6IDB4ODU5MCwKLSAgJ09QRVJBTkQxX1JHQic6IDB4ODU5MSwKLSAgJ09QRVJBTkQyX1JH
Qic6IDB4ODU5MiwKLSAgJ09QRVJBTkQwX0FMUEhBJzogMHg4NTk4LAotICAnT1BFUkFORDFfQUxQ
SEEnOiAweDg1OTksCi0gICdPUEVSQU5EMl9BTFBIQSc6IDB4ODU5QSwKLSAgJ1RFWFRVUkVfQ09N
UFJFU1NFRF9JTUFHRV9TSVpFJzogMHg4NkEwLAotICAnVEVYVFVSRV9DT01QUkVTU0VEJzogMHg4
NkExLAotICAnTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTJzogMHg4NkEyLAotICAnQ09N
UFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMnOiAweDg2QTMsCi0gICdET1QzX1JHQic6IDB4ODZBRSwK
LSAgJ0RPVDNfUkdCQSc6IDB4ODZBRiwKLSAgJ01VTFRJU0FNUExFX0JJVCc6IDB4MjAwMDAwMDAs
Ci0gICdCTEVORF9EU1RfUkdCJzogMHg4MEM4LAotICAnQkxFTkRfU1JDX1JHQic6IDB4ODBDOSwK
LSAgJ0JMRU5EX0RTVF9BTFBIQSc6IDB4ODBDQSwKLSAgJ0JMRU5EX1NSQ19BTFBIQSc6IDB4ODBD
QiwKLSAgJ1BPSU5UX1NJWkVfTUlOJzogMHg4MTI2LAotICAnUE9JTlRfU0laRV9NQVgnOiAweDgx
MjcsCi0gICdQT0lOVF9GQURFX1RIUkVTSE9MRF9TSVpFJzogMHg4MTI4LAotICAnUE9JTlRfRElT
VEFOQ0VfQVRURU5VQVRJT04nOiAweDgxMjksCi0gICdHRU5FUkFURV9NSVBNQVAnOiAweDgxOTEs
Ci0gICdHRU5FUkFURV9NSVBNQVBfSElOVCc6IDB4ODE5MiwKLSAgJ0RFUFRIX0NPTVBPTkVOVDE2
JzogMHg4MUE1LAotICAnREVQVEhfQ09NUE9ORU5UMjQnOiAweDgxQTYsCi0gICdERVBUSF9DT01Q
T05FTlQzMic6IDB4ODFBNywKLSAgJ01JUlJPUkVEX1JFUEVBVCc6IDB4ODM3MCwKLSAgJ0ZPR19D
T09SRElOQVRFX1NPVVJDRSc6IDB4ODQ1MCwKLSAgJ0ZPR19DT09SRElOQVRFJzogMHg4NDUxLAot
ICAnRlJBR01FTlRfREVQVEgnOiAweDg0NTIsCi0gICdDVVJSRU5UX0ZPR19DT09SRElOQVRFJzog
MHg4NDUzLAotICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfVFlQRSc6IDB4ODQ1NCwKLSAgJ0ZPR19D
T09SRElOQVRFX0FSUkFZX1NUUklERSc6IDB4ODQ1NSwKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZ
X1BPSU5URVInOiAweDg0NTYsCi0gICdGT0dfQ09PUkRJTkFURV9BUlJBWSc6IDB4ODQ1NywKLSAg
J0NPTE9SX1NVTSc6IDB4ODQ1OCwKLSAgJ0NVUlJFTlRfU0VDT05EQVJZX0NPTE9SJzogMHg4NDU5
LAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX1NJWkUnOiAweDg0NUEsCi0gICdTRUNPTkRBUllf
Q09MT1JfQVJSQVlfVFlQRSc6IDB4ODQ1QiwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9TVFJJ
REUnOiAweDg0NUMsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfUE9JTlRFUic6IDB4ODQ1RCwK
LSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWSc6IDB4ODQ1RSwKLSAgJ01BWF9URVhUVVJFX0xPRF9C
SUFTJzogMHg4NEZELAotICAnVEVYVFVSRV9GSUxURVJfQ09OVFJPTCc6IDB4ODUwMCwKLSAgJ1RF
WFRVUkVfTE9EX0JJQVMnOiAweDg1MDEsCi0gICdJTkNSX1dSQVAnOiAweDg1MDcsCi0gICdERUNS
X1dSQVAnOiAweDg1MDgsCi0gICdURVhUVVJFX0RFUFRIX1NJWkUnOiAweDg4NEEsCi0gICdERVBU
SF9URVhUVVJFX01PREUnOiAweDg4NEIsCi0gICdURVhUVVJFX0NPTVBBUkVfTU9ERSc6IDB4ODg0
QywKLSAgJ1RFWFRVUkVfQ09NUEFSRV9GVU5DJzogMHg4ODRELAotICAnQ09NUEFSRV9SX1RPX1RF
WFRVUkUnOiAweDg4NEUsCi0gICdCVUZGRVJfU0laRSc6IDB4ODc2NCwKLSAgJ0JVRkZFUl9VU0FH
RSc6IDB4ODc2NSwKLSAgJ1FVRVJZX0NPVU5URVJfQklUUyc6IDB4ODg2NCwKLSAgJ0NVUlJFTlRf
UVVFUlknOiAweDg4NjUsCi0gICdRVUVSWV9SRVNVTFQnOiAweDg4NjYsCi0gICdRVUVSWV9SRVNV
TFRfQVZBSUxBQkxFJzogMHg4ODY3LAotICAnQVJSQVlfQlVGRkVSJzogMHg4ODkyLAotICAnRUxF
TUVOVF9BUlJBWV9CVUZGRVInOiAweDg4OTMsCi0gICdBUlJBWV9CVUZGRVJfQklORElORyc6IDB4
ODg5NCwKLSAgJ0VMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTUsCi0gICdWRVJU
RVhfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OTYsCi0gICdOT1JNQUxfQVJSQVlfQlVGRkVS
X0JJTkRJTkcnOiAweDg4OTcsCi0gICdDT0xPUl9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5
OCwKLSAgJ0lOREVYX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODk5LAotICAnVEVYVFVSRV9D
T09SRF9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5QSwKLSAgJ0VER0VfRkxBR19BUlJBWV9C
VUZGRVJfQklORElORyc6IDB4ODg5QiwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9CVUZGRVJf
QklORElORyc6IDB4ODg5QywKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZX0JVRkZFUl9CSU5ESU5H
JzogMHg4ODlELAotICAnV0VJR0hUX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODlFLAotICAn
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5RiwKLSAgJ1JFQURfT05M
WSc6IDB4ODhCOCwKLSAgJ1dSSVRFX09OTFknOiAweDg4QjksCi0gICdSRUFEX1dSSVRFJzogMHg4
OEJBLAotICAnQlVGRkVSX0FDQ0VTUyc6IDB4ODhCQiwKLSAgJ0JVRkZFUl9NQVBQRUQnOiAweDg4
QkMsCi0gICdCVUZGRVJfTUFQX1BPSU5URVInOiAweDg4QkQsCi0gICdTVFJFQU1fRFJBVyc6IDB4
ODhFMCwKLSAgJ1NUUkVBTV9SRUFEJzogMHg4OEUxLAotICAnU1RSRUFNX0NPUFknOiAweDg4RTIs
Ci0gICdTVEFUSUNfRFJBVyc6IDB4ODhFNCwKLSAgJ1NUQVRJQ19SRUFEJzogMHg4OEU1LAotICAn
U1RBVElDX0NPUFknOiAweDg4RTYsCi0gICdEWU5BTUlDX0RSQVcnOiAweDg4RTgsCi0gICdEWU5B
TUlDX1JFQUQnOiAweDg4RTksCi0gICdEWU5BTUlDX0NPUFknOiAweDg4RUEsCi0gICdTQU1QTEVT
X1BBU1NFRCc6IDB4ODkxNCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCc6IDB4ODYy
MiwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSc6IDB4ODYyMywKLSAgJ1ZFUlRFWF9BVFRS
SUJfQVJSQVlfU1RSSURFJzogMHg4NjI0LAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFJzog
MHg4NjI1LAotICAnQ1VSUkVOVF9WRVJURVhfQVRUUklCJzogMHg4NjI2LAotICAnVkVSVEVYX1BS
T0dSQU1fUE9JTlRfU0laRSc6IDB4ODY0MiwKLSAgJ1ZFUlRFWF9QUk9HUkFNX1RXT19TSURFJzog
MHg4NjQzLAotICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSJzogMHg4NjQ1LAotICAnU1RF
TkNJTF9CQUNLX0ZVTkMnOiAweDg4MDAsCi0gICdTVEVOQ0lMX0JBQ0tfRkFJTCc6IDB4ODgwMSwK
LSAgJ1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwnOiAweDg4MDIsCi0gICdTVEVOQ0lMX0JB
Q0tfUEFTU19ERVBUSF9QQVNTJzogMHg4ODAzLAotICAnTUFYX0RSQVdfQlVGRkVSUyc6IDB4ODgy
NCwKLSAgJ0RSQVdfQlVGRkVSMCc6IDB4ODgyNSwKLSAgJ0RSQVdfQlVGRkVSMSc6IDB4ODgyNiwK
LSAgJ0RSQVdfQlVGRkVSMic6IDB4ODgyNywKLSAgJ0RSQVdfQlVGRkVSMyc6IDB4ODgyOCwKLSAg
J0RSQVdfQlVGRkVSNCc6IDB4ODgyOSwKLSAgJ0RSQVdfQlVGRkVSNSc6IDB4ODgyQSwKLSAgJ0RS
QVdfQlVGRkVSNic6IDB4ODgyQiwKLSAgJ0RSQVdfQlVGRkVSNyc6IDB4ODgyQywKLSAgJ0RSQVdf
QlVGRkVSOCc6IDB4ODgyRCwKLSAgJ0RSQVdfQlVGRkVSOSc6IDB4ODgyRSwKLSAgJ0RSQVdfQlVG
RkVSMTAnOiAweDg4MkYsCi0gICdEUkFXX0JVRkZFUjExJzogMHg4ODMwLAotICAnRFJBV19CVUZG
RVIxMic6IDB4ODgzMSwKLSAgJ0RSQVdfQlVGRkVSMTMnOiAweDg4MzIsCi0gICdEUkFXX0JVRkZF
UjE0JzogMHg4ODMzLAotICAnRFJBV19CVUZGRVIxNSc6IDB4ODgzNCwKLSAgJ0JMRU5EX0VRVUFU
SU9OX0FMUEhBJzogMHg4ODNELAotICAnUE9JTlRfU1BSSVRFJzogMHg4ODYxLAotICAnQ09PUkRf
UkVQTEFDRSc6IDB4ODg2MiwKLSAgJ01BWF9WRVJURVhfQVRUUklCUyc6IDB4ODg2OSwKLSAgJ1ZF
UlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCc6IDB4ODg2QSwKLSAgJ01BWF9URVhUVVJFX0NP
T1JEUyc6IDB4ODg3MSwKLSAgJ01BWF9URVhUVVJFX0lNQUdFX1VOSVRTJzogMHg4ODcyLAotICAn
RlJBR01FTlRfU0hBREVSJzogMHg4QjMwLAotICAnVkVSVEVYX1NIQURFUic6IDB4OEIzMSwKLSAg
J01BWF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMnOiAweDhCNDksCi0gICdNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyc6IDB4OEI0QSwKLSAgJ01BWF9WQVJZSU5HX0ZMT0FUUyc6IDB4
OEI0QiwKLSAgJ01BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyc6IDB4OEI0QywKLSAgJ01B
WF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTJzogMHg4QjRELAotICAnU0hBREVSX1RZUEUn
OiAweDhCNEYsCi0gICdGTE9BVF9WRUMyJzogMHg4QjUwLAotICAnRkxPQVRfVkVDMyc6IDB4OEI1
MSwKLSAgJ0ZMT0FUX1ZFQzQnOiAweDhCNTIsCi0gICdJTlRfVkVDMic6IDB4OEI1MywKLSAgJ0lO
VF9WRUMzJzogMHg4QjU0LAotICAnSU5UX1ZFQzQnOiAweDhCNTUsCi0gICdCT09MJzogMHg4QjU2
LAotICAnQk9PTF9WRUMyJzogMHg4QjU3LAotICAnQk9PTF9WRUMzJzogMHg4QjU4LAotICAnQk9P
TF9WRUM0JzogMHg4QjU5LAotICAnRkxPQVRfTUFUMic6IDB4OEI1QSwKLSAgJ0ZMT0FUX01BVDMn
OiAweDhCNUIsCi0gICdGTE9BVF9NQVQ0JzogMHg4QjVDLAotICAnU0FNUExFUl8xRCc6IDB4OEI1
RCwKLSAgJ1NBTVBMRVJfMkQnOiAweDhCNUUsCi0gICdTQU1QTEVSXzNEJzogMHg4QjVGLAotICAn
U0FNUExFUl9DVUJFJzogMHg4QjYwLAotICAnU0FNUExFUl8xRF9TSEFET1cnOiAweDhCNjEsCi0g
ICdTQU1QTEVSXzJEX1NIQURPVyc6IDB4OEI2MiwKLSAgJ0RFTEVURV9TVEFUVVMnOiAweDhCODAs
Ci0gICdDT01QSUxFX1NUQVRVUyc6IDB4OEI4MSwKLSAgJ0xJTktfU1RBVFVTJzogMHg4QjgyLAot
ICAnVkFMSURBVEVfU1RBVFVTJzogMHg4QjgzLAotICAnSU5GT19MT0dfTEVOR1RIJzogMHg4Qjg0
LAotICAnQVRUQUNIRURfU0hBREVSUyc6IDB4OEI4NSwKLSAgJ0FDVElWRV9VTklGT1JNUyc6IDB4
OEI4NiwKLSAgJ0FDVElWRV9VTklGT1JNX01BWF9MRU5HVEgnOiAweDhCODcsCi0gICdTSEFERVJf
U09VUkNFX0xFTkdUSCc6IDB4OEI4OCwKLSAgJ0FDVElWRV9BVFRSSUJVVEVTJzogMHg4Qjg5LAot
ICAnQUNUSVZFX0FUVFJJQlVURV9NQVhfTEVOR1RIJzogMHg4QjhBLAotICAnRlJBR01FTlRfU0hB
REVSX0RFUklWQVRJVkVfSElOVCc6IDB4OEI4QiwKLSAgJ1NIQURJTkdfTEFOR1VBR0VfVkVSU0lP
Tic6IDB4OEI4QywKLSAgJ0NVUlJFTlRfUFJPR1JBTSc6IDB4OEI4RCwKLSAgJ1BPSU5UX1NQUklU
RV9DT09SRF9PUklHSU4nOiAweDhDQTAsCi0gICdMT1dFUl9MRUZUJzogMHg4Q0ExLAotICAnVVBQ
RVJfTEVGVCc6IDB4OENBMiwKLSAgJ1NURU5DSUxfQkFDS19SRUYnOiAweDhDQTMsCi0gICdTVEVO
Q0lMX0JBQ0tfVkFMVUVfTUFTSyc6IDB4OENBNCwKLSAgJ1NURU5DSUxfQkFDS19XUklURU1BU0sn
OiAweDhDQTUsCi0gICdDVVJSRU5UX1JBU1RFUl9TRUNPTkRBUllfQ09MT1InOiAweDg0NUYsCi0g
ICdQSVhFTF9QQUNLX0JVRkZFUic6IDB4ODhFQiwKLSAgJ1BJWEVMX1VOUEFDS19CVUZGRVInOiAw
eDg4RUMsCi0gICdQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HJzogMHg4OEVELAotICAnUElYRUxf
VU5QQUNLX0JVRkZFUl9CSU5ESU5HJzogMHg4OEVGLAotICAnRkxPQVRfTUFUMngzJzogMHg4QjY1
LAotICAnRkxPQVRfTUFUMng0JzogMHg4QjY2LAotICAnRkxPQVRfTUFUM3gyJzogMHg4QjY3LAot
ICAnRkxPQVRfTUFUM3g0JzogMHg4QjY4LAotICAnRkxPQVRfTUFUNHgyJzogMHg4QjY5LAotICAn
RkxPQVRfTUFUNHgzJzogMHg4QjZBLAotICAnU1JHQic6IDB4OEM0MCwKLSAgJ1NSR0I4JzogMHg4
QzQxLAotICAnU1JHQl9BTFBIQSc6IDB4OEM0MiwKLSAgJ1NSR0I4X0FMUEhBOCc6IDB4OEM0MywK
LSAgJ1NMVU1JTkFOQ0VfQUxQSEEnOiAweDhDNDQsCi0gICdTTFVNSU5BTkNFOF9BTFBIQTgnOiAw
eDhDNDUsCi0gICdTTFVNSU5BTkNFJzogMHg4QzQ2LAotICAnU0xVTUlOQU5DRTgnOiAweDhDNDcs
Ci0gICdDT01QUkVTU0VEX1NSR0InOiAweDhDNDgsCi0gICdDT01QUkVTU0VEX1NSR0JfQUxQSEEn
OiAweDhDNDksCi0gICdDT01QUkVTU0VEX1NMVU1JTkFOQ0UnOiAweDhDNEEsCi0gICdDT01QUkVT
U0VEX1NMVU1JTkFOQ0VfQUxQSEEnOiAweDhDNEIsCi0gICdDT05URVhUX0ZMQUdfRk9SV0FSRF9D
T01QQVRJQkxFX0JJVCc6IDB4MDAwMSwKLSAgJ01BSk9SX1ZFUlNJT04nOiAweDgyMUIsCi0gICdN
SU5PUl9WRVJTSU9OJzogMHg4MjFDLAotICAnTlVNX0VYVEVOU0lPTlMnOiAweDgyMUQsCi0gICdD
T05URVhUX0ZMQUdTJzogMHg4MjFFLAotICAnREVQVEhfQlVGRkVSJzogMHg4MjIzLAotICAnU1RF
TkNJTF9CVUZGRVInOiAweDgyMjQsCi0gICdDT01QUkVTU0VEX1JFRCc6IDB4ODIyNSwKLSAgJ0NP
TVBSRVNTRURfUkcnOiAweDgyMjYsCi0gICdSR0JBMzJGJzogMHg4ODE0LAotICAnUkdCMzJGJzog
MHg4ODE1LAotICAnUkdCQTE2Ric6IDB4ODgxQSwKLSAgJ1JHQjE2Ric6IDB4ODgxQiwKLSAgJ1ZF
UlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUic6IDB4ODhGRCwKLSAgJ01BWF9BUlJBWV9URVhUVVJF
X0xBWUVSUyc6IDB4ODhGRiwKLSAgJ01JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCc6IDB4ODkwNCwK
LSAgJ01BWF9QUk9HUkFNX1RFWEVMX09GRlNFVCc6IDB4ODkwNSwKLSAgJ0NMQU1QX1ZFUlRFWF9D
T0xPUic6IDB4ODkxQSwKLSAgJ0NMQU1QX0ZSQUdNRU5UX0NPTE9SJzogMHg4OTFCLAotICAnQ0xB
TVBfUkVBRF9DT0xPUic6IDB4ODkxQywKLSAgJ0ZJWEVEX09OTFknOiAweDg5MUQsCi0gICdURVhU
VVJFX1JFRF9UWVBFJzogMHg4QzEwLAotICAnVEVYVFVSRV9HUkVFTl9UWVBFJzogMHg4QzExLAot
ICAnVEVYVFVSRV9CTFVFX1RZUEUnOiAweDhDMTIsCi0gICdURVhUVVJFX0FMUEhBX1RZUEUnOiAw
eDhDMTMsCi0gICdURVhUVVJFX0xVTUlOQU5DRV9UWVBFJzogMHg4QzE0LAotICAnVEVYVFVSRV9J
TlRFTlNJVFlfVFlQRSc6IDB4OEMxNSwKLSAgJ1RFWFRVUkVfREVQVEhfVFlQRSc6IDB4OEMxNiwK
LSAgJ1VOU0lHTkVEX05PUk1BTElaRUQnOiAweDhDMTcsCi0gICdURVhUVVJFXzFEX0FSUkFZJzog
MHg4QzE4LAotICAnUFJPWFlfVEVYVFVSRV8xRF9BUlJBWSc6IDB4OEMxOSwKLSAgJ1RFWFRVUkVf
MkRfQVJSQVknOiAweDhDMUEsCi0gICdQUk9YWV9URVhUVVJFXzJEX0FSUkFZJzogMHg4QzFCLAot
ICAnVEVYVFVSRV9CSU5ESU5HXzFEX0FSUkFZJzogMHg4QzFDLAotICAnVEVYVFVSRV9CSU5ESU5H
XzJEX0FSUkFZJzogMHg4QzFELAotICAnUjExRl9HMTFGX0IxMEYnOiAweDhDM0EsCi0gICdVTlNJ
R05FRF9JTlRfMTBGXzExRl8xMUZfUkVWJzogMHg4QzNCLAotICAnUkdCOV9FNSc6IDB4OEMzRCwK
LSAgJ1VOU0lHTkVEX0lOVF81XzlfOV85X1JFVic6IDB4OEMzRSwKLSAgJ1RFWFRVUkVfU0hBUkVE
X1NJWkUnOiAweDhDM0YsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR19NQVhfTEVOR1RI
JzogMHg4Qzc2LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9NT0RFJzogMHg4QzdGLAot
ICAnTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRTJzogMHg4QzgwLAot
ICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdTJzogMHg4QzgzLAotICAnVFJBTlNGT1JNX0ZF
RURCQUNLX0JVRkZFUl9TVEFSVCc6IDB4OEM4NCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfU0laRSc6IDB4OEM4NSwKLSAgJ1BSSU1JVElWRVNfR0VORVJBVEVEJzogMHg4Qzg3LAotICAn
VFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTic6IDB4OEM4OCwKLSAgJ1JBU1RF
UklaRVJfRElTQ0FSRCc6IDB4OEM4OSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfSU5URVJM
RUFWRURfQ09NUE9ORU5UUyc6IDB4OEM4QSwKLSAgJ01BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQ
QVJBVEVfQVRUUklCUyc6IDB4OEM4QiwKLSAgJ0lOVEVSTEVBVkVEX0FUVFJJQlMnOiAweDhDOEMs
Ci0gICdTRVBBUkFURV9BVFRSSUJTJzogMHg4QzhELAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUic6IDB4OEM4RSwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORyc6IDB4
OEM4RiwKLSAgJ1JHQkEzMlVJJzogMHg4RDcwLAotICAnUkdCMzJVSSc6IDB4OEQ3MSwKLSAgJ1JH
QkExNlVJJzogMHg4RDc2LAotICAnUkdCMTZVSSc6IDB4OEQ3NywKLSAgJ1JHQkE4VUknOiAweDhE
N0MsCi0gICdSR0I4VUknOiAweDhEN0QsCi0gICdSR0JBMzJJJzogMHg4RDgyLAotICAnUkdCMzJJ
JzogMHg4RDgzLAotICAnUkdCQTE2SSc6IDB4OEQ4OCwKLSAgJ1JHQjE2SSc6IDB4OEQ4OSwKLSAg
J1JHQkE4SSc6IDB4OEQ4RSwKLSAgJ1JHQjhJJzogMHg4RDhGLAotICAnUkVEX0lOVEVHRVInOiAw
eDhEOTQsCi0gICdHUkVFTl9JTlRFR0VSJzogMHg4RDk1LAotICAnQkxVRV9JTlRFR0VSJzogMHg4
RDk2LAotICAnQUxQSEFfSU5URUdFUic6IDB4OEQ5NywKLSAgJ1JHQl9JTlRFR0VSJzogMHg4RDk4
LAotICAnUkdCQV9JTlRFR0VSJzogMHg4RDk5LAotICAnQkdSX0lOVEVHRVInOiAweDhEOUEsCi0g
ICdCR1JBX0lOVEVHRVInOiAweDhEOUIsCi0gICdTQU1QTEVSXzFEX0FSUkFZJzogMHg4REMwLAot
ICAnU0FNUExFUl8yRF9BUlJBWSc6IDB4OERDMSwKLSAgJ1NBTVBMRVJfMURfQVJSQVlfU0hBRE9X
JzogMHg4REMzLAotICAnU0FNUExFUl8yRF9BUlJBWV9TSEFET1cnOiAweDhEQzQsCi0gICdTQU1Q
TEVSX0NVQkVfU0hBRE9XJzogMHg4REM1LAotICAnVU5TSUdORURfSU5UX1ZFQzInOiAweDhEQzYs
Ci0gICdVTlNJR05FRF9JTlRfVkVDMyc6IDB4OERDNywKLSAgJ1VOU0lHTkVEX0lOVF9WRUM0Jzog
MHg4REM4LAotICAnSU5UX1NBTVBMRVJfMUQnOiAweDhEQzksCi0gICdJTlRfU0FNUExFUl8yRCc6
IDB4OERDQSwKLSAgJ0lOVF9TQU1QTEVSXzNEJzogMHg4RENCLAotICAnSU5UX1NBTVBMRVJfQ1VC
RSc6IDB4OERDQywKLSAgJ0lOVF9TQU1QTEVSXzFEX0FSUkFZJzogMHg4RENFLAotICAnSU5UX1NB
TVBMRVJfMkRfQVJSQVknOiAweDhEQ0YsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl8xRCc6IDB4
OEREMSwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzJEJzogMHg4REQyLAotICAnVU5TSUdORURf
SU5UX1NBTVBMRVJfM0QnOiAweDhERDMsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFJzog
MHg4REQ0LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMURfQVJSQVknOiAweDhERDYsCi0gICdV
TlNJR05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSc6IDB4OERENywKLSAgJ1FVRVJZX1dBSVQnOiAw
eDhFMTMsCi0gICdRVUVSWV9OT19XQUlUJzogMHg4RTE0LAotICAnUVVFUllfQllfUkVHSU9OX1dB
SVQnOiAweDhFMTUsCi0gICdRVUVSWV9CWV9SRUdJT05fTk9fV0FJVCc6IDB4OEUxNiwKLSAgJ01V
TFRJU0FNUExFXzNERlgnOiAweDg2QjIsCi0gICdTQU1QTEVfQlVGRkVSU18zREZYJzogMHg4NkIz
LAotICAnU0FNUExFU18zREZYJzogMHg4NkI0LAotICAnTVVMVElTQU1QTEVfQklUXzNERlgnOiAw
eDIwMDAwMDAwLAotICAnQ09NUFJFU1NFRF9SR0JfRlhUMV8zREZYJzogMHg4NkIwLAotICAnQ09N
UFJFU1NFRF9SR0JBX0ZYVDFfM0RGWCc6IDB4ODZCMSwKLSAgJ1VOUEFDS19DTElFTlRfU1RPUkFH
RV9BUFBMRSc6IDB4ODVCMiwKLSAgJ0VMRU1FTlRfQVJSQVlfQVBQTEUnOiAweDg3NjgsCi0gICdF
TEVNRU5UX0FSUkFZX1RZUEVfQVBQTEUnOiAweDg3NjksCi0gICdFTEVNRU5UX0FSUkFZX1BPSU5U
RVJfQVBQTEUnOiAweDg3NkEsCi0gICdIQUxGX0FQUExFJzogMHgxNDBCLAotICAnUkdCQV9GTE9B
VDMyX0FQUExFJzogMHg4ODE0LAotICAnUkdCX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTUsCi0gICdB
TFBIQV9GTE9BVDMyX0FQUExFJzogMHg4ODE2LAotICAnSU5URU5TSVRZX0ZMT0FUMzJfQVBQTEUn
OiAweDg4MTcsCi0gICdMVU1JTkFOQ0VfRkxPQVQzMl9BUFBMRSc6IDB4ODgxOCwKLSAgJ0xVTUlO
QU5DRV9BTFBIQV9GTE9BVDMyX0FQUExFJzogMHg4ODE5LAotICAnUkdCQV9GTE9BVDE2X0FQUExF
JzogMHg4ODFBLAotICAnUkdCX0ZMT0FUMTZfQVBQTEUnOiAweDg4MUIsCi0gICdBTFBIQV9GTE9B
VDE2X0FQUExFJzogMHg4ODFDLAotICAnSU5URU5TSVRZX0ZMT0FUMTZfQVBQTEUnOiAweDg4MUQs
Ci0gICdMVU1JTkFOQ0VfRkxPQVQxNl9BUFBMRSc6IDB4ODgxRSwKLSAgJ0xVTUlOQU5DRV9BTFBI
QV9GTE9BVDE2X0FQUExFJzogMHg4ODFGLAotICAnQ09MT1JfRkxPQVRfQVBQTEUnOiAweDhBMEYs
Ci0gICdCVUZGRVJfU0VSSUFMSVpFRF9NT0RJRllfQVBQTEUnOiAweDhBMTIsCi0gICdCVUZGRVJf
RkxVU0hJTkdfVU5NQVBfQVBQTEUnOiAweDhBMTMsCi0gICdNSU5fUEJVRkZFUl9WSUVXUE9SVF9E
SU1TX0FQUExFJzogMHg4QTEwLAotICAnTElHSFRfTU9ERUxfU1BFQ1VMQVJfVkVDVE9SX0FQUExF
JzogMHg4NUIwLAotICAnVEVYVFVSRV9SQU5HRV9MRU5HVEhfQVBQTEUnOiAweDg1QjcsCi0gICdU
RVhUVVJFX1JBTkdFX1BPSU5URVJfQVBQTEUnOiAweDg1QjgsCi0gICdURVhUVVJFX1NUT1JBR0Vf
SElOVF9BUFBMRSc6IDB4ODVCQywKLSAgJ1NUT1JBR0VfUFJJVkFURV9BUFBMRSc6IDB4ODVCRCwK
LSAgJ1NUT1JBR0VfQ0FDSEVEX0FQUExFJzogMHg4NUJFLAotICAnU1RPUkFHRV9TSEFSRURfQVBQ
TEUnOiAweDg1QkYsCi0gICdUUkFOU0ZPUk1fSElOVF9BUFBMRSc6IDB4ODVCMSwKLSAgJ1ZFUlRF
WF9BUlJBWV9CSU5ESU5HX0FQUExFJzogMHg4NUI1LAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX0FQ
UExFJzogMHg4NTFELAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX0xFTkdUSF9BUFBMRSc6IDB4ODUx
RSwKLSAgJ1ZFUlRFWF9BUlJBWV9TVE9SQUdFX0hJTlRfQVBQTEUnOiAweDg1MUYsCi0gICdNQVhf
VkVSVEVYX0FSUkFZX1JBTkdFX0VMRU1FTlRfQVBQTEUnOiAweDg1MjAsCi0gICdWRVJURVhfQVJS
QVlfUkFOR0VfUE9JTlRFUl9BUFBMRSc6IDB4ODUyMSwKLSAgJ1NUT1JBR0VfQ0FDSEVEX0FQUExF
JzogMHg4NUJFLAotICAnU1RPUkFHRV9TSEFSRURfQVBQTEUnOiAweDg1QkYsCi0gICdZQ0JDUl80
MjJfQVBQTEUnOiAweDg1QjksCi0gICdVTlNJR05FRF9TSE9SVF84XzhfQVBQTEUnOiAweDg1QkEs
Ci0gICdVTlNJR05FRF9TSE9SVF84XzhfUkVWX0FQUExFJzogMHg4NUJCLAotICAnUkdCQV9GTE9B
VF9NT0RFX0FSQic6IDB4ODgyMCwKLSAgJ0NMQU1QX1ZFUlRFWF9DT0xPUl9BUkInOiAweDg5MUEs
Ci0gICdDTEFNUF9GUkFHTUVOVF9DT0xPUl9BUkInOiAweDg5MUIsCi0gICdDTEFNUF9SRUFEX0NP
TE9SX0FSQic6IDB4ODkxQywKLSAgJ0ZJWEVEX09OTFlfQVJCJzogMHg4OTFELAotICAnREVQVEhf
Q09NUE9ORU5UMzJGJzogMHg4Q0FDLAotICAnREVQVEgzMkZfU1RFTkNJTDgnOiAweDhDQUQsCi0g
ICdGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYnOiAweDhEQUQsCi0gICdERVBUSF9DT01Q
T05FTlQxNl9BUkInOiAweDgxQTUsCi0gICdERVBUSF9DT01QT05FTlQyNF9BUkInOiAweDgxQTYs
Ci0gICdERVBUSF9DT01QT05FTlQzMl9BUkInOiAweDgxQTcsCi0gICdURVhUVVJFX0RFUFRIX1NJ
WkVfQVJCJzogMHg4ODRBLAotICAnREVQVEhfVEVYVFVSRV9NT0RFX0FSQic6IDB4ODg0QiwKLSAg
J01BWF9EUkFXX0JVRkZFUlNfQVJCJzogMHg4ODI0LAotICAnRFJBV19CVUZGRVIwX0FSQic6IDB4
ODgyNSwKLSAgJ0RSQVdfQlVGRkVSMV9BUkInOiAweDg4MjYsCi0gICdEUkFXX0JVRkZFUjJfQVJC
JzogMHg4ODI3LAotICAnRFJBV19CVUZGRVIzX0FSQic6IDB4ODgyOCwKLSAgJ0RSQVdfQlVGRkVS
NF9BUkInOiAweDg4MjksCi0gICdEUkFXX0JVRkZFUjVfQVJCJzogMHg4ODJBLAotICAnRFJBV19C
VUZGRVI2X0FSQic6IDB4ODgyQiwKLSAgJ0RSQVdfQlVGRkVSN19BUkInOiAweDg4MkMsCi0gICdE
UkFXX0JVRkZFUjhfQVJCJzogMHg4ODJELAotICAnRFJBV19CVUZGRVI5X0FSQic6IDB4ODgyRSwK
LSAgJ0RSQVdfQlVGRkVSMTBfQVJCJzogMHg4ODJGLAotICAnRFJBV19CVUZGRVIxMV9BUkInOiAw
eDg4MzAsCi0gICdEUkFXX0JVRkZFUjEyX0FSQic6IDB4ODgzMSwKLSAgJ0RSQVdfQlVGRkVSMTNf
QVJCJzogMHg4ODMyLAotICAnRFJBV19CVUZGRVIxNF9BUkInOiAweDg4MzMsCi0gICdEUkFXX0JV
RkZFUjE1X0FSQic6IDB4ODgzNCwKLSAgJ0ZSQUdNRU5UX1BST0dSQU1fQVJCJzogMHg4ODA0LAot
ICAnUFJPR1JBTV9BTFVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwNSwKLSAgJ1BST0dSQU1fVEVY
X0lOU1RSVUNUSU9OU19BUkInOiAweDg4MDYsCi0gICdQUk9HUkFNX1RFWF9JTkRJUkVDVElPTlNf
QVJCJzogMHg4ODA3LAotICAnUFJPR1JBTV9OQVRJVkVfQUxVX0lOU1RSVUNUSU9OU19BUkInOiAw
eDg4MDgsCi0gICdQUk9HUkFNX05BVElWRV9URVhfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwOSwK
LSAgJ1BST0dSQU1fTkFUSVZFX1RFWF9JTkRJUkVDVElPTlNfQVJCJzogMHg4ODBBLAotICAnTUFY
X1BST0dSQU1fQUxVX0lOU1RSVUNUSU9OU19BUkInOiAweDg4MEIsCi0gICdNQVhfUFJPR1JBTV9U
RVhfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwQywKLSAgJ01BWF9QUk9HUkFNX1RFWF9JTkRJUkVD
VElPTlNfQVJCJzogMHg4ODBELAotICAnTUFYX1BST0dSQU1fTkFUSVZFX0FMVV9JTlNUUlVDVElP
TlNfQVJCJzogMHg4ODBFLAotICAnTUFYX1BST0dSQU1fTkFUSVZFX1RFWF9JTlNUUlVDVElPTlNf
QVJCJzogMHg4ODBGLAotICAnTUFYX1BST0dSQU1fTkFUSVZFX1RFWF9JTkRJUkVDVElPTlNfQVJC
JzogMHg4ODEwLAotICAnTUFYX1RFWFRVUkVfQ09PUkRTX0FSQic6IDB4ODg3MSwKLSAgJ01BWF9U
RVhUVVJFX0lNQUdFX1VOSVRTX0FSQic6IDB4ODg3MiwKLSAgJ0ZSQUdNRU5UX1NIQURFUl9BUkIn
OiAweDhCMzAsCi0gICdNQVhfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTX0FSQic6IDB4OEI0
OSwKLSAgJ0ZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfQVJCJzogMHg4QjhCLAotICAn
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04nOiAweDA1MDYsCi0gICdGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HJzogMHg4MjEwLAotICAnRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9DT01QT05FTlRfVFlQRSc6IDB4ODIxMSwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
UkVEX1NJWkUnOiAweDgyMTIsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUn
OiAweDgyMTMsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSc6IDB4ODIxNCwK
LSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSc6IDB4ODIxNSwKLSAgJ0ZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSc6IDB4ODIxNiwKLSAgJ0ZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfU1RFTkNJTF9TSVpFJzogMHg4MjE3LAotICAnRlJBTUVCVUZGRVJfREVGQVVMVCc6
IDB4ODIxOCwKLSAgJ0ZSQU1FQlVGRkVSX1VOREVGSU5FRCc6IDB4ODIxOSwKLSAgJ0RFUFRIX1NU
RU5DSUxfQVRUQUNITUVOVCc6IDB4ODIxQSwKLSAgJ0lOREVYJzogMHg4MjIyLAotICAnTUFYX1JF
TkRFUkJVRkZFUl9TSVpFJzogMHg4NEU4LAotICAnREVQVEhfU1RFTkNJTCc6IDB4ODRGOSwKLSAg
J1VOU0lHTkVEX0lOVF8yNF84JzogMHg4NEZBLAotICAnREVQVEgyNF9TVEVOQ0lMOCc6IDB4ODhG
MCwKLSAgJ1RFWFRVUkVfU1RFTkNJTF9TSVpFJzogMHg4OEYxLAotICAnVU5TSUdORURfTk9STUFM
SVpFRCc6IDB4OEMxNywKLSAgJ1NSR0InOiAweDhDNDAsCi0gICdEUkFXX0ZSQU1FQlVGRkVSX0JJ
TkRJTkcnOiAweDhDQTYsCi0gICdGUkFNRUJVRkZFUl9CSU5ESU5HJzogMHg4Q0E2LAotICAnUkVO
REVSQlVGRkVSX0JJTkRJTkcnOiAweDhDQTcsCi0gICdSRUFEX0ZSQU1FQlVGRkVSJzogMHg4Q0E4
LAotICAnRFJBV19GUkFNRUJVRkZFUic6IDB4OENBOSwKLSAgJ1JFQURfRlJBTUVCVUZGRVJfQklO
RElORyc6IDB4OENBQSwKLSAgJ1JFTkRFUkJVRkZFUl9TQU1QTEVTJzogMHg4Q0FCLAotICAnRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSc6IDB4OENEMCwKLSAgJ0ZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX05BTUUnOiAweDhDRDEsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX1RFWFRVUkVfTEVWRUwnOiAweDhDRDIsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfQ1VCRV9NQVBfRkFDRSc6IDB4OENEMywKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
VEVYVFVSRV9MQVlFUic6IDB4OENENCwKLSAgJ0ZSQU1FQlVGRkVSX0NPTVBMRVRFJzogMHg4Q0Q1
LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UJzogMHg4Q0Q2LAotICAnRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQnOiAweDhDRDcsCi0gICdGUkFN
RUJVRkZFUl9JTkNPTVBMRVRFX0RSQVdfQlVGRkVSJzogMHg4Q0RCLAotICAnRlJBTUVCVUZGRVJf
SU5DT01QTEVURV9SRUFEX0JVRkZFUic6IDB4OENEQywKLSAgJ0ZSQU1FQlVGRkVSX1VOU1VQUE9S
VEVEJzogMHg4Q0RELAotICAnTUFYX0NPTE9SX0FUVEFDSE1FTlRTJzogMHg4Q0RGLAotICAnQ09M
T1JfQVRUQUNITUVOVDAnOiAweDhDRTAsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMSc6IDB4OENFMSwK
LSAgJ0NPTE9SX0FUVEFDSE1FTlQyJzogMHg4Q0UyLAotICAnQ09MT1JfQVRUQUNITUVOVDMnOiAw
eDhDRTMsCi0gICdDT0xPUl9BVFRBQ0hNRU5UNCc6IDB4OENFNCwKLSAgJ0NPTE9SX0FUVEFDSE1F
TlQ1JzogMHg4Q0U1LAotICAnQ09MT1JfQVRUQUNITUVOVDYnOiAweDhDRTYsCi0gICdDT0xPUl9B
VFRBQ0hNRU5UNyc6IDB4OENFNywKLSAgJ0NPTE9SX0FUVEFDSE1FTlQ4JzogMHg4Q0U4LAotICAn
Q09MT1JfQVRUQUNITUVOVDknOiAweDhDRTksCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTAnOiAweDhD
RUEsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTEnOiAweDhDRUIsCi0gICdDT0xPUl9BVFRBQ0hNRU5U
MTInOiAweDhDRUMsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTMnOiAweDhDRUQsCi0gICdDT0xPUl9B
VFRBQ0hNRU5UMTQnOiAweDhDRUUsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTUnOiAweDhDRUYsCi0g
ICdERVBUSF9BVFRBQ0hNRU5UJzogMHg4RDAwLAotICAnU1RFTkNJTF9BVFRBQ0hNRU5UJzogMHg4
RDIwLAotICAnRlJBTUVCVUZGRVInOiAweDhENDAsCi0gICdSRU5ERVJCVUZGRVInOiAweDhENDEs
Ci0gICdSRU5ERVJCVUZGRVJfV0lEVEgnOiAweDhENDIsCi0gICdSRU5ERVJCVUZGRVJfSEVJR0hU
JzogMHg4RDQzLAotICAnUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCc6IDB4OEQ0NCwKLSAg
J1NURU5DSUxfSU5ERVgxJzogMHg4RDQ2LAotICAnU1RFTkNJTF9JTkRFWDQnOiAweDhENDcsCi0g
ICdTVEVOQ0lMX0lOREVYOCc6IDB4OEQ0OCwKLSAgJ1NURU5DSUxfSU5ERVgxNic6IDB4OEQ0OSwK
LSAgJ1JFTkRFUkJVRkZFUl9SRURfU0laRSc6IDB4OEQ1MCwKLSAgJ1JFTkRFUkJVRkZFUl9HUkVF
Tl9TSVpFJzogMHg4RDUxLAotICAnUkVOREVSQlVGRkVSX0JMVUVfU0laRSc6IDB4OEQ1MiwKLSAg
J1JFTkRFUkJVRkZFUl9BTFBIQV9TSVpFJzogMHg4RDUzLAotICAnUkVOREVSQlVGRkVSX0RFUFRI
X1NJWkUnOiAweDhENTQsCi0gICdSRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFJzogMHg4RDU1LAot
ICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NVUxUSVNBTVBMRSc6IDB4OEQ1NiwKLSAgJ01BWF9T
QU1QTEVTJzogMHg4RDU3LAotICAnRlJBTUVCVUZGRVJfU1JHQic6IDB4OERCOSwKLSAgJ0xJTkVT
X0FESkFDRU5DWV9BUkInOiAweEEsCi0gICdMSU5FX1NUUklQX0FESkFDRU5DWV9BUkInOiAweEIs
Ci0gICdUUklBTkdMRVNfQURKQUNFTkNZX0FSQic6IDB4QywKLSAgJ1RSSUFOR0xFX1NUUklQX0FE
SkFDRU5DWV9BUkInOiAweEQsCi0gICdQUk9HUkFNX1BPSU5UX1NJWkVfQVJCJzogMHg4NjQyLAot
ICAnTUFYX0dFT01FVFJZX1RFWFRVUkVfSU1BR0VfVU5JVFNfQVJCJzogMHg4QzI5LAotICAnRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSJzogMHg4Q0Q0LAotICAnRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9MQVlFUkVEX0FSQic6IDB4OERBNywKLSAgJ0ZSQU1FQlVGRkVSX0lOQ09N
UExFVEVfTEFZRVJfVEFSR0VUU19BUkInOiAweDhEQTgsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBM
RVRFX0xBWUVSX0NPVU5UX0FSQic6IDB4OERBOSwKLSAgJ0dFT01FVFJZX1NIQURFUl9BUkInOiAw
eDhERDksCi0gICdHRU9NRVRSWV9WRVJUSUNFU19PVVRfQVJCJzogMHg4RERBLAotICAnR0VPTUVU
UllfSU5QVVRfVFlQRV9BUkInOiAweDhEREIsCi0gICdHRU9NRVRSWV9PVVRQVVRfVFlQRV9BUkIn
OiAweDhEREMsCi0gICdNQVhfR0VPTUVUUllfVkFSWUlOR19DT01QT05FTlRTX0FSQic6IDB4OERE
RCwKLSAgJ01BWF9WRVJURVhfVkFSWUlOR19DT01QT05FTlRTX0FSQic6IDB4OERERSwKLSAgJ01B
WF9HRU9NRVRSWV9VTklGT1JNX0NPTVBPTkVOVFNfQVJCJzogMHg4RERGLAotICAnTUFYX0dFT01F
VFJZX09VVFBVVF9WRVJUSUNFU19BUkInOiAweDhERTAsCi0gICdNQVhfR0VPTUVUUllfVE9UQUxf
T1VUUFVUX0NPTVBPTkVOVFNfQVJCJzogMHg4REUxLAotICAnSEFMRl9GTE9BVF9BUkInOiAweDE0
MEIsCi0gICdIQUxGX0ZMT0FUJzogMHgxNDBCLAotICAnQ09OU1RBTlRfQ09MT1InOiAweDgwMDEs
Ci0gICdPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1InOiAweDgwMDIsCi0gICdDT05TVEFOVF9BTFBI
QSc6IDB4ODAwMywKLSAgJ09ORV9NSU5VU19DT05TVEFOVF9BTFBIQSc6IDB4ODAwNCwKLSAgJ0JM
RU5EX0NPTE9SJzogMHg4MDA1LAotICAnRlVOQ19BREQnOiAweDgwMDYsCi0gICdNSU4nOiAweDgw
MDcsCi0gICdNQVgnOiAweDgwMDgsCi0gICdCTEVORF9FUVVBVElPTic6IDB4ODAwOSwKLSAgJ0ZV
TkNfU1VCVFJBQ1QnOiAweDgwMEEsCi0gICdGVU5DX1JFVkVSU0VfU1VCVFJBQ1QnOiAweDgwMEIs
Ci0gICdDT05WT0xVVElPTl8xRCc6IDB4ODAxMCwKLSAgJ0NPTlZPTFVUSU9OXzJEJzogMHg4MDEx
LAotICAnU0VQQVJBQkxFXzJEJzogMHg4MDEyLAotICAnQ09OVk9MVVRJT05fQk9SREVSX01PREUn
OiAweDgwMTMsCi0gICdDT05WT0xVVElPTl9GSUxURVJfU0NBTEUnOiAweDgwMTQsCi0gICdDT05W
T0xVVElPTl9GSUxURVJfQklBUyc6IDB4ODAxNSwKLSAgJ1JFRFVDRSc6IDB4ODAxNiwKLSAgJ0NP
TlZPTFVUSU9OX0ZPUk1BVCc6IDB4ODAxNywKLSAgJ0NPTlZPTFVUSU9OX1dJRFRIJzogMHg4MDE4
LAotICAnQ09OVk9MVVRJT05fSEVJR0hUJzogMHg4MDE5LAotICAnTUFYX0NPTlZPTFVUSU9OX1dJ
RFRIJzogMHg4MDFBLAotICAnTUFYX0NPTlZPTFVUSU9OX0hFSUdIVCc6IDB4ODAxQiwKLSAgJ1BP
U1RfQ09OVk9MVVRJT05fUkVEX1NDQUxFJzogMHg4MDFDLAotICAnUE9TVF9DT05WT0xVVElPTl9H
UkVFTl9TQ0FMRSc6IDB4ODAxRCwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQkxVRV9TQ0FMRSc6IDB4
ODAxRSwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQUxQSEFfU0NBTEUnOiAweDgwMUYsCi0gICdQT1NU
X0NPTlZPTFVUSU9OX1JFRF9CSUFTJzogMHg4MDIwLAotICAnUE9TVF9DT05WT0xVVElPTl9HUkVF
Tl9CSUFTJzogMHg4MDIxLAotICAnUE9TVF9DT05WT0xVVElPTl9CTFVFX0JJQVMnOiAweDgwMjIs
Ci0gICdQT1NUX0NPTlZPTFVUSU9OX0FMUEhBX0JJQVMnOiAweDgwMjMsCi0gICdISVNUT0dSQU0n
OiAweDgwMjQsCi0gICdQUk9YWV9ISVNUT0dSQU0nOiAweDgwMjUsCi0gICdISVNUT0dSQU1fV0lE
VEgnOiAweDgwMjYsCi0gICdISVNUT0dSQU1fRk9STUFUJzogMHg4MDI3LAotICAnSElTVE9HUkFN
X1JFRF9TSVpFJzogMHg4MDI4LAotICAnSElTVE9HUkFNX0dSRUVOX1NJWkUnOiAweDgwMjksCi0g
ICdISVNUT0dSQU1fQkxVRV9TSVpFJzogMHg4MDJBLAotICAnSElTVE9HUkFNX0FMUEhBX1NJWkUn
OiAweDgwMkIsCi0gICdISVNUT0dSQU1fTFVNSU5BTkNFX1NJWkUnOiAweDgwMkMsCi0gICdISVNU
T0dSQU1fU0lOSyc6IDB4ODAyRCwKLSAgJ01JTk1BWCc6IDB4ODAyRSwKLSAgJ01JTk1BWF9GT1JN
QVQnOiAweDgwMkYsCi0gICdNSU5NQVhfU0lOSyc6IDB4ODAzMCwKLSAgJ1RBQkxFX1RPT19MQVJH
RSc6IDB4ODAzMSwKLSAgJ0NPTE9SX01BVFJJWCc6IDB4ODBCMSwKLSAgJ0NPTE9SX01BVFJJWF9T
VEFDS19ERVBUSCc6IDB4ODBCMiwKLSAgJ01BWF9DT0xPUl9NQVRSSVhfU1RBQ0tfREVQVEgnOiAw
eDgwQjMsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9SRURfU0NBTEUnOiAweDgwQjQsCi0gICdQT1NU
X0NPTE9SX01BVFJJWF9HUkVFTl9TQ0FMRSc6IDB4ODBCNSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklY
X0JMVUVfU0NBTEUnOiAweDgwQjYsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9BTFBIQV9TQ0FMRSc6
IDB4ODBCNywKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX1JFRF9CSUFTJzogMHg4MEI4LAotICAnUE9T
VF9DT0xPUl9NQVRSSVhfR1JFRU5fQklBUyc6IDB4ODBCOSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklY
X0JMVUVfQklBUyc6IDB4ODBCQSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0FMUEhBX0JJQVMnOiAw
eDgwQkIsCi0gICdDT0xPUl9UQUJMRSc6IDB4ODBEMCwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQ09M
T1JfVEFCTEUnOiAweDgwRDEsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9DT0xPUl9UQUJMRSc6IDB4
ODBEMiwKLSAgJ1BST1hZX0NPTE9SX1RBQkxFJzogMHg4MEQzLAotICAnUFJPWFlfUE9TVF9DT05W
T0xVVElPTl9DT0xPUl9UQUJMRSc6IDB4ODBENCwKLSAgJ1BST1hZX1BPU1RfQ09MT1JfTUFUUklY
X0NPTE9SX1RBQkxFJzogMHg4MEQ1LAotICAnQ09MT1JfVEFCTEVfU0NBTEUnOiAweDgwRDYsCi0g
ICdDT0xPUl9UQUJMRV9CSUFTJzogMHg4MEQ3LAotICAnQ09MT1JfVEFCTEVfRk9STUFUJzogMHg4
MEQ4LAotICAnQ09MT1JfVEFCTEVfV0lEVEgnOiAweDgwRDksCi0gICdDT0xPUl9UQUJMRV9SRURf
U0laRSc6IDB4ODBEQSwKLSAgJ0NPTE9SX1RBQkxFX0dSRUVOX1NJWkUnOiAweDgwREIsCi0gICdD
T0xPUl9UQUJMRV9CTFVFX1NJWkUnOiAweDgwREMsCi0gICdDT0xPUl9UQUJMRV9BTFBIQV9TSVpF
JzogMHg4MERELAotICAnQ09MT1JfVEFCTEVfTFVNSU5BTkNFX1NJWkUnOiAweDgwREUsCi0gICdD
T0xPUl9UQUJMRV9JTlRFTlNJVFlfU0laRSc6IDB4ODBERiwKLSAgJ0lHTk9SRV9CT1JERVInOiAw
eDgxNTAsCi0gICdDT05TVEFOVF9CT1JERVInOiAweDgxNTEsCi0gICdXUkFQX0JPUkRFUic6IDB4
ODE1MiwKLSAgJ1JFUExJQ0FURV9CT1JERVInOiAweDgxNTMsCi0gICdDT05WT0xVVElPTl9CT1JE
RVJfQ09MT1InOiAweDgxNTQsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1JfQVJCJzog
MHg4OEZFLAotICAnTUFQX1JFQURfQklUJzogMHgwMDAxLAotICAnTUFQX1dSSVRFX0JJVCc6IDB4
MDAwMiwKLSAgJ01BUF9JTlZBTElEQVRFX1JBTkdFX0JJVCc6IDB4MDAwNCwKLSAgJ01BUF9JTlZB
TElEQVRFX0JVRkZFUl9CSVQnOiAweDAwMDgsCi0gICdNQVBfRkxVU0hfRVhQTElDSVRfQklUJzog
MHgwMDEwLAotICAnTUFQX1VOU1lOQ0hST05JWkVEX0JJVCc6IDB4MDAyMCwKLSAgJ01BVFJJWF9Q
QUxFVFRFX0FSQic6IDB4ODg0MCwKLSAgJ01BWF9NQVRSSVhfUEFMRVRURV9TVEFDS19ERVBUSF9B
UkInOiAweDg4NDEsCi0gICdNQVhfUEFMRVRURV9NQVRSSUNFU19BUkInOiAweDg4NDIsCi0gICdD
VVJSRU5UX1BBTEVUVEVfTUFUUklYX0FSQic6IDB4ODg0MywKLSAgJ01BVFJJWF9JTkRFWF9BUlJB
WV9BUkInOiAweDg4NDQsCi0gICdDVVJSRU5UX01BVFJJWF9JTkRFWF9BUkInOiAweDg4NDUsCi0g
ICdNQVRSSVhfSU5ERVhfQVJSQVlfU0laRV9BUkInOiAweDg4NDYsCi0gICdNQVRSSVhfSU5ERVhf
QVJSQVlfVFlQRV9BUkInOiAweDg4NDcsCi0gICdNQVRSSVhfSU5ERVhfQVJSQVlfU1RSSURFX0FS
Qic6IDB4ODg0OCwKLSAgJ01BVFJJWF9JTkRFWF9BUlJBWV9QT0lOVEVSX0FSQic6IDB4ODg0OSwK
LSAgJ01VTFRJU0FNUExFX0FSQic6IDB4ODA5RCwKLSAgJ1NBTVBMRV9BTFBIQV9UT19DT1ZFUkFH
RV9BUkInOiAweDgwOUUsCi0gICdTQU1QTEVfQUxQSEFfVE9fT05FX0FSQic6IDB4ODA5RiwKLSAg
J1NBTVBMRV9DT1ZFUkFHRV9BUkInOiAweDgwQTAsCi0gICdTQU1QTEVfQlVGRkVSU19BUkInOiAw
eDgwQTgsCi0gICdTQU1QTEVTX0FSQic6IDB4ODBBOSwKLSAgJ1NBTVBMRV9DT1ZFUkFHRV9WQUxV
RV9BUkInOiAweDgwQUEsCi0gICdTQU1QTEVfQ09WRVJBR0VfSU5WRVJUX0FSQic6IDB4ODBBQiwK
LSAgJ01VTFRJU0FNUExFX0JJVF9BUkInOiAweDIwMDAwMDAwLAotICAnVEVYVFVSRTBfQVJCJzog
MHg4NEMwLAotICAnVEVYVFVSRTFfQVJCJzogMHg4NEMxLAotICAnVEVYVFVSRTJfQVJCJzogMHg4
NEMyLAotICAnVEVYVFVSRTNfQVJCJzogMHg4NEMzLAotICAnVEVYVFVSRTRfQVJCJzogMHg4NEM0
LAotICAnVEVYVFVSRTVfQVJCJzogMHg4NEM1LAotICAnVEVYVFVSRTZfQVJCJzogMHg4NEM2LAot
ICAnVEVYVFVSRTdfQVJCJzogMHg4NEM3LAotICAnVEVYVFVSRThfQVJCJzogMHg4NEM4LAotICAn
VEVYVFVSRTlfQVJCJzogMHg4NEM5LAotICAnVEVYVFVSRTEwX0FSQic6IDB4ODRDQSwKLSAgJ1RF
WFRVUkUxMV9BUkInOiAweDg0Q0IsCi0gICdURVhUVVJFMTJfQVJCJzogMHg4NENDLAotICAnVEVY
VFVSRTEzX0FSQic6IDB4ODRDRCwKLSAgJ1RFWFRVUkUxNF9BUkInOiAweDg0Q0UsCi0gICdURVhU
VVJFMTVfQVJCJzogMHg4NENGLAotICAnVEVYVFVSRTE2X0FSQic6IDB4ODREMCwKLSAgJ1RFWFRV
UkUxN19BUkInOiAweDg0RDEsCi0gICdURVhUVVJFMThfQVJCJzogMHg4NEQyLAotICAnVEVYVFVS
RTE5X0FSQic6IDB4ODREMywKLSAgJ1RFWFRVUkUyMF9BUkInOiAweDg0RDQsCi0gICdURVhUVVJF
MjFfQVJCJzogMHg4NEQ1LAotICAnVEVYVFVSRTIyX0FSQic6IDB4ODRENiwKLSAgJ1RFWFRVUkUy
M19BUkInOiAweDg0RDcsCi0gICdURVhUVVJFMjRfQVJCJzogMHg4NEQ4LAotICAnVEVYVFVSRTI1
X0FSQic6IDB4ODREOSwKLSAgJ1RFWFRVUkUyNl9BUkInOiAweDg0REEsCi0gICdURVhUVVJFMjdf
QVJCJzogMHg4NERCLAotICAnVEVYVFVSRTI4X0FSQic6IDB4ODREQywKLSAgJ1RFWFRVUkUyOV9B
UkInOiAweDg0REQsCi0gICdURVhUVVJFMzBfQVJCJzogMHg4NERFLAotICAnVEVYVFVSRTMxX0FS
Qic6IDB4ODRERiwKLSAgJ0FDVElWRV9URVhUVVJFX0FSQic6IDB4ODRFMCwKLSAgJ0NMSUVOVF9B
Q1RJVkVfVEVYVFVSRV9BUkInOiAweDg0RTEsCi0gICdNQVhfVEVYVFVSRV9VTklUU19BUkInOiAw
eDg0RTIsCi0gICdRVUVSWV9DT1VOVEVSX0JJVFNfQVJCJzogMHg4ODY0LAotICAnQ1VSUkVOVF9R
VUVSWV9BUkInOiAweDg4NjUsCi0gICdRVUVSWV9SRVNVTFRfQVJCJzogMHg4ODY2LAotICAnUVVF
UllfUkVTVUxUX0FWQUlMQUJMRV9BUkInOiAweDg4NjcsCi0gICdTQU1QTEVTX1BBU1NFRF9BUkIn
OiAweDg5MTQsCi0gICdQSVhFTF9QQUNLX0JVRkZFUl9BUkInOiAweDg4RUIsCi0gICdQSVhFTF9V
TlBBQ0tfQlVGRkVSX0FSQic6IDB4ODhFQywKLSAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkdf
QVJCJzogMHg4OEVELAotICAnUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODhF
RiwKLSAgJ1BPSU5UX1NJWkVfTUlOX0FSQic6IDB4ODEyNiwKLSAgJ1BPSU5UX1NJWkVfTUFYX0FS
Qic6IDB4ODEyNywKLSAgJ1BPSU5UX0ZBREVfVEhSRVNIT0xEX1NJWkVfQVJCJzogMHg4MTI4LAot
ICAnUE9JTlRfRElTVEFOQ0VfQVRURU5VQVRJT05fQVJCJzogMHg4MTI5LAotICAnUE9JTlRfU1BS
SVRFX0FSQic6IDB4ODg2MSwKLSAgJ0NPT1JEX1JFUExBQ0VfQVJCJzogMHg4ODYyLAotICAnUFJP
R1JBTV9PQkpFQ1RfQVJCJzogMHg4QjQwLAotICAnU0hBREVSX09CSkVDVF9BUkInOiAweDhCNDgs
Ci0gICdPQkpFQ1RfVFlQRV9BUkInOiAweDhCNEUsCi0gICdPQkpFQ1RfU1VCVFlQRV9BUkInOiAw
eDhCNEYsCi0gICdGTE9BVF9WRUMyX0FSQic6IDB4OEI1MCwKLSAgJ0ZMT0FUX1ZFQzNfQVJCJzog
MHg4QjUxLAotICAnRkxPQVRfVkVDNF9BUkInOiAweDhCNTIsCi0gICdJTlRfVkVDMl9BUkInOiAw
eDhCNTMsCi0gICdJTlRfVkVDM19BUkInOiAweDhCNTQsCi0gICdJTlRfVkVDNF9BUkInOiAweDhC
NTUsCi0gICdCT09MX0FSQic6IDB4OEI1NiwKLSAgJ0JPT0xfVkVDMl9BUkInOiAweDhCNTcsCi0g
ICdCT09MX1ZFQzNfQVJCJzogMHg4QjU4LAotICAnQk9PTF9WRUM0X0FSQic6IDB4OEI1OSwKLSAg
J0ZMT0FUX01BVDJfQVJCJzogMHg4QjVBLAotICAnRkxPQVRfTUFUM19BUkInOiAweDhCNUIsCi0g
ICdGTE9BVF9NQVQ0X0FSQic6IDB4OEI1QywKLSAgJ1NBTVBMRVJfMURfQVJCJzogMHg4QjVELAot
ICAnU0FNUExFUl8yRF9BUkInOiAweDhCNUUsCi0gICdTQU1QTEVSXzNEX0FSQic6IDB4OEI1RiwK
LSAgJ1NBTVBMRVJfQ1VCRV9BUkInOiAweDhCNjAsCi0gICdTQU1QTEVSXzFEX1NIQURPV19BUkIn
OiAweDhCNjEsCi0gICdTQU1QTEVSXzJEX1NIQURPV19BUkInOiAweDhCNjIsCi0gICdTQU1QTEVS
XzJEX1JFQ1RfQVJCJzogMHg4QjYzLAotICAnU0FNUExFUl8yRF9SRUNUX1NIQURPV19BUkInOiAw
eDhCNjQsCi0gICdPQkpFQ1RfREVMRVRFX1NUQVRVU19BUkInOiAweDhCODAsCi0gICdPQkpFQ1Rf
Q09NUElMRV9TVEFUVVNfQVJCJzogMHg4QjgxLAotICAnT0JKRUNUX0xJTktfU1RBVFVTX0FSQic6
IDB4OEI4MiwKLSAgJ09CSkVDVF9WQUxJREFURV9TVEFUVVNfQVJCJzogMHg4QjgzLAotICAnT0JK
RUNUX0lORk9fTE9HX0xFTkdUSF9BUkInOiAweDhCODQsCi0gICdPQkpFQ1RfQVRUQUNIRURfT0JK
RUNUU19BUkInOiAweDhCODUsCi0gICdPQkpFQ1RfQUNUSVZFX1VOSUZPUk1TX0FSQic6IDB4OEI4
NiwKLSAgJ09CSkVDVF9BQ1RJVkVfVU5JRk9STV9NQVhfTEVOR1RIX0FSQic6IDB4OEI4NywKLSAg
J09CSkVDVF9TSEFERVJfU09VUkNFX0xFTkdUSF9BUkInOiAweDhCODgsCi0gICdTSEFESU5HX0xB
TkdVQUdFX1ZFUlNJT05fQVJCJzogMHg4QjhDLAotICAnVEVYVFVSRV9DT01QQVJFX01PREVfQVJC
JzogMHg4ODRDLAotICAnVEVYVFVSRV9DT01QQVJFX0ZVTkNfQVJCJzogMHg4ODRELAotICAnQ09N
UEFSRV9SX1RPX1RFWFRVUkVfQVJCJzogMHg4ODRFLAotICAnVEVYVFVSRV9DT01QQVJFX0ZBSUxf
VkFMVUVfQVJCJzogMHg4MEJGLAotICAnQ0xBTVBfVE9fQk9SREVSX0FSQic6IDB4ODEyRCwKLSAg
J1RFWFRVUkVfQlVGRkVSX0FSQic6IDB4OEMyQSwKLSAgJ01BWF9URVhUVVJFX0JVRkZFUl9TSVpF
X0FSQic6IDB4OEMyQiwKLSAgJ1RFWFRVUkVfQklORElOR19CVUZGRVJfQVJCJzogMHg4QzJDLAot
ICAnVEVYVFVSRV9CVUZGRVJfREFUQV9TVE9SRV9CSU5ESU5HX0FSQic6IDB4OEMyRCwKLSAgJ1RF
WFRVUkVfQlVGRkVSX0ZPUk1BVF9BUkInOiAweDhDMkUsCi0gICdDT01QUkVTU0VEX0FMUEhBX0FS
Qic6IDB4ODRFOSwKLSAgJ0NPTVBSRVNTRURfTFVNSU5BTkNFX0FSQic6IDB4ODRFQSwKLSAgJ0NP
TVBSRVNTRURfTFVNSU5BTkNFX0FMUEhBX0FSQic6IDB4ODRFQiwKLSAgJ0NPTVBSRVNTRURfSU5U
RU5TSVRZX0FSQic6IDB4ODRFQywKLSAgJ0NPTVBSRVNTRURfUkdCX0FSQic6IDB4ODRFRCwKLSAg
J0NPTVBSRVNTRURfUkdCQV9BUkInOiAweDg0RUUsCi0gICdURVhUVVJFX0NPTVBSRVNTSU9OX0hJ
TlRfQVJCJzogMHg4NEVGLAotICAnVEVYVFVSRV9DT01QUkVTU0VEX0lNQUdFX1NJWkVfQVJCJzog
MHg4NkEwLAotICAnVEVYVFVSRV9DT01QUkVTU0VEX0FSQic6IDB4ODZBMSwKLSAgJ05VTV9DT01Q
UkVTU0VEX1RFWFRVUkVfRk9STUFUU19BUkInOiAweDg2QTIsCi0gICdDT01QUkVTU0VEX1RFWFRV
UkVfRk9STUFUU19BUkInOiAweDg2QTMsCi0gICdDT01QUkVTU0VEX1JFRF9SR1RDMSc6IDB4OERC
QiwKLSAgJ0NPTVBSRVNTRURfU0lHTkVEX1JFRF9SR1RDMSc6IDB4OERCQywKLSAgJ0NPTVBSRVNT
RURfUkdfUkdUQzInOiAweDhEQkQsCi0gICdDT01QUkVTU0VEX1NJR05FRF9SR19SR1RDMic6IDB4
OERCRSwKLSAgJ05PUk1BTF9NQVBfQVJCJzogMHg4NTExLAotICAnUkVGTEVDVElPTl9NQVBfQVJC
JzogMHg4NTEyLAotICAnVEVYVFVSRV9DVUJFX01BUF9BUkInOiAweDg1MTMsCi0gICdURVhUVVJF
X0JJTkRJTkdfQ1VCRV9NQVBfQVJCJzogMHg4NTE0LAotICAnVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9YX0FSQic6IDB4ODUxNSwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWF9BUkIn
OiAweDg1MTYsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1lfQVJCJzogMHg4NTE3LAot
ICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZX0FSQic6IDB4ODUxOCwKLSAgJ1RFWFRVUkVf
Q1VCRV9NQVBfUE9TSVRJVkVfWl9BUkInOiAweDg1MTksCi0gICdURVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1pfQVJCJzogMHg4NTFBLAotICAnUFJPWFlfVEVYVFVSRV9DVUJFX01BUF9BUkInOiAw
eDg1MUIsCi0gICdNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFX0FSQic6IDB4ODUxQywKLSAgJ1NV
QlRSQUNUX0FSQic6IDB4ODRFNywKLSAgJ0NPTUJJTkVfQVJCJzogMHg4NTcwLAotICAnQ09NQklO
RV9SR0JfQVJCJzogMHg4NTcxLAotICAnQ09NQklORV9BTFBIQV9BUkInOiAweDg1NzIsCi0gICdS
R0JfU0NBTEVfQVJCJzogMHg4NTczLAotICAnQUREX1NJR05FRF9BUkInOiAweDg1NzQsCi0gICdJ
TlRFUlBPTEFURV9BUkInOiAweDg1NzUsCi0gICdDT05TVEFOVF9BUkInOiAweDg1NzYsCi0gICdQ
UklNQVJZX0NPTE9SX0FSQic6IDB4ODU3NywKLSAgJ1BSRVZJT1VTX0FSQic6IDB4ODU3OCwKLSAg
J1NPVVJDRTBfUkdCX0FSQic6IDB4ODU4MCwKLSAgJ1NPVVJDRTFfUkdCX0FSQic6IDB4ODU4MSwK
LSAgJ1NPVVJDRTJfUkdCX0FSQic6IDB4ODU4MiwKLSAgJ1NPVVJDRTBfQUxQSEFfQVJCJzogMHg4
NTg4LAotICAnU09VUkNFMV9BTFBIQV9BUkInOiAweDg1ODksCi0gICdTT1VSQ0UyX0FMUEhBX0FS
Qic6IDB4ODU4QSwKLSAgJ09QRVJBTkQwX1JHQl9BUkInOiAweDg1OTAsCi0gICdPUEVSQU5EMV9S
R0JfQVJCJzogMHg4NTkxLAotICAnT1BFUkFORDJfUkdCX0FSQic6IDB4ODU5MiwKLSAgJ09QRVJB
TkQwX0FMUEhBX0FSQic6IDB4ODU5OCwKLSAgJ09QRVJBTkQxX0FMUEhBX0FSQic6IDB4ODU5OSwK
LSAgJ09QRVJBTkQyX0FMUEhBX0FSQic6IDB4ODU5QSwKLSAgJ0RPVDNfUkdCX0FSQic6IDB4ODZB
RSwKLSAgJ0RPVDNfUkdCQV9BUkInOiAweDg2QUYsCi0gICdSR0JBMzJGX0FSQic6IDB4ODgxNCwK
LSAgJ1JHQjMyRl9BUkInOiAweDg4MTUsCi0gICdBTFBIQTMyRl9BUkInOiAweDg4MTYsCi0gICdJ
TlRFTlNJVFkzMkZfQVJCJzogMHg4ODE3LAotICAnTFVNSU5BTkNFMzJGX0FSQic6IDB4ODgxOCwK
LSAgJ0xVTUlOQU5DRV9BTFBIQTMyRl9BUkInOiAweDg4MTksCi0gICdSR0JBMTZGX0FSQic6IDB4
ODgxQSwKLSAgJ1JHQjE2Rl9BUkInOiAweDg4MUIsCi0gICdBTFBIQTE2Rl9BUkInOiAweDg4MUMs
Ci0gICdJTlRFTlNJVFkxNkZfQVJCJzogMHg4ODFELAotICAnTFVNSU5BTkNFMTZGX0FSQic6IDB4
ODgxRSwKLSAgJ0xVTUlOQU5DRV9BTFBIQTE2Rl9BUkInOiAweDg4MUYsCi0gICdURVhUVVJFX1JF
RF9UWVBFX0FSQic6IDB4OEMxMCwKLSAgJ1RFWFRVUkVfR1JFRU5fVFlQRV9BUkInOiAweDhDMTEs
Ci0gICdURVhUVVJFX0JMVUVfVFlQRV9BUkInOiAweDhDMTIsCi0gICdURVhUVVJFX0FMUEhBX1RZ
UEVfQVJCJzogMHg4QzEzLAotICAnVEVYVFVSRV9MVU1JTkFOQ0VfVFlQRV9BUkInOiAweDhDMTQs
Ci0gICdURVhUVVJFX0lOVEVOU0lUWV9UWVBFX0FSQic6IDB4OEMxNSwKLSAgJ1RFWFRVUkVfREVQ
VEhfVFlQRV9BUkInOiAweDhDMTYsCi0gICdVTlNJR05FRF9OT1JNQUxJWkVEX0FSQic6IDB4OEMx
NywKLSAgJ01JUlJPUkVEX1JFUEVBVF9BUkInOiAweDgzNzAsCi0gICdURVhUVVJFX1JFQ1RBTkdM
RV9BUkInOiAweDg0RjUsCi0gICdURVhUVVJFX0JJTkRJTkdfUkVDVEFOR0xFX0FSQic6IDB4ODRG
NiwKLSAgJ1BST1hZX1RFWFRVUkVfUkVDVEFOR0xFX0FSQic6IDB4ODRGNywKLSAgJ01BWF9SRUNU
QU5HTEVfVEVYVFVSRV9TSVpFX0FSQic6IDB4ODRGOCwKLSAgJ1NBTVBMRVJfMkRfUkVDVF9BUkIn
OiAweDhCNjMsCi0gICdTQU1QTEVSXzJEX1JFQ1RfU0hBRE9XX0FSQic6IDB4OEI2NCwKLSAgJ1JF
RCc6IDB4MTkwMywKLSAgJ1JHJzogMHg4MjI3LAotICAnUkdfSU5URUdFUic6IDB4ODIyOCwKLSAg
J1I4JzogMHg4MjI5LAotICAnUjE2JzogMHg4MjJBLAotICAnUkc4JzogMHg4MjJCLAotICAnUkcx
Nic6IDB4ODIyQywKLSAgJ1IxNkYnOiAweDgyMkQsCi0gICdSMzJGJzogMHg4MjJFLAotICAnUkcx
NkYnOiAweDgyMkYsCi0gICdSRzMyRic6IDB4ODIzMCwKLSAgJ1I4SSc6IDB4ODIzMSwKLSAgJ1I4
VUknOiAweDgyMzIsCi0gICdSMTZJJzogMHg4MjMzLAotICAnUjE2VUknOiAweDgyMzQsCi0gICdS
MzJJJzogMHg4MjM1LAotICAnUjMyVUknOiAweDgyMzYsCi0gICdSRzhJJzogMHg4MjM3LAotICAn
Ukc4VUknOiAweDgyMzgsCi0gICdSRzE2SSc6IDB4ODIzOSwKLSAgJ1JHMTZVSSc6IDB4ODIzQSwK
LSAgJ1JHMzJJJzogMHg4MjNCLAotICAnUkczMlVJJzogMHg4MjNDLAotICAnVFJBTlNQT1NFX01P
REVMVklFV19NQVRSSVhfQVJCJzogMHg4NEUzLAotICAnVFJBTlNQT1NFX1BST0pFQ1RJT05fTUFU
UklYX0FSQic6IDB4ODRFNCwKLSAgJ1RSQU5TUE9TRV9URVhUVVJFX01BVFJJWF9BUkInOiAweDg0
RTUsCi0gICdUUkFOU1BPU0VfQ09MT1JfTUFUUklYX0FSQic6IDB4ODRFNiwKLSAgJ1ZFUlRFWF9B
UlJBWV9CSU5ESU5HJzogMHg4NUI1LAotICAnTU9ERUxWSUVXMF9BUkInOiAweDE3MDAsCi0gICdN
T0RFTFZJRVcxX0FSQic6IDB4ODUwQSwKLSAgJ01BWF9WRVJURVhfVU5JVFNfQVJCJzogMHg4NkE0
LAotICAnQUNUSVZFX1ZFUlRFWF9VTklUU19BUkInOiAweDg2QTUsCi0gICdXRUlHSFRfU1VNX1VO
SVRZX0FSQic6IDB4ODZBNiwKLSAgJ1ZFUlRFWF9CTEVORF9BUkInOiAweDg2QTcsCi0gICdDVVJS
RU5UX1dFSUdIVF9BUkInOiAweDg2QTgsCi0gICdXRUlHSFRfQVJSQVlfVFlQRV9BUkInOiAweDg2
QTksCi0gICdXRUlHSFRfQVJSQVlfU1RSSURFX0FSQic6IDB4ODZBQSwKLSAgJ1dFSUdIVF9BUlJB
WV9TSVpFX0FSQic6IDB4ODZBQiwKLSAgJ1dFSUdIVF9BUlJBWV9QT0lOVEVSX0FSQic6IDB4ODZB
QywKLSAgJ1dFSUdIVF9BUlJBWV9BUkInOiAweDg2QUQsCi0gICdNT0RFTFZJRVcyX0FSQic6IDB4
ODcyMiwKLSAgJ01PREVMVklFVzNfQVJCJzogMHg4NzIzLAotICAnTU9ERUxWSUVXNF9BUkInOiAw
eDg3MjQsCi0gICdNT0RFTFZJRVc1X0FSQic6IDB4ODcyNSwKLSAgJ01PREVMVklFVzZfQVJCJzog
MHg4NzI2LAotICAnTU9ERUxWSUVXN19BUkInOiAweDg3MjcsCi0gICdNT0RFTFZJRVc4X0FSQic6
IDB4ODcyOCwKLSAgJ01PREVMVklFVzlfQVJCJzogMHg4NzI5LAotICAnTU9ERUxWSUVXMTBfQVJC
JzogMHg4NzJBLAotICAnTU9ERUxWSUVXMTFfQVJCJzogMHg4NzJCLAotICAnTU9ERUxWSUVXMTJf
QVJCJzogMHg4NzJDLAotICAnTU9ERUxWSUVXMTNfQVJCJzogMHg4NzJELAotICAnTU9ERUxWSUVX
MTRfQVJCJzogMHg4NzJFLAotICAnTU9ERUxWSUVXMTVfQVJCJzogMHg4NzJGLAotICAnTU9ERUxW
SUVXMTZfQVJCJzogMHg4NzMwLAotICAnTU9ERUxWSUVXMTdfQVJCJzogMHg4NzMxLAotICAnTU9E
RUxWSUVXMThfQVJCJzogMHg4NzMyLAotICAnTU9ERUxWSUVXMTlfQVJCJzogMHg4NzMzLAotICAn
TU9ERUxWSUVXMjBfQVJCJzogMHg4NzM0LAotICAnTU9ERUxWSUVXMjFfQVJCJzogMHg4NzM1LAot
ICAnTU9ERUxWSUVXMjJfQVJCJzogMHg4NzM2LAotICAnTU9ERUxWSUVXMjNfQVJCJzogMHg4NzM3
LAotICAnTU9ERUxWSUVXMjRfQVJCJzogMHg4NzM4LAotICAnTU9ERUxWSUVXMjVfQVJCJzogMHg4
NzM5LAotICAnTU9ERUxWSUVXMjZfQVJCJzogMHg4NzNBLAotICAnTU9ERUxWSUVXMjdfQVJCJzog
MHg4NzNCLAotICAnTU9ERUxWSUVXMjhfQVJCJzogMHg4NzNDLAotICAnTU9ERUxWSUVXMjlfQVJC
JzogMHg4NzNELAotICAnTU9ERUxWSUVXMzBfQVJCJzogMHg4NzNFLAotICAnTU9ERUxWSUVXMzFf
QVJCJzogMHg4NzNGLAotICAnQlVGRkVSX1NJWkVfQVJCJzogMHg4NzY0LAotICAnQlVGRkVSX1VT
QUdFX0FSQic6IDB4ODc2NSwKLSAgJ0FSUkFZX0JVRkZFUl9BUkInOiAweDg4OTIsCi0gICdFTEVN
RU5UX0FSUkFZX0JVRkZFUl9BUkInOiAweDg4OTMsCi0gICdBUlJBWV9CVUZGRVJfQklORElOR19B
UkInOiAweDg4OTQsCi0gICdFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5
NSwKLSAgJ1ZFUlRFWF9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OTYsCi0gICdOT1JN
QUxfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODk3LAotICAnQ09MT1JfQVJSQVlfQlVG
RkVSX0JJTkRJTkdfQVJCJzogMHg4ODk4LAotICAnSU5ERVhfQVJSQVlfQlVGRkVSX0JJTkRJTkdf
QVJCJzogMHg4ODk5LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9CVUZGRVJfQklORElOR19BUkIn
OiAweDg4OUEsCi0gICdFREdFX0ZMQUdfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4ODlC
LAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5QywK
LSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5RCwKLSAg
J1dFSUdIVF9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OUUsCi0gICdWRVJURVhfQVRU
UklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5RiwKLSAgJ1JFQURfT05MWV9BUkIn
OiAweDg4QjgsCi0gICdXUklURV9PTkxZX0FSQic6IDB4ODhCOSwKLSAgJ1JFQURfV1JJVEVfQVJC
JzogMHg4OEJBLAotICAnQlVGRkVSX0FDQ0VTU19BUkInOiAweDg4QkIsCi0gICdCVUZGRVJfTUFQ
UEVEX0FSQic6IDB4ODhCQywKLSAgJ0JVRkZFUl9NQVBfUE9JTlRFUl9BUkInOiAweDg4QkQsCi0g
ICdTVFJFQU1fRFJBV19BUkInOiAweDg4RTAsCi0gICdTVFJFQU1fUkVBRF9BUkInOiAweDg4RTEs
Ci0gICdTVFJFQU1fQ09QWV9BUkInOiAweDg4RTIsCi0gICdTVEFUSUNfRFJBV19BUkInOiAweDg4
RTQsCi0gICdTVEFUSUNfUkVBRF9BUkInOiAweDg4RTUsCi0gICdTVEFUSUNfQ09QWV9BUkInOiAw
eDg4RTYsCi0gICdEWU5BTUlDX0RSQVdfQVJCJzogMHg4OEU4LAotICAnRFlOQU1JQ19SRUFEX0FS
Qic6IDB4ODhFOSwKLSAgJ0RZTkFNSUNfQ09QWV9BUkInOiAweDg4RUEsCi0gICdDT0xPUl9TVU1f
QVJCJzogMHg4NDU4LAotICAnVkVSVEVYX1BST0dSQU1fQVJCJzogMHg4NjIwLAotICAnVkVSVEVY
X0FUVFJJQl9BUlJBWV9FTkFCTEVEX0FSQic6IDB4ODYyMiwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJS
QVlfU0laRV9BUkInOiAweDg2MjMsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERV9BUkIn
OiAweDg2MjQsCi0gICdWRVJURVhfQVRUUklCX0FSUkFZX1RZUEVfQVJCJzogMHg4NjI1LAotICAn
Q1VSUkVOVF9WRVJURVhfQVRUUklCX0FSQic6IDB4ODYyNiwKLSAgJ1BST0dSQU1fTEVOR1RIX0FS
Qic6IDB4ODYyNywKLSAgJ1BST0dSQU1fU1RSSU5HX0FSQic6IDB4ODYyOCwKLSAgJ01BWF9QUk9H
UkFNX01BVFJJWF9TVEFDS19ERVBUSF9BUkInOiAweDg2MkUsCi0gICdNQVhfUFJPR1JBTV9NQVRS
SUNFU19BUkInOiAweDg2MkYsCi0gICdDVVJSRU5UX01BVFJJWF9TVEFDS19ERVBUSF9BUkInOiAw
eDg2NDAsCi0gICdDVVJSRU5UX01BVFJJWF9BUkInOiAweDg2NDEsCi0gICdWRVJURVhfUFJPR1JB
TV9QT0lOVF9TSVpFX0FSQic6IDB4ODY0MiwKLSAgJ1ZFUlRFWF9QUk9HUkFNX1RXT19TSURFX0FS
Qic6IDB4ODY0MywKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUl9BUkInOiAweDg2NDUs
Ci0gICdQUk9HUkFNX0VSUk9SX1BPU0lUSU9OX0FSQic6IDB4ODY0QiwKLSAgJ1BST0dSQU1fQklO
RElOR19BUkInOiAweDg2NzcsCi0gICdNQVhfVkVSVEVYX0FUVFJJQlNfQVJCJzogMHg4ODY5LAot
ICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEX0FSQic6IDB4ODg2QSwKLSAgJ1BST0dS
QU1fRVJST1JfU1RSSU5HX0FSQic6IDB4ODg3NCwKLSAgJ1BST0dSQU1fRk9STUFUX0FTQ0lJX0FS
Qic6IDB4ODg3NSwKLSAgJ1BST0dSQU1fRk9STUFUX0FSQic6IDB4ODg3NiwKLSAgJ1BST0dSQU1f
SU5TVFJVQ1RJT05TX0FSQic6IDB4ODhBMCwKLSAgJ01BWF9QUk9HUkFNX0lOU1RSVUNUSU9OU19B
UkInOiAweDg4QTEsCi0gICdQUk9HUkFNX05BVElWRV9JTlNUUlVDVElPTlNfQVJCJzogMHg4OEEy
LAotICAnTUFYX1BST0dSQU1fTkFUSVZFX0lOU1RSVUNUSU9OU19BUkInOiAweDg4QTMsCi0gICdQ
Uk9HUkFNX1RFTVBPUkFSSUVTX0FSQic6IDB4ODhBNCwKLSAgJ01BWF9QUk9HUkFNX1RFTVBPUkFS
SUVTX0FSQic6IDB4ODhBNSwKLSAgJ1BST0dSQU1fTkFUSVZFX1RFTVBPUkFSSUVTX0FSQic6IDB4
ODhBNiwKLSAgJ01BWF9QUk9HUkFNX05BVElWRV9URU1QT1JBUklFU19BUkInOiAweDg4QTcsCi0g
ICdQUk9HUkFNX1BBUkFNRVRFUlNfQVJCJzogMHg4OEE4LAotICAnTUFYX1BST0dSQU1fUEFSQU1F
VEVSU19BUkInOiAweDg4QTksCi0gICdQUk9HUkFNX05BVElWRV9QQVJBTUVURVJTX0FSQic6IDB4
ODhBQSwKLSAgJ01BWF9QUk9HUkFNX05BVElWRV9QQVJBTUVURVJTX0FSQic6IDB4ODhBQiwKLSAg
J1BST0dSQU1fQVRUUklCU19BUkInOiAweDg4QUMsCi0gICdNQVhfUFJPR1JBTV9BVFRSSUJTX0FS
Qic6IDB4ODhBRCwKLSAgJ1BST0dSQU1fTkFUSVZFX0FUVFJJQlNfQVJCJzogMHg4OEFFLAotICAn
TUFYX1BST0dSQU1fTkFUSVZFX0FUVFJJQlNfQVJCJzogMHg4OEFGLAotICAnUFJPR1JBTV9BRERS
RVNTX1JFR0lTVEVSU19BUkInOiAweDg4QjAsCi0gICdNQVhfUFJPR1JBTV9BRERSRVNTX1JFR0lT
VEVSU19BUkInOiAweDg4QjEsCi0gICdQUk9HUkFNX05BVElWRV9BRERSRVNTX1JFR0lTVEVSU19B
UkInOiAweDg4QjIsCi0gICdNQVhfUFJPR1JBTV9OQVRJVkVfQUREUkVTU19SRUdJU1RFUlNfQVJC
JzogMHg4OEIzLAotICAnTUFYX1BST0dSQU1fTE9DQUxfUEFSQU1FVEVSU19BUkInOiAweDg4QjQs
Ci0gICdNQVhfUFJPR1JBTV9FTlZfUEFSQU1FVEVSU19BUkInOiAweDg4QjUsCi0gICdQUk9HUkFN
X1VOREVSX05BVElWRV9MSU1JVFNfQVJCJzogMHg4OEI2LAotICAnVFJBTlNQT1NFX0NVUlJFTlRf
TUFUUklYX0FSQic6IDB4ODhCNywKLSAgJ01BVFJJWDBfQVJCJzogMHg4OEMwLAotICAnTUFUUklY
MV9BUkInOiAweDg4QzEsCi0gICdNQVRSSVgyX0FSQic6IDB4ODhDMiwKLSAgJ01BVFJJWDNfQVJC
JzogMHg4OEMzLAotICAnTUFUUklYNF9BUkInOiAweDg4QzQsCi0gICdNQVRSSVg1X0FSQic6IDB4
ODhDNSwKLSAgJ01BVFJJWDZfQVJCJzogMHg4OEM2LAotICAnTUFUUklYN19BUkInOiAweDg4Qzcs
Ci0gICdNQVRSSVg4X0FSQic6IDB4ODhDOCwKLSAgJ01BVFJJWDlfQVJCJzogMHg4OEM5LAotICAn
TUFUUklYMTBfQVJCJzogMHg4OENBLAotICAnTUFUUklYMTFfQVJCJzogMHg4OENCLAotICAnTUFU
UklYMTJfQVJCJzogMHg4OENDLAotICAnTUFUUklYMTNfQVJCJzogMHg4OENELAotICAnTUFUUklY
MTRfQVJCJzogMHg4OENFLAotICAnTUFUUklYMTVfQVJCJzogMHg4OENGLAotICAnTUFUUklYMTZf
QVJCJzogMHg4OEQwLAotICAnTUFUUklYMTdfQVJCJzogMHg4OEQxLAotICAnTUFUUklYMThfQVJC
JzogMHg4OEQyLAotICAnTUFUUklYMTlfQVJCJzogMHg4OEQzLAotICAnTUFUUklYMjBfQVJCJzog
MHg4OEQ0LAotICAnTUFUUklYMjFfQVJCJzogMHg4OEQ1LAotICAnTUFUUklYMjJfQVJCJzogMHg4
OEQ2LAotICAnTUFUUklYMjNfQVJCJzogMHg4OEQ3LAotICAnTUFUUklYMjRfQVJCJzogMHg4OEQ4
LAotICAnTUFUUklYMjVfQVJCJzogMHg4OEQ5LAotICAnTUFUUklYMjZfQVJCJzogMHg4OERBLAot
ICAnTUFUUklYMjdfQVJCJzogMHg4OERCLAotICAnTUFUUklYMjhfQVJCJzogMHg4OERDLAotICAn
TUFUUklYMjlfQVJCJzogMHg4OERELAotICAnTUFUUklYMzBfQVJCJzogMHg4OERFLAotICAnTUFU
UklYMzFfQVJCJzogMHg4OERGLAotICAnVkVSVEVYX1NIQURFUl9BUkInOiAweDhCMzEsCi0gICdN
QVhfVkVSVEVYX1VOSUZPUk1fQ09NUE9ORU5UU19BUkInOiAweDhCNEEsCi0gICdNQVhfVkFSWUlO
R19GTE9BVFNfQVJCJzogMHg4QjRCLAotICAnTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRT
X0FSQic6IDB4OEI0QywKLSAgJ01BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTX0FSQic6
IDB4OEI0RCwKLSAgJ09CSkVDVF9BQ1RJVkVfQVRUUklCVVRFU19BUkInOiAweDhCODksCi0gICdP
QkpFQ1RfQUNUSVZFX0FUVFJJQlVURV9NQVhfTEVOR1RIX0FSQic6IDB4OEI4QSwKLSAgJ1RFWFRV
UkVfUE9JTlRfTU9ERV9BVElYJzogMHg2MEIwLAotICAnVEVYVFVSRV9QT0lOVF9PTkVfQ09PUkRf
QVRJWCc6IDB4NjBCMSwKLSAgJ1RFWFRVUkVfUE9JTlRfU1BSSVRFX0FUSVgnOiAweDYwQjIsCi0g
ICdQT0lOVF9TUFJJVEVfQ1VMTF9NT0RFX0FUSVgnOiAweDYwQjMsCi0gICdQT0lOVF9TUFJJVEVf
Q1VMTF9DRU5URVJfQVRJWCc6IDB4NjBCNCwKLSAgJ1BPSU5UX1NQUklURV9DVUxMX0NMSVBfQVRJ
WCc6IDB4NjBCNSwKLSAgJ01PRFVMQVRFX0FERF9BVElYJzogMHg4NzQ0LAotICAnTU9EVUxBVEVf
U0lHTkVEX0FERF9BVElYJzogMHg4NzQ1LAotICAnTU9EVUxBVEVfU1VCVFJBQ1RfQVRJWCc6IDB4
ODc0NiwKLSAgJ1NFQ09OREFSWV9DT0xPUl9BVElYJzogMHg4NzQ3LAotICAnVEVYVFVSRV9PVVRQ
VVRfUkdCX0FUSVgnOiAweDg3NDgsCi0gICdURVhUVVJFX09VVFBVVF9BTFBIQV9BVElYJzogMHg4
NzQ5LAotICAnT1VUUFVUX1BPSU5UX1NJWkVfQVRJWCc6IDB4NjEwRSwKLSAgJ01BWF9EUkFXX0JV
RkZFUlNfQVRJJzogMHg4ODI0LAotICAnRFJBV19CVUZGRVIwX0FUSSc6IDB4ODgyNSwKLSAgJ0RS
QVdfQlVGRkVSMV9BVEknOiAweDg4MjYsCi0gICdEUkFXX0JVRkZFUjJfQVRJJzogMHg4ODI3LAot
ICAnRFJBV19CVUZGRVIzX0FUSSc6IDB4ODgyOCwKLSAgJ0RSQVdfQlVGRkVSNF9BVEknOiAweDg4
MjksCi0gICdEUkFXX0JVRkZFUjVfQVRJJzogMHg4ODJBLAotICAnRFJBV19CVUZGRVI2X0FUSSc6
IDB4ODgyQiwKLSAgJ0RSQVdfQlVGRkVSN19BVEknOiAweDg4MkMsCi0gICdEUkFXX0JVRkZFUjhf
QVRJJzogMHg4ODJELAotICAnRFJBV19CVUZGRVI5X0FUSSc6IDB4ODgyRSwKLSAgJ0RSQVdfQlVG
RkVSMTBfQVRJJzogMHg4ODJGLAotICAnRFJBV19CVUZGRVIxMV9BVEknOiAweDg4MzAsCi0gICdE
UkFXX0JVRkZFUjEyX0FUSSc6IDB4ODgzMSwKLSAgJ0RSQVdfQlVGRkVSMTNfQVRJJzogMHg4ODMy
LAotICAnRFJBV19CVUZGRVIxNF9BVEknOiAweDg4MzMsCi0gICdEUkFXX0JVRkZFUjE1X0FUSSc6
IDB4ODgzNCwKLSAgJ0VMRU1FTlRfQVJSQVlfQVRJJzogMHg4NzY4LAotICAnRUxFTUVOVF9BUlJB
WV9UWVBFX0FUSSc6IDB4ODc2OSwKLSAgJ0VMRU1FTlRfQVJSQVlfUE9JTlRFUl9BVEknOiAweDg3
NkEsCi0gICdCVU1QX1JPVF9NQVRSSVhfQVRJJzogMHg4Nzc1LAotICAnQlVNUF9ST1RfTUFUUklY
X1NJWkVfQVRJJzogMHg4Nzc2LAotICAnQlVNUF9OVU1fVEVYX1VOSVRTX0FUSSc6IDB4ODc3NywK
LSAgJ0JVTVBfVEVYX1VOSVRTX0FUSSc6IDB4ODc3OCwKLSAgJ0RVRFZfQVRJJzogMHg4Nzc5LAot
ICAnRFU4RFY4X0FUSSc6IDB4ODc3QSwKLSAgJ0JVTVBfRU5WTUFQX0FUSSc6IDB4ODc3QiwKLSAg
J0JVTVBfVEFSR0VUX0FUSSc6IDB4ODc3QywKLSAgJ1JFRF9CSVRfQVRJJzogMHgwMDAwMDAwMSwK
LSAgJzJYX0JJVF9BVEknOiAweDAwMDAwMDAxLAotICAnNFhfQklUX0FUSSc6IDB4MDAwMDAwMDIs
Ci0gICdHUkVFTl9CSVRfQVRJJzogMHgwMDAwMDAwMiwKLSAgJ0NPTVBfQklUX0FUSSc6IDB4MDAw
MDAwMDIsCi0gICdCTFVFX0JJVF9BVEknOiAweDAwMDAwMDA0LAotICAnOFhfQklUX0FUSSc6IDB4
MDAwMDAwMDQsCi0gICdORUdBVEVfQklUX0FUSSc6IDB4MDAwMDAwMDQsCi0gICdCSUFTX0JJVF9B
VEknOiAweDAwMDAwMDA4LAotICAnSEFMRl9CSVRfQVRJJzogMHgwMDAwMDAwOCwKLSAgJ1FVQVJU
RVJfQklUX0FUSSc6IDB4MDAwMDAwMTAsCi0gICdFSUdIVEhfQklUX0FUSSc6IDB4MDAwMDAwMjAs
Ci0gICdTQVRVUkFURV9CSVRfQVRJJzogMHgwMDAwMDA0MCwKLSAgJ0ZSQUdNRU5UX1NIQURFUl9B
VEknOiAweDg5MjAsCi0gICdSRUdfMF9BVEknOiAweDg5MjEsCi0gICdSRUdfMV9BVEknOiAweDg5
MjIsCi0gICdSRUdfMl9BVEknOiAweDg5MjMsCi0gICdSRUdfM19BVEknOiAweDg5MjQsCi0gICdS
RUdfNF9BVEknOiAweDg5MjUsCi0gICdSRUdfNV9BVEknOiAweDg5MjYsCi0gICdDT05fMF9BVEkn
OiAweDg5NDEsCi0gICdDT05fMV9BVEknOiAweDg5NDIsCi0gICdDT05fMl9BVEknOiAweDg5NDMs
Ci0gICdDT05fM19BVEknOiAweDg5NDQsCi0gICdDT05fNF9BVEknOiAweDg5NDUsCi0gICdDT05f
NV9BVEknOiAweDg5NDYsCi0gICdDT05fNl9BVEknOiAweDg5NDcsCi0gICdDT05fN19BVEknOiAw
eDg5NDgsCi0gICdNT1ZfQVRJJzogMHg4OTYxLAotICAnQUREX0FUSSc6IDB4ODk2MywKLSAgJ01V
TF9BVEknOiAweDg5NjQsCi0gICdTVUJfQVRJJzogMHg4OTY1LAotICAnRE9UM19BVEknOiAweDg5
NjYsCi0gICdET1Q0X0FUSSc6IDB4ODk2NywKLSAgJ01BRF9BVEknOiAweDg5NjgsCi0gICdMRVJQ
X0FUSSc6IDB4ODk2OSwKLSAgJ0NORF9BVEknOiAweDg5NkEsCi0gICdDTkQwX0FUSSc6IDB4ODk2
QiwKLSAgJ0RPVDJfQUREX0FUSSc6IDB4ODk2QywKLSAgJ1NFQ09OREFSWV9JTlRFUlBPTEFUT1Jf
QVRJJzogMHg4OTZELAotICAnTlVNX0ZSQUdNRU5UX1JFR0lTVEVSU19BVEknOiAweDg5NkUsCi0g
ICdOVU1fRlJBR01FTlRfQ09OU1RBTlRTX0FUSSc6IDB4ODk2RiwKLSAgJ05VTV9QQVNTRVNfQVRJ
JzogMHg4OTcwLAotICAnTlVNX0lOU1RSVUNUSU9OU19QRVJfUEFTU19BVEknOiAweDg5NzEsCi0g
ICdOVU1fSU5TVFJVQ1RJT05TX1RPVEFMX0FUSSc6IDB4ODk3MiwKLSAgJ05VTV9JTlBVVF9JTlRF
UlBPTEFUT1JfQ09NUE9ORU5UU19BVEknOiAweDg5NzMsCi0gICdOVU1fTE9PUEJBQ0tfQ09NUE9O
RU5UU19BVEknOiAweDg5NzQsCi0gICdDT0xPUl9BTFBIQV9QQUlSSU5HX0FUSSc6IDB4ODk3NSwK
LSAgJ1NXSVpaTEVfU1RSX0FUSSc6IDB4ODk3NiwKLSAgJ1NXSVpaTEVfU1RRX0FUSSc6IDB4ODk3
NywKLSAgJ1NXSVpaTEVfU1RSX0RSX0FUSSc6IDB4ODk3OCwKLSAgJ1NXSVpaTEVfU1RRX0RRX0FU
SSc6IDB4ODk3OSwKLSAgJ1NXSVpaTEVfU1RSUV9BVEknOiAweDg5N0EsCi0gICdTV0laWkxFX1NU
UlFfRFFfQVRJJzogMHg4OTdCLAotICAnUE5fVFJJQU5HTEVTX0FUSSc6IDB4ODdGMCwKLSAgJ01B
WF9QTl9UUklBTkdMRVNfVEVTU0VMQVRJT05fTEVWRUxfQVRJJzogMHg4N0YxLAotICAnUE5fVFJJ
QU5HTEVTX1BPSU5UX01PREVfQVRJJzogMHg4N0YyLAotICAnUE5fVFJJQU5HTEVTX05PUk1BTF9N
T0RFX0FUSSc6IDB4ODdGMywKLSAgJ1BOX1RSSUFOR0xFU19URVNTRUxBVElPTl9MRVZFTF9BVEkn
OiAweDg3RjQsCi0gICdQTl9UUklBTkdMRVNfUE9JTlRfTU9ERV9MSU5FQVJfQVRJJzogMHg4N0Y1
LAotICAnUE5fVFJJQU5HTEVTX1BPSU5UX01PREVfQ1VCSUNfQVRJJzogMHg4N0Y2LAotICAnUE5f
VFJJQU5HTEVTX05PUk1BTF9NT0RFX0xJTkVBUl9BVEknOiAweDg3RjcsCi0gICdQTl9UUklBTkdM
RVNfTk9STUFMX01PREVfUVVBRFJBVElDX0FUSSc6IDB4ODdGOCwKLSAgJ1NURU5DSUxfQkFDS19G
VU5DX0FUSSc6IDB4ODgwMCwKLSAgJ1NURU5DSUxfQkFDS19GQUlMX0FUSSc6IDB4ODgwMSwKLSAg
J1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUxfQVRJJzogMHg4ODAyLAotICAnU1RFTkNJTF9C
QUNLX1BBU1NfREVQVEhfUEFTU19BVEknOiAweDg4MDMsCi0gICdURVhUX0ZSQUdNRU5UX1NIQURF
Ul9BVEknOiAweDgyMDAsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRV9BTFBIQV8zRENfQVRJJzog
MHg4ODM3LAotICAnTU9EVUxBVEVfQUREX0FUSSc6IDB4ODc0NCwKLSAgJ01PRFVMQVRFX1NJR05F
RF9BRERfQVRJJzogMHg4NzQ1LAotICAnTU9EVUxBVEVfU1VCVFJBQ1RfQVRJJzogMHg4NzQ2LAot
ICAnUkdCQV9GTE9BVDMyX0FUSSc6IDB4ODgxNCwKLSAgJ1JHQl9GTE9BVDMyX0FUSSc6IDB4ODgx
NSwKLSAgJ0FMUEhBX0ZMT0FUMzJfQVRJJzogMHg4ODE2LAotICAnSU5URU5TSVRZX0ZMT0FUMzJf
QVRJJzogMHg4ODE3LAotICAnTFVNSU5BTkNFX0ZMT0FUMzJfQVRJJzogMHg4ODE4LAotICAnTFVN
SU5BTkNFX0FMUEhBX0ZMT0FUMzJfQVRJJzogMHg4ODE5LAotICAnUkdCQV9GTE9BVDE2X0FUSSc6
IDB4ODgxQSwKLSAgJ1JHQl9GTE9BVDE2X0FUSSc6IDB4ODgxQiwKLSAgJ0FMUEhBX0ZMT0FUMTZf
QVRJJzogMHg4ODFDLAotICAnSU5URU5TSVRZX0ZMT0FUMTZfQVRJJzogMHg4ODFELAotICAnTFVN
SU5BTkNFX0ZMT0FUMTZfQVRJJzogMHg4ODFFLAotICAnTFVNSU5BTkNFX0FMUEhBX0ZMT0FUMTZf
QVRJJzogMHg4ODFGLAotICAnTUlSUk9SX0NMQU1QX0FUSSc6IDB4ODc0MiwKLSAgJ01JUlJPUl9D
TEFNUF9UT19FREdFX0FUSSc6IDB4ODc0MywKLSAgJ1NUQVRJQ19BVEknOiAweDg3NjAsCi0gICdE
WU5BTUlDX0FUSSc6IDB4ODc2MSwKLSAgJ1BSRVNFUlZFX0FUSSc6IDB4ODc2MiwKLSAgJ0RJU0NB
UkRfQVRJJzogMHg4NzYzLAotICAnT0JKRUNUX0JVRkZFUl9TSVpFX0FUSSc6IDB4ODc2NCwKLSAg
J09CSkVDVF9CVUZGRVJfVVNBR0VfQVRJJzogMHg4NzY1LAotICAnQVJSQVlfT0JKRUNUX0JVRkZF
Ul9BVEknOiAweDg3NjYsCi0gICdBUlJBWV9PQkpFQ1RfT0ZGU0VUX0FUSSc6IDB4ODc2NywKLSAg
J01BWF9WRVJURVhfU1RSRUFNU19BVEknOiAweDg3NkIsCi0gICdWRVJURVhfU09VUkNFX0FUSSc6
IDB4ODc2QywKLSAgJ1ZFUlRFWF9TVFJFQU0wX0FUSSc6IDB4ODc2RCwKLSAgJ1ZFUlRFWF9TVFJF
QU0xX0FUSSc6IDB4ODc2RSwKLSAgJ1ZFUlRFWF9TVFJFQU0yX0FUSSc6IDB4ODc2RiwKLSAgJ1ZF
UlRFWF9TVFJFQU0zX0FUSSc6IDB4ODc3MCwKLSAgJ1ZFUlRFWF9TVFJFQU00X0FUSSc6IDB4ODc3
MSwKLSAgJ1ZFUlRFWF9TVFJFQU01X0FUSSc6IDB4ODc3MiwKLSAgJ1ZFUlRFWF9TVFJFQU02X0FU
SSc6IDB4ODc3MywKLSAgJ1ZFUlRFWF9TVFJFQU03X0FUSSc6IDB4ODc3NCwKLSAgJzQyMl9FWFQn
OiAweDgwQ0MsCi0gICc0MjJfUkVWX0VYVCc6IDB4ODBDRCwKLSAgJzQyMl9BVkVSQUdFX0VYVCc6
IDB4ODBDRSwKLSAgJzQyMl9SRVZfQVZFUkFHRV9FWFQnOiAweDgwQ0YsCi0gICdDR19WRVJURVhf
U0hBREVSX0VYVCc6IDB4ODkwRSwKLSAgJ0NHX0ZSQUdNRU5UX1NIQURFUl9FWFQnOiAweDg5MEYs
Ci0gICdBQkdSX0VYVCc6IDB4ODAwMCwKLSAgJ0JHUl9FWFQnOiAweDgwRTAsCi0gICdCR1JBX0VY
VCc6IDB4ODBFMSwKLSAgJ01BWF9WRVJURVhfQklOREFCTEVfVU5JRk9STVNfRVhUJzogMHg4REUy
LAotICAnTUFYX0ZSQUdNRU5UX0JJTkRBQkxFX1VOSUZPUk1TX0VYVCc6IDB4OERFMywKLSAgJ01B
WF9HRU9NRVRSWV9CSU5EQUJMRV9VTklGT1JNU19FWFQnOiAweDhERTQsCi0gICdNQVhfQklOREFC
TEVfVU5JRk9STV9TSVpFX0VYVCc6IDB4OERFRCwKLSAgJ1VOSUZPUk1fQlVGRkVSX0VYVCc6IDB4
OERFRSwKLSAgJ1VOSUZPUk1fQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4REVGLAotICAnQ09OU1RB
TlRfQ09MT1JfRVhUJzogMHg4MDAxLAotICAnT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SX0VYVCc6
IDB4ODAwMiwKLSAgJ0NPTlNUQU5UX0FMUEhBX0VYVCc6IDB4ODAwMywKLSAgJ09ORV9NSU5VU19D
T05TVEFOVF9BTFBIQV9FWFQnOiAweDgwMDQsCi0gICdCTEVORF9DT0xPUl9FWFQnOiAweDgwMDUs
Ci0gICdCTEVORF9FUVVBVElPTl9SR0JfRVhUJzogMHg4MDA5LAotICAnQkxFTkRfRVFVQVRJT05f
QUxQSEFfRVhUJzogMHg4ODNELAotICAnQkxFTkRfRFNUX1JHQl9FWFQnOiAweDgwQzgsCi0gICdC
TEVORF9TUkNfUkdCX0VYVCc6IDB4ODBDOSwKLSAgJ0JMRU5EX0RTVF9BTFBIQV9FWFQnOiAweDgw
Q0EsCi0gICdCTEVORF9TUkNfQUxQSEFfRVhUJzogMHg4MENCLAotICAnRlVOQ19BRERfRVhUJzog
MHg4MDA2LAotICAnTUlOX0VYVCc6IDB4ODAwNywKLSAgJ01BWF9FWFQnOiAweDgwMDgsCi0gICdC
TEVORF9FUVVBVElPTl9FWFQnOiAweDgwMDksCi0gICdGVU5DX1NVQlRSQUNUX0VYVCc6IDB4ODAw
QSwKLSAgJ0ZVTkNfUkVWRVJTRV9TVUJUUkFDVF9FWFQnOiAweDgwMEIsCi0gICdDTElQX1ZPTFVN
RV9DTElQUElOR19ISU5UX0VYVCc6IDB4ODBGMCwKLSAgJ0NNWUtfRVhUJzogMHg4MDBDLAotICAn
Q01ZS0FfRVhUJzogMHg4MDBELAotICAnUEFDS19DTVlLX0hJTlRfRVhUJzogMHg4MDBFLAotICAn
VU5QQUNLX0NNWUtfSElOVF9FWFQnOiAweDgwMEYsCi0gICdBUlJBWV9FTEVNRU5UX0xPQ0tfRklS
U1RfRVhUJzogMHg4MUE4LAotICAnQVJSQVlfRUxFTUVOVF9MT0NLX0NPVU5UX0VYVCc6IDB4ODFB
OSwKLSAgJ0NPTlZPTFVUSU9OXzFEX0VYVCc6IDB4ODAxMCwKLSAgJ0NPTlZPTFVUSU9OXzJEX0VY
VCc6IDB4ODAxMSwKLSAgJ1NFUEFSQUJMRV8yRF9FWFQnOiAweDgwMTIsCi0gICdDT05WT0xVVElP
Tl9CT1JERVJfTU9ERV9FWFQnOiAweDgwMTMsCi0gICdDT05WT0xVVElPTl9GSUxURVJfU0NBTEVf
RVhUJzogMHg4MDE0LAotICAnQ09OVk9MVVRJT05fRklMVEVSX0JJQVNfRVhUJzogMHg4MDE1LAot
ICAnUkVEVUNFX0VYVCc6IDB4ODAxNiwKLSAgJ0NPTlZPTFVUSU9OX0ZPUk1BVF9FWFQnOiAweDgw
MTcsCi0gICdDT05WT0xVVElPTl9XSURUSF9FWFQnOiAweDgwMTgsCi0gICdDT05WT0xVVElPTl9I
RUlHSFRfRVhUJzogMHg4MDE5LAotICAnTUFYX0NPTlZPTFVUSU9OX1dJRFRIX0VYVCc6IDB4ODAx
QSwKLSAgJ01BWF9DT05WT0xVVElPTl9IRUlHSFRfRVhUJzogMHg4MDFCLAotICAnUE9TVF9DT05W
T0xVVElPTl9SRURfU0NBTEVfRVhUJzogMHg4MDFDLAotICAnUE9TVF9DT05WT0xVVElPTl9HUkVF
Tl9TQ0FMRV9FWFQnOiAweDgwMUQsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0JMVUVfU0NBTEVfRVhU
JzogMHg4MDFFLAotICAnUE9TVF9DT05WT0xVVElPTl9BTFBIQV9TQ0FMRV9FWFQnOiAweDgwMUYs
Ci0gICdQT1NUX0NPTlZPTFVUSU9OX1JFRF9CSUFTX0VYVCc6IDB4ODAyMCwKLSAgJ1BPU1RfQ09O
Vk9MVVRJT05fR1JFRU5fQklBU19FWFQnOiAweDgwMjEsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0JM
VUVfQklBU19FWFQnOiAweDgwMjIsCi0gICdQT1NUX0NPTlZPTFVUSU9OX0FMUEhBX0JJQVNfRVhU
JzogMHg4MDIzLAotICAnVEFOR0VOVF9BUlJBWV9FWFQnOiAweDg0MzksCi0gICdCSU5PUk1BTF9B
UlJBWV9FWFQnOiAweDg0M0EsCi0gICdDVVJSRU5UX1RBTkdFTlRfRVhUJzogMHg4NDNCLAotICAn
Q1VSUkVOVF9CSU5PUk1BTF9FWFQnOiAweDg0M0MsCi0gICdUQU5HRU5UX0FSUkFZX1RZUEVfRVhU
JzogMHg4NDNFLAotICAnVEFOR0VOVF9BUlJBWV9TVFJJREVfRVhUJzogMHg4NDNGLAotICAnQklO
T1JNQUxfQVJSQVlfVFlQRV9FWFQnOiAweDg0NDAsCi0gICdCSU5PUk1BTF9BUlJBWV9TVFJJREVf
RVhUJzogMHg4NDQxLAotICAnVEFOR0VOVF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODQ0MiwKLSAg
J0JJTk9STUFMX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4NDQzLAotICAnTUFQMV9UQU5HRU5UX0VY
VCc6IDB4ODQ0NCwKLSAgJ01BUDJfVEFOR0VOVF9FWFQnOiAweDg0NDUsCi0gICdNQVAxX0JJTk9S
TUFMX0VYVCc6IDB4ODQ0NiwKLSAgJ01BUDJfQklOT1JNQUxfRVhUJzogMHg4NDQ3LAotICAnREVQ
VEhfQk9VTkRTX1RFU1RfRVhUJzogMHg4ODkwLAotICAnREVQVEhfQk9VTkRTX0VYVCc6IDB4ODg5
MSwKLSAgJ1BST0dSQU1fTUFUUklYX0VYVCc6IDB4OEUyRCwKLSAgJ1RSQU5TUE9TRV9QUk9HUkFN
X01BVFJJWF9FWFQnOiAweDhFMkUsCi0gICdQUk9HUkFNX01BVFJJWF9TVEFDS19ERVBUSF9FWFQn
OiAweDhFMkYsCi0gICdNQVhfRUxFTUVOVFNfVkVSVElDRVMnOiAweDgwRTgsCi0gICdNQVhfRUxF
TUVOVFNfSU5ESUNFUyc6IDB4ODBFOSwKLSAgJ0ZPR19DT09SRElOQVRFX1NPVVJDRV9FWFQnOiAw
eDg0NTAsCi0gICdGT0dfQ09PUkRJTkFURV9FWFQnOiAweDg0NTEsCi0gICdGUkFHTUVOVF9ERVBU
SF9FWFQnOiAweDg0NTIsCi0gICdDVVJSRU5UX0ZPR19DT09SRElOQVRFX0VYVCc6IDB4ODQ1MywK
LSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZX1RZUEVfRVhUJzogMHg4NDU0LAotICAnRk9HX0NPT1JE
SU5BVEVfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODQ1NSwKLSAgJ0ZPR19DT09SRElOQVRFX0FSUkFZ
X1BPSU5URVJfRVhUJzogMHg4NDU2LAotICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfRVhUJzogMHg4
NDU3LAotICAnRlJBR01FTlRfTElHSFRJTkdfRVhUJzogMHg4NDAwLAotICAnRlJBR01FTlRfQ09M
T1JfTUFURVJJQUxfRVhUJzogMHg4NDAxLAotICAnRlJBR01FTlRfQ09MT1JfTUFURVJJQUxfRkFD
RV9FWFQnOiAweDg0MDIsCi0gICdGUkFHTUVOVF9DT0xPUl9NQVRFUklBTF9QQVJBTUVURVJfRVhU
JzogMHg4NDAzLAotICAnTUFYX0ZSQUdNRU5UX0xJR0hUU19FWFQnOiAweDg0MDQsCi0gICdNQVhf
QUNUSVZFX0xJR0hUU19FWFQnOiAweDg0MDUsCi0gICdDVVJSRU5UX1JBU1RFUl9OT1JNQUxfRVhU
JzogMHg4NDA2LAotICAnTElHSFRfRU5WX01PREVfRVhUJzogMHg4NDA3LAotICAnRlJBR01FTlRf
TElHSFRfTU9ERUxfTE9DQUxfVklFV0VSX0VYVCc6IDB4ODQwOCwKLSAgJ0ZSQUdNRU5UX0xJR0hU
X01PREVMX1RXT19TSURFX0VYVCc6IDB4ODQwOSwKLSAgJ0ZSQUdNRU5UX0xJR0hUX01PREVMX0FN
QklFTlRfRVhUJzogMHg4NDBBLAotICAnRlJBR01FTlRfTElHSFRfTU9ERUxfTk9STUFMX0lOVEVS
UE9MQVRJT05fRVhUJzogMHg4NDBCLAotICAnRlJBR01FTlRfTElHSFQwX0VYVCc6IDB4ODQwQywK
LSAgJ0ZSQUdNRU5UX0xJR0hUN19FWFQnOiAweDg0MTMsCi0gICdEUkFXX0ZSQU1FQlVGRkVSX0JJ
TkRJTkdfRVhUJzogMHg4Q0E2LAotICAnUkVBRF9GUkFNRUJVRkZFUl9FWFQnOiAweDhDQTgsCi0g
ICdEUkFXX0ZSQU1FQlVGRkVSX0VYVCc6IDB4OENBOSwKLSAgJ1JFQURfRlJBTUVCVUZGRVJfQklO
RElOR19FWFQnOiAweDhDQUEsCi0gICdSRU5ERVJCVUZGRVJfU0FNUExFU19FWFQnOiAweDhDQUIs
Ci0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFX0VYVCc6IDB4OEQ1NiwKLSAg
J01BWF9TQU1QTEVTX0VYVCc6IDB4OEQ1NywKLSAgJ0lOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OX0VYVCc6IDB4MDUwNiwKLSAgJ01BWF9SRU5ERVJCVUZGRVJfU0laRV9FWFQnOiAweDg0RTgs
Ci0gICdGUkFNRUJVRkZFUl9CSU5ESU5HX0VYVCc6IDB4OENBNiwKLSAgJ1JFTkRFUkJVRkZFUl9C
SU5ESU5HX0VYVCc6IDB4OENBNywKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZ
UEVfRVhUJzogMHg4Q0QwLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRV9F
WFQnOiAweDhDRDEsCi0gICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUxfRVhU
JzogMHg4Q0QyLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZB
Q0VfRVhUJzogMHg4Q0QzLAotICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFXzNEX1pP
RkZTRVRfRVhUJzogMHg4Q0Q0LAotICAnRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUJzogMHg4Q0Q1
LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UX0VYVCc6IDB4OENENiwKLSAg
J0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UX0VYVCc6IDB4OENENywK
LSAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OU19FWFQnOiAweDhDRDksCi0gICdG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0ZPUk1BVFNfRVhUJzogMHg4Q0RBLAotICAnRlJBTUVCVUZG
RVJfSU5DT01QTEVURV9EUkFXX0JVRkZFUl9FWFQnOiAweDhDREIsCi0gICdGUkFNRUJVRkZFUl9J
TkNPTVBMRVRFX1JFQURfQlVGRkVSX0VYVCc6IDB4OENEQywKLSAgJ0ZSQU1FQlVGRkVSX1VOU1VQ
UE9SVEVEX0VYVCc6IDB4OENERCwKLSAgJ01BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQnOiAweDhD
REYsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMF9FWFQnOiAweDhDRTAsCi0gICdDT0xPUl9BVFRBQ0hN
RU5UMV9FWFQnOiAweDhDRTEsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMl9FWFQnOiAweDhDRTIsCi0g
ICdDT0xPUl9BVFRBQ0hNRU5UM19FWFQnOiAweDhDRTMsCi0gICdDT0xPUl9BVFRBQ0hNRU5UNF9F
WFQnOiAweDhDRTQsCi0gICdDT0xPUl9BVFRBQ0hNRU5UNV9FWFQnOiAweDhDRTUsCi0gICdDT0xP
Ul9BVFRBQ0hNRU5UNl9FWFQnOiAweDhDRTYsCi0gICdDT0xPUl9BVFRBQ0hNRU5UN19FWFQnOiAw
eDhDRTcsCi0gICdDT0xPUl9BVFRBQ0hNRU5UOF9FWFQnOiAweDhDRTgsCi0gICdDT0xPUl9BVFRB
Q0hNRU5UOV9FWFQnOiAweDhDRTksCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUJzogMHg4Q0VB
LAotICAnQ09MT1JfQVRUQUNITUVOVDExX0VYVCc6IDB4OENFQiwKLSAgJ0NPTE9SX0FUVEFDSE1F
TlQxMl9FWFQnOiAweDhDRUMsCi0gICdDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUJzogMHg4Q0VELAot
ICAnQ09MT1JfQVRUQUNITUVOVDE0X0VYVCc6IDB4OENFRSwKLSAgJ0NPTE9SX0FUVEFDSE1FTlQx
NV9FWFQnOiAweDhDRUYsCi0gICdERVBUSF9BVFRBQ0hNRU5UX0VYVCc6IDB4OEQwMCwKLSAgJ1NU
RU5DSUxfQVRUQUNITUVOVF9FWFQnOiAweDhEMjAsCi0gICdGUkFNRUJVRkZFUl9FWFQnOiAweDhE
NDAsCi0gICdSRU5ERVJCVUZGRVJfRVhUJzogMHg4RDQxLAotICAnUkVOREVSQlVGRkVSX1dJRFRI
X0VYVCc6IDB4OEQ0MiwKLSAgJ1JFTkRFUkJVRkZFUl9IRUlHSFRfRVhUJzogMHg4RDQzLAotICAn
UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVF9FWFQnOiAweDhENDQsCi0gICdTVEVOQ0lMX0lO
REVYMV9FWFQnOiAweDhENDYsCi0gICdTVEVOQ0lMX0lOREVYNF9FWFQnOiAweDhENDcsCi0gICdT
VEVOQ0lMX0lOREVYOF9FWFQnOiAweDhENDgsCi0gICdTVEVOQ0lMX0lOREVYMTZfRVhUJzogMHg4
RDQ5LAotICAnUkVOREVSQlVGRkVSX1JFRF9TSVpFX0VYVCc6IDB4OEQ1MCwKLSAgJ1JFTkRFUkJV
RkZFUl9HUkVFTl9TSVpFX0VYVCc6IDB4OEQ1MSwKLSAgJ1JFTkRFUkJVRkZFUl9CTFVFX1NJWkVf
RVhUJzogMHg4RDUyLAotICAnUkVOREVSQlVGRkVSX0FMUEhBX1NJWkVfRVhUJzogMHg4RDUzLAot
ICAnUkVOREVSQlVGRkVSX0RFUFRIX1NJWkVfRVhUJzogMHg4RDU0LAotICAnUkVOREVSQlVGRkVS
X1NURU5DSUxfU0laRV9FWFQnOiAweDhENTUsCi0gICdGUkFNRUJVRkZFUl9TUkdCX0VYVCc6IDB4
OERCOSwKLSAgJ0ZSQU1FQlVGRkVSX1NSR0JfQ0FQQUJMRV9FWFQnOiAweDhEQkEsCi0gICdMSU5F
U19BREpBQ0VOQ1lfRVhUJzogMHhBLAotICAnTElORV9TVFJJUF9BREpBQ0VOQ1lfRVhUJzogMHhC
LAotICAnVFJJQU5HTEVTX0FESkFDRU5DWV9FWFQnOiAweEMsCi0gICdUUklBTkdMRV9TVFJJUF9B
REpBQ0VOQ1lfRVhUJzogMHhELAotICAnUFJPR1JBTV9QT0lOVF9TSVpFX0VYVCc6IDB4ODY0MiwK
LSAgJ01BWF9WQVJZSU5HX0NPTVBPTkVOVFNfRVhUJzogMHg4QjRCLAotICAnTUFYX0dFT01FVFJZ
X1RFWFRVUkVfSU1BR0VfVU5JVFNfRVhUJzogMHg4QzI5LAotICAnRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9URVhUVVJFX0xBWUVSX0VYVCc6IDB4OENENCwKLSAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfTEFZRVJFRF9FWFQnOiAweDhEQTcsCi0gICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0xBWUVS
X1RBUkdFVFNfRVhUJzogMHg4REE4LAotICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9MQVlFUl9D
T1VOVF9FWFQnOiAweDhEQTksCi0gICdHRU9NRVRSWV9TSEFERVJfRVhUJzogMHg4REQ5LAotICAn
R0VPTUVUUllfVkVSVElDRVNfT1VUX0VYVCc6IDB4OEREQSwKLSAgJ0dFT01FVFJZX0lOUFVUX1RZ
UEVfRVhUJzogMHg4RERCLAotICAnR0VPTUVUUllfT1VUUFVUX1RZUEVfRVhUJzogMHg4RERDLAot
ICAnTUFYX0dFT01FVFJZX1ZBUllJTkdfQ09NUE9ORU5UU19FWFQnOiAweDhEREQsCi0gICdNQVhf
VkVSVEVYX1ZBUllJTkdfQ09NUE9ORU5UU19FWFQnOiAweDhEREUsCi0gICdNQVhfR0VPTUVUUllf
VU5JRk9STV9DT01QT05FTlRTX0VYVCc6IDB4OERERiwKLSAgJ01BWF9HRU9NRVRSWV9PVVRQVVRf
VkVSVElDRVNfRVhUJzogMHg4REUwLAotICAnTUFYX0dFT01FVFJZX1RPVEFMX09VVFBVVF9DT01Q
T05FTlRTX0VYVCc6IDB4OERFMSwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUl9FWFQn
OiAweDg4RkQsCi0gICdTQU1QTEVSXzFEX0FSUkFZX0VYVCc6IDB4OERDMCwKLSAgJ1NBTVBMRVJf
MkRfQVJSQVlfRVhUJzogMHg4REMxLAotICAnU0FNUExFUl9CVUZGRVJfRVhUJzogMHg4REMyLAot
ICAnU0FNUExFUl8xRF9BUlJBWV9TSEFET1dfRVhUJzogMHg4REMzLAotICAnU0FNUExFUl8yRF9B
UlJBWV9TSEFET1dfRVhUJzogMHg4REM0LAotICAnU0FNUExFUl9DVUJFX1NIQURPV19FWFQnOiAw
eDhEQzUsCi0gICdVTlNJR05FRF9JTlRfVkVDMl9FWFQnOiAweDhEQzYsCi0gICdVTlNJR05FRF9J
TlRfVkVDM19FWFQnOiAweDhEQzcsCi0gICdVTlNJR05FRF9JTlRfVkVDNF9FWFQnOiAweDhEQzgs
Ci0gICdJTlRfU0FNUExFUl8xRF9FWFQnOiAweDhEQzksCi0gICdJTlRfU0FNUExFUl8yRF9FWFQn
OiAweDhEQ0EsCi0gICdJTlRfU0FNUExFUl8zRF9FWFQnOiAweDhEQ0IsCi0gICdJTlRfU0FNUExF
Ul9DVUJFX0VYVCc6IDB4OERDQywKLSAgJ0lOVF9TQU1QTEVSXzJEX1JFQ1RfRVhUJzogMHg4RENE
LAotICAnSU5UX1NBTVBMRVJfMURfQVJSQVlfRVhUJzogMHg4RENFLAotICAnSU5UX1NBTVBMRVJf
MkRfQVJSQVlfRVhUJzogMHg4RENGLAotICAnSU5UX1NBTVBMRVJfQlVGRkVSX0VYVCc6IDB4OERE
MCwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzFEX0VYVCc6IDB4OEREMSwKLSAgJ1VOU0lHTkVE
X0lOVF9TQU1QTEVSXzJEX0VYVCc6IDB4OEREMiwKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzNE
X0VYVCc6IDB4OEREMywKLSAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkVfRVhUJzogMHg4REQ0
LAotICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkRfUkVDVF9FWFQnOiAweDhERDUsCi0gICdVTlNJ
R05FRF9JTlRfU0FNUExFUl8xRF9BUlJBWV9FWFQnOiAweDhERDYsCi0gICdVTlNJR05FRF9JTlRf
U0FNUExFUl8yRF9BUlJBWV9FWFQnOiAweDhERDcsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl9C
VUZGRVJfRVhUJzogMHg4REQ4LAotICAnSElTVE9HUkFNX0VYVCc6IDB4ODAyNCwKLSAgJ1BST1hZ
X0hJU1RPR1JBTV9FWFQnOiAweDgwMjUsCi0gICdISVNUT0dSQU1fV0lEVEhfRVhUJzogMHg4MDI2
LAotICAnSElTVE9HUkFNX0ZPUk1BVF9FWFQnOiAweDgwMjcsCi0gICdISVNUT0dSQU1fUkVEX1NJ
WkVfRVhUJzogMHg4MDI4LAotICAnSElTVE9HUkFNX0dSRUVOX1NJWkVfRVhUJzogMHg4MDI5LAot
ICAnSElTVE9HUkFNX0JMVUVfU0laRV9FWFQnOiAweDgwMkEsCi0gICdISVNUT0dSQU1fQUxQSEFf
U0laRV9FWFQnOiAweDgwMkIsCi0gICdISVNUT0dSQU1fTFVNSU5BTkNFX1NJWkVfRVhUJzogMHg4
MDJDLAotICAnSElTVE9HUkFNX1NJTktfRVhUJzogMHg4MDJELAotICAnTUlOTUFYX0VYVCc6IDB4
ODAyRSwKLSAgJ01JTk1BWF9GT1JNQVRfRVhUJzogMHg4MDJGLAotICAnTUlOTUFYX1NJTktfRVhU
JzogMHg4MDMwLAotICAnRlJBR01FTlRfTUFURVJJQUxfRVhUJzogMHg4MzQ5LAotICAnRlJBR01F
TlRfTk9STUFMX0VYVCc6IDB4ODM0QSwKLSAgJ0ZSQUdNRU5UX0NPTE9SX0VYVCc6IDB4ODM0QywK
LSAgJ0FUVEVOVUFUSU9OX0VYVCc6IDB4ODM0RCwKLSAgJ1NIQURPV19BVFRFTlVBVElPTl9FWFQn
OiAweDgzNEUsCi0gICdURVhUVVJFX0FQUExJQ0FUSU9OX01PREVfRVhUJzogMHg4MzRGLAotICAn
VEVYVFVSRV9MSUdIVF9FWFQnOiAweDgzNTAsCi0gICdURVhUVVJFX01BVEVSSUFMX0ZBQ0VfRVhU
JzogMHg4MzUxLAotICAnVEVYVFVSRV9NQVRFUklBTF9QQVJBTUVURVJfRVhUJzogMHg4MzUyLAot
ICAnRlJBR01FTlRfREVQVEhfRVhUJzogMHg4NDUyLAotICAnTVVMVElTQU1QTEVfRVhUJzogMHg4
MDlELAotICAnU0FNUExFX0FMUEhBX1RPX01BU0tfRVhUJzogMHg4MDlFLAotICAnU0FNUExFX0FM
UEhBX1RPX09ORV9FWFQnOiAweDgwOUYsCi0gICdTQU1QTEVfTUFTS19FWFQnOiAweDgwQTAsCi0g
ICcxUEFTU19FWFQnOiAweDgwQTEsCi0gICcyUEFTU18wX0VYVCc6IDB4ODBBMiwKLSAgJzJQQVNT
XzFfRVhUJzogMHg4MEEzLAotICAnNFBBU1NfMF9FWFQnOiAweDgwQTQsCi0gICc0UEFTU18xX0VY
VCc6IDB4ODBBNSwKLSAgJzRQQVNTXzJfRVhUJzogMHg4MEE2LAotICAnNFBBU1NfM19FWFQnOiAw
eDgwQTcsCi0gICdTQU1QTEVfQlVGRkVSU19FWFQnOiAweDgwQTgsCi0gICdTQU1QTEVTX0VYVCc6
IDB4ODBBOSwKLSAgJ1NBTVBMRV9NQVNLX1ZBTFVFX0VYVCc6IDB4ODBBQSwKLSAgJ1NBTVBMRV9N
QVNLX0lOVkVSVF9FWFQnOiAweDgwQUIsCi0gICdTQU1QTEVfUEFUVEVSTl9FWFQnOiAweDgwQUMs
Ci0gICdNVUxUSVNBTVBMRV9CSVRfRVhUJzogMHgyMDAwMDAwMCwKLSAgJ0RFUFRIX1NURU5DSUxf
RVhUJzogMHg4NEY5LAotICAnVU5TSUdORURfSU5UXzI0XzhfRVhUJzogMHg4NEZBLAotICAnREVQ
VEgyNF9TVEVOQ0lMOF9FWFQnOiAweDg4RjAsCi0gICdURVhUVVJFX1NURU5DSUxfU0laRV9FWFQn
OiAweDg4RjEsCi0gICdSMTFGX0cxMUZfQjEwRl9FWFQnOiAweDhDM0EsCi0gICdVTlNJR05FRF9J
TlRfMTBGXzExRl8xMUZfUkVWX0VYVCc6IDB4OEMzQiwKLSAgJ1JHQkFfU0lHTkVEX0NPTVBPTkVO
VFNfRVhUJzogMHg4QzNDLAotICAnVU5TSUdORURfQllURV8zXzNfMl9FWFQnOiAweDgwMzIsCi0g
ICdVTlNJR05FRF9TSE9SVF80XzRfNF80X0VYVCc6IDB4ODAzMywKLSAgJ1VOU0lHTkVEX1NIT1JU
XzVfNV81XzFfRVhUJzogMHg4MDM0LAotICAnVU5TSUdORURfSU5UXzhfOF84XzhfRVhUJzogMHg4
MDM1LAotICAnVU5TSUdORURfSU5UXzEwXzEwXzEwXzJfRVhUJzogMHg4MDM2LAotICAnVEVYVFVS
RV8xRCc6IDB4MERFMCwKLSAgJ1RFWFRVUkVfMkQnOiAweDBERTEsCi0gICdQUk9YWV9URVhUVVJF
XzFEJzogMHg4MDYzLAotICAnUFJPWFlfVEVYVFVSRV8yRCc6IDB4ODA2NCwKLSAgJ1RFWFRVUkVf
M0RfRVhUJzogMHg4MDZGLAotICAnUFJPWFlfVEVYVFVSRV8zRF9FWFQnOiAweDgwNzAsCi0gICdD
T0xPUl9UQUJMRV9GT1JNQVRfRVhUJzogMHg4MEQ4LAotICAnQ09MT1JfVEFCTEVfV0lEVEhfRVhU
JzogMHg4MEQ5LAotICAnQ09MT1JfVEFCTEVfUkVEX1NJWkVfRVhUJzogMHg4MERBLAotICAnQ09M
T1JfVEFCTEVfR1JFRU5fU0laRV9FWFQnOiAweDgwREIsCi0gICdDT0xPUl9UQUJMRV9CTFVFX1NJ
WkVfRVhUJzogMHg4MERDLAotICAnQ09MT1JfVEFCTEVfQUxQSEFfU0laRV9FWFQnOiAweDgwREQs
Ci0gICdDT0xPUl9UQUJMRV9MVU1JTkFOQ0VfU0laRV9FWFQnOiAweDgwREUsCi0gICdDT0xPUl9U
QUJMRV9JTlRFTlNJVFlfU0laRV9FWFQnOiAweDgwREYsCi0gICdDT0xPUl9JTkRFWDFfRVhUJzog
MHg4MEUyLAotICAnQ09MT1JfSU5ERVgyX0VYVCc6IDB4ODBFMywKLSAgJ0NPTE9SX0lOREVYNF9F
WFQnOiAweDgwRTQsCi0gICdDT0xPUl9JTkRFWDhfRVhUJzogMHg4MEU1LAotICAnQ09MT1JfSU5E
RVgxMl9FWFQnOiAweDgwRTYsCi0gICdDT0xPUl9JTkRFWDE2X0VYVCc6IDB4ODBFNywKLSAgJ1RF
WFRVUkVfSU5ERVhfU0laRV9FWFQnOiAweDgwRUQsCi0gICdURVhUVVJFX0NVQkVfTUFQX0FSQic6
IDB4ODUxMywKLSAgJ1BST1hZX1RFWFRVUkVfQ1VCRV9NQVBfQVJCJzogMHg4NTFCLAotICAnUElY
RUxfUEFDS19CVUZGRVJfRVhUJzogMHg4OEVCLAotICAnUElYRUxfVU5QQUNLX0JVRkZFUl9FWFQn
OiAweDg4RUMsCi0gICdQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HX0VYVCc6IDB4ODhFRCwKLSAg
J1BJWEVMX1VOUEFDS19CVUZGRVJfQklORElOR19FWFQnOiAweDg4RUYsCi0gICdQSVhFTF9UUkFO
U0ZPUk1fMkRfRVhUJzogMHg4MzMwLAotICAnUElYRUxfTUFHX0ZJTFRFUl9FWFQnOiAweDgzMzEs
Ci0gICdQSVhFTF9NSU5fRklMVEVSX0VYVCc6IDB4ODMzMiwKLSAgJ1BJWEVMX0NVQklDX1dFSUdI
VF9FWFQnOiAweDgzMzMsCi0gICdDVUJJQ19FWFQnOiAweDgzMzQsCi0gICdBVkVSQUdFX0VYVCc6
IDB4ODMzNSwKLSAgJ1BJWEVMX1RSQU5TRk9STV8yRF9TVEFDS19ERVBUSF9FWFQnOiAweDgzMzYs
Ci0gICdNQVhfUElYRUxfVFJBTlNGT1JNXzJEX1NUQUNLX0RFUFRIX0VYVCc6IDB4ODMzNywKLSAg
J1BJWEVMX1RSQU5TRk9STV8yRF9NQVRSSVhfRVhUJzogMHg4MzM4LAotICAnUE9JTlRfU0laRV9N
SU5fRVhUJzogMHg4MTI2LAotICAnUE9JTlRfU0laRV9NQVhfRVhUJzogMHg4MTI3LAotICAnUE9J
TlRfRkFERV9USFJFU0hPTERfU0laRV9FWFQnOiAweDgxMjgsCi0gICdESVNUQU5DRV9BVFRFTlVB
VElPTl9FWFQnOiAweDgxMjksCi0gICdQT0xZR09OX09GRlNFVF9FWFQnOiAweDgwMzcsCi0gICdQ
T0xZR09OX09GRlNFVF9GQUNUT1JfRVhUJzogMHg4MDM4LAotICAnUE9MWUdPTl9PRkZTRVRfQklB
U19FWFQnOiAweDgwMzksCi0gICdSRVNDQUxFX05PUk1BTF9FWFQnOiAweDgwM0EsCi0gICdDT0xP
Ul9TVU1fRVhUJzogMHg4NDU4LAotICAnQ1VSUkVOVF9TRUNPTkRBUllfQ09MT1JfRVhUJzogMHg4
NDU5LAotICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZX1NJWkVfRVhUJzogMHg4NDVBLAotICAnU0VD
T05EQVJZX0NPTE9SX0FSUkFZX1RZUEVfRVhUJzogMHg4NDVCLAotICAnU0VDT05EQVJZX0NPTE9S
X0FSUkFZX1NUUklERV9FWFQnOiAweDg0NUMsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfUE9J
TlRFUl9FWFQnOiAweDg0NUQsCi0gICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfRVhUJzogMHg4NDVF
LAotICAnTElHSFRfTU9ERUxfQ09MT1JfQ09OVFJPTF9FWFQnOiAweDgxRjgsCi0gICdTSU5HTEVf
Q09MT1JfRVhUJzogMHg4MUY5LAotICAnU0VQQVJBVEVfU1BFQ1VMQVJfQ09MT1JfRVhUJzogMHg4
MUZBLAotICAnU0hBUkVEX1RFWFRVUkVfUEFMRVRURV9FWFQnOiAweDgxRkIsCi0gICdTVEVOQ0lM
X1RBR19CSVRTX0VYVCc6IDB4ODhGMiwKLSAgJ1NURU5DSUxfQ0xFQVJfVEFHX1ZBTFVFX0VYVCc6
IDB4ODhGMywKLSAgJ1NURU5DSUxfVEVTVF9UV09fU0lERV9FWFQnOiAweDg5MTAsCi0gICdBQ1RJ
VkVfU1RFTkNJTF9GQUNFX0VYVCc6IDB4ODkxMSwKLSAgJ0lOQ1JfV1JBUF9FWFQnOiAweDg1MDcs
Ci0gICdERUNSX1dSQVBfRVhUJzogMHg4NTA4LAotICAnQUxQSEE0X0VYVCc6IDB4ODAzQiwKLSAg
J0FMUEhBOF9FWFQnOiAweDgwM0MsCi0gICdBTFBIQTEyX0VYVCc6IDB4ODAzRCwKLSAgJ0FMUEhB
MTZfRVhUJzogMHg4MDNFLAotICAnTFVNSU5BTkNFNF9FWFQnOiAweDgwM0YsCi0gICdMVU1JTkFO
Q0U4X0VYVCc6IDB4ODA0MCwKLSAgJ0xVTUlOQU5DRTEyX0VYVCc6IDB4ODA0MSwKLSAgJ0xVTUlO
QU5DRTE2X0VYVCc6IDB4ODA0MiwKLSAgJ0xVTUlOQU5DRTRfQUxQSEE0X0VYVCc6IDB4ODA0MywK
LSAgJ0xVTUlOQU5DRTZfQUxQSEEyX0VYVCc6IDB4ODA0NCwKLSAgJ0xVTUlOQU5DRThfQUxQSEE4
X0VYVCc6IDB4ODA0NSwKLSAgJ0xVTUlOQU5DRTEyX0FMUEhBNF9FWFQnOiAweDgwNDYsCi0gICdM
VU1JTkFOQ0UxMl9BTFBIQTEyX0VYVCc6IDB4ODA0NywKLSAgJ0xVTUlOQU5DRTE2X0FMUEhBMTZf
RVhUJzogMHg4MDQ4LAotICAnSU5URU5TSVRZX0VYVCc6IDB4ODA0OSwKLSAgJ0lOVEVOU0lUWTRf
RVhUJzogMHg4MDRBLAotICAnSU5URU5TSVRZOF9FWFQnOiAweDgwNEIsCi0gICdJTlRFTlNJVFkx
Ml9FWFQnOiAweDgwNEMsCi0gICdJTlRFTlNJVFkxNl9FWFQnOiAweDgwNEQsCi0gICdSR0IyX0VY
VCc6IDB4ODA0RSwKLSAgJ1JHQjRfRVhUJzogMHg4MDRGLAotICAnUkdCNV9FWFQnOiAweDgwNTAs
Ci0gICdSR0I4X0VYVCc6IDB4ODA1MSwKLSAgJ1JHQjEwX0VYVCc6IDB4ODA1MiwKLSAgJ1JHQjEy
X0VYVCc6IDB4ODA1MywKLSAgJ1JHQjE2X0VYVCc6IDB4ODA1NCwKLSAgJ1JHQkEyX0VYVCc6IDB4
ODA1NSwKLSAgJ1JHQkE0X0VYVCc6IDB4ODA1NiwKLSAgJ1JHQjVfQTFfRVhUJzogMHg4MDU3LAot
ICAnUkdCQThfRVhUJzogMHg4MDU4LAotICAnUkdCMTBfQTJfRVhUJzogMHg4MDU5LAotICAnUkdC
QTEyX0VYVCc6IDB4ODA1QSwKLSAgJ1JHQkExNl9FWFQnOiAweDgwNUIsCi0gICdURVhUVVJFX1JF
RF9TSVpFX0VYVCc6IDB4ODA1QywKLSAgJ1RFWFRVUkVfR1JFRU5fU0laRV9FWFQnOiAweDgwNUQs
Ci0gICdURVhUVVJFX0JMVUVfU0laRV9FWFQnOiAweDgwNUUsCi0gICdURVhUVVJFX0FMUEhBX1NJ
WkVfRVhUJzogMHg4MDVGLAotICAnVEVYVFVSRV9MVU1JTkFOQ0VfU0laRV9FWFQnOiAweDgwNjAs
Ci0gICdURVhUVVJFX0lOVEVOU0lUWV9TSVpFX0VYVCc6IDB4ODA2MSwKLSAgJ1JFUExBQ0VfRVhU
JzogMHg4MDYyLAotICAnUFJPWFlfVEVYVFVSRV8xRF9FWFQnOiAweDgwNjMsCi0gICdQUk9YWV9U
RVhUVVJFXzJEX0VYVCc6IDB4ODA2NCwKLSAgJ1BBQ0tfU0tJUF9JTUFHRVNfRVhUJzogMHg4MDZC
LAotICAnUEFDS19JTUFHRV9IRUlHSFRfRVhUJzogMHg4MDZDLAotICAnVU5QQUNLX1NLSVBfSU1B
R0VTX0VYVCc6IDB4ODA2RCwKLSAgJ1VOUEFDS19JTUFHRV9IRUlHSFRfRVhUJzogMHg4MDZFLAot
ICAnVEVYVFVSRV8zRF9FWFQnOiAweDgwNkYsCi0gICdQUk9YWV9URVhUVVJFXzNEX0VYVCc6IDB4
ODA3MCwKLSAgJ1RFWFRVUkVfREVQVEhfRVhUJzogMHg4MDcxLAotICAnVEVYVFVSRV9XUkFQX1Jf
RVhUJzogMHg4MDcyLAotICAnTUFYXzNEX1RFWFRVUkVfU0laRV9FWFQnOiAweDgwNzMsCi0gICdD
T01QQVJFX1JFRl9ERVBUSF9UT19URVhUVVJFX0VYVCc6IDB4ODg0RSwKLSAgJ01BWF9BUlJBWV9U
RVhUVVJFX0xBWUVSU19FWFQnOiAweDg4RkYsCi0gICdURVhUVVJFXzFEX0FSUkFZX0VYVCc6IDB4
OEMxOCwKLSAgJ1BST1hZX1RFWFRVUkVfMURfQVJSQVlfRVhUJzogMHg4QzE5LAotICAnVEVYVFVS
RV8yRF9BUlJBWV9FWFQnOiAweDhDMUEsCi0gICdQUk9YWV9URVhUVVJFXzJEX0FSUkFZX0VYVCc6
IDB4OEMxQiwKLSAgJ1RFWFRVUkVfQklORElOR18xRF9BUlJBWV9FWFQnOiAweDhDMUMsCi0gICdU
RVhUVVJFX0JJTkRJTkdfMkRfQVJSQVlfRVhUJzogMHg4QzFELAotICAnVEVYVFVSRV9CVUZGRVJf
RVhUJzogMHg4QzJBLAotICAnTUFYX1RFWFRVUkVfQlVGRkVSX1NJWkVfRVhUJzogMHg4QzJCLAot
ICAnVEVYVFVSRV9CSU5ESU5HX0JVRkZFUl9FWFQnOiAweDhDMkMsCi0gICdURVhUVVJFX0JVRkZF
Ul9EQVRBX1NUT1JFX0JJTkRJTkdfRVhUJzogMHg4QzJELAotICAnVEVYVFVSRV9CVUZGRVJfRk9S
TUFUX0VYVCc6IDB4OEMyRSwKLSAgJ0NPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQnOiAweDgz
RjAsCi0gICdDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVCc6IDB4ODNGMSwKLSAgJ0NPTVBS
RVNTRURfTFVNSU5BTkNFX0xBVEMxX0VYVCc6IDB4OEM3MCwKLSAgJ0NPTVBSRVNTRURfU0lHTkVE
X0xVTUlOQU5DRV9MQVRDMV9FWFQnOiAweDhDNzEsCi0gICdDT01QUkVTU0VEX0xVTUlOQU5DRV9B
TFBIQV9MQVRDMl9FWFQnOiAweDhDNzIsCi0gICdDT01QUkVTU0VEX1NJR05FRF9MVU1JTkFOQ0Vf
QUxQSEFfTEFUQzJfRVhUJzogMHg4QzczLAotICAnQ09NUFJFU1NFRF9SRURfUkdUQzFfRVhUJzog
MHg4REJCLAotICAnQ09NUFJFU1NFRF9TSUdORURfUkVEX1JHVEMxX0VYVCc6IDB4OERCQywKLSAg
J0NPTVBSRVNTRURfUkVEX0dSRUVOX1JHVEMyX0VYVCc6IDB4OERCRCwKLSAgJ0NPTVBSRVNTRURf
U0lHTkVEX1JFRF9HUkVFTl9SR1RDMl9FWFQnOiAweDhEQkUsCi0gICdDT01QUkVTU0VEX1JHQl9T
M1RDX0RYVDFfRVhUJzogMHg4M0YwLAotICAnQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQn
OiAweDgzRjEsCi0gICdDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVCc6IDB4ODNGMiwKLSAg
J0NPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUJzogMHg4M0YzLAotICAnTk9STUFMX01BUF9F
WFQnOiAweDg1MTEsCi0gICdSRUZMRUNUSU9OX01BUF9FWFQnOiAweDg1MTIsCi0gICdURVhUVVJF
X0NVQkVfTUFQX0VYVCc6IDB4ODUxMywKLSAgJ1RFWFRVUkVfQklORElOR19DVUJFX01BUF9FWFQn
OiAweDg1MTQsCi0gICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1hfRVhUJzogMHg4NTE1LAot
ICAnVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YX0VYVCc6IDB4ODUxNiwKLSAgJ1RFWFRVUkVf
Q1VCRV9NQVBfUE9TSVRJVkVfWV9FWFQnOiAweDg1MTcsCi0gICdURVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1lfRVhUJzogMHg4NTE4LAotICAnVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aX0VY
VCc6IDB4ODUxOSwKLSAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl9FWFQnOiAweDg1MUEs
Ci0gICdQUk9YWV9URVhUVVJFX0NVQkVfTUFQX0VYVCc6IDB4ODUxQiwKLSAgJ01BWF9DVUJFX01B
UF9URVhUVVJFX1NJWkVfRVhUJzogMHg4NTFDLAotICAnQ0xBTVBfVE9fRURHRV9FWFQnOiAweDgx
MkYsCi0gICdDT01CSU5FX0VYVCc6IDB4ODU3MCwKLSAgJ0NPTUJJTkVfUkdCX0VYVCc6IDB4ODU3
MSwKLSAgJ0NPTUJJTkVfQUxQSEFfRVhUJzogMHg4NTcyLAotICAnUkdCX1NDQUxFX0VYVCc6IDB4
ODU3MywKLSAgJ0FERF9TSUdORURfRVhUJzogMHg4NTc0LAotICAnSU5URVJQT0xBVEVfRVhUJzog
MHg4NTc1LAotICAnQ09OU1RBTlRfRVhUJzogMHg4NTc2LAotICAnUFJJTUFSWV9DT0xPUl9FWFQn
OiAweDg1NzcsCi0gICdQUkVWSU9VU19FWFQnOiAweDg1NzgsCi0gICdTT1VSQ0UwX1JHQl9FWFQn
OiAweDg1ODAsCi0gICdTT1VSQ0UxX1JHQl9FWFQnOiAweDg1ODEsCi0gICdTT1VSQ0UyX1JHQl9F
WFQnOiAweDg1ODIsCi0gICdTT1VSQ0UwX0FMUEhBX0VYVCc6IDB4ODU4OCwKLSAgJ1NPVVJDRTFf
QUxQSEFfRVhUJzogMHg4NTg5LAotICAnU09VUkNFMl9BTFBIQV9FWFQnOiAweDg1OEEsCi0gICdP
UEVSQU5EMF9SR0JfRVhUJzogMHg4NTkwLAotICAnT1BFUkFORDFfUkdCX0VYVCc6IDB4ODU5MSwK
LSAgJ09QRVJBTkQyX1JHQl9FWFQnOiAweDg1OTIsCi0gICdPUEVSQU5EMF9BTFBIQV9FWFQnOiAw
eDg1OTgsCi0gICdPUEVSQU5EMV9BTFBIQV9FWFQnOiAweDg1OTksCi0gICdPUEVSQU5EMl9BTFBI
QV9FWFQnOiAweDg1OUEsCi0gICdET1QzX1JHQl9FWFQnOiAweDg3NDAsCi0gICdET1QzX1JHQkFf
RVhUJzogMHg4NzQxLAotICAnVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQnOiAweDg0RkUsCi0g
ICdNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQnOiAweDg0RkYsCi0gICdSR0JBMzJVSV9F
WFQnOiAweDhENzAsCi0gICdSR0IzMlVJX0VYVCc6IDB4OEQ3MSwKLSAgJ0FMUEhBMzJVSV9FWFQn
OiAweDhENzIsCi0gICdJTlRFTlNJVFkzMlVJX0VYVCc6IDB4OEQ3MywKLSAgJ0xVTUlOQU5DRTMy
VUlfRVhUJzogMHg4RDc0LAotICAnTFVNSU5BTkNFX0FMUEhBMzJVSV9FWFQnOiAweDhENzUsCi0g
ICdSR0JBMTZVSV9FWFQnOiAweDhENzYsCi0gICdSR0IxNlVJX0VYVCc6IDB4OEQ3NywKLSAgJ0FM
UEhBMTZVSV9FWFQnOiAweDhENzgsCi0gICdJTlRFTlNJVFkxNlVJX0VYVCc6IDB4OEQ3OSwKLSAg
J0xVTUlOQU5DRTE2VUlfRVhUJzogMHg4RDdBLAotICAnTFVNSU5BTkNFX0FMUEhBMTZVSV9FWFQn
OiAweDhEN0IsCi0gICdSR0JBOFVJX0VYVCc6IDB4OEQ3QywKLSAgJ1JHQjhVSV9FWFQnOiAweDhE
N0QsCi0gICdBTFBIQThVSV9FWFQnOiAweDhEN0UsCi0gICdJTlRFTlNJVFk4VUlfRVhUJzogMHg4
RDdGLAotICAnTFVNSU5BTkNFOFVJX0VYVCc6IDB4OEQ4MCwKLSAgJ0xVTUlOQU5DRV9BTFBIQThV
SV9FWFQnOiAweDhEODEsCi0gICdSR0JBMzJJX0VYVCc6IDB4OEQ4MiwKLSAgJ1JHQjMySV9FWFQn
OiAweDhEODMsCi0gICdBTFBIQTMySV9FWFQnOiAweDhEODQsCi0gICdJTlRFTlNJVFkzMklfRVhU
JzogMHg4RDg1LAotICAnTFVNSU5BTkNFMzJJX0VYVCc6IDB4OEQ4NiwKLSAgJ0xVTUlOQU5DRV9B
TFBIQTMySV9FWFQnOiAweDhEODcsCi0gICdSR0JBMTZJX0VYVCc6IDB4OEQ4OCwKLSAgJ1JHQjE2
SV9FWFQnOiAweDhEODksCi0gICdBTFBIQTE2SV9FWFQnOiAweDhEOEEsCi0gICdJTlRFTlNJVFkx
NklfRVhUJzogMHg4RDhCLAotICAnTFVNSU5BTkNFMTZJX0VYVCc6IDB4OEQ4QywKLSAgJ0xVTUlO
QU5DRV9BTFBIQTE2SV9FWFQnOiAweDhEOEQsCi0gICdSR0JBOElfRVhUJzogMHg4RDhFLAotICAn
UkdCOElfRVhUJzogMHg4RDhGLAotICAnQUxQSEE4SV9FWFQnOiAweDhEOTAsCi0gICdJTlRFTlNJ
VFk4SV9FWFQnOiAweDhEOTEsCi0gICdMVU1JTkFOQ0U4SV9FWFQnOiAweDhEOTIsCi0gICdMVU1J
TkFOQ0VfQUxQSEE4SV9FWFQnOiAweDhEOTMsCi0gICdSRURfSU5URUdFUl9FWFQnOiAweDhEOTQs
Ci0gICdHUkVFTl9JTlRFR0VSX0VYVCc6IDB4OEQ5NSwKLSAgJ0JMVUVfSU5URUdFUl9FWFQnOiAw
eDhEOTYsCi0gICdBTFBIQV9JTlRFR0VSX0VYVCc6IDB4OEQ5NywKLSAgJ1JHQl9JTlRFR0VSX0VY
VCc6IDB4OEQ5OCwKLSAgJ1JHQkFfSU5URUdFUl9FWFQnOiAweDhEOTksCi0gICdCR1JfSU5URUdF
Ul9FWFQnOiAweDhEOUEsCi0gICdCR1JBX0lOVEVHRVJfRVhUJzogMHg4RDlCLAotICAnTFVNSU5B
TkNFX0lOVEVHRVJfRVhUJzogMHg4RDlDLAotICAnTFVNSU5BTkNFX0FMUEhBX0lOVEVHRVJfRVhU
JzogMHg4RDlELAotICAnUkdCQV9JTlRFR0VSX01PREVfRVhUJzogMHg4RDlFLAotICAnTUFYX1RF
WFRVUkVfTE9EX0JJQVNfRVhUJzogMHg4NEZELAotICAnVEVYVFVSRV9GSUxURVJfQ09OVFJPTF9F
WFQnOiAweDg1MDAsCi0gICdURVhUVVJFX0xPRF9CSUFTX0VYVCc6IDB4ODUwMSwKLSAgJ01JUlJP
Ul9DTEFNUF9FWFQnOiAweDg3NDIsCi0gICdNSVJST1JfQ0xBTVBfVE9fRURHRV9FWFQnOiAweDg3
NDMsCi0gICdNSVJST1JfQ0xBTVBfVE9fQk9SREVSX0VYVCc6IDB4ODkxMiwKLSAgJ1RFWFRVUkVf
UFJJT1JJVFlfRVhUJzogMHg4MDY2LAotICAnVEVYVFVSRV9SRVNJREVOVF9FWFQnOiAweDgwNjcs
Ci0gICdURVhUVVJFXzFEX0JJTkRJTkdfRVhUJzogMHg4MDY4LAotICAnVEVYVFVSRV8yRF9CSU5E
SU5HX0VYVCc6IDB4ODA2OSwKLSAgJ1RFWFRVUkVfM0RfQklORElOR19FWFQnOiAweDgwNkEsCi0g
ICdQRVJUVVJCX0VYVCc6IDB4ODVBRSwKLSAgJ1RFWFRVUkVfTk9STUFMX0VYVCc6IDB4ODVBRiwK
LSAgJ1RFWFRVUkVfUkVDVEFOR0xFX0VYVCc6IDB4ODRGNSwKLSAgJ1RFWFRVUkVfQklORElOR19S
RUNUQU5HTEVfRVhUJzogMHg4NEY2LAotICAnUFJPWFlfVEVYVFVSRV9SRUNUQU5HTEVfRVhUJzog
MHg4NEY3LAotICAnTUFYX1JFQ1RBTkdMRV9URVhUVVJFX1NJWkVfRVhUJzogMHg4NEY4LAotICAn
U1JHQl9FWFQnOiAweDhDNDAsCi0gICdTUkdCOF9FWFQnOiAweDhDNDEsCi0gICdTUkdCX0FMUEhB
X0VYVCc6IDB4OEM0MiwKLSAgJ1NSR0I4X0FMUEhBOF9FWFQnOiAweDhDNDMsCi0gICdTTFVNSU5B
TkNFX0FMUEhBX0VYVCc6IDB4OEM0NCwKLSAgJ1NMVU1JTkFOQ0U4X0FMUEhBOF9FWFQnOiAweDhD
NDUsCi0gICdTTFVNSU5BTkNFX0VYVCc6IDB4OEM0NiwKLSAgJ1NMVU1JTkFOQ0U4X0VYVCc6IDB4
OEM0NywKLSAgJ0NPTVBSRVNTRURfU1JHQl9FWFQnOiAweDhDNDgsCi0gICdDT01QUkVTU0VEX1NS
R0JfQUxQSEFfRVhUJzogMHg4QzQ5LAotICAnQ09NUFJFU1NFRF9TTFVNSU5BTkNFX0VYVCc6IDB4
OEM0QSwKLSAgJ0NPTVBSRVNTRURfU0xVTUlOQU5DRV9BTFBIQV9FWFQnOiAweDhDNEIsCi0gICdD
T01QUkVTU0VEX1NSR0JfUzNUQ19EWFQxX0VYVCc6IDB4OEM0QywKLSAgJ0NPTVBSRVNTRURfU1JH
Ql9BTFBIQV9TM1RDX0RYVDFfRVhUJzogMHg4QzRELAotICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhB
X1MzVENfRFhUM19FWFQnOiAweDhDNEUsCi0gICdDT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19E
WFQ1X0VYVCc6IDB4OEM0RiwKLSAgJ1JHQjlfRTVfRVhUJzogMHg4QzNELAotICAnVU5TSUdORURf
SU5UXzVfOV85XzlfUkVWX0VYVCc6IDB4OEMzRSwKLSAgJ1RFWFRVUkVfU0hBUkVEX1NJWkVfRVhU
JzogMHg4QzNGLAotICAnVEVYVFVSRV9TV0laWkxFX1JfRVhUJzogMHg4RTQyLAotICAnVEVYVFVS
RV9TV0laWkxFX0dfRVhUJzogMHg4RTQzLAotICAnVEVYVFVSRV9TV0laWkxFX0JfRVhUJzogMHg4
RTQ0LAotICAnVEVYVFVSRV9TV0laWkxFX0FfRVhUJzogMHg4RTQ1LAotICAnVEVYVFVSRV9TV0la
WkxFX1JHQkFfRVhUJzogMHg4RTQ2LAotICAnVElNRV9FTEFQU0VEX0VYVCc6IDB4ODhCRiwKLSAg
J1RSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HX01BWF9MRU5HVEhfRVhUJzogMHg4Qzc2LAotICAn
VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9NT0RFX0VYVCc6IDB4OEM3RiwKLSAgJ01BWF9UUkFO
U0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQ09NUE9ORU5UU19FWFQnOiAweDhDODAsCi0gICdUUkFO
U0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1NfRVhUJzogMHg4QzgzLAotICAnVFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUl9TVEFSVF9FWFQnOiAweDhDODQsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVG
RkVSX1NJWkVfRVhUJzogMHg4Qzg1LAotICAnUFJJTUlUSVZFU19HRU5FUkFURURfRVhUJzogMHg4
Qzg3LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTl9FWFQnOiAweDhD
ODgsCi0gICdSQVNURVJJWkVSX0RJU0NBUkRfRVhUJzogMHg4Qzg5LAotICAnTUFYX1RSQU5TRk9S
TV9GRUVEQkFDS19JTlRFUkxFQVZFRF9DT01QT05FTlRTX0VYVCc6IDB4OEM4QSwKLSAgJ01BWF9U
UkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCU19FWFQnOiAweDhDOEIsCi0gICdJTlRF
UkxFQVZFRF9BVFRSSUJTX0VYVCc6IDB4OEM4QywKLSAgJ1NFUEFSQVRFX0FUVFJJQlNfRVhUJzog
MHg4QzhELAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9FWFQnOiAweDhDOEUsCi0gICdU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4QzhGLAotICAnRE9VQkxF
X0VYVCc6IDB4MTQwQSwKLSAgJ1ZFUlRFWF9BUlJBWV9FWFQnOiAweDgwNzQsCi0gICdOT1JNQUxf
QVJSQVlfRVhUJzogMHg4MDc1LAotICAnQ09MT1JfQVJSQVlfRVhUJzogMHg4MDc2LAotICAnSU5E
RVhfQVJSQVlfRVhUJzogMHg4MDc3LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9FWFQnOiAweDgw
NzgsCi0gICdFREdFX0ZMQUdfQVJSQVlfRVhUJzogMHg4MDc5LAotICAnVkVSVEVYX0FSUkFZX1NJ
WkVfRVhUJzogMHg4MDdBLAotICAnVkVSVEVYX0FSUkFZX1RZUEVfRVhUJzogMHg4MDdCLAotICAn
VkVSVEVYX0FSUkFZX1NUUklERV9FWFQnOiAweDgwN0MsCi0gICdWRVJURVhfQVJSQVlfQ09VTlRf
RVhUJzogMHg4MDdELAotICAnTk9STUFMX0FSUkFZX1RZUEVfRVhUJzogMHg4MDdFLAotICAnTk9S
TUFMX0FSUkFZX1NUUklERV9FWFQnOiAweDgwN0YsCi0gICdOT1JNQUxfQVJSQVlfQ09VTlRfRVhU
JzogMHg4MDgwLAotICAnQ09MT1JfQVJSQVlfU0laRV9FWFQnOiAweDgwODEsCi0gICdDT0xPUl9B
UlJBWV9UWVBFX0VYVCc6IDB4ODA4MiwKLSAgJ0NPTE9SX0FSUkFZX1NUUklERV9FWFQnOiAweDgw
ODMsCi0gICdDT0xPUl9BUlJBWV9DT1VOVF9FWFQnOiAweDgwODQsCi0gICdJTkRFWF9BUlJBWV9U
WVBFX0VYVCc6IDB4ODA4NSwKLSAgJ0lOREVYX0FSUkFZX1NUUklERV9FWFQnOiAweDgwODYsCi0g
ICdJTkRFWF9BUlJBWV9DT1VOVF9FWFQnOiAweDgwODcsCi0gICdURVhUVVJFX0NPT1JEX0FSUkFZ
X1NJWkVfRVhUJzogMHg4MDg4LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9UWVBFX0VYVCc6IDB4
ODA4OSwKLSAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA4QSwKLSAgJ1RF
WFRVUkVfQ09PUkRfQVJSQVlfQ09VTlRfRVhUJzogMHg4MDhCLAotICAnRURHRV9GTEFHX0FSUkFZ
X1NUUklERV9FWFQnOiAweDgwOEMsCi0gICdFREdFX0ZMQUdfQVJSQVlfQ09VTlRfRVhUJzogMHg4
MDhELAotICAnVkVSVEVYX0FSUkFZX1BPSU5URVJfRVhUJzogMHg4MDhFLAotICAnTk9STUFMX0FS
UkFZX1BPSU5URVJfRVhUJzogMHg4MDhGLAotICAnQ09MT1JfQVJSQVlfUE9JTlRFUl9FWFQnOiAw
eDgwOTAsCi0gICdJTkRFWF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA5MSwKLSAgJ1RFWFRVUkVf
Q09PUkRfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDgwOTIsCi0gICdFREdFX0ZMQUdfQVJSQVlfUE9J
TlRFUl9FWFQnOiAweDgwOTMsCi0gICdCR1JBJzogMHg4MEUxLAotICAnVkVSVEVYX1NIQURFUl9F
WFQnOiAweDg3ODAsCi0gICdWRVJURVhfU0hBREVSX0JJTkRJTkdfRVhUJzogMHg4NzgxLAotICAn
T1BfSU5ERVhfRVhUJzogMHg4NzgyLAotICAnT1BfTkVHQVRFX0VYVCc6IDB4ODc4MywKLSAgJ09Q
X0RPVDNfRVhUJzogMHg4Nzg0LAotICAnT1BfRE9UNF9FWFQnOiAweDg3ODUsCi0gICdPUF9NVUxf
RVhUJzogMHg4Nzg2LAotICAnT1BfQUREX0VYVCc6IDB4ODc4NywKLSAgJ09QX01BRERfRVhUJzog
MHg4Nzg4LAotICAnT1BfRlJBQ19FWFQnOiAweDg3ODksCi0gICdPUF9NQVhfRVhUJzogMHg4NzhB
LAotICAnT1BfTUlOX0VYVCc6IDB4ODc4QiwKLSAgJ09QX1NFVF9HRV9FWFQnOiAweDg3OEMsCi0g
ICdPUF9TRVRfTFRfRVhUJzogMHg4NzhELAotICAnT1BfQ0xBTVBfRVhUJzogMHg4NzhFLAotICAn
T1BfRkxPT1JfRVhUJzogMHg4NzhGLAotICAnT1BfUk9VTkRfRVhUJzogMHg4NzkwLAotICAnT1Bf
RVhQX0JBU0VfMl9FWFQnOiAweDg3OTEsCi0gICdPUF9MT0dfQkFTRV8yX0VYVCc6IDB4ODc5MiwK
LSAgJ09QX1BPV0VSX0VYVCc6IDB4ODc5MywKLSAgJ09QX1JFQ0lQX0VYVCc6IDB4ODc5NCwKLSAg
J09QX1JFQ0lQX1NRUlRfRVhUJzogMHg4Nzk1LAotICAnT1BfU1VCX0VYVCc6IDB4ODc5NiwKLSAg
J09QX0NST1NTX1BST0RVQ1RfRVhUJzogMHg4Nzk3LAotICAnT1BfTVVMVElQTFlfTUFUUklYX0VY
VCc6IDB4ODc5OCwKLSAgJ09QX01PVl9FWFQnOiAweDg3OTksCi0gICdPVVRQVVRfVkVSVEVYX0VY
VCc6IDB4ODc5QSwKLSAgJ09VVFBVVF9DT0xPUjBfRVhUJzogMHg4NzlCLAotICAnT1VUUFVUX0NP
TE9SMV9FWFQnOiAweDg3OUMsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDBfRVhUJzogMHg4NzlE
LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxX0VYVCc6IDB4ODc5RSwKLSAgJ09VVFBVVF9URVhU
VVJFX0NPT1JEMl9FWFQnOiAweDg3OUYsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDNfRVhUJzog
MHg4N0EwLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ0X0VYVCc6IDB4ODdBMSwKLSAgJ09VVFBV
VF9URVhUVVJFX0NPT1JENV9FWFQnOiAweDg3QTIsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDZf
RVhUJzogMHg4N0EzLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ3X0VYVCc6IDB4ODdBNCwKLSAg
J09VVFBVVF9URVhUVVJFX0NPT1JEOF9FWFQnOiAweDg3QTUsCi0gICdPVVRQVVRfVEVYVFVSRV9D
T09SRDlfRVhUJzogMHg4N0E2LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxMF9FWFQnOiAweDg3
QTcsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDExX0VYVCc6IDB4ODdBOCwKLSAgJ09VVFBVVF9U
RVhUVVJFX0NPT1JEMTJfRVhUJzogMHg4N0E5LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxM19F
WFQnOiAweDg3QUEsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDE0X0VYVCc6IDB4ODdBQiwKLSAg
J09VVFBVVF9URVhUVVJFX0NPT1JEMTVfRVhUJzogMHg4N0FDLAotICAnT1VUUFVUX1RFWFRVUkVf
Q09PUkQxNl9FWFQnOiAweDg3QUQsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDE3X0VYVCc6IDB4
ODdBRSwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMThfRVhUJzogMHg4N0FGLAotICAnT1VUUFVU
X1RFWFRVUkVfQ09PUkQxOV9FWFQnOiAweDg3QjAsCi0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDIw
X0VYVCc6IDB4ODdCMSwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjFfRVhUJzogMHg4N0IyLAot
ICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyMl9FWFQnOiAweDg3QjMsCi0gICdPVVRQVVRfVEVYVFVS
RV9DT09SRDIzX0VYVCc6IDB4ODdCNCwKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjRfRVhUJzog
MHg4N0I1LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyNV9FWFQnOiAweDg3QjYsCi0gICdPVVRQ
VVRfVEVYVFVSRV9DT09SRDI2X0VYVCc6IDB4ODdCNywKLSAgJ09VVFBVVF9URVhUVVJFX0NPT1JE
MjdfRVhUJzogMHg4N0I4LAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyOF9FWFQnOiAweDg3Qjks
Ci0gICdPVVRQVVRfVEVYVFVSRV9DT09SRDI5X0VYVCc6IDB4ODdCQSwKLSAgJ09VVFBVVF9URVhU
VVJFX0NPT1JEMzBfRVhUJzogMHg4N0JCLAotICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQzMV9FWFQn
OiAweDg3QkMsCi0gICdPVVRQVVRfRk9HX0VYVCc6IDB4ODdCRCwKLSAgJ1NDQUxBUl9FWFQnOiAw
eDg3QkUsCi0gICdWRUNUT1JfRVhUJzogMHg4N0JGLAotICAnTUFUUklYX0VYVCc6IDB4ODdDMCwK
LSAgJ1ZBUklBTlRfRVhUJzogMHg4N0MxLAotICAnSU5WQVJJQU5UX0VYVCc6IDB4ODdDMiwKLSAg
J0xPQ0FMX0NPTlNUQU5UX0VYVCc6IDB4ODdDMywKLSAgJ0xPQ0FMX0VYVCc6IDB4ODdDNCwKLSAg
J01BWF9WRVJURVhfU0hBREVSX0lOU1RSVUNUSU9OU19FWFQnOiAweDg3QzUsCi0gICdNQVhfVkVS
VEVYX1NIQURFUl9WQVJJQU5UU19FWFQnOiAweDg3QzYsCi0gICdNQVhfVkVSVEVYX1NIQURFUl9J
TlZBUklBTlRTX0VYVCc6IDB4ODdDNywKLSAgJ01BWF9WRVJURVhfU0hBREVSX0xPQ0FMX0NPTlNU
QU5UU19FWFQnOiAweDg3QzgsCi0gICdNQVhfVkVSVEVYX1NIQURFUl9MT0NBTFNfRVhUJzogMHg4
N0M5LAotICAnTUFYX09QVElNSVpFRF9WRVJURVhfU0hBREVSX0lOU1RSVUNUSU9OU19FWFQnOiAw
eDg3Q0EsCi0gICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFERVJfVkFSSUFOVFNfRVhUJzogMHg4
N0NCLAotICAnTUFYX09QVElNSVpFRF9WRVJURVhfU0hBREVSX0lOVkFSSUFOVFNfRVhUJzogMHg4
N0NDLAotICAnTUFYX09QVElNSVpFRF9WRVJURVhfU0hBREVSX0xPQ0FMX0NPTlNUQU5UU19FWFQn
OiAweDg3Q0QsCi0gICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFERVJfTE9DQUxTX0VYVCc6IDB4
ODdDRSwKLSAgJ1ZFUlRFWF9TSEFERVJfSU5TVFJVQ1RJT05TX0VYVCc6IDB4ODdDRiwKLSAgJ1ZF
UlRFWF9TSEFERVJfVkFSSUFOVFNfRVhUJzogMHg4N0QwLAotICAnVkVSVEVYX1NIQURFUl9JTlZB
UklBTlRTX0VYVCc6IDB4ODdEMSwKLSAgJ1ZFUlRFWF9TSEFERVJfTE9DQUxfQ09OU1RBTlRTX0VY
VCc6IDB4ODdEMiwKLSAgJ1ZFUlRFWF9TSEFERVJfTE9DQUxTX0VYVCc6IDB4ODdEMywKLSAgJ1ZF
UlRFWF9TSEFERVJfT1BUSU1JWkVEX0VYVCc6IDB4ODdENCwKLSAgJ1hfRVhUJzogMHg4N0Q1LAot
ICAnWV9FWFQnOiAweDg3RDYsCi0gICdaX0VYVCc6IDB4ODdENywKLSAgJ1dfRVhUJzogMHg4N0Q4
LAotICAnTkVHQVRJVkVfWF9FWFQnOiAweDg3RDksCi0gICdORUdBVElWRV9ZX0VYVCc6IDB4ODdE
QSwKLSAgJ05FR0FUSVZFX1pfRVhUJzogMHg4N0RCLAotICAnTkVHQVRJVkVfV19FWFQnOiAweDg3
REMsCi0gICdaRVJPX0VYVCc6IDB4ODdERCwKLSAgJ09ORV9FWFQnOiAweDg3REUsCi0gICdORUdB
VElWRV9PTkVfRVhUJzogMHg4N0RGLAotICAnTk9STUFMSVpFRF9SQU5HRV9FWFQnOiAweDg3RTAs
Ci0gICdGVUxMX1JBTkdFX0VYVCc6IDB4ODdFMSwKLSAgJ0NVUlJFTlRfVkVSVEVYX0VYVCc6IDB4
ODdFMiwKLSAgJ01WUF9NQVRSSVhfRVhUJzogMHg4N0UzLAotICAnVkFSSUFOVF9WQUxVRV9FWFQn
OiAweDg3RTQsCi0gICdWQVJJQU5UX0RBVEFUWVBFX0VYVCc6IDB4ODdFNSwKLSAgJ1ZBUklBTlRf
QVJSQVlfU1RSSURFX0VYVCc6IDB4ODdFNiwKLSAgJ1ZBUklBTlRfQVJSQVlfVFlQRV9FWFQnOiAw
eDg3RTcsCi0gICdWQVJJQU5UX0FSUkFZX0VYVCc6IDB4ODdFOCwKLSAgJ1ZBUklBTlRfQVJSQVlf
UE9JTlRFUl9FWFQnOiAweDg3RTksCi0gICdJTlZBUklBTlRfVkFMVUVfRVhUJzogMHg4N0VBLAot
ICAnSU5WQVJJQU5UX0RBVEFUWVBFX0VYVCc6IDB4ODdFQiwKLSAgJ0xPQ0FMX0NPTlNUQU5UX1ZB
TFVFX0VYVCc6IDB4ODdFQywKLSAgJ0xPQ0FMX0NPTlNUQU5UX0RBVEFUWVBFX0VYVCc6IDB4ODdF
RCwKLSAgJ01PREVMVklFVzBfU1RBQ0tfREVQVEhfRVhUJzogMHgwQkEzLAotICAnTU9ERUxWSUVX
MF9NQVRSSVhfRVhUJzogMHgwQkE2LAotICAnTU9ERUxWSUVXMF9FWFQnOiAweDE3MDAsCi0gICdN
T0RFTFZJRVcxX1NUQUNLX0RFUFRIX0VYVCc6IDB4ODUwMiwKLSAgJ01PREVMVklFVzFfTUFUUklY
X0VYVCc6IDB4ODUwNiwKLSAgJ1ZFUlRFWF9XRUlHSFRJTkdfRVhUJzogMHg4NTA5LAotICAnTU9E
RUxWSUVXMV9FWFQnOiAweDg1MEEsCi0gICdDVVJSRU5UX1ZFUlRFWF9XRUlHSFRfRVhUJzogMHg4
NTBCLAotICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9FWFQnOiAweDg1MEMsCi0gICdWRVJURVhfV0VJ
R0hUX0FSUkFZX1NJWkVfRVhUJzogMHg4NTBELAotICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9UWVBF
X0VYVCc6IDB4ODUwRSwKLSAgJ1ZFUlRFWF9XRUlHSFRfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODUw
RiwKLSAgJ1ZFUlRFWF9XRUlHSFRfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDg1MTAsCi0gICdPQ0NM
VVNJT05fVEVTVF9IUCc6IDB4ODE2NSwKLSAgJ09DQ0xVU0lPTl9URVNUX1JFU1VMVF9IUCc6IDB4
ODE2NiwKLSAgJ01JUlJPUkVEX1JFUEVBVF9JQk0nOiAweDgzNzAsCi0gICdSRURfTUlOX0NMQU1Q
X0lOR1InOiAweDg1NjAsCi0gICdHUkVFTl9NSU5fQ0xBTVBfSU5HUic6IDB4ODU2MSwKLSAgJ0JM
VUVfTUlOX0NMQU1QX0lOR1InOiAweDg1NjIsCi0gICdBTFBIQV9NSU5fQ0xBTVBfSU5HUic6IDB4
ODU2MywKLSAgJ1JFRF9NQVhfQ0xBTVBfSU5HUic6IDB4ODU2NCwKLSAgJ0dSRUVOX01BWF9DTEFN
UF9JTkdSJzogMHg4NTY1LAotICAnQkxVRV9NQVhfQ0xBTVBfSU5HUic6IDB4ODU2NiwKLSAgJ0FM
UEhBX01BWF9DTEFNUF9JTkdSJzogMHg4NTY3LAotICAnSU5URVJMQUNFX1JFQURfSU5HUic6IDB4
ODU2OCwKLSAgJ1BBUkFMTEVMX0FSUkFZU19JTlRFTCc6IDB4ODNGNCwKLSAgJ1ZFUlRFWF9BUlJB
WV9QQVJBTExFTF9QT0lOVEVSU19JTlRFTCc6IDB4ODNGNSwKLSAgJ05PUk1BTF9BUlJBWV9QQVJB
TExFTF9QT0lOVEVSU19JTlRFTCc6IDB4ODNGNiwKLSAgJ0NPTE9SX0FSUkFZX1BBUkFMTEVMX1BP
SU5URVJTX0lOVEVMJzogMHg4M0Y3LAotICAnVEVYVFVSRV9DT09SRF9BUlJBWV9QQVJBTExFTF9Q
T0lOVEVSU19JTlRFTCc6IDB4ODNGOCwKLSAgJ0tUWF9GUk9OVF9SRUdJT04nOiAweDAsCi0gICdL
VFhfQkFDS19SRUdJT04nOiAweDEsCi0gICdLVFhfWl9SRUdJT04nOiAweDIsCi0gICdLVFhfU1RF
TkNJTF9SRUdJT04nOiAweDMsCi0gICdURVhUVVJFXzFEX1NUQUNLX01FU0FYJzogMHg4NzU5LAot
ICAnVEVYVFVSRV8yRF9TVEFDS19NRVNBWCc6IDB4ODc1QSwKLSAgJ1BST1hZX1RFWFRVUkVfMURf
U1RBQ0tfTUVTQVgnOiAweDg3NUIsCi0gICdQUk9YWV9URVhUVVJFXzJEX1NUQUNLX01FU0FYJzog
MHg4NzVDLAotICAnVEVYVFVSRV8xRF9TVEFDS19CSU5ESU5HX01FU0FYJzogMHg4NzVELAotICAn
VEVYVFVSRV8yRF9TVEFDS19CSU5ESU5HX01FU0FYJzogMHg4NzVFLAotICAnUEFDS19JTlZFUlRf
TUVTQSc6IDB4ODc1OCwKLSAgJ1VOU0lHTkVEX1NIT1JUXzhfOF9NRVNBJzogMHg4NUJBLAotICAn
VU5TSUdORURfU0hPUlRfOF84X1JFVl9NRVNBJzogMHg4NUJCLAotICAnWUNCQ1JfTUVTQSc6IDB4
ODc1NywKLSAgJ1FVRVJZX1dBSVRfTlYnOiAweDhFMTMsCi0gICdRVUVSWV9OT19XQUlUX05WJzog
MHg4RTE0LAotICAnUVVFUllfQllfUkVHSU9OX1dBSVRfTlYnOiAweDhFMTUsCi0gICdRVUVSWV9C
WV9SRUdJT05fTk9fV0FJVF9OVic6IDB4OEUxNiwKLSAgJ0RFUFRIX1NURU5DSUxfVE9fUkdCQV9O
Vic6IDB4ODg2RSwKLSAgJ0RFUFRIX1NURU5DSUxfVE9fQkdSQV9OVic6IDB4ODg2RiwKLSAgJ0RF
UFRIX0NPTVBPTkVOVDMyRl9OVic6IDB4OERBQiwKLSAgJ0RFUFRIMzJGX1NURU5DSUw4X05WJzog
MHg4REFDLAotICAnRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWX05WJzogMHg4REFELAot
ICAnREVQVEhfQlVGRkVSX0ZMT0FUX01PREVfTlYnOiAweDhEQUYsCi0gICdERVBUSF9DTEFNUF9O
Vic6IDB4ODY0RiwKLSAgJ1NBTVBMRV9DT1VOVF9CSVRTX05WJzogMHg4ODY0LAotICAnQ1VSUkVO
VF9TQU1QTEVfQ09VTlRfUVVFUllfTlYnOiAweDg4NjUsCi0gICdRVUVSWV9SRVNVTFRfTlYnOiAw
eDg4NjYsCi0gICdRVUVSWV9SRVNVTFRfQVZBSUxBQkxFX05WJzogMHg4ODY3LAotICAnU0FNUExF
X0NPVU5UX05WJzogMHg4OTE0LAotICAnRVZBTF8yRF9OVic6IDB4ODZDMCwKLSAgJ0VWQUxfVFJJ
QU5HVUxBUl8yRF9OVic6IDB4ODZDMSwKLSAgJ01BUF9URVNTRUxMQVRJT05fTlYnOiAweDg2QzIs
Ci0gICdNQVBfQVRUUklCX1VfT1JERVJfTlYnOiAweDg2QzMsCi0gICdNQVBfQVRUUklCX1ZfT1JE
RVJfTlYnOiAweDg2QzQsCi0gICdFVkFMX0ZSQUNUSU9OQUxfVEVTU0VMTEFUSU9OX05WJzogMHg4
NkM1LAotICAnRVZBTF9WRVJURVhfQVRUUklCMF9OVic6IDB4ODZDNiwKLSAgJ0VWQUxfVkVSVEVY
X0FUVFJJQjFfTlYnOiAweDg2QzcsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUIyX05WJzogMHg4NkM4
LAotICAnRVZBTF9WRVJURVhfQVRUUklCM19OVic6IDB4ODZDOSwKLSAgJ0VWQUxfVkVSVEVYX0FU
VFJJQjRfTlYnOiAweDg2Q0EsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUI1X05WJzogMHg4NkNCLAot
ICAnRVZBTF9WRVJURVhfQVRUUklCNl9OVic6IDB4ODZDQywKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJ
QjdfTlYnOiAweDg2Q0QsCi0gICdFVkFMX1ZFUlRFWF9BVFRSSUI4X05WJzogMHg4NkNFLAotICAn
RVZBTF9WRVJURVhfQVRUUklCOV9OVic6IDB4ODZDRiwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjEw
X05WJzogMHg4NkQwLAotICAnRVZBTF9WRVJURVhfQVRUUklCMTFfTlYnOiAweDg2RDEsCi0gICdF
VkFMX1ZFUlRFWF9BVFRSSUIxMl9OVic6IDB4ODZEMiwKLSAgJ0VWQUxfVkVSVEVYX0FUVFJJQjEz
X05WJzogMHg4NkQzLAotICAnRVZBTF9WRVJURVhfQVRUUklCMTRfTlYnOiAweDg2RDQsCi0gICdF
VkFMX1ZFUlRFWF9BVFRSSUIxNV9OVic6IDB4ODZENSwKLSAgJ01BWF9NQVBfVEVTU0VMTEFUSU9O
X05WJzogMHg4NkQ2LAotICAnTUFYX1JBVElPTkFMX0VWQUxfT1JERVJfTlYnOiAweDg2RDcsCi0g
ICdTQU1QTEVfUE9TSVRJT05fTlYnOiAweDhFNTAsCi0gICdTQU1QTEVfTUFTS19OVic6IDB4OEU1
MSwKLSAgJ1NBTVBMRV9NQVNLX1ZBTFVFX05WJzogMHg4RTUyLAotICAnVEVYVFVSRV9CSU5ESU5H
X1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1MywKLSAgJ1RFWFRVUkVfUkVOREVSQlVGRkVSX0RBVEFf
U1RPUkVfQklORElOR19OVic6IDB4OEU1NCwKLSAgJ1RFWFRVUkVfUkVOREVSQlVGRkVSX05WJzog
MHg4RTU1LAotICAnU0FNUExFUl9SRU5ERVJCVUZGRVJfTlYnOiAweDhFNTYsCi0gICdJTlRfU0FN
UExFUl9SRU5ERVJCVUZGRVJfTlYnOiAweDhFNTcsCi0gICdVTlNJR05FRF9JTlRfU0FNUExFUl9S
RU5ERVJCVUZGRVJfTlYnOiAweDhFNTgsCi0gICdNQVhfU0FNUExFX01BU0tfV09SRFNfTlYnOiAw
eDhFNTksCi0gICdBTExfQ09NUExFVEVEX05WJzogMHg4NEYyLAotICAnRkVOQ0VfU1RBVFVTX05W
JzogMHg4NEYzLAotICAnRkVOQ0VfQ09ORElUSU9OX05WJzogMHg4NEY0LAotICAnRkxPQVRfUl9O
Vic6IDB4ODg4MCwKLSAgJ0ZMT0FUX1JHX05WJzogMHg4ODgxLAotICAnRkxPQVRfUkdCX05WJzog
MHg4ODgyLAotICAnRkxPQVRfUkdCQV9OVic6IDB4ODg4MywKLSAgJ0ZMT0FUX1IxNl9OVic6IDB4
ODg4NCwKLSAgJ0ZMT0FUX1IzMl9OVic6IDB4ODg4NSwKLSAgJ0ZMT0FUX1JHMTZfTlYnOiAweDg4
ODYsCi0gICdGTE9BVF9SRzMyX05WJzogMHg4ODg3LAotICAnRkxPQVRfUkdCMTZfTlYnOiAweDg4
ODgsCi0gICdGTE9BVF9SR0IzMl9OVic6IDB4ODg4OSwKLSAgJ0ZMT0FUX1JHQkExNl9OVic6IDB4
ODg4QSwKLSAgJ0ZMT0FUX1JHQkEzMl9OVic6IDB4ODg4QiwKLSAgJ1RFWFRVUkVfRkxPQVRfQ09N
UE9ORU5UU19OVic6IDB4ODg4QywKLSAgJ0ZMT0FUX0NMRUFSX0NPTE9SX1ZBTFVFX05WJzogMHg4
ODhELAotICAnRkxPQVRfUkdCQV9NT0RFX05WJzogMHg4ODhFLAotICAnRk9HX0RJU1RBTkNFX01P
REVfTlYnOiAweDg1NUEsCi0gICdFWUVfUkFESUFMX05WJzogMHg4NTVCLAotICAnRVlFX1BMQU5F
X0FCU09MVVRFX05WJzogMHg4NTVDLAotICAnTUFYX0ZSQUdNRU5UX1BST0dSQU1fTE9DQUxfUEFS
QU1FVEVSU19OVic6IDB4ODg2OCwKLSAgJ0ZSQUdNRU5UX1BST0dSQU1fTlYnOiAweDg4NzAsCi0g
ICdNQVhfVEVYVFVSRV9DT09SRFNfTlYnOiAweDg4NzEsCi0gICdNQVhfVEVYVFVSRV9JTUFHRV9V
TklUU19OVic6IDB4ODg3MiwKLSAgJ0ZSQUdNRU5UX1BST0dSQU1fQklORElOR19OVic6IDB4ODg3
MywKLSAgJ1BST0dSQU1fRVJST1JfU1RSSU5HX05WJzogMHg4ODc0LAotICAnTUFYX1BST0dSQU1f
RVhFQ19JTlNUUlVDVElPTlNfTlYnOiAweDg4RjQsCi0gICdNQVhfUFJPR1JBTV9DQUxMX0RFUFRI
X05WJzogMHg4OEY1LAotICAnTUFYX1BST0dSQU1fSUZfREVQVEhfTlYnOiAweDg4RjYsCi0gICdN
QVhfUFJPR1JBTV9MT09QX0RFUFRIX05WJzogMHg4OEY3LAotICAnTUFYX1BST0dSQU1fTE9PUF9D
T1VOVF9OVic6IDB4ODhGOCwKLSAgJ1JFTkRFUkJVRkZFUl9DT1ZFUkFHRV9TQU1QTEVTX05WJzog
MHg4Q0FCLAotICAnUkVOREVSQlVGRkVSX0NPTE9SX1NBTVBMRVNfTlYnOiAweDhFMTAsCi0gICdN
QVhfTVVMVElTQU1QTEVfQ09WRVJBR0VfTU9ERVNfTlYnOiAweDhFMTEsCi0gICdNVUxUSVNBTVBM
RV9DT1ZFUkFHRV9NT0RFU19OVic6IDB4OEUxMiwKLSAgJ0dFT01FVFJZX1BST0dSQU1fTlYnOiAw
eDhDMjYsCi0gICdNQVhfUFJPR1JBTV9PVVRQVVRfVkVSVElDRVNfTlYnOiAweDhDMjcsCi0gICdN
QVhfUFJPR1JBTV9UT1RBTF9PVVRQVVRfQ09NUE9ORU5UU19OVic6IDB4OEMyOCwKLSAgJ01JTl9Q
Uk9HUkFNX1RFWEVMX09GRlNFVF9OVic6IDB4ODkwNCwKLSAgJ01BWF9QUk9HUkFNX1RFWEVMX09G
RlNFVF9OVic6IDB4ODkwNSwKLSAgJ1BST0dSQU1fQVRUUklCX0NPTVBPTkVOVFNfTlYnOiAweDg5
MDYsCi0gICdQUk9HUkFNX1JFU1VMVF9DT01QT05FTlRTX05WJzogMHg4OTA3LAotICAnTUFYX1BS
T0dSQU1fQVRUUklCX0NPTVBPTkVOVFNfTlYnOiAweDg5MDgsCi0gICdNQVhfUFJPR1JBTV9SRVNV
TFRfQ09NUE9ORU5UU19OVic6IDB4ODkwOSwKLSAgJ01BWF9QUk9HUkFNX0dFTkVSSUNfQVRUUklC
U19OVic6IDB4OERBNSwKLSAgJ01BWF9QUk9HUkFNX0dFTkVSSUNfUkVTVUxUU19OVic6IDB4OERB
NiwKLSAgJ0hBTEZfRkxPQVRfTlYnOiAweDE0MEIsCi0gICdNQVhfU0hJTklORVNTX05WJzogMHg4
NTA0LAotICAnTUFYX1NQT1RfRVhQT05FTlRfTlYnOiAweDg1MDUsCi0gICdNVUxUSVNBTVBMRV9G
SUxURVJfSElOVF9OVic6IDB4ODUzNCwKLSAgJ1BJWEVMX0NPVU5URVJfQklUU19OVic6IDB4ODg2
NCwKLSAgJ0NVUlJFTlRfT0NDTFVTSU9OX1FVRVJZX0lEX05WJzogMHg4ODY1LAotICAnUElYRUxf
Q09VTlRfTlYnOiAweDg4NjYsCi0gICdQSVhFTF9DT1VOVF9BVkFJTEFCTEVfTlYnOiAweDg4Njcs
Ci0gICdERVBUSF9TVEVOQ0lMX05WJzogMHg4NEY5LAotICAnVU5TSUdORURfSU5UXzI0XzhfTlYn
OiAweDg0RkEsCi0gICdNQVhfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX0JJTkRJTkdTX05WJzog
MHg4REEwLAotICAnTUFYX1BST0dSQU1fUEFSQU1FVEVSX0JVRkZFUl9TSVpFX05WJzogMHg4REEx
LAotICAnVkVSVEVYX1BST0dSQU1fUEFSQU1FVEVSX0JVRkZFUl9OVic6IDB4OERBMiwKLSAgJ0dF
T01FVFJZX1BST0dSQU1fUEFSQU1FVEVSX0JVRkZFUl9OVic6IDB4OERBMywKLSAgJ0ZSQUdNRU5U
X1BST0dSQU1fUEFSQU1FVEVSX0JVRkZFUl9OVic6IDB4OERBNCwKLSAgJ1dSSVRFX1BJWEVMX0RB
VEFfUkFOR0VfTlYnOiAweDg4NzgsCi0gICdSRUFEX1BJWEVMX0RBVEFfUkFOR0VfTlYnOiAweDg4
NzksCi0gICdXUklURV9QSVhFTF9EQVRBX1JBTkdFX0xFTkdUSF9OVic6IDB4ODg3QSwKLSAgJ1JF
QURfUElYRUxfREFUQV9SQU5HRV9MRU5HVEhfTlYnOiAweDg4N0IsCi0gICdXUklURV9QSVhFTF9E
QVRBX1JBTkdFX1BPSU5URVJfTlYnOiAweDg4N0MsCi0gICdSRUFEX1BJWEVMX0RBVEFfUkFOR0Vf
UE9JTlRFUl9OVic6IDB4ODg3RCwKLSAgJ1BPSU5UX1NQUklURV9OVic6IDB4ODg2MSwKLSAgJ0NP
T1JEX1JFUExBQ0VfTlYnOiAweDg4NjIsCi0gICdQT0lOVF9TUFJJVEVfUl9NT0RFX05WJzogMHg4
ODYzLAotICAnRlJBTUVfTlYnOiAweDhFMjYsCi0gICdGSUVMRFNfTlYnOiAweDhFMjcsCi0gICdD
VVJSRU5UX1RJTUVfTlYnOiAweDhFMjgsCi0gICdOVU1fRklMTF9TVFJFQU1TX05WJzogMHg4RTI5
LAotICAnUFJFU0VOVF9USU1FX05WJzogMHg4RTJBLAotICAnUFJFU0VOVF9EVVJBVElPTl9OVic6
IDB4OEUyQiwKLSAgJ1BSSU1JVElWRV9SRVNUQVJUX05WJzogMHg4NTU4LAotICAnUFJJTUlUSVZF
X1JFU1RBUlRfSU5ERVhfTlYnOiAweDg1NTksCi0gICdSRUdJU1RFUl9DT01CSU5FUlNfTlYnOiAw
eDg1MjIsCi0gICdWQVJJQUJMRV9BX05WJzogMHg4NTIzLAotICAnVkFSSUFCTEVfQl9OVic6IDB4
ODUyNCwKLSAgJ1ZBUklBQkxFX0NfTlYnOiAweDg1MjUsCi0gICdWQVJJQUJMRV9EX05WJzogMHg4
NTI2LAotICAnVkFSSUFCTEVfRV9OVic6IDB4ODUyNywKLSAgJ1ZBUklBQkxFX0ZfTlYnOiAweDg1
MjgsCi0gICdWQVJJQUJMRV9HX05WJzogMHg4NTI5LAotICAnQ09OU1RBTlRfQ09MT1IwX05WJzog
MHg4NTJBLAotICAnQ09OU1RBTlRfQ09MT1IxX05WJzogMHg4NTJCLAotICAnUFJJTUFSWV9DT0xP
Ul9OVic6IDB4ODUyQywKLSAgJ1NFQ09OREFSWV9DT0xPUl9OVic6IDB4ODUyRCwKLSAgJ1NQQVJF
MF9OVic6IDB4ODUyRSwKLSAgJ1NQQVJFMV9OVic6IDB4ODUyRiwKLSAgJ0RJU0NBUkRfTlYnOiAw
eDg1MzAsCi0gICdFX1RJTUVTX0ZfTlYnOiAweDg1MzEsCi0gICdTUEFSRTBfUExVU19TRUNPTkRB
UllfQ09MT1JfTlYnOiAweDg1MzIsCi0gICdVTlNJR05FRF9JREVOVElUWV9OVic6IDB4ODUzNiwK
LSAgJ1VOU0lHTkVEX0lOVkVSVF9OVic6IDB4ODUzNywKLSAgJ0VYUEFORF9OT1JNQUxfTlYnOiAw
eDg1MzgsCi0gICdFWFBBTkRfTkVHQVRFX05WJzogMHg4NTM5LAotICAnSEFMRl9CSUFTX05PUk1B
TF9OVic6IDB4ODUzQSwKLSAgJ0hBTEZfQklBU19ORUdBVEVfTlYnOiAweDg1M0IsCi0gICdTSUdO
RURfSURFTlRJVFlfTlYnOiAweDg1M0MsCi0gICdTSUdORURfTkVHQVRFX05WJzogMHg4NTNELAot
ICAnU0NBTEVfQllfVFdPX05WJzogMHg4NTNFLAotICAnU0NBTEVfQllfRk9VUl9OVic6IDB4ODUz
RiwKLSAgJ1NDQUxFX0JZX09ORV9IQUxGX05WJzogMHg4NTQwLAotICAnQklBU19CWV9ORUdBVElW
RV9PTkVfSEFMRl9OVic6IDB4ODU0MSwKLSAgJ0NPTUJJTkVSX0lOUFVUX05WJzogMHg4NTQyLAot
ICAnQ09NQklORVJfTUFQUElOR19OVic6IDB4ODU0MywKLSAgJ0NPTUJJTkVSX0NPTVBPTkVOVF9V
U0FHRV9OVic6IDB4ODU0NCwKLSAgJ0NPTUJJTkVSX0FCX0RPVF9QUk9EVUNUX05WJzogMHg4NTQ1
LAotICAnQ09NQklORVJfQ0RfRE9UX1BST0RVQ1RfTlYnOiAweDg1NDYsCi0gICdDT01CSU5FUl9N
VVhfU1VNX05WJzogMHg4NTQ3LAotICAnQ09NQklORVJfU0NBTEVfTlYnOiAweDg1NDgsCi0gICdD
T01CSU5FUl9CSUFTX05WJzogMHg4NTQ5LAotICAnQ09NQklORVJfQUJfT1VUUFVUX05WJzogMHg4
NTRBLAotICAnQ09NQklORVJfQ0RfT1VUUFVUX05WJzogMHg4NTRCLAotICAnQ09NQklORVJfU1VN
X09VVFBVVF9OVic6IDB4ODU0QywKLSAgJ01BWF9HRU5FUkFMX0NPTUJJTkVSU19OVic6IDB4ODU0
RCwKLSAgJ05VTV9HRU5FUkFMX0NPTUJJTkVSU19OVic6IDB4ODU0RSwKLSAgJ0NPTE9SX1NVTV9D
TEFNUF9OVic6IDB4ODU0RiwKLSAgJ0NPTUJJTkVSMF9OVic6IDB4ODU1MCwKLSAgJ0NPTUJJTkVS
MV9OVic6IDB4ODU1MSwKLSAgJ0NPTUJJTkVSMl9OVic6IDB4ODU1MiwKLSAgJ0NPTUJJTkVSM19O
Vic6IDB4ODU1MywKLSAgJ0NPTUJJTkVSNF9OVic6IDB4ODU1NCwKLSAgJ0NPTUJJTkVSNV9OVic6
IDB4ODU1NSwKLSAgJ0NPTUJJTkVSNl9OVic6IDB4ODU1NiwKLSAgJ0NPTUJJTkVSN19OVic6IDB4
ODU1NywKLSAgJ1BFUl9TVEFHRV9DT05TVEFOVFNfTlYnOiAweDg1MzUsCi0gICdFTUJPU1NfTElH
SFRfTlYnOiAweDg1NUQsCi0gICdFTUJPU1NfQ09OU1RBTlRfTlYnOiAweDg1NUUsCi0gICdFTUJP
U1NfTUFQX05WJzogMHg4NTVGLAotICAnTk9STUFMX01BUF9OVic6IDB4ODUxMSwKLSAgJ1JFRkxF
Q1RJT05fTUFQX05WJzogMHg4NTEyLAotICAnQ09NQklORTRfTlYnOiAweDg1MDMsCi0gICdTT1VS
Q0UzX1JHQl9OVic6IDB4ODU4MywKLSAgJ1NPVVJDRTNfQUxQSEFfTlYnOiAweDg1OEIsCi0gICdP
UEVSQU5EM19SR0JfTlYnOiAweDg1OTMsCi0gICdPUEVSQU5EM19BTFBIQV9OVic6IDB4ODU5QiwK
LSAgJ1RFWFRVUkVfVU5TSUdORURfUkVNQVBfTU9ERV9OVic6IDB4ODg4RiwKLSAgJ1RFWFRVUkVf
UkVDVEFOR0xFX05WJzogMHg4NEY1LAotICAnVEVYVFVSRV9CSU5ESU5HX1JFQ1RBTkdMRV9OVic6
IDB4ODRGNiwKLSAgJ1BST1hZX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4NEY3LAotICAnTUFY
X1JFQ1RBTkdMRV9URVhUVVJFX1NJWkVfTlYnOiAweDg0RjgsCi0gICdPRkZTRVRfVEVYVFVSRV9S
RUNUQU5HTEVfTlYnOiAweDg2NEMsCi0gICdPRkZTRVRfVEVYVFVSRV9SRUNUQU5HTEVfU0NBTEVf
TlYnOiAweDg2NEQsCi0gICdET1RfUFJPRFVDVF9URVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODY0
RSwKLSAgJ1JHQkFfVU5TSUdORURfRE9UX1BST0RVQ1RfTUFQUElOR19OVic6IDB4ODZEOSwKLSAg
J1VOU0lHTkVEX0lOVF9TOF9TOF84XzhfTlYnOiAweDg2REEsCi0gICdVTlNJR05FRF9JTlRfOF84
X1M4X1M4X1JFVl9OVic6IDB4ODZEQiwKLSAgJ0RTRFRfTUFHX0lOVEVOU0lUWV9OVic6IDB4ODZE
QywKLSAgJ1NIQURFUl9DT05TSVNURU5UX05WJzogMHg4NkRELAotICAnVEVYVFVSRV9TSEFERVJf
TlYnOiAweDg2REUsCi0gICdTSEFERVJfT1BFUkFUSU9OX05WJzogMHg4NkRGLAotICAnQ1VMTF9N
T0RFU19OVic6IDB4ODZFMCwKLSAgJ09GRlNFVF9URVhUVVJFXzJEX01BVFJJWF9OVic6IDB4ODZF
MSwKLSAgJ09GRlNFVF9URVhUVVJFX01BVFJJWF9OVic6IDB4ODZFMSwKLSAgJ09GRlNFVF9URVhU
VVJFXzJEX1NDQUxFX05WJzogMHg4NkUyLAotICAnT0ZGU0VUX1RFWFRVUkVfU0NBTEVfTlYnOiAw
eDg2RTIsCi0gICdPRkZTRVRfVEVYVFVSRV9CSUFTX05WJzogMHg4NkUzLAotICAnT0ZGU0VUX1RF
WFRVUkVfMkRfQklBU19OVic6IDB4ODZFMywKLSAgJ1BSRVZJT1VTX1RFWFRVUkVfSU5QVVRfTlYn
OiAweDg2RTQsCi0gICdDT05TVF9FWUVfTlYnOiAweDg2RTUsCi0gICdQQVNTX1RIUk9VR0hfTlYn
OiAweDg2RTYsCi0gICdDVUxMX0ZSQUdNRU5UX05WJzogMHg4NkU3LAotICAnT0ZGU0VUX1RFWFRV
UkVfMkRfTlYnOiAweDg2RTgsCi0gICdERVBFTkRFTlRfQVJfVEVYVFVSRV8yRF9OVic6IDB4ODZF
OSwKLSAgJ0RFUEVOREVOVF9HQl9URVhUVVJFXzJEX05WJzogMHg4NkVBLAotICAnRE9UX1BST0RV
Q1RfTlYnOiAweDg2RUMsCi0gICdET1RfUFJPRFVDVF9ERVBUSF9SRVBMQUNFX05WJzogMHg4NkVE
LAotICAnRE9UX1BST0RVQ1RfVEVYVFVSRV8yRF9OVic6IDB4ODZFRSwKLSAgJ0RPVF9QUk9EVUNU
X1RFWFRVUkVfQ1VCRV9NQVBfTlYnOiAweDg2RjAsCi0gICdET1RfUFJPRFVDVF9ESUZGVVNFX0NV
QkVfTUFQX05WJzogMHg4NkYxLAotICAnRE9UX1BST0RVQ1RfUkVGTEVDVF9DVUJFX01BUF9OVic6
IDB4ODZGMiwKLSAgJ0RPVF9QUk9EVUNUX0NPTlNUX0VZRV9SRUZMRUNUX0NVQkVfTUFQX05WJzog
MHg4NkYzLAotICAnSElMT19OVic6IDB4ODZGNCwKLSAgJ0RTRFRfTlYnOiAweDg2RjUsCi0gICdE
U0RUX01BR19OVic6IDB4ODZGNiwKLSAgJ0RTRFRfTUFHX1ZJQl9OVic6IDB4ODZGNywKLSAgJ0hJ
TE8xNl9OVic6IDB4ODZGOCwKLSAgJ1NJR05FRF9ISUxPX05WJzogMHg4NkY5LAotICAnU0lHTkVE
X0hJTE8xNl9OVic6IDB4ODZGQSwKLSAgJ1NJR05FRF9SR0JBX05WJzogMHg4NkZCLAotICAnU0lH
TkVEX1JHQkE4X05WJzogMHg4NkZDLAotICAnU0lHTkVEX1JHQl9OVic6IDB4ODZGRSwKLSAgJ1NJ
R05FRF9SR0I4X05WJzogMHg4NkZGLAotICAnU0lHTkVEX0xVTUlOQU5DRV9OVic6IDB4ODcwMSwK
LSAgJ1NJR05FRF9MVU1JTkFOQ0U4X05WJzogMHg4NzAyLAotICAnU0lHTkVEX0xVTUlOQU5DRV9B
TFBIQV9OVic6IDB4ODcwMywKLSAgJ1NJR05FRF9MVU1JTkFOQ0U4X0FMUEhBOF9OVic6IDB4ODcw
NCwKLSAgJ1NJR05FRF9BTFBIQV9OVic6IDB4ODcwNSwKLSAgJ1NJR05FRF9BTFBIQThfTlYnOiAw
eDg3MDYsCi0gICdTSUdORURfSU5URU5TSVRZX05WJzogMHg4NzA3LAotICAnU0lHTkVEX0lOVEVO
U0lUWThfTlYnOiAweDg3MDgsCi0gICdEU0RUOF9OVic6IDB4ODcwOSwKLSAgJ0RTRFQ4X01BRzhf
TlYnOiAweDg3MEEsCi0gICdEU0RUOF9NQUc4X0lOVEVOU0lUWThfTlYnOiAweDg3MEIsCi0gICdT
SUdORURfUkdCX1VOU0lHTkVEX0FMUEhBX05WJzogMHg4NzBDLAotICAnU0lHTkVEX1JHQjhfVU5T
SUdORURfQUxQSEE4X05WJzogMHg4NzBELAotICAnSElfU0NBTEVfTlYnOiAweDg3MEUsCi0gICdM
T19TQ0FMRV9OVic6IDB4ODcwRiwKLSAgJ0RTX1NDQUxFX05WJzogMHg4NzEwLAotICAnRFRfU0NB
TEVfTlYnOiAweDg3MTEsCi0gICdNQUdOSVRVREVfU0NBTEVfTlYnOiAweDg3MTIsCi0gICdWSUJS
QU5DRV9TQ0FMRV9OVic6IDB4ODcxMywKLSAgJ0hJX0JJQVNfTlYnOiAweDg3MTQsCi0gICdMT19C
SUFTX05WJzogMHg4NzE1LAotICAnRFNfQklBU19OVic6IDB4ODcxNiwKLSAgJ0RUX0JJQVNfTlYn
OiAweDg3MTcsCi0gICdNQUdOSVRVREVfQklBU19OVic6IDB4ODcxOCwKLSAgJ1ZJQlJBTkNFX0JJ
QVNfTlYnOiAweDg3MTksCi0gICdURVhUVVJFX0JPUkRFUl9WQUxVRVNfTlYnOiAweDg3MUEsCi0g
ICdURVhUVVJFX0hJX1NJWkVfTlYnOiAweDg3MUIsCi0gICdURVhUVVJFX0xPX1NJWkVfTlYnOiAw
eDg3MUMsCi0gICdURVhUVVJFX0RTX1NJWkVfTlYnOiAweDg3MUQsCi0gICdURVhUVVJFX0RUX1NJ
WkVfTlYnOiAweDg3MUUsCi0gICdURVhUVVJFX01BR19TSVpFX05WJzogMHg4NzFGLAotICAnVU5T
SUdORURfSU5UX1M4X1M4XzhfOF9OVic6IDB4ODZEQSwKLSAgJ1VOU0lHTkVEX0lOVF84XzhfUzhf
UzhfUkVWX05WJzogMHg4NkRCLAotICAnRFNEVF9NQUdfSU5URU5TSVRZX05WJzogMHg4NkRDLAot
ICAnRE9UX1BST0RVQ1RfVEVYVFVSRV8zRF9OVic6IDB4ODZFRiwKLSAgJ0hJTE9fTlYnOiAweDg2
RjQsCi0gICdEU0RUX05WJzogMHg4NkY1LAotICAnRFNEVF9NQUdfTlYnOiAweDg2RjYsCi0gICdE
U0RUX01BR19WSUJfTlYnOiAweDg2RjcsCi0gICdISUxPMTZfTlYnOiAweDg2RjgsCi0gICdTSUdO
RURfSElMT19OVic6IDB4ODZGOSwKLSAgJ1NJR05FRF9ISUxPMTZfTlYnOiAweDg2RkEsCi0gICdT
SUdORURfUkdCQV9OVic6IDB4ODZGQiwKLSAgJ1NJR05FRF9SR0JBOF9OVic6IDB4ODZGQywKLSAg
J1NJR05FRF9SR0JfTlYnOiAweDg2RkUsCi0gICdTSUdORURfUkdCOF9OVic6IDB4ODZGRiwKLSAg
J1NJR05FRF9MVU1JTkFOQ0VfTlYnOiAweDg3MDEsCi0gICdTSUdORURfTFVNSU5BTkNFOF9OVic6
IDB4ODcwMiwKLSAgJ1NJR05FRF9MVU1JTkFOQ0VfQUxQSEFfTlYnOiAweDg3MDMsCi0gICdTSUdO
RURfTFVNSU5BTkNFOF9BTFBIQThfTlYnOiAweDg3MDQsCi0gICdTSUdORURfQUxQSEFfTlYnOiAw
eDg3MDUsCi0gICdTSUdORURfQUxQSEE4X05WJzogMHg4NzA2LAotICAnU0lHTkVEX0lOVEVOU0lU
WV9OVic6IDB4ODcwNywKLSAgJ1NJR05FRF9JTlRFTlNJVFk4X05WJzogMHg4NzA4LAotICAnRFNE
VDhfTlYnOiAweDg3MDksCi0gICdEU0RUOF9NQUc4X05WJzogMHg4NzBBLAotICAnRFNEVDhfTUFH
OF9JTlRFTlNJVFk4X05WJzogMHg4NzBCLAotICAnU0lHTkVEX1JHQl9VTlNJR05FRF9BTFBIQV9O
Vic6IDB4ODcwQywKLSAgJ1NJR05FRF9SR0I4X1VOU0lHTkVEX0FMUEhBOF9OVic6IDB4ODcwRCwK
LSAgJ09GRlNFVF9QUk9KRUNUSVZFX1RFWFRVUkVfMkRfTlYnOiAweDg4NTAsCi0gICdPRkZTRVRf
UFJPSkVDVElWRV9URVhUVVJFXzJEX1NDQUxFX05WJzogMHg4ODUxLAotICAnT0ZGU0VUX1BST0pF
Q1RJVkVfVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAweDg4NTIsCi0gICdPRkZTRVRfUFJPSkVDVElW
RV9URVhUVVJFX1JFQ1RBTkdMRV9TQ0FMRV9OVic6IDB4ODg1MywKLSAgJ09GRlNFVF9ISUxPX1RF
WFRVUkVfMkRfTlYnOiAweDg4NTQsCi0gICdPRkZTRVRfSElMT19URVhUVVJFX1JFQ1RBTkdMRV9O
Vic6IDB4ODg1NSwKLSAgJ09GRlNFVF9ISUxPX1BST0pFQ1RJVkVfVEVYVFVSRV8yRF9OVic6IDB4
ODg1NiwKLSAgJ09GRlNFVF9ISUxPX1BST0pFQ1RJVkVfVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAw
eDg4NTcsCi0gICdERVBFTkRFTlRfSElMT19URVhUVVJFXzJEX05WJzogMHg4ODU4LAotICAnREVQ
RU5ERU5UX1JHQl9URVhUVVJFXzNEX05WJzogMHg4ODU5LAotICAnREVQRU5ERU5UX1JHQl9URVhU
VVJFX0NVQkVfTUFQX05WJzogMHg4ODVBLAotICAnRE9UX1BST0RVQ1RfUEFTU19USFJPVUdIX05W
JzogMHg4ODVCLAotICAnRE9UX1BST0RVQ1RfVEVYVFVSRV8xRF9OVic6IDB4ODg1QywKLSAgJ0RP
VF9QUk9EVUNUX0FGRklORV9ERVBUSF9SRVBMQUNFX05WJzogMHg4ODVELAotICAnSElMTzhfTlYn
OiAweDg4NUUsCi0gICdTSUdORURfSElMTzhfTlYnOiAweDg4NUYsCi0gICdGT1JDRV9CTFVFX1RP
X09ORV9OVic6IDB4ODg2MCwKLSAgJ0JBQ0tfUFJJTUFSWV9DT0xPUl9OVic6IDB4OEM3NywKLSAg
J0JBQ0tfU0VDT05EQVJZX0NPTE9SX05WJzogMHg4Qzc4LAotICAnVEVYVFVSRV9DT09SRF9OVic6
IDB4OEM3OSwKLSAgJ0NMSVBfRElTVEFOQ0VfTlYnOiAweDhDN0EsCi0gICdWRVJURVhfSURfTlYn
OiAweDhDN0IsCi0gICdQUklNSVRJVkVfSURfTlYnOiAweDhDN0MsCi0gICdHRU5FUklDX0FUVFJJ
Ql9OVic6IDB4OEM3RCwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19BVFRSSUJTX05WJzogMHg4QzdF
LAotICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9NT0RFX05WJzogMHg4QzdGLAotICAnTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRTX05WJzogMHg4QzgwLAotICAn
QUNUSVZFX1ZBUllJTkdTX05WJzogMHg4QzgxLAotICAnQUNUSVZFX1ZBUllJTkdfTUFYX0xFTkdU
SF9OVic6IDB4OEM4MiwKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HU19OVic6IDB4OEM4
MywKLSAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlRfTlYnOiAweDhDODQsCi0gICdU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkVfTlYnOiAweDhDODUsCi0gICdUUkFOU0ZPUk1f
RkVFREJBQ0tfUkVDT1JEX05WJzogMHg4Qzg2LAotICAnUFJJTUlUSVZFU19HRU5FUkFURURfTlYn
OiAweDhDODcsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOX05WJzog
MHg4Qzg4LAotICAnUkFTVEVSSVpFUl9ESVNDQVJEX05WJzogMHg4Qzg5LAotICAnTUFYX1RSQU5T
Rk9STV9GRUVEQkFDS19JTlRFUkxFQVZFRF9DT01QT05FTlRTX05WJzogMHg4QzhBLAotICAnTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTX05WJzogMHg4QzhCLAotICAnSU5U
RVJMRUFWRURfQVRUUklCU19OVic6IDB4OEM4QywKLSAgJ1NFUEFSQVRFX0FUVFJJQlNfTlYnOiAw
eDhDOEQsCi0gICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX05WJzogMHg4QzhFLAotICAnVFJB
TlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HX05WJzogMHg4QzhGLAotICAnVkVSVEVYX0FS
UkFZX1JBTkdFX05WJzogMHg4NTFELAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX0xFTkdUSF9OVic6
IDB4ODUxRSwKLSAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9WQUxJRF9OVic6IDB4ODUxRiwKLSAgJ01B
WF9WRVJURVhfQVJSQVlfUkFOR0VfRUxFTUVOVF9OVic6IDB4ODUyMCwKLSAgJ1ZFUlRFWF9BUlJB
WV9SQU5HRV9QT0lOVEVSX05WJzogMHg4NTIxLAotICAnVkVSVEVYX0FSUkFZX1JBTkdFX1dJVEhP
VVRfRkxVU0hfTlYnOiAweDg1MzMsCi0gICdWRVJURVhfUFJPR1JBTV9OVic6IDB4ODYyMCwKLSAg
J1ZFUlRFWF9TVEFURV9QUk9HUkFNX05WJzogMHg4NjIxLAotICAnQVRUUklCX0FSUkFZX1NJWkVf
TlYnOiAweDg2MjMsCi0gICdBVFRSSUJfQVJSQVlfU1RSSURFX05WJzogMHg4NjI0LAotICAnQVRU
UklCX0FSUkFZX1RZUEVfTlYnOiAweDg2MjUsCi0gICdDVVJSRU5UX0FUVFJJQl9OVic6IDB4ODYy
NiwKLSAgJ1BST0dSQU1fTEVOR1RIX05WJzogMHg4NjI3LAotICAnUFJPR1JBTV9TVFJJTkdfTlYn
OiAweDg2MjgsCi0gICdNT0RFTFZJRVdfUFJPSkVDVElPTl9OVic6IDB4ODYyOSwKLSAgJ0lERU5U
SVRZX05WJzogMHg4NjJBLAotICAnSU5WRVJTRV9OVic6IDB4ODYyQiwKLSAgJ1RSQU5TUE9TRV9O
Vic6IDB4ODYyQywKLSAgJ0lOVkVSU0VfVFJBTlNQT1NFX05WJzogMHg4NjJELAotICAnTUFYX1RS
QUNLX01BVFJJWF9TVEFDS19ERVBUSF9OVic6IDB4ODYyRSwKLSAgJ01BWF9UUkFDS19NQVRSSUNF
U19OVic6IDB4ODYyRiwKLSAgJ01BVFJJWDBfTlYnOiAweDg2MzAsCi0gICdNQVRSSVgxX05WJzog
MHg4NjMxLAotICAnTUFUUklYMl9OVic6IDB4ODYzMiwKLSAgJ01BVFJJWDNfTlYnOiAweDg2MzMs
Ci0gICdNQVRSSVg0X05WJzogMHg4NjM0LAotICAnTUFUUklYNV9OVic6IDB4ODYzNSwKLSAgJ01B
VFJJWDZfTlYnOiAweDg2MzYsCi0gICdNQVRSSVg3X05WJzogMHg4NjM3LAotICAnQ1VSUkVOVF9N
QVRSSVhfU1RBQ0tfREVQVEhfTlYnOiAweDg2NDAsCi0gICdDVVJSRU5UX01BVFJJWF9OVic6IDB4
ODY0MSwKLSAgJ1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkVfTlYnOiAweDg2NDIsCi0gICdWRVJU
RVhfUFJPR1JBTV9UV09fU0lERV9OVic6IDB4ODY0MywKLSAgJ1BST0dSQU1fUEFSQU1FVEVSX05W
JzogMHg4NjQ0LAotICAnQVRUUklCX0FSUkFZX1BPSU5URVJfTlYnOiAweDg2NDUsCi0gICdQUk9H
UkFNX1RBUkdFVF9OVic6IDB4ODY0NiwKLSAgJ1BST0dSQU1fUkVTSURFTlRfTlYnOiAweDg2NDcs
Ci0gICdUUkFDS19NQVRSSVhfTlYnOiAweDg2NDgsCi0gICdUUkFDS19NQVRSSVhfVFJBTlNGT1JN
X05WJzogMHg4NjQ5LAotICAnVkVSVEVYX1BST0dSQU1fQklORElOR19OVic6IDB4ODY0QSwKLSAg
J1BST0dSQU1fRVJST1JfUE9TSVRJT05fTlYnOiAweDg2NEIsCi0gICdWRVJURVhfQVRUUklCX0FS
UkFZMF9OVic6IDB4ODY1MCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkxX05WJzogMHg4NjUxLAot
ICAnVkVSVEVYX0FUVFJJQl9BUlJBWTJfTlYnOiAweDg2NTIsCi0gICdWRVJURVhfQVRUUklCX0FS
UkFZM19OVic6IDB4ODY1MywKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVk0X05WJzogMHg4NjU0LAot
ICAnVkVSVEVYX0FUVFJJQl9BUlJBWTVfTlYnOiAweDg2NTUsCi0gICdWRVJURVhfQVRUUklCX0FS
UkFZNl9OVic6IDB4ODY1NiwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVk3X05WJzogMHg4NjU3LAot
ICAnVkVSVEVYX0FUVFJJQl9BUlJBWThfTlYnOiAweDg2NTgsCi0gICdWRVJURVhfQVRUUklCX0FS
UkFZOV9OVic6IDB4ODY1OSwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkxMF9OVic6IDB4ODY1QSwK
LSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkxMV9OVic6IDB4ODY1QiwKLSAgJ1ZFUlRFWF9BVFRSSUJf
QVJSQVkxMl9OVic6IDB4ODY1QywKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkxM19OVic6IDB4ODY1
RCwKLSAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkxNF9OVic6IDB4ODY1RSwKLSAgJ1ZFUlRFWF9BVFRS
SUJfQVJSQVkxNV9OVic6IDB4ODY1RiwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjBfNF9OVic6IDB4
ODY2MCwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjFfNF9OVic6IDB4ODY2MSwKLSAgJ01BUDFfVkVS
VEVYX0FUVFJJQjJfNF9OVic6IDB4ODY2MiwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjNfNF9OVic6
IDB4ODY2MywKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjRfNF9OVic6IDB4ODY2NCwKLSAgJ01BUDFf
VkVSVEVYX0FUVFJJQjVfNF9OVic6IDB4ODY2NSwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjZfNF9O
Vic6IDB4ODY2NiwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjdfNF9OVic6IDB4ODY2NywKLSAgJ01B
UDFfVkVSVEVYX0FUVFJJQjhfNF9OVic6IDB4ODY2OCwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjlf
NF9OVic6IDB4ODY2OSwKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjEwXzRfTlYnOiAweDg2NkEsCi0g
ICdNQVAxX1ZFUlRFWF9BVFRSSUIxMV80X05WJzogMHg4NjZCLAotICAnTUFQMV9WRVJURVhfQVRU
UklCMTJfNF9OVic6IDB4ODY2QywKLSAgJ01BUDFfVkVSVEVYX0FUVFJJQjEzXzRfTlYnOiAweDg2
NkQsCi0gICdNQVAxX1ZFUlRFWF9BVFRSSUIxNF80X05WJzogMHg4NjZFLAotICAnTUFQMV9WRVJU
RVhfQVRUUklCMTVfNF9OVic6IDB4ODY2RiwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjBfNF9OVic6
IDB4ODY3MCwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjFfNF9OVic6IDB4ODY3MSwKLSAgJ01BUDJf
VkVSVEVYX0FUVFJJQjJfNF9OVic6IDB4ODY3MiwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjNfNF9O
Vic6IDB4ODY3MywKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjRfNF9OVic6IDB4ODY3NCwKLSAgJ01B
UDJfVkVSVEVYX0FUVFJJQjVfNF9OVic6IDB4ODY3NSwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjZf
NF9OVic6IDB4ODY3NiwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjdfNF9OVic6IDB4ODY3NywKLSAg
J01BUDJfVkVSVEVYX0FUVFJJQjhfNF9OVic6IDB4ODY3OCwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJ
QjlfNF9OVic6IDB4ODY3OSwKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjEwXzRfTlYnOiAweDg2N0Es
Ci0gICdNQVAyX1ZFUlRFWF9BVFRSSUIxMV80X05WJzogMHg4NjdCLAotICAnTUFQMl9WRVJURVhf
QVRUUklCMTJfNF9OVic6IDB4ODY3QywKLSAgJ01BUDJfVkVSVEVYX0FUVFJJQjEzXzRfTlYnOiAw
eDg2N0QsCi0gICdNQVAyX1ZFUlRFWF9BVFRSSUIxNF80X05WJzogMHg4NjdFLAotICAnTUFQMl9W
RVJURVhfQVRUUklCMTVfNF9OVic6IDB4ODY3RiwKLSAgJ01BWF9QUk9HUkFNX0VYRUNfSU5TVFJV
Q1RJT05TX05WJzogMHg4OEY0LAotICAnTUFYX1BST0dSQU1fQ0FMTF9ERVBUSF9OVic6IDB4ODhG
NSwKLSAgJ01BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUU19BUkInOiAweDhCNEMsCi0gICdC
WVRFJzogMHgxNDAwLAotICAnUEFMRVRURTRfUkdCOF9PRVMnOiAweDhCOTAsCi0gICdQQUxFVFRF
NF9SR0JBOF9PRVMnOiAweDhCOTEsCi0gICdQQUxFVFRFNF9SNV9HNl9CNV9PRVMnOiAweDhCOTIs
Ci0gICdQQUxFVFRFNF9SR0JBNF9PRVMnOiAweDhCOTMsCi0gICdQQUxFVFRFNF9SR0I1X0ExX09F
Uyc6IDB4OEI5NCwKLSAgJ1BBTEVUVEU4X1JHQjhfT0VTJzogMHg4Qjk1LAotICAnUEFMRVRURThf
UkdCQThfT0VTJzogMHg4Qjk2LAotICAnUEFMRVRURThfUjVfRzZfQjVfT0VTJzogMHg4Qjk3LAot
ICAnUEFMRVRURThfUkdCQTRfT0VTJzogMHg4Qjk4LAotICAnUEFMRVRURThfUkdCNV9BMV9PRVMn
OiAweDhCOTksCi0gICdJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEVfT0VTJzogMHg4QjlB
LAotICAnSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JNQVRfT0VTJzogMHg4QjlCLAotICAn
SU5URVJMQUNFX09NTCc6IDB4ODk4MCwKLSAgJ0lOVEVSTEFDRV9SRUFEX09NTCc6IDB4ODk4MSwK
LSAgJ1BBQ0tfUkVTQU1QTEVfT01MJzogMHg4OTg0LAotICAnVU5QQUNLX1JFU0FNUExFX09NTCc6
IDB4ODk4NSwKLSAgJ1JFU0FNUExFX1JFUExJQ0FURV9PTUwnOiAweDg5ODYsCi0gICdSRVNBTVBM
RV9aRVJPX0ZJTExfT01MJzogMHg4OTg3LAotICAnUkVTQU1QTEVfQVZFUkFHRV9PTUwnOiAweDg5
ODgsCi0gICdSRVNBTVBMRV9ERUNJTUFURV9PTUwnOiAweDg5ODksCi0gICdGT1JNQVRfU1VCU0FN
UExFXzI0XzI0X09NTCc6IDB4ODk4MiwKLSAgJ0ZPUk1BVF9TVUJTQU1QTEVfMjQ0XzI0NF9PTUwn
OiAweDg5ODMsCi0gICdWRVJURVgyM19CSVRfUEdJJzogMHgwMDAwMDAwNCwKLSAgJ1ZFUlRFWDRf
QklUX1BHSSc6IDB4MDAwMDAwMDgsCi0gICdDT0xPUjNfQklUX1BHSSc6IDB4MDAwMTAwMDAsCi0g
ICdDT0xPUjRfQklUX1BHSSc6IDB4MDAwMjAwMDAsCi0gICdFREdFRkxBR19CSVRfUEdJJzogMHgw
MDA0MDAwMCwKLSAgJ0lOREVYX0JJVF9QR0knOiAweDAwMDgwMDAwLAotICAnTUFUX0FNQklFTlRf
QklUX1BHSSc6IDB4MDAxMDAwMDAsCi0gICdNQVRfQU1CSUVOVF9BTkRfRElGRlVTRV9CSVRfUEdJ
JzogMHgwMDIwMDAwMCwKLSAgJ01BVF9ESUZGVVNFX0JJVF9QR0knOiAweDAwNDAwMDAwLAotICAn
TUFUX0VNSVNTSU9OX0JJVF9QR0knOiAweDAwODAwMDAwLAotICAnTUFUX0NPTE9SX0lOREVYRVNf
QklUX1BHSSc6IDB4MDEwMDAwMDAsCi0gICdNQVRfU0hJTklORVNTX0JJVF9QR0knOiAweDAyMDAw
MDAwLAotICAnTUFUX1NQRUNVTEFSX0JJVF9QR0knOiAweDA0MDAwMDAwLAotICAnTk9STUFMX0JJ
VF9QR0knOiAweDA4MDAwMDAwLAotICAnVEVYQ09PUkQxX0JJVF9QR0knOiAweDEwMDAwMDAwLAot
ICAnVEVYQ09PUkQyX0JJVF9QR0knOiAweDIwMDAwMDAwLAotICAnVEVYQ09PUkQzX0JJVF9QR0kn
OiAweDQwMDAwMDAwLAotICAnVEVYQ09PUkQ0X0JJVF9QR0knOiAweDgwMDAwMDAwLAotICAnU0NS
RUVOX0NPT1JESU5BVEVTX1JFTkQnOiAweDg0OTAsCi0gICdJTlZFUlRFRF9TQ1JFRU5fV19SRU5E
JzogMHg4NDkxLAotICAnUkdCX1MzVEMnOiAweDgzQTAsCi0gICdSR0I0X1MzVEMnOiAweDgzQTEs
Ci0gICdSR0JBX1MzVEMnOiAweDgzQTIsCi0gICdSR0JBNF9TM1RDJzogMHg4M0EzLAotICAnUkdC
QV9EWFQ1X1MzVEMnOiAweDgzQTQsCi0gICdSR0JBNF9EWFQ1X1MzVEMnOiAweDgzQTUsCi0gICdF
WFRFTkRFRF9SQU5HRV9TR0lTJzogMHg4NUE1LAotICAnTUlOX1JFRF9TR0lTJzogMHg4NUE2LAot
ICAnTUFYX1JFRF9TR0lTJzogMHg4NUE3LAotICAnTUlOX0dSRUVOX1NHSVMnOiAweDg1QTgsCi0g
ICdNQVhfR1JFRU5fU0dJUyc6IDB4ODVBOSwKLSAgJ01JTl9CTFVFX1NHSVMnOiAweDg1QUEsCi0g
ICdNQVhfQkxVRV9TR0lTJzogMHg4NUFCLAotICAnTUlOX0FMUEhBX1NHSVMnOiAweDg1QUMsCi0g
ICdNQVhfQUxQSEFfU0dJUyc6IDB4ODVBRCwKLSAgJ0dFTkVSQVRFX01JUE1BUF9TR0lTJzogMHg4
MTkxLAotICAnR0VORVJBVEVfTUlQTUFQX0hJTlRfU0dJUyc6IDB4ODE5MiwKLSAgJ01VTFRJU0FN
UExFX1NHSVMnOiAweDgwOUQsCi0gICdTQU1QTEVfQUxQSEFfVE9fTUFTS19TR0lTJzogMHg4MDlF
LAotICAnU0FNUExFX0FMUEhBX1RPX09ORV9TR0lTJzogMHg4MDlGLAotICAnU0FNUExFX01BU0tf
U0dJUyc6IDB4ODBBMCwKLSAgJzFQQVNTX1NHSVMnOiAweDgwQTEsCi0gICcyUEFTU18wX1NHSVMn
OiAweDgwQTIsCi0gICcyUEFTU18xX1NHSVMnOiAweDgwQTMsCi0gICc0UEFTU18wX1NHSVMnOiAw
eDgwQTQsCi0gICc0UEFTU18xX1NHSVMnOiAweDgwQTUsCi0gICc0UEFTU18yX1NHSVMnOiAweDgw
QTYsCi0gICc0UEFTU18zX1NHSVMnOiAweDgwQTcsCi0gICdTQU1QTEVfQlVGRkVSU19TR0lTJzog
MHg4MEE4LAotICAnU0FNUExFU19TR0lTJzogMHg4MEE5LAotICAnU0FNUExFX01BU0tfVkFMVUVf
U0dJUyc6IDB4ODBBQSwKLSAgJ1NBTVBMRV9NQVNLX0lOVkVSVF9TR0lTJzogMHg4MEFCLAotICAn
U0FNUExFX1BBVFRFUk5fU0dJUyc6IDB4ODBBQywKLSAgJ01VTFRJU0FNUExFX0JJVF9FWFQnOiAw
eDIwMDAwMDAwLAotICAnRVlFX0RJU1RBTkNFX1RPX1BPSU5UX1NHSVMnOiAweDgxRjAsCi0gICdP
QkpFQ1RfRElTVEFOQ0VfVE9fUE9JTlRfU0dJUyc6IDB4ODFGMSwKLSAgJ0VZRV9ESVNUQU5DRV9U
T19MSU5FX1NHSVMnOiAweDgxRjIsCi0gICdPQkpFQ1RfRElTVEFOQ0VfVE9fTElORV9TR0lTJzog
MHg4MUYzLAotICAnRVlFX1BPSU5UX1NHSVMnOiAweDgxRjQsCi0gICdPQkpFQ1RfUE9JTlRfU0dJ
Uyc6IDB4ODFGNSwKLSAgJ0VZRV9MSU5FX1NHSVMnOiAweDgxRjYsCi0gICdPQkpFQ1RfTElORV9T
R0lTJzogMHg4MUY3LAotICAnQ0xBTVBfVE9fQk9SREVSX1NHSVMnOiAweDgxMkQsCi0gICdDTEFN
UF9UT19FREdFX1NHSVMnOiAweDgxMkYsCi0gICdURVhUVVJFX01JTl9MT0RfU0dJUyc6IDB4ODEz
QSwKLSAgJ1RFWFRVUkVfTUFYX0xPRF9TR0lTJzogMHg4MTNCLAotICAnVEVYVFVSRV9CQVNFX0xF
VkVMX1NHSVMnOiAweDgxM0MsCi0gICdURVhUVVJFX01BWF9MRVZFTF9TR0lTJzogMHg4MTNELAot
ICAnQVNZTkNfTUFSS0VSX1NHSVgnOiAweDgzMjksCi0gICdBU1lOQ19ISVNUT0dSQU1fU0dJWCc6
IDB4ODMyQywKLSAgJ01BWF9BU1lOQ19ISVNUT0dSQU1fU0dJWCc6IDB4ODMyRCwKLSAgJ0FTWU5D
X1RFWF9JTUFHRV9TR0lYJzogMHg4MzVDLAotICAnQVNZTkNfRFJBV19QSVhFTFNfU0dJWCc6IDB4
ODM1RCwKLSAgJ0FTWU5DX1JFQURfUElYRUxTX1NHSVgnOiAweDgzNUUsCi0gICdNQVhfQVNZTkNf
VEVYX0lNQUdFX1NHSVgnOiAweDgzNUYsCi0gICdNQVhfQVNZTkNfRFJBV19QSVhFTFNfU0dJWCc6
IDB4ODM2MCwKLSAgJ01BWF9BU1lOQ19SRUFEX1BJWEVMU19TR0lYJzogMHg4MzYxLAotICAnQUxQ
SEFfTUlOX1NHSVgnOiAweDgzMjAsCi0gICdBTFBIQV9NQVhfU0dJWCc6IDB4ODMyMSwKLSAgJ0NP
TlZPTFVUSU9OX0hJTlRfU0dJWCc6IDB4ODMxNiwKLSAgJ0RFUFRIX0NPTVBPTkVOVDE2X1NHSVgn
OiAweDgxQTUsCi0gICdERVBUSF9DT01QT05FTlQyNF9TR0lYJzogMHg4MUE2LAotICAnREVQVEhf
Q09NUE9ORU5UMzJfU0dJWCc6IDB4ODFBNywKLSAgJ0ZPR19PRkZTRVRfU0dJWCc6IDB4ODE5OCwK
LSAgJ0ZPR19PRkZTRVRfVkFMVUVfU0dJWCc6IDB4ODE5OSwKLSAgJ0lOVEVSTEFDRV9TR0lYJzog
MHg4MDk0LAotICAnUEFDS19SRVNBTVBMRV9TR0lYJzogMHg4NDJFLAotICAnVU5QQUNLX1JFU0FN
UExFX1NHSVgnOiAweDg0MkYsCi0gICdSRVNBTVBMRV9ERUNJTUFURV9TR0lYJzogMHg4NDMwLAot
ICAnUkVTQU1QTEVfUkVQTElDQVRFX1NHSVgnOiAweDg0MzMsCi0gICdSRVNBTVBMRV9aRVJPX0ZJ
TExfU0dJWCc6IDB4ODQzNCwKLSAgJ1RFWFRVUkVfQ09NUEFSRV9TR0lYJzogMHg4MTlBLAotICAn
VEVYVFVSRV9DT01QQVJFX09QRVJBVE9SX1NHSVgnOiAweDgxOUIsCi0gICdURVhUVVJFX0xFUVVB
TF9SX1NHSVgnOiAweDgxOUMsCi0gICdURVhUVVJFX0dFUVVBTF9SX1NHSVgnOiAweDgxOUQsCi0g
ICdTSEFET1dfQU1CSUVOVF9TR0lYJzogMHg4MEJGLAotICAnVEVYVFVSRV9NQVhfQ0xBTVBfU19T
R0lYJzogMHg4MzY5LAotICAnVEVYVFVSRV9NQVhfQ0xBTVBfVF9TR0lYJzogMHg4MzZBLAotICAn
VEVYVFVSRV9NQVhfQ0xBTVBfUl9TR0lYJzogMHg4MzZCLAotICAnVEVYVFVSRV9NVUxUSV9CVUZG
RVJfSElOVF9TR0lYJzogMHg4MTJFLAotICAnUkdCX1NJR05FRF9TR0lYJzogMHg4NUUwLAotICAn
UkdCQV9TSUdORURfU0dJWCc6IDB4ODVFMSwKLSAgJ0FMUEhBX1NJR05FRF9TR0lYJzogMHg4NUUy
LAotICAnTFVNSU5BTkNFX1NJR05FRF9TR0lYJzogMHg4NUUzLAotICAnSU5URU5TSVRZX1NJR05F
RF9TR0lYJzogMHg4NUU0LAotICAnTFVNSU5BTkNFX0FMUEhBX1NJR05FRF9TR0lYJzogMHg4NUU1
LAotICAnUkdCMTZfU0lHTkVEX1NHSVgnOiAweDg1RTYsCi0gICdSR0JBMTZfU0lHTkVEX1NHSVgn
OiAweDg1RTcsCi0gICdBTFBIQTE2X1NJR05FRF9TR0lYJzogMHg4NUU4LAotICAnTFVNSU5BTkNF
MTZfU0lHTkVEX1NHSVgnOiAweDg1RTksCi0gICdJTlRFTlNJVFkxNl9TSUdORURfU0dJWCc6IDB4
ODVFQSwKLSAgJ0xVTUlOQU5DRTE2X0FMUEhBMTZfU0lHTkVEX1NHSVgnOiAweDg1RUIsCi0gICdS
R0JfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVFQywKLSAgJ1JHQkFfRVhURU5ERURfUkFOR0Vf
U0dJWCc6IDB4ODVFRCwKLSAgJ0FMUEhBX0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RUUsCi0g
ICdMVU1JTkFOQ0VfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVFRiwKLSAgJ0lOVEVOU0lUWV9F
WFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUYwLAotICAnTFVNSU5BTkNFX0FMUEhBX0VYVEVOREVE
X1JBTkdFX1NHSVgnOiAweDg1RjEsCi0gICdSR0IxNl9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4
NUYyLAotICAnUkdCQTE2X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjMsCi0gICdBTFBIQTE2
X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjQsCi0gICdMVU1JTkFOQ0UxNl9FWFRFTkRFRF9S
QU5HRV9TR0lYJzogMHg4NUY1LAotICAnSU5URU5TSVRZMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6
IDB4ODVGNiwKLSAgJ0xVTUlOQU5DRTE2X0FMUEhBMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4
ODVGNywKLSAgJ01JTl9MVU1JTkFOQ0VfU0dJUyc6IDB4ODVGOCwKLSAgJ01BWF9MVU1JTkFOQ0Vf
U0dJUyc6IDB4ODVGOSwKLSAgJ01JTl9JTlRFTlNJVFlfU0dJUyc6IDB4ODVGQSwKLSAgJ01BWF9J
TlRFTlNJVFlfU0dJUyc6IDB4ODVGQiwKLSAgJ1BPU1RfVEVYVFVSRV9GSUxURVJfQklBU19TR0lY
JzogMHg4MTc5LAotICAnUE9TVF9URVhUVVJFX0ZJTFRFUl9TQ0FMRV9TR0lYJzogMHg4MTdBLAot
ICAnUE9TVF9URVhUVVJFX0ZJTFRFUl9CSUFTX1JBTkdFX1NHSVgnOiAweDgxN0IsCi0gICdQT1NU
X1RFWFRVUkVfRklMVEVSX1NDQUxFX1JBTkdFX1NHSVgnOiAweDgxN0MsCi0gICdWRVJURVhfUFJF
Q0xJUF9TR0lYJzogMHg4M0VFLAotICAnVkVSVEVYX1BSRUNMSVBfSElOVF9TR0lYJzogMHg4M0VG
LAotICAnVkVSVEVYX1BSRUNMSVBfU0dJWCc6IDB4ODNFRSwKLSAgJ1ZFUlRFWF9QUkVDTElQX0hJ
TlRfU0dJWCc6IDB4ODNFRiwKLSAgJ0NPTE9SX01BVFJJWF9TR0knOiAweDgwQjEsCi0gICdDT0xP
Ul9NQVRSSVhfU1RBQ0tfREVQVEhfU0dJJzogMHg4MEIyLAotICAnTUFYX0NPTE9SX01BVFJJWF9T
VEFDS19ERVBUSF9TR0knOiAweDgwQjMsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9SRURfU0NBTEVf
U0dJJzogMHg4MEI0LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfR1JFRU5fU0NBTEVfU0dJJzogMHg4
MEI1LAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQkxVRV9TQ0FMRV9TR0knOiAweDgwQjYsCi0gICdQ
T1NUX0NPTE9SX01BVFJJWF9BTFBIQV9TQ0FMRV9TR0knOiAweDgwQjcsCi0gICdQT1NUX0NPTE9S
X01BVFJJWF9SRURfQklBU19TR0knOiAweDgwQjgsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9HUkVF
Tl9CSUFTX1NHSSc6IDB4ODBCOSwKLSAgJ1BPU1RfQ09MT1JfTUFUUklYX0JMVUVfQklBU19TR0kn
OiAweDgwQkEsCi0gICdQT1NUX0NPTE9SX01BVFJJWF9BTFBIQV9CSUFTX1NHSSc6IDB4ODBCQiwK
LSAgJ0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBEMCwKLSAgJ1BPU1RfQ09OVk9MVVRJT05fQ09MT1Jf
VEFCTEVfU0dJJzogMHg4MEQxLAotICAnUE9TVF9DT0xPUl9NQVRSSVhfQ09MT1JfVEFCTEVfU0dJ
JzogMHg4MEQyLAotICAnUFJPWFlfQ09MT1JfVEFCTEVfU0dJJzogMHg4MEQzLAotICAnUFJPWFlf
UE9TVF9DT05WT0xVVElPTl9DT0xPUl9UQUJMRV9TR0knOiAweDgwRDQsCi0gICdQUk9YWV9QT1NU
X0NPTE9SX01BVFJJWF9DT0xPUl9UQUJMRV9TR0knOiAweDgwRDUsCi0gICdDT0xPUl9UQUJMRV9T
Q0FMRV9TR0knOiAweDgwRDYsCi0gICdDT0xPUl9UQUJMRV9CSUFTX1NHSSc6IDB4ODBENywKLSAg
J0NPTE9SX1RBQkxFX0ZPUk1BVF9TR0knOiAweDgwRDgsCi0gICdDT0xPUl9UQUJMRV9XSURUSF9T
R0knOiAweDgwRDksCi0gICdDT0xPUl9UQUJMRV9SRURfU0laRV9TR0knOiAweDgwREEsCi0gICdD
T0xPUl9UQUJMRV9HUkVFTl9TSVpFX1NHSSc6IDB4ODBEQiwKLSAgJ0NPTE9SX1RBQkxFX0JMVUVf
U0laRV9TR0knOiAweDgwREMsCi0gICdDT0xPUl9UQUJMRV9BTFBIQV9TSVpFX1NHSSc6IDB4ODBE
RCwKLSAgJ0NPTE9SX1RBQkxFX0xVTUlOQU5DRV9TSVpFX1NHSSc6IDB4ODBERSwKLSAgJ0NPTE9S
X1RBQkxFX0lOVEVOU0lUWV9TSVpFX1NHSSc6IDB4ODBERiwKLSAgJ1RFWFRVUkVfQ09MT1JfVEFC
TEVfU0dJJzogMHg4MEJDLAotICAnUFJPWFlfVEVYVFVSRV9DT0xPUl9UQUJMRV9TR0knOiAweDgw
QkQsCi0gICdVTlBBQ0tfQ09OU1RBTlRfREFUQV9TVU5YJzogMHg4MUQ1LAotICAnVEVYVFVSRV9D
T05TVEFOVF9EQVRBX1NVTlgnOiAweDgxRDYsCi0gICdXUkFQX0JPUkRFUl9TVU4nOiAweDgxRDQs
Ci0gICdHTE9CQUxfQUxQSEFfU1VOJzogMHg4MUQ5LAotICAnR0xPQkFMX0FMUEhBX0ZBQ1RPUl9T
VU4nOiAweDgxREEsCi0gICdRVUFEX01FU0hfU1VOJzogMHg4NjE0LAotICAnVFJJQU5HTEVfTUVT
SF9TVU4nOiAweDg2MTUsCi0gICdTTElDRV9BQ0NVTV9TVU4nOiAweDg1Q0MsCi0gICdSRVNUQVJU
X1NVTic6IDB4MDEsCi0gICdSRVBMQUNFX01JRERMRV9TVU4nOiAweDAyLAotICAnUkVQTEFDRV9P
TERFU1RfU1VOJzogMHgwMywKLSAgJ1RSSUFOR0xFX0xJU1RfU1VOJzogMHg4MUQ3LAotICAnUkVQ
TEFDRU1FTlRfQ09ERV9TVU4nOiAweDgxRDgsCi0gICdSRVBMQUNFTUVOVF9DT0RFX0FSUkFZX1NV
Tic6IDB4ODVDMCwKLSAgJ1JFUExBQ0VNRU5UX0NPREVfQVJSQVlfVFlQRV9TVU4nOiAweDg1QzEs
Ci0gICdSRVBMQUNFTUVOVF9DT0RFX0FSUkFZX1NUUklERV9TVU4nOiAweDg1QzIsCi0gICdSRVBM
QUNFTUVOVF9DT0RFX0FSUkFZX1BPSU5URVJfU1VOJzogMHg4NUMzLAotICAnUjFVSV9WM0ZfU1VO
JzogMHg4NUM0LAotICAnUjFVSV9DNFVCX1YzRl9TVU4nOiAweDg1QzUsCi0gICdSMVVJX0MzRl9W
M0ZfU1VOJzogMHg4NUM2LAotICAnUjFVSV9OM0ZfVjNGX1NVTic6IDB4ODVDNywKLSAgJ1IxVUlf
QzRGX04zRl9WM0ZfU1VOJzogMHg4NUM4LAotICAnUjFVSV9UMkZfVjNGX1NVTic6IDB4ODVDOSwK
LSAgJ1IxVUlfVDJGX04zRl9WM0ZfU1VOJzogMHg4NUNBLAotICAnUjFVSV9UMkZfQzRGX04zRl9W
M0ZfU1VOJzogMHg4NUNCLAotICAnUEhPTkdfV0lOJzogMHg4MEVBLAotICAnUEhPTkdfSElOVF9X
SU4nOiAweDgwRUIsCi0gICdGT0dfU1BFQ1VMQVJfVEVYVFVSRV9XSU4nOiAweDgwRUMKLX07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNWE0MGZl
MmZiNjczOWNjMWU0MmI4ZTRkMDlkMTJiYTdmZTkyNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
Mi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
LSoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
LSoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi1z
aG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOwotZGVidWcoJzxiciAvPjxzcGFuIGNs
YXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwotbm90aWZ5RmluaXNoZWRUb0hhcm5l
c3MoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg0
OTU2ZWQ0OGFhZjhiZDJhOGQzODAzZmQ3ZWU2MzEwY2EyODRjNS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDQ4NSArMCwwIEBACi0vKgotKiogQ29weXJpZ2h0IChjKSAy
MDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KLSoqCi0qKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn
cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKiogY29w
eSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg
KHRoZQotKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nCi0qKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi0qKiBkaXN0cmlidXRlLCBzdWJs
aWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCi0qKiBw
ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBz
bywgc3ViamVjdCB0bwotKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKioKLSoqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
IGluY2x1ZGVkCi0qKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo
ZSBNYXRlcmlhbHMuCi0qKgotKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5D
TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKiogTUVSQ0hBTlRB
QklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN
RU5ULgotKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0qKiBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotKiogTUFU
RVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KLSov
Ci0KLShmdW5jdGlvbigpIHsKLSAgdmFyIHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQgPSBmYWxzZTsK
LQotICB2YXIgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsgPSBmdW5jdGlvbih3YWl0VW50aWxEb25l
KSB7Ci0gICAgaWYgKHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQpIHsKLSAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICAvKiAtLSBwbGFm
b3JtIHNwZWNpZmljIGNvZGUgLS0gKi8KLQotICAgIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBB
ZGQgeW91ciBjb2RlIGhlcmUuCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ciA9IHdpbmRvdy50ZXN0UnVubmVyOwotICAgIH0KLQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0
ZW0gY29tcGFyZXMgY29uc29sZSBvdXRwdXQuCi0gICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQg
b2YgdGhlIFdlYkdMIFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKLSAgICAgIC8vIHdlIHR1cm4gb2Zm
IGNvbnNvbGUgbWVzc2FnZXMuCi0gICAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigp
IHsgfTsKLSAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07Ci0gICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxl
ZChmYWxzZSk7Ci0KLSAgICAgIC8vIFJBRiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERp
c2FibGUgaXQgc28gdGhlIHRlc3RzIHdpbGwKLSAgICAgIC8vIHVzZSBzZXRUaW1lb3V0IGluc3Rl
YWQuCi0gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOwotICAg
ICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKLSAgICB9
Ci0KLSAgICAvKiAtLSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSAtLSovCi0gIH0KLQotICB0
aGlzLmluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUgPSBmdW5jdGlvbigpIHsKLSAgICBp
bml0Tm9uS2hyb25vc0ZyYW1ld29yayh0cnVlKTsKLSAgfQotCi0gIHRoaXMuaW5pdFRlc3RpbmdI
YXJuZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsoZmFsc2Up
OwotICB9Ci19KCkpOwotCi1mdW5jdGlvbiBub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSgp
IHsKLSAgLy8gV2ViS2l0IFNwZWNpZmljIGNvZGUuIEFkZCB5b3VyIGNvZGUgaGVyZS4KLSAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKLSAgfQotfQotCi1mdW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0c1RvSGFy
bmVzcyhzdWNjZXNzLCBtc2cpIHsKLSAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVz
cykgewotICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdp
bmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgc3VjY2VzcywgbXNnKTsKLSAgfQotfQotCi1mdW5jdGlv
biBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIHsKLSAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xU
ZXN0SGFybmVzcykgewotICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5ub3RpZnlG
aW5pc2hlZCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpOwotICB9Ci0gIGlmICh3aW5kb3cubm9u
S2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUpIHsKLSAgICB3aW5kb3cubm9uS2hyb25vc0ZyYW1l
d29ya05vdGlmeURvbmUoKTsKLSAgfQotfQotCi1mdW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCi17
Ci0gICAgaW5pdFRlc3RpbmdIYXJuZXNzKCk7Ci0gICAgaWYgKG1zZyA9PT0gdW5kZWZpbmVkKSB7
Ci0gICAgICBtc2cgPSBkb2N1bWVudC50aXRsZTsKLSAgICB9Ci0gICAgLy8gRm9yIE1TSUUgNiBj
b21wYXRpYmlsaXR5Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7Ci0gICAgc3Bhbi5pbm5lckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bh
bj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExF
VEU8L3NwYW4+Ii48L3A+JzsKLSAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKLSAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkK
LSAgICAgICAgZGVzY3JpcHRpb24ucmVwbGFjZUNoaWxkKHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0
Q2hpbGQpOwotICAgIGVsc2UKLSAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7
Ci19Ci0KLWZ1bmN0aW9uIGRlYnVnKG1zZykKLXsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmFwcGVuZENoaWxkKHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3Mg
dGhlIG5hbWVzcGFjZQotICAgIHNwYW4uaW5uZXJIVE1MID0gbXNnICsgJzxiciAvPic7Ci19Ci0K
LWZ1bmN0aW9uIGVzY2FwZUhUTUwodGV4dCkKLXsKLSAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8m
L2csICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZsdDsiKTsKLX0KLQotZnVuY3Rpb24gdGVzdFBh
c3NlZChtc2cpCi17Ci0gICAgcmVwb3J0VGVzdFJlc3VsdHNUb0hhcm5lc3ModHJ1ZSwgbXNnKTsK
LSAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2Nh
cGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOwotfQotCi1mdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykK
LXsKLSAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhmYWxzZSwgbXNnKTsKLSAgICBkZWJ1
ZygnPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1z
ZykgKyAnPC9zcGFuPicpOwotfQotCi1mdW5jdGlvbiBhcmVBcnJheXNFcXVhbChfYSwgX2IpCi17
Ci0gICAgdHJ5IHsKLSAgICAgICAgaWYgKF9hLmxlbmd0aCAhPT0gX2IubGVuZ3RoKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IF9hLmxlbmd0
aDsgaSsrKQotICAgICAgICAgICAgaWYgKF9hW2ldICE9PSBfYltpXSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfSBjYXRjaCAoZXgpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gaXNNaW51c1plcm8obikK
LXsKLSAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZyb20gLTAgaW4gSlMgaXMgdGhlIGZh
Y3QgdGhhdCAxLy0wIGlzCi0gICAgLy8gLUluZmluaXR5IGluc3RlYWQgb2YgSW5maW5pdHkKLSAg
ICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOwotfQotCi1mdW5jdGlvbiBpc1Jlc3VsdENvcnJl
Y3QoX2FjdHVhbCwgX2V4cGVjdGVkKQotewotICAgIGlmIChfZXhwZWN0ZWQgPT09IDApCi0gICAg
ICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQgJiYgKDEvX2FjdHVhbCkgPT09ICgxL19l
eHBlY3RlZCk7Ci0gICAgaWYgKF9hY3R1YWwgPT09IF9leHBlY3RlZCkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQpID09ICJudW1iZXIiICYmIGlzTmFOKF9l
eHBlY3RlZCkpCi0gICAgICAgIHJldHVybiB0eXBlb2YoX2FjdHVhbCkgPT0gIm51bWJlciIgJiYg
aXNOYU4oX2FjdHVhbCk7Ci0gICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChf
ZXhwZWN0ZWQpID09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChbXSkpCi0gICAgICAg
IHJldHVybiBhcmVBcnJheXNFcXVhbChfYWN0dWFsLCBfZXhwZWN0ZWQpOwotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotZnVuY3Rpb24gc3RyaW5naWZ5KHYpCi17Ci0gICAgaWYgKHYgPT09IDAgJiYg
MS92IDwgMCkKLSAgICAgICAgcmV0dXJuICItMCI7Ci0gICAgZWxzZSByZXR1cm4gIiIgKyB2Owot
fQotCi1mdW5jdGlvbiBldmFsQW5kTG9nKF9hKQotewotICBpZiAodHlwZW9mIF9hICE9ICJzdHJp
bmciKQotICAgIGRlYnVnKCJXQVJOOiB0cnlBbmRMb2coKSBleHBlY3RzIGEgc3RyaW5nIGFyZ3Vt
ZW50Iik7Ci0KLSAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhpbmdzIGdvIGhvcnJpYmx5IHdyb25n
IG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KLSAgZGVidWcoX2EpOwotCi0gIHZhciBfYXY7
Ci0gIHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgdGVz
dEZhaWxlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKLSAgfQotICByZXR1cm4gX2F2
OwotfQotCi1mdW5jdGlvbiBzaG91bGRCZShfYSwgX2IsIHF1aWV0KQotewotICAgIGlmICh0eXBl
b2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQotICAgICAgICBkZWJ1
ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKLSAgICB2YXIg
ZXhjZXB0aW9uOwotICAgIHZhciBfYXY7Ci0gICAgdHJ5IHsKLSAgICAgICAgX2F2ID0gZXZhbChf
YSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBleGNlcHRpb24gPSBlOwotICAgIH0KLSAg
ICB2YXIgX2J2ID0gZXZhbChfYik7Ci0KLSAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uKTsKLSAgICBlbHNlIGlmIChpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7Ci0g
ICAgICAgIGlmICghcXVpZXQpIHsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIg
KyBfYik7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHR5cGVvZihfYXYpID09IHR5cGVvZihf
YnYpKQotICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFdh
cyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2J2ICsg
IikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOwotfQot
Ci1mdW5jdGlvbiBzaG91bGROb3RCZShfYSwgX2IsIHF1aWV0KQotewotICAgIGlmICh0eXBlb2Yg
X2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQotICAgICAgICBkZWJ1Zygi
V0FSTjogc2hvdWxkTm90QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKLSAgICB2YXIg
ZXhjZXB0aW9uOwotICAgIHZhciBfYXY7Ci0gICAgdHJ5IHsKLSAgICAgICAgX2F2ID0gZXZhbChf
YSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBleGNlcHRpb24gPSBlOwotICAgIH0KLSAg
ICB2YXIgX2J2ID0gZXZhbChfYik7Ci0KLSAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbik7Ci0gICAgZWxzZSBpZiAoIWlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikp
IHsKLSAgICAgICAgaWYgKCFxdWlldCkgewotICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIg
aXMgbm90ICIgKyBfYik7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKLX0KLQotZnVuY3Rpb24gc2hv
dWxkQmVUcnVlKF9hKSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIpOyB9Ci1mdW5jdGlvbiBzaG91bGRC
ZUZhbHNlKF9hKSB7IHNob3VsZEJlKF9hLCAiZmFsc2UiKTsgfQotZnVuY3Rpb24gc2hvdWxkQmVO
YU4oX2EpIHsgc2hvdWxkQmUoX2EsICJOYU4iKTsgfQotZnVuY3Rpb24gc2hvdWxkQmVOdWxsKF9h
KSB7IHNob3VsZEJlKF9hLCAibnVsbCIpOyB9Ci0KLWZ1bmN0aW9uIHNob3VsZEJlRXF1YWxUb1N0
cmluZyhhLCBiKQotewotICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyBiLnJlcGxhY2UoLyIv
ZywgIlwiIikgKyAnIic7Ci0gIHNob3VsZEJlKGEsIHVuZXZhbGVkU3RyaW5nKTsKLX0KLQotZnVu
Y3Rpb24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gIC8vIEEgZ2VuZXJh
bC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUgYSBzdHJpbmcgdG8gYmUK
LSAgLy8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVjdGVkJyBtYXkgYmUgYW55
IHR5cGUgYW5kIHdpbGwgYmUKLSAgLy8gdXNlZCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuCi0gIGlm
IChleHBlY3RlZCA9PSBudWxsKSB7Ci0gICAgLy8gRG8gdGhpcyBiZWZvcmUgdGhlIG9iamVjdCB0
ZXN0LCBzaW5jZSBudWxsIGlzIG9mIHR5cGUgJ29iamVjdCcuCi0gICAgc2hvdWxkQmVOdWxsKGFj
dHVhbCk7Ci0gIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1bmRlZmluZWQiKSB7Ci0g
ICAgc2hvdWxkQmVVbmRlZmluZWQoYWN0dWFsKTsKLSAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0
ZWQgPT0gImZ1bmN0aW9uIikgewotICAgIC8vIEFsbCB0aGlzIGZ1c3MgaXMgdG8gYXZvaWQgdGhl
IHN0cmluZy1hcmcgd2FybmluZyBmcm9tIHNob3VsZEJlKCkuCi0gICAgdHJ5IHsKLSAgICAgIGFj
dHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIHRlc3RG
YWlsZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6IFRocmV3IGV4Y2VwdGlvbiAiICsgZSk7
Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIHNob3VsZEJlKCInIiArIGFjdHVhbFZhbHVlLnRv
U3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciLAotICAgICAgICAgICAgICInIiArIGV4
cGVjdGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciKTsKLSAgfSBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKLSAgICBzaG91bGRCZVRydWUoYWN0dWFs
ICsgIiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKLSAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0
ZWQgPT0gInN0cmluZyIpIHsKLSAgICBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKTsKLSAgfSBl
bHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xlYW4iKSB7Ci0gICAgc2hvdWxkQmUoInR5
cGVvZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7Ci0gICAgaWYgKGV4cGVjdGVkKQotICAgICAg
c2hvdWxkQmVUcnVlKGFjdHVhbCk7Ci0gICAgZWxzZQotICAgICAgc2hvdWxkQmVGYWxzZShhY3R1
YWwpOwotICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAibnVtYmVyIikgewotICAgIHNo
b3VsZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVkKSk7Ci0gIH0gZWxzZSB7Ci0gICAgZGVi
dWcoZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkKTsKLSAg
ICBzaG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBlY3RlZC50b1N0cmluZygpICsgIiciKTsK
LSAgfQotfQotCi1mdW5jdGlvbiBzaG91bGRCZU5vblplcm8oX2EpCi17Ci0gIHZhciBleGNlcHRp
b247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOwotICB9IGNhdGNo
IChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0KLQotICBpZiAoZXhjZXB0aW9uKQotICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gVGhyZXcgZXhjZXB0aW9uICIg
KyBleGNlcHRpb24pOwotICBlbHNlIGlmIChfYXYgIT0gMCkKLSAgICB0ZXN0UGFzc2VkKF9hICsg
IiBpcyBub24temVyby4iKTsKLSAgZWxzZQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSBub24temVyby4gV2FzICIgKyBfYXYpOwotfQotCi1mdW5jdGlvbiBzaG91bGRCZU5vbk51bGwo
X2EpCi17Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7Ci0gICAgIF9hdiA9
IGV2YWwoX2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0KLQot
ICBpZiAoZXhjZXB0aW9uKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVs
bC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICBlbHNlIGlmIChfYXYgIT0gbnVs
bCkKLSAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24tbnVsbC4iKTsKLSAgZWxzZQotICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIgKyBfYXYpOwotfQotCi1m
dW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKLXsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFy
IF9hdjsKLSAgdHJ5IHsKLSAgICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIGlmIChleGNlcHRpb24pCi0gICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRp
b24pOwotICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQotICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKLSAgZWxzZQotICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxk
QmVEZWZpbmVkKF9hKQotewotICB2YXIgZXhjZXB0aW9uOwotICB2YXIgX2F2OwotICB0cnkgewot
ICAgICBfYXYgPSBldmFsKF9hKTsKLSAgfSBjYXRjaCAoZSkgewotICAgICBleGNlcHRpb24gPSBl
OwotICB9Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICBlbHNlIGlmIChf
YXYgIT09IHVuZGVmaW5lZCkKLSAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBkZWZpbmVkLiIpOwot
ICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFdhcyAiICsg
X2F2KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7
Ci0gICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIp
Ci0gICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3Rz
IHN0cmluZyBhcmd1bWVudHMiKTsKLQotICAgIHZhciBleGNlcHRpb247Ci0gICAgdmFyIF9hdjsK
LSAgICB0cnkgewotICAgICAgICBfYXYgPSBldmFsKF9hKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgIGV4Y2VwdGlvbiA9IGU7Ci0gICAgfQotICAgIHZhciBfYnYgPSBldmFsKF9iKTsKLQot
ICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+
PSAiICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Ci0gICAgZWxzZSBp
ZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCi0gICAgICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIgKG9m
IHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Ci19Ci0KLWZ1bmN0aW9uIGV4cGVjdFRydWUodiwgbXNn
KSB7Ci0gIGlmICh2KSB7Ci0gICAgdGVzdFBhc3NlZChtc2cpOwotICB9IGVsc2UgewotICAgIHRl
c3RGYWlsZWQobXNnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBzaG91bGRUaHJvdyhfYSwgX2UpCi17
Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7Ci0gICAgIF9hdiA9IGV2YWwo
X2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0KLQotICB2YXIg
X2V2OwotICBpZiAoX2UpCi0gICAgICBfZXYgPSAgZXZhbChfZSk7Ci0KLSAgaWYgKGV4Y2VwdGlv
bikgewotICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgZXhjZXB0aW9uID09IF9l
dikKLSAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9u
ICsgIi4iKTsKLSAgICBlbHNlCi0gICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cg
IiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAi
LiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Ci0gIH0gZWxzZSBpZiAodHlw
ZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhy
b3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikg
KyAiLiBXYXMgdW5kZWZpbmVkLiIpOwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIg
OiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOwotfQotCi1mdW5jdGlvbiBzaG91bGRCZVR5
cGUoX2EsIF90eXBlKSB7Ci0JdmFyIGV4Y2VwdGlvbjsKLQl2YXIgX2F2OwotCXRyeSB7Ci0JCV9h
diA9IGV2YWwoX2EpOwotCX0gY2F0Y2ggKGUpIHsKLQkJZXhjZXB0aW9uID0gZTsKLQl9Ci0KLQl2
YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7Ci0KLQlpZiAoX2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7
Ci0JCXRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mICIgKyBfdHlwZSk7Ci0JfSBl
bHNlIHsKLQkJdGVzdEZhaWxlZChfYSArICIgaXMgbm90IGFuIGluc3RhbmNlIG9mICIgKyBfdHlw
ZSk7Ci0JfQotfQotCi1mdW5jdGlvbiBhc3NlcnRNc2coYXNzZXJ0aW9uLCBtc2cpIHsKLSAgICBp
ZiAoYXNzZXJ0aW9uKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQobXNnKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBnYygpIHsKLSAg
ICBpZiAod2luZG93LkdDQ29udHJvbGxlcikgewotICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVy
LmNvbGxlY3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh3aW5kb3cub3Bl
cmEgJiYgd2luZG93Lm9wZXJhLmNvbGxlY3QpIHsKLSAgICAgICAgd2luZG93Lm9wZXJhLmNvbGxl
Y3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRyeSB7Ci0gICAgICAgIHdpbmRv
dy5RdWVyeUludGVyZmFjZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJSW50ZXJmYWNlUmVxdWVz
dG9yKQotICAgICAgICAgICAgICAuZ2V0SW50ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5u
c0lET01XaW5kb3dVdGlscykKLSAgICAgICAgICAgICAgLmdhcmJhZ2VDb2xsZWN0KCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9IGNhdGNoKGUpIHt9Ci0KLSAgICBmdW5jdGlvbiBnY1JlYyhuKSB7
Ci0gICAgICAgIGlmIChuIDwgMSkKLSAgICAgICAgICAgIHJldHVybiB7fTsKLSAgICAgICAgdmFy
IHRlbXAgPSB7aTogImFiIiArIGkgKyAoaSAvIDEwMDAwMCl9OwotICAgICAgICB0ZW1wICs9ICJm
b28iOwotICAgICAgICBnY1JlYyhuLTEpOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDA7IGkrKykKLSAgICAgICAgZ2NSZWMoMTApOwotfQotCi1mdW5jdGlvbiBmaW5pc2hUZXN0
KCkgewotICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICB2YXIgZXBpbG9ndWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLQotICB2YXIgYmFzZVBhdGggPSAiIjsKLSAg
dmFyIGV4cGVjdGVkQmFzZSA9ICJqcy10ZXN0LXByZS5qcyI7Ci0gIHZhciBzY3JpcHRzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpOwotICBmb3IgKHZhciBzY3JpcHQs
IGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKyspIHsKLSAgICB2YXIgc3JjID0gc2NyaXB0
LnNyYzsKLSAgICB2YXIgbCA9IHNyYy5sZW5ndGg7Ci0gICAgaWYgKHNyYy5zdWJzdHIobCAtIGV4
cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVjdGVkQmFzZSkgewotICAgICAgYmFzZVBhdGggPSBz
cmMuc3Vic3RyKDAsIGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKTsKLSAgICAgIGJyZWFrOwotICAg
IH0KLSAgfQotICBlcGlsb2d1ZS5zcmMgPSBiYXNlUGF0aCArICJqcy10ZXN0LXBvc3QuanMiOwot
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVwaWxvZ3VlKTsKLX0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsLzEuMC4yL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjEyMTQ3Y2E0MzI4OTU0
NjhhYTI3NDllNGNhNDQzNmNjZWVlODVhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcworKysgL2Rl
di9udWxsCkBAIC0xLDEyICswLDAgQEAKLS5wYXNzIHsKLSAgICBmb250LXdlaWdodDogYm9sZDsK
LSAgICBjb2xvcjogZ3JlZW47Ci19Ci0uZmFpbCB7Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0g
ICAgY29sb3I6IHJlZDsKLX0KLSNjb25zb2xlIHsKLSAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7
Ci0gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QtaGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
MS4wLjIvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3dlYmdsLXRlc3QtaGFy
bmVzcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGNkOWVlYzg0YzBmOGFjOGQ0
MWQ5MTJmMmM2NjQ4ODhkY2U0YWI5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC10ZXN0LWhhcm5lc3MuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSw1ODQgKzAsMCBAQAotLyoKLSoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCi0qKgotKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg
ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSoqIGNvcHkgb2YgdGhp
cyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSoq
ICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZwotKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg
YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwotKiogcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl
Y3QgdG8KLSoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSoqCi0qKiBUaGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl
ZAotKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJp
YWxzLgotKioKLSoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0qKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSoqIE1FUkNIQU5UQUJJTElUWSwg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KLSoq
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0qKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAotKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKLSoqIE1BVEVSSUFMUyBP
UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCi0qLwotCi0vLyBU
aGlzIGlzIGEgdGVzdCBoYXJuZXNzIGZvciBydW5uaW5nIGphdmFzY3JpcHQgdGVzdHMgaW4gdGhl
IGJyb3dzZXIuCi0vLyBUaGUgb25seSBpZGVudGlmaWVyIGV4cG9zZWQgYnkgdGhpcyBoYXJuZXNz
IGlzIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuCi0vLwotLy8gVG8gdXNlIGl0IG1ha2UgYW4gSFRN
TCBwYWdlIHdpdGggYW4gaWZyYW1lLiBUaGVuIGNhbGwgdGhlIGhhcm5lc3MgbGlrZSB0aGlzCi0v
LwotLy8gICAgZnVuY3Rpb24gcmVwb3J0UmVzdWx0cyh0eXBlLCBtc2csIHN1Y2Nlc3MpIHsKLS8v
ICAgICAgLi4uCi0vLyAgICAgIHJldHVybiB0cnVlOwotLy8gICAgfQotLy8KLS8vICAgIHZhciBm
aWxlTGlzdFVSTCA9ICcwMF90ZXN0X2xpc3QudHh0JzsKLS8vICAgIHZhciB0ZXN0SGFybmVzcyA9
IG5ldyBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzKAotLy8gICAgICAgIGlmcmFt
ZSwKLS8vICAgICAgICBmaWxlTGlzdFVSTCwKLS8vICAgICAgICByZXBvcnRSZXN1bHRzLAotLy8g
ICAgICAgIG9wdGlvbnMpOwotLy8KLS8vIFRoZSBoYXJuZXNzIHdpbGwgbG9hZCB0aGUgZmlsZUxp
c3RVUkwgYW5kIHBhcnNlIGl0IGZvciB0aGUgVVJMcywgb25lIFVSTAotLy8gcGVyIGxpbmUgcHJl
Y2VkZWQgYnkgb3B0aW9ucywgc2VlIGJlbG93LiBVUkxzIHNob3VsZCBiZSBvbiB0aGUgc2FtZSBk
b21haW4KLS8vIGFuZCBhdCB0aGUgIHNhbWUgZm9sZGVyIGxldmVsIG9yIGJlbG93IHRoZSBtYWlu
IGh0bWwgZmlsZS4gIElmIGFueSBVUkwgZW5kcwotLy8gaW4gLnR4dCBpdCB3aWxsIGJlIHBhcnNl
ZCBhcyB3ZWxsIHNvIHlvdSBjYW4gbmVzdCAudHh0IGZpbGVzLiBVUkxzIGluc2lkZSBhCi0vLyAu
dHh0IGZpbGUgc2hvdWxkIGJlIHJlbGF0aXZlIHRvIHRoYXQgdGV4dCBmaWxlLgotLy8KLS8vIER1
cmluZyBzdGFydHVwLCBmb3IgZWFjaCBwYWdlIGZvdW5kIHRoZSByZXBvcnRGdW5jdGlvbiB3aWxs
IGJlIGNhbGxlZCB3aXRoCi0vLyBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJuZXNzLnJl
cG9ydFR5cGUuQUREX1BBR0UgYW5kIG1zZyB3aWxsIGJlCi0vLyB0aGUgVVJMIG9mIHRoZSB0ZXN0
LgotLy8KLS8vIEVhY2ggdGVzdCBpcyByZXF1aXJlZCB0byBjYWxsIHRlc3RIYXJuZXNzLnJlcG9y
dFJlc3VsdHMuIFRoaXMgaXMgbW9zdCBlYXNpbHkKLS8vIGFjY29tcGxpc2hlZCBieSBzdG9yaW5n
IHRoYXQgdmFsdWUgb24gdGhlIG1haW4gd2luZG93IHdpdGgKLS8vCi0vLyAgICAgd2luZG93Lndl
YmdsVGVzdEhhcm5lc3MgPSB0ZXN0SGFybmVzcwotLy8KLS8vIGFuZCB0aGVuIGFkZGluZyB0aGVz
ZSB0byBmdW5jdGlvbnMgdG8geW91ciB0ZXN0cy4KLS8vCi0vLyAgICAgZnVuY3Rpb24gcmVwb3J0
VGVzdFJlc3VsdHNUb0hhcm5lc3Moc3VjY2VzcywgbXNnKSB7Ci0vLyAgICAgICBpZiAod2luZG93
LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7Ci0vLyAgICAgICAgIHdpbmRvdy5wYXJlbnQud2Vi
Z2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHN1Y2Nlc3MsIG1zZyk7Ci0vLyAgICAgICB9Ci0v
LyAgICAgfQotLy8KLS8vICAgICBmdW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIHsK
LS8vICAgICAgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKLS8vICAgICAg
ICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKCk7Ci0vLyAg
ICAgICB9Ci0vLyAgICAgfQotLy8KLS8vIFRoaXMgd2F5IHlvdXIgdGVzdHMgd2lsbCBzdGlsbCBy
dW4gd2l0aG91dCB0aGUgaGFybmVzcyBhbmQgeW91IGNhbiB1c2UKLS8vIGFueSB0ZXN0aW5nIGZy
YW1ld29yayB5b3Ugd2FudC4KLS8vCi0vLyBFYWNoIHRlc3Qgc2hvdWxkIGNhbGwgcmVwb3J0VGVz
dFJlc3VsdHNUb0hhcm5lc3Mgd2l0aCB0cnVlIGZvciBzdWNjZXNzIGlmIGl0Ci0vLyBzdWNjZWVk
ZWQgYW5kIGZhbHNlIGlmIGl0IGZhaWwgZm9sbG93ZWQgYW5kIGFueSBtZXNzYWdlIGl0IHdhbnRz
IHRvCi0vLyBhc3NvY2lhdGUgd2l0aCB0aGUgdGVzdC4gSWYgeW91ciB0ZXN0aW5nIGZyYW1ld29y
ayBzdXBwb3J0cyBjaGVja2luZyBmb3IKLS8vIHRpbWVvdXQgeW91IGNhbiBjYWxsIGl0IHdpdGgg
c3VjY2VzcyBlcXVhbCB0byB1bmRlZmluZWQgaW4gdGhhdCBjYXNlLgotLy8KLS8vIFRvIHJ1biB0
aGUgdGVzdHMsIGNhbGwgdGVzdEhhcm5lc3MucnVuVGVzdHMob3B0aW9ucyk7Ci0vLwotLy8gRm9y
IGVhY2ggdGVzdCBydW4sIGJlZm9yZSB0aGUgcGFnZSBpcyBsb2FkZWQgdGhlIHJlcG9ydEZ1bmN0
aW9uIHdpbGwgYmUKLS8vIGNhbGxlZCB3aXRoIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhh
cm5lc3MucmVwb3J0VHlwZS5TVEFSVF9QQUdFIGFuZCBtc2cKLS8vIHdpbGwgYmUgdGhlIFVSTCBv
ZiB0aGUgdGVzdC4gWW91IG1heSByZXR1cm4gZmFsc2UgaWYgeW91IHdhbnQgdGhlIHRlc3QgdG8g
YmUKLS8vIHNraXBwZWQuCi0vLwotLy8gRm9yIGVhY2ggdGVzdCBjb21wbGV0ZWQgdGhlIHJlcG9y
dEZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGgKLS8vIHdpdGggV2ViR0xUZXN0SGFybmVzc01v
ZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRUeXBlLlRFU1RfUkVTVUxULAotLy8gc3VjY2VzcyA9IHRy
dWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZmFpbHVyZSwgdW5kZWZpbmVkIG9uIHRpbWVvdXQKLS8v
IGFuZCBtc2cgaXMgYW55IG1lc3NhZ2UgdGhlIHRlc3QgY2hvb3NlIHRvIHBhc3Mgb24uCi0vLwot
Ly8gV2hlbiBhbGwgdGhlIHRlc3RzIG9uIHRoZSBwYWdlIGhhdmUgZmluaXNoZWQgeW91ciBwYWdl
IG11c3QgY2FsbAotLy8gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MuICBJZiBub3RpZnlGaW5pc2hl
ZFRvSGFybmVzcyBpcyBub3QgY2FsbGVkCi0vLyB0aGUgaGFybmVzcyB3aWxsIGFzc3VtZSB0aGUg
dGVzdCB0aW1lZCBvdXQuCi0vLwotLy8gV2hlbiBhbGwgdGhlIHRlc3RzIG9uIGEgcGFnZSBoYXZl
IGZpbmlzaGVkIE9SIHRoZSBwYWdlIGFzIHRpbWVkIG91dCB0aGUKLS8vIHJlcG9ydEZ1bmN0aW9u
IHdpbGwgYmUgY2FsbGVkIHdpdGgKLS8vIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5l
c3MucmVwb3J0VHlwZS5GSU5JU0hfUEFHRQotLy8gd2hlcmUgc3VjY2VzcyA9IHRydWUgaWYgdGhl
IHBhZ2UgaGFzIGNvbXBsZXRlZCBvciB1bmRlZmluZWQgaWYgdGhlIHBhZ2UgdGltZWQKLS8vIG91
dC4KLS8vCi0vLyBGaW5hbGx5LCB3aGVuIGFsbCB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQgdGhl
IHJlcG9ydEZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCi0vLyB3aXRoIFdlYkdMVGVzdEhhcm5lc3NN
b2R1bGUuVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5GSU5JU0hFRF9BTExfVEVTVFMuCi0vLwotLy8g
SGFybmVzcyBPcHRpb25zCi0vLwotLy8gVGhlc2UgYXJlIHBhc3NlZCBpbiB0byB0aGUgVGVzdEhh
cm5lc3MgYXMgYSBKYXZhU2NyaXB0IG9iamVjdAotLy8KLS8vIHZlcnNpb246IChyZXF1aXJlZCEp
Ci0vLwotLy8gICAgIFNwZWNpZmllcyBhIHZlcnNpb24gdXNlZCB0byBmaWx0ZXIgdGVzdHMuIFRl
c3RzIG1hcmtlZCBhcyByZXF1aXJpbmcKLS8vICAgICBhIHZlcnNpb24gZ3JlYXRlciB0aGFuIHRo
aXMgdmVyc2lvbiB3aWxsIG5vdCBiZSBpbmNsdWRlZC4KLS8vCi0vLyAgICAgZXhhbXBsZTogbmV3
IFRlc3RIYXJuZXNzKC4uLi4sIHt2ZXJzaW9uOiAiMy4xLjIifSk7Ci0vLwotLy8gbWluVmVyc2lv
bjoKLS8vCi0vLyAgICAgU3BlY2lmaWVzIHRoZSBtaW5pbXVtIHZlcnNpb24gYSB0ZXN0IG11c3Qg
cmVxdWlyZSB0byBiZSBpbmNsdWRlZC4KLS8vICAgICBUaGlzIGJhc2ljYWxseSBmbGlwcyB0aGUg
ZmlsdGVyIHNvIHRoYXQgb25seSB0ZXN0cyBtYXJrZWQgd2l0aAotLy8gICAgIC0tbWluLXZlcnNp
b24gd2lsbCBiZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBhdCB0aGlzIG1pblZlcnNpb24gb3IKLS8v
ICAgICBncmVhdGVyLgotLy8KLS8vICAgICBleGFtcGxlOiBuZXcgVGVzdEhhcm5lc3MoLi4uLiwg
e21pblZlcnNpb246ICIyLjMuMSJ9KTsKLS8vCi0vLyBmYXN0OgotLy8KLS8vICAgICBTcGVjaWZp
ZXMgdG8gc2tpcCBhbnkgdGVzdHMgbWFya2VkIGFzIHNsb3cuCi0vLwotLy8gICAgIGV4YW1wbGU6
IG5ldyBUZXN0SGFybmVzcyguLi4sIHtmYXN0OiB0cnVlfSk7Ci0vLwotLy8gVGVzdCBPcHRpb25z
OgotLy8KLS8vIEFueSB0ZXN0IFVSTCBvciAudHh0IGZpbGUgY2FuIGJlIHByZWZpeGVkIGJ5IHRo
ZSBmb2xsb3dpbmcgb3B0aW9ucwotLy8KLS8vIG1pbi12ZXJzaW9uOgotLy8KLS8vICAgICBTZXRz
IHRoZSBtaW5pbXVtIHZlcnNpb24gcmVxdWlyZXMgdG8gaW5jbHVkZSB0aGlzIHRlc3QuIEEgdmVy
c2lvbiBpcwotLy8gICAgIHBhc3NlZCBpbnRvIHRoZSBoYXJuZXNzIG9wdGlvbnMuIEFueSB0ZXN0
IG1hcmtlZCBhcyByZXF1aXJpbmcgYQotLy8gICAgIG1pbi12ZXJzaW9uIGdyZWF0ZXIgdGhhbiB0
aGUgdmVyc2lvbiBwYXNzZWQgdG8gdGhlIGhhcm5lc3MgaXMgc2tpcHBlZC4KLS8vICAgICBUaGlz
IGFsbG93cyB5b3UgdG8gYWRkIG5ldyB0ZXN0cyB0byBhIHN1aXRlIG9mIHRlc3RzIGZvciBhIGZ1
dHVyZQotLy8gICAgIHZlcnNpb24gb2YgdGhlIHN1aXRlIHdpdGhvdXQgaW5jbHVkaW5nIHRoZSB0
ZXN0IGluIHRoZSBjdXJyZW50IHZlcnNpb24uCi0vLyAgICAgSWYgbm8gLW1pbi12ZXJzaW9uIGlz
IHNwZWNpZmllZCBpdCBpcyBpbmhlcmlpdGVkIGZyb20gdGhlIC50eHQgZmlsZQotLy8gICAgIGlu
Y2x1ZGluZyBpdC4gVGhlIGRlZmF1bHQgaXMgMS4wLjAKLS8vCi0vLyAgICAgZXhhbXBsZTogIC0t
bWluLXZlcnNpb24gMi4xLjMgc29tZXRlc3QuaHRtbAotLy8KLS8vIHNsb3c6Ci0vLwotLy8gICAg
IE1hcmtzIGEgdGVzdCBhcyBzbG93LiBTbG93IHRlc3RzIGNhbiBiZSBza2lwcGVkIGJ5IHBhc3Np
bmcgZmFzdE9ubHk6IHRydWUKLS8vICAgICB0byB0aGUgVGVzdEhhcm5lc3MuIE9mIGNvdXJzZSB5
b3UgbmVlZCB0byBwYXNzIGFsbCB0ZXN0cyBidXQgc29tZXRpbWVzCi0vLyAgICAgeW91J2QgbGlr
ZSB0byB0ZXN0IHF1aWNrbHkgYW5kIHJ1biBvbmx5IHRoZSBmYXN0IHN1YnNldCBvZiB0ZXN0cy4K
LS8vCi0vLyAgICAgZXhhbXBsZTogIC0tc2xvdyBzb21lLXRlc3QtdGhhdC10YWtlcy0yLW1pbnMu
aHRtbAotLy8KLQotV2ViR0xUZXN0SGFybmVzc01vZHVsZSA9IGZ1bmN0aW9uKCkgewotCi0vKioK
LSAqIFdyYXBwZWQgbG9nZ2luZyBmdW5jdGlvbi4KLSAqLwotdmFyIGxvZyA9IGZ1bmN0aW9uKG1z
ZykgewotICBpZiAod2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nKSB7Ci0gICAg
d2luZG93LmNvbnNvbGUubG9nKG1zZyk7Ci0gIH0KLX07Ci0KLS8qKgotICogTG9hZHMgdGV4dCBm
cm9tIGFuIGV4dGVybmFsIGZpbGUuIFRoaXMgZnVuY3Rpb24gaXMgc3luY2hyb25vdXMuCi0gKiBA
cGFyYW0ge3N0cmluZ30gdXJsIFRoZSB1cmwgb2YgdGhlIGV4dGVybmFsIGZpbGUuCi0gKiBAcGFy
YW0geyFmdW5jdGlvbihib29sLCBzdHJpbmcpOiB2b2lkfSBjYWxsYmFjayB0aGF0IGlzIHNlbnQg
YSBib29sIGZvcgotICogICAgIHN1Y2Nlc3MgYW5kIHRoZSBzdHJpbmcuCi0gKi8KLXZhciBsb2Fk
VGV4dEZpbGVBc3luY2hyb25vdXMgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Ci0gIGxvZyAo
ImxvYWRpbmc6ICIgKyB1cmwpOwotICB2YXIgZXJyb3IgPSAnbG9hZFRleHRGaWxlU3luY2hyb25v
dXMgZmFpbGVkIHRvIGxvYWQgdXJsICInICsgdXJsICsgJyInOwotICB2YXIgcmVxdWVzdDsKLSAg
aWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewotICAgIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKLSAgICBpZiAocmVxdWVzdC5vdmVycmlkZU1pbWVUeXBlKSB7Ci0gICAgICByZXF1
ZXN0Lm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW4nKTsKLSAgICB9Ci0gIH0gZWxzZSB7Ci0g
ICAgdGhyb3cgJ1hNTEh0dHBSZXF1ZXN0IGlzIGRpc2FibGVkJzsKLSAgfQotICB0cnkgewotICAg
IHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTsKLSAgICByZXF1ZXN0Lm9ucmVhZHlzdGF0
ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0
KSB7Ci0gICAgICAgIHZhciB0ZXh0ID0gJyc7Ci0gICAgICAgIC8vIEhUVFAgcmVwb3J0cyBzdWNj
ZXNzIHdpdGggYSAyMDAgc3RhdHVzLiBUaGUgZmlsZSBwcm90b2NvbCByZXBvcnRzCi0gICAgICAg
IC8vIHN1Y2Nlc3Mgd2l0aCB6ZXJvLiBIVFRQIGRvZXMgbm90IHVzZSB6ZXJvIGFzIGEgc3RhdHVz
IGNvZGUgKHRoZXkKLSAgICAgICAgLy8gc3RhcnQgYXQgMTAwKS4KLSAgICAgICAgLy8gaHR0cHM6
Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvRW4vVXNpbmdfWE1MSHR0cFJlcXVlc3QKLSAgICAgICAg
dmFyIHN1Y2Nlc3MgPSByZXF1ZXN0LnN0YXR1cyA9PSAyMDAgfHwgcmVxdWVzdC5zdGF0dXMgPT0g
MDsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKLSAgICAgICAgICB0ZXh0ID0gcmVxdWVzdC5yZXNw
b25zZVRleHQ7Ci0gICAgICAgIH0KLSAgICAgICAgbG9nKCJsb2FkZWQ6ICIgKyB1cmwpOwotICAg
ICAgICBjYWxsYmFjayhzdWNjZXNzLCB0ZXh0KTsKLSAgICAgIH0KLSAgICB9OwotICAgIHJlcXVl
c3Quc2VuZChudWxsKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIGxvZygiZmFpbGVkIHRvIGxvYWQ6
ICIgKyB1cmwpOwotICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7Ci0gIH0KLX07Ci0KLS8qKgotICog
Q29tcGFyZSB2ZXJzaW9uIHN0cmluZ3MuCi0gKi8KLXZhciBncmVhdGVyVGhhbk9yRXF1YWxUb1Zl
cnNpb24gPSBmdW5jdGlvbihoYXZlLCB3YW50KSB7Ci0gIGhhdmUgPSBoYXZlLnNwbGl0KCIgIilb
MF0uc3BsaXQoIi4iKTsKLSAgd2FudCA9IHdhbnQuc3BsaXQoIiAiKVswXS5zcGxpdCgiLiIpOwot
Ci0gIC8vaGF2ZSAxLjIuMyAgIHdhbnQgIDEuMQotICAvL2hhdmUgMS4xLjEgICB3YW50ICAxLjEK
LSAgLy9oYXZlIDEuMC45ICAgd2FudCAgMS4xCi0gIC8vaGF2ZSAxLjEgICAgIHdhbnQgIDEuMS4x
Ci0KLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHdhbnQubGVuZ3RoOyArK2lpKSB7Ci0gICAgdmFy
IHdhbnROdW0gPSBwYXJzZUludCh3YW50W2lpXSk7Ci0gICAgdmFyIGhhdmVOdW0gPSBoYXZlW2lp
XSA/IHBhcnNlSW50KGhhdmVbaWldKSA6IDAKLSAgICBpZiAoaGF2ZU51bSA8IHdhbnROdW0pIHsK
LSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIHRydWU7Ci19OwotCi0v
KioKLSAqIFJlYWRzIGEgZmlsZSwgcmVjdXJzaXZlbHkgYWRkaW5nIGZpbGVzIHJlZmVyZW5jZWQg
aW5zaWRlLgotICoKLSAqIEVhY2ggbGluZSBvZiBVUkwgaXMgcGFyc2VkLCBjb21tZW50cyBzdGFy
dGluZyB3aXRoICcjJyBvciAnOycKLSAqIG9yICcvLycgYXJlIHN0cmlwcGVkLgotICoKLSAqIGFy
Z3VtZW50cyBiZWdpbm5pbmcgd2l0aCAtLSBhcmUgZXh0cmFjdGVkCi0gKgotICogbGluZXMgdGhh
dCBlbmQgaW4gLnR4dCBhcmUgcmVjdXJzaXZlbHkgc2Nhbm5lZCBmb3IgbW9yZSBmaWxlcwotICog
b3RoZXIgbGluZXMgYXJlIGFkZGVkIHRvIHRoZSBsaXN0IG9mIGZpbGVzLgotICoKLSAqIEBwYXJh
bSB7c3RyaW5nfSB1cmwgVGhlIHVybCBvZiB0aGUgZmlsZSB0byByZWFkLgotICogQHBhcmFtIHt2
b2lkIGZ1bmN0aW9uKGJvb2xlYW4sICFBcnJheS48c3RyaW5nPil9IGNhbGxiYWNrLgotICogICAg
ICBDYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aXRoIHRydWUgZm9yIHN1Y2Nlc3MgYW5kIGFuCi0g
KiAgICAgIGFycmF5IG9mIGZpbGVuYW1lcy4KLSAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLiBP
cHRpb25hbCBvcHRpb25zCi0gKgotICogT3B0aW9uczoKLSAqICAgIHZlcnNpb246IHtzdHJpbmd9
IFRoZSB2ZXJzaW9uIG9mIHRoZSBjb25mb3JtYW5jZSB0ZXN0LgotICogICAgVGVzdHMgd2l0aCB0
aGUgYXJndW1lbnQgLS1taW4tdmVyc2lvbiA8dmVyc2lvbj4gd2lsbAotICogICAgYmUgaWdub3Jl
ZCB2ZXJzaW9uIGlzIGxlc3MgdGhlbiA8dmVyc2lvbj4KLSAqCi0gKi8KLXZhciBnZXRGaWxlTGlz
dCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2ssIG9wdGlvbnMpIHsKLSAgdmFyIGZpbGVzID0gW107
Ci0KLSAgdmFyIGNvcHlPYmplY3QgPSBmdW5jdGlvbihvYmopIHsKLSAgICByZXR1cm4gSlNPTi5w
YXJzZShKU09OLnN0cmluZ2lmeShvYmopKTsKLSAgfTsKLQotICB2YXIgdG9DYW1lbENhc2UgPSBm
dW5jdGlvbihzdHIpIHsKLSAgICByZXR1cm4gc3RyLnJlcGxhY2UoLy0oW2Etel0pL2csIGZ1bmN0
aW9uIChnKSB7IHJldHVybiBnWzFdLnRvVXBwZXJDYXNlKCkgfSk7Ci0gIH07Ci0KLSAgdmFyIGds
b2JhbE9wdGlvbnMgPSBjb3B5T2JqZWN0KG9wdGlvbnMpOwotICBnbG9iYWxPcHRpb25zLmRlZmF1
bHRWZXJzaW9uID0gIjEuMCI7Ci0KLSAgdmFyIGdldEZpbGVMaXN0SW1wbCA9IGZ1bmN0aW9uKHBy
ZWZpeCwgbGluZSwgbGluZU51bSwgaGllcmFyY2hpY2FsT3B0aW9ucywgY2FsbGJhY2spIHsKLSAg
ICB2YXIgZmlsZXMgPSBbXTsKLQotICAgIHZhciBhcmdzID0gbGluZS5zcGxpdCgvXHMrLyk7Ci0g
ICAgdmFyIG5vbk9wdGlvbnMgPSBbXTsKLSAgICB2YXIgdXNlVGVzdCA9IHRydWU7Ci0gICAgdmFy
IHRlc3RPcHRpb25zID0ge307Ci0gICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGFyZ3MubGVuZ3Ro
OyArK2pqKSB7Ci0gICAgICB2YXIgYXJnID0gYXJnc1tqal07Ci0gICAgICBpZiAoYXJnWzBdID09
ICctJykgewotICAgICAgICBpZiAoYXJnWzFdICE9ICctJykgewotICAgICAgICAgIHRocm93ICgi
YmFkIG9wdGlvbiBhdCBpbiAiICsgdXJsICsgIjoiICsgbGluZU51bSArICI6ICIgKyBhcmcpOwot
ICAgICAgICB9Ci0gICAgICAgIHZhciBvcHRpb24gPSBhcmcuc3Vic3RyaW5nKDIpOwotICAgICAg
ICBzd2l0Y2ggKG9wdGlvbikgewotICAgICAgICAgIC8vIG5vIGFyZ3VtZW50IG9wdGlvbnMuCi0g
ICAgICAgICAgY2FzZSAnc2xvdyc6Ci0gICAgICAgICAgICB0ZXN0T3B0aW9uc1t0b0NhbWVsQ2Fz
ZShvcHRpb24pXSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAvLyBvbmUg
YXJndW1lbnQgb3B0aW9ucy4KLSAgICAgICAgICBjYXNlICdtaW4tdmVyc2lvbic6Ci0gICAgICAg
ICAgICArK2pqOwotICAgICAgICAgICAgdGVzdE9wdGlvbnNbdG9DYW1lbENhc2Uob3B0aW9uKV0g
PSBhcmdzW2pqXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICB0aHJvdyAoImJhZCB1bmtub3duIG9wdGlvbiAnIiArIG9wdGlvbiArICInIGF0IGlu
ICIgKyB1cmwgKyAiOiIgKyBsaW5lTnVtICsgIjogIiArIGFyZyk7Ci0gICAgICAgIH0KLSAgICAg
IH0gZWxzZSB7Ci0gICAgICAgIG5vbk9wdGlvbnMucHVzaChhcmcpOwotICAgICAgfQotICAgIH0K
LSAgICB2YXIgdXJsID0gcHJlZml4ICsgbm9uT3B0aW9ucy5qb2luKCIgIik7Ci0KLSAgICBpZiAo
dXJsLnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgIT0gJy50eHQnKSB7Ci0gICAgICB2YXIgbWluVmVy
c2lvbiA9IHRlc3RPcHRpb25zLm1pblZlcnNpb247Ci0gICAgICBpZiAoIW1pblZlcnNpb24pIHsK
LSAgICAgICAgbWluVmVyc2lvbiA9IGhpZXJhcmNoaWNhbE9wdGlvbnMuZGVmYXVsdFZlcnNpb247
Ci0gICAgICB9Ci0gICAgICB2YXIgc2xvdyA9IHRlc3RPcHRpb25zLnNsb3c7Ci0gICAgICBpZiAo
IXNsb3cpIHsKLSAgICAgICAgc2xvdyA9IGhpZXJhcmNoaWNhbE9wdGlvbnMuZGVmYXVsdFNsb3c7
Ci0gICAgICB9Ci0KLSAgICAgIGlmIChnbG9iYWxPcHRpb25zLmZhc3QgJiYgc2xvdykgewotICAg
ICAgICB1c2VUZXN0ID0gZmFsc2U7Ci0gICAgICB9IGVsc2UgaWYgKGdsb2JhbE9wdGlvbnMubWlu
VmVyc2lvbikgewotICAgICAgICB1c2VUZXN0ID0gZ3JlYXRlclRoYW5PckVxdWFsVG9WZXJzaW9u
KG1pblZlcnNpb24sIGdsb2JhbE9wdGlvbnMubWluVmVyc2lvbik7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICB1c2VUZXN0ID0gZ3JlYXRlclRoYW5PckVxdWFsVG9WZXJzaW9uKGdsb2JhbE9wdGlv
bnMudmVyc2lvbiwgbWluVmVyc2lvbik7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCF1c2VU
ZXN0KSB7Ci0gICAgICBjYWxsYmFjayh0cnVlLCBbXSk7Ci0gICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcudHh0JykgewotICAgICAg
Ly8gSWYgYSB2ZXJzaW9uIHdhcyBleHBsaWNpdHkgc3BlY2lmaWVkIHBhc3MgaXQgZG93bi4KLSAg
ICAgIGlmICh0ZXN0T3B0aW9ucy5taW5WZXJzaW9uKSB7Ci0gICAgICAgIGhpZXJhcmNoaWNhbE9w
dGlvbnMuZGVmYXVsdFZlcnNpb24gPSB0ZXN0T3B0aW9ucy5taW5WZXJzaW9uOwotICAgICAgfQot
ICAgICAgaWYgKHRlc3RPcHRpb25zLnNsb3cpIHsKLSAgICAgICAgaGllcmFyY2hpY2FsT3B0aW9u
cy5kZWZhdWx0U2xvdyA9IHRlc3RPcHRpb25zLnNsb3c7Ci0gICAgICB9Ci0gICAgICBsb2FkVGV4
dEZpbGVBc3luY2hyb25vdXModXJsLCBmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKHN1Y2Nlc3MsIHRleHQpIHsKLSAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
fQotICAgICAgICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7Ci0gICAgICAgICAgdmFy
IHByZWZpeCA9ICcnOwotICAgICAgICAgIHZhciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2Yo
Jy8nKTsKLSAgICAgICAgICBpZiAobGFzdFNsYXNoID49IDApIHsKLSAgICAgICAgICAgIHByZWZp
eCA9IHVybC5zdWJzdHIoMCwgbGFzdFNsYXNoICsgMSk7Ci0gICAgICAgICAgfQotICAgICAgICAg
IHZhciBmYWlsID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGNvdW50ID0gMTsKLSAgICAgICAgICB2
YXIgaW5kZXggPSAwOwotICAgICAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5n
dGg7ICsraWkpIHsKLSAgICAgICAgICAgIHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxz
XHMqLywgJycpLnJlcGxhY2UoL1xzXHMqJC8sICcnKTsKLSAgICAgICAgICAgIGlmIChzdHIubGVu
Z3RoID4gNCAmJgotICAgICAgICAgICAgICAgIHN0clswXSAhPSAnIycgJiYKLSAgICAgICAgICAg
ICAgICBzdHJbMF0gIT0gIjsiICYmCi0gICAgICAgICAgICAgICAgc3RyLnN1YnN0cigwLCAyKSAh
PSAiLy8iKSB7Ci0gICAgICAgICAgICAgICsrY291bnQ7Ci0gICAgICAgICAgICAgIGdldEZpbGVM
aXN0SW1wbChwcmVmaXgsIHN0ciwgaWkgKyAxLCBjb3B5T2JqZWN0KGhpZXJhcmNoaWNhbE9wdGlv
bnMpLCBmdW5jdGlvbihpbmRleCkgewotICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihz
dWNjZXNzLCBuZXdfZmlsZXMpIHsKLSAgICAgICAgICAgICAgICAgIC8vbG9nKCJnb3QgZmlsZXM6
ICIgKyBuZXdfZmlsZXMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGZpbGVzW2luZGV4XSA9IG5ld19maWxlczsKLSAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGZpbmlzaChzdWNjZXNzKTsKLSAgICAgICAg
ICAgICAgICB9OwotICAgICAgICAgICAgICB9KGluZGV4KyspKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgICAgZmluaXNoKHRydWUpOwotCi0gICAgICAgICAgZnVuY3Rpb24g
ZmluaXNoKHN1Y2Nlc3MpIHsKLSAgICAgICAgICAgIGlmICghc3VjY2VzcykgewotICAgICAgICAg
ICAgICBmYWlsID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC0tY291bnQ7Ci0g
ICAgICAgICAgICAvL2xvZygiY291bnQ6ICIgKyBjb3VudCk7Ci0gICAgICAgICAgICBpZiAoIWNv
dW50KSB7Ci0gICAgICAgICAgICAgIGNhbGxiYWNrKCFmYWlsLCBmaWxlcyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9KCkpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICBmaWxlcy5wdXNoKHVybCk7Ci0gICAgICBjYWxsYmFjayh0cnVlLCBmaWxlcyk7Ci0gICAg
fQotICB9OwotCi0gIGdldEZpbGVMaXN0SW1wbCgnJywgdXJsLCAxLCBnbG9iYWxPcHRpb25zLCBm
dW5jdGlvbihzdWNjZXNzLCBmaWxlcykgewotICAgIC8vIGZsYXR0ZW4KLSAgICB2YXIgZmxhdCA9
IFtdOwotICAgIGZsYXR0ZW4oZmlsZXMpOwotICAgIGZ1bmN0aW9uIGZsYXR0ZW4oZmlsZXMpIHsK
LSAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBmaWxlcy5sZW5ndGg7ICsraWkpIHsKLSAgICAg
ICAgdmFyIHZhbHVlID0gZmlsZXNbaWldOwotICAgICAgICBpZiAodHlwZW9mKHZhbHVlKSA9PSAi
c3RyaW5nIikgewotICAgICAgICAgIGZsYXQucHVzaCh2YWx1ZSk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgZmxhdHRlbih2YWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0g
ICAgY2FsbGJhY2soc3VjY2VzcywgZmxhdCk7Ci0gIH0pOwotfTsKLQotdmFyIEZpbHRlclVSTCA9
IChmdW5jdGlvbigpIHsKLSAgdmFyIHByZWZpeCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsK
LSAgcHJlZml4ID0gcHJlZml4LnN1YnN0cmluZygwLCBwcmVmaXgubGFzdEluZGV4T2YoIi8iKSAr
IDEpOwotICByZXR1cm4gZnVuY3Rpb24odXJsKSB7Ci0gICAgaWYgKHVybC5zdWJzdHJpbmcoMCwg
cHJlZml4Lmxlbmd0aCkgPT0gcHJlZml4KSB7Ci0gICAgICB1cmwgPSB1cmwuc3Vic3RyaW5nKHBy
ZWZpeC5sZW5ndGgpOwotICAgIH0KLSAgICByZXR1cm4gdXJsOwotICB9OwotfSgpKTsKLQotdmFy
IFRlc3RGaWxlID0gZnVuY3Rpb24odXJsKSB7Ci0gIHRoaXMudXJsID0gdXJsOwotfTsKLQotdmFy
IFRlc3QgPSBmdW5jdGlvbihmaWxlKSB7Ci0gIHRoaXMuZmlsZSA9IGZpbGU7Ci19OwotCi12YXIg
VGVzdEhhcm5lc3MgPSBmdW5jdGlvbihpZnJhbWUsIGZpbGVsaXN0VXJsLCByZXBvcnRGdW5jLCBv
cHRpb25zKSB7Ci0gIHRoaXMud2luZG93ID0gd2luZG93OwotICB0aGlzLmlmcmFtZXMgPSBpZnJh
bWUubGVuZ3RoID8gaWZyYW1lIDogW2lmcmFtZV07Ci0gIHRoaXMucmVwb3J0RnVuYyA9IHJlcG9y
dEZ1bmM7Ci0gIHRoaXMudGltZW91dERlbGF5ID0gMjAwMDA7Ci0gIHRoaXMuZmlsZXMgPSBbXTsK
LSAgdGhpcy5hbGxvd1NraXAgPSBvcHRpb25zLmFsbG93U2tpcDsKLQotICB2YXIgdGhhdCA9IHRo
aXM7Ci0gIGdldEZpbGVMaXN0KGZpbGVsaXN0VXJsLCBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4g
ZnVuY3Rpb24oc3VjY2VzcywgZmlsZXMpIHsKLSAgICAgIHRoYXQuYWRkRmlsZXNfKHN1Y2Nlc3Ms
IGZpbGVzKTsKLSAgICB9OwotICB9KCksIG9wdGlvbnMpOwotCi19OwotCi1UZXN0SGFybmVzcy5y
ZXBvcnRUeXBlID0gewotICBBRERfUEFHRTogMSwKLSAgUkVBRFk6IDIsCi0gIFNUQVJUX1BBR0U6
IDMsCi0gIFRFU1RfUkVTVUxUOiA0LAotICBGSU5JU0hfUEFHRTogNSwKLSAgRklOSVNIRURfQUxM
X1RFU1RTOiA2Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuYWRkRmlsZXNfID0gZnVuY3Rp
b24oc3VjY2VzcywgZmlsZXMpIHsKLSAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgdGhpcy5yZXBvcnRG
dW5jKAotICAgICAgICBUZXN0SGFybmVzcy5yZXBvcnRUeXBlLkZJTklTSEVEX0FMTF9URVNUUywK
LSAgICAgICAgJycsCi0gICAgICAgICdVbmFibGUgdG8gbG9hZCB0ZXN0cy4gQXJlIHlvdSBydW5u
aW5nIGxvY2FsbHk/XG4nICsKLSAgICAgICAgJ1lvdSBuZWVkIHRvIHJ1biBmcm9tIGEgc2VydmVy
IG9yIGNvbmZpZ3VyZSB5b3VyXG4nICsKLSAgICAgICAgJ2Jyb3dzZXIgdG8gYWxsb3cgYWNjZXNz
IHRvIGxvY2FsIGZpbGVzIChub3QgcmVjb21tZW5kZWQpLlxuXG4nICsKLSAgICAgICAgJ05vdGU6
IEFuIGVhc3kgd2F5IHRvIHJ1biBmcm9tIGEgc2VydmVyOlxuXG4nICsKLSAgICAgICAgJ1x0Y2Qg
cGF0aF90b190ZXN0c1xuJyArCi0gICAgICAgICdcdHB5dGhvbiAtbSBTaW1wbGVIVFRQU2VydmVy
XG5cbicgKwotICAgICAgICAndGhlbiBwb2ludCB5b3VyIGJyb3dzZXIgdG8gJyArCi0gICAgICAg
ICAgJzxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC93ZWJnbC1jb25mb3JtYW5jZS10ZXN0
cy5odG1sIj4nICsKLSAgICAgICAgICAnaHR0cDovL2xvY2FsaG9zdDo4MDAwL3dlYmdsLWNvbmZv
cm1hbmNlLXRlc3RzLmh0bWw8L2E+JywKLSAgICAgICAgZmFsc2UpCi0gICAgcmV0dXJuOwotICB9
Ci0gIGxvZygidG90YWwgZmlsZXM6ICIgKyBmaWxlcy5sZW5ndGgpOwotICBmb3IgKHZhciBpaSA9
IDA7IGlpIDwgZmlsZXMubGVuZ3RoOyArK2lpKSB7Ci0gICAgbG9nKCIiICsgaWkgKyAiOiAiICsg
ZmlsZXNbaWldKTsKLSAgICB0aGlzLmZpbGVzLnB1c2gobmV3IFRlc3RGaWxlKGZpbGVzW2lpXSkp
OwotICAgIHRoaXMucmVwb3J0RnVuYyhUZXN0SGFybmVzcy5yZXBvcnRUeXBlLkFERF9QQUdFLCAn
JywgZmlsZXNbaWldLCB1bmRlZmluZWQpOwotICB9Ci0gIHRoaXMucmVwb3J0RnVuYyhUZXN0SGFy
bmVzcy5yZXBvcnRUeXBlLlJFQURZLCAnJywgdW5kZWZpbmVkLCB1bmRlZmluZWQpOwotfQotCi1U
ZXN0SGFybmVzcy5wcm90b3R5cGUucnVuVGVzdHMgPSBmdW5jdGlvbihvcHRfb3B0aW9ucykgewot
ICB2YXIgb3B0aW9ucyA9IG9wdF9vcHRpb25zIHx8IHsgfTsKLSAgb3B0aW9ucy5zdGFydCA9IG9w
dGlvbnMuc3RhcnQgfHwgMDsKLSAgb3B0aW9ucy5jb3VudCA9IG9wdGlvbnMuY291bnQgfHwgdGhp
cy5maWxlcy5sZW5ndGg7Ci0KLSAgdGhpcy5pZGxlSUZyYW1lcyA9IHRoaXMuaWZyYW1lcy5zbGlj
ZSgwKTsKLSAgdGhpcy5ydW5uaW5nVGVzdHMgPSB7fTsKLSAgdmFyIHRlc3RzVG9SdW4gPSBbXTsK
LSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG9wdGlvbnMuY291bnQ7ICsraWkpIHsKLSAgICB0ZXN0
c1RvUnVuLnB1c2goaWkgKyBvcHRpb25zLnN0YXJ0KTsKLSAgfQotICB0aGlzLm51bVRlc3RzUmVt
YWluaW5nID0gb3B0aW9ucy5jb3VudDsKLSAgdGhpcy50ZXN0c1RvUnVuID0gdGVzdHNUb1J1bjsK
LSAgdGhpcy5zdGFydE5leHRUZXN0KCk7Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuc2V0
VGltZW91dCA9IGZ1bmN0aW9uKHRlc3QpIHsKLSAgdmFyIHRoYXQgPSB0aGlzOwotICB0ZXN0LnRp
bWVvdXRJZCA9IHRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICB0aGF0
LnRpbWVvdXQodGVzdCk7Ci0gICAgfSwgdGhpcy50aW1lb3V0RGVsYXkpOwotfTsKLQotVGVzdEhh
cm5lc3MucHJvdG90eXBlLmNsZWFyVGltZW91dCA9IGZ1bmN0aW9uKHRlc3QpIHsKLSAgdGhpcy53
aW5kb3cuY2xlYXJUaW1lb3V0KHRlc3QudGltZW91dElkKTsKLX07Ci0KLVRlc3RIYXJuZXNzLnBy
b3RvdHlwZS5zdGFydE5leHRUZXN0ID0gZnVuY3Rpb24oKSB7Ci0gIGlmICh0aGlzLm51bVRlc3Rz
UmVtYWluaW5nID09IDApIHsKLSAgICBsb2coImRvbmUiKTsKLSAgICB0aGlzLnJlcG9ydEZ1bmMo
VGVzdEhhcm5lc3MucmVwb3J0VHlwZS5GSU5JU0hFRF9BTExfVEVTVFMsCi0gICAgICAgICAgICAg
ICAgICAgICcnLCAnJywgdHJ1ZSk7Ci0gIH0gZWxzZSB7Ci0gICAgd2hpbGUgKHRoaXMudGVzdHNU
b1J1bi5sZW5ndGggPiAwICYmIHRoaXMuaWRsZUlGcmFtZXMubGVuZ3RoID4gMCkgewotICAgICAg
dmFyIHRlc3RJZCA9IHRoaXMudGVzdHNUb1J1bi5zaGlmdCgpOwotICAgICAgdmFyIGlmcmFtZSA9
IHRoaXMuaWRsZUlGcmFtZXMuc2hpZnQoKTsKLSAgICAgIHRoaXMuc3RhcnRUZXN0KGlmcmFtZSwg
dGhpcy5maWxlc1t0ZXN0SWRdKTsKLSAgICB9Ci0gIH0KLX07Ci0KLVRlc3RIYXJuZXNzLnByb3Rv
dHlwZS5zdGFydFRlc3QgPSBmdW5jdGlvbihpZnJhbWUsIHRlc3RGaWxlKSB7Ci0gIHZhciB0ZXN0
ID0gewotICAgIGlmcmFtZTogaWZyYW1lLAotICAgIHRlc3RGaWxlOiB0ZXN0RmlsZQotICB9Owot
ICB2YXIgdXJsID0gdGVzdEZpbGUudXJsOwotICB0aGlzLnJ1bm5pbmdUZXN0c1t1cmxdID0gdGVz
dDsKLSAgbG9nKCJsb2FkaW5nOiAiICsgdXJsKTsKLSAgaWYgKHRoaXMucmVwb3J0RnVuYyhUZXN0
SGFybmVzcy5yZXBvcnRUeXBlLlNUQVJUX1BBR0UsIHVybCwgdXJsLCB1bmRlZmluZWQpKSB7Ci0g
ICAgaWZyYW1lLnNyYyA9IHVybDsKLSAgICB0aGlzLnNldFRpbWVvdXQodGVzdCk7Ci0gIH0gZWxz
ZSB7Ci0gICAgdGhpcy5yZXBvcnRSZXN1bHRzKHVybCwgISF0aGlzLmFsbG93U2tpcCwgInNraXBw
ZWQiLCB0cnVlKTsKLSAgICB0aGlzLm5vdGlmeUZpbmlzaGVkKHVybCk7Ci0gIH0KLX07Ci0KLVRl
c3RIYXJuZXNzLnByb3RvdHlwZS5nZXRUZXN0ID0gZnVuY3Rpb24odXJsKSB7Ci0gIHZhciB0ZXN0
ID0gdGhpcy5ydW5uaW5nVGVzdHNbRmlsdGVyVVJMKHVybCldOwotICBpZiAoIXRlc3QpIHsKLSAg
ICB0aHJvdygidW5rbm93biB0ZXN0OiIgKyB1cmwpOwotICB9Ci0gIHJldHVybiB0ZXN0OwotfTsK
LQotVGVzdEhhcm5lc3MucHJvdG90eXBlLnJlcG9ydFJlc3VsdHMgPSBmdW5jdGlvbih1cmwsIHN1
Y2Nlc3MsIG1zZywgc2tpcHBlZCkgewotICB1cmwgPSBGaWx0ZXJVUkwodXJsKTsKLSAgdmFyIHRl
c3QgPSB0aGlzLmdldFRlc3QodXJsKTsKLSAgdGhpcy5jbGVhclRpbWVvdXQodGVzdCk7Ci0gIGxv
ZyhzdWNjZXNzID8gIlBBU1MiIDogIkZBSUwiLCBtc2cpOwotICB0aGlzLnJlcG9ydEZ1bmMoVGVz
dEhhcm5lc3MucmVwb3J0VHlwZS5URVNUX1JFU1VMVCwgdXJsLCBtc2csIHN1Y2Nlc3MsIHNraXBw
ZWQpOwotICAvLyBGb3IgZWFjaCByZXN1bHQgd2UgZ2V0LCByZXNldCB0aGUgdGltZW91dAotICB0
aGlzLnNldFRpbWVvdXQodGVzdCk7Ci19OwotCi1UZXN0SGFybmVzcy5wcm90b3R5cGUuZGVxdWVU
ZXN0ID0gZnVuY3Rpb24odGVzdCkgewotICB0aGlzLmNsZWFyVGltZW91dCh0ZXN0KTsKLSAgdGhp
cy5pZGxlSUZyYW1lcy5wdXNoKHRlc3QuaWZyYW1lKTsKLSAgZGVsZXRlIHRoaXMucnVubmluZ1Rl
c3RzW3Rlc3QudGVzdEZpbGUudXJsXTsKLSAgLS10aGlzLm51bVRlc3RzUmVtYWluaW5nOwotfQot
Ci1UZXN0SGFybmVzcy5wcm90b3R5cGUubm90aWZ5RmluaXNoZWQgPSBmdW5jdGlvbih1cmwpIHsK
LSAgdXJsID0gRmlsdGVyVVJMKHVybCk7Ci0gIHZhciB0ZXN0ID0gdGhpcy5nZXRUZXN0KHVybCk7
Ci0gIGxvZyh1cmwgKyAiOiBmaW5pc2hlZCIpOwotICB0aGlzLmRlcXVlVGVzdCh0ZXN0KTsKLSAg
dGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIX1BBR0UsIHVybCwg
dXJsLCB0cnVlKTsKLSAgdGhpcy5zdGFydE5leHRUZXN0KCk7Ci19OwotCi1UZXN0SGFybmVzcy5w
cm90b3R5cGUudGltZW91dCA9IGZ1bmN0aW9uKHRlc3QpIHsKLSAgdGhpcy5kZXF1ZVRlc3QodGVz
dCk7Ci0gIHZhciB1cmwgPSB0ZXN0LnRlc3RGaWxlLnVybDsKLSAgbG9nKHVybCArICI6IHRpbWVv
dXQiKTsKLSAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIX1BB
R0UsIHVybCwgdXJsLCB1bmRlZmluZWQpOwotICB0aGlzLnN0YXJ0TmV4dFRlc3QoKTsKLX07Ci0K
LVRlc3RIYXJuZXNzLnByb3RvdHlwZS5zZXRUaW1lb3V0RGVsYXkgPSBmdW5jdGlvbih4KSB7Ci0g
IHRoaXMudGltZW91dERlbGF5ID0geDsKLX07Ci0KLXJldHVybiB7Ci0gICAgJ1Rlc3RIYXJuZXNz
JzogVGVzdEhhcm5lc3MKLSAgfTsKLQotfSgpOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFy
bmVzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA4YzkxYzIzZWJlNzAxNWQzYjQ5MTFiMTcwNmE4NDNiZWQwMjUzMzkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8xLjAuMi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcworKysgL2Rl
di9udWxsCkBAIC0xLDU1ICswLDAgQEAKLSJ1c2Ugc3RyaWN0IjsKLShmdW5jdGlvbigpIHsKLSAg
dmFyIG51bUZhaWx1cmVzID0gMDsKLQotICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ciA9IHdpbmRvdy50ZXN0UnVubmVyOwotICB9Ci0KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICAvLyBUdXJuIG9mZiBj
b25zb2xlIG1lc3NhZ2VzIGJlY2F1c2UgZm9yIHRoZSBXZWJHTCB0ZXN0cyB0aGV5IGFyZQotICAg
IC8vIEdQVSBjYXBhYmlsaXR5IGRlcGVuZGVudC4KLSAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBm
dW5jdGlvbigpIHsgfTsKLSAgICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9
OwotICB9Ci0KLQotICBpZiAod2luZG93LmludGVybmFscykgewotICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKLSAgfQot
Ci0gIHZhciBsb2cgPSBmdW5jdGlvbihtc2csIGNvbG9yKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtc2cpKTsKLSAgICBpZiAoY29sb3IpIHsKLSAgICAgIGRpdi5zdHlsZS5j
b2xvciA9IGNvbG9yOwotICAgIH0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
IikuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgfTsKLQotICB3aW5kb3cud2ViZ2xUZXN0SGFybmVzcyA9
IHsKLSAgICByZXBvcnRSZXN1bHRzOiBmdW5jdGlvbih1cmwsIHN1Y2Nlc3MsIG1zZykgewotICAg
ICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgICsrbnVtRmFpbHVyZXM7Ci0gICAgICB9Ci0gICAg
fSwKLQotICAgIG5vdGlmeUZpbmlzaGVkOiBmdW5jdGlvbih1cmwpIHsKLSAgICAgIHZhciBpZnJh
bWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIik7Ci0gICAgICBpZnJhbWUuaW5u
ZXJIVE1MID0gIiI7Ci0gICAgICBpZiAobnVtRmFpbHVyZXMgPiAwKSB7Ci0gICAgICAgIGxvZygi
RkFJTCIsICJyZWQiKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGxvZygiUEFTUyIsICJncmVl
biIpOwotICAgICAgfQotCi0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICAgIH0KLSAg
ICB9LAotICB9Ci19KCkpOwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMmJlNTVkN2VkZmIxNjVkY2E4NmE3ZjU2NzcwNjhmNjEzN2Y0
MWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
LQotVGVzdDogcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbAotUEFTUwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleEltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE4ZjkyYjkyZGY4MjAyN2JkZDg5NTFkZjNkZmZlOWExOWE2ZmEx
YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4SW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgotVGVzdDogPGEgaHJlZj0icmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCI+cmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbDwv
YT4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBz
cmM9InJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleEltYWdlMkRIVE1MLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
LTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM0M2Q2YWUzNjMwNTBlMDJmMzhiZWFj
NGFlNmE5ZWRiY2EwODI4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC4yL3RleFN1YkltYWdlMkRI
VE1MLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IHJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKLVBBU1MKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFnZTJE
SFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAuMi90ZXhTdWJJbWFn
ZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZmFkN2U1MTNiYWM0
OTlmODRlNjhlYTUwM2M2NmJiMDZiZDZhN2I1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLjIvdGV4
U3ViSW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0g
VGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBE
TyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9y
IHRleFN1YkltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0icmVzb3VyY2VzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9InJlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1Yklt
YWdlMkRIVE1MLmh0bWwiPnJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw8L2E+Ci08ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5o
dG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRhNTlj
YmMzZWMxOGFiMzkyNTljYjM0MzBlMTRjOTZiYTU1ZTY2MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvcmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09M
RSBNRVNTQUdFOiBVbmFibGUgdG8gZ2V0IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0
aGUgY2FudmFzIGhhcyBiZWVuIHRhaW50ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuCitUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRt
bAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
ZjZhYmQ4YTlmMTYwOTMwYzNjMDM0ZDdlMDQxNDRmZDI0MmVmNWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitU
ZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIj4uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9y
ZWFkUGl4ZWxzQmFkQXJncy5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYw
MCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjY2IyZTQyNjEwMjVm
YjY2OTE2YTNkNGUzNTMyZjAyZWUyNWEwOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCitbIFBBU1MgXSBB
bGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleEltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI3ZTYwMmM2MjRiZTQxNWJiZmY0
NWJlYzIxNDYyNjI0Mjk0ZjQ1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhU
TUwuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9U
IEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhJ
bWFnZTJESFRNTC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw8L2E+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1h
Z2UyREhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzBkMWE5MDIwYmQ2ZDYzMGFjNDJhZGY4OTQwOWMwODIwNzhiMWM3MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25z
L3RleFN1YkltYWdlMkRIVE1MLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MmExZmYzODkyNDU0MjBhODA2ODI0OThmMzA2N2RmZWI0YzYz
YWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleFN1YkltYWdlMkRIVE1M
Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2Uy
REhUTUwuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDwvYT4KKzxkaXYgaWQ9
ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmZhYzk3Y2FlYjIxODM1NWJkNmE5MzVhOTRkNWY5
Y2U5OTc0MTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IFtsb2FkQ3Jv
c3NPcmlnaW5JbWFnZV0KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJkNjcyZTJlNzc1ZDI0YWI1NTQzNDg2ZGYx
MDY3ZGZjYTA4ZjRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNP
TEUgTUVTU0FHRTogW2xvYWRDcm9zc09yaWdpbkltYWdlXQorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGE1MTNj
Y2VmYTBkNTdiOTQ3NWM3MjZjM2E1Y2U3ZDUxMDFlOWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFu
Y2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwiPi4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sPC9hPgorPGRp
diBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZy
YW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjYzU4Zjg3YzQ1YTYwNmMzNjA0
OGY1M2FkNzRjOTMwN2NjODZjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCI+Li4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZy
YW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NzU2YzIyOWNlOTYzYWY1YzY2ZWQ2Zjk2NTg0NTllMmQ3NzA2NDhkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitDT05TT0xFIE1FU1NBR0U6IFVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9tIGNhbnZh
cyBiZWNhdXNlIHRoZSBjYW52YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmlnaW4gZGF0
YS4KK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNC
YWRBcmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMxYWU4NzFhZDFjMjVlOWZlZDA0NmVlMmViMTQ0NmZh
OTg2NjZkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciByZWFkUGl4ZWxzQmFk
QXJncy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhl
bHNCYWRBcmdzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
Lmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2UzNjdkMWRkNTQ0ZjBlODY5NTcwZmViZTJmZDBkM2ZiNDAxZDhmYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9m
dW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0
bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MjhmNWFkMTllYmJjNmRlYzQ0ZjUyYmZhNGU1NTYyOGUyYzc3ZmFkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25m
b3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleEltYWdlMkRIVE1MLmh0bWw8L3RpdGxlPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNp
b249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
bW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxk
aXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRt
bD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdl
MkRIVE1MLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGQ1Njc3OTRiZmQ5YjE1NDEwMTYzYWFh
M2ZjY2EwNmNhMTc5OGYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
KworVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbD93ZWJnbFZlcnNpb249Mgor
WyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJE
SFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMGJl
NjVkZGZmNDJiMzRjNzMzNzM2ZTM1M2RjODZhODM0NTYzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rp
b25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgdGV4U3ViSW1hZ2UyREhUTUwuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0
OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0y
Ij4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRp
diBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5o
dG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8
L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZGFmOTA2ODMw
MjA2OTNhMmQzMzQ4NjczOGNiNmZhYmJhNzIyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNP
TEUgTUVTU0FHRTogW2xvYWRDcm9zc09yaWdpbkltYWdlXQorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xW
ZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mOTRmNDNjYWJlYmIwZDkyZTg0ZTYxMzU2M2M3YzBlYTk0MTMwYjAwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBbbG9hZENyb3Nz
T3JpZ2luSW1hZ2VdCitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9u
PTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyMTA3ZTlmY2QxOWJj
YWQwOTI3OTAxODIxY2U2MTg5Yjg3NDI3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRl
LXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBD
b25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZz
Y3JlZW5jYW52YXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249
MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/
d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVy
c2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTM1ZWQ3ZGU5YTA2OWUwMDQyZjk5MmUzYjI1ZGQ3YTEwMDY3MjBl
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBvcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2UuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1s
P3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJl
cy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMDI2ZjYwODM3ZmQ5MTNlNWM1OGE2OGU5NDBiNDIxZTE4MDlm
NGFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zm
c2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FH
RTogW2xvYWRDcm9zc09yaWdpbkltYWdlXQorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRt
bD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNj
L29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MjIxNGNhOTQwYzIwMjg3NGU4MTAxMDQ1NDA2MzQ3MjkwNzRhNTJhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxh
IGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMu
aHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVu
Y2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lm
cmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViZGJjZWQ3MTE2MGYxMTYzYzYxMTUzYTZjNmEzYmIxYmQw
MDliNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC0wLDAgKzEsNTE5IEBACisvKgorKiogQ29weXJpZ2h0
IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor
KiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRv
CisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQor
KiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFM
Uy4KKyovCisKKyhmdW5jdGlvbigpIHsKKyAgdmFyIHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKKworICB2YXIgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsgPSBmdW5jdGlvbigpIHsKKyAg
ICBpZiAodGVzdEhhcm5lc3NJbml0aWFsaXplZCkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICB0ZXN0SGFybmVzc0luaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIC8qIC0tIHBsYWZvcm0gc3Bl
Y2lmaWMgY29kZSAtLSAqLworCisgICAgLy8gV2ViS2l0IFNwZWNpZmljIGNvZGUuIEFkZCB5b3Vy
IGNvZGUgaGVyZS4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyID0gd2lu
ZG93LnRlc3RSdW5uZXI7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgLy8gVGhlIFdlYktpdCB0ZXN0aW5nIHN5c3RlbSBjb21w
YXJlcyBjb25zb2xlIG91dHB1dC4KKyAgICAgIC8vIEJlY2F1c2UgdGhlIG91dHB1dCBvZiB0aGUg
V2ViR0wgVGVzdHMgaXMgR1BVIGRlcGVuZGVudAorICAgICAgLy8gd2UgdHVybiBvZmYgY29uc29s
ZSBtZXNzYWdlcy4KKyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyA9IGZ1bmN0aW9uKCkgeyB9Owor
ICAgICAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNl
KTsKKworICAgICAgLy8gUkFGIGRvZXNuJ3Qgd29yayBpbiBMYXlvdXRUZXN0cy4gRGlzYWJsZSBp
dCBzbyB0aGUgdGVzdHMgd2lsbAorICAgICAgLy8gdXNlIHNldFRpbWVvdXQgaW5zdGVhZC4KKyAg
ICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB1bmRlZmluZWQ7CisgICAgICB3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOworICAgIH0KKworICAg
IC8qIC0tIGVuZCBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIC0tKi8KKyAgfQorCisgIHRoaXMuaW5p
dFRlc3RpbmdIYXJuZXNzID0gZnVuY3Rpb24oKSB7CisgICAgaW5pdE5vbktocm9ub3NGcmFtZXdv
cmsoKTsKKyAgfQorfSgpKTsKKworZnVuY3Rpb24gbm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURv
bmUoKSB7CisgIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCisg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgIH0KK30KKworZnVuY3Rpb24gcmVwb3J0VGVzdFJlc3VsdHNU
b0hhcm5lc3Moc3VjY2VzcywgbXNnKSB7CisgIGlmICh3aW5kb3cucGFyZW50LndlYmdsVGVzdEhh
cm5lc3MpIHsKKyAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0
cyh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIHN1Y2Nlc3MsIG1zZyk7CisgIH0KK30KKworZnVu
Y3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7CisgIGlmICh3aW5kb3cucGFyZW50Lndl
YmdsVGVzdEhhcm5lc3MpIHsKKyAgICB3aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3Mubm90
aWZ5RmluaXNoZWQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTsKKyAgfQorICBpZiAod2luZG93
Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKSB7CisgICAgd2luZG93Lm5vbktocm9ub3NG
cmFtZXdvcmtOb3RpZnlEb25lKCk7CisgIH0KK30KKworZnVuY3Rpb24gX2xvZ1RvQ29uc29sZSht
c2cpCit7CisgICAgaWYgKHdpbmRvdy5jb25zb2xlKQorICAgICAgd2luZG93LmNvbnNvbGUubG9n
KG1zZyk7Cit9CisKK3ZhciBfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcgPSBmYWxzZTsKKworZnVu
Y3Rpb24gZW5hYmxlSlNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcoKQoreworICAgIF9qc1Rlc3RQcmVW
ZXJib3NlTG9nZ2luZyA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIGRlc2NyaXB0aW9uKG1zZykKK3sK
KyAgICBpbml0VGVzdGluZ0hhcm5lc3MoKTsKKyAgICBpZiAobXNnID09PSB1bmRlZmluZWQpIHsK
KyAgICAgIG1zZyA9IGRvY3VtZW50LnRpdGxlOworICAgIH0KKyAgICAvLyBGb3IgTVNJRSA2IGNv
bXBhdGliaWxpdHkKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNnICsgJzwvcD48cD5PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFu
PiIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVU
RTwvc3Bhbj4iLjwvcD4nOworICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkZXNjcmlwdGlvbiIpOworICAgIGlmIChkZXNjcmlwdGlvbi5maXJzdENoaWxkKQor
ICAgICAgICBkZXNjcmlwdGlvbi5yZXBsYWNlQ2hpbGQoc3BhbiwgZGVzY3JpcHRpb24uZmlyc3RD
aGlsZCk7CisgICAgZWxzZQorICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZChzcGFuKTsK
KyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisgICAgICAgIF9sb2dUb0NvbnNv
bGUobXNnKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIF9hZGRTcGFuKGNvbnRlbnRzKQoreworICAg
IHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7IC8vIGluc2VydCBp
dCBmaXJzdCBzbyBYSFRNTCBrbm93cyB0aGUgbmFtZXNwYWNlCisgICAgc3Bhbi5pbm5lckhUTUwg
PSBjb250ZW50cyArICc8YnIgLz4nOworfQorCitmdW5jdGlvbiBkZWJ1Zyhtc2cpCit7CisgICAg
X2FkZFNwYW4obXNnKTsKKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CisJX2xv
Z1RvQ29uc29sZShtc2cpOworICAgIH0KK30KKworZnVuY3Rpb24gZXNjYXBlSFRNTCh0ZXh0KQor
eworICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAi
Jmx0OyIpOworfQorCitmdW5jdGlvbiB0ZXN0UGFzc2VkKG1zZykKK3sKKyAgICByZXBvcnRUZXN0
UmVzdWx0c1RvSGFybmVzcyh0cnVlLCBtc2cpOworICAgIF9hZGRTcGFuKCc8c3Bhbj48c3BhbiBj
bGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7
CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworCV9sb2dUb0NvbnNvbGUoJ1BB
U1MgJyArIG1zZyk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykKK3sKKyAg
ICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhmYWxzZSwgbXNnKTsKKyAgICBfYWRkU3Bhbign
PHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1zZykg
KyAnPC9zcGFuPicpOworICAgIF9sb2dUb0NvbnNvbGUoJ0ZBSUwgJyArIG1zZyk7Cit9CisKK2Z1
bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9hLCBfYikKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAo
X2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2EubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAo
X2FbaV0gIT09IF9iW2ldKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGNh
dGNoIChleCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCitmdW5jdGlvbiBpc01pbnVzWmVybyhuKQoreworICAgIC8vIHRoZSBvbmx5IHdheSB0
byB0ZWxsIDAgZnJvbSAtMCBpbiBKUyBpcyB0aGUgZmFjdCB0aGF0IDEvLTAgaXMKKyAgICAvLyAt
SW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0eQorICAgIHJldHVybiBuID09PSAwICYmIDEvbiA8
IDA7Cit9CisKK2Z1bmN0aW9uIGlzUmVzdWx0Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0ZWQpCit7
CisgICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIF9hY3R1YWwgPT09IF9l
eHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0gKDEvX2V4cGVjdGVkKTsKKyAgICBpZiAoX2FjdHVh
bCA9PT0gX2V4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlwZW9mKF9l
eHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2V4cGVjdGVkKSkKKyAgICAgICAgcmV0dXJu
IHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVyIiAmJiBpc05hTihfYWN0dWFsKTsKKyAgICBpZiAo
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKFtdKSkKKyAgICAgICAgcmV0dXJuIGFyZUFycmF5c0VxdWFsKF9h
Y3R1YWwsIF9leHBlY3RlZCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiBzdHJp
bmdpZnkodikKK3sKKyAgICBpZiAodiA9PT0gMCAmJiAxL3YgPCAwKQorICAgICAgICByZXR1cm4g
Ii0wIjsKKyAgICBlbHNlIHJldHVybiAiIiArIHY7Cit9CisKK2Z1bmN0aW9uIGV2YWxBbmRMb2co
X2EpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHRy
eUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICAvLyBMb2cgZmlyc3Qg
aW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2
ZW50LgorICBkZWJ1ZyhfYSk7CisKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZh
bChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNl
cHRpb24gIiArIGUpOworICB9CisgIHJldHVybiBfYXY7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJl
KF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBl
b2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVj
dHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsK
KyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKwor
ICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAi
ICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYg
KGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAg
ICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCisgICAgICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIu
Iik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9i
diArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0
eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKF9h
LCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2Yg
X2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVj
dHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsK
KyAgICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKwor
ICAgIGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3Qg
YmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNl
IGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgICAg
fQorICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIg
KyBfYnYgKyAiLiIpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUo
X2EsICJ0cnVlIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2Es
ICJmYWxzZSIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5h
TiIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7
IH0KKworZnVuY3Rpb24gc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGEsIGIpCit7CisgIHZhciB1bmV2
YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFjZSgvIi9nLCAiXCIiKSArICciJzsKKyAgc2hvdWxk
QmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQorCitmdW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgLy8gQSBnZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRvci4gICdh
Y3R1YWwnIHNob3VsZCBiZSBhIHN0cmluZyB0byBiZQorICAvLyBldmFsdWF0ZWQsIGFzIGZvciBz
aG91bGRCZSgpLiAnZXhwZWN0ZWQnIG1heSBiZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQorICAvLyB1
c2VkIHdpdGhvdXQgYmVpbmcgZXZhbCdlZC4KKyAgaWYgKGV4cGVjdGVkID09IG51bGwpIHsKKyAg
ICAvLyBEbyB0aGlzIGJlZm9yZSB0aGUgb2JqZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlw
ZSAnb2JqZWN0Jy4KKyAgICBzaG91bGRCZU51bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBl
b2YgZXhwZWN0ZWQgPT0gInVuZGVmaW5lZCIpIHsKKyAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1
YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7CisgICAg
Ly8gQWxsIHRoaXMgZnVzcyBpcyB0byBhdm9pZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5nIGZyb20g
c2hvdWxkQmUoKS4KKyAgICB0cnkgeworICAgICAgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgdGVzdEZhaWxlZCgiRXZhbHVhdGluZyAiICsgYWN0
dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAi
IikgKyAiJyIsCisgICAgICAgICAgICAgIiciICsgZXhwZWN0ZWQudG9TdHJpbmcoKS5yZXBsYWNl
KC9cbi9nLCAiIikgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAib2Jq
ZWN0IikgeworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwgKyAiID09ICciICsgZXhwZWN0ZWQgKyAi
JyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAic3RyaW5nIikgeworICAgIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9
PSAiYm9vbGVhbiIpIHsKKyAgICBzaG91bGRCZSgidHlwZW9mICIgKyBhY3R1YWwsICInYm9vbGVh
biciKTsKKyAgICBpZiAoZXhwZWN0ZWQpCisgICAgICBzaG91bGRCZVRydWUoYWN0dWFsKTsKKyAg
ICBlbHNlCisgICAgICBzaG91bGRCZUZhbHNlKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9m
IGV4cGVjdGVkID09ICJudW1iZXIiKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBzdHJpbmdpZnko
ZXhwZWN0ZWQpKTsKKyAgfSBlbHNlIHsKKyAgICBkZWJ1ZyhleHBlY3RlZCArICIgaXMgdW5rbm93
biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwsICIn
IiAgK2V4cGVjdGVkLnRvU3RyaW5nKCkgKyAiJyIpOworICB9Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZEJlTm9uWmVybyhfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsK
KyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0g
ZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IGJlIG5vbi16ZXJvLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYg
KF9hdiAhPSAwKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi16ZXJvLiIpOworICBlbHNl
CisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBXYXMgIiArIF9hdik7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9uTnVsbChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsK
KyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBUaHJldyBleGNlcHRpb24gIiArIGV4
Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPSBudWxsKQorICAgIHRlc3RQYXNzZWQoX2EgKyAi
IGlzIG5vbi1udWxsLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
IG5vbi1udWxsLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVW5kZWZpbmVk
KF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYg
PSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisK
KyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZp
bmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKHR5cGVvZiBf
YXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgdW5kZWZpbmVkLiIp
OworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2Fz
ICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZURlZmluZWQoX2EpCit7CisgIHZhciBl
eGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9
IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9u
KQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBUaHJldyBleGNlcHRp
b24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPT0gdW5kZWZpbmVkKQorICAgIHRl
c3RQYXNzZWQoX2EgKyAiIGlzIGRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9h
ICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91
bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpIHsKKyAgICBpZiAodHlwZW9mIF9hICE9ICJz
dHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworCisg
ICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9
IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAg
ICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmlu
ZWQiIHx8IF9hdiA8IF9idikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49
ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIp
LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgPj0gIiArIF9iKTsK
K30KKworZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2LCBtc2cpIHsKKyAgaWYgKHYpIHsKKyAgICB0ZXN0
UGFzc2VkKG1zZyk7CisgIH0gZWxzZSB7CisgICAgdGVzdEZhaWxlZChtc2cpOworICB9Cit9CisK
K2Z1bmN0aW9uIHNob3VsZFRocm93KF9hLCBfZSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIHZhciBfZXY7CisgIGlmIChfZSkKKyAgICAgIF9l
diA9ICBldmFsKF9lKTsKKworICBpZiAoZXhjZXB0aW9uKSB7CisgICAgaWYgKHR5cGVvZiBfZSA9
PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0gX2V2KQorICAgICAgdGVzdFBhc3NlZChfYSAr
ICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOworICAgIGVsc2UKKyAgICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZp
bmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhj
ZXB0aW9uICsgIi4iKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQor
ICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5k
ZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyB1bmRlZmluZWQuIik7Cisg
IGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2Ug
PT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiAr
ICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpIHsKKyAgICB2YXIg
ZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChf
YSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKwor
ICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKworICAgIGlmKF90eXBldiA9PT0gTnVtYmVy
KXsKKyAgICAgICAgaWYoX2F2IGluc3RhbmNlb2YgTnVtYmVyKXsKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9CisgICAg
ICAgIGVsc2UgaWYodHlwZW9mKF9hdikgPT09ICdudW1iZXInKXsKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9CisgICAg
ICAgIGVsc2V7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFu
Y2Ugb2YgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoX2F2IGluc3Rh
bmNlb2YgX3R5cGV2KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGFuIGluc3RhbmNl
IG9mICIgKyBfdHlwZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIg
aXMgbm90IGFuIGluc3RhbmNlIG9mICIgKyBfdHlwZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBh
c3NlcnRNc2coYXNzZXJ0aW9uLCBtc2cpIHsKKyAgICBpZiAoYXNzZXJ0aW9uKSB7CisgICAgICAg
IHRlc3RQYXNzZWQobXNnKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7
CisgICAgfQorfQorCitmdW5jdGlvbiBnYygpIHsKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxl
cikgeworICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmICh3aW5kb3cub3BlcmEgJiYgd2luZG93Lm9wZXJhLmNvbGxl
Y3QpIHsKKyAgICAgICAgd2luZG93Lm9wZXJhLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5RdWVyeUludGVyZmFjZShDb21wb25l
bnRzLmludGVyZmFjZXMubnNJSW50ZXJmYWNlUmVxdWVzdG9yKQorICAgICAgICAgICAgICAuZ2V0
SW50ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lET01XaW5kb3dVdGlscykKKyAgICAg
ICAgICAgICAgLmdhcmJhZ2VDb2xsZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGNhdGNo
KGUpIHt9CisKKyAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CisgICAgICAgIGlmIChuIDwgMSkKKyAg
ICAgICAgICAgIHJldHVybiB7fTsKKyAgICAgICAgdmFyIHRlbXAgPSB7aTogImFiIiArIGkgKyAo
aSAvIDEwMDAwMCl9OworICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICBnY1JlYyhuLTEp
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgZ2NS
ZWMoMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworICB2YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3Jp
cHQiKTsKKyAgdmFyIGJhc2VQYXRoID0gIiI7CisgIHZhciBleHBlY3RlZEJhc2UgPSAianMtdGVz
dC1wcmUuanMiOworICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdzY3JpcHQnKTsKKyAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2NyaXB0c1tp
XTsgaSsrKSB7CisgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgdmFyIGwgPSBzcmMubGVu
Z3RoOworICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9PSBleHBl
Y3RlZEJhc2UpIHsKKyAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhwZWN0ZWRC
YXNlLmxlbmd0aCk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXBpbG9ndWUuc3JjID0g
YmFzZVBhdGggKyAianMtdGVzdC1wb3N0LmpzIjsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlcGlsb2d1ZSk7Cit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
cmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBp
eGVsc0JhZEFyZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDE1NWVkNjFiZjUwMWJkZDNlNmQ3NmUwYTAz
MmZlNDMxYjA0NjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9u
cy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSIuLi91bml0LmNzcyIgLz4KKzxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD48Ym9keT4KKzxjYW52YXMgaWQ9Imds
IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iYyIgd2lkdGg9
IjEyOCIgaGVpZ2h0PSIxMjgiPjwvY2FudmFzPgorPGltZyBpZD0iaSI+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFy
IGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291
cmNlcy9vcGVuZ2xfbG9nby5qcGciOwordmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291
cmNlcy9vcGVuZ2xfbG9nby5qcGciOworCitUZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2
ZW50cyB0aGUgdGVzdCBmcm9tIHJ1bm5pbmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAorCitU
ZXN0cy5zdGFydFVuaXQgPSBmdW5jdGlvbiAoKSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRl
eHQoY2FudmFzKSk7CisgIHJldHVybiBbZ2xdOworfQorCitUZXN0cy50ZXN0UmVhZFBpeGVscyA9
IGZ1bmN0aW9uKGdsKSB7CisgIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBm
YWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUgd2lkdGgKKyAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVy
IHNpemUgZG9lc24ndCBtYXRjaCB0aGUgZGltZW5zaW9ucy4KKyAgYXNzZXJ0U29tZUdMRXJyb3Io
Z2wsICJuZWdhdGl2ZSB3aWR0aCIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCww
LC0xLDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJy
YXkoNCkpO30pOworICBhc3NlcnRTb21lR0xFcnJvcihnbCwgICJuZWdhdGl2ZSBoZWlnaHQiLAor
ICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLC0xLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKKyAgYXNzZXJ0T2so
Im5lZ2F0aXZlIHgiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKC0xLDAsMSwxLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9
KTsKKyAgYXNzZXJ0T2soIm5lZ2F0aXZlIHkiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4
ZWxzKDAsLTEsMSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBV
aW50OEFycmF5KDQpKTt9KTsKKyAgYXNzZXJ0T2soImhlaWdodCA+IGJhY2tidWZmZXIgaGVpZ2h0
IiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMTYsMTcsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMTYqMTcqNCkpO30pOwor
ICBhc3NlcnRPaygid2lkdGggPiBiYWNrYnVmZmVyIHdpZHRoIiwKKyAgICAgIGZ1bmN0aW9uKCl7
Z2wucmVhZFBpeGVscygwLDAsMTcsMTYsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAg
ICAgICAgbmV3IFVpbnQ4QXJyYXkoMTcqMTYqNCkpO30pOworICBhc3NlcnRPaygid2lkdGgsIGhl
aWdodCA9IDAiLAorICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwwLDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMCkpO30pOwor
ICAvLyB3ZSBjYW4ndCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5l
Z2F0aXZlIHdpZHRoCisgIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0
Y2ggdGhlIGRpbWVuc2lvbnMuCisgIGFzc2VydFNvbWVHTEVycm9yKGdsLCAiYmFkIGZvcm1hdCIs
CisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuRkxPQVQsIGdsLlVO
U0lHTkVEX0JZVEUsCisgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCo0KSk7fSk7CisgIC8vIHdl
IGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUg
d2lkdGgKKyAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBtYXRjaCB0aGUg
ZGltZW5zaW9ucy4KKyAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgdHlwZSIsCisgICAgICBm
dW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuQUxQSEEsIGdsLkZMT0FULAorICAg
ICAgICAgIG5ldyBVaW50OEFycmF5KDEqNCkpO30pOworfQorCitUZXN0cy50ZXN0UmVhZFBpeGVs
c1NPUElNRyA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpIik7CisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIC8vIFNPUCBmYWlsdXJlCisgICAg
YXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0aHJvdyBiZWNhdXNlIGltZyBpcyBmcm9tIGFub3Ro
ZXIgZG9tYWluIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJE
LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOworICAgIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOworICAgIGFzc2VydE9rKCJjYW52YXMg
c3RpbGwgb3JpZ2luLWNsZWFuIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAs
MSwxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgIG5ldyBVaW50OEFycmF5
KDQpKTt9KTsKKyAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Cit9CitUZXN0cy50ZXN0UmVhZFBp
eGVsc1NPUENhbnZhcyA9IGZ1bmN0aW9uKGdsKSB7CisgICAgdmFyIGltZyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpIik7CisgICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YyIpOworICAgIGMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgICBh
c3NlcnRGYWlsKCJjYW52YXMgdGhyb3dzIGJlY2F1c2Ugbm90IG9yaWdpbiBjbGVhbiIsCisgICAg
ICBmdW5jdGlvbigpe2MuZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMCwwLDEsMSk7fSk7
CisgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpOworICAgIC8vIFNPUCBmYWlsdXJlCisgICAgYXNzZXJ0VGhyb3dO
b0dMRXJyb3IoZ2wsICJ0aHJvdyBiZWNhdXNlIGNhbnZhcyBpcyBub3Qgb3JpZ2luIGNsZWFuIiwK
KyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKKyAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCBudWxsKTsKKyAgICBhc3NlcnRPaygiY2FudmFzIHN0aWxsIG9yaWdpbi1j
bGVhbiIsCisgICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwKKyAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7CisgICAg
Z2wuZGVsZXRlVGV4dHVyZSh0ZXgpOworfQorCitUZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wp
IHsKK307CisKKyhhc3luYyBmdW5jdGlvbigpIHsKKyAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2knKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQo
d3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwp
KTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAo
JHtlfSkuYCk7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorICBpbml0VGVz
dHMoKTsKK30pKCk7Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNjNzhkMTYzNTc1
NjVmZTY1MzhlZWJmZjlmN2YxMzE0YWUzZTkxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApAQCAtMCwwICsxLDE0OSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vdW5pdC5jc3MiIC8+Cis8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdW5pdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4vdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVu
dGl0eS1mbGlwLXZlcnQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMz
IFZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMyIFRleDsKKwordmFyeWluZyB2ZWM0IHRleENvb3JkMDsK
K3ZvaWQgbWFpbigpCit7CisgICAgdGV4Q29vcmQwID0gdmVjNChUZXgucywgMS4wLVRleC50LCAw
LjAsIDAuMCk7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKK30KKzwvc2Ny
aXB0PgorPHNjcmlwdCBpZD0iaWRlbnRpdHktaGZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIveC12
ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzMgVmVydGV4OworYXR0cmlidXRlIHZlYzIgVGV4OworCit2
YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhDb29yZDAgPSB2
ZWM0KDEuMC1UZXgucywgVGV4LnQsIDAuMCwgMC4wKTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQo
VmVydGV4LCAxLjApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0eS1mcmFnIiB0
eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1
bmlmb3JtIHNhbXBsZXIyRCBUZXh0dXJlOworCit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9p
ZCBtYWluKCkKK3sKKyAgICB2ZWM0IGMgPSB0ZXh0dXJlMkQoVGV4dHVyZSwgdGV4Q29vcmQwLnN0
KTsKKyAgICBnbF9GcmFnQ29sb3IgPSBjOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Cis8Y2Fu
dmFzIGlkPSJjIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PC9jYW52YXM+Cis8aW1nIGlkPSJp
IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlW
Qk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFBQUVBQ0FZQUFBQmNjcWhtQUFBVFZFbEVRVlI0bk8z
ZCtWUFVkNTdIY2YyYjlrOVkrejQ0K3FLN09ab0dGVkE1VmZCR3phaDljeHBOekdFT29SdWE1bEJF
dWUvREs0Zlo3TWFwbVNtM01sc2h1OHhPZENwREp0M3YvYUVCQVVIQU9NRzR6MGZWNTNmcVUvVjZm
ZDdmVC9lMzJiRURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdPdkJrYXI3bCszK0d3QnNrOHhVclQw
clRiOHZ4MlE0NWphbmx1N1lzV1Buc2dYZ1RlWXdhazg1VTNYdjVaaU0zK1hiVWgvbDJkSUNCYzYw
ODBXWjF1cjkyYmFTSFJRQjhHYXlHZFVXdTFIem9TTkZPK1pNMWYyY2JUTE01MWxUNXdvYzVya0RP
YmJaL1ZtMlNFbTIzVnZzeWpoVjVuSlFCc0NieEdaUVZ0bU42cDRNby9ZUGRxTkdIS2xheVVyWEo5
eldsRVNoMHhJdnpzbVlMM0haNTRwek1tNlZ1UnlSTXBmVFcrcHlVQWJBbThCbVZOVm5HTlRUZHFQ
NnZ6T01HckduYU1TWnFwTnNrMTd5YktsUzZEVEwvaXhib3RSbGo1ZmxPdWJMM0k2NU1wZmpWcm5i
RWFsWUtJTlNsMzM1dlFHQTN3S2JVVzJ4R2RXUkRLUDY2d3lqV2hZTHdKR2lGV2VhVHJKTkJuRmJV
MlNQM1NUN3M2eFNtbXVYY3JjelVlNTJ4c3R6SGZQbGJzZGN1ZHQ1cXl6WDNsS1dseGtzelhHZUs4
bXhueXpKeVNqZVFSa0FyemViUVZsbE02cDdiVWIxNDlVRjRFalZTbWFhVHJMUzllS3lwTWdlZTdv
Y3lMWkptZHNoRlhtWlVwSG5YRkVHQi9PekpzcmRqcUV5dC9ObVdhNDlYSmJ0OUphNk1rNFZ1N2hF
QkY1TE5yMnEzbVpRejlnTTZ1OVhGRUJxc2dDY2FUckpYSmdFY2kwcHN0ZGhrdjNaTmluTlRaYkFv
ZndzT1pTZkpRZnpNcVU4ejVrb2R6c1NaYm1PZUlYYitYVzUyekZhNW5MY0tuUFpJMlVMbDRqRmZL
SUF2QjdNT3JYRlpsQkhiQWIxMXphaitrbUdVYk51QVdTbTY1ZEtZSGRHbWhSbFdxUTh6eUZIQ25M
aytMNWNPVjZVSzBjS1hWSzVKMXNPNW1kS2hkc3BaYXZLb0RUWDBWUGljaVRMSUh0RkdWQUl3Sy9O
WWxCVzJmVHFYcHRCL2RobVNKNytMeXFBckhTOTVKaVRKVkRnTkVsbFFaWjRLZ3VscnJwVTZxdExK
WEJzdjV3dDN5TW45cnZsYUlGTERpOHZnMXhING1CKzVwK1dsMEZwanIybEpNY1JMTTZ5bnl2T3pq
aHhJSXQ3QStCWFk5R3I2cTBMNC85U0FhUm94TDd3L0w5V0FXU2JESkpyVFpGaWQ0WjRqeFpKVS8x
eHVmSGhPZW0rZWs2aWwwL0xCNzRxYVR4VEpvR2orK1ZzMlI0NXZqOVhqaFRreU9IZEM0OEpDMlZ3
YUhmbW55cmN6bit2Y0RzbXluTHRReVU1R1RlTGN6TENwVGsyVDNHVzdWaHhWc2FlN2Q0ZjRJMWwx
cWt0Vm9NNllqT292cllhMUQ4c0ZvQjlXUUU0MTVrQTh1MXBjdlJBam53VU9pTERMUUc1MTkwbzky
NDJ5bFJIblF5Ry9YTHo2bm1KWHFxV0QzeVYwbkM2VlB4SDk4blpzdDF5ZkYrdUhDMTBTZFhlYkRt
VW55eURxb0xzN3c3bFozNWI3bmI4c2N4dC83ZFNsMzJrSkNlanF5UW40MHBKVGtiWkRpWUM0Tld6
YUpWVlZyMnExMlpRUGJZYTFIOWZ1d0IwU3dXUWxhNlhMRk95QUFveVRmTFc0VDNTZnVXTTNMM1JJ
QS83TDh2RC9zdnlaZThsK2V6VzIzS3Z1MUVtTzJwbG9Oa24zVmZQU2V2YjFmSyt0MUlhejVSSjdj
bGk4UjBwa3RPbCtYS3NLRmtHQnhmS29ISnYxbDhQNW1mK3VTTFA4ZnZ5WE1kTW1kc1JLWGM1cW90
ZEdRWGJ2Vi9BRzhXaVY5VmI5YW9acTE0MWF6T294V2JjWEFIa1dsT2tKQzlEYWs4WHk2MVBMOGlE
bm90TEJiQlVCSDJYNVl2YmwrUkJ6MFc1ZTZOQkp0cHJwTC9aSnpjL09pL1hQM2hMV2k2ZWt2Yzho
Nld1dWtTOFZjL0tZUEVDOFdoaHpwT3FndXp2S3ZkbWZYVjRkMmIzd2Z6TTl3L2xaVEVOQUsrQ1dh
ZXdXSFdxaUUydit0cXFWLzJ3MlFMSU5oa2tQMk5oL0s4OUltTnRJZm1pOTlLejhQY2wxNWRMNjVK
ODBYdEpQci8xdHR5LzJTaDN1eHZrenZWNkdZK0ZwTythVjY1LzhEdUpYRHdwVnp5SHBPN1VRaG1V
NU12UklwZFU3YzJSUTd1ejVNUis5eCtPRmJudUhpM01pVlFWdUtvUDc4NHUydTc5QTM3VExGcGxs
VlduNnJYcVZZK3RldFdQR3hiQXNndkF2VTZUdkhWb3Q4U3VuSlk3TitybHk3NjFnLzlsYjNKOXNX
eDlmdnVTZkg3N2JYblFjMUh1ZFRmSVRGZWRqTFdGcFBlYVI3bytlRXZDalNmbHlvVkRVbGRkS3NI
akIrVEM0VUk1Vlp3blZRVTVpYmNxOW54MXVqUy81OFFCOTlYcVluZjVEcVlCNE9WWWRNL0dmNnRl
OVkvazgvL0dCZUN5R0tYRW5TRTExUWVrNTVQemN2OW00OHJRcnhQOEwyNWZraTl1dnkyZnIxcWYz
YnFZbkF4dU5NaDBaNTJNUklOeSsxT1BYUC93ZDlKKzVZdzAxNStRZDg0ZmxKcVR4WExoY0lHY0xN
NzcrVWhCenQ4dVZCYTJucXZjZS9ac3haNnk3ZDVMNERkbGNmeTM2RlZmVy9TcUg2d0dsYXd1Z01X
dkFUdlRsaFdBeVNCNUdhbHlkSCtPZkZSelJFYWpRZm44MXR2cmgvNkZ3VjljRitXeld4Zmx3YTJM
Y3Ivbm90enJicFNaNi9VeTFWVW5reDIxTXR3U2tKNVBMa2pIZTJlbHFmNjRYRDUzVUVJbkRpUXVI
QzZZcnk3T216MVc1SHJZK0ZiRjRSMU1BOERtV0xUS0tzdXk4ZDlxVUwrd0FKWi9DM0NQTTEzT0h0
d3RiZStlbHVucjlmTEZ1c0YvUHZTZjMxbzcrQTk2bnEzN1BSZmxmaytqM0wrWi9Gang3bzBHbWU2
cWs0bjJHaGxxOFV2UHgrZWwvY29adVZaM1hDNmZxL2k1N2xUeDMycE9IbmdVT2xVYy9qUjRsRXRD
WUNNV25hcmVvbGZOV1BTcVdhdEI5ZE9hQmJER2w0QmNGcU1VdTIwU09uVkFibjU4VHU1Mk4yN3F0
UDk4ZzlBL1dBejlRdkFYMTczRkV1aHVrTHZkRGNuSm9MTld4bU0xTWhqeHk4MlB6a25uKzJjU3NY
ZFB6NGNiVDh4K0dLaDgrRkh3U08wT1NnQlltMW1uc0poMXFvaEZyMXdZLzVYeFp3V3cvdGVBczlL
VHZ3dHdaSCsyWEExVnlYQnJVQjcwWEZ6L3RGOW56TjlLOE85MU44aTloZkF2cmpzM0d1VE9qWHFa
WG5oRUdHK3ZrZEZvVUFiRC9wOTdQajcvdDU2cjU3L3B1K2I1cE9YZDZxUGJ2ZGZBYThlaTNWVmww
YWw2TFhybFk0dE8rYU5GcjBwc3RnRDJPTkxsek1IZEVuMm5XcVk2NitTemx4enpIeXdiODU4TC9U
ckJ2M3ZqV2ZnWDE4ejE1SnJ1cXBPcHpscVphQThseG1LaHY0OUdnMy9vRC9zKzN1NjlCbDQ3RnAy
aTNxSlZ6VmgweWxtclR2bVRWWis4QUZ6NUhzRHpCWkJqTmtweHJrMkNwdzVJOTBmbjVNNk5oaGVl
OWxzT2Z2Zm1nMy9uK3JQd3oxeXZrNW11T3BsZVdKTWR0ZkhKanBydkpqdHFLQUJndWVUNHI0aVlk
Y3F2emJwZFAxajB5dmpxQXJDdjlTSlF1bDdjdGxTcDJwY3RId1lyWmFnbElQZHZOcTUvMnIvZ1lt
OVR3Yit4OWVCUGQ5WEpWSElTbUovcXJQMW11ck9HUndCZ09aTjJWNVZGcCt5MWFCZkdmNTB5c1ZR
QWEzd0hZTEVBc3RMMXN0dVJMcWNyOHFYMThpbVo3S2lWQnowWFh4ajZqWi92TnhuODZ4c0hQL2tJ
VUNkVG5YWHg2YzdhdjB4MTFQUnM5MTREcngyVFRsRnYwaXBtekRybHJFV24vTW1pVjhsbUNpRGJi
SkFEdVRZSm50d3ZONjcrVG1hdTF5ZER2bWJvdDM2eDl5ejQ5UzhaL05yRk5UL2RWZnY3cWM2Nms5
dTkxOEJyeGF4ZVBmNHI0aHNWZ0hQaDl3QnpyU2xTVlpRdEh3UXFaVERpbDd2ZGpWczc3YmNZL0pt
dEIxK21PbXNUa3gyMVQ2YTZha2UyZTYrQjE0NUp1NnZLcEZQMm1yVEt4MmJ0cy9GLzhWdUFMeXFB
M2ZZME9WMmVMeTJYVHNwRWU0M2NmOEd6L1RZRVh5WTdhbVd5b3lZKzFWSHovVlJuWGZOMjd6WHcy
bGthLzdYS1dZdFcrWk5GcDVUTkZFQzJ5U0Q3WFZZSm5OZ25YUisrSmROZGRacys3WCtkNE5mS1pF
ZU5USGJVekU5MjFEeWE1UElQV0NsTnJiQ1l0Y254MzZUZDlZTlpwNGhiZEtxTkMyQmgvSzhzekpM
My9ZZGxJT3lUT3pjYXR2d3gzc1kzK3I4bytETFpFVXBNdE5jOG1laGcvQWVlWTFMdnFqSnBsYjBt
amVLeFdhdjQwYXhWSmxZWHdGcHZBbWFtNlNUZm5pYlZaWGtTZWZ1a2pNVkNjcmQ3RXlQK2VxZjls
b0pmdTJId0p6cHFaS0s5UnNiYlEvSEo5dEQzazUwMWpQL0FhaWFOb3Q2a1NZNy9acTNpSjdOT0tZ
c1hnQzhxZ0N5VFFmYmxXTVYvZko5MGZuQldKanRyVjR6M1d6bnRuN3ZSdi81ODZMY2EvR2NyTkQv
UkhubzAyYzc0RDZ5UXBsWllURnBGeEtSVkxJMy9Ld3ZnK1JlQjdDbkozd0Z3V1ZMa2NHR1d2T2Mv
TFAzTlhwbTVYdi9MVC90TkJuOXlFOEVmVDRZL01SNExQUmx2RHpIK0E2dVpOWXBLazNaWGIvckMr
Ry9TS2hLYkxZQzhqRFE1VlpZbjRZc25aTFF0S0hkdWJDNzBteDN6ZjBud3g5dERNaDRMeVZnc0ZC
K1BCYjhmYjJmOEI1NlRybEhVcDJzVjB5YU5ZbW44MzB3QlpLWHJaVisyUlh6SDkwbkgrMmRsb3FN
bVdRQ3Y0TFIvK2VDSGxvSy9FSDRaandYbngyUEJSMlB0UWNaL1lEbVRScG1hcmxZMG1UUzd2a3JU
S1A1cTBpcCtOdXVVWXRtZ0FCeXBXbkZaakhLb0lGT3VlQTlKWDVOSHBydnFOaDM2elo3MnZ5VDRD
K0ZQakxZRm40ekhnb3ovd0dvbXphN2Q2WnBkTVpORzhZMUpvM2hpMWk0OC8yK2lBUEl5VXVWa3FW
dWFHay9JU0RRb005ZGYzV20vTXZnMVd3NytXQ3drWTIxQkdXMEx4a2ZiZ3QrUHhVS00vOEJxYVpw
ZHU5UFVpaWFUUnZHVlNhdjR5OUluQUJzVVFHYTZYb3F5TGVJOVZpVHQ3NTJSOGZiUXFzQy80dE4r
aThFZmF3dkthRFFvSTlIQS9HaGI4SnV4S09NLzhCeVQ1bDlUMDlTS1FMcEdNV1RTS3Y3VHJGVThO
ZXVVaWVVRllGdjFZeUNPVksza21KUGovN3ZlZzlKN3pTTlRuYld2NkxSL0JjRmZXQ1BSUUh3a0d2
akxTRFRBbTMvQWV0TFZ5anlUUnZtT1NhdVlOT3NVMzVwMXluOXNWQUJ1VzZxY0xNMlZhdzNIWmJn
MUlOTmRyK2EwWC9zei9LMEZmelFhbE5Gb0lIbjZSd08vSDJrTDh1WWY4Q0ltemE1Q2syN1hlMmF0
Y3NxaVU4YlhMWUFValdTbTY2UXd5eXplWTRVU3UzSmF4bUtodFVQL2kwLzdtaFdoWHhIOHR2V0NI
NVNSYUVCR280SEVTS3YveVdocmdNcy9ZRFBTZGNvaXMxYnh2a1duZkdyUksrTnJGWUE5UlN2Wlpv
TWMzT3VVZHp3SDVmYTFDekxSVWZOUFBlM0gxemp0MXd2KzRocHVEY1JIb29IdlI2SUJMditBelRM
cmxFVm1uZktoUmFkOGFsM3o1OEMwNHJhbHlJbVNYTG5XY0V5R1d2MHkyVmtyVTEzUGgvNmxUdnNO
Z2orNlFmQkhXZ015M0JxUTRWYi8vSEJyNE5GSTFNL2xIN0FWRnIwcVlOR3JIbHIxcXFjMmd5cSsv
RTFBWjVwT0NyTk00amxhSUcxWFRzdG9XL0NmZDlxL1ZQQURNdHpxVHd5MytKOE1NLzRETDJYbmlo
SXdxdUkybzFyc0tSckpOaG1rWXE5RExsK29rRnVmbkpmeDlwcG5vVi92Yy91dG52YXhOY2I4VFFV
L0lNT3RmaGxxOGNlSFcvemZEMGNERjdaN0k0SGZxcDAydlNwZzA2c2UyZ3pxcHhsR1RkeWVvcEZj
YTRvY0wzSEpwL1ZIWlREaWs0bU96WTM0TDMzYWIrN0VYd3ord3ZMTkQ3Y0VibzIwQmpLM2V4T0Iz
N0tkTnFNNllET29IMllZMVUrZGFicDRRYVpKTGh6Wks5RjNxMlVrR3BDSkRVLzcwS3M3N1RjTXZs
K0dXbnlKd1lqdnlWQkw0SjN0M2p6Z1RiRFRabFFITW95YWg5bG0vZE9LUGM3NHBmUGwwdlB4T1Jt
TGhYNmQwMzVUd1Y5WUVWOThzTVUvTlJEbThnOTRWWGJhVTdVQmw4WDQ4RVNKNitrbjlVZCtIZ2g3
RXVQdG9WZHoycmR0SnZRdkR2NWd4TGV3dkg4Y2lIZzdobG9DbHUzZU5PQk5zdE50U3czNGp4Yzli
SDJuZW5hb3hUYzMzaDZhSDR1RjR1UHR3Y1I0OG4vdS9STk8rODBHM3lkREVkLy9ESVI5OXdiQ3Zz
YnQzaXpnVGJUemFxZ3kwUFB4dWZCSU5CQWJidzg5R28rRlpzZGpvYm54OXREY2FDdzRQOW9Xakkv
RmdvbXhXQ0F4K2dwTysrRzF4dnhWd1IrTStHUXc3UDF4TU94N1BCajI5ZlpIdkZYYnZWSEFtMnJu
NHByc3JLa2Q2d2lGUjl0RHNmSDJtdGhJTFBSb3JDMDRPOVlXbWh1TmhlWkcyd0x6STlGZ2ZMUXRr
QmlOQmhMUGhmNFhuUGFMYXlEaWs0R3dUd2JDM3Y4ZGFQWStISWo0UHVwdjlqTCtBNytDbmN2WGVI
dE43V2dzR0I2TmhXS2pzVkJzSkJwOE5Cb056bzVFQTNNTGEzNjROUkFmYWZVbmhwUHI1VTc3bGNH
WGdiRDM3d05oejUvN203MGpBMkhQbVczZUUrRC9yWldGMEJhc0hXNExoa2VpZ2RoSUxCUWJiZzA4
R200TnpBNjMrT2VHVy94elE2MysrYUVXZjN5b3haZElybVdoYjNrKzlJTkxvVjhLdnZRM2UrTUR6
ZDRmK3BzOS85RWY5cllOUkh5T2JkNERBQXRXRk1Kb1c3QjJ1RFVZSG9vR1lrUFJRR3lveGY5b3FN
VTNPeFR4elExRmZITkRMYjc1b1lndlBoanhKcFpXZU8zZ0o4UHZTZlEzZVg4YUNIdG4rNXU5TTMz
TlhQNEJyN01WaFREY0dxZ2RidldIQjF2OXNjRldmMnd3NG44MEdQSE5Eb2E5YzRNUjM5eGcyRHMz
RVBiT0Q0Uzk4WUd3SnpFUTlpVDZtNzNTMyt5VnZtYlBmSCt6Wjc2dnlmTzB2OW43cDc1bWIyOS9N
NWQvd0cvSmM0VXcxT0lQOTBmOHNjR0lQOVlmOGNjR3dyNUhBMkh2N0VDemQyNmcyVHZYbHd4OXZL
L1o4MjEvcytlLytwbzgzL1kzZVQ3cmEvWTBjZmtIL0xidFhMMkdXbnkxQTJGZnVDL3NqZldIdmJI
K1pzK2p2ckQzWm0rVFo2aTN5VFBXMSt5WjdHdnlYTzlyOXZpMzkwOEg4TSt3b2hCNm03eGx0Njk1
VHc2RWZlY0d3MTVmZjVQbm5iNW1UNkQzMm9VRDIveDNBdmdWN2R5eFk4Zk9nU2F2dTcvSms5VjN6
YXZlN2o4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNWL2c5dFBKRVF1MVh2bVFBQUFBQkpSVTVFcmtK
Z2dnPT0iPgorPGltZyBpZD0iaTIiPgorCis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwordmFyIGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1h
bmNlLXJlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0eDY0LnBuZyI7Cit2YXIgbG9jYWxJbWdV
cmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nIjsKKwor
VGVzdHMuYXV0b2luaXQgPSBmYWxzZTsgLy8gUHJldmVudHMgdGhlIHRlc3QgZnJvbSBydW5uaW5n
IHVudGlsIHRoZSBpbWFnZSBpcyBsb2FkZWQKKworVGVzdHMuc3RhcnRVbml0ID0gZnVuY3Rpb24g
KCkgeworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAg
ICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29udGV4dChjYW52YXMpKTsKKyAgICBnbC52
aWV3cG9ydCgwLDAsY2FudmFzLndpZHRoLGNhbnZhcy5oZWlnaHQpOworICAgIGdsLmNsZWFyQ29s
b3IoMCwwLDEsMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOworICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7CisgICAgcmV0dXJu
IFtnbF07Cit9CisKK1Rlc3RzLnNldHVwID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIgdGV4ID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eCk7CisgICAgdmFyIHRleEN1YmVNYXAgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgdGV4Q3ViZU1hcCk7CisgICAgcmV0dXJuIFtn
bF0KK30KKworVGVzdHMudGVhcmRvd24gPSBmdW5jdGlvbihnbCwgdGV4LCB0ZXhDdWJlTWFwKSB7
CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgZ2wuZGVsZXRl
VGV4dHVyZSh0ZXgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIG51
bGwpOworICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4Q3ViZU1hcCk7Cit9CisKK1Rlc3RzLnRlc3RU
ZXhJbWFnZTJEID0gZnVuY3Rpb24oZ2wpIHsKKyAgICBnbC5lbmFibGUoZ2wuQkxFTkQpOworICAg
IHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScpOworICAgIHZhciBjID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKKyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcy
ZCcpOworICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7CisgICAgZ2wudGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOwor
ICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGds
LkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5M
SU5FQVIpOworICAgIHZhciBmID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5LWZsaXAtdmVydCcs
ICdpZGVudGl0eS1mcmFnJyk7CisgICAgZ2wuYmxlbmRGdW5jKGdsLk9ORSwgZ2wuWkVSTyk7Cisg
ICAgZi5hcHBseSgpOworICAgIGYuZGVzdHJveSgpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7CisgICAg
ZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVudGl0eS1oZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcn
KTsKKyAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhB
KTsKKyAgICBmLmFwcGx5KCk7CisgICAgZi5kZXN0cm95KCk7CisgICAgdmFyIHZhbGlkX3Rhcmdl
dHMgPSBbCisgICAgICAgIGdsLlRFWFRVUkVfMkQsCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9N
QVBfUE9TSVRJVkVfWCwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YLAor
ICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ksCisgICAgICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSwKKyAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9aLAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oKKyAgICBdOwor
ICAgIHZhbGlkX3RhcmdldHMuZm9yRWFjaChmdW5jdGlvbih0KSB7CisgICAgICAgIGFzc2VydE9r
KGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBjKTt9KTsKKyAgICAgICAgYXNzZXJ0T2soZnVuY3Rpb24oKXtnbC50ZXhJbWFn
ZTJEKHQsIDEsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOworICAg
IH0pOworfQorCitUZXN0cy50ZXN0VGV4SW1hZ2UyRE5vblNPUCA9IGZ1bmN0aW9uKGdsKSB7Cisg
ICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOworICAgIHZhciBjID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTsKKyAgICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0
KCcyZCcpOworICAgIGN0eC5kcmF3SW1hZ2UoaW1nLDAsMCk7CisgICAgYXNzZXJ0VGhyb3dOb0dM
RXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJv
dyBleGNlcHRpb24uIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOworICAg
IGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGRpcnR5IG9yaWdpbiBj
YW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIGMpO30pOworfQorCitUZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wpIHsKK307CisKKyhh
c3luYyBmdW5jdGlvbigpIHsKKyAgICBjb25zdCBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaTInKTsKKyAgICB0cnkgeworICAgICAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1
LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsK
KyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxl
ZCAoJHtlfSkuYCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpbml0VGVzdHMoKTsKK30pKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZjhlYzJhYTA5N2IxZmQzMTRlODE3NWM3MTVhYzNiZWYwMTY2ZjM4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRN
TC5odG1sCkBAIC0wLDAgKzEsMTYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorLS0+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSIuLi91bml0LmNzcyIgLz4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCIg
c3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2
YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImlkZW50aXR5LWZsaXAtdmVydCIgdHlwZT0ieC1zaGFkZXIv
eC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzMgVmVydGV4OworYXR0cmlidXRlIHZlYzIgVGV4Owor
Cit2YXJ5aW5nIHZlYzQgdGV4Q29vcmQwOwordm9pZCBtYWluKCkKK3sKKyAgICB0ZXhDb29yZDAg
PSB2ZWM0KFRleC5zLCAxLjAtVGV4LnQsIDAuMCwgMC4wKTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZl
YzQoVmVydGV4LCAxLjApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJpZGVudGl0eS1oZmxp
cC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7
CithdHRyaWJ1dGUgdmVjMiBUZXg7CisKK3ZhcnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1h
aW4oKQoreworICAgIHRleENvb3JkMCA9IHZlYzQoMS4wLVRleC5zLCBUZXgudCwgMC4wLCAwLjAp
OworICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEuMCk7Cit9Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgaWQ9ImlkZW50aXR5LWZyYWciIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZvcm0gc2FtcGxlcjJEIFRleHR1cmU7CisKK3Zh
cnlpbmcgdmVjNCB0ZXhDb29yZDA7Cit2b2lkIG1haW4oKQoreworICAgIHZlYzQgYyA9IHRleHR1
cmUyRChUZXh0dXJlLCB0ZXhDb29yZDAuc3QpOworICAgIGdsX0ZyYWdDb2xvciA9IGM7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD48Ym9keT4KKzxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMjU2IiBoZWln
aHQ9IjI1NiI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJjIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1
NiI+PC9jYW52YXM+Cis8aW1nIGlkPSJpIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgIHNyYz0i
ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFBQUVBQ0FZ
QUFBQmNjcWhtQUFBVFZFbEVRVlI0bk8zZCtWUFVkNTdIY2YyYjlrOVkrejQ0K3FLN09ab0dGVkE1
VmZCR3phaDljeHBOekdFT29SdWE1bEJFdWUvREs0Zlo3TWFwbVNtM01sc2h1OHhPZENwREp0M3Yv
YUVCQVVIQU9NRzR6MGZWNTNmcVUvVjZmZDdmVC9lMzJiRURBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QXdPdkJrYXI3bCszK0d3QnNrOHhVclQwclRiOHZ4MlE0NWphbmx1N1lzV1Buc2dYZ1RlWXdhazg1
VTNYdjVaaU0zK1hiVWgvbDJkSUNCYzYwODBXWjF1cjkyYmFTSFJRQjhHYXlHZFVXdTFIem9TTkZP
K1pNMWYyY2JUTE01MWxUNXdvYzVya0RPYmJaL1ZtMlNFbTIzVnZzeWpoVjVuSlFCc0NieEdaUVZ0
bU42cDRNby9ZUGRxTkdIS2xheVVyWEo5eldsRVNoMHhJdnpzbVlMM0haNTRwek1tNlZ1UnlSTXBm
VFcrcHlVQWJBbThCbVZOVm5HTlRUZHFQNnZ6T01HckduYU1TWnFwTnNrMTd5YktsUzZEVEwvaXhi
b3RSbGo1ZmxPdWJMM0k2NU1wZmpWcm5iRWFsWUtJTlNsMzM1dlFHQTN3S2JVVzJ4R2RXUkRLUDY2
d3lqV2hZTHdKR2lGV2VhVHJKTkJuRmJVMlNQM1NUN3M2eFNtbXVYY3JjelVlNTJ4c3R6SGZQbGJz
ZGN1ZHQ1cXl6WDNsS1dseGtzelhHZUs4bXhueXpKeVNqZVFSa0FyemViUVZsbE02cDdiVWIxNDlV
RjRFalZTbWFhVHJMUzllS3lwTWdlZTdvY3lMWkptZHNoRlhtWlVwSG5YRkVHQi9PekpzcmRqcUV5
dC9ObVdhNDlYSmJ0OUphNk1rNFZ1N2hFQkY1TE5yMnEzbVpRejlnTTZ1OVhGRUJxc2dDY2FUckpY
SmdFY2kwcHN0ZGhrdjNaTmluTlRaYkFvZndzT1pTZkpRZnpNcVU4ejVrb2R6c1NaYm1PZUlYYitY
VzUyekZhNW5MY0tuUFpJMlVMbDRqRmZLSUF2QjdNT3JYRlpsQkhiQWIxMXphaitrbUdVYk51QVdT
bTY1ZEtZSGRHbWhSbFdxUTh6eUZIQ25MaytMNWNPVjZVSzBjS1hWSzVKMXNPNW1kS2hkc3BaYXZL
b0RUWDBWUGljaVRMSUh0RkdWQUl3Sy9OWWxCVzJmVHFYcHRCL2RobVNKNytMeXFBckhTOTVKaVRK
VkRnTkVsbFFaWjRLZ3VscnJwVTZxdExKWEJzdjV3dDN5TW45cnZsYUlGTERpOHZnMXhING1CKzVw
K1dsMEZwanIybEpNY1JMTTZ5bnl2T3pqaHhJSXQ3QStCWFk5R3I2cTBMNC85U0FhUm94TDd3L0w5
V0FXU2JESkpyVFpGaWQ0WjRqeFpKVS8xeHVmSGhPZW0rZWs2aWwwL0xCNzRxYVR4VEpvR2orK1Zz
MlI0NXZqOVhqaFRreU9IZEM0OEpDMlZ3YUhmbW55cmN6bit2Y0RzbXluTHRReVU1R1RlTGN6TENw
VGsyVDNHVzdWaHhWc2FlN2Q0ZjRJMWwxcWt0Vm9NNllqT292cllhMUQ4c0ZvQjlXUUU0MTVrQTh1
MXBjdlJBam53VU9pTERMUUc1MTkwbzkyNDJ5bFJIblF5Ry9YTHo2bm1KWHFxV0QzeVYwbkM2VlB4
SDk4blpzdDF5ZkYrdUhDMTBTZFhlYkRtVW55eURxb0xzN3c3bFozNWI3bmI4c2N4dC83ZFNsMzJr
SkNlanF5UW40MHBKVGtiWkRpWUM0Tld6YUpWVlZyMnExMlpRUGJZYTFIOWZ1d0IwU3dXUWxhNlhM
Rk95QUFveVRmTFc0VDNTZnVXTTNMM1JJQS83TDh2RC9zdnlaZThsK2V6VzIzS3Z1MUVtTzJwbG9O
a24zVmZQU2V2YjFmSyt0MUlhejVSSjdjbGk4UjBwa3RPbCtYS3NLRmtHQnhmS29ISnYxbDhQNW1m
K3VTTFA4ZnZ5WE1kTW1kc1JLWGM1cW90ZEdRWGJ2Vi9BRzhXaVY5VmI5YW9acTE0MWF6T294V2Jj
WEFIa1dsT2tKQzlEYWs4WHk2MVBMOGlEbm90TEJiQlVCSDJYNVl2YmwrUkJ6MFc1ZTZOQkp0cHJw
TC9aSnpjL09pL1hQM2hMV2k2ZWt2YzhoNld1dWtTOFZjL0tZUEVDOFdoaHpwT3FndXp2S3ZkbWZY
VjRkMmIzd2Z6TTl3L2xaVEVOQUsrQ1dhZXdXSFdxaUUydit0cXFWLzJ3MlFMSU5oa2tQMk5oL0s4
OUltTnRJZm1pOTlLejhQY2wxNWRMNjVKODBYdEpQci8xdHR5LzJTaDN1eHZrenZWNkdZK0ZwTyth
VjY1LzhEdUpYRHdwVnp5SHBPN1VRaG1VNU12UklwZFU3YzJSUTd1ejVNUis5eCtPRmJudUhpM01p
VlFWdUtvUDc4NHUydTc5QTM3VExGcGxsVlduNnJYcVZZK3RldFdQR3hiQXNndkF2VTZUdkhWb3Q4
U3VuSlk3TitybHk3NjFnLzlsYjNKOXNXeDlmdnVTZkg3N2JYblFjMUh1ZFRmSVRGZWRqTFdGcFBl
YVI3bytlRXZDalNmbHlvVkRVbGRkS3NIakIrVEM0VUk1Vlp3blZRVTVpYmNxOW54MXVqUy81OFFC
OTlYcVluZjVEcVlCNE9WWWRNL0dmNnRlOVkvazgvL0dCZUN5R0tYRW5TRTExUWVrNTVQemN2OW00
OHJRcnhQOEwyNWZraTl1dnkyZnIxcWYzYnFZbkF4dU5NaDBaNTJNUklOeSsxT1BYUC93ZDlKKzVZ
dzAxNStRZDg0ZmxKcVR4WExoY0lHY0xNNzcrVWhCenQ4dVZCYTJucXZjZS9ac3haNnk3ZDVMNERk
bGNmeTM2RlZmVy9TcUg2d0dsYXd1Z01XdkFUdlRsaFdBeVNCNUdhbHlkSCtPZkZSelJFYWpRZm44
MXR2cmgvNkZ3VjljRitXeld4Zmx3YTJMY3Ivbm90enJicFNaNi9VeTFWVW5reDIxTXR3U2tKNVBM
a2pIZTJlbHFmNjRYRDUzVUVJbkRpUXVIQzZZcnk3T216MVc1SHJZK0ZiRjRSMU1BOERtV0xUS0tz
dXk4ZDlxVUwrd0FKWi9DM0NQTTEzT0h0d3RiZStlbHVucjlmTEZ1c0YvUHZTZjMxbzcrQTk2bnEz
N1BSZmxmaytqM0wrWi9Gang3bzBHbWU2cWs0bjJHaGxxOFV2UHgrZWwvY29adVZaM1hDNmZxL2k1
N2xUeDMycE9IbmdVT2xVYy9qUjRsRXRDWUNNV25hcmVvbGZOV1BTcVdhdEI5ZE9hQmJER2w0QmNG
cU1VdTIwU09uVkFibjU4VHU1Mk4yN3F0UDk4ZzlBL1dBejlRdkFYMTczRkV1aHVrTHZkRGNuSm9M
Tld4bU0xTWhqeHk4MlB6a25uKzJjU3NYZFB6NGNiVDh4K0dLaDgrRkh3U08wT1NnQlltMW1uc0po
MXFvaEZyMXdZLzVYeFp3V3cvdGVBczlLVHZ3dHdaSCsyWEExVnlYQnJVQjcwWEZ6L3RGOW56TjlL
OE85MU44aTloZkF2cmpzM0d1VE9qWHFaWG5oRUdHK3ZrZEZvVUFiRC9wOTdQajcvdDU2cjU3L3B1
K2I1cE9YZDZxUGJ2ZGZBYThlaTNWVmwwYWw2TFhybFk0dE8rYU5GcjBwc3RnRDJPTkxsek1IZEVu
Mm5XcVk2NitTemx4enpIeXdiODU4TC9UckJ2M3ZqV2ZnWDE4ejE1SnJ1cXBPcHpscVphQThseG1L
aHY0OUdnMy9vRC9zKzN1NjlCbDQ3RnAyaTNxSlZ6VmgweWxtclR2bVRWWis4QUZ6NUhzRHpCWkJq
TmtweHJrMkNwdzVJOTBmbjVNNk5oaGVlOWxzT2Z2Zm1nMy9uK3JQd3oxeXZrNW11T3BsZVdKTWR0
ZkhKanBydkpqdHFLQUJndWVUNHI0aVlkY3F2emJwZFAxajB5dmpxQXJDdjlTSlF1bDdjdGxTcDJw
Y3RId1lyWmFnbElQZHZOcTUvMnIvZ1ltOVR3Yit4OWVCUGQ5WEpWSElTbUovcXJQMW11ck9HUndC
Z09aTjJWNVZGcCt5MWFCZkdmNTB5c1ZRQWEzd0hZTEVBc3RMMXN0dVJMcWNyOHFYMThpbVo3S2lW
QnowWFh4ajZqWi92TnhuODZ4c0hQL2tJVUNkVG5YWHg2YzdhdjB4MTFQUnM5MTREcngyVFRsRnYw
aXBtekRybHJFV24vTW1pVjhsbUNpRGJiSkFEdVRZSm50d3ZONjcrVG1hdTF5ZER2bWJvdDM2eDl5
ejQ5UzhaL05yRk5UL2RWZnY3cWM2Nms5dTkxOEJyeGF4ZVBmNHI0aHNWZ0hQaDl3QnpyU2xTVlpR
dEh3UXFaVERpbDd2ZGpWczc3YmNZL0ptdEIxK21PbXNUa3gyMVQ2YTZha2UyZTYrQjE0NUp1NnZL
cEZQMm1yVEt4MmJ0cy9GLzhWdUFMeXFBM2ZZME9WMmVMeTJYVHNwRWU0M2NmOEd6L1RZRVh5WTdh
bVd5b3lZKzFWSHovVlJuWGZOMjd6WHcybGthLzdYS1dZdFcrWk5GcDVUTkZFQzJ5U0Q3WFZZSm5O
Z25YUisrSmROZGRacys3WCtkNE5mS1pFZU5USGJVekU5MjFEeWE1UElQV0NsTnJiQ1l0Y254MzZU
ZDlZTlpwNGhiZEtxTkMyQmgvSzhzekpMMy9ZZGxJT3lUT3pjYXR2d3gzc1kzK3I4bytETFpFVXBN
dE5jOG1laGcvQWVlWTFMdnFqSnBsYjBtamVLeFdhdjQwYXhWSmxZWHdGcHZBbWFtNlNUZm5pYlZa
WGtTZWZ1a2pNVkNjcmQ3RXlQK2VxZjlsb0pmdTJId0p6cHFaS0s5UnNiYlEvSEo5dEQzazUwMWpQ
L0FhaWFOb3Q2a1NZNy9acTNpSjdOT0tZc1hnQzhxZ0N5VFFmYmxXTVYvZko5MGZuQldKanRyVjR6
M1d6bnRuN3ZSdi81ODZMY2EvR2NyTkQvUkhubzAyYzc0RDZ5UXBsWllURnBGeEtSVkxJMy9Ld3Zn
K1JlQjdDbkozd0Z3V1ZMa2NHR1d2T2MvTFAzTlhwbTVYdi9MVC90TkJuOXlFOEVmVDRZL01SNExQ
Umx2RHpIK0E2dVpOWXBLazNaWGIvckMrRy9TS2hLYkxZQzhqRFE1VlpZbjRZc25aTFF0S0hkdWJD
NzBteDN6ZjBud3g5dERNaDRMeVZnc0ZCK1BCYjhmYjJmOEI1NlRybEhVcDJzVjB5YU5ZbW44MzB3
QlpLWHJaVisyUlh6SDkwbkgrMmRsb3FNbVdRQ3Y0TFIvK2VDSGxvSy9FSDRaandYbngyUEJSMlB0
UWNaL1lEbVRScG1hcmxZMG1UUzd2a3JUS1A1cTBpcCtOdXVVWXRtZ0FCeXBXbkZaakhLb0lGT3Vl
QTlKWDVOSHBydnFOaDM2elo3MnZ5VDRDK0ZQakxZRm40ekhnb3ovd0dvbXphN2Q2WnBkTVpORzhZ
MUpvM2hpMWk0OC8yK2lBUEl5VXVWa3FWdWFHay9JU0RRb005ZGYzV20vTXZnMVd3NytXQ3drWTIx
QkdXMEx4a2ZiZ3QrUHhVS00vOEJxYVpwZHU5UFVpaWFUUnZHVlNhdjR5OUluQUJzVVFHYTZYb3F5
TGVJOVZpVHQ3NTJSOGZiUXFzQy80dE4raThFZmF3dkthRFFvSTlIQS9HaGI4SnV4S09NLzhCeVQ1
bDlUMDlTS1FMcEdNV1RTS3Y3VHJGVThOZXVVaWVVRllGdjFZeUNPVksza21KUGovN3ZlZzlKN3pT
TlRuYld2NkxSL0JjRmZXQ1BSUUh3a0d2akxTRFRBbTMvQWV0TFZ5anlUUnZtT1NhdVlOT3NVMzVw
MXluOXNWQUJ1VzZxY0xNMlZhdzNIWmJnMUlOTmRyK2EwWC9zei9LMEZmelFhbE5Gb0lIbjZSd08v
SDJrTDh1WWY4Q0ltemE1Q2syN1hlMmF0Y3NxaVU4YlhMWUFValdTbTY2UXd5eXplWTRVU3UzSmF4
bUtodFVQL2kwLzdtaFdoWHhIOHR2V0NINVNSYUVCR280SEVTS3YveVdocmdNcy9ZRFBTZGNvaXMx
Ynh2a1duZkdyUksrTnJGWUE5UlN2WlpvTWMzT3VVZHp3SDVmYTFDekxSVWZOUFBlM0gxemp0MXd2
KzRocHVEY1JIb29IdlI2SUJMditBelRMcmxFVm1uZktoUmFkOGFsM3o1OEMwNHJhbHlJbVNYTG5X
Y0V5R1d2MHkyVmtyVTEzUGgvNmxUdnNOZ2orNlFmQkhXZ015M0JxUTRWYi8vSEJyNE5GSTFNL2xI
N0FWRnIwcVlOR3JIbHIxcXFjMmd5cSsvRTFBWjVwT0NyTk00amxhSUcxWFRzdG9XL0NmZDlxL1ZQ
QURNdHpxVHd5MytKOE1NLzRETDJYbmloSXdxdUkybzFyc0tSckpOaG1rWXE5RExsK29rRnVmbkpm
eDlwcG5vVi92Yy91dG52YXhOY2I4VFFVL0lNT3RmaGxxOGNlSFcvemZEMGNERjdaN0k0SGZxcDAy
dlNwZzA2c2UyZ3pxcHhsR1RkeWVvcEZjYTRvY0wzSEpwL1ZIWlREaWs0bU96WTM0TDMzYWIrN0VY
d3ord3ZMTkQ3Y0VibzIwQmpLM2V4T0IzN0tkTnFNNllET29IMllZMVUrZGFicDRRYVpKTGh6Wks5
RjNxMlVrR3BDSkRVLzcwS3M3N1RjTXZsK0dXbnlKd1lqdnlWQkw0SjN0M2p6Z1RiRFRabFFITW95
YWg5bG0vZE9LUGM3NHBmUGwwdlB4T1JtTGhYNmQwMzVUd1Y5WUVWOThzTVUvTlJEbThnOTRWWGJh
VTdVQmw4WDQ4RVNKNitrbjlVZCtIZ2g3RXVQdG9WZHoycmR0SnZRdkR2NWd4TGV3dkg4Y2lIZzdo
bG9DbHUzZU5PQk5zdE50U3czNGp4YzliSDJuZW5hb3hUYzMzaDZhSDR1RjR1UHR3Y1I0OG4vdS9S
Tk8rODBHM3lkREVkLy9ESVI5OXdiQ3ZzYnQzaXpnVGJUemFxZ3kwUFB4dWZCSU5CQWJidzg5R28r
RlpzZGpvYm54OXREY2FDdzRQOW9XakkvRmdvbXhXQ0F4K2dwTysrRzF4dnhWd1IrTStHUXc3UDF4
TU94N1BCajI5ZlpIdkZYYnZWSEFtMnJuNHByc3JLa2Q2d2lGUjl0RHNmSDJtdGhJTFBSb3JDMDRP
OVlXbWh1TmhlWkcyd0x6STlGZ2ZMUXRrQmlOQmhMUGhmNFhuUGFMYXlEaWs0R3dUd2JDM3Y4ZGFQ
WStISWo0UHVwdjlqTCtBNytDbmN2WGVIdE43V2dzR0I2TmhXS2pzVkJzSkJwOE5Cb056bzVFQTNN
TGEzNjROUkFmYWZVbmhwUHI1VTc3bGNHWGdiRDM3d05oejUvN203MGpBMkhQbVczZUUrRC9yWldG
MEJhc0hXNExoa2VpZ2RoSUxCUWJiZzA4R200TnpBNjMrT2VHVy94elE2MysrYUVXZjN5b3haZEly
bVdoYjNrKzlJTkxvVjhLdnZRM2UrTUR6ZDRmK3BzOS85RWY5cllOUkh5T2JkNERBQXRXRk1Kb1c3
QjJ1RFVZSG9vR1lrUFJRR3lveGY5b3FNVTNPeFR4elExRmZITkRMYjc1b1lndlBoanhKcFpXZU8z
Z0o4UHZTZlEzZVg4YUNIdG4rNXU5TTMzTlhQNEJyN01WaFREY0dxZ2RidldIQjF2OXNjRldmMnd3
NG44MEdQSE5Eb2E5YzRNUjM5eGcyRHMzRVBiT0Q0Uzk4WUd3SnpFUTlpVDZtNzNTMyt5VnZtYlBm
SCt6Wjc2dnlmTzB2OW43cDc1bWIyOS9NNWQvd0cvSmM0VXcxT0lQOTBmOHNjR0lQOVlmOGNjR3dy
NUhBMkh2N0VDemQyNmcyVHZYbHd4OXZLL1o4MjEvcytlLytwbzgzL1kzZVQ3cmEvWTBjZmtIL0xi
dFhMMkdXbnkxQTJGZnVDL3NqZldIdmJIK1pzK2p2ckQzWm0rVFo2aTN5VFBXMSt5WjdHdnlYTzly
OXZpMzkwOEg4TSt3b2hCNm03eGx0Njk1VHc2RWZlY0d3MTVmZjVQbm5iNW1UNkQzMm9VRDIveDNB
dmdWN2R5eFk4Zk9nU2F2dTcvSms5VjN6YXZlN2o4SUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNWL2c5
dFBKRVF1MVh2bVFBQUFBQkpSVTVFcmtKZ2dnPT0iPgorPGltZyBpZD0iaTIiPgorCis8c2NyaXB0
PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6
Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy90aHVuZGVyYmlyZC1sb2dvLTY0
eDY0LnBuZyI7Cit2YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL3RodW5kZXJi
aXJkLWxvZ28tNjR4NjQucG5nIjsKKworVGVzdHMuYXV0b2luaXQgPSBmYWxzZTsgLy8gUHJldmVu
dHMgdGhlIHRlc3QgZnJvbSBydW5uaW5nIHVudGlsIHRoZSBpbWFnZSBpcyBsb2FkZWQKKworVGVz
dHMuc3RhcnRVbml0ID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZ2wnKTsKKyAgICB2YXIgZ2wgPSB3cmFwR0xDb250ZXh0KGdldEdMQ29u
dGV4dChjYW52YXMpKTsKKworICAgIGdsLnZpZXdwb3J0KDAsMCxjYW52YXMud2lkdGgsY2FudmFz
LmhlaWdodCk7CisgICAgZ2wuY2xlYXJDb2xvcigwLDAsMSwxKTsKKyAgICBnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgICAgZ2wuZGlzYWJsZShn
bC5ERVBUSF9URVNUKTsKKyAgICByZXR1cm4gW2dsXTsKK30KKworVGVzdHMuc2V0dXAgPSBmdW5j
dGlvbihnbCkgeworICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICB2YXIgdGV4Q3ViZU1hcCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0
ZXhDdWJlTWFwKTsKKyAgICByZXR1cm4gW2dsXQorfQorCitUZXN0cy50ZWFyZG93biA9IGZ1bmN0
aW9uKGdsLCB0ZXgsIHRleEN1YmVNYXApIHsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCBudWxsKTsKKyAgICBnbC5kZWxldGVUZXh0dXJlKHRleCk7CisgICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV9DVUJFX01BUCwgbnVsbCk7CisgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXhD
dWJlTWFwKTsKK30KKworVGVzdHMudGVzdFRleEltYWdlMkQgPSBmdW5jdGlvbihnbCkgeworICAg
IGdsLmVuYWJsZShnbC5CTEVORCk7CisgICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpJyk7CisgICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpOworICAg
IHZhciBjdHggPSBjLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LmRyYXdJbWFnZShpbWcsMCww
KTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7CisgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOworICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RP
X0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9X
UkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwor
ICAgIHZhciBmID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5LWZsaXAtdmVydCcsICdpZGVudGl0
eS1mcmFnJyk7CisgICAgZ2wuYmxlbmRGdW5jKGdsLk9ORSwgZ2wuWkVSTyk7CisgICAgZi5hcHBs
eSgpOworICAgIGYuZGVzdHJveSgpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7CisgICAgZ2wudGV4U3Vi
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBjKTsKKyAgICBmID0gbmV3IEZpbHRlcihnbCwgJ2lkZW50aXR5LWhmbGlwLXZlcnQnLCAnaWRl
bnRpdHktZnJhZycpOworICAgIGdsLmJsZW5kRnVuYyhnbC5TUkNfQUxQSEEsIGdsLk9ORV9NSU5V
U19TUkNfQUxQSEEpOworICAgIGYuYXBwbHkoKTsKKyAgICBmLmRlc3Ryb3koKTsKKyAgICB2YXIg
dmFsaWRfdGFyZ2V0cyA9IFsKKyAgICAgICAgZ2wuVEVYVFVSRV8yRCwKKyAgICAgICAgZ2wuVEVY
VFVSRV9DVUJFX01BUF9QT1NJVElWRV9YLAorICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1gsCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSwKKyAgICAg
ICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZLAorICAgICAgICBnbC5URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1osCisgICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVf
WgorICAgIF07CisgICAgdmFsaWRfdGFyZ2V0cy5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKKyAgICAg
ICAgYXNzZXJ0T2soZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKHQs
IDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOworICAgICAgICAgICAg
ICAgIGdsLnRleFN1YkltYWdlMkQodCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgYyk7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpeworICAgICAg
ICAgICAgICAgIGdsLnRleEltYWdlMkQodCwgMSwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgYyk7CisgICAgICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRCh0LCAxLCAwLCAw
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
CisKK1Rlc3RzLnRlc3RUZXhJbWFnZTJETm9uU09QID0gZnVuY3Rpb24oZ2wpIHsKKyAgICB2YXIg
aW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CisgICAgdmFyIGMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYycpOworICAgIHZhciBjdHggPSBjLmdldENvbnRleHQoJzJkJyk7
CisgICAgY3R4LmRyYXdJbWFnZShpbWcsMCwwKTsKKyAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihn
bCwgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2Vw
dGlvbi4iLAorICAgICAgZnVuY3Rpb24oKXtnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7fSk7CisgICAgYXNzZXJ0
VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhTdWJJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdl
IHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKKyAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4U3ViSW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGlt
Zyk7fSk7CisgICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhJbWFnZTJEIHdpdGggZGly
dHkgb3JpZ2luIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCisgICAgICBmdW5jdGlv
bigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgYyk7fSk7CisgICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2wsICJ0ZXhT
dWJJbWFnZTJEIHdpdGggZGlydHkgb3JpZ2luIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9u
LiIsCisgICAgICBmdW5jdGlvbigpe2dsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
MCwwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKK30KKworVGVzdHMuZW5kVW5p
dCA9IGZ1bmN0aW9uKGdsKSB7Cit9OworCisoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
aW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CisgICAgdHJ5IHsKKyAgICAgICAg
YXdhaXQgd3R1LmF3YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRl
ZmF1bHRJbWdVcmwsIGxvY2FsSW1nVXJsKSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0
ZXN0RmFpbGVkKGBJbWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOworICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaW5pdFRlc3RzKCk7Cit9KSgpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3Vu
aXQuY3NzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NThiNDNiZDlk
ZGYwYmYxYzAyYWY1YTVmNjE2OTRmZjgwZTUzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL21vcmUvdW5pdC5jc3MKQEAgLTAsMCArMSw2NiBAQAorLyoKK1Rlc3RzIGZvciB0aGUgT3Bl
bkdMIEVTIDIuMCBIVE1MIENhbnZhcyBjb250ZXh0CisKK0NvcHlyaWdodCAoQykgMjAwOSAgSWxt
YXJpIEhlaWtraW5lbiA8aWxtYXJpLmhlaWtraW5lbkBnbWFpbC5jb20+CisKK1Blcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCitvYnRhaW5p
bmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgor
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAor
cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsCitjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz
b25zIHRvIHdob20gdGhlCitTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8gdGhlIGZvbGxvd2luZworY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKK2luY2x1ZGVkIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
K0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUworT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUCitIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwKK1dIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORworRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRX
QVJFLgorCisqLworLm9rIHsKKyAgY29sb3I6IGdyZWVuOworfQorLmZhaWwgeworICBjb2xvcjog
cmVkOworfQorY2FudmFzIHsKKyAgZGlzcGxheTogbm9uZTsKK30KKyN0ZXN0LXN0YXR1cyB7Cisg
IGZvbnQtc2l6ZTogbGFyZ2U7Cit9CisKKyN0ZXN0LWxvZyB7CisgIHBhZGRpbmctbGVmdDogMC41
ZW07CisgIHBhZGRpbmctcmlnaHQ6IDAuNWVtOworICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAgY29s
b3I6IGJsYWNrOworfQorI3Rlc3QtbG9nID4gZGl2IHsKKyAgcGFkZGluZy1ib3R0b206IDAuNWVt
OworfQorI3Rlc3QtbG9nIGgyIHsKKyAgZm9udC1zaXplOiAxZW07CisgIG1hcmdpbi1ib3R0b206
IDBlbTsKKyAgcGFkZGluZy10b3A6IDAuNWVtOworfQorI3Rlc3QtbG9nIGgzIHsKKyAgZm9udC1z
aXplOiBzbWFsbDsKKyAgbWFyZ2luLWxlZnQ6IDEuNWVtOworICBtYXJnaW4tYm90dG9tOiAwZW07
CisgIG1hcmdpbi10b3A6IDAuNWVtOworfQorI3Rlc3QtbG9nIHAgeworICBtYXJnaW4tbGVmdDog
NGVtOworICBmb250LXNpemU6IHNtYWxsOworICBtYXJnaW4tdG9wOiAwZW07CisgIG1hcmdpbi1i
b3R0b206IDAuMmVtOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3VuaXQuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvdW5pdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2EyMWM0Y2FlODIyMjZlNWEyY2Mz
NWI3NzQxNzUyNWRhY2NlMDMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3Vu
aXQuanMKQEAgLTAsMCArMSw5NzAgQEAKKy8qCitVbml0IHRlc3RpbmcgbGlicmFyeSBmb3IgdGhl
IE9wZW5HTCBFUyAyLjAgSFRNTCBDYW52YXMgY29udGV4dAorKi8KKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUg
LS0gKi8KKworLy8gV2ViS2l0CitpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPSB3aW5k
b3cudGVzdFJ1bm5lcjsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKworICAvLyBUaGUgV2ViS2l0IHRlc3Rpbmcgc3lzdGVtIGNv
bXBhcmVzIGNvbnNvbGUgb3V0cHV0LgorICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdl
YkdMIFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAgLy8gd2UgdHVybiBvZmYgY29uc29sZSBtZXNz
YWdlcy4KKyAgd2luZG93LmNvbnNvbGUubG9nID0gZnVuY3Rpb24oKSB7IH07CisgIHdpbmRvdy5j
b25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisKKyAgLy8gUkFGIGRvZXNuJ3Qgd29yayBp
biBMYXlvdXRUZXN0cy4gRGlzYWJsZSBpdCBzbyB0aGUgdGVzdHMgd2lsbAorICAvLyB1c2Ugc2V0
VGltZW91dCBpbnN0ZWFkLgorICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZp
bmVkOworICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOwor
fQorCitpZiAod2luZG93LmludGVybmFscykgeworICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Cit9CisKKy8qIC0tIGVuZCBw
bGF0Zm9ybSBzcGVjaWZpYyBjb2RlIC0tKi8KK1Rlc3RzID0geworICBhdXRvcnVuIDogdHJ1ZSwK
KyAgbWVzc2FnZSA6IG51bGwsCisgIGRlbGF5IDogMCwKKyAgYXV0b2luaXQ6IHRydWUsCisKKyAg
c3RhcnRVbml0IDogZnVuY3Rpb24oKXsgcmV0dXJuIFtdOyB9LAorICBzZXR1cCA6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gYXJndW1lbnRzOyB9LAorICB0ZWFyZG93biA6IGZ1bmN0aW9uKCkge30sCisg
IGVuZFVuaXQgOiBmdW5jdGlvbigpIHt9Cit9CisKK3ZhciBfX3Rlc3RTdWNjZXNzX18gPSB0cnVl
OwordmFyIF9fdGVzdEZhaWxDb3VudF9fID0gMDsKK3ZhciBfX3Rlc3RMb2dfXzsKK3ZhciBfX2Jh
Y2tsb2dfXyA9IFtdOworCit2YXIgZ2V0VXJsT3B0aW9ucyA9IChmdW5jdGlvbigpIHsKKyAgdmFy
IF91cmxPcHRpb25zUGFyc2VkID0gZmFsc2U7CisgIHZhciBfdXJsT3B0aW9ucyA9IHt9OworICBy
ZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgaWYgKCFfdXJsT3B0aW9uc1BhcnNlZCkgeworICAgICAg
dmFyIHMgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKKyAgICAgIHZhciBxID0gcy5pbmRleE9mKCI/
Iik7CisgICAgICB2YXIgZSA9IHMuaW5kZXhPZigiIyIpOworICAgICAgaWYgKGUgPCAwKSB7Cisg
ICAgICAgIGUgPSBzLmxlbmd0aDsKKyAgICAgIH0KKyAgICAgIHZhciBxdWVyeSA9IHMuc3Vic3Ry
aW5nKHEgKyAxLCBlKTsKKyAgICAgIHZhciBwYWlycyA9IHF1ZXJ5LnNwbGl0KCImIik7CisgICAg
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgcGFpcnMubGVuZ3RoOyArK2lpKSB7CisgICAgICAgIHZh
ciBrZXlWYWx1ZSA9IHBhaXJzW2lpXS5zcGxpdCgiPSIpOworICAgICAgICB2YXIga2V5ID0ga2V5
VmFsdWVbMF07CisgICAgICAgIHZhciB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChrZXlWYWx1
ZVsxXSk7CisgICAgICAgIF91cmxPcHRpb25zW2tleV0gPSB2YWx1ZTsKKyAgICAgIH0KKyAgICAg
IF91cmxPcHRpb25zUGFyc2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gX3VybE9wdGlv
bnM7CisgIH0KK30pKCk7CisKK2lmICh0eXBlb2YgcXVpZXRNb2RlID09ICd1bmRlZmluZWQnKSB7
CisgIHZhciBxdWlldE1vZGUgPSAoZnVuY3Rpb24oKSB7CisgICAgdmFyIF9xdWlldE1vZGVDaGVj
a2VkID0gZmFsc2U7CisgICAgdmFyIF9pc1F1aWV0ID0gZmFsc2U7CisgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgeworICAgICAgaWYgKCFfcXVpZXRNb2RlQ2hlY2tlZCkgeworICAgICAgICBfaXNRdWll
dCA9IChnZXRVcmxPcHRpb25zKCkucXVpZXQgPT0gMSk7CisgICAgICAgIF9xdWlldE1vZGVDaGVj
a2VkID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBfaXNRdWlldDsKKyAgICB9CisgIH0p
KCk7Cit9CisKK09iamVjdC50b1NvdXJjZSA9IGZ1bmN0aW9uKGEsIHNlZW4peworICBpZiAoYSA9
PSBudWxsKSByZXR1cm4gIm51bGwiOworICBpZiAodHlwZW9mIGEgPT0gJ2Jvb2xlYW4nKSByZXR1
cm4gYSA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgIGlmICh0eXBlb2YgYSA9PSAnc3RyaW5nJykgcmV0
dXJuICciJyArIGEucmVwbGFjZSgvIi9nLCAnXFwiJykgKyAnIic7CisgIGlmIChhIGluc3RhbmNl
b2YgSFRNTEVsZW1lbnQpIHJldHVybiBhLnRvU3RyaW5nKCk7CisgIGlmIChhLndpZHRoICYmIGEu
aGVpZ2h0ICYmIGEuZGF0YSkgcmV0dXJuICJbSW1hZ2VEYXRhXSI7CisgIGlmIChhIGluc3RhbmNl
b2YgQXJyYXkpIHsKKyAgICBpZiAoIXNlZW4pIHNlZW4gPSBbXTsKKyAgICB2YXIgaWR4ID0gc2Vl
bi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHJldHVybiAnIycrKGlkeCsxKSsnIyc7
CisgICAgc2Vlbi51bnNoaWZ0KGEpOworICAgIHZhciBzcmNzID0gYS5tYXAoZnVuY3Rpb24obyl7
IHJldHVybiBPYmplY3QudG9Tb3VyY2UobyxzZWVuKSB9KTsKKyAgICB2YXIgcHJlZml4ID0gJyc7
CisgICAgaWR4ID0gc2Vlbi5pbmRleE9mKGEpOworICAgIGlmIChpZHggIT0gLTEpIHByZWZpeCA9
ICcjJysoaWR4KzEpKyc9JzsKKyAgICByZXR1cm4gcHJlZml4ICsgJ1snICsgc3Jjcy5qb2luKCIs
ICIpICsgJ10nOworICB9CisgIGlmICh0eXBlb2YgYSA9PSAnb2JqZWN0JykgeworICAgIGlmICgh
c2Vlbikgc2VlbiA9IFtdOworICAgIHZhciBpZHggPSBzZWVuLmluZGV4T2YoYSk7CisgICAgaWYg
KGlkeCAhPSAtMSkgcmV0dXJuICcjJysoaWR4KzEpKycjJzsKKyAgICBzZWVuLnVuc2hpZnQoYSk7
CisgICAgdmFyIG1lbWJlcnMgPSBbXTsKKyAgICB2YXIgbmFtZTsKKyAgICB0cnkgeworICAgICAg
Zm9yICh2YXIgaSBpbiBhKSB7CisgICAgICAgIGlmIChpLnNlYXJjaCgvXlthLXpBLVowLTldKyQv
KSAhPSAtMSkKKyAgICAgICAgICBuYW1lID0gaTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIG5h
bWUgPSAnIicgKyBpLnJlcGxhY2UoLyIvZywgJ1xcIicpICsgJyInOworICAgICAgICB2YXIgYWk7
CisgICAgICAgIHRyeSB7IGFpID0gYVtpXTsgfQorICAgICAgICBjYXRjaChlKSB7IGFpID0gJ251
bGwgLypFUlJPUl9BQ0NFU1NJTkcqLyc7IH0KKyAgICAgICAgdmFyIHMgPSBuYW1lICsgJzonICsg
T2JqZWN0LnRvU291cmNlKGFpLCBzZWVuKTsKKyAgICAgICAgbWVtYmVycy5wdXNoKHMpOworICAg
ICAgfQorICAgIH0gY2F0Y2ggKGUpIHt9CisgICAgdmFyIHByZWZpeCA9ICcnOworICAgIGlkeCA9
IHNlZW4uaW5kZXhPZihhKTsKKyAgICBpZiAoaWR4ICE9IC0xKSBwcmVmaXggPSAnIycrKGlkeCsx
KSsnPSc7CisgICAgcmV0dXJuIHByZWZpeCArICd7JyArIG1lbWJlcnMuam9pbigiLCAiKSArICd9
JworICB9CisgIGlmICh0eXBlb2YgYSA9PSAnZnVuY3Rpb24nKQorICAgIHJldHVybiAnKCcrYS50
b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIgIikucmVwbGFjZSgvXHMrL2csICIgIikrJyknOwor
ICByZXR1cm4gYS50b1N0cmluZygpOworfQorCitmdW5jdGlvbiBmb3JtYXRFcnJvcihlKSB7Cisg
IGlmICh3aW5kb3cuY29uc29sZSkgY29uc29sZS5sb2coZSk7CisgIHZhciBwYXRoU2VncyA9IGxv
Y2F0aW9uLmhyZWYudG9TdHJpbmcoKS5zcGxpdCgiLyIpOworICB2YXIgY3VycmVudERvYyA9IGUu
bGluZU51bWJlciAhPSBudWxsID8gcGF0aFNlZ3NbcGF0aFNlZ3MubGVuZ3RoIC0gMV0gOiBudWxs
OworICB2YXIgdHJhY2UgPSAoZS5maWxlbmFtZSB8fCBjdXJyZW50RG9jKSArICI6IiArIGUubGlu
ZU51bWJlciArIChlLnRyYWNlID8gIlxuIitlLnRyYWNlIDogIiIpOworICByZXR1cm4gZS5tZXNz
YWdlICsgIlxuIiArIHRyYWNlOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgdmFyIGgg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1zdGF0dXMnKTsKKyAgaWYgKGggPT0gbnVs
bCkgeworICAgIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMScpOworICAgIGguaWQgPSAn
dGVzdC1zdGF0dXMnOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCk7CisgIH0KKyAg
aC50ZXh0Q29udGVudCA9ICIiOworICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QtbG9nJyk7CisgIGlmIChsb2cgPT0gbnVsbCkgeworICAgIGxvZyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGxvZy5pZCA9ICd0ZXN0LWxvZyc7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChsb2cpOworICB9CisgIHdoaWxlIChsb2cuY2hpbGROb2Rlcy5s
ZW5ndGggPiAwKQorICAgIGxvZy5yZW1vdmVDaGlsZChsb2cuZmlyc3RDaGlsZCk7CisKKyAgdmFy
IHNldHVwX2FyZ3MgPSBbXTsKKworICBpZiAoVGVzdHMuc3RhcnRVbml0ICE9IG51bGwpIHsKKyAg
ICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRyeSB7
CisgICAgICBzZXR1cF9hcmdzID0gVGVzdHMuc3RhcnRVbml0KCk7CisgICAgICBpZiAoX190ZXN0
TG9nX18uY2hpbGROb2Rlcy5sZW5ndGggPiAwKQorICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190
ZXN0TG9nX18pOworICAgIH0gY2F0Y2goZSkgeworICAgICAgdGVzdEZhaWxlZCgic3RhcnRVbml0
IiwgZm9ybWF0RXJyb3IoZSkpOworICAgICAgbG9nLmFwcGVuZENoaWxkKF9fdGVzdExvZ19fKTsK
KyAgICAgIHByaW50VGVzdFN0YXR1cygpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQorCisg
IHZhciB0ZXN0c1J1biA9IGZhbHNlOworICB2YXIgYWxsVGVzdHNTdWNjZXNzZnVsID0gdHJ1ZTsK
KworICBmb3IgKHZhciBpIGluIFRlc3RzKSB7CisgICAgaWYgKGkuc3Vic3RyaW5nKDAsNCkgIT0g
InRlc3QiKSBjb250aW51ZTsKKyAgICBfX3Rlc3RMb2dfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIF9fdGVzdFN1Y2Nlc3NfXyA9IHRydWU7CisgICAgdHJ5IHsKKyAgICAg
IGRvVGVzdE5vdGlmeSAoaSk7CisgICAgICB2YXIgYXJncyA9IHNldHVwX2FyZ3M7CisgICAgICBp
ZiAoVGVzdHMuc2V0dXAgIT0gbnVsbCkKKyAgICAgICAgYXJncyA9IFRlc3RzLnNldHVwLmFwcGx5
KFRlc3RzLCBzZXR1cF9hcmdzKTsKKyAgICAgIFRlc3RzW2ldLmFwcGx5KFRlc3RzLCBhcmdzKTsK
KyAgICAgIGlmIChUZXN0cy50ZWFyZG93biAhPSBudWxsKQorICAgICAgICBUZXN0cy50ZWFyZG93
bi5hcHBseShUZXN0cywgYXJncyk7CisgICAgfQorICAgIGNhdGNoIChlKSB7CisgICAgICB0ZXN0
RmFpbGVkKGksIGUubmFtZSwgZm9ybWF0RXJyb3IoZSkpOworICAgIH0KKyAgICBpZiAoX190ZXN0
U3VjY2Vzc19fID09IGZhbHNlKSB7CisgICAgICArK19fdGVzdEZhaWxDb3VudF9fOworICAgIH0K
KyAgICB2YXIgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gyJyk7CisgICAgaC50ZXh0Q29u
dGVudCA9IGk7CisgICAgX190ZXN0TG9nX18uaW5zZXJ0QmVmb3JlKGgsIF9fdGVzdExvZ19fLmZp
cnN0Q2hpbGQpOworICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7CisgICAgYWxsVGVz
dHNTdWNjZXNzZnVsID0gYWxsVGVzdHNTdWNjZXNzZnVsICYmIF9fdGVzdFN1Y2Nlc3NfXyA9PSB0
cnVlOworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKF9fdGVzdFN1Y2Nlc3NfXywgaSk7
CisgICAgZG9UZXN0Tm90aWZ5IChpKyItLSIrKF9fdGVzdFN1Y2Nlc3NfXz8iT0siOiJGQUlMIikp
OworICAgIHRlc3RzUnVuID0gdHJ1ZTsKKyAgfQorCisgIHByaW50VGVzdFN0YXR1cyh0ZXN0c1J1
bik7CisgIGlmIChUZXN0cy5lbmRVbml0ICE9IG51bGwpIHsKKyAgICBfX3Rlc3RMb2dfXyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRyeSB7CisgICAgICBUZXN0cy5lbmRV
bml0LmFwcGx5KFRlc3RzLCBzZXR1cF9hcmdzKTsKKyAgICAgIGlmIChfX3Rlc3RMb2dfXy5jaGls
ZE5vZGVzLmxlbmd0aCA+IDApCisgICAgICAgIGxvZy5hcHBlbmRDaGlsZChfX3Rlc3RMb2dfXyk7
CisgICAgfSBjYXRjaChlKSB7CisgICAgICB0ZXN0RmFpbGVkKCJlbmRVbml0IiwgZS5uYW1lLCBm
b3JtYXRFcnJvcihlKSk7CisgICAgICBsb2cuYXBwZW5kQ2hpbGQoX190ZXN0TG9nX18pOworICAg
IH0KKyAgfQorICBub3RpZnlGaW5pc2hlZFRvSGFybmVzcyhhbGxUZXN0c1N1Y2Nlc3NmdWwsICJm
aW5pc2hlZCB0ZXN0cyIpOworfQorCitmdW5jdGlvbiBkb1Rlc3ROb3RpZnkobmFtZSkgeworICAv
L3RyecKgeworICAvLyAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAvLyAgeGhy
Lm9wZW4oIkdFVCIsICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvIituYW1lLCB0cnVlKTsKKyAgLy8g
IHhoci5zZW5kKG51bGwpOworICAvL30gY2F0Y2goZSkge30KK30KKworZnVuY3Rpb24gdGVzdEZh
aWxlZChhc3NlcnROYW1lLCBuYW1lKSB7CisgIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgIHZhciBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKKyAgdmFy
IGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICBoLmFwcGVuZENoaWxkKGQx
KTsKKyAgZDEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZBSUw6ICIpKTsK
KyAgZDEuc3R5bGUuY29sb3IgPSAicmVkIjsKKyAgaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgKKyAgICAgIG5hbWU9PW51bGwgPyBhc3NlcnROYW1lIDogbmFtZSArICIgKGlu
ICIgKyBhc3NlcnROYW1lICsgIikiKSk7CisgIGQuYXBwZW5kQ2hpbGQoaCk7CisgIHZhciBhcmdz
ID0gW10KKyAgZm9yICh2YXIgaT0yOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgIHZh
ciBhID0gYXJndW1lbnRzW2ldOworICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
cCcpOworICAgIHAuc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUnOworICAgIHAudGV4dENvbnRlbnQg
PSAoYSA9PSBudWxsKSA/ICJudWxsIiA6CisgICAgICAgICAgICAgICAgICAgICh0eXBlb2YgYSA9
PSAnYm9vbGVhbicgfHwgdHlwZW9mIGEgPT0gJ3N0cmluZycpID8gYSA6IE9iamVjdC50b1NvdXJj
ZShhKTsKKyAgICBhcmdzLnB1c2gocC50ZXh0Q29udGVudCk7CisgICAgZC5hcHBlbmRDaGlsZChw
KTsKKyAgfQorICBfX3Rlc3RMb2dfXy5hcHBlbmRDaGlsZChkKTsKKyAgX190ZXN0U3VjY2Vzc19f
ID0gZmFsc2U7CisgIGRvVGVzdE5vdGlmeShbYXNzZXJ0TmFtZSwgbmFtZV0uY29uY2F0KGFyZ3Mp
LmpvaW4oIi0tIikpOworfQorCitmdW5jdGlvbiB0ZXN0UGFzc2VkKGFzc2VydE5hbWUsIG5hbWUp
IHsKKyAgaWYgKCFxdWlldE1vZGUoKSkgeworICAgIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgdmFyIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOwor
ICAgIHZhciBkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBoLmFwcGVu
ZENoaWxkKGQxKTsKKyAgICBkMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
UEFTUzogIikpOworICAgIGQxLnN0eWxlLmNvbG9yID0gImdyZWVuIjsKKyAgICBoLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAorICAgICAgICBuYW1lPT1udWxsID8gYXNzZXJ0
TmFtZSA6IG5hbWUgKyAiIChpbiAiICsgYXNzZXJ0TmFtZSArICIpIikpOworICAgIGQuYXBwZW5k
Q2hpbGQoaCk7CisgICAgdmFyIGFyZ3MgPSBbXQorICAgIGZvciAodmFyIGk9MjsgaTxhcmd1bWVu
dHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIHZhciBhID0gYXJndW1lbnRzW2ldOworICAgICAgdmFy
IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CisgICAgICBwLnN0eWxlLndoaXRlU3Bh
Y2UgPSAncHJlJzsKKyAgICAgIHAudGV4dENvbnRlbnQgPSAoYSA9PSBudWxsKSA/ICJudWxsIiA6
CisgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBhID09ICdib29sZWFuJyB8fCB0eXBlb2Yg
YSA9PSAnc3RyaW5nJykgPyBhIDogT2JqZWN0LnRvU291cmNlKGEpOworICAgICAgYXJncy5wdXNo
KHAudGV4dENvbnRlbnQpOworICAgICAgZC5hcHBlbmRDaGlsZChwKTsKKyAgICB9CisgICAgX190
ZXN0TG9nX18uYXBwZW5kQ2hpbGQoZCk7CisgIH0KKyAgZG9UZXN0Tm90aWZ5KFthc3NlcnROYW1l
LCBuYW1lXS5jb25jYXQoYXJncykuam9pbigiLS0iKSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrVGVz
dFN1Y2Nlc3MoKSB7CisgIHJldHVybiBfX3Rlc3RGYWlsQ291bnRfXyA9PSAwOworfQorCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCl7CisgIGZvciAodmFyIGk9MDsg
aTxfX2JhY2tsb2dfXy5sZW5ndGg7IGkrKykKKyAgICBsb2coX19iYWNrbG9nX19baV0pOworfSwg
ZmFsc2UpOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgncCcpOworICB2YXIgYSA9IFtdOworICBmb3IgKHZhciBpPTA7IGk8YXJndW1lbnRz
Lmxlbmd0aDsgaSsrKQorICAgIGEucHVzaChhcmd1bWVudHNbaV0pOworICBwLnRleHRDb250ZW50
ID0gYS5qb2luKCIsICIpOworICBpZiAoIV9fdGVzdExvZ19fKSB7CisgICAgaWYgKGRvY3VtZW50
LmJvZHkpCisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHApOworICAgIGVsc2UKKyAg
ICAgIF9fYmFja2xvZ19fLnB1c2gobXNnKTsKKyAgfSBlbHNlIHsKKyAgICBfX3Rlc3RMb2dfXy5h
cHBlbmRDaGlsZChwKTsKKyAgfQorfQorCitmdW5jdGlvbiBwcmludFRlc3RTdGF0dXModGVzdHNS
dW4pIHsKKyAgdmFyIHN0YXR1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXN0YXR1
cycpOworICBpZiAodGVzdHNSdW4pIHsKKyAgICBzdGF0dXMuY2xhc3NOYW1lID0gY2hlY2tUZXN0
U3VjY2VzcygpID8gJ29rJyA6ICdmYWlsJzsKKyAgICBzdGF0dXMudGV4dENvbnRlbnQgPSBjaGVj
a1Rlc3RTdWNjZXNzKCkgPyAiUEFTUyIgOiAiRkFJTCI7CisgIH0gZWxzZSB7CisgICAgc3RhdHVz
LmNsYXNzTmFtZSA9ICdmYWlsJzsKKyAgICBzdGF0dXMudGV4dENvbnRlbnQgPSAiTk8gVEVTVFMg
Rk9VTkQiOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZhaWwobmFtZSwgZikgeworICBpZiAo
ZiA9PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICB2YXIgciA9IGZhbHNlOwor
ICB0cnkgeyBmKCk7IH0gY2F0Y2goZSkgeyByPXRydWU7IH0KKyAgaWYgKCFyKSB7CisgICAgdGVz
dEZhaWxlZCgiYXNzZXJ0RmFpbCIsIG5hbWUsIGYpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBl
bHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnRGYWlsIiwgbmFtZSwgZik7CisgICAgcmV0dXJu
IHRydWU7CisgIH0KK30KKworZnVuY3Rpb24gYXNzZXJ0T2sobmFtZSwgZikgeworICBpZiAoZiA9
PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICB2YXIgciA9IGZhbHNlOworICB2
YXIgZXJyOworICB0cnkgeyBmKCk7IHI9dHJ1ZTsgfSBjYXRjaChlKSB7IGVyciA9IGU7IH0KKyAg
aWYgKCFyKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0T2siLCBuYW1lLCBmLCBlcnIudG9TdHJp
bmcoKSk7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQoImFz
c2VydE9rIiwgbmFtZSwgZik7CisgICAgcmV0dXJuIHRydWU7CisgIH0KK30KKworZnVuY3Rpb24g
YXNzZXJ0KG5hbWUsIHYpIHsKKyAgaWYgKHYgPT0gbnVsbCkgeyB2ID0gbmFtZTsgbmFtZSA9IG51
bGw7IH0KKyAgaWYgKCF2KSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0IiwgbmFtZSwgdik7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQoImFzc2VydCIsIG5h
bWUsIHYpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0aW9uIGFzc2VydFByb3Bl
cnR5KG5hbWUsIHYsIHApIHsKKyAgaWYgKHAgPT0gbnVsbCkgeyBwID0gdjsgdiA9IG5hbWU7IG5h
bWUgPSBwOyB9CisgIGlmICh2W3BdID09IG51bGwpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRQ
cm9wZXJ0eSIsIG5hbWUpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0
UGFzc2VkKCJhc3NlcnRQcm9wZXJ0eSIsIG5hbWUpOworICAgIHJldHVybiB0cnVlOworICB9Cit9
CisKK2Z1bmN0aW9uIGNvbXBhcmUoYSxiKSB7CisgIGlmICh0eXBlb2YgYSA9PSAnbnVtYmVyJyAm
JiB0eXBlb2YgYiA9PSAnbnVtYmVyJykgeworICAgIHJldHVybiBhID09IGI7CisgIH0gZWxzZSB7
CisgICAgcmV0dXJuIE9iamVjdC50b1NvdXJjZShhKSA9PSBPYmplY3QudG9Tb3VyY2UoYik7Cisg
IH0KK30KKworZnVuY3Rpb24gYXNzZXJ0RXF1YWxzKG5hbWUsIHYsIHApIHsKKyAgaWYgKHAgPT0g
bnVsbCkgeyBwID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIGlmICghY29tcGFyZSh2
LCBwKSkgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEVxdWFscyIsIG5hbWUsIHYsIHApOworICAg
IHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJhc3NlcnRFcXVhbHMi
LCBuYW1lLCB2LCBwKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQorCitmdW5jdGlvbiBhc3Nl
cnRBcnJheUVxdWFscyhuYW1lLCB2LCBwKSB7CisgIGlmIChwID09IG51bGwpIHsgcCA9IHY7IHYg
PSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICBpZiAoIXYpIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3Nl
cnRBcnJheUVxdWFsczogZmlyc3QgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwgcCk7CisgICAg
cmV0dXJuIGZhbHNlOworICB9CisgIGlmICghcCkgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEFy
cmF5RXF1YWxzOiBzZWNvbmQgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwgcCk7CisgICAgcmV0
dXJuIGZhbHNlOworICB9CisgIGlmICh2Lmxlbmd0aCAhPSBwLmxlbmd0aCkgeworICAgIHRlc3RG
YWlsZWQoImFzc2VydEFycmF5RXF1YWxzIiwgbmFtZSwgdiwgcCk7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCB2Lmxlbmd0aDsgKytpaSkgeworICAgIGlm
ICh2W2lpXSAhPSBwW2lpXSkgeworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0QXJyYXlFcXVhbHMi
LCBuYW1lLCB2LCBwKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgdGVzdFBh
c3NlZCgiYXNzZXJ0QXJyYXlFcXVhbHMiLCBuYW1lLCB2LCBwKTsKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Z1bmN0aW9uIGFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb24obmFtZSwgdiwgcCwgbCkg
eworICBpZiAobCA9PSBudWxsKSB7IGwgPSBwOyBwID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBudWxs
OyB9CisgIGlmICghdikgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVw
c2lsb246IGZpcnN0IGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHApOworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorICBpZiAoIXApIHsKKyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFs
c1dpdGhFcHNpbG9uOiBzZWNvbmQgYXJyYXkgdW5kZWZpbmVkIiwgbmFtZSwgdiwgcCk7CisgICAg
cmV0dXJuIGZhbHNlOworICB9CisgIGlmICghbCkgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEFy
cmF5RXF1YWxzV2l0aEVwc2lsb246IGxpbWl0IGFycmF5IHVuZGVmaW5lZCIsIG5hbWUsIHYsIHAp
OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAodi5sZW5ndGggIT0gcC5sZW5ndGgpIHsK
KyAgICB0ZXN0RmFpbGVkKCJhc3NlcnRBcnJheUVxdWFsc1dpdGhFcHNpbG9uIiwgbmFtZSwgdiwg
cCwgbCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmICh2Lmxlbmd0aCAhPSBsLmxlbmd0
aCkgeworICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb24iLCBuYW1l
LCB2LCBwLCBsKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgZm9yICh2YXIgaWkgPSAwOyBp
aSA8IHYubGVuZ3RoOyArK2lpKSB7CisgICAgaWYgKE1hdGguYWJzKHZbaWldLSBwW2lpXSk+bFtp
aV0pIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEFycmF5RXF1YWxzV2l0aEVwc2lsb24iLCBu
YW1lLCB2LCBwLCBsKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKyAgdGVzdFBh
c3NlZCgiYXNzZXJ0QXJyYXlFcXVhbHNXaXRoRXBzaWxvbiIsIG5hbWUsIHYsIHAsIGwpOworICBy
ZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gYXNzZXJ0Tm90RXF1YWxzKG5hbWUsIHYsIHApIHsK
KyAgaWYgKHAgPT0gbnVsbCkgeyBwID0gdjsgdiA9IG5hbWU7IG5hbWUgPSBudWxsOyB9CisgIGlm
IChjb21wYXJlKHYsIHApKSB7CisgICAgdGVzdEZhaWxlZCgiYXNzZXJ0Tm90RXF1YWxzIiwgbmFt
ZSwgdiwgcCkKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgi
YXNzZXJ0Tm90RXF1YWxzIiwgbmFtZSwgdiwgcCkKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorfQor
CitmdW5jdGlvbiB0aW1lKGVsZW1lbnRJZCwgZikgeworICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICB2YXIgdDAgPSBuZXcgRGF0ZSgpLmdldFRpbWUo
KTsKKyAgICBmKCk7CisgICAgdmFyIHQxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CisgICAgcy50
ZXh0Q29udGVudCA9ICdFbGFwc2VkOiAnKyh0MS10MCkrJyBtcyc7Cit9CisKK2Z1bmN0aW9uIHJh
bmRvbUZsb2F0ICgpIHsKKyAgICAvLyBub3RlIHRoYXQgaW4gZnV6ei10ZXN0aW5nLCB0aGlzIGNh
biB1c2VkIGFzIHRoZSBzaXplIG9mIGEgYnVmZmVyIHRvIGFsbG9jYXRlLgorICAgIC8vIHNvIGl0
IHNob3VsZG4ndCByZXR1cm4gYXN0cm9ub21pYyB2YWx1ZXMuIFRoZSBtYXhpbXVtIHZhbHVlIDEw
MDAwMDAwIGlzIGFscmVhZHkgcXVpdGUgYmlnLgorICAgIHZhciBmYWMgPSAxLjA7CisgICAgdmFy
IHIgPSBNYXRoLnJhbmRvbSgpOworICAgIGlmIChyIDwgMC4yNSkKKyAgICAgICAgZmFjID0gMTA7
CisgICAgZWxzZSBpZiAociA8IDAuNCkKKyAgICAgICAgZmFjID0gMTAwOworICAgIGVsc2UgaWYg
KHIgPCAwLjUpCisgICAgICAgIGZhYyA9IDEwMDA7CisgICAgZWxzZSBpZiAociA8IDAuNikKKyAg
ICAgICAgZmFjID0gMTAwMDAwOworICAgIGVsc2UgaWYgKHIgPCAwLjcpCisgICAgICAgIGZhYyA9
IDEwMDAwMDAwOworICAgIGVsc2UgaWYgKHIgPCAwLjgpCisgICAgICAgIGZhYyA9IE5hTjsKKyAg
ICByZXR1cm4gLTAuNSpmYWMgKyBNYXRoLnJhbmRvbSgpICogZmFjOworfQorZnVuY3Rpb24gcmFu
ZG9tRmxvYXRGcm9tUmFuZ2UobG8sIGhpKSB7CisgIHZhciByID0gTWF0aC5yYW5kb20oKTsKKyAg
aWYgKHIgPCAwLjA1KQorICAgIHJldHVybiBsbzsKKyAgZWxzZSBpZiAociA+IDAuOTUpCisgICAg
cmV0dXJuIGhpOworICBlbHNlCisgICAgcmV0dXJuIGxvICsgTWF0aC5yYW5kb20oKSooaGktbG8p
OworfQorZnVuY3Rpb24gcmFuZG9tSW50IChzeikgeworICBpZiAoc3ogIT0gbnVsbCkKKyAgICBy
ZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnN6KTsKKyAgZWxzZQorICAgIHJldHVybiBN
YXRoLmZsb29yKHJhbmRvbUZsb2F0KCkpOworfQorZnVuY3Rpb24gcmFuZG9tSW50RnJvbVJhbmdl
KGxvLCBoaSkgeworICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21GbG9hdEZyb21SYW5nZShsbywg
aGkpKTsKK30KK2Z1bmN0aW9uIHJhbmRvbUxlbmd0aCAoKSB7CisgICAgdmFyIGwgPSBNYXRoLmZs
b29yKE1hdGgucmFuZG9tKCkgKiAyNTYpOworICAgIGlmIChNYXRoLnJhbmRvbSA8IDAuNSkgbCA9
IGwgLyAxMDsKKyAgICBpZiAoTWF0aC5yYW5kb20gPCAwLjMpIGwgPSBsIC8gMTA7CisgICAgcmV0
dXJuIGw7Cit9CitmdW5jdGlvbiByYW5kb21TbWFsbEludEFycmF5ICgpIHsKKyAgICB2YXIgbCA9
IHJhbmRvbUxlbmd0aCgpOworICAgIHZhciBzID0gbmV3IEFycmF5KGwpOworICAgIGZvciAodmFy
IGk9MDsgaTxsOyBpKyspCisgICAgICAgIHNbaV0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkg
KiAyNTYpLTE7CisgICAgcmV0dXJuIHM7Cit9CitmdW5jdGlvbiByYW5kb21GbG9hdEFycmF5ICgp
IHsKKyAgICB2YXIgbCA9IHJhbmRvbUxlbmd0aCgpOworICAgIHZhciBzID0gbmV3IEFycmF5KGwp
OworICAgIGZvciAodmFyIGk9MDsgaTxsOyBpKyspCisgICAgICAgIHNbaV0gPSByYW5kb21GbG9h
dCgpOworICAgIHJldHVybiBzOworfQorZnVuY3Rpb24gcmFuZG9tSW50QXJyYXkgKCkgeworICAg
IHZhciBsID0gcmFuZG9tTGVuZ3RoKCk7CisgICAgdmFyIHMgPSBuZXcgQXJyYXkobCk7CisgICAg
Zm9yICh2YXIgaT0wOyBpPGw7IGkrKykKKyAgICAgICAgc1tpXSA9IHJhbmRvbUZsb2F0KCk7Cisg
ICAgcmV0dXJuIHM7Cit9CitmdW5jdGlvbiByYW5kb21NaXhlZEFycmF5ICgpIHsKKyAgICB2YXIg
bCA9IHJhbmRvbUxlbmd0aCgpOworICAgIHZhciBzID0gbmV3IEFycmF5KGwpOworICAgIGZvciAo
dmFyIGk9MDsgaTxsOyBpKyspCisgICAgICAgIHNbaV0gPSByYW5kb21Ob25BcnJheSgpOworICAg
IHJldHVybiBzOworfQorZnVuY3Rpb24gcmFuZG9tQXJyYXkgKCkgeworICAgIHZhciByID0gTWF0
aC5yYW5kb20oKTsKKyAgICBpZiAociA8IDAuMykKKyAgICAgICAgcmV0dXJuIHJhbmRvbUZsb2F0
QXJyYXkoKTsKKyAgICBlbHNlIGlmIChyIDwgMC42KQorICAgICAgICByZXR1cm4gcmFuZG9tSW50
QXJyYXkoKTsKKyAgICBlbHNlIGlmIChyIDwgMC44KQorICAgICAgICByZXR1cm4gcmFuZG9tU21h
bGxJbnRBcnJheSgpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIHJhbmRvbU1peGVkQXJyYXko
KTsKK30KK2Z1bmN0aW9uIHJhbmRvbVN0cmluZyAoKSB7CisgICAgcmV0dXJuIFN0cmluZy5mcm9t
Q2hhckNvZGUuYXBwbHkoU3RyaW5nLCByYW5kb21TbWFsbEludEFycmF5KCkpOworfQorZnVuY3Rp
b24gcmFuZG9tR0xDb25zdGFudCAoKSB7CisgICAgcmV0dXJuIEdMQ29uc3RhbnRzW01hdGguZmxv
b3IoTWF0aC5yYW5kb20oKSAqIEdMQ29uc3RhbnRzLmxlbmd0aCldOworfQorCitmdW5jdGlvbiBy
YW5kb21Ob25BcnJheSgpIHsKKyAgICB2YXIgciA9IE1hdGgucmFuZG9tKCk7CisgICAgaWYgKHIg
PCAwLjI1KSB7CisgICAgICAgIHJldHVybiByYW5kb21GbG9hdCgpOworICAgIH0gZWxzZSBpZiAo
ciA8IDAuNikgeworICAgICAgICByZXR1cm4gcmFuZG9tSW50KCk7CisgICAgfSBlbHNlIGlmIChy
IDwgMC43KSB7CisgICAgICAgIHJldHVybiAociA8IDAuNjUpOworICAgIH0gZWxzZSBpZiAociA8
IDAuODcpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbVN0cmluZygpOworICAgIH0gZWxzZSBpZiAo
ciA8IDAuOTgpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdlbmVyYXRl
UmFuZG9tQXJnKHBvcywgY291bnQpIHsKKyAgICBpZiAocG9zID09IDAgJiYgTWF0aC5yYW5kb20o
KSA8IDAuNSkKKyAgICAgICAgcmV0dXJuIHJhbmRvbUdMQ29uc3RhbnQoKTsKKyAgICBpZiAocG9z
ID09IGNvdW50LTEgJiYgTWF0aC5yYW5kb20oKSA8IDAuMjUpCisgICAgICAgIGlmIChNYXRoLnJh
bmRvbSgpIDwgMC41KQorICAgICAgICAgICAgcmV0dXJuIHJhbmRvbVN0cmluZygpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZXR1cm4gcmFuZG9tQXJyYXkoKTsKKyAgICB2YXIgciA9IE1h
dGgucmFuZG9tKCk7CisgICAgaWYgKHIgPCAwLjI1KSB7CisgICAgICAgIHJldHVybiByYW5kb21G
bG9hdCgpOworICAgIH0gZWxzZSBpZiAociA8IDAuNikgeworICAgICAgICByZXR1cm4gcmFuZG9t
SW50KCk7CisgICAgfSBlbHNlIGlmIChyIDwgMC43KSB7CisgICAgICAgIHJldHVybiAociA8IDAu
NjUpOworICAgIH0gZWxzZSBpZiAociA8IDAuNzcpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbVN0
cmluZygpOworICAgIH0gZWxzZSBpZiAociA8IDAuODQpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRv
bUFycmF5KCk7CisgICAgfSBlbHNlIGlmIChyIDwgMC45OCkgeworICAgICAgICByZXR1cm4gcmFu
ZG9tR0xDb25zdGFudCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBudWxsOworICAg
IH0KK30KKworCitmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUFyZ3MoY291bnQpIHsKKyAgICB2YXIg
YXJyID0gbmV3IEFycmF5KGNvdW50KTsKKyAgICBmb3IgKHZhciBpPTA7IGk8Y291bnQ7IGkrKykK
KyAgICAgICAgYXJyW2ldID0gZ2VuZXJhdGVSYW5kb21BcmcoaSwgY291bnQpOworICAgIHJldHVy
biBhcnI7Cit9CisKKy8vIHFjIChhcmcxZ2VuLCBhcmcyZ2VuLCAuLi4sIHByZWRpY2F0ZSkKKy8v
IHFjIChyYW5kb21TdHJpbmcsIHJhbmRvbUludCwgcmFuZG9tSW50LCBmdW5jdGlvbihzLGksail7
IHMuc3Vic3RyaW5nKGksaikgfSkKK2Z1bmN0aW9uIHFjKCkgeworfQorCitHTENvbnN0YW50cyA9
IFsKKzEsCisweDAwMDAwMTAwLAorMHgwMDAwMDQwMCwKKzB4MDAwMDQwMDAsCisweDAwMDAsCisw
eDAwMDEsCisweDAwMDIsCisweDAwMDMsCisweDAwMDQsCisweDAwMDUsCisweDAwMDYsCiswLAor
MSwKKzB4MDMwMCwKKzB4MDMwMSwKKzB4MDMwMiwKKzB4MDMwMywKKzB4MDMwNCwKKzB4MDMwNSwK
KzB4MDMwNiwKKzB4MDMwNywKKzB4MDMwOCwKKzB4ODAwNiwKKzB4ODAwOSwKKzB4ODAwOSwKKzB4
ODgzRCwKKzB4ODAwQSwKKzB4ODAwQiwKKzB4ODBDOCwKKzB4ODBDOSwKKzB4ODBDQSwKKzB4ODBD
QiwKKzB4ODAwMSwKKzB4ODAwMiwKKzB4ODAwMywKKzB4ODAwNCwKKzB4ODAwNSwKKzB4ODg5MiwK
KzB4ODg5MywKKzB4ODg5NCwKKzB4ODg5NSwKKzB4ODhFMCwKKzB4ODhFNCwKKzB4ODhFOCwKKzB4
ODc2NCwKKzB4ODc2NSwKKzB4ODYyNiwKKzB4MDQwNCwKKzB4MDQwNSwKKzB4MDQwOCwKKzB4MERF
MSwKKzB4MEI0NCwKKzB4MEJFMiwKKzB4MEJEMCwKKzB4MEI5MCwKKzB4MEI3MSwKKzB4MEMxMSwK
KzB4ODAzNywKKzB4ODA5RSwKKzB4ODBBMCwKKzAsCisweDA1MDAsCisweDA1MDEsCisweDA1MDIs
CisweDA1MDUsCisweDA5MDAsCisweDA5MDEsCisweDBCMjEsCisweDg0NkQsCisweDg0NkUsCisw
eDBCNDUsCisweDBCNDYsCisweDBCNzAsCisweDBCNzIsCisweDBCNzMsCisweDBCNzQsCisweDBC
OTEsCisweDBCOTIsCisweDBCOTQsCisweDBCOTUsCisweDBCOTYsCisweDBCOTcsCisweDBCOTMs
CisweDBCOTgsCisweDg4MDAsCisweDg4MDEsCisweDg4MDIsCisweDg4MDMsCisweDhDQTMsCisw
eDhDQTQsCisweDhDQTUsCisweDBCQTIsCisweDBDMTAsCisweDBDMjIsCisweDBDMjMsCisweDBD
RjUsCisweDBEMDUsCisweDBEMzMsCisweDBEM0EsCisweDBENTAsCisweDBENTIsCisweDBENTMs
CisweDBENTQsCisweDBENTUsCisweDBENTYsCisweDBENTcsCisweDJBMDAsCisweDgwMzgsCisw
eDgwNjksCisweDgwQTgsCisweDgwQTksCisweDgwQUEsCisweDgwQUIsCisweDg2QTIsCisweDg2
QTMsCisweDExMDAsCisweDExMDEsCisweDExMDIsCisweDgxOTIsCisweDE0MDAsCisweDE0MDEs
CisweDE0MDIsCisweDE0MDMsCisweDE0MDQsCisweDE0MDUsCisweDE0MDYsCisweDE0MEMsCisw
eDE5MDIsCisweDE5MDYsCisweDE5MDcsCisweDE5MDgsCisweDE5MDksCisweDE5MEEsCisweDgw
MzMsCisweDgwMzQsCisweDgzNjMsCisweDhCMzAsCisweDhCMzEsCisweDg4NjksCisweDhERkIs
CisweDhERkMsCisweDhCNEQsCisweDhCNEMsCisweDg4NzIsCisweDhERkQsCisweDhCNEYsCisw
eDhCODAsCisweDhCODIsCisweDhCODMsCisweDhCODUsCisweDhCODYsCisweDhCODcsCisweDhC
ODksCisweDhCOEEsCisweDhCOEMsCisweDhCOEQsCisweDAyMDAsCisweDAyMDEsCisweDAyMDIs
CisweDAyMDMsCisweDAyMDQsCisweDAyMDUsCisweDAyMDYsCisweDAyMDcsCisweDFFMDAsCisw
eDFFMDEsCisweDFFMDIsCisweDFFMDMsCisweDE1MEEsCisweDg1MDcsCisweDg1MDgsCisweDFG
MDAsCisweDFGMDEsCisweDFGMDIsCisweDFGMDMsCisweDI2MDAsCisweDI2MDEsCisweDI3MDAs
CisweDI3MDEsCisweDI3MDIsCisweDI3MDMsCisweDI4MDAsCisweDI4MDEsCisweDI4MDIsCisw
eDI4MDMsCisweDE3MDIsCisweDg1MTMsCisweDg1MTQsCisweDg1MTUsCisweDg1MTYsCisweDg1
MTcsCisweDg1MTgsCisweDg1MTksCisweDg1MUEsCisweDg1MUMsCisweDg0QzAsCisweDg0QzEs
CisweDg0QzIsCisweDg0QzMsCisweDg0QzQsCisweDg0QzUsCisweDg0QzYsCisweDg0QzcsCisw
eDg0QzgsCisweDg0QzksCisweDg0Q0EsCisweDg0Q0IsCisweDg0Q0MsCisweDg0Q0QsCisweDg0
Q0UsCisweDg0Q0YsCisweDg0RDAsCisweDg0RDEsCisweDg0RDIsCisweDg0RDMsCisweDg0RDQs
CisweDg0RDUsCisweDg0RDYsCisweDg0RDcsCisweDg0RDgsCisweDg0RDksCisweDg0REEsCisw
eDg0REIsCisweDg0REMsCisweDg0REQsCisweDg0REUsCisweDg0REYsCisweDg0RTAsCisweDI5
MDEsCisweDgxMkYsCisweDgzNzAsCisweDhCNTAsCisweDhCNTEsCisweDhCNTIsCisweDhCNTMs
CisweDhCNTQsCisweDhCNTUsCisweDhCNTYsCisweDhCNTcsCisweDhCNTgsCisweDhCNTksCisw
eDhCNUEsCisweDhCNUIsCisweDhCNUMsCisweDhCNUUsCisweDhCNjAsCisweDg2MjIsCisweDg2
MjMsCisweDg2MjQsCisweDg2MjUsCisweDg4NkEsCisweDg2NDUsCisweDg4OUYsCisweDhCOUEs
CisweDhCOUIsCisweDhCODEsCisweDhCODQsCisweDhCODgsCisweDhERkEsCisweDhERjgsCisw
eDhERjksCisweDhERjAsCisweDhERjEsCisweDhERjIsCisweDhERjMsCisweDhERjQsCisweDhE
RjUsCisweDhENDAsCisweDhENDEsCisweDgwNTYsCisweDgwNTcsCisweDhENjIsCisweDgxQTUs
CisweDE5MDEsCisweDhENDgsCisweDhENDIsCisweDhENDMsCisweDhENDQsCisweDhENTAsCisw
eDhENTEsCisweDhENTIsCisweDhENTMsCisweDhENTQsCisweDhENTUsCisweDhDRDAsCisweDhD
RDEsCisweDhDRDIsCisweDhDRDMsCisweDhDRTAsCisweDhEMDAsCisweDhEMjAsCiswLAorMHg4
Q0Q1LAorMHg4Q0Q2LAorMHg4Q0Q3LAorMHg4Q0Q5LAorMHg4Q0RELAorMHg4Q0E2LAorMHg4Q0E3
LAorMHg4NEU4LAorMHgwNTA2LAorMHg4MDlECitdOworCitmdW5jdGlvbiByZXBvcnRUZXN0UmVz
dWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xU
ZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5yZXBvcnRS
ZXN1bHRzKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgc3VjY2VzcywgbXNnKTsKKyAgfQorfQor
CitmdW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpIHsKKyAgaWYgKHdpbmRvdy5wYXJl
bnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVz
cy5ub3RpZnlGaW5pc2hlZCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpOworICB9Cit9CisKK2Z1
bmN0aW9uIGluaXRUZXN0cygpIHsKKyAgaWYgKFRlc3RzLm1lc3NhZ2UgIT0gbnVsbCkgeworICAg
IHZhciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtbWVzc2FnZScpOworICAgIGlm
IChoID09IG51bGwpIHsKKyAgICAgIGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7Cisg
ICAgICBoLmlkID0gJ3Rlc3QtbWVzc2FnZSc7CisgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJl
Zm9yZShoLCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworICAgIH0KKyAgICBoLnRleHRDb250
ZW50ID0gVGVzdHMubWVzc2FnZTsKKyAgfQorICBpZiAoVGVzdHMuYXV0b3J1bikgeworICAgIHJ1
blRlc3RzKCk7CisgIH0gZWxzZSB7CisgICAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdC1ydW4nKTsKKyAgICBpZiAoaCA9PSBudWxsKSB7CisgICAgICBoID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKyAgICAgIGgudHlwZSA9ICdzdWJtaXQnOworICAgICAg
aC52YWx1ZSA9ICJSdW4gdGVzdHMiOworICAgICAgaC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZ1bmN0aW9uKGV2KXsKKyAgICAgICAgcnVuVGVzdHMoKTsKKyAgICAgICAgZXYucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIGguaWQgPSAndGVzdC1ydW4nOworICAg
ICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaCwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxk
KTsKKyAgICB9CisgICAgaC50ZXh0Q29udGVudCA9IFRlc3RzLm1lc3NhZ2U7CisgIH0KKworfQor
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCl7CisgIGlmIChUZXN0
cy5hdXRvaW5pdCkgeworICAgIC8vIGxldCB0aGUgYnJvd3NlciBob3BlZnVsbHkgZmluaXNoIHVw
ZGF0aW5nIHRoZSBnbCBjYW52YXMgc3VyZmFjZXMgaWYgd2UgYXJlIGdpdmVuIGEgZGVsYXkKKyAg
ICBpZiAoVGVzdHMuZGVsYXkpCisgICAgICBzZXRUaW1lb3V0KGluaXRUZXN0cywgVGVzdHMuZGVs
YXkpOworICAgIGVsc2UKKyAgICAgIGluaXRUZXN0cygpCisgIH0KK30sIGZhbHNlKTsKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvdXRpbC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OGNjMDhhNjUyYjlmNWQxNGU0MDZmZTRkYjc3OTkwZGNmMDA1MjFlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL3V0aWwuanMKQEAgLTAsMCArMSwxMjg3
IEBACisvKgorVXRpbGl0aWVzIGZvciB0aGUgT3BlbkdMIEVTIDIuMCBIVE1MIENhbnZhcyBjb250
ZXh0CisqLworCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKK2Z1
bmN0aW9uIGxvYWRUZXh0dXJlKGdsLCBlbGVtLCBtaXBtYXBzKSB7CisgIHZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Cisg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgZWxlbSk7CisgIGlmIChtaXBtYXBzICE9IGZhbHNlKQorICAgIGdsLmdlbmVy
YXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7
CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVS
LCBnbC5MSU5FQVIpOworICBpZiAobWlwbWFwcykKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSX01JUE1BUF9MSU5FQVIp
OworICBlbHNlCisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLkxJTkVBUik7CisgIHJldHVybiB0ZXg7Cit9CisKK2Z1bmN0aW9uIGdl
dFNoYWRlcihnbCwgaWQpIHsKKyAgdmFyIHNoYWRlclNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKTsKKyAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKKyAgICB0aHJvdyhuZXcgRXJyb3Io
Ik5vIHNoYWRlciBlbGVtZW50IHdpdGggaWQ6ICIraWQpKTsKKyAgfQorCisgIHZhciBzdHIgPSAi
IjsKKyAgdmFyIGsgPSBzaGFkZXJTY3JpcHQuZmlyc3RDaGlsZDsKKyAgd2hpbGUgKGspIHsKKyAg
ICBpZiAoay5ub2RlVHlwZSA9PSAzKQorICAgICAgc3RyICs9IGsudGV4dENvbnRlbnQ7CisgICAg
ayA9IGsubmV4dFNpYmxpbmc7CisgIH0KKworICB2YXIgc2hhZGVyOworICBpZiAoc2hhZGVyU2Ny
aXB0LnR5cGUgPT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKSB7CisgICAgc2hhZGVyID0gZ2wuY3Jl
YXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CisgIH0gZWxzZSBpZiAoc2hhZGVyU2NyaXB0
LnR5cGUgPT0gIngtc2hhZGVyL3gtdmVydGV4IikgeworICAgIHNoYWRlciA9IGdsLmNyZWF0ZVNo
YWRlcihnbC5WRVJURVhfU0hBREVSKTsKKyAgfSBlbHNlIHsKKyAgICB0aHJvdyhuZXcgRXJyb3Io
IlVua25vd24gc2hhZGVyIHR5cGUgIitzaGFkZXJTY3JpcHQudHlwZSkpOworICB9CisKKyAgZ2wu
c2hhZGVyU291cmNlKHNoYWRlciwgc3RyKTsKKyAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwor
CisgIGlmIChnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykg
IT0gMSkgeworICAgIHZhciBpbG9nID0gZ2wuZ2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpOworICAg
IGdsLmRlbGV0ZVNoYWRlcihzaGFkZXIpOworICAgIHRocm93KG5ldyBFcnJvcigiRmFpbGVkIHRv
IGNvbXBpbGUgc2hhZGVyICIrc2hhZGVyU2NyaXB0LmlkICsgIiwgU2hhZGVyIGluZm8gbG9nOiAi
ICsgaWxvZykpOworICB9CisgIHJldHVybiBzaGFkZXI7Cit9CisKK2Z1bmN0aW9uIGxvYWRTaGFk
ZXJBcnJheShnbCwgc2hhZGVycykgeworICB2YXIgaWQgPSBnbC5jcmVhdGVQcm9ncmFtKCk7Cisg
IHZhciBzaGFkZXJPYmpzID0gW107CisgIGZvciAodmFyIGk9MDsgaTxzaGFkZXJzLmxlbmd0aDsg
KytpKSB7CisgICAgdHJ5IHsKKyAgICAgIHZhciBzaCA9IGdldFNoYWRlcihnbCwgc2hhZGVyc1tp
XSk7CisgICAgICBzaGFkZXJPYmpzLnB1c2goc2gpOworICAgICAgZ2wuYXR0YWNoU2hhZGVyKGlk
LCBzaCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgdmFyIHByID0ge3Byb2dyYW06IGlkLCBz
aGFkZXJzOiBzaGFkZXJPYmpzfTsKKyAgICAgIGRlbGV0ZVNoYWRlcihnbCwgcHIpOworICAgICAg
dGhyb3cgKGUpOworICAgIH0KKyAgfQorICB2YXIgcHJvZyA9IHtwcm9ncmFtOiBpZCwgc2hhZGVy
czogc2hhZGVyT2Jqc307CisgIGdsLmxpbmtQcm9ncmFtKGlkKTsKKyAgZ2wudmFsaWRhdGVQcm9n
cmFtKGlkKTsKKyAgaWYgKGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoaWQsIGdsLkxJTktfU1RBVFVT
KSAhPSAxKSB7CisgICAgZGVsZXRlU2hhZGVyKGdsLHByb2cpOworICAgIHRocm93KG5ldyBFcnJv
cigiRmFpbGVkIHRvIGxpbmsgc2hhZGVyIikpOworICB9CisgIGlmIChnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKGlkLCBnbC5WQUxJREFURV9TVEFUVVMpICE9IDEpIHsKKyAgICBkZWxldGVTaGFkZXIo
Z2wscHJvZyk7CisgICAgdGhyb3cobmV3IEVycm9yKCJGYWlsZWQgdG8gdmFsaWRhdGUgc2hhZGVy
IikpOworICB9CisgIHJldHVybiBwcm9nOworfQorZnVuY3Rpb24gbG9hZFNoYWRlcihnbCkgewor
ICB2YXIgc2ggPSBbXTsKKyAgZm9yICh2YXIgaT0xOyBpPGFyZ3VtZW50cy5sZW5ndGg7ICsraSkK
KyAgICBzaC5wdXNoKGFyZ3VtZW50c1tpXSk7CisgIHJldHVybiBsb2FkU2hhZGVyQXJyYXkoZ2ws
IHNoKTsKK30KKworZnVuY3Rpb24gZGVsZXRlU2hhZGVyKGdsLCBzaCkgeworICBnbC51c2VQcm9n
cmFtKG51bGwpOworICBzaC5zaGFkZXJzLmZvckVhY2goZnVuY3Rpb24ocyl7CisgICAgZ2wuZGV0
YWNoU2hhZGVyKHNoLnByb2dyYW0sIHMpOworICAgIGdsLmRlbGV0ZVNoYWRlcihzKTsKKyAgfSk7
CisgIGdsLmRlbGV0ZVByb2dyYW0oc2gucHJvZ3JhbSk7Cit9CisKK2Z1bmN0aW9uIGdldEdMRXJy
b3JBc1N0cmluZyhjdHgsIGVycikgeworICBpZiAoZXJyID09PSBjdHguTk9fRVJST1IpIHsKKyAg
ICByZXR1cm4gIk5PX0VSUk9SIjsKKyAgfQorICBmb3IgKHZhciBuYW1lIGluIGN0eCkgeworICAg
IGlmIChjdHhbbmFtZV0gPT09IGVycikgeworICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICB9
CisgIHJldHVybiBlcnIudG9TdHJpbmcoKTsKK30KKworZnVuY3Rpb24gY2hlY2tFcnJvcihnbCwg
bXNnKSB7CisgIHZhciBlID0gZ2wuZ2V0RXJyb3IoKTsKKyAgaWYgKGUgIT0gZ2wuTk9fRVJST1Ip
IHsKKyAgICBsb2coIkVycm9yICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGUpICsgIiBhdCAi
ICsgbXNnKTsKKyAgfQorICByZXR1cm4gZTsKK30KKworZnVuY3Rpb24gdGhyb3dFcnJvcihnbCwg
bXNnKSB7CisgIHZhciBlID0gZ2wuZ2V0RXJyb3IoKTsKKyAgaWYgKGUgIT0gMCkgeworICAgIHRo
cm93KG5ldyBFcnJvcigiRXJyb3IgIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZSkgKyAiIGF0
ICIgKyBtc2cpKTsKKyAgfQorfQorCitNYXRoLmNvdCA9IGZ1bmN0aW9uKHopIHsgcmV0dXJuIDEu
MCAvIE1hdGgudGFuKHopOyB9CisKKy8qCisgIE1hdHJpeCB1dGlsaXRpZXMsIHVzaW5nIHRoZSBP
cGVuR0wgZWxlbWVudCBvcmRlciB3aGVyZQorICB0aGUgbGFzdCA0IGVsZW1lbnRzIGFyZSB0aGUg
dHJhbnNsYXRpb24gY29sdW1uLgorCisgIFVzZXMgZmxhdCBhcnJheXMgYXMgbWF0cmljZXMgZm9y
IHBlcmZvcm1hbmNlLgorCisgIE1vc3Qgb3BlcmF0aW9ucyBoYXZlIGluLXBsYWNlIHZhcmlhbnRz
IHRvIGF2b2lkIGFsbG9jYXRpbmcgdGVtcG9yYXJ5IG1hdHJpY2VzLgorCisgIE5hbWluZyBsb2dp
YzoKKyAgICBNYXRyaXgubWV0aG9kIG9wZXJhdGVzIG9uIGEgNHg0IE1hdHJpeCBhbmQgcmV0dXJu
cyBhIG5ldyBNYXRyaXguCisgICAgTWF0cml4Lm1ldGhvZDN4MyBvcGVyYXRlcyBvbiBhIDN4MyBN
YXRyaXggYW5kIHJldHVybnMgYSBuZXcgTWF0cml4LiBOb3QgYWxsIG9wZXJhdGlvbnMgaGF2ZSBh
IDN4MyB2ZXJzaW9uIChhcyAzeDMgaXMgdXN1YWxseSBvbmx5IHVzZWQgZm9yIHRoZSBub3JtYWwg
bWF0cml4OiBNYXRyaXgudHJhbnNwb3NlM3gzKE1hdHJpeC5pbnZlcnNlVG8zeDMobWF0NHg0KSkp
CisgICAgTWF0cml4Lm1ldGhvZFszeDNdSW5QbGFjZShhcmdzLCB0YXJnZXQpIHN0b3JlcyBpdHMg
cmVzdWx0IGluIHRoZSB0YXJnZXQgbWF0cml4LgorCisgICAgTWF0cml4LnNjYWxlKFtzeCwgc3ks
IHN6XSkgLS0gbm9uLXVuaWZvcm0gc2NhbGUgYnkgdmVjdG9yCisgICAgTWF0cml4LnNjYWxlMShz
KSAgICAgICAgICAgLS0gdW5pZm9ybSBzY2FsZSBieSBzY2FsYXIKKyAgICBNYXRyaXguc2NhbGUz
KHN4LCBzeSwgc3opICAtLSBub24tdW5pZm9ybSBzY2FsZSBieSBzY2FsYXJzCisKKyAgICBEaXR0
byBmb3IgdHJhbnNsYXRlLgorKi8KK01hdHJpeCA9IHsKKyAgaWRlbnRpdHkgOiBbCisgICAgMS4w
LCAwLjAsIDAuMCwgMC4wLAorICAgIDAuMCwgMS4wLCAwLjAsIDAuMCwKKyAgICAwLjAsIDAuMCwg
MS4wLCAwLjAsCisgICAgMC4wLCAwLjAsIDAuMCwgMS4wCisgIF0sCisKKyAgbmV3SWRlbnRpdHkg
OiBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gWworICAgICAgMS4wLCAwLjAsIDAuMCwgMC4wLAor
ICAgICAgMC4wLCAxLjAsIDAuMCwgMC4wLAorICAgICAgMC4wLCAwLjAsIDEuMCwgMC4wLAorICAg
ICAgMC4wLCAwLjAsIDAuMCwgMS4wCisgICAgXTsKKyAgfSwKKworICBuZXdJZGVudGl0eTN4MyA6
IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBbCisgICAgICAxLjAsIDAuMCwgMC4wLAorICAgICAg
MC4wLCAxLjAsIDAuMCwKKyAgICAgIDAuMCwgMC4wLCAxLjAKKyAgICBdOworICB9LAorCisgIGNv
cHlNYXRyaXggOiBmdW5jdGlvbihzcmMsIGRzdCkgeworICAgIGZvciAodmFyIGk9MDsgaTwxNjsg
aSsrKSBkc3RbaV0gPSBzcmNbaV07CisgICAgcmV0dXJuIGRzdDsKKyAgfSwKKworICB0bzN4MyA6
IGZ1bmN0aW9uKG0pIHsKKyAgICByZXR1cm4gWworICAgICAgbVswXSwgbVsxXSwgbVsyXSwKKyAg
ICAgIG1bNF0sIG1bNV0sIG1bNl0sCisgICAgICBtWzhdLCBtWzldLCBtWzEwXQorICAgIF07Cisg
IH0sCisKKyAgLy8gb3J0aG9ub3JtYWwgbWF0cml4IGludmVyc2UKKyAgaW52ZXJzZU9OIDogZnVu
Y3Rpb24obSkgeworICAgIHZhciBuID0gdGhpcy50cmFuc3Bvc2U0eDQobSk7CisgICAgdmFyIHQg
PSBbbVsxMl0sIG1bMTNdLCBtWzE0XV07CisgICAgblszXSA9IG5bN10gPSBuWzExXSA9IDA7Cisg
ICAgblsxMl0gPSAtVmVjMy5kb3QoW25bMF0sIG5bNF0sIG5bOF1dLCB0KTsKKyAgICBuWzEzXSA9
IC1WZWMzLmRvdChbblsxXSwgbls1XSwgbls5XV0sIHQpOworICAgIG5bMTRdID0gLVZlYzMuZG90
KFtuWzJdLCBuWzZdLCBuWzEwXV0sIHQpOworICAgIHJldHVybiBuOworICB9LAorCisgIGludmVy
c2VUbzN4MyA6IGZ1bmN0aW9uKG0pIHsKKyAgICByZXR1cm4gdGhpcy5pbnZlcnNlNHg0dG8zeDNJ
blBsYWNlKG0sIHRoaXMubmV3SWRlbnRpdHkzeDMoKSk7CisgIH0sCisKKyAgaW52ZXJzZVRvM3gz
SW5QbGFjZSA6IGZ1bmN0aW9uKG0sbikgeworICAgIHZhciBhMTEgPSBtWzEwXSptWzVdLW1bNl0q
bVs5XSwKKyAgICAgICAgYTIxID0gLW1bMTBdKm1bMV0rbVsyXSptWzldLAorICAgICAgICBhMzEg
PSBtWzZdKm1bMV0tbVsyXSptWzVdLAorICAgICAgICBhMTIgPSAtbVsxMF0qbVs0XSttWzZdKm1b
OF0sCisgICAgICAgIGEyMiA9IG1bMTBdKm1bMF0tbVsyXSptWzhdLAorICAgICAgICBhMzIgPSAt
bVs2XSptWzBdK21bMl0qbVs0XSwKKyAgICAgICAgYTEzID0gbVs5XSptWzRdLW1bNV0qbVs4XSwK
KyAgICAgICAgYTIzID0gLW1bOV0qbVswXSttWzFdKm1bOF0sCisgICAgICAgIGEzMyA9IG1bNV0q
bVswXS1tWzFdKm1bNF07CisgICAgdmFyIGRldCA9IG1bMF0qKGExMSkgKyBtWzFdKihhMTIpICsg
bVsyXSooYTEzKTsKKyAgICBpZiAoZGV0ID09IDApIC8vIG5vIGludmVyc2UKKyAgICAgIHJldHVy
biBbMSwwLDAsMCwxLDAsMCwwLDFdOworICAgIHZhciBpZGV0ID0gMSAvIGRldDsKKyAgICBuWzBd
ID0gaWRldCphMTE7CisgICAgblsxXSA9IGlkZXQqYTIxOworICAgIG5bMl0gPSBpZGV0KmEzMTsK
KyAgICBuWzNdID0gaWRldCphMTI7CisgICAgbls0XSA9IGlkZXQqYTIyOworICAgIG5bNV0gPSBp
ZGV0KmEzMjsKKyAgICBuWzZdID0gaWRldCphMTM7CisgICAgbls3XSA9IGlkZXQqYTIzOworICAg
IG5bOF0gPSBpZGV0KmEzMzsKKyAgICByZXR1cm4gbjsKKyAgfSwKKworICBpbnZlcnNlM3gzIDog
ZnVuY3Rpb24obSkgeworICAgIHJldHVybiB0aGlzLmludmVyc2UzeDNJblBsYWNlKG0sIHRoaXMu
bmV3SWRlbnRpdHkzeDMoKSk7CisgIH0sCisKKyAgaW52ZXJzZTN4M0luUGxhY2UgOiBmdW5jdGlv
bihtLG4pIHsKKyAgICB2YXIgYTExID0gbVs4XSptWzRdLW1bNV0qbVs3XSwKKyAgICAgICAgYTIx
ID0gLW1bOF0qbVsxXSttWzJdKm1bN10sCisgICAgICAgIGEzMSA9IG1bNV0qbVsxXS1tWzJdKm1b
NF0sCisgICAgICAgIGExMiA9IC1tWzhdKm1bM10rbVs1XSptWzZdLAorICAgICAgICBhMjIgPSBt
WzhdKm1bMF0tbVsyXSptWzZdLAorICAgICAgICBhMzIgPSAtbVs1XSptWzBdK21bMl0qbVszXSwK
KyAgICAgICAgYTEzID0gbVs3XSptWzRdLW1bNF0qbVs4XSwKKyAgICAgICAgYTIzID0gLW1bN10q
bVswXSttWzFdKm1bNl0sCisgICAgICAgIGEzMyA9IG1bNF0qbVswXS1tWzFdKm1bM107CisgICAg
dmFyIGRldCA9IG1bMF0qKGExMSkgKyBtWzFdKihhMTIpICsgbVsyXSooYTEzKTsKKyAgICBpZiAo
ZGV0ID09IDApIC8vIG5vIGludmVyc2UKKyAgICAgIHJldHVybiBbMSwwLDAsMCwxLDAsMCwwLDFd
OworICAgIHZhciBpZGV0ID0gMSAvIGRldDsKKyAgICBuWzBdID0gaWRldCphMTE7CisgICAgblsx
XSA9IGlkZXQqYTIxOworICAgIG5bMl0gPSBpZGV0KmEzMTsKKyAgICBuWzNdID0gaWRldCphMTI7
CisgICAgbls0XSA9IGlkZXQqYTIyOworICAgIG5bNV0gPSBpZGV0KmEzMjsKKyAgICBuWzZdID0g
aWRldCphMTM7CisgICAgbls3XSA9IGlkZXQqYTIzOworICAgIG5bOF0gPSBpZGV0KmEzMzsKKyAg
ICByZXR1cm4gbjsKKyAgfSwKKworICBmcnVzdHVtIDogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0LCBi
b3R0b20sIHRvcCwgem5lYXIsIHpmYXIpIHsKKyAgICB2YXIgWCA9IDIqem5lYXIvKHJpZ2h0LWxl
ZnQpOworICAgIHZhciBZID0gMip6bmVhci8odG9wLWJvdHRvbSk7CisgICAgdmFyIEEgPSAocmln
aHQrbGVmdCkvKHJpZ2h0LWxlZnQpOworICAgIHZhciBCID0gKHRvcCtib3R0b20pLyh0b3AtYm90
dG9tKTsKKyAgICB2YXIgQyA9IC0oemZhcit6bmVhcikvKHpmYXItem5lYXIpOworICAgIHZhciBE
ID0gLTIqemZhcip6bmVhci8oemZhci16bmVhcik7CisKKyAgICByZXR1cm4gWworICAgICAgWCwg
MCwgMCwgMCwKKyAgICAgIDAsIFksIDAsIDAsCisgICAgICBBLCBCLCBDLCAtMSwKKyAgICAgIDAs
IDAsIEQsIDAKKyAgICBdOworIH0sCisKKyAgcGVyc3BlY3RpdmUgOiBmdW5jdGlvbiAoZm92eSwg
YXNwZWN0LCB6bmVhciwgemZhcikgeworICAgIHZhciB5bWF4ID0gem5lYXIgKiBNYXRoLnRhbihm
b3Z5ICogTWF0aC5QSSAvIDM2MC4wKTsKKyAgICB2YXIgeW1pbiA9IC15bWF4OworICAgIHZhciB4
bWluID0geW1pbiAqIGFzcGVjdDsKKyAgICB2YXIgeG1heCA9IHltYXggKiBhc3BlY3Q7CisKKyAg
ICByZXR1cm4gdGhpcy5mcnVzdHVtKHhtaW4sIHhtYXgsIHltaW4sIHltYXgsIHpuZWFyLCB6ZmFy
KTsKKyAgfSwKKworICBtdWw0eDQgOiBmdW5jdGlvbiAoYSxiKSB7CisgICAgcmV0dXJuIHRoaXMu
bXVsNHg0SW5QbGFjZShhLGIsdGhpcy5uZXdJZGVudGl0eSgpKTsKKyAgfSwKKworICBtdWw0eDRJ
blBsYWNlIDogZnVuY3Rpb24gKGEsIGIsIGMpIHsKKyAgICAgICAgY1swXSA9ICAgYlswXSAqIGFb
MF0gKworICAgICAgICAgICAgICAgICBiWzArMV0gKiBhWzRdICsKKyAgICAgICAgICAgICAgICAg
YlswKzJdICogYVs4XSArCisgICAgICAgICAgICAgICAgIGJbMCszXSAqIGFbMTJdOworICAgICAg
ICBjWzArMV0gPSBiWzBdICogYVsxXSArCisgICAgICAgICAgICAgICAgIGJbMCsxXSAqIGFbNV0g
KworICAgICAgICAgICAgICAgICBiWzArMl0gKiBhWzldICsKKyAgICAgICAgICAgICAgICAgYlsw
KzNdICogYVsxM107CisgICAgICAgIGNbMCsyXSA9IGJbMF0gKiBhWzJdICsKKyAgICAgICAgICAg
ICAgICAgYlswKzFdICogYVs2XSArCisgICAgICAgICAgICAgICAgIGJbMCsyXSAqIGFbMTBdICsK
KyAgICAgICAgICAgICAgICAgYlswKzNdICogYVsxNF07CisgICAgICAgIGNbMCszXSA9IGJbMF0g
KiBhWzNdICsKKyAgICAgICAgICAgICAgICAgYlswKzFdICogYVs3XSArCisgICAgICAgICAgICAg
ICAgIGJbMCsyXSAqIGFbMTFdICsKKyAgICAgICAgICAgICAgICAgYlswKzNdICogYVsxNV07Cisg
ICAgICAgIGNbNF0gPSAgIGJbNF0gKiBhWzBdICsKKyAgICAgICAgICAgICAgICAgYls0KzFdICog
YVs0XSArCisgICAgICAgICAgICAgICAgIGJbNCsyXSAqIGFbOF0gKworICAgICAgICAgICAgICAg
ICBiWzQrM10gKiBhWzEyXTsKKyAgICAgICAgY1s0KzFdID0gYls0XSAqIGFbMV0gKworICAgICAg
ICAgICAgICAgICBiWzQrMV0gKiBhWzVdICsKKyAgICAgICAgICAgICAgICAgYls0KzJdICogYVs5
XSArCisgICAgICAgICAgICAgICAgIGJbNCszXSAqIGFbMTNdOworICAgICAgICBjWzQrMl0gPSBi
WzRdICogYVsyXSArCisgICAgICAgICAgICAgICAgIGJbNCsxXSAqIGFbNl0gKworICAgICAgICAg
ICAgICAgICBiWzQrMl0gKiBhWzEwXSArCisgICAgICAgICAgICAgICAgIGJbNCszXSAqIGFbMTRd
OworICAgICAgICBjWzQrM10gPSBiWzRdICogYVszXSArCisgICAgICAgICAgICAgICAgIGJbNCsx
XSAqIGFbN10gKworICAgICAgICAgICAgICAgICBiWzQrMl0gKiBhWzExXSArCisgICAgICAgICAg
ICAgICAgIGJbNCszXSAqIGFbMTVdOworICAgICAgICBjWzhdID0gICBiWzhdICogYVswXSArCisg
ICAgICAgICAgICAgICAgIGJbOCsxXSAqIGFbNF0gKworICAgICAgICAgICAgICAgICBiWzgrMl0g
KiBhWzhdICsKKyAgICAgICAgICAgICAgICAgYls4KzNdICogYVsxMl07CisgICAgICAgIGNbOCsx
XSA9IGJbOF0gKiBhWzFdICsKKyAgICAgICAgICAgICAgICAgYls4KzFdICogYVs1XSArCisgICAg
ICAgICAgICAgICAgIGJbOCsyXSAqIGFbOV0gKworICAgICAgICAgICAgICAgICBiWzgrM10gKiBh
WzEzXTsKKyAgICAgICAgY1s4KzJdID0gYls4XSAqIGFbMl0gKworICAgICAgICAgICAgICAgICBi
WzgrMV0gKiBhWzZdICsKKyAgICAgICAgICAgICAgICAgYls4KzJdICogYVsxMF0gKworICAgICAg
ICAgICAgICAgICBiWzgrM10gKiBhWzE0XTsKKyAgICAgICAgY1s4KzNdID0gYls4XSAqIGFbM10g
KworICAgICAgICAgICAgICAgICBiWzgrMV0gKiBhWzddICsKKyAgICAgICAgICAgICAgICAgYls4
KzJdICogYVsxMV0gKworICAgICAgICAgICAgICAgICBiWzgrM10gKiBhWzE1XTsKKyAgICAgICAg
Y1sxMl0gPSAgIGJbMTJdICogYVswXSArCisgICAgICAgICAgICAgICAgIGJbMTIrMV0gKiBhWzRd
ICsKKyAgICAgICAgICAgICAgICAgYlsxMisyXSAqIGFbOF0gKworICAgICAgICAgICAgICAgICBi
WzEyKzNdICogYVsxMl07CisgICAgICAgIGNbMTIrMV0gPSBiWzEyXSAqIGFbMV0gKworICAgICAg
ICAgICAgICAgICBiWzEyKzFdICogYVs1XSArCisgICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBh
WzldICsKKyAgICAgICAgICAgICAgICAgYlsxMiszXSAqIGFbMTNdOworICAgICAgICBjWzEyKzJd
ID0gYlsxMl0gKiBhWzJdICsKKyAgICAgICAgICAgICAgICAgYlsxMisxXSAqIGFbNl0gKworICAg
ICAgICAgICAgICAgICBiWzEyKzJdICogYVsxMF0gKworICAgICAgICAgICAgICAgICBiWzEyKzNd
ICogYVsxNF07CisgICAgICAgIGNbMTIrM10gPSBiWzEyXSAqIGFbM10gKworICAgICAgICAgICAg
ICAgICBiWzEyKzFdICogYVs3XSArCisgICAgICAgICAgICAgICAgIGJbMTIrMl0gKiBhWzExXSAr
CisgICAgICAgICAgICAgICAgIGJbMTIrM10gKiBhWzE1XTsKKyAgICByZXR1cm4gYzsKKyAgfSwK
KworICBtdWx2NCA6IGZ1bmN0aW9uIChhLCB2KSB7CisgICAgYyA9IG5ldyBBcnJheSg0KTsKKyAg
ICBmb3IgKHZhciBpPTA7IGk8NDsgKytpKSB7CisgICAgICB2YXIgeCA9IDA7CisgICAgICBmb3Ig
KHZhciBrPTA7IGs8NDsgKytrKQorICAgICAgICB4ICs9IHZba10gKiBhW2sqNCtpXTsKKyAgICAg
IGNbaV0gPSB4OworICAgIH0KKyAgICByZXR1cm4gYzsKKyAgfSwKKworICByb3RhdGUgOiBmdW5j
dGlvbiAoYW5nbGUsIGF4aXMpIHsKKyAgICBheGlzID0gVmVjMy5ub3JtYWxpemUoYXhpcyk7Cisg
ICAgdmFyIHg9YXhpc1swXSwgeT1heGlzWzFdLCB6PWF4aXNbMl07CisgICAgdmFyIGMgPSBNYXRo
LmNvcyhhbmdsZSk7CisgICAgdmFyIGMxID0gMS1jOworICAgIHZhciBzID0gTWF0aC5zaW4oYW5n
bGUpOworICAgIHJldHVybiBbCisgICAgICB4KngqYzErYywgeSp4KmMxK3oqcywgeip4KmMxLXkq
cywgMCwKKyAgICAgIHgqeSpjMS16KnMsIHkqeSpjMStjLCB5KnoqYzEreCpzLCAwLAorICAgICAg
eCp6KmMxK3kqcywgeSp6KmMxLXgqcywgeip6KmMxK2MsIDAsCisgICAgICAwLDAsMCwxCisgICAg
XTsKKyAgfSwKKyAgcm90YXRlSW5QbGFjZSA6IGZ1bmN0aW9uKGFuZ2xlLCBheGlzLCBtKSB7Cisg
ICAgYXhpcyA9IFZlYzMubm9ybWFsaXplKGF4aXMpOworICAgIHZhciB4PWF4aXNbMF0sIHk9YXhp
c1sxXSwgej1heGlzWzJdOworICAgIHZhciBjID0gTWF0aC5jb3MoYW5nbGUpOworICAgIHZhciBj
MSA9IDEtYzsKKyAgICB2YXIgcyA9IE1hdGguc2luKGFuZ2xlKTsKKyAgICB2YXIgdG1wTWF0cml4
ID0gdGhpcy50bXBNYXRyaXg7CisgICAgdmFyIHRtcE1hdHJpeDIgPSB0aGlzLnRtcE1hdHJpeDI7
CisgICAgdG1wTWF0cml4WzBdID0geCp4KmMxK2M7IHRtcE1hdHJpeFsxXSA9IHkqeCpjMSt6KnM7
IHRtcE1hdHJpeFsyXSA9IHoqeCpjMS15KnM7IHRtcE1hdHJpeFszXSA9IDA7CisgICAgdG1wTWF0
cml4WzRdID0geCp5KmMxLXoqczsgdG1wTWF0cml4WzVdID0geSp5KmMxK2M7IHRtcE1hdHJpeFs2
XSA9IHkqeipjMSt4KnM7IHRtcE1hdHJpeFs3XSA9IDA7CisgICAgdG1wTWF0cml4WzhdID0geCp6
KmMxK3kqczsgdG1wTWF0cml4WzldID0geSp6KmMxLXgqczsgdG1wTWF0cml4WzEwXSA9IHoqeipj
MStjOyB0bXBNYXRyaXhbMTFdID0gMDsKKyAgICB0bXBNYXRyaXhbMTJdID0gMDsgdG1wTWF0cml4
WzEzXSA9IDA7IHRtcE1hdHJpeFsxNF0gPSAwOyB0bXBNYXRyaXhbMTVdID0gMTsKKyAgICB0aGlz
LmNvcHlNYXRyaXgobSwgdG1wTWF0cml4Mik7CisgICAgcmV0dXJuIHRoaXMubXVsNHg0SW5QbGFj
ZSh0bXBNYXRyaXgyLCB0bXBNYXRyaXgsIG0pOworICB9LAorCisgIHNjYWxlIDogZnVuY3Rpb24o
dikgeworICAgIHJldHVybiBbCisgICAgICB2WzBdLCAwLCAwLCAwLAorICAgICAgMCwgdlsxXSwg
MCwgMCwKKyAgICAgIDAsIDAsIHZbMl0sIDAsCisgICAgICAwLCAwLCAwLCAxCisgICAgXTsKKyAg
fSwKKyAgc2NhbGUzIDogZnVuY3Rpb24oeCx5LHopIHsKKyAgICByZXR1cm4gWworICAgICAgeCwg
MCwgMCwgMCwKKyAgICAgIDAsIHksIDAsIDAsCisgICAgICAwLCAwLCB6LCAwLAorICAgICAgMCwg
MCwgMCwgMQorICAgIF07CisgIH0sCisgIHNjYWxlMSA6IGZ1bmN0aW9uKHMpIHsKKyAgICByZXR1
cm4gWworICAgICAgcywgMCwgMCwgMCwKKyAgICAgIDAsIHMsIDAsIDAsCisgICAgICAwLCAwLCBz
LCAwLAorICAgICAgMCwgMCwgMCwgMQorICAgIF07CisgIH0sCisgIHNjYWxlM0luUGxhY2UgOiBm
dW5jdGlvbih4LCB5LCB6LCBtKSB7CisgICAgdmFyIHRtcE1hdHJpeCA9IHRoaXMudG1wTWF0cml4
OworICAgIHZhciB0bXBNYXRyaXgyID0gdGhpcy50bXBNYXRyaXgyOworICAgIHRtcE1hdHJpeFsw
XSA9IHg7IHRtcE1hdHJpeFsxXSA9IDA7IHRtcE1hdHJpeFsyXSA9IDA7IHRtcE1hdHJpeFszXSA9
IDA7CisgICAgdG1wTWF0cml4WzRdID0gMDsgdG1wTWF0cml4WzVdID0geTsgdG1wTWF0cml4WzZd
ID0gMDsgdG1wTWF0cml4WzddID0gMDsKKyAgICB0bXBNYXRyaXhbOF0gPSAwOyB0bXBNYXRyaXhb
OV0gPSAwOyB0bXBNYXRyaXhbMTBdID0gejsgdG1wTWF0cml4WzExXSA9IDA7CisgICAgdG1wTWF0
cml4WzEyXSA9IDA7IHRtcE1hdHJpeFsxM10gPSAwOyB0bXBNYXRyaXhbMTRdID0gMDsgdG1wTWF0
cml4WzE1XSA9IDE7CisgICAgdGhpcy5jb3B5TWF0cml4KG0sIHRtcE1hdHJpeDIpOworICAgIHJl
dHVybiB0aGlzLm11bDR4NEluUGxhY2UodG1wTWF0cml4MiwgdG1wTWF0cml4LCBtKTsKKyAgfSwK
KyAgc2NhbGUxSW5QbGFjZSA6IGZ1bmN0aW9uKHMsIG0pIHsgcmV0dXJuIHRoaXMuc2NhbGUzSW5Q
bGFjZShzLCBzLCBzLCBtKTsgfSwKKyAgc2NhbGVJblBsYWNlIDogZnVuY3Rpb24ocywgbSkgeyBy
ZXR1cm4gdGhpcy5zY2FsZTNJblBsYWNlKHNbMF0sc1sxXSxzWzJdLG0pOyB9LAorCisgIHRyYW5z
bGF0ZTMgOiBmdW5jdGlvbih4LHkseikgeworICAgIHJldHVybiBbCisgICAgICAxLCAwLCAwLCAw
LAorICAgICAgMCwgMSwgMCwgMCwKKyAgICAgIDAsIDAsIDEsIDAsCisgICAgICB4LCB5LCB6LCAx
CisgICAgXTsKKyAgfSwKKworICB0cmFuc2xhdGUgOiBmdW5jdGlvbih2KSB7CisgICAgcmV0dXJu
IHRoaXMudHJhbnNsYXRlMyh2WzBdLCB2WzFdLCB2WzJdKTsKKyAgfSwKKyAgdG1wTWF0cml4IDog
WzAsMCwwLDAsIDAsMCwwLDAsIDAsMCwwLDAsIDAsMCwwLDBdLAorICB0bXBNYXRyaXgyIDogWzAs
MCwwLDAsIDAsMCwwLDAsIDAsMCwwLDAsIDAsMCwwLDBdLAorICB0cmFuc2xhdGUzSW5QbGFjZSA6
IGZ1bmN0aW9uKHgseSx6LG0pIHsKKyAgICB2YXIgdG1wTWF0cml4ID0gdGhpcy50bXBNYXRyaXg7
CisgICAgdmFyIHRtcE1hdHJpeDIgPSB0aGlzLnRtcE1hdHJpeDI7CisgICAgdG1wTWF0cml4WzBd
ID0gMTsgdG1wTWF0cml4WzFdID0gMDsgdG1wTWF0cml4WzJdID0gMDsgdG1wTWF0cml4WzNdID0g
MDsKKyAgICB0bXBNYXRyaXhbNF0gPSAwOyB0bXBNYXRyaXhbNV0gPSAxOyB0bXBNYXRyaXhbNl0g
PSAwOyB0bXBNYXRyaXhbN10gPSAwOworICAgIHRtcE1hdHJpeFs4XSA9IDA7IHRtcE1hdHJpeFs5
XSA9IDA7IHRtcE1hdHJpeFsxMF0gPSAxOyB0bXBNYXRyaXhbMTFdID0gMDsKKyAgICB0bXBNYXRy
aXhbMTJdID0geDsgdG1wTWF0cml4WzEzXSA9IHk7IHRtcE1hdHJpeFsxNF0gPSB6OyB0bXBNYXRy
aXhbMTVdID0gMTsKKyAgICB0aGlzLmNvcHlNYXRyaXgobSwgdG1wTWF0cml4Mik7CisgICAgcmV0
dXJuIHRoaXMubXVsNHg0SW5QbGFjZSh0bXBNYXRyaXgyLCB0bXBNYXRyaXgsIG0pOworICB9LAor
ICB0cmFuc2xhdGVJblBsYWNlIDogZnVuY3Rpb24odixtKXsgcmV0dXJuIHRoaXMudHJhbnNsYXRl
M0luUGxhY2UodlswXSwgdlsxXSwgdlsyXSwgbSk7IH0sCisKKyAgbG9va0F0IDogZnVuY3Rpb24g
KGV5ZSwgY2VudGVyLCB1cCkgeworICAgIHZhciB6ID0gVmVjMy5kaXJlY3Rpb24oZXllLCBjZW50
ZXIpOworICAgIHZhciB4ID0gVmVjMy5ub3JtYWxpemVJblBsYWNlKFZlYzMuY3Jvc3ModXAsIHop
KTsKKyAgICB2YXIgeSA9IFZlYzMubm9ybWFsaXplSW5QbGFjZShWZWMzLmNyb3NzKHosIHgpKTsK
KworICAgIHZhciBtID0gWworICAgICAgeFswXSwgeVswXSwgelswXSwgMCwKKyAgICAgIHhbMV0s
IHlbMV0sIHpbMV0sIDAsCisgICAgICB4WzJdLCB5WzJdLCB6WzJdLCAwLAorICAgICAgMCwgMCwg
MCwgMQorICAgIF07CisKKyAgICB2YXIgdCA9IFsKKyAgICAgIDEsIDAsIDAsIDAsCisgICAgICAw
LCAxLCAwLCAwLAorICAgICAgMCwgMCwgMSwgMCwKKyAgICAgIC1leWVbMF0sIC1leWVbMV0sIC1l
eWVbMl0sIDEKKyAgICBdOworCisgICAgcmV0dXJuIHRoaXMubXVsNHg0KG0sdCk7CisgIH0sCisK
KyAgdHJhbnNwb3NlNHg0IDogZnVuY3Rpb24obSkgeworICAgIHJldHVybiBbCisgICAgICBtWzBd
LCBtWzRdLCBtWzhdLCBtWzEyXSwKKyAgICAgIG1bMV0sIG1bNV0sIG1bOV0sIG1bMTNdLAorICAg
ICAgbVsyXSwgbVs2XSwgbVsxMF0sIG1bMTRdLAorICAgICAgbVszXSwgbVs3XSwgbVsxMV0sIG1b
MTVdCisgICAgXTsKKyAgfSwKKworICB0cmFuc3Bvc2U0eDRJblBsYWNlIDogZnVuY3Rpb24obSkg
eworICAgIHZhciB0bXAgPSAwLjA7CisgICAgdG1wID0gbVsxXTsgbVsxXSA9IG1bNF07IG1bNF0g
PSB0bXA7CisgICAgdG1wID0gbVsyXTsgbVsyXSA9IG1bOF07IG1bOF0gPSB0bXA7CisgICAgdG1w
ID0gbVszXTsgbVszXSA9IG1bMTJdOyBtWzEyXSA9IHRtcDsKKyAgICB0bXAgPSBtWzZdOyBtWzZd
ID0gbVs5XTsgbVs5XSA9IHRtcDsKKyAgICB0bXAgPSBtWzddOyBtWzddID0gbVsxM107IG1bMTNd
ID0gdG1wOworICAgIHRtcCA9IG1bMTFdOyBtWzExXSA9IG1bMTRdOyBtWzE0XSA9IHRtcDsKKyAg
ICByZXR1cm4gbTsKKyAgfSwKKworICB0cmFuc3Bvc2UzeDMgOiBmdW5jdGlvbihtKSB7CisgICAg
cmV0dXJuIFsKKyAgICAgIG1bMF0sIG1bM10sIG1bNl0sCisgICAgICBtWzFdLCBtWzRdLCBtWzdd
LAorICAgICAgbVsyXSwgbVs1XSwgbVs4XQorICAgIF07CisgIH0sCisKKyAgdHJhbnNwb3NlM3gz
SW5QbGFjZSA6IGZ1bmN0aW9uKG0pIHsKKyAgICB2YXIgdG1wID0gMC4wOworICAgIHRtcCA9IG1b
MV07IG1bMV0gPSBtWzNdOyBtWzNdID0gdG1wOworICAgIHRtcCA9IG1bMl07IG1bMl0gPSBtWzZd
OyBtWzZdID0gdG1wOworICAgIHRtcCA9IG1bNV07IG1bNV0gPSBtWzddOyBtWzddID0gdG1wOwor
ICAgIHJldHVybiBtOworICB9LAorfQorCitWZWMzID0geworICBtYWtlIDogZnVuY3Rpb24oKSB7
IHJldHVybiBbMCwwLDBdOyB9LAorICBjb3B5IDogZnVuY3Rpb24odikgeyByZXR1cm4gW3ZbMF0s
dlsxXSx2WzJdXTsgfSwKKworICBhZGQgOiBmdW5jdGlvbiAodSx2KSB7CisgICAgcmV0dXJuIFt1
WzBdK3ZbMF0sIHVbMV0rdlsxXSwgdVsyXSt2WzJdXTsKKyAgfSwKKworICBzdWIgOiBmdW5jdGlv
biAodSx2KSB7CisgICAgcmV0dXJuIFt1WzBdLXZbMF0sIHVbMV0tdlsxXSwgdVsyXS12WzJdXTsK
KyAgfSwKKworICBuZWdhdGUgOiBmdW5jdGlvbiAodSkgeworICAgIHJldHVybiBbLXVbMF0sIC11
WzFdLCAtdVsyXV07CisgIH0sCisKKyAgZGlyZWN0aW9uIDogZnVuY3Rpb24gKHUsdikgeworICAg
IHJldHVybiB0aGlzLm5vcm1hbGl6ZUluUGxhY2UodGhpcy5zdWIodSx2KSk7CisgIH0sCisKKyAg
bm9ybWFsaXplSW5QbGFjZSA6IGZ1bmN0aW9uKHYpIHsKKyAgICB2YXIgaW1hZyA9IDEuMCAvIE1h
dGguc3FydCh2WzBdKnZbMF0gKyB2WzFdKnZbMV0gKyB2WzJdKnZbMl0pOworICAgIHZbMF0gKj0g
aW1hZzsgdlsxXSAqPSBpbWFnOyB2WzJdICo9IGltYWc7CisgICAgcmV0dXJuIHY7CisgIH0sCisK
KyAgbm9ybWFsaXplIDogZnVuY3Rpb24odikgeworICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZUlu
UGxhY2UodGhpcy5jb3B5KHYpKTsKKyAgfSwKKworICBzY2FsZSA6IGZ1bmN0aW9uKGYsIHYpIHsK
KyAgICByZXR1cm4gW2YqdlswXSwgZip2WzFdLCBmKnZbMl1dOworICB9LAorCisgIGRvdCA6IGZ1
bmN0aW9uKHUsdikgeworICAgIHJldHVybiB1WzBdKnZbMF0gKyB1WzFdKnZbMV0gKyB1WzJdKnZb
Ml07CisgIH0sCisKKyAgaW5uZXIgOiBmdW5jdGlvbih1LHYpIHsKKyAgICByZXR1cm4gW3VbMF0q
dlswXSwgdVsxXSp2WzFdLCB1WzJdKnZbMl1dOworICB9LAorCisgIGNyb3NzIDogZnVuY3Rpb24o
dSx2KSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHVbMV0qdlsyXSAtIHVbMl0qdlsxXSwKKyAgICAg
IHVbMl0qdlswXSAtIHVbMF0qdlsyXSwKKyAgICAgIHVbMF0qdlsxXSAtIHVbMV0qdlswXQorICAg
IF07CisgIH0KK30KKworU2hhZGVyID0gZnVuY3Rpb24oZ2wpeworICB0aGlzLmdsID0gZ2w7Cisg
IHRoaXMuc2hhZGVycyA9IFtdOworICB0aGlzLnVuaWZvcm1Mb2NhdGlvbnMgPSB7fTsKKyAgdGhp
cy5hdHRyaWJMb2NhdGlvbnMgPSB7fTsKKyAgZm9yICh2YXIgaT0xOyBpPGFyZ3VtZW50cy5sZW5n
dGg7IGkrKykgeworICAgIHRoaXMuc2hhZGVycy5wdXNoKGFyZ3VtZW50c1tpXSk7CisgIH0KK30K
K1NoYWRlci5wcm90b3R5cGUgPSB7CisgIGlkIDogbnVsbCwKKyAgZ2wgOiBudWxsLAorICBjb21w
aWxlZCA6IGZhbHNlLAorICBzaGFkZXIgOiBudWxsLAorICBzaGFkZXJzIDogW10sCisKKyAgZGVz
dHJveSA6IGZ1bmN0aW9uKCkgeworICAgIGlmICh0aGlzLnNoYWRlciAhPSBudWxsKSBkZWxldGVT
aGFkZXIodGhpcy5nbCwgdGhpcy5zaGFkZXIpOworICB9LAorCisgIGNvbXBpbGUgOiBmdW5jdGlv
bigpIHsKKyAgICB0aGlzLnNoYWRlciA9IGxvYWRTaGFkZXJBcnJheSh0aGlzLmdsLCB0aGlzLnNo
YWRlcnMpOworICB9LAorCisgIHVzZSA6IGZ1bmN0aW9uKCkgeworICAgIGlmICh0aGlzLnNoYWRl
ciA9PSBudWxsKQorICAgICAgdGhpcy5jb21waWxlKCk7CisgICAgdGhpcy5nbC51c2VQcm9ncmFt
KHRoaXMuc2hhZGVyLnByb2dyYW0pOworICB9LAorCisgIHVuaWZvcm0xZnYgOiBmdW5jdGlvbihu
YW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhp
cy5nbC51bmlmb3JtMWZ2KGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZvcm0yZnYgOiBmdW5j
dGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7Cisg
ICAgdGhpcy5nbC51bmlmb3JtMmZ2KGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZvcm0zZnYg
OiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFt
ZSk7CisgICAgdGhpcy5nbC51bmlmb3JtM2Z2KGxvYywgdmFsdWUpOworICB9LAorCisgIHVuaWZv
cm00ZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZv
cm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtNGZ2KGxvYywgdmFsdWUpOworICB9LAorCisg
IHVuaWZvcm0xZiA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMu
dW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0xZihsb2MsIHZhbHVlKTsKKyAgfSwK
KworICB1bmlmb3JtMmYgOiBmdW5jdGlvbihuYW1lLCB2MSx2MikgeworICAgIHZhciBsb2MgPSB0
aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtMmYobG9jLCB2MSx2Mik7Cisg
IH0sCisKKyAgdW5pZm9ybTNmIDogZnVuY3Rpb24obmFtZSwgdjEsdjIsdjMpIHsKKyAgICB2YXIg
bG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTNmKGxvYywgdjEs
djIsdjMpOworICB9LAorCisgIHVuaWZvcm00ZiA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzLHY0
KSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZv
cm00Zihsb2MsIHYxLCB2MiwgdjMsIHY0KTsKKyAgfSwKKworICB1bmlmb3JtMWl2IDogZnVuY3Rp
b24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAg
IHRoaXMuZ2wudW5pZm9ybTFpdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtMml2IDog
ZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUp
OworICAgIHRoaXMuZ2wudW5pZm9ybTJpdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3Jt
M2l2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3Jt
KG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTNpdihsb2MsIHZhbHVlKTsKKyAgfSwKKworICB1
bmlmb3JtNGl2IDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51
bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTRpdihsb2MsIHZhbHVlKTsKKyAgfSwK
KworICB1bmlmb3JtMWkgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgIHZhciBsb2MgPSB0
aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtMWkobG9jLCB2YWx1ZSk7Cisg
IH0sCisKKyAgdW5pZm9ybTJpIDogZnVuY3Rpb24obmFtZSwgdjEsdjIpIHsKKyAgICB2YXIgbG9j
ID0gdGhpcy51bmlmb3JtKG5hbWUpOworICAgIHRoaXMuZ2wudW5pZm9ybTJpKGxvYywgdjEsdjIp
OworICB9LAorCisgIHVuaWZvcm0zaSA6IGZ1bmN0aW9uKG5hbWUsIHYxLHYyLHYzKSB7CisgICAg
dmFyIGxvYyA9IHRoaXMudW5pZm9ybShuYW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm0zaShsb2Ms
IHYxLHYyLHYzKTsKKyAgfSwKKworICB1bmlmb3JtNGkgOiBmdW5jdGlvbihuYW1lLCB2MSx2Mix2
Myx2NCkgeworICAgIHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51
bmlmb3JtNGkobG9jLCB2MSwgdjIsIHYzLCB2NCk7CisgIH0sCisKKyAgdW5pZm9ybU1hdHJpeDRm
diA6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CisgICAgdmFyIGxvYyA9IHRoaXMudW5pZm9ybShu
YW1lKTsKKyAgICB0aGlzLmdsLnVuaWZvcm1NYXRyaXg0ZnYobG9jLCBmYWxzZSwgdmFsdWUpOwor
ICB9LAorCisgIHVuaWZvcm1NYXRyaXgzZnYgOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAg
IHZhciBsb2MgPSB0aGlzLnVuaWZvcm0obmFtZSk7CisgICAgdGhpcy5nbC51bmlmb3JtTWF0cml4
M2Z2KGxvYywgZmFsc2UsIHZhbHVlKTsKKyAgfSwKKworICB1bmlmb3JtTWF0cml4MmZ2IDogZnVu
Y3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICB2YXIgbG9jID0gdGhpcy51bmlmb3JtKG5hbWUpOwor
ICAgIHRoaXMuZ2wudW5pZm9ybU1hdHJpeDJmdihsb2MsIGZhbHNlLCB2YWx1ZSk7CisgIH0sCisK
KyAgYXR0cmliIDogZnVuY3Rpb24obmFtZSkgeworICAgIGlmICh0aGlzLmF0dHJpYkxvY2F0aW9u
c1tuYW1lXSA9PSBudWxsKSB7CisgICAgICB2YXIgbG9jID0gdGhpcy5nbC5nZXRBdHRyaWJMb2Nh
dGlvbih0aGlzLnNoYWRlci5wcm9ncmFtLCBuYW1lKTsKKyAgICAgIHRoaXMuYXR0cmliTG9jYXRp
b25zW25hbWVdID0gbG9jOworICAgIH0KKyAgICByZXR1cm4gdGhpcy5hdHRyaWJMb2NhdGlvbnNb
bmFtZV07CisgIH0sCisKKyAgdW5pZm9ybSA6IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICBpZiAodGhp
cy51bmlmb3JtTG9jYXRpb25zW25hbWVdID09IG51bGwpIHsKKyAgICAgIHZhciBsb2MgPSB0aGlz
LmdsLmdldFVuaWZvcm1Mb2NhdGlvbih0aGlzLnNoYWRlci5wcm9ncmFtLCBuYW1lKTsKKyAgICAg
IHRoaXMudW5pZm9ybUxvY2F0aW9uc1tuYW1lXSA9IGxvYzsKKyAgICB9CisgICAgcmV0dXJuIHRo
aXMudW5pZm9ybUxvY2F0aW9uc1tuYW1lXTsKKyAgfQorfQorRmlsdGVyID0gZnVuY3Rpb24oZ2ws
IHNoYWRlcikgeworICBTaGFkZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKK30KK0ZpbHRlci5w
cm90b3R5cGUgPSBuZXcgU2hhZGVyKCk7CitGaWx0ZXIucHJvdG90eXBlLmFwcGx5ID0gZnVuY3Rp
b24oaW5pdCkgeworICB0aGlzLnVzZSgpOworICB2YXIgdmEgPSB0aGlzLmF0dHJpYigiVmVydGV4
Iik7CisgIHZhciB0YSA9IHRoaXMuYXR0cmliKCJUZXgiKTsKKyAgdmFyIHZibyA9IFF1YWQuZ2V0
Q2FjaGVkVkJPKHRoaXMuZ2wpOworICBpZiAoaW5pdCkgaW5pdCh0aGlzKTsKKyAgdmJvLmRyYXco
dmEsIG51bGwsIHRhKTsKK30KKworCitWQk8gPSBmdW5jdGlvbihnbCkgeworICB0aGlzLmdsID0g
Z2w7CisgIHRoaXMuZGF0YSA9IFtdOworICB0aGlzLmVsZW1lbnRzVkJPID0gbnVsbDsKKyAgZm9y
ICh2YXIgaT0xOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgIGlmIChhcmd1bWVudHNb
aV0uZWxlbWVudHMpCisgICAgICB0aGlzLmVsZW1lbnRzID0gYXJndW1lbnRzW2ldOworICAgIGVs
c2UKKyAgICAgIHRoaXMuZGF0YS5wdXNoKGFyZ3VtZW50c1tpXSk7CisgIH0KK30KKworVkJPLnBy
b3RvdHlwZSA9IHsKKyAgaW5pdGlhbGl6ZWQgOiBmYWxzZSwKKyAgbGVuZ3RoIDogMCwKKyAgdmJv
cyA6IG51bGwsCisgIHR5cGUgOiAnVFJJQU5HTEVTJywKKyAgZWxlbWVudHNWQk8gOiBudWxsLAor
ICBlbGVtZW50cyA6IG51bGwsCisKKyAgc2V0RGF0YSA6IGZ1bmN0aW9uKCkgeworICAgIHRoaXMu
ZGVzdHJveSgpOworICAgIHRoaXMuZGF0YSA9IFtdOworICAgIGZvciAodmFyIGk9MDsgaTxhcmd1
bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIGlmIChhcmd1bWVudHNbaV0uZWxlbWVudHMpCisg
ICAgICAgIHRoaXMuZWxlbWVudHMgPSBhcmd1bWVudHNbaV07CisgICAgICBlbHNlCisgICAgICAg
IHRoaXMuZGF0YS5wdXNoKGFyZ3VtZW50c1tpXSk7CisgICAgfQorICB9LAorCisgIGRlc3Ryb3kg
OiBmdW5jdGlvbigpIHsKKyAgICBpZiAodGhpcy52Ym9zICE9IG51bGwpCisgICAgICBmb3IgKHZh
ciBpPTA7IGk8dGhpcy52Ym9zLmxlbmd0aDsgaSsrKQorICAgICAgICB0aGlzLmdsLmRlbGV0ZUJ1
ZmZlcih0aGlzLnZib3NbaV0pOworICAgIGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpCisg
ICAgICB0aGlzLmdsLmRlbGV0ZUJ1ZmZlcih0aGlzLmVsZW1lbnRzVkJPKTsKKyAgICB0aGlzLmxl
bmd0aCA9IHRoaXMuZWxlbWVudHNMZW5ndGggPSAwOworICAgIHRoaXMudmJvcyA9IHRoaXMuZWxl
bWVudHNWQk8gPSBudWxsOworICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgfSwKKwor
ICBpbml0IDogZnVuY3Rpb24oKSB7CisgICAgdGhpcy5kZXN0cm95KCk7CisgICAgdmFyIGdsID0g
dGhpcy5nbDsKKworICAgIGdsLmdldEVycm9yKCk7CisgICAgdmFyIHZib3MgPSBbXTsKKyAgICB2
YXIgbGVuZ3RoID0gMDsKKyAgICBmb3IgKHZhciBpPTA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsr
KQorICAgICAgdmJvcy5wdXNoKGdsLmNyZWF0ZUJ1ZmZlcigpKTsKKyAgICBpZiAodGhpcy5lbGVt
ZW50cyAhPSBudWxsKQorICAgICAgdGhpcy5lbGVtZW50c1ZCTyA9IGdsLmNyZWF0ZUJ1ZmZlcigp
OworICAgIHRyeSB7CisgICAgICB0aHJvd0Vycm9yKGdsLCAiZ2VuQnVmZmVycyIpOworICAgICAg
Zm9yICh2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBk
ID0gdGhpcy5kYXRhW2ldOworICAgICAgICB2YXIgZGxlbiA9IE1hdGguZmxvb3IoZC5kYXRhLmxl
bmd0aCAvIGQuc2l6ZSk7CisgICAgICAgIGlmIChpID09IDAgfHwgZGxlbiA8IGxlbmd0aCkKKyAg
ICAgICAgICAgIGxlbmd0aCA9IGRsZW47CisgICAgICAgIGlmICghZC5mbG9hdEFycmF5KQorICAg
ICAgICAgIGQuZmxvYXRBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZC5kYXRhKTsKKyAgICAgICAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZib3NbaV0pOworICAgICAgICB0aHJvd0Vy
cm9yKGdsLCAiYmluZEJ1ZmZlciIpOworICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgZC5mbG9hdEFycmF5LCBnbC5TVEFUSUNfRFJBVyk7CisgICAgICAgIHRocm93RXJyb3Io
Z2wsICJidWZmZXJEYXRhIik7CisgICAgICB9CisgICAgICBpZiAodGhpcy5lbGVtZW50c1ZCTyAh
PSBudWxsKSB7CisgICAgICAgIHZhciBkID0gdGhpcy5lbGVtZW50czsKKyAgICAgICAgdGhpcy5l
bGVtZW50c0xlbmd0aCA9IGQuZGF0YS5sZW5ndGg7CisgICAgICAgIHRoaXMuZWxlbWVudHNUeXBl
ID0gZC50eXBlID09IGdsLlVOU0lHTkVEX0JZVEUgPyBkLnR5cGUgOiBnbC5VTlNJR05FRF9TSE9S
VDsKKyAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5l
bGVtZW50c1ZCTyk7CisgICAgICAgIHRocm93RXJyb3IoZ2wsICJiaW5kQnVmZmVyIEVMRU1FTlRf
QVJSQVlfQlVGRkVSIik7CisgICAgICAgIGlmICh0aGlzLmVsZW1lbnRzVHlwZSA9PSBnbC5VTlNJ
R05FRF9TSE9SVCAmJiAhZC51c2hvcnRBcnJheSkgeworICAgICAgICAgIGQudXNob3J0QXJyYXkg
PSBuZXcgVWludDE2QXJyYXkoZC5kYXRhKTsKKyAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkVM
RU1FTlRfQVJSQVlfQlVGRkVSLCBkLnVzaG9ydEFycmF5LCBnbC5TVEFUSUNfRFJBVyk7CisgICAg
ICAgIH0gZWxzZSBpZiAodGhpcy5lbGVtZW50c1R5cGUgPT0gZ2wuVU5TSUdORURfQllURSAmJiAh
ZC51Ynl0ZUFycmF5KSB7CisgICAgICAgICAgZC51Ynl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXko
ZC5kYXRhKTsKKyAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBkLnVieXRlQXJyYXksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICAgICAgfQorICAgICAgICB0aHJv
d0Vycm9yKGdsLCAiYnVmZmVyRGF0YSBFTEVNRU5UX0FSUkFZX0JVRkZFUiIpOworICAgICAgfQor
ICAgIH0gY2F0Y2goZSkgeworICAgICAgZm9yICh2YXIgaT0wOyBpPHZib3MubGVuZ3RoOyBpKysp
CisgICAgICAgIGdsLmRlbGV0ZUJ1ZmZlcih2Ym9zW2ldKTsKKyAgICAgIHRocm93KGUpOworICAg
IH0KKworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKTsKKyAgICBnbC5i
aW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBudWxsKTsKKworICAgIHRoaXMubGVu
Z3RoID0gbGVuZ3RoOworICAgIHRoaXMudmJvcyA9IHZib3M7CisKKyAgICB0aGlzLmluaXRpYWxp
emVkID0gdHJ1ZTsKKyAgfSwKKworICB1c2UgOiBmdW5jdGlvbigpIHsKKyAgICBpZiAoIXRoaXMu
aW5pdGlhbGl6ZWQpIHRoaXMuaW5pdCgpOworICAgIHZhciBnbCA9IHRoaXMuZ2w7CisgICAgZm9y
ICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKGFyZ3VtZW50
c1tpXSA9PSBudWxsIHx8IGFyZ3VtZW50c1tpXSA9PSAtMSkgY29udGludWU7CisgICAgICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdGhpcy52Ym9zW2ldKTsKKyAgICAgIGdsLnZlcnRl
eEF0dHJpYlBvaW50ZXIoYXJndW1lbnRzW2ldLCB0aGlzLmRhdGFbaV0uc2l6ZSwgZ2wuRkxPQVQs
IGZhbHNlLCAwLCAwKTsKKyAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGFyZ3VtZW50
c1tpXSk7CisgICAgfQorICAgIGlmICh0aGlzLmVsZW1lbnRzVkJPICE9IG51bGwpIHsKKyAgICAg
IGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMuZWxlbWVudHNWQk8p
OworICAgIH0KKyAgfSwKKworICBkcmF3IDogZnVuY3Rpb24oKSB7CisgICAgdmFyIGFyZ3MgPSBb
XTsKKyAgICB0aGlzLnVzZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgIHZhciBnbCA9IHRo
aXMuZ2w7CisgICAgaWYgKHRoaXMuZWxlbWVudHNWQk8gIT0gbnVsbCkgeworICAgICAgZ2wuZHJh
d0VsZW1lbnRzKGdsW3RoaXMudHlwZV0sIHRoaXMuZWxlbWVudHNMZW5ndGgsIHRoaXMuZWxlbWVu
dHNUeXBlLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgZ2wuZHJhd0FycmF5cyhnbFt0aGlzLnR5
cGVdLCAwLCB0aGlzLmxlbmd0aCk7CisgICAgfQorICB9Cit9CisKK0ZCTyA9IGZ1bmN0aW9uKGds
LCB3aWR0aCwgaGVpZ2h0LCB1c2VfZGVwdGgpIHsKKyAgdGhpcy5nbCA9IGdsOworICB0aGlzLndp
ZHRoID0gd2lkdGg7CisgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0OworICBpZiAodXNlX2RlcHRoICE9
IG51bGwpCisgICAgdGhpcy51c2VEZXB0aCA9IHVzZV9kZXB0aDsKK30KK0ZCTy5wcm90b3R5cGUg
PSB7CisgIGluaXRpYWxpemVkIDogZmFsc2UsCisgIHVzZURlcHRoIDogdHJ1ZSwKKyAgZmJvIDog
bnVsbCwKKyAgcmJvIDogbnVsbCwKKyAgdGV4dHVyZSA6IG51bGwsCisKKyAgZGVzdHJveSA6IGZ1
bmN0aW9uKCkgeworICAgIGlmICh0aGlzLmZibykgdGhpcy5nbC5kZWxldGVGcmFtZWJ1ZmZlcih0
aGlzLmZibyk7CisgICAgaWYgKHRoaXMucmJvKSB0aGlzLmdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcih0
aGlzLnJibyk7CisgICAgaWYgKHRoaXMudGV4dHVyZSkgdGhpcy5nbC5kZWxldGVUZXh0dXJlKHRo
aXMudGV4dHVyZSk7CisgIH0sCisKKyAgaW5pdCA6IGZ1bmN0aW9uKCkgeworICAgIHZhciBnbCA9
IHRoaXMuZ2w7CisgICAgdmFyIHcgPSB0aGlzLndpZHRoLCBoID0gdGhpcy5oZWlnaHQ7CisgICAg
dmFyIGZibyA9IHRoaXMuZmJvICE9IG51bGwgPyB0aGlzLmZibyA6IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCk7CisgICAgdmFyIHJiOworCisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSLCBmYm8pOworICAgIGNoZWNrRXJyb3IoZ2wsICJGQk8uaW5pdCBiaW5kRnJhbWVidWZmZXIi
KTsKKyAgICBpZiAodGhpcy51c2VEZXB0aCkgeworICAgICAgcmIgPSB0aGlzLnJibyAhPSBudWxs
ID8gdGhpcy5yYm8gOiBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKKyAgICAgIGdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByYik7CisgICAgICBjaGVja0Vycm9yKGdsLCAiRkJP
LmluaXQgYmluZFJlbmRlcmJ1ZmZlciIpOworICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShn
bC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX0NPTVBPTkVOVDE2LCB3LCBoKTsKKyAgICAgIGNoZWNr
RXJyb3IoZ2wsICJGQk8uaW5pdCByZW5kZXJidWZmZXJTdG9yYWdlIik7CisgICAgfQorCisgICAg
dmFyIHRleCA9IHRoaXMudGV4dHVyZSAhPSBudWxsID8gdGhpcy50ZXh0dXJlIDogZ2wuY3JlYXRl
VGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAg
dHJ5IHsKKyAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdywg
aCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgICAgfSBjYXRjaCAoZSkg
eyAvLyBhcmdoLCBubyBudWxsIHRleHR1cmUgc3VwcG9ydAorICAgICAgdmFyIHRtcCA9IHRoaXMu
Z2V0VGVtcENhbnZhcyh3LGgpOworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB0bXApOworICAgIH0KKyAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFS
KTsKKyAgICBjaGVja0Vycm9yKGdsLCAiRkJPLmluaXQgdGV4Iik7CisKKyAgICBnbC5mcmFtZWJ1
ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRF
WFRVUkVfMkQsIHRleCwgMCk7CisgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmQgdGV4
Iik7CisKKyAgICBpZiAodGhpcy51c2VEZXB0aCkgeworICAgICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJV
RkZFUiwgcmIpOworICAgICAgY2hlY2tFcnJvcihnbCwgIkZCTy5pbml0IGJpbmQgZGVwdGggYnVm
ZmVyIik7CisgICAgfQorCisgICAgdmFyIGZic3RhdCA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpOworICAgIGlmIChmYnN0YXQgIT0gZ2wuRlJBTUVCVUZGRVJfQ09N
UExFVEUpIHsKKyAgICAgIHZhciBnbHY7CisgICAgICBmb3IgKHZhciB2IGluIGdsKSB7CisgICAg
ICAgIHRyeSB7IGdsdiA9IGdsW3ZdOyB9IGNhdGNoIChlKSB7IGdsdiA9IG51bGw7IH0KKyAgICAg
ICAgaWYgKGdsdiA9PSBmYnN0YXQpIHsgZmJzdGF0ID0gdjsgYnJlYWs7IH19CisgICAgICAgIGxv
ZygiRnJhbWVidWZmZXIgc3RhdHVzOiAiICsgZmJzdGF0KTsKKyAgICB9CisgICAgY2hlY2tFcnJv
cihnbCwgIkZCTy5pbml0IGNoZWNrIGZibyIpOworCisgICAgdGhpcy5mYm8gPSBmYm87CisgICAg
dGhpcy5yYm8gPSByYjsKKyAgICB0aGlzLnRleHR1cmUgPSB0ZXg7CisgICAgdGhpcy5pbml0aWFs
aXplZCA9IHRydWU7CisgIH0sCisKKyAgZ2V0VGVtcENhbnZhcyA6IGZ1bmN0aW9uKHcsIGgpIHsK
KyAgICBpZiAoIUZCTy50ZW1wQ2FudmFzKSB7CisgICAgICBGQk8udGVtcENhbnZhcyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIH0KKyAgICBGQk8udGVtcENhbnZhcy53
aWR0aCA9IHc7CisgICAgRkJPLnRlbXBDYW52YXMuaGVpZ2h0ID0gaDsKKyAgICByZXR1cm4gRkJP
LnRlbXBDYW52YXM7CisgIH0sCisKKyAgdXNlIDogZnVuY3Rpb24oKSB7CisgICAgaWYgKCF0aGlz
LmluaXRpYWxpemVkKSB0aGlzLmluaXQoKTsKKyAgICB0aGlzLmdsLmJpbmRGcmFtZWJ1ZmZlcih0
aGlzLmdsLkZSQU1FQlVGRkVSLCB0aGlzLmZibyk7CisgIH0KK30KKworZnVuY3Rpb24gR0xFcnJv
cihlcnIsIG1zZywgZmlsZU5hbWUsIGxpbmVOdW1iZXIpIHsKKyAgdGhpcy5tZXNzYWdlID0gbXNn
OworICB0aGlzLmdsRXJyb3IgPSBlcnI7Cit9CisKK0dMRXJyb3IucHJvdG90eXBlID0gbmV3IEVy
cm9yKCk7CisKK2Z1bmN0aW9uIG1ha2VHTEVycm9yV3JhcHBlcihnbCwgZm5hbWUpIHsKKyAgcmV0
dXJuIChmdW5jdGlvbigpIHsKKyAgICB0cnkgeworICAgICAgdmFyIHJ2ID0gZ2xbZm5hbWVdLmFw
cGx5KGdsLCBhcmd1bWVudHMpOworICAgICAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7CisgICAg
ICBpZiAoZXJyICE9IGdsLk5PX0VSUk9SKSB7CisgICAgICAgIHRocm93KG5ldyBHTEVycm9yKAor
ICAgICAgICAgICAgZXJyLCAiR0wgZXJyb3IgIitnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikr
IiBpbiAiK2ZuYW1lKSk7CisgICAgICB9CisgICAgICByZXR1cm4gcnY7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgaWYgKGUuZ2xFcnJvciAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRocm93
IGU7CisgICAgICB9CisgICAgICB0aHJvdyhuZXcgRXJyb3IoIlRocmV3ICIgKyBlLm5hbWUgKwor
ICAgICAgICAgICAgICAgICAgICAgICIgaW4gIiArIGZuYW1lICsgIlxuIiArCisgICAgICAgICAg
ICAgICAgICAgICAgZS5tZXNzYWdlICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgYXJn
dW1lbnRzLmNhbGxlZS5jYWxsZXIpKTsKKyAgICB9CisgIH0pOworfQorCitmdW5jdGlvbiB3cmFw
R0xDb250ZXh0KGdsKSB7CisgIHZhciB3cmFwID0ge307CisgIGZvciAodmFyIGkgaW4gZ2wpIHsK
KyAgICB0cnkgeworICAgICAgaWYgKHR5cGVvZiBnbFtpXSA9PSAnZnVuY3Rpb24nKSB7CisgICAg
ICAgICAgd3JhcFtpXSA9IG1ha2VHTEVycm9yV3JhcHBlcihnbCwgaSk7CisgICAgICB9IGVsc2Ug
eworICAgICAgICAgIHdyYXBbaV0gPSBnbFtpXTsKKyAgICAgIH0KKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAvLyBsb2coIndyYXBHTENvbnRleHQ6IEVycm9yIGFjY2Vzc2luZyAiICsgaSk7Cisg
ICAgfQorICB9CisgIHdyYXAuZ2V0RXJyb3IgPSBmdW5jdGlvbigpeyByZXR1cm4gZ2wuZ2V0RXJy
b3IoKTsgfTsKKyAgcmV0dXJuIHdyYXA7Cit9CisKK2Z1bmN0aW9uIGdldEdMQ29udGV4dChjYW52
YXMpIHsKKyAgcmV0dXJuIGNhbnZhcy5nZXRDb250ZXh0KEdMX0NPTlRFWFRfSUQsIHthbnRpYWxp
YXM6IGZhbHNlfSk7Cit9CisKKy8vIEFzc2VydCB0aGF0IGYgZ2VuZXJhdGVzIGEgc3BlY2lmaWMg
R0wgZXJyb3IuCitmdW5jdGlvbiBhc3NlcnRHTEVycm9yKGdsLCBlcnIsIG5hbWUsIGYpIHsKKyAg
aWYgKGYgPT0gbnVsbCkgeyBmID0gbmFtZTsgbmFtZSA9IG51bGw7IH0KKyAgdmFyIHIgPSBmYWxz
ZTsKKyAgdmFyIGdsRXJyID0gMDsKKyAgdHJ5IHsgZigpOyB9IGNhdGNoKGUpIHsgcj10cnVlOyBn
bEVyciA9IGUuZ2xFcnJvcjsgfQorICBpZiAoZ2xFcnIgIT09IGVycikgeworICAgIGlmIChnbEVy
ciA9PT0gdW5kZWZpbmVkKSB7CisgICAgICB0ZXN0RmFpbGVkKCJhc3NlcnRHTEVycm9yOiBVTkVY
UEVDVEVEIEVYQ0VQVElPTiIsIG5hbWUsIGYpOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0RmFp
bGVkKCJhc3NlcnRHTEVycm9yOiBleHBlY3RlZDogIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwg
ZXJyKSArCisgICAgICAgICAgICAgICAgICIgYWN0dWFsOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5n
KGdsLCBnbEVyciksIG5hbWUsIGYpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAg
cmV0dXJuIHRydWU7Cit9CisKKy8vIEFzc2VydCB0aGF0IGYgZ2VuZXJhdGVzIGEgR0wgZXJyb3Ig
ZnJvbSBhIGxpc3QuCitmdW5jdGlvbiBhc3NlcnRHTEVycm9ySW4oZ2wsIGV4cGVjdGVkRXJyb3JM
aXN0LCBuYW1lLCBmKSB7CisgIGlmIChmID09IG51bGwpIHsgZiA9IG5hbWU7IG5hbWUgPSBudWxs
OyB9CisKKyAgdmFyIGFjdHVhbEVycm9yID0gMDsKKyAgdHJ5IHsKKyAgICBmKCk7CisgIH0gY2F0
Y2goZSkgeworICAgIGlmICgnZ2xFcnJvcicgaW4gZSkgeworICAgICAgYWN0dWFsRXJyb3IgPSBl
LmdsRXJyb3I7CisgICAgfSBlbHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoImFzc2VydEdMRXJyb3I6
IFVORVhQQ0VURUQgRVhDRVBUSU9OIiwgbmFtZSwgZik7CisgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICB9CisKKyAgdmFyIGV4cGVjdGVkRXJyb3JTdHJMaXN0ID0gW107CisgIHZhciBleHBl
Y3RlZEVycm9yU2V0ID0ge307CisgIGZvciAodmFyIGkgaW4gZXhwZWN0ZWRFcnJvckxpc3QpIHsK
KyAgICB2YXIgY3VyID0gZXhwZWN0ZWRFcnJvckxpc3RbaV07CisgICAgZXhwZWN0ZWRFcnJvclNl
dFtjdXJdID0gdHJ1ZTsKKyAgICBleHBlY3RlZEVycm9yU3RyTGlzdC5wdXNoKGdldEdMRXJyb3JB
c1N0cmluZyhnbCwgY3VyKSk7CisgIH0KKyAgdmFyIGV4cGVjdGVkRXJyb3JMaXN0U3RyID0gIlsi
ICsgZXhwZWN0ZWRFcnJvclN0ckxpc3Quam9pbigiLCAiKSArICJdIjsKKworICBpZiAoYWN0dWFs
RXJyb3IgaW4gZXhwZWN0ZWRFcnJvclNldCkgeworICAgIHJldHVybiB0cnVlOworICB9CisKKyAg
dGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZEVycm9yTGlz
dFN0ciArCisgICAgICAgICAgICAgIiBhY3R1YWw6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2ws
IGFjdHVhbEVycm9yKSwgbmFtZSwgZik7CisgIHJldHVybiBmYWxzZTsKK30KKworLy8gQXNzZXJ0
IHRoYXQgZiBnZW5lcmF0ZXMgc29tZSBHTCBlcnJvci4gVXNlZCBpbiBzaXR1YXRpb25zIHdoZXJl
IGl0J3MKKy8vIGFtYmlnaW91cyB3aGljaCBvZiBtdWx0aXBsZSBwb3NzaWJsZSBlcnJvcnMgd2ls
bCBiZSBnZW5lcmF0ZWQuCitmdW5jdGlvbiBhc3NlcnRTb21lR0xFcnJvcihnbCwgbmFtZSwgZikg
eworICBpZiAoZiA9PSBudWxsKSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICB2YXIgciA9
IGZhbHNlOworICB2YXIgZ2xFcnIgPSAwOworICB2YXIgZXJyID0gMDsKKyAgdHJ5IHsgZigpOyB9
IGNhdGNoKGUpIHsgcj10cnVlOyBnbEVyciA9IGUuZ2xFcnJvcjsgfQorICBpZiAoZ2xFcnIgPT09
IDApIHsKKyAgICBpZiAoZ2xFcnIgPT09IHVuZGVmaW5lZCkgeworICAgICAgdGVzdEZhaWxlZCgi
YXNzZXJ0R0xFcnJvcjogVU5FWFBFQ1RFRCBFWENFUFRJT04iLCBuYW1lLCBmKTsKKyAgICB9IGVs
c2UgeworICAgICAgdGVzdEZhaWxlZCgiYXNzZXJ0R0xFcnJvcjogZXhwZWN0ZWQ6ICIgKyBnZXRH
TEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKworICAgICAgICAgICAgICAgICAiIGFjdHVhbDogIiAr
IGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZ2xFcnIpLCBuYW1lLCBmKTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworICB9CisgIHJldHVybiB0cnVlOworfQorCisvLyBBc3NlcnQgdGhhdCBmIHRo
cm93cyBhbiBleGNlcHRpb24gYnV0IGRvZXMgbm90IGdlbmVyYXRlIGEgR0wgZXJyb3IuCitmdW5j
dGlvbiBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgbmFtZSwgZikgeworICBpZiAoZiA9PSBudWxs
KSB7IGYgPSBuYW1lOyBuYW1lID0gbnVsbDsgfQorICB2YXIgciA9IGZhbHNlOworICB2YXIgZ2xF
cnIgPSB1bmRlZmluZWQ7CisgIHZhciBleHA7CisgIHRyeSB7IGYoKTsgfSBjYXRjaChlKSB7IHI9
dHJ1ZTsgZ2xFcnIgPSBlLmdsRXJyb3I7IGV4cCA9IGU7fQorICBpZiAoIXIpIHsKKyAgICB0ZXN0
RmFpbGVkKAorICAgICAgImFzc2VydFRocm93Tm9HTEVycm9yOiBzaG91bGQgaGF2ZSB0aHJvd24g
ZXhjZXB0aW9uIiwgbmFtZSwgZik7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAg
IGlmIChnbEVyciAhPT0gdW5kZWZpbmVkKSB7CisgICAgICB0ZXN0RmFpbGVkKAorICAgICAgICAi
YXNzZXJ0VGhyb3dOb0dMRXJyb3I6IHNob3VsZCBiZSBubyBHTCBlcnJvciBidXQgZ2VuZXJhdGVk
OiAiICsKKyAgICAgICAgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVyciksIG5hbWUsIGYpOwor
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICB0ZXN0UGFzc2VkKCJhc3NlcnRUaHJv
d05vR0xFcnJvciIsIG5hbWUsIGYpOworICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gYXNz
ZXJ0VGhyb3dzKGdsLCBzaG91bGRUaHJvdywgaW5mbywgZnVuYykgeworICB2YXIgZGlkVGhyb3cg
PSBmYWxzZTsKKyAgdHJ5IHsKKyAgICBmdW5jKCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB2YXIg
ZGlkR0xFcnJvciA9IChlIGluc3RhbmNlb2YgR0xFcnJvcik7CisgICAgaWYgKCFkaWRHTEVycm9y
KSB7CisgICAgICBkaWRUaHJvdyA9IHRydWU7CisgICAgfQorICB9CisKKyAgdmFyIHRleHQgPSBz
aG91bGRUaHJvdyA/ICJTaG91bGQgdGhyb3c6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICA6
ICJTaG91bGQgbm90IHRocm93OiAiOworICB2YXIgZnVuYyA9IChkaWRUaHJvdyA9PSBzaG91bGRU
aHJvdykgPyB0ZXN0UGFzc2VkIDogdGVzdEZhaWxlZDsKKworICBmdW5jKHRleHQgKyBpbmZvKTsK
K30KKworUXVhZCA9IHsKKyAgdmVydGljZXMgOiBbCisgICAgLTEsLTEsMCwKKyAgICAxLC0xLDAs
CisgICAgLTEsMSwwLAorICAgIDEsLTEsMCwKKyAgICAxLDEsMCwKKyAgICAtMSwxLDAKKyAgXSwK
KyAgbm9ybWFscyA6IFsKKyAgICAwLDAsLTEsCisgICAgMCwwLC0xLAorICAgIDAsMCwtMSwKKyAg
ICAwLDAsLTEsCisgICAgMCwwLC0xLAorICAgIDAsMCwtMQorICBdLAorICB0ZXhjb29yZHMgOiBb
CisgICAgMCwwLAorICAgIDEsMCwKKyAgICAwLDEsCisgICAgMSwwLAorICAgIDEsMSwKKyAgICAw
LDEKKyAgXSwKKyAgaW5kaWNlcyA6IFswLDEsMiwxLDUsMl0sCisgIG1ha2VWQk8gOiBmdW5jdGlv
bihnbCkgeworICAgIHJldHVybiBuZXcgVkJPKGdsLAorICAgICAgICB7c2l6ZTozLCBkYXRhOiBR
dWFkLnZlcnRpY2VzfSwKKyAgICAgICAge3NpemU6MywgZGF0YTogUXVhZC5ub3JtYWxzfSwKKyAg
ICAgICAge3NpemU6MiwgZGF0YTogUXVhZC50ZXhjb29yZHN9CisgICAgKQorICB9LAorICBjYWNo
ZToge30sCisgIGdldENhY2hlZFZCTyA6IGZ1bmN0aW9uKGdsKSB7CisgICAgaWYgKCF0aGlzLmNh
Y2hlW2dsXSkKKyAgICAgIHRoaXMuY2FjaGVbZ2xdID0gdGhpcy5tYWtlVkJPKGdsKTsKKyAgICBy
ZXR1cm4gdGhpcy5jYWNoZVtnbF07CisgIH0KK30KK0N1YmUgPSB7CisgIHZlcnRpY2VzIDogWyAg
MC41LCAtMC41LCAgMC41LCAvLyArWAorICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgLTAuNSwK
KyAgICAgICAgICAgICAgICAwLjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41LCAg
MC41LCAgMC41LAorCisgICAgICAgICAgICAgICAgMC41LCAgMC41LCAgMC41LCAvLyArWQorICAg
ICAgICAgICAgICAgIDAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAgICAgICAgICAtMC41LCAgMC41
LCAtMC41LAorICAgICAgICAgICAgICAgIC0wLjUsICAwLjUsICAwLjUsCisKKyAgICAgICAgICAg
ICAgICAwLjUsICAwLjUsICAwLjUsIC8vICtaCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwg
IDAuNSwKKyAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAgMC41LAorICAgICAgICAgICAgICAg
IDAuNSwgLTAuNSwgIDAuNSwKKworICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsICAwLjUsIC8v
IC1YCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgIDAuNSwKKyAgICAgICAgICAgICAgICAt
MC41LCAgMC41LCAtMC41LAorICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUsIC0wLjUsCisKKyAg
ICAgICAgICAgICAgICAtMC41LCAtMC41LCAgMC41LCAvLyAtWQorICAgICAgICAgICAgICAgIC0w
LjUsIC0wLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41LCAtMC41LCAtMC41LAorICAgICAg
ICAgICAgICAgIDAuNSwgLTAuNSwgIDAuNSwKKworICAgICAgICAgICAgICAgIC0wLjUsIC0wLjUs
IC0wLjUsIC8vIC1aCisgICAgICAgICAgICAgICAgLTAuNSwgIDAuNSwgLTAuNSwKKyAgICAgICAg
ICAgICAgICAwLjUsICAwLjUsIC0wLjUsCisgICAgICAgICAgICAgICAgMC41LCAtMC41LCAtMC41
LAorICAgICAgXSwKKworICBub3JtYWxzIDogWyAxLCAwLCAwLAorICAgICAgICAgICAgICAxLCAw
LCAwLAorICAgICAgICAgICAgICAxLCAwLCAwLAorICAgICAgICAgICAgICAxLCAwLCAwLAorCisg
ICAgICAgICAgICAgIDAsIDEsIDAsCisgICAgICAgICAgICAgIDAsIDEsIDAsCisgICAgICAgICAg
ICAgIDAsIDEsIDAsCisgICAgICAgICAgICAgIDAsIDEsIDAsCisKKyAgICAgICAgICAgICAgMCwg
MCwgMSwKKyAgICAgICAgICAgICAgMCwgMCwgMSwKKyAgICAgICAgICAgICAgMCwgMCwgMSwKKyAg
ICAgICAgICAgICAgMCwgMCwgMSwKKworICAgICAgICAgICAgICAtMSwgMCwgMCwKKyAgICAgICAg
ICAgICAgLTEsIDAsIDAsCisgICAgICAgICAgICAgIC0xLCAwLCAwLAorICAgICAgICAgICAgICAt
MSwgMCwgMCwKKworICAgICAgICAgICAgICAwLC0xLCAwLAorICAgICAgICAgICAgICAwLC0xLCAw
LAorICAgICAgICAgICAgICAwLC0xLCAwLAorICAgICAgICAgICAgICAwLC0xLCAwLAorCisgICAg
ICAgICAgICAgIDAsIDAsLTEsCisgICAgICAgICAgICAgIDAsIDAsLTEsCisgICAgICAgICAgICAg
IDAsIDAsLTEsCisgICAgICAgICAgICAgIDAsIDAsLTEKKyAgICAgIF0sCisKKyAgaW5kaWNlcyA6
IFtdLAorICBjcmVhdGUgOiBmdW5jdGlvbigpeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNjsg
aSsrKSB7CisgICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAwKTsKKyAgICAgIEN1YmUuaW5k
aWNlcy5wdXNoKGkqNCArIDEpOworICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMyk7Cisg
ICAgICBDdWJlLmluZGljZXMucHVzaChpKjQgKyAxKTsKKyAgICAgIEN1YmUuaW5kaWNlcy5wdXNo
KGkqNCArIDIpOworICAgICAgQ3ViZS5pbmRpY2VzLnB1c2goaSo0ICsgMyk7CisgICAgfQorICB9
LAorCisgIG1ha2VWQk8gOiBmdW5jdGlvbihnbCkgeworICAgIHJldHVybiBuZXcgVkJPKGdsLAor
ICAgICAgICB7c2l6ZTozLCBkYXRhOiBDdWJlLnZlcnRpY2VzfSwKKyAgICAgICAge3NpemU6Mywg
ZGF0YTogQ3ViZS5ub3JtYWxzfSwKKyAgICAgICAge2VsZW1lbnRzOiB0cnVlLCBkYXRhOiBDdWJl
LmluZGljZXN9CisgICAgKQorICB9LAorICBjYWNoZSA6IHt9LAorICBnZXRDYWNoZWRWQk8gOiBm
dW5jdGlvbihnbCkgeworICAgIGlmICghdGhpcy5jYWNoZVtnbF0pCisgICAgICB0aGlzLmNhY2hl
W2dsXSA9IHRoaXMubWFrZVZCTyhnbCk7CisgICAgcmV0dXJuIHRoaXMuY2FjaGVbZ2xdOworICB9
Cit9CitDdWJlLmNyZWF0ZSgpOworCitTcGhlcmUgPSB7CisgIHZlcnRpY2VzIDogW10sCisgIG5v
cm1hbHMgOiBbXSwKKyAgaW5kaWNlcyA6IFtdLAorICBjcmVhdGUgOiBmdW5jdGlvbigpeworICAg
IHZhciByID0gMC43NTsKKyAgICBmdW5jdGlvbiB2ZXJ0KHRoZXRhLCBwaGkpCisgICAgeworICAg
ICAgdmFyIHIgPSAwLjc1OworICAgICAgdmFyIHgsIHksIHosIG54LCBueSwgbno7CisKKyAgICAg
IG54ID0gTWF0aC5zaW4odGhldGEpICogTWF0aC5jb3MocGhpKTsKKyAgICAgIG55ID0gTWF0aC5z
aW4ocGhpKTsKKyAgICAgIG56ID0gTWF0aC5jb3ModGhldGEpICogTWF0aC5jb3MocGhpKTsKKyAg
ICAgIFNwaGVyZS5ub3JtYWxzLnB1c2gobngpOworICAgICAgU3BoZXJlLm5vcm1hbHMucHVzaChu
eSk7CisgICAgICBTcGhlcmUubm9ybWFscy5wdXNoKG56KTsKKworICAgICAgeCA9IHIgKiBNYXRo
LnNpbih0aGV0YSkgKiBNYXRoLmNvcyhwaGkpOworICAgICAgeSA9IHIgKiBNYXRoLnNpbihwaGkp
OworICAgICAgeiA9IHIgKiBNYXRoLmNvcyh0aGV0YSkgKiBNYXRoLmNvcyhwaGkpOworICAgICAg
U3BoZXJlLnZlcnRpY2VzLnB1c2goeCk7CisgICAgICBTcGhlcmUudmVydGljZXMucHVzaCh5KTsK
KyAgICAgIFNwaGVyZS52ZXJ0aWNlcy5wdXNoKHopOworICAgIH0KKyAgICBmb3IgKHZhciBwaGkg
PSAtTWF0aC5QSS8yOyBwaGkgPCBNYXRoLlBJLzI7IHBoaSArPSBNYXRoLlBJLzIwKSB7CisgICAg
ICB2YXIgcGhpMiA9IHBoaSArIE1hdGguUEkvMjA7CisgICAgICBmb3IgKHZhciB0aGV0YSA9IC1N
YXRoLlBJLzI7IHRoZXRhIDw9IE1hdGguUEkvMjsgdGhldGEgKz0gTWF0aC5QSS8yMCkgeworICAg
ICAgICB2ZXJ0KHRoZXRhLCBwaGkpOworICAgICAgICB2ZXJ0KHRoZXRhLCBwaGkyKTsKKyAgICAg
IH0KKyAgICB9CisgIH0KK30KKworU3BoZXJlLmNyZWF0ZSgpOworCitpbml0R0xfQ09OVEVYVF9J
RCA9IGZ1bmN0aW9uKCl7CisgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFz
Jyk7CisgIHZhciBjb250ZXh0TmFtZXMgPSBbJ3dlYmdsJywgJ2V4cGVyaW1lbnRhbC13ZWJnbCdd
OworICBHTF9DT05URVhUX0lEID0gbnVsbDsKKyAgZm9yICh2YXIgaT0wOyBpPGNvbnRleHROYW1l
cy5sZW5ndGg7IGkrKykgeworICAgIHRyeSB7CisgICAgICBpZiAoYy5nZXRDb250ZXh0KGNvbnRl
eHROYW1lc1tpXSkpIHsKKyAgICAgICAgR0xfQ09OVEVYVF9JRCA9IGNvbnRleHROYW1lc1tpXTsK
KyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgIH0KKyAgfQor
ICBpZiAoIUdMX0NPTlRFWFRfSUQpIHsKKyAgICBsb2coIk5vIFdlYkdMIGNvbnRleHQgZm91bmQu
IFVuYWJsZSB0byBydW4gdGVzdHMuIik7CisgIH0KK30KKworaW5pdEdMX0NPTlRFWFRfSUQoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9y
bWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
ODY5NmU5OGE4ZWNmZWQ0OWYzYjZhZTdjZjllODdjZWVmZmE1YWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNj
cmVlbmNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IS0tCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBPcmlnaW4gUmVzdHJpY3Rpb25z
IENvbmZvcm1hbmNlIFRlc3RzIGZvciBPZmZzY3JlZW5DYW52YXM8L3RpdGxlPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKzxpbWcgaWQ9Imlt
ZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK3ZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKKworLy8gQ2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBl
eGNlcHRpb24uCitmdW5jdGlvbiBjYXVzZWRFeGNlcHRpb24oZnVuYykgeworICB2YXIgaGFkRXhj
ZXB0aW9uID0gZmFsc2U7CisgIHRyeSB7CisgICAgZnVuYygpOworICB9IGNhdGNoKGUpIHsKKyAg
ICBoYWRFeGNlcHRpb24gPSB0cnVlOworICB9CisgIHJldHVybiBoYWRFeGNlcHRpb247Cit9CisK
K3ZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1y
ZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKK3ZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9y
ZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKKwordmFyIGltZ0RvbWFpbjsKK3ZhciBwYWdlRG9t
YWluOworCitmdW5jdGlvbiBpbWFnZUxvYWRlZChpbWcpIHsKKyAgZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBlbnN1cmVzIFdlYkdMIGltcGxlbWVudGF0aW9ucyBmb3IgT2Zmc2NyZWVuQ2FudmFzIGZv
bGxvdyBwcm9wZXIgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLiIpOworCisgIGlmICghd2luZG93
Lk9mZnNjcmVlbkNhbnZhcykgeworICAgIHRlc3RQYXNzZWQoIk5vIE9mZnNjcmVlbkNhbnZhcyBz
dXBwb3J0Iik7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorCisgIGFzc2Vy
dE1zZyhpbWcud2lkdGggPiAwICYmIGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsK
KyAgaW1nRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwor
ICBwYWdlRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwor
ICBhc3NlcnRNc2coaW1nRG9tYWluICE9IHBhZ2VEb21haW4sCisgICAgICAgICAgICAiaW1nIGRv
bWFpbiAoIiArIGltZ0RvbWFpbiArICIpIGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4g
KyAiKSBhcmUgbm90IHRoZSBzYW1lLiIpOworCisgIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGds
LCBzcmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7
CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsK
KyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7CisgICAgfTsK
KyAgfQorCisgIGZ1bmN0aW9uIG1ha2VSZWFkUGl4ZWxzKGdsKSB7CisgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgeworICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDQpOworICAgICAgZ2wucmVh
ZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICAg
IH07CisgIH0KKworICB2YXIgb2Zmc2NyZWVuY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygx
MCwgMTApOworICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KG9mZnNjcmVlbmNhbnZhcyk7
CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9h
ZCBhbiBpbWFnZSBmcm9tIGFub3RoZXIgb3JpZ2luIHRocm93cyBhbiBleGNlcHRpb24uIik7Cisg
IHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRV
UkVfMkQsIHRleCk7CisgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
MjU2LCAyNTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworICBhc3NlcnRN
c2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBpbWcpKSwKKyAgICAgICAgICAg
ICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2ws
IGltZykpLAorICAgICAgICAgICAgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1h
Z2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKworICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFk
UGl4ZWxzIGNvbnRpbnVlcyB0byB3b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7
CisgIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCisgICAg
ICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBw
b3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2FudmFzLiIpOworCisgIGRlYnVnKCJj
aGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBjYW52YXMgdGhyb3dzIGFu
IGV4Y2VwdGlvbi4iKTsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXMiKTsKKyAgdmFyIGN0eDJkID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgIGN0eDJk
LmRyYXdJbWFnZShpbWcsIDAsIDApOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VU
ZXhJbWFnZTJEKGdsLCBjYW52YXMpKSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggTk9O
IG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0
TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgY2FudmFzKSksCisgICAg
ICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3Vs
ZCB0aHJvdyBleGNlcHRpb24uIik7CisKKyAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBj
b250aW51ZXMgdG8gd29yayBhZ2FpbnN0IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOworICBhc3Nl
cnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAorICAgICAgICAgICAg
InJlYWRQaXhlbHMgc2hvdWxkIG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUg
dG8gZGlydHkgb3JpZ2luIG9mIFdlYkdMIGNhbnZhcy4iKTsKKworICAvLyBUT0RPOiBTaG91bGQg
Y2hlY2sgdmlkZW8uCisgIC8vIFRPRE86IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCisKKyAg
ZmluaXNoVGVzdCgpOworfQorCisoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGNvbnN0IGltZyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcnKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCB3dHUuYXdh
aXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwg
bG9jYWxJbWdVcmwpKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYEltYWdlIHNl
dHVwIGZhaWxlZCAoJHtlfSkuYCk7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAg
fQorICBpbWFnZUxvYWRlZChpbWcpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiN2Y1NzIxNzM1ZjAxNzM0YTdlMWQ2YmUzOTNjZTA3
YTYxMmFmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3Jp
Z2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKQEAgLTAsMCArMSwxMzcgQEAKKzwhLS0KK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIE9yaWdpbiBS
ZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzMSI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJjYW52YXMy
Ij48L2NhbnZhcz4KKzxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorPHNjcmlw
dD4KKyJ1c2Ugc3RyaWN0IjsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKworLy8gQ2hlY2tz
IGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCitmdW5jdGlvbiBjYXVzZWRFeGNlcHRp
b24oZnVuYykgeworICB2YXIgaGFkRXhjZXB0aW9uID0gZmFsc2U7CisgIHRyeSB7CisgICAgZnVu
YygpOworICB9IGNhdGNoKGUpIHsKKyAgICBoYWRFeGNlcHRpb24gPSB0cnVlOworICB9CisgIHJl
dHVybiBoYWRFeGNlcHRpb247Cit9CisKK3ZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0
LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKK3ZhciBs
b2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIjsKKwordmFy
IGltZ0RvbWFpbjsKK3ZhciBwYWdlRG9tYWluOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZDsKKwor
ZnVuY3Rpb24gaW1hZ2VMb2FkZWQoaW1nKSB7CisgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5z
dXJlcyBXZWJHTCBpbXBsZW1lbnRhdGlvbnMgZm9sbG93IHByb3BlciBzYW1lLW9yaWdpbiByZXN0
cmljdGlvbnMuIik7CisKKyAgYXNzZXJ0TXNnKGltZy53aWR0aCA+IDAgJiYgaW1nLmhlaWdodCA+
IDAsICJpbWcgd2FzIGxvYWRlZCIpOworICBpbWdEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3
dHUuZ2V0SG9zdChpbWcuc3JjKSk7CisgIHBhZ2VEb21haW4gPSB3dHUuZ2V0QmFzZURvbWFpbih3
aW5kb3cubG9jYXRpb24uaG9zdCk7CisgIGFzc2VydE1zZyhpbWdEb21haW4gIT0gcGFnZURvbWFp
biwKKyAgICAgICAgICAgICJpbWcgZG9tYWluICgiICsgaW1nRG9tYWluICsgIikgYW5kIHBhZ2Ug
ZG9tYWluICgiICsgcGFnZURvbWFpbiArICIpIGFyZSBub3QgdGhlIHNhbWUuIik7CisKKyAgZnVu
Y3Rpb24gbWFrZVRleEltYWdlMkQoZ2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsK
KyAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgc3JjKTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVRl
eFN1YkltYWdlMkQoZ2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgIGds
LnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgc3JjKTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbWFrZVJlYWRQaXhlbHMo
Z2wpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4
QXJyYXkoNCk7CisgICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIGJ1Zik7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VUb0RhdGFV
UkwoY2FudmFzKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGRhdGEgPSBj
YW52YXMudG9EYXRhVVJMKCk7CisgICAgfQorICB9CisKKyAgdmFyIGNhbnZhczEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzMSIpOworICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250
ZXh0KGNhbnZhczEpOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0
ZW1wdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSBhbm90aGVyIG9yaWdpbiB0aHJvd3MgYW4gZXhj
ZXB0aW9uLiIpOworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIDI1NiwgMjU2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxs
KTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgaW1nKSks
CisgICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQg
dGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhT
dWJJbWFnZTJEKGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJEIHdpdGggY3Jv
c3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisKKyAgZGVidWcoImNo
ZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRpbnVlIHRvIHdvcmsgYWdhaW5z
dCB0aGlzIGNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQ
aXhlbHMoZ2wpKSwKKyAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBl
eGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTCBjYW52YXMu
Iik7CisgIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMSkp
LAorICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uIGJ5IHRvRGF0YVVSTCBm
b3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmlnaW4gY2xlYW4uIik7CisKKyAg
ZGVidWcoImNoZWNrIHRoYXQgYW4gYXR0ZW1wdCB0byB1cGxvYWQgYSB0YWludGVkIGNhbnZhcyB0
aHJvd3MgYW4gZXhjZXB0aW9uLiIpOworICB2YXIgY2FudmFzMiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjYW52YXMyIik7CisgIHZhciBjdHgyZCA9IGNhbnZhczIuZ2V0Q29udGV4dCgiMmQi
KTsKKyAgY3R4MmQuZHJhd0ltYWdlKGltZywgMCwgMCk7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNl
cHRpb24obWFrZVRvRGF0YVVSTChjYW52YXMyKSksCisgICAgICAgICAgICAic2hvdWxkIHRocm93
IGV4Y2VwdGlvbiBieSB0b0RhdGFVUkwgZm9yIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzLiIpOwor
ICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52YXMyKSks
CisgICAgICAgICAgICAidGV4SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNo
b3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFr
ZVRleFN1YkltYWdlMkQoZ2wsIGNhbnZhczIpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTJE
IHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsK
KworICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGFuZCB0b0RhdGFVUkwgY29udGludWUg
dG8gd29yayBhZ2FpbnN0IHRoaXMgY2FudmFzLiIpOworICBhc3NlcnRNc2coIWNhdXNlZEV4Y2Vw
dGlvbihtYWtlUmVhZFBpeGVscyhnbCkpLAorICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxk
IG5ldmVyIHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9m
IFdlYkdMIGNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVRvRGF0
YVVSTChjYW52YXMxKSksCisgICAgICAgICAgICAic2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24g
YnkgdG9EYXRhVVJMIGZvciBXZWJHTCBjYW52YXMsIHdoaWNoIHNob3VsZCBzdGF5IG9yaWdpbiBj
bGVhbi4iKTsKKworICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCisgIC8vIFRPRE86IFNo
b3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCisKKyAgZGVidWcoIiIpOworICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOworICBk
ZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Cisg
IG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCk7Cit9CisKKyhhc3luYyBmdW5jdGlvbigpIHsKKyAg
Y29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZycpOworICB0cnkgeworICAg
IGF3YWl0IHd0dS5hd2FpdE9yVGltZW91dCh3dHUubG9hZENyb3NzT3JpZ2luSW1hZ2UoaW1nLCBk
ZWZhdWx0SW1nVXJsLCBsb2NhbEltZ1VybCkpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZh
aWxlZChgSW1hZ2Ugc2V0dXAgZmFpbGVkICgke2V9KS5gKTsKKyAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgcmV0dXJuOworICB9CisgIGltYWdlTG9hZGVkKGltZyk7Cit9KSgpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJjNmExMThjYzFkZGFmNTczMTRhNDI3ZTBiMDQyOGJlZDA4ZDQ2OTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPCEt
LQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wy
IE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9ybWFuY2UgVGVzdHMgZm9yIE9mZnNjcmVlbkNhbnZh
czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiPjwv
Y2FudmFzPgorPGltZyBpZD0iaW1nIiBzdHlsZT0iZGlzcGxheTpub25lOyI+Cis8c2NyaXB0Pgor
InVzZSBzdHJpY3QiOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworCisvLyBDaGVja3MgaWYg
ZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlvbi4KK2Z1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihm
dW5jKSB7CisgIHZhciBoYWRFeGNlcHRpb24gPSBmYWxzZTsKKyAgdHJ5IHsKKyAgICBmdW5jKCk7
CisgIH0gY2F0Y2goZSkgeworICAgIGhhZEV4Y2VwdGlvbiA9IHRydWU7CisgIH0KKyAgcmV0dXJu
IGhhZEV4Y2VwdGlvbjsKK30KKwordmFyIGRlZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2Vi
Z2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy9vcGVuZ2xfbG9nby5qcGciOwordmFyIGxvY2Fs
SW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy9vcGVuZ2xfbG9nby5qcGciOworCit2YXIgaW1n
RG9tYWluOwordmFyIHBhZ2VEb21haW47CisKK2Z1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgewor
ICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wyIGltcGxlbWVudGF0aW9ucyBm
b3IgT2Zmc2NyZWVuQ2FudmFzIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25z
LiIpOworCisgIGlmICghd2luZG93Lk9mZnNjcmVlbkNhbnZhcykgeworICAgIHRlc3RQYXNzZWQo
Ik5vIE9mZnNjcmVlbkNhbnZhcyBzdXBwb3J0Iik7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJl
dHVybjsKKyAgfQorCisgIGFzc2VydE1zZyhpbWcud2lkdGggPiAwICYmIGltZy5oZWlnaHQgPiAw
LCAiaW1nIHdhcyBsb2FkZWQiKTsKKyAgaW1nRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od3R1
LmdldEhvc3QoaW1nLnNyYykpOworICBwYWdlRG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od2lu
ZG93LmxvY2F0aW9uLmhvc3QpOworICBhc3NlcnRNc2coaW1nRG9tYWluICE9IHBhZ2VEb21haW4s
CisgICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiArICIpIGFuZCBwYWdlIGRv
bWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1lLiIpOworCisgIGZ1bmN0
aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7Cisg
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEwLCAxMCwgMCwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rp
b24gbWFrZVRleFN1YkltYWdlMkQoZ2wsIHNyYykgeworICAgIHJldHVybiBmdW5jdGlvbigpIHsK
KyAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgMTAsIDEwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzcmMpOworICAgIH07CisgIH0KKworICBmdW5jdGlv
biBtYWtlVGV4SW1hZ2UzRChnbCwgc3JjKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAg
ICAgZ2wudGV4SW1hZ2UzRChnbC5URVhUVVJFXzNELCAwLCBnbC5SR0JBLCAxMCwgMTAsIDEsIDAs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7CisgICAgfTsKKyAgfQorCisgIGZ1bmN0
aW9uIG1ha2VUZXhTdWJJbWFnZTNEKGdsLCBzcmMpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7
CisgICAgICBnbC50ZXhTdWJJbWFnZTNEKGdsLlRFWFRVUkVfM0QsIDAsIDAsIDAsIDAsIDEwLCAx
MCwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc3JjKTsKKyAgICB9OworICB9CisKKyAg
ZnVuY3Rpb24gbWFrZVJlYWRQaXhlbHMoZ2wpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7Cisg
ICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgICAgICBnbC5yZWFkUGl4ZWxzKDAs
IDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgICAgfTsKKyAgfQor
CisgIHZhciBvZmZzY3JlZW5jYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7Cisg
IHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQob2Zmc2NyZWVuY2FudmFzLCBudWxsLCAyKTsK
KworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2Fk
IGFuIGltYWdlIGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKKyAg
dmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV8yRCwgdGV4KTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAy
NTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgIGFzc2VydE1z
ZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGltZykpLAorICAgICAgICAgICAg
InRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwg
aW1nKSksCisgICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFn
ZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9u
KG1ha2VUZXhJbWFnZTNEKGdsLCBpbWcpKSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTNEIHdpdGgg
Y3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7CisgIGFzc2VydE1z
ZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlM0QoZ2wsIGltZykpLAorICAgICAgICAg
ICAgInRleFN1YkltYWdlM0Qgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4
Y2VwdGlvbi4iKTsKKworCisgIGRlYnVnKCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVz
IHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9mZnNjcmVlbmNhbnZhcy4iKTsKKyAgYXNzZXJ0TXNnKCFj
YXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKKyAgICAgICAgICAgICJyZWFkUGl4
ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5
IG9yaWdpbiBvZiBXZWJHTDIgY2FudmFzLiIpOworCisgIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0
dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsK
KyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgdmFy
IGN0eDJkID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgIGN0eDJkLmRyYXdJbWFnZShpbWcs
IDAsIDApOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBj
YW52YXMpKSwKKyAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBj
YW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2Vw
dGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgY2FudmFzKSksCisgICAgICAgICAgICAidGV4U3Vi
SW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRp
b24uIik7CisgIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlM0QoZ2wsIGNh
bnZhcykpLAorICAgICAgICAgICAgInRleEltYWdlM0Qgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNh
bnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOworICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0
aW9uKG1ha2VUZXhTdWJJbWFnZTNEKGdsLCBjYW52YXMpKSwKKyAgICAgICAgICAgICJ0ZXhTdWJJ
bWFnZTNEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iKTsKKworICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3Jr
IGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7CisgIGFzc2VydE1zZyghY2F1c2VkRXhj
ZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCisgICAgICAgICAgICAicmVhZFBpeGVscyBzaG91
bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4g
b2YgV2ViR0wyIGNhbnZhcy4iKTsKKworICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCisg
IC8vIFRPRE86IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCisKKyAgZmluaXNoVGVzdCgpOwor
fQorCisoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpbWcnKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1
LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpLCAx
MDAwKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxl
ZCAoJHtlfSkuYCk7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorICBpbWFn
ZUxvYWRlZChpbWcpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9qcy9qcy10ZXN0LXBvc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcG9zdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
M2RmNTUwM2QxMjhjYTViZDkwNDlmZDEzOWZlMDJjYWRjNWE4MDUxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy9qcy10ZXN0LXBvc3QuanMKQEAgLTAsMCArMSwyNyBAQAorLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCitzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNl
ZCIpOworX2FkZFNwYW4oJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9z
cGFuPicpOworaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgIF9idWZmZXJlZExv
Z1RvQ29uc29sZSgnVEVTVCBDT01QTEVURScpOworfQorCit7CisgICAgY29uc3QgZV9yZXN1bHRz
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgbGV0IGZhaWxzX2NsYXNzID0g
J3Bhc3MnOworICAgIGlmIChSRVNVTFRTLmZhaWwpIHsKKyAgICAgICAgZmFpbHNfY2xhc3MgPSAn
ZmFpbCc7CisgICAgfQorICAgIGVfcmVzdWx0cy5jbGFzc0xpc3QuYWRkKCdwYXNzJyk7CisgICAg
ZV9yZXN1bHRzLmlubmVySFRNTCA9IGA8cD5URVNUIENPTVBMRVRFOiAke1JFU1VMVFMucGFzc30g
UEFTUywgYCArCisgICAgICBgPHNwYW4gY2xhc3M9IiR7ZmFpbHNfY2xhc3N9Ij4ke1JFU1VMVFMu
ZmFpbH0gRkFJTDwvc3Bhbj48L3A+YDsKKworICAgIGNvbnN0IGVfZGVzYyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpOworICAgIGVfZGVzYy5hcHBlbmRDaGlsZChlX3Jl
c3VsdHMpOworfQorCitub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pz
LXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWNiOWY3NDljMDIy
YWFhYzA4ZmIxMGIwYzJmNjQ5MGIwZmFhZjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0
LXByZS5qcwpAQCAtMCwwICsxLDgwMSBAQAorLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisoZnVuY3Rpb24oKSB7CisgIHZhciB0ZXN0SGFybmVzc0luaXRpYWxpemVk
ID0gZmFsc2U7CisKKyAgdmFyIGluaXROb25LaHJvbm9zRnJhbWV3b3JrID0gZnVuY3Rpb24oKSB7
CisgICAgaWYgKHRlc3RIYXJuZXNzSW5pdGlhbGl6ZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9
CisgICAgdGVzdEhhcm5lc3NJbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAvKiAtLSBwbGFmb3Jt
IHNwZWNpZmljIGNvZGUgLS0gKi8KKworICAgIC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBBZGQg
eW91ciBjb2RlIGhlcmUuCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9
IHdpbmRvdy50ZXN0UnVubmVyOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgLy8gVGhlIFdlYktpdCB0
ZXN0aW5nIHN5c3RlbSBjb21wYXJlcyBjb25zb2xlIG91dHB1dC4KKyAgICAgIC8vIEJlY2F1c2Ug
dGhlIG91dHB1dCBvZiB0aGUgV2ViR0wgVGVzdHMgaXMgR1BVIGRlcGVuZGVudAorICAgICAgLy8g
d2UgdHVybiBvZmYgY29uc29sZSBtZXNzYWdlcy4KKyAgICAgIHdpbmRvdy5jb25zb2xlLmxvZyA9
IGZ1bmN0aW9uKCkgeyB9OworICAgICAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbigp
IHsgfTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0Nv
bnNvbGVFbmFibGVkKGZhbHNlKTsKKyAgICB9CisKKyAgICAvKiAtLSBlbmQgcGxhdGZvcm0gc3Bl
Y2lmaWMgY29kZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0aW5nSGFybmVzcyA9IGZ1bmN0
aW9uKCkgeworICAgIGluaXROb25LaHJvbm9zRnJhbWV3b3JrKCk7CisgIH0KK30oKSk7CisKK3Zh
ciBnZXRVcmxPcHRpb25zID0gKGZ1bmN0aW9uKCkgeworICB2YXIgX3VybE9wdGlvbnNQYXJzZWQg
PSBmYWxzZTsKKyAgdmFyIF91cmxPcHRpb25zID0ge307CisgIHJldHVybiBmdW5jdGlvbigpIHsK
KyAgICBpZiAoIV91cmxPcHRpb25zUGFyc2VkKSB7CisgICAgICB2YXIgcyA9IHdpbmRvdy5sb2Nh
dGlvbi5ocmVmOworICAgICAgdmFyIHEgPSBzLmluZGV4T2YoIj8iKTsKKyAgICAgIHZhciBlID0g
cy5pbmRleE9mKCIjIik7CisgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgZSA9IHMubGVuZ3Ro
OworICAgICAgfQorICAgICAgdmFyIHF1ZXJ5ID0gcy5zdWJzdHJpbmcocSArIDEsIGUpOworICAg
ICAgdmFyIHBhaXJzID0gcXVlcnkuc3BsaXQoIiYiKTsKKyAgICAgIGZvciAodmFyIGlpID0gMDsg
aWkgPCBwYWlycy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgdmFyIGtleVZhbHVlID0gcGFpcnNb
aWldLnNwbGl0KCI9Iik7CisgICAgICAgIHZhciBrZXkgPSBrZXlWYWx1ZVswXTsKKyAgICAgICAg
dmFyIHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleVZhbHVlWzFdKTsKKyAgICAgICAgX3Vy
bE9wdGlvbnNba2V5XSA9IHZhbHVlOworICAgICAgfQorICAgICAgX3VybE9wdGlvbnNQYXJzZWQg
PSB0cnVlOworICAgIH0KKworICAgIHJldHVybiBfdXJsT3B0aW9uczsKKyAgfQorfSkoKTsKKwor
aWYgKHR5cGVvZiBxdWlldE1vZGUgPT0gJ3VuZGVmaW5lZCcpIHsKKyAgdmFyIHF1aWV0TW9kZSA9
IChmdW5jdGlvbigpIHsKKyAgICB2YXIgX3F1aWV0TW9kZUNoZWNrZWQgPSBmYWxzZTsKKyAgICB2
YXIgX2lzUXVpZXQgPSBmYWxzZTsKKyAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICBpZiAo
IV9xdWlldE1vZGVDaGVja2VkKSB7CisgICAgICAgIF9pc1F1aWV0ID0gKGdldFVybE9wdGlvbnMo
KS5xdWlldCA9PSAxKTsKKyAgICAgICAgX3F1aWV0TW9kZUNoZWNrZWQgPSB0cnVlOworICAgICAg
fQorICAgICAgcmV0dXJuIF9pc1F1aWV0OworICAgIH0KKyAgfSkoKTsKK30KKworZnVuY3Rpb24g
bm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKSB7CisgIC8vIFdlYktpdCBTcGVjaWZpYyBj
b2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9
Cit9CisKK2NvbnN0IFJFU1VMVFMgPSB7CisgIHBhc3M6IDAsCisgIGZhaWw6IDAsCit9OworCitm
dW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYg
KHN1Y2Nlc3MpIHsKKyAgICBSRVNVTFRTLnBhc3MgKz0gMTsKKyAgfSBlbHNlIHsKKyAgICBSRVNV
TFRTLmZhaWwgKz0gMTsKKyAgfQorICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNz
KSB7CisgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2lu
ZG93LmxvY2F0aW9uLnBhdGhuYW1lLCBzdWNjZXNzLCBtc2cpOworICB9Cit9CisKK2Z1bmN0aW9u
IHJlcG9ydFNraXBwZWRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYg
KHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdpbmRvdy5wYXJlbnQud2Vi
Z2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgc3Vj
Y2VzcywgbXNnLCB0cnVlKTsKKyAgfQorfQorCitmdW5jdGlvbiBub3RpZnlGaW5pc2hlZFRvSGFy
bmVzcygpIHsKKyAgaWYgKHdpbmRvdy5fZGlkTm90aWZ5RmluaXNoZWRUb0hhcm5lc3MpIHsKKyAg
ICB0ZXN0RmFpbGVkKCJEdXBsaWNhdGUgbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSIpOworICB9
CisgIHdpbmRvdy5fZGlkTm90aWZ5RmluaXNoZWRUb0hhcm5lc3MgPSB0cnVlOworCisgIGlmICh3
aW5kb3cucGFyZW50LndlYmdsVGVzdEhhcm5lc3MpIHsKKyAgICB3aW5kb3cucGFyZW50LndlYmds
VGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTsKKyAg
fQorICBpZiAod2luZG93Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKSB7CisgICAgd2lu
ZG93Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCk7CisgIH0KK30KKwordmFyIF9idWZm
ZXJlZENvbnNvbGVMb2dzID0gW107CisKK2Z1bmN0aW9uIF9idWZmZXJlZExvZ1RvQ29uc29sZSht
c2cpCit7CisgIGlmIChfYnVmZmVyZWRDb25zb2xlTG9ncykgeworICAgIF9idWZmZXJlZENvbnNv
bGVMb2dzLnB1c2gobXNnKTsKKyAgfSBlbHNlIGlmICh3aW5kb3cuY29uc29sZSkgeworICAgIHdp
bmRvdy5jb25zb2xlLmxvZyhtc2cpOworICB9Cit9CisKKy8vIFB1YmxpYyBlbnRyeSBwb2ludCBl
eHBvc2VkIHRvIG1hbnkgb3RoZXIgZmlsZXMuCitmdW5jdGlvbiBidWZmZXJlZExvZ1RvQ29uc29s
ZShtc2cpCit7CisgIF9idWZmZXJlZExvZ1RvQ29uc29sZShtc2cpOworfQorCisvLyBDYWxsZWQg
aW1wbGljaXRseSBieSB0ZXN0RmFpbGVkKCkuCitmdW5jdGlvbiBfZmx1c2hCdWZmZXJlZExvZ3NU
b0NvbnNvbGUoKQoreworICBpZiAoX2J1ZmZlcmVkQ29uc29sZUxvZ3MpIHsKKyAgICBpZiAod2lu
ZG93LmNvbnNvbGUpIHsKKyAgICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBfYnVmZmVyZWRDb25z
b2xlTG9ncy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgd2luZG93LmNvbnNvbGUubG9nKF9idWZm
ZXJlZENvbnNvbGVMb2dzW2lpXSk7CisgICAgICB9CisgICAgfQorICAgIF9idWZmZXJlZENvbnNv
bGVMb2dzID0gbnVsbDsKKyAgfQorfQorCit2YXIgX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nID0g
ZmFsc2U7CisKK2Z1bmN0aW9uIGVuYWJsZUpTVGVzdFByZVZlcmJvc2VMb2dnaW5nKCkKK3sKKyAg
ICBfanNUZXN0UHJlVmVyYm9zZUxvZ2dpbmcgPSB0cnVlOworfQorCitmdW5jdGlvbiBkZXNjcmlw
dGlvbihtc2cpCit7CisgICAgaW5pdFRlc3RpbmdIYXJuZXNzKCk7CisgICAgaWYgKG1zZyA9PT0g
dW5kZWZpbmVkKSB7CisgICAgICBtc2cgPSBkb2N1bWVudC50aXRsZTsKKyAgICB9CisgICAgLy8g
Rm9yIE1TSUUgNiBjb21wYXRpYmlsaXR5CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+
PHA+T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFz
cyI+UEFTUzwvc3Bhbj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3Mi
PlRFU1QgQ09NUExFVEU8L3NwYW4+Ii48L3A+JzsKKyAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKKyAgICBpZiAoZGVzY3JpcHRpb24u
Zmlyc3RDaGlsZCkKKyAgICAgICAgZGVzY3JpcHRpb24ucmVwbGFjZUNoaWxkKHNwYW4sIGRlc2Ny
aXB0aW9uLmZpcnN0Q2hpbGQpOworICAgIGVsc2UKKyAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5k
Q2hpbGQoc3Bhbik7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAg
ICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUobXNnKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIF9hZGRT
cGFuKGNvbnRlbnRzKQoreworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hp
bGQoc3Bhbik7IC8vIGluc2VydCBpdCBmaXJzdCBzbyBYSFRNTCBrbm93cyB0aGUgbmFtZXNwYWNl
CisgICAgc3Bhbi5pbm5lckhUTUwgPSBjb250ZW50cyArICc8YnIgLz4nOworfQorCitmdW5jdGlv
biBkZWJ1Zyhtc2cpCit7CisgICAgaWYgKCFxdWlldE1vZGUoKSkKKyAgICAgIF9hZGRTcGFuKG1z
Zyk7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAgICBfYnVmZmVy
ZWRMb2dUb0NvbnNvbGUobXNnKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGVzY2FwZUhUTUwodGV4
dCkKK3sKKyAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwv
ZywgIiZsdDsiKTsKK30KKy8qKgorICogRGVmaW5lcyB0aGUgZXhjZXB0aW9uIHR5cGUgZm9yIGEg
dGVzdCBmYWlsdXJlLgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2Fn
ZSBUaGUgZXJyb3IgbWVzc2FnZS4KKyAqLwordmFyIFRlc3RGYWlsZWRFeGNlcHRpb24gPSBmdW5j
dGlvbiAobWVzc2FnZSkgeworICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKKyAgIHRoaXMubmFt
ZSA9ICJUZXN0RmFpbGVkRXhjZXB0aW9uIjsKK307CisKKy8qKgorICogQHBhcmFtICB7c3RyaW5n
PX0gbXNnCisgKi8KK2Z1bmN0aW9uIHRlc3RQYXNzZWQobXNnKSB7CisgICAgbXNnID0gbXNnIHx8
ICdQYXNzZWQnOworICAgIGlmIChfY3VycmVudFRlc3ROYW1lKQorICAgICAgbXNnID0gX2N1cnJl
bnRUZXN0TmFtZSArICc6ICcgKyBtc2c7CisKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVz
cyh0cnVlLCBtc2cpOworCisgICAgaWYgKCFxdWlldE1vZGUoKSkKKyAgICAgIF9hZGRTcGFuKCc8
c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVzY2FwZUhUTUwobXNnKSAr
ICc8L3NwYW4+Jyk7CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAg
ICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ1BBU1MgJyArIG1zZyk7CisgICAgfQorfQorCisvKioK
KyAqIEBwYXJhbSAge3N0cmluZz19IG1zZworICovCitmdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykg
eworICAgIG1zZyA9IG1zZyB8fCAnRmFpbGVkJzsKKyAgICBpZiAoX2N1cnJlbnRUZXN0TmFtZSkK
KyAgICAgIG1zZyA9IF9jdXJyZW50VGVzdE5hbWUgKyAnOiAnICsgbXNnOworCisgICAgcmVwb3J0
VGVzdFJlc3VsdHNUb0hhcm5lc3MoZmFsc2UsIG1zZyk7CisgICAgX2FkZFNwYW4oJzxzcGFuPjxz
cGFuIGNsYXNzPSJmYWlsIj5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bh
bj4nKTsKKyAgICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ0ZBSUwgJyArIG1zZyk7CisgICAgX2Zs
dXNoQnVmZmVyZWRMb2dzVG9Db25zb2xlKCk7Cit9CisKK3ZhciBfY3VycmVudFRlc3ROYW1lOwor
CisvKioKKyAqIFNldHMgdGhlIGN1cnJlbnQgdGVzdCBuYW1lIGZvciB1c2FnZSB3aXRoaW4gdGVz
dFBhc3NlZE9wdGlvbnMvdGVzdEZhaWxlZE9wdGlvbnMuCisgKiBAcGFyYW0ge3N0cmluZz19IG5h
bWUgVGhlIG5hbWUgdG8gc2V0IGFzIHRoZSBjdXJyZW50IHRlc3QgbmFtZS4KKyAqLworZnVuY3Rp
b24gc2V0Q3VycmVudFRlc3ROYW1lKG5hbWUpCit7CisgICAgX2N1cnJlbnRUZXN0TmFtZSA9IG5h
bWU7Cit9CisKKy8qKgorICogR2V0cyB0aGUgY3VycmVudCB0ZXN0IG5hbWUgaW4gdXNlIHdpdGhp
biB0ZXN0UGFzc2VkT3B0aW9ucy90ZXN0RmFpbGVkT3B0aW9ucy4KKyAqIEByZXR1cm4ge3N0cmlu
Z30gVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgdGVzdC4KKyAqLworZnVuY3Rpb24gZ2V0Q3VycmVu
dFRlc3ROYW1lKCkKK3sKKyAgICByZXR1cm4gX2N1cnJlbnRUZXN0TmFtZTsKK30KKworLyoqCisg
KiBWYXJpYXRpb24gb2YgdGhlIHRlc3RQYXNzZWQgZnVuY3Rpb24sIHdpdGggdGhlIG9wdGlvbiB0
byBub3Qgc2hvdyAoYW5kIHRodXMgbm90IGNvdW50KSB0aGUgdGVzdCdzIHBhc3MgcmVzdWx0Lgor
ICogQHBhcmFtIHtzdHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0byBiZSBzaG93biBpbiB0aGUgcGFz
cyByZXN1bHQuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGFkZFNwYW4gSW5kaWNhdGVzIHdoZXRoZXIg
dGhlIG1lc3NhZ2Ugd2lsbCBiZSB2aXNpYmxlICh0aHVzIGNvdW50ZWQgaW4gdGhlIHJlc3VsdHMp
IG9yIG5vdC4KKyAqLworZnVuY3Rpb24gdGVzdFBhc3NlZE9wdGlvbnMobXNnLCBhZGRTcGFuKQor
eworICAgIGlmIChhZGRTcGFuICYmICFxdWlldE1vZGUoKSkKKyAgICB7CisgICAgICAgIHJlcG9y
dFRlc3RSZXN1bHRzVG9IYXJuZXNzKHRydWUsIF9jdXJyZW50VGVzdE5hbWUgKyAiOiAiICsgbXNn
KTsKKyAgICAgICAgX2FkZFNwYW4oJzxzcGFuPjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFu
PiAnICsgZXNjYXBlSFRNTChfY3VycmVudFRlc3ROYW1lKSArICI6ICIgKyBlc2NhcGVIVE1MKG1z
ZykgKyAnPC9zcGFuPicpOworICAgIH0KKyAgICBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5n
KSB7CisgICAgICAgIF9idWZmZXJlZExvZ1RvQ29uc29sZSgnUEFTUyAnICsgbXNnKTsKKyAgICB9
Cit9CisKKy8qKgorICogUmVwb3J0IHNraXBwZWQgdGVzdHMuCisgKiBAcGFyYW0ge3N0cmluZ30g
bXNnIFRoZSBtZXNzYWdlIHRvIGJlIHNob3duIGluIHRoZSBza2lwIHJlc3VsdC4KKyAqIEBwYXJh
bSB7Ym9vbGVhbn0gYWRkU3BhbiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVzc2FnZSB3aWxsIGJl
IHZpc2libGUgKHRodXMgY291bnRlZCBpbiB0aGUgcmVzdWx0cykgb3Igbm90LgorICovCitmdW5j
dGlvbiB0ZXN0U2tpcHBlZE9wdGlvbnMobXNnLCBhZGRTcGFuKQoreworICAgIGlmIChhZGRTcGFu
ICYmICFxdWlldE1vZGUoKSkKKyAgICB7CisgICAgICAgIHJlcG9ydFNraXBwZWRUZXN0UmVzdWx0
c1RvSGFybmVzcyh0cnVlLCBfY3VycmVudFRlc3ROYW1lICsgIjogIiArIG1zZyk7CisgICAgICAg
IF9hZGRTcGFuKCc8c3Bhbj48c3BhbiBjbGFzcz0id2FybiI+U0tJUDwvc3Bhbj4gJyArIGVzY2Fw
ZUhUTUwoX2N1cnJlbnRUZXN0TmFtZSkgKyAiOiAiICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bh
bj4nKTsKKyAgICB9CisgICAgaWYgKF9qc1Rlc3RQcmVWZXJib3NlTG9nZ2luZykgeworICAgICAg
ICBfYnVmZmVyZWRMb2dUb0NvbnNvbGUoJ1NLSVAnICsgbXNnKTsKKyAgICB9Cit9CisKKy8qKgor
ICogVmFyaWF0aW9uIG9mIHRoZSB0ZXN0RmFpbGVkIGZ1bmN0aW9uLCB3aXRoIHRoZSBvcHRpb24g
dG8gdGhyb3cgYW4gZXhjZXB0aW9uIG9yIG5vdC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgVGhl
IG1lc3NhZ2UgdG8gYmUgc2hvd24gaW4gdGhlIGZhaWwgcmVzdWx0LgorICogQHBhcmFtIHtib29s
ZWFufSBleHRocm93IEluZGljYXRlcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiB3aWxsIHRocm93IGEg
VGVzdEZhaWxlZEV4Y2VwdGlvbiBvciBub3QuCisgKi8KK2Z1bmN0aW9uIHRlc3RGYWlsZWRPcHRp
b25zKG1zZywgZXh0aHJvdykKK3sKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhmYWxz
ZSwgX2N1cnJlbnRUZXN0TmFtZSArICI6ICIgKyBtc2cpOworICAgIF9hZGRTcGFuKCc8c3Bhbj48
c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVzY2FwZUhUTUwoX2N1cnJlbnRUZXN0
TmFtZSkgKyAiOiAiICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAgICBfYnVmZmVy
ZWRMb2dUb0NvbnNvbGUoJ0ZBSUwgJyArIG1zZyk7CisgICAgX2ZsdXNoQnVmZmVyZWRMb2dzVG9D
b25zb2xlKCk7CisgICAgaWYgKGV4dGhyb3cpIHsKKyAgICAgICAgX2N1cnJlbnRUZXN0TmFtZSA9
ICIiOyAvL1JlbWVtYmVyaW5nIHRvIHNldCB0aGUgbmFtZSBvZiBjdXJyZW50IHRlc3RjYXNlIHRv
IGVtcHR5IHN0cmluZy4KKyAgICAgICAgdGhyb3cgbmV3IFRlc3RGYWlsZWRFeGNlcHRpb24obXNn
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9hLCBfYikKK3sKKyAgICB0
cnkgeworICAgICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2EubGVuZ3RoOyBpKysp
CisgICAgICAgICAgICBpZiAoX2FbaV0gIT09IF9iW2ldKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBpc01pbnVzWmVybyhuKQoreworICAg
IC8vIHRoZSBvbmx5IHdheSB0byB0ZWxsIDAgZnJvbSAtMCBpbiBKUyBpcyB0aGUgZmFjdCB0aGF0
IDEvLTAgaXMKKyAgICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0eQorICAgIHJldHVy
biBuID09PSAwICYmIDEvbiA8IDA7Cit9CisKK2Z1bmN0aW9uIGlzUmVzdWx0Q29ycmVjdChfYWN0
dWFsLCBfZXhwZWN0ZWQpCit7CisgICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKKyAgICAgICAgcmV0
dXJuIF9hY3R1YWwgPT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0gKDEvX2V4cGVjdGVk
KTsKKyAgICBpZiAoX2FjdHVhbCA9PT0gX2V4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAodHlwZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2V4cGVjdGVk
KSkKKyAgICAgICAgcmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVyIiAmJiBpc05hTihf
YWN0dWFsKTsKKyAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3Rl
ZCkgPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkKKyAgICAgICAgcmV0dXJu
IGFyZUFycmF5c0VxdWFsKF9hY3R1YWwsIF9leHBlY3RlZCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitmdW5jdGlvbiBzdHJpbmdpZnkodikKK3sKKyAgICBpZiAodiA9PT0gMCAmJiAxL3YgPCAw
KQorICAgICAgICByZXR1cm4gIi0wIjsKKyAgICBlbHNlIHJldHVybiAiIiArIHY7Cit9CisKK2Z1
bmN0aW9uIGV2YWxBbmRMb2coX2EpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisg
ICAgZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsK
KworICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhp
cyBjYXVzZXMgYSBzeW5jIGV2ZW50LgorICBkZWJ1ZyhfYSk7CisKKyAgdmFyIF9hdjsKKyAgdHJ5
IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVk
KF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJldHVybiBfYXY7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZEJlU3RyaW5nKGV2YWxhYmxlLCBleHBlY3RlZCkgeworICAgIGNvbnN0
IHZhbCA9IGV2YWwoZXZhbGFibGUpOworICAgIGNvbnN0IHRleHQgPSBldmFsYWJsZSArICIgc2hv
dWxkIGJlICIgKyBleHBlY3RlZCArICIuIjsKKyAgICBpZiAodmFsID09IGV4cGVjdGVkKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQodGV4dCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCh0ZXh0ICsgIiAod2FzICIgKyB2YWwgKyAiKSIpOworICAgIH0KK30KKworZnVuY3Rpb24gc2hv
dWxkQmUoX2EsIF9iLCBxdWlldCkKK3sKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8
IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkg
ZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIg
X2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2Ip
OworCisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxz
ZSBpZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgX2IpOworICAgICAgICB9Cisg
ICAgfSBlbHNlIGlmICh0eXBlb2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKKyAgICAgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYp
ICsgIi4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAi
ICsgX2J2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiArICIg
KG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKK30KKworZnVuY3Rpb24gc2hvdWxkTm90
QmUoX2EsIF9iLCBxdWlldCkKK3sKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5
cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZE5vdEJlKCkg
ZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIg
X2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2Ip
OworCisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IG5vdCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAg
IGVsc2UgaWYgKCFpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CisgICAgICAgIGlmICghcXVp
ZXQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vdCAiICsgX2IpOworICAg
ICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3Qg
YmUgIiArIF9idiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVHJ1ZShfYSkgeyBzaG91
bGRCZShfYSwgInRydWUiKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVGYWxzZShfYSkgeyBzaG91bGRC
ZShfYSwgImZhbHNlIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlTmFOKF9hKSB7IHNob3VsZEJlKF9h
LCAiTmFOIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlTnVsbChfYSkgeyBzaG91bGRCZShfYSwgIm51
bGwiKTsgfQorCitmdW5jdGlvbiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYSwgYikKK3sKKyAgdmFy
IHVuZXZhbGVkU3RyaW5nID0gJyInICsgYi5yZXBsYWNlKC8iL2csICJcIiIpICsgJyInOworICBz
aG91bGRCZShhLCB1bmV2YWxlZFN0cmluZyk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEV2YWx1YXRl
VG8oYWN0dWFsLCBleHBlY3RlZCkgeworICAvLyBBIGdlbmVyYWwtcHVycG9zZSBjb21wYXJhdG9y
LiAgJ2FjdHVhbCcgc2hvdWxkIGJlIGEgc3RyaW5nIHRvIGJlCisgIC8vIGV2YWx1YXRlZCwgYXMg
Zm9yIHNob3VsZEJlKCkuICdleHBlY3RlZCcgbWF5IGJlIGFueSB0eXBlIGFuZCB3aWxsIGJlCisg
IC8vIHVzZWQgd2l0aG91dCBiZWluZyBldmFsJ2VkLgorICBpZiAoZXhwZWN0ZWQgPT0gbnVsbCkg
eworICAgIC8vIERvIHRoaXMgYmVmb3JlIHRoZSBvYmplY3QgdGVzdCwgc2luY2UgbnVsbCBpcyBv
ZiB0eXBlICdvYmplY3QnLgorICAgIHNob3VsZEJlTnVsbChhY3R1YWwpOworICB9IGVsc2UgaWYg
KHR5cGVvZiBleHBlY3RlZCA9PSAidW5kZWZpbmVkIikgeworICAgIHNob3VsZEJlVW5kZWZpbmVk
KGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJmdW5jdGlvbiIpIHsK
KyAgICAvLyBBbGwgdGhpcyBmdXNzIGlzIHRvIGF2b2lkIHRoZSBzdHJpbmctYXJnIHdhcm5pbmcg
ZnJvbSBzaG91bGRCZSgpLgorICAgIHRyeSB7CisgICAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFs
KGFjdHVhbCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgdGVzdEZhaWxlZCgiRXZhbHVhdGlu
ZyAiICsgYWN0dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgICAgIHJldHVybjsK
KyAgICB9CisgICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNl
KC9cbi9nLCAiIikgKyAiJyIsCisgICAgICAgICAgICAgIiciICsgZXhwZWN0ZWQudG9TdHJpbmco
KS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3Rl
ZCA9PSAib2JqZWN0IikgeworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwgKyAiID09ICciICsgZXhw
ZWN0ZWQgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAic3RyaW5nIikg
eworICAgIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOworICB9IGVsc2UgaWYgKHR5cGVvZiBl
eHBlY3RlZCA9PSAiYm9vbGVhbiIpIHsKKyAgICBzaG91bGRCZSgidHlwZW9mICIgKyBhY3R1YWws
ICInYm9vbGVhbiciKTsKKyAgICBpZiAoZXhwZWN0ZWQpCisgICAgICBzaG91bGRCZVRydWUoYWN0
dWFsKTsKKyAgICBlbHNlCisgICAgICBzaG91bGRCZUZhbHNlKGFjdHVhbCk7CisgIH0gZWxzZSBp
ZiAodHlwZW9mIGV4cGVjdGVkID09ICJudW1iZXIiKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBz
dHJpbmdpZnkoZXhwZWN0ZWQpKTsKKyAgfSBlbHNlIHsKKyAgICBkZWJ1ZyhleHBlY3RlZCArICIg
aXMgdW5rbm93biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlVHJ1ZShh
Y3R1YWwsICInIiAgK2V4cGVjdGVkLnRvU3RyaW5nKCkgKyAiJyIpOworICB9Cit9CisKK2Z1bmN0
aW9uIHNob3VsZEJlTm9uWmVybyhfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsK
KyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhj
ZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7Cisg
IGVsc2UgaWYgKF9hdiAhPSAwKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi16ZXJvLiIp
OworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBXYXMg
IiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9uTnVsbChfYSkKK3sKKyAgdmFyIGV4
Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24p
CisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBUaHJldyBleGNlcHRp
b24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPSBudWxsKQorICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzIG5vbi1udWxsLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJl
VW5kZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgewor
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBl
OworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgdW5kZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYg
KHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgdW5k
ZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIHVuZGVm
aW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZURlZmluZWQoX2EpCit7
CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwo
X2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAo
ZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBUaHJl
dyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPT0gdW5kZWZpbmVk
KQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5j
dGlvbiBzaG91bGRCZUxlc3NUaGFuT3JFcXVhbChfYSwgX2IpIHsKKyAgICBpZiAodHlwZW9mIF9h
ICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICAgICAgZGVidWcoIldB
Uk46IHNob3VsZEJlTGVzc1RoYW5PckVxdWFsIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwor
CisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9h
diA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsK
KyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgICAgaWYgKGV4Y2VwdGlvbikKKyAg
ICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIDw9ICIgKyBfYiArICIuIFRocmV3IGV4
Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRl
ZmluZWQiIHx8IF9hdiA+IF9idikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiAr
ICIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgPD0gIiArIF9i
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7Cisg
ICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisg
ICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3RzIHN0
cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAg
ICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAg
IGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAi
ICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAo
dHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCisgICAgICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIgKG9mIHR5
cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdFRydWUodiwgbXNnKSB7
CisgIGlmICh2KSB7CisgICAgdGVzdFBhc3NlZChtc2cpOworICB9IGVsc2UgeworICAgIHRlc3RG
YWlsZWQobXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiBtYXhBcnJheURpZmYoYSwgYikgeworICAg
IGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhIGFu
ZCBiIGhhdmUgZGlmZmVyZW50IGxlbmd0aHM6ICR7YS5sZW5ndGh9IHZzICR7Yi5sZW5ndGh9YCk7
CisKKyAgICBsZXQgZGlmZiA9IDA7CisgICAgZm9yIChjb25zdCBpIGluIGEpIHsKKyAgICAgICAg
ZGlmZiA9IE1hdGgubWF4KGRpZmYsIE1hdGguYWJzKGFbaV0gLSBiW2ldKSk7CisgICAgfQorICAg
IHJldHVybiBkaWZmOworfQorCitmdW5jdGlvbiBleHBlY3RBcnJheSh3YXMsIGV4cGVjdGVkLCBt
YXhEaWZmPTApIHsKKyAgICBjb25zdCBkaWZmID0gbWF4QXJyYXlEaWZmKGV4cGVjdGVkLCB3YXMp
OworICAgIGxldCBzdHIgPSBgRXhwZWN0ZWQgWyR7ZXhwZWN0ZWQudG9TdHJpbmcoKX1dYDsKKyAg
ICBsZXQgZm4gPSB0ZXN0UGFzc2VkOworICAgIGlmIChtYXhEaWZmKSB7CisgICAgICAgIHN0ciAr
PSAnICsvLSAnICsgbWF4RGlmZjsKKyAgICB9CisgICAgaWYgKGRpZmYgPiBtYXhEaWZmKSB7Cisg
ICAgICAgIGZuID0gdGVzdEZhaWxlZDsKKyAgICAgICAgc3RyICs9IGAsIHdhcyBbJHt3YXMudG9T
dHJpbmcoKX1dYDsKKyAgICB9CisgICAgZm4oc3RyKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhy
b3coX2EsIF9lKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAg
ICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOwor
ICB9CisKKyAgdmFyIF9ldjsKKyAgaWYgKF9lKQorICAgICAgX2V2ID0gIGV2YWwoX2UpOworCisg
IGlmIChleGNlcHRpb24pIHsKKyAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8IGV4
Y2VwdGlvbiA9PSBfZXYpCisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24g
IiArIGV4Y2VwdGlvbiArICIuIik7CisgICAgZWxzZQorICAgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlv
biIgOiBfZXYpICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOworICB9
IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2Vw
dGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJh
biBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKK30KKworZnVuY3Rp
b24gc2hvdWxkTm90VGhyb3coZXZhbFN0ciwgZGVzYykgeworICBkZXNjID0gZGVzYyB8fCBgXGAk
e2V2YWxTdHJ9XGBgOworICB0cnkgeworICAgIGV2YWwoZXZhbFN0cik7CisgICAgdGVzdFBhc3Nl
ZChgJHtkZXNjfSBzaG91bGQgbm90IHRocm93LmApOworICB9IGNhdGNoIChlKSB7CisgICAgdGVz
dEZhaWxlZChgJHtkZXNjfSBzaG91bGQgbm90IHRocm93LCBidXQgdGhyZXcgZXhjZXB0aW9uICR7
ZX0uYCk7CisgIH0KK30KKworCitmdW5jdGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7Cisg
ICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9
IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAg
ICB9CisKKyAgICB2YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7CisKKyAgICBpZihfdHlwZXYgPT09
IE51bWJlcil7CisgICAgICAgIGlmKF9hdiBpbnN0YW5jZW9mIE51bWJlcil7CisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAg
fQorICAgICAgICBlbHNlIGlmKHR5cGVvZihfYXYpID09PSAnbnVtYmVyJyl7CisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBpbnN0YW5jZSBvZiBOdW1iZXIiKTsKKyAgICAgICAg
fQorICAgICAgICBlbHNleworICAgICAgICAgICAgdGVzdEZhaWxlZChfYSArICIgaXMgbm90IGFu
IGluc3RhbmNlIG9mIE51bWJlciIpOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKF9h
diBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBp
bnN0YW5jZSBvZiAiICsgX3R5cGUpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQo
X2EgKyAiIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOworICAgIH0KK30KKworLyoq
CisgKiBTaG93cyBhIG1lc3NhZ2UgaW4gY2FzZSBleHByZXNzaW9uIHRlc3QgZmFpbHMuCisgKiBA
cGFyYW0ge2Jvb2xlYW59IGV4cAorICogQHBhcmFtIHtzdHJhaW5nfSBtZXNzYWdlCisgKi8KK2Z1
bmN0aW9uIGNoZWNrTWVzc2FnZShleHAsIG1lc3NhZ2UpIHsKKyAgICBpZiAoICFleHAgKQorICAg
ICAgICBfYWRkU3BhbignPHNwYW4+PHNwYW4gY2xhc3M9Indhcm4iPldBUk5JTkc8L3NwYW4+ICcg
KyBlc2NhcGVIVE1MKF9jdXJyZW50VGVzdE5hbWUpICsgIjogIiArIGVzY2FwZUhUTUwobWVzc2Fn
ZSkgKyAnPC9zcGFuPicpOworfQorCitmdW5jdGlvbiBhc3NlcnRNc2coYXNzZXJ0aW9uLCBtc2cp
IHsKKyAgICBpZiAoYXNzZXJ0aW9uKSB7CisgICAgICAgIHRlc3RQYXNzZWQobXNnKTsKKyAgICB9
IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7CisgICAgfQorfQorCisvKioKKyAqIFZh
cmlhdGlvbiBvZiB0aGUgYXNzZXJ0TXNnIGZ1bmN0aW9uLCB3aXRoIHRoZSBvcHRpb24gdG8gbm90
IHNob3cgKGFuZCB0aHVzIG5vdCBjb3VudCkgdGhlIHRlc3QncyBwYXNzIHJlc3VsdCwKKyAqIGFu
ZCB0aHJvdyBvciBub3QgYSBUZXN0RmFpbGVkRXhjZXB0aW9uIGluIGNhc2Ugb2YgZmFpbHVyZS4K
KyAqIEBwYXJhbSB7Ym9vbGVhbn0gYXNzZXJ0aW9uIElmIHRoaXMgaXMgdHJ1ZSwgbWVhbnMgc3Vj
Y2VzcywgZWxzZSBmYWlsdXJlLgorICogQHBhcmFtIHs/c3RyaW5nfSBtc2cgVGhlIG1lc3NhZ2Ug
dG8gYmUgc2hvd24gaW4gdGhlIHJlc3VsdC4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gdmVyYm9zZSBJ
biBjYXNlIG9mIHN1Y2Nlc3MsIGRldGVybWluZXMgaWYgdGhlIHRlc3Qgd2lsbCBzaG93IGl0J3Mg
cmVzdWx0IGFuZCBjb3VudCBpbiB0aGUgcmVzdWx0cy4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gZXh0
aHJvdyBJbiBjYXNlIG9mIGZhaWx1cmUsIGRldGVybWluZXMgaWYgdGhlIGZ1bmN0aW9uIHdpbGwg
dGhyb3cgYSBUZXN0RmFpbGVkRXhjZXB0aW9uLgorICovCitmdW5jdGlvbiBhc3NlcnRNc2dPcHRp
b25zKGFzc2VydGlvbiwgbXNnLCB2ZXJib3NlLCBleHRocm93KSB7CisgICAgaWYgKGFzc2VydGlv
bikgeworICAgICAgICB0ZXN0UGFzc2VkT3B0aW9ucyhtc2csIHZlcmJvc2UpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRlc3RGYWlsZWRPcHRpb25zKG1zZywgZXh0aHJvdyk7CisgICAgfQorfQor
CisKK2Z1bmN0aW9uIHdlYmdsSGFybmVzc0NvbGxlY3RHYXJiYWdlKCkgeworICAgIGlmICh3aW5k
b3cuR0NDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5HQ0NvbnRyb2xsZXIuY29sbGVjdCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5vcGVyYSAmJiB3aW5k
b3cub3BlcmEuY29sbGVjdCkgeworICAgICAgICB3aW5kb3cub3BlcmEuY29sbGVjdCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LlF1ZXJ5SW50
ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lJbnRlcmZhY2VSZXF1ZXN0b3IpCisgICAg
ICAgICAgICAgIC5nZXRJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSURPTVdpbmRv
d1V0aWxzKQorICAgICAgICAgICAgICAuZ2FyYmFnZUNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0gY2F0Y2goZSkge30KKworICAgIGlmICh3aW5kb3cuZ2MpIHsKKyAgICAgICAgd2lu
ZG93LmdjKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2luZG93LkNvbGxl
Y3RHYXJiYWdlKSB7CisgICAgICAgIENvbGxlY3RHYXJiYWdlKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBXZWJLaXQncyBNaW5pQnJvd3Nlci4KKyAgICBpZiAod2luZG93LiR2
bSkgeworICAgICAgICB3aW5kb3cuJHZtLmdjKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CisgICAgICAgIGlmIChuIDwgMSkKKyAgICAgICAgICAg
IHJldHVybiB7fTsKKyAgICAgICAgdmFyIHRlbXAgPSB7aTogImFiIiArIGkgKyAoaSAvIDEwMDAw
MCl9OworICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICBnY1JlYyhuLTEpOworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgZ2NSZWMoMTApOwor
fQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworICB2YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAg
dmFyIGJhc2VQYXRoID0gIiI7CisgIHZhciBleHBlY3RlZEJhc2UgPSAianMtdGVzdC1wcmUuanMi
OworICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQn
KTsKKyAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2NyaXB0c1tpXTsgaSsrKSB7
CisgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgdmFyIGwgPSBzcmMubGVuZ3RoOworICAg
IGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9PSBleHBlY3RlZEJhc2Up
IHsKKyAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhwZWN0ZWRCYXNlLmxlbmd0
aCk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXBpbG9ndWUuc3JjID0gYmFzZVBhdGgg
KyAianMtdGVzdC1wb3N0LmpzIjsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1
ZSk7Cit9CisKKy8vLyBQcmVmZXIgYGNhbGwoKCkgPT4geyAuLi4gfSlgIHRvIGAoKCkgPT4geyAu
Li4gfSkoKWBcCisvLy8gVGhpcyB3YXksIGl0J3MgY2xlYXIgdXAtZnJvbnQgdGhhdCB3ZSdyZSBj
YWxsaW5nIG5vdCBqdXN0IGRlZmluaW5nLgorZnVuY3Rpb24gY2FsbChmbikgeworICAgIHJldHVy
biBmbigpOworfQorCisvLy8gYGZvciAoY29uc3QgaSBvZiByYW5nZSgzKSlgID0+IDAsIDEsIDIK
Ky8vLyBEb24ndCB1c2UgYGZvci4uLmluIHJhbmdlKG4pYCwgaXQgd2lsbCBub3Qgd29yay4KK2Z1
bmN0aW9uKiByYW5nZShuKSB7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAg
eWllbGQgaTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZmZhMTA4MjMwNDRiMTY0OTBlMGUzN2Jm
OGFjMmIzY2M5MWM3M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMK
QEAgLTAsMCArMSwzNTUyIEBACisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCit2YXIgV2ViR0xUZXN0VXRpbHMgPSAoZnVuY3Rpb24oKSB7CisidXNlIHN0cmljdCI7CisK
Ky8qKgorICogV3JhcHBlZCBsb2dnaW5nIGZ1bmN0aW9uLgorICogQHBhcmFtIHtzdHJpbmd9IG1z
ZyBUaGUgbWVzc2FnZSB0byBsb2cuCisgKi8KK3ZhciBsb2cgPSBmdW5jdGlvbihtc2cpIHsKKyAg
YnVmZmVyZWRMb2dUb0NvbnNvbGUobXNnKTsKK307CisKKy8qKgorICogV3JhcHBlZCBsb2dnaW5n
IGZ1bmN0aW9uLgorICogQHBhcmFtIHtzdHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0byBsb2cuCisg
Ki8KK3ZhciBlcnJvciA9IGZ1bmN0aW9uKG1zZykgeworICAvLyBGb3IgdGhlIHRpbWUgYmVpbmcs
IGRpdmVydGluZyB0aGlzIHRvIHdpbmRvdy5jb25zb2xlLmxvZyByYXRoZXIKKyAgLy8gdGhhbiB3
aW5kb3cuY29uc29sZS5lcnJvci4gSWYgYW55b25lIGNhcmVzIGVub3VnaCB0aGV5IGNhbgorICAv
LyBnZW5lcmFsaXplIHRoZSBtZWNoYW5pc20gaW4ganMtdGVzdC1wcmUuanMuCisgIGxvZyhtc2cp
OworfTsKKworLyoqCisgKiBUdXJuIG9mZiBhbGwgbG9nZ2luZy4KKyAqLwordmFyIGxvZ2dpbmdP
ZmYgPSBmdW5jdGlvbigpIHsKKyAgbG9nID0gZnVuY3Rpb24oKSB7fTsKKyAgZXJyb3IgPSBmdW5j
dGlvbigpIHt9OworfTsKKworY29uc3QgRU5VTV9OQU1FX1JFR0VYID0gUmVnRXhwKCdbQS1aXVtB
LVowLTlfXSonKTsKK2NvbnN0IEVOVU1fTkFNRV9CWV9WQUxVRSA9IHt9OworY29uc3QgRU5VTV9O
QU1FX1BST1RPVFlQRVMgPSBuZXcgTWFwKCk7CisKKy8qKgorICogQ29udmVydHMgYSBXZWJHTCBl
bnVtIHRvIGEgc3RyaW5nLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBU
aGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1
ZSBUaGUgZW51bSB2YWx1ZS4KKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGVudW0gYXMgYSBzdHJp
bmcuCisgKi8KK3ZhciBnbEVudW1Ub1N0cmluZyA9IGZ1bmN0aW9uKGdsT3JFeHQsIHZhbHVlKSB7
CisgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQorICAgIHRocm93IG5ldyBFcnJvcignZ2xFbnVt
VG9TdHJpbmc6IGB2YWx1ZWAgbXVzdCBub3QgYmUgdW5kZWZpbmVkJyk7CisKKyAgY29uc3QgcHJv
dG8gPSBnbE9yRXh0Ll9fcHJvdG9fXzsKKyAgaWYgKCFFTlVNX05BTUVfUFJPVE9UWVBFUy5oYXMo
cHJvdG8pKSB7CisgICAgRU5VTV9OQU1FX1BST1RPVFlQRVMuc2V0KHByb3RvLCB0cnVlKTsKKwor
ICAgIGZvciAoY29uc3QgayBpbiBwcm90bykgeworICAgICAgaWYgKCFFTlVNX05BTUVfUkVHRVgu
dGVzdChrKSkgY29udGludWU7CisKKyAgICAgIGNvbnN0IHYgPSBnbE9yRXh0W2tdOworICAgICAg
aWYgKEVOVU1fTkFNRV9CWV9WQUxVRVt2XSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIEVOVU1f
TkFNRV9CWV9WQUxVRVt2XSA9IGs7CisgICAgICB9IGVsc2UgeworICAgICAgICBFTlVNX05BTUVf
QllfVkFMVUVbdl0gKz0gJy8nICsgazsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBjb25zdCBr
ZXkgPSBFTlVNX05BTUVfQllfVkFMVUVbdmFsdWVdOworICBpZiAoa2V5ICE9PSB1bmRlZmluZWQp
IHJldHVybiBrZXk7CisKKyAgcmV0dXJuICIweCIgKyBOdW1iZXIodmFsdWUpLnRvU3RyaW5nKDE2
KTsKK307CisKK3ZhciBsYXN0RXJyb3IgPSAiIjsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBsYXN0
IGNvbXBpbGVyL2xpbmtlciBlcnJvci4KKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGxhc3QgY29t
cGlsZXIvbGlua2VyIGVycm9yLgorICovCit2YXIgZ2V0TGFzdEVycm9yID0gZnVuY3Rpb24oKSB7
CisgIHJldHVybiBsYXN0RXJyb3I7Cit9OworCisvKioKKyAqIFdoZXRoZXIgYSBoYXlzdGFjayBl
bmRzIHdpdGggYSBuZWVkbGUuCisgKiBAcGFyYW0ge3N0cmluZ30gaGF5c3RhY2sgU3RyaW5nIHRv
IHNlYXJjaAorICogQHBhcmFtIHtzdHJpbmd9IG5lZWRsZSBTdHJpbmcgdG8gc2VhcmNoIGZvci4K
KyAqIEBwYXJhbSB7Ym9vbGVhbn0gVHJ1ZSBpZiBoYXlzdGFjayBlbmRzIHdpdGggbmVlZGxlLgor
ICovCit2YXIgZW5kc1dpdGggPSBmdW5jdGlvbihoYXlzdGFjaywgbmVlZGxlKSB7CisgIHJldHVy
biBoYXlzdGFjay5zdWJzdHIoaGF5c3RhY2subGVuZ3RoIC0gbmVlZGxlLmxlbmd0aCkgPT09IG5l
ZWRsZTsKK307CisKKy8qKgorICogV2hldGhlciBhIGhheXN0YWNrIHN0YXJ0cyB3aXRoIGEgbmVl
ZGxlLgorICogQHBhcmFtIHtzdHJpbmd9IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKKyAqIEBw
YXJhbSB7c3RyaW5nfSBuZWVkbGUgU3RyaW5nIHRvIHNlYXJjaCBmb3IuCisgKiBAcGFyYW0ge2Jv
b2xlYW59IFRydWUgaWYgaGF5c3RhY2sgc3RhcnRzIHdpdGggbmVlZGxlLgorICovCit2YXIgc3Rh
cnRzV2l0aCA9IGZ1bmN0aW9uKGhheXN0YWNrLCBuZWVkbGUpIHsKKyAgcmV0dXJuIGhheXN0YWNr
LnN1YnN0cigwLCBuZWVkbGUubGVuZ3RoKSA9PT0gbmVlZGxlOworfTsKKworLyoqCisgKiBBIHZl
cnRleCBzaGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlwZSB7c3RyaW5nfQorICov
Cit2YXIgc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlciA9IFsKKyAgJ2F0dHJpYnV0ZSB2ZWM0IHZQ
b3NpdGlvbjsnLAorICAnYXR0cmlidXRlIHZlYzIgdGV4Q29vcmQwOycsCisgICd2YXJ5aW5nIHZl
YzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX1Bvc2l0aW9uID0g
dlBvc2l0aW9uOycsCisgICcgICAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7JywKKyAgJ30nXS5qb2lu
KCdcbicpOworCisvKioKKyAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4K
KyAqIEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyRVNT
TDMwMCA9IFsKKyAgJyN2ZXJzaW9uIDMwMCBlcycsCisgICdsYXlvdXQobG9jYXRpb249MCkgaW4g
dmVjNCB2UG9zaXRpb247JywKKyAgJ2xheW91dChsb2NhdGlvbj0xKSBpbiB2ZWMyIHRleENvb3Jk
MDsnLAorICAnb3V0IHZlYzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAg
IGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCisgICcgICAgdGV4Q29vcmQgPSB0ZXhDb29yZDA7
JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBh
IHNpbmdsZSB0ZXh0dXJlLgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVRleHR1
cmVGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OycsCisgICd1
bmlmb3JtIHNhbXBsZXIyRCB0ZXg7JywKKyAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAorICAn
dm9pZCBtYWluKCkgeycsCisgICcgICAgZ2xfRnJhZ0RhdGFbMF0gPSB0ZXh0dXJlMkQodGV4LCB0
ZXhDb29yZCk7JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hh
ZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJlLgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNp
bXBsZVRleHR1cmVGcmFnbWVudFNoYWRlckVTU0wzMDAgPSBbCisgICcjdmVyc2lvbiAzMDAgZXMn
LAorICAncHJlY2lzaW9uIGhpZ2hwIGZsb2F0OycsCisgICd1bmlmb3JtIGhpZ2hwIHNhbXBsZXIy
RCB0ZXg7JywKKyAgJ2luIHZlYzIgdGV4Q29vcmQ7JywKKyAgJ291dCB2ZWM0IG91dF9jb2xvcjsn
LAorICAndm9pZCBtYWluKCkgeycsCisgICcgICAgb3V0X2NvbG9yID0gdGV4dHVyZSh0ZXgsIHRl
eENvb3JkKTsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFk
ZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUgd2l0aCBoaWdoIHByZWNpc2lvbi4KKyAqIEB0eXBlIHtz
dHJpbmd9CisgKi8KK3ZhciBzaW1wbGVIaWdoUHJlY2lzaW9uVGV4dHVyZUZyYWdtZW50U2hhZGVy
ID0gWworICAncHJlY2lzaW9uIGhpZ2hwIGZsb2F0OycsCisgICd1bmlmb3JtIGhpZ2hwIHNhbXBs
ZXIyRCB0ZXg7JywKKyAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAorICAndm9pZCBtYWluKCkg
eycsCisgICcgICAgZ2xfRnJhZ0RhdGFbMF0gPSB0ZXh0dXJlMkQodGV4LCB0ZXhDb29yZCk7JywK
KyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEgZnJhZ21lbnQgc2hhZGVyIGZvciBhIHNp
bmdsZSBjdWJlIG1hcCB0ZXh0dXJlLgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBs
ZUN1YmVNYXBUZXh0dXJlRnJhZ21lbnRTaGFkZXIgPSBbCisgICdwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsnLAorICAndW5pZm9ybSBzYW1wbGVyQ3ViZSB0ZXg7JywKKyAgJ3VuaWZvcm0gaGlnaHAg
aW50IGZhY2U7JywKKyAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAorICAndm9pZCBtYWluKCkg
eycsCisgIC8vIFRyYW5zZm9ybSBbMCwgMV0gLT4gWy0xLCAxXQorICAnICAgIHZlYzIgdGV4QzIg
PSAodGV4Q29vcmQgKiAyLikgLSAxLjsnLAorICAvLyBUcmFuc2Zvcm0gMmQgdGV4IGNvb3JkLiB0
byBlYWNoIGZhY2Ugb2YgVEVYVFVSRV9DVUJFX01BUCBjb29yZC4KKyAgJyAgICB2ZWMzIHRleEN1
YmUgPSB2ZWMzKDAuLCAwLiwgMC4pOycsCisgICcgICAgaWYgKGZhY2UgPT0gMzQwNjkpIHsnLCAg
ICAgICAgIC8vIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWAorICAnICAgICAgICB0ZXhDdWJl
ID0gdmVjMygxLiwgLXRleEMyLnksIC10ZXhDMi54KTsnLAorICAnICAgIH0gZWxzZSBpZiAoZmFj
ZSA9PSAzNDA3MCkgeycsICAvLyBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1gKKyAgJyAgICAg
ICAgdGV4Q3ViZSA9IHZlYzMoLTEuLCAtdGV4QzIueSwgdGV4QzIueCk7JywKKyAgJyAgICB9IGVs
c2UgaWYgKGZhY2UgPT0gMzQwNzEpIHsnLCAgLy8gVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9Z
CisgICcgICAgICAgIHRleEN1YmUgPSB2ZWMzKHRleEMyLngsIDEuLCB0ZXhDMi55KTsnLAorICAn
ICAgIH0gZWxzZSBpZiAoZmFjZSA9PSAzNDA3MikgeycsICAvLyBURVhUVVJFX0NVQkVfTUFQX05F
R0FUSVZFX1kKKyAgJyAgICAgICAgdGV4Q3ViZSA9IHZlYzModGV4QzIueCwgLTEuLCAtdGV4QzIu
eSk7JywKKyAgJyAgICB9IGVsc2UgaWYgKGZhY2UgPT0gMzQwNzMpIHsnLCAgLy8gVEVYVFVSRV9D
VUJFX01BUF9QT1NJVElWRV9aCisgICcgICAgICAgIHRleEN1YmUgPSB2ZWMzKHRleEMyLngsIC10
ZXhDMi55LCAxLik7JywKKyAgJyAgICB9IGVsc2UgaWYgKGZhY2UgPT0gMzQwNzQpIHsnLCAgLy8g
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCisgICcgICAgICAgIHRleEN1YmUgPSB2ZWMzKC10
ZXhDMi54LCAtdGV4QzIueSwgLTEuKTsnLAorICAnICAgIH0nLAorICAnICAgIGdsX0ZyYWdEYXRh
WzBdID0gdGV4dHVyZUN1YmUodGV4LCB0ZXhDdWJlKTsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisK
Ky8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmdsZSB0ZXh0dXJlLgorICogQHR5cGUg
e3N0cmluZ30KKyAqLwordmFyIG5vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hhZGVyID0gWworICAn
YXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCisgICd2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7JywK
KyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCisg
ICcgICAgdGV4Q29vcmQgPSB2UG9zaXRpb24ueHkgKiAwLjUgKyAwLjU7JywKKyAgJ30nXS5qb2lu
KCdcbicpOworCisvKioKKyAqIEEgdmVydGV4IHNoYWRlciBmb3IgYSB1bmlmb3JtIGNvbG9yLgor
ICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVZlcnRleFNoYWRlciA9IFsKKyAgJ2F0
dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcgICAgZ2xf
UG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJ30nXS5qb2luKCdcbicpOworCisvKioKKyAqIEEg
dmVydGV4IHNoYWRlciBmb3IgYSB1bmlmb3JtIGNvbG9yLgorICogQHR5cGUge3N0cmluZ30KKyAq
LwordmFyIHNpbXBsZVZlcnRleFNoYWRlckVTU0wzMDAgPSBbCisgICcjdmVyc2lvbiAzMDAgZXMn
LAorICAnaW4gdmVjNCB2UG9zaXRpb247JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGds
X1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBB
IGZyYWdtZW50IHNoYWRlciBmb3IgYSB1bmlmb3JtIGNvbG9yLgorICogQHR5cGUge3N0cmluZ30K
KyAqLwordmFyIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCisgICdwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigp
IHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAorICAnfSddLmpvaW4oJ1xu
Jyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIGEgdW5pZm9ybSBjb2xvci4KKyAq
IEB0eXBlIHtzdHJpbmd9CisgKi8KK3ZhciBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyRVNTTDMw
MCA9IFsKKyAgJyN2ZXJzaW9uIDMwMCBlcycsCisgICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsn
LAorICAnb3V0IHZlYzQgb3V0X2NvbG9yOycsCisgICd1bmlmb3JtIHZlYzQgdV9jb2xvcjsnLAor
ICAndm9pZCBtYWluKCkgeycsCisgICcgICAgb3V0X2NvbG9yID0gdV9jb2xvcjsnLAorICAnfSdd
LmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciB2ZXJ0ZXggY29sb3Jz
LgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hh
ZGVyID0gWworICAnYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCisgICdhdHRyaWJ1dGUgdmVj
NCBhX2NvbG9yOycsCisgICd2YXJ5aW5nIHZlYzQgdl9jb2xvcjsnLAorICAndm9pZCBtYWluKCkg
eycsCisgICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJyAgICB2X2NvbG9yID0g
YV9jb2xvcjsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFk
ZXIgZm9yIHZlcnRleCBjb2xvcnMuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxl
VmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OycsCisgICd2YXJ5aW5nIHZlYzQgdl9jb2xvcjsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcg
ICAgZ2xfRnJhZ0RhdGFbMF0gPSB2X2NvbG9yOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoq
CisgKiBDcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgc2hhZGVycywgYmluZHMgYXR0cmliIGxv
Y2F0aW9ucywgbGlua3MgdGhlCisgKiBwcm9ncmFtIGFuZCBjYWxscyB1c2VQcm9ncmFtLgorICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjwhV2ViR0xTaGFkZXJ8c3RyaW5nPn0gc2hh
ZGVycyBUaGUgc2hhZGVycyB0bworICogICAgICAgIGF0dGFjaCwgb3IgdGhlIHNvdXJjZSwgb3Ig
dGhlIGlkIG9mIGEgc2NyaXB0IHRvIGdldAorICogICAgICAgIHRoZSBzb3VyY2UgZnJvbS4KKyAq
IEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSBvcHRfYXR0cmlicyBUaGUgYXR0cmlicyBuYW1lcy4K
KyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfbG9jYXRpb25zIFRoZSBsb2NhdGlvbnMg
Zm9yIHRoZSBhdHRyaWJzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9nU2hhZGVycyBXaGV0
aGVyIHRvIGxvZyBzaGFkZXIgc291cmNlLgorICovCit2YXIgc2V0dXBQcm9ncmFtID0gZnVuY3Rp
b24oCisgICAgZ2wsIHNoYWRlcnMsIG9wdF9hdHRyaWJzLCBvcHRfbG9jYXRpb25zLCBvcHRfbG9n
U2hhZGVycykgeworICB2YXIgcmVhbFNoYWRlcnMgPSBbXTsKKyAgdmFyIHByb2dyYW0gPSBnbC5j
cmVhdGVQcm9ncmFtKCk7CisgIHZhciBzaGFkZXJDb3VudCA9IDA7CisgIGZvciAodmFyIGlpID0g
MDsgaWkgPCBzaGFkZXJzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBzaGFkZXIgPSBzaGFkZXJz
W2lpXTsKKyAgICB2YXIgc2hhZGVyVHlwZSA9IHVuZGVmaW5lZDsKKyAgICBpZiAodHlwZW9mIHNo
YWRlciA9PSAnc3RyaW5nJykgeworICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChzaGFkZXIpOworICAgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKGVsZW1l
bnQudHlwZSAhPSAieC1zaGFkZXIveC12ZXJ0ZXgiICYmIGVsZW1lbnQudHlwZSAhPSAieC1zaGFk
ZXIveC1mcmFnbWVudCIpCisgICAgICAgICAgc2hhZGVyVHlwZSA9IGlpID8gZ2wuRlJBR01FTlRf
U0hBREVSIDogZ2wuVkVSVEVYX1NIQURFUjsKKyAgICAgICAgc2hhZGVyID0gbG9hZFNoYWRlckZy
b21TY3JpcHQoZ2wsIHNoYWRlciwgc2hhZGVyVHlwZSwgdW5kZWZpbmVkLCBvcHRfbG9nU2hhZGVy
cyk7CisgICAgICB9IGVsc2UgaWYgKGVuZHNXaXRoKHNoYWRlciwgIi52ZXJ0IikpIHsKKyAgICAg
ICAgc2hhZGVyID0gbG9hZFNoYWRlckZyb21GaWxlKGdsLCBzaGFkZXIsIGdsLlZFUlRFWF9TSEFE
RVIsIHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRlcnMpOworICAgICAgfSBlbHNlIGlmIChlbmRzV2l0
aChzaGFkZXIsICIuZnJhZyIpKSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXJGcm9tRmls
ZShnbCwgc2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIsIHVuZGVmaW5lZCwgb3B0X2xvZ1NoYWRl
cnMpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc2hhZGVyID0gbG9hZFNoYWRlcihnbCwgc2hh
ZGVyLCBpaSA/IGdsLkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRFWF9TSEFERVIsIHVuZGVmaW5l
ZCwgb3B0X2xvZ1NoYWRlcnMpOworICAgICAgfQorICAgIH0gZWxzZSBpZiAob3B0X2xvZ1NoYWRl
cnMpIHsKKyAgICAgIHRocm93ICdTaGFkZXIgc291cmNlIGxvZ2dpbmcgcmVxdWVzdGVkIGJ1dCBu
byBzaGFkZXIgc291cmNlIHByb3ZpZGVkJzsKKyAgICB9CisgICAgaWYgKHNoYWRlcikgeworICAg
ICAgKytzaGFkZXJDb3VudDsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBzaGFkZXIp
OworICAgIH0KKyAgfQorICBpZiAoc2hhZGVyQ291bnQgIT0gMikgeworICAgIGVycm9yKCJFcnJv
ciBpbiBjb21waWxpbmcgc2hhZGVyIik7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKyAgaWYgKG9w
dF9hdHRyaWJzKSB7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG9wdF9hdHRyaWJzLmxlbmd0
aDsgKytpaSkgeworICAgICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKAorICAgICAgICAgIHByb2dy
YW0sCisgICAgICAgICAgb3B0X2xvY2F0aW9ucyA/IG9wdF9sb2NhdGlvbnNbaWldIDogaWksCisg
ICAgICAgICAgb3B0X2F0dHJpYnNbaWldKTsKKyAgICB9CisgIH0KKyAgZ2wubGlua1Byb2dyYW0o
cHJvZ3JhbSk7CisKKyAgLy8gQ2hlY2sgdGhlIGxpbmsgc3RhdHVzCisgIHZhciBsaW5rZWQgPSBn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKTsKKyAgaWYgKCFs
aW5rZWQpIHsKKyAgICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKKyAg
ICAgIGxhc3RFcnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChwcm9ncmFtKTsKKyAgICAgIGVy
cm9yKCJFcnJvciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGxhc3RFcnJvcik7CisKKyAgICAgIGds
LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIGds
LnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBD
cmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgc2hhZGVyLCBzZXRzIHVwIHRyYXNuZm9ybSBmZWVk
YmFjayB2YXJ5aW5ncywKKyAqIGJpbmRzIGF0dHJpYiBsb2NhdGlvbnMsIGxpbmtzIHRoZSBwcm9n
cmFtIGFuZCBjYWxscyB1c2VQcm9ncmFtLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250
ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFy
cmF5LjwhV2ViR0xTaGFkZXJ8c3RyaW5nPn0gc2hhZGVycyBUaGUgc2hhZGVycyB0bworICogICAg
ICAgIGF0dGFjaCwgb3IgdGhlIHNvdXJjZSwgb3IgdGhlIGlkIG9mIGEgc2NyaXB0IHRvIGdldAor
ICogICAgICAgIHRoZSBzb3VyY2UgZnJvbS4KKyAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSB2
YXJ5aW5ncyBUaGUgdHJhbnNmb3JtIGZlZWRiYWNrIHZhcnlpbmcgbmFtZXMuCisgKiBAcGFyYW0g
e251bWJlcn0gYnVmZmVyTW9kZSBUaGUgbW9kZSB1c2VkIHRvIGNhcHR1cmUgdGhlIHZhcnlpbmcg
dmFyaWFibGVzLgorICogQHBhcmFtIHshQXJyYXkuPHN0cmluZz59IG9wdF9hdHRyaWJzIFRoZSBh
dHRyaWJzIG5hbWVzLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IG9wdF9sb2NhdGlvbnMg
VGhlIGxvY2F0aW9ucyBmb3IgdGhlIGF0dHJpYnMuCisgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdF9s
b2dTaGFkZXJzIFdoZXRoZXIgdG8gbG9nIHNoYWRlciBzb3VyY2UuCisgKi8KK3ZhciBzZXR1cFRy
YW5zZm9ybUZlZWRiYWNrUHJvZ3JhbSA9IGZ1bmN0aW9uKAorICAgIGdsLCBzaGFkZXJzLCB2YXJ5
aW5ncywgYnVmZmVyTW9kZSwgb3B0X2F0dHJpYnMsIG9wdF9sb2NhdGlvbnMsIG9wdF9sb2dTaGFk
ZXJzLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpIHsKKyAgdmFyIHJlYWxTaGFkZXJzID0gW107Cisg
IHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICB2YXIgc2hhZGVyQ291bnQgPSAw
OworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc2hhZGVycy5sZW5ndGg7ICsraWkpIHsKKyAgICB2
YXIgc2hhZGVyID0gc2hhZGVyc1tpaV07CisgICAgdmFyIHNoYWRlclR5cGUgPSB1bmRlZmluZWQ7
CisgICAgaWYgKHR5cGVvZiBzaGFkZXIgPT0gJ3N0cmluZycpIHsKKyAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2hhZGVyKTsKKyAgICAgIGlmIChlbGVtZW50KSB7
CisgICAgICAgIGlmIChlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtdmVydGV4IiAmJiBlbGVt
ZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQorICAgICAgICAgIHNoYWRlclR5cGUg
PSBpaSA/IGdsLkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRFWF9TSEFERVI7CisgICAgICAgIHNo
YWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBzaGFkZXIsIHNoYWRlclR5cGUsIHVuZGVm
aW5lZCwgb3B0X2xvZ1NoYWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cyk7CisgICAgICB9IGVs
c2UgaWYgKGVuZHNXaXRoKHNoYWRlciwgIi52ZXJ0IikpIHsKKyAgICAgICAgc2hhZGVyID0gbG9h
ZFNoYWRlckZyb21GaWxlKGdsLCBzaGFkZXIsIGdsLlZFUlRFWF9TSEFERVIsIHVuZGVmaW5lZCwg
b3B0X2xvZ1NoYWRlcnMsIG9wdF9za2lwQ29tcGlsZVN0YXR1cyk7CisgICAgICB9IGVsc2UgaWYg
KGVuZHNXaXRoKHNoYWRlciwgIi5mcmFnIikpIHsKKyAgICAgICAgc2hhZGVyID0gbG9hZFNoYWRl
ckZyb21GaWxlKGdsLCBzaGFkZXIsIGdsLkZSQUdNRU5UX1NIQURFUiwgdW5kZWZpbmVkLCBvcHRf
bG9nU2hhZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKKyAgICAgIH0gZWxzZSB7CisgICAg
ICAgIHNoYWRlciA9IGxvYWRTaGFkZXIoZ2wsIHNoYWRlciwgaWkgPyBnbC5GUkFHTUVOVF9TSEFE
RVIgOiBnbC5WRVJURVhfU0hBREVSLCB1bmRlZmluZWQsIG9wdF9sb2dTaGFkZXJzLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgb3B0X3NraXBDb21waWxlU3RhdHVzKTsKKyAgICAgIH0KKyAgICB9IGVs
c2UgaWYgKG9wdF9sb2dTaGFkZXJzKSB7CisgICAgICB0aHJvdyAnU2hhZGVyIHNvdXJjZSBsb2dn
aW5nIHJlcXVlc3RlZCBidXQgbm8gc2hhZGVyIHNvdXJjZSBwcm92aWRlZCc7CisgICAgfQorICAg
IGlmIChzaGFkZXIpIHsKKyAgICAgICsrc2hhZGVyQ291bnQ7CisgICAgICBnbC5hdHRhY2hTaGFk
ZXIocHJvZ3JhbSwgc2hhZGVyKTsKKyAgICB9CisgIH0KKyAgaWYgKHNoYWRlckNvdW50ICE9IDIp
IHsKKyAgICBlcnJvcigiRXJyb3IgaW4gY29tcGlsaW5nIHNoYWRlciIpOworICAgIHJldHVybiBu
dWxsOworICB9CisKKyAgaWYgKG9wdF9hdHRyaWJzKSB7CisgICAgZm9yICh2YXIgaWkgPSAwOyBp
aSA8IG9wdF9hdHRyaWJzLmxlbmd0aDsgKytpaSkgeworICAgICAgZ2wuYmluZEF0dHJpYkxvY2F0
aW9uKAorICAgICAgICAgIHByb2dyYW0sCisgICAgICAgICAgb3B0X2xvY2F0aW9ucyA/IG9wdF9s
b2NhdGlvbnNbaWldIDogaWksCisgICAgICAgICAgb3B0X2F0dHJpYnNbaWldKTsKKyAgICB9Cisg
IH0KKworICBnbC50cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKHByb2dyYW0sIHZhcnlpbmdzLCBi
dWZmZXJNb2RlKTsKKworICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKKworICAvLyBDaGVjayB0
aGUgbGluayBzdGF0dXMKKyAgdmFyIGxpbmtlZCA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJv
Z3JhbSwgZ2wuTElOS19TVEFUVVMpOworICBpZiAoIWxpbmtlZCkgeworICAgICAgLy8gc29tZXRo
aW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgbGluaworICAgICAgbGFzdEVycm9yID0gZ2wuZ2V0UHJv
Z3JhbUluZm9Mb2cgKHByb2dyYW0pOworICAgICAgZXJyb3IoIkVycm9yIGluIHByb2dyYW0gbGlu
a2luZzoiICsgbGFzdEVycm9yKTsKKworICAgICAgZ2wuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsK
KyAgICAgIHJldHVybiBudWxsOworICB9CisKKyAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKKyAg
cmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBzaW1wbGUgdGV4dHVyZSBw
cm9ncmFtLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAqLwor
dmFyIHNldHVwTm9UZXhDb29yZFRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oZ2wpIHsKKyAgcmV0
dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAgICAgICAgICAgICAgICBbbm9UZXhDb29yZFRl
eHR1cmVWZXJ0ZXhTaGFkZXIsIHNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlcl0sCisgICAgICAg
ICAgICAgICAgICAgICAgWyd2UG9zaXRpb24nXSwKKyAgICAgICAgICAgICAgICAgICAgICBbMF0p
OworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KKyAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0
dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNv
b3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBA
cGFyYW0ge3N0cmluZ30gb3B0X2ZyYWdtZW50U2hhZGVyT3ZlcnJpZGUgVGhlIGFsdGVybmF0aXZl
IGZyYWdtZW50IHNoYWRlciB0byB1c2UuCisgKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19CisgKi8K
K3ZhciBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIG9wdF9w
b3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgb3B0X2ZyYWdtZW50U2hhZGVy
T3ZlcnJpZGUpIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlv
biB8fCAwOworICBvcHRfdGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8
IDE7CisgIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlID0gb3B0X2ZyYWdtZW50U2hhZGVyT3Zl
cnJpZGUgfHwgc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyOworICByZXR1cm4gc2V0dXBQcm9n
cmFtKGdsLAorICAgICAgICAgICAgICAgICAgICAgIFtzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVy
LCBvcHRfZnJhZ21lbnRTaGFkZXJPdmVycmlkZV0sCisgICAgICAgICAgICAgICAgICAgICAgWyd2
UG9zaXRpb24nLCAndGV4Q29vcmQwJ10sCisgICAgICAgICAgICAgICAgICAgICAgW29wdF9wb3Np
dGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOworfTsKKworLyoqCisgKiBDcmVh
dGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbSB1c2luZyBnbHNsIHZlcnNpb24gMzAwLgorICog
QHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUg
YXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4
Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAq
IEBwYXJhbSB7c3RyaW5nfSBvcHRfZnJhZ21lbnRTaGFkZXJPdmVycmlkZSBUaGUgYWx0ZXJuYXRp
dmUgZnJhZ21lbnQgc2hhZGVyIHRvIHVzZS4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAq
LwordmFyIHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW1FU1NMMzAwID0gZnVuY3Rpb24oCisgICAg
Z2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgb3B0X2ZyYWdt
ZW50U2hhZGVyT3ZlcnJpZGUpIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRp
b25Mb2NhdGlvbiB8fCAwOworICBvcHRfdGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExv
Y2F0aW9uIHx8IDE7CisgIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlID0gb3B0X2ZyYWdtZW50
U2hhZGVyT3ZlcnJpZGUgfHwgc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyRVNTTDMwMDsKKyAg
cmV0dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAgICAgICAgICAgICAgICBbc2ltcGxlVGV4
dHVyZVZlcnRleFNoYWRlckVTU0wzMDAsIG9wdF9mcmFnbWVudFNoYWRlck92ZXJyaWRlXSwKKyAg
ICAgICAgICAgICAgICAgICAgICBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwKKyAgICAgICAg
ICAgICAgICAgICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9u
XSk7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBzaW1wbGUgY3ViZSBtYXAgdGV4dHVyZSBwcm9n
cmFtLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2Nh
dGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAqIEBwYXJhbSB7bnVtYmVy
fSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciB0ZXh0dXJlIGNv
b3Jkcy4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwU2ltcGxlQ3Vi
ZU1hcFRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9w
dF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7CisgIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3Rl
eGNvb3JkTG9jYXRpb24gfHwgMTsKKyAgcmV0dXJuIHNldHVwUHJvZ3JhbShnbCwKKyAgICAgICAg
ICAgICAgICAgICAgICBbc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlciwgc2ltcGxlQ3ViZU1hcFRl
eHR1cmVGcmFnbWVudFNoYWRlcl0sCisgICAgICAgICAgICAgICAgICAgICAgWyd2UG9zaXRpb24n
LCAndGV4Q29vcmQwJ10sCisgICAgICAgICAgICAgICAgICAgICAgW29wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgc2lt
cGxlIHZlcnRleCBjb2xvciBwcm9ncmFtLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250
ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVt
YmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlv
bi4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdmVydGV4Q29sb3JMb2NhdGlvbiBUaGUgYXR0cmli
IGxvY2F0aW9uCisgKiAgICAgICAgZm9yIHZlcnRleCBjb2xvcnMuCisgKiBAcmV0dXJuIHtXZWJH
TFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZVZlcnRleENvbG9yUHJvZ3JhbSA9IGZ1bmN0
aW9uKAorICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3ZlcnRleENvbG9yTG9jYXRp
b24pIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAw
OworICBvcHRfdmVydGV4Q29sb3JMb2NhdGlvbiA9IG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uIHx8
IDE7CisgIHJldHVybiBzZXR1cFByb2dyYW0oZ2wsCisgICAgICAgICAgICAgICAgICAgICAgW3Np
bXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyLCBzaW1wbGVWZXJ0ZXhDb2xvckZyYWdtZW50U2hh
ZGVyXSwKKyAgICAgICAgICAgICAgICAgICAgICBbJ3ZQb3NpdGlvbicsICdhX2NvbG9yJ10sCisg
ICAgICAgICAgICAgICAgICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdmVydGV4Q29s
b3JMb2NhdGlvbl0pOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgc2ltcGxlIGNvbG9yIHByb2dy
YW0uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0
aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHJldHVybiB7V2ViR0xQ
cm9ncmFtfQorICovCit2YXIgc2V0dXBTaW1wbGVDb2xvclByb2dyYW0gPSBmdW5jdGlvbihnbCwg
b3B0X3Bvc2l0aW9uTG9jYXRpb24pIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9z
aXRpb25Mb2NhdGlvbiB8fCAwOworICByZXR1cm4gc2V0dXBQcm9ncmFtKGdsLAorICAgICAgICAg
ICAgICAgICAgICAgIFtzaW1wbGVWZXJ0ZXhTaGFkZXIsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFk
ZXJdLAorICAgICAgICAgICAgICAgICAgICAgIFsndlBvc2l0aW9uJ10sCisgICAgICAgICAgICAg
ICAgICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uXSk7Cit9OworCisvKioKKyAqIENyZWF0ZXMg
YnVmZmVycyBmb3IgYSB0ZXh0dXJlZCB1bml0IHF1YWQgYW5kIGF0dGFjaGVzIHRoZW0gdG8gdmVy
dGV4IGF0dHJpYnMuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFt
IHtudW1iZXJ9IG9wdF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRl
eHR1cmUgY29vcmRzLgorICogQHBhcmFtIHshT2JqZWN0fSB2YXJpb3VzIG9wdGlvbnMuIFNlZSBz
ZXR1cFF1YWQgZm9yIGRldGFpbHMuCisgKiBAcmV0dXJuIHshQXJyYXkuPFdlYkdMQnVmZmVyPn0g
VGhlIGJ1ZmZlciBvYmplY3RzIHRoYXQgd2VyZQorICogICAgICBjcmVhdGVkLgorICovCit2YXIg
c2V0dXBVbml0UXVhZCA9IGZ1bmN0aW9uKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3Rl
eGNvb3JkTG9jYXRpb24sIG9wdGlvbnMpIHsKKyAgcmV0dXJuIHNldHVwUXVhZFdpdGhUZXhDb29y
ZHMoZ2wsIFsgMC4wLCAwLjAgXSwgWyAxLjAsIDEuMCBdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMpOworfTsKKworLyoqCisgKiBD
cmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4dHVyZWQgcXVhZCB3aXRoIHNwZWNpZmllZCBsb3dlciBs
ZWZ0CisgKiBhbmQgdXBwZXIgcmlnaHQgdGV4dHVyZSBjb29yZGluYXRlcywgYW5kIGF0dGFjaGVz
IHRoZW0gdG8gdmVydGV4CisgKiBhdHRyaWJzLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdD
b250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7
IUFycmF5LjxudW1iZXI+fSBsb3dlckxlZnRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0
ZXMgZm9yIHRoZSBsb3dlciBsZWZ0IGNvcm5lci4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+
fSB1cHBlclJpZ2h0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgdXBw
ZXIgcmlnaHQgY29ybmVyLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9u
IFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFtIHtudW1iZXJ9IG9w
dF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRz
LgorICogQHBhcmFtIHshT2JqZWN0fSB2YXJpb3VzIG9wdGlvbnMuIFNlZSBzZXR1cFF1YWQgZm9y
IGRldGFpbHMuCisgKiBAcmV0dXJuIHshQXJyYXkuPFdlYkdMQnVmZmVyPn0gVGhlIGJ1ZmZlciBv
YmplY3RzIHRoYXQgd2VyZQorICogICAgICBjcmVhdGVkLgorICovCit2YXIgc2V0dXBRdWFkV2l0
aFRleENvb3JkcyA9IGZ1bmN0aW9uKAorICAgIGdsLCBsb3dlckxlZnRUZXhDb29yZHMsIHVwcGVy
UmlnaHRUZXhDb29yZHMsCisgICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExv
Y2F0aW9uLCBvcHRpb25zKSB7CisgIHZhciBkZWZhdWx0T3B0aW9ucyA9IHsKKyAgICBwb3NpdGlv
bkxvY2F0aW9uOiBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAwLAorICAgIHRleGNvb3JkTG9jYXRp
b246IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8IDEsCisgICAgbG93ZXJMZWZ0VGV4Q29vcmRzOiBs
b3dlckxlZnRUZXhDb29yZHMsCisgICAgdXBwZXJSaWdodFRleENvb3JkczogdXBwZXJSaWdodFRl
eENvb3JkcworICB9OworICBpZiAob3B0aW9ucykgeworICAgIGZvciAodmFyIHByb3AgaW4gb3B0
aW9ucykgeworICAgICAgZGVmYXVsdE9wdGlvbnNbcHJvcF0gPSBvcHRpb25zW3Byb3BdCisgICAg
fQorICB9CisgIHJldHVybiBzZXR1cFF1YWQoZ2wsIGRlZmF1bHRPcHRpb25zKTsKK307CisKKy8q
KgorICogTWFrZXMgYSBxdWFkIHdpdGggdmFyaW91cyBvcHRpb25zLgorICogQHBhcmFtIHshV2Vi
R0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4K
KyAqIEBwYXJhbSB7IU9iamVjdH0gb3B0aW9ucworICoKKyAqIHNjYWxlOiBzY2FsZSB0byBtdWx0
aXBseSB1bml0IHF1YWQgdmFsdWVzIGJ5LiBkZWZhdWx0IDEuMC4KKyAqIHBvc2l0aW9uTG9jYXRp
b246IGF0dHJpYnV0ZSBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiB0ZXhjb29yZExvY2F0aW9u
OiBhdHRyaWJ1dGUgbG9jYXRpb24gZm9yIHRleGNvb3Jkcy4KKyAqICAgICBJZiB0aGlzIGRvZXMg
bm90IGV4aXN0IG5vIHRleHR1cmUgY29vcmRzIGFyZSBjcmVhdGVkLgorICogbG93ZXJMZWZ0VGV4
Q29vcmRzOiBhbiBhcnJheSBvZiAyIHZhbHVlcyBmb3IgdGhlCisgKiAgICAgbG93ZXJMZWZ0VGV4
Q29vcmRzLgorICogdXBwZXJSaWdodFRleENvb3JkczogYW4gYXJyYXkgb2YgMiB2YWx1ZXMgZm9y
IHRoZQorICogICAgIHVwcGVyUmlnaHRUZXhDb29yZHMuCisgKi8KK3ZhciBzZXR1cFF1YWQgPSBm
dW5jdGlvbihnbCwgb3B0aW9ucykgeworICB2YXIgcG9zaXRpb25Mb2NhdGlvbiA9IG9wdGlvbnMu
cG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICB2YXIgc2NhbGUgPSBvcHRpb25zLnNjYWxlIHx8IDE7
CisKKyAgdmFyIG9iamVjdHMgPSBbXTsKKworICB2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRl
QnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3Qp
OworICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisg
ICAgICAgMS4wICogc2NhbGUgLCAgMS4wICogc2NhbGUsCisgICAgICAtMS4wICogc2NhbGUgLCAg
MS4wICogc2NhbGUsCisgICAgICAtMS4wICogc2NhbGUgLCAtMS4wICogc2NhbGUsCisgICAgICAg
MS4wICogc2NhbGUgLCAgMS4wICogc2NhbGUsCisgICAgICAtMS4wICogc2NhbGUgLCAtMS4wICog
c2NhbGUsCisgICAgICAgMS4wICogc2NhbGUgLCAtMS4wICogc2NhbGVdKSwgZ2wuU1RBVElDX0RS
QVcpOworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwb3NpdGlvbkxvY2F0aW9uKTsKKyAg
Z2wudmVydGV4QXR0cmliUG9pbnRlcihwb3NpdGlvbkxvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFs
c2UsIDAsIDApOworICBvYmplY3RzLnB1c2godmVydGV4T2JqZWN0KTsKKworICBpZiAob3B0aW9u
cy50ZXhjb29yZExvY2F0aW9uICE9PSB1bmRlZmluZWQpIHsKKyAgICB2YXIgbGx4ID0gb3B0aW9u
cy5sb3dlckxlZnRUZXhDb29yZHNbMF07CisgICAgdmFyIGxseSA9IG9wdGlvbnMubG93ZXJMZWZ0
VGV4Q29vcmRzWzFdOworICAgIHZhciB1cnggPSBvcHRpb25zLnVwcGVyUmlnaHRUZXhDb29yZHNb
MF07CisgICAgdmFyIHVyeSA9IG9wdGlvbnMudXBwZXJSaWdodFRleENvb3Jkc1sxXTsKKworICAg
IHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wu
QVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAgICAgdXJ4LCB1cnksCisgICAgICAgIGxs
eCwgdXJ5LAorICAgICAgICBsbHgsIGxseSwKKyAgICAgICAgdXJ4LCB1cnksCisgICAgICAgIGxs
eCwgbGx5LAorICAgICAgICB1cngsIGxseV0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkob3B0aW9ucy50ZXhjb29yZExvY2F0aW9uKTsKKyAgICBnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdGlvbnMudGV4Y29vcmRMb2NhdGlvbiwgMiwgZ2wuRkxPQVQs
IGZhbHNlLCAwLCAwKTsKKyAgICBvYmplY3RzLnB1c2godmVydGV4T2JqZWN0KTsKKyAgfQorCisg
IHJldHVybiBvYmplY3RzOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgcHJvZ3JhbSBhbmQgYnVm
ZmVycyBmb3IgcmVuZGVyaW5nIGEgdGV4dHVyZWQgcXVhZC4KKyAqIEBwYXJhbSB7IVdlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBm
b3IKKyAqICAgICAgICBwb3NpdGlvbi4gRGVmYXVsdCA9IDAuCisgKiBAcGFyYW0ge251bWJlcn0g
b3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IKKyAqICAgICAgICB0
ZXh0dXJlIGNvb3Jkcy4gRGVmYXVsdCA9IDEuCisgKiBAcGFyYW0geyFPYmplY3R9IHZhcmlvdXMg
b3B0aW9ucyBkZWZpbmVkIGJ5IHNldHVwUXVhZCwgcGx1cyBhbiBvcHRpb24KKyAgICAgICAgICBm
cmFnbWVudFNoYWRlck92ZXJyaWRlIHRvIHNwZWNpZnkgYSBjdXN0b20gZnJhZ21lbnQgc2hhZGVy
LgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwVGV4dHVyZWRRdWFk
ID0gZnVuY3Rpb24oCisgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRM
b2NhdGlvbiwgb3B0aW9ucykgeworICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlVGV4dHVyZVBy
b2dyYW0oCisgICAgICBnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0
aW9uLCBvcHRpb25zICYmIG9wdGlvbnMuZnJhZ21lbnRTaGFkZXJPdmVycmlkZSk7CisgIHNldHVw
VW5pdFF1YWQoZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwg
b3B0aW9ucyk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgcHJv
Z3JhbSBhbmQgYnVmZmVycyBmb3IgcmVuZGVyaW5nIGEgY29sb3IgcXVhZC4KKyAqIEBwYXJhbSB7
IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1
c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBs
b2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0geyFPYmplY3R9IHZhcmlvdXMgb3B0aW9u
cy4gU2VlIHNldHVwUXVhZCBmb3IgZGV0YWlscy4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19
CisgKi8KK3ZhciBzZXR1cENvbG9yUXVhZCA9IGZ1bmN0aW9uKGdsLCBvcHRfcG9zaXRpb25Mb2Nh
dGlvbiwgb3B0aW9ucykgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxv
Y2F0aW9uIHx8IDA7CisgIHZhciBwcm9ncmFtID0gc2V0dXBTaW1wbGVDb2xvclByb2dyYW0oZ2ws
IG9wdF9wb3NpdGlvbkxvY2F0aW9uKTsKKyAgc2V0dXBVbml0UXVhZChnbCwgb3B0X3Bvc2l0aW9u
TG9jYXRpb24sIDAsIG9wdGlvbnMpOworICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICog
Q3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBhIHRleHR1cmVkIHF1
YWQgd2l0aAorICogc3BlY2lmaWVkIGxvd2VyIGxlZnQgYW5kIHVwcGVyIHJpZ2h0IHRleHR1cmUg
Y29vcmRpbmF0ZXMuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59
IGxvd2VyTGVmdFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBmb3IgdGhlIGxvd2Vy
IGxlZnQgY29ybmVyLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IHVwcGVyUmlnaHRUZXhD
b29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSB1cHBlciByaWdodCBjb3JuZXIu
CisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2Nh
dGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRp
b24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBAcmV0dXJuIHsh
V2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzID0g
ZnVuY3Rpb24oCisgICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdodFRleENvb3Jk
cywKKyAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKKyAg
dmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAorICAgICAgZ2wsIG9wdF9w
b3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7CisgIHNldHVwUXVhZFdpdGhU
ZXhDb29yZHMoZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdodFRleENvb3JkcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3Jk
TG9jYXRpb24pOworICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHBy
b2dyYW0gYW5kIGJ1ZmZlcnMgZm9yIHJlbmRlcmluZyBhIHRleHR1cmVkIHF1YWQgd2l0aAorICog
YSBjdWJlIG1hcCB0ZXh0dXJlLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBn
bCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvcgorICogICAgICAgIHBv
c2l0aW9uLiBEZWZhdWx0ID0gMC4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2Nh
dGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvcgorICogICAgICAgIHRleHR1cmUgY29vcmRzLiBE
ZWZhdWx0ID0gMS4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFRl
eHR1cmVkUXVhZFdpdGhDdWJlTWFwID0gZnVuY3Rpb24oCisgICAgZ2wsIG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikgeworICB2YXIgcHJvZ3JhbSA9IHNldHVwU2lt
cGxlQ3ViZU1hcFRleHR1cmVQcm9ncmFtKAorICAgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9u
LCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7CisgIHNldHVwVW5pdFF1YWQoZ2wsIG9wdF9wb3NpdGlv
bkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbiwgdW5kZWZpbmVkKTsKKyAgcmV0dXJuIHBy
b2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSB1bml0IHF1YWQgd2l0aCBvbmx5IHBvc2l0
aW9ucyBvZiBhIGdpdmVuIHJlc29sdXRpb24uCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0Nv
bnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtu
dW1iZXJ9IGdyaWRSZXMgVGhlIHJlc29sdXRpb24gb2YgdGhlIG1lc2ggZ3JpZCwKKyAqICAgICBl
eHByZXNzZWQgaW4gdGhlIG51bWJlciBvZiBxdWFkcyBhY3Jvc3MgYW5kIGRvd24uCisgKiBAcGFy
YW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3Ig
cG9zaXRpb24uCisgKi8KK3ZhciBzZXR1cEluZGV4ZWRRdWFkID0gZnVuY3Rpb24gKAorICAgIGds
LCBncmlkUmVzLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X2ZsaXBPZGRUcmlhbmdsZXMpIHsK
KyAgcmV0dXJuIHNldHVwSW5kZXhlZFF1YWRXaXRoT3B0aW9ucyhnbCwKKyAgICB7IGdyaWRSZXM6
IGdyaWRSZXMsCisgICAgICBwb3NpdGlvbkxvY2F0aW9uOiBvcHRfcG9zaXRpb25Mb2NhdGlvbiwK
KyAgICAgIGZsaXBPZGRUcmlhbmdsZXM6IG9wdF9mbGlwT2RkVHJpYW5nbGVzCisgICAgfSk7Cit9
OworCisvKioKKyAqIENyZWF0ZXMgYSBxdWFkIHdpdGggdmFyaW91cyBvcHRpb25zLgorICogQHBh
cmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7IU9iamVjdH0gb3B0aW9ucyBUaGUgb3B0aW9ucy4gU2VlIGJl
bG93LgorICogQHJldHVybiB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBjcmVhdGVkIGJ1ZmZl
cnMuCisgKiAgICAgW3Bvc2l0aW9ucywgPGNvbG9ycz4sIGluZGljZXNdCisgKgorICogT3B0aW9u
czoKKyAqICAgZ3JpZFJlczogbnVtYmVyIG9mIHF1YWRzIGFjcm9zcyBhbmQgZG93biBncmlkLgor
ICogICBwb3NpdGlvbkxvY2F0aW9uOiBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uCisgKiAg
IGZsaXBPZGRUcmlhbmdsZXM6IHJldmVyc2Ugb3JkZXIgb2YgdmVydGljZXMgb2YgZXZlcnkgb3Ro
ZXIKKyAqICAgICAgIHRyaWFuZ2xlCisgKiAgIHBvc2l0aW9uT2Zmc2V0OiBvZmZzZXQgYWRkZWQg
dG8gZWFjaCB2ZXJ0ZXgKKyAqICAgcG9zaXRpb25NdWx0OiBtdWx0aXBpZXIgZm9yIGVhY2ggdmVy
dGV4CisgKiAgIGNvbG9yTG9jYXRpb246IGF0dHJpYiBsb2NhdGlvbiBmb3IgdmVydGV4IGNvbG9y
cy4gSWYKKyAqICAgICAgdW5kZWZpbmVkIG5vIHZlcnRleCBjb2xvcnMgd2lsbCBiZSBjcmVhdGVk
LgorICovCit2YXIgc2V0dXBJbmRleGVkUXVhZFdpdGhPcHRpb25zID0gZnVuY3Rpb24gKGdsLCBv
cHRpb25zKSB7CisgIHZhciBwb3NpdGlvbkxvY2F0aW9uID0gb3B0aW9ucy5wb3NpdGlvbkxvY2F0
aW9uIHx8IDA7CisgIHZhciBvYmplY3RzID0gW107CisKKyAgdmFyIGdyaWRSZXMgPSBvcHRpb25z
LmdyaWRSZXMgfHwgMTsKKyAgdmFyIHBvc2l0aW9uT2Zmc2V0ID0gb3B0aW9ucy5wb3NpdGlvbk9m
ZnNldCB8fCAwOworICB2YXIgcG9zaXRpb25NdWx0ID0gb3B0aW9ucy5wb3NpdGlvbk11bHQgfHwg
MTsKKyAgdmFyIHZlcnRzQWNyb3NzID0gZ3JpZFJlcyArIDE7CisgIHZhciBudW1WZXJ0cyA9IHZl
cnRzQWNyb3NzICogdmVydHNBY3Jvc3M7CisgIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFy
cmF5KG51bVZlcnRzICogMyk7CisgIHZhciBpbmRpY2VzID0gbmV3IFVpbnQxNkFycmF5KDYgKiBn
cmlkUmVzICogZ3JpZFJlcyk7CisgIHZhciBwb2Zmc2V0ID0gMDsKKworICBmb3IgKHZhciB5eSA9
IDA7IHl5IDw9IGdyaWRSZXM7ICsreXkpIHsKKyAgICBmb3IgKHZhciB4eCA9IDA7IHh4IDw9IGdy
aWRSZXM7ICsreHgpIHsKKyAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsgMF0gPSAoLTEgKyAyICog
eHggLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zmc2V0OworICAgICAgcG9z
aXRpb25zW3BvZmZzZXQgKyAxXSA9ICgtMSArIDIgKiB5eSAvIGdyaWRSZXMpICogcG9zaXRpb25N
dWx0ICsgcG9zaXRpb25PZmZzZXQ7CisgICAgICBwb3NpdGlvbnNbcG9mZnNldCArIDJdID0gMDsK
KworICAgICAgcG9mZnNldCArPSAzOworICAgIH0KKyAgfQorCisgIHZhciBidWYgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1Zik7CisgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBwb3NpdGlvbnMsIGdsLlNUQVRJQ19EUkFXKTsK
KyAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2NhdGlvbik7CisgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIocG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAw
LCAwKTsKKyAgb2JqZWN0cy5wdXNoKGJ1Zik7CisKKyAgaWYgKG9wdGlvbnMuY29sb3JMb2NhdGlv
biAhPT0gdW5kZWZpbmVkKSB7CisgICAgdmFyIGNvbG9ycyA9IG5ldyBGbG9hdDMyQXJyYXkobnVt
VmVydHMgKiA0KTsKKyAgICBwb2Zmc2V0ID0gMDsKKyAgICBmb3IgKHZhciB5eSA9IDA7IHl5IDw9
IGdyaWRSZXM7ICsreXkpIHsKKyAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPD0gZ3JpZFJlczsg
Kyt4eCkgeworICAgICAgICBpZiAob3B0aW9ucy5jb2xvciAhPT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgICAgY29sb3JzW3BvZmZzZXQgKyAwXSA9IG9wdGlvbnMuY29sb3JbMF07CisgICAgICAgICAg
Y29sb3JzW3BvZmZzZXQgKyAxXSA9IG9wdGlvbnMuY29sb3JbMV07CisgICAgICAgICAgY29sb3Jz
W3BvZmZzZXQgKyAyXSA9IG9wdGlvbnMuY29sb3JbMl07CisgICAgICAgICAgY29sb3JzW3BvZmZz
ZXQgKyAzXSA9IG9wdGlvbnMuY29sb3JbM107CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
Y29sb3JzW3BvZmZzZXQgKyAwXSA9IHh4IC8gZ3JpZFJlczsKKyAgICAgICAgICBjb2xvcnNbcG9m
ZnNldCArIDFdID0geXkgLyBncmlkUmVzOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMl0g
PSAoeHggLyBncmlkUmVzKSAqICh5eSAvIGdyaWRSZXMpOworICAgICAgICAgIGNvbG9yc1twb2Zm
c2V0ICsgM10gPSAoeXkgJSAyKSAqIDAuNSArIDAuNTsKKyAgICAgICAgfQorICAgICAgICBwb2Zm
c2V0ICs9IDQ7CisgICAgICB9CisgICAgfQorCisgICAgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7
CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1Zik7CisgICAgZ2wuYnVmZmVy
RGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvbG9ycywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KG9wdGlvbnMuY29sb3JMb2NhdGlvbik7CisgICAgZ2wudmVy
dGV4QXR0cmliUG9pbnRlcihvcHRpb25zLmNvbG9yTG9jYXRpb24sIDQsIGdsLkZMT0FULCBmYWxz
ZSwgMCwgMCk7CisgICAgb2JqZWN0cy5wdXNoKGJ1Zik7CisgIH0KKworICB2YXIgdGJhc2UgPSAw
OworICBmb3IgKHZhciB5eSA9IDA7IHl5IDwgZ3JpZFJlczsgKyt5eSkgeworICAgIHZhciBpbmRl
eCA9IHl5ICogdmVydHNBY3Jvc3M7CisgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IGdyaWRSZXM7
ICsreHgpIHsKKyAgICAgIGluZGljZXNbdGJhc2UgKyAwXSA9IGluZGV4ICsgMDsKKyAgICAgIGlu
ZGljZXNbdGJhc2UgKyAxXSA9IGluZGV4ICsgMTsKKyAgICAgIGluZGljZXNbdGJhc2UgKyAyXSA9
IGluZGV4ICsgdmVydHNBY3Jvc3M7CisgICAgICBpbmRpY2VzW3RiYXNlICsgM10gPSBpbmRleCAr
IHZlcnRzQWNyb3NzOworICAgICAgaW5kaWNlc1t0YmFzZSArIDRdID0gaW5kZXggKyAxOworICAg
ICAgaW5kaWNlc1t0YmFzZSArIDVdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zcyArIDE7CisKKyAgICAg
IGlmIChvcHRpb25zLmZsaXBPZGRUcmlhbmdsZXMpIHsKKyAgICAgICAgaW5kaWNlc1t0YmFzZSAr
IDRdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zcyArIDE7CisgICAgICAgIGluZGljZXNbdGJhc2UgKyA1
XSA9IGluZGV4ICsgMTsKKyAgICAgIH0KKworICAgICAgaW5kZXggKz0gMTsKKyAgICAgIHRiYXNl
ICs9IDY7CisgICAgfQorICB9CisKKyAgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJp
bmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGJ1Zik7CisgIGdsLmJ1ZmZlckRhdGEo
Z2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKKyAgb2Jq
ZWN0cy5wdXNoKGJ1Zik7CisKKyAgcmV0dXJuIG9iamVjdHM7Cit9OworCisvKioKKyAqIFJldHVy
bnMgdGhlIGNvbnN0cnVjdG9yIGZvciBhIHR5cGVkIGFycmF5IHRoYXQgY29ycmVzcG9uZHMgdG8g
dGhlIGdpdmVuCisgKiBXZWJHTCB0eXBlLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250
ZXh0fSBnbCBBIFdlYkdMUmVuZGVyaW5nQ29udGV4dC4KKyAqIEBwYXJhbSB7bnVtYmVyfSB0eXBl
IFRoZSBXZWJHTCB0eXBlIChlZywgZ2wuVU5TSUdORURfQllURSkKKyAqIEByZXR1cm4geyFDb25z
dHJ1Y3Rvcn0gVGhlIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIHRoYXQKKyAqICAgICAgY29ycmVz
cG9uZHMgdG8gdGhlIGdpdmVuIHR5cGUuCisgKi8KK3ZhciBnbFR5cGVUb1R5cGVkQXJyYXlUeXBl
ID0gZnVuY3Rpb24oZ2wsIHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBnbC5C
WVRFOgorICAgICAgcmV0dXJuIHdpbmRvdy5JbnQ4QXJyYXk7CisgICAgY2FzZSBnbC5VTlNJR05F
RF9CWVRFOgorICAgICAgcmV0dXJuIHdpbmRvdy5VaW50OEFycmF5OworICAgIGNhc2UgZ2wuU0hP
UlQ6CisgICAgICByZXR1cm4gd2luZG93LkludDE2QXJyYXk7CisgICAgY2FzZSBnbC5VTlNJR05F
RF9TSE9SVDoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNl81OgorICAgIGNhc2UgZ2wu
VU5TSUdORURfU0hPUlRfNF80XzRfNDoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81
XzE6CisgICAgICByZXR1cm4gd2luZG93LlVpbnQxNkFycmF5OworICAgIGNhc2UgZ2wuSU5UOgor
ICAgICAgcmV0dXJuIHdpbmRvdy5JbnQzMkFycmF5OworICAgIGNhc2UgZ2wuVU5TSUdORURfSU5U
OgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5UXzVfOV85XzlfUkVWOgorICAgIGNhc2UgZ2wuVU5T
SUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8yXzEw
XzEwXzEwX1JFVjoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX0lOVF8yNF84OgorICAgICAgcmV0dXJu
IHdpbmRvdy5VaW50MzJBcnJheTsKKyAgICBjYXNlIGdsLkhBTEZfRkxPQVQ6CisgICAgY2FzZSAw
eDhENjE6ICAvLyBIQUxGX0ZMT0FUX09FUworICAgICAgcmV0dXJuIHdpbmRvdy5VaW50MTZBcnJh
eTsKKyAgICBjYXNlIGdsLkZMT0FUOgorICAgICAgcmV0dXJuIHdpbmRvdy5GbG9hdDMyQXJyYXk7
CisgICAgZGVmYXVsdDoKKyAgICAgIHRocm93ICd1bmtub3duIGdsIHR5cGUgJyArIGdsRW51bVRv
U3RyaW5nKGdsLCB0eXBlKTsKKyAgfQorfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgYnl0ZXMgcGVyIGNvbXBvbmVudCBmb3IgYSBnaXZlbiBXZWJHTCB0eXBlLgorICogQHBhcmFt
IHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBBIFdlYkdMUmVuZGVyaW5nQ29udGV4dC4KKyAq
IEBwYXJhbSB7R0xlbnVtfSB0eXBlIFRoZSBXZWJHTCB0eXBlIChlZywgZ2wuVU5TSUdORURfQllU
RSkKKyAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBieXRlcyBwZXIgY29tcG9uZW50
LgorICovCit2YXIgZ2V0Qnl0ZXNQZXJDb21wb25lbnQgPSBmdW5jdGlvbihnbCwgdHlwZSkgewor
ICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIGdsLkJZVEU6CisgICAgY2FzZSBnbC5VTlNJR05F
RF9CWVRFOgorICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBnbC5TSE9SVDoKKyAgICBjYXNlIGds
LlVOU0lHTkVEX1NIT1JUOgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV82XzU6CisgICAg
Y2FzZSBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80OgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hP
UlRfNV81XzVfMToKKyAgICBjYXNlIGdsLkhBTEZfRkxPQVQ6CisgICAgY2FzZSAweDhENjE6ICAv
LyBIQUxGX0ZMT0FUX09FUworICAgICAgcmV0dXJuIDI7CisgICAgY2FzZSBnbC5JTlQ6CisgICAg
Y2FzZSBnbC5VTlNJR05FRF9JTlQ6CisgICAgY2FzZSBnbC5VTlNJR05FRF9JTlRfNV85XzlfOV9S
RVY6CisgICAgY2FzZSBnbC5VTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWOgorICAgIGNhc2Ug
Z2wuVU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWOgorICAgIGNhc2UgZ2wuVU5TSUdORURfSU5U
XzI0Xzg6CisgICAgY2FzZSBnbC5GTE9BVDoKKyAgICAgIHJldHVybiA0OworICAgIGRlZmF1bHQ6
CisgICAgICB0aHJvdyAndW5rbm93biBnbCB0eXBlICcgKyBnbEVudW1Ub1N0cmluZyhnbCwgdHlw
ZSk7CisgIH0KK307CisKKy8qKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHR5cGVkIGFycmF5
IGVsZW1lbnRzIHBlciBwaXhlbCBmb3IgYSBnaXZlbiBXZWJHTAorICogZm9ybWF0L3R5cGUgY29t
YmluYXRpb24uIFRoZSBjb3JyZXNwb25kaW5nIHR5cGVkIGFycmF5IHR5cGUgY2FuIGJlIGRldGVy
bWluZWQKKyAqIGJ5IGNhbGxpbmcgZ2xUeXBlVG9UeXBlZEFycmF5VHlwZS4KKyAqIEBwYXJhbSB7
IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgQSBXZWJHTFJlbmRlcmluZ0NvbnRleHQuCisgKiBA
cGFyYW0ge0dMZW51bX0gZm9ybWF0IFRoZSBXZWJHTCBmb3JtYXQgKGVnLCBnbC5SR0JBKQorICog
QHBhcmFtIHtHTGVudW19IHR5cGUgVGhlIFdlYkdMIHR5cGUgKGVnLCBnbC5VTlNJR05FRF9CWVRF
KQorICogQHJldHVybiB7bnVtYmVyfSBUaGUgbnVtYmVyIG9mIHR5cGVkIGFycmF5IGVsZW1lbnRz
IHBlciBwaXhlbC4KKyAqLwordmFyIGdldFR5cGVkQXJyYXlFbGVtZW50c1BlclBpeGVsID0gZnVu
Y3Rpb24oZ2wsIGZvcm1hdCwgdHlwZSkgeworICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIGds
LlVOU0lHTkVEX1NIT1JUXzVfNl81OgorICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNF80XzRf
NDoKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6CisgICAgICByZXR1cm4gMTsK
KyAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgdGhyb3cgJ25vdCBhIGdsIHR5cGUgZm9yIGNvbG9yIGluZm9ybWF0aW9uICcgKyBnbEVu
dW1Ub1N0cmluZyhnbCwgdHlwZSk7CisgIH0KKworICBzd2l0Y2ggKGZvcm1hdCkgeworICAgIGNh
c2UgZ2wuUkdCQToKKyAgICAgIHJldHVybiA0OworICAgIGNhc2UgZ2wuUkdCOgorICAgICAgcmV0
dXJuIDM7CisgICAgY2FzZSBnbC5MVU1JTkFOQ0VfQUxQSEE6CisgICAgICByZXR1cm4gMjsKKyAg
ICBjYXNlIGdsLkxVTUlOQU5DRToKKyAgICBjYXNlIGdsLkFMUEhBOgorICAgICAgcmV0dXJuIDE7
CisgICAgZGVmYXVsdDoKKyAgICAgIHRocm93ICd1bmtub3duIGdsIGZvcm1hdCAnICsgZ2xFbnVt
VG9TdHJpbmcoZ2wsIGZvcm1hdCk7CisgIH0KK307CisKKy8qKgorICogRmlsbHMgdGhlIGdpdmVu
IHRleHR1cmUgd2l0aCBhIHNvbGlkIGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdD
b250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7
IVdlYkdMVGV4dHVyZX0gdGV4IFRoZSB0ZXh0dXJlIHRvIGZpbGwuCisgKiBAcGFyYW0ge251bWJl
cn0gd2lkdGggVGhlIHdpZHRoIG9mIHRoZSB0ZXh0dXJlIHRvIGNyZWF0ZS4KKyAqIEBwYXJhbSB7
bnVtYmVyfSBoZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCisgKiBA
cGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgd2l0aC4KKyAq
ICAgICAgICB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICog
QHBhcmFtIHtudW1iZXJ9IG9wdF9sZXZlbCBUaGUgbGV2ZWwgb2YgdGhlIHRleHR1cmUgdG8gZmls
bC4gRGVmYXVsdCA9IDAuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X2Zvcm1hdCBUaGUgZm9ybWF0
IGZvciB0aGUgdGV4dHVyZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfaW50ZXJuYWxGb3JtYXQg
VGhlIGludGVybmFsIGZvcm1hdCBmb3IgdGhlIHRleHR1cmUuCisgKi8KK3ZhciBmaWxsVGV4dHVy
ZSA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBvcHRfbGV2ZWwsIG9w
dF9mb3JtYXQsIG9wdF90eXBlLCBvcHRfaW50ZXJuYWxGb3JtYXQpIHsKKyAgb3B0X2xldmVsID0g
b3B0X2xldmVsIHx8IDA7CisgIG9wdF9mb3JtYXQgPSBvcHRfZm9ybWF0IHx8IGdsLlJHQkE7Cisg
IG9wdF90eXBlID0gb3B0X3R5cGUgfHwgZ2wuVU5TSUdORURfQllURTsKKyAgb3B0X2ludGVybmFs
Rm9ybWF0ID0gb3B0X2ludGVybmFsRm9ybWF0IHx8IG9wdF9mb3JtYXQ7CisgIHZhciBwYWNrID0g
Z2wuZ2V0UGFyYW1ldGVyKGdsLlVOUEFDS19BTElHTk1FTlQpOworICB2YXIgbnVtQ29tcG9uZW50
cyA9IGNvbG9yLmxlbmd0aDsKKyAgdmFyIGJ5dGVzUGVyQ29tcG9uZW50ID0gZ2V0Qnl0ZXNQZXJD
b21wb25lbnQoZ2wsIG9wdF90eXBlKTsKKyAgdmFyIHJvd1NpemUgPSBudW1Db21wb25lbnRzICog
d2lkdGggKiBieXRlc1BlckNvbXBvbmVudDsKKyAgLy8gU2VlIGVxdWF0aW9uIDMuMTAgaW4gRVMg
Mi4wIHNwZWMgYW5kIGVxdWF0aW9uIDMuMTMgaW4gRVMgMy4wIHNwZWMgZm9yIHBhZGRlZFJvd0xl
bmd0aCBjYWxjdWxhdGlvbi4KKyAgLy8gayBpcyBwYWRkZWRSb3dMZW5ndGguCisgIC8vIG4gaXMg
bnVtQ29tcG9uZW50cy4KKyAgLy8gbCBpcyB3aWR0aC4KKyAgLy8gYSBpcyBwYWNrLgorICAvLyBz
IGlzIGJ5dGVzUGVyQ29tcG9uZW50LgorICB2YXIgcGFkZGVkUm93TGVuZ3RoOworICBpZiAoYnl0
ZXNQZXJDb21wb25lbnQgPj0gcGFjaykKKyAgICBwYWRkZWRSb3dMZW5ndGggPSBudW1Db21wb25l
bnRzICogd2lkdGg7CisgIGVsc2UKKyAgICBwYWRkZWRSb3dMZW5ndGggPSBNYXRoLmZsb29yKChy
b3dTaXplICsgcGFjayAtIDEpIC8gcGFjaykgKiBwYWNrIC8gYnl0ZXNQZXJDb21wb25lbnQ7Cisg
IHZhciBzaXplID0gd2lkdGggKiBudW1Db21wb25lbnRzICsgKGhlaWdodCAtIDEpICogcGFkZGVk
Um93TGVuZ3RoOworICB2YXIgYnVmID0gbmV3IChnbFR5cGVUb1R5cGVkQXJyYXlUeXBlKGdsLCBv
cHRfdHlwZSkpKHNpemUpOworICBmb3IgKHZhciB5eSA9IDA7IHl5IDwgaGVpZ2h0OyArK3l5KSB7
CisgICAgdmFyIG9mZiA9IHl5ICogcGFkZGVkUm93TGVuZ3RoOworICAgIGZvciAodmFyIHh4ID0g
MDsgeHggPCB3aWR0aDsgKyt4eCkgeworICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IG51bUNv
bXBvbmVudHM7ICsramopIHsKKyAgICAgICAgYnVmW29mZisrXSA9IGNvbG9yW2pqXTsKKyAgICAg
IH0KKyAgICB9CisgIH0KKyAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAg
Z2wudGV4SW1hZ2UyRCgKKyAgICAgIGdsLlRFWFRVUkVfMkQsIG9wdF9sZXZlbCwgb3B0X2ludGVy
bmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLAorICAgICAgb3B0X2Zvcm1hdCwgb3B0X3R5cGUs
IGJ1Zik7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSB0ZXh0dXJlIGFuZCBmaWxscyBpdCB3aXRo
IGEgc29saWQgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRo
ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHdpZHRo
IFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCisgKiBAcGFyYW0ge251bWJlcn0g
aGVpZ2h0IFRoZSBoZWlnaHQgb2YgdGhlIHRleHR1cmUgdG8gY3JlYXRlLgorICogQHBhcmFtIHsh
QXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxsIHdpdGguIEEgNCBlbGVtZW50
IGFycmF5CisgKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRv
IDI1NS4KKyAqIEByZXR1cm4geyFXZWJHTFRleHR1cmV9CisgKi8KK3ZhciBjcmVhdGVDb2xvcmVk
VGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCBjb2xvcikgeworICB2YXIgdGV4
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBmaWxsVGV4dHVyZShnbCwgdGV4LCB3aWR0aCwgaGVp
Z2h0LCBjb2xvcik7CisgIHJldHVybiB0ZXg7Cit9OworCit2YXIgdWJ5dGVUb0Zsb2F0ID0gZnVu
Y3Rpb24oYykgeworICByZXR1cm4gYyAvIDI1NTsKK307CisKK3ZhciB1Ynl0ZUNvbG9yVG9GbG9h
dENvbG9yID0gZnVuY3Rpb24oY29sb3IpIHsKKyAgdmFyIGZsb2F0Q29sb3IgPSBbXTsKKyAgZm9y
ICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9yLmxlbmd0aDsgKytpaSkgeworICAgIGZsb2F0Q29sb3Jb
aWldID0gdWJ5dGVUb0Zsb2F0KGNvbG9yW2lpXSk7CisgIH0KKyAgcmV0dXJuIGZsb2F0Q29sb3I7
Cit9OworCisvKioKKyAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlmb3JtIG9mIHRoZSBjdXJyZW50
IHByb2dyYW0gdG8gY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj59IGNvbG9yIDQgZWxlbWVudCBhcnJheSBvZiAwLTEgY29sb3IKKyAqICAgICAgY29tcG9u
ZW50cy4KKyAqLwordmFyIHNldEZsb2F0RHJhd0NvbG9yID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7
CisgIHZhciBwcm9ncmFtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLkNVUlJFTlRfUFJPR1JBTSk7Cisg
IHZhciBjb2xvckxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ1X2Nv
bG9yIik7CisgIGdsLnVuaWZvcm00ZnYoY29sb3JMb2NhdGlvbiwgY29sb3IpOworfTsKKworLyoq
CisgKiBTZXRzIHRoZSAidV9jb2xvciIgdW5pZm9ybSBvZiB0aGUgY3VycmVudCBwcm9ncmFtIHRv
IGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+fSBjb2xv
ciA0IGVsZW1lbnQgYXJyYXkgb2YgMC0yNTUgY29sb3IKKyAqICAgICAgY29tcG9uZW50cy4KKyAq
LwordmFyIHNldFVCeXRlRHJhd0NvbG9yID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7CisgIHNldEZs
b2F0RHJhd0NvbG9yKGdsLCB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNvbG9yKSk7Cit9OworCisv
KioKKyAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBnaXZlbiBjb2xvci4K
KyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNv
bG9yIHRvIGRyYXcgd2l0aC4gQSA0CisgKiAgICAgICAgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNo
IGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAxLgorICovCit2YXIgZHJh
d0Zsb2F0Q29sb3JRdWFkID0gZnVuY3Rpb24oZ2wsIGNvbG9yKSB7CisgIHZhciBwcm9ncmFtID0g
Z2wuZ2V0UGFyYW1ldGVyKGdsLkNVUlJFTlRfUFJPR1JBTSk7CisgIHZhciBjb2xvckxvY2F0aW9u
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ1X2NvbG9yIik7CisgIGdsLnVuaWZv
cm00ZnYoY29sb3JMb2NhdGlvbiwgY29sb3IpOworICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xF
UywgMCwgNik7Cit9OworCisKKy8qKgorICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQg
aW4gdGhlIGdpdmVuIGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBn
bCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5Ljxu
dW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZHJhdyB3aXRoLiBBIDQKKyAqICAgICAgICBlbGVt
ZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0bworICogICAg
ICAgIDI1NS4KKyAqLwordmFyIGRyYXdVQnl0ZUNvbG9yUXVhZCA9IGZ1bmN0aW9uKGdsLCBjb2xv
cikgeworICBkcmF3RmxvYXRDb2xvclF1YWQoZ2wsIHVieXRlQ29sb3JUb0Zsb2F0Q29sb3IoY29s
b3IpKTsKK307CisKKy8qKgorICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwVW5pdFF1YWQuCisg
KiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICovCit2YXIgZHJhd1VuaXRRdWFkID0gZnVuY3Rpb24oZ2wpIHsKKyAg
Z2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworfTsKKwordmFyIGR1bW15U2V0UHJv
Z3JhbUFuZERyYXdOb3RoaW5nID0gZnVuY3Rpb24oZ2wpIHsKKyAgaWYgKCFnbC5fd3R1RHVtbXlQ
cm9ncmFtKSB7CisgICAgZ2wuX3d0dUR1bW15UHJvZ3JhbSA9IHNldHVwUHJvZ3JhbShnbCwgWwor
ICAgICAgInZvaWQgbWFpbigpIHsgZ2xfUG9zaXRpb24gPSB2ZWM0KDAuMCk7IH0iLAorICAgICAg
InZvaWQgbWFpbigpIHsgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjApOyB9IgorICAgIF0sIFtdLCBb
XSk7CisgIH0KKyAgZ2wudXNlUHJvZ3JhbShnbC5fd3R1RHVtbXlQcm9ncmFtKTsKKyAgZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpOworfTsKKworLyoqCisgKiBDbGVhcnMgdGhlbiBE
cmF3cyBhIHByZXZpb3VzbHkgc2V0dXBVbml0UXVhZC4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVy
aW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFy
YW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2NvbG9yIFRoZSBjb2xvciB0byBmaWxsIGNsZWFyIHdp
dGggYmVmb3JlCisgKiAgICAgICAgZHJhd2luZy4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFj
aCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCisgKiAgICAgICAgMjU1LiBEZWZhdWx0IFsy
NTUsIDI1NSwgMjU1LCAyNTVdCisgKi8KK3ZhciBjbGVhckFuZERyYXdVbml0UXVhZCA9IGZ1bmN0
aW9uKGdsLCBvcHRfY29sb3IpIHsKKyAgb3B0X2NvbG9yID0gb3B0X2NvbG9yIHx8IFsyNTUsIDI1
NSwgMjU1LCAyNTVdOworICBnbC5jbGVhckNvbG9yKAorICAgICAgb3B0X2NvbG9yWzBdIC8gMjU1
LAorICAgICAgb3B0X2NvbG9yWzFdIC8gMjU1LAorICAgICAgb3B0X2NvbG9yWzJdIC8gMjU1LAor
ICAgICAgb3B0X2NvbG9yWzNdIC8gMjU1KTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICBkcmF3VW5pdFF1YWQoZ2wpOworfTsKKworLyoq
CisgKiBEcmF3cyBhIHF1YWQgcHJldmlvdXNseSBzZXR1cCB3aXRoIHNldHVwSW5kZXhlZFF1YWQu
CisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IGdyaWRSZXMgUmVzb2x1dGlvbiBv
ZiBncmlkLgorICovCit2YXIgZHJhd0luZGV4ZWRRdWFkID0gZnVuY3Rpb24oZ2wsIGdyaWRSZXMp
IHsKKyAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgZ3JpZFJlcyAqIGdyaWRSZXMgKiA2
LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7Cit9OworCisvKioKKyAqIERyYXdzIGEgcHJldmlvdXNs
eSBzZXR1cEluZGV4ZWRRdWFkCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IGdy
aWRSZXMgUmVzb2x1dGlvbiBvZiBncmlkLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IG9w
dF9jb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQorICogICAgICAgIGRy
YXdpbmcuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFu
Z2UgMCB0bworICogICAgICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1XQorICov
Cit2YXIgY2xlYXJBbmREcmF3SW5kZXhlZFF1YWQgPSBmdW5jdGlvbihnbCwgZ3JpZFJlcywgb3B0
X2NvbG9yKSB7CisgIG9wdF9jb2xvciA9IG9wdF9jb2xvciB8fCBbMjU1LCAyNTUsIDI1NSwgMjU1
XTsKKyAgZ2wuY2xlYXJDb2xvcigKKyAgICAgIG9wdF9jb2xvclswXSAvIDI1NSwKKyAgICAgIG9w
dF9jb2xvclsxXSAvIDI1NSwKKyAgICAgIG9wdF9jb2xvclsyXSAvIDI1NSwKKyAgICAgIG9wdF9j
b2xvclszXSAvIDI1NSk7CisgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBU
SF9CVUZGRVJfQklUKTsKKyAgZHJhd0luZGV4ZWRRdWFkKGdsLCBncmlkUmVzKTsKK307CisKKy8q
KgorICogQ2xpcHMgYSByYW5nZSB0byBtaW4sIG1heAorICogKEVnLiBjbGlwVG9SYW5nZSgtNSw3
LDAsMjApIHdvdWxkIHJldHVybiB7dmFsdWU6MCxleHRlbnQ6Mn0KKyAqIEBwYXJhbSB7bnVtYmVy
fSB2YWx1ZSBzdGFydCBvZiByYW5nZQorICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudCBleHRlbnQg
b2YgcmFuZ2UKKyAqIEBwYXJhbSB7bnVtYmVyfSBtaW4gbWluLgorICogQHBhcmFtIHtudW1iZXJ9
IG1heCBtYXguCisgKiBAcmV0dXJuIHshe3ZhbHVlOm51bWJlcixleHRlbnQ6bnVtYmVyfX0gVGhl
IGNsaXBwZWQgdmFsdWUuCisgKi8KK3ZhciBjbGlwVG9SYW5nZSA9IGZ1bmN0aW9uKHZhbHVlLCBl
eHRlbnQsIG1pbiwgbWF4KSB7CisgIGlmICh2YWx1ZSA8IG1pbikgeworICAgIGV4dGVudCAtPSBt
aW4gLSB2YWx1ZTsKKyAgICB2YWx1ZSA9IG1pbjsKKyAgfQorICB2YXIgZW5kID0gdmFsdWUgKyBl
eHRlbnQ7CisgIGlmIChlbmQgPiBtYXgpIHsKKyAgICBleHRlbnQgLT0gZW5kIC0gbWF4OworICB9
CisgIGlmIChleHRlbnQgPCAwKSB7CisgICAgdmFsdWUgPSBtYXg7CisgICAgZXh0ZW50ID0gMDsK
KyAgfQorICByZXR1cm4ge3ZhbHVlOnZhbHVlLCBleHRlbnQ6IGV4dGVudH07Cit9OworCisvKioK
KyAqIERldGVybWluZXMgaWYgdGhlIHBhc3NlZCBjb250ZXh0IGlzIGFuIGluc3RhbmNlIG9mIGEg
V2ViR0xSZW5kZXJpbmdDb250ZXh0CisgKiBvciBsYXRlciB2YXJpYW50IChsaWtlIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQpCisgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHR9IGN0eCBU
aGUgY29udGV4dCB0byBjaGVjay4KKyAqLwordmFyIGlzV2ViR0xDb250ZXh0ID0gZnVuY3Rpb24o
Y3R4KSB7CisgIGlmIChjdHggaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0NvbnRleHQpCisgICAg
cmV0dXJuIHRydWU7CisKKyAgaWYgKCdXZWJHTDJSZW5kZXJpbmdDb250ZXh0JyBpbiB3aW5kb3cg
JiYgY3R4IGluc3RhbmNlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkKKyAgICByZXR1cm4gdHJ1
ZTsKKworICByZXR1cm4gZmFsc2U7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBjaGVjayByZWN0
IGlzIHVzZWQgYnkgY2hlY2tDYW52YXNSZWN0cy4KKyAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQg
Y29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBj
b3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrIGluIGNhc2Ugb2YgY2hlY2tpbmcgZnJvbQorICogICAg
ICAgIGEgR0wgY29udGV4dCBvciB0b3AgY29ybmVyIGluIGNhc2Ugb2YgY2hlY2tpbmcgZnJvbSBh
IDJEIGNvbnRleHQuCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggd2lkdGggb2YgcmVnaW9uIHRv
IGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCB3aWR0aCBvZiByZWdpb24gdG8gY2hl
Y2suCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIGV4cGVjdGVk
LiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZQorICogICAgICAgIGVhY2ggZWxlbWVudCBpcyBpbiB0
aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X21zZyBNZXNzYWdlIHRv
IGFzc29jaWF0ZSB3aXRoIHN1Y2Nlc3MuIEVnCisgKiAgICAgICAgKCJzaG91bGQgYmUgcmVkIiku
CisgKiBAcGFyYW0ge251bWJlcn0gb3B0X2Vycm9yUmFuZ2UgT3B0aW9uYWwuIEFjY2VwdGFibGUg
ZXJyb3IgaW4KKyAqICAgICAgICBjb2xvciBjaGVja2luZy4gMCBieSBkZWZhdWx0LgorICovCit2
YXIgbWFrZUNoZWNrUmVjdCA9IGZ1bmN0aW9uKHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yLCBt
c2csIGVycm9yUmFuZ2UpIHsKKyAgdmFyIHJlY3QgPSB7CisgICAgJ3gnOiB4LCAneSc6IHksCisg
ICAgJ3dpZHRoJzogd2lkdGgsICdoZWlnaHQnOiBoZWlnaHQsCisgICAgJ2NvbG9yJzogY29sb3Is
ICdtc2cnOiBtc2csCisgICAgJ2Vycm9yUmFuZ2UnOiBlcnJvclJhbmdlLAorCisgICAgJ2NoZWNr
UmVjdCc6IGZ1bmN0aW9uIChidWYsIGwsIGIsIHcpIHsKKyAgICAgIGZvciAodmFyIHB4ID0gKHgg
LSBsKSA7IHB4IDwgKHggKyB3aWR0aCAtIGwpIDsgKytweCkgeworICAgICAgICBmb3IgKHZhciBw
eSA9ICh5IC0gYikgOyBweSA8ICh5ICsgaGVpZ2h0IC0gYikgOyArK3B5KSB7CisgICAgICAgICAg
dmFyIG9mZnNldCA9IChweSAqIHcgKyBweCkgKiA0OworICAgICAgICAgIGZvciAodmFyIGogPSAw
OyBqIDwgY29sb3IubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhidWZb
b2Zmc2V0ICsgal0gLSBjb2xvcltqXSkgPiBlcnJvclJhbmdlKSB7CisgICAgICAgICAgICAgIHRl
c3RGYWlsZWQobXNnKTsKKyAgICAgICAgICAgICAgdmFyIHdhcyA9IGJ1ZltvZmZzZXQgKyAwXS50
b1N0cmluZygpOworICAgICAgICAgICAgICBmb3IgKGogPSAxOyBqIDwgY29sb3IubGVuZ3RoOyAr
K2opIHsKKyAgICAgICAgICAgICAgICB3YXMgKz0gIiwiICsgYnVmW29mZnNldCArIGpdOworICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGRlYnVnKCdhdCAoJyArIHB4ICsgJywgJyArIHB5
ICsKKyAgICAgICAgICAgICAgICAgICAgJykgZXhwZWN0ZWQ6ICcgKyBjb2xvciArICcgd2FzICcg
KyB3YXMpOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICB9CisgICAgICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgfQorICB9
CisgIHJldHVybiByZWN0OworfTsKKworLyoqCisgKiBDaGVja3MgdGhhdCBhIHBvcnRpb25zIG9m
IGEgY2FudmFzIG9yIHRoZSBjdXJyZW50bHkgYXR0YWNoZWQgZnJhbWVidWZmZXIgaXMgMSBjb2xv
ci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dHxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkR9IGdsIFRoZQorICogICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IgMkQgY29u
dGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48Y2hlY2tSZWN0Pn0gYXJyYXkgb2YgcmVj
dHMgdG8gY2hlY2sgZm9yIG1hdGNoaW5nIGNvbG9yLgorICovCit2YXIgY2hlY2tDYW52YXNSZWN0
cyA9IGZ1bmN0aW9uKGdsLCByZWN0cykgeworICBpZiAocmVjdHMubGVuZ3RoID4gMCkgeworICAg
IHZhciBsZWZ0ID0gcmVjdHNbMF0ueDsKKyAgICB2YXIgcmlnaHQgPSByZWN0c1swXS54ICsgcmVj
dHNbMV0ud2lkdGg7CisgICAgdmFyIGJvdHRvbSA9IHJlY3RzWzBdLnk7CisgICAgdmFyIHRvcCA9
IHJlY3RzWzBdLnkgKyByZWN0c1swXS5oZWlnaHQ7CisgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBy
ZWN0cy5sZW5ndGg7ICsraSkgeworICAgICAgbGVmdCA9IE1hdGgubWluKGxlZnQsIHJlY3RzW2ld
LngpOworICAgICAgcmlnaHQgPSBNYXRoLm1heChyaWdodCwgcmVjdHNbaV0ueCArIHJlY3RzW2ld
LndpZHRoKTsKKyAgICAgIGJvdHRvbSA9IE1hdGgubWluKGJvdHRvbSwgcmVjdHNbaV0ueSk7Cisg
ICAgICB0b3AgPSBNYXRoLm1heCh0b3AsIHJlY3RzW2ldLnkgKyByZWN0c1tpXS5oZWlnaHQpOwor
ICAgIH0KKyAgICB2YXIgd2lkdGggPSByaWdodCAtIGxlZnQ7CisgICAgdmFyIGhlaWdodCA9IHRv
cCAtIGJvdHRvbTsKKyAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQg
KiA0KTsKKyAgICBnbC5yZWFkUGl4ZWxzKGxlZnQsIGJvdHRvbSwgd2lkdGgsIGhlaWdodCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
Y3RzLmxlbmd0aDsgKytpKSB7CisgICAgICByZWN0c1tpXS5jaGVja1JlY3QoYnVmLCBsZWZ0LCBi
b3R0b20sIHdpZHRoKTsKKyAgICB9CisgIH0KK307CisKKy8qKgorICogQ2hlY2tzIHRoYXQgYSBw
b3J0aW9uIG9mIGEgY2FudmFzIG9yIHRoZSBjdXJyZW50bHkgYXR0YWNoZWQgZnJhbWVidWZmZXIg
aXMgMSBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dHxDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkR9IGdsIFRoZQorICogICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
b3IgMkQgY29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0geCBsZWZ0IGNvcm5lciBv
ZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0geSBib3R0b20gY29ybmVyIG9m
IHJlZ2lvbiB0byBjaGVjayBpbiBjYXNlIG9mIGNoZWNraW5nIGZyb20KKyAqICAgICAgICBhIEdM
IGNvbnRleHQgb3IgdG9wIGNvcm5lciBpbiBjYXNlIG9mIGNoZWNraW5nIGZyb20gYSAyRCBjb250
ZXh0LgorICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4K
KyAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICog
QHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciBleHBlY3RlZC4gQSA0IGVs
ZW1lbnQgYXJyYXkgd2hlcmUKKyAqICAgICAgICBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdl
IDAgdG8gMjU1LgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFsLiBB
Y2NlcHRhYmxlIGVycm9yIGluCisgKiAgICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVs
dC4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKCl9IHNhbWVGbiBGdW5jdGlvbiB0byBjYWxsIGlmIGFs
bCBwaXhlbHMKKyAqICAgICAgICBhcmUgdGhlIHNhbWUgYXMgY29sb3IuCisgKiBAcGFyYW0geyFm
dW5jdGlvbigpfSBkaWZmZXJlbnRGbiBGdW5jdGlvbiB0byBjYWxsIGlmIGEgcGl4ZWwKKyAqICAg
ICAgICBpcyBkaWZmZXJlbnQgdGhhbiBjb2xvcgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gbG9n
Rm4gRnVuY3Rpb24gdG8gY2FsbCBmb3IgbG9nZ2luZy4KKyAqIEBwYXJhbSB7VHlwZWRBcnJheX0g
b3B0X3JlYWRCYWNrQnVmIG9wdGlvbmFsIGJ1ZmZlciB0byByZWFkIGJhY2sgaW50by4KKyAqICAg
ICAgICBUeXBpY2FsbHkgcGFzc2VkIHRvIGVpdGhlciByZXVzZSBidWZmZXIsIG9yIHN1cHBvcnQg
cmVhZGJhY2tzIGZyb20KKyAqICAgICAgICBmbG9hdGluZy1wb2ludC9ub3JtMTYgZnJhbWVidWZm
ZXJzLgorICogQHBhcmFtIHtHTGVudW19IG9wdF9yZWFkQmFja1R5cGUgb3B0aW9uYWwgcmVhZCBi
YWNrIHR5cGUsIGRlZmF1bHRpbmcgdG8KKyAqICAgICAgICBnbC5VTlNJR05FRF9CWVRFLiBDYW4g
YmUgdXNlZCB0byBzdXBwb3J0IHJlYWRiYWNrIGZyb20gZmxvYXRpbmctcG9pbnQKKyAqICAgICAg
ICAvbm9ybTE2IGZyYW1lYnVmZmVycy4KKyAqIEBwYXJhbSB7R0xlbnVtfSBvcHRfcmVhZEJhY2tG
b3JtYXQgb3B0aW9uYWwgcmVhZCBiYWNrIGZvcm1hdCwgZGVmYXVsdGluZyB0bworICogICAgICAg
IGdsLlJHQkEuIENhbiBiZSB1c2VkIHRvIHN1cHBvcnQgcmVhZGJhY2sgZnJvbSBub3JtMTYKKyAq
ICAgICAgICBmcmFtZWJ1ZmZlcnMuCisgKi8KK3ZhciBjaGVja0NhbnZhc1JlY3RDb2xvciA9IGZ1
bmN0aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2Vycm9yUmFuZ2UsIHNh
bWVGbiwgZGlmZmVyZW50Rm4sIGxvZ0ZuLCBvcHRfcmVhZEJhY2tCdWYsIG9wdF9yZWFkQmFja1R5
cGUsIG9wdF9yZWFkQmFja0Zvcm1hdCkgeworICBpZiAoaXNXZWJHTENvbnRleHQoZ2wpICYmICFn
bC5nZXRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVJfQklORElORykpIHsKKyAgICAvLyBXZSdyZSBy
ZWFkaW5nIHRoZSBiYWNrYnVmZmVyIHNvIGNsaXAuCisgICAgdmFyIHhyID0gY2xpcFRvUmFuZ2Uo
eCwgd2lkdGgsIDAsIGdsLmNhbnZhcy53aWR0aCk7CisgICAgdmFyIHlyID0gY2xpcFRvUmFuZ2Uo
eSwgaGVpZ2h0LCAwLCBnbC5jYW52YXMuaGVpZ2h0KTsKKyAgICBpZiAoIXhyLmV4dGVudCB8fCAh
eXIuZXh0ZW50KSB7CisgICAgICBsb2dGbigiY2hlY2tpbmcgcmVjdDogZWZmZWN0aXZlIHdpZHRo
IG9yIGhlaWdodCBpcyB6ZXJvIik7CisgICAgICBzYW1lRm4oKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgeCA9IHhyLnZhbHVlOworICAgIHkgPSB5ci52YWx1ZTsKKyAgICB3aWR0aCA9IHhy
LmV4dGVudDsKKyAgICBoZWlnaHQgPSB5ci5leHRlbnQ7CisgIH0KKyAgdmFyIGVycm9yUmFuZ2Ug
PSBvcHRfZXJyb3JSYW5nZSB8fCAwOworICBpZiAoIWVycm9yUmFuZ2UubGVuZ3RoKSB7CisgICAg
ZXJyb3JSYW5nZSA9IFtlcnJvclJhbmdlLCBlcnJvclJhbmdlLCBlcnJvclJhbmdlLCBlcnJvclJh
bmdlXQorICB9CisgIHZhciBidWY7CisgIGlmIChpc1dlYkdMQ29udGV4dChnbCkpIHsKKyAgICBi
dWYgPSBvcHRfcmVhZEJhY2tCdWYgPyBvcHRfcmVhZEJhY2tCdWYgOiBuZXcgVWludDhBcnJheSh3
aWR0aCAqIGhlaWdodCAqIDQpOworICAgIHZhciByZWFkQmFja1R5cGUgPSBvcHRfcmVhZEJhY2tU
eXBlID8gb3B0X3JlYWRCYWNrVHlwZSA6IGdsLlVOU0lHTkVEX0JZVEU7CisgICAgdmFyIHJlYWRC
YWNrRm9ybWF0ID0gb3B0X3JlYWRCYWNrRm9ybWF0ID8gb3B0X3JlYWRCYWNrRm9ybWF0IDogZ2wu
UkdCQTsKKyAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIHJlYWRCYWNrRm9y
bWF0LCByZWFkQmFja1R5cGUsIGJ1Zik7CisgIH0gZWxzZSB7CisgICAgYnVmID0gZ2wuZ2V0SW1h
Z2VEYXRhKHgsIHksIHdpZHRoLCBoZWlnaHQpLmRhdGE7CisgIH0KKyAgZm9yICh2YXIgaSA9IDA7
IGkgPCB3aWR0aCAqIGhlaWdodDsgKytpKSB7CisgICAgdmFyIG9mZnNldCA9IGkgKiA0OworICAg
IGZvciAodmFyIGogPSAwOyBqIDwgY29sb3IubGVuZ3RoOyArK2opIHsKKyAgICAgIGlmIChNYXRo
LmFicyhidWZbb2Zmc2V0ICsgal0gLSBjb2xvcltqXSkgPiBlcnJvclJhbmdlW2pdKSB7CisgICAg
ICAgIHZhciB3YXMgPSBidWZbb2Zmc2V0ICsgMF0udG9TdHJpbmcoKTsKKyAgICAgICAgZm9yIChq
ID0gMTsgaiA8IGNvbG9yLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgd2FzICs9ICIsIiArIGJ1
ZltvZmZzZXQgKyBqXTsKKyAgICAgICAgfQorICAgICAgICBkaWZmZXJlbnRGbignYXQgKCcgKyAo
eCArIChpICUgd2lkdGgpKSArICcsICcgKyAoeSArIE1hdGguZmxvb3IoaSAvIHdpZHRoKSkgKwor
ICAgICAgICAgICAgICAgICAgICAnKSBleHBlY3RlZDogJyArIGNvbG9yICsgJyB3YXMgJyArIHdh
cywgYnVmKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgIH0KKyAgfQorICBzYW1lRm4o
KTsKK307CisKKy8qKgorICogQ2hlY2tzIHRoYXQgYSBwb3J0aW9uIG9mIGEgY2FudmFzIG9yIHRo
ZSBjdXJyZW50bHkgYXR0YWNoZWQgZnJhbWVidWZmZXIgaXMgMSBjb2xvci4KKyAqIEBwYXJhbSB7
IVdlYkdMUmVuZGVyaW5nQ29udGV4dHxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGdsIFRoZQor
ICogICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IgMkQgY29udGV4dCB0byB1c2UuCisg
KiBAcGFyYW0ge251bWJlcn0geCBsZWZ0IGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCisgKiBA
cGFyYW0ge251bWJlcn0geSBib3R0b20gY29ybmVyIG9mIHJlZ2lvbiB0byBjaGVjayBpbiBjYXNl
IG9mIGNoZWNraW5nIGZyb20KKyAqICAgICAgICBhIEdMIGNvbnRleHQgb3IgdG9wIGNvcm5lciBp
biBjYXNlIG9mIGNoZWNraW5nIGZyb20gYSAyRCBjb250ZXh0LgorICogQHBhcmFtIHtudW1iZXJ9
IHdpZHRoIHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSBoZWln
aHQgd2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59
IGNvbG9yIFRoZSBjb2xvciBleHBlY3RlZC4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUKKyAqICAg
ICAgICBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICogQHBhcmFtIHtz
dHJpbmd9IG9wdF9tc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCBzdWNjZXNzIG9yIGZhaWx1
cmUuIEVnCisgKiAgICAgICAgKCJzaG91bGQgYmUgcmVkIikuCisgKiBAcGFyYW0ge251bWJlcn0g
b3B0X2Vycm9yUmFuZ2UgT3B0aW9uYWwuIEFjY2VwdGFibGUgZXJyb3IgaW4KKyAqICAgICAgICBj
b2xvciBjaGVja2luZy4gMCBieSBkZWZhdWx0LgorICogQHBhcmFtIHtUeXBlZEFycmF5fSBvcHRf
cmVhZEJhY2tCdWYgb3B0aW9uYWwgYnVmZmVyIHRvIHJlYWQgYmFjayBpbnRvLgorICogICAgICAg
IFR5cGljYWxseSBwYXNzZWQgdG8gZWl0aGVyIHJldXNlIGJ1ZmZlciwgb3Igc3VwcG9ydCByZWFk
YmFja3MgZnJvbQorICogICAgICAgIGZsb2F0aW5nLXBvaW50L25vcm0xNiBmcmFtZWJ1ZmZlcnMu
CisgKiBAcGFyYW0ge0dMZW51bX0gb3B0X3JlYWRCYWNrVHlwZSBvcHRpb25hbCByZWFkIGJhY2sg
dHlwZSwgZGVmYXVsdGluZyB0bworICogICAgICAgIGdsLlVOU0lHTkVEX0JZVEUuIENhbiBiZSB1
c2VkIHRvIHN1cHBvcnQgcmVhZGJhY2sgZnJvbSBmbG9hdGluZy1wb2ludAorICogICAgICAgIC9u
b3JtMTYgZnJhbWVidWZmZXJzLgorICogQHBhcmFtIHtHTGVudW19IG9wdF9yZWFkQmFja0Zvcm1h
dCBvcHRpb25hbCByZWFkIGJhY2sgZm9ybWF0LCBkZWZhdWx0aW5nIHRvCisgKiAgICAgICAgZ2wu
UkdCQS4gQ2FuIGJlIHVzZWQgdG8gc3VwcG9ydCByZWFkYmFjayBmcm9tIGZsb2F0aW5nLXBvaW50
CisgKiAgICAgICAgL25vcm0xNiBmcmFtZWJ1ZmZlcnMuCisgKi8KK3ZhciBjaGVja0NhbnZhc1Jl
Y3QgPSBmdW5jdGlvbihnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29sb3IsIG9wdF9tc2csIG9w
dF9lcnJvclJhbmdlLCBvcHRfcmVhZEJhY2tCdWYsIG9wdF9yZWFkQmFja1R5cGUsIG9wdF9yZWFk
QmFja0Zvcm1hdCkgeworICBjaGVja0NhbnZhc1JlY3RDb2xvcigKKyAgICAgIGdsLCB4LCB5LCB3
aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2Vycm9yUmFuZ2UsCisgICAgICBmdW5jdGlvbigpIHsK
KyAgICAgICAgdmFyIG1zZyA9IG9wdF9tc2c7CisgICAgICAgIGlmIChtc2cgPT09IHVuZGVmaW5l
ZCkKKyAgICAgICAgICBtc2cgPSAic2hvdWxkIGJlICIgKyBjb2xvci50b1N0cmluZygpOworICAg
ICAgICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgICB9LAorICAgICAgZnVuY3Rpb24oZGlmZmVyZW50
TXNnKSB7CisgICAgICAgIHZhciBtc2cgPSBvcHRfbXNnOworICAgICAgICBpZiAobXNnID09PSB1
bmRlZmluZWQpCisgICAgICAgICAgbXNnID0gInNob3VsZCBiZSAiICsgY29sb3IudG9TdHJpbmco
KTsKKyAgICAgICAgdGVzdEZhaWxlZChtc2cgKyAiXG4iICsgZGlmZmVyZW50TXNnKTsKKyAgICAg
IH0sCisgICAgICBkZWJ1ZywKKyAgICAgIG9wdF9yZWFkQmFja0J1ZiwKKyAgICAgIG9wdF9yZWFk
QmFja1R5cGUsCisgICAgICBvcHRfcmVhZEJhY2tGb3JtYXQpOworfTsKKworLyoqCisgKiBDaGVj
a3MgdGhhdCBhbiBlbnRpcmUgY2FudmFzIG9yIHRoZSBjdXJyZW50bHkgYXR0YWNoZWQgZnJhbWVi
dWZmZXIgaXMgMSBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dHxDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkR9IGdsIFRoZQorICogICAgICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgb3IgMkQgY29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0g
Y29sb3IgVGhlIGNvbG9yIGV4cGVjdGVkLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZQorICogICAg
ICAgIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcGFyYW0ge3N0
cmluZ30gbXNnIE1lc3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggc3VjY2Vzcy4gRWcgKCJzaG91bGQg
YmUgcmVkIikuCisgKiBAcGFyYW0ge251bWJlcn0gZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0
YWJsZSBlcnJvciBpbgorICogICAgICAgIGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisg
Ki8KK3ZhciBjaGVja0NhbnZhcyA9IGZ1bmN0aW9uKGdsLCBjb2xvciwgbXNnLCBlcnJvclJhbmdl
KSB7CisgIGNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgZ2wuY2FudmFzLndpZHRoLCBnbC5jYW52
YXMuaGVpZ2h0LCBjb2xvciwgbXNnLCBlcnJvclJhbmdlKTsKK307CisKKy8qKgorICogQ2hlY2tz
IGEgcmVjdGFuZ3VsYXIgYXJlYSBib3RoIGluc2lkZSB0aGUgYXJlYSBhbmQgb3V0c2lkZQorICog
dGhlIGFyZWEuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEfSBnbCBUaGUKKyAqICAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9y
IDJEIGNvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHggbGVmdCBjb3JuZXIgb2Yg
cmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IHkgYm90dG9tIGNvcm5lciBvZiBy
ZWdpb24gdG8gY2hlY2sgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9tCisgKiAgICAgICAgYSBHTCBj
b250ZXh0IG9yIHRvcCBjb3JuZXIgaW4gY2FzZSBvZiBjaGVja2luZyBmcm9tIGEgMkQgY29udGV4
dC4KKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCB3aWR0aCBvZiByZWdpb24gdG8gY2hlY2suCisg
KiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IHdpZHRoIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBw
YXJhbSB7IUFycmF5LjxudW1iZXI+fSBpbm5lckNvbG9yIFRoZSBjb2xvciBleHBlY3RlZCBpbnNp
ZGUKKyAqICAgICB0aGUgYXJlYS4gQSA0IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50
IGlzIGluIHRoZQorICogICAgIHJhbmdlIDAgdG8gMjU1LgorICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj59IG91dGVyQ29sb3IgVGhlIGNvbG9yIGV4cGVjdGVkCisgKiAgICAgb3V0c2lkZS4gQSA0
IGVsZW1lbnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZQorICogICAgIHJhbmdl
IDAgdG8gMjU1LgorICogQHBhcmFtIHshbnVtYmVyfSBvcHRfZWRnZVNpemU6IFRoZSBudW1iZXIg
b2YgcGl4ZWxzIHRvIHNraXAKKyAqICAgICBhcm91bmQgdGhlIGVkZ2VzIG9mIHRoZSBhcmVhLiBE
ZWZhdXQgMC4KKyAqIEBwYXJhbSB7IXt3aWR0aDpudW1iZXIsIGhlaWdodDpudW1iZXJ9fSBvcHRf
b3V0ZXJEaW1lbnNpb25zCisgKiAgICAgVGhlIG91dGVyIGRpbWVuc2lvbnMuIERlZmF1bHQgdGhl
IHNpemUgb2YgZ2wuY2FudmFzLgorICovCit2YXIgY2hlY2tBcmVhSW5BbmRPdXQgPSBmdW5jdGlv
bihnbCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgaW5uZXJDb2xvciwgb3V0ZXJDb2xvciwgb3B0X2Vk
Z2VTaXplLCBvcHRfb3V0ZXJEaW1lbnNpb25zKSB7CisgIHZhciBvdXRlckRpbWVuc2lvbnMgPSBv
cHRfb3V0ZXJEaW1lbnNpb25zIHx8IHsgd2lkdGg6IGdsLmNhbnZhcy53aWR0aCwgaGVpZ2h0OiBn
bC5jYW52YXMuaGVpZ2h0IH07CisgIHZhciBlZGdlU2l6ZSA9IG9wdF9lZGdlU2l6ZSB8fCAwOwor
ICBjaGVja0NhbnZhc1JlY3QoZ2wsIHggKyBlZGdlU2l6ZSwgeSArIGVkZ2VTaXplLCB3aWR0aCAt
IGVkZ2VTaXplICogMiwgaGVpZ2h0IC0gZWRnZVNpemUgKiAyLCBpbm5lckNvbG9yKTsKKyAgY2hl
Y2tDYW52YXNSZWN0KGdsLCAwLCAwLCB4IC0gZWRnZVNpemUsIG91dGVyRGltZW5zaW9ucy5oZWln
aHQsIG91dGVyQ29sb3IpOworICBjaGVja0NhbnZhc1JlY3QoZ2wsIHggKyB3aWR0aCArIGVkZ2VT
aXplLCAwLCBvdXRlckRpbWVuc2lvbnMud2lkdGggLSB4IC0gd2lkdGggLSBlZGdlU2l6ZSwgb3V0
ZXJEaW1lbnNpb25zLmhlaWdodCwgb3V0ZXJDb2xvcik7CisgIGNoZWNrQ2FudmFzUmVjdChnbCwg
MCwgMCwgb3V0ZXJEaW1lbnNpb25zLndpZHRoLCB5IC0gZWRnZVNpemUsIG91dGVyQ29sb3IpOwor
ICBjaGVja0NhbnZhc1JlY3QoZ2wsIDAsIHkgKyBoZWlnaHQgKyBlZGdlU2l6ZSwgb3V0ZXJEaW1l
bnNpb25zLndpZHRoLCBvdXRlckRpbWVuc2lvbnMuaGVpZ2h0IC0geSAtIGhlaWdodCAtIGVkZ2VT
aXplLCBvdXRlckNvbG9yKTsKK307CisKKy8qKgorICogQ2hlY2tzIHRoYXQgYW4gZW50aXJlIGJ1
ZmZlciBtYXRjaGVzIHRoZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMgcHJvdmlkZWQuCisgKiAoV2Vi
R0wgMi4wIG9ubHkpCisgKiBAcGFyYW0geyFXZWJHTDJSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gdGFyZ2V0
IFRoZSBidWZmZXIgdGFyZ2V0IHRvIGJpbmQgdG8uCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVy
Pn0gZXhwZWN0ZWQgVGhlIHZhbHVlcyBleHBlY3RlZC4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRf
bXNnIE9wdGlvbmFsLiBNZXNzYWdlIHRvIGFzc29jaWF0ZSB3aXRoIHN1Y2Nlc3MuIEVnICgic2hv
dWxkIGJlIHJlZCIpLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFs
LiBBY2NlcHRhYmxlIGVycm9yIGluIHZhbHVlIGNoZWNraW5nLiAwLjAwMSBieSBkZWZhdWx0Lgor
ICovCit2YXIgY2hlY2tGbG9hdEJ1ZmZlciA9IGZ1bmN0aW9uKGdsLCB0YXJnZXQsIGV4cGVjdGVk
LCBvcHRfbXNnLCBvcHRfZXJyb3JSYW5nZSkgeworICBpZiAob3B0X21zZyA9PT0gdW5kZWZpbmVk
KQorICAgIG9wdF9tc2cgPSAiYnVmZmVyIHNob3VsZCBtYXRjaCBleHBlY3RlZCB2YWx1ZXMiOwor
CisgIGlmIChvcHRfZXJyb3JSYW5nZSA9PT0gdW5kZWZpbmVkKQorICAgIG9wdF9lcnJvclJhbmdl
ID0gMC4wMDE7CisKKyAgdmFyIGZsb2F0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGV4cGVjdGVk
Lmxlbmd0aCk7CisgIGdsLmdldEJ1ZmZlclN1YkRhdGEodGFyZ2V0LCAwLCBmbG9hdEFycmF5KTsK
KworICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKSB7CisgICAgaWYg
KE1hdGguYWJzKGZsb2F0QXJyYXlbaV0gLSBleHBlY3RlZFtpXSkgPiBvcHRfZXJyb3JSYW5nZSkg
eworICAgICAgdGVzdEZhaWxlZChvcHRfbXNnKTsKKyAgICAgIGRlYnVnKCdhdCBbJyArIGkgKyAn
XSBleHBlY3RlZDogJyArIGV4cGVjdGVkW2ldICsgJyB3YXMgJyArIGZsb2F0QXJyYXlbaV0pOwor
ICAgICAgcmV0dXJuOworICAgIH0KKyAgfQorICB0ZXN0UGFzc2VkKG9wdF9tc2cpOworfTsKKwor
LyoqCisgKiBMb2FkcyBhIHRleHR1cmUsIGNhbGxzIGNhbGxiYWNrIHdoZW4gZmluaXNoZWQuCisg
KiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgb2YgaW1hZ2UgdG8gbG9h
ZAorICogQHBhcmFtIHtmdW5jdGlvbighSW1hZ2UpOiB2b2lkfSBjYWxsYmFjayBGdW5jdGlvbiB0
aGF0IGdldHMgY2FsbGVkIGFmdGVyCisgKiAgICAgICAgaW1hZ2UgaGFzIGxvYWRlZAorICogQHJl
dHVybiB7IVdlYkdMVGV4dHVyZX0gVGhlIGNyZWF0ZWQgdGV4dHVyZS4KKyAqLwordmFyIGxvYWRU
ZXh0dXJlID0gZnVuY3Rpb24oZ2wsIHVybCwgY2FsbGJhY2spIHsKKyAgICB2YXIgdGV4dHVyZSA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXh0dXJlKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIHZhciBpbWFnZSA9
IG5ldyBJbWFnZSgpOworICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgICAgICAgZ2wucGl4ZWxT
dG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7CisgICAgICAgIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
aW1hZ2UpOworICAgICAgICBjYWxsYmFjayhpbWFnZSk7CisgICAgfTsKKyAgICBpbWFnZS5zcmMg
PSB1cmw7CisgICAgcmV0dXJuIHRleHR1cmU7Cit9OworCisvKioKKyAqIENoZWNrcyB3aGV0aGVy
IHRoZSBib3VuZCB0ZXh0dXJlIGhhcyBleHBlY3RlZCBkaW1lbnNpb25zLiBPbmUgY29ybmVyIHBp
eGVsCisgKiBvZiB0aGUgdGV4dHVyZSB3aWxsIGJlIGNoYW5nZWQgYXMgYSBzaWRlIGVmZmVjdC4K
KyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFXZWJHTFRleHR1cmV9IHRleHR1cmUgVGhlIHRl
eHR1cmUgdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggRXhwZWN0ZWQgd2lkdGgu
CisgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IEV4cGVjdGVkIGhlaWdodC4KKyAqIEBwYXJhbSB7
R0xlbnVtfSBvcHRfZm9ybWF0IFRoZSB0ZXh0dXJlJ3MgZm9ybWF0LiBEZWZhdWx0cyB0byBSR0JB
LgorICogQHBhcmFtIHtHTGVudW19IG9wdF90eXBlIFRoZSB0ZXh0dXJlJ3MgdHlwZS4gRGVmYXVs
dHMgdG8gVU5TSUdORURfQllURS4KKyAqLwordmFyIGNoZWNrVGV4dHVyZVNpemUgPSBmdW5jdGlv
bihnbCwgd2lkdGgsIGhlaWdodCwgb3B0X2Zvcm1hdCwgb3B0X3R5cGUpIHsKKyAgb3B0X2Zvcm1h
dCA9IG9wdF9mb3JtYXQgfHwgZ2wuUkdCQTsKKyAgb3B0X3R5cGUgPSBvcHRfdHlwZSB8fCBnbC5V
TlNJR05FRF9CWVRFOworCisgIHZhciBudW1FbGVtZW50cyA9IGdldFR5cGVkQXJyYXlFbGVtZW50
c1BlclBpeGVsKGdsLCBvcHRfZm9ybWF0LCBvcHRfdHlwZSk7CisgIHZhciBidWYgPSBuZXcgKGds
VHlwZVRvVHlwZWRBcnJheVR5cGUoZ2wsIG9wdF90eXBlKSkobnVtRWxlbWVudHMpOworCisgIHZh
ciBlcnJvcnMgPSAwOworICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHdpZHRo
IC0gMSwgaGVpZ2h0IC0gMSwgMSwgMSwgb3B0X2Zvcm1hdCwgb3B0X3R5cGUsIGJ1Zik7CisgIGlm
IChnbC5nZXRFcnJvcigpICE9IGdsLk5PX0VSUk9SKSB7CisgICAgdGVzdEZhaWxlZCgiVGV4dHVy
ZSB3YXMgc21hbGxlciB0aGFuIHRoZSBleHBlY3RlZCBzaXplICIgKyB3aWR0aCArICJ4IiArIGhl
aWdodCk7CisgICAgKytlcnJvcnM7CisgIH0KKyAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCB3aWR0aCAtIDEsIGhlaWdodCwgMSwgMSwgb3B0X2Zvcm1hdCwgb3B0X3R5cGUsIGJ1
Zik7CisgIGlmIChnbC5nZXRFcnJvcigpID09IGdsLk5PX0VSUk9SKSB7CisgICAgdGVzdEZhaWxl
ZCgiVGV4dHVyZSB3YXMgdGFsbGVyIHRoYW4gIiArIGhlaWdodCk7CisgICAgKytlcnJvcnM7Cisg
IH0KKyAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCB3aWR0aCwgaGVpZ2h0IC0g
MSwgMSwgMSwgb3B0X2Zvcm1hdCwgb3B0X3R5cGUsIGJ1Zik7CisgIGlmIChnbC5nZXRFcnJvcigp
ID09IGdsLk5PX0VSUk9SKSB7CisgICAgdGVzdEZhaWxlZCgiVGV4dHVyZSB3YXMgd2lkZXIgdGhh
biAiICsgd2lkdGgpOworICAgICsrZXJyb3JzOworICB9CisgIGlmIChlcnJvcnMgPT0gMCkgewor
ICAgIHRlc3RQYXNzZWQoIlRleHR1cmUgaGFkIHRoZSBleHBlY3RlZCBzaXplICIgKyB3aWR0aCAr
ICJ4IiArIGhlaWdodCk7CisgIH0KK307CisKKy8qKgorICogTWFrZXMgYSBzaGFsbG93IGNvcHkg
b2YgYW4gb2JqZWN0LgorICogQHBhcmFtIHshT2JqZWN0fSBzcmMgT2JqZWN0IHRvIGNvcHkKKyAq
IEByZXR1cm4geyFPYmplY3R9IFRoZSBjb3B5IG9mIHNyYy4KKyAqLwordmFyIHNoYWxsb3dDb3B5
T2JqZWN0ID0gZnVuY3Rpb24oc3JjKSB7CisgIHZhciBkc3QgPSB7fTsKKyAgZm9yICh2YXIgYXR0
ciBpbiBzcmMpIHsKKyAgICBpZiAoc3JjLmhhc093blByb3BlcnR5KGF0dHIpKSB7CisgICAgICBk
c3RbYXR0cl0gPSBzcmNbYXR0cl07CisgICAgfQorICB9CisgIHJldHVybiBkc3Q7Cit9OworCisv
KioKKyAqIENoZWNrcyBpZiBhbiBhdHRyaWJ1dGUgZXhpc3RzIG9uIGFuIG9iamVjdCBjYXNlIGlu
c2Vuc2l0aXZlLgorICogQHBhcmFtIHshT2JqZWN0fSBvYmogT2JqZWN0IHRvIGNoZWNrCisgKiBA
cGFyYW0ge3N0cmluZ30gYXR0ciBOYW1lIG9mIGF0dHJpYnV0ZSB0byBsb29rIGZvci4KKyAqIEBy
ZXR1cm4ge3N0cmluZz99IFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgaWYgaXQgZXhpc3RzLAor
ICogICAgICAgICB1bmRlZmluZWQgaWYgbm90LgorICovCit2YXIgaGFzQXR0cmlidXRlQ2FzZUlu
c2Vuc2l0aXZlID0gZnVuY3Rpb24ob2JqLCBhdHRyKSB7CisgIHZhciBsb3dlciA9IGF0dHIudG9M
b3dlckNhc2UoKTsKKyAgZm9yICh2YXIga2V5IGluIG9iaikgeworICAgIGlmIChvYmouaGFzT3du
UHJvcGVydHkoa2V5KSAmJiBrZXkudG9Mb3dlckNhc2UoKSA9PSBsb3dlcikgeworICAgICAgcmV0
dXJuIGtleTsKKyAgICB9CisgIH0KK307CisKKy8qKgorICogUmV0dXJucyBhIG1hcCBvZiBVUkwg
cXVlcnlzdHJpbmcgb3B0aW9ucworICogQHJldHVybiB7T2JqZWN0P30gT2JqZWN0IGNvbnRhaW5p
bmcgYWxsIHRoZSB2YWx1ZXMgaW4gdGhlIFVSTCBxdWVyeXN0cmluZworICovCit2YXIgZ2V0VXJs
T3B0aW9ucyA9IChmdW5jdGlvbigpIHsKKyAgdmFyIF91cmxPcHRpb25zUGFyc2VkID0gZmFsc2U7
CisgIHZhciBfdXJsT3B0aW9ucyA9IHt9OworICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgaWYg
KCFfdXJsT3B0aW9uc1BhcnNlZCkgeworICAgICAgdmFyIHMgPSB3aW5kb3cubG9jYXRpb24uaHJl
ZjsKKyAgICAgIHZhciBxID0gcy5pbmRleE9mKCI/Iik7CisgICAgICB2YXIgZSA9IHMuaW5kZXhP
ZigiIyIpOworICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgIGUgPSBzLmxlbmd0aDsKKyAgICAg
IH0KKyAgICAgIHZhciBxdWVyeSA9IHMuc3Vic3RyaW5nKHEgKyAxLCBlKTsKKyAgICAgIHZhciBw
YWlycyA9IHF1ZXJ5LnNwbGl0KCImIik7CisgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgcGFp
cnMubGVuZ3RoOyArK2lpKSB7CisgICAgICAgIHZhciBrZXlWYWx1ZSA9IHBhaXJzW2lpXS5zcGxp
dCgiPSIpOworICAgICAgICB2YXIga2V5ID0ga2V5VmFsdWVbMF07CisgICAgICAgIHZhciB2YWx1
ZSA9IGRlY29kZVVSSUNvbXBvbmVudChrZXlWYWx1ZVsxXSk7CisgICAgICAgIF91cmxPcHRpb25z
W2tleV0gPSB2YWx1ZTsKKyAgICAgIH0KKyAgICAgIF91cmxPcHRpb25zUGFyc2VkID0gdHJ1ZTsK
KyAgICB9CisKKyAgICByZXR1cm4gX3VybE9wdGlvbnM7CisgIH0KK30pKCk7CisKK3ZhciBkZWZh
dWx0M0RDb250ZXh0VmVyc2lvbiA9IDE7CisKKy8qKgorICogU2V0IHRoZSBkZWZhdWx0IGNvbnRl
eHQgdmVyc2lvbiBmb3IgY3JlYXRlM0RDb250ZXh0LgorICogSW5pdGlhbGx5IHRoZSBkZWZhdWx0
IHZlcnNpb24gaXMgMS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBEZWZhdWx0IHZlcnNpb24gb2YgV2Vi
R0wgY29udGV4dHMuCisgKi8KK3ZhciBzZXREZWZhdWx0M0RDb250ZXh0VmVyc2lvbiA9IGZ1bmN0
aW9uKHZlcnNpb24pIHsKKyAgICBkZWZhdWx0M0RDb250ZXh0VmVyc2lvbiA9IHZlcnNpb247Cit9
OworCisvKioKKyAqIEdldCB0aGUgZGVmYXVsdCBjb250ZXggdmVyc2lvbiBmb3IgY3JlYXRlM0RD
b250ZXh0LgorICogRmlyc3QgaXQgbG9va3MgYXQgdGhlIFVSSSBvcHRpb24gfHdlYmdsVmVyc2lv
bnwuIElmIGl0IGRvZXMgbm90IGV4aXN0LAorICogdGhlbiBsb29rIGF0IHRoZSBnbG9iYWwgZGVm
YXVsdDNEQ29udGV4dFZlcnNpb24gdmFyaWFibGUuCisgKi8KK3ZhciBnZXREZWZhdWx0M0RDb250
ZXh0VmVyc2lvbiA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBwYXJzZUludChnZXRVcmxPcHRp
b25zKCkud2ViZ2xWZXJzaW9uLCAxMCkgfHwgZGVmYXVsdDNEQ29udGV4dFZlcnNpb247Cit9Owor
CisvKioKKyAqIENyZWF0ZXMgYSB3ZWJnbCBjb250ZXh0LgorICogQHBhcmFtIHshQ2FudmFzfHN0
cmluZ30gb3B0X2NhbnZhcyBUaGUgY2FudmFzIHRhZyB0byBnZXQKKyAqICAgICBjb250ZXh0IGZy
b20uIElmIG9uZSBpcyBub3QgcGFzc2VkIGluIG9uZSB3aWxsIGJlCisgKiAgICAgY3JlYXRlZC4g
SWYgaXQncyBhIHN0cmluZyBpdCdzIGFzc3VtZWQgdG8gYmUgdGhlIGlkIG9mIGEKKyAqICAgICBj
YW52YXMuCisgKiBAcGFyYW0ge09iamVjdH0gb3B0X2F0dHJpYnV0ZXMgQ29udGV4dCBhdHRyaWJ1
dGVzLgorICogQHBhcmFtIHshbnVtYmVyfSBvcHRfdmVyc2lvbiBWZXJzaW9uIG9mIFdlYkdMIGNv
bnRleHQgdG8gY3JlYXRlLgorICogICAgIFRoZSBkZWZhdWx0IHZlcnNpb24gY2FuIGJlIHNldCBi
eSBjYWxsaW5nIHNldERlZmF1bHQzRENvbnRleHRWZXJzaW9uLgorICogQHJldHVybiB7IVdlYkdM
UmVuZGVyaW5nQ29udGV4dH0gVGhlIGNyZWF0ZWQgY29udGV4dC4KKyAqLwordmFyIGNyZWF0ZTNE
Q29udGV4dCA9IGZ1bmN0aW9uKG9wdF9jYW52YXMsIG9wdF9hdHRyaWJ1dGVzLCBvcHRfdmVyc2lv
bikgeworICBpZiAod2luZG93LmluaXRUZXN0aW5nSGFybmVzcykgeworICAgIHdpbmRvdy5pbml0
VGVzdGluZ0hhcm5lc3MoKTsKKyAgfQorICB2YXIgYXR0cmlidXRlcyA9IHNoYWxsb3dDb3B5T2Jq
ZWN0KG9wdF9hdHRyaWJ1dGVzIHx8IHt9KTsKKyAgaWYgKCFoYXNBdHRyaWJ1dGVDYXNlSW5zZW5z
aXRpdmUoYXR0cmlidXRlcywgImFudGlhbGlhcyIpKSB7CisgICAgYXR0cmlidXRlcy5hbnRpYWxp
YXMgPSBmYWxzZTsKKyAgfQorICBpZiAoIW9wdF92ZXJzaW9uKSB7CisgICAgb3B0X3ZlcnNpb24g
PSBnZXREZWZhdWx0M0RDb250ZXh0VmVyc2lvbigpOworICB9CisgIG9wdF9jYW52YXMgPSBvcHRf
Y2FudmFzIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICBpZiAodHlwZW9m
IG9wdF9jYW52YXMgPT0gJ3N0cmluZycpIHsKKyAgICBvcHRfY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQob3B0X2NhbnZhcyk7CisgIH0KKyAgdmFyIGNvbnRleHQgPSBudWxsOworCisg
IHZhciBuYW1lczsKKyAgc3dpdGNoIChvcHRfdmVyc2lvbikgeworICAgIGNhc2UgMjoKKyAgICAg
IG5hbWVzID0gWyJ3ZWJnbDIiXTsgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIG5hbWVzID0g
WyJ3ZWJnbCIsICJleHBlcmltZW50YWwtd2ViZ2wiXTsgYnJlYWs7CisgIH0KKworICBmb3IgKHZh
ciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgdHJ5IHsKKyAgICAgIGNvbnRl
eHQgPSBvcHRfY2FudmFzLmdldENvbnRleHQobmFtZXNbaV0sIGF0dHJpYnV0ZXMpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICB9CisgICAgaWYgKGNvbnRleHQpIHsKKyAgICAgIGJyZWFrOworICAg
IH0KKyAgfQorICBpZiAoIWNvbnRleHQpIHsKKyAgICB0ZXN0RmFpbGVkKCJVbmFibGUgdG8gZmV0
Y2ggV2ViR0wgcmVuZGVyaW5nIGNvbnRleHQgZm9yIENhbnZhcyIpOworICB9IGVsc2UgeworICAg
IGlmICghd2luZG93Ll93dHVfY29udGV4dHMpIHsKKyAgICAgIHdpbmRvdy5fd3R1X2NvbnRleHRz
ID0gW10KKyAgICB9CisgICAgd2luZG93Ll93dHVfY29udGV4dHMucHVzaChjb250ZXh0KTsKKyAg
fQorICByZXR1cm4gY29udGV4dDsKK307CisKKy8qKgorICogSW5kaWNhdGVzIHdoZXRoZXIgdGhl
IGdpdmVuIGNvbnRleHQgaXMgV2ViR0wgMi4wIG9yIGdyZWF0ZXIuCisgKiBAcGFyYW0geyFXZWJH
TFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgor
ICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgZ2l2ZW4gY29udGV4dCBpcyBXZWJHTCAy
LjAgb3IgZ3JlYXRlci4KKyAqLwordmFyIGlzV2ViR0wyID0gZnVuY3Rpb24oZ2wpIHsKKyAgLy8g
RHVjayB0eXBpbmcgaXMgdXNlZCBzbyB0aGF0IHRoZSBjb25mb3JtYW5jZSBzdWl0ZSBjYW4gYmUg
cnVuCisgIC8vIGFnYWluc3QgbGlicmFyaWVzIGVtdWxhdGluZyBXZWJHTCAxLjAgb24gdG9wIG9m
IFdlYkdMIDIuMC4KKyAgcmV0dXJuICEhZ2wuZHJhd0FycmF5c0luc3RhbmNlZDsKK307CisKKy8q
KgorICogRGVmaW5lcyB0aGUgZXhjZXB0aW9uIHR5cGUgZm9yIGEgR0wgZXJyb3IuCisgKiBAY29u
c3RydWN0b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLgor
ICogQHBhcmFtIHtudW1iZXJ9IGVycm9yIEdMIGVycm9yIGNvZGUKKyAqLworZnVuY3Rpb24gR0xF
cnJvckV4Y2VwdGlvbiAobWVzc2FnZSwgZXJyb3IpIHsKKyAgIHRoaXMubWVzc2FnZSA9IG1lc3Nh
Z2U7CisgICB0aGlzLm5hbWUgPSAiR0xFcnJvckV4Y2VwdGlvbiI7CisgICB0aGlzLmVycm9yID0g
ZXJyb3I7Cit9OworCisvKioKKyAqIFdyYXBzIGEgV2ViR0wgZnVuY3Rpb24gd2l0aCBhIGZ1bmN0
aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcworICogYW4gZXJyb3IuCisg
KiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IGZuYW1lIE5hbWUgb2YgZnVuY3Rpb24g
dG8gd3JhcC4KKyAqIEByZXR1cm4ge2Z1bmN0aW9uKCl9IFRoZSB3cmFwcGVkIGZ1bmN0aW9uLgor
ICovCit2YXIgY3JlYXRlR0xFcnJvcldyYXBwZXIgPSBmdW5jdGlvbihjb250ZXh0LCBmbmFtZSkg
eworICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgdmFyIHJ2ID0gY29udGV4dFtmbmFtZV0uYXBw
bHkoY29udGV4dCwgYXJndW1lbnRzKTsKKyAgICB2YXIgZXJyID0gY29udGV4dC5nZXRFcnJvcigp
OworICAgIGlmIChlcnIgIT0gY29udGV4dC5OT19FUlJPUikgeworICAgICAgdmFyIG1zZyA9ICJH
TCBlcnJvciAiICsgZ2xFbnVtVG9TdHJpbmcoY29udGV4dCwgZXJyKSArICIgaW4gIiArIGZuYW1l
OworICAgICAgdGhyb3cgbmV3IEdMRXJyb3JFeGNlcHRpb24obXNnLCBlcnIpOworICAgIH0KKyAg
ICByZXR1cm4gcnY7CisgIH07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBXZWJHTCBjb250ZXh0
IHdoZXJlIGFsbCBmdW5jdGlvbnMgYXJlIHdyYXBwZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uCisg
KiBpZiB0aGVyZSBpcyBhbiBlcnJvci4KKyAqIEBwYXJhbSB7IUNhbnZhc30gY2FudmFzIFRoZSBI
VE1MIGNhbnZhcyB0byBnZXQgYSBjb250ZXh0IGZyb20uCisgKiBAcGFyYW0ge09iamVjdH0gb3B0
X2F0dHJpYnV0ZXMgQ29udGV4dCBhdHRyaWJ1dGVzLgorICogQHBhcmFtIHshbnVtYmVyfSBvcHRf
dmVyc2lvbiBWZXJzaW9uIG9mIFdlYkdMIGNvbnRleHQgdG8gY3JlYXRlCisgKiBAcmV0dXJuIHsh
T2JqZWN0fSBUaGUgd3JhcHBlZCBjb250ZXh0LgorICovCitmdW5jdGlvbiBjcmVhdGUzRENvbnRl
eHRXaXRoV3JhcHBlclRoYXRUaHJvd3NPbkdMRXJyb3IoY2FudmFzLCBvcHRfYXR0cmlidXRlcywg
b3B0X3ZlcnNpb24pIHsKKyAgdmFyIGNvbnRleHQgPSBjcmVhdGUzRENvbnRleHQoY2FudmFzLCBv
cHRfYXR0cmlidXRlcywgb3B0X3ZlcnNpb24pOworICB2YXIgd3JhcCA9IHt9OworICBmb3IgKHZh
ciBpIGluIGNvbnRleHQpIHsKKyAgICB0cnkgeworICAgICAgaWYgKHR5cGVvZiBjb250ZXh0W2ld
ID09ICdmdW5jdGlvbicpIHsKKyAgICAgICAgd3JhcFtpXSA9IGNyZWF0ZUdMRXJyb3JXcmFwcGVy
KGNvbnRleHQsIGkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgd3JhcFtpXSA9IGNvbnRleHRb
aV07CisgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgZXJyb3IoImNyZWF0ZUNvbnRl
eHRXcmFwcGVyVGhhdFRocm93c09uR0xFcnJvcjogRXJyb3IgYWNjZXNzaW5nICIgKyBpKTsKKyAg
ICB9CisgIH0KKyAgd3JhcC5nZXRFcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIGNv
bnRleHQuZ2V0RXJyb3IoKTsKKyAgfTsKKyAgcmV0dXJuIHdyYXA7Cit9OworCisvKioKKyAqIFRl
c3RzIHRoYXQgYW4gZXZhbHVhdGVkIGV4cHJlc3Npb24gZ2VuZXJhdGVzIGEgc3BlY2lmaWMgR0wg
ZXJyb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJl
bmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ8QXJyYXkuPG51bWJlcj59
IGdsRXJyb3JzIFRoZSBleHBlY3RlZCBnbCBlcnJvciBvciBhbiBhcnJheSBvZiBleHBlY3RlZCBl
cnJvcnMuCisgKiBAcGFyYW0ge3N0cmluZ30gZXZhbFN0ciBUaGUgc3RyaW5nIHRvIGV2YWx1YXRl
LgorICovCit2YXIgc2hvdWxkR2VuZXJhdGVHTEVycm9yID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3Jz
LCBldmFsU3RyLCBvcHRfbXNnKSB7CisgIHZhciBleGNlcHRpb247CisgIHRyeSB7CisgICAgZXZh
bChldmFsU3RyKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKyAg
aWYgKGV4Y2VwdGlvbikgeworICAgIHRlc3RGYWlsZWQoZXZhbFN0ciArICIgdGhyZXcgZXhjZXB0
aW9uICIgKyBleGNlcHRpb24pOworICAgIHJldHVybiAtMTsKKyAgfSBlbHNlIHsKKyAgICBpZiAo
IW9wdF9tc2cpIHsKKyAgICAgIG9wdF9tc2cgPSAiYWZ0ZXIgZXZhbHVhdGluZzogIiArIGV2YWxT
dHI7CisgICAgfQorICAgIHJldHVybiBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsRXJyb3JzLCBvcHRf
bXNnKTsKKyAgfQorfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IGFuIGV2YWx1YXRlZCBleHByZXNz
aW9uIGRvZXMgbm90IGdlbmVyYXRlIGEgR0wgZXJyb3IuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRl
cmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBh
cmFtIHtzdHJpbmd9IGV2YWxTdHIgVGhlIHN0cmluZyB0byBldmFsdWF0ZS4KKyAqLwordmFyIGZh
aWxJZkdMRXJyb3IgPSBmdW5jdGlvbihnbCwgZXZhbFN0cikgeworICB2YXIgZXhjZXB0aW9uOwor
ICB0cnkgeworICAgIGV2YWwoZXZhbFN0cik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBleGNlcHRp
b24gPSBlOworICB9CisgIGlmIChleGNlcHRpb24pIHsKKyAgICB0ZXN0RmFpbGVkKGV2YWxTdHIg
KyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgfSBlbHNlIHsKKyAgICBnbEVy
cm9yU2hvdWxkQmVJbXBsKGdsLCBnbC5OT19FUlJPUiwgZmFsc2UsICJhZnRlciBldmFsdWF0aW5n
OiAiICsgZXZhbFN0cik7CisgIH0KK307CisKKy8qKgorICogVGVzdHMgdGhhdCB0aGUgZmlyc3Qg
ZXJyb3IgR0wgcmV0dXJucyBpcyB0aGUgc3BlY2lmaWVkIGVycm9yLgorICogQHBhcmFtIHshV2Vi
R0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4K
KyAqIEBwYXJhbSB7bnVtYmVyfEFycmF5LjxudW1iZXI+fSBnbEVycm9ycyBUaGUgZXhwZWN0ZWQg
Z2wgZXJyb3Igb3IgYW4gYXJyYXkgb2YgZXhwZWN0ZWQgZXJyb3JzLgorICogQHBhcmFtIHtzdHJp
bmd9IG9wdF9tc2cgT3B0aW9uYWwgYWRkaXRpb25hbCBtZXNzYWdlLgorICovCit2YXIgZ2xFcnJv
clNob3VsZEJlID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3JzLCBvcHRfbXNnKSB7CisgIHJldHVybiBn
bEVycm9yU2hvdWxkQmVJbXBsKGdsLCBnbEVycm9ycywgdHJ1ZSwgb3B0X21zZyk7Cit9OworCitj
b25zdCBnbEVycm9yQXNzZXJ0ID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3JzLCBvcHRfbXNnKSB7Cisg
IHJldHVybiBnbEVycm9yU2hvdWxkQmVJbXBsKGdsLCBnbEVycm9ycywgZmFsc2UsIG9wdF9tc2cp
OworfTsKKworLyoqCisgKiBUZXN0cyB0aGF0IHRoZSBnaXZlbiBmcmFtZWJ1ZmZlciBoYXMgYSBz
cGVjaWZpYyBzdGF0dXMKKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhl
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcnxBcnJheS48
bnVtYmVyPn0gZ2xTdGF0dXNlcyBUaGUgZXhwZWN0ZWQgZ2wKKyAqICAgICAgICBzdGF0dXMgb3Ig
YW4gYXJyYXkgb2YgZXhwZWN0ZWQgc3RhdHVzZXMuCisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X21z
ZyBPcHRpb25hbCBhZGRpdGlvbmFsIG1lc3NhZ2UuCisgKi8KK3ZhciBmcmFtZWJ1ZmZlclN0YXR1
c1Nob3VsZEJlID0gZnVuY3Rpb24oZ2wsIHRhcmdldCwgZ2xTdGF0dXNlcywgb3B0X21zZykgewor
ICBpZiAoIWdsU3RhdHVzZXMubGVuZ3RoKSB7CisgICAgZ2xTdGF0dXNlcyA9IFtnbFN0YXR1c2Vz
XTsKKyAgfQorICBvcHRfbXNnID0gb3B0X21zZyB8fCAiIjsKKyAgY29uc3Qgc3RhdHVzID0gZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyh0YXJnZXQpOworICBjb25zdCBuZHggPSBnbFN0YXR1c2Vz
LmluZGV4T2Yoc3RhdHVzKTsKKyAgY29uc3QgZXhwZWN0ZWQgPSBnbFN0YXR1c2VzLm1hcCgoc3Rh
dHVzKSA9PiB7CisgICAgcmV0dXJuIGdsRW51bVRvU3RyaW5nKGdsLCBzdGF0dXMpOworICB9KS5q
b2luKCcgb3IgJyk7CisgIGlmIChuZHggPCAwKSB7CisgICAgbGV0IG1zZyA9ICJjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzIGV4cGVjdGVkIiArICgoZ2xTdGF0dXNlcy5sZW5ndGggPiAxKSA/ICIgb25l
IG9mOiAiIDogIjogIikgKworICAgICAgZXhwZWN0ZWQgKyAgIi4gV2FzICIgKyBnbEVudW1Ub1N0
cmluZyhnbCwgc3RhdHVzKTsKKyAgICBpZiAob3B0X21zZykgeworICAgICAgbXNnICs9ICI6ICIg
KyBvcHRfbXNnOworICAgIH0KKyAgICB0ZXN0RmFpbGVkKG1zZyk7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIGxldCBtc2cgPSBgY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyB3YXMgJHtnbEVudW1U
b1N0cmluZyhnbCwgc3RhdHVzKX1gOworICBpZiAoZ2xTdGF0dXNlcy5sZW5ndGggPiAxKSB7Cisg
ICAgbXNnICs9IGAsIG9uZSBvZjogJHtleHBlY3RlZH1gOworICB9CisgIGlmIChvcHRfbXNnKSB7
CisgICAgbXNnICs9ICI6ICIgKyBvcHRfbXNnOworICB9CisgIHRlc3RQYXNzZWQobXNnKTsKKyAg
cmV0dXJuIFtzdGF0dXNdOworfQorCisvKioKKyAqIFRlc3RzIHRoYXQgdGhlIGZpcnN0IGVycm9y
IEdMIHJldHVybnMgaXMgdGhlIHNwZWNpZmllZCBlcnJvci4gQWxsb3dzIHN1cHByZXNzaW9uIG9m
IHN1Y2Nlc3Nlcy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcnxBcnJheS48bnVt
YmVyPn0gZ2xFcnJvcnMgVGhlIGV4cGVjdGVkIGdsIGVycm9yIG9yIGFuIGFycmF5IG9mIGV4cGVj
dGVkIGVycm9ycy4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVwb3J0U3VjY2Vzc2VzIFdoZXRoZXIg
dG8gcmVwb3J0IHN1Y2Nlc3NlcyBhcyBwYXNzZXMsIG9yIHRvIHNpbGVudGx5IHBhc3MuCisgKiBA
cGFyYW0ge3N0cmluZ30gb3B0X21zZyBPcHRpb25hbCBhZGRpdGlvbmFsIG1lc3NhZ2UuCisgKi8K
K3ZhciBnbEVycm9yU2hvdWxkQmVJbXBsID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3JzLCByZXBvcnRT
dWNjZXNzZXMsIG9wdF9tc2cpIHsKKyAgaWYgKCFnbEVycm9ycy5sZW5ndGgpIHsKKyAgICBnbEVy
cm9ycyA9IFtnbEVycm9yc107CisgIH0KKyAgb3B0X21zZyA9IG9wdF9tc2cgfHwgIiI7CisKKyAg
Y29uc3QgZm5FcnJTdHIgPSBmdW5jdGlvbihlcnJWYWwpIHsKKyAgICBpZiAoZXJyVmFsID09IDAp
IHJldHVybiAiTk9fRVJST1IiOworICAgIHJldHVybiBnbEVudW1Ub1N0cmluZyhnbCwgZXJyVmFs
KTsKKyAgfTsKKworICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKKyAgdmFyIG5keCA9IGdsRXJy
b3JzLmluZGV4T2YoZXJyKTsKKyAgdmFyIGVyclN0cnMgPSBbXTsKKyAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IGdsRXJyb3JzLmxlbmd0aDsgKytpaSkgeworICAgIGVyclN0cnMucHVzaChmbkVyclN0
cihnbEVycm9yc1tpaV0pKTsKKyAgfQorICB2YXIgZXhwZWN0ZWQgPSBlcnJTdHJzLmpvaW4oIiBv
ciAiKTsKKyAgaWYgKG5keCA8IDApIHsKKyAgICB2YXIgbXNnID0gImdldEVycm9yIGV4cGVjdGVk
IiArICgoZ2xFcnJvcnMubGVuZ3RoID4gMSkgPyAiIG9uZSBvZjogIiA6ICI6ICIpOworICAgIHRl
c3RGYWlsZWQobXNnICsgZXhwZWN0ZWQgKyAgIi4gV2FzICIgKyBmbkVyclN0cihlcnIpICsgIiA6
ICIgKyBvcHRfbXNnKTsKKyAgfSBlbHNlIGlmIChyZXBvcnRTdWNjZXNzZXMpIHsKKyAgICB2YXIg
bXNnID0gImdldEVycm9yIHdhcyAiICsgKChnbEVycm9ycy5sZW5ndGggPiAxKSA/ICJvbmUgb2Y6
ICIgOiAiZXhwZWN0ZWQgdmFsdWU6ICIpOworICAgIHRlc3RQYXNzZWQobXNnICsgZXhwZWN0ZWQg
KyAiIDogIiArIG9wdF9tc2cpOworICB9CisgIHJldHVybiBlcnI7Cit9OworCisvKioKKyAqIFRl
c3RzIHRoYXQgYSBmdW5jdGlvbiB0aHJvd3Mgb3Igbm90LgorICogQHBhcmFtIHshV2ViR0xDb250
ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB0aHJvd1R5cGUgVHlw
ZSBvZiB0aHJvd24gZXJyb3IgKGUuZy4gVHlwZUVycm9yKSwgb3IgZmFsc2UuCisgKiBAcGFyYW0g
e3N0cmluZ30gaW5mbyBJbmZvIG9uIHdoYXQncyBiZWluZyB0ZXN0ZWQKKyAqIEBwYXJhbSB7ZnVu
Y3Rpb259IGZ1bmMgVGhlIGZ1bmMgdG8gdGVzdC4KKyAqLwordmFyIHNob3VsZFRocm93ID0gZnVu
Y3Rpb24oZ2wsIHRocm93VHlwZSwgaW5mbywgZnVuYykgeworICB3aGlsZSAoZ2wuZ2V0RXJyb3Io
KSkge30KKworICB2YXIgc2hvdWxkVGhyb3cgPSAodGhyb3dUeXBlICE9IGZhbHNlKTsKKworICB0
cnkgeworICAgIGZ1bmMoKTsKKworICAgIGlmIChzaG91bGRUaHJvdykgeworICAgICAgdGVzdEZh
aWxlZCgiU2hvdWxkIHRocm93IGEgIiArIHRocm93VHlwZS5uYW1lICsgIjogIiArIGluZm8pOwor
ICAgIH0gZWxzZSB7CisgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgbm90IGhhdmUgdGhyb3duOiAi
ICsgaW5mbyk7CisgICAgfQorICB9IGNhdGNoIChlKSB7CisgICAgaWYgKHNob3VsZFRocm93KSB7
CisgICAgICBpZiAoZSBpbnN0YW5jZW9mIHRocm93VHlwZSkgeworICAgICAgICB0ZXN0UGFzc2Vk
KCJTaG91bGQgdGhyb3cgYSAiICsgdGhyb3dUeXBlLm5hbWUgKyAiOiAiICsgaW5mbyk7CisgICAg
ICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgdGhyb3cgYSAiICsgdGhyb3dU
eXBlLm5hbWUgKyAiLCB0aHJldyAiICsgZS5uYW1lICsgIjogIiArIGluZm8pOworICAgICAgfQor
ICAgIH0gZWxzZSB7CisgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgbm90IGhhdmUgdGhyb3duOiAi
ICsgaW5mbyk7CisgICAgfQorCisgICAgaWYgKGdsLmdldEVycm9yKCkpIHsKKyAgICAgIHRlc3RG
YWlsZWQoIlNob3VsZCBub3QgZ2VuZXJhdGUgYW4gZXJyb3Igd2hlbiB0aHJvd2luZzogIiArIGlu
Zm8pOworICAgIH0KKyAgfQorCisgIHdoaWxlIChnbC5nZXRFcnJvcigpKSB7fQorfTsKKworLyoq
CisgKiBMaW5rcyBhIFdlYkdMIHByb2dyYW0sIHRocm93cyBpZiB0aGVyZSBhcmUgZXJyb3JzLgor
ICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdD
b250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IVdlYkdMUHJvZ3JhbX0gcHJvZ3JhbSBUaGUgV2Vi
R0xQcm9ncmFtIHRvIGxpbmsuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9w
dF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKi8KK3ZhciBsaW5rUHJvZ3Jh
bSA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtLCBvcHRfZXJyb3JDYWxsYmFjaykgeworICB2YXIgZXJy
Rm4gPSBvcHRfZXJyb3JDYWxsYmFjayB8fCB0ZXN0RmFpbGVkOworICAvLyBMaW5rIHRoZSBwcm9n
cmFtCisgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworCisgIC8vIENoZWNrIHRoZSBsaW5rIHN0
YXR1cworICB2YXIgbGlua2VkID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5M
SU5LX1NUQVRVUyk7CisgIGlmICghbGlua2VkKSB7CisgICAgLy8gc29tZXRoaW5nIHdlbnQgd3Jv
bmcgd2l0aCB0aGUgbGluaworICAgIHZhciBlcnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChw
cm9ncmFtKTsKKworICAgIGVyckZuKCJFcnJvciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGVycm9y
KTsKKworICAgIGdsLmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7CisgIH0KK307CisKKy8qKgorICog
TG9hZHMgdGV4dCBmcm9tIGFuIGV4dGVybmFsIGZpbGUuIFRoaXMgZnVuY3Rpb24gaXMgYXN5bmNo
cm9ub3VzLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgdXJsIG9mIHRoZSBleHRlcm5hbCBm
aWxlLgorICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgc3RyaW5nKTogdm9pZH0gY2FsbGJhY2sg
dGhhdCBpcyBzZW50IGEgYm9vbCBmb3IKKyAqICAgICBzdWNjZXNzIGFuZCB0aGUgc3RyaW5nLgor
ICovCit2YXIgbG9hZFRleHRGaWxlQXN5bmMgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7Cisg
IGxvZyAoImxvYWRpbmc6ICIgKyB1cmwpOworICB2YXIgZXJyb3IgPSAnbG9hZFRleHRGaWxlQXN5
bmMgZmFpbGVkIHRvIGxvYWQgdXJsICInICsgdXJsICsgJyInOworICB2YXIgcmVxdWVzdDsKKyAg
aWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgeworICAgIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKKyAgICBpZiAocmVxdWVzdC5vdmVycmlkZU1pbWVUeXBlKSB7CisgICAgICByZXF1
ZXN0Lm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW4nKTsKKyAgICB9CisgIH0gZWxzZSB7Cisg
ICAgdGhyb3cgJ1hNTEh0dHBSZXF1ZXN0IGlzIGRpc2FibGVkJzsKKyAgfQorICB0cnkgeworICAg
IHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTsKKyAgICByZXF1ZXN0Lm9ucmVhZHlzdGF0
ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0
KSB7CisgICAgICAgIHZhciB0ZXh0ID0gJyc7CisgICAgICAgIC8vIEhUVFAgcmVwb3J0cyBzdWNj
ZXNzIHdpdGggYSAyMDAgc3RhdHVzLiBUaGUgZmlsZSBwcm90b2NvbCByZXBvcnRzCisgICAgICAg
IC8vIHN1Y2Nlc3Mgd2l0aCB6ZXJvLiBIVFRQIGRvZXMgbm90IHVzZSB6ZXJvIGFzIGEgc3RhdHVz
IGNvZGUgKHRoZXkKKyAgICAgICAgLy8gc3RhcnQgYXQgMTAwKS4KKyAgICAgICAgLy8gaHR0cHM6
Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvRW4vVXNpbmdfWE1MSHR0cFJlcXVlc3QKKyAgICAgICAg
dmFyIHN1Y2Nlc3MgPSByZXF1ZXN0LnN0YXR1cyA9PSAyMDAgfHwgcmVxdWVzdC5zdGF0dXMgPT0g
MDsKKyAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICB0ZXh0ID0gcmVxdWVzdC5yZXNw
b25zZVRleHQ7CisgICAgICAgICAgbG9nKCJjb21wbGV0ZWQgbG9hZCByZXF1ZXN0OiAiICsgdXJs
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBsb2coImxvYWRpbmcgIiArIHVybCArICIg
cmVzdWx0ZWQgaW4gdW5leHBlY3RlZCBzdGF0dXM6ICIgKyByZXF1ZXN0LnN0YXR1cyArICIgIiAr
IHJlcXVlc3Quc3RhdHVzVGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY2FsbGJhY2soc3VjY2Vz
cywgdGV4dCk7CisgICAgICB9CisgICAgfTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlv
bihlcnJvckV2ZW50KSB7CisgICAgICBsb2coImVycm9yIG9jY3VycmVkIGxvYWRpbmcgIiArIHVy
bCk7CisgICAgICBjYWxsYmFjayhmYWxzZSwgJycpOworICAgIH07CisgICAgcmVxdWVzdC5zZW5k
KG51bGwpOworICB9IGNhdGNoIChlcnIpIHsKKyAgICBsb2coImZhaWxlZCB0byBsb2FkOiAiICsg
dXJsICsgIiB3aXRoIGV4Y2VwdGlvbiAiICsgZXJyLm1lc3NhZ2UpOworICAgIGNhbGxiYWNrKGZh
bHNlLCAnJyk7CisgIH0KK307CisKKy8qKgorICogUmVjdXJzaXZlbHkgbG9hZHMgYSBmaWxlIGFz
IGEgbGlzdC4gRWFjaCBsaW5lIGlzIHBhcnNlZCBmb3IgYSByZWxhdGl2ZQorICogcGF0aC4gSWYg
dGhlIGZpbGUgZW5kcyBpbiAudHh0IHRoZSBjb250ZW50cyBvZiB0aGF0IGZpbGUgaXMgaW5zZXJ0
ZWQgaW4KKyAqIHRoZSBsaXN0LgorICoKKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHVybCBv
ZiB0aGUgZXh0ZXJuYWwgZmlsZS4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKGJvb2wsIEFycmF5PHN0
cmluZz4pOiB2b2lkfSBjYWxsYmFjayB0aGF0IGlzIHNlbnQgYSBib29sCisgKiAgICAgZm9yIHN1
Y2Nlc3MgYW5kIHRoZSBhcnJheSBvZiBzdHJpbmdzLgorICovCit2YXIgZ2V0RmlsZUxpc3RBc3lu
YyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKKyAgdmFyIGZpbGVzID0gW107CisKKyAgdmFy
IGdldEZpbGVMaXN0SW1wbCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKKyAgICB2YXIgZmls
ZXMgPSBbXTsKKyAgICBpZiAodXJsLnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7
CisgICAgICBsb2FkVGV4dEZpbGVBc3luYyh1cmwsIGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1
cm4gZnVuY3Rpb24oc3VjY2VzcywgdGV4dCkgeworICAgICAgICAgIGlmICghc3VjY2Vzcykgewor
ICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UsICcnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICB9CisgICAgICAgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKKyAgICAg
ICAgICB2YXIgcHJlZml4ID0gJyc7CisgICAgICAgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0
SW5kZXhPZignLycpOworICAgICAgICAgIGlmIChsYXN0U2xhc2ggPj0gMCkgeworICAgICAgICAg
ICAgcHJlZml4ID0gdXJsLnN1YnN0cigwLCBsYXN0U2xhc2ggKyAxKTsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgdmFyIGZhaWwgPSBmYWxzZTsKKyAgICAgICAgICB2YXIgY291bnQgPSAxOworICAg
ICAgICAgIHZhciBpbmRleCA9IDA7CisgICAgICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxp
bmVzLmxlbmd0aDsgKytpaSkgeworICAgICAgICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBs
YWNlKC9eXHNccyovLCAnJykucmVwbGFjZSgvXHNccyokLywgJycpOworICAgICAgICAgICAgaWYg
KHN0ci5sZW5ndGggPiA0ICYmCisgICAgICAgICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgorICAg
ICAgICAgICAgICAgIHN0clswXSAhPSAiOyIgJiYKKyAgICAgICAgICAgICAgICBzdHIuc3Vic3Ry
KDAsIDIpICE9ICIvLyIpIHsKKyAgICAgICAgICAgICAgdmFyIG5hbWVzID0gc3RyLnNwbGl0KC8g
Ky8pOworICAgICAgICAgICAgICB2YXIgbmV3X3VybCA9IHByZWZpeCArIHN0cjsKKyAgICAgICAg
ICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICAgICAgbmV3X3VybCA9
IHByZWZpeCArIHN0cjsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAg
IGdldEZpbGVMaXN0SW1wbChuZXdfdXJsLCBmdW5jdGlvbihpbmRleCkgeworICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIG5ld19maWxlcykgeworICAgICAgICAgICAg
ICAgICAgICBsb2coImdvdCBmaWxlczogIiArIG5ld19maWxlcy5sZW5ndGgpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoc3VjY2VzcykgeworICAgICAgICAgICAgICAgICAgICAgIGZpbGVzW2lu
ZGV4XSA9IG5ld19maWxlczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBmaW5pc2goc3VjY2Vzcyk7CisgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgIH0oaW5kZXgrKykpOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHZhciBzID0gIiI7CisgICAgICAgICAgICAgICAgdmFyIHAgPSAiIjsKKyAgICAgICAgICAgICAg
ICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgbmFtZXMubGVuZ3RoOyArK2pqKSB7CisgICAgICAgICAg
ICAgICAgICBzICs9IHAgKyBwcmVmaXggKyBuYW1lc1tqal07CisgICAgICAgICAgICAgICAgICBw
ID0gIiAiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmaWxlc1tpbmRleCsr
XSA9IHM7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAg
ICAgICAgZmluaXNoKHRydWUpOworCisgICAgICAgICAgZnVuY3Rpb24gZmluaXNoKHN1Y2Nlc3Mp
IHsKKyAgICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICBmYWlsID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICBsb2co
ImNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgaWYgKCFjb3VudCkgeworICAgICAgICAg
ICAgICBjYWxsYmFjayghZmFpbCwgZmlsZXMpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgfSgpKTsKKworICAgIH0gZWxzZSB7CisgICAgICBmaWxlcy5wdXNo
KHVybCk7CisgICAgICBjYWxsYmFjayh0cnVlLCBmaWxlcyk7CisgICAgfQorICB9OworCisgIGdl
dEZpbGVMaXN0SW1wbCh1cmwsIGZ1bmN0aW9uKHN1Y2Nlc3MsIGZpbGVzKSB7CisgICAgLy8gZmxh
dHRlbgorICAgIHZhciBmbGF0ID0gW107CisgICAgZmxhdHRlbihmaWxlcyk7CisgICAgZnVuY3Rp
b24gZmxhdHRlbihmaWxlcykgeworICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGZpbGVzLmxl
bmd0aDsgKytpaSkgeworICAgICAgICB2YXIgdmFsdWUgPSBmaWxlc1tpaV07CisgICAgICAgIGlm
ICh0eXBlb2YodmFsdWUpID09ICJzdHJpbmciKSB7CisgICAgICAgICAgZmxhdC5wdXNoKHZhbHVl
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBmbGF0dGVuKHZhbHVlKTsKKyAgICAgICAg
fQorICAgICAgfQorICAgIH0KKyAgICBjYWxsYmFjayhzdWNjZXNzLCBmbGF0KTsKKyAgfSk7Cit9
OworCisvKioKKyAqIEdldHMgYSBmaWxlIGZyb20gYSBmaWxlL1VSTC4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSBmaWxlIHRoZSBVUkwgb2YgdGhlIGZpbGUgdG8gZ2V0LgorICogQHJldHVybiB7c3RyaW5n
fSBUaGUgY29udGVudHMgb2YgdGhlIGZpbGUuCisgKi8KK3ZhciByZWFkRmlsZSA9IGZ1bmN0aW9u
KGZpbGUpIHsKKyAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICB4aHIub3Blbigi
R0VUIiwgZmlsZSwgZmFsc2UpOworICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgidGV4dC9wbGFpbiIp
OworICB4aHIuc2VuZCgpOworICByZXR1cm4geGhyLnJlc3BvbnNlVGV4dC5yZXBsYWNlKC9cci9n
LCAiIik7Cit9OworCit2YXIgcmVhZEZpbGVMaXN0ID0gZnVuY3Rpb24odXJsKSB7CisgIHZhciBm
aWxlcyA9IFtdOworICBpZiAodXJsLnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7
CisgICAgdmFyIGxpbmVzID0gcmVhZEZpbGUodXJsKS5zcGxpdCgnXG4nKTsKKyAgICB2YXIgcHJl
Zml4ID0gJyc7CisgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0SW5kZXhPZignLycpOworICAg
IGlmIChsYXN0U2xhc2ggPj0gMCkgeworICAgICAgcHJlZml4ID0gdXJsLnN1YnN0cigwLCBsYXN0
U2xhc2ggKyAxKTsKKyAgICB9CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0
aDsgKytpaSkgeworICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBsYWNlKC9eXHNccyovLCAn
JykucmVwbGFjZSgvXHNccyokLywgJycpOworICAgICAgaWYgKHN0ci5sZW5ndGggPiA0ICYmCisg
ICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgorICAgICAgICAgIHN0clswXSAhPSAiOyIgJiYKKyAg
ICAgICAgICBzdHIuc3Vic3RyKDAsIDIpICE9ICIvLyIpIHsKKyAgICAgICAgdmFyIG5hbWVzID0g
c3RyLnNwbGl0KC8gKy8pOworICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09IDEpIHsKKyAgICAg
ICAgICB2YXIgbmV3X3VybCA9IHByZWZpeCArIHN0cjsKKyAgICAgICAgICBmaWxlcyA9IGZpbGVz
LmNvbmNhdChyZWFkRmlsZUxpc3QobmV3X3VybCkpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgIHZhciBzID0gIiI7CisgICAgICAgICAgdmFyIHAgPSAiIjsKKyAgICAgICAgICBmb3IgKHZh
ciBqaiA9IDA7IGpqIDwgbmFtZXMubGVuZ3RoOyArK2pqKSB7CisgICAgICAgICAgICBzICs9IHAg
KyBwcmVmaXggKyBuYW1lc1tqal07CisgICAgICAgICAgICBwID0gIiAiOworICAgICAgICAgIH0K
KyAgICAgICAgICBmaWxlcy5wdXNoKHMpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9
IGVsc2UgeworICAgIGZpbGVzLnB1c2godXJsKTsKKyAgfQorICByZXR1cm4gZmlsZXM7Cit9Owor
CisvKioKKyAqIExvYWRzIGEgc2hhZGVyLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250
ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSBzaGFkZXJTb3VyY2UgVGhlIHNoYWRlciBzb3VyY2UuCisgKiBAcGFyYW0ge251bWJlcn0g
c2hhZGVyVHlwZSBUaGUgdHlwZSBvZiBzaGFkZXIuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmlu
Zyk6IHZvaWR9IG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcGFy
YW0ge2Jvb2xlYW59IG9wdF9sb2dTaGFkZXJzIFdoZXRoZXIgdG8gbG9nIHNoYWRlciBzb3VyY2Uu
CisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X3NoYWRlckxhYmVsIExhYmVsIHRoYXQgaWRlbnRpZmll
cyB0aGUgc2hhZGVyIHNvdXJjZSBpbgorICogICAgIHRoZSBsb2cuCisgKiBAcGFyYW0ge3N0cmlu
Z30gb3B0X3VybCBVUkwgZnJvbSB3aGVyZSB0aGUgc2hhZGVyIHNvdXJjZSB3YXMgbG9hZGVkIGZy
b20uCisgKiAgICAgSWYgb3B0X2xvZ1NoYWRlcnMgaXMgc2V0LCB0aGVuIGEgbGluayB0byB0aGUg
c291cmNlIGZpbGUgd2lsbCBhbHNvIGJlCisgKiAgICAgYWRkZWQuCisgKiBAcGFyYW0ge2Jvb2xl
YW59IFNraXAgY29tcGlsYXRpb24gc3RhdHVzIGNoZWNrLiBEZWZhdWx0ID0gZmFsc2UuCisgKiBA
cmV0dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KKyAqLwordmFyIGxvYWRT
aGFkZXIgPSBmdW5jdGlvbigKKyAgICBnbCwgc2hhZGVyU291cmNlLCBzaGFkZXJUeXBlLCBvcHRf
ZXJyb3JDYWxsYmFjaywgb3B0X2xvZ1NoYWRlcnMsCisgICAgb3B0X3NoYWRlckxhYmVsLCBvcHRf
dXJsLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpIHsKKyAgdmFyIGVyckZuID0gb3B0X2Vycm9yQ2Fs
bGJhY2sgfHwgZXJyb3I7CisgIC8vIENyZWF0ZSB0aGUgc2hhZGVyIG9iamVjdAorICB2YXIgc2hh
ZGVyID0gZ2wuY3JlYXRlU2hhZGVyKHNoYWRlclR5cGUpOworICBpZiAoc2hhZGVyID09IG51bGwp
IHsKKyAgICBlcnJGbigiKioqIEVycm9yOiB1bmFibGUgdG8gY3JlYXRlIHNoYWRlciAnIitzaGFk
ZXJTb3VyY2UrIiciKTsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIC8vIExvYWQgdGhlIHNo
YWRlciBzb3VyY2UKKyAgZ2wuc2hhZGVyU291cmNlKHNoYWRlciwgc2hhZGVyU291cmNlKTsKKwor
ICAvLyBDb21waWxlIHRoZSBzaGFkZXIKKyAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpOworCisg
IGlmIChvcHRfbG9nU2hhZGVycykgeworICAgIHZhciBsYWJlbCA9IHNoYWRlclR5cGUgPT0gZ2wu
VkVSVEVYX1NIQURFUiA/ICd2ZXJ0ZXggc2hhZGVyJyA6ICdmcmFnbWVudF9zaGFkZXInOworICAg
IGlmIChvcHRfc2hhZGVyTGFiZWwpIHsKKyAgICAgIGxhYmVsID0gb3B0X3NoYWRlckxhYmVsICsg
JyAnICsgbGFiZWw7CisgICAgfQorICAgIGFkZFNoYWRlclNvdXJjZXMoCisgICAgICAgIGdsLCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLCBsYWJlbCwgc2hhZGVyLCBzaGFkZXJT
b3VyY2UsIG9wdF91cmwpOworICB9CisKKyAgLy8gQ2hlY2sgdGhlIGNvbXBpbGUgc3RhdHVzCisg
IGlmICghb3B0X3NraXBDb21waWxlU3RhdHVzKSB7CisgICAgdmFyIGNvbXBpbGVkID0gZ2wuZ2V0
U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpOworICAgIGlmICghY29t
cGlsZWQpIHsKKyAgICAgIC8vIFNvbWV0aGluZyB3ZW50IHdyb25nIGR1cmluZyBjb21waWxhdGlv
bjsgZ2V0IHRoZSBlcnJvcgorICAgICAgbGFzdEVycm9yID0gZ2wuZ2V0U2hhZGVySW5mb0xvZyhz
aGFkZXIpOworICAgICAgZXJyRm4oIioqKiBFcnJvciBjb21waWxpbmcgIiArIGdsRW51bVRvU3Ry
aW5nKGdsLCBzaGFkZXJUeXBlKSArICIgJyIgKyBzaGFkZXIgKyAiJzoiICsgbGFzdEVycm9yKTsK
KyAgICAgIGdsLmRlbGV0ZVNoYWRlcihzaGFkZXIpOworICAgICAgcmV0dXJuIG51bGw7CisgICAg
fQorICB9CisKKyAgcmV0dXJuIHNoYWRlcjsKK30KKworLyoqCisgKiBMb2FkcyBhIHNoYWRlciBm
cm9tIGEgVVJMLgorICogQHBhcmFtIHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7ZmlsZX0gZmlsZSBUaGUgVVJM
IG9mIHRoZSBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtudW1iZXJ9IHR5cGUgVGhlIHR5cGUg
b2Ygc2hhZGVyLgorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JD
YWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9n
U2hhZGVycyBXaGV0aGVyIHRvIGxvZyBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtib29sZWFu
fSBTa2lwIGNvbXBpbGF0aW9uIHN0YXR1cyBjaGVjay4gRGVmYXVsdCA9IGZhbHNlLgorICogQHJl
dHVybiB7IVdlYkdMU2hhZGVyfSBUaGUgY3JlYXRlZCBzaGFkZXIuCisgKi8KK3ZhciBsb2FkU2hh
ZGVyRnJvbUZpbGUgPSBmdW5jdGlvbigKKyAgICBnbCwgZmlsZSwgdHlwZSwgb3B0X2Vycm9yQ2Fs
bGJhY2ssIG9wdF9sb2dTaGFkZXJzLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMpIHsKKyAgdmFyIHNo
YWRlclNvdXJjZSA9IHJlYWRGaWxlKGZpbGUpOworICByZXR1cm4gbG9hZFNoYWRlcihnbCwgc2hh
ZGVyU291cmNlLCB0eXBlLCBvcHRfZXJyb3JDYWxsYmFjaywKKyAgICAgIG9wdF9sb2dTaGFkZXJz
LCB1bmRlZmluZWQsIGZpbGUsIG9wdF9za2lwQ29tcGlsZVN0YXR1cyk7Cit9OworCit2YXIgbG9h
ZFNoYWRlckZyb21GaWxlQXN5bmMgPSBmdW5jdGlvbigKKyAgICBnbCwgZmlsZSwgdHlwZSwgb3B0
X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJzLCBvcHRfc2tpcENvbXBpbGVTdGF0dXMsIGNh
bGxiYWNrKSB7CisgIGxvYWRUZXh0RmlsZUFzeW5jKGZpbGUsIGZ1bmN0aW9uKGdsLCB0eXBlLCBv
cHRfZXJyb3JDYWxsYmFjaywgb3B0X2xvZ1NoYWRlcnMsIGZpbGUsIG9wdF9za2lwQ29tcGlsZVN0
YXR1cyl7CisgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2Vzcywgc2hhZGVyU291cmNlKSB7Cisg
ICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgdmFyIHNoYWRlciA9IGxvYWRTaGFkZXIo
Z2wsIHNoYWRlclNvdXJjZSwgdHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ssCisgICAgICAgICAgICAg
IG9wdF9sb2dTaGFkZXJzLCB1bmRlZmluZWQsIGZpbGUsIG9wdF9za2lwQ29tcGlsZVN0YXR1cyk7
CisgICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgc2hhZGVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICBjYWxsYmFjayhmYWxzZSwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgfShn
bCwgdHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2ssIG9wdF9sb2dTaGFkZXJzLCBmaWxlLCBvcHRfc2tp
cENvbXBpbGVTdGF0dXMpKTsKK307CisKKy8qKgorICogR2V0cyB0aGUgY29udGVudCBvZiBzY3Jp
cHQuCisgKiBAcGFyYW0ge3N0cmluZ30gc2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFn
LgorICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29udGVudCBvZiB0aGUgc2NyaXB0LgorICovCit2
YXIgZ2V0U2NyaXB0ID0gZnVuY3Rpb24oc2NyaXB0SWQpIHsKKyAgdmFyIHNoYWRlclNjcmlwdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdElkKTsKKyAgaWYgKCFzaGFkZXJTY3JpcHQp
IHsKKyAgICB0aHJvdygiKioqIEVycm9yOiB1bmtub3duIHNjcmlwdCBlbGVtZW50ICIgKyBzY3Jp
cHRJZCk7CisgIH0KKyAgcmV0dXJuIHNoYWRlclNjcmlwdC50ZXh0OworfTsKKworLyoqCisgKiBM
b2FkcyBhIHNoYWRlciBmcm9tIGEgc2NyaXB0IHRhZy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVuZGVy
aW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBAcGFy
YW0ge3N0cmluZ30gc2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnLgorICogQHBhcmFt
IHtudW1iZXJ9IG9wdF9zaGFkZXJUeXBlIFRoZSB0eXBlIG9mIHNoYWRlci4gSWYgbm90IHBhc3Nl
ZCBpbiBpdCB3aWxsCisgKiAgICAgYmUgZGVyaXZlZCBmcm9tIHRoZSB0eXBlIG9mIHRoZSBzY3Jp
cHQgdGFnLgorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxs
YmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgorICogQHBhcmFtIHtib29sZWFufSBvcHRfbG9nU2hh
ZGVycyBXaGV0aGVyIHRvIGxvZyBzaGFkZXIgc291cmNlLgorICogQHBhcmFtIHtib29sZWFufSBT
a2lwIGNvbXBpbGF0aW9uIHN0YXR1cyBjaGVjay4gRGVmYXVsdCA9IGZhbHNlLgorICogQHJldHVy
biB7IVdlYkdMU2hhZGVyfSBUaGUgY3JlYXRlZCBzaGFkZXIuCisgKi8KK3ZhciBsb2FkU2hhZGVy
RnJvbVNjcmlwdCA9IGZ1bmN0aW9uKAorICAgIGdsLCBzY3JpcHRJZCwgb3B0X3NoYWRlclR5cGUs
IG9wdF9lcnJvckNhbGxiYWNrLCBvcHRfbG9nU2hhZGVycywgb3B0X3NraXBDb21waWxlU3RhdHVz
KSB7CisgIHZhciBzaGFkZXJTb3VyY2UgPSAiIjsKKyAgdmFyIHNoYWRlclNjcmlwdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdElkKTsKKyAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKKyAg
ICB0aHJvdygiKioqIEVycm9yOiB1bmtub3duIHNjcmlwdCBlbGVtZW50ICIgKyBzY3JpcHRJZCk7
CisgIH0KKyAgc2hhZGVyU291cmNlID0gc2hhZGVyU2NyaXB0LnRleHQudHJpbSgpOworCisgIGlm
ICghb3B0X3NoYWRlclR5cGUpIHsKKyAgICBpZiAoc2hhZGVyU2NyaXB0LnR5cGUgPT0gIngtc2hh
ZGVyL3gtdmVydGV4IikgeworICAgICAgb3B0X3NoYWRlclR5cGUgPSBnbC5WRVJURVhfU0hBREVS
OworICAgIH0gZWxzZSBpZiAoc2hhZGVyU2NyaXB0LnR5cGUgPT0gIngtc2hhZGVyL3gtZnJhZ21l
bnQiKSB7CisgICAgICBvcHRfc2hhZGVyVHlwZSA9IGdsLkZSQUdNRU5UX1NIQURFUjsKKyAgICB9
IGVsc2UgeworICAgICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93biBzaGFkZXIgdHlwZSIpOwor
ICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICB9CisKKyAgcmV0dXJuIGxvYWRTaGFkZXIoZ2ws
IHNoYWRlclNvdXJjZSwgb3B0X3NoYWRlclR5cGUsIG9wdF9lcnJvckNhbGxiYWNrLAorICAgICAg
b3B0X2xvZ1NoYWRlcnMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBvcHRfc2tpcENvbXBpbGVTdGF0
dXMpOworfTsKKwordmFyIGxvYWRTdGFuZGFyZFByb2dyYW0gPSBmdW5jdGlvbihnbCkgeworICB2
YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dy
YW0sIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlcihnbCkpOworICBnbC5hdHRhY2hTaGFkZXIocHJv
Z3JhbSwgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIoZ2wpKTsKKyAgZ2wuYmluZEF0dHJpYkxv
Y2F0aW9uKHByb2dyYW0sIDAsICJhX3ZlcnRleCIpOworICBnbC5iaW5kQXR0cmliTG9jYXRpb24o
cHJvZ3JhbSwgMSwgImFfbm9ybWFsIik7CisgIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtKTsKKyAg
cmV0dXJuIHByb2dyYW07Cit9OworCit2YXIgbG9hZFN0YW5kYXJkUHJvZ3JhbUFzeW5jID0gZnVu
Y3Rpb24oZ2wsIGNhbGxiYWNrKSB7CisgIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlckFzeW5jKGds
LCBmdW5jdGlvbihnbCkgeworICAgIHJldHVybiBmdW5jdGlvbihzdWNjZXNzLCB2cykgeworICAg
ICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXJBc3lu
YyhnbCwgZnVuY3Rpb24odnMpIHsKKyAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2Vzcywg
ZnMpIHsKKyAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgICAgIHZhciBwcm9n
cmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICAgICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIo
cHJvZ3JhbSwgdnMpOworICAgICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnMp
OworICAgICAgICAgICAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgMCwgImFfdmVy
dGV4Iik7CisgICAgICAgICAgICAgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAxLCAi
YV9ub3JtYWwiKTsKKyAgICAgICAgICAgICAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0pOworICAg
ICAgICAgICAgICBjYWxsYmFjayh0cnVlLCBwcm9ncmFtKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICB9OworICAgICAgICB9KHZzKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBjYWxs
YmFjayhmYWxzZSwgbnVsbCk7CisgICAgICB9CisgICAgfTsKKyAgfShnbCkpOworfTsKKworLyoq
CisgKiBMb2FkcyBzaGFkZXJzIGZyb20gZmlsZXMsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hl
cyB0aGUgc2hhZGVycyBhbmQgbGlua3MuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRl
eHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJp
bmd9IHZlcnRleFNoYWRlclBhdGggVGhlIFVSTCBvZiB0aGUgdmVydGV4IHNoYWRlci4KKyAqIEBw
YXJhbSB7c3RyaW5nfSBmcmFnbWVudFNoYWRlclBhdGggVGhlIFVSTCBvZiB0aGUgZnJhZ21lbnQg
c2hhZGVyLgorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxs
YmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhl
IGNyZWF0ZWQgcHJvZ3JhbS4KKyAqLwordmFyIGxvYWRQcm9ncmFtRnJvbUZpbGUgPSBmdW5jdGlv
bigKKyAgICBnbCwgdmVydGV4U2hhZGVyUGF0aCwgZnJhZ21lbnRTaGFkZXJQYXRoLCBvcHRfZXJy
b3JDYWxsYmFjaykgeworICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgdmFy
IHZzID0gbG9hZFNoYWRlckZyb21GaWxlKAorICAgICAgZ2wsIHZlcnRleFNoYWRlclBhdGgsIGds
LlZFUlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgdmFyIGZzID0gbG9hZFNoYWRl
ckZyb21GaWxlKAorICAgICAgZ2wsIGZyYWdtZW50U2hhZGVyUGF0aCwgZ2wuRlJBR01FTlRfU0hB
REVSLCBvcHRfZXJyb3JDYWxsYmFjayk7CisgIGlmICh2cyAmJiBmcykgeworICAgIGdsLmF0dGFj
aFNoYWRlcihwcm9ncmFtLCB2cyk7CisgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZzKTsK
KyAgICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2spOworICB9Cisg
IGlmICh2cykgeworICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7CisgIH0KKyAgaWYgKGZzKSB7Cisg
ICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKKyAgfQorICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8q
KgorICogTG9hZHMgc2hhZGVycyBmcm9tIHNjcmlwdCB0YWdzLCBjcmVhdGVzIGEgcHJvZ3JhbSwg
YXR0YWNoZXMgdGhlIHNoYWRlcnMgYW5kCisgKiBsaW5rcy4KKyAqIEBwYXJhbSB7IVdlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0ge3N0cmluZ30gdmVydGV4U2NyaXB0SWQgVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnIHRo
YXQgY29udGFpbnMgdGhlCisgKiAgICAgICAgdmVydGV4IHNoYWRlci4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSBmcmFnbWVudFNjcmlwdElkIFRoZSBpZCBvZiB0aGUgc2NyaXB0IHRhZyB0aGF0IGNvbnRh
aW5zIHRoZQorICogICAgICAgIGZyYWdtZW50IHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKTogdm9pZH0gb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4KKyAq
IEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHByb2dyYW0uCisgKi8KK3ZhciBs
b2FkUHJvZ3JhbUZyb21TY3JpcHQgPSBmdW5jdGlvbiBsb2FkUHJvZ3JhbUZyb21TY3JpcHQoCisg
ICAgZ2wsIHZlcnRleFNjcmlwdElkLCBmcmFnbWVudFNjcmlwdElkLCBvcHRfZXJyb3JDYWxsYmFj
aykgeworICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hh
ZGVyKAorICAgICAgcHJvZ3JhbSwKKyAgICAgIGxvYWRTaGFkZXJGcm9tU2NyaXB0KAorICAgICAg
ICAgIGdsLCB2ZXJ0ZXhTY3JpcHRJZCwgZ2wuVkVSVEVYX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJh
Y2spKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKAorICAgICAgcHJvZ3JhbSwKKyAgICAgIGxvYWRTaGFk
ZXJGcm9tU2NyaXB0KAorICAgICAgICAgIGdsLCBmcmFnbWVudFNjcmlwdElkLCAgZ2wuRlJBR01F
TlRfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjaykpOworICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3Jh
bSwgb3B0X2Vycm9yQ2FsbGJhY2spOworICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICog
TG9hZHMgc2hhZGVycyBmcm9tIHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRo
ZSBzaGFkZXJzIGFuZAorICogbGlua3MuCisgKiBAcGFyYW0geyFXZWJHTFJlbmRlcmluZ0NvbnRl
eHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshV2Vi
R0xTaGFkZXJ9IHZlcnRleFNoYWRlciBUaGUgdmVydGV4IHNoYWRlci4KKyAqIEBwYXJhbSB7IVdl
YkdMU2hhZGVyfSBmcmFnbWVudFNoYWRlciBUaGUgZnJhZ21lbnQgc2hhZGVyLgorICogQHBhcmFt
IHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkfSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFjayBmb3Ig
ZXJyb3JzLgorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4K
KyAqLwordmFyIGNyZWF0ZVByb2dyYW0gPSBmdW5jdGlvbihnbCwgdmVydGV4U2hhZGVyLCBmcmFn
bWVudFNoYWRlciwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVh
dGVQcm9ncmFtKCk7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOwor
ICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpOworICBsaW5rUHJvZ3Jh
bShnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2spOworICByZXR1cm4gcHJvZ3JhbTsKK307
CisKKy8qKgorICogTG9hZHMgc2hhZGVycyBmcm9tIHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0s
IGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFuZAorICogbGlua3MuCisgKiBAcGFyYW0geyFXZWJHTFJl
bmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICog
QHBhcmFtIHtzdHJpbmd9IHZlcnRleFNoYWRlciBUaGUgdmVydGV4IHNoYWRlciBzb3VyY2UuCisg
KiBAcGFyYW0ge3N0cmluZ30gZnJhZ21lbnRTaGFkZXIgVGhlIGZyYWdtZW50IHNoYWRlciBzb3Vy
Y2UuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWR9IG9wdF9lcnJvckNhbGxiYWNr
IGNhbGxiYWNrIGZvciBlcnJvcnMuCisgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdF9sb2dTaGFkZXJz
IFdoZXRoZXIgdG8gbG9nIHNoYWRlciBzb3VyY2UuCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFt
fSBUaGUgY3JlYXRlZCBwcm9ncmFtLgorICovCit2YXIgbG9hZFByb2dyYW0gPSBmdW5jdGlvbigK
KyAgICBnbCwgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciwgb3B0X2Vycm9yQ2FsbGJhY2ss
IG9wdF9sb2dTaGFkZXJzKSB7CisgIHZhciBwcm9ncmFtOworICB2YXIgdnMgPSBsb2FkU2hhZGVy
KAorICAgICAgZ2wsIHZlcnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUiwgb3B0X2Vycm9yQ2Fs
bGJhY2ssIG9wdF9sb2dTaGFkZXJzKTsKKyAgdmFyIGZzID0gbG9hZFNoYWRlcigKKyAgICAgIGds
LCBmcmFnbWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJyb3JDYWxsYmFjaywg
b3B0X2xvZ1NoYWRlcnMpOworICBpZiAodnMgJiYgZnMpIHsKKyAgICBwcm9ncmFtID0gY3JlYXRl
UHJvZ3JhbShnbCwgdnMsIGZzLCBvcHRfZXJyb3JDYWxsYmFjaykKKyAgfQorICBpZiAodnMpIHsK
KyAgICBnbC5kZWxldGVTaGFkZXIodnMpOworICB9CisgIGlmIChmcykgeworICAgIGdsLmRlbGV0
ZVNoYWRlcihmcyk7CisgIH0KKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRz
IHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hh
ZGVycyBhbmQKKyAqIGxpbmtzIGJ1dCBleHBlY3RzIGVycm9yLgorICoKKyAqIEdMU0wgMS4wLjE3
IDEwLjI3IGVmZmVjdGl2ZWx5IHNheXMgdGhhdCBjb21waWxlU2hhZGVyIGNhbgorICogYWx3YXlz
IHN1Y2NlZWQgYXMgbG9uZyBhcyBsaW5rUHJvZ3JhbSBmYWlscyBzbyB3ZSBjYW4ndAorICogcmVs
eSBvbiBjb21waWxlU2hhZGVyIGZhaWxpbmcuIFRoaXMgZnVuY3Rpb24gZXhwZWN0cworICogb25l
IG9mIHRoZSBzaGFkZXIgdG8gZmFpbCBPUiBsaW5raW5nIHRvIGZhaWwuCisgKgorICogQHBhcmFt
IHshV2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRv
IHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJ0ZXhTaGFkZXJTY3JpcHRJZCBUaGUgdmVydGV4
IHNoYWRlci4KKyAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNoYWRlclNjcmlwdElkIFRoZSBm
cmFnbWVudCBzaGFkZXIuCisgKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHBy
b2dyYW0uCisgKi8KK3ZhciBsb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RFcnJvciA9IGZ1bmN0
aW9uKAorICAgIGdsLCB2ZXJ0ZXhTaGFkZXJTY3JpcHRJZCwgZnJhZ21lbnRTaGFkZXJTY3JpcHRJ
ZCkgeworICB2YXIgdmVydGV4U2hhZGVyID0gbG9hZFNoYWRlckZyb21TY3JpcHQoZ2wsIHZlcnRl
eFNoYWRlclNjcmlwdElkKTsKKyAgaWYgKCF2ZXJ0ZXhTaGFkZXIpIHsKKyAgICByZXR1cm4gbnVs
bDsKKyAgfQorICB2YXIgZnJhZ21lbnRTaGFkZXIgPSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwg
ZnJhZ21lbnRTaGFkZXJTY3JpcHRJZCk7CisgIGlmICghZnJhZ21lbnRTaGFkZXIpIHsKKyAgICBy
ZXR1cm4gbnVsbDsKKyAgfQorICB2YXIgbGlua1N1Y2Nlc3MgPSB0cnVlOworICB2YXIgcHJvZ3Jh
bSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRl
eFNoYWRlcik7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7Cisg
IGxpbmtTdWNjZXNzID0gdHJ1ZTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIGZ1bmN0aW9u
KCkgeworICAgICAgbGlua1N1Y2Nlc3MgPSBmYWxzZTsKKyAgICB9KTsKKyAgcmV0dXJuIGxpbmtT
dWNjZXNzID8gcHJvZ3JhbSA6IG51bGw7Cit9OworCisKK3ZhciBnZXRBY3RpdmVNYXAgPSBmdW5j
dGlvbihnbCwgcHJvZ3JhbSwgdHlwZUluZm8pIHsKKyAgdmFyIG51bVZhcmlhYmxlcyA9IGdsLmdl
dFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2xbdHlwZUluZm8ucGFyYW1dKTsKKyAgdmFyIHZh
cmlhYmxlcyA9IHt9OworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgbnVtVmFyaWFibGVzOyArK2lp
KSB7CisgICAgdmFyIGluZm8gPSBnbFt0eXBlSW5mby5hY3RpdmVGbl0ocHJvZ3JhbSwgaWkpOwor
ICAgIHZhcmlhYmxlc1tpbmZvLm5hbWVdID0geworICAgICAgbmFtZTogaW5mby5uYW1lLAorICAg
ICAgc2l6ZTogaW5mby5zaXplLAorICAgICAgdHlwZTogaW5mby50eXBlLAorICAgICAgbG9jYXRp
b246IGdsW3R5cGVJbmZvLmxvY0ZuXShwcm9ncmFtLCBpbmZvLm5hbWUpCisgICAgfTsKKyAgfQor
ICByZXR1cm4gdmFyaWFibGVzOworfTsKKworLyoqCisgKiBSZXR1cm5zIGEgbWFwIG9mIGF0dHJp
YiBuYW1lcyB0byBpbmZvIGFib3V0IHRob3NlCisgKiBhdHRyaWJzLgorICoKKyAqIGVnOgorICog
ICAgeyAiYXR0cmliMU5hbWUiOgorICogICAgICB7CisgKiAgICAgICAgbmFtZTogImF0dHJpYjFO
YW1lIiwKKyAqICAgICAgICBzaXplOiAxLAorICogICAgICAgIHR5cGU6IGdsLkZMT0FUX01BVDIs
CisgKiAgICAgICAgbG9jYXRpb246IDAKKyAqICAgICAgfSwKKyAqICAgICAgImF0dHJpYjJOYW1l
WzBdIjoKKyAqICAgICAgeworICogICAgICAgICBuYW1lOiAiYXR0cmliMk5hbWVbMF0iLAorICog
ICAgICAgICBzaXplOiA0LAorICogICAgICAgICB0eXBlOiBnbC5GTE9BVCwKKyAqICAgICAgICAg
bG9jYXRpb246IDEKKyAqICAgICAgfSwKKyAqICAgIH0KKyAqCisgKiBAcGFyYW0geyFXZWJHTFJl
bmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICog
QHBhcmFtIHtXZWJHTFByb2dyYW19IFRoZSBwcm9ncmFtIHRvIHF1ZXJ5IGZvciBhdHRyaWJzLgor
ICogQHJldHVybiB0aGUgbWFwLgorICovCit2YXIgZ2V0QXR0cmliTWFwID0gZnVuY3Rpb24oZ2ws
IHByb2dyYW0pIHsKKyAgcmV0dXJuIGdldEFjdGl2ZU1hcChnbCwgcHJvZ3JhbSwgeworICAgICAg
cGFyYW06ICJBQ1RJVkVfQVRUUklCVVRFUyIsCisgICAgICBhY3RpdmVGbjogImdldEFjdGl2ZUF0
dHJpYiIsCisgICAgICBsb2NGbjogImdldEF0dHJpYkxvY2F0aW9uIgorICB9KTsKK307CisKKy8q
KgorICogUmV0dXJucyBhIG1hcCBvZiB1bmlmb3JtIG5hbWVzIHRvIGluZm8gYWJvdXQgdGhvc2Ug
dW5pZm9ybXMuCisgKgorICogZWc6CisgKiAgICB7ICJ1bmlmb3JtMU5hbWUiOgorICogICAgICB7
CisgKiAgICAgICAgbmFtZTogInVuaWZvcm0xTmFtZSIsCisgKiAgICAgICAgc2l6ZTogMSwKKyAq
ICAgICAgICB0eXBlOiBnbC5GTE9BVF9NQVQyLAorICogICAgICAgIGxvY2F0aW9uOiBXZWJHTFVu
aWZvcm1Mb2NhdGlvbgorICogICAgICB9LAorICogICAgICAidW5pZm9ybTJOYW1lWzBdIjoKKyAq
ICAgICAgeworICogICAgICAgICBuYW1lOiAidW5pZm9ybTJOYW1lWzBdIiwKKyAqICAgICAgICAg
c2l6ZTogNCwKKyAqICAgICAgICAgdHlwZTogZ2wuRkxPQVQsCisgKiAgICAgICAgIGxvY2F0aW9u
OiBXZWJHTFVuaWZvcm1Mb2NhdGlvbgorICogICAgICB9LAorICogICAgfQorICoKKyAqIEBwYXJh
bSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCB0
byB1c2UuCisgKiBAcGFyYW0ge1dlYkdMUHJvZ3JhbX0gVGhlIHByb2dyYW0gdG8gcXVlcnkgZm9y
IHVuaWZvcm1zLgorICogQHJldHVybiB0aGUgbWFwLgorICovCit2YXIgZ2V0VW5pZm9ybU1hcCA9
IGZ1bmN0aW9uKGdsLCBwcm9ncmFtKSB7CisgIHJldHVybiBnZXRBY3RpdmVNYXAoZ2wsIHByb2dy
YW0sIHsKKyAgICAgIHBhcmFtOiAiQUNUSVZFX1VOSUZPUk1TIiwKKyAgICAgIGFjdGl2ZUZuOiAi
Z2V0QWN0aXZlVW5pZm9ybSIsCisgICAgICBsb2NGbjogImdldFVuaWZvcm1Mb2NhdGlvbiIKKyAg
fSk7Cit9OworCit2YXIgYmFzZVBhdGg7Cit2YXIgZ2V0UmVzb3VyY2VQYXRoID0gZnVuY3Rpb24o
KSB7CisgIGlmICghYmFzZVBhdGgpIHsKKyAgICB2YXIgZXhwZWN0ZWRCYXNlID0gImpzL3dlYmds
LXRlc3QtdXRpbHMuanMiOworICAgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ3NjcmlwdCcpOworICAgIGZvciAodmFyIHNjcmlwdCwgaSA9IDA7IHNjcmlwdCA9
IHNjcmlwdHNbaV07IGkrKykgeworICAgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgICB2
YXIgbCA9IHNyYy5sZW5ndGg7CisgICAgICBpZiAoc3JjLnN1YnN0cihsIC0gZXhwZWN0ZWRCYXNl
Lmxlbmd0aCkgPT0gZXhwZWN0ZWRCYXNlKSB7CisgICAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0
cigwLCBsIC0gZXhwZWN0ZWRCYXNlLmxlbmd0aCk7CisgICAgICB9CisgICAgfQorICB9CisgIHJl
dHVybiBiYXNlUGF0aCArICJyZXNvdXJjZXMvIjsKK307CisKK3ZhciBsb2FkU3RhbmRhcmRWZXJ0
ZXhTaGFkZXIgPSBmdW5jdGlvbihnbCkgeworICByZXR1cm4gbG9hZFNoYWRlckZyb21GaWxlKAor
ICAgICAgZ2wsIGdldFJlc291cmNlUGF0aCgpICsgInZlcnRleFNoYWRlci52ZXJ0IiwgZ2wuVkVS
VEVYX1NIQURFUik7Cit9OwordmFyIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlckFzeW5jID0gZnVu
Y3Rpb24oZ2wsIGNhbGxiYWNrKSB7CisgIGxvYWRTaGFkZXJGcm9tRmlsZUFzeW5jKGdsLCBnZXRS
ZXNvdXJjZVBhdGgoKSArICJ2ZXJ0ZXhTaGFkZXIudmVydCIsIGdsLlZFUlRFWF9TSEFERVIsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNhbGxiYWNrKTsKK307CisKK3ZhciBsb2Fk
U3RhbmRhcmRGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7CisgIHJldHVybiBsb2FkU2hh
ZGVyRnJvbUZpbGUoCisgICAgICBnbCwgZ2V0UmVzb3VyY2VQYXRoKCkgKyAiZnJhZ21lbnRTaGFk
ZXIuZnJhZyIsIGdsLkZSQUdNRU5UX1NIQURFUik7Cit9OwordmFyIGxvYWRTdGFuZGFyZEZyYWdt
ZW50U2hhZGVyQXN5bmMgPSBmdW5jdGlvbihnbCwgY2FsbGJhY2spIHsKKyAgbG9hZFNoYWRlckZy
b21GaWxlQXN5bmMoZ2wsIGdldFJlc291cmNlUGF0aCgpICsgImZyYWdtZW50U2hhZGVyLmZyYWci
LCBnbC5GUkFHTUVOVF9TSEFERVIsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNh
bGxiYWNrKTsKK307CisKK3ZhciBsb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbSA9IGZ1bmN0aW9uKGds
KSB7CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFk
ZXIocHJvZ3JhbSwgbG9hZFVuaWZvcm1CbG9ja1ZlcnRleFNoYWRlcihnbCkpOworICBnbC5hdHRh
Y2hTaGFkZXIocHJvZ3JhbSwgbG9hZFVuaWZvcm1CbG9ja0ZyYWdtZW50U2hhZGVyKGdsKSk7Cisg
IGdsLmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAwLCAiYV92ZXJ0ZXgiKTsKKyAgZ2wuYmlu
ZEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIDEsICJhX25vcm1hbCIpOworICBsaW5rUHJvZ3JhbShn
bCwgcHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKwordmFyIGxvYWRVbmlmb3JtQmxv
Y2tWZXJ0ZXhTaGFkZXIgPSBmdW5jdGlvbihnbCkgeworICByZXR1cm4gbG9hZFNoYWRlckZyb21G
aWxlKAorICAgICAgZ2wsIGdldFJlc291cmNlUGF0aCgpICsgInVuaWZvcm1CbG9ja1NoYWRlci52
ZXJ0IiwgZ2wuVkVSVEVYX1NIQURFUik7Cit9OworCit2YXIgbG9hZFVuaWZvcm1CbG9ja0ZyYWdt
ZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgcmV0dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgK
KyAgICAgIGdsLCBnZXRSZXNvdXJjZVBhdGgoKSArICJ1bmlmb3JtQmxvY2tTaGFkZXIuZnJhZyIs
IGdsLkZSQUdNRU5UX1NIQURFUik7Cit9OworCisvKioKKyAqIExvYWRzIGFuIGltYWdlIGFzeW5j
aHJvbm91c2x5LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgb2YgaW1hZ2UgdG8gbG9hZC4K
KyAqIEBwYXJhbSB7IWZ1bmN0aW9uKCFFbGVtZW50KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24g
dG8gY2FsbAorICogICAgIHdpdGggbG9hZGVkIGltYWdlLgorICovCit2YXIgbG9hZEltYWdlQXN5
bmMgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CisgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpbWcnKTsKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNhbGxi
YWNrKGltZyk7CisgIH07CisgIGltZy5zcmMgPSB1cmw7Cit9OworCisvKioKKyAqIExvYWRzIGFu
IGFycmF5IG9mIGltYWdlcy4KKyAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSB1cmxzIFVSTHMg
b2YgaW1hZ2VzIHRvIGxvYWQuCisgKiBAcGFyYW0geyFmdW5jdGlvbighe3N0cmluZywgaW1nfSk6
IHZvaWR9IGNhbGxiYWNrIENhbGxiYWNrCisgKiAgICAgdGhhdCBnZXRzIHBhc3NlZCBtYXAgb2Yg
dXJscyB0byBpbWcgdGFncy4KKyAqLwordmFyIGxvYWRJbWFnZXNBc3luYyA9IGZ1bmN0aW9uKHVy
bHMsIGNhbGxiYWNrKSB7CisgIHZhciBjb3VudCA9IDE7CisgIHZhciBpbWFnZXMgPSB7IH07Cisg
IGZ1bmN0aW9uIGNvdW50RG93bigpIHsKKyAgICAtLWNvdW50OworICAgIGlmIChjb3VudCA9PSAw
KSB7CisgICAgICBsb2coImxvYWRJbWFnZXNBc3luYzogYWxsIGltYWdlcyBsb2FkZWQiKTsKKyAg
ICAgIGNhbGxiYWNrKGltYWdlcyk7CisgICAgfQorICB9CisgIGZ1bmN0aW9uIGltYWdlTG9hZGVk
KHVybCkgeworICAgIHJldHVybiBmdW5jdGlvbihpbWcpIHsKKyAgICAgIGltYWdlc1t1cmxdID0g
aW1nOworICAgICAgbG9nKCJsb2FkSW1hZ2VzQXN5bmM6IGxvYWRlZCAiICsgdXJsKTsKKyAgICAg
IGNvdW50RG93bigpOworICAgIH0KKyAgfQorICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdXJscy5s
ZW5ndGg7ICsraWkpIHsKKyAgICArK2NvdW50OworICAgIGxvYWRJbWFnZUFzeW5jKHVybHNbaWld
LCBpbWFnZUxvYWRlZCh1cmxzW2lpXSkpOworICB9CisgIGNvdW50RG93bigpOworfTsKKworLyoq
CisgKiBSZXR1cm5zIGEgbWFwIG9mIGtleT12YWx1ZSB2YWx1ZXMgZnJvbSB1cmwuCisgKiBAcmV0
dXJuIHshT2JqZWN0LjxzdHJpbmcsIG51bWJlcj59IG1hcCBvZiBrZXlzIHRvIHZhbHVlcy4KKyAq
LwordmFyIGdldFVybEFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkgeworICB2YXIgYXJncyA9IHt9Owor
ICB0cnkgeworICAgIHZhciBzID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CisgICAgdmFyIHEgPSBz
LmluZGV4T2YoIj8iKTsKKyAgICB2YXIgZSA9IHMuaW5kZXhPZigiIyIpOworICAgIGlmIChlIDwg
MCkgeworICAgICAgZSA9IHMubGVuZ3RoOworICAgIH0KKyAgICB2YXIgcXVlcnkgPSBzLnN1YnN0
cmluZyhxICsgMSwgZSk7CisgICAgdmFyIHBhaXJzID0gcXVlcnkuc3BsaXQoIiYiKTsKKyAgICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgcGFpcnMubGVuZ3RoOyArK2lpKSB7CisgICAgICB2YXIga2V5
VmFsdWUgPSBwYWlyc1tpaV0uc3BsaXQoIj0iKTsKKyAgICAgIHZhciBrZXkgPSBrZXlWYWx1ZVsw
XTsKKyAgICAgIHZhciB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChrZXlWYWx1ZVsxXSk7Cisg
ICAgICBhcmdzW2tleV0gPSB2YWx1ZTsKKyAgICB9CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0aHJv
dyAiY291bGQgbm90IHBhcnNlIHVybCI7CisgIH0KKyAgcmV0dXJuIGFyZ3M7Cit9OworCisvKioK
KyAqIE1ha2VzIGFuIGltYWdlIGZyb20gYSBzcmMuCisgKiBAcGFyYW0ge3N0cmluZ30gc3JjIElt
YWdlIHNvdXJjZSBVUkwuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCl9IG9ubG9hZCBDYWxsYmFjayB0
byBjYWxsIHdoZW4gdGhlIGltYWdlIGhhcyBmaW5pc2VkIGxvYWRpbmcuCisgKiBAcGFyYW0ge2Z1
bmN0aW9uKCl9IG9uZXJyb3IgQ2FsbGJhY2sgdG8gY2FsbCB3aGVuIGFuIGVycm9yIG9jY3Vycy4K
KyAqIEByZXR1cm4geyFJbWFnZX0gVGhlIGNyZWF0ZWQgaW1hZ2UuCisgKi8KK3ZhciBtYWtlSW1h
Z2UgPSBmdW5jdGlvbihzcmMsIG9ubG9hZCwgb25lcnJvcikgeworICB2YXIgaW1nID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGlmIChvbmxvYWQpIHsKKyAgICBpbWcub25sb2Fk
ID0gb25sb2FkOworICB9CisgIGlmIChvbmVycm9yKSB7CisgICAgaW1nLm9uZXJyb3IgPSBvbmVy
cm9yOworICB9IGVsc2UgeworICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICBs
b2coIldBUk5JTkc6IGNyZWF0aW5nIGltYWdlIGZhaWxlZDsgc3JjOiAiICsgdGhpcy5zcmMpOwor
ICAgIH07CisgIH0KKyAgaWYgKHNyYykgeworICAgIGltZy5zcmMgPSBzcmM7CisgIH0KKyAgcmV0
dXJuIGltZzsKK30KKworLyoqCisgKiBNYWtlcyBhbiBpbWFnZSBlbGVtZW50IGZyb20gYSBjYW52
YXMuCisgKiBAcGFyYW0geyFIVE1MQ2FudmFzfSBjYW52YXMgQ2FudmFzIHRvIG1ha2UgaW1hZ2Ug
ZnJvbS4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0gb25sb2FkIENhbGxiYWNrIHRvIGNhbGwgd2hl
biB0aGUgaW1hZ2UgaGFzIGZpbmlzZWQgbG9hZGluZy4KKyAqIEBwYXJhbSB7c3RyaW5nfSBpbWFn
ZUZvcm1hdCBJbWFnZSBmb3JtYXQgdG8gYmUgcGFzc2VkIHRvIHRvRGF0YVVybCgpLgorICogQHJl
dHVybiB7IUltYWdlfSBUaGUgY3JlYXRlZCBpbWFnZS4KKyAqLwordmFyIG1ha2VJbWFnZUZyb21D
YW52YXMgPSBmdW5jdGlvbihjYW52YXMsIG9ubG9hZCwgaW1hZ2VGb3JtYXQpIHsKKyAgcmV0dXJu
IG1ha2VJbWFnZShjYW52YXMudG9EYXRhVVJMKGltYWdlRm9ybWF0KSwgb25sb2FkKTsKK307CisK
Ky8qKgorICogTWFrZXMgYSB2aWRlbyBlbGVtZW50IGZyb20gYSBzcmMuCisgKiBAcGFyYW0ge3N0
cmluZ30gc3JjIFZpZGVvIHNvdXJjZSBVUkwuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCl9IG9uZXJy
b3IgQ2FsbGJhY2sgdG8gY2FsbCB3aGVuIGFuIGVycm9yIG9jY3Vycy4KKyAqIEByZXR1cm4geyFW
aWRlb30gVGhlIGNyZWF0ZWQgdmlkZW8uCisgKi8KK3ZhciBtYWtlVmlkZW8gPSBmdW5jdGlvbihz
cmMsIG9uZXJyb3IpIHsKKyAgdmFyIHZpZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgIHZpZC5tdXRlZCA9IHRydWU7CisgIGlmIChvbmVycm9yKSB7CisgICAgdmlkLm9uZXJy
b3IgPSBvbmVycm9yOworICB9IGVsc2UgeworICAgIHZpZC5vbmVycm9yID0gZnVuY3Rpb24oKSB7
CisgICAgICBsb2coIldBUk5JTkc6IGNyZWF0aW5nIHZpZGVvIGZhaWxlZDsgc3JjOiAiICsgdGhp
cy5zcmMpOworICAgIH07CisgIH0KKyAgaWYgKHNyYykgeworICAgIHZpZC5zcmMgPSBzcmM7Cisg
IH0KKyAgcmV0dXJuIHZpZDsKK30KKworLyoqCisgKiBJbnNlcnRzIGFuIGltYWdlIHdpdGggYSBj
YXB0aW9uIGludG8gJ2VsZW1lbnQnLgorICogQHBhcmFtIHshSFRNTEVsZW1lbnR9IGVsZW1lbnQg
RWxlbWVudCB0byBhcHBlbmQgaW1hZ2UgdG8uCisgKiBAcGFyYW0ge3N0cmluZ30gY2FwdGlvbiBj
YXB0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIGltYWdlLgorICogQHBhcmFtIHshSW1hZ2V9IGltZyBp
bWFnZSB0byBpbnNlcnQuCisgKi8KK3ZhciBpbnNlcnRJbWFnZSA9IGZ1bmN0aW9uKGVsZW1lbnQs
IGNhcHRpb24sIGltZykgeworICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgIHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICBsYWJl
bC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjYXB0aW9uKSk7CisgIGRpdi5h
cHBlbmRDaGlsZChsYWJlbCk7CisgIGRpdi5hcHBlbmRDaGlsZChpbWcpOworICBlbGVtZW50LmFw
cGVuZENoaWxkKGRpdik7Cit9OworCisvKioKKyAqIEluc2VydHMgYSAnbGFiZWwnIHRoYXQgd2hl
biBjbGlja2VkIGV4cGFuZHMgdG8gdGhlIHByZSBmb3JtYXR0ZWQgdGV4dAorICogc3VwcGxpZWQg
YnkgJ3NvdXJjZScuCisgKiBAcGFyYW0geyFIVE1MRWxlbWVudH0gZWxlbWVudCBlbGVtZW50IHRv
IGFwcGVuZCBsYWJlbCB0by4KKyAqIEBwYXJhbSB7c3RyaW5nfSBsYWJlbCBsYWJlbCBmb3IgYW5j
aG9yLgorICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZSBwcmVmb3JtYXR0ZWQgdGV4dCB0byBleHBh
bmQgdG8uCisgKiBAcGFyYW0ge3N0cmluZ30gb3B0X3VybCBVUkwgb2Ygc291cmNlLiBJZiBwcm92
aWRlZCBhIGxpbmsgdG8gdGhlIHNvdXJjZSBmaWxlCisgKiAgICAgd2lsbCBhbHNvIGJlIGFkZGVk
LgorICovCit2YXIgYWRkU2hhZGVyU291cmNlID0gZnVuY3Rpb24oZWxlbWVudCwgbGFiZWwsIHNv
dXJjZSwgb3B0X3VybCkgeworICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7CisgIHMuY2xhc3NO
YW1lID0gInNoYWRlci1zb3VyY2UiOworICBzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgIHZh
ciBvbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CisgIC8vcy5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzb3VyY2UpKTsKKyAgdmFyIGxpbmVzID0gc291cmNlLnNw
bGl0KCJcbiIpOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgbGluZXMubGVuZ3RoOyArK2lpKSB7
CisgICAgdmFyIGxpbmUgPSBsaW5lc1tpaV07CisgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibGkiKTsKKyAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShsaW5lKSk7CisgICAgb2wuYXBwZW5kQ2hpbGQobGkpOworICB9CisgIHMuYXBwZW5kQ2hpbGQo
b2wpOworICB2YXIgbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgbC5ocmVmID0g
InNob3ctc2hhZGVyLXNvdXJjZSI7CisgIGwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobGFiZWwpKTsKKyAgbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHsKKyAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKKyAgICAgIH0KKyAgICAgIHMuc3R5bGUuZGlzcGxheSA9IChzLnN0
eWxlLmRpc3BsYXkgPT0gJ25vbmUnKSA/ICdibG9jaycgOiAnbm9uZSc7CisgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfSwgZmFsc2UpOworICBkaXYuYXBwZW5kQ2hpbGQobCk7CisgIGlmIChvcHRf
dXJsKSB7CisgICAgdmFyIHUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CisgICAgdS5o
cmVmID0gb3B0X3VybDsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIiAiKSk7CisgICAgdS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiKCIg
KyBvcHRfdXJsICsgIikiKSk7CisgICAgZGl2LmFwcGVuZENoaWxkKHUpOworICB9CisgIGRpdi5h
cHBlbmRDaGlsZChzKTsKKyAgZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOworfTsKKworLyoqCisg
KiBJbnNlcnRzIGxhYmVscyB0aGF0IHdoZW4gY2xpY2tlZCBleHBhbmQgdG8gc2hvdyB0aGUgb3Jp
Z2luYWwgc291cmNlIG9mIHRoZQorICogc2hhZGVyIGFuZCBhbHNvIHRyYW5zbGF0ZWQgc291cmNl
IG9mIHRoZSBzaGFkZXIsIGlmIHRoYXQgaXMgYXZhaWxhYmxlLgorICogQHBhcmFtIHtXZWJHTFJl
bmRlcmluZ0NvbnRleHR9IGdsIFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICog
QHBhcmFtIHshSFRNTEVsZW1lbnR9IGVsZW1lbnQgZWxlbWVudCB0byBhcHBlbmQgbGFiZWwgdG8u
CisgKiBAcGFyYW0ge3N0cmluZ30gbGFiZWwgbGFiZWwgZm9yIGFuY2hvci4KKyAqIEBwYXJhbSB7
V2ViR0xTaGFkZXJ9IHNoYWRlciBTaGFkZXIgdG8gc2hvdyB0aGUgc291cmNlcyBmb3IuCisgKiBA
cGFyYW0ge3N0cmluZ30gc2hhZGVyU291cmNlIE9yaWdpbmFsIHNoYWRlciBzb3VyY2UuCisgKiBA
cGFyYW0ge3N0cmluZ30gb3B0X3VybCBVUkwgb2Ygc291cmNlLiBJZiBwcm92aWRlZCBhIGxpbmsg
dG8gdGhlIHNvdXJjZSBmaWxlCisgKiAgICAgd2lsbCBhbHNvIGJlIGFkZGVkLgorICovCit2YXIg
YWRkU2hhZGVyU291cmNlcyA9IGZ1bmN0aW9uKAorICAgIGdsLCBlbGVtZW50LCBsYWJlbCwgc2hh
ZGVyLCBzaGFkZXJTb3VyY2UsIG9wdF91cmwpIHsKKyAgYWRkU2hhZGVyU291cmNlKGVsZW1lbnQs
IGxhYmVsLCBzaGFkZXJTb3VyY2UsIG9wdF91cmwpOworCisgIHZhciBkZWJ1Z1NoYWRlcnMgPSBn
bC5nZXRFeHRlbnNpb24oJ1dFQkdMX2RlYnVnX3NoYWRlcnMnKTsKKyAgaWYgKGRlYnVnU2hhZGVy
cyAmJiBzaGFkZXIpIHsKKyAgICB2YXIgdHJhbnNsYXRlZFNvdXJjZSA9IGRlYnVnU2hhZGVycy5n
ZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKHNoYWRlcik7CisgICAgaWYgKHRyYW5zbGF0ZWRTb3Vy
Y2UgIT0gJycpIHsKKyAgICAgIGFkZFNoYWRlclNvdXJjZShlbGVtZW50LCBsYWJlbCArICcgdHJh
bnNsYXRlZCBmb3IgZHJpdmVyJywgdHJhbnNsYXRlZFNvdXJjZSk7CisgICAgfQorICB9Cit9Owor
CisvKioKKyAqIFNlbmRzIHNoYWRlciBpbmZvcm1hdGlvbiB0byB0aGUgc2VydmVyIHRvIGJlIGR1
bXBlZCBpbnRvIHRleHQgZmlsZXMKKyAqIHdoZW4gdGVzdHMgYXJlIHJ1biBmcm9tIHdpdGhpbiB0
aGUgdGVzdC1ydW5uZXIgaGFybmVzcy4KKyAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0
fSBnbCBUaGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwgVVJMIG9mIGN1cnJlbnQuCisgKiBAcGFyYW0ge3N0cmluZ30gcGFzc01zZyBUZXN0IGRl
c2NyaXB0aW9uLgorICogQHBhcmFtIHtvYmplY3R9IHZJbmZvIE9iamVjdCBjb250YWluaW5nIHZl
cnRleCBzaGFkZXIgaW5mb3JtYXRpb24uCisgKiBAcGFyYW0ge29iamVjdH0gZkluZm8gT2JqZWN0
IGNvbnRhaW5pbmcgZnJhZ21lbnQgc2hhZGVyIGluZm9ybWF0aW9uLgorICovCit2YXIgZHVtcFNo
YWRlcnNJbmZvID0gZnVuY3Rpb24oZ2wsIHVybCwgcGFzc01zZywgdkluZm8sIGZJbmZvKSB7Cisg
IHZhciBzaGFkZXJJbmZvID0ge307CisgIHNoYWRlckluZm8udXJsID0gdXJsOworICBzaGFkZXJJ
bmZvLnRlc3REZXNjcmlwdGlvbiA9IHBhc3NNc2c7CisgIHNoYWRlckluZm8udkxhYmVsID0gdklu
Zm8ubGFiZWw7CisgIHNoYWRlckluZm8udlNob3VsZENvbXBpbGUgPSB2SW5mby5zaGFkZXJTdWNj
ZXNzOworICBzaGFkZXJJbmZvLnZTb3VyY2UgPSB2SW5mby5zb3VyY2U7CisgIHNoYWRlckluZm8u
ZkxhYmVsID0gZkluZm8ubGFiZWw7CisgIHNoYWRlckluZm8uZlNob3VsZENvbXBpbGUgPSBmSW5m
by5zaGFkZXJTdWNjZXNzOworICBzaGFkZXJJbmZvLmZTb3VyY2UgPSBmSW5mby5zb3VyY2U7Cisg
IHNoYWRlckluZm8udlRyYW5zbGF0ZWRTb3VyY2UgPSBudWxsOworICBzaGFkZXJJbmZvLmZUcmFu
c2xhdGVkU291cmNlID0gbnVsbDsKKyAgdmFyIGRlYnVnU2hhZGVycyA9IGdsLmdldEV4dGVuc2lv
bignV0VCR0xfZGVidWdfc2hhZGVycycpOworICBpZiAoZGVidWdTaGFkZXJzKSB7CisgICAgaWYg
KHZJbmZvLnNoYWRlcikKKyAgICAgIHNoYWRlckluZm8udlRyYW5zbGF0ZWRTb3VyY2UgPSBkZWJ1
Z1NoYWRlcnMuZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZSh2SW5mby5zaGFkZXIpOworICAgIGlm
IChmSW5mby5zaGFkZXIpCisgICAgICBzaGFkZXJJbmZvLmZUcmFuc2xhdGVkU291cmNlID0gZGVi
dWdTaGFkZXJzLmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoZkluZm8uc2hhZGVyKTsKKyAgfQor
CisgIHZhciBkdW1wU2hhZGVySW5mb1JlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAg
ZHVtcFNoYWRlckluZm9SZXF1ZXN0Lm9wZW4oJ1BPU1QnLCAiL2R1bXBTaGFkZXJJbmZvIiwgdHJ1
ZSk7CisgIGR1bXBTaGFkZXJJbmZvUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5
cGUiLCAidGV4dC9wbGFpbiIpOworICBkdW1wU2hhZGVySW5mb1JlcXVlc3Quc2VuZChKU09OLnN0
cmluZ2lmeShzaGFkZXJJbmZvKSk7Cit9OworCisvLyBBZGQgeW91ciBwcmVmaXggaGVyZS4KK3Zh
ciBicm93c2VyUHJlZml4ZXMgPSBbCisgICIiLAorICAiTU9aXyIsCisgICJPUF8iLAorICAiV0VC
S0lUXyIKK107CisKKy8qKgorICogR2l2ZW4gYW4gZXh0ZW5zaW9uIG5hbWUgbGlrZSBXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfczN0YworICogcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgc3VwcG9y
dGVkIHZlcnNpb24gZXh0ZW5zaW9uLCBsaWtlCisgKiBXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90
ZXR1cmVfczN0YworICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBleHRlbnNpb24gdG8g
bG9vayBmb3IuCisgKiBAcmV0dXJuIHtzdHJpbmd9IG5hbWUgb2YgZXh0ZW5zaW9uIGZvdW5kIG9y
IHVuZGVmaW5lZCBpZiBub3QKKyAqICAgICBmb3VuZC4KKyAqLwordmFyIGdldFN1cHBvcnRlZEV4
dGVuc2lvbldpdGhLbm93blByZWZpeGVzID0gZnVuY3Rpb24oZ2wsIG5hbWUpIHsKKyAgdmFyIHN1
cHBvcnRlZCA9IGdsLmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKTsKKyAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IGJyb3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgcHJlZml4ZWRO
YW1lID0gYnJvd3NlclByZWZpeGVzW2lpXSArIG5hbWU7CisgICAgaWYgKHN1cHBvcnRlZC5pbmRl
eE9mKHByZWZpeGVkTmFtZSkgPj0gMCkgeworICAgICAgcmV0dXJuIHByZWZpeGVkTmFtZTsKKyAg
ICB9CisgIH0KK307CisKKy8qKgorICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGds
IFRoZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IG5h
bWUgTmFtZSBvZiBleHRlbnNpb24gdG8gbG9vayBmb3IuCisgKiBAcGFyYW0ge2Jvb2xlYW59IGV4
dGVuc2lvbkVuYWJsZWQgVHJ1ZSBpZiB0aGUgZXh0ZW5zaW9uIHdhcyBlbmFibGVkIHN1Y2Nlc3Nm
dWxseSB2aWEgZ2wuZ2V0RXh0ZW5zaW9uKCkuCisgKi8KK3ZhciBydW5FeHRlbnNpb25TdXBwb3J0
ZWRUZXN0ID0gZnVuY3Rpb24oZ2wsIG5hbWUsIGV4dGVuc2lvbkVuYWJsZWQpIHsKKyAgdmFyIHBy
ZWZpeGVkTmFtZSA9IGdldFN1cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzKGdsLCBu
YW1lKTsKKyAgaWYgKHByZWZpeGVkTmFtZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICBpZiAoZXh0
ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgIHRlc3RQYXNzZWQobmFtZSArICIgbGlzdGVkIGFz
IHN1cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZCIpOworICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICB0ZXN0RmFpbGVkKG5hbWUgKyAiIGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdl
dEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAgIH0KKyAgfSBlbHNlIHsKKyAgICAgIGlmIChleHRl
bnNpb25FbmFibGVkKSB7CisgICAgICAgICAgdGVzdEZhaWxlZChuYW1lICsgIiBub3QgbGlzdGVk
IGFzIHN1cHBvcnRlZCBidXQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZCIpOworICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICB0ZXN0UGFzc2VkKG5hbWUgKyAiIG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVk
IGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwiKTsKKyAgICAgIH0KKyAg
fQorfQorCisvKioKKyAqIEdpdmVuIGFuIGV4dGVuc2lvbiBuYW1lIGxpa2UgV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMKKyAqIHJldHVybnMgdGhlIHN1cHBvcnRlZCB2ZXJzaW9uIGV4dGVu
c2lvbiwgbGlrZQorICogV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV0dXJlX3MzdGMKKyAqIEBw
YXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgZXh0ZW5zaW9uIHRvIGxvb2sgZm9yLgorICogQHJl
dHVybiB7V2ViR0xFeHRlbnNpb259IFRoZSBleHRlbnNpb24gb3IgdW5kZWZpbmVkIGlmIG5vdAor
ICogICAgIGZvdW5kLgorICovCit2YXIgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMgPSBm
dW5jdGlvbihnbCwgbmFtZSkgeworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZp
eGVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJlZml4
ZXNbaWldICsgbmFtZTsKKyAgICB2YXIgZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKHByZWZpeGVkTmFt
ZSk7CisgICAgaWYgKGV4dCkgeworICAgICAgcmV0dXJuIGV4dDsKKyAgICB9CisgIH0KK307CisK
Ky8qKgorICogUmV0dXJucyBwb3NzaWJsZSBwcmVmaXhlZCB2ZXJzaW9ucyBvZiBhbiBleHRlbnNp
b24ncyBuYW1lLgorICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBleHRlbnNpb24uIE1h
eSBhbHJlYWR5IGluY2x1ZGUgYSBwcmVmaXguCisgKiBAcmV0dXJuIHtBcnJheS48c3RyaW5nPn0g
VmFyaWF0aW9ucyBvZiB0aGUgZXh0ZW5zaW9uIG5hbWUgd2l0aCBrbm93bgorICogICAgIGJyb3dz
ZXIgcHJlZml4ZXMuCisgKi8KK3ZhciBnZXRFeHRlbnNpb25QcmVmaXhlZE5hbWVzID0gZnVuY3Rp
b24obmFtZSkgeworICB2YXIgdW5wcmVmaXggPSBmdW5jdGlvbihuYW1lKSB7CisgICAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IGJyb3dzZXJQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgIGlm
IChicm93c2VyUHJlZml4ZXNbaWldLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICBuYW1lLnN1YnN0
cmluZygwLCBicm93c2VyUHJlZml4ZXNbaWldLmxlbmd0aCkudG9Mb3dlckNhc2UoKSA9PT0KKyAg
ICAgICAgICBicm93c2VyUHJlZml4ZXNbaWldLnRvTG93ZXJDYXNlKCkpIHsKKyAgICAgICAgcmV0
dXJuIG5hbWUuc3Vic3RyaW5nKGJyb3dzZXJQcmVmaXhlc1tpaV0ubGVuZ3RoKTsKKyAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIG5hbWU7CisgIH0KKworICB2YXIgdW5wcmVmaXhlZCA9IHVucHJl
Zml4KG5hbWUpOworCisgIHZhciB2YXJpYXRpb25zID0gW107CisgIGZvciAodmFyIGlpID0gMDsg
aWkgPCBicm93c2VyUHJlZml4ZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyaWF0aW9ucy5wdXNo
KGJyb3dzZXJQcmVmaXhlc1tpaV0gKyB1bnByZWZpeGVkKTsKKyAgfQorCisgIHJldHVybiB2YXJp
YXRpb25zOworfTsKKwordmFyIHJlcGxhY2VSRSA9IC9cJFwoKFx3KylcKS9nOworCisvKioKKyAq
IFJlcGxhY2VzIHN0cmluZ3Mgd2l0aCBwcm9wZXJ0eSB2YWx1ZXMuCisgKiBHaXZlbiBhIHN0cmlu
ZyBsaWtlICJoZWxsbyAkKGZpcnN0KSAkKGxhc3QpIiBhbmQgYW4gb2JqZWN0CisgKiBsaWtlIHtm
aXJzdDoiSm9obiIsIGxhc3Q6IlNtaXRoIn0gd2lsbCByZXR1cm4KKyAqICJoZWxsbyBKb2huIFNt
aXRoIi4KKyAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgU3RyaW5nIHRvIGRvIHJlcGxhY2VtZW50cyBp
bi4KKyAqIEBwYXJhbSB7Li4ufSAxIG9yIG1vcmUgb2JqZWN0cyBjb250YWluaW5nIHByb3BlcnRp
ZXMuCisgKi8KK3ZhciByZXBsYWNlUGFyYW1zID0gZnVuY3Rpb24oc3RyKSB7CisgIHZhciBhcmdz
ID0gYXJndW1lbnRzOworICByZXR1cm4gc3RyLnJlcGxhY2UocmVwbGFjZVJFLCBmdW5jdGlvbihz
dHIsIHAxLCBvZmZzZXQsIHMpIHsKKyAgICBmb3IgKHZhciBpaSA9IDE7IGlpIDwgYXJncy5sZW5n
dGg7ICsraWkpIHsKKyAgICAgIGlmIChhcmdzW2lpXVtwMV0gIT09IHVuZGVmaW5lZCkgeworICAg
ICAgICByZXR1cm4gYXJnc1tpaV1bcDFdOworICAgICAgfQorICAgIH0KKyAgICB0aHJvdyAidW5r
bm93biBzdHJpbmcgcGFyYW0gJyIgKyBwMSArICInIjsKKyAgfSk7Cit9OworCit2YXIgdXBwZXJD
YXNlRmlyc3RMZXR0ZXIgPSBmdW5jdGlvbihzdHIpIHsKKyAgcmV0dXJuIHN0ci5zdWJzdHJpbmco
MCwgMSkudG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHJpbmcoMSk7Cit9OworCisvKioKKyAqIEdl
dHMgYSBwcmVmaXhlZCBwcm9wZXJ0eS4gRm9yIGV4YW1wbGUsCisgKgorICogICAgIHZhciBmbiA9
IGdldFByZWZpeGVkUHJvcGVydHkoCisgKiAgICAgICAgd2luZG93LAorICogICAgICAgICJyZXF1
ZXN0QW5pbWF0aW9uRnJhbWUiKTsKKyAqCisgKiBXaWxsIHJldHVybiBlaXRoZXI6CisgKiAgICAi
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSIsCisgKiAgICAid2luZG93Lm9SZXF1ZXN0QW5p
bWF0aW9uRnJhbWUiLAorICogICAgIndpbmRvdy5tc1JlcXVlc3RBbmltYXRpb25GcmFtZSIsCisg
KiAgICAid2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSIsCisgKiAgICAid2luZG93Lndl
YktpdFJlcXVlc3RBbmltYXRpb25GcmFtZSIsCisgKiAgICB1bmRlZmluZWQKKyAqCisgKiB0aGUg
bm9uLXByZWZpeGVkIGZ1bmN0aW9uIGlzIHRyaWVkIGZpcnN0LgorICovCit2YXIgcHJvcGVydHlQ
cmVmaXhlcyA9IFsiIiwgIm1veiIsICJtcyIsICJvIiwgIndlYmtpdCJdOwordmFyIGdldFByZWZp
eGVkUHJvcGVydHkgPSBmdW5jdGlvbihvYmosIHByb3BlcnR5TmFtZSkgeworICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgcHJvcGVydHlQcmVmaXhlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgcHJl
Zml4ID0gcHJvcGVydHlQcmVmaXhlc1tpaV07CisgICAgdmFyIG5hbWUgPSBwcmVmaXggKyBwcm9w
ZXJ0eU5hbWU7CisgICAgbG9nKG5hbWUpOworICAgIHZhciBwcm9wZXJ0eSA9IG9ialtuYW1lXTsK
KyAgICBpZiAocHJvcGVydHkpIHsKKyAgICAgIHJldHVybiBwcm9wZXJ0eTsKKyAgICB9CisgICAg
aWYgKGlpID09IDApIHsKKyAgICAgIHByb3BlcnR5TmFtZSA9IHVwcGVyQ2FzZUZpcnN0TGV0dGVy
KHByb3BlcnR5TmFtZSk7CisgICAgfQorICB9CisgIHJldHVybiB1bmRlZmluZWQ7Cit9OworCit2
YXIgX3JlcXVlc3RBbmltRnJhbWU7CisKKy8qKgorICogUHJvdmlkZXMgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lIGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuCisgKi8KK3ZhciByZXF1ZXN0QW5pbUZyYW1l
ID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKKyAgaWYgKCFfcmVxdWVzdEFuaW1GcmFtZSkgeworICAg
IF9yZXF1ZXN0QW5pbUZyYW1lID0gZ2V0UHJlZml4ZWRQcm9wZXJ0eSh3aW5kb3csICJyZXF1ZXN0
QW5pbWF0aW9uRnJhbWUiKSB8fAorICAgICAgZnVuY3Rpb24oY2FsbGJhY2ssIGVsZW1lbnQpIHsK
KyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCAxMDAwIC8gNzApOwor
ICAgICAgfTsKKyAgfQorICBfcmVxdWVzdEFuaW1GcmFtZS5jYWxsKHdpbmRvdywgY2FsbGJhY2sp
OworfTsKKwordmFyIF9jYW5jZWxBbmltRnJhbWU7CisKKy8qKgorICogUHJvdmlkZXMgY2FuY2Vs
QW5pbWF0aW9uRnJhbWUgaW4gYSBjcm9zcyBicm93c2VyIHdheS4KKyAqLwordmFyIGNhbmNlbEFu
aW1GcmFtZSA9IGZ1bmN0aW9uKHJlcXVlc3QpIHsKKyAgaWYgKCFfY2FuY2VsQW5pbUZyYW1lKSB7
CisgICAgX2NhbmNlbEFuaW1GcmFtZSA9IGdldFByZWZpeGVkUHJvcGVydHkod2luZG93LCAiY2Fu
Y2VsQW5pbWF0aW9uRnJhbWUiKSB8fAorICAgICAgd2luZG93LmNsZWFyVGltZW91dDsKKyAgfQor
ICBfY2FuY2VsQW5pbUZyYW1lLmNhbGwod2luZG93LCByZXF1ZXN0KTsKK307CisKKy8qKgorICog
UHJvdmlkZXMgcmVxdWVzdEZ1bGxTY3JlZW4gaW4gYSBjcm9zcyBicm93c2VyIHdheS4KKyAqLwor
dmFyIHJlcXVlc3RGdWxsU2NyZWVuID0gZnVuY3Rpb24oZWxlbWVudCkgeworICB2YXIgZm4gPSBn
ZXRQcmVmaXhlZFByb3BlcnR5KGVsZW1lbnQsICJyZXF1ZXN0RnVsbFNjcmVlbiIpOworICBpZiAo
Zm4pIHsKKyAgICBmbi5jYWxsKGVsZW1lbnQpOworICB9Cit9OworCisvKioKKyAqIFByb3ZpZGVz
IGNhbmNlbEZ1bGxTY3JlZW4gaW4gYSBjcm9zcyBicm93c2VyIHdheS4KKyAqLwordmFyIGNhbmNl
bEZ1bGxTY3JlZW4gPSBmdW5jdGlvbigpIHsKKyAgdmFyIGZuID0gZ2V0UHJlZml4ZWRQcm9wZXJ0
eShkb2N1bWVudCwgImNhbmNlbEZ1bGxTY3JlZW4iKTsKKyAgaWYgKGZuKSB7CisgICAgZm4uY2Fs
bChkb2N1bWVudCk7CisgIH0KK307CisKK3ZhciBmdWxsU2NyZWVuU3RhdGVOYW1lOworKGZ1bmN0
aW9uKCkgeworICB2YXIgZnVsbFNjcmVlblN0YXRlTmFtZXMgPSBbCisgICAgImlzRnVsbFNjcmVl
biIsCisgICAgImZ1bGxTY3JlZW4iCisgIF07CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBmdWxs
U2NyZWVuU3RhdGVOYW1lcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgcHJvcGVydHlOYW1lID0g
ZnVsbFNjcmVlblN0YXRlTmFtZXNbaWldOworICAgIGZvciAodmFyIGpqID0gMDsgamogPCBwcm9w
ZXJ0eVByZWZpeGVzLmxlbmd0aDsgKytqaikgeworICAgICAgdmFyIHByZWZpeCA9IHByb3BlcnR5
UHJlZml4ZXNbampdOworICAgICAgaWYgKHByZWZpeC5sZW5ndGgpIHsKKyAgICAgICAgcHJvcGVy
dHlOYW1lID0gdXBwZXJDYXNlRmlyc3RMZXR0ZXIocHJvcGVydHlOYW1lKTsKKyAgICAgICAgZnVs
bFNjcmVlblN0YXRlTmFtZSA9IHByZWZpeCArIHByb3BlcnR5TmFtZTsKKyAgICAgICAgaWYgKGRv
Y3VtZW50W2Z1bGxTY3JlZW5TdGF0ZU5hbWVdICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgZnVsbFNjcmVlblN0YXRlTmFt
ZSA9IHVuZGVmaW5lZDsKKyAgfQorfSgpKTsKKworLyoqCisgKiBAcmV0dXJuIHtib29sZWFufSBU
cnVlIGlmIGZ1bGxzY3JlZW4gbW9kZSBpcyBhY3RpdmUuCisgKi8KK3ZhciBnZXRGdWxsU2NyZWVu
U3RhdGUgPSBmdW5jdGlvbigpIHsKKyAgbG9nKCJmdWxsc2NyZWVuc3RhdGVuYW1lOiIgKyBmdWxs
U2NyZWVuU3RhdGVOYW1lKTsKKyAgbG9nKGRvY3VtZW50W2Z1bGxTY3JlZW5TdGF0ZU5hbWVdKTsK
KyAgcmV0dXJuIGRvY3VtZW50W2Z1bGxTY3JlZW5TdGF0ZU5hbWVdOworfTsKKworLyoqCisgKiBA
cGFyYW0geyFIVE1MRWxlbWVudH0gZWxlbWVudCBUaGUgZWxlbWVudCB0byBnbyBmdWxsc2NyZWVu
LgorICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbGVhbil9IGNhbGxiYWNrIEEgZnVuY3Rpb24gdGhh
dCB3aWxsIGJlIGNhbGxlZAorICogICAgICAgIHdoZW4gZW50ZXJpbmcvZXhpdGluZyBmdWxsc2Ny
ZWVuLiBJdCBpcyBwYXNzZWQgdHJ1ZSBpZgorICogICAgICAgIGVudGVyaW5nIGZ1bGxzY3JlZW4s
IGZhbHNlIGlmIGV4aXRpbmcuCisgKi8KK3ZhciBvbkZ1bGxTY3JlZW5DaGFuZ2UgPSBmdW5jdGlv
bihlbGVtZW50LCBjYWxsYmFjaykgeworICBwcm9wZXJ0eVByZWZpeGVzLmZvckVhY2goZnVuY3Rp
b24ocHJlZml4KSB7CisgICAgdmFyIGV2ZW50TmFtZSA9IHByZWZpeCArICJmdWxsc2NyZWVuY2hh
bmdlIjsKKyAgICBsb2coImFkZGV2ZW50OiAiICsgZXZlbnROYW1lKTsKKyAgICBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIGxvZygi
ZXZlbnQ6ICIgKyBldmVudE5hbWUpOworICAgICAgY2FsbGJhY2soZ2V0RnVsbFNjcmVlblN0YXRl
KCkpOworICAgIH0pOworICB9KTsKK307CisKKy8qKgorICogQHBhcmFtIHshc3RyaW5nfSBidXR0
b25JZCBUaGUgaWQgb2YgdGhlIGJ1dHRvbiB0aGF0IHdpbGwgdG9nZ2xlIGZ1bGxzY3JlZW4KKyAq
ICAgICAgICBtb2RlLgorICogQHBhcmFtIHshc3RyaW5nfSBmdWxsc2NyZWVuSWQgVGhlIGlkIG9m
IHRoZSBlbGVtZW50IHRvIGdvIGZ1bGxzY3JlZW4uCisgKiBAcGFyYW0geyFmdW5jdGlvbihib29s
ZWFuKX0gY2FsbGJhY2sgQSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkCisgKiAgICAgICAg
d2hlbiBlbnRlcmluZy9leGl0aW5nIGZ1bGxzY3JlZW4uIEl0IGlzIHBhc3NlZCB0cnVlIGlmCisg
KiAgICAgICAgZW50ZXJpbmcgZnVsbHNjcmVlbiwgZmFsc2UgaWYgZXhpdGluZy4KKyAqIEByZXR1
cm4ge2Jvb2xlYW59IFRydWUgaWYgZnVsbHNjcmVlbiBtb2RlIGlzIHN1cHBvcnRlZC4KKyAqLwor
dmFyIHNldHVwRnVsbHNjcmVlbiA9IGZ1bmN0aW9uKGJ1dHRvbklkLCBmdWxsc2NyZWVuSWQsIGNh
bGxiYWNrKSB7CisgIGlmICghZnVsbFNjcmVlblN0YXRlTmFtZSkgeworICAgIHJldHVybiBmYWxz
ZTsKKyAgfQorCisgIHZhciBmdWxsc2NyZWVuRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGZ1bGxzY3JlZW5JZCk7CisgIG9uRnVsbFNjcmVlbkNoYW5nZShmdWxsc2NyZWVuRWxlbWVu
dCwgY2FsbGJhY2spOworCisgIHZhciB0b2dnbGVGdWxsU2NyZWVuID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICBpZiAoZ2V0RnVsbFNjcmVlblN0YXRlKCkpIHsKKyAgICAgIGNhbmNlbEZ1bGxTY3Jl
ZW4oZnVsbHNjcmVlbkVsZW1lbnQpOworICAgIH0gZWxzZSB7CisgICAgICByZXF1ZXN0RnVsbFNj
cmVlbihmdWxsc2NyZWVuRWxlbWVudCk7CisgICAgfQorICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9OworCisgIHZhciBidXR0b25FbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSWQpOworICBidXR0b25FbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgdG9nZ2xlRnVsbFNjcmVlbik7CisKKyAgcmV0dXJuIHRydWU7Cit9
OworCisvKioKKyAqIFdhaXRzIGZvciB0aGUgYnJvd3NlciB0byBjb21wb3NpdGUgdGhlIHdlYiBw
YWdlLgorICogQHBhcmFtIHtmdW5jdGlvbigpfSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRvIGNhbGwg
YWZ0ZXIgY29tcG9zaXRpbmcgaGFzIHRha2VuCisgKiAgICAgICAgcGxhY2UuCisgKi8KK3ZhciB3
YWl0Rm9yQ29tcG9zaXRlID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKKyAgdmFyIGZyYW1lcyA9IDU7
CisgIHZhciBjb3VudERvd24gPSBmdW5jdGlvbigpIHsKKyAgICBpZiAoZnJhbWVzID09IDApIHsK
KyAgICAgIC8vIFRPRE8oa2JyKTogdW5pZnkgd2l0aCBqcy10ZXN0LXByZS5qcyBhbmQgZW5hYmxl
IHRoZXNlIHdpdGgKKyAgICAgIC8vIHZlcmJvc2UgbG9nZ2luZy4KKyAgICAgIC8vIGxvZygid2Fp
dEZvckNvbXBvc2l0ZTogY2FsbGJhY2siKTsKKyAgICAgIGNhbGxiYWNrKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgIC8vIGxvZygid2FpdEZvckNvbXBvc2l0ZTogY291bnRkb3duKCIgKyBmcmFtZXMg
KyAiKSIpOworICAgICAgLS1mcmFtZXM7CisgICAgICByZXF1ZXN0QW5pbUZyYW1lLmNhbGwod2lu
ZG93LCBjb3VudERvd24pOworICAgIH0KKyAgfTsKKyAgY291bnREb3duKCk7Cit9OworCit2YXIg
c2V0WmVyb1RpbWVvdXQgPSAoZnVuY3Rpb24oKSB7CisgIC8vIFNlZSBodHRwczovL2RiYXJvbi5v
cmcvbG9nLzIwMTAwMzA5LWZhc3Rlci10aW1lb3V0cworCisgIHZhciB0aW1lb3V0cyA9IFtdOwor
ICB2YXIgbWVzc2FnZU5hbWUgPSAiemVyby10aW1lb3V0LW1lc3NhZ2UiOworCisgIC8vIExpa2Ug
c2V0VGltZW91dCwgYnV0IG9ubHkgdGFrZXMgYSBmdW5jdGlvbiBhcmd1bWVudC4gIFRoZXJlJ3MK
KyAgLy8gbm8gdGltZSBhcmd1bWVudCAoYWx3YXlzIHplcm8pIGFuZCBubyBhcmd1bWVudHMgKHlv
dSBoYXZlIHRvCisgIC8vIHVzZSBhIGNsb3N1cmUpLgorICBmdW5jdGlvbiBzZXRaZXJvVGltZW91
dChmbikgeworICAgICAgdGltZW91dHMucHVzaChmbik7CisgICAgICB3aW5kb3cucG9zdE1lc3Nh
Z2UobWVzc2FnZU5hbWUsICIqIik7CisgIH0KKworICBmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICBpZiAoZXZlbnQuc291cmNlID09IHdpbmRvdyAmJiBldmVudC5kYXRhID09
IG1lc3NhZ2VOYW1lKSB7CisgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAg
ICAgICAgaWYgKHRpbWVvdXRzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgdmFyIGZuID0g
dGltZW91dHMuc2hpZnQoKTsKKyAgICAgICAgICAgICAgZm4oKTsKKyAgICAgICAgICB9CisgICAg
ICB9CisgIH0KKworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGhhbmRsZU1l
c3NhZ2UsIHRydWUpOworCisgIHJldHVybiBzZXRaZXJvVGltZW91dDsKK30pKCk7CisKK2Z1bmN0
aW9uIGRpc3BhdGNoUHJvbWlzZShmbikgeworICByZXR1cm4gbmV3IFByb21pc2UoKGZuX3Jlc29s
dmUsIGZuX3JlamVjdCkgPT4geworICAgIHNldFplcm9UaW1lb3V0KCgpID0+IHsKKyAgICAgIGxl
dCB2YWw7CisgICAgICBpZiAoZm4pIHsKKyAgICAgICAgdmFsID0gZm4oKTsKKyAgICAgIH0KKyAg
ICAgIGZuX3Jlc29sdmUodmFsKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKKy8qKgorICogUnVucyBh
biBhcnJheSBvZiBmdW5jdGlvbnMsIHlpZWxkaW5nIHRvIHRoZSBicm93c2VyIGJldHdlZW4gZWFj
aCBzdGVwLgorICogSWYgeW91IHdhbnQgdG8ga25vdyB3aGVuIGFsbCB0aGUgc3RlcHMgYXJlIGZp
bmlzaGVkIGFkZCBhIGxhc3Qgc3RlcC4KKyAqIEBwYXJhbSB7IUFycmF5LjxmdW5jdGlvbigpOiB2
b2lkPn0gc3RlcHMgQXJyYXkgb2YgZnVuY3Rpb25zLgorICovCit2YXIgcnVuU3RlcHMgPSBmdW5j
dGlvbihzdGVwcykgeworICBpZiAoIXN0ZXBzLmxlbmd0aCkgeworICAgIHJldHVybjsKKyAgfQor
CisgIC8vIGNvcHkgc3RlcHMgc28gdGhleSBjYW4ndCBiZSBtb2RpZmVkLgorICB2YXIgc3RlcHNU
b1J1biA9IHN0ZXBzLnNsaWNlKCk7CisgIHZhciBjdXJyZW50U3RlcCA9IDA7CisgIHZhciBydW5O
ZXh0U3RlcCA9IGZ1bmN0aW9uKCkgeworICAgIHN0ZXBzVG9SdW5bY3VycmVudFN0ZXArK10oKTsK
KyAgICBpZiAoY3VycmVudFN0ZXAgPCBzdGVwc1RvUnVuLmxlbmd0aCkgeworICAgICAgc2V0VGlt
ZW91dChydW5OZXh0U3RlcCwgMSk7CisgICAgfQorICB9OworICBydW5OZXh0U3RlcCgpOworfTsK
KworLyoqCisgKiBTdGFydHMgcGxheWluZyBhIHZpZGVvIGFuZCB3YWl0cyBmb3IgaXQgdG8gYmUg
Y29uc3VtYWJsZS4KKyAqIEBwYXJhbSB7IUhUTUxWaWRlb0VsZW1lbnR9IHZpZGVvIEFuIEhUTUw1
IFZpZGVvIGVsZW1lbnQuCisgKiBAcGFyYW0geyFmdW5jdGlvbighSFRNTFZpZGVvRWxlbWVudCk6
IHZvaWR9IGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbgorICogICAgICAgIHZpZGVvIGlz
IHJlYWR5LgorICovCithc3luYyBmdW5jdGlvbiBzdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8o
dmlkZW8sIGNhbGxiYWNrKSB7CisgIGlmICh2aWRlby5lcnJvcikgeworICAgIHRlc3RGYWlsZWQo
J1ZpZGVvIGZhaWxlZCB0byBsb2FkOiAnICsgdmlkZW8uZXJyb3IpOworICAgIHJldHVybjsKKyAg
fQorCisgIHZpZGVvLmxvb3AgPSB0cnVlOworICB2aWRlby5tdXRlZCA9IHRydWU7CisgIC8vIFNl
ZSB3aGV0aGVyIHNldHRpbmcgdGhlIHByZWxvYWQgZmxhZyBkZS1mbGFrZXMgdmlkZW8tcmVsYXRl
ZCB0ZXN0cy4KKyAgdmlkZW8ucHJlbG9hZCA9ICdhdXRvJzsKKworICB0cnkgeworICAgIGF3YWl0
IHZpZGVvLnBsYXkoKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoJ3ZpZGVvLnBs
YXkgZmFpbGVkOiAnICsgZSk7CisgICAgcmV0dXJuOworICB9CisKKyAgaWYgKHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2spIHsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShnbyA9PiB2aWRl
by5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKGdvKSk7CisgIH0KKworICBjYWxsYmFjayh2aWRl
byk7Cit9CisKK3ZhciBnZXRIb3N0ID0gZnVuY3Rpb24odXJsKSB7CisgIHVybCA9IHVybC5yZXBs
YWNlKCJcXCIsICIvIik7CisgIHZhciBwb3MgPSB1cmwuaW5kZXhPZigiOi8vIik7CisgIGlmIChw
b3MgPj0gMCkgeworICAgIHVybCA9IHVybC5zdWJzdHIocG9zICsgMyk7CisgIH0KKyAgdmFyIHBh
cnRzID0gdXJsLnNwbGl0KCcvJyk7CisgIHJldHVybiBwYXJ0c1swXTsKK30KKworLy8gVGhpcyBm
dW5jdGlvbiByZXR1cm5zIHRoZSBsYXN0IDIgd29yZHMgb2YgdGhlIGRvbWFpbiBvZiBhIFVSTAor
Ly8gVGhpcyBpcyBwcm9iYWJseSBub3QgdGhlIGNvcnJlY3QgY2hlY2sgYnV0IGl0IHdpbGwgZG8g
Zm9yIG5vdy4KK3ZhciBnZXRCYXNlRG9tYWluID0gZnVuY3Rpb24oaG9zdCkgeworICB2YXIgcGFy
dHMgPSBob3N0LnNwbGl0KCI6Iik7CisgIHZhciBob3N0bmFtZSA9IHBhcnRzWzBdOworICB2YXIg
cG9ydCA9IHBhcnRzWzFdIHx8ICI4MCI7CisgIHBhcnRzID0gaG9zdG5hbWUuc3BsaXQoIi4iKTsK
KyAgaWYocGFydHMubGVuZ3RoIDwgMikKKyAgICByZXR1cm4gaG9zdG5hbWUgKyAiOiIgKyBwb3J0
OworICB2YXIgdGxkID0gcGFydHNbcGFydHMubGVuZ3RoLTFdOworICB2YXIgZG9tYWluID0gcGFy
dHNbcGFydHMubGVuZ3RoLTJdOworICByZXR1cm4gZG9tYWluICsgIi4iICsgdGxkICsgIjoiICsg
cG9ydDsKK30KKwordmFyIHJ1bm5pbmdPbkxvY2FsaG9zdCA9IGZ1bmN0aW9uKCkgeworICBsZXQg
aG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CisgIHJldHVybiBob3N0bmFtZSA9
PSAibG9jYWxob3N0IiB8fAorICAgIGhvc3RuYW1lID09ICIxMjcuMC4wLjEiIHx8CisgICAgaG9z
dG5hbWUgPT0gIjo6MSI7Cit9CisKK3ZhciBnZXRMb2NhbENyb3NzT3JpZ2luID0gZnVuY3Rpb24o
KSB7CisgIHZhciBkb21haW47CisgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5pbmRleE9mKCJs
b2NhbGhvc3QiKSAhPSAtMSkgeworICAgIC8vIFRPRE8oa2JyKTogZmlndXJlIG91dCB3aGV0aGVy
IHRvIHVzZSBhbiBJUHY2IGxvb3BiYWNrIGFkZHJlc3MuCisgICAgZG9tYWluID0gIjEyNy4wLjAu
MSI7CisgIH0gZWxzZSB7CisgICAgZG9tYWluID0gImxvY2FsaG9zdCI7CisgIH0KKworICB2YXIg
cG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0IHx8ICI4MCI7CisgIHJldHVybiB3aW5kb3cubG9j
YXRpb24ucHJvdG9jb2wgKyAiLy8iICsgZG9tYWluICsgIjoiICsgcG9ydAorfQorCit2YXIgZ2V0
UmVsYXRpdmVQYXRoID0gZnVuY3Rpb24ocGF0aCkgeworICB2YXIgcmVscGFydHMgPSB3aW5kb3cu
bG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoIi8iKTsKKyAgcmVscGFydHMucG9wKCk7IC8vIFBvcCBv
ZmYgZmlsZW5hbWUKKyAgdmFyIHBhdGhwYXJ0cyA9IHBhdGguc3BsaXQoIi8iKTsKKworICB2YXIg
aTsKKyAgZm9yIChpID0gMDsgaSA8IHBhdGhwYXJ0cy5sZW5ndGg7ICsraSkgeworICAgIHN3aXRj
aCAocGF0aHBhcnRzW2ldKSB7CisgICAgICBjYXNlICIiOiBicmVhazsKKyAgICAgIGNhc2UgIi4i
OiBicmVhazsKKyAgICAgIGNhc2UgIi4uIjoKKyAgICAgICAgcmVscGFydHMucG9wKCk7CisgICAg
ICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmVscGFydHMucHVzaChwYXRocGFy
dHNbaV0pOworICAgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICByZXR1cm4gcmVscGFydHMu
am9pbigiLyIpOworfQorCithc3luYyBmdW5jdGlvbiBsb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcs
IHdlYlVybCwgbG9jYWxVcmwpIHsKKyAgaWYgKHJ1bm5pbmdPbkxvY2FsaG9zdCgpKSB7CisgICAg
aW1nLnNyYyA9IGdldExvY2FsQ3Jvc3NPcmlnaW4oKSArIGdldFJlbGF0aXZlUGF0aChsb2NhbFVy
bCk7CisgICAgY29uc29sZS5sb2coJ1tsb2FkQ3Jvc3NPcmlnaW5JbWFnZV0nLCAnICB0cnlpbmcn
LCBpbWcuc3JjKTsKKyAgICBhd2FpdCBpbWcuZGVjb2RlKCk7CisgICAgcmV0dXJuOworICB9CisK
KyAgdHJ5IHsKKyAgICBpbWcuc3JjID0gZ2V0VXJsT3B0aW9ucygpLmltZ1VybCB8fCB3ZWJVcmw7
CisgICAgY29uc29sZS5sb2coJ1tsb2FkQ3Jvc3NPcmlnaW5JbWFnZV0nLCAndHJ5aW5nJywgaW1n
LnNyYyk7CisgICAgYXdhaXQgaW1nLmRlY29kZSgpOworICAgIHJldHVybjsKKyAgfSBjYXRjaCB7
fQorCisgIHRocm93ICdjcmVhdGVDcm9zc09yaWdpbkltYWdlIGZhaWxlZCc7Cit9CisKKy8qKgor
ICogQ29udmVydCBzUkdCIGNvbG9yIHRvIGxpbmVhciBjb2xvci4KKyAqIEBwYXJhbSB7IUFycmF5
LjxudW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gYmUgY29udmVydGVkLgorICogICAgICAgIFRo
ZSBhcnJheSBoYXMgNCBlbGVtZW50cywgZm9yIGV4YW1wbGUgW1IsIEcsIEIsIEFdLgorICogICAg
ICAgIHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcmV0
dXJuIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBiZSBjb252ZXJ0ZWQuCisg
KiAgICAgICAgVGhlIGFycmF5IGhhcyA0IGVsZW1lbnRzLCBmb3IgZXhhbXBsZSBbUiwgRywgQiwg
QV0uCisgKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1
NS4KKyAqLwordmFyIHNSR0JUb0xpbmVhciA9IGZ1bmN0aW9uKGNvbG9yKSB7CisgICAgcmV0dXJu
IFtzUkdCQ2hhbm5lbFRvTGluZWFyKGNvbG9yWzBdKSwKKyAgICAgICAgICAgIHNSR0JDaGFubmVs
VG9MaW5lYXIoY29sb3JbMV0pLAorICAgICAgICAgICAgc1JHQkNoYW5uZWxUb0xpbmVhcihjb2xv
clsyXSksCisgICAgICAgICAgICBjb2xvclszXV0KK30KKworLyoqCisgKiBDb252ZXJ0IGxpbmVh
ciBjb2xvciB0byBzUkdCIGNvbG9yLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9y
IFRoZSBjb2xvciB0byBiZSBjb252ZXJ0ZWQuCisgKiAgICAgICAgVGhlIGFycmF5IGhhcyA0IGVs
ZW1lbnRzLCBmb3IgZXhhbXBsZSBbUiwgRywgQiwgQV0uCisgKiAgICAgICAgd2hlcmUgZWFjaCBl
bGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEByZXR1cm4geyFBcnJheS48bnVt
YmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGJlIGNvbnZlcnRlZC4KKyAqICAgICAgICBUaGUgYXJy
YXkgaGFzIDQgZWxlbWVudHMsIGZvciBleGFtcGxlIFtSLCBHLCBCLCBBXS4KKyAqICAgICAgICB3
aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICovCit2YXIgbGlu
ZWFyVG9TUkdCID0gZnVuY3Rpb24oY29sb3IpIHsKKyAgICByZXR1cm4gW2xpbmVhckNoYW5uZWxU
b1NSR0IoY29sb3JbMF0pLAorICAgICAgICAgICAgbGluZWFyQ2hhbm5lbFRvU1JHQihjb2xvclsx
XSksCisgICAgICAgICAgICBsaW5lYXJDaGFubmVsVG9TUkdCKGNvbG9yWzJdKSwKKyAgICAgICAg
ICAgIGNvbG9yWzNdXQorfQorCitmdW5jdGlvbiBzUkdCQ2hhbm5lbFRvTGluZWFyKHZhbHVlKSB7
CisgICAgdmFsdWUgPSB2YWx1ZSAvIDI1NTsKKyAgICBpZiAodmFsdWUgPD0gMC4wNDA0NSkKKyAg
ICAgICAgdmFsdWUgPSB2YWx1ZSAvIDEyLjkyOworICAgIGVsc2UKKyAgICAgICAgdmFsdWUgPSBN
YXRoLnBvdygodmFsdWUgKyAwLjA1NSkgLyAxLjA1NSwgMi40KTsKKyAgICByZXR1cm4gTWF0aC50
cnVuYyh2YWx1ZSAqIDI1NSArIDAuNSk7Cit9CisKK2Z1bmN0aW9uIGxpbmVhckNoYW5uZWxUb1NS
R0IodmFsdWUpIHsKKyAgICB2YWx1ZSA9IHZhbHVlIC8gMjU1OworICAgIGlmICh2YWx1ZSA8PSAw
LjApIHsKKyAgICAgICAgdmFsdWUgPSAwLjA7CisgICAgfSBlbHNlIGlmICh2YWx1ZSA8IDAuMDAz
MTMwOCkgeworICAgICAgICB2YWx1ZSA9IHZhbHVlICogMTIuOTI7CisgICAgfSBlbHNlIGlmICh2
YWx1ZSA8IDEpIHsKKyAgICAgICAgdmFsdWUgPSBNYXRoLnBvdyh2YWx1ZSwgMC40MTY2NikgKiAx
LjA1NSAtIDAuMDU1OworICAgIH0gZWxzZSB7CisgICAgICAgIHZhbHVlID0gMS4wOworICAgIH0K
KyAgICByZXR1cm4gTWF0aC50cnVuYyh2YWx1ZSAqIDI1NSArIDAuNSk7Cit9CisKK2Z1bmN0aW9u
IGNvbXBhcmVQaXhlbHMoY21wLCByZWYsIHRvbGVyYW5jZSwgZGlmZikgeworICAgIGlmIChjbXAu
bGVuZ3RoICE9IHJlZi5sZW5ndGgpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiaW52YWxpZCBwaXhl
bCBzaXplLiIpOworICAgIH0KKworICAgIHZhciBjb3VudCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjbXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGRpZmYpIHsKKyAgICAgICAg
ICAgIGRpZmZbaSAqIDRdID0gMDsKKyAgICAgICAgICAgIGRpZmZbaSAqIDQgKyAxXSA9IDI1NTsK
KyAgICAgICAgICAgIGRpZmZbaSAqIDQgKyAyXSA9IDA7CisgICAgICAgICAgICBkaWZmW2kgKiA0
ICsgM10gPSAyNTU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKE1hdGguYWJzKGNtcFtpICogNF0g
LSByZWZbaSAqIDRdKSA+IHRvbGVyYW5jZSB8fAorICAgICAgICAgICAgTWF0aC5hYnMoY21wW2kg
KiA0ICsgMV0gLSByZWZbaSAqIDQgKyAxXSkgPiB0b2xlcmFuY2UgfHwKKyAgICAgICAgICAgIE1h
dGguYWJzKGNtcFtpICogNCArIDJdIC0gcmVmW2kgKiA0ICsgMl0pID4gdG9sZXJhbmNlIHx8Cisg
ICAgICAgICAgICBNYXRoLmFicyhjbXBbaSAqIDQgKyAzXSAtIHJlZltpICogNCArIDNdKSA+IHRv
bGVyYW5jZSkgeworICAgICAgICAgICAgaWYgKGNvdW50IDwgMTApIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQaXhlbCAiICsgaSArICI6IGV4cGVjdGVkICgiICsKKyAgICAgICAgICAg
ICAgICBbcmVmW2kgKiA0XSwgcmVmW2kgKiA0ICsgMV0sIHJlZltpICogNCArIDJdLCByZWZbaSAq
IDQgKyAzXV0gKyAiKSwgZ290ICgiICsKKyAgICAgICAgICAgICAgICBbY21wW2kgKiA0XSwgY21w
W2kgKiA0ICsgMV0sIGNtcFtpICogNCArIDJdLCBjbXBbaSAqIDQgKyAzXV0gKyAiKSIpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmIChkaWZmKSB7
CisgICAgICAgICAgICAgICAgZGlmZltpICogNF0gPSAyNTU7CisgICAgICAgICAgICAgICAgZGlm
ZltpICogNCArIDFdID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IHJldHVybiBjb3VudDsKK30KKworZnVuY3Rpb24gZGVzdHJveUNvbnRleHQoZ2wpIHsKKyAgY29u
c3QgZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKCdXRUJHTF9sb3NlX2NvbnRleHQnKTsKKyAgaWYgKGV4
dCkgeworICAgIGV4dC5sb3NlQ29udGV4dCgpOworICB9CisgIGdsLmNhbnZhcy53aWR0aCA9IDE7
CisgIGdsLmNhbnZhcy5oZWlnaHQgPSAxOworfQorCitmdW5jdGlvbiBkZXN0cm95QWxsQ29udGV4
dHMoKSB7CisgIGlmICghd2luZG93Ll93dHVfY29udGV4dHMpCisgICAgcmV0dXJuOworICBmb3Ig
KGNvbnN0IHggb2Ygd2luZG93Ll93dHVfY29udGV4dHMpIHsKKyAgICBkZXN0cm95Q29udGV4dCh4
KTsKKyAgfQorICB3aW5kb3cuX3d0dV9jb250ZXh0cyA9IFtdOworfQorCitmdW5jdGlvbiBkaXNw
bGF5SW1hZ2VEaWZmKGNtcCwgcmVmLCBkaWZmLCB3aWR0aCwgaGVpZ2h0KSB7CisgICAgdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCisgICAgdmFyIGNtcEltZyA9IGNy
ZWF0ZUltYWdlRnJvbVBpeGVsKGNtcCwgd2lkdGgsIGhlaWdodCk7CisgICAgdmFyIHJlZkltZyA9
IGNyZWF0ZUltYWdlRnJvbVBpeGVsKHJlZiwgd2lkdGgsIGhlaWdodCk7CisgICAgdmFyIGRpZmZJ
bWcgPSBjcmVhdGVJbWFnZUZyb21QaXhlbChkaWZmLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICB3dHUu
aW5zZXJ0SW1hZ2UoZGl2LCAiUmVmZXJlbmNlIiwgcmVmSW1nKTsKKyAgICB3dHUuaW5zZXJ0SW1h
Z2UoZGl2LCAiUmVzdWx0IiwgY21wSW1nKTsKKyAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAiRGlm
ZmVyZW5jZSIsIGRpZmZJbWcpOworCisgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpOworICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZGl2KTsKK30KKwor
ZnVuY3Rpb24gY3JlYXRlSW1hZ2VGcm9tUGl4ZWwoYnVmLCB3aWR0aCwgaGVpZ2h0KSB7CisgICAg
dmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgIGNhbnZh
cy53aWR0aCA9IHdpZHRoOworICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7CisgICAgdmFyIGN0
eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIHZhciBpbWdEYXRhID0gY3R4LmdldElt
YWdlRGF0YSgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
YnVmLmxlbmd0aDsgaSsrKQorICAgICAgICBpbWdEYXRhLmRhdGFbaV0gPSBidWZbaV07CisgICAg
Y3R4LnB1dEltYWdlRGF0YShpbWdEYXRhLCAwLCAwKTsKKyAgICB2YXIgaW1nID0gd3R1Lm1ha2VJ
bWFnZUZyb21DYW52YXMoY2FudmFzKTsKKyAgICByZXR1cm4gaW1nOworfQorCithc3luYyBmdW5j
dGlvbiBhd2FpdFRpbWVvdXQobXMpIHsKKyAgYXdhaXQgbmV3IFByb21pc2UocmVzID0+IHsKKyAg
ICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgIHJlcygpOworICAgIH0sIG1zKTsKKyAgfSk7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIGF3YWl0T3JUaW1lb3V0KHByb21pc2UsIG9wdF90aW1lb3V0X21z
KSB7CisgIGFzeW5jIGZ1bmN0aW9uIHRocm93T25UaW1lb3V0KG1zKSB7CisgICAgYXdhaXQgYXdh
aXRUaW1lb3V0KG1zKTsKKyAgICB0aHJvdyAndGltZW91dCc7CisgIH0KKworICBsZXQgdGltZW91
dF9tcyA9IG9wdF90aW1lb3V0X21zOworICBpZiAodGltZW91dF9tcyA9PT0gdW5kZWZpbmVkKQor
ICAgIHRpbWVvdXRfbXMgPSA1MDAwOworCisgIGF3YWl0IFByb21pc2UucmFjZShbcHJvbWlzZSwg
dGhyb3dPblRpbWVvdXQodGltZW91dF9tcyldKTsKK30KKwordmFyIEFQSSA9IHsKKyAgYWRkU2hh
ZGVyU291cmNlOiBhZGRTaGFkZXJTb3VyY2UsCisgIGFkZFNoYWRlclNvdXJjZXM6IGFkZFNoYWRl
clNvdXJjZXMsCisgIGNhbmNlbEFuaW1GcmFtZTogY2FuY2VsQW5pbUZyYW1lLAorICBjcmVhdGUz
RENvbnRleHQ6IGNyZWF0ZTNEQ29udGV4dCwKKyAgR0xFcnJvckV4Y2VwdGlvbjogR0xFcnJvckV4
Y2VwdGlvbiwKKyAgY3JlYXRlM0RDb250ZXh0V2l0aFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9y
OiBjcmVhdGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJvd3NPbkdMRXJyb3IsCisgIGNoZWNr
QXJlYUluQW5kT3V0OiBjaGVja0FyZWFJbkFuZE91dCwKKyAgY2hlY2tDYW52YXM6IGNoZWNrQ2Fu
dmFzLAorICBjaGVja0NhbnZhc1JlY3Q6IGNoZWNrQ2FudmFzUmVjdCwKKyAgY2hlY2tDYW52YXNS
ZWN0Q29sb3I6IGNoZWNrQ2FudmFzUmVjdENvbG9yLAorICBjaGVja0NhbnZhc1JlY3RzOiBjaGVj
a0NhbnZhc1JlY3RzLAorICBjaGVja0Zsb2F0QnVmZmVyOiBjaGVja0Zsb2F0QnVmZmVyLAorICBj
aGVja1RleHR1cmVTaXplOiBjaGVja1RleHR1cmVTaXplLAorICBjbGlwVG9SYW5nZTogY2xpcFRv
UmFuZ2UsCisgIGNyZWF0ZUNvbG9yZWRUZXh0dXJlOiBjcmVhdGVDb2xvcmVkVGV4dHVyZSwKKyAg
Y3JlYXRlUHJvZ3JhbTogY3JlYXRlUHJvZ3JhbSwKKyAgY2xlYXJBbmREcmF3VW5pdFF1YWQ6IGNs
ZWFyQW5kRHJhd1VuaXRRdWFkLAorICBjbGVhckFuZERyYXdJbmRleGVkUXVhZDogY2xlYXJBbmRE
cmF3SW5kZXhlZFF1YWQsCisgIGNvbXBhcmVQaXhlbHM6IGNvbXBhcmVQaXhlbHMsCisgIGRlc3Ry
b3lBbGxDb250ZXh0czogZGVzdHJveUFsbENvbnRleHRzLAorICBkZXN0cm95Q29udGV4dDogZGVz
dHJveUNvbnRleHQsCisgIGRpc3BhdGNoUHJvbWlzZTogZGlzcGF0Y2hQcm9taXNlLAorICBkaXNw
bGF5SW1hZ2VEaWZmOiBkaXNwbGF5SW1hZ2VEaWZmLAorICBkcmF3VW5pdFF1YWQ6IGRyYXdVbml0
UXVhZCwKKyAgZHJhd0luZGV4ZWRRdWFkOiBkcmF3SW5kZXhlZFF1YWQsCisgIGRyYXdVQnl0ZUNv
bG9yUXVhZDogZHJhd1VCeXRlQ29sb3JRdWFkLAorICBkcmF3RmxvYXRDb2xvclF1YWQ6IGRyYXdG
bG9hdENvbG9yUXVhZCwKKyAgZHVtbXlTZXRQcm9ncmFtQW5kRHJhd05vdGhpbmc6IGR1bW15U2V0
UHJvZ3JhbUFuZERyYXdOb3RoaW5nLAorICBkdW1wU2hhZGVyc0luZm86IGR1bXBTaGFkZXJzSW5m
bywKKyAgZW5kc1dpdGg6IGVuZHNXaXRoLAorICBmYWlsSWZHTEVycm9yOiBmYWlsSWZHTEVycm9y
LAorICBmaWxsVGV4dHVyZTogZmlsbFRleHR1cmUsCisgIGZyYW1lYnVmZmVyU3RhdHVzU2hvdWxk
QmU6IGZyYW1lYnVmZmVyU3RhdHVzU2hvdWxkQmUsCisgIGdldEJ5dGVzUGVyQ29tcG9uZW50OiBn
ZXRCeXRlc1BlckNvbXBvbmVudCwKKyAgZ2V0RGVmYXVsdDNEQ29udGV4dFZlcnNpb246IGdldERl
ZmF1bHQzRENvbnRleHRWZXJzaW9uLAorICBnZXRFeHRlbnNpb25QcmVmaXhlZE5hbWVzOiBnZXRF
eHRlbnNpb25QcmVmaXhlZE5hbWVzLAorICBnZXRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlczog
Z2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMsCisgIGdldEZpbGVMaXN0QXN5bmM6IGdldEZp
bGVMaXN0QXN5bmMsCisgIGdldExhc3RFcnJvcjogZ2V0TGFzdEVycm9yLAorICBnZXRQcmVmaXhl
ZFByb3BlcnR5OiBnZXRQcmVmaXhlZFByb3BlcnR5LAorICBnZXRTY3JpcHQ6IGdldFNjcmlwdCwK
KyAgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXM6IGdldFN1cHBvcnRlZEV4
dGVuc2lvbldpdGhLbm93blByZWZpeGVzLAorICBnZXRUeXBlZEFycmF5RWxlbWVudHNQZXJQaXhl
bDogZ2V0VHlwZWRBcnJheUVsZW1lbnRzUGVyUGl4ZWwsCisgIGdldFVybEFyZ3VtZW50czogZ2V0
VXJsQXJndW1lbnRzLAorICBnZXRVcmxPcHRpb25zOiBnZXRVcmxPcHRpb25zLAorICBnZXRBdHRy
aWJNYXA6IGdldEF0dHJpYk1hcCwKKyAgZ2V0VW5pZm9ybU1hcDogZ2V0VW5pZm9ybU1hcCwKKyAg
Z2xFbnVtVG9TdHJpbmc6IGdsRW51bVRvU3RyaW5nLAorICBnbEVycm9yQXNzZXJ0OiBnbEVycm9y
QXNzZXJ0LAorICBnbEVycm9yU2hvdWxkQmU6IGdsRXJyb3JTaG91bGRCZSwKKyAgZ2xUeXBlVG9U
eXBlZEFycmF5VHlwZTogZ2xUeXBlVG9UeXBlZEFycmF5VHlwZSwKKyAgaGFzQXR0cmlidXRlQ2Fz
ZUluc2Vuc2l0aXZlOiBoYXNBdHRyaWJ1dGVDYXNlSW5zZW5zaXRpdmUsCisgIGluc2VydEltYWdl
OiBpbnNlcnRJbWFnZSwKKyAgaXNXZWJHTDI6IGlzV2ViR0wyLAorICBsaW5rUHJvZ3JhbTogbGlu
a1Byb2dyYW0sCisgIGxvYWRDcm9zc09yaWdpbkltYWdlOiBsb2FkQ3Jvc3NPcmlnaW5JbWFnZSwK
KyAgbG9hZEltYWdlQXN5bmM6IGxvYWRJbWFnZUFzeW5jLAorICBsb2FkSW1hZ2VzQXN5bmM6IGxv
YWRJbWFnZXNBc3luYywKKyAgbG9hZFByb2dyYW06IGxvYWRQcm9ncmFtLAorICBsb2FkUHJvZ3Jh
bUZyb21GaWxlOiBsb2FkUHJvZ3JhbUZyb21GaWxlLAorICBsb2FkUHJvZ3JhbUZyb21TY3JpcHQ6
IGxvYWRQcm9ncmFtRnJvbVNjcmlwdCwKKyAgbG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJy
b3I6IGxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yLAorICBsb2FkU2hhZGVyOiBsb2Fk
U2hhZGVyLAorICBsb2FkU2hhZGVyRnJvbUZpbGU6IGxvYWRTaGFkZXJGcm9tRmlsZSwKKyAgbG9h
ZFNoYWRlckZyb21TY3JpcHQ6IGxvYWRTaGFkZXJGcm9tU2NyaXB0LAorICBsb2FkU3RhbmRhcmRQ
cm9ncmFtOiBsb2FkU3RhbmRhcmRQcm9ncmFtLAorICBsb2FkU3RhbmRhcmRQcm9ncmFtQXN5bmM6
IGxvYWRTdGFuZGFyZFByb2dyYW1Bc3luYywKKyAgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyOiBs
b2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIsCisgIGxvYWRTdGFuZGFyZFZlcnRleFNoYWRlckFzeW5j
OiBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXJBc3luYywKKyAgbG9hZFN0YW5kYXJkRnJhZ21lbnRT
aGFkZXI6IGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyLAorICBsb2FkU3RhbmRhcmRGcmFnbWVu
dFNoYWRlckFzeW5jOiBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlckFzeW5jLAorICBsb2FkVW5p
Zm9ybUJsb2NrUHJvZ3JhbTogbG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0sCisgIGxvYWRVbmlmb3Jt
QmxvY2tWZXJ0ZXhTaGFkZXI6IGxvYWRVbmlmb3JtQmxvY2tWZXJ0ZXhTaGFkZXIsCisgIGxvYWRV
bmlmb3JtQmxvY2tGcmFnbWVudFNoYWRlcjogbG9hZFVuaWZvcm1CbG9ja0ZyYWdtZW50U2hhZGVy
LAorICBsb2FkVGV4dEZpbGVBc3luYzogbG9hZFRleHRGaWxlQXN5bmMsCisgIGxvYWRUZXh0dXJl
OiBsb2FkVGV4dHVyZSwKKyAgbG9nOiBsb2csCisgIGxvZ2dpbmdPZmY6IGxvZ2dpbmdPZmYsCisg
IG1ha2VDaGVja1JlY3Q6IG1ha2VDaGVja1JlY3QsCisgIG1ha2VJbWFnZTogbWFrZUltYWdlLAor
ICBtYWtlSW1hZ2VGcm9tQ2FudmFzOiBtYWtlSW1hZ2VGcm9tQ2FudmFzLAorICBtYWtlVmlkZW86
IG1ha2VWaWRlbywKKyAgZXJyb3I6IGVycm9yLAorICBydW5FeHRlbnNpb25TdXBwb3J0ZWRUZXN0
OiBydW5FeHRlbnNpb25TdXBwb3J0ZWRUZXN0LAorICBzaGFsbG93Q29weU9iamVjdDogc2hhbGxv
d0NvcHlPYmplY3QsCisgIHNldERlZmF1bHQzRENvbnRleHRWZXJzaW9uOiBzZXREZWZhdWx0M0RD
b250ZXh0VmVyc2lvbiwKKyAgc2V0dXBDb2xvclF1YWQ6IHNldHVwQ29sb3JRdWFkLAorICBzZXR1
cFByb2dyYW06IHNldHVwUHJvZ3JhbSwKKyAgc2V0dXBUcmFuc2Zvcm1GZWVkYmFja1Byb2dyYW06
IHNldHVwVHJhbnNmb3JtRmVlZGJhY2tQcm9ncmFtLAorICBzZXR1cFF1YWQ6IHNldHVwUXVhZCwK
KyAgc2V0dXBRdWFkV2l0aFRleENvb3Jkczogc2V0dXBRdWFkV2l0aFRleENvb3JkcywKKyAgc2V0
dXBJbmRleGVkUXVhZDogc2V0dXBJbmRleGVkUXVhZCwKKyAgc2V0dXBJbmRleGVkUXVhZFdpdGhP
cHRpb25zOiBzZXR1cEluZGV4ZWRRdWFkV2l0aE9wdGlvbnMsCisgIHNldHVwU2ltcGxlQ29sb3JQ
cm9ncmFtOiBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbSwKKyAgc2V0dXBTaW1wbGVUZXh0dXJlUHJv
Z3JhbTogc2V0dXBTaW1wbGVUZXh0dXJlUHJvZ3JhbSwKKyAgc2V0dXBTaW1wbGVUZXh0dXJlUHJv
Z3JhbUVTU0wzMDA6IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW1FU1NMMzAwLAorICBzZXR1cFNp
bXBsZUN1YmVNYXBUZXh0dXJlUHJvZ3JhbTogc2V0dXBTaW1wbGVDdWJlTWFwVGV4dHVyZVByb2dy
YW0sCisgIHNldHVwU2ltcGxlVmVydGV4Q29sb3JQcm9ncmFtOiBzZXR1cFNpbXBsZVZlcnRleENv
bG9yUHJvZ3JhbSwKKyAgc2V0dXBOb1RleENvb3JkVGV4dHVyZVByb2dyYW06IHNldHVwTm9UZXhD
b29yZFRleHR1cmVQcm9ncmFtLAorICBzZXR1cFRleHR1cmVkUXVhZDogc2V0dXBUZXh0dXJlZFF1
YWQsCisgIHNldHVwVGV4dHVyZWRRdWFkV2l0aFRleENvb3Jkczogc2V0dXBUZXh0dXJlZFF1YWRX
aXRoVGV4Q29vcmRzLAorICBzZXR1cFRleHR1cmVkUXVhZFdpdGhDdWJlTWFwOiBzZXR1cFRleHR1
cmVkUXVhZFdpdGhDdWJlTWFwLAorICBzZXR1cFVuaXRRdWFkOiBzZXR1cFVuaXRRdWFkLAorICBz
ZXRGbG9hdERyYXdDb2xvcjogc2V0RmxvYXREcmF3Q29sb3IsCisgIHNldFVCeXRlRHJhd0NvbG9y
OiBzZXRVQnl0ZURyYXdDb2xvciwKKyAgc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvOiBzdGFy
dFBsYXlpbmdBbmRXYWl0Rm9yVmlkZW8sCisgIHN0YXJ0c1dpdGg6IHN0YXJ0c1dpdGgsCisgIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcjogc2hvdWxkR2VuZXJhdGVHTEVycm9yLAorICBzaG91bGRUaHJv
dzogc2hvdWxkVGhyb3csCisgIHJlYWRGaWxlOiByZWFkRmlsZSwKKyAgcmVhZEZpbGVMaXN0OiBy
ZWFkRmlsZUxpc3QsCisgIHJlcGxhY2VQYXJhbXM6IHJlcGxhY2VQYXJhbXMsCisgIHJlcXVlc3RB
bmltRnJhbWU6IHJlcXVlc3RBbmltRnJhbWUsCisgIHJ1blN0ZXBzOiBydW5TdGVwcywKKyAgd2Fp
dEZvckNvbXBvc2l0ZTogd2FpdEZvckNvbXBvc2l0ZSwKKworICAvLyBmdWxsc2NyZWVuIGFwaQor
ICBzZXR1cEZ1bGxzY3JlZW46IHNldHVwRnVsbHNjcmVlbiwKKworICAvLyBzUkdCIGNvbnZlcnRl
ciBhcGkKKyAgc1JHQlRvTGluZWFyOiBzUkdCVG9MaW5lYXIsCisgIGxpbmVhclRvU1JHQjogbGlu
ZWFyVG9TUkdCLAorCisgIGdldEhvc3Q6IGdldEhvc3QsCisgIGdldEJhc2VEb21haW46IGdldEJh
c2VEb21haW4sCisgIHJ1bm5pbmdPbkxvY2FsaG9zdDogcnVubmluZ09uTG9jYWxob3N0LAorICBn
ZXRMb2NhbENyb3NzT3JpZ2luOiBnZXRMb2NhbENyb3NzT3JpZ2luLAorICBnZXRSZWxhdGl2ZVBh
dGg6IGdldFJlbGF0aXZlUGF0aCwKKyAgYXdhaXRPclRpbWVvdXQ6IGF3YWl0T3JUaW1lb3V0LAor
ICBhd2FpdFRpbWVvdXQ6IGF3YWl0VGltZW91dCwKKworICBub25lOiBmYWxzZQorfTsKKworT2Jq
ZWN0LmRlZmluZVByb3BlcnRpZXMoQVBJLCB7CisgIG5vVGV4Q29vcmRUZXh0dXJlVmVydGV4U2hh
ZGVyOiB7IHZhbHVlOiBub1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlciwgd3JpdGFibGU6IGZh
bHNlIH0sCisgIHNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXI6IHsgdmFsdWU6IHNpbXBsZVRleHR1
cmVWZXJ0ZXhTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVUZXh0dXJlVmVydGV4
U2hhZGVyRVNTTDMwMDogeyB2YWx1ZTogc2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlckVTU0wzMDAs
IHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyOiB7IHZhbHVl
OiBzaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxl
Q29sb3JGcmFnbWVudFNoYWRlckVTU0wzMDA6IHsgdmFsdWU6IHNpbXBsZUNvbG9yRnJhZ21lbnRT
aGFkZXJFU1NMMzAwLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVmVydGV4U2hhZGVyOiB7
IHZhbHVlOiBzaW1wbGVWZXJ0ZXhTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVW
ZXJ0ZXhTaGFkZXJFU1NMMzAwOiB7IHZhbHVlOiBzaW1wbGVWZXJ0ZXhTaGFkZXJFU1NMMzAwLCB3
cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyOiB7IHZhbHVl
OiBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1w
bGVUZXh0dXJlRnJhZ21lbnRTaGFkZXJFU1NMMzAwOiB7IHZhbHVlOiBzaW1wbGVUZXh0dXJlRnJh
Z21lbnRTaGFkZXJFU1NMMzAwLCB3cml0YWJsZTogZmFsc2UgfSwKKyAgc2ltcGxlSGlnaFByZWNp
c2lvblRleHR1cmVGcmFnbWVudFNoYWRlcjogeyB2YWx1ZTogc2ltcGxlSGlnaFByZWNpc2lvblRl
eHR1cmVGcmFnbWVudFNoYWRlciwgd3JpdGFibGU6IGZhbHNlIH0sCisgIHNpbXBsZUN1YmVNYXBU
ZXh0dXJlRnJhZ21lbnRTaGFkZXI6IHsgdmFsdWU6IHNpbXBsZUN1YmVNYXBUZXh0dXJlRnJhZ21l
bnRTaGFkZXIsIHdyaXRhYmxlOiBmYWxzZSB9LAorICBzaW1wbGVWZXJ0ZXhDb2xvckZyYWdtZW50
U2hhZGVyOiB7IHZhbHVlOiBzaW1wbGVWZXJ0ZXhDb2xvckZyYWdtZW50U2hhZGVyLCB3cml0YWJs
ZTogZmFsc2UgfSwKKyAgc2ltcGxlVmVydGV4Q29sb3JWZXJ0ZXhTaGFkZXI6IHsgdmFsdWU6IHNp
bXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyLCB3cml0YWJsZTogZmFsc2UgfQorfSk7CisKK3Jl
dHVybiBBUEk7CisKK30oKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNjgzOWI2MjE0Nzcz
YjBhMDBiYzhhMmIzYjYyYWNmNjRkYzFkZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcwpAQCAtMCwwICsxLDIwIEBACisucGFzcyB7CisgICAgZm9udC13ZWln
aHQ6IGJvbGQ7CisgICAgY29sb3I6IGdyZWVuOworfQorLmZhaWwgeworICAgIGZvbnQtd2VpZ2h0
OiBib2xkOworICAgIGNvbG9yOiByZWQ7Cit9Cisud2FybiB7CisgICAgZm9udC13ZWlnaHQ6IGJv
bGQ7CisgICAgY29sb3I6IHllbGxvdzsKKyAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAjZmYwMDAw
Cit9CisjY29uc29sZSB7CisgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOworICAgIGZvbnQtZmFt
aWx5OiBtb25vc3BhY2U7Cit9Citib2R5IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZm
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBnIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvb3Bl
bmdsX2xvZ28uanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYjcwYmVmM2YyYzc4NzM2YzcyZTI2M2I2M2FjZWE4
ZDlhOTQ2N2EKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU4MjcKemNtYSlmY1Rme2Z3e3t7T2Zr
PjYhTFF6NUtPfVpleGdFUnc1P19INElkb0xtb2d3UDJzYlY1Z0k1ZkJqfWJkVX1LCnpnTExVIWUo
IXpme2wwSSRgXlNDdW9TQl9IZCFEbml2JTltOz9hYnttO0RNVHdzdUJRcjQqOztmWWs9RnwwQ0dp
ZAp6RDw/a3k1UCVCKzBIcDRRXzVmdF4pXjMoSTBQRHxwQmYjNXZLcUxTazdaKD1+N2F0RH5wOXVm
WD8tU3pWNlclOHcKekNjYU5oTyE5IV9Vd0EtNTI2X01AQmNZX0VxTjFjXldNRSltV2NkJCgxT3g9
NkImNCh0OT87VExsVCp8R0MtQUBSCnorPHBkLTY5T3klM3BoWT56JiZ5eDRtdDMpOXt7fnVBMSk1
P1praGk5RSo/R3NARSM1ITVEMzd6Xlp5ST9hQnpXbQp6NCo+VW9JUU1YSWEwck5UYVM4NkNjWEkq
Y2NTJnBsNmFAMFJsb2xUQlZRR2MrZi1rN1heKDtOcDheQSk7Z2tNKGwKekFNUElyKC1pZThXRTY5
Ny1QUWpHfEZIa05eY0BFfEV9TVdaZyotZGU5ZlAxQV87d0NKYXU+V3VqemJRUjEpT0xDCnpibnBQ
P3Ajd0xMSUpxUEFlRU1+LW4wWnx3Q1V5KWVjOVVXczdlMkZ+TXoha3k+WVR1ZVlGLUtVVUA3P0VA
M1J5bQp6R1k3JnxYTUFDaXVnMXxLb1B6VHlwSFhRYDMhQzhtR25NV21mOVJDQytSe0EzYHJoN19t
LXEzYy1AQjl7Sj0zcVgKekN0dFUyY0o/fm5weWZrcylYJFZaVXNEYDxDJHdKe0tBay0xPllOMEA0
TUw7e2J9WTk4MjVSX0AxZDV6fDR7KXstCnohUz82ZTdhUGwtMUFudzZSeC1tNCZafms9WWopMUtU
Q1AkcStgTFgoRURSaVNuWl9hYFYhbDVDblpGI0xOI0pPTwp6PUkzUkgpZUN+Tm5QcVlBMXZ7MXc2
cm5pPWYqP0dSO1V9TU0rd1gtd2BoUlR6bD9Vd082Sm5zQzZqZTsxdldsfV4Kej1CYSR6UDF3Zksj
d3I9bkxGPkR5Z0dzd1VORFRrN1pCfT9hMVJYN0Q9Tld6RHlXNV5DMERGODlCMCFxOFU4NVVtCnpY
X2JsNGM+Qj4oUmdCey0hO25MTUNEIWl5VX15JCFlRSFKNmNfcHtOdkwtWDQ1dmZIYyl1I007RmZ2
KVReaCs9Xwp6ckNreTJuY0JgST45YytkOzA3cDRaS2VnNmJ7VT5wP0kjI0VDd2lifUM4czxObmdt
WEtwRVNaTTlEQWwmQFR5ZD0Kej5PRm50ZU9xcTwpJUItfXBjX1omOT5QQ3N3KmJ1KXJAdHxhcWln
R3lHfWsqQHlTRCY+KW13bTtwd0NlTllKe0IqCnpsJWNlSDs7bnlET0NaYmVWNl40XmNRSEV0OyFs
NDRyP09YSmp2RWMjRCQ9VHFnO09GfWJ7bUtLIX5KWkFsUEYkVAp6UXgtTCF5PGo7fWU/Qig8KDU2
PHkjNXQjS3BHaHU3SGByQX42TTdLeig1UFlCekRaYm13c2BsRT8weD18S25xdlUKenEySEExPFo0
b0N2JW51WEdiR1J2RldPQ3gzaXlCUVZTeFp6UEdIWHJVMmJuMnR2Vno4TypSSSEjOHF5bF8wckle
CnpOYmZTP3lgJXIrQDF0UXUzZkkmTVJebnB8KHtRUXRuYSFgNHFvfXk1PVpfU0VnRGMybmB2eXYr
WGdGODNUUmxZSwp6byMzamNgI3V2Yi1KNFMtT3pMTms4MjVGYVotOTN5P2ZsSz9jUEIkUUY1UF9l
c3Fpd2BMNTZhQ0pKdW84LUJ2YyQKemphYGpxe15NYjlGXmlvTzB6ZHBDc3hxZ2VUM18rO0hpS0h7
TG9+d3xgRDtOODl0QVlZRzBDNWJib1p6dkdkdzhCCno8YURnWlVpaiUpZX5BT31sYWV3MUJCMFQz
cmh1aH56RHo/MzRARCkpPkFKdD9GZnpxNUZIR0pTTjQ/QiFRKUBBaQp6YiNUJHd4QTgmPFZqbT1f
d0A4LTElJE9lY29VPSlaTStzbSZFKmR9dyljJigwZUxgSklgSWV9Pjs+RVYqdV41SEwKeilEfHZD
QXsqK2ZjUzlvKlBrKm88Q2I5eV9kdDYpYlhrbzJDIUIpJmo/KCtoKHFNP0RxYkJOIXhvT3ZqcG9L
PEQkCno9cyZrdGhhTCpkQE9HNjd5MDdWKyl1Xl8+bVVzcWpmQ21VeHgjK3k0dGFkIzImJHJHbyhL
MSZTISNQcTt0eUwzSAp6YkAlaGliI19jdzclY2YoJGteejRkUWtYPGkpYGlSeVBVO3E1dHM7VUUl
bV9TX2V3QTx5e2g/VCEkbXBnY2NTak8KektVfHsxVlB0dnRlVH5mXm1rNG9hQGUlakx2KTYpVk1h
eSM/eTl4X0JsPF95OGM2JjcoI1FEIzhnbSprZFVaQn1FCnpCd3BFNms4YS0hOW87NjtwKGBLOylE
O04weGhUPiU2dys5RD07NEJjSDU9WDhSaHdUYTRKa35ndSY2aXleK1Rlcwp6RCg5Kil3IygrTnNH
fTlNMUllRG1eNElrI21XT0BGeXwhI1o9PnwzbUJrOWk9bzBjeHR2UitOcnNUQ3AoUVc7WEUKekU8
aFhiRjxuRzx0KFd2aV5VUHw4SVJ2OSREPHdpbl87ZEVVZzFnKkI3MSgkcypCfUV6ZFJnbD1mWlcl
QVdeaDhDCnpUVjcmKjZ8IU9ZPlAtaW1PYTctc053SWVFKyFUWEpjUCM8YjY/cjVXZl96Zyszaj5r
R1c2fU9YQUxqUlJxO157SQp6RTFuN2NiRFpyNXIrWXdkNk4tWW1sN0hRWUR0R3BQdk40ZnFeayp6
amp2YkBQSHtNOG5qVHcxcnVFVVk4Wj4zUHwKem9Wd3hJby1kUEBoXjcxQnlgazNtbGUrb3FYfXVg
NVM+czh2ST1wSTBeSWBCO3RXUkUyMWxAeWJeNyY5KlRaPklwCnpQT1llKF5ZSSMwOFhHI200QjFS
I01POVpOQ0xGODxnNFEpeCg2eDVQJCphSW11JDBFTCg0SktSKng1YFg2VVJEZAp6QklIPTRNez0t
PnU9JnZ+cGdoO29kbkVqNWp2PD1WTyRxZnFhekImJF5DMWJKVFlCZVRNJl44ZnRCbkUwWkhTVEoK
enlefGtJM081cGckTjJzT1pGOFl4TSZ+LSNENG1VOVZmXlE8OV9MTzslYlBtJHR0YXF6TDEzX3Ff
QkZMTT5zaFhRCnpNWCRgYSNJMm5NS08+Sl98TDwkbD45aSU/Sl5ASHxCeX5MYkRmSEo8ZV5SKElL
YHQmZmdTKjQ3elRMLU1hM3E1PAp6aGl0P3ItX00jP2QjQ0QyM2JnSlBWQyFiVTttfm51SXNYUk9P
bHl7JEFMKlkpVlpHaDlHVnZ8VjZ5QyNeQXYhPHsKekFxPGYxT2VWdSpzRTVycVVDbiUzJHt7R19k
e0ckTk8wIzNRYVU7VT9xNDkoRXRMX31UenV8SzhKX1AzNFBZJXZXCnptNW14KzJUXytoZl5Hb35s
UXJpdnJgSTE1U2Y1elRAdDZ8IzRELSVjWFIqNnVTaXM8b2ZpaDkqPGNMZjg5eVZPfAp6UWt1b0RO
NERHTDkrdklDNF9Na25AOCUyblN3MUcrIyUqQXghcyY3MUh7JGwpPmQ1XjdAZVAlUXMjNn12X2FY
VHIKemVvVUcqUEdwYnM+VG95PiR5SnkySE4lUGpjRmVzSys9aih0WnJKKHRsIVpLPCUmV0hXckpM
JjBkdUFuTCNJJiZwCnpefGh+aCNfSXdjO21kR31oVyt8T1lFQz5KIVZVcGJPV0peeHA1fHtWJEpn
WV9FQnJCcXFKPmg0XmhTKGx2KVN8Qwp6KEw7fEV4U2I0RD5CfjtgbDstbGRNbDJVX2B+QGpGREIh
WFdhMVlGPj9XJiE1eXo8PWc2VXRyeGJhOSlgdDBNK2kKeipwNWQhb3I1YFRUNVYpRFNCd2Ahb0Vm
Z081Tmh1c2QjKj18JiYjdyM3bjFhRz0pU3E3YVV7X3t5aDBRQ2E1YWgwCnpVIzxffDAhbDZmQkhC
NjxrakI+RUEoXlhoWjNXa2MzcTBOPSNLWExgXyFHdz1kOHhpT1glJkNBUGhAXnxCVEZVWAp6T341
cCh1OEZSTXFSM2d0cVJOe3k7biNLKG9FOE0wJFNHdjBMVyNabFJJQldsWnxEWGF3JGZBejZgQnFm
cDFFPW4KeiFqV3xOPHRTbXY7Xk0lWlM2Tnt1YyFAXzxSS2hsJHNFRVpMRm9paWFNV19pU3Bsbjx7
NXMraSFwck04Um9sNkV2Cno5YGNeM29DKGZPPWkhbmRaPjVJKjlNYHFyMVUkMyhLPGVSTmJRJWsq
c0F2Jl9WUClRXz5qV2JvNz1pRz8mPD9HbAp6dkcyWCFSbkQla1F9WUlkdWMrOWVmPyE4ZzN2M2RW
TiV3KUcjKiREfVg2SHc8JjgjdmVNUylDb2R1OXhRSVpIJEYKenQlfWZASzNaPk8xRjJAanU/RCor
OEhrS1hsRSR7d04mTk51ZiZGRzQ7ZUE0dDVaRWtqSzc0dz9sbD0ydyR1d0BDCnpIMDgzIVowPH49
ZF90TlRfQk5vM3QjMFhgQUJITT9ISkFzN285WnkxSk5fMWNYZWsxN2UlWEw7KiU9eCEyQFlaegp6
O2VKKHhuNzJXTEMlPXtSd2R2SksoNnolY1dYQFNxXzVgbEtZfDMpRmJ4V2xNOTNPIVZyMnJxblEk
NkJWQ018MSYKem4kUS17YVpEPSpoKio0O0lLbWh0aGU2QXwlS04oQGVpMG0rSnh+SylHNmMqRzdx
OWVtUlQoeUhhWG9HRzJ1RyV7CnphQkVfWCVHUWVmJGp3bGdgZSh9RChSMGtVdm07WmlZMnY/cTst
YV9+Q2hWK24zQ1lpY0hkcCZFTkEycDdVPmhmTAp6VzZxJFRLbCNoJXlvTkF2ZGxOSDRuITR1TF5V
NmBYemZXZlM7PyNjRUQ2b2xZd1okaikzU19hdm5TcSk5LTUqNnQKemAkWHlWTCV3UF57IzkmT3FB
JHhTdyUrS2s8KkRBS3YkM14zT1gwJj1RPG9Oc3t5cl45dXxnck8reSpgTUEoX2QqCno0JFYpIzIl
QlUwen5TfHAlJHJjRHghMWI8NTljdTU+SDZKc2BESSQ1Vkw2TFZtSz9rYEBDZjQ/JjZZQ2M+MCtr
Ngp6cj07dE1QXz12OFIxSGIkaVF8WnlSN28zPjtrOTt4aihBLSVKVndEK3U2dE1JblA7XiU/X0dp
VjEyY1VaZXZoQEIKekRUWHtHKjY1elo+O1d4T3NGOyskKHVUSTN6a0QzeEJURDFNZSMhR3h4TW52
WUxqWj9HMEFDVXItbEpvRTtycHNYCnpXTTgrK21OUjApa01fWHZ4azJ7OEVGfkExTENVVzUhfUda
dkMqcWEkVzlhWX55Xil6fkEmXjhQPWcwX3pSJFgwNAp6VURsfCNBWVRrOD8rd0hKXjRMPipEXyg/
YSZ0Sm82dDRyfFgzbl83YkgmYUIySzNCdSNhPGdSNFYrTCg0KyN7ITcKeml3MkdlUDA2NEshOVRr
R013ZXM3dVVnT2UlTz0pMFZNNz15YURtNXViI3p+RkJAUj10YSFla3U4Q1hGQGtsJXI5Cno7aDRY
eVghY0YoRFJGV2BnTXNANCopbCgyKTs7ekNQUFNiemxBfXx7ekczIVc2cyleTmglUGx0Nz1JfT1m
V21vTAp6MFNzeT9WT1RLbyR8dXxVXnMjSm11ZiV2SkYwUnNLai1OYFMxdmhNeUFqdld4ZDg0Xk1j
ZEBBdS1MezBTRHE5dGYKejlwI3Y2PVBAejdJVHxjemV2X3s0eiF6U21UbCpnNWZ2VlcqJENPcnd0
dEwlWWU1eiVBKnZvbjA9JWV9NDt6MWN3Cno/NHhEfXRUYyhvKSlLcmdEM3MmJmBAU3czbzQwXkBu
ez1BaG1NIVRJYG4td3JqN1p2ZGtJPzg8TmNAek9Teng4bAp6Jnl1NmBfRjh2aUUwazlVc0AmMXY9
LTdwaEtKWiUrSFFWY2w5RVZLYyE9TFJSQjszO1ZuYGU4S01EaERhJX1VZHYKem96SWhOZ2c7JUZ6
anJPdTNHQnVpQVRIT3RDVDs7XkVNVFEhYlc+Z3JPYUBqbENgLWFMfDA2WHJveSpEeFNNMHVGCnor
K0BrMlpMUCloaUc5ZFkqVSNCKGRQdTdNZ0J1Pj5wKkxFRHgoY2JVYCsrQkRrP0hOamsjY2AlRllT
YGwwYHNoZgp6aChtOyhuI20hVFB0Tzc4aistV3QpQ1lJTyZtLVFublRSTHszSyhgZHFKe3JUS0l3
UFJBJUZGJFk8KkdmTVNNdFcKek1VaUdSZU1lPHVSaXZKP19Be2R6YG1zalF4b3dqPFVkRilkdzNO
OGlKYT1vMC1zRi1xK1VjRTIjPHBSUjc0Yz1uCnpgPDVUeT1TPmRGM15ZWVFWU1QrYHE8NnthejVa
UVNnTkJzVWpmb0MzR1Y1JDFDMlFkcjxFb1VpJSYlYnR6M0dEVwp6SUshSipOVHh2UVlsP1ZzKlpq
VFIlV09uU3NTPH1FS1NqeCM1IzNkcmpMIWo4QHZWTDdBd0xiUE5odGpKLUpVWXcKemVvRyZ0K0Nt
ZmhRQndLX2pIPUNZbFdXa3xIQXB0WFM1fm59b1NzfU4yQDkzPSZEVXJ4Z3A5aEZTMGM0ZlQhO0hI
CnpXVD9VWSZ7ODhWey1qT0g4RF9VendmVWgjYTlUcFNMflo0ZEQqYFc5VXdlKzRXejlxK0Q3KiZM
M0VsSS1QSSN+bgp6bjtiMGhNKjlNQnI0cTttcUdmT0BFODNmPlE4dHNXQUZKb2JGKCp7LXJhT3hK
JHRGUktwdVh3Y2UlVmImUkQpTkYKenBkPT8mcXJoWVlmS3xJKW5LNjJHdCQtTDw/Q0ZBKWIrPHBL
SCFMS35kZFRNN0g9dzt9QlpLUH56dkp0dDI9U1dUCnojRztWaVgxTnUyZEkhei0zXiEyO3p1YnU8
Vll6YD5tOTx1QCR7PnE3KlBEeiR5dGkoTDBNMEBfVHomVEZiMUMmcAp6dmJSJUFMSkFIbEJjYjl9
SzJpI0FYNV5gZnN5fEwhODxBNEYpWCYlQyFVZX03LXdPVlU/LV5pK3Yycn4xfDYrSFgKelZwcHRR
K3hwUWJybHw9bCVtZCN8ZVo5S0JHUTNiKFlvKis5I0BlJFckIy0zIU5aT2hNQWN6UytLZE8wTilr
cnFDCnpvWnxEIyFhZ19HJllAVSRQJkxRSFlUTkVqdGNmMiF3TU5OTmdkKiFGZWRgaEItJUR8JkJq
X1gmb2l8dzg9ezQ0eQp6dl44QiU3c15ELWR8bH5AY2IoMjg5d2JpeWpBTUM8Nz19ZiY9SzAqSCM1
VWhGc2gpaEopdD1AVU48RHIxJE80IVoKemJIOzRhZUdTLVRLUG5vWkoyNGcrNVp1LVElMT9JTCpH
NH42d0tXX1c3aUB4SSZXK1FvYCtgZVZpO2FNdEg+YG9YCnpYfkE4TFBUYk9zUDVlI04jfE4qaDY4
NG5vcWpkWjg2QEtadUBvflJpKUB9MWFCKHdAZChrRkEhbkxSdikrVyZsIQp6d0thaEAoe21+a2pK
SDZ4KztCejNURTxvPztlN3hfeSRFfE42VkxIfGdXUE8lO1ZCNGdsO0RjZGN+K1prcXJIPEAKemVo
YThnTihvOFkkb2hSVXxHUVNtNWJsMz8jJCkmX2VQfVJ2K351aj4/QmdpQlBybms/V0oyKV8lWjR0
TEtXYFBFCnpjQm85bSRGMyFAPiR8NV8hZEVye1lwU0JFOTVLQTNGfiE+SGpuemE5Nj5UPUphQTZf
TzE3eVAwQ0MocGl4enh5dAp6MHI/TnZSQjElbT0qRXB9dTQ7I0tFSn1XSDFZQjRBOzB0Km5jfmNh
dTdORHxLMnw2djh5OUs8RW96V2hHb1RtMFoKenc+KDhENGQmUzxiMTBpQHp6YjQ3NU5CbEE4UiNr
MnZTPHkyWWE1RE4oYyEtOVQjQHQ5VHtmTVRzJD9+aXFyeHhJCnpBJSFrMk9eOCR6eHFDREU5PG9C
TzlvUUZHemB0ZTIyVE13UkkwKGlzR0YyPURJMnNOQWg7ViN2SGdyWHFKNCR+Twp6YXAqNEhCR1M7
NkVGb1owd1ZiZiNXYzslfVQ0KDBgYWolTXZVVW02Z2lGd21OYEp0NXE7eiNNYTUoYG5RNDgqQksK
ekxtP3xPZypCYXNVUUZOSlU+LXhZYV9TKSg3YVhAKGc5QGRRYGJkfFNhXmozUzRJe3UqQTVRQkRf
Y0B2cTxUPF9uCno/WG5pZHtIJnc9Tio2THtsOVE/S2dfTTh1cXtlQ0otSDJobyVeWEp1Y31xKUhZ
LV83VEorRTNKZC02NCMhRn1LJAp6VDUmaHM3T299IU1PMzN4Y3tLeGtuTjQzYWFLPUBWKytCMVl6
ZXpoUkZ4a3pHREY7NnFLbEk0SjRrIUcxJWhNVysKenVWXkJmcG4hVXFEfSU+XjA4TUpEekF6Xlg3
emordngmQWlTU31ATiZCfl9nJUtGKGdAezNTNTtJLXRqeCkmc2UrCnpPemEwJUByOExOej17eTJM
cTU3cyVsQmlvNEJIbVc0anc1KFVBUj8hKShhNGQ1a245Nkt1I1d+MjlUbjUtYmZxUwp6T0Ikcz9Z
fEZGVTcpQj87YTZELW5pQUgzPypRP28tbVBYWVUkM3oydlVmO0pXST9BKmRgQyY4X1NAUkU/ZzhU
bzcKelZaNWsrWDx8SHBZM1N5RE55NSheVDBlU3gxKkROdiVoYS1ZXihUVzkpSiU0dUFtMns9WWAy
JTV6RWNxeXYwMGAkCnphQEs2THZATTgxYXlyKDdfRlYzb2Z9NzxecT5SQj5OTHgzTW9hQ0Y/TH1A
KyEkRiUxSyVlSW1KQERTVjArTjErcAp6NlFAejRxNks9Wl5qaHcrelU8VUB1eHhhXj5RJCEyOE9A
aVJEREslelEjOSszbWQ5dzc/YlEzODd9KldRLWRqSyMKeiNJKGlQWTJVajJHQ013QTE9Yi1ablBE
SiozeEtSRzllZFp9VCZTJGJVPy1gVnlXfklxRHU/TEE+WmhWSkk+JUsmCnpAUSpVYE4hfU5RSWlK
YGtQbER1WSFYaCM9TCVSRFdRbnJHajNDLStrSVYjPjByX2NVTyZJYjd6a0AwbT0tUVNWTAp6Qjcw
PlZpKFdJNkA9cUxVcENXQXoxV0doPXRhZCohdn1wWTUmc3crTEk1YWRkY15uOFdIbjFBRSNrQEFz
b1MwcnQKejZ1Tm0mQUhnTFJnfGw4RCtXaFpMe01VfkRjT09eLTJiMiFQX0g+NlRxIWx+TnZXIU5s
OXdGQ0BYY2gzdz1ZdS1uCnpfcVlhPTxyYzBMampvc05PVTRIPyZlK2VwQklnPj90QEBMUVpVTmRB
dmhVJj5GViUrI0deOXU9WnZrI3xfQlhtWQp6KGk1XzBPQzhzPEVNdVUxUnheWncrOz1NRSpEY15s
KV49OTdFRU5DWGw7R2hYO2p1cUNWYCNePFpwSGpnb2VxWE4KemY3O2JFSTB7dmhjTUlAS1FvZHNw
KE5IREpuSW9rSG94Mlkod0grJX0yOFpjLUlZVyYoakJ+a18hfjRya21feVBGCnpLTTtIaGxCOHE9
UWR6aFJfcU9CRjZvfiQjMXBqQWFsJGEpQkkzdmM7STRERyl7SUdYUSshMTk9QV9CfDI2TCp3PQpQ
R0ttI197e1FsRFpmRX1zJmB0T2sKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdGh1bmRlcmJp
cmQtbG9nby02NHg2NC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIzMjZmNTUxMGEwZDJmODk2MDFjNjI0NTkw
MzJiZTlkNjQ1ODVkYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjM4NDMKemNtYSVpV202blgp
OSZLIzR2VntNa2wtNGUwS3dmTXhJMnEkYUNaeG07MVZGJUJFZXk/MWIyNV5VfiU2MnNxK1dVCnpy
PG9lKnh+OGtBdWRlQnl4WDxkSnUrWWlUMFJSQSZsQUBkejAwOCUyN1k9fW17OWp9MlFFZHdWSmhD
YXROcV9OTQp6SVNXUTlGdE4jZl5LPmFUPHp3cy0haz8+N1dnQ0pJWEwmRyNxaUYxNF5OQ3ZqI2k+
djE/T2FtZFFQVU9RTmZUZXoKejhqN259dCl6SUYlUD0zPCNveWxVMzMoNlJ5ZSNtWD8jVl4jTldp
cXxlUX4pY0cqVy12STFKdSthPnhPdVRYfVJfCnojMGJ1IUBRNSZ0P0IjVXVxNT1MbDZnSSpEUCkh
PVVNeTUmIXtCTVRCUFpocHpGOSt6bF81WlY9cDtZdDZTTXF4Qgp6d24pQUd5bH5XSmt1TFdee1Uk
WV5EKDdmNzU3QEImcE54aHUmNnx6KTQqV19WcU1vM3R3V2IxV3p3VU9yRkhlUGcKejRWI2pEdm0t
KHhyZD9MfTBNbS17Qyl4TFB6K20/KiZ0eUw0ZTU2d1F4QiE0KDQxa0dNUGBMSz1ZUkJ8TSR+QHUt
CnpgVlU9PWxZbDkjMkhFfiNzPyVrbyYoZjZ+ODhhRDJmZUVYcDJrRlVFMUVOOGVaXi1seyVzZ154
Xn1vZ1RsVyN8Xgp6ejItVD9icXI5TkRVQlRzXjNCc0lzem14OE0rJn1Za2YwPWpyYDd9VyRiPXZo
Kz9FYXhhbWRMPGl8VHhMYzRWKlMKemslVXJqPXt6V2V4X1BpJVFTNHA3dmhJQ2VAJHkjVnduO3J7
YVdNeG02cGQ7XjBAayhhSFRXUUs4bzJPTVgmKnV5CnpBfmAyK0F5KlV4S2llQjxKRXp5aF5yWmhF
NCVoIzFBU1Y4TV9xcjZyaG1JKG5QTHAmXzgqVTBqSnZtQTx6Nj5UaQp6T01RbjRMNjEqSURxaXAy
LTQ9PEtsaUh2eUZ8YylWJCh3d29re2xxbnxOcilYb0EzNDVCd3sjJTlZaHJnZkVpekMKendsJihZ
JUhGcH1ARjt0SShOWX1BVH1BbU5kYE8lfTkmOVJHVEV6SGc5IXJuMXNOY1ZxTyo/eVp3KyVBQHgo
OVlBCnpqVnsyO0pjJmo/cXZGVTdvKTMhT3hWTDFSZ35FJVRzWVZwdnQ/VXJpdClpYzdPPDxjPzhf
ajhmU25GYjw/cEhNVQp6TSNhND5jPlh1M2FUNHVnKkREbjFmR2hNUXM3dnFfKkUmeXdSPm1lNGZK
cUVhNTxlS3ZZd2Ewdl9OfWdYcCRRc2UKejwhbSp9e0M9cVg1YWRlezlYKG9FTjRveFViVnFqZili
UmhMMFJKWj92SGZrZV5IQXd3YWxxckFFVVFKTWAmOXltCnpGT0RQV0VrSW1oKSRHOV5KNn0/NEtg
O3crKEpzal5SJj1VMUE1blVqJihqVXZydG1yZ01AWmFzXj0xWUM3YGVeZQp6MWFEMX4xe2V0MSo8
I1ZfKWc5dUYmUiFxPVFTY0JrMFZ1eWdudHFoZyttVnZaMysoKV5SY00lYyZeOE1oUVEyN0IKel5Z
Y3pwMHo2UDhDLWdvbXt1KEo0bXAyVE5aKSh3eWUtZ2lXeClQdFpGb3p3OzhpQDZfYGNXX2tva0A7
fFhhM1UyCnpySjdje2RZRk03Rj0wOWYtIWRDR3kkanpBYTFSSz4odFNmM2VMPm9HVXRoc0s+VjxD
JHh6dFolO0s8VSlZJCsldwp6RSNUe25ua1E4bEIqQD02PVI+RTk2dG1vJSFPWEYrK301JTlWMVVO
a2ZpKitPYEJQRS0+Qn5wZTstTzx2JlJmJnMKekJMMWhiPyZIYioyaU5qK05LM2B0PUJESXZNaTVj
Knt7U2FWeFJ7dyRJdCoqM1doPDxYOVU9cCQzfTw0PlZWNj1QCnpQailIJnlOT0tyTktKMyl1SDd7
JjFuM3t+WFRIV2htNGdQa3lqPUJSVWY5emB5S2Z1ZWp4SnBUZFhtdTFQc3khOQp6a2heYT8tektK
YGcrOWxkJWx9eztScmJSZzN+KitWVWNgdTghNDE8Sm44d2tVYW4lUiYqSWdQR3VZITNBKTA7TUAK
ejRPYVBVcjttRGcjTXxhdyt2bzR3UDchZnVDU31KMENITT9SYz40ZGwlNVR4VG1sdTlKRU5CQmtg
UysoQnVXam9aCnpJSWczfl49ZWJYZSQlXzdIYzdecntSXjkmQW4ta2dafUFhWSo0ZyQpZld9TzZR
NUFOWHxHS01hNyQ+e0whPmBNUQp6MD4yWWgqSi00bVQ8Y2RkaGJ1ezgpQG9kYEBhO0FmXilEfEtF
Y3ErM1VUaEpAZzZ1TFhLeCRpY3dBUStAZ2tSbkQKejZrS3BaJCM4S3B7U2VUSVRjaVhJRmRCb3dz
anRaWkBtYUxBVVlAI1ZNV3VteVI8KU1kK0RZbDwqZWJvYEtVNG1uCnpRV0ktSFpRSzVOeU47UmRu
X2RPTWUzd2VOVnprdEJDZ24+e3lEX1B4RXs1NnQoRnlCZCQ9emE1aXx9Vm5AN1RDLQp6QXlUUExo
flJEZ1lIWWlTdWdsPldOd0k7aENQNkozeCFVZ1VMWClHVElPUGl8U2h9ZUQkKChYUUBIJTVgbCRH
KWAKemN+JkxsbnQkKUlwa21mSlkrOXRqQnlXUypqUko3Z3s9NDgjKVJDZz9eUXBnQFluVEZXKlhT
aCpGfC1OTD1mN3xSCnp4LTMyWGJhWEF5XkMtOVRtT1I0eldaR053cFVaeTE4dlh6ZGRnOCpydWhF
fVJMPDR2JjhfMnI2Sn1UVXZGR1VNYgp6ZDkyNSVrWj1wYnsteig4MSZ5ITJtfmI5M21jKktHZitS
djYhMnp1NVUxdmFSZUFaVTRCPWctWUFHc1plaGdWYlUKemJkZyloNG1gYihXMFVIPDQrS0JfbnF6
LWIqVVVPXmQjJTEySX5jMjhwS29AQjRPWUkyOVFxI2N1NXV6SCZKKzdsCnpTKXFnOCNQMkJtKkh4
IXxiRTRaTTkhRSFmUmQwS09kbEhvWmV6X3d0QW40aFkwTDt+MEReTn00M0pFfCteUHV0fgp6K35M
QX56WG9NazVBRHJ8KlF4b2EjdmlRMWxgOGBOLXFzIVRffExBeVFuJjdmRFNOaFF7fnBFdEFnYmto
ISQ+MDEKek9Ec3h1RCNFV3cwMz5LUGFRTkBMeHhLanQjVytmKmB3LXtsQyVQPkJ1ISltI2VgZG9U
REdLKHkzd3dgdDUlYXlNCnprS0J7fihPWnBoajtrKCREVF49dUJeRlk9YXR8Z2xrY2hYMUhGel5q
XyYkOWFKbWhAeiVFJEV3dEt0PjBTPWlHWgp6JnduSWYxRWxWPG5fcEczVWxpZERRTW4+UXQlaiU4
bjJETGF6O2srbEw/fFpUX3Y7eUlfPFVTR3ZUbiVNJjk9TmwKemZ5a3tsQUFqSEh6bHclbUA/TTBf
MW13QlR5U2hlNz5XN1A/MVU4K1RnQzdWNClXJXxudVN6YCFPKCVafXk3Z21TCnpEdEhOKDlyYzxq
SzZ8JXdOPHtOZEMmODBxdEFzTUhTO0BtMHQ0bGRiTSRfTHVQN2hzPUZ+NGdHZk15Un1LRj1ncwp6
QW02fndkOUkpaj5CU3FPdiNfXmNBTzhvSXl0dm5RTE0kKFJOKlVTfSo/YVZoZHZDOzNHN3ZweChO
Jj9PbVQpVyoKemh2Kit8IUZ8PyN3WVcyITdrbjVITyVsYClYdmdnSHd1dGNYN2kxYnlWT0trRlok
aTFXRSYkK0c9fHlKI0RKMXw5Cno9TFFhY0Z+ZEs2OExXcyt7RjgrREg9NykzQ1pZUEpMbFp6IXs8
KHpMaHAtUEF2RVhSc0BGS0pGejhFZ1lFV1JtfAp6eV5xc2BSYjEjcl9lUyhUR094VVRseXA5Mmx5
PiM5ZUJsNXp7KE8kYUIyfSkyYFJxMmlOezBGYzBaUWtQM2omd0YKejhoZX1AIzcyZk1kMEdQazFX
fjRUQHNKemU5NkB+fG0mVCM2a298fXk9PmMlRCNHK1c5ZVRifkRKZHdUUmJ0JFR0CnozOG5DMUZi
UTR5KnNMdH4/TiRQRGoxNCQ+X25iT25Ub2cwWj82Q0hkK3pQYX5wI1VMYHhIbFNqUE99RzcoZ254
Uwp6JmBNZERwPjhwSUhNUzJJeX1ucSNee2JIbiQzVDRGS3EyLWM7OVE/bXVJI048WV5peVY1Snl1
U3NePCtleDEtO2oKemB1PE9SIypmUHJac1l6NT9qXnliYE16SDlaY3dORD9DN2gzaDlZXnRYe3ct
VzlIQ083dWE+WWtzXjNOJmchbEt9CnpEeGQjQXN0JTFtTXg2WV8mJlpEWEVNcDQ/K01LPUxtNG19
WCE9c1chSCY/VlJMOG0yMFk2WUZLXiFjQGReYFdaPQp6Y3hRRy00PGxCbl94QS1uV2tkTXBhMk9t
a0RKJHF1bSpoeytUNCNeYjhpSm9pQXBlQ01ANEY4dDFjQjRqd3pxZGYKemtZMVQtRnEmJiRhKn14
QSEoakkxa087fXRQQC09VHVzO29lLUh2SUFmITAyMGhXN1ojPEt+NSQ5UV44SDlDI3xxCno+dl51
VSlZSyk1N0F1RVNPSzNAN3RlP0ArVDk+VH4jfm9aI2AmVDE1KVFLbmkqfDd8O2ArIWApKFFqMV89
dj0qTQp6WnhoV0xVZl90U3s7PitNPXU9VDB4ckVOTkFYQUhAcHRpbio7RG1jJjw/TjYwLSF3eXRs
PzNfKWdHOzBzKGtKXiUKenBzS0BqaXA8U0IhdSE+VlQhcClAPm9zPVlLITAmVS0wQEx8fEVHMms+
SE9qUEx6QU5gXz1ZKkdJbUtTej0heXR+CnoyZyh1SmQmK0Q5eDx4cntkZm1vKSphJDhqSXVVQSs0
cVV9RzY8JiVfKWtTZSYmamI/UT9wfEw/ZXEoYmIpQzBZagp6RmEyKSs2c2QweSZiMT5KPGI9Jnwt
bEJBfkZqfUJSMmhwaiVnYX1UXns1VSorQlQwbE9iaUNtJDE3UCFmcWVnUFcKej15ZUUmM3szQTBm
NU5RSm1ATDdFdWw5aGkyMmlAakNnbWVaO0AtfnEzWlVARSQzJWc/dTlFTHtpOCY0VCVOQ1R+Cno9
MUo0d1Awe2U/JHByflZFcSNWUnd0c0BgKXIlTHl6MWh1dSs5TG4mTlAwPSpvZj84T2xWRHkhVkF0
YCREV28zPgp6MVJ7PXdpPUM+OHEqe20rJGgwJCNUIzE/OCgwc1dgMk1AbzxTM0luVTdrP1ZRdks7
OSpqa0lFUUtqRSNwMytPcWoKemdpKmNVVXRhWVphbVYtYDBPYmFGOERGQnNtJDUha1dafil+RG4w
WjcoWjlvbCYkMV52cCUwdnctU3BwR1ZoV0VSCno1SFBiVGlAaHUwRFNYKTZyMUByPk1Cb2hJPXRy
ZzUmZyZ5TEZCaiF6KnBEO35AWnxqRTZfZklsdnd3anRSVWVKZgp6MCZfLTZMajVQNyR4UjR0YVZD
TFlMYiZlVnFoX0xFe1kqcT0keGR1QmlYZFJ6SFVuU05CdiM/Nk9OVWsyO2NTaH4KemU/aDFVRm1x
bEtNRTdHUy15eW4obkx4djA8dDU8MTBKY0ZQXno2Pio8MDshIWxYZnVOeWRfLTdUITBidlFxKGlw
Cnptcy1MREQoZCNneXFWfTZfO0UmKkZuakU0SzJgeUJCbEx9dVJNP0h3XzRoSGw5R3llJXYmY2p+
V1RnPFA9bSlQeAp6JFEjRj9qTUI7NF4tU3txR0l1O1lWZjBCNzBne18yb1hMK3FFMU80TjtZUXE7
N20xOV9NQD5FTGAxbChkV3RFX14Kek5BSEJUKSRrJF4pcTdxKDFvWT8mSlBvSWNxXilNdER9aVN9
OHowR01Jd0A4Xi1DQHsyVyZha3xKTmN8Q0tZI1RrCnpLMUVmMCRVblVpdmBpN0FuZlZgS3JFMm4/
N0JBUld4e0ZSLXdUUlJWTyYqTilQSHlHN251WXl5SEhjblApYXRjYwp6VEE2Tn1IKXRfdj5yN18z
cG1xJkxNRz9CX15RQyZoP0RvREJVaSowVCp8YlUjd0UhbjIpN2MqJFpsIXsycjhyN18KemlAQ29G
I2RRO3tlZzc3fClKckMpe3NBUGh6OERXYj5nJU5eSmRGZXQlPUFWMDFmZktkbDBhMCU1IyQjcGlf
NzMtCnpuP1Q2WEdLdFVvaUt+b3lDNkd7bXMhLX5LdktIPTQrez9AQDtKIUR1WH1GeSUhMldWZmdy
JV88UyZ2flN7V1ZMZQp6a0cjMHA7Tlk9OVNjTlpaUkc2bVJWM1FZJWhecXU8Yj0jNUl4WlE8Xz5e
ZUdrcGFkWWJ2JWVGbmJJMzcjRD5VV3sKemhLdHp+KmQ3I05oKXBYRnhKRWFZQkB+eTxReEdzcSly
S2ZOe3lPdWZifnJOJmQ0cktrMWR6NmktT0FzN3Z6Qll6Cno1PUoqc21zTjJTTkh9UU9ubH5tPE5T
KnI0KG5hOXVPU0V4UkthZGE0KTV6TG8xM1NiVkRSN0dxQCsheTAxJHZlVwp6diZLcnJge1lmWEFn
WT87SnEpd2p1K1pPXjlkKUdvQjc3X0RGK2xDMWBmJT1+e1JpS2RhalNtUXpaK00oenctOEYKemgy
NyRfKzZJQngzYFokISYmK1hRISFpenRKUSgtRiFFSCVWYEhWJGl3cyFsPUhgdWY2YUdoUDgzOWlL
YzMpbE93CnpXIVp5ZCEleXImNk44SVNwakJLfCZFVzZPKzc3ZUIjamxTYWFzcWR9ez19KjA5cTIx
Yk1nZ3tIUzM/JGVRQnNtZAp6OGMpanBTIVQxYjx0R3k9QF8oLVVXdHhvSW5gfGVMRnwmK2chcCto
fE4kPCZSd3Y7fS09SU1DJXBDMVJCTnpHbXcKellsZFE/Tmd6LX5YYXpnN2V5dmZDK3p9MU5PNV95
P241N09uO1BfcmFUZkZ9ZWlOdGMhO1VfRXdAVFBRQEpfSXF8Cnppb1M3eiQzfSorenBTSCstclJl
ZzJKbnNZbmtVZ2V0M1JZe1BTNXEmeEhhaWQrIV4mPVVrSXRqUjQ0JSY2XjJlKwp6XzJ6M0k8Qkc7
aWhYfGJSeVVCMGNGd0ktSldlQnI+SjdIaDxsV3pFJmxSYSRkWk57LVVXSGxLRT1HdHomYFJjPHQK
elpfMkxCRiRDbCoqJTkqU3JAfDl8RUx3QTdlaHlPWlFnU0xuTit4aHMlfDlzVHEyOFB1Um81dmxI
UyZqWHgkJF9oCno+bjBESk4lRiNORFdBQ09vUVg3ZVc2MDR8RG51aEB5eTlzOGwkRSgjMkJ6OWF4
O1hsciU2eWF0YyZnZUp5X3k7Kgp6MG00RUA9MnFBU2Bley1hMng2bUZRWHd6NGA9Qj15cUZqbT4o
ZlJReGkxbV4wRn48Jj8mUW1TeG5PRXFiR0FgVFMKemhkbFZMPUZmbkE4I3Y1Vil7JHBoZi13REkr
TlcoREJrPVhiVih8NFcxN04wRkE5fGtldSZgTSsmJWoyWEN9PH4qCnpoMXE8VUA5UnRWPkFxSjF4
dS19cTBlYTV2YHlZcHAyK31Db08xbm9TIXZveE87MGBEd3FCaVhxVUEydktscG9OSwp6QUtYdV8/
c3l7P3BDRylnOzRSLUZmbFpjcF5kKEgwVG9OKmZEZyo2TCMtR3prOz5jbF5UX0h9TmlaQjM5NmVp
ay0KejZlWjMpPkcqeyVeTF9+ZiZ8V0p2QnpVVTMod1VJQS1lU09AaExpR3R0fWZWKjxFY1J2NSV+
dlgxOWd0ZjxjJGhpCno5aU5vJSVXREB2V1VKOTJydmJ0PTNEKjJKJXktZnV3c0l+Q184K29pM0o3
YFE5SEFmd2pCQzZAaTFMIVU+PWpUagp6QCEhJSlOSVZZflhST1FQNmhYZSE9YnlaMm5DP0x5MCFh
eENBXyQ5WEZZMTMzKCQjfURMbGZZWkNqN31CalJFYTUKekRoMHF3dEQyazdtIzF2PWtVfTMoVTkk
UyFvXzV3aTN3WlQ2VSM9OWxyQkYtNHVPUnR3KD5eWjMqalI4X2g/KD9DCnpUTT1UaEwyQjFgfDVe
KzFDOStgaFQ9aDtYYm1fazkhKWVBbW11cHdQWmRTUF55YUBCO0FzJTx7UT1KdnxtOCYocQp6VGZM
UlQ0N1h3TFohMUsheHF+M0YkeSlUSnJYJXltY1ZPN21jdHhWSE1MIWAheGBAfWp4YSVwRXtKVUhE
UkNDVnMKejwhYHFVcCQwel9VRnUkMXhSUkdNWUpyKHI9NilnVzhHWTJia0defXYrYz5GTnYtfjMw
b2VtNStLbElUPlk+e24zCnpqTmt1RkBZb208JjhaVDduN1VwUUJ7eitmUDUpfiEmJlZPanZxVnkw
Q013VSopJHJQcz4zZ3lBQjFTUGZ8MFlKVwp6SHtua2RKWjw9K3RGZXp8SHdWS09qJClNTGFnUUth
S2ZRVkRwSSl7aU9MQjU8bV41a287NUFmeE05d3RsT3BYRH4KekRCa0JAQTBqcWtAQ258NWdudjJR
JHUkYjhzS0owQ1BlQ2wjSX1ObCVKd1UjPitaM2tWUWc1P3kqZElEJV4qSGN4CnooeTNOVCROe1E4
Y011X1d6ST1LSzRiYUBQJH5jRkxjJmA2SiEjSFVTYUVKKEVmdkIjeTclajVnUSZTUXVOUjhZTgp6
dC1zJEZFZiVJPFZXOXhfNF9+JmQxU1VjVHpHXyVLWFAkalpKVWJLZGJRfnFWUnBDd2dIP0xlSUV9
KCoraVV7ZlMKekwqamJzJVRLWFEyYUlhXz1jREN0MzJzJXN4NVpHJGxLfX1wekslfmo8NlJeYnVU
aCR6MV5jQ2tvNlJYWXNlOU1nCnp1bk45ZGc2aUMxO2JsO3BpMX0rPCoqRG4kTW1wNEpfaXdaa205
bENAcypIYn0qcVEqUlk1biVrZDtjMUxicmQkXgp6b09XSj8ycGgheTYwUn1uZUhyc2c1QF9aXzVs
OWZNSzlZR3U2JG5Ja15rK1VwYXkqUExyYztBOHlSc3pGSjZtOHoKejY2cDRYOWpzQjxHTTtAWWtQ
ZEN+R09aSTlJPThZV3BpP3ZxbkBUMFFfYk0rYCNvJmBIeThuNzB6WTR4OVQyI3Z9Cno2VCQ+IW1f
QyN2Jm1EbzdPM2YwMGM4ZmZLbHQjUUtqZU9JdiZRQVBfTjBSfldUeFdyfUNFTTRsWV84JGtXb15h
aAp6ISFPfjwybWx8ZjFQYVcqaG4pdGJqd0R+dDtRQG98TmowJSlocVZSMWFxV2pVdEVgbztaRlIt
LW5RZ0ZuUFI9YGoKeiV9O0ZuYEdTcC1SRyRXKENKUFZFb00wXn15IUwrXjdubEt8NlNAQUFKWW52
JjAxKzc1USF2WE9eSGk9dns4RX1jCnpDR2RWTDV8el5pQV9GWFFHKil0b1ZDfHdAZyF2S1duOyZp
ezNmTlQwYjxJYVgkSyhXQWJvSFgkNClTdCRDYmxefQp6Pmo5ZkZTckFSUUBYJF5Ba3hEK28qWHAw
QlY9WDU3YCNHI3MtazVPVTxUbHFXU1RZcnpVfX1uXj5gMkdgb2g1IVoKekV1aUdBUE9eTE0/Xkt0
O21BRl85Q3hBIWshTXwqaEBuam1mX05CbXhHPnF3PUJsMThgeHFrMnBhTG87QnFkM2Y7CnoxbHhj
RWJPPn1hLXA9V2E1U3dOPEY2UytfWkxZVjFJMFZmSlhXai1CRDE2RV9Iaj1YNnV2MlU/SlN1Nj5M
Sn5gOQp6NntMUU5XPWY/PXopMEVEezNlXnQyS1RvYyp6ZytwRjxWOXZpaU9Ob3YoSnFtV1V3U0lh
Mj45UFNNVlB0bjBGZWwKenpVRE9fP3N0Q20tdm9lMTl1ZTE7NmBQKUF6PD53PHNFN3ZGekFCSjVH
bnE+PUB+Xj4rcGdzPnBXcm9HdUhAMXdkCnpocX54ZjxyMVJqYUFCMGtwbztzeHN2dnhJRnVXdCF2
UlBQMzkjXitkQjVaUkZPITdNRHt1aSZzSk92R0BOQUxWKQp6QXV1RmlAeGpqb0xGIW80Ni1LfD9s
T1hVS3NEQzh1I1hvOzdwdSNFdSR6Xl8kYlBmPDlDIWhGcEpWTVl2U2tkdFAKeipVfi1wSW1NOXEy
KEhXUHJLOV4zNTtLaGdmZE1kM3UmJikrbEIwaUdBSExZeld9ZTd6JDMkSlFOMEkoOy1oSW1JCnpK
Y0swVHZxfHZyMmZNQT1PfUsmRCY8X15EdztfcjN3OH4jWGVBIXFCOFdRbzQ4cjhsUEBaaUhzJiY4
aFkrdEdmZwp6KSRiTngzeH1qZkEhV3N8RFRaNjM+bURTWi0mKDFlbngzPV57UWV+NDY9OUxkT1Ym
eVVhN3lRJih1Sj1BI3lxT18KemMxTF9FSWAkaFpjTmphWHEybXVyJk99T1lBMmYpV3EqX3Vreig9
b15WXysjcGEyP3RlcmpnISttaTkybWF8VSpQCnpwMmBEcnV3PHNjMVI/fEQrPlkzSTxORTI4T1hr
LX1oOUQ4YXZCTl8rR3tySVlYNU4xPz8yRnNhVU4xSS15fl8/Qwp6LSkqe0c7N1ZAaWlWTWBXZWs7
dWVBeipwMElXV2d1bkhOTUJzRWJ0e2k4RFh7NzBUI21LcmN8b3dQNmdEQnZZRjYKeiNCYlZXUTVV
Zy0+amw5K21DUmMycDkjNWQ4NHdnbmhmK1F9O0ZucGU2QWNOc1p0Z3FyNTJPOUlGfGlPR29JK2xV
Cno2N3U8MkZJPyotTFZfYyV6WjlHI3NWPEFnOClgVG9BcT07KUFPfmN7ZG1DXnd2dj4jSGA3KXh4
MXdKYFRjQEZDegp6Y1lPfW12RENUcDd0aXk/UVoycGFuNWl9QiR2UndiZ09MZGMzbCRmNztGbSNK
JSYrYER1KCNtY3RuM1FJMW1KWEcKekFDV2ozJnoyOVo+WH5xPmNqWHg3eyt4Wl5JfWhhND9aKitN
LSY7Q14mU2JFckQldilBbntuc0Q0PU8oITlhYCV2CnokemtIZ0dxVHxCITdMZGImSj1ILVopT3E0
RjFgbzxVMzg8JWMhI2BoMjN+JDM1WmA9bi19T2NWUjl0ck1NaExLOQp6VElXcCpOPnUmeWtUK2FT
bUJ5blgjI0NkUlA7bWlROV99clYrUXlPWE1MeDtPZlk4PndQV0s9Qm43TzM8Z2J4VkkKek1zR188
WUF0cWVVdDMpO2RSNUdedk9nISFHcXlLMjQqeD1wIUo/YFUzUTc4c0A/fiVrbzBwdz9xY3lUQmpS
bGw9Cnp6Xz1+YyM3e1AyJnhNailQaEA/JlRxP0tXcW1jRT1DJEheXj9peUIodm4lP0ROJUQlKmg+
I2RFdkVTMWw4aF5hbgp6R0E1dnpAdn15WENVZGcleDhxLVVPa3RYenJvPlNzWUpgNjBqJStIOFV6
SEZCNUdTM2NKPiQ3QUJnZz1Zdl4/akIKemJDd0dTOUhaVDROdG9YfGN3KzA5ZEMrK0M+MFhLbylo
OG53NX1aOXFpQnAhSl9ZVjxzd0dhbTV0UFYmbzZUOyNXCnpRazcrVD9feWxLWlUqOXRWRElfWW9k
fV82NlBGTFVtQWU2cUZDc0Y+ZTNMbmJWV3hRazsqfDdQRXhMNDFQQ3A1Uwp6RVp+NUxJOFUqaXky
ejwmbTNXa35xdEZjMmlpZT95VihJbjIlQ25lYVVyd3NTVz52RXkmR2Z3MT1FNnRIVSU0MGYKekJg
QGg0MmZXV0p3e0c/Q0RAUiVebkA2WGI1bW9IRG4yJURuXnpneEleUDtReFhwelNxMHlVVndPTmpm
fWtqSXQoCno3MHAjIWtGYiRuN0xYMFlaZUBxPU1hSXAyPXw2QylqYmBNOE1OWHRJa0okI0VXaFBJ
QFp3QXR3bD8yaXhhWTU8ewp6QTw0WUh5NHxpRElFVG1yX3o3S0dZTXd8ZVBjaXR5cyhJYnoleWlo
USRmVGs+SjZ8WVF7MUY8Vl8qKjZEQWMoNSUKelJ9K3lXcEdja0F0anEjeVFURTNVRzdiQEhESTJH
c3lXNXcxVFJhRzRyMFFqelk8OzxAYFBsRFFDcWluc0ZZa15jCnpyXm89QV9zZnh4c2F0fTVBcX1r
bypPR2RzTlFiKzlkfl55KilzaDxMTlAoVzR3LSRiJEVpMEBZY19kQmNyMXpNPgp6UGRyT3gjT0FT
Pl42dms8P1kzKiRPJW5hK19XI19fQmVHZEVKSXYxa3skJThVWFExSmpWIXE0SHJoVWw8KHA0US0K
eiF8KChiKyRuTGtEZkNZY21FS2tIUSVRdl9sZ1ApdkglP2BMajNmWHghX1ZjT1FSYjglcCE7MT5O
RF9qRF4+a0N6Cno0Qkt7NnEjN18xKE1OckFWVmYtSCVXWHw+QHZ9WTNJfXJ3TFpiQk1lc2EwJmx3
JV5tcmZFI15fUERGPmpSN0dASQp6ZGUpYyNsQ3lUanIqcF4lOExQejJSdk1IelpuMDx6XlVkWmBO
fG42QT1UQE9Fb09Zcn40K3RoalNiQko+SEN6Y0AKelBSI1ZQUkd+bH5QIWpQT2lFUWVmSGN5e0F0
fWo2SD1FQVVEOU9Yd2FSTVNERC1uPWlEPzBuamIlWmRXcWM1P3dyCnpaVik3a1F6dTlSNj5BcFZv
WG5VQEV0c2RpSkBMNmBeKjZgeEU0NHhTPUw4ZD9pbDt0OG8+WFFkJnM/YWF5bTt1Owp6ck1UV0tu
NzJTMVApKn45QnBwJnByTz4rZkgjdV44Mko2bSRGbTV8fU03YShSYENvVFBQQmhAeT09ODl8dlI1
dFQKek4lRz04TXYqKilKU3FqbE9uNjZLZU5+cSVCNnk1Y0hwaT5mO2slIVJ4JEQ9NkUzcip9d0tx
bXg9QSp+fVpOMXRrCnoqa0JVM2s1NW1JNUxuO3U/Ml5CdngkPXpTVExSQjJNM0JtZEhmaDhyOFJ9
fV9XJnE0aDsodChldGZ1KXFSZyZHLQp6LXhQdzNIb3ZiYlV8ZG9ySDktRlhiJUpFVWludks2KTND
TjRXajxKOUw+dikqXiZXTipoRWB2KGMjY1NpZl9NWHcKengwUEQjNFU5NVFNPTI1dVhSOypIVERH
XnRvdHNgLVE+XmUlN3ZhT3stQmRZSEA2WDc/d31mKzc2OHApPktYaHZ6Cnp4QyNiZWVuNWI0QENX
MlAhTkE2ez5HcTtfcDFpKm5rQUo3UlkheGBAO0V4RC10fGNlXkVCamhLTSN+Rl9OTmdmPQp6eDRv
Znhgd09kSShaO3tmUk9nMDUkXjNkcFZYZnopZ3s2VjVBfShKKHpJVC1gUFlQMUBCKkleO1lxV0w2
anQpIUEKek9tXilFNFRvY3A5VmxXclBZMD9pUUh4RnlRKCsrcXZRaHs5bz0kS0cxQjdLV21BMSQt
SmZOVGZvTDA8Njw8PiRfCnpXbzJ5STR5S2RFYTlQWWtAc0Q8RE1XfiE0OGZpUSNEWnZLfWBCKFBp
WHMxZGFpbzhQdnR2czAzdGA4SGZiPX1wJQp6ZzBlNXZycCs7QiVhIW5+Zjg1QVF3Mm18ZEFiPE9h
LSVPNnleQjZoUXAmZW4rTlM0eVVjQWV7N3hZWFRjMWMmViQKek5zc3JeR2kjckJRNDBTaGBJRHpX
QWNVPnNYeyQ+O0xzZCVNR35vOHdfV0hAd09EWmdzTm5TPTFvYGJpejdXKHRNCno8SmNWbnU8VWpv
d2xZYz5IKj8zKmZLSDE2ZVM/VGZ4R2w+fjQ2QmVlSH4/fTIyVkVmPW0zTWJRTjg5bWZ3Iy0jVQp6
TlU7SEBJQEA1YF5UNnpKVCRxJHdWV0lFJGU8KztfeFJtajYzeF9ldnF0bXFITiF1JlExcXFrMDQt
clJ7TndqTUMKemdNYi1nQntuUDwhQDduPG5INyp+IUR+KmxrdG41fTE4dGs1bTk/M3x2KmxjeWE/
OCQhVGZGc19AU15AaCY1THlsCnphPlEyVHVoN01XdFN7dFVXJHNHZUFCSnphX3hOI0NoN0AzaVc4
elY9PG5lfnM5fj9NYF9rUztaNDI4JlRHWm5WKAp6RHA9fkFKKyVCMTZDTGRjalpWKHJKVmJHdz0h
dVB1I0hwKGxDOEdMciRkWFpMPlUqcDNNfHg1NSUjd1YwWj1QYSYKekQ1eDwlTTdZb0w7Rk0rVTE5
RHI3YCtQbEApNUB9Wj12Sm5lSjtjX3l0PWphNCFZfDJmaCZ1MzJLQlpKOTRJXiV0CnpKNkF8UFkx
Wn1KYVRudjwmbzsxMVNte3lwe19VKDl7eFpFR2luN2dgPVlHeD1obCl7TnJaVGFMdVRMVVpIMUtV
Vgp6Vm98bUFUbGJSUjZucjBBQCRjc3NMXk0jTzNreWstbnw/Qjc7Q3hrdlFnZ0tPdjV3NjIlSXZ9
JFRHe2lVYnhSXykKelR0QVcmUmRleCZudkcmPUFSWn5AeDFCfU0zbkM8Tkw+VXdKXkhwTHBwNz49
ZjZReTBUdyFodyY3JkJDTztvKCkrCno5UTVSfUAwPCNxPCUqeTl7cmkwI2dRaEFUa0RxQEBPSUJ0
ZyViU3l+SnNzeD1DQ2YjdzxhYlY3MiUqRUsoaENjTgp6KH0yNVdIeTBMbTJUZylqUyQoWHRyWWM3
c1NwYUF4PmBePWtgQSo7ZVdsfDxPN081M0s9akpXZjshOVN7Y2s2N34KekQxMUNYMGxyRERtK21+
YVFLKzk4ciVDeklOcGllWjU+bCNjYURrZkBqTD0lejhhYnJfQn48dUd6YT1KNCtBWCN6CnohTUBg
b3QrcyZoR2EwOz54KGRtSDwje3w9amB9MnstNXBobTNAeldnd1RWM1RXIT9wJElyb0M9KkZrTVdM
YCp0KAp6ISF0Uj0rTz89NFpUeUQpRSRmLT4jKX40OF8zSDEoZ3hwWCU9UkM4c192SU1WZXxIRUNO
JngtR1dOPz4ycnJeY2wKejd3clhmLWhoTEc1Y09DQ2ZocS0/e050WkIqIStObmBaY30pWW5tfDlX
elBVNmM1PF9Nb29zMyQwN0w5U2dZZ0ZmCnotO0g8SHlnTGE0Pmo+XzdUISs7UWVQeSgoNGklZ0l0
e2I1Mkd2fXBPMGw+YnxpdHhKc2QkVWM/VkBnSWt2c3VaYgp6K1RSJVg5OCs/d0Ykbj5AXnhLUDtL
fEZXRzlhNSQ9QSRrM0QmakJwYU9Ze2x6NSVzK2ZiemZ8VzF1OGNSPT0tKyUKejJpPkNmb3duUHhl
YU02Wjs+THgxbFowM0MmXjVxeih6ZHA9dnY3Ty1wJSVXRU9APXwmKDIlKjNHeE9HR2dzVkkyCnpg
T3FJQzIobU5FT1BWOEElRTxLamNKY2p3Z2ZAI0FWNXxQeHVlPUVVYTVgX3w3fXNVTGY5ZH5mKXFG
d1NNfnVaeAp6R0ZXI1pQcVE8ci1TIThBUDE+bmZWUnk8OUlDZGZsV1NeJiVGX2xPM1BucHZDRzkh
IXB6KXcoIT5FRjNhbHlMSH0Keig2XiR9X3MkQygwIzUkaiM2PSpXOzRNPVVfZ3JXSkR6fmpQRjck
M2MoUDswPi1CWXl1Uz13WDV8TFAtT1QmP3huCnpraXkoO0teVE93UXRWVUNnPFo/Zm8kMGRJcFN2
Mi1zO0M2LXsrQTxlYkdacSlXTkhLMHVELSkqTjZoNGA+VEQqeQp6NGxnP2psdihYMmJPPTg/cUp7
Y0NBUjspXmxRUHgwcmtIeX47QzY4PXB5P1UjZjFjMENpTWA1MzxaWXEqaiZIez8Keil4cnZ0d3hk
JSFiUUdiKDU7eG4pcExuTUFZZWNyZXM/YWgkdU11dkcwZ35VODNQYG13bzkrSUw1M1N7PSR5aTAt
Cnp7RWNuR0IpUXQobUgoc15ueDUxJCpTZDNwVSZEPE50REVKc0hOWVZEbXw+T3hwPzFNMz8rTkBu
Q1RSVT5INGZ1Ywp6US18ISZ5cGJzNGVeMFg4ZkUpeG0tOXM4WldZNF81P2Vgdk0qMjt5PG9xN35s
TFBKPTgzSzw1O0l8blV+elQkWFUKelhgM3FJdmJ1YSppeD9TVCRAKmNWJj91N0RPLTsoZ1RYOFp5
XmRJSnNwY09EWmxGS1U7MEY3RS09anBPVSYzdT9xCno1bl4/KlR+cSpGWnxtOGRfY0B7aUFhNSho
bj8oQFAofUN+dXslTih3YkQ+eXJ8RHQyP3Vie2NzWUNvPjVYbjJrKQp6JHNBO2Y5O183IT1COUdC
RENoI0hCY3c1REcjPFRDMENjYkE5b3k5MDFCYylAdUU7XzZuKWJyQHYzN1pVKCoxI34KenJqcntp
VXFYUVQoRyg8Jjt2fSlgKHc9bjgtZi1OKXhvKjRpKGZfPlJpMSlwfGh+PlREcjxTNyM0O0psekZe
KGVVCnpeUVQ9SjZhNkpUTVEtRWZkfDFRTnQtfWJ6UWIqQ1NBREQ7MVBIKEV8byhMTD5tPWxicVQx
WkNZcXpybDkrIVErIQp6ZSgjN31OV3h2KEBVIUsxVil4dl5KO1pGaDsjdTlJWnBeYTFZRTs4czI3
NjtRXm1fZXZnNyVLJkBzTypIeCNrUmEKejE7ZS05d0BxaSM2TTl6YT48cGhTakpzWUtfeVBqNGFi
akkqdiRkMHlCfWYpN1VWNDdxKmAhZ0Y7XiEwMlorK3tSCnpsPU5SUkpjWmpxd05AQ0VzMnVMKDZU
ei1SM0FhSDxMfU5pZDdBcCNAQ3haNWIkaSshdnJUQ0RPb15YdTNuKSgwSgp6IVJ4Z0pZej8/ZHZA
Jko+WWo2M0t7Yk16a2NgRDstNStQWWdObmgwbExKRW9DMlk5a2woJm85JUEwdS1jZXU7cigKeihF
YF8zJWdLWTl1VTd2UzdvfVRvUE1kdj5GJXkzdyVoMVc3JCg8RGI3a21afjxISUxXRjYxdWR7NXBJ
YjUzazZeCnpOPVkjUDNhT055ZUc+RCNTdUpIfmtDPCtZSjc0NUAoWUUpMUdfZE1uMmBvIzBUQitl
bzlxXlE7fDlLZ3IkP0VFIQp6JEV7JXJOel4rPENHQDVMeXhZT35KS15LdTYxaHAxNWJVUSpjTD1s
RzUyZG0lQHU4VyZjR3ImbyNvfEx4c0o+MFMKeklwd2RMekQtPHxfZyM5RHJYOzZ8elBmUyQqJV5g
K010VDF1ZkF7ZUJTdEZIKzUrKUlWVFghMlk5eWdFWndIITlPCno4fntXYkgjRXNPbW9AQTk4cj14
IUJgKX1NNzVIPk16YmQqJUR6MUNfcH1pI3dKZmElJk4qUlBEYXlvTkMtKUdtaQp6XmB9JklMKGti
ZSZJXkFoUngjPn08V3BAVntsRHhoLV97MGxFdmZtSmtYdUxPcl94S1otX1Qxdl47UkhKQCoqT0AK
el8rfnhFbWNpNElTcHp3d1IpNncoT0JwRXFGKmFzVnNER3NIZCZRM2VteEBSRGVfcTxRa21gWWZE
RFBfOGxsIXlYCno3PFdHbjk5fXFgZWRhY0ItSylkU0FIX2NLJVFeZDFLTHNTYylyfEVQdVBhK1ht
PTwodUZHS1hZcX4yMj9Tfn11fQp6PyZIXihhX2NLVSk3QylFYHE2YTYteGUoYTBpTmxgeiUlTyM+
aHR3QGlEWGVufEpwclBpSjs9T19MM3MyR2kyJjcKekl6PjM0SCg8eFBDMksqOCl4Tll1eGJadTA+
PmttPmtgPCQ8MDJVR1l1WWVxcDJYak1PJiQ8IzlBdjNgSzY9SnNiCnpZfkBYRD94fnxuVi1BYTtf
RUZuS3RndTdSaFMrTURPe2JkLVBULWI1TVp4R0dsSSs+e2lObTdeI0VGQ2loKyhLdQp6VEBtZi1S
elQ+Y3F7cnZaSClBaElQKGlvVCYmQylEJWRpNC1ZWGt0cyhaS1JRX352bzF0SnVlem5QR1pBXkZj
ZiQKemMlTmpyUXxxJk9eKX5Qem1zJVR+ZF5WPDNhUnpoQ3lIZWYhKjVGXihpdDF1NXJjJmo1Jlp7
UDtqcmx+fVMzaD9lCno3TkAheENZJDEtbykzQHRJM1MwentWe1JWSkhYWSY+Y1pvRXJ5eCpjZV9X
KEVrWlFLIUgtOE5TWnZAX2ROcWgrfQp6LV41cylQXjJpVSRwVSpWNiZXK3hUUTBHYnpGfXthKzRZ
YSMwTTlNQWJtdG8yaUluP2RVaUxfe3dSZSMoc1M5ZGoKekdTcHc/JjVFUik4RDFpK0pAYygxQDdG
QShoOzdeTWpQQ0RCdDhEYSVNanlAd05QKHdrMjxXNzZtbntZTWAhXyM2Cno7SjtaKVc5a2RTcVRo
SHJjVWJZcCFgcnMldVpvP1lEU1JsVW5HcENoQlpjdEZQWTFtYnpZQF9NTCRyMCNIVDtwZgp6YnI9
fElfRD12RU9hbXZCZWE4YnhnVVZPZT8oJlErSDNnYm03PiViZHhvR2FxeFQ0IWpVUiUjemt4cWc0
JWhsbXwKekwxe1NQb3NXc3lPOEs2bVQqUWpeWWF7Nm5rSnVPLXQ0QmZISFghNThPVDd9bSNmYXhk
Y1NqVW0rYGkmPUE4ZDZ+CnozN3I9clIhNXpeZmA3YkFReXZmOXp0PGo8dChDPUl7JVRnQ2VgZGM0
Q2Q4Mk1qWXdnSXBEcy1NXyp7OyFXbz9FVwp6S14hM3dmZ1hWQCUzT2gmYDszSlFaX2h4U1N+fFUm
MnQ7bGshP0BpSGQ1TWU1VmhgKi1mIWl7WDN+JjsxTkZsMEsKej4hN2lJRU12dWd2S2FhSEN0RjBh
KEItM3Nhb20obGk9bVlOaklfK2QrRVkweFN1QzNINj1GTHBuQ1k9Z1BJNU9tCnpIVlM4WnUoJTZm
RENCZ1BsPH5aUVp7PHNNdGRScHtCYGh0c0s+amo7YylKbFhyM1VGISs+UE0qUU5KUWM2Pi1SQwp6
V2h7em5hSXBCJndUZ3A7Xz5HQUY+dHtOUSZ9IW1zTXowV344MlRrPzlIIWhNMztCTyYha2d2e3J8
Uk5Acyo3YS0Kei1SVEA7aHRATFJxRHZEb1dmSEplTXl6fWtwSDVFamF6clJMbylyQVRZNWlucXxO
ViQ1dGYqWUNyX2MlPjJfSDYzCnpJanxYUkBreHkydnRrP1hYemxvVzspWW98Z1E9KWlYRUY4eTRL
Tmt9SnBSSGFvfi1RYHNoUyl7Z0h8Y0pDIVopKQp6cDlQdXBGLWh1Rmx2WDNWVXBUTD1hQX40ZT9w
OEpBTH0jaXtGdTJGUTUoR0s8KWJJcXhNeD9nK3VRcyZyO08wZzsKendLKGRvZ1p+MVRhYFAxfEVL
OzF8dWUmVj9WbTN3QUBVcDFGZUdzJnx1PXsoZih3Znh7eUhjYnw8bWw1PUxnditCCno9RTQkN3ZD
blRtS3hILTxld2hlO2Z0UCthbzlXQUlTT3cwKm8rOzJhZ0s5YjFGNVN7aGR+RUhaZVNmfHlYbTg+
QQp6KHd6Km0kOTFpclV1SFJYUlJFbHVRU300T1o3USpLK0IqSz0+dmdmcTtFR1VqeFQ0Jm4heD5f
aGJoQ31vZmN3OCsKeml9ZSR9MSk8K3dAPSFzKFAjJGRPUTwtUmlxVXF2QWotazlfb3NLUyZBe051
aSZoTnsqa1htXmdDN01tcTstbmhVCnold2U8NlhsdXw8PyotQ1UmXk1sdj1KczwoTD07cDNtemp8
YkhWRX03WlZlZTNlQ0xXZV9NSF5QeG45JWprTk5GbAp6LWs3NFFlbzV6I1EjJmFoMmVUamMxUlRf
bGUkWT0lcTZ6a2dxNyVmQVlAUiRoSSU8ZzsrYURmejx9fUN9SV97XiMKekpNfWsqU3RCPEl3T3dZ
WCtQY3lwK2h5T2FFVXBqcFpAN2o+VVpWS0FOS1o/eFUyRV9OYX5nZSlzWCUwYSM8S0RhCnpuc1lp
bz4tK0pqKi1eWjFmUHI2MSNidEB1R0hZQlVKdmhpfWgoNUJEY2plPiNSfnp+MDZ2QnQ8VUwxaWlD
NDE4Jgp6KTx9ZGNRRGZNZDNgSXJNN3NyfF9hRzBvRVY3ej1BOVV8Wn50NT4tPnBgZDx2OUE/KXhj
eSghZVR5OFRHc0x+fWEKekg+Y3BTdEZUYEFeKmN7cSFgfjdzSiFgcWBIKVVOK2pHUj9+NHd3WkFw
ZiZ6ITModGpWK3FIN0RHUE0kR3ZRVVZgCnpTS15MOzRta3dCIzVnMXM9Z0hUTENFODZaPmZKK355
a1JAP05rMXp1P25jUEA1fjNZNHIzUXNjaDBAcy1xWUBFKgp6dS1TSHtpTUctPWlGaD5qaHohOC0j
a1FuTFpNdTAkKjQ4QFhMLWA5JkRMPiNFSEhNeWJqI21YfXpxLVR3TjRyOWEKekhGKUx7SFMzPEM4
YmJ4SStpYj5PKihZUjAzPWJ2bFMyNXFCXzNUJXlWJDJ2NWZ5YWF8ej9ufHNYfj4qKyl0ZyZCCnpX
RSshTXVybkdKcT5CNUZ2RXM4VHUrQ2FDeyRzKEUheWZhQXBNcVZ9MVRPYDRDSzA2dHJvUD9YNDAj
aTR5UygleQp6Vz1WeGUmUz9TWllSe0k3N2R+XlQkJGRUZ0sjajZgSWVtRX4yTkV0X3V4Z0FmcVJj
T04mfUplXylnMl82S2k5dC0Kel5LVlltJXVTYEBITXBsRllYIUtUe2hxQXNHbG1jUypyMExuTVJj
a2tAP3xHcj9LdXczRU9idT80WTJzP3VgNmJvCnpKKytxTkV9V0pARitkKlh0WUxzUStebnNXT3xF
dCU0bSswZ0UxYGImXmBeJWdPRjZITjxEWTRKdFJTPHRCbi1JWgp6JHtDWSo+U0lvcXY+Q28kbkJl
WWo1NHEtNjlMNygmZzB8NWdWYDM4a19FIUNWWVh5YCNUfmAqMCtpJVFRPHIoPXcKejJWN1QyTXdY
dUlWTlUrV3lqe3BHVW5ndWZzY04yYFcwe3V1ZGpeKzhOSGNkQnxJNDZjJnZQSDQ3b1pAYWtveFAz
Cnp2ZnV7QVYzaCFYZjhoZUgja21yNXI5bWlnKGdjJVhLMlA2SHgwTjAkUmlqKUZqMWhec3FwSTR9
P1pHe1VfKEhkfQp6akJ2WFoxSWwlbDxWdG5rUTk+JDtwfkJOZUtpYTREbWctbG5JRF5Ld3clUip5
UnRgdERSYkE4fDE3bD4tMXJEUHoKenFDQThuN2xXX09KZzdMOFokTClOTTJeWXZPNlVjPyNwIyEy
eGtmIT0rdExGUnB8P0dsemk5Vks+UTc7VCFic307CnoqYDxHcD0jZkViMFBrNFJFazglUnJPR35o
T0QpPGJfNHVTP0hAPkxVeyhBK253Pnp7Q05UIShweEFWZWpPbEl3Ngp6QCszeDJWVGItJl41M2ok
dnIhYipIO2hEZiNIKiNPV25Ze3YmTmYjZyFZKXtYVUw9YjNidzlrTXBrUlEkO3s/RWIKemErWDx3
azlfWWxgSyZyRmhMZDtGLSNzV1Q1ZTRyZnc9dzJyK0NYTDtqOV8yYjkpR1BOdj9xVD57c0JQJVoz
KGxICnpmMzJYYmlQdXo9QmxPJX5PSFpYeiRCSzczPDZlZSNaWkJMdyg/fXJCK1pqUmt2fkgoZiMk
Und0NU17WFJIRSZuVAp6X2FxP00wdlUyeFh7bjlQWmF5eWw3bys3SUZ4amo3bHJ1JC1rOFh6YTso
MGctXzlOQElYMWhXY3xKVmRTSEopdzwKekZiYHc8I1JySWh2JDY5O09fY1I3JGV3T3BHeDw4bnR5
ZXQ1ZzZabHlBOV9NXmJTSGV1eF4jZEEoJlVWKHphVV5mCnpUVCUma1pgKXslPTZlKUIoezVFc1RF
N1QjNndWSFBHaXZJUEp9fWd0WGF3P1MheXBCUXY/bFMreTAlckVmbnBhSQp6dmdpKiZtbllLSCVv
SWQkNnQjaVZBeFh6QGxEMEBYYEZDTVgqcV9xbD92Xih9UEJJajYtNncjcGEkaipAQmZkSU4Kei1W
YWJASFRrTjZXMG8zR1R9bzt0QGFHM1RZaz8/aW5HTUAhX0x4IVJKd3cxbnRtN1JkNExzRE1LKEdM
R2BCZC03Cnp1NGFHbmBJTFJoWjJhMzZ5WDIjdUAhTU1oOSRCMHJnbkdfalA4dkp5LXNZbzImVl54
IXd6NjA5I3FyUl87bVM2fgp6OXsoKm0oKDYpcDI8KSlDN1M9dENVUnp7QHZvRilLZk1uZ2tfeGRf
Zy1YciVxcDlUdDFaM3ozWDIrbkh1JX1VXiUKeilIZHdkYXwoI1NLI0VFI0g1aVBEXyNCSlpJPWV8
JD9WYSpeMTw2QnNrNUF0IWwrYWRSVkYrK0VNQUcpcnZqN3U4Cnp0aU44aVNpVHwrWDVLJmhrYCZV
WTJANSRuV1Y0QT9VVHsze3kyTSswcEcwfDY3RnRiN1RBWkpkQHdxMG87JFMkRQp6I0BSKl4jV3N4
QTcrXjBBSUk7QVM2aWBqWipAJEFfbWV2VVUpQyFhfTwmfEJFTTIkVFQzJV41aTtAUWZKIU9LZk4K
ek9aalYoQ35Le01aSmtjeVV0eShoWGMmJF5wPSpDfGRvejBfP3tfdSlpQWowR1IwbllOVl5iVXkh
c2J8U3d7NkYxCno1ZHA5PmBIYFFpQWk0YVgyfShhYlRQbktJVnBUWj0pVlpgNilhKjlZMmZYbzUz
ODVJSm9HeE1oJFlJM35wPD93VQp6Kzxja0J4bjVBMm1TekJJdGB2dT9QLXw/WCZWdDZxSnkqUWhy
ekdXYEgobkllKlBPYXxobm9JVWJNO1IlemcoRzEKenlEKXFWZUEtYzlVdk41MWNWeE1IekVZaiRE
WX5TfXh7eDAtMzBod1UtUzUhOEpGYns8eXpHVns7dnwxPE5pMjBDCnpicSstUkI1SG4hOzNnel8k
emgzRHFhSX48ZzZZV24mc2JVfXhzY1ByUU4wY29AajtfXihOKX0yMHdVPzBsKDh1Qgp6QCl2SW1Z
cFZkPikqTDhyLVpHPV5uUlZfYmFNLWNEMyUxbmtgSHBpYnl1X1V1dVg2QVlKO20qcUZOUkxVcW0p
PnIKekRUe3VXZnl0N0lVdWowZWdqY08/aWc5U0wpeSNzcEFWVkcmLX0xaE1RVzN5ZlFpQXJnQ21O
dGZQYktgM1ZWMzNhCnp5SkRGQ15Wbl5IMiRIYzVVKl5ULVQzVSR7am5hc0YkfFBqejV7eXJpPzxr
WVM0QU96P1YtOUl3LXVzU1NnaihSIwp6fDA1Z2R4Yk08ZmE2VXhIU0A+N31ERU1xaTxGdUw/M3kt
LWdIOXlvbz5IYVk4Rz1nXnh4eU59dkN2VEdxNlJgUHEKemNpeiM1MVExS1lFaiVUOERxaWYxLVdP
Vlp2KiFQcGhtNjslYEA8VlUjTDt+VUsxeWFCWEJINz8lVH5UdzdgVEkoCno1JVg2fCpDK1lvaDJm
Zyk7bWImK2k/dzMmUkN0P1pvNyQ9MnNCQW15eVN4NFNiPnp4KklTPlFZZjRib0dnWDx+PAp6WmdL
cHdYSEtaTyhCdiZrYU5sNytgQTVWfUgxO2hNZkFyUWxLQ0w+a09sKVZDT0VDbklQMSFjNiV7SCF5
WnpUO1YKeio7OUJVPFF7JnFOU0FoN21VdH0mNjtVe0heY0FxWUpYKFclTy1FaCgmcF42U1lFP35B
cSNvP14mcjd3QUpHKUstCnpUdG81N0BLQlglP3JETH5QTlhoJHV6QjtjIXkoc08zSCshMzV2LTFB
eWhQcGVKXjxuSml9VV90VSo8bWpOc3Y/SQp6eEJiUjl3alhUUDtLPXBNbG1fZzRRS3Q+RGQjNDBe
antGO1UjUT5xSEw0VH43bm1EQnllPWNfSiV6K1FLYzt7bVIKemhJSGxhSjgjcGZpczNVZyROLTd3
N3whPmlhWjtoaTcrckU2e3FTaSgtKzMrPjtoZ1JTeUVXIW1xZnR8PGJXVDVYCnp5N2wxc1JWNjFt
c2B5QUIrTENudU9YQE5jZ3pKNStTLW08P25PM2tDLXRoeSQ/dnJTO0FSP15vWHsjRFNQRn0pRQp6
aGc0I1M1eCkjbD9fdjB6aGpWMSNrdzJ2LUYle34jIWBza2lFYShqQT0/KTtIS307M1dHbm4jU19Q
UCQyNEQ0VygKejd5WXd0WWFUQkt0Jig7bGNadU9eNSFySWpYN0w5anErayhiby09MTdsQjYmaVgo
c0l2N2dCTEdoIT55cWVYdEVlCnpjVTJNNl54NU9qT1MmZEZwWmNhT2xpcTZlJkpSdWUrMHJ5QDdL
WGAkSz0pNkQ5KihLbHl+Sm1raGxiQjZMUjlAdwp6KGF4cUlfZCo4Sll1TE9QTj1GMyM2Y01yeDR5
fnQtJlMmcF5VYlA4Z3EzYjJqeTBwfCRvelF8ZCQ0emNxM0Awc1IKeipTP2deSUlnOCZvQiVaSTBO
LTBXd2FZc3slbz0xbDZGX35NNkFlJGtYcGVHMWt5OXJSenduWSs8ZWByamFaYm9mCnpATWhLXmp8
MjhtJjRDaSozMClxRkhheSMwcFYrYXZLJHpSKj9CbWtJZDZ1NXhnKChyPkRqQnJtTEMxT31LQzc/
Ygp6IW5TRnlGZHYpd01BNEUxNUU+SEBfQU15VkZjUDY7WllZUWp5aitqNDs2d1pLbVlyIThkO2Nq
cSNXNWlLTytCJloKekB3XnshKSFfUkVJNWhLVTt7byl0dmFZPG5aRD15STVDaW5GUyR1OU8qWHhg
Pjd5Zm87KHNCSXJhKjNAbCtNdmkqCnpxNG0lMHc0PHc2JGdrQ0E1LTZAPEtQPSlqOGJ1Kyk8YiMq
Q1olcGdoVyRgJGEkMyl3VVNiRDNDO2VYMShZNF4jRgp6JnRUTVo1R3pmOzJvazBQZi17ZHtKRjgk
SHdyPWB6RWxDazBgP2YmfkYpRUAzRjImWGRSTjskV0tsTTZ9O1czfGYKejR0fCRDJUVJVk80ZjYm
fVU/Vlo9PiNrS3lxa3xwdTBwdXJieWN4NXx2cmlXZnZRRn1ea1A/Z2VLejYtUXdQK0x9CnpVPyRA
KkAjSyRHXnVDbHw0ezt7ZUhZMVBjKXJxeUE2d018NjAqQU1AWEA0QUhxfDtzTlM4K1B4PFM2P3Na
STgqegp6aXxQQ0MjfE5OejtDTmtmWD8rZzEqeFRyYTdsOXY4U2gpe0VNbnE8TmE9fkZ1Sld6QkJ6
VkZyTy1vZnRJTGp0VmIKejl5KzdNP1FuMUpVP2k8Sj88VFhpMy01QlhhblB1Jig5IVNyKDNWOVhf
QmRkeDh9VEN+emczeys3ZGFBaThFRWFPCno8e14kVGMqR1FpclVJRXYyKShwS1pQTjZvRlA7WWha
dTI8M0BlPjtgcEZhdjtQQT5AXnMoUXJmNj5Zc25GczI0Wgp6MGdkfiFeaGQ0flZjYzYmY0s9bCRV
PHI5IUtBM2tRTXU/a3NNUV53PypvPnBNY0gzXm1OUDxgXik1UypfaGtSUDUKelkzJUF8Pz1SUVps
aSlzQEhDWFF4Kld2SFEhJm0/NVpXNTNqI3RuZU1aYX5RQCYmZHxwUiEmXzxvPHFvVkdlKyRMCnpu
QztSc3dIXmwhX1RLeUBKOyg2JkFGejElUyRgKjtkMEYrX0J+RVVldl42WTQrN2peMjAmUzsxM25t
SD0hS3o/cQp6UWcjfCZSTitoIUdiUkVVbmY/P08zRnd0JEFBWFNRcUlSR3B1QTtOXjx4NHpkQz5g
JGZfPkB5OWhQNXsoKCQoMXoKej1xbmxoVHk3NX5tKk0kVU10dEo0SyFhMTlOJlJgb0hIQDdHJEV6
PX1remlTeWdrR295Sk07R2JXP2Fpbzk0VWg5CnpzKCUoU2Ble3tuWXN+ZDVuOTteezBCI0VkI35H
WTx3Nj9BYUdnJFFgQ1RTMWMyKTM3NjB5dWBha1lxQSE3ZmFUbQp6OX5LQndLPHlVSS1gXnpHVXsl
M2FpWk4hfC10UUspNGd0dGRpdE1AZChnblowRzZaN2Q3VCQyX2woQHJVTiNZN24KemhfZk9IVCts
NHQqNDN5LVZrODFUPn1kVzl3VnMwdUUkfERgbk9FMW9jYDBVb0R5RV54PlJBQCttZko1bz87JjBD
Cnp7LVg4Tzl+dCtEeWNVZjlKRm9iXjYxJCU3aUZ8KVZ3ZiZ5RUd6UjZmaTw3PzRvJlUrMEt2a3Uz
Q0ZfZkJnSlgzUgp6XndMWTx0PWdJNGxOfX57YkJ9RCV6Y1Nse0hhV2E2KFAjbnF7PEw8Q2p2dVhJ
Xnc/NEZOaUU7PCYzfSlOM24maVkKejsmSF9AaU5ITHwrVk5UQ1A1UTBEKyFjSl5zeXhZTD0takB1
TG48bnx3MWdScEU0c0o7eTkwbFFgMWJjYWQoJF5uCnpia29nZyh8fm0+TD8ySV9CcFVJQEFvZWBO
bjhGUSY3SkR2VWBtTjA5ZzE/KChhLThaWEpKQyVoc3shODt2fmdtSgp6RXptbUwmeTB6dXJmMWRH
a3BRTGBmVkB1ZyQoLTs+QkBEYz5TTUNPdU96NGlRTjUqJk4lPkhkUj4lYT8qVm4yQ2AKemN5KGRH
M3A4U049ejhTMSpTTmE+X3RxTksqVERuOUFGUEtSSmV6JFY8akN+NmVyQTdiKm1ncSl6cHJ6Uko/
JXpQCnpVbSoxVG93cnx4RC1SVWFWKEleeCVXRTdjb2pnNyFEMWRMdntpTl5gJUsoMndhYzR5JWxS
T0pwaVJTbFA0ZGZuQwp6K2s2eUF5Wit1aHB9NkdaZ1Qrb0FURVkwQm9RVGNYYlQ+T1ZJYGBaPmBO
OG8qQTN2QklfKGRGOTVqdDtSLWRqY0QKelNkLXQ+JFF5MzExTCNxfXE3b05GY3tZUj5lbE9lYWMl
dFRGZlF0T0VYS056Q2hQYF58PHFIPzwjfT4lVHRlcD5lCnpAcT8ybmFXc1NQO1ZITmk/O1dqelR7
X3hlaSUtYjQpNmlaeHdLQW1QJitOQnRvTE9rWmpqSGZaWEx+S0JvRil9bwp6JV9iQC1geTZkbno5
PjckR3xpVCYpK0I3RGQjQ2A+K3ExMG8lMkdoJkYtKWZQe3VleHU+QmolWFg4QGMzemNkS3EKejEq
bDlaKkNVUDBNVlY+Vypwa31RX0tRK3RMPFh3U0U5SUg4RzxRPlN7ZCNjaHQtYEZkN0J3I3NzJkhs
c21xQilICnpCb15TX2B4bF9rdm8qVVZJWXE9OVBzVGVfVSRZZExscVRDPmFwO0FJTGphe2JhZz9P
YzJ6a3hiUSt7SjIxb1NxJAp6Sld1X29efldkfDY+PkliI3RYRHU3N2M2Xz1jdWR0b2lKSER0aF41
I1haO0Q9OGJvT1h4aSk7M2pmMXQyMVhOUXoKemgyNGNDKjtxJTF5ekhuOGRgVnFTWHtvdFpiKk1h
c3stajdCYkhAPXZDZzM5Xj9rMDFUZUFQWjglUzhQezVNWlpBCnpZRWNnbSZ7PzJfLW5gdndvJl99
PHBpeW49VSE7Tj9xRFpCdiNUWjZgRSlvKzxGfGJBRjtXODEyJCgmUjlBdXNMfAp6SkF+JmxleiYp
RiRlO0xAZ2BLP1FxNjllKCNgTUNlWXt8M0JmbDNKTkhEKmAzPjYjLShqdXE7Yk84RzAtSGJ9KGIK
entoQm0zeUg5dXlxaTBfUHt4SUBwNVk/TUQpYWFWWXtOTTIhZihmSFRxR213MDhKZnN1KEh7czAy
Ykd7PV5BJmZJCnprVVN9M0tCfE85JFB8MjY+RFZSSjNPQUQramR7TlAmemFjczJRdUM2VmdpVVRv
QjJkVE9wZlhNd2dzakQ3TTwqfgp6cSV2bC03MEc+U2h4OVZuSWRPRDMzN25LP0wjJmFIMyZPYURW
Skx4JD8zX1d+cChZenBfUDwoRiZ1c3g5SWpaYVEKej50bEtZRE1rKHQ7OTxCdGUqKnV2Nm8pIV8o
STgoQ2VmQXR5WW9XPVU/KWFBcGVXZVJZQXQjISF6enxQU0s/IWR7CnpYX3ZvIVIzUDxNYjtndWND
YGtZbkJOcChfZWlpMXtPUXl2aT9jS240PVRHVWotP3dUQ1Z7K2Yhej4hNzUweilnaQp6UzVrPVFn
Uz5WISY3Nnk/PGlrWitvTlFQYmg8WHxvdio1ZVhUNlIpcURGWSpkO283JnJEfHBKNV9QLUo3YzdF
NSMKekxNVG52TyhnJDNuPihKYEpiQT5SPGk/TDFgX301I1V4cWdvO29wMWU8YmxAZXplPFZ0K3Nn
cSt0KCRxZHw5dF4oCnpeTFJDemNfWD5RQWBGKGVjaEM4YERhRDdgPElPKyQ8dlQ4Nzc5T0JocUVO
TFIqdH1mdW1IKGJANVY4YSVXTGA2Pgp6cztKTjk4a25xa29uLUl+VS1mbTVaI0VxTCgrQi1PMEIl
NSR6dVVTYkFEfGRXPl5hOWtBPGFtdUxLMmQhOzctYlAKelkoczQkTlF8VzVyK3A2Xkl5IW1qd0hH
XkhKNEVYUzA4YThNM3RgcDt0MXp2cVI0RW9fOVc7TkFKaDJPTiZwaT1gCnpOZ2pxZV9NTD1oZjNW
fH5raSFXQmZTVnVQXkBVVk16bSt9eE8jZk4pJiE4S3xuUmx7KU1sTjZTJF9MNWI8R3AwfQp6dVky
XjYydEtkJnF2SEt1Nz43MiY9LSY/I0RKLTZ2I1B0XztpQkghcyNAbzlsRTh6LWE+cUpqT1JoYVNx
cFFDS3IKekdOU2lNMGYjT1UlPjZ3aHMtWG5tRDRIfXFobGpCNXNhOF5PTyNnakk0VUotR1hPbFAh
JnBCQHllKUUmfVZzRzt2Cnp5eXR6X0JHVFYwZHBkMkY1QkdoJTlNaE1pQHNYZHRuUVk7SSFmOSky
QiNnKlNCITlXUjYrNmg+MnkqZHt0R0xIcgp6TllvcmR4TD1nXnk4dUh3al98JUx3RXZqek8yY3pt
VGFoUWNuSCtgRHdpUmFETzJITm8kaWg2fmJYMSpuNCQxLT0Kekl4TV4xPm0+Q1E0eW5UcnM+TWgt
QXx6KE83fmtWelVxMn5EbWhRcjtmTXtTT0RiO3ZSeC1gYnhqfEtLdFVPXlFCCnpeISM4QF4mV0oo
QXA8UkI/dUUmV0BvTDhyQTQ5UEsqNl5OIzc2N28pJG1GcDIhcXVwclR+QVhfUn53YHFAQTw+Qwp6
bjZxWDlRdU98ai1sNnJtMlM1RmFMPEEtVDBLV2RAYzdHPUEmRGNwbGR7YTUhcFVXe2h1X0twcnVi
XlkxbHkzZiEKej0zelhyP2pXKitraTA2Y14hcTNLKChHeDBlc0ZgaFhQN25ve3JUTkVWTk1jPilF
Szl4KntQdG1sU29aQyFeb29rCnpvIT47d24jKy1pa0lJYzVBZDBATlpBZkpUdlEwPXItP3BhQDJj
R0xkdSo0QDB6anoxUGhEU09QQzQycm0tQE9WcQp6ZSpXI1VvM3FZMzMocjNMdGgzd3l4fjJAKlUx
SCRJYD5zVVlkN21UR0JxIVNjMnItTzFIWFR0RClec2lBWD9ncXwKeiZGfDlhPEk/XnlaMjZiMGBC
NE5FVn10QDwpYlhlO0IpIUdhbjRDT0ooKHAzRGkyPjtDZCYleUtUUjltRlktOXFnCnpKe0txYnps
KHIkOGF3diY2Nm9udFg7KFpYJCVraztjbEFBWldLZ0tIdjxAQElLPjw1Ryp0Jk5tUHw9byoqSl5w
Pgp6QnVJQFQ2a2Q8cWhiZVJ7dnFNNFdAfmRiUFI1MUA3diN1UlNmVUVeKlB6KFVYYzxMOT0jUWR8
RCR4MlhtKVp4RyoKeit2RmIxenZ5Sl8/SGZnO1pPNDNVYDtWNXR1XyNVcTBObkR9dHtjLT88MnpB
cSlnNFU+MT8xTEhKT1MrSG5tTWNHCno3Tj1NcVo0VHBzTS1MIUZmV2RhTUgyPnQzeWleam9vc1kt
XzxCO0Q+UFk+UipxemcrPHMqJX5SMWp0PWA/e1Zlbwp6ZG1Jb2prYGFgal4+SXUmfDhwPkNUUmRr
NnFBOSU0SV9OYUtXVCMpcCEydWozME5+RUEzOz9tVjk+aUxFa2smblQKej1kNGEjZWRgQyUrfWUo
PmVFQk8jQ1g+JGplKmRaZks3MzkmelRmKkAldl5tWXloYyh5enJXYnBmKX5qND1iblorCnoqSUlz
dFA1YSR+aH52PEhfazxxTDthNmw5OTdGcEhHWDlSVXBZZWBFOG1RIXk9NyVOeDB0VUpZPzIrJnJV
NTd+Ngp6NkRweWUtWTI2NnApPWwhM3FKRz95NiNEQSt0VnYre24tbkNJRDtjRiNJbnZeSjRiVHZj
T0t8Tk52VTY5bDBHaVkKelEte29EIURRTzszZCRYUEphKkJSVkhTR3AtTlVEZmtZQFMpWGJBZFlI
RmtDYDRhZT5+JF43ZGZRXjRtcmp0SD9zCnppWEQtTUAmTGZoRklaV0U2RH5kKEp9VmlCPWlzNWc+
X0RfOWpPRmgqOEdSKXNYemw1fTllP0A5Jnd3M1ZPcXU+aAp6Vj9xR25VbW8yUk97ODw+MzteOFdt
K1EzVyY4bjhUemJ0MHFzYF9IWWV7fXN9cTsyOG55Q0V5KGBlN1YtMFk+TGUKejxUTmdgRztuJl45
ezRnekVMYyYyaDBEcSVhVlh6fFBxVCFja0hDe1IwaHIhcDYzYGFEMXIzK31zfFcpKDxuOVY1Cnp1
KE0tV252SUFGOzkpMT0ybzYybkNhPH5hTjF9VFcoSVh1JntHflgxX3xKRzYlXjBpZz56ezdgN095
JVY0K25wUQp6eEB1aVlMJUdTdz9OMSthSDQtJWkwQ2x9az0jUSg+an1odTNodWBzcCtCT2whaX48
fUJDfVYxVjkpe2BJX05KaioKekxaOGpRSG5OSHBGeGc3U1ZSanU+NG5QU0o9RD5+RTh7WWsxeXpQ
b0pCfTkwKmJxRUxPbzx8flN3R00pbkE8Mm42Cno9ZX10ITdTVE1wfEtTNHw8e0EqWThIdGs7ZWVB
NX14MHFHVEJaZkZndzAjSWhLOVhSWVJLLWxmTkI1anBtPGszawp6Z3xqPTBPYT16MTFQU3NYNGpj
UEM3fXBaOEl2SUpJSV5qOW0ya31DaXMkS2t8XkgqWlp5aGRSR29XI2BmJW1NVzUKellzSCtDN292
TDJMaFNBdExoNmF7bW1fK1ZGNHBTXjBLV2QldUQ3Umk8fnFCPEN1ZEpfKihHO3dObjhFZ1dJK3RO
CnpETyt9UjxKcnlhKCVDbF4lVUpQI29gaUhFIXZvMGV7KT5jXlFuY09vVXB4aD9ZUDt+elp9Kl9J
VCpKdntPK2pzYQp6UD8mX2g2Y3NuZWJZNSM3Mk49QWh0eGAzTVFHZlhsNURiLXo3SGJgZlZLNFVA
Z3pXQFdRR2xqcitFalJuU0Nrb3YKelZQd3d7cTx0bTBCSm1oYUBPfTdnKGZNOV8wYFJNa1ByPHMl
cENWbmdPMCstTSNzNy01fEFyJWQoKH0oKjlvWTh2CnprNE83T1h6ZzMzamFsTld4b1pSTGItPjFg
N216SSsyU2k/eSFfVDRwRV5UaypFRTdPP3U+aml+ZkZ1bD1lVnJDbAp6VXt1SDtRJk5qMSpJJGI+
JnNaZUEzcHIyIVhqPlN+MWk7fnVsIVJSP3Q0aT9wSCFyfCtuayFBKXhgezNIVjhvQW4Kekk9MU5v
MHs2c2JveCF+Iz4zLUxuJThRQDFSYCkzd19QSlNeZlUqdUZaRj9hJVJVSmMybTwxZG0wMnQwPkJe
b3FsCnpIeE1mdkM/LUpyMEVhVDw/T1p5R1gpRVZxJlN7RytLTElJKD1NU044WiExYmBEek5PNVEq
ZStOWG4jLXBfMU8zfAp6Wld7NzhWKiMlPzBObkRJLU1mP04rekt9VWFLI29FaT9IVHJibWUmTyN3
e0ojdiVlUk8pdWt2NGBxMCVtTzEzYCgKemZGPWBCLX01QlFwJSY2UjBhVFpKYXI7K3o9X2Z5YXxJ
Pn13X2QrK08mSTtqX3YrSWJlWWElcTcpJGxefCpvOFZDCnokMFhwP3BqNUM5LWl2PkwjKWohTVUk
WiNXN2VRMCtzTUE9MlV4ZlNQWGQodXt3M0FIJHU2aTNLMDcjQHdvU2Zaewp6dENIKCtzRGtLUmZW
TFlUTWwhPzFeJXFzNGRGZU9NVHloYkRUMCpUSkduJk0ka01FTz1MKH1FIUZwSVM/RVROTUMKenhu
STQ8b3FLck12dDBJQTBEeFZUV1ZRWFdBNiZfMkRxKiFCdlM4e00+Qk04dmV5NnpUbjFtcEc5TktU
TzBjOGopCnoyRVlZYmRQYVJgY28ydzFvcGZvX0J2V3FjUW1uckllSz0pI2dJbyh+eHN9UmNhNXkx
LTFVT2whdUNfI2UhPX5XZwp6NEszKTNyTz9ONWQyZi0qY2JpMU1lNEZ1dzl6V3V3ZVk+Kyt4K0k/
UVRsbH5eYjw4Z2IzSmNJKEVQI0stZXhlfX4KenstZEpfbUExXj1Ee2NzNHdXe34tWEAlQjVCS2Bu
NUxAc0A8RUcwQUdSQ3VqazJgJGVhSz53am1gRiFibEUwSnVoCnohUXF+UEo9dXBwJWROeTs5e30p
O14qaVVLdlJYNXpefk5qIVU+XlhkZ3p7U0pvYzdEKmwrU01PbChPRnZ4flIrTQp6KXVGRjlmPFky
S3VjPk8jJkU4aCVgX198T2A7ZXZ5YU1qellAc1RUUWtzKHswKD44em0hXmJmKWwpfHojKW1WMVkK
ejZrP1hyKCFzTCVKXjUja2FfaVc9X2B+UGxoSzJLJihwPTQ4VXNvNntnUX1tdVpuWCFDaGZgdCM9
I21JVHp+Uz5ECnotcU05PT1Ldzt2SUlkMHE1MCtKJHNHUzI7Jm4tcGUkIUROekAlODkwSnluRkNa
JEdiR2VFMFROK18kU2sod2MzJQp6VShGMStMcitzSnltQHYrTm94LUZhd1piWShQMD9UREQtIyZo
SDYjZXkyQVhzMDhOKkc8bGxSUEEkWkIyXm9CfkgKeihjY0tydiE3cHc9c1A3KVN1MVY7YUJhcS1f
UXlJTXQ9QSZweD1kekNecyUrUFZMSmZuSnU9NlRPfk4zJVUoMks8Cno2PDdlUSpiOHEoNClqJVQj
I3ZXaWdjSWppMl4qOXl6RSpRcHlQVE51JXVobm92YTFKT2B2KSpVKlB4R0JwazBBRQp6LWpMcFde
eTMqR0ZPSEQ/cDVwWjNmRVBIOUMhZ207NzJWXi1yNkszQypoQktxPSRRN0NEVk1kPHk1JnUpQzdp
VloKelMoTGBSeTlMQCUhfnA9aWtZTVRDUGVEYVByTSVVKTx1SDE3eDYxM2ZgQk8yUU9vWilpe1li
Vnh4NUMpPEtiIyk/CnpIdnhmSDZhYz5aKnpUS0M4VH1SeHtsJXJxUGt7aHVgfDtIYzZZYiRlOSNo
R2ojNzIzVXVVWWlpeHdBYDNmN0skTgp6Ylh8ODQtNSUrWmwtdSU8MmpCbX5HfFptdk4xOE5vczRS
I2JXTHJQez5sZXJyQEw9cilHZn41KTA2UHZYdD93K3MKejwrMSpUbihzJFhgeFpgRWJPSiZpOWF+
IW0oWiRVYEVndHxvZ3xhQ2YyUkY3TiF6PXUtP1o9Jkkybi1fYUoqWG08CnpHUGYqXiNaXiUoVHJt
PzNEXkB8UFRMe3d8ZlpzQHttUkJeSDxNalFUKlg+NHNCeHg7OVFBR1Jzd080Z0YjdnBnJgp6WEBi
JCFoRm1JNmxiOT5ZZU55MzI1ajJTej45a0dLQ1Ujd3QjYzBePCQ8cTBiIzcjc3Bud1VyYEtpXk41
dSNlMGEKenp0ayUqNU5NJU4wUj1FOWNtbmlaaU56ZHZeOz0pd2U2U0B6OStxYjM1VVFTNSYpS0E7
SS04dlJNfWx1a3FMMDt1CnpuT1RCOC1MIUVjPSlAOFhLaGY+O0ZVUSN6b1FVTk1ZTmNZWnhRQykw
LXM4NCF5RWluOFE+YDxka0AkUnA8RkkpMQp6UCFgQXtBRitVfWYlYkctaDRLOHlYOUUxWXJEWXxr
PFEwZERTT0RMQEJnNm8+WFFTZmB2fTEpYnNVVH1yY3djQ08Kem1RMU9CWmBSLXQ7T3RXdVYlQTl1
MWwrbV5CLStSZlV9b3RMYG15fHlRXyk3cCswb3MzRTF2d3ltKypRM2ZQWjsoCnpTMn5mKjEqRlde
Njg7IzYwIWc0YTg3UCpfTlptajhfYlZycT1MSkF3a3Uoays9JERtJEhJNV4qX1RSZitDVE5Pbwp6
JFVEeGcjRXNZMms9PllZNjJVM0RfeTZ9KCp1QUw+dmxvO1MyK1laIXV0JS09dH00TjdLdjJUN2RG
ajdrPkI2TyQKek1rZDhtT30hK2ZzZSo8ZTJDclg3MEtmfS1heFE/fihZTGZMZlJEVXE0Vz5fPDAl
PSsjOGRSND03cTNUYGg4ZVAwCnpDVnw4K0hYWCZFTiY1JTlzKlAyRmNJRTBpMXxfMSU9N0hfZEpE
UU9wcChoPVBzcFVHQk87MkokZUZCWUA4Qn4+IQp6VH0rU0MwT3UyIVI7LSU0Nlp4ZTZBV0xqMG9i
WTJIN0Q4ey1od2ZwMWNyWHowVm1RaTlFU15vOCNVTkImZ2pMJUkKemhlQCM2MGhpYDRvLU58JiVV
QjwxTVBHNn5ZY0Z3e25RMGkpbWNWbzdnKmJneEJpMWFSPUNvKllkSjk/d0o2dE0hCnpVfj5vaFQx
SlJRZHZHTEAwR0Qha2VCKi12ISUhbiM8RWl2R29KYzdhRmRsdWtlPyRBODhWcTI1WHtaMUljPStp
egp6VHtMZjdCa3t0VjBRK2trYW97eF53O1dQbjtROSp0MGpBN3YjRkRxSDVwZTY7Kl5KZ3JodXxh
TyYhI2UxJTlWcSYKej5UJDRoQWU+JEluT1owUztQSkE4eiQqcC1VO0UzPihARlZsaVlDJWhxUkRt
T1E0MHRoRnlReS1iMXdIPyUzWGt+CnpPVkhYbmpFP3FFYypQZD16fVdxUzxlRDJhS0BFP0laK350
byktMjxHZiUkTHtRXmNYWlFRWSZSI31OJUBhTUQ+Ygp6dXcrJWU2IVlXKCExZjJeYXtgYE9feXRV
ekp8OEY0bXRnJllaajJfZm1lKkYlYms1dUUqeHJNMStsVC1GWi0qLXYKekZUWmRKJk8zRkU8U0B3
Zz47KXE9d2ReO3lgQ3t0LSpyNlckXnl3ejJVJXpRblpDUEtNMVRIY1I5TmRqdWF9JnxhCnpCJVBy
VEMoVExYPzhQSGtIWjRLSSZmU21iU1klfSZ0S31qMEUzX1Bpclh7USVQcmtGVF55bFpeZFpnWGN4
KHx1MAp6NTMhNkZUPzdjZEJZcHd9Rlp4SHdve2Y0aTY3d1F5SSFVZ29BdHZCZFFJMHUlVWFEfXZs
cClONXVKZkJOZzVFZUEKenI9RDFrd0l8UCVGdEpsK1loYGU5SFJlRmFERTUjXiN5Un5GVWNRWmNJ
eD4wamtEVndhNWRyJUJWcXpMMmJnd3YrCno9Tkp5YEVBWGsjI3FPNDZFY0ImeHtnempoMn1Ucn0w
VUFjPXt4PVApRHBKazhCT2M3TWBvcis8WkgzYiske0poXgp6VDJmaHQ2RH5kbHB7aTFKWmFkLXQw
T3R6U2xKTCpEYTVaKnlhSFEjKGxkJGhEJkoyOW5TLT5qPjA1P0NuPnpCIWwKent2bDVNO1QzKHRx
fWZMIU82JUpJcGc8c2x4bD0yTXsjUWFMYiRZbUkwQVhIR2cwPDBMNUE8RCtpU1E4RiNMRD80Cnpf
X3UkV1lFXlI7P2tganR6fTY9WjtMKkZicXJBJEdiMXFxb3MjP253dSZLWXQpc0JuKS1aPUxyXyRz
STRxIXxAPgp6bml4UGRYI3MkaHBrdlZZMmFnUClaJUBCP2V6e3Q0I2k5bVdiSj5jNTdHUVNJSUJE
P31AUlJufXV4PypCZSkwU2YKeil4NSV7aGNZQW0kfVQ+PDU1fEdyMVJfeHFkbXEtJFB2VUpXTXNV
SlpWakNXPVB9Qjw4eFUhcEZHdFNKdiZjQWRVCnpfQlFMMGYoV1UxPUx1QD9mKSFhV2ZnTGV9NyUo
KklMRHdKYFBTSnh2Vmw9XkBiRHUmNTN+V2V2VV47YUNXZ287Uwp6d0NaVn44JUF1KCNEYU0+SVFO
WFg7c24lbFlWODJjWUJTRGpGems1cEN7blNrMFA+KyZRaEc+OFlqKiRHT25AKUAKelQpTzd2O097
Mz9LMFpgUGtVS1BhMzBRe04kSFZzITNaSSRZRkQpLWNnfGpOSzhoanJVKyZmfTBZQXRHN2dnVkA/
CnpscF9HR2VORl94ZWFrbztjO2NtfXFHb21qK1A1PyowMDskQ3t8TmYrJTFjaGNrKSkyRXA3dllK
amtrUTJlcE48fgp6bW8rVC1pVUdpdio2cDxEZUBhJks9Xj4lIWUqYkkmRDJISExLJXVyV2goJEFO
TTU4NExFRHI0SkJfTHAtQHNvZiYKejJjdygpQXdkRUYxRTBSQzR3dHtKbDc0JF5HS2dqK2xpY144
OD9rP0Q0O0MhMSMraCRoPjxDZF9fPzB1ekJ1JTx1Cno9NFgqOVh+NDNeR1ZKYWNNcUdSb3JxZ19y
ODk9TnJoS14wMGwzLUYrNjJQYjRlPTRUY2x9VX1lKD01YDxvcWNebQp6NSEqKU14Tm0wJW87dXY7
V1JqVUt4e3I8KW4wdlAoNzRHM3gxK2FRbjR3dFBTIUsmRndgQ2RBd3N1PitZYzRmSTAKenpofVE/
eTFqWU1PVCY2Y1goRX1mPzFQWEZ6Kz9jPkB0RT5WWT1QVC1eOXQlWVcoOXVxaDVmYDVkfSF+fSZf
aVpLCnpCPD97aFlleGBPZ3Y5fWRtdCNoODNHdkV2OzlJJXw8PUtvWiVZRGl6dm9MTDV0cVJkdXdJ
WkFjdXd6M0RgYTRJWgp6PyFQSVhscUtBSm9QZ3VBc0omSGtvQT05XnNRM0EjUGskQFQjUX56KlVk
c3R3TEhCSEZUP0t9N0lkcWReTl4qVU0KemI8ZFdRd3lwe0kzO2g1ZCltZG5GX2JAVnNDZlRBKzFq
M2Bqd0JCdXBwPmN6bEc1aXhieTE1SV5TJSNVYj1jOWU9Cno1d3ZWPjUoWGZDOUFXe0Imc1lrfnNt
R3E5LUd9dFlaZD9KZSVVKiozYVB1U0VQbyM2KnFxX1RLclBgezBJRjdFfgp6NyFwTEd4RHlhMzFv
OFV8WEg/NiZfazNYZWVOaStZOS08cFdSNE5nTnpVXlVCNURCVTBGQUhrOyhhcUQqRnZWeEoKejNP
e3ltKlBoPD9WY2RQJlZAUmlVb09BSkYldnNWdjNPOHEmMEE2ZVEoIT8jRGc3eCorQlRCa3FNcjhu
OUx2KEJ6CnpTQW1ZVDdDQFJuc2NUYWdCNlBnKHlXflYldXkoRjZmcSstX25mRl8zMUdMbG1KPEIh
emhrRyRaelhANmB1RE5ONgp6WCNMUjxWOXlxMFRBTCZ6WmchMV4lVEpFcj4/SH1CRCtaWXN3dGEz
SmtOSz49TEpiZSt2I34rSmJick5xayFKPVQKejRgKCRKTzlfPzBVczQ4N3BhZU4kVFAjQ3FKeDdj
c0x6KmB5JDYqKj1CdlBheUJPMUJ+PkhaS0g0MzV4YTZ6Q2w/CnprUnFtI3dSJGJzVX1yeXk4MVY1
Mkl9T1hLZiVEJnUjITkqJD8wfTxmSHFOZlg/ND1FO1goKTVuRGNyakwyPlFyRwp6RVR5XkFsMSF0
VVpTSVUoJXx+e35BaSh8cXQmQlU/X19iYVZia2VqI1g8bUZIcFJ2akpYTClAazhpK2x7TlUoPSEK
elppWXpeSWE2fl5TcVIwWTNaZyp0RVZnWlcwb2lPTncxeWcod2RLay08RTdLdmB7Q0smY0M3WmQy
Mj1nMUMoTSRoCnpweW98WT0tbDA9MDA1OCVHRT9VX1ZDcmQkdSZhRiNAbEFLayRLWEMqTG0qQFF7
QUJAd1J8RWpRXnphVmx7a1E3LQp6eHdNei0wMWg8fChQVDxWVSQrbm0+LTQmRURlXklNJUp3e1h1
cGM4czNBJXJOJHNwNFlaan04MDZsdF5iUEFiUGcKemYzKTdwcSNKK1ZZempSMEBOVFVDIXlZdXVF
WDlTRnVSPyhBYW5gREtNOEw+cEY9cjlrVFFqZjQxQTdOaDlyVmdsCnoqSThGSFBDRjk3MnxJMEB5
UmZqYjZyYTJIRzt2MDtOZlY8PDdvaURyY3AhQEhvbmJUJk1sYy1Ec0txXkQ8cjEoTgp6ITtaN1Zg
KGNwUVBwNn16YnVLdzZnXk8zbVAqYldDPXg4dzklKU1DZlReaChON0lOIXp2Kj5zRUtiNyF7YUZQ
fWIKem02VntPdklaNFopdV5hZSZ3KmZ4PFBHcXVMPHpFeWhhd1JTamZ7fEtGaFY5PDFnU0kmajg1
IVV2I0taQUpNS2R3Cno9fGVjP0xvV2VDKjhuZzt6JVY+WUhnZTJGTGJzPXlDYVgyUUJvbCZJZlZT
ZG43fFlqUzdFT2xmQnwoVl91PGMqVgp6aURSPj5XS0dEbjB8VE5oZDNvYF5iT3VMQnQ5ektmTmEk
RGpfVTJUVUFWR2YoKHx5WClgOE57YVAzSF9oZGFyM1QKemZuPzViIWd9K25PRUhAc2U2TmBxPFAj
cTQ+I0Y3ZCpBJER8e2ApXjdPKHQ1ditXPSEkRXNWTTxYdkYteU40Z3ttCnpGa1h+X09gM31PRHkr
S1ZPKnJ5dzZNN0gjMj0ld2BueEJxd2BQKXthRFYjdUclaWltO180WiVrV283fWQybXQpXgp6MUtX
PSMoeipGO3xGZjUkOCRHWjw0Mn5vKkskPztyRzJDMDc2S3ZTcSZsZiUoUDI9R0hLSmYjMUpPTEhA
OCpaWnUKekwpd1k3KFB1d1VrSU9Fb0FVYjtkVHlWfTU8TCY8Ymp3akspWnhFLVBId1AhM3ZsIVg1
RV9PZkRASnVwPilue0ZYCnpoSTJvT2tOeHIpQGt7VW94MGBYZ3lZWGc3VkA4ZSk7bkVXdVE4U31m
TFdSNzNBU2ReOShxIVZNOXkhYS1jYjQmJQp6e2dDa1ljTFRkT0JpWSp+bTtVdG16fTA4UXV5fFVR
MEVkbnY9YVQjYTA1SjE8enZ6QUVFZipNPT8oYVlXZyp8UDMKek0xOU4zJTI3JGVVUTxfKHN3d3At
RXYtTng2ZUlAWVJ8fEk3Nk9Afjc1Q3hCP1FXJVghKEtqP0NrTik4eWA4JUNyCnpQbUNlVmhuTDk7
YDJGJC0obXJ5IWtKejQ5TzBzKGZIM0FTWEl7UXN9WkhOaHhBY204MWA2bT1Hc0o7eTx2eWJMPwp6
U3VNMTtVZHwycmE2KHhTbTgyYypfR3FAeGclez9+Qj5Eam48WHN+JXdNa0FaPVl9Q24+I05KO3R0
XjNCbnl2LTYKelRsWlV6LV9CP2ZlYVhCVFAqKW5uKHVSdEgwLSo3UGhNbFkyckYhQDg/bmYlcGY/
KVh5I3FoalZjKnR7bkNuPWpVCnpwXjZmJGVEXytrP1FCRXVrdl40R1h0JDUyXklVUHg2Nzx0S3c2
PUhOWioyVlhXcTZ0VzBEcDQ7YDBCJlltcW9MSQp6U1VpIXpEN1NHWTBwWGYhRX1fbEhCUFQrYCo8
UkF0JWFGUTBiYXNyT3FjdSQwcFhxOzs9Pkg9JEMqcE1HcXlmc2oKel9gI1FfcH15ODlMaSVET0s8
dUp9Rjc3PSlkX28qVlpAY25URyklOG1lRmpXYlp2NTgye3wqfUd1RWJNXmRVNWp+Cnp3PERUVCtN
OSpSdTE/SS0lYEcjTm1fMis1MzRifkVgc1BVYUZxPEhAcjx+Ynt2JSlPQG1TZ0Z1cjFJfFgrZUtP
Pwp6ZnJiaHstdXRGQkU7eTBiJFRSOE9aNSFXb0pvIyN2RX1QeVFwQXtWUVNzb2JkJmNReWBfQCFt
MnQjM2VtPDF8IU4KeipQXjcxMWZOJWB1fGxFNjQ4dUx4VlVeMFR1T15PeGFGfkUjNUlxOX03I3Rv
Wj9hJFhCdDV+LWN1amxARlQqJD44CnpiMip1Wm93KTRCJHIqa0UwNTVIVyU/SihzVkdxM3FaT1pf
NlZQfEtmP041LXVQUTRKaCNtaTdiK2gxQiE/cFE8aQp6IVlqNkUhNnBHfl5qKlUtcSRTZ2xmSUZH
UDkxXmV3NV44cWp2WERvKXI4I31TK0Bsc0tWVGEkKjV3JlZEWXh4cDcKej9sdFUjJUl7X2pEWTNj
KihPaWxSI0lXemRqWXk1YGZ4bHUySmkkNnVWKHVRfWxeXnBse2VTQS0xNVUyOUl2OytmCnptITBq
czd3dXxTdEtLQ2B2SkopPFF3IykxMHtJZik0PHhpTkBCdDxlTkZXSSUqa0NabDI4O29sVmd0NXVt
MkJEUwp6eV9lTlcrazVZYEpINmZpSXF4bFZYTGVRJT4tJmlkWWZaZyMlWF47bG9LQ3tNPFNuWikp
Rz59cFZ2WnQ9c3BQNWYKejBHIUpEQkRtXmAoYlBGRzhockgmNFR1Wj0+akRCZDkwMCFiIWxeZH4h
bShaSWtQb2krJms+RDNCZkByTyFTQEhFCnp2U1VZdGBpTiF8RmtFYU5NVVpSMU4mOEMhWjMqOyQ/
UDNTTV5UaV9pP3Y7Z0stUGpiXl5YSnBwX3h2VClFelFOOQp6ZjRmOys8TiQlbzsmcEdzbWlLJT9g
fE99cyF1T3MjaThJfSEhcFh5bkleN2dTVWV0fEBpQjNvcEp2ZVYkZ2RXI1kKejdeNlltcHc5U2M/
a0VZcXAjNlFfa2pAYFJ6KWtkeSp2cCtPQj5lcj41SzZMUnEjWF40VW0pMiZSfn5DP017bjBsCnpJ
JVhlI0ooPjJhLSFsPF9JQDN0LV45cW4jSz15TlAwWD10I2VnXjh5MCFnfl5ieU9SKWgrY2wtRmZx
OVJuUXZ8awp6a0J0ZGRGZ2B0bm5ZbWQ0X3o9e3dVSGIyO2xYTXN1NyFWdyEmN0VZMnYtdUUtNylj
Pm0xWT45KWtnKXhiTVdrMW8KelhwSX40RGAwcnorbDYtS2pKIWYoan1hLWNpS3FNPEc2Km9HQU5J
PmhKfmx+QzskZiNWOX1ubTZfWExCbShlb21VCnpNTy1SQihlUEdmQnNfMS1De35uYWkldzFZSTdf
T3tMVypWaCFUe1Ikb2tyQXE1aGlDNSUmdFhwN05vbEFpPzxUKQp6NXRKLVMzSDVpWiMyX2lXU3Uh
N3VyWkBtX3ZRUT9PI2RWdSZhaGxlbV92e21FcWB8eyM1QjkkZjBRa2FsQyUpK3EKek0qcDIxZVZo
UXFEVzJRYEhWfXtqZlBzS3Q2R2M5QjZGQjVER35oOzBfbXJUOEJLRl5ROUk/U0JJJEUwbWZSRFUw
CnoybWtRU3RjMk1BbHtRV2UzS0dAKCE7ZkNZUTE9fH1jPChBS1MrX2BwbEhUJnM/OylwbmtAKCNB
elZ9Xj40RUUjRwp6VTtHY1dQS01GY0pCRn58T0Z9O1lQayM/YWRmRzVIKWBRe2Y8cnBkNE1wVjxB
SUhIPzBvcnV3bzY1VmU7am8/NzEKek5aRzl8d0JSM2FpKD5RUXM0eHFJQXhaNyprcj17RD5BWHQ+
ZmNTY3Z6cXF0fDAjMjUoK0tgPS1pXkFlazY4PUpACnp4bTx6PzBFVmopYGppVnNBMHJwNkFQQmR8
Z1ZCaXpeYkhTVFdQRX52VjI7MiFzSDhaeyZOcmI9clRIUXluc3pFSgp6eTk2LVVqZDxkZlkjaEFn
ZkVgTFQtNXV7bHRlfVk0Un0zcTEobHV3Qzl0MzctRW9CcF51PCpCI1MqQUFKJXFLelMKemQzK29j
VkN+PUgzKCN7YjNhdThvQl5aNSgwbCp1TSRqTF9ab3UkUUAkWl4/fVpvaF5GdUxHd054OXohcmt0
US10CnohKS04X3R1U1hUbGZSP2h0Q2FUJVRKbCNVNmhgSFNJIXNRSnNXdDE1Jm9OWCEhWXBJP21Q
UDJFM3QrSk07UU1qbQp6KkRwWk0yakRjLW47IXJeYF5Ab0VLN1ZBNSVtNn4tcUd6KVNwZkNVfl96
KmVYVHM2aD9uUXBgLXZpPCNZQXo9I2UKejZya3dZb3Nje2VrUElmXyNKVD9xTU9mNDVmY0Z7emZI
I31OZzB7MUxjPjNYayRqVyElP2hrQjY/ZG5AXyt4ITFwCnorfGEoaEp+VDhtaCs2KGwraXRfUkE5
KWZ6cWY7MmBANWR9QF4xOz9+NyMhP15BP2stR1YtZFBhLVhjbV5NVmA5Qgp6RDNXcF9sajk8dUE4
dTxRTzZvX3AhLXspMDhnUzQwNyY0cF5YPz1NPyMwN1hoZU5VJEtpSip8bzd+LSQxQXg8JjEKeio1
Tj1OMn5BT1hDMzE0fFdVODwzT0h6eyVVWXx8MGBYKkt8R2RxaEJHN1Nic01sZGlzaWZPbC03Kyot
TWRCNVZ1CnpfQmshPihNYm0kZjJCLXJFWD1MTj4oOz1xYDM7QiFkPy0ofDNrUGdXMlBTO0otNlQ5
XkYxdUp1WENgS35XKnNjeAp6b1d7JFFlYmMxdmVGT3JGOUNxWEBBdzMzKSkoSD0kKmJrdWU1dih1
REw8dVJXaH10aGVjailSdiozPTtxLXQjWT4KekxVN1dIaGAkdzUpQys2PTJIRD8oU3A0NFRZYmY7
cEB+M0ZNeU5ZdVdHfX53P01kSF48TnFQIzBWXzNldjA8IzJVCnp0PEM0fSRJMCg8SzdnN0teY1M7
JDh4OD5TeEcjMGlVcjFhS3A3WlZ4JUVIZyNJa3I+VF9HZ09MLSQlQVRfdWMxJQp6V0FDeGdnVUlR
Wkx8IT82eUQteT9gQFRkQUpJXmRAKFE3PGc4KT1FMVBhZWJKUzM5d0NWLVlAaXt7dlhNP2Z2NUkK
ekMhVGwkQU5hcnJAVkQ9S0ZQNSVZaDNzWTk1SG1ZNCk3XzVGUX5OUjAteXU3a00xaTNaVTQ/Z0hJ
PXZFeHBidWZ2CnpldiRUemg7KC0jNnEkcEsqdmd5TW5ERXxQMz4/WnVBUz87WkE3MiF6MishOU5e
VFQteTM0SjBzaHkpVURldnpHeAp6ZUE0PHdDMXR8MSYhSWxla3RuQWg+VD4jJWUqYnpHNT5yO1ho
cnYpdEkwKllraFM1N1hofmJIRyV6MzxZT3xFdkcKek59YHFmYXxjUnJ0fll+TktvQ2dGaFZpYnlm
bj45YkRNUXVpUFdwMypRWWhCaUVZd1hUIzdsYFQrYWtkRTg0dWklCnpjKzBNcyFsSH17NlJDRkNQ
QG5eVkVAQkwkV1MkejhSJCVvLTg3UncxNkFuamg7VUYkNyFiNEJtZXtnVWI/Yn1hQAp6Rm09P15p
QVpvcjBEIUBrQzJBWXVfWWQ+Nnp4cHFtT0xTZ19ebUhWSU13RVhVJn0hLWt6emJZQi1ffjw5eThv
K3AKekx5aVA2MUd1Plg7QiF3T0Ulaz9fZm12XlMjdmgraEw5U0I+S1o1YHg5TiFAcGM9cjVYeC09
JXt7RTQxX2tfcG1TCnpBRUtBYFl1U0hufDl8V0FNYXJuR1lkPEU9Zk1jcmxgditkZV5tcVYyKiE/
UCZaPFg3eGVkYVR0ZnpMYUtNfUZ+Mwp6OU88Nk1za1I9PjRoYFZxZiRiUlhYKDd9JVlsJVleVisw
OzQ2VjNpYkBid05NSyZBbUxlfVpOVVpkcSE+LWByeHQKekAreU9IMX5YN2VHNno9SmNfSUpeT3tk
aHszYTZiUj8pY05FX15SS35VUT1JR19RaiNTPzdUZGJSbzVYbXpmaUQlCnp4USNEcTNyK3hsbjNe
N296b3h4K3tYbjI8RlNjI2pWS193JHByNj00X3JMJUtNQE5ZTF8oY2xybTltQkcpK29BJAp6VHpG
enZuWTwybyt9TiU2MDJTM2x3UGhBcjxnfXFDKDwkO1JFPV9xY0xlemVCZWc8NW1gaUJBYGJvbCYy
cChKbS0KeldVQUBBZyZlNzEwTl9xZlpYWDUrMWNXMXp3MD49MjJLfVdZbCs8bFZicW9yaXBmenlq
V0gtRUx4P3JNeE1Mb1RVCnpfPENUQFNxNCpqbk9xZUtUcGo/IzBUR1BSX21QPTdQeCNmfGdnR1FI
V2VvKnI+S1k3clVpb3w+Oy1Oc2J8SUJyUgp6enpxZH1QeU8tZWRxfjRTQ0N+WWowZX1VKnEjJXVH
YzA/WSQhNyo0Iz8jan5BSXUxQVlld1hDVktSbzZ1KjMoM1AKekMkLXxBd3tPa0J6eHtKUVhfQEh0
OVRmZVJKPFc9PDJpdmdZY1BIQDMkdEZ9VVRfJE1rY2ZSdyNfYENRMjFFeCRGCnpJTSsybzA1T0wx
SkQpKisrZ1NuKm5eQHB4QnxKRGY5NzEyYTdjPD1BM1E9VSpHcUg3PDRSXjBLVk0oUHRkRGEoNQp6
JmZaJTwrdl4xe2ZkU352ZmFLVFc1ZChnWT5tTT9TPlglbTRxSlQ4TmctZTFwcF53RU1CVD85OzZ0
Qkg1VTtzSm0KeiZQUEplUFF2entaVVRacU93WVE3eHAxWkxhJitZUHVhdSlfIWJ6KiQ1NXVDQiFW
RDBETUlhYUgqaUV1MEtmdXUoCnpMZDdNLTQwNT95RTNLVm9WalheLS1raHw7TVU2a3RfT25eIzhW
WSkkWitzVFJBfXArb1o3KWQybDlFakVJOF8qYwp6JENZKFhjK3F2VjloVDgpRit4NCZBMz1FYjU9
PEYyRnl9MjV5JHxBUlBGZmZNKUpDY1YrO1NERD8wMytucEZeSCYKenV5ayExbnREZXRgTkMpRz1g
M2F0Klp6TUkzJUg+R0BHcmtWQD1lbjZ8MmArQ3s+YTVZOVFHXkQ9a0M4VGQ5ckl2CnpqPmAoXy16
UVVsRzJAUzJ5KypvOEVyJD5yeSt7fHJDZ1IyKWVfc3klP3laXmRfXnZ8enN+dWpGSGhIV3hAYmQz
Wgp6OzQ4bTdnIzZOQzV6NS1QY09Qb2pZIU0jVXNhWT5oS0wxO0VwRjBZUi02O2d4TThaRWs5emsx
KzRedT5RTz5raC0Kej5QbyFqX0h3SyRvdWtEIUVXKF9qdSVzbU9xKXk2N3U8N1Q4YFNoPnA3bU1D
K2ZWY29OZG09aVVsVjYwQXN2NmBMCno2YnBNbEw5aURQe2BycSVJelVQYDZScmFjKnJfSC1nOHAr
ZFFEPVdZK0l4RjNHQkdaa2dxUGNGKSk+eVZXI1Jkdwp6TWRIckdsfHlGMGRyMTBCU3xnTzBheT1M
WElFa2wkMDNoRWNyYk1FTDcodV4zbjM0cjdifiV0bSpOaktIZDR7SVoKeil6a3VpT19mTjE7JCkq
NSgqOEB6dlNhe0ErU3A7cTMwYE5xQ3hNb0ptXmdNeDAzWmI+NXQ9IztxcTc5JmtffmJMCnpscTVr
bkItfkhrVioqNCZQQnNpcWhYdyVwJXQ9LX1qVnBgTVBvXz1KelRlKTEoZiFCcCo4bCg/YE9VJVkx
T1J0KQp6Pz5gdjs8Vi0rcnxIVSsjR3I0JU8mamdgcWQpdEs0PVUpPFl7KUdKPkdhYDByQTdXRW8w
c3dlPGUmeW9AKnRWVisKek1CczcmenpiRmBlaTVPVDZlIU1KLSVRcWctMlE+QCFSQWNFb0lpdy1E
S3xQTntUUGBHO25iX287bGwzY1U/eVFRCnpuZEdYJD8jPSpPSkVtYklvJURmc3VmPk55djxZd0FS
KlVHfDd9fTI9eig3fjBKbn52Zy1Be0p2Qj8mVnB5fkdxQAp6SCRkeGhZdFRnbFI0czIlb3FXbj80
S2FEWVoxZCs5bVl9cXo0JXp0eU50JDEwX2FfVXpfRlFkNzY4OHM0bEcxbn4KendnNkNFMlElUWdk
PiplNHkoN2JEPkY3WkI7Ml87WXxBS29tbl9gJnJTQDhKRjY/QVdtTFhlSHktYiFYYmclRnRKCnpq
UjlhVzBZSVRtOT1Yb0IwMmhlYmh0IWZeLVBWfCVDSks4RCtAMHhjRjl1SEBMOFBHdUQ2Sz0tQUhi
c0c0QWhxcgp6MHw+YC1gYUAxUzt7MjZVVTZiKEF6SFF3anFUdlZFYng1SUVndlhBT3todEdLYDZq
K0lAb091dFp6Nzs0ZkJ+SjQKemk2PStyPUZva09MUGBwNkApQk9lclNVfFNGQ08wVU53aCF0MVlS
ZFV6enFkfTVCfTt2M2tpSnZvSEY7MT5pfWo1CnozXiktZWtKQnliMCNBfHMqM350SWEzQkpjKG4/
dmh7MSNvTkIobmVhS3luWH5ATE5QWiNlLWloTXBjPHJYeFdzVAp6QiRzYnc3TCszYHN7bTYmOXFA
YW08el5ZV0VmeChVSipOY1F7X2VZXjJePClob0QrPmVgPXxZQUkmfTwzcE1GJWQKendYJXJ2T2JP
QEMld21pX15NKnw7QFVeZUw0WSQzaVVoYUdFX0c0eWo1SXR1T1Zge2l4SUh7QmFOeDAjOWBZJERF
Cnpmeik5Pl58MylZQ3hoLWFoKmlOaGVAMXBMRChWfU5NPEJxTmRfczZOcGBJYEpRaTlOQDApUUs5
Q2F+cm85Mj4pIwp6T0JjeGA9b2ljQClnSShBLTcmbXl1IXNhTTgrS2FqaEs1XlVTaEpETkp2OHJV
Kig5anFwJkpnSDtAbVQwZkVZbU0Kem9MPnl8UTExd0BmPmx9UnUhK3ZVcXtNZmUhRUVuJiNQYVBo
dGgtYkFDPmx1a3RNYiFETFlGRnRFY19nPEtHUVhVCnpYKTw0fUpsZF55T2xrNkE2aUk1fjtscloy
aW4oRzdlWmQqYDFMKVI0IWVmPTgobHoxeTJ1b1M5KHJHRX5QbSN4JQp6I1pYPkZ6PjtPaGkzN1g4
aDJ9QEBOMWA5IzxeekR3SmJnVEVlOUF4Tl5AcHNZK0sqPyFsWW1WUiZMRXVPS3NKWUwKej16QC1v
JW5CZWRER2ZobWBZJHxHOz0pOFA1Ji14bklOPW1fbipsJW5NayVyfk9iY1dITjwhbWo9MnV8Sm1V
b2hYCno3Wlppd019Sz1yR2x2c0VLeDY+WV5FKkhNMnomKz9kUGIlJk5XJEZOSDs3ayVeI0h0NjxI
UVc/MiN+MzleYnBTbgp6dTtJVnw7fnNxT15LWFhIVkY5QElUeVlaM08kPyM/Pj04UCpVWHNncl9a
dnlDXl49KV5PYVZrSFo5LVB4eWVJKjUKemZ+Sn1XRjtSK15OeTEtTHdGcEohUlJtUF94SXBXKnlZ
fkEhMG9ROz9DO1NQJnlPNWNuUjF8OHohX1NmYz1QSCg1CnpGaHFqYy0tb2o7RSRBQj42cEAyZS0/
VW55WHp4JFEofGIkN1l1IXsoNGEzR2UkUS1hRCojcGJ+UCklQzIleFJPOAp6a2QjY3BYMTVwOSFM
YWM1XkFieFYhQyNoezF9bThXR2xQPzgtUE1Hc2V+M1ZTNUpwLXZ2OXY1S0ROUlJaZXVmcVcKelVg
SFZ7KlJ2JTJ0aVVXKlZ1VjkoN2BUMn5YKU1FWTVXXz5xTHxaZy1eO1FfeyotQ3BmTWFZdnB8TUFO
fj8tNFVICnpObTFBclJjSjVpe1EkaHFeMnNjNShjaUlTI356RUZkZjx5bCVtdWheN0k0RD07UXVe
IWFJd2MxWVVPZllQNkZ+TQp6ZUU9czxiczxvZUZJc2pSUjBtKkd2SDdENHtUQmVCalFWY2JFazth
blJ6T3Z1Um4tNWRJZ1FGUip1OyQmclpZMVMKendRSnNsaXBFPlNIUyRkTjxIRWtERmZxXj9aeDYw
fm1aeztvY1loTjtUUjgjMUIhPGFNKzRJIW5YZyN6TyZJfWopCnp6OTxndkFIKDhCbUg2YyZBSGs7
RW13OzUzSlAxXmA7TzhiciZ+dUlmcGore0JMcWBEZ19JP1U7QWVFbVckdUUhJAp6QiltRCZHZi1T
dmk9djgzSTl3U30hRVp0UGV1M0FkNmFxZmEyY1FSJFJJSzFTJW1rMG1oeFJASzBiJjl9VzIwbm0K
ek45SFg/U15GOUEqcDVtfWN9eFEyNEJPclhXVis8I3Vsb3MzKXZoN2l6QVZrQW1GI2pEJl9uQyMh
aS1tIzB0XmhMCnojMUpALXp7cV9DNF8oNGdRJFBMZ0IlOzF7Vmk7UnR0WHFLPDw+QEZPaFJWQlBD
TldOUXpxdjspNTliMFh6N0VFfAp6REgxem45akV7Pk5UendqMTlSMUZGcipqQmo9Oyt+fEowNHZ4
cnhqbk17T21ISG1sZ2JvJmhqJFdufGNwVSFJTW8Kej04TDxnX2s4X2hOWXdyfTl7X3lkay1iflZ7
eSFqXmVSeVIwJihuNkBoZ3VMUSYwe1oqTmItQFh6TX1RbjJmJGpECnpBOUotSDVCX01+cVg5cmVn
JD57UWQ/N0pgYDJZfGo+U1N9Y1BgJmJ2czl2IVJXfiZRbyNyan58MzB5ay1KT1o5Ngp6UTM5O28w
WjRSJU80an0oakZvUmk/PkszTHdsPSk+PT4yNT1NbnJuKj9tZVM7XktHbH1gYD4qVXh1clJAWVEw
TTgKelpkXzNLMCh6IUsoUj1PfnJVclYxWGAjZzRsI2w0YHt6TmNIZD49YURRYStRPzt+eF9oZHhh
Rz5ENStWREc+I3VACnpYMkw+KGVIRnIqLX5gbT0yU35CMmB1Pz89M0gte08kQWl8TVplandMTHxz
OTBoPiN5eSVyVSVycTV3eCliSUErewp6IT9eaXZGeXN+P1c7ZXUjZF9lWEFFRnNOYT82aXU8PmMk
ezJPQGk3cz5sMT8xbkNWMG9mazQwKUs9WD95NSNyPnUKeiRkfntDRFoydTtFcE5tNng7JkFyIykp
ZFpCWGo1KWJfOytKZWdGNzM9e3A4YE8qPT0/ODs7aEBARn5SbnFjQihBCnozTTFfYzV1S3dtSVVL
MHxELVMoQFZSeztfaEg5QTgpOHd3cm5pRHwmaGEmLXspajRTRz5nZ0pLPjVFKHg8VkQ7RQp6YU5U
Q1c0RmlEcEotcXVwZm5layplVyN4fTktP2B5OWJ2bC1EOWh0XkR2M2ZMaTllUXllZytVfUJMRTBZ
QlMzYzYKenR0LSsqMmB+KGEze1ZvU3ApRHdEKm9lakotdlYxMihKIXJAJVNmaCU3aFB4ZnB5Jkw0
MU9weTlGXjBidkB4eFpJCno5T2hPM08xOGZiTV8mOGBFKipGWVIhMTVSP1ZySGljV2xKKHtgZVUo
MSswKn5LMUh4JjNCdD1ILVp3TGV6TlFuSAp6P0NUXmQ4UGE4cEJuIVd1ZXlkYGoqWWU0KUE/WjdP
b0BRal83b3gwdzhNMVFvPHJaaTI9elRJMVB8U3VAbnRtYUYKenohaVpjQHBIKylFblYoK2wjUmkz
WDRXa0w7OVA0ZlcoZzNJUTxPTztwcnRQelBtdmo1cUJVKz52SShlSkw3RiY8CnpzS2N5dk9KSUds
RUdyRnBjRlZqJDlfKyNtQz05XkNwK2xub3FuRzs4elcwSn5APHhMcjFPUSEjbmUxQGd7d3szVQp6
KVFFfHhJZGwtcz1lRzV0OyF2JVlWIytgNmZuaEc3JkduTntDUG5+bzhacGw+JTtnKGslJihQO2Yp
PXY8SDM/KXUKenE0T1JhTHFfOHdTbzU7dUdaUEgpWmoxYyRSckxrdj5LX2JzSl5kTj5HSUEqSjxe
X092fEw4UigxU29nPTUmaXgrCnpefHlIZDdAOV9HWkxSRDxXbm91cnw5Sm9xQm1pak5EO05OYD1p
SXRINFBYOTV6VUNSI3R9QV5mcj0kanIrdW5tTAp6dko+T3x3JHhLSiFhcH5UKT8rVWI4I296SE89
VClhcEIqZHZLYlVqWVY5emhWRSRzTy1yQGRJIXhFTVFqe2Z9dFgKekNsTEBPKnZMQVlvY0hkWm95
SWAoTnNSWmo1IWkmMUQoZ30/e316NU5mJHI7cExYdG41bU88M054Km1tOUg2cXR2Cnppc14ocExI
TG1iMz0wVktsfn09by1faVJHbDdSeVhvNnZuZSkkYlZPaU4yZzlibj9PbEc2e087ZyRHNER3NGUj
VQp6ZEFSfnBVSjE2YzIxSGxoaEtoN0VHT2BARk5QLSVvWW1qQyhWTzNzK1h4QD9CeXB1UGg7dTg9
cVZ6VXQheDFZanYKei0jQVBmMFFBcmlNY2BiMjd0JDZyVnNnU1EmTzQjZ0Z5Q3g4VGdOPGR4dnpH
UTRaX30haiRBLSZaVjJYKjx1RGYzCnppYFV8WnE5Si1CMEJ+YSgoKkR4S0k5eX1gcT9IJWFkWDZV
ZzBUaENfaHliOHhjbnF5aWVxdE5GSSozSCFQY0BZNAp6aXJXblhmVlk0RG03bitua3gkTWs/WXsq
QjtLSDkjSCFPUmI1bkVQP1NTYmxKX3VXJjRVSVQpZDIjQGpXazxKNTwKej0lTk0pfDVFX34tejJs
ZWluP2BvcWh8RlI8KF93bEJeYH0/NnttKlVhcS1aZkYqRFl1VTB8eSpqRDBPUjItbXl+Cno5UzQ0
a3JuM19tPTsqO21aX1VSOEZGIzJkIVlRfTlVVnNKKkMkNHU2QmR1cEsoczI8WEdGdnBDdnFzKyQ3
YmYrdwp6UFROY0s3UkcjWWYmYShubk98MGdWeHM9OCVxO0NZUWM1QWJ2WV5rYD96JX1yJCQwP1Vh
cUU2QkNFSGx3eEFoQE8KentxPSpLRVkjbEhnRUpTSzJARk9OPGhaIWI2dExUKF98dlgzVHBYfiRt
UXc9YmhQJHoobHo9ZVBmaVloWTFONnU3CnpmNmZqfUNIKHIwYjAqeHdsZWo/aVV0b31sJEdpX0I+
Z1M7eDV1a2gtKiRKRDRRJTx9NytBPDx4Qn1RT3kyamdhKgp6VmdqJV5YJjQoc1dWUSNVeWklQ1VS
dGluN0ZZbElnfElyU1UwYnFPIygmUUFKNn4pTH1UcEBmcD5pU2UhME48O00Kej5SZ1A+JSViVj5m
NHpnYG9leCt3MUZxVy1hS2l4THVLUlohQXBxRGtyfGJYazJ9QlReNFp3MSFTekwoZHMjP0NnCnpx
VmIqVDB9eEByYTc8QysyMUw2TEE/N0J7MFB7UW1rZCghbVEmTnAoeEJlfE1AKyMkPG1+dTBVbzdD
NUc5UEtBfAp6NUY/bHR6NDVJVTFHOypCY3g7eXdGQHB5fj9LNDx5eU5JZDU4R1AqUHBUYStWP09V
fFZzUmF7amdpQGRkSmw1SGEKejtrTlMjZGdrSWtzZkdDVDAqYHMtS3FCMnc/KSlQUURwVU9vcVdv
b2JPT1ooP2ZLaFFxI2YzRn5UdnhRbTdaQjJUCnpMXyRwdyk7fmA1OXJedWhgYVMofExMTk5BLT1D
JUhjQ28heG07K297czI1e1MzT2FFcTghdzs4Z35kcilwNnY5TQp6XzJxQ188Uzl8QWxsQEE8Jmxg
OCM+RFlHeGdYZW9pSVdHKFowUkEyVmZuaXg3KHNOK2teb3w1U2p3VUpHPDZ9QT8KekQ9OCRzUHVr
dXZIajBTNWl2WFlpbWh6UUsrakp6e1B1KHEjdWFWJnFOVjlYVzdpMSVFKW5hKlpZazI/JFdwMElw
CnpeMiUmWGRIZ3V9dEl5dyEqbXhJaVcmbjhPd19oUnYyeWFxLTBRfjA8TW4jSnheTztUPE11Xygw
V2deeTRDNkF2SAp6LTdnXm5mV2lXfTJXXzxmMVklUkkxT09JbkJMTWk0OXNzejIkWXd8RitCY0l+
Y3BGaFdKTFlTRHtib2NzSUVTfDUKekpKOCNGU2hORDtzeEJAO3tvWEd8dkhoP1ktQFVnUzhQTzVe
ez5PKTVjaThhWT9xXlc5Vy1BQG52O1pWMkE/eV9zCnp2QCNrQVZ6UmRiITxXdG9iMEFUTzxKdlFJ
RWBVeCRzS1RzWUZwN1pLb2xYPX5FaDZlKTJkbXdvdiNUWVkpfFBheQp6QlN8bipjPSorRyhWSTYz
JXBtRSNoMEs3Mj89QUVAbWpNSn0zUGRuQUllfDBITypyNCRmJmlPYzNKWUxJO0stQzYKems4TGoj
bTNGUk0tK3tHajg7Q0ozMW9qS3VlWSkzeUlYfSlsZHJiNys3dX1CJTBEeFBsVFZZdnlIPUB+RHhA
IVp1CnpFWklsdiNUJHt3R2JZPyljfGpVUiN9Uz9GaEIzPHBUaCR1YjQ0TWI+PlFqWHxrTz5zKUEw
I3VFUihNN2xOO1dUcAp6K040SG5kTHJDQjY3bVooNUZ9PURfXz8yZDU8YDE7QXh7MFRKMGErWDBs
P1AoZDcrO0dwaUopczxQSW43a1RFcUEKejFAOWV8Rjk0eGx0ZzF4VGBlOEsqTkM1IXUxdSVMTShY
azd7M0FrbGg4dmd5MGRIeyRidEZRe29afnVEe2AmVExUCno8dV4wdHJ1eFZmY247JmVtcWZPcClu
WXtkTkVsNW0wbz9QWk9yOVQkbW1XV2VMd2tGJF8wRHk7Wn5GXiF0NyRPOwp6REBvaChCZUwwTU18
dkBRQGlnV3BNJilwdmNDIS1gZU5xRGg1YHs9eEI/P1daZ18+RGRqRlE/Vk5OMn5OIThvN2wKenI9
Oz9fPzduJEkyd1lZJF49dTtMPz0wbHRpJFJUNiU9P2B5RmF5cEg9cGEreiRmQEhaR15tYkRWP1JK
M1dXdGxMCnptU007WjxaUVZJPiRrMiRFRXI1I3M9THN9OG8mRV5DO2hkUElpLSQ4R3dBPzhac19W
Kk9uX2dxMnRqakgrcCNHdQp6IVF1QG9yeTlATWtVP0ZeSTJ7PjdiWiFzXm1sNGp8NFR3aW8pWE5p
Sm84bG9TbDlBdj94X2YwKW1lX0V+PUF8JiUKejxRUypnY1RpP0hUeWt6ZVgwe0R5Y1Jne2h1a0ZS
PmFXZXpKcnZIM1M1Kj5lKUVJPVJHYG13TWFkcENCRXp7ckNUCnpuWnxPOXJzNnpFTUZvTiNofHIp
ZzJjcShZb2dHNGlTVWB7I1FBMzRZUjA0OEJQKmx1YEdvZlBYRW9kT2hYMHwkVQp6ZEZgKW12aFdP
ZG9rUSFmN3ZZXjU2UExrNDN4Yj1zYStlYDR0ZUt0bTtgYX17Zn12cVF6VnpeYTtoaTc8SH5RUzkK
ej8oVjR6N3leeGFRe3h6RklTdXp2RkVOWF9XfEVTR0o9SlNjKG1vVCswczctcTwpVEZtJFM8I15e
UnorcHZ8cDhtCnp6bD5tQ0J+PyVER2Ywc15jb31lNkZtRktUUTAxPzw9aUU1bWJPel5JRXtnc0Yh
WEQ9OE9IJk5iQTF1YiU5dmlZJgp6LSt9ZGFZPWJFbHo5UVVmY2ImOTlZeUduP288K2RwbS19PUlB
QXx7RV9lSTEpNlFiYVoyYm5xLVpHXjNDRE1BR0oKejVneml3QTs2RzRSOF44b0g4blA7IThOfShH
JUNgPDRIPHh8Y0Fie215YFVkfWRxXy05QlFpODFfUkhvOz5FPWRRCnopMUJIe1FCNDNRRD8+QVdx
YDluXj5OdDQrI0t+WCVMaXVVNkZ6Qzd9MTgqMXJ0b19PfTUoflpSMH14WXJxSF52Iwp6NEB4diQ9
dkpvVTgwMXspb0o+ZVd5OX4tYUhGPlVGT2U5bDt5WjBoUUdgcChNaFZPcDQ3KjI7bFIyQUJzPX4l
TXEKejkrWXV0RDFMZGJXO3F9ZEB9Y3x1S0ordmxLKiZGKiVNWHdATjE2PyVfRmNtQmp+KylzU3E+
Z1BAKyRKbllMVmI8Cnopb0pTeEUhQCR6XkpFSU5CTjdaR2opX3JkdmM2eHg2cTZGKUhfVSVjUW5X
d0ArNUR2cUU4eG5gUmFjdSUmfjtgPgp6ZzB8SXY/ckg9WU5rWGs7VkBncFozdzdNUHVsdjJyRzdJ
JmJecHNkaUdDJDxXS01edl5gVWQtUHtPbD1vXj52ZGUKejVFTl5+WF5VZTJ4amVqZkhVbnZrKkpK
ZnZjT3VobmoxTn01IXAxNHhKP0h3K2Q3QGklN1NeVURsU3ZWdEpWJEl8CnpMWU09UjZvUnZBOVVM
YGxBJSo7TW17RWUoOyFNJkR6aD0oS1p1O29KMm0helpuRSp4dGZZbXluKW07VzxDJktiRQp6bi1U
MnBMdTdoWkhaaDIwbVRnKUJDei19bEc/cmlqYUk9IVpESWJGTGRTSy0yRkpAMnV7QztJYFVmbXlX
SHdPVCQKel9fd0R0MEFUdmh7bXFPQHkwM3hyez9EfF9XM0lVY2o3YkBpO2MhNG9iSU1uV3dKMndZ
YW9AUFVWK2dzMiMyfTdHCnp6RkNHMG1xfUM9VykpT29gS3w5R2RkIzd9WWJfNXBBPmZAeCRFbHNA
emojQ3pIZUlTUFlhT2x7ZUQ7dyZJQ1gzZwp6QEJZdnxffG1WcUUzK1QtZnJjMGZFdFd9Yzd1TUQh
cTVfJjFKSzZTRVM1Ym1MS3ZeTUIoe2x9KWZTYXYkPFg2X0IKenV4MnFXVnEwOGp1UXFwb0EmczZ3
bFY0U0tVeTllUiRWMylNTmx4dXAxdzVXdlR4ZTs9bkcwdHpIWmRzKmlMQi1yCnorNlA+Q1deVyMl
TU44NTYqMUoodjsxb1JAdWUyR0pETUZgcmt9MnM0JGYzUGh7RnVVSHJ5JkpyMU90ZGtlbUZ+NAp6
QS0hPnt4VGgpKiQ4VldWXkdqK2A3bEFPWDwjNnZIVipYaGV2clJ+XlU5SiV1alJ6enc4LXJrcXs8
ZCFWP1UxfD0KemRiTW1yMTJRWX0+QWglekFBcEM9M3tDbmxHVUowWmFxYnNeMyVeUFJmYT9rYy1Z
QGBJXjBffXFvSWxOM2ZaWD9BCnpqYDImZlJfN01eJXs/JTxKd29Xa1dFIShQc3RXdXNnTSNRMTZv
bi0jMUNoWmRgMSgpNVlfI0t0VW5AZ1pzYTEzbQp6RHFnZS1PU2lyWXdsdm1eKjlyaH5lISRGVjdu
JTx+MU5WNDtkfnpea25yPGJuITd+UGJiS2dzRiZ4RztxWENKfHEKemNsPHh9PykxRVV1fEh5VmJP
NTYqWEdJO3N5aWowKmtTRCpGWCFweDYlZTR5NSV4bzBaSDZvKzE3eldpOUV0dTJRCnozODx0T2Jl
JCVLQCpESG1mLTJQNDFPIyFSbW9CJCZ7cjhqM0t+aTZYQjxUNkhkbENuYUFJNzswQiglWVJTUT1p
eAp6M0JQezYxaXJrTCRoK2xNdGdnK2BYSS1iPGMpIzNWenZLSj54fClXQnNUVCk5aF9jPHRASlo3
NFpwOCEkIT9rRHcKelk0RWlLMDBIJjFib1R8P3taYnZZcUh6WlNLJlhxJXprbmE2OTFBaVJIX35h
eGsxbD9UPF44WjxDcDB3IVV1VkNQCnolcTVCREFMU2VDaytZfm8+YCR5TChJKHZ9MEhBTiZnSkVJ
O2hQbG9pZnp2PHdFYVpZOVVYMGZyM0FrWVpRMllOcgp6QUBTZiRaVW4rKnpYcjkmS1ByMzk0Z0Ym
PGJgSnhZV0g0RStWa3tNT0FpIzc7Rz5qeUdoKShya3cmXnUrcFYrVGAKengmJkwrcWBARElwPSFt
Z1NpSXBhRnFzez1Je1FDKUdsfndiejBGNjYzQX5ETSg1dWBHYkBBfXpVbUZoWklFeHA1CnpjTTcj
aiVraChneVdxO29xanYpSF9VM21fVlZvR2kldXRgRT1ATUBJZzhsJHlzVjMySjZGMm9OdHZ+XjNm
MUFANAp6KlV+QTRAcDJoYCZeaEk8QWs8ZjdfZz9gLWFFKDMmJGk1K04rek1pT0EpPl5HX01PRHV5
JDNOOTc9dDZ6dFdETl8Kej8xZkBYSjY2S0RZIWo5YzBGKV9YKiVzUV5je31HMDtPeE9KKFNURGMh
eGV3cmJrOWMkPTlzQUZsS34peCVxNiN3Cno4TCQrd1AqNnduKWwqTT1FYyphUzBub2shcXxJYUQ1
WGB3WTApVTFEPm5ISkVMb2ktJU07fTVIKUFYfSklUXA2Rgp6UlMqRT1IPFp6RE4xJWBreGRBRG1W
JnsrPjZTSzdMPTZaSnBQSlJFQXhTMFc8QClOJWs0MWo5XjxSbCpAKEAjfEsKejVkY2lqIVB3amR4
WThoSFdYTDd9MUF5NWlZVFd0OEB4VGNsbHdjKExhTyhKckBjRjBrRlloVkFLZkUmPUtEcktkCno+
K2VTTyVHKlRlcHo4d3dhVkxsIyZZfG48WlZhQFhBcDZ9ZmdNaCpXbV9HNmlfYGAhUTtvUjlWZUU4
bEU7fWlFaQp6Z2o2aG16c3FMOFdMRiNBJSNlRTViK2xpbF9pQzEkZXNTcnZ3c0s/YXRfPFhwQE1q
ZzNpUEdPPiFJUzAqOSZqYlEKenxNQ0wqN2k5TmMmRntfb29TZ0crUFAyPWVfPnNPNT9Bdik5ZHRX
KDxfTGMhVWYxdDQxaitgPChuTGoybV80dVh6Cnp4b0RZTDBtc19nVlE/QztwfE1ERz0heHBgfEZ0
YCEleE9HI1ZnTXQ5WlpWPT1xeTlwM2xMR0tmQmhyNlZ1SDU3Mgp6KElfJC1IekI9eElobjBOanBp
cCV7djwjVUV4aTNmXyUzekk0TztULSRabmBkLTFubnclNl4yZSF8UjhlKk1CVHQKent9Mmc7UGAw
aVhXb3pyaWAwISpDcHJ2O1RsYm5QISpSdn5kPF9EaXVfVWNzQDxJTSNDI1VKfCgwZjZsTUdpcGdi
Cnpre3NeaVlzUFdkbUw1QDJCXjRDVllQU216VUBnRkh4QTxSXmpzPmB6X0c3WnxFWihzSWszZXcw
dHE1UUtMPWlsRwp6disofHhIKk4mM05DZEJSMj8ma2RCamBCIURuYDFfWCpXc1R0SWNqamZCUF9n
X3F+X0pUKjRwamVnO2M2eXBpNTwKekMrdFV4TSZLVWwkOVZmaTFiclN8KktlSSpzZiRKdmJpSmJ9
P2chdnsxeV9DJVk1I2dTdiRCPEptIXQlcGc9bG9MCnpjQFJxeUpTLSVqU0smeForR20yUHAjSFhZ
NDcmNEhVSzN0QGRUd151I0s2cGAqTjBPXyZTVEZAaGpJTWk4QkMxJQp6TUY1RDA3cElkZ3k9Wmsy
R0skemE3JERzYyFUd1dPSTZTWnAxJDZ6I05rZit1eFVoMEBmanF1Rlgka1B5dypLQn0KenZeRVdF
JXVaNXxOZUNgIXtKQnY/ZEpmQ09URSokY2toQTwyeEdFWSVVNURPVzZEYERtZ2l2NWlTdTJxbDU0
YE8/Cnowc3QpZTQmKkdVN3VWRHZEVUNAWHc/IThsb3d1aUo1V2I7dFNeRiNab30mfk0+KzRYbFA2
aHlWZDh6PCNyZ2ZBUQp6RGdvNzhIdnp6ZDM7LU4yPFM0KysyTFNtV3s8U2F4QjBTa1E1PnRvU0RA
aV53e1c1aDgwMjVPe1J1LWhmTGVhbFgKeilCRnFxM0tPdXtaM3NeZHFVWWVWU2gqK3pfeClTQnNF
QXY8PV5tNlVVVz5tQjBPRlRuYTxCfi00P1BkaCUkT0xjCnpxMGgjJDUodztue3k0Vig7UzR0MXdn
TH5seGBXdD5IU3V+JmlXJCZ4TiUjU3puOWVyVklrXiZUZWZlNVFZVzskOwp6TlYpVmlyPWw5ITYq
V3EmZX5PVHZ3MiZ8X1B+Vj5fZ3MwYztSflpnV2VsNXtvdXk5Uis9JldTNTIkblpXdyhvKEwKejRg
Yzg0MThCZTAzJElzTGc1cW9XclJpOV9zcz45cClXZT0+TFFtSHZPcEZlYnJWcnA7WVpfai1hMHwr
fSt5UEd7CnpmQHh3N3dkTDdwc0xsfTtxQUhsT0BYciRVS1l3YX5PaSsxcEd4dlJ6bG56WWRVIXhm
a25VfDNzVmdQMkZjQ1loUgp6LXdIPXpnLThAaihEPSRkT1pFd3tLbkYqcztPKiljJnVzKXNJZ05H
a09RanxiM0N1QilfNzdsK3c3PkI1PnZ8MWAKemlBN1h4czYhPk9mTiZ0SjlGTj8+anYzQ2BPSmli
K21OZVZCRHslSGxfYk9qaGktTjh6N3ZQMmdLO31PX0l1e0I/CnpVMip5IWxpUGVMVjhGI2JoSDxp
Z2BpRiQoSCYmRnZvYkRuSmtRNHhyd1o4eGFwMGlIJHVWPzNUTlE7ZihgKExqYAp6V215SmwqMWE3
aWIqfjJpJGRgaGZkMnEjR0g/ZlVxRmVvQWNOKUtPZzk2WGNtY2xaQXA3Y1dpV15ZPyFkZkFAdnwK
emZ0RE1mPj8wYmFuPil9QV9ZZl90ZlgreyM0K0FEZTJJM0l7TiVJdnJHUDg7UCpDUmNAUCEzVUUm
aStwK2M9M0l1Cno2elVZOHoyZiYwS0RUaCVhSDUkSTZaIVdialVSVDtxV1EhSHkhUU1hOU4le3VM
aiFaZD5mPUxxV2YpT2hSZnZeYQp6bSFmV0U0WUNXZU5PP3J5Q3VIZEY/WjUjMk1aPDElNGNQR1h1
fmpJKHtYTEBqI3NvMSlwNWswciRzbXZtSEVudSYKeitKfk9qYXJuNCYqQ2ZhOCp+dW07dDw9UTdK
WkVDfkJCSH5XI05id2ItQUpITnU+SzlPPU0tcjk5R2JIYU5DRWA7Cnp1Q1cmUGJQdkhsRmR8LWVS
cGNZUHpEbnVPZlEwWXlYUSRmdztVQWxVIUVCME9KOWJDLUwjVzxSaXxUYlgyblFwWQp6M0JWeWhF
fmhgK0dBYkozTk9RZlh7YiM9YVFEdFNfb0ItZl98MDc0Rk5Oa2ZxWTVOVm02SHVATHU3ZUszKndy
ZzEKejBKKXM3RlJHTFUtZWdFJTBCak9pb29TZUVKQk9hKnVpKDMxc0tiXkcxKmxse1JzdylFY3pw
blhIIX1qPk5wemxtCnpqWkE/SHEpfGUwV0koeHJjQmMpVSYzKlhJe29DUDRQczJrOFVxblNjMUNT
ZVAhNFhGVEptYUk3Pyhhcm0mWWVLLQp6Nk5PJTk0an1Pe1FALT9xViZvQTMqd1p1T0RAYS0oVSo4
WipQNGk8NTI9ckJIYGsybXFRTG45emgzSD80Jkh0XyMKeko7dSF+aDxUNTlfVGtfdzJlRSgwTDBt
bDNCRDZqR15mOyN9R3VNRzc+Kn4/Q1paVGNVUWRrSHFjci1RLWg+PiZQCnpXMD5USUUxajIhbkdJ
dWorJn09WjlOQWt3Syp9TzI5RHc2UW9kZmlwI1pAX3xEJFRfM0BFcGJsWFRfamRTQFgtcwp6QzVE
Tl9wZ0hwUk4oWn03NXhlWGNgMmVFJmtCKyVgPERJYSRHSzQ9TWUhQz55WlAwLU0wfWswTT8mZU1l
Iy1fI1IKeig8PShlMWdNbVUtS3dqVEs0JkM+X2Y1PVZxSFNRbEBVYU8lMDhxMkI3QiVaQDFPcmVi
UVhJTE1uRHBadTBSWFNaCnptflVqamNqRFZUQTMqSTJxJVJHPUlSTD0lP3VTcCZLV2xeeUIkfDlH
KUwqVW9RKykhMm5nK0w5d3piUGtVQDZSbAp6LUQ9UlpLbVdeVm4+XkNXQWNiK31QZnlAT1o/KWlL
fDUkXkhtM1AwNjM/UDB2KyspNHlJUTFHUGhyMUYmZ1VyV3gKeiNeNVd6K2xRQipZcjxSS19lT21F
NF5QcHtBP1RmdUErSEJCMUhHNz03ISU8Zld4NDJ0T3RtMUJmSSMoIzZZeW8xCno1JmZAUkJ4KVRs
cnxCMUxgZ3ZKbFB0cEIxbEBsLShxcXhqKCRUP2prXyUxdFEoezN+IUpCUXNiPyFtRiRNPXsoeAp6
cWk4YzgpKFRXQ0YyJUJxT0hqOVo1d2kyTSNRQkdWO1cpMTc/dWZAYml+Z1FnajFHMlVYMnlARmo7
QDQjO3xGMGoKeiRTdD9IbTtiQzc9UG5gTFBKJkV+S3BwS1ojVXlTMXFGP30kNmJBdE1eRVU1QyM2
SyVvbUtkeUp4MTtqKng2KlU3CnpGczFhR1VPUWR3OT9CYmtafFluLSFtfVJuSUQydDl2Z151NGdB
KX1qeGJBPSUmRklCbWduYzF9VD58PE80aU55PAp6WkNyIyEzSU0zKHomdGpzdDhXXzMjQXZNQyZm
R2daOzUrJjRkejchSzBCfko+MGQ1IW9xfV9Ka2JFTkk+ayNhTC0KejRYK0JsbWhVZStORE1ReHp8
Z1NWUj49Xj07eH0hO2wtfiVPUyZFd2czSn09Um9XdVoqQllXWmk5e1NFSWwmYG9HCno8JkIkUmMt
O1UleGc+UHNNfHpxP1hmUUIwRXRoTzZ6cmZSNmdXZSMxXlBRKkEtUlp7SGV0a2RnYHJ4T09kbXdM
bwp6PEdxdlBXQ2pjJSNMWFRPczZYUHUxNkE8RkJoN1pWJj8zeU9zenJLSHV+Pi1uJnV3OExPZjFO
YFR5RnE9OGxQU3gKej18Zy04RUNXYWxCOWl0ITV2Sm53Ulc5Z1paTkdDcl9QPytqN2Z4SjROYT5H
YUNTOEA0PVJtYG4jYU96ajBhWG5aCnpeY3JqWHU7PlhPP0JqJm5waWJqNEFSR3h8WV5XYy1VQ28l
QzhPTldGRVFlfEJNYDFDQjw2JHtUOXV5Tih3NX0lUAp6dkFEcD8zP1Eha2REUGhLZyMqTUMhbEdk
U2Y3aWlIUj0zPWRyMEcrSHs/dSM1ZzYjYG47IUdRdmU8OFZsLXx9aT8KeilvPzY3c3lpMTZWe09D
NDQmOHpZQnB7dmdtO3FxJXJkcmdrdU5HailuXjc1Sy1iQzhKcElEOEJ1MzV9R0d+aGUrCnp6b2BK
PW52O1FVb0MpeWVAODQkfXAxd0Mkbyk2TEFGQjtXMzBifXdnYUpCWS1YYjU0Q0E2MW8ze1A8X0Aj
dXQ4Zwp6M0VyQG8ldGt7MzBCfH5JaTBFR0xfVFM+WiYqdEZgP3xjVko4bnoxaGNLdTwlUkdVZTM1
I294JHsrOG4rd1UtZkcKenk9Qz9eSjZjYjU7UEx4a0w9bTBlTHgqMlFQRW5PfD9kM312X1c5cio5
KXgjZExVYW1fdmpBWWVMb28zKmR3TSFACnp0ODN4TiVETWJ1PmRncyNHUzFhajtVJkc2WCFvWk9l
JSloe3B1KGx4SlZrZVE0cmg7XiFUI3JWO14yPEc3JCp1SQp6UTlTdWZeSTYrQnRYKyk4XzRVWHAl
b2Y3Tl9mYmp9eD1VVj8lMlo8YSVtbGpJRkpOfUU2TXNEMWkwRiFzISlneDQKejF6TTduVlYpXiRl
SHxGWVJOeHxENFU3LUwtRml3QldWWlA7JWQxZWJXfXt7eyV1b0FHZTlZbGx8Slc0OTI+e3JeCno3
YlYtaGJuX0NWbSp0RGNWbGBQejgxRWcmV2JjR0x7VEk1M2ZPYW4+MClRfjtIYFNuaUxwNUVXdTtL
dFRpbE1VeQp6a00rYW5sZEQmd0dpXnV4PVlPSngwWFlKMjY5VHx7ZkEkNV94dHt4RDF6Qjx2TTst
emFsezd6cW9ELWxkdmV7WEwKejIxaWk0eEVMP31aWE4ja3s2WU5rKUtiWG4lT0ZldWw/flheKCRJ
R0IyPTF2a2hjRXItZHkhdnZgIXk1LVVDVSteCnpKcHxpTnpsUU9pT1dJPFR8Qjw1dEZGbSNzSjZ+
K1pkcTRDSmVDYiFlcis0SGpMQmdSKExocVpKQWBsb05pc3skMQp6bDUpM284YXdgNipva3pXJllX
Q2koP1ZwdyRKSHwlTUo9VUJfPm5Gbl5iMEBNXiN8MVhGfnN5KmhoNDBrdkNiWUcKemVSKGZsYHtO
NX1KNVJRfk1eNTc4dWpDY0dQX3cpV0R7Zmd2MDhqPnAlT055ZUdgaTR6KCk5dX4lend9Q15Qc1Ew
Cno2PU1WRUB4cUJwXz9DVmFXKnF+Tl54OW5vZ0ppOFFzcEk0JTtxO3NCWmhAT3ZnXn1xQS0jRyQr
ZmAmI0VFP3BAewp6MENZYGZRdXpZSjN1SFJESXxlWV8rN0UrODQoWEx8U3FmKTxyZUZZa0tjfFA/
ODB7TDxEKklBdGY4SDFYbWZrYEQKenUmem5+MEJfdGJkfWBXPCFeaXZOa1JUVGpPfThFSkgkOXxB
MGQ3KE5jO0M8OFZtakhyTHlTJFRGWCFvKWFpTGVjCnowN3ZBNDM9YUg7aGVsQ2VrY1AofHRiJSN3
MiVjJUsjWT4kdmFNfm8ldzhOLXwxZyhWSiE1R3JvcFUxYTgqTjckQwp6LVVYfEpkak1ZTnNJVihz
bnlIfnFiZWBGUnh5ZDBwbWFNJFQkS2pwejtuRHdvNTw+JkN4Yk9LI2FtKEFedWlPdVgKejFeNUcp
OVR8YiZKdVB5KEhEVDdZdCQzblFTT3pnOE5zdWVRMEdZKWx2X0BeWGRIX2g7bDd2fSlQMGRiPmB5
dnVlCnpnTX5CdzNAcjJ7REE3NXg/R0s7Q1lmbkNsPEdUKUhxPD08YnhKYih8cHJvYzQlUXI3WUp5
SEY8OyNAKEFCakpiJAp6ITdYJSs3cmckdXAmWEcmMnFTfk44MDxXTzlwXzNnUX5SJGw4XllRSXJr
R0NDXk01I09Xe343MkFxaXxpV2VNQzEKenhjTDtrcVhQczBSYEQ5UWJFe2FsNWppIXJOKUFBcj9r
NzlgUlFjeSk4IyNGaXspdClmekxedzU8Km16TCZ2MSVNCnpIJEY2aihlODBNdWYoWGtvazxgZE9j
YzZTdDhUNEJSYiNSNjd3fjRZVFgzI3Y3X0R0JUJEQmRuQXFKMlAwTX1nKQp6YUtpdz17eDUmblh4
Vnd7c0ExTk49Kmx8VGp0OzQlekRpdkgza0NvMmM8REpHRHpuWGFATG1JNCMkaXM8I2dpOHMKemFB
Mj8hOElHdTYwLVBMVkc7dWAwMFooNUNLNmwkRi10X0xqZmkxSFB1UmozRG14c0lqNHpgfmAmLW52
bm0tKiE7Cno2NiFnVURSQk4hR2FtY3lifVV8QUw4aWJpKHNXR1FnSFImXnt1d3ZmZWRDMWd7JkBA
Xz9oZ1JlRmR5Nmg+NGlsfAp6JWdZclpzbFZLfXA/cDYhVSR+YChkPDJSVSg3QF9rMiF8MkZ0cnV+
MGAhNEt6P3EjJWBKYFprdSNRS2h2WEN+UzkKemkmeGh2K1Apa1B4LVJVK1J+TkRWZFp0PSZpTC1Z
UnVaMj5NcEw1fF5jKVlXZD14c1RNOVQmMU9Tb20/XzFtcXx8CnorX1FmZjFeXnVaN2BRUF4wSytF
Xik0eDhnMiNmYD1YM0pKJm1Yc2hJM01CfTdEZ2E9aTRzJVBnTGwrUmApTHIlPQp6PGhaY3RqQDgx
K0hffCZ2akFjZWs9VXF0aXN8dGI3Vzk9TDI9byVJWiZ9OC0/KFNHK0k9KSMwMjM9NC1kNFQ9ZlMK
el5wTV5KeGNMQ1VgbzlPTlpJNXA2RzdPOShNdkZxcSZ5bDxTPSR3RTtfQG5ZNFhGZz4pMj4/RFpo
Mm9zQkt5V1V6CnplNVFRflBMRyR0WF9zVVdGY30wYmlvbEg5aSN6ZUxjaChgamJkfEV1VW9TX1hl
bHYrS0xjSkdgVjdUKn5ORG95UAp6NEJ1MFcmNUNEI3t2dmsyYXRSLX5fcnYpM2VMc081N0w8PUE1
KThwUkg3JFQzRG4/ckFvcXBRdGY/RTEoYVhPSnYKelIwcyNCTTttVXk/WVRua3pXN05GO2xZS0Zj
TFd5Pzltbj9Ie3QwTEg5TDZ2JFgwdzhTNHpmOzRZZjcrVT5rMkdoCnpSZzMoUmU0KnZUcCllQTEt
c0xOR25QPHU/MXwpbj45PmkqZmpUc1RLazJKQ2V4dWJLXz5BbT5GYVdsRnlLT3syJQp6RXdMeGoq
NEc/PXV8IX1IcXYobVlkbmQqKmFQbytwVl99ZSFnZS1Pa1lQVzVMSj40WjMrZF83fj5hI0lnJSRW
c08KeiFSVk98QUBFJUJucDBEVjtgSSZhQmg1Y2MqVUthJm9wMWA8cFNQRzg/UVgjNEgjZVpMRUtB
ZXthMDhSa21PPD4+CnopZG9YUjl0QCZZN3kqRjA/S0E8dkN6VTtAc2xlQSY1YDRufCExU2xpRVhQ
K0w5V0BTM1RJdWN+UiN5cVJfIyYkRgp6MTRKfGM7SjwoYGY9QlE1cHRoOTlPVmFgeyU5Pzc9S3JR
eDwpYDEoUCplc0c8Ryhza1UheFk4O19vZ1VUdVYoO0kKelg1IXREJT9TVk8xaUhAYyQ5UjckPG5X
QXE+OX1JaDxNIWdHVTtRO0VONDxEcD1Nen0tTXQwRTdLdmlXeXVPQmBGCnpmdVBxWFNiPzRmI3pS
VlNrKDRkTjF5QDB5WGFhSSRIel5TYTFsd1I9TiZ3P01vbitWbDhIYitSZnJ9QGEhQV40aQp6cT5i
YkRkMStYKHdqTjcySGxsaUlsP1kzNStAOEpwYVppMz9QeTU4cEZ6K31kI3I0TX5tV0ElQ2pSZWNk
TFFqOEEKemBjWnopS0E/YyNobyY/OEBhdjt5VHJ8SDY3Rz9tK2cwRSl6WF4qOE9HWFgreWhudCEo
KzB+KWd7e35fSXJ7IWQkCnp7YFBJK0lIYWlsLWF3PTJgcXg8SzJhbVBELTlJaihMbjQ3SS1HTkFF
Mkstcj5GbmRGP3FQdlhVdVJkcT8hRjJ6Jgp6dz5LZ3Erbz1HTzE7P0tfakU/P1VuNSM7KHB7UzlH
R2RsdlVrQUYrfnd3ZWxqVD9JaW1iVChsNmxDTzNlTXlHMW4KejBWdElmNSh+KGM4LVF4YFVrM3A2
SU9MRHdOMXlkJGQ1c0pKeW00bHIkciMxU2lBd0FsWkE4UktjdyZgPWtfeUk1CnpTV188SC11RzZM
P1pzVmtVdkVjWDskYEFnO2ZfPGc7ckduTVhBOTdLT25KezlKZGE9Ql9Xfk1NU0w1TCRgLXZIXwp6
MDR3RkIre0Q0LWc+VHZ8M08rUWFvVVhJMW4hKUN2I2dtcW9QMFpWUkJYNW5lQGl9bXcwU29hTVBW
UmdTZDthdTEKelBWRDN5MihQJUIham4lUXNqUlFTaVk/MzB1JngxX0lUP2JVMktfLXJZY0pINyVQ
e3tYS3hhUWdYa1ErXldoV3FVCnpsOW8+K0Uka3BXK0RAOFo5P0JZemt9IWtuWUNETV4/ejVwcXgq
YitpU1FCYX4xPVV2e3ZtZH5xdW1MJmFHbHRHWAp6aHY8SUhYYndPSXUtd1dyKU5rNz9hYEtiNGVl
ej4qezxBKUc/TEheTXpOJGp0RG44X0E2Rm4rYCFMSXsqZWN9S3gKejQtbldubiZ6X011SjxlI3dt
eD9Vbmktekt1N19WbSRtTjJlcUZEM1VnaCE0JTUkdC0zSXxBezYtbjs8ZFRKPk1BCno4MyFsczA1
PzEhaUglajJrekh3KD1LKH1AMEtrbnU9cjJHUT4+RDJvO2tNTmhkfEc+V3ZIPERzUyZiMyZkdmtH
VQp6ZEk8KFhoMlpRYCZKX3M3NEVYVHYqPzd+TUJEe1ZITDgmJGwje0BDaGRKNnE1QyY9ZDBuRjF1
WjkyTk19a0RrV2YKelMxO2t5fE1oOG5ASVVXXkp+eDBoT257Z3xWOXJhQXFmaXJWXnIxSjc0P0Q2
bDtHe25oRTUyYkhZa1F0MzxWU3pvCnoxPyshakpON15RR31fTHppYCF3NmVORChLUFJFalVPTjhL
O0VHbUorPUAzRyVoUkVoYGhKfk4lKTwwaF83SjNKUAp6b1AmaGtYPWlQM2dPJTJaJCFPND1pVX5D
aGtQQ14lMlYzeDh1ViRoPnZLKTMoV0ZGbTUkb05hYTA5ZkU+TUBHP3AKej14QlZkQTJXYngxUWpi
OVFQeDs1en5EO1JlPU1MUSYzemE/LXlfMCZud2BMPTFEUWpUIXl5bTU8QEsoOVNObzZyCnpLenw5
RE1kY1R8YU0jfX42VVdLUz5jfTZEcGs/MUJTYy1FWVJnYEV1MiMrM25EJWtuUWhqRnQ1Sy13KyR7
bHdKWAp6fDRBYEpqcU1rKnQpIUEtclQyZCVmZExwNDZYNCRXTkFhJVBDM3BrI1NDRVpCQVM5Vl8k
eTE1O1U/cGFlJHdSKTgKenBLaWllLSYrb3NeR2FRVHxJJHFeOXF6a3U2bDEtWU05SHQ5aTt+PU9Z
STx4MktsfCEwO2hoV1Boa0xuVkBEQXVKCnoyM2g8Mj1YP25KMHNgPzNzYGdoXzFxKGUzemRoNEFa
PF9KemFxTWlAXlg4aXk1KVFvc2V8YD9mY2thYThiV0dPdgp6XmJ1ITw1bWdQPFNmK1VMYXwmZm9L
SEsoVTc7NGghRjZmXm4zQjJ8WCRGdTJ0eEd7JT1IOWdVS3J1UG47T19jSmcKemojV3ViTllhSEpe
X2h6Tik5IzVyZUNEfTRqRyQ1bTA0V3MhQWhsMGB1TDdaNEA0MVRAWTtKe18kSjQycm82Yz4/Cnp0
czlZRFFYcCprZEM1UEIzJXt1VXJ9Zjt2dU5uU251anBNNzJMTClJK0p7SyE7JVV1eGQ7QzJsZ0Zy
bVEkYilpZwp6bWxXV1pIYEU5ZFd2cHVxSkFiLU1iUSZfR3J3UWUkUiltSzdVd0o0ckBhb2dKPT5n
eWs1QntzRXJUYWxxeXN4eksKem1CYEtsbSR4Iz8+SCZiQmArWUhkXy0hJSNeTHFeTmBzZVNERkZa
I0ZtPDxHRFIoUFV6XyNgS0NpXntRYSg/JlNjCnpHSTMqfjBzNn5qen0oYUBkTV9OdF5obDRVTDNy
YT5fd208Rzs1UUd2aH1FfCYhNExOQUJuN35CYnhedDRGIz5Adwp6Zn1XdERuWCFseG1RKHVnYWoh
YU9tSjMje2tBR2JwZkZrMV9HUitVNV8yZGEwZShAI2pgUXVYPD4+TDYhVTdLMHsKenNlLWE+cVdB
UyF4cGdIPHMhTCFhMFN5SSRWbD1oazNid3JkZVo1dV9qeSQmTU56bD9yQmVGQShITktUZ3kkI3lM
CnozciZhPHFZJShOaGdrVG1YIzBqSUB4XzwoRmwjRCsjU2wlZl80Tl5lUkpqNFh2Mzc1ST9HVHd7
S0d9PkBvYnowOwp6d0RRaWF1I3lySEdZYVJ+e18pNEdAaEFIeCgwIXMpT1lHNXZvWVF7YGEkdW5T
VGU3cHxkSSoqNkFeQUdSUThFeVMKelZEb0o/U2hsdVE5Ukk2NytsQWlxe2xxTFNWcz1LWHJiM2FT
RDF0ckQtWDkpMF5mR1JHMEohcmZUYUUzIzJNa2tnCnpYZjBoQjFoVTlwPWJAR2cyIzc0Zkt0U05j
Sit9ZzFgSXJlRnBMJjMpPDM+aXYqPVQlbVUwRFVGVDV+NWReMCtubAp6alJYTW9sMVoyeD5fcXB1
e2pgd1dUMV9gRUQ2VSs1Oyg7ZnllfElaQl58ZXBvIShacHRaU2tsOEZHUzd8PEQ/RzsKemdKPmsp
YmtqbzhYd09PYCYxQyl5azVTZTNGLShwMDtASGJPdkhRdENwIXZ2MiUrMUNgX2hUa3huS0BSfUVV
VSl5CnolX35zNXZLSEMyYTlQdks4Y0AlcXRgTShSJlB6MTVHe3tqSm83RjBgSlBTVkNfY3JlRyM1
NEFFPjl2WEQjPz5mfQp6bCo5bnkmbipAUz1RfTw0dWwrQGMqKWx8PG4xdHxPRHN3Oz1CSUdlKDFM
dkMxZSkxQU13cmpeOHJTK0Zub1I3d0IKellYeFk8KUxzV1YyOVJLfilCQmVXY2ZkUkNrXjJra1Fs
cktDJlVDPno/U3szWTYhT0teb3dJSiFoZFJULURESGVgCnpCV2psdzxKMyFNYXF4K3d1LU1KPTV3
aUpRUzAmMyhFQ1Q8ZnBXaHBHY1UrKSVKaCsodyExM3x0M2UwOz9qdjU5Pgp6V3k0WmA9NG9rPW9P
MWhQMUlKdndVVSkoI1krR2YoZ0l9Xj9IWXU4RU5QM2Bwal4hI1ZHYiRUNXB8cE9qcUxGV3UKekEw
VTFaQjByJEA2b3h2XkRjeWhNLT9pQVNCeT59Rl97KSFDWnFBUCU/fFRrUSowVSl2MS0tRHUhWkRI
VTZgPm0rCnppXl91X0VEa2VsWCpRV3NVZEopWFVWSHxSUylBRUAyPllMWE10SmhhMmQ3MSZXIUB7
IzZlKzZBQyk+VWUlV3FrTQp6KG5WISpwJFkqcCREV31HYSFUazs+MCZYNkAzWVhgTngpbyshMUpG
cUxGbn5lZnVROSpYekt4MiEyc3lrX25yO24Kejg7NlVMcFBNRUdIXks5LWk+R1NeSyQwNSFIO0Ml
Syk2YyR5bk9WNjl6azItUFU8ZyQhN05jKE01YF5mbmEyUDdiCno2P1p8endmeylaMWlIPS1ENWle
RV8kOWc4aUc8V2Q/OChrcitpMWBMQnluYkorXmtAOChCWkopOVVvVz8tPyRzawp6ZVEkQGo3YmRs
NGZCflNrTiZeN3puUXdlajNlOSVvVyhOUz8od0cwWVdFZEZNeD95UD5MJGlmIUJ3OTJ+fEN0VD0K
enE4MlF6MFVyN2ZoeFU8cWhudkZCI00meWlXRHlwdmM+fUJ0RX15LVRlZ05LdEhBJmlrOGhzYSFW
UVJRcjdHbE0yCnp4MDVNd2NIZTB7XjM2WUMmRE4hJmQ1RzF7IVdsfX4xJFZLRGgzR0ZMRk01O0JC
eVJmRW9Cc2tmQVg5dWB1JW5yNQp6YHxhNUNyPkQ/S2NKQXlQbk09d1YlRmVmO2RnJnNwekk2PjJF
dnJSKFBQJHhuOCZzem04IXEhSllLdjFme3cxZlIKemEtN35GSm9rMUh3aTgwbkF2LW5hQ0FuPnhk
ZzVBNHtjPUotcDl4cyg1fXJCfCNlLSlgUUMofms9MUR4Xk17VnsyCnpWVnxvaHpqOXB3Z3VvQS1K
QSpTal9RNnVmJXt0X2laOGVJcVl9K2FuUjJGSlFJUD5FRUFgUkx8M0BMKjFNfCUrUAp6MklhSjlE
RzJ9PXlyLXJGNlNRbHpKK1VucXBhVH0jeFdSNHA7I19STHdIaHljWiN5T2lyVWVfKzR1c1ozWSo4
Z1EKenI0WVJmZVBfUCRRN0liYTtoP0pFLStYeGg+Z0hPMS0rNSMyejtiWVpjVnA3WlBCYSkxakc5
cWlEQjsxY3EjLVpjCnoxWCZAOzEwKWotUUE1JmgydG1eX1BgUHw3XjIrTXNTTjJBMW56b1czJnJT
QFpwT31Efnt4enQ1LTA2VyRMPFJuYwp6b2tadDhefGVvdURlenRCT0BZTVNOeTtUS1Q7KDAlNHs/
fiQ0OWBxSVBWTCU8eShJTUs0OztiUiY+WW1SKko8ZW4Keigob2xqQG1IYTdMbjhfK2lvfn15aHUm
ckxiPmRJZE5XSEEtJkJDVWFKQD5MQiYlem0rYW8yczRVP1dOUl4oTWZUCnpYbip7NShNRjdIeyVe
bHgjISppTnZSd3d6cGs8KnYwRFdQUT83QWBHJmAlJTZeYytFRTtVYWwtdz9XPkFFek9QJQp6Y1c7
RSVZN3gmPjBvNmMySWVibjxaQClOLXs7c0t7PyF2bWA9Y0l7fFFDTT1iO0gpbXczQlF6cGFxO152
aUIzbEsKenQ0YzdARl5IfWA3aHJTUTstOFVaUnZ9ZkVLX2REbDF0eXNSYTVFNFUwQis3cUt5YEMl
ZCstTl9vYEtJOCtfVW9tCnpBWlpJbjRNPXhOX30tVEB1KFp3IWdDJGVNWSsySV5vWXQkeF96WjRZ
QUpjbjwpczNpSnhgfTktOVhBRjleZnoxOQp6OUd1dVFJbmFxLTApZGQ8T1VHZG5ONWxYeUh7LSNC
cEwtQ35sUm9AdCYobTFDYE9WTjBnc3lxaFEreXZUOXleWGgKeiYlWiFfRlFLb3NVaiRuQzZQIU1m
UXtZMTUjJHtOI1gqcF5kWWhaV1UxPGhuX3BKO3xFTGFQOW1yMDRqYEtiLTdoCnpIZCo5MnleQF42
UkcmNWQhYXw9KWAxUmQhXnJncGA0K1FnR21qTkl+RWIoOFNhelpNc2hBfGVfTFZVXjJLR2g2Ugp6
ZnglM0khKTReaHBMIUNPZkBMdEs9Z1pEI0ZeRDlCcUtaUFN4X3k9SyN8V15LPFhRcCFYZkdFMmk3
X3VPb2dMRHcKekJ6XjZIXzlBeVg4NW59Q3ZJdUVhQigma01tWlBmbjJiMmB7cWg0KFcpKiRgWD9B
ZGwkOEpQNVBrXmxmcyNKcXpjCnotfShETE0oXi1RdEdAO1NffkFicCN3SCMhNDNBekIwUWhFeGYp
ZWlrUVU9fnwzKD9CRjI0b2pqVjZeOFYrfldpQwp6dW1vS31qe1lvfF9CcXFEUU40MDJHN0hNRmZX
ZG5HK2RfMkp6ezg2fDgxQkFeO2pSbV4yVSVlJmp4O0NFOVh4fWQKemVlSmlYVXM7MlBrTTFFO2ZL
MyR0UnNOe1Ilakc/Uk9eJV9pV31KSFVScVRFRzhNS319a0UhVnBZKVRqTnY8eEZFCno4Piklb3VT
Tlp1ZEooP2tFJDkhO1B0NyZWZCFSY2YqX3B9M1BJandKMikmYTgkWSEkJGtHeyF4SVplTlNAYXFJ
UQp6TEhMdHVCUUVDeUZkSFJ8UERrKzNLail5ZHdwMT4kand1V1BkSXc7bEx5JUtfeGVqQ1o0PENZ
aVk3KH14SEduT2gKemdpKkZoKzImdENXP0kjZmF4cldzKzUwYkY0KzhASkZxK1F9IXstZiY9Z0V5
bFIzfDlpNmlCMEVhTXFOO05zS0VOCnpOKil1Wm93MiVuNUdMZ3tKMWAyPCg1VVB+Tk0zaDMwRW9J
ZjJtQllzT2FQVm8tPDtLZT5YeUZrJEV6e3BLNVpCbgp6UktefUpAUlEyeHZvbGZyYD0+TVRfaXJi
OW5PbCRRNjxjVyRkb1YoYWY0c2o8bHhlfistJDVtRXYkPnlKUlJoWkUKeipEOUhLdWFocXpjX0Fr
K2N2PXVWN1FDPEpHLWsjSjEjNk0zellNVUcwUjghPWY1TE5ySmMxOEBfODspK0BCYjlDCnpAOCl2
ZyNBb0xjfDhtVSEpTkF7KEA5QyM7WDc1M2E0JGNXUGxObWh3UHolY1F2NVlBR14zQlZJTHl3em0y
djVGOQp6SGopemVJcSVZfDxYKSF0OUgkckZkKWhIbWU3bnNlK09vfmxedlN8ezc1MkwlRSUzUXsq
RUtaKnUtR0tMYTRke1IKekpFfkF4bVp8MEgkTDQ4JjlWNExnRzgwPWxAI05FSktDfXh+YjJpTjdZ
dmNrYSNiPzBoeEF8PnJraWtCWVAmNlVjCnpTRlJoN3FYTWw+QmdFdnE7YDBmPXFjfEhTQnxqa0FQ
WWh2aDRqSmBUdW5gRExreDJZYj4mY2F4bSUjR0BXX3xGcgp6YjtCNW0mWCo0cjA0ZkxvOUJHSjVv
O0A5Q2B4VTFGfDgpUVdafFNTPWxNSkp5Sm85TmozeUAydDxSfTNOaiVQTkUKejU4Ulc2JndlTmtY
fUp9c1VVZUk2and9UnkoLWBoLTVfQ0puMTNZeGBfeEticCZjKTZ+PCs5Q1VZfW80KTU/cHxtCno+
S0M+X1p0JWM8ZldlTG5NRXhmZTUzeGIrQW1rNj87Vj1JWDloYilOb282MSN3cyhKby1rVjdKOXNX
RjFlMiRqKgp6JGV1cmxxdVkxaj0jRSM9ZCRBWW5vOG5KIVZwJkdFOVMhVDNWJWE3Ui1fXnNGQT1l
R2ErQ0pJYWlnfTcmZHMkQFUKemFoJT9rQW9OeE81cDVsJmFeemk7X0QtU3N1THV9PXxBaFJXZy1w
WiR7ITxLMTx8UWJ9dms8YFBITk17U3VYRzBECnpZJnYzS3tidylXd1YoYzZvJiN2ZmhOWElnRzZU
Uk0yRztRMCRJV2s5clQ3ekt5MkZyJW1HSX1mVEV7UmxHJCRJPAp6PXhLaWY9PHRefjwtNUlHJShj
djNSdHJtM3h8fG4pYDAxJlVFN196fm53Pk92QT8lKXV3K0smSWV2JipudEQ7bysKejBLJnJ1Y0xh
TiU8fTUlS19QLUpVU2FXfTtWUD5XVmxhcTBRbSlvN2xlPH1jUXk2a0tLOCZ9IU00OUclU1J2cyE+
CnpZKHNpPmt5cj9rcGJ3TTdKKCVjZ2dOS0FubDQ0MDJiODxkP1ZmOWl9RzthOUlMeE5YV3cyN1U0
QWlfK09CWWhhXgp6WSheKiQyUHNGSTEwN0I2X3xYQENMZyhiZGtOMGp6YFFweyFhR21WTVg4e2hQ
X3RKU0JkKndBOHtQVk51SU08OT4KemNOQSl0c2wjUEpXcWw9OVkqflopd1QmbiZGQkRtQUw0UUNq
X1M4MnIoVUIqST48bDc5amZHeU9falc8PUVnWjdyCnopTDNQOyM7I0padVNSPiVaJk1Dajg5M3RD
LSl4ZEZIeTZnfGNWeG0/VUkoV3w9bG9sc0JNPkx7Y3VBO1V7TFQtRQp6bTVtYTNUN3tNbVdpNXdm
YWYqRzFOI2liR1VyUSFhd2NNZGRgKn0lYmFDR19seVFlWUtLT0B0QTwrTFBTVHdlP0UKemFmRTw9
RlZOWDExVVlZUUp4bVVwQ0BQOXlobEhnSDB8ODI0KHY2dj5qP31gaGV1PXw/KWZHWmtMakJ0eDNr
fm4pCnpFSV9eWXxLe3Juc05kMzhlRVNDb2hkKk4mQUQ3SmxRRXNZcWh9MUl4WlZja35xQT1IbCRH
QEE4XnNGP0wpfmBvPwp6Y14lWCZKa30wZ19YTmd6VFFOUHtMJG9jSiZfOWtfZCVMbT12MXMrSnUp
REh4LURiY1FYbiFqRVMxdCgrVlFqRHEKelZ8XlY2aWBMP0RLU0F5eXtNd1R7QFleNTFmSGoqTUB0
cWd7akV2azgwPD9BPGRHUiRJZXxaTntgfiNTb2lhP0RuCnpAaWVmIWw2PFYld3BJdnpXa1ohSEtq
c2x2NWhZITl6VDtqP2wrYSNkTz1jbGBvPG54eGp+I2pSKyReUlojbWBxaQp6dXB+QTNVN0h8RjN3
P0olMjlPI0FuRHZ9JjRkTHIyczwzS0o4M0xsNm40YW9HWXhsK2ZhJHsyViNjY29uJmo/aFQKej0k
Qm4rRDRJZFpxQzZid1VrI0hoUS1DI3hUeUtCSkQhNE04YTtHOW1ifUk2OVZIMnZpWVlPOGQ5K0F0
U1VKREl1CnpibFA5TU9aVkI9S0xVVTY1Rz82VjZtREReP2B4bkZ7Q0g8KmghJGQjPVE8RmFQK0Vr
aVQhJTZNTkh0YVRtPXQ4IQp6QDl6JiFvai07fD9YUHdPekRXVUsqKkQpcGxEV2djQ0lBVkFUeTB7
QVlrJHRDUzRATjApSEpNeTc9SE5tMDwzSXcKekJELXVVTzZ5azkjWnNHTkRCWDVRITtUTWhVfX5U
WEtGXkdKUHFhKnFhYXBBa1JWIXttUiQpY3IpeFgqOzwpVnh3CnpFbz1aT0cjPypiREIjMFRjTUdP
UTJEUGchTFRGP1RKb2ZFSnV4SUNhLTFlcm1iWTY4aE1paFUxVjQ5MDBNSl8mSAp6bnlpOH0obl5n
KUBtRkg7PklTNGB4YTJTP1NLcD1SdGZUamNzSz4/e2d8I3wrPj5WN1pjZ2hKbTlMQ2NjKCNCI2IK
eiZtblAhO3FfPjVEUU9AMkAyMSNhR1ZSeGU0ZG8lTkc1bG53MG1xRVhRQmgxWkkyPXYxXj5xeHVC
emxzOFgjZUFBCnpJPCVpMng9QCVOIVV5bF8jRFJnJEk2MVRvSFVlVyNiRlFjQCNPNkMxI2hRc0pX
eEhhYTIoaSRQbVRAc3JtfX5TRwp6cjJSVGFwYGh9WXgpQ0JfYmA8NUhVeyMmUU5ZciFHVFF3fjMh
NUklRyZiR19ibDlDJlM9K2AweEt5QHtKJklqTHgKejJtVT00bnJfMjwwSnlvQGc2cF5SI3tWZ3h0
MS0mU0p8Z1ErKGZYMU8wS15+TEkrSWd+Yz5NVXZyfU9hTXgxPHdWCnpteSU3dDMwNmxzNjE2IUc+
SWxJeklme3YpRjNlNjIoKyU/ckpCJW14bHNCJExMMWhFM0VnRiFAKT15bHRzVGNOcQp6NWIoSUNG
eFlqOCp2Z0ZOX3V2WEkmJihfeXtfPXo5eEhLWW4pR15FQjtXQmNxc0JUPEA8eSUmaCZAVnhMTnI2
fXQKelRGSUBaWVViWkVISlFicmJMMlQzNHpsWklwKkx5WGQtPDUtQWQpRF5RY0JJN2M+WShtLSFK
RnpPVHtGVHVZMk9MCno4SF5ITGdFMFF9cjk5Kj1aelNhcVAzckYtZjZQVFJUdk1fMHB+ckQ8fDg2
MXQxP2dlRF94MXNsPTZkan08OURHcQp6dl9kcDA8JVMhWj9gU352O3pFUmlWRkEhZ145UENVcEVA
fUpoc30oPHlmbkdYYTRNbktKczA2YihIWGNFRzFeeH4KemJ1bkBxdEtfKT9pNUwoVUpvPkhpM3FB
MFNQMEk7SWB0X3YkQW0xeXhtcl9McXF+SjY+PWxfUnUwTXpXaXpZWU40CnpFcShFU2M5TCtgWHBz
UUR7alVRNlpWKT14SkMxKlBVb083LT4wQVYmWH5MZSpFR1VhRmpISlZsZyM0SHpBYUc5JQp6IU92
fkhpM3Q/ZkVGJVVgajtqe18laTZYNHxBalB7P3oxV1k3LVk+ZkwmcjRTK2xpcGhEPzVDXndCQ3V7
bU07QUMKekQ/ZiZoK25fYStXOTdEV3M5bzhCXjRmQT8qSy07dXxIJXxUKWgmdjk/QGROfGF1VkQw
RWM5R3kkM1ZsKkp1T29XCnphY3tOT2BiJDBqUlFgPERoNHg/R3UxXmlOaUp1WUwteXp9RTZKYjAp
ejU/fTJeNXNsRG8lV0FQR0x4fHElaTtINAp6ZSZ7aFdyU15jTUQxe2tleXl2ei02eV45WjdqV1NC
JEcyal96NzhmU2heKlcrLTB7djhXTH11V3lfcUFlZkFQV3kKeklAPjJqaWc3S08zbDYoUT19ZWBJ
K2JmSkNoV0lnWEQqODw0QWwmckZMU0x9NTdNV0ZyVDNje1ExNWFodSghS0dICnpQR2hYT0NxOG9g
U0BfaypGKikyTG02anNyOEd5SXRgeVlmWD80eVg9fDJOLWt6fm43YChOYGEjbGxkcm4lU0RNfgp6
a19qTH1kej1SQTRgOG1YNThGMW5AVzVBIzEjUWwmVCNCTmEjc3p4aHNsRVk7Z2VISzFjVFFZMWR3
TGRxX2lDR0oKelVhaldXZXxCTnwzJm57UGpmNjJWR0p4QCtlJGpBSjw9IV4zIX41SE41IyhXemkh
MCRFUCsoMEg8WlF7NWhwU3M4CnpOfXFWdl5tZTtMUFFldzlKZ2RtYTZPS288YERhWF8qNGxYPyNq
KSNxNkpGKz03R3d3NEw7RWkkezM7LWNpVkspeAp6NXEjfnszYDgyJUE+QWdBJmAkOUIpMkhsZFBF
N088PEFvblFpdVV2OHpgfGRaPWZedj8zP1o5OWZFJSltYH02UkoKejxMZU59VDFDJnAqbVFkPm1h
aXx6PGRfRT9aNClIOzZZJEloZ3tQbSpmYTtvREYtPSZGM31ffDYrRlN1QzBrNEtuCnp3andZaWhq
Jlhpa2w5dzR0JkkzcUtMam84JEhpN2RYRjNxXzFtcG9CJHdJSGNjQVFzfGt1R0x1TSNzLWhgKzZR
JQp6YXt3M3NSUEYhUTAwM1drQlZFbTEySlJWMG51Xz0tbCUjVW1gKW9BR3Fxc1RxdWQ1JkY8fWlO
IXtZc1AtU3oqZzQKekxWM2VsKmhJUFNtREBfa3dgJm1vMU9XJDkoKkFgc3p5Mzl5YUVLKDJQIVF3
OHtnQG1iNjFvNHt4RkBTemkhTig9Cno8K29CJWRgOys7KzxQSkx2Yk1MV25xRzwxQyZ1VSMmdFcw
JEVpQ3xHKlEmaVFlfm04eC1HJW1Md0cqOGBJKXx0SQp6OD9ibjN2OGJUYjd5aHVQcFNBQ1dKOyQ7
QSRCJCFqWTZMOSZ0RSUwJllyYDA5NzlKaE9MdVNKMDhxZGVtTz5jbWQKelEtP0h7OEVkdndrP194
PHd8a25qemJ5RmI3X3N6cDg+KHRAV1koNzRRJjB+RWt9Py0/Yk93V2BKNDdoaFlfcChqCnpMcF5O
aWNGbGF5dVFnX1BxcGdGTz93PTZaZz0oZVhmKChHb2kwbXZOQ2x9JVYtQSNkITdkWiFqZzxKKUk+
bjtSWgp6Tk5SNF9tUW5ke2xIM0tEUE9LbWdNIUpEfihLRzx5S2hrV1d7dmt+RGpOXy1AdUV1U2ZV
NUgzX2xyM0lgRUhRbEoKemJ1OUVyVWhvTzhUXnNHNjQrQGc3TV9DflUkT0lWYj9aJXZZTXgxQkxy
a0xAQVFuMHxGdzk3SUgjPXRgRjxWcml6CnpfR1RxeXJ+WkR6R0AjNGNAMzshdXpjOHl3ejVpPlZ7
ZypZZjt6R3NHU3ZJQzt5IWdoRTY2OV56MilpKk5ZayZHNQp6TT95P3kzeCslVHU8TXNrPE1mX0dC
NlpoQW4pfXZPNklmUzJPLXFjeEhMN0d9VEVqVG9VNUlCfT99RHEwKXtzJFYKejV+NCRwTmdoTHxa
WDhgSEQjPGApYnErbV9CP2BSOzAmJipGen0kREg2U0c2cEIzOz4kP0x5X0lkTzVYUDEybFF4CnpU
Oyh9Qzs+SipPemZ5M1NSN3x1RzBPYU04OFE/Jm0/YUFsRW8tPEVDN0kteGsqbyo1ZDFXSTBjSCs7
KHx6anJeVwp6IUVIUColSUhkaXh3dWVWRyErMHVHPmB4dzstMTZVeGkwK2syTVh9e2U9ZnFESC1f
Qk9ZTHdObHE4bnozRlFVSV8KenlZa3tzVUNETWkwbnhwIy13KXJOKiVeIXVfUVVVc1BZKzV3OTdY
SXw9bW91KHNsN3VmdVFsbGxacDB6UTdCfiltCnpvKzRvPD1eUnFpeyVoQ1htdntLaDJjN3hYVGVt
TF9Rfnwzd2goRGZvO0MkWSNDQEhXREQkZTBPMUt0MEBqc2N1Xwp6e3h1d1pifmsxe2xibVVSaEVn
QUhVcDxiKCsjckc+Vn1qPGprP0M7Z1RuPV4qLUhvKSQ4Z012bXAoVmopTWFgbUkKejZjdU5QKjUt
K2h6ZUU2RklgNWhDcHpFMEkkPiV3Yysyd2dDVSVOPHwzS1h5VTxOTjNMMkdNaTI3dHVneWVrR3kp
CnpJX2FQRGVhPGdIJW4oQUx7bnJtZzB6QyhpOFVVXzIyPytUQTh2c2Zfe31IO3Z6WXZ7KDJuMXt1
ckxiQFZNTTYwTgp6MHRVcWxwYW5PMHRRQmg7RU9gNn13ZVdaJldZY0cmdlQrQHA4TSpPPWJscURq
K01nJjRRb0A0OSFhe0hiYjNqdFIKekxwTzRrN3tLSnsyIVZpNGNMeGtnIUhyb3M/XnhpNChBI2JF
PSlINiRmeFN4WXtnPX56VF9jWmNWbispZnN+JCkhCnpyMHAtY0dxQnNUMT9sLSYxZkRAbVB0Mmpl
d0k4UTw5d0V4VnBNOzVMTjJILTVLWipAWXJtKG8mQk5Sd0RsR0xiNwp6PFV2VC1la2QwZ0I2cWAx
aWJQWmJyZGt6fUpkYms0PlFYcUk3RXpAS295ajNWMkxfTmNgOHJRQFZ0UX58OXZASGEKend4cUVQ
YDg5PH5Eel5NTlcqTmFpMVU+RUoyI243cDNPfUg9aEQjfkA+PnRaM0skT25jLX5RMEkkVXRzX08j
TXxTCno7OW41fkRFVndEcVNBbjlvSmIoUkpAOHgmSEwkb0dWbz9iSXBjNkooT18qI01mT1RkSnpr
MDklbThEaj92N0YpOAp6ZmMlUERga1gxZ3Bzc2JoZzBNKGVCTHRWRntxZkk5eTY9aDxyZFNsU0d0
KEYhOVZQcT0zOVZxWXM/P3FaLXpLIWIKek56MSpEM3QzOXhVeXpvXjdDZVZ9d0V2MyFqMT1iJksp
TmM+KFo3eHEqSn1SMHhhZW9YMU4+cEE0KEE3Zl9OSEQ4CnpicSU4WFRuaSU4LVFkPHs8KFYxU3g7
Xyh5U3duRXkyMXNhUXFeJTh0Xzl0JmpDcCFIMHJEOUFMeSR6T31xNkduZgp6ZUtlVUY0eTs7VkY4
bmZEZSpzQT8zMDRiQFZ1R25vXmlRR2ZjJkR0cSNBVE9JY2d0Y3B2eihmXyFoak89aDB4VjgKejNJ
QUxHfEZedzJmc1coNiZQMmMzZE88aCNqVWQxazFiMCMtd05iS1VNVXBNY21Nejx7O3dBQk8jdUhF
U013MXNFCnpKSVJ9UU4+MFlKKno/WnVvMCgrQjxDJmNKb1V4dEVJRWskfHdrMW9KTUo9USNpNHcm
UCshdWZaTDRYOVl1ZjB+aQp6ZDtoPHh5U2gtbFY0K0JnZUpLZHRqcWEtSXM9RDkoPylxIVZNMUhI
IUVgfEdiNGdtN1pqUVUyVDJUeCU3IWU4LWYKekspa2xOMHt7eXUwJj8hbF9mKUV5e0Bea0pLKGlR
fkx8QFJUakckKUE4WmwqK1UqblU+azdHb3dGNj0jbFp+Zl5DCnplRU9wZTdAdFRaUWQ1dUNqOyNu
cXQxJitTRDFQKExIe2o+SnYyIVQ0Xk8lN0BtQmhzT0lBU3Z+MWxZRzF0K2o+Iwp6SzlONG11Pnw/
RDUzfjF8diE0YWl7KFJRa1l4ekNMRi1Pe09gRnNadklKRm0keTRYOThtdE1iIV5BfEBeNW1LO1gK
elN1TTcjdEhyOU5LQDUqdnojSCVHTClWM1YoUyh5dkd5O143aTIjMV5eQ2Q5WEpfQGEtU3B0QzE/
Wlg4fHQyLUxkCnp2QSMoUjh7dU9UaitXQ3wyPGFsbzQzQ0s7dWJzeF4kZHNgRDc4eH5PNlFFO2Z5
TGBAVWYpQEBRbj9gcU1GUXljNwp6PDlHOzNKZHR+VHtKO1A8RGA0YWIxWWt1Z2s/UHgqbT5HRDYr
a2tsazQqZyRINFM/OXNKaFcmKlFkUiV0fDNoYz4Kem82WjtJNjxOZE4xfmhENEJTJkVpVXIhTl9Q
cmxUTiZwc0ghcE03bldTUHppdFAoJGwjVmdWZkAyc0Fla0N+VW47Cnp2aSMwI3Z1PURLU05YbUIk
PXdGMHc/cUtTeDY5NWFeKkIlVyF+Tk5MMV5qI2ZYM24lZjR9ZSgoMDhHUyVnIVFFNwp6SmttKEZE
WUlCJi1iOCRJOGkkU18kRDBUQzxNUUN1WSVia0xmYCpDQ2I1OzJIOH0kZ1JlRlNRQ3ZvOFk+bjx1
NWQKejxEVFZNKHByVD9KUHFIfUFMTUwrdnhoRj57UDh8ZkhxMlZZRF9icEQtSDRUMmk5T0pFSU4m
JGhLWmYlTXlBY1B1CnpheTM7RExtTmA1LTIwK1g1S3o8ck04dVMjI0pRaUhpY2hgdWI8QSE4eTE0
KSNUSyZhVXMjNGtJZXZOfUNrKExIRAp6WmU1SylCcS0zN1Mte21ae219YV47Nzh4UmpWekBxUCZy
JiNnX2liQiMwREJzYXo8Yi1PKzluPHVZTFZrJndKZSQKelQwUmpzeG8+TjJHMzc3T3tjdHtPMGtn
a1BLSVR5SGRqaitBPDxIQkdPOGdHbFpPRmtPKTY+JjllRFdDSElkVHdKCnpobGRMU0txUXBIRld6
anlvMlIwUHU2cjB0ck4wWHg9SkhocEBQUCs7ZlFwZj1IP1daTm5gO0RrTERhKjAmazQkKAp6ODRO
PDdAN1BZQChjWHdTUVRAS04xTCErKlNyaHxscjJJVmtFOzl1P2JHfXtZITRDdSYwTGMxViR3fGFj
ZURDPWIKemRWaGYyNnlTbnQwOWY5MDBBUSlBYDlGYCl1RDdeZjt7Wnlpd2h+UVNSLXROMXRyKSZJ
R2RfKjhGQ01fUnxJS1JMCnpjWHU2S19fUWRkc2F2dVAlYDRhMHRHWDBwMG1YMHJxUU4hc3hjSlIp
bTJtVVZJdTQpeFdvZHVEbEcpTyZjUyt6agp6WFdDelkxPzlFO0BVV3gmPzRWSEtrI0VAWGkzdUR5
YntPdi0/Wm9LI1NZODBvR3o8Tk1BLXJ+PTVuV2V4TUFtKT8Kek58Z2Z1eCVVbVgyRGglTEFwbHJ8
Y3N5elFgbVZzQTctNlltYXkqOCZVT0o1I142UT1RWVFBP1hxQ3NyQXc7ZERZCno2Ny16QmpFTztS
QjlkSyNoKF8mIW9+Q0QhUj1AS08qclNZUDBIZE4zPTEzUTJFYDBBVk9pVWpAKjd+eT47TFpUdAp6
Sk9FSHh7WDJpNEQxcEU1elJvOS0zbmVPQj5RTFFRRkJXYiVgVEEqbUAjOGk0Y21IeDdNI3F4ayMy
QUY4alZuNCgKeik3Ki1Kd2Y9SnNfIVVyc2ReZGF7K0NMQkx5PlF4fWVja2Q9PGhmYUlBSW8yfCVQ
eypwU2laLWFYSXB1PFBqfjxMCnpEQmVERmZMT3FCT2lvU3QwKVg/PCtzQTlecncoeXFuU3IkKkNJ
SWxiMEc3T2tjb0BpP19wUVJ9YnF4WHh5YTIhZgp6VFclU0NeWDBQYHgtdWJgPmJCMSV6Yl9PdjVS
TD5lTTZ7bkApMTFrdS0wYX5qNCZwOFFic24yTypUeXR1WD8hU3gKel51OyRaZWYzOGkwQ2FxUnpa
QnJqMHwyNFdlS21wNW1Kej9kaUxOZXReY1A+KW5WNXgqPm5pWlN7PnZ1T1MwN0t4CnopbmxVN2Ih
Yl8kOSlYYVllP05PZT1JcUN3bj9GQmdfdnVXX3s2QH1hYXp8VWMyVSpQQmRpel5gOXxnfComVHFZ
fgp6NXteQnVfMDluaV9oKEpkWj1kYldgVlIyMXtHUUx2YGtWanhjY0F8MiY+O0UkQDhiQmApMG1G
VV95UGNEMkY0fT0Kel98LWVqSU5La0FmZikzVE1gaTxuZWI0YiZeRzgwbGtyPW19SGtedDR2b2Fn
SFh6a3YmYCNnRnRqM04rbEVkfVBCCnpAM2RVdFE7YjB1VSVAX1o5PFVHeSRAXksmOVZwXm44YDc1
JVhtVVR2XkRpTWJgM2tRRj9EK2xPS19LKFcwRW9regp6JnhhTzZEeSNxNVBaZFJmeXg5QnJUKk1P
PWUpOHZheGJNeXlqTGNMWnBAZDstNSFBSj1MVmUzSmQhZiNCP3VVdzQKekBBPWJ5elk8fTF3bFIw
Pj9LXmJgZDBzMDVEQXRAbWkmQDgzUXVlfDd5Xjh0I3JNTXE/S35LSkJUNTByTXpLcCY1CnotQCkw
UTN2X1M5ZUYxPWplLXtUVEB4eCFXQVpfeEJRYmdIVC1VcWRRPHR6Wjt3JV8qa2preGNfOVlUcHNY
S18oQgp6OzZZdWk/ITVRIWV0fUM8NEc4amo3QzlFJXh5UVdjTHhHaTs2OEVKTnRydSt8czs9aDU2
a3RFaklqXyFobFNlPyYKemVWdiM9e00/VF82WHtidFJAeUhFYUJ+N2N3RE82RVJJUERXRGVvUGh3
RDVhUlgheXFPaFkqWFlndmJOe1k4WG5tCno5K2o8fDVOVFJZPW8qMHBmclJJIzxTb3Alc21KciY8
KWQwVCtkeklMRDRGJmIwSEYqcyQrdGhaI1YhUFh4I3l4Vgp6Nlk8e0FleExSRS1vQ1dJIzk8KHJe
RSheQjxkaHpjcW92VihAZDkzZF9ae14xX2FUezFgRjJkIVJ+elUmKk16QCoKenNSOTlvXlhvfXkl
WGRPO1h3THh2WERzKUZBNjx0djg9Si1PUHVMMnxvcXs3SE4kbWRuN2pnTj5BdzspKyp6T2xGCnpH
aGZ+RUQhJWloPmFmUTkhSEduKlc7cm5vUUBGUHw/Wm8hfXZwOHBlUj8qMXM/fTF2PzAoMHlWVm0m
fGphVCpnbQp6MSF6JC0wNCYhSDA5ZE1PZXM2LSNSSjdScHhKaG54OH1RZlB1dXY3ezwmdHkrRyok
TXdZWEpuU21tdTdAM1B4b00KemJmJE87dVpQRHNVMFRrNmJDamNtbzhSQloybUk0Pmc+VXx4KlhF
PmJeUndQX083K2QhcEFVJFglNWReblo+IUw7Cnptakd0JiZzdVUmSChDNHlQSWFCYjh3ZDh8M2Jf
TEFEYWBnQjVERW0pek57SX56RnZqRGU9VXhYcHhPaWdPU2VOXgp6dk1+biRJTkQhYlNBa0ZkPH5H
cH5CIS1JRWpYXy19dVZVWnA3Y3FRcjdYb0RZZ1JBYk1WQFBFTmVQalRANCt2T14KenVOO1JHc1Y0
QG9ndURQJVJEND15N1VXRGpnVyVqKyZSaHJYUiFtPCQzOVZAWih3RnZRWDgwZXpOIVJ1aWErUUJV
CnpPK2IhWkY5NnsxZVhfRnB4Qm9+e0QheF9oJT8hOWFVSE9+O1J9N0VjWEpJQzgyJW5BMVhUPVpx
NVlQX340R0JjKgp6NVVOeyZWQks9NDtjQ0t5TntISFRHbkgrUndUaiQ7P2g3Zjh6e2dxeDEjZXBN
eFVsc3VZV1pgSCYyTjg+YSMoWnYKejRzKW1kI2JPZSgwbVVsJEl9fD5UPyhAeGhLMFB5eSF6WWVv
LXtDX1RvZncwJj9ndEQxPUtoSWdPUGFCdnkjcyZ4CnpvZX1JaEk2P3JSTiZzbHUyKEApdmohfkdJ
UFU3QiYrT2hOMytMMWA0aDFIKUppe2FoOT1XKjt7cFA+OEo9QCsyMgp6WShSTCRaS1J5PiV3aXZZ
MDNlQHw1K2BTbnpWSjQqKSpWbm81c19NaUpwfE53ZX0pTlVGdX4keDdeSlV1QXc0ayEKenQkN29Z
WFB6U2l4Uj9FWmNtNG1PMU9UMExjSFA3WHRaeGNlSmE5JE15RGNufVF3a3BhenpxSzZwSDB3MzND
TSp3CnpTXjBUUWRDZFU+Nn1sPmE0OHVTbStKSTBeRCswQWQhTj9DJmN5VCRwOExZR2Znd2huKnhq
SDQjeyhOKXZHSXZKeQp6aEEmPTkzKWxZaEUwOHRvSTB9NCtRZlItZ3JBQ3FPPjE4NTc+OXBUe1pn
T0F1clhIRTxiSn1tO2slS3J5QVRUYD4KeiVpSkcpQlVlU0RTaFp7IUhnfks+V3V5YEplKShNdGpM
Wm4qeih6bytTcVhqUlBXIyRSPig3ZSRgUU49OE8tbXs8CnpJeXs0dU5CVkghJV5yKm5QOWVhOUlM
M1JDPlY1O2tiLSN2Qyg9dClYPV5SQHdtQ3UzIWg/T1Mkaj1+KTVoUEwqQAp6QWB1WGQyNkdrTzlT
MTttZUV8bEUqcyZMKClVU28yaG1oI3skRjc4Uis4RzF4P2c1emhCdyk4KFBYTGZDcHo1RmUKem03
LVJCQzM3PzY1ZjA+M2d3cHVkU0ZhR2xeWllrbUd8UkIhT0lKWEdmJTYqQSF7ZUhJb3Focz01RGEx
bXBfKmtkCnpZRmxCQCY3bE08dldoSiVmfWdkey1uZHFZSF4yWFRraDR2emdxeSMoMSRPR3Z0WGJl
diU0ZlotcXxfQzkzLTdQZwp6O1VhJFRuZjwqaiUpVGE5dTNwN25xVz5xejRNLS1YR097czxSKW8+
OWF1cWhPPXxLRFBYMXNvSTV9KXwkZSZIZz4Kej8/d08rWEBjSklrUE5XI3E5Q3lwPyExMiQ/c3tN
fmo9dE5BPEE/Zml3U1FkRGYxYXwkRyhPJCk0JGA5KzUhdjwkCnoxUz1+dStzbDM+JnhgPGpNV05X
eTdtMUVrTHRBemlMUDEzPV92SXxkV0BUOEwza2RpTDBZX0BeMCVsSVY0dD9FKwp6VlU2YDYqOGpL
VXw0O0UhO0VPZn0lcWBhJjAxeWFuWVlUO1VjOW43e1EhXl5RQGFQYyEkdFNQVTxEanRnVHlMJEAK
ejRXTVJOSyRhT2U7OSVJVl5QKmpiNWhQQDxCNmlTN1pvJiVhPFQ5d2lOfUN4Wlo2TF5Qd2Fyekk1
Xm5JS0skMV92Cnp5cjFSQXsmOT0+KHwlOG91N25gdiFmQWdBVzVzO2dRVERVNG5KUl91T1RFfiRl
P0tsPHg8cDFIRXQraj1EeXkpbgp6WjVnKCVUWmZqME1wUU9OQGM7ZWc4VGB2e3BGfkprV1NxY0Mz
d0thb2A7WjlHSXMyQHYzNSZHZjJ3OG1IJl9vPFMKejIpaG1HMWQ9RDhyPD00QVJYYVd8bU03PW9w
O3FRdngpczw0MG9yelFxI3Y7cHpsN2Q7N3U1UThMQExRMzEmeTMjCnokRnJgMHtoMDRSYXlPPDl8
M1kqVThmelh6PmNVPmNDU01AYEE2ei0+WjIoJE8xKXc5Pjh2cjwzSCZ0MnY8KTExXwp6YDAtKmFB
UW80I3RSO3FqX2hkSiowZ0VvMkNSZVV1QVcmVXdLJFIxNUg1V3MwMEQtfG13LT59UF8kTzN9VXt3
PjAKeiR8ZU09VGdYal8kTyoqa2B8PGo3TVVfOH4jZGNuczZZYkIjMDJhTk1le3F8N1ctRCFwNDQ/
JHM/fGZFRlRUVWMhCno/Q2ZkbUojLUxQaGxZakEqSVp3WndQZzklRU1JfTloSSQwYV4pbzZve01Q
P3s1ZFpzRW1yek1RSiFjTWg0TSQhUAp6Tk1IM3FDPjFxdzUtVmcwRnotXiYzPGFAfGtLU3R6YnM9
P2VGWjlNdXNNJm08PTswN3VmfDxrNF82VEhAblNBKV4KejZNTSojcENCY0U2azRQSyllUk1KNnlO
IWRaZylXWmp8fGh5ZyhIfGd3K0NBTlcmKH41QnYxYllhVTZYTFM/bGpxCnp8MUMtWWttYjZAMEFS
WlRxM3tRYDJaQ0Q7bHlXJUpGJT9oISkmTCY0Y2JJTW4mZTx3cm5KbStrQWl6VTExc2hPcAp6dERn
WWBCTEApcHhuSys4R2p0JHkhM31aP2Z7fVV4ZitmKDJBKmtVUlgkZWZHZVFDUzZWfTkwcWFjSTlN
NGx5Nj0KekohamhRZUkydkBIbUJmVzBualFJVjRhd24jUXZqNGFwM3Fka3F1enctP0RiQ1EydUo3
PVhfbSpoSndNNzFSbllRCnp7VyN0PUEpYnJEOTwxPCsxJTNIRlAtPlA3PnotY31rJUxjbmtzP28/
TjRXaUEpVTxDOSVoRnttSCN8VyslTXlrbwp6Sn41OHohIU84dnQkcS19PlN8UWdnKV9eVHlYT2l4
VXlhdTxPaWhocj83Knwrb2xMPTRAaitPejNCPDN3KnFPcDUKenU5IyY3X1hffmRZWCpTbG5fZ0dS
dlZme0R8M1hwMkExJWZMYyszK0lkZmM/S2s3IT5DOCY7PlZxeWNtVFNSeng5CnpPditWK2Q2aXhQ
MiU0Rz03fXxnIXpgLTNucXtvS0M0KHZkcDVzSHdqUHohXjdlUHZ1IVpfeElfRT0jUiszZHF2awp6
QVJ2dmIoaGJzJE5Pd3NyQSsyO3UzNmNfMDVgeWZ+NEdJY0tFaCpneyVSYzx5X3hiI3NaenE0fS0x
blMmPTk7LT8KekNKYjVPNjBOR1B6e0lFI3JvYkw9V3xtU0Qze3diPSpII0xAPDNudEVNXipkRiZS
R2Y/WlE8bEI/MztMRilkZUA5Cno9cThUblY/QCtlaEpUVlFOcWY8MzFfPX11bTRXSHpVWnRFe1lU
VSE0N0xEPC1KczU2QC1ZPjZrcHUmcXJUdHh1Tgp6WUskP1JjMmQ5cGVUYyNlXlMrdlR1QUNvYTVS
Q1k7cFRzbmBrY3QmWEtZV017b1lFQnZ5YSVQcXY9PHJITTYyQDQKemBgWVRDO2c+TEFQLXNhdFA1
KnlKSnd9Xyh2RjRIcm1yZ2ltN2N0MlBhPE56SXdUQjtMNW01XmVXYnJrSVNEWE9BCnpzI3B9ezJV
MllMVlgmN2hMNilhKD9CZ31BKmVCNmwxanVYdyg5TGtwYntmTk95KG17YyR3V25vSlQxITtYNj0m
Qwp6QCZ1MFVeM3pDS0tfZztgWHoodFhWeSY3QUQocXtsOXc0UE1FVGY3SlV5I0pkdE5CbFUmRTEy
SmxEPT09STVue1YKelllTk1rOXA+Y0owI2dpVFoyKlIzUzZ3ZiF5Xnx0K3I0JEMyZUN3KDY5Vyk4
RS0xcC10OX5eSm12PipPMDJ0ZmR0Cno/ViFjMFMxOCNKKytIfVhaKD1lOHhAdVl0JCgrdHItOzVr
OFhgVUNuIXJQaChpQWl9UGptXzJ5ZEwkK0hWKmIlUQp6bVY2UitKSlFPREgrcHR4MjJjOSFyPjhF
RnpySXVZaiMmJD52eCU1ZDk4NWU8enR5eThpLT9QeW43V0w4VVNzeTYKemtuSU0oViY2TCFYQCl1
RXs0dE0jcVgyK30xZjFhUW0rX0I3aWZJVCpVe3JCVHRtV2ZLR0ZaViQpalAzSUhPNzdXCnpyYW1x
Zjx1LXFXRFpsLVo/Zys8S19ZaFFgd3BBblgwRUFeTWtmPH4xeTs9cVhOJHF+YHdfPXIzK3JMbHtq
RXNOdwp6Iz8xTHM0NkJSLXc2NEp5PmBpI0owWUFLWmdPRFJKM1JMfH05ZG5VJjVHc017USFNZloo
RSlnaUYoTU1FaHZxazAKeil7ZUhvYHB5XmkwTSY4VkVeJUd1OXVDQT81YGlCd0A4VW1rbSkmYHM8
JUB1O2sqZX0wTSZtNztYOTsjc2lAbSglCnpqNGBpYjZPKjduVFMtNm9odjBxNTdfTlQjKDgxfjJ5
YmJCIyMybWhUcFArMHglaE8hZHljQm1kPV9sSCgpVk5GWQp6OWpUfWJyeGVsU2RoY0AoQnt1M1Nk
KThKcXp2VDt6OHhoRDtFemE2VHRlcHkmMEZ5OEMlLXVaIVZkPjdrJkpyZ3AKemRWI3l4M3liPEBY
PTErZHtGQilMNVMzcX0/eTZgaTFfcmxPd1d8Qn15ZjQzSDh5bTlZT3hjQU96P29vMVcocD9wCno5
ckw3aWRIcmJ6bmBCYFc9fWB+RmhuXmdVWW01MlZmTEBlZm5OLUJqK0c/djtxKnhgdDI7QzRFYHd6
c2V5SCMySgp6dFdFY2A3P298NyZYbDhgVUglSmFCS2YjRFlMe19pPzZKcEBTVS1kPkJ2YmpaU3s2
NXVadzYoSVUyPz9IVVVxYysKem03I21raHxIQEtmJn54JnNvcGNTVkBxcXZUbHpBbHp0TGtTJHRH
UVRWaGxncztWUiowcjA2ZW9MWmpjeilANFhYCnoyZT0oZyRkKl4lKWVsTHFNP1Y7Tkp8eD99cm5L
S1h6MlJZJEgrS2VkSk0oeE1RYis4MVNLb2M2N0dQNFRqZWJiawp6NlBTLVhgOyhAdWp5VWNTV3BD
QUElRWtDJmMkS2ZDUlFZXj4yfloteShQNT9YaEl7YnlzbUdXQURuYnVLOyNEdnsKemU/SnR+dGpu
VVRTJiYrPmY2V2E2JEJqT3ZzRDdoY0E3I3xGcFgqeX5VUTtZdzlKXzJPJjg0OTU0SClhUFohbV8x
CnpWe1M8UTx6fXkjQzJ8b1lsY3dfJTl8Q0ZNZkFNWXNeY3V8YzhtdGdCQ2EoODErMnthamdYTkQ1
e2xQa0MzRE1TOAp6em91NWNKO2dHeip6b14jcFNudFFhYzsqdyhSaWlMKlBmcEZHUXQ0ZGNgOG5R
NmF4PjltUkl6ZmwhUVFFMEdOVEUKelQqYjR5TWMtV1Y4RXtFfXBzRFVsYXFfaEAoYnpLTCg4bnA/
T0B3QjliaUZET3BZTG9WKCp6eVpsYjwxU248YXN6Cno0VWNZNF40fU82eSE+UGJoMjZkfjEwWmo2
WGJaY0p7eTNKckJ9UDckODQjQzkqUko4alhqbStLWCFSWWB6KTtJegp6M2FeST03bT5ePVYzMUZV
cWJ1eUpwOHE9NHt3cXR4YUs8fVlmS05fd3EmWkd6LWF+OEojZWlzPl58V192SVNPSVQKekdpSyQ+
ZWx8R3MpNlFFKXJOeS0tcjN0K25PITFyJldDPFA7QH1IaW05YFprSHB0Ul9DP0xhUEVpflYodTky
JG5GCnpLckE4eDZ+dDVlMVlURjxZKUJnJmVOQXopYUNnbXpROGU1LT1ndm50cStES2lJRHgmd3g9
UWNaYUE0bDBLZT59Vwp6OGc8VGhRKUJqTUxmaE95bHZ1RlFMKSpDdHB8RVlvY0JofUppZ0NROHl3
SVJXZHV6V1YxWV9FaiZAdT84LSVVMXUKenpsTDxuX0FXMyMwVDw9T054YX1zQWBfJWh3dj5mPFo+
MzkqX3M/cyR6Mio2c149Z3hzbXc3ZWglc3UhYHM9ViN2Cno/UVFGOVlLdHRGbHg9dHFfKlohe3tv
aUBtOFMzaztgPiNwKGYlalhNKmp5WXw5JWU9fiE9ZSF2Wm5URyVDe0lXPAp6KStga0hgSX5MVy1j
KVFYUFAocTxYIW5iVWFLcjskJmRSdGsrODJjRkBBQihjcnlALTYyZVhOfHR0VStCalI5OzcKek05
Mm8xNn5qJUdmfGBMZjFoTUBnVUhKeHIqdyRNYG9MR3RzPS1TaiNkNVheXj1BIWBxall+WnUmJEdU
N3xEakEmCnpWP09ydXs2fUFVb045bHJPb1k7JDk1cF5UX1AoJk5gP0Q0VW1HaWA0V3ZBRFdoZWdC
KFRLUnczU0ttRWs8U1c/cQp6c0NjSi1hRnUtYj99PDtFTFo+SiNNJkpId0lfR2I9ZX5OeE5lV0kw
eSF9d2o0YCslOF47clcrY0Y9cHppanktezwKempaNXBIWHJmfF9me3EmYF92Q2FmV25fKHBGXj9u
JSs8M140eSsqdylRcGBAfFdLVEYrUyoyVjs0ND4mTzVrVWAoCnowalUwOXM0YXR2PSF7cn1fRH5T
KWdfKyFuPllHVjcqYXg/SURRUkotbTFJS2ZpMyRTKXJPMzNCcHJFOGxJIS17fQp6RjF6Un11R3dh
bDl6ej9qPjlrYC1XdlV6WSM3NzR8V0ZfcCtmI1JxPSplfCtFJm5HPk9abnAwd2F+YmorN1gkX2AK
ejJBZm9uZWJHc0Fib2ZSdUtTLUJOeyZMXmUpak9tOU9yYHJzcihAeUw9bUEwQz9vVWk4QzEraHN6
X1JiKng0NF9mCnpVbEg/PiU3WWVEVDdhOykkfDJlbW9JKEVIb1Vwa0xOfFV1NDdZRkY9ZVBzRGlE
a0I5Y0Q+JS1jSU1rI0JHYTJfegp6cnI3Zjc+SDhHeUJuI1RDUEg2ezdFamA7VmR7UT5+Kn1FQjsq
b3xGTlB9eUx9dm9ONnVTfSQ3dGYtfFlteEdsX2wKekw2RzYrSEhQd19sZFktYk9qT2RuS21gV0he
UHRyMFQ4LXRRRyN3JHtnMjRtKWxMNHtzLTBiWlN5akRBaXE+fn5hCnopM1NWZ2Q3bC1GIUBJeyol
MWd2LTt6TFV6WVJKPi1gWjx+KipYT30lezwlO1EtfDFRVnlwRmU/LUBSLWNgM1RSPQp6WjwmSkxl
bURob29Lb091R3puemQ9SnRSLWJjQmg5K0tCK0MlSlNHJW47Kk98c0x3dVo8KG16TUlZRyNZTCpN
KGEKelNJbmlTbDsoUUx0UkZGZCVhY35kIyNPS1p1JmE5cmZKPk4hZGApazQmaTtGSjgqbGM2V1BS
QV5ZUXJ8ajckYWk/CnpDfDl7YTZuOCRWZFU2ZEI8XmlVaWFNKkd8RXxZQTYxNjFGWmBTMW05O1dt
UDR3Vjs1blcqOyoxaUhqVF5PSXhFbQp6bnl4KUNHeyRJXkVgYV9ASCsjeDZ0eXxVaWcjRk9vTUJD
RF9DN3tZI0YhZG84K0FfUER4M2QqMSVvd1IoYS14VSYKeio7SnwocFBSeF91VyRKSjtVRUNiaU8l
WG5oVXIlbXpQQHcxYyppZmw7RCRYaWA4SHojXmcheUtgbGFCZVgjT0Y+CnpOfUpUMUtxOEZ1My1P
LT9eQHN4PypzVm5ZT2VzZEk+fD14OVJjOGZ5VE5odWdsLT5ELXpaX1N9R2cxPWc/JSEoZQp6TTV2
YStvVGI7eiYoYj4+bWRpYV5fMFF2ckIyd3cmR3lJQEB4djlocyhgPUBqMnwlKXhuRFQrMWIzNCVL
LTBONjYKenEpcEduR203Xis8OyFfPE0jWX1+YDVfK1ZTbDQ9TjsqPUFQcD8hVFpzamJtSjUkRzdK
TF9ocTs2QT1GMl9YXmRXCnpyJSFibGcleD9qZiQjOGRNT0kxbHI3USUhYFVfMDA2SSRLVlZzbWpq
VlJkfjhAQm10NUBmM1d5OX4rUXFfRm8qSwp6NGZgY1VES29kKmE1VDh5QEgtSEAhIUx8MXB7djZ1
PWs2O1BEfkh3fm90YmdSUzl7fFZteXdUcklGRUYyYTtIX08KenQ+P2p5SzBGZUJqZyhKVDk/dGxu
PGVmP2Z4dkNFZTRKUmFsWGs3a2dSMktaMSZFUnBBM3tXN3trTStgX1JrP1VnCnp6V2xycTRaIUJD
dURFWFE2VWNuP0JMckQpbGBfSDFEZCl+aV5YSz53R2F6fDQ7e2V0K1ZEaVFrcENzRDN4TTBgawp6
XnpQTUwoP2hDVnFCYCNeajZ7MHVRWUApeTBURCMrcyt7VUMkT3xKJmFmQjNuM01tN2ZmPSRmZWVN
OW9lJSUpUzMKeiVJM2o2VkJJOygzTDs3ZE1rUFZBPyUhTUtNc01eTnpDZFUrPDJfRz1DeDV0eVF6
IWJPJUpYaXVhd0EjcmNUMSpqCnpjS09sZlhJdD5zaD1neE5GZnN1YHNPNTY9P2VtcDxJZmAwOWxE
PiYqci0yfXBEMzlaN2dIMCh2RjtxdDQxI2RPKwp6X0d9LV84dGVNcU9xdWZCXncpWV8lN2Q8UFNL
KTg3JX1RV3FhPDBVU2t2Jio2cjk/KC1aQ0xTQz1VeS1JZCZxT2EKenRAPXpwQmpFQGUkWVRkYFE1
alpoPCFeU1FOWHUpcnkxVWdQZ3g5IWFmRHlzSWZEYigoTiNlYTA+RGNgaEJnNHhICnpgTnZwYCEm
ZXd9T2lXQ19sOEFRYXVhJXBJcHV4dzVrJj5QJk14SW1nTVEmc0o2Pz82OEVhPk80OFV1YUpgZU9g
cwp6blp2bXxmb2J4fkBzUVBIV0o8cUFhU30/RVVIVUw0em12VWU/aTgkcGk4RGhMRjNNc1RtaVg/
KElLSUVpeFZJcGAKemFmaGVUWTB7SSMmZFNCYjU4NygmX1EhTWQ2JSZ2KSNFekltb2UqaipCJWUr
QGpHS2l+PHw9c0lxJShacjxLcSN1Cnp0bWlmTVMjUU9FcX5rQDcyYTxVMEtfPip7ZjNfOz8hVChJ
UGxwK1QpdHh0eiVjaVhWU3tuOVVzWTRlUHU2KzVuMgp6UXl+bTFKWiRfcCh4YUtSNElxKllNXjR+
XmY+QzwwR0RiS1Q/SD40c0l8Mld3KE57YjBBRiY/VkNVWj9QanFYbFAKelYzd1hXOTRleXZjV2Vf
M003RH5+WlRTbWhoTVpeTC1OJiU3PkxoKUx3IT5MO1E9KXUxZXA9alB7ZCZlcmZMdmZjCnpmTUop
WTlVPyNPTyg+eF5QKjZ5d3koWkwrVlB5ZmFjNi1aKjJ+b29lPiVqKCojfk94c1dfPllpQCUoTSpU
SyUlbAp6SE99YXZ4fX08NnBmNzAzSk9vdG9uVkR4PCRyOG4qVm5SZzJTd1lBJXN8YzwwV2U4Vm5r
S1J5byNVJE8qcSFOaUYKemJIUSopOHRRPmsmZFp1Mko4cGlUK0olWHU/TGNwbjBjQFB2O3JVdzBz
JDJQbnJoQEktVkhlYVZeRF5fcHgjMzIzCnpCTk5RO2RDfTY+bjFaZztMLWl1ej5SNzhuTX1jWX5e
PGc8bEYrU2I0Syg7a3VaZWE8VVlXOXw4cGJnZXpSMCY5Jgp6cGxASSheKVExTDZ0c31kZEdHalJE
d01DcUNXRF9XeWlYeypyYCRWM2otezhxbmxNT3IzblMja2dRNUN5MGx6NDQKelMzaG41SlF2VGJB
JCUzUT9oc0UjNT1DQ0xwKz5zO1JLQXZ8YWZYYXU/JD9LX3BBdjFAR0o8UWJZQWJuP1Urbj5rCnoq
VnVvallSekAzX3ZOcCV5QnVpJFFndUBsYH4+YXFOem5MWEtgTlE2YGRqfWB0LU96fnp8UHlVV2xt
fjUkYjZ8Ygp6OF9pSj9sUjN5aDREXzUjYmI8RnQ2T1JkPmspbzUocTNEWTlyI29KU2hPM3RvPmRX
NDZ6WlpmYDNUUXJqZlowWFIKeiMpLUR1OERpXyhUM2ZoaihSNTlISVhKTWRkSHNqYHtCS2t6cU1H
OFlJbG1hbXgjYFVla1JLMm1idCMlRUwjdkxYCnowK0JWMjhWJTxoRDNuazd7bGBEfEtecmV7IXwx
NjxBZ0kkUXRFMSt4QllebSpIdjxJazl5e2FVOXBSUCNVS2ZvZgp6TnxWZFZEO25Vfj5Rb3pAcU98
ST5IcCV8PChrcl9zbjAxJFpATnFOdSU/c3lPJmE/ZzdlUGZTNT9pbEY1cXh7dTkKemBWRE5ObklF
MitZaVFTeEd6Tn1NNil5QTNILXN5RmAtfDB4ZWIzaWBAQUc4Kz9ZcCtXP19rPi1FdmsrP1QlSFVB
CnpsRkRfZTFCS3s1PEdiWlBQa29yKFd9ISZFem1KZE42LUtwa1BKa1YzNVNJLUk3P1BhWTQzT05F
XlQ/eVBRRjxDTgp6QHdzMm9tcE1Db2psRXVDNz1CSXozSjZIKk85WW1URSY7akRmKkJpY0A0dT1Y
JFplOFBwfSs3Sk5ETFNEZlZoaHAKekcyZCRpO0NhLXhgb1BDZEUhN0hqV25gKyk5Pzk1UW90WChk
R3pndFNLWWYzOCkrUn1mWXArRmtvak1JTDdpcC1kCnpYdHBkUUIjR3RzeUJZWHBgfjBxaSpXZnA4
b2dodEo1UngpQmNsdH1XTXNsP3Q+QkZ4fTszLVYtdT9xQ3BCYTVabwp6MkZJbEFYbUJ1NWUjLTh0
Oz5NMXNjPl58PkxNTmEldnE5VSpvdjVwKXhDdEgobE1OLXF0N3ZeaiowWHRrIyhTZnAKejUlR1FN
aWlQQG8+IyZfV0l7SGlMVzU1QXZnJGE/eSYjTm4hdmhHbGZrLSVnWUAlb0ZTWkV1clB6Wl59VVk2
UGN3CnpgNlkzSSglWWt3NChpfmY9Y0FIfXFkUndtbGRjQCtvN0MzYF9BYGBaMWY5WDFRNWZMZW4/
SVlPKW42WER2Unw5Tgp6VjEzezMlN0NZRGgofGMhOExzQmVAR3tzMXtDYyQ7K1lCcCU7Kz5pekY4
U2pmPntBQDkxT1QkdkJQJjk/Q0lUNyoKei1kPnU3JlMjZ317STFMV1MhUDM1QTJHKThJUCtVWXRX
clFoSTIkX3lTQTM/YztWPjN9UHJQUH1UelhVKHRXZ0k1Cno2QnVNTEJ6MElNSV5rQ0VBX0JxJUBC
bH1qKFM0S2U2YUpIRSU8YlJNeUNGKysxIz1EVShPK3ImMEt3PCtzUUk4aQp6fEV9YWE8fEd+R1Mk
VGY+Xzg7PSk0NU1yNWpPN0ZaYClSNU5HP2RuOD1lVD1SbnQ9ej1GZDB5Yzw4QTU1JGxRd1kKej9Q
P1FhVlNEPURuVmp4R2l9TS0kZC1LeDtnc0dieSEwTmFrK3YhU0BPSU5TeT0yVDhFeSZgKihFSD03
K0o8JTYkCnpNeVVeKTlNe1FvKSl8PHAqJF90fFBGUHlMKiMpfSNVOXgyPGhraT1We25ySF9UaTV6
dTE0QmFDSkxFZFIpYzBEbwp6UERTQzxodE1yez11OHczYT9rJmluYVZraWNBP29+VDxuYzJJfHBt
XkBIYk1qXyR7VXhlR2N6c2hAPlpXK31tK3AKekM1fVdTYlVCZWwha2RJYmlpUyV5azgtUnNaVWp0
WHtCTG10KFIkeCQ4WmFrOTNfXzI9eXtYRD84PlojPkdNNVk9CnpJXldScnUtS05HVm4jRGtEWUk9
amFnI1FQbHdkZEdBSFQ9enFlNS1LTFJsd2BIczFacXs1Q3xjc2JWRm9mKmlOagp6aTU2ak9iSDUr
MDh3Z3BhdWcyISFCNENVY3s1UkpITSkyaS1TTzk4NT9aTkY5JGY4anZvN3IqRUEqWDg4bmB1MEsK
eippWE85d0BRenpLKSModkgjK1l2WG8+fFMhcTxPcTJnMSM1MDZzaGU+fS08NkZYSkFgYjkrXmF4
QUA+cF9GYGBsCnooU0V+WFduJEt9R29qYzVmeEdfUGlLI0ZRP1E0c21AaE4/aHMqVTtTR007eyZz
KjhWZStUP1UjV2NTKzJMPX12ZQp6Q3ZRX0ckdS1xaz9hKXBzQ0liWFZHclpDa3Y5aHsrQ2RpNUIy
M2BDVit5QEprMClET0VhS0x9QHNINjNrO1FtUEoKejYkdF5ZcUdTSEItMXYzajEydSpAWFpTcm5r
SExDX1dvQyF5VGIhbnloZ2lIcGNUN3ZGVVltTlZkR3daVSVCX1ErCnptOE5Cc3E/al9iZ05lbmRC
S1Z+cChiZHc5VHQ/SGxscyUmUT47UT1wOCRvWjw0fnctYUNoJUJMQSkocW00dVR9Sgp6Y09EaDFP
SjdlLXYrLSRHcGRWWVJtRig1e3hHKF5JI19oNlFELXNWJiNrWFkrUGlnX31TWk97KjRASH1WNnhz
N3gKekVqdFppZUEmWmxUcFIyVFJMTGMtbysmWUBPNEFTTU9wIW1SbCUhRThvMz9zMjFKZEU5bjBf
QDdVcktOPVM3eXItCnotbGhCMiFHSURpZ1l+T3xickRwISFYRWU8YG03Y1JqSWlGS1ckKCZ4YCtg
VH4pZV5+RiZEVTtfTj1yZUBeUiZ2ewp6Pk5zbG1VZTlqN0BYbkJXTiFCJilKS1dHRDw+cz8zISgp
MXdCP181V2dQM2pScEUqYzd5fWZEfHsjLX0tSD5yUjMKenE2eEtMZik0cSVzXjk/byRJc3tkKm1M
REpwI2M+ZmczJnhtK1FgSE9QP0hEKDFqeitTQSZjbEp0MmVpPXVHVVIrCnpIVns/PDExPnl8VSU2
QCZ1JDJpKXlkPzJoMiYrbUg/JjhAVVcjWUE/IzhSTSRZWDl4czAjbERMNThuKkAqTXVGRQp6WUR8
VFBvb05UZzhoWk52REwoa1k/R2VUKUxjan09Kns+M0hkQmZwWG15eFpJOD9QTTJgI3pxZGZpbWBj
biZIYH4KemVCTlQoYXklVlBiSmNRS2NyNXUoY2VRM01vQE90ZUsqRV5YNTM1cFM1YShJezAxQ3R7
PEU7KVlLSGw2ISk8UDM1CnorJFZvRy19R3BMRWotS2BERX0tP0JnfWskZy0zSEdWP3pHcFR9d0V4
cHtnPFU2N3l2JF8xJjJYPUNiIzRmYDB0bAp6KyExcF5GMyMpJDAwPyp8TU04a1dXWE85PXRwJWRK
RlY7cGBRXmA0NFZZenpKVmR6dVJ4Z0d0bHltYTMwez50TjIKelQ0Y2w/c2Q0JDhIZkJqRylYTHd6
PjJGdiEhIUE7YVVXbXVmckIha2p3YFBGKjhaXkVDdk13fDFBTjU5TEIodEplCnokSSV1eWlgfV5i
WilCJjNVUjxHc3Y9TzxTJFleSmQ2RXZCa20kPiZhZnxZfWgyT0ZVT2tLT0RFUGopeWV3JDdSNQp6
e3BKaGh6RT5EO2FmXk17VH1HdnstNlZ5QXN7OFQ2ISg1U2I+UX57aTxkQzYwREhgUjtYMGBnTz8k
UG1+K3NNbDIKel8wNSk8IWhsKFhqSEFLfGZnbE9nPzA4eDRoMUZVUUVuTXtVNW9KKD9HUWNwSFZu
fUNGIz0xfUs4X0E/czhyQEhyCnpwUCZPbERIfl84NkE3TVpSazZqVmJPMk07YDQjXy0zXlBpQUtZ
U1A0SDJUS31jYEF9VUgra3I9OCNkWjhnUDxVbQp6c3wkKmdHZjZudll9b3Z6O1hgMCFIMDQ9cV51
anhSKW9JJEpkb0wlKi1vVzw/VDVYM2M3TzZkWHt+TDA8O1BBZzAKelBGYn0wdWRQbDdkR3dAVDs1
JTQjS0gjJUQlbkBGfW9kNklJb1AlMiQpJGxQQlJNX1lzVkItPzNfKi11amNEMl5RCnp0U3Z8fUR2
MG0hQHUpWj10blF3aloySXF9MjRyOE1kMXJ6Rjs0XipHVWU8KmVXaWxXNkFrYzdDaE5Ic2UlIWhA
WQp6TnQhNXFHNyRaJW8mfGBWYztkfHgmOTR3UEJ+cUVQKT56ZCpLKV5HNTZkVG5tJnJmTE8kP0lE
ZVhOSWstRXZ5QyQKemh4WE0rOVZRSHVhbU1gfU5GZjl5bnAodlRVXyhHOGw1V0BuamwtMW9qdHYq
JWlgXik8ZUY2PUFNbU9XSF9Tc21zCnpLazxjZGJ3KUpCQ2x8czUraWl0XzFtNj1GdyUpJDNfK3J6
SjdlNTRyaEN8ODRqWTwrRzlNYmNQPG5Bd0U5Zn55TAp6X0s1TDNgNmJOazdPUTR7cnhtV2lDVlRh
SSpRYW84PD8lelVjfGRaNVVQMXlCe2J5MnhjcDg8flhaUHtmX2NRdn0KemVWKnBLNDc/M2pJR301
QkFmT3pOZ180cG5SRiZBcmg0az5CeT47NmN3WkBuQEZZekt4PmNBX30oVWRlVlo/PDJzCnpXP3d4
JlpVSjA/M3RMbzhjSlAjVXI8XldOSTgtRnVXfHw2THtkPXImaGRlRn1TfCZsc2l0bXV5JXFOejI3
M1Ihewp6KXNreTkhMElCLVJIc1E9OWBuWiVIcml+X2B8O1BwQ2p2dHgtez9ZQGt6UCRhZnMhOTdA
Nj99TUQra2hzc0Z5RncKekpja3k0eXM/eyUqV0ElKjV5NVg1ajE4QTNBQyslLTdsbjs9ZHlrdSN4
WihfIzxXPGRZcWhEd20zQyY1IWxVPEF+CnpPM35SbTwtRGAkZCN8TH1UWnZzOWBPXzF0bSgkYW02
Z25ENVlVRWpiS1koenpqKmh7NyNzRUtYTHRMXys2bmVqegp6ZDVmRkNEfnFLdEt1SDJjOSl1fHpB
ayR1MHBeMSpxMTNyPUBRTEs1fGowWT0+TChDK3h5fDJfKSV2PSo9XikxUnIKek55bHtlLWU+ckll
NHxZMk96fCQ0amltTU9MO1N2JkY1Qz1qTih7VnNENnVlJmRJWXd5cV93SystTCprVXtzaiRhCnpD
PTxyT09nMFNFTTYyQ2opcUEob1hOPzBqMUJPWClOaEFYQHc+M3pQdXs1LXUjeHxiM2BJeEVtKX01
fUErKX5AKwp6XilldkxzV0l8ZTVhQFJPMmspZmRvKUkwZVBoKT1jc1QkflVkKFdaZUgoJWwmZEpp
fTcpdndGKDBSdHdwYjV1cjsKemx+NERQTTBaNy1eMjBsOChUcypKbWwyR0tKai1RaGQleiR8QVU4
O29sVCNRNzBoZ1JnIUtGeSV7MURvKiNyfXFACnpIdG9QSzl5cWdYJWFSQkdtYnVkVktAd3ImSVoq
YUd0eT1DYj5YJUJmPUNiWUVaezdhRlhDTzhZOW5Rd29yeTlIRAp6czA8ZiE0d1Y3ZzN7PWExLVRO
UGYoRStNUSpVWVN2em4xNTNAKFUqYTF4ZSFTNUZHa1NPN2Jzc2o+XiVecX4/O08KemRRPDd6NUVY
eHtXRkNEQCszLWo7KURnRFdOMGlySzUybGJMJkFMI0R1Z1cmO0h7Zkt5T1ZsPiUlWj0kakU9THVU
CnorXiRPRUo/SVRfJmw0cl89OylXNWQkJFN1USgmNilvdD4oRXpeNzViNWsjU1leYFlBQSY8fEcl
b282bUs1eTY8eAp6biMmWFFIOzBhWTNKK0kpUClvSWVTSk5vTjlzJX5xajVOOzNAdVNffnFCST83
PnRpWkBuIyMoUU1pOSY7dGZFRlUKejdJbiY+M2dvYjNNSilHYUsybHVvKipgdj5IXjJYVyt2WGp3
TEhHQ1h0NCgzTE5UUFJLP1llNjchTz1AblI9NlBaCnpkMCFGbWh5IUQkPnA0MCplMnJhI1NIVEFj
M29RSlNLemslaD94ekp2R0JRPyRGRSR4STw/KmY3a0Q1bzRgX2JaTQp6R2dXLVNPZ2IlWCU+R0RB
ZyFCeEtzX1hCIUNCYCN3e0xINHpfRkRpbj8kPk0keXdiUV5ZNUJUKmd1XzZvel9hJCoKekozZylJ
S0N5Nz88RXVIWEpsTEUmJk0oWilqX1VrbzdDPXlqXjB7PEBrcHYqdEopYFYyY3JTKiVaMUp9b3M7
U1dWCnokQFMldiNXQnVuR2J+KVpZQERNPmZ1QTJQWmhLYTQzenk+K18mPH18X0h8cFE9Jmx8LWI3
UnJXMyEqejc4UThYPQp6X1FuT0pVWngle1JtSzlJY299OVU2TDNBakYmb0deS0Zva0xSR0FzUmtt
TFQqQDF2d0tpPSs0eXomVyhBWmVfVUwKekk2cnt7WSleI1owQGhKcDMhcWtEPzNvdSZ4UHBGajMz
b0I7LXpLY2BaeCgkd2U7eXh2KlB1U1kpPjN7N2Z4VERUCnorKlV1eCRYWjA+SHx8MjNNZ3tlcyo4
ej49dyQ3ZG9XKlhUNlcxazQockppSHs8YkoqKW1XeGsyYWtkJSRJKDBHOQp6TkpqaWJUSVRCQGZ+
RGd9XnYmYVVhV19ZSjApQmluUnVVRDFaYiV6fEpPUTxvLWdLI3JCPDZEQVg1QDJ3VT5gQmEKenNS
ND9WPENmOUY3NSFvVlFzUW96VEojJGdsQF4oayg+cF53RX1NNHswUVh8SGh7SUN2UypmaVpJaVYw
JXNFa1UwCno/MWN5bjFrNzA5dm1GSzxWSn1VbjArdUsweH5vKzEyX1dGXm58Wih8XzYrSVU8Xn5z
fWp2R3xtNmhNY1VYUGF7Xwp6ZSR8UShpand9OXo2akQzQSNncW5LbV94UyooZiQ3PyRhNXB1PlVz
WD5LMENqKHgzZGgxUjZgRVVUPyo5YXl0Xl8Kek5WQnE9RzROT2JRRX03XjB6KDc3OUwoSCVmbj1V
YiVse2V1PkNAQDxMKnx2b28qaXtwKjMrKi0kcT9xP0pUO1JZCno5MSlkTC1SeyFadjBrQzRQbVN4
cTZ7MEp1bGNXdno5RWhsSDlyKGk8SmBCKUtaSmktSWlvLT92SnljMzZhVVN8RQp6WmxMcmVOT3Zr
VDslb0peZWlBWWpFY3EpZGkpN1FsTTV7QT1DP1VUZ3F5PHBRTzYzdCZZbWZ6RD1QV29jJjE+KDYK
empOYVEjY2RQOWQ4b2JUTGtzbkdZQWdwaTFVZlAjUjV7XklVU1R6V1UkcTJ7fXItcUVtUT5tWGxt
SXxZWkBefmQkCnpxNkFQJlJDQkwyczAqeWdPWVpRPlZPe189ciZnQTVFNTZTPUBYOW5lPHU0WH5Q
LUIweSF8NGxhPVlhK3JQZyQmUwp6O0hMfE1fY0xGfkQpNnshTCpaJmFQdG11RHckR2otelF9bnA7
TSowYTVRcXY/UWxIODM4RGhRLS1lXzVTSVhOeE8KelhCNVpacV9xMDNPWmhjdyRwU3BlQDBScC1D
JWk7fWZDUFU5UW1yWk5lbTFCLWwrU2BWTzcxRXJ0VWdxMSk9bUV2Cnp2P0k4M2krIUNnayFQYm41
Zk44aytxMnNMPmcyLTFvN1pZSkZxVXUmMW99WjRHSmI0dGdIPW5vWVomX0wqNDs5PQp6YDk2bXh0
ViY8UEEtREVRdkM/WH1WYGh2PG90ZyQyPlhIUUhtfWEke3VwPHYlZTgob3tDRnlzZEhRViYhYFNZ
NUcKelJzQW1yXiRifFA8MXIyQ0g0X2hLZH1UPHApdDErZEtvX1JQdmI3UWpuUCZIZGc7Yng/ZS1H
bUNHRDgwNSZ9MzsmCnpLNnp5Yk9JOXojWDtkYTdGPUw+cSRCaTVKQTR4PlB7e0BuTnpTVkMxeVpO
MDk7YXd1JDkjOTJaUjhXWHspSD9ZdAp6KDs3NT0wRXpOakJDYUNpelJwTjc7RU5UViE4YUthLWBV
eSooKEVucDFnKU4yV2VXUXxKcjs+MnRlZ3cmTk1gay0KeigyMz0tZmJ3N3s9MnNvZXY0MkBGMUw5
NndxJUhyfXRkRCFRMlRmNHA8eX02TUVSdUdDUWJRVVhWS0tDSXhnO2ojCnp2I14oJHJTYkkrbm1P
dmBJQm9kM3FWLUc2eE1hQz5ie1lWR3t4U14lQkRSJitZPlNQZDVnKiZiMm9PfXo4N1JmaQp6cWFU
fUxBc25KX15aM1NCRStJc1R0TlM0QFZOX09+dmR7RUZBfXtKflU8dEYpSz5vRWdKKTdIOEUpRzkp
T1U+KGkKelJwWEZFbDt0cFVwKl9HVFkjcEVBUy02NVktcUJpOTVxRkJnTl88U0FfQlRVP2p2bF5t
NzBnaClLbDxAK3VacVV+CnpKKzZPTiE0fE48O29GLWtrTkFndDNVI30yZGAkZ2Y0aFI4dEhTbThO
ST5EeHltITMlVV9neEltQklyS1BmQzZILQp6ZkYhR2coVFpyaGllcUpGaXMwNTRzZGx7fWx+MEdn
UkxncTl5ZndUd0RIJkVWMmg+I0oheEhEO0p9Q1g7cVpEXzsKenhLRlVeWmRwcilsUSMmdXgweytV
YkAjRkhEMWdaJm1laCFUZTdwLW5aPGg5eTIzWiMpLTBgTUZMPG0xJiUpQzgpCnpnJnAoSmhsQnJh
UGZQRD10SWl6KTVmNXwoTSFiTj5GP2tWODhLSnRYaGg1N1RGfkJhQFU5MEcjQ3tkO1AkMFgqdQp6
Rjwoal8oTVVIbHs8eVdeU3x5NCNsTVI+dVphUzJIQGxXY1Q8fDRmUmQ7NEFKPUFqIXtra1BYbzsl
eVA+ZFd9WFIKelcjTE9NNWYhZTNRQFA4NnBrRWN+PG5ybDImMj5NeiZ0Qz9hVUZJdW5kbWRBJkp2
TWtaUkpnaEhQSmQybkxGeEhWCnpaQml9cChkUnsxbmpFTyVyQDwhcitmOH49WTBxTjF7REZ4RiRQ
MWZMU2B4OS1PMClQO185Mm10YjR6WmR4MGl6ZAp6b1FNfkNHTkZMYkRaYnxqdXJAVnhMJWM0ZWR2
Ul5OcXk8MDw8RlheNiRna3hQNFFIYz1HTnE/PVd6N29YS19hQkMKemw+P0xlM15lPClAZEB0YWN0
KXhne19AWDJfMnh9QXBXYGNKIz9ObHNaR1o9UUgzNXJRNkRYPitoVilmLWlQZHAtCnp5T0VGSGl5
Jk1gcDZrY3g0NmFiR2M2PGY/bXFkZmI5QTR6Uz9lXzZuUGViMDBmWk49PEdrdnw3REJHNkh4RXR7
QQp6QiRUOWdZU09BYV9Ze0U7SzFWJmMrSFYoI0lZWnhXNUstSjR2Pzh7VDN3cWI3c0B9PUJEKks3
Y1Rvcz1BVVIlVSoKeispJHZLRGRvbTB7X2dyRUE4UmI+TGprR0BGMkh4RDNJeG1IT01uI0AwOShA
cUFvaDFoVkYtKkpKfCtlMStUWWMkCnowbHlZemloZSlNPil5UTspdEY1eTM0PG97JiNKMFotdmlL
bCU8THJmQlNDNVJST1koeW5RcmF6THp3UlUtPE8jKAp6MHgpMUt6aFFFa2tvXjVLO1BvdDc2MEEk
ODlpTHZfZy10JElJNUhLZW5NfmBVT1A4YFhkQUwtWSY7fWtjb3hTMWsKeis/bXd2MnptUT91KXc+
b1ArdD1VK1BMV08wfDB3XjJucGB1U2xGe3soQkJPenM9dnJIR25NbiFvb31pcitBI2Y7Cno2YW1t
NFlaPkxzSE8tdSNDUnxCdmJrMnpGOUE7Y1RAYWw5Jjg5V15Eb3c2UyNHc09Td2AlRVhrS21rRXtC
MW54KQp6MzMqckBkT2ZjbG95YVA0UFMxaW1sc1Qtd2o0MGpGeyhaTEJiby0zVEc5cDVGX2N5ZntV
MlQrK3BaMjdBUldjVHMKenJLTkkpUDkqdjNeI0coSHNjez4yVSg/PXpBOGxvPGw5ajhpO3QreTxZ
Xyp5QXhGViVwQFkjQFcrPm0rOzt7WDlzCnpNLWJVZHRwYW5CMlk0QSUxTld0emJ+b2NQK3xCNWNC
aXxncXV6ND5wcFdBcnV1I3djYmZ5djNKSXJIWX0oQSRNUwp6Kk1ZeFdgVSpobTsoLT9BcCtAMSUx
eXZ5SUpicmIkRkQ1N3wkYk52NHhNQSRDV3FNIztIN0ZiKUBKdHgwVyZaRT0KejNaM0xVd29CYVB5
YWFBfDhGVih4R1JpWDErMmFFKm9NfFlJNng4dWBqMGlnSnF8PU9BITNGU15KdDlsWWdAWE93CnpF
YFc/M05GM0MobEFaKV5TdjBrWHJ4XyVzWk0zKi0leih0O3pMJWwoSVorJGA/MDRLeHxNfV85RDhZ
V254aEgrVAp6Y2JHOEdEP2l9filJZS0lczJfY2IoflNzNDJBTGgwRGxaKVprZzMkNWZWc3BCSiV0
S0VsMzJ1RmQ2Sihee2Jsa1YKenlKISN5My0lJE5UajdhVkt8dmQ2QiMoLXZle2w2UUYzO30hPyZJ
Uz17O3M2JE9ldj94dT42MUNnJV83fEMpQkJKCnp0QHhjKlJ4Pm5xbzc0ZX1yblFNR3BgKDFHYiFV
ZFVKekshYnJPMkIzWTMzJmheRlQ/dlBpfVUwXno5YUo+QyZifAp6MjsqLVc+KDFSQnN8VFZyX0xX
KUZ4PSp+WDR9WDIkPzRfeDEhdll9MFJSJE5vNEt6ZylUbHhLKiRsWE8pLS1XZzsKejtRMjNvcW1Y
O1pmUkhGfFVCI3ctdF5HTitwRWgqI0ooTVpKPUh1TSYqUHY8RlgmX0lvPE99NUtpZTl9JSF9JSo1
Cno1b01tfEQyfmVfIXtfVGQjIU9wKzUmOWhBTG40MFAxKEckKzxFRyQxdGd1JWQzY1kqSWphfD9s
PXo9PUg3YCUpRgp6Rz4re3Bua29eP1l+MzhrSncpNmR2PXtGc2N7ZGUwTl5ZK0ZKO2VNO2E5XjNz
Mio9VGI+IXFXPXc1fXo3aCpqI0QKenlkZypXNnQ9JTN7REI3WGQqQFRDR14zdGY4YXxFOytNYH1I
IzYmOzN4ZWlHKVJwPllmTHp7WmlncCg2eyRVfldQCnowSipfPCZ9NXhNMzFaLWZIKlphSU5uS0ZZ
al57YyYzQGp1eENBckAmPHNYdj13UEd3YDYmYXhpOU1DdTghVnpiZQp6RG9tT35ELTQ9dU5QKmBi
cEgtTmtCJCRheFE2Q3hwVkYrMnQ5b0BgUV5WKU1feG1GWDwmRSZURlhKVmUrck54K14KelpGciRf
WVRjP2ZpI3IpeE1sRnpmQlNsV2soTkJwKWRQJHktQHY2amtMJVRXTUYjZlladFZZNVJgVkVBZSUp
TklDCnotU3hQc2kpVDZ0Si1iZl5HSUsjJW0xY1FqYj4zIV4zZ1U0XytoazNWKFhpX09lc1A5dVZE
QlRDeyNhU0g9d3RmYwp6QlRuZjBuX20zWiNZNCM7UVhANn1PWTBAc2tSM2trKVR8OFNWUilsaWJX
fVBeeUlLbG1XSUUkV1g2PjhYLSlsKVMKekUrQnxkTktETTBGdTtScEl2bVkkKUlUNU5YblBZT2J0
MTk8aXVTe0RMNkNjNlpnJSM9YTxqYXNOMFhuTzlxRnYyCnplfm9eRmtsTW1jJDZFZmJEd35DKjYr
ZnMwJXlfPkI+UiE3LTE/ez8kbyp6JHtePU5TaktQRX09UH1ERlkxTVBXUAp6ezwmfU9DcTRSQjAk
Mm5BU08lOzRiSjhCUUVeUnN4dD5TfEomZDloYVlGYThUSlhVLTlge35uPWdUfSVlTWJfQEYKelI7
QVkoYXtMI1BxMUEtI2UqMC1VWCpnaUMoITV+KWJpVGo0IWZFTz1ZcVohZUg0aUZ0bkdrUGZ1NGlu
Vz1wUzZXCnotNjl0V09KUmtVQTI3YiNDcC1waldtMGJTeUBjNH53ei1jdXA4JUY4WENNSGo2Ml4l
ZHIwYGY0NGxzV3o1KzRTYwp6T2FBNCRTc3o/RGgwUUN3YHZ2PW1oXnAtYHpza0shZ2NnPzwpSj1v
IU9MNUJKcnJkMk0kMWFeeWlhTSlFTXlQYzkKej5COFRIdExxOD5ncWVSJkc3OTxCKEs5VnlkI0Ny
RVEoYCVrRG1eRXpMK0tAYTZzclRaQUdkcD9WQHtOWnBKQVRjCnpRRmRnWEFVMSlyfEczNUg3bmAk
biF5YSsreDUoZFRzdFQtUGc7JGV9NEN3eHstXmdYMnA3bmtLan5sQEhpe3xKTAp6e2NFKVhrUzlY
N0JuPVNhaDRPV1lIPmBWO15ZJktMN0BKWEkmUEVERHpFYCRjZkw3UFAkVHx2JVpERGkkXlBWezkK
eipYTTBzd3FlWDw8JH5MfkA7d1FAKGl7UzkyfVp7WjlRN307Ylo+QmVGZHk3YT5FR1p7Kn1YJENT
TiQmSyM1fiUqCnpvVmZSRXNjbHQyMXxIeShhbm92UktRTyRwMDlYVz5XN3JNVDEtRD9JZmczdE1i
JH4zdURocEN8ZmJRdkpqVmlWZgp6JEVVR2QxS2ZSaFVBK3gqNz12JCk2a15ed0oyel59Nldze3k2
TjcqQHV0SkJTNlJxKTRrYDBzQWxTYjZVcjwwPEcKekgxTjRPWld8Z2RiKitLPStkdXc3IWFeIzV3
MjRGaTdFN3MyJXkzNWZwTThWU09MaDNCbkRfPV9CP0U8YWJAdkB3CnpxdkN2VjtORTtPP2ozVk8y
PSVEJHY7KVJKc2pIRTUoSDJhbl9nNEB+U0lfd0xjdSlxK21iXks4dytfWXlSd0BaTwp6ZjJeKkZg
V2slZ3R0RFhFJCVAPlRvbDNtSWVVOWJoZjQ7KGpJVDl7PVU4VypMe3A2Vlg3P2o8NTIlTjdrdiZ9
SyQKek8jajxvRmhmLUF7eitSazwqU00rI2JwSXZXSUspU21RK1Q9K3gpT1grbSVKMll6RyExX3Jh
KGMxfDsqfmdoOSFoCnpMfEQoTWhuKmg9QjV+clk2eDM9OGpzO2s0YDU0RldoOUNTMVdNKE0wWXpe
P25pUUxgZVVyIyk8Nkw7d1VuN3Z4Rwp6Z2p1fXxKPjlLdyl4Z1R4JkR2O0RYdDtCanhMOVFqP0ky
OTYtLWZBTiMpU2ZsQEJMbHAtIWJedFFyQzJMJGhrMjsKejNvNjFAVV8pKXxeal83YmAoRT1JUkdP
Nip3ZExIUSVeZX0wRGExU3RRcnxZcXVmKzNETSU+TSo8Y19AYEM2ezdXCnp8TX5xMkVXMDVabzNa
RH1UTWZmUEVNZnUxMkVTdXpuaVgqWjA7cmdlV3lXcDFffmc0QkVXK3Nrdm5Sd0ZWIXhtTQp6M0Vm
VVcrQEdgWUo/YlZhKkswVj48YiFWKE88aTRrMk1KMzRrUWttSVloMGNFe2ZxeER3M2MlblUrKExu
WT8kOFcKeitidWlDej0rVkN6YWkzJUBMXmZZI0g1Szt6TVp5aEpfTChCZlJrND9RKH4+WHttWUdM
P2ojKSVWUkUobkwlMTRACno9VWE0aWE7VkE5KUJ7LVgjRCQ3ZVZORDN9Zn15Kyg+cWVuTXE7Y3Ur
cm5kVDtaVTQ/WUk/SiFfNiklX3pNdEt8VQp6S3xYdSVUWiNLKWo7fn14bmdYaUdxXkp6fCpvbDM+
bkpwdHByUj4yZTNPKEV8O2E4PnhjI2p6eWV+OE4xd2xpJF8KenJfVjA3V29kMUBKOGR7ezBwJVQ2
NFMxOHpzaURpZHEyfDlxJFY5QFU2NitCbjNlYFM7ZEI5VF5rOTNScl4wT04lCnp6UDJRbTJXZzVv
ektIXzdsaTMqIWlacEYzPSZNbTxrI2NNSUE4YG1wdnVHV1VxRCQpVCUkN2VoIUlKIWNHIVk5Ugp6
bmtgRktzN3ozWSRfdUppZVVudGRkLWI7QEhQc3xvaCM4QU8tMkMhIUNlRV5GKlFUTHV4YCs2Pl92
dE1MR2Rja2UKek15dkBPTDYzUTR4fX5RKzM9czc5T2grYkx4VXRWbjVFT1dyMHE2akd5a1FgcTZ4
KjlkSztMVlVGRlpkdmBENXErCnpDKmtyIVBuWE5MNjg2QUdQcElWO0NSTE5pZXUkbkFNaXpFclNk
eH01RE9vQlVgZHlEI2JKdU0zdTcqVXVFLSNNVAp6YFVyTzZqNHFCKUhzNmg4SDchcFMyOWspMFdp
YkRfOU45JG09QTJSfG5BfEBRTUZ5eUpmckgjbHJiQjJYKWJhfikKej5yaUBPREZsJGYlbCFxeTBz
TXApZEJFOU9LK2RaRitCbyEyc0MxUzVQfGVYMnE2cTJUWTlUO0QmKVpLQj82JmolCnpQZkpYVypH
S28lQzJAKUtBakBrc3l3aVNVRjZQPnxWNCg7ODJuNU5LUyZVP3FZYjJCakw2X1dnO2l4YjhHVDw9
MAp6JGgpc2BhXyVkS3FuVXBIY355aiZnb1lqYCU9fXNtIWU/VUpJXzI3SyZZQHdTZ1lVRXQ4dGVx
MEUhfCN+NFZfWV8KejI/SUtDaStRU0dnNCp9NzVscFhNRDZ8cXNAckhCYF9nI08tSXJSYSlvNGo0
eDY1OCFuX08lUCNlfSVadkxlJT4+Cno+Zzg1eyk1NW91JVdwb0t0R1lkSUVKUT5iMl5ZTk4rVm1F
cyh6JkUqY0FYN05mfWNjSWRgVnBIe3BCV294JHAkPwp6S0pqUGgtSTM8Pk5xSjNwM2hRQHhZJkNZ
KUQoZCQ3TSFhVWp6YzhodEJaZkA3Y348cSU0azllOyhPSnhqNyNQMzMKek9HbCh6RiRGS0phZzR7
Rk8yXkEtNVAwfmtlQD9uUEtxck4raHIxNzctJVJkXlkjZVU0eUAlZm9Aa25eQWdTcmElCnpCU0h1
KkluQWk5UytgTD97OVZZMEMkQFdNRjZueShFQ2F8emhLdmdJMytiMHFVYnM2OWZBN0Y7T0dtWFVD
YXItZgp6eGNBeiZHeWE+UjhEcXVhI1ZCVFVRfnxaX25jfWVBZktnYj51YX41ZmNNeylVOHNYbHJU
Y1lSWG9HY3F9QGF2blgKenhacUdeREV3cGZlZiFuNm1TeHhNOEhuYCRDJG5+Xzt9Nk0haVNWQUo7
Ql5iPm9CQU4zWFRzcVFnXlE2UGhkI3FmCnp5VmFrSE9ZWjNSKUp6czlhPGlwZkYtNiohMSUoXjlP
Qnt4JUFpclRSVUBZemZkZWlaY28zckdrVEYkX1JBZ2l1NAp6NE53d1h5X0o+M2ElWCt7TnBrbkln
KT1pVnpmWUVsRVJMUypQfF9kbmIhJWFjNGReOFU8OEFLPGQzU3g/Q1ltYnQKeil8QkN7Tztte1V6
OWoyYHtvUC1JPighamgtKyFWVTF9SG1QOG1zcnp0VVh4bWVOVVBCdVhUZUNwNHs4YEZhe0tJCnpC
NW9tQjh7a3kzRSt9ZEBEKT9TOzhrTW0rMD1aVjZgYGpeJERqT0ozd3N4Qjl5dWo3TT9BRG1oenwt
fUR0OT81Mwp6VSU0THczZ0NWTTc5ck9ScSMyZ2tVa3tDMzN6KCE4R0lMaXJWam5wX0oxUndtTGUz
d0Yxc3JTITlXbT9OWFhoTGgKei04QzRQbnhHVGYpISprZ1YzeG1LXi1Uc0xaLTRGdFA1Mm5RYz8+
LWBjWGRaNkN4cUN0am1oUWpHPj08RmQ+U1R5CnpoYVFOKXVZVWl5SlAyQGRiU0I0TVVwd2A5V08h
JVVjPzdtIzg8dSt9XmdAYm93REUmQFZgZkJsTG9SIWp0RmEhNwp6PExfI3NpYm54PTxpeUtxZ2B4
ODRNM156K2Z9WGE1Q3hzIUJOVEtIZ0EqQ1c4TE1eZjtXTVplKEUpJk1+Zj43TEAKeng5PkFIKnZU
MkFrLXsoSTNyezdiRyZuT00pQj51KkE9O2MxPE1WUXU+ejhzRE5kS3A5RjJ0Z3UoQDt7YXFWXzZr
CnojOUwyQml9P2AxYktBJnVJUE8yNFV6PihFTz80TkomSmBtZHR5Zk5TU2ZhbWNPJmd6Qi1ifnVR
YWRicUEkaTJtSAp6dytOLUgqVSE2Pk41WlpkNSs8eX5kVnh9WU9zNCYmNigxKyZ5RVgqQG84SEo8
cXc5UGc/YWEmWWJ1NjRydmRHWX4KekFNMDYpQGQhKUs/cjFTYSM5O3p2ZkNEa0xSM0VKNz85QjRJ
WSkhKUpPNEs0V1B8Z0FzTGI2dXhzVD0mOVZtX1R9CnooVnRrTVVQLV44PTNDcWBrNm5HekJ0TEgw
NXgzUiR4YmhxUCg2dTw/bTY8MFU9R0ZLfG0rKHR3ZXF3Vzk7fUckSAp6LXF1VjZrTng9cDZWI0ta
dnB1ZXlWaT5NdzZ3Pmx3ci10ejNnbXRrPVM0YUE7SE1NUmR1MExSPW58eEh9O20kNSEKemZ8JSl2
Uj1xR0o3WTghJFhPeGUlQEAyST9sNSlUeEglYmQ9KX5YOE8+QDI4I2V0fkZCJTJmNSRuT1Z+YEgo
bXtNCno2LUVjPUptOUo7PTsoTXJIdGVgdzwhJXd4OEVmaz5LOHBxR2BTdjRTO35lKiojUGVIUF5N
b2J4YFhTKkVqKFQtQQp6X1VnZyRPMnFgZk1xIXEmeTReIWNfVj4xeiVFN247Zyp5a3xTem4ock5P
K0xORVhoUjBeQDU8UElSd3tOWnVTbUIKemB8P1lwQzJeSCo8ZXdNSSMzWmRTellMIyEhPj5SVFIp
QHxyJShwRHRHUFl8fnYpKitSeD83PntITFgjTmohTHdRCnooQiY7dlRQc0dfcyhFaCF7PGBqVUZs
OShmM0Y0NkJLQCVxPWY2bWBMeFpnZEx4dCo+Zy1+MkNKIWhiPHojVnlIbgp6UFgpeXBPYEk2XkE1
b1VHRiE/dTJObHNwXztyI3lZK0VNckU2bi15azR8UT5SNkJFdVI8PiU3Jj11KW5aZnBSNjgKemIx
UUpJcmwoajx1O2tyeDdAbGtTT3okNVZOOVhEKzNwJDE3JENFbTVUWkFgeFI/ZiRGeWwtej8ocFJO
KSFDPylwCnpDMk1yK2sjYnt5Oz1hPmN0cjlmRlFIR0ZGc3E0eUBZOXdCMWBsY0t9bEF7akFZSTNs
MloqPDtEK3JXXykhRTc4UAp6ankjcnFpeno+JmxXTDlzZ2ZxMGJobjRYSlowNF4/MW47cFBNb05Q
QiNae2BVWjVYLWt4THkrdFVXaTx8eEtGI2sKelkrR3pZMmViVmNfajZOdShEfXcqejFuanUrfXo/
KkhUOXx7bUtJJE9aPXY/KktFfUZRTSkta296ODBjPT9RXk44CnpZdmNqei0kLV4wVXV9KGFIZHZw
JjVTXmErKVhEWH08JH1KYVpSeUYpdHo4eG9JPSVGTHt5JWo8MUhxMkxUZFVAYwp6M3ZSZnF5fSNE
aGtCJEdnM2ZwdEJVa3N+XkthTzh3bnttKUUwREVEe2JBRjB7XkM3LTg+R1hqd2I+S0dkZVh8Z14K
enc2dF9lLUAxbGw2bC1rc3hmVHMwcHgwdkJ4VXxLeHc/dUBjVn0wVGNVMlJHS1h1N2g5STZZXlJT
VCFfaUw3QSZvCnpIV1VXJW9aVjRLN2p8YzVwI0hPfTUoKXp7PUJrZHl5JD9JRUhfPmk1citOPldK
JFFJendXejNVZEQlWVA7by12bgp6ZTtJe3wkKWRabCp5YXhsb0oqNGg4JGh5cW5MLTJkO3d9dHwz
TDBLYjVlQjVRNnxVPUREQmpEZSR2V3BJZy0rTykKelNxbE49ISNDfVp8TXcpRndDKT5hTjErWFdn
bHIqPXliem0hOSRIZUI3QkgtPHRqZUlZbmhgdSlzQzZQSDlHRFNNCnp5STBIJER9ZXdXIy1SYFZm
Zyk5eHZMVzQtM09sMT1id2NrIWBaSU0pXih9dTtCcGhid2hRTURBNkNqbFRsWmpEUwp6WlBhPDto
fkcjJlYoYEVIXmJNKjk4Yk52flolZl5PcWhhM2BeYFBKRXhrbVZTQUhHYDYqdjxPQzJfNXojUlF2
QUAKbUdFSSZDZHZMPS1feTJ0Pk0oK0YxU0ZCUjtDVnY0Qm4raS0qc2FEWXs7KHF8e0Y/RVVuCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jODYxNWJlNTAwYWI3ZTk2ODlkMjNlZWZlZWMxY2ZjNmM0MDk0MDJlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcwpAQCAtMCwwICsxLDc3IEBACisidXNlIHN0cmlj
dCI7CisoZnVuY3Rpb24oKSB7CisgIHZhciBudW1GYWlsdXJlcyA9IDA7CisgIHZhciByZXN1bHRz
TGlzdCA9IG51bGw7CisgIHZhciByZXN1bHROdW0gPSAxOworCisgIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyID0gd2luZG93LnRlc3RSdW5uZXI7CisgIH0KKworICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAg
IC8vIFR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMgYmVjYXVzZSBmb3IgdGhlIFdlYkdMIHRlc3Rz
IHRoZXkgYXJlCisgICAgLy8gR1BVIGNhcGFiaWxpdHkgZGVwZW5kZW50LgorICAgIHdpbmRvdy5j
b25zb2xlLmxvZyA9IGZ1bmN0aW9uKCkgeyB9OworICAgIHdpbmRvdy5jb25zb2xlLmVycm9yID0g
ZnVuY3Rpb24oKSB7IH07CisgIH0KKworCisgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQo
ZmFsc2UpOworICB9CisKKyAgdmFyIGxpc3QgPSBmdW5jdGlvbihtc2csIGNvbG9yKSB7CisgICAg
aWYgKCFyZXN1bHRzTGlzdCkgeworICAgICAgcmVzdWx0c0xpc3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ1bCIpOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFw
cGVuZENoaWxkKHJlc3VsdHNMaXN0KTsKKyAgICB9CisKKyAgICB2YXIgaXRlbSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgaXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShtc2cpKTsKKyAgICBpZiAoY29sb3IpIHsKKyAgICAgIGl0ZW0uc3R5bGUuY29s
b3IgPSBjb2xvcjsKKyAgICB9CisKKyAgICByZXN1bHRzTGlzdC5hcHBlbmRDaGlsZChpdGVtKTsK
KyAgfQorCisgIHZhciBsb2cgPSBmdW5jdGlvbihtc2csIGNvbG9yKSB7CisgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKKyAgICBpZiAoY29sb3IpIHsKKyAgICAgIGRpdi5z
dHlsZS5jb2xvciA9IGNvbG9yOworICAgIH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0IikuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgfTsKKworICB3aW5kb3cud2ViZ2xUZXN0SGFy
bmVzcyA9IHsKKyAgICByZXBvcnRSZXN1bHRzOiBmdW5jdGlvbih1cmwsIHN1Y2Nlc3MsIG1zZykg
eworICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgbGlzdChgWyAke3Jlc3VsdE51bX06IFBB
U1MgXSAke21zZ31gLCAiZ3JlZW4iKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGxpc3QoYFsg
JHtyZXN1bHROdW19OiBGQUlMIF0gJHttc2d9YCwgInJlZCIpOworICAgICAgICArK251bUZhaWx1
cmVzOworICAgICAgfQorCisgICAgICArK3Jlc3VsdE51bTsKKyAgICB9LAorCisgICAgbm90aWZ5
RmluaXNoZWQ6IGZ1bmN0aW9uKHVybCkgeworICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpZnJhbWUiKTsKKyAgICAgIGlmIChudW1GYWlsdXJlcyA+IDApIHsKKyAg
ICAgICAgbG9nKGBbIEZBSUwgXSAke251bUZhaWx1cmVzfSBmYWlsdXJlcyByZXBvcnRlZGAsICJy
ZWQiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdHNMaXN0LmlubmVySFRNTCA9ICIi
OworICAgICAgICBpZnJhbWUuaW5uZXJIVE1MID0gIiI7CisgICAgICAgIGxvZygiWyBQQVNTIF0g
QWxsIHRlc3RzIHBhc3NlZCIsICJncmVlbiIpOworICAgICAgfQorCisgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgIH0KKyAgICB9LAorICB9Cit9KCkpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxMmYzNjhjYTA2NTZhMGQ5Y2YyMDI1ZTk0
NTE0NjViNzgzZGYwODJmLi5lZGRkNWJkNTM3ODA3NmZjOThkMDkwMDczZmE5NzliODE5NTMwNjE1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTE0LDYg
KzUxNCw3IEBAIHdlYmtpdC5vcmcvYi8xNjY1MzYgaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9n
cmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTY2NTM2IHdl
YmdsLzIuMC4wLyBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2NjUzNiB3ZWJnbC8yLjAueS8gWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xNjY1MzYgd2ViZ2wvcGVuZGluZy9jb25mb3JtYW5jZTIvIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMTY2NTM2IGh0dHAvdGVzdHMvd2ViZ2wvMi4wLnkvIFsgU2tp
cCBdCiAKICMgVGhlc2UgdGVzdHMgcmVmZXJlbmNlIHNwZWNpZmljIGZvbnRzIG9uIE1hYyBwb3J0
LgogQnVnKEdUSykgZmFzdC90ZXh0L2ZvbnQtd2VpZ2h0cy5odG1sIFsgV29udEZpeCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiMTI0
ZTQ4YjExZTgzNmNhMzlkZmI0NTAwNDk1OTE2MmVmODJhNmUwLi5lNDRlNTZjYzVkZmRmODAwYzA1
OTg3YmY3MzI0YmI4ZjM5MjdlM2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNDEsOCArMjA0MSw2IEBAIGh0dHAvdGVzdHMvbWlz
Yy9sYXJnZS1qcy1wcm9ncmFtLnB5IFsgU2tpcCBdICMgVGltZW91dAogaHR0cC90ZXN0cy9taXNj
L3dlYnRpbWluZy1vbmUtcmVkaXJlY3QucHkgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvbWlzYy93
ZWJ0aW1pbmctdHdvLXJlZGlyZWN0cy5weSBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9wZXJmb3Jt
YW5jZS9wYWludC10aW1pbmcvcGVyZm9ybWFuY2UtcGFpbnQtdGltaW5nLWZjcC1hZnRlci12aXN1
YWxseS1ub24tZW1wdHktZm9yLXN0eWxlLmh0bWwgWyBUaW1lb3V0IF0KLWh0dHAvdGVzdHMvd2Vi
Z2wvMS4wLjIvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAv
dGVzdHMvd2ViZ2wvMS4wLjIvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBbIEZhaWx1cmUgXQogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvd2ViLXNvY2tldC1sb2Fkcy1jYXB0dXJlZC1pbi1wZXItcGFnZS1k
b21haW5zLmh0bWwgWyBTa2lwIF0gIyBDcmFzaCBieSBhc3NlcnRpb24gZmFpbHVyZQogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy1hbGxvdy1saXN0LXJlcXVl
c3QtaGVhZGVycy5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2No
dW5rZWQtcHJvZ3Jlc3MtZXZlbnQtZXhwZWN0ZWRMZW5ndGguaHRtbCBbIEZhaWx1cmUgVGltZW91
dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9jYW52
YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3Np
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlODczNDNkMzE0NWNkMGVlY2Y1NTc3NWQzNWFl
NTI2NmFlYWEzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0
YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1k
YXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NzMwMmQzYmZiZDAyYzlmNzg1MjMyZGJkMTg5ODE1N2I5NzM1NjVjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRh
dGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBm
aWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZv
cm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBU
ZXN0IFdyYXBwZXIgZm9yIHRvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5odG1sPC90aXRsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4K
K1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbCI+Li4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJs
LWFmdGVyLWNvbXBvc2l0ZS5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMv
dG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21v
cmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDhjMzJkZWE2YWVi
OWE1ZDY0YjQzZGFmZjJjMzUyZDk3MzQ4YmVkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0
aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDZmNmFiZDhhOWYxNjA5MzBjM2MwMzRkN2UwNDE0NGZkMjQy
ZWY1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxz
QmFkQXJncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0
OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIj4uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFk
UGl4ZWxzQmFkQXJncy5odG1sPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+
PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjY2IyZTQyNjEwMjVmYjY2OTE2
YTNkNGUzNTMyZjAyZWUyNWEwOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbAotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2Uy
REhUTUwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVu
Y3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZiN2U2MDJjNjI0YmU0MTViYmZmNDViZWMyMTQ2MjYyNDI5NGY0NTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJ
VCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHRleEltYWdl
MkRIVE1MLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1h
Z2UyREhUTUwuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbDwvYT4KLTxkaXYgaWQ9
ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlv
bnMvdGV4U3ViSW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMGQxYTkwMjBiZDZkNjMwYWM0MmFkZjg5NDA5YzA4MjA3OGIxYzcwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKLVsgUEFTUyBd
IEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJE
SFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmExZmYzODkyNDU0MjBh
ODA2ODI0OThmMzA2N2RmZWI0YzYzYWNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCAr
MCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhTdWJJbWFnZTJESFRNTC5odG1s
PC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3Qt
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5z
IHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFT
UyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1M
Lmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWw8L2E+Ci08ZGl2IGlkPSJpZnJh
bWUiPgotPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDAxX3RvXzAwOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFmNGMwMTY5ZDIwMzUx
Nzg3ZGU5OWNmYzZkYzA5MjM5YmYyNTFjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDgt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbAorWyBQQVNTIF0gQWxsIHRl
c3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBlMTNkNjdlOWRiZjRiM2JjMWQ5ZDgyYTAxZTQwZTY2MDgwMzA2ZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDAxX3RvXzAwOC5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbCI+
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWwiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDA5X3RvXzAxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJkOTkwMzBhN2JiZWExOTVk
NzE5OTA2YTkwYzI0NTY2NjI0ZDYxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3Rz
IHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFkZDkwM2VmZWZkMmU1NzY5MDFhMTA1NWQ0MDUwYzE1ZDMxNTM4M2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDA5X3RvXzAxNi5odG1sPC90aXRsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwv
cD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbCI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwiIHdpZHRoPSI4MDAi
IGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDE3X3RvXzAyNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUwZjEzOWEwZjA1ZjFjMmQ1Njc4
YWEwMDMzZGYxZjA5OWMzYzMyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBh
c3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQyMDNlZjhhYTg5ODk4MmUyYjBlNDYxNjgzMWQ5MjQ2OWM1MjViNDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgYnVpbGRfMDE3X3RvXzAyNC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4K
K1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbCI+Li4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJh
bWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwiIHdpZHRoPSI4MDAiIGhl
aWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1
X3RvXzAzMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RlYTczN2ExZTdiMmQyOTRjNWM2N2Vj
MjZlNzY5ZGY5YTMzZDc2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3Nl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFkODAyNTVjMjU2YmMzNzFiYmU2N2JjZTg2YzU4YTNkNzRlNjg1YmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFu
Y2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgYnVpbGRfMDI1X3RvXzAzMi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rl
c3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbCI+Li4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdo
dD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3Rv
XzA0MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFiOWU5MjY3YzAzNzRmYmNhNjMwZjg4YzRl
MWRjNWVjNWI3NGM4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzNWQ2NWE4ZWMzMGJiMmYxNzJiMTcyYzQzMDgyNTc1MDlmNzA1NGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wMzNfdG9fMDQwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMg
YXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2Ut
dGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3Jh
cHBlciBmb3IgYnVpbGRfMDMzX3RvXzA0MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbCI+Li4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDMzX3RvXzA0MC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0i
NjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0
OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRmMjQzNDFjYTYyYjAzY2M3ZDU3ZDlhYjk5Y2Q0
YTkyYjNiZmJjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDgtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQx
NjllOWQ4ZGYyZGI3ZWUwNzEwZTVmNmJjN2E2MDg3OWU1OTk3OTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wNDFfdG9fMDQ4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgYnVpbGRfMDQxX3RvXzA0OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxh
IGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbCI+Li4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDQxX3RvXzA0OC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAw
Ij48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYwODU1NjhhOGQ0NDcxZjE2OGE3ODc3N2I1NmYyNzE3
M2E2MzI3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA0OV90b18wNTYuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDQ5X3RvXzA1Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmOTc4
Mzc5MDM1NTI3ODlmOWEwYmM0ZjUyYjFjODFiOTdlOGE4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
NDlfdG9fMDU2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMu
IERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgYnVpbGRfMDQ5X3RvXzA1Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDQ5X3RvXzA1Ni5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48
L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODQxOWFhMThlZjc5MGFlZWI3YjEyMDU3N2EwNGRjNWU1YjNm
ZjUwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFu
IGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA1N190b18wNjQuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMDU3X3RvXzA2NC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YWQxZTYx
YTA5N2Q0NTU2ODE1Yzk1MmUxOGVkN2JlMDI0NDU1MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdf
dG9fMDY0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5l
cmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERP
IE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Ig
YnVpbGRfMDU3X3RvXzA2NC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3
X3RvXzA2NC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lm
cmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODk1NjM2NjE1MzgzYTQxYWVlOTBkMTkyNWUwMmQ5YmU5YTdmZTg3
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA2NV90b18wNzIuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MDY1X3RvXzA3Mi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MGZjYjdlY2Ew
ZTEyZGVhOTgwN2NkM2M5Y2I4YmQ1ZmY5YmU4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9f
MDcyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0
ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5P
VCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVp
bGRfMDY1X3RvXzA3Mi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3Rv
XzA3Mi5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFt
ZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2FmMmI3ZWVjZDVlOTg3NmQzODM4MTBjNzlmNDhlNWUyOTBlZDAyZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3
M190b18wODAuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDcz
X3RvXzA4MC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwMjc3Mzc1ZGM0NzAz
YmE1OTFhN2UyMjZhY2I5MGY1Y2IxY2M2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgw
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQg
YnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBF
RElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRf
MDczX3RvXzA4MC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4
MC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wNzNfdG9fMDgwLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
KzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDg0Mzk2ZjJlNzY5MDM4NDU3YmRjZjFlOTU0MWMwOTFhY2E0ZDU0YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzA4MV90b18wODgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90
b18wODguaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3Rv
XzA4OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiOWFiYWMzNGZhZmE5ZDE2
NWFjYjkyOTA0Zjk4NzRhN2U4M2VmZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkg
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElU
IC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDgx
X3RvXzA4OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA4MV90b18wODguaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5o
dG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wODFfdG9fMDg4Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzI2ODdmMGUwNDNhNTIyYjQxNGExMjljOTY2MWQyMGRiMTFkYmI0YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2J1aWxkXzA4OV90b18wOTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18w
OTYuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyZTUyYThjYzU2NmVmZDg3M2Q2
NmY1MDBlNGE2NWRlNzIwZjE2MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDg5X3Rv
XzA5Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA4OV90b18wOTYuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1s
PC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8w
ODlfdG9fMDk2Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA5N190b18xMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTFkZGIyNTNiZGYxMjAwN2UyMDIyMGU2OWMwNmIyMDJkZDNiM2RmZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2J1aWxkXzA5N190b18xMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQu
aHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDk3X3RvXzEwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwN2U0YzE5OTg0NjNlMDE1MDExOWM0
YjJmY2ZkMmU0YmYyMTg4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWwKQEAg
LTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMDk3X3RvXzEw
NC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzA5N190b18xMDQuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sPC9h
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdf
dG9fMTA0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2Pgor
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEw
NV90b18xMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTQ1Y2VlY2E3ZjU2N2ZhYjhmMzk4NGMyOGZkNWQwYmFmYWEzMzQ1NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzEwNV90b18xMTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRt
bAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTA1X3RvXzExMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMTQxNjM3OTQ0NDE5ODUwMmQxNmM4ZmU3
ZGZhM2VlNjMxZTA1MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAu
eC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTA1X3RvXzExMi5o
dG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEwNV90b18xMTIuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sPC9hPgor
PGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9f
MTEyLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190
b18xMjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWZjZGUxNjg1OWUyN2RjY2JjODM2OGFmNjEyNjMyMDE0ZDY3OGUxOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzExM190b18xMjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbAor
WyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTEzX3RvXzEyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YjUyNDYxMmU3NTNkNjBjYmU3MmMzOWJkNzMz
MDNmYjZmODU0NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTEzX3RvXzEyMC5odG1s
PC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmds
LXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVz
dCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9y
dHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEx
M190b18xMjAuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sPC9hPgorPGRp
diBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIw
Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18x
MjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcy
NWZmMmI1M2JjOTRhM2M4YmVkMmI5ZGRmMmQ0NmZhMTgxYzQ4MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEyMV90b18xMjgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbAorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIx
X3RvXzEyOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MGU5MWExYjYzMjQ3YTE3MDcwNTM2YjEwYmIwOTg0
NmY0YWQ0NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTIxX3RvXzEyOC5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90
b18xMjguaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0
bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQyM2Q2
YmEwNTAxYmM2ODY1YmZjNmRjNjgzYjdhOGIxZmExZTBmMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEy
OV90b18xMzYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbAorWyBQQVNT
IF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3Rv
XzEzNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiOWFmN2U4NTMyNDE2ZTA5MzhkYmYzZjhlODIxMWRhMTM4
NjA3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTI5X3RvXzEzNi5odG1sPC90aXRs
ZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3Qt
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5z
IHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFT
UyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18x
MzYuaHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sPC9hPgorPGRpdiBpZD0i
aWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTM3X3RvXzE0NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNkZTY2YTAz
ZWIxMjI3MTNiODlkNWQxMWEyMjU0ZTgyMTg3ZGJmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190
b18xNDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbAorWyBQQVNTIF0g
QWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0
NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgwM2EyMDEyNjE2M2Y0OGI0M2VjMmU3NTYyMzEwNzNjYmEwM2Yy
MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTM3X3RvXzE0NC5odG1sPC90aXRsZT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQu
aHRtbCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sPC9hPgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwiIHdp
ZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTQ1X3RvXzE1Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk0ZGE2MWEzNzY1
MzY5MTdlMmFjYWJlOWZhYzJiOGY1MGIzNmQxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18x
NTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
CisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbAorWyBQQVNTIF0gQWxs
IHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYzNmY5YWJiOGQ3MDYxNWVmODc4OGZhNzgwMzYyM2NhMTlhNzNmNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
Z2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZv
cm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTQ1X3RvXzE1Mi5odG1sPC90aXRsZT4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRt
bCI+Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1l
Ij4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMTUzX3RvXzE2MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJkMGQ1Yjc2MjY3ZTcz
ZTNjYzUwYmM1MDcyOTA5ODY0NzI0M2RkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisK
K1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbAorWyBQQVNTIF0gQWxsIHRl
c3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk3YWVhOGFlYTE3MjlhMjFmZWRhYTA0M2U2ZWMyOGVjOTAzZTMxNzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTUzX3RvXzE2MC5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbCI+
Li4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVp
bGRfMTYxX3RvXzE2OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTM4YzlmZjljMmMzMDlmNmEx
MWQ0NzdiYmRjNDY3ZTYyMzI4MDM5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjgtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbAorWyBQQVNTIF0gQWxsIHRlc3Rz
IHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
MS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZmM2Y4NGJlNTM3MmY5ZTU4YmI2MDhiNWI2ZGJkMzdhZGMxNjRmZWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgYnVpbGRfMTYxX3RvXzE2OC5odG1sPC90aXRsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwv
cD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbCI+Li4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxp
ZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWwiIHdpZHRoPSI4MDAi
IGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRf
MTY5X3RvXzE3Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRiMzVmMTFjNDlkZjdlZTBmNDNm
NjU1YmQ3N2ZhNTgyZWFjOWY5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBh
c3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4w
LngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiYTMxNTVkNjY5YjEyYzFmZmRjOGJkOGViOGE3MDc1ZmI1OTVjN2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3IgYnVpbGRfMTY5X3RvXzE3Ni5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4K
K1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbCI+Li4vLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJh
bWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwiIHdpZHRoPSI4MDAiIGhl
aWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzgtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3
X3RvXzE3OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA4ZDlhMDI0NzdkZDZmYWY5OTAxZjNl
ZDY2NGRkMjk0MzE3OTYxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzgtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4u
Ly4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3Nl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1ZDE2NjgxMTYzNDBmYmQwNTVhY2MwMDY3ODYwMzM4MjVlNDUyZDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFu
Y2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgYnVpbGRfMTc3X3RvXzE3OC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rl
c3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbCI+Li4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdo
dD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRl
cmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYjJmODYyMWIzN2NhOTVjMjM0ZjM4MzFlYWUyMDY2MzkxYzE0ZWFl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
cmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRl
cmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwKK1sg
UEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgt
c2Npc3Nvci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9y
ZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMxY2NhYjA0YzAyZjVhMjhjZGQyODZjNzZhZDAwZWY3MjY2MWFjZTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9yZW5k
ZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4K
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNsZWFyLWRlZmF1bHQt
ZnJhbWVidWZmZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVm
PSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJp
bmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sIj4uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xl
YXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sPC9hPgorPGRpdiBp
ZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRo
LXNjaXNzb3ItdGVzdC5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8
L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3It
bWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRl
cmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVy
LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1NDkxN2U4ZGQwNzlmMjQwZWNl
YzhiN2ZlMGQ5ZTY5MjViZTE2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8xLjAueC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVj
dC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1z
aG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwK
K1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0
LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZm
ZWN0LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
OTE3NjkzNTFlY2MzOGMyMDhjNTgyMWRiN2U5MGY4NzlhM2E3ODY5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1h
c2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJ
VCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNvbG9yLW1h
c2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5o
dG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0
LWFudGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbCI+Li4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hv
dWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sPC9h
PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90
LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwiIHdpZHRoPSI4
MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI0Yzc3OGEwMDc3MmExOWU0ZmYzMzVhMDRmYmFlNWNmNTcwZGQxZmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRl
cmFibGUtcmVuZGVyYWJsZS5odG1sCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zv
cm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZhODk5ZWI5NTUwMDJjNDJiYmU0MGYzYWJiZmIwNjc3MWM0ZDUxNWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBmb3JtYXQtZmlsdGVyYWJsZS1yZW5k
ZXJhYmxlLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQt
d2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQt
ZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVu
ZGVyYWJsZS5odG1sPC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xl
YW4tY29uZm9ybWFuY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyOWNiNDJhZGVkYjk2YTA5MTU4MDFkZDNlMGQ1NzUyNTRkM2RmMWJhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKLVsg
UEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzEu
MC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9m
ZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5j
YW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDRkNzk2
MTY1Mjg1ZWMxZmJjYjgxZmRmN2QyYTJiNWNkMDcyZTI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1v
ZmZzY3JlZW5jYW52YXMuaHRtbAotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDBhNTEzY2NlZmEwZDU3Yjk0NzVjNzI2YzNhNWNlN2Q1MTAxZTlkYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8xLjAueC9j
b25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3Jl
ZW5jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBm
aWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZv
cm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBU
ZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMu
aHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10
ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlm
cmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZh
cy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmNjNThmODdjNDVhNjA2YzM2MDQ4ZjUzYWQ3NGM5MzA3Y2M4NmNhMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZp
bGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9y
bWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRl
c3QgV3JhcHBlciBmb3Igb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw8L3RpdGxlPgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCI+
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVy
ZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbDwvYT4KLTxkaXYgaWQ9ImlmcmFt
ZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmYWUwZDllYzQyMWRm
ZjI3OTYxZDdiMjdiYjY5M2YwNThjNGNlZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC8xLjAueC9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKwor
VGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbAorWyBQQVNTIF0gQWxsIHRlc3RzIHBh
c3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMS4wLngvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTI1NTliZTA5MzZjNGNmNGYzNWJjMzRmMzE0YzQ0Mjk5MTZhNjUzNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzEuMC54L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
cG5nLWltYWdlLXR5cGVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMg
YXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2Ut
dGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3Jh
cHBlciBmb3IgcG5nLWltYWdlLXR5cGVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJl
Zj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMuaHRtbCI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2UtdHlwZXMu
aHRtbDwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1h
Z2UtdHlwZXMuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFm
dGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZDhlODZiZDdiYjI4ZTk1YzAyYmY3OTY4NWZmZWM2MDdlN2JkYzExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvY2FudmFz
L3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBv
c2l0ZS5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0
YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWYyNWE0MTU5MWY3MGQzODkwMjZkNmZhYTg1YmI1YTAxNTZiMWRjMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRh
LXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmls
ZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3Jt
YW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVz
dCBXcmFwcGVyIGZvciB0by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbDwvdGl0bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitU
ZXN0OiA8YSBocmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWw/d2ViZ2xWZXJzaW9u
PTIiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZh
cy90by1kYXRhLXVybC1hZnRlci1jb21wb3NpdGUuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxk
aXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLWFmdGVyLWNvbXBvc2l0ZS5o
dG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8
L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9y
ZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy9yZWFkUGl4ZWxzQmFkQXJncy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0ODBhNDRiODk0NmNkNTZjODcyMzZmMWRm
MjBlZWY1ZGE4ZWVjOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
cmVhZFBpeGVsc0JhZEFyZ3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCww
IEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MuaHRtbD93ZWJnbFZlcnNpb249MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNCYWRBcmdzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMWFlODcxYWQxYzI1ZTlmZWQwNDZlZTJlYjE0NDZmYTk4
NjY2ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVs
c0JhZEFyZ3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBm
aWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZv
cm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBU
ZXN0IFdyYXBwZXIgZm9yIHJlYWRQaXhlbHNCYWRBcmdzLmh0bWw8L3RpdGxlPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgotVGVz
dDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbD93ZWJnbFZlcnNpb249
MiI+Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9y
ZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxk
aXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3Mu
aHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgot
PC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMv
dGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTM2N2QxZGQ1NDRmMGU4Njk1NzBmZWJlMmZkMGQz
ZmI0MDFkOGZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0
bWw/d2ViZ2xWZXJzaW9uPTIKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleElt
YWdlMkRIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9tb3Jl
L2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0MjhmNWFkMTllYmJjNmRlYzQ0ZjUyYmZhNGU1NTYyOGUyYzc3ZmFkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9U
IEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB0ZXhJ
bWFnZTJESFRNTC5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3Rl
eEltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleEltYWdlMkRIVE1M
Lmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08ZGl2IGlkPSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUv
ZnVuY3Rpb25zL3RleEltYWdlMkRIVE1MLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAi
IGhlaWdodD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3RleFN1
YkltYWdlMkRIVE1MLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YzhkNTY3Nzk0YmZkOWIxNTQxMDE2M2FhYTNmY2NhMDZjYTE3OThmMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgot
Ci1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0yCi1b
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3Vi
SW1hZ2UyREhUTUwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMwYmU2NWRk
ZmY0MmIzNGM3MzM3MzZlMzUzZGM4NmE4MzQ1NjM3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTggKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdGV4U3ViSW1hZ2UyREhU
TUwuaHRtbDwvdGl0bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFn
ZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5o
dG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRpdiBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1
bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwMV90b18wMDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3YzlhNTVjZjAwMzExNzFkOWJh
NjQzODUxMmM5NzkyNmUyN2YwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9fMDA4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90
b18wMDguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzI2MzkwYzE5NjRjNzIzNmIyNTU3MWM4ZWVjOTAwZDZi
YjljMjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzAwMV90b18wMDguaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDFfdG9f
MDA4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwMV90b18wMDguaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAwOV90b18wMTYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMjU5NjExNGNmZGE5NjFhMWQx
ZjlkOGFkYWM1YmNjODlhNjQ0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90
b18wMTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzdhNzQ5ZDM3NjMzYmFhZDRiNmQzYWQ5ZWU0OGU4N2M0
YzVlYTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzAwOV90b18wMTYuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9f
MDE2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDA5X3RvXzAxNi5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAxN190b18wMjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkZTg1NjhmOWJlOGJmZjI2Zjhh
YWVhYzcwNDhiMDdkNzczZjNhMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190
b18wMjQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmI3YTk1OTUwYzYwY2RlZGI1ODY1NGQ2OWY0OGYyODdl
MzRiYzU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzAxN190b18wMjQuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9f
MDI0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDE3X3RvXzAyNC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAyNV90b18wMzItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMWI4MmFiZmYwZmJiNzUzYmM1
YzUxYjVlN2M1OTRhNGUwYWU4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90
b18wMzIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDUzN2I1OGVlYmFmOGY0M2UyY2E1YmFmM2Y0YzFmMmQ1
OWE1ODI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzAyNV90b18wMzIuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9f
MDMyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDI1X3RvXzAzMi5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzAzM190b18wNDAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkZDQ0ZTUxYjdhMjlkNWFmZTc1
MzQ5YmE3OWE5ZGJlODYyZGY4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9fMDQwLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190
b18wNDAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTAzZWUyOWFhNGYzYmI1ZDQxM2U0ZjI0ZmY1NWY3MGVk
MDMyOGMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzAzM190b18wNDAuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMzNfdG9f
MDQwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA0MV90b18wNDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYTE5OWE5YTEzZTdiNTk0NmQ1
YmEzYWZiZGY4MjE3NjY0ZjhhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90
b18wNDguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWFiNTU0Y2Y1MDQ5MTYzZTY0NjRjODk4NjQzNjlkNmFl
ODY1MWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA0MV90b18wNDguaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDFfdG9f
MDQ4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0MV90b18wNDguaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA0OV90b18wNTYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkZjk1NTcwMTBmYjI4ZjhlODg0
NDMyNTI5ZTExOWY4ZTUwMGEwN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90
b18wNTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWJkNzAwOWY2YmU3MjlkN2Q1MGUyYTY2ZDNkNTljMTI3
MmIzYjI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA0OV90b18wNTYuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9f
MDU2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA0OV90b18wNTYuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA1N190b18wNjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5M2E4YmM3MjQ3Zjk2M2ZjYzgz
ZmZmOWIzYmI0YjMxMzI1MzA2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9fMDY0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190
b18wNjQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGJlYWNkNmE1ZmM1MWFiOThkNTg5YWNjZGU1ZTRiZDJi
MDdjN2UxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA1N190b18wNjQuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNTdfdG9f
MDY0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA2NV90b18wNzItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmODc1ZjJmZGI2OGU0YmIyOTI5
OGMzOTdjYjA2MWM0MmZmMjE2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90
b18wNzIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzY4ZDA2YTY0N2NiMjgxZDk4MjdhOTY3ZTU1NzUxYjVi
MDI4MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA2NV90b18wNzIuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9f
MDcyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDY1X3RvXzA3Mi5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA3M190b18wODAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTcwODdlMDYyZWU2OTNhOWZm
MWI1YzdjYWI4OWI1ZTBkMDEwMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9fMDgwLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190
b18wODAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGE4ZmVkMzRiZDUxNmQyOGM1NWFkNTA4YWJjOTg4M2Rh
NGMxMDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA3M190b18wODAuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNzNfdG9f
MDgwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA4MV90b18wODgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMmY2NTFmNDhkNzFiMzM1YWIw
YmNkZGIzMjZmMGEyNWU4MDlmNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9fMDg4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90
b18wODguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjZjYTU3ZGE5M2NlYzBjOWNlZjg3NTFjNjYwNTRkYmVk
MzViMWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA4MV90b18wODguaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODFfdG9f
MDg4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4MV90b18wODguaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA4OV90b18wOTYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzODI4M2ExMjNlMjIxMjQ2ZTBm
MzEzYjcyYzgzZjAxMWM0M2VmNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9fMDk2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90
b18wOTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWJmYjFiMWIxNzNhZjhkMjY4OWUxNjQwZTY5ZmMwMGUx
ZmUyNDNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA4OV90b18wOTYuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wODlfdG9f
MDk2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA4OV90b18wOTYuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzA5N190b18xMDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YWJiZDQ3ZTc4YjU3YTg5N2Uz
YzdhZmQ3Y2NiNDZkNjhmMGIyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9fMTA0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190
b18xMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWEzNzRhODgyZDAyYjQ0ZjU1ZDU0MmUxMTIwNjYwMjg4
MWMzNzZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzA5N190b18xMDQuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wOTdfdG9f
MTA0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEwNV90b18xMTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNDUzNTlkMjEzNGViOTA1NzY5
NjI3NGZlM2IyNGUyMTIzOGQ0MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90
b18xMTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2FhZWY3ZTUzOGJjNWFiZjkzMjNiMjZiMWNlZmQzZGQ2
YmNlYjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzEwNV90b18xMTIuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9f
MTEyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEwNV90b18xMTIuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzExM190b18xMjAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxNTUxNDMyMWFlZWE0YmU1OTNk
N2EyOTVlNDY4YzRlMjQzZTdiNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190
b18xMjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yjg0Yzg0NWI3MjBjNDA1Njc1ZGZlY2QxOWQwMjVjMTJh
MjViNGVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzExM190b18xMjAuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9f
MTIwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTEzX3RvXzEyMC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEyMV90b18xMjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MDAyODVhMWRiZDI5MTY2MWFk
YjFkMTM5ZTViYmEyMjk3ZjFkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90
b18xMjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGI4ZmVjODNhYmZmNzkxMWMwMDllOGUzOGM2M2Q1OGYx
YjZiODM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzEyMV90b18xMjguaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9f
MTI4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjguaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTIxX3RvXzEyOC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEyOV90b18xMzYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMmQzYmY3MWRjMWNiYzY5ZjBj
NmM1NjZkZTcyZTI3NWY0Y2VkMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90
b18xMzYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzAxYzY5MzVlYTViMGVlNDI2NDYwOWZlNjhmZjFmNDFj
NTk5N2E0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzEyOV90b18xMzYuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9f
MTM2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyOV90b18xMzYuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzEzN190b18xNDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1OWU3NmJjMjUzM2EwN2YxNzdi
OTVjMWMxZDFhYjJhNTM1NWFiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190
b18xNDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTczMjY2OGJhODdlNDEwN2Q5YjBjOTVmMmVjNGY5MjEx
NTIyYjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzEzN190b18xNDQuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9f
MTQ0Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTM3X3RvXzE0NC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE0NV90b18xNTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhNjRhNDg5NGFkYTRhZmZiM2Rl
YzdmNGJkMTM4ZWVjYTBkNGEwMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9fMTUyLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90
b18xNTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2UxMDVjMWI4YzFhNzMzNGU5ZTQ3NjBhZTBkNTllOTFi
MTAzMzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzE0NV90b18xNTIuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNDVfdG9f
MTUyLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE1M190b18xNjAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MTliNDIyMzM0NGRhNjY2NWRm
NzZkZGI5MGNmMGZiMDIwYjBhYjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190
b18xNjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTRlY2ZkODc0MGMyMmVjNDU3ZDkxYTc4OGNiZDdhNTNm
ZDMzYTAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzE1M190b18xNjAuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNTNfdG9f
MTYwLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE1M190b18xNjAuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE2MV90b18xNjgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmNzZkMDJiYWQwMDM5NzNhNmZh
ZTA3N2FlYjdiYjk0OWI4MzliYzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9fMTY4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90
b18xNjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjQ4ZGZlNzg2MGIzMGFlNjQ5ZTBkZWIyMjFjNzFlOWZj
NGQxNWQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzE2MV90b18xNjguaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjFfdG9f
MTY4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE2OV90b18xNzYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMTg0ODg4ODRhMTY2NTVlMDQ0
Yjk1MDIzN2M5N2U1YWI0YWMyMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90
b18xNzYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDAyZDVlNzcxMWMzNjBlYzU5NjkyOGViNmZlMmZmNjMz
ZTg0MGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzE2OV90b18xNzYuaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9f
MTc2Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2OV90b18xNzYuaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxk
XzE3N190b18xNzgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYTY3NWJkNzYyZWE3NjZkZGY3
OTIxZjQ0OTRjM2YyYWNhNWQyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAueS9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFT
UyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190
b18xNzguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzc4NTFlOWQ3ZTM3OTM1MDg5MDQwOWNjNWFhNjc1ZDg4
OGEyZTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGJ1aWxkXzE3N190b18xNzguaHRtbDwvdGl0
bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9f
MTc4Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRt
bD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTc3X3RvXzE3OC5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNz
b3ItdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFjMzBjZTU3ZTZjYjM1MjdhMDZhMTE0MDg0MjRmODE4
YmFmNGM2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3JlbmRlcmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10
ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgorCitUZXN0OiAuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5o
dG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVm
YXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXIt
d2l0aC1zY2lzc29yLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTZiYzE4OGM1MmYzODVlOTkwNWIz
MGRjOTdjYWRkZjE5YWRlYWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0
aC1zY2lzc29yLXRlc3QuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10
ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFw
cGVyIGZvciBjbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWw8
L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1z
Y2lzc29yLXRlc3QuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZm
ZXItd2l0aC1zY2lzc29yLXRlc3QuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9Imlm
cmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVuZGVyaW5nL2NsZWFyLWRlZmF1bHQtZnJhbWVidWZmZXItd2l0aC1zY2lz
c29yLXRlc3QuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVy
aW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXIt
cmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1m
cmFtZWJ1ZmZlci1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDFmM2ZiOWJk
ZDhiZjRlZmY5OTU1OWQzMmY0N2M3MmQ5MmVjNzAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxk
LW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2Nv
bG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1
dGlvbi5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29s
b3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9yZW5kZXJpbmcv
Y29sb3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNv
bHV0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmMGViMWZjNDc5YzY4YjY2NWU0MWVmNTU5OTM3MzU3
NGZkMmIxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZv
cm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2Vk
LWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBjb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFudGlhbGlhc2Vk
LWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29s
b3ItbWFzay1zaG91bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0
aW9uLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9jb2xvci1tYXNrLXNob3VsZC1ub3QtYWZmZWN0LWFu
dGlhbGlhc2VkLWZyYW1lYnVmZmVyLXJlc29sdXRpb24uaHRtbD93ZWJnbFZlcnNpb249MjwvYT4K
KzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1h
ZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sP3dlYmdsVmVyc2lv
bj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9
InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxl
LXJlbmRlcmFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41N2I4NWZiMDRlOTdjOTRmYWYzYjg3ZDc3NDA3YjJkNTRiNDYxZTIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNj
L2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNT
IF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zv
cm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODFlYTI2MjgyZjEw
MjhmMzdkMzZiNjg5M2UxNDIyNTk0OTZlZjRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmlsdGVyYWJs
ZS1yZW5kZXJhYmxlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVz
dHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sPC90aXRsZT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rl
c3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2MvZm9ybWF0LWZpbHRlcmFibGUtcmVuZGVyYWJsZS5odG1sP3dl
YmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxlLXJlbmRlcmFibGUuaHRtbD93
ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlz
Yy9mb3JtYXQtZmlsdGVyYWJsZS1yZW5kZXJhYmxlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVz
L21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjk5MGYyNDYwM2EyNDZlM2FlNWRjOTEwODA3ZjE5MzBmMzZkOWM4
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgotCi1UZXN0OiAuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sP3dlYmdsVmVyc2lvbj0yCi1bIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9t
aXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQzN2YxOTQzMTQ0ZWE5ZTI4YmIzOGMxNDVlZDY4NGQ2
Njk4OTI4Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xW
ZXJzaW9uPTIKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNv
bmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2Ny
ZWVuY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMTA3ZTlmY2Qx
OWJjYWQwOTI3OTAxODIxY2U2MTg5Yjg3NDI3YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyBhdXRv
LWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0
cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVy
IGZvciBvcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWw8L3RpdGxl
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuPC9wPgotVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgotPGRp
diBpZD0iaWZyYW1lIj4KLTxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgotPC9kaXY+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFu
LWNvbmZvcm1hbmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzNWVkN2Rl
OWEwNjllMDA0MmY5OTJlM2IyNWRkN2ExMDA2NzIwZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5
IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJ
VCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIG9yaWdpbi1j
bGVhbi1jb25mb3JtYW5jZS5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxhIGhyZWY9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
b3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Ci08ZGl2IGlk
PSJpZnJhbWUiPgotPGlmcmFtZSBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
Lmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4K
LTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mv
cG5nLWltYWdlLXR5cGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTdmMjE1ZmMwZjIxMDRjODRlMjBlNWNlNWVmMzc0OGZlMzA1YTNkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9wbmctaW1hZ2UtdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWw/
d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdl
LXR5cGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNmQ2M2YyMTA2YThlZGI5
ODA2OWU3Yzc0MzhlYzgzMzIzNzZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAueS9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3BuZy1pbWFnZS10eXBlcy5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBETyBOT1QgRURJVCAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIHBuZy1pbWFnZS10
eXBlcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJl
cG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdl
LXR5cGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWw/
d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21p
c2MvcG5nLWltYWdlLXR5cGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdo
dD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5z
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVkMjFkYTdmZTljM2U1NTM5ZjFhNmY1Nzg4
ODc4MGU2OTM5NDBlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55
L2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJl
bG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3Jl
cXVpcmVkLWV4dGVuc2lvbnMuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0gQWxsIHRlc3Rz
IHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU1NGI3NTUzYTExN2U3YmQyYTJiMzI3ODdlODEzZGYyZjQyODk5MWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZXh0ZW5z
aW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgcmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6
IDxhIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi9leHRlbnNpb25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4v
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMv
cmVxdWlyZWQtZXh0ZW5zaW9ucy5odG1sP3dlYmdsVmVyc2lvbj0yPC9hPgorPGRpdiBpZD0iaWZy
YW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWw/d2ViZ2xWZXJz
aW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBp
ZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1j
cmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIv
Z2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxvb3AtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliNGQxMjJlNzU4NjlkYzFhMTdhMWMxMGMzYTAzNjJlMDgxYzQ2NWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQt
c2hhZGVyLWxvb3AtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sP3dl
YmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxv
b3AtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNs
My9mcmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1OWE3ZmY2MDE0
ODZmMTMyZmU1NDI1OTIzMjQ2YWZiMWMyYzEyN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVyLWxvb3At
Y3Jhc2guaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8g
Tk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBm
cmFnbWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4u
Ly4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFn
bWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvZnJhZ21lbnQtc2hhZGVy
LWxvb3AtY3Jhc2guaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8
aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29wLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTIi
IHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsLzIuMC55L2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNx
dWFyZXMtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VkODhmZjhjOGY3NDdlZGMzMmViNGI0Yzk3YzZiMTEzNzAw
MWE2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1h
bmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2gtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9y
ZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbD93ZWJnbFZlcnNpb249
MgorWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1
YXJlcy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL2ds
c2wzL3JlY2lwcm9jYWwtc3FydC1vZi1zdW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxZTBlMGVjNjE2YzBmOTc1OWNlZWQyMzg0NDgyODhjYzAxNjc5YmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXBy
b2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1vZi1zcXVh
cmVzLWNyYXNoLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL3JlY2lwcm9jYWwtc3FydC1vZi1z
dW0tb2Ytc3F1YXJlcy1jcmFzaC5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9m
LXN1bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNxcnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jh
c2guaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1l
PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQt
aW50ZWdlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5j
ZTIvbWlzYy9ibGVuZC1pbnRlZ2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzFhZTcwNGFh
NjI4YWJiNmFhYTFhMGJmY2VlZWFiYWY5YWEwZDlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0
ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDog
Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvYmxl
bmQtaW50ZWdlci5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvbWlzYy9i
bGVuZC1pbnRlZ2VyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIv
bWlzYy9ibGVuZC1pbnRlZ2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE2YjYyZjVlOGNkNDAwNDU1N2Mx
MmJiNmY0YmMyNmM4ZDY4NTAxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2NvbmZvcm1hbmNlMi9taXNjL2JsZW5kLWludGVnZXIuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBibGVuZC1pbnRlZ2VyLmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRl
c3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9w
PgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRl
Z2VyLmh0bWw/d2ViZ2xWZXJzaW9uPTI8L2E+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNj
L2JsZW5kLWludGVnZXIuaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2Uy
L3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2stZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9i
bGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2stZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNmZTc1NjFhY2RjNmIxMmMyNDM1ZTlmMGYyNTA1ZGExYjFjZjg4ZjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9ybWFzay1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJh
bWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbD93ZWJnbFZlcnNpb249MgorWyBQ
QVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1j
b2xvcm1hc2suaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5k
ZXJpbmcvYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29sb3JtYXNrLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjkzZDlhY2NkNDUwZDQxNmM5N2YxNDI0ZDlhMzMyMzk3OTc3MDE4MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcv
YmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0ZWQtYnktY29sb3JtYXNrLmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2ViZ2wtY29uZm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgYmxpdGZyYW1lYnVmZmVyLXVuYWZmZWN0
ZWQtYnktY29sb3JtYXNrLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVi
dWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0
ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbD93ZWJnbFZlcnNpb249Mjwv
YT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5h
ZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbD93ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVp
Z2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3JlbmRlcmlu
Zy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU0OGM4MTg2MzNmMjg4MmIxNDA2MjFhYzE5Mjk5NDQ3YzI4YThiMjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvcmVuZGVyaW5n
L2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZl
cnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbD93ZWJnbFZlcnNpb249MgorWyBQQVNTIF0g
QWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29u
Zm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJh
dy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI2MjEy
MDBjNjUzZTM3OTI2OTNjMDRlNjA4ZTQ4MDc3NjMyODFmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvZHJhdy1idWZmZXJz
LXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2ViZ2wtY29u
Zm9ybWFuY2UtdGVzdHMuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNl
IFRlc3QgV3JhcHBlciBmb3IgZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1s
b2NhdGlvbnMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1
dC1sb2NhdGlvbnMuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8
aWZyYW1lIHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UyL3JlbmRlcmluZy9kcmF3LWJ1ZmZlcnMtc3BhcnNlLW91dHB1dC1sb2NhdGlvbnMuaHRtbD93
ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggY2FmM2E1MDQ4NzIyYmU0NzU3ZThlZDE4NTc0NWU5YTUxZGVkYzk4MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDQgKzAsMCBAQAotVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCi0KLVRlc3Q6IC4uLy4uLy4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29y
aWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249
MgotWyBQQVNTIF0gQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLW9mZnNjcmVlbmNh
bnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjIxNGNhOTQwYzIwMjg3
NGU4MTAxMDQ1NDA2MzQ3MjkwNzRhNTJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi90ZXh0
dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2Vu
ZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNlLXRlc3RzLiBE
TyBOT1QgRURJVCAtLT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9y
IG9yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbDwvdGl0bGU+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48
L3A+Ci1UZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zm
c2NyZWVuY2FudmFzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1j
b25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxkaXYg
aWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2Mvb3JpZ2luLWNsZWFuLWNvbmZvcm1h
bmNlLW9mZnNjcmVlbmNhbnZhcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWln
aHQ9IjYwMCI+PC9pZnJhbWU+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ5NDkxYjgxZDk0NWM4ZGQxMWM0NGM0Yjdm
NTBhZjg1YTBkZmYxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlz
YW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KLQotVGVzdDogLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0bWw/d2ViZ2xWZXJz
aW9uPTIKLVsgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyM2MwNWVlOTc4ZDliMDdiNTJhOGI2
ZmJhZTE5MDMzMTQzZTBlNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211
bHRpc2FtcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08IS0tIFRoaXMg
ZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25m
b3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2Ug
VGVzdCBXcmFwcGVyIGZvciBtdWx0aXNhbXBsZS5odG1sPC90aXRsZT4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KLVRlc3Q6IDxh
IGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rp
b25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1w
bGUuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KLTxkaXYgaWQ9ImlmcmFtZSI+Ci08aWZyYW1lIHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFs
L2dsZXMzL211bHRpc2FtcGxlLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdpZHRoPSI4MDAiIGhlaWdo
dD0iNjAwIj48L2lmcmFtZT4KLTwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVu
Y3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVm
YXVsdF9mYm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1OTIyZDY5YTE0ZTRjYzlkZWI1ZjQx
MzViNTViODcxOGJhNTM4MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlz
dGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6
IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25h
bC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBB
U1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
eS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8uaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9k
ZWZhdWx0X2Ziby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMmU2N2JiMDExZjI1YmRhMTg5NGU0YjhiMzBj
MGUxN2MzM2QwMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9mYm8uaHRtbApAQCAtMCww
ICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBkZWZhdWx0X2Ziby5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZh
dWx0X2Ziby5odG1sP3dlYmdsVmVyc2lvbj0yIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZGVmYXVsdF9m
Ym8uaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlv
bmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWw/d2ViZ2xWZXJzaW9uPTIiIHdp
ZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVz
My9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODQw
MjE0Y2Y2ZjJhM2MyNmJmYzJjMGM1YTgzZThkZmZhMTdhNDJlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxl
L2Zib180X3NhbXBsZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0
bWw/d2ViZ2xWZXJzaW9uPTIKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fNF9zYW1wbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZm
NWZjNzVjYWM0ODcxNDUyOTE1M2M3ZjI4N2MxYzAwZjNhY2M0MTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1w
bGUvZmJvXzRfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGJ5IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmdsLWNvbmZvcm1hbmNl
LXRlc3RzLiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdy
YXBwZXIgZm9yIGZib180X3NhbXBsZXMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8
YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lv
bj0yIj4uLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzRfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0y
PC9hPgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUv
ZmJvXzRfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYw
MCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9u
YWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhf
c2FtcGxlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJkNTQzNzRkN2UyYTYzZTEwZDY5YzFl
NDBmMGM4ZGE3M2FjYjI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC55L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fOF9zYW1wbGVzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9u
YWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yCitb
IFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvXzhfc2FtcGxlcy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlL2Zib184X3NhbXBsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTYwZDQ0ZTJlZjI2YjBlZmM2ZTkz
YmQxNTkzMTBjOTk1NWIzMjVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Mi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQg
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBmYm9fOF9zYW1w
bGVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRp
c2FtcGxlL2Zib184X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MiI+Li4vLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2Ft
cGxlL2Zib184X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFt
ZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMuaHRtbD93
ZWJnbFZlcnNpb249MiIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxl
L2Zib19tYXhfc2FtcGxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9k
ZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MDMyY2Y1NWU5NDU5Yzg2MzgzYjc5ZWJjOGVkNmZhYjE5NTUxYTdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLnkvZGVxcC9mdW5jdGlv
bmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRp
c2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1sP3dlYmdsVmVyc2lvbj0yCitbIFBBU1MgXSBBbGwg
dGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1
bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21heF9zYW1wbGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAueS9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUvZmJvX21h
eF9zYW1wbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ4NjVjZGE5MGY2ZWI3ZTc1M2Q0ZWNmMTY4MjBk
ODc1MGM2ODRjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC55L2Rl
cXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbApAQCAt
MCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0cy4gRE8gTk9UIEVESVQgLS0+Cis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBmYm9fbWF4X3NhbXBsZXMu
aHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13
ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1w
bGUvZmJvX21heF9zYW1wbGVzLmh0bWw/d2ViZ2xWZXJzaW9uPTIiPi4uLy4uLy4uLy4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBs
ZS9mYm9fbWF4X3NhbXBsZXMuaHRtbD93ZWJnbFZlcnNpb249MjwvYT4KKzxkaXYgaWQ9ImlmcmFt
ZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib19tYXhfc2FtcGxlcy5odG1s
P3dlYmdsVmVyc2lvbj0yIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1tZW1vcnktdGVzdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9kcmF3LXdlYmdsLXRvLWNvbnRleHQyZC1t
ZW1vcnktdGVzdC1leHBlY3RlZC50eHQKaW5kZXggY2I3NTkzY2VjNTdjYTE5NGIwZTM3ZDY5N2Ew
NzIwOTczY2FlNzljOC4uYzU4ODliMTI1NDY3N2QzYjYyZTQwZTc2YjU5NWIwOWZkYjllYjVlNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvZHJhdy13ZWJnbC10by1jb250ZXh0MmQtbWVt
b3J5LXRlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2RyYXctd2ViZ2wt
dG8tY29udGV4dDJkLW1lbW9yeS10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDggQEAgVGhp
cyB0ZXN0IGNoZWNraW5nIHRoYXQgZHJhd2luZyBXZWJHTCBjYW52YXMgdG8gQ29udGV4dDJEIGNh
bnZhcyB3aXRoIGRyYXdJbWFnZQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKK1RFU1Qg
Q09NUExFVEU6IDI3IFBBU1MsIDAgRkFJTAorCiBQQVNTIGRyYXdJbWFnZTogU2hvdWxkIGJlIFs2
NCwgMTI4LCAxOTIsIDI1NV0KIFBBU1MgZHJhd0ltYWdlOiBTaG91bGQgYmUgWzY0LCAxMjgsIDE5
MiwgMjU1XQogUEFTUyBkcmF3SW1hZ2U6IFNob3VsZCBiZSBbNjQsIDEyOCwgMTkyLCAyNTVdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvcGVuZGluZ193ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVhdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvcGVuZGluZ193ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVhdGVkLmh0
bWwKaW5kZXggNTJjMTY3NmZkZDMxOGU5ZjQwODIxZTc4NzBjNDNhNTlhNjYxNWQ1OS4uOTEwYWZi
YTg2ODlkMTYyZTU5OGMxYmNlMDU0NzE5ODYyMjc0OTExNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3BlbmRpbmdfd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90
ZXh0dXJlcy9taXNjL3RleC1pbWFnZS12aWRlby1yZXBlYXRlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy9wZW5kaW5nX3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2UtdmlkZW8tcmVwZWF0ZWQuaHRtbApAQCAtMTYsNyArMTYs
NyBAQCB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiB2YXIgZ2wgPSBudWxsOwogdmFyIHRleHR1
cmVMb2MgPSBudWxsOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotdmFyIGJsdWUg
PSBbMCwgMCwgMjQ4XTsKK3ZhciBibHVlID0gWzAsIDAsIDI1NV07CiB2YXIgeWVsbG93ID0gWzI1
NSwgMjU1LCAwXTsKIHZhciBibGFjayA9IFswLCAwLCAwXTsKIGluaXRUZXN0aW5nSGFybmVzcygp
OwpAQCAtNTAsOSArNTAsOSBAQCBmdW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVySGFzVmlkZW8yKGds
KQogICAgIGNvbnN0IHJpZ2h0Q29sb3IgPSB5ZWxsb3c7CiAgICAgY29uc3QgdG9sZXJhbmNlID0g
NTsKICAgICBkZWJ1ZygiQ2hlY2tpbmcgbWlkIGxlZnQgYm9yZGVyIik7Ci0gICAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgNCwgMjAsIDIsIDIsIGxlZnRDb2xvciwgInNob3VsZEJlICIgKyBsZWZ0
Q29sb3IsIHRvbGVyYW5jZSk7CisgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNCwgMTcsIDIs
IDIsIGxlZnRDb2xvciwgInNob3VsZEJlICIgKyBsZWZ0Q29sb3IsIHRvbGVyYW5jZSk7CiAgICAg
ZGVidWcoIkNoZWNraW5nIG1pZCByaWdodCBib3JkZXIiKTsKLSAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCBnbC5jYW52YXMud2lkdGggLSA0LCBnbC5jYW52YXMuaGVpZ2h0IC0gMjAsIDIsIDIs
IHJpZ2h0Q29sb3IsICJzaG91bGRCZSAiICsgcmlnaHRDb2xvciwgdG9sZXJhbmNlKTsKKyAgICB3
dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA2MCwgMjgsIDIsIDIsIHJpZ2h0Q29sb3IsICJzaG91bGRC
ZSAiICsgcmlnaHRDb2xvciwgdG9sZXJhbmNlKTsKIH0KIAogZnVuY3Rpb24gdGVzdFR3b1RleHR1
cmVzQnVnMSh2aWRlbzEsIHZpZGVvMikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0
cmlicG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwKaW5k
ZXggNTJkNDExNzMyOWQ2NjJhNTNmYmM3YTJlZjIxYjdkYTkwZjBlZjc1Yy4uMTI3NmNlYzdjOWNj
OWM4Yzg4NTExZjdkOTYzZTcxOTVhNjQxYWIyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0
ZXhhdHRyaWJwb2ludGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVy
Lmh0bWwKQEAgLTE1Miw3ICsxNTIsNyBAQCBpZiAoIWdsKSB7CiAgICAgICAgICAgICAgIGdsLCBz
aXplIDwgaW5mby5taW5TaXplID8gZ2wuSU5WQUxJRF9PUEVSQVRJT04gOiBnbC5OT19FUlJPUiwg
ImF0IHN0cmlkZSBsaW1pdCIsCiAgICAgICAgICAgICAgIHNpemUsIGluZm8udHlwZSwgZmFsc2Us
IHN0cmlkZSwgb2Zmc2V0KTsKICAgICAgICAgICBjaGVja1ZlcnRleEF0dHJpYlBvaW50ZXIoCi0g
ICAgICAgICAgICAgIGdsLCBzaXplIDwgaW5mby5taW5TaXplID8gZ2wuSU5WQUxJRF9PUEVSQVRJ
T04gOiBnbC5JTlZBTElEX1ZBTFVFLCAib3ZlciBzdHJpZGUgbGltaXQiLAorICAgICAgICAgICAg
ICBnbCwgc2l6ZSA8IGluZm8ubWluU2l6ZSA/IFtnbC5JTlZBTElEX09QRVJBVElPTiwgZ2wuSU5W
QUxJRF9WQUxVRV0gOiBnbC5JTlZBTElEX1ZBTFVFLCAib3ZlciBzdHJpZGUgbGltaXQiLAogICAg
ICAgICAgICAgICBzaXplLCBpbmZvLnR5cGUsIGZhbHNlLAogICAgICAgICAgICAgICBzdHJpZGUg
KyBpbmZvLmJ5dGVzUGVyQ29tcG9uZW50LCBvZmZzZXQpOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9jYW52YXMvdG8tZGF0YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0
YS11cmwtYWZ0ZXItY29tcG9zaXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY4YjljNzE1NDcxZmE5OTE3
YjViOTUxMTdjMGQwYmVjMDZmNzJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRh
LXVybC1hZnRlci1jb21wb3NpdGUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IS0tCitDb3B5cmln
aHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgdG9EYXRhVVJMIGFm
dGVyIGNvbXBvc2l0ZSB0ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmds
LXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyB3aWR0
aD0iMjAiIGhlaWdodD0iMjAiIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgd2lkdGg6
IDEyOHB4OyBoZWlnaHQ6IDEyOHB4IiBpZD0iYzNkIj48L2NhbnZhcz4KKzxjYW52YXMgd2lkdGg9
IjIwIiBoZWlnaHQ9IjIwIiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHdpZHRoOiAx
MjhweDsgaGVpZ2h0OiAxMjhweCIgaWQ9ImMyZCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBw
bGljYXRpb24vamF2YXNjcmlwdCI+Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2xldCBn
bDsKK2xldCBjdHg7CisKK2Z1bmN0aW9uIG1haW4oKSB7CisgIGRlc2NyaXB0aW9uKCk7CisgIGNv
bnN0IGMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjMmQiKTsKKyAgY3R4ID0gYzJkLmdl
dENvbnRleHQoIjJkIik7CisgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiYzNkIiwgeyBwcmVz
ZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUgfSk7CisKKyAgLy8gQ2xlYXIgdG8gZ3JlZW4KKyAgZ2wu
Y2xlYXJDb2xvcigwLjAsIDEuMCwgMC4wLCAxLjApOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZG
RVJfQklUKTsKKworICB3dHUud2FpdEZvckNvbXBvc2l0ZSgoKSA9PiB7CisgICAgLy8gUGVyZm9y
bXMgZ2wuY2FudmFzLnRvRGF0YVVSTCgpIGludGVybmFsbHkKKyAgICBsZXQgaW1nID0gd3R1Lm1h
a2VJbWFnZUZyb21DYW52YXMoZ2wuY2FudmFzLCBmdW5jdGlvbigpIHsKKyAgICAgIGN0eC5kcmF3
SW1hZ2UoaW1nLCAwLCAwKTsKKyAgICAgIHd0dS5jaGVja0NhbnZhcyhjdHgsIFswLCAyNTUsIDBd
LCAidG9EYXRhVVJMIGxvYWRlZCBpbnRvIGltYWdlLCBkcmF3biBpbnRvIDJEIGNvbnRleHQsIHNo
b3VsZCBiZSBncmVlbiIsIDUpOworICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pOworICB9KTsK
KworfTsKKworbWFpbigpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWF0dHJp
YnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQvY29udGV4
dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwKaW5kZXggYWM3
OTY5ODhjZTBjYWYyODUyNzVmNmQ4ODJhNDE0NGFlMmM1ZmIyZC4uNDBmNDZhNzQ0YWM1OWMzZmJj
Zjg3ODk3ODFjMTZjNDQzOGQ4ODA1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWF0dHJp
YnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jb250ZXh0L2Nv
bnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sCkBAIC00
Nyw2ICs0Nyw3IEBAIHZhciBmcmFtZWJ1ZmZlcjsKIHZhciBmYkhhc0NvbG9yOwogdmFyIGZiSGFz
RGVwdGg7CiB2YXIgZmJIYXNTdGVuY2lsOwordmFyIGNvbnRleHRWZXJzaW9uID0gd3R1LmdldERl
ZmF1bHQzRENvbnRleHRWZXJzaW9uKCk7CiAKIGZ1bmN0aW9uIGluaXQoKQogewpAQCAtNTUsNiAr
NTYsMjMgQEAgZnVuY3Rpb24gaW5pdCgpCiAgICAgcnVuVGVzdCgpOwogfQogCit2YXIgdmVydGlj
ZXMgPSBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAxLjAsIDEuMCwgMC4wLAorICAgIC0xLjAsIDEu
MCwgMC4wLAorICAgIC0xLjAsIC0xLjAsIDAuMCwKKyAgICAxLjAsIDEuMCwgMC4wLAorICAgIC0x
LjAsIC0xLjAsIDAuMCwKKyAgICAxLjAsIC0xLjAsIDAuMF0pOworCit2YXIgY29sb3JzID0gbmV3
IFVpbnQ4QXJyYXkoWworICAgIDI1NSwgMCwgMCwgMjU1LAorICAgIDI1NSwgMCwgMCwgMjU1LAor
ICAgIDI1NSwgMCwgMCwgMjU1LAorICAgIDI1NSwgMCwgMCwgMjU1LAorICAgIDI1NSwgMCwgMCwg
MjU1LAorICAgIDI1NSwgMCwgMCwgMjU1XSk7CisKKwogZnVuY3Rpb24gZ2V0V2ViR0woY2FudmFz
V2lkdGgsIGNhbnZhc0hlaWdodCwgY29udGV4dEF0dHJpYnMsIGNsZWFyQ29sb3IsIGNsZWFyRGVw
dGgsIGNsZWFyU3RlbmNpbCkKIHsKICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiY2FudmFzIik7CkBAIC02Myw3ICs4MSw3IEBAIGZ1bmN0aW9uIGdldFdlYkdMKGNhbnZh
c1dpZHRoLCBjYW52YXNIZWlnaHQsIGNvbnRleHRBdHRyaWJzLCBjbGVhckNvbG9yLCBjbGVhckRl
CiAgICAgY2FudmFzLndpZHRoID0gY2FudmFzV2lkdGg7CiAgICAgY2FudmFzLmhlaWdodCA9IGNh
bnZhc0hlaWdodDsKIAotICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIGNvbnRl
eHRBdHRyaWJzKTsKKyAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCBjb250ZXh0
QXR0cmlicywgY29udGV4dFZlcnNpb24pOwogICAgIGlmICghZ2wpCiAgICAgICAgIHJldHVybiBu
dWxsOwogCkBAIC0xMDIsMjI3ICsxMjAsMTU4IEBAIGZ1bmN0aW9uIGdldFdlYkdMKGNhbnZhc1dp
ZHRoLCBjYW52YXNIZWlnaHQsIGNvbnRleHRBdHRyaWJzLCBjbGVhckNvbG9yLCBjbGVhckRlCiAg
ICAgICB9CiAgICAgfQogICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVs
bCk7Ci0gICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgYmUg
bm8gZXJyb3JzIik7Ci0KLSAgICByZXR1cm4gZ2w7Ci19CiAKLWZ1bmN0aW9uIGRyYXdBbmRSZWFk
UGl4ZWwoZ2wsIHZlcnRpY2VzLCBjb2xvcnMpCi17CiAgICAgdmFyIGNvbG9yT2Zmc2V0ID0gdmVy
dGljZXMuYnl0ZUxlbmd0aDsKLQogICAgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKICAg
ICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKICAgICBnbC5idWZmZXJEYXRh
KGdsLkFSUkFZX0JVRkZFUiwgY29sb3JPZmZzZXQgKyBjb2xvcnMuYnl0ZUxlbmd0aCwgZ2wuU1RB
VElDX0RSQVcpOwogICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCB2ZXJ0
aWNlcyk7CiAgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvbG9yT2Zmc2V0
LCBjb2xvcnMpOwotCiAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwg
ZmFsc2UsIDAsIDApOwogICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwogICAgIGds
LnZlcnRleEF0dHJpYlBvaW50ZXIoMSwgNCwgZ2wuVU5TSUdORURfQllURSwgdHJ1ZSwgMCwgY29s
b3JPZmZzZXQpOwogICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwogCi0gICAgZ2wu
ZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIHZlcnRpY2VzLmxlbmd0aCAvIDMpOworICAgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAic2hvdWxkIGJlIG5vIGVycm9ycyIp
OworICAgIHJldHVybiBnbDsKIH0KIAotZnVuY3Rpb24gdGVzdERlZmF1bHQoKQorZnVuY3Rpb24g
ZHJhdyhnbCwgdmVydGljZXNDb3VudCkKIHsKLSAgICBkZWJ1ZygiVGVzdGluZyBkZWZhdWx0IGF0
dHJpYnV0ZXM6IHsgc3RlbmNpbDpmYWxzZSB9Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJnbCA9
IGdldFdlYkdMKDEsIDEsIG51bGwsIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIpOwotICAgIHNob3Vs
ZEJlRmFsc2UoImdsLmdldENvbnRleHRBdHRyaWJ1dGVzKCkuc3RlbmNpbCIpOwotICAgIHNob3Vs
ZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCIpOworICAgIHZl
cnRpY2VzQ291bnQgPSB2ZXJ0aWNlc0NvdW50IHx8IHZlcnRpY2VzLmxlbmd0aCAvIDM7CisgICAg
Z2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIHZlcnRpY2VzQ291bnQpOwogfQogCi1mdW5j
dGlvbiB0ZXN0QWxwaGEoYWxwaGEpCitmdW5jdGlvbiBjaGVja0RyYXcoaGFzQWxwaGEsIGhhc1N0
ZW5jaWwsIGhhc0RlcHRoLCBoYXNBbnRpYWxpYXMpCiB7Ci0gICAgZGVidWcoIlRlc3RpbmcgYWxw
aGEgPSAiICsgYWxwaGEpOwotICAgIGlmIChhbHBoYSkgewotICAgICAgICBzaG91bGRCZU5vbk51
bGwoImdsID0gZ2V0V2ViR0woMSwgMSwgeyBhbHBoYTogdHJ1ZSwgZGVwdGg6IGZhbHNlLCBzdGVu
Y2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDAgXSwgMSwgMCkiKTsK
LSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0g
OCIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJH
TCgxLCAxLCB7IGFscGhhOiBmYWxzZSwgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50
aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDAgXSwgMSwgMCkiKTsKLSAgICAgICAgc2hvdWxk
QmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPT0gMCIpOwotICAgIH0KLSAg
ICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgPj0gOCIpOwotICAg
IHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpID49IDgiKTsKLSAg
ICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpID49IDgiKTsKLSAg
ICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIik7Ci0g
ICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIik7
Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gZ2wuZ2V0Q29udGV4dEF0
dHJpYnV0ZXMoKSIpOwotICAgIHNob3VsZEJlVHJ1ZSgiY29udGV4dEF0dHJpYnMuYWxwaGEgPT0g
IiArIGFscGhhKTsKKyAgICBsZXQgcmVkID0gWzI1NSwgMCwgMCwgMjU1IF07CisgICAgbGV0IGJs
YWNrID0gWzAsIDAsIDAsIGhhc0FscGhhID8gMCA6IDI1NSBdOworICAgIGRlYnVnKGBUZXN0aW5n
IHRoYXQgc3RlbmNpbCAkeyBoYXNTdGVuY2lsID8gJ2FmZmVjdHMnOiAnZG9lcyBub3QgYWZmZWN0
J30gdGhlIHJlbmRlcmluZy5gKTsKKyAgICBnbC5zdGVuY2lsRnVuYyhnbC5ORVZFUiwgMSwgMSk7
CisgICAgZ2wuc3RlbmNpbE9wKGdsLktFRVAsIGdsLktFRVAsIGdsLktFRVApOworICAgIGRyYXco
Z2wpOworICAgIGNvcnJlY3RDb2xvciA9IGhhc1N0ZW5jaWwgPyBibGFjayA6IHJlZDsKKyAgICB3
dHUuY2hlY2tDYW52YXMoZ2wsIGNvcnJlY3RDb2xvcikKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9C
VUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxfQlVGRkVSX0JJVCk7
CisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBibGFjayk7CisgICAgZ2wuc3RlbmNpbEZ1bmMoZ2wu
QUxXQVlTLCAxLCAxKTsKIAotICAgIHZhciBjb3JyZWN0Q29sb3IgPSAoY29udGV4dEF0dHJpYnMu
YWxwaGEgPyBbMCwgMCwgMCwgMF0gOiBbMCwgMCwgMCwgMjU1XSk7Ci0gICAgd3R1LmNoZWNrQ2Fu
dmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgY29ycmVjdENvbG9yKTsKKyAgICBkZWJ1ZyhgVGVzdGlu
ZyB0aGF0IGRlcHRoICR7IGhhc0RlcHRoID8gJ2FmZmVjdHMnOiAnZG9lcyBub3QgYWZmZWN0J30g
dGhlIHJlbmRlcmluZy5gKTsKKyAgICBnbC5kZXB0aEZ1bmMoZ2wuTkVWRVIpOworICAgIGRyYXco
Z2wpOworICAgIGNvcnJlY3RDb2xvciA9IGhhc0RlcHRoID8gYmxhY2sgOiByZWQ7CisgICAgd3R1
LmNoZWNrQ2FudmFzKGdsLCBjb3JyZWN0Q29sb3IpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUIHwgZ2wuU1RFTkNJTF9CVUZGRVJfQklUKTsK
KyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNrKTsKKyAgICBnbC5kZXB0aEZ1bmMoZ2wuQUxX
QVlTKTsKIAotICAgIGlmIChmYkhhc0NvbG9yKSB7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLSAgICAgIGdsLmNsZWFyQ29sb3IoMC41LCAw
LjUsIDAuNSwgMC41KTsKLSAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwotICAg
ICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzEyNywgMTI3LCAxMjcsIDEy
N10sIHVuZGVmaW5lZCwgMSk7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIG51bGwpOworICAgIGRlYnVnKGBUZXN0aW5nIHRoYXQgcmVuZGVyaW5nIGlzICR7aGFzQW50
aWFsaWFzID8gJ2FudGlhbGlhc2VkJyA6ICdhbGlhc2VkJ30uYCk7CisgICAgZHJhdyhnbCwgMyk7
CisgICAgbGV0IE4gPSAyOworICAgIGxldCBidWYgPSBuZXcgVWludDhBcnJheShOICogTiAqIDQp
OworICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgTiwgTiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgYnVmKTsKKyAgICByZWRDaGFubmVsc1swXSA9IGJ1Zls0ICogKE4gKyAxKV07IC8vICgxLCAx
KQorICAgIHJlZENoYW5uZWxzWzFdID0gYnVmWzQgKiBOICogKE4gLSAxKV07IC8vIGxlZnQgdG9w
CisgICAgcmVkQ2hhbm5lbHNbMl0gPSBidWZbNCAqIChOIC0gMSldOyAvLyByaWdodCBib3R0b20K
KyAgICBzaG91bGRCZSgicmVkQ2hhbm5lbHNbMV0iLCAiMjU1Iik7CisgICAgc2hvdWxkQmUoInJl
ZENoYW5uZWxzWzJdIiwgIjAiKTsKKyAgICBpZiAoaGFzQW50aWFsaWFzKSB7CisgICAgICAgIHNo
b3VsZE5vdEJlKCJyZWRDaGFubmVsc1swXSIsICIyNTUiKTsKKyAgICAgICAgc2hvdWxkTm90QmUo
InJlZENoYW5uZWxzWzBdIiwgIjAiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZVRy
dWUoInJlZENoYW5uZWxzWzBdID09IDI1NSB8fCByZWRDaGFubmVsc1swXSA9PSAwIik7CiAgICAg
fQorICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklU
IHwgZ2wuU1RFTkNJTF9CVUZGRVJfQklUKTsKKyAgICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsYWNr
KTsKKworICAgIGRlYnVnKCJUZXN0aW5nIHRoYXQgcmVuZGVyaW5nIHdvcmtzLiIpOworICAgIGRy
YXcoZ2wpOworICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgcmVkKTsKKyAgICBnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxfQlVGRkVS
X0JJVCk7CisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBibGFjayk7CiB9CiAKLWZ1bmN0aW9uIHRl
c3REZXB0aChkZXB0aCkKK2Z1bmN0aW9uIHRlc3REZWZhdWx0KCkKIHsKLSAgICBkZWJ1ZygiVGVz
dGluZyBkZXB0aCA9ICIgKyBkZXB0aCk7Ci0gICAgaWYgKGRlcHRoKSB7Ci0gICAgICAgIHNob3Vs
ZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7IHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxp
YXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSIpOwotICAgICAgICBzaG91bGRCZVRy
dWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiIpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7IGRlcHRoOiBm
YWxzZSwgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0s
IDEsIDApIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRI
X0JJVFMpID09IDAiKTsKLSAgICB9Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuUkVEX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihn
bC5HUkVFTl9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuQkxVRV9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuQUxQSEFfQklUUykgPj0gOCIpOworICAgIGRlYnVnKCJUZXN0aW5nIGRlZmF1bHQgYXR0cmli
dXRlczogeyBzdGVuY2lsOmZhbHNlIH0iKTsKKyAgICBzaG91bGRCZU5vbk51bGwoImdsID0gZ2V0
V2ViR0woMSwgMSwgbnVsbCwgWyAwLCAwLCAwLCAwIF0sIDEsIDApIik7CisgICAgc2hvdWxkQmVG
YWxzZSgiZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5zdGVuY2lsIik7CisgICAgc2hvdWxkQmUo
ImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpIiwgIjAiKTsKK30KIAorZnVuY3Rpb24g
dGVzdEF0dHJpYnV0ZXNBZmZlY3RDb250ZXh0KGFscGhhLCBzdGVuY2lsLCBkZXB0aCwgYW50aWFs
aWFzKQoreworICAgIHNob3VsZEJlTm9uTnVsbChgZ2wgPSBnZXRXZWJHTCgyLCAyLCB7IGRlcHRo
OiAke2RlcHRofSwgc3RlbmNpbDogJHtzdGVuY2lsfSwgYW50aWFsaWFzOiAke2FudGlhbGlhc30s
IGFscGhhOiAke2FscGhhfSB9LCBbIDAsIDAsIDAsIDAgXSwgMSwgMClgKTsKICAgICBzaG91bGRC
ZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gZ2wuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSIpOwog
Ci0gICAgZ2wuZGVwdGhGdW5jKGdsLk5FVkVSKTsKLQotICAgIHZhciB2ZXJ0aWNlcyA9IG5ldyBG
bG9hdDMyQXJyYXkoWwotICAgICAgICAgMS4wLCAgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsICAx
LjAsIDAuMCwKLSAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAgICAgMS4wLCAgMS4wLCAw
LjAsCi0gICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAgIDEuMCwgLTEuMCwgMC4wXSk7
Ci0gICAgdmFyIGNvbG9ycyA9IG5ldyBVaW50OEFycmF5KFsKLSAgICAgICAgMjU1LCAwLCAwLCAy
NTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAg
ICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAy
NTUsIDAsIDAsIDI1NV0pOwotCi0gICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNv
bG9ycywgMCwgMCk7Ci0gICAgY29ycmVjdENvbG9yID0gKGNvbnRleHRBdHRyaWJzLmRlcHRoID8g
WzAsIDAsIDAsIDI1NV0gOiBbMjU1LCAwLCAwLCAyNTVdKTsKLSAgICB3dHUuY2hlY2tDYW52YXNS
ZWN0KGdsLCAwLCAwLCAxLCAxLCBjb3JyZWN0Q29sb3IpOwotCi0gICAgaWYgKGZiSGFzRGVwdGgp
IHsKLSAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIp
OwotICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOwotICAgICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycywgMCwgMCk7
Ci0gICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwgMCwgMjU1
XSk7Ci0gICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOworICAg
IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMp
IiwgIjgiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiZ2wuZ2V0UGFyYW1ldGVy
KGdsLkdSRUVOX0JJVFMpIiwgIjgiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgi
Z2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykiLCAiOCIpOworCisgICAgc2hvdWxkQmUoImNv
bnRleHRBdHRyaWJzLmFscGhhIiwgIiIgKyBhbHBoYSk7CisgICAgaWYgKGNvbnRleHRWZXJzaW9u
IDwgMikgeworICAgICAgICBpZiAoIXN0ZW5jaWwpCisgICAgICAgICAgICBzaG91bGRCZUZhbHNl
KCJjb250ZXh0QXR0cmlicy5zdGVuY2lsIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0
ZW5jaWwgPSBjb250ZXh0QXR0cmlicy5zdGVuY2lsOworICAgICAgICBpZiAoIWRlcHRoKQorICAg
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgiY29udGV4dEF0dHJpYnMuZGVwdGgiKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZGVwdGggPSBjb250ZXh0QXR0cmlicy5kZXB0aDsKKyAgICAgICAg
aWYgKCFhbnRpYWxpYXMpCisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb250ZXh0QXR0cmli
cy5hbnRpYWxpYXMiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYW50aWFsaWFzID0gY29u
dGV4dEF0dHJpYnMuYW50aWFsaWFzOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJlKCJj
b250ZXh0QXR0cmlicy5zdGVuY2lsIiwgIiIgKyBzdGVuY2lsKTsKKyAgICAgICAgc2hvdWxkQmUo
ImNvbnRleHRBdHRyaWJzLmRlcHRoIiwgIiIgKyBkZXB0aCk7CisgICAgICAgIHNob3VsZEJlKCJj
b250ZXh0QXR0cmlicy5hbnRpYWxpYXMiLCAiIiArIGFudGlhbGlhcyk7CiAgICAgfQotfQogCi1m
dW5jdGlvbiB0ZXN0U3RlbmNpbEFuZERlcHRoKHN0ZW5jaWwsIGRlcHRoKQotewotICAgIGRlYnVn
KCJUZXN0aW5nIHN0ZW5jaWwgPSAiICsgc3RlbmNpbCArICIsIGRlcHRoID0gIiArIGRlcHRoKTsK
LSAgICB2YXIgY3JlYXRpb25TdHJpbmcgPQotICAgICAgICAiZ2wgPSBnZXRXZWJHTCgxLCAxLCB7
IGRlcHRoOiAiICsgZGVwdGggKyAiLCBzdGVuY2lsOiAiICsgc3RlbmNpbCArICIsIGFudGlhbGlh
czogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIjsKLSAgICBzaG91bGRCZU5vbk51bGwo
Y3JlYXRpb25TdHJpbmcpOwotCi0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wu
UkVEX0JJVFMpID49IDgiKTsKLSAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5H
UkVFTl9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wu
QkxVRV9CSVRTKSA+PSA4Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wu
QUxQSEFfQklUUykgPj0gOCIpOwotICAgIGlmIChkZXB0aCkKLSAgICAgICAgc2hvdWxkQmVUcnVl
KCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPj0gMTYiKTsKKyAgICBpZiAoYWxwaGEp
CisgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wu
QUxQSEFfQklUUykiLCAiOCIpOwogICAgIGVsc2UKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5n
ZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCIpOwotCisgICAgICAgIHNob3VsZEJlKCJn
bC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykiLCAiMCIpOwogICAgIGlmIChzdGVuY2lsKQot
ICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49
IDgiKTsKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoImdsLmdldFBhcmFtZXRl
cihnbC5TVEVOQ0lMX0JJVFMpIiwgIjgiKTsKICAgICBlbHNlCi0gICAgICAgIHNob3VsZEJlVHJ1
ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCIpOwotCi0gICAgc2hvdWxk
QmVOb25OdWxsKCJjb250ZXh0QXR0cmlicyA9IGdsLmdldENvbnRleHRBdHRyaWJ1dGVzKCkiKTsK
LSAgICBpZiAoIWRlcHRoICYmIGNvbnRleHRBdHRyaWJzLmRlcHRoKSB7Ci0gICAgICAgIHRlc3RG
YWlsZWQoIldlYkdMIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIGEgZGVwdGggYnVmZmVyIHdoZW4g
aXQgc2hvdWxkIG5vdCBoYXZlIik7Ci0gICAgfQotICAgIGlmICghY29udGV4dEF0dHJpYnMuZGVw
dGgpCi0gICAgICAgIGRlcHRoID0gZmFsc2U7Ci0gICAgaWYgKCFzdGVuY2lsICYmIGNvbnRleHRB
dHRyaWJzLnN0ZW5jaWwpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiV2ViR0wgaW1wbGVtZW50YXRp
b24gcHJvdmlkZWQgYSBzdGVuY2lsIGJ1ZmZlciB3aGVuIGl0IHNob3VsZCBub3QgaGF2ZSIpOwot
ICAgIH0KLSAgICBpZiAoIWNvbnRleHRBdHRyaWJzLnN0ZW5jaWwpCi0gICAgICAgIHN0ZW5jaWwg
PSBmYWxzZTsKKyAgICAgICAgc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJ
VFMpIiwgIjAiKTsKKyAgICBpZiAoZGVwdGgpCisgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5P
ckVxdWFsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykiLCAiMTYiKTsKKyAgICBlbHNl
CisgICAgICAgIHNob3VsZEJlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykiLCAiMCIp
OwogCi0gICAgZ2wuZGVwdGhGdW5jKGdsLkFMV0FZUyk7CisgICAgdmFyIGNvcnJlY3RDb2xvciA9
IGFscGhhID8gWzAsIDAsIDAsIDBdIDogWzAsIDAsIDAsIDI1NV07CisgICAgd3R1LmNoZWNrQ2Fu
dmFzKGdsLCBjb3JyZWN0Q29sb3IpOwogCi0gICAgZ2wuc3RlbmNpbEZ1bmMoZ2wuTkVWRVIsIDEs
IDEpOwotICAgIGdsLnN0ZW5jaWxPcChnbC5LRUVQLCBnbC5LRUVQLCBnbC5LRUVQKTsKKyAgICBk
ZWJ1ZygiVGVzdGluZyBkZWZhdWx0IGZyYW1lYnVmZmVyLiIpOworICAgIGNoZWNrRHJhdyhhbHBo
YSwgc3RlbmNpbCwgZGVwdGgsIGFudGlhbGlhcyk7CiAKLSAgICB2YXIgdmVydGljZXMgPSBuZXcg
RmxvYXQzMkFycmF5KFsKLSAgICAgICAgIDEuMCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIDEu
MCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsIDEuMCwgMC4w
LAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsIC0xLjAsIDAuMF0pOwot
ICAgIHZhciBjb2xvcnMgPSBuZXcgVWludDhBcnJheShbCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1
LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAg
ICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1
LCAwLCAwLCAyNTVdKTsKLQotICAgIGRyYXdBbmRSZWFkUGl4ZWwoZ2wsIHZlcnRpY2VzLCBjb2xv
cnMsIDAsIDApOwotICAgIGNvcnJlY3RDb2xvciA9IChzdGVuY2lsID8gWzAsIDAsIDAsIDI1NV0g
OiBbMjU1LCAwLCAwLCAyNTVdKTsKLSAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAx
LCAxLCBjb3JyZWN0Q29sb3IpCi0KLSAgICBpZiAoZmJIYXNTdGVuY2lsKSB7Ci0gICAgICBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLSAgICAgIGdsLmNs
ZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAgIGRy
YXdBbmRSZWFkUGl4ZWwoZ2wsIHZlcnRpY2VzLCBjb2xvcnMsIDAsIDApOwotICAgICAgd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzAsIDAsIDAsIDI1NV0pOwotICAgICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKKyAgICBpZiAoZmJIYXNDb2xv
cikgeworICAgICAgICBkZWJ1ZygiVGVzdGluZyBib3VuZCBmcmFtZWJ1ZmZlciBvYmplY3QuIik7
CisgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIp
OworICAgICAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDApOworICAgICAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxfQlVG
RkVSX0JJVCk7CisgICAgICAgIGNoZWNrRHJhdyh0cnVlLCBmYkhhc1N0ZW5jaWwsIGZiSGFzRGVw
dGgsIGZhbHNlKTsKKyAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBu
dWxsKTsKICAgICB9CiB9CiAKLWZ1bmN0aW9uIHRlc3RBbnRpYWxpYXMoYW50aWFsaWFzKQotewot
ICAgIGRlYnVnKCJUZXN0aW5nIGFudGlhbGlhcyA9ICIgKyBhbnRpYWxpYXMpOwotICAgIC8vIEJv
dGggdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgY2FudmFzIGFyZSBOLgotICAgIHZhciBOID0gMjsK
LSAgICBpZiAoYW50aWFsaWFzKQotICAgICAgICBzaG91bGRCZU5vbk51bGwoImdsID0gZ2V0V2Vi
R0woIiArIE4gKyAiLCAiICsgTiArICIsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwg
YWxwaGE6IGZhbHNlLCBhbnRpYWxpYXM6IHRydWUgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIik7
Ci0gICAgZWxzZQotICAgICAgICBzaG91bGRCZU5vbk51bGwoImdsID0gZ2V0V2ViR0woIiArIE4g
KyAiLCAiICsgTiArICIsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYWxwaGE6IGZh
bHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSIpOwotICAgIHNo
b3VsZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSBnbC5nZXRDb250ZXh0QXR0cmlidXRlcygp
Iik7Ci0KLSAgICB2YXIgdmVydGljZXMgPSBuZXcgRmxvYXQzMkFycmF5KFsKLSAgICAgICAgIDEu
MCwgMS4wLCAwLjAsCi0gICAgICAgIC0xLjAsIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4w
LCAwLjBdKTsKLSAgICB2YXIgY29sb3JzID0gbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAyNTUs
IDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwg
MjU1XSk7Ci0gICAgZHJhd0FuZFJlYWRQaXhlbChnbCwgdmVydGljZXMsIGNvbG9ycywgMCwgMCk7
Ci0gICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KE4gKiBOICogNCk7Ci0gICAgZ2wucmVhZFBp
eGVscygwLCAwLCBOLCBOLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIHJl
ZENoYW5uZWxzWzBdID0gYnVmWzQgKiAoTiArIDEpXTsgLy8gKDEsIDEpCi0gICAgcmVkQ2hhbm5l
bHNbMV0gPSBidWZbNCAqIE4gKiAoTiAtIDEpXTsgLy8gbGVmdCB0b3AKLSAgICByZWRDaGFubmVs
c1syXSA9IGJ1Zls0ICogKE4gLSAxKV07IC8vIHJpZ2h0IGJvdHRvbQotICAgIHNob3VsZEJlVHJ1
ZSgicmVkQ2hhbm5lbHNbMV0gPT0gMjU1ICYmIHJlZENoYW5uZWxzWzJdID09IDAiKTsKLSAgICBz
aG91bGRCZSgicmVkQ2hhbm5lbHNbMF0gIT0gMjU1ICYmIHJlZENoYW5uZWxzWzBdICE9IDAiLCAi
Y29udGV4dEF0dHJpYnMuYW50aWFsaWFzIik7Ci19Ci0KIGZ1bmN0aW9uIHJ1blRlc3QoKQogewog
ICAgIHRlc3REZWZhdWx0KCk7Ci0gICAgdGVzdEFscGhhKHRydWUpOwotICAgIHRlc3RBbHBoYShm
YWxzZSk7Ci0gICAgdGVzdERlcHRoKHRydWUpOwotICAgIHRlc3REZXB0aChmYWxzZSk7Ci0gICAg
dGVzdFN0ZW5jaWxBbmREZXB0aCh0cnVlLCBmYWxzZSk7Ci0gICAgdGVzdFN0ZW5jaWxBbmREZXB0
aChmYWxzZSwgZmFsc2UpOwotICAgIHRlc3RTdGVuY2lsQW5kRGVwdGgodHJ1ZSwgdHJ1ZSk7Ci0g
ICAgdGVzdFN0ZW5jaWxBbmREZXB0aChmYWxzZSwgdHJ1ZSk7Ci0gICAgdGVzdEFudGlhbGlhcyh0
cnVlKTsKLSAgICB0ZXN0QW50aWFsaWFzKGZhbHNlKTsKLQorICAgIGxldCBjYXNlcyA9IFtmYWxz
ZSwgdHJ1ZV07CisgICAgZm9yIChsZXQgYWxwaGEgb2YgY2FzZXMpIHsKKyAgICAgICAgZm9yIChs
ZXQgc3RlbmNpbCBvZiBjYXNlcykgeworICAgICAgICAgICAgZm9yIChsZXQgZGVwdGggb2YgY2Fz
ZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBhbnRpYWxpYXMgb2YgY2FzZXMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEF0dHJpYnV0ZXNBZmZlY3RDb250ZXh0KGFscGhhLCBzdGVu
Y2lsLCBkZXB0aCwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CiAgICAgZmluaXNoVGVzdCgpOwogfQotCiA8L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5IG9ubG9hZD0iaW5pdCgpIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NvbnRleHQvbWV0aG9k
cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvY29udGV4dC9tZXRob2RzLmh0bWwKaW5kZXggZTUyNzRmYjk4MDQ1OGFmZDBjNzM1
NThmY2M5MDQxNTliMDM4YmQzYi4uZDFlNDdmMzJhM2IwNWMyMGQ0OWQ2ZTBkNjk2MjgyYWIxYTRi
YWJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9tZXRob2RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY29udGV4dC9tZXRo
b2RzLmh0bWwKQEAgLTExLDYgKzExLDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CiA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CkBAIC0yMCw3
ICsyMSw3IEBAIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogInVzZSBzdHJpY3QiOwog
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIFdlYkdMIGNvbnRleHQgaGFz
IGFsbCB0aGUgbWV0aG9kcyBpbiB0aGUgc3BlY2lmaWNhdGlvbi4iKTsKIAotdmFyIG1ldGhvZHMg
PSBbCitjb25zdCBtZXRob2RzID0gWwogICAiZ2V0Q29udGV4dEF0dHJpYnV0ZXMiLAogICAiYWN0
aXZlVGV4dHVyZSIsCiAgICJhdHRhY2hTaGFkZXIiLApAQCAtMTU5LDU1ICsxNjAsMTQgQEAgdmFy
IG1ldGhvZHMgPSBbCiAgICJ2aWV3cG9ydCIKIF07CiAKLS8vIFByb3BlcnRpZXMgdG8gYmUgaWdu
b3JlZCBiZWNhdXNlIHRoZXkgd2VyZSBhZGRlZCBpbiB2ZXJzaW9ucyBvZiB0aGUKLS8vIHNwZWMg
dGhhdCBhcmUgYmFja3dhcmQtY29tcGF0aWJsZSB3aXRoIHRoaXMgdmVyc2lvbgotdmFyIGlnbm9y
ZWRNZXRob2RzID0gWwotICAvLyBUaGVyZSBpcyBubyBvZmZpY2lhbCBzcGVjIGZvciB0aGUgY29t
bWl0IEFQSSB5ZXQsIHRoZSBwcm9wb3NhbCBsaW5rIGlzOgotICAvLyBodHRwczovL3dpa2kud2hh
dHdnLm9yZy93aWtpL09mZnNjcmVlbkNhbnZhcwotICAiY29tbWl0IgotXTsKLQotZnVuY3Rpb24g
YXNzZXJ0RnVuY3Rpb24odiwgZikgewotICB0cnkgewotICAgIGlmICh0eXBlb2YgdltmXSAhPSAi
ZnVuY3Rpb24iKSB7Ci0gICAgICB0ZXN0RmFpbGVkKCJQcm9wZXJ0eSBlaXRoZXIgZG9lcyBub3Qg
ZXhpc3Qgb3IgaXMgbm90IGEgZnVuY3Rpb246ICIgKyBmKTsKLSAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9IGNhdGNoKGUpIHsK
LSAgICB0ZXN0RmFpbGVkKCJUcnlpbmcgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eSAnIiArIGYgKyAi
JyB0aHJldyBhbiBlcnJvcjogIitlLnRvU3RyaW5nKCkpOwotICB9Ci19Ci0KIGRlYnVnKCIiKTsK
IGRlYnVnKCJDYW52YXMuZ2V0Q29udGV4dCIpOwogCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Ci12YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFyIGds
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotdmFyIHBhc3NlZCA9IHRydWU7Ci1mb3Ig
KHZhciBpPTA7IGk8bWV0aG9kcy5sZW5ndGg7IGkrKykgewotICB2YXIgciA9IGFzc2VydEZ1bmN0
aW9uKGdsLCBtZXRob2RzW2ldKTsKLSAgcGFzc2VkID0gcGFzc2VkICYmIHI7Ci19Ci1pZiAocGFz
c2VkKSB7Ci0gIHRlc3RQYXNzZWQoIkFsbCBXZWJHTCBtZXRob2RzIGZvdW5kLiIpOwotfQotdmFy
IGV4dGVuZGVkID0gZmFsc2U7Ci1mb3IgKHZhciBpIGluIGdsKSB7Ci0gIGlmICh0eXBlb2YgZ2xb
aV0gPT0gImZ1bmN0aW9uIiAmJiBtZXRob2RzLmluZGV4T2YoaSkgPT0gLTEgJiYgaWdub3JlZE1l
dGhvZHMuaW5kZXhPZihpKSA9PSAtMSkgewotICAgIGlmICghZXh0ZW5kZWQpIHsKLSAgICAgIGV4
dGVuZGVkID0gdHJ1ZTsKLSAgICAgIHRlc3RGYWlsZWQoIkFsc28gZm91bmQgdGhlIGZvbGxvd2lu
ZyBleHRyYSBtZXRob2RzOiIpOwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKGkpOwotICB9Ci19Citj
b25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjYW52YXMiKTsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52
YXMpOwogCi1pZiAoIWV4dGVuZGVkKSB7Ci0gIHRlc3RQYXNzZWQoIk5vIGV4dHJhIG1ldGhvZHMg
Zm91bmQgb24gV2ViR0wgY29udGV4dC4iKTsKLX0KK3Rlc3RDb250ZXh0TWV0aG9kcyhnbCwgbWV0
aG9kcyk7CiAKIGRlYnVnKCIiKTsKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtdGV4dHVyZS1jb21wcmVzc2lvbi1icHRjLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9l
eHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLWJwdGMuaHRtbAppbmRleCAxZmVkOWQ5
ZmQ3MzVhZmU0OTdlNjJjZDk1YWQ0NGM1N2E1OGRmY2MzLi4wYmNlNzM3NmE1NTZkZGJiNmUwNTM4
YWM0NmEwZmYyYjc5OGM1NmFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNv
bXByZXNzaW9uLWJwdGMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNz
aW9uLWJwdGMuaHRtbApAQCAtNjAsNyArNjAsNyBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9u
KCkgewogICAvLyAqIDxoZWlnaHQ+IGlzIG5vdCBhIG11bHRpcGxlIG9mIGZvdXIsIGFuZCA8aGVp
Z2h0PiBwbHVzIDx5b2Zmc2V0PiBpcwogICAvLyAgICAgICAgICAgbm90IGVxdWFsIHRvIFRFWFRV
UkVfSEVJR0hUOyBvcgogICAvLyAqIDx4b2Zmc2V0PiBvciA8eW9mZnNldD4gaXMgbm90IGEgbXVs
dGlwbGUgb2YgZm91ci4KLSAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIHZhbGlk
Rm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgIGN0dS50
ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRC
eXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCiAgICAgMTYsIDE2LCBbCiAgICAgICB7IHhv
ZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImhlaWdodCBpcyBub3QgYSBt
dWx0aXBsZSBvZiA0IiB9LApAQCAtNzcsNyArNzcsMTcgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVu
c2lvbigpIHsKICAgLy8gVGVzdCBUZXhJbWFnZSB2YWxpZGF0aW9uIG9uIGxldmVsIGRpbWVuc2lv
bnMgY29tYmluYXRpb25zLgogICAvLyBXaGVuIGxldmVsIGVxdWFscyAwLCB3aWR0aCBhbmQgaGVp
Z2h0IG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0LgogICAvLyBXaGVuIGxldmVsIGlzIGxhcmdlciB0
aGFuIDAsIHRoaXMgY29uc3RyYWludCBkb2Vzbid0IGFwcGx5LgotICBjdHUudGVzdFRleEltYWdl
TGV2ZWxEaW1lbnNpb25zKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0
QmxvY2tEaW1lbnNpb25zLAorCisgIGxldCBucG90RXhwZWN0YXRpb24sIG5wb3RNZXNzYWdlOwor
ICBpZiAoY29udGV4dFZlcnNpb24gPj0gMikgeworICAgIG5wb3RFeHBlY3RhdGlvbiA9IGdsLk5P
X0VSUk9SOworICAgIG5wb3RNZXNzYWdlID0gInZhbGlkIjsKKyAgfSBlbHNlIHsKKyAgICBucG90
RXhwZWN0YXRpb24gPSBnbC5JTlZBTElEX1ZBTFVFOworICAgIG5wb3RNZXNzYWdlID0gImludmFs
aWQiOworICB9CisKKyAgY3R1LnRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0LCB2
YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAogICAg
IFsKICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImxldmVsIGlzIDAsIGhlaWdo
dCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LApAQCAtODcsMTAgKzk3LDE2IEBAIGZ1bmN0aW9u
IHJ1blRlc3RFeHRlbnNpb24oKSB7CiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09Q
RVJBVElPTiwgbWVzc2FnZTogImxldmVsIGlzIDAsIHdpZHRoIGlzIG5vdCBhIG11bHRpcGxlIG9m
IDQiIH0sCiAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0LAogICAgICAgICBl
eHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICAgIHsg
bGV2ZWw6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEsCisgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5J
TlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgMngyIGlzIGludmFs
aWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAyLAorICAgICAgICBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2Ug
bWlwIDJ4NCBpcyBpbnZhbGlkIiB9LAorICAgICAgeyBsZXZlbDogMSwgd2lkdGg6IDIsIGhlaWdo
dDogMSwKKyAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdl
OiAiaW1wbGllZCBiYXNlIG1pcCA0eDIgaXMgaW52YWxpZCIgfSwKICAgICAgIHsgbGV2ZWw6IDEs
IHdpZHRoOiAyLCBoZWlnaHQ6IDIsCi0gICAgICAgIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwg
bWVzc2FnZTogImxldmVsID4gMCwgaXMgdmFsaWQiIH0sCi0gICAgICB7IGxldmVsOiAyLCB3aWR0
aDogMSwgaGVpZ2h0OiAxLAotICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3Nh
Z2U6ICJsZXZlbCA+IDAsIGlzIHZhbGlkIiB9LAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9f
RVJST1IsIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4NCBpcyB2YWxpZCIgfSwKKyAgICAg
IHsgbGV2ZWw6IDIsIHdpZHRoOiAxLCBoZWlnaHQ6IDMsCisgICAgICAgIGV4cGVjdGF0aW9uOiBu
cG90RXhwZWN0YXRpb24sIG1lc3NhZ2U6ICJpbXBsaWVkIGJhc2UgbWlwIDR4MTIgaXMgIiArIG5w
b3RNZXNzYWdlIH0sCiAgIF0pOwogCiAgIC8vIFRlc3QgdGhhdCBCUFRDIGVudW1zIGFyZSBub3Qg
YWNjZXB0ZWQgYnkgdGV4SW1hZ2UyRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtdGV4dHVy
ZS1jb21wcmVzc2lvbi1yZ3RjLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNz
aW9uLXJndGMuaHRtbAppbmRleCBjMmEyZDQxNjkwODc1NTI2OTc0ZjBjZWRmMTZlY2NhZmRmMmUw
YmQzLi43MGRjZjliYTdiN2NiZjM3NmYzNzBjY2FiMGI4MGZkYzM0NmFkNGZjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRl
bnNpb25zL2V4dC10ZXh0dXJlLWNvbXByZXNzaW9uLXJndGMuaHRtbApAQCAtNjUsNyArNjUsNyBA
QCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAvLyAqIDxoZWlnaHQ+IGlzIG5vdCBh
IG11bHRpcGxlIG9mIGZvdXIsIGFuZCA8aGVpZ2h0PiBwbHVzIDx5b2Zmc2V0PiBpcwogICAvLyAg
ICAgICAgICAgbm90IGVxdWFsIHRvIFRFWFRVUkVfSEVJR0hUOyBvcgogICAvLyAqIDx4b2Zmc2V0
PiBvciA8eW9mZnNldD4gaXMgbm90IGEgbXVsdGlwbGUgb2YgZm91ci4KLSAgY3R1LnRlc3RUZXhT
dWJJbWFnZURpbWVuc2lvbnMoZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBn
ZXRCbG9ja0RpbWVuc2lvbnMsCisgIGN0dS50ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zKGdsLCBl
eHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMs
CiAgICAgMTYsIDE2LCBbCiAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0
LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwg
bWVzc2FnZTogImhlaWdodCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LApAQCAtODIsNyArODIs
MTcgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgLy8gVGVzdCBUZXhJbWFnZSB2
YWxpZGF0aW9uIG9uIGxldmVsIGRpbWVuc2lvbnMgY29tYmluYXRpb25zLgogICAvLyBXaGVuIGxl
dmVsIGVxdWFscyAwLCB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Lgog
ICAvLyBXaGVuIGxldmVsIGlzIGxhcmdlciB0aGFuIDAsIHRoaXMgY29uc3RyYWludCBkb2Vzbid0
IGFwcGx5LgotICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCB2YWxpZEZvcm1h
dHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAorCisgIGxldCBucG90
RXhwZWN0YXRpb24sIG5wb3RNZXNzYWdlOworICBpZiAoY29udGV4dFZlcnNpb24gPj0gMikgewor
ICAgIG5wb3RFeHBlY3RhdGlvbiA9IGdsLk5PX0VSUk9SOworICAgIG5wb3RNZXNzYWdlID0gInZh
bGlkIjsKKyAgfSBlbHNlIHsKKyAgICBucG90RXhwZWN0YXRpb24gPSBnbC5JTlZBTElEX1ZBTFVF
OworICAgIG5wb3RNZXNzYWdlID0gImludmFsaWQiOworICB9CisKKyAgY3R1LnRlc3RUZXhJbWFn
ZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0
aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAogICAgIFsKICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiA0
LCBoZWlnaHQ6IDMsCiAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwg
bWVzc2FnZTogImxldmVsIGlzIDAsIGhlaWdodCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LApA
QCAtOTIsMTAgKzEwMiwxNiBAQCBmdW5jdGlvbiBydW5UZXN0RXh0ZW5zaW9uKCkgewogICAgICAg
ICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJsZXZlbCBpcyAw
LCB3aWR0aCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAogICAgICAgeyBsZXZlbDogMCwgd2lk
dGg6IDQsIGhlaWdodDogNCwKICAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNz
YWdlOiAiaXMgdmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAx
LAorICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJp
bXBsaWVkIGJhc2UgbWlwIDJ4MiBpcyBpbnZhbGlkIiB9LAorICAgICAgeyBsZXZlbDogMSwgd2lk
dGg6IDEsIGhlaWdodDogMiwKKyAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFU
SU9OLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNlIG1pcCAyeDQgaXMgaW52YWxpZCIgfSwKKyAgICAg
IHsgbGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDEsCisgICAgICAgIGV4cGVjdGF0aW9uOiBn
bC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogImltcGxpZWQgYmFzZSBtaXAgNHgyIGlzIGlu
dmFsaWQiIH0sCiAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogMiwgaGVpZ2h0OiAyLAotICAgICAg
ICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICJsZXZlbCA+IDAsIGlzIHZhbGlk
IiB9LAotICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdodDogMSwKLSAgICAgICAgZXhw
ZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAibGV2ZWwgPiAwLCBpcyB2YWxpZCIgfSwK
KyAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiaW1wbGllZCBiYXNl
IG1pcCA0eDQgaXMgdmFsaWQiIH0sCisgICAgICB7IGxldmVsOiAyLCB3aWR0aDogMSwgaGVpZ2h0
OiAzLAorICAgICAgICBleHBlY3RhdGlvbjogbnBvdEV4cGVjdGF0aW9uLCBtZXNzYWdlOiAiaW1w
bGllZCBiYXNlIG1pcCA0eDEyIGlzICIgKyBucG90TWVzc2FnZSB9LAogICBdKTsKIAogICAvLyBU
ZXN0IHRoYXQgUkdUQyBlbnVtcyBhcmUgbm90IGFjY2VwdGVkIGJ5IHRleEltYWdlMkQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL2V4dGVuc2lvbnMvczN0Yy1hbmQtcmd0Yy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3RjLWFu
ZC1yZ3RjLmh0bWwKaW5kZXggYWRkZGU1NGI1ZmE2MGJjMjgzNjRmZjQ4NzMyMWU2Yzk0YWRiZTBh
MS4uM2I3MjVmZmUyMjk3MTBkYjg2OGM4NGFlOTA3Y2FhYmE3OTVlZmY1ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
ZXh0ZW5zaW9ucy9zM3RjLWFuZC1yZ3RjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9zM3RjLWFuZC1y
Z3RjLmh0bWwKQEAgLTM5LDYgKzM5LDExIEBAIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyCiAKIGRl
YnVnKCIiKTsKIAorLy8gQWNjZXB0YWJsZSBpbnRlcnBvbGF0aW9uIGVycm9yIGRlcGVuZHMgb24g
ZW5kcG9pbnRzOgorLy8gMS4wIC8gMjU1LjAgKyAwLjAzICogbWF4KGFicyhlbmRwb2ludDAgLSBl
bmRwb2ludDEpLCBhYnMoZW5kcG9pbnQwX3AgLSBlbmRwb2ludDFfcCkpCisvLyBGb3Igc2ltcGxp
Y2l0eSwgYXNzdW1lIHRoZSB3b3JzdCBjYXNlIChlMCBpcyAwLjAsIGUxIGlzIDEuMCkuIEFmdGVy
IGNvbnZlcnNpb24gdG8gdW5vcm04LCBpdCBpcyA5LgorY29uc3QgREVGQVVMVF9DT0xPUl9FUlJP
UiA9IDk7CisKIC8qCiBCQzEgKERYVDEpIGJsb2NrCiBlMCA9IFsgIDAsIDI1NSwgMF0KQEAgLTI2
Nyw2ICsyNzIsODcgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBpZiAoY29u
dGV4dFZlcnNpb24gPj0gMikgewogICAgICAgICB0ZXN0RFhUNV9SR0JBX1BCTygpOwogICAgIH0K
KworICAgIC8vIFRlc3QgVGV4SW1hZ2UgdmFsaWRhdGlvbiBvbiBsZXZlbCBkaW1lbnNpb25zIGNv
bWJpbmF0aW9ucy4KKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIldoZW4gbGV2ZWwgZXF1YWxz
IDAsIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuIik7CisgICAgZGVi
dWcoIldoZW4gbGV2ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNuJ3Qg
YXBwbHkuIik7CisgICAgY3R1LnRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0LCB2
YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAorICAg
ICAgWworICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiAzLCBleHBlY3RhdGlv
bjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiA0eDMiIH0sCisgICAgICAgIHsg
bGV2ZWw6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09Q
RVJBVElPTiwgbWVzc2FnZTogIjA6IDN4NCIgfSwKKyAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6
IDIsIGhlaWdodDogMiwgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdl
OiAiMDogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0LCBl
eHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiA0eDQiIH0sCisgICAgICAgIHsg
bGV2ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwg
bWVzc2FnZTogIjE6IDJ4MiIgfSwKKyAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdo
dDogMSwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogMXgxIiB9LAorICAg
IF0pOworCisgICAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRG
b3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgMTYsIDE2LAor
ICAgICAgWworICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWln
aHQ6IDMsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNz
YWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNl
dDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3Rh
dGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBpcyBub3QgYSBtdWx0
aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0
LCBoZWlnaHQ6IDQsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9O
LCBtZXNzYWdlOiAieG9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7
IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAg
ZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAieW9mZnNldCBpcyBu
b3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEyLCB5b2Zmc2V0OiAx
Miwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJS
T1IsIG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICBdKTsKKworICAgIGlmIChjb250ZXh0VmVy
c2lvbiA+PSAyKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3Rpbmcg
TlBPVCB0ZXh0dXJlcyIpOworICAgICAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25z
KGdsLCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVu
c2lvbnMsCisgICAgICAgICAgWworICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDAsIGhl
aWdodDogMCwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMDogMHgwIGlzIHZh
bGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEsIGhlaWdodDogMSwgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMDogMXgxIGlzIGludmFs
aWQiIH0sCisgICAgICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogMiwgaGVpZ2h0OiAyLCBleHBl
Y3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAyeDIgaXMgaW52YWxp
ZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDMsIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjA6IDN4MyBpcyBpbnZhbGlk
IiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEwLCBoZWlnaHQ6IDEwLCBleHBl
Y3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMHgxMCBpcyBpbnZh
bGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDExLCBoZWlnaHQ6IDExLCBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMXgxMSBpcyBp
bnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDExLCBoZWlnaHQ6IDEy
LCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMXgxMiBp
cyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEyLCBoZWlnaHQ6
IDExLCBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiAxMngx
MSBpcyBpbnZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEyLCBoZWln
aHQ6IDEyLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAxMngxMiBpcyB2
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgMCwgaGVpZ2h0OiAgMCwg
ZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMTogMHgwLCBpcyB2YWxpZCIgfSwK
KyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgMywgaGVpZ2h0OiAgMywgZXhwZWN0YXRp
b246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMTogM3gzLCBpcyBpbnZhbGlkIiB9
LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA1LCBoZWlnaHQ6ICA1LCBleHBlY3Rh
dGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIxOiA1eDUsIGlzIGludmFsaWQi
IH0sCisgICAgICAgICAgICB7IGxldmVsOiAxLCB3aWR0aDogIDUsIGhlaWdodDogIDYsIGV4cGVj
dGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVzc2FnZTogIjE6IDV4NiwgaXMgaW52YWxp
ZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgNiwgaGVpZ2h0OiAgNSwgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAiMTogNng1LCBpcyBpbnZh
bGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMSwgd2lkdGg6ICA2LCBoZWlnaHQ6ICA2LCBl
eHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiA2eDYsIGlzIHZhbGlkIiB9LAor
ICAgICAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6ICAwLCBoZWlnaHQ6ICAwLCBleHBlY3RhdGlv
bjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIyOiAweDAsIGlzIHZhbGlkIiB9LAorICAgICAgICAg
ICAgeyBsZXZlbDogMiwgd2lkdGg6ICAzLCBoZWlnaHQ6ICAzLCBleHBlY3RhdGlvbjogZ2wuTk9f
RVJST1IsIG1lc3NhZ2U6ICIyOiAzeDMsIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZl
bDogMywgd2lkdGg6ICAxLCBoZWlnaHQ6ICAzLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1l
c3NhZ2U6ICIzOiAxeDMsIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAgeyBsZXZlbDogMywgd2lk
dGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIz
OiAxeDEsIGlzIHZhbGlkIiB9LAorICAgICAgICBdKTsKKworICAgICAgICBkZWJ1ZygiIik7Cisg
ICAgICAgIGRlYnVnKCJUZXN0aW5nIHBhcnRpYWwgdXBkYXRlcyIpOworICAgICAgICBjdHUudGVz
dFRleFN1YkltYWdlRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0
ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCAxMiwgMTIsCisgICAgICAgIFsKKyAgICAgICAg
ICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDMsCisgICAgICAg
ICAgICBleHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJoZWlnaHQg
aXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZz
ZXQ6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wu
SU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0
IiB9LAorICAgICAgICAgIHsgeG9mZnNldDogMSwgeW9mZnNldDogMCwgd2lkdGg6IDQsIGhlaWdo
dDogNCwKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJBVElPTiwgbWVz
c2FnZTogInhvZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhv
ZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBl
eHBlY3RhdGlvbjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ5b2Zmc2V0IGlzIG5v
dCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgICAgeyB4b2Zmc2V0OiA4LCB5b2Zmc2V0OiA4
LCB3aWR0aDogNCwgaGVpZ2h0OiA0LAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLk5PX0VS
Uk9SLCBtZXNzYWdlOiAiaXMgdmFsaWQiIH0sCisgICAgICAgIF0pOworCisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3RpbmcgaW1tdXRhYmxlIE5QT1QgdGV4dHVyZXMiKTsK
KyAgICAgICAgY3R1LnRlc3RUZXhTdG9yYWdlTGV2ZWxEaW1lbnNpb25zKGdsLCBleHQsIHZhbGlk
Rm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lvbnMsCisgICAgICAg
ICAgWworICAgICAgICAgICAgeyB3aWR0aDogMTIsIGhlaWdodDogMTIsIGV4cGVjdGF0aW9uOiBn
bC5OT19FUlJPUiwgbWVzc2FnZTogIjA6IDEyeDEyIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAg
eyB3aWR0aDogIDYsIGhlaWdodDogIDYsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2Fn
ZTogIjE6IDZ4NiwgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IHdpZHRoOiAgMywgaGVpZ2h0
OiAgMywgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogM3gzLCBpcyB2YWxp
ZCIgfSwKKyAgICAgICAgICAgIHsgd2lkdGg6ICAxLCBoZWlnaHQ6ICAxLCBleHBlY3RhdGlvbjog
Z2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIzOiAxeDEsIGlzIHZhbGlkIiB9LAorICAgICAgICBdKTsK
KyAgICB9CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3RSR1RDKCkgewpAQCAtMjk4LDYgKzM4NCw4IEBA
IGZ1bmN0aW9uIHJ1blRlc3RSR1RDKCkgewogICAgICAgICAgICAgZGF0YTogaW1nXzR4NF9zaWdu
ZWRfcmdfYmM1LAogICAgICAgICAgICAgZm9ybWF0OiBleHRfcmd0Yy5DT01QUkVTU0VEX1NJR05F
RF9SRURfR1JFRU5fUkdUQzJfRVhULAogICAgICAgICAgICAgaGFzQWxwaGE6IGZhbHNlLAorICAg
ICAgICAgICAgZXJyb3I6IDE4LCAvLyBTaWduZWQsIHNvIHR3aWNlIHRoZSBub3JtYWwgZXJyb3Iu
CisgICAgICAgICAgICAgICAgICAgICAgIC8vIEV4cGVyaW1lbnRhbGx5IG5lZWRlZCBieSBlLmcu
IFJUWCAzMDcwLgogICAgICAgICB9LAogICAgICAgICB7ICAgd2lkdGg6IDgsCiAgICAgICAgICAg
ICBoZWlnaHQ6IDgsCkBAIC00NzQsMTAgKzU2MiwxMyBAQCBmdW5jdGlvbiB1bmNvbXByZXNzRFhU
QmxvY2soCiAgICAgICAgICBmb3JtYXQgPT0gZXh0X3JndGMuQ09NUFJFU1NFRF9SRURfR1JFRU5f
UkdUQzJfRVhUIHx8CiAgICAgICAgICBmb3JtYXQgPT0gZXh0X3JndGMuQ09NUFJFU1NFRF9TSUdO
RURfUkVEX1JHVEMxX0VYVCB8fAogICAgICAgICAgZm9ybWF0ID09IGV4dF9yZ3RjLkNPTVBSRVNT
RURfU0lHTkVEX1JFRF9HUkVFTl9SR1RDMl9FWFQpOworICAgIGxldCBjb2xvck9mZnNldCA9IHNy
Y09mZnNldDsKICAgICBpZiAoIWlzQkM0NSkgewogICAgICAgICB2YXIgaXNEWFQxID0gZm9ybWF0
ID09IGV4dC5DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUIHx8CiAgICAgICAgICAgICAgICAg
ICAgICBmb3JtYXQgPT0gZXh0LkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUOwotICAgICAg
ICB2YXIgY29sb3JPZmZzZXQgPSBzcmNPZmZzZXQgKyAoaXNEWFQxID8gMCA6IDgpOworICAgICAg
ICBpZiAoIWlzRFhUMSkgeworICAgICAgICAgICAgY29sb3JPZmZzZXQgKz0gODsKKyAgICAgICAg
fQogICAgICAgICB2YXIgY29sb3IwID0gbWFrZTU2NShzcmMsIGNvbG9yT2Zmc2V0ICsgMCk7CiAg
ICAgICAgIHZhciBjb2xvcjEgPSBtYWtlNTY1KHNyYywgY29sb3JPZmZzZXQgKyAyKTsKICAgICAg
ICAgdmFyIGMwZ3RjMSA9IGNvbG9yMCA+IGNvbG9yMSB8fCAhaXNEWFQxOwpAQCAtNjU4LDYgKzc0
OSw4IEBAIGZ1bmN0aW9uIGNvcHlSZWN0KGRhdGEsIHNyY1gsIHNyY1ksIGRzdFgsIGRzdFksIHdp
ZHRoLCBoZWlnaHQsIHN0cmlkZSkgewogfQogCiBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0ZXN0
LCB1c2VUZXhTdG9yYWdlKSB7CisgICAgdGVzdC5lcnJvciA9IHRlc3QuZXJyb3IgfHwgREVGQVVM
VF9DT0xPUl9FUlJPUjsKKwogICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkodGVzdC5kYXRh
KTsKICAgICB2YXIgd2lkdGggPSB0ZXN0LndpZHRoOwogICAgIHZhciBoZWlnaHQgPSB0ZXN0Lmhl
aWdodDsKQEAgLTY5Niw3ICs3ODksNyBAQCBmdW5jdGlvbiB0ZXN0RFhUVGV4dHVyZSh0ZXN0LCB1
c2VUZXhTdG9yYWdlKSB7CiAKICAgICAgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChn
bCk7CiAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImRy
YXdpbmcgdW5pdCBxdWFkIDEiKTsKLSAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWln
aHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGFTdWIsICJORUFSRVNUIik7CisgICAg
ICAgICAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0ZXN0LmNoYW5uZWxzLCB1bmNvbXBy
ZXNzZWREYXRhU3ViLCAiTkVBUkVTVCIsIHRlc3QuZXJyb3IpOwogCiAgICAgICAgICAgICAvLyBD
bGVhbiB1cCBhbmQgcmVjb3ZlcgogICAgICAgICAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgxKTsK
QEAgLTcyMCwxMyArODEzLDEzIEBAIGZ1bmN0aW9uIHRlc3REWFRUZXh0dXJlKHRlc3QsIHVzZVRl
eFN0b3JhZ2UpIHsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFm
dGVyIGNsZWFyaW5nIGdlbmVyYXRlTWlwbWFwIGVycm9yIik7CiAgICAgd3R1LmNsZWFyQW5kRHJh
d1VuaXRRdWFkKGdsKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
ImRyYXdpbmcgdW5pdCBxdWFkIDEiKTsKLSAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0
ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIpOworICAgIGNvbXBhcmVS
ZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJORUFS
RVNUIiwgdGVzdC5lcnJvcik7CiAgICAgLy8gVGVzdCBhZ2FpbiB3aXRoIGxpbmVhciBmaWx0ZXJp
bmcuCiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9G
SUxURVIsIGdsLkxJTkVBUik7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImRy
YXdpbmcgdW5pdCBxdWFkIDIiKTsKLSAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0ZXN0
LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTElORUFSIik7CisgICAgY29tcGFyZVJlY3Qo
d2lkdGgsIGhlaWdodCwgdGVzdC5jaGFubmVscywgdW5jb21wcmVzc2VkRGF0YSwgIkxJTkVBUiIs
IHRlc3QuZXJyb3IpOwogCiAgICAgaWYgKCF1c2VUZXhTdG9yYWdlKSB7CiAgICAgICAgIC8vIEl0
J3Mgbm90IGFsbG93ZWQgdG8gcmVkZWZpbmUgdGV4dHVyZXMgZGVmaW5lZCB2aWEgdGV4U3RvcmFn
ZTJELgpAQCAtNzUyLDEyICs4NDUsMTQgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVzdCwg
dXNlVGV4U3RvcmFnZSkgewogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOwogCiAgICAgICAgIGlmICh3aWR0
aCA9PSA0KSB7CisgICAgICAgICAgICAvLyBUaGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBpbXBsaWVk
IGJhc2UgbGV2ZWwgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplLgogICAgICAg
ICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCAx
LCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIp
OwogICAgICAgICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwg
Zm9ybWF0LCAyLCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ2YWxpZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaGVpZ2h0ID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRo
ZSB3aWR0aC9oZWlnaHQgb2YgdGhlIGltcGxpZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlw
bGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAxLCBmb3JtYXQsIHdpZHRoLCAxLCAwLCBkYXRhKTsKICAgICAgICAg
ICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxp
ZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsKICAgICAgICAgICAgIGdsLmNvbXByZXNzZWRU
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDIsIDAsIGRhdGEpOwpA
QCAtODM1LDE0ICs5MzAsMTQgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVzdCwgdXNlVGV4
U3RvcmFnZSkgewogICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwogICAgICAgICAgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1Qp
OwogICAgICAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKLSAgICAgICAgICAg
IGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERh
dGEsICJORUFSRVNUIik7CisgICAgICAgICAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCB0
ZXN0LmNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVBUkVTVCIsIHRlc3QuZXJyb3IpOwog
ICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3aW5n
IHVuaXQgcXVhZCIpOwogICAgICAgICAgICAgLy8gTmV4dCB0ZXN0IExJTkVBUiBmaWx0ZXJpbmcu
CiAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKICAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwogICAgICAgICAg
ICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsKTsKICAgICAgICAgICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1YWQiKTsKLSAgICAgICAg
ICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3Nl
ZERhdGEsICJMSU5FQVIiKTsKKyAgICAgICAgICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQs
IHRlc3QuY2hhbm5lbHMsIHVuY29tcHJlc3NlZERhdGEsICJMSU5FQVIiLCB0ZXN0LmVycm9yKTsK
ICAgICAgICAgfQogICAgIH0KIH0KQEAgLTg3Myw3ICs5NjgsNyBAQCBmdW5jdGlvbiB0ZXN0RFhU
NV9SR0JBX1BCTygpIHsKICAgICBnbC5iaW5kQnVmZmVyKGdsLlBJWEVMX1VOUEFDS19CVUZGRVIs
IG51bGwpOwogICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCk7CiAgICAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJkcmF3aW5nIHVuaXQgcXVhZCIpOwotICAgIGNv
bXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCB1bmNvbXByZXNzZWREYXRhLCAiTkVB
UkVTVCIpOworICAgIGNvbXBhcmVSZWN0KHdpZHRoLCBoZWlnaHQsIGNoYW5uZWxzLCB1bmNvbXBy
ZXNzZWREYXRhLCAiTkVBUkVTVCIsIERFRkFVTFRfQ09MT1JfRVJST1IpOwogCiAgICAgLy8gQ2xl
YXIgdGhlIHRleHR1cmUgYmVmb3JlIHRoZSBuZXh0IHRlc3QKICAgICBnbC5iaW5kQnVmZmVyKGds
LlBJWEVMX1VOUEFDS19CVUZGRVIsIG51bGwpOwpAQCAtODkwLDEwICs5ODUsMTAgQEAgZnVuY3Rp
b24gdGVzdERYVDVfUkdCQV9QQk8oKSB7CiAgICAgZ2wuYmluZEJ1ZmZlcihnbC5QSVhFTF9VTlBB
Q0tfQlVGRkVSLCBudWxsKTsKICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOwogICAg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiZHJhd2luZyB1bml0IHF1YWQi
KTsKLSAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgdW5jb21wcmVzc2Vk
RGF0YSwgIk5FQVJFU1QiKTsKKyAgICBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVs
cywgdW5jb21wcmVzc2VkRGF0YSwgIk5FQVJFU1QiLCBERUZBVUxUX0NPTE9SX0VSUk9SKTsKIH0K
IAotZnVuY3Rpb24gY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIGV4cGVjdGVk
RGF0YSwgZmlsdGVyaW5nTW9kZSkgeworZnVuY3Rpb24gY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdo
dCwgY2hhbm5lbHMsIGV4cGVjdGVkRGF0YSwgZmlsdGVyaW5nTW9kZSwgY29sb3JFcnJvcikgewog
ICAgIHZhciBhY3R1YWwgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOwogICAg
IGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgYWN0dWFsKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
InJlYWRpbmcgYmFjayBwaXhlbHMiKTsKQEAgLTkxMCwxOSArMTAwNSwxNSBAQCBmdW5jdGlvbiBj
b21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVscywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJp
bmdNb2RlKSB7CiAgICAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCB3aWR0aDsgKyt4eCkgewog
ICAgICAgICAgICAgdmFyIG9mZnNldCA9ICh5eSAqIHdpZHRoICsgeHgpICogNDsKICAgICAgICAg
ICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVkRGF0YS5zbGljZShvZmZzZXQsIG9mZnNldCArIDQp
OworICAgICAgICAgICAgY29uc3Qgd2FzID0gYWN0dWFsLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsg
NCk7CisKICAgICAgICAgICAgIC8vIENvbXBhcmUgUkdCIHZhbHVlcwogICAgICAgICAgICAgZm9y
ICh2YXIgamogPSAwOyBqaiA8IDM7ICsramopIHsKLSAgICAgICAgICAgICAgICAvLyBBY2NlcHRh
YmxlIGludGVycG9sYXRpb24gZXJyb3IgZGVwZW5kcyBvbiBlbmRwb2ludHM6Ci0gICAgICAgICAg
ICAgICAgLy8gMS4wIC8gMjU1LjAgKyAwLjAzICogbWF4KGFicyhlbmRwb2ludDAgLSBlbmRwb2lu
dDEpLCBhYnMoZW5kcG9pbnQwX3AgLSBlbmRwb2ludDFfcCkpCi0gICAgICAgICAgICAgICAgLy8g
Rm9yIHNpbXBsaWNpdHksIGFzc3VtZSB0aGUgd29yc3QgY2FzZSAoZTAgaXMgMC4wLCBlMSBpcyAx
LjApLiBBZnRlciBjb252ZXJzaW9uIHRvIHVub3JtOCwgaXQgaXMgOS4KLSAgICAgICAgICAgICAg
ICBpZiAoTWF0aC5hYnMoYWN0dWFsW29mZnNldCArIGpqXSAtIGV4cGVjdGVkW2pqXSkgPiA5KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHZhciB3YXMgPSBhY3R1YWxbb2Zmc2V0ICsgMF0udG9TdHJp
bmcoKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDE7IGogPCAzOyArK2opIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHdhcyArPSAiLCIgKyBhY3R1YWxbb2Zmc2V0ICsgal07
Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMod2Fz
W2pqXSAtIGV4cGVjdGVkW2pqXSkgPiBjb2xvckVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAg
IGZhaWxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1JHQiBhdCAo
JyArIHh4ICsgJywgJyArIHl5ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnKSBleHBlY3RlZDogJyArIGV4cGVjdGVkICsgJyDCsSA5IHdhcyAnICsgd2FzKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgUkdCIGF0ICgke3h4fSwgJHt5eX0pIGV4cGVj
dGVkOiAke2V4cGVjdGVkfWAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAgKy8t
ICR7Y29sb3JFcnJvcn0sIHdhcyAke3dhc31gKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC05MzcsMTUgKzEwMjgsMTUg
QEAgZnVuY3Rpb24gY29tcGFyZVJlY3Qod2lkdGgsIGhlaWdodCwgY2hhbm5lbHMsIGV4cGVjdGVk
RGF0YSwgZmlsdGVyaW5nTW9kZSkgewogICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBSR0Ig
dmFsdWVzLiBOb3RpY2UsIHRoYXQgdGhlIGNvbmRpdGlvbiBoZXJlCiAgICAgICAgICAgICAgICAg
ICAgIC8vIGlzIG1vcmUgcGVybWlzc2l2ZSB0aGFuIG5lZWRlZCBzaW5jZSB3ZSBkb24ndCBoYXZl
CiAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXByZXNzZWQgZGF0YSBhdCB0aGlzIHBvaW50Lgot
ICAgICAgICAgICAgICAgICAgICBpZiAoYWN0dWFsW29mZnNldF0gPT0gMCAmJgotICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0dWFsW29mZnNldCArIDFdID09IDAgJiYKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFjdHVhbFtvZmZzZXQgKyAyXSA9PSAwICYmCi0gICAgICAgICAgICAgICAgICAg
ICAgICBhY3R1YWxbb2Zmc2V0ICsgM10gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
d2FzWzBdID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhc1sxXSA9PSAwICYmCisg
ICAgICAgICAgICAgICAgICAgICAgICB3YXNbMl0gPT0gMCAmJgorICAgICAgICAgICAgICAgICAg
ICAgICAgd2FzWzNdID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Zygi
PGI+RFhUMSBSR0IgaXMgbWFwcGVkIHRvIERYVDEgUkdCQTwvYj4iKTsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdBbHBoYSBhdCAoJyArIHh4ICsgJywg
JyArIHl5ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
KSBleHBlY3RlZDogJyArIGV4cGVjdGVkWzNdICsgJyB3YXMgJyArIGFjdHVhbFtvZmZzZXQgKyAz
XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJykgZXhw
ZWN0ZWQ6ICcgKyBleHBlY3RlZFszXSArICcgd2FzICcgKyB3YXMpOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTk1Mywx
MSArMTA0NCwxMCBAQCBmdW5jdGlvbiBjb21wYXJlUmVjdCh3aWR0aCwgaGVpZ2h0LCBjaGFubmVs
cywgZXhwZWN0ZWREYXRhLCBmaWx0ZXJpbmdNb2RlKSB7CiAgICAgICAgICAgICAgICAgLy8gQWNj
ZXB0YWJsZSBpbnRlcnBvbGF0aW9uIGVycm9yIGRlcGVuZHMgb24gZW5kcG9pbnRzOgogICAgICAg
ICAgICAgICAgIC8vIDEuMCAvIDY1NTM1LjAgKyAwLjAzICogbWF4KGFicyhlbmRwb2ludDAgLSBl
bmRwb2ludDEpLCBhYnMoZW5kcG9pbnQwX3AgLSBlbmRwb2ludDFfcCkpCiAgICAgICAgICAgICAg
ICAgLy8gRm9yIHNpbXBsaWNpdHksIGFzc3VtZSB0aGUgd29yc3QgY2FzZSAoZTAgaXMgMC4wLCBl
MSBpcyAxLjApLiBBZnRlciBjb252ZXJzaW9uIHRvIHVub3JtOCwgaXQgaXMgOC4KLSAgICAgICAg
ICAgICAgICBpZiAoTWF0aC5hYnMoYWN0dWFsW29mZnNldCArIDNdIC0gZXhwZWN0ZWRbM10pID4g
OCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgd2FzID0gYWN0dWFsW29mZnNldCArIDNdLnRv
U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHdhc1szXSAtIGV4cGVjdGVk
WzNdKSA+IDgpIHsKICAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgnQWxwaGEgYXQgKCcgKyB4eCArICcsICcgKyB5eSArCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKSBleHBlY3RlZDogJyAr
IGV4cGVjdGVkICsgJyDCsSA4IHdhcyAnICsgd2FzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWQgKyAnICsvLSA4IHdh
cyAnICsgd2FzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXMzdGMtc3Jn
Yi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0
bWwKaW5kZXggYTFhMjFhYjE0YjdmYjg0NDdiOWE0YWUyYzY4ZmZkN2NiNGY2NjBlNS4uOTFmYzNm
MGIxYzZhYTFmYTEyMjIyZjUzYzFjZDZhNTJkMTI5MGYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9u
cy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9u
cy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwKQEAgLTIyNiw2ICsyMjYs
NzIgQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBpZiAoY29udGV4dFZlcnNp
b24gPj0gMikgewogICAgICAgICB0ZXN0RFhUNV9TUkdCX0FMUEhBX1BCTygpOwogICAgIH0KKwor
ICAgIC8vIFRlc3QgVGV4SW1hZ2UgdmFsaWRhdGlvbiBvbiBsZXZlbCBkaW1lbnNpb25zIGNvbWJp
bmF0aW9ucy4KKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIldoZW4gbGV2ZWwgZXF1YWxzIDAs
IHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuIik7CisgICAgZGVidWco
IldoZW4gbGV2ZWwgaXMgbGFyZ2VyIHRoYW4gMCwgdGhpcyBjb25zdHJhaW50IGRvZXNuJ3QgYXBw
bHkuIik7CisgICAgY3R1LnRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9ucyhnbCwgZXh0LCB2YWxp
ZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLAorICAgICAg
WworICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiAzLCBleHBlY3RhdGlvbjog
Z2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICIwOiA0eDMiIH0sCisgICAgICAgIHsgbGV2
ZWw6IDAsIHdpZHRoOiAzLCBoZWlnaHQ6IDQsIGV4cGVjdGF0aW9uOiBnbC5JTlZBTElEX09QRVJB
VElPTiwgbWVzc2FnZTogIjA6IDN4NCIgfSwKKyAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDIs
IGhlaWdodDogMiwgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAi
MDogMngyIiB9LAorICAgICAgICB7IGxldmVsOiAwLCB3aWR0aDogNCwgaGVpZ2h0OiA0LCBleHBl
Y3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiA0eDQiIH0sCisgICAgICAgIHsgbGV2
ZWw6IDEsIHdpZHRoOiAyLCBoZWlnaHQ6IDIsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVz
c2FnZTogIjE6IDJ4MiIgfSwKKyAgICAgICAgeyBsZXZlbDogMiwgd2lkdGg6IDEsIGhlaWdodDog
MSwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogMXgxIiB9LAorICAgIF0p
OworCisgICAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRGb3Jt
YXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgMTYsIDE2LAorICAg
ICAgWworICAgICAgICB7IHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBoZWlnaHQ6
IDMsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdl
OiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgIHsgeG9mZnNldDog
MCwgeW9mZnNldDogMCwgd2lkdGg6IDMsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlv
bjogZ2wuSU5WQUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ3aWR0aCBpcyBub3QgYSBtdWx0aXBs
ZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEsIHlvZmZzZXQ6IDAsIHdpZHRoOiA0LCBo
ZWlnaHQ6IDQsCisgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBt
ZXNzYWdlOiAieG9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhv
ZmZzZXQ6IDAsIHlvZmZzZXQ6IDEsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgZXhw
ZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAieW9mZnNldCBpcyBub3Qg
YSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICB7IHhvZmZzZXQ6IDEyLCB5b2Zmc2V0OiAxMiwg
d2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1Is
IG1lc3NhZ2U6ICJpcyB2YWxpZCIgfSwKKyAgICBdKTsKKworICAgIGlmIChjb250ZXh0VmVyc2lv
biA+PSAyKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRlc3RpbmcgTlBP
VCB0ZXh0dXJlcyIpOworICAgICAgICBjdHUudGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zKGds
LCBleHQsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lv
bnMsCisgICAgICAgICAgWworICAgICAgICAgICAgeyBsZXZlbDogMCwgd2lkdGg6IDEyLCBoZWln
aHQ6IDEyLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAxMngxMiBpcyB2
YWxpZCIgfSwKKyAgICAgICAgICAgIHsgbGV2ZWw6IDEsIHdpZHRoOiAgNiwgaGVpZ2h0OiAgNiwg
ZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMTogNng2LCBpcyB2YWxpZCIgfSwK
KyAgICAgICAgICAgIHsgbGV2ZWw6IDIsIHdpZHRoOiAgMywgaGVpZ2h0OiAgMywgZXhwZWN0YXRp
b246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMjogM3gzLCBpcyB2YWxpZCIgfSwKKyAgICAgICAg
ICAgIHsgbGV2ZWw6IDMsIHdpZHRoOiAgMSwgaGVpZ2h0OiAgMSwgZXhwZWN0YXRpb246IGdsLk5P
X0VSUk9SLCBtZXNzYWdlOiAiMzogMXgxLCBpcyB2YWxpZCIgfSwKKyAgICAgICAgXSk7CisKKyAg
ICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiVGVzdGluZyBwYXJ0aWFsIHVwZGF0ZXMi
KTsKKyAgICAgICAgY3R1LnRlc3RUZXhTdWJJbWFnZURpbWVuc2lvbnMoZ2wsIGV4dCwgdmFsaWRG
b3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgMTIsIDEyLAor
ICAgICAgICBbCisgICAgICAgICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogNCwg
aGVpZ2h0OiAzLAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9O
LCBtZXNzYWdlOiAiaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQiIH0sCisgICAgICAgICAg
eyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMywgaGVpZ2h0OiA0LAorICAgICAgICAg
ICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNzYWdlOiAid2lkdGggaXMg
bm90IGEgbXVsdGlwbGUgb2YgNCIgfSwKKyAgICAgICAgICB7IHhvZmZzZXQ6IDEsIHlvZmZzZXQ6
IDAsIHdpZHRoOiA0LCBoZWlnaHQ6IDQsCisgICAgICAgICAgICBleHBlY3RhdGlvbjogZ2wuSU5W
QUxJRF9PUEVSQVRJT04sIG1lc3NhZ2U6ICJ4b2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDQi
IH0sCisgICAgICAgICAgeyB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAxLCB3aWR0aDogNCwgaGVpZ2h0
OiA0LAorICAgICAgICAgICAgZXhwZWN0YXRpb246IGdsLklOVkFMSURfT1BFUkFUSU9OLCBtZXNz
YWdlOiAieW9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0IiB9LAorICAgICAgICAgIHsgeG9m
ZnNldDogOCwgeW9mZnNldDogOCwgd2lkdGg6IDQsIGhlaWdodDogNCwKKyAgICAgICAgICAgIGV4
cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2FnZTogImlzIHZhbGlkIiB9LAorICAgICAgICBd
KTsKKworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIGltbXV0YWJs
ZSBOUE9UIHRleHR1cmVzIik7CisgICAgICAgIGN0dS50ZXN0VGV4U3RvcmFnZUxldmVsRGltZW5z
aW9ucyhnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZUxlbmd0aCwgZ2V0QmxvY2tE
aW1lbnNpb25zLAorICAgICAgICAgIFsKKyAgICAgICAgICAgIHsgd2lkdGg6IDEyLCBoZWlnaHQ6
IDEyLCBleHBlY3RhdGlvbjogZ2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIwOiAxMngxMiBpcyB2YWxp
ZCIgfSwKKyAgICAgICAgICAgIHsgd2lkdGg6ICA2LCBoZWlnaHQ6ICA2LCBleHBlY3RhdGlvbjog
Z2wuTk9fRVJST1IsIG1lc3NhZ2U6ICIxOiA2eDYsIGlzIHZhbGlkIiB9LAorICAgICAgICAgICAg
eyB3aWR0aDogIDMsIGhlaWdodDogIDMsIGV4cGVjdGF0aW9uOiBnbC5OT19FUlJPUiwgbWVzc2Fn
ZTogIjI6IDN4MywgaXMgdmFsaWQiIH0sCisgICAgICAgICAgICB7IHdpZHRoOiAgMSwgaGVpZ2h0
OiAgMSwgZXhwZWN0YXRpb246IGdsLk5PX0VSUk9SLCBtZXNzYWdlOiAiMzogMXgxLCBpcyB2YWxp
ZCIgfSwKKyAgICAgICAgXSk7CisgICAgfQogfQogCiBmdW5jdGlvbiB0ZXN0RFhUMV9TUkdCKCkg
ewpAQCAtNjE3LDEyICs2ODMsMTQgQEAgZnVuY3Rpb24gdGVzdERYVFRleHR1cmUodGVzdCwgdXNl
VGV4U3RvcmFnZSkgewogICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOwogCiAgICAgICAgIGlmICh3aWR0aCA9
PSA0KSB7CisgICAgICAgICAgICAvLyBUaGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBpbXBsaWVkIGJh
c2UgbGV2ZWwgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplLgogICAgICAgICAg
ICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9ybWF0LCAxLCBo
ZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMgZm9yIGxldmVsID4gMCIpOwog
ICAgICAgICAgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgZm9y
bWF0LCAyLCBoZWlnaHQsIDAsIGRhdGEpOwogICAgICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsICJ2YWxpZCBkaW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoaGVpZ2h0ID09IDQpIHsKKyAgICAgICAgICAgIC8vIFRoZSB3
aWR0aC9oZWlnaHQgb2YgdGhlIGltcGxpZWQgYmFzZSBsZXZlbCBtdXN0IGJlIGEgbXVsdGlwbGUg
b2YgdGhlIGJsb2NrIHNpemUuCiAgICAgICAgICAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAxLCBmb3JtYXQsIHdpZHRoLCAxLCAwLCBkYXRhKTsKICAgICAgICAgICAg
IHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxpZCBk
aW1lbnNpb25zIGZvciBsZXZlbCA+IDAiKTsKICAgICAgICAgICAgIGdsLmNvbXByZXNzZWRUZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDEsIGZvcm1hdCwgd2lkdGgsIDIsIDAsIGRhdGEpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1tdWx0aS1kcmF3Lmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dl
YmdsLW11bHRpLWRyYXcuaHRtbAppbmRleCBhZGVhYjMxMmU1ZDAxNzgzOWEwNDg3NzIzNzc2YWYy
NjRhNDBkZmZhLi40MjZlNDYzMDdlNjkwMDc3Y2I2ZGI4ZTMyMGY4MzE4ZDU1MGM5MTgxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L3dlYmdsLW11bHRpLWRyYXcuaHRtbApAQCAtMzcxLDcgKzM3MSw3IEBAIGZ1bmN0aW9uIGRvVGVz
dChleHQsIGluc3RhbmNlZCkgewogICAgIHd0dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1NSwgMCwg
MjU1XSwgImdsX0RyYXdJRCBpcyAwIGZvciBub24tTXVsdGkqIGRyYXcgY2FsbHMiLCAwKTsKICAg
fQogCi0gIGZ1bmN0aW9uIHJ1blBpeGVsVGVzdHMoYnVmZmVyVXNhZ2UpIHsKKyAgZnVuY3Rpb24g
cnVuUGl4ZWxUZXN0cyhidWZmZXJVc2FnZSwgdXNlU2hhcmVkQXJyYXlCdWZmZXIpIHsKICAgICAv
LyBBbiBhcnJheSBvZiBxdWFkcyBpcyB0aWxlZCBhY3Jvc3MgdGhlIHNjcmVlbi4KICAgICAvLyBn
bF9EcmF3SUQgaXMgY2hlY2tlZCBieSB1c2luZyBpdCB0byBzZWxlY3QgdGhlIGNvbG9yIG9mIHRo
ZSBkcmF3LgogICAgIC8vIEluc3RhbmNlZCBlbnRyeXBvaW50cyBhcmUgdGVzdGVkIGhlcmUgc2Nh
bGluZyBhbmQgdGhlbiBpbnN0YW5jaW5nIHRoZQpAQCAtNTA2LDEwICs1MDYsMTggQEAgZnVuY3Rp
b24gZG9UZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0cyhn
bCwgcmVjdHMpOwogICAgIH0KIAotICAgIGNvbnN0IGZpcnN0cyA9IG5ldyBVaW50MzJBcnJheSh0
cmlfY291bnQpOwotICAgIGNvbnN0IGNvdW50cyA9IG5ldyBVaW50MzJBcnJheSh0cmlfY291bnQp
OwotICAgIGNvbnN0IG9mZnNldHMgPSBuZXcgVWludDMyQXJyYXkodHJpX2NvdW50KTsKLSAgICBj
b25zdCBpbnN0YW5jZXMgPSBuZXcgVWludDMyQXJyYXkodHJpX2NvdW50KTsKKyAgICBmdW5jdGlv
biBuZXdJbnRBcnJheShjb3VudCkgeworICAgICAgaWYgKCF1c2VTaGFyZWRBcnJheUJ1ZmZlcikg
eworICAgICAgICByZXR1cm4gbmV3IEludDMyQXJyYXkoY291bnQpOworICAgICAgfQorICAgICAg
bGV0IHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihjb3VudCAqIEludDMyQXJyYXkuQllURVNf
UEVSX0VMRU1FTlQpOworICAgICAgcmV0dXJuIG5ldyBJbnQzMkFycmF5KHNhYik7CisgICAgfQor
CisgICAgY29uc3QgZmlyc3RzID0gbmV3SW50QXJyYXkodHJpX2NvdW50KTsKKyAgICBjb25zdCBj
b3VudHMgPSBuZXdJbnRBcnJheSh0cmlfY291bnQpOworICAgIGNvbnN0IG9mZnNldHMgPSBuZXdJ
bnRBcnJheSh0cmlfY291bnQpOworICAgIGNvbnN0IGluc3RhbmNlcyA9IG5ld0ludEFycmF5KHRy
aV9jb3VudCk7CiAKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpcnN0cy5sZW5ndGg7ICsraSkg
Zmlyc3RzW2ldID0gaSAqIDM7CiAgICAgY291bnRzLmZpbGwoMyk7CkBAIC01MjEsNyArNTI5LDcg
QEAgZnVuY3Rpb24gZG9UZXN0KGV4dCwgaW5zdGFuY2VkKSB7CiAgICAgY29uc3Qgb2Zmc2V0c09m
ZnNldCA9IGNvdW50c09mZnNldCArIGNvdW50cy5sZW5ndGg7CiAgICAgY29uc3QgaW5zdGFuY2Vz
T2Zmc2V0ID0gb2Zmc2V0c09mZnNldCArIGluc3RhbmNlcy5sZW5ndGg7CiAKLSAgICBjb25zdCBi
dWZmZXIgPSBuZXcgVWludDMyQXJyYXkoZmlyc3RzT2Zmc2V0ICsgZmlyc3RzLmxlbmd0aCArIGNv
dW50cy5sZW5ndGggKyBvZmZzZXRzLmxlbmd0aCArIGluc3RhbmNlcy5sZW5ndGgpOworICAgIGNv
bnN0IGJ1ZmZlciA9IG5ld0ludEFycmF5KGZpcnN0c09mZnNldCArIGZpcnN0cy5sZW5ndGggKyBj
b3VudHMubGVuZ3RoICsgb2Zmc2V0cy5sZW5ndGggKyBpbnN0YW5jZXMubGVuZ3RoKTsKICAgICBi
dWZmZXIuc2V0KGZpcnN0cywgZmlyc3RzT2Zmc2V0KTsKICAgICBidWZmZXIuc2V0KGNvdW50cywg
Y291bnRzT2Zmc2V0KTsKICAgICBidWZmZXIuc2V0KG9mZnNldHMsIG9mZnNldHNPZmZzZXQpOwpA
QCAtNjY0LDYgKzY3Miw4IEBAIGZ1bmN0aW9uIGRvVGVzdChleHQsIGluc3RhbmNlZCkgewogICAg
ICAgICBjb25maWcuaW5zdGFuY2VkID8gJyBpbnN0YW5jZWQnIDogJycKICAgICAgICkgKyAoCiAg
ICAgICAgIGNvbmZpZy5kcmF3SUQgPyAnIHdpdGggZ2xfRHJhd0lEJyA6ICcnCisgICAgICApICsg
KAorICAgICAgICB1c2VTaGFyZWRBcnJheUJ1ZmZlciA/ICcgYW5kIFNoYXJlZEFycmF5QnVmZmVy
JyA6ICcnCiAgICAgICApKTsKIAogICAgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDAp
OwpAQCAtODI3LDcgKzgzNywxMiBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0LCBpbnN0YW5jZWQpIHsK
ICAgICBkZWJ1ZygiVGVzdGluZyB3aXRoIEJ1ZmZlclVzYWdlID0gIiArIGJ1ZmZlclVzYWdlKTsK
ICAgICBydW5WYWxpZGF0aW9uVGVzdHMoYnVmZmVyVXNhZ2UpOwogICAgIHJ1blNoYWRlclRlc3Rz
KGJ1ZmZlclVzYWdlKTsKLSAgICBydW5QaXhlbFRlc3RzKGJ1ZmZlclVzYWdlKTsKKyAgICBydW5Q
aXhlbFRlc3RzKGJ1ZmZlclVzYWdlLCBmYWxzZSk7CisgIH0KKworICAvLyBSdW4gYSBzdWJzZXQg
b2YgdGhlIHBpeGVsIHRlc3RzIHdpdGggU2hhcmVkQXJyYXlCdWZmZXIgaWYgc3VwcG9ydGVkLgor
ICBpZiAod2luZG93LlNoYXJlZEFycmF5QnVmZmVyKSB7CisgICAgcnVuUGl4ZWxUZXN0cyhidWZm
ZXJVc2FnZVNldFswXSwgdHJ1ZSk7CiAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93
ZWJnbC13ZWJjb2RlY3MtdmlkZW8tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtd2ViY29k
ZWNzLXZpZGVvLWZyYW1lLmh0bWwKaW5kZXggMWI1YzE1ZDZkMjE5ZWVmMDBkZDQzMmM1MjJiMmJj
N2QzOTFiNGZiMi4uZjBlNDEzZTJmNmY0NzRjY2I2YmVhMmUwM2I4ODUxMzBlMGRmZjU3YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC13ZWJjb2RlY3MtdmlkZW8tZnJhbWUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9leHRlbnNpb25zL3dlYmdsLXdlYmNvZGVjcy12aWRlby1mcmFtZS5odG1sCkBAIC0xLDIxMSAr
MSwyMTEgQEAKLTwhLS0KLUNvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
Ci1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4KLQot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPGhlYWQ+Ci0gIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KLSAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiIC8+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Rlc3RzL291dC1vZi1ib3VuZHMtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9leHRlbnNpb25zL3By
b3Bvc2Fscy9XRUJHTF93ZWJjb2RlY3NfdmlkZW9fZnJhbWUvd2ViZ2xfd2ViY29kZWNzX3ZpZGVv
X2ZyYW1lLmpzIj48L3NjcmlwdD4KLSAgPHN0eWxlPgotICAgIGNhbnZhcyB7Ci0gICAgICBwYWRk
aW5nOiAxMHB4OwotICAgICAgYmFja2dyb3VuZDogZ29sZDsKLSAgICB9Ci0KLSAgICBidXR0b24g
ewotICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTU1NTsKLSAgICAgIGJvcmRlcjogbm9uZTsK
LSAgICAgIGNvbG9yOiB3aGl0ZTsKLSAgICAgIHBhZGRpbmc6IDE1cHggMzJweDsKLSAgICAgIHdp
ZHRoOiAxNTBweDsKLSAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICAgIGRpc3BsYXk6IGJs
b2NrOwotICAgICAgZm9udC1zaXplOiAxNnB4OwotICAgIH0KLSAgPC9zdHlsZT4KLTwvaGVhZD4K
LQotPGJvZHk+Ci0gIDxjYW52YXMgaWQ9InNyYyIgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiPjwv
Y2FudmFzPgotICA8Y2FudmFzIGlkPSJkc3QiIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIj48L2Nh
bnZhcz4KLSAgPHAgaWQ9ImluZm8iPjwvcD4KLSAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgotICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLSAgPHNjcmlwdD4KLSAgICAidXNlIHN0cmlj
dCI7Ci0gICAgZGVzY3JpcHRpb24oIlRlc3Qgb2YgaW1wb3J0aW5nIFZpZGVvZnJhbWUgZnJvbSBX
ZWJjb2RlY3MgdG8gV2ViZ2wiKTsKLQotICAgIGNvbnN0IGtJc1J1bm5pbmdUZXN0ID0gdHJ1ZTsK
LSAgICBjb25zdCBrTWF4RnJhbWUgPSAxMDsKLSAgICBjb25zdCBrVGVzdFBpeGVsID0gWzI1NSwg
MTI4LCAwLCAyNTVdOwotICAgIC8vIFN1bSBvZiBwaXhlbCBkaWZmZXJlbmNlIG9mIFIvRy9CIGNo
YW5uZWwuIFVzZSB0byBkZWNpZGUgd2hldGhlciBhCi0gICAgLy8gcGl4ZWwgaXMgbWF0Y2hlZCB3
aXRoIGFub3RoZXIuCi0gICAgY29uc3QgY29kZWNfc3RyaW5nID0gInZwMDkuMDAuNTEuMDguMDAi
OwotCi0gICAgbGV0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotICAgIGxldCBjbnYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3JjIik7Ci0gICAgbGV0IHNyY193aWR0aCA9IGNudi53aWR0aDsK
LSAgICBsZXQgc3JjX2hlaWdodCA9IGNudi5oZWlnaHQ7Ci0gICAgbGV0IHNyY19jb2xvciA9ICJy
Z2JhKCIgKyBrVGVzdFBpeGVsWzBdLnRvU3RyaW5nKCkgKyAiLCIgKyBrVGVzdFBpeGVsWzFdLnRv
U3RyaW5nKCkgKyAiLCIKLSAgICAgICsga1Rlc3RQaXhlbFsyXS50b1N0cmluZygpICsgIiwiICsg
a1Rlc3RQaXhlbFszXS50b1N0cmluZygpICsgIikiOwotICAgIGxldCBmcmFtZV9jb3VudGVyID0g
MDsKLSAgICBsZXQgcGl4ZWxDb21wYXJlVG9sZXJhbmNlID0gNTsKLQotICAgIGZ1bmN0aW9uIGdl
dFF1ZXJ5VmFyaWFibGUodmFyaWFibGUpIHsKLSAgICAgIHZhciBxdWVyeSA9IHdpbmRvdy5sb2Nh
dGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOwotICAgICAgdmFyIHZhcnMgPSBxdWVyeS5zcGxpdCgi
JiIpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YXJzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgIHZhciBwYWlyID0gdmFyc1tpXS5zcGxpdCgiPSIpOwotICAgICAgICBpZiAocGFpclswXSA9
PSB2YXJpYWJsZSkgeyByZXR1cm4gcGFpclsxXTsgfQotICAgICAgfQotICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIGxldCB0aCA9IHBhcnNlSW50KGdldFF1ZXJ5VmFyaWFibGUoJ3Ro
cmVzaG9sZCcpKTsKLSAgICBpZiAoIWlzTmFOKHRoKSkKLSAgICAgIHBpeGVsQ29tcGFyZVRvbGVy
YW5jZSA9IHRoOwotCi0gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnREcmF3aW5nKCkgewotICAgICAg
bGV0IGNudiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcmMiKTsKLSAgICAgIHZhciBjdHgg
PSBjbnYuZ2V0Q29udGV4dCgnMmQnLCB7IGFscGhhOiBmYWxzZSB9KTsKLQotICAgICAgY3R4LmZp
bGxTdHlsZSA9IHNyY19jb2xvcjsKLSAgICAgIGxldCBkcmF3T25lRnJhbWUgPSBmdW5jdGlvbiAo
dGltZSkgewotICAgICAgICBjdHguZmlsbFN0eWxlID0gc3JjX2NvbG9yOwotICAgICAgICBjdHgu
ZmlsbFJlY3QoMCwgMCwgc3JjX3dpZHRoLCBzcmNfaGVpZ2h0KTsKLSAgICAgICAgd2luZG93LnJl
cXVlc3RBbmltYXRpb25GcmFtZShkcmF3T25lRnJhbWUpOwotICAgICAgfQotICAgICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3T25lRnJhbWUpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGNhcHR1cmVBbmRFbmNvZGUocHJvY2Vzc0NodW5rKSB7Ci0gICAgICBsZXQgY252ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOwotICAgICAgbGV0IGZwcyA9IDYwOwotICAgICAg
bGV0IHBlbmRpbmdfb3V0cHV0cyA9IDA7Ci0gICAgICBsZXQgc3RyZWFtID0gY252LmNhcHR1cmVT
dHJlYW0oZnBzKTsKLSAgICAgIGxldCBwcm9jZXNzb3IgPSBuZXcgTWVkaWFTdHJlYW1UcmFja1By
b2Nlc3NvcihzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0KLSAgICAgIGNvbnN0IGluaXQg
PSB7Ci0gICAgICAgIG91dHB1dDogKGNodW5rKSA9PiB7Ci0gICAgICAgICAgdGVzdFBhc3NlZCgi
RW5jb2RlIGZyYW1lIHN1Y2Nlc3NmdWxseS4iKTsKLSAgICAgICAgICBwZW5kaW5nX291dHB1dHMt
LTsKLSAgICAgICAgICBwcm9jZXNzQ2h1bmsoY2h1bmspOwotICAgICAgICB9LAotICAgICAgICBl
cnJvcjogKGUpID0+IHsKLSAgICAgICAgICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gZW5jb2RlIGZy
YW1lLiIpOwotICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICB2dHIuc3RvcCgpOwot
ICAgICAgICB9Ci0gICAgICB9OwotCi0gICAgICBjb25zdCBjb25maWcgPSB7Ci0gICAgICAgIGNv
ZGVjOiBjb2RlY19zdHJpbmcsCi0gICAgICAgIHdpZHRoOiBjbnYud2lkdGgsCi0gICAgICAgIGhl
aWdodDogY252LmhlaWdodCwKLSAgICAgICAgYml0cmF0ZTogMTBlNiwKLSAgICAgICAgZnJhbWVy
YXRlOiBmcHMsCi0gICAgICB9OwotCi0gICAgICBsZXQgZW5jb2RlciA9IG5ldyBWaWRlb0VuY29k
ZXIoaW5pdCk7Ci0gICAgICBlbmNvZGVyLmNvbmZpZ3VyZShjb25maWcpOwotCi0gICAgICBjb25z
dCBmcmFtZV9yZWFkZXIgPSBwcm9jZXNzb3IucmVhZGFibGUuZ2V0UmVhZGVyKCk7Ci0gICAgICBm
cmFtZV9yZWFkZXIucmVhZCgpLnRoZW4oZnVuY3Rpb24gcHJvY2Vzc0ZyYW1lKHtkb25lLCB2YWx1
ZX0pIHsKLSAgICAgICAgaWYgKGRvbmUpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
IChwZW5kaW5nX291dHB1dHMgPiAzMCkgewotICAgICAgICAgIGNvbnNvbGUubG9nKCJkcm9wIHRo
aXMgZnJhbWUiKTsKLSAgICAgICAgICAvLyBUb28gbWFueSBmcmFtZXMgaW4gZmxpZ2h0LCBlbmNv
ZGVyIGlzIG92ZXJ3aGVsbWVkCi0gICAgICAgICAgLy8gbGV0J3MgZHJvcCB0aGlzIGZyYW1lLgot
ICAgICAgICAgIHZhbHVlLmNsb3NlKCk7Ci0gICAgICAgICAgZnJhbWVfcmVhZGVyLnJlYWQoKS50
aGVuKHByb2Nlc3NGcmFtZSk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYoZnJhbWVfY291bnRlciA9PSBrTWF4RnJhbWUpIHsKLSAgICAgICAgICBmcmFtZV9yZWFk
ZXIucmVsZWFzZUxvY2soKTsKLSAgICAgICAgICBwcm9jZXNzb3IucmVhZGFibGUuY2FuY2VsKCk7
Ci0gICAgICAgICAgdmFsdWUuY2xvc2UoKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LQotICAgICAgICBmcmFtZV9jb3VudGVyKys7Ci0gICAgICAgIHBlbmRpbmdfb3V0cHV0cysrOwot
ICAgICAgICBjb25zdCBpbnNlcnRfa2V5ZnJhbWUgPSAoZnJhbWVfY291bnRlciAlIDE1MCkgPT0g
MDsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGUodmFsdWUsIHsga2V5RnJhbWU6IGluc2VydF9rZXlm
cmFtZSB9KTsKLQotICAgICAgICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0ZyYW1l
KTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0YXJ0RGVjb2RpbmdBbmRSZW5k
ZXJpbmcoY252LCBoYW5kbGVGcmFtZSkgewotICAgICAgY29uc3QgaW5pdCA9IHsKLSAgICAgICAg
b3V0cHV0OiBoYW5kbGVGcmFtZSwKLSAgICAgICAgZXJyb3I6IChlKSA9PiB7Ci0gICAgICAgICAg
dGVzdEZhaWxlZCgiRmFpbGVkIHRvIGRlY29kZSBmcmFtZS4iKTsKLSAgICAgICAgICBmaW5pc2hU
ZXN0KCk7Ci0gICAgICAgIH0KLSAgICAgIH07Ci0KLSAgICAgIGNvbnN0IGNvbmZpZyA9IHsKLSAg
ICAgICAgY29kZWM6IGNvZGVjX3N0cmluZywKLSAgICAgICAgY29kZWRXaWR0aDogY252LndpZHRo
LAotICAgICAgICBjb2RlZEhlaWdodDogY252LmhlaWdodCwKLSAgICAgICAgYWNjZWxlcmF0aW9u
OiAiZGVueSIsCi0KLSAgICAgIH07Ci0KLSAgICAgIGxldCBkZWNvZGVyID0gbmV3IFZpZGVvRGVj
b2Rlcihpbml0KTsKLSAgICAgIGRlY29kZXIuY29uZmlndXJlKGNvbmZpZyk7Ci0gICAgICByZXR1
cm4gZGVjb2RlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpc0ZyYW1lUGl4ZWxNYXRjaGVkKGds
LCB0aF9wZXJfcGl4ZWwgPSBwaXhlbENvbXBhcmVUb2xlcmFuY2UpIHsKLSAgICAgIFdlYkdMVGVz
dFV0aWxzLmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgc3JjX3dpZHRoLCBzcmNfd2lkdGgsIGtU
ZXN0UGl4ZWwsICJzaG91bGQgYmUgb3JhbmdlIiwgcGl4ZWxDb21wYXJlVG9sZXJhbmNlKQotICAg
IH0KLQotICAgIGZ1bmN0aW9uIG1haW4oKSB7Ci0gICAgICBpZiAoISgiVmlkZW9FbmNvZGVyIiBp
biB3aW5kb3cpKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIldlYkNvZGVjcyBBUEkgaXMgbm90IHN1
cHBvcnRlZC4iKTsKLSAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICByZXR1cm47Ci0gICAg
ICB9Ci0gICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRzdCIpOwotCi0g
ICAgICBsZXQgd2ViZ2xfd2ViY29kZWNzX3Rlc3RfY29udGV4dCA9IHsKLSAgICAgICAgbWF4RnJh
bWVUZXN0ZWQ6IGtNYXhGcmFtZSwKLSAgICAgICAgZGlzcGxheWVkX2ZyYW1lOiAwLAotICAgICAg
ICBpc0ZyYW1lUGl4ZWxNYXRjaGVkOiBpc0ZyYW1lUGl4ZWxNYXRjaGVkLAotICAgICAgICB0ZXN0
RmFpbGVkOiB0ZXN0RmFpbGVkLAotICAgICAgICB0ZXN0UGFzc2VkOiB0ZXN0UGFzc2VkLAotICAg
ICAgICBmaW5pc2hUZXN0OiBmaW5pc2hUZXN0Ci0gICAgICB9OwotICAgICAgc2V0VGVzdE1vZGUo
d2ViZ2xfd2ViY29kZWNzX3Rlc3RfY29udGV4dCk7Ci0gICAgICBsZXQgaGFuZGxlRnJhbWUgPSBy
ZXF1ZXN0V2ViR0xWaWRlb0ZyYW1lSGFuZGxlcihjbnYpOwotICAgICAgaWYgKGhhbmRsZUZyYW1l
ID09PSBudWxsKSB7Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
ICAgfQotCi0gICAgICBzdGFydERyYXdpbmcoKTsKLSAgICAgIGxldCBkZWNvZGVyID0gc3RhcnRE
ZWNvZGluZ0FuZFJlbmRlcmluZyhjbnYsIGhhbmRsZUZyYW1lKTsKLSAgICAgIGNhcHR1cmVBbmRF
bmNvZGUoKGNodW5rKSA9PiB7Ci0gICAgICAgIGRlY29kZXIuZGVjb2RlKGNodW5rKTsKLSAgICAg
IH0pOwotICAgIH0KLQotICAgIGRvY3VtZW50LmJvZHkub25sb2FkID0gbWFpbjsKLSAgPC9zY3Jp
cHQ+Ci0KLTwvYm9keT4KLQorPCEtLQ0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuDQorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlU
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUNCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4NCistLT4NCisNCis8IURPQ1RZUEUgaHRtbD4NCis8aHRtbD4NCisNCis8aGVhZD4NCisgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4NCisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPg0KKyAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCisgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4NCisgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy90
ZXN0cy9vdXQtb2YtYm91bmRzLXRlc3QuanMiPjwvc2NyaXB0Pg0KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2V4dGVuc2lvbnMvcHJvcG9zYWxzL1dFQkdMX3dlYmNvZGVjc192aWRlb19mcmFt
ZS93ZWJnbF93ZWJjb2RlY3NfdmlkZW9fZnJhbWUuanMiPjwvc2NyaXB0Pg0KKyAgPHN0eWxlPg0K
KyAgICBjYW52YXMgew0KKyAgICAgIHBhZGRpbmc6IDEwcHg7DQorICAgICAgYmFja2dyb3VuZDog
Z29sZDsNCisgICAgfQ0KKw0KKyAgICBidXR0b24gew0KKyAgICAgIGJhY2tncm91bmQtY29sb3I6
ICM1NTU1NTU7DQorICAgICAgYm9yZGVyOiBub25lOw0KKyAgICAgIGNvbG9yOiB3aGl0ZTsNCisg
ICAgICBwYWRkaW5nOiAxNXB4IDMycHg7DQorICAgICAgd2lkdGg6IDE1MHB4Ow0KKyAgICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsNCisgICAgICBkaXNwbGF5OiBibG9jazsNCisgICAgICBmb250LXNp
emU6IDE2cHg7DQorICAgIH0NCisgIDwvc3R5bGU+DQorPC9oZWFkPg0KKw0KKzxib2R5Pg0KKyAg
PGNhbnZhcyBpZD0ic3JjIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCI+PC9jYW52YXM+DQorICA8
Y2FudmFzIGlkPSJkc3QiIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIj48L2NhbnZhcz4NCisgIDxw
IGlkPSJpbmZvIj48L3A+DQorICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+DQorICA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgIDxzY3JpcHQ+DQorICAgICJ1c2Ugc3RyaWN0IjsNCisg
ICAgZGVzY3JpcHRpb24oIlRlc3Qgb2YgaW1wb3J0aW5nIFZpZGVvZnJhbWUgZnJvbSBXZWJjb2Rl
Y3MgdG8gV2ViZ2wiKTsNCisNCisgICAgY29uc3Qga0lzUnVubmluZ1Rlc3QgPSB0cnVlOw0KKyAg
ICBjb25zdCBrTWF4RnJhbWUgPSAxMDsNCisgICAgY29uc3Qga1Rlc3RQaXhlbCA9IFsyNTUsIDEy
OCwgMCwgMjU1XTsNCisgICAgLy8gU3VtIG9mIHBpeGVsIGRpZmZlcmVuY2Ugb2YgUi9HL0IgY2hh
bm5lbC4gVXNlIHRvIGRlY2lkZSB3aGV0aGVyIGENCisgICAgLy8gcGl4ZWwgaXMgbWF0Y2hlZCB3
aXRoIGFub3RoZXIuDQorICAgIGNvbnN0IGNvZGVjX3N0cmluZyA9ICJ2cDA5LjAwLjUxLjA4LjAw
IjsNCisNCisgICAgbGV0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOw0KKyAgICBsZXQgY252ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNyYyIpOw0KKyAgICBsZXQgc3JjX3dpZHRoID0gY252Lndp
ZHRoOw0KKyAgICBsZXQgc3JjX2hlaWdodCA9IGNudi5oZWlnaHQ7DQorICAgIGxldCBzcmNfY29s
b3IgPSAicmdiYSgiICsga1Rlc3RQaXhlbFswXS50b1N0cmluZygpICsgIiwiICsga1Rlc3RQaXhl
bFsxXS50b1N0cmluZygpICsgIiwiDQorICAgICAgKyBrVGVzdFBpeGVsWzJdLnRvU3RyaW5nKCkg
KyAiLCIgKyBrVGVzdFBpeGVsWzNdLnRvU3RyaW5nKCkgKyAiKSI7DQorICAgIGxldCBmcmFtZV9j
b3VudGVyID0gMDsNCisgICAgbGV0IHBpeGVsQ29tcGFyZVRvbGVyYW5jZSA9IDU7DQorDQorICAg
IGZ1bmN0aW9uIGdldFF1ZXJ5VmFyaWFibGUodmFyaWFibGUpIHsNCisgICAgICB2YXIgcXVlcnkg
PSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTsNCisgICAgICB2YXIgdmFycyA9
IHF1ZXJ5LnNwbGl0KCImIik7DQorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YXJzLmxlbmd0
aDsgaSsrKSB7DQorICAgICAgICB2YXIgcGFpciA9IHZhcnNbaV0uc3BsaXQoIj0iKTsNCisgICAg
ICAgIGlmIChwYWlyWzBdID09IHZhcmlhYmxlKSB7IHJldHVybiBwYWlyWzFdOyB9DQorICAgICAg
fQ0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKw0KKyAgICBsZXQgdGggPSBwYXJzZUlu
dChnZXRRdWVyeVZhcmlhYmxlKCd0aHJlc2hvbGQnKSk7DQorICAgIGlmICghaXNOYU4odGgpKQ0K
KyAgICAgIHBpeGVsQ29tcGFyZVRvbGVyYW5jZSA9IHRoOw0KKw0KKyAgICBhc3luYyBmdW5jdGlv
biBzdGFydERyYXdpbmcoKSB7DQorICAgICAgbGV0IGNudiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzcmMiKTsNCisgICAgICB2YXIgY3R4ID0gY252LmdldENvbnRleHQoJzJkJywgeyBhbHBo
YTogZmFsc2UgfSk7DQorDQorICAgICAgY3R4LmZpbGxTdHlsZSA9IHNyY19jb2xvcjsNCisgICAg
ICBsZXQgZHJhd09uZUZyYW1lID0gZnVuY3Rpb24gKHRpbWUpIHsNCisgICAgICAgIGN0eC5maWxs
U3R5bGUgPSBzcmNfY29sb3I7DQorICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgc3JjX3dpZHRo
LCBzcmNfaGVpZ2h0KTsNCisgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJh
d09uZUZyYW1lKTsNCisgICAgICB9DQorICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShkcmF3T25lRnJhbWUpOw0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIGNhcHR1cmVBbmRFbmNv
ZGUocHJvY2Vzc0NodW5rKSB7DQorICAgICAgbGV0IGNudiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzcmMiKTsNCisgICAgICBsZXQgZnBzID0gNjA7DQorICAgICAgbGV0IHBlbmRpbmdfb3V0
cHV0cyA9IDA7DQorICAgICAgbGV0IHN0cmVhbSA9IGNudi5jYXB0dXJlU3RyZWFtKGZwcyk7DQor
ICAgICAgbGV0IHByb2Nlc3NvciA9IG5ldyBNZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yKHN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpWzBdKTsNCisNCisgICAgICBjb25zdCBpbml0ID0gew0KKyAgICAg
ICAgb3V0cHV0OiAoY2h1bmspID0+IHsNCisgICAgICAgICAgdGVzdFBhc3NlZCgiRW5jb2RlIGZy
YW1lIHN1Y2Nlc3NmdWxseS4iKTsNCisgICAgICAgICAgcGVuZGluZ19vdXRwdXRzLS07DQorICAg
ICAgICAgIHByb2Nlc3NDaHVuayhjaHVuayk7DQorICAgICAgICB9LA0KKyAgICAgICAgZXJyb3I6
IChlKSA9PiB7DQorICAgICAgICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBlbmNvZGUgZnJhbWUu
Iik7DQorICAgICAgICAgIGZpbmlzaFRlc3QoKTsNCisgICAgICAgICAgdnRyLnN0b3AoKTsNCisg
ICAgICAgIH0NCisgICAgICB9Ow0KKw0KKyAgICAgIGNvbnN0IGNvbmZpZyA9IHsNCisgICAgICAg
IGNvZGVjOiBjb2RlY19zdHJpbmcsDQorICAgICAgICB3aWR0aDogY252LndpZHRoLA0KKyAgICAg
ICAgaGVpZ2h0OiBjbnYuaGVpZ2h0LA0KKyAgICAgICAgYml0cmF0ZTogMTBlNiwNCisgICAgICAg
IGZyYW1lcmF0ZTogZnBzLA0KKyAgICAgIH07DQorDQorICAgICAgbGV0IGVuY29kZXIgPSBuZXcg
VmlkZW9FbmNvZGVyKGluaXQpOw0KKyAgICAgIGVuY29kZXIuY29uZmlndXJlKGNvbmZpZyk7DQor
DQorICAgICAgY29uc3QgZnJhbWVfcmVhZGVyID0gcHJvY2Vzc29yLnJlYWRhYmxlLmdldFJlYWRl
cigpOw0KKyAgICAgIGZyYW1lX3JlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiBwcm9jZXNzRnJh
bWUoe2RvbmUsIHZhbHVlfSkgew0KKyAgICAgICAgaWYgKGRvbmUpDQorICAgICAgICAgIHJldHVy
bjsNCisNCisgICAgICAgIGlmIChwZW5kaW5nX291dHB1dHMgPiAzMCkgew0KKyAgICAgICAgICBj
b25zb2xlLmxvZygiZHJvcCB0aGlzIGZyYW1lIik7DQorICAgICAgICAgIC8vIFRvbyBtYW55IGZy
YW1lcyBpbiBmbGlnaHQsIGVuY29kZXIgaXMgb3ZlcndoZWxtZWQNCisgICAgICAgICAgLy8gbGV0
J3MgZHJvcCB0aGlzIGZyYW1lLg0KKyAgICAgICAgICB2YWx1ZS5jbG9zZSgpOw0KKyAgICAgICAg
ICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0ZyYW1lKTsNCisgICAgICAgICAgcmV0
dXJuOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgaWYoZnJhbWVfY291bnRlciA9PSBrTWF4RnJh
bWUpIHsNCisgICAgICAgICAgZnJhbWVfcmVhZGVyLnJlbGVhc2VMb2NrKCk7DQorICAgICAgICAg
IHByb2Nlc3Nvci5yZWFkYWJsZS5jYW5jZWwoKTsNCisgICAgICAgICAgdmFsdWUuY2xvc2UoKTsN
CisgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgZnJhbWVfY291bnRl
cisrOw0KKyAgICAgICAgcGVuZGluZ19vdXRwdXRzKys7DQorICAgICAgICBjb25zdCBpbnNlcnRf
a2V5ZnJhbWUgPSAoZnJhbWVfY291bnRlciAlIDE1MCkgPT0gMDsNCisgICAgICAgIGVuY29kZXIu
ZW5jb2RlKHZhbHVlLCB7IGtleUZyYW1lOiBpbnNlcnRfa2V5ZnJhbWUgfSk7DQorDQorICAgICAg
ICBmcmFtZV9yZWFkZXIucmVhZCgpLnRoZW4ocHJvY2Vzc0ZyYW1lKTsNCisgICAgICB9KTsNCisg
ICAgfQ0KKw0KKyAgICBmdW5jdGlvbiBzdGFydERlY29kaW5nQW5kUmVuZGVyaW5nKGNudiwgaGFu
ZGxlRnJhbWUpIHsNCisgICAgICBjb25zdCBpbml0ID0gew0KKyAgICAgICAgb3V0cHV0OiBoYW5k
bGVGcmFtZSwNCisgICAgICAgIGVycm9yOiAoZSkgPT4gew0KKyAgICAgICAgICB0ZXN0RmFpbGVk
KCJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lLiIpOw0KKyAgICAgICAgICBmaW5pc2hUZXN0KCk7DQor
ICAgICAgICB9DQorICAgICAgfTsNCisNCisgICAgICBjb25zdCBjb25maWcgPSB7DQorICAgICAg
ICBjb2RlYzogY29kZWNfc3RyaW5nLA0KKyAgICAgICAgY29kZWRXaWR0aDogY252LndpZHRoLA0K
KyAgICAgICAgY29kZWRIZWlnaHQ6IGNudi5oZWlnaHQsDQorICAgICAgICBhY2NlbGVyYXRpb246
ICJkZW55IiwNCisNCisgICAgICB9Ow0KKw0KKyAgICAgIGxldCBkZWNvZGVyID0gbmV3IFZpZGVv
RGVjb2Rlcihpbml0KTsNCisgICAgICBkZWNvZGVyLmNvbmZpZ3VyZShjb25maWcpOw0KKyAgICAg
IHJldHVybiBkZWNvZGVyOw0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIGlzRnJhbWVQaXhlbE1h
dGNoZWQoZ2wsIHRoX3Blcl9waXhlbCA9IHBpeGVsQ29tcGFyZVRvbGVyYW5jZSkgew0KKyAgICAg
IFdlYkdMVGVzdFV0aWxzLmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgc3JjX3dpZHRoLCBzcmNf
d2lkdGgsIGtUZXN0UGl4ZWwsICJzaG91bGQgYmUgb3JhbmdlIiwgcGl4ZWxDb21wYXJlVG9sZXJh
bmNlKQ0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIG1haW4oKSB7DQorICAgICAgaWYgKCEoIlZp
ZGVvRW5jb2RlciIgaW4gd2luZG93KSkgew0KKyAgICAgICAgdGVzdFBhc3NlZCgiV2ViQ29kZWNz
IEFQSSBpcyBub3Qgc3VwcG9ydGVkLiIpOw0KKyAgICAgICAgZmluaXNoVGVzdCgpOw0KKyAgICAg
ICAgcmV0dXJuOw0KKyAgICAgIH0NCisgICAgICBsZXQgY252ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRzdCIpOw0KKw0KKyAgICAgIGxldCB3ZWJnbF93ZWJjb2RlY3NfdGVzdF9jb250ZXh0
ID0gew0KKyAgICAgICAgbWF4RnJhbWVUZXN0ZWQ6IGtNYXhGcmFtZSwNCisgICAgICAgIGRpc3Bs
YXllZF9mcmFtZTogMCwNCisgICAgICAgIGlzRnJhbWVQaXhlbE1hdGNoZWQ6IGlzRnJhbWVQaXhl
bE1hdGNoZWQsDQorICAgICAgICB0ZXN0RmFpbGVkOiB0ZXN0RmFpbGVkLA0KKyAgICAgICAgdGVz
dFBhc3NlZDogdGVzdFBhc3NlZCwNCisgICAgICAgIGZpbmlzaFRlc3Q6IGZpbmlzaFRlc3QNCisg
ICAgICB9Ow0KKyAgICAgIHNldFRlc3RNb2RlKHdlYmdsX3dlYmNvZGVjc190ZXN0X2NvbnRleHQp
Ow0KKyAgICAgIGxldCBoYW5kbGVGcmFtZSA9IHJlcXVlc3RXZWJHTFZpZGVvRnJhbWVIYW5kbGVy
KGNudik7DQorICAgICAgaWYgKGhhbmRsZUZyYW1lID09PSBudWxsKSB7DQorICAgICAgICBmaW5p
c2hUZXN0KCk7DQorICAgICAgICByZXR1cm47DQorICAgICAgfQ0KKw0KKyAgICAgIHN0YXJ0RHJh
d2luZygpOw0KKyAgICAgIGxldCBkZWNvZGVyID0gc3RhcnREZWNvZGluZ0FuZFJlbmRlcmluZyhj
bnYsIGhhbmRsZUZyYW1lKTsNCisgICAgICBjYXB0dXJlQW5kRW5jb2RlKChjaHVuaykgPT4gew0K
KyAgICAgICAgZGVjb2Rlci5kZWNvZGUoY2h1bmspOw0KKyAgICAgIH0pOw0KKyAgICB9DQorDQor
ICAgIGRvY3VtZW50LmJvZHkub25sb2FkID0gbWFpbjsNCisgIDwvc2NyaXB0Pg0KKw0KKzwvYm9k
eT4NCisNCiA8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
Z2xzbC9idWdzL2NoYXJhY3Rlci1zZXQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvYnVncy9jaGFyYWN0ZXItc2V0Lmh0
bWwKaW5kZXggMWJhODU0NjEzYzZhZjJmYzlmY2Q1YjdiZjkzZTY4ODBiZWE0OGZhZS4uNmQ2ZmNh
NWY4OTlmMzhkNDUwZDU1OGM4ZmZiYjc0NTk3NjA2NzQ0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9idWdz
L2NoYXJhY3Rlci1zZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2J1Z3MvY2hhcmFjdGVyLXNldC5odG1sCkBA
IC0xMTEsNyArMTExLDUgQEAgZGVidWcoIiIpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CiAKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci0KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29uc3Ry
dWN0b3JzL2dsc2wtY29uc3RydWN0LXZlYy1tYXQtaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2dsc2wvY29uc3RydWN0
b3JzL2dsc2wtY29uc3RydWN0LXZlYy1tYXQtaW5kZXguaHRtbAppbmRleCA4YTlmYmViYzU5NDVi
NTI5MTI3NmU3NGI5YTRjYzM0YWRhYjBhZmI1Li4wODRkNTMyZjhhNjRjNWVhOWE3ODZkZDU5ZmI5
NzQ5Zjk5Zjk5M2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9nbHNsL2NvbnN0cnVjdG9ycy9nbHNsLWNvbnN0cnVj
dC12ZWMtbWF0LWluZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZ2xzbC9jb25zdHJ1Y3RvcnMvZ2xzbC1jb25zdHJ1
Y3QtdmVjLW1hdC1pbmRleC5odG1sCkBAIC00OSw2ICs0OSw1IEBAIHZvaWQgbWFpbigpCiBHTFNM
Q29uZm9ybWFuY2VUZXN0ZXIucnVuUmVuZGVyVGVzdCgpOwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5j
dGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL21vcmUvZnVuY3Rpb25zL3JlYWRQaXhlbHNC
YWRBcmdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkMTU1ZWQ2MWJmNTAx
YmRkM2U2ZDc2ZTBhMDMyZmU0MzFiMDQ2OWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvcmVhZFBpeGVsc0JhZEFyZ3MuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgotLS0+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
IiBocmVmPSIuLi91bml0LmNzcyIgLz4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNj
cmlwdCIgc3JjPSIuLi91bml0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0iYXBwbGljYXRp
b24vamF2YXNjcmlwdCIgc3JjPSIuLi91dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0i
YXBwbGljYXRpb24vamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD48Ym9keT4KLTxjYW52YXMgaWQ9ImdsIiB3aWR0aD0iMTYi
IGhlaWdodD0iMTYiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjEyOCIgaGVpZ2h0
PSIxMjgiPjwvY2FudmFzPgotPGltZyBpZD0iaSI+Ci08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L2phdmFzY3JpcHQiPgotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGRlZmF1bHRJbWdV
cmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNlcy9vcGVuZ2xf
bG9nby5qcGciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy9vcGVuZ2xf
bG9nby5qcGciOwotCi1UZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2ZW50cyB0aGUgdGVz
dCBmcm9tIHJ1bm5pbmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAotCi1UZXN0cy5zdGFydFVu
aXQgPSBmdW5jdGlvbiAoKSB7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZ2wnKTsKLSAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2FudmFzKSk7
Ci0gIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy50ZXN0UmVhZFBpeGVscyA9IGZ1bmN0aW9uKGds
KSB7Ci0gIC8vIHdlIGNhbid0IGtub3cgaWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ug
b2YgbmVnYXRpdmUgd2lkdGgKLSAgLy8gb3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24n
dCBtYXRjaCB0aGUgZGltZW5zaW9ucy4KLSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJuZWdhdGl2
ZSB3aWR0aCIsCi0gICAgICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLC0xLDEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCkpO30pOwot
ICBhc3NlcnRTb21lR0xFcnJvcihnbCwgICJuZWdhdGl2ZSBoZWlnaHQiLAotICAgICAgZnVuY3Rp
b24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwxLC0xLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAot
ICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNzZXJ0T2soIm5lZ2F0aXZlIHgi
LAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKC0xLDAsMSwxLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAgYXNzZXJ0
T2soIm5lZ2F0aXZlIHkiLAotICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsLTEsMSwx
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQp
KTt9KTsKLSAgYXNzZXJ0T2soImhlaWdodCA+IGJhY2tidWZmZXIgaGVpZ2h0IiwKLSAgICAgIGZ1
bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMTYsMTcsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMTYqMTcqNCkpO30pOwotICBhc3NlcnRPaygi
d2lkdGggPiBiYWNrYnVmZmVyIHdpZHRoIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVs
cygwLDAsMTcsMTYsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVp
bnQ4QXJyYXkoMTcqMTYqNCkpO30pOwotICBhc3NlcnRPaygid2lkdGgsIGhlaWdodCA9IDAiLAot
ICAgICAgZnVuY3Rpb24oKXtnbC5yZWFkUGl4ZWxzKDAsMCwwLDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsCi0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoMCkpO30pOwotICAvLyB3ZSBjYW4n
dCBrbm93IGlmIHRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIG9mIG5lZ2F0aXZlIHdpZHRo
Ci0gIC8vIG9yIGJlY2F1c2UgdGhlIGJ1ZmZlciBzaXplIGRvZXNuJ3QgbWF0Y2ggdGhlIGRpbWVu
c2lvbnMuCi0gIGFzc2VydFNvbWVHTEVycm9yKGdsLCAiYmFkIGZvcm1hdCIsCi0gICAgICBmdW5j
dGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuRkxPQVQsIGdsLlVOU0lHTkVEX0JZVEUs
Ci0gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoNCo0KSk7fSk7Ci0gIC8vIHdlIGNhbid0IGtub3cg
aWYgdGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2Ugb2YgbmVnYXRpdmUgd2lkdGgKLSAgLy8g
b3IgYmVjYXVzZSB0aGUgYnVmZmVyIHNpemUgZG9lc24ndCBtYXRjaCB0aGUgZGltZW5zaW9ucy4K
LSAgYXNzZXJ0U29tZUdMRXJyb3IoZ2wsICJiYWQgdHlwZSIsCi0gICAgICBmdW5jdGlvbigpe2ds
LnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuQUxQSEEsIGdsLkZMT0FULAotICAgICAgICAgIG5ldyBV
aW50OEFycmF5KDEqNCkpO30pOwotfQotCi1UZXN0cy50ZXN0UmVhZFBpeGVsc1NPUElNRyA9IGZ1
bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpIik7
Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpOwotICAgIC8vIFNPUCBmYWlsdXJlCi0gICAgYXNzZXJ0VGhyb3dO
b0dMRXJyb3IoZ2wsICJ0aHJvdyBiZWNhdXNlIGltZyBpcyBmcm9tIGFub3RoZXIgZG9tYWluIiwK
LSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpO30pOwotICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIG51bGwpOwotICAgIGFzc2VydE9rKCJjYW52YXMgc3RpbGwgb3JpZ2lu
LWNsZWFuIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wucmVhZFBpeGVscygwLDAsMSwxLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgIG5ldyBVaW50OEFycmF5KDQpKTt9KTsKLSAg
ICBnbC5kZWxldGVUZXh0dXJlKHRleCk7Ci19Ci1UZXN0cy50ZXN0UmVhZFBpeGVsc1NPUENhbnZh
cyA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJpIik7Ci0gICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpOwotICAgIGMu
Z2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAgICBhc3NlcnRGYWlsKCJj
YW52YXMgdGhyb3dzIGJlY2F1c2Ugbm90IG9yaWdpbiBjbGVhbiIsCi0gICAgICBmdW5jdGlvbigp
e2MuZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMCwwLDEsMSk7fSk7Ci0gICAgdmFyIHRl
eCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJE
LCB0ZXgpOwotICAgIC8vIFNPUCBmYWlsdXJlCi0gICAgYXNzZXJ0VGhyb3dOb0dMRXJyb3IoZ2ws
ICJ0aHJvdyBiZWNhdXNlIGNhbnZhcyBpcyBub3Qgb3JpZ2luIGNsZWFuIiwKLSAgICAgIGZ1bmN0
aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJE
LCBudWxsKTsKLSAgICBhc3NlcnRPaygiY2FudmFzIHN0aWxsIG9yaWdpbi1jbGVhbiIsCi0gICAg
ICBmdW5jdGlvbigpe2dsLnJlYWRQaXhlbHMoMCwwLDEsMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwKLSAgICAgICAgICBuZXcgVWludDhBcnJheSg0KSk7fSk7Ci0gICAgZ2wuZGVsZXRlVGV4
dHVyZSh0ZXgpOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24oZ2wpIHsKLX07Ci0KLShh
c3luYyBmdW5jdGlvbigpIHsKLSAgY29uc3QgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2knKTsKLSAgdHJ5IHsKLSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9z
c09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgfSBjYXRj
aCAoZSkgewotICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0g
ICAgZmluaXNoVGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbml0VGVzdHMoKTsKLX0pKCk7
Ci08L3NjcmlwdD4KLTwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90
ZXhJbWFnZTJESFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4SW1hZ2UyREhUTUwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNjNzhkMTYzNTc1NjVmZTY1MzhlZWJmZjlm
N2YxMzE0YWUzZTkxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0t
LT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQu
Y3NzIiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3Vu
aXQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBz
cmM9Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+
Ci1hdHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlpbmcg
dmVjNCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHRleENvb3JkMCA9IHZlYzQoVGV4
LnMsIDEuMC1UZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgs
IDEuMCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWhmbGlwLXZlcnQiIHR5
cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0
ZSB2ZWMyIFRleDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0g
ICAgdGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xf
UG9zaXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0i
aWRlbnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKLQotdmFyeWluZyB2ZWM0
IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdmVjNCBjID0gdGV4dHVyZTJEKFRleHR1
cmUsIHRleENvb3JkMC5zdCk7Ci0gICAgZ2xfRnJhZ0NvbG9yID0gYzsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08Y2FudmFzIGlkPSJnbCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYi
PjwvY2FudmFzPgotPGNhbnZhcyBpZD0iYyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiPjwvY2Fu
dmFzPgotPGltZyBpZD0iaSIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiICBzcmM9ImRhdGE6aW1h
Z2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUUFBQUFFQUNBWUFBQUJjY3Fo
bUFBQVRWRWxFUVZSNG5PM2QrVlBVZDU3SGNmMmI5azlZK3o0NCtxSzdPWm9HRlZBNVZmQkd6YWg5
Y3hwTnpHRU9vUnVhNWxCRXVlL0RLNGZaN01hcG1TbTNNbHNodTh4T2RDcERKdDN2L2FFQkFVSEFP
TUc0ejBmVjUzZnFVL1Y2ZmQ3ZlQvZTMyYkVEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3T3ZCa2Fy
N2wrMytHd0Jzazh4VXJUMHJUYjh2eDJRNDVqYW5sdTdZc1dQbnNnWGdUZVl3YWs4NVUzWHY1WmlN
MytYYlVoL2wyZElDQmM2MDgwV1oxdXI5MmJhU0hSUUI4R2F5R2RVV3UxSHpvU05GTytaTTFmMmNi
VExNNTFsVDV3b2M1cmtET2JiWi9WbTJTRW0yM1Z2c3lqaFY1bkpRQnNDYnhHWlFWdG1ONnA0TW8v
WVBkcU5HSEtsYXlVclhKOXpXbEVTaDB4SXZ6c21ZTDNIWjU0cHpNbTZWdVJ5Uk1wZlRXK3B5VUFi
QW04Qm1WTlZuR05UVGRxUDZ2ek9NR3JHbmFNU1pxcE5zazE3eWJLbFM2RFRML2l4Ym90UmxqNWZs
T3ViTDNJNjVNcGZqVnJuYkVhbFlLSU5TbDMzNXZRR0Ezd0tiVVcyeEdkV1JES1A2Nnd5aldoWUx3
SkdpRldlYVRySk5CbkZiVTJTUDNTVDdzNnhTbW11WGNyY3pVZTUyeHN0ekhmUGxic2RjdWR0NXF5
elgzbEtXbHhrc3pYR2VLOG14bnl6SnlTamVRUmtBcnplYlFWbGxNNnA3YlViMTQ5VUY0RWpWU21h
YVRyTFM5ZUt5cE1nZWU3b2N5TFpKbWRzaEZYbVpVcEhuWEZFR0IvT3pKc3JkanFFeXQvTm1XYTQ5
WEpidDlKYTZNazRWdTdoRUJGNUxOcjJxM21aUXo5Z002dTlYRkVCcXNnQ2NhVHJKWEpnRWNpMHBz
dGRoa3YzWk5pbk5UWmJBb2Z3c09aU2ZKUWZ6TXFVOHo1a29kenNTWmJtT2VJWGIrWFc1MnpGYTVu
TGNLblBaSTJVTGw0akZmS0lBdkI3TU9yWEZabEJIYkFiMTF6YWora21HVWJOdUFXU202NWRLWUhk
R21oUmxXcVE4enlGSENuTGsrTDVjT1Y2VUswY0tYVks1SjFzTzVtZEtoZHNwWmF2S29EVFgwVlBp
Y2lUTElIdEZHVkFJd0svTllsQlcyZlRxWHB0Qi9kaG1TSjcrTHlxQXJIUzk1SmlUSlZEZ05FbGxR
Wlo0S2d1bHJycFU2cXRMSlhCc3Y1d3QzeU1uOXJ2bGFJRkxEaTh2ZzF4SDRtQis1cCtXbDBGcGpy
MmxKTWNSTE02eW55dk96amh4SUl0N0ErQlhZOUdyNnEwTDQvOVNBYVJveEw3dy9MOVdBV1NiREpK
clRaRmlkNFo0anhaSlUvMXh1ZkhoT2VtK2VrNmlsMC9MQjc0cWFUeFRKb0dqKytWczJSNDV2ajlY
amhUa3lPSGRDNDhKQzJWd2FIZm1ueXJjem4rdmNEc215bkx0UXlVNUdUZUxjekxDcFRrMlQzR1c3
Vmh4VnNhZTdkNGY0STFsMXFrdFZvTTZZak9vdnJZYTFEOHNGb0I5V1FFNDE1a0E4dTFwY3ZSQWpu
d1VPaUxETFFHNTE5MG85MjQyeWxSSG5ReUcvWEx6Nm5tSlhxcVdEM3lWMG5DNlZQeEg5OG5ac3Qx
eWZGK3VIQzEwU2RYZWJEbVVueXlEcW9Mczd3N2xaMzViN25iOHNjeHQvN2RTbDMya0pDZWpxeVFu
NDBwSlRrYlpEaVlDNE5XemFKVlZWcjJxMTJaUVBiWWExSDlmdXdCMFN3V1FsYTZYTEZPeUFBb3lU
ZkxXNFQzU2Z1V00zTDNSSUEvN0w4dkQvc3Z5WmU4bCtlelcyM0t2dTFFbU8ycGxvTmtuM1ZmUFNl
dmIxZksrdDFJYXo1Uko3Y2xpOFIwcGt0T2wrWEtzS0ZrR0J4ZktvSEp2MWw4UDVtZit1U0xQOGZ2
eVhNZE1tZHNSS1hjNXFvdGRHUVhidlYvQUc4V2lWOVZiOWFvWnExNDFhek9veFdiY1hBSGtXbE9r
SkM5RGFrOFh5NjFQTDhpRG5vdExCYkJVQkgyWDVZdmJsK1JCejBXNWU2TkJKdHBycEwvWkp6Yy9P
aS9YUDNoTFdpNmVrdmM4aDZXdXVrUzhWYy9LWVBFQzhXaGh6cE9xZ3V6dkt2ZG1mWFY0ZDJiM3dm
ek05dy9sWlRFTkFLK0NXYWV3V0hXcWlFMnYrdHFxVi8ydzJRTElOaGtrUDJOaC9LODlJbU50SWZt
aTk5S3o4UGNsMTVkTDY1SjgwWHRKUHIvMXR0eS8yU2gzdXh2a3p2VjZHWStGcE8rYVY2NS84RHVK
WER3cFZ6eUhwTzdVUWhtVTVNdlJJcGRVN2MyUlE3dXo1TVIrOXgrT0ZibnVIaTNNaVZRVnVLb1A3
ODR1MnU3OUEzN1RMRnBsbFZXbjZyWHFWWSt0ZXRXUEd4YkFzZ3ZBdlU2VHZIVm90OFN1bkpZN04r
cmx5NzYxZy85bGIzSjlzV3g5ZnZ1U2ZINzdiWG5RYzFIdWRUZklURmVkakxXRnBQZWFSN28rZUV2
Q2pTZmx5b1ZEVWxkZEtzSGpCK1RDNFVJNVZad25WUVU1aWJjcTlueDF1alMvNThRQjk5WHFZbmY1
RHFZQjRPVllkTS9HZjZ0ZTlZL2s4Ly9HQmVDeUdLWEVuU0UxMVFlazU1UHpjdjltNDhyUXJ4UDhM
MjVma2k5dXZ5MmZyMXFmM2JxWW5BeHVOTWgwWjUyTVJJTnkrMU9QWFAvd2Q5Sis1WXcwMTUrUWQ4
NGZsSnFUeFhMaGNJR2NMTTc3K1VoQnp0OHVWQmEybnF2Y2UvWnN4WjZ5N2Q1TDREZGxjZnkzNkZW
ZlcvU3FINndHbGF3dWdNV3ZBVHZUbGhXQXlTQjVHYWx5ZEgrT2ZGUnpSRWFqUWZuODF0dnJoLzZG
d1Y5Y0YrV3pXeGZsd2EyTGNyL25vdHpyYnBTWjYvVXkxVlVua3gyMU10d1NrSjVQTGtqSGUyZWxx
ZjY0WEQ1M1VFSW5EaVF1SEM2WXJ5N09tejFXNUhyWStGYkY0UjFNQThEbVdMVEtLc3V5OGQ5cVVM
K3dBSlovQzNDUE0xM09IdHd0YmUrZWx1bnI5ZkxGdXNGL1B2U2YzMW83K0E5Nm5xMzdQUmZsZmsr
ajNMK1ovRmp4N28wR21lNnFrNG4yR2hscThVdlB4K2VsL2NvWnVWWjNYQzZmcS9pNTdsVHgzMnBP
SG5nVU9sVWMvalI0bEV0Q1lDTVduYXJlb2xmTldQU3FXYXRCOWRPYUJiREdsNEJjRnFNVXUyMFNP
blZBYm41OFR1NTJOMjdxdFA5OGc5QS9XQXo5UXZBWDE3M0ZFdWh1a0x2ZERjbkpvTE5XeG1NMU1o
anh5ODJQemtubisyY1NzWGRQejRjYlQ4eCtHS2g4K0ZId1NPME9TZ0JZbTFtbnNKaDFxb2hGcjF3
WS81WHhad1d3L3RlQXM5S1R2d3R3WkgrMlhBMVZ5WEJyVUI3MFhGei90Rjluek45SzhPOTFOOGk5
aGZBdnJqczNHdVRPalhxWlhuaEVHRyt2a2RGb1VBYkQvcDk3UGo3L3Q1NnI1Ny9wdStiNXBPWGQ2
cVBidmRmQWE4ZWkzVlZsMGFsNkxYcmxZNHRPK2FORnIwcHN0Z0QyT05MbHpNSGRFbjJuV3FZNjYr
U3pseHp6SHl3Yjg1OEwvVHJCdjN2aldmZ1gxOHoxNUpydXFwT3B6bHFaYUE4bHhtS2h2NDlHZzMv
b0QvcyszdTY5Qmw0N0ZwMmkzcUpWelZoMHlsbXJUdm1UVlorOEFGejVIc0R6QlpCak5rcHhyazJD
cHc1STkwZm41TTZOaGhlZTlsc09mdmZtZzMvbityUHd6MXl2azVtdU9wbGVXSk1kdGZISmpwcnZK
anRxS0FCZ3VlVDRyNGlZZGNxdnpicGRQMWoweXZqcUFyQ3Y5U0pRdWw3Y3RsU3AycGN0SHdZclph
Z2xJUGR2TnE1LzJyL2dZbTlUd2IreDllQlBkOVhKVkhJU21KL3FyUDFtdXJPR1J3QmdPWk4yVjVW
RnAreTFhQmZHZjUweXNWUUFhM3dIWUxFQXN0TDFzdHVSTHFjcjhxWDE4aW1aN0tpVkJ6MFhYeGo2
alovdk54bjg2eHNIUC9rSVVDZFRuWFh4NmM3YXYweDExUFJzOTE0RHJ4MlRUbEZ2MGlwbXpEcmxy
RVduL01taVY4bG1DaURiYkpBRHVUWUpudHd2TjY3K1RtYXUxeWREdm1ib3QzNng5eXo0OVM4Wi9O
ckZOVC9kVmZ2N3FjNjZrOXU5MThCcnhheGVQZjRyNGhzVmdIUGg5d0J6clNsU1ZaUXRId1FxWlRE
aWw3dmRqVnM3N2JjWS9KbXRCMSttT21zVGt4MjFUNmE2YWtlMmU2K0IxNDVKdTZ2S3BGUDJtclRL
eDJidHMvRi84VnVBTHlxQTNmWTBPVjJlTHkyWFRzcEVlNDNjZjhHei9UWUVYeVk3YW1XeW95WSsx
Vkh6L1ZSblhmTjI3elh3MmxrYS83WEtXWXRXK1pORnA1VE5GRUMyeVNEN1hWWUpuTmduWFIrK0pk
TmRkWnMrN1grZDROZktaRWVOVEhiVXpFOTIxRHlhNVBJUFdDbE5yYkNZdGNueDM2VGQ5WU5acDRo
YmRLcU5DMkJoL0s4c3pKTDMvWWRsSU95VE96Y2F0dnd4M3NZMytyOG8rRExaRVVwTXROYzhtZWhn
L0FlZVkxTHZxakpwbGIwbWplS3hXYXY0MGF4VkpsWVh3RnB2QW1hbTZTVGZuaWJWWlhrU2VmdWtq
TVZDY3JkN0V5UCtlcWY5bG9KZnUySHdKenBxWktLOVJzYmJRL0hKOXREM2s1MDFqUC9BYWlhTm90
NmtTWTcvWnEzaUo3Tk9LWXNYZ0M4cWdDeVRRZmJsV01WL2ZKOTBmbkJXSmp0clY0ejNXem50bjd2
UnYvNTg2TGNhL0djck5EL1JIbm8wMmM3NEQ2eVFwbFpZVEZwRnhLUlZMSTMvS3d2ZytSZUI3Q25K
M3dGd1dWTGtjR0dXdk9jL0xQM05YcG01WHYvTFQvdE5Cbjl5RThFZlQ0WS9NUjRMUFJsdkR6SCtB
NnVaTllwS2szWlhiL3JDK0cvU0toS2JMWUM4akRRNVZaWW40WXNuWkxRdEtIZHViQzcwbXgzemYw
bnd4OXRETWg0THlWZ3NGQitQQmI4ZmIyZjhCNTZUcmxIVXAyc1YweWFOWW1uODMwd0JaS1hyWlYr
MlJYekg5MG5IKzJkbG9xTW1XUUN2NExSLytlQ0hsb0svRUg0Wmp3WG54MlBCUjJQdFFjWi9ZRG1U
UnBtYXJsWTBtVFM3dmtyVEtQNXEwaXArTnV1VVl0bWdBQnlwV25GWmpIS29JRk91ZUE5Slg1Tkhw
cnZxTmgzNnpaNzJ2eVQ0QytGUGpMWUZuNHpIZ296L3dHb216YTdkNlpwZE1aTkc4WTFKbzNoaTFp
NDgvMitpQVBJeVV1VmtxVnVhR2svSVNEUW9NOWRmM1dtL012ZzFXdzcrV0N3a1kyMUJHVzBMeGtm
Ymd0K1B4VUtNLzhCcWFacGR1OVBVaWlhVFJ2R1ZTYXY0eTlJbkFCc1VRR2E2WG9xeUxlSTlWaVR0
NzUyUjhmYlFxc0MvNHROK2k4RWZhd3ZLYURRb0k5SEEvR2hiOEp1eEtPTS84QnlUNWw5VDA5U0tR
THBHTVdUU0t2N1RyRlU4TmV1VWllVUZZRnYxWXlDT1ZLM2ttSlBqLzd2ZWc5Sjd6U05UbmJXdjZM
Ui9CY0ZmV0NQUlFId2tHdmpMU0RUQW0zL0FldExWeWp5VFJ2bU9TYXVZTk9zVTM1cDF5bjlzVkFC
dVc2cWNMTTJWYXczSFpiZzFJTk5kcithMFgvc3ovSzBGZnpRYWxORm9JSG42UndPL0gya0w4dVlm
OENJbXphNUNrMjdYZTJhdGNzcWlVOGJYTFlBVWpXU202NlF3eXl6ZVk0VVN1M0pheG1LaHRVUC9p
MC83bWhXaFh4SDh0dldDSDVTUmFFQkdvNEhFU0t2L3lXaHJnTXMvWURQU2Rjb2lzMWJ4dmtXbmZH
clJLK05yRllBOVJTdlpab01jM091VWR6d0g1ZmExQ3pMUlVmTlBQZTNIMXpqdDF3dis0aHB1RGNS
SG9vSHZSNklCTHYrQXpUTHJsRVZtbmZLaFJhZDhhbDN6NThDMDRyYWx5SW1TWExuV2NFeUdXdjB5
MlZrclUxM1BoLzZsVHZzTmdqKzZRZkJIV2dNeTNCcVE0VmIvL0hCcjRORkkxTS9sSDdBVkZyMHFZ
TkdySGxyMXFxYzJneXErL0UxQVo1cE9Dck5NNGpsYUlHMVhUc3RvVy9DZmQ5cS9WUEFETXR6cVR3
eTMrSjhNTS80REwyWG5paEl3cXVJMm8xcnNLUnJKTmhta1lxOURMbCtva0Z1Zm5KZng5cHBub1Yv
dmMvdXRudmF4TmNiOFRRVS9JTU90ZmhscThjZUhXL3pmRDBjREY3WjdJNEhmcXAwMnZTcGcwNnNl
Mmd6cXB4bEdUZHllb3BGY2E0b2NMM0hKcC9WSFpURGlrNG1PelkzNEwzM2FiKzdFWHd6K3d2TE5E
N2NFYm8yMEJqSzNleE9CMzdLZE5xTTZZRE9vSDJZWTFVK2RhYnA0UWFaSkxoelpLOUYzcTJVa0dw
Q0pEVS83MEtzNzdUY012bCtHV255SndZanZ5VkJMNEozdDNqemdUYkRUWmxRSE1veWFoOWxtL2RP
S1BjNzRwZlBsMHZQeE9SbUxoWDZkMDM1VHdWOVlFVjk4c01VL05SRG04Zzk0VlhiYVU3VUJsOFg0
OEVTSjYra245VWQrSGdoN0V1UHRvVmR6MnJkdEp2UXZEdjVneExld3ZIOGNpSGc3aGxvQ2x1M2VO
T0JOc3ROdFN3MzRqeGM5YkgybmVuYW94VGMzM2g2YUg0dUY0dVB0d2NSNDhuL3UvUk5PKzgwRzN5
ZERFZC8vRElSOTl3YkN2c2J0M2l6Z1RiVHphcWd5MFBQeHVmQklOQkFiYnc4OUdvK0Zac2Rqb2Ju
eDl0RGNhQ3c0UDlvV2pJL0Znb214V0NBeCtncE8rK0cxeHZ4VndSK00rR1F3N1AxeE1PeDdQQmoy
OWZaSHZGWGJ2VkhBbTJybjRwcnNyS2tkNndpRlI5dERzZkgybXRoSUxQUm9yQzA0TzlZV21odU5o
ZVpHMndMekk5RmdmTFF0a0JpTkJoTFBoZjRYblBhTGF5RGlrNEd3VHdiQzN2OGRhUFkrSElqNFB1
cHY5akwrQTcrQ25jdlhlSHRON1dnc0dCNk5oV0tqc1ZCc0pCcDhOQm9Oem81RUEzTUxhMzY0TlJB
ZmFmVW5ocFByNVU3N2xjR1hnYkQzN3dOaHo1LzdtNzBqQTJIUG1XM2VFK0QvclpXRjBCYXNIVzRM
aGtlaWdkaElMQlFiYmcwOEdtNE56QTYzK09lR1cveHpRNjMrK2FFV2YzeW94WmRJcm1XaGIzays5
SU5Mb1Y4S3Z2UTNlK01EemQ0ZitwczkvOUVmOXJZTlJIeU9iZDREQUF0V0ZNSm9XN0IydURVWUhv
b0dZa1BSUUd5b3hmOW9xTVUzT3hUeHpRMUZmSE5ETGI3NW9ZZ3ZQaGp4SnBaV2VPM2dKOFB2U2ZR
M2VYOGFDSHRuKzV1OU0zM05YUDRCcjdNVmhURGNHcWdkYnZXSEIxdjlzY0ZXZjJ3dzRuODBHUEhO
RG9hOWM0TVIzOXhnMkRzM0VQYk9ENFM5OFlHd0p6RVE5aVQ2bTczUzMreVZ2bWJQZkgrelo3NnZ5
Zk8wdjluN3A3NW1iMjkvTTVkL3dHL0pjNFV3MU9JUDkwZjhzY0dJUDlZZjhjY0d3cjVIQTJIdjdF
Q3pkMjZnMlR2WGx3eDl2Sy9aODIxL3MrZS8rcG84My9ZM2VUN3JhL1kwY2ZrSC9MYnRYTDJHV255
MUEyRmZ1Qy9zamZXSHZiSCtacytqdnJEM1ptK1RaNmkzeVRQVzEreVo3R3Z5WE85cjl2aTM5MDhI
OE0rd29oQjZtN3hsdDY5NVR3NkVmZWNHdzE1ZmY1UG5uYjVtVDZEMzJvVUQyL3gzQXZnVjdkeXhZ
OGZPZ1NhdnU3L0prOVYzemF2ZTdqOElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDVi9nOXRQSkVRdTFY
dm1RQUFBQUJKUlU1RXJrSmdnZz09Ij4KLTxpbWcgaWQ9ImkyIj4KLQotPHNjcmlwdD4KLXZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZhciBkZWZhdWx0SW1nVXJsID0gImh0dHBzOi8vZ2V0Lndl
YmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2NC5wbmci
OwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNlcy90aHVuZGVyYmlyZC1sb2dv
LTY0eDY0LnBuZyI7Ci0KLVRlc3RzLmF1dG9pbml0ID0gZmFsc2U7IC8vIFByZXZlbnRzIHRoZSB0
ZXN0IGZyb20gcnVubmluZyB1bnRpbCB0aGUgaW1hZ2UgaXMgbG9hZGVkCi0KLVRlc3RzLnN0YXJ0
VW5pdCA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2dsJyk7Ci0gICAgdmFyIGdsID0gd3JhcEdMQ29udGV4dChnZXRHTENvbnRleHQoY2Fu
dmFzKSk7Ci0gICAgZ2wudmlld3BvcnQoMCwwLGNhbnZhcy53aWR0aCxjYW52YXMuaGVpZ2h0KTsK
LSAgICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RF
U1QpOwotICAgIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7
Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShn
bC5URVhUVVJFXzJELCB0ZXgpOwotICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmVNYXAp
OwotICAgIHJldHVybiBbZ2xdCi19Ci0KLVRlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24oZ2wsIHRl
eCwgdGV4Q3ViZU1hcCkgewotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwp
OwotICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhU
VVJFX0NVQkVfTUFQLCBudWxsKTsKLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleEN1YmVNYXApOwot
fQotCi1UZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgZ2wuZW5hYmxl
KGdsLkJMRU5EKTsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsK
LSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9
IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwotICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdO
RURfQllURSwgaW1nKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wu
TElORUFSKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgICB2YXIgZiA9IG5ldyBGaWx0ZXIoZ2wsICdpZGVu
dGl0eS1mbGlwLXZlcnQnLCAnaWRlbnRpdHktZnJhZycpOwotICAgIGdsLmJsZW5kRnVuYyhnbC5P
TkUsIGdsLlpFUk8pOwotICAgIGYuYXBwbHkoKTsKLSAgICBmLmRlc3Ryb3koKTsKLSAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGMpOwotICAgIGYgPSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZsaXAtdmVydCcs
ICdpZGVudGl0eS1mcmFnJyk7Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05F
X01JTlVTX1NSQ19BTFBIQSk7Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAg
IHZhciB2YWxpZF90YXJnZXRzID0gWwotICAgICAgICBnbC5URVhUVVJFXzJELAotICAgICAgICBn
bC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9N
QVBfTkVHQVRJVkVfWCwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAot
ICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRV
UkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdB
VElWRV9aCi0gICAgXTsKLSAgICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkgewot
ICAgICAgICBhc3NlcnRPayhmdW5jdGlvbigpe2dsLnRleEltYWdlMkQodCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7fSk7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0
aW9uKCl7Z2wudGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCBjKTt9KTsKLSAgICB9KTsKLX0KLQotVGVzdHMudGVzdFRleEltYWdlMkROb25TT1AgPSBm
dW5jdGlvbihnbCkgewotICAgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTIn
KTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0
eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwotICAg
IGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBp
bWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAgICBmdW5jdGlvbigpe2dsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllU
RSwgaW1nKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0
aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1
bmN0aW9uKCl7Z2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBjKTt9KTsKLX0KLQotVGVzdHMuZW5kVW5pdCA9IGZ1bmN0aW9u
KGdsKSB7Ci19OwotCi0oYXN5bmMgZnVuY3Rpb24oKSB7Ci0gICAgY29uc3QgaW1nID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7Ci0gICAgdHJ5IHsKLSAgICAgICAgYXdhaXQgd3R1LmF3
YWl0T3JUaW1lb3V0KHd0dS5sb2FkQ3Jvc3NPcmlnaW5JbWFnZShpbWcsIGRlZmF1bHRJbWdVcmws
IGxvY2FsSW1nVXJsKSk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICB0ZXN0RmFpbGVkKGBJ
bWFnZSBzZXR1cCBmYWlsZWQgKCR7ZX0pLmApOwotICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgaW5pdFRlc3RzKCk7Ci19KSgpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJE
SFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY4ZWMyYWEwOTdiMWZkMzE0ZTgxNzVjNzE1YWMzYmVm
MDE2NmYzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
b3JlL2Z1bmN0aW9ucy90ZXhTdWJJbWFnZTJESFRNTC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTYwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCi0tLT4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3VuaXQuY3Nz
IiAvPgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9Ii4uL3VuaXQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiBzcmM9
Ii4uL3V0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBpZD0iaWRlbnRpdHktZmxpcC12ZXJ0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Ci1h
dHRyaWJ1dGUgdmVjMyBWZXJ0ZXg7Ci1hdHRyaWJ1dGUgdmVjMiBUZXg7Ci0KLXZhcnlpbmcgdmVj
NCB0ZXhDb29yZDA7Ci12b2lkIG1haW4oKQotewotICAgIHRleENvb3JkMCA9IHZlYzQoVGV4LnMs
IDEuMC1UZXgudCwgMC4wLCAwLjApOwotICAgIGdsX1Bvc2l0aW9uID0gdmVjNChWZXJ0ZXgsIDEu
MCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgaWQ9ImlkZW50aXR5LWhmbGlwLXZlcnQiIHR5cGU9
Ingtc2hhZGVyL3gtdmVydGV4Ij4KLWF0dHJpYnV0ZSB2ZWMzIFZlcnRleDsKLWF0dHJpYnV0ZSB2
ZWMyIFRleDsKLQotdmFyeWluZyB2ZWM0IHRleENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAg
dGV4Q29vcmQwID0gdmVjNCgxLjAtVGV4LnMsIFRleC50LCAwLjAsIDAuMCk7Ci0gICAgZ2xfUG9z
aXRpb24gPSB2ZWM0KFZlcnRleCwgMS4wKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBpZD0iaWRl
bnRpdHktZnJhZyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci1wcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKLQotdW5pZm9ybSBzYW1wbGVyMkQgVGV4dHVyZTsKLQotdmFyeWluZyB2ZWM0IHRl
eENvb3JkMDsKLXZvaWQgbWFpbigpCi17Ci0gICAgdmVjNCBjID0gdGV4dHVyZTJEKFRleHR1cmUs
IHRleENvb3JkMC5zdCk7Ci0gICAgZ2xfRnJhZ0NvbG9yID0gYzsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPjxib2R5PgotPGNhbnZhcyBpZD0iZ2wiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2Nh
bnZhcz4KLTxjYW52YXMgaWQ9ImMiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2Ij48L2NhbnZhcz4K
LTxpbWcgaWQ9ImkiIHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiAgc3JjPSJkYXRhOmltYWdlL3Bu
ZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRUFDQVlBQUFCY2NxaG1BQUFU
VkVsRVFWUjRuTzNkK1ZQVWQ1N0hjZjJiOWs5WSt6NDQrcUs3T1pvR0ZWQTVWZkJHemFoOWN4cE56
R0VPb1J1YTVsQkV1ZS9ESzRmWjdNYXBtU20zTWxzaHU4eE9kQ3BESnQzdi9hRUJBVUhBT01HNHow
ZlY1M2ZxVS9WNmZkN2ZUL2UzMmJFREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd092QmthcjdsKzMr
R3dCc2s4eFVyVDByVGI4dngyUTQ1amFubHU3WXNXUG5zZ1hnVGVZd2FrODVVM1h2NVppTTMrWGJV
aC9sMmRJQ0JjNjA4MFdaMXVyOTJiYVNIUlFCOEdheUdkVVd1MUh6b1NORk8rWk0xZjJjYlRMTTUx
bFQ1d29jNXJrRE9iYlovVm0yU0VtMjNWdnN5amhWNW5KUUJzQ2J4R1pRVnRtTjZwNE1vL1lQZHFO
R0hLbGF5VXJYSjl6V2xFU2gweEl2enNtWUwzSFo1NHB6TW02VnVSeVJNcGZUVytweVVBYkFtOEJt
Vk5WbkdOVFRkcVA2dnpPTUdyR25hTVNacXBOc2sxN3liS2xTNkRUTC9peGJvdFJsajVmbE91Ykwz
STY1TXBmalZybmJFYWxZS0lOU2wzMzV2UUdBM3dLYlVXMnhHZFdSREtQNjZ3eWpXaFlMd0pHaUZX
ZWFUckpOQm5GYlUyU1AzU1Q3czZ4U21tdVhjcmN6VWU1MnhzdHpIZlBsYnNkY3VkdDVxeXpYM2xL
V2x4a3N6WEdlSzhteG55ekp5U2plUVJrQXJ6ZWJRVmxsTTZwN2JVYjE0OVVGNEVqVlNtYWFUckxT
OWVLeXBNZ2VlN29jeUxaSm1kc2hGWG1aVXBIblhGRUdCL096SnNyZGpxRXl0L05tV2E0OVhKYnQ5
SmE2TWs0VnU3aEVCRjVMTnIycTNtWlF6OWdNNnU5WEZFQnFzZ0NjYVRySlhKZ0VjaTBwc3RkaGt2
M1pOaW5OVFpiQW9md3NPWlNmSlFmek1xVTh6NWtvZHpzU1pibU9lSVhiK1hXNTJ6RmE1bkxjS25Q
WkkyVUxsNGpGZktJQXZCN01PclhGWmxCSGJBYjExemFqK2ttR1ViTnVBV1NtNjVkS1lIZEdtaFJs
V3FROHp5RkhDbkxrK0w1Y09WNlVLMGNLWFZLNUoxc081bWRLaGRzcFphdktvRFRYMFZQaWNpVExJ
SHRGR1ZBSXdLL05ZbEJXMmZUcVhwdEIvZGhtU0o3K0x5cUFySFM5NUppVEpWRGdORWxsUVpaNEtn
dWxycnBVNnF0TEpYQnN2NXd0M3lNbjlydmxhSUZMRGk4dmcxeEg0bUIrNXArV2wwRnBqcjJsSk1j
UkxNNnlueXZPempoeElJdDdBK0JYWTlHcjZxMEw0LzlTQWFSb3hMN3cvTDlXQVdTYkRKSnJUWkZp
ZDRaNGp4WkpVLzF4dWZIaE9lbStlazZpbDAvTEI3NHFhVHhUSm9HaisrVnMyUjQ1dmo5WGpoVGt5
T0hkQzQ4SkMyVndhSGZtbnlyY3puK3ZjRHNteW5MdFF5VTVHVGVMY3pMQ3BUazJUM0dXN1ZoeFZz
YWU3ZDRmNEkxbDFxa3RWb002WWpPb3ZyWWExRDhzRm9COVdRRTQxNWtBOHUxcGN2UkFqbndVT2lM
RExRRzUxOTBvOTI0MnlsUkhuUXlHL1hMejZubUpYcXFXRDN5VjBuQzZWUHhIOThuWnN0MXlmRit1
SEMxMFNkWGViRG1Vbnl5RHFvTHM3dzdsWjM1YjduYjhzY3h0LzdkU2wzMmtKQ2VqcXlRbjQwcEpU
a2JaRGlZQzROV3phSlZWVnIycTEyWlFQYllhMUg5ZnV3QjBTd1dRbGE2WExGT3lBQW95VGZMVzRU
M1NmdVdNM0wzUklBLzdMOHZEL3N2eVplOGwrZXpXMjNLdnUxRW1PMnBsb05rbjNWZlBTZXZiMWZL
K3QxSWF6NVJKN2NsaThSMHBrdE9sK1hLc0tGa0dCeGZLb0hKdjFsOFA1bWYrdVNMUDhmdnlYTWRN
bWRzUktYYzVxb3RkR1FYYnZWL0FHOFdpVjlWYjlhb1pxMTQxYXpPb3hXYmNYQUhrV2xPa0pDOURh
azhYeTYxUEw4aURub3RMQmJCVUJIMlg1WXZibCtSQnowVzVlNk5CSnRwcnBML1pKemMvT2kvWFAz
aExXaTZla3ZjOGg2V3V1a1M4VmMvS1lQRUM4V2hoenBPcWd1enZLdmRtZlhWNGQyYjN3ZnpNOXcv
bFpURU5BSytDV2Fld1dIV3FpRTJ2K3RxcVYvMncyUUxJTmhra1AyTmgvSzg5SW1OdElmbWk5OUt6
OFBjbDE1ZEw2NUo4MFh0SlByLzF0dHkvMlNoM3V4dmt6dlY2R1krRnBPK2FWNjUvOER1SlhEd3BW
enlIcE83VVFobVU1TXZSSXBkVTdjMlJRN3V6NU1SKzl4K09GYm51SGkzTWlWUVZ1S29QNzg0dTJ1
NzlBMzdUTEZwbGxWV242clhxVlkrdGV0V1BHeGJBc2d2QXZVNlR2SFZvdDhTdW5KWTdOK3JseTc2
MWcvOWxiM0o5c1d4OWZ2dVNmSDc3YlhuUWMxSHVkVGZJVEZlZGpMV0ZwUGVhUjdvK2VFdkNqU2Zs
eW9WRFVsZGRLc0hqQitUQzRVSTVWWnduVlFVNWliY3E5bngxdWpTLzU4UUI5OVhxWW5mNURxWUI0
T1ZZZE0vR2Y2dGU5WS9rOC8vR0JlQ3lHS1hFblNFMTFRZWs1NVB6Y3Y5bTQ4clFyeFA4TDI1Zmtp
OXV2eTJmcjFxZjNicVluQXh1Tk1oMFo1Mk1SSU55KzFPUFhQL3dkOUorNVl3MDE1K1FkODRmbEpx
VHhYTGhjSUdjTE03NytVaEJ6dDh1VkJhMm5xdmNlL1pzeFo2eTdkNUw0RGRsY2Z5MzZGVmZXL1Nx
SDZ3R2xhd3VnTVd2QVR2VGxoV0F5U0I1R2FseWRIK09mRlJ6UkVhalFmbjgxdHZyaC82RndWOWNG
K1d6V3hmbHdhMkxjci9ub3R6cmJwU1o2L1V5MVZVbmt4MjFNdHdTa0o1UExrakhlMmVscWY2NFhE
NTNVRUluRGlRdUhDNllyeTdPbXoxVzVIclkrRmJGNFIxTUE4RG1XTFRLS3N1eThkOXFVTCt3QUpa
L0MzQ1BNMTNPSHR3dGJlK2VsdW5yOWZMRnVzRi9QdlNmMzFvNytBOTZucTM3UFJmbGZrK2ozTCta
L0ZqeDdvMEdtZTZxazRuMkdobHE4VXZQeCtlbC9jb1p1VlozWEM2ZnEvaTU3bFR4MzJwT0huZ1VP
bFVjL2pSNGxFdENZQ01XbmFyZW9sZk5XUFNxV2F0QjlkT2FCYkRHbDRCY0ZxTVV1MjBTT25WQWJu
NThUdTUyTjI3cXRQOThnOUEvV0F6OVF2QVgxNzNGRXVodWtMdmREY25Kb0xOV3htTTFNaGp4eTgy
UHprbm4rMmNTc1hkUHo0Y2JUOHgrR0toOCtGSHdTTzBPU2dCWW0xbW5zSmgxcW9oRnIxd1kvNVh4
WndXdy90ZUFzOUtUdnd0d1pIKzJYQTFWeVhCclVCNzBYRnovdEY5bnpOOUs4TzkxTjhpOWhmQXZy
anMzR3VUT2pYcVpYbmhFR0crdmtkRm9VQWJEL3A5N1BqNy90NTZyNTcvcHUrYjVwT1hkNnFQYnZk
ZkFhOGVpM1ZWbDBhbDZMWHJsWTR0TythTkZyMHBzdGdEMk9OTGx6TUhkRW4ybldxWTY2K1N6bHh6
ekh5d2I4NThML1RyQnYzdmpXZmdYMTh6MTVKcnVxcE9wemxxWmFBOGx4bUtodjQ5R2czL29EL3Mr
M3U2OUJsNDdGcDJpM3FKVnpWaDB5bG1yVHZtVFZaKzhBRno1SHNEekJaQmpOa3B4cmsyQ3B3NUk5
MGZuNU02TmhoZWU5bHNPZnZmbWczL24rclB3ejF5dms1bXVPcGxlV0pNZHRmSEpqcHJ2Smp0cUtB
Qmd1ZVQ0cjRpWWRjcXZ6YnBkUDFqMHl2anFBckN2OVNKUXVsN2N0bFNwMnBjdEh3WXJaYWdsSVBk
dk5xNS8yci9nWW05VHdiK3g5ZUJQZDlYSlZISVNtSi9xclAxbXVyT0dSd0JnT1pOMlY1VkZwK3kx
YUJmR2Y1MHlzVlFBYTN3SFlMRUFzdEwxc3R1UkxxY3I4cVgxOGltWjdLaVZCejBYWHhqNmpaL3ZO
eG44NnhzSFAva0lVQ2RUblhYeDZjN2F2MHgxMVBSczkxNERyeDJUVGxGdjBpcG16RHJsckVXbi9N
bWlWOGxtQ2lEYmJKQUR1VFlKbnR3dk42NytUbWF1MXlkRHZtYm90MzZ4OXl6NDlTOFovTnJGTlQv
ZFZmdjdxYzY2azl1OTE4QnJ4YXhlUGY0cjRoc1ZnSFBoOXdCenJTbFNWWlF0SHdRcVpURGlsN3Zk
alZzNzdiY1kvSm10QjErbU9tc1RreDIxVDZhNmFrZTJlNitCMTQ1SnU2dktwRlAybXJUS3gyYnRz
L0YvOFZ1QUx5cUEzZlkwT1YyZUx5MlhUc3BFZTQzY2Y4R3ovVFlFWHlZN2FtV3lveVkrMVZIei9W
Um5YZk4yN3pYdzJsa2EvN1hLV1l0VytaTkZwNVRORkVDMnlTRDdYVllKbk5nblhSKytKZE5kZFpz
KzdYK2Q0TmZLWkVlTlRIYlV6RTkyMUR5YTVQSVBXQ2xOcmJDWXRjbngzNlRkOVlOWnA0aGJkS3FO
QzJCaC9LOHN6SkwzL1lkbElPeVRPemNhdHZ3eDNzWTMrcjhvK0RMWkVVcE10TmM4bWVoZy9BZWVZ
MUx2cWpKcGxiMG1qZUt4V2F2NDBheFZKbFlYd0ZwdkFtYW02U1RmbmliVlpYa1NlZnVrak1WQ2Ny
ZDdFeVArZXFmOWxvSmZ1Mkh3SnpwcVpLSzlSc2JiUS9ISjl0RDNrNTAxalAvQWFpYU5vdDZrU1k3
L1pxM2lKN05PS1lzWGdDOHFnQ3lUUWZibFdNVi9mSjkwZm5CV0pqdHJWNHozV3pudG43dlJ2LzU4
NkxjYS9HY3JORC9SSG5vMDJjNzRENnlRcGxaWVRGcEZ4S1JWTEkzL0t3dmcrUmVCN0NuSjN3RndX
VkxrY0dHV3ZPYy9MUDNOWHBtNVh2L0xUL3ROQm45eUU4RWZUNFkvTVI0TFBSbHZEekgrQTZ1Wk5Z
cEtrM1pYYi9yQytHL1NLaEtiTFlDOGpEUTVWWlluNFlzblpMUXRLSGR1YkM3MG14M3pmMG53eDl0
RE1oNEx5VmdzRkIrUEJiOGZiMmY4QjU2VHJsSFVwMnNWMHlhTlltbjgzMHdCWktYclpWKzJSWHpI
OTBuSCsyZGxvcU1tV1FDdjRMUi8rZUNIbG9LL0VINFpqd1hueDJQQlIyUHRRY1ovWURtVFJwbWFy
bFkwbVRTN3ZrclRLUDVxMGlwK051dVVZdG1nQUJ5cFduRlpqSEtvSUZPdWVBOUpYNU5IcHJ2cU5o
MzZ6WjcydnlUNEMrRlBqTFlGbjR6SGdvei93R29temE3ZDZacGRNWk5HOFkxSm8zaGkxaTQ4LzIr
aUFQSXlVdVZrcVZ1YUdrL0lTRFFvTTlkZjNXbS9NdmcxV3c3K1dDd2tZMjFCR1cwTHhrZmJndCtQ
eFVLTS84QnFhWnBkdTlQVWlpYVRSdkdWU2F2NHk5SW5BQnNVUUdhNlhvcXlMZUk5VmlUdDc1MlI4
ZmJRcXNDLzR0TitpOEVmYXd2S2FEUW9JOUhBL0doYjhKdXhLT00vOEJ5VDVsOVQwOVNLUUxwR01X
VFNLdjdUckZVOE5ldVVpZVVGWUZ2MVl5Q09WSzNrbUpQai83dmVnOUo3elNOVG5iV3Y2TFIvQmNG
ZldDUFJRSHdrR3ZqTFNEVEFtMy9BZXRMVnlqeVRSdm1PU2F1WU5Pc1UzNXAxeW45c1ZBQnVXNnFj
TE0yVmF3M0haYmcxSU5OZHIrYTBYL3N6L0swRmZ6UWFsTkZvSUhuNlJ3Ty9IMmtMOHVZZjhDSW16
YTVDazI3WGUyYXRjc3FpVThiWExZQVVqV1NtNjZRd3l5emVZNFVTdTNKYXhtS2h0VVAvaTAvN21o
V2hYeEg4dHZXQ0g1U1JhRUJHbzRIRVNLdi95V2hyZ01zL1lEUFNkY29pczFieHZrV25mR3JSSytO
ckZZQTlSU3ZaWm9NYzNPdVVkendINWZhMUN6TFJVZk5QUGUzSDF6anQxd3YrNGhwdURjUkhvb0h2
UjZJQkx2K0F6VExybEVWbW5mS2hSYWQ4YWwzejU4QzA0cmFseUltU1hMbldjRXlHV3YweTJWa3JV
MTNQaC82bFR2c05nais2UWZCSFdnTXkzQnFRNFZiLy9IQnI0TkZJMU0vbEg3QVZGcjBxWU5Hckhs
cjFxcWMyZ3lxKy9FMUFaNXBPQ3JOTTRqbGFJRzFYVHN0b1cvQ2ZkOXEvVlBBRE10enFUd3kzK0o4
TU0vNERMMlhuaWhJd3F1STJvMXJzS1JySk5obWtZcTlETGwrb2tGdWZuSmZ4OXBwbm9WL3ZjL3V0
bnZheE5jYjhUUVUvSU1PdGZobHE4Y2VIVy96ZkQwY0RGN1o3STRIZnFwMDJ2U3BnMDZzZTJnenFw
eGxHVGR5ZW9wRmNhNG9jTDNISnAvVkhaVERpazRtT3pZMzRMMzNhYis3RVh3eit3dkxORDdjRWJv
MjBCakszZXhPQjM3S2ROcU02WURPb0gyWVkxVStkYWJwNFFhWkpMaHpaSzlGM3EyVWtHcENKRFUv
NzBLczc3VGNNdmwrR1dueUp3WWp2eVZCTDRKM3QzanpnVGJEVFpsUUhNb3lhaDlsbS9kT0tQYzc0
cGZQbDB2UHhPUm1MaFg2ZDAzNVR3VjlZRVY5OHNNVS9OUkRtOGc5NFZYYmFVN1VCbDhYNDhFU0o2
K2tuOVVkK0hnaDdFdVB0b1ZkejJyZHRKdlF2RHY1Z3hMZXd2SDhjaUhnN2hsb0NsdTNlTk9CTnN0
TnRTdzM0anhjOWJIMm5lbmFveFRjMzNoNmFINHVGNHVQdHdjUjQ4bi91L1JOTys4MEczeWRERWQv
L0RJUjk5d2JDdnNidDNpemdUYlR6YXFneTBQUHh1ZkJJTkJBYmJ3ODlHbytGWnNkam9ibng5dERj
YUN3NFA5b1dqSS9GZ29teFdDQXgrZ3BPKytHMXh2eFZ3UitNK0dRdzdQMXhNT3g3UEJqMjlmWkh2
RlhidlZIQW0ycm40cHJzcktrZDZ3aUZSOXREc2ZIMm10aElMUFJvckMwNE85WVdtaHVOaGVaRzJ3
THpJOUZnZkxRdGtCaU5CaExQaGY0WG5QYUxheURpazRHd1R3YkMzdjhkYVBZK0hJajRQdXB2OWpM
K0E3K0NuY3ZYZUh0TjdXZ3NHQjZOaFdLanNWQnNKQnA4TkJvTnpvNUVBM01MYTM2NE5SQWZhZlVu
aHBQcjVVNzdsY0dYZ2JEMzd3Tmh6NS83bTcwakEySFBtVzNlRStEL3JaV0YwQmFzSFc0TGhrZWln
ZGhJTEJRYmJnMDhHbTROekE2MytPZUdXL3h6UTYzKythRVdmM3lveFpkSXJtV2hiM2srOUlOTG9W
OEt2dlEzZStNRHpkNGYrcHM5LzlFZjlyWU5SSHlPYmQ0REFBdFdGTUpvVzdCMnVEVVlIb29HWWtQ
UlFHeW94ZjlvcU1VM094VHh6UTFGZkhORExiNzVvWWd2UGhqeEpwWldlTzNnSjhQdlNmUTNlWDhh
Q0h0bis1dTlNMzNOWFA0QnI3TVZoVERjR3FnZGJ2V0hCMXY5c2NGV2Yyd3c0bjgwR1BITkRvYTlj
NE1SMzl4ZzJEczNFUGJPRDRTOThZR3dKekVROWlUNm03M1MzK3lWdm1iUGZIK3paNzZ2eWZPMHY5
bjdwNzVtYjI5L001ZC93Ry9KYzRVdzFPSVA5MGY4c2NHSVA5WWY4Y2NHd3I1SEEySHY3RUN6ZDI2
ZzJUdlhsd3g5dksvWjgyMS9zK2UvK3BvODMvWTNlVDdyYS9ZMGNma0gvTGJ0WEwyR1dueTFBMkZm
dUMvc2pmV0h2YkgrWnMranZyRDNabStUWjZpM3lUUFcxK3laN0d2eVhPOXI5dmkzOTA4SDhNK3dv
aEI2bTd4bHQ2OTVUdzZFZmVjR3cxNWZmNVBubmI1bVQ2RDMyb1VEMi94M0F2Z1Y3ZHl4WThmT2dT
YXZ1Ny9KazlWM3phdmU3ajhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQ1YvZzl0UEpFUXUxWHZtUUFB
QUFCSlJVNUVya0pnZ2c9PSI+Ci08aW1nIGlkPSJpMiI+Ci0KLTxzY3JpcHQ+Ci12YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Ci12YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczovL2dldC53ZWJnbC5v
cmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL3RodW5kZXJiaXJkLWxvZ28tNjR4NjQucG5nIjsKLXZh
ciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvdGh1bmRlcmJpcmQtbG9nby02NHg2
NC5wbmciOwotCi1UZXN0cy5hdXRvaW5pdCA9IGZhbHNlOyAvLyBQcmV2ZW50cyB0aGUgdGVzdCBm
cm9tIHJ1bm5pbmcgdW50aWwgdGhlIGltYWdlIGlzIGxvYWRlZAotCi1UZXN0cy5zdGFydFVuaXQg
PSBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdnbCcpOwotICAgIHZhciBnbCA9IHdyYXBHTENvbnRleHQoZ2V0R0xDb250ZXh0KGNhbnZhcykp
OwotCi0gICAgZ2wudmlld3BvcnQoMCwwLGNhbnZhcy53aWR0aCxjYW52YXMuaGVpZ2h0KTsKLSAg
ICBnbC5jbGVhckNvbG9yKDAsMCwxLDEpOwotICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9C
SVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1Qp
OwotICAgIHJldHVybiBbZ2xdOwotfQotCi1UZXN0cy5zZXR1cCA9IGZ1bmN0aW9uKGdsKSB7Ci0g
ICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5U
RVhUVVJFXzJELCB0ZXgpOwotICAgIHZhciB0ZXhDdWJlTWFwID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfQ1VCRV9NQVAsIHRleEN1YmVNYXApOwot
ICAgIHJldHVybiBbZ2xdCi19Ci0KLVRlc3RzLnRlYXJkb3duID0gZnVuY3Rpb24oZ2wsIHRleCwg
dGV4Q3ViZU1hcCkgewotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpOwot
ICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKLSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
X0NVQkVfTUFQLCBudWxsKTsKLSAgICBnbC5kZWxldGVUZXh0dXJlKHRleEN1YmVNYXApOwotfQot
Ci1UZXN0cy50ZXN0VGV4SW1hZ2UyRCA9IGZ1bmN0aW9uKGdsKSB7Ci0gICAgZ2wuZW5hYmxlKGds
LkJMRU5EKTsKLSAgICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsKLSAg
ICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9IGMu
Z2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJhd0ltYWdlKGltZywwLDApOwotICAgIGdsLnRl
eEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgaW1nKTsKLSAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7Ci0gICAgdmFyIGYgPSBu
ZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktZmxpcC12ZXJ0JywgJ2lkZW50aXR5LWZyYWcnKTsKLSAg
ICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5aRVJPKTsKLSAgICBmLmFwcGx5KCk7Ci0gICAgZi5k
ZXN0cm95KCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGMpOwotICAgIGYg
PSBuZXcgRmlsdGVyKGdsLCAnaWRlbnRpdHktaGZsaXAtdmVydCcsICdpZGVudGl0eS1mcmFnJyk7
Ci0gICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7
Ci0gICAgZi5hcHBseSgpOwotICAgIGYuZGVzdHJveSgpOwotICAgIHZhciB2YWxpZF90YXJnZXRz
ID0gWwotICAgICAgICBnbC5URVhUVVJFXzJELAotICAgICAgICBnbC5URVhUVVJFX0NVQkVfTUFQ
X1BPU0lUSVZFX1gsCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCwKLSAg
ICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZLAotICAgICAgICBnbC5URVhUVVJF
X0NVQkVfTUFQX05FR0FUSVZFX1ksCi0gICAgICAgIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWiwKLSAgICAgICAgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aCi0gICAgXTsKLSAg
ICB2YWxpZF90YXJnZXRzLmZvckVhY2goZnVuY3Rpb24odCkgewotICAgICAgICBhc3NlcnRPayhm
dW5jdGlvbigpewotICAgICAgICAgICAgICAgIGdsLnRleEltYWdlMkQodCwgMCwgZ2wuUkdCQSwg
Z2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYyk7Ci0gICAgICAgICAgICAgICAgZ2wudGV4U3Vi
SW1hZ2UyRCh0LCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsKLSAgICAg
ICAgfSk7Ci0gICAgICAgIGFzc2VydE9rKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgZ2wu
dGV4SW1hZ2UyRCh0LCAxLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBjKTsK
LSAgICAgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKHQsIDEsIDAsIDAsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGMpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotVGVzdHMudGVz
dFRleEltYWdlMkROb25TT1AgPSBmdW5jdGlvbihnbCkgewotICAgIHZhciBpbWcgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjJyk7Ci0gICAgdmFyIGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICBjdHguZHJh
d0ltYWdlKGltZywwLDApOwotICAgIGFzc2VydFRocm93Tm9HTEVycm9yKGdsLCAidGV4SW1hZ2Uy
RCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIsCi0gICAg
ICBmdW5jdGlvbigpe2dsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJv
cihnbCwgInRleFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93
IGV4Y2VwdGlvbi4iLAotICAgICAgZnVuY3Rpb24oKXtnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1nKTt9KTsKLSAgICBh
c3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleEltYWdlMkQgd2l0aCBkaXJ0eSBvcmlnaW4gY2Fu
dmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1bmN0aW9uKCl7Z2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBjKTt9KTsKLSAgICBhc3NlcnRUaHJvd05vR0xFcnJvcihnbCwgInRleFN1YkltYWdlMkQgd2l0
aCBkaXJ0eSBvcmlnaW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIiwKLSAgICAgIGZ1
bmN0aW9uKCl7Z2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIGMpO30pOwotfQotCi1UZXN0cy5lbmRVbml0ID0gZnVuY3Rpb24o
Z2wpIHsKLX07Ci0KLShhc3luYyBmdW5jdGlvbigpIHsKLSAgICBjb25zdCBpbWcgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaTInKTsKLSAgICB0cnkgewotICAgICAgICBhd2FpdCB3dHUuYXdh
aXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwg
bG9jYWxJbWdVcmwpKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoYElt
YWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICBpbml0VGVzdHMoKTsKLX0pKCk7Ci08L3NjcmlwdD4KLTwv
Ym9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9DR19EYXRhX1R5cGVzX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NHX0RhdGFfVHlwZXNfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRmMzEwOTBlYmYzMjA3MjcwNTZkMGZlMDg2NGQyYzAxOGIwYjdjOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9DR19EYXRhX1R5cGVzX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDI4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworCWhhbGYgaDE7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJaGFsZjIgaDI7IC8vIE5vdCBh
IGJhc2ljIHR5cGUuCisJaGFsZjMgaDM7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJaGFsZjQgaDQ7
IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZmxvYXQyIGYyOyAvLyBOb3QgYSBiYXNpYyB0eXBlLgor
CWZsb2F0MyBmMzsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlmbG9hdDQgZjQ7IC8vIE5vdCBhIGJh
c2ljIHR5cGUuCisJZml4ZWQgZngxOyAvLyBOb3QgYSBiYXNpYyB0eXBlLgorCWZpeGVkMiBmeDI7
IC8vIE5vdCBhIGJhc2ljIHR5cGUuCisJZml4ZWQzIGZ4MzsgLy8gTm90IGEgYmFzaWMgdHlwZS4K
KwlmaXhlZDQgZng0OyAvLyBOb3QgYSBiYXNpYyB0eXBlLgorCWZsb2F0M3gzIGYzeDM7IC8vIE5v
dCBhIGJhc2ljIHR5cGUuCisJZmxvYXQyeDQgZjJ4NDsgLy8gTm90IGEgYmFzaWMgdHlwZS4KKwlo
YWxmNHg0IGg0eDQ7IC8vIE5vdCBhIGJhc2ljIHR5cGUuCit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9DR19TdGFuZGFyZF9MaWJyYXJ5X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NH
X1N0YW5kYXJkX0xpYnJhcnlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MjY4MGVlMWFhODI4ZGIy
MDE0YWFkZmM4YWIyMzQ3MmRmMGNiYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9DR19TdGFuZGFyZF9MaWJyYXJ5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworCWludCBpID0g
cm91bmQoMS4zKTsgLy8gcm91bmQgaXMgbm90IGEgYnVpbHQtaW4gZnVuY3Rpb24uCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdEJ1aWx0SW5PdmVyaWRlX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wN2JhM2VmMzdiN2M1NDUwOGM5YjJmMzk4MjgyMmE2ZGQyNmRiZDgyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEJ1aWx0SW5PdmVyaWRlX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDIyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGludDsKKyNlbmRpZgorCitpbnQg
cmFkaWFucyhpbnQgZikKK3sKKyAgICByZXR1cm4gZjsKK30KKwordm9pZCBtYWluKCkKK3sKKyAg
ICBpbnQgZiA9IDQ1OworICAgIGYgPSByYWRpYW5zKGYpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdENvbW1hX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RD
b21tYV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI2NzFkNzliNjgyNjM5ZWVlYTVmMWU4YWNkZTgy
MDVlYjM4NTE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb21t
YV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgorc3RydWN0IHMgeworICAgIGZsb2F0IGY7CisgICAgdmVjMyB2OworfTsKKwor
dm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCB2ZWM0IHYgPSAodmVjNCgxLDIsMyw0KSwgdmVjNCg1
LDYsNyw4KSk7ICAvLyA1LDYsNyw4CisgICAgY29uc3QgcyBzMSA9IChzKDkuMCwgdmVjMygxMCwx
MSwxMikpLCBzKDEzLjAsIHZlYzMoMTQsMTUsMTYpKSk7IC8vIDEzLDE0LDE1LDE2CisgICAgZ2xf
RnJhZ0NvbG9yID0gdiArIHZlYzQoczEuZiwgczEudik7ICAvLyAxOCwgMjAsIDIyLCAyNAorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzFfdmVydC52ZXJ0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzFfdmVydC52ZXJ0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg5YTNiYzU4NGZhZWUyOTFiN2ExZDlhZDAzNDdiNDA1OGZhMGQzZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnZlcnQKQEAg
LTAsMCArMSwzNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKwordm9pZCBtYWluKCkKK3sKKworICAgY29uc3Qgc3RydWN0IHMyIHsKKyAgICAgICBpbnQg
aTsKKyAgICAgICB2ZWMzIHYzOworICAgICAgIGJ2ZWM0IGJ2NDsKKyAgIH0gczIyICA9IHMyKDgs
IHZlYzMoOSwgMTAsIDExKSwgYnZlYzQodHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisKKyAg
IHN0cnVjdCBzNCB7CisgICAgICAgaW50IGlpOworICAgICAgIHZlYzQgdjQ7CisgICAgICB9Owor
CisgICBjb25zdCBzdHJ1Y3QgczEgeworICAgICAgczIgc3M7CisgICAgICBpbnQgaTsKKyAgICAg
IGZsb2F0IGY7CisgICAgICBtYXQ0IG07CisgCXM0IHM0NDsKKyAgIH0gczExID0gczEoczIyLCAy
LCA0LjAsIG1hdDQoNSksIHM0KDYsIHZlYzQoNywgOCwgOSwgMTApKSkgOworCisgIGNvbnN0IGlu
dCBmaWVsZDMgPSBzMTEuaSAqIHMxMS5zcy5pOyAgLy8gY29uc3RhbnQgZm9sZGluZyAoaW50ICog
aW50KQorICBjb25zdCB2ZWM0IGZpZWxkNCA9IHMxMS5zNDQudjQgKiBzMTEuczQ0LnY0OyAvLyBj
b25zdGFudCBmb2xkaW5nICh2ZWM0ICogdmVjNCkKKyAvLyA0OSwgNjQsIDgxLCAxMDAKKyAgY29u
c3QgdmVjNCB2NCA9IHZlYzQoczExLnNzLnYzLnksIHMxMS5tWzNdWzNdLCBmaWVsZDMsIGZpZWxk
NFsyXSk7ICAvLyAxMC4wLCA1LjAsIDE2LjAsIDgxLjAKKyAgZ2xfUG9zaXRpb24gPSB2NDsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcyX3ZlcnQudmVy
dCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RDb25zdEZvbGRpbmcyX3ZlcnQudmVydApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NWMxMzY3MjQ1Y2EwMjJjNjNlZDAxZGJhNmI4Y2NkOGQ3ZDhhZTYxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC52ZXJ0CkBA
IC0wLDAgKzEsNDIxIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCit2b2lkIG1haW4oKQoreworICAgIHN0cnVjdCBzNSB7CisgICAgZmxvYXQgazsKKyAg
ICB9OworICAgIGNvbnN0IHN0cnVjdCBzIHsKKyAgICAgICAgaW50IGk7CisgICAgCWZsb2F0IGo7
CisgICAgICBzNSBzNTU7CisgICAgfSBzcyA9IHMoNCwxLjAsIHM1KDEuMCkpOworCisKKyAgIGNv
bnN0IHN0cnVjdCBzMiB7CisgICAgICAgaW50IGk7CisgICAgICAgdmVjMyB2MzsKKyAgICAgICBi
dmVjNCBidjQ7CisgICB9IHMyMiAgPSBzMig4LCB2ZWMzKDksIDEwLCAxMSksIGJ2ZWM0KHRydWUs
IGZhbHNlLCB0cnVlLCBmYWxzZSkpOworCisgIHN0cnVjdCBzNCB7CisgICAgICAgICAgaW50IGlp
OworICAgICAgICAgIHZlYzQgdjQ7CisgICAgICB9OworCisgICBjb25zdCBzdHJ1Y3QgczEgewor
ICAgICAgczIgc3M7CisgICAgICBpbnQgaTsKKyAgICAgIGZsb2F0IGY7CisgICAgICBtYXQ0IG07
CisgICAgICBzNCBzNDQ7CisgICAgIH0gczExID0gczEoczIyLCAyLCA0LjAsIG1hdDQoNSksIHM0
KDYsIHZlYzQoNywgOCwgOSwgMTApKSkgOworCisKKyAgIGNvbnN0IHN0cnVjdCBzNyB7CisgICAg
ICAgaW50IGk7CisgICAgICAgbWF0MyBtMzsKKyAgIH0gczc3ID0gczcoMTIsIG1hdDMoMTUpKTsK
KworICB2ZWMyICAgICAgIHYyMSA9IHZlYzIoMSk7ICAvLyBOb3QgYSBjb25zdGFudAorICBjb25z
dCB2ZWMyIHYyMiA9IHZlYzIoMTEpOyAvLyAxMS4wLCAxMS4wCisgIGNvbnN0IHZlYzQgdjQxID0g
dmVjNCgyKTsgIC8vIDIuMCwgMi4wLCAyLjAsIDIuMAorICBjb25zdCB2ZWM0IHY0MyA9IHZlYzQo
NCw0LDQsNCk7IC8vIDQuMCwgNC4wLCA0LjAsIDQuMAorICBjb25zdCB2ZWM0IHY0NCA9IHZlYzQo
NS4wLCA1LjAsIDUuMCwgNS4wKTsgLy8gNS4wLCA1LjAsIDUuMCwgNS4wCisgIGNvbnN0IHZlYzQg
djQ1ID0gdmVjNCh2MjIsIHYyMik7ICAvLyAxMS4wLCAxMS4wLCAxMS4wLCAxMS4wCisgIGNvbnN0
IHZlYzQgdjQ2ID0gdmVjNCh2ZWMyKDIwLCAyMSksIHZlYzIoMjIsIDIzKSk7ICAvLyAyMC4wLCAy
MS4wLCAyMi4wLCAyMy4wCisKKyAgY29uc3QgdmVjMyB2MzEgPSB2ZWMzKHMyMi52Myk7ICAvLyA5
LjAsIDEwLjAsIDExLjAKKyAgY29uc3QgdmVjMyB2MzIgPSB2ZWMzKHM3Ny5tMyk7ICAvLyAxNS4w
LCAwLCAwCisgIGNvbnN0IHZlYzMgdjMzID0gdmVjMyhzNzcubTNbMl0pOyAvLyAwLCAwLCAxNS4w
CisgIGNvbnN0IHZlYzMgdjM0ID0gdmVjMyhzNzcubTNbMl1bMF0pOyAgLy8gMCwwLDAKKworCisg
IGNvbnN0IG1hdDQgbTQxID0gbWF0NCgxKTsgIC8vIDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwxLDAs
MCwwLDAsMCwxCisgIGNvbnN0IG1hdDQgbTQyID0gbWF0NCh2NDQsIHY0NCwgdjQ0LCB2NDQpOyAg
Ly8gYWxsIDVzCisgIGNvbnN0IG1hdDQgbTQzID0gbWF0NCggdjQzLngpOyAgLy8gNCwwLDAsMCww
LDQsMCwwLDAsMCwwLDQsMCwwLDAsMCwwLDQKKworICBjb25zdCB2ZWM0IHY0NyA9IHZlYzQobTQx
WzBdWzBdKTsgIC8vIDEuMCwxLjAsMS4wLDEuMAorCisgIGNvbnN0IG1hdDQgbTQ1ID0gbWF0NChz
MjIudjMsIHY0NCwgdjQ1LCB2MzIsIDUwLCA1Mik7ICAvLzksMTAsMTEsNSw1LDUsNSwxMSwxMSwx
MSwxMSwxNS4wLCAwLDAsIDUwLjAsIDUyLjAKKyAgLy9jb25zdCBtYXQzIG0zMSA9IG1hdDMoMSwg
bWF0MigxKSwgMi4wLCB2ZWMzKDEpKTsgIC8vIDEuMCwgMSwwLDAsMSwyLDEsMSwxCisgIGNvbnN0
IHZlYzQgdjQ4ID0gdmVjNCh2MzFbMF0sIHYyMlsxXSwgdjQxWzBdLCB2NDNbM10pOyAgLy85LCAx
MSwgMiwgNAorICBjb25zdCB2ZWM0IHY0OSA9IHZlYzQoczIyLnYzLnh5LCBzMjIudjMuengpOyAv
LyA5LDEwLDExLDkKKyAgY29uc3QgdmVjNCB2NDEwID0gdmVjNCh2NDQueHksIHY0My56eCk7ICAv
LzUsNSw0LDQKKworICBjb25zdCB2ZWM0IHY0MTEgPSB2ZWM0KG00MlszXSk7ICAvLyA1LDUsNSw1
CisgIGNvbnN0IHZlYzQgdjQxMiA9IHZlYzQobTQzWzJdKTsgIC8vIDAsMCw0LDAKKworICBjb25z
dCB2ZWMyIHYyMyA9IHZlYzIobTQxKTsgIC8vIDEsMAorCisgIGNvbnN0IHZlYzIgdjI0ID0gdmVj
MigzMywgczExLmkpOyAgLy8gMzMsIDIKKworICBjb25zdCB2ZWM0IHY0MTMgPSB2ZWM0KHZlYzIo
MS4wLDIuMCksaXZlYzIoMy4wLDQuMCkpOyAgLy8gMSwyLDMsNAorICBjb25zdCBpdmVjNCBpNDEg
PSBpdmVjNCgxLjAsIDIuMCwgMy4wLCA0LjApOyAgLy8gMSwyLDMsNAorCisgIGNvbnN0IGl2ZWM0
IGk0MiA9IGl2ZWM0KDYpOyAgLy8gNiw2LDYsNgorICBjb25zdCBpdmVjNCBpNDMgPSBpdmVjNCh2
NDUpOyAgLy8xMSwxMSwxMSwxMQorCisgIGNvbnN0IGl2ZWM0IGk0NCA9IGl2ZWM0KHY0NFswXSk7
ICAvLyA1LDUsNSw1CisgIGNvbnN0IGl2ZWM0IGk0NSA9IGl2ZWM0KHZlYzIoMjAsIDIxKSwgdmVj
MigyMiwgMjMpKTsgIC8vIDIwLCAyMSwgMjIsIDIzCisgIGNvbnN0IHZlYzQgdjQxNCA9IHZlYzQo
aXZlYzIoMjksIDMwKSwgaXZlYzIoMzEsIDMyKSk7IC8vIDI5LjAsIDMwLjAsIDMxLjAsIDMyLjAK
KyAgY29uc3QgaXZlYzQgaTQ2ID0gaXZlYzQoaXZlYzIoMi4wLDMuMCksIGl2ZWMzKDQuMCw1LjAs
Ni4wKSk7CisgIGNvbnN0IGl2ZWM0IGk0NyA9IGl2ZWM0KGk0Nik7ICAvLyAyLDMsNCw1CisgIGNv
bnN0IGl2ZWM0IGk0OCA9IGl2ZWM0KHY0MTQueCk7ICAvLyAyOSwyOSwyOSwyOQorCisgIGNvbnN0
IGl2ZWM0IGk0OSA9IGl2ZWM0KHZlYzQoMSkpOyAvLyAxLDEsMSwxCisgIGNvbnN0IGl2ZWM0IGk0
MTQgPSBpdmVjNChtYXQ0KDE0KSk7IC8vIDE0LCAwLDAsMCwKKyAgY29uc3QgaXZlYzQgaTQxMCA9
IGl2ZWM0KG00Myk7ICAvLyA0LDAsMCwwCisgIGNvbnN0IGl2ZWM0IGk0MTEgPSBpdmVjNChtNDNb
MV0pOyAgLy8gMCwgNCwgMCwgMAorICBjb25zdCBpdmVjNCBpNDEyID0gaXZlYzQoczc3LmkpOyAv
LyAxMiwgMTIsIDEyLCAxMgorICBjb25zdCBpdmVjNCBpNDE2ID0gaXZlYzQoczIyLnYzLnp5eCwg
MTIpOyAgLy8gMTEsIDEwLCA5LCAxMgorCisgIGNvbnN0IHZlYzQgdjQxNSA9IHZlYzQoaXZlYzIo
MzUpLCBpdmVjMigzNikpOyAvLyAzNS4wLCAzNS4wICwzNi4wICwgMzYuMAorCisgIGNvbnN0IGJ2
ZWM0IGI0MSA9IGJ2ZWM0KDEuMCwgMi4wLCAzLjAsIDQuMCk7ICAvLyB0cnVlLHRydWUsdHJ1ZSx0
cnVlCisKKyAgY29uc3QgYnZlYzQgYjQyID0gYnZlYzQoNik7ICAvLyB0cnVlLHRydWUsdHJ1ZSx0
cnVlCisgIGNvbnN0IGJ2ZWM0IGI0MyA9IGJ2ZWM0KHY0NSk7ICAvL3RydWUsdHJ1ZSx0cnVlLHRy
dWUKKworICBjb25zdCBidmVjNCBiNDQgPSBidmVjNCh2NDRbMF0pOyAgLy8gdHJ1ZSx0cnVlLHRy
dWUsdHJ1ZQorICBjb25zdCBidmVjNCBiNDUgPSBidmVjNCh2ZWMyKDAsIDIxKSwgdmVjMigwLCAx
KSk7ICAvLyBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUKKyAgY29uc3QgYnZlYzQgYjQ2ID0gYnZl
YzQoaXZlYzIoMC4wLDMuMCksIGl2ZWMzKDAsNS4wLDYuMCkpOyAvLyBmYWxzZSwgdHJ1ZSwgZmFs
c2UsIHRydWUKKyAgY29uc3QgYnZlYzQgYjQ3ID0gYnZlYzQoaTQ2KTsgIC8vIHRydWUsdHJ1ZSx0
cnVlLHRydWUKKyAgY29uc3QgYnZlYzQgYjQ4ID0gYnZlYzQodjQxNC54KTsgIC8vIHRydWUsdHJ1
ZSx0cnVlLHRydWUKKworICBjb25zdCBidmVjNCBiNDkgPSBidmVjNCh2ZWM0KDApKTsgLy8gZmFs
c2UsZmFsc2UsZmFsc2UsZmFsc2UKKyAgY29uc3QgYnZlYzQgYjQxNCA9IGJ2ZWM0KG1hdDQoMTQp
KTsgLy8gdHJ1ZSwgZmFsc2UsZmFsc2UsZmFsc2UsCisgIGNvbnN0IGJ2ZWM0IGI0MTAgPSBidmVj
NChtNDMpOyAgLy8gdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZQorICBjb25zdCBidmVjNCBiNDExID0g
YnZlYzQobTQzWzFdKTsgIC8vIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UKKyAgY29uc3QgYnZl
YzQgYjQxMiA9IGJ2ZWM0KHM3Ny5pKSA7IC8vIHRydWUsIHRydWUsIHRydWUsIHRydWUKKworICBj
b25zdCB2ZWMzIHYzNSA9IHZlYzMoczExLnM0NC52NCk7ICAvLyA3LjAsOC4wLDkuMAorCisKKyAg
c3RydWN0IHMxMCB7CisgICAgIGludCBrOworICB9OworICBzdHJ1Y3QgczkgeworICAgICAgIGZs
b2F0IGY7CisgICAgICBzMTAgczEwMTsKKyAgIH07CisgIGNvbnN0IHN0cnVjdCBzOCB7CisgICAg
ICBpbnQgaTsKKyAgICAgIHM5IHM5OTsKKyAgfSBzODggPSBzOCgxLCBzOSgyLjAsIHMxMCg1KSkp
OworCisgICBzdHJ1Y3Qgc3Q0IHsKKyAgICAgICBpbnQgbTsKKyAgICAgICB2ZWMzIHYzOworICAg
fTsKKyAgIHN0cnVjdCBzdDMgeworICAgICAgaW50IGs7CisgICAgICBpbnQgbDsKKyAgICAgIHN0
NCBzdDQ0OworICAgICB9OworICAgc3RydWN0IHN0MiB7CisgICAgICAgZmxvYXQgZjsKKyAgICAg
ICBzdDMgc3QzMzsKKyAgfTsKKyAgY29uc3Qgc3RydWN0IHN0MSB7CisgICAgICBpbnQgaTsKKyAg
ICAgIHN0MiBzdDIyOworICB9IHN0MTEgPSBzdDEoMSwgc3QyKDIuMCwgc3QzKDUsIDYsIHN0NCg3
LCB2MzUpKSkpOworCisgIGNvbnN0IHZlYzQgdjQxNiA9IHZlYzQoczg4LnM5OS5zMTAxLmspOyAv
LyBhbGwgNXMKKyAgY29uc3QgdmVjNCB2NDE3ID0gdmVjNChzdDExLnN0MjIuc3QzMy5zdDQ0LnYz
LCBzODguczk5LnMxMDEuayk7ICAvLyA3LjAsIDguMCwgOS4wLCA1LjAKKyAgY29uc3QgdmVjMyB2
MzYgPSB2ZWMzKHMxMS5zcy52Myk7ICAvLyA5LCAxMCwgMTEKKworICB2ZWM0IHY0MTggPSB2NDE2
OyAgLy8gYWxsIDVzCisgIGNvbnN0IGZsb2F0IGYxID0gdjQxNlswXTsgIC8vIDUuMAorICB2ZWM0
IHY0MTk7CisgIHY0MTkueHl6ID0gc3QxMS5zdDIyLnN0MzMuc3Q0NC52MzsKKyAgbWF0NCBtNDc7
CisKKyAgc3RydWN0IHN0cnVjdDIgeworICAgICAgaW50IGs7CisgIH0gc3RydWN0MjIgPSBzdHJ1
Y3QyKDQpOworCisgIGNvbnN0IHN0cnVjdCBzdHJ1Y3QxIHsKKyAgICAgICBzdHJ1Y3QyIHNzdDI7
CisgIH0gc3RydWN0MTEgPSBzdHJ1Y3QxKHN0cnVjdDIoMikpOworCisgIGNvbnN0IHZlYzQgdjQy
MCA9IHY0MTc7ICAvLyA3LjAsIDguMCwgOS4wICwgNS4wCisKKyAgdmVjNCB2NDIxID0gdmVjNChz
MTEubSk7ICAvLyA1LCAwLCAwLCAwCisgIHZlYzQgdjQyMiA9IHY0MjA7ICAvLyA3LjAsIDguMCwg
OS4wICwgNS4wCisKKyAgdmVjNCB2NDIzID0gczExLnM0NC52NDsgICAvLyA3LCA4LCA5LCAxMAor
CisgIGludCBpbnQxID0gc3MuaSAqIHNzLmk7ICAvLyAxNgorICBpbnQgaW50MiA9IHNzLmkgKiAy
OyAgLy8gOAorCisgIGNvbnN0IHZlYzQgdjQyNSA9IHY0MjAgKiB2NDIwOyAgLy8gNDksIDY0LCA4
MSwgMjUKKyAgY29uc3QgdmVjNCB2NDI2ID0gczExLm0gKiBzMTEuczQ0LnY0OyAvLyAzNSwgNDAs
IDQ1LCA1MAorICBjb25zdCB2ZWM0IHY0MjcgPSBzMTEuczQ0LnY0ICogczExLm07IC8vIDM1LCA0
MCwgNDUsIDUwCisKKyAgZmxvYXQgZmYgPSAyLjA7CisgIGNvbnN0IGZsb2F0IGZmQ29uc3QgPSAy
LjA7CisKKyAgdmVjNCB2NDI4ID0gZmYgKyB2NDI1OyAgLy8gb3JkaW5hcnkgYXNzaWdubWVudCB3
aXRoIGJpbmFyeSBub2RlCisgIHZlYzMgdjM5ID0gdmVjMyg1KTsKKworICB2ZWMzIHYzMTAgPSBz
MjIudjMgKyB2Mzk7ICAvLzE0LCAxNSwgMTYKKworICBjb25zdCB2ZWM0IHY0MjkgPSB2NDIwICsg
djQyMDsgLy8gMTQsIDE2LCAxOCwgMTAKKyAgY29uc3QgdmVjNCB2NDMwID0gdjQyMCArIGZmQ29u
c3Q7ICAvLyA5LCAxMCwgMTEsNworICBjb25zdCB2ZWM0IHY0MzIgPSAgdjQyOSArIHMxMS5mOyAg
Ly8gMTgsIDIwLCAyMiwgMTQKKworICBjb25zdCB2ZWM0IHY0MzMgPSB2ZWM0KHMxMS5mICsgczEx
LmYpOyAgLy8gYWxsIDhzCisgIGNvbnN0IHZlYzQgdjQzNCA9IHY0MzIgKyB2ZWM0KDMpOyAgLy8g
MjEsIDIzLCAyNSwgMTcKKyAgY29uc3QgbWF0NCBtNDggPSBzMTEubSArIGZmQ29uc3Q7ICAvLyBk
aWFnb25hbCA3cyBhbmQgb3RoZXJzIDJzCisgIGNvbnN0IG1hdDQgbTQ5ID0gbWF0NChmZkNvbnN0
ICsgczExLmYpOyAgLy8gZGlhZ29uYWwgNnMKKyAgY29uc3QgbWF0NCBtNDEwID0gbTQ4ICsgczEx
LmY7ICAvLyBkaWFnb25hbCAxMSwgb3RoZXJzIC0gNnMKKworICBjb25zdCBtYXQ0IG00MTMgPSBt
NDggKyBtNDggOyAvLyBkaWFnb25hbCAxNCwgb3RoZXJzIDQKKyAgY29uc3QgbWF0NCBtNDE0ID0g
bTQxMyArIGZmQ29uc3QgOyAvLyBkaWFnb25hbCAxNiwgb3RoZXJzIDYKKworICBjb25zdCB2ZWM0
IHY0MzUgPSBmZkNvbnN0ICsgdjQyMDsgIC8vIDksIDEwLCAxMSw3CisgIGNvbnN0IHZlYzQgdjQz
NiA9ICBzMTEuZiArIHY0Mjk7ICAvLyAxOCwgMjAsIDIyLCAxNAorICBjb25zdCBtYXQ0IG00MTUg
PSBmZkNvbnN0ICsgczExLm07ICAvLyBkaWFnb25hbCA3cyBhbmQgb3RoZXJzIDJzCisgIGNvbnN0
IG1hdDQgbTQxNiA9IHMxMS5mICsgbTQ4IDsgIC8vIGRpYWdvbmFsIDExLCBvdGhlcnMgLSA2cwor
ICBjb25zdCBtYXQ0IG00MTcgPSBmZkNvbnN0ICsgbTQxMyA7IC8vIGRpYWdvbmFsIDE2LCBvdGhl
cnMgNgorCisgIGNvbnN0IHZlYzQgdjQzNyA9IHY0MjAgLSB2NDIwOyAvLyAwLCAwLCAwLCAwCisg
IGNvbnN0IHZlYzQgdjQzOCA9IHY0MjAgLSBmZkNvbnN0OyAgLy8gNSwgNiwgNywzCisgIGNvbnN0
IHZlYzQgdjQ0MCA9ICB2NDI5IC0gczExLmY7ICAvLyAxMCwgMTIsIDE0LCA2CisKKyAgY29uc3Qg
dmVjNCB2NDQxID0gdmVjNChzMTEuZiAtIHMxMS5mKTsgIC8vIGFsbCAwcworICBjb25zdCB2ZWM0
IHY0NDIgPSB2NDMyIC0gdmVjNCgzKTsgIC8vIDE1LCAxNywgMTksIDExCisgIGNvbnN0IG1hdDQg
bTQxOCA9IHMxMS5tIC0gZmZDb25zdDsgIC8vIGRpYWdvbmFsIDNzIGFuZCBvdGhlcnMgLTJzCisg
IGNvbnN0IG1hdDQgbTQxOSA9IG1hdDQoZmZDb25zdCAtIHMxMS5mKTsgIC8vIGRpYWdvbmFsIC0+
IC0ycworICBjb25zdCBtYXQ0IG00MjAgPSBtNDggLSBzMTEuZjsgIC8vIGRpYWdvbmFsIDMsIG90
aGVycyAtPiAtMgorCisgIGNvbnN0IG1hdDQgbTQyMyA9IG00OCAtIG00OCA7IC8vIEFsbCAwcwor
ICBjb25zdCBtYXQ0IG00MjQgPSBtNDEzIC0gZmZDb25zdCA7IC8vIGRpYWdvbmFsIDEyLCBvdGhl
cnMgMgorCisgIGNvbnN0IHZlYzQgdjQ0MyA9IGZmQ29uc3QgLSB2NDIwOyAgLy8gLTUsIC02LCAt
NywtMworICBjb25zdCB2ZWM0IHY0NDQgPSAgczExLmYgLSB2NDI5OyAgLy8gLTEwLCAtMTIsIC0x
NCwgLTYKKyAgY29uc3QgbWF0NCBtNDI1ID0gZmZDb25zdCAtIHMxMS5tOyAgLy8gZGlhZ29uYWwg
LTNzIGFuZCBvdGhlcnMgMnMKKyAgY29uc3QgbWF0NCBtNDI2ID0gczExLmYgLSBtNDggOyAgLy8g
ZGlhZ29uYWwgLTMsIG90aGVycyAgMnMKKyAgY29uc3QgbWF0NCBtNDI3ID0gZmZDb25zdCAtIG00
MTMgOyAvLyBkaWFnb25hbCAtMTIsIG90aGVycyAtMgorCisgIGNvbnN0IHZlYzQgdjQ0NSA9IHY0
MjAgKiB2NDIwOyAvLyA0OSwgNjQsIDgxLCAyNQorICBjb25zdCB2ZWM0IHY0NDYgPSB2NDIwICog
ZmZDb25zdDsgIC8vIDE0LCAxNiwgMTgsMTAKKyAgY29uc3QgdmVjNCB2NDQ4ID0gIHY0MjkgKiBz
MTEuZjsgIC8vIDU2LCA0NiwgNzIsIDQwCisKKyAgY29uc3QgdmVjNCB2NDQ5ID0gdmVjNChzMTEu
ZiAqIHMxMS5mKTsgIC8vIGFsbCAxNgorICBjb25zdCB2ZWM0IHY0NTAgPSB2NDMyICogdmVjNCgz
KTsgIC8vIDU0LCA2MCwgNjYsIDQyCisgIGNvbnN0IG1hdDQgbTQyOCA9IHMxMS5tICogZmZDb25z
dDsgIC8vIGRpYWdvbmFsIDEwIGFuZCBvdGhlcnMgMHMKKyAgY29uc3QgbWF0NCBtNDI5ID0gbWF0
NChmZkNvbnN0ICogczExLmYpOyAgLy8gZGlhZ29uYWwgOAorICBjb25zdCBtYXQ0IG00MzAgPSBt
NDggKiBzMTEuZjsgIC8vIGRpYWdvbmFsIDI4LCBvdGhlcnMgOAorCisgIGNvbnN0IG1hdDQgbTQz
MyA9IG00OCAqIG00OCA7IC8vIGRpYWdvbmFsIDYxLCBvdGhlcnMgMzYKKyAgY29uc3QgbWF0NCBt
NDM0ID0gbTQxMyAqIGZmQ29uc3QgOyAvLyBkaWFnb25hbCAyOCwgb3RoZXJzIDgKKworICBjb25z
dCB2ZWM0IHY0NTEgPSBmZkNvbnN0ICogdjQyMDsgIC8vIDE0LCAxNiwgMTgsMTAKKyAgY29uc3Qg
dmVjNCB2NDUyID0gIHMxMS5mICogdjQyOTsgIC8vIDU2LCA2NCwgNzIsIDQwCisgIGNvbnN0IG1h
dDQgbTQzNSA9IGZmQ29uc3QgKiBzMTEubTsgIC8vICBkaWFnb25hbCAxMCBhbmQgb3RoZXJzIDBz
CisgIGNvbnN0IG1hdDQgbTQzNiA9IHMxMS5mICogbTQ4IDsgIC8vIGRpYWdvbmFsIDI4LCBvdGhl
cnMgLSA4cworICBjb25zdCBtYXQ0IG00MzcgPSBmZkNvbnN0ICogbTQxMyA7IC8vIGRpYWdvbmFs
IDI4LCBvdGhlcnMgOAorCisgIGNvbnN0IHZlYzQgdjQ1MyA9IHY0MjAgLyB2NDIwOyAvLyAxLCAx
LCAxLCAxCisgIGNvbnN0IHZlYzQgdjQ1NCA9IHY0MjAgLyBmZkNvbnN0OyAgLy8gMy41LCA0LCA0
LjUsMi41CisKKyAgY29uc3QgdmVjNCB2NDU3ID0gdmVjNChzMTEuZiAvIHMxMS5mKTsgIC8vIGFs
bCAxcworICBjb25zdCB2ZWM0IHY0NTggPSB2NDMyIC8gdmVjNCgzKTsgIC8vIDYsIDYuNjY2Niwg
Ny4zMzMsIDQuNjY2NgorICBjb25zdCBtYXQ0IG00MzggPSBzMTEubSAvIGZmQ29uc3Q7ICAvLyBk
aWFnb25hbCAyLjUgYW5kIG90aGVycyAwcworICBjb25zdCBtYXQ0IG00MzkgPSBtYXQ0KGZmQ29u
c3QgLyBzMTEuZik7ICAvLyBkaWFnb25hbCAwLjVzCisgIGNvbnN0IG1hdDQgbTQ0MCA9IG00OCAv
IHMxMS5mOyAgLy8gZGlhZ29uYWwgMS43NSwgb3RoZXJzIDAuNXMKKworICBjb25zdCBtYXQ0IG00
NDMgPSBtNDggLyBtNDggOyAvLyBBbGwgMXMKKyAgY29uc3QgbWF0NCBtNDQ0ID0gbTQxMyAvIGZm
Q29uc3QgOyAvLyBkaWFnb25hbCA3LCBvdGhlcnMgMgorCisgIGNvbnN0IHZlYzQgdjQ1OSA9IGZm
Q29uc3QgLyB2NDIwOyAgLy8gLjI4NTcgLCAuMjUsIC4yMiwgLjQKKyAgY29uc3QgdmVjNCB2NDYw
ID0gIHMxMS5mIC8gdjQyOTsgIC8vIC4yODU3LCAuMjUsIC4yMiwgLjQKKyAgLy9jb25zdCBtYXQ0
IG00NDUgPSBmZkNvbnN0IC8gczExLm07ICAvLyBkaXZpZGUgYnkgemVybyBlcnJvcgorICBjb25z
dCBtYXQ0IG00NDYgPSBzMTEuZiAvIG00OCA7ICAvLyBkaWFnb25hbCAuNTcxLCAgb3RoZXJzIDIK
KyAgY29uc3QgbWF0NCBtNDQ3ID0gZmZDb25zdCAvIG00MTMgOyAvLyBkaWFnb25hbCAuMTQyOCwg
b3RoZXJzIDAuNQorCisgIGNvbnN0IHZlYzQgdjQ2MSA9IHY0NTMgKiBtNDI4OyAvLyAxMCwgMTAs
IDEwLCAxMAorICBjb25zdCB2ZWM0IHY0NjIgPSB2NDUzICogbTQzNzsgLy8gNTIsIDUyLCA1Miwg
NTIKKyAgY29uc3QgdmVjNCB2NDYzID0gbTQyOCAqIHY0NTE7IC8vIDE0MCwgMTYwLCAxODAsIDEw
MAorICBjb25zdCB2ZWM0IHY0NjQgPSBtNDM3ICogdjQ1MTsgLy8gNzQ0LCA3ODQsIDgyNCwgNjY0
CisKKyAgaW50IGlpID0gMjsKKyAgY29uc3QgaW50IGlpQ29uc3QgPSAyOworCisgIGNvbnN0IGl2
ZWM0IGk0MjAgPSBpdmVjNCggNyw4LDksNSk7ICAvLyA3LCA4LCA5LCA1CisKKyAgY29uc3QgaXZl
YzQgaTQyOSA9IGk0MjAgKyBpNDIwOyAvLyAxNCwgMTYsIDE4LCAxMAorICBjb25zdCBpdmVjNCBp
NDMwID0gaTQyMCArIGlpQ29uc3Q7ICAvLyA5LCAxMCwgMTEsNworICBjb25zdCBpdmVjNCBpNDMy
ID0gIGk0MjkgKyBzcy5pOyAgLy8gMTgsIDIwLCAyMiwgMTQKKworICBjb25zdCBpdmVjNCBpNDMz
ID0gaXZlYzQoc3MuaSArIHNzLmkpOyAgLy8gYWxsIDhzCisKKyAgY29uc3QgaXZlYzQgaTQzNSA9
IGlpQ29uc3QgKyBpNDIwOyAgLy8gOSwgMTAsIDExLDcKKyAgY29uc3QgaXZlYzQgaTQzNiA9ICBz
cy5pICsgaTQyOTsgIC8vIDE4LCAyMCwgMjIsIDE0CisKKyAgY29uc3QgaXZlYzQgaTQzNyA9IGk0
MjAgLSBpNDIwOyAvLyAwLCAwLCAwLCAwCisgIGNvbnN0IGl2ZWM0IGk0MzggPSBpNDIwIC0gaWlD
b25zdDsgIC8vIDUsIDYsIDcsMworICBjb25zdCBpdmVjNCBpNDQwID0gIGk0MjkgLSBzcy5pOyAg
Ly8gMTAsIDEyLCAxNCwgNgorCisgIGNvbnN0IGl2ZWM0IGk0NDEgPSBpdmVjNChzcy5pIC0gc3Mu
aSk7ICAvLyBhbGwgMHMKKworICBjb25zdCBpdmVjNCBpNDQzID0gaWlDb25zdCAtIGk0MjA7ICAv
LyAtNSwgLTYsIC03LC0zCisgIGNvbnN0IGl2ZWM0IGk0NDQgPSAgc3MuaSAtIGk0Mjk7ICAvLyAt
MTAsIC0xMiwgLTE0LCAtNgorCisgIGNvbnN0IGl2ZWM0IGk0NDUgPSBpNDIwICogaTQyMDsgLy8g
NDksIDY0LCA4MSwgMjUKKyAgY29uc3QgaXZlYzQgaTQ0NiA9IGk0MjAgKiBpaUNvbnN0OyAgLy8g
MTQsIDE2LCAxOCwxMAorICBjb25zdCBpdmVjNCBpNDQ4ID0gIGk0MjkgKiBzcy5pOyAgLy8gNTYs
IDY0LCA3MiwgNDAKKworICBjb25zdCBpdmVjNCBpNDQ5ID0gaXZlYzQoc3MuaSAqIHNzLmkpOyAg
Ly8gYWxsIDE2CisKKyAgY29uc3QgaXZlYzQgaTQ1MSA9IGlpQ29uc3QgKiBpNDIwOyAgLy8gMTQs
IDE2LCAxOCwxMAorICBjb25zdCBpdmVjNCBpNDUyID0gIHNzLmkgKiBpNDI5OyAgLy8gNTYsIDY0
LCA3MiwgNDAKKworICBjb25zdCBpdmVjNCBpNDUzID0gaTQyMCAvIGk0MjA7IC8vIDEsIDEsIDEs
IDEKKyAgY29uc3QgaXZlYzQgaTQ1NCA9IGk0MjAgLyBpaUNvbnN0OyAgLy8gMywgNCwgNCwyCisg
IGNvbnN0IGl2ZWM0IGk0NTYgPSAgaTQyOSAvIHNzLmk7ICAvLyAzLCA0LCA0LCAyCisKKyAgY29u
c3QgaXZlYzQgaTQ1NyA9IGl2ZWM0KHNzLmkgLyBzcy5pKTsgIC8vIGFsbCAxcworCisgIGNvbnN0
IGl2ZWM0IGk0NTkgPSBpaUNvbnN0IC8gaTQyMDsgIC8vIDAgLCAwLCAwLDAKKyAgY29uc3QgaXZl
YzQgaTQ2MCA9ICBzcy5pIC8gaTQyOTsgIC8vIDAsIDAsIDAsMAorCisgIGNvbnN0IGJ2ZWM0IGI0
MjQgPSBidmVjNChzMjIuYnY0KTsKKworICBjb25zdCBib29sIGIxID0gczIyLmJ2NCA9PSBiNDI0
OyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGIyID0gaTQyMCA9PSBpNDIwOyAgLy8gdHJ1ZQorICBj
b25zdCBib29sIGIzID0gaTQyMCA9PSBpNDQ1OyAgLy8gZmFsc2UKKyAgY29uc3QgYm9vbCBiNCA9
IHY0MjAgPT0gdjQyMDsgIC8vIHRydWUKKyAgY29uc3QgYm9vbCBiNSA9IG00MzAgPT0gbTQzNDsg
Ly8gdHJ1ZQorCisgIGNvbnN0IHZlYzQgdjQ2NSA9IC12NDIwOyAvLyAtNywgLTgsIC05LCAtNQor
ICBjb25zdCBtYXQ0IG00NDggPSAtbTQ0NyA7IC8vIGRpYWdvbmFsIC0uMTQyOCwgb3RoZXJzIC0w
LjUKKyAgY29uc3QgaXZlYzQgaTQ2NSA9IC1pNDU2IDsgIC8vIC0zLCAtNCwgLTQsLTIKKworICBj
b25zdCBib29sIGI3ID0gczIyID09IHMyMjsKKworICBjb25zdCB2ZWM0IHY0NjYgPSB2NDMyICsg
dmVjNCgzLDQsNSw2KTsgIC8vIDIxLCAyNCwgMjcsIDIwCisgIGNvbnN0IHZlYzQgdjQ2NyA9IHY0
MzIgKyB2ZWM0KHZlYzIoMyw0KSw1LDYpOyAgLy8gMjEsIDI0LCAyNywgMjAKKyAgY29uc3QgdmVj
NCB2NDY4ID0gdjQzMiArIHZlYzQoMywgdmVjMig0LCA1KSx2ZWMyKDYsNykpOyAgLy8gMjEsIDI0
LCAyNywgMjAKKyAgY29uc3QgdmVjNCB2NDY5ID0gdmVjNCh2NDY4KSArIHZlYzQoMykgKyB2NDY4
ICsgdmVjNChzNzcubTNbMl1bMF0pOyAvLyA0NSwgNTEsIDU3LCA0MworCisgIGNvbnN0IGJvb2wg
YjggPSBzcyA9PSBzczsgIC8vIHRydWUKKworICBzdHJ1Y3Qgc3Q2IHsKKyAgICAgICB2ZWMzIHY7
CisgIH07CisKKyAgc3RydWN0IHN0NSB7CisgICAgICBpbnQgaTsKKyAgICAgIGZsb2F0IGY7Cisg
ICAgICBzdDYgIHN0NjY7CisgIH0gc3Q1NTsKKworICBjb25zdCBzdDUgc3Q1NTEgPSBzdDUoMiwg
NC4wLCBzdDYodmVjMyg3KSkpOworICBjb25zdCBzdDUgc3Q1NTIgPSBzdDUoMiwgNC4wLCBzdDYo
dmVjMyg3KSkpOworCisgIGNvbnN0IGJvb2wgYjEwID0gc3Q1NTEgPT0gc3Q1NTI7ICAvLyB0cnVl
CisKKyAgY29uc3QgYm9vbCBiMTEgPSBzdDU1MS5zdDY2ID09IHN0NTUyLnN0NjY7ICAvLyB0cnVl
CisKKyAgY29uc3Qgc3Q1IHN0NTUzID0gc3Q1KDIsIDQuMCwgc3Q2KHZlYzMoOCkpKTsKKworICBj
b25zdCBib29sIGIxMiA9IHN0NTUxLnN0NjYgPT0gc3Q1NTMuc3Q2NjsgIC8vIGZhbHNlCisgIGNv
bnN0IGJvb2wgYjEzID0gc3Q1NTEgPT0gc3Q1NTM7ICAvLyBmYWxzZQorCisgIGNvbnN0IGJvb2wg
YjE0ID0gc3Q1NTEgIT0gc3Q1NTI7ICAvLyBmYWxzZQorICBjb25zdCBib29sIGIxNSA9IHN0NTUx
LnN0NjYgIT0gc3Q1NTIuc3Q2NjsgIC8vIGZhbHNlCisgIGNvbnN0IGJvb2wgYjE2ID0gc3Q1NTEu
c3Q2NiAhPSBzdDU1My5zdDY2OyAgLy8gdHJ1ZQorICBjb25zdCBib29sIGIxNyA9IHN0NTUxICE9
IHN0NTUzOyAgLy8gdHJ1ZQorCisgIGNvbnN0IGJvb2wgYjE4ID0gczIyLmJ2NCAhPSBiNDI0OyAg
Ly8gZmFsc2UKKyAgY29uc3QgYm9vbCBiMTkgPSBpNDIwICE9IGk0MjA7ICAvLyBmYWxzZQorICBj
b25zdCBib29sIGIyMCA9IGk0MjAgIT0gaTQ0NTsgIC8vIHRydWUKKyAgY29uc3QgYm9vbCBiMjEg
PSB2NDIwICE9IHY0MjA7ICAvLyBmYWxzZQorICBjb25zdCBib29sIGIyMiA9IG00MzAgIT0gbTQz
NDsgLy8gZmFsc2UKKworICBjb25zdCBpbnQgaW50MTAgPSBpNDIwLnh5Lnk7ICAvLyA4CisKKyAg
Ly9mbG9hdCBmID0gdjQ3MC54OworCisKKworICBjb25zdCBpbnQgaW50MTMgPSAtc3MuaTsKKwor
ICBjb25zdCB2ZWM0IHY0NzQgPSAtdmVjNCgwLjUpOworCisgIGludCBpbnQxNCA9IGlpKys7Cisg
IGludCBhcnJheVszXTsKKyAgYXJyYXlbMl07CisKKyAgY29uc3QgdmVjNCB2NDc4ID0gdjQ2NiAq
IDIuMDsgLy8gNDIsIDQ4LCA1NCwgNDAKKworICBjb25zdCB2ZWM0IHY0NzkgPSBpaUNvbnN0ID4g
MSA/IHY0NjYgOiB2NDc4OyAvLyAyMSwgMjQsIDI3LCAyMAorCisgIGNvbnN0IHN0cnVjdCBzdDcg
eworICAgICAgIGludCBpOworICAgICAgIGJvb2wgYjsKKyAgfSBzdDc3ID0gc3Q3KHNzLmksIHRy
dWUpOworCisgIGNvbnN0IHZlYzQgdjQ4MSA9IHZlYzQoc3Q3Ny5pKTsKKworICBjb25zdCBzdHJ1
Y3Qgc3Q4IHsKKyAgICAgIGludCBpOworICB9IDsKKworCisgIGNvbnN0IHN0cnVjdCBzdDkgewor
ICAgICAgczIgc3M7CisgIH0gc3Q5OSA9IHN0OShzMjIpOworCisgIGNvbnN0IHZlYzMgdjMxMiA9
IHN0OTkuc3MudjM7ICAgLy8gOSwgMTAsIDExCisgIGNvbnN0IHZlYzQgdjQ4MiA9IG1hdDQoMSlb
MF07ICAvLyAxLCAwLCAwICwgMAorCisgIGNvbnN0IG1hdDQgbTQ1MCA9IG1hdDQoc3MuaSk7ICAv
LyBtYXQ0KDQpCisgIGNvbnN0IG1hdDQgbTQ1MSA9IG1hdDQoYjIwKTsgICAvLyBtYXQ0KDEpCisg
IGNvbnN0IG1hdDQgbTQ1MiA9IG1hdDQoc3Q3Ny5iKTsgLy8gbWF0NCgxKQorCisgIGNvbnN0IHZl
YzQgdjQ4MyA9IHZlYzQodmVjNCgzKS54KTsgIC8vIDMsMywzLDMKKyAgY29uc3QgbWF0NCBtNDUz
ID0gbWF0NCh2ZWM0KDUpLngpOyAgLy8gbWF0NSg1KQorCisgIGNvbnN0IHZlYzQgdjQ4NCA9IHZl
YzQobWF0NCg2KVsxXSk7ICAvLyAwLDYsMCwwCisgIGNvbnN0IG1hdDQgbTQ1NCA9IG1hdDQobWF0
NCg2KVsxXVsxXSk7ICAvLyBtYXQ0KDYpCisKKyAgY29uc3QgdmVjNCB2NDg1ID0gdmVjNChzdDco
OCwgdHJ1ZSkuYik7ICAvLyAxLDEsMSwxCisKKyAgY29uc3QgdmVjNCB2NDg3ID0gdmVjNCh2ZWM0
KDEyLCAxMywgMTQsIDE1KS5hYiwgMTIsIDE0KTsKKworICBpbnQgaTIwID0gc3MuaTsKKyAgY29u
c3QgdmVjNCB2NDg5ID0gLXZlYzQoNyw4LDksNSk7IC8vIC03LCAtOCwgLTksIC01CisKKyAgZ2xf
UG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVj
dENvbnN0cnVjdF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0Q29uc3RydWN0X3Zl
cnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ5YjM3OGU1NWRmOTJhZTQ5YzgwYjllODE2OTUxOTUyYWFl
YTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdENvbnN0cnVjdF92
ZXJ0LnZlcnQKQEAgLTAsMCArMSwzNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworc3RydWN0IHMgeworICAgIGZsb2F0IGY7Cit9IHMxID0gcygxLjAp
OworCitzdHJ1Y3QgczMgeworICAgaW50IGk7Cit9IHMzSW5zdDsKKworc3RydWN0IHMyIHsKKyAg
ICBmbG9hdCBmOworICAgIHMzIHMzSW5zdDsKK30gczJJbnN0ID0gczIoMS4wLCBzMygxKSk7CisK
K3ZvaWQgbWFpbigpCit7CisgICAgdmVjMyBpID0gdmVjMyg1LjAsIDQuMCwgaXZlYzIoMi4wLCAx
LjApKTsKKyAgICBpdmVjNCB2MiA9IGl2ZWM0KDEuMCk7CisgICAgdmVjNCB2NCA9IHZlYzQodjIp
OworICAgIGJ2ZWM0IHY1ID0gYnZlYzQodjIpOworICAgIHZlYzMgdjYgPSB2ZWMzKHY1KTsKKyAg
ICB2ZWMzIHYgPSB2ZWMzKDIsIDIuMCwgMSk7CisgICAgdmVjMyB2MSA9IHZlYzMoMS4yLCB2KTsK
KworICAgIG1hdDMgbTEgPSBtYXQzKHYsdix2KTsKKyAgICBtYXQyIG0yID0gbWF0Mih2LCB2Ni54
KTsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLjApOworfQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9Db3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY3ZWI2
YTAyMmVkYzExMTgyZjU1NTAyYzFlY2VlZWE3ZDhmMzM1YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDI2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
dmVyc2lvbiAxMDAKKyNleHRlbnNpb24gZXh0ZW5zaW9uZm9vIDogZW5hYmxlICAvLyB3YXJuaW5n
IGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGRpc2Fi
bGUgIC8vIHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNleHRlbnNpb24gZXh0ZW5z
aW9uZm9vIDogd2FybiAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAorCisjZXh0
ZW5zaW9uIGFsbCA6IGRpc2FibGUgLy8gbm8gZXJyb3IgaW4gdGhlIHByb2dyYW0KKyNleHRlbnNp
b24gYWxsIDogd2FybiAvLyBubyBlcnJvciBpbiB0aGUgcHJvZ3JhbQorCisjZXh0ZW5zaW9uIGV4
dGVuc2lvbmZvbyA6IGVuYWJsZSAgLy8gd2FybmluZyBleHRlbnNpb24gbm90IHN1cHBvcnRlZAor
I2V4dGVuc2lvbiBleHRlbnNpb25mb28gOiBkaXNhYmxlICAvLyB3YXJuaW5nIGV4dGVuc2lvbiBu
b3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IHdhcm4gIC8vIHdhcm5pbmcg
ZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
Q29ycmVjdEV4dGVuc2lvbjFfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRkNDk3ZDQzMzIx
ODYwMWNmMjQ2NDc4N2RmYTY5ODA3ZDczZjM2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNleHRlbnNp
b24gYWxsIDogZGlzYWJsZSAvLyBubyBlcnJvciBpbiB0aGUgcHJvZ3JhbQorI2V4dGVuc2lvbiBh
bGwgOiB3YXJuIC8vIG5vIGVycm9yIGluIHRoZSBwcm9ncmFtCisjaWZkZWYgR0xfRVMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RFeHRlbnNpb240X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUwMTNlODVmODkxNDlkNWJiYmMxNzk5MjhiYzRjZjZhYmJkNzU4YzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6IGVuYWJsZSAgLy8gd2FybmluZyBleHRlbnNp
b24gbm90IHN1cHBvcnRlZAorI2V4dGVuc2lvbiBleHRlbnNpb25mb28gOiBkaXNhYmxlICAvLyB3
YXJuaW5nIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkCisjZXh0ZW5zaW9uIGV4dGVuc2lvbmZvbyA6
IHdhcm4gIC8vIHdhcm5pbmcgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKwordm9pZCBtYWluKCkKK3sKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdWxsX3ZlcnQudmVydCBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RGdWxsX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGYxNGFkMjdiZDFiYmQ0
NzA4NjE2ZTJhMzQ3N2ZiY2I3ZTUxMzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvQ29ycmVjdEZ1bGxfdmVydC52ZXJ0CkBAIC0wLDAgKzEsNjU0IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCitzdHJ1Y3QgZ3RmX01hdGVyaWFsUGFy
YW1ldGVycworewordmVjNCBlbWlzc2lvbjsKK3ZlYzQgYW1iaWVudDsKK3ZlYzQgZGlmZnVzZTsK
K3ZlYzQgc3BlY3VsYXI7CitmbG9hdCBzaGluaW5lc3M7Cit9Oworc3RydWN0IGd0Zl9MaWdodFNv
dXJjZVBhcmFtZXRlcnMKK3sKK3ZlYzQgYW1iaWVudDsKK3ZlYzQgZGlmZnVzZTsKK3ZlYzQgc3Bl
Y3VsYXI7Cit2ZWM0IHBvc2l0aW9uOwordmVjNCBoYWxmVmVjdG9yOwordmVjMyBzcG90RGlyZWN0
aW9uOworZmxvYXQgc3BvdEV4cG9uZW50OworZmxvYXQgc3BvdEN1dG9mZjsKK2Zsb2F0IHNwb3RD
b3NDdXRvZmY7CitmbG9hdCBjb25zdGFudEF0dGVudWF0aW9uOworZmxvYXQgbGluZWFyQXR0ZW51
YXRpb247CitmbG9hdCBxdWFkcmF0aWNBdHRlbnVhdGlvbjsKK307CitzdHJ1Y3QgZ3RmX1BvaW50
UGFyYW1ldGVycyB7CitmbG9hdCBzaXplOworZmxvYXQgc2l6ZU1pbjsKK2Zsb2F0IHNpemVNYXg7
CitmbG9hdCBmYWRlVGhyZXNob2xkU2l6ZTsKK2Zsb2F0IGRpc3RhbmNlQ29uc3RhbnRBdHRlbnVh
dGlvbjsKK2Zsb2F0IGRpc3RhbmNlTGluZWFyQXR0ZW51YXRpb247CitmbG9hdCBkaXN0YW5jZVF1
YWRyYXRpY0F0dGVudWF0aW9uOworfTsKK3N0cnVjdCBndGZfRGVwdGhSYW5nZVBhcmFtZXRlcnMg
eworZmxvYXQgbmVhcjsKK2Zsb2F0IGZhcjsKK2Zsb2F0IGRpZmY7Cit9Oworc3RydWN0IGd0Zl9M
aWdodE1vZGVsUGFyYW1ldGVycyB7Cit2ZWM0IGFtYmllbnQ7Cit9Oworc3RydWN0IGd0Zl9MaWdo
dE1vZGVsUHJvZHVjdHMgewordmVjNCBzY2VuZUNvbG9yOworfTsKK3N0cnVjdCBndGZfTGlnaHRQ
cm9kdWN0cyB7Cit2ZWM0IGFtYmllbnQ7Cit2ZWM0IGRpZmZ1c2U7Cit2ZWM0IHNwZWN1bGFyOwor
fTsKK3N0cnVjdCBndGZfRm9nUGFyYW1ldGVycyB7Cit2ZWM0IGNvbG9yOworZmxvYXQgZGVuc2l0
eTsKK2Zsb2F0IHN0YXJ0OworZmxvYXQgZW5kOworZmxvYXQgc2NhbGU7Cit9OwordW5pZm9ybSBp
bnQgZ3RmX01heEZyYWdtZW50VW5pZm9ybUNvbXBvbmVudHM7Cit1bmlmb3JtIGludCBndGZfTWF4
VmVydGV4VW5pZm9ybUNvbXBvbmVudHM7Cit1bmlmb3JtIGludCBndGZfTWF4VmVydGV4VGV4dHVy
ZUltYWdlVW5pdHM7Cit1bmlmb3JtIGludCBndGZfTWF4TGlnaHRzOwordW5pZm9ybSBpbnQgZ3Rm
X01heENsaXBQbGFuZXM7Cit1bmlmb3JtIGludCBndGZfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VV
bml0czsKK3VuaWZvcm0gaW50IGd0Zl9NYXhUZXh0dXJlQ29vcmRzOwordW5pZm9ybSBpbnQgZ3Rm
X01heFZlcnRleEF0dHJpYnM7Cit1bmlmb3JtIGludCBndGZfTWF4VmFyeWluZ0Zsb2F0czsKK3Vu
aWZvcm0gaW50IGd0Zl9NYXhUZXh0dXJlVW5pdHM7Cit1bmlmb3JtIGludCBndGZfTWF4RHJhd0J1
ZmZlcnM7Cit1bmlmb3JtIGludCBndGZfTWF4VGV4dHVyZUltYWdlVW5pdHM7Cit1bmlmb3JtIGd0
Zl9MaWdodFByb2R1Y3RzIGd0Zl9Gcm9udExpZ2h0UHJvZHVjdFs4XTsKK3VuaWZvcm0gZ3RmX0xp
Z2h0TW9kZWxQcm9kdWN0cyBndGZfRnJvbnRMaWdodE1vZGVsUHJvZHVjdDsKK3VuaWZvcm0gZ3Rm
X0RlcHRoUmFuZ2VQYXJhbWV0ZXJzIGd0Zl9EZXB0aFJhbmdlOwordW5pZm9ybSBndGZfRm9nUGFy
YW1ldGVycyBndGZfRm9nOwordW5pZm9ybSBndGZfUG9pbnRQYXJhbWV0ZXJzIGd0Zl9Qb2ludDsK
K3VuaWZvcm0gZ3RmX0xpZ2h0TW9kZWxQYXJhbWV0ZXJzIGd0Zl9MaWdodE1vZGVsOwordmFyeWlu
ZyB2ZWM0IGd0Zl9Gb2dGcmFnQ29vcmQ7Cit2YXJ5aW5nIHZlYzQgZ3RmX0JhY2tDb2xvcjsKK3Zh
cnlpbmcgdmVjNCBndGZfQmFja1NlY29uZGFyeUNvbG9yOwordmFyeWluZyB2ZWM0IGd0Zl9Gcm9u
dFNlY29uZGFyeUNvbG9yOwordmFyeWluZyB2ZWM0IGd0Zl9UZXhDb29yZFsyXTsKK3Zhcnlpbmcg
dmVjNCBndGZfRnJvbnRDb2xvcjsKK3VuaWZvcm0gZ3RmX01hdGVyaWFsUGFyYW1ldGVycyBndGZf
RnJvbnRNYXRlcmlhbDsKK3VuaWZvcm0gZ3RmX0xpZ2h0U291cmNlUGFyYW1ldGVycyBndGZfTGln
aHRTb3VyY2VbOF07CithdHRyaWJ1dGUgdmVjNCBndGZfTXVsdGlUZXhDb29yZDE7CithdHRyaWJ1
dGUgdmVjNCBndGZfTXVsdGlUZXhDb29yZDI7CithdHRyaWJ1dGUgdmVjNCBndGZfU2Vjb25kYXJ5
Q29sb3I7CithdHRyaWJ1dGUgdmVjNCBndGZfQ29sb3I7CithdHRyaWJ1dGUgdmVjNCBndGZfTXVs
dGlUZXhDb29yZDM7CithdHRyaWJ1dGUgdmVjNCBndGZfTXVsdGlUZXhDb29yZDA7CithdHRyaWJ1
dGUgdmVjNCBndGZfTm9ybWFsOworYXR0cmlidXRlIHZlYzQgZ3RmX1ZlcnRleDsKK3VuaWZvcm0g
bWF0NCBndGZfTm9ybWFsTWF0cml4OwordW5pZm9ybSBtYXQ0IGd0Zl9Qcm9qZWN0aW9uTWF0cml4
OwordW5pZm9ybSBtYXQ0IGd0Zl9UZXh0dXJlTWF0cml4WzhdOwordW5pZm9ybSBtYXQ0IGd0Zl9N
b2RlbFZpZXdNYXRyaXg7Cit1bmlmb3JtIG1hdDQgZ3RmX01vZGVsVmlld1Byb2plY3Rpb25NYXRy
aXg7Cit2b2lkIHRlc3RfZnVuY3Rpb24oY29uc3QgaW4gaW50IGluX2ludCwgaW5vdXQgaW50IG91
dF9pbnQpOworaW50IHRlc3RfZnVuY3Rpb24xKGluIGludCBpbl9pbnQxLCBpbm91dCBpbnQgaW5f
b3V0X2ludCk7CisKK3VuaWZvcm0gZmxvYXQgYXJyYXlfZmxvYXRbMl07CisKK3N0cnVjdCBuZXN0
ZWQKK3sKKyAgIGludCBhOworICAgZmxvYXQgZjsKK307CisKK3N0cnVjdCBsaWdodDEKK3sKKyAg
IGZsb2F0IGludGVuc2l0eTsKKyAgIHZlYzMgcG9zaXRpb247CisgICBpbnQgdGVzdF9pbnRbMl07
CisgICBuZXN0ZWQgbGlnaHQyOworfSBsaWdodFZhcjsKK2xpZ2h0MSBsbDI7CisKK3ZvaWQgQXNz
aWduIChvdXQgbGlnaHQxIG91dDEsIGluIGxpZ2h0MSBpbjEpCit7CisgICAgb3V0MS5pbnRlbnNp
dHkgPSBpbjEuaW50ZW5zaXR5OworICAgICBvdXQxLnBvc2l0aW9uID0gaW4xLnBvc2l0aW9uOwor
ICBvdXQxLnRlc3RfaW50WzBdID0gaW4xLnRlc3RfaW50WzBdOworICBvdXQxLnRlc3RfaW50WzFd
ID0gaW4xLnRlc3RfaW50WzFdOworICAgICAgIG91dDEubGlnaHQyID0gaW4xLmxpZ2h0MjsKK30K
Kworc3RydWN0IGxpZ2h0MyB7CisgICAgZmxvYXQgaTsKK307CisKK3N0cnVjdCBsaWdodDQgewor
ICAgIGZsb2F0IGk7Cit9OworCitzdHJ1Y3QgbGlnaHQ1IHsKKyAgICBmbG9hdCBpIDsKKyAgICBm
bG9hdCBhWzJdOworfSBsaWdodDVfaW5zdDsKKwordW5pZm9ybSBsaWdodDMgdW5pZm9ybUxpZ2h0
MzsKKworc3RydWN0IGxpZ2h0NiB7CisgICAgZmxvYXQgaTsKK307Cit1bmlmb3JtIGxpZ2h0NiB1
bmlmb3JtTGlnaHQ2OworCitzdHJ1Y3Qgc2xpZ2h0MTB7CisgICAgIGZsb2F0IGY7CisgICAgIH07
CitzdHJ1Y3Qgc2xpZ2h0OXsKKyAgICAgc2xpZ2h0MTAgbGlnaHQxMDsKKyAgICAgfTsKK3N0cnVj
dCBzbGlnaHQ4eworICAgICBzbGlnaHQ5IGxpZ2h0OTsKKyAgICAgfTsKK3N0cnVjdCBsaWdodDcg
eworICBzbGlnaHQ4IGxpZ2h0ODsKK30gOworCisKK2xpZ2h0MyBzdHJ1Y3RfdmFyID0gbGlnaHQz
KDUuMCk7CisKKy8vIEF0dHJpYnR1ZSB2YXJpYWJsZXMgY2FuIG9ubHkgYmUgR2xvYmFsCithdHRy
aWJ1dGUgZmxvYXQgZmx0X2F0dHJpYjsKK2F0dHJpYnV0ZSB2ZWMyIHZlYzJfYXR0cmliOworYXR0
cmlidXRlIHZlYzMgdmVjM19hdHRyaWI7CithdHRyaWJ1dGUgdmVjNCB2ZWM0X2F0dHJpYjsKK2F0
dHJpYnV0ZSBtYXQyIG1hdDJfYXR0cmliOworYXR0cmlidXRlIG1hdDMgbWF0M19hdHRyaWI7Cith
dHRyaWJ1dGUgbWF0NCBtYXQ0X2F0dHJpYjsKKwordW5pZm9ybSBmbG9hdCBmbHRfdW5pZm9ybTsK
K3VuaWZvcm0gdmVjMyB1bmlmb3JtX3ZlYzM7Cit1bmlmb3JtIG1hdDMgdW5pZm9ybV9tYXQzOwor
Cit1bmlmb3JtIHNhbXBsZXIyRCBzYW1wWzNdOwordW5pZm9ybSBzYW1wbGVyMkQgc2FtcDE7CisK
K2NvbnN0IHN0cnVjdCBsaWdodDEyIHsKKyAgICBpbnQgYTsKK30gdW5pZm9ybV9zdHJ1Y3QgPSBs
aWdodDEyKDIpOworCit2YXJ5aW5nIHZlYzMgdmFyeWluZ192ZWMzOwordmFyeWluZyB2ZWMyIHZh
cnlpbmdfdmVjMjsKK3ZhcnlpbmcgdmVjNCB2YXJ5aW5nX3ZlYzQ7Cit2YXJ5aW5nIG1hdDQgdmFy
eWluZ19tYXQ0OwordmFyeWluZyBtYXQyIHZhcnlpbmdfbWF0MjsKK3ZhcnlpbmcgbWF0MyB2YXJ5
aW5nX21hdDM7Cit2YXJ5aW5nIGZsb2F0IHZhcnlpbmdfZmx0OworCitmbG9hdCBmcmVxdWVuY2ll
c1syXTsKKwordm9pZCB0ZXN0X2Z1bmN0aW9uMihpbnQgZnVuY19pbnQpCit7Cit9CisKK3ZvaWQg
dGVzdF9mdW5jdGlvbjMobGlnaHQzKTsKK3ZvaWQgdGVzdF9mdW5jdGlvbjQobGlnaHQ1IGxsMjAp
Owordm9pZCB0ZXN0X2Z1bmN0aW9uNShsaWdodDEpOworbGlnaHQ2IHRlc3RfZnVuY3Rpb242KGlu
dCBhKTsKKworY29uc3QgZmxvYXQgRmxvYXRDb25zdDEgPSAzLjAgKiA4LjAsIGZsb2F0Q29uc3Qy
ID0gNC4wOworY29uc3QgYm9vbCBCb29sQ29uc3QxID0gdHJ1ZSAmJiB0cnVlIHx8IGZhbHNlOwor
Y29uc3QgYm9vbCBCb29sQ29uc3QyID0gZmFsc2UgfHwgIWZhbHNlICYmIGZhbHNlOworCit2b2lk
IG1haW4odm9pZCkKK3sKKworICAgIGludCB0ZXN0X2ludDEgPSAyOworICAgIGNvbnN0IGludCBj
b25zdF90ZXN0X2ludDEgPSAyOworCisgICAgc3RydWN0IHN0cnVjdE1haW4geworICAgICAgICBm
bG9hdCBpOworICAgIH0gdGVzdFN0cnVjdDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIHN0cnVj
dE1haW4gYTsKKyAgICB9IGFTdHJ1Y3Q7CisKKyAgICB0ZXN0U3RydWN0LmkgPSA1LjAgOworICAg
IHN0cnVjdF92YXIuaSA9IDUuMDsKKworICAgIHN0cnVjdE1haW4gbmV3U3RydWN0LCBuZXdTdHJ1
Y3QxOworICAgIHRlc3RTdHJ1Y3QgPSBuZXdTdHJ1Y3Q7CisgICAgbmV3U3RydWN0ID0gbmV3U3Ry
dWN0MTsKKworICAgIGxpZ2h0VmFyLmxpZ2h0Mi5mID0gMS4xOworCisgICAgbGlnaHQxIGxsMTsK
KyAgICBsbDEubGlnaHQyLmEgPSAxOworCisgICAgIGNvbnN0IHN0cnVjdCBjb25zdF9zdHJ1Y3Qg
eworICAgICAgICBmbG9hdCBpOworICAgIH0gY29uc3Rfc3RydWN0X2luc3QgPSBjb25zdF9zdHJ1
Y3QoMS4wKTsKKworICAgIC8vbGwxID0gbGwyOworICAgIEFzc2lnbiAobGwxLCBsbDIpOworICAg
IGxsMS5saWdodDIgPSBsbDIubGlnaHQyOworICAgIGxsMS5saWdodDIgPSBsbDEubGlnaHQyOwor
ICAgIGxsMS5saWdodDIuZiA9IGxsMi5saWdodDIuZjsKKyAgICBsbDEubGlnaHQyLmYgPSBsbDEu
bGlnaHQyLmY7CisKKyAgICAvLyAgICBsaWdodFZhciA9IGxsMjsKKyAgICAvLyAgICBsbDIgPSBs
aWdodFZhcjsKKyAgICBBc3NpZ24gKGxpZ2h0VmFyLCBsbDIpOworICAgIEFzc2lnbiAobGwyLCBs
aWdodFZhcik7CisKKyAgICBsaWdodDUgbGwxMDsKKworICAgIGxpZ2h0NyBsbDdbNF07CisgICAg
c3RydWN0TWFpbiBuZXdTdHJ1Y3QyWzJdOworICAgIG5ld1N0cnVjdDJbMF0uaSA9IDEuMTsKKwor
ICAgIGxsN1swXS5saWdodDgubGlnaHQ5LmxpZ2h0MTAuZiA9IDEuMTsKKworCisgICAgYm9vbCB0
ZXN0X2Jvb2w0ID0gZmFsc2UgOworCisgICAgYm9vbCB0ZXN0X2Jvb2w1ID0gMS4yID4gMy4wIDsK
KworICAgIGludCB0ZXN0X2ludDIgPSAgMDQ3OworICAgIGludCB0ZXN0X2ludDQgPSAgMHhhODsg
IC8vIHRlc3RpbmcgZm9yIGhleGFkZWNpbWFsIG51bWJlcnMKKworICAgIGZsb2F0IHRlc3RfZmxv
YXQxID0gMS41OworICAgIGZsb2F0IHRlc3RfZmxvYXQyID0gLjAxOworICAgIGZsb2F0IHRlc3Rf
ZmxvYXQzID0gMTAuOworICAgIGZsb2F0IHRlc3RfZmxvYXQ0ID0gMTAuMDE7CisgICAgZmxvYXQg
dGVzdF9mbG9hdDUgPSAyM2UrMjsKKyAgICBmbG9hdCB0ZXN0X2Zsb2F0NiA9IDIzRS0zOworICAg
IGZsb2F0IHRlc3RfZmxvYXQ4ID0gMjNFMjsKKyAgICBib29sIHRlc3RfYm9vbDYgPSBCb29sQ29u
c3QxICYmICEgKHRlc3RfaW50MSAhPSAwKSAmJiAhIEJvb2xDb25zdDEgICYmICEgKEZsb2F0Q29u
c3QxICE9IDAuMCkgJiYgKEZsb2F0Q29uc3QxICE9IDAuMCkgJiYgKHRlc3RfZmxvYXQxICE9IDAu
MCk7CisKKyAgICB2ZWM0IGNvbG9yID0gdmVjNCgwLjAsIDEuMCwgMC4wLCAxLjApOworICAgIHZl
YzQgY29sb3IyID0gdmVjNCgwLjApOworCisgICAgdmVjMyBjb2xvcjQgPSB2ZWMzKHRlc3RfZmxv
YXQ4KTsKKworICAgIGl2ZWM0IHRlc3RfaW50X3ZlY3QxID0gaXZlYzQoMS4wLDEuMCwxLjAsMS4w
KTsKKyAgICBpdmVjMyB0ZXN0X2ludF92ZWMzID0gaXZlYzMoMSwgMSwgMSkgOworCisgICAgYnZl
YzQgdGVzdF9ib29sX3ZlY3QxID0gYnZlYzQoMS4sIDEuLCAxLiAsIDEuICk7CisKKyAgICB2ZWMy
IHRlc3RfdmVjMiA9IHZlYzIoMS4sIDEuKTsKKyAgICB2ZWMyIHRlc3RfdmVjMyA9IHZlYzIoMS4s
IDEpOworICAgIHZlYzQgdGVzdF92ZWM0ID0gdmVjNCh0ZXN0X2ludF92ZWN0MSk7CisKKyAgICB2
ZWMyIHRlc3RfdmVjNSA9IHZlYzIoY29sb3I0KTsKKyAgICB2ZWMzIHRlc3RfdmVjNyA9IHZlYzMo
Y29sb3IpOworICAgIHZlYzMgdGVzdF92ZWM4ID0gdmVjMyh0ZXN0X3ZlYzIsIHRlc3RfZmxvYXQ0
KTsKKyAgICB2ZWMzIHRlc3RfdmVjOSA9IHZlYzModGVzdF9mbG9hdDQsIHRlc3RfdmVjMik7CisK
KyAgICB2ZWM0IHRlc3RfdmVjMTAgPSB2ZWM0KHRlc3RfdmVjOSwgMC4wMSk7CisgICAgdmVjNCB0
ZXN0X3ZlYzExID0gdmVjNCgwLjAxLCB0ZXN0X3ZlYzkpOworCisgICAgdmVjNCB0ZXN0X3ZlYzEy
ID0gdmVjNCh0ZXN0X3ZlYzIsIHRlc3RfdmVjMik7CisKKyAgICBtYXQyIHRlc3RfbWF0MiA9IG1h
dDIodGVzdF9mbG9hdDMpOworICAgIG1hdDMgdGVzdF9tYXQzID0gbWF0Myh0ZXN0X2Zsb2F0Myk7
CisgICAgbWF0NCB0ZXN0X21hdDQgPSBtYXQ0KHRlc3RfZmxvYXQzKTsKKworICAgIG1hdDIgdGVz
dF9tYXQ3ID0gbWF0Mih0ZXN0X3ZlYzIsIHRlc3RfdmVjMik7CisgICAgbWF0MiB0ZXN0X21hdDgg
PSBtYXQyKDAxLjAxLCAyLjAxLCAzLjAxLCA0LjAxKTsKKworICAgIG1hdDMgdGVzdF9tYXQ5ID0g
bWF0Myh0ZXN0X3ZlYzcsIHRlc3RfdmVjNywgdGVzdF92ZWM3KTsKKyAgICBtYXQ0IHRlc3RfbWF0
MTAgPSBtYXQ0KHRlc3RfdmVjMTAsIHRlc3RfdmVjMTAsIHRlc3RfdmVjMTAsIHRlc3RfdmVjMTAp
OworICAgIHRlc3RfbWF0MTBbMV0gPSB0ZXN0X3ZlYzEwOworCisKKyAgICBtYXQyIHRlc3RfbWF0
MTIgPSBtYXQyKHRlc3RfdmVjMiwgMC4wMSwgMC4wMSk7CisgICAgbWF0MiB0ZXN0X21hdDEzID0g
bWF0MigwLjAxLCA1LiwgdGVzdF92ZWMyKTsKKyAgICBtYXQyIHRlc3RfbWF0MTUgPSBtYXQyKDAu
MSwgNS4sIHRlc3RfdmVjMiApOworCisgICAgLy9tYXQyIHRlc3RfbWF0MTYgPSBtYXQyKHRlc3Rf
bWF0OSk7CisgICAgLy9tYXQyIHRlc3RfbWF0MTcgPSBtYXQyKHRlc3RfbWF0MTApOworCisgICAg
ZmxvYXQgZnJlcTFbMl07CisgICAgZmxvYXQgZnJlcTJbMjVdOworCisgICAgZm9yIChpbnQgaT0w
OyBpPDEwMDsgaSsrKQorICAgIHsKKyAgICAgIGlmICh0ZXN0X2Zsb2F0MSA8IDEuMCkKKyAgICAg
IHsKKworICAgICAgfQorICAgICAgZWxzZQorICAgICAgeworICAgICAgICBicmVhazsKKyAgICAg
IH0KKyAgICB9CisKKyAgICBmcmVxMlsxXSA9IDEuOSA7CisgICAgY29uc3QgaW50IGFycmF5X2lu
ZGV4ID0gMjsKKyAgICBmcmVxMltjb25zdF90ZXN0X2ludDFdID0gMS45IDsKKyAgICBmcmVxMlth
cnJheV9pbmRleF0gPSAxLjg7CisKKyAgICBjb25zdCBpbnQgY29uc3RfaW50ID0gNTsKKworICAg
IHRlc3RfZmxvYXQxID0gdmFyeWluZ19mbHQ7CisKKyAgICBpbnQgb3V0X2ludDsKKyAgICBpbnQg
aW50QXJyYXlbNl07CisgICAgdGVzdF9mdW5jdGlvbih0ZXN0X2ludDEsIHRlc3RfaW50MSk7Cisg
ICAgdGVzdF9mdW5jdGlvbih0ZXN0X2ludDEsIGludEFycmF5WzJdKTsKKworICAgIHZlYzMgdnYg
PSB2ZWMzKHRlc3RfZnVuY3Rpb24xKHRlc3RfaW50MSwgb3V0X2ludCkpOworICAgIGJvb2wgYm9v
bF92YXIgPSB0cnVlOworICAgIGludCB0ZXN0X2ludDYgPSBpbnQoYm9vbF92YXIpOworICAgIHRl
c3RfZmxvYXQxID0gZmxvYXQoYm9vbF92YXIpOworICAgIHRlc3RfZmxvYXQxID0gZmxvYXQodGVz
dF9pbnQ2KTsKKyAgICB0ZXN0X2ludDYgPSBpbnQodGVzdF9mbG9hdDEpOworICAgIGJvb2xfdmFy
ID0gYm9vbCh0ZXN0X2ludDYpOworICAgIGJvb2xfdmFyID0gYm9vbCh0ZXN0X2Zsb2F0MSk7Cisg
ICAgdGVzdF9mbG9hdDEgPSBmbG9hdCh0ZXN0X3ZlYzkpOworCisgICAgdGVzdF92ZWMyLnggPSAx
LjI7CisgICAgdGVzdF92ZWMyLnkgPSAxLjQ7CisgICAgdGVzdF92ZWMyLnh5OworCisKKyAgICBj
b2xvci56eSA9IHRlc3RfdmVjMjsKKworICAgdGVzdF92ZWMyWzFdID0gMS4xOworCisgICAgIHRl
c3RfbWF0MlswXVswXSA9IDEuMTsKKworICAgIHRlc3RfZmxvYXQxICs9IDEuMDsKKyAgICB0ZXN0
X2Zsb2F0MSAtPSAxLjA7CisgICAgdGVzdF9mbG9hdDEgKj0gMS4wOworICAgIHRlc3RfZmxvYXQx
IC89IDEuMDsKKworICAgIHRlc3RfbWF0MTIgKj0gdGVzdF9tYXQxMyA7CisgICAgdGVzdF9tYXQx
MiAgKj0gdGVzdF9mbG9hdDE7CisgICAgdGVzdF92ZWMyICo9IHRlc3RfZmxvYXQxOworICAgIHRl
c3RfdmVjMiAqPSB0ZXN0X21hdDEyOworICAgIHRlc3RfZmxvYXQxKys7CisgICAgdGVzdF9mbG9h
dDEtLTsKKyAgICAtLXRlc3RfZmxvYXQxOworICAgICsrdGVzdF9mbG9hdDE7CisgICAgdGVzdF9m
bG9hdDE7CisgICAgdGVzdF9pbnQxKys7CisgICAgdGVzdF9pbnQxLS07CisKKyAgICB0ZXN0X3Zl
YzIgPSB0ZXN0X3ZlYzIgKyB0ZXN0X2Zsb2F0MTsKKyAgICB0ZXN0X3ZlYzIgPSB0ZXN0X2Zsb2F0
MSArIHRlc3RfdmVjMjsKKworICAgIHRlc3RfbWF0MTIgPSB0ZXN0X21hdDEyICogdGVzdF9tYXQx
MzsKKyAgICB0ZXN0X3ZlYzIgPSB0ZXN0X3ZlYzIgKiB0ZXN0X3ZlYzU7CisKKyAgICB0ZXN0X3Zl
YzIrKzsKKyAgICB0ZXN0X21hdDIrKzsKKworICAgIGJvb2wgdGVzdF9ib29sMiA9IHRlc3RfZmxv
YXQyID4gdGVzdF9mbG9hdDM7CisKKyAgICBib29sIHRlc3RfYm9vbDMgPSB0ZXN0X2ludDEgPiB0
ZXN0X2ludDYgOworCisgICAgdGVzdF9ib29sMyA9IHRlc3RfdmVjMiA9PSB0ZXN0X3ZlYzU7CisK
KyAgICB0ZXN0X2Jvb2wyID0gdGVzdF9ib29sMyAmJiB0ZXN0X2Jvb2w0OworICAgIHRlc3RfYm9v
bDIgPSB0ZXN0X2Jvb2wzIHx8IHRlc3RfYm9vbDQ7CisgICAgdGVzdF9ib29sMiA9IHRlc3RfYm9v
bDMgXl4gdGVzdF9ib29sNDsKKworICAgIHRlc3RfYm9vbDIgPSAhdGVzdF9ib29sMzsKKworICAg
IHRlc3RfYm9vbDMgPSAhKHRlc3RfaW50MSA+IHRlc3RfaW50NikgOworCisgICAgdGVzdF9mbG9h
dDEgPSB0ZXN0X2ludDEgPiB0ZXN0X2ludDYgPyB0ZXN0X2Zsb2F0MiA6IHRlc3RfZmxvYXQzOwor
ICAgIHRlc3RfdmVjMiA9IHRlc3RfaW50MSA+IHRlc3RfaW50NiA/IHRlc3RfdmVjMiA6IHRlc3Rf
dmVjNTsKKyAgICBpZih0ZXN0X2Jvb2wyKQorICAgICAgICB0ZXN0X2Zsb2F0MSsrOworICAgIGVs
c2UKKwl0ZXN0X2Zsb2F0MS0tOworCisgICAgaWYodGVzdF9mbG9hdDEgPiB0ZXN0X2Zsb2F0MikK
KyAgICAgICAgdGVzdF9mbG9hdDErKzsKKworICAgIGlmKCB0ZXN0X2Jvb2wyICkKKyAgICB7Cisg
ICAgICAgIGludCBpZl9pbnQ7CisgICAgICAgIHRlc3RfZmxvYXQxKys7CisgICAgfQorCisgICAg
aWYodGVzdF9ib29sMikKKyAgICAgICBpZih0ZXN0X2Jvb2wzKQorICAgICAgICAgICBpZih0ZXN0
X2Jvb2wzKQorCSAgICAgIHRlc3RfZmxvYXQxKys7CisKKyAgIGZvcihpbnQgZm9yX2ludD0wOyBm
b3JfaW50IDwgNTsgZm9yX2ludCsrKQorICAgeworICAgICAgIC8vIGRvIG5vdGhpbmcgYXMgc3Vj
aAorICAgfQorCisKKyAgIGZvcihpbnQgeDE9MDsgeDEgPCAxMDsgeDErKykKKyAgIHsKKyAgICAg
aWYgKCF0ZXN0X2Jvb2wyKQorICAgICAgIGJyZWFrOworCisgICAgIGludCBmb3JfaW50OworICAg
fQorCisgICBmb3IoaW50IHgyPS0xMDsgeDIgPCAxMDA7IHgyKyspCisgICB7CisgICAgIHRlc3Rf
Ym9vbDIgPSAodGVzdF9mbG9hdDEgPiB0ZXN0X2Zsb2F0Mik7CisgICAgIGlmICghdGVzdF9ib29s
MikKKyAgICAgICBicmVhazsKKyAgIH0KKworICAgZm9yKGludCBmb3JfaW50MSA9IDA7IGZvcl9p
bnQxIDwgMTAwOyBmb3JfaW50MSsrKQorICAgeworICAgICBpZiAoIXRlc3RfYm9vbDIpCisgICAg
ICAgYnJlYWs7CisKKyAgICAgaW50IGZvcl9pbnQ7CisgICB9CisKKyAgIGZvcihpbnQgZm9yX2lu
dDEgPSAwOyBmb3JfaW50MSA8IDEwMDsgZm9yX2ludDErKykKKyAgIHsKKyAgICAgaWYgKCF0ZXN0
X2Jvb2wyKQorICAgICAgIGNvbnRpbnVlOworCisgICAgIGludCBmb3JfaW50OworICAgfQorCisK
KyAgIGZvcihpbnQgaT0wOyBpPDEwMDsgaSsrKQorICAgeworICAgICBpZiAoISh0ZXN0X2Zsb2F0
MSA+IHRlc3RfZmxvYXQyKSkKKyAgICAgeworICAgICAgIGJyZWFrOworICAgICB9CisKKyAgICAg
YnJlYWs7CisgICAgIGNvbnRpbnVlOworICAgfQorCisgICBmb3IoaW50IGk9MDsgaTwxMDA7IGkr
KykKKyAgIHsKKyAgICAgaWYgKCF0ZXN0X2Jvb2wyKQorICAgICAgIGJyZWFrOworCisgICAgIGJy
ZWFrOworICAgfQorCisgICBmb3IgKGludCBpPTA7IGk8MTAwOyBpKyspCisgICB7CisgICAgIGlu
dCBkb3doaWxlX2ludDsKKyAgICAgZG93aGlsZV9pbnQgPSAzOworCisgICAgIGlmICghdGVzdF9i
b29sMikKKyAgICAgICBicmVhazsKKyAgIH0KKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgyLjAs
IDMuMCwgMS4wLCAxLjEpOworICAgIGdsX1Bvc2l0aW9uID0gZ3RmX1ZlcnRleDsKKworCisgICAg
Ly8gVkVSVEVYIFNIQURFUiBCVUlMVC1JTiBBVFRSSUJVVEVTCisKKyAgICB2ZWM0IGJ1aWx0SW5W
NCA9IGd0Zl9Db2xvciArIGd0Zl9TZWNvbmRhcnlDb2xvciArIGd0Zl9WZXJ0ZXggKyBndGZfTXVs
dGlUZXhDb29yZDAgKyBndGZfTXVsdGlUZXhDb29yZDEgKyBndGZfTXVsdGlUZXhDb29yZDIgKyAg
Z3RmX011bHRpVGV4Q29vcmQzOworCisKKyAgICBpbnQgYnVpbHRJbkkgPSBndGZfTWF4TGlnaHRz
ICsgZ3RmX01heENsaXBQbGFuZXMgKyBndGZfTWF4VGV4dHVyZVVuaXRzICsgZ3RmX01heFRleHR1
cmVDb29yZHMgKyBndGZfTWF4VmVydGV4QXR0cmlicyArIGd0Zl9NYXhWZXJ0ZXhVbmlmb3JtQ29t
cG9uZW50cyArIGd0Zl9NYXhWYXJ5aW5nRmxvYXRzICsgZ3RmX01heFZlcnRleFRleHR1cmVJbWFn
ZVVuaXRzICsgZ3RmX01heENvbWJpbmVkVGV4dHVyZUltYWdlVW5pdHMgKyBndGZfTWF4VGV4dHVy
ZUltYWdlVW5pdHMgKyBndGZfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50cyArIGd0Zl9NYXhE
cmF3QnVmZmVycyA7CisKKworICAgIG1hdDQgYnVpbHRJbk00ID0gZ3RmX01vZGVsVmlld01hdHJp
eCArIGd0Zl9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4ICsgZ3RmX1Byb2plY3Rpb25NYXRyaXg7
CisKKyAgICBndGZfTm9ybWFsTWF0cml4OworCisgICAgZ3RmX1RleHR1cmVNYXRyaXhbZ3RmX01h
eFRleHR1cmVDb29yZHMtMV07CisgICAgZ3RmX1RleHR1cmVNYXRyaXg7CisKKyAgICBndGZfRGVw
dGhSYW5nZS5uZWFyIDsKKworICAgIHRlc3RfZmxvYXQxID0gZ3RmX0RlcHRoUmFuZ2UubmVhcjsK
KyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9EZXB0aFJhbmdlLmZhcjsKKyAgICB0ZXN0X2Zsb2F0MSA9
IGd0Zl9EZXB0aFJhbmdlLmRpZmY7CisKKyAgICBndGZfUG9pbnQuc2l6ZTsKKyAgICBndGZfUG9p
bnQuc2l6ZU1pbjsKKyAgICBndGZfUG9pbnQuc2l6ZU1heDsKKyAgICBndGZfUG9pbnQuZmFkZVRo
cmVzaG9sZFNpemUgOworICAgIGd0Zl9Qb2ludC5kaXN0YW5jZUNvbnN0YW50QXR0ZW51YXRpb247
CisgICAgZ3RmX1BvaW50LmRpc3RhbmNlTGluZWFyQXR0ZW51YXRpb24gOworICAgIGd0Zl9Qb2lu
dC5kaXN0YW5jZVF1YWRyYXRpY0F0dGVudWF0aW9uOworCisgICAgZ3RmX01hdGVyaWFsUGFyYW1l
dGVycyB0ZXN0OworICAgIGd0Zl9Gcm9udE1hdGVyaWFsLmVtaXNzaW9uOworCisgICAgY29sb3Ig
PSBndGZfRnJvbnRNYXRlcmlhbC5lbWlzc2lvbjsKKyAgICBjb2xvciA9IGd0Zl9Gcm9udE1hdGVy
aWFsLmFtYmllbnQ7CisgICAgY29sb3IgPSBndGZfRnJvbnRNYXRlcmlhbC5kaWZmdXNlOworICAg
IGNvbG9yID0gZ3RmX0Zyb250TWF0ZXJpYWwuc3BlY3VsYXI7CisgICAgdGVzdF9mbG9hdDEgPSBn
dGZfRnJvbnRNYXRlcmlhbC5zaGluaW5lc3M7CisKKyAgICBndGZfTGlnaHRTb3VyY2VQYXJhbWV0
ZXJzIGxpZ2h0U291cmNlOworCisgICAgZmxvYXQgYnVpbHRJbkZsb2F0MSA9IGd0Zl9MaWdodFNv
dXJjZVswXS5zcG90RXhwb25lbnQ7CisgICAgY29sb3IgPSBndGZfTGlnaHRTb3VyY2VbMF0uYW1i
aWVudDsKKyAgICBjb2xvciA9IGxpZ2h0U291cmNlLmFtYmllbnQ7CisgICAgY29sb3IgPSBsaWdo
dFNvdXJjZS5kaWZmdXNlOworICAgIGNvbG9yID0gbGlnaHRTb3VyY2Uuc3BlY3VsYXI7CisgICAg
Y29sb3IgPSBsaWdodFNvdXJjZS5wb3NpdGlvbjsKKyAgICBjb2xvciA9IGxpZ2h0U291cmNlLmhh
bGZWZWN0b3I7CisgICAgY29sb3I0ID0gbGlnaHRTb3VyY2Uuc3BvdERpcmVjdGlvbjsKKyAgICB0
ZXN0X2Zsb2F0MSA9IGxpZ2h0U291cmNlLnNwb3RFeHBvbmVudDsKKyAgICB0ZXN0X2Zsb2F0MSA9
IGxpZ2h0U291cmNlLnNwb3RDdXRvZmY7CisgICAgdGVzdF9mbG9hdDEgPSBsaWdodFNvdXJjZS5z
cG90Q29zQ3V0b2ZmOworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2UuY29uc3RhbnRBdHRl
bnVhdGlvbjsKKyAgICB0ZXN0X2Zsb2F0MSA9IGxpZ2h0U291cmNlLmxpbmVhckF0dGVudWF0aW9u
OworICAgIHRlc3RfZmxvYXQxID0gbGlnaHRTb3VyY2UucXVhZHJhdGljQXR0ZW51YXRpb247CisK
KyAgICBjb2xvciA9IGd0Zl9MaWdodE1vZGVsLmFtYmllbnQ7CisKKyAgICBndGZfTGlnaHRNb2Rl
bFBhcmFtZXRlcnMgbGlnaHRNb2RlbDsKKyAgICBjb2xvciA9IGd0Zl9MaWdodE1vZGVsLmFtYmll
bnQ7CisgICAgY29sb3IgPSBsaWdodE1vZGVsLmFtYmllbnQ7CisKKyAgICBjb2xvciA9IGd0Zl9G
cm9udExpZ2h0TW9kZWxQcm9kdWN0LnNjZW5lQ29sb3IgOworCisgICAgZ3RmX0xpZ2h0TW9kZWxQ
cm9kdWN0cyBsaWdodE1vZGVsUHJvZDsKKworICAgIGNvbG9yID0gbGlnaHRNb2RlbFByb2Quc2Nl
bmVDb2xvcjsKKyAgICBjb2xvciA9IGd0Zl9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0LnNjZW5lQ29s
b3I7CisKKyAgICBjb2xvciA9IGd0Zl9Gcm9udExpZ2h0UHJvZHVjdFswXS5hbWJpZW50OworICAg
IGNvbG9yID0gZ3RmX0Zyb250TGlnaHRQcm9kdWN0WzBdLmFtYmllbnQ7CisgICAgZ3RmX0xpZ2h0
UHJvZHVjdHMgbGlnaHRQcm9kOworCisgICAgY29sb3IgPSAgbGlnaHRQcm9kLmFtYmllbnQ7Cisg
ICAgY29sb3IgPSAgbGlnaHRQcm9kLmRpZmZ1c2U7CisgICAgY29sb3IgPSAgbGlnaHRQcm9kLnNw
ZWN1bGFyOworCisKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuZGVuc2l0eSA7CisgICAgdGVz
dF9mbG9hdDEgPSBndGZfRm9nLnN0YXJ0IDsKKyAgICB0ZXN0X2Zsb2F0MSA9IGd0Zl9Gb2cuZW5k
ICA7CisgICAgdGVzdF9mbG9hdDEgPSBndGZfRm9nLnNjYWxlIDsKKyAgICBjb2xvciA9IGd0Zl9G
b2cuY29sb3IgOworCisgICAgZ3RmX0Zyb250Q29sb3IgPSAgdmVjNCgxLjAsIDEuMCwgMS4wLCAx
LjApOworICAgIGd0Zl9CYWNrQ29sb3IgPSAgdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworICAg
IGd0Zl9Gcm9udFNlY29uZGFyeUNvbG9yID0gIHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAg
ICBndGZfQmFja1NlY29uZGFyeUNvbG9yID0gIHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKwor
CisgICAgLy8gVkFSWUlORyBWQVJJQUJMRVMgQVZBSUxBQkxFIElOIEZSQUdNRU5UIEFORCBWRVJU
RVggU0hBREVSUyBCT1RICisgICAgZ3RmX1RleENvb3JkWzBdID0gIHZlYzQoMS4wLCAxLjAsIDEu
MCwgMS4wKTsKKyAgICBndGZfRm9nRnJhZ0Nvb3JkID0gIHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4w
KTsKKworfQorCit2b2lkIHRlc3RfZnVuY3Rpb24oY29uc3QgaW4gaW50IGluX2ludCwgaW5vdXQg
aW50IG91dF9pbnQpCit7CisgICAgb3V0X2ludCA9IDU7CisgICAgaW50IGkgPSA1OworICAgIHJl
dHVybiA7Cit9CisKK2ludCB0ZXN0X2Z1bmN0aW9uMShpbiBpbnQgaW5faW50MSwgaW5vdXQgaW50
IGluX291dF9pbnQpCit7CisgICBmbG9hdCBmZjsKKyAgIGluX2ludDEgPSA1OworICAgcmV0dXJu
IGluX2ludDE7Cit9CisKK3ZvaWQgdGVzdF9mdW5jdGlvbjMobGlnaHQzIGxsKQoreworICAgIGxs
LmkgPSA1LjA7CisgICAgdmFyeWluZ19mbHQgPSAxLjI7Cit9CisKK3ZvaWQgdGVzdF9mdW5jdGlv
bjQobGlnaHQ1IGxsMjApCit7CisgICAgbGwyMC5pID0gMTAuMDsKK30KKwordm9pZCB0ZXN0X2Z1
bmN0aW9uNShsaWdodDEgc3RydWN0X2xpZ2h0MSkKK3sKKyAgICBzdHJ1Y3RfbGlnaHQxLmxpZ2h0
Mi5hID0gMTsKKyAgICBsaWdodDUgbGw1OworICAgIHN0cnVjdF9saWdodDEubGlnaHQyLmYgPSBs
bDUuaTsKKyAgICBzdHJ1Y3RfbGlnaHQxLmxpZ2h0Mi5mKys7CisgICAgc3RydWN0X2xpZ2h0MS5s
aWdodDIuYSsrOworfQorCitsaWdodDYgdGVzdF9mdW5jdGlvbjYoaW50IGEpCit7CisgICAgaW50
IHg7CisgICAgbGlnaHQ2IGZ1bmNTdHJ1Y3Q7CisgICAgbGlnaHQ3IGZ1bmNTdHJ1Y3QxOworICAg
IC14OworICAgIHggPSB4IC0geCA7CisgICAgbWF0MiBtOworICAgIG0rKzsKKyAgICAtbTsKKyAg
ICAobSkrKzsKKyAgICByZXR1cm4gZnVuY1N0cnVjdDsKK30KKworZmxvYXQgdGVzdF9mdW5jdGlv
bjcobGlnaHQxIGxsMSwgaW50IGxpZ2h0MSApCit7CisgICAgZmxvYXQgZjsKKworICAgIHN0cnVj
dCBzczEgeworICAgICAgICBpbnQgYTsKKyAgICB9OworCisgICAgcmV0dXJuIGZsb2F0KDEpOwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmNPdmVybG9hZF9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY092ZXJsb2FkX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OGU5YTk1NTRiNDI1MzA3NzM2OGRmYjc4OGZlMDFjN2ZlNjIxNjhiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmNPdmVybG9hZF9mcmFnLmZyYWcKQEAg
LTAsMCArMSwyNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCB0ZXN0Vm9pZCAodmVjNCB2LCB2ZWM0IHYxKQoreworfQorCit2b2lkIHRlc3RWb2lkIChpdmVj
NCB2LCBpdmVjNCB2MSkKK3sKK30KKwordm9pZCBtYWluKHZvaWQpCit7CisgICAgdmVjNCB2Owor
ICAgIGl2ZWM0IGk7CisgICAgdGVzdFZvaWQoaSwgaSk7CisgICAgdGVzdFZvaWQodiwgdik7Cisg
ICAgZ2xfRnJhZ0NvbG9yID0gdjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RGdW5jT3ZlcmxvYWRfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdEZ1bmNPdmVy
bG9hZF92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUyZjdlNjA3Yjk0Y2NkYjU0ODg4ODIwMzkxOWE3
YjA5YWYyNDc5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5j
T3ZlcmxvYWRfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMzcgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3N0cnVjdCBTMgoreworICAgICAgICBmbG9hdCBm
OworfTsKKworc3RydWN0IFMxCit7CisgICAgICAgIGZsb2F0IGY7CisgICAgICAgIFMyIHMyOwor
fTsKKworZmxvYXQgcHJvY2VzcyhTMSBzMSk7CitmbG9hdCBwcm9jZXNzKFMyIHMyKTsKKwordm9p
ZCBtYWluKCkKK3sKKyAgICAgICAgUzEgczEgPSBTMSgxLjAsIFMyKDEuMCkpOworICAgICAgICBn
bF9Qb3NpdGlvbiA9IHZlYzQocHJvY2VzcyhzMSkpOworfQorCitmbG9hdCBwcm9jZXNzKFMxIHMx
KQoreworICAgICAgICByZXR1cm4gczEuZiArIHByb2Nlc3MoczEuczIpOworfQorCitmbG9hdCBw
cm9jZXNzKFMyIHMyKQoreworICAgICAgICByZXR1cm4gczIuZjsKK30KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY3Rpb24x
X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RGdW5jdGlvbjFfdmVydC52ZXJ0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYzODRjYzU3YjQyMDI5OWI4MmIzNDdmZmViMjk0MTlhY2FlNjExMDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0RnVuY3Rpb24xX3ZlcnQudmVydApA
QCAtMCwwICsxLDM2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCit2ZWMzIGJhcih2ZWMzLCB2ZWMzKTsKKwordW5pZm9ybSB2ZWMyIHY7CisKK2Jvb2wg
Zm9vKG91dCB2ZWMzKTsKKwordm9pZCBtYWluKCkKK3sKKyAgICBib29sIGIxLCBiMiwgYjMsIGI0
LCBiNSwgYjY7CisKKyAgICBiMSA9IGFueShsZXNzVGhhbih2LCB2KSk7CisKKyAgICBiMiA9IGFs
bChsZXNzVGhhbkVxdWFsKHYsIHYpKTsKKworICAgIGIzID0gYW55KG5vdChncmVhdGVyVGhhbih2
LCB2KSkpOworCisgICAgYjQgPSBhbnkoZ3JlYXRlclRoYW5FcXVhbCh2LCB2KSk7CisKKyAgICBi
NSA9IGFueShub3RFcXVhbCh2LCB2KSk7CisKKyAgICBiNiA9IGFueShlcXVhbCh2LCB2KSk7CisK
KyAgICB2ZWMyIHU7CisgICAgaWYgKGIxICYmIGIyICYmIGIzICYmIGI0ICYmIGI1ICYmIGI2KQor
ICAgICAgICB1ID0gdjsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCh1LCB1KTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RNb2R1bGVfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvQ29ycmVjdE1vZHVsZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNiYzY5ODE1ZjlkYzI2
NGI0MjQ5YzQ1Mzk2OWVlMjkwZjI1OTIxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL0NvcnJlY3RNb2R1bGVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsNjQgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZlYzQgdGVzdF9mdW5jdGlvbjQoZmxvYXQpOwor
dmVjNCB0ZXN0X2Z1bmN0aW9uMShmbG9hdCk7Cit2ZWM0IHRlc3RfZnVuY3Rpb24yKGZsb2F0KTsK
K3ZlYzQgdGVzdF9mdW5jdGlvbjMoZmxvYXQpOworZmxvYXQgZiA9IDIuNjsKKworCit2ZWM0IHRl
c3RfZnVuY3Rpb24xKGZsb2F0IGZmKQoreworICAgIHZlYzQgZnVuY192ZWM0ID0gdmVjNChmZitm
KTsKKyAgICByZXR1cm4gZnVuY192ZWM0OworfQorCitmbG9hdCBmMSA9IDEuNTsKKwordmVjNCB0
ZXN0X2Z1bmN0aW9uNChmbG9hdCBmZikKK3sKKyAgICB2ZWM0IGZ1bmNfdmVjNCA9IHZlYzQoZjEp
OworICAgIHJldHVybiBmdW5jX3ZlYzQ7Cit9CisKK2Zsb2F0IGYyID0gMy41OworCit2b2lkIG1h
aW4oKQoreworICAgIHZlYzQgdjEgPSB0ZXN0X2Z1bmN0aW9uNChmMik7CisgICAgdmVjNCB2MiA9
IHRlc3RfZnVuY3Rpb24xKGYyKTsKKyAgICB2ZWM0IHYzID0gdGVzdF9mdW5jdGlvbjIoZjIpOwor
ICAgIHZlYzQgdjQgPSB0ZXN0X2Z1bmN0aW9uMyhmMik7CisKKyAgICBpZiAoZjEgPiBmMikgewor
ICAgICAgICBnbF9GcmFnQ29sb3IgPSB2MSArIHYyICsgdjMgKyB2NDsKKyAgICB9IGVsc2UKKyAg
ICAgICAgZ2xfRnJhZ0NvbG9yID0gdjEgKyB2MiArIHYzICsgdjQ7Cit9CisKK2Zsb2F0IGY0ID0g
NS41OwordmVjNCB0ZXN0X2Z1bmN0aW9uMyhmbG9hdCBmZikKK3sKKyAgICBpZiAoZmYgPiBmNCkK
KwlyZXR1cm4gdmVjNChmZik7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gdmVjNChmNCk7Cit9
CisKK2Zsb2F0IGYzID0gNC41OwordmVjNCB0ZXN0X2Z1bmN0aW9uMihmbG9hdCBmZikKK3sKKyAg
ICB2ZWM0IGZ1bmNfdmVjNCA9IHZlYzQoZmYrZjMpOworICAgIHJldHVybiBmdW5jX3ZlYzQ7Cit9
CisKK2Zsb2F0IGY1ID0gNi41OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBh
cnNlMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFyc2UxX2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NWE5ZmIwN2ZiYzBiNTBjODhhNWQyYjQyZWY5YTcwMmU4MjlmZDI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMV9mcmFnLmZyYWcKQEAg
LTAsMCArMSw1MSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5p
Zm9ybSB2ZWMzIGFbOF07CisKK3VuaWZvcm0gYm9vbCB1YjsKK3ZhcnlpbmcgbWF0NCB2bTsKKwor
aW50IGZvbyhmbG9hdCk7CisKK2Zsb2F0IGJhcihpbnQgaSkKK3sKKyAgICByZXR1cm4gZmxvYXQo
aSk7Cit9CisKK3ZvaWQgbWFpbiAodm9pZCkKK3sKKyAgICBjb25zdCBpbnQgeCA9IDM7CisgICAg
bWF0NCBhWzRdOworICAgIHZlYzQgdjsKKworICAgIGZvciAoZmxvYXQgZiA9IDAuMDsgZiAhPSAz
LjA7ICsrZikKKyAgICB7CisgICAgfQorCisgICAgdmVjMyB2M1t4ICsgeF07CisKKyAgICBpbnQg
dmkgPSBmb28oMi4zKTsKKworICAgIHZlYzMgdjNfMSA9IHYzW3hdOworCisgICAgZmxvYXQgZjEg
PSBhW3hdWzJdLnogKiBmbG9hdCh4KTsKKyAgICBmMSA9IGFbeF1bMl1bMl0gKiBmbG9hdCh4KTsK
KyAgICBmMSA9IHZbMl0gKiB2WzFdOworCisgICAgY29uc3QgaW50IGNpID0gMjsKKworfQorCitp
bnQgZm9vKGZsb2F0IGYpCit7CisgICAgcmV0dXJuIDI7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9Db3JyZWN0UGFyc2UyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQ
YXJzZTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZmUyZWM1N2FmMzE0Y2EyNTBhYTZiZTcxOTU5
MDgwOTAwZWI2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UGFy
c2UyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDEzNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgorY29uc3QgZmxvYXQgRmxvYXRDb25zdDEgPSAzLjAgKiA4LjAsIGZsb2F0
Q29uc3QyID0gNC4wOworY29uc3QgYm9vbCBCb29sQ29uc3QxID0gdHJ1ZSAmJiB0cnVlIHx8IGZh
bHNlOworY29uc3QgYm9vbCBCb29sQ29uc3QyID0gZmFsc2UgfHwgIWZhbHNlICYmIGZhbHNlOwor
Cit2b2lkIG1haW4gKHZvaWQpCit7CisgICAgZmxvYXQgZmxvYXQxID0gNC4wLCBmbG9hdDIgPSBm
bG9hdENvbnN0MjsKKyAgICBpbnQgaW50XzEgPSBpbnQoRmxvYXRDb25zdDEpOworICAgIHZlYzQg
dmVjNF8xOworICAgIHZlYzMgdmVjM18xOworLy8gIHVuc2lnbmVkIGludCB1bnNpZ25lZF9pbnRf
MTsKKyAgICBib29sIGJvb2w0LCBib29sNTsKKworICAgIGJvb2w0ID0gYm9vbDU7CisgICAgLy9m
bG9hdDEgPSBib29sNTsKKyAgICAvL2Jvb2w1ID0gZmxvYXQxOworCisgICAgYm9vbDQgPSA0LjAg
PiA1LjA7CisgICAgYm9vbDQgPSAhKDMuMiAhPSAwLjApOworICAgIGJvb2w0ID0gYm9vbChmbG9h
dDEpOworICAgIGJvb2w0ID0gYm9vbChpbnRfMSk7CisgICAgZmxvYXQxID0gZmxvYXQoYm9vbDQp
OworICAgIGZsb2F0MSA9IGZsb2F0KGludF8xKTsKKyAgICBpbnRfMSA9IGludChmbG9hdDEpOwor
ICAgIGludF8xID0gaW50KGJvb2w0KTsKKworICAgIHsKKyAgICAgICAgaW50IGEsIGIsIGM7CisK
KyAgICAgICAgYSA9IGI7CisgICAgICAgIGIgPSBjOworICAgICAgICB7CisgICAgICAgICAgICBp
bnQgYiwgYywgZDsKKworICAgICAgICAgICAgYiA9IGM7CisgICAgICAgICAgICBjID0gZDsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgYSwgZCwgZTsKKworICAgICAgICAgICAg
ICAgIGEgPSBkOworICAgICAgICAgICAgICAgIGQgPSBlOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGludCBhLCBiLCBjOworICAgICAgICAgICAgICAgIGEg
PSBiOworICAgICAgICAgICAgICAgIGIgPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGEgPSBiOworICAgICAgICBiID0gYzsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGZs
b2F0IGYxLCBmMjsKKyAgICAgICAgdmVjMyB2MzEsIHYzMjsKKworICAgICAgICBtYXgoZjEsIGYy
KTsKKyAgICAgICAgbWF4KHYzMSwgdjMyKTsKKworICAgICAgICB2ZWM0IHY0ID0gdmVjNCgzLjAp
OworICAgICAgICB2ZWMzIHYzID0gLXZlYzMoMi4wLCAxLjAsIDMuMCk7CisgICAgICAgIG1hdDIg
bTIgPSBtYXQyKDMuMCwgNC4wLCA2LjAsIDMuMCk7CisgICAgICAgIC8vbWF0NCBtNCA9IG1hdDQo
MS4wLCBtMiwgdjMsIHY0LCBtMik7CisgICAgfQorCisgICAgaWYgKEJvb2xDb25zdDEpCisgICAg
ICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAoQm9v
bENvbnN0MikKKyAgICAgICAgKyt2ZWMzXzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsK
KworICAgIGlmIChCb29sQ29uc3QxIHx8IEJvb2xDb25zdDIpCisgICAgICAgICsrdmVjM18xOwor
ICAgIGVsc2UKKyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAoQm9vbENvbnN0MiAmJiBCb29s
Q29uc3QxKQorICAgICAgICArK3ZlYzNfMTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18xOwor
CisgICAgaWYgKEZsb2F0Q29uc3QxICE9IDAuMCkKKyAgICAgICAgLS1pbnRfMTsKKyAgICBlbHNl
CisgICAgICAgICsraW50XzE7CisKKyAgICBpZiAoMCAhPSAwKQorICAgICAgICArK2ludF8xOwor
ICAgIGVsc2UKKyAgICAgICAgLS1pbnRfMTsKKworICAgIGJvb2w0ID0gQm9vbENvbnN0MSAmJiAh
IChpbnRfMSAhPSAwKSAmJiAhIEJvb2xDb25zdDEgICYmICEgKEZsb2F0Q29uc3QxICE9IDAuMCkg
JiYgKEZsb2F0Q29uc3QxICE9IDAuMCkgJiYgKGZsb2F0MSAhPSAwLjApOworCisgICAgZmxvYXQx
ID0gNSAhPSAwID8gZmxvYXQxIDogZmxvYXQoaW50XzEpOworICAgIGZsb2F0MSA9IDAgIT0gMCA/
IGZsb2F0MSA6IGZsb2F0KGludF8xKTsKKworICAgIGlmIChmbG9hdDEgIT0gZmxvYXQxKQorICAg
ICAgICArK2ludF8xOworICAgIGVsc2UKKyAgICAgICAgLS1pbnRfMTsKKworICAgIGZsb2F0MSA9
IGZsb2F0MSAhPSBmbG9hdDEgPyBmbG9hdDEgOiBmbG9hdChpbnRfMSk7CisKKyAgICAtLWludF8x
OworICAgICsrZmxvYXQxOworICAgICh2ZWM0XzEueCktLTsKKyAgICB2ZWMzXzErKzsKKworCWlm
IChpbnRfMSAhPSA0KQorCQlkaXNjYXJkOworCisgICAgZmxvYXQxID0gNC4wICsgNi4wOworICAg
IGludCBpaSxqaixrazsKKyAgICBmbG9hdCBmZjsKKyAgICBpaSA9IGpqLCBraywgZmY7CisKKyAg
ICB2ZWM0XzEgPSB2ZWM0XzEgKyAyLjA7CisgICAgaXZlYzQgaXY7CisgICAgaXYgPSBpdiArIDI7
CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChmbG9hdDErZmxvYXQxLCBmbG9hdDEsIGZsb2F0MSwg
ZmxvYXQoaW50XzEpKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJz
ZTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlMl92ZXJ0LnZlcnQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDI2ODY0NDJhOWE2MThkNWM1YmYyNTU4NzNlN2ZjZWEzYjY2YjIwOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZTJfdmVydC52ZXJ0CkBAIC0w
LDAgKzEsMTQ5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCitjb25zdCBmbG9hdCBGbG9hdENvbnN0MSA9IDMuMCAqIDguMCwgZmxvYXRDb25zdDIgPSA0
LjA7Citjb25zdCBib29sIEJvb2xDb25zdDEgPSB0cnVlICYmIHRydWUgfHwgZmFsc2U7Citjb25z
dCBib29sIEJvb2xDb25zdDIgPSBmYWxzZSB8fCAhZmFsc2UgJiYgZmFsc2U7CisKK3ZvaWQgbWFp
biAodm9pZCkKK3sKKyAgICBmbG9hdCBmbG9hdDEgPSA0LjAsIGZsb2F0MiA9IGZsb2F0Q29uc3Qy
OworICAgIGludCBpbnRfMSA9IGludChGbG9hdENvbnN0MSk7CisgICAgdmVjNCB2ZWM0XzE7Cisg
ICAgdmVjMyB2ZWMzXzEgPSB2ZWMzKDEsIDEsIDEpOworCXZlYzMgdmVjM18yID0gdmVjMygwLCAw
LCAwKTsKKy8vICB1bnNpZ25lZCBpbnQgdW5zaWduZWRfaW50XzE7CisgICAgYm9vbCBib29sNCwg
Ym9vbDU7CisKKyAgICBib29sNCA9IGJvb2w1OworICAgIC8vZmxvYXQxID0gYm9vbDU7CisgICAg
Ly9ib29sNSA9IGZsb2F0MTsKKworICAgIGJvb2w0ID0gNCA+IDU7CisgICAgYm9vbDQgPSAhKDMu
MiAhPSAwLjApOworICAgIGJvb2w0ID0gYm9vbChmbG9hdDEpOworICAgIGJvb2w0ID0gYm9vbChp
bnRfMSk7CisgICAgZmxvYXQxID0gZmxvYXQoYm9vbDQpOworICAgIGZsb2F0MSA9IGZsb2F0KGlu
dF8xKTsKKyAgICBpbnRfMSA9IGludChmbG9hdDEpOworICAgIGludF8xID0gaW50KGJvb2w0KTsK
KworICAgIHsKKyAgICAgICAgaW50IGEsIGIsIGM7CisKKyAgICAgICAgYSA9IGI7CisgICAgICAg
IGIgPSBjOworICAgICAgICB7CisgICAgICAgICAgICBpbnQgYiwgYywgZDsKKworICAgICAgICAg
ICAgYiA9IGM7CisgICAgICAgICAgICBjID0gZDsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBpbnQgYSwgZCwgZTsKKworICAgICAgICAgICAgICAgIGEgPSBkOworICAgICAgICAgICAg
ICAgIGQgPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGludCBhLCBiLCBjOworICAgICAgICAgICAgICAgIGEgPSBiOworICAgICAgICAgICAgICAgIGIg
PSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGEgPSBiOworICAgICAgICBi
ID0gYzsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGZsb2F0IGYxLCBmMjsKKyAgICAgICAgdmVj
MyB2MzEsIHYzMjsKKworICAgICAgICBtYXgoZjEsIGYyKTsKKyAgICAgICAgbWF4KHYzMSwgdjMy
KTsKKworICAgICAgICB2ZWM0IHY0ID0gdmVjNCgzLjApOworICAgICAgICB2ZWMzIHYzID0gLXZl
YzMoMi4wLCAxLjAsIDMuMCk7CisgICAgICAgIG1hdDIgbTIgPSBtYXQyKDMuMCwgNC4wLCA2LjAs
IDMuMCk7CisgICAgICAgIC8vbWF0NCBtNCA9IG1hdDQoMS4wLCBtMiwgdjMsIHY0LCBtMik7Cisg
ICAgfQorCisgICAgaWYgKEJvb2xDb25zdDEpCisgICAgICAgICsrdmVjM18xOworICAgIGVsc2UK
KyAgICAgICAgLS12ZWMzXzE7CisKKyAgICBpZiAoQm9vbENvbnN0MikKKyAgICAgICAgKyt2ZWMz
XzE7CisgICAgZWxzZQorICAgICAgICAtLXZlYzNfMTsKKworICAgIGlmIChCb29sQ29uc3QxIHx8
IEJvb2xDb25zdDIpCisgICAgICAgICsrdmVjM18xOworICAgIGVsc2UKKyAgICAgICAgLS12ZWMz
XzE7CisKKyAgICBpZiAoQm9vbENvbnN0MiAmJiBCb29sQ29uc3QxKQorICAgICAgICArK3ZlYzNf
MTsKKyAgICBlbHNlCisgICAgICAgIC0tdmVjM18xOworCisgICAgaWYgKEZsb2F0Q29uc3QxICE9
IDAuMCkKKyAgICAgICAgLS1pbnRfMTsKKyAgICBlbHNlCisgICAgICAgICsraW50XzE7CisKKyAg
ICBpZiAoMCAhPSAwKQorICAgICAgICArK2ludF8xOworICAgIGVsc2UKKyAgICAgICAgLS1pbnRf
MTsKKworICAgIGJvb2w0ID0gQm9vbENvbnN0MSAmJiAhIChpbnRfMSAhPSAwKSAmJiAhIEJvb2xD
b25zdDEgICYmICEgKEZsb2F0Q29uc3QxICE9IDAuMCkgJiYgKEZsb2F0Q29uc3QxICE9IDAuMCkg
JiYgKGZsb2F0MSAhPSAwLjApOworCisgICAgZmxvYXQxID0gNSAhPSAwID8gZmxvYXQxIDogZmxv
YXQoaW50XzEpOworICAgIGZsb2F0MSA9IEJvb2xDb25zdDEgPyBmbG9hdDEgOiBmbG9hdChpbnRf
MSk7CisKKyAgICBpZiAoZmxvYXQxICE9IGZsb2F0MSkKKyAgICAgICAgKytpbnRfMTsKKyAgICBl
bHNlCisgICAgICAgIC0taW50XzE7CisKKyAgICBmbG9hdDEgPSBmbG9hdDEgIT0gZmxvYXQxID8g
ZmxvYXQxIDogZmxvYXQoaW50XzEpOworCisgICAgLS1pbnRfMTsKKyAgICArK2Zsb2F0MTsKKyAg
ICAodmVjNF8xLngpLS07CisgICAgdmVjM18xKys7CisKKyAgICBpZiAodmVjM18xLnggPiB2ZWMz
XzIueCkKKyAgICAgICAgZmxvYXQxID0gNC4wICsgNi4wOworCisgICAgaWYgKGJvb2w0IF5eIGJv
b2w1KQorICAgICAgICBmbG9hdDEgKj0gMi40OworCisgICAgaWYgKGZhbHNlIF5eIGZhbHNlKQor
ICAgICAgICBmbG9hdDEgKj0gMi41OworCisgICAgaWYgKHRydWUgXl4gZmFsc2UpCisgICAgICAg
IGZsb2F0MSAqPSAyLjY7CisKKyAgICB7CisgICAgICAgIGludCBpOworICAgIH0KKworICAgIGlm
IChib29sNCkgeworICAgICAgICBpbnQgaTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQgaTsK
KyAgICAgICAgaSA9IDU7CisgICAgfQorCisgICAgbWF0NCBtMTsKKyAgICBtMVsyXVsxXSA9IDQu
MDsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNChmbG9hdDErZmxvYXQxLCBmbG9hdDEsIGZsb2F0
MSwgZmxvYXQoaW50XzEpKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQ
YXJzZVRlc3QxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZVRlc3QxX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNWMxMDYxMDNiYTY5ZjYzMTcwN2NlNDFhNDE1MmYzZTkzY2M2
ZjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdDFf
ZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICB2ZWM0IHY7Cit9IHMyOworCit2b2lkIG1haW4oKQor
eworICAgIHMgczEgPSBzKHZlYzQoaXZlYzQoNC4wLCB2ZWMyKDUsNiksIDcuMCkpKTsKKyAgICB2
ZWM0IHYgPSB2ZWM0KDIsaXZlYzIoMy4wLCA0LjApLCA1LjApOworICAgIHZlYzQgdjQgPSB2ZWM0
KGl2ZWM0KDguMCkpOworCisgICAgZ2xfRnJhZ0NvbG9yID0gdjQgKyB2ICsgczEudjsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvQ29ycmVjdFBhcnNlVGVzdF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZiNmRk
YzYwMTNkYmZjZGQ1ZjVhZTVkOTIyOTNhZTlmYjNmZmE3NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RQYXJzZVRlc3RfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjYgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzeworICAgIGZs
b2F0IGY7CisgICAgdmVjMyAgdjsKK30gczEgOwordm9pZCBtYWluKCkKK3sKKyAgICB2ZWM0IHYg
PSB2ZWM0KGZsb2F0KHZlYzIoMSwyKSksIDUsNiw3KTsgIC8vIDEsIDUsIDYsIDcKKyAgICB2ZWM0
IHYxID0gdmVjNCgzLCB2ZWMyKGl2ZWMyKDEsMikpLCA0KTsgIC8vIDMsIDEsIDIsIDQKKyAgICB2
ZWM0IHYyID0gdmVjNCg4LCA5LCB2ZWM0KGl2ZWM0KDEsMiwzLDQpKSk7IC8vIDgsOSwgMSwyCisg
ICAgdmVjMiB2MyA9IHZlYzIodjIpOyAgLy8gOCw5CisgICAgdmVjNCB2NCA9IHZlYzQodjMsIHYy
LnosIHYyLncpOyAgLy8gOCw5LDEsMgorCisgICAgY29uc3QgdmVjNCB2NSA9IHZlYzQoMi4wLCBz
KDIuMCwgdmVjMygzLDQsNSkpLnYpOyAvLyAyLDMsNCw1CisgICAgZ2xfRnJhZ0NvbG9yID0gdjUg
KyB2ICsgdjEgKyB2NCA7ICAvLyAxNCwgMTgsIDEzLCAxOAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M1X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Nv
cnJlY3RQcmVwcm9jZXNzNV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiYWMxYTAxMTFmZGE3ZTA2
Mzc3M2Y0Y2M0NWNmMGUwNjk0N2I2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L0NvcnJlY3RQcmVwcm9jZXNzNV9mcmFnLmZyYWcKQEAgLTAsMCArMSwzMSBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy9tdXRpcGxlIGxpbmUgbWFjcm9zIC0gdGVz
dCBjYXNlLgorCisjZGVmaW5lIHRlc3QgNQorI2RlZmluZSB0MSAxCisjZGVmaW5lIHQyIDIKKyNk
ZWZpbmUgdG9rZW4gKHQxK3QyKQorI2RlZmluZSB0ZXN0MSBpbnQgc3VtID0xOyBzdW0gPSB0ZXN0
OyBzdW0gPSB0ZXN0K3Rlc3Q7CisKKyNkZWZpbmUgdGVzdDIgeyB0ZXN0MSBzdW0gPSBzdW0gK3Rv
a2VuOyBzdW0gPSB0Mip0MTsgfQorCit2b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgdGVzdDM9MTsK
KyB0ZXN0MQorIHRlc3QyOworIHRlc3QzID0gdGVzdDsKKyBzdW0gPSB0ZXN0MzsKK30KKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0UHJlcHJvY2VzczhfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MWEzNDY2ZTlhYmZlNDEzYmYyMDUyZGEzYjcwZGY4NTA3MDg0OTY4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M4X2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDExNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy8gRXh0ZW5z
aXZlIHRlc3Rpbmcgb24gI2lmICNlbHNlICNlbGlmICNpZmRlZiwgI2lmbmRlZiBhbmQgI2VuZGlm
LgorCisKKyNkZWZpbmUgdDEgMQorCisjaWYodDE9PTEpCisgICNkZWZpbmUgdDIgMgorI2VuZGlm
CisKKyNpZiAodDIhPTIpCisgICNkZWZpbmUgdDMgMzMKKyNlbHNlCisgICNkZWZpbmUgdDMgMwor
I2VuZGlmCisKKyNpZiAodDMhPTMpCisgI2RlZmluZSB0NCA0CisjZWxpZiAodDM9PTMpCisgI2Rl
ZmluZSB0NCA0NAorI2Vsc2UKKyAgI2RlZmluZSB0NCAwCisjZW5kaWYKKworI2lmIGRlZmluZWQo
dDUpCisgI2RlZmluZSB0NiA2CisjZWxpZiAodDMhPTMpCisgI2RlZmluZSB0NSA1CisjZWxpZiAo
dDM9PTMpCisgI2RlZmluZSB0NSA1CisjZW5kaWYKKworI2lmZGVmIHQ1CisgI2RlZmluZSB0NiA2
CisjZWxzZQorICNkZWZpbmUgdDcgNworI2VuZGlmCisKKyNpZm5kZWYgdDgKKyAjZGVmaW5lIHQ4
IDgKKyNlbmRpZgorCisjaWYgZGVmaW5lZCB0OAorICNkZWZpbmUgdDkKKyAjaWZkZWYgdDkKKyAg
I2RlZmluZSAgdDEwIDEwCisgI2VuZGlmCisjZWxpZgorICNkZWZpbmUgdDExIDExCisjZW5kaWYK
KworI2lmbmRlZiB0OAorICNkZWZpbmUgdDEyIDEyCisjZWxzZQorICNkZWZpbmUgdDEyIDEyCisg
I2lmbmRlZiB0MTMKKyAgI2RlZmluZSB0MTMgMTMKKyAjZW5kaWYKKyAjaWZkZWYgdDE0CisgICNk
ZWZpbmUgdDE1IDE1CisgI2Vsc2UKKyAgI2lmIGRlZmluZWQgdDgKKyAgICNkZWZpbmUgdDE2IDE2
CisgICNlbmRpZgorICNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiB0MQorICAgI2lmZGVmIHQxMAor
ICAgICAgI2lmIGRlZmluZWQgdDgKKyAgICAgICAgICNpZiBkZWZpbmVkKHQzKQorICAgICAgICAg
ICAgICAgI2lmbmRlZiB0MjAKKyAgICAgICAgICAgICAgICAgICNkZWZpbmUgdDI1IDI1CisgICAg
ICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICNlbHNlCisgICAgICAgICAgICAjZGVmaW5lIHQx
NSAxNQorICAgICAgICAgICAgI2RlZmluZSB0MjQgMjQKKyAgICAgICAgICNlbmRpZgorICAgICAg
I2VuZGlmCisgICAjZW5kaWYKKyNlbHNlCisgICAjaWZkZWYgdDIxCisgICAgICNkZWZpbmUgdDIy
IDIyCisgICAjZWxzZQorICAgICAjZGVmaW5lIHQyMyAyMworICAgI2VuZGlmCisjZW5kaWYKKyNk
ZWZpbmUgdDcgNworI2RlZmluZSB0MTEgMTEKKyNkZWZpbmUgdDE0IDE0CisjZGVmaW5lIHQxNSAx
NQorI2RlZmluZSB0MjAgMjAKKyNkZWZpbmUgdDIyIDIyCisjZGVmaW5lIHQyMyAyMworI2RlZmlu
ZSB0MjQgNDIKKwordm9pZCBtYWluKHZvaWQpCit7CisgaW50IHN1bSA9MDsKKyBzdW0gPSB0MSt0
Mit0Myt0NCt0NTsKKyBzdW0gPSB0Nit0Nyt0OCt0OSt0MTA7Cisgc3VtID0gdDExK3QxMit0MTMr
dDE0K3QxNTsKKyBzdW0gPSB0MTYrdDIwK3QyMit0MjMrdDI1K3QyNDsKK30KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk0NjMxMjkz
NDI5YTY0ZmMzMTc0OTQ2NTRhYTY1YTMxM2EyZDhlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0NvcnJlY3RQcmVwcm9jZXNzOV9mcmFnLmZyYWcKQEAgLTAsMCArMSwzMiBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorI2RlZmluZSB0MSAyLjMzMzMz
MzMzMzMzMzMzMzMKKyNkZWZpbmUgdDIgKDAuOTc4MjkzNjAwLTEuMCkKKyNkZWZpbmUgdDMgLjkw
OTA5MDkwOTAKKyNkZWZpbmUgdDQgMjY1NzgyMzUuMDAwMDAwMDgzNDg3CisjZGVmaW5lIHQ1IDc4
ZS0wMworI2RlZmluZSB0NiA3OC4xMDAwMDVFKzA1CisjZGVmaW5lIHQ3IDYyNzguNzhlLTUKKwor
dm9pZCBtYWluKHZvaWQpeworICAgIGZsb2F0IHRlcz0yZS0zOworICAgIGZsb2F0IHRlc3Q9My4y
ZS01OworICAgIGZsb2F0IHRlc3QxPTAuOTk5OTU1MDA7CisgICAgZmxvYXQgdGVzdDI9Njc4OS45
ODM7CisKKyAgICB0ZXN0ID0gdDErdDI7CisgICAgdGVzdCA9IHQzLXQ0OworICAgIHRlcyAgPSB0
NSAqIHQ2OworICAgIHRlc3QyID0gdDc7CisKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHRlc3Qs
IHRlcywgdGVzdDEsIHRlc3QyKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RTd2l6emxlMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkyMjZmMTg2YzFlNzYxYzA5MDEyZWYyZjJlOTczZTQ0OGUwNGQw
ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9Db3JyZWN0U3dpenpsZTFfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMjQgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2ID0gdmVjMigxLDUpOworICAgIC8vIGF0
IHRoZSBlbmQgb2YgbmV4dCBzdGF0ZW1lbnQsIHZhbHVlcyBpbgorICAgIC8vIHYueCA9IDEyLCB2
LnkgPSAxMgorICAgIHYueHkgKz0gdi55eCArPSB2Lnh5OworICAgIC8vIHYxIGFuZCB2MiwgYm90
aCBhcmUgaW5pdGlhbGl6ZWQgd2l0aCAxMgorICAgIHZlYzIgdjEgPSB2LCB2MiA9IHY7CisKKyAg
ICB2MS54eSArPSB2Mi55eCArPSArKyh2Lnh5KTsgIC8vIHYxID0gMzcsIHYyID0gMjUgZWFjaAor
ICAgIHYxLnh5ICs9IHYyLnl4ICs9ICh2Lnh5KSsrOyAgLy8gdjEgPSA3NSwgdjIgPSAzOCBlYWNo
CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2MSx2Mik7ICAvLyA3NSwgNzUsIDM4LCAzOAorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUxX3ZlcnQudmVydCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZjZTNi
M2VlMzMyMjA5N2EzZjQzNzlhNWEyYmIyZjZkNjU2MzYyNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxNyBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0cmlidXRl
IHZlYzQgZ3RmX05vcm1hbDsKK3VuaWZvcm0gbWF0NCBndGZfTm9ybWFsTWF0cml4Owordm9pZCBt
YWluKHZvaWQpCit7CisgICB2ZWM0IHYgPSB2ZWM0KDEsMiwzLDQpOworICAgdmVjMyB2MyA9IHZl
YzMoNSw2LDcpOworICAgdmVjNCB2NCAgPSB2ZWM0KG5vcm1hbGl6ZSh2My55enkpLnh5ei56eXgs
IDEuMCk7CisgICBnbF9Qb3NpdGlvbiA9IHY0ICsgdmVjNChub3JtYWxpemUoZ3RmX05vcm1hbE1h
dHJpeCAqIGd0Zl9Ob3JtYWwpLnh5ei56eXgsIHY0LnkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RTd2l6emxlMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNzRhYTJhNzdlYjU0MjYyNGViNzkw
NTZhZjI3YzQ5YjY3NjIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RTd2l6emxlMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwzOSBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmLCBmMSwgZjI7
CisgICAgZiA9IGYxID0gZjI7CisgICAgZiArPSBmMSArPSBmMjsKKworICAgIHZlYzQgdiwgdjEs
IHYyOworICAgIHYgPSB2MSA9IHYyOworICAgIHYgKz0gdjEgKz0gdjI7CisgICAgdi53eCA9IHYx
Lnp4ID0gdjIueXg7CisgICAgdi53eCArPSB2MS56eCArPSB2Mi55eDsKKworICAgIG1hdDQgIG0s
IG0xLCBtMjsKKyAgICBtID0gbTEgPSBtMjsKKyAgICBtICs9IG0xICs9IG0yOworICAgIG1bM10u
d3ggPSBtMVsyXS56eCA9IG0yWzFdLnl4OworICAgIG1bM10ud3ggKz0gbTFbMl0uenggKz0gbTJb
MV0ueXg7CisKKyAgICBtYXQ0ICBhbVs0XSwgYW0xWzRdLCBhbTJbNF07CisgICAgYW1bM10gPSBh
bTFbMl0gPSBhbTJbMV07CisgICAgYW1bM10gKz0gYW0xWzJdICs9IGFtMlsxXTsKKyAgICBhbVsz
XVszXS53eCA9IGFtMVsyXVsyXS56eCA9IGFtMlsxXVsxXS55eDsKKyAgICBhbVszXVszXS53eCAr
PSBhbTFbMl1bMl0uenggKz0gYW0yWzFdWzFdLnl4OworICAgIGFtWzNdWzNdLnd4ICs9IGFtMVsy
XVsyXS56eCArPSArKyhhbTJbMV1bMV0ueXgpOworICAgIGFtWzNdWzNdLnd4ICs9IGFtMVsyXVsy
XS56eCArPSAoYW0yWzFdWzFdLnl4KSsrOworCisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChhbVsz
XVszXS56LCBtWzNdLncsIHYudywgZik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0U3dpenpsZTJfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUy
X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTk3Y2MwYmFjM2RhNjM4NjU0NDUzOGYwN2EyNzVlNzI4
YzM3Y2IyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUy
X3ZlcnQudmVydApAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIHZlYzQgdjEgPSB2ZWM0KDUs
Niw3LDgpOworICAgIHZlYzQgdjIgPSB2ZWM0KDksMTAsIDExLCAxMik7CisgICAgdmVjMyB2MyA9
ICh2MSAqIHYyKS55d3g7CisgICAgZmxvYXQgZiA9ICh2MiAqIHYxKS56OworICAgIHZlYzMgdjQg
PSBub3JtYWxpemUoKHYxLnl3eCAqIHYzKS54eXopLnh5ejsKKyAgICBnbF9Qb3NpdGlvbiA9IHZl
YzQodjQsIGYpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvQ29ycmVjdFN3aXp6bGUz
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlM19mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGYyNjY1YzEzZWFiNjg2ZTVjNDcwOTAxMTczMzhhMjc3YmRhYmQyMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJlY3RTd2l6emxlM19mcmFnLmZyYWcKQEAg
LTAsMCArMSwyNCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9p
ZCBtYWluKCkKK3sKKyAgICB2ZWM0IHYgPSB2ZWM0KDUsNiw3LDgpOworICAgIC8vIHZhbHVlIGNo
YW5nZXMgZm9yIGxocworICAgIC8vIDg3NjUsIDY3NTgsIDg1NywgNzUgaS5lLiByZXBsYWNlIHYu
engKKyAgICAvLyB2YWx1ZSBjaGFuZ2VzIGZvciByaHMKKyAgICAvLyA4NzY1LCA2NzU4LCA4NiBp
LmUgcmVwbGFjZSB3aXRoIHYud3kKKyAgICAvLyByZXBsYWNlIHYueiB3aXRoIHYudworICAgIC8v
IHJlcGxhY2Ugdi54IHdpdGggdi55CisgICAgLy8gYWRkIDEuMDAwMDAwIHRvIHYudyBhbmQgdi55
CisgICAgdi53enl4Lnp5d3gud3p5Lnp5ID0gKHYud3p5eC56eXd4Lnd4KSsrOworICAgIGdsX0Zy
YWdDb2xvciA9IHZlYzQodik7ICAvLyA2LDcsOCw5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9Db3JyZWN0VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0NvcnJl
Y3RWZXJzaW9uX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhMDQwNWEyNjRjM2VkNjcyYTEz
NDFhYmE1M2Y3YjRjNWVkY2JhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9D
b3JyZWN0VmVyc2lvbl9WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE5IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjdmVyc2lvbiAxMDAKKyNpZmRl
ZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8qICN2ZXJzaW9uIGNh
biBvbmx5IGJlIGZvbGxvd2VkIGJ5IG51bWJlciAxMDAuIFRoZSBvbmx5IHN0YXRlbWVudHMgYmVm
b3JlCisgICAjdmVyc2lvbiBjYW4gYmUgY29tbWVudCBvciB3aGl0ZSBzcGFjZXMgKi8KKwordm9p
ZCBtYWluKCkKK3sKKyAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9EdXBsaWNhdGVWZXJzaW9uMV9WMTAwX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL0R1cGxpY2F0ZVZlcnNpb24xX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZTgx
ZTU4YjVhOGNhMThkNjdjYzFlYzk3YzdiNDQ3MjdhOWU3NzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9EdXBsaWNhdGVWZXJzaW9uMV9WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
dmVyc2lvbiAxMDAKKyN2ZXJzaW9uIDEwMAorI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgorLyogVHdvIHZlcnNpb24gc3RhdGVtZW50cyBhcmUgbm90IGFsbG93
ZWQgc2luY2UgYW55ICN2ZXJzaW9uIG11c3QgYmUgdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlLCBu
b24tY29tbWVudCAqLworCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgx
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0Z1bmN0aW9uUGFyYW1fdmVydC52ZXJ0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvRnVuY3Rpb25QYXJhbV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI3
NDk0M2JkZjVmZjlkNzQ2ZGU2OGQ2ZGRiYjE4MzUyNTZjZWM4YgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL0Z1bmN0aW9uUGFyYW1fdmVydC52ZXJ0CkBAIC0wLDAgKzEsMjEgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2ludCB5ID0g
MTsKKworaW50IGZvbyhpbnQsIGludCBiW3ldKSAgLy8gYXJyYXkgc2l6ZSBzaG91bGQgYmUgY29u
c3RhbnQKK3sKKyAgICByZXR1cm4gMTsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgYVsx
XTsKKworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgxLjApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvSW5jbHVkZV9QcmVwcm9jZXNzb3JfRGlyZWN0aXZlX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL0luY2x1ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGI3ZDY3NGI4ZDk5ZTJlM2QwNmFkNjZmZjBlZDBkNWM4MWQzNmRhNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0luY2x1ZGVfUHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgorI2luY2x1ZGUgIkdML2J1aWxkL05WSURJQV9UZXN0X0luY2x1ZGVfZnJhZy5mcmFn
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVk
X1dvcmRzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0xvd19MZXZlbF9Bc3NlbWJseV9SZXNl
cnZlZF9Xb3Jkc19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA4NjgzMDQ3NzZjYzc1NmY2M2NiZjVi
MGQ4MDQ5MzBmZDYzYmM0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL0xvd19M
ZXZlbF9Bc3NlbWJseV9SZXNlcnZlZF9Xb3Jkc19mcmFnLmZyYWcKQEAgLTAsMCArMSwyNyBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBmbG9hdCBNSU47
Cit1bmlmb3JtIGZsb2F0IFIwOwordW5pZm9ybSBmbG9hdCBGT0dDOwordW5pZm9ybSBmbG9hdCBD
VUJFOwordW5pZm9ybSBmbG9hdCBmOwordW5pZm9ybSBmbG9hdCBvOwordW5pZm9ybSBmbG9hdCBw
OwordW5pZm9ybSBmbG9hdCB3OwordW5pZm9ybSBmbG9hdCB4OwordW5pZm9ybSBmbG9hdCB5Owor
dW5pZm9ybSBmbG9hdCB6OworCit2b2lkIG1haW4oKQoreworCWdsX0ZyYWdDb2xvciA9IHZlYzQo
ZiwgbywgcCwgdyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9NYWluX1BhcmFtZXRl
cnNfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudmVydApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMDBmMzlkNzRiMzFlMTI0NjM3YTc3ZmY4NzM2ZTg4ODg1MGYxMWZjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudmVydApA
QCAtMCwwICsxLDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCit2b2lkIG1haW4odmVjNCBwb3NpdGlvbiA6IFBPU0lUSU9OKQoreworCWdsX1Bvc2l0
aW9uID0gcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3Qz
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1BhcnNlVGVzdDNfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyNDI0NjdhMDg4Y2Y3ZWIzMTgxNTU1NzQxMDBmZGE4MWNiM2EwYWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3QzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIw
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGNvbnN0IHZlYzQgdiA9IHZlYzQobm9ybWFsaXplKHZlYzQoMSkpKTsgICAgLy8gQnVp
bHRpbiBmdW5jdGlvbnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zIGlmIGFsbCB0aGVpciBwYXJh
bWV0ZXJzIGFyZSBjb25zdGFudCBleHByZXNzaW9ucyAtIGNvZGUgb2sKKyAgICBjb25zdCB2ZWM0
IHYxID0gdmVjNChjbGFtcCgxLjAsIC4yMCwgMy4wKSk7IC8vIEJ1aWx0aW4gZnVuY3Rpb25zIGFy
ZSBjb25zdGFudCBleHByZXNzaW9ucyBpZiBhbGwgdGhlaXIgcGFyYW1ldGVycyBhcmUgY29uc3Rh
bnQgZXhwcmVzc2lvbnMgLSBjb2RlIG9rCisgICAgZmxvYXQgZiA9IDEuMDsKKyAgICBjb25zdCB2
ZWM0IHYyID0gdmVjNChmbG9hdCh2ZWM0KDEsMiwzLGYpKSk7IC8vIGYgaXMgbm90IGNvbnN0YW50
IC0gY29kZSBmYWlscyBhbmQgdGVzdCBkb2VzIG5vdCBjb21waWxlIChleHBlY3RlZCkKKworICAg
IGdsX0ZyYWdDb2xvciA9IHYgKyB2MSArIHYyOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvUGFyc2VUZXN0NF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QYXJzZVRlc3Q0X2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MGVmNmQzMWIxM2IyZThjOGFlMjI5M2MyYzUxOGEwNjU1Y2ExNWNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGFyc2VUZXN0NF9mcmFnLmZyYWcK
QEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCB2ZWM0IHYgPSB2ZWMyKDIuMCwgMy4wKTsKKyAgICBn
bF9GcmFnQ29sb3IgPSB2OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2
ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9QZXJtaXNz
aXZlX0NvbnN0YW50X0NvbnZlcnNpb25zX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjZkNjJiMjBk
YjNlZGU5ODc2Njg0NzEyNjYzOGY3Y2Y1ZDI1NGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvUGVybWlzc2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWcKQEAgLTAs
MCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBt
YWluKCkKK3sKKwlmbG9hdCBmID0gMjsgLy8gU2hvdWxkIGJlIDIuMAorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvUGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL1Blcm1pc3NpdmVfU2NhbGFyX1ZlY3Rvcl9FeHByZXNzaW9u
c19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M2N2M3ZmZiMTc1MWMzZmE5ZjE0YmY5YmJjMTc0OGQ0
YWI0OGM4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL1Blcm1pc3NpdmVfU2Nh
bGFyX1ZlY3Rvcl9FeHByZXNzaW9uc19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKwl2ZWMyIHYg
PSB2ZWMyKDEuMCwgMi4wKTsKKwl2ICo9IDIuMDsgLy8gTGVnYWwgaW4gR0xTTC4KK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL1Rlcm5hcnlPcF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9UZXJuYXJ5T3BfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNTZmMDA1OTY5MjNjMTYwNDc3Mzdh
OGJkN2E1ZmZjMjEwNDgyZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXJu
YXJ5T3BfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAx
OSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJ
Q0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgbWF0NCBtOworICAgIHZlYzQgdjsK
KyAgICBib29sIGI7CisgICAgZ2xfRnJhZ0NvbG9yID0gYiA/IHYgOiBtOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvVGV4dHVyZV9SZWN0YW5nbGVfU2FtcGxlcnNfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvVGV4dHVyZV9SZWN0YW5nbGVfU2FtcGxlcnNfZnJhZy5mcmFnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ4YmIwZDYwOWU1MWY5YTcwMDNmMjc3ZmEwMGNkNjRjYTllMmQxNjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9UZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFn
LmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNl
bmRpZgordW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNhbXA7CisKK3ZvaWQgbWFpbigpCit7CisJZ2xf
RnJhZ0NvbG9yID0gdGV4dHVyZTJEUmVjdChzYW1wLCB2ZWMyKDAuMCwgMC4wKSk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTEwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2FycmF5MTBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NjY4MWNmMzY1ZGJhY2Q4MDE2MTg5NzQy
YzA5Y2UxZTg3ZGE2ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTEw
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCisKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZltdOworICAgIGZsb2F0IGZs
dCA9IGZbNV07CisgICAgZmxvYXQgZlszXTsgIC8vIGhpZ2hlciBhcnJheSBpbmRleCBoYXMgYWxy
ZWFkeSBiZWVuIHVzZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MTFfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkxMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZk
N2FiZGFkZjZhMzA2MDNkZmUzOTlhZGRhZjMyMzk4ZGQ0ZTI3ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2FycmF5MTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxv
YXQgZltdOworICAgIGludCBmWzRdOyAgLy8gYXJyYXkgcmVkZWNsYXJlZCB3aXRoIGEgZGlmZmVy
ZW50IHR5cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5MV9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9hcnJheTFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNDAyYmE5MmI3
NmU3YzljN2NmNGM4MTYwYmVmMDY1ZmI3MDI4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9hcnJheTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGFycmF5WzJd
WzJdOyAgLy8gdHdvIGRpbWVudGlvbmFsIGFycmF5cyBhcmUgbm90IGFsbG93ZWQKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5Ml9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
cnJheTJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZDBjYmMyNDI5MzBjZWRlZjFmOWFlYjllNTE3
ZTYzZTRiMzBhNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTJfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29uc3QgaW50IGFycmF5WzJdOyAgLy8gY2Fubm90
IGRlY2xhcmUgY29uc3QgYXJyYXlzCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJh
eTNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkzX2ZyYWcuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOGQ3MDYxYmQxZDlhZmM2OWNjNTdmYTQwODUwNTQ2ZjdiMzQ1ZWNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXJyYXkzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAg
IGludCBhcnJheTFbMl0sIGFycmF5MlsyXTsKKyAgICBib29sIGIgPSBhcnJheTEgPT0gYXJyYXky
OyAvLyBlcXVhbGl0eSBvcGVyYXRvciBkb2VzIG5vdCB3b3JrIG9uIGFycmF5cyBidXQgd29ya3Mg
b24gYXJyYXkgZWxlbWVudHMKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5NF9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjky
YWJlYjgyNmM4YmUxZDYzZTk1ZTRmMTMzZjllYTM3MjhjNWVlYzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9hcnJheTRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUwor
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxv
YXQgZlstMl07IC8vIGNhbm5vdCBkZWNsYXJlIGFycmF5cyB3aXRoIG5lZ2F0aXZlIHNpemUKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5NV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9hcnJheTVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MTM1NjIwODRlMjI2MDM4MzUwODRh
NDM0MWZmZDAwZmFmZGNkYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJh
eTVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGkgPSAzOworICAgIGZsb2F0IGZb
aV07IC8vIGFycmF5cyBzaG91bGQgYmUgZGVjbGFyZWQgd2l0aCBhIGNvbnN0YW50IHNpemUKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5Nl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9hcnJheTZfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4M2Y0OWFmOWVlMjU4NjhlZWI5NWQ1
NzVjYmVkMTRkZTk0YzZlOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJh
eTZfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29uc3QgZmxvYXQgaW5kZXggPSAzLjA7
CisgICAgZmxvYXQgZltpbmRleF07ICAvLyBhcnJheXMgc2hvdWxkIGJlIGRlY2xhcmVkIHdpdGgg
YW4gaW50ZWdlciBleHByZXNzaW9uIG5vdCBmbG9hdAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYXJyYXk3X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5N19mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDRkZDZlNmQ5YTkwZGM4NDc3ZDQxYWI1NWI2OTU1MjQ1N2YyMzc1OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5N19mcmFnLmZyYWcKQEAgLTAsMCAr
MSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWlu
KCkKK3sKKyAgICBmbG9hdCBmWzVdOworICAgIGZbXTsgIC8vIGFycmF5IHVzZWQgd2l0aG91dCBh
IHNpemUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OF9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9hcnJheThfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZGI4ODE5ZDZkYmU4
NzFiYzJkYzkyZmNmODgxNTAzMzFhOTg3MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9hcnJheThfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZls1XTsKKyAg
ICBmbG9hdCBmW107ICAvLyByZWRlY2xhcmF0aW9uIG9mIGFycmF5IGFscmVhZHkgZGVjbGFyZWQg
d2l0aCBhIHNpemUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2FycmF5OV9mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9hcnJheTlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NWVkYzc1
ZGMwOTIwMTk5NDAyNTQ2MGQ3ZWY1ZjU3OTc3NTU4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9hcnJheTlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiBhcnJh
eVsyXTsKKyAgICBhcnJheS54eTsgIC8vIGFycmF5cyBjYW5ub3QgZGlyZWN0bHkgYmUgc3dpenps
ZWQsIGhvd2V2ZXIsIGFuIGVsZW1lbnQgb2YgYXJyYXkgY2FuIGJlIHN3aXp6bGVkCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9hdHRyaWJ1dGUxX3ZlcnQudmVydCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2F0dHJpYnV0ZTFfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMmYxYmU2ZDY3ZTkzNWRiMDQ5
ZWVkNzI2NGM1NWY4MTgwNTEyMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9h
dHRyaWJ1dGUxX3ZlcnQudmVydApAQCAtMCwwICsxLDE0IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCithdHRyaWJ1dGUgaW50IGk7ICAvLyBhdHRyaWJ1
dGVzIGNhbm5vdCBiZSBpbnQgb3IgYm9vbAorCit2b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0
aW9uID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTJf
dmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlMl92ZXJ0LnZlcnQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmUzMzA5YjUzMDNkMzMyYTQ2MGZiNmJiY2E1Zjk1NmViY2ViOGJlZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZTJfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTQg
QEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0dHJp
YnV0ZSBmbG9hdCBmWzJdOyAgLy8gYXR0cmlidXRlcyBjYW5ub3QgYmUgYXJyYXlzCisKK3ZvaWQg
bWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYXR0cmlidXRlX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0
ZV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk0MTk3YmUzNzRjZDMzOThjNGI5ODgwMjdjODU3MjJh
MGEyYTY4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2F0dHJpYnV0ZV9mcmFn
LmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNl
bmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBhdHRyaWJ1dGUgZmxvYXQgZm9vOyAgLy8gYXR0cmli
dXRlcyBjYW4gYmUgZGVjbGFyZWQgYXQgZ2xvYmFsIHNjb3BlIGluIHZlcnRleCBzaGFkZXIgb25s
eQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYXR0cmlidXRlX3ZlcnQudmVydCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2F0dHJpYnV0ZV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNmMTYyOTlhMjBl
OTQ0NGY2ZDY5MWYxODUxNDA4ZTBiYmFjZTBmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2F0dHJpYnV0ZV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBh
dHRyaWJ1dGUgZmxvYXQgZm9vOyAgLy8gYXR0cmlidXRlcyBjYW4gYmUgZGVjbGFyZWQgYXQgYSBn
bG9iYWwgc2NvcGUgb25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnJlYWtfZnJh
Zy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnJlYWtfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZmRj
YmQzNjcwMDY1MTM0ZDExOWY4MGY3ZmY3MTgzZmE3ZDc4MDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9icmVha19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBicmVhazsg
Ly8gYnJlYWsga2V5d29yZCBhbGxvd2VkIG9ubHkgaW5zaWRlIHRoZSBsb29wcworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvYnVpbGRfMDAxX3RvXzAwOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZjEwZjQzNmU4YmMwNzI1MTcy
YjgzZjE3NmQ0MWJmN2VlZWYyNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9i
dWlsZF8wMDFfdG9fMDA4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0K
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0
OiBidWlsZF8wMDFfdG9fMDA4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5j
c3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1
MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4K
KzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRl
c3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0QnVpbHRJbk92ZXJpZGVfZnJh
Zy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RCdWlsdEluT3ZlcmlkZV9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0
IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RDb21tYV9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdENvbW1hX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdENvbnN0Rm9sZGluZzFfdmVy
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0Q29uc3RGb2xkaW5nMV92ZXJ0LnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNvcnJlY3RDb25zdEZvbGRpbmcyX3ZlcnQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiQ29ycmVjdENvbnN0Rm9sZGluZzJfdmVydC50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0Q29uc3RydWN0X3ZlcnQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiQ29ycmVjdENvbnN0cnVjdF92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogIkNvcnJlY3RFeHRlbnNpb24xMF9WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJDb3JyZWN0RXh0ZW5zaW9uMTBfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RFeHRlbnNpb24xX1YxMDBfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAg
ICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3Jh
bSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIs
CisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RXh0ZW5zaW9uNF9WMTAwX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQi
OiB0cnVlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlf
dG9fMDE2Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMDlfdG9fMDE2Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzNmNjY1ODI5MDQ4NDQ5MjdlYjAyODM0M2ZlMWExMTJiZWE5MDA1ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAwOV90b18wMTYuaHRtbApAQCAtMCwwICsx
LDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5X
ZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAwOV90b18wMTYuaHRtbDwvdGl0bGU+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2ds
ZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFt
cGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6
IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5H
TEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIkNvcnJlY3RGdWxsX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJk
ZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEZ1bGxfdmVydC50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRy
dWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0RnVuY092ZXJsb2FkX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0RnVuY092ZXJsb2FkX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQi
OiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiQ29ycmVjdEZ1bmNPdmVy
bG9hZF92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RGdW5jT3ZlcmxvYWRfdmVydC50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJDb3JyZWN0RnVuY3Rpb24xX3ZlcnQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdEZ1bmN0aW9uMV92ZXJ0LnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RNb2R1bGVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogIkNvcnJlY3RNb2R1bGVfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogdHJ1ZSwKKyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAg
ICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZl
cnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVu
dFNoYWRlciI6ICJDb3JyZWN0UGFyc2UxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJDb3JyZWN0UGFyc2UxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRy
dWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVy
biI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFk
ZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAiQ29ycmVjdFBhcnNlMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29y
cmVjdFBhcnNlMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAg
ICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNv
cnJlY3RQYXJzZTJfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1
bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0UGFyc2UyX3ZlcnQudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMTdfdG9fMDI0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTg2OWVjYTQ4YzRhOGI0NGQ2NDllM2I1NTRlYzkyNTcyMzAwYTEzNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAxN190b18wMjQuaHRtbApAQCAtMCwwICsxLDExMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8g
Tk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0t
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBH
TFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAxN190b18wMjQuaHRtbDwvdGl0bGU+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRp
bHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3
aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7
Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVz
dFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJl
Y3RQYXJzZVRlc3QxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3JyZWN0
UGFyc2VUZXN0MV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAg
ICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJl
Y3RQYXJzZVRlc3RfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RQ
YXJzZVRlc3RfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwKKyAgICAg
ICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJDb3JyZWN0
UHJlcHJvY2VzczVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RQ
cmVwcm9jZXNzNV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAg
ICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJl
Y3RQcmVwcm9jZXNzOF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVj
dFByZXByb2Nlc3M4X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisg
ICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29y
cmVjdFByZXByb2Nlc3M5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJDb3Jy
ZWN0UHJlcHJvY2VzczlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogdHJ1ZSwK
KyAgICAgICJjb21wc3RhdCI6IHRydWUKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJD
b3JyZWN0U3dpenpsZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJl
Y3RTd2l6emxlMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAg
ICAgImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNv
cnJlY3RTd2l6emxlMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVm
YXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RTd2l6emxlMV92ZXJ0
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0Ijog
dHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RTd2l6emxlMl9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFN3aXp6bGUyX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMy
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wMjVfdG9fMDMyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTMyZjBjZTczNDVjZDM5MDdjMzMzZTkyODFkNTlhMWM1NWQ4ODg2YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAyNV90b18wMzIuaHRtbApAQCAtMCwwICsxLDExMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8g
Tk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0t
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBH
TFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzAyNV90b18wMzIuaHRtbDwvdGl0bGU+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRp
bHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3
aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7
Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVz
dFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkNv
cnJlY3RTd2l6emxlMl92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVm
YXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNvcnJlY3RTd2l6emxlMl92ZXJ0
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0Ijog
dHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNvcnJlY3RTd2l6emxlM19mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFN3aXp6bGUzX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiRHVwbGljYXRlVmVyc2lvbjFfVjEwMF9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiRHVwbGljYXRlVmVyc2lvbjFfVjEw
MF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiQ29ycmVjdFZlcnNp
b25fVjEwMF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ29ycmVjdFZlcnNp
b25fVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAg
ImNvbXBzdGF0IjogdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIkZ1bmN0
aW9uUGFyYW1fdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1bHQu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJGdW5jdGlvblBhcmFtX3ZlcnQudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJQYXJzZVRlc3QzX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJQYXJzZVRlc3QzX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJQYXJzZVRlc3Q0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJQYXJzZVRlc3Q0X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJhcnJheTEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJh
eTEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1
aWxkXzAzM190b18wNDAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzAzM190b18wNDAuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MmM3MGI3M2Y1YTc1OTA0YTExMmJiZTcwNGY1YzViNDg1ODQyZjE0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDMzX3RvXzA0MC5odG1sCkBA
IC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8t
Z2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDMzX3RvXzA0MC5odG1s
PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7
IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3Qi
OworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiYXJyYXkxMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiYXJy
YXkxMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJj
b21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXkxX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTFfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5Ml9mcmFnLmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiYXJyYXkyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJhcnJheTNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5
M19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVs
dC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk0X2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTRfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImFycmF5NV9mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiYXJyYXk1X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZh
bHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJhcnJheTZfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5Nl9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk3X2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhcnJheTdfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAg
XQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMDQxX3RvXzA0OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MTZlZGIxOTAw
MjJkZDM1YjVmZGJiMzU3N2M3NmZiN2E5ZDE1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8wNDFfdG9fMDQ4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAt
LT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3Jt
YW5jZSB0ZXN0OiBidWlsZF8wNDFfdG9fMDQ4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xl
cy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIg
aGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVu
KHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJhcnJheThfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImFycmF5OF9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiYXJyYXk5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJhcnJheTlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogImF0dHJpYnV0ZTFfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRl
ZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJhdHRyaWJ1dGUxX3ZlcnQudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJhdHRyaWJ1dGUyX3ZlcnQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiYXR0cmlidXRlMl92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiYXR0cmlidXRlX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJhdHRyaWJ1dGVfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
ImF0dHJpYnV0ZV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVs
dC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImF0dHJpYnV0ZV92ZXJ0LnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiYnJlYWtfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogImJyZWFrX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICJjb21tYTFfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb21tYTFfdmVydC50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRiMDliZTk3MGU3OGJiYjQ1MDkzNTBmOWNjNDNmODZjNzY4ZWJmMjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNDlfdG9fMDU2Lmh0bWwKQEAgLTAsMCArMSwxMTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERP
IE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCist
LT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
R0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8wNDlfdG9fMDU2Lmh0bWw8L3RpdGxlPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0
aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4
OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rl
c3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJjb21t
YTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbW1hMl9mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiY29tbWEyX3ZlcnQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiY29tbWEyX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICJjb21tYTNfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRlZmF1
bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb21tYTNfdmVydC50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbW1lbnRfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogImNvbW1lbnRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogImNvbmRpdGlvbmFsMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAiY29uZGl0aW9uYWwxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJjb25kaXRpb25hbDJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImNvbmRp
dGlvbmFsMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29uZGl0
aW9uYWwzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25kaXRpb25hbDNf
ZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0
YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnN0RnVuY19mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29uc3RGdW5jX2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAg
ICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA1N190b18wNjQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Y2U0
OGI3YTE3NjBmMjQyZDJlZTA5YThmOTQyZmI4YzQzM2IxZjJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMDU3X3RvXzA2NC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8
IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1Qg
RURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wg
Y29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDU3X3RvXzA2NC5odG1sPC90aXRsZT4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwv
Y2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVu
bmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiY29uc3RydWN0
b3IxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJjb25zdHJ1Y3RvcjFfZnJh
Zy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnN0cnVjdG9yMl9mcmFn
LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29uc3RydWN0b3IyX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJjb25zdHJ1Y3RvcjNfVjEwMF9mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiY29uc3RydWN0b3IzX1YxMDBfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImNvbnRpbnVlX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJjb250aW51ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUxMF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiZGF0YVR5cGUxMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiZGF0YVR5cGUxMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0
YVR5cGUxMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5
cGUxMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxMl9mcmFn
LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6
IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAi
dGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZh
dWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGUxM19mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxM19mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8wNjVfdG9fMDcyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y1YjAy
MTdkZjU3OGE4Yjc1ZWY2ZGQ0MGZiMWQ1NDFiODhmYWNiYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzA2NV90b18wNzIuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVE
SVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNv
bmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzA2NV90b18wNzIuaHRtbDwvdGl0bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0i
NTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2Nh
bnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5l
ci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAor
ICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1
bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBlMTlf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImRhdGFUeXBlMTlfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBlMV9mcmFnLmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGUxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAg
ICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAg
IHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAg
ICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAg
ICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImRhdGFUeXBlMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBm
YWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0
dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhT
aGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiZGF0YVR5cGUzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkYXRh
VHlwZTNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRhdGFUeXBl
NF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGU0X2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkYXRhVHlwZTVfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImRhdGFUeXBlNV9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZGF0YVR5cGU2X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAg
ICAibmFtZSI6ICJkYXRhVHlwZTZfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogImRhdGFUeXBlN19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0
YVR5cGU3X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2J1aWxkXzA3M190b18wODAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA3M190b18wODAu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMDk2NDNmMTY3Nzc2MWQzNjYxNjllNTNkMTYzNTZkMzRhZTM1NmQ3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDczX3RvXzA4MC5odG1s
CkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1
dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkg
VGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNF
TlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDczX3RvXzA4MC5o
dG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52
YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2
cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJp
Y3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiZGF0YVR5cGU4X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJkYXRhVHlwZThfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisg
ICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAi
YnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjog
Ii4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImRh
dGFUeXBlOV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZGF0YVR5cGU5X2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkb3doaWxlX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkb3doaWxlX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJkdmVjMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAiZHZlYzJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImR2ZWMzX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJkdmVjM19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZHZlYzRfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogImR2ZWM0X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJleHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImV4dGVuc2lvbjJfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAiZXh0ZW5zaW9uM19WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAi
bmFtZSI6ICJleHRlbnNpb24zX1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDgxX3RvXzA4OC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
YnVpbGRfMDgxX3RvXzA4OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMDZjMjNhMzhlMzRiMTRhMjdkMGRm
MTI4NjNiN2E0ZmQyMzZkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWls
ZF8wODFfdG9fMDg4Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEt
LSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBi
dWlsZF8wODFfdG9fMDg4Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3Mi
IC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAi
IHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxz
Y3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3Rz
IjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3Jh
bSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIs
CisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb241X1YxMDBfZnJhZy5mcmFnIgor
ICAgICAgfSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjVfVjEwMF9mcmFnLnRlc3QuaHRtbCIs
CisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAg
fSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0i
OiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAor
ICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uNl9WMTAwX2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJleHRlbnNpb242X1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogImV4dGVuc2lvbjdfVjEwMF9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAiZXh0ZW5zaW9uN19WMTAwX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJleHRlbnNpb244X1YxMDBfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogImV4dGVuc2lvbjhfVjEwMF9mcmFnLnRlc3QuaHRtbCIsCisgICAg
ICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAg
ICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7Cisg
ICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZXh0ZW5zaW9uOV9WMTAwX2ZyYWcuZnJhZyIKKyAgICAgIH0s
CisgICAgICAibmFtZSI6ICJleHRlbnNpb245X1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAg
ImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAg
eworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAg
ICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAg
ImZyYWdtZW50U2hhZGVyIjogImZsb2F0Ml9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiZmxvYXQyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAor
ICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJm
bG9hdDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZsb2F0M19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZmxvYXQ0X2ZyYWcuZnJhZyIKKyAg
ICAgIH0sCisgICAgICAibmFtZSI6ICJmbG9hdDRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAgXQorfSk7
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvYnVpbGRfMDg5X3RvXzA5Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MjU5NGE2MDQ1NDRmNmI3
NmE0NWE0ZTIzMjI1NjQ2ZDM3M2Q1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9idWlsZF8wODlfdG9fMDk2Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAtLT4KKzwh
LS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3JtYW5jZSB0
ZXN0OiBidWlsZF8wODlfdG9fMDk2Lmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xlcy10ZXN0
cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIgaGVpZ2h0
PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9k
eT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVuKHsKKyAg
InRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHkxX3ZlcnQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiZnJhZ21lbnRPbmx5MV92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAi
bGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7
CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAg
ICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZnJhZ21lbnRPbmx5Ml92ZXJ0LnZlcnQiLAorICAgICAgICAi
ZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
ImZyYWdtZW50T25seTJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogImZyYWdtZW50T25seTNfdmVydC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
ImRlZmF1bHQuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmcmFnbWVudE9ubHkzX3Zl
cnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICJmcmFnbWVudE9ubHk0
X3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAiZnJhZ21lbnRPbmx5NF92ZXJ0LnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZnJhZ21lbnRPbmx5X3ZlcnQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiZnJhZ21lbnRPbmx5X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZh
bHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0
ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNo
YWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRl
ciI6ICJmdW5jdGlvbjEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmdW5j
dGlvbjEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlv
bjFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uMV9mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVz
dFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0
LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVuY3Rpb24yX1YxMDBfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uMl9WMTAwX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzA5N190b18xMDQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
N2NlNTQwYzkxNzE0ODNiMGY0NjAxMDVmNzhmZmMxZmZkMjg4M2ViCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMDk3X3RvXzEwNC5odG1sCkBAIC0wLDAgKzEsMTExIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBO
T1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdM
U0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMDk3X3RvXzEwNC5odG1sPC90aXRsZT4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGls
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdp
ZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsi
PjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0
UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZnVuY3Rp
b24zX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJmdW5jdGlvbjNfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0aW9uNF9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb240X2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAor
ICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsK
KyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAg
ICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlvbjZfZnJhZy5mcmFnIgorICAgICAgfSwKKyAg
ICAgICJuYW1lIjogImZ1bmN0aW9uNl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiZnVuY3Rpb243X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJm
dW5jdGlvbjdfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImZ1bmN0
aW9uOF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiZnVuY3Rpb244X2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJmdW5jdGlvbjlfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImZ1bmN0aW9uOV9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaHZlYzJfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogImh2ZWMyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNl
LAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJu
IjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRl
ciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6
ICJodmVjM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaHZlYzNfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3Rv
XzExMi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTA1X3RvXzExMi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4NGZhOThmODZiYWJhNzA0MmQxMzU0MGYwYzRmYTk4NWIwMWQ4OWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMDVfdG9fMTEyLmh0bWwKQEAgLTAsMCArMSwx
MTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQu
IERPIE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CistLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2Vi
R0wgR0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xMDVfdG9fMTEyLmh0bWw8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVz
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAx
NnB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xF
U1Rlc3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjog
ImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6
ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJo
dmVjNF9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaHZlYzRfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImlkZW50aWZpZXIxX2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJpZGVudGlmaWVyMV9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAg
ICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaWRlbnRpZmllcjJfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogImlkZW50aWZpZXIyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJpZGVudGlmaWVyM19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAiaWRlbnRpZmllcjNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFs
c2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImlmMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaWYxX2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJpZjJfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogImlmMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAiaW5jcmVtZW50MV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
aW5jcmVtZW50MV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiaW5j
cmVtZW50Ml9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiaW5jcmVtZW50Ml9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8x
MTNfdG9fMTIwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMTNfdG9fMTIwLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWMxODEwMDA4MzY2MjZhN2UxOWRkNzFiZjkxNzI1MWUxZmQ2NzE4YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzExM190b18xMjAuaHRtbApAQCAtMCww
ICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVy
YXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFu
IE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQg
ZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzExM190b18xMjAuaHRtbDwvdGl0
bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
b2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJl
eGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWln
aHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09w
ZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRl
cm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hh
ZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVy
IjogImluY3JlbWVudDNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImluY3Jl
bWVudDNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImluY3JlbWVu
dDRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImluY3JlbWVudDRfZnJhZy50
ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBm
YWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRl
c3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVs
dC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogImluY3JlbWVudDZfZnJhZy5mcmFn
IgorICAgICAgfSwKKyAgICAgICJuYW1lIjogImluY3JlbWVudDZfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIm1haW4xX3ZlcnQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
bWFpbjFfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIm1haW4y
X3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisg
ICAgICB9LAorICAgICAgIm5hbWUiOiAibWFpbjJfdmVydC50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIm1haW4zX3ZlcnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAibWFpbjNfdmVy
dC50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQi
OiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAg
InRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVm
YXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIm1hdHJpeF9WMTAwX2ZyYWcu
ZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJtYXRyaXhfVjEwMF9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiB0cnVlLAorICAgICAgImNvbXBzdGF0IjogdHJ1ZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIm5vcm1hbF92ZXJ0LnZlcnQiLAorICAgICAg
ICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVsdC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1l
IjogIm5vcm1hbF92ZXJ0LnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9idWlsZF8xMjFfdG9fMTI4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjFfdG9f
MTI4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY0NTQ2NWUyNzJmYTFjYmUzYmNlZWU4NTlhNGQ4ODZkOTBj
NzY0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzEyMV90b18xMjgu
aHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBp
cyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQuIC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZvcm1hbmNlIHRlc3Q6IGJ1aWxkXzEyMV90b18x
MjguaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29nbGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRo
OiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ug
c3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5ydW4oeworICAidGVzdHMiOiBbCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogInBhcnNlcjEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJwYXJzZXIxMF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAicGFyc2VyMV92ZXJ0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAiZGVmYXVs
dC5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjFfdmVydC50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNlcjNfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogInBhcnNlcjNfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogInBhcnNlcjRfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBh
cnNlcjRfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2Rl
ZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNlcjVf
ZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjVfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9n
cmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0
IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNlcjZfZnJhZy5mcmFnIgorICAgICAg
fSwKKyAgICAgICJuYW1lIjogInBhcnNlcjZfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtz
dGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAg
ICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAi
dmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogInBhcnNlcjdfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
InBhcnNlcjdfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAg
ICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVp
bGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4u
L2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInBhcnNl
cjhfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInBhcnNlcjhfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEz
Ni5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTI5X3RvXzEzNi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlhYmU0MGMzNTE4ZDJjMjNlNGMyZGI1NmZjOWY1OTYzZDkwMGExYTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMjlfdG9fMTM2Lmh0bWwKQEAgLTAsMCArMSwxMTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERP
IE5PVCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCist
LT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
R0xTTCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xMjlfdG9fMTM2Lmh0bWw8L3RpdGxlPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dl
YmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0
aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4
OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rl
c3RSdW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1
aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIu
Li9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJwYXJz
ZXI5X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwYXJzZXI5X2ZyYWcudGVz
dC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFs
c2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0
UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQu
dmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJwcmVwcm9jZXNzMF9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2VzczBfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3MxMF9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2VzczEwX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJwcmVwcm9jZXNzMV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAg
Im5hbWUiOiAicHJlcHJvY2VzczFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0Ijog
ZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBh
dHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4
U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hh
ZGVyIjogInByZXByb2Nlc3MyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJw
cmVwcm9jZXNzMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAicHJl
cHJvY2VzczNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInByZXByb2Nlc3Mz
X2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBz
dGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAg
ICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0
L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJwcmVwcm9jZXNzNF9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAicHJlcHJvY2VzczRfZnJhZy50ZXN0
Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxz
ZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQ
cm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52
ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3M2X2ZyYWcuZnJhZyIK
KyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzNl9mcmFnLnRlc3QuaHRtbCIsCisg
ICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfQor
ICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9idWlsZF8xMzdfdG9fMTQ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhkMjMzODA5
ZmFlYTk2NDBiYjBkYWY4NmMzMTU1YjhhMjY0MmRkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2J1aWxkXzEzN190b18xNDQuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8IS0tIHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gRE8gTk9UIEVESVQu
IC0tPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1Vz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBHTFNMIGNvbmZv
cm1hbmNlIHRlc3Q6IGJ1aWxkXzEzN190b18xNDQuaHRtbDwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIg
Lz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL29n
bGVzLXRlc3RzLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vb2dsZXMtdXRpbHMuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAw
IiBoZWlnaHQ9IjUwMCIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48L2NhbnZh
cz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPC9ib2R5PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK09wZW5HTEVTVGVzdFJ1bm5lci5y
dW4oeworICAidGVzdHMiOiBbCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAg
ICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQv
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogInByZXByb2Nlc3M3X2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJwcmVwcm9jZXNzN19mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic2NvcGluZzFfZnJhZy5mcmFnIgorICAg
ICAgfSwKKyAgICAgICJuYW1lIjogInNjb3BpbmcxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJm
cmFnbWVudFNoYWRlciI6ICJzY29waW5nMl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5h
bWUiOiAic2NvcGluZzJfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2Us
CisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4i
OiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVy
IjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjog
InN0cnVjdDEwX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3QxMF9m
cmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3Rh
dCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0MTFfZnJhZy5m
cmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN0cnVjdDExX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9
LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6
IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisg
ICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3QxX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJzdHJ1Y3QxX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6
IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJw
YXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRl
eFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNo
YWRlciI6ICJzdHJ1Y3QyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1
Y3QyX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNv
bXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwK
KyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZh
dWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzdHJ1Y3QzX2Zy
YWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJzdHJ1Y3QzX2ZyYWcudGVzdC5odG1s
IiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAg
ICB9CisgIF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE0NV90b18xNTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODky
MGRkODI0N2VjNDA1OTg1NDBkOGI4ZjQ1YmI2Nzk2M2U3YTdjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8
IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1Qg
RURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wg
Y29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTQ1X3RvXzE1Mi5odG1sPC90aXRsZT4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwv
Y2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVu
bmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIs
CisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVm
YXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0NF9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0NF9mcmFnLnRlc3QuaHRt
bCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQi
LAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0NV9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAic3RydWN0NV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0
YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAg
ICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2
ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21l
bnRTaGFkZXIiOiAic3RydWN0Nl9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAi
c3RydWN0Nl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0
N19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0N19mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFBy
b2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZl
cnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3RydWN0OF9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAic3RydWN0OF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlu
a3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7Cisg
ICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAg
ICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJh
Z21lbnRTaGFkZXIiOiAic3RydWN0OV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAic3RydWN0OV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
Li4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAic3dp
enpsZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInN3aXp6bGUxX2ZyYWcu
dGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0Ijog
ZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0
ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzd2l6emxlMl9mcmFnLmZyYWci
CisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3dpenpsZTJfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0KKyAg
XQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvYnVpbGRfMTUzX3RvXzE2MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViOTUwZTNjZmFl
ODJjZDc3NmE3ZjlmYzM4YmYwOWM2Nzc3ZWRiNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9idWlsZF8xNTNfdG9fMTYwLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5PVCBFRElULiAt
LT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xTTCBjb25mb3Jt
YW5jZSB0ZXN0OiBidWlsZF8xNTNfdG9fMTYwLmh0bWw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9vZ2xl
cy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwMCIg
aGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PC9jYW52YXM+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RSdW5uZXIucnVu
KHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJzd2l6emxlM19mcmFnLmZy
YWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAic3dpenpsZTNfZnJhZy50ZXN0Lmh0bWwiLAor
ICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0s
CisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjog
eworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAg
ICAgICAgImZyYWdtZW50U2hhZGVyIjogInR5cGVjYXN0X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisg
ICAgICAibmFtZSI6ICJ0eXBlY2FzdF9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRT
aGFkZXIiOiAidW5pZm9ybTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInVu
aWZvcm0xX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAg
ImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ1bmlmb3Jt
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ1bmlmb3JtX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UK
KyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJv
Z3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ2YXJ5aW5nMV9mcmFnLmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAidmFyeWluZzFfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogInZhcnlpbmcyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFt
ZSI6ICJ2YXJ5aW5nMl9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
dmFyeWluZzNfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogInZhcnlpbmczX2Zy
YWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0
IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAg
ICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2Rl
ZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ2YXJ5aW5nX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2YXJ5aW5nX2ZyYWcudGVzdC5odG1sIiwKKyAg
ICAgICJsaW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9Cisg
IF0KK30pOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2J1aWxkXzE2MV90b18xNjguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzY2MTcxYmZj
ZWRmZDAzMjZmZDFiOWUwODI4NjBkOWY4Yjk3YWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvYnVpbGRfMTYxX3RvXzE2OC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBETyBOT1QgRURJVC4g
LS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEdMU0wgY29uZm9y
bWFuY2UgdGVzdDogYnVpbGRfMTYxX3RvXzE2OC5odG1sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIiAv
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvb2ds
ZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0
aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11dGlscy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MDAi
IGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjwvY2FudmFz
PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNUZXN0UnVubmVyLnJ1
bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAg
ICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4vZGVmYXVsdC9k
ZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAidmVjdG9yX2ZyYWcuZnJh
ZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ2ZWN0b3JfZnJhZy50ZXN0Lmh0bWwiLAorICAg
ICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisg
ICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogewor
ICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAg
ICAgImZyYWdtZW50U2hhZGVyIjogInZlcnNpb24yX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwK
KyAgICAgICJuYW1lIjogInZlcnNpb24yX1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxp
bmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgewor
ICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAg
ICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZy
YWdtZW50U2hhZGVyIjogInZlcnNpb24zX1YxMDBfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAg
ICJuYW1lIjogInZlcnNpb24zX1YxMDBfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0
IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAg
InBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVy
dGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50
U2hhZGVyIjogInZlcnRleE9ubHkyX2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6
ICJ2ZXJ0ZXhPbmx5Ml9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwK
KyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6
ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIi
OiAiLi4vZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAi
dmVydGV4T25seV9mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAidmVydGV4T25s
eV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21w
c3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisg
ICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAidmVydGV4X3Zl
cnQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAg
ICB9LAorICAgICAgIm5hbWUiOiAidmVydGV4X3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICIuLi9kZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFn
bWVudFNoYWRlciI6ICJ3aGlsZTFfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjog
IndoaWxlMV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAg
ICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWls
ZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiLi4v
ZGVmYXVsdC9kZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIiOiAid2hpbGUy
X2ZyYWcuZnJhZyIKKyAgICAgIH0sCisgICAgICAibmFtZSI6ICJ3aGlsZTJfZnJhZy50ZXN0Lmh0
bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQor
ICAgIH0KKyAgXQorfSk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvYnVpbGRfMTY5X3RvXzE3Ni5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFi
ZDNjNjNjNDczYjBlMDJlNzg1ZmVlNmQ5MzY4NDI3YTE2N2VmMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNjlfdG9fMTc2Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPCEtLSB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5P
VCBFRElULiAtLT4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgR0xT
TCBjb25mb3JtYW5jZSB0ZXN0OiBidWlsZF8xNjlfdG9fMTc2Lmh0bWw8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9vZ2xlcy10ZXN0cy5jc3MiIC8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL3dlYmds
LXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL29nbGVzLXV0aWxz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lk
dGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+
PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitPcGVuR0xFU1Rlc3RS
dW5uZXIucnVuKHsKKyAgInRlc3RzIjogWworICAgIHsKKyAgICAgICJwYXR0ZXJuIjogImJ1aWxk
IiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAgInZlcnRleFNoYWRlciI6ICIuLi9k
ZWZhdWx0L2RlZmF1bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJ3aGlsZV9m
cmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAid2hpbGVfZnJhZy50ZXN0Lmh0bWwi
LAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAiY29tcHN0YXQiOiBmYWxzZQorICAg
IH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQiLAorICAgICAgInRlc3RQcm9ncmFt
IjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogIi4uL2RlZmF1bHQvZGVmYXVsdC52ZXJ0IiwK
KyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlRlcm5hcnlPcF9mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiVGVybmFyeU9wX2ZyYWcudGVzdC5odG1sIiwKKyAgICAgICJsaW5r
c3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsKKyAg
ICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAgICAg
InZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFkZXIi
OiAiQ0dfRGF0YV9UeXBlc19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUiOiAiQ0df
RGF0YV9UeXBlc19mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAg
ICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkNHX1N0YW5kYXJkX0xp
YnJhcnlfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkNHX1N0YW5kYXJkX0xp
YnJhcnlfZnJhZy50ZXN0Lmh0bWwiLAorICAgICAgImxpbmtzdGF0IjogZmFsc2UsCisgICAgICAi
Y29tcHN0YXQiOiBmYWxzZQorICAgIH0sCisgICAgeworICAgICAgInBhdHRlcm4iOiAiYnVpbGQi
LAorICAgICAgInRlc3RQcm9ncmFtIjogeworICAgICAgICAidmVydGV4U2hhZGVyIjogImRlZmF1
bHQudmVydCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJJbmNsdWRlX1ByZXByb2Nlc3Nv
cl9EaXJlY3RpdmVfZnJhZy5mcmFnIgorICAgICAgfSwKKyAgICAgICJuYW1lIjogIkluY2x1ZGVf
UHJlcHJvY2Vzc29yX0RpcmVjdGl2ZV9mcmFnLnRlc3QuaHRtbCIsCisgICAgICAibGlua3N0YXQi
OiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNlCisgICAgfSwKKyAgICB7CisgICAgICAi
cGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0
ZXhTaGFkZXIiOiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIkxv
d19MZXZlbF9Bc3NlbWJseV9SZXNlcnZlZF9Xb3Jkc19mcmFnLmZyYWciCisgICAgICB9LAorICAg
ICAgIm5hbWUiOiAiTG93X0xldmVsX0Fzc2VtYmx5X1Jlc2VydmVkX1dvcmRzX2ZyYWcudGVzdC5o
dG1sIiwKKyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisg
ICAgfSwKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dy
YW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudmVy
dCIsCisgICAgICAgICJmcmFnbWVudFNoYWRlciI6ICJkZWZhdWx0LmZyYWciCisgICAgICB9LAor
ICAgICAgIm5hbWUiOiAiTWFpbl9QYXJhbWV0ZXJzX3ZlcnQudGVzdC5odG1sIiwKKyAgICAgICJs
aW5rc3RhdCI6IGZhbHNlLAorICAgICAgImNvbXBzdGF0IjogZmFsc2UKKyAgICB9LAorICAgIHsK
KyAgICAgICJwYXR0ZXJuIjogImJ1aWxkIiwKKyAgICAgICJ0ZXN0UHJvZ3JhbSI6IHsKKyAgICAg
ICAgInZlcnRleFNoYWRlciI6ICJkZWZhdWx0LnZlcnQiLAorICAgICAgICAiZnJhZ21lbnRTaGFk
ZXIiOiAiUGVybWlzc2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLmZyYWciCisgICAgICB9
LAorICAgICAgIm5hbWUiOiAiUGVybWlzc2l2ZV9Db25zdGFudF9Db252ZXJzaW9uc19mcmFnLnRl
c3QuaHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZh
bHNlCisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9f
MTc4Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9idWlsZF8xNzdfdG9fMTc4Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2RjMmIzOGJjYzI2NGVjYmZlZGYxN2RhNDI0Njc5MDc5MzlhODc1NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2J1aWxkXzE3N190b18xNzguaHRtbApAQCAtMCwwICsxLDUx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gdGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLiBE
TyBOT1QgRURJVC4gLS0+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
LS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdM
IEdMU0wgY29uZm9ybWFuY2UgdGVzdDogYnVpbGRfMTc3X3RvXzE3OC5odG1sPC90aXRsZT4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIiAvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvb2dsZXMtdGVzdHMuY3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9vZ2xlcy11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUi
IHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZw
eDsiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworT3BlbkdMRVNU
ZXN0UnVubmVyLnJ1bih7CisgICJ0ZXN0cyI6IFsKKyAgICB7CisgICAgICAicGF0dGVybiI6ICJi
dWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAi
ZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdtZW50U2hhZGVyIjogIlBlcm1pc3NpdmVfU2Nh
bGFyX1ZlY3Rvcl9FeHByZXNzaW9uc19mcmFnLmZyYWciCisgICAgICB9LAorICAgICAgIm5hbWUi
OiAiUGVybWlzc2l2ZV9TY2FsYXJfVmVjdG9yX0V4cHJlc3Npb25zX2ZyYWcudGVzdC5odG1sIiwK
KyAgICAgICJsaW5rc3RhdCI6IHRydWUsCisgICAgICAiY29tcHN0YXQiOiB0cnVlCisgICAgfSwK
KyAgICB7CisgICAgICAicGF0dGVybiI6ICJidWlsZCIsCisgICAgICAidGVzdFByb2dyYW0iOiB7
CisgICAgICAgICJ2ZXJ0ZXhTaGFkZXIiOiAiZGVmYXVsdC52ZXJ0IiwKKyAgICAgICAgImZyYWdt
ZW50U2hhZGVyIjogIlRleHR1cmVfUmVjdGFuZ2xlX1NhbXBsZXJzX2ZyYWcuZnJhZyIKKyAgICAg
IH0sCisgICAgICAibmFtZSI6ICJUZXh0dXJlX1JlY3RhbmdsZV9TYW1wbGVyc19mcmFnLnRlc3Qu
aHRtbCIsCisgICAgICAibGlua3N0YXQiOiBmYWxzZSwKKyAgICAgICJjb21wc3RhdCI6IGZhbHNl
CisgICAgfQorICBdCit9KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTFfdmVydC52ZXJ0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvY29tbWExX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjQ3M2U0NmU5
MmZiMzEzZWUxNTM1N2M2YzJlMDBlNWVhMmE2OTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvY29tbWExX3ZlcnQudmVydApAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmln
aHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5k
IGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGlu
dCBpLCBqLCBrOworICAgIGZsb2F0IGY7CisgICAgaSA9IGosIGssIGY7CisgICAgaSA9IChqLCBr
LCBmKTsgICAvLyBmbG9hdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8gaW50CisgICAgZ2xfUG9zaXRp
b24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEyX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcwNjFm
N2FlNzJkMDlkNzg1OGQ3NmNjNGI3OWM4MDEwMmJjNjhiZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2NvbW1hMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxOCBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBjb25zdCB2
ZWM0IHYgPSAodmVjNCgxLDIsMyw0KSwgdmVjNCg1LDYsNyw4KSwgMS4yKTsgLy8gcmlnaHQgbW9z
dCB2YWx1ZSBvZiBjb21tYSBvcGVyYXRvciBzaG91bCBiZSBhIHZlYzQKKyAgICBjb25zdCB2ZWM0
IHYxID0gKHZlYzMoMC4yLCAyLjApLCB2ZWM0KDEsMiwzLDQpLCB2ZWM0KDUsNiw3LDgpKTsKKyAg
ICBjb25zdCB2ZWM0IHYyID0gKHZlYzQoMSwyLDMsNCksIHZlYzIoMi4xLCAyKSwgIHZlYzQoNSw2
LDcsOCkpOworICAgIGdsX0ZyYWdDb2xvciA9IHYgKyB2MSArIHYyOworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvY29tbWEyX3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMl92
ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWMzMjM2ODlmNjhmMGZhMGVlMTMwNDYyY2Y3ODc4OGI5YTlj
YjY2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbW1hMl92ZXJ0LnZlcnQK
QEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSwgaiwgazsKKyAgICBmbG9hdCBmOwor
ICAgIGkgPSBqLCBrLCBmOworICAgIGkgPSAoaiA9IGssIGYgPSAxLjApOyAgIC8vIGZsb2F0IGNh
bm5vdCBiZSBhc3NpZ25lZCB0byBpbnQKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMSk7Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tYTNfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29tbWEzX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWRjYjk4YjIxZDkyOGI0MjVmNGFhNWJi
ZGZjYzExMjRlMWYyZjZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWEz
X3ZlcnQudmVydApAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCit2b2lkIG1haW4oKQoreworICAgIGludCBpLCBqLCBrOworICAg
IGZsb2F0IGY7CisgICAgaSA9IGosIGssIGY7CisgICAgaSA9IGogPSBrLCBmID0gMS4wOworICAg
IGkgPSBqLCBrID0gKDMsIGYpOyAgICAvLyBmbG9hdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8gaW50
CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29tbWVudF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb21tZW50X2ZyYWcuZnJhZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZDBhMzgyODc0MGI1OTBjNmJmZjJkNGYzYTBiMzYwZjAxMGZhOTJkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29tbWVudF9mcmFnLmZyYWcKQEAgLTAsMCAr
MSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWlu
KCkKK3sKKyAgICAvKioqKioqICAvLyBjb21tZW50IG5vdCBjbG9zZWQKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2NvbmRpdGlvbmFsMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9j
b25kaXRpb25hbDFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViODMwZjRmY2M4MzJhNGRlZTcwYWM0
NmZiMDc5YzIyY2YwOTAwOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25k
aXRpb25hbDFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjEsZjI7CisgICAg
aW50IGk7CisgICAgZmxvYXQgZjMgPSBpID8gZjEgOiBmMjsgIC8vIGV4cHJlc3Npb24gbXVzdCBi
ZSBib29sZWFuIGFuZCBub3QgaW50Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25k
aXRpb25hbDJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwyX2ZyYWcuZnJh
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NTFhOGJkOWViMDQwOWY2MzJlYzc2Y2M0NzZjNTQwMDA0YjZlMmVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uZGl0aW9uYWwyX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIG1haW4oKQoreworICAgIGZsb2F0IGYxLGYyOworICAgIGludCBpOworICAgIGJvb2wgYjsK
KyAgICBmbG9hdCBmMyA9IGIgPyBpIDogZjI7IC8vIHNlY29uZCBhbmQgdGhpcmQgZXhwcmVzc2lv
biBzaG91bGQgb2YgdGhlIHR5cGUgZmxvYXQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2NvbmRpdGlvbmFsM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDNfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1YjFiNDZiYmIwYzkyNGJkNmI2OTI4YzczYTk3MGIwMzc2N2Rm
NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25kaXRpb25hbDNfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZjEsZjI7CisgICAgYm9vbCBiOworICAgIGlu
dCBpID0gYiA/IGYxIDogZjI7IC8vIHNlY29uZCBhbmQgdGhpcmQgZXhwcmVzc2lvbiB0eXBlIGRv
ZXMgbm90IG1hdGNoIHRoZSBsdmFsdWUgdHlwZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvY29uc3RGdW5jX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0RnVuY19mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGUzYTJhNjUyNDFlMjAwYTU0N2ZiNDAwNDE1MjI4NTVkMDdiN2FlYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0RnVuY19mcmFnLmZyYWcKQEAg
LTAsMCArMSwyMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordmVj
MiBmdW5jKCkKK3sKKyAgICB2ZWMyIHY7CisgICAgcmV0dXJuIHY7Cit9CisKK3ZvaWQgbWFpbigp
Cit7CisgICAgY29uc3QgdmVjMyB2ID0gdmVjMygxLjAsIGZ1bmMoKSk7IC8vIHVzZXIgZGVmaW5l
ZCBmdW5jdGlvbnMgZG8gbm90IHJldHVybiBjb25zdCB2YWx1ZQorICAgIGdsX0ZyYWdDb2xvciA9
IHZlYzQodiwgdik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjFf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IxX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZjczYmNkZWFlMWQzMTZhNzlhY2FiMGZmYmQ3ZDkxZDYzNzViYmQ3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IxX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisj
aWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4o
KQoreworICAgIHZlYzQgdiA9IHZlYzQoMSwyLDMpOyAvLyBpbnN1ZmZpY2llbnQgZGF0YSBwcm92
aWRlZCBmb3IgY29uc3RydWN0b3IsIDQgdmFsdWVzIGFyZSByZXF1aXJlZAorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvY29uc3RydWN0b3IyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2NvbnN0cnVjdG9yMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI3YmRiYTU2NDM4ZTRhNDllMDMz
MzkyOGVhZWFkZWYxNzFiZjJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Nv
bnN0cnVjdG9yMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2ZWMzIHY7CisgICAgdmVj
NCB2MSA9IHZlYzQodik7IC8vIGluc3VmZmljaWVudCBkYXRhIHNwZWNpZmllZCBmb3IgY29uc3Ry
dWN0aW9uCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjNfVjEwMF9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9jb25zdHJ1Y3RvcjNfVjEwMF9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTMxMjU4NzcxMDgyYWYwY2I0NmYyZTQ5MTBkMjhmMDY3NDQ2NmVjZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnN0cnVjdG9yM19WMTAwX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIG1haW4oKQoreworICAgIHZlYzMgdjsKKyAgICB2ZWM0IHYxID0gdmVjNCh2LHYsdik7IC8v
IHRvbyBtYW55IGFyZ3VtZW50cyBpbiB0aGUgY29uc3RydWN0b3IKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2NvbnRpbnVlX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2NvbnRpbnVl
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGY4M2UyYWJlYjM2MTMyYjA5NDgwMDZjMzQ4ZTY5YTkz
MjFhMzEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvY29udGludWVfZnJhZy5m
cmFnCkBAIC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBN
SVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZp
bGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5k
aWYKK3ZvaWQgbWFpbigpCit7CisgICAgY29udGludWU7IC8vIGNvbnRpbnVlIGtleXdvcmQgYWxs
b3dlZCBvbmx5IGluc2lkZSB0aGUgbG9vcHMKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlMTBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMF9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDQ1NmQ2NDE3ODcwMjk0ODg3YWU1ODA4ODZlMzJiYzI0NTQ1NDEyYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTBfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Zv
aWQgbWFpbigpCit7CisgICAgZmxvYXQgZjsKKyAgICBmbG9hdCBmOyAgLy8gcmVkZWNsYXJhdGlv
biBvZiBhIHZhcmlhYmxlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTEx
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTFfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZmZWNiYmY4ZjVmODlmZTYwYTViNDJlODk5Yjk3MWQ1ZjVmMzgxYWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTExX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGludCBpID0gMDg7ICAvLyBpbnZhbGlkIG9jdGFsIG51bWJlcgorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTEyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2Y4YjE4YWYwMGRlZjAxYjk3NDBiYzNh
OGQ0ZmQzZmE5MjI3YzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5
cGUxMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaSA9IDB4YThnOyAgLy8gaW52
YWxpZCBoZXhhZGVjaW1hbCBudW1iZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlMTNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxM19mcmFnLmZyYWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2EyMWU2ZjYzMzIyOWQ5ZTk0YjBmMjcyMjkyYTE0ZWRhZDQ1MTQ2ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlMTNfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
bWFpbigpCit7CisgICAgaW50IGkgPSAxOworICAgIGZsb2F0IGYgPSAxLjI7CisgICAgZmxvYXQg
cmVzdWx0ID0gZiAqIGk7IC8vIGF1dG8gcHJvbW90aW9uIG5vdyBhbGxvd2VkCit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlwZTE5X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlMTlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiOThjNzUzMDg3NzNiYzBlOTFiMWY4
MTQxNjcxYjViYmZiMDRmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRh
VHlwZTE5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCit1bmlmb3JtIHNhbXBsZXIyRCBzOwordm9pZCBtYWluKCkKK3sKKyAg
ICBpbnQgaSA9IGludChzKTsgLy8gY29udmVyc2lvbiBub3QgYWxsb3dlZAorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rh
dGFUeXBlMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYzYmFhMmIxOTNmNDIyZGZiNmY5YzZkNTUy
NGU0ZDRlMTg0YzNhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBl
MV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2b2lkIHY7IC8vIHZhcmlhYmxlIGNhbm5v
dCBiZSBkZWNsYXJlZCBvZiB0aGUgdHlwZSB2b2lkCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9kYXRhVHlwZTJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUyX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZWMyYWEwNTc0N2Y1MTdjNWVhMjdlYTNkNzM1MmRmMTkwN2M0Y2U5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGUyX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1
bmlmb3JtIHNhbXBsZXIyRCBzYW1wMTsKK3VuaWZvcm0gc2FtcGxlcjJEIHNhbXAyID0gc2FtcDE7
IC8vIHVuaWZvcm1zIGFyZSByZWFkIG9ubHkKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
YXRhVHlwZTNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyNmJhODg4MTQxZjY2ZDZhNzg3YWEyOTdm
ODE3NWU4MmIwZDc5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlw
ZTNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3VuaWZvcm0gaW50IGkgPSAxOyAvLyB1bmlmb3JtcyBhcmUgcmVhZCBvbmx5
CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlw
ZTRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU0X2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YmFlYTBhNjI0ZWYwZGU5N2ZlZjc2ZmFhNjZmYjIwNDA0YzE3MTk5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU0X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGludCBpID0gMS4wOyAgLy8gYXV0b21hdGljIHR5cGUgY29udmVyc2lvbiBkb2VzIG5v
dCB0YWtlIHBsYWNlLCBmbG9hdCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGludAorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU1X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2RhdGFUeXBlNV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UxZmY3NTIwOTljZTNlOTVjOTI3Y2Zi
NTYwYWM5MDhmMWYyN2IwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFU
eXBlNV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmID0gMTsgLy8gaW50IGNh
bm5vdCBiZSBjb252ZXJ0ZWQgdG8gZmxvYXQsIHVzZSBjb25zdHJ1Y3RvciB0byBkbyB0aGUgY29u
dmVyc2lvbiBleHBsaWNpdGx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kYXRhVHlw
ZTZfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU2X2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNmZmNDIxM2U4ODQxMzZiMWE4NzdlOWI2MzBmMmZjMDFhOTkwMmNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU2X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1
IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZk
ZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQor
eworICAgIGNvbnN0IGZsb2F0IGY7ICAvLyBjb25zdGFudHMgbXVzdCBiZSBpbml0aWFsaXplZAor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU3X2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2RhdGFUeXBlN19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUzMWEzY2JhMWJlYjZi
Y2RiZGRlMTI3MWQ1ZWRmN2VlYmE1MmExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2RhdGFUeXBlN19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBmbG9hdCBmOwordm9pZCBtYWluKCkKK3sK
KyAgICBmID0gMS4wOyAgLy8gdW5pZm9ybXMgYXJlIHJlYWQgb25seQorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU4X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFU
eXBlOF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRkZWNjNGExNzU0YTM0MmU1ZjkyMWQ2YTZiMTVk
ZmQ4NDQ1NDgwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2RhdGFUeXBlOF9m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordmFyeWluZyBmbG9hdCBmOwordm9pZCBtYWluKCkKK3sKKyAgICBmID0gMS4wOyAg
Ly8gdmFyeWluZ3MgY2Fubm90IGJlIHdyaXR0ZW4gdG8gaW4gYSBmcmFnbWVudCBzaGFkZXIsIHRo
ZXkgY2FuIGJlIHdyaXR0ZW4gdG8gaW4gYSB2ZXJ0ZXggc2hhZGVyCit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9kYXRhVHlwZTlfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5
cGU5X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDI5ZDNkNDQ1NmJjMTg2NmIzMjVjNDEwNTllZDZl
OTQ4MTVlZGEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGF0YVR5cGU5X2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2YXJ5aW5nIGZsb2F0IGY7Cit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGZsdCA9
IDEuMDsKKyAgICBmbHQrKzsKKyAgICBmKys7ICAvLyB2YXJ5aW5ncyBpbiBhIGZyYWdtZW50IHNo
YWRlciBhcmUgcmVhZCBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY3YjBlMDVh
MWY3YmEwMWIwNjQ1MDY5NTU2ZGUxNDBlMTQ3Zjg3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2RlZmF1bHQuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4gKHZvaWQpCit7CisJZ2xfRnJhZ0NvbG9y
ID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZGVmYXVsdC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZGVmYXVsdC52ZXJ0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhjNzM2YWJkNWYyNDM2YTMxNmM3NjE4ZGIyNmY4NTI4N2Y0YWQzOTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9kZWZhdWx0LnZlcnQKQEAgLTAsMCArMSwxNSBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworYXR0cmlidXRlIHZlYzQg
Z3RmX1ZlcnRleDsKK3VuaWZvcm0gbWF0NCBndGZfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeDsK
K3ZvaWQgbWFpbiAodm9pZCkKK3sKKwlnbF9Qb3NpdGlvbiA9IGd0Zl9Nb2RlbFZpZXdQcm9qZWN0
aW9uTWF0cml4ICogZ3RmX1ZlcnRleDsKKwlnbF9Qb2ludFNpemUgPSAxLjA7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9kb3doaWxlX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Rv
d2hpbGVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNDNkYzRjMzZjYmVkN2QxNzMzNmU5MzI1M2M5
NzkxMmM5YWU4MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kb3doaWxlX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0IGY7CisgICAgZG8geworICAgIH0gd2hp
bGUoZik7ICAvLyBjb25kaXRpb24gc2hvdWxkIGJlIGJvb2xlYW4KK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2R2ZWMyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMyX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NDUxYjU1ZDZmZTA1NThkMmU5OWZkZTEwNDdlYzIyMjFmN2JlN2Y2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzJfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
bWFpbigpCit7CisgICAgZHZlYzIgZDsgLy8gZHZlYzIgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUs
IHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9k
dmVjM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9kdmVjM19mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjdmNzgxNzE2ODkxMDQwMmU5MDBkYjVhNWE3NTc4MGI4MDRmNTUyZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2R2ZWMzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAg
IGR2ZWMzIGQ7IC8vIGR2ZWMzIGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3Ig
ZnV0dXJlIHVzZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzRfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZHZlYzRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YmViNmE1YTdl
ZTRjYTQxOTZjNWI5NzA0Mjg0MDFlYWVlZmQzYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9kdmVjNF9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBkdmVjNCBkOyAvLyBk
dmVjNCBpcyBub3QgYSB2YWxpZCBkYXRhdHlwZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2V4dGVuc2lvbjJfVjEwMF9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9leHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NWE3
ZTM1MzU0NDBhMzcyZjU3ZWViYjIyYTJiMzQyOTI3MmExMjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9leHRlbnNpb24yX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gYWxsIDog
cmVxdWlyZSAvLyBjYW5ub3QgdXNlIHJlcXVpcmUgb3IgZW5hYmxlIHdpdGggYWxsCisjZXh0ZW5z
aW9uIGFsbCA6IGVuYWJsZSAvLyBjYW5ub3QgdXNlIHJlcXVpcmUgb3IgZW5hYmxlIHdpdGggYWxs
CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNp
b24zX1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uM19WMTAwX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMDA1YzE0ZWRmYmQ1MTA2ZmMxOWVhZmIyZDIzZWZlMTg1MDlkYjVj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uM19WMTAwX2ZyYWcu
ZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2Vu
ZGlmCisjZXh0ZW5zaW9uIGZvbyA6IHJlcXVpcmUgIC8vIGVycm9yIGV4dGVuc2lvbiBub3Qgc3Vw
cG9ydGVkCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9l
eHRlbnNpb241X1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNV9WMTAw
X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTk4ZDZmZmUzY2JkM2M0NDU5NTQ2YmZhZTNmNzcwMzVl
YjkzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0ZW5zaW9uNV9WMTAw
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCisjZXh0ZW5zaW9uIGFsbCA6IGRkaXNhYmxlZSAgLy8gZXJyb3IsIGJlaGF2aW9y
IGlzIG5vdCBzdXBwb3J0ZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2V4dGVuc2lvbjZfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRl
bnNpb242X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMzNmYTRmZWI5NjRjYjA2NDQzZDFj
MDgxZTU5NDc0ZmRkZjAyMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRl
bnNpb242X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gICAvLyBlcnJvciBuYW1lIGFuZCBiZWhh
dmlvciBub3Qgc3BlY2lmaWVkCisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9leHRlbnNpb243X1YxMDBfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0
ZW5zaW9uN19WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTYzNmQ1MTI1ZmQ1OTE0MDJlODhi
ZDIxOGE5OGJjMjlmYzY0ZjhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZXh0
ZW5zaW9uN19WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCisjZXh0ZW5zaW9uIGZvbyAgLy8gIjoiIG1pc3NpbmcgYWZ0
ZXIgZXh0ZW5zaW9uIG5hbWUKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2V4dGVuc2lvbjhfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRl
bnNpb244X1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMTI0MzI1Njg5YzI5MDRlYWU3M2Y4
NDk0ZDRhNGM4YjUyZjQ1NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRl
bnNpb244X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vIDogLy8gIGJlaGF2aW9yIG5vdCBz
cGVjaWZpZWQKKwordm9pZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2V4dGVuc2lvbjlfVjEwMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb245X1Yx
MDBfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkN2Q2OWRjYWY2OGVmMDBjNTIzMzdmZTU2NDI2YjYz
NDg2Mjc2NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9leHRlbnNpb245X1Yx
MDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKKyNleHRlbnNpb24gZm9vICBiZWhhdmlvciAvLyAiOiIgbWlzc2luZyBhZnRl
ciBleHRlbnNpb24gbmFtZQorCit2b2lkIG1haW4oKQoreworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZmxvYXQyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0Ml9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjNhMzFjYTk5MDQxMDYzNjQyYTYzZGJmOWVkMjRkOTliYTJmOWUxMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zsb2F0Ml9mcmFnLmZyYWcKQEAgLTAs
MCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisK
KworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBt
YWluKCkKK3sKKyAgICBmbG9hdDIgZjsgLy8gZmxvYXQyIGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBl
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDNfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvZmxvYXQzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzNkM2Q0NDU0YWEwNzQwZjUx
MDk2ZjE0ODNiNTY0NGIyNDI2MTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
ZmxvYXQzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGZsb2F0MyBmOyAvLyBmbG9hdDMg
aXMgbm90IGEgdmFsaWQgZGF0YXR5cGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Zs
b2F0NF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDRfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQzODEzNzNhZDhlMzE2MGEzNzZmNGFlYTVkNTYwYWJiZjI1YzcxNzAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mbG9hdDRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTUgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7Cisg
ICAgZmxvYXQ0IGY7IC8vIGZsb2F0NCBpcyBub3QgYSB2YWxpZCBkYXRhdHlwZQorfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5MV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9mcmFnbWVudE9ubHkxX3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWJiYTMzZDk0NzQ3YmE3
YjU1ZjZiZGQ3YzA5MzQyNWRiYmFjYzFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvZnJhZ21lbnRPbmx5MV92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJp
Z2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBn
bF9Gcm9udEZhY2luZyA9IHRydWU7ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFkZXIg
b25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5Ml92ZXJ0LnZl
cnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkyX3ZlcnQudmVydApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ODAwNTZiMDc5NDgxZDZjMWYxYjczNzg2ZGI4ZDhjOWYzMjZiZWQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5Ml92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBt
YWluKCkKK3sKKyAgICBnbF9GcmFnQ29vcmQgPSB2ZWM0KDEuMCk7ICAvLyBjYW4gYmUgdXNlZCBp
biBmcmFnbWVudCBzaGFkZXIgb25seQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJh
Z21lbnRPbmx5M192ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFnbWVudE9ubHkzX3ZlcnQu
dmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZTljYjAwODE1OTA1MWQzODFiYTU2MTQwYzI3ZWNlM2UzZWE2OWZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5M192ZXJ0LnZl
cnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9z
IEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1J
VC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmls
ZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCk7
ICAvLyBjYW4gYmUgdXNlZCBpbiBmcmFnbWVudCBzaGFkZXIgb25seQorfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnJhZ21lbnRPbmx5NF92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9m
cmFnbWVudE9ubHk0X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjY0NDgzNjlmM2FmYjdlMjJkZTJm
NjdlN2M4ZjNhMGYwYTczY2E3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnJh
Z21lbnRPbmx5NF92ZXJ0LnZlcnQKQEAgLTAsMCArMSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChj
KSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwordm9pZCBtYWluKCkKK3sKKyAgICBkaXNjYXJk
OyAgLy8gY2FuIGJlIHVzZWQgaW4gZnJhZ21lbnQgc2hhZGVyIG9ubHkKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL2ZyYWdtZW50T25seV92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9m
cmFnbWVudE9ubHlfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ZWEwMGVmNGY1YTg3ZTRkYjMzMDQ5
YTI0YzA5MmVlNGIxY2U3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mcmFn
bWVudE9ubHlfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTIgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0Rl
cHRoID0gMS4wOyAgLy8gY2FuIGJlIHVzZWQgaW4gZnJhZ21lbnQgc2hhZGVyIG9ubHkKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uMTBfZnJhZy5mcmFnIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvZnVuY3Rpb24xMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdkZmFkYmZkOWNmOGRjYTZj
ZWYwYWQzZTYzY2JmMzFhZGRkOGFlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2Z1bmN0aW9uMTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjQgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24oaW4gaW50IGkpOworCit2b2lkIG1h
aW4oKQoreworICAgIGZsb2F0IGY7CisgICAgLy8gb3ZlcmxvYWRlZCBmdW5jdGlvbiBub3QgcHJl
c2VudAorICAgIGZ1bmN0aW9uKGYpOworfQorCit2b2lkIGZ1bmN0aW9uKGluIGludCBpKQorewor
ICAgaSA9IDM7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjFfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzMy
N2E2YWRiNGUwZmI0MjgwYTdmNGMxODY3ZDBkOGU4MjVmYTJlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24xX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIzIEBACisKKy8q
CitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGludCBpKQor
eworICAgIHJldHVybiBpOyAgLy8gdm9pZCBmdW5jdGlvbiBjYW5ub3QgcmV0dXJuIGEgdmFsdWUK
K30KKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgaTsKKyAgICBmdW5jdGlvbihpKTsKK30KKwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjJfVjEwMF9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9mdW5jdGlvbjJfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5ZDU3
ZGM1MWIwOTVjNzc5M2Y0NDU4MjZkZmIwNjc0NzFkZGFhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2Z1bmN0aW9uMl9WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIyIEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIGZ1bmN0aW9uKGludCBp
W10pICAvLyBzaXplIG9mIGFycmF5IG11c3QgYmUgc3BlY2lmaWVkCit7Cit9CisKK3ZvaWQgbWFp
bigpCit7CisgICAgaW50IGlbMl07CisgICAgZnVuY3Rpb24oaSk7Cit9CisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb24zX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1
bmN0aW9uM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4MzVkZTdmYWNjNDUzYzg3NGZiMjcwMDgz
YmM5NjkyYzM4MTY2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9u
M19mcmFnLmZyYWcKQEAgLTAsMCArMSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihjb25zdCBpbnQgaSkKK3sKKyAgICBpID0gMzsgIC8v
IGNvbnN0IHZhbHVlIGNhbnQgYmUgbW9kaWZpZWQKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBp
bnQgaTsKKyAgICBmdW5jdGlvbihpKTsKK30KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9mdW5jdGlvbjRfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb240X2ZyYWcuZnJh
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lZWFiZGU5YjdlZDNjMmMzM2M4MjVhYTBhZTkxMDE0NzQyODk2NmZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb240X2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDIzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1bmlm
b3JtIGludCB1bmlmb3JtSW50OworCit2b2lkIGZ1bmN0aW9uKG91dCBpbnQgaSkKK3sKKyAgICBp
ID0gMTsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBmdW5jdGlvbih1bmlmb3JtSW50KTsgIC8v
IG91dCBhbmQgaW5vdXQgcGFyYW1ldGVycyBjYW5ub3QgYmUgdW5pZm9ybSBzaW5jZSB1bmlmb3Jt
cyBjYW5ub3QgYmUgbW9kaWZpZWQKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVu
Y3Rpb242X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uNl9mcmFnLmZyYWcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2JjYzQzM2ViMzMwNmVhYWZiOTdmNjMwMzM3MThkZmQ2YTg0MmRjNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uNl9mcmFnLmZyYWcKQEAgLTAsMCAr
MSwyMyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
I2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5j
dGlvbihjb25zdCBvdXQgaW50IGkpCit7ICAvLyBvdXQgcGFyYW1ldGVycyBjYW5ub3QgYmUgY29u
c3QKKyAgIGkgPSAzOworfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIGZ1bmN0
aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uN19mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjdfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRj
MDkwMjg4MWM1Y2EyOGU1MTJmMDA2ZjJkMjgwOTg3NzJiNDQ5NDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjdfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjIgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9F
UworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24odW5pZm9y
bSBpbnQgaSkKK3sgIC8vIHVuaWZvcm0gcXVhbGlmaWVyIGNhbm5vdCBiZSB1c2VkIHdpdGggZnVu
Y3Rpb24gcGFyYW1ldGVycworfQorCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIGZ1
bmN0aW9uKGkpOworfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOF9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjhfZnJhZy5mcmFnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRlYmU2ZTgwNTg3OGVhYjhkNGM1ZWI4ZTY1M2E0OTYxZmEyMzM4YWMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9mdW5jdGlvbjhfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgZnVuY3Rpb24oY29u
c3QgaW5vdXQgaW50IGkpCit7ICAvLyBpbm91dCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBjb25zdAor
ICAgaSA9IDM7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgZnVuY3Rpb24o
aSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvZnVuY3Rpb245X2ZyYWcuZnJh
ZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL2Z1bmN0aW9uOV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhZjc0
YmY5NzU5ZDc5ODFjZmI3YTczYWU4MmJlY2Q4MmIzYjgzMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2Z1bmN0aW9uOV9mcmFnLmZyYWcKQEAgLTAsMCArMSwyNCBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBmdW5jdGlvbihpbm91dCBpbnQg
aSk7CisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgZnVuY3Rpb24oaSk7Cit9CisK
Ky8vIGZ1bmN0aW9uIGRlZmluaXRpb24gaGFzIGRpZmZlcmVudCBwYXJhbWV0ZXIgcXVhbGlmaWVy
cyB0aGFuIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCit2b2lkIGZ1bmN0aW9uKGluIGludCBpKQorewor
ICAgaSA9IDM7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjMl9mcmFnLmZyYWcg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9odmVjMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkxMWI2OWU2NDQx
ZWY5YjcwNzQ0MDBkYTM1NDgyZjRhMDhhY2JhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL2h2ZWMyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGh2ZWMyIGY7IC8vIGh2
ZWMyIGlzIG5vdCBhIHZhbGlkIGRhdGF0eXBlLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzNfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvaHZlYzNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYjYxZGYyZTI1YTlhZDBjNDMxNGQwY2Yz
ODJkMDgwNjYxMDA4M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9odmVjM19m
cmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBodmVjMyBmOyAvLyBodmVjMyBpcyBub3QgYSB2
YWxpZCBkYXRhdHlwZSwgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2h2ZWM0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2h2ZWM0X2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NGU3OTcwZmE4Y2QyNWE5NmRjMGZmOTlhNjE4YTQzN2U5NjBkNmU3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaHZlYzRfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQg
bWFpbigpCit7CisgICAgaHZlYzQgZjsgLy8gaHZlYzQgaXMgbm90IGEgdmFsaWQgZGF0YXR5cGUs
IHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9p
ZGVudGlmaWVyMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyMV9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzBkMWQ5YzgwZTYzOTdkODQ4ZTg2NDkzZmE4YjYyNGFjYTVmZGM3NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lkZW50aWZpZXIxX2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE1IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2
b2lkIG1haW4oKQoreworICAgIGludCAxaTsgLy8gaW5jb3JyZWN0IGlkZW50aWZpZXIgbmFtZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWRlbnRpZmllcjJfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvaWRlbnRpZmllcjJfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNmU5MzQ1MTkx
MzI1ZWRlZGIxNTY0OTQzMmMwNDlmMGM2ZjgzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9pZGVudGlmaWVyMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29w
eXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitm
b3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgZ2xf
aW50OyAgLy8gaWRlbnRpZmllciBuYW1lIGNhbm5vdCBiZWdpbiB3aXRoICJnbF8iCit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZGVudGlmaWVyM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9pZGVudGlmaWVyM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJiZWFmNjUyMDM5MDg1Yzdj
NjRiNzBiMGQ5Mzc5ZTEzMDdlMjc1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2lkZW50aWZpZXIzX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQg
KGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGlu
IHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBt
ZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGludCBpOworICAgIHg7
ICAvLyBpZGVudGlmaWVyIHggdXNlZCB3aXRob3V0IGJlaW5nIGRlY2xhcmVkCit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9pZjFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYxX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMzAxNjg0ODMxOWQ2ZWNjYTE0YTVlMTBiMjM2ZjY1MmNjMzMw
ODUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaWYxX2ZyYWcuZnJhZwpAQCAt
MCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxl
IGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8K
KworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lk
IG1haW4oKQoreworICAgIGludCBpOworICAgIGlmIChpKSAvLyBjb25kaXRpb24gb2YgaWYgc3Rh
dGVtZW50IG11c3QgYmUgYSBib29sZWFuCisgICAgICAgIGkrKzsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL2lmMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjJfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA0ZmJmZGZjMjMxYzEzN2FiZmU3Nzk0MmI5NzIxY2E0OWIzMTA3NGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pZjJfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
MTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigp
Cit7CisgICAgdmVjMiB2OworICAgIGludCBpOworICAgIGlmICh2KSAvLyB2ZWN0b3JzIGNhbm5v
dCBiZSB1c2VkIGFzIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gZm9yIGlmIHN0YXRlbWVudAorICAg
ICAgICBpKys7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQxX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDFfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRl
ZWI1YjYwYmY2NWI5M2E0ODExZDNmNzZkMTliZjEyZTU2N2FmNWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIwIEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgcyB7CisgICAgaW50
IGk7Cit9IHMxOworCit2b2lkIG1haW4oKQoreworICAgczEuaSsrOworICAgczErKzsgIC8vIHN0
cnVjdHVyZSBjYW5ub3QgYmUgaW5jcmVtZW50ZWQKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1
aWxkL2luY3JlbWVudDJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Ml9mcmFn
LmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTYxNjc4YjBjYTM4YjM2MDU2ZTMyNjY0MzJmYWYxYmU3Y2RlMmQ4
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDJfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgKGkraSkrKzsgIC8vIGkraSBpcyBub3Qg
YW4gbC12YWx1ZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50M19mcmFn
LmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQzX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YTMyNTA0NzM0ZGFlMzc5YjZhN2NiM2FiZjJhMTQzNTJlYzUxMmRlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50M19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAor
CisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdM
X0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordW5pZm9ybSBzYW1wbGVyMkQg
c2FtcGxlcjJkOworCit2b2lkIG1haW4oKQoreworICAgIHNhbXBsZXIyZCsrOyAgLy8gdW5pZm9y
bXMgY2Fubm90IGJlIG1vZGlmaWVkCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNy
ZW1lbnQ0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDRfZnJhZy5mcmFnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzZmY2YjQzZTg3MWVkNWMzMGU3NjI3NGY1NDYxYzZjMGY2YjI2MzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9pbmNyZW1lbnQ0X2ZyYWcuZnJhZwpAQCAtMCww
ICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKwor
CisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1h
aW4oKQoreworICAgIGludCBpOworICAgIGkrKyA9IDU7ICAvLyBpKysgaXMgbm90IGFuIGwtdmFs
dWUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2luY3JlbWVudDZfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvaW5jcmVtZW50Nl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJjNTAwNDNh
Y2M0ZDAwMjA0NWY2NTc1ZGEyNzY0NjM4NzE0ZWNhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL2luY3JlbWVudDZfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7
CisgICAgKytpKys7ICAvLyArK2krKyBpcyBlcXVpdmFsZW50IHRvICsrKGkrKykgd2hpY2ggZmFp
bHMgYmVjYXVzZSBpKysgaXMgbm90IGFuIGx2YWx1ZS4gICgrK2kpKys7IGlzIGxlZ2FsLgorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvaW5wdXQucnVuLnR4dCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L2lucHV0LnJ1bi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhkZGU3ZDYyOWJmMDk2OTY4YTU2YjNiYTlhYzJm
MDM4MDU4NDZiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL2lucHV0LnJ1bi50
eHQKQEAgLTAsMCArMSwyNCBAQAorIyB0aGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQuIERPIE5P
VCBFRElULgorYnVpbGRfMDAxX3RvXzAwOC5odG1sCitidWlsZF8wMDlfdG9fMDE2Lmh0bWwKK2J1
aWxkXzAxN190b18wMjQuaHRtbAorYnVpbGRfMDI1X3RvXzAzMi5odG1sCitidWlsZF8wMzNfdG9f
MDQwLmh0bWwKK2J1aWxkXzA0MV90b18wNDguaHRtbAorYnVpbGRfMDQ5X3RvXzA1Ni5odG1sCiti
dWlsZF8wNTdfdG9fMDY0Lmh0bWwKK2J1aWxkXzA2NV90b18wNzIuaHRtbAorYnVpbGRfMDczX3Rv
XzA4MC5odG1sCitidWlsZF8wODFfdG9fMDg4Lmh0bWwKK2J1aWxkXzA4OV90b18wOTYuaHRtbAor
YnVpbGRfMDk3X3RvXzEwNC5odG1sCitidWlsZF8xMDVfdG9fMTEyLmh0bWwKK2J1aWxkXzExM190
b18xMjAuaHRtbAorYnVpbGRfMTIxX3RvXzEyOC5odG1sCitidWlsZF8xMjlfdG9fMTM2Lmh0bWwK
K2J1aWxkXzEzN190b18xNDQuaHRtbAorYnVpbGRfMTQ1X3RvXzE1Mi5odG1sCitidWlsZF8xNTNf
dG9fMTYwLmh0bWwKK2J1aWxkXzE2MV90b18xNjguaHRtbAorYnVpbGRfMTY5X3RvXzE3Ni5odG1s
CitidWlsZF8xNzdfdG9fMTc4Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4x
X3ZlcnQudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4xX3ZlcnQudmVydApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NWMyNjYzMTBhZGM0NzY3NzZkZGVmMjg1NjQ3ZjQ5MGU2MTRjOGFiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjFfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTEgQEAKKworLyoK
K0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK21haW4oKSAvLyByZXR1
cm4gdHlwZSBvZiBtYWluIHNob3VsZCBiZSB2b2lkCit7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9tYWluMl92ZXJ0LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluMl92ZXJ0LnZlcnQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGNkZmU5OGI0NjNlOTk0ODc5ZjQ5MjQ4YWNmMjM4YWFlNmY0ODI2ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21haW4yX3ZlcnQudmVydApAQCAtMCwwICsx
LDEyIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCit2
b2lkIG1haW4oaW50IGkpICAvLyBtYWluIGZ1bmN0aW9uIGNhbm5vdCB0YWtlIGFueSBwYXJhbWV0
ZXJzCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDEpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvbWFpbjNfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvbWFpbjNfdmVydC52ZXJ0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA5YTIxYTllOTI5MzAzMWQ2YTE3YWNjOWYxMTBjYzA2Yzg4MTVlNDMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9tYWluM192ZXJ0LnZlcnQKQEAgLTAsMCAr
MSwxMiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
K1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNl
bnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKwor
aW50IG1haW4oKSAvLyByZXR1cm4gdHlwZSBvZiBtYWluIHNob3VsZCBiZSB2b2lkCit7CisgICBy
ZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL21hdHJpeF9WMTAwX2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL21hdHJpeF9WMTAwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
M2RjMGFkYjY0Yjk0ZmJlYTcxNTFjNmM3MTNkZDEzM2IzZWQzMWVhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvbWF0cml4X1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAK
KworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBH
TF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7Cisg
ICAgbWF0MyBtOworICAgIG1hdDQgbTEgPSBtYXQ0KG0pOworfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL25vcm1hbF92ZXJ0LnZlcnQgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9ub3JtYWxfdmVydC52ZXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OWJjZTk5ZjkxYTYy
NzVjNjBiMzEzZjEwMmI3ZDdiZjY3MDU0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC9ub3JtYWxfdmVydC52ZXJ0CkBAIC0wLDAgKzEsMTMgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKK2F0dHJpYnV0ZSB2ZWM0IGd0Zl9Ob3JtYWw7
Cit2b2lkIG1haW4oKQoreworICAgIGd0Zl9Ob3JtYWwgPSB2ZWMzKDEuMCwyLjAsMy4wKTsgIC8v
IGNhbm5vdCBiZSBtb2RpZmllZCBhbiBhdHRyaWJ1dGUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3BhcnNlcjEwX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjEwX2ZyYWcu
ZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YzI1NzM0NDczODBiNzUyYTUxYWYyZmIyZDJhMmRkYjRiMzQxMzg5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyMTBfZnJhZy5mcmFnCkBA
IC0wLDAgKzEsMTUgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5
bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisq
LworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3Zv
aWQgbWFpbigpCit7CisgICAgNSArPSA1OyAvLyBsLXZhbHVlIG1pc3NpbmcKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjFfdmVydC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFy
c2VyMV92ZXJ0LnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBhNjI2M2RkMjhjMDBlZGI0MmU1OWQyZWJkMWVl
ZGJjOTY1Njg4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjFfdmVy
dC52ZXJ0CkBAIC0wLDAgKzEsMTMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKK3ZvaWQgbWFpbigpCit7CisgICAgaW50IGEgIC8vIHNlbWljb2xvbiBt
aXNzaW5nIGF0IHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudAorICAgIGdsX1Bvc2l0aW9uID0gdmVj
NChhKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjNfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvcGFyc2VyM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I1NDNhZDhmZGZk
OGFlNzY4OGZmMTkyYzQ2MGMyMWI0ZTk4ZjcwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3BhcnNlcjNfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQgZlszXTsK
KyAgICBmWzNdID0gMS4wOyAvLyBpbmRleCBvZiBhcnJheSBncmVhdGVyIHRoYW4gdGhlIHNpemUg
b2YgdGhlIGFycmF5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI0X2ZyYWcu
ZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjRfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3M2U0
YjNkMzEzOGQ0MTI0ODk1N2ViNDUxY2E3YzU5OGRkNmI2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9wYXJzZXI0X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGNvbnN0
IGludCBpID0gNTsKKyAgICBpKys7ICAvLyBjb25zdCBjYW5ub3QgYmUgbW9kaWZpZWQKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNlcjVfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvcGFyc2VyNV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU5Y2JkYWFjNTliNDhiNTFlYjYxYTNk
YWEyODU3ZDAwMzhjNzM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3BhcnNl
cjVfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHYueiA9IDEuMjsg
ICAvLyB2ZWMyIGRvZXMgbm90IGhhdmUgYSB6IGNvbXBvbmVudAorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvcGFyc2VyNl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI2X2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZDRkMDIxZmQyOTkzZjJmNWQyYTA1MzUzYjdmYWJmODlkNGNk
NTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyNl9mcmFnLmZyYWcK
QEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCBtYWluKCkKK3sKKyAgICBmbG9hdCBmMSxmMixmMzsKKyAgICBmMyA9IGYxID4gZjI7ICAv
LyBmMSA+IGYyIHJlc3VsdCBpbiBhIGJvb2wgdGhhdCBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYSBm
bG9hdAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyN19mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9wYXJzZXI3X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTAzMjMxMGNkOGUz
MmNiMGZjZWQ1NWU3MmJmNjliYTk0NjNmMDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wv
YnVpbGQvcGFyc2VyN19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisvKgorQ29weXJpZ2h0
IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBp
biB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBtYXQyIG0xLG0yOwor
ICAgIGJvb2wgYiA9IG0xID4gbTI7ICAvLyBncmVhdGVyLXRoYW4gb3BlcmF0b3IgY2FuIG5vdCBv
cGVyYXRlIG9uIG1hdHJpY2VzLCBob3dldmVyLCBlcXVhbCAoPT0pIGFuZCBub3QgZXF1YWwgKCE9
KSBvcGVyYXRvcnMgY2FuIGJlIHVzZWQgd2l0aCBtYXRyaWNlcworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvcGFyc2VyOF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI4X2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NjY0OWM1NGVlNTJjZTE1OTlkMWY3ZjdmMjJmMWVmNDUyOTNl
NzQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOF9mcmFnLmZyYWcK
QEAgLTAsMCArMSwxNyBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdy
b3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4K
KyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgor
dm9pZCBtYWluKCkKK3sKKyAgICB2ZWMyIHYyOworICAgIHZlYzMgdjM7CisgICAgYm9vbCBiID0g
djIgPT0gdjM7IC8vIGVxdWFsIG9wZXJhdG9yIGNhbm5vdCBvcGVyYXRvciBvbiB2ZWN0b3JzIG9m
IGRpZmZlcmVudCBzaXplcworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOV9m
cmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wYXJzZXI5X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MjgzYzIyNjhkNjlkNTFkM2M1MWVlOWFiNGJmYWY3NWFiMDVkMjdjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvcGFyc2VyOV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBAQAorCisv
KgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu
IGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VT
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBm
bG9hdCBmMSxmMjsKKyAgICBib29sIGIgPSBmMSAmJiBmMjsgIC8vICYmLCB8fCBhbmQgXl4gb3Bl
cmF0ZSBvbiBhIGJvb2xlYW4gZXhwcmVzc2lvbiBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9wcmVwcm9jZXNzMF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNz
MF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlkMWQ5ZmNkMTNkZGIzZTM2NGRlZTRkMWNhY2JjM2Vj
ZTFmNDAyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MwX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDYzIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCisvL3Rlc3QgZm9yIGVsc2UgZWxpZiBtaXNtYXRjaAorI2RlZmluZSB0ZXN0KHgseSkg
KHgreSkKKwordm9pZCAgbWFpbih2b2lkKXsKKyBpbnQgc3VtID0wOworICNkZWZpbmUgeCA4Cisg
I2VuZGlmCisgI2lmICh4PT04KQorICAgI3VuZGVmIHgKKyAjZW5kaWYKKworICNpZiAxCisgICAj
dW5kZWYgeAorICNlbmRpZgorCisgI2lmIDEKKyAgICNkZWZpbmUgdDQgNAorICNlbmRpZgorCisg
c3VtPXRlc3QoMyw2KSt0NDsKKyAjaWYgMQorICAjaWYgMQorICAgI2lmIDEKKyAgICAjaWYgMQor
ICAgICAjaWYgMAorICAgICAgICN1bmRlZiB0ZXN0CisgICAgICNlbHNlCisgICAgICAgI2lmIDEK
KyAgICAgICAgICN1bmRlZiB0ZXN0CisgICAgICAgI2VuZGlmCisgICAgICAgI2lmIDAKKyAgICAg
ICAgI3VuZGVmIHRlc3QKKyAgICAgICAjZWxzZQorICAgICAgICAgICNpZiAwCisgICAgICAgICAg
ICAgI3VuZGVmIHRlc3QKKyAgICAgICAgICAjZWxzZQorICAgICAgICAgICAgICNpZiAxCisgICAg
ICAgICAgICAgICAgI3VuZGVmIHRlc3QKKyAgICAgICAgICAgICAjZWxzZQorICAgICAgICAgICAg
ICAgI3VuZGVmIHRlc3QKKyAgICAgICAgICAgICAjZWxzZQorICAgICAgICAgICAgICAgI2pkaGdq
CisgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgI2VuZGlmCisgICAgICAgI2VuZGlmCisg
ICAgICNlbmRpZgorICAgICNlbmRpZgorICAgI2VuZGlmCisgICNlbmRpZgorICNlbmRpZgorCit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMTBfZnJhZy5mcmFnIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2ds
ZXMvR0wvYnVpbGQvcHJlcHJvY2VzczEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWIyMjc5NzBk
MTc5ZTdjNDUyNzcwODZmOTU2YWNiN2IxZWE1Y2NhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvcHJlcHJvY2VzczEwX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE5IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvKiBUaGUgcHJvZ3JhbSBzaG91bGQgdGVy
bWluYXRlIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBhbmQgbm90IGdldCBpbnRvIGFuCisgICBpbmZp
bml0ZSBsb29wICovCisjaWZkZWYgbmFtZQorCit2b2lkIG1haW4oKQoreworICAgZ2xfRnJhZ0Nv
bG9yID0gdmVjNCgxKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3Mx
X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MxX2ZyYWcuZnJhZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MmY0ZDE0MjU4ODE1MDg1ZWEzNmY5MmNlYjAzNjI2Njg5NDE4ZjhkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczFfZnJhZy5mcmFnCkBAIC0wLDAgKzEs
NjQgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNp
ZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIHRlc3RzIGZv
ciBtYWNybyByZWRpZmluaXRpb24gKHQyKSBhbmQgdGhlICNpZiBhbmQgI2Vsc2UgbmVzdGluZ3Mu
CisvLyB0YWtlcyBjYXJlIG9mIGVsaWYgYWxzby4KKworI2RlZmluZSB0MSAoMSsyKQorI2RlZmlu
ZSB0MiAyCisjZGVmaW5lIHQyIDMKKworLy8gdGVzdGluZyB0aGUgaWYgZGVwdGgKKyNpZiAodDE9
PTMpCisgICNkZWZpbmUgdDMgMworICAjaWYgZGVmaW5lZCB0MgorICAgICNkZWZpbmUgdDQgNAor
ICAgICAgI2lmIGRlZmluZWQodDMpCisgICAgICAgICAgI2RlZmluZSB0NSA1CisgICAgICAgICAg
ICAgI2lmZGVmIHQ1CisgICAgICAgICAgICAgICAjZGVmaW5lIHQ2IDYKKyAgICAgICAgICAgICAg
ICAgI2lmbmRlZiB0NworICAgICAgICAgICAgICAgICAgICNkZWZpbmUgdDcgNworICAgICAgICAg
ICAgICAgICAjZWxzZQorICAgICAgICAgICAgICAgICAgICNkZWZpbmUgdDggOAorICAgICAgICAg
ICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICNlbHNlCisgICAgICAg
ICAjaWZuZGVmIHQ4CisgICAgICAgICAgICAgI2RlZmluZSB0OCA4CisgICAgICAgICAjZWxpZiAo
dDg9PTgpCisgICAgICAgICAgICAjZGVmaW5lIHQ5IDkKKyAgICAgICAgICNlbHNlCisgICAgICAg
ICAgICAjaWYgZGVmaW5lZCB0NworICAgICAgICAgICAgICAjZGVmaW5lIHQ5IDkKKyAgICAgICAg
ICAgICNlbmRpZgorICAgICAgICAgI2VuZGlmCisgICAgICAjZW5kaWYKKyAgI2Vsc2UKKyAgICAj
ZGVmaW5lIHQxMCAxMAorICAjZW5kaWYKKyNlbmRpZgorCisKKyNkZWZpbmUgdDggOAorI2RlZmlu
ZSB0OSA5CisjZGVmaW5lIHQxMCAxMAorCit2b2lkIG1haW4odm9pZCkKK3sKKyBpbnQgc3VtPTEg
OworIHN1bSA9IHQxK3QyOworIHN1bSA9IHQzK3Q0OworIHN1bSA9IHQ1K3Q2OworIHN1bSA9IHQ3
K3Q4OworIHN1bSA9IHQ5K3QxMDsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJl
cHJvY2VzczJfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczJfZnJhZy5mcmFn
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlhYTAwZTg0OWRkMjQ0MmEzODljZmZkYWM5MGU2MGQ3MTI3MzhiNmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzMl9mcmFnLmZyYWcKQEAg
LTAsMCArMSw2MCBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyov
CisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgorLy8g
I2xpbmUgZGlyZWN0aXZlLS0gdGVzdCBjYXNlcy4KKy8vIGNoa3MgZm9yIEludmFsaWQgZGlyZWN0
aXZlcywgYWxsIHBvc3NpYmxlICNsaW5lIGVycm9ycworLy8gQWxzbyBjaGVja3MgdGhlIGNvcnJl
Y3QgdmVyaW9ucyBvZiAjbGluZSBkb3JlY3RpdmUuCisKKyNkZWZpbmUgdDEgMQorI2RlZmluZSB0
MiAyCisKKyMKKyMKKyMKKyMKKyNsaW5lIDgKKyNsaW5lICIiCisjbGluZSAzIDMKKworI2xpbmVr
ZmoKKyNsaW5lIGMgYworI2xpbmUgdDEgdDIKKyNsaW5lIDc3IDg5CisjbGluZSA2NS40CisjbGlu
ZSBtZXNzYWdlIHRvIHRoZSB1c2VyCisjbGluZQorI2xpbmUzNDUKKwordm9pZCBtYWluKHZvaWQp
Cit7CisgaW50IHN1bSA9MTsKKyBzdW0gPSBfX0xJTkVfXzsKKyBzdW0gPSBfX0ZJTEVfXzsKKyAj
bGluZSA0IDUKKyBzdW0gPSBfX0xJTkVfXzsKKyBzdW0gPSBfX0ZJTEVfXzsKKyAjbGluZSA5Cisg
c3VtID0gX19MSU5FX18gKyBfX0ZJTEVfXyA7Cisgc3VtID0gX19GSUxFX187CisgIworICMKKyBz
dW0gPSBfX1ZFUlNJT05fXzsKKyBzdW0gPSBzdW0gKyBfX0xJTkVfXyA7CisgI2xpbmUgNCA1Cisg
I2xpbmUgNSA4Cisgc3VtID0gX19MSU5FX187Cisgc3VtID0gX19GSUxFX187Cisgc3VtID0gX19W
RVJTSU9OX187CisKK30KKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nl
c3MzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3MzX2ZyYWcuZnJhZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOWUyMDA2YTk3ZDU4ZTEzMTk5NmFmOTdhYmViMzY3ZjgxM2ZiMTQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvcHJlcHJvY2VzczNfZnJhZy5mcmFnCkBAIC0wLDAg
KzEsNDMgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGlj
ZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisK
KyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKKy8vIHNpbXBs
ZSBtYWNybyBleHBhbnNpb25zLgorLy8gVGVzdHMgZm9yIFRvbyBmZXcgbWFjcm8gYXJndW1lbnRz
LCB0b28gbWFueSBtYWNybyBhcmd1bWVudHMuCisvLyBNYWNyb3Mgd2l0aCBubyBhcmd1bWVudHMu
CisKKyNkZWZpbmUgdDEgLTEKKyNkZWZpbmUgdDIgMgorCisjZGVmaW5lIHRlc3QgLTI1OAorI2Rl
ZmluZSB0ZXN0MSAodGVzdCp0ZXN0KQorI2RlZmluZSB0ZXN0Mih4KSAoeCt0ZXN0MSkKKyNkZWZp
bmUgdGVzdDMoKSAodGVzdDIoOCkqKHRlc3QqdGVzdDEpKQorI2RlZmluZSB0ZXN0NCh4LHkpICh4
K3kpCisKK3ZvaWQgbWFpbih2b2lkKQoreworIGludCBzdW0gPTA7Cisgc3VtID0gdGVzdDMoKTsK
KyBzdW0gPSB0ZXN0MygzKTsKKworIHN1bSA9IHRlc3QyKDkpOworIHN1bSA9IHRlc3QyKDksOCk7
CisKKyBzdW0gPSB0ZXN0NDsKKyBzdW0gPSB0ZXN0Mig4LDUsNzgsOSk7Cisgc3VtID0gc3VtICsg
dGVzdDE7Cisgc3VtID0gOCs1OCtzdW07Cisgc3VtID0gc3VtICt0ZXN0OworIHN1bSA9ICh0MSt0
Mik7Cisgc3VtID0gdGVzdDQodGVzdDMoKSx0ZXN0Mih0ZXN0MygpKSk7Cisgc3VtID0gdGVzdDQo
Myw4LDUpOworIHN1bSA9IHRlc3Q0KCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9w
cmVwcm9jZXNzNF9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzNF9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWQ5Yzc1NmE2M2NlNWEwOTdkYjA1ZTZkN2EwYmYyZDNkNzJhZjJjZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M0X2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDYwIEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisv
LyAjZXJyb3IgYW5kICNwcmFnbWEgZGlyZWN0aXZlcyAtLSB0ZXN0IGNhc2VzLgorLy8gdGVzdHMg
Zm9yIGVycm9ycyBpbiAjcHJhZ21hIGRpcmVjdGl2ZS4KKworI3ByYWdtYSBvcHRpbWl6ZShvbikK
KyNwcmFnbWEgZGVidWcob2ZmKQorCitpbnQgZm9vKGludCk7CisKK3ZvaWQgbWFpbih2b2lkKQor
eworIGludCBzdW0gPTA7CisgI2Vycm9yIDsKKyAjZXJyb3IgNzgKKyAjZXJyb3IgYworICNlcnJv
ciAibWVzc2FnZSB0byB0aGUgdXNlciAiCisgI2Vycm9yIG1lc3NhZ2UgdG8gdGhlIHVzZXIKKyAj
ZXJyb3IKKyAjZXJyb3IKKyAjZGVmaW5lIHQxIDEKKyBzdW0gPSB0MSp0MTsKKyBmb28oc3VtKTsK
KworfQorCisjcHJhZ21hIG9wdGltaXplKG9mZikKKyNwcmFnbWEgYmluZChvbikKKyNwcmFnbWEg
cGFjayhvZmYpCisKK2ludCBmb28oaW50IHRlc3QpCit7CisgaW50IGJpbmRpbmc9MDsKKyBiaW5k
aW5nID0gdGVzdDsKKyByZXR1cm4gYmluZGluZzsKK30KKworI2xpbmUgNAorI3ByYWdtYQorI2xp
bmUgNSA2CisjcHJhZ21hIG9wdG1pbWl6ZSBvbgorI3ByYWdtYSBkZWJ1ZyBvZmYKKyNwcmFnbWEg
ZGVidWcob2ZmCisjbGluZSA5CisjcHJnbWEgYmluZChvZmYpCisjcHJhZ21hIGJpbmQKKyNwcmFn
bWEgKG9uKQorI3ByYWdtYSBvbiAob24pCisjcHJhZ21hIG9wdG1pemUob24KKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzNl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWls
ZC9wcmVwcm9jZXNzNl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM2YmQwMjIzZjVlYWU0ZTE0NzRk
ZmUzYTBkZjgwNDVmN2RiZTRkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3By
ZXByb2Nlc3M2X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDM3IEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCisvLyBvcGVyYXRvciBwcmVjZWRlbmNlIGFuZCBzb21lIG1hY3Jv
IGV4cGFuc2lvbnMuCisKKyNkZWZpbmUgdGVzdCAoMSsyKQorI2RlZmluZSB0ZXN0MSAodGVzdCo0
KQorI2RlZmluZSB0ZXN0MiAodGVzdDEvdGVzdCkKKy8vI2RlZmluZSB0ZXN0MyAoLTErMiozLzQl
dGVzdCkKKyNkZWZpbmUgdGVzdDMgKC0xKzIqMy80KQorLy8jZGVmaW5lIHRlc3Q0ICh0ZXN0ICYg
dGVzdDEgfHRlc3QyKQorI2RlZmluZSB0ZXN0NCAodGVzdCkKKyNkZWZpbmUgdGVzdDUgKCE4K340
KzQtNikKKyNkZWZpbmUgdGVzdDYgKHRlc3QxPj4xKQorI2RlZmluZSB0ZXN0NyAodGVzdDE8PDEp
CisjZGVmaW5lIHRlc3Q4ICh0ZXN0Ml42KQorI2RlZmluZSB0ZXN0OSAodGVzdDQgfHwgdGVzdDUg
JiYgdGVzdDEpCisjZGVmaW5lIHRlc3QxMCAoMCkKKwordm9pZCBtYWluKHZvaWQpCit7CisgaW50
IHN1bSA9MDsKKyBzdW0gPSB0ZXN0NDsKKyBzdW0gPSB0ZXN0Myp0ZXN0Mit0ZXN0MS10ZXN0Owor
Ly8gc3VtID0gdGVzdDMvdGVzdDYgKyB0ZXN0NCp0ZXN0NyAtIHRlc3Q3ICUgdGVzdDk7CisvLyBz
dW0gPSB0ZXN0My90ZXN0NiArIHRlc3Q0KnRlc3Q3IC0gdGVzdDc7Cisgc3VtID0gdGVzdDEwKnRl
c3Q1OworfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzN19mcmFnLmZy
YWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9wcmVwcm9jZXNzN19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhm
NjJiMTExMGIxYjE4MTdmMGFkMjhlZTdjOTIzZDYzMmUyOTU1YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ByZXByb2Nlc3M3X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDUxIEBACisK
Ky8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xf
RVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCisvLyB0ZXN0aW5nIGZvciBjaGFy
IGNvbnN0YW50cyBpbiAjaWYgYW5kICNlbGlmCisvLyBBbHNvIGNoZWNraW5nIHdoZXRoZXIgcmVz
ZXJ2ZWQgd29yZHMgY2FuIGJlIHJlZGVmaW5lZC4KKworI2RlZmluZSB0MSBjCisjZGVmaW5lIHQy
IGQKKyNkZWZpbmUgYXNtIGEKKworICNpZih0MT09YykKKyAgI2RlZmluZSB0MyAzCisgI2VsaWYo
dDE9PWQpCisgICNkZWZpbmUgdDQgNAorICNlbGlmKHQyPT1jKQorICAjZGVmaW5lIHQ1IDUKKyAj
ZW5kaWYKKworICNpZm5kZWYgdDEKKyAgICNkZWZpbmUgdDcgNworICNlbGlmICh0Mj09ZCkKKyAg
I2RlZmluZSB0NiA2CisgI2VuZGlmCisKKyAjaWYgKHQyPT0nZCcpCisgICNkZWZpbmUgaGFsZiA1
CisgI2Vsc2UKKyAgI2RlZmluZSBoYWxmIDgKKyAjZW5kaWYKKworICNpZmRlZiB0MjIKKyAgI2Rl
ZmluZSB4IDUKKyAjZW5kaWYKKworIHZvaWQgbWFpbih2b2lkKQorICB7CisgICBpbnQgc3VtID0w
LGE9OTsKKworICAgc3VtID0gaGFsZiArIHN1bTsKKyAgIHN1bSA9IGFzbSArIGE7CisKKyAgfQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zY29waW5nMV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC9zY29waW5nMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODljOWE1MTIwOTVjMWJjZDRk
YWNmM2FiODRjYzA0YjYwNWJjMDYwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3Njb3BpbmcxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDIxIEBACisKKy8qCitDb3B5cmlnaHQgKGMp
IDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRo
ZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGJvb2wgYjsKKyAgICBpZiAo
YikKKyAgICB7CisgICAgICAgIGludCBpID0gMTsKKyAgICAgICAgaSsrOworICAgIH0KKyAgICBp
Kys7ICAvLyBpIGlzIG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC9zY29waW5nMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zY29waW5n
Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY2N2Y0MDA2MTRmM2RmNGU2NGE0ZmFkNzZkNTgwZmZl
YTUwMmVjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Njb3BpbmcyX2ZyYWcu
ZnJhZwpAQCAtMCwwICsxLDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2Vu
ZGlmCit2b2lkIG1haW4oKQoreworICAgIHsKKyAgICAgICAgaW50IGkgPSAxOworICAgICAgICBp
Kys7CisgICAgfQorICAgIGkrKzsgIC8vIGkgaXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2NvcGUK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDEwX2ZyYWcuZnJhZyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3N0cnVjdDEwX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjBjNzgyOTlkYTkzOGZl
MDI0MTVlZmExNmU2OWU1ZGY3N2YwZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVp
bGQvc3RydWN0MTBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0NvcHlyaWdodCAo
YykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczFbMl07CisK
K3ZvaWQgbWFpbigpCit7CisgICBzMS5pID0gMTsgIC8vIHMxIGlzIGFuIGFycmF5LiBzMVswXS5p
IGlzIGNvcnJlY3QgdG8gdXNlCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Qx
MV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QxMV9mcmFnLmZyYWcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTUyY2U0OWFlZDBkNTZhMjk4MGJkZjFiM2ZiOTdmZDcyY2I3MWI1MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDExX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE5IEBA
CisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYg
R0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgcyB7CisgICAg
aW50IGk7Cit9IHMxOworCit2b2lkIG1haW4oKQoreworICAgczEgPSAtczE7IC8vIGNhbm5vdCBj
YWxjdWxhdGUgbmVnYXRpdmUgb2YgYSBzdHJ1Y3R1cmUKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3N0cnVjdDFfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0MV9mcmFnLmZy
YWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGZjYmI4NTk5ZmE4MzAzNzJlN2RjZDU3NWU2ZDRlNDFiYWNiODc4Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDFfZnJhZy5mcmFnCkBAIC0w
LDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJ
bmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLwor
CisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVj
dCBzIHsKKyAgICBpbnQgaTsKK30gdW5pZm9ybSB1bmlmb3JtU3RydWN0OyAgLy8gdW5pZm9ybSBr
ZXl3b3JkIHNob3VsZCBiZSB1c2VkIGJlZm9yZSB0aGUga2V5d29yZCBzdHJ1Y3QKKwordm9pZCBt
YWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDJfZnJhZy5mcmFn
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY4MmY2N2Rm
YzExMTA2ZGMyM2Q1YTZiNzdiOTgyNjM1Mjk1NTAwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3N0cnVjdDJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBpbnQgaSA9IDEuMDsg
IC8vIHN0cnVjdCBtZW1iZXJzIGNhbm5vdCBiZSBpbml0aWFsaXplZCBhdCB0aGUgdGltZSBvZiBz
dHJ1Y3R1cmUgZGVjbGFyYXRpb24KK30gczE7CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QzX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0
cnVjdDNfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlYzFlNTM2MTYyYzFiOWEwZDQ0YTQ4Zjc4YWVm
YjAwMjA4NGU4M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3QzX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE4IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCitzdHJ1Y3QgcyB7CisgICAgdW5pZm9ybSBpbnQgaTsgIC8vIHN0cnVjdHVyZSBtZW1i
ZXJzIGNhbm5vdCBiZSBkZWNsYXJlZCB3aXRoIGNvbnN0IHF1YWxpZmllcgorfSBzMTsKKwordm9p
ZCBtYWluKCkKK3sKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDRfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0NF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU3ZDU0
N2FlMTJjZjg0ZGMxZjVhYzY4YzFmNzJlOTYzMTUyMzUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N0cnVjdDRfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBjb25zdCBpbnQg
aSA9IDE7ICAvLyBzdHJ1Y3R1cmUgbWVtYmVycyBjYW5ub3QgYmUgZGVjbGFyZWQgd2l0aCBjb25z
dCBxdWFsaWZpZXIKK30gczE7CisKK3ZvaWQgbWFpbigpCit7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xl
cy9HTC9idWlsZC9zdHJ1Y3Q1X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDVfZnJh
Zy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZkNjIzMjA3NjEzMWE2NGFlYjQzMWI4NzM5NjdkMzZhODFjNDA0
ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zdHJ1Y3Q1X2ZyYWcuZnJhZwpA
QCAtMCwwICsxLDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgor
Ki8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit1
bmlmb3JtIHN0cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczE7CisKK3ZvaWQgbWFpbigpCit7Cisg
ICBzMS5pID0gMTsgIC8vIHVuaWZvcm1zIGFyZSByZWFkIG9ubHkKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N0cnVjdDZfZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0Nl9m
cmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5OGNjMDFjNjIzYTY3ZGVlMjU2ZDA4M2M5ZWU1YjYyMDIw
ZDFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDZfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTggQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3Zhcnlpbmcgc3RydWN0IHMgeworICAgIGludCBpOworfSBzMTsgIC8vIHN0cnVjdHVyZXMgY2Fu
bm90IGJlIGRlY2xhcmVkIHdpdGggdmFyeWluZyBxdWFsaWZpZXIKKwordm9pZCBtYWluKCkKK3sK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDdfZnJhZy5mcmFnIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvc3RydWN0N19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFhMzIwNjUwNTkyOTgzMzQx
MzRhZWFjNjgyYjUzNzJlNDA1MDEyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3N0cnVjdDdfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgc3RydWN0IHMgeworICAgIH0g
czE7ICAvLyBzdHJ1Y3R1cmVzIGhhdmUgdG8gYmUgZGVjbGFyZWQgd2l0aCBhdGxlYXN0IG9uZSBt
ZW1iZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDhfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvc3RydWN0OF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkwMGJjOTBjMzM1
MTIzMjU4OTI5NjRmYWJmMjU2NDQwOGMwNDBmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3N0cnVjdDhfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdo
dCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9u
IG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBzIHsKKyAgICBpbnQgaTsKK30gczE7CisK
K3N0cnVjdCBzcyB7CisgICAgaW50IGk7Cit9IHMyOworCit2b2lkIG1haW4oKQoreworICAgIHMx
ID0gczI7ICAvLyB0d28gZGlmZmVyZW50IHN0cnVjdHVyZXMgY2Fubm90IGJlIGFzc2lnbmVkIHRv
IGVhY2ggb3RoZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N0cnVjdDlfZnJhZy5m
cmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3RydWN0OV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY2MWQy
NTAxMjhmM2RkYTQyY2QzODEyODczYTNmMDNiOWMwYTg1MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3N0cnVjdDlfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKworLyoKK0Nv
cHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK2NvbnN0IHN0cnVjdCBzIHsKKyAgICBpbnQg
aTsKK30gczEgPSBzKDEpOworCit2b2lkIG1haW4oKQoreworICAgczEuaSA9IDE7ICAvLyBjb25z
dCBzdHJ1Y3QgbWVtYmVycyBjYW5ub3QgYmUgbW9kaWZpZWQKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3N3aXp6bGUxX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUxX2Zy
YWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMTFlYTNjZjkxYTE1YzUxZDJlNmNiY2MxZWI0MTRmZmNmZjYy
ODc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvc3dpenpsZTFfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgdmVjMiB2OworICAgIHYueHkgPSAxLjI7IC8vIHN3aXp6bGUg
bmVlZHMgdHdvIHZhbHVlcywgdi54eSA9IHZlYzIoMS4yKSBpcyBjb3JyZWN0Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxlMl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9z
d2l6emxlMl9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA1YmQxODc3Njg2N2E2NGY0YWRkNjRmMTdh
Mzk3NTkwN2VlOWRjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUy
X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzIgdjsKKyAgICB2Lnh4ID0gdmVjMigx
LDEpOyAgLy8geCBjYW5ub3QgYmUgdXNlZCB0d2ljZSBpbiBsLXZhbHVlCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC9zd2l6emxlM19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC9zd2l6
emxlM19mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViOWZkNjA0ODMyMzg1Y2FkYzRhZWU5NGI4NTYz
NWY1MDZlOWZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3N3aXp6bGUzX2Zy
YWcuZnJhZwpAQCAtMCwwICsxLDE2IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEto
cm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4
dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
I2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIHZlYzIgdjsKKyAgICB2ZWMzIHYzID0gdi54eXo7
IC8vIHYgaXMgYSB2ZWMyIGFuZCBkb2VzIG5vdCBoYXZlIGEgeiBjb21wb25lbnQKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3R5cGVjYXN0X2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxk
L3R5cGVjYXN0X2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTFiMTI0ZjY2YzA3NTQ4ZmE0NzRlNzIx
NWEzMDkxMmY0N2FmNTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdHlwZWNh
c3RfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VO
U0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7CisjZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgdmVjNCB2OworICAgIHZlYzQgdjEgPSAo
dmVjNCkgdjsgLy8gaW5jb3JyZWN0IHR5cGVjYXN0aW5nLCB2ZWM0KHYpIGlzIGNvcnJlY3QKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3VuaWZvcm0xX2ZyYWcuZnJhZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dM
L2J1aWxkL3VuaWZvcm0xX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjcwNjQ3ZmFhYjA1NjE4ZTlk
ZjFlY2M4NTUyZTUyN2EyYTE4ZTNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
dW5pZm9ybTFfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMjMgQEAKKworLyoKK0NvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CisjZW5kaWYKK3N0cnVjdCBndGZfRm9nUGFyYW1ldGVycyB7Cit2ZWM0IGNvbG9y
OworZmxvYXQgZGVuc2l0eTsKK2Zsb2F0IHN0YXJ0OworZmxvYXQgZW5kOworZmxvYXQgc2NhbGU7
Cit9OwordW5pZm9ybSBndGZfRm9nUGFyYW1ldGVycyBndGZfRm9nOwordm9pZCBtYWluKCkKK3sK
KyAgICBndGZfRm9nLmRlbnNpdHkgPSAxLjA7ICAvLyBjYW5ub3QgbW9kaWZ5IGEgdW5pZm9ybQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdW5pZm9ybV9mcmFnLmZyYWcgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC91bmlmb3JtX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTVlYWNlZDQ2Y2ViYjM3MGEw
ZDhmNGQ1NjU1ODllMTE3YzhjMTlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
dW5pZm9ybV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAy
MDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUg
TElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB1bmlmb3JtIGZsb2F0IGZvbzsg
IC8vIHVuaWZvcm1zIGNhbiBvbmx5IGJlIGRlY2xhcmVkIGF0IGEgZ2xvYmFsIHNjb3BlCit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92YXJ5aW5nMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC92YXJ5aW5nMV9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY1MTIyZWE5OGE3YmZiMDE0MjBi
MzQwZmRjNWU2YmYwMDBmMmVjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Zh
cnlpbmcxX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE3IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIw
MTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBM
SUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OworI2VuZGlmCit2YXJ5aW5nIGZsb2F0IGZvbzsKKwordm9pZCBtYWluKCkKK3sKKyAg
ICBmb28gPSA1LjA7IC8vIHZhcnlpbmcgY2Fubm90IGJlIHdyaXR0ZW4gYnkgYSBmcmFnbWVudCBz
aGFkZXIKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZhcnlpbmcyX2ZyYWcuZnJhZyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ZhcnlpbmcyX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGNjOWY0OWY0
OTkzZGI2MjgxMDVjZTg4NDc2YWUwOThlNmRjYzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMv
R0wvYnVpbGQvdmFyeWluZzJfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHly
aWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91
bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYKK3ZhcnlpbmcgaW50IGZvbzsgLy8gdmFyeWluZ3Mg
Y2Fubm90IGJlIGludCBvciBib29sCisKK3ZvaWQgbWFpbigpCit7CisKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3ZhcnlpbmczX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3Zhcnlp
bmczX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmFiNjVlYzk5NjUzNDg1NmNhMGRlNmIzM2RmZDhk
MTljMTA3MDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZzNfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZhcnlpbmcgdmVjNCB2ID0gdmVjNCgxLDEsMSwxKTsvL2dsX1RleENvb3JkWzBdOyAv
LyB2YXJ5aW5ncyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQKKwordm9pZCBtYWluKCkKK3sKKworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFyeWluZ19mcmFnLmZyYWcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9i
dWlsZC92YXJ5aW5nX2ZyYWcuZnJhZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODVkOWZkYjdiMzZmYmYwYThlNTI1
MTBkNWI2YWE0NWE4NTBmZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmFy
eWluZ19mcmFnLmZyYWcKQEAgLTAsMCArMSwxNSBAQAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElD
RU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICB2YXJ5aW5nIGZsb2F0IGZvbzsgLy8g
dmFyeWluZ3MgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgYSBnbG9iYWwgc2NvcGUKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlY3Rvcl9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92
ZWN0b3JfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYzI5OGViMWQzZTc0MTBkNzU2ZTUwM2JmZjgx
ZWIxM2U3MGI1NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZWN0b3JfZnJh
Zy5mcmFnCkBAIC0wLDAgKzEsMTYgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisj
ZW5kaWYKK3ZvaWQgbWFpbigpCit7CisgICAgaXZlYzQgdjQ7CisgICAgdjQgPSB2NCArIDIuMDsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24yX1YxMDBfZnJhZy5mcmFnIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvdmVyc2lvbjJfVjEwMF9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgzZmM2
YTQ2N2ZjNzAzMjczMGNkNmJkMjFlNjRiMTljMmM0NmZmYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3ZlcnNpb24yX1YxMDBfZnJhZy5mcmFnCkBAIC0wLDAgKzEsMTkgQEAKKwor
LyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCisqLworCisKKyNwcmFnbWEgZGVi
dWcob24pCisjdmVyc2lvbiAxMDAgIC8vIGVycm9yICN2ZXJzaW9uIHNob3VsZCBiZSB0aGUgZmly
c3Qgc3RhdGVtZW50IGluIHRoZSBwcm9ncmFtCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OworI2VuZGlmCisKKwordm9pZCBtYWluKCkKK3sKKyAgIGdsX0ZyYWdDb2xvciA9
IHZlYzQoMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uM19WMTAwX2Zy
YWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3ZlcnNpb24zX1YxMDBfZnJhZy5mcmFnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIxZGZjYzMzY2VlMjg0MjZmMTVhZjliZWNkNWYxZThhM2VhNzVkZmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJzaW9uM19WMTAwX2ZyYWcuZnJhZwpAQCAtMCwwICsx
LDE5IEBACisKKy8qCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisv
KiBUaGlzIGlzICBhIGNvbW1lbnQqLyBpbnQgaTsgLy8gVGhpcyBpcyBhIGdsb2JhbCBkZWNsCisj
dmVyc2lvbiAxMDAgIC8vIGVycm9yICN2ZXJzaW9uIHNob3VsZCBiZSB0aGUgZmlyc3Qgc3RhdGVt
ZW50IGluIHRoZSBwcm9ncmFtCisjaWZkZWYgR0xfRVMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworI2VuZGlmCisKKwordm9pZCBtYWluKCkKK3sKKyAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMSk7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5Ml9mcmFnLmZyYWcgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9v
Z2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5Ml9mcmFnLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM4NWUyMjFj
ZWRhNWI5MjE3NTkxMTY5YTU2MzZkYTEzOThjNzUyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVz
L0dML2J1aWxkL3ZlcnRleE9ubHkyX2ZyYWcuZnJhZwpAQCAtMCwwICsxLDE1IEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCit2b2lkIG1haW4oKQoreworICAgIGdsX1Bv
c2l0aW9uID0gdmVjNCg0LjApOyAgLy8gY2FuIGJlIHVzZWQgaW4gdmVydGV4IHNoYWRlciBvbmx5
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhPbmx5X2ZyYWcuZnJhZyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL29n
bGVzL0dML2J1aWxkL3ZlcnRleE9ubHlfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYWRhMmJmMDg0
NWY1ZmJmZmRkMDc3MGYyOTgxYmQ5NzBmMmE5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9H
TC9idWlsZC92ZXJ0ZXhPbmx5X2ZyYWcuZnJhZwpAQCAtMCwwICsxLDI1IEBACisKKy8qCitDb3B5
cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCisjaWZkZWYgR0xfRVMKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworI2VuZGlmCitzdHJ1Y3QgZ3RmX1BvaW50UGFyYW1ldGVycyB7
CitmbG9hdCBzaXplOworZmxvYXQgc2l6ZU1pbjsKK2Zsb2F0IHNpemVNYXg7CitmbG9hdCBmYWRl
VGhyZXNob2xkU2l6ZTsKK2Zsb2F0IGRpc3RhbmNlQ29uc3RhbnRBdHRlbnVhdGlvbjsKK2Zsb2F0
IGRpc3RhbmNlTGluZWFyQXR0ZW51YXRpb247CitmbG9hdCBkaXN0YW5jZVF1YWRyYXRpY0F0dGVu
dWF0aW9uOworfTsKK3VuaWZvcm0gZ3RmX0ZvZ1BhcmFtZXRlcnMgZ3RmX1BvaW50Owordm9pZCBt
YWluKCkKK3sKKyAgICBndGZfUG9pbnRTaXplID0gNC4wOyAgLy8gY2FuIGJlIHVzZWQgaW4gdmVy
dGV4IHNoYWRlciBvbmx5Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC92ZXJ0ZXhfdmVy
dC52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvdmVydGV4X3ZlcnQudmVydApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjhj
YzQ1NTVlMzM4YzNmMzcwZDQwNGRlMzZjOTlhNGY5MjU0ODQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
b2dsZXMvR0wvYnVpbGQvdmVydGV4X3ZlcnQudmVydApAQCAtMCwwICsxLDEzIEBACisKKy8qCitD
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorKi8KKworCithdHRyaWJ1dGUgdmVjNCBn
dGZfVmVydGV4Owordm9pZCBtYWluKCkKK3sKKyAgICBndGZfVmVydGV4ID0gdmVjNCgxLjAsMi4w
LDMuMCwgNC4wKTsgLy8gY2Fubm90IG1vZGlmeSBhbiBhdHRyaWJ1dGUKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L29nbGVzL0dML2J1aWxkL3doaWxlMV9mcmFnLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTFf
ZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZTJjNmJiYjI4OTc5ZjY0MzUyYzRjMjU2MzI5YzE4YWQ3
YmVlMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9vZ2xlcy9HTC9idWlsZC93aGlsZTFfZnJhZy5mcmFn
CkBAIC0wLDAgKzEsMTcgQEAKKworLyoKK0NvcHlyaWdodCAoYykgMjAxOSBUaGUgS2hyb25vcyBH
cm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQt
c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CisqLworCisKKyNpZmRlZiBHTF9FUworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisjZW5kaWYK
K3ZvaWQgbWFpbigpCit7CisgICAgaW50IGk7CisgICAgd2hpbGUoaSkgeyAgLy8gY29uZGl0aW9u
IHNob3VsZCBiZSBib29sZWFuCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQv
d2hpbGUyX2ZyYWcuZnJhZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlMl9mcmFnLmZyYWcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzFlNzVjZmE5MGRlZmRjMTUxZDNlMDljYzZiODU5YWY1ZGU2NTk5OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL29nbGVzL0dML2J1aWxkL3doaWxlMl9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNiBA
QAorCisvKgorQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVm
IEdMX0VTCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sK
KyAgICB3aGlsZShmbG9hdCBmID0gNS4wKSB7ICAvLyBjYW5ub3QgZGVjbGFyZSB2YXJpYWJsZXMg
aW4gY29uZGl0aW9uCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGVf
ZnJhZy5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2Uvb2dsZXMvR0wvYnVpbGQvd2hpbGVfZnJhZy5mcmFnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5
MWQwOTkyYjAwMjhlNzBkZTJhNzEzZWE5MTIyNjljMGM0MWUzM2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9vZ2xlcy9HTC9idWlsZC93aGlsZV9mcmFnLmZyYWcKQEAgLTAsMCArMSwxNyBAQAorCisvKgor
Q29weXJpZ2h0IChjKSAyMDE5IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl
Citmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKyovCisKKworI2lmZGVmIEdMX0VTCitw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyNlbmRpZgordm9pZCBtYWluKCkKK3sKKyAgICBmbG9h
dCBmOworICAgIHdoaWxlKGYpIHsgIC8vIGNvbmRpdGlvbiBzaG91bGQgYmUgYm9vbGVhbgorICAg
IH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Byb2dyYW1zL3Byb2dyYW0tdGVzdC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMv
cHJvZ3JhbS10ZXN0Lmh0bWwKaW5kZXggYjVkNWI1OTFkNTEyZDk1OWNmZmQ0YzA3OTZjNzdiZGU3
NTg3MWU1NS4uMzRjYTY4ZjFkNzVhNTkwOTFjMGJmYzE4ZTFkN2Y5NDQyZDEzNjI2YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcHJvZ3JhbXMvcHJvZ3JhbS10ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcHJvZ3JhbXMvcHJvZ3JhbS10
ZXN0Lmh0bWwKQEAgLTMxMiw5ICszMTIsOSBAQCBmdW5jdGlvbiBnbygpIHsKICAgICBhc3NlcnRN
c2coZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9nR29vZDIsIGdsLkxJTktfU1RBVFVTKSA9PSBm
YWxzZSwKICAgICAgICAgICAgICAgImxpbmtpbmcgc2hvdWxkIGZhaWwgd2l0aCBpbi11c2UgZm9y
bWVybHkgZ29vZCBwcm9ncmFtLCB3aXRoIG5ldyBiYWQgc2hhZGVyIGF0dGFjaGVkIik7CiAKLSAg
ICAvLyBJbnZhbGlkIGxpbmsgbGVhdmVzIHByZXZpb3VzIHZhbGlkIHByb2dyYW0gaW50YWN0Lgor
ICAgIC8vIEluIFdlYkdMLCBhbiB1bnN1Y2Nlc3NmdWwgbGluayBpbW1lZGlhdGVseSBpbnZhbGlk
YXRlcyB0aGUgcHJldmlvdXMgdmFsaWQgcHJvZ3JhbS4KICAgICBnbC5kcmF3QXJyYXlzKGdsLlRS
SUFOR0xFUywgMCwgMyk7Ci0gICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Is
ICJkcmF3aW5nIHdpdGggYSB2YWxpZCBwcm9ncmFtIHNob3VsZG4ndCBnZW5lcmF0ZSBhIEdMIGVy
cm9yIik7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJkcmF3aW5nIHdpdGggYSBuZXdseS1pbnZhbGlkYXRlZCBwcm9ncmFtIHNob3VsZCBnZW5lcmF0
ZSBJTlZBTElEX09QRVJBVElPTiIpOwogCiAgICAgZ2wudXNlUHJvZ3JhbShwcm9nR29vZDEpOwog
ICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA0KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3JlbmRl
cmluZy9jbGVhci1kZWZhdWx0LWZyYW1lYnVmZmVyLXdpdGgtc2Npc3Nvci10ZXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRoLXNjaXNzb3ItdGVzdC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQzMzU1NWYyYmJmZWE5ZmQ1YmIyMWYxYzJjMjQ5MTM0YTEyY2M5ZGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY2xlYXItZGVmYXVsdC1mcmFtZWJ1ZmZlci13aXRo
LXNjaXNzb3ItdGVzdC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhLS0KK0NvcHlyaWdodCAoYykg
MjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhl
IExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkNsZWFyIHdpdGggc2Npc3NvciBidWcg
b24gV2ViR0wgY2FudmFzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZh
cy13ZWJnbCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj4gPC9jYW52YXM+Cis8Y2FudmFzIGlkPSJj
YW52YXMtMmQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+IDwvY2FudmFzPgorCis8c2NyaXB0Pgor
InVzZSBzdHJpY3QiOworLy8gVGhpcyB0ZXN0IGV4cG9zZXMgYW4gaXNzdWUgaW4gb2xkZXIgSW50
ZWwgRDNEIGRyaXZlcnMuCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisKK2Z1bmN0aW9uIHRl
c3RfY2xlYXJfd2l0aF9zY2lzc29yX29uX2NhbnZhcygpCit7CisgIHZhciBjYW52YXNXZWJHTCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMtd2ViZ2wiKTsKKyAgdmFyIGdsID0gY2Fu
dmFzV2ViR0wuZ2V0Q29udGV4dCgid2ViZ2wiLCB7IGFudGlhbGlhczpmYWxzZSB9KTsKKyAgY29u
c3Qgc2Npc3NvclJlY3RTaXplID0gMTY7CisgIGdsLmVuYWJsZShnbC5TQ0lTU09SX1RFU1QpOwor
ICBnbC5zY2lzc29yKDAsIDAsIHNjaXNzb3JSZWN0U2l6ZSwgc2Npc3NvclJlY3RTaXplKTsKKyAg
Z2wuY2xlYXJDb2xvcigwLCAxLCAwLCAxKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJ
VCk7CisKKyAgLy8gVGhlIGlzc3VlIGlzIGZvdW5kIGluIHRoZSBDaHJvbWl1bSBjb21wb3NpdG9y
IHNvIHdlIG5lZWQgYW5vdGhlciBjYW52YXMgZWxlbWVudCBmb3IgcmVwcm9kdWN0aW9uLgorICB2
YXIgY2FudmFzMkQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzLTJkIik7CisgIHZh
ciBjb250ZXh0MkQgPSBjYW52YXMyRC5nZXRDb250ZXh0KCcyZCcpOworICBjb250ZXh0MkQuZHJh
d0ltYWdlKGNhbnZhc1dlYkdMLCAwLCAwKTsKKyAgY29udGV4dDJELmZpbGwoKTsKKworICB2YXIg
aW1hZ2VEYXRhID0KKyAgICBjb250ZXh0MkQuZ2V0SW1hZ2VEYXRhKDAsIGNhbnZhczJELmNsaWVu
dEhlaWdodCAtIHNjaXNzb3JSZWN0U2l6ZSwgc2Npc3NvclJlY3RTaXplLCBzY2lzc29yUmVjdFNp
emUpOworICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOworICB2YXIgZXhwZWN0ZWRDb2xvciA9
IFswLCAyNTUsIDAsIDI1NV07CisgIGZvciAodmFyIHBpeGVsSW5kZXggPSAwOyBwaXhlbEluZGV4
IDwgc2Npc3NvclJlY3RTaXplICogc2Npc3NvclJlY3RTaXplOyArK3BpeGVsSW5kZXgpIHsKKyAg
ICBmb3IgKHZhciBjb2xvckluZGV4ID0gMDsgY29sb3JJbmRleCA8IDQ7ICsrY29sb3JJbmRleCkg
eworICAgICAgaWYgKGRhdGFbcGl4ZWxJbmRleCAqIDQgKyBjb2xvckluZGV4XSAhPT0gZXhwZWN0
ZWRDb2xvcltjb2xvckluZGV4XSkgeworICAgICAgICB2YXIgeSA9IE1hdGguZmxvb3IocGl4ZWxJ
bmRleCAvIHNjaXNzb3JSZWN0U2l6ZSk7CisgICAgICAgIHZhciB4ID0gcGl4ZWxJbmRleCAlIHNj
aXNzb3JSZWN0U2l6ZTsKKyAgICAgICAgdGVzdEZhaWxlZCgiVGhlIGNhbnZhcyBjb2xvciBhdCAo
IiArIHggKyAiLCAiICsgeSArICIpIGlzIG5vdCBleHBlY3RlZCIpOworICAgICAgICByZXR1cm47
CisgICAgICB9CisgICAgfQorICB9Cit9CisKK3Rlc3RfY2xlYXJfd2l0aF9zY2lzc29yX29uX2Nh
bnZhcygpOworCitkZXNjcmlwdGlvbigiRXhwb3NlcyBjbGVhcmluZyBXZWJHTCBjYW52YXMgd2l0
aCBzY2lzc29yIGJ1ZyBvbiBJbnRlbCBEM0QgZHJpdmVycyAtIHNlZSBodHRwczovL2NyYnVnLmNv
bS8xMjA2NzYzIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVyaW5nL2NvbG9yLW1hc2stc2hvdWxkLW5v
dC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXItcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVuZGVy
aW5nL2NvbG9yLW1hc2stc2hvdWxkLW5vdC1hZmZlY3QtYW50aWFsaWFzZWQtZnJhbWVidWZmZXIt
cmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiYmE1MmU5YTk3MGJiYjk0MGY2YmRkODc4MjFl
ZTMxZDE0ZTQ3MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZW5kZXJpbmcvY29sb3ItbWFzay1zaG91
bGQtbm90LWFmZmVjdC1hbnRpYWxpYXNlZC1mcmFtZWJ1ZmZlci1yZXNvbHV0aW9uLmh0bWwKQEAg
LTAsMCArMSw3MSBAQAorPCEtLQorQ29weXJpZ2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0t
PgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgQ29sb3JNYXNrIFNob3VsZCBOb3QgQWZmZWN0IEFudGlhbGlhc2Vk
IEZyYW1lYnVmZmVyIFJlc29sdXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImNhbnZhcyIgd2lkdGg9IjgiIGhlaWdodD0iOCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyJ1
c2Ugc3RyaWN0IjsKKworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGNvbG9yTWFzayBzdGF0ZSBkb2VzIG5vdCBhZmZl
Y3QgcmVzb2x1dGlvbiBvZiB0aGUgYW50aWFsaWFzZWQgZnJhbWVidWZmZXIuIik7CisKK2RlYnVn
KCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vY3JidWcuY29tLzEyNTc3Njki
Pmh0dHBzOi8vY3JidWcuY29tLzEyNTc3Njk8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTI5Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTI5PC9hPicpOworCitmdW5jdGlvbiBydW4oKSB7CisgICAg
Y29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMiLCB7IGFudGlhbGlhczogdHJ1
ZSwgYWxwaGE6IHRydWUgfSk7CisKKyAgICBpZiAoIWdsKSB7CisgICAgICAgIHRlc3RGYWlsZWQo
IldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiV2ViR0wgY29udGV4dCBl
eGlzdHMiKTsKKworICAgIGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBDb2xvclF1YWQoZ2wpOwor
CisgICAgLy8gQ2xlYXIgdGhlIGRlZmF1bHQgKG11bHRpc2FtcGxlZCkgZnJhbWVidWZmZXIgdG8g
cmVkLgorICAgIGdsLmNsZWFyQ29sb3IoMSwgMCwgMCwgMSk7CisgICAgZ2wuY29sb3JNYXNrKHRy
dWUsIHRydWUsIHRydWUsIHRydWUpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQp
OworCisgICAgLy8gRHJhdyBhIHRyYW5zcGFyZW50IGdyZWVuIHF1YWQuCisgICAgZ2wudXNlUHJv
Z3JhbShwcm9ncmFtKTsKKyAgICB3dHUuZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCBbIDAsIDI1NSwg
MCwgMCBdKTsKKworICAgIC8vIENsZWFyIHRoZSBhbHBoYSBjaGFubmVsLgorICAgIGdsLmNvbG9y
TWFzayhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICBnbC5jbGVhckNvbG9yKDAsIDAs
IDAsIDEpOworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworCisgICAgLy8gQXQg
dGhpcyBwb2ludCwgZXZlbiBzZXR0aW5nIHRoZSBjb2xvck1hc2sgdG8gYWxsLXRydWUgd29uJ3QK
KyAgICAvLyB3b3JrIGFyb3VuZCB0aGUgYnVnLCBzaW5jZSB0aGF0IHN0YXRlIGlzIGxhdGNoZWQg
aW5zaWRlIEFOR0xFCisgICAgLy8gb25seSBkdXJpbmcgZHJhd3MgLyBjbGVhcnMuCisKKyAgICB3
dHUuY2hlY2tDYW52YXMoZ2wsIFsgMCwgMjU1LCAwLCAyNTUgXSwgInNob3VsZCBiZSBncmVlbiIs
IDEpOworICAgIGZpbmlzaFRlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisKK3JlcXVlc3RBbmltYXRpb25GcmFtZShydW4pOworCis8L3NjcmlwdD4KKworPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
c3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sCmluZGV4IDUzMGE0YjQzMTNhZmUwMTQ0Mjc0
ODFjZmIxYzQ2YjVjMzFlNjEzMWEuLjdhYTJjZWRmOTk5N2NkMWZkNTg1Y2Y2NDY0NjlhMDYwYmFh
YTk5NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9z
dGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKQEAgLTIwLDcgKzIwLDUgQEAgZm91bmQgaW4g
dGhlIExJQ0VOU0UudHh0IGZpbGUuCiB2YXIgY29udGV4dFZlcnNpb24gPSAxOwogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qcyI+PC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmls
dGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL2Zvcm1hdC1maWx0ZXJhYmxl
LXJlbmRlcmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjc2OTRiODIxZWIxZWYxYmM4MzY4NTQzNDg1
NGIyYWE5ODAzMmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9mb3JtYXQtZmls
dGVyYWJsZS1yZW5kZXJhYmxlLmh0bWwKQEAgLTAsMCArMSwzNzggQEAKKzwhLS0KK0NvcHlyaWdo
dCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citk
ZXNjcmlwdGlvbigpOworCitjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsKK2dsLmNh
bnZhcy53aWR0aCA9IGdsLmNhbnZhcy5oZWlnaHQgPSAxOworCitmdW5jdGlvbiBtYWtlVGV4SW1h
Z2UoZm9ybWF0LCB1bnBhY2tGb3JtYXQsIHVucGFja1R5cGUsIGRhdGEpIHsKKyAgICBkYXRhID0g
ZGF0YSB8fCBudWxsOworCisgICAgY29uc3QgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW2Zvcm1h
dF0sIDIsIDIsIDAsCisgICAgICAgICAgICAgICAgZ2xbdW5wYWNrRm9ybWF0XSwgZ2xbdW5wYWNr
VHlwZV0sIG51bGwpOworICAgIHJldHVybiB0ZXg7Cit9CisKK2NvbnN0IERVTU1ZX0NPTE9SID0g
bWFrZVRleEltYWdlKCdSR0JBJywgJ1JHQkEnLCAnVU5TSUdORURfQllURScpOworCitmdW5jdGlv
biBtYWtlUHJvZ3JhbShnbCwgdnNTcmMsIGZzU3JjKSB7CisgIGZ1bmN0aW9uIG1ha2VTaGFkZXIo
cHJvZywgdHlwZSwgc3JjKSB7CisgICAgY29uc3Qgc2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGds
W3R5cGVdKTsKKyAgICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzcmMudHJpbSgpKTsKKyAgICBn
bC5jb21waWxlU2hhZGVyKHNoYWRlcik7CisgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2csIHNoYWRl
cik7CisgICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7CisgIH07CisKKyAgY29uc3QgcHJvZyA9
IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgbWFrZVNoYWRlcihwcm9nLCAnVkVSVEVYX1NIQURFUics
IHZzU3JjKTsKKyAgbWFrZVNoYWRlcihwcm9nLCAnRlJBR01FTlRfU0hBREVSJywgZnNTcmMpOwor
ICBnbC5saW5rUHJvZ3JhbShwcm9nKTsKKworICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIo
cHJvZywgZ2wuTElOS19TVEFUVVMpKSB7CisgICAgdGhyb3cgJ1Byb2dyYW0gbGlua2luZyBmYWls
ZWQnICsgZnNTcmM7CisgIH0KKyAgcmV0dXJuIHByb2c7Cit9CisKK2NvbnN0IFRFWF9GSUxURVJf
UFJPR19UID0gKHZlcnNpb24sIHNhbXBsZXJUKSA9PiBtYWtlUHJvZ3JhbShnbCwgYFwKKyAgICAk
e3ZlcnNpb259CisgICAgdm9pZCBtYWluKCkgeworICAgICAgICBnbF9Qb2ludFNpemUgPSAxLjA7
CisgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjUsMC41LDAsMSk7CisgICAgfWAsYFwKKyAg
ICAke3ZlcnNpb259CisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgdW5pZm9ybSAk
e3NhbXBsZXJUfSB1X3RleDA7CisgICAgI2lmIF9fVkVSU0lPTl9fID09IDMwMAorICAgIG91dCB2
ZWM0IG9fRnJhZ0NvbG9yOworICAgICNlbHNlCisgICAgI2RlZmluZSBvX0ZyYWdDb2xvciBnbF9G
cmFnQ29sb3IKKyAgICAjZGVmaW5lIHRleHR1cmUgdGV4dHVyZTJECisgICAgI2VuZGlmCisgICAg
dm9pZCBtYWluKCkgeworICAgICAgICBvX0ZyYWdDb2xvciA9IHZlYzQodGV4dHVyZSh1X3RleDAs
IHZlYzIoMC44KSkpOworICAgIH1gKTsKK2NvbnN0IFRFWF9GSUxURVJfUFJPR19CWV9UWVBFSVNI
ID0geworICAgICdmbG9hdCc6IFRFWF9GSUxURVJfUFJPR19UKCcnLCAnc2FtcGxlcjJEJyksCit9
OworaWYgKHd0dS5pc1dlYkdMMihnbCkpIHsKKyAgICBURVhfRklMVEVSX1BST0dfQllfVFlQRUlT
SFsnaW50J10gPQorICAgICAgICBURVhfRklMVEVSX1BST0dfVCgnI3ZlcnNpb24gMzAwIGVzJywg
J2hpZ2hwIGlzYW1wbGVyMkQnKTsKKyAgICBURVhfRklMVEVSX1BST0dfQllfVFlQRUlTSFsndWlu
dCddID0KKyAgICAgICAgVEVYX0ZJTFRFUl9QUk9HX1QoJyN2ZXJzaW9uIDMwMCBlcycsICdoaWdo
cCB1c2FtcGxlcjJEJyk7Cit9CisKK2Z1bmN0aW9uIHJ1blBpeGVsUHJvZ3JhbShnbCwgcHJvZykg
eworICAgIGdsLnVzZVByb2dyYW0ocHJvZyk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVS
X0JJVCk7CisgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAgIGNvbnN0IGJ5
dGVzID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgICAgZ2wucmVhZFBpeGVscygwLDAsMSwxLGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ5dGVzKTsKKyAgICByZXR1cm4gW10ubWFwLmNhbGwoYnl0
ZXMsIHggPT4geC8yNTUuMCk7Cit9CisKKy8vIEdMRVMgMi4wLjI1IHA2MworY29uc3QgRk9STUFU
X0lORk9fV0VCR0wxID0geworICAgIFJHQkE4ICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IHRy
dWUgICAgICwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkdCOCAg
IDogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjogdW5kZWZpbmVkLCB1bnBhY2s6IFsnUkdCJywgJ1VO
U0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQkE0ICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IHVu
ZGVmaW5lZCwgdW5wYWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfU0hPUlRfNF80XzRfNCddIH0sCisg
ICAgUkdCNV9BMTogeyBmaWx0ZXI6IHRydWUsIHJlbmRlcjogdW5kZWZpbmVkLCB1bnBhY2s6IFsn
UkdCQScsICdVTlNJR05FRF9TSE9SVF81XzVfNV8xJ10gfSwKKyAgICBSR0I1NjUgOiB7IGZpbHRl
cjogdHJ1ZSwgcmVuZGVyOiB1bmRlZmluZWQsIHVucGFjazogWydSR0InLCAnVU5TSUdORURfU0hP
UlRfNV82XzUnXSB9LAorICAgIExBOCAgICA6IHsgZmlsdGVyOiB0cnVlLCByZW5kZXI6IGZhbHNl
ICAgICwgdW5wYWNrOiBbJ0xVTUlOQU5DRV9BTFBIQScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAg
ICBMOCAgICAgOiB7IGZpbHRlcjogdHJ1ZSwgcmVuZGVyOiBmYWxzZSAgICAsIHVucGFjazogWydM
VU1JTkFOQ0UnLCAnVU5TSUdORURfQllURSddIH0sCisgICAgQTggICAgIDogeyBmaWx0ZXI6IHRy
dWUsIHJlbmRlcjogZmFsc2UgICAgLCB1bnBhY2s6IFsnQUxQSEEnLCAnVU5TSUdORURfQllURSdd
IH0sCit9OworCisvLyBHTEVTIDMuMC42IHAxMzAtMTMyCitjb25zdCBGT1JNQVRfSU5GT19XRUJH
TDIgPSB7CisgICAgUjggICAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVl
ICwgdW5wYWNrOiBbJ1JFRCcsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSOF9TTk9STSAgICAg
IDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkVEJywgJ0JZVEUn
XSB9LAorICAgIFJHOCAgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1ZSAs
IHVucGFjazogWydSRycsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSRzhfU05PUk0gICAgIDog
eyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkcnLCAnQllURSddIH0s
CisgICAgUkdCOCAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiB0cnVlICwgdW5w
YWNrOiBbJ1JHQicsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSR0I4X1NOT1JNICAgIDogeyBy
ZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ0JZVEUnXSB9LAor
ICAgIFJHQjU2NSAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1ZSAsIHVucGFj
azogWydSR0InLCAnVU5TSUdORURfU0hPUlRfNV82XzUnXSB9LAorICAgIFJHQkE0ICAgICAgICAg
OiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lH
TkVEX1NIT1JUXzRfNF80XzQnXSB9LAorICAgIFJHQjVfQTEgICAgICAgOiB7IHJlbmRlcjogdHJ1
ZSAsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX1NIT1JUXzVfNV81
XzEnXSB9LAorICAgIFJHQkE4ICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1
ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHQkE4X1NOT1JN
ICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0JBJywgJ0JZ
VEUnXSB9LAorICAgIFJHQjEwX0EyICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogdHJ1
ZSAsIHVucGFjazogWydSR0JBJywgJ1VOU0lHTkVEX0lOVF8xMF8xMF8xMF8yJ10gfSwKKyAgICBS
R0IxMF9BMlVJICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsn
UkdCQScsICdVTlNJR05FRF9JTlRfMTBfMTBfMTBfMiddIH0sCisgICAgU1JHQjggICAgICAgICA6
IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiB0cnVlICwgdW5wYWNrOiBbJ1JHQicsICdVTlNJR05F
RF9CWVRFJ10gfSwKKyAgICBTUkdCOF9BTFBIQTggIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6
IHRydWUgLCB1bnBhY2s6IFsnUkdCQScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSMTZGICAg
ICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkVEJywg
J0ZMT0FUJ10gfSwKKyAgICBSRzE2RiAgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6
IHRydWUgLCB1bnBhY2s6IFsnUkcnLCAnRkxPQVQnXSB9LAorICAgIFJHQjE2RiAgICAgICAgOiB7
IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVucGFjazogWydSR0InLCAnRkxPQVQnXSB9
LAorICAgIFJHQkExNkYgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogdHJ1ZSAsIHVu
cGFjazogWydSR0JBJywgJ0ZMT0FUJ10gfSwKKyAgICBSMzJGICAgICAgICAgIDogeyByZW5kZXI6
IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ0ZMT0FUJ10gfSwKKyAgICBS
RzMyRiAgICAgICAgIDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsn
UkcnLCAnRkxPQVQnXSB9LAorICAgIFJHQjMyRiAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZp
bHRlcjogZmFsc2UsIHVucGFjazogWydSR0InLCAnRkxPQVQnXSB9LAorICAgIFJHQkEzMkYgICAg
ICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JBJywgJ0ZM
T0FUJ10gfSwKKyAgICBSMTFGX0cxMUZfQjEwRjogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRy
dWUgLCB1bnBhY2s6IFsnUkdCJywgJ0ZMT0FUJ10gfSwKKyAgICBSR0I5X0U1ICAgICAgIDogeyBy
ZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IHRydWUgLCB1bnBhY2s6IFsnUkdCJywgJ0ZMT0FUJ10gfSwK
KyAgICBSOEkgICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBh
Y2s6IFsnUkVEJywgJ0JZVEUnXSB9LAorICAgIFI4VUkgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1
ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRUQnLCAnVU5TSUdORURfQllURSddIH0sCisg
ICAgUjE2SSAgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5wYWNr
OiBbJ1JFRCcsICdCWVRFJ10gfSwKKyAgICBSMTZVSSAgICAgICAgIDogeyByZW5kZXI6IHRydWUg
LCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkVEJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAg
IFIzMkkgICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazog
WydSRUQnLCAnQllURSddIH0sCisgICAgUjMyVUkgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwg
ZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JFRCcsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBS
RzhJICAgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsn
UkcnLCAnQllURSddIH0sCisgICAgUkc4VUkgICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmls
dGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHJywgJ1VOU0lHTkVEX0JZVEUnXSB9LAorICAgIFJHMTZJ
ICAgICAgICAgOiB7IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSRycs
ICdTSE9SVCddIH0sCisgICAgUkcxNlVJICAgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVy
OiBmYWxzZSwgdW5wYWNrOiBbJ1JHJywgJ1VOU0lHTkVEX1NIT1JUJ10gfSwKKyAgICBSRzMySSAg
ICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkcnLCAn
SU5UJ10gfSwKKyAgICBSRzMyVUkgICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZh
bHNlLCB1bnBhY2s6IFsnUkcnLCAnVU5TSUdORURfSU5UJ10gfSwKKyAgICBSR0I4SSAgICAgICAg
IDogeyByZW5kZXI6IGZhbHNlLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCJywgJ0JZVEUn
XSB9LAorICAgIFJHQjhVSSAgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2Us
IHVucGFjazogWydSR0InLCAnVU5TSUdORURfQllURSddIH0sCisgICAgUkdCMTZJICAgICAgICA6
IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdTSE9SVCdd
IH0sCisgICAgUkdCMTZVSSAgICAgICA6IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwg
dW5wYWNrOiBbJ1JHQicsICdVTlNJR05FRF9TSE9SVCddIH0sCisgICAgUkdCMzJJICAgICAgICA6
IHsgcmVuZGVyOiBmYWxzZSwgZmlsdGVyOiBmYWxzZSwgdW5wYWNrOiBbJ1JHQicsICdJTlQnXSB9
LAorICAgIFJHQjMyVUkgICAgICAgOiB7IHJlbmRlcjogZmFsc2UsIGZpbHRlcjogZmFsc2UsIHVu
cGFjazogWydSR0InLCAnVU5TSUdORURfSU5UJ10gfSwKKyAgICBSR0JBOEkgICAgICAgIDogeyBy
ZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCQScsICdCWVRFJ10gfSwK
KyAgICBSR0JBOFVJICAgICAgIDogeyByZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBh
Y2s6IFsnUkdCQScsICdVTlNJR05FRF9CWVRFJ10gfSwKKyAgICBSR0JBMTZJICAgICAgIDogeyBy
ZW5kZXI6IHRydWUgLCBmaWx0ZXI6IGZhbHNlLCB1bnBhY2s6IFsnUkdCQScsICdTSE9SVCddIH0s
CisgICAgUkdCQTE2VUkgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5w
YWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfU0hPUlQnXSB9LAorICAgIFJHQkEzMkkgICAgICAgOiB7
IHJlbmRlcjogdHJ1ZSAsIGZpbHRlcjogZmFsc2UsIHVucGFjazogWydSR0JBJywgJ0lOVCddIH0s
CisgICAgUkdCQTMyVUkgICAgICA6IHsgcmVuZGVyOiB0cnVlICwgZmlsdGVyOiBmYWxzZSwgdW5w
YWNrOiBbJ1JHQkEnLCAnVU5TSUdORURfSU5UJ10gfSwKKworICAgIERFUFRIX0NPTVBPTkVOVDE2
OiAgeyByZW5kZXI6ICdERVBUSF9BVFRBQ0hNRU5UJywgZmlsdGVyOiBmYWxzZSB9LAorICAgIERF
UFRIX0NPTVBPTkVOVDI0OiAgeyByZW5kZXI6ICdERVBUSF9BVFRBQ0hNRU5UJywgZmlsdGVyOiBm
YWxzZSB9LAorICAgIERFUFRIX0NPTVBPTkVOVDMyRjogeyByZW5kZXI6ICdERVBUSF9BVFRBQ0hN
RU5UJywgZmlsdGVyOiBmYWxzZSB9LAorICAgIERFUFRIMjRfU1RFTkNJTDg6ICAgeyByZW5kZXI6
ICdERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQnLCBmaWx0ZXI6IGZhbHNlIH0sCisgICAgREVQVEgz
MkZfU1RFTkNJTDg6ICB7IHJlbmRlcjogJ0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVCcsIGZpbHRl
cjogZmFsc2UgfSwKK307CisKK2NvbnN0IE9ORV9CWV9UWVBFID0geworICAgICdCWVRFJzogKDE8
PDcpLTEsCisgICAgJ1VOU0lHTkVEX0JZVEUnOiAoMTw8OCktMSwKKyAgICAnU0hPUlQnOiAoMTw8
MTUpLTEsCisgICAgJ1VOU0lHTkVEX1NIT1JUJzogKDE8PDE2KS0xLAorICAgICdJTlQnOiAoMTw8
MzEpLTEsCisgICAgJ1VOU0lHTkVEX0lOVCc6IE1hdGgucG93KDIsMzIpLTEsCisgICAgJ0ZMT0FU
JzogMSwKK307CisKK2NvbnN0IEFCVl9CWV9UWVBFID0geworICAgICdCWVRFJzogSW50OEFycmF5
LAorICAgICdVTlNJR05FRF9CWVRFJzogVWludDhBcnJheSwKKyAgICAnU0hPUlQnOiBJbnQxNkFy
cmF5LAorICAgICdVTlNJR05FRF9TSE9SVCc6IFVpbnQxNkFycmF5LAorICAgICdJTlQnOiBJbnQz
MkFycmF5LAorICAgICdVTlNJR05FRF9JTlQnOiBVaW50MzJBcnJheSwKKyAgICAnRkxPQVQnOiBG
bG9hdDMyQXJyYXksCit9OworCitmdW5jdGlvbiBwdXNoQml0c1Vub3JtKHByZXYsIGJpdENvdW50
LCBmbG9hdFZhbCkgeworICAgIGxldCByZXQgPSBwcmV2IDw8IGJpdENvdW50OworICAgIHJldCB8
PSBmbG9hdFZhbCAqICgoMSA8PCBiaXRDb3VudCktMSk7CisgICAgcmV0dXJuIHJldDsKK30KKwor
Y29uc3QgQ0hBTk5FTFNfQllfRk9STUFUID0geworICAgICdSRUQnOiAxLAorICAgICdMVU1JTkFO
Q0UnOiAxLAorICAgICdBTFBIQSc6IDEsCisgICAgJ0xVTUlOQU5DRV9BTFBIQSc6IDIsCisgICAg
J1JHJzogMiwKKyAgICAnUkdCJzogMywKKyAgICAnUkdCQSc6IDQsCit9OworCitmdW5jdGlvbiB0
aHJvd3YodmFsKSB7CisgICAgdGhyb3cgdmFsOworfQorCitmdW5jdGlvbiBwaXhlbERhdGFGb3JV
bnBhY2soZm9ybWF0LCB0eXBlLCBmbG9hdFZhbCkgeworICAgIHN3aXRjaCAodHlwZSkgeworICAg
ICAgICBjYXNlICdVTlNJR05FRF9TSE9SVF81XzZfNSc6IHsKKyAgICAgICAgICAgIGxldCBiaXRz
ID0gMDsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0VmFs
KTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDYsIGZsb2F0VmFsKTsK
KyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0c1Vub3JtKGJpdHMsIDUsIGZsb2F0VmFsKTsKKyAg
ICAgICAgICAgIHJldHVybiBuZXcgVWludDE2QXJyYXkoW2JpdHNdKTsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlICdVTlNJR05FRF9TSE9SVF80XzRfNF80JzogeworICAgICAgICAgICAgbGV0IGJp
dHMgPSAwOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRW
YWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRWYWwp
OworICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRWYWwpOwor
ICAgICAgICAgICAgYml0cyA9IHB1c2hCaXRzVW5vcm0oYml0cywgNCwgZmxvYXRWYWwpOworICAg
ICAgICAgICAgcmV0dXJuIG5ldyBVaW50MTZBcnJheShbYml0c10pOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgJ1VOU0lHTkVEX1NIT1JUXzVfNV81XzEnOiB7CisgICAgICAgICAgICBsZXQgYml0
cyA9IDA7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA1LCBmbG9hdFZh
bCk7CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA1LCBmbG9hdFZhbCk7
CisgICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCA1LCBmbG9hdFZhbCk7Cisg
ICAgICAgICAgICBiaXRzID0gcHVzaEJpdHNVbm9ybShiaXRzLCAxLCBmbG9hdFZhbCk7IC8vIE9r
LCBzaWxseSBmb3IgMSBiaXQgaGVyZS4KKyAgICAgICAgICAgIHJldHVybiBuZXcgVWludDE2QXJy
YXkoW2JpdHNdKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlICdVTlNJR05FRF9JTlRfMTBfMTBf
MTBfMic6IHsKKyAgICAgICAgICAgIGxldCBiaXRzID0gMDsKKyAgICAgICAgICAgIGJpdHMgPSBw
dXNoQml0c1Vub3JtKGJpdHMsIDEwLCBmbG9hdFZhbCk7CisgICAgICAgICAgICBiaXRzID0gcHVz
aEJpdHNVbm9ybShiaXRzLCAxMCwgZmxvYXRWYWwpOworICAgICAgICAgICAgYml0cyA9IHB1c2hC
aXRzVW5vcm0oYml0cywgMTAsIGZsb2F0VmFsKTsKKyAgICAgICAgICAgIGJpdHMgPSBwdXNoQml0
c1Vub3JtKGJpdHMsIDIsIGZsb2F0VmFsKTsgLy8gMiBiaXRzIGlzbid0IG11Y2ggbW9yZSB1c2Vm
dWwKKyAgICAgICAgICAgIHJldHVybiBuZXcgVWludDMyQXJyYXkoW2JpdHNdKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGNvbnN0IGNoYW5uZWxzID0gQ0hBTk5FTFNfQllfRk9STUFUW2Zvcm1h
dF0gfHwgdGhyb3d2KGZvcm1hdCk7CisgICAgY29uc3Qgb25lID0gT05FX0JZX1RZUEVbdHlwZV0g
fHwgdGhyb3d2KCcyNDAnLCB0eXBlKTsKKyAgICBjb25zdCBhYnZUeXBlID0gQUJWX0JZX1RZUEVb
dHlwZV0gfHwgdGhyb3d2KCcyNDEnLCB0eXBlKTsKKworICAgIGNvbnN0IHZhbCA9IGZsb2F0VmFs
ICogb25lOworICAgIGNvbnN0IGFyciA9IFtdOworICAgIGZvciAoY29uc3QgaSBvZiByYW5nZShj
aGFubmVscykpIHsKKyAgICAgICAgYXJyLnB1c2godmFsKTsKKyAgICB9CisgICAgcmV0dXJuIG5l
dyBhYnZUeXBlKGFycik7Cit9CisKK2Z1bmN0aW9uIGV4cGVjdChuYW1lLCB3YXMsIGV4cGVjdGVk
KSB7CisgICAgbGV0IHRleHQgPSBgJHtuYW1lfSB3YXMgJHt3YXN9YDsKKyAgICBjb25zdCBjb25k
ID0gd2FzID09IGV4cGVjdGVkOworICAgIGlmICghY29uZCkgeworICAgICAgICB0ZXh0ICs9IGAs
IGJ1dCBleHBlY3RlZCAke2V4cGVjdGVkfWA7CisgICAgfQorICAgIGV4cGVjdFRydWUoY29uZCwg
dGV4dCk7Cit9CisKK2Z1bmN0aW9uIHRvVHlwZWlzaChzaXplZEZvcm1hdCkgeworICAgIGlmIChz
aXplZEZvcm1hdC5lbmRzV2l0aCgnVUknKSkgeworICAgICAgICByZXR1cm4gJ2ludCc7CisgICAg
fSBlbHNlIGlmIChzaXplZEZvcm1hdC5lbmRzV2l0aCgnSScpKSB7CisgICAgICAgIHJldHVybiAn
dWludCc7CisgICAgfQorICAgIHJldHVybiAnZmxvYXQnOworfQorCitjYWxsKGFzeW5jICgpID0+
IHsKKyAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCAxKTsKKworICAgIGxl
dCBmb3JtYXRMaXN0ID0gRk9STUFUX0lORk9fV0VCR0wxOworICAgIGlmICh3dHUuaXNXZWJHTDIo
Z2wpKSB7CisgICAgICAgIGZvcm1hdExpc3QgPSBGT1JNQVRfSU5GT19XRUJHTDI7CisgICAgfQor
ICAgIGZvciAoY29uc3QgW3NpemVkRm9ybWF0LCBpbmZvXSBvZiBPYmplY3QuZW50cmllcyhmb3Jt
YXRMaXN0KSkgeworICAgICAgICBhd2FpdCB3dHUuZGlzcGF0Y2hQcm9taXNlKCk7CisgICAgICAg
IGRlYnVnKGBgKTsKKyAgICAgICAgZGVidWcoYCR7c2l6ZWRGb3JtYXR9OiAke0pTT04uc3RyaW5n
aWZ5KGluZm8pfWApOworCisgICAgICAgIGNvbnN0IHR5cGVpc2ggPSB0b1R5cGVpc2goc2l6ZWRG
b3JtYXQpOworCisgICAgICAgIC8vICB8LS0tfC0tLXwKKyAgICAgICAgLy8gIHwgMCB8IDEgfAor
ICAgICAgICAvLyAgfC0tLXwtLS18CisgICAgICAgIC8vIDB8IDAgfCAwIHwKKyAgICAgICAgLy8g
IHwtLS18LS0tfAorICAgICAgICAvLyAgICAwCisgICAgICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0
ZVRleHR1cmUoKTsKKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsK
KyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19G
SUxURVIsIGdsLkxJTkVBUik7CisgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOworCisgICAgICAgIGlmIChnbC50
ZXhTdG9yYWdlMkQpIHsKKyAgICAgICAgICAgIGdsLnRleFN0b3JhZ2UyRChnbC5URVhUVVJFXzJE
LCAxLCBnbFtzaXplZEZvcm1hdF0sIDIsIDIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbFtpbmZvLnVucGFja1swXV0sCisg
ICAgICAgICAgICAgICAgMiwgMiwgMCwgZ2xbaW5mby51bnBhY2tbMF1dLCBnbFtpbmZvLnVucGFj
a1sxXV0sIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGluZm8udW5wYWNrKSB7Cisg
ICAgICAgICAgICBjb25zdCBvbmUgPSBwaXhlbERhdGFGb3JVbnBhY2soLi4uaW5mby51bnBhY2ss
IDEuMCk7CisgICAgICAgICAgICBjb25zdCBkYXRhID0gbmV3IG9uZS5jb25zdHJ1Y3RvcihvbmUu
bGVuZ3RoKjQpOworICAgICAgICAgICAgZGF0YS5zZXQob25lLCBvbmUubGVuZ3RoKjMpOworICAg
ICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLDAsCisgICAgICAg
ICAgICAgICAgMiwyLCBnbFtpbmZvLnVucGFja1swXV0sIGdsW2luZm8udW5wYWNrWzFdXSwgZGF0
YSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbmZvLnJlbmRlciB8fCB0aHJvd3Yo
YCR7c2l6ZWRGb3JtYXR9IHdpdGhvdXQgdW5wYWNrIG9yIHJlbmRlcmApOworICAgICAgICB9CisK
KyAgICAgICAgLy8gLQorICAgICAgICAvLyBjb2xvci1yZW5kZXJhYmxlIHRlc3QKKworICAgICAg
ICB7CisgICAgICAgICAgICBjb25zdCBmYiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAg
ICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKyAgICAgICAg
ICAgIGxldCBhdHRhY2ggPSBpbmZvLnJlbmRlciB8fCB0cnVlOworICAgICAgICAgICAgY29uc3Qg
aXNDb2xvciA9IChhdHRhY2ggPT09IHRydWUpOworICAgICAgICAgICAgaWYgKGlzQ29sb3IpIHsK
KyAgICAgICAgICAgICAgICBhdHRhY2ggPSAnQ09MT1JfQVRUQUNITUVOVDAnOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5G
UkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2wuVEVYVFVSRV8yRCwgRFVNTVlfQ09MT1IsIDApOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZG
RVIsIGdsW2F0dGFjaF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5U
RVhUVVJFXzJELCB0ZXgsIDApOworICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUik7CisgICAgICAgICAgICBjb25zdCB3YXNS
ZW5kZXJhYmxlID0gKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7CisgICAgICAg
ICAgICBpZiAoaW5mby5yZW5kZXIgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIGRl
YnVnKGBOb24tbm9ybWF0aXZlOiBjb2xvci1yZW5kZXJhYmxlIHdhcyAke3dhc1JlbmRlcmFibGV9
YCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4cGVjdCgnY29sb3It
cmVuZGVyYWJsZScsIHdhc1JlbmRlcmFibGUsICEhaW5mby5yZW5kZXIpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKHdhc1JlbmRlcmFibGUpIHsKKyAgICAgICAgICAgICAgICBnbC5j
bGVhckNvbG9yKDAsMCwwLDApOworICAgICAgICAgICAgICAgIGdsLmNsZWFyRGVwdGgoMCk7Cisg
ICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JV
RkZFUl9CSVQpOworICAgICAgICAgICAgICAgIGdsLmVuYWJsZShnbC5TQ0lTU09SX1RFU1QpOwor
ICAgICAgICAgICAgICAgIGdsLnNjaXNzb3IoMSwxLDEsMSk7CisgICAgICAgICAgICAgICAgZ2wu
Y2xlYXJDb2xvcigxLDEsMSwxKTsKKyAgICAgICAgICAgICAgICBnbC5jbGVhckRlcHRoKDEpOwor
ICAgICAgICAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9C
VUZGRVJfQklUKTsKKyAgICAgICAgICAgICAgICBnbC5kaXNhYmxlKGdsLlNDSVNTT1JfVEVTVCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnbC5kZWxldGVGcmFtZWJ1ZmZlcihmYik7Cisg
ICAgICAgICAgICBpZiAoIXdhc1JlbmRlcmFibGUgJiYgIWluZm8udW5wYWNrKSB7CisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgnTm8gdW5wYWNrIHByb3ZpZGVkIGFuZCAhd2FzUmVuZGVyYWJs
ZSwgc2tpcHBpbmcgZmlsdGVyaW5nIHN1YnRlc3QuLi4nKTsKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIC0KKyAgICAgICAg
Ly8gZmlsdGVyYWJsZSB0ZXN0CisKKyAgICAgICAgY29uc3QgcHJvZyA9IFRFWF9GSUxURVJfUFJP
R19CWV9UWVBFSVNIW3R5cGVpc2hdOworICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXgpOworICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDApOworICAgICAgICBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOworICAgICAgICBnbC52aWV3cG9y
dCgwLDAsMSwxKTsKKyAgICAgICAgY29uc3QgdiA9IHJ1blBpeGVsUHJvZ3JhbShnbCwgcHJvZyk7
CisgICAgICAgIGlmIChzaXplZEZvcm1hdCAhPSAnQTgnKSB7CisgICAgICAgICAgICB2WzNdID0g
MDsgLy8gSW5jb21wbGV0ZSBuby1hbHBoYSBmb3JtYXRzIHB1dCAxIGluIGFscGhhLgorICAgICAg
ICB9CisgICAgICAgIGNvbnN0IHdhc0ZpbHRlcmFibGUgPSB2LnNvbWUoeCA9PiAhIXgpOworICAg
ICAgICBleHBlY3QoJ2ZpbHRlcmFibGUnLCB3YXNGaWx0ZXJhYmxlLCBpbmZvLmZpbHRlcik7Cisg
ICAgfQorCisgICAgZmluaXNoVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Ut
b2Zmc2NyZWVuY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjA4Njk2ZTk4YThlY2ZlZDQ5ZjNiNmFlN2NmOWU4N2NlZWZmYTVhZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEy
NSArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5j
LgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgotLS0+Ci0K
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTx0aXRsZT5XZWJHTCBPcmlnaW4gUmVzdHJpY3Rpb25zIENvbmZvcm1hbmNlIFRlc3RzIGZvciBP
ZmZzY3JlZW5DYW52YXM8L3RpdGxlPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBp
ZD0iY2FudmFzIj48L2NhbnZhcz4KLTxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsi
PgotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLQot
Ly8gQ2hlY2tzIGlmIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1mdW5jdGlvbiBjYXVz
ZWRFeGNlcHRpb24oZnVuYykgewotICB2YXIgaGFkRXhjZXB0aW9uID0gZmFsc2U7Ci0gIHRyeSB7
Ci0gICAgZnVuYygpOwotICB9IGNhdGNoKGUpIHsKLSAgICBoYWRFeGNlcHRpb24gPSB0cnVlOwot
ICB9Ci0gIHJldHVybiBoYWRFeGNlcHRpb247Ci19Ci0KLXZhciBkZWZhdWx0SW1nVXJsID0gImh0
dHBzOi8vZ2V0LndlYmdsLm9yZy9jb25mb3JtYW5jZS1yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBn
IjsKLXZhciBsb2NhbEltZ1VybCA9ICIuLi8uLi8uLi9yZXNvdXJjZXMvb3BlbmdsX2xvZ28uanBn
IjsKLQotdmFyIGltZ0RvbWFpbjsKLXZhciBwYWdlRG9tYWluOwotCi1mdW5jdGlvbiBpbWFnZUxv
YWRlZChpbWcpIHsKLSAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGltcGxl
bWVudGF0aW9ucyBmb3IgT2Zmc2NyZWVuQ2FudmFzIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmlnaW4g
cmVzdHJpY3Rpb25zLiIpOwotCi0gIGlmICghd2luZG93Lk9mZnNjcmVlbkNhbnZhcykgewotICAg
IHRlc3RQYXNzZWQoIk5vIE9mZnNjcmVlbkNhbnZhcyBzdXBwb3J0Iik7Ci0gICAgZmluaXNoVGVz
dCgpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGFzc2VydE1zZyhpbWcud2lkdGggPiAwICYmIGlt
Zy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAgaW1nRG9tYWluID0gd3R1LmdldEJh
c2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwotICBwYWdlRG9tYWluID0gd3R1LmdldEJh
c2VEb21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwotICBhc3NlcnRNc2coaW1nRG9tYWluICE9
IHBhZ2VEb21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiArICIp
IGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1lLiIp
OwotCi0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0
aW9uIG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7
Ci0gICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VS
ZWFkUGl4ZWxzKGdsKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGJ1ZiA9
IG5ldyBVaW50OEFycmF5KDQpOwotICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIH07Ci0gIH0KLQotICB2YXIgb2Zmc2Ny
ZWVuY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOwotICB2YXIgZ2wgPSB3dHUu
Y3JlYXRlM0RDb250ZXh0KG9mZnNjcmVlbmNhbnZhcyk7Ci0KLSAgZGVidWcoIiIpOwotICBkZWJ1
ZygiY2hlY2sgdGhhdCBhbiBhdHRlbXB0IHRvIHVwbG9hZCBhbiBpbWFnZSBmcm9tIGFub3RoZXIg
b3JpZ2luIHRocm93cyBhbiBleGNlcHRpb24uIik7Ci0gIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0
dXJlKCk7Ci0gIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMjU2LCAyNTYsIDAsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VU
ZXhJbWFnZTJEKGdsLCBpbWcpKSwKLSAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggY3Jvc3Mt
b3JpZ2luIGltYWdlIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVz
ZWRFeGNlcHRpb24obWFrZVRleFN1YkltYWdlMkQoZ2wsIGltZykpLAotICAgICAgICAgICAgInRl
eFN1YkltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhhdCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3Jr
IGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhj
ZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91
bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4g
b2YgV2ViR0wgY2FudmFzLiIpOwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8g
dXBsb2FkIGEgdGFpbnRlZCBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLSAgdmFyIGN0eDJkID0g
Y2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDApOwot
ICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52YXMpKSwK
LSAgICAgICAgICAgICJ0ZXhJbWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hv
dWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtl
VGV4U3ViSW1hZ2UyRChnbCwgY2FudmFzKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3
aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0K
LSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBjb250aW51ZXMgdG8gd29yayBhZ2FpbnN0
IHRoaXMgb2Zmc2NyZWVuY2FudmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbiht
YWtlUmVhZFBpeGVscyhnbCkpLAotICAgICAgICAgICAgInJlYWRQaXhlbHMgc2hvdWxkIG5ldmVy
IHRocm93IGV4Y2VwdGlvbiAtLSBub3QgcG9zc2libGUgdG8gZGlydHkgb3JpZ2luIG9mIFdlYkdM
IGNhbnZhcy4iKTsKLQotICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCi0gIC8vIFRPRE86
IFNob3VsZCBjaGVjayBDT1JTIHN1cHBvcnQuCi0KLSAgZmluaXNoVGVzdCgpOwotfQotCi0oYXN5
bmMgZnVuY3Rpb24oKSB7Ci0gIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
bWcnKTsKLSAgdHJ5IHsKLSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9z
c09yaWdpbkltYWdlKGltZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgfSBjYXRj
aCAoZSkgewotICAgIHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0g
ICAgZmluaXNoVGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbWFnZUxvYWRlZChpbWcpOwot
fSkoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2Mvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZi
N2Y1NzIxNzM1ZjAxNzM0YTdlMWQ2YmUzOTNjZTA3YTYxMmFmMDAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9vcmlnaW4tY2xlYW4t
Y29uZm9ybWFuY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi08IS0tCi1D
b3B5cmlnaHQgKGMpIDIwMTkgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgotVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
LWZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgotLS0+Ci0KLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBPcmln
aW4gUmVzdHJpY3Rpb25zIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KLTxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxjYW52YXMgaWQ9ImNhbnZhczEiPjwvY2FudmFzPgotPGNhbnZhcyBpZD0iY2Fu
dmFzMiI+PC9jYW52YXM+Ci08aW1nIGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KLTxz
Y3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci0KLS8vIENo
ZWNrcyBpZiBmdW5jdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgotZnVuY3Rpb24gY2F1c2VkRXhj
ZXB0aW9uKGZ1bmMpIHsKLSAgdmFyIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICB0cnkgewotICAg
IGZ1bmMoKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaGFkRXhjZXB0aW9uID0gdHJ1ZTsKLSAgfQot
ICByZXR1cm4gaGFkRXhjZXB0aW9uOwotfQotCi12YXIgZGVmYXVsdEltZ1VybCA9ICJodHRwczov
L2dldC53ZWJnbC5vcmcvY29uZm9ybWFuY2UtcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Ci12
YXIgbG9jYWxJbWdVcmwgPSAiLi4vLi4vLi4vcmVzb3VyY2VzL29wZW5nbF9sb2dvLmpwZyI7Ci0K
LXZhciBpbWdEb21haW47Ci12YXIgcGFnZURvbWFpbjsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQ7
Ci0KLWZ1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgewotICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGZvbGxvdyBwcm9wZXIgc2FtZS1vcmlnaW4g
cmVzdHJpY3Rpb25zLiIpOwotCi0gIGFzc2VydE1zZyhpbWcud2lkdGggPiAwICYmIGltZy5oZWln
aHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAgaW1nRG9tYWluID0gd3R1LmdldEJhc2VEb21h
aW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwotICBwYWdlRG9tYWluID0gd3R1LmdldEJhc2VEb21h
aW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwotICBhc3NlcnRNc2coaW1nRG9tYWluICE9IHBhZ2VE
b21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFpbiAoIiArIGltZ0RvbWFpbiArICIpIGFuZCBw
YWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBhcmUgbm90IHRoZSBzYW1lLiIpOwotCi0g
IGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1h
a2VUZXhTdWJJbWFnZTJEKGdsLCBzcmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VSZWFkUGl4
ZWxzKGdsKSB7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGJ1ZiA9IG5ldyBV
aW50OEFycmF5KDQpOwotICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBidWYpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVG9E
YXRhVVJMKGNhbnZhcykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBkYXRh
ID0gY2FudmFzLnRvRGF0YVVSTCgpOwotICAgIH0KLSAgfQotCi0gIHZhciBjYW52YXMxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhczEiKTsKLSAgdmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChjYW52YXMxKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJjaGVjayB0aGF0IGFu
IGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5vdGhlciBvcmlnaW4gdGhyb3dzIGFu
IGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
bnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleEltYWdlMkQoZ2wsIGlt
ZykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmlnaW4gaW1hZ2Ugc2hv
dWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtl
VGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRo
IGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotCi0gIGRlYnVn
KCJjaGVjayB0aGF0IHJlYWRQaXhlbHMgYW5kIHRvRGF0YVVSTCBjb250aW51ZSB0byB3b3JrIGFn
YWluc3QgdGhpcyBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VS
ZWFkUGl4ZWxzKGdsKSksCi0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhy
b3cgZXhjZXB0aW9uIC0tIG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wgY2Fu
dmFzLiIpOwotICBhc3NlcnRNc2coIWNhdXNlZEV4Y2VwdGlvbihtYWtlVG9EYXRhVVJMKGNhbnZh
czEpKSwKLSAgICAgICAgICAgICJzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbiBieSB0b0RhdGFV
UkwgZm9yIFdlYkdMIGNhbnZhcywgd2hpY2ggc2hvdWxkIHN0YXkgb3JpZ2luIGNsZWFuLiIpOwot
Ci0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBjYW52
YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIGNhbnZhczIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2FudmFzMiIpOwotICB2YXIgY3R4MmQgPSBjYW52YXMyLmdldENvbnRleHQo
IjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICBhc3NlcnRNc2coY2F1c2Vk
RXhjZXB0aW9uKG1ha2VUb0RhdGFVUkwoY2FudmFzMikpLAotICAgICAgICAgICAgInNob3VsZCB0
aHJvdyBleGNlcHRpb24gYnkgdG9EYXRhVVJMIGZvciBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcy4i
KTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4SW1hZ2UyRChnbCwgY2FudmFz
MikpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZh
cyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9u
KG1ha2VUZXhTdWJJbWFnZTJEKGdsLCBjYW52YXMyKSksCi0gICAgICAgICAgICAidGV4U3ViSW1h
Z2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xlYW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24u
Iik7Ci0KLSAgZGVidWcoImNoZWNrIHRoYXQgcmVhZFBpeGVscyBhbmQgdG9EYXRhVVJMIGNvbnRp
bnVlIHRvIHdvcmsgYWdhaW5zdCB0aGlzIGNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRF
eGNlcHRpb24obWFrZVJlYWRQaXhlbHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNo
b3VsZCBuZXZlciB0aHJvdyBleGNlcHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdp
biBvZiBXZWJHTCBjYW52YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VU
b0RhdGFVUkwoY2FudmFzMSkpLAotICAgICAgICAgICAgInNob3VsZCBub3QgdGhyb3cgZXhjZXB0
aW9uIGJ5IHRvRGF0YVVSTCBmb3IgV2ViR0wgY2FudmFzLCB3aGljaCBzaG91bGQgc3RheSBvcmln
aW4gY2xlYW4uIik7Ci0KLSAgLy8gVE9ETzogU2hvdWxkIGNoZWNrIHZpZGVvLgotICAvLyBUT0RP
OiBTaG91bGQgY2hlY2sgQ09SUyBzdXBwb3J0LgotCi0gIGRlYnVnKCIiKTsKLSAgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLSAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsK
LSAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicp
OwotICBub3RpZnlGaW5pc2hlZFRvSGFybmVzcygpOwotfQotCi0oYXN5bmMgZnVuY3Rpb24oKSB7
Ci0gIGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcnKTsKLSAgdHJ5IHsK
LSAgICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGlt
ZywgZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpKTsKLSAgfSBjYXRjaCAoZSkgewotICAgIHRl
c3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgZmluaXNoVGVzdCgp
OwotICAgIHJldHVybjsKLSAgfQotICBpbWFnZUxvYWRlZChpbWcpOwotfSkoKTsKLTwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy9wbmctaW1hZ2Ut
dHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGViOThiMTQwNTZkMjBhYzg3NTc4Njc3ODE4NDZmZWJlZTA2NDZiYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3RleHR1cmVzL21pc2MvcG5nLWltYWdlLXR5cGVzLmh0bWwKQEAgLTAsMCArMSwxNjQg
QEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCistLT4KKworPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKworPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIiAvPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlw
dD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgY29ycmVj
dCBjaGFubmVsIG1hcHBpbmcgb2YgZGlmZmVyZW50IFBORyBpbWFnZSB0eXBlcy4iKTsKKworY29u
c3QgdGVzdERhdGEgPSB7CisgICAgIkdyYXlzY2FsZSI6IHsKKyAgICAgICAgc3JjOiBbCisgICAg
ICAgICAgICAvLyBbMHg0MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZC
T1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQUFBQUFBNmZwdFZBQUFBQ2tsRVFWUUkxMk53
QUFBQVFnQkJnN25zclFBQUFBQkpSVTVFcmtKZ2dnPT0iLAorICAgICAgICAgICAgLy8gWzB4NDA0
MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNV
aEVVZ0FBQUFFQUFBQUJFQUFBQUFCcTdrY1dBQUFBQzBsRVFWUUkxMk53Y0FBQUFNTUFnVWVuTEVJ
QUFBQUFTVVZPUks1Q1lJST0iCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGF0aW9uczogWwor
ICAgICAgICAgICAgeyBjb2xvcjogWzB4MDAsIDB4MDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJB
TFBIQSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAweEZGXSwg
Zm9ybWF0OiAiUkdCIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4NDAs
IDB4RkZdLCBmb3JtYXQ6ICJSR0JBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4
NDAsIDB4NDAsIDB4RkZdLCBmb3JtYXQ6ICJMVU1JTkFOQ0UiIH0sCisgICAgICAgICAgICB7IGNv
bG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRV9BTFBIQSIg
fSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDAwLCAweDAwLCAweEZGXSwgZm9ybWF0
OiAiUkVEIiwgaW50ZXJuYWxmb3JtYXQ6ICJSOCIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsw
eDQwLCAweDQwLCAweDAwLCAweEZGXSwgZm9ybWF0OiAiUkciLCBpbnRlcm5hbGZvcm1hdDogIlJH
OCIgfQorICAgICAgICBdCisgICAgfSwKKyAgICAiR3JheXNjYWxlIEFscGhhIjogeworICAgICAg
ICBzcmM6IFsKKyAgICAgICAgICAgIC8vIFsweDQwLCAweDgwXQorICAgICAgICAgICAgImRhdGE6
aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMx
SEF3Q0FBQUFDMGxFUVZRSTEyTndhQUFBQVFNQXdVeFpUbDRBQUFBQVNVVk9SSzVDWUlJPSIsCisg
ICAgICAgICAgICAvLyBbMHg0MDQwLCAweDgwODBdCisgICAgICAgICAgICAiZGF0YTppbWFnZS9w
bmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCRUFRQUFBRGxqTkJCQUFB
QURVbEVRVlFJMTJOd2NHaG9BQUFEUlFHQm94c3NQZ0FBQUFCSlJVNUVya0pnZ2c9PSIKKyAgICAg
ICAgXSwKKyAgICAgICAgZXhwZWN0YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBbMHgw
MCwgMHgwMCwgMHgwMCwgMHg4MF0sIGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAgeyBj
b2xvcjogWzB4NDAsIDB4NDAsIDB4NDAsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAg
ICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHg4MF0sIGZvcm1hdDogIlJHQkEiIH0s
CisgICAgICAgICAgICB7IGNvbG9yOiBbMHg0MCwgMHg0MCwgMHg0MCwgMHhGRl0sIGZvcm1hdDog
IkxVTUlOQU5DRSIgfSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweDQwLCAweDQwLCAweDQwLCAw
eDgwXSwgZm9ybWF0OiAiTFVNSU5BTkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjog
WzB4NDAsIDB4MDAsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDog
IlI4IiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4NDAsIDB4NDAsIDB4MDAsIDB4RkZdLCBm
b3JtYXQ6ICJSRyIsIGludGVybmFsZm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKyAgICB9LAor
ICAgICJDb2xvciI6IHsKKyAgICAgICAgc3JjOiBbCisgICAgICAgICAgICAvLyBbMHhCRiwgMHg3
RiwgMHhGRl0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29B
QUFBTlNVaEVVZ0FBQUFFQUFBQUJDQUlBQUFDUWQxUGVBQUFBREVsRVFWUUkxMlBZWC84ZkFBUStB
ajVCcXdwckFBQUFBRWxGVGtTdVFtQ0MiLAorICAgICAgICAgICAgLy8gWzB4QkZCRiwgMHg3RjdG
LCAweEZGRkZdCisgICAgICAgICAgICAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dv
QUFBQU5TVWhFVWdBQUFBRUFBQUFCRUFJQUFBREE1NCtkQUFBQUQwbEVRVlFJMTJQWXY3Kysvdjkv
QUE2eUJIdnRiZ0JOQUFBQUFFbEZUa1N1UW1DQyIKKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0
YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBbMHgwMCwgMHgwMCwgMHgwMCwgMHhGRl0s
IGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4N0YsIDB4
RkYsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAgICAgICB7IGNvbG9yOiBbMHhCRiwg
MHg3RiwgMHhGRiwgMHhGRl0sIGZvcm1hdDogIlJHQkEiIH0sCisgICAgICAgICAgICB7IGNvbG9y
OiBbMHhCRiwgMHhCRiwgMHhCRiwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRSIgfSwKKyAgICAg
ICAgICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweEZGXSwgZm9ybWF0OiAiTFVNSU5B
TkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4MDAsIDB4MDAsIDB4
RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDogIlI4IiB9LAorICAgICAgICAgICAg
eyBjb2xvcjogWzB4QkYsIDB4N0YsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRyIsIGludGVybmFs
Zm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKworICAgIH0sCisgICAgIkNvbG9yIEFscGhhIjog
eworICAgICAgICBzcmM6IFsKKyAgICAgICAgICAgIC8vIFsweEJGLCAweDdGLCAweEZGLCAweDQw
XQorICAgICAgICAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBQUVBQUFBQkNBWUFBQUFmRmNTSkFBQUFEVWxFUVZRSTEyUFlYLy9mQVFBR3ZBSit4UE13
S1FBQUFBQkpSVTVFcmtKZ2dnPT0iLAorICAgICAgICAgICAgLy8gWzB4QkZCRiwgMHg3RjdGLCAw
eEZGRkYsIDB4NDA0MF0KKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3
MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJFQVlBQUFCUGhSaktBQUFBRVVsRVFWUUkxMlBZdjcr
Ky92OS9Cd2NBR0dnRSs4WU40WFVBQUFBQVNVVk9SSzVDWUlJPSIKKyAgICAgICAgXSwKKyAgICAg
ICAgZXhwZWN0YXRpb25zOiBbCisgICAgICAgICAgICB7IGNvbG9yOiBbMHgwMCwgMHgwMCwgMHgw
MCwgMHg0MF0sIGZvcm1hdDogIkFMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYs
IDB4N0YsIDB4RkYsIDB4RkZdLCBmb3JtYXQ6ICJSR0IiIH0sCisgICAgICAgICAgICB7IGNvbG9y
OiBbMHhCRiwgMHg3RiwgMHhGRiwgMHg0MF0sIGZvcm1hdDogIlJHQkEiIH0sCisgICAgICAgICAg
ICB7IGNvbG9yOiBbMHhCRiwgMHhCRiwgMHhCRiwgMHhGRl0sIGZvcm1hdDogIkxVTUlOQU5DRSIg
fSwKKyAgICAgICAgICAgIHsgY29sb3I6IFsweEJGLCAweEJGLCAweEJGLCAweDQwXSwgZm9ybWF0
OiAiTFVNSU5BTkNFX0FMUEhBIiB9LAorICAgICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4MDAs
IDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRUQiLCBpbnRlcm5hbGZvcm1hdDogIlI4IiB9LAorICAg
ICAgICAgICAgeyBjb2xvcjogWzB4QkYsIDB4N0YsIDB4MDAsIDB4RkZdLCBmb3JtYXQ6ICJSRyIs
IGludGVybmFsZm9ybWF0OiAiUkc4IiB9CisgICAgICAgIF0KKyAgICB9Cit9OworCitjb25zdCB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOwor
Cit3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOworZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8y
RCwgZ2wuY3JlYXRlVGV4dHVyZSgpKTsKKworKGFzeW5jICgpID0+IHsKKyAgICBmb3IgKGNvbnN0
IFt0eXBlLCB0ZXN0Q2FzZV0gb2YgT2JqZWN0LmVudHJpZXModGVzdERhdGEpKSB7CisgICAgICAg
IGlmICh0ZXN0Q2FzZS5zcmMubGVuZ3RoICE9IDIpIHRocm93IG5ldyBFcnJvcigndGVzdENhc2Uu
c3JjLmxlbmd0aCAhPSAyJyk7CisgICAgICAgIGxldCBpbWFnZXMgPSB0ZXN0Q2FzZS5zcmMubWFw
KHNyYyA9PiBsb2FkSW1hZ2Uoc3JjKSk7CisgICAgICAgIGltYWdlcyA9IGF3YWl0IFByb21pc2Uu
YWxsKGltYWdlcyk7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIiIpOworICAg
ICAgICBkZWJ1ZyhgUE5HIGltYWdlIHR5cGUgJHt0eXBlfSB3aXRoIFJHQkEgdmFsdWVzIG9mICR7
dGVzdENhc2UuZXhwZWN0YXRpb25zWzJdLmNvbG9yfWApOworICAgICAgICBsZXQgZm9ybWF0cyA9
IHRlc3RDYXNlLmV4cGVjdGF0aW9uczsKKyAgICAgICAgaWYgKCF3dHUuaXNXZWJHTDIoZ2wpKSB7
CisgICAgICAgICAgICBmb3JtYXRzID0gZm9ybWF0cy5maWx0ZXIoKGYpID0+ICFmLmludGVybmFs
Zm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZm9ybWF0cykgewor
ICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgZGVidWcoYEdMIGZvcm1hdDogJHtm
LmZvcm1hdH1gKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2soZGF0YSwgZGVzY3JpcHRp
b24pIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhgVXBsb2FkICR7ZGVzY3JpcHRpb259YCk7Cisg
ICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRCgKKyAgICAgICAgICAgICAgICAgICAgZ2wuVEVY
VFVSRV8yRCwKKyAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgZ2xb
Zi5pbnRlcm5hbGZvcm1hdCB8fCBmLmZvcm1hdF0sCisgICAgICAgICAgICAgICAgICAgIGdsW2Yu
Zm9ybWF0XSwKKyAgICAgICAgICAgICAgICAgICAgZ2wuVU5TSUdORURfQllURSwKKyAgICAgICAg
ICAgICAgICAgICAgZGF0YQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgICAgICAgICAgICAgIHd0dS5j
bGVhckFuZERyYXdVbml0UXVhZChnbCk7CisgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFz
KGdsLCBmLmNvbG9yLCB1bmRlZmluZWQsIDEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBjaGVjayhpbWFnZXNbMF0uaW1hZ2UsICI4LWJpdCBQTkcgZnJvbSBJbWFnZSIpOworICAgICAg
ICAgICAgY2hlY2soaW1hZ2VzWzFdLmltYWdlLCAiMTYtYml0IFBORyBmcm9tIEltYWdlIik7CisK
KyAgICAgICAgICAgIGlmIChpbWFnZXNbMF0uYml0bWFwKSB7CisgICAgICAgICAgICAgICAgY2hl
Y2soaW1hZ2VzWzBdLmJpdG1hcCwgIjgtYml0IFBORyBmcm9tIEltYWdlQml0bWFwIik7CisgICAg
ICAgICAgICAgICAgY2hlY2soaW1hZ2VzWzFdLmJpdG1hcCwgIjE2LWJpdCBQTkcgZnJvbSBJbWFn
ZUJpdG1hcCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGZpbmlzaFRl
c3QoKTsKK30pKCk7CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWRJbWFnZShzcmMpIHsKKyAgICBjb25z
dCBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWcuc3JjID0gc3JjOworICAgIGF3YWl0IGltZy5k
ZWNvZGUoKTsKKyAgICBjb25zdCByZXQgPSB7IGltYWdlOiBpbWcgfTsKKyAgICBpZiAoc2VsZi5j
cmVhdGVJbWFnZUJpdG1hcCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0LmJpdG1h
cCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGltZywgeworICAgICAgICAgICAgICAgIHByZW11
bHRpcGx5QWxwaGE6ICJub25lIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGNhdGNoIHt9
CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0
dXJlcy9taXNjL3ZpZGVvLXJvdGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3ZpZGVvLXJvdGF0
aW9uLmh0bWwKaW5kZXggYjZkMjhmMTVkYzBiZjNiNWYwM2M0MjhiNDRmM2QwY2M1OTU3NjZjOC4u
YjMzNmVkNmVkZWYxOGI0YjdlM2YyMGI4ZDRiYzUzMTE2NDZiOWNjYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdGV4
dHVyZXMvbWlzYy92aWRlby1yb3RhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdmlkZW8t
cm90YXRpb24uaHRtbApAQCAtMSw1ICsxLDUgQEAKIDwhLS0KLUNvcHlyaWdodCAoYykgMjAyMCBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgog
LS0+CkBAIC0yOSw3ICsyOSw5IEBAIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogICAg
ICAgICBsZXQgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7CiAgICAgICAgIGxldCBw
cm9ncmFtID0gdGl1LnNldHVwVGV4dHVyZWRRdWFkKGdsLCBnbC5SR0JBKTsKICAgICAgICAgY29u
c3QgcmVzb3VyY2VQYXRoID0gIi4uLy4uLy4uL3Jlc291cmNlcy8iOwotICAgICAgICBjb25zdCB0
b2xlcmFuY2UgPSAxMDsKKyAgICAgICAgY29uc3QgbXA0VG9sZXJhbmNlID0gMTA7CisgICAgICAg
IC8vIFNpZ25pZmljYW50bHkgaGlnaGVyIHRvbGVyYW5jZSBuZWVkZWQgZm9yIFZQOSB0ZXN0cy4g
aHR0cDovL2NyYnVnLmNvbS8xMjE5MDE1IC4KKyAgICAgICAgY29uc3QgdnA5VG9sZXJhbmNlID0g
NDU7CiAKICAgICAgICAgY29uc3QgZXhwZWN0ZWRDb2xvcnMgPSB7CiAgICAgICAgICAgICB0b3A6
IHsgbG9jYXRpb246IFswLjUsIDAuMjVdLCBjb2xvcjogWzI1NSwgMCwgMF0gfSwKQEAgLTQzLDcg
KzQ1LDcgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAgICAgICAgICAgICBidWZm
ZXJlZExvZ1RvQ29uc29sZShzdHIpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gY2hl
Y2tQaXhlbHMoKSB7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrUGl4ZWxzKHRvbGVyYW5jZSkgewog
ICAgICAgICAgICAgZm9yIChsZXQgcGxhY2UgaW4gZXhwZWN0ZWRDb2xvcnMpIHsKICAgICAgICAg
ICAgICAgICBsZXQgY29sb3IgPSBleHBlY3RlZENvbG9yc1twbGFjZV07CiAgICAgICAgICAgICAg
ICAgbGV0IGxvYyA9IGNvbG9yLmxvY2F0aW9uOwpAQCAtNjQsNyArNjYsNyBAQCBmb3VuZCBpbiB0
aGUgTElDRU5TRS50eHQgZmlsZS4KICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKLSAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gdGVzdFZpZGVvRWxlbWVudChmaWxlbmFtZSkgeworICAgICAgICBh
c3luYyBmdW5jdGlvbiB0ZXN0VmlkZW9FbGVtZW50KGZpbGVuYW1lLCBpc1ZQOSkgewogICAgICAg
ICAgICAgY29uc3QgdmlkZW8gPSBhd2FpdCBsb2FkVmlkZW9FbGVtZW50KGZpbGVuYW1lKTsKIAog
ICAgICAgICAgICAgb3V0cHV0KCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CkBAIC03Myw4MCArNzUsODcgQEAgZm91bmQg
aW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAgICAgICAgICAgICBvdXRwdXQoIiAgVGVzdGluZyB0
ZXhJbWFnZTJEIik7CiAgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVvKTsKICAgICAgICAgICAg
IHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOwotICAgICAgICAg
ICAgY2hlY2tQaXhlbHMoKTsKKyAgICAgICAgICAgIGNvbnN0IGxvY2FsVG9sZXJhbmNlID0gaXNW
UDkgPyB2cDlUb2xlcmFuY2UgOiBtcDRUb2xlcmFuY2U7CisgICAgICAgICAgICBjaGVja1BpeGVs
cyhsb2NhbFRvbGVyYW5jZSk7CiAKICAgICAgICAgICAgIG91dHB1dCgiICBUZXN0aW5nIHRleFN1
YkltYWdlMkQiKTsKICAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2wuUkdCQSwgdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHQsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwogICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7
CiAgICAgICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVd
KTsKLSAgICAgICAgICAgIGNoZWNrUGl4ZWxzKCk7CisgICAgICAgICAgICBjaGVja1BpeGVscyhs
b2NhbFRvbGVyYW5jZSk7CiAgICAgICAgIH0KIAogICAgICAgICBhc3luYyBmdW5jdGlvbiBydW4o
KSB7Ci0gICAgICAgICAgICBjb25zdCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7Ci0gICAgICAgICAgICBpZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgidmlkZW8uY2FuUGxheVR5cGUgcmVxdWlyZWQgbWV0aG9kIG1pc3Np
bmciKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGxldCBzdXBwb3J0c19oMjY0ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vbXA0OyBj
b2RlY3M9ImF2YzEuNDJFMDFFIicpLnJlcGxhY2UoL25vLywgJycpOwotICAgICAgICAgICAgbGV0
IHN1cHBvcnRzX3ZwOSA9ICEhdmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL21wNDsgY29kZWNzPSJ2
cDA5LjAwLjEwLjA4IicpLnJlcGxhY2UoL25vLywgJycpOwotICAgICAgICAgICAgaWYgKCFzdXBw
b3J0c19oMjY0ICYmICFzdXBwb3J0c192cDkpIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJObyBzdXBwb3J0ZWQgdmlkZW8gdHlwZXMuIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OwotICAgICAgICAgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0aGUgZGVmYXVsdCB0ZXh0dXJl
IHVuaXQgMAotICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsK
LSAgICAgICAgICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKLSAgICAgICAgICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5O
RUFSRVNUKTsKLSAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICAgICAgICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0Up
OwotICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0KLSAgICAgICAgICAgIC8vIFRoZXNlIGZpbGVz
IHdlcmUgY3JlYXRlZCBieSBjb252ZXJ0aW5nIGV4aWYtb3JpZW50YXRpb24tdGVzdC0xLW5vcm1h
bC5qcGcgdG8gbXA0Ci0gICAgICAgICAgICAvLyBmaWxlcywgcm90YXRpbmcgdGhlbSB1c2luZyB0
aGUgdHJhbnNwb3NlIGZpbHRlciwgYW5kIGFkZGluZyByb3RhdGUgbWV0YWRhdGEsIGFsbAotICAg
ICAgICAgICAgLy8gdXNpbmcgdGhlIGZmbXBlZyBjb21tYW5kLWxpbmUgdG9vbC4KLSAgICAgICAg
ICAgIC8vCi0gICAgICAgICAgICAvLyBGcm9tIHNkay90ZXN0cy9yZXNvdXJjZXMvIGRpcmVjdG9y
eToKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAwOgotICAgICAgICAgICAgLy8gZmZt
cGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0LTEtbm9ybWFsLmpwZyAt
cGl4X2ZtdCB5dXY0MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkg
dGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAgdmlkZW8tcm90YXRpb24t
MC5tcDQKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50
YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAgLXZjb2RlYyBs
aWJ2cHgtdnA5IC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5t
cDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTAgdmlkZW8tcm90YXRpb24tMC52cDku
bXA0Ci0gICAgICAgICAgICAvLyA5MDoKLSAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90
YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVzdC0xLW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9
MiIgLXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1wNCAmJgotICAgICAgICAgICAgLy8gZmZtcGVn
IC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0yNzAgdmlkZW8tcm90
YXRpb24tOTAubXA0Ci0gICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlm
LW9yaWVudGF0aW9uLXRlc3QtMS1ub3JtYWwuanBnIC12ZiAidHJhbnNwb3NlPTIiIC1waXhfZm10
IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNCAmJgotICAgICAg
ICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0
ZT0yNzAgdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNAotICAgICAgICAgICAgLy8gMTgwOgotICAg
ICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi10ZXN0
LTEtbm9ybWFsLmpwZyAtdmYgInRyYW5zcG9zZT0yLHRyYW5zcG9zZT0yIiAtcGl4X2ZtdCB5dXY0
MjBwIC15IHRlbXAubXA0ICYmCi0gICAgICAgICAgICAvLyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMg
Y29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTE4MCB2aWRlby1yb3RhdGlvbi0xODAubXA0Ci0g
ICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLXRl
c3QtMS1ub3JtYWwuanBnIC12ZiAidHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIiIC1waXhfZm10IHl1
djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNCAmJgotICAgICAgICAg
ICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0x
ODAgdmlkZW8tcm90YXRpb24tMTgwLnZwOS5tcDQKLSAgICAgICAgICAgIC8vIDI3MDoKLSAgICAg
ICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tdGVzdC0x
LW5vcm1hbC5qcGcgLXZmICJ0cmFuc3Bvc2U9MSIgLXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1w
NCAmJgotICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRh
OnM6djowIHJvdGF0ZT05MCB2aWRlby1yb3RhdGlvbi0yNzAubXA0Ci0gICAgICAgICAgICAvLyBm
Zm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLXRlc3QtMS1ub3JtYWwuanBn
IC12ZiAidHJhbnNwb3NlPTEiIC1waXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4
LXZwOSAteSB0ZW1wLm1wNCAmJgotICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1j
IGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT05MCB2aWRlby1yb3RhdGlvbi0yNzAudnA5Lm1w
NAotICAgICAgICAgICAgY29uc3QgZmlsZW5hbWVzID0gWwotICAgICAgICAgICAgICAgICJ2aWRl
by1yb3RhdGlvbi0wIiwKLSAgICAgICAgICAgICAgICAidmlkZW8tcm90YXRpb24tOTAiLAotICAg
ICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlvbi0xODAiLAotICAgICAgICAgICAgICAgICJ2aWRl
by1yb3RhdGlvbi0yNzAiLAotICAgICAgICAgICAgXTsKLQotICAgICAgICAgICAgaWYgKHN1cHBv
cnRzX2gyNjQpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMpCi0g
ICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RWaWRlb0VsZW1lbnQoZm4gKyAiLm1wNCIpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoc3VwcG9ydHNfdnA5KSB7Ci0gICAgICAg
ICAgICAgICAgZm9yIChsZXQgZm4gb2YgZmlsZW5hbWVzKQotICAgICAgICAgICAgICAgICAgICBh
d2FpdCB0ZXN0VmlkZW9FbGVtZW50KGZuICsgIi52cDkubXA0Iik7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhd2FpdCAoYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
InZpZGVvLmNhblBsYXlUeXBlIHJlcXVpcmVkIG1ldGhvZCBtaXNzaW5nIik7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBs
ZXQgc3VwcG9ydHNfaDI2NCA9ICEhdmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL21wNDsgY29kZWNz
PSJhdmMxLjQyRTAxRSInKS5yZXBsYWNlKC9uby8sICcnKTsKKyAgICAgICAgICAgICAgICBsZXQg
c3VwcG9ydHNfdnA5ID0gISF2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vbXA0OyBjb2RlY3M9InZw
MDkuMDAuMTAuMDgiJykucmVwbGFjZSgvbm8vLCAnJyk7CisgICAgICAgICAgICAgICAgaWYgKCFz
dXBwb3J0c19oMjY0ICYmICFzdXBwb3J0c192cDkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gc3VwcG9ydGVkIHZpZGVvIHR5cGVzLiIpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IHRleCA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJl
IHRvIHRoZSBkZWZhdWx0IHRleHR1cmUgdW5pdCAwCisgICAgICAgICAgICAgICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICAgICAgICAgICAgICAvLyBTZXQgdXAgdGV4
dHVyZSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgICAgICAg
ICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVS
LCBnbC5ORUFSRVNUKTsKKyAgICAgICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICAgICAgICAg
ICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBn
bC5DTEFNUF9UT19FREdFKTsKKworICAgICAgICAgICAgICAgIC8vIFRoZXNlIGZpbGVzIHdlcmUg
Y3JlYXRlZCBieSBjb252ZXJ0aW5nIGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgdG8gbXA0Cisg
ICAgICAgICAgICAgICAgLy8gZmlsZXMsIHJvdGF0aW5nIHRoZW0gdXNpbmcgdGhlIHRyYW5zcG9z
ZSBmaWx0ZXIsIGFuZCBhZGRpbmcgcm90YXRlIG1ldGFkYXRhLCBhbGwKKyAgICAgICAgICAgICAg
ICAvLyB1c2luZyB0aGUgZmZtcGVnIGNvbW1hbmQtbGluZSB0b29sLgorICAgICAgICAgICAgICAg
IC8vCisgICAgICAgICAgICAgICAgLy8gRnJvbSBzZGsvdGVzdHMvcmVzb3VyY2VzLyBkaXJlY3Rv
cnk6CisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyAwOgorICAgICAgICAg
ICAgICAgIC8vIGZmbXBlZyAtbm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2lu
YWxzXGV4aWYtb3JpZW50YXRpb24tdGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5NiAtcGl4X2ZtdCB5
dXY0MjBwIC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0
IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0wIHZpZGVvLXJvdGF0aW9uLTAubXA0Cisg
ICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlv
bi1vcmlnaW5hbHNcZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2IC1w
aXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNAorICAg
ICAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6
MCByb3RhdGU9MCB2aWRlby1yb3RhdGlvbi0wLnZwOS5tcDQKKyAgICAgICAgICAgICAgICAvLwor
ICAgICAgICAgICAgICAgIC8vIDkwOgorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtbm9hdXRv
cm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRpb24tdGVz
dC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9MiAtcGl4X2ZtdCB5dXY0MjBwIC15IHRl
bXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVnIC1pIHRlbXAubXA0IC1jIGNvcHkgLW1l
dGFkYXRhOnM6djowIHJvdGF0ZT0yNzAgdmlkZW8tcm90YXRpb24tOTAubXA0CisgICAgICAgICAg
ICAgICAgLy8gZmZtcGVnIC1ub2F1dG9yb3RhdGUgLWkgZXhpZi1vcmllbnRhdGlvbi1vcmlnaW5h
bHNcZXhpZi1vcmllbnRhdGlvbi10ZXN0LnBzZCAtdmYgc2NhbGU9MTI4eDk2LHRyYW5zcG9zZT0y
IC1waXhfZm10IHl1djQyMHAgLWNyZiAwIC12Y29kZWMgbGlidnB4LXZwOSAteSB0ZW1wLm1wNAor
ICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpz
OnY6MCByb3RhdGU9MjcwIHZpZGVvLXJvdGF0aW9uLTkwLnZwOS5tcDQKKyAgICAgICAgICAgICAg
ICAvLworICAgICAgICAgICAgICAgIC8vIDE4MDoKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcg
LW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9yaWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0
aW9uLXRlc3QucHNkIC12ZiBzY2FsZT0xMjh4OTYsdHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIgLXBp
eF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1wNAorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAtaSB0
ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3RhdGU9MTgwIHZpZGVvLXJvdGF0aW9u
LTE4MC5tcDQKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlm
LW9yaWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBzY2Fs
ZT0xMjh4OTYsdHJhbnNwb3NlPTIsdHJhbnNwb3NlPTIgLXBpeF9mbXQgeXV2NDIwcCAtY3JmIDAg
LXZjb2RlYyBsaWJ2cHgtdnA5IC15IHRlbXAubXA0CisgICAgICAgICAgICAgICAgLy8gZmZtcGVn
IC1pIHRlbXAubXA0IC1jIGNvcHkgLW1ldGFkYXRhOnM6djowIHJvdGF0ZT0xODAgdmlkZW8tcm90
YXRpb24tMTgwLnZwOS5tcDQKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8v
IDI3MDoKKyAgICAgICAgICAgICAgICAvLyBmZm1wZWcgLW5vYXV0b3JvdGF0ZSAtaSBleGlmLW9y
aWVudGF0aW9uLW9yaWdpbmFsc1xleGlmLW9yaWVudGF0aW9uLXRlc3QucHNkIC12ZiBzY2FsZT0x
Mjh4OTYsdHJhbnNwb3NlPTEgLXBpeF9mbXQgeXV2NDIwcCAteSB0ZW1wLm1wNAorICAgICAgICAg
ICAgICAgIC8vIGZmbXBlZyAtaSB0ZW1wLm1wNCAtYyBjb3B5IC1tZXRhZGF0YTpzOnY6MCByb3Rh
dGU9OTAgdmlkZW8tcm90YXRpb24tMjcwLm1wNAorICAgICAgICAgICAgICAgIC8vIGZmbXBlZyAt
bm9hdXRvcm90YXRlIC1pIGV4aWYtb3JpZW50YXRpb24tb3JpZ2luYWxzXGV4aWYtb3JpZW50YXRp
b24tdGVzdC5wc2QgLXZmIHNjYWxlPTEyOHg5Nix0cmFuc3Bvc2U9MSAtcGl4X2ZtdCB5dXY0MjBw
IC1jcmYgMCAtdmNvZGVjIGxpYnZweC12cDkgLXkgdGVtcC5tcDQKKyAgICAgICAgICAgICAgICAv
LyBmZm1wZWcgLWkgdGVtcC5tcDQgLWMgY29weSAtbWV0YWRhdGE6czp2OjAgcm90YXRlPTkwIHZp
ZGVvLXJvdGF0aW9uLTI3MC52cDkubXA0CisKKyAgICAgICAgICAgICAgICBjb25zdCBmaWxlbmFt
ZXMgPSBbCisgICAgICAgICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlvbi0wIiwKKyAgICAgICAg
ICAgICAgICAgICAgInZpZGVvLXJvdGF0aW9uLTkwIiwKKyAgICAgICAgICAgICAgICAgICAgInZp
ZGVvLXJvdGF0aW9uLTE4MCIsCisgICAgICAgICAgICAgICAgICAgICJ2aWRlby1yb3RhdGlvbi0y
NzAiLAorICAgICAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNf
aDI2NCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMpCisg
ICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0VmlkZW9FbGVtZW50KGZuICsgIi5tcDQi
LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHN1cHBv
cnRzX3ZwOSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmbiBvZiBmaWxlbmFtZXMp
CisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0VmlkZW9FbGVtZW50KGZuICsgIi52
cDkubXA0IiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSkoKTsKIAog
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICB9CkBAIC0xNTUsNCArMTY0LDQgQEAg
Zm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUuCiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiAK
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvY29udGV4dC9tZXRob2RzLTIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sCmluZGV4
IDUwYTViODBkNzkxMmJjMjZhMmQ0ZmE3ZWY0ZjY4ZDA5YTc0NDY1ZDIuLmEzODkzMjlhYTMzNjYz
ZGUyYjVjMGNlODZlMGUzOWRhMTIzOWFlNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMt
Mi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlMi9jb250ZXh0L21ldGhvZHMtMi5odG1sCkBAIC0xMSw2ICsxMSw3IEBAIGZv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvdGVzdHMv
Y29udGV4dC1tZXRob2RzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgpAQCAtMjAsNyArMjEsNyBAQCBmb3VuZCBpbiB0aGUgTElDRU5T
RS50eHQgZmlsZS4KICJ1c2Ugc3RyaWN0IjsKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJl
cyB0aGF0IHRoZSBXZWJHTCBjb250ZXh0IGhhcyBhbGwgdGhlIG1ldGhvZHMgaW4gdGhlIHNwZWNp
ZmljYXRpb24uIik7CiAKLXZhciBtZXRob2RzID0gWworY29uc3QgbWV0aG9kcyA9IFsKICAgImdl
dENvbnRleHRBdHRyaWJ1dGVzIiwKICAgImFjdGl2ZVRleHR1cmUiLAogICAiYXR0YWNoU2hhZGVy
IiwKQEAgLTI0OSw1NSArMjUwLDE0IEBAIHZhciBtZXRob2RzID0gWwogICAiYmluZFZlcnRleEFy
cmF5IiwKIF07CiAKLS8vIFByb3BlcnRpZXMgdG8gYmUgaWdub3JlZCBiZWNhdXNlIHRoZXkgd2Vy
ZSBhZGRlZCBpbiB2ZXJzaW9ucyBvZiB0aGUKLS8vIHNwZWMgdGhhdCBhcmUgYmFja3dhcmQtY29t
cGF0aWJsZSB3aXRoIHRoaXMgdmVyc2lvbgotdmFyIGlnbm9yZWRNZXRob2RzID0gWwotICAvLyBU
aGVyZSBpcyBubyBvZmZpY2lhbCBzcGVjIGZvciB0aGUgY29tbWl0IEFQSSB5ZXQsIHRoZSBwcm9w
b3NhbCBsaW5rIGlzOgotICAvLyBodHRwczovL3dpa2kud2hhdHdnLm9yZy93aWtpL09mZnNjcmVl
bkNhbnZhcwotICAiY29tbWl0IgotXTsKLQotZnVuY3Rpb24gYXNzZXJ0RnVuY3Rpb24odiwgZikg
ewotICB0cnkgewotICAgIGlmICh0eXBlb2YgdltmXSAhPSAiZnVuY3Rpb24iKSB7Ci0gICAgICB0
ZXN0RmFpbGVkKCJQcm9wZXJ0eSBlaXRoZXIgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGEgZnVu
Y3Rpb246ICIgKyBmKTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2UgewotICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICB9IGNhdGNoKGUpIHsKLSAgICB0ZXN0RmFpbGVkKCJUcnlp
bmcgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eSAnIiArIGYgKyAiJyB0aHJldyBhbiBlcnJvcjogIitl
LnRvU3RyaW5nKCkpOwotICB9Ci19Ci0KIGRlYnVnKCIiKTsKIGRlYnVnKCJDYW52YXMuZ2V0Q29u
dGV4dCIpOwogCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgY2FudmFzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwotdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4
dChjYW52YXMsIG51bGwsIDIpOwotdmFyIHBhc3NlZCA9IHRydWU7Ci1mb3IgKHZhciBpPTA7IGk8
bWV0aG9kcy5sZW5ndGg7IGkrKykgewotICB2YXIgciA9IGFzc2VydEZ1bmN0aW9uKGdsLCBtZXRo
b2RzW2ldKTsKLSAgcGFzc2VkID0gcGFzc2VkICYmIHI7Ci19Ci1pZiAocGFzc2VkKSB7Ci0gIHRl
c3RQYXNzZWQoIkFsbCBXZWJHTCBtZXRob2RzIGZvdW5kLiIpOwotfQotdmFyIGV4dGVuZGVkID0g
ZmFsc2U7Ci1mb3IgKHZhciBpIGluIGdsKSB7Ci0gIGlmICh0eXBlb2YgZ2xbaV0gPT0gImZ1bmN0
aW9uIiAmJiBtZXRob2RzLmluZGV4T2YoaSkgPT0gLTEgJiYgaWdub3JlZE1ldGhvZHMuaW5kZXhP
ZihpKSA9PSAtMSkgewotICAgIGlmICghZXh0ZW5kZWQpIHsKLSAgICAgIGV4dGVuZGVkID0gdHJ1
ZTsKLSAgICAgIHRlc3RGYWlsZWQoIkFsc28gZm91bmQgdGhlIGZvbGxvd2luZyBleHRyYSBtZXRo
b2RzOiIpOwotICAgIH0KLSAgICB0ZXN0RmFpbGVkKGkpOwotICB9Ci19Citjb25zdCB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXMiKTsKK2NvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIG51bGwsIDIp
OwogCi1pZiAoIWV4dGVuZGVkKSB7Ci0gIHRlc3RQYXNzZWQoIk5vIGV4dHJhIG1ldGhvZHMgZm91
bmQgb24gV2ViR0wgY29udGV4dC4iKTsKLX0KK3Rlc3RDb250ZXh0TWV0aG9kcyhnbCwgbWV0aG9k
cyk7CiAKIGRlYnVnKCIiKTsKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lv
bnMvZXh0LWNvbG9yLWJ1ZmZlci1mbG9hdC5odG1sCmluZGV4IGUyZWViZDExM2E5MWI4Yzg4YjE2
NmI2MzljODIxZWY5MmVmNWRmNDAuLmI1N2E2Y2ExMGQ2YmZiMzY5NGU4ZmIxZWJlNjIzMTA0MjYz
MDJhNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC1jb2xvci1idWZmZXItZmxvYXQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZTIvZXh0ZW5zaW9ucy9leHQtY29sb3ItYnVmZmVyLWZsb2F0Lmh0bWwKQEAgLTI4NCw3
ICsyODQsNyBAQCBmdW5jdGlvbiBydW5JbnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpCiAgICAgZGVi
dWcoInRlc3RpbmcgdGhlIGludGVybmFsIGZvcm1hdCBxdWVyeSIpOwogCiAgICAgdmFyIG1heFNh
bXBsZXMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1NBTVBMRVMpOwotICAgIHZhciBmb3JtYXRz
ID0gbmV3IEFycmF5KGdsLlJHQkExNkYsIGdsLlIzMkYsIGdsLlJHMzJGLCBnbC5SR0JBMzJGLCBn
bC5SMTZGLCBnbC5SRzE2RiwgZ2wuUjExRl9HMTFGX0IxMEYpOworICAgIGNvbnN0IGZvcm1hdHMg
PSBbZ2wuUkdCQTE2RiwgZ2wuUjMyRiwgZ2wuUkczMkYsIGdsLlJHQkEzMkYsIGdsLlIxNkYsIGds
LlJHMTZGLCBnbC5SMTFGX0cxMUZfQjEwRl07CiAgICAgdmFyIGZpcnN0TXVsdGlPbmx5Rm9ybWF0
ID0gNDsKICAgICBmb3IgKHZhciBmbXQgPSAwOyBmbXQgPCBmb3JtYXRzLmxlbmd0aDsgKytmbXQp
IHsKICAgICAgICAgdmFyIHNhbXBsZXMgPSBnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihn
bC5SRU5ERVJCVUZGRVIsIGZvcm1hdHNbZm10XSwgZ2wuU0FNUExFUyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
ZXh0ZW5zaW9ucy9leHQtdGV4dHVyZS1ub3JtMTYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL2V4dC10ZXh0
dXJlLW5vcm0xNi5odG1sCmluZGV4IDFkOWZmNjQ1ZWJlZDRjY2ZmYmJhOWE5MGE1Mzg3MDI0ZmRh
YjAwODIuLjMxZWQ4ZjM3YWJjMGQ4OTg5NjE5MTZhNWRlNDE1YTYyNThlNDBlN2IgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9leHRlbnNpb25zL2V4dC10ZXh0dXJlLW5vcm0xNi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25z
L2V4dC10ZXh0dXJlLW5vcm0xNi5odG1sCkBAIC0xNTMsNiArMTUzLDIzIEBAIGZ1bmN0aW9uIHRl
c3RTbm9ybTE2VW5yZW5kZXJhYmxlKGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lYnVmZmVyIHNob3VsZCBub3QgYmUg
Y29tcGxldGUgd2l0aCBTTk9STTE2IHRleHR1cmUgYXR0YWNoZWQiKTsKIH0KIAorZnVuY3Rpb24g
cnVuSW50ZXJuYWxGb3JtYXRRdWVyeVRlc3QoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygidGVzdGluZyB0aGUgaW50ZXJuYWwgZm9ybWF0IHF1ZXJ5Iik7CisKKyAgICB2YXIgbWF4U2Ft
cGxlcyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfU0FNUExFUyk7CisgICAgY29uc3QgZm9ybWF0
cyA9IFtleHQuUjE2X0VYVCwgZXh0LlJHMTZfRVhULCBleHQuUkdCQTE2X0VYVF07CisgICAgZm9y
IChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykgeworICAgICAgICB2YXIgc2FtcGxlcyA9IGdsLmdl
dEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZm9ybWF0LCBnbC5TQU1Q
TEVTKTsKKyAgICAgICAgaWYgKHNhbXBsZXMgPT0gbnVsbCB8fCBzYW1wbGVzLmxlbmd0aCA9PSAw
IHx8IHNhbXBsZXNbMF0gPCBtYXhTYW1wbGVzKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJ0
aGUgbWF4aW11bSB2YWx1ZSBpbiBTQU1QTEVTIHNob3VsZCBiZSBhdCBsZWFzdCAiICsgbWF4U2Ft
cGxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgdGVzdFBh
c3NlZCgiSW50ZXJuYWwgZm9ybWF0IHF1ZXJ5IHN1Y2NlZWRlZCIpOworfQorCiBmdW5jdGlvbiBy
dW5UZXN0RXh0ZW5zaW9uKCkgewogICB0ZXh0dXJlcyA9IFtnbC5jcmVhdGVUZXh0dXJlKCksIGds
LmNyZWF0ZVRleHR1cmUoKV07CiAgIGZib3MgPSBbZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSwgZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKV07CkBAIC0yMDcsNiArMjI0LDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB3dHUucnVuRXh0ZW5zaW9uU3VwcG9ydGVkVGVzdChnbCwgIkVYVF90ZXh0dXJl
X25vcm0xNiIsIGV4dCAhPT0gbnVsbCk7CiAKICAgICBpZiAoZXh0ICE9PSBudWxsKSB7CisgICAg
ICBydW5JbnRlcm5hbEZvcm1hdFF1ZXJ5VGVzdCgpOwogICAgICAgcnVuVGVzdEV4dGVuc2lvbigp
OwogICAgIH0gZWxzZSB7CiAgICAgICB0ZXN0UGFzc2VkKCJObyBFWFRfdGV4dHVyZV9ub3JtMTYg
c3VwcG9ydCAtLSB0aGlzIGlzIGxlZ2FsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9vZXMt
ZHJhdy1idWZmZXJzLWluZGV4ZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMt
aW5kZXhlZC5odG1sCmluZGV4IDNiZTc3MTdiYzQxNGQ1NTcyYmM5YjM3YTk5YjgzMDFlYTkxMjVk
ZWUuLmUzNWNjMjY5YWEyMGU1NTc5MDA3YTBiMjgwNTc1NzUzN2U2MDIwNzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi9leHRlbnNpb25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNp
b25zL29lcy1kcmF3LWJ1ZmZlcnMtaW5kZXhlZC5odG1sCkBAIC03OSw2ICs3OSw4IEBAIGZ1bmN0
aW9uIGVuYWJsZURpc2FibGVUZXN0KCkgewogCiAgICAgLy8gSW52YWxpZCBpbnB1dAogICAgIGV4
dC5lbmFibGVpT0VTKGdsLkRFUFRIX1RFU1QsIDApOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfRU5VTSwgJ3RhcmdldCBjb3VsZCBvbmx5IGJlIGdsLkJMRU5EJyk7CisK
ICAgICBleHQuZGlzYWJsZWlPRVMoZ2wuREVQVEhfVEVTVCwgMCk7CiAgICAgd3R1LmdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLCAndGFyZ2V0IGNvdWxkIG9ubHkgYmUgZ2wuQkxF
TkQnKTsKIApAQCAtMTY0LDcgKzE2NiwxMCBAQCBmdW5jdGlvbiBjb25zdGFudEFscGhhQmxlbmRD
b2xvclZhbGlkYXRpb25UZXN0KCkgewogfQogCiBmdW5jdGlvbiBpbmRleGVkQmxlbmRDb2xvclRl
c3QoKSB7CisgICAgZGVidWcoJycpOwogICAgIGRlYnVnKCJUZXN0aW5nIGJsZW5kRXF1YXRpb25p
T0VTIGFuZCBibGVuZEZ1bmNpT0VTIik7CisgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgMCwg
J3RvcCBvZiBpbmRleGVkQmxlbmRDb2xvclRlc3QnKTsKKwogICAgIGdsLmNsZWFyQ29sb3IoMCwg
MCwgMSwgMSk7CiAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAKQEAgLTIxMSwy
MiArMjE2LDMyIEBAIGZ1bmN0aW9uIGluZGV4ZWRCbGVuZENvbG9yVGVzdCgpIHsKICAgICBnbC5y
ZWFkQnVmZmVyKGdsLkNPTE9SX0FUVEFDSE1FTlQxKTsKICAgICB3dHUuY2hlY2tDYW52YXNSZWN0
KGdsLCAwLCAwLCAxLCAxLCBbMCwgMCwgMjU1LCAwXSk7CiAKKyAgICBkZWJ1ZygnJyk7CisgICAg
ZGVidWcoYFRlc3RpbmcgdGhhdCBuZXcgdG9rZW5zIGFyZW4ndCBvbiB0aGUgZXh0ZW5zaW9uLmAp
OworICAgIHNob3VsZEJlKCdleHQuQkxFTkRfRVFVQVRJT05fUkdCJywgJ3VuZGVmaW5lZCcpOwor
ICAgIHNob3VsZEJlKCdleHQuQkxFTkRfRVFVQVRJT05fQUxQSEEnLCAndW5kZWZpbmVkJyk7Cisg
ICAgc2hvdWxkQmUoJ2V4dC5CTEVORF9TUkNfUkdCJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3Vs
ZEJlKCdleHQuQkxFTkRfU1JDX0FMUEhBJywgJ3VuZGVmaW5lZCcpOworICAgIHNob3VsZEJlKCdl
eHQuQkxFTkRfRFNUX1JHQicsICd1bmRlZmluZWQnKTsKKyAgICBzaG91bGRCZSgnZXh0LkJMRU5E
X0RTVF9BTFBIQScsICd1bmRlZmluZWQnKTsKKyAgICBzaG91bGRCZSgnZXh0LkNPTE9SX1dSSVRF
TUFTSycsICd1bmRlZmluZWQnKTsKKwogICAgIGRlYnVnKCJUZXN0aW5nIG5ldyB0b2tlbnMgZm9y
IGdldEluZGV4ZWRQYXJhbWV0ZXJUZXN0Iik7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX1JHQiwgMCknLCAnZ2wuRlVOQ19BREQnKTsKLSAg
ICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fQUxQ
SEEsIDApJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX1JHQiwgMCknLCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxk
QmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9SR0IsIDApJywgJ2dsLk9O
RScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNf
QUxQSEEsIDApJywgJ2dsLlpFUk8nKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFt
ZXRlcihleHQuQkxFTkRfRFNUX0FMUEhBLCAwKScsICdnbC5aRVJPJyk7Ci0gICAgc2hvdWxkQmUo
J2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX1JHQiwgMSknLCAnZ2wu
RlVOQ19BREQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxF
TkRfRVFVQVRJT05fQUxQSEEsIDEpJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX1JHQiwgMSknLCAnZ2wuU1JD
X0FMUEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5E
X0RTVF9SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19TUkNfQUxQSEEnKTsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfU1JDX0FMUEhBLCAxKScsICdnbC5aRVJP
Jyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9B
TFBIQSwgMSknLCAnZ2wuWkVSTycpOwotCi0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJh
bWV0ZXIoZXh0LkNPTE9SX1dSSVRFTUFTSywgMCknLCAnW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlXScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5DT0xPUl9X
UklURU1BU0ssIDEpJywgJ1t0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXScpOworICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX1JHQiwgMCknLCAnZ2wu
RlVOQ19BREQnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVO
RF9FUVVBVElPTl9BTFBIQSwgMCknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOworICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19SR0IsIDApJywgJ2dsLk9ORScp
OworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0RTVF9SR0Is
IDApJywgJ2dsLk9ORScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGds
LkJMRU5EX1NSQ19BTFBIQSwgMCknLCAnZ2wuWkVSTycpOworICAgIHNob3VsZEJlKCdnbC5nZXRJ
bmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0RTVF9BTFBIQSwgMCknLCAnZ2wuWkVSTycpOworICAg
IHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0VRVUFUSU9OX1JHQiwg
MSknLCAnZ2wuRlVOQ19BREQnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRl
cihnbC5CTEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19TVUJUUkFDVCcpOworICAg
IHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX1NSQ19SR0IsIDEpJywg
J2dsLlNSQ19BTFBIQScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGds
LkJMRU5EX0RTVF9SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19TUkNfQUxQSEEnKTsKKyAgICBzaG91
bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfQUxQSEEsIDEpJywgJ2ds
LlpFUk8nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9E
U1RfQUxQSEEsIDEpJywgJ2dsLlpFUk8nKTsKKworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVk
UGFyYW1ldGVyKGdsLkNPTE9SX1dSSVRFTUFTSywgMCknLCAnW2ZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkNPTE9S
X1dSSVRFTUFTSywgMSknLCAnW3RydWUsIHRydWUsIHRydWUsIHRydWVdJyk7CiAKICAgICBkZWJ1
ZygiVGVzdGluZyBub24taW5kZXhlZCBnZXRQYXJhbXRlciBnZXQgc3RhdGUgZnJvbSBkcmF3IGJ1
ZmZlciAwIik7CiAgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFtZXRlcihnbC5CTEVORF9TUkNfUkdC
KScsICdnbC5PTkUnKTsKQEAgLTI1MSwyNiArMjY2LDI4IEBAIGZ1bmN0aW9uIGluZGV4ZWRCbGVu
ZENvbG9yVGVzdCgpIHsKICAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMRU5EX0RT
VF9BTFBIQSknLCAnZ2wuT05FJyk7CiAgICAgc2hvdWxkQmUoJ2dsLmdldFBhcmFtZXRlcihnbC5D
T0xPUl9XUklURU1BU0spJywgJ1t0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdJyk7CiAKLSAgICBz
aG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJT05fUkdCLCAw
KScsICdnbC5GVU5DX1NVQlRSQUNUJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJh
bWV0ZXIoZXh0LkJMRU5EX0VRVUFUSU9OX0FMUEhBLCAwKScsICdnbC5GVU5DX0FERCcpOwotICAg
IHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfUkdCLCAwKScs
ICdnbC5PTkVfTUlOVVNfRFNUX0FMUEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9SR0IsIDApJywgJ2dsLkRTVF9BTFBIQScpOwotICAgIHNo
b3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVORF9TUkNfQUxQSEEsIDApJywg
J2dsLk9ORScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5CTEVO
RF9EU1RfQUxQSEEsIDApJywgJ2dsLk9ORScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVk
UGFyYW1ldGVyKGV4dC5CTEVORF9FUVVBVElPTl9SR0IsIDEpJywgJ2dsLkZVTkNfU1VCVFJBQ1Qn
KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRVFVQVRJ
T05fQUxQSEEsIDEpJywgJ2dsLkZVTkNfQUREJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX1NSQ19SR0IsIDEpJywgJ2dsLk9ORV9NSU5VU19EU1RfQUxQ
SEEnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQkxFTkRfRFNU
X1JHQiwgMSknLCAnZ2wuRFNUX0FMUEhBJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZXh0LkJMRU5EX1NSQ19BTFBIQSwgMSknLCAnZ2wuT05FJyk7Ci0gICAgc2hvdWxk
QmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZXh0LkJMRU5EX0RTVF9BTFBIQSwgMSknLCAnZ2wu
T05FJyk7Ci0KLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihleHQuQ09MT1Jf
V1JJVEVNQVNLLCAwKScsICdbdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlXScpOwotICAgIHNob3Vs
ZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGV4dC5DT0xPUl9XUklURU1BU0ssIDEpJywgJ1t0
cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJT05fUkdCLCAwKScsICdnbC5GVU5DX1NVQlRSQUNUJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRVFVQVRJT05f
QUxQSEEsIDApJywgJ2dsLkZVTkNfQUREJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQ
YXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX1JHQiwgMCknLCAnZ2wuT05FX01JTlVTX0RTVF9BTFBIQScp
OworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkJMRU5EX0RTVF9SR0Is
IDApJywgJ2dsLkRTVF9BTFBIQScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1l
dGVyKGdsLkJMRU5EX1NSQ19BTFBIQSwgMCknLCAnZ2wuT05FJyk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX0FMUEhBLCAwKScsICdnbC5PTkUnKTsK
KyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElPTl9S
R0IsIDEpJywgJ2dsLkZVTkNfU1VCVFJBQ1QnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihnbC5CTEVORF9FUVVBVElPTl9BTFBIQSwgMSknLCAnZ2wuRlVOQ19BREQnKTsK
KyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVORF9TUkNfUkdCLCAx
KScsICdnbC5PTkVfTUlOVVNfRFNUX0FMUEhBJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfRFNUX1JHQiwgMSknLCAnZ2wuRFNUX0FMUEhBJyk7CisgICAg
c2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuQkxFTkRfU1JDX0FMUEhBLCAxKScs
ICdnbC5PTkUnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5CTEVO
RF9EU1RfQUxQSEEsIDEpJywgJ2dsLk9ORScpOworCisgICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4
ZWRQYXJhbWV0ZXIoZ2wuQ09MT1JfV1JJVEVNQVNLLCAwKScsICdbdHJ1ZSwgZmFsc2UsIHRydWUs
IGZhbHNlXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLkNPTE9S
X1dSSVRFTUFTSywgMSknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0nKTsKIH0KIAogZnVu
Y3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBzZXR1cCgpOwogCisgICAgdGVzdEludmFs
aWRWYWx1ZXMoKTsKKwogICAgIGVuYWJsZURpc2FibGVUZXN0KCk7CiAKICAgICAvLyBibGVuZGlu
ZyBzaG91bGQgYmUgZW5hYmxlZCBmb3IgZHJhd0J1ZmZlcnMgMCBhbmQgMSBhdCB0aGlzIHBvaW50
CkBAIC0yNzgsNiArMjk1LDggQEAgZnVuY3Rpb24gcnVuVGVzdEV4dGVuc2lvbigpIHsKICAgICBj
b25zdGFudEFscGhhQmxlbmRDb2xvclZhbGlkYXRpb25UZXN0KCk7CiAKICAgICBpbmRleGVkQmxl
bmRDb2xvclRlc3QoKTsKKworICAgIHRlc3RDb2xvck1hc2tEcmF3Tm9PcCgpOwogfQogCiBmdW5j
dGlvbiBydW5JbnZhbGlkRW51bXNUZXN0KCkgewpAQCAtMjk4LDYgKzMxNywyMDYgQEAgZnVuY3Rp
b24gcnVuSW52YWxpZEVudW1zVGVzdCgpIHsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBb
Z2wuSU5WQUxJRF9PUEVSQVRJT04sIGdsLklOVkFMSURfRU5VTV0sICdpbnZhbGlkIG9wZXJhdGlv
bnMgb3IgaW52YWxpZCBlbnVtcyBmb3IgQ09MT1JfV1JJVEVNQVNLJyk7CiB9CiAKK2Z1bmN0aW9u
IHRlc3RJbnZhbGlkVmFsdWVzKCkgeworICAgIGNvbnN0IG51bURyYXdCdWZmZXJzID0gZ2wuZ2V0
UGFyYW1ldGVyKGdsLk1BWF9EUkFXX0JVRkZFUlMpOworICAgIGlmICghbnVtRHJhd0J1ZmZlcnMp
IHRocm93IG5ldyBFcnJvcignIW51bURyYXdCdWZmZXJzJyk7CisgICAgd3R1LnNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5lbmFibGVpT0VTKGdsLkJMRU5E
LCAtMSlgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZB
TFVFLCBgZXh0LmVuYWJsZWlPRVMoZ2wuQkxFTkQsICR7bnVtRHJhd0J1ZmZlcnN9KWApOworICAg
IHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuZW5hYmxlaU9FUyhnbC5CTEVO
RCwgJHtudW1EcmF3QnVmZmVycy0xfSlgKTsKKworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJy
b3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuZGlzYWJsZWlPRVMoZ2wuQkxFTkQsIC0xKWAp
OworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBl
eHQuZGlzYWJsZWlPRVMoZ2wuQkxFTkQsICR7bnVtRHJhd0J1ZmZlcnN9KWApOworICAgIHd0dS5z
aG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuZGlzYWJsZWlPRVMoZ2wuQkxFTkQsICR7
bnVtRHJhd0J1ZmZlcnMtMX0pYCk7CisKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5kRXF1YXRpb25pT0VTKC0xLCBnbC5GVU5DX0FE
RClgKTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVF
LCBgZXh0LmJsZW5kRXF1YXRpb25pT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCBnbC5GVU5DX0FERClg
KTsKKyAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmJsZW5kRXF1YXRp
b25pT0VTKCR7bnVtRHJhd0J1ZmZlcnMtMX0sIGdsLkZVTkNfQUREKWApOworCisgICAgd3R1LnNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEVxdWF0
aW9uU2VwYXJhdGVpT0VTKC0xLCBnbC5GVU5DX0FERCwgZ2wuRlVOQ19BREQpYCk7CisgICAgd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEVx
dWF0aW9uU2VwYXJhdGVpT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCBnbC5GVU5DX0FERCwgZ2wuRlVO
Q19BREQpYCk7CisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgMCwgYGV4dC5ibGVu
ZEVxdWF0aW9uU2VwYXJhdGVpT0VTKCR7bnVtRHJhd0J1ZmZlcnMtMX0sIGdsLkZVTkNfQURELCBn
bC5GVU5DX0FERClgKTsKKworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklO
VkFMSURfVkFMVUUsIGBleHQuYmxlbmRGdW5jaU9FUygtMSwgZ2wuT05FLCBnbC5PTkUpYCk7Cisg
ICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5i
bGVuZEZ1bmNpT0VTKCR7bnVtRHJhd0J1ZmZlcnN9LCBnbC5PTkUsIGdsLk9ORSlgKTsKKyAgICB3
dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmJsZW5kRnVuY2lPRVMoJHtudW1E
cmF3QnVmZmVycy0xfSwgZ2wuT05FLCBnbC5PTkUpYCk7CisKKyAgICB3dHUuc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBgZXh0LmJsZW5kRnVuY1NlcGFyYXRlaU9F
UygtMSwgZ2wuT05FLCBnbC5aRVJPLCBnbC5PTkUsIGdsLlpFUk8pYCk7CisgICAgd3R1LnNob3Vs
ZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgYGV4dC5ibGVuZEZ1bmNTZXBh
cmF0ZWlPRVMoJHtudW1EcmF3QnVmZmVyc30sIGdsLk9ORSwgZ2wuWkVSTywgZ2wuT05FLCBnbC5a
RVJPKWApOworICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIDAsIGBleHQuYmxlbmRG
dW5jU2VwYXJhdGVpT0VTKCR7bnVtRHJhd0J1ZmZlcnMtMX0sIGdsLk9ORSwgZ2wuWkVSTywgZ2wu
T05FLCBnbC5aRVJPKWApOworCisgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
SU5WQUxJRF9WQUxVRSwgYGV4dC5jb2xvck1hc2tpT0VTKC0xLCAxLDEsMSwxKWApOworICAgIHd0
dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfVkFMVUUsIGBleHQuY29sb3JN
YXNraU9FUygke251bURyYXdCdWZmZXJzfSwgMSwxLDEsMSlgKTsKKyAgICB3dHUuc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCAwLCBgZXh0LmNvbG9yTWFza2lPRVMoJHtudW1EcmF3QnVmZmVycy0x
fSwgMSwxLDEsMSlgKTsKK30KKworZnVuY3Rpb24qIHJhbmdlKG4pIHsKKyAgZm9yIChsZXQgaSA9
IDA7IGkgPCBuOyBpKyspIHsKKyAgICB5aWVsZCBpOworICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RD
b2xvck1hc2tEcmF3Tm9PcCgpIHsKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ3Rlc3RDb2xv
ck1hc2tEcmF3Tm9PcCcpCisgICAgLy8gPiBJZiBhbnkgZHJhdyBidWZmZXIgd2l0aCBhbiBhdHRh
Y2htZW50IGRvZXMgbm90IGhhdmUgYSBkZWZpbmVkCisgICAgLy8gICBmcmFnbWVudCBzaGFkZXIg
b3V0cHV0LCBkcmF3cyBnZW5lcmF0ZSBJTlZBTElEX09QRVJBVElPTiwKKyAgICAvLyAgIHVubGVz
cyBhbGwgNCBjaGFubmVscyBvZiBjb2xvck1hc2sgYXJlIHNldCB0byBmYWxzZS4KKyAgICBjb25z
dCBOVU1fT1VUUFVUUyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMp
OworICAgIHNob3VsZEJlVHJ1ZShgJHtOVU1fT1VUUFVUU30gPiAxYCk7CisKKyAgICBjb25zdCBm
YiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7CisgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmYik7CisgICAgZ2wudmlld3BvcnQoMCwwLDEsMSk7CisKKyAgICBjb25zdCBE
UkFXX0JVRkZFUlMgPSBbXTsKKyAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoTlVNX09VVFBVVFMp
KSB7CisgICAgICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICAgICAgZ2wudGV4U3RvcmFnZTJE
KGdsLlRFWFRVUkVfMkQsIDEsIGdsLlJHQkE4LCAxLCAxKTsKKyAgICAgICAgY29uc3QgY2EgPSBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCtpOworICAgICAgICBEUkFXX0JVRkZFUlMucHVzaChjYSkKKyAg
ICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGNhLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnbC5URVhUVVJFXzJELCB0ZXgsIDApOworICAgIH0K
KyAgICBzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikn
LCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKKworICAgIGdsLmRyYXdCdWZmZXJzKERSQVdf
QlVGRkVSUyk7CisgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDEpOworICAgIGdsLmRpc2FibGUo
Z2wuQkxFTkQpOworCisgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICBnbC5jbGVh
cihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKworICAgIGZvciAoY29uc3QgaSBvZiByYW5nZShOVU1f
T1VUUFVUUykpIHsKKyAgICAgICAgZ2wucmVhZEJ1ZmZlcihnbC5DT0xPUl9BVFRBQ0hNRU5UMCtp
KTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzAsIDAsIDAs
IDBdLCBgQ09MT1JfQVRUQUNITUVOVCR7aX0gaW5pdGlhbGx5IGJsYWNrYCk7CisgICAgfQorCisg
ICAgZm9yIChjb25zdCB2YWxpZE91dHB1dCBvZiByYW5nZShOVU1fT1VUUFVUUykpIHsKKyAgICAg
ICAgY29uc3QgaW52YWxpZE91dHB1dCA9IHZhbGlkT3V0cHV0IF4gMGIxMTsKKyAgICAgICAgZGVi
dWcoYHZhbGlkT3V0cHV0OiAke3ZhbGlkT3V0cHV0fSwgaW52YWxpZE91dHB1dDogJHtpbnZhbGlk
T3V0cHV0fWApOworICAgICAgICBjb25zdCBwcm9nID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWwor
ICAgICAgICAgICAgYFwKKyN2ZXJzaW9uIDMwMCBlcwordm9pZCBtYWluKCkgeworICAgIGdsX1Bv
c2l0aW9uID0gdmVjNCgwLDAsMCwxKTsKKyAgICBnbF9Qb2ludFNpemUgPSAxLjBmOworfQorYCwK
KyAgICAgICAgICAgIGBcCisjdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworbGF5b3V0KGxvY2F0aW9uPSR7dmFsaWRPdXRwdXR9KSBvdXQgdmVjNCBvX2NvbG9yOwordm9p
ZCBtYWluKCkgeworICAgIG9fY29sb3IgPSB2ZWM0KDEsMSwxLDEpOworfQorYAorICAgICAgICBd
KTsKKyAgICAgICAgZ2wudXNlUHJvZ3JhbShwcm9nKTsKKworICAgICAgICB3dHUuZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICdBZnRlciBpbml0LicpOworCisg
ICAgICAgIGdsLmNvbG9yTWFzaygxLDEsMSwxKTsKKyAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJB
V19CVUZGRVJTKTsKKyAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworICAg
ICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKKyAgICAg
ICAgICAgICdEcmF3aW5nIHdpdGggdW5tYXNrZWQgdW5kZWZpbmVkIGNvbG9yIG91dHB1dHMuJyk7
CisKKyAgICAgICAgZ2wuY29sb3JNYXNrKDAsMCwwLDApOworICAgICAgICBnbC5kcmF3QnVmZmVy
cyhEUkFXX0JVRkZFUlMpOworICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7
CisgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAg
ICAgJ0RyYXdpbmcgd2l0aCBjb2xvck1hc2stbWFza2VkLW91dCB1bmRlZmluZWQgY29sb3Igb3V0
cHV0cy4nKTsKKworICAgICAgICBnbC5jb2xvck1hc2soMSwxLDEsMSk7CisgICAgICAgIGdsLmRy
YXdCdWZmZXJzKERSQVdfQlVGRkVSUy5tYXAoKHgsaSkgPT4gKGkgPT0gaW52YWxpZE91dHB1dCkg
PyB4IDogMCkpOworICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7CisgICAg
ICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAorICAgICAg
ICAgICAgJ0RyYXdpbmcgd2l0aCB3cm9uZy1pZCBkcmF3QnVmZmVyLW1hc2tlZC1vdXQgdW5kZWZp
bmVkIGNvbG9yIG91dHB1dHMuJyk7CisKKyAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJBV19CVUZG
RVJTLm1hcCgoeCxpKSA9PiAoaSA9PSB2YWxpZE91dHB1dCkgPyB4IDogMCkpOworICAgICAgICBn
bC5kcmF3QXJyYXlzKGdsLlBPSU5UUywgMCwgMSk7CisgICAgICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgJ0RyYXdpbmcgd2l0aCBkcmF3QnVmZmVy
LW1hc2tlZC1vdXQgdW5kZWZpbmVkIGNvbG9yIG91dHB1dHMuJyk7CisKKyAgICAgICAgZ2wuY29s
b3JNYXNrKDAsMCwwLDApOworICAgICAgICBnbC5kcmF3QnVmZmVycyhbXSk7CisgICAgICAgIGds
LmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAnRHJhd2luZyB3aXRoIGNvbG9yTWFzaytk
cmF3QnVmZmVyLW1hc2tlZC1vdXQgdW5kZWZpbmVkIGNvbG9yIG91dHB1dHMuJyk7CisKKyAgICAg
ICAgY29uc3QgdGVzdE1hc2sgPSAocixnLGIsYSkgPT4geworICAgICAgICAgICAgZGVidWcoYHRl
c3RNYXNrKCR7W3IsZyxiLGFdfSlgKTsKKyAgICAgICAgICAgIGdsLmRyYXdCdWZmZXJzKERSQVdf
QlVGRkVSUyk7CisKKyAgICAgICAgICAgIGdsLmNvbG9yTWFzaygxLDEsMSwxKTsKKyAgICAgICAg
ICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CisgICAgICAgICAgICBnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUKTsKKyAgICAgICAgICAgIGdsLmNvbG9yTWFzaygwLDAsMCwwKTsKKyAg
ICAgICAgICAgIGV4dC5jb2xvck1hc2tpT0VTKHZhbGlkT3V0cHV0LCByLGcsYixhKTsKKyAgICAg
ICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgIGBEcmF3aW5n
IHdpdGggc29sZSBkZWZpbmVkIGNvbG9yJHt2YWxpZE91dHB1dH0gb3V0cHV0IHdyaXRlbWFzazog
JHtbcixnLGIsYV19LmApOworCisgICAgICAgICAgICBmb3IgKGNvbnN0IGkgb2YgcmFuZ2UoTlVN
X09VVFBVVFMpKSB7CisgICAgICAgICAgICAgICAgZ2wucmVhZEJ1ZmZlcihnbC5DT0xPUl9BVFRB
Q0hNRU5UMCtpKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ID0gWzAsMCwwLDBdOworICAg
ICAgICAgICAgICAgIGlmIChpID09IHZhbGlkT3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAg
IGV4cGVjdCA9IFtyLGcsYixhXS5tYXAoeCA9PiAweGZmKngpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCAxLCAxLCBleHBl
Y3QsIGBDT0xPUl9BVFRBQ0hNRU5UJHtpfTogWyR7ZXhwZWN0fV1gKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKDEsMSwxLDEpOworICAgICAgICAgICAgZ2wuY2xl
YXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQpOworICAgICAgICAgICAgZ2wuY29sb3JNYXNrKHIsZyxiLGEpOworICAgICAgICAgICAg
Zm9yIChjb25zdCBpIG9mIHJhbmdlKE5VTV9PVVRQVVRTKSkgeworICAgICAgICAgICAgICAgIGlm
IChpID09IHZhbGlkT3V0cHV0KSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBleHQuY29sb3JN
YXNraU9FUyhpLCAwLDAsMCwwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdsLmRyYXdB
cnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLAorICAgICAgICAgICAgICAgIGBEcmF3aW5nIHdpdGggc29sZSByZW1h
aW5pbmcgZGVmaW5lZCBjb2xvciR7dmFsaWRPdXRwdXR9IG91dHB1dCB3cml0ZW1hc2s6ICR7W3Is
ZyxiLGFdfS5gKTsKKworICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIHJhbmdlKE5VTV9PVVRQ
VVRTKSkgeworICAgICAgICAgICAgICAgIGdsLnJlYWRCdWZmZXIoZ2wuQ09MT1JfQVRUQUNITUVO
VDAraSk7CisgICAgICAgICAgICAgICAgbGV0IGV4cGVjdCA9IFswLDAsMCwwXTsKKyAgICAgICAg
ICAgICAgICBpZiAoaSA9PSB2YWxpZE91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICBleHBl
Y3QgPSBbcixnLGIsYV0ubWFwKHggPT4gMHhmZip4KTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgZXhwZWN0LCBg
Q09MT1JfQVRUQUNITUVOVCR7aX06IFske2V4cGVjdH1dYCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChyIHx8IGcgfHwgYiB8fCBhKSB7CisgICAgICAgICAgICAgICAgZ2wuY29s
b3JNYXNrKDAsMCwwLDApOworICAgICAgICAgICAgICAgIGV4dC5jb2xvck1hc2tpT0VTKGludmFs
aWRPdXRwdXQsIHIsZyxiLGEpOworICAgICAgICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuUE9J
TlRTLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX09QRVJBVElPTiwKKyAgICAgICAgICAgICAgICAgICAgYERyYXdpbmcgd2l0aCB3cm9u
Zy1pZCB1bmRlZmluZWQgY29sb3Igb3V0cHV0IGNvbG9yIG1hc2tlZDogJHtbcixnLGIsYV19LmAp
OworCisgICAgICAgICAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoW10pOworICAgICAgICAgICAgICAg
IGdsLmRyYXdBcnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgJ0RyYXdp
bmcgd2l0aCB3cm9uZy1pZCBjb2xvck1hc2ssIGJ1dCBhbGwtb2ZmIGRyYXdCdWZmZXJzLicpOwor
CisgICAgICAgICAgICAgICAgZ2wuZHJhd0J1ZmZlcnMoRFJBV19CVUZGRVJTLm1hcCgoeCxpKSA9
PiAoaSA9PSB2YWxpZE91dHB1dCkgPyB4IDogMCkpOworICAgICAgICAgICAgICAgIGdsLmRyYXdB
cnJheXMoZ2wuUE9JTlRTLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgJ0RyYXdpbmcgd2l0aCB3
cm9uZy1pZCBjb2xvck1hc2ssIGJ1dCByaWdodC1pZCBkcmF3QnVmZmVycyBtYXNrZWQuJyk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgdGVzdE1hc2soMCwwLDAsMCk7Cisg
ICAgICAgIHRlc3RNYXNrKDEsMCwwLDApOworICAgICAgICB0ZXN0TWFzaygwLDEsMCwwKTsKKyAg
ICAgICAgdGVzdE1hc2soMCwwLDEsMCk7CisgICAgICAgIHRlc3RNYXNrKDAsMCwwLDEpOworICAg
ICAgICB0ZXN0TWFzaygxLDEsMSwxKTsKKyAgICB9Cit9CisKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CiAgIGlmICghZ2wpIHsKICAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0
ZW5zaW9ucy9yZXF1aXJlZC1leHRlbnNpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNkZTJhNTY3Nzc3
NmZmOWEyMzcxZDFlN2FmNjFlYmVjMTRmNzAwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNp
b25zL3JlcXVpcmVkLWV4dGVuc2lvbnMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IS0tCitDb3B5
cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2Zv
dW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNj
cmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0aWxzOworbGV0IGds
OworCitkZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgcmVxdWlyZWQgZXh0ZW5zaW9ucyBhcmUgc3Vw
cG9ydGVkIik7CisKK3Nob3VsZEJlTm9uTnVsbCgiZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSIpOworCitjb25zdCBzdXBwb3J0ZWRFeHRzID0gZ2wuZ2V0
U3VwcG9ydGVkRXh0ZW5zaW9ucygpOworCitmdW5jdGlvbiBoYXNFeHQobmFtZSkgeworICAgIHJl
dHVybiBzdXBwb3J0ZWRFeHRzLmluZGV4T2YobmFtZSkgPj0gMDsKK30KKworY29uc3QgaGFzX3Mz
dGMgPSBoYXNFeHQoJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyk7Citjb25zdCBoYXNf
czN0Y19zcmdiID0gaGFzRXh0KCdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0Y19zcmdiJyk7
Citjb25zdCBoYXNfcmd0YyA9IGhhc0V4dCgnRVhUX3RleHR1cmVfY29tcHJlc3Npb25fcmd0Yycp
OworY29uc3QgaGFzX2V0YyA9IGhhc0V4dCgnV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2V0Yycp
OworCitkZWJ1ZyhgaGFzX3MzdGM6ICR7aGFzX3MzdGN9YCk7CitkZWJ1ZyhgaGFzX3MzdGNfc3Jn
YjogJHtoYXNfczN0Y19zcmdifWApOworZGVidWcoYGhhc19yZ3RjOiAke2hhc19yZ3RjfWApOwor
ZGVidWcoYGhhc19ldGM6ICR7aGFzX2V0Y31gKTsKKworc2hvdWxkQmVUcnVlKCIoKGhhc19zM3Rj
ICYmIGhhc19zM3RjX3NyZ2IgJiYgaGFzX3JndGMpIHx8IGhhc19ldGMpIik7CisKKy8vIEVUQzEg
ZXh0ZW5zaW9uIG11c3Qgbm90IGJlIGV4cG9zZWQgb24gV2ViR0wgMi4wIGNvbnRleHRzIHdpdGhv
dXQgRVRDMi4KK2RlYnVnKCIiKTsKK2NvbnN0IGhhc19ldGMxID0gaGFzRXh0KCdXRUJHTF9jb21w
cmVzc2VkX3RleHR1cmVfZXRjMScpOworZGVidWcoYGhhc19ldGMxOiAke2hhc19ldGMxfWApOwor
c2hvdWxkQmVUcnVlKCJoYXNfZXRjMSA9PSBoYXNfZXRjIik7CisKK2RlYnVnKCIiKTsKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0YW5jZWQtYmFzZS12ZXJ0ZXgt
YmFzZS1pbnN0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0YW5j
ZWQtYmFzZS12ZXJ0ZXgtYmFzZS1pbnN0YW5jZS5odG1sCmluZGV4IDk1NTViMDQ2NTY0NWYwN2E1
YWM0YjFhNTA4M2E1ZGU5MzhiZjUyNmMuLjEyOGE0ZmM2NzVjZjA4MzNkMDFmZmUwMzFkY2IxYzk2
ZDdiZGMyOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9leHRlbnNpb25zL3dlYmdsLW11bHRpLWRyYXctaW5zdGFu
Y2VkLWJhc2UtdmVydGV4LWJhc2UtaW5zdGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZXh0ZW5zaW9ucy93ZWJn
bC1tdWx0aS1kcmF3LWluc3RhbmNlZC1iYXNlLXZlcnRleC1iYXNlLWluc3RhbmNlLmh0bWwKQEAg
LTksNyArOSw3IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxzY3JpcHQgaWQ9InZzaGFkZXJJbGxlZ2FsQmFz
ZUluc3RhbmNlIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCis8c2Ny
aXB0IGlkPSJ2c2hhZGVyQmFzZUluc3RhbmNlV2l0aG91dEV4dCIgdHlwZT0ieC1zaGFkZXIveC12
ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwogbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9z
aXRpb247CiBvdXQgdmVjNCBjb2xvcjsKIHZvaWQgbWFpbigpCkBAIC0xOCwyMCArMTgsNiBAQCB2
b2lkIG1haW4oKQogICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uICogMi4wIC0gMS4wLCBn
bF9CYXNlSW5zdGFuY2UsIDEpOwogfQogPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyQmFz
ZUluc3RhbmNlWmVybyIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwot
I2V4dGVuc2lvbiBHTF9BTkdMRV9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlIDogcmVxdWlyZQot
bGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247Ci1vdXQgdmVjNCBjb2xvcjsK
LXZvaWQgbWFpbigpCi17Ci0gIGlmIChnbF9CYXNlSW5zdGFuY2UgPT0gMCkgewotICAgIGNvbG9y
ID0gdmVjNCgwLCAxLCAwLCAxKTsKLSAgfSBlbHNlIHsKLSAgICBjb2xvciA9IHZlYzQoMSwgMCwg
MCwgMSk7Ci0gIH0KLSAgZ2xfUG9zaXRpb24gPSB2ZWM0KHZQb3NpdGlvbiAqIDIuMCAtIDEuMCwg
MCwgMSk7Ci19Ci08L3NjcmlwdD4KIDwhLS0gQ2hlY2sgZ2xfSW5zdGFuY2VJRCBzdGFydHMgYXQg
MCByZWdhcmRsZXNzIG9mIGdsX0Jhc2VJbnN0YW5jZSAtLT4KIDxzY3JpcHQgaWQ9InZzaGFkZXJJ
bnN0YW5jZUlEQ2hlY2siIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAgZXMK
IGxheW91dChsb2NhdGlvbiA9IDApIGluIHZlYzIgdlBvc2l0aW9uOwpAQCAtNDYsNyArMzIsNyBA
QCB2b2lkIG1haW4oKQogICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uICogMi4wIC0gMS4w
LCAwLCAxKTsKIH0KIDwvc2NyaXB0PgotPHNjcmlwdCBpZD0idnNoYWRlcklsbGVnYWxCYXNlVmVy
dGV4IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCis8c2NyaXB0IGlk
PSJ2c2hhZGVyQmFzZVZlcnRleFdpdGhvdXRFeHQiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4j
dmVyc2lvbiAzMDAgZXMKIGxheW91dChsb2NhdGlvbiA9IDApIGluIHZlYzIgdlBvc2l0aW9uOwog
b3V0IHZlYzQgY29sb3I7CiB2b2lkIG1haW4oKQpAQCAtNTUsMTcgKzQxLDEzIEBAIHZvaWQgbWFp
bigpCiAgIGdsX1Bvc2l0aW9uID0gdmVjNCh2UG9zaXRpb24gKiAyLjAgLSAxLjAsIGdsX0Jhc2VW
ZXJ0ZXgsIDEpOwogfQogPC9zY3JpcHQ+Ci08c2NyaXB0IGlkPSJ2c2hhZGVyQmFzZVZlcnRleFpl
cm8iIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAzMDAgZXMKKzxzY3JpcHQgaWQ9
InZzaGFkZXJXaXRoRXh0IiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVz
CiAjZXh0ZW5zaW9uIEdMX0FOR0xFX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UgOiByZXF1aXJl
CiBsYXlvdXQobG9jYXRpb24gPSAwKSBpbiB2ZWMyIHZQb3NpdGlvbjsKIG91dCB2ZWM0IGNvbG9y
Owogdm9pZCBtYWluKCkKIHsKLSAgaWYgKGdsX0Jhc2VWZXJ0ZXggPT0gMCkgewotICAgIGNvbG9y
ID0gdmVjNCgwLCAxLCAwLCAxKTsKLSAgfSBlbHNlIHsKLSAgICBjb2xvciA9IHZlYzQoMSwgMCwg
MCwgMSk7Ci0gIH0KKyAgY29sb3IgPSB2ZWM0KDAsIDEsIDAsIDEpOwogICBnbF9Qb3NpdGlvbiA9
IHZlYzQodlBvc2l0aW9uICogMi4wIC0gMS4wLCAwLCAxKTsKIH0KIDwvc2NyaXB0PgpAQCAtODQs
NyArNjYsNiBAQCB2b2lkIG1haW4oKQogfQogPC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJ2c2hhZGVy
U2ltcGxlIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+I3ZlcnNpb24gMzAwIGVzCi0gICNleHRl
bnNpb24gR0xfQU5HTEVfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZSA6IHJlcXVpcmUKICAgbGF5
b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9zaXRpb247CiAgIGxheW91dChsb2NhdGlvbiA9
IDEpIGluIGZsb2F0IHZJbnN0YW5jZTsKICAgb3V0IHZlYzQgY29sb3I7CkBAIC0xMjEsNyArMTAy
LDEzIEBAIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkg
b2YgdGhlIFdFQkdMX1ttdWx0aV1fZHJhd19iYXNlCiAKIGNvbnN0IHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwogY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwot
Y29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcywgbnVsbCwgMik7CitjYW52YXMu
c3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyMwMDAnOworY2FudmFzLnN0eWxlLmltYWdlUmVuZGVy
aW5nID0gJ3BpeGVsYXRlZCc7IC8vIEJlY2F1c2UgQ2hyb21lIGRvZXNuJ3Qgc3VwcG9ydCBjcmlz
cC1lZGdlcy4KK2NhbnZhcy5zdHlsZS5pbWFnZVJlbmRlcmluZyA9ICdjcmlzcC1lZGdlcyc7Citj
b25zdCBhdHRyaWJzID0geworICBhbnRpYWxpYXM6IGZhbHNlLAorfTsKK2NvbnN0IGdsID0gd3R1
LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIGF0dHJpYnMsIDIpOwogCiBjb25zdCB3aWR0aCA9IGds
LmNhbnZhcy53aWR0aDsKIGNvbnN0IGhlaWdodCA9IGdsLmNhbnZhcy5oZWlnaHQ7CkBAIC0yNzAs
OCArMjU3LDI1MCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgIGRvVGVzdCgnV0VCR0xfZHJh
d19pbnN0YW5jZWRfYmFzZV92ZXJ0ZXhfYmFzZV9pbnN0YW5jZScsIGZhbHNlKTsKICAgZG9UZXN0
KCdXRUJHTF9tdWx0aV9kcmF3X2luc3RhbmNlZF9iYXNlX3ZlcnRleF9iYXNlX2luc3RhbmNlJywg
dHJ1ZSk7CisKKyAgdGVzdEdsc2xCdWlsdGlucygpOworfQorCisvLyAtCisKK2Z1bmN0aW9uKiBy
YW5nZShuKSB7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgeWllbGQgaTsK
KyAgfQogfQogCitmdW5jdGlvbiBjcm9zc0NvbWJpbmUoLi4uYXJncykgeworICBmdW5jdGlvbiBj
cm9zc0NvbWJpbmUyKGxpc3RBLCBsaXN0QikgeworICAgIGNvbnN0IGxpc3RDID0gW107CisgICAg
Zm9yIChjb25zdCBhIG9mIGxpc3RBKSB7CisgICAgICBmb3IgKGNvbnN0IGIgb2YgbGlzdEIpIHsK
KyAgICAgICAgY29uc3QgYyA9IE9iamVjdC5hc3NpZ24oe30sIGEsIGIpOworICAgICAgICBsaXN0
Qy5wdXNoKGMpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbGlzdEM7CisgIH0KKworICBs
ZXQgcmVzID0gW3t9XTsKKyAgd2hpbGUgKGFyZ3MubGVuZ3RoKSB7CisgICAgY29uc3QgbmV4dCA9
IGFyZ3Muc2hpZnQoKTsKKyAgICBuZXh0WzBdLmRlZmluZWQ7CisgICAgcmVzID0gY3Jvc3NDb21i
aW5lMihyZXMsIG5leHQpOworICB9CisgIHJldHVybiByZXM7Cit9CisKKy8vIC0KKworY29uc3Qg
UEFTU1RIUk9VR0hfRlJBR19TUkMgPSBgXAorI3ZlcnNpb24gMzAwIGVzCitwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsKK2luIHZlYzQgdl9jb2xvcjsKK291dCB2ZWM0IG9fY29sb3I7CisKK3ZvaWQg
bWFpbigpIHsKKyAgb19jb2xvciA9IHZfY29sb3I7Cit9CitgOworCitmdW5jdGlvbiB0ZXN0R2xz
bEJ1aWx0aW5zKCkgeworICBjb25zdCBFWFQgPSBnbC5nZXRFeHRlbnNpb24oJ1dFQkdMX2RyYXdf
aW5zdGFuY2VkX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UnKTsKKworICBjb25zdCB2ZXJ0aWRf
cHJvZyA9ICgoKSA9PiB7CisgICAgICBjb25zdCB2ZXJ0X3NyYyA9IGBcCisjdmVyc2lvbiAzMDAg
ZXMKKyNsaW5lIDQwNQorbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gaW50IGFfdmVydGV4X2lkOyAv
LyBTYW1lIGFzIGdsX1ZlcnRleElECitvdXQgdmVjNCB2X2NvbG9yOworCit2b2lkIG1haW4oKSB7
CisgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwxKTsKKyAgZ2xfUG9pbnRTaXplID0gMS4wOwor
ICB2X2NvbG9yID0gdmVjNChmbG9hdChnbF9WZXJ0ZXhJRCksIGZsb2F0KGFfdmVydGV4X2lkKSww
LDApOworICB2X2NvbG9yIC89IDI1NS4wOworfQorYDsKKyAgICAgIGNvbnN0IHByb2cgPSB3dHUu
c2V0dXBQcm9ncmFtKGdsLCBbdmVydF9zcmMsIFBBU1NUSFJPVUdIX0ZSQUdfU1JDXSwKKyAgICAg
ICAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQsIC8qbG9nU2hhZGVycyovIHRydWUpOworICAg
ICAgZXhwZWN0VHJ1ZSghIXByb2csIGBtYWtlX3ZlcnRpZF9wcm9nIGZhaWxlZGApOworICAgICAg
cmV0dXJuIHByb2c7CisgICAgfSkoKTsKKworICBjb25zdCBpbnN0aWRfcHJvZyA9ICgoKSA9PiB7
CisgICAgICBjb25zdCB2ZXJ0X3NyYyA9IGBcCisjdmVyc2lvbiAzMDAgZXMKKyNsaW5lIDQyNQor
bGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gaW50IGFfdmVydGV4X2lkOyAvLyBTYW1lIGFzIGdsX1Zl
cnRleElECitsYXlvdXQobG9jYXRpb24gPSAxKSBpbiBpbnQgYV9pbnN0YW5jZV9kaXYxOyAvLyBT
YW1lIGFzIGJhc2VfaW5zdGFuY2UrZ2xfSW5zdGFuY2VJRAorbGF5b3V0KGxvY2F0aW9uID0gMikg
aW4gaW50IGFfaW5zdGFuY2VfZGl2MjsgLy8gU2FtZSBhcyBiYXNlX2luc3RhbmNlK2Zsb29yKGds
X0luc3RhbmNlSUQvMikKK2xheW91dChsb2NhdGlvbiA9IDMpIGluIGludCBhX2luc3RhbmNlX2Rp
djM7IC8vIFNhbWUgYXMgYmFzZV9pbnN0YW5jZStmbG9vcihnbF9JbnN0YW5jZUlELzMpCitvdXQg
dmVjNCB2X2NvbG9yOworCit2b2lkIG1haW4oKSB7CisgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAs
MCwxKTsKKyAgZ2xfUG9pbnRTaXplID0gMS4wOworICB2X2NvbG9yID0gdmVjNChmbG9hdChnbF9J
bnN0YW5jZUlEKSwgZmxvYXQoYV9pbnN0YW5jZV9kaXYxKSwKKyAgICAgICAgICAgICAgICAgZmxv
YXQoYV9pbnN0YW5jZV9kaXYyKSwgZmxvYXQoYV9pbnN0YW5jZV9kaXYzKSk7CisgIHZfY29sb3Ig
Lz0gMjU1LjA7Cit9CitgOworICAgICAgY29uc3QgcHJvZyA9IHd0dS5zZXR1cFByb2dyYW0oZ2ws
IFt2ZXJ0X3NyYywgUEFTU1RIUk9VR0hfRlJBR19TUkNdLAorICAgICAgICAgICAgICB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgLypsb2dTaGFkZXJzKi8gdHJ1ZSk7CisgICAgICBleHBlY3RUcnVlKCEh
cHJvZywgYG1ha2VfaW5zdGlkX3Byb2cgZmFpbGVkYCk7CisgICAgICByZXR1cm4gcHJvZzsKKyAg
ICB9KSgpOworCisgIGNvbnN0IENPVU5UX1VQX0RBVEEgPSBuZXcgSW50MzJBcnJheSgxMDAwKTsK
KyAgZm9yIChjb25zdCBpIGluIENPVU5UX1VQX0RBVEEpIHsKKyAgICBDT1VOVF9VUF9EQVRBW2ld
ID0gaTsKKyAgfQorCisgIGNvbnN0IHZlcnRleF9pZF9idWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsK
KyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleF9pZF9idWYpOworICBnbC5i
dWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgQ09VTlRfVVBfREFUQSwgZ2wuU1RBVElDX0RSQVcp
OworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmliSVBv
aW50ZXIoMCwgMSwgZ2wuSU5ULCAwLCAwKTsKKworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJh
eSgxKTsKKyAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMSwgMSwgZ2wuSU5ULCAwLCAwKTsKKyAg
Z2wudmVydGV4QXR0cmliRGl2aXNvcigxLCAxKTsKKworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgyKTsKKyAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMiwgMSwgZ2wuSU5ULCAwLCAwKTsK
KyAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigyLCAyKTsKKworICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgzKTsKKyAgZ2wudmVydGV4QXR0cmliSVBvaW50ZXIoMywgMSwgZ2wuSU5ULCAwLCAw
KTsKKyAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigzLCAzKTsKKworICBjb25zdCBpbmRleF9idWYg
PSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUiwgaW5kZXhfYnVmKTsKKyAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZF
UiwgQ09VTlRfVVBfREFUQSwgZ2wuU1RBVElDX0RSQVcpOworCisgIGdsLmNhbnZhcy53aWR0aCA9
IGdsLmNhbnZhcy5oZWlnaHQgPSAxOworICBnbC5jYW52YXMuc3R5bGUud2lkdGggPSBnbC5jYW52
YXMuc3R5bGUuaGVpZ2h0ID0gJzFlbSc7CisgIGdsLnZpZXdwb3J0KDAsIDAsIDEsIDEpOworCisg
IGNvbnN0IGV4cGVjdF9waXhlbCA9ICgoKSA9PiB7CisgICAgY29uc3Qgd2FzID0gbmV3IFVpbnQ4
QXJyYXkoNCk7CisgICAgcmV0dXJuIChkZXNjLCBzdWJ0ZXN0LCBleHBlY3RlZCkgPT4geworICAg
ICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB3
YXMpOworICAgICAgaWYgKCFhcmVBcnJheXNFcXVhbCh3YXMsIGV4cGVjdGVkKSkgeworICAgICAg
ICB0ZXN0RmFpbGVkKGAke3N1YnRlc3R9OiBFeHBlY3RlZCBbJHtleHBlY3RlZH1dLCB3YXMgWyR7
d2FzfV0uIGRlc2M6ICR7SlNPTi5zdHJpbmdpZnkoZGVzYyl9YCk7CisgICAgICB9IGVsc2Ugewor
ICAgICAgICBkZWJ1ZyhgJHtzdWJ0ZXN0fTogV2FzIFske3dhc31dIGFzIGV4cGVjdGVkLmApOwor
ICAgICAgfQorICAgIH07CisgIH0pKCk7CisKKyAgLy8gQ29tbW9uIHNldHVwIGNvbXBsZXRlCisg
IC8vIC0KKyAgLy8gQ3JlYXRlIHRlc3RjYXNlcworCisgIGNvbnN0IERSQVdfRlVOQ19DT01CSU5F
UiA9IFt7CisgICAgbmFtZTogJ2RyYXdBcnJheXNJbnN0YW5jZWQnLAorICAgIGRyYXc6IGRlc2Mg
PT4geworICAgICAgaWYgKGRlc2MuYmFzZV92ZXJ0KSByZXR1cm4gZmFsc2U7CisgICAgICBpZiAo
ZGVzYy5iYXNlX2luc3QpIHJldHVybiBmYWxzZTsKKyAgICAgIGdsLmRyYXdBcnJheXNJbnN0YW5j
ZWQoZ2xbZGVzYy5tb2RlXSwgZGVzYy5maXJzdF92ZXJ0LAorICAgICAgICAgIGRlc2MudmVydF9j
b3VudCwgZGVzYy5pbnN0X2NvdW50KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisgIH0s
IHsKKyAgICBuYW1lOiAnZHJhd0VsZW1lbnRzSW5zdGFuY2VkJywKKyAgICBkcmF3OiBkZXNjID0+
IHsKKyAgICAgIGlmIChkZXNjLmJhc2VfdmVydCkgcmV0dXJuIGZhbHNlOworICAgICAgaWYgKGRl
c2MuYmFzZV9pbnN0KSByZXR1cm4gZmFsc2U7CisgICAgICBnbC5kcmF3RWxlbWVudHNJbnN0YW5j
ZWQoZ2xbZGVzYy5tb2RlXSwgZGVzYy52ZXJ0X2NvdW50LAorICAgICAgICAgIGdsLlVOU0lHTkVE
X0lOVCwgNCpkZXNjLmZpcnN0X3ZlcnQsIGRlc2MuaW5zdF9jb3VudCk7CisgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9LAorICB9LCB7CisgICAgbmFtZTogJ2RyYXdBcnJheXNJbnN0YW5jZWRCYXNl
SW5zdGFuY2VXRUJHTCcsCisgICAgZHJhdzogZGVzYyA9PiB7CisgICAgICBpZiAoZGVzYy5iYXNl
X3ZlcnQpIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICghRVhUKSByZXR1cm4gZmFsc2U7CisgICAg
ICBFWFQuZHJhd0FycmF5c0luc3RhbmNlZEJhc2VJbnN0YW5jZVdFQkdMKGdsW2Rlc2MubW9kZV0s
CisgICAgICAgIGRlc2MuZmlyc3RfdmVydCwgZGVzYy52ZXJ0X2NvdW50LCBkZXNjLmluc3RfY291
bnQsCisgICAgICAgIGRlc2MuYmFzZV9pbnN0KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0s
CisgIH0sIHsKKyAgICBuYW1lOiAnZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJ
bnN0YW5jZVdFQkdMJywKKyAgICBkcmF3OiBkZXNjID0+IHsKKyAgICAgIGlmICghRVhUKSByZXR1
cm4gZmFsc2U7CisgICAgICBFWFQuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJ
bnN0YW5jZVdFQkdMKAorICAgICAgICAgIGdsW2Rlc2MubW9kZV0sIGRlc2MudmVydF9jb3VudCwg
Z2wuVU5TSUdORURfSU5ULCA0KmRlc2MuZmlyc3RfdmVydCwKKyAgICAgICAgICBkZXNjLmluc3Rf
Y291bnQsIGRlc2MuYmFzZV92ZXJ0LCBkZXNjLmJhc2VfaW5zdCk7CisgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9LAorICB9XTsKKworICAvLyAtCisKKyAgZnVuY3Rpb24gbWFrZV9rZXlfY29tYmlu
ZXIoa2V5LCB2YWxzKSB7CisgICAgY29uc3QgcmV0ID0gW107CisgICAgZm9yIChjb25zdCB2IG9m
IHZhbHMpIHsKKyAgICAgIGNvbnN0IGN1ciA9IHt9OworICAgICAgY3VyW2tleV0gPSB2OworICAg
ICAgcmV0LnB1c2goY3VyKTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIGNvbnN0
IFRFU1RfREVTQ1MgPSBjcm9zc0NvbWJpbmUoCisgICAgRFJBV19GVU5DX0NPTUJJTkVSLAorICAg
IG1ha2Vfa2V5X2NvbWJpbmVyKCdiYXNlX3ZlcnQnLCBbMCwxLDJdKSwKKyAgICBtYWtlX2tleV9j
b21iaW5lcigndmVydF9jb3VudCcsIFswLDEsMl0pLAorICAgIG1ha2Vfa2V5X2NvbWJpbmVyKCdi
YXNlX2luc3QnLCBbMCwxLDJdKSwKKyAgICBtYWtlX2tleV9jb21iaW5lcignaW5zdF9jb3VudCcs
IHJhbmdlKDEwKSksCisgICAgbWFrZV9rZXlfY29tYmluZXIoJ2ZpcnN0X3ZlcnQnLCBbMCwxLDJd
KSwKKyAgKTsKKyAgY29uc29sZS5sb2coJ1RFU1RfREVTQ1MnLCBURVNUX0RFU0NTKTsKKworICAv
LyAtCisgIC8vIFJ1biB0ZXN0Y2FzZXMKKworICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwor
ICBnbC5kaXNhYmxlKGdsLlNURU5DSUxfVEVTVCk7CisgIGdsLmRpc2FibGUoZ2wuQkxFTkQpOwor
CisgIGZvciAoY29uc3QgZGVzYyBvZiBURVNUX0RFU0NTKSB7CisgICAgZ2wuZGlzYWJsZShnbC5T
Q0lTU09SX1RFU1QpOworICAgIGdsLmNsZWFyQnVmZmVyZnYoZ2wuQ09MT1IsIDAsIFsxLDAsMCwx
XSk7CisKKyAgICAvLyBGcm9tIE9wZW5HTCBFUyAzLjIgc3BlYyBzZWN0aW9uIDEwLjUKKyAgICAv
LyBodHRwczovL3d3dy5raHJvbm9zLm9yZy9yZWdpc3RyeS9PcGVuR0wvc3BlY3MvZXMvMy4yL2Vz
X3NwZWNfMy4yLnBkZgorICAgIC8vIFRoZSBpbmRleCBvZiBhbnkgZWxlbWVudCB0cmFuc2ZlcnJl
ZCB0byB0aGUgR0wgYnkgRHJhd0FycmF5c09uZUluc3RhbmNlCisgICAgLy8gaXMgcmVmZXJyZWQg
dG8gYXMgaXRzIHZlcnRleCBJRCwgYW5kIG1heSBiZSByZWFkIGJ5IGEgdmVydGV4IHNoYWRlciBh
cyBnbF9WZXJ0ZXhJRC4KKyAgICAvLyBUaGUgdmVydGV4IElEIG9mIHRoZSBpdGggZWxlbWVudCB0
cmFuc2ZlcnJlZCBpcyBmaXJzdCArIGkuCisgICAgY29uc3QgbGFzdF9nbF92ZXJ0X2lkID0gZGVz
Yy5iYXNlX3ZlcnQgKyBkZXNjLmZpcnN0X3ZlcnQgKyBkZXNjLnZlcnRfY291bnQgLSAxOworICAg
IGNvbnN0IGxhc3RfdmVydF9pZCA9IGxhc3RfZ2xfdmVydF9pZDsKKyAgICBjb25zdCBsYXN0X2lu
c3RfaWQgPSBkZXNjLmluc3RfY291bnQgLSAxOworICAgIGNvbnN0IGxhc3RfaW5zdF9kaXYxID0g
ZGVzYy5iYXNlX2luc3QgKyBsYXN0X2luc3RfaWQ7CisgICAgY29uc3QgbGFzdF9pbnN0X2RpdjIg
PSBkZXNjLmJhc2VfaW5zdCArIE1hdGguZmxvb3IobGFzdF9pbnN0X2lkIC8gMik7CisgICAgY29u
c3QgbGFzdF9pbnN0X2RpdjMgPSBkZXNjLmJhc2VfaW5zdCArIE1hdGguZmxvb3IobGFzdF9pbnN0
X2lkIC8gMyk7CisKKyAgICBnbC51c2VQcm9ncmFtKHZlcnRpZF9wcm9nKTsKKyAgICBpZiAoIWRl
c2MuZHJhdyhkZXNjKSkgY29udGludWU7CisgICAgZGVidWcoJ1xuZGVzYzogJyArIEpTT04uc3Ry
aW5naWZ5KGRlc2MpKTsKKworICAgIHd0dS5nbEVycm9yQXNzZXJ0KGdsLCAwKTsKKyAgICBpZiAo
IWRlc2MudmVydF9jb3VudCB8fCAhZGVzYy5pbnN0X2NvdW50KSB7CisgICAgICBleHBlY3RfcGl4
ZWwoZGVzYywgJ3ZlcnRpZF9wcm9nJywgWzI1NSwgMCwgMCwgMjU1XSk7CisgICAgICBjb250aW51
ZTsKKyAgICB9CisKKyAgICBleHBlY3RfcGl4ZWwoZGVzYywgJ3ZlcnRpZF9wcm9nJywgW2xhc3Rf
Z2xfdmVydF9pZCwgbGFzdF92ZXJ0X2lkLCAwLCAwXSk7CisKKyAgICBnbC51c2VQcm9ncmFtKGlu
c3RpZF9wcm9nKTsKKyAgICBkZXNjLmRyYXcoZGVzYyk7CisgICAgZXhwZWN0X3BpeGVsKGRlc2Ms
ICdpbnN0aWRfcHJvZycsIFtsYXN0X2luc3RfaWQsIGxhc3RfaW5zdF9kaXYxLCBsYXN0X2luc3Rf
ZGl2MiwgbGFzdF9pbnN0X2RpdjNdKTsKKyAgfQorfQorCisvLyAtCisKIGZ1bmN0aW9uIGRvVGVz
dChleHRlbnNpb25OYW1lLCBtdWx0aURyYXcpIHsKICAgY29uc3QgZXh0ID0gZ2wuZ2V0RXh0ZW5z
aW9uKGV4dGVuc2lvbk5hbWUpOwogICBpZiAoIXJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uTmFt
ZSwgZXh0KSkgewpAQCAtMjgyLDIxICs1MTEsMTkgQEAgZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lv
bk5hbWUsIG11bHRpRHJhdykgewogICAgIGNvbnN0IHZzID0gWwogICAgICAgJyN2ZXJzaW9uIDMw
MCBlcycsCiAgICAgICBjb25maWcuaXNNdWx0aURyYXcgPyAnI2V4dGVuc2lvbiBHTF9BTkdMRV9t
dWx0aV9kcmF3IDogcmVxdWlyZScgOiAnJywKLSAgICAgICcjZXh0ZW5zaW9uIEdMX0FOR0xFX2Jh
c2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UgOiByZXF1aXJlJywKICAgICAgICcjZGVmaW5lIGtDb3Vu
dFggJyArIGNvdW50WC50b1N0cmluZygpLAogICAgICAgJyNkZWZpbmUga0NvdW50WSAnICsgY291
bnRZLnRvU3RyaW5nKCksCiAgICAgICAnbGF5b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjMiB2UG9z
aXRpb247JywKLSAgICAgIGNvbmZpZy51c2VCYXNlSW5zdGFuY2VCdWlsdGluID8gJycgOiAnbGF5
b3V0KGxvY2F0aW9uID0gMSkgaW4gZmxvYXQgdkluc3RhbmNlSUQ7JywKKyAgICAgICdsYXlvdXQo
bG9jYXRpb24gPSAxKSBpbiBmbG9hdCB2SW5zdGFuY2VJRDsnLAogICAgICAgJ291dCB2ZWM0IGNv
bG9yOycsCiAgICAgICAndm9pZCBtYWluKCknLAogICAgICAgJ3snLAogICAgICAgJyAgY29uc3Qg
ZmxvYXQgeFN0ZXAgPSAxLjAgLyBmbG9hdChrQ291bnRYKTsnLAogICAgICAgJyAgY29uc3QgZmxv
YXQgeVN0ZXAgPSAxLjAgLyBmbG9hdChrQ291bnRZKTsnLAotICAgICAgJyAgZmxvYXQgeElEID0g
JyArIChjb25maWcudXNlQmFzZUluc3RhbmNlQnVpbHRpbiA/ICdmbG9hdChnbF9JbnN0YW5jZUlE
ICsgZ2xfQmFzZUluc3RhbmNlKScgOiAndkluc3RhbmNlSUQnKSArICc7JywKKyAgICAgICcgIGZs
b2F0IHhJRCA9IHZJbnN0YW5jZUlEOycsCiAgICAgICAnICBmbG9hdCB4Q29sb3IgPSAxLjAgLSB4
U3RlcCAqIHhJRDsnLAogICAgICAgJyAgZmxvYXQgeUlEID0gZmxvb3IoZmxvYXQoZ2xfVmVydGV4
SUQpIC8gJyArIChjb25maWcuaXNEcmF3QXJyYXlzID8gJzYuMCcgOiAnNC4wJykgKyAnICsgMC4w
MSk7JywKLSAgICAgICcgIGNvbG9yID0gdmVjNCh4Q29sb3IsIDEuMCAtIHlTdGVwICogeUlELCAn
LAotICAgICAgY29uZmlnLnVzZUJhc2VWZXJ0ZXhCdWlsdGluID8gJzEuMCAtIHlTdGVwICogZmxv
YXQoZ2xfQmFzZVZlcnRleCkgLyA0LjAnIDogJzEuMCcsCisgICAgICAnICBjb2xvciA9IHZlYzQo
eENvbG9yLCAxLjAgLSB5U3RlcCAqIHlJRCwgMS4wJywKICAgICAgICcgICwgMS4wKTsnLAogICAg
ICAgJyAgbWF0MyB0cmFuc2Zvcm0gPSBtYXQzKDEuMCk7JywKICAgICAgICcgIHRyYW5zZm9ybVsy
XVswXSA9IHhJRCAqIHhTdGVwOycsCkBAIC0zMjIsNyArNTQ5LDcgQEAgZnVuY3Rpb24gZG9UZXN0
KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlf
QlVGRkVSLCBpbnN0YW5jZUJ1ZmZlcik7CiAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZG
RVIsIG5ldyBGbG9hdDMyQXJyYXkoWyAwLCAxLCAyIF0pLCBidWZmZXJVc2FnZSk7CiAKLSAgICBj
b25zdCBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyd2c2hhZGVyU2ltcGxlJywgJ2Zz
aGFkZXInXSwgWyd2UG9zaXRpb24sIHZJbnN0YW5jZUlEJ10sIFswLCAxXSk7CisgICAgY29uc3Qg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsndnNoYWRlclNpbXBsZScsICdmc2hhZGVy
J10sIFsndlBvc2l0aW9uLCB2SW5zdGFuY2VJRCddLCBbMCwgMV0sIHRydWUpOwogICAgIGV4cGVj
dFRydWUocHJvZ3JhbSAhPSBudWxsLCAiY2FuIGNvbXBpbGUgc2ltcGxlIHByb2dyYW0iKTsKIAog
ICAgIGZ1bmN0aW9uIHNldHVwSW5zdGFuY2VkKCkgewpAQCAtNDkwLDM4ICs3MTcsMjcgQEAgZnVu
Y3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICB9CiAKICAgZnVuY3Rp
b24gcnVuU2hhZGVyVGVzdHMoYnVmZmVyVXNhZ2UpIHsKLSAgICBjb25zdCBpbGxlZ2FsQmFzZUlu
c3RhbmNlUHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlcklsbGVnYWxCYXNl
SW5zdGFuY2UiLCAiZnNoYWRlciJdKTsKLSAgICBleHBlY3RUcnVlKGlsbGVnYWxCYXNlSW5zdGFu
Y2VQcm9ncmFtID09IG51bGwsICJjYW5ub3QgY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFzZUlu
c3RhbmNlIGJ1dCBubyBleHRlbnNpb24gZGlyZWN0aXZlIik7Ci0gICAgY29uc3QgaWxsZWdhbEJh
c2VWZXJ0ZXhQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVySWxsZWdhbEJh
c2VWZXJ0ZXgiLCAiZnNoYWRlciJdKTsKLSAgICBleHBlY3RUcnVlKGlsbGVnYWxCYXNlVmVydGV4
UHJvZ3JhbSA9PSBudWxsLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VWZXJ0
ZXggYnV0IG5vIGV4dGVuc2lvbiBkaXJlY3RpdmUiKTsKKyAgICBsZXQgYmFkUHJvZ3JhbTsKKwor
ICAgIGJhZFByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlSW5zdGFu
Y2VXaXRob3V0RXh0IiwgImZzaGFkZXIiXSk7CisgICAgZXhwZWN0VHJ1ZSghYmFkUHJvZ3JhbSwg
ImNhbm5vdCBjb21waWxlIHByb2dyYW0gd2l0aCBnbF9CYXNlSW5zdGFuY2UgYnV0IG5vIGV4dGVu
c2lvbiBkaXJlY3RpdmUiKTsKKyAgICBiYWRQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwg
WyJ2c2hhZGVyQmFzZVZlcnRleFdpdGhvdXRFeHQiLCAiZnNoYWRlciJdKTsKKyAgICBleHBlY3RU
cnVlKCFiYWRQcm9ncmFtLCAiY2Fubm90IGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VWZXJ0
ZXggYnV0IG5vIGV4dGVuc2lvbiBkaXJlY3RpdmUiKTsKKworICAgIGJhZFByb2dyYW0gPSB3dHUu
c2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJXaXRoRXh0IiwgImZzaGFkZXIiXSk7CisgICAgZXhw
ZWN0VHJ1ZSghYmFkUHJvZ3JhbSwgImNhbm5vdCBjb21waWxlIHByb2dyYW0gd2l0aCAjZXh0ZW5z
aW9uIEdMX0FOR0xFX2Jhc2VfdmVydGV4X2Jhc2VfaW5zdGFuY2UiKTsKIAogICAgIGNvbnN0IHgg
PSBNYXRoLmZsb29yKHdpZHRoICogMC40KTsKICAgICBjb25zdCB5ID0gTWF0aC5mbG9vcihoZWln
aHQgKiAwLjQpOwogICAgIGNvbnN0IHhTaXplID0gTWF0aC5mbG9vcih3aWR0aCAqIDAuMik7CiAg
ICAgY29uc3QgeVNpemUgPSBNYXRoLmZsb29yKGhlaWdodCAqIDAuMik7CiAKLSAgICAvLyBnbF9C
YXNlSW5zdGFuY2UgYW5kIGdsX0luc3RhbmNlSUQKKyAgICAvLyBnbF9JbnN0YW5jZUlECiAgICAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGdsLmNyZWF0ZUJ1ZmZlcigpKTsKICAgICBn
bC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbIDAsMCwgMSww
LCAwLjUsMSwgMCwxLCAwLjUsMCwgMSwxIF0pLCBidWZmZXJVc2FnZSk7CiAgICAgZ2wuZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkoMCk7CiAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAyLCBn
bC5GTE9BVCwgZmFsc2UsIDAsIDApOwogCi0gICAgY29uc3QgYmFzZUluc3RhbmNlWmVyb1Byb2dy
YW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlSW5zdGFuY2VaZXJvIiwgImZz
aGFkZXIiXSwgWyJ2UG9zaXRpb24iXSwgWzBdKTsKLSAgICBleHBlY3RUcnVlKGJhc2VJbnN0YW5j
ZVplcm9Qcm9ncmFtICE9PSBudWxsLCAiY2FuIGNvbXBpbGUgcHJvZ3JhbSB3aXRoIGdsX0Jhc2VJ
bnN0YW5jZSIpOwotICAgIGdsLnVzZVByb2dyYW0oYmFzZUluc3RhbmNlWmVyb1Byb2dyYW0pOwot
Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQp
OwotICAgIGlmICghbXVsdGlEcmF3KSB7Ci0gICAgICBleHQuZHJhd0FycmF5c0luc3RhbmNlZEJh
c2VJbnN0YW5jZVdFQkdMKGdsLlRSSUFOR0xFUywgMCwgNiwgMSwgNSk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgIGV4dC5tdWx0aURyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2VXRUJHTChnbC5U
UklBTkdMRVMsIFswXSwgMCwgWzZdLCAwLCBbMV0sIDAsIFs1XSwgMCwgMSk7Ci0gICAgfQotCi0g
ICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwot
ICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLQotICAgIHd0dS5jaGVja0Nh
bnZhc1JlY3QoZ2wsIHgsIHksIHhTaXplLCB5U2l6ZSwgWzAsIDI1NSwgMCwgMjU1XSwgImdsX0Jh
c2VJbnN0YW5jZSBpcyAwIGZvciBub24tQmFzZUluc3RhbmNlIGRyYXcgY2FsbHMiKTsKLQogICAg
IGNvbnN0IGluc3RhbmNlSURQcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVy
SW5zdGFuY2VJRENoZWNrIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRpb24iXSwgWzBdKTsKICAgICBl
eHBlY3RUcnVlKGluc3RhbmNlSURQcm9ncmFtICE9PSBudWxsLCAiY2FuIGNvbXBpbGUgcHJvZ3Jh
bSB3aXRoIGdsX0luc3RhbmNlSUQiKTsKICAgICBnbC51c2VQcm9ncmFtKGluc3RhbmNlSURQcm9n
cmFtKTsKQEAgLTUzNSw3ICs3NTEsNyBAQCBmdW5jdGlvbiBkb1Rlc3QoZXh0ZW5zaW9uTmFtZSwg
bXVsdGlEcmF3KSB7CiAKICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCB4LCB5LCB4U2l6ZSwg
eVNpemUsIFswLCAyNTUsIDAsIDI1NV0sICJnbF9JbnN0YW5jZUlEIHNob3VsZCBhbHdheXMgc3Rh
cnRzIGZyb20gMCIpOwogCi0gICAgLy8gZ2xfQmFzZVZlcnRleCBhbmQgZ2xfVmVydGV4SUQKKyAg
ICAvLyBnbF9WZXJ0ZXhJRAogICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5j
cmVhdGVCdWZmZXIoKSk7CiAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBG
bG9hdDMyQXJyYXkoWyAwLDAsIDEsMCwgMC41LDEsIDAsMSwgMC41LDAsIDEsMSwgMCwwLCAxLDAs
IDAuNSwxLCAwLDEgXSksIGJ1ZmZlclVzYWdlKTsKICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBnbC5jcmVhdGVCdWZmZXIoKSk7CkBAIC01NDMsMjIgKzc1OSw2IEBA
IGZ1bmN0aW9uIGRvVGVzdChleHRlbnNpb25OYW1lLCBtdWx0aURyYXcpIHsKICAgICBnbC5lbmFi
bGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDIs
IGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CiAKLSAgICBjb25zdCBiYXNlVmVydGV4WmVyb1Byb2dy
YW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXJCYXNlVmVydGV4WmVybyIsICJmc2hh
ZGVyIl0sIFsidlBvc2l0aW9uIl0sIFswXSk7Ci0gICAgZXhwZWN0VHJ1ZShiYXNlVmVydGV4WmVy
b1Byb2dyYW0gIT09IG51bGwsICJjYW4gY29tcGlsZSBwcm9ncmFtIHdpdGggZ2xfQmFzZVZlcnRl
eCIpOwotICAgIGdsLnVzZVByb2dyYW0oYmFzZVZlcnRleFplcm9Qcm9ncmFtKTsKLQotICAgIGds
LmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICBp
ZiAoIW11bHRpRHJhdykgewotICAgICAgZXh0LmRyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0
ZXhCYXNlSW5zdGFuY2VXRUJHTChnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX0JZVEUsIDAs
IDEsIDMsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICBleHQubXVsdGlEcmF3RWxlbWVudHNJbnN0
YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlV0VCR0woZ2wuVFJJQU5HTEVTLCBbNl0sIDAsIGds
LlVOU0lHTkVEX0JZVEUsIFswXSwgMCwgWzFdLCAwLCBbM10sIDAsIFswXSwgMCwgMSk7Ci0gICAg
fQotCi0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOwotICAgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX0JZ
VEUsIDApOwotCi0gICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgeCwgeSwgeFNpemUsIHlTaXpl
LCBbMCwgMjU1LCAwLCAyNTVdLCAiZ2xfQmFzZVZlcnRleCBpcyAwIGZvciBub24tQmFzZVZlcnRl
eCBkcmF3IGNhbGxzIik7Ci0KICAgICBjb25zdCB2ZXJ0ZXhJRFByb2dyYW0gPSB3dHUuc2V0dXBQ
cm9ncmFtKGdsLCBbInZzaGFkZXJWZXJ0ZXhJRENoZWNrIiwgImZzaGFkZXIiXSwgWyJ2UG9zaXRp
b24iXSwgWzBdKTsKICAgICBleHBlY3RUcnVlKHZlcnRleElEUHJvZ3JhbSAhPT0gbnVsbCwgImNh
biBjb21waWxlIHByb2dyYW0gd2l0aCBnbF9WZXJ0ZXhJRCIpOwogICAgIGdsLnVzZVByb2dyYW0o
dmVydGV4SURQcm9ncmFtKTsKQEAgLTY3NywzMCArODc3LDYgQEAgZnVuY3Rpb24gZG9UZXN0KGV4
dGVuc2lvbk5hbWUsIG11bHRpRHJhdykgewogICAgICAgdXNlQmFzZUluc3RhbmNlQnVpbHRpbjog
ZmFsc2UKICAgICB9KTsKIAotICAgIGNoZWNrRHJhdyh7Ci0gICAgICBkcmF3RnVuYzogbXVsdGlE
cmF3ID8gbXVsdGlEcmF3QXJyYXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlIDogZHJhd0FycmF5c0lu
c3RhbmNlZEJhc2VJbnN0YW5jZSwKLSAgICAgIGlzRHJhd0FycmF5czogdHJ1ZSwKLSAgICAgIGlz
TXVsdGlEcmF3OiBtdWx0aURyYXcsCi0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogdHJ1ZSwK
LSAgICAgIHVzZUJhc2VJbnN0YW5jZUJ1aWx0aW46IGZhbHNlCi0gICAgfSk7Ci0KLSAgICBjaGVj
a0RyYXcoewotICAgICAgZHJhd0Z1bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0FycmF5c0luc3Rh
bmNlZEJhc2VJbnN0YW5jZSA6IGRyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UsCi0gICAg
ICBpc0RyYXdBcnJheXM6IHRydWUsCi0gICAgICBpc011bHRpRHJhdzogbXVsdGlEcmF3LAotICAg
ICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IGZhbHNlLAotICAgICAgdXNlQmFzZUluc3RhbmNlQnVp
bHRpbjogdHJ1ZQotICAgIH0pOwotCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRyYXdGdW5jOiBt
dWx0aURyYXcgPyBtdWx0aURyYXdBcnJheXNJbnN0YW5jZWRCYXNlSW5zdGFuY2UgOiBkcmF3QXJy
YXlzSW5zdGFuY2VkQmFzZUluc3RhbmNlLAotICAgICAgaXNEcmF3QXJyYXlzOiB0cnVlLAotICAg
ICAgaXNNdWx0aURyYXc6IG11bHRpRHJhdywKLSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGluOiB0
cnVlLAotICAgICAgdXNlQmFzZUluc3RhbmNlQnVpbHRpbjogdHJ1ZQotICAgIH0pOwotCiAgICAg
Y2hlY2tEcmF3KHsKICAgICAgIGRyYXdGdW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdFbGVtZW50
c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UgOiBkcmF3RWxlbWVudHNJbnN0YW5jZWRC
YXNlVmVydGV4QmFzZUluc3RhbmNlLAogICAgICAgaXNEcmF3QXJyYXlzOiBmYWxzZSwKQEAgLTcw
OCwzMCArODg0LDYgQEAgZnVuY3Rpb24gZG9UZXN0KGV4dGVuc2lvbk5hbWUsIG11bHRpRHJhdykg
ewogICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IGZhbHNlLAogICAgICAgdXNlQmFzZUluc3Rh
bmNlQnVpbHRpbjogZmFsc2UKICAgICB9KTsKLQotICAgIGNoZWNrRHJhdyh7Ci0gICAgICBkcmF3
RnVuYzogbXVsdGlEcmF3ID8gbXVsdGlEcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFz
ZUluc3RhbmNlIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJbnN0YW5jZSwK
LSAgICAgIGlzRHJhd0FycmF5czogZmFsc2UsCi0gICAgICBpc011bHRpRHJhdzogbXVsdGlEcmF3
LAotICAgICAgdXNlQmFzZVZlcnRleEJ1aWx0aW46IHRydWUsCi0gICAgICB1c2VCYXNlSW5zdGFu
Y2VCdWlsdGluOiBmYWxzZQotICAgIH0pOwotCi0gICAgY2hlY2tEcmF3KHsKLSAgICAgIGRyYXdG
dW5jOiBtdWx0aURyYXcgPyBtdWx0aURyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNl
SW5zdGFuY2UgOiBkcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4QmFzZUluc3RhbmNlLAot
ICAgICAgaXNEcmF3QXJyYXlzOiBmYWxzZSwKLSAgICAgIGlzTXVsdGlEcmF3OiBtdWx0aURyYXcs
Ci0gICAgICB1c2VCYXNlVmVydGV4QnVpbHRpbjogZmFsc2UsCi0gICAgICB1c2VCYXNlSW5zdGFu
Y2VCdWlsdGluOiB0cnVlCi0gICAgfSk7Ci0KLSAgICBjaGVja0RyYXcoewotICAgICAgZHJhd0Z1
bmM6IG11bHRpRHJhdyA/IG11bHRpRHJhd0VsZW1lbnRzSW5zdGFuY2VkQmFzZVZlcnRleEJhc2VJ
bnN0YW5jZSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UsCi0g
ICAgICBpc0RyYXdBcnJheXM6IGZhbHNlLAotICAgICAgaXNNdWx0aURyYXc6IG11bHRpRHJhdywK
LSAgICAgIHVzZUJhc2VWZXJ0ZXhCdWlsdGluOiB0cnVlLAotICAgICAgdXNlQmFzZUluc3RhbmNl
QnVpbHRpbjogdHJ1ZQotICAgIH0pOwogICB9CiAKICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidWZm
ZXJVc2FnZVNldC5sZW5ndGg7IGkrKykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2FycmF5LWVxdWFs
aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvZ2xzbDMvYXJyYXktZXF1YWxpdHkuaHRtbAppbmRleCBhM2VlZmQ1YmY0MDVk
ZmM1M2UwNmNhZjM5MDFjNTBiMmJiNWI4ZTUxLi5kY2ZmYTJjMGEzMjc3YzFjNzhhODk1YTI1MDlm
NGE4OThhYjg0ZGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvYXJyYXktZXF1YWxpdHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZTIvZ2xzbDMvYXJyYXktZXF1YWxpdHkuaHRtbApAQCAtNjEsNiArNjEsNTQgQEAgdm9pZCBtYWlu
KCkgewogICAgIG15X0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAoc3VjY2VzcyA/IDEuMCA6IDAuMCks
IDAuMCwgMS4wKTsKIH0KIDwvc2NyaXB0PgorPHNjcmlwdCBpZD0ic2ltcGxlLWZsb2F0LWFycmF5
LWZzIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0OworCit1bmlmb3JtIGZsb2F0IGFbM107Cit1bmlmb3JtIGZsb2F0IGJb
M107CisKK291dCB2ZWM0IGZyYWdDb2xvcjsKKwordm9pZCBtYWluKHZvaWQpIHsKKyAgICBmcmFn
Q29sb3IgPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7CisKKyAgICBpZiAoYSA9PSBiKSB7Cisg
ICAgICAgIGZyYWdDb2xvci5nID0gMS4wOworICAgIH0KK30KKzwvc2NyaXB0PgorPHNjcmlwdCBp
ZD0ic2ltcGxlLXZlYy1hcnJheS1mcyIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+I3ZlcnNp
b24gMzAwIGVzCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKwordW5pZm9ybSB2ZWMzIGFbM107
Cit1bmlmb3JtIHZlYzMgYlszXTsKKworb3V0IHZlYzQgZnJhZ0NvbG9yOworCit2b2lkIG1haW4o
dm9pZCkgeworICAgIGZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKKworICAg
IGlmIChhID09IGIpIHsKKyAgICAgICAgZnJhZ0NvbG9yLmcgPSAxLjA7CisgICAgfQorfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IGlkPSJzaW1wbGUtbWF0LWFycmF5LWZzIiB0eXBlPSJ4LXNoYWRlci94
LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCit1
bmlmb3JtIG1hdDMgYVszXTsKK3VuaWZvcm0gbWF0MyBiWzNdOworCitvdXQgdmVjNCBmcmFnQ29s
b3I7CisKK3ZvaWQgbWFpbih2b2lkKSB7CisgICAgZnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwg
MC4wLCAxLjApOworCisgICAgaWYgKGEgPT0gYikgeworICAgICAgICBmcmFnQ29sb3IuZyA9IDEu
MDsKKyAgICB9Cit9Cis8L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNj
cmlwdCI+CiAidXNlIHN0cmljdCI7CiBkZXNjcmlwdGlvbigiQ29tcGFyaW5nIGFycmF5cyBzaG91
bGQgd29yay4iKTsKQEAgLTc3LDcgKzEyNSwxMTQgQEAgR0xTTENvbmZvcm1hbmNlVGVzdGVyLnJ1
blJlbmRlclRlc3RzKFsKICAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCiAgIGxpbmtTdWNjZXNzOiB0
cnVlLAogICBwYXNzTXNnOiAnQXJyYXlzIG9mIHN0cnVjdHMnCi19Cit9LAoreworICBmU2hhZGVy
SWQ6ICJzaW1wbGUtZmxvYXQtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAg
bGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgcGFzc01zZzogIlNpbXBsZSBm
bG9hdCBhcnJheSB3aXRoIGRlZmF1bHQgdmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDogInNp
bXBsZS1mbG9hdC1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBsaW5rU3Vj
Y2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICByZW5kZXJDb2xvcjogWzAsIDAsIDAsIDI1
NV0sCisgIHVuaWZvcm1zOiBbCisgICAgeyBuYW1lOiAnYScsIGZ1bmN0aW9uTmFtZTogJ3VuaWZv
cm0xZnYnLCB2YWx1ZTogWzEsIDIsIDNdfSwKKyAgICB7IG5hbWU6ICdiJywgZnVuY3Rpb25OYW1l
OiAndW5pZm9ybTFmdicsIHZhbHVlOiBbMSwgMiwgNF19LAorICBdLAorICBwYXNzTXNnOiAiU2lt
cGxlIGZsb2F0IGFycmF5IHdpdGggZGlmZmVyZW50IHZhbHVlcyIsCit9LAoreworICBmU2hhZGVy
SWQ6ICJzaW1wbGUtZmxvYXQtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAg
bGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7
IG5hbWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTFmdicsIHZhbHVlOiBbMSwgMiwgM119
LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtMWZ2JywgdmFsdWU6IFsx
LCAyLCAzXX0sCisgIF0sCisgIHBhc3NNc2c6ICJTaW1wbGUgZmxvYXQgYXJyYXkgd2l0aCBzYW1l
IHZhbHVlcyIsCit9LAoreworICBmU2hhZGVySWQ6ICJzaW1wbGUtdmVjLWFycmF5LWZzIiwKKyAg
ZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6IHRy
dWUsCisgIHBhc3NNc2c6ICJTaW1wbGUgdmVjIGFycmF5IHdpdGggZGVmYXVsdCB2YWx1ZXMiLAor
fSwKK3sKKyAgZlNoYWRlcklkOiAic2ltcGxlLXZlYy1hcnJheS1mcyIsCisgIGZTaGFkZXJTdWNj
ZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAgcmVuZGVyOiB0cnVlLAorICByZW5k
ZXJDb2xvcjogWzAsIDAsIDAsIDI1NV0sCisgIHVuaWZvcm1zOiBbCisgICAgeyBuYW1lOiAnYScs
IGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm0zZnYnLCB2YWx1ZTogWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDgsIDldfSwKKyAgICB7IG5hbWU6ICdiJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTNmdicsIHZh
bHVlOiBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgMTBdfSwKKyAgXSwKKyAgcGFzc01zZzogIlNp
bXBsZSB2ZWMgYXJyYXkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJ
ZDogInNpbXBsZS12ZWMtYXJyYXktZnMiLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgbGlu
a1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1ZSwKKyAgdW5pZm9ybXM6IFsKKyAgICB7IG5h
bWU6ICdhJywgZnVuY3Rpb25OYW1lOiAndW5pZm9ybTNmdicsIHZhbHVlOiBbMSwgMiwgMywgNCwg
NSwgNiwgNywgOCwgOV19LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3Jt
M2Z2JywgdmFsdWU6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XX0sCisgIF0sCisgIHBhc3NN
c2c6ICJTaW1wbGUgdmVjIGFycmF5IHdpdGggc2FtZSB2YWx1ZXMiLAorfSwKK3sKKy8vICAgICAg
ICAgICAic2ltcGxlLW1hdC1hcnJheS1mcyIKKyAgZlNoYWRlcklkOiAic2ltcGxlLW1hdC1hcnJh
eS1mcyIsCisgIGZTaGFkZXJTdWNjZXNzOiB0cnVlLAorICBsaW5rU3VjY2VzczogdHJ1ZSwKKyAg
cmVuZGVyOiB0cnVlLAorICBwYXNzTXNnOiAiU2ltcGxlIG1hdCBhcnJheSB3aXRoIGRlZmF1bHQg
dmFsdWVzIiwKK30sCit7CisgIGZTaGFkZXJJZDogInNpbXBsZS1tYXQtYXJyYXktZnMiLAorICBm
U2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHJlbmRlcjogdHJ1
ZSwKKyAgcmVuZGVyQ29sb3I6IFswLCAwLCAwLCAyNTVdLAorICB1bmlmb3JtczogWworICAgIHsg
bmFtZTogJ2EnLCBmdW5jdGlvbk5hbWU6ICd1bmlmb3JtTWF0cml4M2Z2JywgdmFsdWU6IFsKKyAg
ICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksCisgICAgICAyMSwgMjIsIDIz
LCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LAorICAgICAgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwKKyAgICBdfSwKKyAgICB7IG5hbWU6ICdiJywgZnVuY3Rpb25OYW1lOiAndW5p
Zm9ybU1hdHJpeDNmdicsIHZhbHVlOiBbCisgICAgICAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAx
NywgMTgsIDE5LAorICAgICAgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwKKyAg
ICAgIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzMCwgMzksCisgICAgXX0sCisgIF0sCisg
IHBhc3NNc2c6ICJTaW1wbGUgdmVjIGFycmF5IHdpdGggZGlmZmVyZW50IHZhbHVlcyIsCit9LAor
eworICBmU2hhZGVySWQ6ICJzaW1wbGUtbWF0LWFycmF5LWZzIiwKKyAgZlNoYWRlclN1Y2Nlc3M6
IHRydWUsCisgIGxpbmtTdWNjZXNzOiB0cnVlLAorICByZW5kZXI6IHRydWUsCisgIHVuaWZvcm1z
OiBbCisgICAgeyBuYW1lOiAnYScsIGZ1bmN0aW9uTmFtZTogJ3VuaWZvcm1NYXRyaXgzZnYnLCB2
YWx1ZTogWworICAgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwKKyAgICAg
IDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksCisgICAgICAzMSwgMzIsIDMzLCAz
NCwgMzUsIDM2LCAzNywgMzgsIDM5LAorICAgIF19LAorICAgIHsgbmFtZTogJ2InLCBmdW5jdGlv
bk5hbWU6ICd1bmlmb3JtTWF0cml4M2Z2JywgdmFsdWU6IFsKKyAgICAgIDExLCAxMiwgMTMsIDE0
LCAxNSwgMTYsIDE3LCAxOCwgMTksCisgICAgICAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywg
MjgsIDI5LAorICAgICAgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwKKyAgICBd
fSwKKyAgXSwKKyAgcGFzc01zZzogIlNpbXBsZSB2ZWMgYXJyYXkgd2l0aCBzYW1lIHZhbHVlcyIs
Cit9LAogXSwgMik7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFn
bWVudC1zaGFkZXItbG9vcC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2dsc2wzL2ZyYWdtZW50LXNoYWRlci1sb29w
LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE3MWI5NGUyNmExMGIyZjRhMzJhNjc1NzNjOWE2NmNi
NDUzMTBjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9mcmFnbWVudC1zaGFkZXItbG9vcC1j
cmFzaC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUg
S2hyb25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0Uu
dHh0IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPkZyYWdtZW50IHNoYWRlciBjb250YWluaW5nIGxvb3Ag
c2hvdWxkIG5vdCBjcmFzaDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvZ2xzbC1mZWF0dXJlLXRlc3RzLmNzcyIvPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVyc2lvbiAz
MDAgZXMKK3ByZWNpc2lvbiBoaWdocCBmbG9hdDsKK291dCB2ZWMyIHZfdGV4X2Nvb3JkOwordW5p
Zm9ybSBtYXQ0IG1hdHJpeDsKKwordm9pZCBtYWluKCkgeworICAgdl90ZXhfY29vcmQgPSB2ZWMy
KDAuMCwgMC4wKTsKKyAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdt
ZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBoaWdocCBmbG9hdDsKKworaW4gdmVjMiB2
X3RleF9jb29yZDsKK291dCB2ZWM0IG91dF9jb2xvcjsKKwordW5pZm9ybSBzYW1wbGVyMkQgdGV4
dHVyZV8xOwordW5pZm9ybSB2ZWMyIHJlc29sdXRpb247CisKK3ZlYzQgZG9fbG9vcHModmVjNCB6
KQoreworICAgIHZlYzQgdlsxNl07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKQor
ICAgIHsKKyAgICAgICAgdltpXSA9IHo7CisgICAgfQorICAgIHJldHVybiB2WzFdOworfQorCit2
b2lkIG1haW4oKSB7CisgICAgb3V0X2NvbG9yID0gZG9fbG9vcHModmVjNCgwLjIsIDAuNCwgMC42
LCAxLjApKSAtIHRleHR1cmUodGV4dHVyZV8xLCB2X3RleF9jb29yZCk7Cit9Cis8L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisidXNlIHN0cmljdCI7Citk
ZXNjcmlwdGlvbigpOworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCB0ZXN0cyA9
IFsKKyAgICB7CisgICAgICAgIHZTaGFkZXJTb3VyY2U6IHd0dS5nZXRTY3JpcHQoJ3ZzaGFkZXIn
KSwKKyAgICAgICAgZlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgnZnNoYWRlcicpLAorICAg
ICAgICB2U2hhZGVyU3VjY2VzczogdHJ1ZSwKKyAgICAgICAgZlNoYWRlclN1Y2Nlc3M6IHRydWUs
CisgICAgICAgIGxpbmtTdWNjZXNzOiB0cnVlLAorICAgICAgICBwYXNzTXNnOiAnRnJhZ21lbnQg
c2hhZGVyIGNvbnRhaW5pbmcgYSBzaW1wbGUgbG9vcCBzaG91bGQgY29tcGlsZSBhbmQgbGluaycK
KyAgICB9CitdOworCitHTFNMQ29uZm9ybWFuY2VUZXN0ZXIucnVuVGVzdHModGVzdHMsIDIpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJv
dy1tYWpvci1keW5hbWljLWluZGV4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvbWF0cml4LXJvdy1tYWpvci1k
eW5hbWljLWluZGV4aW5nLmh0bWwKaW5kZXggOGNiY2I5OTM0YzIyYjk3ZDhmYmEwYTc5MGE1NmNh
MGEyMzVlZTljYi4uZWM2YTliYmQxYmU0NTNmYjJiMmMwMTE5MDAwZWFlNDVjMzgxNzZlNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL2dsc2wzL21hdHJpeC1yb3ctbWFqb3ItZHluYW1pYy1pbmRleGluZy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlMi9nbHNsMy9tYXRyaXgtcm93LW1ham9yLWR5bmFtaWMtaW5kZXhpbmcuaHRtbApAQCAtMzMs
NiArMzMsMjIgQEAgdm9pZCBtYWluKCkgewogICAgIG15X0ZyYWdDb2xvciA9IHZlYzQoMS4wIC0g
ZiwgZiwgMC4wLCAxLjApOwogfQogPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyUm93TWF0
cml4SW5kZXhlZEJ5Um93TWF0cml4SW5Vbmlmb3JtQmxvY2siIHR5cGU9Ingtc2hhZGVyL3gtZnJh
Z21lbnQiPiN2ZXJzaW9uIDMwMCBlcworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZv
cm0gU3R1ZmYgeworICBsYXlvdXQocm93X21ham9yKSBtYXQ0IHVfbWF0WzNdOworICBsYXlvdXQo
cm93X21ham9yKSBtYXQ0IHVfbmR4WzNdOworfSBzdHVmZjsKKworCitvdXQgdmVjNCBteV9GcmFn
Q29sb3I7CisKK3ZvaWQgbWFpbigpIHsKKyAgdmVjNCByb3cgPSBzdHVmZi51X21hdFtpbnQoc3R1
ZmYudV9uZHhbMV1bMV1bM10pXVsyXTsKKyAgbXlfRnJhZ0NvbG9yID0gcm93ID09IHZlYzQoOSwg
MTAsIDExLCAxMikgPyB2ZWM0KDAsIDEsIDAsIDEpIDogdmVjNCgxLCAwLCAwLCAxKTsKK30KKzwv
c2NyaXB0PgogPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KICJ1c2Ugc3Ry
aWN0IjsKIGRlc2NyaXB0aW9uKCJJbmRleGluZyByb3ctbWFqb3IgbWF0cmljZXMgd2l0aGluIGEg
dW5pZm9ybSBibG9jayBzaG91bGQgd29yayIpOwpAQCAtNDksNiArNjUsNTEgQEAgR0xTTENvbmZv
cm1hbmNlVGVzdGVyLnJ1blJlbmRlclRlc3RzKFsKICAgICAwLCAwLCAwLCAwLAogICAgIDAsIDAs
IDAsIDAsCiAgIF0pfV0sCit9LAoreworICBmU2hhZGVySWQ6ICdmc2hhZGVyUm93TWF0cml4SW5k
ZXhlZEJ5Um93TWF0cml4SW5Vbmlmb3JtQmxvY2snLAorICBmU2hhZGVyU3VjY2VzczogdHJ1ZSwK
KyAgbGlua1N1Y2Nlc3M6IHRydWUsCisgIHBhc3NNc2c6ICcnLAorICB1bmlmb3JtQmxvY2tzOiBb
e25hbWU6ICJTdHVmZiIsIHZhbHVlOiBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAvLyBtYXQ0IHVf
bWF0WzNdCisgICAgIDEsICAyLCAgMywgIDQsCisgICAgIDUsICA2LCAgNywgIDgsCisgICAgIDks
IDEwLCAxMSwgMTIsCisgICAgMTMsIDE0LCAxNSwgMTYsCisKKyAgICAgICAgIC8vICArLS0gd2Ug
c2hvdWxkIGJlIHB1bGxpbmcgb3V0IHRoaXMgY29sdW1uCisgICAgICAgICAvLyAgfAorICAgICAg
ICAgLy8gIFYKKyAgICAgMSwgIDUsICA5LCAxMywKKyAgICAgMiwgIDYsIDEwLCAxNCwKKyAgICAg
MywgIDcsIDExLCAxNSwKKyAgICAgNCwgIDgsIDEyLCAxNiwKKworICAgICAyLCAxMCwgMTgsIDIy
LAorICAgICA0LCAxMiwgMjAsIDI4LAorICAgICA2LCAxNCwgMjIsIDMwLAorICAgICA4LCAxNiwg
MjQsIDMyLAorCisgICAgLy8gbWF0NCB1X25keFszXQorICAgIDAsIDAsIDAsIDAsCisgICAgMCwg
MCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsCisKKyAgICAwLCAwLCAw
LCAwLAorICAgIDAsIDAsIDAsIDIsCisgICAgMCwgMCwgMCwgMCwKKyAgICAwLCAxLCAwLCAwLAor
ICAgIC8vIF4KKyAgICAvLyB8CisgICAgLy8gKy0tIHdlIHNob3VsZCBiZSByZWFkaW5nIHRoaXMg
dmFsdWUgYXMgYW4gaW5kZXggaW50byB1X21hdAorCisgICAgMCwgMCwgMCwgMCwKKyAgICAwLCAw
LCAwLCAwLAorICAgIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwKKyAgXSl9XSwKIH0KIF0s
IDIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1
bS1vZi1zcXVhcmVzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvZ2xzbDMvcmVjaXByb2NhbC1zcXJ0LW9mLXN1bS1v
Zi1zcXVhcmVzLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkxNTIzYWVhMDVkMGY4ZGNjZDNkMjU2
ZTdlY2I2ZWY2ZDI0ZDhhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9nbHNsMy9yZWNpcHJvY2FsLXNx
cnQtb2Ytc3VtLW9mLXNxdWFyZXMtY3Jhc2guaHRtbApAQCAtMCwwICsxLDY2IEBACis8IS0tCitD
b3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK
K2ZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5TaGFkZXIgaWRl
bnRpZmllZCBhcyBjb250YWluaW5nIHJlY2lwcm9jYWwgc3F1YXJlIHJvb3Qgb2Ygc3VtIG9mIHNx
dWFyZXMgc2hvdWxkIG5vdCBjcmFzaDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvZ2xzbC1mZWF0dXJlLXRlc3RzLmNzcyIvPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4jdmVy
c2lvbiAzMDAgZXMKK3ZvaWQgbWFpbigpIHsKKyAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAu
MCwgMC4wLCAwLjApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4jdmVyc2lvbiAzMDAgZXMKK3ByZWNpc2lvbiBoaWdocCBmbG9h
dDsKKworI2RlZmluZSBDUkFTSCAxCisKK291dCB2ZWM0IGZyYWdtZW50Q29sb3I7Cit2b2lkIG1h
aW4oKQoreworICAgIHZlYzIgcCA9IGdsX0ZyYWdDb29yZC54eTsKKyAgICAvLyBUaGlzIGV4cHJl
c3Npb24gbWVldHMgdGhlIHJlcXVpcmVtZW50IG9mIGJlaW5nIHRoZSByZWNpcHJvY2FsCisgICAg
Ly8gc3F1YXJlIHJvb3Qgb2YgYSBzdW0gb2Ygc3F1YXJlcy4KKyAgICBmbG9hdCBkID0gMS4wIC8g
bGVuZ3RoKHApOworI2lmIENSQVNICisgICAgaWYgKHAueCA+IDAuMCkKKyAgICB7CisgICAgICAg
IGQgKj0gMi4wOworICAgIH0KKyNlbmRpZgorICAgIGZyYWdtZW50Q29sb3IgPSB2ZWM0KGQpOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorInVz
ZSBzdHJpY3QiOworZGVzY3JpcHRpb24oKTsKK2RlYnVnKCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vY3JidWcuY29tLzEwNzkzMDkiPmNyYnVnLmNvbS8xMDc5MzA5PC9hPicp
OworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCB0ZXN0cyA9IFsKKyAgICB7Cisg
ICAgICAgIHZTaGFkZXJTb3VyY2U6IHd0dS5nZXRTY3JpcHQoJ3ZzaGFkZXInKSwKKyAgICAgICAg
ZlNoYWRlclNvdXJjZTogd3R1LmdldFNjcmlwdCgnZnNoYWRlcicpLAorICAgICAgICB2U2hhZGVy
U3VjY2VzczogdHJ1ZSwKKyAgICAgICAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgICAgICAgIGxp
bmtTdWNjZXNzOiB0cnVlLAorICAgICAgICBwYXNzTXNnOiAnU2hhZGVyIGNvbnRhaW5pbmcgZXhw
cmVzc2lvbiB0aGF0IGRyaXZlciByZWNvZ25pemVzIGFzIHJlY2lwcm9jYWwgc3F1YXJlIHJvb3Qg
b2Ygc3VtIG9mIHNxdWFyZXMgc2hvdWxkIGNvbXBpbGUgYW5kIGxpbmsnCisgICAgfQorXTsKKwor
R0xTTENvbmZvcm1hbmNlVGVzdGVyLnJ1blRlc3RzKHRlc3RzLCAyKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21pc2MvYmxlbmQtaW50ZWdlci5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL21p
c2MvYmxlbmQtaW50ZWdlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwY2NmZDBkODYwY2ViMzI5ZThkNGFk
YjRlOTdlOTYxMmQxNDhiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9ibGVuZC1pbnRlZ2Vy
Lmh0bWwKQEAgLTAsMCArMSwxNzYgQEAKKzwhLS0KK0NvcHlyaWdodCAoYykgMjAyMSBUaGUgS2hy
b25vcyBHcm91cCBJbmMuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
biBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0
IGZpbGUuCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIDIgQmxlbmQgSW50ZWdlciBDb25mb3JtYW5jZSBU
ZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0ib3V0cHV0VmVydGV4U2hh
ZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisjdmVyc2lvbiAzMDAgZXMKK2luIHZlYzQg
dlBvc2l0aW9uOwordm9pZCBtYWluKCkKK3sKKyAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Cit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9Im91dHB1dEZyYWdtZW50U2hhZGVyU2lnbmVkIiB0eXBl
PSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyN2ZXJzaW9uIDMwMCBlcworbGF5b3V0KGxvY2F0aW9u
ID0gMSkgb3V0IGhpZ2hwIHZlYzQgb19kcmF3QnVmZmVyMTsKK2xheW91dChsb2NhdGlvbiA9IDIp
IG91dCBoaWdocCBpdmVjNCBvX2RyYXdCdWZmZXIyOworbGF5b3V0KGxvY2F0aW9uID0gMykgb3V0
IGhpZ2hwIHZlYzQgb19kcmF3QnVmZmVyMzsKK3ZvaWQgbWFpbih2b2lkKQoreworICBvX2RyYXdC
dWZmZXIxID0gdmVjNCgwLCAwLCAwLCAwKTsKKyAgb19kcmF3QnVmZmVyMiA9IGl2ZWM0KDAsIDAs
IDAsIDApOworICBvX2RyYXdCdWZmZXIzID0gdmVjNCgwLCAwLCAwLCAwKTsKK30KKzwvc2NyaXB0
PgorPHNjcmlwdCBpZD0ib3V0cHV0RnJhZ21lbnRTaGFkZXJVbnNpZ25lZCIgdHlwZT0ieC1zaGFk
ZXIveC1mcmFnbWVudCI+CisgICN2ZXJzaW9uIDMwMCBlcworICBsYXlvdXQobG9jYXRpb24gPSAx
KSBvdXQgaGlnaHAgdmVjNCBvX2RyYXdCdWZmZXIxOworICBsYXlvdXQobG9jYXRpb24gPSAyKSBv
dXQgaGlnaHAgdXZlYzQgb19kcmF3QnVmZmVyMjsKKyAgbGF5b3V0KGxvY2F0aW9uID0gMykgb3V0
IGhpZ2hwIHZlYzQgb19kcmF3QnVmZmVyMzsKKyAgdm9pZCBtYWluKHZvaWQpCisgIHsKKyAgICBv
X2RyYXdCdWZmZXIxID0gdmVjNCgwLCAwLCAwLCAwKTsKKyAgICBvX2RyYXdCdWZmZXIyID0gdXZl
YzQoMCwgMCwgMCwgMCk7CisgICAgb19kcmF3QnVmZmVyMyA9IHZlYzQoMCwgMCwgMCwgMCk7Cisg
IH0KKyAgPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IHZlcmlmaWVzIGNvcnJlY3QgYmVoYXZpb3Igb2YgbWluL21heCBibGVuZGluZyBv
cGVyYXRpb25zIG9uIGludGVnZXIgYXR0YWNobWVudHMuIik7CisKK2RlYnVnKCIiKTsKKworY29u
c3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
bnVsbCwgdW5kZWZpbmVkLCAyKTsKKworaWYgKCFnbCkgeworICB0ZXN0RmFpbGVkKCJXZWJHTCBj
b250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0UGFzc2VkKCJXZWJHTCBj
b250ZXh0IGV4aXN0cyIpOworCisgIGRlYnVnKCIiKQorICBkZWJ1ZygiR0xfTUlOIik7CisgIHJ1
blRlc3QoZmFsc2UsIGdsLk1JTik7CisgIHJ1blRlc3QodHJ1ZSwgZ2wuTUlOKTsKKworICBkZWJ1
ZygiIikKKyAgZGVidWcoIkdMX01BWCIpOworICBydW5UZXN0KGZhbHNlLCBnbC5NQVgpOworICBy
dW5UZXN0KHRydWUsIGdsLk1BWCk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVWYWx1ZSh2YWx1ZSwg
YXR0YWNobWVudCwgaXNTaWduZWQpIHsKKyAgY29uc3QgcGl4ZWwgPSBpc1NpZ25lZCA/IG5ldyBJ
bnQzMkFycmF5KDQpIDogbmV3IFVpbnQzMkFycmF5KDQpOworICBnbC5yZWFkQnVmZmVyKGF0dGFj
aG1lbnQpOworICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkFfSU5URUdFUiwgaXNT
aWduZWQgPyBnbC5JTlQgOiBnbC5VTlNJR05FRF9JTlQsIHBpeGVsKTsKKyAgbGV0IHBhc3MgPSB0
cnVlOworICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgIGlmICh2YWx1ZVtpXSAh
PSBwaXhlbFtpXSkgeworICAgICAgdGVzdEZhaWxlZChgUmVhZCB2YWx1ZSBvZiBjaGFubmVsICR7
aX0gc2hvdWxkIGJlICR7cGl4ZWxbaV19LCB3YXMgJHt2YWx1ZVtpXX0uYCk7CisgICAgICBwYXNz
ID0gZmFsc2U7CisgICAgfQorICB9CisgIHJldHVybiBwYXNzOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KGlzU2lnbmVkLCBvcGVyYXRpb24pIHsKKyAgZ2wudmlld3BvcnQoMCwgMCwgMSwgMSk7Cisg
IGdsLmRpc2FibGUoZ2wuQkxFTkQpOworCisgIGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9n
cmFtKGdsLAorICAgIFsib3V0cHV0VmVydGV4U2hhZGVyIiwKKyAgICAgIGlzU2lnbmVkID8gIm91
dHB1dEZyYWdtZW50U2hhZGVyU2lnbmVkIiA6ICJvdXRwdXRGcmFnbWVudFNoYWRlclVuc2lnbmVk
Il0sCisgICAgWyd2UG9zaXRpb24nXSwgWzBdKTsKKyAgY29uc3QgcXVhZFBhcmFtZXRlcnMgPSB3
dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7CisKKyAgLy8gU2V0dXAgcmVuZGVyIHRhcmdldHMK
KyAgY29uc3QgZmIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICBnbC5iaW5kRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKworICBjb25zdCByYjEgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKTsKKyAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJiMSk7Cisg
IGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBOCwgNTAsIDUw
KTsKKyAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9S
X0FUVEFDSE1FTlQxLCBnbC5SRU5ERVJCVUZGRVIsIHJiMSk7CisKKyAgY29uc3QgcmIyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7CisgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVG
RkVSLCByYjIpOworICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgaXNT
aWduZWQgPyBnbC5SR0JBMzJJIDogZ2wuUkdCQTMyVUksIDUwLCA1MCk7CisgIGdsLmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMiwgZ2wu
UkVOREVSQlVGRkVSLCByYjIpOworCisgIGNvbnN0IHJiMyA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZl
cigpOworICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmIzKTsKKyAgZ2wu
cmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE4LCA1MCwgNTApOwor
ICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDMsIGdsLlJFTkRFUkJVRkZFUiwgcmIzKTsKKworICBnbC5kcmF3QnVmZmVycyhbZ2wu
Tk9ORSwgZ2wuQ09MT1JfQVRUQUNITUVOVDEsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UM10pOworCisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiUGlwZWxpbmUgc2V0dXAgY29tcGxldGUuIik7CisKKyAgaWYgKGlzU2lnbmVkKSB7CisgICAg
Y29uc3QgY2xlYXJWYWx1ZSA9IG5ldyBJbnQzMkFycmF5KFstMSwgMiwgLTMsIDRdKTsKKyAgICBn
bC5jbGVhckJ1ZmZlcml2KGdsLkNPTE9SLCAyLCBjbGVhclZhbHVlKTsKKyAgICBpZiAoY29tcGFy
ZVZhbHVlKGNsZWFyVmFsdWUsIGdsLkNPTE9SX0FUVEFDSE1FTlQyLCBpc1NpZ25lZCkpIHsKKyAg
ICAgIHRlc3RQYXNzZWQoIlNpZ25lZCBjbGVhciBwYXNzZWQuIik7CisgICAgfSBlbHNlIHsKKyAg
ICAgIHRlc3RGYWlsZWQoIlNpZ25lZCBjbGVhciBmYWlsZWQuIik7CisgICAgfQorICB9IGVsc2Ug
eworICAgIGNvbnN0IGNsZWFyVmFsdWUgPSBuZXcgVWludDMyQXJyYXkoWzEsIDIsIDMsIDRdKTsK
KyAgICBnbC5jbGVhckJ1ZmZlcnVpdihnbC5DT0xPUiwgMiwgY2xlYXJWYWx1ZSk7CisgICAgaWYg
KGNvbXBhcmVWYWx1ZShjbGVhclZhbHVlLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMiwgaXNTaWduZWQp
KSB7CisgICAgICB0ZXN0UGFzc2VkKCJVbnNpZ25lZCBjbGVhciBwYXNzZWQuIik7CisgICAgfSBl
bHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlVuc2lnbmVkIGNsZWFyIGZhaWxlZC4iKTsKKyAgICB9
CisgIH0KKworICBnbC5ibGVuZEVxdWF0aW9uKG9wZXJhdGlvbik7CisgIGdsLmVuYWJsZShnbC5C
TEVORCk7CisKKyAgd3R1LmRyYXdVbml0UXVhZChnbCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SLCAiRHJhdyBjb21wbGV0ZS4iKTsKKworICBpZiAoaXNTaWduZWQpIHsK
KyAgICBjb25zdCBkcmF3VmFsdWUgPSBuZXcgSW50MzJBcnJheShbMCwgMCwgMCwgMF0pOworICAg
IGlmIChjb21wYXJlVmFsdWUoZHJhd1ZhbHVlLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMiwgaXNTaWdu
ZWQpKSB7CisgICAgICB0ZXN0UGFzc2VkKCJTaWduZWQgZHJhdyBwYXNzZWQuIik7CisgICAgfSBl
bHNlIHsKKyAgICAgIHRlc3RGYWlsZWQoIlNpZ25lZCBkcmF3IGZhaWxlZC4iKTsKKyAgICB9Cisg
IH0gZWxzZSB7CisgICAgY29uc3QgZHJhd1ZhbHVlID0gbmV3IFVpbnQzMkFycmF5KFswLCAwLCAw
LCAwXSk7CisgICAgaWYgKGNvbXBhcmVWYWx1ZShkcmF3VmFsdWUsIGdsLkNPTE9SX0FUVEFDSE1F
TlQyLCBpc1NpZ25lZCkpIHsKKyAgICAgIHRlc3RQYXNzZWQoIlVuc2lnbmVkIGRyYXcgcGFzc2Vk
LiIpOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0RmFpbGVkKCJVbnNpZ25lZCBkcmF3IGZhaWxl
ZC4iKTsKKyAgICB9CisgIH0KKyAgZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKHJiMSk7CisgIGdsLmRl
bGV0ZVJlbmRlcmJ1ZmZlcihyYjIpOworICBnbC5kZWxldGVSZW5kZXJidWZmZXIocmIzKTsKKyAg
Z2wuZGVsZXRlRnJhbWVidWZmZXIoZmIpOworICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOwor
fQorCitkZWJ1ZygiIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1nZXQtZnJhZy1kYXRhLWxv
Y2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvcHJvZ3JhbXMvZ2wtZ2V0LWZyYWctZGF0YS1sb2NhdGlvbi5odG1sCmlu
ZGV4IGZmNjYyODJjMDRmNGRmZTZhOTA3MDM2NDQxZGI4ODRkNDBmODM1NWEuLjFlMDA2ZWJkMjgw
OWMyZDRjZjczYThiODc5YzE0MDEzNmNlYTBmZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9wcm9ncmFtcy9nbC1n
ZXQtZnJhZy1kYXRhLWxvY2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Byb2dyYW1zL2dsLWdldC1mcmFnLWRh
dGEtbG9jYXRpb24uaHRtbApAQCAtMSw1ICsxLDUgQEAKIO+7vzwhLS0KLUNvcHlyaWdodCAoYykg
MjAxOSBUaGUgS2hyb25vcyBHcm91cCBJbmMuCitDb3B5cmlnaHQgKGMpIDIwMjEgVGhlIEtocm9u
b3MgR3JvdXAgSW5jLgogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4g
TUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIGZvdW5kIGluIHRoZSBMSUNFTlNFLnR4dCBm
aWxlLgogLS0+CkBAIC00Myw2ICs0MywxOCBAQCB2b2lkIG1haW4oKSB7CiB9CiA8L3NjcmlwdD4K
IAorPHNjcmlwdCBpZD0idnMtZXMyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Cit2b2lkIG1h
aW4oKSB7CisgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLCAwLCAwLCAxKTsKK30KKzwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iZnMtZXMyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lv
biBtZWRpdW1wIGZsb2F0Owordm9pZCBtYWluKCkgeworICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAs
IDEsIDAsIDEpOworfQorPC9zY3JpcHQ+CisKIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CiBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIGdldEZyYWdEYXRhTG9jYXRpb24gYmVoYXZpb3Jz
LiIpOwpAQCAtNjEsMTQgKzczLDIzIEBAIGlmICghZ2wpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVz
dHMoKSB7Ci0gIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJmcyJd
KTsKLSAgdmFyIHByb2dyYW1BcnJheSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnMiLCAiZnMt
YXJyYXkiXSk7Ci0gIGlmICghcHJvZ3JhbSB8fCAhcHJvZ3JhbUFycmF5KSB7CisgIHdpbmRvdy5w
cm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cyIsICJmcyJdKTsKKyAgd2luZG93LnBy
b2dyYW1BcnJheSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnMiLCAiZnMtYXJyYXkiXSk7Cisg
IHdpbmRvdy5wcm9ncmFtRXMyID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyJ2cy1lczIiLCAiZnMt
ZXMyIl0pOworICBpZiAoIXByb2dyYW0gfHwgIXByb2dyYW1BcnJheSB8fCAhcHJvZ3JhbUVzMikg
ewogICAgIHRlc3RGYWlsZWQoIlNldCB1cCBwcm9ncmFtIGZhaWxlZCIpOwogICAgIHJldHVybjsK
ICAgfQogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIk5vIEdMIGVycm9y
IGZyb20gc2V0IHVwIik7CiAKKyAgc2hvdWxkQmUoImdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJv
Z3JhbSwgJ2dsX0ZyYWdDb2xvcicpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRGcmFnRGF0
YUxvY2F0aW9uKHByb2dyYW1BcnJheSwgJ2dsX0ZyYWdDb2xvcicpIiwgIi0xIik7CisgIHNob3Vs
ZEJlKCJnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW1FczIsICdnbF9GcmFnQ29sb3InKSIs
ICItMSIpOworICBzaG91bGRCZSgiZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihwcm9ncmFtLCAnZ2xf
RnJhZ0RhdGEnKSIsICItMSIpOworICBzaG91bGRCZSgiZ2wuZ2V0RnJhZ0RhdGFMb2NhdGlvbihw
cm9ncmFtQXJyYXksICdnbF9GcmFnRGF0YScpIiwgIi0xIik7CisgIHNob3VsZEJlKCJnbC5nZXRG
cmFnRGF0YUxvY2F0aW9uKHByb2dyYW1FczIsICdnbF9GcmFnRGF0YScpIiwgIi0xIik7CisgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3IgZnJvbSBnbF8q
IHF1ZXJpZXMiKTsKKwogICB2YXIgbG9jMCA9IGdsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3Jh
bSwgImZyYWdDb2xvcjAiKTsKICAgdmFyIGxvYzEgPSBnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHBy
b2dyYW0sICJmcmFnQ29sb3IxIik7CiAgIGlmIChsb2MwICE9IDIgfHwgbG9jMSAhPSAwKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL2JsaXRmcmFtZWJ1ZmZlci11bmFmZmVjdGVkLWJ5LWNvbG9y
bWFzay5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5hZmZlY3RlZC1ieS1jb2xv
cm1hc2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDJkN2Y1NGJjYTVmMjAxMGZiODJmMzRlMjBkOGExNjJm
YThlMThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9ibGl0ZnJhbWVidWZmZXItdW5h
ZmZlY3RlZC1ieS1jb2xvcm1hc2suaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCEtLQorQ29weXJp
Z2h0IChjKSAyMDIxIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KK1VzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3Vu
ZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+QmxpdEZyYW1lYnVmZmVy
IFNob3VsZCBCZSBVbmFmZmVjdGVkIGJ5IENvbG9yTWFzazwvdGl0bGU+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iOCIgaGVpZ2h0PSI4Ij48L2NhbnZhcz4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgYmxpdEZyYW1lYnVmZmVyIGlz
IHVuYWZmZWN0ZWQgYnkgdGhlIGNvbG9yTWFzayBzdGF0ZS4iKTsKKworZGVidWcoJ1JlZ3Jlc3Np
b24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTI1Nzc2OSI+aHR0cHM6Ly9j
cmJ1Zy5jb20vMTI1Nzc2OTwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjAxMjkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjAxMjk8L2E+Jyk7CisKK2Z1bmN0aW9uIGFsbG9jYXRlVGV4dHVyZShnbCwgc2l6
ZSkgeworICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZ2wuUkdCQTgsIHNpemUsIHNpemUsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IG51bGwpOworICAgIHJldHVybiB0ZXg7Cit9CisKK2Z1bmN0aW9uIGFsbG9jYXRlRkJPKGdsLCB0
ZXgpIHsKKyAgICBjb25zdCBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICAgIGdsLmJp
bmRGcmFtZWJ1ZmZlcihnbC5EUkFXX0ZSQU1FQlVGRkVSLCBmYm8pOworICAgIGdsLmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKGdsLkRSQVdfRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBn
bC5URVhUVVJFXzJELCB0ZXgsIDApOworICAgIHJldHVybiBmYm87Cit9CisKK2Z1bmN0aW9uIHJ1
bigpIHsKKyAgICBjb25zdCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIsIHsgYW50
aWFsaWFzOiBmYWxzZSB9LCAyKTsKKworICAgIGlmICghZ2wpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBzaXplID0gODsKKworICAgIHRl
c3RQYXNzZWQoIldlYkdMIGNvbnRleHQgZXhpc3RzIik7CisKKyAgICAvLyBBbGxvY2F0ZSBzb3Vy
Y2UgYW5kIGRlc3RpbmF0aW9uIHRleHR1cmVzIGFuZCBmcmFtZWJ1ZmZlciBvYmplY3RzLgorICAg
IGNvbnN0IHNvdXJjZVRleCA9IGFsbG9jYXRlVGV4dHVyZShnbCwgc2l6ZSk7CisgICAgY29uc3Qg
c291cmNlRkJPID0gYWxsb2NhdGVGQk8oZ2wsIHNvdXJjZVRleCk7CisKKyAgICBjb25zdCBkZXN0
VGV4ID0gYWxsb2NhdGVUZXh0dXJlKGdsLCBzaXplKTsKKyAgICBjb25zdCBkZXN0RkJPID0gYWxs
b2NhdGVGQk8oZ2wsIGRlc3RUZXgpOworCisgICAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1cENv
bG9yUXVhZChnbCk7CisKKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHNv
dXJjZUZCTyk7CisKKyAgICAvLyBDbGVhciB0aGUgc291cmNlIGZyYW1lYnVmZmVyIHRvIHJlZC4K
KyAgICBnbC5jbGVhckNvbG9yKDEsIDAsIDAsIDEpOworICAgIGdsLmNvbG9yTWFzayh0cnVlLCB0
cnVlLCB0cnVlLCB0cnVlKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKwor
ICAgIC8vIERyYXcgYSB0cmFuc3BhcmVudCBncmVlbiBxdWFkLgorICAgIGdsLnVzZVByb2dyYW0o
cHJvZ3JhbSk7CisgICAgd3R1LmRyYXdGbG9hdENvbG9yUXVhZChnbCwgWyAwLCAyNTUsIDAsIDAg
XSk7CisKKyAgICAvLyBDbGVhciB0aGUgYWxwaGEgY2hhbm5lbC4KKyAgICBnbC5jb2xvck1hc2so
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7CisgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAx
KTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKworICAgIC8vIEF0IHRoaXMg
cG9pbnQsIGV2ZW4gc2V0dGluZyB0aGUgY29sb3JNYXNrIHRvIGFsbC10cnVlIHdvbid0CisgICAg
Ly8gd29yayBhcm91bmQgdGhlIGJ1Zywgc2luY2UgdGhhdCBzdGF0ZSBpcyBsYXRjaGVkIGluc2lk
ZSBBTkdMRQorICAgIC8vIG9ubHkgZHVyaW5nIGRyYXdzIC8gY2xlYXJzLgorCisgICAgLy8gQmxp
dCBzb3VyY2UgdG8gZGVzdC4KKyAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRFJBV19GUkFNRUJV
RkZFUiwgZGVzdEZCTyk7CisgICAgZ2wuYmxpdEZyYW1lYnVmZmVyKDAsIDAsIHNpemUsIHNpemUs
IDAsIDAsIHNpemUsIHNpemUsIGdsLkNPTE9SX0JVRkZFUl9CSVQsIGdsLk5FQVJFU1QpOworICAg
IGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5SRUFEX0ZSQU1FQlVGRkVSLCBkZXN0RkJPKTsKKworICAg
IC8vIE5vdGUgdGhhdCB0aGUgb24tc2NyZWVuIGNhbnZhcyBpcyBhbHdheXMgYmxhY2sgLSB3ZSBk
b24ndCBibGl0IHRoZSByZXN1bHQgdG8gaXQuCisgICAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbIDAs
IDI1NSwgMCwgMjU1IF0sICJzaG91bGQgYmUgZ3JlZW4iLCAxKTsKKyAgICBmaW5pc2hUZXN0KCk7
Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCityZXF1ZXN0QW5pbWF0aW9u
RnJhbWUocnVuKTsKKworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
Mi9yZW5kZXJpbmcvZHJhdy1idWZmZXJzLXNwYXJzZS1vdXRwdXQtbG9jYXRpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9ucy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRjNjc5ZGY2YTI5NDA5ZmU1MDY2ODA0YWIxNGMyNWE3ZGMyODczYWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZTIvcmVuZGVyaW5nL2RyYXctYnVmZmVycy1zcGFyc2Utb3V0cHV0LWxvY2F0aW9u
cy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACivvu788IS0tCitDb3B5cmlnaHQgKGMpIDIwMTkgVGhl
IEtocm9ub3MgR3JvdXAgSW5jLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNF
LnR4dCBmaWxlLgorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0czogVmVyaWZ5
IGRyYXdCdWZmZXJzIHNwYXJzZSBvdXRwdXQgbG9jYXRpb25zPC90aXRsZT4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdp
ZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJ3aWR0aDogNHB4OyBoZWlnaHQ6IDRweDsiPiA8L2Nh
bnZhcz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0IGlkPSJ2cyIgdHlwZT0i
eC1zaGFkZXIveC12ZXJ0ZXgiPiN2ZXJzaW9uIDMwMCBlcwordm9pZCBtYWluKCkgeworICBnbF9Q
b2ludFNpemUgPSAxMDAuMDsKKyAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsIDAsIDAsIDEpOworfQor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4j
dmVyc2lvbiAzMDAgZXMKKy8vIGZyYWdtZW50IHNoYWRlciBvbmx5IG91dHB1dHMgdG8gYXR0YWNo
bWVudHMgMSBhbmQgMworcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OworbGF5b3V0KGxvY2F0aW9uID0g
MSkgb3V0IHZlYzQgb3V0cHV0MTsKK2xheW91dChsb2NhdGlvbiA9IDMpIG91dCB2ZWM0IG91dHB1
dDI7Cit2b2lkIG1haW4oKQoreworICAgIG91dHB1dDEgPSB2ZWM0KDAuMCwgMS4wLCAwLjAsIDEu
MCk7CisgICAgb3V0cHV0MiA9IHZlYzQoMC4wLCAwLjAsIDEuMCwgMS4wKTsKK30KKworPC9zY3Jp
cHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJp
ZmllcyBzcGFyc2Ugb3V0cHV0IGxvY2F0aW9ucyBvZiBmcmFnbWVudCBzaGFkZXJzIHJlbmRlciBj
b3JyZWN0bHkiKTsKKworZGVidWcoIiIpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2
YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwordmFyIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIG51bGwsIDIpOworCitpZiAoIWdsKSB7CisgIHRl
c3RGYWlsZWQoIldlYkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgIHRl
c3RQYXNzZWQoIldlYkdMIGNvbnRleHQgZXhpc3RzIik7CisgIHJ1blRlc3RzKCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RBdHRhY2htZW50KGF0dGFjaG1lbnQsIGV4cGVjdGVkKSB7CisgIGdsLnJlYWRC
dWZmZXIoZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyBhdHRhY2htZW50KTsKKyAgd3R1LmNoZWNrQ2Fu
dmFzKGdsLCBleHBlY3RlZCwgYGNoZWNrIENPTE9SX0FUVEFDSE1FTlQke2F0dGFjaG1lbnR9YCwg
MSk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1
cFByb2dyYW0oZ2wsIFsidnMiLCAiZnMiXSk7CisgIGlmICghcHJvZ3JhbSkgeworICAgIHRlc3RG
YWlsZWQoIlNldCB1cCBwcm9ncmFtIGZhaWxlZCIpOworICAgIHJldHVybjsKKyAgfQorICBnbC51
c2VQcm9ncmFtKHByb2dyYW0pOworCisgIC8vIGNyZWF0ZSBhIGZyYW1lYnVmZmVyIHdpdGggNCAx
eDEgcGl4ZWwgY29sb3IgYXR0YWNobWVudHMKKyAgY29uc3QgZmIgPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpOworICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZiKTsKKworICBm
b3IgKGxldCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgIGNvbnN0IHRleCA9IGdsLmNyZWF0ZVRl
eHR1cmUoKTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOworICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQTgsIDEsIDEsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGksIGdsLlRFWFRVUkVfMkQsIHRl
eCwgMCk7CisgIH0KKworICAvLyBkcmF3IG9ubHkgdG8gdGhlIDFzdCBhbmQgM3JkIGF0dGFjaG1l
bnRzCisgIGdsLmRyYXdCdWZmZXJzKFsKKyAgICBnbC5OT05FLAorICAgIGdsLkNPTE9SX0FUVEFD
SE1FTlQxLAorICAgIGdsLk5PTkUsCisgICAgZ2wuQ09MT1JfQVRUQUNITUVOVDMsCisgIF0pOwor
CisgIC8vIGRyYXcKKyAgZ2wuZHJhd0FycmF5cyhnbC5QT0lOVFMsIDAsIDEpOworCisgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3IgZnJvbSBzZXQgdXAi
KTsKKworICAvLyBjaGVjayB3ZSBnb3QgdGhlIGNvcnJlY3QgdmFsdWVzCisgIHRlc3RBdHRhY2ht
ZW50KDAsIFswLCAwLCAwLCAwXSk7CisgIHRlc3RBdHRhY2htZW50KDEsIFswLCAyNTUsIDAsIDI1
NV0pOworICB0ZXN0QXR0YWNobWVudCgyLCBbMCwgMCwgMCwgMF0pOworICB0ZXN0QXR0YWNobWVu
dCgzLCBbMCwgMCwgMjU1LCAyNTVdKTsKKworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUiwgIk5vIEdMIGVycm9yIGZyb20gdGVzdGluZyIpOworfQorCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9z
dGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxs
cy5odG1sCmluZGV4IGVmNzc1OTNkOTJjMmNmZWFhNjQzY2QwNzk0OTdlNWEyMzc5MzgyY2IuLjYy
ZWQ3MGQ1YmQ0N2JlOTkyY2M2OGJjMDM4YTIzOTYzMTNhZGIxY2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9zdGF0
ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2Fs
bHMuaHRtbApAQCAtMTUsMTIgKzE1LDkgQEAgZm91bmQgaW4gdGhlIExJQ0VOU0UudHh0IGZpbGUu
CiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgotCiA8c2NyaXB0PgogdmFyIGNvbnRleHRWZXJzaW9uID0gMjsKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQtY2FsbHMuanMiPjwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vanMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdpbi1jbGVh
bi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9taXNjL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS1vZmZzY3JlZW5jYW52YXMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmM2YTExOGNjMWRkYWY1NzMxNGE0MjdlMGIwNDI4YmVkMDhkNDY5NS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMv
bWlzYy9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utb2Zmc2NyZWVuY2FudmFzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE5IFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRS50
eHQgZmlsZS4KLS0tPgotCi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+V2ViR0wyIE9yaWdpbiBSZXN0cmljdGlvbnMgQ29uZm9y
bWFuY2UgVGVzdHMgZm9yIE9mZnNjcmVlbkNhbnZhczwvdGl0bGU+Ci08bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgotPGltZyBpZD0iaW1nIiBzdHls
ZT0iZGlzcGxheTpub25lOyI+Ci08c2NyaXB0PgotInVzZSBzdHJpY3QiOwotdmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwotCi0vLyBDaGVja3MgaWYgZnVuY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlv
bi4KLWZ1bmN0aW9uIGNhdXNlZEV4Y2VwdGlvbihmdW5jKSB7Ci0gIHZhciBoYWRFeGNlcHRpb24g
PSBmYWxzZTsKLSAgdHJ5IHsKLSAgICBmdW5jKCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGhhZEV4
Y2VwdGlvbiA9IHRydWU7Ci0gIH0KLSAgcmV0dXJuIGhhZEV4Y2VwdGlvbjsKLX0KLQotdmFyIGRl
ZmF1bHRJbWdVcmwgPSAiaHR0cHM6Ly9nZXQud2ViZ2wub3JnL2NvbmZvcm1hbmNlLXJlc291cmNl
cy9vcGVuZ2xfbG9nby5qcGciOwotdmFyIGxvY2FsSW1nVXJsID0gIi4uLy4uLy4uL3Jlc291cmNl
cy9vcGVuZ2xfbG9nby5qcGciOwotCi12YXIgaW1nRG9tYWluOwotdmFyIHBhZ2VEb21haW47Ci0K
LWZ1bmN0aW9uIGltYWdlTG9hZGVkKGltZykgewotICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVu
c3VyZXMgV2ViR0wyIGltcGxlbWVudGF0aW9ucyBmb3IgT2Zmc2NyZWVuQ2FudmFzIGZvbGxvdyBw
cm9wZXIgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLiIpOwotCi0gIGlmICghd2luZG93Lk9mZnNj
cmVlbkNhbnZhcykgewotICAgIHRlc3RQYXNzZWQoIk5vIE9mZnNjcmVlbkNhbnZhcyBzdXBwb3J0
Iik7Ci0gICAgZmluaXNoVGVzdCgpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGFzc2VydE1zZyhp
bWcud2lkdGggPiAwICYmIGltZy5oZWlnaHQgPiAwLCAiaW1nIHdhcyBsb2FkZWQiKTsKLSAgaW1n
RG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od3R1LmdldEhvc3QoaW1nLnNyYykpOwotICBwYWdl
RG9tYWluID0gd3R1LmdldEJhc2VEb21haW4od2luZG93LmxvY2F0aW9uLmhvc3QpOwotICBhc3Nl
cnRNc2coaW1nRG9tYWluICE9IHBhZ2VEb21haW4sCi0gICAgICAgICAgICAiaW1nIGRvbWFpbiAo
IiArIGltZ0RvbWFpbiArICIpIGFuZCBwYWdlIGRvbWFpbiAoIiArIHBhZ2VEb21haW4gKyAiKSBh
cmUgbm90IHRoZSBzYW1lLiIpOwotCi0gIGZ1bmN0aW9uIG1ha2VUZXhJbWFnZTJEKGdsLCBzcmMp
IHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDEwLCAxMCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
c3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVRleFN1YkltYWdlMkQoZ2wsIHNy
YykgewotICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgMCwgMCwgMTAsIDEwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBz
cmMpOwotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlVGV4SW1hZ2UzRChnbCwgc3JjKSB7
Ci0gICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgZ2wudGV4SW1hZ2UzRChnbC5URVhUVVJF
XzNELCAwLCBnbC5SR0JBLCAxMCwgMTAsIDEsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHNyYyk7Ci0gICAgfTsKLSAgfQotCi0gIGZ1bmN0aW9uIG1ha2VUZXhTdWJJbWFnZTNEKGdsLCBz
cmMpIHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICBnbC50ZXhTdWJJbWFnZTNEKGds
LlRFWFRVUkVfM0QsIDAsIDAsIDAsIDAsIDEwLCAxMCwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgc3JjKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZVJlYWRQaXhlbHMoZ2wp
IHsKLSAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJy
YXkoNCk7Ci0gICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGJ1Zik7Ci0gICAgfTsKLSAgfQotCi0gIHZhciBvZmZzY3JlZW5jYW52YXMgPSBu
ZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7Ci0gIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQob2Zmc2NyZWVuY2FudmFzLCBudWxsLCAyKTsKLQotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJj
aGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGFuIGltYWdlIGZyb20gYW5vdGhlciBvcmln
aW4gdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAyNTYsIDI1NiwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgbnVsbCk7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleElt
YWdlMkQoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleEltYWdlMkQgd2l0aCBjcm9zcy1vcmln
aW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4
Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwgaW1nKSksCi0gICAgICAgICAgICAidGV4U3Vi
SW1hZ2UyRCB3aXRoIGNyb3NzLW9yaWdpbiBpbWFnZSBzaG91bGQgdGhyb3cgZXhjZXB0aW9uLiIp
OwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhJbWFnZTNEKGdsLCBpbWcpKSwK
LSAgICAgICAgICAgICJ0ZXhJbWFnZTNEIHdpdGggY3Jvc3Mtb3JpZ2luIGltYWdlIHNob3VsZCB0
aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRFeGNlcHRpb24obWFrZVRleFN1
YkltYWdlM0QoZ2wsIGltZykpLAotICAgICAgICAgICAgInRleFN1YkltYWdlM0Qgd2l0aCBjcm9z
cy1vcmlnaW4gaW1hZ2Ugc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLQotCi0gIGRlYnVnKCJj
aGVjayB0aGF0IHJlYWRQaXhlbHMgY29udGludWVzIHRvIHdvcmsgYWdhaW5zdCB0aGlzIG9mZnNj
cmVlbmNhbnZhcy4iKTsKLSAgYXNzZXJ0TXNnKCFjYXVzZWRFeGNlcHRpb24obWFrZVJlYWRQaXhl
bHMoZ2wpKSwKLSAgICAgICAgICAgICJyZWFkUGl4ZWxzIHNob3VsZCBuZXZlciB0aHJvdyBleGNl
cHRpb24gLS0gbm90IHBvc3NpYmxlIHRvIGRpcnR5IG9yaWdpbiBvZiBXZWJHTDIgY2FudmFzLiIp
OwotCi0gIGRlYnVnKCJjaGVjayB0aGF0IGFuIGF0dGVtcHQgdG8gdXBsb2FkIGEgdGFpbnRlZCBj
YW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLSAgdmFyIGNhbnZhcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLSAgdmFyIGN0eDJkID0gY2FudmFzLmdldENvbnRleHQo
IjJkIik7Ci0gIGN0eDJkLmRyYXdJbWFnZShpbWcsIDAsIDApOwotICBhc3NlcnRNc2coY2F1c2Vk
RXhjZXB0aW9uKG1ha2VUZXhJbWFnZTJEKGdsLCBjYW52YXMpKSwKLSAgICAgICAgICAgICJ0ZXhJ
bWFnZTJEIHdpdGggTk9OIG9yaWdpbiBjbGVhbiBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlv
bi4iKTsKLSAgYXNzZXJ0TXNnKGNhdXNlZEV4Y2VwdGlvbihtYWtlVGV4U3ViSW1hZ2UyRChnbCwg
Y2FudmFzKSksCi0gICAgICAgICAgICAidGV4U3ViSW1hZ2UyRCB3aXRoIE5PTiBvcmlnaW4gY2xl
YW4gY2FudmFzIHNob3VsZCB0aHJvdyBleGNlcHRpb24uIik7Ci0gIGFzc2VydE1zZyhjYXVzZWRF
eGNlcHRpb24obWFrZVRleEltYWdlM0QoZ2wsIGNhbnZhcykpLAotICAgICAgICAgICAgInRleElt
YWdlM0Qgd2l0aCBOT04gb3JpZ2luIGNsZWFuIGNhbnZhcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9u
LiIpOwotICBhc3NlcnRNc2coY2F1c2VkRXhjZXB0aW9uKG1ha2VUZXhTdWJJbWFnZTNEKGdsLCBj
YW52YXMpKSwKLSAgICAgICAgICAgICJ0ZXhTdWJJbWFnZTNEIHdpdGggTk9OIG9yaWdpbiBjbGVh
biBjYW52YXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbi4iKTsKLQotICBkZWJ1ZygiY2hlY2sgdGhh
dCByZWFkUGl4ZWxzIGNvbnRpbnVlcyB0byB3b3JrIGFnYWluc3QgdGhpcyBvZmZzY3JlZW5jYW52
YXMuIik7Ci0gIGFzc2VydE1zZyghY2F1c2VkRXhjZXB0aW9uKG1ha2VSZWFkUGl4ZWxzKGdsKSks
Ci0gICAgICAgICAgICAicmVhZFBpeGVscyBzaG91bGQgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uIC0t
IG5vdCBwb3NzaWJsZSB0byBkaXJ0eSBvcmlnaW4gb2YgV2ViR0wyIGNhbnZhcy4iKTsKLQotICAv
LyBUT0RPOiBTaG91bGQgY2hlY2sgdmlkZW8uCi0gIC8vIFRPRE86IFNob3VsZCBjaGVjayBDT1JT
IHN1cHBvcnQuCi0KLSAgZmluaXNoVGVzdCgpOwotfQotCi0oYXN5bmMgZnVuY3Rpb24oKSB7Ci0g
IGNvbnN0IGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcnKTsKLSAgdHJ5IHsKLSAg
ICBhd2FpdCB3dHUuYXdhaXRPclRpbWVvdXQod3R1LmxvYWRDcm9zc09yaWdpbkltYWdlKGltZywg
ZGVmYXVsdEltZ1VybCwgbG9jYWxJbWdVcmwpLCAxMDAwKTsKLSAgfSBjYXRjaCAoZSkgewotICAg
IHRlc3RGYWlsZWQoYEltYWdlIHNldHVwIGZhaWxlZCAoJHtlfSkuYCk7Ci0gICAgZmluaXNoVGVz
dCgpOwotICAgIHJldHVybjsKLSAgfQotICBpbWFnZUxvYWRlZChpbWcpOwotfSkoKTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RleHR1cmVzL21pc2MvdGV4LXN0
b3JhZ2UtY29tcHJlc3NlZC1mb3JtYXRzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFn
ZS1jb21wcmVzc2VkLWZvcm1hdHMuaHRtbAppbmRleCBhZGE3N2NhNGI2NjdkOTJhM2M5NzIxYWMw
ZmVlZTFmNGZkYTc0Y2QyLi5lMTU0NjMxZWFkNzY2MmY3YmY0OTA3NWJhNjgyN2ZkZmJiN2UwZTI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZvcm1h
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvdGV4dHVyZXMvbWlzYy90ZXgtc3RvcmFnZS1jb21wcmVzc2VkLWZvcm1h
dHMuaHRtbApAQCAtOTgsNyArOTgsNyBAQCBmdW5jdGlvbiBydW5UZXhDb21wcmVzc2VkRm9ybWF0
c1Rlc3QodGV4Q29tcHJlc3NlZEZvcm1hdHMpCiAgICAgICAgIC8vIFRlc3QgYSAyRCB0ZXh0dXJl
LgogICAgICAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwogICAgICAgICBnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgICAgICBnbC50ZXhTdG9yYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDEsIDEpOworICAgICAgICBnbC50ZXhTdG9y
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMSwgaW50ZXJuYWxmb3JtYXQsIDQsIDQpOwogICAgICAgICB3
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidGV4U3RvcmFnZTJEIHNob3VsZCBzdWNjZWVkIGZvciAiICsgZW51bVRvU3RyaW5n
KGludGVybmFsZm9ybWF0KSk7CiAgICAgICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKQEAgLTEx
MSwxNCArMTExLDE0IEBAIGZ1bmN0aW9uIHJ1blRleENvbXByZXNzZWRGb3JtYXRzVGVzdCh0ZXhD
b21wcmVzc2VkRm9ybWF0cykKICAgICAgICAgLy8gVGVzdCB0aGUgM0QgdGV4dHVyZSB0YXJnZXRz
LgogICAgICAgICB2YXIgdGV4M2QgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiAgICAgICAgIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfM0QsIHRleDNkKTsKLSAgICAgICAgZ2wudGV4U3RvcmFnZTNE
KGdsLlRFWFRVUkVfM0QsIDEsIGludGVybmFsZm9ybWF0LCAxLCAxLCAxKTsKKyAgICAgICAgZ2wu
dGV4U3RvcmFnZTNEKGdsLlRFWFRVUkVfM0QsIDEsIGludGVybmFsZm9ybWF0LCA0LCA0LCAxKTsK
ICAgICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleFN0b3JhZ2UzRChURVhUVVJFXzNEKSBzaG91
bGQgZmFpbCBmb3IgIiArIGVudW1Ub1N0cmluZyhpbnRlcm5hbGZvcm1hdCkpOwogICAgICAgICBn
bC5kZWxldGVUZXh0dXJlKHRleDNkKTsKIAogICAgICAgICB2YXIgdGV4MmRBcnIgPSBnbC5jcmVh
dGVUZXh0dXJlKCk7CiAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkRfQVJSQVks
IHRleDJkQXJyKTsKLSAgICAgICAgZ2wudGV4U3RvcmFnZTNEKGdsLlRFWFRVUkVfMkRfQVJSQVks
IDEsIGludGVybmFsZm9ybWF0LCAxLCAxLCAxKTsKKyAgICAgICAgZ2wudGV4U3RvcmFnZTNEKGds
LlRFWFRVUkVfMkRfQVJSQVksIDEsIGludGVybmFsZm9ybWF0LCA0LCA0LCAxKTsKICAgICAgICAg
d3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRleFN0b3JhZ2UzRChURVhUVVJFXzJEX0FSUkFZKSBzaG91bGQgc3VjY2VlZCBm
b3IgIiArIGVudW1Ub1N0cmluZyhpbnRlcm5hbGZvcm1hdCkpOwogICAgICAgICB3dHUuY2xlYXJB
bmREcmF3VW5pdFF1YWQoZ2wpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZNdWx0aXNhbXBs
ZVRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
ZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZNdWx0aXNhbXBsZVRlc3RzLmpzCmluZGV4IDUwZTJh
MjE5OTJmOThmYTk5ZThmMzc4OWQwNGFhMDU4N2RmOGI5MWMuLjQ3ZTYyNjdkMzVkMzcyN2YzOTIz
OWQwMjZlZWRlNWI0MDQyYmNlYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9lczNmTXVsdGlzYW1w
bGVUZXN0cy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvZXMzZk11bHRpc2FtcGxlVGVzdHMuanMKQEAgLTE3
MTMsNyArMTcxMyw3IEBAIGdvb2cuc2NvcGUoZnVuY3Rpb24oKSB7CiAgICAgICogUnVuIHRlc3QK
ICAgICAgKiBAcGFyYW0ge1dlYkdMMlJlbmRlcmluZ0NvbnRleHR9IGNvbnRleHQKICAgICAgKi8K
LSAgICAgZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuID0gZnVuY3Rpb24oY29udGV4dCkgeworICAg
IGVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1biA9IGZ1bmN0aW9uKGNvbnRleHQsIHJhbmdlKSB7CiAg
ICAgICAgIGdsID0gY29udGV4dDsKICAgICAgICAgLy9TZXQgdXAgVGVzdCBSb290IHBhcmFtZXRl
cnMKICAgICAgICAgdmFyIHRlc3ROYW1lID0gJ211bHRpc2FtcGxlJzsKQEAgLTE3MzAsNiArMTcz
MCw4IEBAIGdvb2cuc2NvcGUoZnVuY3Rpb24oKSB7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAg
ICAvL0NyZWF0ZSB0ZXN0IGNhc2VzCiAgICAgICAgICAgICBlczNmTXVsdGlzYW1wbGVUZXN0cy5p
bml0KCk7CisgICAgICAgICAgICBpZiAocmFuZ2UpCisgICAgICAgICAgICAgICAgc3RhdGUuc2V0
UmFuZ2UocmFuZ2UpOwogICAgICAgICAgICAgLy9SdW4gdGVzdCBjYXNlcwogICAgICAgICAgICAg
dGN1VGVzdENhc2UucnVuVGVzdENhc2VzKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9n
bGVzMy9lczNmUHJpbWl0aXZlUmVzdGFydFRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmltaXRp
dmVSZXN0YXJ0VGVzdHMuanMKaW5kZXggODU5NzM2NjVhZDhjMTU3NTZhOTVhY2QzMDk0MGQyZmJm
OGExNTlmOC4uYWMwZGEyZmU2NjQ2ZjMwNjVmMzZhZjFhNzMzOWU3MjViNTE4YzcwYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9m
dW5jdGlvbmFsL2dsZXMzL2VzM2ZQcmltaXRpdmVSZXN0YXJ0VGVzdHMuanMKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2ds
ZXMzL2VzM2ZQcmltaXRpdmVSZXN0YXJ0VGVzdHMuanMKQEAgLTMzNCwxMCArMzM0LDE1IEBAIHZh
ciBnbHVUZXh0dXJlVXRpbCA9IGZyYW1ld29yay5vcGVuZ2wuZ2x1VGV4dHVyZVV0aWw7CiAgICAg
ICAgICAgICAnXG4nICsKICAgICAgICAgICAgICd2b2lkIG1haW4oKVxuJyArCiAgICAgICAgICAg
ICAnIHtcbicgKwotICAgICAgICAgICAgJyBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247XG4nICsK
LSAgICAgICAgICAgICd9XG4nOworICAgICAgICAgICAgJyBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRp
b247XG4nOworCisgICAgICAgIGlmICh0aGlzLm1fcHJpbVR5cGUgPT0gZXMzZlByaW1pdGl2ZVJl
c3RhcnRUZXN0cy5QcmltaXRpdmVUeXBlLlBSSU1JVElWRV9QT0lOVFMpIHsKKyAgICAgICAgICAg
IHZlcnRTaGFkZXJTb3VyY2UgKz0gJyBnbF9Qb2ludFNpemUgPSAxLjA7XG4nOworICAgICAgICB9
CisKKyAgICAgICAgdmVydFNoYWRlclNvdXJjZSArPSAnfVxuJzsKIAotICAgICAgICAgICAgLyoq
IEB0eXBlIHtzdHJpbmd9ICovIHZhciBmcmFnU2hhZGVyU291cmNlID0KKyAgICAgICAgLyoqIEB0
eXBlIHtzdHJpbmd9ICovIHZhciBmcmFnU2hhZGVyU291cmNlID0KICAgICAgICAgICAgICcjdmVy
c2lvbiAzMDAgZXNcbicgKwogICAgICAgICAgICAgJ2xheW91dChsb2NhdGlvbiA9IDApIG91dCBt
ZWRpdW1wIHZlYzQgb19jb2xvcjtcbicgKwogICAgICAgICAgICAgJ1xuJyArCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0
aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDJkYjMwMzVlOTI2N2M1MGRmMWZmYzA2
NGJhYzQ5YjJmNmY2MmIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAv
ZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KLTx0aXRsZT5XZWJHTCBNdWx0aXNh
bXBsZSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cvYmFzZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vZGVxcC1kZXBzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Z29vZy5y
ZXF1aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzJyk7PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9
IjI1NiI+IDwvY2FudmFzPgotPHNjcmlwdD4KLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKLXZh
ciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZhcycsIG51bGwsIDIpOwotCi1mdW5jdGlv
bmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1bihnbCk7Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Zi
by5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVx
cC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2RlZmF1bHRfZmJvLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzFkM2YwNmJmOTgwOWJlMzJlZTdhODIyZjlhZTUyMWYzODM4MTI4YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAv
ZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9kZWZhdWx0X2Ziby5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzwhLS0KKworVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGZyb20gbXVsdGlzYW1w
bGVfdGVzdF9nZW5lcmF0b3IucHkKK0RPIE5PVCBFRElUIQorCistLT4KKworPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBNdWx0aXNhbXBsZSBDb25mb3JtYW5jZSBUZXN0
czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJn
bC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Ns
b3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cvYmFzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZGVxcC1kZXBzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Z29vZy5yZXF1aXJl
KCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzJyk7PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+
IDwvY2FudmFzPgorPHNjcmlwdD4KK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZhcycsIG51bGwsIDIpOworCitmdW5jdGlvbmFsLmds
ZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1bihnbCwgWzAsIDFdKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib180X3Nh
bXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzAyMWY1N2JhOWE1ODRiMzA2YWYyNzRiMmNkMzAzMjViODUyYTExNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9fNF9zYW1wbGVzLmh0bWwKQEAg
LTAsMCArMSwzMSBAQAorPCEtLQorCitUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBt
dWx0aXNhbXBsZV90ZXN0X2dlbmVyYXRvci5weQorRE8gTk9UIEVESVQhCisKKy0tPgorCis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPldlYkdMIE11bHRpc2FtcGxlIENvbmZvcm1h
bmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vanMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2pzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vY2xvc3VyZS1saWJyYXJ5L2Nsb3N1cmUvZ29vZy9iYXNlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9kZXFwLWRlcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD5nb29n
LnJlcXVpcmUoJ2Z1bmN0aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMnKTs8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyNTYiIGhlaWdo
dD0iMjU2Ij4gPC9jYW52YXM+Cis8c2NyaXB0PgordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwor
dmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgnY2FudmFzJywgbnVsbCwgMik7CisKK2Z1bmN0
aW9uYWwuZ2xlczMuZXMzZk11bHRpc2FtcGxlVGVzdHMucnVuKGdsLCBbMSwgMl0pOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9kZXFwL2Z1bmN0aW9uYWwvZ2xlczMvbXVsdGlzYW1wbGUv
ZmJvXzhfc2FtcGxlcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZGNhNWFlYWZlY2M4NDQyOGQ4NDJhOTRkZDlkNmQ0NDNlMWJiNjQ3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zib184X3NhbXBsZXMu
aHRtbApAQCAtMCwwICsxLDMxIEBACis8IS0tCisKK1RoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRl
ZCBmcm9tIG11bHRpc2FtcGxlX3Rlc3RfZ2VuZXJhdG9yLnB5CitETyBOT1QgRURJVCEKKworLS0+
CisKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+V2ViR0wgTXVsdGlzYW1wbGUg
Q29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vanMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9jbG9zdXJlLWxpYnJhcnkvY2xvc3VyZS9nb29nL2Jhc2UuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2RlcXAtZGVwcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0Pmdvb2cucmVxdWlyZSgnZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0cycp
Ozwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjI1
NiIgaGVpZ2h0PSIyNTYiPiA8L2NhbnZhcz4KKzxzY3JpcHQ+Cit2YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCdjYW52YXMnLCBudWxsLCAyKTsK
KworZnVuY3Rpb25hbC5nbGVzMy5lczNmTXVsdGlzYW1wbGVUZXN0cy5ydW4oZ2wsIFsyLCAzXSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0
aXNhbXBsZS9mYm9fbWF4X3NhbXBsZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2RlcXAvZnVuY3Rpb25hbC9nbGVzMy9tdWx0aXNhbXBsZS9mYm9f
bWF4X3NhbXBsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmM3NWM3MjFmYTcwMDA1ZGY5MTY5NzI1ZGVi
MGU5MWEzYmVjMDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvZGVxcC9mdW5jdGlvbmFsL2dsZXMzL211bHRpc2FtcGxlL2Zi
b19tYXhfc2FtcGxlcy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhLS0KKworVGhpcyBmaWxlIGlz
IGF1dG8tZ2VuZXJhdGVkIGZyb20gbXVsdGlzYW1wbGVfdGVzdF9nZW5lcmF0b3IucHkKK0RPIE5P
VCBFRElUIQorCistLT4KKworPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBNdWx0aXNhbXBsZSBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Nsb3N1cmUtbGlicmFyeS9jbG9zdXJlL2dvb2cv
YmFzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZGVxcC1kZXBzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Z29vZy5yZXF1aXJlKCdmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0
aXNhbXBsZVRlc3RzJyk7PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2Fu
dmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+IDwvY2FudmFzPgorPHNjcmlwdD4KK3ZhciB3
dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoJ2NhbnZh
cycsIG51bGwsIDIpOworCitmdW5jdGlvbmFsLmdsZXMzLmVzM2ZNdWx0aXNhbXBsZVRlc3RzLnJ1
bihnbCwgWzMsIDRdKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvZ2xzbC1jb25m
b3JtYW5jZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzCmluZGV4IGVkNmVhYWQ1MGY0YjFjYTc4
N2NkNWNiYWJmNTBmMDhjN2JiOGZjZTYuLjEyYTA1NmNlMjE0NDk4OTE5YTNiOTVmOWEzNmQ2ZTk3
ZTY0MTEyZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2pzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3Qu
anMKQEAgLTI3NywxMiArMjc3LDE3IEBAIGZ1bmN0aW9uIHJ1bk9uZVRlc3QoZ2wsIGluZm8pIHsK
IAogICBpZiAoaW5mby51bmlmb3JtcyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBpbmZvLnVuaWZvcm1zLmxlbmd0aDsgKytpKSB7Ci0gICAgICB2YXIgdW5pZm9ybUxv
Y2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIGluZm8udW5pZm9ybXNbaV0u
bmFtZSk7CisgICAgICB2YXIgdW5pZm9ybSA9IGluZm8udW5pZm9ybXNbaV07CisgICAgICB2YXIg
dW5pZm9ybUxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIHVuaWZvcm0u
bmFtZSk7CiAgICAgICBpZiAodW5pZm9ybUxvY2F0aW9uICE9PSBudWxsKSB7Ci0gICAgICAgIGds
W2luZm8udW5pZm9ybXNbaV0uZnVuY3Rpb25OYW1lXSh1bmlmb3JtTG9jYXRpb24sIGluZm8udW5p
Zm9ybXNbaV0udmFsdWUpOwotICAgICAgICBkZWJ1ZyhpbmZvLnVuaWZvcm1zW2ldLm5hbWUgKyAn
IHNldCB0byAnICsgaW5mby51bmlmb3Jtc1tpXS52YWx1ZSk7CisgICAgICAgIGlmICh1bmlmb3Jt
LmZ1bmN0aW9uTmFtZS5pbmNsdWRlcygiTWF0cml4IikpIHsKKyAgICAgICAgICBnbFt1bmlmb3Jt
LmZ1bmN0aW9uTmFtZV0odW5pZm9ybUxvY2F0aW9uLCBmYWxzZSwgdW5pZm9ybS52YWx1ZSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZ2xbdW5pZm9ybS5mdW5jdGlvbk5hbWVdKHVuaWZv
cm1Mb2NhdGlvbiwgdW5pZm9ybS52YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZGVidWcodW5p
Zm9ybS5uYW1lICsgJyBzZXQgdG8gJyArIHVuaWZvcm0udmFsdWUpOwogICAgICAgfSBlbHNlIHsK
LSAgICAgICAgZGVidWcoJ3VuaWZvcm0gJyArIGluZm8udW5pZm9ybXNbaV0ubmFtZSArICcgaGFk
IG51bGwgbG9jYXRpb24gYW5kIHdhcyBub3Qgc2V0Jyk7CisgICAgICAgIGRlYnVnKCd1bmlmb3Jt
ICcgKyB1bmlmb3JtLm5hbWUgKyAnIGhhZCBudWxsIGxvY2F0aW9uIGFuZCB3YXMgbm90IHNldCcp
OwogICAgICAgfQogICAgIH0KICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wb3N0LmpzCmluZGV4
IGZmODllNTg2ZWJkYWZjZDE1Y2I0Njg1ZDA3MGRmZDI2ODU5MTY2NjUuLjIzZGY1NTAzZDEyOGNh
NWJkOTA0OWZkMTM5ZmUwMmNhZGM1YTgwNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcG9zdC5qcworKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXBvc3Qu
anMKQEAgLTksNCArOSwxOSBAQCBfYWRkU3BhbignPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRF
U1QgQ09NUExFVEU8L3NwYW4+Jyk7CiBpZiAoX2pzVGVzdFByZVZlcmJvc2VMb2dnaW5nKSB7CiAg
ICAgX2J1ZmZlcmVkTG9nVG9Db25zb2xlKCdURVNUIENPTVBMRVRFJyk7CiB9CisKK3sKKyAgICBj
b25zdCBlX3Jlc3VsdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBsZXQg
ZmFpbHNfY2xhc3MgPSAncGFzcyc7CisgICAgaWYgKFJFU1VMVFMuZmFpbCkgeworICAgICAgICBm
YWlsc19jbGFzcyA9ICdmYWlsJzsKKyAgICB9CisgICAgZV9yZXN1bHRzLmNsYXNzTGlzdC5hZGQo
J3Bhc3MnKTsKKyAgICBlX3Jlc3VsdHMuaW5uZXJIVE1MID0gYDxwPlRFU1QgQ09NUExFVEU6ICR7
UkVTVUxUUy5wYXNzfSBQQVNTLCBgICsKKyAgICAgIGA8c3BhbiBjbGFzcz0iJHtmYWlsc19jbGFz
c30iPiR7UkVTVUxUUy5mYWlsfSBGQUlMPC9zcGFuPjwvcD5gOworCisgICAgY29uc3QgZV9kZXNj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIik7CisgICAgZV9kZXNjLmFw
cGVuZENoaWxkKGVfcmVzdWx0cyk7Cit9CisKIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pz
L2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvanMvanMtdGVzdC1wcmUuanMKaW5kZXggYTBkYTM0ODllN2UzZGU3NzhjMTJjOWJhMmI5
ZjE1MTk3MjY4OGQwMC4uZTFjYjlmNzQ5YzAyMmFhYWMwOGZiMTBiMGMyZjY0OTBiMGZhYWY2MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
anMvanMtdGVzdC1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKQEAgLTg4LDcgKzg4LDE3IEBAIGZ1bmN0aW9u
IG5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25lKCkgewogICB9CiB9CiAKK2NvbnN0IFJFU1VM
VFMgPSB7CisgIHBhc3M6IDAsCisgIGZhaWw6IDAsCit9OworCiBmdW5jdGlvbiByZXBvcnRUZXN0
UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKyAgaWYgKHN1Y2Nlc3MpIHsKKyAgICBS
RVNVTFRTLnBhc3MgKz0gMTsKKyAgfSBlbHNlIHsKKyAgICBSRVNVTFRTLmZhaWwgKz0gMTsKKyAg
fQogICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7CiAgICAgd2luZG93LnBh
cmVudC53ZWJnbFRlc3RIYXJuZXNzLnJlcG9ydFJlc3VsdHMod2luZG93LmxvY2F0aW9uLnBhdGhu
YW1lLCBzdWNjZXNzLCBtc2cpOwogICB9CkBAIC0xMDEsNiArMTExLDExIEBAIGZ1bmN0aW9uIHJl
cG9ydFNraXBwZWRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKIH0KIAogZnVu
Y3Rpb24gbm90aWZ5RmluaXNoZWRUb0hhcm5lc3MoKSB7CisgIGlmICh3aW5kb3cuX2RpZE5vdGlm
eUZpbmlzaGVkVG9IYXJuZXNzKSB7CisgICAgdGVzdEZhaWxlZCgiRHVwbGljYXRlIG5vdGlmeUZp
bmlzaGVkVG9IYXJuZXNzKCkiKTsKKyAgfQorICB3aW5kb3cuX2RpZE5vdGlmeUZpbmlzaGVkVG9I
YXJuZXNzID0gdHJ1ZTsKKwogICBpZiAod2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzKSB7
CiAgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNzLm5vdGlmeUZpbmlzaGVkKHdpbmRv
dy5sb2NhdGlvbi5wYXRobmFtZSk7CiAgIH0KQEAgLTc3MSwzICs3ODYsMTYgQEAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1ZSk7CiB9
CiAKKy8vLyBQcmVmZXIgYGNhbGwoKCkgPT4geyAuLi4gfSlgIHRvIGAoKCkgPT4geyAuLi4gfSko
KWBcCisvLy8gVGhpcyB3YXksIGl0J3MgY2xlYXIgdXAtZnJvbnQgdGhhdCB3ZSdyZSBjYWxsaW5n
IG5vdCBqdXN0IGRlZmluaW5nLgorZnVuY3Rpb24gY2FsbChmbikgeworICAgIHJldHVybiBmbigp
OworfQorCisvLy8gYGZvciAoY29uc3QgaSBvZiByYW5nZSgzKSlgID0+IDAsIDEsIDIKKy8vLyBE
b24ndCB1c2UgYGZvci4uLmluIHJhbmdlKG4pYCwgaXQgd2lsbCBub3Qgd29yay4KK2Z1bmN0aW9u
KiByYW5nZShuKSB7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgeWllbGQg
aTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvanMvdGVzdHMvY29tcHJlc3NlZC10ZXh0dXJlLXV0aWxzLmpzIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvY29tcHJlc3Nl
ZC10ZXh0dXJlLXV0aWxzLmpzCmluZGV4IGQ2ZjAyYzRkNDNiMzlmMGFhNDg1M2U3NDg5ZjQwNThm
YzJkNmJjZjUuLjQ2ZDE1NWY1ZjFkYTYzOGQ2ZThhMmM4ZDU1NjY3MzE5YjFhYTM3YjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rl
c3RzL2NvbXByZXNzZWQtdGV4dHVyZS11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9jb21wcmVzc2VkLXRleHR1cmUtdXRp
bHMuanMKQEAgLTE2NSw3ICsxNjUsNyBAQCBsZXQgdGVzdEZvcm1hdFJlc3RyaWN0aW9uc09uQnVm
ZmVyU2l6ZSA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0ZQogICogQHBh
cmFtIHtudW1iZXJ9IGhlaWdodCBIZWlnaHQgb2YgdGhlIGltYWdlIGluIHBpeGVscy4KICAqIEBw
YXJhbSB7T2JqZWN0fSBzdWJJbWFnZUNvbmZpZ3MgY29uZmlncyBmb3IgY29tcHJlc3NlZFRleFN1
YkltYWdlIGNhbGxzCiAgKi8KLWxldCB0ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zID0gZnVuY3Rp
b24oZ2wsIHZhbGlkRm9ybWF0cywgZXhwZWN0ZWRCeXRlTGVuZ3RoLCBnZXRCbG9ja0RpbWVuc2lv
bnMsIHdpZHRoLCBoZWlnaHQsIHN1YkltYWdlQ29uZmlncykgeworbGV0IHRlc3RUZXhTdWJJbWFn
ZURpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVkQnl0
ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCB3aWR0aCwgaGVpZ2h0LCBzdWJJbWFnZUNvbmZp
Z3MpIHsKICAgICBsZXQgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwogICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CiAKQEAgLTE3Myw2ICsxNzMsNyBAQCBsZXQgdGVzdFRl
eFN1YkltYWdlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVk
Qnl0ZUxlbmd0aCwgZwogICAgICAgICBpZiAodmFsaWRGb3JtYXRzLmhhc093blByb3BlcnR5KGZv
cm1hdElkKSkgewogICAgICAgICAgICAgbGV0IGZvcm1hdCA9IHZhbGlkRm9ybWF0c1tmb3JtYXRJ
ZF07CiAgICAgICAgICAgICBsZXQgYmxvY2tTaXplID0gZ2V0QmxvY2tEaW1lbnNpb25zKGZvcm1h
dCk7CisgICAgICAgICAgICBkZWJ1ZygidGVzdGluZyAiICsgY3R1LmZvcm1hdFRvU3RyaW5nKGV4
dCwgZm9ybWF0KSk7CiAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRTaXplID0gZXhwZWN0ZWRCeXRl
TGVuZ3RoKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCk7CiAgICAgICAgICAgICBsZXQgZGF0YSA9IG5l
dyBVaW50OEFycmF5KGV4cGVjdGVkU2l6ZSk7CiAKQEAgLTE5Miw3ICsxOTMsNyBAQCBsZXQgdGVz
dFRleFN1YkltYWdlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVj
dGVkQnl0ZUxlbmd0aCwgZwogICAgIGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKIH07CiAKLWxldCB0
ZXN0VGV4SW1hZ2VMZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgdmFsaWRGb3JtYXRzLCBl
eHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgaW1hZ2VDb25maWdzKSB7Cits
ZXQgdGVzdFRleEltYWdlTGV2ZWxEaW1lbnNpb25zID0gZnVuY3Rpb24oZ2wsIGV4dCwgdmFsaWRG
b3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5ndGgsIGdldEJsb2NrRGltZW5zaW9ucywgaW1hZ2VDb25m
aWdzKSB7CiAgICAgbGV0IHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKICAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwogCkBAIC0yMDAsNiArMjAxLDcgQEAgbGV0IHRlc3RU
ZXhJbWFnZUxldmVsRGltZW5zaW9ucyA9IGZ1bmN0aW9uKGdsLCB2YWxpZEZvcm1hdHMsIGV4cGVj
dGVkQnl0ZUxlbmd0aCwKICAgICAgICAgaWYgKHZhbGlkRm9ybWF0cy5oYXNPd25Qcm9wZXJ0eShm
b3JtYXRJZCkpIHsKICAgICAgICAgICAgIGxldCBmb3JtYXQgPSB2YWxpZEZvcm1hdHNbZm9ybWF0
SWRdOwogICAgICAgICAgICAgbGV0IGJsb2NrU2l6ZSA9IGdldEJsb2NrRGltZW5zaW9ucyhmb3Jt
YXQpOworICAgICAgICAgICAgZGVidWcoInRlc3RpbmcgIiArIGN0dS5mb3JtYXRUb1N0cmluZyhl
eHQsIGZvcm1hdCkpOwogCiAgICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW1hZ2VD
b25maWdzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7CiAgICAgICAgICAgICAgICAgbGV0IGMgPSBp
bWFnZUNvbmZpZ3NbaV07CkBAIC0yMTQsNiArMjE2LDMyIEBAIGxldCB0ZXN0VGV4SW1hZ2VMZXZl
bERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgdmFsaWRGb3JtYXRzLCBleHBlY3RlZEJ5dGVMZW5n
dGgsCiAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0ZXgpOwogfQogCitsZXQgdGVzdFRleFN0b3JhZ2VM
ZXZlbERpbWVuc2lvbnMgPSBmdW5jdGlvbihnbCwgZXh0LCB2YWxpZEZvcm1hdHMsIGV4cGVjdGVk
Qnl0ZUxlbmd0aCwgZ2V0QmxvY2tEaW1lbnNpb25zLCBpbWFnZUNvbmZpZ3MpIHsKKyAgICBmb3Ig
KGxldCBmb3JtYXRJZCBpbiB2YWxpZEZvcm1hdHMpIHsKKyAgICAgICAgbGV0IHRleCA9IGdsLmNy
ZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
KTsKKworICAgICAgICBpZiAodmFsaWRGb3JtYXRzLmhhc093blByb3BlcnR5KGZvcm1hdElkKSkg
eworICAgICAgICAgICAgbGV0IGZvcm1hdCA9IHZhbGlkRm9ybWF0c1tmb3JtYXRJZF07CisgICAg
ICAgICAgICBsZXQgYmxvY2tTaXplID0gZ2V0QmxvY2tEaW1lbnNpb25zKGZvcm1hdCk7CisgICAg
ICAgICAgICBkZWJ1ZygidGVzdGluZyAiICsgY3R1LmZvcm1hdFRvU3RyaW5nKGV4dCwgZm9ybWF0
KSk7CisKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBpbWFnZUNvbmZpZ3MubGVu
Z3RoOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsZXQgYyA9IGltYWdlQ29uZmln
c1tpXTsKKyAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IG5ldyBVaW50OEFycmF5KGV4cGVjdGVk
Qnl0ZUxlbmd0aChjLndpZHRoLCBjLmhlaWdodCwgZm9ybWF0KSk7CisgICAgICAgICAgICAgICAg
aWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBnbC50ZXhTdG9yYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgaW1hZ2VDb25maWdzLmxlbmd0aCwgZm9ybWF0LCBjLndpZHRoLCBjLmhlaWdodCk7
CisgICAgICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGMuZXhwZWN0YXRp
b24sIGMubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdsLmNv
bXByZXNzZWRUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIGksIDAsIDAsIGMud2lkdGgsIGMu
aGVpZ2h0LCBmb3JtYXQsIGRhdGEpOworICAgICAgICAgICAgICAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGMuZXhwZWN0YXRpb24sIGMubWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7CisgICAgICAg
IGdsLmRlbGV0ZVRleHR1cmUodGV4KTsKKyAgICB9Cit9CisKIHJldHVybiB7CiAgICAgZm9ybWF0
VG9TdHJpbmc6IGZvcm1hdFRvU3RyaW5nLAogICAgIGluc2VydENhcHRpb25lZEltZzogaW5zZXJ0
Q2FwdGlvbmVkSW1nLApAQCAtMjI0LDYgKzI1Miw3IEBAIHJldHVybiB7CiAgICAgdGVzdEZvcm1h
dFJlc3RyaWN0aW9uc09uQnVmZmVyU2l6ZTogdGVzdEZvcm1hdFJlc3RyaWN0aW9uc09uQnVmZmVy
U2l6ZSwKICAgICB0ZXN0VGV4U3ViSW1hZ2VEaW1lbnNpb25zOiB0ZXN0VGV4U3ViSW1hZ2VEaW1l
bnNpb25zLAogICAgIHRlc3RUZXhJbWFnZUxldmVsRGltZW5zaW9uczogdGVzdFRleEltYWdlTGV2
ZWxEaW1lbnNpb25zLAorICAgIHRlc3RUZXhTdG9yYWdlTGV2ZWxEaW1lbnNpb25zOiB0ZXN0VGV4
U3RvcmFnZUxldmVsRGltZW5zaW9ucywKIH07CiAKIH0pKCk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvdGVzdHMvY29udGV4dC1tZXRob2RzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvY29udGV4dC1tZXRob2RzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY2NDc2NDYzZDI3MGZkNzA2ZGE5MzgzOGVlNTEwODk1MmMwZjhmOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9qcy90ZXN0cy9jb250ZXh0LW1ldGhvZHMuanMKQEAgLTAsMCArMSw1MiBAQAorInVzZSBzdHJp
Y3QiOworCisvLyBQcm9wZXJ0aWVzIHRvIGJlIGlnbm9yZWQgYmVjYXVzZSB0aGV5IHdlcmUgYWRk
ZWQgaW4gdmVyc2lvbnMgb2YgdGhlCisvLyBzcGVjIHRoYXQgYXJlIGJhY2t3YXJkLWNvbXBhdGli
bGUgd2l0aCB0aGlzIHZlcnNpb24KK2NvbnN0IElHTk9SRURfTUVUSE9EUyA9IFsKKyAgLy8gVGhl
cmUgaXMgbm8gb2ZmaWNpYWwgc3BlYyBmb3IgdGhlIGNvbW1pdCBBUEkgeWV0LCB0aGUgcHJvcG9z
YWwgbGluayBpczoKKyAgLy8gaHR0cHM6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9PZmZzY3JlZW5D
YW52YXMKKyAgImNvbW1pdCIsCisKKyAgLy8gRm9yIFdlYlhSIGludGVncmF0aW9uOgorICAibWFr
ZVhSQ29tcGF0aWJsZSIsCitdOworCitmdW5jdGlvbiBhc3NlcnRGdW5jdGlvbih2LCBmKSB7Cisg
IHRyeSB7CisgICAgaWYgKHR5cGVvZiB2W2ZdICE9ICJmdW5jdGlvbiIpIHsKKyAgICAgIHRlc3RG
YWlsZWQoYFByb3BlcnR5IGVpdGhlciBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBmdW5jdGlv
bjogJHtmfWApOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgIH0gY2F0Y2goZSkgeworICAgIHRlc3RGYWlsZWQoYFRyeWluZyB0
byBhY2Nlc3MgdGhlIHByb3BlcnR5ICcke2Z9JyB0aHJldyBhbiBlcnJvcjogJHtlLnRvU3RyaW5n
KCl9YCk7CisgIH0KK30KKworZnVuY3Rpb24gdGVzdENvbnRleHRNZXRob2RzKGdsLCByZXF1aXJl
ZENvbnRleHRNZXRob2RzKSB7CisgIGNvbnN0IGFjY2VwdGFibGVNZXRob2RzID0gW10uY29uY2F0
KHJlcXVpcmVkQ29udGV4dE1ldGhvZHMsIElHTk9SRURfTUVUSE9EUyk7CisKKyAgbGV0IHBhc3Nl
ZCA9IHRydWU7CisgIHJlcXVpcmVkQ29udGV4dE1ldGhvZHMuZm9yRWFjaChtZXRob2QgPT4gewor
ICAgIGNvbnN0IHIgPSBhc3NlcnRGdW5jdGlvbihnbCwgbWV0aG9kKTsKKyAgICBwYXNzZWQgPSBw
YXNzZWQgJiYgcjsKKyAgfSk7CisgIGlmIChwYXNzZWQpIHsKKyAgICB0ZXN0UGFzc2VkKCJBbGwg
V2ViR0wgbWV0aG9kcyBmb3VuZC4iKTsKKyAgfQorICBsZXQgZXh0ZW5kZWQgPSBmYWxzZTsKKyAg
Zm9yIChsZXQgcHJvcGVydHlOYW1lIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGdsKSkg
eworICAgIGlmICh0eXBlb2YgZ2xbcHJvcGVydHlOYW1lXSA9PSAiZnVuY3Rpb24iICYmICFhY2Nl
cHRhYmxlTWV0aG9kcy5pbmNsdWRlcyhwcm9wZXJ0eU5hbWUpKSB7CisgICAgICBpZiAoIWV4dGVu
ZGVkKSB7CisgICAgICAgIGV4dGVuZGVkID0gdHJ1ZTsKKyAgICAgICAgdGVzdEZhaWxlZCgiQWxz
byBmb3VuZCB0aGUgZm9sbG93aW5nIGV4dHJhIG1ldGhvZHM6Iik7CisgICAgICB9CisgICAgICB0
ZXN0RmFpbGVkKHByb3BlcnR5TmFtZSk7CisgICAgfQorICB9CisKKyAgaWYgKCFleHRlbmRlZCkg
eworICAgIHRlc3RQYXNzZWQoIk5vIGV4dHJhIG1ldGhvZHMgZm91bmQgb24gV2ViR0wgY29udGV4
dC4iKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZXh0LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0LmpzIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZXh0
LWNvbG9yLWJ1ZmZlci1oYWxmLWZsb2F0LmpzCmluZGV4IDkzZGU4YjY3ZWZmZDE3YTU3YTlhYTg4
MThlYmQ2YTFmZmQ3MzY2ZTkuLjUxNTA5ZThhNmU0NmNlODAxODZkM2MyNDJiMGNmMGEwOTQzYzQz
MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2pzL3Rlc3RzL2V4dC1jb2xvci1idWZmZXItaGFsZi1mbG9hdC5qcworKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy9leHQtY29sb3It
YnVmZmVyLWhhbGYtZmxvYXQuanMKQEAgLTI0NCw3ICsyNDQsNyBAQCBmdW5jdGlvbiBydW5JbnRl
cm5hbEZvcm1hdFF1ZXJ5VGVzdCgpCiAgICAgZGVidWcoInRlc3RpbmcgdGhlIGludGVybmFsIGZv
cm1hdCBxdWVyeSIpOwogCiAgICAgdmFyIG1heFNhbXBsZXMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wu
TUFYX1NBTVBMRVMpOwotICAgIHZhciBmb3JtYXRzID0gbmV3IEFycmF5KGdsLlJHQkExNkYsIGds
LlIxNkYsIGdsLlJHMTZGKTsKKyAgICBjb25zdCBmb3JtYXRzID0gW2dsLlJHQkExNkYsIGdsLlIx
NkYsIGdsLlJHMTZGXTsKICAgICB2YXIgZmlyc3RNdWx0aU9ubHlGb3JtYXQgPSA0OwogICAgIGZv
ciAodmFyIGZtdCA9IDA7IGZtdCA8IGZvcm1hdHMubGVuZ3RoOyArK2ZtdCkgewogICAgICAgICB2
YXIgc2FtcGxlcyA9IGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZm9ybWF0c1tmbXRdLCBnbC5TQU1QTEVTKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQtY2Fs
bHMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90
ZXN0cy9nbC1vYmplY3QtZ2V0LWNhbGxzLmpzCmluZGV4IDI4ZGMzMDU0OTc2Y2VhYTUzNWZlZmU3
NDI4MWQ3N2JkNGNhNzI4NTEuLmJkOTc0MzRiNzdmZTY4NThiOTY3NGM4NGI0OWQ3YTljMDlkZjU3
ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2pzL3Rlc3RzL2dsLW9iamVjdC1nZXQtY2FsbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxs
cy5qcwpAQCAtOSwyNiArOSwzMiBAQCBmb3VuZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZS4KIC8v
IG9uIC0tIDEgZm9yIFdlYkdMIDEuMCwgMiBmb3IgV2ViR0wgMi4wLCBldGMuCiAKICJ1c2Ugc3Ry
aWN0IjsKLXZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwogZGVzY3JpcHRpb24oIlRlc3Qgb2YgZ2V0IGNhbGxzIGFnYWluc3QgR0wgb2JqZWN0cyBs
aWtlIGdldEJ1ZmZlclBhcmFtZXRlciwgZXRjLiIpOwogCi12YXIgZ2wgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0VmVyc2lvbik7CitsZXQgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0VmVyc2lvbik7
CiAKLWZ1bmN0aW9uIHRlc3RJbnZhbGlkQXJndW1lbnQoZnVuY05hbWUsIGFyZ3VtZW50TmFtZSwg
dmFsaWRBcmd1bWVudEFycmF5LCBmdW5jKSB7Ci0gIHZhciB2YWxpZEFyZ3VtZW50cyA9IHt9Owot
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdmFsaWRBcmd1bWVudEFycmF5Lmxlbmd0aDsgKytpaSkg
eworYXN5bmMgZnVuY3Rpb24gdGVzdEludmFsaWRBcmd1bWVudChmdW5jTmFtZSwgYXJndW1lbnRO
YW1lLCB2YWxpZEFyZ3VtZW50QXJyYXksIGZ1bmMpIHsKKyAgbGV0IHZhbGlkQXJndW1lbnRzID0g
e307CisgIGZvciAobGV0IGlpID0gMDsgaWkgPCB2YWxpZEFyZ3VtZW50QXJyYXkubGVuZ3RoOyAr
K2lpKSB7CiAgICAgdmFsaWRBcmd1bWVudHNbdmFsaWRBcmd1bWVudEFycmF5W2lpXV0gPSB0cnVl
OwogICB9Ci0gIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDB4
MTAwMDA7ICsraWkpIHsKKyAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworICBjb25zdCBNQVggPSAweDEw
MDAwOworICBjb25zdCBTVEVQID0gTWF0aC5jZWlsKE1BWCAvIDEwKTsKKyAgZm9yIChsZXQgaWkg
PSAwOyBpaSA8IE1BWDsgaWkgKz0gMSkgeworICAgIGlmIChpaSAmJiBpaSAlIFNURVAgPT0gMCkg
eworICAgICAgZGVidWcoYCgke2lpfSBvZiAke01BWH06ICR7KGlpL01BWCoxMDApLnRvRml4ZWQo
MSl9JSlgKTsKKyAgICAgIGF3YWl0IHd0dS5kaXNwYXRjaFByb21pc2UoKTsgLy8gU3BpbiB0aGUg
ZXZlbnQgbG9vcC4KKyAgICB9CiAgICAgaWYgKCF2YWxpZEFyZ3VtZW50c1tpaV0pIHsKLSAgICAg
IHZhciByZXN1bHQgPSBmdW5jKGlpKTsKKyAgICAgIGxldCByZXN1bHQgPSBmdW5jKGlpKTsKICAg
ICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwogICAg
ICAgICB0ZXN0RmFpbGVkKGZ1bmNOYW1lICsgIiByZXR1cm5lZCAiICsgcmVzdWx0ICsgIiBpbnN0
ZWFkIG9mIG51bGwgZm9yIGludmFsaWQgIiArIGFyZ3VtZW50TmFtZSArICIgZW51bTogIiArIHd0
dS5nbEVudW1Ub1N0cmluZyhnbCwgaWkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAg
ICB2YXIgZXJyID0gZ2wuZ2V0RXJyb3IoKTsKKyAgICAgIGxldCBlcnIgPSBnbC5nZXRFcnJvcigp
OwogICAgICAgaWYgKGVyciAhPSBnbC5JTlZBTElEX0VOVU0pIHsKICAgICAgICAgc3VjY2VzcyA9
IGZhbHNlOwogICAgICAgICB0ZXN0RmFpbGVkKGZ1bmNOYW1lICsgIiBkaWQgbm90IGdlbmVyYXRl
IElOVkFMSURfRU5VTSBmb3IgaW52YWxpZCAiICsgYXJndW1lbnROYW1lICsgIiBlbnVtOiAiICsg
d3R1LmdsRW51bVRvU3RyaW5nKGdsLCBpaSkpOwpAQCAtNDEsNzIgKzQ3LDU4IEBAIGZ1bmN0aW9u
IHRlc3RJbnZhbGlkQXJndW1lbnQoZnVuY05hbWUsIGFyZ3VtZW50TmFtZSwgdmFsaWRBcmd1bWVu
dEFycmF5LCBmdW5jKSB7CiAgIH0KIH0KIAotZGVidWcoIiIpOwotZGVidWcoInRlc3QgZ2V0QnVm
ZmVyUGFyYW1ldGVyIik7Ci0vLyBUZXN0IGdldEJ1ZmZlclBhcmFtZXRlcgotdmFyIGJ1ZmZlclR5
cGVzID0gW2dsLkFSUkFZX0JVRkZFUiwgZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVJdOwotaWYgKGNv
bnRleHRWZXJzaW9uID4gMSkgewotICBidWZmZXJUeXBlcyA9IGJ1ZmZlclR5cGVzLmNvbmNhdChb
Z2wuQ09QWV9SRUFEX0JVRkZFUiwgZ2wuQ09QWV9XUklURV9CVUZGRVIsIGdsLlBJWEVMX1BBQ0tf
QlVGRkVSLCBnbC5QSVhFTF9VTlBBQ0tfQlVGRkVSLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVG
RkVSLCBnbC5VTklGT1JNX0JVRkZFUl0pOwotfQotZm9yICh2YXIgYmIgPSAwOyBiYiA8IGJ1ZmZl
clR5cGVzLmxlbmd0aDsgKytiYikgewotICB2YXIgYnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGVzW2Ji
XTsKLSAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBnbC5iaW5kQnVmZmVyKGJ1
ZmZlclR5cGUsIGJ1ZmZlcik7Ci0gIGdsLmJ1ZmZlckRhdGEoYnVmZmVyVHlwZSwgMTYsIGdsLkRZ
TkFNSUNfRFJBVyk7Ci0gIHZhciBleHByZXNzaW9uMSA9ICJnbC5nZXRCdWZmZXJQYXJhbWV0ZXIo
IiArIGJ1ZmZlclR5cGUgKyAiLCBnbC5CVUZGRVJfU0laRSkiOwotICB2YXIgZXhwcmVzc2lvbjIg
PSAiZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKCIgKyBidWZmZXJUeXBlICsgIiwgZ2wuQlVGRkVSX1VT
QUdFKSI7Ci0gIHNob3VsZEJlKGV4cHJlc3Npb24xLCAnMTYnKTsKLSAgc2hvdWxkQmUoZXhwcmVz
c2lvbjIsICdnbC5EWU5BTUlDX0RSQVcnKTsKLSAgdGVzdEludmFsaWRBcmd1bWVudCgiZ2V0QnVm
ZmVyUGFyYW1ldGVyIiwgInBhcmFtZXRlciIsIFtnbC5CVUZGRVJfU0laRSwgZ2wuQlVGRkVSX1VT
QUdFXSwgZnVuY3Rpb24oYnVmZmVyVHlwZSkgewotICAgIHJldHVybiBmdW5jdGlvbihwYXJhbWV0
ZXIpIHsKLSAgICAgIHJldHVybiBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoYnVmZmVyVHlwZSwgcGFy
YW1ldGVyKTsKLSAgICB9OwotICB9KGJ1ZmZlclR5cGUpKTsKLSAgZ2wuYmluZEJ1ZmZlcihidWZm
ZXJUeXBlLCBudWxsKTsKLX0KLXRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgImdldEJ1ZmZlclBh
cmFtZXRlciIsCi0gICAgInRhcmdldCIsCi0gICAgYnVmZmVyVHlwZXMsCi0gICAgZnVuY3Rpb24o
dGFyZ2V0KSB7Ci0gICAgICByZXR1cm4gZ2wuZ2V0QnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgZ2wu
QlVGRkVSX1NJWkUpOwotICAgIH0KLSk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7CisoYXN5bmMgKCkgPT4geworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJ0ZXN0IGdldEJ1
ZmZlclBhcmFtZXRlciIpOworICAvLyBUZXN0IGdldEJ1ZmZlclBhcmFtZXRlcgorICBsZXQgYnVm
ZmVyVHlwZXMgPSBbZ2wuQVJSQVlfQlVGRkVSLCBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl07Cisg
IGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICBidWZmZXJUeXBlcyA9IGJ1ZmZlclR5cGVz
LmNvbmNhdChbZ2wuQ09QWV9SRUFEX0JVRkZFUiwgZ2wuQ09QWV9XUklURV9CVUZGRVIsIGdsLlBJ
WEVMX1BBQ0tfQlVGRkVSLCBnbC5QSVhFTF9VTlBBQ0tfQlVGRkVSLCBnbC5UUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSLCBnbC5VTklGT1JNX0JVRkZFUl0pOworICB9CisgIGZvciAobGV0IGJiID0g
MDsgYmIgPCBidWZmZXJUeXBlcy5sZW5ndGg7ICsrYmIpIHsKKyAgICBsZXQgYnVmZmVyVHlwZSA9
IGJ1ZmZlclR5cGVzW2JiXTsKKyAgICBsZXQgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7Cisg
ICAgZ2wuYmluZEJ1ZmZlcihidWZmZXJUeXBlLCBidWZmZXIpOworICAgIGdsLmJ1ZmZlckRhdGEo
YnVmZmVyVHlwZSwgMTYsIGdsLkRZTkFNSUNfRFJBVyk7CisgICAgbGV0IGV4cHJlc3Npb24xID0g
ImdsLmdldEJ1ZmZlclBhcmFtZXRlcigiICsgYnVmZmVyVHlwZSArICIsIGdsLkJVRkZFUl9TSVpF
KSI7CisgICAgbGV0IGV4cHJlc3Npb24yID0gImdsLmdldEJ1ZmZlclBhcmFtZXRlcigiICsgYnVm
ZmVyVHlwZSArICIsIGdsLkJVRkZFUl9VU0FHRSkiOworICAgIHNob3VsZEJlKGV4cHJlc3Npb24x
LCAnMTYnKTsKKyAgICBzaG91bGRCZShleHByZXNzaW9uMiwgJ2dsLkRZTkFNSUNfRFJBVycpOwor
ICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoImdldEJ1ZmZlclBhcmFtZXRlciIsICJwYXJh
bWV0ZXIiLCBbZ2wuQlVGRkVSX1NJWkUsIGdsLkJVRkZFUl9VU0FHRV0sIGZ1bmN0aW9uKGJ1ZmZl
clR5cGUpIHsKKyAgICAgIHJldHVybiBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKKyAgICAgICAgcmV0
dXJuIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihidWZmZXJUeXBlLCBwYXJhbWV0ZXIpOworICAgICAg
fTsKKyAgICB9KGJ1ZmZlclR5cGUpKTsKKyAgICBnbC5iaW5kQnVmZmVyKGJ1ZmZlclR5cGUsIG51
bGwpOworICB9CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0QnVmZmVy
UGFyYW1ldGVyIiwKKyAgICAgICJ0YXJnZXQiLAorICAgICAgYnVmZmVyVHlwZXMsCisgICAgICBm
dW5jdGlvbih0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIGdsLmdldEJ1ZmZlclBhcmFtZXRlcih0
YXJnZXQsIGdsLkJVRkZFUl9TSVpFKTsKKyAgICAgIH0KKyAgKTsKKyAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogCi12YXIgdGVzdENhc2VzID0gWwotICB7IGNvbnRleHRT
dGVuY2lsOiB0cnVlfSwKLSAgeyBjb250ZXh0U3RlbmNpbDogZmFsc2V9Ci1dOworICBsZXQgdGVz
dENhc2VzID0gWworICAgIHsgY29udGV4dFN0ZW5jaWw6IHRydWV9LAorICAgIHsgY29udGV4dFN0
ZW5jaWw6IGZhbHNlfQorICBdOwogCi1mb3IgKHZhciBydW4gPSAwOyBydW4gPCB0ZXN0Q2FzZXMu
bGVuZ3RoOyArK3J1bikgewotICBkZWJ1ZygiIik7Ci0gIGRlYnVnKCJUZXN0IGdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciB3aXRoIHN0ZW5jaWwgIiArIHRlc3RDYXNlc1tydW5dLmNv
bnRleHRTdGVuY2lsKTsKKyAgZm9yIChsZXQgcnVuID0gMDsgcnVuIDwgdGVzdENhc2VzLmxlbmd0
aDsgKytydW4pIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyIHdpdGggc3RlbmNpbCAiICsgdGVzdENhc2VzW3J1bl0uY29u
dGV4dFN0ZW5jaWwpOwogCi0gIGlmICh0ZXN0Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkgewot
ICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7c3RlbmNpbDogdHJ1ZX0sIGNvbnRl
eHRWZXJzaW9uKTsKLSAgfSBlbHNlIHsKLSAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQobnVs
bCwge3N0ZW5jaWw6IGZhbHNlfSwgY29udGV4dFZlcnNpb24pOwotICB9CisgICAgaWYgKHRlc3RD
YXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7CisgICAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQobnVsbCwge3N0ZW5jaWw6IHRydWV9LCBjb250ZXh0VmVyc2lvbik7CisgICAgfSBlbHNlIHsK
KyAgICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChudWxsLCB7c3RlbmNpbDogZmFsc2V9LCBj
b250ZXh0VmVyc2lvbik7CisgICAgfQogCi0gIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOwotICB2YXIgYW5vdGhlclRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIDIsIDIsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
Ci0gICAgICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoWwotICAgICAgICAgICAgICAgICAgICAw
LCAwLCAwLCAyNTUsCi0gICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwKLSAg
ICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LAotICAgICAgICAgICAgICAgICAg
ICAwLCAwLCAwLCAyNTVdKSk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwotICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKLSAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gIHZhciBmcmFtZWJ1ZmZlciA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCk7Ci0gIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJh
bWVidWZmZXIpOwotICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleHR1cmUsIDApOwotICB2YXIgY29s
b3JBdHRhY2htZW50c051bSA9IDE7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBhbm90aGVyVGV4dHVyZSk7CisgICAgd2luZG93
LnRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgd2luZG93LmFub3RoZXJUZXh0dXJl
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOwogICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
MiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwKICAgICAgICAgICAgICAgICAgIG5l
dyBVaW50OEFycmF5KFsKICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAyNTUsCkBAIC0x
MTYsOTYwICsxMDgsOTgzIEBAIGZvciAodmFyIHJ1biA9IDA7IHJ1biA8IHRlc3RDYXNlcy5sZW5n
dGg7ICsrcnVuKSB7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01JTl9GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLkxJTkVBUik7CiAgICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7Ci0gICAgY29sb3JBdHRhY2htZW50c051bSA9IGds
LmdldFBhcmFtZXRlcihnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMpOwotICAgIGdsLmZyYW1lYnVm
ZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGNvbG9y
QXR0YWNobWVudHNOdW0gLSAxLCBnbC5URVhUVVJFXzJELCBhbm90aGVyVGV4dHVyZSwgMCk7Ci0g
IH0KLSAgdmFyIHJlbmRlcmJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICB3dHUu
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gIGdsLmJpbmRSZW5kZXJidWZmZXIo
Z2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwotICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA9PSAxKQotICAgIGdsLnJlbmRl
cmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgMiwg
Mik7Ci0gIGVsc2UKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuREVQVEgyNF9TVEVOQ0lMOCwgMiwgMik7Ci0gIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLSAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsKLSAg
aWYgKGNvbnRleHRWZXJzaW9uID4gMSkKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHJl
bmRlcmJ1ZmZlcik7Ci0gIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOwotICAvLyBUaGUgZm9yIGxv
b3AgdGVzdHMgdHdvIGNvbG9yIGF0dGFjaG1lbnRzIGZvciBXZWJHTCAyOiB0aGUgZmlyc3Qgb25l
IChnbC5DT0xPUl9BVFRBQ0hNRU5UMCkKLSAgLy8gYW5kIHRoZSBsYXN0IG9uZSAoZ2wuQ09MT1Jf
QVRUQUNITUVOVDAgKyBnbC5NQVhfQ09MT1JfQVRUQUNITUVOVFMgLSAxKS4KLSAgZm9yICh2YXIg
aWkgPSAwOyBpaSA8IGNvbG9yQXR0YWNobWVudHNOdW07IGlpICs9IChjb2xvckF0dGFjaG1lbnRz
TnVtID4gMSA/IGNvbG9yQXR0YWNobWVudHNOdW0gLSAxIDogMSkpIHsKLSAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEUpJywgJ2dsLlRFWFRVUkUnKTsKLSAgICBpZiAoaWkgPT0gMCkKLSAgICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfTkFNRSknLCAndGV4dHVyZScpOwotICAgIGVsc2UKLSAgICAgIHNob3Vs
ZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfTkFNRSknLCAnYW5vdGhlclRleHR1cmUnKTsKLSAgICBzaG91bGRCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9MRVZFTCknLCAnMCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyAr
IGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0Up
JywgJzAnKTsKKyAgICB3aW5kb3cuZnJhbWVidWZmZXIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
OworICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXIpOwor
ICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRB
Q0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7CisgICAgbGV0IGNvbG9yQXR0YWNo
bWVudHNOdW0gPSAxOwogICAgIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICAgIHNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfUkVEX1NJWkUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJ
WkUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkg
KyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSknKTsKLSAgICAgIHNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQUxQSEFfU0laRSknKTsKLSAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9O
RU5UX1RZUEUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAn
ICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOwot
ICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5G
UkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVIpJywgJzAnKTsKKyAgICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJlKTsKKyAgICAgIGdsLnRleEltYWdlMkQo
Z2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMiwgMiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoWworICAgICAgICAgICAg
ICAgICAgICAgICAgMCwgMCwgMCwgMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAy
NTUsIDI1NSwgMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1
LAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMjU1XSkpOworICAgICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVB
Uik7CisgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IG51bGwpOworICAgICAgY29sb3JBdHRhY2htZW50c051bSA9IGdsLmdldFBhcmFtZXRlcihnbC5N
QVhfQ09MT1JfQVRUQUNITUVOVFMpOworICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgY29sb3JBdHRhY2htZW50c051bSAt
IDEsIGdsLlRFWFRVUkVfMkQsIGFub3RoZXJUZXh0dXJlLCAwKTsKICAgICB9Ci0gIH0KLSAgc2hv
dWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQs
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicp
OwotICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRB
Q0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5SRU5E
RVJCVUZGRVInKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ3JlbmRlcmJ1ZmZlcicpOwotICAgIHNob3Vs
ZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfVFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfU1RF
TkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScs
ICdyZW5kZXJidWZmZXInKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFKScpOwotICAgIHNob3VsZEJlTm9u
WmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJ
TF9TSVpFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOwotICAgIHNob3VsZEJlTm9uWmVy
bygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09E
SU5HKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJv
KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGds
LlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNP
RElORyknKTsKLSAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09Q
RVJBVElPTiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTVBPTkVOVF9UWVBFKScpOwotICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcpJyk7
Ci0gIH0KLSAgdmFyIHZhbGlkUGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCA9Ci0gICAgICBbIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUsCi0gICAgICAgIGdsLkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfVEVYVFVSRV9MRVZFTCwKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9U
RVhUVVJFX0NVQkVfTUFQX0ZBQ0UKLSAgICAgIF07Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEp
IHsKLSAgICB2YWxpZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQgPSB2YWxpZFBhcmFtZXRlcnNG
b3JGQkF0dGFjaG1lbnQuY29uY2F0KFsKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9SRURfU0laRSwKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9TSVpF
LAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSwKLSAgICAgICAg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFLAotICAgICAgICBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUsCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfU1RFTkNJTF9TSVpFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NP
TVBPTkVOVF9UWVBFLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VO
Q09ESU5HLAotICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVIK
LSAgICBdKTsKLSAgfQotICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgImdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCi0gICAgICAicGFyYW1ldGVyIiwKLSAgICAgIHZhbGlk
UGFyYW1ldGVyc0ZvckZCQXR0YWNobWVudCwKLSAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgewot
ICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5ULCBwYXJhbWV0ZXIpOwotICAgICAgfQotICAp
OwotICB2YXIgdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50ID0gW2dsLkZSQU1FQlVGRkVSXTsK
LSAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNo
bWVudCA9IHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudC5jb25jYXQoW2dsLlJFQURfRlJBTUVC
VUZGRVIsIGdsLkRSQVdfRlJBTUVCVUZGRVJdKTsKLSAgfQotICB0ZXN0SW52YWxpZEFyZ3VtZW50
KAotICAgICAgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCi0gICAgICAidGFy
Z2V0IiwKLSAgICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudCwKLSAgICAgIGZ1bmN0aW9u
KHRhcmdldCkgewotICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKHRhcmdldCwgZ2wuQ09MT1JfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfVFlQRSk7CisgICAgd2luZG93LnJlbmRlcmJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
KyAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsK
KyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgaWYgKGNvbnRl
eHRWZXJzaW9uID09IDEpCisgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIDIsIDIpOworICAgIGVsc2UKKyAgICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSDI0X1NURU5DSUw4LCAy
LCAyKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgZ2wu
ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1F
TlQsIGdsLlJFTkRFUkJVRkZFUiwgcmVuZGVyYnVmZmVyKTsKKyAgICBpZiAoY29udGV4dFZlcnNp
b24gPiAxKQorICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwor
ICAgIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKScs
ICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScpOworICAgIC8vIFRoZSBmb3IgbG9vcCB0ZXN0cyB0
d28gY29sb3IgYXR0YWNobWVudHMgZm9yIFdlYkdMIDI6IHRoZSBmaXJzdCBvbmUgKGdsLkNPTE9S
X0FUVEFDSE1FTlQwKQorICAgIC8vIGFuZCB0aGUgbGFzdCBvbmUgKGdsLkNPTE9SX0FUVEFDSE1F
TlQwICsgZ2wuTUFYX0NPTE9SX0FUVEFDSE1FTlRTIC0gMSkuCisgICAgZm9yIChsZXQgaWkgPSAw
OyBpaSA8IGNvbG9yQXR0YWNobWVudHNOdW07IGlpICs9IChjb2xvckF0dGFjaG1lbnRzTnVtID4g
MSA/IGNvbG9yQXR0YWNobWVudHNOdW0gLSAxIDogMSkpIHsKKyAgICAgIHNob3VsZEJlKCdnbC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9S
X0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpF
Q1RfVFlQRSknLCAnZ2wuVEVYVFVSRScpOworICAgICAgaWYgKGlpID09IDApCisgICAgICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyArIGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfTkFNRSknLCAndGV4dHVyZScpOworICAgICAgZWxzZQorICAgICAgICBz
aG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfT0JKRUNUX05BTUUpJywgJ2Fub3RoZXJUZXh0dXJlJyk7CisgICAgICBzaG91bGRC
ZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MRVZFTCknLCAnMCcpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVO
VDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSknLCAnMCcpOworICAgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgICAg
ICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFKScpOworICAgICAgICBzaG91bGRCZU5vblplcm8o
J2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X0dSRUVOX1NJWkUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFKScpOwor
ICAgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAgKyAnICsgaWkgKyAnLCBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUpJyk7CisgICAgICAgIHNob3VsZEJl
Tm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCArICcgKyBpaSArICcsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09M
T1JfRU5DT0RJTkcpJyk7CisgICAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwICsgJyAr
IGlpICsgJywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSKScsICcwJyk7
CiAgICAgICB9Ci0gICk7Ci0gIHZhciB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50ID0g
bmV3IEFycmF5KAotICAgICAgZ2wuQ09MT1JfQVRUQUNITUVOVDAsCi0gICAgICBnbC5ERVBUSF9B
VFRBQ0hNRU5ULAotICAgICAgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULAotICAgICAgZ2wuREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5UCi0gICk7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAg
ICBmb3IgKHZhciBpaSA9IDE7IGlpIDwgZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRB
Q0hNRU5UUyk7ICsraWkpIHsKLSAgICAgIHZhbGlkQXR0YWNobWVudHNGb3JGQkF0dGFjaG1lbnRb
dmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVudC5sZW5ndGhdID0gZ2wuQ09MT1JfQVRUQUNI
TUVOVDAgKyBpaTsKICAgICB9Ci0gIH0KLSAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICJn
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLAotICAgICAgImF0dGFjaG1lbnQiLAot
ICAgICAgdmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVudCwKLSAgICAgIGZ1bmN0aW9uKGF0
dGFjaG1lbnQpIHsKLSAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVudCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfVFlQRSk7Ci0gICAgICB9Ci0gICk7Ci0gIGlmIChjb250ZXh0VmVyc2lvbiA+
IDEpIHsKLSAgICAvLyB0ZXN0IGRlZmF1bHQgZnJhbWVidWZmZXIKLSAgICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpOwotICAgIHNob3VsZEJlKCdnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKScsICdnbC5GUkFNRUJVRkZFUl9DT01QTEVURScp
OwotICAgIHNob3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZ
UEUpJywgJ2dsLkZSQU1FQlVGRkVSX0RFRkFVTFQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSCwgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVG
QVVMVCcpOwotICAgIGlmICh0ZXN0Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkKLSAgICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywg
J2dsLkZSQU1FQlVGRkVSX0RFRkFVTFQnKTsKLSAgICBlbHNlCi0gICAgICBzaG91bGRCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVO
Q0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7
Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVE
X1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ssIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfR1JFRU5fU0laRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdnbC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkJBQ0ss
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSknKTsKLSAgICBzaG91bGRCZU5v
blplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSknKTsKLSAg
ICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05F
TlRfVFlQRSknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKLSAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgsIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgc2hvdWxkQmVO
b25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkRFUFRILCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScp
OwotICAgIGlmICh0ZXN0Q2FzZXNbcnVuXS5jb250ZXh0U3RlbmNpbCkgewotICAgICAgc2hvdWxk
QmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVC
VUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9TSVpF
KScpOwotICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKLSAgICAgIHd0dS5n
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICB9IGVsc2UgewotICAgICAgd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUws
IGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9TSVpFKScpOwotICAgICAgd3R1LnNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGds
LkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7Ci0gICAgICB3dHUuc2hv
dWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgJ2dsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5E
RVBUSF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScs
ICdnbC5SRU5ERVJCVUZGRVInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5G
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICdyZW5kZXJidWZmZXInKTsKKyAg
ICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFD
SE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpJywgJ2dsLlJFTkRF
UkJVRkZFUicpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKScsICdyZW5kZXJidWZmZXInKTsKKyAgICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9PQkpFQ1RfVFlQRSknLCAnZ2wuUkVOREVSQlVGRkVSJyk7CisgICAgICBzaG91bGRCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05B
TUUpJywgJ3JlbmRlcmJ1ZmZlcicpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFD
SE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRSknKTsKKyAgICAgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfU1RFTkNJTF9TSVpFKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1F
TlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAgICBz
aG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5G
UkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9DT0xPUl9FTkNPRElORyknKTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMX0FUVEFD
SE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAg
ICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBnbC5GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgICAgd3R1LnNob3VsZEdlbmVyYXRlR0xFcnJv
cihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSknKTsKKyAgICAgIHNob3VsZEJl
Tm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfQ09MT1JfRU5DT0RJTkcpJyk7CisgICAgfQorICAgIGxldCB2YWxpZFBhcmFtZXRlcnNGb3JG
QkF0dGFjaG1lbnQgPQorICAgICAgICBbIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNU
X1RZUEUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSwK
KyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUwsCisgICAg
ICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0UKKyAg
ICAgICAgXTsKKyAgICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICB2YWxpZFBhcmFt
ZXRlcnNGb3JGQkF0dGFjaG1lbnQgPSB2YWxpZFBhcmFtZXRlcnNGb3JGQkF0dGFjaG1lbnQuY29u
Y2F0KFsKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFLAorICAg
ICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSwKKyAgICAgICAgICBn
bC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRSwKKyAgICAgICAgICBnbC5GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9ERVBUSF9TSVpFLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
U1RFTkNJTF9TSVpFLAorICAgICAgICAgIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9O
RU5UX1RZUEUsCisgICAgICAgICAgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNP
RElORywKKyAgICAgICAgICBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVIK
KyAgICAgIF0pOwogICAgIH0KLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgIGF3YWl0IHRl
c3RJbnZhbGlkQXJndW1lbnQoCiAgICAgICAgICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIiLAogICAgICAgICAicGFyYW1ldGVyIiwKICAgICAgICAgdmFsaWRQYXJhbWV0ZXJzRm9y
RkJBdHRhY2htZW50LAogICAgICAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAgICAgICAgICBy
ZXR1cm4gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVS
LCBnbC5CQUNLLCBwYXJhbWV0ZXIpOworICAgICAgICAgIHJldHVybiBnbC5nZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQs
IHBhcmFtZXRlcik7CiAgICAgICAgIH0KICAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQo
CisgICAgbGV0IHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNobWVudCA9IFtnbC5GUkFNRUJVRkZFUl07
CisgICAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgICAgdmFsaWRUYXJnZXRzRm9yRkJB
dHRhY2htZW50ID0gdmFsaWRUYXJnZXRzRm9yRkJBdHRhY2htZW50LmNvbmNhdChbZ2wuUkVBRF9G
UkFNRUJVRkZFUiwgZ2wuRFJBV19GUkFNRUJVRkZFUl0pOworICAgIH0KKyAgICBhd2FpdCB0ZXN0
SW52YWxpZEFyZ3VtZW50KAogICAgICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyIiwKICAgICAgICAgInRhcmdldCIsCiAgICAgICAgIHZhbGlkVGFyZ2V0c0ZvckZCQXR0YWNo
bWVudCwKICAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICAgICAgcmV0dXJuIGdsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGdsLkJBQ0ssIGdsLkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpOworICAgICAgICAgIHJldHVybiBnbC5nZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBnbC5DT0xPUl9BVFRBQ0hNRU5U
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKTsKICAgICAgICAgfQogICAg
ICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICBsZXQgdmFsaWRBdHRhY2htZW50c0Zv
ckZCQXR0YWNobWVudCA9IG5ldyBBcnJheSgKKyAgICAgICAgZ2wuQ09MT1JfQVRUQUNITUVOVDAs
CisgICAgICAgIGdsLkRFUFRIX0FUVEFDSE1FTlQsCisgICAgICAgIGdsLlNURU5DSUxfQVRUQUNI
TUVOVCwKKyAgICAgICAgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCisgICAgKTsKKyAgICBp
ZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgICBmb3IgKGxldCBpaSA9IDE7IGlpIDwgZ2wu
Z2V0UGFyYW1ldGVyKGdsLk1BWF9DT0xPUl9BVFRBQ0hNRU5UUyk7ICsraWkpIHsKKyAgICAgICAg
dmFsaWRBdHRhY2htZW50c0ZvckZCQXR0YWNobWVudFt2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRh
Y2htZW50Lmxlbmd0aF0gPSBnbC5DT0xPUl9BVFRBQ0hNRU5UMCArIGlpOworICAgICAgfQorICAg
IH0KKyAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAogICAgICAgICAiZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKICAgICAgICAgImF0dGFjaG1lbnQiLAotICAgICAgICBb
IGdsLkJBQ0ssCi0gICAgICAgICAgZ2wuREVQVEgsCi0gICAgICAgICAgZ2wuU1RFTkNJTAotICAg
ICAgICBdLAorICAgICAgICB2YWxpZEF0dGFjaG1lbnRzRm9yRkJBdHRhY2htZW50LAogICAgICAg
ICBmdW5jdGlvbihhdHRhY2htZW50KSB7CiAgICAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVudCwgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7CiAgICAgICAgIH0KICAgICApOwotICB9
Ci19Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLWRlYnVnKCIiKTsK
LWRlYnVnKCJ0ZXN0IGdldEF0dGFjaGVkU2hhZGVycyIpOwotdmFyIHN0YW5kYXJkVmVydCA9IHd0
dS5sb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpOwotdmFyIHN0YW5kYXJkRnJhZyA9IHd0dS5s
b2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlcihnbCk7Ci12YXIgc3RhbmRhcmRQcm9ncmFtID0gZ2wu
Y3JlYXRlUHJvZ3JhbSgpOwotZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwgc3RhbmRh
cmRWZXJ0KTsKLWdsLmF0dGFjaFNoYWRlcihzdGFuZGFyZFByb2dyYW0sIHN0YW5kYXJkRnJhZyk7
Ci1nbC5saW5rUHJvZ3JhbShzdGFuZGFyZFByb2dyYW0pOwotdmFyIHNoYWRlcnMgPSBnbC5nZXRB
dHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRQcm9ncmFtKTsKLXNob3VsZEJlKCdzaGFkZXJzLmxlbmd0
aCcsICcyJyk7Ci1zaG91bGRCZVRydWUoJ3NoYWRlcnNbMF0gPT0gc3RhbmRhcmRWZXJ0ICYmIHNo
YWRlcnNbMV0gPT0gc3RhbmRhcmRGcmFnIHx8IHNoYWRlcnNbMV0gPT0gc3RhbmRhcmRWZXJ0ICYm
IHNoYWRlcnNbMF0gPT0gc3RhbmRhcmRGcmFnJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci1zaG91bGRUaHJvdygnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKG51bGwpJyk7
Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1zaG91bGRUaHJvdygnZ2wu
Z2V0QXR0YWNoZWRTaGFkZXJzKHN0YW5kYXJkVmVydCknKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLQotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0UHJvZ3JhbVBh
cmFtZXRlciIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9n
cmFtLCBnbC5ERUxFVEVfU1RBVFVTKScsICdmYWxzZScpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dy
YW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwot
c2hvdWxkQmUoJ3R5cGVvZiBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwg
Z2wuVkFMSURBVEVfU1RBVFVTKScsICciYm9vbGVhbiInKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9n
cmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuQVRUQUNIRURfU0hBREVSUyknLCAnMicp
Owotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5B
Q1RJVkVfQVRUUklCVVRFUyknLCAnMicpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0
ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STVMpJywgJzEnKTsKLWlmIChjb250
ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICBn
bC5iaW5kQnVmZmVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGJ1ZmZlcik7Ci0gIGds
LmJ1ZmZlckRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMTAyNCwgZ2wuRFlOQU1J
Q19EUkFXKTsKLSAgdmFyIHVuaWZvcm1CbG9ja1Byb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9j
a1Byb2dyYW0oZ2wpOwotICB2YXIgdHJhbnNmb3JtRmVlZGJhY2tWYXJzID0gWyJub3JtYWwiLCAi
ZWNQb3NpdGlvbiJdOwotICBnbC50cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKHVuaWZvcm1CbG9j
a1Byb2dyYW0sIHRyYW5zZm9ybUZlZWRiYWNrVmFycywgZ2wuSU5URVJMRUFWRURfQVRUUklCUyk7
Ci0gIGdsLmxpbmtQcm9ncmFtKHVuaWZvcm1CbG9ja1Byb2dyYW0pOwotICBzaG91bGRCZSgnZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykn
LCAndHJ1ZScpOwotICBzaG91bGRCZSgnZ2wuZ2V0RXJyb3IoKScsICdnbC5OT19FUlJPUicpOwot
ICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBn
bC5BQ1RJVkVfVU5JRk9STV9CTE9DS1MpJywgJzEnKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFByb2dy
YW1QYXJhbWV0ZXIodW5pZm9ybUJsb2NrUHJvZ3JhbSwgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1ZB
UllJTkdTKScsICcyJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZv
cm1CbG9ja1Byb2dyYW0sIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSknLCAnZ2wu
SU5URVJMRUFWRURfQVRUUklCUycpOwotfQotdmFyIHByb2dyYW0gPSBzdGFuZGFyZFByb2dyYW07
Ci12YXIgdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIgPSBbCi0gICAgZ2wuREVMRVRFX1NU
QVRVUywKLSAgICBnbC5MSU5LX1NUQVRVUywKLSAgICBnbC5WQUxJREFURV9TVEFUVVMsCi0gICAg
Z2wuQVRUQUNIRURfU0hBREVSUywKLSAgICBnbC5BQ1RJVkVfQVRUUklCVVRFUywKLSAgICBnbC5B
Q1RJVkVfVU5JRk9STVMKLV07Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIHZhbGlkQXJy
YXlGb3JQcm9ncmFtUGFyYW1ldGVyID0gdmFsaWRBcnJheUZvclByb2dyYW1QYXJhbWV0ZXIuY29u
Y2F0KFsKLSAgICAgIGdsLkFDVElWRV9VTklGT1JNX0JMT0NLUywKLSAgICAgIGdsLlRSQU5TRk9S
TV9GRUVEQkFDS19WQVJZSU5HUywKLSAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJf
TU9ERQotICBdKTsKLSAgcHJvZ3JhbSA9IHVuaWZvcm1CbG9ja1Byb2dyYW07Ci19Ci10ZXN0SW52
YWxpZEFyZ3VtZW50KAotICAgICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwKLSAgICAicGFyYW1ldGVy
IiwKLSAgICB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlciwKLSAgICBmdW5jdGlvbihwYXJh
bWV0ZXIpIHsKLSAgICAgIHJldHVybiBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBh
cmFtZXRlcik7Ci0gICAgfQotKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKLQotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIik7
Ci1zaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX1dJRFRIKScsICcyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCknLCAn
MicpOwotLy8gTm90ZTogd2UgY2FuJ3QgdGVzdCB0aGUgYWN0dWFsIHZhbHVlIG9mIHRoZSBpbnRl
cm5hbCBmb3JtYXQgc2luY2UKLS8vIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhbGxvd2VkIHRvIGNo
YW5nZSBpdC4KLXNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCknKTsKLXNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpJyk7Ci12YXIgY29sb3JidWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LWdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwotd3R1
LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotZ2wucmVuZGVyYnVmZmVyU3RvcmFn
ZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAyLCAyKTsKLXNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVS
X1JFRF9TSVpFKScpOwotc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSknKTsKLXNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSknKTsKLXNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhB
X1NJWkUpJyk7Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2VNdWx0aXNhbXBsZShnbC5SRU5ERVJCVUZGRVIsIDQsIGdsLlJHQkE0LCAyLCAyKTsKLSAg
c2hvdWxkQmUoJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGds
LlJFTkRFUkJVRkZFUl9TQU1QTEVTKScsICc0Jyk7Ci19Ci12YXIgdmFsaWRBcnJheUZvclJlbmRl
cmJ1ZmZlciA9IG5ldyBBcnJheSgKLSAgICBnbC5SRU5ERVJCVUZGRVJfV0lEVEgsCi0gICAgZ2wu
UkVOREVSQlVGRkVSX0hFSUdIVCwKLSAgICBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFU
LAotICAgIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSwKLSAgICBnbC5SRU5ERVJCVUZGRVJfR1JF
RU5fU0laRSwKLSAgICBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFLAotICAgIGdsLlJFTkRFUkJV
RkZFUl9BTFBIQV9TSVpFLAotICAgIGdsLlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFLAotICAgIGds
LlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUKLSk7Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7
Ci0gIHZhbGlkQXJyYXlGb3JSZW5kZXJidWZmZXJbdmFsaWRBcnJheUZvclJlbmRlcmJ1ZmZlci5s
ZW5ndGhdID0gZ2wuUkVOREVSQlVGRkVSX1NBTVBMRVM7Ci19Ci10ZXN0SW52YWxpZEFyZ3VtZW50
KAotICAgICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLAotICAgICJwYXJhbWV0ZXIiLAotICAg
IHZhbGlkQXJyYXlGb3JSZW5kZXJidWZmZXIsCi0gICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7Ci0g
ICAgICByZXR1cm4gZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
cGFyYW1ldGVyKTsKLSAgICB9KTsKLXRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgImdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlciIsCi0gICAgInRhcmdldCIsCi0gICAgWyBnbC5SRU5ERVJCVUZGRVIg
XSwKLSAgICBmdW5jdGlvbih0YXJnZXQpIHsKLSAgICAgIHJldHVybiBnbC5nZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIodGFyZ2V0LCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpOwotICAgIH0KLSk7Ci13
dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVn
KCJUZXN0IGdldFNoYWRlclBhcmFtZXRlciIpOwotc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFt
ZXRlcihzdGFuZGFyZFZlcnQsIGdsLlNIQURFUl9UWVBFKScsICdnbC5WRVJURVhfU0hBREVSJyk7
Ci1zaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuREVMRVRF
X1NUQVRVUyknLCAnZmFsc2UnKTsKLXNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3Rh
bmRhcmRWZXJ0LCBnbC5DT01QSUxFX1NUQVRVUyknLCAndHJ1ZScpOwotdGVzdEludmFsaWRBcmd1
bWVudCgKLSAgICAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwKLSAgICAicGFyYW1ldGVyIiwKLSAgICBb
IGdsLkRFTEVURV9TVEFUVVMsCi0gICAgICBnbC5DT01QSUxFX1NUQVRVUywKLSAgICAgIGdsLlNI
QURFUl9UWVBFCi0gICAgXSwKLSAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAgICAgIHJldHVy
biBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRWZXJ0LCBwYXJhbWV0ZXIpOworICAgIGlm
IChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICAgIC8vIHRlc3QgZGVmYXVsdCBmcmFtZWJ1ZmZl
cgorICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTsKKyAgICAg
IHNob3VsZEJlKCdnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKScsICdn
bC5GUkFNRUJVRkZFUl9DT01QTEVURScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcp
OworICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuREVQVEgsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNU
X1RZUEUpJywgJ2dsLkZSQU1FQlVGRkVSX0RFRkFVTFQnKTsKKyAgICAgIGlmICh0ZXN0Q2FzZXNb
cnVuXS5jb250ZXh0U3RlbmNpbCkKKyAgICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuU1RFTkNJTCwgZ2wuRlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuRlJBTUVCVUZGRVJfREVGQVVMVCcp
OworICAgICAgZWxzZQorICAgICAgICBzaG91bGRCZSgnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05FJyk7CisgICAgICBzaG91bGRCZU5vblpl
cm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9SRURfU0laRSknKTsKKyAgICAgIHNo
b3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUp
Jyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9CTFVFX1NJWkUpJyk7CisgICAgICBzaG91bGRCZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9BTFBIQV9TSVpFKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRI
LCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkUpJyk7CisgICAgICBzaG91bGRC
ZU5vblplcm8oJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRSkn
KTsKKyAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5CQUNLLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X0NPTE9SX0VOQ09ESU5HKScpOworICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRILCBnbC5GUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOworICAgICAgc2hvdWxkQmVOb25a
ZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIs
IGdsLkRFUFRILCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOwor
ICAgICAgaWYgKHRlc3RDYXNlc1tydW5dLmNvbnRleHRTdGVuY2lsKSB7CisgICAgICAgIHNob3Vs
ZEJlTm9uWmVybygnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1F
QlVGRkVSLCBnbC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1NURU5DSUxfU0la
RSknKTsKKyAgICAgICAgc2hvdWxkQmVOb25aZXJvKCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLlNURU5DSUwsIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUpJyk7CisgICAgICAgIHNob3VsZEJlTm9uWmVybygnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5TVEVO
Q0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HKScpOworICAgICAg
ICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgICB9IGVsc2Ugewor
ICAgICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUpJyk7Cisg
ICAgICAgIHd0dS5zaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9O
LCAnZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5TVEVOQ0lMLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFKScpOwor
ICAgICAgICB3dHUuc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwg
Z2wuU1RFTkNJTCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyknKTsK
KyAgICAgIH0KKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsCisgICAgICAgICAgInBhcmFtZXRlciIs
CisgICAgICAgICAgdmFsaWRQYXJhbWV0ZXJzRm9yRkJBdHRhY2htZW50LAorICAgICAgICAgIGZ1
bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICAgICAgcmV0dXJuIGdsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQkFDSywgcGFyYW1ldGVyKTsK
KyAgICAgICAgICB9CisgICAgICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgK
KyAgICAgICAgICAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwKKyAgICAgICAg
ICAidGFyZ2V0IiwKKyAgICAgICAgICB2YWxpZFRhcmdldHNGb3JGQkF0dGFjaG1lbnQsCisgICAg
ICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdldCwgZ2wuQkFDSywgZ2wuRlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7CisgICAgICAgICAgfQorICAgICAgKTsKKyAgICAgIGF3
YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlciIsCisgICAgICAgICAgImF0dGFjaG1lbnQiLAorICAgICAgICAgIFsgZ2wu
QkFDSywKKyAgICAgICAgICAgIGdsLkRFUFRILAorICAgICAgICAgICAgZ2wuU1RFTkNJTAorICAg
ICAgICAgIF0sCisgICAgICAgICAgZnVuY3Rpb24oYXR0YWNobWVudCkgeworICAgICAgICAgICAg
cmV0dXJuIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgYXR0YWNobWVudCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSk7Cisg
ICAgICAgICAgfQorICAgICAgKTsKICAgICB9Ci0pOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOworICB9CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKIAotZGVidWcoIiIpOwotZGVidWcoIlRlc3QgZ2V0VGV4UGFyYW1ldGVyIik7Ci1nbC5iaW5k
RnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLWdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9f
RURHRSk7Ci1nbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9U
LCBnbC5DTEFNUF9UT19FREdFKTsKLXNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSKScsICdnbC5ORUFSRVNUJyk7Ci1zaG91bGRC
ZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRF
UiknLCAnZ2wuTkVBUkVTVCcpOwotc2hvdWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUyknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOwotc2hvdWxk
QmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCkn
LCAnZ2wuQ0xBTVBfVE9fRURHRScpOwotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfQkFTRV9MRVZFTCwgMCk7Ci0g
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMs
IGdsLkxFUVVBTCk7Ci0gIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9DT01QQVJFX01PREUsIGdsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUpOwotICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFYX0xFVkVMLCAxMCk7Ci0gIGdsLnRl
eFBhcmFtZXRlcmYoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAxMCk7Ci0gIGds
LnRleFBhcmFtZXRlcmYoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9ELCAwKTsKLSAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUiwgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9CQVNFX0xFVkVMKScsICcwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQ
YXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMpJywgJ2dsLkxF
UVVBTCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfQ09NUEFSRV9NT0RFKScsICdnbC5DT01QQVJFX1JFRl9UT19URVhUVVJFJyk7Ci0g
IHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QVhfTEVWRUwpJywgJzEwJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NQVhfTE9EKScsICcxMCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0
VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0xPRCknLCAnMCcpOwot
ICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9SKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJh
bWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFUKScsICdmYWxz
ZScpOwotICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfSU1NVVRBQkxFX0xFVkVMUyknLCAnMCcpOwotfQotdmFyIHZhbGlkUGFyYW1ldGVyc0Zv
clRleHR1cmUgPSBbCi0gICAgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLAotICAgIGdsLlRFWFRVUkVf
TUlOX0ZJTFRFUiwKLSAgICBnbC5URVhUVVJFX1dSQVBfUywKLSAgICBnbC5URVhUVVJFX1dSQVBf
VCwKLV07Ci1pZiAoY29udGV4dFZlcnNpb24gPiAxKSB7Ci0gIHZhbGlkUGFyYW1ldGVyc0ZvclRl
eHR1cmUgPSB2YWxpZFBhcmFtZXRlcnNGb3JUZXh0dXJlLmNvbmNhdChbCi0gICAgICBnbC5URVhU
VVJFX0JBU0VfTEVWRUwsCi0gICAgICBnbC5URVhUVVJFX0NPTVBBUkVfRlVOQywKLSAgICAgIGds
LlRFWFRVUkVfQ09NUEFSRV9NT0RFLAotICAgICAgZ2wuVEVYVFVSRV9NQVhfTEVWRUwsCi0gICAg
ICBnbC5URVhUVVJFX01BWF9MT0QsCi0gICAgICBnbC5URVhUVVJFX01JTl9MT0QsCi0gICAgICBn
bC5URVhUVVJFX1dSQVBfUiwKLSAgICAgIGdsLlRFWFRVUkVfSU1NVVRBQkxFX0ZPUk1BVCwKLSAg
ICAgIGdsLlRFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUywKLSAgXSk7Ci19Ci10ZXN0SW52YWxpZEFy
Z3VtZW50KAotICAgICJnZXRUZXhQYXJhbWV0ZXIiLAotICAgICJwYXJhbWV0ZXIiLAotICAgIHZh
bGlkUGFyYW1ldGVyc0ZvclRleHR1cmUsCi0gICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7Ci0gICAg
ICByZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIHBhcmFtZXRlcik7Ci0g
ICAgfQotKTsKLXZhciB2YWxpZFRhcmdldHNGb3JUZXh0dXJlID0gWyBnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX0NVQkVfTUFQXTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFsaWRU
YXJnZXRzRm9yVGV4dHVyZSA9IHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUuY29uY2F0KFsgZ2wuVEVY
VFVSRV8zRCwgZ2wuVEVYVFVSRV8yRF9BUlJBWV0pOwotfQotdGVzdEludmFsaWRBcmd1bWVudCgK
LSAgICAiZ2V0VGV4UGFyYW1ldGVyIiwKLSAgICAidGFyZ2V0IiwKLSAgICB2YWxpZFRhcmdldHNG
b3JUZXh0dXJlLAotICAgIGZ1bmN0aW9uKHRhcmdldCkgewotICAgICAgcmV0dXJuIGdsLmdldFRl
eFBhcmFtZXRlcih0YXJnZXQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUik7Ci0gICAgfQotKTsKLXd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1
ZygidGVzdCBnZXRBdHRhY2hlZFNoYWRlcnMiKTsKKyAgd2luZG93LnN0YW5kYXJkVmVydCA9IHd0
dS5sb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpOworICB3aW5kb3cuc3RhbmRhcmRGcmFnID0g
d3R1LmxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGdsKTsKKyAgd2luZG93LnN0YW5kYXJkUHJv
Z3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJv
Z3JhbSwgc3RhbmRhcmRWZXJ0KTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHN0YW5kYXJkUHJvZ3JhbSwg
c3RhbmRhcmRGcmFnKTsKKyAgZ2wubGlua1Byb2dyYW0oc3RhbmRhcmRQcm9ncmFtKTsKKyAgd2lu
ZG93LnNoYWRlcnMgPSBnbC5nZXRBdHRhY2hlZFNoYWRlcnMoc3RhbmRhcmRQcm9ncmFtKTsKKyAg
c2hvdWxkQmUoJ3NoYWRlcnMubGVuZ3RoJywgJzInKTsKKyAgc2hvdWxkQmVUcnVlKCdzaGFkZXJz
WzBdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzFdID09IHN0YW5kYXJkRnJhZyB8fCBzaGFk
ZXJzWzFdID09IHN0YW5kYXJkVmVydCAmJiBzaGFkZXJzWzBdID09IHN0YW5kYXJkRnJhZycpOwor
ICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIHNob3VsZFRocm93KCdn
bC5nZXRBdHRhY2hlZFNoYWRlcnMobnVsbCknKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOworICBzaG91bGRUaHJvdygnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKHN0YW5k
YXJkVmVydCknKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogCi1k
ZWJ1ZygiIik7Ci1kZWJ1ZygiVGVzdCBnZXRVbmlmb3JtIHdpdGggYWxsIHZhcmlhbnRzIG9mIGRh
dGEgdHlwZXMiKTsKLWRlYnVnKCJCb29sZWFuIHVuaWZvcm0gdmFyaWFibGVzIik7Ci12YXIgYm9v
bFByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9i
b29sVW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRl
ci5mcmFnIik7Ci1zaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihib29sUHJvZ3JhbSwg
Z2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBidmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbCIpOwotdmFyIGJ2YWwyTG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKGJvb2xQcm9ncmFtLCAiYnZhbDIiKTsKLXZhciBidmFsM0xvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWwzIik7Ci12YXIgYnZhbDRMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJidmFsNCIpOwotZ2wudXNlUHJvZ3JhbShi
b29sUHJvZ3JhbSk7Ci1nbC51bmlmb3JtMWkoYnZhbExvYywgMSk7Ci1nbC51bmlmb3JtMmkoYnZh
bDJMb2MsIDEsIDApOwotZ2wudW5pZm9ybTNpKGJ2YWwzTG9jLCAxLCAwLCAxKTsKLWdsLnVuaWZv
cm00aShidmFsNExvYywgMSwgMCwgMSwgMCk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbExvYykn
LCAndHJ1ZScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2YWwyTG9j
KScsICdbdHJ1ZSwgZmFsc2VdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3Jh
bSwgYnZhbDNMb2MpJywgJ1t0cnVlLCBmYWxzZSwgdHJ1ZV0nKTsKLXNob3VsZEJlKCdnbC5nZXRV
bmlmb3JtKGJvb2xQcm9ncmFtLCBidmFsNExvYyknLCAnW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxz
ZV0nKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIp
OworICBkZWJ1ZygiVGVzdCBnZXRQcm9ncmFtUGFyYW1ldGVyIik7CisgIHNob3VsZEJlKCdnbC5n
ZXRQcm9ncmFtUGFyYW1ldGVyKHN0YW5kYXJkUHJvZ3JhbSwgZ2wuREVMRVRFX1NUQVRVUyknLCAn
ZmFsc2UnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9n
cmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworICBzaG91bGRCZSgndHlwZW9mIGdsLmdl
dFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5WQUxJREFURV9TVEFUVVMpJywg
JyJib29sZWFuIicpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFy
ZFByb2dyYW0sIGdsLkFUVEFDSEVEX1NIQURFUlMpJywgJzInKTsKKyAgc2hvdWxkQmUoJ2dsLmdl
dFByb2dyYW1QYXJhbWV0ZXIoc3RhbmRhcmRQcm9ncmFtLCBnbC5BQ1RJVkVfQVRUUklCVVRFUykn
LCAnMicpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzdGFuZGFyZFByb2dy
YW0sIGdsLkFDVElWRV9VTklGT1JNUyknLCAnMScpOworICBpZiAoY29udGV4dFZlcnNpb24gPiAx
KSB7CisgICAgbGV0IGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgYnVmZmVyKTsKKyAgICBnbC5idWZmZXJE
YXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDEwMjQsIGdsLkRZTkFNSUNfRFJBVyk7
CisgICAgd2luZG93LnVuaWZvcm1CbG9ja1Byb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1By
b2dyYW0oZ2wpOworICAgIGxldCB0cmFuc2Zvcm1GZWVkYmFja1ZhcnMgPSBbIm5vcm1hbCIsICJl
Y1Bvc2l0aW9uIl07CisgICAgZ2wudHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyh1bmlmb3JtQmxv
Y2tQcm9ncmFtLCB0cmFuc2Zvcm1GZWVkYmFja1ZhcnMsIGdsLklOVEVSTEVBVkVEX0FUVFJJQlMp
OworICAgIGdsLmxpbmtQcm9ncmFtKHVuaWZvcm1CbG9ja1Byb2dyYW0pOworICAgIHNob3VsZEJl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVuaWZvcm1CbG9ja1Byb2dyYW0sIGdsLkxJTktfU1RB
VFVTKScsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9fRVJS
T1InKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQ
cm9ncmFtLCBnbC5BQ1RJVkVfVU5JRk9STV9CTE9DS1MpJywgJzEnKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5UUkFOU0ZPUk1f
RkVFREJBQ0tfVkFSWUlOR1MpJywgJzInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcih1bmlmb3JtQmxvY2tQcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVS
X01PREUpJywgJ2dsLklOVEVSTEVBVkVEX0FUVFJJQlMnKTsKKyAgfQorICB3aW5kb3cucHJvZ3Jh
bSA9IHN0YW5kYXJkUHJvZ3JhbTsKKyAgbGV0IHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVy
ID0gWworICAgICAgZ2wuREVMRVRFX1NUQVRVUywKKyAgICAgIGdsLkxJTktfU1RBVFVTLAorICAg
ICAgZ2wuVkFMSURBVEVfU1RBVFVTLAorICAgICAgZ2wuQVRUQUNIRURfU0hBREVSUywKKyAgICAg
IGdsLkFDVElWRV9BVFRSSUJVVEVTLAorICAgICAgZ2wuQUNUSVZFX1VOSUZPUk1TCisgIF07Cisg
IGlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFt
ZXRlciA9IHZhbGlkQXJyYXlGb3JQcm9ncmFtUGFyYW1ldGVyLmNvbmNhdChbCisgICAgICAgIGds
LkFDVElWRV9VTklGT1JNX0JMT0NLUywKKyAgICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1ZB
UllJTkdTLAorICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREUKKyAgICBd
KTsKKyAgICBwcm9ncmFtID0gdW5pZm9ybUJsb2NrUHJvZ3JhbTsKKyAgfQorICBhd2FpdCB0ZXN0
SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFByb2dyYW1QYXJhbWV0ZXIiLAorICAgICAgInBh
cmFtZXRlciIsCisgICAgICB2YWxpZEFycmF5Rm9yUHJvZ3JhbVBhcmFtZXRlciwKKyAgICAgIGZ1
bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICByZXR1cm4gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihwcm9ncmFtLCBwYXJhbWV0ZXIpOworICAgICAgfQorICApOworICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLWRlYnVnKCJJbnRlZ2VyIHVuaWZvcm0gdmFyaWFibGVz
Iik7Ci12YXIgaW50UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4v
cmVzb3VyY2VzL2ludFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVu
aWZvcm1TaGFkZXIuZnJhZyIpOwotc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIoaW50
UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsKLXZhciBpdmFsTG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKGludFByb2dyYW0sICJpdmFsIik7Ci12YXIgaXZhbDJMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWwyIik7Ci12YXIgaXZhbDNMb2MgPSBn
bC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWwzIik7Ci12YXIgaXZhbDRMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwgIml2YWw0Iik7Ci1nbC51c2VQcm9n
cmFtKGludFByb2dyYW0pOwotZ2wudW5pZm9ybTFpKGl2YWxMb2MsIDEpOwotZ2wudW5pZm9ybTJp
KGl2YWwyTG9jLCAyLCAzKTsKLWdsLnVuaWZvcm0zaShpdmFsM0xvYywgNCwgNSwgNik7Ci1nbC51
bmlmb3JtNGkoaXZhbDRMb2MsIDcsIDgsIDksIDEwKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWxM
b2MpJywgJzEnKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWwyTG9j
KScsICdbMiwgM10nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0sIGl2YWwz
TG9jKScsICdbNCwgNSwgNl0nKTsKLXNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKGludFByb2dyYW0s
IGl2YWw0TG9jKScsICdbNywgOCwgOSwgMTBdJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIlRlc3QgZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyIik7CisgIHNob3VsZEJlKCdnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpJywgJzInKTsKKyAgc2hvdWxkQmUo
J2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9IRUlHSFQpJywgJzInKTsKKyAgLy8gTm90ZTogd2UgY2FuJ3QgdGVzdCB0aGUgYWN0dWFs
IHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBmb3JtYXQgc2luY2UKKyAgLy8gdGhlIGltcGxlbWVudGF0
aW9uIGlzIGFsbG93ZWQgdG8gY2hhbmdlIGl0LgorICBzaG91bGRCZU5vblplcm8oJ2dsLmdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9JTlRF
Uk5BTF9GT1JNQVQpJyk7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpJyk7Cisg
IGxldCBjb2xvcmJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpOworICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVO
REVSQlVGRkVSLCByZW5kZXJidWZmZXIpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7CisgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
R0JBNCwgMiwgMik7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFKScpOworICBzaG91
bGRCZU5vblplcm8oJ2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKScpOworICBzaG91bGRCZU5vblplcm8oJ2dsLmdl
dFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9C
TFVFX1NJWkUpJyk7CisgIHNob3VsZEJlTm9uWmVybygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpJyk7CisgIGlm
IChjb250ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlz
YW1wbGUoZ2wuUkVOREVSQlVGRkVSLCA0LCBnbC5SR0JBNCwgMiwgMik7CisgICAgc2hvdWxkQmUo
J2dsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9TQU1QTEVTKScsICc0Jyk7CisgIH0KKyAgbGV0IHZhbGlkQXJyYXlGb3JSZW5kZXJidWZm
ZXIgPSBuZXcgQXJyYXkoCisgICAgICBnbC5SRU5ERVJCVUZGRVJfV0lEVEgsCisgICAgICBnbC5S
RU5ERVJCVUZGRVJfSEVJR0hULAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1B
VCwKKyAgICAgIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSwKKyAgICAgIGdsLlJFTkRFUkJVRkZF
Ul9HUkVFTl9TSVpFLAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSwKKyAgICAgIGds
LlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFLAorICAgICAgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJ
WkUsCisgICAgICBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFCisgICk7CisgIGlmIChjb250
ZXh0VmVyc2lvbiA+IDEpIHsKKyAgICB2YWxpZEFycmF5Rm9yUmVuZGVyYnVmZmVyW3ZhbGlkQXJy
YXlGb3JSZW5kZXJidWZmZXIubGVuZ3RoXSA9IGdsLlJFTkRFUkJVRkZFUl9TQU1QTEVTOworICB9
CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAiZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyIiwKKyAgICAgICJwYXJhbWV0ZXIiLAorICAgICAgdmFsaWRBcnJheUZvclJlbmRlcmJ1
ZmZlciwKKyAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAgICByZXR1cm4gZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgcGFyYW1ldGVyKTsKKyAgICAg
IH0pOworICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlciIsCisgICAgICAidGFyZ2V0IiwKKyAgICAgIFsgZ2wuUkVOREVSQlVGRkVSIF0s
CisgICAgICBmdW5jdGlvbih0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcih0YXJnZXQsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCk7CisgICAgICB9Cisg
ICk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIkZs
b2F0IHVuaWZvcm0gdmFyaWFibGVzIik7Ci12YXIgZmxvYXRQcm9ncmFtID0gd3R1LmxvYWRQcm9n
cmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQi
LCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKLXNob3VsZEJlKCdn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKGZsb2F0UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3Ry
dWUnKTsKLXZhciBmdmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwg
ImZ2YWwiKTsKLXZhciBmdmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFByb2dy
YW0sICJmdmFsMiIpOwotdmFyIGZ2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0
UHJvZ3JhbSwgImZ2YWwzIik7Ci12YXIgZnZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
ZmxvYXRQcm9ncmFtLCAiZnZhbDQiKTsKLWdsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKTsKLWds
LnVuaWZvcm0xZihmdmFsTG9jLCAxMSk7Ci1nbC51bmlmb3JtMmYoZnZhbDJMb2MsIDEyLCAxMyk7
Ci1nbC51bmlmb3JtM2YoZnZhbDNMb2MsIDE0LCAxNSwgMTYpOwotZ2wudW5pZm9ybTRmKGZ2YWw0
TG9jLCAxNywgMTgsIDE5LCAyMCk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
Uik7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWxMb2MpJywgJzEx
Jyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwyTG9jKScsICdb
MTIsIDEzXScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsM0xv
YyknLCAnWzE0LCAxNSwgMTZdJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dy
YW0sIGZ2YWw0TG9jKScsICdbMTcsIDE4LCAxOSwgMjBdJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIlRlc3QgZ2V0U2hhZGVy
UGFyYW1ldGVyIik7CisgIHNob3VsZEJlKCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc3RhbmRhcmRW
ZXJ0LCBnbC5TSEFERVJfVFlQRSknLCAnZ2wuVkVSVEVYX1NIQURFUicpOworICBzaG91bGRCZSgn
Z2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHN0YW5kYXJkVmVydCwgZ2wuREVMRVRFX1NUQVRVUyknLCAn
ZmFsc2UnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQs
IGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1l
bnQoCisgICAgICAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwKKyAgICAgICJwYXJhbWV0ZXIiLAorICAg
ICAgWyBnbC5ERUxFVEVfU1RBVFVTLAorICAgICAgICBnbC5DT01QSUxFX1NUQVRVUywKKyAgICAg
ICAgZ2wuU0hBREVSX1RZUEUKKyAgICAgIF0sCisgICAgICBmdW5jdGlvbihwYXJhbWV0ZXIpIHsK
KyAgICAgICAgcmV0dXJuIGdsLmdldFNoYWRlclBhcmFtZXRlcihzdGFuZGFyZFZlcnQsIHBhcmFt
ZXRlcik7CisgICAgICB9CisgICk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKIAotZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMiKTsKLXZhciBzYW1wbGVy
UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL25v
b3BVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXJVbmlmb3JtU2hh
ZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHNhbXBsZXJQcm9n
cmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotdmFyIHMyRFZhbExvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihzYW1wbGVyUHJvZ3JhbSwgInMyRCIpOwotdmFyIHNDdWJlVmFsTG9jID0g
Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJQcm9ncmFtLCAic0N1YmUiKTsKLWdsLnVzZVBy
b2dyYW0oc2FtcGxlclByb2dyYW0pOwotZ2wudW5pZm9ybTFpKHMyRFZhbExvYywgMCk7Ci1nbC51
bmlmb3JtMWkoc0N1YmVWYWxMb2MsIDEpOwotd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHMyRFZhbExv
YyknLCAnMCcpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHNDdWJl
VmFsTG9jKScsICcxJyk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Cisg
IGRlYnVnKCIiKTsKKyAgZGVidWcoIlRlc3QgZ2V0VGV4UGFyYW1ldGVyIik7CisgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNU
KTsKKyAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywg
Z2wuQ0xBTVBfVE9fRURHRSk7CisgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICBzaG91bGRCZSgnZ2wuZ2V0VGV4
UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiknLCAnZ2wuTkVB
UkVTVCcpOworICBzaG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUlOX0ZJTFRFUiknLCAnZ2wuTkVBUkVTVCcpOworICBzaG91bGRCZSgnZ2wuZ2V0
VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TKScsICdnbC5DTEFN
UF9UT19FREdFJyk7CisgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1QpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKKyAgaWYgKGNvbnRl
eHRWZXJzaW9uID4gMSkgeworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9CQVNFX0xFVkVMLCAwKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLCBnbC5MRVFVQUwpOworICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUsIGdsLkNPTVBBUkVf
UkVGX1RPX1RFWFRVUkUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9NQVhfTEVWRUwsIDEwKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJmKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFYX0xPRCwgMTApOworICAgIGdsLnRleFBhcmFtZXRlcmYoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9ELCAwKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9SLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBz
aG91bGRCZSgnZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfQkFT
RV9MRVZFTCknLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMpJywgJ2dsLkxFUVVBTCcpOworICAgIHNo
b3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9DT01Q
QVJFX01PREUpJywgJ2dsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsKKyAgICBzaG91bGRCZSgn
Z2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFYX0xFVkVMKScs
ICcxMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NQVhfTE9EKScsICcxMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJh
bWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fTE9EKScsICcwJyk7CisgICAgc2hv
dWxkQmUoJ2dsLmdldFRleFBhcmFtZXRlcihnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
UiknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0
ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFUKScsICdmYWxzZScp
OworICAgIHNob3VsZEJlKCdnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTKScsICcwJyk7CisgIH0KKyAgbGV0IHZhbGlkUGFyYW1ldGVy
c0ZvclRleHR1cmUgPSBbCisgICAgICBnbC5URVhUVVJFX01BR19GSUxURVIsCisgICAgICBnbC5U
RVhUVVJFX01JTl9GSUxURVIsCisgICAgICBnbC5URVhUVVJFX1dSQVBfUywKKyAgICAgIGdsLlRF
WFRVUkVfV1JBUF9ULAorICBdOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgdmFs
aWRQYXJhbWV0ZXJzRm9yVGV4dHVyZSA9IHZhbGlkUGFyYW1ldGVyc0ZvclRleHR1cmUuY29uY2F0
KFsKKyAgICAgICAgZ2wuVEVYVFVSRV9CQVNFX0xFVkVMLAorICAgICAgICBnbC5URVhUVVJFX0NP
TVBBUkVfRlVOQywKKyAgICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUsCisgICAgICAgIGds
LlRFWFRVUkVfTUFYX0xFVkVMLAorICAgICAgICBnbC5URVhUVVJFX01BWF9MT0QsCisgICAgICAg
IGdsLlRFWFRVUkVfTUlOX0xPRCwKKyAgICAgICAgZ2wuVEVYVFVSRV9XUkFQX1IsCisgICAgICAg
IGdsLlRFWFRVUkVfSU1NVVRBQkxFX0ZPUk1BVCwKKyAgICAgICAgZ2wuVEVYVFVSRV9JTU1VVEFC
TEVfTEVWRUxTLAorICAgIF0pOworICB9CisgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisg
ICAgICAiZ2V0VGV4UGFyYW1ldGVyIiwKKyAgICAgICJwYXJhbWV0ZXIiLAorICAgICAgdmFsaWRQ
YXJhbWV0ZXJzRm9yVGV4dHVyZSwKKyAgICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgeworICAgICAg
ICByZXR1cm4gZ2wuZ2V0VGV4UGFyYW1ldGVyKGdsLlRFWFRVUkVfMkQsIHBhcmFtZXRlcik7Cisg
ICAgICB9CisgICk7CisgIGxldCB2YWxpZFRhcmdldHNGb3JUZXh0dXJlID0gWyBnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX0NVQkVfTUFQXTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewor
ICAgIHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUgPSB2YWxpZFRhcmdldHNGb3JUZXh0dXJlLmNvbmNh
dChbIGdsLlRFWFRVUkVfM0QsIGdsLlRFWFRVUkVfMkRfQVJSQVldKTsKKyAgfQorICBhd2FpdCB0
ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgImdldFRleFBhcmFtZXRlciIsCisgICAgICAidGFy
Z2V0IiwKKyAgICAgIHZhbGlkVGFyZ2V0c0ZvclRleHR1cmUsCisgICAgICBmdW5jdGlvbih0YXJn
ZXQpIHsKKyAgICAgICAgcmV0dXJuIGdsLmdldFRleFBhcmFtZXRlcih0YXJnZXQsIGdsLlRFWFRV
UkVfTUFHX0ZJTFRFUik7CisgICAgICB9CisgICk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKIAotZGVidWcoIk1hdHJpeCB1bmlmb3JtIHZhcmlhYmxlcyIpOwotdmFy
IG1hdFByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNl
cy9tYXRVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hh
ZGVyLmZyYWciKTsKLXNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKG1hdFByb2dyYW0s
IGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7Ci12YXIgbXZhbDJMb2MgPSBnbC5nZXRVbmlmb3Jt
TG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwyIik7Ci12YXIgbXZhbDNMb2MgPSBnbC5nZXRVbmlm
b3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwzIik7Ci12YXIgbXZhbDRMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWw0Iik7Ci1nbC51c2VQcm9ncmFtKG1hdFBy
b2dyYW0pOwotZ2wudW5pZm9ybU1hdHJpeDJmdihtdmFsMkxvYywgZmFsc2UsIFsxLCAyLCAzLCA0
XSk7Ci1nbC51bmlmb3JtTWF0cml4M2Z2KG12YWwzTG9jLCBmYWxzZSwgWzUsIDYsIDcsIDgsIDks
IDEwLCAxMSwgMTIsIDEzXSk7Ci1nbC51bmlmb3JtTWF0cml4NGZ2KG12YWw0TG9jLCBmYWxzZSwg
WzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywg
MjgsIDI5XSk7Ci13dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci1zaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsMkxvYyknLCAnWzEsIDIsIDMsIDRdJyk7
Ci1zaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsM0xvYyknLCAnWzUsIDYs
IDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXScpOwotc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0
UHJvZ3JhbSwgbXZhbDRMb2MpJywgJ1sxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIy
LCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOV0nKTsKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBnZXRVbmlmb3JtIHdp
dGggYWxsIHZhcmlhbnRzIG9mIGRhdGEgdHlwZXMiKTsKKyAgZGVidWcoIkJvb2xlYW4gdW5pZm9y
bSB2YXJpYWJsZXMiKTsKKyAgd2luZG93LmJvb2xQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJv
bUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvYm9vbFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8u
Li9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihib29sUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsK
KyAgd2luZG93LmJ2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oYm9vbFByb2dyYW0sICJi
dmFsIik7CisgIHdpbmRvdy5idmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihib29sUHJv
Z3JhbSwgImJ2YWwyIik7CisgIHdpbmRvdy5idmFsM0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihib29sUHJvZ3JhbSwgImJ2YWwzIik7CisgIHdpbmRvdy5idmFsNExvYyA9IGdsLmdldFVuaWZv
cm1Mb2NhdGlvbihib29sUHJvZ3JhbSwgImJ2YWw0Iik7CisgIGdsLnVzZVByb2dyYW0oYm9vbFBy
b2dyYW0pOworICBnbC51bmlmb3JtMWkoYnZhbExvYywgMSk7CisgIGdsLnVuaWZvcm0yaShidmFs
MkxvYywgMSwgMCk7CisgIGdsLnVuaWZvcm0zaShidmFsM0xvYywgMSwgMCwgMSk7CisgIGdsLnVu
aWZvcm00aShidmFsNExvYywgMSwgMCwgMSwgMCk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0sIGJ2
YWxMb2MpJywgJ3RydWUnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oYm9vbFByb2dyYW0s
IGJ2YWwyTG9jKScsICdbdHJ1ZSwgZmFsc2VdJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3Jt
KGJvb2xQcm9ncmFtLCBidmFsM0xvYyknLCAnW3RydWUsIGZhbHNlLCB0cnVlXScpOworICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybShib29sUHJvZ3JhbSwgYnZhbDRMb2MpJywgJ1t0cnVlLCBmYWxz
ZSwgdHJ1ZSwgZmFsc2VdJyk7CisgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKIAotaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgewotICBkZWJ1ZygiVW5zaWduZWQgSW50ZWdl
ciB1bmlmb3JtIHZhcmlhYmxlcyIpOwotICB2YXIgdWludFByb2dyYW0gPSB3dHUubG9hZFByb2dy
YW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy91aW50VW5pZm9ybVNoYWRlci52ZXJ0Iiwg
Ii4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy5mcmFnIik7Ci0gIHNob3VsZEJl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAn
dHJ1ZScpOwotICB2YXIgdXZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbih1aW50UHJvZ3Jh
bSwgInV2YWwiKTsKLSAgdmFyIHV2YWwyTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHVpbnRQ
cm9ncmFtLCAidXZhbDIiKTsKLSAgdmFyIHV2YWwzTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9u
KHVpbnRQcm9ncmFtLCAidXZhbDMiKTsKLSAgdmFyIHV2YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKHVpbnRQcm9ncmFtLCAidXZhbDQiKTsKLSAgZ2wudXNlUHJvZ3JhbSh1aW50UHJvZ3Jh
bSk7Ci0gIGdsLnVuaWZvcm0xdWkodXZhbExvYywgMSk7Ci0gIGdsLnVuaWZvcm0ydWkodXZhbDJM
b2MsIDIsIDMpOwotICBnbC51bmlmb3JtM3VpKHV2YWwzTG9jLCA0LCA1LCA2KTsKLSAgZ2wudW5p
Zm9ybTR1aSh1dmFsNExvYywgNywgOCwgOSwgMTApOworICBkZWJ1ZygiSW50ZWdlciB1bmlmb3Jt
IHZhcmlhYmxlcyIpOworICB3aW5kb3cuaW50UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21G
aWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL2ludFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9y
ZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJv
Z3JhbVBhcmFtZXRlcihpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworICB3
aW5kb3cuaXZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQcm9ncmFtLCAiaXZhbCIp
OworICB3aW5kb3cuaXZhbDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oaW50UHJvZ3JhbSwg
Iml2YWwyIik7CisgIHdpbmRvdy5pdmFsM0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihpbnRQ
cm9ncmFtLCAiaXZhbDMiKTsKKyAgd2luZG93Lml2YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0
aW9uKGludFByb2dyYW0sICJpdmFsNCIpOworICBnbC51c2VQcm9ncmFtKGludFByb2dyYW0pOwor
ICBnbC51bmlmb3JtMWkoaXZhbExvYywgMSk7CisgIGdsLnVuaWZvcm0yaShpdmFsMkxvYywgMiwg
Myk7CisgIGdsLnVuaWZvcm0zaShpdmFsM0xvYywgNCwgNSwgNik7CisgIGdsLnVuaWZvcm00aShp
dmFsNExvYywgNywgOCwgOSwgMTApOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsTG9jKScs
ICcxJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsMkxvYykn
LCAnWzIsIDNdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFs
M0xvYyknLCAnWzQsIDUsIDZdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9n
cmFtLCB1dmFsNExvYyknLCAnWzcsIDgsIDksIDEwXScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5p
Zm9ybShpbnRQcm9ncmFtLCBpdmFsTG9jKScsICcxJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlm
b3JtKGludFByb2dyYW0sIGl2YWwyTG9jKScsICdbMiwgM10nKTsKKyAgc2hvdWxkQmUoJ2dsLmdl
dFVuaWZvcm0oaW50UHJvZ3JhbSwgaXZhbDNMb2MpJywgJ1s0LCA1LCA2XScpOworICBzaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShpbnRQcm9ncmFtLCBpdmFsNExvYyknLCAnWzcsIDgsIDksIDEwXScp
OwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKLSAgZGVidWcoIk1h
dHJpeCB1bmlmb3JtIHZhcmlhYmxlcyBmb3IgV2ViR0wgMiIpOworICBkZWJ1ZygiRmxvYXQgdW5p
Zm9ybSB2YXJpYWJsZXMiKTsKKyAgd2luZG93LmZsb2F0UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3Jh
bUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0Iiwg
Ii4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnIik7CisgIHNob3VsZEJlKCdn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKGZsb2F0UHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3Ry
dWUnKTsKKyAgd2luZG93LmZ2YWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9n
cmFtLCAiZnZhbCIpOworICB3aW5kb3cuZnZhbDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
ZmxvYXRQcm9ncmFtLCAiZnZhbDIiKTsKKyAgd2luZG93LmZ2YWwzTG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2YWwzIik7CisgIHdpbmRvdy5mdmFsNExvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihmbG9hdFByb2dyYW0sICJmdmFsNCIpOworICBnbC51c2VQcm9n
cmFtKGZsb2F0UHJvZ3JhbSk7CisgIGdsLnVuaWZvcm0xZihmdmFsTG9jLCAxMSk7CisgIGdsLnVu
aWZvcm0yZihmdmFsMkxvYywgMTIsIDEzKTsKKyAgZ2wudW5pZm9ybTNmKGZ2YWwzTG9jLCAxNCwg
MTUsIDE2KTsKKyAgZ2wudW5pZm9ybTRmKGZ2YWw0TG9jLCAxNywgMTgsIDE5LCAyMCk7CisgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsTG9jKScsICcxMScpOworICBzaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwyTG9jKScsICdbMTIsIDEzXScpOworICBzaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwzTG9jKScsICdbMTQsIDE1LCAxNl0n
KTsKKyAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsNExvYyknLCAn
WzE3LCAxOCwgMTksIDIwXScpOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
Uik7CiAKLSAgdmFyIG1hdEZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmls
ZShnbCwgIi4uLy4uL3Jlc291cmNlcy9tYXRGb3JXZWJHTDJVbmlmb3JtU2hhZGVyLnZlcnQiLCAi
Li4vLi4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyRVMzLmZyYWciKTsKLSAgc2hvdWxkQmUo
J2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobWF0Rm9yV2ViR0wyUHJvZ3JhbSwgZ2wuTElOS19TVEFU
VVMpJywgJ3RydWUnKTsKLSAgdmFyIG12YWwyeDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
bWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwyeDMiKTsKLSAgdmFyIG12YWwyeDRMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwyeDQiKTsKLSAgdmFy
IG12YWwzeDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwg
Im12YWwzeDIiKTsKLSAgdmFyIG12YWwzeDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0
Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWwzeDQiKTsKLSAgdmFyIG12YWw0eDJMb2MgPSBnbC5nZXRV
bmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12YWw0eDIiKTsKLSAgdmFyIG12
YWw0eDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgIm12
YWw0eDMiKTsKLSAgZ2wudXNlUHJvZ3JhbShtYXRGb3JXZWJHTDJQcm9ncmFtKTsKLSAgZ2wudW5p
Zm9ybU1hdHJpeDJ4M2Z2KG12YWwyeDNMb2MsIGZhbHNlLCBbMSwgMiwgMywgNCwgNSwgNl0pOwot
ICBnbC51bmlmb3JtTWF0cml4Mng0ZnYobXZhbDJ4NExvYywgZmFsc2UsIFs3LCA4LCA5LCAxMCwg
MTEsIDEyLCAxMywgMTRdKTsKLSAgZ2wudW5pZm9ybU1hdHJpeDN4MmZ2KG12YWwzeDJMb2MsIGZh
bHNlLCBbMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0pOwotICBnbC51bmlmb3JtTWF0cml4M3g0ZnYo
bXZhbDN4NExvYywgZmFsc2UsIFsyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXSk7Ci0gIGdsLnVuaWZvcm1NYXRyaXg0eDJmdihtdmFsNHgyTG9jLCBmYWxzZSwg
WzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0pOwotICBnbC51bmlmb3JtTWF0cml4NHgz
ZnYobXZhbDR4M0xvYywgZmFsc2UsIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5
LCA1MCwgNTEsIDUyXSk7CisgIGRlYnVnKCJTYW1wbGVyIHVuaWZvcm0gdmFyaWFibGVzIik7Cisg
IHdpbmRvdy5zYW1wbGVyUHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4v
Li4vcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLnZlcnQiLCAiLi4vLi4vcmVzb3VyY2VzL3Nh
bXBsZXJVbmlmb3JtU2hhZGVyLmZyYWciKTsKKyAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJh
bWV0ZXIoc2FtcGxlclByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0cnVlJyk7CisgIHdpbmRv
dy5zMkRWYWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oc2FtcGxlclByb2dyYW0sICJzMkQi
KTsKKyAgd2luZG93LnNDdWJlVmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHNhbXBsZXJQ
cm9ncmFtLCAic0N1YmUiKTsKKyAgZ2wudXNlUHJvZ3JhbShzYW1wbGVyUHJvZ3JhbSk7CisgIGds
LnVuaWZvcm0xaShzMkRWYWxMb2MsIDApOworICBnbC51bmlmb3JtMWkoc0N1YmVWYWxMb2MsIDEp
OwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gIHNob3VsZEJlKCdn
bC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWwyeDNMb2MpJywgJ1sxLCAyLCAz
LCA0LCA1LCA2XScpOwotICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9n
cmFtLCBtdmFsMng0TG9jKScsICdbNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XScpOwotICBz
aG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3gyTG9jKScs
ICdbMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0nKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0o
bWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDN4NExvYyknLCAnWzIxLCAyMiwgMjMsIDI0LCAyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3Jt
KG1hdEZvcldlYkdMMlByb2dyYW0sIG12YWw0eDJMb2MpJywgJ1szMywgMzQsIDM1LCAzNiwgMzcs
IDM4LCAzOSwgNDBdJyk7Ci0gIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlBy
b2dyYW0sIG12YWw0eDNMb2MpJywgJ1s0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5
LCA1MCwgNTEsIDUyXScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShzYW1wbGVyUHJvZ3Jh
bSwgczJEVmFsTG9jKScsICcwJyk7CisgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHNhbXBsZXJQ
cm9ncmFtLCBzQ3ViZVZhbExvYyknLCAnMScpOwogICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAKLSAgZGVidWcoIlNhbXBsZXIgdW5pZm9ybSB2YXJpYWJsZXMgZm9yIFdl
YkdMMiIpOwotICB2YXIgc2FtcGxlckZvcldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1G
cm9tRmlsZShnbCwgIi4uLy4uL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy52ZXJ0Iiwg
Ii4uLy4uL3Jlc291cmNlcy9zYW1wbGVyRm9yV2ViR0wyVW5pZm9ybVNoYWRlci5mcmFnIik7Ci0g
IHNob3VsZEJlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFt
LCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwotICB2YXIgczNEVmFsTG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKHNhbXBsZXJGb3JXZWJHTDJQcm9ncmFtLCAiczNEIik7Ci0gIHZhciBzMkRB
cnJheVZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVyRm9yV2ViR0wyUHJvZ3Jh
bSwgInMyREFycmF5Iik7Ci0gIGdsLnVzZVByb2dyYW0oc2FtcGxlckZvcldlYkdMMlByb2dyYW0p
OwotICBnbC51bmlmb3JtMWkoczNEVmFsTG9jLCAwKTsKLSAgZ2wudW5pZm9ybTFpKHMyREFycmF5
VmFsTG9jLCAxKTsKKyAgZGVidWcoIk1hdHJpeCB1bmlmb3JtIHZhcmlhYmxlcyIpOworICB3aW5k
b3cubWF0UHJvZ3JhbSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21GaWxlKGdsLCAiLi4vLi4vcmVzb3Vy
Y2VzL21hdFVuaWZvcm1TaGFkZXIudmVydCIsICIuLi8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1T
aGFkZXIuZnJhZyIpOworICBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihtYXRQcm9n
cmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOworICB3aW5kb3cubXZhbDJMb2MgPSBnbC5n
ZXRVbmlmb3JtTG9jYXRpb24obWF0UHJvZ3JhbSwgIm12YWwyIik7CisgIHdpbmRvdy5tdmFsM0xv
YyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRQcm9ncmFtLCAibXZhbDMiKTsKKyAgd2luZG93
Lm12YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdFByb2dyYW0sICJtdmFsNCIpOwor
ICBnbC51c2VQcm9ncmFtKG1hdFByb2dyYW0pOworICBnbC51bmlmb3JtTWF0cml4MmZ2KG12YWwy
TG9jLCBmYWxzZSwgWzEsIDIsIDMsIDRdKTsKKyAgZ2wudW5pZm9ybU1hdHJpeDNmdihtdmFsM0xv
YywgZmFsc2UsIFs1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxM10pOworICBnbC51bmlmb3Jt
TWF0cml4NGZ2KG12YWw0TG9jLCBmYWxzZSwgWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAy
MSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XSk7CiAgIHd0dS5nbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlckZv
cldlYkdMMlByb2dyYW0sIHMzRFZhbExvYyknLCAnMCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VW5p
Zm9ybShzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgczJEQXJyYXlWYWxMb2MpJywgJzEnKTsKKyAg
c2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0UHJvZ3JhbSwgbXZhbDJMb2MpJywgJ1sxLCAyLCAz
LCA0XScpOworICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsM0xvYykn
LCAnWzUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzXScpOworICBzaG91bGRCZSgnZ2wuZ2V0
VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsNExvYyknLCAnWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTks
IDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XScpOwogICB3dHUuZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci19CiAKLWRlYnVnKCIiKTsKLWRlYnVnKCJ0ZXN0
IGdldFZlcnRleEF0dHJpYiIpOwotdmFyIGFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShbMSwgMiwg
MywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdKTsKLXZhciBi
dWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKLWdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVS
LCBidWZmZXIpOwotZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGFycmF5LCBnbC5EWU5B
TUlDX0RSQVcpOwotLy8gVmVydGV4IGF0dHJpYnV0ZSAwIGlzIHNwZWNpYWwgaW4gdGhhdCBpdCBo
YXMgbm8gY3VycmVudCBzdGF0ZSwgc28KLS8vIGZldGNoaW5nIEdMX0NVUlJFTlRfVkVSVEVYX0FU
VFJJQiBnZW5lcmF0ZXMgYW4gZXJyb3IuIFVzZSBhdHRyaWJ1dGUKLS8vIDEgZm9yIHRoZXNlIHRl
c3RzIGluc3RlYWQuCi1nbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKLWdsLnZlcnRleEF0
dHJpYlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLXNob3VsZEJlKCdnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykn
LCAnYnVmZmVyJyk7Ci1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9B
VFRSSUJfQVJSQVlfRU5BQkxFRCknLCAndHJ1ZScpOwotc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0
dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NJWkUpJywgJzQnKTsKLS8vIFN0cmlkZSBN
VVNUIGJlIHRoZSB2YWx1ZSB0aGUgdXNlciBwdXQgaW4uCi1zaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICcwJyk7Ci1zaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSknLCAn
Z2wuRkxPQVQnKTsKLXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9OT1JNQUxJWkVEKScsICdmYWxzZScpOwotaWYgKGNvbnRleHRWZXJzaW9uID4g
MSkgewotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfRElWSVNPUiknLCAnMCcpOwotICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEs
IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUiknLCAnZmFsc2UnKTsKLSAgZ2wudmVydGV4
QXR0cmliRGl2aXNvcigxLCAyKTsKLSAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBn
bC5WRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IpJywgJzInKTsKLX0KLWdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAzNiwgMTIpOwotc2hvdWxkQmUoJ2dsLmdl
dFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSknLCAnMzYnKTsK
LXNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoMSwgZ2wuVkVSVEVYX0FUVFJJQl9B
UlJBWV9QT0lOVEVSKScsICcxMicpOwotZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwot
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VO
QUJMRUQpJywgJ2ZhbHNlJyk7Ci1nbC52ZXJ0ZXhBdHRyaWI0ZigxLCA1LCA2LCA3LCA4KTsKLXNo
b3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKScs
ICdbNSwgNiwgNywgOF0nKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgdmFyIGludEFy
cmF5ID0gbmV3IEludDMyQXJyYXkoWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSk7Ci0gIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBp
bnRBcnJheSwgZ2wuRFlOQU1JQ19EUkFXKTsKLSAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
MSk7Ci0gIC8vIGZlZWQgZml4ZWQtcG9pbnQgZGF0YSB0byBidWZmZXIKLSAgZ2wudmVydGV4QXR0
cmliSVBvaW50ZXIoMSwgNCwgZ2wuSU5ULCBmYWxzZSwgMCwgMCk7Ci0gIHNob3VsZEJlKCdnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFKScsICdnbC5JTlQn
KTsKLSAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX0lOVEVHRVIpJywgJ3RydWUnKTsKLX0KLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKLXZhciB2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliID0gbmV3IEFycmF5KAotICAg
IGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcsCi0gICAgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9FTkFCTEVELAotICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSwKLSAg
ICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSwKLSAgICBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX1RZUEUsCi0gICAgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVELAotICAgIGds
LkNVUlJFTlRfVkVSVEVYX0FUVFJJQgotKTsKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAg
dmFsaWRBcnJheUZvclZlcnRleEF0dHJpYlt2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0
aF0gPSBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1I7Ci0gIHZhbGlkQXJyYXlGb3JWZXJ0
ZXhBdHRyaWJbdmFsaWRBcnJheUZvclZlcnRleEF0dHJpYi5sZW5ndGhdID0gZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9JTlRFR0VSOwotfQotdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAiZ2V0VmVy
dGV4QXR0cmliIiwKLSAgICAicGFyYW1ldGVyIiwKLSAgICB2YWxpZEFycmF5Rm9yVmVydGV4QXR0
cmliLAotICAgIGZ1bmN0aW9uKHBhcmFtZXRlcikgewotICAgICAgcmV0dXJuIGdsLmdldFZlcnRl
eEF0dHJpYigxLCBwYXJhbWV0ZXIpOwotICAgIH0KLSk7Ci12YXIgbnVtVmVydGV4QXR0cmlicyA9
IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVkVSVEVYX0FUVFJJQlMpOwotd3R1LnNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgJ2dsLmdldFZlcnRleEF0dHJpYignICsg
bnVtVmVydGV4QXR0cmlicyArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQiknKTsKKyAgaWYg
KGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGRlYnVnKCJVbnNpZ25lZCBJbnRlZ2VyIHVuaWZv
cm0gdmFyaWFibGVzIik7CisgICAgd2luZG93LnVpbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFt
RnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNvdXJjZXMvdWludFVuaWZvcm1TaGFkZXIudmVydCIsICIu
Li8uLi9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXJFUzMuZnJhZyIpOworICAgIHNob3VsZEJl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHVpbnRQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAn
dHJ1ZScpOworICAgIHdpbmRvdy51dmFsTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHVpbnRQ
cm9ncmFtLCAidXZhbCIpOworICAgIHdpbmRvdy51dmFsMkxvYyA9IGdsLmdldFVuaWZvcm1Mb2Nh
dGlvbih1aW50UHJvZ3JhbSwgInV2YWwyIik7CisgICAgd2luZG93LnV2YWwzTG9jID0gZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKHVpbnRQcm9ncmFtLCAidXZhbDMiKTsKKyAgICB3aW5kb3cudXZhbDRM
b2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24odWludFByb2dyYW0sICJ1dmFsNCIpOworICAgIGds
LnVzZVByb2dyYW0odWludFByb2dyYW0pOworICAgIGdsLnVuaWZvcm0xdWkodXZhbExvYywgMSk7
CisgICAgZ2wudW5pZm9ybTJ1aSh1dmFsMkxvYywgMiwgMyk7CisgICAgZ2wudW5pZm9ybTN1aSh1
dmFsM0xvYywgNCwgNSwgNik7CisgICAgZ2wudW5pZm9ybTR1aSh1dmFsNExvYywgNywgOCwgOSwg
MTApOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91
bGRCZSgnZ2wuZ2V0VW5pZm9ybSh1aW50UHJvZ3JhbSwgdXZhbExvYyknLCAnMScpOworICAgIHNo
b3VsZEJlKCdnbC5nZXRVbmlmb3JtKHVpbnRQcm9ncmFtLCB1dmFsMkxvYyknLCAnWzIsIDNdJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0odWludFByb2dyYW0sIHV2YWwzTG9jKScsICdb
NCwgNSwgNl0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSh1aW50UHJvZ3JhbSwgdXZh
bDRMb2MpJywgJ1s3LCA4LCA5LCAxMF0nKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAKLWRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0IGNhc2VzIHdoZXJlIG5hbWUg
PT0gMCIpOwotZ2wuZGVsZXRlVGV4dHVyZSh0ZXh0dXJlKTsKLXNob3VsZEJlKCdnbC5nZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFD
SE1FTlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKScsICdnbC5OT05F
Jyk7Ci1nbC5kZWxldGVSZW5kZXJidWZmZXIocmVuZGVyYnVmZmVyKTsKLWdsLmJpbmRSZW5kZXJi
dWZmZXIoZ2wuUkVOREVSQlVGRkVSLCByZW5kZXJidWZmZXIpOwotd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOwotc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwg
Z2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuTk9ORScpOwotZ2wu
ZGVsZXRlQnVmZmVyKGJ1ZmZlcik7Ci1zaG91bGRCZU51bGwoJ2dsLmdldFZlcnRleEF0dHJpYigx
LCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKScpOwotd3R1LmdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIGRlYnVnKCJNYXRyaXggdW5pZm9ybSB2YXJp
YWJsZXMgZm9yIFdlYkdMIDIiKTsKKyAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7CiAKLWlmIChjb250ZXh0VmVyc2lvbiA+IDEpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAg
ZGVidWcoIlRlc3QgZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIiKQorICAgIHdpbmRvdy5tYXRG
b3JXZWJHTDJQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbUZpbGUoZ2wsICIuLi8uLi9yZXNv
dXJjZXMvbWF0Rm9yV2ViR0wyVW5pZm9ybVNoYWRlci52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9u
b29wVW5pZm9ybVNoYWRlckVTMy5mcmFnIik7CisgICAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1Q
YXJhbWV0ZXIobWF0Rm9yV2ViR0wyUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywgJ3RydWUnKTsK
KyAgICB3aW5kb3cubXZhbDJ4M0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihtYXRGb3JXZWJH
TDJQcm9ncmFtLCAibXZhbDJ4MyIpOworICAgIHdpbmRvdy5tdmFsMng0TG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsMng0Iik7CisgICAgd2luZG93
Lm12YWwzeDJMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2ViR0wyUHJvZ3JhbSwg
Im12YWwzeDIiKTsKKyAgICB3aW5kb3cubXZhbDN4NExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihtYXRGb3JXZWJHTDJQcm9ncmFtLCAibXZhbDN4NCIpOworICAgIHdpbmRvdy5tdmFsNHgyTG9j
ID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKG1hdEZvcldlYkdMMlByb2dyYW0sICJtdmFsNHgyIik7
CisgICAgd2luZG93Lm12YWw0eDNMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24obWF0Rm9yV2Vi
R0wyUHJvZ3JhbSwgIm12YWw0eDMiKTsKKyAgICBnbC51c2VQcm9ncmFtKG1hdEZvcldlYkdMMlBy
b2dyYW0pOworICAgIGdsLnVuaWZvcm1NYXRyaXgyeDNmdihtdmFsMngzTG9jLCBmYWxzZSwgWzEs
IDIsIDMsIDQsIDUsIDZdKTsKKyAgICBnbC51bmlmb3JtTWF0cml4Mng0ZnYobXZhbDJ4NExvYywg
ZmFsc2UsIFs3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTRdKTsKKyAgICBnbC51bmlmb3JtTWF0
cml4M3gyZnYobXZhbDN4MkxvYywgZmFsc2UsIFsxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSk7Cisg
ICAgZ2wudW5pZm9ybU1hdHJpeDN4NGZ2KG12YWwzeDRMb2MsIGZhbHNlLCBbMjEsIDIyLCAyMywg
MjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl0pOworICAgIGdsLnVuaWZvcm1NYXRy
aXg0eDJmdihtdmFsNHgyTG9jLCBmYWxzZSwgWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0
MF0pOworICAgIGdsLnVuaWZvcm1NYXRyaXg0eDNmdihtdmFsNHgzTG9jLCBmYWxzZSwgWzQxLCA0
MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTJdKTsKKyAgICB3dHUuZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZv
cm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZhbDJ4M0xvYyknLCAnWzEsIDIsIDMsIDQsIDUsIDZd
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0obWF0Rm9yV2ViR0wyUHJvZ3JhbSwgbXZh
bDJ4NExvYyknLCAnWzcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0nKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShtYXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsM3gyTG9jKScsICdbMTUs
IDE2LCAxNywgMTgsIDE5LCAyMF0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShtYXRG
b3JXZWJHTDJQcm9ncmFtLCBtdmFsM3g0TG9jKScsICdbMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwg
MjcsIDI4LCAyOSwgMzAsIDMxLCAzMl0nKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybSht
YXRGb3JXZWJHTDJQcm9ncmFtLCBtdmFsNHgyTG9jKScsICdbMzMsIDM0LCAzNSwgMzYsIDM3LCAz
OCwgMzksIDQwXScpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKG1hdEZvcldlYkdMMlBy
b2dyYW0sIG12YWw0eDNMb2MpJywgJ1s0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5
LCA1MCwgNTEsIDUyXScpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKIAotICAgIHNob3VsZEJlTm9uTnVsbCgnZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SMzJJLCBnbC5TQU1QTEVTKScpOworICAgIGRlYnVnKCJTYW1w
bGVyIHVuaWZvcm0gdmFyaWFibGVzIGZvciBXZWJHTDIiKTsKKyAgICB3aW5kb3cuc2FtcGxlckZv
cldlYkdMMlByb2dyYW0gPSB3dHUubG9hZFByb2dyYW1Gcm9tRmlsZShnbCwgIi4uLy4uL3Jlc291
cmNlcy9ub29wVW5pZm9ybVNoYWRlckVTMy52ZXJ0IiwgIi4uLy4uL3Jlc291cmNlcy9zYW1wbGVy
Rm9yV2ViR0wyVW5pZm9ybVNoYWRlci5mcmFnIik7CisgICAgc2hvdWxkQmUoJ2dsLmdldFByb2dy
YW1QYXJhbWV0ZXIoc2FtcGxlckZvcldlYkdMMlByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScsICd0
cnVlJyk7CisgICAgd2luZG93LnMzRFZhbExvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1w
bGVyRm9yV2ViR0wyUHJvZ3JhbSwgInMzRCIpOworICAgIHdpbmRvdy5zMkRBcnJheVZhbExvYyA9
IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSwgInMyREFycmF5
Iik7CisgICAgZ2wudXNlUHJvZ3JhbShzYW1wbGVyRm9yV2ViR0wyUHJvZ3JhbSk7CisgICAgZ2wu
dW5pZm9ybTFpKHMzRFZhbExvYywgMCk7CisgICAgZ2wudW5pZm9ybTFpKHMyREFycmF5VmFsTG9j
LCAxKTsKICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hv
dWxkQmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlckZvcldlYkdMMlByb2dyYW0sIHMzRFZhbExvYykn
LCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtKHNhbXBsZXJGb3JXZWJHTDJQcm9n
cmFtLCBzMkRBcnJheVZhbExvYyknLCAnMScpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKKyAgfQogCi0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAg
ImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKLSAgICAgICAgInRhcmdldCIsCi0gICAgICAg
IFsgZ2wuUkVOREVSQlVGRkVSIF0sCi0gICAgICAgIGZ1bmN0aW9uKHRhcmdldCkgewotICAgICAg
ICAgICAgcmV0dXJuIGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKHRhcmdldCwgZ2wuUjMy
SSwgZ2wuU0FNUExFUyk7Ci0gICAgfSk7CisgIGRlYnVnKCIiKTsKKyAgZGVidWcoInRlc3QgZ2V0
VmVydGV4QXR0cmliIik7CisgIGxldCBhcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoWzEsIDIsIDMs
IDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSk7CisgIHdpbmRv
dy5idWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9C
VUZGRVIsIGJ1ZmZlcik7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBhcnJheSwg
Z2wuRFlOQU1JQ19EUkFXKTsKKyAgLy8gVmVydGV4IGF0dHJpYnV0ZSAwIGlzIHNwZWNpYWwgaW4g
dGhhdCBpdCBoYXMgbm8gY3VycmVudCBzdGF0ZSwgc28KKyAgLy8gZmV0Y2hpbmcgR0xfQ1VSUkVO
VF9WRVJURVhfQVRUUklCIGdlbmVyYXRlcyBhbiBlcnJvci4gVXNlIGF0dHJpYnV0ZQorICAvLyAx
IGZvciB0aGVzZSB0ZXN0cyBpbnN0ZWFkLgorICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgx
KTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDAp
OworICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJS
QVlfQlVGRkVSX0JJTkRJTkcpJywgJ2J1ZmZlcicpOworICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCknLCAndHJ1ZScpOworICBz
aG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU0la
RSknLCAnNCcpOworICAvLyBTdHJpZGUgTVVTVCBiZSB0aGUgdmFsdWUgdGhlIHVzZXIgcHV0IGlu
LgorICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJS
QVlfU1RSSURFKScsICcwJyk7CisgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFKScsICdnbC5GTE9BVCcpOworICBzaG91bGRCZSgnZ2wu
Z2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCknLCAn
ZmFsc2UnKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIHNob3VsZEJlKCdnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SKScsICcwJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX0lOVEVHRVIpJywgJ2ZhbHNlJyk7CisgICAgZ2wudmVydGV4QXR0cmliRGl2aXNvcigxLCAy
KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfRElWSVNPUiknLCAnMicpOworICB9CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMSwg
NCwgZ2wuRkxPQVQsIGZhbHNlLCAzNiwgMTIpOworICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0
cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFKScsICczNicpOworICBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfUE9J
TlRFUiknLCAnMTInKTsKKyAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOworICBzaG91
bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxF
RCknLCAnZmFsc2UnKTsKKyAgZ2wudmVydGV4QXR0cmliNGYoMSwgNSwgNiwgNywgOCk7CisgIHNo
b3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKScs
ICdbNSwgNiwgNywgOF0nKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkgeworICAgIGxldCBp
bnRBcnJheSA9IG5ldyBJbnQzMkFycmF5KFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwg
MTEsIDEyLCAxMywgMTQsIDE1LCAxNl0pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVG
RkVSLCBpbnRBcnJheSwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgxKTsKKyAgICAvLyBmZWVkIGZpeGVkLXBvaW50IGRhdGEgdG8gYnVmZmVyCisgICAg
Z2wudmVydGV4QXR0cmliSVBvaW50ZXIoMSwgNCwgZ2wuSU5ULCBmYWxzZSwgMCwgMCk7CisgICAg
c2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1RZ
UEUpJywgJ2dsLklOVCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSKScsICd0cnVlJyk7CisgIH0KKyAgd3R1LmdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICBsZXQgdmFsaWRBcnJheUZvclZlcnRleEF0
dHJpYiA9IG5ldyBBcnJheSgKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJ
TkRJTkcsCisgICAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQsCisgICAgICBnbC5W
RVJURVhfQVRUUklCX0FSUkFZX1NJWkUsCisgICAgICBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NU
UklERSwKKyAgICAgIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSwKKyAgICAgIGdsLlZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCwKKyAgICAgIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJ
QgorICApOworICBpZiAoY29udGV4dFZlcnNpb24gPiAxKSB7CisgICAgdmFsaWRBcnJheUZvclZl
cnRleEF0dHJpYlt2YWxpZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0aF0gPSBnbC5WRVJURVhf
QVRUUklCX0FSUkFZX0RJVklTT1I7CisgICAgdmFsaWRBcnJheUZvclZlcnRleEF0dHJpYlt2YWxp
ZEFycmF5Rm9yVmVydGV4QXR0cmliLmxlbmd0aF0gPSBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVI7CisgIH0KKyAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICJnZXRWZXJ0
ZXhBdHRyaWIiLAorICAgICAgInBhcmFtZXRlciIsCisgICAgICB2YWxpZEFycmF5Rm9yVmVydGV4
QXR0cmliLAorICAgICAgZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgICAgICAgIHJldHVybiBnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMSwgcGFyYW1ldGVyKTsKKyAgICAgIH0KKyAgKTsKKyAgbGV0IG51bVZl
cnRleEF0dHJpYnMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZFUlRFWF9BVFRSSUJTKTsKKyAg
d3R1LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgJ2dsLmdldFZl
cnRleEF0dHJpYignICsgbnVtVmVydGV4QXR0cmlicyArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FU
VFJJQiknKTsKIAotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgICAgICJnZXRJbnRlcm5h
bGZvcm1hdFBhcmFtZXRlciIsCi0gICAgICAgICJwbmFtZSIsCi0gICAgICAgIFsgZ2wuU0FNUExF
UyBdLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAgICAgICAgcmV0dXJuIGdsLmdl
dEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIHBuYW1l
KTsKLSAgICB9KTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiVGVzdCBjYXNlcyB3aGVyZSBuYW1l
ID09IDAiKTsKKyAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmcmFtZWJ1ZmZl
cik7CiAKLSAgICB2YXIgdmFsaWRBcnJheUZvckludGVyZm9ybWF0ID0gbmV3IEFycmF5KAotICAg
ICAgICBnbC5SOCwgZ2wuUjhfU05PUk0sIGdsLlJHOCwgZ2wuUkc4X1NOT1JNLAotICAgICAgICBn
bC5SR0I4LCBnbC5SR0I4X1NOT1JNLCBnbC5SR0I1NjUsIGdsLlJHQkE0LAotICAgICAgICBnbC5S
R0I1X0ExLCBnbC5SR0JBOCwgZ2wuUkdCQThfU05PUk0sIGdsLlJHQjEwX0EyLAotICAgICAgICBn
bC5SR0IxMF9BMlVJLCBnbC5TUkdCOCwgZ2wuU1JHQjhfQUxQSEE4LCBnbC5SMTZGLAotICAgICAg
ICBnbC5SRzE2RiwgZ2wuUkdCMTZGLCBnbC5SR0JBMTZGLCBnbC5SMzJGLAotICAgICAgICBnbC5S
RzMyRiwgZ2wuUkdCMzJGLCBnbC5SR0JBMzJGLCBnbC5SMTFGX0cxMUZfQjEwRiwKLSAgICAgICAg
Z2wuUkdCOV9FNSwgZ2wuUjhJLCBnbC5SOFVJLCBnbC5SMTZJLAotICAgICAgICBnbC5SMTZVSSwg
Z2wuUjMySSwgZ2wuUjMyVUksIGdsLlJHOEksCi0gICAgICAgIGdsLlJHOFVJLCBnbC5SRzE2SSwg
Z2wuUkcxNlVJLCBnbC5SRzMySSwKLSAgICAgICAgZ2wuUkczMlVJLCBnbC5SR0I4SSwgZ2wuUkdC
OFVJLCBnbC5SR0IxNkksCi0gICAgICAgIGdsLlJHQjE2VUksIGdsLlJHQjMySSwgZ2wuUkdCMzJV
SSwgZ2wuUkdCQThJLAotICAgICAgICBnbC5SR0JBOFVJLCBnbC5SR0JBMTZJLCBnbC5SR0JBMTZV
SSwgZ2wuUkdCQTMySSwKLSAgICAgICAgZ2wuUkdCQTMyVUksIGdsLlJHQiwgZ2wuUkdCQSwgZ2wu
REVQVEhfU1RFTkNJTCwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsCi0gICAgICAgIGdsLkRFUFRIX0NP
TVBPTkVOVDI0LCBnbC5ERVBUSF9DT01QT05FTlQzMkYsIGdsLkRFUFRIMjRfU1RFTkNJTDgsCi0g
ICAgICAgIGdsLkRFUFRIMzJGX1NURU5DSUw4LCBnbC5TVEVOQ0lMX0lOREVYOAotICAgICk7Ci0g
ICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdldEludGVybmFsZm9ybWF0UGFyYW1l
dGVyIiwKLSAgICAgICAgImludGVybmFsZm9ybWF0IiwKLSAgICAgICAgdmFsaWRBcnJheUZvcklu
dGVyZm9ybWF0LAotICAgICAgICBmdW5jdGlvbihpbnRlcm5hbGZvcm1hdCkgewotICAgICAgICAg
ICAgcmV0dXJuIGdsLmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
aW50ZXJuYWxmb3JtYXQsIGdsLlNBTVBMRVMpOwotICAgIH0pOworICBzaG91bGROb3RCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAn
Z2wuTk9ORScpOworICBnbC5kZWxldGVUZXh0dXJlKHRleHR1cmUpOworICBzaG91bGRCZSgnZ2wu
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSknLCAn
Z2wuTk9ORScpOworICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiAKKyAg
c2hvdWxkTm90QmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFN
RUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfVFlQRSknLCAnZ2wuTk9ORScpOworICBnbC5kZWxldGVSZW5kZXJidWZmZXIocmVuZGVy
YnVmZmVyKTsKKyAgc2hvdWxkQmUoJ2dsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9PQkpFQ1RfVFlQRSknLCAnZ2wuTk9ORScpOworICB3dHUuZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0
SW5kZXhlZFBhcmFtZXRlciIpOwotICAgIHZhciBidWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsK
LSAgICBnbC5iaW5kQnVmZmVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGJ1ZmZlcik7
Ci0gICAgZ2wuYnVmZmVyRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCA2NCwgZ2wu
RFlOQU1JQ19EUkFXKTsKLSAgICBnbC5iaW5kQnVmZmVyUmFuZ2UoZ2wuVFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUiwgMCwgYnVmZmVyLCA0LCA4KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhl
ZFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDApJywgJ2J1
ZmZlcicpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9S
TV9GRUVEQkFDS19CVUZGRVJfU0laRSwgMCknLCAnOCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJ
bmRleGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQsIDApJywg
JzQnKTsKLSAgICB2YXIgYnVmZmVyMSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICAgIGdsLmJpbmRC
dWZmZXIoZ2wuVU5JRk9STV9CVUZGRVIsIGJ1ZmZlcjEpOwotICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
VU5JRk9STV9CVUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOwotICAgIHZhciBvZmZzZXRVbmlm
b3JtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQp
OwotICAgIGdsLmJpbmRCdWZmZXJSYW5nZShnbC5VTklGT1JNX0JVRkZFUiwgMSwgYnVmZmVyMSwg
b2Zmc2V0VW5pZm9ybSwgOCk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIo
Z2wuVU5JRk9STV9CVUZGRVJfQklORElORywgMSknLCAnYnVmZmVyMScpOwotICAgIHNob3VsZEJl
KCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX1NJWkUsIDEpJywgJzgn
KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5VTklGT1JNX0JVRkZF
Ul9TVEFSVCwgMSknLCAnb2Zmc2V0VW5pZm9ybScpOworICBnbC5kZWxldGVCdWZmZXIoYnVmZmVy
KTsKKyAgc2hvdWxkQmVOdWxsKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9CVUZGRVJfQklORElORyknKTsKKyAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwogCi0gICAgZ2wuYmluZEJ1ZmZlckJhc2UoZ2wuVU5JRk9STV9CVUZGRVIsIDEs
IG51bGwpOwotICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDEpJywgJ251bGwnKTsKKyAgaWYgKGNvbnRleHRWZXJzaW9uID4gMSkg
eworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoIlRlc3QgZ2V0SW50ZXJuYWxmb3JtYXRQ
YXJhbWV0ZXIiKQogCi0gICAgdmFyIHZhbGlkQXJyYXlGb3JUYXJnZXQgPSBuZXcgQXJyYXkoCi0g
ICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywKLSAgICAgICAgZ2wu
VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFLAotICAgICAgICBnbC5UUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSX1NUQVJULAotICAgICAgICBnbC5VTklGT1JNX0JVRkZFUl9CSU5ESU5HLAot
ICAgICAgICBnbC5VTklGT1JNX0JVRkZFUl9TSVpFLAotICAgICAgICBnbC5VTklGT1JNX0JVRkZF
Ul9TVEFSVAotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdldElu
ZGV4ZWRQYXJhbWV0ZXIiLAotICAgICAgICAidGFyZ2V0IiwKLSAgICAgICAgdmFsaWRBcnJheUZv
clRhcmdldCwKLSAgICAgICAgZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICAgICAgICByZXR1cm4g
Z2wuZ2V0SW5kZXhlZFBhcmFtZXRlcih0YXJnZXQsIDApOwotICAgIH0pOworICAgICAgc2hvdWxk
QmVOb25OdWxsKCdnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlIzMkksIGdsLlNBTVBMRVMpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0U2FtcGxl
clBhcmFtZXRlciIpOwotICAgIHZhciBzYW1wbGVyID0gZ2wuY3JlYXRlU2FtcGxlcigpOwotICAg
IGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9GVU5DLCBn
bC5MRVFVQUwpOwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVf
Q09NUEFSRV9NT0RFLCBnbC5DT01QQVJFX1JFRl9UT19URVhUVVJFKTsKLSAgICBnbC5zYW1wbGVy
UGFyYW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwot
ICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJmKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUFYX0xPRCwgMTAp
OwotICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfTUlOX0ZJTFRF
UiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRlcmYoc2FtcGxlciwgZ2wuVEVY
VFVSRV9NSU5fTE9ELCAwKTsKLSAgICBnbC5zYW1wbGVyUGFyYW1ldGVyaShzYW1wbGVyLCBnbC5U
RVhUVVJFX1dSQVBfUiwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wuc2FtcGxlclBhcmFtZXRl
cmkoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGds
LnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9U
T19FREdFKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBn
bC5URVhUVVJFX0NPTVBBUkVfRlVOQyknLCAnZ2wuTEVRVUFMJyk7Ci0gICAgc2hvdWxkQmUoJ2ds
LmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUpJywg
J2dsLkNPTVBBUkVfUkVGX1RPX1RFWFRVUkUnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxl
clBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01BR19GSUxURVIpJywgJ2dsLk5FQVJFU1Qn
KTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhU
VVJFX01BWF9MT0QpJywgJzEwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0
ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSKScsICdnbC5ORUFSRVNUJyk7Ci0gICAg
c2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5f
TE9EKScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxl
ciwgZ2wuVEVYVFVSRV9XUkFQX1IpJywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKLSAgICBzaG91bGRC
ZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX1dSQVBfUyknLCAn
Z2wuQ0xBTVBfVE9fRURHRScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVy
KHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9UKScsICdnbC5DTEFNUF9UT19FREdFJyk7Ci0gICAg
dmFyIHZhbGlkQXJyYXlGb3JTYW1wbGVyUGFyYW1ldGVyID0gbmV3IEFycmF5KAotICAgICAgICBn
bC5URVhUVVJFX0NPTVBBUkVfRlVOQywKLSAgICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX01PREUs
Ci0gICAgICAgIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwKLSAgICAgICAgZ2wuVEVYVFVSRV9NQVhf
TE9ELAotICAgICAgICBnbC5URVhUVVJFX01JTl9GSUxURVIsCi0gICAgICAgIGdsLlRFWFRVUkVf
TUlOX0xPRCwKLSAgICAgICAgZ2wuVEVYVFVSRV9XUkFQX1IsCi0gICAgICAgIGdsLlRFWFRVUkVf
V1JBUF9TLAotICAgICAgICBnbC5URVhUVVJFX1dSQVBfVAotICAgICk7Ci0gICAgdGVzdEludmFs
aWRBcmd1bWVudCgKLSAgICAgICAgImdldFNhbXBsZXJQYXJhbWV0ZXIiLAotICAgICAgICAicG5h
bWUiLAotICAgICAgICB2YWxpZEFycmF5Rm9yU2FtcGxlclBhcmFtZXRlciwKLSAgICAgICAgZnVu
Y3Rpb24ocG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBnbC5nZXRTYW1wbGVyUGFyYW1ldGVy
KHNhbXBsZXIsIHBuYW1lKTsKLSAgICB9KTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1l
bnQoCisgICAgICAgICAgImdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyIiwKKyAgICAgICAgICAi
dGFyZ2V0IiwKKyAgICAgICAgICBbIGdsLlJFTkRFUkJVRkZFUiBdLAorICAgICAgICAgIGZ1bmN0
aW9uKHRhcmdldCkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQ
YXJhbWV0ZXIodGFyZ2V0LCBnbC5SMzJJLCBnbC5TQU1QTEVTKTsKKyAgICAgIH0pOwogCi0gICAg
ZGVidWcoIiIpOwotICAgIGRlYnVnKCJUZXN0IGdldFN5bmNQYXJhbWV0ZXIiKTsKLSAgICB2YXIg
c3luYyA9IGdsLmZlbmNlU3luYyhnbC5TWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSwgMCk7Ci0g
ICAgc2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuT0JKRUNUX1RZUEUpJywg
J2dsLlNZTkNfRkVOQ0UnKTsKLSAgICB2YXIgc3luY19zdGF0dXMgPSBnbC5nZXRTeW5jUGFyYW1l
dGVyKHN5bmMsIGdsLlNZTkNfU1RBVFVTKTsKLSAgICBzd2l0Y2ggKHN5bmNfc3RhdHVzKSB7Ci0g
ICAgICBjYXNlIGdsLlVOU0lHTkFMRUQ6Ci0gICAgICAgIHRlc3RQYXNzZWQoJ2dsLmdldFN5bmNQ
YXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGdsLlVOU0lHTkFMRUQnKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIGdsLlNJR05BTEVEOgotICAgICAgICB0ZXN0UGFzc2Vk
KCdnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfQ09ORElUSU9OKSBpcyBnbC5TSUdO
QUxFRCcpOwotICAgICAgICBicmVhazsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRlc3RGYWls
ZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIHdhcyAnICsg
c3luY19zdGF0dXMgKwotICAgICAgICAgICAgICAgICAgICcsIGV4cGVjdGVkIGdsLlVOU0lHTkFM
RUQgb3IgZ2wuU0lHTkFMRUQnKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHNob3VsZEJl
KCdnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfQ09ORElUSU9OKScsICdnbC5TWU5D
X0dQVV9DT01NQU5EU19DT01QTEVURScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRTeW5jUGFyYW1l
dGVyKHN5bmMsIGdsLlNZTkNfRkxBR1MpJywgJzAnKTsKLSAgICB2YXIgdmFsaWRBcnJheUZvclN5
bmNQYXJhbWV0ZXIgPSBuZXcgQXJyYXkoCi0gICAgICAgIGdsLk9CSkVDVF9UWVBFLAotICAgICAg
ICBnbC5TWU5DX1NUQVRVUywKLSAgICAgICAgZ2wuU1lOQ19DT05ESVRJT04sCi0gICAgICAgIGds
LlNZTkNfRkxBR1MKLSAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQoCi0gICAgICAgICJn
ZXRTeW5jUGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAgICAgdmFsaWRBcnJheUZv
clN5bmNQYXJhbWV0ZXIsCi0gICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBwbmFtZSk7Ci0gICAgfSk7CisgICAgICBh
d2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRJbnRlcm5hbGZvcm1hdFBh
cmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICBbIGdsLlNBTVBMRVMgXSwK
KyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0
SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgcG5hbWUp
OworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZ2V0UXVlcnlQ
YXJhbWV0ZXIiKTsKLSAgICB2YXIgcXVlcnkgPSBnbC5jcmVhdGVRdWVyeSgpOwotICAgIGdsLmJl
Z2luUXVlcnkoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiwgcXVlcnkp
OwotICAgIGdsLmVuZFF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRU
RU4pOwotICAgIHNob3VsZEJlKCdnbC5nZXRRdWVyeVBhcmFtZXRlcihxdWVyeSwgZ2wuUVVFUllf
UkVTVUxUX0FWQUlMQUJMRSknLCAnZmFsc2UnKTsKLSAgICAvLyBRdWVyaWVzJyByZXN1bHRzIGFy
ZSB0ZXN0ZWQgZWxzZXdoZXJlIGluIHRoZSBjb25mb3JtYW5jZSBzdWl0ZS4gSXQncyBjb21wbGlj
YXRlZAotICAgIC8vIHRvIHdhaXQgZm9yIHRoaXMgcXVlcnkncyByZXN1bHQgdG8gYmVjb21lIGF2
YWlsYWJsZSBhbmQgdmVyaWZ5IGl0LgotICAgIHZhciB2YWxpZEFycmF5Rm9yUG5hbWUgPSBuZXcg
QXJyYXkoCi0gICAgICAgIGdsLlFVRVJZX1JFU1VMVCwKLSAgICAgICAgZ2wuUVVFUllfUkVTVUxU
X0FWQUlMQUJMRQotICAgICk7Ci0gICAgdGVzdEludmFsaWRBcmd1bWVudCgKLSAgICAgICAgImdl
dFF1ZXJ5UGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAgICAgdmFsaWRBcnJheUZv
clBuYW1lLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAgICAgICAgcmV0dXJuIGds
LmdldFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5LCBwbmFtZSk7Ci0gICAgICAgIH0KLSAgICApOworICAg
ICAgbGV0IHZhbGlkQXJyYXlGb3JJbnRlcmZvcm1hdCA9IG5ldyBBcnJheSgKKyAgICAgICAgICBn
bC5SOCwgZ2wuUjhfU05PUk0sIGdsLlJHOCwgZ2wuUkc4X1NOT1JNLAorICAgICAgICAgIGdsLlJH
QjgsIGdsLlJHQjhfU05PUk0sIGdsLlJHQjU2NSwgZ2wuUkdCQTQsCisgICAgICAgICAgZ2wuUkdC
NV9BMSwgZ2wuUkdCQTgsIGdsLlJHQkE4X1NOT1JNLCBnbC5SR0IxMF9BMiwKKyAgICAgICAgICBn
bC5SR0IxMF9BMlVJLCBnbC5TUkdCOCwgZ2wuU1JHQjhfQUxQSEE4LCBnbC5SMTZGLAorICAgICAg
ICAgIGdsLlJHMTZGLCBnbC5SR0IxNkYsIGdsLlJHQkExNkYsIGdsLlIzMkYsCisgICAgICAgICAg
Z2wuUkczMkYsIGdsLlJHQjMyRiwgZ2wuUkdCQTMyRiwgZ2wuUjExRl9HMTFGX0IxMEYsCisgICAg
ICAgICAgZ2wuUkdCOV9FNSwgZ2wuUjhJLCBnbC5SOFVJLCBnbC5SMTZJLAorICAgICAgICAgIGds
LlIxNlVJLCBnbC5SMzJJLCBnbC5SMzJVSSwgZ2wuUkc4SSwKKyAgICAgICAgICBnbC5SRzhVSSwg
Z2wuUkcxNkksIGdsLlJHMTZVSSwgZ2wuUkczMkksCisgICAgICAgICAgZ2wuUkczMlVJLCBnbC5S
R0I4SSwgZ2wuUkdCOFVJLCBnbC5SR0IxNkksCisgICAgICAgICAgZ2wuUkdCMTZVSSwgZ2wuUkdC
MzJJLCBnbC5SR0IzMlVJLCBnbC5SR0JBOEksCisgICAgICAgICAgZ2wuUkdCQThVSSwgZ2wuUkdC
QTE2SSwgZ2wuUkdCQTE2VUksIGdsLlJHQkEzMkksCisgICAgICAgICAgZ2wuUkdCQTMyVUksIGds
LlJHQiwgZ2wuUkdCQSwgZ2wuREVQVEhfU1RFTkNJTCwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsCisg
ICAgICAgICAgZ2wuREVQVEhfQ09NUE9ORU5UMjQsIGdsLkRFUFRIX0NPTVBPTkVOVDMyRiwgZ2wu
REVQVEgyNF9TVEVOQ0lMOCwKKyAgICAgICAgICBnbC5ERVBUSDMyRl9TVEVOQ0lMOCwgZ2wuU1RF
TkNJTF9JTkRFWDgKKyAgICAgICk7CisgICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAor
ICAgICAgICAgICJnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlciIsCisgICAgICAgICAgImludGVy
bmFsZm9ybWF0IiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9ySW50ZXJmb3JtYXQsCisgICAgICAg
ICAgZnVuY3Rpb24oaW50ZXJuYWxmb3JtYXQpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGdsLmdl
dEludGVybmFsZm9ybWF0UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgaW50ZXJuYWxmb3JtYXQs
IGdsLlNBTVBMRVMpOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRl
c3QgZ2V0RnJhZ0RhdGFMb2NhdGlvbiIpOwotICAgIHZhciBiYXNlVmVydFNoYWRlciA9ICcnICsK
LSAgICAnI3ZlcnNpb24gMzAwIGVzXG4nICsKLSAgICAndW5pZm9ybSBtYXQ0IG1vZGVsVmlld01h
dHJpeDtcbicgKwotICAgICd1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDtcbicgKwotICAg
ICdpbiB2ZWM0IHZlcnRleDtcbicgKwotICAgICdvdXQgdmVjNCBwb3NpdGlvbjtcbicgKwotICAg
ICd2b2lkIG1haW4gKHZvaWQpXG4nICsKLSAgICAne1xuJyArCi0gICAgJyAgICAgICBwb3NpdGlv
biA9IG1vZGVsVmlld01hdHJpeCAqIHZlcnRleDtcbicgKwotICAgICcgICAgICAgZ2xfUG9zaXRp
b24gPSBwcm9qZWN0aW9uTWF0cml4ICogcG9zaXRpb247XG4nICsKLSAgICAnfVxuJzsKLSAgICB2
YXIgYmFzZUZyYWdTaGFkZXIgPSAnJyArCi0gICAgJyN2ZXJzaW9uIDMwMCBlc1xuJyArCi0gICAg
J2luIGxvd3AgdmVjNCBwb3NpdGlvbjtcbicgKwotICAgICdsYXlvdXQobG9jYXRpb24gPSAwKSBv
dXQgbWVkaXVtcCB2ZWM0IGZyYWdDb2xvcjtcbicgKwotICAgICd2b2lkIG1haW4gKHZvaWQpXG4n
ICsKLSAgICAne1xuJyArCi0gICAgJyAgICAgICBmcmFnQ29sb3IgPSBwb3NpdGlvbjtcbicgKwot
ICAgICd9XG4nOwotICAgIHZhciB2ZXJ0U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRF
WF9TSEFERVIpOwotICAgIGdsLnNoYWRlclNvdXJjZSh2ZXJ0U2hhZGVyLCBiYXNlVmVydFNoYWRl
cik7Ci0gICAgZ2wuY29tcGlsZVNoYWRlcih2ZXJ0U2hhZGVyKTsKLSAgICBzaG91bGRCZSgnZ2wu
Z2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVl
Jyk7Ci0gICAgdmFyIGZyYWdTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hB
REVSKTsKLSAgICBnbC5zaGFkZXJTb3VyY2UoZnJhZ1NoYWRlciwgYmFzZUZyYWdTaGFkZXIpOwot
ICAgIGdsLmNvbXBpbGVTaGFkZXIoZnJhZ1NoYWRlcik7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFNo
YWRlclBhcmFtZXRlcihmcmFnU2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUyknLCAndHJ1ZScpOwot
ICAgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICAgIGdsLmF0dGFjaFNoYWRl
cihwcm9ncmFtLCB2ZXJ0U2hhZGVyKTsKLSAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJh
Z1NoYWRlcik7Ci0gICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmUoJ2ds
LmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywndHJ1ZScpOwot
ICAgIHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW0sICJ2ZXJ0ZXhDb2xv
ciIpJywgJy0xJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3Jh
bSwgIm1vZGVsVmlld01hdHJpeCIpJywgJy0xJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdE
YXRhTG9jYXRpb24ocHJvZ3JhbSwgInByb2plY3Rpb25NYXRyaXgiKScsICctMScpOwotICAgIHNo
b3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dyYW0sICJwb3NpdGlvbiIpJywgJy0x
Jyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgImZyYWdD
b2xvciIpJywgJzAnKTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRBY3Rp
dmVVbmlmb3JtcyIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9n
cmFtKGdsKTsKLSAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKLSAgICBzaG91bGRCZSgnZ2wu
Z2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwot
ICAgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7CisgICAgICBkZWJ1
ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRJbmRleGVkUGFyYW1ldGVyIik7CisgICAgICB3
aW5kb3cuYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgICBnbC5iaW5kQnVmZmVyKGds
LlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIGJ1ZmZlcik7CisgICAgICBnbC5idWZmZXJEYXRh
KGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDY0LCBnbC5EWU5BTUlDX0RSQVcpOworICAg
ICAgZ2wuYmluZEJ1ZmZlclJhbmdlKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDAsIGJ1
ZmZlciwgNCwgOCk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFtZXRlcihnbC5U
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDApJywgJ2J1ZmZlcicpOworICAgICAg
c2hvdWxkQmUoJ2dsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9TSVpFLCAwKScsICc4Jyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0SW5kZXhlZFBhcmFt
ZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJULCAwKScsICc0Jyk7CisgICAg
ICB3aW5kb3cuYnVmZmVyMSA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgZ2wuYmluZEJ1ZmZl
cihnbC5VTklGT1JNX0JVRkZFUiwgYnVmZmVyMSk7CisgICAgICBnbC5idWZmZXJEYXRhKGdsLlVO
SUZPUk1fQlVGRkVSLCA2NCwgZ2wuRFlOQU1JQ19EUkFXKTsKKyAgICAgIHdpbmRvdy5vZmZzZXRV
bmlmb3JtID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1F
TlQpOworICAgICAgZ2wuYmluZEJ1ZmZlclJhbmdlKGdsLlVOSUZPUk1fQlVGRkVSLCAxLCBidWZm
ZXIxLCBvZmZzZXRVbmlmb3JtLCA4KTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFy
YW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpJywgJ2J1ZmZlcjEnKTsKKyAgICAg
IHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX1NJWkUs
IDEpJywgJzgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlVO
SUZPUk1fQlVGRkVSX1NUQVJULCAxKScsICdvZmZzZXRVbmlmb3JtJyk7CiAKLSAgICB2YXIgbnVt
QWN0aXZlVW5pZm9ybXMgPSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkFDVElW
RV9VTklGT1JNUyk7Ci0gICAgdmFyIGJsb2NrSW5kZXggPSBnbC5nZXRVbmlmb3JtQmxvY2tJbmRl
eChwcm9ncmFtLCAiVHJhbnNmb3JtIik7Ci0gICAgdmFyIHVuaWZvcm1JbmRpY2VzID0gW107Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1BY3RpdmVVbmlmb3JtczsgaSsrKQotICAgICAgdW5p
Zm9ybUluZGljZXMucHVzaChpKTsKLSAgICB2YXIgdHlwZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jt
cyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9UWVBFKTsKLSAgICB2YXIgc2l6
ZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5J
Rk9STV9TSVpFKTsKLSAgICB2YXIgYmxvY2tJbmRpY2VzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMo
cHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fQkxPQ0tfSU5ERVgpOwotICAgIHZh
ciBvZmZzZXRzID0gZ2wuZ2V0QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMs
IGdsLlVOSUZPUk1fT0ZGU0VUKTsKLSAgICB2YXIgYXJyYXlTdHJpZGVzID0gZ2wuZ2V0QWN0aXZl
VW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fQVJSQVlfU1RSSURF
KTsKLSAgICB2YXIgbWF0cml4U3RyaWRlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0s
IHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX01BVFJJWF9TVFJJREUpOwotICAgIHZhciByb3dN
YWpvcnMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wu
VU5JRk9STV9JU19ST1dfTUFKT1IpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtQWN0aXZl
VW5pZm9ybXM7IGkrKykgewotICAgICAgaWYgKHR5cGVzW2ldICE9IGdsLkZMT0FUX01BVDQgJiYg
dHlwZXNbaV0gIT0gZ2wuRkxPQVRfTUFUMykKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQg
dmFsdWU6IEdMX0ZMT0FUX01BVDQgb3IgR0xfRkxPQVRfTUFUMyIgKyAiIGFjdHVhbCB2YWx1ZSBm
b3IgVU5JRk9STV9UWVBFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHd0dS5nbEVu
dW1Ub1N0cmluZyhnbCwgdHlwZXNbaV0pKTsKLSAgICAgIGlmIChzaXplc1tpXSAhPSAxKQotICAg
ICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMSIgKyAiIGFjdHVhbCB2YWx1ZSBmb3Ig
VU5JRk9STV9TSVpFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHNpemVzW2ldKTsK
LSAgICAgIGlmIChibG9ja0luZGljZXNbaV0gIT0gYmxvY2tJbmRleCkKLSAgICAgICAgdGVzdEZh
aWxlZCgiZXhwZWN0ZWQgdmFsdWU6IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fQkxP
Q0tfSU5ERVggZm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgYmxvY2tJbmRpY2VzW2ld
KTsKLSAgICAgIGlmIChvZmZzZXRzW2ldIDwgMCkKLSAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0
ZWQgdmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9PRkZTRVQgZm9yIHVu
aWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgb2Zmc2V0c1tpXSk7Ci0gICAgICBpZiAoYXJyYXlT
dHJpZGVzW2ldICE9IDApCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAwIiAr
ICIgYWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX0FSUkFZX1NUUklERSBmb3IgdW5pZm9ybSBpbmRl
eFsiICsgaSArICJdOiIgKyBhcnJheVN0cmlkZXNbaV0pOwotICAgICAgaWYgKG1hdHJpeFN0cmlk
ZXNbaV0gPCAwKQotICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZSA+PSAwIiArICIg
YWN0dWFsIHZhbHVlIGZvciBVTklGT1JNX01BVFJJWF9TVFJJREUgZm9yIHVuaWZvcm0gaW5kZXhb
IiArIGkgKyAiXToiICsgbWF0cml4U3RyaWRlc1tpXSk7Ci0gICAgICBzaG91bGRCZSgndHlwZW9m
IHJvd01ham9yc1tpXScsICciYm9vbGVhbiInKTsKLSAgICAgIGlmIChyb3dNYWpvcnNbaV0gIT0g
ZmFsc2UpCi0gICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlOiAwIiArICIgYWN0dWFs
IHZhbHVlIGZvciBVTklGT1JNX0lTX1JPV19NQUpPUiBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSAr
ICJdOiIgKyByb3dNYWpvcnNbaV0pOwotICAgIH0KKyAgICAgIGdsLmJpbmRCdWZmZXJCYXNlKGds
LlVOSUZPUk1fQlVGRkVSLCAxLCBudWxsKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRJbmRleGVk
UGFyYW1ldGVyKGdsLlVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpJywgJ251bGwnKTsKIAotICAg
IHZhciB2YWxpZEFycmF5Rm9yUG5hbWUgPSBuZXcgQXJyYXkoCi0gICAgICAgIGdsLlVOSUZPUk1f
VFlQRSwKLSAgICAgICAgZ2wuVU5JRk9STV9TSVpFLAotICAgICAgICBnbC5VTklGT1JNX0JMT0NL
X0lOREVYLAotICAgICAgICBnbC5VTklGT1JNX09GRlNFVCwKLSAgICAgICAgZ2wuVU5JRk9STV9B
UlJBWV9TVFJJREUsCi0gICAgICAgIGdsLlVOSUZPUk1fTUFUUklYX1NUUklERSwKLSAgICAgICAg
Z2wuVU5JRk9STV9JU19ST1dfTUFKT1IKLSAgICApOwotICAgIHRlc3RJbnZhbGlkQXJndW1lbnQo
Ci0gICAgICAgICJnZXRBY3RpdmVVbmlmb3JtcyIsCi0gICAgICAgICJwbmFtZSIsCi0gICAgICAg
IHZhbGlkQXJyYXlGb3JQbmFtZSwKLSAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKLSAgICAgICAg
ICAgIHJldHVybiBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywg
cG5hbWUpOwotICAgICAgICB9Ci0gICAgKTsKKyAgICAgIGxldCB2YWxpZEFycmF5Rm9yVGFyZ2V0
ID0gbmV3IEFycmF5KAorICAgICAgICAgIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklO
RElORywKKyAgICAgICAgICBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkUsCisgICAg
ICAgICAgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCwKKyAgICAgICAgICBnbC5V
TklGT1JNX0JVRkZFUl9CSU5ESU5HLAorICAgICAgICAgIGdsLlVOSUZPUk1fQlVGRkVSX1NJWkUs
CisgICAgICAgICAgZ2wuVU5JRk9STV9CVUZGRVJfU1RBUlQKKyAgICAgICk7CisgICAgICBhd2Fp
dCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRJbmRleGVkUGFyYW1ldGVyIiwK
KyAgICAgICAgICAidGFyZ2V0IiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9yVGFyZ2V0LAorICAg
ICAgICAgIGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0SW5k
ZXhlZFBhcmFtZXRlcih0YXJnZXQsIDApOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0g
ICAgZGVidWcoIlRlc3QgZ2V0VW5pZm9ybUJsb2NrSW5kZXgiKTsKLSAgICB2YXIgcHJvZ3JhbSA9
IHd0dS5sb2FkVW5pZm9ybUJsb2NrUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlua1Byb2dyYW0ocHJv
Z3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0s
IGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRl
eChwcm9ncmFtLCAiVHJhbnNmb3JtIiknLCAnMCcpOwotICAgIHNob3VsZEJlKCdnbC5nZXRVbmlm
b3JtQmxvY2tJbmRleChwcm9ncmFtLCAidV9tb2RlbFZpZXdNYXRyaXgiKScsICdnbC5JTlZBTElE
X0lOREVYJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KHByb2dyYW0s
ICJub3JtYWwiKScsICdnbC5JTlZBTElEX0lOREVYJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVu
aWZvcm1CbG9ja0luZGV4KHByb2dyYW0sICJ1X25vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5ERVgn
KTsKLSAgICB2YXIgbm9Vbmlmb3JtUHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGds
KTsKLSAgICBnbC5saW5rUHJvZ3JhbShub1VuaWZvcm1Qcm9ncmFtKTsKLSAgICBzaG91bGRCZVRy
dWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIobm9Vbmlmb3JtUHJvZ3JhbSwgZ2wuTElOS19TVEFU
VVMpJyk7Ci0gICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KG5vVW5pZm9ybVBy
b2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKScsICdnbC5JTlZBTElEX0lOREVYJyk7Ci0g
ICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KG5vVW5pZm9ybVByb2dyYW0sICJ1
X25vcm1hbCIpJywgJ2dsLklOVkFMSURfSU5ERVgnKTsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAg
IGRlYnVnKCJUZXN0IGdldFNhbXBsZXJQYXJhbWV0ZXIiKTsKKyAgICAgIHdpbmRvdy5zYW1wbGVy
ID0gZ2wuY3JlYXRlU2FtcGxlcigpOworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRlcmkoc2FtcGxl
ciwgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMsIGdsLkxFUVVBTCk7CisgICAgICBnbC5zYW1wbGVy
UGFyYW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX0NPTVBBUkVfTU9ERSwgZ2wuQ09NUEFSRV9S
RUZfVE9fVEVYVFVSRSk7CisgICAgICBnbC5zYW1wbGVyUGFyYW1ldGVyaShzYW1wbGVyLCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgZ2wuc2FtcGxlclBhcmFtZXRl
cmYoc2FtcGxlciwgZ2wuVEVYVFVSRV9NQVhfTE9ELCAxMCk7CisgICAgICBnbC5zYW1wbGVyUGFy
YW1ldGVyaShzYW1wbGVyLCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAg
ICAgZ2wuc2FtcGxlclBhcmFtZXRlcmYoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5fTE9ELCAwKTsK
KyAgICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9SLCBn
bC5DTEFNUF9UT19FREdFKTsKKyAgICAgIGdsLnNhbXBsZXJQYXJhbWV0ZXJpKHNhbXBsZXIsIGds
LlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICAgIGdsLnNhbXBsZXJQYXJh
bWV0ZXJpKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAg
ICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVf
Q09NUEFSRV9GVU5DKScsICdnbC5MRVFVQUwnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1w
bGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfQ09NUEFSRV9NT0RFKScsICdnbC5DT01Q
QVJFX1JFRl9UT19URVhUVVJFJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFt
ZXRlcihzYW1wbGVyLCBnbC5URVhUVVJFX01BR19GSUxURVIpJywgJ2dsLk5FQVJFU1QnKTsKKyAg
ICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVf
TUFYX0xPRCknLCAnMTAnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFyYW1ldGVy
KHNhbXBsZXIsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiknLCAnZ2wuTkVBUkVTVCcpOworICAgICAg
c2hvdWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9NSU5f
TE9EKScsICcwJyk7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1w
bGVyLCBnbC5URVhUVVJFX1dSQVBfUiknLCAnZ2wuQ0xBTVBfVE9fRURHRScpOworICAgICAgc2hv
dWxkQmUoJ2dsLmdldFNhbXBsZXJQYXJhbWV0ZXIoc2FtcGxlciwgZ2wuVEVYVFVSRV9XUkFQX1Mp
JywgJ2dsLkNMQU1QX1RPX0VER0UnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRTYW1wbGVyUGFy
YW1ldGVyKHNhbXBsZXIsIGdsLlRFWFRVUkVfV1JBUF9UKScsICdnbC5DTEFNUF9UT19FREdFJyk7
CisgICAgICBsZXQgdmFsaWRBcnJheUZvclNhbXBsZXJQYXJhbWV0ZXIgPSBuZXcgQXJyYXkoCisg
ICAgICAgICAgZ2wuVEVYVFVSRV9DT01QQVJFX0ZVTkMsCisgICAgICAgICAgZ2wuVEVYVFVSRV9D
T01QQVJFX01PREUsCisgICAgICAgICAgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLAorICAgICAgICAg
IGdsLlRFWFRVUkVfTUFYX0xPRCwKKyAgICAgICAgICBnbC5URVhUVVJFX01JTl9GSUxURVIsCisg
ICAgICAgICAgZ2wuVEVYVFVSRV9NSU5fTE9ELAorICAgICAgICAgIGdsLlRFWFRVUkVfV1JBUF9S
LAorICAgICAgICAgIGdsLlRFWFRVUkVfV1JBUF9TLAorICAgICAgICAgIGdsLlRFWFRVUkVfV1JB
UF9UCisgICAgICApOworICAgICAgYXdhaXQgdGVzdEludmFsaWRBcmd1bWVudCgKKyAgICAgICAg
ICAiZ2V0U2FtcGxlclBhcmFtZXRlciIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICB2
YWxpZEFycmF5Rm9yU2FtcGxlclBhcmFtZXRlciwKKyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkg
eworICAgICAgICAgICAgICByZXR1cm4gZ2wuZ2V0U2FtcGxlclBhcmFtZXRlcihzYW1wbGVyLCBw
bmFtZSk7CisgICAgICB9KTsKIAotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBnZXRB
Y3RpdmVVbmlmb3JtQmxvY2tOYW1lIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUubG9hZFVuaWZv
cm1CbG9ja1Byb2dyYW0oZ2wpOwotICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOwotICAgIHNo
b3VsZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UyknKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9j
a05hbWUocHJvZ3JhbSwgMCknLCAnVHJhbnNmb3JtJyk7Ci0gICAgc2hvdWxkQmVOdWxsKCdnbC5n
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIC0xKScpOwotICAgIHd0dS5nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0
QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShwcm9ncmFtLCAxKScpOwotICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwotICAgIHNob3VsZEJlTnVsbCgnZ2wuZ2V0QWN0
aXZlVW5pZm9ybUJsb2NrTmFtZShwcm9ncmFtLCBnbC5JTlZBTElEX0lOREVYKScpOwotICAgIHd0
dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwotICAgIHZhciBub0xpbmtQ
cm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwotICAgIHNob3VsZEJlRmFsc2UoJ2dsLmdldFBy
b2dyYW1QYXJhbWV0ZXIobm9MaW5rUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7Ci0gICAgd3R1
LnNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICdnbC5nZXRB
Y3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vTGlua1Byb2dyYW0sIDApJyk7Ci0gICAgdmFyIG5vVW5p
Zm9ybVByb2dyYW0gPSB3dHUubG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7Ci0gICAgZ2wubGlua1By
b2dyYW0obm9Vbmlmb3JtUHJvZ3JhbSk7Ci0gICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFt
UGFyYW1ldGVyKG5vVW5pZm9ybVByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOwotICAgIHNob3Vs
ZEJlTnVsbCgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShub1VuaWZvcm1Qcm9ncmFtLCAt
MSknKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKLSAg
ICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlmb3JtUHJv
Z3JhbSwgMCknKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVF
KTsKLSAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlm
b3JtUHJvZ3JhbSwgZ2wuSU5WQUxJRF9JTkRFWCknKTsKLSAgICB3dHUuZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVnKCJU
ZXN0IGdldFN5bmNQYXJhbWV0ZXIiKTsKKyAgICAgIHdpbmRvdy5zeW5jID0gZ2wuZmVuY2VTeW5j
KGdsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFLCAwKTsKKyAgICAgIHNob3VsZEJlKCdnbC5n
ZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLk9CSkVDVF9UWVBFKScsICdnbC5TWU5DX0ZFTkNFJyk7
CisgICAgICBsZXQgc3luY19zdGF0dXMgPSBnbC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZ
TkNfU1RBVFVTKTsKKyAgICAgIHN3aXRjaCAoc3luY19zdGF0dXMpIHsKKyAgICAgICAgY2FzZSBn
bC5VTlNJR05BTEVEOgorICAgICAgICAgIHRlc3RQYXNzZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIo
c3luYywgZ2wuU1lOQ19DT05ESVRJT04pIGlzIGdsLlVOU0lHTkFMRUQnKTsKKyAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBnbC5TSUdOQUxFRDoKKyAgICAgICAgICB0ZXN0UGFzc2VkKCdn
bC5nZXRTeW5jUGFyYW1ldGVyKHN5bmMsIGdsLlNZTkNfQ09ORElUSU9OKSBpcyBnbC5TSUdOQUxF
RCcpOworICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHRlc3RG
YWlsZWQoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04pIHdhcyAn
ICsgc3luY19zdGF0dXMgKworICAgICAgICAgICAgICAgICAgICAgJywgZXhwZWN0ZWQgZ2wuVU5T
SUdOQUxFRCBvciBnbC5TSUdOQUxFRCcpOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorICAg
ICAgc2hvdWxkQmUoJ2dsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuU1lOQ19DT05ESVRJT04p
JywgJ2dsLlNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFJyk7CisgICAgICBzaG91bGRCZSgnZ2wu
Z2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5TWU5DX0ZMQUdTKScsICcwJyk7CisgICAgICBsZXQg
dmFsaWRBcnJheUZvclN5bmNQYXJhbWV0ZXIgPSBuZXcgQXJyYXkoCisgICAgICAgICAgZ2wuT0JK
RUNUX1RZUEUsCisgICAgICAgICAgZ2wuU1lOQ19TVEFUVVMsCisgICAgICAgICAgZ2wuU1lOQ19D
T05ESVRJT04sCisgICAgICAgICAgZ2wuU1lOQ19GTEFHUworICAgICAgKTsKKyAgICAgIGF3YWl0
IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldFN5bmNQYXJhbWV0ZXIiLAorICAg
ICAgICAgICJwbmFtZSIsCisgICAgICAgICAgdmFsaWRBcnJheUZvclN5bmNQYXJhbWV0ZXIsCisg
ICAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGdsLmdldFN5
bmNQYXJhbWV0ZXIoc3luYywgcG5hbWUpOworICAgICAgfSk7CiAKLSAgICBkZWJ1ZygiIik7Ci0g
ICAgZGVidWcoIlRlc3QgZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIik7Ci0gICAgdmFy
IHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1Byb2dyYW0oZ2wpOwotICAgIGdsLmxpbmtQ
cm9ncmFtKHByb2dyYW0pOwotICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZl
VW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklORElO
RyknLCAnMCcpOwotICAgIGdsLnVuaWZvcm1CbG9ja0JpbmRpbmcocHJvZ3JhbSwgMCwgMSk7Ci0g
ICAgc2hvdWxkQmUoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFtLCAw
LCBnbC5VTklGT1JNX0JMT0NLX0JJTkRJTkcpJywgJzEnKTsKLSAgICAvLyBUaGUgYWN0dWFsIGJs
b2NrIGRhdGEgc2l6ZSBjYW4gYmUgYmlnZ2VyIHRoYW4gMTY0LCBkZXBlbmRpbmcgb24gdGhlIHVu
aWZvcm0gYmxvY2sgbGF5b3V0LgotICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlVW5pZm9y
bUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfREFUQV9TSVpFKSA+
PSAxNjQnKTsKLSAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVy
KHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1TKScsICczJyk7Ci0g
ICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3Jh
bSwgMCwgZ2wuVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVIpJyk7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dy
YW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIpJyk7
Ci0gICAgdmFyIGluZGljZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJv
Z3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTKTsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgaWYgKGluZGljZXNbaV0gPCAwKQot
ICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2YWx1ZSA+PSAwIiArICIgYWN0dWFsIHZhbHVl
IGZvciBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lORElDRVMgZm9yIHVuaWZvcm0gaW5k
ZXhbIiArIGkgKyAiXToiICsgaW5kaWNlc1tpXSk7Ci0gICAgfQotICAgIHZhciB2YWxpZEFycmF5
Rm9yUG5hbWUgPSBuZXcgQXJyYXkoCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfQklORElORywK
LSAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19EQVRBX1NJWkUsCi0gICAgICAgIGdsLlVOSUZPUk1f
QkxPQ0tfQUNUSVZFX1VOSUZPUk1TLAotICAgICAgICBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9V
TklGT1JNX0lORElDRVMsCi0gICAgICAgIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9W
RVJURVhfU0hBREVSLAotICAgICAgICBnbC5VTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllfRlJB
R01FTlRfU0hBREVSCi0gICAgKTsKLSAgICB0ZXN0SW52YWxpZEFyZ3VtZW50KAotICAgICAgICAi
Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIiwKLSAgICAgICAgInBuYW1lIiwKLSAgICAg
ICAgdmFsaWRBcnJheUZvclBuYW1lLAotICAgICAgICBmdW5jdGlvbihwbmFtZSkgewotICAgICAg
ICAgICAgcmV0dXJuIGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFtLCAw
LCBwbmFtZSk7Ci0gICAgICAgIH0KLSAgICApOwotfQorICAgICAgZGVidWcoIiIpOworICAgICAg
ZGVidWcoIlRlc3QgZ2V0UXVlcnlQYXJhbWV0ZXIiKTsKKyAgICAgIHdpbmRvdy5xdWVyeSA9IGds
LmNyZWF0ZVF1ZXJ5KCk7CisgICAgICBnbC5iZWdpblF1ZXJ5KGdsLlRSQU5TRk9STV9GRUVEQkFD
S19QUklNSVRJVkVTX1dSSVRURU4sIHF1ZXJ5KTsKKyAgICAgIGdsLmVuZFF1ZXJ5KGdsLlRSQU5T
Rk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4pOworICAgICAgc2hvdWxkQmUoJ2dsLmdl
dFF1ZXJ5UGFyYW1ldGVyKHF1ZXJ5LCBnbC5RVUVSWV9SRVNVTFRfQVZBSUxBQkxFKScsICdmYWxz
ZScpOworICAgICAgLy8gUXVlcmllcycgcmVzdWx0cyBhcmUgdGVzdGVkIGVsc2V3aGVyZSBpbiB0
aGUgY29uZm9ybWFuY2Ugc3VpdGUuIEl0J3MgY29tcGxpY2F0ZWQKKyAgICAgIC8vIHRvIHdhaXQg
Zm9yIHRoaXMgcXVlcnkncyByZXN1bHQgdG8gYmVjb21lIGF2YWlsYWJsZSBhbmQgdmVyaWZ5IGl0
LgorICAgICAgbGV0IHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKKyAgICAgICAgICBn
bC5RVUVSWV9SRVNVTFQsCisgICAgICAgICAgZ2wuUVVFUllfUkVTVUxUX0FWQUlMQUJMRQorICAg
ICAgKTsKKyAgICAgIGF3YWl0IHRlc3RJbnZhbGlkQXJndW1lbnQoCisgICAgICAgICAgImdldFF1
ZXJ5UGFyYW1ldGVyIiwKKyAgICAgICAgICAicG5hbWUiLAorICAgICAgICAgIHZhbGlkQXJyYXlG
b3JQbmFtZSwKKyAgICAgICAgICBmdW5jdGlvbihwbmFtZSkgeworICAgICAgICAgICAgICByZXR1
cm4gZ2wuZ2V0UXVlcnlQYXJhbWV0ZXIocXVlcnksIHBuYW1lKTsKKyAgICAgICAgICB9CisgICAg
ICApOworCisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiVGVzdCBnZXRGcmFnRGF0YUxv
Y2F0aW9uIik7CisgICAgICBsZXQgYmFzZVZlcnRTaGFkZXIgPSAnJyArCisgICAgICAnI3ZlcnNp
b24gMzAwIGVzXG4nICsKKyAgICAgICd1bmlmb3JtIG1hdDQgbW9kZWxWaWV3TWF0cml4O1xuJyAr
CisgICAgICAndW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7XG4nICsKKyAgICAgICdpbiB2
ZWM0IHZlcnRleDtcbicgKworICAgICAgJ291dCB2ZWM0IHBvc2l0aW9uO1xuJyArCisgICAgICAn
dm9pZCBtYWluICh2b2lkKVxuJyArCisgICAgICAne1xuJyArCisgICAgICAnICAgICAgIHBvc2l0
aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVydGV4O1xuJyArCisgICAgICAnICAgICAgIGdsX1Bv
c2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHBvc2l0aW9uO1xuJyArCisgICAgICAnfVxuJzsK
KyAgICAgIGxldCBiYXNlRnJhZ1NoYWRlciA9ICcnICsKKyAgICAgICcjdmVyc2lvbiAzMDAgZXNc
bicgKworICAgICAgJ2luIGxvd3AgdmVjNCBwb3NpdGlvbjtcbicgKworICAgICAgJ2xheW91dChs
b2NhdGlvbiA9IDApIG91dCBtZWRpdW1wIHZlYzQgZnJhZ0NvbG9yO1xuJyArCisgICAgICAndm9p
ZCBtYWluICh2b2lkKVxuJyArCisgICAgICAne1xuJyArCisgICAgICAnICAgICAgIGZyYWdDb2xv
ciA9IHBvc2l0aW9uO1xuJyArCisgICAgICAnfVxuJzsKKyAgICAgIHdpbmRvdy52ZXJ0U2hhZGVy
ID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOworICAgICAgZ2wuc2hhZGVyU291
cmNlKHZlcnRTaGFkZXIsIGJhc2VWZXJ0U2hhZGVyKTsKKyAgICAgIGdsLmNvbXBpbGVTaGFkZXIo
dmVydFNoYWRlcik7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRT
aGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CisgICAgICB3aW5kb3cuZnJhZ1No
YWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOworICAgICAgZ2wuc2hh
ZGVyU291cmNlKGZyYWdTaGFkZXIsIGJhc2VGcmFnU2hhZGVyKTsKKyAgICAgIGdsLmNvbXBpbGVT
aGFkZXIoZnJhZ1NoYWRlcik7CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVy
KGZyYWdTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKScsICd0cnVlJyk7CisgICAgICB3aW5kb3cu
cHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihwcm9n
cmFtLCB2ZXJ0U2hhZGVyKTsKKyAgICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmcmFnU2hh
ZGVyKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworICAgICAgc2hvdWxkQmUoJ2ds
LmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJywndHJ1ZScpOwor
ICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInZlcnRleENv
bG9yIiknLCAnLTEnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHBy
b2dyYW0sICJtb2RlbFZpZXdNYXRyaXgiKScsICctMScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdl
dEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInByb2plY3Rpb25NYXRyaXgiKScsICctMScpOwor
ICAgICAgc2hvdWxkQmUoJ2dsLmdldEZyYWdEYXRhTG9jYXRpb24ocHJvZ3JhbSwgInBvc2l0aW9u
IiknLCAnLTEnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRGcmFnRGF0YUxvY2F0aW9uKHByb2dy
YW0sICJmcmFnQ29sb3IiKScsICcwJyk7CisKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGRlYnVn
KCJUZXN0IGdldEFjdGl2ZVVuaWZvcm1zIik7CisgICAgICBwcm9ncmFtID0gd3R1LmxvYWRVbmlm
b3JtQmxvY2tQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pOworICAg
ICAgc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFU
VVMpJywgJ3RydWUnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VS
Uk9SJyk7CisKKyAgICAgIGxldCBudW1BY3RpdmVVbmlmb3JtcyA9IGdsLmdldFByb2dyYW1QYXJh
bWV0ZXIocHJvZ3JhbSwgZ2wuQUNUSVZFX1VOSUZPUk1TKTsKKyAgICAgIGxldCBibG9ja0luZGV4
ID0gZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgIlRyYW5zZm9ybSIpOworICAgICAg
bGV0IHVuaWZvcm1JbmRpY2VzID0gW107CisgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUFj
dGl2ZVVuaWZvcm1zOyBpKyspCisgICAgICAgIHVuaWZvcm1JbmRpY2VzLnB1c2goaSk7CisgICAg
ICBsZXQgdHlwZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNl
cywgZ2wuVU5JRk9STV9UWVBFKTsKKyAgICAgIGxldCBzaXplcyA9IGdsLmdldEFjdGl2ZVVuaWZv
cm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBnbC5VTklGT1JNX1NJWkUpOworICAgICAgbGV0
IGJsb2NrSW5kaWNlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRp
Y2VzLCBnbC5VTklGT1JNX0JMT0NLX0lOREVYKTsKKyAgICAgIGxldCBvZmZzZXRzID0gZ2wuZ2V0
QWN0aXZlVW5pZm9ybXMocHJvZ3JhbSwgdW5pZm9ybUluZGljZXMsIGdsLlVOSUZPUk1fT0ZGU0VU
KTsKKyAgICAgIGxldCBhcnJheVN0cmlkZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFt
LCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9BUlJBWV9TVFJJREUpOworICAgICAgbGV0IG1h
dHJpeFN0cmlkZXMgPSBnbC5nZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNl
cywgZ2wuVU5JRk9STV9NQVRSSVhfU1RSSURFKTsKKyAgICAgIGxldCByb3dNYWpvcnMgPSBnbC5n
ZXRBY3RpdmVVbmlmb3Jtcyhwcm9ncmFtLCB1bmlmb3JtSW5kaWNlcywgZ2wuVU5JRk9STV9JU19S
T1dfTUFKT1IpOworICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1BY3RpdmVVbmlmb3Jtczsg
aSsrKSB7CisgICAgICAgIGlmICh0eXBlc1tpXSAhPSBnbC5GTE9BVF9NQVQ0ICYmIHR5cGVzW2ld
ICE9IGdsLkZMT0FUX01BVDMpCisgICAgICAgICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6
IEdMX0ZMT0FUX01BVDQgb3IgR0xfRkxPQVRfTUFUMyIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5J
Rk9STV9UWVBFIGZvciB1bmlmb3JtIGluZGV4WyIgKyBpICsgIl06IiArIHd0dS5nbEVudW1Ub1N0
cmluZyhnbCwgdHlwZXNbaV0pKTsKKyAgICAgICAgaWYgKHNpemVzW2ldICE9IDEpCisgICAgICAg
ICAgdGVzdEZhaWxlZCgiZXhwZWN0ZWQgdmFsdWU6IDEiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVO
SUZPUk1fU0laRSBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBzaXplc1tpXSk7Cisg
ICAgICAgIGlmIChibG9ja0luZGljZXNbaV0gIT0gYmxvY2tJbmRleCkKKyAgICAgICAgICB0ZXN0
RmFpbGVkKCJleHBlY3RlZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9C
TE9DS19JTkRFWCBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBibG9ja0luZGljZXNb
aV0pOworICAgICAgICBpZiAob2Zmc2V0c1tpXSA8IDApCisgICAgICAgICAgdGVzdEZhaWxlZCgi
ZXhwZWN0ZWQgdmFsdWUgPj0gMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9PRkZTRVQg
Zm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgb2Zmc2V0c1tpXSk7CisgICAgICAgIGlm
IChhcnJheVN0cmlkZXNbaV0gIT0gMCkKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJleHBlY3RlZCB2
YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9BUlJBWV9TVFJJREUgZm9yIHVu
aWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgYXJyYXlTdHJpZGVzW2ldKTsKKyAgICAgICAgaWYg
KG1hdHJpeFN0cmlkZXNbaV0gPCAwKQorICAgICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZh
bHVlID49IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fTUFUUklYX1NUUklERSBmb3Ig
dW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBtYXRyaXhTdHJpZGVzW2ldKTsKKyAgICAgICAg
c2hvdWxkQmUoYCIke3R5cGVvZiByb3dNYWpvcnNbaV19ImAsICciYm9vbGVhbiInKTsKKyAgICAg
ICAgaWYgKHJvd01ham9yc1tpXSAhPSBmYWxzZSkKKyAgICAgICAgICB0ZXN0RmFpbGVkKCJleHBl
Y3RlZCB2YWx1ZTogMCIgKyAiIGFjdHVhbCB2YWx1ZSBmb3IgVU5JRk9STV9JU19ST1dfTUFKT1Ig
Zm9yIHVuaWZvcm0gaW5kZXhbIiArIGkgKyAiXToiICsgcm93TWFqb3JzW2ldKTsKKyAgICAgIH0K
KworICAgICAgdmFsaWRBcnJheUZvclBuYW1lID0gbmV3IEFycmF5KAorICAgICAgICAgIGdsLlVO
SUZPUk1fVFlQRSwKKyAgICAgICAgICBnbC5VTklGT1JNX1NJWkUsCisgICAgICAgICAgZ2wuVU5J
Rk9STV9CTE9DS19JTkRFWCwKKyAgICAgICAgICBnbC5VTklGT1JNX09GRlNFVCwKKyAgICAgICAg
ICBnbC5VTklGT1JNX0FSUkFZX1NUUklERSwKKyAgICAgICAgICBnbC5VTklGT1JNX01BVFJJWF9T
VFJJREUsCisgICAgICAgICAgZ2wuVU5JRk9STV9JU19ST1dfTUFKT1IKKyAgICAgICk7CisgICAg
ICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRBY3RpdmVVbmlmb3Jt
cyIsCisgICAgICAgICAgInBuYW1lIiwKKyAgICAgICAgICB2YWxpZEFycmF5Rm9yUG5hbWUsCisg
ICAgICAgICAgZnVuY3Rpb24ocG5hbWUpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGdsLmdldEFj
dGl2ZVVuaWZvcm1zKHByb2dyYW0sIHVuaWZvcm1JbmRpY2VzLCBwbmFtZSk7CisgICAgICAgICAg
fQorICAgICAgKTsKKworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoIlRlc3QgZ2V0VW5p
Zm9ybUJsb2NrSW5kZXgiKTsKKyAgICAgIHByb2dyYW0gPSB3dHUubG9hZFVuaWZvcm1CbG9ja1By
b2dyYW0oZ2wpOworICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgICBzaG91bGRC
ZVRydWUoJ2dsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpJyk7
CisgICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgIlRyYW5z
Zm9ybSIpJywgJzAnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJbmRleChw
cm9ncmFtLCAidV9tb2RlbFZpZXdNYXRyaXgiKScsICdnbC5JTlZBTElEX0lOREVYJyk7CisgICAg
ICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbSwgIm5vcm1hbCIpJywg
J2dsLklOVkFMSURfSU5ERVgnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRVbmlmb3JtQmxvY2tJ
bmRleChwcm9ncmFtLCAidV9ub3JtYWwiKScsICdnbC5JTlZBTElEX0lOREVYJyk7CisgICAgICB3
aW5kb3cubm9Vbmlmb3JtUHJvZ3JhbSA9IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKKyAg
ICAgIGdsLmxpbmtQcm9ncmFtKG5vVW5pZm9ybVByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVl
KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKG5vVW5pZm9ybVByb2dyYW0sIGdsLkxJTktfU1RBVFVT
KScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldFVuaWZvcm1CbG9ja0luZGV4KG5vVW5pZm9ybVBy
b2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKScsICdnbC5JTlZBTElEX0lOREVYJyk7Cisg
ICAgICBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybUJsb2NrSW5kZXgobm9Vbmlmb3JtUHJvZ3JhbSwg
InVfbm9ybWFsIiknLCAnZ2wuSU5WQUxJRF9JTkRFWCcpOworCisgICAgICBkZWJ1ZygiIik7Cisg
ICAgICBkZWJ1ZygiVGVzdCBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lIik7CisgICAgICBwcm9n
cmFtID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9n
cmFtKHByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIDApJywgJ1RyYW5zZm9ybScp
OworICAgICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dy
YW0sIC0xKScpOworICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxV
RSk7CisgICAgICBzaG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUocHJv
Z3JhbSwgMSknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFM
VUUpOworICAgICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHBy
b2dyYW0sIGdsLklOVkFMSURfSU5ERVgpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX1ZBTFVFKTsKKyAgICAgIHdpbmRvdy5ub0xpbmtQcm9ncmFtID0gZ2wuY3Jl
YXRlUHJvZ3JhbSgpOworICAgICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRl
cihub0xpbmtQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknKTsKKyAgICAgIHd0dS5zaG91bGRHZW5l
cmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAnZ2wuZ2V0QWN0aXZlVW5pZm9y
bUJsb2NrTmFtZShub0xpbmtQcm9ncmFtLCAwKScpOworICAgICAgbm9Vbmlmb3JtUHJvZ3JhbSA9
IHd0dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFtKG5vVW5p
Zm9ybVByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KG5vVW5pZm9ybVByb2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgc2hvdWxkQmVOdWxs
KCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vVW5pZm9ybVByb2dyYW0sIC0xKScpOwor
ICAgICAgd3R1LmdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7CisgICAgICBz
aG91bGRCZU51bGwoJ2dsLmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUobm9Vbmlmb3JtUHJvZ3Jh
bSwgMCknKTsKKyAgICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUp
OworICAgICAgc2hvdWxkQmVOdWxsKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKG5vVW5p
Zm9ybVByb2dyYW0sIGdsLklOVkFMSURfSU5ERVgpJyk7CisgICAgICB3dHUuZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFKTsKKworICAgICAgZGVidWcoIiIpOworICAgICAgZGVi
dWcoIlRlc3QgZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIik7CisgICAgICBwcm9ncmFt
ID0gd3R1LmxvYWRVbmlmb3JtQmxvY2tQcm9ncmFtKGdsKTsKKyAgICAgIGdsLmxpbmtQcm9ncmFt
KHByb2dyYW0pOworICAgICAgc2hvdWxkQmVUcnVlKCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKScpOworICAgICAgc2hvdWxkQmUoJ2dsLmdldEFjdGl2ZVVu
aWZvcm1CbG9ja1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0JJTkRJTkcp
JywgJzAnKTsKKyAgICAgIGdsLnVuaWZvcm1CbG9ja0JpbmRpbmcocHJvZ3JhbSwgMCwgMSk7Cisg
ICAgICBzaG91bGRCZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0s
IDAsIGdsLlVOSUZPUk1fQkxPQ0tfQklORElORyknLCAnMScpOworICAgICAgLy8gVGhlIGFjdHVh
bCBibG9jayBkYXRhIHNpemUgY2FuIGJlIGJpZ2dlciB0aGFuIDE2NCwgZGVwZW5kaW5nIG9uIHRo
ZSB1bmlmb3JtIGJsb2NrIGxheW91dC4KKyAgICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZl
VW5pZm9ybUJsb2NrUGFyYW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfREFUQV9T
SVpFKSA+PSAxNjQnKTsKKyAgICAgIHNob3VsZEJlKCdnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIocHJvZ3JhbSwgMCwgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMpJywg
JzMnKTsKKyAgICAgIHNob3VsZEJlVHJ1ZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1l
dGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhfU0hB
REVSKScpOworICAgICAgc2hvdWxkQmVGYWxzZSgnZ2wuZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFy
YW1ldGVyKHByb2dyYW0sIDAsIGdsLlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVO
VF9TSEFERVIpJyk7CisgICAgICBsZXQgaW5kaWNlcyA9IGdsLmdldEFjdGl2ZVVuaWZvcm1CbG9j
a1BhcmFtZXRlcihwcm9ncmFtLCAwLCBnbC5VTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMpOworICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgaWYg
KGluZGljZXNbaV0gPCAwKQorICAgICAgICAgIHRlc3RGYWlsZWQoImV4cGVjdGVkIHZhbHVlID49
IDAiICsgIiBhY3R1YWwgdmFsdWUgZm9yIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5E
SUNFUyBmb3IgdW5pZm9ybSBpbmRleFsiICsgaSArICJdOiIgKyBpbmRpY2VzW2ldKTsKKyAgICAg
IH0KKyAgICAgIHZhbGlkQXJyYXlGb3JQbmFtZSA9IG5ldyBBcnJheSgKKyAgICAgICAgICBnbC5V
TklGT1JNX0JMT0NLX0JJTkRJTkcsCisgICAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19EQVRBX1NJ
WkUsCisgICAgICAgICAgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVMsCisgICAgICAg
ICAgZ2wuVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTLAorICAgICAgICAgIGds
LlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhfU0hBREVSLAorICAgICAgICAgIGds
LlVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIKKyAgICAgICk7Cisg
ICAgICBhd2FpdCB0ZXN0SW52YWxpZEFyZ3VtZW50KAorICAgICAgICAgICJnZXRBY3RpdmVVbmlm
b3JtQmxvY2tQYXJhbWV0ZXIiLAorICAgICAgICAgICJwbmFtZSIsCisgICAgICAgICAgdmFsaWRB
cnJheUZvclBuYW1lLAorICAgICAgICAgIGZ1bmN0aW9uKHBuYW1lKSB7CisgICAgICAgICAgICAg
IHJldHVybiBnbC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIocHJvZ3JhbSwgMCwgcG5h
bWUpOworICAgICAgICAgIH0KKyAgICAgICk7CisgIH0KKworICB3dHUuZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7CiAKLXd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKKyAgZmluaXNoVGVzdCgpOworfSkoKTsKIAotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CitsZXQgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFnZS1h
bmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90ZXN0cy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZpZGVvLmpzCmluZGV4IDZk
OTM2YjUwOTYwY2Q2Yjc4MmEyNTUxMzU3ZjRlNGU3OTY3NDgyYTkuLjE0Y2Y0NjI4YmVjMDFmNzcy
NWYwNDc4MTM1ZmIyZWU2YTE0NmEyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdl
LTJkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcwpAQCAtNzEsOCArNzEsOCBA
QCBmdW5jdGlvbiBnZW5lcmF0ZVRlc3QoaW50ZXJuYWxGb3JtYXQsIHBpeGVsRm9ybWF0LCBwaXhl
bFR5cGUsIHByb2xvZ3VlLCByZXNvdXJjZQogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZCh2aWRlbyk7CiAgICAgICAgICAgICB2aWRlby50eXBlID0gaW5mby50eXBlOwogICAg
ICAgICAgICAgdmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgICAgICAgICB3dHUuc3RhcnRQbGF5
aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBy
dW5JbWFnZUJpdG1hcFRlc3QodmlkZW8sIDEsIGludGVybmFsRm9ybWF0LCBwaXhlbEZvcm1hdCwg
cGl4ZWxUeXBlLCBnbCwgdGl1LCB3dHUsIGZhbHNlKTsKKyAgICAgICAgICAgIHd0dS5zdGFydFBs
YXlpbmdBbmRXYWl0Rm9yVmlkZW8odmlkZW8sIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIGF3YWl0IHJ1bkltYWdlQml0bWFwVGVzdCh2aWRlbywgMSwgaW50ZXJuYWxGb3JtYXQs
IHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIGdsLCB0aXUsIHd0dSwgZmFsc2UpOwogICAgICAgICAg
ICAgICAgIHJ1bk5leHRWaWRlbygpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rl
c3RzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTNkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlk
ZW8uanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy90
ZXN0cy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0zZC13aXRoLWltYWdlLWJpdG1hcC1mcm9tLXZp
ZGVvLmpzCmluZGV4IDg2ZDc2ZjI5ZGUzYjU5YzFiYWNiZDk1NjlhNjk4NjE2ODFjMzJjZWQuLmEy
NjhmN2Q4ZDU1MGU2YWY0Zjk0NWZmMGU4OTJiY2M5YTlkOTBlMjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3Rlc3RzL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTNkLXdpdGgtaW1hZ2UtYml0bWFwLWZyb20tdmlkZW8uanMKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvdGVzdHMvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtM2Qtd2l0aC1pbWFnZS1iaXRtYXAtZnJvbS12aWRlby5qcwpA
QCAtNzEsOCArNzEsOCBAQCBmdW5jdGlvbiBnZW5lcmF0ZVRlc3QoaW50ZXJuYWxGb3JtYXQsIHBp
eGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3VlLCByZXNvdXJjZQogICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CiAgICAgICAgICAgICB2aWRlby50eXBlID0g
aW5mby50eXBlOwogICAgICAgICAgICAgdmlkZW8uc3JjID0gaW5mby5zcmM7Ci0gICAgICAgICAg
ICB3dHUuc3RhcnRQbGF5aW5nQW5kV2FpdEZvclZpZGVvKHZpZGVvLCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBydW5JbWFnZUJpdG1hcFRlc3QodmlkZW8sIDEsIGludGVybmFsRm9ybWF0
LCBwaXhlbEZvcm1hdCwgcGl4ZWxUeXBlLCBnbCwgdGl1LCB3dHUsIHRydWUpOworICAgICAgICAg
ICAgd3R1LnN0YXJ0UGxheWluZ0FuZFdhaXRGb3JWaWRlbyh2aWRlbywgYXN5bmMgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgYXdhaXQgcnVuSW1hZ2VCaXRtYXBUZXN0KHZpZGVvLCAxLCBp
bnRlcm5hbEZvcm1hdCwgcGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgZ2wsIHRpdSwgd3R1LCB0cnVl
KTsKICAgICAgICAgICAgICAgICBydW5OZXh0VmlkZW8oKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvd2ViZ2wtdGVzdC11dGlscy5qcwppbmRleCA0Njg0ZWE4
MTBiZWFmOWYyN2E5MGQwZmEzOGRhNWYzNDkxMjhkZmI2Li45YWZmYTEwODIzMDQ0YjE2NDkwZTBl
MzdiZjhhYzJiM2NjOTFjNzNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy93ZWJnbC10ZXN0LXV0aWxzLmpzCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL3dlYmdsLXRlc3QtdXRpbHMu
anMKQEAgLTE3MzMsNiArMTczMywxMCBAQCB2YXIgZ2xFcnJvclNob3VsZEJlID0gZnVuY3Rpb24o
Z2wsIGdsRXJyb3JzLCBvcHRfbXNnKSB7CiAgIHJldHVybiBnbEVycm9yU2hvdWxkQmVJbXBsKGds
LCBnbEVycm9ycywgdHJ1ZSwgb3B0X21zZyk7CiB9OwogCitjb25zdCBnbEVycm9yQXNzZXJ0ID0g
ZnVuY3Rpb24oZ2wsIGdsRXJyb3JzLCBvcHRfbXNnKSB7CisgIHJldHVybiBnbEVycm9yU2hvdWxk
QmVJbXBsKGdsLCBnbEVycm9ycywgZmFsc2UsIG9wdF9tc2cpOworfTsKKwogLyoqCiAgKiBUZXN0
cyB0aGF0IHRoZSBnaXZlbiBmcmFtZWJ1ZmZlciBoYXMgYSBzcGVjaWZpYyBzdGF0dXMKICAqIEBw
YXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCB0byB1c2UuCkBAIC0yOTIzLDE0ICsyOTI3LDYgQEAgdmFyIHJlcXVlc3RBbmltRnJhbWUgPSBm
dW5jdGlvbihjYWxsYmFjaykgewogICBfcmVxdWVzdEFuaW1GcmFtZS5jYWxsKHdpbmRvdywgY2Fs
bGJhY2spOwogfTsKIAotLyoqCi0gKiBQcm92aWRlcyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrIGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuCi0gKiBSZXR1cm5zIGEgcHJvcGVydHksIG9y
IHVuZGVmaW5lZCBpZiB1bnN1cG9ydGVkLgotICovCi12YXIgZ2V0UmVxdWVzdFZpZEZyYW1lQ2Fs
bGJhY2sgPSBmdW5jdGlvbigpIHsKLSAgcmV0dXJuIEhUTUxWaWRlb0VsZW1lbnQucHJvdG90eXBl
WyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIl07Ci19OwotCiB2YXIgX2NhbmNlbEFuaW1GcmFt
ZTsKIAogLyoqCkBAIC0zMDk5LDcgKzMwOTUsMTEgQEAgdmFyIHNldFplcm9UaW1lb3V0ID0gKGZ1
bmN0aW9uKCkgewogZnVuY3Rpb24gZGlzcGF0Y2hQcm9taXNlKGZuKSB7CiAgIHJldHVybiBuZXcg
UHJvbWlzZSgoZm5fcmVzb2x2ZSwgZm5fcmVqZWN0KSA9PiB7CiAgICAgc2V0WmVyb1RpbWVvdXQo
KCkgPT4gewotICAgICAgZm5fcmVzb2x2ZShmbigpKTsKKyAgICAgIGxldCB2YWw7CisgICAgICBp
ZiAoZm4pIHsKKyAgICAgICAgdmFsID0gZm4oKTsKKyAgICAgIH0KKyAgICAgIGZuX3Jlc29sdmUo
dmFsKTsKICAgICB9KTsKICAgfSk7CiB9CkBAIC0zMTMyLDM4ICszMTMyLDMwIEBAIHZhciBydW5T
dGVwcyA9IGZ1bmN0aW9uKHN0ZXBzKSB7CiAgKiBAcGFyYW0geyFmdW5jdGlvbighSFRNTFZpZGVv
RWxlbWVudCk6IHZvaWR9IGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbgogICogICAgICAg
IHZpZGVvIGlzIHJlYWR5LgogICovCi1mdW5jdGlvbiBzdGFydFBsYXlpbmdBbmRXYWl0Rm9yVmlk
ZW8odmlkZW8sIGNhbGxiYWNrKSB7Cithc3luYyBmdW5jdGlvbiBzdGFydFBsYXlpbmdBbmRXYWl0
Rm9yVmlkZW8odmlkZW8sIGNhbGxiYWNrKSB7CiAgIGlmICh2aWRlby5lcnJvcikgewogICAgIHRl
c3RGYWlsZWQoJ1ZpZGVvIGZhaWxlZCB0byBsb2FkOiAnICsgdmlkZW8uZXJyb3IpOwogICAgIHJl
dHVybjsKICAgfQogCi0gIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAnZXJyb3InLCBl
ID0+IHsgdGVzdEZhaWxlZCgnVmlkZW8gcGxheWJhY2sgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTsg
fSwKLSAgICAgIHRydWUpOwotCi0gIHZhciBydmZjID0gZ2V0UmVxdWVzdFZpZEZyYW1lQ2FsbGJh
Y2soKTsKLSAgaWYgKHJ2ZmMgPT09IHVuZGVmaW5lZCkgewotICAgIHZhciB0aW1lV2F0Y2hlciA9
IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHZpZGVvLmN1cnJlbnRUaW1lID4gMCkgewotICAgICAg
ICBjYWxsYmFjayh2aWRlbyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXF1ZXN0QW5pbUZy
YW1lLmNhbGwod2luZG93LCB0aW1lV2F0Y2hlcik7Ci0gICAgICB9Ci0gICAgfTsKLQotICAgIHRp
bWVXYXRjaGVyKCk7Ci0gIH0gZWxzZSB7Ci0gICAgLy8gQ2FsbHMgdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjayhfID0+IHsgY2FsbGJhY2sodmlkZW8pIH0pCi0gICAgcnZmYy5jYWxsKHZp
ZGVvLCBfID0+IHsgY2FsbGJhY2sodmlkZW8pIH0pOwotICB9Ci0KICAgdmlkZW8ubG9vcCA9IHRy
dWU7CiAgIHZpZGVvLm11dGVkID0gdHJ1ZTsKICAgLy8gU2VlIHdoZXRoZXIgc2V0dGluZyB0aGUg
cHJlbG9hZCBmbGFnIGRlLWZsYWtlcyB2aWRlby1yZWxhdGVkIHRlc3RzLgogICB2aWRlby5wcmVs
b2FkID0gJ2F1dG8nOwotICB2aWRlby5wbGF5KCk7Ci19OworCisgIHRyeSB7CisgICAgYXdhaXQg
dmlkZW8ucGxheSgpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZCgndmlkZW8ucGxh
eSBmYWlsZWQ6ICcgKyBlKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjaykgeworICAgIGF3YWl0IG5ldyBQcm9taXNlKGdvID0+IHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soZ28pKTsKKyAgfQorCisgIGNhbGxiYWNrKHZpZGVv
KTsKK30KIAogdmFyIGdldEhvc3QgPSBmdW5jdGlvbih1cmwpIHsKICAgdXJsID0gdXJsLnJlcGxh
Y2UoIlxcIiwgIi8iKTsKQEAgLTM0NTMsNiArMzQ0NSw3IEBAIHZhciBBUEkgPSB7CiAgIGdldEF0
dHJpYk1hcDogZ2V0QXR0cmliTWFwLAogICBnZXRVbmlmb3JtTWFwOiBnZXRVbmlmb3JtTWFwLAog
ICBnbEVudW1Ub1N0cmluZzogZ2xFbnVtVG9TdHJpbmcsCisgIGdsRXJyb3JBc3NlcnQ6IGdsRXJy
b3JBc3NlcnQsCiAgIGdsRXJyb3JTaG91bGRCZTogZ2xFcnJvclNob3VsZEJlLAogICBnbFR5cGVU
b1R5cGVkQXJyYXlUeXBlOiBnbFR5cGVUb1R5cGVkQXJyYXlUeXBlLAogICBoYXNBdHRyaWJ1dGVD
YXNlSW5zZW5zaXRpdmU6IGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9y
ZWQtZ3JlZW4ud2VibXZwOC53ZWJtIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3JlZC1ncmVlbi53ZWJtdnA4LndlYm0KaW5kZXggMWQ5ZDYw
Mzg1Mjc0OTgwNGEyMjhiODQyZjhhNTY3YjYwYTcwMTkyOC4uZmRlNTlhMThiNGRkZTlhMTNmMzdj
M2Y0NjJhZjg4YWQ0YjBmM2MzYSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA0MTg0Cnpj
bWI2Y1lmekl7X0leUGlMNWUmQTB3UFRpTmBrPjk1WnJ7cSZQTmE+aypJYCtmVSsld0QyVE9eMnJh
dkhsSkdKaAp6dW4rPnBmR24/fHAtMmt8XilXamB3TEFueDVHbEh5U3N6clhiJDc+VmNlS0J7PU8p
MzBjNldDQSZIY1hJYk04NiEKeis8Vl5YNF9pIWpecDNzUE5nKHN7V31QaU5LQig3NCh0TTEzVFhP
a2k7d1BvPEJHWkF5VWQ9dHA8dGwoWWxLUyF6CnpkeTVIPDFAdVkwajZ3RSEzeUFwdTNAWk0rYi0j
dT4mN1FqMj0oXmY5RCFoKnM4eSZSSlUkUmF9TzRLTGdHWWIhZAp6aGk9KSoteDlKbmRMXlhuc3tO
X2VESnRUUGBWRFYpNH4pNUEmOUJ7N3AoT3xWJTsmXyV1eCNlPyQzRSs+NWVwaFoKeklqU0xBR3t8
cUxyOV4oQFYwbEB9SjFLa2tCXnFNV1ZtK1U1UWFPRjUqPmcjd1BKKjgjX19jRG57QU5LejBaeiZh
CnpQSHByJURaOGFZUURUWFBeMXYjPDw8QTwqa2R8Q0pZQ2J8JXcjSGYzdkY4UUZILVJYOFV5K3Jv
I0F1NThHRDFKVwp6Z1lxZm4td1Q5fFdpPCNQNi12IUxuekxvTTt2bk8yWmRRdCFpNkxUeWhIeWhk
IWF+Q3R0a149aXFVZUpoeGtBcHkKekdUcT5uQUNiTUVFbXVUPXFHWF9gLS1jfW9BIzUhPnZWfTF6
MWZse0ZIPVolN29+Y2JuJFFod2B7bjx8UzJTalk2Cnp6TVdPbnE+c2IxKFU2S0plVDhiJlEmejx0
VG1DUzMrM3BDZkwyNEdRcnRgN3IoNnIjN1hKQ3pAT15+fmJlfS1YUwp6blEmaH55WWpFTVdKa0tz
Y2pxME1XKFFFO05WQTEyQX5LRnlNd2pBR21YPXhXMzctPV9pVjViSzdLS0M1Knx1VmIKeiY8UkZL
ZUNVJnxgZHR4RSZVViZCZTgpT0pCVX5HTlVVZj94JnooPF5fNUg7ejwwSXY/VjUhQ1dwX3k7T2ZX
cnZ3Cnp5dDE4elJKXn5JLVFBPnN5KHx9RkFUP1lSP1dtKVJgc3F7c0p+dzlsY1IlTU94UHtNIyNV
Pl82bEhuPUgqanAlSAp6Q0BmZWdKZjdCNncocjk2djxxZVg/diFQYEVYKHZQJDNxNDB0SztgeDsk
Z2wjZ0Z0UFkxZFdVQTRuT2FYaGtfMjkKeigoK3lrJUVuNHomfiQhbVU4a3R+ekBmZ309SFotQWhU
b2VTOzdrb1RubkA0PUI9fjh8SEZXPUM5N3Q9RnxGQHg5CnpqVXtzP2YpRU1uOU1BVXwmLWFnJmBq
MEMoX0dUcWRBaDBWYjwlfXdMSkN3WH1XaDlJcCRGXlA1JEtVdU5lJS1QaQp6dTt+I1p4anYpJEtH
IzRXKCU/Qm9fK0RreWY+Tj5vJURfNVZeezdAczd8QHVWMkNsKzllVzNBPm5pXkp7WDt6RkgKel9W
c00xI3lEQzswZkR5dDgtYClWQFp5SFIkPyZNbkx+b3decTlVbXxAUz5AeSo9KXFhKF9We1VQV0kl
ZihZOH1GCnoySWFLSyhPfFU5aWQ+dVImeld1K2wmV2QzcjUyfCN1U183IXk9QWFCLUF4N052PkMo
V3Zscjx3dEkjKEc0cVomTAp6WS1uezIpOStpUnpZc2hDaio3b0Y9VXQ+XyEwZ0JEbVZlJSRWY2dH
TWh5PkdSLXRpbmVVQ2NPTVcweXJ8Yn5FZEoKemtOd0gxekt1Sjw/byM8eSpLOE0/Tzc9Ki0wKiVM
dCYzOSlZUk8pUUA8PmltcnApSjFMcks9MkBXRFE7cW8jTm42CnpANzN2dXI9TU1RaiZiQ2t6YXsy
YGdEWTFMSiNKT0AzRjdqTUx0bXdESHRNQmZ3JFR6LVV7XitWWk0yPTJJYUpEPAp6NnE5ViM4Mz5N
KiMoVTt9KGBEb0FpZ0VMTXA5SSRjN18qX2xpRDZPNk55JlEpLSVJPHI7T28hSkdWVD1JVFI0N2kK
enE1N1RtPCpXVXVRVHtyOTVRSSp0SVcrWklSb3dCR2wzaFpZI2x8PihSQUFLfGBTa0hScEtFcGdJ
fHV3Rnc+VVNSCnpeTERAQiZBUD1WQEZhPXU4TUUjTWF+fEA8dHI+SVNeMHtSQmU0K2dBdXpjVT0k
SjIoYlZQZ3JOZGtZMEM7cyp6Ywp6cFAqKGpQUGdWaUB6Y2h0ZEMwSFhCK35oKD5FMEA4SlhtMmNv
bD48dkY/QmZuRVAhJDwmb290QChOLT5MWWdpU0gKenhmTzw8aXllbjJgPGBDPHp2RmZNPmA/Zl9m
Y1N9M19eKmhjNXcxQFIjTUEmc14xXmFTUm4jbyNealBmcmx7UD9WCnpxfUZrI0lpVnktZ1hnODte
VX5udHFeTXRuJUZodz1Kam9tbmJsWlRDN2VlMjNiPklHamxXU0ozcGR2YmxEKkRvQQp6YmJySz9t
ZF5jRUN1JW9zN3lXfm9jLT91O2tocDBeUjdTdTNGI1hVKld6eHkmYko9bXghTlgleD1BKk9ya05+
TnUKei0zdkw1NkZ3M2ZwUGU+ZkQqVEEla2MzWCRhST09Nmt5IyQ7N0RjK24pQGlufWZSTEI0MjhN
K2M2VjRfUHZwZyM7CnpQPnFEZWxEeT5xTDdOYXg+fFF9akArNCVFV1Z2MkwkXlBZN3ItSDJzQ3dN
KUM/YWEqLUhKP0J5N0Qqakxebyp5TAp6cjlGJU0mXnpBa2V5VF8wSSluWShAfkkjfUo/RE1zOEBh
QlZSP0EhMFlKYW1ObXRzOUlMWDA5PFhhKFhweXMtNGUKekBfQiZaUy1le31aTU82ZkMzM0RiX1g7
bncyWEorelpkXjQmWVFpNDgqPT5AMWVUZEZEU0FfVnc+QD4qOGFYTEFICnopYmd9ZWR4VWlJQkh1
YTxzcm5mY3A9S2Q7cTlmSmdzTHZGb013VWtFSUJWWmNMbFQ9MHktN05PaTc4bVoyM34tTgp6SiZU
dGVmU2hnN3tpRjEkVGZCc0NfPklRZ2ope0VFJmJlKU1hIUNDWmVtdDFFdkBSOE8oezg/aSE/RyRu
YXchbF8KenBldExmdEYxWD02fn0yJCZWKDIte0wjbiplJmVIfTRwdD9VamhATVQmZVYlLTMzTiRm
YT5tRHRzZnxrJjlWfG40CnomIXNJTz44M2QqcHtWNTtVWlomdUl5ZkQ4ViNhI0k7fGpiKFBmeT1r
cHElNExmTzVnTUJnZkVmPlZlMjEmNGx2Pgp6OFNBeHhRXkI1blBicnV4SWIpJGd1RmVJPE9NTSlo
Qm4jfS0qMzxMZHJNfUhtMjxwYiYyNj52QGVHQ243NVZ9Nz8KekFqU3dhO0BhNSg+SVRWJFhOY31T
O0RAd2UhbTNPJCpYU3M3Nip7ek0jdFkrXiotfmlgK3ZwJCszVFRpPCN+SGglCnpxMmdkO3F0dXEh
cGlfeFdqNHI4XlpIdj8hYFM3TXYlZ1RHI3B5eUVLV2NzWUBmK2NeVW5FU1h6PkI9O0VMUSolOwp6
V2pNM3piekpCV2M4Ull3MFdRIyg0UmtIXyhnP3NnTDYkdVJCd2MhYEBZQHo4QjtDX01MTGt6akBY
RXV4TFJeIX4KejNVQH4lX3hYKH5We1U2OFhrNFcwRUB9O2dpaFc0ZVd4KklDWigwcGQpTXswO0Ff
RU05UlRWSVcmMUNCN2FSNnV6CnpSOEB2NmVOV0hSRTVxMFgzazh7OVdCb3Q5R3k8d0drYjdPZzhI
PStQcTIxNlMyN1EpVVArSCY3S0xVfFdRUTtJKAp6JUI4WlEpWXZoKm9QfX1odmY5O3RPc0lpTD9R
Q3Qmd3BMfFlYWmEyKlRla2wrWkArNCRgYz41MnV7LUhgPVl+PnsKej1YOUEzbk8wZ0kqNlYtVHl+
Ynw2X2tiJisoIWxjM1RKRT8wZFl4RzhGMDJ4OzB2YTBBRTYpa0ZUJmw2X2NLVHRpCnokNCFCS2R6
VWBGbDBFem9ZeT56SlRxYkAwVEJjRS1lbG1GMnYtdk8rRVNDcDNTKHRiVGFCI2RsamAkK3JgYlJ6
VQp6cyQqSHJgfHhWc3hwNEwpPDw5PjNiWG83dlRiKSVwak8haXglMTx2MTlpdTEwJXVwSUtfUj4/
PCVVdyNaY2ZJbjsKekghJkU5XlN+Y0FXbWxXVighcUlYQH5ZfSEpeDJJZ1pIdmUjSnxZNz1xWFdI
P0p1KjlLPndWU09JT3JsWShjcGgkCnoqdit0V054TTlpO0FAT2grPXpCaiU/cl5gU0hXeXZ2Z0wq
TFFrYEBYSVBlMDwzb3pjY2FJa08+QVUzXlRGeldTRQp6c3RQa3gmRHtZczxHNG48ZihQclJ6Kng0
dFU8OCNvMEcpWTMzezUqLU5WRGA0ZEw3VWl0cVVMdDFYdmU5NV5RN1AKemZDPXRDOFphJU1uNzx9
R0d3TX1YNUAwUFdTUTNDMTZxVz5fYndqZnh5KT8pSUxOY3wlZDJteHVAUnomN2BYVlZpCno9JU1r
WElkcXt4YisrJDZ8NWZAWVJmPFdHPXY+VHBANWdPamNTUUVncTEyc25NKWFnZWU3Y3kqd2xrR2cx
c1IpRQp6Xl5MLSpDYUdpQVg2fl5uP2hlN0RCO21MeDxudjtMWStPUiFzQn1gSmFZVEdGdTlrdXYp
O2V5eThjVUt9bjRLZVMKek44fFp7cj8oOyR0LWJEQ3AmZXkjK3IzI3EtOFNrYCt3emFsI0xTKHol
Tk52SloxJkhMWDRuZzxMZyhVQ0FDalEpCnpgNDdxaXxNc2tPTHJZcz8oc3Z9dGtzOylSP241SEdp
flJnTFBBemA+Pj1tTjljcm4+ckw5YDMzQmVXSTBMTVRxRQp6KUBwTWVeQ0tkRU0rJiFYan15bzUr
NT9HPkZxYmtDNW1jKEI8SGooUmBld3s8ZnUrPHNNPVdWIzJCKE8ob2dGTyoKenlIQSZqb2wqdUpU
fGMkTUJAO2hhRT57Z3xWbT8zZFFiVC1TPl5nWTRkYSMoN1RMcyE9dUw5VG51bk0jKlQ/SkN6CnpT
QWpJK0RzYilBKkkpc2I8VCY7ayMtTE0qNzQtV05nWEAtN2ZpNTRjMF5PKnVMSHpnTGRMM1dPQUFZ
T0BfYH5seQpKeEMtPzlAIXg2M0JhUSQ3CgpkZWx0YSA1NzcKemNtYURIeTN2P2IlSnUlQGA0ZjNH
eShBazJlUEBeS140O0FYeXQrbHliN2ZsYW4jUDM/bz48N2JZI3tITkA5ckw7CnpvS1ZRJl54IXAz
ajB6QzBPej5gP1dScGJ1OCU3MiZoQDk5TTgzOzA5Z1Z5enAmSFBSZHo3MEotaURoWX5tVTskeQp6
aDZhWT1qd29FMCZKS3NvKjxoVUBkeWNNeThlPzw0aytKd18kRmdhTFlVX15vUlpPbURSSF42TyY9
fDAqdjArdnQKejZVWSY3aTtKT1opc2hjMXFAUkZ0QndaSmB5WlNsJXlTTjZxdzQrIUJTOHRxcnBn
UzMxY0tWNCR1OFRXZExXM01iCnpKcEtKIytOVCY4U2I+bTxvfjV+PTBUP2hhJFVBUmlELUUhRS1w
SGB8cjt4UChvNz8qNU8/PCtlOWhCRnopak5GSQp6LU1faCFWU0NzMk0jaGcjakZVYnpHVmgrYXhy
dVNZX0hMTCs2WFBZMjVWSW5aNWM0ZE01WChqK0E9Vl8yNVN0XkMKejVXNXlnaTJWfGg1WFVFdzVO
OHJwczJwZng2VzF3Xzd9c1ljV2p0Vz5kNzY9Z19fQjZTKmJIPHgpVHg0KEp+WG1gCmZeemtvJkRn
dWYkRjx0PSkzN1F9WUc0QkJoMl5+Y2VWKGtTMGNVYmZ5CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0
aW9uLTAubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTAubXA0CmluZGV4IGFlN2VlZjEyNWFjZDgzMmZmZTll
ZGFmMDcxNTk0MDllNGZhMTE1NjAuLjhmNDcxMDA5Y2QzYjMzMTlkY2YwZjJjODk2OTg4MTkzZDYx
ZDk4NjQgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTUxCnpjbWNhRXV2QjF6a35qbExU
MlgyJDB8VSNDKz8yITsxX3FgRFleP3dQJnpXcV9FWFFhI0lnRDhzTlZZSlcwbTxGVwp6XjZiVnwx
e0g+ZSMqLWcxI3tmbV9TbkxeJUMpY3MkQ21KZ3gjVFFmLUNGVytQKmN0KVppN0FOJUNBTmtAUiNJ
a1MKenY4e25aTkBoYE5HRHhJNkg4Vlk8Qm5pbU1GRyRVY1B0UHZeJTBkSlNmTGdPdEQ+TCYtWT5p
OX1wdj9IKCVzZTE+CnpHQyEqcHFzZTN8KXxoJmEpUSVQZyZIdlhuaEh8SGlIVDRgd2JlaDVVQ19q
U0RvPTw5fmFuMUgpM2xCZEB2aGxvYgp6WWkoMkxhRkJKekV7MG5NP2RfYnJSelpoZER3cFhfSism
PmE+JH4lRWZxTUJSTjlXKFRxVmRzTFRLU2c5TXdkMGUKejducXBNRjdtVCMlQiM+Z0lnTVktfEt5
YUhiQ2prenV1SlpyYHw7TVYoMDBrVHhBVjYxKXJWYEh5Jl5jN1pEWE02CnpxN2NeP3BeK0B5PUAq
KV80bz54MDdPP1kxWDBRbGohbldAWT5lSyNSeTdCU0c4fHxOIWREM310bVVZd3JmNmRtfQp6UWhk
SklMVX17eiozR1BiZC1jRTZlbWk1anE0fj1ee2p9TT9UVml3SDdYU059d1BJYl92a0tOWG0qPDt5
R3JjZjEKejVqcDN1SFBaQ0V7TEooI3Q4TCQlZDJxU0JVVk1RfiFvPzNZTShmd0Rtc2x9dntqfHBr
Y01ReVQ5OEBtSTR7VGBlCnorNEs2XlQkdSV4QUhDbmFvM3o/ZnBrWnN7UnJfbzU4dUlANFdBLWoq
YHsmZ0JHSWlteEdybjdVQTE3fHxjeyVaKQp6V3FPez12ZmFCK003OGQ4NmwmdkdSSURWQkJkfF5I
PUsxKlZxT3okQCNyMmFzLTRBT1l2dHEyakIzNyEtd2VWcDUKem8/eD4jfDk7OUA4WDdWYy0jVk4w
ZjY8QWNDdiZFJT11NGx5Wn40LUNWJFo4Ykh3KUN8VE9SSGFIfEF8UGNVe3h6Cno/REpXMyZPTG95
WXZlT3E+ZyZKcTQ4QTllO3ZeUitgQGd1ZWI1RnhQaXxFPXYlODVIbUIpOSFyd2BwNiFgQ1hPQQp6
WFNLZXd0ZTJ8M3RYSCU/QExJX2RtRiVReFZZaG56UGJqSU1JQiNkNUBnYih5R3h+aGArbyRtN19t
I0BiaUQwe0IKenFPa0F6TTJZbFFKRzNvfW1wKkZ6Y0ZpfD9nezwkdiskWjgpPTZlKkVmMDl+cD1P
cHRNY0dnY3lxNyF1TT1OaypsCnpKbE04O0ZOZjZ+TUZzfEQpYD0+YGpRU0kyIzQ7dkt7SERwY2U2
aiojMnhITFhRYnYxOHEyaUxIOTBtcjRiO1R2Ywp6RExAKG83PWRgKzxnPCtPajB1ejlHTWMpWUIk
ZyNSR29+PGJ7ZVE/SG8oYG5mKztya3kyczlVQGw5fERYVXIyUXQKekJMaUU7PiZLXis0KmRQYDE3
d0NzUWJgZG91S0B3YD9GSkJAb1dTSEgjcXQzdDA1Vj5yeEZrNnJCbnQhfXpRTj1ACk5PZmhXY0NW
R1lqMV5gTVpqV3olUAoKZGVsdGEgMTAwMAp6Y21WPEUwfmg/STVaNGZwQV80O2JsT3pSbTBWdEUw
MXppRHZsbEJFRTBpY3MwMjI9cXtsWFY2Xjg0R2lDVnImMmEKejBIPD93YjdUTWowMDAwMDAwOTYx
MEdFQF4xfEk9e2xrRW1JSn1xSChWP3pOI3p6aEgzMDJPQ0t6emYqfDFaWTQyCnowMFJJKDAwMGJ3
I1JgJUUwMG41dmdVY1dRMDAwelhiYUhlNjAwMDAwMVBCTksxUEJPfFg5cSRXMXR8YWswMDk2MQp6
MDJGZ3tWe1pUZTAwMDAwMDA5NjExMV4pcDJWNVVESVc5M1VGYVE3bTJ4ZjkrV2RIeUxGPlBkRmJO
flBYVkZtXk4Kenw2UCRlOXN3fHNTUzxsQ2slbCRfRnA8MzwyUWZNQGNyaF9Daz5nd2VGcTEkNUtM
SXE4ZkJ8bkpGZCVualg9aUEzCnphNks+fVloYCg5WmdmMn1GZCVEWGQxLUVSVXV8aF9KdXtPfjB4
QUpCbFkwVk9mNTJza2diUkZPdyFhPCNSWWdhYwp6JmEweGdHKXVHQGx5NVRLOGhJR2d7JD1DNVBS
OWgzdT1xKD41PjsodlhDP1RNTV89I2I0Mm5zTG5NdmR5RlRjY3EKejRGJl4lMDYrQG8qKSN9RzN2
WDQwb0EzfWA9NWUlUTkkKD9JalFqZ087T29GcShLRCo2Pms/Pn15SiE0MTtCc0k5CnpPU0A2blRV
PTJPZjd+MVdkdHY4QGhRJExCWTl5OVVQRUptMlF4UT1KUjwjcGRiPU8/YlIxTj9JMGRQUDc1RUIz
ZAp6TEk0MU9VO3ljQHRYa0t2fEcrPEJ3a1FBfEBjO21ANiRrKFYwMDAkYWh0OWFDVXJ4SUo9cEQp
KGZFbW92QTdlWmUKejFaOEhVJjxscTt3N34qeSZAUUE0cExzbkV6d0xyU1YmPyVkcjJUVm1lfVBJ
fSt5QVhUIUQoPkAlb3EwWGImQC1fCno+PyhpQjV7Tk0wPVl+VzgyTFVFekVyXk0lTGltT0xEYiEj
IXVlSlg9M0NDfiR1JThaeHFzI3JtQVQ9MVAwQT1YNQp6NG09c1Y+PClZVSlpQXBNYHp8ZzVGNFAm
VkFIWCVyTH5XJn47aSYpYyhTUVZ+PVB9VmVWOyFSLT0rbDFTRlZqJXMKelhOaXhAZjJ2SExQWXZl
KDM9clVtQStEeDVRJSloPUttMCVjZzBrQ1AxM3Q1M15NQXNzVn4qVk98Sz8kUFFfUkpCCnpwYFh8
UHBqSUEtb2h9a0Mhck1+aGBeeCRLaH1+OEhad3NPWkImRU00S2smTmk0JVphJnYlOCNrQEJjSlZI
fjxJKwp6ZkMrKkMwRCFPbjYkayhZZnpqNkd0WGxKSHs2QnpUOTJGRUdlKmkmNXE3V2k4JHEobVdU
SDRKSWlaUT8ja2dYUWgKeio0RWI2Klh4NzswWkNzM1NPKCl8Z0NTbVQzNz1+O2JvRH5UWmBLJnVs
KmFZK181djRTJUtQQjJuUkpBJWloWkh7CnpCSGUxQUg9dGt5V0NqMmo3JWE9Z1ljNyVWTWAwS3lR
T2NmWDdxWk5UY0RBMXNgfiQ+QnAhN2VjQzAoN2FiK3s5VAp6TXR7NCNqQ1RHTjtqVmpxLS1mP0tG
OTdQeFBgYGJBSGc9P35IX3grJjsoRVE7Rlc+bjhWNj5vNE8rOGxvLSVmZVEKV3lkfFUoKCNYdFJj
b0NMQE5xVUZ0dURiQj0zODF6QgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1yb3RhdGlvbi0wLnZwOS5tcDQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMv
dmlkZW8tcm90YXRpb24tMC52cDkubXA0CmluZGV4IGVjNDk5MGU1OWQyZjc1MWQ0ZWEyYjdjZDdi
ZmViZmQ3NDA2ODgyYjUuLmJhZTg1Y2QzMjQ3MmI0YjBiYWNiMjZlM2RlZWVkMTVlOWYwZWZhZDAg
MTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTc2Mgp6Y21WPDgxfDlrMzdOLS1DQ1Z2SyRa
RGU2fGY9UG95MDAtfnxfNWU1fTkyZnVxMUhnVGMqdUMqTGxacVMzJitNc18KenomRUViP3JWQi16
P19ARCYocnQlX3UxKFdzUGAtT2RkfVZKZUspJGg1OWEhaGNkTn5rY3V4QT1mQj04T1U/NzhyCnpf
aEs4Z2NzSEJ4OHhPZndFJlRYeV5KfCk5I3FSM3dWRUwhYG9pb0FPMj1AKSomVlRvP0N2JEwrdUcy
YUc7bTtTcAp6JShsKSQ4VjNReWYzb3c2Z2lWUlQ9Zm1EWEVrJm5DNCtpVXUpMU8zbEk4PjVGTzNg
MWRrYDFZWXR4YHF0WUU0XmEKenJ9a2d6UjtIdVc4ZGVSRzwwaWs+UWhYVj5aO0NKe0xtMkx7aD5T
KEIpJllIN3R5Rm81K2pWeH5FZCsrYUZxZWxsCnpVWWpQYlhhXzhRdVlaZGY3d3NubCVrSUVfNXRZ
VXQpKGhIYkU+Yk1mX3JNbj5xWSU9dGF4X0s7emlmLVVvRGpMdwp6MnwrSytseTt2e2tCSkJOUz83
VihOOShMenZ8ZVk4UHl+eGp3bXVDJE18ej9rcT1tPylfeFFaLTwqe1ElZXJMKmEKeld4UH1hbVhE
WFk5U2FsI0QyZVIxQX1XaTw5PDxTfU57YFdJT0NhKk5ePyZLcD9YTDVhSChxZnJQTlkmVl44X2Nq
Cnp6P3B5WFZTZ1lMa31OKm1WOTZDQCQ4Pm9pPyUxYD9kUDs0bSFgR0xxeVoqcWwpSCl6QDd5dGow
OFBlNSFUQHtkUQp6amhQKFUqfGIheU15TGl+bDB9NygleHYzT0pEMExLcTg+TyhOT1EwPlMmcE9r
ZGhhVzZFNT0/dFYqaFNFSHk5djEKeiE9SkYoJndwUD5MfVAqaiNZPHd8K2dpMlQkaiNOYnE5clJW
UWpGWVkhLTRJLXYyYjNGIXFkZns/fWNTaEIpTHxZCnpkUFJUWT5GZ3pVZXZrUUxzd1ByST1CO1cy
YmktQktnfXxpOUZeN3tRWGw+dWctK2FOQEpwR3RHQSklLWQ9WVluQwp6Uj5CJXp5WjJ5ZXVNUV9B
YGg4PShDUzg9I0tUNG1ZSm5+VFdufTM+YiZVKHZ8OVlENiQwQSQmLXd+ZGpCZT00OWsKejlNRzl2
RypUSkpNQXtWVFcxN1BIMy09aXxTOVNicF9BNnFTVipDOEZENmh+X2ZmKGJIRUpFcX16aX5hdXlP
PSNICnozcGNtNigqQXFaST9EVFpeLXRHfDlgS2FwbEQ8dCMhIUp0I2lIT0hHSGR+bXBLOHtWXjs8
XkhUQSVyNVF3Wlo4UAp6fDk+QDUxdk80RHFAOWIjZTtNd3JgdH43bTh+PXM9RkZufH1efH5WT1li
KkNTMElqMntsc0o+djUzO2FocGt1dU4KemZ7Qn4xXjVJQlRgITs1Y3RyKzZKN0tKeSMkITEkKUYj
d3JOPT92TVRub1pIYmhwYWojUVc2S0lfWE5RNmhEYGtfCnpnQW5Nb3plYENpYlgreC0obT5yaCll
WjlZLXhxdlA1cX5Tb3hpUnh6b18qdFFIfXBPeGc0ZW9OP1hDJXxeO0hqYAp6U196OVY9KnMpQ3Vk
KyEtRGlFb0BeUm5fRU8yITMqRHdrOXpMRHFpO3QpKD43UzdjU25gcEFjSUhYdzk0RzFtaW0Kemdm
ZklpM1FhV0tAM2FVOzhlflMzeTdfejNxUjYmM2QxS0UzPm5UMmYwKn5qfT45dnxMRGg9YlVYP0NN
Xk5QaV5iCnpnbyRAIVNGNTwxVGhJYjdeUE98K3QrdCM/TVg1SXJGaTt1KXlhI1lgNEgjQENHR1pa
PlEhVGxpckM+UUwrbExXdQp6ZGk4Iz1oN1Jsa0g2OEI8SXpILW1KUmB7aDN5RnJ8KkZjbHgmUl5W
SThCNzUqc0ReSX1rZU1IZmJ4YU5maEdnN2AKeiU9TWBNKlRNO0x1Q1JXbzdiai0laTVkb3p7RDBD
Z2ZGO0FJZ05XQGliVy1FP0AmMEV4X1crOHE9UmtveVFtfV8+CnpeS3cwJSpKO1B7Vk1Pd2VjQVAp
O1JxUG14RWxaMUNwZGsjU2BCK3FEejNYKlEoc341STJXQURhazFQJTs9QGJPXgp6NmRJMXVsMms4
RkxUTk4kQHpYY0RMelFkS0p0ZSFEU31AdDRpQSZ4IV8oQGhzTil9ZVFVenheOWQ0RkZKIz1fYXYK
ekhxWj8+NzEjajlLLV5QXlRtVDhHR004NiZjKW9MUXp4aXV0aDBveiVPU3t7MC0mWmJiQTYjd01u
NklAcXBSVlQmCnp7fG1MUntXUDktPTdEWlFXS0p8UyZtaCVNPkhkWm11Kk5eNVdiN0lOe2xVezFr
ekltckM0UUVIeCVvYWpjYWVTQQp6Q19lYSMyPSM0aSF6LVgpMHIhK3cqbmZ2fXJwMXN9eiVOWXlo
TFl3YDdra3EkPkoqbzw4MSR5SVJTfURsdDFzcm4KeiZ2b08lakJGJSt2UEA5KnlhfDcweTVBRTtW
fFVTUHheSlBvKUxBbFpUSWxgc3UrWnJ4Q20kVDttS0pPaUBBbiV4CnpHaEJQPmRtQFZOdEY0Zlpw
TUVrOUkmfjxabnVOd1NPWCFsOz8qOXUwJFJJWSpNaVNWI1BrKEVeU15GMnM1eWclVQp6NX5WVDtY
WWZfS2RlektaKndsSnlEfUhFTztyYWpueW0zd0RHRV4/eGBgX1VQOUMhWDV4WjFtTTR3aEZ1UXpn
cCoKej90ST9CPi04SWE1KEhqank2NnwrZm1ybjc1SUFoUktuZ1hCJjBWTTVFN2ReKy11NU5xbFgy
NmxsTWBIRWZDWUxKCnpnRSo2Ull3KX1aVGYoVioqJmF6NC1IN3NWVVlQMUhTM2JQP0VfX04hRnwk
KjhnUWpnXz4mfjY3bFhWRXowYnI5JQp6M0hBWUNsUzJ3YUFwIXNaMDAwMEFXQCUrPzBSUjkxMDJF
PyRhJiFPeTAwMDA1OWJmPGo5Ymw4RTNQSih+akZhbU0KRWRjI0YmZkIqbWgKCmRlbHRhIDIyMjkK
emNtVjttMnVrOy02WGgwPUNWdlEwWkRlNnxmPVBveUFQNFhWXzVlNX05MmZ1cTFmWUw2LSgla00t
YWtmcXVYblV9CnpzYHl7PitxYyh4azlHZmNNKXhjRF8rUDVALXNLYV9fcjdgbEQ0OUdiZk5xV2Zk
QUpfPi00UD9NXi1wUWNvWE94RAp6KHt3ckFefF5vbWVeSk4leDkxRiM5YDZRY1FlKX4zSi09cShA
c2dRREc8aTsjY1lrTHI4aCVKO3hwemZ2TGwwazwKek4oVTJ7RFZDeVZfUTlBS1hJcjJEIzU5dlFq
TW9tXjxpYmFmfE5xSG5zcHBkV3dNUjtSKkU0OWpDXl50OHxOTmo8CnpTfCkkYTZiYSZyUHk3YlZg
OEVBVW1McGBSUyV6QV55Z3IlT01zOHZKMXIqQTUhS0NgRE9EJD5yN341OHlHTTVeWgp6WXlqTm9Q
IzVMaDkpRDYoMUlSX3VEY3Z9b1VHeHZVbjhLUH0jcVRuNChnQSRDPn0wI01mKnhodUFAazdvWl50
V0IKemUzO0U4S0RNUEo2KH0kfSY2X1U9T0pUSSUqWH1iN1JTWnphQz91dGQ7QlJENiplVT5rX0xw
RD40NDBDVEFENXFpCnooY1l6eylwVmItTTYpI09SZEBiLVFrRVY2Z3FuTzRlRlolcDYwMCRnUyR7
SmN6ZzVsaFUhVm90TWFBamRySiNMTgp6ZmFlblBBS0psVUBicGU3PT1IRGooREdvckRwNXJeMio7
flcrXnY/SElFTzRPY1pmQ2xjakt8ZGchMyF6TFhSbjcKelozcEF9dEBZcHlrPV9qN3lLcGdwOEso
O0soQHtfPzFTQD1EIyhhfWQ7JXVEXjk7UnpMSD4lNklTbGArJnR4bSNeCno2aEhnPzR9VHVqK3c8
YDBoPjtYXyk7KXswMm9qKUslcipiP2R4NGt1WFpodUU4dkJmUyl+fEthRCVSQ0sjRWI2Rgp6NyVu
SEAhMDxiekxLaVRSZk1DNWNoQkxmcGkxZGgwJmxqJGg0bTszVShmdFFeZS1xaEp3dVJHV007a2Fm
eUFKWmkKenVqaVVmeCtvRDM0NylZay05TVJoKSReWj9fdG03SXxLNlRodXp5NSVYKX1YO3ZkUzBX
ZDRTR0NgeSFBVSlKbGtGCnokd0J5OHplM3pQZkJkSU16ITkkbmI8QEU4VFpRbiU3QXMwOyVHQ3kw
P1Mxa0g0enRFZWBHJU1AYyRMTW9pJFBFIwp6NSkjNnNuVnh1TklnOGI0Jj0+dFg3aEFqJkVvN0NX
RW9MbTE1WTN3VyMoeiVEKWVPdyE/UFd1WUJfV0lfRlFNJGwKek9NbWsxN1JYQV4hR0YlOENlUV5I
XyF1fll6dFdpdmgtUTUldVd+fSpffX4zey1+ZVEwYExkY3ZZUEsjQjk2OHA+Cno0SDhsI15DaTJJ
X1AwPGBUK1FOSXE/Y2BIR0JaeXh5WkoydWltazQ8Wl8wMHhYSmh9WmwrVDYlVWV7ZEdiciFAZgp6
M2I1KFlVPHk9ezlyOSZAPFRgVXYrVjNTOV5yQ0RvN2tgbERqKCU2I1V0cEA2I298aHJnS2BVNklN
dkozeSFeMj4KeiNwdz0mdENpOHNPRy1ET0k3IWt9QkolJilhPng7QmAzU0dqMTtRRDBaaF5jYFZl
UCYmOEBzfkQ+TkJsTj5rQWN5CnpwRCQ1Qio9d2xRWTlWY0hnWFFXd3g/YkFNKHFEPTRhJnIrZVpm
XzU5OHBiWittbmtfZTtzRFl6N0NnQkA3az9+Kgp6RmRKWmBgUWBeWDctMmQ4MXA/JWc0RnpgTVJz
RTVFQiM3KTkkKzYyJUR7dDZxbiQ5ISE8SCtSdkszSHFUM2ctNTUKemFHJlgrQzZVRm05VzkjO0Nk
ekorMnF7NEI8RS0lMDd5b3pTQntXa0xPSH4mVGZEdXMpa1gqKldibjVRLWooY1VfCnpiJW04ajQ8
OHxHZCVDXm1nbj9qQ3N7RkszWi0zVnxgX21+ckA5akRsd3RAbEooYUt5JiopYlluWWZIM3EyVTxJ
ewp6dD1FWjNocE83VFEzSV4zOEFkUkhEU34rO0I0TF5DM1A9dD9sMSVRRUt7RVJ2UlZQKi0wfHFJ
JGROdU0tTXc5Z0sKemg4fU5eajt3eTZfUX4lV0heXnM8UFVLd2Y9KUQ/RmhSYWQ7RFJ9MWZZcTwo
SkMrciU0KWUld1pqZW1xYHVwYGtjCnpKO0d3bmxJa0tNZzspS2QyNEN6aFl+PmJ8ZXxALSNhYSVj
Zz8hfkNBMThMLSoqJkBxZ3oqeFN9SkxyemojK2MxQgp6QEJnUUdNfkV9Nnk3VGl7WThzS2IheSRp
biNoaEZ5VUkxUVRqeUwpdkJfSGYoSlM+ejEtaE1rZGV2JTZeRHFgRWcKenQ/ZnNibVopKWlNeGVJ
bXdPXzFabn0xMm12JjJScEBLMXlGUX5NY2VkTyltajBZSDl0RFpJdFM4aXBKZnVVPFN4CnpzQT9V
ZWYmTmNfY15IQyopTzZwfS1JXj9hbDJGQVhaRlEmaXFiMkU+OT1uJnVeUTFhSEcoUGRpZnAjfjct
Y1AwZQp6Tm5JRnRpfGlBckwjfXdGPzBUeFdKN0IyNm1JQHRpN2Q3c1pgbndsLTJ2OCgmcnZKcV5p
Kz56IWBjdXckZzNnTloKemt3IUR+Ul89djVwREtDfkBwZWxecWB1M3cwd2c/KFZqYmdAamNUUFFv
R0JYKkdzMiYyXlc9eVo4c20ybVlIUVA4CnptKnctdlpPYW52aXNfIzdCTXs5TXcqYEd5QF4oUTIo
Nyl9PzdOPzR7ciF1KmN7NmVZNVhWM3EtY09iUmZKVDg+Kwp6Tn1QK1crKkFtS2tGRjtKNkBRTjxj
YF4hJGhzak55RiomK2k/KzwhdGNsQUtKNkxJfiE2UWN+MmVRZkN2KUpNQTIKejh0I1VqUEdkTHhS
KUM8QSspO0k+Nz9KTWs7e3tkPlU1QX1EdTx6K2kyUEg1K2VZZUB+KSNmTTtebkQjeyQ7QEJPCnps
I089aGpzczhzNlMlUklOQGhBPTBuMFkye1NNTHAqM3UjM14kc0xDZFA7NX5NMUw4SjMxJmBwIVpX
PDQhMmcrUQp6YCU0cUJ1SylsMFFNJUorI15fUjN3NTJfUm9oJElUbjFBOWhueV5MTkhpNURAamo0
WS1sdGFEbmZZdWgjKU5sWCYKeippWmtGMihaaFp0SCNJV1NIVnxDUEg2YSo5Y1hYeEM1OCRIJnBA
PF4zNTQ+KGRuJCZDJUtHPCRtfGxKazNjY3VDCnpXXjdBQWt0ODw9SC1CZGs1O18rQV9kdXByeFB8
NFdNOUpKZyEkKEVyKmNLS3NtRm5nKUtPVE84eVEqdUckaH5qKQp6TyR5Tk1gREd7OXohZ09jdHc5
dFZvMUpEeUd1NUN0ajJ7aSNrVylBbnxIPVFVeSY0Q3s3ailRU2QkPSpUe2k/cXQKempZXyhhT3Ri
N3lrUkU4dTNgODsldF57QmRtcDFLX003YzFZdCtxMU5WXylVM2xUXit2Q1I3dnlLUXJRVCpifUFg
Cno9NF9vKDJsTUpTcnhSZnYrQDhfO2hLOExNU0srIUoyPHwwSkVCcX1FLUF0K1EkeEhHM2xkUyRh
WnNIVzFyRkJ9Qgp6Oyl0aiNTamBffFJ3UXNPanl3RGNSfnsyKDZlY2Z4cUxhNDwpJllRJWp0Qk0h
ZkI7QVUwMDJtblVJIVBHQU97UFIKekFPe0ROdjxNVS0xcG9qNTAwMFZSWD1ROHkwMDAwMDZrPkY4
Yk5+UFYwMDBKZyY7U05gKDM5eTFMSU1hJWxQdzgpCkRoeWhIdwoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1y
b3RhdGlvbi0xODAubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTE4MC5tcDQKaW5kZXggNWE0ZDZlNTRmZjQ5
OTE0NjM5MGM5OTk2MmZkYThkZGZlZDE3YjhjMy4uN2M1ZmU4ZWExM2E2MjUzMmExZTU0ZGMwZDYy
NTlmZDZkZjgyOGEyZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA3ODQKemNtVityMU1t
RjA1VFghfURofndwWkRlNnwwMDA3QDFfbDVCb1JLKm0wV3B6aEVkZW8rbUg3Y1B2eVRCKzBlP2to
CnpoPWMoRHspOFhFcFkmMVhORm1NQiEoRStCWmg0MUl3VW9SOV4ke0VgbSYkNCMkezJjaDEjd21P
dTRGT3YrdUE4fgp6Z0BDZyhFP2JVQldGMzI9UFpSK0drP3pveFQmPXgyWUtDZXgrWWZWaURSflQ9
YyhGLUZFK1J0ISglTjk8P2RUNXYKemYkb3R5KTdyK3woe15aVnspTjlBaFl4Y1AmM19TZD1iKis3
az5fPDh7c0dyd3o8YUhAZ3t0NllOSiNLUyhZdnEyCnpOKGB2a3EpTks2YnZAKTYmNEdsUy16SnVE
XkdUO15qfD4paFhOPyVVR3M9R35TcjctUWx7UU9NLWhNMnQmcHNWRwp6Sk02aWElJiowbSNyc0NU
V2dldlJMdURvS1N4dHtadWFlKEgtPTBvK1l7fVVhcUxjeGplaEhAYTElRCZnNXR9WXsKek5xclRf
SEF9MVdmMkFwTTtFYDhvfExXbWdyUUdKUHFxd2lfPkBLXld1TWJvTGB+SiVETDghdEdgNEVOdDtC
c15sCnpOYzNkTDE8TkdtcDckKSQ/dXY2WEBvJUZCX3tSZXhzcVdiNDQqS2ZVTlpAb35vbGchaCty
QThreU1kNk8meE10Vgp6aHJfb0o+Un07eGYwbkt8am5EcldgK3czWD47dDdTN1JBPkY3ckVeRz0k
ZnRvPkZOKSM5Y1ZJQypoSGxrI0V2ZXEKenZXREA4aUc7PnJqQng0bUtwcnNCc2xAZSRVTGteYEQ0
T3M3Vj4kKD9HXzFuNnQxKXtZdXQ9TmNAXlckRUJAWn5oCnowRGdOcXkpK3ArUUVWdn1jbnxBNVlA
ZT4lV1c+Nk9XKTlja1FRfVgkKChPdyRNeV9ibU9IUEsmPDlZWVE2WjFEdQp6SDwpQ2xoNmwkQisl
e3xHP247RilQNFBpRWJUIUE2T31SIVl7R2k/bWlZQXF4byZGOXUwSW5Gb148dXVKYyhUPD0KelRh
I3p6JShrdCRNaCU+QTAwMDk4bFQ4SjQwV1h1bTF6aURQbE9GfnQwakhCbTIyPXIzbGIhfVg5c3Y/
X2JZZzQoCnowMDZGWWJhUHw/MDAwMDAwMDAzMTAwNXEwYzRJTTw5MHdUI2ZCO35WNzYmfiYzamc1
JTdpVk11M2FyXmU0V1IlNAp6MHt7VTQwMFJJcjQtekdvMFJSU1E+KkxFSiEyUzY2MDAwMDA2az5G
OGJOflBWMDAwQm9DOyRXNUQzZzIjTElNUXMKT2xmVmFiMX4pVj1GKSVRZ19HQlJkCgpkZWx0YSA4
MDgKemNtVitAMUswZWI1VntiTURofnhBWkRlNnwwMDA4NzFfbDVCdEMyWSM1SEtLZUdjWWtSTygw
YHJXalNGdkdtJSY9CnowV2d0PGAyalN1ZkJ7emxlX35+YmdhQns7eT1VZkVSSmtLeSVndCZ1O299
SX18RCRYNENjSiFyT2IzaDFkMTg1Kgp6YCNWdz57IWZuSUo+ZlM9QlhfWj0yRnFDbnVPOGFEQ0xe
U1NBNWojR0lwQT1aLVppdipqdzF0WlFFVH1HS1JRaiMKek5xYEBPMzcoYjZ6N0pFbGpGfXUkYWZU
dHJ6d3ctK0hTNyg0QlRGNyl7cTBDPmU7fTYlKj9OZ1A7SzZ9ajZ+NHZDCnpHdnswWXZueCs/NVJW
KkVrXzg0Iyk0SSEtN0xjSDBGd1dxO0dhTklVMlZnaWBhaDJuPHxFVmJSNWRZeHFran1YbQp6aCsm
QCtxUWdzMCZYVDRVeTFOcFVCQmBjQHQqSjQ8dig3S3FibD9VVTlYWXxaMEJsZj5qdFpjTkE+bTQy
MXtfP04KekYtZyFeWmtPI0tmQXEwbEIkUjA2I1N3QVZ7ZXRIXnxBMUx9ajVyRFFgUm90bkB5M0hg
U0M0Smd1eTRPNVRFWU9GCnp3Pnl5SyhCYUJyS2tZS3Q3RXshMkVjKU9uY0U1QF5tJk5Ac0dDfmhm
OUs4QFJGbm0kTUkoYzhleiYlYSswJlhPIQp6dFk4N1lgb0tiamJYSyoqd3tfZ3k0UGV2cXRrTj5H
LU1eI2VZbWR4VmU8R24yWnFsTlJMSTE2TmNDQ0xHamQ8RyoKej5nPTJRWHxCN1VrRTRISWd9fkl9
P3N8fk80N3Y7MXh8Rz9iVFArXkcybEdZaiEqZzBQSWR6S0kmQChePnBwOzQ0CnptOEJ0elRPUFJk
UXFTVTVQU3NmRW9YJkYjX1paJnZwI2NiPnFTU2RxTH4+U0hfUGJCfmQ7RHJQPk52YlhOSyM2fgp6
PztPTH5ZayZ5PmI7eT59SFFYYjg3S1k+X1dSd0U1d2tPXz1kYnlDSHd5YzNAT2IhaWRrKkV6YHQ7
TSk2R3kySSgKekhKS1M1SkY0c296Z0Z8OHFfb1BiYUxiPVRmZnxYc1JibzshPWp3NFQmQUNedCZK
IzRgcHs3NFZZdjVra28mVGgzCnpVaHUjRjAwMDg8bE9ZOWowVU1LKjF6aUR2bGspe0IwaDV5KjIy
PXEpbFgzPD05c3ZHeGJZZzQoMDA1ZUViYVB8Pwp6MDAwMDAwMDAzMTAwND8lYzRJTTxAQ0YkSmZC
PUEjPklPWTIzOypFJjdpVk11MyN7MmYxWlk0MjAwUkkoMDAwYncKbSNSX0dCMFJSU1E+KkxFSiEy
UzY2MEZ6X35MSU1SRGxjKSFEMX5mRztGKSVRZ1EqbFdFCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0
aW9uLTE4MC52cDkubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTE4MC52cDkubXA0CmluZGV4IDllZTg2MDhi
MzZjYjQ0N2FmM2NhZjQ3YTA3NWI0ZjFiYjE3ZmJkOGQuLjZiYjU3ZDU2MjY0YzdmOTU2NDJkZDc2
MmY1NWMxYmFjOWI3MGQxZGUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTczMwp6Y21W
OyQyMEhvZjdNJkIyQ1Z2S3NaRGU2fGY9UG95MDAtfnxfNWU1fTkyZnVxMUF1PXctOzNZeD99b2do
SUEhVSkKejlOT0ZfXnphTkorfThCbjNDWCtzX3g1X2NRU1F6cl9oKGBKemZ0Yj9pcnFhaypaUGww
MDAzJXp8QldjbWRMYEt5CnprXzI1Wkx7LTUmKjB+JVNEUFk3Ozd9JH09JTdPekxydENpPUQtRDU9
WGpSZWlxPF9CWUElSXlVSXhVMCZjUnwqcgp6QXh9QyM1ZmF6OyVVO2QoLUZaaypsZTR2bFdYYyQ2
YlY3SXNKZGw/Wkc0LSQ7OFYwaDYlaXNfMDR4Xld4KEBvdzcKeipVLSQjNU57OEh0RmMhS1FPdmI/
YioqV3BpI01RJXBjUEUtNHc/VTdtUUN+SS17YXVpQmJxPGE8QFQ7S3leST9HCnp7cE4yXjQxIyo4
TVNvRGNPYFM7c0g4KDJYMWQtJns5KSZ8R1pLM2ptan02YnQjazc3VWV+dn5AQmpZPiE3b1UzPQp6
X1hwNzBXS1ZwVGUlVGdxIW9wNytnQGcyYDZjTTtWeUtwfl4rPHkjRT1UXnt8YCptbkE/TE5iaW43
NE9QakNAbGMKemFDZ15DJStjY25TLTg2U19zV2R7WHY3ZikjeUlJdytmQThQWUU8M2U0dTF5d18o
TE9pTVFndGBPOHpYflVuWFh1CnptYjJEX0p5VER5MXhIeDliJE9LZHJDdCE/OVlMdkJePHF9cVh7
fGFYMjtudmZtWiktQjJCRkN1WGFBK1UxPS00awp6Yl9YaX1lMDlqfVpQKTt8bjM2PihFfWoxQTUt
T0V1YDliU3I/OTI1emc+VCpZSihxa1FTMEc8U2FFU0U0ZXxNNjcKekExbUFkUS0zbmZUfGIzK152
OCF6YG0+RDJ2WC1hZno7fklCSl83JWImRn13XntXSX5Db35xPGI9dThCR1NZUzh0CnpjZ0FzO2tt
cDAlMExTTWJScVRtOTtOcjtFLWBJeVIhOV9mVXVzTzVhVmskYntuWVZzTSUrcEU/JmJUREV7ejE/
cQp6LVdgKi1HPlpKYVlFb35AO20wLTkhV3NINlEwRXUmbThRViUlenYoYDFWNUdEaXYrez1TQHAh
U3lfWk8kWWIwWTEKenJGeXVaWDEjTjAjJHo+aEFPUFg4WWRxUyEyfSsrKmF2c2dFJCp8PCFfU2lX
VG1RWENlJClpJj49Tj5OQG50U2JhCnolTnE0X0NMLVFaKkFVPnVnaHQ0Km1tek5eVE12ajdreVU7
NU9TNGpmPHNaazBRbiZoTUVCWigraSRlfXVkLWpOdgp6JTZ9O2hqKXVreVExPzdhZH0/JTwlQlhN
YlZ2bndrO3pOMTE/SD54UnRyLWdaLTNHVlVtVDsyNlYwUkZOUTQlZVMKenJTSihpb302YkBHNkpX
LVFqTVF4TFN1elcwekp0JHFFNj0md1MjS2ZkSWElWj48c3V9amsjNXlQRT04RmNUfG1CCnpiXmVp
Q3RkO2NkQG0tYHQ3fFVNczJUaHhyTnFGXnRhZXQ9RmBjOVNHRWw3WDxCNlhuTyQpdGprMH56PVdy
dDt5Mwp6QjcxRm4pb0sxUDZUTVQpRjkwc3YqMUMrakdHZ3Rrck1WQih6bEJAeSElVl5NYWR1O0c7
Z0p0OzB9Pn5SWGRmPz4Kekh1fkYoUVNlQjxGcC02cFpwUCVzXzUoSnwrPz8yTHRgRnpVSSt5Y2xh
Z0xaUTIwdCRPNF9tI35Eei01ZT53bFNlCnpNRT1gZjVOYjBgPWxFNmpJdDc7dDxUfVdaQV5nel9M
dUZ5JERGTnwxJm8zMjFMZn4xdSZTQD5DJXwtIzVLaEJXWgp6Y1hiSk5ASEp6e0dOLVYkdFJvPm9X
PChYS0BTej19Tit+Mz0yKUdkVE4wZEdzcH1XQzxwQHpMNykhQj9nJFNhOSkKeklxOGlRZFE8ekMt
P2hwWUJnZF8oUEdqLWI/U0pLJl9Hbkk0MnN1IXBXSnY1OyU+eG94PmBQI05RYURfODJgWjh6CnpG
XkgtPjs/YFlkSHsjQEU3ckoySFdjVXZUX0A3dEZpUFZvRkdMOXlSSGp6RWI7UzUyanp5a1QxYHlM
NUtgQWI1aQp6KFkydGRrfk0/ZTJoPSVOdzNqbihOR2VuSEtzKndEK2A4ais7YG1VVjhjRVVNe1hE
ViFAJj9yYnhxcU9CN2p3c3UKek4zRVYleEdXK3hiIzxkJUJNSW9DK21WYTQkKHIrV1FeNGNgT0d1
PHJEJEk/KUxYKXdnMkdxZTx5V1o+Wlg5O1ZHCnpefkxORXBkZDV2eW1FPlI3dGI+dmZReCtnMF9k
SztKOTR4VlUqPWE8QHJgZUcrZyk/WGtgMig7WiNGOSomOGFLMwp6NTtPNz1AV2tUNTY4eyorK3V8
JkJIaDtpIyFNeUpVUEIlKTtGaHhNMjt8RnRBcVU/d1dySWdAMSQ9RFhnYmh7ezIKenpGZUkyJUlM
JDRlQFh5I1oxVVdEVjBZYiVSaGRTQT4rZjJuQWxUMlJydXpVKHtyWG9uRVFfT1NgKmlQYmVxfExl
CnpzQD1FMW52Q2opME4qb1EmVTFxLVk3THlAMTNAOXE2PFomfFZOcEQlVFNLdUVvZyFJNkVQcj54
a0BZWSVEaGthZwp6KTI3b3dpVEs1clRXdj5tSVFqRko4QEstQGpPN0YzWm0yJjtVekJiKkg5PkQt
K0hgXzJ2VkU/Q3kwPyhrYiNqemEKejF1VzhUUDRWblBHV2Z9Z3V2JFltdnM1fD0+X3E/YFZ3YXtk
bEo4eXtYRT0zZ20hdUY4cjlWPG8pTDB5bnVMVX1TCnpiaX1DITdRTkZhZ1cpMGlMPX0kQ3J4KFhZ
fEglQUpAMG90dXsyby1tR1BPWEhlK2JuOVYzU258XzVvbSVPYlNCKgpiMCtXeW04M3pSd2tOXmMw
a2R2P3FMSU1WWWxrXklEX1JuOUoKCmRlbHRhIDIyMDEKemNtVjtLMnhqLTQ2WWRzfUNWdlE5WkRl
NnxmPVBveUFQNFhWXzVlNX05MmZ1cTFoOVdNJitDb1JvfT1DaU10Wk0jCnp1aEZWS0hAaUx+USto
OEUhI3pqMk1EbHM8b0loNHw5dlFAMj56Mj1yKmVgenItJj48MGA+JCEqY2ZSITk2Qn5WUgp6UDA9
eTg/KXUhbzBDfXEpe0VoYGJ8S1MpSTRqPSEhcTYwbXNwTjx7PiVESUI5ZXQle0VtJTxmMEpxfEF2
JE52VSgKel5tVCFAUSRQZEVKUkk0Um5vUSMtX2tIezUmOXpCNmROQFNadV95Xn0mNFBQNFhtQShF
azFrSVRRO2sjTm8oN3c9CnpVYlR0QypYN04kVitNOzBvTXl+X2drX15+RSUyfE84cTEqVkxmQTMw
IzxhQ2UhPzsqVmIodV59UTRpYXg7QUMjPwp6TSpnYCs0dkR6blBrKUBSbEpuNXdMRChOdnR0KlFn
QmxRVjRxK0JiTXVNWHM1Xkh1dXtvTCVQM3JfXmZBJn44VlIKenJZdDMtTSkqI1N8R3MmNGNAcG1Y
KTxvQlApYEBgSTdHb05eSXFsP2ViUzgrY2Y3Q2M4NXpaeDhmb0RjdT5LJTM4CnpiQXBTfm9uK2Vx
MDhnWlhzSSE8MEZYWm9IdmY8Q3IlNGglbSRWNjNyZXQmVDg3MWg7SD8pUUJpOSgpRW0/M3tkUgp6
a1I/ans9bD5naGV8NzR8cVg2VFRMbTdsWWZUV3hNeG1wK1pePjglKTVESilwWilwKCNxYT0/TUVK
UF4zfDFrUjgKenp5SjJENk1zcXgjc0IjaVkkO3xZSVAoKVcmeCZISzl5RSNUYDNxTn5gT21scjJk
RD5+VG44YV8ybFpHRk08RS1LCnplXyNGMC1HN2N0bWllZDdGWm0pZ1p+VzhrU2J2PikqIX56eG1D
VFUhe18hPUxTczZmXyZQVXpmWG16TEd8TjYhSwp6bk9TS1dsOU1YKER9TmdIP29MNjZFek1mP2Zx
QnxBczg2JENOLT1EZWozXmtiN1FOJipZMkxsaVZzRnJDPmV6X2YKekk+fH1NJmBORlN4RjR+LVJ6
Njw+eEY0Vz44LSExVk9FVnE1YCtzRzktOUY2ST5DZ1I0IU0wPDJ4bzx7Ym1aa0JZCnpPI3ZAQVR4
VChURTlzeUFYTT16OGdEdWJmc1FgIyZRO3lYc2pxQ19yNHxUYD8lJG1MYylAc2shMUxDYCkqNl41
Rwp6KEx8PVNEN2dXRyRHKEhFS3I5M0YhQ0ErPHZrWCZOeng/UH15dTJeRHVCamFpYEJ4RFo7NEBL
YjY1dyUqNE48eEMKekN4MkJ1RlV2UTdnMmF4Tih1MndkUmkjSlRBQTUyQ2AyelB4VjYpNkFtOVk5
TW8tOGB3el9YPXE+Ung7XlQqKGI2Cnp6bllhaHxOWnIhZm1rd3swcmBKQz9fV310PlZTTD1kM31v
RlVaQ1dheDVqVUNpNyRUVmg2PF4yWTZCV25YZT1VdQp6dTghMzxjTitMRyVGN2o9IXo1VjFiUGha
JGswKThjU2JzU1dgNlJeY2IpOWFRJj5aXnhjVWNedTwrfH57I3JObygKekpyQioqSnNQZVp6Y3xN
YzlHVCtAOV5wWG55NWk5NXlyK0FHaXlYcmspJWt1fUdHTU1LaVZrX3lDdzYldDY5NHVvCno3JGpD
MnYoPGdjenVMQGd3KnkxdmA7PFN8Ykkpcn1YbjdyPG53JTZNeTQ8bSVTJiVLJUZrdlE0Mnc1KUBE
dHwrRwp6JUphP3hZcFNsX3w4cXNWMkp8IXtVXnc5WHl2YTxDQk5NKnw5KlUrelBfPCNANHBUNEkh
OSo/WnpIVEAybz48MHwKemBtUG9HRVQ2MiMhZ2o0RT5rJSNNLUZ8fDY/RXNOVkVGRDkqS09SaG9o
Yi1eVWBgXlI1NVFkezVPc0BVSGh0NUlMCnpJSnAyVkI2VF4jVHJqNzQjanRIOUJteUk7RVBwSnZo
P2ZUKklASykzNHgrZzcxVU1UQS1YSVFkLUNKeE5NQ2l+Ngp6Rj0jQ3hrUShZaHhyaiNLS3wocWJC
RlNtfGZCeiYyKjl1OztxeU0qLVYqSFMjPWZxITtHNT8rUGhaQ1JmZzdgRFIKeklDZXJ1eSs2ckZw
UnRUKVImR1RuKUIpS3ZsaXpPIyNiNWF1NmFlb2hBUnRickVTP0JKVU9hOWJ1NzZVWVR9ajszCnpy
WURkfXs/fG1TdHw7OWNqI3I0UHhAd2AlYCVOflZJc3Y5P0ZvJEM+RTk5Xm09WlBjLVBYVkFxKFNW
Pk9MNEl1dQp6Y3dFJUNwdz99IXI8fCh5ZVY0MnxPMyl5YUBzMTVGOz0oZlNHS2t0VnVRUSU8I2hR
PkNyU3gpKUh+KypYLUpiJXwKeigydVBpPUxreCFPMk4+bTFhPjxQeHFzWTlMIWQ+WWwhO0Q0OGY4
TGtWVFEoUTJ6MW4/dD88KzhVWXpRdT54OzBRCnpfTExTZSN2QXxjdWYhQCFXTSF9WU5VJE9Jemgr
OzxQeVQzPWp+MCE2dUttMW9xZW0ydEFmV3lNcWtOSHZ3PXcpdwp6bGBvK1FpZE50IXBob2dzI2Vs
PHEmPlJWQWp+VjthNk1MfjJtM14mZ2JVJFllSX5FXip8OV9GQHZiJFc1c09qUDsKeig4dn1OeUpw
YSlhaiZ7ZCFfT2RaZXs0czVDOEIkR1B0Knc1dVl6VjtmNHohMmVOTCtlVzw5UnRRUm0+aXleeSF7
CnpFVDh6XnpTYTd4K0pJTzVUSVVmc0gjTD5kZ1ZCfHYoSkdiRVUlbD8wKnhadmtpYGYye2EoaEhY
YHc5Z01JTlJMewp6bWk1WXNkIUNGblA9MytZPGJPeilmQWBhLXE1dWJlOWY7P3hSNGc5LWJSeTND
KC15USpfVTBtZD5FdjRVdzk0IygKemN2JVJNI1dyaFN0X3d3WlQ/ZiVBbFRaUiZ1fmRgc2RGb2t2
clAkPmh4fFcmZG9CfWhXNn44JCV5T0k4XiR6dWtYCno+cnNuIV91THB3KHFoSDU1TlZufig/WU12
UEdLZDF5cFN6ZiglKWF3Pzhsdm05KUY5KEJ+dntkailtRnI+VC1ebAp6JUpTY2hvTX44fko+SyFr
RypHcWc8az9uRXU/eCpYNkZwK3VtJmh7d3ZzJHphKzdqX1gzM1Q3WjZgSko4N0NyNG8KelRrbHVV
YyFuaXBXdW52bjxeZkhjSTdISChxQDV8QyZFWSt8bXw1JS1wRzs8JUJCJVdRJUV5Rk5ufSl5V0RY
SkdGCnpeVFMxWXNUaV9vPGJWNHUhWHpJR0EoX0goZ2owPXs9O1ZqXmNOMXlGaF5QNkhAM3sqYHFI
JmYqYCVeZ3UpNW5GTgp6QFE9JGx7cHgoeThIRy1GUmxvblc4Vl5Mc2V4bGZITUg5T35ge0QqMF95
THU4dip0T0BBZG1YKj4mSmgjZFBeSncKelBUNGRgQ0RBNz9kaF8rND1NanVCPmUxPnNgNG54KFh3
eWQjZUZmJFJRZmE8KztJdyF5QFYmSX5zQy1GY0FBe19oCnpyWT5WO0JSRWZjX1MqaGwzcjt8RSgk
TzFDYWJaflhUV1UkYT17SDNoa0VvSTtLfW9fdmM5TkdWPCFLVksyQHl5Swp6KCN6Nnh3NE10MkVZ
I3p9a0goclo/Z3ZsTF8zZ1hxMys5XnFfWTAkR2N1RH0xdF9JWnNmUmxzPV81cHlDZGs4fVQKYjEo
VXhCODN6VnsqWj5CQSpwdUd+TElNYT1sT3FYd3hTM3I1CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3ZpZGVvLXJvdGF0
aW9uLTI3MC5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMjcwLm1wNAppbmRleCAyMTM0MThjNGEzYmJkZDE1
YTRmNjZjYzc2NzE3ZmMzMjg1YjE2Y2ViLi41ZGZiODg2ZjZkZWFlNmE3OTQwY2VkNzQ0NmZmMzc5
ZTBhYWI5MGI4IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDgzMQp6Y21WLUYxSGs7aTVZ
NztnRC1JIVRXTU9tdzAwTil9MV5AcT9rdlNkI0ZfQzkyMFdxPGFRMzhLKVdyJjBUQ0kzQ0UKenck
Wkx8Uz5mPiM0MCpTXk17TWB6b2E0PEN6MCo4dFA5c0JXPnIkb0tEfnI9WU0jNyNXQT5RPHgzK21q
TWp3ZFcwCnpDQFhGaTAwaylqJDc1NmIpTzE3TmQrc1lnant3THtMdTZ4M00pbnklV2VNZlhgcm07
YXJDZ3N0YWYyOHZINnc9Qwp6QVJPd3kxV3dIMVpxPUxiNTwtOFRXUChtajYmJDl9eER4TnVjZW9n
V0VaXmhuNXkwfEx2dXBxVkdRUVMoKmdkOUgKempfZkFJcGtYMlAtcjVZVV81aHhBMzhsYnpDNEBW
PlEpTXI7YSRBeyRhOHU7dE00ZEUpTzRvK3pzaEl9OSZpRyN9CnpfPylWNyMwY2R3dkU7MFdIQlpM
OVUrWUwmSFBuaD8tSWhORUgxe0oqakZNRH1MMFcmWW12YktsU2ZfVHJSMl9rZQp6YmFadzNWOHch
ezhmNGJGekY+VU9CNFJBUlFnODApO2YjWW9vcHAyKno9SllUdTRSQD4yZE1zSjBlfipfSFFDbUUK
eit0e2J0SXR3V1k9b3FwM1dKVGBRM0IpPmFJc1d7YUE0WGV4WldKLSFIe2AzdEF1I2loZlhjeUNU
Tk9LcXA1dVp2CnpQVEU0em0oIVBSPmhnYzQzY3YzJVI4UX1iN0ZacE09YGBqSUdkfilwJEJLQDYz
VmpGTjRYd09fcXtpUzFzOGRrJQp6d1NZZyY7c3tEPmlpZ3h+aDJRbV5LKnppZ21lQENnUiYjUXk1
JFBHPTk1Sk5aZ31LZTRnfFR1VCRGQn5NJkZafm4Kei1nNlRwT3w2US0jT3t5SkVnLW5BJjNuYFJ0
Py1RUDFeVUc9RXA1N21laDdiYHJ9PHxJVSljQT5DYS18THpNKTliCnp3JFRnaHVZSURDYTtQWGk+
R1RFRjUwZ0soajB+S085REUpTkBjPS0+bVp1PHkrTk57QERNPmJqPHYhQ2o9eWlqXwp6bTYkaiRT
anxjYikpKnpKa2tlYlFHLVEwY0hJcyYjIU5RYElUMjV7I2V0RENZNEpYVV9NdG0jZS1jUDVyd0V6
R0UKejEjTkZ7Yl53IUQxI1NUXmxnOS0oMHt7UCMyTj8kZEttWSYkMEFRMEwxfXk9bmxUUVh6MGFC
QnMyMGpgQTVfNUU3CnpZeWJjTnU1KXlBV0I+cEYwMDAwMDBSUjkxb3xGNnI5UlhtSThWNWY7M2pn
NSU3aVZNdTNhcl5pNXVwRzgwe3tVNAp6MDBSSXI0LXpHbzBSUlNRPipMRUohMlM2NjAwMDAwNms+
RjhiTn5QVjAwMEJ+aHlWbG9oPzlaYExqZjYrI3NfbzsKSkgjOUNXRmZjcH5jam97QQoKZGVsdGEg
ODQ3CnpjbVYtVjFGLXpnNVdvPFNELUlgWldNT213MDBPVEQxXkByNmt2U2ReRmQlWD5GZmxQckFZ
KWBASWJrXzdreXRHTwp6RnRMVkYwKUo+X2g9YyVkez1IfUJTbD05VWshQyloaD8yMGViVmgoOElz
ZHtuQmdnS0NyOVkrdVozbH4wKUVWREIKej1GcHpfZnYxUVQ+NSg8bW42ai1VOXw5MTFrJTNgIWxm
ZjU+SyVZTUc1fThFYiEhVV8jMz1ZWVExJWdHSEQwd3ElCnpaZH4lJj07Xjl1QWNCNlFAIytSdndg
OD1NaXJmUmkpUH0zKj02fj5YbFc+NDlEYyFqTTI2bkBUNGBtQWdiO1BKPwp6aS12fnhQQF56PlZF
RGFpRjBIckR2P3JwbVY4Wl9xTEhNeUJ4aUQrKkxqY0dkaEhYMmIxMVZKbChoKTIpMCRlTVgKelhL
N2hPVk1lTlI5KURDWTstRzw7ektoNUdEPi16TnMkfl89emdDdSkkKDI5ZkBBVkg2JWQ0SFooTnN8
QDRxJmNSCnp6PD02e0l6VG1kM3dFX1IoLT0+QFl8RXFGcSl0KUh7VEkjfHB4eXBLM2BpNDJ6dGFr
a0tqZFotUEt2VipkNzVzagp6VDtwKDZvWk1sby1ZTj5LaGFHT2E1UzMoTUNuQS1ANzRSN2JeO2Rz
MkM/SXhqVlYwaiZVRD1VbGZCYUVDMDc1U3IKemNBOEdFTygxJCEhTGJ5U3hHTk1saDZaOyp6OXF1
MGIkPiQoZ20rc15sbiZfYHZoUWE4Z2dke2c0eilRWVltPXc8CnpsSGtAe1k0TWY3WX4lZG5YUTdJ
NyZya01jUiVNTzVSdVRaR01+Ti1+cEFjbzhVU0EjYWp0cnB4PlBEMUUpI3lVVAp6cH15bW1wX25q
d19qQU99Kk5SRXk7KD9NKTZ1aXhePWItdzZhS0ZSZDQwc0xRJUJ2PHNaS1MmNTs1WDJKZmA5NGIK
ejhaalBZVl4leFgqLWx5VTVyQXE4T3FJQ21BeGpIU1F3eUBxVjJZZUI5cCg+X29EJT5kc0xVTDZq
aWFSdztkfmZqCnpEZ2doWEw7Mk5CIVN4fjhnWk17cjtoaFpMVlFxP2E0S2UjKFhUPUFwZXlJSSZu
QU1zOzEzdWQxVTQ3SD8rTkcjRgp6PT10I2cwMFF4Q1oqTykwMDAzLWxjNCVZKDBGenE8V2RSJEwh
MzgqempSZ29BfE5qNjAwMDAwMDAwMDAwMDAwMDAKejAwMDAwS21ZJiQwRHpNbDF9eT1UbFN1fHQw
WH56UzIwazdEeyZSRjxZeWJjTm5zYW4+V0I+cEYwMDAwMDBSUjkxCnppZVl3UkZfUm56ODNCTms2
YkM7azM7KkUmN2lWTXUzI3syZjFaWTQyMDBSSSgwMDBidyNSX0dCMFJSU1E+KkxFSgpaITJTNjYw
RiNnaExqZk8/KUNZNzFHJkw/VUZmYypvWnp1byYKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24t
MjcwLnZwOS5tcDQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tMjcwLnZwOS5tcDQKaW5kZXggMDYwMzMyYWQ5M2Rh
NmFlMzMwN2RiMTlmYTMzM2YzNzdlMWQzNmM5NS4uZDk0NWMzYmZiOTYwOWJkMjk1ZDA5ZWE4YWJl
OWZjZGU0ZjI0MDhmYiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxNzc2CnpjbVY8TTFg
cWxCN1JWRWpDVnZMQ1pEZTZ8Zj1Qb3kwMHI7fF81ZTV9OTJmdXExSkhqYihmajxwPVBeZ1RDJEdf
OAp6Mzt0S3VibCtMJnkldmJ7LWlzM3ctMmRWRUB3Z3VZYjZtc2sqQHVLYiUkMHFvZFVIN0RseEZl
WVRkKTlzVkRPY20KemhUKlpAbStyeFM2MW5PQEA4ekFtPWw5O1c3WXxOT2ZrNVRCPG4oOUhQWnVj
aXU3NTd4MXRNeWZJanZ9VHd8YmZfCnpUJVp2RWQleWslMnJ3VlZ3LXdPPWw+MnNzX3k2OEFDS31r
RWQ2bWgqTUwrbH5wRDROcnpaaHJ1ViZkPEU7b3NWTAp6Nnl5R0dpIXkpYWhzVnBZNWV3amFNaShN
dVNMbCk4OCF+NXkqYyZyX2lATW4pZEo0RS0ken11ZGdUbWNgbmw8akoKenorWmBgUCRQKHV7KGwk
WmhiQnZHUlF3TTM1RWBEOUlqNkQkZTRTMEI+NzFpe0RsQVlvPSZzVnR4M1pDPWtocSpiCno1dShz
MVRhNUVUcmV3Jk54VXRBQ1NhO2lpQEJpdUZSam5US2MtQ1k4PGxuezBBJlBrWjFpWnRTYWk3YyMz
T3gkTwp6OWVaX2M5KkhUVXVkYXBBQ0BNdmtLUkAyZUpJeVpgbHRja25uQTN5cU5xX0lWNkJxYW57
T0xXdDBJb1NNYSNpYSUKemVyWjhHYzZST2BjO1hZVz1hKG13Pmt9Ukxhd31zPUlGfDBeejNLajsh
ez9BcyN3RUpXXlMwKDJiMVB8VSZOfmsjCno/QkNELV8mNUxrIUQxckp7QUJPNytFKypOJX1CeWg5
bUtAI3JKNDVZYHpHaHQpYkdxaz9nWGQpYjZGQWdTTndBIwp6TDYtJTJuU1ZhKDRgKSFCWUdHaHsp
dyhNcDlsMGF4a3hyQUUhVFMhMCV5Tm8oMlhlemtlM0xBN01abG1LMjFnKDYKendZaiRnWkF1fTIm
JFlLWDtQdCNzenJTaWlxUWopWjg9VmVHTmVoeUA3I2lOdFZjSHFTMTdfdlRafGVOPDZQfUJ2CnpN
fHopNittZ0BpcG4oWkcoKDJnbjUzJlBBNkFZTzxPU3JqYyZ3ckU/KSl4O19WZntXRCpvfWNTUGFG
am1PQ2klTwp6alQ1IytAbzU0LSZnTzI7amlMVSZqMHdCKz4wc35HdTVgZFF3MTc3QVZFTT9BeH1I
IUtpR2ZwKCZzQGVHSjBrdEMKejBtfTxRcjZ7VHgtNyg/dmJEUklmYCZabTYyN3BfJkwqbFZ5Pm0t
QHVNOGBoUFBESEs+MGh6WGsjJTYrXyokVzw5CnpxPD1BcUB7QnpqQVRHPntmQTRrYV45e0lCOz0o
KjNAek5TN3h1O0w7MGV8LSlCSSRwVnR3MzJ8OTx3fDV5T2FVRgp6WlVYbW1BbGlGJHZRTGE7YkRa
QDJ8Q2MyaiN3cjh1eWd3dXVrYyhzKEZXY15KaUckQEl6UCUjPj9AV30+T0pHKW8KenVLIylCdVkz
cj9fY0hSTFM2OUlLeSk9Vz17OXdTPTR9VUJeVG5uWDlxejdZV2R6IWFIMWFENTRTMmd5YTEwOGRP
CnomPGVIWXhJUTVOPEUyO2EmTXF9RmJsPUo9PmhHMHZyPmBXeE9CRHlkUUR6SGI2WHppRiVpcH1o
ZSFAKGlOISZkMgp6fE5oUWdAYTgqRl5CV1hJTnZ1JUxfd3hkY0RueXFyaj10eWNEKzRkcGdkTD1w
UHhySThiPTw/Kj0rcGE0PDl8RlgKejMqTWVrS01ITGd4bEcpVHQ9LSVwPjBBM2hTfioqMjx5QkxE
KztBKW5idFkxcHc5TU5oKUBreytMLXN1dilBRCFUCnpkaFElRms2aDxDYmltPm1XbEF3Ry1VKzR4
NjAlO29eZG1HXzJGN1AqMS1MKWFmOSY/Kzt3Ui0qKyNWT3hPSW5Qegp6OWJWNWBfZ31kbWcxUHVK
aXFDJUVRQXtVLT4zO195Ums+am15RD0pTW0heSgtJCRgN0wyLU5RVGpzTjUkTHhHXlYKemYhZ310
OH0tSiR8QyQmdzBMUn5mMHB0OylMMkZfIWdNeW1fO2NFRVQwRElyNW84SXlxcEk7fnV6JT4jI0pV
M343CnpRP196MSFjRDYpUmRaKXFRPENXOUA7TE5KVD5wcktnUjVDfV9GRy02QX5ffj18QnZCfmA/
OTNgb1BWOUEoWlFqRAp6alVwS0s0fmBRJHgya2tyaHNfPXRFdUAlI194Xy1TdWk/fXNoelZKa00m
V28zQEE0Rjd1KyFiSTIrflA3Xko0e3wKenQ2OVFEazJPRkRxZU93Q19AODdPQ0A5eUReKj5GMmh4
YCp1NT5hfEBIcnd1eExBYTF3SDFgJGpvJHlpbjNFMiMzCnpzR1p3IXNxKW87Z3gpbGxhZn5XdXhf
PVZnZjAyUDtMLWA+VGw9UF4qWkFtSCZMPGp4ZSZ8fVllQ3EtUXFzY3dOVQp6SGcwK2tFdn1iazAl
QCtfTF4hdFBjTzVDY1pEezJabVIpelBMUjtsdWBnKEE4RC1yXnQkdm5gYXkwfH0+PGVSeU4KeiQj
WEJibzdfVU9GfSs2NTZmJlQ7JkZCXzNgd1g4fHl3cn0zN1cmTER1RUwzbHNIeW5eI2VkUkMta1d9
bFhMdV9QCnpeWihIRSZ2Y3pHXyVrdTQzJGQoeVQyPXxhd0Q9PXRPRTx6Vns3U1RRbik0cW80WmpW
fnZ3IzNLXnlGcClLTHohJQp6X0AxRnBGfmF4JTh0YllZXlhQN3FnfW9RTFptbUVYP3pfeSZjY1Ml
KGY4WmE4Z0pBWmcwbkJhaFgjIVhtKjVNLXoKemU2dStnUDFLeXwwZH0jQ1JZMjVFMzhWd1locHBO
OGRZREkjaFBeU0ZwSl9rJDdKQFNYVjJqVF5YMS02WW1uTU03CnpacWpFflVwRX1ianR6czIkaGNx
QHRYeUI+K0ZfPTJxWDNoUDIrO3Z4bFVAbjwwYnI5PzNQa3x8bGJzM34yTCg0TQpTMDBsUUZsZjRR
OzB0VCY8MFNrSSpJRVc/eQoKZGVsdGEgMjI0Mwp6Y21WOyEydDQ9NTZaO21CQ1Z2UU1aRGU2fGY9
UG95QVA0WFZfNWU1fTkyZnVxMWZZTDYtKCVpVy1lVk1keX1KRXAKenRvTkF4OG1yVEx4OGdvRm5q
UnlEZFQoLXg9NnBYclVsT3xnXn4rPyotQERVdmR+YSFgQHo9ZlRwM3xBMW5FZn1WCno9JEwhPWVR
c2E/ZXFZYn4odGQ+WVJebFMxRDx8TVBTNzxMSm8oSj5XLXpNJEZNdHxCbz1PZ0ZUY3chVEpLKkNy
UQp6JHV3OUhtO001dWlDKnFLV0o+QUt6eUltaEh7SkozI2YqIUUrRjl2d2tOPHZ1dlgrYXpudEp2
ajYxJCVDZ19ManEKeipHNClMKiZVMyhJRCpLIzFCQDJnQVM9TktmNWFzbnEjLWUyMGl2bHVaJmpL
N1ZQcCV7Sk1kckNsJjN6eFNOXlVJCnpFOWJRRVBTei1mbFlkLUlkYGNNeXtJN3dAfE5kejxWen54
PnBSbit3NihFdiZGcURqMFVYPH5IcGVhVDVwQzJ9awp6U216dCZxJHQqbyliKWokUlFhaFNgZC1p
MFRoSXZ3b0c1Y2k9MH5venJ2U3pAJXk3YjFKT0lUJiNMeWQpSS1ONFQKel9HOCVOPSh9fDxrJmAj
ZUkmczxeYnhLMl8zI1o9PiQ1fDtGK1VuYypDeDRVTWtxbGRTKHJ5SDVIZSZSeEUyZkZDCno1UnJq
SVhCPTwobEswRXRWJEotQERMeHAwJj9sQ19NJE49ZzB5cn1WSyZTcV5OP3RlIS1KVG9pRjVCUkBI
VkBBKwp6KllwJD4oKztJO3Y+RT5GQE1tK19XZS00cjY5JjNaQU1CV35YYlpKQkhuUDVPPWtfYitI
ZGFUc0YjbSFCQkRhZHwKenI9TXMrXj94Yk0/UjckTTRMbVJmN0EyS0FTQj5FP2Q9dHs8KVNwbVhI
MEdzSilEbXlfPk5Yey1UJkxYOU4xaiNFCnpsM1Y2RTtoQT0lYTUxJnUyNEFLX3xOQ3pQR0pwVHNJ
ZSp8aihhcj9Ya05kbEE5SSlDPTNhKVY/Yit1QyU1UCUpTQp6WEZGdkU/RnN9YkZCUXZ0YT5kR29w
JG9QTGp2SXY+dnUleGtfPHVDYEU2Q3poaUJ0YmhVSkdLTC1xcV9HdypTekIKelRya1hse01lIyVV
OTFXYkM7Iz5wJk5zTk1DdzZpO25KWFN1VXpPXnttaGExK3lYN0ZMYDFaYldycCpSTXk4TlcjCnp3
IXtDQDtTS1QzSzZJdXpXRnNZbWdeI0ZYPWVkNX5gKDh0aCFaPCQ/cXhhdklUeTN7aDI4e1JjUSEh
UCQpU2EwJgp6S3p+cldOcEtoK3R2a3dXTkRufDA4Y19rK2pPS0ZAciZ8Mj8rU1hhfkhhQSNeU1I3
M3FsU3E4TTVwc0s5SzM9SX0KeihJa0A1RjdnYUVXQUdDZCF0UCRgKX5JfWdUNTBxWGpNLSFyUjNE
VDExQWZUZ3xKbCh5SjFYZHJlQzxQY1MtIVM8Cno2eyUyYU1vJX5SSCpsWi0hJCEtb092byE4U000
anctaFhNYyt5d0VlS31hZTNOblVGfkBkVWUhSlBIaWZ0ZEI8Mwp6YkJUUD9Nbk1nK2pDXkI1cUZN
JTY+T1B+fnZxWCleK0dCVVl2JW1sMm81IWRzNTNzSE97Vl5ZUldHPFBYejtHZnAKemNPdXdaQGdN
NXM0d1p4dV4jR1E2dzJzRnxjbkNpPFNAO1o7YkhCUHxgajs+NChZTnFRJnU4dWFzQEl7JE5gRzV3
CnpsVjRhTHFyT018PG4qd2RBajlEPmFNUFRmZ3Zla0VzU009Mi1XLX1FMjRIXndZcG5ObmJac3E5
REpVR0ZFLVUlfAp6bFZDM2xMRTM3PVktc2ghd24yYDhsc2ZYWSNpSmpIcFlQcVV0TzQ5V0R8aEBN
O0lIJnZ6YGNMfXpyUXB2PDEqKUcKemYoc0Zre0hQX2E5eFQmZTBXMUJKbjczZ2tyR0V9PFNKbDFI
aHtOM3ZAMH1JNlh+QnB8UjsrQ3Zyc25OPzsqfENoCnptSHpNWGx9SH4zRHkzVzs9RCE4KzxWcysq
MGc7SXkoK1Eocl9hTnx8X3hHfDVPbHoze3FGZCtaNnshSmQycWR6PQp6KzNGZz0jczEyRTFeP29F
QWB0fUY1eU9HX2coMkBxX0ZuUVcmZihJYGJjMChMaEFlSkdSaGVxST8wP0ptNVZVMD0KejJLekIx
OHVySE8qQXApcTtUR3s4Tnxga0NUQSZ8fVYyfi1TaUY8T0NoPENJcFFZTWUkdDtwOz5CciUrPigj
bUt1CnpVXz8zQCNNWWJvbUBtekBTaWohU2A+b1Y7YWg4fWg2Vi07Pl9BNnxDPnpwIT4+I0xhK3o8
KG84N3AtZzFfVVNsSQp6N0x4dnkkKHpPe3dhbHs2ZDJqb0wwKU4jM3hiIytTXnE9YWRIOHxLKj9Z
RnlkTWB9WUFPKzFQJUVzc1BIZyVlNjwKemlrM09Oc3sqMjk0TExmYkFUUzM4Rj1taWwzSj9iUU9V
Q3VYLXI8V3YpWH5gY2MrNTNucmNjVHhkJEg5WnpVNilZCnpNWkZzP1AxdnV6OU8mPExnIVV1TEx6
U1oweklje3VYbW9jZE81TCRzUH5IJkZnV3BUczZNdEUqOERCOHhXbiNhUQp6cE9+I1E/ampYSiVt
PncyK1FUaEBSc0VkMDNVSzJ4R343QllxNnRAK3JKNkY1YEZhRCsrP2NheWI0ZUUyclNEY2oKelpN
UihXP3IqbG93eVoxUWEyNjVgYmExQGp3d359UGw1PEZuTiZtNHYwSTE1VXZQeGAlWm9JT3ZNKEwt
V0otei01Cno+MzlXVXR4KiR6dSpKK25BJUJpbitrbGs4SyNSaXI2UmpWSTAhRlR5emRwWDlqY2RM
T3lfIz18c2khZEprMHR9aAp6M1NjNmFENXkqPG5hWWJCMXZjdUo9SkMoe0w1TGE/YGB6XlhDRjFS
P0FaRkdQe25RMVEjbEpffl4jNUV+K2BjVkEKemR6aFJXcFRiYksoYT9tbntUUV5wM1d0N3lgPn0w
QVRyZFUxLVNEMjg+YzskNzw5fGQ9VmNzWmcyOE9ecD5kJnZACnpsI249dCl8fitMYT9ZRGU5dF5Y
UUFCMFpxQytfbjVNTHUkMlJGZDNMYnFuZnU7ZFQtKzFqaCpuYHg1KFMkSkJSLQp6SH4wNnk+Ki1m
XjUxazlOYFAreExYSFhee0cmR2ViczxfS0VPcCZ3PCMwMl5pRm1Qa3xPTVEmTSt0NHhTTlpraisK
eitgS1Mxe2h9KlY+M0AwRGtSPGRVKXRCWkttQ3Z2NGliXlU1bGxydFYmKS1uOVYtcFghK0I+WW9X
XzNeZUV5UmRjCnpaViEpWXI4UEJsbEpERHJLSlBaPEkyJTloPUpGJHk9UT9nTWZ6eXR+VSshUGB7
WXszMmtqPlI2NGwlUlktcXQteQp6KmY4KW57MEQkMGp8ZytHaz1FYW9pb0M3WlY5SVlxZXA4Jjdt
dER+JEFBZCV8OCo4ezxePHF7WlNgQHVEdXFsU2kKemJ+R2deaDNzN0h7V3NVX2Z5WSV5NzEyRCZU
KmttaVA1Zl83enZYeTZWIzNTaTBWP1ZoM2BRST1zSUZqODMmQ098CnpRVUk+bHl9fEk+OEllaFco
eypEKmwmMzRwZDN+SCg9KzEtTD1kYGpPJHJvcFl3NVpoNnEje25zckYra1MwMDA4LQp6WkV0VU8w
RiZZZCROXytwc3xXWjJmUm0mTU1JaStNMDAwMDAzVEEwI1l5a2lPMDAwelhiYUhlNjAwMDAwMjgj
ZHkKUjI4I2ZiM0pGMzIydzs7PTMzXm5tWl9AdygKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24t
OTAubXA0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVz
b3VyY2VzL3ZpZGVvLXJvdGF0aW9uLTkwLm1wNAppbmRleCAyNzlmMDliODM3Y2Q4ZWQ2NDE0YjYx
MDYzZDIyMGQ4M2VjNzNkYmQ4Li40MWUzYzM2NzVhNGQyYTJkM2NkODllNWFhMDE5ZTJlOGYzNDA3
NWUyIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDgxOQp6Y21jYTB1dHMybDdDKzFYKz8y
ITsxX3FgRFleP3dQJnpXY2AkN25iKVU2O3t0PEozVD1kakhncDc2JEdBfDg2fTAKenRUWDllKjhL
JlNHZylIfFZxWXtjZjM0P2dTLWYpaERjKk8lbmJtRns5UzxqQEp+KCM2XipRcW5ObHxYKit6bGI7
Cnp6NHh6aW4jaT5OZmM/NXR7bz1oITB3SFhGOSkjWDZ7cUpHZGZCKX5LTmZ6Z3ZAOytgenhTR2w3
bz8xT3NWUkdgTAp6QC1NZEgmbEtjP3dVX3NxVXJJU0cmTT4jV2QtbWtpez5tZnpLaCZGM0ZSYWt7
X0AqWiEoMGd0RT9SIXRFY0JJPSkKempyJWQ8YCZxNzJudGlNUHpoJiFpVmBHfUFxM0NubSFmPDB0
TXNlMWFyOGtTdEgmLWZIQHl0Q3ZVSCQmZ1pLNkhYCnptVHN7QXk2QHJ6Um8kLXpVclQxKjtJfSFj
XlUwQy0qNkh7QjQ9JUVRXkErV05FIy1VWDtxZXpnK1hMQyF2SmNpVAp6Tz4lcEE/JUN7SDQ7T3ha
PDhZPntCakNOMWo+TmBVTm1YQ3NXNkYyPE5VQSZhWn1+TXp7Sip1JHR7Pll7X3Y9ZEIKeiRYTWIo
QDRjJGRqRT0zb0Q/P2x9d0kyUndTZUV4V3l6MCUzZ08pNzJGRSQ8QXg7RGAzc3tZKWxYQzxvaj9x
OWJ3CnpwVEJNT3JKKFp0P2BrPF4oU1Y8IW1UNmkjQTdnalNrVWhSc1NHaGgtQGxNPmpEWEokI3Ir
ako5c0FGQWg3MEooMAp6bUglPnd7LTM8PEhuRHY1VW81b2RFdEhFKS1fXi1CYiVHPUI7bHkmOHtW
emd+dXBXRnJXdil7RCNPdVowQHI3TD8KelRiN3hobUY/ZEFtTn1mZXAoaSE/d3ZRbSFxKSEzMmV3
aEBRfExYVmxhSmc9TXdAS29qdFp3aiErWUtUTEVle3B7CnpIUC1zJnRnRjxHQFh6dj1FMUQtK1hn
Mj9LK2syaTFmeWVGY1hta0k1ViF4NH1YLWhTTyErKH1QT08rUSR6UkIpawp6Wip6IypUTz84TkEl
d2x+VjdTQX5nbkg+eCtnKERCWkIwSDMyY0Z7RTlzYSFHK3hhUW1YVUlQKFdNRSlzb3QoXkMKeiUm
MCY0STsoe2UxMHc/JXtRblEza3gyJi1DdDxRN249YSQ+JD88RjxqNnN2UHUtVkJtM0tmP208cDhE
RDZfKnNKCnpmWWJtMSRlNE1GV3l5dzwxPSVEUzZERGkxK3VMJmVmNTslN3AyRVBqPUJBdEFMWkhQ
VVJtPT1WezZlYko3I1l8eQp2VU96c3FibH5yZ0EwWWlBTmhMK1ZkO2tRQDR9TzV+PFZveUtPZjI2
Z1V0PSN9R2RJeVFHJXhARjxSVzJ7CgpkZWx0YSA4NTUKemNtVi1kMUV+RDA1WVB+aURofnhXWkRl
NnwwMDA4NzFfbDVCdEMyWSM1SEtLZUdjWWtSTygwYHJXalNGdkdtJSY9CnowV2goS1EzOEs+V3Im
MFRDSThuIWpkPERXQG1WfFM9MXs5MUBNPTFkWVNlMFgzKnZpcD1reGVKYDRzQllmbFg1dwp6NjZm
eFkzKTZZcHUwb2ZqOzB8e3UrbUo8YU1KZ2JzISRJbHE8SCpZd1NteUhFOXxoSDw9UXVSP0p8T15w
QWBsTUoKeiZBbjxlZVA4SzxIJkoobj9hNCprSHc9YU8tOX5NVTJCcipzU25fYHA9fm5eeTt7Z0JO
WiZfaT4/cHRuQ0Y5M15nCnopPGxnfTM4a1FmeExwPGptKDlNTFJDVlFfIU1OazwyVkdMLUZiQW99
QTFhWHpFdGs0Ym9TMmx4eVRiS3hTKEtuUgp6RVdNbT5pP2B7SXIoKEBBdFNram1NeipQbzd5R1Rt
P15sfjhuZWAmeWEtczU+RW9BbDFRMEhHTF8qM3BmVUo4cH4KenNtcChvPGB4Qz9GSFVpWWFHPk5a
djVtOzNseGA8KmtvaD8qP3FKO3h7Jn4oK05zNXE7SnJRTXRBfWY3VzZ8P2hBCnpgXmR2anYjaUFn
U0tEbm1JZTNsd3IpSF81X3x7MGZKITRXTFFMYTNfKjA4b3oqKT8tZzs/RTIxV2MySEpkTmRQfgp6
JG8jc2E7R2ZvPjNkUDdwJnllNlIlakRKMnVeQk5KJGslQFg/U1MtaUVjaSU3NUxTcGlrdUZqZEVK
YWhNJEwjQGAKejY+NGp5VXo+Nz1lZUYmOUxWNkIxRWNRaEs0K14zS29QWll7NyNOYUJFIUBRbHlm
elFiP0ticWNxUXIyaDk2QzE9CnpRQlpiWkNxNkBNKldJTE1wY1VfLSR8R1FvQzY8dVE3RHF1V3Zh
Nj41OHtYbE07THo7NWxfak5OSU9+SEpIZm56dwp6dV9Ec3gzYjZnNW55TktmI099RkdCSnE+Wkht
JiZGa247QUArZ01PSHxIeXJwMVIrMGpydzFwaWE9ckY2bHluaiUKejY+WmlsRERGT2ZzO0dKJkNH
fEglLT1PTHhlLSZZJHF8Y1k0VGhuXnVqT3s1Um5+NzEpTGhWKjx7a2lFMT9sKiUwCnptcnJHaWVr
MWtNWV8yPTVDMFF9Y1g3STBKMDAwNjRAc2xlQmF7KEtacDlNR3F8Tm9RdjF7d3hIMDAwMDBmUnAo
Sgp6RWRpNjBDazlqaks5aFV+Sn4jbVdiOTc+QzAwMDEqYjk4ZkwwMDAwMDAwMDAxMDAwMXJWUm1D
TjAwMDAwMDAwMDEKejAwMDAwMDAwMDAwMDAwMDAwMDAwMER6UDcyMHRrYXxLUmBeWEpofml0bDJe
WVhnfmt9MHt9bigwMVNpMDNUMSErCmgwMHdDNTxJNXR6e3JMQypsV3FxPjB0R0xWdklsZXFHJkw/
VUZmaTxDZWFgPkAKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdmlkZW8tcm90YXRpb24tOTAudnA5Lm1wNCBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy92aWRlby1y
b3RhdGlvbi05MC52cDkubXA0CmluZGV4IDNhNjYwODNlYzRkZDBjMjI3MDBkNzcxM2Q3MjNlNTQy
NGMwMGNlNDMuLmI0YTRiZTk0NjQ5YTBlZWQ1NjFkMWExY2Y4OGY3N2NmZmIyZDFjZmMgMTAwNjQ0
CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTc3MQp6Y21WPEgxe0M+KjdxQW5NQ1Z2SzxaRGU2fGY9
UG95MDByO3xfNWU1fTkyZnVxMUtAdSooRUlXSUBwei0mM3JCai0KemQ1PkFzZU9JTFNVcWdDTk1X
VmVpRSVKSHpkPHtLcmpaS2xSciFmQ0ItQjc7QXpQWCVxM0xBJi10PUlxbmMpOXV7Cno7OFhFcjJN
QE1KME5hZkc/QWF8aXVmTjh6Rk4mMUgjRi1mRXd6fTItOTRacmxLN1U7dlAocDxrKUNmYz4wNU9M
cQp6IW8+VSYtI3dgbXY+Q2h+QGFTZHp7PCRAZm9WMUhPYGgpS0FLWHt+OGF2aW8/YmNRKTxAPEBo
e3p3fm4xVGg8Sm0KenFpQjJ4YS02Um14YFN+QzExaEVLR2Nwe2xCczNGdjl0SVpQTnUrTTV7VHIp
aEhXZ2d4X14qJTg0X3N8elVoNVQkCno9MHt9VVp1XzhNTXR9NG5RS1poOzUjfTNubWJWY25sbEo9
YF8qKSphcWM2QmRXMXlsc05pPjl4UyQob0RLcD9+Zwp6amJEPCRsU342NzdwaUNecXpAN1g9dnFy
QUhMXklCVWpUNHwwN0lMa0dJJFJOJiZsXlExK285b1EoUSM5QHs9QUwKejNWLXRgelYqdjxAeFE5
QnhyaHI9e24tX3tAZkUoJHh0ODJ2QUpFJVY5RGZTdDtiKlF5WjJQeFRHQ2hSMSE4NlBkCnpzXyEq
TVhULVhFdUw2JHFVMWRVTFM8UW4/JSFTMUw4NjFvZHRANnE0MUlVeHBEYzFgUkpnbk5hb2A/SWhF
X1Vodgp6SHxHOXA7a3YqZkp8Y2VKWVQqKjtJQWpQWTVKQk0wQSRPJTRoe0pzSFh+MmFYck5NXmUm
eFlzV3d2RkxwakNiV3MKekFfNTBqNkBTWFN2YWp7PzkpMjB3RDA+YEFqKHx3eUVETlAyVnJrZGRT
UyRjQ0dNMnUmdkhmdUtjOX5AJjkocUgyCnoxRGh4TjRSeTRWRXI9dCRJI1hoZEQ+Sn1DPmNaZz1N
I3coI0ttPEVMRHpJZ1RrdTUkbUE8O0pCe0ZyOGJGMkpWXgp6KDBGMCQmdV9TYnhgTUg/QnpuKDk5
ZTNLSDlaJSktTn0zJlU/dGh4OHJ2cUYxXihWLUd4cTBfZiErNH1vQXt+emcKeikqKihCPilFa2t7
fk9pb21BRlZLZ2pVdXdBRGdoeEo+UmpmbEJ3flFqVTAtJXFoeyhkSWQ5MEROaGt6JWI+V1pkCnpH
dFBATXBYWkhiU0h6Yi0qKEkpY0ErVi1lO3x+TU0hIVJtVEBwKigrQDRtU3JWKCRgay0mK2s9ezw9
ZEtiNTMxUgp6QiE5N1F1a3BocmdRPkxEO1JoQWA5b0QjY3tjPl9ROTshWUJQM0FyZ0NrJnFge3tl
MX1jfHNGSzI4YEJVMV5QR0oKemxOe3NnaFhXbStqI1cpZE97NG9oQEFkVS1rJXszdipWfikpKGYt
WDBJU15BWWtATWNHaVMpX0V7VTcoYThxbVM0Cnp3RHkkRz5mV0ZCVVFVMzsmSFdhQW0tLTZ5M2lr
Z1A+d2s7elMwbWtoQSFpPWF3Jk56QXdZPGVlNFheQX1LKCVoIwp6JCM8b3JjRzBzdDFgazNIaWJN
bktPLWhvNUhNVGA9Jk1jc3U+fXFxOHFzc1B2bj17bmpwIWFHeSpJKm84MFdlQj4KenpGa0E9KEFr
YmckeEhSYXs0bnVibFNiblU1NT1RVDNVXiNPMn1wbWl3OFVgUj5aQWZPZVZEcU0/YG8hT15uYkhz
CnpRb0UlSEYofkJtVmxreGRWKnBBKVNIJjRwckFsPHQtPl9jPUJwVHtqXmJ1U15OMEQzeE9XSDtO
KVBrdXJre2JHSQp6Q1JvPSU7KkRVaWRjY0IwKzVIdERjPGJrRV56U3UmUzJaYEFhYThzMy1VJWI+
ejM2M3ReU0lvLWplTWxkKXx9ekYKelV+TiYjSHM+YjYtTF9PeD9zJmkqTzxeQXNRLTI7JF4kdipe
bnJtJCtkeTZ1flM/dSZvR2M0I3hHUlpWOEErMHR6CnpzUkdlN3pwfDZCKy1BNEdyN24oLXEyfVdz
O2ZPYWJPITRTaTBlYHlUP2thaWp1d1o+TEspNXRRMzNVRzNManQ8eAp6P2xBU3pjejxjR3ckRn0+
QXRtcHNHX1hrVFRhRSQtJVZuRGFKcFQ+SkZoa2V9QFlwYWRVV1BybCErK1cpN3xlYTAKeiZoekQm
QWVNY2o8e3BmZCRVaTxmbTByYTNhO0R2Z3B+dExjS1Y/ISsyPXg8PEIlX0E2MVVnMFB5PDF8YVlU
dXFGCnpLKHcwYTd7Q0FURFp4PElvN1dAUEVIKlpGXl5uYzNxYDwyQk1LOD88OHZ6OVU1QSh2ZmFw
RC1UNzw3Uz0tbzhXZwp6YzNuPyk5SDlMeWNMSXx4TUlALUVXcTt+dXA1TFlYOCNKREVGc0FfOVo2
aUQ4LTFJMlJ3WWcwZDlubkRkWUtsYmoKej1SWGZxeW5APSNoYGoldlc8ejNRelVPQlpIJjR9KkQh
bGZXeWs3ZiR4NjhLZSUxTDJ2PEA0RDVLOFp1WCUyNntkCnolRU8tJXlre2RGZHNBfSF1R3xUU1pv
X0JHUCR3V2UoJTUoNFh0MC1ed3BKUipsSjkxaTElQ3ZZNkk3NlAlSXEwMwp6WHtVNlpKVGA1SXZH
eHBmYl9RJTBmIWMwZiZFck5tSkJgbzhFcV9yKHRDeTlVV3JHZlBqRDlqTDdsTWFOemorbnMKenU0
VDNrXjtmWmNuekhkXipMV00jRUp4JDZDSCZwYXR5aihwPnM1MWF1JTB3X0dqPzY7eXRmPj05RSgr
czxmX3ZNCnp0NV5Oc01NcXB5JTk0fGI0SlRxd0coS2FFaG1+VDU8b2ozfmcoNG5SWjwtWiU8S05U
N1RyV3JOYTtEZWZSZmxtawp6ej59NTsoZzkkVFgka2xOVjNUNEJNSWl6SjAwMDAwM1RBMCNZeWtp
TzAwMHpYYmFIZTYwMDAwMDF0ZSR5MXRlJmIKTiRPPUxOMjk9V3gzd3BgPllaQ3dmCgpkZWx0YSAy
MjQ1CnpjbVY7JDJzLXokNk5WUiVDVnZRWFpEZTZ8Zj1Qb3lBUDRYVl81ZTV9OTJmdXExT1JfRy1r
O3g1PXs7dE1fa3pWPAp6XkI8I0JkVCh9clhKK1ckbzd+TTY+QWV2PC1nYEdidVUxbjFefTA4YDxL
VFBpYmJNdjB4KloxZVA8IWloMDA0WncKenp5SXAyIWVqc2NabkFeX3xNc35PMTE8Zzk1I1JzdSRo
Wn09d3dOPmo9RkNYamhKUGRYKUptSGh8THBXenBrbWUzCnpyI25nX1R3fShANGpuWEErViFUcD5O
dnw9ITh+aGlNfSQ2aztofWxQTEVwe1c1Uzg/UEVkVGtSIV45a0QlO1N4Tgp6VE1QTlQhYytkcWAx
TnNqP15MO1MxRU0/OFRpPC0yVDBeMX1LQ1JJTFhObDFQNU0xNkIwbSZlKGBUZndjMz9EMEYKeiho
cFVZM15SI2J4UEpsOXxDfkpmST1RVn5TfHRpOGhVY2RpeCFEa1VxX18hQ19gfmd5R31zfH1Zb0Z7
cGZJK2kwCno2P2lSV2lkJGZreUdfaXQhUzxZUCg4VSN7X1FiRzhINj5FOFdMYEJmcmRYT3lKNypH
UGVNazFrJEBsJkhPT0NydAp6X1RAYGomWWk3UT15WVdsQGQyanJFM2drX3g5cHRxeDNsLUpTT05h
RnBucngkUDBXSzZMYT0heF8zRCUtRmdOdjYKemZBfFdlKFE4Nz1MdiZTS0w8P1ozZUpzISV8RX5w
dk96dkx0cX1jLXJBPUtJVGw7Y2g7Tmk4aGZ1S15IfSh2S0UqCnp8MU9+dU0qbUEqeX00SCNCM3g1
Rz1EbkAyYGBBNmVzMD45SyFLc1FtMyRPZT0oRVBSZiNeKCp9MilmPlY1PyhjYgp6cj1TPykkQThp
ZENwSyZUVUlLWCVLNmtKTW9NVntuaClEd31HK3EkeG58N3ZAPkBOVFJsZm5rTylkV3JkPDApcFgK
elh+PWlmU2pCaCQ/Zj5sbSpQOCRxUXhOPV4oJihtVVc8emgjN1BUbCY0SXJtOyNBbSEqbldDTFJQ
eVhiMCh9MjdfCnpPOCQ2ZVZ0UWpXZkVkcWQ9N1pyWE84P0hnO2N7T0ZPKkppczkpSFJlRTY+c2Y7
dWcmZ1l2UzBSNjYrJT52Z3Uwdgp6eHU9Y2wzZXxzUkZvWiMzeEg/K1JHZkNNfldoZ15ka05eN2lv
Q35nNXA+QkQhS0d0SiNtOG4yTjdMWjctZWpQZFMKejF8UTU/Kyg7WEFNX0VVfHVIWTt6KTljSjNg
SFhQMWRkXzRfd2F5UDM+LSFFRUt9bUNBKlMwTihsWjxfQSV+RGhVCnpQSmNMek4oYj4qU0w8YHt8
Tm9KMGt7V2lveDAjRUFZbn1UfiVzJXk3Xno2O3dyUXJuaEBNfjNMMSZYUUslO05KMQp6M15AKD8q
KSlxK0N9SyV9SWE7Z2okQlZaPS11d1VremZMfVEpY3NDXzQqQHslUzJ6Q304bCFAZGFibEs2MihR
OU4KejwjJlJoODYocmVRY1psYnAzJCFsK3t2eDhQeDYxTm9QWE9jMmpgI0N7ell3aFJ7VV9Nd2cj
d3Q+NkxvP1NwWCNzCnp4djlKaUs0UVVwKWRhOHYjK3x6NHlhRD54PCorIU07fE01VVZJYUwxezQy
K3B6U3BKVzsyb3R5bmlpIVJzJlEmSgp6RDI5cm9udEYyUHpQWjN2RnhwdX1oQX5xKGRndEohTFM2
by1lLTFlMXRHdVEtcVpKUzk3ezl7QDZrIU9HWmh2XzwKemVTZyl8QTNyRGxndV5iPFNYeW9SWSVW
e1h7bWAtV1dlMT9+djglczF3bTh5ekJ4QlRYJWZvVlJaV24kVWM+IT4xCnpCbmxxUT5pa0czd282
eDIrZF54cHlgP3xYLW1LTGU/TDJoTCpTYHA+OE9SOEd7TSNPR2I5YCloK1Zscn48aCp9UQp6dmc8
bGFwPyNARW5XcFN5S0xga3tfckNyYEolMVhlN3V6eyl7LV5XKFEjPFI3Z1IkPkZ8S3pjfntsLU4j
Nzt7aE8KelEoe25IZW5oWjQ7T0p2Q29zaGBpNGhIKUdvKFlUTkJtcjQxcDJ8aSRhPXB2SE59U2o0
Q3ZvQHp0Uj1OWVpIN2AlCnpWKD89X2ZLOSslNHMpUjwzY2RANih3YWdwdE9FQHtSUisjdE02NjVy
KEMkSjAyTWFeYFoqIUd+bVZYcEh7NHg4Jgp6c1U0dTFpOzRRKm00LTwoZ0dwJDBOJHJgRWE+YVA1
WGFEaHhpMUFgMiU1aTtBTDtwYyMzPHlgJSZkV2VwV0diM00KemhyKTFwQ1hucD9iPUV8RGxNPygm
ZmB5aW1QeUA7P2dnUlg3ejRjWFVDcEU9T1ROWnc1KSk1Oz9mYF5Fa0pmVFhSCnpCJEZGcWM4fmxt
ZFRUI2VGWGJYREtZIVNyVCkrQXd8TnA9RTI9U1dyTTMmdiF6THNJKEdXcS0/cFZuQ0BNZVMoNQp6
QVEjMi1pYXgpTE12WjMhUyR6Km0qZ04kOXNgKEN9UVhNPjhecXl6I1c7ZjctMDhVXkQrelJKYWN9
RVZrZEUkRlEKenljOVB8XiNuKV56JFcoZ2Q+XjU3THlHR0hnS1ckNUFRRl5VQFh7WV57QTBKQjU8
LVYqJEE4Y3ZjOy1CclRDPnxiCnpOcStlSipNPm9oN0V0dChLTmdIKm4xTHBncD1CfSNld2A5VFFe
STVjckM5fnZTfG5FTGVVWGBFYSlXXypmenFTPQp6WXdORTUpPCkob3ljXjZ6Kz1wZ3gtdUo2fCtt
UjNLezs7NmhEMWVPc0BHbyRaV19iMWMlRk1JbSgpb1JLUjxsa18KekJqa29iMTlyYXxkcjhTfjIh
RG9+RSF0ejtoI2s/Yzd5cXlRTTA3NDxGfk50bCRwIylUb2lDJXctVChqT09nSFVaCno4JSNxbE1D
QmVBR1BDOVoxeSppcntjU3o1NFlTak9KNTF9eWtaIzhoUjB0ckIrQHd+UiRBakV5UkxPPms0WGZA
Qgp6KVBFeihHa2U9S2BVTWRjRjgxai1hZmpISUN4O3doXlIjKlpYdW5sYiplIXhkPjNAPXRmYGwz
Vms8bisjMihmYTcKeipLKkJmQ1o1JEZ2RTNgPjYrbjhodVopYD9EYnwzPWk5I2xFIWZiQS15fVBo
YCUyNmo0U1pNfkd5Q0RFXlFPSU5DCnpnOGZWVEBUfUw+Y3ZrfE5FJWJMYSpnT0N2MzFzTVBJUih0
QEdOaHIxZWBMLTt5PzM3bHAzYEV7X1h4T31zJHVBNwp6ZF88OTtNdyRkVmdAMyp+bmRoTDtrNEZA
P3g/N3wrey0yWWdTKztsSzhNNDFOMGleZXIrRz5DZChmaXYrSnZsJCgKeiVocSU2dCFXJnlIKD9r
K0hXJD56VGtEMFkqbkZlYzRSekxXaUBnJEhJYHZqTEpSX2Q/UkAtR0J8OGxnK25oZnRTCno3Uy1j
TDNGbF9CbislXlppMkZwdTJ3NmZjZHtRSGwofn4xYGI9V2NqY3peckJJKClVI2d0Y0RCMGo3LVNC
a0xCPQp6b050bVZRdWc9cCpPSU5xYlR6MWwmTTFaaGNvWjc9WTExa1ooYGxoJHooa0d7VCVmUjc1
WTdUJFhOQ0I7cH5NJXIKejVRVjlXVlNjOGh2Z35+Km1fcTlMWGBfUCokcXY8Kmo2ZUdnXlkwIz94
PlRrSEVSXlRJX0dGZzZ3Z2w7dWBYVXRQCnpBeUswYz5IJno4enl7SSpmUm1GNF95S15FajBpO2Ax
cG9qNTAwMFZSWD1ROHkwMDAwMDZrPkY4Yk5+UFYwMDBKKQpUbTtlVG9uM003ZExJTWJEbFFzIUBY
VSVEYAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>